]> git.ipfire.org Git - thirdparty/grsecurity-scrape.git/blob - test/grsecurity-3.1-4.2.6-201512051918.patch
Auto commit, 1 new patch{es}.
[thirdparty/grsecurity-scrape.git] / test / grsecurity-3.1-4.2.6-201512051918.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..df5234b 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,79 @@ 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 +ifeq ($(call cc-ifversion, -ge, 0408, y), y)
500 + $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(HOSTCXX)" "$(HOSTCXX)" "$(CC)"
501 +else
502 + $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)"
503 +endif
504 +else
505 + $(Q)echo "warning, your gcc version does not support plugins, you should upgrade it to gcc 4.5 at least"
506 +endif
507 + $(Q)echo "PAX_MEMORY_STACKLEAK, constification, PAX_LATENT_ENTROPY and other features will be less secure. PAX_SIZE_OVERFLOW will not be active."
508 +endif
509 +endif
510 +
511 ifdef CONFIG_READABLE_ASM
512 # Disable optimizations that make assembler listings hard to read.
513 # reorder blocks reorders the control in the function
514 @@ -714,7 +789,7 @@ KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
515 else
516 KBUILD_CFLAGS += -g
517 endif
518 -KBUILD_AFLAGS += -Wa,-gdwarf-2
519 +KBUILD_AFLAGS += -Wa,--gdwarf-2
520 endif
521 ifdef CONFIG_DEBUG_INFO_DWARF4
522 KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
523 @@ -886,7 +961,7 @@ export mod_sign_cmd
524
525
526 ifeq ($(KBUILD_EXTMOD),)
527 -core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
528 +core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ grsecurity/
529
530 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
531 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
532 @@ -936,6 +1011,8 @@ endif
533
534 # The actual objects are generated when descending,
535 # make sure no implicit rule kicks in
536 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
537 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
538 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
539
540 # Handle descending into subdirectories listed in $(vmlinux-dirs)
541 @@ -945,7 +1022,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
542 # Error messages still appears in the original language
543
544 PHONY += $(vmlinux-dirs)
545 -$(vmlinux-dirs): prepare scripts
546 +$(vmlinux-dirs): gcc-plugins prepare scripts
547 $(Q)$(MAKE) $(build)=$@
548
549 define filechk_kernel.release
550 @@ -988,10 +1065,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
551
552 archprepare: archheaders archscripts prepare1 scripts_basic
553
554 +prepare0: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
555 +prepare0: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
556 prepare0: archprepare FORCE
557 $(Q)$(MAKE) $(build)=.
558
559 # All the preparing..
560 +prepare: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
561 prepare: prepare0
562
563 # Generate some files
564 @@ -1099,6 +1179,8 @@ all: modules
565 # using awk while concatenating to the final file.
566
567 PHONY += modules
568 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
569 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
570 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
571 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
572 @$(kecho) ' Building modules, stage 2.';
573 @@ -1114,7 +1196,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
574
575 # Target to prepare building external modules
576 PHONY += modules_prepare
577 -modules_prepare: prepare scripts
578 +modules_prepare: gcc-plugins prepare scripts
579
580 # Target to install modules
581 PHONY += modules_install
582 @@ -1180,7 +1262,10 @@ MRPROPER_FILES += .config .config.old .version .old_version \
583 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
584 signing_key.priv signing_key.x509 x509.genkey \
585 extra_certificates signing_key.x509.keyid \
586 - signing_key.x509.signer vmlinux-gdb.py
587 + signing_key.x509.signer vmlinux-gdb.py \
588 + tools/gcc/size_overflow_plugin/size_overflow_hash_aux.h \
589 + tools/gcc/size_overflow_plugin/size_overflow_hash.h \
590 + tools/gcc/randomize_layout_seed.h
591
592 # clean - Delete most, but leave enough to build external modules
593 #
594 @@ -1219,7 +1304,7 @@ distclean: mrproper
595 @find $(srctree) $(RCS_FIND_IGNORE) \
596 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
597 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
598 - -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \
599 + -o -name '.*.rej' -o -name '*.so' -o -name '*%' -o -name 'core' \) \
600 -type f -print | xargs rm -f
601
602
603 @@ -1385,6 +1470,8 @@ PHONY += $(module-dirs) modules
604 $(module-dirs): crmodverdir $(objtree)/Module.symvers
605 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
606
607 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
608 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
609 modules: $(module-dirs)
610 @$(kecho) ' Building modules, stage 2.';
611 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
612 @@ -1525,17 +1612,21 @@ else
613 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
614 endif
615
616 -%.s: %.c prepare scripts FORCE
617 +%.s: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
618 +%.s: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
619 +%.s: %.c gcc-plugins prepare scripts FORCE
620 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
621 %.i: %.c prepare scripts FORCE
622 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
623 -%.o: %.c prepare scripts FORCE
624 +%.o: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
625 +%.o: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
626 +%.o: %.c gcc-plugins prepare scripts FORCE
627 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
628 %.lst: %.c prepare scripts FORCE
629 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
630 -%.s: %.S prepare scripts FORCE
631 +%.s: %.S gcc-plugins prepare scripts FORCE
632 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
633 -%.o: %.S prepare scripts FORCE
634 +%.o: %.S gcc-plugins prepare scripts FORCE
635 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
636 %.symtypes: %.c prepare scripts FORCE
637 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
638 @@ -1547,11 +1638,15 @@ endif
639 $(build)=$(build-dir)
640 # Make sure the latest headers are built for Documentation
641 Documentation/: headers_install
642 -%/: prepare scripts FORCE
643 +%/: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
644 +%/: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
645 +%/: gcc-plugins prepare scripts FORCE
646 $(cmd_crmodverdir)
647 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
648 $(build)=$(build-dir)
649 -%.ko: prepare scripts FORCE
650 +%.ko: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
651 +%.ko: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
652 +%.ko: gcc-plugins prepare scripts FORCE
653 $(cmd_crmodverdir)
654 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
655 $(build)=$(build-dir) $(@:.ko=.o)
656 diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h
657 index 8f8eafb..3405f46 100644
658 --- a/arch/alpha/include/asm/atomic.h
659 +++ b/arch/alpha/include/asm/atomic.h
660 @@ -239,4 +239,14 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
661 #define atomic_dec(v) atomic_sub(1,(v))
662 #define atomic64_dec(v) atomic64_sub(1,(v))
663
664 +#define atomic64_read_unchecked(v) atomic64_read(v)
665 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
666 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
667 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
668 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
669 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
670 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
671 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
672 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
673 +
674 #endif /* _ALPHA_ATOMIC_H */
675 diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h
676 index ad368a9..fbe0f25 100644
677 --- a/arch/alpha/include/asm/cache.h
678 +++ b/arch/alpha/include/asm/cache.h
679 @@ -4,19 +4,19 @@
680 #ifndef __ARCH_ALPHA_CACHE_H
681 #define __ARCH_ALPHA_CACHE_H
682
683 +#include <linux/const.h>
684
685 /* Bytes per L1 (data) cache line. */
686 #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
687 -# define L1_CACHE_BYTES 64
688 # define L1_CACHE_SHIFT 6
689 #else
690 /* Both EV4 and EV5 are write-through, read-allocate,
691 direct-mapped, physical.
692 */
693 -# define L1_CACHE_BYTES 32
694 # define L1_CACHE_SHIFT 5
695 #endif
696
697 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
698 #define SMP_CACHE_BYTES L1_CACHE_BYTES
699
700 #endif
701 diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h
702 index 968d999..d36b2df 100644
703 --- a/arch/alpha/include/asm/elf.h
704 +++ b/arch/alpha/include/asm/elf.h
705 @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
706
707 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
708
709 +#ifdef CONFIG_PAX_ASLR
710 +#define PAX_ELF_ET_DYN_BASE (current->personality & ADDR_LIMIT_32BIT ? 0x10000 : 0x120000000UL)
711 +
712 +#define PAX_DELTA_MMAP_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 28)
713 +#define PAX_DELTA_STACK_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 19)
714 +#endif
715 +
716 /* $0 is set by ld.so to a pointer to a function which might be
717 registered using atexit. This provides a mean for the dynamic
718 linker to call DT_FINI functions for shared libraries that have
719 diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
720 index aab14a0..b4fa3e7 100644
721 --- a/arch/alpha/include/asm/pgalloc.h
722 +++ b/arch/alpha/include/asm/pgalloc.h
723 @@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
724 pgd_set(pgd, pmd);
725 }
726
727 +static inline void
728 +pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
729 +{
730 + pgd_populate(mm, pgd, pmd);
731 +}
732 +
733 extern pgd_t *pgd_alloc(struct mm_struct *mm);
734
735 static inline void
736 diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
737 index a9a1195..e9b8417 100644
738 --- a/arch/alpha/include/asm/pgtable.h
739 +++ b/arch/alpha/include/asm/pgtable.h
740 @@ -101,6 +101,17 @@ struct vm_area_struct;
741 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS)
742 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
743 #define PAGE_READONLY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
744 +
745 +#ifdef CONFIG_PAX_PAGEEXEC
746 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOE)
747 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
748 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
749 +#else
750 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
751 +# define PAGE_COPY_NOEXEC PAGE_COPY
752 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
753 +#endif
754 +
755 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
756
757 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
758 diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c
759 index 2fd00b7..cfd5069 100644
760 --- a/arch/alpha/kernel/module.c
761 +++ b/arch/alpha/kernel/module.c
762 @@ -160,7 +160,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab,
763
764 /* The small sections were sorted to the end of the segment.
765 The following should definitely cover them. */
766 - gp = (u64)me->module_core + me->core_size - 0x8000;
767 + gp = (u64)me->module_core_rw + me->core_size_rw - 0x8000;
768 got = sechdrs[me->arch.gotsecindex].sh_addr;
769
770 for (i = 0; i < n; i++) {
771 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
772 index 36dc91a..6769cb0 100644
773 --- a/arch/alpha/kernel/osf_sys.c
774 +++ b/arch/alpha/kernel/osf_sys.c
775 @@ -1295,10 +1295,11 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
776 generic version except that we know how to honor ADDR_LIMIT_32BIT. */
777
778 static unsigned long
779 -arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
780 - unsigned long limit)
781 +arch_get_unmapped_area_1(struct file *filp, unsigned long addr, unsigned long len,
782 + unsigned long limit, unsigned long flags)
783 {
784 struct vm_unmapped_area_info info;
785 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
786
787 info.flags = 0;
788 info.length = len;
789 @@ -1306,6 +1307,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
790 info.high_limit = limit;
791 info.align_mask = 0;
792 info.align_offset = 0;
793 + info.threadstack_offset = offset;
794 return vm_unmapped_area(&info);
795 }
796
797 @@ -1338,20 +1340,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
798 merely specific addresses, but regions of memory -- perhaps
799 this feature should be incorporated into all ports? */
800
801 +#ifdef CONFIG_PAX_RANDMMAP
802 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
803 +#endif
804 +
805 if (addr) {
806 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
807 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(addr), len, limit, flags);
808 if (addr != (unsigned long) -ENOMEM)
809 return addr;
810 }
811
812 /* Next, try allocating at TASK_UNMAPPED_BASE. */
813 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(TASK_UNMAPPED_BASE),
814 - len, limit);
815 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(current->mm->mmap_base), len, limit, flags);
816 +
817 if (addr != (unsigned long) -ENOMEM)
818 return addr;
819
820 /* Finally, try allocating in low memory. */
821 - addr = arch_get_unmapped_area_1 (PAGE_SIZE, len, limit);
822 + addr = arch_get_unmapped_area_1 (filp, PAGE_SIZE, len, limit, flags);
823
824 return addr;
825 }
826 diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
827 index 4a905bd..0a4da53 100644
828 --- a/arch/alpha/mm/fault.c
829 +++ b/arch/alpha/mm/fault.c
830 @@ -52,6 +52,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
831 __reload_thread(pcb);
832 }
833
834 +#ifdef CONFIG_PAX_PAGEEXEC
835 +/*
836 + * PaX: decide what to do with offenders (regs->pc = fault address)
837 + *
838 + * returns 1 when task should be killed
839 + * 2 when patched PLT trampoline was detected
840 + * 3 when unpatched PLT trampoline was detected
841 + */
842 +static int pax_handle_fetch_fault(struct pt_regs *regs)
843 +{
844 +
845 +#ifdef CONFIG_PAX_EMUPLT
846 + int err;
847 +
848 + do { /* PaX: patched PLT emulation #1 */
849 + unsigned int ldah, ldq, jmp;
850 +
851 + err = get_user(ldah, (unsigned int *)regs->pc);
852 + err |= get_user(ldq, (unsigned int *)(regs->pc+4));
853 + err |= get_user(jmp, (unsigned int *)(regs->pc+8));
854 +
855 + if (err)
856 + break;
857 +
858 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
859 + (ldq & 0xFFFF0000U) == 0xA77B0000U &&
860 + jmp == 0x6BFB0000U)
861 + {
862 + unsigned long r27, addr;
863 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
864 + unsigned long addrl = ldq | 0xFFFFFFFFFFFF0000UL;
865 +
866 + addr = regs->r27 + ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
867 + err = get_user(r27, (unsigned long *)addr);
868 + if (err)
869 + break;
870 +
871 + regs->r27 = r27;
872 + regs->pc = r27;
873 + return 2;
874 + }
875 + } while (0);
876 +
877 + do { /* PaX: patched PLT emulation #2 */
878 + unsigned int ldah, lda, br;
879 +
880 + err = get_user(ldah, (unsigned int *)regs->pc);
881 + err |= get_user(lda, (unsigned int *)(regs->pc+4));
882 + err |= get_user(br, (unsigned int *)(regs->pc+8));
883 +
884 + if (err)
885 + break;
886 +
887 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
888 + (lda & 0xFFFF0000U) == 0xA77B0000U &&
889 + (br & 0xFFE00000U) == 0xC3E00000U)
890 + {
891 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL;
892 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
893 + unsigned long addrl = lda | 0xFFFFFFFFFFFF0000UL;
894 +
895 + regs->r27 += ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
896 + regs->pc += 12 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
897 + return 2;
898 + }
899 + } while (0);
900 +
901 + do { /* PaX: unpatched PLT emulation */
902 + unsigned int br;
903 +
904 + err = get_user(br, (unsigned int *)regs->pc);
905 +
906 + if (!err && (br & 0xFFE00000U) == 0xC3800000U) {
907 + unsigned int br2, ldq, nop, jmp;
908 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL, resolver;
909 +
910 + addr = regs->pc + 4 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
911 + err = get_user(br2, (unsigned int *)addr);
912 + err |= get_user(ldq, (unsigned int *)(addr+4));
913 + err |= get_user(nop, (unsigned int *)(addr+8));
914 + err |= get_user(jmp, (unsigned int *)(addr+12));
915 + err |= get_user(resolver, (unsigned long *)(addr+16));
916 +
917 + if (err)
918 + break;
919 +
920 + if (br2 == 0xC3600000U &&
921 + ldq == 0xA77B000CU &&
922 + nop == 0x47FF041FU &&
923 + jmp == 0x6B7B0000U)
924 + {
925 + regs->r28 = regs->pc+4;
926 + regs->r27 = addr+16;
927 + regs->pc = resolver;
928 + return 3;
929 + }
930 + }
931 + } while (0);
932 +#endif
933 +
934 + return 1;
935 +}
936 +
937 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
938 +{
939 + unsigned long i;
940 +
941 + printk(KERN_ERR "PAX: bytes at PC: ");
942 + for (i = 0; i < 5; i++) {
943 + unsigned int c;
944 + if (get_user(c, (unsigned int *)pc+i))
945 + printk(KERN_CONT "???????? ");
946 + else
947 + printk(KERN_CONT "%08x ", c);
948 + }
949 + printk("\n");
950 +}
951 +#endif
952
953 /*
954 * This routine handles page faults. It determines the address,
955 @@ -132,8 +250,29 @@ retry:
956 good_area:
957 si_code = SEGV_ACCERR;
958 if (cause < 0) {
959 - if (!(vma->vm_flags & VM_EXEC))
960 + if (!(vma->vm_flags & VM_EXEC)) {
961 +
962 +#ifdef CONFIG_PAX_PAGEEXEC
963 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->pc)
964 + goto bad_area;
965 +
966 + up_read(&mm->mmap_sem);
967 + switch (pax_handle_fetch_fault(regs)) {
968 +
969 +#ifdef CONFIG_PAX_EMUPLT
970 + case 2:
971 + case 3:
972 + return;
973 +#endif
974 +
975 + }
976 + pax_report_fault(regs, (void *)regs->pc, (void *)rdusp());
977 + do_group_exit(SIGKILL);
978 +#else
979 goto bad_area;
980 +#endif
981 +
982 + }
983 } else if (!cause) {
984 /* Allow reads even for write-only mappings */
985 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
986 diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
987 index bd4670d..920c97a 100644
988 --- a/arch/arc/Kconfig
989 +++ b/arch/arc/Kconfig
990 @@ -485,6 +485,7 @@ config ARC_DBG_TLB_MISS_COUNT
991 bool "Profile TLB Misses"
992 default n
993 select DEBUG_FS
994 + depends on !GRKERNSEC_KMEM
995 help
996 Counts number of I and D TLB Misses and exports them via Debugfs
997 The counters can be cleared via Debugfs as well
998 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
999 index ede2526..9e12300 100644
1000 --- a/arch/arm/Kconfig
1001 +++ b/arch/arm/Kconfig
1002 @@ -1770,7 +1770,7 @@ config ALIGNMENT_TRAP
1003
1004 config UACCESS_WITH_MEMCPY
1005 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
1006 - depends on MMU
1007 + depends on MMU && !PAX_MEMORY_UDEREF
1008 default y if CPU_FEROCEON
1009 help
1010 Implement faster copy_to_user and clear_user methods for CPU
1011 @@ -2006,6 +2006,7 @@ config KEXEC
1012 bool "Kexec system call (EXPERIMENTAL)"
1013 depends on (!SMP || PM_SLEEP_SMP)
1014 depends on !CPU_V7M
1015 + depends on !GRKERNSEC_KMEM
1016 help
1017 kexec is a system call that implements the ability to shutdown your
1018 current kernel, and to start another kernel. It is like a reboot
1019 diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
1020 index a2e16f9..b26e911 100644
1021 --- a/arch/arm/Kconfig.debug
1022 +++ b/arch/arm/Kconfig.debug
1023 @@ -7,6 +7,7 @@ config ARM_PTDUMP
1024 depends on DEBUG_KERNEL
1025 depends on MMU
1026 select DEBUG_FS
1027 + depends on !GRKERNSEC_KMEM
1028 ---help---
1029 Say Y here if you want to show the kernel pagetable layout in a
1030 debugfs file. This information is only useful for kernel developers
1031 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
1032 index e22c119..abe7041 100644
1033 --- a/arch/arm/include/asm/atomic.h
1034 +++ b/arch/arm/include/asm/atomic.h
1035 @@ -18,17 +18,41 @@
1036 #include <asm/barrier.h>
1037 #include <asm/cmpxchg.h>
1038
1039 +#ifdef CONFIG_GENERIC_ATOMIC64
1040 +#include <asm-generic/atomic64.h>
1041 +#endif
1042 +
1043 #define ATOMIC_INIT(i) { (i) }
1044
1045 #ifdef __KERNEL__
1046
1047 +#ifdef CONFIG_THUMB2_KERNEL
1048 +#define REFCOUNT_TRAP_INSN "bkpt 0xf1"
1049 +#else
1050 +#define REFCOUNT_TRAP_INSN "bkpt 0xf103"
1051 +#endif
1052 +
1053 +#define _ASM_EXTABLE(from, to) \
1054 +" .pushsection __ex_table,\"a\"\n"\
1055 +" .align 3\n" \
1056 +" .long " #from ", " #to"\n" \
1057 +" .popsection"
1058 +
1059 /*
1060 * On ARM, ordinary assignment (str instruction) doesn't clear the local
1061 * strex/ldrex monitor on some implementations. The reason we can use it for
1062 * atomic_set() is the clrex or dummy strex done on every exception return.
1063 */
1064 #define atomic_read(v) ACCESS_ONCE((v)->counter)
1065 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
1066 +{
1067 + return ACCESS_ONCE(v->counter);
1068 +}
1069 #define atomic_set(v,i) (((v)->counter) = (i))
1070 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
1071 +{
1072 + v->counter = i;
1073 +}
1074
1075 #if __LINUX_ARM_ARCH__ >= 6
1076
1077 @@ -38,26 +62,50 @@
1078 * to ensure that the update happens.
1079 */
1080
1081 -#define ATOMIC_OP(op, c_op, asm_op) \
1082 -static inline void atomic_##op(int i, atomic_t *v) \
1083 +#ifdef CONFIG_PAX_REFCOUNT
1084 +#define __OVERFLOW_POST \
1085 + " bvc 3f\n" \
1086 + "2: " REFCOUNT_TRAP_INSN "\n"\
1087 + "3:\n"
1088 +#define __OVERFLOW_POST_RETURN \
1089 + " bvc 3f\n" \
1090 +" mov %0, %1\n" \
1091 + "2: " REFCOUNT_TRAP_INSN "\n"\
1092 + "3:\n"
1093 +#define __OVERFLOW_EXTABLE \
1094 + "4:\n" \
1095 + _ASM_EXTABLE(2b, 4b)
1096 +#else
1097 +#define __OVERFLOW_POST
1098 +#define __OVERFLOW_POST_RETURN
1099 +#define __OVERFLOW_EXTABLE
1100 +#endif
1101 +
1102 +#define __ATOMIC_OP(op, suffix, c_op, asm_op, post_op, extable) \
1103 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1104 { \
1105 unsigned long tmp; \
1106 int result; \
1107 \
1108 prefetchw(&v->counter); \
1109 - __asm__ __volatile__("@ atomic_" #op "\n" \
1110 + __asm__ __volatile__("@ atomic_" #op #suffix "\n" \
1111 "1: ldrex %0, [%3]\n" \
1112 " " #asm_op " %0, %0, %4\n" \
1113 + post_op \
1114 " strex %1, %0, [%3]\n" \
1115 " teq %1, #0\n" \
1116 -" bne 1b" \
1117 +" bne 1b\n" \
1118 + extable \
1119 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1120 : "r" (&v->counter), "Ir" (i) \
1121 : "cc"); \
1122 } \
1123
1124 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1125 -static inline int atomic_##op##_return(int i, atomic_t *v) \
1126 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, _unchecked, c_op, asm_op, , )\
1127 + __ATOMIC_OP(op, , c_op, asm_op##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1128 +
1129 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op, post_op, extable) \
1130 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t *v)\
1131 { \
1132 unsigned long tmp; \
1133 int result; \
1134 @@ -65,12 +113,14 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1135 smp_mb(); \
1136 prefetchw(&v->counter); \
1137 \
1138 - __asm__ __volatile__("@ atomic_" #op "_return\n" \
1139 + __asm__ __volatile__("@ atomic_" #op "_return" #suffix "\n" \
1140 "1: ldrex %0, [%3]\n" \
1141 " " #asm_op " %0, %0, %4\n" \
1142 + post_op \
1143 " strex %1, %0, [%3]\n" \
1144 " teq %1, #0\n" \
1145 -" bne 1b" \
1146 +" bne 1b\n" \
1147 + extable \
1148 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1149 : "r" (&v->counter), "Ir" (i) \
1150 : "cc"); \
1151 @@ -80,6 +130,9 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1152 return result; \
1153 }
1154
1155 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op, , )\
1156 + __ATOMIC_OP_RETURN(op, , c_op, asm_op##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1157 +
1158 static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
1159 {
1160 int oldval;
1161 @@ -115,12 +168,24 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1162 __asm__ __volatile__ ("@ atomic_add_unless\n"
1163 "1: ldrex %0, [%4]\n"
1164 " teq %0, %5\n"
1165 -" beq 2f\n"
1166 -" add %1, %0, %6\n"
1167 +" beq 4f\n"
1168 +" adds %1, %0, %6\n"
1169 +
1170 +#ifdef CONFIG_PAX_REFCOUNT
1171 +" bvc 3f\n"
1172 +"2: " REFCOUNT_TRAP_INSN "\n"
1173 +"3:\n"
1174 +#endif
1175 +
1176 " strex %2, %1, [%4]\n"
1177 " teq %2, #0\n"
1178 " bne 1b\n"
1179 -"2:"
1180 +"4:"
1181 +
1182 +#ifdef CONFIG_PAX_REFCOUNT
1183 + _ASM_EXTABLE(2b, 4b)
1184 +#endif
1185 +
1186 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter)
1187 : "r" (&v->counter), "r" (u), "r" (a)
1188 : "cc");
1189 @@ -131,14 +196,36 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1190 return oldval;
1191 }
1192
1193 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *ptr, int old, int new)
1194 +{
1195 + unsigned long oldval, res;
1196 +
1197 + smp_mb();
1198 +
1199 + do {
1200 + __asm__ __volatile__("@ atomic_cmpxchg_unchecked\n"
1201 + "ldrex %1, [%3]\n"
1202 + "mov %0, #0\n"
1203 + "teq %1, %4\n"
1204 + "strexeq %0, %5, [%3]\n"
1205 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1206 + : "r" (&ptr->counter), "Ir" (old), "r" (new)
1207 + : "cc");
1208 + } while (res);
1209 +
1210 + smp_mb();
1211 +
1212 + return oldval;
1213 +}
1214 +
1215 #else /* ARM_ARCH_6 */
1216
1217 #ifdef CONFIG_SMP
1218 #error SMP not supported on pre-ARMv6 CPUs
1219 #endif
1220
1221 -#define ATOMIC_OP(op, c_op, asm_op) \
1222 -static inline void atomic_##op(int i, atomic_t *v) \
1223 +#define __ATOMIC_OP(op, suffix, c_op, asm_op) \
1224 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1225 { \
1226 unsigned long flags; \
1227 \
1228 @@ -147,8 +234,11 @@ static inline void atomic_##op(int i, atomic_t *v) \
1229 raw_local_irq_restore(flags); \
1230 } \
1231
1232 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1233 -static inline int atomic_##op##_return(int i, atomic_t *v) \
1234 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, , c_op, asm_op) \
1235 + __ATOMIC_OP(op, _unchecked, c_op, asm_op)
1236 +
1237 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op) \
1238 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t *v)\
1239 { \
1240 unsigned long flags; \
1241 int val; \
1242 @@ -161,6 +251,9 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1243 return val; \
1244 }
1245
1246 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, , c_op, asm_op)\
1247 + __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op)
1248 +
1249 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1250 {
1251 int ret;
1252 @@ -175,6 +268,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1253 return ret;
1254 }
1255
1256 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
1257 +{
1258 + return atomic_cmpxchg((atomic_t *)v, old, new);
1259 +}
1260 +
1261 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1262 {
1263 int c, old;
1264 @@ -196,16 +294,38 @@ ATOMIC_OPS(sub, -=, sub)
1265
1266 #undef ATOMIC_OPS
1267 #undef ATOMIC_OP_RETURN
1268 +#undef __ATOMIC_OP_RETURN
1269 #undef ATOMIC_OP
1270 +#undef __ATOMIC_OP
1271
1272 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
1273 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
1274 +{
1275 + return xchg(&v->counter, new);
1276 +}
1277
1278 #define atomic_inc(v) atomic_add(1, v)
1279 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
1280 +{
1281 + atomic_add_unchecked(1, v);
1282 +}
1283 #define atomic_dec(v) atomic_sub(1, v)
1284 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
1285 +{
1286 + atomic_sub_unchecked(1, v);
1287 +}
1288
1289 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
1290 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
1291 +{
1292 + return atomic_add_return_unchecked(1, v) == 0;
1293 +}
1294 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
1295 #define atomic_inc_return(v) (atomic_add_return(1, v))
1296 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
1297 +{
1298 + return atomic_add_return_unchecked(1, v);
1299 +}
1300 #define atomic_dec_return(v) (atomic_sub_return(1, v))
1301 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
1302
1303 @@ -216,6 +336,14 @@ typedef struct {
1304 long long counter;
1305 } atomic64_t;
1306
1307 +#ifdef CONFIG_PAX_REFCOUNT
1308 +typedef struct {
1309 + long long counter;
1310 +} atomic64_unchecked_t;
1311 +#else
1312 +typedef atomic64_t atomic64_unchecked_t;
1313 +#endif
1314 +
1315 #define ATOMIC64_INIT(i) { (i) }
1316
1317 #ifdef CONFIG_ARM_LPAE
1318 @@ -232,6 +360,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1319 return result;
1320 }
1321
1322 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1323 +{
1324 + long long result;
1325 +
1326 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1327 +" ldrd %0, %H0, [%1]"
1328 + : "=&r" (result)
1329 + : "r" (&v->counter), "Qo" (v->counter)
1330 + );
1331 +
1332 + return result;
1333 +}
1334 +
1335 static inline void atomic64_set(atomic64_t *v, long long i)
1336 {
1337 __asm__ __volatile__("@ atomic64_set\n"
1338 @@ -240,6 +381,15 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1339 : "r" (&v->counter), "r" (i)
1340 );
1341 }
1342 +
1343 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1344 +{
1345 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1346 +" strd %2, %H2, [%1]"
1347 + : "=Qo" (v->counter)
1348 + : "r" (&v->counter), "r" (i)
1349 + );
1350 +}
1351 #else
1352 static inline long long atomic64_read(const atomic64_t *v)
1353 {
1354 @@ -254,6 +404,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1355 return result;
1356 }
1357
1358 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1359 +{
1360 + long long result;
1361 +
1362 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1363 +" ldrexd %0, %H0, [%1]"
1364 + : "=&r" (result)
1365 + : "r" (&v->counter), "Qo" (v->counter)
1366 + );
1367 +
1368 + return result;
1369 +}
1370 +
1371 static inline void atomic64_set(atomic64_t *v, long long i)
1372 {
1373 long long tmp;
1374 @@ -268,29 +431,57 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1375 : "r" (&v->counter), "r" (i)
1376 : "cc");
1377 }
1378 +
1379 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1380 +{
1381 + long long tmp;
1382 +
1383 + prefetchw(&v->counter);
1384 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1385 +"1: ldrexd %0, %H0, [%2]\n"
1386 +" strexd %0, %3, %H3, [%2]\n"
1387 +" teq %0, #0\n"
1388 +" bne 1b"
1389 + : "=&r" (tmp), "=Qo" (v->counter)
1390 + : "r" (&v->counter), "r" (i)
1391 + : "cc");
1392 +}
1393 #endif
1394
1395 -#define ATOMIC64_OP(op, op1, op2) \
1396 -static inline void atomic64_##op(long long i, atomic64_t *v) \
1397 +#undef __OVERFLOW_POST_RETURN
1398 +#define __OVERFLOW_POST_RETURN \
1399 + " bvc 3f\n" \
1400 +" mov %0, %1\n" \
1401 +" mov %H0, %H1\n" \
1402 + "2: " REFCOUNT_TRAP_INSN "\n"\
1403 + "3:\n"
1404 +
1405 +#define __ATOMIC64_OP(op, suffix, op1, op2, post_op, extable) \
1406 +static inline void atomic64_##op##suffix(long long i, atomic64##suffix##_t *v)\
1407 { \
1408 long long result; \
1409 unsigned long tmp; \
1410 \
1411 prefetchw(&v->counter); \
1412 - __asm__ __volatile__("@ atomic64_" #op "\n" \
1413 + __asm__ __volatile__("@ atomic64_" #op #suffix "\n" \
1414 "1: ldrexd %0, %H0, [%3]\n" \
1415 " " #op1 " %Q0, %Q0, %Q4\n" \
1416 " " #op2 " %R0, %R0, %R4\n" \
1417 + post_op \
1418 " strexd %1, %0, %H0, [%3]\n" \
1419 " teq %1, #0\n" \
1420 -" bne 1b" \
1421 +" bne 1b\n" \
1422 + extable \
1423 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1424 : "r" (&v->counter), "r" (i) \
1425 : "cc"); \
1426 } \
1427
1428 -#define ATOMIC64_OP_RETURN(op, op1, op2) \
1429 -static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
1430 +#define ATOMIC64_OP(op, op1, op2) __ATOMIC64_OP(op, _unchecked, op1, op2, , ) \
1431 + __ATOMIC64_OP(op, , op1, op2##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1432 +
1433 +#define __ATOMIC64_OP_RETURN(op, suffix, op1, op2, post_op, extable) \
1434 +static inline long long atomic64_##op##_return##suffix(long long i, atomic64##suffix##_t *v) \
1435 { \
1436 long long result; \
1437 unsigned long tmp; \
1438 @@ -298,13 +489,15 @@ static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
1439 smp_mb(); \
1440 prefetchw(&v->counter); \
1441 \
1442 - __asm__ __volatile__("@ atomic64_" #op "_return\n" \
1443 + __asm__ __volatile__("@ atomic64_" #op "_return" #suffix "\n" \
1444 "1: ldrexd %0, %H0, [%3]\n" \
1445 " " #op1 " %Q0, %Q0, %Q4\n" \
1446 " " #op2 " %R0, %R0, %R4\n" \
1447 + post_op \
1448 " strexd %1, %0, %H0, [%3]\n" \
1449 " teq %1, #0\n" \
1450 -" bne 1b" \
1451 +" bne 1b\n" \
1452 + extable \
1453 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1454 : "r" (&v->counter), "r" (i) \
1455 : "cc"); \
1456 @@ -314,6 +507,9 @@ static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
1457 return result; \
1458 }
1459
1460 +#define ATOMIC64_OP_RETURN(op, op1, op2) __ATOMIC64_OP_RETURN(op, _unchecked, op1, op2, , ) \
1461 + __ATOMIC64_OP_RETURN(op, , op1, op2##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1462 +
1463 #define ATOMIC64_OPS(op, op1, op2) \
1464 ATOMIC64_OP(op, op1, op2) \
1465 ATOMIC64_OP_RETURN(op, op1, op2)
1466 @@ -323,7 +519,12 @@ ATOMIC64_OPS(sub, subs, sbc)
1467
1468 #undef ATOMIC64_OPS
1469 #undef ATOMIC64_OP_RETURN
1470 +#undef __ATOMIC64_OP_RETURN
1471 #undef ATOMIC64_OP
1472 +#undef __ATOMIC64_OP
1473 +#undef __OVERFLOW_EXTABLE
1474 +#undef __OVERFLOW_POST_RETURN
1475 +#undef __OVERFLOW_POST
1476
1477 static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
1478 long long new)
1479 @@ -351,6 +552,31 @@ static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
1480 return oldval;
1481 }
1482
1483 +static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, long long old,
1484 + long long new)
1485 +{
1486 + long long oldval;
1487 + unsigned long res;
1488 +
1489 + smp_mb();
1490 +
1491 + do {
1492 + __asm__ __volatile__("@ atomic64_cmpxchg_unchecked\n"
1493 + "ldrexd %1, %H1, [%3]\n"
1494 + "mov %0, #0\n"
1495 + "teq %1, %4\n"
1496 + "teqeq %H1, %H4\n"
1497 + "strexdeq %0, %5, %H5, [%3]"
1498 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1499 + : "r" (&ptr->counter), "r" (old), "r" (new)
1500 + : "cc");
1501 + } while (res);
1502 +
1503 + smp_mb();
1504 +
1505 + return oldval;
1506 +}
1507 +
1508 static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
1509 {
1510 long long result;
1511 @@ -376,21 +602,35 @@ static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
1512 static inline long long atomic64_dec_if_positive(atomic64_t *v)
1513 {
1514 long long result;
1515 - unsigned long tmp;
1516 + u64 tmp;
1517
1518 smp_mb();
1519 prefetchw(&v->counter);
1520
1521 __asm__ __volatile__("@ atomic64_dec_if_positive\n"
1522 -"1: ldrexd %0, %H0, [%3]\n"
1523 -" subs %Q0, %Q0, #1\n"
1524 -" sbc %R0, %R0, #0\n"
1525 +"1: ldrexd %1, %H1, [%3]\n"
1526 +" subs %Q0, %Q1, #1\n"
1527 +" sbcs %R0, %R1, #0\n"
1528 +
1529 +#ifdef CONFIG_PAX_REFCOUNT
1530 +" bvc 3f\n"
1531 +" mov %Q0, %Q1\n"
1532 +" mov %R0, %R1\n"
1533 +"2: " REFCOUNT_TRAP_INSN "\n"
1534 +"3:\n"
1535 +#endif
1536 +
1537 " teq %R0, #0\n"
1538 -" bmi 2f\n"
1539 +" bmi 4f\n"
1540 " strexd %1, %0, %H0, [%3]\n"
1541 " teq %1, #0\n"
1542 " bne 1b\n"
1543 -"2:"
1544 +"4:\n"
1545 +
1546 +#ifdef CONFIG_PAX_REFCOUNT
1547 + _ASM_EXTABLE(2b, 4b)
1548 +#endif
1549 +
1550 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1551 : "r" (&v->counter)
1552 : "cc");
1553 @@ -414,13 +654,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1554 " teq %0, %5\n"
1555 " teqeq %H0, %H5\n"
1556 " moveq %1, #0\n"
1557 -" beq 2f\n"
1558 +" beq 4f\n"
1559 " adds %Q0, %Q0, %Q6\n"
1560 -" adc %R0, %R0, %R6\n"
1561 +" adcs %R0, %R0, %R6\n"
1562 +
1563 +#ifdef CONFIG_PAX_REFCOUNT
1564 +" bvc 3f\n"
1565 +"2: " REFCOUNT_TRAP_INSN "\n"
1566 +"3:\n"
1567 +#endif
1568 +
1569 " strexd %2, %0, %H0, [%4]\n"
1570 " teq %2, #0\n"
1571 " bne 1b\n"
1572 -"2:"
1573 +"4:\n"
1574 +
1575 +#ifdef CONFIG_PAX_REFCOUNT
1576 + _ASM_EXTABLE(2b, 4b)
1577 +#endif
1578 +
1579 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
1580 : "r" (&v->counter), "r" (u), "r" (a)
1581 : "cc");
1582 @@ -433,10 +685,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1583
1584 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
1585 #define atomic64_inc(v) atomic64_add(1LL, (v))
1586 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1LL, (v))
1587 #define atomic64_inc_return(v) atomic64_add_return(1LL, (v))
1588 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1LL, (v))
1589 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
1590 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
1591 #define atomic64_dec(v) atomic64_sub(1LL, (v))
1592 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1LL, (v))
1593 #define atomic64_dec_return(v) atomic64_sub_return(1LL, (v))
1594 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
1595 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
1596 diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h
1597 index 6c2327e..85beac4 100644
1598 --- a/arch/arm/include/asm/barrier.h
1599 +++ b/arch/arm/include/asm/barrier.h
1600 @@ -67,7 +67,7 @@
1601 do { \
1602 compiletime_assert_atomic_type(*p); \
1603 smp_mb(); \
1604 - ACCESS_ONCE(*p) = (v); \
1605 + ACCESS_ONCE_RW(*p) = (v); \
1606 } while (0)
1607
1608 #define smp_load_acquire(p) \
1609 diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
1610 index 75fe66b..ba3dee4 100644
1611 --- a/arch/arm/include/asm/cache.h
1612 +++ b/arch/arm/include/asm/cache.h
1613 @@ -4,8 +4,10 @@
1614 #ifndef __ASMARM_CACHE_H
1615 #define __ASMARM_CACHE_H
1616
1617 +#include <linux/const.h>
1618 +
1619 #define L1_CACHE_SHIFT CONFIG_ARM_L1_CACHE_SHIFT
1620 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
1621 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
1622
1623 /*
1624 * Memory returned by kmalloc() may be used for DMA, so we must make
1625 @@ -24,5 +26,6 @@
1626 #endif
1627
1628 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
1629 +#define __read_only __attribute__ ((__section__(".data..read_only")))
1630
1631 #endif
1632 diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
1633 index 4812cda..9da8116 100644
1634 --- a/arch/arm/include/asm/cacheflush.h
1635 +++ b/arch/arm/include/asm/cacheflush.h
1636 @@ -116,7 +116,7 @@ struct cpu_cache_fns {
1637 void (*dma_unmap_area)(const void *, size_t, int);
1638
1639 void (*dma_flush_range)(const void *, const void *);
1640 -};
1641 +} __no_const;
1642
1643 /*
1644 * Select the calling method
1645 diff --git a/arch/arm/include/asm/checksum.h b/arch/arm/include/asm/checksum.h
1646 index 5233151..87a71fa 100644
1647 --- a/arch/arm/include/asm/checksum.h
1648 +++ b/arch/arm/include/asm/checksum.h
1649 @@ -37,7 +37,19 @@ __wsum
1650 csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum);
1651
1652 __wsum
1653 -csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1654 +__csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1655 +
1656 +static inline __wsum
1657 +csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr)
1658 +{
1659 + __wsum ret;
1660 + pax_open_userland();
1661 + ret = __csum_partial_copy_from_user(src, dst, len, sum, err_ptr);
1662 + pax_close_userland();
1663 + return ret;
1664 +}
1665 +
1666 +
1667
1668 /*
1669 * Fold a partial checksum without adding pseudo headers
1670 diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
1671 index 1692a05..1835802 100644
1672 --- a/arch/arm/include/asm/cmpxchg.h
1673 +++ b/arch/arm/include/asm/cmpxchg.h
1674 @@ -107,6 +107,10 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
1675 (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1676 sizeof(*(ptr))); \
1677 })
1678 +#define xchg_unchecked(ptr, x) ({ \
1679 + (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1680 + sizeof(*(ptr))); \
1681 +})
1682
1683 #include <asm-generic/cmpxchg-local.h>
1684
1685 diff --git a/arch/arm/include/asm/cpuidle.h b/arch/arm/include/asm/cpuidle.h
1686 index 0f84249..8e83c55 100644
1687 --- a/arch/arm/include/asm/cpuidle.h
1688 +++ b/arch/arm/include/asm/cpuidle.h
1689 @@ -32,7 +32,7 @@ struct device_node;
1690 struct cpuidle_ops {
1691 int (*suspend)(int cpu, unsigned long arg);
1692 int (*init)(struct device_node *, int cpu);
1693 -};
1694 +} __no_const;
1695
1696 struct of_cpuidle_method {
1697 const char *method;
1698 diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h
1699 index 6ddbe44..b5e38b1a 100644
1700 --- a/arch/arm/include/asm/domain.h
1701 +++ b/arch/arm/include/asm/domain.h
1702 @@ -48,18 +48,37 @@
1703 * Domain types
1704 */
1705 #define DOMAIN_NOACCESS 0
1706 -#define DOMAIN_CLIENT 1
1707 #ifdef CONFIG_CPU_USE_DOMAINS
1708 +#define DOMAIN_USERCLIENT 1
1709 +#define DOMAIN_KERNELCLIENT 1
1710 #define DOMAIN_MANAGER 3
1711 +#define DOMAIN_VECTORS DOMAIN_USER
1712 #else
1713 +
1714 +#ifdef CONFIG_PAX_KERNEXEC
1715 #define DOMAIN_MANAGER 1
1716 +#define DOMAIN_KERNEXEC 3
1717 +#else
1718 +#define DOMAIN_MANAGER 1
1719 +#endif
1720 +
1721 +#ifdef CONFIG_PAX_MEMORY_UDEREF
1722 +#define DOMAIN_USERCLIENT 0
1723 +#define DOMAIN_UDEREF 1
1724 +#define DOMAIN_VECTORS DOMAIN_KERNEL
1725 +#else
1726 +#define DOMAIN_USERCLIENT 1
1727 +#define DOMAIN_VECTORS DOMAIN_USER
1728 +#endif
1729 +#define DOMAIN_KERNELCLIENT 1
1730 +
1731 #endif
1732
1733 #define domain_val(dom,type) ((type) << (2*(dom)))
1734
1735 #ifndef __ASSEMBLY__
1736
1737 -#ifdef CONFIG_CPU_USE_DOMAINS
1738 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
1739 static inline void set_domain(unsigned val)
1740 {
1741 asm volatile(
1742 @@ -68,15 +87,7 @@ static inline void set_domain(unsigned val)
1743 isb();
1744 }
1745
1746 -#define modify_domain(dom,type) \
1747 - do { \
1748 - struct thread_info *thread = current_thread_info(); \
1749 - unsigned int domain = thread->cpu_domain; \
1750 - domain &= ~domain_val(dom, DOMAIN_MANAGER); \
1751 - thread->cpu_domain = domain | domain_val(dom, type); \
1752 - set_domain(thread->cpu_domain); \
1753 - } while (0)
1754 -
1755 +extern void modify_domain(unsigned int dom, unsigned int type);
1756 #else
1757 static inline void set_domain(unsigned val) { }
1758 static inline void modify_domain(unsigned dom, unsigned type) { }
1759 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
1760 index d2315ff..f60b47b 100644
1761 --- a/arch/arm/include/asm/elf.h
1762 +++ b/arch/arm/include/asm/elf.h
1763 @@ -117,7 +117,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
1764 the loader. We need to make sure that it is out of the way of the program
1765 that it will "exec", and that there is sufficient room for the brk. */
1766
1767 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1768 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1769 +
1770 +#ifdef CONFIG_PAX_ASLR
1771 +#define PAX_ELF_ET_DYN_BASE 0x00008000UL
1772 +
1773 +#define PAX_DELTA_MMAP_LEN ((current->personality == PER_LINUX_32BIT) ? 16 : 10)
1774 +#define PAX_DELTA_STACK_LEN ((current->personality == PER_LINUX_32BIT) ? 16 : 10)
1775 +#endif
1776
1777 /* When the program starts, a1 contains a pointer to a function to be
1778 registered with atexit, as per the SVR4 ABI. A value of 0 means we
1779 diff --git a/arch/arm/include/asm/fncpy.h b/arch/arm/include/asm/fncpy.h
1780 index de53547..52b9a28 100644
1781 --- a/arch/arm/include/asm/fncpy.h
1782 +++ b/arch/arm/include/asm/fncpy.h
1783 @@ -81,7 +81,9 @@
1784 BUG_ON((uintptr_t)(dest_buf) & (FNCPY_ALIGN - 1) || \
1785 (__funcp_address & ~(uintptr_t)1 & (FNCPY_ALIGN - 1))); \
1786 \
1787 + pax_open_kernel(); \
1788 memcpy(dest_buf, (void const *)(__funcp_address & ~1), size); \
1789 + pax_close_kernel(); \
1790 flush_icache_range((unsigned long)(dest_buf), \
1791 (unsigned long)(dest_buf) + (size)); \
1792 \
1793 diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
1794 index 5eed828..365e018 100644
1795 --- a/arch/arm/include/asm/futex.h
1796 +++ b/arch/arm/include/asm/futex.h
1797 @@ -46,6 +46,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1798 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
1799 return -EFAULT;
1800
1801 + pax_open_userland();
1802 +
1803 smp_mb();
1804 /* Prefetching cannot fault */
1805 prefetchw(uaddr);
1806 @@ -63,6 +65,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1807 : "cc", "memory");
1808 smp_mb();
1809
1810 + pax_close_userland();
1811 +
1812 *uval = val;
1813 return ret;
1814 }
1815 @@ -94,6 +98,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1816 return -EFAULT;
1817
1818 preempt_disable();
1819 + pax_open_userland();
1820 +
1821 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
1822 "1: " TUSER(ldr) " %1, [%4]\n"
1823 " teq %1, %2\n"
1824 @@ -104,6 +110,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1825 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
1826 : "cc", "memory");
1827
1828 + pax_close_userland();
1829 +
1830 *uval = val;
1831 preempt_enable();
1832
1833 @@ -131,6 +139,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
1834 preempt_disable();
1835 #endif
1836 pagefault_disable();
1837 + pax_open_userland();
1838
1839 switch (op) {
1840 case FUTEX_OP_SET:
1841 @@ -152,6 +161,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
1842 ret = -ENOSYS;
1843 }
1844
1845 + pax_close_userland();
1846 pagefault_enable();
1847 #ifndef CONFIG_SMP
1848 preempt_enable();
1849 diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h
1850 index 83eb2f7..ed77159 100644
1851 --- a/arch/arm/include/asm/kmap_types.h
1852 +++ b/arch/arm/include/asm/kmap_types.h
1853 @@ -4,6 +4,6 @@
1854 /*
1855 * This is the "bare minimum". AIO seems to require this.
1856 */
1857 -#define KM_TYPE_NR 16
1858 +#define KM_TYPE_NR 17
1859
1860 #endif
1861 diff --git a/arch/arm/include/asm/mach/dma.h b/arch/arm/include/asm/mach/dma.h
1862 index 9e614a1..3302cca 100644
1863 --- a/arch/arm/include/asm/mach/dma.h
1864 +++ b/arch/arm/include/asm/mach/dma.h
1865 @@ -22,7 +22,7 @@ struct dma_ops {
1866 int (*residue)(unsigned int, dma_t *); /* optional */
1867 int (*setspeed)(unsigned int, dma_t *, int); /* optional */
1868 const char *type;
1869 -};
1870 +} __do_const;
1871
1872 struct dma_struct {
1873 void *addr; /* single DMA address */
1874 diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
1875 index f98c7f3..e5c626d 100644
1876 --- a/arch/arm/include/asm/mach/map.h
1877 +++ b/arch/arm/include/asm/mach/map.h
1878 @@ -23,17 +23,19 @@ struct map_desc {
1879
1880 /* types 0-3 are defined in asm/io.h */
1881 enum {
1882 - MT_UNCACHED = 4,
1883 - MT_CACHECLEAN,
1884 - MT_MINICLEAN,
1885 + MT_UNCACHED_RW = 4,
1886 + MT_CACHECLEAN_RO,
1887 + MT_MINICLEAN_RO,
1888 MT_LOW_VECTORS,
1889 MT_HIGH_VECTORS,
1890 - MT_MEMORY_RWX,
1891 + __MT_MEMORY_RWX,
1892 MT_MEMORY_RW,
1893 - MT_ROM,
1894 - MT_MEMORY_RWX_NONCACHED,
1895 + MT_MEMORY_RX,
1896 + MT_ROM_RX,
1897 + MT_MEMORY_RW_NONCACHED,
1898 + MT_MEMORY_RX_NONCACHED,
1899 MT_MEMORY_RW_DTCM,
1900 - MT_MEMORY_RWX_ITCM,
1901 + MT_MEMORY_RX_ITCM,
1902 MT_MEMORY_RW_SO,
1903 MT_MEMORY_DMA_READY,
1904 };
1905 diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
1906 index 563b92f..689d58e 100644
1907 --- a/arch/arm/include/asm/outercache.h
1908 +++ b/arch/arm/include/asm/outercache.h
1909 @@ -39,7 +39,7 @@ struct outer_cache_fns {
1910 /* This is an ARM L2C thing */
1911 void (*write_sec)(unsigned long, unsigned);
1912 void (*configure)(const struct l2x0_regs *);
1913 -};
1914 +} __no_const;
1915
1916 extern struct outer_cache_fns outer_cache;
1917
1918 diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
1919 index 4355f0e..cd9168e 100644
1920 --- a/arch/arm/include/asm/page.h
1921 +++ b/arch/arm/include/asm/page.h
1922 @@ -23,6 +23,7 @@
1923
1924 #else
1925
1926 +#include <linux/compiler.h>
1927 #include <asm/glue.h>
1928
1929 /*
1930 @@ -114,7 +115,7 @@ struct cpu_user_fns {
1931 void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr);
1932 void (*cpu_copy_user_highpage)(struct page *to, struct page *from,
1933 unsigned long vaddr, struct vm_area_struct *vma);
1934 -};
1935 +} __no_const;
1936
1937 #ifdef MULTI_USER
1938 extern struct cpu_user_fns cpu_user;
1939 diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
1940 index 19cfab5..3f5c7e9 100644
1941 --- a/arch/arm/include/asm/pgalloc.h
1942 +++ b/arch/arm/include/asm/pgalloc.h
1943 @@ -17,6 +17,7 @@
1944 #include <asm/processor.h>
1945 #include <asm/cacheflush.h>
1946 #include <asm/tlbflush.h>
1947 +#include <asm/system_info.h>
1948
1949 #define check_pgt_cache() do { } while (0)
1950
1951 @@ -43,6 +44,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1952 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
1953 }
1954
1955 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1956 +{
1957 + pud_populate(mm, pud, pmd);
1958 +}
1959 +
1960 #else /* !CONFIG_ARM_LPAE */
1961
1962 /*
1963 @@ -51,6 +57,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1964 #define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); })
1965 #define pmd_free(mm, pmd) do { } while (0)
1966 #define pud_populate(mm,pmd,pte) BUG()
1967 +#define pud_populate_kernel(mm,pmd,pte) BUG()
1968
1969 #endif /* CONFIG_ARM_LPAE */
1970
1971 @@ -128,6 +135,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
1972 __free_page(pte);
1973 }
1974
1975 +static inline void __section_update(pmd_t *pmdp, unsigned long addr, pmdval_t prot)
1976 +{
1977 +#ifdef CONFIG_ARM_LPAE
1978 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1979 +#else
1980 + if (addr & SECTION_SIZE)
1981 + pmdp[1] = __pmd(pmd_val(pmdp[1]) | prot);
1982 + else
1983 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1984 +#endif
1985 + flush_pmd_entry(pmdp);
1986 +}
1987 +
1988 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
1989 pmdval_t prot)
1990 {
1991 diff --git a/arch/arm/include/asm/pgtable-2level-hwdef.h b/arch/arm/include/asm/pgtable-2level-hwdef.h
1992 index 5e68278..1869bae 100644
1993 --- a/arch/arm/include/asm/pgtable-2level-hwdef.h
1994 +++ b/arch/arm/include/asm/pgtable-2level-hwdef.h
1995 @@ -27,7 +27,7 @@
1996 /*
1997 * - section
1998 */
1999 -#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
2000 +#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
2001 #define PMD_SECT_BUFFERABLE (_AT(pmdval_t, 1) << 2)
2002 #define PMD_SECT_CACHEABLE (_AT(pmdval_t, 1) << 3)
2003 #define PMD_SECT_XN (_AT(pmdval_t, 1) << 4) /* v6 */
2004 @@ -39,6 +39,7 @@
2005 #define PMD_SECT_nG (_AT(pmdval_t, 1) << 17) /* v6 */
2006 #define PMD_SECT_SUPER (_AT(pmdval_t, 1) << 18) /* v6 */
2007 #define PMD_SECT_AF (_AT(pmdval_t, 0))
2008 +#define PMD_SECT_RDONLY (_AT(pmdval_t, 0))
2009
2010 #define PMD_SECT_UNCACHED (_AT(pmdval_t, 0))
2011 #define PMD_SECT_BUFFERED (PMD_SECT_BUFFERABLE)
2012 @@ -68,6 +69,7 @@
2013 * - extended small page/tiny page
2014 */
2015 #define PTE_EXT_XN (_AT(pteval_t, 1) << 0) /* v6 */
2016 +#define PTE_EXT_PXN (_AT(pteval_t, 1) << 2) /* v7 */
2017 #define PTE_EXT_AP_MASK (_AT(pteval_t, 3) << 4)
2018 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4)
2019 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4)
2020 diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
2021 index aeddd28..207745c 100644
2022 --- a/arch/arm/include/asm/pgtable-2level.h
2023 +++ b/arch/arm/include/asm/pgtable-2level.h
2024 @@ -127,6 +127,9 @@
2025 #define L_PTE_SHARED (_AT(pteval_t, 1) << 10) /* shared(v6), coherent(xsc3) */
2026 #define L_PTE_NONE (_AT(pteval_t, 1) << 11)
2027
2028 +/* Two-level page tables only have PXN in the PGD, not in the PTE. */
2029 +#define L_PTE_PXN (_AT(pteval_t, 0))
2030 +
2031 /*
2032 * These are the memory types, defined to be compatible with
2033 * pre-ARMv6 CPUs cacheable and bufferable bits: n/a,n/a,C,B
2034 diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
2035 index a745a2a..481350a 100644
2036 --- a/arch/arm/include/asm/pgtable-3level.h
2037 +++ b/arch/arm/include/asm/pgtable-3level.h
2038 @@ -80,6 +80,7 @@
2039 #define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
2040 #define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
2041 #define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
2042 +#define L_PTE_PXN (_AT(pteval_t, 1) << 53) /* PXN */
2043 #define L_PTE_XN (_AT(pteval_t, 1) << 54) /* XN */
2044 #define L_PTE_DIRTY (_AT(pteval_t, 1) << 55)
2045 #define L_PTE_SPECIAL (_AT(pteval_t, 1) << 56)
2046 @@ -91,10 +92,12 @@
2047 #define L_PMD_SECT_SPLITTING (_AT(pmdval_t, 1) << 56)
2048 #define L_PMD_SECT_NONE (_AT(pmdval_t, 1) << 57)
2049 #define L_PMD_SECT_RDONLY (_AT(pteval_t, 1) << 58)
2050 +#define PMD_SECT_RDONLY PMD_SECT_AP2
2051
2052 /*
2053 * To be used in assembly code with the upper page attributes.
2054 */
2055 +#define L_PTE_PXN_HIGH (1 << (53 - 32))
2056 #define L_PTE_XN_HIGH (1 << (54 - 32))
2057 #define L_PTE_DIRTY_HIGH (1 << (55 - 32))
2058
2059 diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
2060 index f403541..b10df68 100644
2061 --- a/arch/arm/include/asm/pgtable.h
2062 +++ b/arch/arm/include/asm/pgtable.h
2063 @@ -33,6 +33,9 @@
2064 #include <asm/pgtable-2level.h>
2065 #endif
2066
2067 +#define ktla_ktva(addr) (addr)
2068 +#define ktva_ktla(addr) (addr)
2069 +
2070 /*
2071 * Just any arbitrary offset to the start of the vmalloc VM area: the
2072 * current 8MB value just means that there will be a 8MB "hole" after the
2073 @@ -48,6 +51,9 @@
2074 #define LIBRARY_TEXT_START 0x0c000000
2075
2076 #ifndef __ASSEMBLY__
2077 +extern pteval_t __supported_pte_mask;
2078 +extern pmdval_t __supported_pmd_mask;
2079 +
2080 extern void __pte_error(const char *file, int line, pte_t);
2081 extern void __pmd_error(const char *file, int line, pmd_t);
2082 extern void __pgd_error(const char *file, int line, pgd_t);
2083 @@ -56,6 +62,48 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2084 #define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
2085 #define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd)
2086
2087 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
2088 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
2089 +
2090 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2091 +#include <asm/domain.h>
2092 +#include <linux/thread_info.h>
2093 +#include <linux/preempt.h>
2094 +
2095 +static inline int test_domain(int domain, int domaintype)
2096 +{
2097 + return ((current_thread_info()->cpu_domain) & domain_val(domain, 3)) == domain_val(domain, domaintype);
2098 +}
2099 +#endif
2100 +
2101 +#ifdef CONFIG_PAX_KERNEXEC
2102 +static inline unsigned long pax_open_kernel(void) {
2103 +#ifdef CONFIG_ARM_LPAE
2104 + /* TODO */
2105 +#else
2106 + preempt_disable();
2107 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC));
2108 + modify_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC);
2109 +#endif
2110 + return 0;
2111 +}
2112 +
2113 +static inline unsigned long pax_close_kernel(void) {
2114 +#ifdef CONFIG_ARM_LPAE
2115 + /* TODO */
2116 +#else
2117 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_MANAGER));
2118 + /* DOMAIN_MANAGER = "client" under KERNEXEC */
2119 + modify_domain(DOMAIN_KERNEL, DOMAIN_MANAGER);
2120 + preempt_enable_no_resched();
2121 +#endif
2122 + return 0;
2123 +}
2124 +#else
2125 +static inline unsigned long pax_open_kernel(void) { return 0; }
2126 +static inline unsigned long pax_close_kernel(void) { return 0; }
2127 +#endif
2128 +
2129 /*
2130 * This is the lowest virtual address we can permit any user space
2131 * mapping to be mapped at. This is particularly important for
2132 @@ -75,8 +123,8 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2133 /*
2134 * The pgprot_* and protection_map entries will be fixed up in runtime
2135 * to include the cachable and bufferable bits based on memory policy,
2136 - * as well as any architecture dependent bits like global/ASID and SMP
2137 - * shared mapping bits.
2138 + * as well as any architecture dependent bits like global/ASID, PXN,
2139 + * and SMP shared mapping bits.
2140 */
2141 #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG
2142
2143 @@ -307,7 +355,7 @@ static inline pte_t pte_mknexec(pte_t pte)
2144 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
2145 {
2146 const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |
2147 - L_PTE_NONE | L_PTE_VALID;
2148 + L_PTE_NONE | L_PTE_VALID | __supported_pte_mask;
2149 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
2150 return pte;
2151 }
2152 diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h
2153 index c25ef3e..735f14b 100644
2154 --- a/arch/arm/include/asm/psci.h
2155 +++ b/arch/arm/include/asm/psci.h
2156 @@ -32,7 +32,7 @@ struct psci_operations {
2157 int (*affinity_info)(unsigned long target_affinity,
2158 unsigned long lowest_affinity_level);
2159 int (*migrate_info_type)(void);
2160 -};
2161 +} __no_const;
2162
2163 extern struct psci_operations psci_ops;
2164 extern struct smp_operations psci_smp_ops;
2165 diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
2166 index 2f3ac1b..67182ae0 100644
2167 --- a/arch/arm/include/asm/smp.h
2168 +++ b/arch/arm/include/asm/smp.h
2169 @@ -108,7 +108,7 @@ struct smp_operations {
2170 int (*cpu_disable)(unsigned int cpu);
2171 #endif
2172 #endif
2173 -};
2174 +} __no_const;
2175
2176 struct of_cpu_method {
2177 const char *method;
2178 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
2179 index bd32ede..bd90a0b 100644
2180 --- a/arch/arm/include/asm/thread_info.h
2181 +++ b/arch/arm/include/asm/thread_info.h
2182 @@ -74,9 +74,9 @@ struct thread_info {
2183 .flags = 0, \
2184 .preempt_count = INIT_PREEMPT_COUNT, \
2185 .addr_limit = KERNEL_DS, \
2186 - .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
2187 - domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
2188 - domain_val(DOMAIN_IO, DOMAIN_CLIENT), \
2189 + .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_USERCLIENT) | \
2190 + domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT) | \
2191 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT), \
2192 }
2193
2194 #define init_thread_info (init_thread_union.thread_info)
2195 @@ -152,7 +152,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2196 #define TIF_SYSCALL_AUDIT 9
2197 #define TIF_SYSCALL_TRACEPOINT 10
2198 #define TIF_SECCOMP 11 /* seccomp syscall filtering active */
2199 -#define TIF_NOHZ 12 /* in adaptive nohz mode */
2200 +/* within 8 bits of TIF_SYSCALL_TRACE
2201 + * to meet flexible second operand requirements
2202 + */
2203 +#define TIF_GRSEC_SETXID 12
2204 +#define TIF_NOHZ 13 /* in adaptive nohz mode */
2205 #define TIF_USING_IWMMXT 17
2206 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
2207 #define TIF_RESTORE_SIGMASK 20
2208 @@ -166,10 +170,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2209 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
2210 #define _TIF_SECCOMP (1 << TIF_SECCOMP)
2211 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
2212 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
2213
2214 /* Checks for any syscall work in entry-common.S */
2215 #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
2216 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
2217 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | _TIF_GRSEC_SETXID)
2218
2219 /*
2220 * Change these and you break ASM code in entry-common.S
2221 diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h
2222 index 5f833f7..76e6644 100644
2223 --- a/arch/arm/include/asm/tls.h
2224 +++ b/arch/arm/include/asm/tls.h
2225 @@ -3,6 +3,7 @@
2226
2227 #include <linux/compiler.h>
2228 #include <asm/thread_info.h>
2229 +#include <asm/pgtable.h>
2230
2231 #ifdef __ASSEMBLY__
2232 #include <asm/asm-offsets.h>
2233 @@ -89,7 +90,9 @@ static inline void set_tls(unsigned long val)
2234 * at 0xffff0fe0 must be used instead. (see
2235 * entry-armv.S for details)
2236 */
2237 + pax_open_kernel();
2238 *((unsigned int *)0xffff0ff0) = val;
2239 + pax_close_kernel();
2240 #endif
2241 }
2242
2243 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
2244 index 74b17d0..7e6da4b 100644
2245 --- a/arch/arm/include/asm/uaccess.h
2246 +++ b/arch/arm/include/asm/uaccess.h
2247 @@ -18,6 +18,7 @@
2248 #include <asm/domain.h>
2249 #include <asm/unified.h>
2250 #include <asm/compiler.h>
2251 +#include <asm/pgtable.h>
2252
2253 #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
2254 #include <asm-generic/uaccess-unaligned.h>
2255 @@ -70,11 +71,38 @@ extern int __put_user_bad(void);
2256 static inline void set_fs(mm_segment_t fs)
2257 {
2258 current_thread_info()->addr_limit = fs;
2259 - modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_CLIENT : DOMAIN_MANAGER);
2260 + modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_KERNELCLIENT : DOMAIN_MANAGER);
2261 }
2262
2263 #define segment_eq(a, b) ((a) == (b))
2264
2265 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
2266 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
2267 +
2268 +static inline void pax_open_userland(void)
2269 +{
2270 +
2271 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2272 + if (segment_eq(get_fs(), USER_DS)) {
2273 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_UDEREF));
2274 + modify_domain(DOMAIN_USER, DOMAIN_UDEREF);
2275 + }
2276 +#endif
2277 +
2278 +}
2279 +
2280 +static inline void pax_close_userland(void)
2281 +{
2282 +
2283 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2284 + if (segment_eq(get_fs(), USER_DS)) {
2285 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_NOACCESS));
2286 + modify_domain(DOMAIN_USER, DOMAIN_NOACCESS);
2287 + }
2288 +#endif
2289 +
2290 +}
2291 +
2292 #define __addr_ok(addr) ({ \
2293 unsigned long flag; \
2294 __asm__("cmp %2, %0; movlo %0, #0" \
2295 @@ -198,8 +226,12 @@ extern int __get_user_64t_4(void *);
2296
2297 #define get_user(x, p) \
2298 ({ \
2299 + int __e; \
2300 might_fault(); \
2301 - __get_user_check(x, p); \
2302 + pax_open_userland(); \
2303 + __e = __get_user_check((x), (p)); \
2304 + pax_close_userland(); \
2305 + __e; \
2306 })
2307
2308 extern int __put_user_1(void *, unsigned int);
2309 @@ -244,8 +276,12 @@ extern int __put_user_8(void *, unsigned long long);
2310
2311 #define put_user(x, p) \
2312 ({ \
2313 + int __e; \
2314 might_fault(); \
2315 - __put_user_check(x, p); \
2316 + pax_open_userland(); \
2317 + __e = __put_user_check((x), (p)); \
2318 + pax_close_userland(); \
2319 + __e; \
2320 })
2321
2322 #else /* CONFIG_MMU */
2323 @@ -269,6 +305,7 @@ static inline void set_fs(mm_segment_t fs)
2324
2325 #endif /* CONFIG_MMU */
2326
2327 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
2328 #define access_ok(type, addr, size) (__range_ok(addr, size) == 0)
2329
2330 #define user_addr_max() \
2331 @@ -286,13 +323,17 @@ static inline void set_fs(mm_segment_t fs)
2332 #define __get_user(x, ptr) \
2333 ({ \
2334 long __gu_err = 0; \
2335 + pax_open_userland(); \
2336 __get_user_err((x), (ptr), __gu_err); \
2337 + pax_close_userland(); \
2338 __gu_err; \
2339 })
2340
2341 #define __get_user_error(x, ptr, err) \
2342 ({ \
2343 + pax_open_userland(); \
2344 __get_user_err((x), (ptr), err); \
2345 + pax_close_userland(); \
2346 (void) 0; \
2347 })
2348
2349 @@ -368,13 +409,17 @@ do { \
2350 #define __put_user(x, ptr) \
2351 ({ \
2352 long __pu_err = 0; \
2353 + pax_open_userland(); \
2354 __put_user_err((x), (ptr), __pu_err); \
2355 + pax_close_userland(); \
2356 __pu_err; \
2357 })
2358
2359 #define __put_user_error(x, ptr, err) \
2360 ({ \
2361 + pax_open_userland(); \
2362 __put_user_err((x), (ptr), err); \
2363 + pax_close_userland(); \
2364 (void) 0; \
2365 })
2366
2367 @@ -474,11 +519,44 @@ do { \
2368
2369
2370 #ifdef CONFIG_MMU
2371 -extern unsigned long __must_check __copy_from_user(void *to, const void __user *from, unsigned long n);
2372 -extern unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n);
2373 -extern unsigned long __must_check __copy_to_user_std(void __user *to, const void *from, unsigned long n);
2374 -extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n);
2375 -extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned long n);
2376 +extern unsigned long __must_check __size_overflow(3) ___copy_from_user(void *to, const void __user *from, unsigned long n);
2377 +extern unsigned long __must_check __size_overflow(3) ___copy_to_user(void __user *to, const void *from, unsigned long n);
2378 +
2379 +static inline unsigned long __must_check __size_overflow(3) __copy_from_user(void *to, const void __user *from, unsigned long n)
2380 +{
2381 + unsigned long ret;
2382 +
2383 + check_object_size(to, n, false);
2384 + pax_open_userland();
2385 + ret = ___copy_from_user(to, from, n);
2386 + pax_close_userland();
2387 + return ret;
2388 +}
2389 +
2390 +static inline unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n)
2391 +{
2392 + unsigned long ret;
2393 +
2394 + check_object_size(from, n, true);
2395 + pax_open_userland();
2396 + ret = ___copy_to_user(to, from, n);
2397 + pax_close_userland();
2398 + return ret;
2399 +}
2400 +
2401 +extern unsigned long __must_check __size_overflow(3) __copy_to_user_std(void __user *to, const void *from, unsigned long n);
2402 +extern unsigned long __must_check __size_overflow(2) ___clear_user(void __user *addr, unsigned long n);
2403 +extern unsigned long __must_check __size_overflow(2) __clear_user_std(void __user *addr, unsigned long n);
2404 +
2405 +static inline unsigned long __must_check __clear_user(void __user *addr, unsigned long n)
2406 +{
2407 + unsigned long ret;
2408 + pax_open_userland();
2409 + ret = ___clear_user(addr, n);
2410 + pax_close_userland();
2411 + return ret;
2412 +}
2413 +
2414 #else
2415 #define __copy_from_user(to, from, n) (memcpy(to, (void __force *)from, n), 0)
2416 #define __copy_to_user(to, from, n) (memcpy((void __force *)to, from, n), 0)
2417 @@ -487,6 +565,9 @@ extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned l
2418
2419 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
2420 {
2421 + if ((long)n < 0)
2422 + return n;
2423 +
2424 if (access_ok(VERIFY_READ, from, n))
2425 n = __copy_from_user(to, from, n);
2426 else /* security hole - plug it */
2427 @@ -496,6 +577,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
2428
2429 static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
2430 {
2431 + if ((long)n < 0)
2432 + return n;
2433 +
2434 if (access_ok(VERIFY_WRITE, to, n))
2435 n = __copy_to_user(to, from, n);
2436 return n;
2437 diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h
2438 index 5af0ed1..cea83883 100644
2439 --- a/arch/arm/include/uapi/asm/ptrace.h
2440 +++ b/arch/arm/include/uapi/asm/ptrace.h
2441 @@ -92,7 +92,7 @@
2442 * ARMv7 groups of PSR bits
2443 */
2444 #define APSR_MASK 0xf80f0000 /* N, Z, C, V, Q and GE flags */
2445 -#define PSR_ISET_MASK 0x01000010 /* ISA state (J, T) mask */
2446 +#define PSR_ISET_MASK 0x01000020 /* ISA state (J, T) mask */
2447 #define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */
2448 #define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */
2449
2450 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
2451 index 5e5a51a..b21eeef 100644
2452 --- a/arch/arm/kernel/armksyms.c
2453 +++ b/arch/arm/kernel/armksyms.c
2454 @@ -58,7 +58,7 @@ EXPORT_SYMBOL(arm_delay_ops);
2455
2456 /* networking */
2457 EXPORT_SYMBOL(csum_partial);
2458 -EXPORT_SYMBOL(csum_partial_copy_from_user);
2459 +EXPORT_SYMBOL(__csum_partial_copy_from_user);
2460 EXPORT_SYMBOL(csum_partial_copy_nocheck);
2461 EXPORT_SYMBOL(__csum_ipv6_magic);
2462
2463 @@ -97,9 +97,9 @@ EXPORT_SYMBOL(mmiocpy);
2464 #ifdef CONFIG_MMU
2465 EXPORT_SYMBOL(copy_page);
2466
2467 -EXPORT_SYMBOL(__copy_from_user);
2468 -EXPORT_SYMBOL(__copy_to_user);
2469 -EXPORT_SYMBOL(__clear_user);
2470 +EXPORT_SYMBOL(___copy_from_user);
2471 +EXPORT_SYMBOL(___copy_to_user);
2472 +EXPORT_SYMBOL(___clear_user);
2473
2474 EXPORT_SYMBOL(__get_user_1);
2475 EXPORT_SYMBOL(__get_user_2);
2476 diff --git a/arch/arm/kernel/cpuidle.c b/arch/arm/kernel/cpuidle.c
2477 index 318da33..373689f 100644
2478 --- a/arch/arm/kernel/cpuidle.c
2479 +++ b/arch/arm/kernel/cpuidle.c
2480 @@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
2481 static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
2482 __used __section(__cpuidle_method_of_table_end);
2483
2484 -static struct cpuidle_ops cpuidle_ops[NR_CPUS];
2485 +static struct cpuidle_ops cpuidle_ops[NR_CPUS] __read_only;
2486
2487 /**
2488 * arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
2489 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
2490 index cb4fb1e..dc7fcaf 100644
2491 --- a/arch/arm/kernel/entry-armv.S
2492 +++ b/arch/arm/kernel/entry-armv.S
2493 @@ -50,6 +50,87 @@
2494 9997:
2495 .endm
2496
2497 + .macro pax_enter_kernel
2498 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2499 + @ make aligned space for saved DACR
2500 + sub sp, sp, #8
2501 + @ save regs
2502 + stmdb sp!, {r1, r2}
2503 + @ read DACR from cpu_domain into r1
2504 + mov r2, sp
2505 + @ assume 8K pages, since we have to split the immediate in two
2506 + bic r2, r2, #(0x1fc0)
2507 + bic r2, r2, #(0x3f)
2508 + ldr r1, [r2, #TI_CPU_DOMAIN]
2509 + @ store old DACR on stack
2510 + str r1, [sp, #8]
2511 +#ifdef CONFIG_PAX_KERNEXEC
2512 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2513 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2514 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2515 +#endif
2516 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2517 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2518 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2519 +#endif
2520 + @ write r1 to current_thread_info()->cpu_domain
2521 + str r1, [r2, #TI_CPU_DOMAIN]
2522 + @ write r1 to DACR
2523 + mcr p15, 0, r1, c3, c0, 0
2524 + @ instruction sync
2525 + instr_sync
2526 + @ restore regs
2527 + ldmia sp!, {r1, r2}
2528 +#endif
2529 + .endm
2530 +
2531 + .macro pax_open_userland
2532 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2533 + @ save regs
2534 + stmdb sp!, {r0, r1}
2535 + @ read DACR from cpu_domain into r1
2536 + mov r0, sp
2537 + @ assume 8K pages, since we have to split the immediate in two
2538 + bic r0, r0, #(0x1fc0)
2539 + bic r0, r0, #(0x3f)
2540 + ldr r1, [r0, #TI_CPU_DOMAIN]
2541 + @ set current DOMAIN_USER to DOMAIN_CLIENT
2542 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2543 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2544 + @ write r1 to current_thread_info()->cpu_domain
2545 + str r1, [r0, #TI_CPU_DOMAIN]
2546 + @ write r1 to DACR
2547 + mcr p15, 0, r1, c3, c0, 0
2548 + @ instruction sync
2549 + instr_sync
2550 + @ restore regs
2551 + ldmia sp!, {r0, r1}
2552 +#endif
2553 + .endm
2554 +
2555 + .macro pax_close_userland
2556 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2557 + @ save regs
2558 + stmdb sp!, {r0, r1}
2559 + @ read DACR from cpu_domain into r1
2560 + mov r0, sp
2561 + @ assume 8K pages, since we have to split the immediate in two
2562 + bic r0, r0, #(0x1fc0)
2563 + bic r0, r0, #(0x3f)
2564 + ldr r1, [r0, #TI_CPU_DOMAIN]
2565 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2566 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2567 + @ write r1 to current_thread_info()->cpu_domain
2568 + str r1, [r0, #TI_CPU_DOMAIN]
2569 + @ write r1 to DACR
2570 + mcr p15, 0, r1, c3, c0, 0
2571 + @ instruction sync
2572 + instr_sync
2573 + @ restore regs
2574 + ldmia sp!, {r0, r1}
2575 +#endif
2576 + .endm
2577 +
2578 .macro pabt_helper
2579 @ PABORT handler takes pt_regs in r2, fault address in r4 and psr in r5
2580 #ifdef MULTI_PABORT
2581 @@ -92,11 +173,15 @@
2582 * Invalid mode handlers
2583 */
2584 .macro inv_entry, reason
2585 +
2586 + pax_enter_kernel
2587 +
2588 sub sp, sp, #S_FRAME_SIZE
2589 ARM( stmib sp, {r1 - lr} )
2590 THUMB( stmia sp, {r0 - r12} )
2591 THUMB( str sp, [sp, #S_SP] )
2592 THUMB( str lr, [sp, #S_LR] )
2593 +
2594 mov r1, #\reason
2595 .endm
2596
2597 @@ -152,7 +237,11 @@ ENDPROC(__und_invalid)
2598 .macro svc_entry, stack_hole=0, trace=1
2599 UNWIND(.fnstart )
2600 UNWIND(.save {r0 - pc} )
2601 +
2602 + pax_enter_kernel
2603 +
2604 sub sp, sp, #(S_FRAME_SIZE + \stack_hole - 4)
2605 +
2606 #ifdef CONFIG_THUMB2_KERNEL
2607 SPFIX( str r0, [sp] ) @ temporarily saved
2608 SPFIX( mov r0, sp )
2609 @@ -167,7 +256,12 @@ ENDPROC(__und_invalid)
2610 ldmia r0, {r3 - r5}
2611 add r7, sp, #S_SP - 4 @ here for interlock avoidance
2612 mov r6, #-1 @ "" "" "" ""
2613 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2614 + @ offset sp by 8 as done in pax_enter_kernel
2615 + add r2, sp, #(S_FRAME_SIZE + \stack_hole + 4)
2616 +#else
2617 add r2, sp, #(S_FRAME_SIZE + \stack_hole - 4)
2618 +#endif
2619 SPFIX( addeq r2, r2, #4 )
2620 str r3, [sp, #-4]! @ save the "real" r0 copied
2621 @ from the exception stack
2622 @@ -371,6 +465,9 @@ ENDPROC(__fiq_abt)
2623 .macro usr_entry, trace=1
2624 UNWIND(.fnstart )
2625 UNWIND(.cantunwind ) @ don't unwind the user space
2626 +
2627 + pax_enter_kernel_user
2628 +
2629 sub sp, sp, #S_FRAME_SIZE
2630 ARM( stmib sp, {r1 - r12} )
2631 THUMB( stmia sp, {r0 - r12} )
2632 @@ -481,7 +578,9 @@ __und_usr:
2633 tst r3, #PSR_T_BIT @ Thumb mode?
2634 bne __und_usr_thumb
2635 sub r4, r2, #4 @ ARM instr at LR - 4
2636 + pax_open_userland
2637 1: ldrt r0, [r4]
2638 + pax_close_userland
2639 ARM_BE8(rev r0, r0) @ little endian instruction
2640
2641 @ r0 = 32-bit ARM instruction which caused the exception
2642 @@ -515,11 +614,15 @@ __und_usr_thumb:
2643 */
2644 .arch armv6t2
2645 #endif
2646 + pax_open_userland
2647 2: ldrht r5, [r4]
2648 + pax_close_userland
2649 ARM_BE8(rev16 r5, r5) @ little endian instruction
2650 cmp r5, #0xe800 @ 32bit instruction if xx != 0
2651 blo __und_usr_fault_16 @ 16bit undefined instruction
2652 + pax_open_userland
2653 3: ldrht r0, [r2]
2654 + pax_close_userland
2655 ARM_BE8(rev16 r0, r0) @ little endian instruction
2656 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4
2657 str r2, [sp, #S_PC] @ it's a 2x16bit instr, update
2658 @@ -549,7 +652,8 @@ ENDPROC(__und_usr)
2659 */
2660 .pushsection .text.fixup, "ax"
2661 .align 2
2662 -4: str r4, [sp, #S_PC] @ retry current instruction
2663 +4: pax_close_userland
2664 + str r4, [sp, #S_PC] @ retry current instruction
2665 ret r9
2666 .popsection
2667 .pushsection __ex_table,"a"
2668 @@ -769,7 +873,7 @@ ENTRY(__switch_to)
2669 THUMB( str lr, [ip], #4 )
2670 ldr r4, [r2, #TI_TP_VALUE]
2671 ldr r5, [r2, #TI_TP_VALUE + 4]
2672 -#ifdef CONFIG_CPU_USE_DOMAINS
2673 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2674 ldr r6, [r2, #TI_CPU_DOMAIN]
2675 #endif
2676 switch_tls r1, r4, r5, r3, r7
2677 @@ -778,7 +882,7 @@ ENTRY(__switch_to)
2678 ldr r8, =__stack_chk_guard
2679 ldr r7, [r7, #TSK_STACK_CANARY]
2680 #endif
2681 -#ifdef CONFIG_CPU_USE_DOMAINS
2682 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2683 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
2684 #endif
2685 mov r5, r0
2686 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
2687 index b48dd4f..9f9a72f 100644
2688 --- a/arch/arm/kernel/entry-common.S
2689 +++ b/arch/arm/kernel/entry-common.S
2690 @@ -11,18 +11,46 @@
2691 #include <asm/assembler.h>
2692 #include <asm/unistd.h>
2693 #include <asm/ftrace.h>
2694 +#include <asm/domain.h>
2695 #include <asm/unwind.h>
2696
2697 +#include "entry-header.S"
2698 +
2699 #ifdef CONFIG_NEED_RET_TO_USER
2700 #include <mach/entry-macro.S>
2701 #else
2702 .macro arch_ret_to_user, tmp1, tmp2
2703 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2704 + @ save regs
2705 + stmdb sp!, {r1, r2}
2706 + @ read DACR from cpu_domain into r1
2707 + mov r2, sp
2708 + @ assume 8K pages, since we have to split the immediate in two
2709 + bic r2, r2, #(0x1fc0)
2710 + bic r2, r2, #(0x3f)
2711 + ldr r1, [r2, #TI_CPU_DOMAIN]
2712 +#ifdef CONFIG_PAX_KERNEXEC
2713 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2714 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2715 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2716 +#endif
2717 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2718 + @ set current DOMAIN_USER to DOMAIN_UDEREF
2719 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2720 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2721 +#endif
2722 + @ write r1 to current_thread_info()->cpu_domain
2723 + str r1, [r2, #TI_CPU_DOMAIN]
2724 + @ write r1 to DACR
2725 + mcr p15, 0, r1, c3, c0, 0
2726 + @ instruction sync
2727 + instr_sync
2728 + @ restore regs
2729 + ldmia sp!, {r1, r2}
2730 +#endif
2731 .endm
2732 #endif
2733
2734 -#include "entry-header.S"
2735 -
2736 -
2737 .align 5
2738 /*
2739 * This is the fast syscall return path. We do as little as
2740 @@ -174,6 +202,12 @@ ENTRY(vector_swi)
2741 USER( ldr scno, [lr, #-4] ) @ get SWI instruction
2742 #endif
2743
2744 + /*
2745 + * do this here to avoid a performance hit of wrapping the code above
2746 + * that directly dereferences userland to parse the SWI instruction
2747 + */
2748 + pax_enter_kernel_user
2749 +
2750 adr tbl, sys_call_table @ load syscall table pointer
2751
2752 #if defined(CONFIG_OABI_COMPAT)
2753 diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
2754 index 1a0045a..9b4f34d 100644
2755 --- a/arch/arm/kernel/entry-header.S
2756 +++ b/arch/arm/kernel/entry-header.S
2757 @@ -196,6 +196,60 @@
2758 msr cpsr_c, \rtemp @ switch back to the SVC mode
2759 .endm
2760
2761 + .macro pax_enter_kernel_user
2762 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2763 + @ save regs
2764 + stmdb sp!, {r0, r1}
2765 + @ read DACR from cpu_domain into r1
2766 + mov r0, sp
2767 + @ assume 8K pages, since we have to split the immediate in two
2768 + bic r0, r0, #(0x1fc0)
2769 + bic r0, r0, #(0x3f)
2770 + ldr r1, [r0, #TI_CPU_DOMAIN]
2771 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2772 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2773 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2774 +#endif
2775 +#ifdef CONFIG_PAX_KERNEXEC
2776 + @ set current DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2777 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2778 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2779 +#endif
2780 + @ write r1 to current_thread_info()->cpu_domain
2781 + str r1, [r0, #TI_CPU_DOMAIN]
2782 + @ write r1 to DACR
2783 + mcr p15, 0, r1, c3, c0, 0
2784 + @ instruction sync
2785 + instr_sync
2786 + @ restore regs
2787 + ldmia sp!, {r0, r1}
2788 +#endif
2789 + .endm
2790 +
2791 + .macro pax_exit_kernel
2792 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2793 + @ save regs
2794 + stmdb sp!, {r0, r1}
2795 + @ read old DACR from stack into r1
2796 + ldr r1, [sp, #(8 + S_SP)]
2797 + sub r1, r1, #8
2798 + ldr r1, [r1]
2799 +
2800 + @ write r1 to current_thread_info()->cpu_domain
2801 + mov r0, sp
2802 + @ assume 8K pages, since we have to split the immediate in two
2803 + bic r0, r0, #(0x1fc0)
2804 + bic r0, r0, #(0x3f)
2805 + str r1, [r0, #TI_CPU_DOMAIN]
2806 + @ write r1 to DACR
2807 + mcr p15, 0, r1, c3, c0, 0
2808 + @ instruction sync
2809 + instr_sync
2810 + @ restore regs
2811 + ldmia sp!, {r0, r1}
2812 +#endif
2813 + .endm
2814 +
2815 #ifndef CONFIG_THUMB2_KERNEL
2816 .macro svc_exit, rpsr, irq = 0
2817 .if \irq != 0
2818 @@ -215,6 +269,9 @@
2819 blne trace_hardirqs_off
2820 #endif
2821 .endif
2822 +
2823 + pax_exit_kernel
2824 +
2825 msr spsr_cxsf, \rpsr
2826 #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K)
2827 @ We must avoid clrex due to Cortex-A15 erratum #830321
2828 @@ -291,6 +348,9 @@
2829 blne trace_hardirqs_off
2830 #endif
2831 .endif
2832 +
2833 + pax_exit_kernel
2834 +
2835 ldr lr, [sp, #S_SP] @ top of the stack
2836 ldrd r0, r1, [sp, #S_LR] @ calling lr and pc
2837
2838 diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
2839 index 059c3da..8e45cfc 100644
2840 --- a/arch/arm/kernel/fiq.c
2841 +++ b/arch/arm/kernel/fiq.c
2842 @@ -95,7 +95,10 @@ void set_fiq_handler(void *start, unsigned int length)
2843 void *base = vectors_page;
2844 unsigned offset = FIQ_OFFSET;
2845
2846 + pax_open_kernel();
2847 memcpy(base + offset, start, length);
2848 + pax_close_kernel();
2849 +
2850 if (!cache_is_vipt_nonaliasing())
2851 flush_icache_range((unsigned long)base + offset, offset +
2852 length);
2853 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
2854 index 29e2991..7bc5757 100644
2855 --- a/arch/arm/kernel/head.S
2856 +++ b/arch/arm/kernel/head.S
2857 @@ -467,7 +467,7 @@ __enable_mmu:
2858 mov r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
2859 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
2860 domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \
2861 - domain_val(DOMAIN_IO, DOMAIN_CLIENT))
2862 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT))
2863 mcr p15, 0, r5, c3, c0, 0 @ load domain access register
2864 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
2865 #endif
2866 diff --git a/arch/arm/kernel/module-plts.c b/arch/arm/kernel/module-plts.c
2867 index 097e2e2..3927085 100644
2868 --- a/arch/arm/kernel/module-plts.c
2869 +++ b/arch/arm/kernel/module-plts.c
2870 @@ -30,17 +30,12 @@ struct plt_entries {
2871 u32 lit[PLT_ENT_COUNT];
2872 };
2873
2874 -static bool in_init(const struct module *mod, u32 addr)
2875 -{
2876 - return addr - (u32)mod->module_init < mod->init_size;
2877 -}
2878 -
2879 u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
2880 {
2881 struct plt_entries *plt, *plt_end;
2882 int c, *count;
2883
2884 - if (in_init(mod, loc)) {
2885 + if (within_module_init(loc, mod)) {
2886 plt = (void *)mod->arch.init_plt->sh_addr;
2887 plt_end = (void *)plt + mod->arch.init_plt->sh_size;
2888 count = &mod->arch.init_plt_count;
2889 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
2890 index efdddcb..35e58f6 100644
2891 --- a/arch/arm/kernel/module.c
2892 +++ b/arch/arm/kernel/module.c
2893 @@ -38,17 +38,47 @@
2894 #endif
2895
2896 #ifdef CONFIG_MMU
2897 -void *module_alloc(unsigned long size)
2898 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
2899 {
2900 - void *p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2901 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2902 + void *p;
2903 +
2904 + if (!size || (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) && PAGE_ALIGN(size) > MODULES_END - MODULES_VADDR))
2905 + return NULL;
2906 +
2907 + p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2908 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2909 __builtin_return_address(0));
2910 if (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || p)
2911 return p;
2912 return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
2913 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2914 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2915 __builtin_return_address(0));
2916 }
2917 +
2918 +void *module_alloc(unsigned long size)
2919 +{
2920 +
2921 +#ifdef CONFIG_PAX_KERNEXEC
2922 + return __module_alloc(size, PAGE_KERNEL);
2923 +#else
2924 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2925 +#endif
2926 +
2927 +}
2928 +
2929 +#ifdef CONFIG_PAX_KERNEXEC
2930 +void module_memfree_exec(void *module_region)
2931 +{
2932 + module_memfree(module_region);
2933 +}
2934 +EXPORT_SYMBOL(module_memfree_exec);
2935 +
2936 +void *module_alloc_exec(unsigned long size)
2937 +{
2938 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2939 +}
2940 +EXPORT_SYMBOL(module_alloc_exec);
2941 +#endif
2942 #endif
2943
2944 int
2945 diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c
2946 index 69bda1a..755113a 100644
2947 --- a/arch/arm/kernel/patch.c
2948 +++ b/arch/arm/kernel/patch.c
2949 @@ -66,6 +66,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2950 else
2951 __acquire(&patch_lock);
2952
2953 + pax_open_kernel();
2954 if (thumb2 && __opcode_is_thumb16(insn)) {
2955 *(u16 *)waddr = __opcode_to_mem_thumb16(insn);
2956 size = sizeof(u16);
2957 @@ -97,6 +98,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2958 *(u32 *)waddr = insn;
2959 size = sizeof(u32);
2960 }
2961 + pax_close_kernel();
2962
2963 if (waddr != addr) {
2964 flush_kernel_vmap_range(waddr, twopage ? size / 2 : size);
2965 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
2966 index f192a2a..1a40523 100644
2967 --- a/arch/arm/kernel/process.c
2968 +++ b/arch/arm/kernel/process.c
2969 @@ -105,8 +105,8 @@ void __show_regs(struct pt_regs *regs)
2970
2971 show_regs_print_info(KERN_DEFAULT);
2972
2973 - print_symbol("PC is at %s\n", instruction_pointer(regs));
2974 - print_symbol("LR is at %s\n", regs->ARM_lr);
2975 + printk("PC is at %pA\n", (void *)instruction_pointer(regs));
2976 + printk("LR is at %pA\n", (void *)regs->ARM_lr);
2977 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n"
2978 "sp : %08lx ip : %08lx fp : %08lx\n",
2979 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
2980 @@ -283,12 +283,6 @@ unsigned long get_wchan(struct task_struct *p)
2981 return 0;
2982 }
2983
2984 -unsigned long arch_randomize_brk(struct mm_struct *mm)
2985 -{
2986 - unsigned long range_end = mm->brk + 0x02000000;
2987 - return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
2988 -}
2989 -
2990 #ifdef CONFIG_MMU
2991 #ifdef CONFIG_KUSER_HELPERS
2992 /*
2993 @@ -304,7 +298,7 @@ static struct vm_area_struct gate_vma = {
2994
2995 static int __init gate_vma_init(void)
2996 {
2997 - gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
2998 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
2999 return 0;
3000 }
3001 arch_initcall(gate_vma_init);
3002 @@ -333,91 +327,13 @@ const char *arch_vma_name(struct vm_area_struct *vma)
3003 return is_gate_vma(vma) ? "[vectors]" : NULL;
3004 }
3005
3006 -/* If possible, provide a placement hint at a random offset from the
3007 - * stack for the sigpage and vdso pages.
3008 - */
3009 -static unsigned long sigpage_addr(const struct mm_struct *mm,
3010 - unsigned int npages)
3011 -{
3012 - unsigned long offset;
3013 - unsigned long first;
3014 - unsigned long last;
3015 - unsigned long addr;
3016 - unsigned int slots;
3017 -
3018 - first = PAGE_ALIGN(mm->start_stack);
3019 -
3020 - last = TASK_SIZE - (npages << PAGE_SHIFT);
3021 -
3022 - /* No room after stack? */
3023 - if (first > last)
3024 - return 0;
3025 -
3026 - /* Just enough room? */
3027 - if (first == last)
3028 - return first;
3029 -
3030 - slots = ((last - first) >> PAGE_SHIFT) + 1;
3031 -
3032 - offset = get_random_int() % slots;
3033 -
3034 - addr = first + (offset << PAGE_SHIFT);
3035 -
3036 - return addr;
3037 -}
3038 -
3039 -static struct page *signal_page;
3040 -extern struct page *get_signal_page(void);
3041 -
3042 -static const struct vm_special_mapping sigpage_mapping = {
3043 - .name = "[sigpage]",
3044 - .pages = &signal_page,
3045 -};
3046 -
3047 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
3048 {
3049 struct mm_struct *mm = current->mm;
3050 - struct vm_area_struct *vma;
3051 - unsigned long npages;
3052 - unsigned long addr;
3053 - unsigned long hint;
3054 - int ret = 0;
3055 -
3056 - if (!signal_page)
3057 - signal_page = get_signal_page();
3058 - if (!signal_page)
3059 - return -ENOMEM;
3060 -
3061 - npages = 1; /* for sigpage */
3062 - npages += vdso_total_pages;
3063
3064 down_write(&mm->mmap_sem);
3065 - hint = sigpage_addr(mm, npages);
3066 - addr = get_unmapped_area(NULL, hint, npages << PAGE_SHIFT, 0, 0);
3067 - if (IS_ERR_VALUE(addr)) {
3068 - ret = addr;
3069 - goto up_fail;
3070 - }
3071 -
3072 - vma = _install_special_mapping(mm, addr, PAGE_SIZE,
3073 - VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
3074 - &sigpage_mapping);
3075 -
3076 - if (IS_ERR(vma)) {
3077 - ret = PTR_ERR(vma);
3078 - goto up_fail;
3079 - }
3080 -
3081 - mm->context.sigpage = addr;
3082 -
3083 - /* Unlike the sigpage, failure to install the vdso is unlikely
3084 - * to be fatal to the process, so no error check needed
3085 - * here.
3086 - */
3087 - arm_install_vdso(mm, addr + PAGE_SIZE);
3088 -
3089 - up_fail:
3090 + mm->context.sigpage = (PAGE_OFFSET + (get_random_int() % 0x3FFEFFE0)) & 0xFFFFFFFC;
3091 up_write(&mm->mmap_sem);
3092 - return ret;
3093 + return 0;
3094 }
3095 #endif
3096 diff --git a/arch/arm/kernel/psci.c b/arch/arm/kernel/psci.c
3097 index f90fdf4..24e8c84 100644
3098 --- a/arch/arm/kernel/psci.c
3099 +++ b/arch/arm/kernel/psci.c
3100 @@ -26,7 +26,7 @@
3101 #include <asm/psci.h>
3102 #include <asm/system_misc.h>
3103
3104 -struct psci_operations psci_ops;
3105 +struct psci_operations psci_ops __read_only;
3106
3107 static int (*invoke_psci_fn)(u32, u32, u32, u32);
3108 typedef int (*psci_initcall_t)(const struct device_node *);
3109 diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
3110 index ef9119f..31995a3 100644
3111 --- a/arch/arm/kernel/ptrace.c
3112 +++ b/arch/arm/kernel/ptrace.c
3113 @@ -928,10 +928,19 @@ static void tracehook_report_syscall(struct pt_regs *regs,
3114 regs->ARM_ip = ip;
3115 }
3116
3117 +#ifdef CONFIG_GRKERNSEC_SETXID
3118 +extern void gr_delayed_cred_worker(void);
3119 +#endif
3120 +
3121 asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
3122 {
3123 current_thread_info()->syscall = scno;
3124
3125 +#ifdef CONFIG_GRKERNSEC_SETXID
3126 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
3127 + gr_delayed_cred_worker();
3128 +#endif
3129 +
3130 /* Do the secure computing check first; failures should be fast. */
3131 #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
3132 if (secure_computing() == -1)
3133 diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
3134 index 3826935..8ed63ed 100644
3135 --- a/arch/arm/kernel/reboot.c
3136 +++ b/arch/arm/kernel/reboot.c
3137 @@ -122,6 +122,7 @@ void machine_power_off(void)
3138
3139 if (pm_power_off)
3140 pm_power_off();
3141 + while (1);
3142 }
3143
3144 /*
3145 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
3146 index 36c18b7..0d78292 100644
3147 --- a/arch/arm/kernel/setup.c
3148 +++ b/arch/arm/kernel/setup.c
3149 @@ -108,21 +108,23 @@ EXPORT_SYMBOL(elf_hwcap);
3150 unsigned int elf_hwcap2 __read_mostly;
3151 EXPORT_SYMBOL(elf_hwcap2);
3152
3153 +pteval_t __supported_pte_mask __read_only;
3154 +pmdval_t __supported_pmd_mask __read_only;
3155
3156 #ifdef MULTI_CPU
3157 -struct processor processor __read_mostly;
3158 +struct processor processor __read_only;
3159 #endif
3160 #ifdef MULTI_TLB
3161 -struct cpu_tlb_fns cpu_tlb __read_mostly;
3162 +struct cpu_tlb_fns cpu_tlb __read_only;
3163 #endif
3164 #ifdef MULTI_USER
3165 -struct cpu_user_fns cpu_user __read_mostly;
3166 +struct cpu_user_fns cpu_user __read_only;
3167 #endif
3168 #ifdef MULTI_CACHE
3169 -struct cpu_cache_fns cpu_cache __read_mostly;
3170 +struct cpu_cache_fns cpu_cache __read_only;
3171 #endif
3172 #ifdef CONFIG_OUTER_CACHE
3173 -struct outer_cache_fns outer_cache __read_mostly;
3174 +struct outer_cache_fns outer_cache __read_only;
3175 EXPORT_SYMBOL(outer_cache);
3176 #endif
3177
3178 @@ -253,9 +255,13 @@ static int __get_cpu_architecture(void)
3179 * Register 0 and check for VMSAv7 or PMSAv7 */
3180 unsigned int mmfr0 = read_cpuid_ext(CPUID_EXT_MMFR0);
3181 if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
3182 - (mmfr0 & 0x000000f0) >= 0x00000030)
3183 + (mmfr0 & 0x000000f0) >= 0x00000030) {
3184 cpu_arch = CPU_ARCH_ARMv7;
3185 - else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3186 + if ((mmfr0 & 0x0000000f) == 0x00000005 || (mmfr0 & 0x0000000f) == 0x00000004) {
3187 + __supported_pte_mask |= L_PTE_PXN;
3188 + __supported_pmd_mask |= PMD_PXNTABLE;
3189 + }
3190 + } else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3191 (mmfr0 & 0x000000f0) == 0x00000020)
3192 cpu_arch = CPU_ARCH_ARMv6;
3193 else
3194 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
3195 index 586eef2..61aabd4 100644
3196 --- a/arch/arm/kernel/signal.c
3197 +++ b/arch/arm/kernel/signal.c
3198 @@ -24,8 +24,6 @@
3199
3200 extern const unsigned long sigreturn_codes[7];
3201
3202 -static unsigned long signal_return_offset;
3203 -
3204 #ifdef CONFIG_CRUNCH
3205 static int preserve_crunch_context(struct crunch_sigframe __user *frame)
3206 {
3207 @@ -390,8 +388,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
3208 * except when the MPU has protected the vectors
3209 * page from PL0
3210 */
3211 - retcode = mm->context.sigpage + signal_return_offset +
3212 - (idx << 2) + thumb;
3213 + retcode = mm->context.sigpage + (idx << 2) + thumb;
3214 } else
3215 #endif
3216 {
3217 @@ -597,33 +594,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
3218 } while (thread_flags & _TIF_WORK_MASK);
3219 return 0;
3220 }
3221 -
3222 -struct page *get_signal_page(void)
3223 -{
3224 - unsigned long ptr;
3225 - unsigned offset;
3226 - struct page *page;
3227 - void *addr;
3228 -
3229 - page = alloc_pages(GFP_KERNEL, 0);
3230 -
3231 - if (!page)
3232 - return NULL;
3233 -
3234 - addr = page_address(page);
3235 -
3236 - /* Give the signal return code some randomness */
3237 - offset = 0x200 + (get_random_int() & 0x7fc);
3238 - signal_return_offset = offset;
3239 -
3240 - /*
3241 - * Copy signal return handlers into the vector page, and
3242 - * set sigreturn to be a pointer to these.
3243 - */
3244 - memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
3245 -
3246 - ptr = (unsigned long)addr + offset;
3247 - flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
3248 -
3249 - return page;
3250 -}
3251 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
3252 index 3d6b782..8b3baeb 100644
3253 --- a/arch/arm/kernel/smp.c
3254 +++ b/arch/arm/kernel/smp.c
3255 @@ -76,7 +76,7 @@ enum ipi_msg_type {
3256
3257 static DECLARE_COMPLETION(cpu_running);
3258
3259 -static struct smp_operations smp_ops;
3260 +static struct smp_operations smp_ops __read_only;
3261
3262 void __init smp_set_ops(struct smp_operations *ops)
3263 {
3264 diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c
3265 index b10e136..cb5edf9 100644
3266 --- a/arch/arm/kernel/tcm.c
3267 +++ b/arch/arm/kernel/tcm.c
3268 @@ -64,7 +64,7 @@ static struct map_desc itcm_iomap[] __initdata = {
3269 .virtual = ITCM_OFFSET,
3270 .pfn = __phys_to_pfn(ITCM_OFFSET),
3271 .length = 0,
3272 - .type = MT_MEMORY_RWX_ITCM,
3273 + .type = MT_MEMORY_RX_ITCM,
3274 }
3275 };
3276
3277 @@ -362,7 +362,9 @@ no_dtcm:
3278 start = &__sitcm_text;
3279 end = &__eitcm_text;
3280 ram = &__itcm_start;
3281 + pax_open_kernel();
3282 memcpy(start, ram, itcm_code_sz);
3283 + pax_close_kernel();
3284 pr_debug("CPU ITCM: copied code from %p - %p\n",
3285 start, end);
3286 itcm_present = true;
3287 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
3288 index d358226..bfd4019 100644
3289 --- a/arch/arm/kernel/traps.c
3290 +++ b/arch/arm/kernel/traps.c
3291 @@ -65,7 +65,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
3292 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
3293 {
3294 #ifdef CONFIG_KALLSYMS
3295 - printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
3296 + printk("[<%08lx>] (%pA) from [<%08lx>] (%pA)\n", where, (void *)where, from, (void *)from);
3297 #else
3298 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
3299 #endif
3300 @@ -267,6 +267,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
3301 static int die_owner = -1;
3302 static unsigned int die_nest_count;
3303
3304 +extern void gr_handle_kernel_exploit(void);
3305 +
3306 static unsigned long oops_begin(void)
3307 {
3308 int cpu;
3309 @@ -309,6 +311,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
3310 panic("Fatal exception in interrupt");
3311 if (panic_on_oops)
3312 panic("Fatal exception");
3313 +
3314 + gr_handle_kernel_exploit();
3315 +
3316 if (signr)
3317 do_exit(signr);
3318 }
3319 @@ -870,7 +875,11 @@ void __init early_trap_init(void *vectors_base)
3320 kuser_init(vectors_base);
3321
3322 flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
3323 - modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
3324 +
3325 +#ifndef CONFIG_PAX_MEMORY_UDEREF
3326 + modify_domain(DOMAIN_USER, DOMAIN_USERCLIENT);
3327 +#endif
3328 +
3329 #else /* ifndef CONFIG_CPU_V7M */
3330 /*
3331 * on V7-M there is no need to copy the vector table to a dedicated
3332 diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
3333 index 8b60fde..8d986dd 100644
3334 --- a/arch/arm/kernel/vmlinux.lds.S
3335 +++ b/arch/arm/kernel/vmlinux.lds.S
3336 @@ -37,7 +37,7 @@
3337 #endif
3338
3339 #if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
3340 - defined(CONFIG_GENERIC_BUG)
3341 + defined(CONFIG_GENERIC_BUG) || defined(CONFIG_PAX_REFCOUNT)
3342 #define ARM_EXIT_KEEP(x) x
3343 #define ARM_EXIT_DISCARD(x)
3344 #else
3345 @@ -120,6 +120,8 @@ SECTIONS
3346 #ifdef CONFIG_DEBUG_RODATA
3347 . = ALIGN(1<<SECTION_SHIFT);
3348 #endif
3349 + _etext = .; /* End of text section */
3350 +
3351 RO_DATA(PAGE_SIZE)
3352
3353 . = ALIGN(4);
3354 @@ -150,8 +152,6 @@ SECTIONS
3355
3356 NOTES
3357
3358 - _etext = .; /* End of text and rodata section */
3359 -
3360 #ifndef CONFIG_XIP_KERNEL
3361 # ifdef CONFIG_ARM_KERNMEM_PERMS
3362 . = ALIGN(1<<SECTION_SHIFT);
3363 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
3364 index f9c341c..c9cead1 100644
3365 --- a/arch/arm/kvm/arm.c
3366 +++ b/arch/arm/kvm/arm.c
3367 @@ -57,7 +57,7 @@ static unsigned long hyp_default_vectors;
3368 static DEFINE_PER_CPU(struct kvm_vcpu *, kvm_arm_running_vcpu);
3369
3370 /* The VMID used in the VTTBR */
3371 -static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
3372 +static atomic64_unchecked_t kvm_vmid_gen = ATOMIC64_INIT(1);
3373 static u8 kvm_next_vmid;
3374 static DEFINE_SPINLOCK(kvm_vmid_lock);
3375
3376 @@ -372,7 +372,7 @@ void force_vm_exit(const cpumask_t *mask)
3377 */
3378 static bool need_new_vmid_gen(struct kvm *kvm)
3379 {
3380 - return unlikely(kvm->arch.vmid_gen != atomic64_read(&kvm_vmid_gen));
3381 + return unlikely(kvm->arch.vmid_gen != atomic64_read_unchecked(&kvm_vmid_gen));
3382 }
3383
3384 /**
3385 @@ -405,7 +405,7 @@ static void update_vttbr(struct kvm *kvm)
3386
3387 /* First user of a new VMID generation? */
3388 if (unlikely(kvm_next_vmid == 0)) {
3389 - atomic64_inc(&kvm_vmid_gen);
3390 + atomic64_inc_unchecked(&kvm_vmid_gen);
3391 kvm_next_vmid = 1;
3392
3393 /*
3394 @@ -422,7 +422,7 @@ static void update_vttbr(struct kvm *kvm)
3395 kvm_call_hyp(__kvm_flush_vm_context);
3396 }
3397
3398 - kvm->arch.vmid_gen = atomic64_read(&kvm_vmid_gen);
3399 + kvm->arch.vmid_gen = atomic64_read_unchecked(&kvm_vmid_gen);
3400 kvm->arch.vmid = kvm_next_vmid;
3401 kvm_next_vmid++;
3402
3403 diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S
3404 index 1710fd7..ec3e014 100644
3405 --- a/arch/arm/lib/clear_user.S
3406 +++ b/arch/arm/lib/clear_user.S
3407 @@ -12,14 +12,14 @@
3408
3409 .text
3410
3411 -/* Prototype: int __clear_user(void *addr, size_t sz)
3412 +/* Prototype: int ___clear_user(void *addr, size_t sz)
3413 * Purpose : clear some user memory
3414 * Params : addr - user memory address to clear
3415 * : sz - number of bytes to clear
3416 * Returns : number of bytes NOT cleared
3417 */
3418 ENTRY(__clear_user_std)
3419 -WEAK(__clear_user)
3420 +WEAK(___clear_user)
3421 stmfd sp!, {r1, lr}
3422 mov r2, #0
3423 cmp r1, #4
3424 @@ -44,7 +44,7 @@ WEAK(__clear_user)
3425 USER( strnebt r2, [r0])
3426 mov r0, #0
3427 ldmfd sp!, {r1, pc}
3428 -ENDPROC(__clear_user)
3429 +ENDPROC(___clear_user)
3430 ENDPROC(__clear_user_std)
3431
3432 .pushsection .text.fixup,"ax"
3433 diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
3434 index 7a235b9..73a0556 100644
3435 --- a/arch/arm/lib/copy_from_user.S
3436 +++ b/arch/arm/lib/copy_from_user.S
3437 @@ -17,7 +17,7 @@
3438 /*
3439 * Prototype:
3440 *
3441 - * size_t __copy_from_user(void *to, const void *from, size_t n)
3442 + * size_t ___copy_from_user(void *to, const void *from, size_t n)
3443 *
3444 * Purpose:
3445 *
3446 @@ -89,11 +89,11 @@
3447
3448 .text
3449
3450 -ENTRY(__copy_from_user)
3451 +ENTRY(___copy_from_user)
3452
3453 #include "copy_template.S"
3454
3455 -ENDPROC(__copy_from_user)
3456 +ENDPROC(___copy_from_user)
3457
3458 .pushsection .fixup,"ax"
3459 .align 0
3460 diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S
3461 index 6ee2f67..d1cce76 100644
3462 --- a/arch/arm/lib/copy_page.S
3463 +++ b/arch/arm/lib/copy_page.S
3464 @@ -10,6 +10,7 @@
3465 * ASM optimised string functions
3466 */
3467 #include <linux/linkage.h>
3468 +#include <linux/const.h>
3469 #include <asm/assembler.h>
3470 #include <asm/asm-offsets.h>
3471 #include <asm/cache.h>
3472 diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
3473 index 9648b06..19c333c 100644
3474 --- a/arch/arm/lib/copy_to_user.S
3475 +++ b/arch/arm/lib/copy_to_user.S
3476 @@ -17,7 +17,7 @@
3477 /*
3478 * Prototype:
3479 *
3480 - * size_t __copy_to_user(void *to, const void *from, size_t n)
3481 + * size_t ___copy_to_user(void *to, const void *from, size_t n)
3482 *
3483 * Purpose:
3484 *
3485 @@ -93,11 +93,11 @@
3486 .text
3487
3488 ENTRY(__copy_to_user_std)
3489 -WEAK(__copy_to_user)
3490 +WEAK(___copy_to_user)
3491
3492 #include "copy_template.S"
3493
3494 -ENDPROC(__copy_to_user)
3495 +ENDPROC(___copy_to_user)
3496 ENDPROC(__copy_to_user_std)
3497
3498 .pushsection .text.fixup,"ax"
3499 diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
3500 index 1d0957e..f708846 100644
3501 --- a/arch/arm/lib/csumpartialcopyuser.S
3502 +++ b/arch/arm/lib/csumpartialcopyuser.S
3503 @@ -57,8 +57,8 @@
3504 * Returns : r0 = checksum, [[sp, #0], #0] = 0 or -EFAULT
3505 */
3506
3507 -#define FN_ENTRY ENTRY(csum_partial_copy_from_user)
3508 -#define FN_EXIT ENDPROC(csum_partial_copy_from_user)
3509 +#define FN_ENTRY ENTRY(__csum_partial_copy_from_user)
3510 +#define FN_EXIT ENDPROC(__csum_partial_copy_from_user)
3511
3512 #include "csumpartialcopygeneric.S"
3513
3514 diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c
3515 index 8044591..c9b2609 100644
3516 --- a/arch/arm/lib/delay.c
3517 +++ b/arch/arm/lib/delay.c
3518 @@ -29,7 +29,7 @@
3519 /*
3520 * Default to the loop-based delay implementation.
3521 */
3522 -struct arm_delay_ops arm_delay_ops = {
3523 +struct arm_delay_ops arm_delay_ops __read_only = {
3524 .delay = __loop_delay,
3525 .const_udelay = __loop_const_udelay,
3526 .udelay = __loop_udelay,
3527 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
3528 index 4b39af2..9ae747d 100644
3529 --- a/arch/arm/lib/uaccess_with_memcpy.c
3530 +++ b/arch/arm/lib/uaccess_with_memcpy.c
3531 @@ -85,7 +85,7 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
3532 return 1;
3533 }
3534
3535 -static unsigned long noinline
3536 +static unsigned long noinline __size_overflow(3)
3537 __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
3538 {
3539 int atomic;
3540 @@ -136,7 +136,7 @@ out:
3541 }
3542
3543 unsigned long
3544 -__copy_to_user(void __user *to, const void *from, unsigned long n)
3545 +___copy_to_user(void __user *to, const void *from, unsigned long n)
3546 {
3547 /*
3548 * This test is stubbed out of the main function above to keep
3549 @@ -150,7 +150,7 @@ __copy_to_user(void __user *to, const void *from, unsigned long n)
3550 return __copy_to_user_memcpy(to, from, n);
3551 }
3552
3553 -static unsigned long noinline
3554 +static unsigned long noinline __size_overflow(2)
3555 __clear_user_memset(void __user *addr, unsigned long n)
3556 {
3557 if (unlikely(segment_eq(get_fs(), KERNEL_DS))) {
3558 @@ -190,7 +190,7 @@ out:
3559 return n;
3560 }
3561
3562 -unsigned long __clear_user(void __user *addr, unsigned long n)
3563 +unsigned long ___clear_user(void __user *addr, unsigned long n)
3564 {
3565 /* See rational for this in __copy_to_user() above. */
3566 if (n < 64)
3567 diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
3568 index f572219..2cf36d5 100644
3569 --- a/arch/arm/mach-exynos/suspend.c
3570 +++ b/arch/arm/mach-exynos/suspend.c
3571 @@ -732,8 +732,10 @@ void __init exynos_pm_init(void)
3572 tmp |= pm_data->wake_disable_mask;
3573 pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
3574
3575 - exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3576 - exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3577 + pax_open_kernel();
3578 + *(void **)&exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3579 + *(void **)&exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3580 + pax_close_kernel();
3581
3582 register_syscore_ops(&exynos_pm_syscore_ops);
3583 suspend_set_ops(&exynos_suspend_ops);
3584 diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
3585 index e46e9ea..9141c83 100644
3586 --- a/arch/arm/mach-mvebu/coherency.c
3587 +++ b/arch/arm/mach-mvebu/coherency.c
3588 @@ -117,7 +117,7 @@ static void __init armada_370_coherency_init(struct device_node *np)
3589
3590 /*
3591 * This ioremap hook is used on Armada 375/38x to ensure that PCIe
3592 - * memory areas are mapped as MT_UNCACHED instead of MT_DEVICE. This
3593 + * memory areas are mapped as MT_UNCACHED_RW instead of MT_DEVICE. This
3594 * is needed as a workaround for a deadlock issue between the PCIe
3595 * interface and the cache controller.
3596 */
3597 @@ -130,7 +130,7 @@ armada_pcie_wa_ioremap_caller(phys_addr_t phys_addr, size_t size,
3598 mvebu_mbus_get_pcie_mem_aperture(&pcie_mem);
3599
3600 if (pcie_mem.start <= phys_addr && (phys_addr + size) <= pcie_mem.end)
3601 - mtype = MT_UNCACHED;
3602 + mtype = MT_UNCACHED_RW;
3603
3604 return __arm_ioremap_caller(phys_addr, size, mtype, caller);
3605 }
3606 diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
3607 index b6443a4..20a0b74 100644
3608 --- a/arch/arm/mach-omap2/board-n8x0.c
3609 +++ b/arch/arm/mach-omap2/board-n8x0.c
3610 @@ -569,7 +569,7 @@ static int n8x0_menelaus_late_init(struct device *dev)
3611 }
3612 #endif
3613
3614 -struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
3615 +struct menelaus_platform_data n8x0_menelaus_platform_data __initconst = {
3616 .late_init = n8x0_menelaus_late_init,
3617 };
3618
3619 diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3620 index 79f49d9..70bf184 100644
3621 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3622 +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3623 @@ -86,7 +86,7 @@ struct cpu_pm_ops {
3624 void (*resume)(void);
3625 void (*scu_prepare)(unsigned int cpu_id, unsigned int cpu_state);
3626 void (*hotplug_restart)(void);
3627 -};
3628 +} __no_const;
3629
3630 static DEFINE_PER_CPU(struct omap4_cpu_pm_info, omap4_pm_info);
3631 static struct powerdomain *mpuss_pd;
3632 @@ -105,7 +105,7 @@ static void dummy_cpu_resume(void)
3633 static void dummy_scu_prepare(unsigned int cpu_id, unsigned int cpu_state)
3634 {}
3635
3636 -struct cpu_pm_ops omap_pm_ops = {
3637 +static struct cpu_pm_ops omap_pm_ops __read_only = {
3638 .finish_suspend = default_finish_suspend,
3639 .resume = dummy_cpu_resume,
3640 .scu_prepare = dummy_scu_prepare,
3641 diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
3642 index 5305ec7..6d74045 100644
3643 --- a/arch/arm/mach-omap2/omap-smp.c
3644 +++ b/arch/arm/mach-omap2/omap-smp.c
3645 @@ -19,6 +19,7 @@
3646 #include <linux/device.h>
3647 #include <linux/smp.h>
3648 #include <linux/io.h>
3649 +#include <linux/irq.h>
3650 #include <linux/irqchip/arm-gic.h>
3651
3652 #include <asm/smp_scu.h>
3653 diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
3654 index e1d2e99..d9b3177 100644
3655 --- a/arch/arm/mach-omap2/omap-wakeupgen.c
3656 +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
3657 @@ -330,7 +330,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
3658 return NOTIFY_OK;
3659 }
3660
3661 -static struct notifier_block __refdata irq_hotplug_notifier = {
3662 +static struct notifier_block irq_hotplug_notifier = {
3663 .notifier_call = irq_cpu_hotplug_notify,
3664 };
3665
3666 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
3667 index 4cb8fd9..5ce65bc 100644
3668 --- a/arch/arm/mach-omap2/omap_device.c
3669 +++ b/arch/arm/mach-omap2/omap_device.c
3670 @@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
3671 struct platform_device __init *omap_device_build(const char *pdev_name,
3672 int pdev_id,
3673 struct omap_hwmod *oh,
3674 - void *pdata, int pdata_len)
3675 + const void *pdata, int pdata_len)
3676 {
3677 struct omap_hwmod *ohs[] = { oh };
3678
3679 @@ -532,7 +532,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
3680 struct platform_device __init *omap_device_build_ss(const char *pdev_name,
3681 int pdev_id,
3682 struct omap_hwmod **ohs,
3683 - int oh_cnt, void *pdata,
3684 + int oh_cnt, const void *pdata,
3685 int pdata_len)
3686 {
3687 int ret = -ENOMEM;
3688 diff --git a/arch/arm/mach-omap2/omap_device.h b/arch/arm/mach-omap2/omap_device.h
3689 index 78c02b3..c94109a 100644
3690 --- a/arch/arm/mach-omap2/omap_device.h
3691 +++ b/arch/arm/mach-omap2/omap_device.h
3692 @@ -72,12 +72,12 @@ int omap_device_idle(struct platform_device *pdev);
3693 /* Core code interface */
3694
3695 struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
3696 - struct omap_hwmod *oh, void *pdata,
3697 + struct omap_hwmod *oh, const void *pdata,
3698 int pdata_len);
3699
3700 struct platform_device *omap_device_build_ss(const char *pdev_name, int pdev_id,
3701 struct omap_hwmod **oh, int oh_cnt,
3702 - void *pdata, int pdata_len);
3703 + const void *pdata, int pdata_len);
3704
3705 struct omap_device *omap_device_alloc(struct platform_device *pdev,
3706 struct omap_hwmod **ohs, int oh_cnt);
3707 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
3708 index 486cc4d..8d1a0b7 100644
3709 --- a/arch/arm/mach-omap2/omap_hwmod.c
3710 +++ b/arch/arm/mach-omap2/omap_hwmod.c
3711 @@ -199,10 +199,10 @@ struct omap_hwmod_soc_ops {
3712 int (*init_clkdm)(struct omap_hwmod *oh);
3713 void (*update_context_lost)(struct omap_hwmod *oh);
3714 int (*get_context_lost)(struct omap_hwmod *oh);
3715 -};
3716 +} __no_const;
3717
3718 /* soc_ops: adapts the omap_hwmod code to the currently-booted SoC */
3719 -static struct omap_hwmod_soc_ops soc_ops;
3720 +static struct omap_hwmod_soc_ops soc_ops __read_only;
3721
3722 /* omap_hwmod_list contains all registered struct omap_hwmods */
3723 static LIST_HEAD(omap_hwmod_list);
3724 diff --git a/arch/arm/mach-omap2/powerdomains43xx_data.c b/arch/arm/mach-omap2/powerdomains43xx_data.c
3725 index 95fee54..cfa9cf1 100644
3726 --- a/arch/arm/mach-omap2/powerdomains43xx_data.c
3727 +++ b/arch/arm/mach-omap2/powerdomains43xx_data.c
3728 @@ -10,6 +10,7 @@
3729
3730 #include <linux/kernel.h>
3731 #include <linux/init.h>
3732 +#include <asm/pgtable.h>
3733
3734 #include "powerdomain.h"
3735
3736 @@ -129,7 +130,9 @@ static int am43xx_check_vcvp(void)
3737
3738 void __init am43xx_powerdomains_init(void)
3739 {
3740 - omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3741 + pax_open_kernel();
3742 + *(void **)&omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3743 + pax_close_kernel();
3744 pwrdm_register_platform_funcs(&omap4_pwrdm_operations);
3745 pwrdm_register_pwrdms(powerdomains_am43xx);
3746 pwrdm_complete_init();
3747 diff --git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c
3748 index ff0a68c..b312aa0 100644
3749 --- a/arch/arm/mach-omap2/wd_timer.c
3750 +++ b/arch/arm/mach-omap2/wd_timer.c
3751 @@ -110,7 +110,9 @@ static int __init omap_init_wdt(void)
3752 struct omap_hwmod *oh;
3753 char *oh_name = "wd_timer2";
3754 char *dev_name = "omap_wdt";
3755 - struct omap_wd_timer_platform_data pdata;
3756 + static struct omap_wd_timer_platform_data pdata = {
3757 + .read_reset_sources = prm_read_reset_sources
3758 + };
3759
3760 if (!cpu_class_is_omap2() || of_have_populated_dt())
3761 return 0;
3762 @@ -121,8 +123,6 @@ static int __init omap_init_wdt(void)
3763 return -EINVAL;
3764 }
3765
3766 - pdata.read_reset_sources = prm_read_reset_sources;
3767 -
3768 pdev = omap_device_build(dev_name, id, oh, &pdata,
3769 sizeof(struct omap_wd_timer_platform_data));
3770 WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
3771 diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c
3772 index b0790fc..71eb21f 100644
3773 --- a/arch/arm/mach-shmobile/platsmp-apmu.c
3774 +++ b/arch/arm/mach-shmobile/platsmp-apmu.c
3775 @@ -22,6 +22,7 @@
3776 #include <asm/proc-fns.h>
3777 #include <asm/smp_plat.h>
3778 #include <asm/suspend.h>
3779 +#include <asm/pgtable.h>
3780 #include "common.h"
3781 #include "platsmp-apmu.h"
3782
3783 @@ -233,6 +234,8 @@ static int shmobile_smp_apmu_enter_suspend(suspend_state_t state)
3784
3785 void __init shmobile_smp_apmu_suspend_init(void)
3786 {
3787 - shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3788 + pax_open_kernel();
3789 + *(void **)&shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3790 + pax_close_kernel();
3791 }
3792 #endif
3793 diff --git a/arch/arm/mach-shmobile/pm-r8a7740.c b/arch/arm/mach-shmobile/pm-r8a7740.c
3794 index 34608fc..344d7c0 100644
3795 --- a/arch/arm/mach-shmobile/pm-r8a7740.c
3796 +++ b/arch/arm/mach-shmobile/pm-r8a7740.c
3797 @@ -11,6 +11,7 @@
3798 #include <linux/console.h>
3799 #include <linux/io.h>
3800 #include <linux/suspend.h>
3801 +#include <asm/pgtable.h>
3802
3803 #include "common.h"
3804 #include "pm-rmobile.h"
3805 @@ -117,7 +118,9 @@ static int r8a7740_enter_suspend(suspend_state_t suspend_state)
3806
3807 static void r8a7740_suspend_init(void)
3808 {
3809 - shmobile_suspend_ops.enter = r8a7740_enter_suspend;
3810 + pax_open_kernel();
3811 + *(void **)&shmobile_suspend_ops.enter = r8a7740_enter_suspend;
3812 + pax_close_kernel();
3813 }
3814 #else
3815 static void r8a7740_suspend_init(void) {}
3816 diff --git a/arch/arm/mach-shmobile/pm-sh73a0.c b/arch/arm/mach-shmobile/pm-sh73a0.c
3817 index a7e4668..83334f33 100644
3818 --- a/arch/arm/mach-shmobile/pm-sh73a0.c
3819 +++ b/arch/arm/mach-shmobile/pm-sh73a0.c
3820 @@ -9,6 +9,7 @@
3821 */
3822
3823 #include <linux/suspend.h>
3824 +#include <asm/pgtable.h>
3825 #include "common.h"
3826
3827 #ifdef CONFIG_SUSPEND
3828 @@ -20,7 +21,9 @@ static int sh73a0_enter_suspend(suspend_state_t suspend_state)
3829
3830 static void sh73a0_suspend_init(void)
3831 {
3832 - shmobile_suspend_ops.enter = sh73a0_enter_suspend;
3833 + pax_open_kernel();
3834 + *(void **)&shmobile_suspend_ops.enter = sh73a0_enter_suspend;
3835 + pax_close_kernel();
3836 }
3837 #else
3838 static void sh73a0_suspend_init(void) {}
3839 diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
3840 index 7469347..1ecc350 100644
3841 --- a/arch/arm/mach-tegra/cpuidle-tegra20.c
3842 +++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
3843 @@ -177,7 +177,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
3844 bool entered_lp2 = false;
3845
3846 if (tegra_pending_sgi())
3847 - ACCESS_ONCE(abort_flag) = true;
3848 + ACCESS_ONCE_RW(abort_flag) = true;
3849
3850 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
3851
3852 diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
3853 index 3b9098d..15b390f 100644
3854 --- a/arch/arm/mach-tegra/irq.c
3855 +++ b/arch/arm/mach-tegra/irq.c
3856 @@ -20,6 +20,7 @@
3857 #include <linux/cpu_pm.h>
3858 #include <linux/interrupt.h>
3859 #include <linux/io.h>
3860 +#include <linux/irq.h>
3861 #include <linux/irqchip/arm-gic.h>
3862 #include <linux/irq.h>
3863 #include <linux/kernel.h>
3864 diff --git a/arch/arm/mach-ux500/pm.c b/arch/arm/mach-ux500/pm.c
3865 index 8538910..2f39bc4 100644
3866 --- a/arch/arm/mach-ux500/pm.c
3867 +++ b/arch/arm/mach-ux500/pm.c
3868 @@ -10,6 +10,7 @@
3869 */
3870
3871 #include <linux/kernel.h>
3872 +#include <linux/irq.h>
3873 #include <linux/irqchip/arm-gic.h>
3874 #include <linux/delay.h>
3875 #include <linux/io.h>
3876 diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c
3877 index f66816c..228b951 100644
3878 --- a/arch/arm/mach-zynq/platsmp.c
3879 +++ b/arch/arm/mach-zynq/platsmp.c
3880 @@ -24,6 +24,7 @@
3881 #include <linux/io.h>
3882 #include <asm/cacheflush.h>
3883 #include <asm/smp_scu.h>
3884 +#include <linux/irq.h>
3885 #include <linux/irqchip/arm-gic.h>
3886 #include "common.h"
3887
3888 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
3889 index 7c6b976..055db09 100644
3890 --- a/arch/arm/mm/Kconfig
3891 +++ b/arch/arm/mm/Kconfig
3892 @@ -446,6 +446,7 @@ config CPU_32v5
3893
3894 config CPU_32v6
3895 bool
3896 + select CPU_USE_DOMAINS if CPU_V6 && MMU && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3897 select TLS_REG_EMUL if !CPU_32v6K && !MMU
3898
3899 config CPU_32v6K
3900 @@ -600,6 +601,7 @@ config CPU_CP15_MPU
3901
3902 config CPU_USE_DOMAINS
3903 bool
3904 + depends on !ARM_LPAE && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3905 help
3906 This option enables or disables the use of domain switching
3907 via the set_fs() function.
3908 @@ -818,7 +820,7 @@ config NEED_KUSER_HELPERS
3909
3910 config KUSER_HELPERS
3911 bool "Enable kuser helpers in vector page" if !NEED_KUSER_HELPERS
3912 - depends on MMU
3913 + depends on MMU && (!(CPU_V6 || CPU_V6K || CPU_V7) || GRKERNSEC_OLD_ARM_USERLAND)
3914 default y
3915 help
3916 Warning: disabling this option may break user programs.
3917 @@ -832,7 +834,7 @@ config KUSER_HELPERS
3918 See Documentation/arm/kernel_user_helpers.txt for details.
3919
3920 However, the fixed address nature of these helpers can be used
3921 - by ROP (return orientated programming) authors when creating
3922 + by ROP (Return Oriented Programming) authors when creating
3923 exploits.
3924
3925 If all of the binaries and libraries which run on your platform
3926 diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
3927 index 9769f1e..16aaa55 100644
3928 --- a/arch/arm/mm/alignment.c
3929 +++ b/arch/arm/mm/alignment.c
3930 @@ -216,10 +216,12 @@ union offset_union {
3931 #define __get16_unaligned_check(ins,val,addr) \
3932 do { \
3933 unsigned int err = 0, v, a = addr; \
3934 + pax_open_userland(); \
3935 __get8_unaligned_check(ins,v,a,err); \
3936 val = v << ((BE) ? 8 : 0); \
3937 __get8_unaligned_check(ins,v,a,err); \
3938 val |= v << ((BE) ? 0 : 8); \
3939 + pax_close_userland(); \
3940 if (err) \
3941 goto fault; \
3942 } while (0)
3943 @@ -233,6 +235,7 @@ union offset_union {
3944 #define __get32_unaligned_check(ins,val,addr) \
3945 do { \
3946 unsigned int err = 0, v, a = addr; \
3947 + pax_open_userland(); \
3948 __get8_unaligned_check(ins,v,a,err); \
3949 val = v << ((BE) ? 24 : 0); \
3950 __get8_unaligned_check(ins,v,a,err); \
3951 @@ -241,6 +244,7 @@ union offset_union {
3952 val |= v << ((BE) ? 8 : 16); \
3953 __get8_unaligned_check(ins,v,a,err); \
3954 val |= v << ((BE) ? 0 : 24); \
3955 + pax_close_userland(); \
3956 if (err) \
3957 goto fault; \
3958 } while (0)
3959 @@ -254,6 +258,7 @@ union offset_union {
3960 #define __put16_unaligned_check(ins,val,addr) \
3961 do { \
3962 unsigned int err = 0, v = val, a = addr; \
3963 + pax_open_userland(); \
3964 __asm__( FIRST_BYTE_16 \
3965 ARM( "1: "ins" %1, [%2], #1\n" ) \
3966 THUMB( "1: "ins" %1, [%2]\n" ) \
3967 @@ -273,6 +278,7 @@ union offset_union {
3968 " .popsection\n" \
3969 : "=r" (err), "=&r" (v), "=&r" (a) \
3970 : "0" (err), "1" (v), "2" (a)); \
3971 + pax_close_userland(); \
3972 if (err) \
3973 goto fault; \
3974 } while (0)
3975 @@ -286,6 +292,7 @@ union offset_union {
3976 #define __put32_unaligned_check(ins,val,addr) \
3977 do { \
3978 unsigned int err = 0, v = val, a = addr; \
3979 + pax_open_userland(); \
3980 __asm__( FIRST_BYTE_32 \
3981 ARM( "1: "ins" %1, [%2], #1\n" ) \
3982 THUMB( "1: "ins" %1, [%2]\n" ) \
3983 @@ -315,6 +322,7 @@ union offset_union {
3984 " .popsection\n" \
3985 : "=r" (err), "=&r" (v), "=&r" (a) \
3986 : "0" (err), "1" (v), "2" (a)); \
3987 + pax_close_userland(); \
3988 if (err) \
3989 goto fault; \
3990 } while (0)
3991 diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
3992 index 71b3d33..8af9ade 100644
3993 --- a/arch/arm/mm/cache-l2x0.c
3994 +++ b/arch/arm/mm/cache-l2x0.c
3995 @@ -44,7 +44,7 @@ struct l2c_init_data {
3996 void (*configure)(void __iomem *);
3997 void (*unlock)(void __iomem *, unsigned);
3998 struct outer_cache_fns outer_cache;
3999 -};
4000 +} __do_const;
4001
4002 #define CACHE_LINE_SIZE 32
4003
4004 diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
4005 index 845769e..4278fd7 100644
4006 --- a/arch/arm/mm/context.c
4007 +++ b/arch/arm/mm/context.c
4008 @@ -43,7 +43,7 @@
4009 #define NUM_USER_ASIDS ASID_FIRST_VERSION
4010
4011 static DEFINE_RAW_SPINLOCK(cpu_asid_lock);
4012 -static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
4013 +static atomic64_unchecked_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
4014 static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS);
4015
4016 static DEFINE_PER_CPU(atomic64_t, active_asids);
4017 @@ -178,7 +178,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
4018 {
4019 static u32 cur_idx = 1;
4020 u64 asid = atomic64_read(&mm->context.id);
4021 - u64 generation = atomic64_read(&asid_generation);
4022 + u64 generation = atomic64_read_unchecked(&asid_generation);
4023
4024 if (asid != 0) {
4025 /*
4026 @@ -208,7 +208,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
4027 */
4028 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, cur_idx);
4029 if (asid == NUM_USER_ASIDS) {
4030 - generation = atomic64_add_return(ASID_FIRST_VERSION,
4031 + generation = atomic64_add_return_unchecked(ASID_FIRST_VERSION,
4032 &asid_generation);
4033 flush_context(cpu);
4034 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1);
4035 @@ -240,14 +240,14 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
4036 cpu_set_reserved_ttbr0();
4037
4038 asid = atomic64_read(&mm->context.id);
4039 - if (!((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS)
4040 + if (!((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS)
4041 && atomic64_xchg(&per_cpu(active_asids, cpu), asid))
4042 goto switch_mm_fastpath;
4043
4044 raw_spin_lock_irqsave(&cpu_asid_lock, flags);
4045 /* Check that our ASID belongs to the current generation. */
4046 asid = atomic64_read(&mm->context.id);
4047 - if ((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS) {
4048 + if ((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS) {
4049 asid = new_context(mm, cpu);
4050 atomic64_set(&mm->context.id, asid);
4051 }
4052 diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
4053 index 0d629b8..01867c8 100644
4054 --- a/arch/arm/mm/fault.c
4055 +++ b/arch/arm/mm/fault.c
4056 @@ -25,6 +25,7 @@
4057 #include <asm/system_misc.h>
4058 #include <asm/system_info.h>
4059 #include <asm/tlbflush.h>
4060 +#include <asm/sections.h>
4061
4062 #include "fault.h"
4063
4064 @@ -138,6 +139,31 @@ __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
4065 if (fixup_exception(regs))
4066 return;
4067
4068 +#ifdef CONFIG_PAX_MEMORY_UDEREF
4069 + if (addr < TASK_SIZE) {
4070 + if (current->signal->curr_ip)
4071 + 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),
4072 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4073 + else
4074 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
4075 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4076 + }
4077 +#endif
4078 +
4079 +#ifdef CONFIG_PAX_KERNEXEC
4080 + if ((fsr & FSR_WRITE) &&
4081 + (((unsigned long)_stext <= addr && addr < init_mm.end_code) ||
4082 + (MODULES_VADDR <= addr && addr < MODULES_END)))
4083 + {
4084 + if (current->signal->curr_ip)
4085 + 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),
4086 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
4087 + else
4088 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
4089 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
4090 + }
4091 +#endif
4092 +
4093 /*
4094 * No handler, we'll have to terminate things with extreme prejudice.
4095 */
4096 @@ -173,6 +199,13 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
4097 }
4098 #endif
4099
4100 +#ifdef CONFIG_PAX_PAGEEXEC
4101 + if (fsr & FSR_LNX_PF) {
4102 + pax_report_fault(regs, (void *)regs->ARM_pc, (void *)regs->ARM_sp);
4103 + do_group_exit(SIGKILL);
4104 + }
4105 +#endif
4106 +
4107 tsk->thread.address = addr;
4108 tsk->thread.error_code = fsr;
4109 tsk->thread.trap_no = 14;
4110 @@ -400,6 +433,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
4111 }
4112 #endif /* CONFIG_MMU */
4113
4114 +#ifdef CONFIG_PAX_PAGEEXEC
4115 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
4116 +{
4117 + long i;
4118 +
4119 + printk(KERN_ERR "PAX: bytes at PC: ");
4120 + for (i = 0; i < 20; i++) {
4121 + unsigned char c;
4122 + if (get_user(c, (__force unsigned char __user *)pc+i))
4123 + printk(KERN_CONT "?? ");
4124 + else
4125 + printk(KERN_CONT "%02x ", c);
4126 + }
4127 + printk("\n");
4128 +
4129 + printk(KERN_ERR "PAX: bytes at SP-4: ");
4130 + for (i = -1; i < 20; i++) {
4131 + unsigned long c;
4132 + if (get_user(c, (__force unsigned long __user *)sp+i))
4133 + printk(KERN_CONT "???????? ");
4134 + else
4135 + printk(KERN_CONT "%08lx ", c);
4136 + }
4137 + printk("\n");
4138 +}
4139 +#endif
4140 +
4141 /*
4142 * First Level Translation Fault Handler
4143 *
4144 @@ -547,9 +607,22 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
4145 const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
4146 struct siginfo info;
4147
4148 +#ifdef CONFIG_PAX_MEMORY_UDEREF
4149 + if (addr < TASK_SIZE && is_domain_fault(fsr)) {
4150 + if (current->signal->curr_ip)
4151 + 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),
4152 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4153 + else
4154 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
4155 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4156 + goto die;
4157 + }
4158 +#endif
4159 +
4160 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs))
4161 return;
4162
4163 +die:
4164 pr_alert("Unhandled fault: %s (0x%03x) at 0x%08lx\n",
4165 inf->name, fsr, addr);
4166 show_pte(current->mm, addr);
4167 @@ -574,15 +647,104 @@ hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *
4168 ifsr_info[nr].name = name;
4169 }
4170
4171 +asmlinkage int sys_sigreturn(struct pt_regs *regs);
4172 +asmlinkage int sys_rt_sigreturn(struct pt_regs *regs);
4173 +
4174 asmlinkage void __exception
4175 do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
4176 {
4177 const struct fsr_info *inf = ifsr_info + fsr_fs(ifsr);
4178 struct siginfo info;
4179 + unsigned long pc = instruction_pointer(regs);
4180 +
4181 + if (user_mode(regs)) {
4182 + unsigned long sigpage = current->mm->context.sigpage;
4183 +
4184 + if (sigpage <= pc && pc < sigpage + 7*4) {
4185 + if (pc < sigpage + 3*4)
4186 + sys_sigreturn(regs);
4187 + else
4188 + sys_rt_sigreturn(regs);
4189 + return;
4190 + }
4191 + if (pc == 0xffff0f60UL) {
4192 + /*
4193 + * PaX: __kuser_cmpxchg64 emulation
4194 + */
4195 + // TODO
4196 + //regs->ARM_pc = regs->ARM_lr;
4197 + //return;
4198 + }
4199 + if (pc == 0xffff0fa0UL) {
4200 + /*
4201 + * PaX: __kuser_memory_barrier emulation
4202 + */
4203 + // dmb(); implied by the exception
4204 + regs->ARM_pc = regs->ARM_lr;
4205 + return;
4206 + }
4207 + if (pc == 0xffff0fc0UL) {
4208 + /*
4209 + * PaX: __kuser_cmpxchg emulation
4210 + */
4211 + // TODO
4212 + //long new;
4213 + //int op;
4214 +
4215 + //op = FUTEX_OP_SET << 28;
4216 + //new = futex_atomic_op_inuser(op, regs->ARM_r2);
4217 + //regs->ARM_r0 = old != new;
4218 + //regs->ARM_pc = regs->ARM_lr;
4219 + //return;
4220 + }
4221 + if (pc == 0xffff0fe0UL) {
4222 + /*
4223 + * PaX: __kuser_get_tls emulation
4224 + */
4225 + regs->ARM_r0 = current_thread_info()->tp_value[0];
4226 + regs->ARM_pc = regs->ARM_lr;
4227 + return;
4228 + }
4229 + }
4230 +
4231 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
4232 + else if (is_domain_fault(ifsr) || is_xn_fault(ifsr)) {
4233 + if (current->signal->curr_ip)
4234 + 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),
4235 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
4236 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
4237 + else
4238 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", 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 + goto die;
4242 + }
4243 +#endif
4244 +
4245 +#ifdef CONFIG_PAX_REFCOUNT
4246 + if (fsr_fs(ifsr) == FAULT_CODE_DEBUG) {
4247 +#ifdef CONFIG_THUMB2_KERNEL
4248 + unsigned short bkpt;
4249 +
4250 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le16(bkpt) == 0xbef1) {
4251 +#else
4252 + unsigned int bkpt;
4253 +
4254 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le32(bkpt) == 0xe12f1073) {
4255 +#endif
4256 + current->thread.error_code = ifsr;
4257 + current->thread.trap_no = 0;
4258 + pax_report_refcount_overflow(regs);
4259 + fixup_exception(regs);
4260 + return;
4261 + }
4262 + }
4263 +#endif
4264
4265 if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
4266 return;
4267
4268 +die:
4269 pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
4270 inf->name, ifsr, addr);
4271
4272 diff --git a/arch/arm/mm/fault.h b/arch/arm/mm/fault.h
4273 index cf08bdf..772656c 100644
4274 --- a/arch/arm/mm/fault.h
4275 +++ b/arch/arm/mm/fault.h
4276 @@ -3,6 +3,7 @@
4277
4278 /*
4279 * Fault status register encodings. We steal bit 31 for our own purposes.
4280 + * Set when the FSR value is from an instruction fault.
4281 */
4282 #define FSR_LNX_PF (1 << 31)
4283 #define FSR_WRITE (1 << 11)
4284 @@ -22,6 +23,17 @@ static inline int fsr_fs(unsigned int fsr)
4285 }
4286 #endif
4287
4288 +/* valid for LPAE and !LPAE */
4289 +static inline int is_xn_fault(unsigned int fsr)
4290 +{
4291 + return ((fsr_fs(fsr) & 0x3c) == 0xc);
4292 +}
4293 +
4294 +static inline int is_domain_fault(unsigned int fsr)
4295 +{
4296 + return ((fsr_fs(fsr) & 0xD) == 0x9);
4297 +}
4298 +
4299 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
4300 unsigned long search_exception_table(unsigned long addr);
4301
4302 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
4303 index 8a63b4c..6b04370 100644
4304 --- a/arch/arm/mm/init.c
4305 +++ b/arch/arm/mm/init.c
4306 @@ -710,7 +710,46 @@ void free_tcmmem(void)
4307 {
4308 #ifdef CONFIG_HAVE_TCM
4309 extern char __tcm_start, __tcm_end;
4310 +#endif
4311
4312 +#ifdef CONFIG_PAX_KERNEXEC
4313 + unsigned long addr;
4314 + pgd_t *pgd;
4315 + pud_t *pud;
4316 + pmd_t *pmd;
4317 + int cpu_arch = cpu_architecture();
4318 + unsigned int cr = get_cr();
4319 +
4320 + if (cpu_arch >= CPU_ARCH_ARMv6 && (cr & CR_XP)) {
4321 + /* make pages tables, etc before .text NX */
4322 + for (addr = PAGE_OFFSET; addr < (unsigned long)_stext; addr += SECTION_SIZE) {
4323 + pgd = pgd_offset_k(addr);
4324 + pud = pud_offset(pgd, addr);
4325 + pmd = pmd_offset(pud, addr);
4326 + __section_update(pmd, addr, PMD_SECT_XN);
4327 + }
4328 + /* make init NX */
4329 + for (addr = (unsigned long)__init_begin; addr < (unsigned long)_sdata; addr += SECTION_SIZE) {
4330 + pgd = pgd_offset_k(addr);
4331 + pud = pud_offset(pgd, addr);
4332 + pmd = pmd_offset(pud, addr);
4333 + __section_update(pmd, addr, PMD_SECT_XN);
4334 + }
4335 + /* make kernel code/rodata RX */
4336 + for (addr = (unsigned long)_stext; addr < (unsigned long)__init_begin; addr += SECTION_SIZE) {
4337 + pgd = pgd_offset_k(addr);
4338 + pud = pud_offset(pgd, addr);
4339 + pmd = pmd_offset(pud, addr);
4340 +#ifdef CONFIG_ARM_LPAE
4341 + __section_update(pmd, addr, PMD_SECT_RDONLY);
4342 +#else
4343 + __section_update(pmd, addr, PMD_SECT_APX|PMD_SECT_AP_WRITE);
4344 +#endif
4345 + }
4346 + }
4347 +#endif
4348 +
4349 +#ifdef CONFIG_HAVE_TCM
4350 poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
4351 free_reserved_area(&__tcm_start, &__tcm_end, -1, "TCM link");
4352 #endif
4353 diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
4354 index 0c81056..97279f7 100644
4355 --- a/arch/arm/mm/ioremap.c
4356 +++ b/arch/arm/mm/ioremap.c
4357 @@ -405,9 +405,9 @@ __arm_ioremap_exec(phys_addr_t phys_addr, size_t size, bool cached)
4358 unsigned int mtype;
4359
4360 if (cached)
4361 - mtype = MT_MEMORY_RWX;
4362 + mtype = MT_MEMORY_RX;
4363 else
4364 - mtype = MT_MEMORY_RWX_NONCACHED;
4365 + mtype = MT_MEMORY_RX_NONCACHED;
4366
4367 return __arm_ioremap_caller(phys_addr, size, mtype,
4368 __builtin_return_address(0));
4369 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
4370 index 407dc78..047ce9d 100644
4371 --- a/arch/arm/mm/mmap.c
4372 +++ b/arch/arm/mm/mmap.c
4373 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4374 struct vm_area_struct *vma;
4375 int do_align = 0;
4376 int aliasing = cache_is_vipt_aliasing();
4377 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4378 struct vm_unmapped_area_info info;
4379
4380 /*
4381 @@ -81,6 +82,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4382 if (len > TASK_SIZE)
4383 return -ENOMEM;
4384
4385 +#ifdef CONFIG_PAX_RANDMMAP
4386 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4387 +#endif
4388 +
4389 if (addr) {
4390 if (do_align)
4391 addr = COLOUR_ALIGN(addr, pgoff);
4392 @@ -88,8 +93,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4393 addr = PAGE_ALIGN(addr);
4394
4395 vma = find_vma(mm, addr);
4396 - if (TASK_SIZE - len >= addr &&
4397 - (!vma || addr + len <= vma->vm_start))
4398 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4399 return addr;
4400 }
4401
4402 @@ -99,6 +103,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4403 info.high_limit = TASK_SIZE;
4404 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4405 info.align_offset = pgoff << PAGE_SHIFT;
4406 + info.threadstack_offset = offset;
4407 return vm_unmapped_area(&info);
4408 }
4409
4410 @@ -112,6 +117,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4411 unsigned long addr = addr0;
4412 int do_align = 0;
4413 int aliasing = cache_is_vipt_aliasing();
4414 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4415 struct vm_unmapped_area_info info;
4416
4417 /*
4418 @@ -132,6 +138,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4419 return addr;
4420 }
4421
4422 +#ifdef CONFIG_PAX_RANDMMAP
4423 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4424 +#endif
4425 +
4426 /* requesting a specific address */
4427 if (addr) {
4428 if (do_align)
4429 @@ -139,8 +149,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4430 else
4431 addr = PAGE_ALIGN(addr);
4432 vma = find_vma(mm, addr);
4433 - if (TASK_SIZE - len >= addr &&
4434 - (!vma || addr + len <= vma->vm_start))
4435 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4436 return addr;
4437 }
4438
4439 @@ -150,6 +159,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4440 info.high_limit = mm->mmap_base;
4441 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4442 info.align_offset = pgoff << PAGE_SHIFT;
4443 + info.threadstack_offset = offset;
4444 addr = vm_unmapped_area(&info);
4445
4446 /*
4447 @@ -183,14 +193,30 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
4448 {
4449 unsigned long random_factor = 0UL;
4450
4451 +#ifdef CONFIG_PAX_RANDMMAP
4452 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4453 +#endif
4454 +
4455 if (current->flags & PF_RANDOMIZE)
4456 random_factor = arch_mmap_rnd();
4457
4458 if (mmap_is_legacy()) {
4459 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
4460 +
4461 +#ifdef CONFIG_PAX_RANDMMAP
4462 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4463 + mm->mmap_base += mm->delta_mmap;
4464 +#endif
4465 +
4466 mm->get_unmapped_area = arch_get_unmapped_area;
4467 } else {
4468 mm->mmap_base = mmap_base(random_factor);
4469 +
4470 +#ifdef CONFIG_PAX_RANDMMAP
4471 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4472 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
4473 +#endif
4474 +
4475 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4476 }
4477 }
4478 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
4479 index 870838a..070df1d 100644
4480 --- a/arch/arm/mm/mmu.c
4481 +++ b/arch/arm/mm/mmu.c
4482 @@ -41,6 +41,22 @@
4483 #include "mm.h"
4484 #include "tcm.h"
4485
4486 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
4487 +void modify_domain(unsigned int dom, unsigned int type)
4488 +{
4489 + struct thread_info *thread = current_thread_info();
4490 + unsigned int domain = thread->cpu_domain;
4491 + /*
4492 + * DOMAIN_MANAGER might be defined to some other value,
4493 + * use the arch-defined constant
4494 + */
4495 + domain &= ~domain_val(dom, 3);
4496 + thread->cpu_domain = domain | domain_val(dom, type);
4497 + set_domain(thread->cpu_domain);
4498 +}
4499 +EXPORT_SYMBOL(modify_domain);
4500 +#endif
4501 +
4502 /*
4503 * empty_zero_page is a special page that is used for
4504 * zero-initialized data and COW.
4505 @@ -242,7 +258,15 @@ __setup("noalign", noalign_setup);
4506 #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE
4507 #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
4508
4509 -static struct mem_type mem_types[] = {
4510 +#ifdef CONFIG_PAX_KERNEXEC
4511 +#define L_PTE_KERNEXEC L_PTE_RDONLY
4512 +#define PMD_SECT_KERNEXEC PMD_SECT_RDONLY
4513 +#else
4514 +#define L_PTE_KERNEXEC L_PTE_DIRTY
4515 +#define PMD_SECT_KERNEXEC PMD_SECT_AP_WRITE
4516 +#endif
4517 +
4518 +static struct mem_type mem_types[] __read_only = {
4519 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
4520 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
4521 L_PTE_SHARED,
4522 @@ -271,19 +295,19 @@ static struct mem_type mem_types[] = {
4523 .prot_sect = PROT_SECT_DEVICE,
4524 .domain = DOMAIN_IO,
4525 },
4526 - [MT_UNCACHED] = {
4527 + [MT_UNCACHED_RW] = {
4528 .prot_pte = PROT_PTE_DEVICE,
4529 .prot_l1 = PMD_TYPE_TABLE,
4530 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4531 .domain = DOMAIN_IO,
4532 },
4533 - [MT_CACHECLEAN] = {
4534 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4535 + [MT_CACHECLEAN_RO] = {
4536 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_RDONLY,
4537 .domain = DOMAIN_KERNEL,
4538 },
4539 #ifndef CONFIG_ARM_LPAE
4540 - [MT_MINICLEAN] = {
4541 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_MINICACHE,
4542 + [MT_MINICLEAN_RO] = {
4543 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_MINICACHE | PMD_SECT_XN | PMD_SECT_RDONLY,
4544 .domain = DOMAIN_KERNEL,
4545 },
4546 #endif
4547 @@ -291,15 +315,15 @@ static struct mem_type mem_types[] = {
4548 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4549 L_PTE_RDONLY,
4550 .prot_l1 = PMD_TYPE_TABLE,
4551 - .domain = DOMAIN_USER,
4552 + .domain = DOMAIN_VECTORS,
4553 },
4554 [MT_HIGH_VECTORS] = {
4555 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4556 L_PTE_USER | L_PTE_RDONLY,
4557 .prot_l1 = PMD_TYPE_TABLE,
4558 - .domain = DOMAIN_USER,
4559 + .domain = DOMAIN_VECTORS,
4560 },
4561 - [MT_MEMORY_RWX] = {
4562 + [__MT_MEMORY_RWX] = {
4563 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4564 .prot_l1 = PMD_TYPE_TABLE,
4565 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4566 @@ -312,17 +336,30 @@ static struct mem_type mem_types[] = {
4567 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4568 .domain = DOMAIN_KERNEL,
4569 },
4570 - [MT_ROM] = {
4571 - .prot_sect = PMD_TYPE_SECT,
4572 + [MT_MEMORY_RX] = {
4573 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4574 + .prot_l1 = PMD_TYPE_TABLE,
4575 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4576 + .domain = DOMAIN_KERNEL,
4577 + },
4578 + [MT_ROM_RX] = {
4579 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_RDONLY,
4580 .domain = DOMAIN_KERNEL,
4581 },
4582 - [MT_MEMORY_RWX_NONCACHED] = {
4583 + [MT_MEMORY_RW_NONCACHED] = {
4584 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4585 L_PTE_MT_BUFFERABLE,
4586 .prot_l1 = PMD_TYPE_TABLE,
4587 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4588 .domain = DOMAIN_KERNEL,
4589 },
4590 + [MT_MEMORY_RX_NONCACHED] = {
4591 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC |
4592 + L_PTE_MT_BUFFERABLE,
4593 + .prot_l1 = PMD_TYPE_TABLE,
4594 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4595 + .domain = DOMAIN_KERNEL,
4596 + },
4597 [MT_MEMORY_RW_DTCM] = {
4598 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4599 L_PTE_XN,
4600 @@ -330,9 +367,10 @@ static struct mem_type mem_types[] = {
4601 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4602 .domain = DOMAIN_KERNEL,
4603 },
4604 - [MT_MEMORY_RWX_ITCM] = {
4605 - .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4606 + [MT_MEMORY_RX_ITCM] = {
4607 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4608 .prot_l1 = PMD_TYPE_TABLE,
4609 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4610 .domain = DOMAIN_KERNEL,
4611 },
4612 [MT_MEMORY_RW_SO] = {
4613 @@ -544,9 +582,14 @@ static void __init build_mem_type_table(void)
4614 * Mark cache clean areas and XIP ROM read only
4615 * from SVC mode and no access from userspace.
4616 */
4617 - mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4618 - mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4619 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4620 + mem_types[MT_ROM_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4621 +#ifdef CONFIG_PAX_KERNEXEC
4622 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4623 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4624 + mem_types[MT_MEMORY_RX_ITCM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4625 +#endif
4626 + mem_types[MT_MINICLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4627 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4628 #endif
4629
4630 /*
4631 @@ -563,13 +606,17 @@ static void __init build_mem_type_table(void)
4632 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
4633 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
4634 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
4635 - mem_types[MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4636 - mem_types[MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4637 + mem_types[__MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4638 + mem_types[__MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4639 mem_types[MT_MEMORY_RW].prot_sect |= PMD_SECT_S;
4640 mem_types[MT_MEMORY_RW].prot_pte |= L_PTE_SHARED;
4641 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_S;
4642 + mem_types[MT_MEMORY_RX].prot_pte |= L_PTE_SHARED;
4643 mem_types[MT_MEMORY_DMA_READY].prot_pte |= L_PTE_SHARED;
4644 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_S;
4645 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_pte |= L_PTE_SHARED;
4646 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_S;
4647 + mem_types[MT_MEMORY_RW_NONCACHED].prot_pte |= L_PTE_SHARED;
4648 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_S;
4649 + mem_types[MT_MEMORY_RX_NONCACHED].prot_pte |= L_PTE_SHARED;
4650 }
4651 }
4652
4653 @@ -580,15 +627,20 @@ static void __init build_mem_type_table(void)
4654 if (cpu_arch >= CPU_ARCH_ARMv6) {
4655 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
4656 /* Non-cacheable Normal is XCB = 001 */
4657 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4658 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4659 + PMD_SECT_BUFFERED;
4660 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4661 PMD_SECT_BUFFERED;
4662 } else {
4663 /* For both ARMv6 and non-TEX-remapping ARMv7 */
4664 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4665 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4666 + PMD_SECT_TEX(1);
4667 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4668 PMD_SECT_TEX(1);
4669 }
4670 } else {
4671 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4672 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4673 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4674 }
4675
4676 #ifdef CONFIG_ARM_LPAE
4677 @@ -609,6 +661,8 @@ static void __init build_mem_type_table(void)
4678 user_pgprot |= PTE_EXT_PXN;
4679 #endif
4680
4681 + user_pgprot |= __supported_pte_mask;
4682 +
4683 for (i = 0; i < 16; i++) {
4684 pteval_t v = pgprot_val(protection_map[i]);
4685 protection_map[i] = __pgprot(v | user_pgprot);
4686 @@ -626,21 +680,24 @@ static void __init build_mem_type_table(void)
4687
4688 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
4689 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
4690 - mem_types[MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4691 - mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4692 + mem_types[__MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4693 + mem_types[__MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4694 mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
4695 mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
4696 + mem_types[MT_MEMORY_RX].prot_sect |= ecc_mask | cp->pmd;
4697 + mem_types[MT_MEMORY_RX].prot_pte |= kern_pgprot;
4698 mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
4699 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
4700 - mem_types[MT_ROM].prot_sect |= cp->pmd;
4701 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= ecc_mask;
4702 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= ecc_mask;
4703 + mem_types[MT_ROM_RX].prot_sect |= cp->pmd;
4704
4705 switch (cp->pmd) {
4706 case PMD_SECT_WT:
4707 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WT;
4708 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WT;
4709 break;
4710 case PMD_SECT_WB:
4711 case PMD_SECT_WBWA:
4712 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WB;
4713 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WB;
4714 break;
4715 }
4716 pr_info("Memory policy: %sData cache %s\n",
4717 @@ -854,7 +911,7 @@ static void __init create_mapping(struct map_desc *md)
4718 return;
4719 }
4720
4721 - if ((md->type == MT_DEVICE || md->type == MT_ROM) &&
4722 + if ((md->type == MT_DEVICE || md->type == MT_ROM_RX) &&
4723 md->virtual >= PAGE_OFFSET &&
4724 (md->virtual < VMALLOC_START || md->virtual >= VMALLOC_END)) {
4725 pr_warn("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n",
4726 @@ -1224,18 +1281,15 @@ void __init arm_mm_memblock_reserve(void)
4727 * called function. This means you can't use any function or debugging
4728 * method which may touch any device, otherwise the kernel _will_ crash.
4729 */
4730 +
4731 +static char vectors[PAGE_SIZE * 2] __read_only __aligned(PAGE_SIZE);
4732 +
4733 static void __init devicemaps_init(const struct machine_desc *mdesc)
4734 {
4735 struct map_desc map;
4736 unsigned long addr;
4737 - void *vectors;
4738
4739 - /*
4740 - * Allocate the vector page early.
4741 - */
4742 - vectors = early_alloc(PAGE_SIZE * 2);
4743 -
4744 - early_trap_init(vectors);
4745 + early_trap_init(&vectors);
4746
4747 for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
4748 pmd_clear(pmd_off_k(addr));
4749 @@ -1248,7 +1302,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4750 map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
4751 map.virtual = MODULES_VADDR;
4752 map.length = ((unsigned long)_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
4753 - map.type = MT_ROM;
4754 + map.type = MT_ROM_RX;
4755 create_mapping(&map);
4756 #endif
4757
4758 @@ -1259,14 +1313,14 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4759 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS);
4760 map.virtual = FLUSH_BASE;
4761 map.length = SZ_1M;
4762 - map.type = MT_CACHECLEAN;
4763 + map.type = MT_CACHECLEAN_RO;
4764 create_mapping(&map);
4765 #endif
4766 #ifdef FLUSH_BASE_MINICACHE
4767 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + SZ_1M);
4768 map.virtual = FLUSH_BASE_MINICACHE;
4769 map.length = SZ_1M;
4770 - map.type = MT_MINICLEAN;
4771 + map.type = MT_MINICLEAN_RO;
4772 create_mapping(&map);
4773 #endif
4774
4775 @@ -1275,7 +1329,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4776 * location (0xffff0000). If we aren't using high-vectors, also
4777 * create a mapping at the low-vectors virtual address.
4778 */
4779 - map.pfn = __phys_to_pfn(virt_to_phys(vectors));
4780 + map.pfn = __phys_to_pfn(virt_to_phys(&vectors));
4781 map.virtual = 0xffff0000;
4782 map.length = PAGE_SIZE;
4783 #ifdef CONFIG_KUSER_HELPERS
4784 @@ -1335,8 +1389,10 @@ static void __init kmap_init(void)
4785 static void __init map_lowmem(void)
4786 {
4787 struct memblock_region *reg;
4788 +#ifndef CONFIG_PAX_KERNEXEC
4789 phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
4790 phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
4791 +#endif
4792
4793 /* Map all the lowmem memory banks. */
4794 for_each_memblock(memory, reg) {
4795 @@ -1349,11 +1405,48 @@ static void __init map_lowmem(void)
4796 if (start >= end)
4797 break;
4798
4799 +#ifdef CONFIG_PAX_KERNEXEC
4800 + map.pfn = __phys_to_pfn(start);
4801 + map.virtual = __phys_to_virt(start);
4802 + map.length = end - start;
4803 +
4804 + if (map.virtual <= (unsigned long)_stext && ((unsigned long)_end < (map.virtual + map.length))) {
4805 + struct map_desc kernel;
4806 + struct map_desc initmap;
4807 +
4808 + /* when freeing initmem we will make this RW */
4809 + initmap.pfn = __phys_to_pfn(__pa(__init_begin));
4810 + initmap.virtual = (unsigned long)__init_begin;
4811 + initmap.length = _sdata - __init_begin;
4812 + initmap.type = __MT_MEMORY_RWX;
4813 + create_mapping(&initmap);
4814 +
4815 + /* when freeing initmem we will make this RX */
4816 + kernel.pfn = __phys_to_pfn(__pa(_stext));
4817 + kernel.virtual = (unsigned long)_stext;
4818 + kernel.length = __init_begin - _stext;
4819 + kernel.type = __MT_MEMORY_RWX;
4820 + create_mapping(&kernel);
4821 +
4822 + if (map.virtual < (unsigned long)_stext) {
4823 + map.length = (unsigned long)_stext - map.virtual;
4824 + map.type = __MT_MEMORY_RWX;
4825 + create_mapping(&map);
4826 + }
4827 +
4828 + map.pfn = __phys_to_pfn(__pa(_sdata));
4829 + map.virtual = (unsigned long)_sdata;
4830 + map.length = end - __pa(_sdata);
4831 + }
4832 +
4833 + map.type = MT_MEMORY_RW;
4834 + create_mapping(&map);
4835 +#else
4836 if (end < kernel_x_start) {
4837 map.pfn = __phys_to_pfn(start);
4838 map.virtual = __phys_to_virt(start);
4839 map.length = end - start;
4840 - map.type = MT_MEMORY_RWX;
4841 + map.type = __MT_MEMORY_RWX;
4842
4843 create_mapping(&map);
4844 } else if (start >= kernel_x_end) {
4845 @@ -1377,7 +1470,7 @@ static void __init map_lowmem(void)
4846 map.pfn = __phys_to_pfn(kernel_x_start);
4847 map.virtual = __phys_to_virt(kernel_x_start);
4848 map.length = kernel_x_end - kernel_x_start;
4849 - map.type = MT_MEMORY_RWX;
4850 + map.type = __MT_MEMORY_RWX;
4851
4852 create_mapping(&map);
4853
4854 @@ -1390,6 +1483,7 @@ static void __init map_lowmem(void)
4855 create_mapping(&map);
4856 }
4857 }
4858 +#endif
4859 }
4860 }
4861
4862 diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
4863 index c011e22..92a0260 100644
4864 --- a/arch/arm/net/bpf_jit_32.c
4865 +++ b/arch/arm/net/bpf_jit_32.c
4866 @@ -20,6 +20,7 @@
4867 #include <asm/cacheflush.h>
4868 #include <asm/hwcap.h>
4869 #include <asm/opcodes.h>
4870 +#include <asm/pgtable.h>
4871
4872 #include "bpf_jit_32.h"
4873
4874 @@ -72,54 +73,38 @@ struct jit_ctx {
4875 #endif
4876 };
4877
4878 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
4879 +int bpf_jit_enable __read_only;
4880 +#else
4881 int bpf_jit_enable __read_mostly;
4882 +#endif
4883
4884 -static inline int call_neg_helper(struct sk_buff *skb, int offset, void *ret,
4885 - unsigned int size)
4886 -{
4887 - void *ptr = bpf_internal_load_pointer_neg_helper(skb, offset, size);
4888 -
4889 - if (!ptr)
4890 - return -EFAULT;
4891 - memcpy(ret, ptr, size);
4892 - return 0;
4893 -}
4894 -
4895 -static u64 jit_get_skb_b(struct sk_buff *skb, int offset)
4896 +static u64 jit_get_skb_b(struct sk_buff *skb, unsigned offset)
4897 {
4898 u8 ret;
4899 int err;
4900
4901 - if (offset < 0)
4902 - err = call_neg_helper(skb, offset, &ret, 1);
4903 - else
4904 - err = skb_copy_bits(skb, offset, &ret, 1);
4905 + err = skb_copy_bits(skb, offset, &ret, 1);
4906
4907 return (u64)err << 32 | ret;
4908 }
4909
4910 -static u64 jit_get_skb_h(struct sk_buff *skb, int offset)
4911 +static u64 jit_get_skb_h(struct sk_buff *skb, unsigned offset)
4912 {
4913 u16 ret;
4914 int err;
4915
4916 - if (offset < 0)
4917 - err = call_neg_helper(skb, offset, &ret, 2);
4918 - else
4919 - err = skb_copy_bits(skb, offset, &ret, 2);
4920 + err = skb_copy_bits(skb, offset, &ret, 2);
4921
4922 return (u64)err << 32 | ntohs(ret);
4923 }
4924
4925 -static u64 jit_get_skb_w(struct sk_buff *skb, int offset)
4926 +static u64 jit_get_skb_w(struct sk_buff *skb, unsigned offset)
4927 {
4928 u32 ret;
4929 int err;
4930
4931 - if (offset < 0)
4932 - err = call_neg_helper(skb, offset, &ret, 4);
4933 - else
4934 - err = skb_copy_bits(skb, offset, &ret, 4);
4935 + err = skb_copy_bits(skb, offset, &ret, 4);
4936
4937 return (u64)err << 32 | ntohl(ret);
4938 }
4939 @@ -199,8 +184,10 @@ static void jit_fill_hole(void *area, unsigned int size)
4940 {
4941 u32 *ptr;
4942 /* We are guaranteed to have aligned memory. */
4943 + pax_open_kernel();
4944 for (ptr = area; size >= sizeof(u32); size -= sizeof(u32))
4945 *ptr++ = __opcode_to_mem_arm(ARM_INST_UDF);
4946 + pax_close_kernel();
4947 }
4948
4949 static void build_prologue(struct jit_ctx *ctx)
4950 @@ -556,6 +543,9 @@ static int build_body(struct jit_ctx *ctx)
4951 case BPF_LD | BPF_B | BPF_ABS:
4952 load_order = 0;
4953 load:
4954 + /* the interpreter will deal with the negative K */
4955 + if ((int)k < 0)
4956 + return -ENOTSUPP;
4957 emit_mov_i(r_off, k, ctx);
4958 load_common:
4959 ctx->seen |= SEEN_DATA | SEEN_CALL;
4960 @@ -570,18 +560,6 @@ load_common:
4961 condt = ARM_COND_HI;
4962 }
4963
4964 - /*
4965 - * test for negative offset, only if we are
4966 - * currently scheduled to take the fast
4967 - * path. this will update the flags so that
4968 - * the slowpath instruction are ignored if the
4969 - * offset is negative.
4970 - *
4971 - * for loard_order == 0 the HI condition will
4972 - * make loads at offset 0 take the slow path too.
4973 - */
4974 - _emit(condt, ARM_CMP_I(r_off, 0), ctx);
4975 -
4976 _emit(condt, ARM_ADD_R(r_scratch, r_off, r_skb_data),
4977 ctx);
4978
4979 diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c
4980 index 5b217f4..c23f40e 100644
4981 --- a/arch/arm/plat-iop/setup.c
4982 +++ b/arch/arm/plat-iop/setup.c
4983 @@ -24,7 +24,7 @@ static struct map_desc iop3xx_std_desc[] __initdata = {
4984 .virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
4985 .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
4986 .length = IOP3XX_PERIPHERAL_SIZE,
4987 - .type = MT_UNCACHED,
4988 + .type = MT_UNCACHED_RW,
4989 },
4990 };
4991
4992 diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
4993 index a5bc92d..0bb4730 100644
4994 --- a/arch/arm/plat-omap/sram.c
4995 +++ b/arch/arm/plat-omap/sram.c
4996 @@ -93,6 +93,8 @@ void __init omap_map_sram(unsigned long start, unsigned long size,
4997 * Looks like we need to preserve some bootloader code at the
4998 * beginning of SRAM for jumping to flash for reboot to work...
4999 */
5000 + pax_open_kernel();
5001 memset_io(omap_sram_base + omap_sram_skip, 0,
5002 omap_sram_size - omap_sram_skip);
5003 + pax_close_kernel();
5004 }
5005 diff --git a/arch/arm64/Kconfig.debug b/arch/arm64/Kconfig.debug
5006 index d6285ef..b684dac 100644
5007 --- a/arch/arm64/Kconfig.debug
5008 +++ b/arch/arm64/Kconfig.debug
5009 @@ -10,6 +10,7 @@ config ARM64_PTDUMP
5010 bool "Export kernel pagetable layout to userspace via debugfs"
5011 depends on DEBUG_KERNEL
5012 select DEBUG_FS
5013 + depends on !GRKERNSEC_KMEM
5014 help
5015 Say Y here if you want to show the kernel pagetable layout in a
5016 debugfs file. This information is only useful for kernel developers
5017 diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
5018 index 7047051..44e8675 100644
5019 --- a/arch/arm64/include/asm/atomic.h
5020 +++ b/arch/arm64/include/asm/atomic.h
5021 @@ -252,5 +252,15 @@ static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
5022 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
5023 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
5024
5025 +#define atomic64_read_unchecked(v) atomic64_read(v)
5026 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5027 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5028 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5029 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5030 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5031 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5032 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5033 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5034 +
5035 #endif
5036 #endif
5037 diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h
5038 index 0fa47c4..b167938 100644
5039 --- a/arch/arm64/include/asm/barrier.h
5040 +++ b/arch/arm64/include/asm/barrier.h
5041 @@ -44,7 +44,7 @@
5042 do { \
5043 compiletime_assert_atomic_type(*p); \
5044 barrier(); \
5045 - ACCESS_ONCE(*p) = (v); \
5046 + ACCESS_ONCE_RW(*p) = (v); \
5047 } while (0)
5048
5049 #define smp_load_acquire(p) \
5050 diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h
5051 index 4fde8c1..441f84f 100644
5052 --- a/arch/arm64/include/asm/percpu.h
5053 +++ b/arch/arm64/include/asm/percpu.h
5054 @@ -135,16 +135,16 @@ static inline void __percpu_write(void *ptr, unsigned long val, int size)
5055 {
5056 switch (size) {
5057 case 1:
5058 - ACCESS_ONCE(*(u8 *)ptr) = (u8)val;
5059 + ACCESS_ONCE_RW(*(u8 *)ptr) = (u8)val;
5060 break;
5061 case 2:
5062 - ACCESS_ONCE(*(u16 *)ptr) = (u16)val;
5063 + ACCESS_ONCE_RW(*(u16 *)ptr) = (u16)val;
5064 break;
5065 case 4:
5066 - ACCESS_ONCE(*(u32 *)ptr) = (u32)val;
5067 + ACCESS_ONCE_RW(*(u32 *)ptr) = (u32)val;
5068 break;
5069 case 8:
5070 - ACCESS_ONCE(*(u64 *)ptr) = (u64)val;
5071 + ACCESS_ONCE_RW(*(u64 *)ptr) = (u64)val;
5072 break;
5073 default:
5074 BUILD_BUG();
5075 diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
5076 index 7642056..bffc904 100644
5077 --- a/arch/arm64/include/asm/pgalloc.h
5078 +++ b/arch/arm64/include/asm/pgalloc.h
5079 @@ -46,6 +46,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
5080 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
5081 }
5082
5083 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
5084 +{
5085 + pud_populate(mm, pud, pmd);
5086 +}
5087 +
5088 #endif /* CONFIG_PGTABLE_LEVELS > 2 */
5089
5090 #if CONFIG_PGTABLE_LEVELS > 3
5091 diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
5092 index 07e1ba44..ec8cbbb 100644
5093 --- a/arch/arm64/include/asm/uaccess.h
5094 +++ b/arch/arm64/include/asm/uaccess.h
5095 @@ -99,6 +99,7 @@ static inline void set_fs(mm_segment_t fs)
5096 flag; \
5097 })
5098
5099 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
5100 #define access_ok(type, addr, size) __range_ok(addr, size)
5101 #define user_addr_max get_fs
5102
5103 diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
5104 index d16a1ce..a5acc60 100644
5105 --- a/arch/arm64/mm/dma-mapping.c
5106 +++ b/arch/arm64/mm/dma-mapping.c
5107 @@ -134,7 +134,7 @@ static void __dma_free_coherent(struct device *dev, size_t size,
5108 phys_to_page(paddr),
5109 size >> PAGE_SHIFT);
5110 if (!freed)
5111 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
5112 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
5113 }
5114
5115 static void *__dma_alloc(struct device *dev, size_t size,
5116 diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h
5117 index c3a58a1..78fbf54 100644
5118 --- a/arch/avr32/include/asm/cache.h
5119 +++ b/arch/avr32/include/asm/cache.h
5120 @@ -1,8 +1,10 @@
5121 #ifndef __ASM_AVR32_CACHE_H
5122 #define __ASM_AVR32_CACHE_H
5123
5124 +#include <linux/const.h>
5125 +
5126 #define L1_CACHE_SHIFT 5
5127 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5128 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5129
5130 /*
5131 * Memory returned by kmalloc() may be used for DMA, so we must make
5132 diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
5133 index 0388ece..87c8df1 100644
5134 --- a/arch/avr32/include/asm/elf.h
5135 +++ b/arch/avr32/include/asm/elf.h
5136 @@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpregset_t;
5137 the loader. We need to make sure that it is out of the way of the program
5138 that it will "exec", and that there is sufficient room for the brk. */
5139
5140 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
5141 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
5142
5143 +#ifdef CONFIG_PAX_ASLR
5144 +#define PAX_ELF_ET_DYN_BASE 0x00001000UL
5145 +
5146 +#define PAX_DELTA_MMAP_LEN 15
5147 +#define PAX_DELTA_STACK_LEN 15
5148 +#endif
5149
5150 /* This yields a mask that user programs can use to figure out what
5151 instruction set this CPU supports. This could be done in user space,
5152 diff --git a/arch/avr32/include/asm/kmap_types.h b/arch/avr32/include/asm/kmap_types.h
5153 index 479330b..53717a8 100644
5154 --- a/arch/avr32/include/asm/kmap_types.h
5155 +++ b/arch/avr32/include/asm/kmap_types.h
5156 @@ -2,9 +2,9 @@
5157 #define __ASM_AVR32_KMAP_TYPES_H
5158
5159 #ifdef CONFIG_DEBUG_HIGHMEM
5160 -# define KM_TYPE_NR 29
5161 +# define KM_TYPE_NR 30
5162 #else
5163 -# define KM_TYPE_NR 14
5164 +# define KM_TYPE_NR 15
5165 #endif
5166
5167 #endif /* __ASM_AVR32_KMAP_TYPES_H */
5168 diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
5169 index c035339..e1fa594 100644
5170 --- a/arch/avr32/mm/fault.c
5171 +++ b/arch/avr32/mm/fault.c
5172 @@ -41,6 +41,23 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
5173
5174 int exception_trace = 1;
5175
5176 +#ifdef CONFIG_PAX_PAGEEXEC
5177 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5178 +{
5179 + unsigned long i;
5180 +
5181 + printk(KERN_ERR "PAX: bytes at PC: ");
5182 + for (i = 0; i < 20; i++) {
5183 + unsigned char c;
5184 + if (get_user(c, (unsigned char *)pc+i))
5185 + printk(KERN_CONT "???????? ");
5186 + else
5187 + printk(KERN_CONT "%02x ", c);
5188 + }
5189 + printk("\n");
5190 +}
5191 +#endif
5192 +
5193 /*
5194 * This routine handles page faults. It determines the address and the
5195 * problem, and then passes it off to one of the appropriate routines.
5196 @@ -178,6 +195,16 @@ bad_area:
5197 up_read(&mm->mmap_sem);
5198
5199 if (user_mode(regs)) {
5200 +
5201 +#ifdef CONFIG_PAX_PAGEEXEC
5202 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
5203 + if (ecr == ECR_PROTECTION_X || ecr == ECR_TLB_MISS_X) {
5204 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->sp);
5205 + do_group_exit(SIGKILL);
5206 + }
5207 + }
5208 +#endif
5209 +
5210 if (exception_trace && printk_ratelimit())
5211 printk("%s%s[%d]: segfault at %08lx pc %08lx "
5212 "sp %08lx ecr %lu\n",
5213 diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
5214 index f3337ee..15b6f8d 100644
5215 --- a/arch/blackfin/Kconfig.debug
5216 +++ b/arch/blackfin/Kconfig.debug
5217 @@ -18,6 +18,7 @@ config DEBUG_VERBOSE
5218 config DEBUG_MMRS
5219 tristate "Generate Blackfin MMR tree"
5220 select DEBUG_FS
5221 + depends on !GRKERNSEC_KMEM
5222 help
5223 Create a tree of Blackfin MMRs via the debugfs tree. If
5224 you enable this, you will find all MMRs laid out in the
5225 diff --git a/arch/blackfin/include/asm/cache.h b/arch/blackfin/include/asm/cache.h
5226 index 568885a..f8008df 100644
5227 --- a/arch/blackfin/include/asm/cache.h
5228 +++ b/arch/blackfin/include/asm/cache.h
5229 @@ -7,6 +7,7 @@
5230 #ifndef __ARCH_BLACKFIN_CACHE_H
5231 #define __ARCH_BLACKFIN_CACHE_H
5232
5233 +#include <linux/const.h>
5234 #include <linux/linkage.h> /* for asmlinkage */
5235
5236 /*
5237 @@ -14,7 +15,7 @@
5238 * Blackfin loads 32 bytes for cache
5239 */
5240 #define L1_CACHE_SHIFT 5
5241 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5242 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5243 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5244
5245 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5246 diff --git a/arch/cris/include/arch-v10/arch/cache.h b/arch/cris/include/arch-v10/arch/cache.h
5247 index aea2718..3639a60 100644
5248 --- a/arch/cris/include/arch-v10/arch/cache.h
5249 +++ b/arch/cris/include/arch-v10/arch/cache.h
5250 @@ -1,8 +1,9 @@
5251 #ifndef _ASM_ARCH_CACHE_H
5252 #define _ASM_ARCH_CACHE_H
5253
5254 +#include <linux/const.h>
5255 /* Etrax 100LX have 32-byte cache-lines. */
5256 -#define L1_CACHE_BYTES 32
5257 #define L1_CACHE_SHIFT 5
5258 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5259
5260 #endif /* _ASM_ARCH_CACHE_H */
5261 diff --git a/arch/cris/include/arch-v32/arch/cache.h b/arch/cris/include/arch-v32/arch/cache.h
5262 index 7caf25d..ee65ac5 100644
5263 --- a/arch/cris/include/arch-v32/arch/cache.h
5264 +++ b/arch/cris/include/arch-v32/arch/cache.h
5265 @@ -1,11 +1,12 @@
5266 #ifndef _ASM_CRIS_ARCH_CACHE_H
5267 #define _ASM_CRIS_ARCH_CACHE_H
5268
5269 +#include <linux/const.h>
5270 #include <arch/hwregs/dma.h>
5271
5272 /* A cache-line is 32 bytes. */
5273 -#define L1_CACHE_BYTES 32
5274 #define L1_CACHE_SHIFT 5
5275 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5276
5277 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
5278
5279 diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h
5280 index 102190a..5334cea 100644
5281 --- a/arch/frv/include/asm/atomic.h
5282 +++ b/arch/frv/include/asm/atomic.h
5283 @@ -181,6 +181,16 @@ static inline void atomic64_dec(atomic64_t *v)
5284 #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter))
5285 #define atomic64_xchg(v, new) (__xchg_64(new, &(v)->counter))
5286
5287 +#define atomic64_read_unchecked(v) atomic64_read(v)
5288 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5289 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5290 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5291 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5292 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5293 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5294 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5295 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5296 +
5297 static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5298 {
5299 int c, old;
5300 diff --git a/arch/frv/include/asm/cache.h b/arch/frv/include/asm/cache.h
5301 index 2797163..c2a401df9 100644
5302 --- a/arch/frv/include/asm/cache.h
5303 +++ b/arch/frv/include/asm/cache.h
5304 @@ -12,10 +12,11 @@
5305 #ifndef __ASM_CACHE_H
5306 #define __ASM_CACHE_H
5307
5308 +#include <linux/const.h>
5309
5310 /* bytes per L1 cache line */
5311 #define L1_CACHE_SHIFT (CONFIG_FRV_L1_CACHE_SHIFT)
5312 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5313 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5314
5315 #define __cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
5316 #define ____cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
5317 diff --git a/arch/frv/include/asm/kmap_types.h b/arch/frv/include/asm/kmap_types.h
5318 index 43901f2..0d8b865 100644
5319 --- a/arch/frv/include/asm/kmap_types.h
5320 +++ b/arch/frv/include/asm/kmap_types.h
5321 @@ -2,6 +2,6 @@
5322 #ifndef _ASM_KMAP_TYPES_H
5323 #define _ASM_KMAP_TYPES_H
5324
5325 -#define KM_TYPE_NR 17
5326 +#define KM_TYPE_NR 18
5327
5328 #endif
5329 diff --git a/arch/frv/mm/elf-fdpic.c b/arch/frv/mm/elf-fdpic.c
5330 index 836f147..4cf23f5 100644
5331 --- a/arch/frv/mm/elf-fdpic.c
5332 +++ b/arch/frv/mm/elf-fdpic.c
5333 @@ -61,6 +61,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5334 {
5335 struct vm_area_struct *vma;
5336 struct vm_unmapped_area_info info;
5337 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
5338
5339 if (len > TASK_SIZE)
5340 return -ENOMEM;
5341 @@ -73,8 +74,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5342 if (addr) {
5343 addr = PAGE_ALIGN(addr);
5344 vma = find_vma(current->mm, addr);
5345 - if (TASK_SIZE - len >= addr &&
5346 - (!vma || addr + len <= vma->vm_start))
5347 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
5348 goto success;
5349 }
5350
5351 @@ -85,6 +85,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5352 info.high_limit = (current->mm->start_stack - 0x00200000);
5353 info.align_mask = 0;
5354 info.align_offset = 0;
5355 + info.threadstack_offset = offset;
5356 addr = vm_unmapped_area(&info);
5357 if (!(addr & ~PAGE_MASK))
5358 goto success;
5359 diff --git a/arch/hexagon/include/asm/cache.h b/arch/hexagon/include/asm/cache.h
5360 index 69952c18..4fa2908 100644
5361 --- a/arch/hexagon/include/asm/cache.h
5362 +++ b/arch/hexagon/include/asm/cache.h
5363 @@ -21,9 +21,11 @@
5364 #ifndef __ASM_CACHE_H
5365 #define __ASM_CACHE_H
5366
5367 +#include <linux/const.h>
5368 +
5369 /* Bytes per L1 cache line */
5370 -#define L1_CACHE_SHIFT (5)
5371 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5372 +#define L1_CACHE_SHIFT 5
5373 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5374
5375 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5376
5377 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
5378 index 42a91a7..29d446e 100644
5379 --- a/arch/ia64/Kconfig
5380 +++ b/arch/ia64/Kconfig
5381 @@ -518,6 +518,7 @@ source "drivers/sn/Kconfig"
5382 config KEXEC
5383 bool "kexec system call"
5384 depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
5385 + depends on !GRKERNSEC_KMEM
5386 help
5387 kexec is a system call that implements the ability to shutdown your
5388 current kernel, and to start another kernel. It is like a reboot
5389 diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
5390 index 970d0bd..e750b9b 100644
5391 --- a/arch/ia64/Makefile
5392 +++ b/arch/ia64/Makefile
5393 @@ -98,5 +98,6 @@ endef
5394 archprepare: make_nr_irqs_h FORCE
5395 PHONY += make_nr_irqs_h FORCE
5396
5397 +make_nr_irqs_h: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
5398 make_nr_irqs_h: FORCE
5399 $(Q)$(MAKE) $(build)=arch/ia64/kernel include/generated/nr-irqs.h
5400 diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h
5401 index 0bf0350..2ad1957 100644
5402 --- a/arch/ia64/include/asm/atomic.h
5403 +++ b/arch/ia64/include/asm/atomic.h
5404 @@ -193,4 +193,14 @@ atomic64_add_negative (__s64 i, atomic64_t *v)
5405 #define atomic64_inc(v) atomic64_add(1, (v))
5406 #define atomic64_dec(v) atomic64_sub(1, (v))
5407
5408 +#define atomic64_read_unchecked(v) atomic64_read(v)
5409 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5410 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5411 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5412 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5413 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5414 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5415 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5416 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5417 +
5418 #endif /* _ASM_IA64_ATOMIC_H */
5419 diff --git a/arch/ia64/include/asm/barrier.h b/arch/ia64/include/asm/barrier.h
5420 index 843ba43..fa118fb 100644
5421 --- a/arch/ia64/include/asm/barrier.h
5422 +++ b/arch/ia64/include/asm/barrier.h
5423 @@ -66,7 +66,7 @@
5424 do { \
5425 compiletime_assert_atomic_type(*p); \
5426 barrier(); \
5427 - ACCESS_ONCE(*p) = (v); \
5428 + ACCESS_ONCE_RW(*p) = (v); \
5429 } while (0)
5430
5431 #define smp_load_acquire(p) \
5432 diff --git a/arch/ia64/include/asm/cache.h b/arch/ia64/include/asm/cache.h
5433 index 988254a..e1ee885 100644
5434 --- a/arch/ia64/include/asm/cache.h
5435 +++ b/arch/ia64/include/asm/cache.h
5436 @@ -1,6 +1,7 @@
5437 #ifndef _ASM_IA64_CACHE_H
5438 #define _ASM_IA64_CACHE_H
5439
5440 +#include <linux/const.h>
5441
5442 /*
5443 * Copyright (C) 1998-2000 Hewlett-Packard Co
5444 @@ -9,7 +10,7 @@
5445
5446 /* Bytes per L1 (data) cache line. */
5447 #define L1_CACHE_SHIFT CONFIG_IA64_L1_CACHE_SHIFT
5448 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5449 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5450
5451 #ifdef CONFIG_SMP
5452 # define SMP_CACHE_SHIFT L1_CACHE_SHIFT
5453 diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
5454 index 5a83c5c..4d7f553 100644
5455 --- a/arch/ia64/include/asm/elf.h
5456 +++ b/arch/ia64/include/asm/elf.h
5457 @@ -42,6 +42,13 @@
5458 */
5459 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
5460
5461 +#ifdef CONFIG_PAX_ASLR
5462 +#define PAX_ELF_ET_DYN_BASE (current->personality == PER_LINUX32 ? 0x08048000UL : 0x4000000000000000UL)
5463 +
5464 +#define PAX_DELTA_MMAP_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5465 +#define PAX_DELTA_STACK_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5466 +#endif
5467 +
5468 #define PT_IA_64_UNWIND 0x70000001
5469
5470 /* IA-64 relocations: */
5471 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
5472 index f5e70e9..624fad5 100644
5473 --- a/arch/ia64/include/asm/pgalloc.h
5474 +++ b/arch/ia64/include/asm/pgalloc.h
5475 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5476 pgd_val(*pgd_entry) = __pa(pud);
5477 }
5478
5479 +static inline void
5480 +pgd_populate_kernel(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5481 +{
5482 + pgd_populate(mm, pgd_entry, pud);
5483 +}
5484 +
5485 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
5486 {
5487 return quicklist_alloc(0, GFP_KERNEL, NULL);
5488 @@ -57,6 +63,12 @@ pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5489 pud_val(*pud_entry) = __pa(pmd);
5490 }
5491
5492 +static inline void
5493 +pud_populate_kernel(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5494 +{
5495 + pud_populate(mm, pud_entry, pmd);
5496 +}
5497 +
5498 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
5499 {
5500 return quicklist_alloc(0, GFP_KERNEL, NULL);
5501 diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
5502 index 9f3ed9e..c99b418 100644
5503 --- a/arch/ia64/include/asm/pgtable.h
5504 +++ b/arch/ia64/include/asm/pgtable.h
5505 @@ -12,7 +12,7 @@
5506 * David Mosberger-Tang <davidm@hpl.hp.com>
5507 */
5508
5509 -
5510 +#include <linux/const.h>
5511 #include <asm/mman.h>
5512 #include <asm/page.h>
5513 #include <asm/processor.h>
5514 @@ -139,6 +139,17 @@
5515 #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5516 #define PAGE_COPY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5517 #define PAGE_COPY_EXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RX)
5518 +
5519 +#ifdef CONFIG_PAX_PAGEEXEC
5520 +# define PAGE_SHARED_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RW)
5521 +# define PAGE_READONLY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5522 +# define PAGE_COPY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5523 +#else
5524 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
5525 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
5526 +# define PAGE_COPY_NOEXEC PAGE_COPY
5527 +#endif
5528 +
5529 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
5530 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
5531 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
5532 diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
5533 index 45698cd..e8e2dbc 100644
5534 --- a/arch/ia64/include/asm/spinlock.h
5535 +++ b/arch/ia64/include/asm/spinlock.h
5536 @@ -71,7 +71,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
5537 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
5538
5539 asm volatile ("ld2.bias %0=[%1]" : "=r"(tmp) : "r"(p));
5540 - ACCESS_ONCE(*p) = (tmp + 2) & ~1;
5541 + ACCESS_ONCE_RW(*p) = (tmp + 2) & ~1;
5542 }
5543
5544 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
5545 diff --git a/arch/ia64/include/asm/uaccess.h b/arch/ia64/include/asm/uaccess.h
5546 index 4f3fb6cc..254055e 100644
5547 --- a/arch/ia64/include/asm/uaccess.h
5548 +++ b/arch/ia64/include/asm/uaccess.h
5549 @@ -70,6 +70,7 @@
5550 && ((segment).seg == KERNEL_DS.seg \
5551 || likely(REGION_OFFSET((unsigned long) (addr)) < RGN_MAP_LIMIT))); \
5552 })
5553 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
5554 #define access_ok(type, addr, size) __access_ok((addr), (size), get_fs())
5555
5556 /*
5557 @@ -241,12 +242,24 @@ extern unsigned long __must_check __copy_user (void __user *to, const void __use
5558 static inline unsigned long
5559 __copy_to_user (void __user *to, const void *from, unsigned long count)
5560 {
5561 + if (count > INT_MAX)
5562 + return count;
5563 +
5564 + if (!__builtin_constant_p(count))
5565 + check_object_size(from, count, true);
5566 +
5567 return __copy_user(to, (__force void __user *) from, count);
5568 }
5569
5570 static inline unsigned long
5571 __copy_from_user (void *to, const void __user *from, unsigned long count)
5572 {
5573 + if (count > INT_MAX)
5574 + return count;
5575 +
5576 + if (!__builtin_constant_p(count))
5577 + check_object_size(to, count, false);
5578 +
5579 return __copy_user((__force void __user *) to, from, count);
5580 }
5581
5582 @@ -256,10 +269,13 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5583 ({ \
5584 void __user *__cu_to = (to); \
5585 const void *__cu_from = (from); \
5586 - long __cu_len = (n); \
5587 + unsigned long __cu_len = (n); \
5588 \
5589 - if (__access_ok(__cu_to, __cu_len, get_fs())) \
5590 + if (__cu_len <= INT_MAX && __access_ok(__cu_to, __cu_len, get_fs())) { \
5591 + if (!__builtin_constant_p(n)) \
5592 + check_object_size(__cu_from, __cu_len, true); \
5593 __cu_len = __copy_user(__cu_to, (__force void __user *) __cu_from, __cu_len); \
5594 + } \
5595 __cu_len; \
5596 })
5597
5598 @@ -267,11 +283,14 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5599 ({ \
5600 void *__cu_to = (to); \
5601 const void __user *__cu_from = (from); \
5602 - long __cu_len = (n); \
5603 + unsigned long __cu_len = (n); \
5604 \
5605 __chk_user_ptr(__cu_from); \
5606 - if (__access_ok(__cu_from, __cu_len, get_fs())) \
5607 + if (__cu_len <= INT_MAX && __access_ok(__cu_from, __cu_len, get_fs())) { \
5608 + if (!__builtin_constant_p(n)) \
5609 + check_object_size(__cu_to, __cu_len, false); \
5610 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \
5611 + } \
5612 __cu_len; \
5613 })
5614
5615 diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
5616 index b15933c..098b1c8 100644
5617 --- a/arch/ia64/kernel/module.c
5618 +++ b/arch/ia64/kernel/module.c
5619 @@ -484,15 +484,39 @@ module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings,
5620 }
5621
5622 static inline int
5623 +in_init_rx (const struct module *mod, uint64_t addr)
5624 +{
5625 + return addr - (uint64_t) mod->module_init_rx < mod->init_size_rx;
5626 +}
5627 +
5628 +static inline int
5629 +in_init_rw (const struct module *mod, uint64_t addr)
5630 +{
5631 + return addr - (uint64_t) mod->module_init_rw < mod->init_size_rw;
5632 +}
5633 +
5634 +static inline int
5635 in_init (const struct module *mod, uint64_t addr)
5636 {
5637 - return addr - (uint64_t) mod->module_init < mod->init_size;
5638 + return in_init_rx(mod, addr) || in_init_rw(mod, addr);
5639 +}
5640 +
5641 +static inline int
5642 +in_core_rx (const struct module *mod, uint64_t addr)
5643 +{
5644 + return addr - (uint64_t) mod->module_core_rx < mod->core_size_rx;
5645 +}
5646 +
5647 +static inline int
5648 +in_core_rw (const struct module *mod, uint64_t addr)
5649 +{
5650 + return addr - (uint64_t) mod->module_core_rw < mod->core_size_rw;
5651 }
5652
5653 static inline int
5654 in_core (const struct module *mod, uint64_t addr)
5655 {
5656 - return addr - (uint64_t) mod->module_core < mod->core_size;
5657 + return in_core_rx(mod, addr) || in_core_rw(mod, addr);
5658 }
5659
5660 static inline int
5661 @@ -675,7 +699,14 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
5662 break;
5663
5664 case RV_BDREL:
5665 - val -= (uint64_t) (in_init(mod, val) ? mod->module_init : mod->module_core);
5666 + if (in_init_rx(mod, val))
5667 + val -= (uint64_t) mod->module_init_rx;
5668 + else if (in_init_rw(mod, val))
5669 + val -= (uint64_t) mod->module_init_rw;
5670 + else if (in_core_rx(mod, val))
5671 + val -= (uint64_t) mod->module_core_rx;
5672 + else if (in_core_rw(mod, val))
5673 + val -= (uint64_t) mod->module_core_rw;
5674 break;
5675
5676 case RV_LTV:
5677 @@ -810,15 +841,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind
5678 * addresses have been selected...
5679 */
5680 uint64_t gp;
5681 - if (mod->core_size > MAX_LTOFF)
5682 + if (mod->core_size_rx + mod->core_size_rw > MAX_LTOFF)
5683 /*
5684 * This takes advantage of fact that SHF_ARCH_SMALL gets allocated
5685 * at the end of the module.
5686 */
5687 - gp = mod->core_size - MAX_LTOFF / 2;
5688 + gp = mod->core_size_rx + mod->core_size_rw - MAX_LTOFF / 2;
5689 else
5690 - gp = mod->core_size / 2;
5691 - gp = (uint64_t) mod->module_core + ((gp + 7) & -8);
5692 + gp = (mod->core_size_rx + mod->core_size_rw) / 2;
5693 + gp = (uint64_t) mod->module_core_rx + ((gp + 7) & -8);
5694 mod->arch.gp = gp;
5695 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
5696 }
5697 diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
5698 index c39c3cd..3c77738 100644
5699 --- a/arch/ia64/kernel/palinfo.c
5700 +++ b/arch/ia64/kernel/palinfo.c
5701 @@ -980,7 +980,7 @@ static int palinfo_cpu_callback(struct notifier_block *nfb,
5702 return NOTIFY_OK;
5703 }
5704
5705 -static struct notifier_block __refdata palinfo_cpu_notifier =
5706 +static struct notifier_block palinfo_cpu_notifier =
5707 {
5708 .notifier_call = palinfo_cpu_callback,
5709 .priority = 0,
5710 diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
5711 index 41e33f8..65180b2a 100644
5712 --- a/arch/ia64/kernel/sys_ia64.c
5713 +++ b/arch/ia64/kernel/sys_ia64.c
5714 @@ -28,6 +28,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5715 unsigned long align_mask = 0;
5716 struct mm_struct *mm = current->mm;
5717 struct vm_unmapped_area_info info;
5718 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
5719
5720 if (len > RGN_MAP_LIMIT)
5721 return -ENOMEM;
5722 @@ -43,6 +44,13 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5723 if (REGION_NUMBER(addr) == RGN_HPAGE)
5724 addr = 0;
5725 #endif
5726 +
5727 +#ifdef CONFIG_PAX_RANDMMAP
5728 + if (mm->pax_flags & MF_PAX_RANDMMAP)
5729 + addr = mm->free_area_cache;
5730 + else
5731 +#endif
5732 +
5733 if (!addr)
5734 addr = TASK_UNMAPPED_BASE;
5735
5736 @@ -61,6 +69,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5737 info.high_limit = TASK_SIZE;
5738 info.align_mask = align_mask;
5739 info.align_offset = 0;
5740 + info.threadstack_offset = offset;
5741 return vm_unmapped_area(&info);
5742 }
5743
5744 diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
5745 index dc506b0..39baade 100644
5746 --- a/arch/ia64/kernel/vmlinux.lds.S
5747 +++ b/arch/ia64/kernel/vmlinux.lds.S
5748 @@ -171,7 +171,7 @@ SECTIONS {
5749 /* Per-cpu data: */
5750 . = ALIGN(PERCPU_PAGE_SIZE);
5751 PERCPU_VADDR(SMP_CACHE_BYTES, PERCPU_ADDR, :percpu)
5752 - __phys_per_cpu_start = __per_cpu_load;
5753 + __phys_per_cpu_start = per_cpu_load;
5754 /*
5755 * ensure percpu data fits
5756 * into percpu page size
5757 diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
5758 index 70b40d1..01a9a28 100644
5759 --- a/arch/ia64/mm/fault.c
5760 +++ b/arch/ia64/mm/fault.c
5761 @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned long address)
5762 return pte_present(pte);
5763 }
5764
5765 +#ifdef CONFIG_PAX_PAGEEXEC
5766 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5767 +{
5768 + unsigned long i;
5769 +
5770 + printk(KERN_ERR "PAX: bytes at PC: ");
5771 + for (i = 0; i < 8; i++) {
5772 + unsigned int c;
5773 + if (get_user(c, (unsigned int *)pc+i))
5774 + printk(KERN_CONT "???????? ");
5775 + else
5776 + printk(KERN_CONT "%08x ", c);
5777 + }
5778 + printk("\n");
5779 +}
5780 +#endif
5781 +
5782 # define VM_READ_BIT 0
5783 # define VM_WRITE_BIT 1
5784 # define VM_EXEC_BIT 2
5785 @@ -151,8 +168,21 @@ retry:
5786 if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
5787 goto bad_area;
5788
5789 - if ((vma->vm_flags & mask) != mask)
5790 + if ((vma->vm_flags & mask) != mask) {
5791 +
5792 +#ifdef CONFIG_PAX_PAGEEXEC
5793 + if (!(vma->vm_flags & VM_EXEC) && (mask & VM_EXEC)) {
5794 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->cr_iip)
5795 + goto bad_area;
5796 +
5797 + up_read(&mm->mmap_sem);
5798 + pax_report_fault(regs, (void *)regs->cr_iip, (void *)regs->r12);
5799 + do_group_exit(SIGKILL);
5800 + }
5801 +#endif
5802 +
5803 goto bad_area;
5804 + }
5805
5806 /*
5807 * If for any reason at all we couldn't handle the fault, make
5808 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c
5809 index f50d4b3..c7975ee 100644
5810 --- a/arch/ia64/mm/hugetlbpage.c
5811 +++ b/arch/ia64/mm/hugetlbpage.c
5812 @@ -138,6 +138,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5813 unsigned long pgoff, unsigned long flags)
5814 {
5815 struct vm_unmapped_area_info info;
5816 + unsigned long offset = gr_rand_threadstack_offset(current->mm, file, flags);
5817
5818 if (len > RGN_MAP_LIMIT)
5819 return -ENOMEM;
5820 @@ -161,6 +162,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5821 info.high_limit = HPAGE_REGION_BASE + RGN_MAP_LIMIT;
5822 info.align_mask = PAGE_MASK & (HPAGE_SIZE - 1);
5823 info.align_offset = 0;
5824 + info.threadstack_offset = offset;
5825 return vm_unmapped_area(&info);
5826 }
5827
5828 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
5829 index 97e48b0..fc59c36 100644
5830 --- a/arch/ia64/mm/init.c
5831 +++ b/arch/ia64/mm/init.c
5832 @@ -119,6 +119,19 @@ ia64_init_addr_space (void)
5833 vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
5834 vma->vm_end = vma->vm_start + PAGE_SIZE;
5835 vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT;
5836 +
5837 +#ifdef CONFIG_PAX_PAGEEXEC
5838 + if (current->mm->pax_flags & MF_PAX_PAGEEXEC) {
5839 + vma->vm_flags &= ~VM_EXEC;
5840 +
5841 +#ifdef CONFIG_PAX_MPROTECT
5842 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
5843 + vma->vm_flags &= ~VM_MAYEXEC;
5844 +#endif
5845 +
5846 + }
5847 +#endif
5848 +
5849 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
5850 down_write(&current->mm->mmap_sem);
5851 if (insert_vm_struct(current->mm, vma)) {
5852 @@ -279,7 +292,7 @@ static int __init gate_vma_init(void)
5853 gate_vma.vm_start = FIXADDR_USER_START;
5854 gate_vma.vm_end = FIXADDR_USER_END;
5855 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
5856 - gate_vma.vm_page_prot = __P101;
5857 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
5858
5859 return 0;
5860 }
5861 diff --git a/arch/m32r/include/asm/cache.h b/arch/m32r/include/asm/cache.h
5862 index 40b3ee98..8c2c112 100644
5863 --- a/arch/m32r/include/asm/cache.h
5864 +++ b/arch/m32r/include/asm/cache.h
5865 @@ -1,8 +1,10 @@
5866 #ifndef _ASM_M32R_CACHE_H
5867 #define _ASM_M32R_CACHE_H
5868
5869 +#include <linux/const.h>
5870 +
5871 /* L1 cache line size */
5872 #define L1_CACHE_SHIFT 4
5873 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5874 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5875
5876 #endif /* _ASM_M32R_CACHE_H */
5877 diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c
5878 index 82abd15..d95ae5d 100644
5879 --- a/arch/m32r/lib/usercopy.c
5880 +++ b/arch/m32r/lib/usercopy.c
5881 @@ -14,6 +14,9 @@
5882 unsigned long
5883 __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5884 {
5885 + if ((long)n < 0)
5886 + return n;
5887 +
5888 prefetch(from);
5889 if (access_ok(VERIFY_WRITE, to, n))
5890 __copy_user(to,from,n);
5891 @@ -23,6 +26,9 @@ __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5892 unsigned long
5893 __generic_copy_from_user(void *to, const void __user *from, unsigned long n)
5894 {
5895 + if ((long)n < 0)
5896 + return n;
5897 +
5898 prefetchw(to);
5899 if (access_ok(VERIFY_READ, from, n))
5900 __copy_user_zeroing(to,from,n);
5901 diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
5902 index 0395c51..5f26031 100644
5903 --- a/arch/m68k/include/asm/cache.h
5904 +++ b/arch/m68k/include/asm/cache.h
5905 @@ -4,9 +4,11 @@
5906 #ifndef __ARCH_M68K_CACHE_H
5907 #define __ARCH_M68K_CACHE_H
5908
5909 +#include <linux/const.h>
5910 +
5911 /* bytes per L1 cache line */
5912 #define L1_CACHE_SHIFT 4
5913 -#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
5914 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5915
5916 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5917
5918 diff --git a/arch/metag/include/asm/barrier.h b/arch/metag/include/asm/barrier.h
5919 index 5a696e5..070490d 100644
5920 --- a/arch/metag/include/asm/barrier.h
5921 +++ b/arch/metag/include/asm/barrier.h
5922 @@ -90,7 +90,7 @@ static inline void fence(void)
5923 do { \
5924 compiletime_assert_atomic_type(*p); \
5925 smp_mb(); \
5926 - ACCESS_ONCE(*p) = (v); \
5927 + ACCESS_ONCE_RW(*p) = (v); \
5928 } while (0)
5929
5930 #define smp_load_acquire(p) \
5931 diff --git a/arch/metag/mm/hugetlbpage.c b/arch/metag/mm/hugetlbpage.c
5932 index 53f0f6c..2dc07fd 100644
5933 --- a/arch/metag/mm/hugetlbpage.c
5934 +++ b/arch/metag/mm/hugetlbpage.c
5935 @@ -189,6 +189,7 @@ hugetlb_get_unmapped_area_new_pmd(unsigned long len)
5936 info.high_limit = TASK_SIZE;
5937 info.align_mask = PAGE_MASK & HUGEPT_MASK;
5938 info.align_offset = 0;
5939 + info.threadstack_offset = 0;
5940 return vm_unmapped_area(&info);
5941 }
5942
5943 diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
5944 index 4efe96a..60e8699 100644
5945 --- a/arch/microblaze/include/asm/cache.h
5946 +++ b/arch/microblaze/include/asm/cache.h
5947 @@ -13,11 +13,12 @@
5948 #ifndef _ASM_MICROBLAZE_CACHE_H
5949 #define _ASM_MICROBLAZE_CACHE_H
5950
5951 +#include <linux/const.h>
5952 #include <asm/registers.h>
5953
5954 #define L1_CACHE_SHIFT 5
5955 /* word-granular cache in microblaze */
5956 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5957 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5958
5959 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5960
5961 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
5962 index 199a835..822b487 100644
5963 --- a/arch/mips/Kconfig
5964 +++ b/arch/mips/Kconfig
5965 @@ -2591,6 +2591,7 @@ source "kernel/Kconfig.preempt"
5966
5967 config KEXEC
5968 bool "Kexec system call"
5969 + depends on !GRKERNSEC_KMEM
5970 help
5971 kexec is a system call that implements the ability to shutdown your
5972 current kernel, and to start another kernel. It is like a reboot
5973 diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
5974 index d8960d4..77dbd31 100644
5975 --- a/arch/mips/cavium-octeon/dma-octeon.c
5976 +++ b/arch/mips/cavium-octeon/dma-octeon.c
5977 @@ -199,7 +199,7 @@ static void octeon_dma_free_coherent(struct device *dev, size_t size,
5978 if (dma_release_from_coherent(dev, order, vaddr))
5979 return;
5980
5981 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
5982 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
5983 }
5984
5985 static dma_addr_t octeon_unity_phys_to_dma(struct device *dev, phys_addr_t paddr)
5986 diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
5987 index 26d4363..3c9a82e 100644
5988 --- a/arch/mips/include/asm/atomic.h
5989 +++ b/arch/mips/include/asm/atomic.h
5990 @@ -22,15 +22,39 @@
5991 #include <asm/cmpxchg.h>
5992 #include <asm/war.h>
5993
5994 +#ifdef CONFIG_GENERIC_ATOMIC64
5995 +#include <asm-generic/atomic64.h>
5996 +#endif
5997 +
5998 #define ATOMIC_INIT(i) { (i) }
5999
6000 +#ifdef CONFIG_64BIT
6001 +#define _ASM_EXTABLE(from, to) \
6002 +" .section __ex_table,\"a\"\n" \
6003 +" .dword " #from ", " #to"\n" \
6004 +" .previous\n"
6005 +#else
6006 +#define _ASM_EXTABLE(from, to) \
6007 +" .section __ex_table,\"a\"\n" \
6008 +" .word " #from ", " #to"\n" \
6009 +" .previous\n"
6010 +#endif
6011 +
6012 /*
6013 * atomic_read - read atomic variable
6014 * @v: pointer of type atomic_t
6015 *
6016 * Atomically reads the value of @v.
6017 */
6018 -#define atomic_read(v) ACCESS_ONCE((v)->counter)
6019 +static inline int atomic_read(const atomic_t *v)
6020 +{
6021 + return ACCESS_ONCE(v->counter);
6022 +}
6023 +
6024 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
6025 +{
6026 + return ACCESS_ONCE(v->counter);
6027 +}
6028
6029 /*
6030 * atomic_set - set atomic variable
6031 @@ -39,47 +63,77 @@
6032 *
6033 * Atomically sets the value of @v to @i.
6034 */
6035 -#define atomic_set(v, i) ((v)->counter = (i))
6036 +static inline void atomic_set(atomic_t *v, int i)
6037 +{
6038 + v->counter = i;
6039 +}
6040
6041 -#define ATOMIC_OP(op, c_op, asm_op) \
6042 -static __inline__ void atomic_##op(int i, atomic_t * v) \
6043 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
6044 +{
6045 + v->counter = i;
6046 +}
6047 +
6048 +#ifdef CONFIG_PAX_REFCOUNT
6049 +#define __OVERFLOW_POST \
6050 + " b 4f \n" \
6051 + " .set noreorder \n" \
6052 + "3: b 5f \n" \
6053 + " move %0, %1 \n" \
6054 + " .set reorder \n"
6055 +#define __OVERFLOW_EXTABLE \
6056 + "3:\n" \
6057 + _ASM_EXTABLE(2b, 3b)
6058 +#else
6059 +#define __OVERFLOW_POST
6060 +#define __OVERFLOW_EXTABLE
6061 +#endif
6062 +
6063 +#define __ATOMIC_OP(op, suffix, asm_op, extable) \
6064 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t * v) \
6065 { \
6066 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
6067 int temp; \
6068 \
6069 __asm__ __volatile__( \
6070 - " .set arch=r4000 \n" \
6071 - "1: ll %0, %1 # atomic_" #op " \n" \
6072 - " " #asm_op " %0, %2 \n" \
6073 + " .set mips3 \n" \
6074 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
6075 + "2: " #asm_op " %0, %2 \n" \
6076 " sc %0, %1 \n" \
6077 " beqzl %0, 1b \n" \
6078 + extable \
6079 " .set mips0 \n" \
6080 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6081 : "Ir" (i)); \
6082 } else if (kernel_uses_llsc) { \
6083 int temp; \
6084 \
6085 - do { \
6086 - __asm__ __volatile__( \
6087 - " .set "MIPS_ISA_LEVEL" \n" \
6088 - " ll %0, %1 # atomic_" #op "\n" \
6089 - " " #asm_op " %0, %2 \n" \
6090 - " sc %0, %1 \n" \
6091 - " .set mips0 \n" \
6092 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6093 - : "Ir" (i)); \
6094 - } while (unlikely(!temp)); \
6095 + __asm__ __volatile__( \
6096 + " .set "MIPS_ISA_LEVEL" \n" \
6097 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
6098 + "2: " #asm_op " %0, %2 \n" \
6099 + " sc %0, %1 \n" \
6100 + " beqz %0, 1b \n" \
6101 + extable \
6102 + " .set mips0 \n" \
6103 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6104 + : "Ir" (i)); \
6105 } else { \
6106 unsigned long flags; \
6107 \
6108 raw_local_irq_save(flags); \
6109 - v->counter c_op i; \
6110 + __asm__ __volatile__( \
6111 + "2: " #asm_op " %0, %1 \n" \
6112 + extable \
6113 + : "+r" (v->counter) : "Ir" (i)); \
6114 raw_local_irq_restore(flags); \
6115 } \
6116 }
6117
6118 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
6119 -static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6120 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, _unchecked, asm_op##u, ) \
6121 + __ATOMIC_OP(op, , asm_op, __OVERFLOW_EXTABLE)
6122 +
6123 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op, extable) \
6124 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t * v) \
6125 { \
6126 int result; \
6127 \
6128 @@ -89,12 +143,15 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6129 int temp; \
6130 \
6131 __asm__ __volatile__( \
6132 - " .set arch=r4000 \n" \
6133 - "1: ll %1, %2 # atomic_" #op "_return \n" \
6134 - " " #asm_op " %0, %1, %3 \n" \
6135 + " .set mips3 \n" \
6136 + "1: ll %1, %2 # atomic_" #op "_return" #suffix"\n" \
6137 + "2: " #asm_op " %0, %1, %3 \n" \
6138 " sc %0, %2 \n" \
6139 " beqzl %0, 1b \n" \
6140 - " " #asm_op " %0, %1, %3 \n" \
6141 + post_op \
6142 + extable \
6143 + "4: " #asm_op " %0, %1, %3 \n" \
6144 + "5: \n" \
6145 " .set mips0 \n" \
6146 : "=&r" (result), "=&r" (temp), \
6147 "+" GCC_OFF_SMALL_ASM() (v->counter) \
6148 @@ -102,26 +159,33 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6149 } else if (kernel_uses_llsc) { \
6150 int temp; \
6151 \
6152 - do { \
6153 - __asm__ __volatile__( \
6154 - " .set "MIPS_ISA_LEVEL" \n" \
6155 - " ll %1, %2 # atomic_" #op "_return \n" \
6156 - " " #asm_op " %0, %1, %3 \n" \
6157 - " sc %0, %2 \n" \
6158 - " .set mips0 \n" \
6159 - : "=&r" (result), "=&r" (temp), \
6160 - "+" GCC_OFF_SMALL_ASM() (v->counter) \
6161 - : "Ir" (i)); \
6162 - } while (unlikely(!result)); \
6163 + __asm__ __volatile__( \
6164 + " .set "MIPS_ISA_LEVEL" \n" \
6165 + "1: ll %1, %2 # atomic_" #op "_return" #suffix "\n" \
6166 + "2: " #asm_op " %0, %1, %3 \n" \
6167 + " sc %0, %2 \n" \
6168 + post_op \
6169 + extable \
6170 + "4: " #asm_op " %0, %1, %3 \n" \
6171 + "5: \n" \
6172 + " .set mips0 \n" \
6173 + : "=&r" (result), "=&r" (temp), \
6174 + "+" GCC_OFF_SMALL_ASM() (v->counter) \
6175 + : "Ir" (i)); \
6176 \
6177 result = temp; result c_op i; \
6178 } else { \
6179 unsigned long flags; \
6180 \
6181 raw_local_irq_save(flags); \
6182 - result = v->counter; \
6183 - result c_op i; \
6184 - v->counter = result; \
6185 + __asm__ __volatile__( \
6186 + " lw %0, %1 \n" \
6187 + "2: " #asm_op " %0, %1, %2 \n" \
6188 + " sw %0, %1 \n" \
6189 + "3: \n" \
6190 + extable \
6191 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6192 + : "Ir" (i)); \
6193 raw_local_irq_restore(flags); \
6194 } \
6195 \
6196 @@ -130,16 +194,21 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6197 return result; \
6198 }
6199
6200 -#define ATOMIC_OPS(op, c_op, asm_op) \
6201 - ATOMIC_OP(op, c_op, asm_op) \
6202 - ATOMIC_OP_RETURN(op, c_op, asm_op)
6203 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6204 + __ATOMIC_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6205
6206 -ATOMIC_OPS(add, +=, addu)
6207 -ATOMIC_OPS(sub, -=, subu)
6208 +#define ATOMIC_OPS(op, asm_op) \
6209 + ATOMIC_OP(op, asm_op) \
6210 + ATOMIC_OP_RETURN(op, asm_op)
6211 +
6212 +ATOMIC_OPS(add, add)
6213 +ATOMIC_OPS(sub, sub)
6214
6215 #undef ATOMIC_OPS
6216 #undef ATOMIC_OP_RETURN
6217 +#undef __ATOMIC_OP_RETURN
6218 #undef ATOMIC_OP
6219 +#undef __ATOMIC_OP
6220
6221 /*
6222 * atomic_sub_if_positive - conditionally subtract integer from atomic variable
6223 @@ -149,7 +218,7 @@ ATOMIC_OPS(sub, -=, subu)
6224 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6225 * The function returns the old value of @v minus @i.
6226 */
6227 -static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6228 +static __inline__ int atomic_sub_if_positive(int i, atomic_t *v)
6229 {
6230 int result;
6231
6232 @@ -159,7 +228,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6233 int temp;
6234
6235 __asm__ __volatile__(
6236 - " .set arch=r4000 \n"
6237 + " .set "MIPS_ISA_LEVEL" \n"
6238 "1: ll %1, %2 # atomic_sub_if_positive\n"
6239 " subu %0, %1, %3 \n"
6240 " bltz %0, 1f \n"
6241 @@ -208,8 +277,26 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6242 return result;
6243 }
6244
6245 -#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
6246 -#define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
6247 +static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
6248 +{
6249 + return cmpxchg(&v->counter, old, new);
6250 +}
6251 +
6252 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old,
6253 + int new)
6254 +{
6255 + return cmpxchg(&(v->counter), old, new);
6256 +}
6257 +
6258 +static inline int atomic_xchg(atomic_t *v, int new)
6259 +{
6260 + return xchg(&v->counter, new);
6261 +}
6262 +
6263 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
6264 +{
6265 + return xchg(&(v->counter), new);
6266 +}
6267
6268 /**
6269 * __atomic_add_unless - add unless the number is a given value
6270 @@ -237,6 +324,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6271
6272 #define atomic_dec_return(v) atomic_sub_return(1, (v))
6273 #define atomic_inc_return(v) atomic_add_return(1, (v))
6274 +static __inline__ int atomic_inc_return_unchecked(atomic_unchecked_t *v)
6275 +{
6276 + return atomic_add_return_unchecked(1, v);
6277 +}
6278
6279 /*
6280 * atomic_sub_and_test - subtract value from variable and test result
6281 @@ -258,6 +349,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6282 * other cases.
6283 */
6284 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
6285 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
6286 +{
6287 + return atomic_add_return_unchecked(1, v) == 0;
6288 +}
6289
6290 /*
6291 * atomic_dec_and_test - decrement by 1 and test
6292 @@ -282,6 +377,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6293 * Atomically increments @v by 1.
6294 */
6295 #define atomic_inc(v) atomic_add(1, (v))
6296 +static __inline__ void atomic_inc_unchecked(atomic_unchecked_t *v)
6297 +{
6298 + atomic_add_unchecked(1, v);
6299 +}
6300
6301 /*
6302 * atomic_dec - decrement and test
6303 @@ -290,6 +389,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6304 * Atomically decrements @v by 1.
6305 */
6306 #define atomic_dec(v) atomic_sub(1, (v))
6307 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
6308 +{
6309 + atomic_sub_unchecked(1, v);
6310 +}
6311
6312 /*
6313 * atomic_add_negative - add and test if negative
6314 @@ -311,54 +414,77 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6315 * @v: pointer of type atomic64_t
6316 *
6317 */
6318 -#define atomic64_read(v) ACCESS_ONCE((v)->counter)
6319 +static inline long atomic64_read(const atomic64_t *v)
6320 +{
6321 + return ACCESS_ONCE(v->counter);
6322 +}
6323 +
6324 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
6325 +{
6326 + return ACCESS_ONCE(v->counter);
6327 +}
6328
6329 /*
6330 * atomic64_set - set atomic variable
6331 * @v: pointer of type atomic64_t
6332 * @i: required value
6333 */
6334 -#define atomic64_set(v, i) ((v)->counter = (i))
6335 +static inline void atomic64_set(atomic64_t *v, long i)
6336 +{
6337 + v->counter = i;
6338 +}
6339
6340 -#define ATOMIC64_OP(op, c_op, asm_op) \
6341 -static __inline__ void atomic64_##op(long i, atomic64_t * v) \
6342 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
6343 +{
6344 + v->counter = i;
6345 +}
6346 +
6347 +#define __ATOMIC64_OP(op, suffix, asm_op, extable) \
6348 +static inline void atomic64_##op##suffix(long i, atomic64##suffix##_t * v) \
6349 { \
6350 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
6351 long temp; \
6352 \
6353 __asm__ __volatile__( \
6354 - " .set arch=r4000 \n" \
6355 - "1: lld %0, %1 # atomic64_" #op " \n" \
6356 - " " #asm_op " %0, %2 \n" \
6357 + " .set "MIPS_ISA_LEVEL" \n" \
6358 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6359 + "2: " #asm_op " %0, %2 \n" \
6360 " scd %0, %1 \n" \
6361 " beqzl %0, 1b \n" \
6362 + extable \
6363 " .set mips0 \n" \
6364 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6365 : "Ir" (i)); \
6366 } else if (kernel_uses_llsc) { \
6367 long temp; \
6368 \
6369 - do { \
6370 - __asm__ __volatile__( \
6371 - " .set "MIPS_ISA_LEVEL" \n" \
6372 - " lld %0, %1 # atomic64_" #op "\n" \
6373 - " " #asm_op " %0, %2 \n" \
6374 - " scd %0, %1 \n" \
6375 - " .set mips0 \n" \
6376 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6377 - : "Ir" (i)); \
6378 - } while (unlikely(!temp)); \
6379 + __asm__ __volatile__( \
6380 + " .set "MIPS_ISA_LEVEL" \n" \
6381 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6382 + "2: " #asm_op " %0, %2 \n" \
6383 + " scd %0, %1 \n" \
6384 + " beqz %0, 1b \n" \
6385 + extable \
6386 + " .set mips0 \n" \
6387 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6388 + : "Ir" (i)); \
6389 } else { \
6390 unsigned long flags; \
6391 \
6392 raw_local_irq_save(flags); \
6393 - v->counter c_op i; \
6394 + __asm__ __volatile__( \
6395 + "2: " #asm_op " %0, %1 \n" \
6396 + extable \
6397 + : "+" GCC_OFF_SMALL_ASM() (v->counter) : "Ir" (i)); \
6398 raw_local_irq_restore(flags); \
6399 } \
6400 }
6401
6402 -#define ATOMIC64_OP_RETURN(op, c_op, asm_op) \
6403 -static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6404 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, _unchecked, asm_op##u, ) \
6405 + __ATOMIC64_OP(op, , asm_op, __OVERFLOW_EXTABLE)
6406 +
6407 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op, extable) \
6408 +static inline long atomic64_##op##_return##suffix(long i, atomic64##suffix##_t * v)\
6409 { \
6410 long result; \
6411 \
6412 @@ -368,12 +494,15 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6413 long temp; \
6414 \
6415 __asm__ __volatile__( \
6416 - " .set arch=r4000 \n" \
6417 + " .set mips3 \n" \
6418 "1: lld %1, %2 # atomic64_" #op "_return\n" \
6419 - " " #asm_op " %0, %1, %3 \n" \
6420 + "2: " #asm_op " %0, %1, %3 \n" \
6421 " scd %0, %2 \n" \
6422 " beqzl %0, 1b \n" \
6423 - " " #asm_op " %0, %1, %3 \n" \
6424 + post_op \
6425 + extable \
6426 + "4: " #asm_op " %0, %1, %3 \n" \
6427 + "5: \n" \
6428 " .set mips0 \n" \
6429 : "=&r" (result), "=&r" (temp), \
6430 "+" GCC_OFF_SMALL_ASM() (v->counter) \
6431 @@ -381,27 +510,35 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6432 } else if (kernel_uses_llsc) { \
6433 long temp; \
6434 \
6435 - do { \
6436 - __asm__ __volatile__( \
6437 - " .set "MIPS_ISA_LEVEL" \n" \
6438 - " lld %1, %2 # atomic64_" #op "_return\n" \
6439 - " " #asm_op " %0, %1, %3 \n" \
6440 - " scd %0, %2 \n" \
6441 - " .set mips0 \n" \
6442 - : "=&r" (result), "=&r" (temp), \
6443 - "=" GCC_OFF_SMALL_ASM() (v->counter) \
6444 - : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6445 - : "memory"); \
6446 - } while (unlikely(!result)); \
6447 + __asm__ __volatile__( \
6448 + " .set "MIPS_ISA_LEVEL" \n" \
6449 + "1: lld %1, %2 # atomic64_" #op "_return" #suffix "\n"\
6450 + "2: " #asm_op " %0, %1, %3 \n" \
6451 + " scd %0, %2 \n" \
6452 + " beqz %0, 1b \n" \
6453 + post_op \
6454 + extable \
6455 + "4: " #asm_op " %0, %1, %3 \n" \
6456 + "5: \n" \
6457 + " .set mips0 \n" \
6458 + : "=&r" (result), "=&r" (temp), \
6459 + "=" GCC_OFF_SMALL_ASM() (v->counter) \
6460 + : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6461 + : "memory"); \
6462 \
6463 result = temp; result c_op i; \
6464 } else { \
6465 unsigned long flags; \
6466 \
6467 raw_local_irq_save(flags); \
6468 - result = v->counter; \
6469 - result c_op i; \
6470 - v->counter = result; \
6471 + __asm__ __volatile__( \
6472 + " ld %0, %1 \n" \
6473 + "2: " #asm_op " %0, %1, %2 \n" \
6474 + " sd %0, %1 \n" \
6475 + "3: \n" \
6476 + extable \
6477 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6478 + : "Ir" (i)); \
6479 raw_local_irq_restore(flags); \
6480 } \
6481 \
6482 @@ -410,16 +547,23 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6483 return result; \
6484 }
6485
6486 -#define ATOMIC64_OPS(op, c_op, asm_op) \
6487 - ATOMIC64_OP(op, c_op, asm_op) \
6488 - ATOMIC64_OP_RETURN(op, c_op, asm_op)
6489 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6490 + __ATOMIC64_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6491
6492 -ATOMIC64_OPS(add, +=, daddu)
6493 -ATOMIC64_OPS(sub, -=, dsubu)
6494 +#define ATOMIC64_OPS(op, asm_op) \
6495 + ATOMIC64_OP(op, asm_op) \
6496 + ATOMIC64_OP_RETURN(op, asm_op)
6497 +
6498 +ATOMIC64_OPS(add, dadd)
6499 +ATOMIC64_OPS(sub, dsub)
6500
6501 #undef ATOMIC64_OPS
6502 #undef ATOMIC64_OP_RETURN
6503 +#undef __ATOMIC64_OP_RETURN
6504 #undef ATOMIC64_OP
6505 +#undef __ATOMIC64_OP
6506 +#undef __OVERFLOW_EXTABLE
6507 +#undef __OVERFLOW_POST
6508
6509 /*
6510 * atomic64_sub_if_positive - conditionally subtract integer from atomic
6511 @@ -430,7 +574,7 @@ ATOMIC64_OPS(sub, -=, dsubu)
6512 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6513 * The function returns the old value of @v minus @i.
6514 */
6515 -static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6516 +static __inline__ long atomic64_sub_if_positive(long i, atomic64_t *v)
6517 {
6518 long result;
6519
6520 @@ -440,7 +584,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6521 long temp;
6522
6523 __asm__ __volatile__(
6524 - " .set arch=r4000 \n"
6525 + " .set "MIPS_ISA_LEVEL" \n"
6526 "1: lld %1, %2 # atomic64_sub_if_positive\n"
6527 " dsubu %0, %1, %3 \n"
6528 " bltz %0, 1f \n"
6529 @@ -489,9 +633,26 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6530 return result;
6531 }
6532
6533 -#define atomic64_cmpxchg(v, o, n) \
6534 - ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
6535 -#define atomic64_xchg(v, new) (xchg(&((v)->counter), (new)))
6536 +static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
6537 +{
6538 + return cmpxchg(&v->counter, old, new);
6539 +}
6540 +
6541 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old,
6542 + long new)
6543 +{
6544 + return cmpxchg(&(v->counter), old, new);
6545 +}
6546 +
6547 +static inline long atomic64_xchg(atomic64_t *v, long new)
6548 +{
6549 + return xchg(&v->counter, new);
6550 +}
6551 +
6552 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
6553 +{
6554 + return xchg(&(v->counter), new);
6555 +}
6556
6557 /**
6558 * atomic64_add_unless - add unless the number is a given value
6559 @@ -521,6 +682,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6560
6561 #define atomic64_dec_return(v) atomic64_sub_return(1, (v))
6562 #define atomic64_inc_return(v) atomic64_add_return(1, (v))
6563 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1, (v))
6564
6565 /*
6566 * atomic64_sub_and_test - subtract value from variable and test result
6567 @@ -542,6 +704,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6568 * other cases.
6569 */
6570 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
6571 +#define atomic64_inc_and_test_unchecked(v) atomic64_add_return_unchecked(1, (v)) == 0)
6572
6573 /*
6574 * atomic64_dec_and_test - decrement by 1 and test
6575 @@ -566,6 +729,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6576 * Atomically increments @v by 1.
6577 */
6578 #define atomic64_inc(v) atomic64_add(1, (v))
6579 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1, (v))
6580
6581 /*
6582 * atomic64_dec - decrement and test
6583 @@ -574,6 +738,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6584 * Atomically decrements @v by 1.
6585 */
6586 #define atomic64_dec(v) atomic64_sub(1, (v))
6587 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1, (v))
6588
6589 /*
6590 * atomic64_add_negative - add and test if negative
6591 diff --git a/arch/mips/include/asm/barrier.h b/arch/mips/include/asm/barrier.h
6592 index 7ecba84..21774af 100644
6593 --- a/arch/mips/include/asm/barrier.h
6594 +++ b/arch/mips/include/asm/barrier.h
6595 @@ -133,7 +133,7 @@
6596 do { \
6597 compiletime_assert_atomic_type(*p); \
6598 smp_mb(); \
6599 - ACCESS_ONCE(*p) = (v); \
6600 + ACCESS_ONCE_RW(*p) = (v); \
6601 } while (0)
6602
6603 #define smp_load_acquire(p) \
6604 diff --git a/arch/mips/include/asm/cache.h b/arch/mips/include/asm/cache.h
6605 index b4db69f..8f3b093 100644
6606 --- a/arch/mips/include/asm/cache.h
6607 +++ b/arch/mips/include/asm/cache.h
6608 @@ -9,10 +9,11 @@
6609 #ifndef _ASM_CACHE_H
6610 #define _ASM_CACHE_H
6611
6612 +#include <linux/const.h>
6613 #include <kmalloc.h>
6614
6615 #define L1_CACHE_SHIFT CONFIG_MIPS_L1_CACHE_SHIFT
6616 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
6617 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
6618
6619 #define SMP_CACHE_SHIFT L1_CACHE_SHIFT
6620 #define SMP_CACHE_BYTES L1_CACHE_BYTES
6621 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
6622 index f19e890..a4f8177 100644
6623 --- a/arch/mips/include/asm/elf.h
6624 +++ b/arch/mips/include/asm/elf.h
6625 @@ -417,6 +417,13 @@ extern const char *__elf_platform;
6626 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
6627 #endif
6628
6629 +#ifdef CONFIG_PAX_ASLR
6630 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6631 +
6632 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6633 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6634 +#endif
6635 +
6636 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
6637 struct linux_binprm;
6638 extern int arch_setup_additional_pages(struct linux_binprm *bprm,
6639 diff --git a/arch/mips/include/asm/exec.h b/arch/mips/include/asm/exec.h
6640 index c1f6afa..38cc6e9 100644
6641 --- a/arch/mips/include/asm/exec.h
6642 +++ b/arch/mips/include/asm/exec.h
6643 @@ -12,6 +12,6 @@
6644 #ifndef _ASM_EXEC_H
6645 #define _ASM_EXEC_H
6646
6647 -extern unsigned long arch_align_stack(unsigned long sp);
6648 +#define arch_align_stack(x) ((x) & ~0xfUL)
6649
6650 #endif /* _ASM_EXEC_H */
6651 diff --git a/arch/mips/include/asm/hw_irq.h b/arch/mips/include/asm/hw_irq.h
6652 index 9e8ef59..1139d6b 100644
6653 --- a/arch/mips/include/asm/hw_irq.h
6654 +++ b/arch/mips/include/asm/hw_irq.h
6655 @@ -10,7 +10,7 @@
6656
6657 #include <linux/atomic.h>
6658
6659 -extern atomic_t irq_err_count;
6660 +extern atomic_unchecked_t irq_err_count;
6661
6662 /*
6663 * interrupt-retrigger: NOP for now. This may not be appropriate for all
6664 diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h
6665 index 8feaed6..1bd8a64 100644
6666 --- a/arch/mips/include/asm/local.h
6667 +++ b/arch/mips/include/asm/local.h
6668 @@ -13,15 +13,25 @@ typedef struct
6669 atomic_long_t a;
6670 } local_t;
6671
6672 +typedef struct {
6673 + atomic_long_unchecked_t a;
6674 +} local_unchecked_t;
6675 +
6676 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
6677
6678 #define local_read(l) atomic_long_read(&(l)->a)
6679 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
6680 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
6681 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
6682
6683 #define local_add(i, l) atomic_long_add((i), (&(l)->a))
6684 +#define local_add_unchecked(i, l) atomic_long_add_unchecked((i), (&(l)->a))
6685 #define local_sub(i, l) atomic_long_sub((i), (&(l)->a))
6686 +#define local_sub_unchecked(i, l) atomic_long_sub_unchecked((i), (&(l)->a))
6687 #define local_inc(l) atomic_long_inc(&(l)->a)
6688 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
6689 #define local_dec(l) atomic_long_dec(&(l)->a)
6690 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
6691
6692 /*
6693 * Same as above, but return the result value
6694 @@ -71,6 +81,51 @@ static __inline__ long local_add_return(long i, local_t * l)
6695 return result;
6696 }
6697
6698 +static __inline__ long local_add_return_unchecked(long i, local_unchecked_t * l)
6699 +{
6700 + unsigned long result;
6701 +
6702 + if (kernel_uses_llsc && R10000_LLSC_WAR) {
6703 + unsigned long temp;
6704 +
6705 + __asm__ __volatile__(
6706 + " .set mips3 \n"
6707 + "1:" __LL "%1, %2 # local_add_return \n"
6708 + " addu %0, %1, %3 \n"
6709 + __SC "%0, %2 \n"
6710 + " beqzl %0, 1b \n"
6711 + " addu %0, %1, %3 \n"
6712 + " .set mips0 \n"
6713 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6714 + : "Ir" (i), "m" (l->a.counter)
6715 + : "memory");
6716 + } else if (kernel_uses_llsc) {
6717 + unsigned long temp;
6718 +
6719 + __asm__ __volatile__(
6720 + " .set mips3 \n"
6721 + "1:" __LL "%1, %2 # local_add_return \n"
6722 + " addu %0, %1, %3 \n"
6723 + __SC "%0, %2 \n"
6724 + " beqz %0, 1b \n"
6725 + " addu %0, %1, %3 \n"
6726 + " .set mips0 \n"
6727 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6728 + : "Ir" (i), "m" (l->a.counter)
6729 + : "memory");
6730 + } else {
6731 + unsigned long flags;
6732 +
6733 + local_irq_save(flags);
6734 + result = l->a.counter;
6735 + result += i;
6736 + l->a.counter = result;
6737 + local_irq_restore(flags);
6738 + }
6739 +
6740 + return result;
6741 +}
6742 +
6743 static __inline__ long local_sub_return(long i, local_t * l)
6744 {
6745 unsigned long result;
6746 @@ -118,6 +173,8 @@ static __inline__ long local_sub_return(long i, local_t * l)
6747
6748 #define local_cmpxchg(l, o, n) \
6749 ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6750 +#define local_cmpxchg_unchecked(l, o, n) \
6751 + ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6752 #define local_xchg(l, n) (atomic_long_xchg((&(l)->a), (n)))
6753
6754 /**
6755 diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
6756 index 89dd7fe..a123c97 100644
6757 --- a/arch/mips/include/asm/page.h
6758 +++ b/arch/mips/include/asm/page.h
6759 @@ -118,7 +118,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
6760 #ifdef CONFIG_CPU_MIPS32
6761 typedef struct { unsigned long pte_low, pte_high; } pte_t;
6762 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
6763 - #define __pte(x) ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; })
6764 + #define __pte(x) ({ pte_t __pte = {(x), (x) >> 32}; __pte; })
6765 #else
6766 typedef struct { unsigned long long pte; } pte_t;
6767 #define pte_val(x) ((x).pte)
6768 diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
6769 index b336037..5b874cc 100644
6770 --- a/arch/mips/include/asm/pgalloc.h
6771 +++ b/arch/mips/include/asm/pgalloc.h
6772 @@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6773 {
6774 set_pud(pud, __pud((unsigned long)pmd));
6775 }
6776 +
6777 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6778 +{
6779 + pud_populate(mm, pud, pmd);
6780 +}
6781 #endif
6782
6783 /*
6784 diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
6785 index ae85694..4cdbba8 100644
6786 --- a/arch/mips/include/asm/pgtable.h
6787 +++ b/arch/mips/include/asm/pgtable.h
6788 @@ -20,6 +20,9 @@
6789 #include <asm/io.h>
6790 #include <asm/pgtable-bits.h>
6791
6792 +#define ktla_ktva(addr) (addr)
6793 +#define ktva_ktla(addr) (addr)
6794 +
6795 struct mm_struct;
6796 struct vm_area_struct;
6797
6798 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
6799 index 9c0014e..5101ef5 100644
6800 --- a/arch/mips/include/asm/thread_info.h
6801 +++ b/arch/mips/include/asm/thread_info.h
6802 @@ -100,6 +100,9 @@ static inline struct thread_info *current_thread_info(void)
6803 #define TIF_SECCOMP 4 /* secure computing */
6804 #define TIF_NOTIFY_RESUME 5 /* callback before returning to user */
6805 #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal() */
6806 +/* li takes a 32bit immediate */
6807 +#define TIF_GRSEC_SETXID 10 /* update credentials on syscall entry/exit */
6808 +
6809 #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
6810 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
6811 #define TIF_NOHZ 19 /* in adaptive nohz mode */
6812 @@ -135,14 +138,16 @@ static inline struct thread_info *current_thread_info(void)
6813 #define _TIF_USEDMSA (1<<TIF_USEDMSA)
6814 #define _TIF_MSA_CTX_LIVE (1<<TIF_MSA_CTX_LIVE)
6815 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
6816 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
6817
6818 #define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6819 _TIF_SYSCALL_AUDIT | \
6820 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
6821 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
6822 + _TIF_GRSEC_SETXID)
6823
6824 /* work to do in syscall_trace_leave() */
6825 #define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6826 - _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
6827 + _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6828
6829 /* work to do on interrupt/exception return */
6830 #define _TIF_WORK_MASK \
6831 @@ -150,7 +155,7 @@ static inline struct thread_info *current_thread_info(void)
6832 /* work to do on any return to u-space */
6833 #define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | \
6834 _TIF_WORK_SYSCALL_EXIT | \
6835 - _TIF_SYSCALL_TRACEPOINT)
6836 + _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6837
6838 /*
6839 * We stash processor id into a COP0 register to retrieve it fast
6840 diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
6841 index 5305d69..1da2bf5 100644
6842 --- a/arch/mips/include/asm/uaccess.h
6843 +++ b/arch/mips/include/asm/uaccess.h
6844 @@ -146,6 +146,7 @@ static inline bool eva_kernel_access(void)
6845 __ok == 0; \
6846 })
6847
6848 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
6849 #define access_ok(type, addr, size) \
6850 likely(__access_ok((addr), (size), __access_mask))
6851
6852 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
6853 index 1188e00..41cf144 100644
6854 --- a/arch/mips/kernel/binfmt_elfn32.c
6855 +++ b/arch/mips/kernel/binfmt_elfn32.c
6856 @@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6857 #undef ELF_ET_DYN_BASE
6858 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6859
6860 +#ifdef CONFIG_PAX_ASLR
6861 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6862 +
6863 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6864 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6865 +#endif
6866 +
6867 #include <asm/processor.h>
6868 #include <linux/module.h>
6869 #include <linux/elfcore.h>
6870 diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c
6871 index 9287678..f870e47 100644
6872 --- a/arch/mips/kernel/binfmt_elfo32.c
6873 +++ b/arch/mips/kernel/binfmt_elfo32.c
6874 @@ -70,6 +70,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6875 #undef ELF_ET_DYN_BASE
6876 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6877
6878 +#ifdef CONFIG_PAX_ASLR
6879 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6880 +
6881 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6882 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6883 +#endif
6884 +
6885 #include <asm/processor.h>
6886
6887 #include <linux/module.h>
6888 diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
6889 index 74f6752..f3d7a47 100644
6890 --- a/arch/mips/kernel/i8259.c
6891 +++ b/arch/mips/kernel/i8259.c
6892 @@ -205,7 +205,7 @@ spurious_8259A_irq:
6893 printk(KERN_DEBUG "spurious 8259A interrupt: IRQ%d.\n", irq);
6894 spurious_irq_mask |= irqmask;
6895 }
6896 - atomic_inc(&irq_err_count);
6897 + atomic_inc_unchecked(&irq_err_count);
6898 /*
6899 * Theoretically we do not have to handle this IRQ,
6900 * but in Linux this does not cause problems and is
6901 diff --git a/arch/mips/kernel/irq-gt641xx.c b/arch/mips/kernel/irq-gt641xx.c
6902 index 44a1f79..2bd6aa3 100644
6903 --- a/arch/mips/kernel/irq-gt641xx.c
6904 +++ b/arch/mips/kernel/irq-gt641xx.c
6905 @@ -110,7 +110,7 @@ void gt641xx_irq_dispatch(void)
6906 }
6907 }
6908
6909 - atomic_inc(&irq_err_count);
6910 + atomic_inc_unchecked(&irq_err_count);
6911 }
6912
6913 void __init gt641xx_irq_init(void)
6914 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
6915 index 8eb5af8..2baf465 100644
6916 --- a/arch/mips/kernel/irq.c
6917 +++ b/arch/mips/kernel/irq.c
6918 @@ -34,17 +34,17 @@ void ack_bad_irq(unsigned int irq)
6919 printk("unexpected IRQ # %d\n", irq);
6920 }
6921
6922 -atomic_t irq_err_count;
6923 +atomic_unchecked_t irq_err_count;
6924
6925 int arch_show_interrupts(struct seq_file *p, int prec)
6926 {
6927 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
6928 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
6929 return 0;
6930 }
6931
6932 asmlinkage void spurious_interrupt(void)
6933 {
6934 - atomic_inc(&irq_err_count);
6935 + atomic_inc_unchecked(&irq_err_count);
6936 }
6937
6938 void __init init_IRQ(void)
6939 @@ -58,6 +58,8 @@ void __init init_IRQ(void)
6940 }
6941
6942 #ifdef CONFIG_DEBUG_STACKOVERFLOW
6943 +
6944 +extern void gr_handle_kernel_exploit(void);
6945 static inline void check_stack_overflow(void)
6946 {
6947 unsigned long sp;
6948 @@ -73,6 +75,7 @@ static inline void check_stack_overflow(void)
6949 printk("do_IRQ: stack overflow: %ld\n",
6950 sp - sizeof(struct thread_info));
6951 dump_stack();
6952 + gr_handle_kernel_exploit();
6953 }
6954 }
6955 #else
6956 diff --git a/arch/mips/kernel/pm-cps.c b/arch/mips/kernel/pm-cps.c
6957 index 0614717..002fa43 100644
6958 --- a/arch/mips/kernel/pm-cps.c
6959 +++ b/arch/mips/kernel/pm-cps.c
6960 @@ -172,7 +172,7 @@ int cps_pm_enter_state(enum cps_pm_state state)
6961 nc_core_ready_count = nc_addr;
6962
6963 /* Ensure ready_count is zero-initialised before the assembly runs */
6964 - ACCESS_ONCE(*nc_core_ready_count) = 0;
6965 + ACCESS_ONCE_RW(*nc_core_ready_count) = 0;
6966 coupled_barrier(&per_cpu(pm_barrier, core), online);
6967
6968 /* Run the generated entry code */
6969 diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
6970 index f2975d4..f61d355 100644
6971 --- a/arch/mips/kernel/process.c
6972 +++ b/arch/mips/kernel/process.c
6973 @@ -541,18 +541,6 @@ out:
6974 return pc;
6975 }
6976
6977 -/*
6978 - * Don't forget that the stack pointer must be aligned on a 8 bytes
6979 - * boundary for 32-bits ABI and 16 bytes for 64-bits ABI.
6980 - */
6981 -unsigned long arch_align_stack(unsigned long sp)
6982 -{
6983 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
6984 - sp -= get_random_int() & ~PAGE_MASK;
6985 -
6986 - return sp & ALMASK;
6987 -}
6988 -
6989 static void arch_dump_stack(void *info)
6990 {
6991 struct pt_regs *regs;
6992 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
6993 index e933a30..0d02625 100644
6994 --- a/arch/mips/kernel/ptrace.c
6995 +++ b/arch/mips/kernel/ptrace.c
6996 @@ -785,6 +785,10 @@ long arch_ptrace(struct task_struct *child, long request,
6997 return ret;
6998 }
6999
7000 +#ifdef CONFIG_GRKERNSEC_SETXID
7001 +extern void gr_delayed_cred_worker(void);
7002 +#endif
7003 +
7004 /*
7005 * Notification of system call entry/exit
7006 * - triggered by current->work.syscall_trace
7007 @@ -803,6 +807,11 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
7008 tracehook_report_syscall_entry(regs))
7009 ret = -1;
7010
7011 +#ifdef CONFIG_GRKERNSEC_SETXID
7012 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
7013 + gr_delayed_cred_worker();
7014 +#endif
7015 +
7016 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
7017 trace_sys_enter(regs, regs->regs[2]);
7018
7019 diff --git a/arch/mips/kernel/sync-r4k.c b/arch/mips/kernel/sync-r4k.c
7020 index 2242bdd..b284048 100644
7021 --- a/arch/mips/kernel/sync-r4k.c
7022 +++ b/arch/mips/kernel/sync-r4k.c
7023 @@ -18,8 +18,8 @@
7024 #include <asm/mipsregs.h>
7025
7026 static atomic_t count_start_flag = ATOMIC_INIT(0);
7027 -static atomic_t count_count_start = ATOMIC_INIT(0);
7028 -static atomic_t count_count_stop = ATOMIC_INIT(0);
7029 +static atomic_unchecked_t count_count_start = ATOMIC_INIT(0);
7030 +static atomic_unchecked_t count_count_stop = ATOMIC_INIT(0);
7031 static atomic_t count_reference = ATOMIC_INIT(0);
7032
7033 #define COUNTON 100
7034 @@ -58,13 +58,13 @@ void synchronise_count_master(int cpu)
7035
7036 for (i = 0; i < NR_LOOPS; i++) {
7037 /* slaves loop on '!= 2' */
7038 - while (atomic_read(&count_count_start) != 1)
7039 + while (atomic_read_unchecked(&count_count_start) != 1)
7040 mb();
7041 - atomic_set(&count_count_stop, 0);
7042 + atomic_set_unchecked(&count_count_stop, 0);
7043 smp_wmb();
7044
7045 /* this lets the slaves write their count register */
7046 - atomic_inc(&count_count_start);
7047 + atomic_inc_unchecked(&count_count_start);
7048
7049 /*
7050 * Everyone initialises count in the last loop:
7051 @@ -75,11 +75,11 @@ void synchronise_count_master(int cpu)
7052 /*
7053 * Wait for all slaves to leave the synchronization point:
7054 */
7055 - while (atomic_read(&count_count_stop) != 1)
7056 + while (atomic_read_unchecked(&count_count_stop) != 1)
7057 mb();
7058 - atomic_set(&count_count_start, 0);
7059 + atomic_set_unchecked(&count_count_start, 0);
7060 smp_wmb();
7061 - atomic_inc(&count_count_stop);
7062 + atomic_inc_unchecked(&count_count_stop);
7063 }
7064 /* Arrange for an interrupt in a short while */
7065 write_c0_compare(read_c0_count() + COUNTON);
7066 @@ -112,8 +112,8 @@ void synchronise_count_slave(int cpu)
7067 initcount = atomic_read(&count_reference);
7068
7069 for (i = 0; i < NR_LOOPS; i++) {
7070 - atomic_inc(&count_count_start);
7071 - while (atomic_read(&count_count_start) != 2)
7072 + atomic_inc_unchecked(&count_count_start);
7073 + while (atomic_read_unchecked(&count_count_start) != 2)
7074 mb();
7075
7076 /*
7077 @@ -122,8 +122,8 @@ void synchronise_count_slave(int cpu)
7078 if (i == NR_LOOPS-1)
7079 write_c0_count(initcount);
7080
7081 - atomic_inc(&count_count_stop);
7082 - while (atomic_read(&count_count_stop) != 2)
7083 + atomic_inc_unchecked(&count_count_stop);
7084 + while (atomic_read_unchecked(&count_count_stop) != 2)
7085 mb();
7086 }
7087 /* Arrange for an interrupt in a short while */
7088 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
7089 index 8ea28e6..c8873d5 100644
7090 --- a/arch/mips/kernel/traps.c
7091 +++ b/arch/mips/kernel/traps.c
7092 @@ -697,7 +697,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
7093 siginfo_t info;
7094
7095 prev_state = exception_enter();
7096 - die_if_kernel("Integer overflow", regs);
7097 + if (unlikely(!user_mode(regs))) {
7098 +
7099 +#ifdef CONFIG_PAX_REFCOUNT
7100 + if (fixup_exception(regs)) {
7101 + pax_report_refcount_overflow(regs);
7102 + exception_exit(prev_state);
7103 + return;
7104 + }
7105 +#endif
7106 +
7107 + die("Integer overflow", regs);
7108 + }
7109
7110 info.si_code = FPE_INTOVF;
7111 info.si_signo = SIGFPE;
7112 diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
7113 index 852a41c..75b9d38 100644
7114 --- a/arch/mips/mm/fault.c
7115 +++ b/arch/mips/mm/fault.c
7116 @@ -31,6 +31,23 @@
7117
7118 int show_unhandled_signals = 1;
7119
7120 +#ifdef CONFIG_PAX_PAGEEXEC
7121 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
7122 +{
7123 + unsigned long i;
7124 +
7125 + printk(KERN_ERR "PAX: bytes at PC: ");
7126 + for (i = 0; i < 5; i++) {
7127 + unsigned int c;
7128 + if (get_user(c, (unsigned int *)pc+i))
7129 + printk(KERN_CONT "???????? ");
7130 + else
7131 + printk(KERN_CONT "%08x ", c);
7132 + }
7133 + printk("\n");
7134 +}
7135 +#endif
7136 +
7137 /*
7138 * This routine handles page faults. It determines the address,
7139 * and the problem, and then passes it off to one of the appropriate
7140 @@ -207,6 +224,14 @@ bad_area:
7141 bad_area_nosemaphore:
7142 /* User mode accesses just cause a SIGSEGV */
7143 if (user_mode(regs)) {
7144 +
7145 +#ifdef CONFIG_PAX_PAGEEXEC
7146 + if (cpu_has_rixi && (mm->pax_flags & MF_PAX_PAGEEXEC) && !write && address == instruction_pointer(regs)) {
7147 + pax_report_fault(regs, (void *)address, (void *)user_stack_pointer(regs));
7148 + do_group_exit(SIGKILL);
7149 + }
7150 +#endif
7151 +
7152 tsk->thread.cp0_badvaddr = address;
7153 tsk->thread.error_code = write;
7154 if (show_unhandled_signals &&
7155 diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
7156 index 5c81fdd..db158d3 100644
7157 --- a/arch/mips/mm/mmap.c
7158 +++ b/arch/mips/mm/mmap.c
7159 @@ -59,6 +59,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
7160 struct vm_area_struct *vma;
7161 unsigned long addr = addr0;
7162 int do_color_align;
7163 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
7164 struct vm_unmapped_area_info info;
7165
7166 if (unlikely(len > TASK_SIZE))
7167 @@ -84,6 +85,11 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
7168 do_color_align = 1;
7169
7170 /* requesting a specific address */
7171 +
7172 +#ifdef CONFIG_PAX_RANDMMAP
7173 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
7174 +#endif
7175 +
7176 if (addr) {
7177 if (do_color_align)
7178 addr = COLOUR_ALIGN(addr, pgoff);
7179 @@ -91,14 +97,14 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
7180 addr = PAGE_ALIGN(addr);
7181
7182 vma = find_vma(mm, addr);
7183 - if (TASK_SIZE - len >= addr &&
7184 - (!vma || addr + len <= vma->vm_start))
7185 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
7186 return addr;
7187 }
7188
7189 info.length = len;
7190 info.align_mask = do_color_align ? (PAGE_MASK & shm_align_mask) : 0;
7191 info.align_offset = pgoff << PAGE_SHIFT;
7192 + info.threadstack_offset = offset;
7193
7194 if (dir == DOWN) {
7195 info.flags = VM_UNMAPPED_AREA_TOPDOWN;
7196 @@ -160,45 +166,34 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
7197 {
7198 unsigned long random_factor = 0UL;
7199
7200 +#ifdef CONFIG_PAX_RANDMMAP
7201 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7202 +#endif
7203 +
7204 if (current->flags & PF_RANDOMIZE)
7205 random_factor = arch_mmap_rnd();
7206
7207 if (mmap_is_legacy()) {
7208 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
7209 +
7210 +#ifdef CONFIG_PAX_RANDMMAP
7211 + if (mm->pax_flags & MF_PAX_RANDMMAP)
7212 + mm->mmap_base += mm->delta_mmap;
7213 +#endif
7214 +
7215 mm->get_unmapped_area = arch_get_unmapped_area;
7216 } else {
7217 mm->mmap_base = mmap_base(random_factor);
7218 +
7219 +#ifdef CONFIG_PAX_RANDMMAP
7220 + if (mm->pax_flags & MF_PAX_RANDMMAP)
7221 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7222 +#endif
7223 +
7224 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
7225 }
7226 }
7227
7228 -static inline unsigned long brk_rnd(void)
7229 -{
7230 - unsigned long rnd = get_random_int();
7231 -
7232 - rnd = rnd << PAGE_SHIFT;
7233 - /* 8MB for 32bit, 256MB for 64bit */
7234 - if (TASK_IS_32BIT_ADDR)
7235 - rnd = rnd & 0x7ffffful;
7236 - else
7237 - rnd = rnd & 0xffffffful;
7238 -
7239 - return rnd;
7240 -}
7241 -
7242 -unsigned long arch_randomize_brk(struct mm_struct *mm)
7243 -{
7244 - unsigned long base = mm->brk;
7245 - unsigned long ret;
7246 -
7247 - ret = PAGE_ALIGN(base + brk_rnd());
7248 -
7249 - if (ret < mm->brk)
7250 - return mm->brk;
7251 -
7252 - return ret;
7253 -}
7254 -
7255 int __virt_addr_valid(const volatile void *kaddr)
7256 {
7257 return pfn_valid(PFN_DOWN(virt_to_phys(kaddr)));
7258 diff --git a/arch/mips/net/bpf_jit_asm.S b/arch/mips/net/bpf_jit_asm.S
7259 index dabf417..0be1d6d 100644
7260 --- a/arch/mips/net/bpf_jit_asm.S
7261 +++ b/arch/mips/net/bpf_jit_asm.S
7262 @@ -62,7 +62,9 @@ sk_load_word_positive:
7263 is_offset_in_header(4, word)
7264 /* Offset within header boundaries */
7265 PTR_ADDU t1, $r_skb_data, offset
7266 + .set reorder
7267 lw $r_A, 0(t1)
7268 + .set noreorder
7269 #ifdef CONFIG_CPU_LITTLE_ENDIAN
7270 # if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
7271 wsbh t0, $r_A
7272 @@ -90,7 +92,9 @@ sk_load_half_positive:
7273 is_offset_in_header(2, half)
7274 /* Offset within header boundaries */
7275 PTR_ADDU t1, $r_skb_data, offset
7276 + .set reorder
7277 lh $r_A, 0(t1)
7278 + .set noreorder
7279 #ifdef CONFIG_CPU_LITTLE_ENDIAN
7280 # if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
7281 wsbh t0, $r_A
7282 diff --git a/arch/mips/sgi-ip27/ip27-nmi.c b/arch/mips/sgi-ip27/ip27-nmi.c
7283 index a2358b4..7cead4f 100644
7284 --- a/arch/mips/sgi-ip27/ip27-nmi.c
7285 +++ b/arch/mips/sgi-ip27/ip27-nmi.c
7286 @@ -187,9 +187,9 @@ void
7287 cont_nmi_dump(void)
7288 {
7289 #ifndef REAL_NMI_SIGNAL
7290 - static atomic_t nmied_cpus = ATOMIC_INIT(0);
7291 + static atomic_unchecked_t nmied_cpus = ATOMIC_INIT(0);
7292
7293 - atomic_inc(&nmied_cpus);
7294 + atomic_inc_unchecked(&nmied_cpus);
7295 #endif
7296 /*
7297 * Only allow 1 cpu to proceed
7298 @@ -233,7 +233,7 @@ cont_nmi_dump(void)
7299 udelay(10000);
7300 }
7301 #else
7302 - while (atomic_read(&nmied_cpus) != num_online_cpus());
7303 + while (atomic_read_unchecked(&nmied_cpus) != num_online_cpus());
7304 #endif
7305
7306 /*
7307 diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c
7308 index a046b30..6799527 100644
7309 --- a/arch/mips/sni/rm200.c
7310 +++ b/arch/mips/sni/rm200.c
7311 @@ -270,7 +270,7 @@ spurious_8259A_irq:
7312 "spurious RM200 8259A interrupt: IRQ%d.\n", irq);
7313 spurious_irq_mask |= irqmask;
7314 }
7315 - atomic_inc(&irq_err_count);
7316 + atomic_inc_unchecked(&irq_err_count);
7317 /*
7318 * Theoretically we do not have to handle this IRQ,
7319 * but in Linux this does not cause problems and is
7320 diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c
7321 index 41e873b..34d33a7 100644
7322 --- a/arch/mips/vr41xx/common/icu.c
7323 +++ b/arch/mips/vr41xx/common/icu.c
7324 @@ -653,7 +653,7 @@ static int icu_get_irq(unsigned int irq)
7325
7326 printk(KERN_ERR "spurious ICU interrupt: %04x,%04x\n", pend1, pend2);
7327
7328 - atomic_inc(&irq_err_count);
7329 + atomic_inc_unchecked(&irq_err_count);
7330
7331 return -1;
7332 }
7333 diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
7334 index ae0e4ee..e8f0692 100644
7335 --- a/arch/mips/vr41xx/common/irq.c
7336 +++ b/arch/mips/vr41xx/common/irq.c
7337 @@ -64,7 +64,7 @@ static void irq_dispatch(unsigned int irq)
7338 irq_cascade_t *cascade;
7339
7340 if (irq >= NR_IRQS) {
7341 - atomic_inc(&irq_err_count);
7342 + atomic_inc_unchecked(&irq_err_count);
7343 return;
7344 }
7345
7346 @@ -84,7 +84,7 @@ static void irq_dispatch(unsigned int irq)
7347 ret = cascade->get_irq(irq);
7348 irq = ret;
7349 if (ret < 0)
7350 - atomic_inc(&irq_err_count);
7351 + atomic_inc_unchecked(&irq_err_count);
7352 else
7353 irq_dispatch(irq);
7354 if (!irqd_irq_disabled(idata) && chip->irq_unmask)
7355 diff --git a/arch/mn10300/proc-mn103e010/include/proc/cache.h b/arch/mn10300/proc-mn103e010/include/proc/cache.h
7356 index 967d144..db12197 100644
7357 --- a/arch/mn10300/proc-mn103e010/include/proc/cache.h
7358 +++ b/arch/mn10300/proc-mn103e010/include/proc/cache.h
7359 @@ -11,12 +11,14 @@
7360 #ifndef _ASM_PROC_CACHE_H
7361 #define _ASM_PROC_CACHE_H
7362
7363 +#include <linux/const.h>
7364 +
7365 /* L1 cache */
7366
7367 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
7368 #define L1_CACHE_NENTRIES 256 /* number of entries in each way */
7369 -#define L1_CACHE_BYTES 16 /* bytes per entry */
7370 #define L1_CACHE_SHIFT 4 /* shift for bytes per entry */
7371 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
7372 #define L1_CACHE_WAYDISP 0x1000 /* displacement of one way from the next */
7373
7374 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
7375 diff --git a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7376 index bcb5df2..84fabd2 100644
7377 --- a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7378 +++ b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7379 @@ -16,13 +16,15 @@
7380 #ifndef _ASM_PROC_CACHE_H
7381 #define _ASM_PROC_CACHE_H
7382
7383 +#include <linux/const.h>
7384 +
7385 /*
7386 * L1 cache
7387 */
7388 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
7389 #define L1_CACHE_NENTRIES 128 /* number of entries in each way */
7390 -#define L1_CACHE_BYTES 32 /* bytes per entry */
7391 #define L1_CACHE_SHIFT 5 /* shift for bytes per entry */
7392 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
7393 #define L1_CACHE_WAYDISP 0x1000 /* distance from one way to the next */
7394
7395 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
7396 diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
7397 index 4ce7a01..449202a 100644
7398 --- a/arch/openrisc/include/asm/cache.h
7399 +++ b/arch/openrisc/include/asm/cache.h
7400 @@ -19,11 +19,13 @@
7401 #ifndef __ASM_OPENRISC_CACHE_H
7402 #define __ASM_OPENRISC_CACHE_H
7403
7404 +#include <linux/const.h>
7405 +
7406 /* FIXME: How can we replace these with values from the CPU...
7407 * they shouldn't be hard-coded!
7408 */
7409
7410 -#define L1_CACHE_BYTES 16
7411 #define L1_CACHE_SHIFT 4
7412 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7413
7414 #endif /* __ASM_OPENRISC_CACHE_H */
7415 diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
7416 index 226f8ca9..9d9b87d 100644
7417 --- a/arch/parisc/include/asm/atomic.h
7418 +++ b/arch/parisc/include/asm/atomic.h
7419 @@ -273,6 +273,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
7420 return dec;
7421 }
7422
7423 +#define atomic64_read_unchecked(v) atomic64_read(v)
7424 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
7425 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
7426 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
7427 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
7428 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
7429 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
7430 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
7431 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
7432 +
7433 #endif /* !CONFIG_64BIT */
7434
7435
7436 diff --git a/arch/parisc/include/asm/cache.h b/arch/parisc/include/asm/cache.h
7437 index 47f11c7..3420df2 100644
7438 --- a/arch/parisc/include/asm/cache.h
7439 +++ b/arch/parisc/include/asm/cache.h
7440 @@ -5,6 +5,7 @@
7441 #ifndef __ARCH_PARISC_CACHE_H
7442 #define __ARCH_PARISC_CACHE_H
7443
7444 +#include <linux/const.h>
7445
7446 /*
7447 * PA 2.0 processors have 64-byte cachelines; PA 1.1 processors have
7448 @@ -15,13 +16,13 @@
7449 * just ruin performance.
7450 */
7451 #ifdef CONFIG_PA20
7452 -#define L1_CACHE_BYTES 64
7453 #define L1_CACHE_SHIFT 6
7454 #else
7455 -#define L1_CACHE_BYTES 32
7456 #define L1_CACHE_SHIFT 5
7457 #endif
7458
7459 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7460 +
7461 #ifndef __ASSEMBLY__
7462
7463 #define SMP_CACHE_BYTES L1_CACHE_BYTES
7464 diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
7465 index 78c9fd3..42fa66a 100644
7466 --- a/arch/parisc/include/asm/elf.h
7467 +++ b/arch/parisc/include/asm/elf.h
7468 @@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration... */
7469
7470 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
7471
7472 +#ifdef CONFIG_PAX_ASLR
7473 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
7474 +
7475 +#define PAX_DELTA_MMAP_LEN 16
7476 +#define PAX_DELTA_STACK_LEN 16
7477 +#endif
7478 +
7479 /* This yields a mask that user programs can use to figure out what
7480 instruction set this CPU supports. This could be done in user space,
7481 but it's not easy, and we've already done it here. */
7482 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
7483 index 3edbb9f..08fef28 100644
7484 --- a/arch/parisc/include/asm/pgalloc.h
7485 +++ b/arch/parisc/include/asm/pgalloc.h
7486 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7487 (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT));
7488 }
7489
7490 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7491 +{
7492 + pgd_populate(mm, pgd, pmd);
7493 +}
7494 +
7495 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
7496 {
7497 pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT,
7498 @@ -97,6 +102,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
7499 #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
7500 #define pmd_free(mm, x) do { } while (0)
7501 #define pgd_populate(mm, pmd, pte) BUG()
7502 +#define pgd_populate_kernel(mm, pmd, pte) BUG()
7503
7504 #endif
7505
7506 diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
7507 index f93c4a4..cfd5663 100644
7508 --- a/arch/parisc/include/asm/pgtable.h
7509 +++ b/arch/parisc/include/asm/pgtable.h
7510 @@ -231,6 +231,17 @@ static inline void purge_tlb_entries(struct mm_struct *mm, unsigned long addr)
7511 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
7512 #define PAGE_COPY PAGE_EXECREAD
7513 #define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED)
7514 +
7515 +#ifdef CONFIG_PAX_PAGEEXEC
7516 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_ACCESSED)
7517 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7518 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7519 +#else
7520 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
7521 +# define PAGE_COPY_NOEXEC PAGE_COPY
7522 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
7523 +#endif
7524 +
7525 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
7526 #define PAGE_KERNEL_EXEC __pgprot(_PAGE_KERNEL_EXEC)
7527 #define PAGE_KERNEL_RWX __pgprot(_PAGE_KERNEL_RWX)
7528 diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
7529 index 0abdd4c..1af92f0 100644
7530 --- a/arch/parisc/include/asm/uaccess.h
7531 +++ b/arch/parisc/include/asm/uaccess.h
7532 @@ -243,10 +243,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
7533 const void __user *from,
7534 unsigned long n)
7535 {
7536 - int sz = __compiletime_object_size(to);
7537 + size_t sz = __compiletime_object_size(to);
7538 int ret = -EFAULT;
7539
7540 - if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
7541 + if (likely(sz == (size_t)-1 || !__builtin_constant_p(n) || sz >= n))
7542 ret = __copy_from_user(to, from, n);
7543 else
7544 copy_from_user_overflow();
7545 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
7546 index 3c63a82..b1d6ee9 100644
7547 --- a/arch/parisc/kernel/module.c
7548 +++ b/arch/parisc/kernel/module.c
7549 @@ -98,16 +98,38 @@
7550
7551 /* three functions to determine where in the module core
7552 * or init pieces the location is */
7553 +static inline int in_init_rx(struct module *me, void *loc)
7554 +{
7555 + return (loc >= me->module_init_rx &&
7556 + loc < (me->module_init_rx + me->init_size_rx));
7557 +}
7558 +
7559 +static inline int in_init_rw(struct module *me, void *loc)
7560 +{
7561 + return (loc >= me->module_init_rw &&
7562 + loc < (me->module_init_rw + me->init_size_rw));
7563 +}
7564 +
7565 static inline int in_init(struct module *me, void *loc)
7566 {
7567 - return (loc >= me->module_init &&
7568 - loc <= (me->module_init + me->init_size));
7569 + return in_init_rx(me, loc) || in_init_rw(me, loc);
7570 +}
7571 +
7572 +static inline int in_core_rx(struct module *me, void *loc)
7573 +{
7574 + return (loc >= me->module_core_rx &&
7575 + loc < (me->module_core_rx + me->core_size_rx));
7576 +}
7577 +
7578 +static inline int in_core_rw(struct module *me, void *loc)
7579 +{
7580 + return (loc >= me->module_core_rw &&
7581 + loc < (me->module_core_rw + me->core_size_rw));
7582 }
7583
7584 static inline int in_core(struct module *me, void *loc)
7585 {
7586 - return (loc >= me->module_core &&
7587 - loc <= (me->module_core + me->core_size));
7588 + return in_core_rx(me, loc) || in_core_rw(me, loc);
7589 }
7590
7591 static inline int in_local(struct module *me, void *loc)
7592 @@ -367,13 +389,13 @@ int module_frob_arch_sections(CONST Elf_Ehdr *hdr,
7593 }
7594
7595 /* align things a bit */
7596 - me->core_size = ALIGN(me->core_size, 16);
7597 - me->arch.got_offset = me->core_size;
7598 - me->core_size += gots * sizeof(struct got_entry);
7599 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7600 + me->arch.got_offset = me->core_size_rw;
7601 + me->core_size_rw += gots * sizeof(struct got_entry);
7602
7603 - me->core_size = ALIGN(me->core_size, 16);
7604 - me->arch.fdesc_offset = me->core_size;
7605 - me->core_size += fdescs * sizeof(Elf_Fdesc);
7606 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7607 + me->arch.fdesc_offset = me->core_size_rw;
7608 + me->core_size_rw += fdescs * sizeof(Elf_Fdesc);
7609
7610 me->arch.got_max = gots;
7611 me->arch.fdesc_max = fdescs;
7612 @@ -391,7 +413,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7613
7614 BUG_ON(value == 0);
7615
7616 - got = me->module_core + me->arch.got_offset;
7617 + got = me->module_core_rw + me->arch.got_offset;
7618 for (i = 0; got[i].addr; i++)
7619 if (got[i].addr == value)
7620 goto out;
7621 @@ -409,7 +431,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7622 #ifdef CONFIG_64BIT
7623 static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7624 {
7625 - Elf_Fdesc *fdesc = me->module_core + me->arch.fdesc_offset;
7626 + Elf_Fdesc *fdesc = me->module_core_rw + me->arch.fdesc_offset;
7627
7628 if (!value) {
7629 printk(KERN_ERR "%s: zero OPD requested!\n", me->name);
7630 @@ -427,7 +449,7 @@ static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7631
7632 /* Create new one */
7633 fdesc->addr = value;
7634 - fdesc->gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7635 + fdesc->gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7636 return (Elf_Addr)fdesc;
7637 }
7638 #endif /* CONFIG_64BIT */
7639 @@ -839,7 +861,7 @@ register_unwind_table(struct module *me,
7640
7641 table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr;
7642 end = table + sechdrs[me->arch.unwind_section].sh_size;
7643 - gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7644 + gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7645
7646 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
7647 me->arch.unwind_section, table, end, gp);
7648 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
7649 index 5aba01a..47cdd5a 100644
7650 --- a/arch/parisc/kernel/sys_parisc.c
7651 +++ b/arch/parisc/kernel/sys_parisc.c
7652 @@ -92,6 +92,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7653 unsigned long task_size = TASK_SIZE;
7654 int do_color_align, last_mmap;
7655 struct vm_unmapped_area_info info;
7656 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7657
7658 if (len > task_size)
7659 return -ENOMEM;
7660 @@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7661 goto found_addr;
7662 }
7663
7664 +#ifdef CONFIG_PAX_RANDMMAP
7665 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7666 +#endif
7667 +
7668 if (addr) {
7669 if (do_color_align && last_mmap)
7670 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7671 @@ -127,6 +132,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7672 info.high_limit = mmap_upper_limit();
7673 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7674 info.align_offset = shared_align_offset(last_mmap, pgoff);
7675 + info.threadstack_offset = offset;
7676 addr = vm_unmapped_area(&info);
7677
7678 found_addr:
7679 @@ -146,6 +152,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7680 unsigned long addr = addr0;
7681 int do_color_align, last_mmap;
7682 struct vm_unmapped_area_info info;
7683 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7684
7685 #ifdef CONFIG_64BIT
7686 /* This should only ever run for 32-bit processes. */
7687 @@ -170,6 +177,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7688 }
7689
7690 /* requesting a specific address */
7691 +#ifdef CONFIG_PAX_RANDMMAP
7692 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7693 +#endif
7694 +
7695 if (addr) {
7696 if (do_color_align && last_mmap)
7697 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7698 @@ -187,6 +198,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7699 info.high_limit = mm->mmap_base;
7700 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7701 info.align_offset = shared_align_offset(last_mmap, pgoff);
7702 + info.threadstack_offset = offset;
7703 addr = vm_unmapped_area(&info);
7704 if (!(addr & ~PAGE_MASK))
7705 goto found_addr;
7706 @@ -252,6 +264,13 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
7707 mm->mmap_legacy_base = mmap_legacy_base();
7708 mm->mmap_base = mmap_upper_limit();
7709
7710 +#ifdef CONFIG_PAX_RANDMMAP
7711 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
7712 + mm->mmap_legacy_base += mm->delta_mmap;
7713 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7714 + }
7715 +#endif
7716 +
7717 if (mmap_is_legacy()) {
7718 mm->mmap_base = mm->mmap_legacy_base;
7719 mm->get_unmapped_area = arch_get_unmapped_area;
7720 diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
7721 index b99b39f..e3915ae 100644
7722 --- a/arch/parisc/kernel/traps.c
7723 +++ b/arch/parisc/kernel/traps.c
7724 @@ -722,9 +722,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
7725
7726 down_read(&current->mm->mmap_sem);
7727 vma = find_vma(current->mm,regs->iaoq[0]);
7728 - if (vma && (regs->iaoq[0] >= vma->vm_start)
7729 - && (vma->vm_flags & VM_EXEC)) {
7730 -
7731 + if (vma && (regs->iaoq[0] >= vma->vm_start)) {
7732 fault_address = regs->iaoq[0];
7733 fault_space = regs->iasq[0];
7734
7735 diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
7736 index 15503ad..4b1b8b6 100644
7737 --- a/arch/parisc/mm/fault.c
7738 +++ b/arch/parisc/mm/fault.c
7739 @@ -16,6 +16,7 @@
7740 #include <linux/interrupt.h>
7741 #include <linux/module.h>
7742 #include <linux/uaccess.h>
7743 +#include <linux/unistd.h>
7744
7745 #include <asm/traps.h>
7746
7747 @@ -50,7 +51,7 @@ int show_unhandled_signals = 1;
7748 static unsigned long
7749 parisc_acctyp(unsigned long code, unsigned int inst)
7750 {
7751 - if (code == 6 || code == 16)
7752 + if (code == 6 || code == 7 || code == 16)
7753 return VM_EXEC;
7754
7755 switch (inst & 0xf0000000) {
7756 @@ -136,6 +137,116 @@ parisc_acctyp(unsigned long code, unsigned int inst)
7757 }
7758 #endif
7759
7760 +#ifdef CONFIG_PAX_PAGEEXEC
7761 +/*
7762 + * PaX: decide what to do with offenders (instruction_pointer(regs) = fault address)
7763 + *
7764 + * returns 1 when task should be killed
7765 + * 2 when rt_sigreturn trampoline was detected
7766 + * 3 when unpatched PLT trampoline was detected
7767 + */
7768 +static int pax_handle_fetch_fault(struct pt_regs *regs)
7769 +{
7770 +
7771 +#ifdef CONFIG_PAX_EMUPLT
7772 + int err;
7773 +
7774 + do { /* PaX: unpatched PLT emulation */
7775 + unsigned int bl, depwi;
7776 +
7777 + err = get_user(bl, (unsigned int *)instruction_pointer(regs));
7778 + err |= get_user(depwi, (unsigned int *)(instruction_pointer(regs)+4));
7779 +
7780 + if (err)
7781 + break;
7782 +
7783 + if (bl == 0xEA9F1FDDU && depwi == 0xD6801C1EU) {
7784 + unsigned int ldw, bv, ldw2, addr = instruction_pointer(regs)-12;
7785 +
7786 + err = get_user(ldw, (unsigned int *)addr);
7787 + err |= get_user(bv, (unsigned int *)(addr+4));
7788 + err |= get_user(ldw2, (unsigned int *)(addr+8));
7789 +
7790 + if (err)
7791 + break;
7792 +
7793 + if (ldw == 0x0E801096U &&
7794 + bv == 0xEAC0C000U &&
7795 + ldw2 == 0x0E881095U)
7796 + {
7797 + unsigned int resolver, map;
7798 +
7799 + err = get_user(resolver, (unsigned int *)(instruction_pointer(regs)+8));
7800 + err |= get_user(map, (unsigned int *)(instruction_pointer(regs)+12));
7801 + if (err)
7802 + break;
7803 +
7804 + regs->gr[20] = instruction_pointer(regs)+8;
7805 + regs->gr[21] = map;
7806 + regs->gr[22] = resolver;
7807 + regs->iaoq[0] = resolver | 3UL;
7808 + regs->iaoq[1] = regs->iaoq[0] + 4;
7809 + return 3;
7810 + }
7811 + }
7812 + } while (0);
7813 +#endif
7814 +
7815 +#ifdef CONFIG_PAX_EMUTRAMP
7816 +
7817 +#ifndef CONFIG_PAX_EMUSIGRT
7818 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
7819 + return 1;
7820 +#endif
7821 +
7822 + do { /* PaX: rt_sigreturn emulation */
7823 + unsigned int ldi1, ldi2, bel, nop;
7824 +
7825 + err = get_user(ldi1, (unsigned int *)instruction_pointer(regs));
7826 + err |= get_user(ldi2, (unsigned int *)(instruction_pointer(regs)+4));
7827 + err |= get_user(bel, (unsigned int *)(instruction_pointer(regs)+8));
7828 + err |= get_user(nop, (unsigned int *)(instruction_pointer(regs)+12));
7829 +
7830 + if (err)
7831 + break;
7832 +
7833 + if ((ldi1 == 0x34190000U || ldi1 == 0x34190002U) &&
7834 + ldi2 == 0x3414015AU &&
7835 + bel == 0xE4008200U &&
7836 + nop == 0x08000240U)
7837 + {
7838 + regs->gr[25] = (ldi1 & 2) >> 1;
7839 + regs->gr[20] = __NR_rt_sigreturn;
7840 + regs->gr[31] = regs->iaoq[1] + 16;
7841 + regs->sr[0] = regs->iasq[1];
7842 + regs->iaoq[0] = 0x100UL;
7843 + regs->iaoq[1] = regs->iaoq[0] + 4;
7844 + regs->iasq[0] = regs->sr[2];
7845 + regs->iasq[1] = regs->sr[2];
7846 + return 2;
7847 + }
7848 + } while (0);
7849 +#endif
7850 +
7851 + return 1;
7852 +}
7853 +
7854 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
7855 +{
7856 + unsigned long i;
7857 +
7858 + printk(KERN_ERR "PAX: bytes at PC: ");
7859 + for (i = 0; i < 5; i++) {
7860 + unsigned int c;
7861 + if (get_user(c, (unsigned int *)pc+i))
7862 + printk(KERN_CONT "???????? ");
7863 + else
7864 + printk(KERN_CONT "%08x ", c);
7865 + }
7866 + printk("\n");
7867 +}
7868 +#endif
7869 +
7870 int fixup_exception(struct pt_regs *regs)
7871 {
7872 const struct exception_table_entry *fix;
7873 @@ -234,8 +345,33 @@ retry:
7874
7875 good_area:
7876
7877 - if ((vma->vm_flags & acc_type) != acc_type)
7878 + if ((vma->vm_flags & acc_type) != acc_type) {
7879 +
7880 +#ifdef CONFIG_PAX_PAGEEXEC
7881 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && (acc_type & VM_EXEC) &&
7882 + (address & ~3UL) == instruction_pointer(regs))
7883 + {
7884 + up_read(&mm->mmap_sem);
7885 + switch (pax_handle_fetch_fault(regs)) {
7886 +
7887 +#ifdef CONFIG_PAX_EMUPLT
7888 + case 3:
7889 + return;
7890 +#endif
7891 +
7892 +#ifdef CONFIG_PAX_EMUTRAMP
7893 + case 2:
7894 + return;
7895 +#endif
7896 +
7897 + }
7898 + pax_report_fault(regs, (void *)instruction_pointer(regs), (void *)regs->gr[30]);
7899 + do_group_exit(SIGKILL);
7900 + }
7901 +#endif
7902 +
7903 goto bad_area;
7904 + }
7905
7906 /*
7907 * If for any reason at all we couldn't handle the fault, make
7908 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
7909 index 5ef2711..21be2c3 100644
7910 --- a/arch/powerpc/Kconfig
7911 +++ b/arch/powerpc/Kconfig
7912 @@ -415,6 +415,7 @@ config PPC64_SUPPORTS_MEMORY_FAILURE
7913 config KEXEC
7914 bool "kexec system call"
7915 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
7916 + depends on !GRKERNSEC_KMEM
7917 help
7918 kexec is a system call that implements the ability to shutdown your
7919 current kernel, and to start another kernel. It is like a reboot
7920 diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h
7921 index 512d278..d31fadd 100644
7922 --- a/arch/powerpc/include/asm/atomic.h
7923 +++ b/arch/powerpc/include/asm/atomic.h
7924 @@ -12,6 +12,11 @@
7925
7926 #define ATOMIC_INIT(i) { (i) }
7927
7928 +#define _ASM_EXTABLE(from, to) \
7929 +" .section __ex_table,\"a\"\n" \
7930 + PPC_LONG" " #from ", " #to"\n" \
7931 +" .previous\n"
7932 +
7933 static __inline__ int atomic_read(const atomic_t *v)
7934 {
7935 int t;
7936 @@ -21,39 +26,80 @@ static __inline__ int atomic_read(const atomic_t *v)
7937 return t;
7938 }
7939
7940 +static __inline__ int atomic_read_unchecked(const atomic_unchecked_t *v)
7941 +{
7942 + int t;
7943 +
7944 + __asm__ __volatile__("lwz%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
7945 +
7946 + return t;
7947 +}
7948 +
7949 static __inline__ void atomic_set(atomic_t *v, int i)
7950 {
7951 __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7952 }
7953
7954 -#define ATOMIC_OP(op, asm_op) \
7955 -static __inline__ void atomic_##op(int a, atomic_t *v) \
7956 +static __inline__ void atomic_set_unchecked(atomic_unchecked_t *v, int i)
7957 +{
7958 + __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7959 +}
7960 +
7961 +#ifdef CONFIG_PAX_REFCOUNT
7962 +#define __REFCOUNT_OP(op) op##o.
7963 +#define __OVERFLOW_PRE \
7964 + " mcrxr cr0\n"
7965 +#define __OVERFLOW_POST \
7966 + " bf 4*cr0+so, 3f\n" \
7967 + "2: .long 0x00c00b00\n" \
7968 + "3:\n"
7969 +#define __OVERFLOW_EXTABLE \
7970 + "\n4:\n"
7971 + _ASM_EXTABLE(2b, 4b)
7972 +#else
7973 +#define __REFCOUNT_OP(op) op
7974 +#define __OVERFLOW_PRE
7975 +#define __OVERFLOW_POST
7976 +#define __OVERFLOW_EXTABLE
7977 +#endif
7978 +
7979 +#define __ATOMIC_OP(op, suffix, pre_op, asm_op, post_op, extable) \
7980 +static inline void atomic_##op##suffix(int a, atomic##suffix##_t *v) \
7981 { \
7982 int t; \
7983 \
7984 __asm__ __volatile__( \
7985 -"1: lwarx %0,0,%3 # atomic_" #op "\n" \
7986 +"1: lwarx %0,0,%3 # atomic_" #op #suffix "\n" \
7987 + pre_op \
7988 #asm_op " %0,%2,%0\n" \
7989 + post_op \
7990 PPC405_ERR77(0,%3) \
7991 " stwcx. %0,0,%3 \n" \
7992 " bne- 1b\n" \
7993 + extable \
7994 : "=&r" (t), "+m" (v->counter) \
7995 : "r" (a), "r" (&v->counter) \
7996 : "cc"); \
7997 } \
7998
7999 -#define ATOMIC_OP_RETURN(op, asm_op) \
8000 -static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
8001 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, , , asm_op, , ) \
8002 + __ATOMIC_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8003 +
8004 +#define __ATOMIC_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
8005 +static inline int atomic_##op##_return##suffix(int a, atomic##suffix##_t *v)\
8006 { \
8007 int t; \
8008 \
8009 __asm__ __volatile__( \
8010 PPC_ATOMIC_ENTRY_BARRIER \
8011 -"1: lwarx %0,0,%2 # atomic_" #op "_return\n" \
8012 +"1: lwarx %0,0,%2 # atomic_" #op "_return" #suffix "\n" \
8013 + pre_op \
8014 #asm_op " %0,%1,%0\n" \
8015 + post_op \
8016 PPC405_ERR77(0,%2) \
8017 " stwcx. %0,0,%2 \n" \
8018 " bne- 1b\n" \
8019 + extable \
8020 PPC_ATOMIC_EXIT_BARRIER \
8021 : "=&r" (t) \
8022 : "r" (a), "r" (&v->counter) \
8023 @@ -62,6 +108,9 @@ static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
8024 return t; \
8025 }
8026
8027 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, , , asm_op, , )\
8028 + __ATOMIC_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8029 +
8030 #define ATOMIC_OPS(op, asm_op) ATOMIC_OP(op, asm_op) ATOMIC_OP_RETURN(op, asm_op)
8031
8032 ATOMIC_OPS(add, add)
8033 @@ -69,42 +118,29 @@ ATOMIC_OPS(sub, subf)
8034
8035 #undef ATOMIC_OPS
8036 #undef ATOMIC_OP_RETURN
8037 +#undef __ATOMIC_OP_RETURN
8038 #undef ATOMIC_OP
8039 +#undef __ATOMIC_OP
8040
8041 #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
8042
8043 -static __inline__ void atomic_inc(atomic_t *v)
8044 -{
8045 - int t;
8046 +/*
8047 + * atomic_inc - increment atomic variable
8048 + * @v: pointer of type atomic_t
8049 + *
8050 + * Automatically increments @v by 1
8051 + */
8052 +#define atomic_inc(v) atomic_add(1, (v))
8053 +#define atomic_inc_return(v) atomic_add_return(1, (v))
8054
8055 - __asm__ __volatile__(
8056 -"1: lwarx %0,0,%2 # atomic_inc\n\
8057 - addic %0,%0,1\n"
8058 - PPC405_ERR77(0,%2)
8059 -" stwcx. %0,0,%2 \n\
8060 - bne- 1b"
8061 - : "=&r" (t), "+m" (v->counter)
8062 - : "r" (&v->counter)
8063 - : "cc", "xer");
8064 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
8065 +{
8066 + atomic_add_unchecked(1, v);
8067 }
8068
8069 -static __inline__ int atomic_inc_return(atomic_t *v)
8070 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
8071 {
8072 - int t;
8073 -
8074 - __asm__ __volatile__(
8075 - PPC_ATOMIC_ENTRY_BARRIER
8076 -"1: lwarx %0,0,%1 # atomic_inc_return\n\
8077 - addic %0,%0,1\n"
8078 - PPC405_ERR77(0,%1)
8079 -" stwcx. %0,0,%1 \n\
8080 - bne- 1b"
8081 - PPC_ATOMIC_EXIT_BARRIER
8082 - : "=&r" (t)
8083 - : "r" (&v->counter)
8084 - : "cc", "xer", "memory");
8085 -
8086 - return t;
8087 + return atomic_add_return_unchecked(1, v);
8088 }
8089
8090 /*
8091 @@ -117,43 +153,38 @@ static __inline__ int atomic_inc_return(atomic_t *v)
8092 */
8093 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
8094
8095 -static __inline__ void atomic_dec(atomic_t *v)
8096 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
8097 {
8098 - int t;
8099 -
8100 - __asm__ __volatile__(
8101 -"1: lwarx %0,0,%2 # atomic_dec\n\
8102 - addic %0,%0,-1\n"
8103 - PPC405_ERR77(0,%2)\
8104 -" stwcx. %0,0,%2\n\
8105 - bne- 1b"
8106 - : "=&r" (t), "+m" (v->counter)
8107 - : "r" (&v->counter)
8108 - : "cc", "xer");
8109 + return atomic_add_return_unchecked(1, v) == 0;
8110 }
8111
8112 -static __inline__ int atomic_dec_return(atomic_t *v)
8113 +/*
8114 + * atomic_dec - decrement atomic variable
8115 + * @v: pointer of type atomic_t
8116 + *
8117 + * Atomically decrements @v by 1
8118 + */
8119 +#define atomic_dec(v) atomic_sub(1, (v))
8120 +#define atomic_dec_return(v) atomic_sub_return(1, (v))
8121 +
8122 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
8123 {
8124 - int t;
8125 -
8126 - __asm__ __volatile__(
8127 - PPC_ATOMIC_ENTRY_BARRIER
8128 -"1: lwarx %0,0,%1 # atomic_dec_return\n\
8129 - addic %0,%0,-1\n"
8130 - PPC405_ERR77(0,%1)
8131 -" stwcx. %0,0,%1\n\
8132 - bne- 1b"
8133 - PPC_ATOMIC_EXIT_BARRIER
8134 - : "=&r" (t)
8135 - : "r" (&v->counter)
8136 - : "cc", "xer", "memory");
8137 -
8138 - return t;
8139 + atomic_sub_unchecked(1, v);
8140 }
8141
8142 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
8143 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
8144
8145 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
8146 +{
8147 + return cmpxchg(&(v->counter), old, new);
8148 +}
8149 +
8150 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
8151 +{
8152 + return xchg(&(v->counter), new);
8153 +}
8154 +
8155 /**
8156 * __atomic_add_unless - add unless the number is a given value
8157 * @v: pointer of type atomic_t
8158 @@ -171,11 +202,27 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
8159 PPC_ATOMIC_ENTRY_BARRIER
8160 "1: lwarx %0,0,%1 # __atomic_add_unless\n\
8161 cmpw 0,%0,%3 \n\
8162 - beq- 2f \n\
8163 - add %0,%2,%0 \n"
8164 + beq- 2f \n"
8165 +
8166 +#ifdef CONFIG_PAX_REFCOUNT
8167 +" mcrxr cr0\n"
8168 +" addo. %0,%2,%0\n"
8169 +" bf 4*cr0+so, 4f\n"
8170 +"3:.long " "0x00c00b00""\n"
8171 +"4:\n"
8172 +#else
8173 + "add %0,%2,%0 \n"
8174 +#endif
8175 +
8176 PPC405_ERR77(0,%2)
8177 " stwcx. %0,0,%1 \n\
8178 bne- 1b \n"
8179 +"5:"
8180 +
8181 +#ifdef CONFIG_PAX_REFCOUNT
8182 + _ASM_EXTABLE(3b, 5b)
8183 +#endif
8184 +
8185 PPC_ATOMIC_EXIT_BARRIER
8186 " subf %0,%2,%0 \n\
8187 2:"
8188 @@ -248,6 +295,11 @@ static __inline__ int atomic_dec_if_positive(atomic_t *v)
8189 }
8190 #define atomic_dec_if_positive atomic_dec_if_positive
8191
8192 +#define smp_mb__before_atomic_dec() smp_mb()
8193 +#define smp_mb__after_atomic_dec() smp_mb()
8194 +#define smp_mb__before_atomic_inc() smp_mb()
8195 +#define smp_mb__after_atomic_inc() smp_mb()
8196 +
8197 #ifdef __powerpc64__
8198
8199 #define ATOMIC64_INIT(i) { (i) }
8200 @@ -261,37 +313,60 @@ static __inline__ long atomic64_read(const atomic64_t *v)
8201 return t;
8202 }
8203
8204 +static __inline__ long atomic64_read_unchecked(const atomic64_unchecked_t *v)
8205 +{
8206 + long t;
8207 +
8208 + __asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
8209 +
8210 + return t;
8211 +}
8212 +
8213 static __inline__ void atomic64_set(atomic64_t *v, long i)
8214 {
8215 __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
8216 }
8217
8218 -#define ATOMIC64_OP(op, asm_op) \
8219 -static __inline__ void atomic64_##op(long a, atomic64_t *v) \
8220 +static __inline__ void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
8221 +{
8222 + __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
8223 +}
8224 +
8225 +#define __ATOMIC64_OP(op, suffix, pre_op, asm_op, post_op, extable) \
8226 +static inline void atomic64_##op##suffix(long a, atomic64##suffix##_t *v)\
8227 { \
8228 long t; \
8229 \
8230 __asm__ __volatile__( \
8231 "1: ldarx %0,0,%3 # atomic64_" #op "\n" \
8232 + pre_op \
8233 #asm_op " %0,%2,%0\n" \
8234 + post_op \
8235 " stdcx. %0,0,%3 \n" \
8236 " bne- 1b\n" \
8237 + extable \
8238 : "=&r" (t), "+m" (v->counter) \
8239 : "r" (a), "r" (&v->counter) \
8240 : "cc"); \
8241 }
8242
8243 -#define ATOMIC64_OP_RETURN(op, asm_op) \
8244 -static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
8245 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, , , asm_op, , ) \
8246 + __ATOMIC64_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8247 +
8248 +#define __ATOMIC64_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
8249 +static inline long atomic64_##op##_return##suffix(long a, atomic64##suffix##_t *v)\
8250 { \
8251 long t; \
8252 \
8253 __asm__ __volatile__( \
8254 PPC_ATOMIC_ENTRY_BARRIER \
8255 "1: ldarx %0,0,%2 # atomic64_" #op "_return\n" \
8256 + pre_op \
8257 #asm_op " %0,%1,%0\n" \
8258 + post_op \
8259 " stdcx. %0,0,%2 \n" \
8260 " bne- 1b\n" \
8261 + extable \
8262 PPC_ATOMIC_EXIT_BARRIER \
8263 : "=&r" (t) \
8264 : "r" (a), "r" (&v->counter) \
8265 @@ -300,6 +375,9 @@ static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
8266 return t; \
8267 }
8268
8269 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, , , asm_op, , )\
8270 + __ATOMIC64_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8271 +
8272 #define ATOMIC64_OPS(op, asm_op) ATOMIC64_OP(op, asm_op) ATOMIC64_OP_RETURN(op, asm_op)
8273
8274 ATOMIC64_OPS(add, add)
8275 @@ -307,40 +385,33 @@ ATOMIC64_OPS(sub, subf)
8276
8277 #undef ATOMIC64_OPS
8278 #undef ATOMIC64_OP_RETURN
8279 +#undef __ATOMIC64_OP_RETURN
8280 #undef ATOMIC64_OP
8281 +#undef __ATOMIC64_OP
8282 +#undef __OVERFLOW_EXTABLE
8283 +#undef __OVERFLOW_POST
8284 +#undef __OVERFLOW_PRE
8285 +#undef __REFCOUNT_OP
8286
8287 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
8288
8289 -static __inline__ void atomic64_inc(atomic64_t *v)
8290 -{
8291 - long t;
8292 +/*
8293 + * atomic64_inc - increment atomic variable
8294 + * @v: pointer of type atomic64_t
8295 + *
8296 + * Automatically increments @v by 1
8297 + */
8298 +#define atomic64_inc(v) atomic64_add(1, (v))
8299 +#define atomic64_inc_return(v) atomic64_add_return(1, (v))
8300
8301 - __asm__ __volatile__(
8302 -"1: ldarx %0,0,%2 # atomic64_inc\n\
8303 - addic %0,%0,1\n\
8304 - stdcx. %0,0,%2 \n\
8305 - bne- 1b"
8306 - : "=&r" (t), "+m" (v->counter)
8307 - : "r" (&v->counter)
8308 - : "cc", "xer");
8309 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
8310 +{
8311 + atomic64_add_unchecked(1, v);
8312 }
8313
8314 -static __inline__ long atomic64_inc_return(atomic64_t *v)
8315 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
8316 {
8317 - long t;
8318 -
8319 - __asm__ __volatile__(
8320 - PPC_ATOMIC_ENTRY_BARRIER
8321 -"1: ldarx %0,0,%1 # atomic64_inc_return\n\
8322 - addic %0,%0,1\n\
8323 - stdcx. %0,0,%1 \n\
8324 - bne- 1b"
8325 - PPC_ATOMIC_EXIT_BARRIER
8326 - : "=&r" (t)
8327 - : "r" (&v->counter)
8328 - : "cc", "xer", "memory");
8329 -
8330 - return t;
8331 + return atomic64_add_return_unchecked(1, v);
8332 }
8333
8334 /*
8335 @@ -353,36 +424,18 @@ static __inline__ long atomic64_inc_return(atomic64_t *v)
8336 */
8337 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
8338
8339 -static __inline__ void atomic64_dec(atomic64_t *v)
8340 +/*
8341 + * atomic64_dec - decrement atomic variable
8342 + * @v: pointer of type atomic64_t
8343 + *
8344 + * Atomically decrements @v by 1
8345 + */
8346 +#define atomic64_dec(v) atomic64_sub(1, (v))
8347 +#define atomic64_dec_return(v) atomic64_sub_return(1, (v))
8348 +
8349 +static __inline__ void atomic64_dec_unchecked(atomic64_unchecked_t *v)
8350 {
8351 - long t;
8352 -
8353 - __asm__ __volatile__(
8354 -"1: ldarx %0,0,%2 # atomic64_dec\n\
8355 - addic %0,%0,-1\n\
8356 - stdcx. %0,0,%2\n\
8357 - bne- 1b"
8358 - : "=&r" (t), "+m" (v->counter)
8359 - : "r" (&v->counter)
8360 - : "cc", "xer");
8361 -}
8362 -
8363 -static __inline__ long atomic64_dec_return(atomic64_t *v)
8364 -{
8365 - long t;
8366 -
8367 - __asm__ __volatile__(
8368 - PPC_ATOMIC_ENTRY_BARRIER
8369 -"1: ldarx %0,0,%1 # atomic64_dec_return\n\
8370 - addic %0,%0,-1\n\
8371 - stdcx. %0,0,%1\n\
8372 - bne- 1b"
8373 - PPC_ATOMIC_EXIT_BARRIER
8374 - : "=&r" (t)
8375 - : "r" (&v->counter)
8376 - : "cc", "xer", "memory");
8377 -
8378 - return t;
8379 + atomic64_sub_unchecked(1, v);
8380 }
8381
8382 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
8383 @@ -415,6 +468,16 @@ static __inline__ long atomic64_dec_if_positive(atomic64_t *v)
8384 #define atomic64_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
8385 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
8386
8387 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
8388 +{
8389 + return cmpxchg(&(v->counter), old, new);
8390 +}
8391 +
8392 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
8393 +{
8394 + return xchg(&(v->counter), new);
8395 +}
8396 +
8397 /**
8398 * atomic64_add_unless - add unless the number is a given value
8399 * @v: pointer of type atomic64_t
8400 @@ -430,13 +493,29 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
8401
8402 __asm__ __volatile__ (
8403 PPC_ATOMIC_ENTRY_BARRIER
8404 -"1: ldarx %0,0,%1 # __atomic_add_unless\n\
8405 +"1: ldarx %0,0,%1 # atomic64_add_unless\n\
8406 cmpd 0,%0,%3 \n\
8407 - beq- 2f \n\
8408 - add %0,%2,%0 \n"
8409 + beq- 2f \n"
8410 +
8411 +#ifdef CONFIG_PAX_REFCOUNT
8412 +" mcrxr cr0\n"
8413 +" addo. %0,%2,%0\n"
8414 +" bf 4*cr0+so, 4f\n"
8415 +"3:.long " "0x00c00b00""\n"
8416 +"4:\n"
8417 +#else
8418 + "add %0,%2,%0 \n"
8419 +#endif
8420 +
8421 " stdcx. %0,0,%1 \n\
8422 bne- 1b \n"
8423 PPC_ATOMIC_EXIT_BARRIER
8424 +"5:"
8425 +
8426 +#ifdef CONFIG_PAX_REFCOUNT
8427 + _ASM_EXTABLE(3b, 5b)
8428 +#endif
8429 +
8430 " subf %0,%2,%0 \n\
8431 2:"
8432 : "=&r" (t)
8433 diff --git a/arch/powerpc/include/asm/barrier.h b/arch/powerpc/include/asm/barrier.h
8434 index 51ccc72..35de789 100644
8435 --- a/arch/powerpc/include/asm/barrier.h
8436 +++ b/arch/powerpc/include/asm/barrier.h
8437 @@ -76,7 +76,7 @@
8438 do { \
8439 compiletime_assert_atomic_type(*p); \
8440 smp_lwsync(); \
8441 - ACCESS_ONCE(*p) = (v); \
8442 + ACCESS_ONCE_RW(*p) = (v); \
8443 } while (0)
8444
8445 #define smp_load_acquire(p) \
8446 diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
8447 index 0dc42c5..b80a3a1 100644
8448 --- a/arch/powerpc/include/asm/cache.h
8449 +++ b/arch/powerpc/include/asm/cache.h
8450 @@ -4,6 +4,7 @@
8451 #ifdef __KERNEL__
8452
8453 #include <asm/reg.h>
8454 +#include <linux/const.h>
8455
8456 /* bytes per L1 cache line */
8457 #if defined(CONFIG_8xx) || defined(CONFIG_403GCX)
8458 @@ -23,7 +24,7 @@
8459 #define L1_CACHE_SHIFT 7
8460 #endif
8461
8462 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
8463 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
8464
8465 #define SMP_CACHE_BYTES L1_CACHE_BYTES
8466
8467 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
8468 index ee46ffe..b36c98c 100644
8469 --- a/arch/powerpc/include/asm/elf.h
8470 +++ b/arch/powerpc/include/asm/elf.h
8471 @@ -30,6 +30,18 @@
8472
8473 #define ELF_ET_DYN_BASE 0x20000000
8474
8475 +#ifdef CONFIG_PAX_ASLR
8476 +#define PAX_ELF_ET_DYN_BASE (0x10000000UL)
8477 +
8478 +#ifdef __powerpc64__
8479 +#define PAX_DELTA_MMAP_LEN (is_32bit_task() ? 16 : 28)
8480 +#define PAX_DELTA_STACK_LEN (is_32bit_task() ? 16 : 28)
8481 +#else
8482 +#define PAX_DELTA_MMAP_LEN 15
8483 +#define PAX_DELTA_STACK_LEN 15
8484 +#endif
8485 +#endif
8486 +
8487 #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
8488
8489 /*
8490 diff --git a/arch/powerpc/include/asm/exec.h b/arch/powerpc/include/asm/exec.h
8491 index 8196e9c..d83a9f3 100644
8492 --- a/arch/powerpc/include/asm/exec.h
8493 +++ b/arch/powerpc/include/asm/exec.h
8494 @@ -4,6 +4,6 @@
8495 #ifndef _ASM_POWERPC_EXEC_H
8496 #define _ASM_POWERPC_EXEC_H
8497
8498 -extern unsigned long arch_align_stack(unsigned long sp);
8499 +#define arch_align_stack(x) ((x) & ~0xfUL)
8500
8501 #endif /* _ASM_POWERPC_EXEC_H */
8502 diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h
8503 index 5acabbd..7ea14fa 100644
8504 --- a/arch/powerpc/include/asm/kmap_types.h
8505 +++ b/arch/powerpc/include/asm/kmap_types.h
8506 @@ -10,7 +10,7 @@
8507 * 2 of the License, or (at your option) any later version.
8508 */
8509
8510 -#define KM_TYPE_NR 16
8511 +#define KM_TYPE_NR 17
8512
8513 #endif /* __KERNEL__ */
8514 #endif /* _ASM_POWERPC_KMAP_TYPES_H */
8515 diff --git a/arch/powerpc/include/asm/local.h b/arch/powerpc/include/asm/local.h
8516 index b8da913..c02b593 100644
8517 --- a/arch/powerpc/include/asm/local.h
8518 +++ b/arch/powerpc/include/asm/local.h
8519 @@ -9,21 +9,65 @@ typedef struct
8520 atomic_long_t a;
8521 } local_t;
8522
8523 +typedef struct
8524 +{
8525 + atomic_long_unchecked_t a;
8526 +} local_unchecked_t;
8527 +
8528 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
8529
8530 #define local_read(l) atomic_long_read(&(l)->a)
8531 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
8532 #define local_set(l,i) atomic_long_set(&(l)->a, (i))
8533 +#define local_set_unchecked(l,i) atomic_long_set_unchecked(&(l)->a, (i))
8534
8535 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
8536 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
8537 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
8538 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
8539 #define local_inc(l) atomic_long_inc(&(l)->a)
8540 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
8541 #define local_dec(l) atomic_long_dec(&(l)->a)
8542 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
8543
8544 static __inline__ long local_add_return(long a, local_t *l)
8545 {
8546 long t;
8547
8548 __asm__ __volatile__(
8549 +"1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n"
8550 +
8551 +#ifdef CONFIG_PAX_REFCOUNT
8552 +" mcrxr cr0\n"
8553 +" addo. %0,%1,%0\n"
8554 +" bf 4*cr0+so, 3f\n"
8555 +"2:.long " "0x00c00b00""\n"
8556 +#else
8557 +" add %0,%1,%0\n"
8558 +#endif
8559 +
8560 +"3:\n"
8561 + PPC405_ERR77(0,%2)
8562 + PPC_STLCX "%0,0,%2 \n\
8563 + bne- 1b"
8564 +
8565 +#ifdef CONFIG_PAX_REFCOUNT
8566 +"\n4:\n"
8567 + _ASM_EXTABLE(2b, 4b)
8568 +#endif
8569 +
8570 + : "=&r" (t)
8571 + : "r" (a), "r" (&(l->a.counter))
8572 + : "cc", "memory");
8573 +
8574 + return t;
8575 +}
8576 +
8577 +static __inline__ long local_add_return_unchecked(long a, local_unchecked_t *l)
8578 +{
8579 + long t;
8580 +
8581 + __asm__ __volatile__(
8582 "1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n\
8583 add %0,%1,%0\n"
8584 PPC405_ERR77(0,%2)
8585 @@ -101,6 +145,8 @@ static __inline__ long local_dec_return(local_t *l)
8586
8587 #define local_cmpxchg(l, o, n) \
8588 (cmpxchg_local(&((l)->a.counter), (o), (n)))
8589 +#define local_cmpxchg_unchecked(l, o, n) \
8590 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
8591 #define local_xchg(l, n) (xchg_local(&((l)->a.counter), (n)))
8592
8593 /**
8594 diff --git a/arch/powerpc/include/asm/mman.h b/arch/powerpc/include/asm/mman.h
8595 index 8565c25..2865190 100644
8596 --- a/arch/powerpc/include/asm/mman.h
8597 +++ b/arch/powerpc/include/asm/mman.h
8598 @@ -24,7 +24,7 @@ static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot)
8599 }
8600 #define arch_calc_vm_prot_bits(prot) arch_calc_vm_prot_bits(prot)
8601
8602 -static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
8603 +static inline pgprot_t arch_vm_get_page_prot(vm_flags_t vm_flags)
8604 {
8605 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
8606 }
8607 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
8608 index 71294a6..9e40aca 100644
8609 --- a/arch/powerpc/include/asm/page.h
8610 +++ b/arch/powerpc/include/asm/page.h
8611 @@ -227,8 +227,9 @@ extern long long virt_phys_offset;
8612 * and needs to be executable. This means the whole heap ends
8613 * up being executable.
8614 */
8615 -#define VM_DATA_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8616 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8617 +#define VM_DATA_DEFAULT_FLAGS32 \
8618 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8619 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8620
8621 #define VM_DATA_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8622 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8623 @@ -256,6 +257,9 @@ extern long long virt_phys_offset;
8624 #define is_kernel_addr(x) ((x) >= PAGE_OFFSET)
8625 #endif
8626
8627 +#define ktla_ktva(addr) (addr)
8628 +#define ktva_ktla(addr) (addr)
8629 +
8630 #ifndef CONFIG_PPC_BOOK3S_64
8631 /*
8632 * Use the top bit of the higher-level page table entries to indicate whether
8633 diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
8634 index d908a46..3753f71 100644
8635 --- a/arch/powerpc/include/asm/page_64.h
8636 +++ b/arch/powerpc/include/asm/page_64.h
8637 @@ -172,15 +172,18 @@ do { \
8638 * stack by default, so in the absence of a PT_GNU_STACK program header
8639 * we turn execute permission off.
8640 */
8641 -#define VM_STACK_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8642 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8643 +#define VM_STACK_DEFAULT_FLAGS32 \
8644 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8645 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8646
8647 #define VM_STACK_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8648 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8649
8650 +#ifndef CONFIG_PAX_PAGEEXEC
8651 #define VM_STACK_DEFAULT_FLAGS \
8652 (is_32bit_task() ? \
8653 VM_STACK_DEFAULT_FLAGS32 : VM_STACK_DEFAULT_FLAGS64)
8654 +#endif
8655
8656 #include <asm-generic/getorder.h>
8657
8658 diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
8659 index 4b0be20..c15a27d 100644
8660 --- a/arch/powerpc/include/asm/pgalloc-64.h
8661 +++ b/arch/powerpc/include/asm/pgalloc-64.h
8662 @@ -54,6 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
8663 #ifndef CONFIG_PPC_64K_PAGES
8664
8665 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD)
8666 +#define pgd_populate_kernel(MM, PGD, PUD) pgd_populate((MM), (PGD), (PUD))
8667
8668 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
8669 {
8670 @@ -71,6 +72,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8671 pud_set(pud, (unsigned long)pmd);
8672 }
8673
8674 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8675 +{
8676 + pud_populate(mm, pud, pmd);
8677 +}
8678 +
8679 #define pmd_populate(mm, pmd, pte_page) \
8680 pmd_populate_kernel(mm, pmd, page_address(pte_page))
8681 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
8682 @@ -173,6 +179,7 @@ extern void __tlb_remove_table(void *_table);
8683 #endif
8684
8685 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
8686 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
8687
8688 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
8689 pte_t *pte)
8690 diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
8691 index 11a3863..108f194 100644
8692 --- a/arch/powerpc/include/asm/pgtable.h
8693 +++ b/arch/powerpc/include/asm/pgtable.h
8694 @@ -2,6 +2,7 @@
8695 #define _ASM_POWERPC_PGTABLE_H
8696 #ifdef __KERNEL__
8697
8698 +#include <linux/const.h>
8699 #ifndef __ASSEMBLY__
8700 #include <linux/mmdebug.h>
8701 #include <linux/mmzone.h>
8702 diff --git a/arch/powerpc/include/asm/pte-hash32.h b/arch/powerpc/include/asm/pte-hash32.h
8703 index 62cfb0c..50c6402 100644
8704 --- a/arch/powerpc/include/asm/pte-hash32.h
8705 +++ b/arch/powerpc/include/asm/pte-hash32.h
8706 @@ -20,6 +20,7 @@
8707 #define _PAGE_HASHPTE 0x002 /* hash_page has made an HPTE for this pte */
8708 #define _PAGE_USER 0x004 /* usermode access allowed */
8709 #define _PAGE_GUARDED 0x008 /* G: prohibit speculative access */
8710 +#define _PAGE_EXEC _PAGE_GUARDED
8711 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
8712 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
8713 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
8714 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
8715 index af56b5c..f86f3f6 100644
8716 --- a/arch/powerpc/include/asm/reg.h
8717 +++ b/arch/powerpc/include/asm/reg.h
8718 @@ -253,6 +253,7 @@
8719 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
8720 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
8721 #define DSISR_NOHPTE 0x40000000 /* no translation found */
8722 +#define DSISR_GUARDED 0x10000000 /* fetch from guarded storage */
8723 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
8724 #define DSISR_ISSTORE 0x02000000 /* access was a store */
8725 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
8726 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
8727 index 825663c..f9e9134 100644
8728 --- a/arch/powerpc/include/asm/smp.h
8729 +++ b/arch/powerpc/include/asm/smp.h
8730 @@ -51,7 +51,7 @@ struct smp_ops_t {
8731 int (*cpu_disable)(void);
8732 void (*cpu_die)(unsigned int nr);
8733 int (*cpu_bootable)(unsigned int nr);
8734 -};
8735 +} __no_const;
8736
8737 extern void smp_send_debugger_break(void);
8738 extern void start_secondary_resume(void);
8739 diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h
8740 index 4dbe072..b803275 100644
8741 --- a/arch/powerpc/include/asm/spinlock.h
8742 +++ b/arch/powerpc/include/asm/spinlock.h
8743 @@ -204,13 +204,29 @@ static inline long __arch_read_trylock(arch_rwlock_t *rw)
8744 __asm__ __volatile__(
8745 "1: " PPC_LWARX(%0,0,%1,1) "\n"
8746 __DO_SIGN_EXTEND
8747 -" addic. %0,%0,1\n\
8748 - ble- 2f\n"
8749 +
8750 +#ifdef CONFIG_PAX_REFCOUNT
8751 +" mcrxr cr0\n"
8752 +" addico. %0,%0,1\n"
8753 +" bf 4*cr0+so, 3f\n"
8754 +"2:.long " "0x00c00b00""\n"
8755 +#else
8756 +" addic. %0,%0,1\n"
8757 +#endif
8758 +
8759 +"3:\n"
8760 + "ble- 4f\n"
8761 PPC405_ERR77(0,%1)
8762 " stwcx. %0,0,%1\n\
8763 bne- 1b\n"
8764 PPC_ACQUIRE_BARRIER
8765 -"2:" : "=&r" (tmp)
8766 +"4:"
8767 +
8768 +#ifdef CONFIG_PAX_REFCOUNT
8769 + _ASM_EXTABLE(2b,4b)
8770 +#endif
8771 +
8772 + : "=&r" (tmp)
8773 : "r" (&rw->lock)
8774 : "cr0", "xer", "memory");
8775
8776 @@ -286,11 +302,27 @@ static inline void arch_read_unlock(arch_rwlock_t *rw)
8777 __asm__ __volatile__(
8778 "# read_unlock\n\t"
8779 PPC_RELEASE_BARRIER
8780 -"1: lwarx %0,0,%1\n\
8781 - addic %0,%0,-1\n"
8782 +"1: lwarx %0,0,%1\n"
8783 +
8784 +#ifdef CONFIG_PAX_REFCOUNT
8785 +" mcrxr cr0\n"
8786 +" addico. %0,%0,-1\n"
8787 +" bf 4*cr0+so, 3f\n"
8788 +"2:.long " "0x00c00b00""\n"
8789 +#else
8790 +" addic. %0,%0,-1\n"
8791 +#endif
8792 +
8793 +"3:\n"
8794 PPC405_ERR77(0,%1)
8795 " stwcx. %0,0,%1\n\
8796 bne- 1b"
8797 +
8798 +#ifdef CONFIG_PAX_REFCOUNT
8799 +"\n4:\n"
8800 + _ASM_EXTABLE(2b, 4b)
8801 +#endif
8802 +
8803 : "=&r"(tmp)
8804 : "r"(&rw->lock)
8805 : "cr0", "xer", "memory");
8806 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
8807 index 7efee4a..48d47cc 100644
8808 --- a/arch/powerpc/include/asm/thread_info.h
8809 +++ b/arch/powerpc/include/asm/thread_info.h
8810 @@ -101,6 +101,8 @@ static inline struct thread_info *current_thread_info(void)
8811 #if defined(CONFIG_PPC64)
8812 #define TIF_ELF2ABI 18 /* function descriptors must die! */
8813 #endif
8814 +/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
8815 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
8816
8817 /* as above, but as bit values */
8818 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
8819 @@ -119,9 +121,10 @@ static inline struct thread_info *current_thread_info(void)
8820 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
8821 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
8822 #define _TIF_NOHZ (1<<TIF_NOHZ)
8823 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
8824 #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
8825 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
8826 - _TIF_NOHZ)
8827 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
8828
8829 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
8830 _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
8831 diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
8832 index 2a8ebae..5643c6f 100644
8833 --- a/arch/powerpc/include/asm/uaccess.h
8834 +++ b/arch/powerpc/include/asm/uaccess.h
8835 @@ -58,6 +58,7 @@
8836
8837 #endif
8838
8839 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
8840 #define access_ok(type, addr, size) \
8841 (__chk_user_ptr(addr), \
8842 __access_ok((__force unsigned long)(addr), (size), get_fs()))
8843 @@ -318,52 +319,6 @@ do { \
8844 extern unsigned long __copy_tofrom_user(void __user *to,
8845 const void __user *from, unsigned long size);
8846
8847 -#ifndef __powerpc64__
8848 -
8849 -static inline unsigned long copy_from_user(void *to,
8850 - const void __user *from, unsigned long n)
8851 -{
8852 - unsigned long over;
8853 -
8854 - if (access_ok(VERIFY_READ, from, n))
8855 - return __copy_tofrom_user((__force void __user *)to, from, n);
8856 - if ((unsigned long)from < TASK_SIZE) {
8857 - over = (unsigned long)from + n - TASK_SIZE;
8858 - return __copy_tofrom_user((__force void __user *)to, from,
8859 - n - over) + over;
8860 - }
8861 - return n;
8862 -}
8863 -
8864 -static inline unsigned long copy_to_user(void __user *to,
8865 - const void *from, unsigned long n)
8866 -{
8867 - unsigned long over;
8868 -
8869 - if (access_ok(VERIFY_WRITE, to, n))
8870 - return __copy_tofrom_user(to, (__force void __user *)from, n);
8871 - if ((unsigned long)to < TASK_SIZE) {
8872 - over = (unsigned long)to + n - TASK_SIZE;
8873 - return __copy_tofrom_user(to, (__force void __user *)from,
8874 - n - over) + over;
8875 - }
8876 - return n;
8877 -}
8878 -
8879 -#else /* __powerpc64__ */
8880 -
8881 -#define __copy_in_user(to, from, size) \
8882 - __copy_tofrom_user((to), (from), (size))
8883 -
8884 -extern unsigned long copy_from_user(void *to, const void __user *from,
8885 - unsigned long n);
8886 -extern unsigned long copy_to_user(void __user *to, const void *from,
8887 - unsigned long n);
8888 -extern unsigned long copy_in_user(void __user *to, const void __user *from,
8889 - unsigned long n);
8890 -
8891 -#endif /* __powerpc64__ */
8892 -
8893 static inline unsigned long __copy_from_user_inatomic(void *to,
8894 const void __user *from, unsigned long n)
8895 {
8896 @@ -387,6 +342,10 @@ static inline unsigned long __copy_from_user_inatomic(void *to,
8897 if (ret == 0)
8898 return 0;
8899 }
8900 +
8901 + if (!__builtin_constant_p(n))
8902 + check_object_size(to, n, false);
8903 +
8904 return __copy_tofrom_user((__force void __user *)to, from, n);
8905 }
8906
8907 @@ -413,6 +372,10 @@ static inline unsigned long __copy_to_user_inatomic(void __user *to,
8908 if (ret == 0)
8909 return 0;
8910 }
8911 +
8912 + if (!__builtin_constant_p(n))
8913 + check_object_size(from, n, true);
8914 +
8915 return __copy_tofrom_user(to, (__force const void __user *)from, n);
8916 }
8917
8918 @@ -430,6 +393,92 @@ static inline unsigned long __copy_to_user(void __user *to,
8919 return __copy_to_user_inatomic(to, from, size);
8920 }
8921
8922 +#ifndef __powerpc64__
8923 +
8924 +static inline unsigned long __must_check copy_from_user(void *to,
8925 + const void __user *from, unsigned long n)
8926 +{
8927 + unsigned long over;
8928 +
8929 + if ((long)n < 0)
8930 + return n;
8931 +
8932 + if (access_ok(VERIFY_READ, from, n)) {
8933 + if (!__builtin_constant_p(n))
8934 + check_object_size(to, n, false);
8935 + return __copy_tofrom_user((__force void __user *)to, from, n);
8936 + }
8937 + if ((unsigned long)from < TASK_SIZE) {
8938 + over = (unsigned long)from + n - TASK_SIZE;
8939 + if (!__builtin_constant_p(n - over))
8940 + check_object_size(to, n - over, false);
8941 + return __copy_tofrom_user((__force void __user *)to, from,
8942 + n - over) + over;
8943 + }
8944 + return n;
8945 +}
8946 +
8947 +static inline unsigned long __must_check copy_to_user(void __user *to,
8948 + const void *from, unsigned long n)
8949 +{
8950 + unsigned long over;
8951 +
8952 + if ((long)n < 0)
8953 + return n;
8954 +
8955 + if (access_ok(VERIFY_WRITE, to, n)) {
8956 + if (!__builtin_constant_p(n))
8957 + check_object_size(from, n, true);
8958 + return __copy_tofrom_user(to, (__force void __user *)from, n);
8959 + }
8960 + if ((unsigned long)to < TASK_SIZE) {
8961 + over = (unsigned long)to + n - TASK_SIZE;
8962 + if (!__builtin_constant_p(n))
8963 + check_object_size(from, n - over, true);
8964 + return __copy_tofrom_user(to, (__force void __user *)from,
8965 + n - over) + over;
8966 + }
8967 + return n;
8968 +}
8969 +
8970 +#else /* __powerpc64__ */
8971 +
8972 +#define __copy_in_user(to, from, size) \
8973 + __copy_tofrom_user((to), (from), (size))
8974 +
8975 +static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
8976 +{
8977 + if ((long)n < 0 || n > INT_MAX)
8978 + return n;
8979 +
8980 + if (!__builtin_constant_p(n))
8981 + check_object_size(to, n, false);
8982 +
8983 + if (likely(access_ok(VERIFY_READ, from, n)))
8984 + n = __copy_from_user(to, from, n);
8985 + else
8986 + memset(to, 0, n);
8987 + return n;
8988 +}
8989 +
8990 +static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
8991 +{
8992 + if ((long)n < 0 || n > INT_MAX)
8993 + return n;
8994 +
8995 + if (likely(access_ok(VERIFY_WRITE, to, n))) {
8996 + if (!__builtin_constant_p(n))
8997 + check_object_size(from, n, true);
8998 + n = __copy_to_user(to, from, n);
8999 + }
9000 + return n;
9001 +}
9002 +
9003 +extern unsigned long copy_in_user(void __user *to, const void __user *from,
9004 + unsigned long n);
9005 +
9006 +#endif /* __powerpc64__ */
9007 +
9008 extern unsigned long __clear_user(void __user *addr, unsigned long size);
9009
9010 static inline unsigned long clear_user(void __user *addr, unsigned long size)
9011 diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
9012 index 12868b1..5155667 100644
9013 --- a/arch/powerpc/kernel/Makefile
9014 +++ b/arch/powerpc/kernel/Makefile
9015 @@ -14,6 +14,11 @@ CFLAGS_prom_init.o += -fPIC
9016 CFLAGS_btext.o += -fPIC
9017 endif
9018
9019 +CFLAGS_REMOVE_cputable.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9020 +CFLAGS_REMOVE_prom_init.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9021 +CFLAGS_REMOVE_btext.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9022 +CFLAGS_REMOVE_prom.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9023 +
9024 ifdef CONFIG_FUNCTION_TRACER
9025 # Do not trace early boot code
9026 CFLAGS_REMOVE_cputable.o = -pg -mno-sched-epilog
9027 @@ -26,6 +31,8 @@ CFLAGS_REMOVE_ftrace.o = -pg -mno-sched-epilog
9028 CFLAGS_REMOVE_time.o = -pg -mno-sched-epilog
9029 endif
9030
9031 +CFLAGS_REMOVE_prom_init.o += $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9032 +
9033 obj-y := cputable.o ptrace.o syscalls.o \
9034 irq.o align.o signal_32.o pmc.o vdso.o \
9035 process.o systbl.o idle.o \
9036 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
9037 index 3e68d1c..72a5ee6 100644
9038 --- a/arch/powerpc/kernel/exceptions-64e.S
9039 +++ b/arch/powerpc/kernel/exceptions-64e.S
9040 @@ -1010,6 +1010,7 @@ storage_fault_common:
9041 std r14,_DAR(r1)
9042 std r15,_DSISR(r1)
9043 addi r3,r1,STACK_FRAME_OVERHEAD
9044 + bl save_nvgprs
9045 mr r4,r14
9046 mr r5,r15
9047 ld r14,PACA_EXGEN+EX_R14(r13)
9048 @@ -1018,8 +1019,7 @@ storage_fault_common:
9049 cmpdi r3,0
9050 bne- 1f
9051 b ret_from_except_lite
9052 -1: bl save_nvgprs
9053 - mr r5,r3
9054 +1: mr r5,r3
9055 addi r3,r1,STACK_FRAME_OVERHEAD
9056 ld r4,_DAR(r1)
9057 bl bad_page_fault
9058 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
9059 index 0a0399c2..262a2e6 100644
9060 --- a/arch/powerpc/kernel/exceptions-64s.S
9061 +++ b/arch/powerpc/kernel/exceptions-64s.S
9062 @@ -1591,10 +1591,10 @@ handle_page_fault:
9063 11: ld r4,_DAR(r1)
9064 ld r5,_DSISR(r1)
9065 addi r3,r1,STACK_FRAME_OVERHEAD
9066 + bl save_nvgprs
9067 bl do_page_fault
9068 cmpdi r3,0
9069 beq+ 12f
9070 - bl save_nvgprs
9071 mr r5,r3
9072 addi r3,r1,STACK_FRAME_OVERHEAD
9073 lwz r4,_DAR(r1)
9074 diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
9075 index 4509603..cdb491f 100644
9076 --- a/arch/powerpc/kernel/irq.c
9077 +++ b/arch/powerpc/kernel/irq.c
9078 @@ -460,6 +460,8 @@ void migrate_irqs(void)
9079 }
9080 #endif
9081
9082 +extern void gr_handle_kernel_exploit(void);
9083 +
9084 static inline void check_stack_overflow(void)
9085 {
9086 #ifdef CONFIG_DEBUG_STACKOVERFLOW
9087 @@ -472,6 +474,7 @@ static inline void check_stack_overflow(void)
9088 pr_err("do_IRQ: stack overflow: %ld\n",
9089 sp - sizeof(struct thread_info));
9090 dump_stack();
9091 + gr_handle_kernel_exploit();
9092 }
9093 #endif
9094 }
9095 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
9096 index c94d2e0..992a9ce 100644
9097 --- a/arch/powerpc/kernel/module_32.c
9098 +++ b/arch/powerpc/kernel/module_32.c
9099 @@ -158,7 +158,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
9100 me->arch.core_plt_section = i;
9101 }
9102 if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
9103 - pr_err("Module doesn't contain .plt or .init.plt sections.\n");
9104 + pr_err("Module $s doesn't contain .plt or .init.plt sections.\n", me->name);
9105 return -ENOEXEC;
9106 }
9107
9108 @@ -188,11 +188,16 @@ static uint32_t do_plt_call(void *location,
9109
9110 pr_debug("Doing plt for call to 0x%x at 0x%x\n", val, (unsigned int)location);
9111 /* Init, or core PLT? */
9112 - if (location >= mod->module_core
9113 - && location < mod->module_core + mod->core_size)
9114 + if ((location >= mod->module_core_rx && location < mod->module_core_rx + mod->core_size_rx) ||
9115 + (location >= mod->module_core_rw && location < mod->module_core_rw + mod->core_size_rw))
9116 entry = (void *)sechdrs[mod->arch.core_plt_section].sh_addr;
9117 - else
9118 + else if ((location >= mod->module_init_rx && location < mod->module_init_rx + mod->init_size_rx) ||
9119 + (location >= mod->module_init_rw && location < mod->module_init_rw + mod->init_size_rw))
9120 entry = (void *)sechdrs[mod->arch.init_plt_section].sh_addr;
9121 + else {
9122 + printk(KERN_ERR "%s: invalid R_PPC_REL24 entry found\n", mod->name);
9123 + return ~0UL;
9124 + }
9125
9126 /* Find this entry, or if that fails, the next avail. entry */
9127 while (entry->jump[0]) {
9128 @@ -296,7 +301,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
9129 }
9130 #ifdef CONFIG_DYNAMIC_FTRACE
9131 module->arch.tramp =
9132 - do_plt_call(module->module_core,
9133 + do_plt_call(module->module_core_rx,
9134 (unsigned long)ftrace_caller,
9135 sechdrs, module);
9136 #endif
9137 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
9138 index 64e6e9d..cf90ed5 100644
9139 --- a/arch/powerpc/kernel/process.c
9140 +++ b/arch/powerpc/kernel/process.c
9141 @@ -1033,8 +1033,8 @@ void show_regs(struct pt_regs * regs)
9142 * Lookup NIP late so we have the best change of getting the
9143 * above info out without failing
9144 */
9145 - printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip);
9146 - printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link);
9147 + printk("NIP ["REG"] %pA\n", regs->nip, (void *)regs->nip);
9148 + printk("LR ["REG"] %pA\n", regs->link, (void *)regs->link);
9149 #endif
9150 show_stack(current, (unsigned long *) regs->gpr[1]);
9151 if (!user_mode(regs))
9152 @@ -1550,10 +1550,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
9153 newsp = stack[0];
9154 ip = stack[STACK_FRAME_LR_SAVE];
9155 if (!firstframe || ip != lr) {
9156 - printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip);
9157 + printk("["REG"] ["REG"] %pA", sp, ip, (void *)ip);
9158 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
9159 if ((ip == rth) && curr_frame >= 0) {
9160 - printk(" (%pS)",
9161 + printk(" (%pA)",
9162 (void *)current->ret_stack[curr_frame].ret);
9163 curr_frame--;
9164 }
9165 @@ -1573,7 +1573,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
9166 struct pt_regs *regs = (struct pt_regs *)
9167 (sp + STACK_FRAME_OVERHEAD);
9168 lr = regs->link;
9169 - printk("--- interrupt: %lx at %pS\n LR = %pS\n",
9170 + printk("--- interrupt: %lx at %pA\n LR = %pA\n",
9171 regs->trap, (void *)regs->nip, (void *)lr);
9172 firstframe = 1;
9173 }
9174 @@ -1609,49 +1609,3 @@ void notrace __ppc64_runlatch_off(void)
9175 mtspr(SPRN_CTRLT, ctrl);
9176 }
9177 #endif /* CONFIG_PPC64 */
9178 -
9179 -unsigned long arch_align_stack(unsigned long sp)
9180 -{
9181 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
9182 - sp -= get_random_int() & ~PAGE_MASK;
9183 - return sp & ~0xf;
9184 -}
9185 -
9186 -static inline unsigned long brk_rnd(void)
9187 -{
9188 - unsigned long rnd = 0;
9189 -
9190 - /* 8MB for 32bit, 1GB for 64bit */
9191 - if (is_32bit_task())
9192 - rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT)));
9193 - else
9194 - rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT)));
9195 -
9196 - return rnd << PAGE_SHIFT;
9197 -}
9198 -
9199 -unsigned long arch_randomize_brk(struct mm_struct *mm)
9200 -{
9201 - unsigned long base = mm->brk;
9202 - unsigned long ret;
9203 -
9204 -#ifdef CONFIG_PPC_STD_MMU_64
9205 - /*
9206 - * If we are using 1TB segments and we are allowed to randomise
9207 - * the heap, we can put it above 1TB so it is backed by a 1TB
9208 - * segment. Otherwise the heap will be in the bottom 1TB
9209 - * which always uses 256MB segments and this may result in a
9210 - * performance penalty.
9211 - */
9212 - if (!is_32bit_task() && (mmu_highuser_ssize == MMU_SEGSIZE_1T))
9213 - base = max_t(unsigned long, mm->brk, 1UL << SID_SHIFT_1T);
9214 -#endif
9215 -
9216 - ret = PAGE_ALIGN(base + brk_rnd());
9217 -
9218 - if (ret < mm->brk)
9219 - return mm->brk;
9220 -
9221 - return ret;
9222 -}
9223 -
9224 diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
9225 index f21897b..28c0428 100644
9226 --- a/arch/powerpc/kernel/ptrace.c
9227 +++ b/arch/powerpc/kernel/ptrace.c
9228 @@ -1762,6 +1762,10 @@ long arch_ptrace(struct task_struct *child, long request,
9229 return ret;
9230 }
9231
9232 +#ifdef CONFIG_GRKERNSEC_SETXID
9233 +extern void gr_delayed_cred_worker(void);
9234 +#endif
9235 +
9236 /*
9237 * We must return the syscall number to actually look up in the table.
9238 * This can be -1L to skip running any syscall at all.
9239 @@ -1774,6 +1778,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
9240
9241 secure_computing_strict(regs->gpr[0]);
9242
9243 +#ifdef CONFIG_GRKERNSEC_SETXID
9244 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
9245 + gr_delayed_cred_worker();
9246 +#endif
9247 +
9248 if (test_thread_flag(TIF_SYSCALL_TRACE) &&
9249 tracehook_report_syscall_entry(regs))
9250 /*
9251 @@ -1805,6 +1814,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
9252 {
9253 int step;
9254
9255 +#ifdef CONFIG_GRKERNSEC_SETXID
9256 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
9257 + gr_delayed_cred_worker();
9258 +#endif
9259 +
9260 audit_syscall_exit(regs);
9261
9262 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
9263 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
9264 index da50e0c..5ff6307 100644
9265 --- a/arch/powerpc/kernel/signal_32.c
9266 +++ b/arch/powerpc/kernel/signal_32.c
9267 @@ -1009,7 +1009,7 @@ int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
9268 /* Save user registers on the stack */
9269 frame = &rt_sf->uc.uc_mcontext;
9270 addr = frame;
9271 - if (vdso32_rt_sigtramp && current->mm->context.vdso_base) {
9272 + if (vdso32_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
9273 sigret = 0;
9274 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
9275 } else {
9276 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
9277 index c7c24d2..1bf7039 100644
9278 --- a/arch/powerpc/kernel/signal_64.c
9279 +++ b/arch/powerpc/kernel/signal_64.c
9280 @@ -754,7 +754,7 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
9281 current->thread.fp_state.fpscr = 0;
9282
9283 /* Set up to return from userspace. */
9284 - if (vdso64_rt_sigtramp && current->mm->context.vdso_base) {
9285 + if (vdso64_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
9286 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
9287 } else {
9288 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
9289 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
9290 index 37de90f..12472ac 100644
9291 --- a/arch/powerpc/kernel/traps.c
9292 +++ b/arch/powerpc/kernel/traps.c
9293 @@ -36,6 +36,7 @@
9294 #include <linux/debugfs.h>
9295 #include <linux/ratelimit.h>
9296 #include <linux/context_tracking.h>
9297 +#include <linux/uaccess.h>
9298
9299 #include <asm/emulated_ops.h>
9300 #include <asm/pgtable.h>
9301 @@ -142,6 +143,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
9302 return flags;
9303 }
9304
9305 +extern void gr_handle_kernel_exploit(void);
9306 +
9307 static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
9308 int signr)
9309 {
9310 @@ -191,6 +194,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
9311 panic("Fatal exception in interrupt");
9312 if (panic_on_oops)
9313 panic("Fatal exception");
9314 +
9315 + gr_handle_kernel_exploit();
9316 +
9317 do_exit(signr);
9318 }
9319
9320 @@ -1139,6 +1145,26 @@ void __kprobes program_check_exception(struct pt_regs *regs)
9321 enum ctx_state prev_state = exception_enter();
9322 unsigned int reason = get_reason(regs);
9323
9324 +#ifdef CONFIG_PAX_REFCOUNT
9325 + unsigned int bkpt;
9326 + const struct exception_table_entry *entry;
9327 +
9328 + if (reason & REASON_ILLEGAL) {
9329 + /* Check if PaX bad instruction */
9330 + if (!probe_kernel_address(regs->nip, bkpt) && bkpt == 0xc00b00) {
9331 + current->thread.trap_nr = 0;
9332 + pax_report_refcount_overflow(regs);
9333 + /* fixup_exception() for PowerPC does not exist, simulate its job */
9334 + if ((entry = search_exception_tables(regs->nip)) != NULL) {
9335 + regs->nip = entry->fixup;
9336 + return;
9337 + }
9338 + /* fixup_exception() could not handle */
9339 + goto bail;
9340 + }
9341 + }
9342 +#endif
9343 +
9344 /* We can now get here via a FP Unavailable exception if the core
9345 * has no FPU, in that case the reason flags will be 0 */
9346
9347 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
9348 index b457bfa..9018cde 100644
9349 --- a/arch/powerpc/kernel/vdso.c
9350 +++ b/arch/powerpc/kernel/vdso.c
9351 @@ -34,6 +34,7 @@
9352 #include <asm/vdso.h>
9353 #include <asm/vdso_datapage.h>
9354 #include <asm/setup.h>
9355 +#include <asm/mman.h>
9356
9357 #undef DEBUG
9358
9359 @@ -179,7 +180,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
9360 vdso_base = VDSO32_MBASE;
9361 #endif
9362
9363 - current->mm->context.vdso_base = 0;
9364 + current->mm->context.vdso_base = ~0UL;
9365
9366 /* vDSO has a problem and was disabled, just don't "enable" it for the
9367 * process
9368 @@ -199,7 +200,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
9369 vdso_base = get_unmapped_area(NULL, vdso_base,
9370 (vdso_pages << PAGE_SHIFT) +
9371 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
9372 - 0, 0);
9373 + 0, MAP_PRIVATE | MAP_EXECUTABLE);
9374 if (IS_ERR_VALUE(vdso_base)) {
9375 rc = vdso_base;
9376 goto fail_mmapsem;
9377 diff --git a/arch/powerpc/lib/usercopy_64.c b/arch/powerpc/lib/usercopy_64.c
9378 index 5eea6f3..5d10396 100644
9379 --- a/arch/powerpc/lib/usercopy_64.c
9380 +++ b/arch/powerpc/lib/usercopy_64.c
9381 @@ -9,22 +9,6 @@
9382 #include <linux/module.h>
9383 #include <asm/uaccess.h>
9384
9385 -unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
9386 -{
9387 - if (likely(access_ok(VERIFY_READ, from, n)))
9388 - n = __copy_from_user(to, from, n);
9389 - else
9390 - memset(to, 0, n);
9391 - return n;
9392 -}
9393 -
9394 -unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
9395 -{
9396 - if (likely(access_ok(VERIFY_WRITE, to, n)))
9397 - n = __copy_to_user(to, from, n);
9398 - return n;
9399 -}
9400 -
9401 unsigned long copy_in_user(void __user *to, const void __user *from,
9402 unsigned long n)
9403 {
9404 @@ -35,7 +19,5 @@ unsigned long copy_in_user(void __user *to, const void __user *from,
9405 return n;
9406 }
9407
9408 -EXPORT_SYMBOL(copy_from_user);
9409 -EXPORT_SYMBOL(copy_to_user);
9410 EXPORT_SYMBOL(copy_in_user);
9411
9412 diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
9413 index a67c6d7..a662e6d 100644
9414 --- a/arch/powerpc/mm/fault.c
9415 +++ b/arch/powerpc/mm/fault.c
9416 @@ -34,6 +34,10 @@
9417 #include <linux/context_tracking.h>
9418 #include <linux/hugetlb.h>
9419 #include <linux/uaccess.h>
9420 +#include <linux/slab.h>
9421 +#include <linux/pagemap.h>
9422 +#include <linux/compiler.h>
9423 +#include <linux/unistd.h>
9424
9425 #include <asm/firmware.h>
9426 #include <asm/page.h>
9427 @@ -68,6 +72,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
9428 }
9429 #endif
9430
9431 +#ifdef CONFIG_PAX_PAGEEXEC
9432 +/*
9433 + * PaX: decide what to do with offenders (regs->nip = fault address)
9434 + *
9435 + * returns 1 when task should be killed
9436 + */
9437 +static int pax_handle_fetch_fault(struct pt_regs *regs)
9438 +{
9439 + return 1;
9440 +}
9441 +
9442 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
9443 +{
9444 + unsigned long i;
9445 +
9446 + printk(KERN_ERR "PAX: bytes at PC: ");
9447 + for (i = 0; i < 5; i++) {
9448 + unsigned int c;
9449 + if (get_user(c, (unsigned int __user *)pc+i))
9450 + printk(KERN_CONT "???????? ");
9451 + else
9452 + printk(KERN_CONT "%08x ", c);
9453 + }
9454 + printk("\n");
9455 +}
9456 +#endif
9457 +
9458 /*
9459 * Check whether the instruction at regs->nip is a store using
9460 * an update addressing form which will update r1.
9461 @@ -227,7 +258,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
9462 * indicate errors in DSISR but can validly be set in SRR1.
9463 */
9464 if (trap == 0x400)
9465 - error_code &= 0x48200000;
9466 + error_code &= 0x58200000;
9467 else
9468 is_write = error_code & DSISR_ISSTORE;
9469 #else
9470 @@ -384,12 +415,16 @@ good_area:
9471 * "undefined". Of those that can be set, this is the only
9472 * one which seems bad.
9473 */
9474 - if (error_code & 0x10000000)
9475 + if (error_code & DSISR_GUARDED)
9476 /* Guarded storage error. */
9477 goto bad_area;
9478 #endif /* CONFIG_8xx */
9479
9480 if (is_exec) {
9481 +#ifdef CONFIG_PPC_STD_MMU
9482 + if (error_code & DSISR_GUARDED)
9483 + goto bad_area;
9484 +#endif
9485 /*
9486 * Allow execution from readable areas if the MMU does not
9487 * provide separate controls over reading and executing.
9488 @@ -484,6 +519,23 @@ bad_area:
9489 bad_area_nosemaphore:
9490 /* User mode accesses cause a SIGSEGV */
9491 if (user_mode(regs)) {
9492 +
9493 +#ifdef CONFIG_PAX_PAGEEXEC
9494 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
9495 +#ifdef CONFIG_PPC_STD_MMU
9496 + if (is_exec && (error_code & (DSISR_PROTFAULT | DSISR_GUARDED))) {
9497 +#else
9498 + if (is_exec && regs->nip == address) {
9499 +#endif
9500 + switch (pax_handle_fetch_fault(regs)) {
9501 + }
9502 +
9503 + pax_report_fault(regs, (void *)regs->nip, (void *)regs->gpr[PT_R1]);
9504 + do_group_exit(SIGKILL);
9505 + }
9506 + }
9507 +#endif
9508 +
9509 _exception(SIGSEGV, regs, code, address);
9510 goto bail;
9511 }
9512 diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c
9513 index 0f0502e..bc3e7a3 100644
9514 --- a/arch/powerpc/mm/mmap.c
9515 +++ b/arch/powerpc/mm/mmap.c
9516 @@ -86,6 +86,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9517 {
9518 unsigned long random_factor = 0UL;
9519
9520 +#ifdef CONFIG_PAX_RANDMMAP
9521 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9522 +#endif
9523 +
9524 if (current->flags & PF_RANDOMIZE)
9525 random_factor = arch_mmap_rnd();
9526
9527 @@ -95,9 +99,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9528 */
9529 if (mmap_is_legacy()) {
9530 mm->mmap_base = TASK_UNMAPPED_BASE;
9531 +
9532 +#ifdef CONFIG_PAX_RANDMMAP
9533 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9534 + mm->mmap_base += mm->delta_mmap;
9535 +#endif
9536 +
9537 mm->get_unmapped_area = arch_get_unmapped_area;
9538 } else {
9539 mm->mmap_base = mmap_base(random_factor);
9540 +
9541 +#ifdef CONFIG_PAX_RANDMMAP
9542 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9543 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9544 +#endif
9545 +
9546 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
9547 }
9548 }
9549 diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
9550 index 0f432a7..abfe841 100644
9551 --- a/arch/powerpc/mm/slice.c
9552 +++ b/arch/powerpc/mm/slice.c
9553 @@ -105,7 +105,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
9554 if ((mm->task_size - len) < addr)
9555 return 0;
9556 vma = find_vma(mm, addr);
9557 - return (!vma || (addr + len) <= vma->vm_start);
9558 + return check_heap_stack_gap(vma, addr, len, 0);
9559 }
9560
9561 static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
9562 @@ -277,6 +277,12 @@ static unsigned long slice_find_area_bottomup(struct mm_struct *mm,
9563 info.align_offset = 0;
9564
9565 addr = TASK_UNMAPPED_BASE;
9566 +
9567 +#ifdef CONFIG_PAX_RANDMMAP
9568 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9569 + addr += mm->delta_mmap;
9570 +#endif
9571 +
9572 while (addr < TASK_SIZE) {
9573 info.low_limit = addr;
9574 if (!slice_scan_available(addr, available, 1, &addr))
9575 @@ -410,6 +416,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
9576 if (fixed && addr > (mm->task_size - len))
9577 return -ENOMEM;
9578
9579 +#ifdef CONFIG_PAX_RANDMMAP
9580 + if (!fixed && (mm->pax_flags & MF_PAX_RANDMMAP))
9581 + addr = 0;
9582 +#endif
9583 +
9584 /* If hint, make sure it matches our alignment restrictions */
9585 if (!fixed && addr) {
9586 addr = _ALIGN_UP(addr, 1ul << pshift);
9587 diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
9588 index d966bbe..372124a 100644
9589 --- a/arch/powerpc/platforms/cell/spufs/file.c
9590 +++ b/arch/powerpc/platforms/cell/spufs/file.c
9591 @@ -280,9 +280,9 @@ spufs_mem_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
9592 return VM_FAULT_NOPAGE;
9593 }
9594
9595 -static int spufs_mem_mmap_access(struct vm_area_struct *vma,
9596 +static ssize_t spufs_mem_mmap_access(struct vm_area_struct *vma,
9597 unsigned long address,
9598 - void *buf, int len, int write)
9599 + void *buf, size_t len, int write)
9600 {
9601 struct spu_context *ctx = vma->vm_file->private_data;
9602 unsigned long offset = address - vma->vm_start;
9603 diff --git a/arch/s390/Kconfig.debug b/arch/s390/Kconfig.debug
9604 index c56878e..073d04e 100644
9605 --- a/arch/s390/Kconfig.debug
9606 +++ b/arch/s390/Kconfig.debug
9607 @@ -21,6 +21,7 @@ config S390_PTDUMP
9608 bool "Export kernel pagetable layout to userspace via debugfs"
9609 depends on DEBUG_KERNEL
9610 select DEBUG_FS
9611 + depends on !GRKERNSEC_KMEM
9612 ---help---
9613 Say Y here if you want to show the kernel pagetable layout in a
9614 debugfs file. This information is only useful for kernel developers
9615 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
9616 index adbe380..adb7516 100644
9617 --- a/arch/s390/include/asm/atomic.h
9618 +++ b/arch/s390/include/asm/atomic.h
9619 @@ -317,4 +317,14 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
9620 #define atomic64_dec_and_test(_v) (atomic64_sub_return(1, _v) == 0)
9621 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
9622
9623 +#define atomic64_read_unchecked(v) atomic64_read(v)
9624 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
9625 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
9626 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
9627 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
9628 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
9629 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
9630 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
9631 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
9632 +
9633 #endif /* __ARCH_S390_ATOMIC__ */
9634 diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h
9635 index e6f8615..4a66339 100644
9636 --- a/arch/s390/include/asm/barrier.h
9637 +++ b/arch/s390/include/asm/barrier.h
9638 @@ -42,7 +42,7 @@
9639 do { \
9640 compiletime_assert_atomic_type(*p); \
9641 barrier(); \
9642 - ACCESS_ONCE(*p) = (v); \
9643 + ACCESS_ONCE_RW(*p) = (v); \
9644 } while (0)
9645
9646 #define smp_load_acquire(p) \
9647 diff --git a/arch/s390/include/asm/cache.h b/arch/s390/include/asm/cache.h
9648 index 4d7ccac..d03d0ad 100644
9649 --- a/arch/s390/include/asm/cache.h
9650 +++ b/arch/s390/include/asm/cache.h
9651 @@ -9,8 +9,10 @@
9652 #ifndef __ARCH_S390_CACHE_H
9653 #define __ARCH_S390_CACHE_H
9654
9655 -#define L1_CACHE_BYTES 256
9656 +#include <linux/const.h>
9657 +
9658 #define L1_CACHE_SHIFT 8
9659 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9660 #define NET_SKB_PAD 32
9661
9662 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9663 diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
9664 index 3ad48f2..64cc6f3 100644
9665 --- a/arch/s390/include/asm/elf.h
9666 +++ b/arch/s390/include/asm/elf.h
9667 @@ -163,6 +163,13 @@ extern unsigned int vdso_enabled;
9668 (STACK_TOP / 3 * 2) : \
9669 (STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))
9670
9671 +#ifdef CONFIG_PAX_ASLR
9672 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
9673 +
9674 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9675 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9676 +#endif
9677 +
9678 /* This yields a mask that user programs can use to figure out what
9679 instruction set this CPU supports. */
9680
9681 diff --git a/arch/s390/include/asm/exec.h b/arch/s390/include/asm/exec.h
9682 index c4a93d6..4d2a9b4 100644
9683 --- a/arch/s390/include/asm/exec.h
9684 +++ b/arch/s390/include/asm/exec.h
9685 @@ -7,6 +7,6 @@
9686 #ifndef __ASM_EXEC_H
9687 #define __ASM_EXEC_H
9688
9689 -extern unsigned long arch_align_stack(unsigned long sp);
9690 +#define arch_align_stack(x) ((x) & ~0xfUL)
9691
9692 #endif /* __ASM_EXEC_H */
9693 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
9694 index 9dd4cc4..36f4b84 100644
9695 --- a/arch/s390/include/asm/uaccess.h
9696 +++ b/arch/s390/include/asm/uaccess.h
9697 @@ -59,6 +59,7 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
9698 __range_ok((unsigned long)(addr), (size)); \
9699 })
9700
9701 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
9702 #define access_ok(type, addr, size) __access_ok(addr, size)
9703
9704 /*
9705 @@ -278,6 +279,10 @@ static inline unsigned long __must_check
9706 copy_to_user(void __user *to, const void *from, unsigned long n)
9707 {
9708 might_fault();
9709 +
9710 + if ((long)n < 0)
9711 + return n;
9712 +
9713 return __copy_to_user(to, from, n);
9714 }
9715
9716 @@ -307,10 +312,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
9717 static inline unsigned long __must_check
9718 copy_from_user(void *to, const void __user *from, unsigned long n)
9719 {
9720 - unsigned int sz = __compiletime_object_size(to);
9721 + size_t sz = __compiletime_object_size(to);
9722
9723 might_fault();
9724 - if (unlikely(sz != -1 && sz < n)) {
9725 +
9726 + if ((long)n < 0)
9727 + return n;
9728 +
9729 + if (unlikely(sz != (size_t)-1 && sz < n)) {
9730 copy_from_user_overflow();
9731 return n;
9732 }
9733 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
9734 index 0c1a679..e1df357 100644
9735 --- a/arch/s390/kernel/module.c
9736 +++ b/arch/s390/kernel/module.c
9737 @@ -159,11 +159,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
9738
9739 /* Increase core size by size of got & plt and set start
9740 offsets for got and plt. */
9741 - me->core_size = ALIGN(me->core_size, 4);
9742 - me->arch.got_offset = me->core_size;
9743 - me->core_size += me->arch.got_size;
9744 - me->arch.plt_offset = me->core_size;
9745 - me->core_size += me->arch.plt_size;
9746 + me->core_size_rw = ALIGN(me->core_size_rw, 4);
9747 + me->arch.got_offset = me->core_size_rw;
9748 + me->core_size_rw += me->arch.got_size;
9749 + me->arch.plt_offset = me->core_size_rx;
9750 + me->core_size_rx += me->arch.plt_size;
9751 return 0;
9752 }
9753
9754 @@ -279,7 +279,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9755 if (info->got_initialized == 0) {
9756 Elf_Addr *gotent;
9757
9758 - gotent = me->module_core + me->arch.got_offset +
9759 + gotent = me->module_core_rw + me->arch.got_offset +
9760 info->got_offset;
9761 *gotent = val;
9762 info->got_initialized = 1;
9763 @@ -302,7 +302,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9764 rc = apply_rela_bits(loc, val, 0, 64, 0);
9765 else if (r_type == R_390_GOTENT ||
9766 r_type == R_390_GOTPLTENT) {
9767 - val += (Elf_Addr) me->module_core - loc;
9768 + val += (Elf_Addr) me->module_core_rw - loc;
9769 rc = apply_rela_bits(loc, val, 1, 32, 1);
9770 }
9771 break;
9772 @@ -315,7 +315,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9773 case R_390_PLTOFF64: /* 16 bit offset from GOT to PLT. */
9774 if (info->plt_initialized == 0) {
9775 unsigned int *ip;
9776 - ip = me->module_core + me->arch.plt_offset +
9777 + ip = me->module_core_rx + me->arch.plt_offset +
9778 info->plt_offset;
9779 ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */
9780 ip[1] = 0x100a0004;
9781 @@ -334,7 +334,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9782 val - loc + 0xffffUL < 0x1ffffeUL) ||
9783 (r_type == R_390_PLT32DBL &&
9784 val - loc + 0xffffffffULL < 0x1fffffffeULL)))
9785 - val = (Elf_Addr) me->module_core +
9786 + val = (Elf_Addr) me->module_core_rx +
9787 me->arch.plt_offset +
9788 info->plt_offset;
9789 val += rela->r_addend - loc;
9790 @@ -356,7 +356,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9791 case R_390_GOTOFF32: /* 32 bit offset to GOT. */
9792 case R_390_GOTOFF64: /* 64 bit offset to GOT. */
9793 val = val + rela->r_addend -
9794 - ((Elf_Addr) me->module_core + me->arch.got_offset);
9795 + ((Elf_Addr) me->module_core_rw + me->arch.got_offset);
9796 if (r_type == R_390_GOTOFF16)
9797 rc = apply_rela_bits(loc, val, 0, 16, 0);
9798 else if (r_type == R_390_GOTOFF32)
9799 @@ -366,7 +366,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9800 break;
9801 case R_390_GOTPC: /* 32 bit PC relative offset to GOT. */
9802 case R_390_GOTPCDBL: /* 32 bit PC rel. off. to GOT shifted by 1. */
9803 - val = (Elf_Addr) me->module_core + me->arch.got_offset +
9804 + val = (Elf_Addr) me->module_core_rw + me->arch.got_offset +
9805 rela->r_addend - loc;
9806 if (r_type == R_390_GOTPC)
9807 rc = apply_rela_bits(loc, val, 1, 32, 0);
9808 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
9809 index 8f587d8..0642516b 100644
9810 --- a/arch/s390/kernel/process.c
9811 +++ b/arch/s390/kernel/process.c
9812 @@ -200,27 +200,3 @@ unsigned long get_wchan(struct task_struct *p)
9813 }
9814 return 0;
9815 }
9816 -
9817 -unsigned long arch_align_stack(unsigned long sp)
9818 -{
9819 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
9820 - sp -= get_random_int() & ~PAGE_MASK;
9821 - return sp & ~0xf;
9822 -}
9823 -
9824 -static inline unsigned long brk_rnd(void)
9825 -{
9826 - /* 8MB for 32bit, 1GB for 64bit */
9827 - if (is_32bit_task())
9828 - return (get_random_int() & 0x7ffUL) << PAGE_SHIFT;
9829 - else
9830 - return (get_random_int() & 0x3ffffUL) << PAGE_SHIFT;
9831 -}
9832 -
9833 -unsigned long arch_randomize_brk(struct mm_struct *mm)
9834 -{
9835 - unsigned long ret;
9836 -
9837 - ret = PAGE_ALIGN(mm->brk + brk_rnd());
9838 - return (ret > mm->brk) ? ret : mm->brk;
9839 -}
9840 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
9841 index 6e552af..3e608a1 100644
9842 --- a/arch/s390/mm/mmap.c
9843 +++ b/arch/s390/mm/mmap.c
9844 @@ -239,6 +239,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9845 {
9846 unsigned long random_factor = 0UL;
9847
9848 +#ifdef CONFIG_PAX_RANDMMAP
9849 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9850 +#endif
9851 +
9852 if (current->flags & PF_RANDOMIZE)
9853 random_factor = arch_mmap_rnd();
9854
9855 @@ -248,9 +252,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9856 */
9857 if (mmap_is_legacy()) {
9858 mm->mmap_base = mmap_base_legacy(random_factor);
9859 +
9860 +#ifdef CONFIG_PAX_RANDMMAP
9861 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9862 + mm->mmap_base += mm->delta_mmap;
9863 +#endif
9864 +
9865 mm->get_unmapped_area = s390_get_unmapped_area;
9866 } else {
9867 mm->mmap_base = mmap_base(random_factor);
9868 +
9869 +#ifdef CONFIG_PAX_RANDMMAP
9870 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9871 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9872 +#endif
9873 +
9874 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
9875 }
9876 }
9877 diff --git a/arch/score/include/asm/cache.h b/arch/score/include/asm/cache.h
9878 index ae3d59f..f65f075 100644
9879 --- a/arch/score/include/asm/cache.h
9880 +++ b/arch/score/include/asm/cache.h
9881 @@ -1,7 +1,9 @@
9882 #ifndef _ASM_SCORE_CACHE_H
9883 #define _ASM_SCORE_CACHE_H
9884
9885 +#include <linux/const.h>
9886 +
9887 #define L1_CACHE_SHIFT 4
9888 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9889 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9890
9891 #endif /* _ASM_SCORE_CACHE_H */
9892 diff --git a/arch/score/include/asm/exec.h b/arch/score/include/asm/exec.h
9893 index f9f3cd5..58ff438 100644
9894 --- a/arch/score/include/asm/exec.h
9895 +++ b/arch/score/include/asm/exec.h
9896 @@ -1,6 +1,6 @@
9897 #ifndef _ASM_SCORE_EXEC_H
9898 #define _ASM_SCORE_EXEC_H
9899
9900 -extern unsigned long arch_align_stack(unsigned long sp);
9901 +#define arch_align_stack(x) (x)
9902
9903 #endif /* _ASM_SCORE_EXEC_H */
9904 diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
9905 index a1519ad3..e8ac1ff 100644
9906 --- a/arch/score/kernel/process.c
9907 +++ b/arch/score/kernel/process.c
9908 @@ -116,8 +116,3 @@ unsigned long get_wchan(struct task_struct *task)
9909
9910 return task_pt_regs(task)->cp0_epc;
9911 }
9912 -
9913 -unsigned long arch_align_stack(unsigned long sp)
9914 -{
9915 - return sp;
9916 -}
9917 diff --git a/arch/sh/include/asm/cache.h b/arch/sh/include/asm/cache.h
9918 index ef9e555..331bd29 100644
9919 --- a/arch/sh/include/asm/cache.h
9920 +++ b/arch/sh/include/asm/cache.h
9921 @@ -9,10 +9,11 @@
9922 #define __ASM_SH_CACHE_H
9923 #ifdef __KERNEL__
9924
9925 +#include <linux/const.h>
9926 #include <linux/init.h>
9927 #include <cpu/cache.h>
9928
9929 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9930 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9931
9932 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9933
9934 diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c
9935 index 6777177..cb5e44f 100644
9936 --- a/arch/sh/mm/mmap.c
9937 +++ b/arch/sh/mm/mmap.c
9938 @@ -36,6 +36,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9939 struct mm_struct *mm = current->mm;
9940 struct vm_area_struct *vma;
9941 int do_colour_align;
9942 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9943 struct vm_unmapped_area_info info;
9944
9945 if (flags & MAP_FIXED) {
9946 @@ -55,6 +56,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9947 if (filp || (flags & MAP_SHARED))
9948 do_colour_align = 1;
9949
9950 +#ifdef CONFIG_PAX_RANDMMAP
9951 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9952 +#endif
9953 +
9954 if (addr) {
9955 if (do_colour_align)
9956 addr = COLOUR_ALIGN(addr, pgoff);
9957 @@ -62,14 +67,13 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9958 addr = PAGE_ALIGN(addr);
9959
9960 vma = find_vma(mm, addr);
9961 - if (TASK_SIZE - len >= addr &&
9962 - (!vma || addr + len <= vma->vm_start))
9963 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
9964 return addr;
9965 }
9966
9967 info.flags = 0;
9968 info.length = len;
9969 - info.low_limit = TASK_UNMAPPED_BASE;
9970 + info.low_limit = mm->mmap_base;
9971 info.high_limit = TASK_SIZE;
9972 info.align_mask = do_colour_align ? (PAGE_MASK & shm_align_mask) : 0;
9973 info.align_offset = pgoff << PAGE_SHIFT;
9974 @@ -85,6 +89,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9975 struct mm_struct *mm = current->mm;
9976 unsigned long addr = addr0;
9977 int do_colour_align;
9978 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9979 struct vm_unmapped_area_info info;
9980
9981 if (flags & MAP_FIXED) {
9982 @@ -104,6 +109,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9983 if (filp || (flags & MAP_SHARED))
9984 do_colour_align = 1;
9985
9986 +#ifdef CONFIG_PAX_RANDMMAP
9987 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9988 +#endif
9989 +
9990 /* requesting a specific address */
9991 if (addr) {
9992 if (do_colour_align)
9993 @@ -112,8 +121,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9994 addr = PAGE_ALIGN(addr);
9995
9996 vma = find_vma(mm, addr);
9997 - if (TASK_SIZE - len >= addr &&
9998 - (!vma || addr + len <= vma->vm_start))
9999 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10000 return addr;
10001 }
10002
10003 @@ -135,6 +143,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10004 VM_BUG_ON(addr != -ENOMEM);
10005 info.flags = 0;
10006 info.low_limit = TASK_UNMAPPED_BASE;
10007 +
10008 +#ifdef CONFIG_PAX_RANDMMAP
10009 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10010 + info.low_limit += mm->delta_mmap;
10011 +#endif
10012 +
10013 info.high_limit = TASK_SIZE;
10014 addr = vm_unmapped_area(&info);
10015 }
10016 diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h
10017 index 4082749..fd97781 100644
10018 --- a/arch/sparc/include/asm/atomic_64.h
10019 +++ b/arch/sparc/include/asm/atomic_64.h
10020 @@ -15,18 +15,38 @@
10021 #define ATOMIC64_INIT(i) { (i) }
10022
10023 #define atomic_read(v) ACCESS_ONCE((v)->counter)
10024 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
10025 +{
10026 + return ACCESS_ONCE(v->counter);
10027 +}
10028 #define atomic64_read(v) ACCESS_ONCE((v)->counter)
10029 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
10030 +{
10031 + return ACCESS_ONCE(v->counter);
10032 +}
10033
10034 #define atomic_set(v, i) (((v)->counter) = i)
10035 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
10036 +{
10037 + v->counter = i;
10038 +}
10039 #define atomic64_set(v, i) (((v)->counter) = i)
10040 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
10041 +{
10042 + v->counter = i;
10043 +}
10044
10045 -#define ATOMIC_OP(op) \
10046 -void atomic_##op(int, atomic_t *); \
10047 -void atomic64_##op(long, atomic64_t *);
10048 +#define __ATOMIC_OP(op, suffix) \
10049 +void atomic_##op##suffix(int, atomic##suffix##_t *); \
10050 +void atomic64_##op##suffix(long, atomic64##suffix##_t *);
10051
10052 -#define ATOMIC_OP_RETURN(op) \
10053 -int atomic_##op##_return(int, atomic_t *); \
10054 -long atomic64_##op##_return(long, atomic64_t *);
10055 +#define ATOMIC_OP(op) __ATOMIC_OP(op, ) __ATOMIC_OP(op, _unchecked)
10056 +
10057 +#define __ATOMIC_OP_RETURN(op, suffix) \
10058 +int atomic_##op##_return##suffix(int, atomic##suffix##_t *); \
10059 +long atomic64_##op##_return##suffix(long, atomic64##suffix##_t *);
10060 +
10061 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, ) __ATOMIC_OP_RETURN(op, _unchecked)
10062
10063 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
10064
10065 @@ -35,13 +55,23 @@ ATOMIC_OPS(sub)
10066
10067 #undef ATOMIC_OPS
10068 #undef ATOMIC_OP_RETURN
10069 +#undef __ATOMIC_OP_RETURN
10070 #undef ATOMIC_OP
10071 +#undef __ATOMIC_OP
10072
10073 #define atomic_dec_return(v) atomic_sub_return(1, v)
10074 #define atomic64_dec_return(v) atomic64_sub_return(1, v)
10075
10076 #define atomic_inc_return(v) atomic_add_return(1, v)
10077 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
10078 +{
10079 + return atomic_add_return_unchecked(1, v);
10080 +}
10081 #define atomic64_inc_return(v) atomic64_add_return(1, v)
10082 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
10083 +{
10084 + return atomic64_add_return_unchecked(1, v);
10085 +}
10086
10087 /*
10088 * atomic_inc_and_test - increment and test
10089 @@ -52,6 +82,10 @@ ATOMIC_OPS(sub)
10090 * other cases.
10091 */
10092 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
10093 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
10094 +{
10095 + return atomic_inc_return_unchecked(v) == 0;
10096 +}
10097 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
10098
10099 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
10100 @@ -61,25 +95,60 @@ ATOMIC_OPS(sub)
10101 #define atomic64_dec_and_test(v) (atomic64_sub_return(1, v) == 0)
10102
10103 #define atomic_inc(v) atomic_add(1, v)
10104 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
10105 +{
10106 + atomic_add_unchecked(1, v);
10107 +}
10108 #define atomic64_inc(v) atomic64_add(1, v)
10109 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
10110 +{
10111 + atomic64_add_unchecked(1, v);
10112 +}
10113
10114 #define atomic_dec(v) atomic_sub(1, v)
10115 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
10116 +{
10117 + atomic_sub_unchecked(1, v);
10118 +}
10119 #define atomic64_dec(v) atomic64_sub(1, v)
10120 +static inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
10121 +{
10122 + atomic64_sub_unchecked(1, v);
10123 +}
10124
10125 #define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0)
10126 #define atomic64_add_negative(i, v) (atomic64_add_return(i, v) < 0)
10127
10128 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
10129 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
10130 +{
10131 + return cmpxchg(&v->counter, old, new);
10132 +}
10133 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
10134 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
10135 +{
10136 + return xchg(&v->counter, new);
10137 +}
10138
10139 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
10140 {
10141 - int c, old;
10142 + int c, old, new;
10143 c = atomic_read(v);
10144 for (;;) {
10145 - if (unlikely(c == (u)))
10146 + if (unlikely(c == u))
10147 break;
10148 - old = atomic_cmpxchg((v), c, c + (a));
10149 +
10150 + asm volatile("addcc %2, %0, %0\n"
10151 +
10152 +#ifdef CONFIG_PAX_REFCOUNT
10153 + "tvs %%icc, 6\n"
10154 +#endif
10155 +
10156 + : "=r" (new)
10157 + : "0" (c), "ir" (a)
10158 + : "cc");
10159 +
10160 + old = atomic_cmpxchg(v, c, new);
10161 if (likely(old == c))
10162 break;
10163 c = old;
10164 @@ -90,20 +159,35 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
10165 #define atomic64_cmpxchg(v, o, n) \
10166 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
10167 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
10168 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
10169 +{
10170 + return xchg(&v->counter, new);
10171 +}
10172
10173 static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
10174 {
10175 - long c, old;
10176 + long c, old, new;
10177 c = atomic64_read(v);
10178 for (;;) {
10179 - if (unlikely(c == (u)))
10180 + if (unlikely(c == u))
10181 break;
10182 - old = atomic64_cmpxchg((v), c, c + (a));
10183 +
10184 + asm volatile("addcc %2, %0, %0\n"
10185 +
10186 +#ifdef CONFIG_PAX_REFCOUNT
10187 + "tvs %%xcc, 6\n"
10188 +#endif
10189 +
10190 + : "=r" (new)
10191 + : "0" (c), "ir" (a)
10192 + : "cc");
10193 +
10194 + old = atomic64_cmpxchg(v, c, new);
10195 if (likely(old == c))
10196 break;
10197 c = old;
10198 }
10199 - return c != (u);
10200 + return c != u;
10201 }
10202
10203 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
10204 diff --git a/arch/sparc/include/asm/barrier_64.h b/arch/sparc/include/asm/barrier_64.h
10205 index 809941e..b443309 100644
10206 --- a/arch/sparc/include/asm/barrier_64.h
10207 +++ b/arch/sparc/include/asm/barrier_64.h
10208 @@ -60,7 +60,7 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
10209 do { \
10210 compiletime_assert_atomic_type(*p); \
10211 barrier(); \
10212 - ACCESS_ONCE(*p) = (v); \
10213 + ACCESS_ONCE_RW(*p) = (v); \
10214 } while (0)
10215
10216 #define smp_load_acquire(p) \
10217 diff --git a/arch/sparc/include/asm/cache.h b/arch/sparc/include/asm/cache.h
10218 index 5bb6991..5c2132e 100644
10219 --- a/arch/sparc/include/asm/cache.h
10220 +++ b/arch/sparc/include/asm/cache.h
10221 @@ -7,10 +7,12 @@
10222 #ifndef _SPARC_CACHE_H
10223 #define _SPARC_CACHE_H
10224
10225 +#include <linux/const.h>
10226 +
10227 #define ARCH_SLAB_MINALIGN __alignof__(unsigned long long)
10228
10229 #define L1_CACHE_SHIFT 5
10230 -#define L1_CACHE_BYTES 32
10231 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
10232
10233 #ifdef CONFIG_SPARC32
10234 #define SMP_CACHE_BYTES_SHIFT 5
10235 diff --git a/arch/sparc/include/asm/elf_32.h b/arch/sparc/include/asm/elf_32.h
10236 index a24e41f..47677ff 100644
10237 --- a/arch/sparc/include/asm/elf_32.h
10238 +++ b/arch/sparc/include/asm/elf_32.h
10239 @@ -114,6 +114,13 @@ typedef struct {
10240
10241 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
10242
10243 +#ifdef CONFIG_PAX_ASLR
10244 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
10245 +
10246 +#define PAX_DELTA_MMAP_LEN 16
10247 +#define PAX_DELTA_STACK_LEN 16
10248 +#endif
10249 +
10250 /* This yields a mask that user programs can use to figure out what
10251 instruction set this cpu supports. This can NOT be done in userspace
10252 on Sparc. */
10253 diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h
10254 index 370ca1e..d4f4a98 100644
10255 --- a/arch/sparc/include/asm/elf_64.h
10256 +++ b/arch/sparc/include/asm/elf_64.h
10257 @@ -189,6 +189,13 @@ typedef struct {
10258 #define ELF_ET_DYN_BASE 0x0000010000000000UL
10259 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
10260
10261 +#ifdef CONFIG_PAX_ASLR
10262 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_32BIT) ? 0x10000UL : 0x100000UL)
10263 +
10264 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_32BIT) ? 14 : 28)
10265 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_32BIT) ? 15 : 29)
10266 +#endif
10267 +
10268 extern unsigned long sparc64_elf_hwcap;
10269 #define ELF_HWCAP sparc64_elf_hwcap
10270
10271 diff --git a/arch/sparc/include/asm/pgalloc_32.h b/arch/sparc/include/asm/pgalloc_32.h
10272 index a3890da..f6a408e 100644
10273 --- a/arch/sparc/include/asm/pgalloc_32.h
10274 +++ b/arch/sparc/include/asm/pgalloc_32.h
10275 @@ -35,6 +35,7 @@ static inline void pgd_set(pgd_t * pgdp, pmd_t * pmdp)
10276 }
10277
10278 #define pgd_populate(MM, PGD, PMD) pgd_set(PGD, PMD)
10279 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
10280
10281 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm,
10282 unsigned long address)
10283 diff --git a/arch/sparc/include/asm/pgalloc_64.h b/arch/sparc/include/asm/pgalloc_64.h
10284 index 5e31871..13469c6 100644
10285 --- a/arch/sparc/include/asm/pgalloc_64.h
10286 +++ b/arch/sparc/include/asm/pgalloc_64.h
10287 @@ -21,6 +21,7 @@ static inline void __pgd_populate(pgd_t *pgd, pud_t *pud)
10288 }
10289
10290 #define pgd_populate(MM, PGD, PUD) __pgd_populate(PGD, PUD)
10291 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
10292
10293 static inline pgd_t *pgd_alloc(struct mm_struct *mm)
10294 {
10295 @@ -38,6 +39,7 @@ static inline void __pud_populate(pud_t *pud, pmd_t *pmd)
10296 }
10297
10298 #define pud_populate(MM, PUD, PMD) __pud_populate(PUD, PMD)
10299 +#define pud_populate_kernel(MM, PUD, PMD) pud_populate((MM), (PUD), (PMD))
10300
10301 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
10302 {
10303 diff --git a/arch/sparc/include/asm/pgtable.h b/arch/sparc/include/asm/pgtable.h
10304 index 59ba6f6..4518128 100644
10305 --- a/arch/sparc/include/asm/pgtable.h
10306 +++ b/arch/sparc/include/asm/pgtable.h
10307 @@ -5,4 +5,8 @@
10308 #else
10309 #include <asm/pgtable_32.h>
10310 #endif
10311 +
10312 +#define ktla_ktva(addr) (addr)
10313 +#define ktva_ktla(addr) (addr)
10314 +
10315 #endif
10316 diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
10317 index f06b36a..bca3189 100644
10318 --- a/arch/sparc/include/asm/pgtable_32.h
10319 +++ b/arch/sparc/include/asm/pgtable_32.h
10320 @@ -51,6 +51,9 @@ unsigned long __init bootmem_init(unsigned long *pages_avail);
10321 #define PAGE_SHARED SRMMU_PAGE_SHARED
10322 #define PAGE_COPY SRMMU_PAGE_COPY
10323 #define PAGE_READONLY SRMMU_PAGE_RDONLY
10324 +#define PAGE_SHARED_NOEXEC SRMMU_PAGE_SHARED_NOEXEC
10325 +#define PAGE_COPY_NOEXEC SRMMU_PAGE_COPY_NOEXEC
10326 +#define PAGE_READONLY_NOEXEC SRMMU_PAGE_RDONLY_NOEXEC
10327 #define PAGE_KERNEL SRMMU_PAGE_KERNEL
10328
10329 /* Top-level page directory - dummy used by init-mm.
10330 @@ -63,18 +66,18 @@ extern unsigned long ptr_in_current_pgd;
10331
10332 /* xwr */
10333 #define __P000 PAGE_NONE
10334 -#define __P001 PAGE_READONLY
10335 -#define __P010 PAGE_COPY
10336 -#define __P011 PAGE_COPY
10337 +#define __P001 PAGE_READONLY_NOEXEC
10338 +#define __P010 PAGE_COPY_NOEXEC
10339 +#define __P011 PAGE_COPY_NOEXEC
10340 #define __P100 PAGE_READONLY
10341 #define __P101 PAGE_READONLY
10342 #define __P110 PAGE_COPY
10343 #define __P111 PAGE_COPY
10344
10345 #define __S000 PAGE_NONE
10346 -#define __S001 PAGE_READONLY
10347 -#define __S010 PAGE_SHARED
10348 -#define __S011 PAGE_SHARED
10349 +#define __S001 PAGE_READONLY_NOEXEC
10350 +#define __S010 PAGE_SHARED_NOEXEC
10351 +#define __S011 PAGE_SHARED_NOEXEC
10352 #define __S100 PAGE_READONLY
10353 #define __S101 PAGE_READONLY
10354 #define __S110 PAGE_SHARED
10355 diff --git a/arch/sparc/include/asm/pgtsrmmu.h b/arch/sparc/include/asm/pgtsrmmu.h
10356 index ae51a11..eadfd03 100644
10357 --- a/arch/sparc/include/asm/pgtsrmmu.h
10358 +++ b/arch/sparc/include/asm/pgtsrmmu.h
10359 @@ -111,6 +111,11 @@
10360 SRMMU_EXEC | SRMMU_REF)
10361 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
10362 SRMMU_EXEC | SRMMU_REF)
10363 +
10364 +#define SRMMU_PAGE_SHARED_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_WRITE | SRMMU_REF)
10365 +#define SRMMU_PAGE_COPY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
10366 +#define SRMMU_PAGE_RDONLY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
10367 +
10368 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
10369 SRMMU_DIRTY | SRMMU_REF)
10370
10371 diff --git a/arch/sparc/include/asm/setup.h b/arch/sparc/include/asm/setup.h
10372 index 29d64b1..4272fe8 100644
10373 --- a/arch/sparc/include/asm/setup.h
10374 +++ b/arch/sparc/include/asm/setup.h
10375 @@ -55,8 +55,8 @@ int handle_ldf_stq(u32 insn, struct pt_regs *regs);
10376 void handle_ld_nf(u32 insn, struct pt_regs *regs);
10377
10378 /* init_64.c */
10379 -extern atomic_t dcpage_flushes;
10380 -extern atomic_t dcpage_flushes_xcall;
10381 +extern atomic_unchecked_t dcpage_flushes;
10382 +extern atomic_unchecked_t dcpage_flushes_xcall;
10383
10384 extern int sysctl_tsb_ratio;
10385 #endif
10386 diff --git a/arch/sparc/include/asm/spinlock_64.h b/arch/sparc/include/asm/spinlock_64.h
10387 index 9689176..63c18ea 100644
10388 --- a/arch/sparc/include/asm/spinlock_64.h
10389 +++ b/arch/sparc/include/asm/spinlock_64.h
10390 @@ -92,14 +92,19 @@ static inline void arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long fla
10391
10392 /* Multi-reader locks, these are much saner than the 32-bit Sparc ones... */
10393
10394 -static void inline arch_read_lock(arch_rwlock_t *lock)
10395 +static inline void arch_read_lock(arch_rwlock_t *lock)
10396 {
10397 unsigned long tmp1, tmp2;
10398
10399 __asm__ __volatile__ (
10400 "1: ldsw [%2], %0\n"
10401 " brlz,pn %0, 2f\n"
10402 -"4: add %0, 1, %1\n"
10403 +"4: addcc %0, 1, %1\n"
10404 +
10405 +#ifdef CONFIG_PAX_REFCOUNT
10406 +" tvs %%icc, 6\n"
10407 +#endif
10408 +
10409 " cas [%2], %0, %1\n"
10410 " cmp %0, %1\n"
10411 " bne,pn %%icc, 1b\n"
10412 @@ -112,10 +117,10 @@ static void inline arch_read_lock(arch_rwlock_t *lock)
10413 " .previous"
10414 : "=&r" (tmp1), "=&r" (tmp2)
10415 : "r" (lock)
10416 - : "memory");
10417 + : "memory", "cc");
10418 }
10419
10420 -static int inline arch_read_trylock(arch_rwlock_t *lock)
10421 +static inline int arch_read_trylock(arch_rwlock_t *lock)
10422 {
10423 int tmp1, tmp2;
10424
10425 @@ -123,7 +128,12 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
10426 "1: ldsw [%2], %0\n"
10427 " brlz,a,pn %0, 2f\n"
10428 " mov 0, %0\n"
10429 -" add %0, 1, %1\n"
10430 +" addcc %0, 1, %1\n"
10431 +
10432 +#ifdef CONFIG_PAX_REFCOUNT
10433 +" tvs %%icc, 6\n"
10434 +#endif
10435 +
10436 " cas [%2], %0, %1\n"
10437 " cmp %0, %1\n"
10438 " bne,pn %%icc, 1b\n"
10439 @@ -136,13 +146,18 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
10440 return tmp1;
10441 }
10442
10443 -static void inline arch_read_unlock(arch_rwlock_t *lock)
10444 +static inline void arch_read_unlock(arch_rwlock_t *lock)
10445 {
10446 unsigned long tmp1, tmp2;
10447
10448 __asm__ __volatile__(
10449 "1: lduw [%2], %0\n"
10450 -" sub %0, 1, %1\n"
10451 +" subcc %0, 1, %1\n"
10452 +
10453 +#ifdef CONFIG_PAX_REFCOUNT
10454 +" tvs %%icc, 6\n"
10455 +#endif
10456 +
10457 " cas [%2], %0, %1\n"
10458 " cmp %0, %1\n"
10459 " bne,pn %%xcc, 1b\n"
10460 @@ -152,7 +167,7 @@ static void inline arch_read_unlock(arch_rwlock_t *lock)
10461 : "memory");
10462 }
10463
10464 -static void inline arch_write_lock(arch_rwlock_t *lock)
10465 +static inline void arch_write_lock(arch_rwlock_t *lock)
10466 {
10467 unsigned long mask, tmp1, tmp2;
10468
10469 @@ -177,7 +192,7 @@ static void inline arch_write_lock(arch_rwlock_t *lock)
10470 : "memory");
10471 }
10472
10473 -static void inline arch_write_unlock(arch_rwlock_t *lock)
10474 +static inline void arch_write_unlock(arch_rwlock_t *lock)
10475 {
10476 __asm__ __volatile__(
10477 " stw %%g0, [%0]"
10478 @@ -186,7 +201,7 @@ static void inline arch_write_unlock(arch_rwlock_t *lock)
10479 : "memory");
10480 }
10481
10482 -static int inline arch_write_trylock(arch_rwlock_t *lock)
10483 +static inline int arch_write_trylock(arch_rwlock_t *lock)
10484 {
10485 unsigned long mask, tmp1, tmp2, result;
10486
10487 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
10488 index 229475f..2fca9163 100644
10489 --- a/arch/sparc/include/asm/thread_info_32.h
10490 +++ b/arch/sparc/include/asm/thread_info_32.h
10491 @@ -48,6 +48,7 @@ struct thread_info {
10492 struct reg_window32 reg_window[NSWINS]; /* align for ldd! */
10493 unsigned long rwbuf_stkptrs[NSWINS];
10494 unsigned long w_saved;
10495 + unsigned long lowest_stack;
10496 };
10497
10498 /*
10499 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
10500 index bde5982..9cbb56d 100644
10501 --- a/arch/sparc/include/asm/thread_info_64.h
10502 +++ b/arch/sparc/include/asm/thread_info_64.h
10503 @@ -59,6 +59,8 @@ struct thread_info {
10504 struct pt_regs *kern_una_regs;
10505 unsigned int kern_una_insn;
10506
10507 + unsigned long lowest_stack;
10508 +
10509 unsigned long fpregs[(7 * 256) / sizeof(unsigned long)]
10510 __attribute__ ((aligned(64)));
10511 };
10512 @@ -180,12 +182,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
10513 #define TIF_NEED_RESCHED 3 /* rescheduling necessary */
10514 /* flag bit 4 is available */
10515 #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
10516 -/* flag bit 6 is available */
10517 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
10518 #define TIF_32BIT 7 /* 32-bit binary */
10519 #define TIF_NOHZ 8 /* in adaptive nohz mode */
10520 #define TIF_SECCOMP 9 /* secure computing */
10521 #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
10522 #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */
10523 +
10524 /* NOTE: Thread flags >= 12 should be ones we have no interest
10525 * in using in assembly, else we can't use the mask as
10526 * an immediate value in instructions such as andcc.
10527 @@ -205,12 +208,17 @@ register struct thread_info *current_thread_info_reg asm("g6");
10528 #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
10529 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
10530 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
10531 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
10532
10533 #define _TIF_USER_WORK_MASK ((0xff << TI_FLAG_WSAVED_SHIFT) | \
10534 _TIF_DO_NOTIFY_RESUME_MASK | \
10535 _TIF_NEED_RESCHED)
10536 #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING)
10537
10538 +#define _TIF_WORK_SYSCALL \
10539 + (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
10540 + _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
10541 +
10542 #define is_32bit_task() (test_thread_flag(TIF_32BIT))
10543
10544 /*
10545 diff --git a/arch/sparc/include/asm/uaccess.h b/arch/sparc/include/asm/uaccess.h
10546 index bd56c28..4b63d83 100644
10547 --- a/arch/sparc/include/asm/uaccess.h
10548 +++ b/arch/sparc/include/asm/uaccess.h
10549 @@ -1,5 +1,6 @@
10550 #ifndef ___ASM_SPARC_UACCESS_H
10551 #define ___ASM_SPARC_UACCESS_H
10552 +
10553 #if defined(__sparc__) && defined(__arch64__)
10554 #include <asm/uaccess_64.h>
10555 #else
10556 diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
10557 index 64ee103..388aef0 100644
10558 --- a/arch/sparc/include/asm/uaccess_32.h
10559 +++ b/arch/sparc/include/asm/uaccess_32.h
10560 @@ -47,6 +47,7 @@
10561 #define __user_ok(addr, size) ({ (void)(size); (addr) < STACK_TOP; })
10562 #define __kernel_ok (segment_eq(get_fs(), KERNEL_DS))
10563 #define __access_ok(addr, size) (__user_ok((addr) & get_fs().seg, (size)))
10564 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
10565 #define access_ok(type, addr, size) \
10566 ({ (void)(type); __access_ok((unsigned long)(addr), size); })
10567
10568 @@ -313,27 +314,46 @@ unsigned long __copy_user(void __user *to, const void __user *from, unsigned lon
10569
10570 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
10571 {
10572 - if (n && __access_ok((unsigned long) to, n))
10573 + if ((long)n < 0)
10574 + return n;
10575 +
10576 + if (n && __access_ok((unsigned long) to, n)) {
10577 + if (!__builtin_constant_p(n))
10578 + check_object_size(from, n, true);
10579 return __copy_user(to, (__force void __user *) from, n);
10580 - else
10581 + } else
10582 return n;
10583 }
10584
10585 static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n)
10586 {
10587 + if ((long)n < 0)
10588 + return n;
10589 +
10590 + if (!__builtin_constant_p(n))
10591 + check_object_size(from, n, true);
10592 +
10593 return __copy_user(to, (__force void __user *) from, n);
10594 }
10595
10596 static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
10597 {
10598 - if (n && __access_ok((unsigned long) from, n))
10599 + if ((long)n < 0)
10600 + return n;
10601 +
10602 + if (n && __access_ok((unsigned long) from, n)) {
10603 + if (!__builtin_constant_p(n))
10604 + check_object_size(to, n, false);
10605 return __copy_user((__force void __user *) to, from, n);
10606 - else
10607 + } else
10608 return n;
10609 }
10610
10611 static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n)
10612 {
10613 + if ((long)n < 0)
10614 + return n;
10615 +
10616 return __copy_user((__force void __user *) to, from, n);
10617 }
10618
10619 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
10620 index ea6e9a2..5703598 100644
10621 --- a/arch/sparc/include/asm/uaccess_64.h
10622 +++ b/arch/sparc/include/asm/uaccess_64.h
10623 @@ -10,6 +10,7 @@
10624 #include <linux/compiler.h>
10625 #include <linux/string.h>
10626 #include <linux/thread_info.h>
10627 +#include <linux/kernel.h>
10628 #include <asm/asi.h>
10629 #include <asm/spitfire.h>
10630 #include <asm-generic/uaccess-unaligned.h>
10631 @@ -76,6 +77,11 @@ static inline int __access_ok(const void __user * addr, unsigned long size)
10632 return 1;
10633 }
10634
10635 +static inline int access_ok_noprefault(int type, const void __user * addr, unsigned long size)
10636 +{
10637 + return 1;
10638 +}
10639 +
10640 static inline int access_ok(int type, const void __user * addr, unsigned long size)
10641 {
10642 return 1;
10643 @@ -250,8 +256,15 @@ unsigned long copy_from_user_fixup(void *to, const void __user *from,
10644 static inline unsigned long __must_check
10645 copy_from_user(void *to, const void __user *from, unsigned long size)
10646 {
10647 - unsigned long ret = ___copy_from_user(to, from, size);
10648 + unsigned long ret;
10649
10650 + if ((long)size < 0 || size > INT_MAX)
10651 + return size;
10652 +
10653 + if (!__builtin_constant_p(size))
10654 + check_object_size(to, size, false);
10655 +
10656 + ret = ___copy_from_user(to, from, size);
10657 if (unlikely(ret))
10658 ret = copy_from_user_fixup(to, from, size);
10659
10660 @@ -267,8 +280,15 @@ unsigned long copy_to_user_fixup(void __user *to, const void *from,
10661 static inline unsigned long __must_check
10662 copy_to_user(void __user *to, const void *from, unsigned long size)
10663 {
10664 - unsigned long ret = ___copy_to_user(to, from, size);
10665 + unsigned long ret;
10666
10667 + if ((long)size < 0 || size > INT_MAX)
10668 + return size;
10669 +
10670 + if (!__builtin_constant_p(size))
10671 + check_object_size(from, size, true);
10672 +
10673 + ret = ___copy_to_user(to, from, size);
10674 if (unlikely(ret))
10675 ret = copy_to_user_fixup(to, from, size);
10676 return ret;
10677 diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
10678 index 7cf9c6e..6206648 100644
10679 --- a/arch/sparc/kernel/Makefile
10680 +++ b/arch/sparc/kernel/Makefile
10681 @@ -4,7 +4,7 @@
10682 #
10683
10684 asflags-y := -ansi
10685 -ccflags-y := -Werror
10686 +#ccflags-y := -Werror
10687
10688 extra-y := head_$(BITS).o
10689
10690 diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
10691 index 50e7b62..79fae35 100644
10692 --- a/arch/sparc/kernel/process_32.c
10693 +++ b/arch/sparc/kernel/process_32.c
10694 @@ -123,14 +123,14 @@ void show_regs(struct pt_regs *r)
10695
10696 printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n",
10697 r->psr, r->pc, r->npc, r->y, print_tainted());
10698 - printk("PC: <%pS>\n", (void *) r->pc);
10699 + printk("PC: <%pA>\n", (void *) r->pc);
10700 printk("%%G: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10701 r->u_regs[0], r->u_regs[1], r->u_regs[2], r->u_regs[3],
10702 r->u_regs[4], r->u_regs[5], r->u_regs[6], r->u_regs[7]);
10703 printk("%%O: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10704 r->u_regs[8], r->u_regs[9], r->u_regs[10], r->u_regs[11],
10705 r->u_regs[12], r->u_regs[13], r->u_regs[14], r->u_regs[15]);
10706 - printk("RPC: <%pS>\n", (void *) r->u_regs[15]);
10707 + printk("RPC: <%pA>\n", (void *) r->u_regs[15]);
10708
10709 printk("%%L: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10710 rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3],
10711 @@ -167,7 +167,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
10712 rw = (struct reg_window32 *) fp;
10713 pc = rw->ins[7];
10714 printk("[%08lx : ", pc);
10715 - printk("%pS ] ", (void *) pc);
10716 + printk("%pA ] ", (void *) pc);
10717 fp = rw->ins[6];
10718 } while (++count < 16);
10719 printk("\n");
10720 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
10721 index 46a5964..a35c62c 100644
10722 --- a/arch/sparc/kernel/process_64.c
10723 +++ b/arch/sparc/kernel/process_64.c
10724 @@ -161,7 +161,7 @@ static void show_regwindow(struct pt_regs *regs)
10725 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
10726 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
10727 if (regs->tstate & TSTATE_PRIV)
10728 - printk("I7: <%pS>\n", (void *) rwk->ins[7]);
10729 + printk("I7: <%pA>\n", (void *) rwk->ins[7]);
10730 }
10731
10732 void show_regs(struct pt_regs *regs)
10733 @@ -170,7 +170,7 @@ void show_regs(struct pt_regs *regs)
10734
10735 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
10736 regs->tpc, regs->tnpc, regs->y, print_tainted());
10737 - printk("TPC: <%pS>\n", (void *) regs->tpc);
10738 + printk("TPC: <%pA>\n", (void *) regs->tpc);
10739 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
10740 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
10741 regs->u_regs[3]);
10742 @@ -183,7 +183,7 @@ void show_regs(struct pt_regs *regs)
10743 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
10744 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
10745 regs->u_regs[15]);
10746 - printk("RPC: <%pS>\n", (void *) regs->u_regs[15]);
10747 + printk("RPC: <%pA>\n", (void *) regs->u_regs[15]);
10748 show_regwindow(regs);
10749 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
10750 }
10751 @@ -278,7 +278,7 @@ void arch_trigger_all_cpu_backtrace(bool include_self)
10752 ((tp && tp->task) ? tp->task->pid : -1));
10753
10754 if (gp->tstate & TSTATE_PRIV) {
10755 - printk(" TPC[%pS] O7[%pS] I7[%pS] RPC[%pS]\n",
10756 + printk(" TPC[%pA] O7[%pA] I7[%pA] RPC[%pA]\n",
10757 (void *) gp->tpc,
10758 (void *) gp->o7,
10759 (void *) gp->i7,
10760 diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c
10761 index 79cc0d1..ec62734 100644
10762 --- a/arch/sparc/kernel/prom_common.c
10763 +++ b/arch/sparc/kernel/prom_common.c
10764 @@ -144,7 +144,7 @@ static int __init prom_common_nextprop(phandle node, char *prev, char *buf)
10765
10766 unsigned int prom_early_allocated __initdata;
10767
10768 -static struct of_pdt_ops prom_sparc_ops __initdata = {
10769 +static struct of_pdt_ops prom_sparc_ops __initconst = {
10770 .nextprop = prom_common_nextprop,
10771 .getproplen = prom_getproplen,
10772 .getproperty = prom_getproperty,
10773 diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
10774 index 9ddc492..27a5619 100644
10775 --- a/arch/sparc/kernel/ptrace_64.c
10776 +++ b/arch/sparc/kernel/ptrace_64.c
10777 @@ -1060,6 +1060,10 @@ long arch_ptrace(struct task_struct *child, long request,
10778 return ret;
10779 }
10780
10781 +#ifdef CONFIG_GRKERNSEC_SETXID
10782 +extern void gr_delayed_cred_worker(void);
10783 +#endif
10784 +
10785 asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10786 {
10787 int ret = 0;
10788 @@ -1070,6 +1074,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10789 if (test_thread_flag(TIF_NOHZ))
10790 user_exit();
10791
10792 +#ifdef CONFIG_GRKERNSEC_SETXID
10793 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10794 + gr_delayed_cred_worker();
10795 +#endif
10796 +
10797 if (test_thread_flag(TIF_SYSCALL_TRACE))
10798 ret = tracehook_report_syscall_entry(regs);
10799
10800 @@ -1088,6 +1097,11 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
10801 if (test_thread_flag(TIF_NOHZ))
10802 user_exit();
10803
10804 +#ifdef CONFIG_GRKERNSEC_SETXID
10805 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10806 + gr_delayed_cred_worker();
10807 +#endif
10808 +
10809 audit_syscall_exit(regs);
10810
10811 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
10812 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
10813 index 19cd08d..ff21e99 100644
10814 --- a/arch/sparc/kernel/smp_64.c
10815 +++ b/arch/sparc/kernel/smp_64.c
10816 @@ -891,7 +891,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10817 return;
10818
10819 #ifdef CONFIG_DEBUG_DCFLUSH
10820 - atomic_inc(&dcpage_flushes);
10821 + atomic_inc_unchecked(&dcpage_flushes);
10822 #endif
10823
10824 this_cpu = get_cpu();
10825 @@ -915,7 +915,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10826 xcall_deliver(data0, __pa(pg_addr),
10827 (u64) pg_addr, cpumask_of(cpu));
10828 #ifdef CONFIG_DEBUG_DCFLUSH
10829 - atomic_inc(&dcpage_flushes_xcall);
10830 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10831 #endif
10832 }
10833 }
10834 @@ -934,7 +934,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10835 preempt_disable();
10836
10837 #ifdef CONFIG_DEBUG_DCFLUSH
10838 - atomic_inc(&dcpage_flushes);
10839 + atomic_inc_unchecked(&dcpage_flushes);
10840 #endif
10841 data0 = 0;
10842 pg_addr = page_address(page);
10843 @@ -951,7 +951,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10844 xcall_deliver(data0, __pa(pg_addr),
10845 (u64) pg_addr, cpu_online_mask);
10846 #ifdef CONFIG_DEBUG_DCFLUSH
10847 - atomic_inc(&dcpage_flushes_xcall);
10848 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10849 #endif
10850 }
10851 __local_flush_dcache_page(page);
10852 diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c
10853 index 646988d..b88905f 100644
10854 --- a/arch/sparc/kernel/sys_sparc_32.c
10855 +++ b/arch/sparc/kernel/sys_sparc_32.c
10856 @@ -54,7 +54,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10857 if (len > TASK_SIZE - PAGE_SIZE)
10858 return -ENOMEM;
10859 if (!addr)
10860 - addr = TASK_UNMAPPED_BASE;
10861 + addr = current->mm->mmap_base;
10862
10863 info.flags = 0;
10864 info.length = len;
10865 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
10866 index 30e7ddb..266a3b0 100644
10867 --- a/arch/sparc/kernel/sys_sparc_64.c
10868 +++ b/arch/sparc/kernel/sys_sparc_64.c
10869 @@ -89,13 +89,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10870 struct vm_area_struct * vma;
10871 unsigned long task_size = TASK_SIZE;
10872 int do_color_align;
10873 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10874 struct vm_unmapped_area_info info;
10875
10876 if (flags & MAP_FIXED) {
10877 /* We do not accept a shared mapping if it would violate
10878 * cache aliasing constraints.
10879 */
10880 - if ((flags & MAP_SHARED) &&
10881 + if ((filp || (flags & MAP_SHARED)) &&
10882 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10883 return -EINVAL;
10884 return addr;
10885 @@ -110,6 +111,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10886 if (filp || (flags & MAP_SHARED))
10887 do_color_align = 1;
10888
10889 +#ifdef CONFIG_PAX_RANDMMAP
10890 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10891 +#endif
10892 +
10893 if (addr) {
10894 if (do_color_align)
10895 addr = COLOR_ALIGN(addr, pgoff);
10896 @@ -117,22 +122,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10897 addr = PAGE_ALIGN(addr);
10898
10899 vma = find_vma(mm, addr);
10900 - if (task_size - len >= addr &&
10901 - (!vma || addr + len <= vma->vm_start))
10902 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10903 return addr;
10904 }
10905
10906 info.flags = 0;
10907 info.length = len;
10908 - info.low_limit = TASK_UNMAPPED_BASE;
10909 + info.low_limit = mm->mmap_base;
10910 info.high_limit = min(task_size, VA_EXCLUDE_START);
10911 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10912 info.align_offset = pgoff << PAGE_SHIFT;
10913 + info.threadstack_offset = offset;
10914 addr = vm_unmapped_area(&info);
10915
10916 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
10917 VM_BUG_ON(addr != -ENOMEM);
10918 info.low_limit = VA_EXCLUDE_END;
10919 +
10920 +#ifdef CONFIG_PAX_RANDMMAP
10921 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10922 + info.low_limit += mm->delta_mmap;
10923 +#endif
10924 +
10925 info.high_limit = task_size;
10926 addr = vm_unmapped_area(&info);
10927 }
10928 @@ -150,6 +161,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10929 unsigned long task_size = STACK_TOP32;
10930 unsigned long addr = addr0;
10931 int do_color_align;
10932 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10933 struct vm_unmapped_area_info info;
10934
10935 /* This should only ever run for 32-bit processes. */
10936 @@ -159,7 +171,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10937 /* We do not accept a shared mapping if it would violate
10938 * cache aliasing constraints.
10939 */
10940 - if ((flags & MAP_SHARED) &&
10941 + if ((filp || (flags & MAP_SHARED)) &&
10942 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10943 return -EINVAL;
10944 return addr;
10945 @@ -172,6 +184,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10946 if (filp || (flags & MAP_SHARED))
10947 do_color_align = 1;
10948
10949 +#ifdef CONFIG_PAX_RANDMMAP
10950 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10951 +#endif
10952 +
10953 /* requesting a specific address */
10954 if (addr) {
10955 if (do_color_align)
10956 @@ -180,8 +196,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10957 addr = PAGE_ALIGN(addr);
10958
10959 vma = find_vma(mm, addr);
10960 - if (task_size - len >= addr &&
10961 - (!vma || addr + len <= vma->vm_start))
10962 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10963 return addr;
10964 }
10965
10966 @@ -191,6 +206,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10967 info.high_limit = mm->mmap_base;
10968 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10969 info.align_offset = pgoff << PAGE_SHIFT;
10970 + info.threadstack_offset = offset;
10971 addr = vm_unmapped_area(&info);
10972
10973 /*
10974 @@ -203,6 +219,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10975 VM_BUG_ON(addr != -ENOMEM);
10976 info.flags = 0;
10977 info.low_limit = TASK_UNMAPPED_BASE;
10978 +
10979 +#ifdef CONFIG_PAX_RANDMMAP
10980 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10981 + info.low_limit += mm->delta_mmap;
10982 +#endif
10983 +
10984 info.high_limit = STACK_TOP32;
10985 addr = vm_unmapped_area(&info);
10986 }
10987 @@ -259,10 +281,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
10988 EXPORT_SYMBOL(get_fb_unmapped_area);
10989
10990 /* Essentially the same as PowerPC. */
10991 -static unsigned long mmap_rnd(void)
10992 +static unsigned long mmap_rnd(struct mm_struct *mm)
10993 {
10994 unsigned long rnd = 0UL;
10995
10996 +#ifdef CONFIG_PAX_RANDMMAP
10997 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10998 +#endif
10999 +
11000 if (current->flags & PF_RANDOMIZE) {
11001 unsigned long val = get_random_int();
11002 if (test_thread_flag(TIF_32BIT))
11003 @@ -275,7 +301,7 @@ static unsigned long mmap_rnd(void)
11004
11005 void arch_pick_mmap_layout(struct mm_struct *mm)
11006 {
11007 - unsigned long random_factor = mmap_rnd();
11008 + unsigned long random_factor = mmap_rnd(mm);
11009 unsigned long gap;
11010
11011 /*
11012 @@ -288,6 +314,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
11013 gap == RLIM_INFINITY ||
11014 sysctl_legacy_va_layout) {
11015 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
11016 +
11017 +#ifdef CONFIG_PAX_RANDMMAP
11018 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11019 + mm->mmap_base += mm->delta_mmap;
11020 +#endif
11021 +
11022 mm->get_unmapped_area = arch_get_unmapped_area;
11023 } else {
11024 /* We know it's 32-bit */
11025 @@ -299,6 +331,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
11026 gap = (task_size / 6 * 5);
11027
11028 mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
11029 +
11030 +#ifdef CONFIG_PAX_RANDMMAP
11031 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11032 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
11033 +#endif
11034 +
11035 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
11036 }
11037 }
11038 diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
11039 index bb00089..e0ea580 100644
11040 --- a/arch/sparc/kernel/syscalls.S
11041 +++ b/arch/sparc/kernel/syscalls.S
11042 @@ -62,7 +62,7 @@ sys32_rt_sigreturn:
11043 #endif
11044 .align 32
11045 1: ldx [%g6 + TI_FLAGS], %l5
11046 - andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11047 + andcc %l5, _TIF_WORK_SYSCALL, %g0
11048 be,pt %icc, rtrap
11049 nop
11050 call syscall_trace_leave
11051 @@ -194,7 +194,7 @@ linux_sparc_syscall32:
11052
11053 srl %i3, 0, %o3 ! IEU0
11054 srl %i2, 0, %o2 ! IEU0 Group
11055 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11056 + andcc %l0, _TIF_WORK_SYSCALL, %g0
11057 bne,pn %icc, linux_syscall_trace32 ! CTI
11058 mov %i0, %l5 ! IEU1
11059 5: call %l7 ! CTI Group brk forced
11060 @@ -218,7 +218,7 @@ linux_sparc_syscall:
11061
11062 mov %i3, %o3 ! IEU1
11063 mov %i4, %o4 ! IEU0 Group
11064 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11065 + andcc %l0, _TIF_WORK_SYSCALL, %g0
11066 bne,pn %icc, linux_syscall_trace ! CTI Group
11067 mov %i0, %l5 ! IEU0
11068 2: call %l7 ! CTI Group brk forced
11069 @@ -233,7 +233,7 @@ ret_sys_call:
11070
11071 cmp %o0, -ERESTART_RESTARTBLOCK
11072 bgeu,pn %xcc, 1f
11073 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11074 + andcc %l0, _TIF_WORK_SYSCALL, %g0
11075 ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
11076
11077 2:
11078 diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
11079 index 4f21df7..0a374da 100644
11080 --- a/arch/sparc/kernel/traps_32.c
11081 +++ b/arch/sparc/kernel/traps_32.c
11082 @@ -44,6 +44,8 @@ static void instruction_dump(unsigned long *pc)
11083 #define __SAVE __asm__ __volatile__("save %sp, -0x40, %sp\n\t")
11084 #define __RESTORE __asm__ __volatile__("restore %g0, %g0, %g0\n\t")
11085
11086 +extern void gr_handle_kernel_exploit(void);
11087 +
11088 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11089 {
11090 static int die_counter;
11091 @@ -76,15 +78,17 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11092 count++ < 30 &&
11093 (((unsigned long) rw) >= PAGE_OFFSET) &&
11094 !(((unsigned long) rw) & 0x7)) {
11095 - printk("Caller[%08lx]: %pS\n", rw->ins[7],
11096 + printk("Caller[%08lx]: %pA\n", rw->ins[7],
11097 (void *) rw->ins[7]);
11098 rw = (struct reg_window32 *)rw->ins[6];
11099 }
11100 }
11101 printk("Instruction DUMP:");
11102 instruction_dump ((unsigned long *) regs->pc);
11103 - if(regs->psr & PSR_PS)
11104 + if(regs->psr & PSR_PS) {
11105 + gr_handle_kernel_exploit();
11106 do_exit(SIGKILL);
11107 + }
11108 do_exit(SIGSEGV);
11109 }
11110
11111 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
11112 index d21cd62..00a4a17 100644
11113 --- a/arch/sparc/kernel/traps_64.c
11114 +++ b/arch/sparc/kernel/traps_64.c
11115 @@ -79,7 +79,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
11116 i + 1,
11117 p->trapstack[i].tstate, p->trapstack[i].tpc,
11118 p->trapstack[i].tnpc, p->trapstack[i].tt);
11119 - printk("TRAPLOG: TPC<%pS>\n", (void *) p->trapstack[i].tpc);
11120 + printk("TRAPLOG: TPC<%pA>\n", (void *) p->trapstack[i].tpc);
11121 }
11122 }
11123
11124 @@ -99,6 +99,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
11125
11126 lvl -= 0x100;
11127 if (regs->tstate & TSTATE_PRIV) {
11128 +
11129 +#ifdef CONFIG_PAX_REFCOUNT
11130 + if (lvl == 6)
11131 + pax_report_refcount_overflow(regs);
11132 +#endif
11133 +
11134 sprintf(buffer, "Kernel bad sw trap %lx", lvl);
11135 die_if_kernel(buffer, regs);
11136 }
11137 @@ -117,11 +123,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
11138 void bad_trap_tl1(struct pt_regs *regs, long lvl)
11139 {
11140 char buffer[32];
11141 -
11142 +
11143 if (notify_die(DIE_TRAP_TL1, "bad trap tl1", regs,
11144 0, lvl, SIGTRAP) == NOTIFY_STOP)
11145 return;
11146
11147 +#ifdef CONFIG_PAX_REFCOUNT
11148 + if (lvl == 6)
11149 + pax_report_refcount_overflow(regs);
11150 +#endif
11151 +
11152 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
11153
11154 sprintf (buffer, "Bad trap %lx at tl>0", lvl);
11155 @@ -1151,7 +1162,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
11156 regs->tpc, regs->tnpc, regs->u_regs[UREG_I7], regs->tstate);
11157 printk("%s" "ERROR(%d): ",
11158 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id());
11159 - printk("TPC<%pS>\n", (void *) regs->tpc);
11160 + printk("TPC<%pA>\n", (void *) regs->tpc);
11161 printk("%s" "ERROR(%d): M_SYND(%lx), E_SYND(%lx)%s%s\n",
11162 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
11163 (afsr & CHAFSR_M_SYNDROME) >> CHAFSR_M_SYNDROME_SHIFT,
11164 @@ -1758,7 +1769,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
11165 smp_processor_id(),
11166 (type & 0x1) ? 'I' : 'D',
11167 regs->tpc);
11168 - printk(KERN_EMERG "TPC<%pS>\n", (void *) regs->tpc);
11169 + printk(KERN_EMERG "TPC<%pA>\n", (void *) regs->tpc);
11170 panic("Irrecoverable Cheetah+ parity error.");
11171 }
11172
11173 @@ -1766,7 +1777,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
11174 smp_processor_id(),
11175 (type & 0x1) ? 'I' : 'D',
11176 regs->tpc);
11177 - printk(KERN_WARNING "TPC<%pS>\n", (void *) regs->tpc);
11178 + printk(KERN_WARNING "TPC<%pA>\n", (void *) regs->tpc);
11179 }
11180
11181 struct sun4v_error_entry {
11182 @@ -1839,8 +1850,8 @@ struct sun4v_error_entry {
11183 /*0x38*/u64 reserved_5;
11184 };
11185
11186 -static atomic_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
11187 -static atomic_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
11188 +static atomic_unchecked_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
11189 +static atomic_unchecked_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
11190
11191 static const char *sun4v_err_type_to_str(u8 type)
11192 {
11193 @@ -1932,7 +1943,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
11194 }
11195
11196 static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
11197 - int cpu, const char *pfx, atomic_t *ocnt)
11198 + int cpu, const char *pfx, atomic_unchecked_t *ocnt)
11199 {
11200 u64 *raw_ptr = (u64 *) ent;
11201 u32 attrs;
11202 @@ -1990,8 +2001,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
11203
11204 show_regs(regs);
11205
11206 - if ((cnt = atomic_read(ocnt)) != 0) {
11207 - atomic_set(ocnt, 0);
11208 + if ((cnt = atomic_read_unchecked(ocnt)) != 0) {
11209 + atomic_set_unchecked(ocnt, 0);
11210 wmb();
11211 printk("%s: Queue overflowed %d times.\n",
11212 pfx, cnt);
11213 @@ -2048,7 +2059,7 @@ out:
11214 */
11215 void sun4v_resum_overflow(struct pt_regs *regs)
11216 {
11217 - atomic_inc(&sun4v_resum_oflow_cnt);
11218 + atomic_inc_unchecked(&sun4v_resum_oflow_cnt);
11219 }
11220
11221 /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
11222 @@ -2101,7 +2112,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
11223 /* XXX Actually even this can make not that much sense. Perhaps
11224 * XXX we should just pull the plug and panic directly from here?
11225 */
11226 - atomic_inc(&sun4v_nonresum_oflow_cnt);
11227 + atomic_inc_unchecked(&sun4v_nonresum_oflow_cnt);
11228 }
11229
11230 static void sun4v_tlb_error(struct pt_regs *regs)
11231 @@ -2120,9 +2131,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
11232
11233 printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
11234 regs->tpc, tl);
11235 - printk(KERN_EMERG "SUN4V-ITLB: TPC<%pS>\n", (void *) regs->tpc);
11236 + printk(KERN_EMERG "SUN4V-ITLB: TPC<%pA>\n", (void *) regs->tpc);
11237 printk(KERN_EMERG "SUN4V-ITLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
11238 - printk(KERN_EMERG "SUN4V-ITLB: O7<%pS>\n",
11239 + printk(KERN_EMERG "SUN4V-ITLB: O7<%pA>\n",
11240 (void *) regs->u_regs[UREG_I7]);
11241 printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
11242 "pte[%lx] error[%lx]\n",
11243 @@ -2143,9 +2154,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
11244
11245 printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
11246 regs->tpc, tl);
11247 - printk(KERN_EMERG "SUN4V-DTLB: TPC<%pS>\n", (void *) regs->tpc);
11248 + printk(KERN_EMERG "SUN4V-DTLB: TPC<%pA>\n", (void *) regs->tpc);
11249 printk(KERN_EMERG "SUN4V-DTLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
11250 - printk(KERN_EMERG "SUN4V-DTLB: O7<%pS>\n",
11251 + printk(KERN_EMERG "SUN4V-DTLB: O7<%pA>\n",
11252 (void *) regs->u_regs[UREG_I7]);
11253 printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
11254 "pte[%lx] error[%lx]\n",
11255 @@ -2362,13 +2373,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
11256 fp = (unsigned long)sf->fp + STACK_BIAS;
11257 }
11258
11259 - printk(" [%016lx] %pS\n", pc, (void *) pc);
11260 + printk(" [%016lx] %pA\n", pc, (void *) pc);
11261 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
11262 if ((pc + 8UL) == (unsigned long) &return_to_handler) {
11263 int index = tsk->curr_ret_stack;
11264 if (tsk->ret_stack && index >= graph) {
11265 pc = tsk->ret_stack[index - graph].ret;
11266 - printk(" [%016lx] %pS\n", pc, (void *) pc);
11267 + printk(" [%016lx] %pA\n", pc, (void *) pc);
11268 graph++;
11269 }
11270 }
11271 @@ -2386,6 +2397,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
11272 return (struct reg_window *) (fp + STACK_BIAS);
11273 }
11274
11275 +extern void gr_handle_kernel_exploit(void);
11276 +
11277 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11278 {
11279 static int die_counter;
11280 @@ -2414,7 +2427,7 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11281 while (rw &&
11282 count++ < 30 &&
11283 kstack_valid(tp, (unsigned long) rw)) {
11284 - printk("Caller[%016lx]: %pS\n", rw->ins[7],
11285 + printk("Caller[%016lx]: %pA\n", rw->ins[7],
11286 (void *) rw->ins[7]);
11287
11288 rw = kernel_stack_up(rw);
11289 @@ -2429,8 +2442,10 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11290 }
11291 if (panic_on_oops)
11292 panic("Fatal exception");
11293 - if (regs->tstate & TSTATE_PRIV)
11294 + if (regs->tstate & TSTATE_PRIV) {
11295 + gr_handle_kernel_exploit();
11296 do_exit(SIGKILL);
11297 + }
11298 do_exit(SIGSEGV);
11299 }
11300 EXPORT_SYMBOL(die_if_kernel);
11301 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
11302 index 62098a8..547ab2c 100644
11303 --- a/arch/sparc/kernel/unaligned_64.c
11304 +++ b/arch/sparc/kernel/unaligned_64.c
11305 @@ -297,7 +297,7 @@ static void log_unaligned(struct pt_regs *regs)
11306 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
11307
11308 if (__ratelimit(&ratelimit)) {
11309 - printk("Kernel unaligned access at TPC[%lx] %pS\n",
11310 + printk("Kernel unaligned access at TPC[%lx] %pA\n",
11311 regs->tpc, (void *) regs->tpc);
11312 }
11313 }
11314 diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
11315 index 3269b02..64f5231 100644
11316 --- a/arch/sparc/lib/Makefile
11317 +++ b/arch/sparc/lib/Makefile
11318 @@ -2,7 +2,7 @@
11319 #
11320
11321 asflags-y := -ansi -DST_DIV0=0x02
11322 -ccflags-y := -Werror
11323 +#ccflags-y := -Werror
11324
11325 lib-$(CONFIG_SPARC32) += ashrdi3.o
11326 lib-$(CONFIG_SPARC32) += memcpy.o memset.o
11327 diff --git a/arch/sparc/lib/atomic_64.S b/arch/sparc/lib/atomic_64.S
11328 index 05dac43..76f8ed4 100644
11329 --- a/arch/sparc/lib/atomic_64.S
11330 +++ b/arch/sparc/lib/atomic_64.S
11331 @@ -15,11 +15,22 @@
11332 * a value and does the barriers.
11333 */
11334
11335 -#define ATOMIC_OP(op) \
11336 -ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11337 +#ifdef CONFIG_PAX_REFCOUNT
11338 +#define __REFCOUNT_OP(op) op##cc
11339 +#define __OVERFLOW_IOP tvs %icc, 6;
11340 +#define __OVERFLOW_XOP tvs %xcc, 6;
11341 +#else
11342 +#define __REFCOUNT_OP(op) op
11343 +#define __OVERFLOW_IOP
11344 +#define __OVERFLOW_XOP
11345 +#endif
11346 +
11347 +#define __ATOMIC_OP(op, suffix, asm_op, post_op) \
11348 +ENTRY(atomic_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
11349 BACKOFF_SETUP(%o2); \
11350 1: lduw [%o1], %g1; \
11351 - op %g1, %o0, %g7; \
11352 + asm_op %g1, %o0, %g7; \
11353 + post_op \
11354 cas [%o1], %g1, %g7; \
11355 cmp %g1, %g7; \
11356 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
11357 @@ -29,11 +40,15 @@ ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11358 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11359 ENDPROC(atomic_##op); \
11360
11361 -#define ATOMIC_OP_RETURN(op) \
11362 -ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11363 +#define ATOMIC_OP(op) __ATOMIC_OP(op, , op, ) \
11364 + __ATOMIC_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
11365 +
11366 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op) \
11367 +ENTRY(atomic_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
11368 BACKOFF_SETUP(%o2); \
11369 1: lduw [%o1], %g1; \
11370 - op %g1, %o0, %g7; \
11371 + asm_op %g1, %o0, %g7; \
11372 + post_op \
11373 cas [%o1], %g1, %g7; \
11374 cmp %g1, %g7; \
11375 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
11376 @@ -43,6 +58,9 @@ ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11377 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11378 ENDPROC(atomic_##op##_return);
11379
11380 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, , op, ) \
11381 + __ATOMIC_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
11382 +
11383 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11384
11385 ATOMIC_OPS(add)
11386 @@ -50,13 +68,16 @@ ATOMIC_OPS(sub)
11387
11388 #undef ATOMIC_OPS
11389 #undef ATOMIC_OP_RETURN
11390 +#undef __ATOMIC_OP_RETURN
11391 #undef ATOMIC_OP
11392 +#undef __ATOMIC_OP
11393
11394 -#define ATOMIC64_OP(op) \
11395 -ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11396 +#define __ATOMIC64_OP(op, suffix, asm_op, post_op) \
11397 +ENTRY(atomic64_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
11398 BACKOFF_SETUP(%o2); \
11399 1: ldx [%o1], %g1; \
11400 - op %g1, %o0, %g7; \
11401 + asm_op %g1, %o0, %g7; \
11402 + post_op \
11403 casx [%o1], %g1, %g7; \
11404 cmp %g1, %g7; \
11405 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
11406 @@ -66,11 +87,15 @@ ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11407 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11408 ENDPROC(atomic64_##op); \
11409
11410 -#define ATOMIC64_OP_RETURN(op) \
11411 -ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11412 +#define ATOMIC64_OP(op) __ATOMIC64_OP(op, , op, ) \
11413 + __ATOMIC64_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
11414 +
11415 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op) \
11416 +ENTRY(atomic64_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
11417 BACKOFF_SETUP(%o2); \
11418 1: ldx [%o1], %g1; \
11419 - op %g1, %o0, %g7; \
11420 + asm_op %g1, %o0, %g7; \
11421 + post_op \
11422 casx [%o1], %g1, %g7; \
11423 cmp %g1, %g7; \
11424 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
11425 @@ -80,6 +105,9 @@ ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11426 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11427 ENDPROC(atomic64_##op##_return);
11428
11429 +#define ATOMIC64_OP_RETURN(op) __ATOMIC64_OP_RETURN(op, , op, ) \
11430 +i __ATOMIC64_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
11431 +
11432 #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op)
11433
11434 ATOMIC64_OPS(add)
11435 @@ -87,7 +115,12 @@ ATOMIC64_OPS(sub)
11436
11437 #undef ATOMIC64_OPS
11438 #undef ATOMIC64_OP_RETURN
11439 +#undef __ATOMIC64_OP_RETURN
11440 #undef ATOMIC64_OP
11441 +#undef __ATOMIC64_OP
11442 +#undef __OVERFLOW_XOP
11443 +#undef __OVERFLOW_IOP
11444 +#undef __REFCOUNT_OP
11445
11446 ENTRY(atomic64_dec_if_positive) /* %o0 = atomic_ptr */
11447 BACKOFF_SETUP(%o2)
11448 diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
11449 index 8069ce1..c2e23c4 100644
11450 --- a/arch/sparc/lib/ksyms.c
11451 +++ b/arch/sparc/lib/ksyms.c
11452 @@ -101,7 +101,9 @@ EXPORT_SYMBOL(__clear_user);
11453 /* Atomic counter implementation. */
11454 #define ATOMIC_OP(op) \
11455 EXPORT_SYMBOL(atomic_##op); \
11456 -EXPORT_SYMBOL(atomic64_##op);
11457 +EXPORT_SYMBOL(atomic_##op##_unchecked); \
11458 +EXPORT_SYMBOL(atomic64_##op); \
11459 +EXPORT_SYMBOL(atomic64_##op##_unchecked);
11460
11461 #define ATOMIC_OP_RETURN(op) \
11462 EXPORT_SYMBOL(atomic_##op##_return); \
11463 @@ -110,6 +112,8 @@ EXPORT_SYMBOL(atomic64_##op##_return);
11464 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11465
11466 ATOMIC_OPS(add)
11467 +EXPORT_SYMBOL(atomic_add_ret_unchecked);
11468 +EXPORT_SYMBOL(atomic64_add_ret_unchecked);
11469 ATOMIC_OPS(sub)
11470
11471 #undef ATOMIC_OPS
11472 diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile
11473 index 30c3ecc..736f015 100644
11474 --- a/arch/sparc/mm/Makefile
11475 +++ b/arch/sparc/mm/Makefile
11476 @@ -2,7 +2,7 @@
11477 #
11478
11479 asflags-y := -ansi
11480 -ccflags-y := -Werror
11481 +#ccflags-y := -Werror
11482
11483 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o gup.o
11484 obj-y += fault_$(BITS).o
11485 diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
11486 index c399e7b..2387414 100644
11487 --- a/arch/sparc/mm/fault_32.c
11488 +++ b/arch/sparc/mm/fault_32.c
11489 @@ -22,6 +22,9 @@
11490 #include <linux/interrupt.h>
11491 #include <linux/kdebug.h>
11492 #include <linux/uaccess.h>
11493 +#include <linux/slab.h>
11494 +#include <linux/pagemap.h>
11495 +#include <linux/compiler.h>
11496
11497 #include <asm/page.h>
11498 #include <asm/pgtable.h>
11499 @@ -156,6 +159,277 @@ static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
11500 return safe_compute_effective_address(regs, insn);
11501 }
11502
11503 +#ifdef CONFIG_PAX_PAGEEXEC
11504 +#ifdef CONFIG_PAX_DLRESOLVE
11505 +static void pax_emuplt_close(struct vm_area_struct *vma)
11506 +{
11507 + vma->vm_mm->call_dl_resolve = 0UL;
11508 +}
11509 +
11510 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11511 +{
11512 + unsigned int *kaddr;
11513 +
11514 + vmf->page = alloc_page(GFP_HIGHUSER);
11515 + if (!vmf->page)
11516 + return VM_FAULT_OOM;
11517 +
11518 + kaddr = kmap(vmf->page);
11519 + memset(kaddr, 0, PAGE_SIZE);
11520 + kaddr[0] = 0x9DE3BFA8U; /* save */
11521 + flush_dcache_page(vmf->page);
11522 + kunmap(vmf->page);
11523 + return VM_FAULT_MAJOR;
11524 +}
11525 +
11526 +static const struct vm_operations_struct pax_vm_ops = {
11527 + .close = pax_emuplt_close,
11528 + .fault = pax_emuplt_fault
11529 +};
11530 +
11531 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11532 +{
11533 + int ret;
11534 +
11535 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11536 + vma->vm_mm = current->mm;
11537 + vma->vm_start = addr;
11538 + vma->vm_end = addr + PAGE_SIZE;
11539 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11540 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11541 + vma->vm_ops = &pax_vm_ops;
11542 +
11543 + ret = insert_vm_struct(current->mm, vma);
11544 + if (ret)
11545 + return ret;
11546 +
11547 + ++current->mm->total_vm;
11548 + return 0;
11549 +}
11550 +#endif
11551 +
11552 +/*
11553 + * PaX: decide what to do with offenders (regs->pc = fault address)
11554 + *
11555 + * returns 1 when task should be killed
11556 + * 2 when patched PLT trampoline was detected
11557 + * 3 when unpatched PLT trampoline was detected
11558 + */
11559 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11560 +{
11561 +
11562 +#ifdef CONFIG_PAX_EMUPLT
11563 + int err;
11564 +
11565 + do { /* PaX: patched PLT emulation #1 */
11566 + unsigned int sethi1, sethi2, jmpl;
11567 +
11568 + err = get_user(sethi1, (unsigned int *)regs->pc);
11569 + err |= get_user(sethi2, (unsigned int *)(regs->pc+4));
11570 + err |= get_user(jmpl, (unsigned int *)(regs->pc+8));
11571 +
11572 + if (err)
11573 + break;
11574 +
11575 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11576 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11577 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11578 + {
11579 + unsigned int addr;
11580 +
11581 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11582 + addr = regs->u_regs[UREG_G1];
11583 + addr += (((jmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11584 + regs->pc = addr;
11585 + regs->npc = addr+4;
11586 + return 2;
11587 + }
11588 + } while (0);
11589 +
11590 + do { /* PaX: patched PLT emulation #2 */
11591 + unsigned int ba;
11592 +
11593 + err = get_user(ba, (unsigned int *)regs->pc);
11594 +
11595 + if (err)
11596 + break;
11597 +
11598 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11599 + unsigned int addr;
11600 +
11601 + if ((ba & 0xFFC00000U) == 0x30800000U)
11602 + addr = regs->pc + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11603 + else
11604 + addr = regs->pc + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11605 + regs->pc = addr;
11606 + regs->npc = addr+4;
11607 + return 2;
11608 + }
11609 + } while (0);
11610 +
11611 + do { /* PaX: patched PLT emulation #3 */
11612 + unsigned int sethi, bajmpl, nop;
11613 +
11614 + err = get_user(sethi, (unsigned int *)regs->pc);
11615 + err |= get_user(bajmpl, (unsigned int *)(regs->pc+4));
11616 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11617 +
11618 + if (err)
11619 + break;
11620 +
11621 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11622 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11623 + nop == 0x01000000U)
11624 + {
11625 + unsigned int addr;
11626 +
11627 + addr = (sethi & 0x003FFFFFU) << 10;
11628 + regs->u_regs[UREG_G1] = addr;
11629 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11630 + addr += (((bajmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11631 + else
11632 + addr = regs->pc + ((((bajmpl | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11633 + regs->pc = addr;
11634 + regs->npc = addr+4;
11635 + return 2;
11636 + }
11637 + } while (0);
11638 +
11639 + do { /* PaX: unpatched PLT emulation step 1 */
11640 + unsigned int sethi, ba, nop;
11641 +
11642 + err = get_user(sethi, (unsigned int *)regs->pc);
11643 + err |= get_user(ba, (unsigned int *)(regs->pc+4));
11644 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11645 +
11646 + if (err)
11647 + break;
11648 +
11649 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11650 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
11651 + nop == 0x01000000U)
11652 + {
11653 + unsigned int addr, save, call;
11654 +
11655 + if ((ba & 0xFFC00000U) == 0x30800000U)
11656 + addr = regs->pc + 4 + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11657 + else
11658 + addr = regs->pc + 4 + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11659 +
11660 + err = get_user(save, (unsigned int *)addr);
11661 + err |= get_user(call, (unsigned int *)(addr+4));
11662 + err |= get_user(nop, (unsigned int *)(addr+8));
11663 + if (err)
11664 + break;
11665 +
11666 +#ifdef CONFIG_PAX_DLRESOLVE
11667 + if (save == 0x9DE3BFA8U &&
11668 + (call & 0xC0000000U) == 0x40000000U &&
11669 + nop == 0x01000000U)
11670 + {
11671 + struct vm_area_struct *vma;
11672 + unsigned long call_dl_resolve;
11673 +
11674 + down_read(&current->mm->mmap_sem);
11675 + call_dl_resolve = current->mm->call_dl_resolve;
11676 + up_read(&current->mm->mmap_sem);
11677 + if (likely(call_dl_resolve))
11678 + goto emulate;
11679 +
11680 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
11681 +
11682 + down_write(&current->mm->mmap_sem);
11683 + if (current->mm->call_dl_resolve) {
11684 + call_dl_resolve = current->mm->call_dl_resolve;
11685 + up_write(&current->mm->mmap_sem);
11686 + if (vma)
11687 + kmem_cache_free(vm_area_cachep, vma);
11688 + goto emulate;
11689 + }
11690 +
11691 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
11692 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
11693 + up_write(&current->mm->mmap_sem);
11694 + if (vma)
11695 + kmem_cache_free(vm_area_cachep, vma);
11696 + return 1;
11697 + }
11698 +
11699 + if (pax_insert_vma(vma, call_dl_resolve)) {
11700 + up_write(&current->mm->mmap_sem);
11701 + kmem_cache_free(vm_area_cachep, vma);
11702 + return 1;
11703 + }
11704 +
11705 + current->mm->call_dl_resolve = call_dl_resolve;
11706 + up_write(&current->mm->mmap_sem);
11707 +
11708 +emulate:
11709 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11710 + regs->pc = call_dl_resolve;
11711 + regs->npc = addr+4;
11712 + return 3;
11713 + }
11714 +#endif
11715 +
11716 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
11717 + if ((save & 0xFFC00000U) == 0x05000000U &&
11718 + (call & 0xFFFFE000U) == 0x85C0A000U &&
11719 + nop == 0x01000000U)
11720 + {
11721 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11722 + regs->u_regs[UREG_G2] = addr + 4;
11723 + addr = (save & 0x003FFFFFU) << 10;
11724 + addr += (((call | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11725 + regs->pc = addr;
11726 + regs->npc = addr+4;
11727 + return 3;
11728 + }
11729 + }
11730 + } while (0);
11731 +
11732 + do { /* PaX: unpatched PLT emulation step 2 */
11733 + unsigned int save, call, nop;
11734 +
11735 + err = get_user(save, (unsigned int *)(regs->pc-4));
11736 + err |= get_user(call, (unsigned int *)regs->pc);
11737 + err |= get_user(nop, (unsigned int *)(regs->pc+4));
11738 + if (err)
11739 + break;
11740 +
11741 + if (save == 0x9DE3BFA8U &&
11742 + (call & 0xC0000000U) == 0x40000000U &&
11743 + nop == 0x01000000U)
11744 + {
11745 + unsigned int dl_resolve = regs->pc + ((((call | 0xC0000000U) ^ 0x20000000U) + 0x20000000U) << 2);
11746 +
11747 + regs->u_regs[UREG_RETPC] = regs->pc;
11748 + regs->pc = dl_resolve;
11749 + regs->npc = dl_resolve+4;
11750 + return 3;
11751 + }
11752 + } while (0);
11753 +#endif
11754 +
11755 + return 1;
11756 +}
11757 +
11758 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
11759 +{
11760 + unsigned long i;
11761 +
11762 + printk(KERN_ERR "PAX: bytes at PC: ");
11763 + for (i = 0; i < 8; i++) {
11764 + unsigned int c;
11765 + if (get_user(c, (unsigned int *)pc+i))
11766 + printk(KERN_CONT "???????? ");
11767 + else
11768 + printk(KERN_CONT "%08x ", c);
11769 + }
11770 + printk("\n");
11771 +}
11772 +#endif
11773 +
11774 static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
11775 int text_fault)
11776 {
11777 @@ -226,6 +500,24 @@ good_area:
11778 if (!(vma->vm_flags & VM_WRITE))
11779 goto bad_area;
11780 } else {
11781 +
11782 +#ifdef CONFIG_PAX_PAGEEXEC
11783 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && text_fault && !(vma->vm_flags & VM_EXEC)) {
11784 + up_read(&mm->mmap_sem);
11785 + switch (pax_handle_fetch_fault(regs)) {
11786 +
11787 +#ifdef CONFIG_PAX_EMUPLT
11788 + case 2:
11789 + case 3:
11790 + return;
11791 +#endif
11792 +
11793 + }
11794 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->u_regs[UREG_FP]);
11795 + do_group_exit(SIGKILL);
11796 + }
11797 +#endif
11798 +
11799 /* Allow reads even for write-only mappings */
11800 if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
11801 goto bad_area;
11802 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
11803 index dbabe57..d34d315 100644
11804 --- a/arch/sparc/mm/fault_64.c
11805 +++ b/arch/sparc/mm/fault_64.c
11806 @@ -23,6 +23,9 @@
11807 #include <linux/percpu.h>
11808 #include <linux/context_tracking.h>
11809 #include <linux/uaccess.h>
11810 +#include <linux/slab.h>
11811 +#include <linux/pagemap.h>
11812 +#include <linux/compiler.h>
11813
11814 #include <asm/page.h>
11815 #include <asm/pgtable.h>
11816 @@ -76,7 +79,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
11817 printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
11818 regs->tpc);
11819 printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
11820 - printk("OOPS: RPC <%pS>\n", (void *) regs->u_regs[15]);
11821 + printk("OOPS: RPC <%pA>\n", (void *) regs->u_regs[15]);
11822 printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
11823 dump_stack();
11824 unhandled_fault(regs->tpc, current, regs);
11825 @@ -279,6 +282,466 @@ static void noinline __kprobes bogus_32bit_fault_tpc(struct pt_regs *regs)
11826 show_regs(regs);
11827 }
11828
11829 +#ifdef CONFIG_PAX_PAGEEXEC
11830 +#ifdef CONFIG_PAX_DLRESOLVE
11831 +static void pax_emuplt_close(struct vm_area_struct *vma)
11832 +{
11833 + vma->vm_mm->call_dl_resolve = 0UL;
11834 +}
11835 +
11836 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11837 +{
11838 + unsigned int *kaddr;
11839 +
11840 + vmf->page = alloc_page(GFP_HIGHUSER);
11841 + if (!vmf->page)
11842 + return VM_FAULT_OOM;
11843 +
11844 + kaddr = kmap(vmf->page);
11845 + memset(kaddr, 0, PAGE_SIZE);
11846 + kaddr[0] = 0x9DE3BFA8U; /* save */
11847 + flush_dcache_page(vmf->page);
11848 + kunmap(vmf->page);
11849 + return VM_FAULT_MAJOR;
11850 +}
11851 +
11852 +static const struct vm_operations_struct pax_vm_ops = {
11853 + .close = pax_emuplt_close,
11854 + .fault = pax_emuplt_fault
11855 +};
11856 +
11857 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11858 +{
11859 + int ret;
11860 +
11861 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11862 + vma->vm_mm = current->mm;
11863 + vma->vm_start = addr;
11864 + vma->vm_end = addr + PAGE_SIZE;
11865 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11866 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11867 + vma->vm_ops = &pax_vm_ops;
11868 +
11869 + ret = insert_vm_struct(current->mm, vma);
11870 + if (ret)
11871 + return ret;
11872 +
11873 + ++current->mm->total_vm;
11874 + return 0;
11875 +}
11876 +#endif
11877 +
11878 +/*
11879 + * PaX: decide what to do with offenders (regs->tpc = fault address)
11880 + *
11881 + * returns 1 when task should be killed
11882 + * 2 when patched PLT trampoline was detected
11883 + * 3 when unpatched PLT trampoline was detected
11884 + */
11885 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11886 +{
11887 +
11888 +#ifdef CONFIG_PAX_EMUPLT
11889 + int err;
11890 +
11891 + do { /* PaX: patched PLT emulation #1 */
11892 + unsigned int sethi1, sethi2, jmpl;
11893 +
11894 + err = get_user(sethi1, (unsigned int *)regs->tpc);
11895 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+4));
11896 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+8));
11897 +
11898 + if (err)
11899 + break;
11900 +
11901 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11902 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11903 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11904 + {
11905 + unsigned long addr;
11906 +
11907 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11908 + addr = regs->u_regs[UREG_G1];
11909 + addr += (((jmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11910 +
11911 + if (test_thread_flag(TIF_32BIT))
11912 + addr &= 0xFFFFFFFFUL;
11913 +
11914 + regs->tpc = addr;
11915 + regs->tnpc = addr+4;
11916 + return 2;
11917 + }
11918 + } while (0);
11919 +
11920 + do { /* PaX: patched PLT emulation #2 */
11921 + unsigned int ba;
11922 +
11923 + err = get_user(ba, (unsigned int *)regs->tpc);
11924 +
11925 + if (err)
11926 + break;
11927 +
11928 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11929 + unsigned long addr;
11930 +
11931 + if ((ba & 0xFFC00000U) == 0x30800000U)
11932 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
11933 + else
11934 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11935 +
11936 + if (test_thread_flag(TIF_32BIT))
11937 + addr &= 0xFFFFFFFFUL;
11938 +
11939 + regs->tpc = addr;
11940 + regs->tnpc = addr+4;
11941 + return 2;
11942 + }
11943 + } while (0);
11944 +
11945 + do { /* PaX: patched PLT emulation #3 */
11946 + unsigned int sethi, bajmpl, nop;
11947 +
11948 + err = get_user(sethi, (unsigned int *)regs->tpc);
11949 + err |= get_user(bajmpl, (unsigned int *)(regs->tpc+4));
11950 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11951 +
11952 + if (err)
11953 + break;
11954 +
11955 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11956 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11957 + nop == 0x01000000U)
11958 + {
11959 + unsigned long addr;
11960 +
11961 + addr = (sethi & 0x003FFFFFU) << 10;
11962 + regs->u_regs[UREG_G1] = addr;
11963 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11964 + addr += (((bajmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11965 + else
11966 + addr = regs->tpc + ((((bajmpl | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11967 +
11968 + if (test_thread_flag(TIF_32BIT))
11969 + addr &= 0xFFFFFFFFUL;
11970 +
11971 + regs->tpc = addr;
11972 + regs->tnpc = addr+4;
11973 + return 2;
11974 + }
11975 + } while (0);
11976 +
11977 + do { /* PaX: patched PLT emulation #4 */
11978 + unsigned int sethi, mov1, call, mov2;
11979 +
11980 + err = get_user(sethi, (unsigned int *)regs->tpc);
11981 + err |= get_user(mov1, (unsigned int *)(regs->tpc+4));
11982 + err |= get_user(call, (unsigned int *)(regs->tpc+8));
11983 + err |= get_user(mov2, (unsigned int *)(regs->tpc+12));
11984 +
11985 + if (err)
11986 + break;
11987 +
11988 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11989 + mov1 == 0x8210000FU &&
11990 + (call & 0xC0000000U) == 0x40000000U &&
11991 + mov2 == 0x9E100001U)
11992 + {
11993 + unsigned long addr;
11994 +
11995 + regs->u_regs[UREG_G1] = regs->u_regs[UREG_RETPC];
11996 + addr = regs->tpc + 4 + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 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 #5 */
12008 + unsigned int sethi, sethi1, sethi2, or1, or2, sllx, jmpl, nop;
12009 +
12010 + err = get_user(sethi, (unsigned int *)regs->tpc);
12011 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
12012 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
12013 + err |= get_user(or1, (unsigned int *)(regs->tpc+12));
12014 + err |= get_user(or2, (unsigned int *)(regs->tpc+16));
12015 + err |= get_user(sllx, (unsigned int *)(regs->tpc+20));
12016 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+24));
12017 + err |= get_user(nop, (unsigned int *)(regs->tpc+28));
12018 +
12019 + if (err)
12020 + break;
12021 +
12022 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12023 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
12024 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
12025 + (or1 & 0xFFFFE000U) == 0x82106000U &&
12026 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
12027 + sllx == 0x83287020U &&
12028 + jmpl == 0x81C04005U &&
12029 + nop == 0x01000000U)
12030 + {
12031 + unsigned long addr;
12032 +
12033 + regs->u_regs[UREG_G1] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
12034 + regs->u_regs[UREG_G1] <<= 32;
12035 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
12036 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
12037 + regs->tpc = addr;
12038 + regs->tnpc = addr+4;
12039 + return 2;
12040 + }
12041 + } while (0);
12042 +
12043 + do { /* PaX: patched PLT emulation #6 */
12044 + unsigned int sethi, sethi1, sethi2, sllx, or, jmpl, nop;
12045 +
12046 + err = get_user(sethi, (unsigned int *)regs->tpc);
12047 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
12048 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
12049 + err |= get_user(sllx, (unsigned int *)(regs->tpc+12));
12050 + err |= get_user(or, (unsigned int *)(regs->tpc+16));
12051 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+20));
12052 + err |= get_user(nop, (unsigned int *)(regs->tpc+24));
12053 +
12054 + if (err)
12055 + break;
12056 +
12057 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12058 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
12059 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
12060 + sllx == 0x83287020U &&
12061 + (or & 0xFFFFE000U) == 0x8A116000U &&
12062 + jmpl == 0x81C04005U &&
12063 + nop == 0x01000000U)
12064 + {
12065 + unsigned long addr;
12066 +
12067 + regs->u_regs[UREG_G1] = (sethi1 & 0x003FFFFFU) << 10;
12068 + regs->u_regs[UREG_G1] <<= 32;
12069 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or & 0x3FFU);
12070 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
12071 + regs->tpc = addr;
12072 + regs->tnpc = addr+4;
12073 + return 2;
12074 + }
12075 + } while (0);
12076 +
12077 + do { /* PaX: unpatched PLT emulation step 1 */
12078 + unsigned int sethi, ba, nop;
12079 +
12080 + err = get_user(sethi, (unsigned int *)regs->tpc);
12081 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
12082 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
12083 +
12084 + if (err)
12085 + break;
12086 +
12087 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12088 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
12089 + nop == 0x01000000U)
12090 + {
12091 + unsigned long addr;
12092 + unsigned int save, call;
12093 + unsigned int sethi1, sethi2, or1, or2, sllx, add, jmpl;
12094 +
12095 + if ((ba & 0xFFC00000U) == 0x30800000U)
12096 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
12097 + else
12098 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
12099 +
12100 + if (test_thread_flag(TIF_32BIT))
12101 + addr &= 0xFFFFFFFFUL;
12102 +
12103 + err = get_user(save, (unsigned int *)addr);
12104 + err |= get_user(call, (unsigned int *)(addr+4));
12105 + err |= get_user(nop, (unsigned int *)(addr+8));
12106 + if (err)
12107 + break;
12108 +
12109 +#ifdef CONFIG_PAX_DLRESOLVE
12110 + if (save == 0x9DE3BFA8U &&
12111 + (call & 0xC0000000U) == 0x40000000U &&
12112 + nop == 0x01000000U)
12113 + {
12114 + struct vm_area_struct *vma;
12115 + unsigned long call_dl_resolve;
12116 +
12117 + down_read(&current->mm->mmap_sem);
12118 + call_dl_resolve = current->mm->call_dl_resolve;
12119 + up_read(&current->mm->mmap_sem);
12120 + if (likely(call_dl_resolve))
12121 + goto emulate;
12122 +
12123 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
12124 +
12125 + down_write(&current->mm->mmap_sem);
12126 + if (current->mm->call_dl_resolve) {
12127 + call_dl_resolve = current->mm->call_dl_resolve;
12128 + up_write(&current->mm->mmap_sem);
12129 + if (vma)
12130 + kmem_cache_free(vm_area_cachep, vma);
12131 + goto emulate;
12132 + }
12133 +
12134 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
12135 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
12136 + up_write(&current->mm->mmap_sem);
12137 + if (vma)
12138 + kmem_cache_free(vm_area_cachep, vma);
12139 + return 1;
12140 + }
12141 +
12142 + if (pax_insert_vma(vma, call_dl_resolve)) {
12143 + up_write(&current->mm->mmap_sem);
12144 + kmem_cache_free(vm_area_cachep, vma);
12145 + return 1;
12146 + }
12147 +
12148 + current->mm->call_dl_resolve = call_dl_resolve;
12149 + up_write(&current->mm->mmap_sem);
12150 +
12151 +emulate:
12152 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
12153 + regs->tpc = call_dl_resolve;
12154 + regs->tnpc = addr+4;
12155 + return 3;
12156 + }
12157 +#endif
12158 +
12159 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
12160 + if ((save & 0xFFC00000U) == 0x05000000U &&
12161 + (call & 0xFFFFE000U) == 0x85C0A000U &&
12162 + nop == 0x01000000U)
12163 + {
12164 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
12165 + regs->u_regs[UREG_G2] = addr + 4;
12166 + addr = (save & 0x003FFFFFU) << 10;
12167 + addr += (((call | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
12168 +
12169 + if (test_thread_flag(TIF_32BIT))
12170 + addr &= 0xFFFFFFFFUL;
12171 +
12172 + regs->tpc = addr;
12173 + regs->tnpc = addr+4;
12174 + return 3;
12175 + }
12176 +
12177 + /* PaX: 64-bit PLT stub */
12178 + err = get_user(sethi1, (unsigned int *)addr);
12179 + err |= get_user(sethi2, (unsigned int *)(addr+4));
12180 + err |= get_user(or1, (unsigned int *)(addr+8));
12181 + err |= get_user(or2, (unsigned int *)(addr+12));
12182 + err |= get_user(sllx, (unsigned int *)(addr+16));
12183 + err |= get_user(add, (unsigned int *)(addr+20));
12184 + err |= get_user(jmpl, (unsigned int *)(addr+24));
12185 + err |= get_user(nop, (unsigned int *)(addr+28));
12186 + if (err)
12187 + break;
12188 +
12189 + if ((sethi1 & 0xFFC00000U) == 0x09000000U &&
12190 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
12191 + (or1 & 0xFFFFE000U) == 0x88112000U &&
12192 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
12193 + sllx == 0x89293020U &&
12194 + add == 0x8A010005U &&
12195 + jmpl == 0x89C14000U &&
12196 + nop == 0x01000000U)
12197 + {
12198 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
12199 + regs->u_regs[UREG_G4] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
12200 + regs->u_regs[UREG_G4] <<= 32;
12201 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
12202 + regs->u_regs[UREG_G5] += regs->u_regs[UREG_G4];
12203 + regs->u_regs[UREG_G4] = addr + 24;
12204 + addr = regs->u_regs[UREG_G5];
12205 + regs->tpc = addr;
12206 + regs->tnpc = addr+4;
12207 + return 3;
12208 + }
12209 + }
12210 + } while (0);
12211 +
12212 +#ifdef CONFIG_PAX_DLRESOLVE
12213 + do { /* PaX: unpatched PLT emulation step 2 */
12214 + unsigned int save, call, nop;
12215 +
12216 + err = get_user(save, (unsigned int *)(regs->tpc-4));
12217 + err |= get_user(call, (unsigned int *)regs->tpc);
12218 + err |= get_user(nop, (unsigned int *)(regs->tpc+4));
12219 + if (err)
12220 + break;
12221 +
12222 + if (save == 0x9DE3BFA8U &&
12223 + (call & 0xC0000000U) == 0x40000000U &&
12224 + nop == 0x01000000U)
12225 + {
12226 + unsigned long dl_resolve = regs->tpc + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
12227 +
12228 + if (test_thread_flag(TIF_32BIT))
12229 + dl_resolve &= 0xFFFFFFFFUL;
12230 +
12231 + regs->u_regs[UREG_RETPC] = regs->tpc;
12232 + regs->tpc = dl_resolve;
12233 + regs->tnpc = dl_resolve+4;
12234 + return 3;
12235 + }
12236 + } while (0);
12237 +#endif
12238 +
12239 + do { /* PaX: patched PLT emulation #7, must be AFTER the unpatched PLT emulation */
12240 + unsigned int sethi, ba, nop;
12241 +
12242 + err = get_user(sethi, (unsigned int *)regs->tpc);
12243 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
12244 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
12245 +
12246 + if (err)
12247 + break;
12248 +
12249 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12250 + (ba & 0xFFF00000U) == 0x30600000U &&
12251 + nop == 0x01000000U)
12252 + {
12253 + unsigned long addr;
12254 +
12255 + addr = (sethi & 0x003FFFFFU) << 10;
12256 + regs->u_regs[UREG_G1] = addr;
12257 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
12258 +
12259 + if (test_thread_flag(TIF_32BIT))
12260 + addr &= 0xFFFFFFFFUL;
12261 +
12262 + regs->tpc = addr;
12263 + regs->tnpc = addr+4;
12264 + return 2;
12265 + }
12266 + } while (0);
12267 +
12268 +#endif
12269 +
12270 + return 1;
12271 +}
12272 +
12273 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
12274 +{
12275 + unsigned long i;
12276 +
12277 + printk(KERN_ERR "PAX: bytes at PC: ");
12278 + for (i = 0; i < 8; i++) {
12279 + unsigned int c;
12280 + if (get_user(c, (unsigned int *)pc+i))
12281 + printk(KERN_CONT "???????? ");
12282 + else
12283 + printk(KERN_CONT "%08x ", c);
12284 + }
12285 + printk("\n");
12286 +}
12287 +#endif
12288 +
12289 asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
12290 {
12291 enum ctx_state prev_state = exception_enter();
12292 @@ -353,6 +816,29 @@ retry:
12293 if (!vma)
12294 goto bad_area;
12295
12296 +#ifdef CONFIG_PAX_PAGEEXEC
12297 + /* PaX: detect ITLB misses on non-exec pages */
12298 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && vma->vm_start <= address &&
12299 + !(vma->vm_flags & VM_EXEC) && (fault_code & FAULT_CODE_ITLB))
12300 + {
12301 + if (address != regs->tpc)
12302 + goto good_area;
12303 +
12304 + up_read(&mm->mmap_sem);
12305 + switch (pax_handle_fetch_fault(regs)) {
12306 +
12307 +#ifdef CONFIG_PAX_EMUPLT
12308 + case 2:
12309 + case 3:
12310 + return;
12311 +#endif
12312 +
12313 + }
12314 + pax_report_fault(regs, (void *)regs->tpc, (void *)(regs->u_regs[UREG_FP] + STACK_BIAS));
12315 + do_group_exit(SIGKILL);
12316 + }
12317 +#endif
12318 +
12319 /* Pure DTLB misses do not tell us whether the fault causing
12320 * load/store/atomic was a write or not, it only says that there
12321 * was no match. So in such a case we (carefully) read the
12322 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
12323 index 131eaf4..285ea31 100644
12324 --- a/arch/sparc/mm/hugetlbpage.c
12325 +++ b/arch/sparc/mm/hugetlbpage.c
12326 @@ -25,8 +25,10 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
12327 unsigned long addr,
12328 unsigned long len,
12329 unsigned long pgoff,
12330 - unsigned long flags)
12331 + unsigned long flags,
12332 + unsigned long offset)
12333 {
12334 + struct mm_struct *mm = current->mm;
12335 unsigned long task_size = TASK_SIZE;
12336 struct vm_unmapped_area_info info;
12337
12338 @@ -35,15 +37,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
12339
12340 info.flags = 0;
12341 info.length = len;
12342 - info.low_limit = TASK_UNMAPPED_BASE;
12343 + info.low_limit = mm->mmap_base;
12344 info.high_limit = min(task_size, VA_EXCLUDE_START);
12345 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
12346 info.align_offset = 0;
12347 + info.threadstack_offset = offset;
12348 addr = vm_unmapped_area(&info);
12349
12350 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
12351 VM_BUG_ON(addr != -ENOMEM);
12352 info.low_limit = VA_EXCLUDE_END;
12353 +
12354 +#ifdef CONFIG_PAX_RANDMMAP
12355 + if (mm->pax_flags & MF_PAX_RANDMMAP)
12356 + info.low_limit += mm->delta_mmap;
12357 +#endif
12358 +
12359 info.high_limit = task_size;
12360 addr = vm_unmapped_area(&info);
12361 }
12362 @@ -55,7 +64,8 @@ static unsigned long
12363 hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12364 const unsigned long len,
12365 const unsigned long pgoff,
12366 - const unsigned long flags)
12367 + const unsigned long flags,
12368 + const unsigned long offset)
12369 {
12370 struct mm_struct *mm = current->mm;
12371 unsigned long addr = addr0;
12372 @@ -70,6 +80,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12373 info.high_limit = mm->mmap_base;
12374 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
12375 info.align_offset = 0;
12376 + info.threadstack_offset = offset;
12377 addr = vm_unmapped_area(&info);
12378
12379 /*
12380 @@ -82,6 +93,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12381 VM_BUG_ON(addr != -ENOMEM);
12382 info.flags = 0;
12383 info.low_limit = TASK_UNMAPPED_BASE;
12384 +
12385 +#ifdef CONFIG_PAX_RANDMMAP
12386 + if (mm->pax_flags & MF_PAX_RANDMMAP)
12387 + info.low_limit += mm->delta_mmap;
12388 +#endif
12389 +
12390 info.high_limit = STACK_TOP32;
12391 addr = vm_unmapped_area(&info);
12392 }
12393 @@ -96,6 +113,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
12394 struct mm_struct *mm = current->mm;
12395 struct vm_area_struct *vma;
12396 unsigned long task_size = TASK_SIZE;
12397 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
12398
12399 if (test_thread_flag(TIF_32BIT))
12400 task_size = STACK_TOP32;
12401 @@ -111,19 +129,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
12402 return addr;
12403 }
12404
12405 +#ifdef CONFIG_PAX_RANDMMAP
12406 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
12407 +#endif
12408 +
12409 if (addr) {
12410 addr = ALIGN(addr, HPAGE_SIZE);
12411 vma = find_vma(mm, addr);
12412 - if (task_size - len >= addr &&
12413 - (!vma || addr + len <= vma->vm_start))
12414 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
12415 return addr;
12416 }
12417 if (mm->get_unmapped_area == arch_get_unmapped_area)
12418 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
12419 - pgoff, flags);
12420 + pgoff, flags, offset);
12421 else
12422 return hugetlb_get_unmapped_area_topdown(file, addr, len,
12423 - pgoff, flags);
12424 + pgoff, flags, offset);
12425 }
12426
12427 pte_t *huge_pte_alloc(struct mm_struct *mm,
12428 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
12429 index 4ac88b7..bac6cb2 100644
12430 --- a/arch/sparc/mm/init_64.c
12431 +++ b/arch/sparc/mm/init_64.c
12432 @@ -187,9 +187,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
12433 int num_kernel_image_mappings;
12434
12435 #ifdef CONFIG_DEBUG_DCFLUSH
12436 -atomic_t dcpage_flushes = ATOMIC_INIT(0);
12437 +atomic_unchecked_t dcpage_flushes = ATOMIC_INIT(0);
12438 #ifdef CONFIG_SMP
12439 -atomic_t dcpage_flushes_xcall = ATOMIC_INIT(0);
12440 +atomic_unchecked_t dcpage_flushes_xcall = ATOMIC_INIT(0);
12441 #endif
12442 #endif
12443
12444 @@ -197,7 +197,7 @@ inline void flush_dcache_page_impl(struct page *page)
12445 {
12446 BUG_ON(tlb_type == hypervisor);
12447 #ifdef CONFIG_DEBUG_DCFLUSH
12448 - atomic_inc(&dcpage_flushes);
12449 + atomic_inc_unchecked(&dcpage_flushes);
12450 #endif
12451
12452 #ifdef DCACHE_ALIASING_POSSIBLE
12453 @@ -469,10 +469,10 @@ void mmu_info(struct seq_file *m)
12454
12455 #ifdef CONFIG_DEBUG_DCFLUSH
12456 seq_printf(m, "DCPageFlushes\t: %d\n",
12457 - atomic_read(&dcpage_flushes));
12458 + atomic_read_unchecked(&dcpage_flushes));
12459 #ifdef CONFIG_SMP
12460 seq_printf(m, "DCPageFlushesXC\t: %d\n",
12461 - atomic_read(&dcpage_flushes_xcall));
12462 + atomic_read_unchecked(&dcpage_flushes_xcall));
12463 #endif /* CONFIG_SMP */
12464 #endif /* CONFIG_DEBUG_DCFLUSH */
12465 }
12466 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
12467 index 9def1f5..cf0cabc 100644
12468 --- a/arch/tile/Kconfig
12469 +++ b/arch/tile/Kconfig
12470 @@ -204,6 +204,7 @@ source "kernel/Kconfig.hz"
12471
12472 config KEXEC
12473 bool "kexec system call"
12474 + depends on !GRKERNSEC_KMEM
12475 ---help---
12476 kexec is a system call that implements the ability to shutdown your
12477 current kernel, and to start another kernel. It is like a reboot
12478 diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
12479 index 0496970..1a57e5f 100644
12480 --- a/arch/tile/include/asm/atomic_64.h
12481 +++ b/arch/tile/include/asm/atomic_64.h
12482 @@ -105,6 +105,16 @@ static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
12483
12484 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
12485
12486 +#define atomic64_read_unchecked(v) atomic64_read(v)
12487 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
12488 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
12489 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
12490 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
12491 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
12492 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
12493 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
12494 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
12495 +
12496 #endif /* !__ASSEMBLY__ */
12497
12498 #endif /* _ASM_TILE_ATOMIC_64_H */
12499 diff --git a/arch/tile/include/asm/cache.h b/arch/tile/include/asm/cache.h
12500 index 6160761..00cac88 100644
12501 --- a/arch/tile/include/asm/cache.h
12502 +++ b/arch/tile/include/asm/cache.h
12503 @@ -15,11 +15,12 @@
12504 #ifndef _ASM_TILE_CACHE_H
12505 #define _ASM_TILE_CACHE_H
12506
12507 +#include <linux/const.h>
12508 #include <arch/chip.h>
12509
12510 /* bytes per L1 data cache line */
12511 #define L1_CACHE_SHIFT CHIP_L1D_LOG_LINE_SIZE()
12512 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12513 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12514
12515 /* bytes per L2 cache line */
12516 #define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE()
12517 diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
12518 index 0a9c4265..bfb62d1 100644
12519 --- a/arch/tile/include/asm/uaccess.h
12520 +++ b/arch/tile/include/asm/uaccess.h
12521 @@ -429,9 +429,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
12522 const void __user *from,
12523 unsigned long n)
12524 {
12525 - int sz = __compiletime_object_size(to);
12526 + size_t sz = __compiletime_object_size(to);
12527
12528 - if (likely(sz == -1 || sz >= n))
12529 + if (likely(sz == (size_t)-1 || sz >= n))
12530 n = _copy_from_user(to, from, n);
12531 else
12532 copy_from_user_overflow();
12533 diff --git a/arch/tile/mm/hugetlbpage.c b/arch/tile/mm/hugetlbpage.c
12534 index c034dc3..cf1cc96 100644
12535 --- a/arch/tile/mm/hugetlbpage.c
12536 +++ b/arch/tile/mm/hugetlbpage.c
12537 @@ -174,6 +174,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
12538 info.high_limit = TASK_SIZE;
12539 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12540 info.align_offset = 0;
12541 + info.threadstack_offset = 0;
12542 return vm_unmapped_area(&info);
12543 }
12544
12545 @@ -191,6 +192,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
12546 info.high_limit = current->mm->mmap_base;
12547 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12548 info.align_offset = 0;
12549 + info.threadstack_offset = 0;
12550 addr = vm_unmapped_area(&info);
12551
12552 /*
12553 diff --git a/arch/um/Makefile b/arch/um/Makefile
12554 index 098ab33..fc54a33 100644
12555 --- a/arch/um/Makefile
12556 +++ b/arch/um/Makefile
12557 @@ -73,6 +73,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -I%,,$(KBUILD_CFLAGS))) \
12558 -D_FILE_OFFSET_BITS=64 -idirafter include \
12559 -D__KERNEL__ -D__UM_HOST__
12560
12561 +ifdef CONSTIFY_PLUGIN
12562 +USER_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12563 +endif
12564 +
12565 #This will adjust *FLAGS accordingly to the platform.
12566 include $(ARCH_DIR)/Makefile-os-$(OS)
12567
12568 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
12569 index 19e1bdd..3665b77 100644
12570 --- a/arch/um/include/asm/cache.h
12571 +++ b/arch/um/include/asm/cache.h
12572 @@ -1,6 +1,7 @@
12573 #ifndef __UM_CACHE_H
12574 #define __UM_CACHE_H
12575
12576 +#include <linux/const.h>
12577
12578 #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT)
12579 # define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
12580 @@ -12,6 +13,6 @@
12581 # define L1_CACHE_SHIFT 5
12582 #endif
12583
12584 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12585 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12586
12587 #endif
12588 diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h
12589 index 2e0a6b1..a64d0f5 100644
12590 --- a/arch/um/include/asm/kmap_types.h
12591 +++ b/arch/um/include/asm/kmap_types.h
12592 @@ -8,6 +8,6 @@
12593
12594 /* No more #include "asm/arch/kmap_types.h" ! */
12595
12596 -#define KM_TYPE_NR 14
12597 +#define KM_TYPE_NR 15
12598
12599 #endif
12600 diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h
12601 index 71c5d13..4c7b9f1 100644
12602 --- a/arch/um/include/asm/page.h
12603 +++ b/arch/um/include/asm/page.h
12604 @@ -14,6 +14,9 @@
12605 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
12606 #define PAGE_MASK (~(PAGE_SIZE-1))
12607
12608 +#define ktla_ktva(addr) (addr)
12609 +#define ktva_ktla(addr) (addr)
12610 +
12611 #ifndef __ASSEMBLY__
12612
12613 struct page;
12614 diff --git a/arch/um/include/asm/pgtable-3level.h b/arch/um/include/asm/pgtable-3level.h
12615 index 2b4274e..754fe06 100644
12616 --- a/arch/um/include/asm/pgtable-3level.h
12617 +++ b/arch/um/include/asm/pgtable-3level.h
12618 @@ -58,6 +58,7 @@
12619 #define pud_present(x) (pud_val(x) & _PAGE_PRESENT)
12620 #define pud_populate(mm, pud, pmd) \
12621 set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
12622 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
12623
12624 #ifdef CONFIG_64BIT
12625 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
12626 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
12627 index 68b9119..f72353c 100644
12628 --- a/arch/um/kernel/process.c
12629 +++ b/arch/um/kernel/process.c
12630 @@ -345,22 +345,6 @@ int singlestepping(void * t)
12631 return 2;
12632 }
12633
12634 -/*
12635 - * Only x86 and x86_64 have an arch_align_stack().
12636 - * All other arches have "#define arch_align_stack(x) (x)"
12637 - * in their asm/exec.h
12638 - * As this is included in UML from asm-um/system-generic.h,
12639 - * we can use it to behave as the subarch does.
12640 - */
12641 -#ifndef arch_align_stack
12642 -unsigned long arch_align_stack(unsigned long sp)
12643 -{
12644 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
12645 - sp -= get_random_int() % 8192;
12646 - return sp & ~0xf;
12647 -}
12648 -#endif
12649 -
12650 unsigned long get_wchan(struct task_struct *p)
12651 {
12652 unsigned long stack_page, sp, ip;
12653 diff --git a/arch/unicore32/include/asm/cache.h b/arch/unicore32/include/asm/cache.h
12654 index ad8f795..2c7eec6 100644
12655 --- a/arch/unicore32/include/asm/cache.h
12656 +++ b/arch/unicore32/include/asm/cache.h
12657 @@ -12,8 +12,10 @@
12658 #ifndef __UNICORE_CACHE_H__
12659 #define __UNICORE_CACHE_H__
12660
12661 -#define L1_CACHE_SHIFT (5)
12662 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12663 +#include <linux/const.h>
12664 +
12665 +#define L1_CACHE_SHIFT 5
12666 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12667
12668 /*
12669 * Memory returned by kmalloc() may be used for DMA, so we must make
12670 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
12671 index b3a1a5d..8dbc2d6 100644
12672 --- a/arch/x86/Kconfig
12673 +++ b/arch/x86/Kconfig
12674 @@ -35,13 +35,12 @@ config X86
12675 select ARCH_MIGHT_HAVE_PC_SERIO
12676 select ARCH_SUPPORTS_ATOMIC_RMW
12677 select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
12678 - select ARCH_SUPPORTS_INT128 if X86_64
12679 + select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW
12680 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
12681 select ARCH_USE_BUILTIN_BSWAP
12682 select ARCH_USE_CMPXCHG_LOCKREF if X86_64
12683 select ARCH_USE_QUEUED_RWLOCKS
12684 select ARCH_USE_QUEUED_SPINLOCKS
12685 - select ARCH_WANTS_DYNAMIC_TASK_STRUCT
12686 select ARCH_WANT_FRAME_POINTERS
12687 select ARCH_WANT_IPC_PARSE_VERSION if X86_32
12688 select ARCH_WANT_OPTIONAL_GPIOLIB
12689 @@ -85,7 +84,7 @@ config X86
12690 select HAVE_ARCH_TRACEHOOK
12691 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
12692 select HAVE_BPF_JIT if X86_64
12693 - select HAVE_CC_STACKPROTECTOR
12694 + select HAVE_CC_STACKPROTECTOR if X86_64 || !PAX_MEMORY_UDEREF
12695 select HAVE_CMPXCHG_DOUBLE
12696 select HAVE_CMPXCHG_LOCAL
12697 select HAVE_CONTEXT_TRACKING if X86_64
12698 @@ -274,7 +273,7 @@ config X86_64_SMP
12699
12700 config X86_32_LAZY_GS
12701 def_bool y
12702 - depends on X86_32 && !CC_STACKPROTECTOR
12703 + depends on X86_32 && !CC_STACKPROTECTOR && !PAX_MEMORY_UDEREF
12704
12705 config ARCH_HWEIGHT_CFLAGS
12706 string
12707 @@ -646,6 +645,7 @@ config SCHED_OMIT_FRAME_POINTER
12708
12709 menuconfig HYPERVISOR_GUEST
12710 bool "Linux guest support"
12711 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_GUEST || (GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_XEN)
12712 ---help---
12713 Say Y here to enable options for running Linux under various hyper-
12714 visors. This option enables basic hypervisor detection and platform
12715 @@ -1014,6 +1014,7 @@ config VM86
12716
12717 config X86_16BIT
12718 bool "Enable support for 16-bit segments" if EXPERT
12719 + depends on !GRKERNSEC
12720 default y
12721 ---help---
12722 This option is required by programs like Wine to run 16-bit
12723 @@ -1182,6 +1183,7 @@ choice
12724
12725 config NOHIGHMEM
12726 bool "off"
12727 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12728 ---help---
12729 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
12730 However, the address space of 32-bit x86 processors is only 4
12731 @@ -1218,6 +1220,7 @@ config NOHIGHMEM
12732
12733 config HIGHMEM4G
12734 bool "4GB"
12735 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12736 ---help---
12737 Select this if you have a 32-bit processor and between 1 and 4
12738 gigabytes of physical RAM.
12739 @@ -1270,7 +1273,7 @@ config PAGE_OFFSET
12740 hex
12741 default 0xB0000000 if VMSPLIT_3G_OPT
12742 default 0x80000000 if VMSPLIT_2G
12743 - default 0x78000000 if VMSPLIT_2G_OPT
12744 + default 0x70000000 if VMSPLIT_2G_OPT
12745 default 0x40000000 if VMSPLIT_1G
12746 default 0xC0000000
12747 depends on X86_32
12748 @@ -1290,7 +1293,6 @@ config X86_PAE
12749
12750 config ARCH_PHYS_ADDR_T_64BIT
12751 def_bool y
12752 - depends on X86_64 || X86_PAE
12753
12754 config ARCH_DMA_ADDR_T_64BIT
12755 def_bool y
12756 @@ -1724,6 +1726,7 @@ source kernel/Kconfig.hz
12757
12758 config KEXEC
12759 bool "kexec system call"
12760 + depends on !GRKERNSEC_KMEM
12761 ---help---
12762 kexec is a system call that implements the ability to shutdown your
12763 current kernel, and to start another kernel. It is like a reboot
12764 @@ -1906,7 +1909,9 @@ config X86_NEED_RELOCS
12765
12766 config PHYSICAL_ALIGN
12767 hex "Alignment value to which kernel should be aligned"
12768 - default "0x200000"
12769 + default "0x1000000"
12770 + range 0x200000 0x1000000 if PAX_KERNEXEC && X86_PAE
12771 + range 0x400000 0x1000000 if PAX_KERNEXEC && !X86_PAE
12772 range 0x2000 0x1000000 if X86_32
12773 range 0x200000 0x1000000 if X86_64
12774 ---help---
12775 @@ -1989,6 +1994,7 @@ config COMPAT_VDSO
12776 def_bool n
12777 prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
12778 depends on X86_32 || IA32_EMULATION
12779 + depends on !PAX_PAGEEXEC && !PAX_SEGMEXEC && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
12780 ---help---
12781 Certain buggy versions of glibc will crash if they are
12782 presented with a 32-bit vDSO that is not mapped at the address
12783 @@ -2053,6 +2059,22 @@ config CMDLINE_OVERRIDE
12784 This is used to work around broken boot loaders. This should
12785 be set to 'N' under normal conditions.
12786
12787 +config DEFAULT_MODIFY_LDT_SYSCALL
12788 + bool "Allow userspace to modify the LDT by default"
12789 + default y
12790 +
12791 + ---help---
12792 + Modifying the LDT (Local Descriptor Table) may be needed to run a
12793 + 16-bit or segmented code such as Dosemu or Wine. This is done via
12794 + a system call which is not needed to run portable applications,
12795 + and which can sometimes be abused to exploit some weaknesses of
12796 + the architecture, opening new vulnerabilities.
12797 +
12798 + For this reason this option allows one to enable or disable the
12799 + feature at runtime. It is recommended to say 'N' here to leave
12800 + the system protected, and to enable it at runtime only if needed
12801 + by setting the sys.kernel.modify_ldt sysctl.
12802 +
12803 source "kernel/livepatch/Kconfig"
12804
12805 endmenu
12806 diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
12807 index 6983314..54ad7e8 100644
12808 --- a/arch/x86/Kconfig.cpu
12809 +++ b/arch/x86/Kconfig.cpu
12810 @@ -319,7 +319,7 @@ config X86_PPRO_FENCE
12811
12812 config X86_F00F_BUG
12813 def_bool y
12814 - depends on M586MMX || M586TSC || M586 || M486
12815 + depends on (M586MMX || M586TSC || M586 || M486) && !PAX_KERNEXEC
12816
12817 config X86_INVD_BUG
12818 def_bool y
12819 @@ -327,7 +327,7 @@ config X86_INVD_BUG
12820
12821 config X86_ALIGNMENT_16
12822 def_bool y
12823 - depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12824 + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK8 || MK7 || MK6 || MCORE2 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12825
12826 config X86_INTEL_USERCOPY
12827 def_bool y
12828 @@ -369,7 +369,7 @@ config X86_CMPXCHG64
12829 # generates cmov.
12830 config X86_CMOV
12831 def_bool y
12832 - depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12833 + depends on (MK8 || MK7 || MCORE2 || MPSC || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12834
12835 config X86_MINIMUM_CPU_FAMILY
12836 int
12837 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
12838 index d8c0d32..28e3117 100644
12839 --- a/arch/x86/Kconfig.debug
12840 +++ b/arch/x86/Kconfig.debug
12841 @@ -69,6 +69,7 @@ config X86_PTDUMP
12842 bool "Export kernel pagetable layout to userspace via debugfs"
12843 depends on DEBUG_KERNEL
12844 select DEBUG_FS
12845 + depends on !GRKERNSEC_KMEM
12846 ---help---
12847 Say Y here if you want to show the kernel pagetable layout in a
12848 debugfs file. This information is only useful for kernel developers
12849 @@ -89,7 +90,7 @@ config EFI_PGT_DUMP
12850 config DEBUG_RODATA
12851 bool "Write protect kernel read-only data structures"
12852 default y
12853 - depends on DEBUG_KERNEL
12854 + depends on DEBUG_KERNEL && BROKEN
12855 ---help---
12856 Mark the kernel read-only data as write-protected in the pagetables,
12857 in order to catch accidental (and incorrect) writes to such const
12858 @@ -107,7 +108,7 @@ config DEBUG_RODATA_TEST
12859
12860 config DEBUG_SET_MODULE_RONX
12861 bool "Set loadable kernel module data as NX and text as RO"
12862 - depends on MODULES
12863 + depends on MODULES && BROKEN
12864 ---help---
12865 This option helps catch unintended modifications to loadable
12866 kernel module's text and read-only data. It also prevents execution
12867 @@ -359,6 +360,7 @@ config X86_DEBUG_FPU
12868 config PUNIT_ATOM_DEBUG
12869 tristate "ATOM Punit debug driver"
12870 select DEBUG_FS
12871 + depends on !GRKERNSEC_KMEM
12872 select IOSF_MBI
12873 ---help---
12874 This is a debug driver, which gets the power states
12875 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
12876 index 118e6de..e02efff 100644
12877 --- a/arch/x86/Makefile
12878 +++ b/arch/x86/Makefile
12879 @@ -65,9 +65,6 @@ ifeq ($(CONFIG_X86_32),y)
12880 # CPU-specific tuning. Anything which can be shared with UML should go here.
12881 include arch/x86/Makefile_32.cpu
12882 KBUILD_CFLAGS += $(cflags-y)
12883 -
12884 - # temporary until string.h is fixed
12885 - KBUILD_CFLAGS += -ffreestanding
12886 else
12887 BITS := 64
12888 UTS_MACHINE := x86_64
12889 @@ -116,6 +113,9 @@ else
12890 KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args)
12891 endif
12892
12893 +# temporary until string.h is fixed
12894 +KBUILD_CFLAGS += -ffreestanding
12895 +
12896 # Make sure compiler does not have buggy stack-protector support.
12897 ifdef CONFIG_CC_STACKPROTECTOR
12898 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
12899 @@ -184,6 +184,7 @@ archheaders:
12900 $(Q)$(MAKE) $(build)=arch/x86/entry/syscalls all
12901
12902 archprepare:
12903 + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
12904 ifeq ($(CONFIG_KEXEC_FILE),y)
12905 $(Q)$(MAKE) $(build)=arch/x86/purgatory arch/x86/purgatory/kexec-purgatory.c
12906 endif
12907 @@ -267,3 +268,9 @@ define archhelp
12908 echo ' FDARGS="..." arguments for the booted kernel'
12909 echo ' FDINITRD=file initrd for the booted kernel'
12910 endef
12911 +
12912 +define OLD_LD
12913 +
12914 +*** ${VERSION}.${PATCHLEVEL} PaX kernels no longer build correctly with old versions of binutils.
12915 +*** Please upgrade your binutils to 2.18 or newer
12916 +endef
12917 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
12918 index 57bbf2f..b100fce 100644
12919 --- a/arch/x86/boot/Makefile
12920 +++ b/arch/x86/boot/Makefile
12921 @@ -58,6 +58,9 @@ clean-files += cpustr.h
12922 # ---------------------------------------------------------------------------
12923
12924 KBUILD_CFLAGS := $(USERINCLUDE) $(REALMODE_CFLAGS) -D_SETUP
12925 +ifdef CONSTIFY_PLUGIN
12926 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12927 +endif
12928 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12929 GCOV_PROFILE := n
12930
12931 diff --git a/arch/x86/boot/bitops.h b/arch/x86/boot/bitops.h
12932 index 878e4b9..20537ab 100644
12933 --- a/arch/x86/boot/bitops.h
12934 +++ b/arch/x86/boot/bitops.h
12935 @@ -26,7 +26,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12936 u8 v;
12937 const u32 *p = (const u32 *)addr;
12938
12939 - asm("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12940 + asm volatile("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12941 return v;
12942 }
12943
12944 @@ -37,7 +37,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12945
12946 static inline void set_bit(int nr, void *addr)
12947 {
12948 - asm("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12949 + asm volatile("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12950 }
12951
12952 #endif /* BOOT_BITOPS_H */
12953 diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
12954 index bd49ec6..94c7f58 100644
12955 --- a/arch/x86/boot/boot.h
12956 +++ b/arch/x86/boot/boot.h
12957 @@ -84,7 +84,7 @@ static inline void io_delay(void)
12958 static inline u16 ds(void)
12959 {
12960 u16 seg;
12961 - asm("movw %%ds,%0" : "=rm" (seg));
12962 + asm volatile("movw %%ds,%0" : "=rm" (seg));
12963 return seg;
12964 }
12965
12966 diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
12967 index 0a291cd..9686efc 100644
12968 --- a/arch/x86/boot/compressed/Makefile
12969 +++ b/arch/x86/boot/compressed/Makefile
12970 @@ -30,6 +30,9 @@ KBUILD_CFLAGS += $(cflags-y)
12971 KBUILD_CFLAGS += -mno-mmx -mno-sse
12972 KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
12973 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
12974 +ifdef CONSTIFY_PLUGIN
12975 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12976 +endif
12977
12978 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12979 GCOV_PROFILE := n
12980 diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S
12981 index a53440e..c3dbf1e 100644
12982 --- a/arch/x86/boot/compressed/efi_stub_32.S
12983 +++ b/arch/x86/boot/compressed/efi_stub_32.S
12984 @@ -46,16 +46,13 @@ ENTRY(efi_call_phys)
12985 * parameter 2, ..., param n. To make things easy, we save the return
12986 * address of efi_call_phys in a global variable.
12987 */
12988 - popl %ecx
12989 - movl %ecx, saved_return_addr(%edx)
12990 - /* get the function pointer into ECX*/
12991 - popl %ecx
12992 - movl %ecx, efi_rt_function_ptr(%edx)
12993 + popl saved_return_addr(%edx)
12994 + popl efi_rt_function_ptr(%edx)
12995
12996 /*
12997 * 3. Call the physical function.
12998 */
12999 - call *%ecx
13000 + call *efi_rt_function_ptr(%edx)
13001
13002 /*
13003 * 4. Balance the stack. And because EAX contain the return value,
13004 @@ -67,15 +64,12 @@ ENTRY(efi_call_phys)
13005 1: popl %edx
13006 subl $1b, %edx
13007
13008 - movl efi_rt_function_ptr(%edx), %ecx
13009 - pushl %ecx
13010 + pushl efi_rt_function_ptr(%edx)
13011
13012 /*
13013 * 10. Push the saved return address onto the stack and return.
13014 */
13015 - movl saved_return_addr(%edx), %ecx
13016 - pushl %ecx
13017 - ret
13018 + jmpl *saved_return_addr(%edx)
13019 ENDPROC(efi_call_phys)
13020 .previous
13021
13022 diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S
13023 index 630384a..278e788 100644
13024 --- a/arch/x86/boot/compressed/efi_thunk_64.S
13025 +++ b/arch/x86/boot/compressed/efi_thunk_64.S
13026 @@ -189,8 +189,8 @@ efi_gdt64:
13027 .long 0 /* Filled out by user */
13028 .word 0
13029 .quad 0x0000000000000000 /* NULL descriptor */
13030 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
13031 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
13032 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
13033 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
13034 .quad 0x0080890000000000 /* TS descriptor */
13035 .quad 0x0000000000000000 /* TS continued */
13036 efi_gdt64_end:
13037 diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
13038 index 8ef964d..fcfb8aa 100644
13039 --- a/arch/x86/boot/compressed/head_32.S
13040 +++ b/arch/x86/boot/compressed/head_32.S
13041 @@ -141,10 +141,10 @@ preferred_addr:
13042 addl %eax, %ebx
13043 notl %eax
13044 andl %eax, %ebx
13045 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
13046 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
13047 jge 1f
13048 #endif
13049 - movl $LOAD_PHYSICAL_ADDR, %ebx
13050 + movl $____LOAD_PHYSICAL_ADDR, %ebx
13051 1:
13052
13053 /* Target address to relocate to for decompression */
13054 diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
13055 index b0c0d16..3b44ff8 100644
13056 --- a/arch/x86/boot/compressed/head_64.S
13057 +++ b/arch/x86/boot/compressed/head_64.S
13058 @@ -95,10 +95,10 @@ ENTRY(startup_32)
13059 addl %eax, %ebx
13060 notl %eax
13061 andl %eax, %ebx
13062 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
13063 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
13064 jge 1f
13065 #endif
13066 - movl $LOAD_PHYSICAL_ADDR, %ebx
13067 + movl $____LOAD_PHYSICAL_ADDR, %ebx
13068 1:
13069
13070 /* Target address to relocate to for decompression */
13071 @@ -323,10 +323,10 @@ preferred_addr:
13072 addq %rax, %rbp
13073 notq %rax
13074 andq %rax, %rbp
13075 - cmpq $LOAD_PHYSICAL_ADDR, %rbp
13076 + cmpq $____LOAD_PHYSICAL_ADDR, %rbp
13077 jge 1f
13078 #endif
13079 - movq $LOAD_PHYSICAL_ADDR, %rbp
13080 + movq $____LOAD_PHYSICAL_ADDR, %rbp
13081 1:
13082
13083 /* Target address to relocate to for decompression */
13084 @@ -435,8 +435,8 @@ gdt:
13085 .long gdt
13086 .word 0
13087 .quad 0x0000000000000000 /* NULL descriptor */
13088 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
13089 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
13090 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
13091 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
13092 .quad 0x0080890000000000 /* TS descriptor */
13093 .quad 0x0000000000000000 /* TS continued */
13094 gdt_end:
13095 diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
13096 index e28437e..6a17460 100644
13097 --- a/arch/x86/boot/compressed/misc.c
13098 +++ b/arch/x86/boot/compressed/misc.c
13099 @@ -242,7 +242,7 @@ static void handle_relocations(void *output, unsigned long output_len)
13100 * Calculate the delta between where vmlinux was linked to load
13101 * and where it was actually loaded.
13102 */
13103 - delta = min_addr - LOAD_PHYSICAL_ADDR;
13104 + delta = min_addr - ____LOAD_PHYSICAL_ADDR;
13105 if (!delta) {
13106 debug_putstr("No relocation needed... ");
13107 return;
13108 @@ -324,7 +324,7 @@ static void parse_elf(void *output)
13109 Elf32_Ehdr ehdr;
13110 Elf32_Phdr *phdrs, *phdr;
13111 #endif
13112 - void *dest;
13113 + void *dest, *prev;
13114 int i;
13115
13116 memcpy(&ehdr, output, sizeof(ehdr));
13117 @@ -351,13 +351,16 @@ static void parse_elf(void *output)
13118 case PT_LOAD:
13119 #ifdef CONFIG_RELOCATABLE
13120 dest = output;
13121 - dest += (phdr->p_paddr - LOAD_PHYSICAL_ADDR);
13122 + dest += (phdr->p_paddr - ____LOAD_PHYSICAL_ADDR);
13123 #else
13124 dest = (void *)(phdr->p_paddr);
13125 #endif
13126 memcpy(dest,
13127 output + phdr->p_offset,
13128 phdr->p_filesz);
13129 + if (i)
13130 + memset(prev, 0xff, dest - prev);
13131 + prev = dest + phdr->p_filesz;
13132 break;
13133 default: /* Ignore other PT_* */ break;
13134 }
13135 @@ -419,7 +422,7 @@ asmlinkage __visible void *decompress_kernel(void *rmode, memptr heap,
13136 error("Destination address too large");
13137 #endif
13138 #ifndef CONFIG_RELOCATABLE
13139 - if ((unsigned long)output != LOAD_PHYSICAL_ADDR)
13140 + if ((unsigned long)output != ____LOAD_PHYSICAL_ADDR)
13141 error("Wrong destination address");
13142 #endif
13143
13144 diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
13145 index 1fd7d57..0f7d096 100644
13146 --- a/arch/x86/boot/cpucheck.c
13147 +++ b/arch/x86/boot/cpucheck.c
13148 @@ -125,9 +125,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
13149 u32 ecx = MSR_K7_HWCR;
13150 u32 eax, edx;
13151
13152 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13153 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13154 eax &= ~(1 << 15);
13155 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13156 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13157
13158 get_cpuflags(); /* Make sure it really did something */
13159 err = check_cpuflags();
13160 @@ -140,9 +140,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
13161 u32 ecx = MSR_VIA_FCR;
13162 u32 eax, edx;
13163
13164 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13165 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13166 eax |= (1<<1)|(1<<7);
13167 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13168 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13169
13170 set_bit(X86_FEATURE_CX8, cpu.flags);
13171 err = check_cpuflags();
13172 @@ -153,12 +153,12 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
13173 u32 eax, edx;
13174 u32 level = 1;
13175
13176 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13177 - asm("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
13178 - asm("cpuid"
13179 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13180 + asm volatile("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
13181 + asm volatile("cpuid"
13182 : "+a" (level), "=d" (cpu.flags[0])
13183 : : "ecx", "ebx");
13184 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13185 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13186
13187 err = check_cpuflags();
13188 } else if (err == 0x01 &&
13189 diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
13190 index 16ef025..91e033b 100644
13191 --- a/arch/x86/boot/header.S
13192 +++ b/arch/x86/boot/header.S
13193 @@ -438,10 +438,14 @@ setup_data: .quad 0 # 64-bit physical pointer to
13194 # single linked list of
13195 # struct setup_data
13196
13197 -pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr
13198 +pref_address: .quad ____LOAD_PHYSICAL_ADDR # preferred load addr
13199
13200 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
13201 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
13202 +#define VO_INIT_SIZE (VO__end - VO__text - __PAGE_OFFSET - ____LOAD_PHYSICAL_ADDR)
13203 +#else
13204 #define VO_INIT_SIZE (VO__end - VO__text)
13205 +#endif
13206 #if ZO_INIT_SIZE > VO_INIT_SIZE
13207 #define INIT_SIZE ZO_INIT_SIZE
13208 #else
13209 diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
13210 index db75d07..8e6d0af 100644
13211 --- a/arch/x86/boot/memory.c
13212 +++ b/arch/x86/boot/memory.c
13213 @@ -19,7 +19,7 @@
13214
13215 static int detect_memory_e820(void)
13216 {
13217 - int count = 0;
13218 + unsigned int count = 0;
13219 struct biosregs ireg, oreg;
13220 struct e820entry *desc = boot_params.e820_map;
13221 static struct e820entry buf; /* static so it is zeroed */
13222 diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
13223 index ba3e100..6501b8f 100644
13224 --- a/arch/x86/boot/video-vesa.c
13225 +++ b/arch/x86/boot/video-vesa.c
13226 @@ -201,6 +201,7 @@ static void vesa_store_pm_info(void)
13227
13228 boot_params.screen_info.vesapm_seg = oreg.es;
13229 boot_params.screen_info.vesapm_off = oreg.di;
13230 + boot_params.screen_info.vesapm_size = oreg.cx;
13231 }
13232
13233 /*
13234 diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
13235 index 05111bb..a1ae1f0 100644
13236 --- a/arch/x86/boot/video.c
13237 +++ b/arch/x86/boot/video.c
13238 @@ -98,7 +98,7 @@ static void store_mode_params(void)
13239 static unsigned int get_entry(void)
13240 {
13241 char entry_buf[4];
13242 - int i, len = 0;
13243 + unsigned int i, len = 0;
13244 int key;
13245 unsigned int v;
13246
13247 diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S
13248 index 9105655..41779c1 100644
13249 --- a/arch/x86/crypto/aes-x86_64-asm_64.S
13250 +++ b/arch/x86/crypto/aes-x86_64-asm_64.S
13251 @@ -8,6 +8,8 @@
13252 * including this sentence is retained in full.
13253 */
13254
13255 +#include <asm/alternative-asm.h>
13256 +
13257 .extern crypto_ft_tab
13258 .extern crypto_it_tab
13259 .extern crypto_fl_tab
13260 @@ -70,6 +72,8 @@
13261 je B192; \
13262 leaq 32(r9),r9;
13263
13264 +#define ret pax_force_retaddr; ret
13265 +
13266 #define epilogue(FUNC,r1,r2,r3,r4,r5,r6,r7,r8,r9) \
13267 movq r1,r2; \
13268 movq r3,r4; \
13269 diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
13270 index 6bd2c6c..368c93e 100644
13271 --- a/arch/x86/crypto/aesni-intel_asm.S
13272 +++ b/arch/x86/crypto/aesni-intel_asm.S
13273 @@ -31,6 +31,7 @@
13274
13275 #include <linux/linkage.h>
13276 #include <asm/inst.h>
13277 +#include <asm/alternative-asm.h>
13278
13279 /*
13280 * The following macros are used to move an (un)aligned 16 byte value to/from
13281 @@ -217,7 +218,7 @@ enc: .octa 0x2
13282 * num_initial_blocks = b mod 4
13283 * encrypt the initial num_initial_blocks blocks and apply ghash on
13284 * the ciphertext
13285 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13286 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13287 * are clobbered
13288 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
13289 */
13290 @@ -227,8 +228,8 @@ enc: .octa 0x2
13291 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
13292 MOVADQ SHUF_MASK(%rip), %xmm14
13293 mov arg7, %r10 # %r10 = AAD
13294 - mov arg8, %r12 # %r12 = aadLen
13295 - mov %r12, %r11
13296 + mov arg8, %r15 # %r15 = aadLen
13297 + mov %r15, %r11
13298 pxor %xmm\i, %xmm\i
13299
13300 _get_AAD_loop\num_initial_blocks\operation:
13301 @@ -237,17 +238,17 @@ _get_AAD_loop\num_initial_blocks\operation:
13302 psrldq $4, %xmm\i
13303 pxor \TMP1, %xmm\i
13304 add $4, %r10
13305 - sub $4, %r12
13306 + sub $4, %r15
13307 jne _get_AAD_loop\num_initial_blocks\operation
13308
13309 cmp $16, %r11
13310 je _get_AAD_loop2_done\num_initial_blocks\operation
13311
13312 - mov $16, %r12
13313 + mov $16, %r15
13314 _get_AAD_loop2\num_initial_blocks\operation:
13315 psrldq $4, %xmm\i
13316 - sub $4, %r12
13317 - cmp %r11, %r12
13318 + sub $4, %r15
13319 + cmp %r11, %r15
13320 jne _get_AAD_loop2\num_initial_blocks\operation
13321
13322 _get_AAD_loop2_done\num_initial_blocks\operation:
13323 @@ -442,7 +443,7 @@ _initial_blocks_done\num_initial_blocks\operation:
13324 * num_initial_blocks = b mod 4
13325 * encrypt the initial num_initial_blocks blocks and apply ghash on
13326 * the ciphertext
13327 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13328 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13329 * are clobbered
13330 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
13331 */
13332 @@ -452,8 +453,8 @@ _initial_blocks_done\num_initial_blocks\operation:
13333 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
13334 MOVADQ SHUF_MASK(%rip), %xmm14
13335 mov arg7, %r10 # %r10 = AAD
13336 - mov arg8, %r12 # %r12 = aadLen
13337 - mov %r12, %r11
13338 + mov arg8, %r15 # %r15 = aadLen
13339 + mov %r15, %r11
13340 pxor %xmm\i, %xmm\i
13341 _get_AAD_loop\num_initial_blocks\operation:
13342 movd (%r10), \TMP1
13343 @@ -461,15 +462,15 @@ _get_AAD_loop\num_initial_blocks\operation:
13344 psrldq $4, %xmm\i
13345 pxor \TMP1, %xmm\i
13346 add $4, %r10
13347 - sub $4, %r12
13348 + sub $4, %r15
13349 jne _get_AAD_loop\num_initial_blocks\operation
13350 cmp $16, %r11
13351 je _get_AAD_loop2_done\num_initial_blocks\operation
13352 - mov $16, %r12
13353 + mov $16, %r15
13354 _get_AAD_loop2\num_initial_blocks\operation:
13355 psrldq $4, %xmm\i
13356 - sub $4, %r12
13357 - cmp %r11, %r12
13358 + sub $4, %r15
13359 + cmp %r11, %r15
13360 jne _get_AAD_loop2\num_initial_blocks\operation
13361 _get_AAD_loop2_done\num_initial_blocks\operation:
13362 PSHUFB_XMM %xmm14, %xmm\i # byte-reflect the AAD data
13363 @@ -1280,7 +1281,7 @@ _esb_loop_\@:
13364 *
13365 *****************************************************************************/
13366 ENTRY(aesni_gcm_dec)
13367 - push %r12
13368 + push %r15
13369 push %r13
13370 push %r14
13371 mov %rsp, %r14
13372 @@ -1290,8 +1291,8 @@ ENTRY(aesni_gcm_dec)
13373 */
13374 sub $VARIABLE_OFFSET, %rsp
13375 and $~63, %rsp # align rsp to 64 bytes
13376 - mov %arg6, %r12
13377 - movdqu (%r12), %xmm13 # %xmm13 = HashKey
13378 + mov %arg6, %r15
13379 + movdqu (%r15), %xmm13 # %xmm13 = HashKey
13380 movdqa SHUF_MASK(%rip), %xmm2
13381 PSHUFB_XMM %xmm2, %xmm13
13382
13383 @@ -1319,10 +1320,10 @@ ENTRY(aesni_gcm_dec)
13384 movdqa %xmm13, HashKey(%rsp) # store HashKey<<1 (mod poly)
13385 mov %arg4, %r13 # save the number of bytes of plaintext/ciphertext
13386 and $-16, %r13 # %r13 = %r13 - (%r13 mod 16)
13387 - mov %r13, %r12
13388 - and $(3<<4), %r12
13389 + mov %r13, %r15
13390 + and $(3<<4), %r15
13391 jz _initial_num_blocks_is_0_decrypt
13392 - cmp $(2<<4), %r12
13393 + cmp $(2<<4), %r15
13394 jb _initial_num_blocks_is_1_decrypt
13395 je _initial_num_blocks_is_2_decrypt
13396 _initial_num_blocks_is_3_decrypt:
13397 @@ -1372,16 +1373,16 @@ _zero_cipher_left_decrypt:
13398 sub $16, %r11
13399 add %r13, %r11
13400 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte block
13401 - lea SHIFT_MASK+16(%rip), %r12
13402 - sub %r13, %r12
13403 + lea SHIFT_MASK+16(%rip), %r15
13404 + sub %r13, %r15
13405 # adjust the shuffle mask pointer to be able to shift 16-%r13 bytes
13406 # (%r13 is the number of bytes in plaintext mod 16)
13407 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13408 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13409 PSHUFB_XMM %xmm2, %xmm1 # right shift 16-%r13 butes
13410
13411 movdqa %xmm1, %xmm2
13412 pxor %xmm1, %xmm0 # Ciphertext XOR E(K, Yn)
13413 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13414 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13415 # get the appropriate mask to mask out top 16-%r13 bytes of %xmm0
13416 pand %xmm1, %xmm0 # mask out top 16-%r13 bytes of %xmm0
13417 pand %xmm1, %xmm2
13418 @@ -1410,9 +1411,9 @@ _less_than_8_bytes_left_decrypt:
13419 sub $1, %r13
13420 jne _less_than_8_bytes_left_decrypt
13421 _multiple_of_16_bytes_decrypt:
13422 - mov arg8, %r12 # %r13 = aadLen (number of bytes)
13423 - shl $3, %r12 # convert into number of bits
13424 - movd %r12d, %xmm15 # len(A) in %xmm15
13425 + mov arg8, %r15 # %r13 = aadLen (number of bytes)
13426 + shl $3, %r15 # convert into number of bits
13427 + movd %r15d, %xmm15 # len(A) in %xmm15
13428 shl $3, %arg4 # len(C) in bits (*128)
13429 MOVQ_R64_XMM %arg4, %xmm1
13430 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13431 @@ -1451,7 +1452,8 @@ _return_T_done_decrypt:
13432 mov %r14, %rsp
13433 pop %r14
13434 pop %r13
13435 - pop %r12
13436 + pop %r15
13437 + pax_force_retaddr
13438 ret
13439 ENDPROC(aesni_gcm_dec)
13440
13441 @@ -1540,7 +1542,7 @@ ENDPROC(aesni_gcm_dec)
13442 * poly = x^128 + x^127 + x^126 + x^121 + 1
13443 ***************************************************************************/
13444 ENTRY(aesni_gcm_enc)
13445 - push %r12
13446 + push %r15
13447 push %r13
13448 push %r14
13449 mov %rsp, %r14
13450 @@ -1550,8 +1552,8 @@ ENTRY(aesni_gcm_enc)
13451 #
13452 sub $VARIABLE_OFFSET, %rsp
13453 and $~63, %rsp
13454 - mov %arg6, %r12
13455 - movdqu (%r12), %xmm13
13456 + mov %arg6, %r15
13457 + movdqu (%r15), %xmm13
13458 movdqa SHUF_MASK(%rip), %xmm2
13459 PSHUFB_XMM %xmm2, %xmm13
13460
13461 @@ -1575,13 +1577,13 @@ ENTRY(aesni_gcm_enc)
13462 movdqa %xmm13, HashKey(%rsp)
13463 mov %arg4, %r13 # %xmm13 holds HashKey<<1 (mod poly)
13464 and $-16, %r13
13465 - mov %r13, %r12
13466 + mov %r13, %r15
13467
13468 # Encrypt first few blocks
13469
13470 - and $(3<<4), %r12
13471 + and $(3<<4), %r15
13472 jz _initial_num_blocks_is_0_encrypt
13473 - cmp $(2<<4), %r12
13474 + cmp $(2<<4), %r15
13475 jb _initial_num_blocks_is_1_encrypt
13476 je _initial_num_blocks_is_2_encrypt
13477 _initial_num_blocks_is_3_encrypt:
13478 @@ -1634,14 +1636,14 @@ _zero_cipher_left_encrypt:
13479 sub $16, %r11
13480 add %r13, %r11
13481 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte blocks
13482 - lea SHIFT_MASK+16(%rip), %r12
13483 - sub %r13, %r12
13484 + lea SHIFT_MASK+16(%rip), %r15
13485 + sub %r13, %r15
13486 # adjust the shuffle mask pointer to be able to shift 16-r13 bytes
13487 # (%r13 is the number of bytes in plaintext mod 16)
13488 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13489 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13490 PSHUFB_XMM %xmm2, %xmm1 # shift right 16-r13 byte
13491 pxor %xmm1, %xmm0 # Plaintext XOR Encrypt(K, Yn)
13492 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13493 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13494 # get the appropriate mask to mask out top 16-r13 bytes of xmm0
13495 pand %xmm1, %xmm0 # mask out top 16-r13 bytes of xmm0
13496 movdqa SHUF_MASK(%rip), %xmm10
13497 @@ -1674,9 +1676,9 @@ _less_than_8_bytes_left_encrypt:
13498 sub $1, %r13
13499 jne _less_than_8_bytes_left_encrypt
13500 _multiple_of_16_bytes_encrypt:
13501 - mov arg8, %r12 # %r12 = addLen (number of bytes)
13502 - shl $3, %r12
13503 - movd %r12d, %xmm15 # len(A) in %xmm15
13504 + mov arg8, %r15 # %r15 = addLen (number of bytes)
13505 + shl $3, %r15
13506 + movd %r15d, %xmm15 # len(A) in %xmm15
13507 shl $3, %arg4 # len(C) in bits (*128)
13508 MOVQ_R64_XMM %arg4, %xmm1
13509 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13510 @@ -1715,7 +1717,8 @@ _return_T_done_encrypt:
13511 mov %r14, %rsp
13512 pop %r14
13513 pop %r13
13514 - pop %r12
13515 + pop %r15
13516 + pax_force_retaddr
13517 ret
13518 ENDPROC(aesni_gcm_enc)
13519
13520 @@ -1733,6 +1736,7 @@ _key_expansion_256a:
13521 pxor %xmm1, %xmm0
13522 movaps %xmm0, (TKEYP)
13523 add $0x10, TKEYP
13524 + pax_force_retaddr
13525 ret
13526 ENDPROC(_key_expansion_128)
13527 ENDPROC(_key_expansion_256a)
13528 @@ -1759,6 +1763,7 @@ _key_expansion_192a:
13529 shufps $0b01001110, %xmm2, %xmm1
13530 movaps %xmm1, 0x10(TKEYP)
13531 add $0x20, TKEYP
13532 + pax_force_retaddr
13533 ret
13534 ENDPROC(_key_expansion_192a)
13535
13536 @@ -1779,6 +1784,7 @@ _key_expansion_192b:
13537
13538 movaps %xmm0, (TKEYP)
13539 add $0x10, TKEYP
13540 + pax_force_retaddr
13541 ret
13542 ENDPROC(_key_expansion_192b)
13543
13544 @@ -1792,6 +1798,7 @@ _key_expansion_256b:
13545 pxor %xmm1, %xmm2
13546 movaps %xmm2, (TKEYP)
13547 add $0x10, TKEYP
13548 + pax_force_retaddr
13549 ret
13550 ENDPROC(_key_expansion_256b)
13551
13552 @@ -1905,6 +1912,7 @@ ENTRY(aesni_set_key)
13553 #ifndef __x86_64__
13554 popl KEYP
13555 #endif
13556 + pax_force_retaddr
13557 ret
13558 ENDPROC(aesni_set_key)
13559
13560 @@ -1927,6 +1935,7 @@ ENTRY(aesni_enc)
13561 popl KLEN
13562 popl KEYP
13563 #endif
13564 + pax_force_retaddr
13565 ret
13566 ENDPROC(aesni_enc)
13567
13568 @@ -1985,6 +1994,7 @@ _aesni_enc1:
13569 AESENC KEY STATE
13570 movaps 0x70(TKEYP), KEY
13571 AESENCLAST KEY STATE
13572 + pax_force_retaddr
13573 ret
13574 ENDPROC(_aesni_enc1)
13575
13576 @@ -2094,6 +2104,7 @@ _aesni_enc4:
13577 AESENCLAST KEY STATE2
13578 AESENCLAST KEY STATE3
13579 AESENCLAST KEY STATE4
13580 + pax_force_retaddr
13581 ret
13582 ENDPROC(_aesni_enc4)
13583
13584 @@ -2117,6 +2128,7 @@ ENTRY(aesni_dec)
13585 popl KLEN
13586 popl KEYP
13587 #endif
13588 + pax_force_retaddr
13589 ret
13590 ENDPROC(aesni_dec)
13591
13592 @@ -2175,6 +2187,7 @@ _aesni_dec1:
13593 AESDEC KEY STATE
13594 movaps 0x70(TKEYP), KEY
13595 AESDECLAST KEY STATE
13596 + pax_force_retaddr
13597 ret
13598 ENDPROC(_aesni_dec1)
13599
13600 @@ -2284,6 +2297,7 @@ _aesni_dec4:
13601 AESDECLAST KEY STATE2
13602 AESDECLAST KEY STATE3
13603 AESDECLAST KEY STATE4
13604 + pax_force_retaddr
13605 ret
13606 ENDPROC(_aesni_dec4)
13607
13608 @@ -2342,6 +2356,7 @@ ENTRY(aesni_ecb_enc)
13609 popl KEYP
13610 popl LEN
13611 #endif
13612 + pax_force_retaddr
13613 ret
13614 ENDPROC(aesni_ecb_enc)
13615
13616 @@ -2401,6 +2416,7 @@ ENTRY(aesni_ecb_dec)
13617 popl KEYP
13618 popl LEN
13619 #endif
13620 + pax_force_retaddr
13621 ret
13622 ENDPROC(aesni_ecb_dec)
13623
13624 @@ -2443,6 +2459,7 @@ ENTRY(aesni_cbc_enc)
13625 popl LEN
13626 popl IVP
13627 #endif
13628 + pax_force_retaddr
13629 ret
13630 ENDPROC(aesni_cbc_enc)
13631
13632 @@ -2534,6 +2551,7 @@ ENTRY(aesni_cbc_dec)
13633 popl LEN
13634 popl IVP
13635 #endif
13636 + pax_force_retaddr
13637 ret
13638 ENDPROC(aesni_cbc_dec)
13639
13640 @@ -2561,6 +2579,7 @@ _aesni_inc_init:
13641 mov $1, TCTR_LOW
13642 MOVQ_R64_XMM TCTR_LOW INC
13643 MOVQ_R64_XMM CTR TCTR_LOW
13644 + pax_force_retaddr
13645 ret
13646 ENDPROC(_aesni_inc_init)
13647
13648 @@ -2590,6 +2609,7 @@ _aesni_inc:
13649 .Linc_low:
13650 movaps CTR, IV
13651 PSHUFB_XMM BSWAP_MASK IV
13652 + pax_force_retaddr
13653 ret
13654 ENDPROC(_aesni_inc)
13655
13656 @@ -2651,6 +2671,7 @@ ENTRY(aesni_ctr_enc)
13657 .Lctr_enc_ret:
13658 movups IV, (IVP)
13659 .Lctr_enc_just_ret:
13660 + pax_force_retaddr
13661 ret
13662 ENDPROC(aesni_ctr_enc)
13663
13664 @@ -2777,6 +2798,7 @@ ENTRY(aesni_xts_crypt8)
13665 pxor INC, STATE4
13666 movdqu STATE4, 0x70(OUTP)
13667
13668 + pax_force_retaddr
13669 ret
13670 ENDPROC(aesni_xts_crypt8)
13671
13672 diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13673 index 246c670..466e2d6 100644
13674 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
13675 +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13676 @@ -21,6 +21,7 @@
13677 */
13678
13679 #include <linux/linkage.h>
13680 +#include <asm/alternative-asm.h>
13681
13682 .file "blowfish-x86_64-asm.S"
13683 .text
13684 @@ -149,9 +150,11 @@ ENTRY(__blowfish_enc_blk)
13685 jnz .L__enc_xor;
13686
13687 write_block();
13688 + pax_force_retaddr
13689 ret;
13690 .L__enc_xor:
13691 xor_block();
13692 + pax_force_retaddr
13693 ret;
13694 ENDPROC(__blowfish_enc_blk)
13695
13696 @@ -183,6 +186,7 @@ ENTRY(blowfish_dec_blk)
13697
13698 movq %r11, %rbp;
13699
13700 + pax_force_retaddr
13701 ret;
13702 ENDPROC(blowfish_dec_blk)
13703
13704 @@ -334,6 +338,7 @@ ENTRY(__blowfish_enc_blk_4way)
13705
13706 popq %rbx;
13707 popq %rbp;
13708 + pax_force_retaddr
13709 ret;
13710
13711 .L__enc_xor4:
13712 @@ -341,6 +346,7 @@ ENTRY(__blowfish_enc_blk_4way)
13713
13714 popq %rbx;
13715 popq %rbp;
13716 + pax_force_retaddr
13717 ret;
13718 ENDPROC(__blowfish_enc_blk_4way)
13719
13720 @@ -375,5 +381,6 @@ ENTRY(blowfish_dec_blk_4way)
13721 popq %rbx;
13722 popq %rbp;
13723
13724 + pax_force_retaddr
13725 ret;
13726 ENDPROC(blowfish_dec_blk_4way)
13727 diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13728 index ce71f92..1dce7ec 100644
13729 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13730 +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13731 @@ -16,6 +16,7 @@
13732 */
13733
13734 #include <linux/linkage.h>
13735 +#include <asm/alternative-asm.h>
13736
13737 #define CAMELLIA_TABLE_BYTE_LEN 272
13738
13739 @@ -191,6 +192,7 @@ roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13740 roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
13741 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15,
13742 %rcx, (%r9));
13743 + pax_force_retaddr
13744 ret;
13745 ENDPROC(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13746
13747 @@ -199,6 +201,7 @@ roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13748 roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3,
13749 %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11,
13750 %rax, (%r9));
13751 + pax_force_retaddr
13752 ret;
13753 ENDPROC(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13754
13755 @@ -780,6 +783,7 @@ __camellia_enc_blk16:
13756 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13757 %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax));
13758
13759 + pax_force_retaddr
13760 ret;
13761
13762 .align 8
13763 @@ -865,6 +869,7 @@ __camellia_dec_blk16:
13764 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13765 %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax));
13766
13767 + pax_force_retaddr
13768 ret;
13769
13770 .align 8
13771 @@ -904,6 +909,7 @@ ENTRY(camellia_ecb_enc_16way)
13772 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13773 %xmm8, %rsi);
13774
13775 + pax_force_retaddr
13776 ret;
13777 ENDPROC(camellia_ecb_enc_16way)
13778
13779 @@ -932,6 +938,7 @@ ENTRY(camellia_ecb_dec_16way)
13780 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13781 %xmm8, %rsi);
13782
13783 + pax_force_retaddr
13784 ret;
13785 ENDPROC(camellia_ecb_dec_16way)
13786
13787 @@ -981,6 +988,7 @@ ENTRY(camellia_cbc_dec_16way)
13788 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13789 %xmm8, %rsi);
13790
13791 + pax_force_retaddr
13792 ret;
13793 ENDPROC(camellia_cbc_dec_16way)
13794
13795 @@ -1092,6 +1100,7 @@ ENTRY(camellia_ctr_16way)
13796 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13797 %xmm8, %rsi);
13798
13799 + pax_force_retaddr
13800 ret;
13801 ENDPROC(camellia_ctr_16way)
13802
13803 @@ -1234,6 +1243,7 @@ camellia_xts_crypt_16way:
13804 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13805 %xmm8, %rsi);
13806
13807 + pax_force_retaddr
13808 ret;
13809 ENDPROC(camellia_xts_crypt_16way)
13810
13811 diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13812 index 0e0b886..5a3123c 100644
13813 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13814 +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13815 @@ -11,6 +11,7 @@
13816 */
13817
13818 #include <linux/linkage.h>
13819 +#include <asm/alternative-asm.h>
13820
13821 #define CAMELLIA_TABLE_BYTE_LEN 272
13822
13823 @@ -230,6 +231,7 @@ roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13824 roundsm32(%ymm0, %ymm1, %ymm2, %ymm3, %ymm4, %ymm5, %ymm6, %ymm7,
13825 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14, %ymm15,
13826 %rcx, (%r9));
13827 + pax_force_retaddr
13828 ret;
13829 ENDPROC(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13830
13831 @@ -238,6 +240,7 @@ roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13832 roundsm32(%ymm4, %ymm5, %ymm6, %ymm7, %ymm0, %ymm1, %ymm2, %ymm3,
13833 %ymm12, %ymm13, %ymm14, %ymm15, %ymm8, %ymm9, %ymm10, %ymm11,
13834 %rax, (%r9));
13835 + pax_force_retaddr
13836 ret;
13837 ENDPROC(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13838
13839 @@ -820,6 +823,7 @@ __camellia_enc_blk32:
13840 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13841 %ymm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 32(%rax));
13842
13843 + pax_force_retaddr
13844 ret;
13845
13846 .align 8
13847 @@ -905,6 +909,7 @@ __camellia_dec_blk32:
13848 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13849 %ymm15, (key_table)(CTX), (%rax), 1 * 32(%rax));
13850
13851 + pax_force_retaddr
13852 ret;
13853
13854 .align 8
13855 @@ -948,6 +953,7 @@ ENTRY(camellia_ecb_enc_32way)
13856
13857 vzeroupper;
13858
13859 + pax_force_retaddr
13860 ret;
13861 ENDPROC(camellia_ecb_enc_32way)
13862
13863 @@ -980,6 +986,7 @@ ENTRY(camellia_ecb_dec_32way)
13864
13865 vzeroupper;
13866
13867 + pax_force_retaddr
13868 ret;
13869 ENDPROC(camellia_ecb_dec_32way)
13870
13871 @@ -1046,6 +1053,7 @@ ENTRY(camellia_cbc_dec_32way)
13872
13873 vzeroupper;
13874
13875 + pax_force_retaddr
13876 ret;
13877 ENDPROC(camellia_cbc_dec_32way)
13878
13879 @@ -1184,6 +1192,7 @@ ENTRY(camellia_ctr_32way)
13880
13881 vzeroupper;
13882
13883 + pax_force_retaddr
13884 ret;
13885 ENDPROC(camellia_ctr_32way)
13886
13887 @@ -1349,6 +1358,7 @@ camellia_xts_crypt_32way:
13888
13889 vzeroupper;
13890
13891 + pax_force_retaddr
13892 ret;
13893 ENDPROC(camellia_xts_crypt_32way)
13894
13895 diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S
13896 index 310319c..db3d7b5 100644
13897 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S
13898 +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S
13899 @@ -21,6 +21,7 @@
13900 */
13901
13902 #include <linux/linkage.h>
13903 +#include <asm/alternative-asm.h>
13904
13905 .file "camellia-x86_64-asm_64.S"
13906 .text
13907 @@ -228,12 +229,14 @@ ENTRY(__camellia_enc_blk)
13908 enc_outunpack(mov, RT1);
13909
13910 movq RRBP, %rbp;
13911 + pax_force_retaddr
13912 ret;
13913
13914 .L__enc_xor:
13915 enc_outunpack(xor, RT1);
13916
13917 movq RRBP, %rbp;
13918 + pax_force_retaddr
13919 ret;
13920 ENDPROC(__camellia_enc_blk)
13921
13922 @@ -272,6 +275,7 @@ ENTRY(camellia_dec_blk)
13923 dec_outunpack();
13924
13925 movq RRBP, %rbp;
13926 + pax_force_retaddr
13927 ret;
13928 ENDPROC(camellia_dec_blk)
13929
13930 @@ -463,6 +467,7 @@ ENTRY(__camellia_enc_blk_2way)
13931
13932 movq RRBP, %rbp;
13933 popq %rbx;
13934 + pax_force_retaddr
13935 ret;
13936
13937 .L__enc2_xor:
13938 @@ -470,6 +475,7 @@ ENTRY(__camellia_enc_blk_2way)
13939
13940 movq RRBP, %rbp;
13941 popq %rbx;
13942 + pax_force_retaddr
13943 ret;
13944 ENDPROC(__camellia_enc_blk_2way)
13945
13946 @@ -510,5 +516,6 @@ ENTRY(camellia_dec_blk_2way)
13947
13948 movq RRBP, %rbp;
13949 movq RXOR, %rbx;
13950 + pax_force_retaddr
13951 ret;
13952 ENDPROC(camellia_dec_blk_2way)
13953 diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13954 index c35fd5d..2d8c7db 100644
13955 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13956 +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13957 @@ -24,6 +24,7 @@
13958 */
13959
13960 #include <linux/linkage.h>
13961 +#include <asm/alternative-asm.h>
13962
13963 .file "cast5-avx-x86_64-asm_64.S"
13964
13965 @@ -281,6 +282,7 @@ __cast5_enc_blk16:
13966 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13967 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13968
13969 + pax_force_retaddr
13970 ret;
13971 ENDPROC(__cast5_enc_blk16)
13972
13973 @@ -352,6 +354,7 @@ __cast5_dec_blk16:
13974 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13975 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13976
13977 + pax_force_retaddr
13978 ret;
13979
13980 .L__skip_dec:
13981 @@ -388,6 +391,7 @@ ENTRY(cast5_ecb_enc_16way)
13982 vmovdqu RR4, (6*4*4)(%r11);
13983 vmovdqu RL4, (7*4*4)(%r11);
13984
13985 + pax_force_retaddr
13986 ret;
13987 ENDPROC(cast5_ecb_enc_16way)
13988
13989 @@ -420,6 +424,7 @@ ENTRY(cast5_ecb_dec_16way)
13990 vmovdqu RR4, (6*4*4)(%r11);
13991 vmovdqu RL4, (7*4*4)(%r11);
13992
13993 + pax_force_retaddr
13994 ret;
13995 ENDPROC(cast5_ecb_dec_16way)
13996
13997 @@ -430,10 +435,10 @@ ENTRY(cast5_cbc_dec_16way)
13998 * %rdx: src
13999 */
14000
14001 - pushq %r12;
14002 + pushq %r14;
14003
14004 movq %rsi, %r11;
14005 - movq %rdx, %r12;
14006 + movq %rdx, %r14;
14007
14008 vmovdqu (0*16)(%rdx), RL1;
14009 vmovdqu (1*16)(%rdx), RR1;
14010 @@ -447,16 +452,16 @@ ENTRY(cast5_cbc_dec_16way)
14011 call __cast5_dec_blk16;
14012
14013 /* xor with src */
14014 - vmovq (%r12), RX;
14015 + vmovq (%r14), RX;
14016 vpshufd $0x4f, RX, RX;
14017 vpxor RX, RR1, RR1;
14018 - vpxor 0*16+8(%r12), RL1, RL1;
14019 - vpxor 1*16+8(%r12), RR2, RR2;
14020 - vpxor 2*16+8(%r12), RL2, RL2;
14021 - vpxor 3*16+8(%r12), RR3, RR3;
14022 - vpxor 4*16+8(%r12), RL3, RL3;
14023 - vpxor 5*16+8(%r12), RR4, RR4;
14024 - vpxor 6*16+8(%r12), RL4, RL4;
14025 + vpxor 0*16+8(%r14), RL1, RL1;
14026 + vpxor 1*16+8(%r14), RR2, RR2;
14027 + vpxor 2*16+8(%r14), RL2, RL2;
14028 + vpxor 3*16+8(%r14), RR3, RR3;
14029 + vpxor 4*16+8(%r14), RL3, RL3;
14030 + vpxor 5*16+8(%r14), RR4, RR4;
14031 + vpxor 6*16+8(%r14), RL4, RL4;
14032
14033 vmovdqu RR1, (0*16)(%r11);
14034 vmovdqu RL1, (1*16)(%r11);
14035 @@ -467,8 +472,9 @@ ENTRY(cast5_cbc_dec_16way)
14036 vmovdqu RR4, (6*16)(%r11);
14037 vmovdqu RL4, (7*16)(%r11);
14038
14039 - popq %r12;
14040 + popq %r14;
14041
14042 + pax_force_retaddr
14043 ret;
14044 ENDPROC(cast5_cbc_dec_16way)
14045
14046 @@ -480,10 +486,10 @@ ENTRY(cast5_ctr_16way)
14047 * %rcx: iv (big endian, 64bit)
14048 */
14049
14050 - pushq %r12;
14051 + pushq %r14;
14052
14053 movq %rsi, %r11;
14054 - movq %rdx, %r12;
14055 + movq %rdx, %r14;
14056
14057 vpcmpeqd RTMP, RTMP, RTMP;
14058 vpsrldq $8, RTMP, RTMP; /* low: -1, high: 0 */
14059 @@ -523,14 +529,14 @@ ENTRY(cast5_ctr_16way)
14060 call __cast5_enc_blk16;
14061
14062 /* dst = src ^ iv */
14063 - vpxor (0*16)(%r12), RR1, RR1;
14064 - vpxor (1*16)(%r12), RL1, RL1;
14065 - vpxor (2*16)(%r12), RR2, RR2;
14066 - vpxor (3*16)(%r12), RL2, RL2;
14067 - vpxor (4*16)(%r12), RR3, RR3;
14068 - vpxor (5*16)(%r12), RL3, RL3;
14069 - vpxor (6*16)(%r12), RR4, RR4;
14070 - vpxor (7*16)(%r12), RL4, RL4;
14071 + vpxor (0*16)(%r14), RR1, RR1;
14072 + vpxor (1*16)(%r14), RL1, RL1;
14073 + vpxor (2*16)(%r14), RR2, RR2;
14074 + vpxor (3*16)(%r14), RL2, RL2;
14075 + vpxor (4*16)(%r14), RR3, RR3;
14076 + vpxor (5*16)(%r14), RL3, RL3;
14077 + vpxor (6*16)(%r14), RR4, RR4;
14078 + vpxor (7*16)(%r14), RL4, RL4;
14079 vmovdqu RR1, (0*16)(%r11);
14080 vmovdqu RL1, (1*16)(%r11);
14081 vmovdqu RR2, (2*16)(%r11);
14082 @@ -540,7 +546,8 @@ ENTRY(cast5_ctr_16way)
14083 vmovdqu RR4, (6*16)(%r11);
14084 vmovdqu RL4, (7*16)(%r11);
14085
14086 - popq %r12;
14087 + popq %r14;
14088
14089 + pax_force_retaddr
14090 ret;
14091 ENDPROC(cast5_ctr_16way)
14092 diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
14093 index e3531f8..e123f35 100644
14094 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
14095 +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
14096 @@ -24,6 +24,7 @@
14097 */
14098
14099 #include <linux/linkage.h>
14100 +#include <asm/alternative-asm.h>
14101 #include "glue_helper-asm-avx.S"
14102
14103 .file "cast6-avx-x86_64-asm_64.S"
14104 @@ -295,6 +296,7 @@ __cast6_enc_blk8:
14105 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
14106 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
14107
14108 + pax_force_retaddr
14109 ret;
14110 ENDPROC(__cast6_enc_blk8)
14111
14112 @@ -340,6 +342,7 @@ __cast6_dec_blk8:
14113 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
14114 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
14115
14116 + pax_force_retaddr
14117 ret;
14118 ENDPROC(__cast6_dec_blk8)
14119
14120 @@ -358,6 +361,7 @@ ENTRY(cast6_ecb_enc_8way)
14121
14122 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14123
14124 + pax_force_retaddr
14125 ret;
14126 ENDPROC(cast6_ecb_enc_8way)
14127
14128 @@ -376,6 +380,7 @@ ENTRY(cast6_ecb_dec_8way)
14129
14130 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14131
14132 + pax_force_retaddr
14133 ret;
14134 ENDPROC(cast6_ecb_dec_8way)
14135
14136 @@ -386,19 +391,20 @@ ENTRY(cast6_cbc_dec_8way)
14137 * %rdx: src
14138 */
14139
14140 - pushq %r12;
14141 + pushq %r14;
14142
14143 movq %rsi, %r11;
14144 - movq %rdx, %r12;
14145 + movq %rdx, %r14;
14146
14147 load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14148
14149 call __cast6_dec_blk8;
14150
14151 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14152 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14153
14154 - popq %r12;
14155 + popq %r14;
14156
14157 + pax_force_retaddr
14158 ret;
14159 ENDPROC(cast6_cbc_dec_8way)
14160
14161 @@ -410,20 +416,21 @@ ENTRY(cast6_ctr_8way)
14162 * %rcx: iv (little endian, 128bit)
14163 */
14164
14165 - pushq %r12;
14166 + pushq %r14;
14167
14168 movq %rsi, %r11;
14169 - movq %rdx, %r12;
14170 + movq %rdx, %r14;
14171
14172 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
14173 RD2, RX, RKR, RKM);
14174
14175 call __cast6_enc_blk8;
14176
14177 - store_ctr_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14178 + store_ctr_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14179
14180 - popq %r12;
14181 + popq %r14;
14182
14183 + pax_force_retaddr
14184 ret;
14185 ENDPROC(cast6_ctr_8way)
14186
14187 @@ -446,6 +453,7 @@ ENTRY(cast6_xts_enc_8way)
14188 /* dst <= regs xor IVs(in dst) */
14189 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14190
14191 + pax_force_retaddr
14192 ret;
14193 ENDPROC(cast6_xts_enc_8way)
14194
14195 @@ -468,5 +476,6 @@ ENTRY(cast6_xts_dec_8way)
14196 /* dst <= regs xor IVs(in dst) */
14197 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14198
14199 + pax_force_retaddr
14200 ret;
14201 ENDPROC(cast6_xts_dec_8way)
14202 diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
14203 index 225be06..2885e731 100644
14204 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
14205 +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
14206 @@ -45,6 +45,7 @@
14207
14208 #include <asm/inst.h>
14209 #include <linux/linkage.h>
14210 +#include <asm/alternative-asm.h>
14211
14212 ## ISCSI CRC 32 Implementation with crc32 and pclmulqdq Instruction
14213
14214 @@ -309,6 +310,7 @@ do_return:
14215 popq %rsi
14216 popq %rdi
14217 popq %rbx
14218 + pax_force_retaddr
14219 ret
14220
14221 ################################################################
14222 @@ -330,7 +332,7 @@ ENDPROC(crc_pcl)
14223 ## PCLMULQDQ tables
14224 ## Table is 128 entries x 2 words (8 bytes) each
14225 ################################################################
14226 -.section .rotata, "a", %progbits
14227 +.section .rodata, "a", %progbits
14228 .align 8
14229 K_table:
14230 .long 0x493c7d27, 0x00000001
14231 diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S
14232 index 5d1e007..098cb4f 100644
14233 --- a/arch/x86/crypto/ghash-clmulni-intel_asm.S
14234 +++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S
14235 @@ -18,6 +18,7 @@
14236
14237 #include <linux/linkage.h>
14238 #include <asm/inst.h>
14239 +#include <asm/alternative-asm.h>
14240
14241 .data
14242
14243 @@ -89,6 +90,7 @@ __clmul_gf128mul_ble:
14244 psrlq $1, T2
14245 pxor T2, T1
14246 pxor T1, DATA
14247 + pax_force_retaddr
14248 ret
14249 ENDPROC(__clmul_gf128mul_ble)
14250
14251 @@ -101,6 +103,7 @@ ENTRY(clmul_ghash_mul)
14252 call __clmul_gf128mul_ble
14253 PSHUFB_XMM BSWAP DATA
14254 movups DATA, (%rdi)
14255 + pax_force_retaddr
14256 ret
14257 ENDPROC(clmul_ghash_mul)
14258
14259 @@ -128,5 +131,6 @@ ENTRY(clmul_ghash_update)
14260 PSHUFB_XMM BSWAP DATA
14261 movups DATA, (%rdi)
14262 .Lupdate_just_ret:
14263 + pax_force_retaddr
14264 ret
14265 ENDPROC(clmul_ghash_update)
14266 diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
14267 index 9279e0b..c4b3d2c 100644
14268 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
14269 +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S
14270 @@ -1,4 +1,5 @@
14271 #include <linux/linkage.h>
14272 +#include <asm/alternative-asm.h>
14273
14274 # enter salsa20_encrypt_bytes
14275 ENTRY(salsa20_encrypt_bytes)
14276 @@ -789,6 +790,7 @@ ENTRY(salsa20_encrypt_bytes)
14277 add %r11,%rsp
14278 mov %rdi,%rax
14279 mov %rsi,%rdx
14280 + pax_force_retaddr
14281 ret
14282 # bytesatleast65:
14283 ._bytesatleast65:
14284 @@ -889,6 +891,7 @@ ENTRY(salsa20_keysetup)
14285 add %r11,%rsp
14286 mov %rdi,%rax
14287 mov %rsi,%rdx
14288 + pax_force_retaddr
14289 ret
14290 ENDPROC(salsa20_keysetup)
14291
14292 @@ -914,5 +917,6 @@ ENTRY(salsa20_ivsetup)
14293 add %r11,%rsp
14294 mov %rdi,%rax
14295 mov %rsi,%rdx
14296 + pax_force_retaddr
14297 ret
14298 ENDPROC(salsa20_ivsetup)
14299 diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14300 index 2f202f4..d9164d6 100644
14301 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14302 +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14303 @@ -24,6 +24,7 @@
14304 */
14305
14306 #include <linux/linkage.h>
14307 +#include <asm/alternative-asm.h>
14308 #include "glue_helper-asm-avx.S"
14309
14310 .file "serpent-avx-x86_64-asm_64.S"
14311 @@ -618,6 +619,7 @@ __serpent_enc_blk8_avx:
14312 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14313 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14314
14315 + pax_force_retaddr
14316 ret;
14317 ENDPROC(__serpent_enc_blk8_avx)
14318
14319 @@ -672,6 +674,7 @@ __serpent_dec_blk8_avx:
14320 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14321 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14322
14323 + pax_force_retaddr
14324 ret;
14325 ENDPROC(__serpent_dec_blk8_avx)
14326
14327 @@ -688,6 +691,7 @@ ENTRY(serpent_ecb_enc_8way_avx)
14328
14329 store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14330
14331 + pax_force_retaddr
14332 ret;
14333 ENDPROC(serpent_ecb_enc_8way_avx)
14334
14335 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_8way_avx)
14336
14337 store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14338
14339 + pax_force_retaddr
14340 ret;
14341 ENDPROC(serpent_ecb_dec_8way_avx)
14342
14343 @@ -720,6 +725,7 @@ ENTRY(serpent_cbc_dec_8way_avx)
14344
14345 store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14346
14347 + pax_force_retaddr
14348 ret;
14349 ENDPROC(serpent_cbc_dec_8way_avx)
14350
14351 @@ -738,6 +744,7 @@ ENTRY(serpent_ctr_8way_avx)
14352
14353 store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14354
14355 + pax_force_retaddr
14356 ret;
14357 ENDPROC(serpent_ctr_8way_avx)
14358
14359 @@ -758,6 +765,7 @@ ENTRY(serpent_xts_enc_8way_avx)
14360 /* dst <= regs xor IVs(in dst) */
14361 store_xts_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14362
14363 + pax_force_retaddr
14364 ret;
14365 ENDPROC(serpent_xts_enc_8way_avx)
14366
14367 @@ -778,5 +786,6 @@ ENTRY(serpent_xts_dec_8way_avx)
14368 /* dst <= regs xor IVs(in dst) */
14369 store_xts_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14370
14371 + pax_force_retaddr
14372 ret;
14373 ENDPROC(serpent_xts_dec_8way_avx)
14374 diff --git a/arch/x86/crypto/serpent-avx2-asm_64.S b/arch/x86/crypto/serpent-avx2-asm_64.S
14375 index b222085..abd483c 100644
14376 --- a/arch/x86/crypto/serpent-avx2-asm_64.S
14377 +++ b/arch/x86/crypto/serpent-avx2-asm_64.S
14378 @@ -15,6 +15,7 @@
14379 */
14380
14381 #include <linux/linkage.h>
14382 +#include <asm/alternative-asm.h>
14383 #include "glue_helper-asm-avx2.S"
14384
14385 .file "serpent-avx2-asm_64.S"
14386 @@ -610,6 +611,7 @@ __serpent_enc_blk16:
14387 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14388 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14389
14390 + pax_force_retaddr
14391 ret;
14392 ENDPROC(__serpent_enc_blk16)
14393
14394 @@ -664,6 +666,7 @@ __serpent_dec_blk16:
14395 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14396 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14397
14398 + pax_force_retaddr
14399 ret;
14400 ENDPROC(__serpent_dec_blk16)
14401
14402 @@ -684,6 +687,7 @@ ENTRY(serpent_ecb_enc_16way)
14403
14404 vzeroupper;
14405
14406 + pax_force_retaddr
14407 ret;
14408 ENDPROC(serpent_ecb_enc_16way)
14409
14410 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_16way)
14411
14412 vzeroupper;
14413
14414 + pax_force_retaddr
14415 ret;
14416 ENDPROC(serpent_ecb_dec_16way)
14417
14418 @@ -725,6 +730,7 @@ ENTRY(serpent_cbc_dec_16way)
14419
14420 vzeroupper;
14421
14422 + pax_force_retaddr
14423 ret;
14424 ENDPROC(serpent_cbc_dec_16way)
14425
14426 @@ -748,6 +754,7 @@ ENTRY(serpent_ctr_16way)
14427
14428 vzeroupper;
14429
14430 + pax_force_retaddr
14431 ret;
14432 ENDPROC(serpent_ctr_16way)
14433
14434 @@ -772,6 +779,7 @@ ENTRY(serpent_xts_enc_16way)
14435
14436 vzeroupper;
14437
14438 + pax_force_retaddr
14439 ret;
14440 ENDPROC(serpent_xts_enc_16way)
14441
14442 @@ -796,5 +804,6 @@ ENTRY(serpent_xts_dec_16way)
14443
14444 vzeroupper;
14445
14446 + pax_force_retaddr
14447 ret;
14448 ENDPROC(serpent_xts_dec_16way)
14449 diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14450 index acc066c..1559cc4 100644
14451 --- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14452 +++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14453 @@ -25,6 +25,7 @@
14454 */
14455
14456 #include <linux/linkage.h>
14457 +#include <asm/alternative-asm.h>
14458
14459 .file "serpent-sse2-x86_64-asm_64.S"
14460 .text
14461 @@ -690,12 +691,14 @@ ENTRY(__serpent_enc_blk_8way)
14462 write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14463 write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14464
14465 + pax_force_retaddr
14466 ret;
14467
14468 .L__enc_xor8:
14469 xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14470 xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14471
14472 + pax_force_retaddr
14473 ret;
14474 ENDPROC(__serpent_enc_blk_8way)
14475
14476 @@ -750,5 +753,6 @@ ENTRY(serpent_dec_blk_8way)
14477 write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14478 write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14479
14480 + pax_force_retaddr
14481 ret;
14482 ENDPROC(serpent_dec_blk_8way)
14483 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S
14484 index a410950..9dfe7ad 100644
14485 --- a/arch/x86/crypto/sha1_ssse3_asm.S
14486 +++ b/arch/x86/crypto/sha1_ssse3_asm.S
14487 @@ -29,6 +29,7 @@
14488 */
14489
14490 #include <linux/linkage.h>
14491 +#include <asm/alternative-asm.h>
14492
14493 #define CTX %rdi // arg1
14494 #define BUF %rsi // arg2
14495 @@ -75,9 +76,9 @@
14496
14497 push %rbx
14498 push %rbp
14499 - push %r12
14500 + push %r14
14501
14502 - mov %rsp, %r12
14503 + mov %rsp, %r14
14504 sub $64, %rsp # allocate workspace
14505 and $~15, %rsp # align stack
14506
14507 @@ -99,11 +100,12 @@
14508 xor %rax, %rax
14509 rep stosq
14510
14511 - mov %r12, %rsp # deallocate workspace
14512 + mov %r14, %rsp # deallocate workspace
14513
14514 - pop %r12
14515 + pop %r14
14516 pop %rbp
14517 pop %rbx
14518 + pax_force_retaddr
14519 ret
14520
14521 ENDPROC(\name)
14522 diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
14523 index 92b3b5d..0dc1dcb 100644
14524 --- a/arch/x86/crypto/sha256-avx-asm.S
14525 +++ b/arch/x86/crypto/sha256-avx-asm.S
14526 @@ -49,6 +49,7 @@
14527
14528 #ifdef CONFIG_AS_AVX
14529 #include <linux/linkage.h>
14530 +#include <asm/alternative-asm.h>
14531
14532 ## assume buffers not aligned
14533 #define VMOVDQ vmovdqu
14534 @@ -460,6 +461,7 @@ done_hash:
14535 popq %r13
14536 popq %rbp
14537 popq %rbx
14538 + pax_force_retaddr
14539 ret
14540 ENDPROC(sha256_transform_avx)
14541
14542 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S
14543 index 570ec5e..cf2b625 100644
14544 --- a/arch/x86/crypto/sha256-avx2-asm.S
14545 +++ b/arch/x86/crypto/sha256-avx2-asm.S
14546 @@ -50,6 +50,7 @@
14547
14548 #ifdef CONFIG_AS_AVX2
14549 #include <linux/linkage.h>
14550 +#include <asm/alternative-asm.h>
14551
14552 ## assume buffers not aligned
14553 #define VMOVDQ vmovdqu
14554 @@ -720,6 +721,7 @@ done_hash:
14555 popq %r12
14556 popq %rbp
14557 popq %rbx
14558 + pax_force_retaddr
14559 ret
14560 ENDPROC(sha256_transform_rorx)
14561
14562 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
14563 index 2cedc44..5144899 100644
14564 --- a/arch/x86/crypto/sha256-ssse3-asm.S
14565 +++ b/arch/x86/crypto/sha256-ssse3-asm.S
14566 @@ -47,6 +47,7 @@
14567 ########################################################################
14568
14569 #include <linux/linkage.h>
14570 +#include <asm/alternative-asm.h>
14571
14572 ## assume buffers not aligned
14573 #define MOVDQ movdqu
14574 @@ -471,6 +472,7 @@ done_hash:
14575 popq %rbp
14576 popq %rbx
14577
14578 + pax_force_retaddr
14579 ret
14580 ENDPROC(sha256_transform_ssse3)
14581
14582 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S
14583 index 565274d..af6bc08 100644
14584 --- a/arch/x86/crypto/sha512-avx-asm.S
14585 +++ b/arch/x86/crypto/sha512-avx-asm.S
14586 @@ -49,6 +49,7 @@
14587
14588 #ifdef CONFIG_AS_AVX
14589 #include <linux/linkage.h>
14590 +#include <asm/alternative-asm.h>
14591
14592 .text
14593
14594 @@ -364,6 +365,7 @@ updateblock:
14595 mov frame_RSPSAVE(%rsp), %rsp
14596
14597 nowork:
14598 + pax_force_retaddr
14599 ret
14600 ENDPROC(sha512_transform_avx)
14601
14602 diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S
14603 index 1f20b35..f25c8c1 100644
14604 --- a/arch/x86/crypto/sha512-avx2-asm.S
14605 +++ b/arch/x86/crypto/sha512-avx2-asm.S
14606 @@ -51,6 +51,7 @@
14607
14608 #ifdef CONFIG_AS_AVX2
14609 #include <linux/linkage.h>
14610 +#include <asm/alternative-asm.h>
14611
14612 .text
14613
14614 @@ -678,6 +679,7 @@ done_hash:
14615
14616 # Restore Stack Pointer
14617 mov frame_RSPSAVE(%rsp), %rsp
14618 + pax_force_retaddr
14619 ret
14620 ENDPROC(sha512_transform_rorx)
14621
14622 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S
14623 index e610e29..ffcb5ed 100644
14624 --- a/arch/x86/crypto/sha512-ssse3-asm.S
14625 +++ b/arch/x86/crypto/sha512-ssse3-asm.S
14626 @@ -48,6 +48,7 @@
14627 ########################################################################
14628
14629 #include <linux/linkage.h>
14630 +#include <asm/alternative-asm.h>
14631
14632 .text
14633
14634 @@ -363,6 +364,7 @@ updateblock:
14635 mov frame_RSPSAVE(%rsp), %rsp
14636
14637 nowork:
14638 + pax_force_retaddr
14639 ret
14640 ENDPROC(sha512_transform_ssse3)
14641
14642 diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14643 index 0505813..b067311 100644
14644 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14645 +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14646 @@ -24,6 +24,7 @@
14647 */
14648
14649 #include <linux/linkage.h>
14650 +#include <asm/alternative-asm.h>
14651 #include "glue_helper-asm-avx.S"
14652
14653 .file "twofish-avx-x86_64-asm_64.S"
14654 @@ -284,6 +285,7 @@ __twofish_enc_blk8:
14655 outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
14656 outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
14657
14658 + pax_force_retaddr
14659 ret;
14660 ENDPROC(__twofish_enc_blk8)
14661
14662 @@ -324,6 +326,7 @@ __twofish_dec_blk8:
14663 outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
14664 outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
14665
14666 + pax_force_retaddr
14667 ret;
14668 ENDPROC(__twofish_dec_blk8)
14669
14670 @@ -342,6 +345,7 @@ ENTRY(twofish_ecb_enc_8way)
14671
14672 store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14673
14674 + pax_force_retaddr
14675 ret;
14676 ENDPROC(twofish_ecb_enc_8way)
14677
14678 @@ -360,6 +364,7 @@ ENTRY(twofish_ecb_dec_8way)
14679
14680 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14681
14682 + pax_force_retaddr
14683 ret;
14684 ENDPROC(twofish_ecb_dec_8way)
14685
14686 @@ -370,19 +375,20 @@ ENTRY(twofish_cbc_dec_8way)
14687 * %rdx: src
14688 */
14689
14690 - pushq %r12;
14691 + pushq %r14;
14692
14693 movq %rsi, %r11;
14694 - movq %rdx, %r12;
14695 + movq %rdx, %r14;
14696
14697 load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14698
14699 call __twofish_dec_blk8;
14700
14701 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14702 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14703
14704 - popq %r12;
14705 + popq %r14;
14706
14707 + pax_force_retaddr
14708 ret;
14709 ENDPROC(twofish_cbc_dec_8way)
14710
14711 @@ -394,20 +400,21 @@ ENTRY(twofish_ctr_8way)
14712 * %rcx: iv (little endian, 128bit)
14713 */
14714
14715 - pushq %r12;
14716 + pushq %r14;
14717
14718 movq %rsi, %r11;
14719 - movq %rdx, %r12;
14720 + movq %rdx, %r14;
14721
14722 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
14723 RD2, RX0, RX1, RY0);
14724
14725 call __twofish_enc_blk8;
14726
14727 - store_ctr_8way(%r12, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14728 + store_ctr_8way(%r14, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14729
14730 - popq %r12;
14731 + popq %r14;
14732
14733 + pax_force_retaddr
14734 ret;
14735 ENDPROC(twofish_ctr_8way)
14736
14737 @@ -430,6 +437,7 @@ ENTRY(twofish_xts_enc_8way)
14738 /* dst <= regs xor IVs(in dst) */
14739 store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14740
14741 + pax_force_retaddr
14742 ret;
14743 ENDPROC(twofish_xts_enc_8way)
14744
14745 @@ -452,5 +460,6 @@ ENTRY(twofish_xts_dec_8way)
14746 /* dst <= regs xor IVs(in dst) */
14747 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14748
14749 + pax_force_retaddr
14750 ret;
14751 ENDPROC(twofish_xts_dec_8way)
14752 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14753 index 1c3b7ce..02f578d 100644
14754 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14755 +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14756 @@ -21,6 +21,7 @@
14757 */
14758
14759 #include <linux/linkage.h>
14760 +#include <asm/alternative-asm.h>
14761
14762 .file "twofish-x86_64-asm-3way.S"
14763 .text
14764 @@ -258,6 +259,7 @@ ENTRY(__twofish_enc_blk_3way)
14765 popq %r13;
14766 popq %r14;
14767 popq %r15;
14768 + pax_force_retaddr
14769 ret;
14770
14771 .L__enc_xor3:
14772 @@ -269,6 +271,7 @@ ENTRY(__twofish_enc_blk_3way)
14773 popq %r13;
14774 popq %r14;
14775 popq %r15;
14776 + pax_force_retaddr
14777 ret;
14778 ENDPROC(__twofish_enc_blk_3way)
14779
14780 @@ -308,5 +311,6 @@ ENTRY(twofish_dec_blk_3way)
14781 popq %r13;
14782 popq %r14;
14783 popq %r15;
14784 + pax_force_retaddr
14785 ret;
14786 ENDPROC(twofish_dec_blk_3way)
14787 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
14788 index a350c99..c1bac24 100644
14789 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
14790 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
14791 @@ -22,6 +22,7 @@
14792
14793 #include <linux/linkage.h>
14794 #include <asm/asm-offsets.h>
14795 +#include <asm/alternative-asm.h>
14796
14797 #define a_offset 0
14798 #define b_offset 4
14799 @@ -265,6 +266,7 @@ ENTRY(twofish_enc_blk)
14800
14801 popq R1
14802 movl $1,%eax
14803 + pax_force_retaddr
14804 ret
14805 ENDPROC(twofish_enc_blk)
14806
14807 @@ -317,5 +319,6 @@ ENTRY(twofish_dec_blk)
14808
14809 popq R1
14810 movl $1,%eax
14811 + pax_force_retaddr
14812 ret
14813 ENDPROC(twofish_dec_blk)
14814 diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
14815 index f4e6308..7ba29a1 100644
14816 --- a/arch/x86/entry/calling.h
14817 +++ b/arch/x86/entry/calling.h
14818 @@ -93,23 +93,26 @@ For 32-bit we have the following conventions - kernel is built with
14819 .endm
14820
14821 .macro SAVE_C_REGS_HELPER offset=0 rax=1 rcx=1 r8910=1 r11=1
14822 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14823 + movq %r12, R12+\offset(%rsp)
14824 +#endif
14825 .if \r11
14826 - movq %r11, 6*8+\offset(%rsp)
14827 + movq %r11, R11+\offset(%rsp)
14828 .endif
14829 .if \r8910
14830 - movq %r10, 7*8+\offset(%rsp)
14831 - movq %r9, 8*8+\offset(%rsp)
14832 - movq %r8, 9*8+\offset(%rsp)
14833 + movq %r10, R10+\offset(%rsp)
14834 + movq %r9, R9+\offset(%rsp)
14835 + movq %r8, R8+\offset(%rsp)
14836 .endif
14837 .if \rax
14838 - movq %rax, 10*8+\offset(%rsp)
14839 + movq %rax, RAX+\offset(%rsp)
14840 .endif
14841 .if \rcx
14842 - movq %rcx, 11*8+\offset(%rsp)
14843 + movq %rcx, RCX+\offset(%rsp)
14844 .endif
14845 - movq %rdx, 12*8+\offset(%rsp)
14846 - movq %rsi, 13*8+\offset(%rsp)
14847 - movq %rdi, 14*8+\offset(%rsp)
14848 + movq %rdx, RDX+\offset(%rsp)
14849 + movq %rsi, RSI+\offset(%rsp)
14850 + movq %rdi, RDI+\offset(%rsp)
14851 .endm
14852 .macro SAVE_C_REGS offset=0
14853 SAVE_C_REGS_HELPER \offset, 1, 1, 1, 1
14854 @@ -128,76 +131,87 @@ For 32-bit we have the following conventions - kernel is built with
14855 .endm
14856
14857 .macro SAVE_EXTRA_REGS offset=0
14858 - movq %r15, 0*8+\offset(%rsp)
14859 - movq %r14, 1*8+\offset(%rsp)
14860 - movq %r13, 2*8+\offset(%rsp)
14861 - movq %r12, 3*8+\offset(%rsp)
14862 - movq %rbp, 4*8+\offset(%rsp)
14863 - movq %rbx, 5*8+\offset(%rsp)
14864 + movq %r15, R15+\offset(%rsp)
14865 + movq %r14, R14+\offset(%rsp)
14866 + movq %r13, R13+\offset(%rsp)
14867 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14868 + movq %r12, R12+\offset(%rsp)
14869 +#endif
14870 + movq %rbp, RBP+\offset(%rsp)
14871 + movq %rbx, RBX+\offset(%rsp)
14872 .endm
14873 .macro SAVE_EXTRA_REGS_RBP offset=0
14874 - movq %rbp, 4*8+\offset(%rsp)
14875 + movq %rbp, RBP+\offset(%rsp)
14876 .endm
14877
14878 .macro RESTORE_EXTRA_REGS offset=0
14879 - movq 0*8+\offset(%rsp), %r15
14880 - movq 1*8+\offset(%rsp), %r14
14881 - movq 2*8+\offset(%rsp), %r13
14882 - movq 3*8+\offset(%rsp), %r12
14883 - movq 4*8+\offset(%rsp), %rbp
14884 - movq 5*8+\offset(%rsp), %rbx
14885 + movq R15+\offset(%rsp), %r15
14886 + movq R14+\offset(%rsp), %r14
14887 + movq R13+\offset(%rsp), %r13
14888 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14889 + movq R12+\offset(%rsp), %r12
14890 +#endif
14891 + movq RBP+\offset(%rsp), %rbp
14892 + movq RBX+\offset(%rsp), %rbx
14893 .endm
14894
14895 .macro ZERO_EXTRA_REGS
14896 xorl %r15d, %r15d
14897 xorl %r14d, %r14d
14898 xorl %r13d, %r13d
14899 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14900 xorl %r12d, %r12d
14901 +#endif
14902 xorl %ebp, %ebp
14903 xorl %ebx, %ebx
14904 .endm
14905
14906 - .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1
14907 + .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1, rstor_r12=1
14908 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14909 + .if \rstor_r12
14910 + movq R12(%rsp), %r12
14911 + .endif
14912 +#endif
14913 .if \rstor_r11
14914 - movq 6*8(%rsp), %r11
14915 + movq R11(%rsp), %r11
14916 .endif
14917 .if \rstor_r8910
14918 - movq 7*8(%rsp), %r10
14919 - movq 8*8(%rsp), %r9
14920 - movq 9*8(%rsp), %r8
14921 + movq R10(%rsp), %r10
14922 + movq R9(%rsp), %r9
14923 + movq R8(%rsp), %r8
14924 .endif
14925 .if \rstor_rax
14926 - movq 10*8(%rsp), %rax
14927 + movq RAX(%rsp), %rax
14928 .endif
14929 .if \rstor_rcx
14930 - movq 11*8(%rsp), %rcx
14931 + movq RCX(%rsp), %rcx
14932 .endif
14933 .if \rstor_rdx
14934 - movq 12*8(%rsp), %rdx
14935 + movq RDX(%rsp), %rdx
14936 .endif
14937 - movq 13*8(%rsp), %rsi
14938 - movq 14*8(%rsp), %rdi
14939 + movq RSI(%rsp), %rsi
14940 + movq RDI(%rsp), %rdi
14941 .endm
14942 .macro RESTORE_C_REGS
14943 - RESTORE_C_REGS_HELPER 1,1,1,1,1
14944 + RESTORE_C_REGS_HELPER 1,1,1,1,1,1
14945 .endm
14946 .macro RESTORE_C_REGS_EXCEPT_RAX
14947 - RESTORE_C_REGS_HELPER 0,1,1,1,1
14948 + RESTORE_C_REGS_HELPER 0,1,1,1,1,0
14949 .endm
14950 .macro RESTORE_C_REGS_EXCEPT_RCX
14951 - RESTORE_C_REGS_HELPER 1,0,1,1,1
14952 + RESTORE_C_REGS_HELPER 1,0,1,1,1,0
14953 .endm
14954 .macro RESTORE_C_REGS_EXCEPT_R11
14955 - RESTORE_C_REGS_HELPER 1,1,0,1,1
14956 + RESTORE_C_REGS_HELPER 1,1,0,1,1,1
14957 .endm
14958 .macro RESTORE_C_REGS_EXCEPT_RCX_R11
14959 - RESTORE_C_REGS_HELPER 1,0,0,1,1
14960 + RESTORE_C_REGS_HELPER 1,0,0,1,1,1
14961 .endm
14962 .macro RESTORE_RSI_RDI
14963 - RESTORE_C_REGS_HELPER 0,0,0,0,0
14964 + RESTORE_C_REGS_HELPER 0,0,0,0,0,1
14965 .endm
14966 .macro RESTORE_RSI_RDI_RDX
14967 - RESTORE_C_REGS_HELPER 0,0,0,0,1
14968 + RESTORE_C_REGS_HELPER 0,0,0,0,1,1
14969 .endm
14970
14971 .macro REMOVE_PT_GPREGS_FROM_STACK addskip=0
14972 diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
14973 index 21dc60a..844def1 100644
14974 --- a/arch/x86/entry/entry_32.S
14975 +++ b/arch/x86/entry/entry_32.S
14976 @@ -157,13 +157,154 @@
14977 movl \reg, PT_GS(%esp)
14978 .endm
14979 .macro SET_KERNEL_GS reg
14980 +
14981 +#ifdef CONFIG_CC_STACKPROTECTOR
14982 movl $(__KERNEL_STACK_CANARY), \reg
14983 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
14984 + movl $(__USER_DS), \reg
14985 +#else
14986 + xorl \reg, \reg
14987 +#endif
14988 +
14989 movl \reg, %gs
14990 .endm
14991
14992 #endif /* CONFIG_X86_32_LAZY_GS */
14993
14994 -.macro SAVE_ALL
14995 +.macro pax_enter_kernel
14996 +#ifdef CONFIG_PAX_KERNEXEC
14997 + call pax_enter_kernel
14998 +#endif
14999 +.endm
15000 +
15001 +.macro pax_exit_kernel
15002 +#ifdef CONFIG_PAX_KERNEXEC
15003 + call pax_exit_kernel
15004 +#endif
15005 +.endm
15006 +
15007 +#ifdef CONFIG_PAX_KERNEXEC
15008 +ENTRY(pax_enter_kernel)
15009 +#ifdef CONFIG_PARAVIRT
15010 + pushl %eax
15011 + pushl %ecx
15012 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0)
15013 + mov %eax, %esi
15014 +#else
15015 + mov %cr0, %esi
15016 +#endif
15017 + bts $X86_CR0_WP_BIT, %esi
15018 + jnc 1f
15019 + mov %cs, %esi
15020 + cmp $__KERNEL_CS, %esi
15021 + jz 3f
15022 + ljmp $__KERNEL_CS, $3f
15023 +1: ljmp $__KERNEXEC_KERNEL_CS, $2f
15024 +2:
15025 +#ifdef CONFIG_PARAVIRT
15026 + mov %esi, %eax
15027 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
15028 +#else
15029 + mov %esi, %cr0
15030 +#endif
15031 +3:
15032 +#ifdef CONFIG_PARAVIRT
15033 + popl %ecx
15034 + popl %eax
15035 +#endif
15036 + ret
15037 +ENDPROC(pax_enter_kernel)
15038 +
15039 +ENTRY(pax_exit_kernel)
15040 +#ifdef CONFIG_PARAVIRT
15041 + pushl %eax
15042 + pushl %ecx
15043 +#endif
15044 + mov %cs, %esi
15045 + cmp $__KERNEXEC_KERNEL_CS, %esi
15046 + jnz 2f
15047 +#ifdef CONFIG_PARAVIRT
15048 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0);
15049 + mov %eax, %esi
15050 +#else
15051 + mov %cr0, %esi
15052 +#endif
15053 + btr $X86_CR0_WP_BIT, %esi
15054 + ljmp $__KERNEL_CS, $1f
15055 +1:
15056 +#ifdef CONFIG_PARAVIRT
15057 + mov %esi, %eax
15058 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0);
15059 +#else
15060 + mov %esi, %cr0
15061 +#endif
15062 +2:
15063 +#ifdef CONFIG_PARAVIRT
15064 + popl %ecx
15065 + popl %eax
15066 +#endif
15067 + ret
15068 +ENDPROC(pax_exit_kernel)
15069 +#endif
15070 +
15071 + .macro pax_erase_kstack
15072 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15073 + call pax_erase_kstack
15074 +#endif
15075 + .endm
15076 +
15077 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15078 +/*
15079 + * ebp: thread_info
15080 + */
15081 +ENTRY(pax_erase_kstack)
15082 + pushl %edi
15083 + pushl %ecx
15084 + pushl %eax
15085 +
15086 + mov TI_lowest_stack(%ebp), %edi
15087 + mov $-0xBEEF, %eax
15088 + std
15089 +
15090 +1: mov %edi, %ecx
15091 + and $THREAD_SIZE_asm - 1, %ecx
15092 + shr $2, %ecx
15093 + repne scasl
15094 + jecxz 2f
15095 +
15096 + cmp $2*16, %ecx
15097 + jc 2f
15098 +
15099 + mov $2*16, %ecx
15100 + repe scasl
15101 + jecxz 2f
15102 + jne 1b
15103 +
15104 +2: cld
15105 + or $2*4, %edi
15106 + mov %esp, %ecx
15107 + sub %edi, %ecx
15108 +
15109 + cmp $THREAD_SIZE_asm, %ecx
15110 + jb 3f
15111 + ud2
15112 +3:
15113 +
15114 + shr $2, %ecx
15115 + rep stosl
15116 +
15117 + mov TI_task_thread_sp0(%ebp), %edi
15118 + sub $128, %edi
15119 + mov %edi, TI_lowest_stack(%ebp)
15120 +
15121 + popl %eax
15122 + popl %ecx
15123 + popl %edi
15124 + ret
15125 +ENDPROC(pax_erase_kstack)
15126 +#endif
15127 +
15128 +.macro __SAVE_ALL _DS
15129 cld
15130 PUSH_GS
15131 pushl %fs
15132 @@ -176,7 +317,7 @@
15133 pushl %edx
15134 pushl %ecx
15135 pushl %ebx
15136 - movl $(__USER_DS), %edx
15137 + movl $\_DS, %edx
15138 movl %edx, %ds
15139 movl %edx, %es
15140 movl $(__KERNEL_PERCPU), %edx
15141 @@ -184,6 +325,15 @@
15142 SET_KERNEL_GS %edx
15143 .endm
15144
15145 +.macro SAVE_ALL
15146 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15147 + __SAVE_ALL __KERNEL_DS
15148 + pax_enter_kernel
15149 +#else
15150 + __SAVE_ALL __USER_DS
15151 +#endif
15152 +.endm
15153 +
15154 .macro RESTORE_INT_REGS
15155 popl %ebx
15156 popl %ecx
15157 @@ -222,7 +372,7 @@ ENTRY(ret_from_fork)
15158 pushl $0x0202 # Reset kernel eflags
15159 popfl
15160 jmp syscall_exit
15161 -END(ret_from_fork)
15162 +ENDPROC(ret_from_fork)
15163
15164 ENTRY(ret_from_kernel_thread)
15165 pushl %eax
15166 @@ -262,7 +412,15 @@ ret_from_intr:
15167 andl $SEGMENT_RPL_MASK, %eax
15168 #endif
15169 cmpl $USER_RPL, %eax
15170 +
15171 +#ifdef CONFIG_PAX_KERNEXEC
15172 + jae resume_userspace
15173 +
15174 + pax_exit_kernel
15175 + jmp resume_kernel
15176 +#else
15177 jb resume_kernel # not returning to v8086 or userspace
15178 +#endif
15179
15180 ENTRY(resume_userspace)
15181 LOCKDEP_SYS_EXIT
15182 @@ -274,8 +432,8 @@ ENTRY(resume_userspace)
15183 andl $_TIF_WORK_MASK, %ecx # is there any work to be done on
15184 # int/exception return?
15185 jne work_pending
15186 - jmp restore_all
15187 -END(ret_from_exception)
15188 + jmp restore_all_pax
15189 +ENDPROC(ret_from_exception)
15190
15191 #ifdef CONFIG_PREEMPT
15192 ENTRY(resume_kernel)
15193 @@ -287,7 +445,7 @@ need_resched:
15194 jz restore_all
15195 call preempt_schedule_irq
15196 jmp need_resched
15197 -END(resume_kernel)
15198 +ENDPROC(resume_kernel)
15199 #endif
15200
15201 /*
15202 @@ -312,32 +470,44 @@ sysenter_past_esp:
15203 pushl $__USER_CS
15204 /*
15205 * Push current_thread_info()->sysenter_return to the stack.
15206 - * A tiny bit of offset fixup is necessary: TI_sysenter_return
15207 - * is relative to thread_info, which is at the bottom of the
15208 - * kernel stack page. 4*4 means the 4 words pushed above;
15209 - * TOP_OF_KERNEL_STACK_PADDING takes us to the top of the stack;
15210 - * and THREAD_SIZE takes us to the bottom.
15211 */
15212 - pushl ((TI_sysenter_return) - THREAD_SIZE + TOP_OF_KERNEL_STACK_PADDING + 4*4)(%esp)
15213 + pushl $0
15214
15215 pushl %eax
15216 SAVE_ALL
15217 + GET_THREAD_INFO(%ebp)
15218 + movl TI_sysenter_return(%ebp), %ebp
15219 + movl %ebp, PT_EIP(%esp)
15220 ENABLE_INTERRUPTS(CLBR_NONE)
15221
15222 /*
15223 * Load the potential sixth argument from user stack.
15224 * Careful about security.
15225 */
15226 + movl PT_OLDESP(%esp),%ebp
15227 +
15228 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15229 + mov PT_OLDSS(%esp), %ds
15230 +1: movl %ds:(%ebp), %ebp
15231 + push %ss
15232 + pop %ds
15233 +#else
15234 cmpl $__PAGE_OFFSET-3, %ebp
15235 jae syscall_fault
15236 ASM_STAC
15237 1: movl (%ebp), %ebp
15238 ASM_CLAC
15239 +#endif
15240 +
15241 movl %ebp, PT_EBP(%esp)
15242 _ASM_EXTABLE(1b, syscall_fault)
15243
15244 GET_THREAD_INFO(%ebp)
15245
15246 +#ifdef CONFIG_PAX_RANDKSTACK
15247 + pax_erase_kstack
15248 +#endif
15249 +
15250 testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%ebp)
15251 jnz sysenter_audit
15252 sysenter_do_call:
15253 @@ -353,12 +523,24 @@ sysenter_after_call:
15254 testl $_TIF_ALLWORK_MASK, %ecx
15255 jnz sysexit_audit
15256 sysenter_exit:
15257 +
15258 +#ifdef CONFIG_PAX_RANDKSTACK
15259 + pushl %eax
15260 + movl %esp, %eax
15261 + call pax_randomize_kstack
15262 + popl %eax
15263 +#endif
15264 +
15265 + pax_erase_kstack
15266 +
15267 /* if something modifies registers it must also disable sysexit */
15268 movl PT_EIP(%esp), %edx
15269 movl PT_OLDESP(%esp), %ecx
15270 xorl %ebp, %ebp
15271 TRACE_IRQS_ON
15272 1: mov PT_FS(%esp), %fs
15273 +2: mov PT_DS(%esp), %ds
15274 +3: mov PT_ES(%esp), %es
15275 PTGS_TO_GS
15276 ENABLE_INTERRUPTS_SYSEXIT
15277
15278 @@ -372,6 +554,9 @@ sysenter_audit:
15279 pushl PT_ESI(%esp) /* a3: 5th arg */
15280 pushl PT_EDX+4(%esp) /* a2: 4th arg */
15281 call __audit_syscall_entry
15282 +
15283 + pax_erase_kstack
15284 +
15285 popl %ecx /* get that remapped edx off the stack */
15286 popl %ecx /* get that remapped esi off the stack */
15287 movl PT_EAX(%esp), %eax /* reload syscall number */
15288 @@ -397,10 +582,16 @@ sysexit_audit:
15289 #endif
15290
15291 .pushsection .fixup, "ax"
15292 -2: movl $0, PT_FS(%esp)
15293 +4: movl $0, PT_FS(%esp)
15294 + jmp 1b
15295 +5: movl $0, PT_DS(%esp)
15296 + jmp 1b
15297 +6: movl $0, PT_ES(%esp)
15298 jmp 1b
15299 .popsection
15300 - _ASM_EXTABLE(1b, 2b)
15301 + _ASM_EXTABLE(1b, 4b)
15302 + _ASM_EXTABLE(2b, 5b)
15303 + _ASM_EXTABLE(3b, 6b)
15304 PTGS_TO_GS_EX
15305 ENDPROC(entry_SYSENTER_32)
15306
15307 @@ -410,6 +601,11 @@ ENTRY(entry_INT80_32)
15308 pushl %eax # save orig_eax
15309 SAVE_ALL
15310 GET_THREAD_INFO(%ebp)
15311 +
15312 +#ifdef CONFIG_PAX_RANDKSTACK
15313 + pax_erase_kstack
15314 +#endif
15315 +
15316 # system call tracing in operation / emulation
15317 testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%ebp)
15318 jnz syscall_trace_entry
15319 @@ -429,6 +625,15 @@ syscall_exit:
15320 testl $_TIF_ALLWORK_MASK, %ecx # current->work
15321 jnz syscall_exit_work
15322
15323 +restore_all_pax:
15324 +
15325 +#ifdef CONFIG_PAX_RANDKSTACK
15326 + movl %esp, %eax
15327 + call pax_randomize_kstack
15328 +#endif
15329 +
15330 + pax_erase_kstack
15331 +
15332 restore_all:
15333 TRACE_IRQS_IRET
15334 restore_all_notrace:
15335 @@ -483,14 +688,34 @@ ldt_ss:
15336 * compensating for the offset by changing to the ESPFIX segment with
15337 * a base address that matches for the difference.
15338 */
15339 -#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + (GDT_ENTRY_ESPFIX_SS * 8)
15340 +#define GDT_ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8)(%ebx)
15341 mov %esp, %edx /* load kernel esp */
15342 mov PT_OLDESP(%esp), %eax /* load userspace esp */
15343 mov %dx, %ax /* eax: new kernel esp */
15344 sub %eax, %edx /* offset (low word is 0) */
15345 +#ifdef CONFIG_SMP
15346 + movl PER_CPU_VAR(cpu_number), %ebx
15347 + shll $PAGE_SHIFT_asm, %ebx
15348 + addl $cpu_gdt_table, %ebx
15349 +#else
15350 + movl $cpu_gdt_table, %ebx
15351 +#endif
15352 shr $16, %edx
15353 - mov %dl, GDT_ESPFIX_SS + 4 /* bits 16..23 */
15354 - mov %dh, GDT_ESPFIX_SS + 7 /* bits 24..31 */
15355 +
15356 +#ifdef CONFIG_PAX_KERNEXEC
15357 + mov %cr0, %esi
15358 + btr $X86_CR0_WP_BIT, %esi
15359 + mov %esi, %cr0
15360 +#endif
15361 +
15362 + mov %dl, 4 + GDT_ESPFIX_SS /* bits 16..23 */
15363 + mov %dh, 7 + GDT_ESPFIX_SS /* bits 24..31 */
15364 +
15365 +#ifdef CONFIG_PAX_KERNEXEC
15366 + bts $X86_CR0_WP_BIT, %esi
15367 + mov %esi, %cr0
15368 +#endif
15369 +
15370 pushl $__ESPFIX_SS
15371 pushl %eax /* new kernel esp */
15372 /*
15373 @@ -519,20 +744,18 @@ work_resched:
15374 movl TI_flags(%ebp), %ecx
15375 andl $_TIF_WORK_MASK, %ecx # is there any work to be done other
15376 # than syscall tracing?
15377 - jz restore_all
15378 + jz restore_all_pax
15379 testb $_TIF_NEED_RESCHED, %cl
15380 jnz work_resched
15381
15382 work_notifysig: # deal with pending signals and
15383 # notify-resume requests
15384 + movl %esp, %eax
15385 #ifdef CONFIG_VM86
15386 testl $X86_EFLAGS_VM, PT_EFLAGS(%esp)
15387 - movl %esp, %eax
15388 jnz work_notifysig_v86 # returning to kernel-space or
15389 # vm86-space
15390 1:
15391 -#else
15392 - movl %esp, %eax
15393 #endif
15394 TRACE_IRQS_ON
15395 ENABLE_INTERRUPTS(CLBR_NONE)
15396 @@ -553,7 +776,7 @@ work_notifysig_v86:
15397 movl %eax, %esp
15398 jmp 1b
15399 #endif
15400 -END(work_pending)
15401 +ENDPROC(work_pending)
15402
15403 # perform syscall exit tracing
15404 ALIGN
15405 @@ -561,11 +784,14 @@ syscall_trace_entry:
15406 movl $-ENOSYS, PT_EAX(%esp)
15407 movl %esp, %eax
15408 call syscall_trace_enter
15409 +
15410 + pax_erase_kstack
15411 +
15412 /* What it returned is what we'll actually use. */
15413 cmpl $(NR_syscalls), %eax
15414 jnae syscall_call
15415 jmp syscall_exit
15416 -END(syscall_trace_entry)
15417 +ENDPROC(syscall_trace_entry)
15418
15419 # perform syscall exit tracing
15420 ALIGN
15421 @@ -578,24 +804,28 @@ syscall_exit_work:
15422 movl %esp, %eax
15423 call syscall_trace_leave
15424 jmp resume_userspace
15425 -END(syscall_exit_work)
15426 +ENDPROC(syscall_exit_work)
15427
15428 syscall_fault:
15429 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15430 + push %ss
15431 + pop %ds
15432 +#endif
15433 ASM_CLAC
15434 GET_THREAD_INFO(%ebp)
15435 movl $-EFAULT, PT_EAX(%esp)
15436 jmp resume_userspace
15437 -END(syscall_fault)
15438 +ENDPROC(syscall_fault)
15439
15440 syscall_badsys:
15441 movl $-ENOSYS, %eax
15442 jmp syscall_after_call
15443 -END(syscall_badsys)
15444 +ENDPROC(syscall_badsys)
15445
15446 sysenter_badsys:
15447 movl $-ENOSYS, %eax
15448 jmp sysenter_after_call
15449 -END(sysenter_badsys)
15450 +ENDPROC(sysenter_badsys)
15451
15452 .macro FIXUP_ESPFIX_STACK
15453 /*
15454 @@ -607,8 +837,15 @@ END(sysenter_badsys)
15455 */
15456 #ifdef CONFIG_X86_ESPFIX32
15457 /* fixup the stack */
15458 - mov GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
15459 - mov GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
15460 +#ifdef CONFIG_SMP
15461 + movl PER_CPU_VAR(cpu_number), %ebx
15462 + shll $PAGE_SHIFT_asm, %ebx
15463 + addl $cpu_gdt_table, %ebx
15464 +#else
15465 + movl $cpu_gdt_table, %ebx
15466 +#endif
15467 + mov 4 + GDT_ESPFIX_SS, %al /* bits 16..23 */
15468 + mov 7 + GDT_ESPFIX_SS, %ah /* bits 24..31 */
15469 shl $16, %eax
15470 addl %esp, %eax /* the adjusted stack pointer */
15471 pushl $__KERNEL_DS
15472 @@ -644,7 +881,7 @@ ENTRY(irq_entries_start)
15473 jmp common_interrupt
15474 .align 8
15475 .endr
15476 -END(irq_entries_start)
15477 +ENDPROC(irq_entries_start)
15478
15479 /*
15480 * the CPU automatically disables interrupts when executing an IRQ vector,
15481 @@ -691,7 +928,7 @@ ENTRY(coprocessor_error)
15482 pushl $0
15483 pushl $do_coprocessor_error
15484 jmp error_code
15485 -END(coprocessor_error)
15486 +ENDPROC(coprocessor_error)
15487
15488 ENTRY(simd_coprocessor_error)
15489 ASM_CLAC
15490 @@ -705,25 +942,25 @@ ENTRY(simd_coprocessor_error)
15491 pushl $do_simd_coprocessor_error
15492 #endif
15493 jmp error_code
15494 -END(simd_coprocessor_error)
15495 +ENDPROC(simd_coprocessor_error)
15496
15497 ENTRY(device_not_available)
15498 ASM_CLAC
15499 pushl $-1 # mark this as an int
15500 pushl $do_device_not_available
15501 jmp error_code
15502 -END(device_not_available)
15503 +ENDPROC(device_not_available)
15504
15505 #ifdef CONFIG_PARAVIRT
15506 ENTRY(native_iret)
15507 iret
15508 _ASM_EXTABLE(native_iret, iret_exc)
15509 -END(native_iret)
15510 +ENDPROC(native_iret)
15511
15512 ENTRY(native_irq_enable_sysexit)
15513 sti
15514 sysexit
15515 -END(native_irq_enable_sysexit)
15516 +ENDPROC(native_irq_enable_sysexit)
15517 #endif
15518
15519 ENTRY(overflow)
15520 @@ -731,59 +968,59 @@ ENTRY(overflow)
15521 pushl $0
15522 pushl $do_overflow
15523 jmp error_code
15524 -END(overflow)
15525 +ENDPROC(overflow)
15526
15527 ENTRY(bounds)
15528 ASM_CLAC
15529 pushl $0
15530 pushl $do_bounds
15531 jmp error_code
15532 -END(bounds)
15533 +ENDPROC(bounds)
15534
15535 ENTRY(invalid_op)
15536 ASM_CLAC
15537 pushl $0
15538 pushl $do_invalid_op
15539 jmp error_code
15540 -END(invalid_op)
15541 +ENDPROC(invalid_op)
15542
15543 ENTRY(coprocessor_segment_overrun)
15544 ASM_CLAC
15545 pushl $0
15546 pushl $do_coprocessor_segment_overrun
15547 jmp error_code
15548 -END(coprocessor_segment_overrun)
15549 +ENDPROC(coprocessor_segment_overrun)
15550
15551 ENTRY(invalid_TSS)
15552 ASM_CLAC
15553 pushl $do_invalid_TSS
15554 jmp error_code
15555 -END(invalid_TSS)
15556 +ENDPROC(invalid_TSS)
15557
15558 ENTRY(segment_not_present)
15559 ASM_CLAC
15560 pushl $do_segment_not_present
15561 jmp error_code
15562 -END(segment_not_present)
15563 +ENDPROC(segment_not_present)
15564
15565 ENTRY(stack_segment)
15566 ASM_CLAC
15567 pushl $do_stack_segment
15568 jmp error_code
15569 -END(stack_segment)
15570 +ENDPROC(stack_segment)
15571
15572 ENTRY(alignment_check)
15573 ASM_CLAC
15574 pushl $do_alignment_check
15575 jmp error_code
15576 -END(alignment_check)
15577 +ENDPROC(alignment_check)
15578
15579 ENTRY(divide_error)
15580 ASM_CLAC
15581 pushl $0 # no error code
15582 pushl $do_divide_error
15583 jmp error_code
15584 -END(divide_error)
15585 +ENDPROC(divide_error)
15586
15587 #ifdef CONFIG_X86_MCE
15588 ENTRY(machine_check)
15589 @@ -791,7 +1028,7 @@ ENTRY(machine_check)
15590 pushl $0
15591 pushl machine_check_vector
15592 jmp error_code
15593 -END(machine_check)
15594 +ENDPROC(machine_check)
15595 #endif
15596
15597 ENTRY(spurious_interrupt_bug)
15598 @@ -799,7 +1036,7 @@ ENTRY(spurious_interrupt_bug)
15599 pushl $0
15600 pushl $do_spurious_interrupt_bug
15601 jmp error_code
15602 -END(spurious_interrupt_bug)
15603 +ENDPROC(spurious_interrupt_bug)
15604
15605 #ifdef CONFIG_XEN
15606 /*
15607 @@ -906,7 +1143,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
15608
15609 ENTRY(mcount)
15610 ret
15611 -END(mcount)
15612 +ENDPROC(mcount)
15613
15614 ENTRY(ftrace_caller)
15615 pushl %eax
15616 @@ -936,7 +1173,7 @@ ftrace_graph_call:
15617 .globl ftrace_stub
15618 ftrace_stub:
15619 ret
15620 -END(ftrace_caller)
15621 +ENDPROC(ftrace_caller)
15622
15623 ENTRY(ftrace_regs_caller)
15624 pushf /* push flags before compare (in cs location) */
15625 @@ -1034,7 +1271,7 @@ trace:
15626 popl %ecx
15627 popl %eax
15628 jmp ftrace_stub
15629 -END(mcount)
15630 +ENDPROC(mcount)
15631 #endif /* CONFIG_DYNAMIC_FTRACE */
15632 #endif /* CONFIG_FUNCTION_TRACER */
15633
15634 @@ -1052,7 +1289,7 @@ ENTRY(ftrace_graph_caller)
15635 popl %ecx
15636 popl %eax
15637 ret
15638 -END(ftrace_graph_caller)
15639 +ENDPROC(ftrace_graph_caller)
15640
15641 .globl return_to_handler
15642 return_to_handler:
15643 @@ -1100,14 +1337,17 @@ error_code:
15644 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
15645 REG_TO_PTGS %ecx
15646 SET_KERNEL_GS %ecx
15647 - movl $(__USER_DS), %ecx
15648 + movl $(__KERNEL_DS), %ecx
15649 movl %ecx, %ds
15650 movl %ecx, %es
15651 +
15652 + pax_enter_kernel
15653 +
15654 TRACE_IRQS_OFF
15655 movl %esp, %eax # pt_regs pointer
15656 call *%edi
15657 jmp ret_from_exception
15658 -END(page_fault)
15659 +ENDPROC(page_fault)
15660
15661 /*
15662 * Debug traps and NMI can happen at the one SYSENTER instruction
15663 @@ -1145,7 +1385,7 @@ debug_stack_correct:
15664 movl %esp, %eax # pt_regs pointer
15665 call do_debug
15666 jmp ret_from_exception
15667 -END(debug)
15668 +ENDPROC(debug)
15669
15670 /*
15671 * NMI is doubly nasty. It can happen _while_ we're handling
15672 @@ -1184,6 +1424,9 @@ nmi_stack_correct:
15673 xorl %edx, %edx # zero error code
15674 movl %esp, %eax # pt_regs pointer
15675 call do_nmi
15676 +
15677 + pax_exit_kernel
15678 +
15679 jmp restore_all_notrace
15680
15681 nmi_stack_fixup:
15682 @@ -1217,11 +1460,14 @@ nmi_espfix_stack:
15683 FIXUP_ESPFIX_STACK # %eax == %esp
15684 xorl %edx, %edx # zero error code
15685 call do_nmi
15686 +
15687 + pax_exit_kernel
15688 +
15689 RESTORE_REGS
15690 lss 12+4(%esp), %esp # back to espfix stack
15691 jmp irq_return
15692 #endif
15693 -END(nmi)
15694 +ENDPROC(nmi)
15695
15696 ENTRY(int3)
15697 ASM_CLAC
15698 @@ -1232,17 +1478,17 @@ ENTRY(int3)
15699 movl %esp, %eax # pt_regs pointer
15700 call do_int3
15701 jmp ret_from_exception
15702 -END(int3)
15703 +ENDPROC(int3)
15704
15705 ENTRY(general_protection)
15706 pushl $do_general_protection
15707 jmp error_code
15708 -END(general_protection)
15709 +ENDPROC(general_protection)
15710
15711 #ifdef CONFIG_KVM_GUEST
15712 ENTRY(async_page_fault)
15713 ASM_CLAC
15714 pushl $do_async_page_fault
15715 jmp error_code
15716 -END(async_page_fault)
15717 +ENDPROC(async_page_fault)
15718 #endif
15719 diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
15720 index d330840..4f1925e 100644
15721 --- a/arch/x86/entry/entry_64.S
15722 +++ b/arch/x86/entry/entry_64.S
15723 @@ -37,6 +37,8 @@
15724 #include <asm/smap.h>
15725 #include <asm/pgtable_types.h>
15726 #include <linux/err.h>
15727 +#include <asm/pgtable.h>
15728 +#include <asm/alternative-asm.h>
15729
15730 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
15731 #include <linux/elf-em.h>
15732 @@ -54,6 +56,402 @@ ENTRY(native_usergs_sysret64)
15733 ENDPROC(native_usergs_sysret64)
15734 #endif /* CONFIG_PARAVIRT */
15735
15736 + .macro ljmpq sel, off
15737 +#if defined(CONFIG_MPSC) || defined(CONFIG_MCORE2) || defined (CONFIG_MATOM)
15738 + .byte 0x48; ljmp *1234f(%rip)
15739 + .pushsection .rodata
15740 + .align 16
15741 + 1234: .quad \off; .word \sel
15742 + .popsection
15743 +#else
15744 + pushq $\sel
15745 + pushq $\off
15746 + lretq
15747 +#endif
15748 + .endm
15749 +
15750 + .macro pax_enter_kernel
15751 + pax_set_fptr_mask
15752 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15753 + call pax_enter_kernel
15754 +#endif
15755 + .endm
15756 +
15757 + .macro pax_exit_kernel
15758 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15759 + call pax_exit_kernel
15760 +#endif
15761 + .endm
15762 +
15763 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15764 +ENTRY(pax_enter_kernel)
15765 + pushq %rdi
15766 +
15767 +#ifdef CONFIG_PARAVIRT
15768 + PV_SAVE_REGS(CLBR_RDI)
15769 +#endif
15770 +
15771 +#ifdef CONFIG_PAX_KERNEXEC
15772 + GET_CR0_INTO_RDI
15773 + bts $X86_CR0_WP_BIT,%rdi
15774 + jnc 3f
15775 + mov %cs,%edi
15776 + cmp $__KERNEL_CS,%edi
15777 + jnz 2f
15778 +1:
15779 +#endif
15780 +
15781 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15782 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15783 + GET_CR3_INTO_RDI
15784 + cmp $0,%dil
15785 + jnz 112f
15786 + mov $__KERNEL_DS,%edi
15787 + mov %edi,%ss
15788 + jmp 111f
15789 +112: cmp $1,%dil
15790 + jz 113f
15791 + ud2
15792 +113: sub $4097,%rdi
15793 + bts $63,%rdi
15794 + SET_RDI_INTO_CR3
15795 + mov $__UDEREF_KERNEL_DS,%edi
15796 + mov %edi,%ss
15797 +111:
15798 +#endif
15799 +
15800 +#ifdef CONFIG_PARAVIRT
15801 + PV_RESTORE_REGS(CLBR_RDI)
15802 +#endif
15803 +
15804 + popq %rdi
15805 + pax_force_retaddr
15806 + retq
15807 +
15808 +#ifdef CONFIG_PAX_KERNEXEC
15809 +2: ljmpq __KERNEL_CS,1b
15810 +3: ljmpq __KERNEXEC_KERNEL_CS,4f
15811 +4: SET_RDI_INTO_CR0
15812 + jmp 1b
15813 +#endif
15814 +ENDPROC(pax_enter_kernel)
15815 +
15816 +ENTRY(pax_exit_kernel)
15817 + pushq %rdi
15818 +
15819 +#ifdef CONFIG_PARAVIRT
15820 + PV_SAVE_REGS(CLBR_RDI)
15821 +#endif
15822 +
15823 +#ifdef CONFIG_PAX_KERNEXEC
15824 + mov %cs,%rdi
15825 + cmp $__KERNEXEC_KERNEL_CS,%edi
15826 + jz 2f
15827 + GET_CR0_INTO_RDI
15828 + bts $X86_CR0_WP_BIT,%rdi
15829 + jnc 4f
15830 +1:
15831 +#endif
15832 +
15833 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15834 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15835 + mov %ss,%edi
15836 + cmp $__UDEREF_KERNEL_DS,%edi
15837 + jnz 111f
15838 + GET_CR3_INTO_RDI
15839 + cmp $0,%dil
15840 + jz 112f
15841 + ud2
15842 +112: add $4097,%rdi
15843 + bts $63,%rdi
15844 + SET_RDI_INTO_CR3
15845 + mov $__KERNEL_DS,%edi
15846 + mov %edi,%ss
15847 +111:
15848 +#endif
15849 +
15850 +#ifdef CONFIG_PARAVIRT
15851 + PV_RESTORE_REGS(CLBR_RDI);
15852 +#endif
15853 +
15854 + popq %rdi
15855 + pax_force_retaddr
15856 + retq
15857 +
15858 +#ifdef CONFIG_PAX_KERNEXEC
15859 +2: GET_CR0_INTO_RDI
15860 + btr $X86_CR0_WP_BIT,%rdi
15861 + jnc 4f
15862 + ljmpq __KERNEL_CS,3f
15863 +3: SET_RDI_INTO_CR0
15864 + jmp 1b
15865 +4: ud2
15866 + jmp 4b
15867 +#endif
15868 +ENDPROC(pax_exit_kernel)
15869 +#endif
15870 +
15871 + .macro pax_enter_kernel_user
15872 + pax_set_fptr_mask
15873 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15874 + call pax_enter_kernel_user
15875 +#endif
15876 + .endm
15877 +
15878 + .macro pax_exit_kernel_user
15879 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15880 + call pax_exit_kernel_user
15881 +#endif
15882 +#ifdef CONFIG_PAX_RANDKSTACK
15883 + pushq %rax
15884 + pushq %r11
15885 + call pax_randomize_kstack
15886 + popq %r11
15887 + popq %rax
15888 +#endif
15889 + .endm
15890 +
15891 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15892 +ENTRY(pax_enter_kernel_user)
15893 + pushq %rdi
15894 + pushq %rbx
15895 +
15896 +#ifdef CONFIG_PARAVIRT
15897 + PV_SAVE_REGS(CLBR_RDI)
15898 +#endif
15899 +
15900 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15901 + GET_CR3_INTO_RDI
15902 + cmp $1,%dil
15903 + jnz 4f
15904 + sub $4097,%rdi
15905 + bts $63,%rdi
15906 + SET_RDI_INTO_CR3
15907 + jmp 3f
15908 +111:
15909 +
15910 + GET_CR3_INTO_RDI
15911 + mov %rdi,%rbx
15912 + add $__START_KERNEL_map,%rbx
15913 + sub phys_base(%rip),%rbx
15914 +
15915 +#ifdef CONFIG_PARAVIRT
15916 + cmpl $0, pv_info+PARAVIRT_enabled
15917 + jz 1f
15918 + pushq %rdi
15919 + i = 0
15920 + .rept USER_PGD_PTRS
15921 + mov i*8(%rbx),%rsi
15922 + mov $0,%sil
15923 + lea i*8(%rbx),%rdi
15924 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15925 + i = i + 1
15926 + .endr
15927 + popq %rdi
15928 + jmp 2f
15929 +1:
15930 +#endif
15931 +
15932 + i = 0
15933 + .rept USER_PGD_PTRS
15934 + movb $0,i*8(%rbx)
15935 + i = i + 1
15936 + .endr
15937 +
15938 +2: SET_RDI_INTO_CR3
15939 +
15940 +#ifdef CONFIG_PAX_KERNEXEC
15941 + GET_CR0_INTO_RDI
15942 + bts $X86_CR0_WP_BIT,%rdi
15943 + SET_RDI_INTO_CR0
15944 +#endif
15945 +
15946 +3:
15947 +
15948 +#ifdef CONFIG_PARAVIRT
15949 + PV_RESTORE_REGS(CLBR_RDI)
15950 +#endif
15951 +
15952 + popq %rbx
15953 + popq %rdi
15954 + pax_force_retaddr
15955 + retq
15956 +4: ud2
15957 +ENDPROC(pax_enter_kernel_user)
15958 +
15959 +ENTRY(pax_exit_kernel_user)
15960 + pushq %rdi
15961 + pushq %rbx
15962 +
15963 +#ifdef CONFIG_PARAVIRT
15964 + PV_SAVE_REGS(CLBR_RDI)
15965 +#endif
15966 +
15967 + GET_CR3_INTO_RDI
15968 + ALTERNATIVE "jmp 1f", "", X86_FEATURE_PCID
15969 + cmp $0,%dil
15970 + jnz 3f
15971 + add $4097,%rdi
15972 + bts $63,%rdi
15973 + SET_RDI_INTO_CR3
15974 + jmp 2f
15975 +1:
15976 +
15977 + mov %rdi,%rbx
15978 +
15979 +#ifdef CONFIG_PAX_KERNEXEC
15980 + GET_CR0_INTO_RDI
15981 + btr $X86_CR0_WP_BIT,%rdi
15982 + jnc 3f
15983 + SET_RDI_INTO_CR0
15984 +#endif
15985 +
15986 + add $__START_KERNEL_map,%rbx
15987 + sub phys_base(%rip),%rbx
15988 +
15989 +#ifdef CONFIG_PARAVIRT
15990 + cmpl $0, pv_info+PARAVIRT_enabled
15991 + jz 1f
15992 + i = 0
15993 + .rept USER_PGD_PTRS
15994 + mov i*8(%rbx),%rsi
15995 + mov $0x67,%sil
15996 + lea i*8(%rbx),%rdi
15997 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15998 + i = i + 1
15999 + .endr
16000 + jmp 2f
16001 +1:
16002 +#endif
16003 +
16004 + i = 0
16005 + .rept USER_PGD_PTRS
16006 + movb $0x67,i*8(%rbx)
16007 + i = i + 1
16008 + .endr
16009 +2:
16010 +
16011 +#ifdef CONFIG_PARAVIRT
16012 + PV_RESTORE_REGS(CLBR_RDI)
16013 +#endif
16014 +
16015 + popq %rbx
16016 + popq %rdi
16017 + pax_force_retaddr
16018 + retq
16019 +3: ud2
16020 +ENDPROC(pax_exit_kernel_user)
16021 +#endif
16022 +
16023 + .macro pax_enter_kernel_nmi
16024 + pax_set_fptr_mask
16025 +
16026 +#ifdef CONFIG_PAX_KERNEXEC
16027 + GET_CR0_INTO_RDI
16028 + bts $X86_CR0_WP_BIT,%rdi
16029 + jc 110f
16030 + SET_RDI_INTO_CR0
16031 + or $2,%ebx
16032 +110:
16033 +#endif
16034 +
16035 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16036 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
16037 + GET_CR3_INTO_RDI
16038 + cmp $0,%dil
16039 + jz 111f
16040 + sub $4097,%rdi
16041 + or $4,%ebx
16042 + bts $63,%rdi
16043 + SET_RDI_INTO_CR3
16044 + mov $__UDEREF_KERNEL_DS,%edi
16045 + mov %edi,%ss
16046 +111:
16047 +#endif
16048 + .endm
16049 +
16050 + .macro pax_exit_kernel_nmi
16051 +#ifdef CONFIG_PAX_KERNEXEC
16052 + btr $1,%ebx
16053 + jnc 110f
16054 + GET_CR0_INTO_RDI
16055 + btr $X86_CR0_WP_BIT,%rdi
16056 + SET_RDI_INTO_CR0
16057 +110:
16058 +#endif
16059 +
16060 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16061 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
16062 + btr $2,%ebx
16063 + jnc 111f
16064 + GET_CR3_INTO_RDI
16065 + add $4097,%rdi
16066 + bts $63,%rdi
16067 + SET_RDI_INTO_CR3
16068 + mov $__KERNEL_DS,%edi
16069 + mov %edi,%ss
16070 +111:
16071 +#endif
16072 + .endm
16073 +
16074 + .macro pax_erase_kstack
16075 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16076 + call pax_erase_kstack
16077 +#endif
16078 + .endm
16079 +
16080 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16081 +ENTRY(pax_erase_kstack)
16082 + pushq %rdi
16083 + pushq %rcx
16084 + pushq %rax
16085 + pushq %r11
16086 +
16087 + GET_THREAD_INFO(%r11)
16088 + mov TI_lowest_stack(%r11), %rdi
16089 + mov $-0xBEEF, %rax
16090 + std
16091 +
16092 +1: mov %edi, %ecx
16093 + and $THREAD_SIZE_asm - 1, %ecx
16094 + shr $3, %ecx
16095 + repne scasq
16096 + jecxz 2f
16097 +
16098 + cmp $2*8, %ecx
16099 + jc 2f
16100 +
16101 + mov $2*8, %ecx
16102 + repe scasq
16103 + jecxz 2f
16104 + jne 1b
16105 +
16106 +2: cld
16107 + or $2*8, %rdi
16108 + mov %esp, %ecx
16109 + sub %edi, %ecx
16110 +
16111 + cmp $THREAD_SIZE_asm, %rcx
16112 + jb 3f
16113 + ud2
16114 +3:
16115 +
16116 + shr $3, %ecx
16117 + rep stosq
16118 +
16119 + mov TI_task_thread_sp0(%r11), %rdi
16120 + sub $256, %rdi
16121 + mov %rdi, TI_lowest_stack(%r11)
16122 +
16123 + popq %r11
16124 + popq %rax
16125 + popq %rcx
16126 + popq %rdi
16127 + pax_force_retaddr
16128 + ret
16129 +ENDPROC(pax_erase_kstack)
16130 +#endif
16131 +
16132 .macro TRACE_IRQS_IRETQ
16133 #ifdef CONFIG_TRACE_IRQFLAGS
16134 bt $9, EFLAGS(%rsp) /* interrupts off? */
16135 @@ -89,7 +487,7 @@ ENDPROC(native_usergs_sysret64)
16136 .endm
16137
16138 .macro TRACE_IRQS_IRETQ_DEBUG
16139 - bt $9, EFLAGS(%rsp) /* interrupts off? */
16140 + bt $X86_EFLAGS_IF_BIT, EFLAGS(%rsp) /* interrupts off? */
16141 jnc 1f
16142 TRACE_IRQS_ON_DEBUG
16143 1:
16144 @@ -149,14 +547,6 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
16145 /* Construct struct pt_regs on stack */
16146 pushq $__USER_DS /* pt_regs->ss */
16147 pushq PER_CPU_VAR(rsp_scratch) /* pt_regs->sp */
16148 - /*
16149 - * Re-enable interrupts.
16150 - * We use 'rsp_scratch' as a scratch space, hence irq-off block above
16151 - * must execute atomically in the face of possible interrupt-driven
16152 - * task preemption. We must enable interrupts only after we're done
16153 - * with using rsp_scratch:
16154 - */
16155 - ENABLE_INTERRUPTS(CLBR_NONE)
16156 pushq %r11 /* pt_regs->flags */
16157 pushq $__USER_CS /* pt_regs->cs */
16158 pushq %rcx /* pt_regs->ip */
16159 @@ -172,7 +562,27 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
16160 pushq %r11 /* pt_regs->r11 */
16161 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
16162
16163 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16164 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16165 + movq %r12, R12(%rsp)
16166 +#endif
16167 +
16168 + pax_enter_kernel_user
16169 +
16170 +#ifdef CONFIG_PAX_RANDKSTACK
16171 + pax_erase_kstack
16172 +#endif
16173 +
16174 + /*
16175 + * Re-enable interrupts.
16176 + * We use 'rsp_scratch' as a scratch space, hence irq-off block above
16177 + * must execute atomically in the face of possible interrupt-driven
16178 + * task preemption. We must enable interrupts only after we're done
16179 + * with using rsp_scratch:
16180 + */
16181 + ENABLE_INTERRUPTS(CLBR_NONE)
16182 +
16183 + GET_THREAD_INFO(%rcx)
16184 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%rcx)
16185 jnz tracesys
16186 entry_SYSCALL_64_fastpath:
16187 #if __SYSCALL_MASK == ~0
16188 @@ -205,9 +615,13 @@ entry_SYSCALL_64_fastpath:
16189 * flags (TIF_NOTIFY_RESUME, TIF_USER_RETURN_NOTIFY, etc) set is
16190 * very bad.
16191 */
16192 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16193 + GET_THREAD_INFO(%rcx)
16194 + testl $_TIF_ALLWORK_MASK, TI_flags(%rcx)
16195 jnz int_ret_from_sys_call_irqs_off /* Go to the slow path */
16196
16197 + pax_exit_kernel_user
16198 + pax_erase_kstack
16199 +
16200 RESTORE_C_REGS_EXCEPT_RCX_R11
16201 movq RIP(%rsp), %rcx
16202 movq EFLAGS(%rsp), %r11
16203 @@ -236,6 +650,9 @@ tracesys:
16204 call syscall_trace_enter_phase1
16205 test %rax, %rax
16206 jnz tracesys_phase2 /* if needed, run the slow path */
16207 +
16208 + pax_erase_kstack
16209 +
16210 RESTORE_C_REGS_EXCEPT_RAX /* else restore clobbered regs */
16211 movq ORIG_RAX(%rsp), %rax
16212 jmp entry_SYSCALL_64_fastpath /* and return to the fast path */
16213 @@ -247,6 +664,8 @@ tracesys_phase2:
16214 movq %rax, %rdx
16215 call syscall_trace_enter_phase2
16216
16217 + pax_erase_kstack
16218 +
16219 /*
16220 * Reload registers from stack in case ptrace changed them.
16221 * We don't reload %rax because syscall_trace_entry_phase2() returned
16222 @@ -284,6 +703,8 @@ GLOBAL(int_with_check)
16223 andl %edi, %edx
16224 jnz int_careful
16225 andl $~TS_COMPAT, TI_status(%rcx)
16226 + pax_exit_kernel_user
16227 + pax_erase_kstack
16228 jmp syscall_return
16229
16230 /*
16231 @@ -407,14 +828,14 @@ syscall_return_via_sysret:
16232 opportunistic_sysret_failed:
16233 SWAPGS
16234 jmp restore_c_regs_and_iret
16235 -END(entry_SYSCALL_64)
16236 +ENDPROC(entry_SYSCALL_64)
16237
16238
16239 .macro FORK_LIKE func
16240 ENTRY(stub_\func)
16241 SAVE_EXTRA_REGS 8
16242 jmp sys_\func
16243 -END(stub_\func)
16244 +ENDPROC(stub_\func)
16245 .endm
16246
16247 FORK_LIKE clone
16248 @@ -434,7 +855,7 @@ return_from_execve:
16249 ZERO_EXTRA_REGS
16250 movq %rax, RAX(%rsp)
16251 jmp int_ret_from_sys_call
16252 -END(stub_execve)
16253 +ENDPROC(stub_execve)
16254 /*
16255 * Remaining execve stubs are only 7 bytes long.
16256 * ENTRY() often aligns to 16 bytes, which in this case has no benefits.
16257 @@ -443,7 +864,7 @@ END(stub_execve)
16258 GLOBAL(stub_execveat)
16259 call sys_execveat
16260 jmp return_from_execve
16261 -END(stub_execveat)
16262 +ENDPROC(stub_execveat)
16263
16264 #if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION)
16265 .align 8
16266 @@ -451,15 +872,15 @@ GLOBAL(stub_x32_execve)
16267 GLOBAL(stub32_execve)
16268 call compat_sys_execve
16269 jmp return_from_execve
16270 -END(stub32_execve)
16271 -END(stub_x32_execve)
16272 +ENDPROC(stub32_execve)
16273 +ENDPROC(stub_x32_execve)
16274 .align 8
16275 GLOBAL(stub_x32_execveat)
16276 GLOBAL(stub32_execveat)
16277 call compat_sys_execveat
16278 jmp return_from_execve
16279 -END(stub32_execveat)
16280 -END(stub_x32_execveat)
16281 +ENDPROC(stub32_execveat)
16282 +ENDPROC(stub_x32_execveat)
16283 #endif
16284
16285 /*
16286 @@ -488,7 +909,7 @@ ENTRY(stub_x32_rt_sigreturn)
16287 SAVE_EXTRA_REGS 8
16288 call sys32_x32_rt_sigreturn
16289 jmp return_from_stub
16290 -END(stub_x32_rt_sigreturn)
16291 +ENDPROC(stub_x32_rt_sigreturn)
16292 #endif
16293
16294 /*
16295 @@ -527,7 +948,7 @@ ENTRY(ret_from_fork)
16296 movl $0, RAX(%rsp)
16297 RESTORE_EXTRA_REGS
16298 jmp int_ret_from_sys_call
16299 -END(ret_from_fork)
16300 +ENDPROC(ret_from_fork)
16301
16302 /*
16303 * Build the entry stubs with some assembler magic.
16304 @@ -542,7 +963,7 @@ ENTRY(irq_entries_start)
16305 jmp common_interrupt
16306 .align 8
16307 .endr
16308 -END(irq_entries_start)
16309 +ENDPROC(irq_entries_start)
16310
16311 /*
16312 * Interrupt entry/exit.
16313 @@ -555,21 +976,13 @@ END(irq_entries_start)
16314 /* 0(%rsp): ~(interrupt number) */
16315 .macro interrupt func
16316 cld
16317 - /*
16318 - * Since nothing in interrupt handling code touches r12...r15 members
16319 - * of "struct pt_regs", and since interrupts can nest, we can save
16320 - * four stack slots and simultaneously provide
16321 - * an unwind-friendly stack layout by saving "truncated" pt_regs
16322 - * exactly up to rbp slot, without these members.
16323 - */
16324 - ALLOC_PT_GPREGS_ON_STACK -RBP
16325 - SAVE_C_REGS -RBP
16326 - /* this goes to 0(%rsp) for unwinder, not for saving the value: */
16327 - SAVE_EXTRA_REGS_RBP -RBP
16328 + ALLOC_PT_GPREGS_ON_STACK
16329 + SAVE_C_REGS
16330 + SAVE_EXTRA_REGS
16331
16332 - leaq -RBP(%rsp), %rdi /* arg1 for \func (pointer to pt_regs) */
16333 + movq %rsp, %rdi /* arg1 for \func (pointer to pt_regs) */
16334
16335 - testb $3, CS-RBP(%rsp)
16336 + testb $3, CS(%rsp)
16337 jz 1f
16338 SWAPGS
16339 1:
16340 @@ -584,6 +997,18 @@ END(irq_entries_start)
16341 incl PER_CPU_VAR(irq_count)
16342 cmovzq PER_CPU_VAR(irq_stack_ptr), %rsp
16343 pushq %rsi
16344 +
16345 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16346 + testb $3, CS(%rdi)
16347 + jnz 1f
16348 + pax_enter_kernel
16349 + jmp 2f
16350 +1: pax_enter_kernel_user
16351 +2:
16352 +#else
16353 + pax_enter_kernel
16354 +#endif
16355 +
16356 /* We entered an interrupt context - irqs are off: */
16357 TRACE_IRQS_OFF
16358
16359 @@ -608,7 +1033,7 @@ ret_from_intr:
16360 /* Restore saved previous stack */
16361 popq %rsi
16362 /* return code expects complete pt_regs - adjust rsp accordingly: */
16363 - leaq -RBP(%rsi), %rsp
16364 + movq %rsi, %rsp
16365
16366 testb $3, CS(%rsp)
16367 jz retint_kernel
16368 @@ -630,6 +1055,8 @@ retint_swapgs: /* return to user-space */
16369 * The iretq could re-enable interrupts:
16370 */
16371 DISABLE_INTERRUPTS(CLBR_ANY)
16372 + pax_exit_kernel_user
16373 +# pax_erase_kstack
16374 TRACE_IRQS_IRETQ
16375
16376 SWAPGS
16377 @@ -648,6 +1075,21 @@ retint_kernel:
16378 jmp 0b
16379 1:
16380 #endif
16381 +
16382 + pax_exit_kernel
16383 +
16384 +#if defined(CONFIG_EFI) && defined(CONFIG_PAX_KERNEXEC)
16385 + /* This is a quirk to allow IRQs/NMIs/MCEs during early EFI setup,
16386 + * namely calling EFI runtime services with a phys mapping. We're
16387 + * starting off with NOPs and patch in the real instrumentation
16388 + * (BTS/OR) before starting any userland process; even before starting
16389 + * up the APs.
16390 + */
16391 + ALTERNATIVE "", "pax_force_retaddr 16*8", X86_FEATURE_ALWAYS
16392 +#else
16393 + pax_force_retaddr RIP
16394 +#endif
16395 +
16396 /*
16397 * The iretq could re-enable interrupts:
16398 */
16399 @@ -689,15 +1131,15 @@ native_irq_return_ldt:
16400 SWAPGS
16401 movq PER_CPU_VAR(espfix_waddr), %rdi
16402 movq %rax, (0*8)(%rdi) /* RAX */
16403 - movq (2*8)(%rsp), %rax /* RIP */
16404 + movq (2*8 + RIP-RIP)(%rsp), %rax /* RIP */
16405 movq %rax, (1*8)(%rdi)
16406 - movq (3*8)(%rsp), %rax /* CS */
16407 + movq (2*8 + CS-RIP)(%rsp), %rax /* CS */
16408 movq %rax, (2*8)(%rdi)
16409 - movq (4*8)(%rsp), %rax /* RFLAGS */
16410 + movq (2*8 + EFLAGS-RIP)(%rsp), %rax /* RFLAGS */
16411 movq %rax, (3*8)(%rdi)
16412 - movq (6*8)(%rsp), %rax /* SS */
16413 + movq (2*8 + SS-RIP)(%rsp), %rax /* SS */
16414 movq %rax, (5*8)(%rdi)
16415 - movq (5*8)(%rsp), %rax /* RSP */
16416 + movq (2*8 + RSP-RIP)(%rsp), %rax /* RSP */
16417 movq %rax, (4*8)(%rdi)
16418 andl $0xffff0000, %eax
16419 popq %rdi
16420 @@ -738,7 +1180,7 @@ retint_signal:
16421 GET_THREAD_INFO(%rcx)
16422 jmp retint_with_reschedule
16423
16424 -END(common_interrupt)
16425 +ENDPROC(common_interrupt)
16426
16427 /*
16428 * APIC interrupts.
16429 @@ -750,7 +1192,7 @@ ENTRY(\sym)
16430 .Lcommon_\sym:
16431 interrupt \do_sym
16432 jmp ret_from_intr
16433 -END(\sym)
16434 +ENDPROC(\sym)
16435 .endm
16436
16437 #ifdef CONFIG_TRACING
16438 @@ -815,7 +1257,7 @@ apicinterrupt IRQ_WORK_VECTOR irq_work_interrupt smp_irq_work_interrupt
16439 /*
16440 * Exception entry points.
16441 */
16442 -#define CPU_TSS_IST(x) PER_CPU_VAR(cpu_tss) + (TSS_ist + ((x) - 1) * 8)
16443 +#define CPU_TSS_IST(x) (TSS_ist + ((x) - 1) * 8)(%r13)
16444
16445 .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
16446 ENTRY(\sym)
16447 @@ -862,6 +1304,12 @@ ENTRY(\sym)
16448 .endif
16449
16450 .if \shift_ist != -1
16451 +#ifdef CONFIG_SMP
16452 + imul $TSS_size, PER_CPU_VAR(cpu_number), %r13d
16453 + lea cpu_tss(%r13), %r13
16454 +#else
16455 + lea cpu_tss(%rip), %r13
16456 +#endif
16457 subq $EXCEPTION_STKSZ, CPU_TSS_IST(\shift_ist)
16458 .endif
16459
16460 @@ -905,7 +1353,7 @@ ENTRY(\sym)
16461
16462 jmp error_exit /* %ebx: no swapgs flag */
16463 .endif
16464 -END(\sym)
16465 +ENDPROC(\sym)
16466 .endm
16467
16468 #ifdef CONFIG_TRACING
16469 @@ -947,8 +1395,9 @@ gs_change:
16470 2: mfence /* workaround */
16471 SWAPGS
16472 popfq
16473 + pax_force_retaddr
16474 ret
16475 -END(native_load_gs_index)
16476 +ENDPROC(native_load_gs_index)
16477
16478 _ASM_EXTABLE(gs_change, bad_gs)
16479 .section .fixup, "ax"
16480 @@ -970,8 +1419,9 @@ ENTRY(do_softirq_own_stack)
16481 call __do_softirq
16482 leaveq
16483 decl PER_CPU_VAR(irq_count)
16484 + pax_force_retaddr
16485 ret
16486 -END(do_softirq_own_stack)
16487 +ENDPROC(do_softirq_own_stack)
16488
16489 #ifdef CONFIG_XEN
16490 idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
16491 @@ -1007,7 +1457,7 @@ ENTRY(xen_do_hypervisor_callback) /* do_hypervisor_callback(struct *pt_regs) */
16492 call xen_maybe_preempt_hcall
16493 #endif
16494 jmp error_exit
16495 -END(xen_do_hypervisor_callback)
16496 +ENDPROC(xen_do_hypervisor_callback)
16497
16498 /*
16499 * Hypervisor uses this for application faults while it executes.
16500 @@ -1052,7 +1502,7 @@ ENTRY(xen_failsafe_callback)
16501 SAVE_C_REGS
16502 SAVE_EXTRA_REGS
16503 jmp error_exit
16504 -END(xen_failsafe_callback)
16505 +ENDPROC(xen_failsafe_callback)
16506
16507 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
16508 xen_hvm_callback_vector xen_evtchn_do_upcall
16509 @@ -1101,8 +1551,36 @@ ENTRY(paranoid_entry)
16510 js 1f /* negative -> in kernel */
16511 SWAPGS
16512 xorl %ebx, %ebx
16513 -1: ret
16514 -END(paranoid_entry)
16515 +1:
16516 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16517 + testb $3, CS+8(%rsp)
16518 + jnz 1f
16519 + pax_enter_kernel
16520 + jmp 2f
16521 +1: pax_enter_kernel_user
16522 +2:
16523 +#else
16524 + pax_enter_kernel
16525 +#endif
16526 + pax_force_retaddr
16527 + ret
16528 +ENDPROC(paranoid_entry)
16529 +
16530 +ENTRY(paranoid_entry_nmi)
16531 + cld
16532 + SAVE_C_REGS 8
16533 + SAVE_EXTRA_REGS 8
16534 + movl $1, %ebx
16535 + movl $MSR_GS_BASE, %ecx
16536 + rdmsr
16537 + testl %edx, %edx
16538 + js 1f /* negative -> in kernel */
16539 + SWAPGS
16540 + xorl %ebx, %ebx
16541 +1: pax_enter_kernel_nmi
16542 + pax_force_retaddr
16543 + ret
16544 +ENDPROC(paranoid_entry_nmi)
16545
16546 /*
16547 * "Paranoid" exit path from exception stack. This is invoked
16548 @@ -1119,19 +1597,26 @@ END(paranoid_entry)
16549 ENTRY(paranoid_exit)
16550 DISABLE_INTERRUPTS(CLBR_NONE)
16551 TRACE_IRQS_OFF_DEBUG
16552 - testl %ebx, %ebx /* swapgs needed? */
16553 + testl $1, %ebx /* swapgs needed? */
16554 jnz paranoid_exit_no_swapgs
16555 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16556 + pax_exit_kernel_user
16557 +#else
16558 + pax_exit_kernel
16559 +#endif
16560 TRACE_IRQS_IRETQ
16561 SWAPGS_UNSAFE_STACK
16562 jmp paranoid_exit_restore
16563 paranoid_exit_no_swapgs:
16564 + pax_exit_kernel
16565 TRACE_IRQS_IRETQ_DEBUG
16566 paranoid_exit_restore:
16567 RESTORE_EXTRA_REGS
16568 RESTORE_C_REGS
16569 REMOVE_PT_GPREGS_FROM_STACK 8
16570 + pax_force_retaddr_bts
16571 INTERRUPT_RETURN
16572 -END(paranoid_exit)
16573 +ENDPROC(paranoid_exit)
16574
16575 /*
16576 * Save all registers in pt_regs, and switch gs if needed.
16577 @@ -1149,7 +1634,18 @@ ENTRY(error_entry)
16578 SWAPGS
16579
16580 error_entry_done:
16581 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16582 + testb $3, CS+8(%rsp)
16583 + jnz 1f
16584 + pax_enter_kernel
16585 + jmp 2f
16586 +1: pax_enter_kernel_user
16587 +2:
16588 +#else
16589 + pax_enter_kernel
16590 +#endif
16591 TRACE_IRQS_OFF
16592 + pax_force_retaddr
16593 ret
16594
16595 /*
16596 @@ -1199,7 +1695,7 @@ error_bad_iret:
16597 mov %rax, %rsp
16598 decl %ebx
16599 jmp error_entry_done
16600 -END(error_entry)
16601 +ENDPROC(error_entry)
16602
16603
16604 /*
16605 @@ -1212,10 +1708,10 @@ ENTRY(error_exit)
16606 RESTORE_EXTRA_REGS
16607 DISABLE_INTERRUPTS(CLBR_NONE)
16608 TRACE_IRQS_OFF
16609 - testl %eax, %eax
16610 + testl $1, %eax
16611 jnz retint_kernel
16612 jmp retint_user
16613 -END(error_exit)
16614 +ENDPROC(error_exit)
16615
16616 /* Runs on exception stack */
16617 ENTRY(nmi)
16618 @@ -1269,6 +1765,8 @@ ENTRY(nmi)
16619 * other IST entries.
16620 */
16621
16622 + ASM_CLAC
16623 +
16624 /* Use %rdx as our temp variable throughout */
16625 pushq %rdx
16626
16627 @@ -1312,6 +1810,12 @@ ENTRY(nmi)
16628 pushq %r14 /* pt_regs->r14 */
16629 pushq %r15 /* pt_regs->r15 */
16630
16631 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16632 + xorl %ebx, %ebx
16633 +#endif
16634 +
16635 + pax_enter_kernel_nmi
16636 +
16637 /*
16638 * At this point we no longer need to worry about stack damage
16639 * due to nesting -- we're on the normal thread stack and we're
16640 @@ -1322,12 +1826,19 @@ ENTRY(nmi)
16641 movq $-1, %rsi
16642 call do_nmi
16643
16644 + pax_exit_kernel_nmi
16645 +
16646 /*
16647 * Return back to user mode. We must *not* do the normal exit
16648 * work, because we don't want to enable interrupts. Fortunately,
16649 * do_nmi doesn't modify pt_regs.
16650 */
16651 SWAPGS
16652 +
16653 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16654 + movq RBX(%rsp), %rbx
16655 +#endif
16656 +
16657 jmp restore_c_regs_and_iret
16658
16659 .Lnmi_from_kernel:
16660 @@ -1449,6 +1960,7 @@ nested_nmi_out:
16661 popq %rdx
16662
16663 /* We are returning to kernel mode, so this cannot result in a fault. */
16664 +# pax_force_retaddr_bts
16665 INTERRUPT_RETURN
16666
16667 first_nmi:
16668 @@ -1522,20 +2034,22 @@ end_repeat_nmi:
16669 ALLOC_PT_GPREGS_ON_STACK
16670
16671 /*
16672 - * Use paranoid_entry to handle SWAPGS, but no need to use paranoid_exit
16673 + * Use paranoid_entry_nmi to handle SWAPGS, but no need to use paranoid_exit
16674 * as we should not be calling schedule in NMI context.
16675 * Even with normal interrupts enabled. An NMI should not be
16676 * setting NEED_RESCHED or anything that normal interrupts and
16677 * exceptions might do.
16678 */
16679 - call paranoid_entry
16680 + call paranoid_entry_nmi
16681
16682 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
16683 movq %rsp, %rdi
16684 movq $-1, %rsi
16685 call do_nmi
16686
16687 - testl %ebx, %ebx /* swapgs needed? */
16688 + pax_exit_kernel_nmi
16689 +
16690 + testl $1, %ebx /* swapgs needed? */
16691 jnz nmi_restore
16692 nmi_swapgs:
16693 SWAPGS_UNSAFE_STACK
16694 @@ -1546,6 +2060,8 @@ nmi_restore:
16695 /* Point RSP at the "iret" frame. */
16696 REMOVE_PT_GPREGS_FROM_STACK 6*8
16697
16698 + pax_force_retaddr_bts
16699 +
16700 /*
16701 * Clear "NMI executing". Set DF first so that we can easily
16702 * distinguish the remaining code between here and IRET from
16703 @@ -1563,9 +2079,9 @@ nmi_restore:
16704 * mode, so this cannot result in a fault.
16705 */
16706 INTERRUPT_RETURN
16707 -END(nmi)
16708 +ENDPROC(nmi)
16709
16710 ENTRY(ignore_sysret)
16711 mov $-ENOSYS, %eax
16712 sysret
16713 -END(ignore_sysret)
16714 +ENDPROC(ignore_sysret)
16715 diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
16716 index a7e257d..3a6ad23 100644
16717 --- a/arch/x86/entry/entry_64_compat.S
16718 +++ b/arch/x86/entry/entry_64_compat.S
16719 @@ -13,8 +13,10 @@
16720 #include <asm/irqflags.h>
16721 #include <asm/asm.h>
16722 #include <asm/smap.h>
16723 +#include <asm/pgtable.h>
16724 #include <linux/linkage.h>
16725 #include <linux/err.h>
16726 +#include <asm/alternative-asm.h>
16727
16728 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
16729 #include <linux/elf-em.h>
16730 @@ -35,6 +37,32 @@ ENTRY(native_usergs_sysret32)
16731 ENDPROC(native_usergs_sysret32)
16732 #endif
16733
16734 + .macro pax_enter_kernel_user
16735 + pax_set_fptr_mask
16736 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16737 + call pax_enter_kernel_user
16738 +#endif
16739 + .endm
16740 +
16741 + .macro pax_exit_kernel_user
16742 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16743 + call pax_exit_kernel_user
16744 +#endif
16745 +#ifdef CONFIG_PAX_RANDKSTACK
16746 + pushq %rax
16747 + pushq %r11
16748 + call pax_randomize_kstack
16749 + popq %r11
16750 + popq %rax
16751 +#endif
16752 + .endm
16753 +
16754 + .macro pax_erase_kstack
16755 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16756 + call pax_erase_kstack
16757 +#endif
16758 + .endm
16759 +
16760 /*
16761 * 32-bit SYSENTER instruction entry.
16762 *
16763 @@ -65,20 +93,21 @@ ENTRY(entry_SYSENTER_compat)
16764 */
16765 SWAPGS_UNSAFE_STACK
16766 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
16767 - ENABLE_INTERRUPTS(CLBR_NONE)
16768
16769 /* Zero-extending 32-bit regs, do not remove */
16770 movl %ebp, %ebp
16771 movl %eax, %eax
16772
16773 - movl ASM_THREAD_INFO(TI_sysenter_return, %rsp, 0), %r10d
16774 + GET_THREAD_INFO(%r11)
16775 + movl TI_sysenter_return(%r11), %r11d
16776
16777 /* Construct struct pt_regs on stack */
16778 pushq $__USER32_DS /* pt_regs->ss */
16779 pushq %rbp /* pt_regs->sp */
16780 pushfq /* pt_regs->flags */
16781 + orl $X86_EFLAGS_IF,(%rsp)
16782 pushq $__USER32_CS /* pt_regs->cs */
16783 - pushq %r10 /* pt_regs->ip = thread_info->sysenter_return */
16784 + pushq %r11 /* pt_regs->ip = thread_info->sysenter_return */
16785 pushq %rax /* pt_regs->orig_ax */
16786 pushq %rdi /* pt_regs->di */
16787 pushq %rsi /* pt_regs->si */
16788 @@ -88,15 +117,37 @@ ENTRY(entry_SYSENTER_compat)
16789 cld
16790 sub $(10*8), %rsp /* pt_regs->r8-11, bp, bx, r12-15 not saved */
16791
16792 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16793 + movq %r12, R12(%rsp)
16794 +#endif
16795 +
16796 + pax_enter_kernel_user
16797 +
16798 +#ifdef CONFIG_PAX_RANDKSTACK
16799 + pax_erase_kstack
16800 +#endif
16801 +
16802 + ENABLE_INTERRUPTS(CLBR_NONE)
16803 +
16804 /*
16805 * no need to do an access_ok check here because rbp has been
16806 * 32-bit zero extended
16807 */
16808 +
16809 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16810 + addq pax_user_shadow_base, %rbp
16811 + ASM_PAX_OPEN_USERLAND
16812 +#endif
16813 +
16814 ASM_STAC
16815 1: movl (%rbp), %ebp
16816 _ASM_EXTABLE(1b, ia32_badarg)
16817 ASM_CLAC
16818
16819 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16820 + ASM_PAX_CLOSE_USERLAND
16821 +#endif
16822 +
16823 /*
16824 * Sysenter doesn't filter flags, so we need to clear NT
16825 * ourselves. To save a few cycles, we can check whether
16826 @@ -106,8 +157,9 @@ ENTRY(entry_SYSENTER_compat)
16827 jnz sysenter_fix_flags
16828 sysenter_flags_fixed:
16829
16830 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16831 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16832 + GET_THREAD_INFO(%r11)
16833 + orl $TS_COMPAT, TI_status(%r11)
16834 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%r11)
16835 jnz sysenter_tracesys
16836
16837 sysenter_do_call:
16838 @@ -123,9 +175,10 @@ sysenter_dispatch:
16839 call *ia32_sys_call_table(, %rax, 8)
16840 movq %rax, RAX(%rsp)
16841 1:
16842 + GET_THREAD_INFO(%r11)
16843 DISABLE_INTERRUPTS(CLBR_NONE)
16844 TRACE_IRQS_OFF
16845 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16846 + testl $_TIF_ALLWORK_MASK, TI_flags(%r11)
16847 jnz sysexit_audit
16848 sysexit_from_sys_call:
16849 /*
16850 @@ -138,7 +191,9 @@ sysexit_from_sys_call:
16851 * This code path is still called 'sysexit' because it pairs
16852 * with 'sysenter' and it uses the SYSENTER calling convention.
16853 */
16854 - andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16855 + pax_exit_kernel_user
16856 + pax_erase_kstack
16857 + andl $~TS_COMPAT, TI_status(%r11)
16858 movl RIP(%rsp), %ecx /* User %eip */
16859 movq RAX(%rsp), %rax
16860 RESTORE_RSI_RDI
16861 @@ -194,6 +249,8 @@ sysexit_from_sys_call:
16862 movl %eax, %edi /* arg1 (RDI) <= syscall number (EAX) */
16863 call __audit_syscall_entry
16864
16865 + pax_erase_kstack
16866 +
16867 /*
16868 * We are going to jump back to the syscall dispatch code.
16869 * Prepare syscall args as required by the 64-bit C ABI.
16870 @@ -209,7 +266,7 @@ sysexit_from_sys_call:
16871 .endm
16872
16873 .macro auditsys_exit exit
16874 - testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16875 + testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16876 jnz ia32_ret_from_sys_call
16877 TRACE_IRQS_ON
16878 ENABLE_INTERRUPTS(CLBR_NONE)
16879 @@ -220,10 +277,11 @@ sysexit_from_sys_call:
16880 1: setbe %al /* 1 if error, 0 if not */
16881 movzbl %al, %edi /* zero-extend that into %edi */
16882 call __audit_syscall_exit
16883 + GET_THREAD_INFO(%r11)
16884 movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), %edi
16885 DISABLE_INTERRUPTS(CLBR_NONE)
16886 TRACE_IRQS_OFF
16887 - testl %edi, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16888 + testl %edi, TI_flags(%r11)
16889 jz \exit
16890 xorl %eax, %eax /* Do not leak kernel information */
16891 movq %rax, R11(%rsp)
16892 @@ -249,7 +307,7 @@ sysenter_fix_flags:
16893
16894 sysenter_tracesys:
16895 #ifdef CONFIG_AUDITSYSCALL
16896 - testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16897 + testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16898 jz sysenter_auditsys
16899 #endif
16900 SAVE_EXTRA_REGS
16901 @@ -269,6 +327,9 @@ sysenter_tracesys:
16902 movl %eax, %eax /* zero extension */
16903
16904 RESTORE_EXTRA_REGS
16905 +
16906 + pax_erase_kstack
16907 +
16908 jmp sysenter_do_call
16909 ENDPROC(entry_SYSENTER_compat)
16910
16911 @@ -311,7 +372,6 @@ ENTRY(entry_SYSCALL_compat)
16912 SWAPGS_UNSAFE_STACK
16913 movl %esp, %r8d
16914 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
16915 - ENABLE_INTERRUPTS(CLBR_NONE)
16916
16917 /* Zero-extending 32-bit regs, do not remove */
16918 movl %eax, %eax
16919 @@ -331,16 +391,41 @@ ENTRY(entry_SYSCALL_compat)
16920 pushq $-ENOSYS /* pt_regs->ax */
16921 sub $(10*8), %rsp /* pt_regs->r8-11, bp, bx, r12-15 not saved */
16922
16923 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16924 + movq %r12, R12(%rsp)
16925 +#endif
16926 +
16927 + pax_enter_kernel_user
16928 +
16929 +#ifdef CONFIG_PAX_RANDKSTACK
16930 + pax_erase_kstack
16931 +#endif
16932 +
16933 + ENABLE_INTERRUPTS(CLBR_NONE)
16934 +
16935 /*
16936 * No need to do an access_ok check here because r8 has been
16937 * 32-bit zero extended:
16938 */
16939 +
16940 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16941 + ASM_PAX_OPEN_USERLAND
16942 + movq pax_user_shadow_base, %r8
16943 + addq RSP(%rsp), %r8
16944 +#endif
16945 +
16946 ASM_STAC
16947 1: movl (%r8), %r9d
16948 _ASM_EXTABLE(1b, ia32_badarg)
16949 ASM_CLAC
16950 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16951 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16952 +
16953 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16954 + ASM_PAX_CLOSE_USERLAND
16955 +#endif
16956 +
16957 + GET_THREAD_INFO(%r11)
16958 + orl $TS_COMPAT,TI_status(%r11)
16959 + testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
16960 jnz cstar_tracesys
16961
16962 cstar_do_call:
16963 @@ -358,13 +443,16 @@ cstar_dispatch:
16964 call *ia32_sys_call_table(, %rax, 8)
16965 movq %rax, RAX(%rsp)
16966 1:
16967 + GET_THREAD_INFO(%r11)
16968 DISABLE_INTERRUPTS(CLBR_NONE)
16969 TRACE_IRQS_OFF
16970 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16971 + testl $_TIF_ALLWORK_MASK, TI_flags(%r11)
16972 jnz sysretl_audit
16973
16974 sysretl_from_sys_call:
16975 - andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16976 + pax_exit_kernel_user
16977 + pax_erase_kstack
16978 + andl $~TS_COMPAT, TI_status(%r11)
16979 RESTORE_RSI_RDI_RDX
16980 movl RIP(%rsp), %ecx
16981 movl EFLAGS(%rsp), %r11d
16982 @@ -403,7 +491,7 @@ sysretl_audit:
16983
16984 cstar_tracesys:
16985 #ifdef CONFIG_AUDITSYSCALL
16986 - testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16987 + testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16988 jz cstar_auditsys
16989 #endif
16990 xchgl %r9d, %ebp
16991 @@ -426,11 +514,19 @@ cstar_tracesys:
16992
16993 RESTORE_EXTRA_REGS
16994 xchgl %ebp, %r9d
16995 +
16996 + pax_erase_kstack
16997 +
16998 jmp cstar_do_call
16999 END(entry_SYSCALL_compat)
17000
17001 ia32_badarg:
17002 ASM_CLAC
17003 +
17004 +#ifdef CONFIG_PAX_MEMORY_UDEREF
17005 + ASM_PAX_CLOSE_USERLAND
17006 +#endif
17007 +
17008 movq $-EFAULT, RAX(%rsp)
17009 ia32_ret_from_sys_call:
17010 xorl %eax, %eax /* Do not leak kernel information */
17011 @@ -462,14 +558,8 @@ ia32_ret_from_sys_call:
17012 */
17013
17014 ENTRY(entry_INT80_compat)
17015 - /*
17016 - * Interrupts are off on entry.
17017 - * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
17018 - * it is too small to ever cause noticeable irq latency.
17019 - */
17020 PARAVIRT_ADJUST_EXCEPTION_FRAME
17021 SWAPGS
17022 - ENABLE_INTERRUPTS(CLBR_NONE)
17023
17024 /* Zero-extending 32-bit regs, do not remove */
17025 movl %eax, %eax
17026 @@ -488,8 +578,26 @@ ENTRY(entry_INT80_compat)
17027 cld
17028 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
17029
17030 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
17031 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
17032 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
17033 + movq %r12, R12(%rsp)
17034 +#endif
17035 +
17036 + pax_enter_kernel_user
17037 +
17038 +#ifdef CONFIG_PAX_RANDKSTACK
17039 + pax_erase_kstack
17040 +#endif
17041 +
17042 + /*
17043 + * Interrupts are off on entry.
17044 + * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
17045 + * it is too small to ever cause noticeable irq latency.
17046 + */
17047 + ENABLE_INTERRUPTS(CLBR_NONE)
17048 +
17049 + GET_THREAD_INFO(%r11)
17050 + orl $TS_COMPAT, TI_status(%r11)
17051 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%r11)
17052 jnz ia32_tracesys
17053
17054 ia32_do_call:
17055 @@ -524,6 +632,9 @@ ia32_tracesys:
17056 movl RDI(%rsp), %edi
17057 movl %eax, %eax /* zero extension */
17058 RESTORE_EXTRA_REGS
17059 +
17060 + pax_erase_kstack
17061 +
17062 jmp ia32_do_call
17063 END(entry_INT80_compat)
17064
17065 diff --git a/arch/x86/entry/thunk_64.S b/arch/x86/entry/thunk_64.S
17066 index efb2b93..8a9cb8e 100644
17067 --- a/arch/x86/entry/thunk_64.S
17068 +++ b/arch/x86/entry/thunk_64.S
17069 @@ -8,6 +8,7 @@
17070 #include <linux/linkage.h>
17071 #include "calling.h"
17072 #include <asm/asm.h>
17073 +#include <asm/alternative-asm.h>
17074
17075 /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
17076 .macro THUNK name, func, put_ret_addr_in_rdi=0
17077 @@ -62,6 +63,7 @@ restore:
17078 popq %rdx
17079 popq %rsi
17080 popq %rdi
17081 + pax_force_retaddr
17082 ret
17083 _ASM_NOKPROBE(restore)
17084 #endif
17085 diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
17086 index e970320..c006fea 100644
17087 --- a/arch/x86/entry/vdso/Makefile
17088 +++ b/arch/x86/entry/vdso/Makefile
17089 @@ -175,7 +175,7 @@ quiet_cmd_vdso = VDSO $@
17090 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
17091 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
17092
17093 -VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) \
17094 +VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) \
17095 $(call cc-ldoption, -Wl$(comma)--build-id) -Wl,-Bsymbolic $(LTO_CFLAGS)
17096 GCOV_PROFILE := n
17097
17098 diff --git a/arch/x86/entry/vdso/vdso2c.h b/arch/x86/entry/vdso/vdso2c.h
17099 index 0224987..0359810 100644
17100 --- a/arch/x86/entry/vdso/vdso2c.h
17101 +++ b/arch/x86/entry/vdso/vdso2c.h
17102 @@ -12,7 +12,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
17103 unsigned long load_size = -1; /* Work around bogus warning */
17104 unsigned long mapping_size;
17105 ELF(Ehdr) *hdr = (ELF(Ehdr) *)raw_addr;
17106 - int i;
17107 + unsigned int i;
17108 unsigned long j;
17109 ELF(Shdr) *symtab_hdr = NULL, *strtab_hdr, *secstrings_hdr,
17110 *alt_sec = NULL;
17111 @@ -83,7 +83,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
17112 for (i = 0;
17113 i < GET_LE(&symtab_hdr->sh_size) / GET_LE(&symtab_hdr->sh_entsize);
17114 i++) {
17115 - int k;
17116 + unsigned int k;
17117 ELF(Sym) *sym = raw_addr + GET_LE(&symtab_hdr->sh_offset) +
17118 GET_LE(&symtab_hdr->sh_entsize) * i;
17119 const char *name = raw_addr + GET_LE(&strtab_hdr->sh_offset) +
17120 @@ -140,7 +140,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
17121 fprintf(outfile, "#include <asm/vdso.h>\n");
17122 fprintf(outfile, "\n");
17123 fprintf(outfile,
17124 - "static unsigned char raw_data[%lu] __page_aligned_data = {",
17125 + "static unsigned char raw_data[%lu] __page_aligned_rodata = {",
17126 mapping_size);
17127 for (j = 0; j < stripped_len; j++) {
17128 if (j % 10 == 0)
17129 @@ -150,7 +150,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
17130 }
17131 fprintf(outfile, "\n};\n\n");
17132
17133 - fprintf(outfile, "static struct page *pages[%lu];\n\n",
17134 + fprintf(outfile, "static struct page *pages[%lu] __read_only;\n\n",
17135 mapping_size / 4096);
17136
17137 fprintf(outfile, "const struct vdso_image %s = {\n", name);
17138 diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
17139 index 1c9f750..cfddb1a 100644
17140 --- a/arch/x86/entry/vdso/vma.c
17141 +++ b/arch/x86/entry/vdso/vma.c
17142 @@ -19,10 +19,7 @@
17143 #include <asm/page.h>
17144 #include <asm/hpet.h>
17145 #include <asm/desc.h>
17146 -
17147 -#if defined(CONFIG_X86_64)
17148 -unsigned int __read_mostly vdso64_enabled = 1;
17149 -#endif
17150 +#include <asm/mman.h>
17151
17152 void __init init_vdso_image(const struct vdso_image *image)
17153 {
17154 @@ -101,6 +98,11 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
17155 .pages = no_pages,
17156 };
17157
17158 +#ifdef CONFIG_PAX_RANDMMAP
17159 + if (mm->pax_flags & MF_PAX_RANDMMAP)
17160 + calculate_addr = false;
17161 +#endif
17162 +
17163 if (calculate_addr) {
17164 addr = vdso_addr(current->mm->start_stack,
17165 image->size - image->sym_vvar_start);
17166 @@ -111,14 +113,14 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
17167 down_write(&mm->mmap_sem);
17168
17169 addr = get_unmapped_area(NULL, addr,
17170 - image->size - image->sym_vvar_start, 0, 0);
17171 + image->size - image->sym_vvar_start, 0, MAP_EXECUTABLE);
17172 if (IS_ERR_VALUE(addr)) {
17173 ret = addr;
17174 goto up_fail;
17175 }
17176
17177 text_start = addr - image->sym_vvar_start;
17178 - current->mm->context.vdso = (void __user *)text_start;
17179 + mm->context.vdso = text_start;
17180
17181 /*
17182 * MAYWRITE to allow gdb to COW and set breakpoints
17183 @@ -163,15 +165,12 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
17184 hpet_address >> PAGE_SHIFT,
17185 PAGE_SIZE,
17186 pgprot_noncached(PAGE_READONLY));
17187 -
17188 - if (ret)
17189 - goto up_fail;
17190 }
17191 #endif
17192
17193 up_fail:
17194 if (ret)
17195 - current->mm->context.vdso = NULL;
17196 + current->mm->context.vdso = 0;
17197
17198 up_write(&mm->mmap_sem);
17199 return ret;
17200 @@ -191,8 +190,8 @@ static int load_vdso32(void)
17201
17202 if (selected_vdso32->sym_VDSO32_SYSENTER_RETURN)
17203 current_thread_info()->sysenter_return =
17204 - current->mm->context.vdso +
17205 - selected_vdso32->sym_VDSO32_SYSENTER_RETURN;
17206 + (void __force_user *)(current->mm->context.vdso +
17207 + selected_vdso32->sym_VDSO32_SYSENTER_RETURN);
17208
17209 return 0;
17210 }
17211 @@ -201,9 +200,6 @@ static int load_vdso32(void)
17212 #ifdef CONFIG_X86_64
17213 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
17214 {
17215 - if (!vdso64_enabled)
17216 - return 0;
17217 -
17218 return map_vdso(&vdso_image_64, true);
17219 }
17220
17221 @@ -212,12 +208,8 @@ int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
17222 int uses_interp)
17223 {
17224 #ifdef CONFIG_X86_X32_ABI
17225 - if (test_thread_flag(TIF_X32)) {
17226 - if (!vdso64_enabled)
17227 - return 0;
17228 -
17229 + if (test_thread_flag(TIF_X32))
17230 return map_vdso(&vdso_image_x32, true);
17231 - }
17232 #endif
17233
17234 return load_vdso32();
17235 @@ -231,15 +223,6 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
17236 #endif
17237
17238 #ifdef CONFIG_X86_64
17239 -static __init int vdso_setup(char *s)
17240 -{
17241 - vdso64_enabled = simple_strtoul(s, NULL, 0);
17242 - return 0;
17243 -}
17244 -__setup("vdso=", vdso_setup);
17245 -#endif
17246 -
17247 -#ifdef CONFIG_X86_64
17248 static void vgetcpu_cpu_init(void *arg)
17249 {
17250 int cpu = smp_processor_id();
17251 diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
17252 index 2dcc6ff..082dc7a 100644
17253 --- a/arch/x86/entry/vsyscall/vsyscall_64.c
17254 +++ b/arch/x86/entry/vsyscall/vsyscall_64.c
17255 @@ -38,15 +38,13 @@
17256 #define CREATE_TRACE_POINTS
17257 #include "vsyscall_trace.h"
17258
17259 -static enum { EMULATE, NATIVE, NONE } vsyscall_mode = EMULATE;
17260 +static enum { EMULATE, NONE } vsyscall_mode = EMULATE;
17261
17262 static int __init vsyscall_setup(char *str)
17263 {
17264 if (str) {
17265 if (!strcmp("emulate", str))
17266 vsyscall_mode = EMULATE;
17267 - else if (!strcmp("native", str))
17268 - vsyscall_mode = NATIVE;
17269 else if (!strcmp("none", str))
17270 vsyscall_mode = NONE;
17271 else
17272 @@ -264,8 +262,7 @@ do_ret:
17273 return true;
17274
17275 sigsegv:
17276 - force_sig(SIGSEGV, current);
17277 - return true;
17278 + do_group_exit(SIGKILL);
17279 }
17280
17281 /*
17282 @@ -283,8 +280,8 @@ static struct vm_operations_struct gate_vma_ops = {
17283 static struct vm_area_struct gate_vma = {
17284 .vm_start = VSYSCALL_ADDR,
17285 .vm_end = VSYSCALL_ADDR + PAGE_SIZE,
17286 - .vm_page_prot = PAGE_READONLY_EXEC,
17287 - .vm_flags = VM_READ | VM_EXEC,
17288 + .vm_page_prot = PAGE_READONLY,
17289 + .vm_flags = VM_READ,
17290 .vm_ops = &gate_vma_ops,
17291 };
17292
17293 @@ -325,10 +322,7 @@ void __init map_vsyscall(void)
17294 unsigned long physaddr_vsyscall = __pa_symbol(&__vsyscall_page);
17295
17296 if (vsyscall_mode != NONE)
17297 - __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall,
17298 - vsyscall_mode == NATIVE
17299 - ? PAGE_KERNEL_VSYSCALL
17300 - : PAGE_KERNEL_VVAR);
17301 + __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall, PAGE_KERNEL_VVAR);
17302
17303 BUILD_BUG_ON((unsigned long)__fix_to_virt(VSYSCALL_PAGE) !=
17304 (unsigned long)VSYSCALL_ADDR);
17305 diff --git a/arch/x86/entry/vsyscall/vsyscall_emu_64.S b/arch/x86/entry/vsyscall/vsyscall_emu_64.S
17306 index c9596a9..805b68d 100644
17307 --- a/arch/x86/entry/vsyscall/vsyscall_emu_64.S
17308 +++ b/arch/x86/entry/vsyscall/vsyscall_emu_64.S
17309 @@ -12,7 +12,7 @@
17310 #include <asm/page_types.h>
17311 #include <asm/unistd_64.h>
17312
17313 -__PAGE_ALIGNED_DATA
17314 +.section ".data..read_only", "a"
17315 .globl __vsyscall_page
17316 .balign PAGE_SIZE, 0xcc
17317 .type __vsyscall_page, @object
17318 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
17319 index ae6aad1..719d6d9 100644
17320 --- a/arch/x86/ia32/ia32_aout.c
17321 +++ b/arch/x86/ia32/ia32_aout.c
17322 @@ -153,6 +153,8 @@ static int aout_core_dump(struct coredump_params *cprm)
17323 unsigned long dump_start, dump_size;
17324 struct user32 dump;
17325
17326 + memset(&dump, 0, sizeof(dump));
17327 +
17328 fs = get_fs();
17329 set_fs(KERNEL_DS);
17330 has_dumped = 1;
17331 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
17332 index ae3a29a..cea65e9 100644
17333 --- a/arch/x86/ia32/ia32_signal.c
17334 +++ b/arch/x86/ia32/ia32_signal.c
17335 @@ -216,7 +216,7 @@ asmlinkage long sys32_sigreturn(void)
17336 if (__get_user(set.sig[0], &frame->sc.oldmask)
17337 || (_COMPAT_NSIG_WORDS > 1
17338 && __copy_from_user((((char *) &set.sig) + 4),
17339 - &frame->extramask,
17340 + frame->extramask,
17341 sizeof(frame->extramask))))
17342 goto badframe;
17343
17344 @@ -336,7 +336,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
17345 sp -= frame_size;
17346 /* Align the stack pointer according to the i386 ABI,
17347 * i.e. so that on function entry ((sp + 4) & 15) == 0. */
17348 - sp = ((sp + 4) & -16ul) - 4;
17349 + sp = ((sp - 12) & -16ul) - 4;
17350 return (void __user *) sp;
17351 }
17352
17353 @@ -381,10 +381,10 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
17354 } else {
17355 /* Return stub is in 32bit vsyscall page */
17356 if (current->mm->context.vdso)
17357 - restorer = current->mm->context.vdso +
17358 - selected_vdso32->sym___kernel_sigreturn;
17359 + restorer = (void __force_user *)(current->mm->context.vdso +
17360 + selected_vdso32->sym___kernel_sigreturn);
17361 else
17362 - restorer = &frame->retcode;
17363 + restorer = frame->retcode;
17364 }
17365
17366 put_user_try {
17367 @@ -394,7 +394,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
17368 * These are actually not used anymore, but left because some
17369 * gdb versions depend on them as a marker.
17370 */
17371 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
17372 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
17373 } put_user_catch(err);
17374
17375 if (err)
17376 @@ -436,7 +436,7 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
17377 0xb8,
17378 __NR_ia32_rt_sigreturn,
17379 0x80cd,
17380 - 0,
17381 + 0
17382 };
17383
17384 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate);
17385 @@ -459,16 +459,19 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
17386
17387 if (ksig->ka.sa.sa_flags & SA_RESTORER)
17388 restorer = ksig->ka.sa.sa_restorer;
17389 + else if (current->mm->context.vdso)
17390 + /* Return stub is in 32bit vsyscall page */
17391 + restorer = (void __force_user *)(current->mm->context.vdso +
17392 + selected_vdso32->sym___kernel_rt_sigreturn);
17393 else
17394 - restorer = current->mm->context.vdso +
17395 - selected_vdso32->sym___kernel_rt_sigreturn;
17396 + restorer = frame->retcode;
17397 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
17398
17399 /*
17400 * Not actually used anymore, but left because some gdb
17401 * versions need it.
17402 */
17403 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
17404 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
17405 } put_user_catch(err);
17406
17407 err |= copy_siginfo_to_user32(&frame->info, &ksig->info);
17408 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
17409 index 719cd70..72af944 100644
17410 --- a/arch/x86/ia32/sys_ia32.c
17411 +++ b/arch/x86/ia32/sys_ia32.c
17412 @@ -49,18 +49,26 @@
17413
17414 #define AA(__x) ((unsigned long)(__x))
17415
17416 +static inline loff_t compose_loff(unsigned int high, unsigned int low)
17417 +{
17418 + loff_t retval = low;
17419 +
17420 + BUILD_BUG_ON(sizeof retval != sizeof low + sizeof high);
17421 + __builtin_memcpy((unsigned char *)&retval + sizeof low, &high, sizeof high);
17422 + return retval;
17423 +}
17424
17425 asmlinkage long sys32_truncate64(const char __user *filename,
17426 - unsigned long offset_low,
17427 - unsigned long offset_high)
17428 + unsigned int offset_low,
17429 + unsigned int offset_high)
17430 {
17431 - return sys_truncate(filename, ((loff_t) offset_high << 32) | offset_low);
17432 + return sys_truncate(filename, compose_loff(offset_high, offset_low));
17433 }
17434
17435 -asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
17436 - unsigned long offset_high)
17437 +asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned int offset_low,
17438 + unsigned int offset_high)
17439 {
17440 - return sys_ftruncate(fd, ((loff_t) offset_high << 32) | offset_low);
17441 + return sys_ftruncate(fd, ((unsigned long) offset_high << 32) | offset_low);
17442 }
17443
17444 /*
17445 @@ -69,8 +77,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
17446 */
17447 static int cp_stat64(struct stat64 __user *ubuf, struct kstat *stat)
17448 {
17449 - typeof(ubuf->st_uid) uid = 0;
17450 - typeof(ubuf->st_gid) gid = 0;
17451 + typeof(((struct stat64 *)0)->st_uid) uid = 0;
17452 + typeof(((struct stat64 *)0)->st_gid) gid = 0;
17453 SET_UID(uid, from_kuid_munged(current_user_ns(), stat->uid));
17454 SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid));
17455 if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
17456 @@ -196,29 +204,29 @@ long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high,
17457 __u32 len_low, __u32 len_high, int advice)
17458 {
17459 return sys_fadvise64_64(fd,
17460 - (((u64)offset_high)<<32) | offset_low,
17461 - (((u64)len_high)<<32) | len_low,
17462 + compose_loff(offset_high, offset_low),
17463 + compose_loff(len_high, len_low),
17464 advice);
17465 }
17466
17467 asmlinkage ssize_t sys32_readahead(int fd, unsigned off_lo, unsigned off_hi,
17468 size_t count)
17469 {
17470 - return sys_readahead(fd, ((u64)off_hi << 32) | off_lo, count);
17471 + return sys_readahead(fd, compose_loff(off_hi, off_lo), count);
17472 }
17473
17474 asmlinkage long sys32_sync_file_range(int fd, unsigned off_low, unsigned off_hi,
17475 unsigned n_low, unsigned n_hi, int flags)
17476 {
17477 return sys_sync_file_range(fd,
17478 - ((u64)off_hi << 32) | off_low,
17479 - ((u64)n_hi << 32) | n_low, flags);
17480 + compose_loff(off_hi, off_low),
17481 + compose_loff(n_hi, n_low), flags);
17482 }
17483
17484 asmlinkage long sys32_fadvise64(int fd, unsigned offset_lo, unsigned offset_hi,
17485 - size_t len, int advice)
17486 + int len, int advice)
17487 {
17488 - return sys_fadvise64_64(fd, ((u64)offset_hi << 32) | offset_lo,
17489 + return sys_fadvise64_64(fd, compose_loff(offset_hi, offset_lo),
17490 len, advice);
17491 }
17492
17493 @@ -226,6 +234,6 @@ asmlinkage long sys32_fallocate(int fd, int mode, unsigned offset_lo,
17494 unsigned offset_hi, unsigned len_lo,
17495 unsigned len_hi)
17496 {
17497 - return sys_fallocate(fd, mode, ((u64)offset_hi << 32) | offset_lo,
17498 - ((u64)len_hi << 32) | len_lo);
17499 + return sys_fallocate(fd, mode, compose_loff(offset_hi, offset_lo),
17500 + compose_loff(len_hi, len_lo));
17501 }
17502 diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
17503 index e7636ba..e1fb78a 100644
17504 --- a/arch/x86/include/asm/alternative-asm.h
17505 +++ b/arch/x86/include/asm/alternative-asm.h
17506 @@ -18,6 +18,45 @@
17507 .endm
17508 #endif
17509
17510 +#ifdef KERNEXEC_PLUGIN
17511 + .macro pax_force_retaddr_bts rip=0
17512 + btsq $63,\rip(%rsp)
17513 + .endm
17514 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
17515 + .macro pax_force_retaddr rip=0, reload=0
17516 + btsq $63,\rip(%rsp)
17517 + .endm
17518 + .macro pax_force_fptr ptr
17519 + btsq $63,\ptr
17520 + .endm
17521 + .macro pax_set_fptr_mask
17522 + .endm
17523 +#endif
17524 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
17525 + .macro pax_force_retaddr rip=0, reload=0
17526 + .if \reload
17527 + pax_set_fptr_mask
17528 + .endif
17529 + orq %r12,\rip(%rsp)
17530 + .endm
17531 + .macro pax_force_fptr ptr
17532 + orq %r12,\ptr
17533 + .endm
17534 + .macro pax_set_fptr_mask
17535 + movabs $0x8000000000000000,%r12
17536 + .endm
17537 +#endif
17538 +#else
17539 + .macro pax_force_retaddr rip=0, reload=0
17540 + .endm
17541 + .macro pax_force_fptr ptr
17542 + .endm
17543 + .macro pax_force_retaddr_bts rip=0
17544 + .endm
17545 + .macro pax_set_fptr_mask
17546 + .endm
17547 +#endif
17548 +
17549 /*
17550 * Issue one struct alt_instr descriptor entry (need to put it into
17551 * the section .altinstructions, see below). This entry contains
17552 @@ -50,7 +89,7 @@
17553 altinstruction_entry 140b,143f,\feature,142b-140b,144f-143f,142b-141b
17554 .popsection
17555
17556 - .pushsection .altinstr_replacement,"ax"
17557 + .pushsection .altinstr_replacement,"a"
17558 143:
17559 \newinstr
17560 144:
17561 @@ -86,7 +125,7 @@
17562 altinstruction_entry 140b,144f,\feature2,142b-140b,145f-144f,142b-141b
17563 .popsection
17564
17565 - .pushsection .altinstr_replacement,"ax"
17566 + .pushsection .altinstr_replacement,"a"
17567 143:
17568 \newinstr1
17569 144:
17570 diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
17571 index 7bfc85b..65d1ec4 100644
17572 --- a/arch/x86/include/asm/alternative.h
17573 +++ b/arch/x86/include/asm/alternative.h
17574 @@ -136,7 +136,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17575 ".pushsection .altinstructions,\"a\"\n" \
17576 ALTINSTR_ENTRY(feature, 1) \
17577 ".popsection\n" \
17578 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17579 + ".pushsection .altinstr_replacement, \"a\"\n" \
17580 ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
17581 ".popsection"
17582
17583 @@ -146,7 +146,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17584 ALTINSTR_ENTRY(feature1, 1) \
17585 ALTINSTR_ENTRY(feature2, 2) \
17586 ".popsection\n" \
17587 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17588 + ".pushsection .altinstr_replacement, \"a\"\n" \
17589 ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \
17590 ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
17591 ".popsection"
17592 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
17593 index c839363..b9a8c43 100644
17594 --- a/arch/x86/include/asm/apic.h
17595 +++ b/arch/x86/include/asm/apic.h
17596 @@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
17597
17598 #ifdef CONFIG_X86_LOCAL_APIC
17599
17600 -extern unsigned int apic_verbosity;
17601 +extern int apic_verbosity;
17602 extern int local_apic_timer_c2_ok;
17603
17604 extern int disable_apic;
17605 diff --git a/arch/x86/include/asm/apm.h b/arch/x86/include/asm/apm.h
17606 index 20370c6..a2eb9b0 100644
17607 --- a/arch/x86/include/asm/apm.h
17608 +++ b/arch/x86/include/asm/apm.h
17609 @@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in,
17610 __asm__ __volatile__(APM_DO_ZERO_SEGS
17611 "pushl %%edi\n\t"
17612 "pushl %%ebp\n\t"
17613 - "lcall *%%cs:apm_bios_entry\n\t"
17614 + "lcall *%%ss:apm_bios_entry\n\t"
17615 "setc %%al\n\t"
17616 "popl %%ebp\n\t"
17617 "popl %%edi\n\t"
17618 @@ -58,7 +58,7 @@ static inline u8 apm_bios_call_simple_asm(u32 func, u32 ebx_in,
17619 __asm__ __volatile__(APM_DO_ZERO_SEGS
17620 "pushl %%edi\n\t"
17621 "pushl %%ebp\n\t"
17622 - "lcall *%%cs:apm_bios_entry\n\t"
17623 + "lcall *%%ss:apm_bios_entry\n\t"
17624 "setc %%bl\n\t"
17625 "popl %%ebp\n\t"
17626 "popl %%edi\n\t"
17627 diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
17628 index e916895..42d729d 100644
17629 --- a/arch/x86/include/asm/atomic.h
17630 +++ b/arch/x86/include/asm/atomic.h
17631 @@ -28,6 +28,17 @@ static __always_inline int atomic_read(const atomic_t *v)
17632 }
17633
17634 /**
17635 + * atomic_read_unchecked - read atomic variable
17636 + * @v: pointer of type atomic_unchecked_t
17637 + *
17638 + * Atomically reads the value of @v.
17639 + */
17640 +static __always_inline int __intentional_overflow(-1) atomic_read_unchecked(const atomic_unchecked_t *v)
17641 +{
17642 + return ACCESS_ONCE((v)->counter);
17643 +}
17644 +
17645 +/**
17646 * atomic_set - set atomic variable
17647 * @v: pointer of type atomic_t
17648 * @i: required value
17649 @@ -40,6 +51,18 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17650 }
17651
17652 /**
17653 + * atomic_set_unchecked - set atomic variable
17654 + * @v: pointer of type atomic_unchecked_t
17655 + * @i: required value
17656 + *
17657 + * Atomically sets the value of @v to @i.
17658 + */
17659 +static __always_inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
17660 +{
17661 + v->counter = i;
17662 +}
17663 +
17664 +/**
17665 * atomic_add - add integer to atomic variable
17666 * @i: integer value to add
17667 * @v: pointer of type atomic_t
17668 @@ -48,7 +71,29 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17669 */
17670 static __always_inline void atomic_add(int i, atomic_t *v)
17671 {
17672 - asm volatile(LOCK_PREFIX "addl %1,%0"
17673 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17674 +
17675 +#ifdef CONFIG_PAX_REFCOUNT
17676 + "jno 0f\n"
17677 + LOCK_PREFIX "subl %1,%0\n"
17678 + "int $4\n0:\n"
17679 + _ASM_EXTABLE(0b, 0b)
17680 +#endif
17681 +
17682 + : "+m" (v->counter)
17683 + : "ir" (i));
17684 +}
17685 +
17686 +/**
17687 + * atomic_add_unchecked - add integer to atomic variable
17688 + * @i: integer value to add
17689 + * @v: pointer of type atomic_unchecked_t
17690 + *
17691 + * Atomically adds @i to @v.
17692 + */
17693 +static __always_inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
17694 +{
17695 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17696 : "+m" (v->counter)
17697 : "ir" (i));
17698 }
17699 @@ -62,7 +107,29 @@ static __always_inline void atomic_add(int i, atomic_t *v)
17700 */
17701 static __always_inline void atomic_sub(int i, atomic_t *v)
17702 {
17703 - asm volatile(LOCK_PREFIX "subl %1,%0"
17704 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17705 +
17706 +#ifdef CONFIG_PAX_REFCOUNT
17707 + "jno 0f\n"
17708 + LOCK_PREFIX "addl %1,%0\n"
17709 + "int $4\n0:\n"
17710 + _ASM_EXTABLE(0b, 0b)
17711 +#endif
17712 +
17713 + : "+m" (v->counter)
17714 + : "ir" (i));
17715 +}
17716 +
17717 +/**
17718 + * atomic_sub_unchecked - subtract integer from atomic variable
17719 + * @i: integer value to subtract
17720 + * @v: pointer of type atomic_unchecked_t
17721 + *
17722 + * Atomically subtracts @i from @v.
17723 + */
17724 +static __always_inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
17725 +{
17726 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17727 : "+m" (v->counter)
17728 : "ir" (i));
17729 }
17730 @@ -78,7 +145,7 @@ static __always_inline void atomic_sub(int i, atomic_t *v)
17731 */
17732 static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17733 {
17734 - GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", "e");
17735 + GEN_BINARY_RMWcc(LOCK_PREFIX "subl", LOCK_PREFIX "addl", v->counter, "er", i, "%0", "e");
17736 }
17737
17738 /**
17739 @@ -89,7 +156,27 @@ static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17740 */
17741 static __always_inline void atomic_inc(atomic_t *v)
17742 {
17743 - asm volatile(LOCK_PREFIX "incl %0"
17744 + asm volatile(LOCK_PREFIX "incl %0\n"
17745 +
17746 +#ifdef CONFIG_PAX_REFCOUNT
17747 + "jno 0f\n"
17748 + LOCK_PREFIX "decl %0\n"
17749 + "int $4\n0:\n"
17750 + _ASM_EXTABLE(0b, 0b)
17751 +#endif
17752 +
17753 + : "+m" (v->counter));
17754 +}
17755 +
17756 +/**
17757 + * atomic_inc_unchecked - increment atomic variable
17758 + * @v: pointer of type atomic_unchecked_t
17759 + *
17760 + * Atomically increments @v by 1.
17761 + */
17762 +static __always_inline void atomic_inc_unchecked(atomic_unchecked_t *v)
17763 +{
17764 + asm volatile(LOCK_PREFIX "incl %0\n"
17765 : "+m" (v->counter));
17766 }
17767
17768 @@ -101,7 +188,27 @@ static __always_inline void atomic_inc(atomic_t *v)
17769 */
17770 static __always_inline void atomic_dec(atomic_t *v)
17771 {
17772 - asm volatile(LOCK_PREFIX "decl %0"
17773 + asm volatile(LOCK_PREFIX "decl %0\n"
17774 +
17775 +#ifdef CONFIG_PAX_REFCOUNT
17776 + "jno 0f\n"
17777 + LOCK_PREFIX "incl %0\n"
17778 + "int $4\n0:\n"
17779 + _ASM_EXTABLE(0b, 0b)
17780 +#endif
17781 +
17782 + : "+m" (v->counter));
17783 +}
17784 +
17785 +/**
17786 + * atomic_dec_unchecked - decrement atomic variable
17787 + * @v: pointer of type atomic_unchecked_t
17788 + *
17789 + * Atomically decrements @v by 1.
17790 + */
17791 +static __always_inline void atomic_dec_unchecked(atomic_unchecked_t *v)
17792 +{
17793 + asm volatile(LOCK_PREFIX "decl %0\n"
17794 : "+m" (v->counter));
17795 }
17796
17797 @@ -115,7 +222,7 @@ static __always_inline void atomic_dec(atomic_t *v)
17798 */
17799 static __always_inline int atomic_dec_and_test(atomic_t *v)
17800 {
17801 - GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", "e");
17802 + GEN_UNARY_RMWcc(LOCK_PREFIX "decl", LOCK_PREFIX "incl", v->counter, "%0", "e");
17803 }
17804
17805 /**
17806 @@ -128,7 +235,20 @@ static __always_inline int atomic_dec_and_test(atomic_t *v)
17807 */
17808 static __always_inline int atomic_inc_and_test(atomic_t *v)
17809 {
17810 - GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, "%0", "e");
17811 + GEN_UNARY_RMWcc(LOCK_PREFIX "incl", LOCK_PREFIX "decl", v->counter, "%0", "e");
17812 +}
17813 +
17814 +/**
17815 + * atomic_inc_and_test_unchecked - increment and test
17816 + * @v: pointer of type atomic_unchecked_t
17817 + *
17818 + * Atomically increments @v by 1
17819 + * and returns true if the result is zero, or false for all
17820 + * other cases.
17821 + */
17822 +static __always_inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
17823 +{
17824 + GEN_UNARY_RMWcc_unchecked(LOCK_PREFIX "incl", v->counter, "%0", "e");
17825 }
17826
17827 /**
17828 @@ -142,7 +262,7 @@ static __always_inline int atomic_inc_and_test(atomic_t *v)
17829 */
17830 static __always_inline int atomic_add_negative(int i, atomic_t *v)
17831 {
17832 - GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, "er", i, "%0", "s");
17833 + GEN_BINARY_RMWcc(LOCK_PREFIX "addl", LOCK_PREFIX "subl", v->counter, "er", i, "%0", "s");
17834 }
17835
17836 /**
17837 @@ -152,7 +272,19 @@ static __always_inline int atomic_add_negative(int i, atomic_t *v)
17838 *
17839 * Atomically adds @i to @v and returns @i + @v
17840 */
17841 -static __always_inline int atomic_add_return(int i, atomic_t *v)
17842 +static __always_inline int __intentional_overflow(-1) atomic_add_return(int i, atomic_t *v)
17843 +{
17844 + return i + xadd_check_overflow(&v->counter, i);
17845 +}
17846 +
17847 +/**
17848 + * atomic_add_return_unchecked - add integer and return
17849 + * @i: integer value to add
17850 + * @v: pointer of type atomi_uncheckedc_t
17851 + *
17852 + * Atomically adds @i to @v and returns @i + @v
17853 + */
17854 +static __always_inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
17855 {
17856 return i + xadd(&v->counter, i);
17857 }
17858 @@ -164,15 +296,24 @@ static __always_inline int atomic_add_return(int i, atomic_t *v)
17859 *
17860 * Atomically subtracts @i from @v and returns @v - @i
17861 */
17862 -static __always_inline int atomic_sub_return(int i, atomic_t *v)
17863 +static __always_inline int __intentional_overflow(-1) atomic_sub_return(int i, atomic_t *v)
17864 {
17865 return atomic_add_return(-i, v);
17866 }
17867
17868 #define atomic_inc_return(v) (atomic_add_return(1, v))
17869 +static __always_inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
17870 +{
17871 + return atomic_add_return_unchecked(1, v);
17872 +}
17873 #define atomic_dec_return(v) (atomic_sub_return(1, v))
17874
17875 -static __always_inline int atomic_cmpxchg(atomic_t *v, int old, int new)
17876 +static __always_inline int __intentional_overflow(-1) atomic_cmpxchg(atomic_t *v, int old, int new)
17877 +{
17878 + return cmpxchg(&v->counter, old, new);
17879 +}
17880 +
17881 +static __always_inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
17882 {
17883 return cmpxchg(&v->counter, old, new);
17884 }
17885 @@ -182,6 +323,11 @@ static inline int atomic_xchg(atomic_t *v, int new)
17886 return xchg(&v->counter, new);
17887 }
17888
17889 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
17890 +{
17891 + return xchg(&v->counter, new);
17892 +}
17893 +
17894 /**
17895 * __atomic_add_unless - add unless the number is already a given value
17896 * @v: pointer of type atomic_t
17897 @@ -193,12 +339,25 @@ static inline int atomic_xchg(atomic_t *v, int new)
17898 */
17899 static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17900 {
17901 - int c, old;
17902 + int c, old, new;
17903 c = atomic_read(v);
17904 for (;;) {
17905 - if (unlikely(c == (u)))
17906 + if (unlikely(c == u))
17907 break;
17908 - old = atomic_cmpxchg((v), c, c + (a));
17909 +
17910 + asm volatile("addl %2,%0\n"
17911 +
17912 +#ifdef CONFIG_PAX_REFCOUNT
17913 + "jno 0f\n"
17914 + "subl %2,%0\n"
17915 + "int $4\n0:\n"
17916 + _ASM_EXTABLE(0b, 0b)
17917 +#endif
17918 +
17919 + : "=r" (new)
17920 + : "0" (c), "ir" (a));
17921 +
17922 + old = atomic_cmpxchg(v, c, new);
17923 if (likely(old == c))
17924 break;
17925 c = old;
17926 @@ -207,6 +366,49 @@ static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17927 }
17928
17929 /**
17930 + * atomic_inc_not_zero_hint - increment if not null
17931 + * @v: pointer of type atomic_t
17932 + * @hint: probable value of the atomic before the increment
17933 + *
17934 + * This version of atomic_inc_not_zero() gives a hint of probable
17935 + * value of the atomic. This helps processor to not read the memory
17936 + * before doing the atomic read/modify/write cycle, lowering
17937 + * number of bus transactions on some arches.
17938 + *
17939 + * Returns: 0 if increment was not done, 1 otherwise.
17940 + */
17941 +#define atomic_inc_not_zero_hint atomic_inc_not_zero_hint
17942 +static inline int atomic_inc_not_zero_hint(atomic_t *v, int hint)
17943 +{
17944 + int val, c = hint, new;
17945 +
17946 + /* sanity test, should be removed by compiler if hint is a constant */
17947 + if (!hint)
17948 + return __atomic_add_unless(v, 1, 0);
17949 +
17950 + do {
17951 + asm volatile("incl %0\n"
17952 +
17953 +#ifdef CONFIG_PAX_REFCOUNT
17954 + "jno 0f\n"
17955 + "decl %0\n"
17956 + "int $4\n0:\n"
17957 + _ASM_EXTABLE(0b, 0b)
17958 +#endif
17959 +
17960 + : "=r" (new)
17961 + : "0" (c));
17962 +
17963 + val = atomic_cmpxchg(v, c, new);
17964 + if (val == c)
17965 + return 1;
17966 + c = val;
17967 + } while (c);
17968 +
17969 + return 0;
17970 +}
17971 +
17972 +/**
17973 * atomic_inc_short - increment of a short integer
17974 * @v: pointer to type int
17975 *
17976 @@ -220,14 +422,37 @@ static __always_inline short int atomic_inc_short(short int *v)
17977 }
17978
17979 /* These are x86-specific, used by some header files */
17980 -#define atomic_clear_mask(mask, addr) \
17981 - asm volatile(LOCK_PREFIX "andl %0,%1" \
17982 - : : "r" (~(mask)), "m" (*(addr)) : "memory")
17983 +static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
17984 +{
17985 + asm volatile(LOCK_PREFIX "andl %1,%0"
17986 + : "+m" (v->counter)
17987 + : "r" (~(mask))
17988 + : "memory");
17989 +}
17990
17991 -#define atomic_set_mask(mask, addr) \
17992 - asm volatile(LOCK_PREFIX "orl %0,%1" \
17993 - : : "r" ((unsigned)(mask)), "m" (*(addr)) \
17994 - : "memory")
17995 +static inline void atomic_clear_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
17996 +{
17997 + asm volatile(LOCK_PREFIX "andl %1,%0"
17998 + : "+m" (v->counter)
17999 + : "r" (~(mask))
18000 + : "memory");
18001 +}
18002 +
18003 +static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
18004 +{
18005 + asm volatile(LOCK_PREFIX "orl %1,%0"
18006 + : "+m" (v->counter)
18007 + : "r" (mask)
18008 + : "memory");
18009 +}
18010 +
18011 +static inline void atomic_set_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
18012 +{
18013 + asm volatile(LOCK_PREFIX "orl %1,%0"
18014 + : "+m" (v->counter)
18015 + : "r" (mask)
18016 + : "memory");
18017 +}
18018
18019 #ifdef CONFIG_X86_32
18020 # include <asm/atomic64_32.h>
18021 diff --git a/arch/x86/include/asm/atomic64_32.h b/arch/x86/include/asm/atomic64_32.h
18022 index b154de7..3dc335d 100644
18023 --- a/arch/x86/include/asm/atomic64_32.h
18024 +++ b/arch/x86/include/asm/atomic64_32.h
18025 @@ -12,6 +12,14 @@ typedef struct {
18026 u64 __aligned(8) counter;
18027 } atomic64_t;
18028
18029 +#ifdef CONFIG_PAX_REFCOUNT
18030 +typedef struct {
18031 + u64 __aligned(8) counter;
18032 +} atomic64_unchecked_t;
18033 +#else
18034 +typedef atomic64_t atomic64_unchecked_t;
18035 +#endif
18036 +
18037 #define ATOMIC64_INIT(val) { (val) }
18038
18039 #define __ATOMIC64_DECL(sym) void atomic64_##sym(atomic64_t *, ...)
18040 @@ -37,21 +45,31 @@ typedef struct {
18041 ATOMIC64_DECL_ONE(sym##_386)
18042
18043 ATOMIC64_DECL_ONE(add_386);
18044 +ATOMIC64_DECL_ONE(add_unchecked_386);
18045 ATOMIC64_DECL_ONE(sub_386);
18046 +ATOMIC64_DECL_ONE(sub_unchecked_386);
18047 ATOMIC64_DECL_ONE(inc_386);
18048 +ATOMIC64_DECL_ONE(inc_unchecked_386);
18049 ATOMIC64_DECL_ONE(dec_386);
18050 +ATOMIC64_DECL_ONE(dec_unchecked_386);
18051 #endif
18052
18053 #define alternative_atomic64(f, out, in...) \
18054 __alternative_atomic64(f, f, ASM_OUTPUT2(out), ## in)
18055
18056 ATOMIC64_DECL(read);
18057 +ATOMIC64_DECL(read_unchecked);
18058 ATOMIC64_DECL(set);
18059 +ATOMIC64_DECL(set_unchecked);
18060 ATOMIC64_DECL(xchg);
18061 ATOMIC64_DECL(add_return);
18062 +ATOMIC64_DECL(add_return_unchecked);
18063 ATOMIC64_DECL(sub_return);
18064 +ATOMIC64_DECL(sub_return_unchecked);
18065 ATOMIC64_DECL(inc_return);
18066 +ATOMIC64_DECL(inc_return_unchecked);
18067 ATOMIC64_DECL(dec_return);
18068 +ATOMIC64_DECL(dec_return_unchecked);
18069 ATOMIC64_DECL(dec_if_positive);
18070 ATOMIC64_DECL(inc_not_zero);
18071 ATOMIC64_DECL(add_unless);
18072 @@ -77,6 +95,21 @@ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n
18073 }
18074
18075 /**
18076 + * atomic64_cmpxchg_unchecked - cmpxchg atomic64 variable
18077 + * @p: pointer to type atomic64_unchecked_t
18078 + * @o: expected value
18079 + * @n: new value
18080 + *
18081 + * Atomically sets @v to @n if it was equal to @o and returns
18082 + * the old value.
18083 + */
18084 +
18085 +static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long long o, long long n)
18086 +{
18087 + return cmpxchg64(&v->counter, o, n);
18088 +}
18089 +
18090 +/**
18091 * atomic64_xchg - xchg atomic64 variable
18092 * @v: pointer to type atomic64_t
18093 * @n: value to assign
18094 @@ -112,6 +145,22 @@ static inline void atomic64_set(atomic64_t *v, long long i)
18095 }
18096
18097 /**
18098 + * atomic64_set_unchecked - set atomic64 variable
18099 + * @v: pointer to type atomic64_unchecked_t
18100 + * @n: value to assign
18101 + *
18102 + * Atomically sets the value of @v to @n.
18103 + */
18104 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
18105 +{
18106 + unsigned high = (unsigned)(i >> 32);
18107 + unsigned low = (unsigned)i;
18108 + alternative_atomic64(set, /* no output */,
18109 + "S" (v), "b" (low), "c" (high)
18110 + : "eax", "edx", "memory");
18111 +}
18112 +
18113 +/**
18114 * atomic64_read - read atomic64 variable
18115 * @v: pointer to type atomic64_t
18116 *
18117 @@ -125,6 +174,19 @@ static inline long long atomic64_read(const atomic64_t *v)
18118 }
18119
18120 /**
18121 + * atomic64_read_unchecked - read atomic64 variable
18122 + * @v: pointer to type atomic64_unchecked_t
18123 + *
18124 + * Atomically reads the value of @v and returns it.
18125 + */
18126 +static inline long long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
18127 +{
18128 + long long r;
18129 + alternative_atomic64(read, "=&A" (r), "c" (v) : "memory");
18130 + return r;
18131 + }
18132 +
18133 +/**
18134 * atomic64_add_return - add and return
18135 * @i: integer value to add
18136 * @v: pointer to type atomic64_t
18137 @@ -139,6 +201,21 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
18138 return i;
18139 }
18140
18141 +/**
18142 + * atomic64_add_return_unchecked - add and return
18143 + * @i: integer value to add
18144 + * @v: pointer to type atomic64_unchecked_t
18145 + *
18146 + * Atomically adds @i to @v and returns @i + *@v
18147 + */
18148 +static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
18149 +{
18150 + alternative_atomic64(add_return_unchecked,
18151 + ASM_OUTPUT2("+A" (i), "+c" (v)),
18152 + ASM_NO_INPUT_CLOBBER("memory"));
18153 + return i;
18154 +}
18155 +
18156 /*
18157 * Other variants with different arithmetic operators:
18158 */
18159 @@ -158,6 +235,14 @@ static inline long long atomic64_inc_return(atomic64_t *v)
18160 return a;
18161 }
18162
18163 +static inline long long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
18164 +{
18165 + long long a;
18166 + alternative_atomic64(inc_return_unchecked, "=&A" (a),
18167 + "S" (v) : "memory", "ecx");
18168 + return a;
18169 +}
18170 +
18171 static inline long long atomic64_dec_return(atomic64_t *v)
18172 {
18173 long long a;
18174 @@ -182,6 +267,21 @@ static inline long long atomic64_add(long long i, atomic64_t *v)
18175 }
18176
18177 /**
18178 + * atomic64_add_unchecked - add integer to atomic64 variable
18179 + * @i: integer value to add
18180 + * @v: pointer to type atomic64_unchecked_t
18181 + *
18182 + * Atomically adds @i to @v.
18183 + */
18184 +static inline long long atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
18185 +{
18186 + __alternative_atomic64(add_unchecked, add_return_unchecked,
18187 + ASM_OUTPUT2("+A" (i), "+c" (v)),
18188 + ASM_NO_INPUT_CLOBBER("memory"));
18189 + return i;
18190 +}
18191 +
18192 +/**
18193 * atomic64_sub - subtract the atomic64 variable
18194 * @i: integer value to subtract
18195 * @v: pointer to type atomic64_t
18196 diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h
18197 index b965f9e..8e22dd3 100644
18198 --- a/arch/x86/include/asm/atomic64_64.h
18199 +++ b/arch/x86/include/asm/atomic64_64.h
18200 @@ -22,6 +22,18 @@ static inline long atomic64_read(const atomic64_t *v)
18201 }
18202
18203 /**
18204 + * atomic64_read_unchecked - read atomic64 variable
18205 + * @v: pointer of type atomic64_unchecked_t
18206 + *
18207 + * Atomically reads the value of @v.
18208 + * Doesn't imply a read memory barrier.
18209 + */
18210 +static inline long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
18211 +{
18212 + return ACCESS_ONCE((v)->counter);
18213 +}
18214 +
18215 +/**
18216 * atomic64_set - set atomic64 variable
18217 * @v: pointer to type atomic64_t
18218 * @i: required value
18219 @@ -34,6 +46,18 @@ static inline void atomic64_set(atomic64_t *v, long i)
18220 }
18221
18222 /**
18223 + * atomic64_set_unchecked - set atomic64 variable
18224 + * @v: pointer to type atomic64_unchecked_t
18225 + * @i: required value
18226 + *
18227 + * Atomically sets the value of @v to @i.
18228 + */
18229 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
18230 +{
18231 + v->counter = i;
18232 +}
18233 +
18234 +/**
18235 * atomic64_add - add integer to atomic64 variable
18236 * @i: integer value to add
18237 * @v: pointer to type atomic64_t
18238 @@ -42,6 +66,28 @@ static inline void atomic64_set(atomic64_t *v, long i)
18239 */
18240 static __always_inline void atomic64_add(long i, atomic64_t *v)
18241 {
18242 + asm volatile(LOCK_PREFIX "addq %1,%0\n"
18243 +
18244 +#ifdef CONFIG_PAX_REFCOUNT
18245 + "jno 0f\n"
18246 + LOCK_PREFIX "subq %1,%0\n"
18247 + "int $4\n0:\n"
18248 + _ASM_EXTABLE(0b, 0b)
18249 +#endif
18250 +
18251 + : "=m" (v->counter)
18252 + : "er" (i), "m" (v->counter));
18253 +}
18254 +
18255 +/**
18256 + * atomic64_add_unchecked - add integer to atomic64 variable
18257 + * @i: integer value to add
18258 + * @v: pointer to type atomic64_unchecked_t
18259 + *
18260 + * Atomically adds @i to @v.
18261 + */
18262 +static __always_inline void atomic64_add_unchecked(long i, atomic64_unchecked_t *v)
18263 +{
18264 asm volatile(LOCK_PREFIX "addq %1,%0"
18265 : "=m" (v->counter)
18266 : "er" (i), "m" (v->counter));
18267 @@ -56,7 +102,29 @@ static __always_inline void atomic64_add(long i, atomic64_t *v)
18268 */
18269 static inline void atomic64_sub(long i, atomic64_t *v)
18270 {
18271 - asm volatile(LOCK_PREFIX "subq %1,%0"
18272 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
18273 +
18274 +#ifdef CONFIG_PAX_REFCOUNT
18275 + "jno 0f\n"
18276 + LOCK_PREFIX "addq %1,%0\n"
18277 + "int $4\n0:\n"
18278 + _ASM_EXTABLE(0b, 0b)
18279 +#endif
18280 +
18281 + : "=m" (v->counter)
18282 + : "er" (i), "m" (v->counter));
18283 +}
18284 +
18285 +/**
18286 + * atomic64_sub_unchecked - subtract the atomic64 variable
18287 + * @i: integer value to subtract
18288 + * @v: pointer to type atomic64_unchecked_t
18289 + *
18290 + * Atomically subtracts @i from @v.
18291 + */
18292 +static inline void atomic64_sub_unchecked(long i, atomic64_unchecked_t *v)
18293 +{
18294 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
18295 : "=m" (v->counter)
18296 : "er" (i), "m" (v->counter));
18297 }
18298 @@ -72,7 +140,7 @@ static inline void atomic64_sub(long i, atomic64_t *v)
18299 */
18300 static inline int atomic64_sub_and_test(long i, atomic64_t *v)
18301 {
18302 - GEN_BINARY_RMWcc(LOCK_PREFIX "subq", v->counter, "er", i, "%0", "e");
18303 + GEN_BINARY_RMWcc(LOCK_PREFIX "subq", LOCK_PREFIX "addq", v->counter, "er", i, "%0", "e");
18304 }
18305
18306 /**
18307 @@ -83,6 +151,27 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
18308 */
18309 static __always_inline void atomic64_inc(atomic64_t *v)
18310 {
18311 + asm volatile(LOCK_PREFIX "incq %0\n"
18312 +
18313 +#ifdef CONFIG_PAX_REFCOUNT
18314 + "jno 0f\n"
18315 + LOCK_PREFIX "decq %0\n"
18316 + "int $4\n0:\n"
18317 + _ASM_EXTABLE(0b, 0b)
18318 +#endif
18319 +
18320 + : "=m" (v->counter)
18321 + : "m" (v->counter));
18322 +}
18323 +
18324 +/**
18325 + * atomic64_inc_unchecked - increment atomic64 variable
18326 + * @v: pointer to type atomic64_unchecked_t
18327 + *
18328 + * Atomically increments @v by 1.
18329 + */
18330 +static __always_inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
18331 +{
18332 asm volatile(LOCK_PREFIX "incq %0"
18333 : "=m" (v->counter)
18334 : "m" (v->counter));
18335 @@ -96,7 +185,28 @@ static __always_inline void atomic64_inc(atomic64_t *v)
18336 */
18337 static __always_inline void atomic64_dec(atomic64_t *v)
18338 {
18339 - asm volatile(LOCK_PREFIX "decq %0"
18340 + asm volatile(LOCK_PREFIX "decq %0\n"
18341 +
18342 +#ifdef CONFIG_PAX_REFCOUNT
18343 + "jno 0f\n"
18344 + LOCK_PREFIX "incq %0\n"
18345 + "int $4\n0:\n"
18346 + _ASM_EXTABLE(0b, 0b)
18347 +#endif
18348 +
18349 + : "=m" (v->counter)
18350 + : "m" (v->counter));
18351 +}
18352 +
18353 +/**
18354 + * atomic64_dec_unchecked - decrement atomic64 variable
18355 + * @v: pointer to type atomic64_t
18356 + *
18357 + * Atomically decrements @v by 1.
18358 + */
18359 +static __always_inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
18360 +{
18361 + asm volatile(LOCK_PREFIX "decq %0\n"
18362 : "=m" (v->counter)
18363 : "m" (v->counter));
18364 }
18365 @@ -111,7 +221,7 @@ static __always_inline void atomic64_dec(atomic64_t *v)
18366 */
18367 static inline int atomic64_dec_and_test(atomic64_t *v)
18368 {
18369 - GEN_UNARY_RMWcc(LOCK_PREFIX "decq", v->counter, "%0", "e");
18370 + GEN_UNARY_RMWcc(LOCK_PREFIX "decq", LOCK_PREFIX "incq", v->counter, "%0", "e");
18371 }
18372
18373 /**
18374 @@ -124,7 +234,7 @@ static inline int atomic64_dec_and_test(atomic64_t *v)
18375 */
18376 static inline int atomic64_inc_and_test(atomic64_t *v)
18377 {
18378 - GEN_UNARY_RMWcc(LOCK_PREFIX "incq", v->counter, "%0", "e");
18379 + GEN_UNARY_RMWcc(LOCK_PREFIX "incq", LOCK_PREFIX "decq", v->counter, "%0", "e");
18380 }
18381
18382 /**
18383 @@ -138,7 +248,7 @@ static inline int atomic64_inc_and_test(atomic64_t *v)
18384 */
18385 static inline int atomic64_add_negative(long i, atomic64_t *v)
18386 {
18387 - GEN_BINARY_RMWcc(LOCK_PREFIX "addq", v->counter, "er", i, "%0", "s");
18388 + GEN_BINARY_RMWcc(LOCK_PREFIX "addq", LOCK_PREFIX "subq", v->counter, "er", i, "%0", "s");
18389 }
18390
18391 /**
18392 @@ -150,6 +260,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
18393 */
18394 static __always_inline long atomic64_add_return(long i, atomic64_t *v)
18395 {
18396 + return i + xadd_check_overflow(&v->counter, i);
18397 +}
18398 +
18399 +/**
18400 + * atomic64_add_return_unchecked - add and return
18401 + * @i: integer value to add
18402 + * @v: pointer to type atomic64_unchecked_t
18403 + *
18404 + * Atomically adds @i to @v and returns @i + @v
18405 + */
18406 +static __always_inline long atomic64_add_return_unchecked(long i, atomic64_unchecked_t *v)
18407 +{
18408 return i + xadd(&v->counter, i);
18409 }
18410
18411 @@ -159,6 +281,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
18412 }
18413
18414 #define atomic64_inc_return(v) (atomic64_add_return(1, (v)))
18415 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
18416 +{
18417 + return atomic64_add_return_unchecked(1, v);
18418 +}
18419 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v)))
18420
18421 static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
18422 @@ -166,6 +292,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
18423 return cmpxchg(&v->counter, old, new);
18424 }
18425
18426 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
18427 +{
18428 + return cmpxchg(&v->counter, old, new);
18429 +}
18430 +
18431 static inline long atomic64_xchg(atomic64_t *v, long new)
18432 {
18433 return xchg(&v->counter, new);
18434 @@ -182,17 +313,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
18435 */
18436 static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
18437 {
18438 - long c, old;
18439 + long c, old, new;
18440 c = atomic64_read(v);
18441 for (;;) {
18442 - if (unlikely(c == (u)))
18443 + if (unlikely(c == u))
18444 break;
18445 - old = atomic64_cmpxchg((v), c, c + (a));
18446 +
18447 + asm volatile("add %2,%0\n"
18448 +
18449 +#ifdef CONFIG_PAX_REFCOUNT
18450 + "jno 0f\n"
18451 + "sub %2,%0\n"
18452 + "int $4\n0:\n"
18453 + _ASM_EXTABLE(0b, 0b)
18454 +#endif
18455 +
18456 + : "=r" (new)
18457 + : "0" (c), "ir" (a));
18458 +
18459 + old = atomic64_cmpxchg(v, c, new);
18460 if (likely(old == c))
18461 break;
18462 c = old;
18463 }
18464 - return c != (u);
18465 + return c != u;
18466 }
18467
18468 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
18469 diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
18470 index e51a8f8..ee075df 100644
18471 --- a/arch/x86/include/asm/barrier.h
18472 +++ b/arch/x86/include/asm/barrier.h
18473 @@ -57,7 +57,7 @@
18474 do { \
18475 compiletime_assert_atomic_type(*p); \
18476 smp_mb(); \
18477 - ACCESS_ONCE(*p) = (v); \
18478 + ACCESS_ONCE_RW(*p) = (v); \
18479 } while (0)
18480
18481 #define smp_load_acquire(p) \
18482 @@ -74,7 +74,7 @@ do { \
18483 do { \
18484 compiletime_assert_atomic_type(*p); \
18485 barrier(); \
18486 - ACCESS_ONCE(*p) = (v); \
18487 + ACCESS_ONCE_RW(*p) = (v); \
18488 } while (0)
18489
18490 #define smp_load_acquire(p) \
18491 diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
18492 index cfe3b95..d01b118 100644
18493 --- a/arch/x86/include/asm/bitops.h
18494 +++ b/arch/x86/include/asm/bitops.h
18495 @@ -50,7 +50,7 @@
18496 * a mask operation on a byte.
18497 */
18498 #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr))
18499 -#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3))
18500 +#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((volatile void *)(addr) + ((nr)>>3))
18501 #define CONST_MASK(nr) (1 << ((nr) & 7))
18502
18503 /**
18504 @@ -203,7 +203,7 @@ static inline void change_bit(long nr, volatile unsigned long *addr)
18505 */
18506 static inline int test_and_set_bit(long nr, volatile unsigned long *addr)
18507 {
18508 - GEN_BINARY_RMWcc(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
18509 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
18510 }
18511
18512 /**
18513 @@ -249,7 +249,7 @@ static inline int __test_and_set_bit(long nr, volatile unsigned long *addr)
18514 */
18515 static inline int test_and_clear_bit(long nr, volatile unsigned long *addr)
18516 {
18517 - GEN_BINARY_RMWcc(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
18518 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
18519 }
18520
18521 /**
18522 @@ -302,7 +302,7 @@ static inline int __test_and_change_bit(long nr, volatile unsigned long *addr)
18523 */
18524 static inline int test_and_change_bit(long nr, volatile unsigned long *addr)
18525 {
18526 - GEN_BINARY_RMWcc(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
18527 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
18528 }
18529
18530 static __always_inline int constant_test_bit(long nr, const volatile unsigned long *addr)
18531 @@ -343,7 +343,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
18532 *
18533 * Undefined if no bit exists, so code should check against 0 first.
18534 */
18535 -static inline unsigned long __ffs(unsigned long word)
18536 +static inline unsigned long __intentional_overflow(-1) __ffs(unsigned long word)
18537 {
18538 asm("rep; bsf %1,%0"
18539 : "=r" (word)
18540 @@ -357,7 +357,7 @@ static inline unsigned long __ffs(unsigned long word)
18541 *
18542 * Undefined if no zero exists, so code should check against ~0UL first.
18543 */
18544 -static inline unsigned long ffz(unsigned long word)
18545 +static inline unsigned long __intentional_overflow(-1) ffz(unsigned long word)
18546 {
18547 asm("rep; bsf %1,%0"
18548 : "=r" (word)
18549 @@ -371,7 +371,7 @@ static inline unsigned long ffz(unsigned long word)
18550 *
18551 * Undefined if no set bit exists, so code should check against 0 first.
18552 */
18553 -static inline unsigned long __fls(unsigned long word)
18554 +static inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
18555 {
18556 asm("bsr %1,%0"
18557 : "=r" (word)
18558 @@ -434,7 +434,7 @@ static inline int ffs(int x)
18559 * set bit if value is nonzero. The last (most significant) bit is
18560 * at position 32.
18561 */
18562 -static inline int fls(int x)
18563 +static inline int __intentional_overflow(-1) fls(int x)
18564 {
18565 int r;
18566
18567 @@ -476,7 +476,7 @@ static inline int fls(int x)
18568 * at position 64.
18569 */
18570 #ifdef CONFIG_X86_64
18571 -static __always_inline int fls64(__u64 x)
18572 +static __always_inline __intentional_overflow(-1) int fls64(__u64 x)
18573 {
18574 int bitpos = -1;
18575 /*
18576 diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
18577 index 4fa687a..4ca636f 100644
18578 --- a/arch/x86/include/asm/boot.h
18579 +++ b/arch/x86/include/asm/boot.h
18580 @@ -6,7 +6,7 @@
18581 #include <uapi/asm/boot.h>
18582
18583 /* Physical address where kernel should be loaded. */
18584 -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
18585 +#define ____LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
18586 + (CONFIG_PHYSICAL_ALIGN - 1)) \
18587 & ~(CONFIG_PHYSICAL_ALIGN - 1))
18588
18589 diff --git a/arch/x86/include/asm/cache.h b/arch/x86/include/asm/cache.h
18590 index 48f99f1..d78ebf9 100644
18591 --- a/arch/x86/include/asm/cache.h
18592 +++ b/arch/x86/include/asm/cache.h
18593 @@ -5,12 +5,13 @@
18594
18595 /* L1 cache line size */
18596 #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
18597 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
18598 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
18599
18600 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
18601 +#define __read_only __attribute__((__section__(".data..read_only")))
18602
18603 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
18604 -#define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
18605 +#define INTERNODE_CACHE_BYTES (_AC(1,UL) << INTERNODE_CACHE_SHIFT)
18606
18607 #ifdef CONFIG_X86_VSMP
18608 #ifdef CONFIG_SMP
18609 diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
18610 index f50de69..2b0a458 100644
18611 --- a/arch/x86/include/asm/checksum_32.h
18612 +++ b/arch/x86/include/asm/checksum_32.h
18613 @@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst,
18614 int len, __wsum sum,
18615 int *src_err_ptr, int *dst_err_ptr);
18616
18617 +asmlinkage __wsum csum_partial_copy_generic_to_user(const void *src, void *dst,
18618 + int len, __wsum sum,
18619 + int *src_err_ptr, int *dst_err_ptr);
18620 +
18621 +asmlinkage __wsum csum_partial_copy_generic_from_user(const void *src, void *dst,
18622 + int len, __wsum sum,
18623 + int *src_err_ptr, int *dst_err_ptr);
18624 +
18625 /*
18626 * Note: when you get a NULL pointer exception here this means someone
18627 * passed in an incorrect kernel address to one of these functions.
18628 @@ -53,7 +61,7 @@ static inline __wsum csum_partial_copy_from_user(const void __user *src,
18629
18630 might_sleep();
18631 stac();
18632 - ret = csum_partial_copy_generic((__force void *)src, dst,
18633 + ret = csum_partial_copy_generic_from_user((__force void *)src, dst,
18634 len, sum, err_ptr, NULL);
18635 clac();
18636
18637 @@ -187,7 +195,7 @@ static inline __wsum csum_and_copy_to_user(const void *src,
18638 might_sleep();
18639 if (access_ok(VERIFY_WRITE, dst, len)) {
18640 stac();
18641 - ret = csum_partial_copy_generic(src, (__force void *)dst,
18642 + ret = csum_partial_copy_generic_to_user(src, (__force void *)dst,
18643 len, sum, NULL, err_ptr);
18644 clac();
18645 return ret;
18646 diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h
18647 index ad19841..0784041 100644
18648 --- a/arch/x86/include/asm/cmpxchg.h
18649 +++ b/arch/x86/include/asm/cmpxchg.h
18650 @@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void)
18651 __compiletime_error("Bad argument size for cmpxchg");
18652 extern void __xadd_wrong_size(void)
18653 __compiletime_error("Bad argument size for xadd");
18654 +extern void __xadd_check_overflow_wrong_size(void)
18655 + __compiletime_error("Bad argument size for xadd_check_overflow");
18656 extern void __add_wrong_size(void)
18657 __compiletime_error("Bad argument size for add");
18658 +extern void __add_check_overflow_wrong_size(void)
18659 + __compiletime_error("Bad argument size for add_check_overflow");
18660
18661 /*
18662 * Constants for operation sizes. On 32-bit, the 64-bit size it set to
18663 @@ -67,6 +71,38 @@ extern void __add_wrong_size(void)
18664 __ret; \
18665 })
18666
18667 +#ifdef CONFIG_PAX_REFCOUNT
18668 +#define __xchg_op_check_overflow(ptr, arg, op, lock) \
18669 + ({ \
18670 + __typeof__ (*(ptr)) __ret = (arg); \
18671 + switch (sizeof(*(ptr))) { \
18672 + case __X86_CASE_L: \
18673 + asm volatile (lock #op "l %0, %1\n" \
18674 + "jno 0f\n" \
18675 + "mov %0,%1\n" \
18676 + "int $4\n0:\n" \
18677 + _ASM_EXTABLE(0b, 0b) \
18678 + : "+r" (__ret), "+m" (*(ptr)) \
18679 + : : "memory", "cc"); \
18680 + break; \
18681 + case __X86_CASE_Q: \
18682 + asm volatile (lock #op "q %q0, %1\n" \
18683 + "jno 0f\n" \
18684 + "mov %0,%1\n" \
18685 + "int $4\n0:\n" \
18686 + _ASM_EXTABLE(0b, 0b) \
18687 + : "+r" (__ret), "+m" (*(ptr)) \
18688 + : : "memory", "cc"); \
18689 + break; \
18690 + default: \
18691 + __ ## op ## _check_overflow_wrong_size(); \
18692 + } \
18693 + __ret; \
18694 + })
18695 +#else
18696 +#define __xchg_op_check_overflow(ptr, arg, op, lock) __xchg_op(ptr, arg, op, lock)
18697 +#endif
18698 +
18699 /*
18700 * Note: no "lock" prefix even on SMP: xchg always implies lock anyway.
18701 * Since this is generally used to protect other memory information, we
18702 @@ -165,6 +201,9 @@ extern void __add_wrong_size(void)
18703 #define xadd_sync(ptr, inc) __xadd((ptr), (inc), "lock; ")
18704 #define xadd_local(ptr, inc) __xadd((ptr), (inc), "")
18705
18706 +#define __xadd_check_overflow(ptr, inc, lock) __xchg_op_check_overflow((ptr), (inc), xadd, lock)
18707 +#define xadd_check_overflow(ptr, inc) __xadd_check_overflow((ptr), (inc), LOCK_PREFIX)
18708 +
18709 #define __add(ptr, inc, lock) \
18710 ({ \
18711 __typeof__ (*(ptr)) __ret = (inc); \
18712 diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h
18713 index acdee09..a553db3 100644
18714 --- a/arch/x86/include/asm/compat.h
18715 +++ b/arch/x86/include/asm/compat.h
18716 @@ -41,7 +41,7 @@ typedef s64 __attribute__((aligned(4))) compat_s64;
18717 typedef u32 compat_uint_t;
18718 typedef u32 compat_ulong_t;
18719 typedef u64 __attribute__((aligned(4))) compat_u64;
18720 -typedef u32 compat_uptr_t;
18721 +typedef u32 __user compat_uptr_t;
18722
18723 struct compat_timespec {
18724 compat_time_t tv_sec;
18725 diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
18726 index 3d6606f..300641d 100644
18727 --- a/arch/x86/include/asm/cpufeature.h
18728 +++ b/arch/x86/include/asm/cpufeature.h
18729 @@ -214,7 +214,8 @@
18730 #define X86_FEATURE_PAUSEFILTER ( 8*32+13) /* AMD filtered pause intercept */
18731 #define X86_FEATURE_PFTHRESHOLD ( 8*32+14) /* AMD pause filter threshold */
18732 #define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */
18733 -
18734 +#define X86_FEATURE_PCIDUDEREF ( 8*32+30) /* PaX PCID based UDEREF */
18735 +#define X86_FEATURE_STRONGUDEREF (8*32+31) /* PaX PCID based strong UDEREF */
18736
18737 /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
18738 #define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
18739 @@ -222,7 +223,7 @@
18740 #define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
18741 #define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
18742 #define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
18743 -#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
18744 +#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Prevention */
18745 #define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
18746 #define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
18747 #define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
18748 @@ -401,6 +402,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
18749 #define cpu_has_eager_fpu boot_cpu_has(X86_FEATURE_EAGER_FPU)
18750 #define cpu_has_topoext boot_cpu_has(X86_FEATURE_TOPOEXT)
18751 #define cpu_has_bpext boot_cpu_has(X86_FEATURE_BPEXT)
18752 +#define cpu_has_pcid boot_cpu_has(X86_FEATURE_PCID)
18753
18754 #if __GNUC__ >= 4
18755 extern void warn_pre_alternatives(void);
18756 @@ -454,7 +456,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18757
18758 #ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
18759 t_warn:
18760 - warn_pre_alternatives();
18761 + if (bit != X86_FEATURE_PCID && bit != X86_FEATURE_INVPCID && bit != X86_FEATURE_PCIDUDEREF)
18762 + warn_pre_alternatives();
18763 return false;
18764 #endif
18765
18766 @@ -475,7 +478,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18767 ".section .discard,\"aw\",@progbits\n"
18768 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18769 ".previous\n"
18770 - ".section .altinstr_replacement,\"ax\"\n"
18771 + ".section .altinstr_replacement,\"a\"\n"
18772 "3: movb $1,%0\n"
18773 "4:\n"
18774 ".previous\n"
18775 @@ -510,7 +513,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18776 " .byte 5f - 4f\n" /* repl len */
18777 " .byte 3b - 2b\n" /* pad len */
18778 ".previous\n"
18779 - ".section .altinstr_replacement,\"ax\"\n"
18780 + ".section .altinstr_replacement,\"a\"\n"
18781 "4: jmp %l[t_no]\n"
18782 "5:\n"
18783 ".previous\n"
18784 @@ -545,7 +548,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18785 ".section .discard,\"aw\",@progbits\n"
18786 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18787 ".previous\n"
18788 - ".section .altinstr_replacement,\"ax\"\n"
18789 + ".section .altinstr_replacement,\"a\"\n"
18790 "3: movb $0,%0\n"
18791 "4:\n"
18792 ".previous\n"
18793 @@ -560,7 +563,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18794 ".section .discard,\"aw\",@progbits\n"
18795 " .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
18796 ".previous\n"
18797 - ".section .altinstr_replacement,\"ax\"\n"
18798 + ".section .altinstr_replacement,\"a\"\n"
18799 "5: movb $1,%0\n"
18800 "6:\n"
18801 ".previous\n"
18802 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
18803 index 4e10d73..7319a47 100644
18804 --- a/arch/x86/include/asm/desc.h
18805 +++ b/arch/x86/include/asm/desc.h
18806 @@ -4,6 +4,7 @@
18807 #include <asm/desc_defs.h>
18808 #include <asm/ldt.h>
18809 #include <asm/mmu.h>
18810 +#include <asm/pgtable.h>
18811
18812 #include <linux/smp.h>
18813 #include <linux/percpu.h>
18814 @@ -17,6 +18,7 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18815
18816 desc->type = (info->read_exec_only ^ 1) << 1;
18817 desc->type |= info->contents << 2;
18818 + desc->type |= info->seg_not_present ^ 1;
18819
18820 desc->s = 1;
18821 desc->dpl = 0x3;
18822 @@ -35,19 +37,14 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18823 }
18824
18825 extern struct desc_ptr idt_descr;
18826 -extern gate_desc idt_table[];
18827 -extern struct desc_ptr debug_idt_descr;
18828 -extern gate_desc debug_idt_table[];
18829 -
18830 -struct gdt_page {
18831 - struct desc_struct gdt[GDT_ENTRIES];
18832 -} __attribute__((aligned(PAGE_SIZE)));
18833 -
18834 -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
18835 +extern gate_desc idt_table[IDT_ENTRIES];
18836 +extern const struct desc_ptr debug_idt_descr;
18837 +extern gate_desc debug_idt_table[IDT_ENTRIES];
18838
18839 +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)];
18840 static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu)
18841 {
18842 - return per_cpu(gdt_page, cpu).gdt;
18843 + return cpu_gdt_table[cpu];
18844 }
18845
18846 #ifdef CONFIG_X86_64
18847 @@ -72,8 +69,14 @@ static inline void pack_gate(gate_desc *gate, unsigned char type,
18848 unsigned long base, unsigned dpl, unsigned flags,
18849 unsigned short seg)
18850 {
18851 - gate->a = (seg << 16) | (base & 0xffff);
18852 - gate->b = (base & 0xffff0000) | (((0x80 | type | (dpl << 5)) & 0xff) << 8);
18853 + gate->gate.offset_low = base;
18854 + gate->gate.seg = seg;
18855 + gate->gate.reserved = 0;
18856 + gate->gate.type = type;
18857 + gate->gate.s = 0;
18858 + gate->gate.dpl = dpl;
18859 + gate->gate.p = 1;
18860 + gate->gate.offset_high = base >> 16;
18861 }
18862
18863 #endif
18864 @@ -118,12 +121,16 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
18865
18866 static inline void native_write_idt_entry(gate_desc *idt, int entry, const gate_desc *gate)
18867 {
18868 + pax_open_kernel();
18869 memcpy(&idt[entry], gate, sizeof(*gate));
18870 + pax_close_kernel();
18871 }
18872
18873 static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, const void *desc)
18874 {
18875 + pax_open_kernel();
18876 memcpy(&ldt[entry], desc, 8);
18877 + pax_close_kernel();
18878 }
18879
18880 static inline void
18881 @@ -137,7 +144,9 @@ native_write_gdt_entry(struct desc_struct *gdt, int entry, const void *desc, int
18882 default: size = sizeof(*gdt); break;
18883 }
18884
18885 + pax_open_kernel();
18886 memcpy(&gdt[entry], desc, size);
18887 + pax_close_kernel();
18888 }
18889
18890 static inline void pack_descriptor(struct desc_struct *desc, unsigned long base,
18891 @@ -210,7 +219,9 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
18892
18893 static inline void native_load_tr_desc(void)
18894 {
18895 + pax_open_kernel();
18896 asm volatile("ltr %w0"::"q" (GDT_ENTRY_TSS*8));
18897 + pax_close_kernel();
18898 }
18899
18900 static inline void native_load_gdt(const struct desc_ptr *dtr)
18901 @@ -247,8 +258,10 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
18902 struct desc_struct *gdt = get_cpu_gdt_table(cpu);
18903 unsigned int i;
18904
18905 + pax_open_kernel();
18906 for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++)
18907 gdt[GDT_ENTRY_TLS_MIN + i] = t->tls_array[i];
18908 + pax_close_kernel();
18909 }
18910
18911 /* This intentionally ignores lm, since 32-bit apps don't have that field. */
18912 @@ -280,7 +293,7 @@ static inline void clear_LDT(void)
18913 set_ldt(NULL, 0);
18914 }
18915
18916 -static inline unsigned long get_desc_base(const struct desc_struct *desc)
18917 +static inline unsigned long __intentional_overflow(-1) get_desc_base(const struct desc_struct *desc)
18918 {
18919 return (unsigned)(desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24));
18920 }
18921 @@ -304,7 +317,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
18922 }
18923
18924 #ifdef CONFIG_X86_64
18925 -static inline void set_nmi_gate(int gate, void *addr)
18926 +static inline void set_nmi_gate(int gate, const void *addr)
18927 {
18928 gate_desc s;
18929
18930 @@ -314,14 +327,14 @@ static inline void set_nmi_gate(int gate, void *addr)
18931 #endif
18932
18933 #ifdef CONFIG_TRACING
18934 -extern struct desc_ptr trace_idt_descr;
18935 -extern gate_desc trace_idt_table[];
18936 +extern const struct desc_ptr trace_idt_descr;
18937 +extern gate_desc trace_idt_table[IDT_ENTRIES];
18938 static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18939 {
18940 write_idt_entry(trace_idt_table, entry, gate);
18941 }
18942
18943 -static inline void _trace_set_gate(int gate, unsigned type, void *addr,
18944 +static inline void _trace_set_gate(int gate, unsigned type, const void *addr,
18945 unsigned dpl, unsigned ist, unsigned seg)
18946 {
18947 gate_desc s;
18948 @@ -341,7 +354,7 @@ static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18949 #define _trace_set_gate(gate, type, addr, dpl, ist, seg)
18950 #endif
18951
18952 -static inline void _set_gate(int gate, unsigned type, void *addr,
18953 +static inline void _set_gate(int gate, unsigned type, const void *addr,
18954 unsigned dpl, unsigned ist, unsigned seg)
18955 {
18956 gate_desc s;
18957 @@ -364,14 +377,14 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
18958 #define set_intr_gate_notrace(n, addr) \
18959 do { \
18960 BUG_ON((unsigned)n > 0xFF); \
18961 - _set_gate(n, GATE_INTERRUPT, (void *)addr, 0, 0, \
18962 + _set_gate(n, GATE_INTERRUPT, (const void *)addr, 0, 0, \
18963 __KERNEL_CS); \
18964 } while (0)
18965
18966 #define set_intr_gate(n, addr) \
18967 do { \
18968 set_intr_gate_notrace(n, addr); \
18969 - _trace_set_gate(n, GATE_INTERRUPT, (void *)trace_##addr,\
18970 + _trace_set_gate(n, GATE_INTERRUPT, (const void *)trace_##addr,\
18971 0, 0, __KERNEL_CS); \
18972 } while (0)
18973
18974 @@ -399,19 +412,19 @@ static inline void alloc_system_vector(int vector)
18975 /*
18976 * This routine sets up an interrupt gate at directory privilege level 3.
18977 */
18978 -static inline void set_system_intr_gate(unsigned int n, void *addr)
18979 +static inline void set_system_intr_gate(unsigned int n, const void *addr)
18980 {
18981 BUG_ON((unsigned)n > 0xFF);
18982 _set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS);
18983 }
18984
18985 -static inline void set_system_trap_gate(unsigned int n, void *addr)
18986 +static inline void set_system_trap_gate(unsigned int n, const void *addr)
18987 {
18988 BUG_ON((unsigned)n > 0xFF);
18989 _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS);
18990 }
18991
18992 -static inline void set_trap_gate(unsigned int n, void *addr)
18993 +static inline void set_trap_gate(unsigned int n, const void *addr)
18994 {
18995 BUG_ON((unsigned)n > 0xFF);
18996 _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
18997 @@ -420,16 +433,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
18998 static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
18999 {
19000 BUG_ON((unsigned)n > 0xFF);
19001 - _set_gate(n, GATE_TASK, (void *)0, 0, 0, (gdt_entry<<3));
19002 + _set_gate(n, GATE_TASK, (const void *)0, 0, 0, (gdt_entry<<3));
19003 }
19004
19005 -static inline void set_intr_gate_ist(int n, void *addr, unsigned ist)
19006 +static inline void set_intr_gate_ist(int n, const void *addr, unsigned ist)
19007 {
19008 BUG_ON((unsigned)n > 0xFF);
19009 _set_gate(n, GATE_INTERRUPT, addr, 0, ist, __KERNEL_CS);
19010 }
19011
19012 -static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
19013 +static inline void set_system_intr_gate_ist(int n, const void *addr, unsigned ist)
19014 {
19015 BUG_ON((unsigned)n > 0xFF);
19016 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
19017 @@ -501,4 +514,17 @@ static inline void load_current_idt(void)
19018 else
19019 load_idt((const struct desc_ptr *)&idt_descr);
19020 }
19021 +
19022 +#ifdef CONFIG_X86_32
19023 +static inline void set_user_cs(unsigned long base, unsigned long limit, int cpu)
19024 +{
19025 + struct desc_struct d;
19026 +
19027 + if (likely(limit))
19028 + limit = (limit - 1UL) >> PAGE_SHIFT;
19029 + pack_descriptor(&d, base, limit, 0xFB, 0xC);
19030 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_DEFAULT_USER_CS, &d, DESCTYPE_S);
19031 +}
19032 +#endif
19033 +
19034 #endif /* _ASM_X86_DESC_H */
19035 diff --git a/arch/x86/include/asm/desc_defs.h b/arch/x86/include/asm/desc_defs.h
19036 index 278441f..b95a174 100644
19037 --- a/arch/x86/include/asm/desc_defs.h
19038 +++ b/arch/x86/include/asm/desc_defs.h
19039 @@ -31,6 +31,12 @@ struct desc_struct {
19040 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
19041 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
19042 };
19043 + struct {
19044 + u16 offset_low;
19045 + u16 seg;
19046 + unsigned reserved: 8, type: 4, s: 1, dpl: 2, p: 1;
19047 + unsigned offset_high: 16;
19048 + } gate;
19049 };
19050 } __attribute__((packed));
19051
19052 diff --git a/arch/x86/include/asm/div64.h b/arch/x86/include/asm/div64.h
19053 index ced283a..ffe04cc 100644
19054 --- a/arch/x86/include/asm/div64.h
19055 +++ b/arch/x86/include/asm/div64.h
19056 @@ -39,7 +39,7 @@
19057 __mod; \
19058 })
19059
19060 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
19061 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
19062 {
19063 union {
19064 u64 v64;
19065 diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
19066 index f161c18..97d43e8 100644
19067 --- a/arch/x86/include/asm/elf.h
19068 +++ b/arch/x86/include/asm/elf.h
19069 @@ -75,9 +75,6 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
19070
19071 #include <asm/vdso.h>
19072
19073 -#ifdef CONFIG_X86_64
19074 -extern unsigned int vdso64_enabled;
19075 -#endif
19076 #if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT)
19077 extern unsigned int vdso32_enabled;
19078 #endif
19079 @@ -250,7 +247,25 @@ extern int force_personality32;
19080 the loader. We need to make sure that it is out of the way of the program
19081 that it will "exec", and that there is sufficient room for the brk. */
19082
19083 +#ifdef CONFIG_PAX_SEGMEXEC
19084 +#define ELF_ET_DYN_BASE ((current->mm->pax_flags & MF_PAX_SEGMEXEC) ? SEGMEXEC_TASK_SIZE/3*2 : TASK_SIZE/3*2)
19085 +#else
19086 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
19087 +#endif
19088 +
19089 +#ifdef CONFIG_PAX_ASLR
19090 +#ifdef CONFIG_X86_32
19091 +#define PAX_ELF_ET_DYN_BASE 0x10000000UL
19092 +
19093 +#define PAX_DELTA_MMAP_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
19094 +#define PAX_DELTA_STACK_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
19095 +#else
19096 +#define PAX_ELF_ET_DYN_BASE 0x400000UL
19097 +
19098 +#define PAX_DELTA_MMAP_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
19099 +#define PAX_DELTA_STACK_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
19100 +#endif
19101 +#endif
19102
19103 /* This yields a mask that user programs can use to figure out what
19104 instruction set this CPU supports. This could be done in user space,
19105 @@ -299,17 +314,13 @@ do { \
19106
19107 #define ARCH_DLINFO \
19108 do { \
19109 - if (vdso64_enabled) \
19110 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
19111 - (unsigned long __force)current->mm->context.vdso); \
19112 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
19113 } while (0)
19114
19115 /* As a historical oddity, the x32 and x86_64 vDSOs are controlled together. */
19116 #define ARCH_DLINFO_X32 \
19117 do { \
19118 - if (vdso64_enabled) \
19119 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
19120 - (unsigned long __force)current->mm->context.vdso); \
19121 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
19122 } while (0)
19123
19124 #define AT_SYSINFO 32
19125 @@ -324,10 +335,10 @@ else \
19126
19127 #endif /* !CONFIG_X86_32 */
19128
19129 -#define VDSO_CURRENT_BASE ((unsigned long)current->mm->context.vdso)
19130 +#define VDSO_CURRENT_BASE (current->mm->context.vdso)
19131
19132 #define VDSO_ENTRY \
19133 - ((unsigned long)current->mm->context.vdso + \
19134 + (current->mm->context.vdso + \
19135 selected_vdso32->sym___kernel_vsyscall)
19136
19137 struct linux_binprm;
19138 diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h
19139 index 77a99ac..39ff7f5 100644
19140 --- a/arch/x86/include/asm/emergency-restart.h
19141 +++ b/arch/x86/include/asm/emergency-restart.h
19142 @@ -1,6 +1,6 @@
19143 #ifndef _ASM_X86_EMERGENCY_RESTART_H
19144 #define _ASM_X86_EMERGENCY_RESTART_H
19145
19146 -extern void machine_emergency_restart(void);
19147 +extern void machine_emergency_restart(void) __noreturn;
19148
19149 #endif /* _ASM_X86_EMERGENCY_RESTART_H */
19150 diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h
19151 index 1c7eefe..d0e4702 100644
19152 --- a/arch/x86/include/asm/floppy.h
19153 +++ b/arch/x86/include/asm/floppy.h
19154 @@ -229,18 +229,18 @@ static struct fd_routine_l {
19155 int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
19156 } fd_routine[] = {
19157 {
19158 - request_dma,
19159 - free_dma,
19160 - get_dma_residue,
19161 - dma_mem_alloc,
19162 - hard_dma_setup
19163 + ._request_dma = request_dma,
19164 + ._free_dma = free_dma,
19165 + ._get_dma_residue = get_dma_residue,
19166 + ._dma_mem_alloc = dma_mem_alloc,
19167 + ._dma_setup = hard_dma_setup
19168 },
19169 {
19170 - vdma_request_dma,
19171 - vdma_nop,
19172 - vdma_get_dma_residue,
19173 - vdma_mem_alloc,
19174 - vdma_dma_setup
19175 + ._request_dma = vdma_request_dma,
19176 + ._free_dma = vdma_nop,
19177 + ._get_dma_residue = vdma_get_dma_residue,
19178 + ._dma_mem_alloc = vdma_mem_alloc,
19179 + ._dma_setup = vdma_dma_setup
19180 }
19181 };
19182
19183 diff --git a/arch/x86/include/asm/fpu/internal.h b/arch/x86/include/asm/fpu/internal.h
19184 index 3c3550c..ca9e4c3 100644
19185 --- a/arch/x86/include/asm/fpu/internal.h
19186 +++ b/arch/x86/include/asm/fpu/internal.h
19187 @@ -97,8 +97,11 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
19188 #define user_insn(insn, output, input...) \
19189 ({ \
19190 int err; \
19191 + pax_open_userland(); \
19192 asm volatile(ASM_STAC "\n" \
19193 - "1:" #insn "\n\t" \
19194 + "1:" \
19195 + __copyuser_seg \
19196 + #insn "\n\t" \
19197 "2: " ASM_CLAC "\n" \
19198 ".section .fixup,\"ax\"\n" \
19199 "3: movl $-1,%[err]\n" \
19200 @@ -107,6 +110,7 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
19201 _ASM_EXTABLE(1b, 3b) \
19202 : [err] "=r" (err), output \
19203 : "0"(0), input); \
19204 + pax_close_userland(); \
19205 err; \
19206 })
19207
19208 @@ -186,9 +190,9 @@ static inline int copy_user_to_fregs(struct fregs_state __user *fx)
19209 static inline void copy_fxregs_to_kernel(struct fpu *fpu)
19210 {
19211 if (config_enabled(CONFIG_X86_32))
19212 - asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state.fxsave));
19213 + asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state->fxsave));
19214 else if (config_enabled(CONFIG_AS_FXSAVEQ))
19215 - asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state.fxsave));
19216 + asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state->fxsave));
19217 else {
19218 /* Using "rex64; fxsave %0" is broken because, if the memory
19219 * operand uses any extended registers for addressing, a second
19220 @@ -205,15 +209,15 @@ static inline void copy_fxregs_to_kernel(struct fpu *fpu)
19221 * an extended register is needed for addressing (fix submitted
19222 * to mainline 2005-11-21).
19223 *
19224 - * asm volatile("rex64/fxsave %0" : "=m" (fpu->state.fxsave));
19225 + * asm volatile("rex64/fxsave %0" : "=m" (fpu->state->fxsave));
19226 *
19227 * This, however, we can work around by forcing the compiler to
19228 * select an addressing mode that doesn't require extended
19229 * registers.
19230 */
19231 asm volatile( "rex64/fxsave (%[fx])"
19232 - : "=m" (fpu->state.fxsave)
19233 - : [fx] "R" (&fpu->state.fxsave));
19234 + : "=m" (fpu->state->fxsave)
19235 + : [fx] "R" (&fpu->state->fxsave));
19236 }
19237 }
19238
19239 @@ -388,12 +392,16 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
19240 if (unlikely(err))
19241 return -EFAULT;
19242
19243 + pax_open_userland();
19244 __asm__ __volatile__(ASM_STAC "\n"
19245 - "1:"XSAVE"\n"
19246 + "1:"
19247 + __copyuser_seg
19248 + XSAVE"\n"
19249 "2: " ASM_CLAC "\n"
19250 xstate_fault(err)
19251 : "D" (buf), "a" (-1), "d" (-1), "0" (err)
19252 : "memory");
19253 + pax_close_userland();
19254 return err;
19255 }
19256
19257 @@ -402,17 +410,21 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
19258 */
19259 static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
19260 {
19261 - struct xregs_state *xstate = ((__force struct xregs_state *)buf);
19262 + struct xregs_state *xstate = ((__force_kernel struct xregs_state *)buf);
19263 u32 lmask = mask;
19264 u32 hmask = mask >> 32;
19265 int err = 0;
19266
19267 + pax_open_userland();
19268 __asm__ __volatile__(ASM_STAC "\n"
19269 - "1:"XRSTOR"\n"
19270 + "1:"
19271 + __copyuser_seg
19272 + XRSTOR"\n"
19273 "2: " ASM_CLAC "\n"
19274 xstate_fault(err)
19275 : "D" (xstate), "a" (lmask), "d" (hmask), "0" (err)
19276 : "memory"); /* memory required? */
19277 + pax_close_userland();
19278 return err;
19279 }
19280
19281 @@ -429,7 +441,7 @@ static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
19282 static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
19283 {
19284 if (likely(use_xsave())) {
19285 - copy_xregs_to_kernel(&fpu->state.xsave);
19286 + copy_xregs_to_kernel(&fpu->state->xsave);
19287 return 1;
19288 }
19289
19290 @@ -442,7 +454,7 @@ static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
19291 * Legacy FPU register saving, FNSAVE always clears FPU registers,
19292 * so we have to mark them inactive:
19293 */
19294 - asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state.fsave));
19295 + asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state->fsave));
19296
19297 return 0;
19298 }
19299 @@ -471,7 +483,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate)
19300 "fnclex\n\t"
19301 "emms\n\t"
19302 "fildl %P[addr]" /* set F?P to defined value */
19303 - : : [addr] "m" (fpstate));
19304 + : : [addr] "m" (cpu_tss[raw_smp_processor_id()].x86_tss.sp0));
19305 }
19306
19307 __copy_kernel_to_fpregs(fpstate);
19308 @@ -611,7 +623,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19309 if (fpu.preload) {
19310 new_fpu->counter++;
19311 __fpregs_activate(new_fpu);
19312 - prefetch(&new_fpu->state);
19313 + prefetch(new_fpu->state);
19314 } else {
19315 __fpregs_deactivate_hw();
19316 }
19317 @@ -623,7 +635,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19318 if (fpu_want_lazy_restore(new_fpu, cpu))
19319 fpu.preload = 0;
19320 else
19321 - prefetch(&new_fpu->state);
19322 + prefetch(new_fpu->state);
19323 fpregs_activate(new_fpu);
19324 }
19325 }
19326 @@ -643,7 +655,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19327 static inline void switch_fpu_finish(struct fpu *new_fpu, fpu_switch_t fpu_switch)
19328 {
19329 if (fpu_switch.preload)
19330 - copy_kernel_to_fpregs(&new_fpu->state);
19331 + copy_kernel_to_fpregs(new_fpu->state);
19332 }
19333
19334 /*
19335 diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
19336 index c49c517..0a6e089 100644
19337 --- a/arch/x86/include/asm/fpu/types.h
19338 +++ b/arch/x86/include/asm/fpu/types.h
19339 @@ -189,7 +189,6 @@ union fpregs_state {
19340 struct fxregs_state fxsave;
19341 struct swregs_state soft;
19342 struct xregs_state xsave;
19343 - u8 __padding[PAGE_SIZE];
19344 };
19345
19346 /*
19347 @@ -199,6 +198,39 @@ union fpregs_state {
19348 */
19349 struct fpu {
19350 /*
19351 + * @state:
19352 + *
19353 + * In-memory copy of all FPU registers that we save/restore
19354 + * over context switches. If the task is using the FPU then
19355 + * the registers in the FPU are more recent than this state
19356 + * copy. If the task context-switches away then they get
19357 + * saved here and represent the FPU state.
19358 + *
19359 + * After context switches there may be a (short) time period
19360 + * during which the in-FPU hardware registers are unchanged
19361 + * and still perfectly match this state, if the tasks
19362 + * scheduled afterwards are not using the FPU.
19363 + *
19364 + * This is the 'lazy restore' window of optimization, which
19365 + * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
19366 + *
19367 + * We detect whether a subsequent task uses the FPU via setting
19368 + * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
19369 + *
19370 + * During this window, if the task gets scheduled again, we
19371 + * might be able to skip having to do a restore from this
19372 + * memory buffer to the hardware registers - at the cost of
19373 + * incurring the overhead of #NM fault traps.
19374 + *
19375 + * Note that on modern CPUs that support the XSAVEOPT (or other
19376 + * optimized XSAVE instructions), we don't use #NM traps anymore,
19377 + * as the hardware can track whether FPU registers need saving
19378 + * or not. On such CPUs we activate the non-lazy ('eagerfpu')
19379 + * logic, which unconditionally saves/restores all FPU state
19380 + * across context switches. (if FPU state exists.)
19381 + */
19382 + union fpregs_state *state;
19383 + /*
19384 * @last_cpu:
19385 *
19386 * Records the last CPU on which this context was loaded into
19387 @@ -255,43 +287,6 @@ struct fpu {
19388 * deal with bursty apps that only use the FPU for a short time:
19389 */
19390 unsigned char counter;
19391 - /*
19392 - * @state:
19393 - *
19394 - * In-memory copy of all FPU registers that we save/restore
19395 - * over context switches. If the task is using the FPU then
19396 - * the registers in the FPU are more recent than this state
19397 - * copy. If the task context-switches away then they get
19398 - * saved here and represent the FPU state.
19399 - *
19400 - * After context switches there may be a (short) time period
19401 - * during which the in-FPU hardware registers are unchanged
19402 - * and still perfectly match this state, if the tasks
19403 - * scheduled afterwards are not using the FPU.
19404 - *
19405 - * This is the 'lazy restore' window of optimization, which
19406 - * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
19407 - *
19408 - * We detect whether a subsequent task uses the FPU via setting
19409 - * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
19410 - *
19411 - * During this window, if the task gets scheduled again, we
19412 - * might be able to skip having to do a restore from this
19413 - * memory buffer to the hardware registers - at the cost of
19414 - * incurring the overhead of #NM fault traps.
19415 - *
19416 - * Note that on modern CPUs that support the XSAVEOPT (or other
19417 - * optimized XSAVE instructions), we don't use #NM traps anymore,
19418 - * as the hardware can track whether FPU registers need saving
19419 - * or not. On such CPUs we activate the non-lazy ('eagerfpu')
19420 - * logic, which unconditionally saves/restores all FPU state
19421 - * across context switches. (if FPU state exists.)
19422 - */
19423 - union fpregs_state state;
19424 - /*
19425 - * WARNING: 'state' is dynamically-sized. Do not put
19426 - * anything after it here.
19427 - */
19428 };
19429
19430 #endif /* _ASM_X86_FPU_H */
19431 diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
19432 index b4c1f54..e290c08 100644
19433 --- a/arch/x86/include/asm/futex.h
19434 +++ b/arch/x86/include/asm/futex.h
19435 @@ -12,6 +12,7 @@
19436 #include <asm/smap.h>
19437
19438 #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \
19439 + typecheck(u32 __user *, uaddr); \
19440 asm volatile("\t" ASM_STAC "\n" \
19441 "1:\t" insn "\n" \
19442 "2:\t" ASM_CLAC "\n" \
19443 @@ -20,15 +21,16 @@
19444 "\tjmp\t2b\n" \
19445 "\t.previous\n" \
19446 _ASM_EXTABLE(1b, 3b) \
19447 - : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \
19448 + : "=r" (oldval), "=r" (ret), "+m" (*(u32 __user *)____m(uaddr)) \
19449 : "i" (-EFAULT), "0" (oparg), "1" (0))
19450
19451 #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg) \
19452 + typecheck(u32 __user *, uaddr); \
19453 asm volatile("\t" ASM_STAC "\n" \
19454 "1:\tmovl %2, %0\n" \
19455 "\tmovl\t%0, %3\n" \
19456 "\t" insn "\n" \
19457 - "2:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \
19458 + "2:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %3, %2\n" \
19459 "\tjnz\t1b\n" \
19460 "3:\t" ASM_CLAC "\n" \
19461 "\t.section .fixup,\"ax\"\n" \
19462 @@ -38,7 +40,7 @@
19463 _ASM_EXTABLE(1b, 4b) \
19464 _ASM_EXTABLE(2b, 4b) \
19465 : "=&a" (oldval), "=&r" (ret), \
19466 - "+m" (*uaddr), "=&r" (tem) \
19467 + "+m" (*(u32 __user *)____m(uaddr)), "=&r" (tem) \
19468 : "r" (oparg), "i" (-EFAULT), "1" (0))
19469
19470 static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19471 @@ -57,12 +59,13 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19472
19473 pagefault_disable();
19474
19475 + pax_open_userland();
19476 switch (op) {
19477 case FUTEX_OP_SET:
19478 - __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
19479 + __futex_atomic_op1(__copyuser_seg"xchgl %0, %2", ret, oldval, uaddr, oparg);
19480 break;
19481 case FUTEX_OP_ADD:
19482 - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
19483 + __futex_atomic_op1(LOCK_PREFIX __copyuser_seg"xaddl %0, %2", ret, oldval,
19484 uaddr, oparg);
19485 break;
19486 case FUTEX_OP_OR:
19487 @@ -77,6 +80,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19488 default:
19489 ret = -ENOSYS;
19490 }
19491 + pax_close_userland();
19492
19493 pagefault_enable();
19494
19495 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
19496 index 6615032..9c233be 100644
19497 --- a/arch/x86/include/asm/hw_irq.h
19498 +++ b/arch/x86/include/asm/hw_irq.h
19499 @@ -158,8 +158,8 @@ static inline void unlock_vector_lock(void) {}
19500 #endif /* CONFIG_X86_LOCAL_APIC */
19501
19502 /* Statistics */
19503 -extern atomic_t irq_err_count;
19504 -extern atomic_t irq_mis_count;
19505 +extern atomic_unchecked_t irq_err_count;
19506 +extern atomic_unchecked_t irq_mis_count;
19507
19508 extern void elcr_set_level_irq(unsigned int irq);
19509
19510 diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h
19511 index ccffa53..3c90c87 100644
19512 --- a/arch/x86/include/asm/i8259.h
19513 +++ b/arch/x86/include/asm/i8259.h
19514 @@ -62,7 +62,7 @@ struct legacy_pic {
19515 void (*init)(int auto_eoi);
19516 int (*irq_pending)(unsigned int irq);
19517 void (*make_irq)(unsigned int irq);
19518 -};
19519 +} __do_const;
19520
19521 extern struct legacy_pic *legacy_pic;
19522 extern struct legacy_pic null_legacy_pic;
19523 diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
19524 index cc9c61b..7b17f40 100644
19525 --- a/arch/x86/include/asm/io.h
19526 +++ b/arch/x86/include/asm/io.h
19527 @@ -42,6 +42,7 @@
19528 #include <asm/page.h>
19529 #include <asm/early_ioremap.h>
19530 #include <asm/pgtable_types.h>
19531 +#include <asm/processor.h>
19532
19533 #define build_mmio_read(name, size, type, reg, barrier) \
19534 static inline type name(const volatile void __iomem *addr) \
19535 @@ -54,12 +55,12 @@ static inline void name(type val, volatile void __iomem *addr) \
19536 "m" (*(volatile type __force *)addr) barrier); }
19537
19538 build_mmio_read(readb, "b", unsigned char, "=q", :"memory")
19539 -build_mmio_read(readw, "w", unsigned short, "=r", :"memory")
19540 -build_mmio_read(readl, "l", unsigned int, "=r", :"memory")
19541 +build_mmio_read(__intentional_overflow(-1) readw, "w", unsigned short, "=r", :"memory")
19542 +build_mmio_read(__intentional_overflow(-1) readl, "l", unsigned int, "=r", :"memory")
19543
19544 build_mmio_read(__readb, "b", unsigned char, "=q", )
19545 -build_mmio_read(__readw, "w", unsigned short, "=r", )
19546 -build_mmio_read(__readl, "l", unsigned int, "=r", )
19547 +build_mmio_read(__intentional_overflow(-1) __readw, "w", unsigned short, "=r", )
19548 +build_mmio_read(__intentional_overflow(-1) __readl, "l", unsigned int, "=r", )
19549
19550 build_mmio_write(writeb, "b", unsigned char, "q", :"memory")
19551 build_mmio_write(writew, "w", unsigned short, "r", :"memory")
19552 @@ -115,7 +116,7 @@ build_mmio_write(writeq, "q", unsigned long, "r", :"memory")
19553 * this function
19554 */
19555
19556 -static inline phys_addr_t virt_to_phys(volatile void *address)
19557 +static inline phys_addr_t __intentional_overflow(-1) virt_to_phys(volatile void *address)
19558 {
19559 return __pa(address);
19560 }
19561 @@ -192,7 +193,7 @@ static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
19562 return ioremap_nocache(offset, size);
19563 }
19564
19565 -extern void iounmap(volatile void __iomem *addr);
19566 +extern void iounmap(const volatile void __iomem *addr);
19567
19568 extern void set_iounmap_nonlazy(void);
19569
19570 @@ -200,6 +201,17 @@ extern void set_iounmap_nonlazy(void);
19571
19572 #include <asm-generic/iomap.h>
19573
19574 +#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
19575 +static inline int valid_phys_addr_range(unsigned long addr, size_t count)
19576 +{
19577 + return ((addr + count + PAGE_SIZE - 1) >> PAGE_SHIFT) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
19578 +}
19579 +
19580 +static inline int valid_mmap_phys_addr_range(unsigned long pfn, size_t count)
19581 +{
19582 + return (pfn + (count >> PAGE_SHIFT)) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
19583 +}
19584 +
19585 /*
19586 * Convert a virtual cached pointer to an uncached pointer
19587 */
19588 diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
19589 index b77f5ed..a2f791e 100644
19590 --- a/arch/x86/include/asm/irqflags.h
19591 +++ b/arch/x86/include/asm/irqflags.h
19592 @@ -137,6 +137,11 @@ static inline notrace unsigned long arch_local_irq_save(void)
19593 swapgs; \
19594 sysretl
19595
19596 +#define GET_CR0_INTO_RDI mov %cr0, %rdi
19597 +#define SET_RDI_INTO_CR0 mov %rdi, %cr0
19598 +#define GET_CR3_INTO_RDI mov %cr3, %rdi
19599 +#define SET_RDI_INTO_CR3 mov %rdi, %cr3
19600 +
19601 #else
19602 #define INTERRUPT_RETURN iret
19603 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
19604 diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h
19605 index 4421b5d..8543006 100644
19606 --- a/arch/x86/include/asm/kprobes.h
19607 +++ b/arch/x86/include/asm/kprobes.h
19608 @@ -37,13 +37,8 @@ typedef u8 kprobe_opcode_t;
19609 #define RELATIVEJUMP_SIZE 5
19610 #define RELATIVECALL_OPCODE 0xe8
19611 #define RELATIVE_ADDR_SIZE 4
19612 -#define MAX_STACK_SIZE 64
19613 -#define MIN_STACK_SIZE(ADDR) \
19614 - (((MAX_STACK_SIZE) < (((unsigned long)current_thread_info()) + \
19615 - THREAD_SIZE - (unsigned long)(ADDR))) \
19616 - ? (MAX_STACK_SIZE) \
19617 - : (((unsigned long)current_thread_info()) + \
19618 - THREAD_SIZE - (unsigned long)(ADDR)))
19619 +#define MAX_STACK_SIZE 64UL
19620 +#define MIN_STACK_SIZE(ADDR) min(MAX_STACK_SIZE, current->thread.sp0 - (unsigned long)(ADDR))
19621
19622 #define flush_insn_slot(p) do { } while (0)
19623
19624 diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h
19625 index 4ad6560..75c7bdd 100644
19626 --- a/arch/x86/include/asm/local.h
19627 +++ b/arch/x86/include/asm/local.h
19628 @@ -10,33 +10,97 @@ typedef struct {
19629 atomic_long_t a;
19630 } local_t;
19631
19632 +typedef struct {
19633 + atomic_long_unchecked_t a;
19634 +} local_unchecked_t;
19635 +
19636 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
19637
19638 #define local_read(l) atomic_long_read(&(l)->a)
19639 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
19640 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
19641 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
19642
19643 static inline void local_inc(local_t *l)
19644 {
19645 - asm volatile(_ASM_INC "%0"
19646 + asm volatile(_ASM_INC "%0\n"
19647 +
19648 +#ifdef CONFIG_PAX_REFCOUNT
19649 + "jno 0f\n"
19650 + _ASM_DEC "%0\n"
19651 + "int $4\n0:\n"
19652 + _ASM_EXTABLE(0b, 0b)
19653 +#endif
19654 +
19655 + : "+m" (l->a.counter));
19656 +}
19657 +
19658 +static inline void local_inc_unchecked(local_unchecked_t *l)
19659 +{
19660 + asm volatile(_ASM_INC "%0\n"
19661 : "+m" (l->a.counter));
19662 }
19663
19664 static inline void local_dec(local_t *l)
19665 {
19666 - asm volatile(_ASM_DEC "%0"
19667 + asm volatile(_ASM_DEC "%0\n"
19668 +
19669 +#ifdef CONFIG_PAX_REFCOUNT
19670 + "jno 0f\n"
19671 + _ASM_INC "%0\n"
19672 + "int $4\n0:\n"
19673 + _ASM_EXTABLE(0b, 0b)
19674 +#endif
19675 +
19676 + : "+m" (l->a.counter));
19677 +}
19678 +
19679 +static inline void local_dec_unchecked(local_unchecked_t *l)
19680 +{
19681 + asm volatile(_ASM_DEC "%0\n"
19682 : "+m" (l->a.counter));
19683 }
19684
19685 static inline void local_add(long i, local_t *l)
19686 {
19687 - asm volatile(_ASM_ADD "%1,%0"
19688 + asm volatile(_ASM_ADD "%1,%0\n"
19689 +
19690 +#ifdef CONFIG_PAX_REFCOUNT
19691 + "jno 0f\n"
19692 + _ASM_SUB "%1,%0\n"
19693 + "int $4\n0:\n"
19694 + _ASM_EXTABLE(0b, 0b)
19695 +#endif
19696 +
19697 + : "+m" (l->a.counter)
19698 + : "ir" (i));
19699 +}
19700 +
19701 +static inline void local_add_unchecked(long i, local_unchecked_t *l)
19702 +{
19703 + asm volatile(_ASM_ADD "%1,%0\n"
19704 : "+m" (l->a.counter)
19705 : "ir" (i));
19706 }
19707
19708 static inline void local_sub(long i, local_t *l)
19709 {
19710 - asm volatile(_ASM_SUB "%1,%0"
19711 + asm volatile(_ASM_SUB "%1,%0\n"
19712 +
19713 +#ifdef CONFIG_PAX_REFCOUNT
19714 + "jno 0f\n"
19715 + _ASM_ADD "%1,%0\n"
19716 + "int $4\n0:\n"
19717 + _ASM_EXTABLE(0b, 0b)
19718 +#endif
19719 +
19720 + : "+m" (l->a.counter)
19721 + : "ir" (i));
19722 +}
19723 +
19724 +static inline void local_sub_unchecked(long i, local_unchecked_t *l)
19725 +{
19726 + asm volatile(_ASM_SUB "%1,%0\n"
19727 : "+m" (l->a.counter)
19728 : "ir" (i));
19729 }
19730 @@ -52,7 +116,7 @@ static inline void local_sub(long i, local_t *l)
19731 */
19732 static inline int local_sub_and_test(long i, local_t *l)
19733 {
19734 - GEN_BINARY_RMWcc(_ASM_SUB, l->a.counter, "er", i, "%0", "e");
19735 + GEN_BINARY_RMWcc(_ASM_SUB, _ASM_ADD, l->a.counter, "er", i, "%0", "e");
19736 }
19737
19738 /**
19739 @@ -65,7 +129,7 @@ static inline int local_sub_and_test(long i, local_t *l)
19740 */
19741 static inline int local_dec_and_test(local_t *l)
19742 {
19743 - GEN_UNARY_RMWcc(_ASM_DEC, l->a.counter, "%0", "e");
19744 + GEN_UNARY_RMWcc(_ASM_DEC, _ASM_INC, l->a.counter, "%0", "e");
19745 }
19746
19747 /**
19748 @@ -78,7 +142,7 @@ static inline int local_dec_and_test(local_t *l)
19749 */
19750 static inline int local_inc_and_test(local_t *l)
19751 {
19752 - GEN_UNARY_RMWcc(_ASM_INC, l->a.counter, "%0", "e");
19753 + GEN_UNARY_RMWcc(_ASM_INC, _ASM_DEC, l->a.counter, "%0", "e");
19754 }
19755
19756 /**
19757 @@ -92,7 +156,7 @@ static inline int local_inc_and_test(local_t *l)
19758 */
19759 static inline int local_add_negative(long i, local_t *l)
19760 {
19761 - GEN_BINARY_RMWcc(_ASM_ADD, l->a.counter, "er", i, "%0", "s");
19762 + GEN_BINARY_RMWcc(_ASM_ADD, _ASM_SUB, l->a.counter, "er", i, "%0", "s");
19763 }
19764
19765 /**
19766 @@ -105,6 +169,30 @@ static inline int local_add_negative(long i, local_t *l)
19767 static inline long local_add_return(long i, local_t *l)
19768 {
19769 long __i = i;
19770 + asm volatile(_ASM_XADD "%0, %1\n"
19771 +
19772 +#ifdef CONFIG_PAX_REFCOUNT
19773 + "jno 0f\n"
19774 + _ASM_MOV "%0,%1\n"
19775 + "int $4\n0:\n"
19776 + _ASM_EXTABLE(0b, 0b)
19777 +#endif
19778 +
19779 + : "+r" (i), "+m" (l->a.counter)
19780 + : : "memory");
19781 + return i + __i;
19782 +}
19783 +
19784 +/**
19785 + * local_add_return_unchecked - add and return
19786 + * @i: integer value to add
19787 + * @l: pointer to type local_unchecked_t
19788 + *
19789 + * Atomically adds @i to @l and returns @i + @l
19790 + */
19791 +static inline long local_add_return_unchecked(long i, local_unchecked_t *l)
19792 +{
19793 + long __i = i;
19794 asm volatile(_ASM_XADD "%0, %1;"
19795 : "+r" (i), "+m" (l->a.counter)
19796 : : "memory");
19797 @@ -121,6 +209,8 @@ static inline long local_sub_return(long i, local_t *l)
19798
19799 #define local_cmpxchg(l, o, n) \
19800 (cmpxchg_local(&((l)->a.counter), (o), (n)))
19801 +#define local_cmpxchg_unchecked(l, o, n) \
19802 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
19803 /* Always has a lock prefix */
19804 #define local_xchg(l, n) (xchg(&((l)->a.counter), (n)))
19805
19806 diff --git a/arch/x86/include/asm/mman.h b/arch/x86/include/asm/mman.h
19807 new file mode 100644
19808 index 0000000..2bfd3ba
19809 --- /dev/null
19810 +++ b/arch/x86/include/asm/mman.h
19811 @@ -0,0 +1,15 @@
19812 +#ifndef _X86_MMAN_H
19813 +#define _X86_MMAN_H
19814 +
19815 +#include <uapi/asm/mman.h>
19816 +
19817 +#ifdef __KERNEL__
19818 +#ifndef __ASSEMBLY__
19819 +#ifdef CONFIG_X86_32
19820 +#define arch_mmap_check i386_mmap_check
19821 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags);
19822 +#endif
19823 +#endif
19824 +#endif
19825 +
19826 +#endif /* X86_MMAN_H */
19827 diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
19828 index 364d274..e51b4bc 100644
19829 --- a/arch/x86/include/asm/mmu.h
19830 +++ b/arch/x86/include/asm/mmu.h
19831 @@ -17,7 +17,19 @@ typedef struct {
19832 #endif
19833
19834 struct mutex lock;
19835 - void __user *vdso;
19836 + unsigned long vdso;
19837 +
19838 +#ifdef CONFIG_X86_32
19839 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
19840 + unsigned long user_cs_base;
19841 + unsigned long user_cs_limit;
19842 +
19843 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19844 + cpumask_t cpu_user_cs_mask;
19845 +#endif
19846 +
19847 +#endif
19848 +#endif
19849
19850 atomic_t perf_rdpmc_allowed; /* nonzero if rdpmc is allowed */
19851 } mm_context_t;
19852 diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
19853 index 984abfe..9996c62 100644
19854 --- a/arch/x86/include/asm/mmu_context.h
19855 +++ b/arch/x86/include/asm/mmu_context.h
19856 @@ -45,7 +45,7 @@ struct ldt_struct {
19857 * allocations, but it's not worth trying to optimize.
19858 */
19859 struct desc_struct *entries;
19860 - int size;
19861 + unsigned int size;
19862 };
19863
19864 static inline void load_mm_ldt(struct mm_struct *mm)
19865 @@ -86,26 +86,95 @@ void destroy_context(struct mm_struct *mm);
19866
19867 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
19868 {
19869 +
19870 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19871 + if (!(static_cpu_has(X86_FEATURE_PCIDUDEREF))) {
19872 + unsigned int i;
19873 + pgd_t *pgd;
19874 +
19875 + pax_open_kernel();
19876 + pgd = get_cpu_pgd(smp_processor_id(), kernel);
19877 + for (i = USER_PGD_PTRS; i < 2 * USER_PGD_PTRS; ++i)
19878 + set_pgd_batched(pgd+i, native_make_pgd(0));
19879 + pax_close_kernel();
19880 + }
19881 +#endif
19882 +
19883 #ifdef CONFIG_SMP
19884 if (this_cpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
19885 this_cpu_write(cpu_tlbstate.state, TLBSTATE_LAZY);
19886 #endif
19887 }
19888
19889 +static inline void pax_switch_mm(struct mm_struct *next, unsigned int cpu)
19890 +{
19891 +
19892 +#ifdef CONFIG_PAX_PER_CPU_PGD
19893 + pax_open_kernel();
19894 +
19895 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19896 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF))
19897 + __clone_user_pgds(get_cpu_pgd(cpu, user), next->pgd);
19898 + else
19899 +#endif
19900 +
19901 + __clone_user_pgds(get_cpu_pgd(cpu, kernel), next->pgd);
19902 +
19903 + __shadow_user_pgds(get_cpu_pgd(cpu, kernel) + USER_PGD_PTRS, next->pgd);
19904 +
19905 + pax_close_kernel();
19906 +
19907 + 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));
19908 +
19909 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19910 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
19911 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
19912 + u64 descriptor[2];
19913 + descriptor[0] = PCID_USER;
19914 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19915 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF)) {
19916 + descriptor[0] = PCID_KERNEL;
19917 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19918 + }
19919 + } else {
19920 + write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
19921 + if (static_cpu_has(X86_FEATURE_STRONGUDEREF))
19922 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
19923 + else
19924 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
19925 + }
19926 + } else
19927 +#endif
19928 +
19929 + load_cr3(get_cpu_pgd(cpu, kernel));
19930 +#endif
19931 +
19932 +}
19933 +
19934 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19935 struct task_struct *tsk)
19936 {
19937 unsigned cpu = smp_processor_id();
19938 +#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19939 + int tlbstate = TLBSTATE_OK;
19940 +#endif
19941
19942 if (likely(prev != next)) {
19943 #ifdef CONFIG_SMP
19944 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19945 + tlbstate = this_cpu_read(cpu_tlbstate.state);
19946 +#endif
19947 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19948 this_cpu_write(cpu_tlbstate.active_mm, next);
19949 #endif
19950 cpumask_set_cpu(cpu, mm_cpumask(next));
19951
19952 /* Re-load page tables */
19953 +#ifdef CONFIG_PAX_PER_CPU_PGD
19954 + pax_switch_mm(next, cpu);
19955 +#else
19956 load_cr3(next->pgd);
19957 +#endif
19958 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
19959
19960 /* Stop flush ipis for the previous mm */
19961 @@ -128,9 +197,31 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19962 */
19963 if (unlikely(prev->context.ldt != next->context.ldt))
19964 load_mm_ldt(next);
19965 +
19966 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19967 + if (!(__supported_pte_mask & _PAGE_NX)) {
19968 + smp_mb__before_atomic();
19969 + cpumask_clear_cpu(cpu, &prev->context.cpu_user_cs_mask);
19970 + smp_mb__after_atomic();
19971 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
19972 + }
19973 +#endif
19974 +
19975 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19976 + if (unlikely(prev->context.user_cs_base != next->context.user_cs_base ||
19977 + prev->context.user_cs_limit != next->context.user_cs_limit))
19978 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19979 +#ifdef CONFIG_SMP
19980 + else if (unlikely(tlbstate != TLBSTATE_OK))
19981 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19982 +#endif
19983 +#endif
19984 +
19985 }
19986 + else {
19987 + pax_switch_mm(next, cpu);
19988 +
19989 #ifdef CONFIG_SMP
19990 - else {
19991 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19992 BUG_ON(this_cpu_read(cpu_tlbstate.active_mm) != next);
19993
19994 @@ -147,13 +238,30 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19995 * tlb flush IPI delivery. We must reload CR3
19996 * to make sure to use no freed page tables.
19997 */
19998 +
19999 +#ifndef CONFIG_PAX_PER_CPU_PGD
20000 load_cr3(next->pgd);
20001 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
20002 +#endif
20003 +
20004 load_mm_cr4(next);
20005 load_mm_ldt(next);
20006 +
20007 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
20008 + if (!(__supported_pte_mask & _PAGE_NX))
20009 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
20010 +#endif
20011 +
20012 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
20013 +#ifdef CONFIG_PAX_PAGEEXEC
20014 + if (!((next->pax_flags & MF_PAX_PAGEEXEC) && (__supported_pte_mask & _PAGE_NX)))
20015 +#endif
20016 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
20017 +#endif
20018 +
20019 }
20020 +#endif
20021 }
20022 -#endif
20023 }
20024
20025 #define activate_mm(prev, next) \
20026 diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h
20027 index e3b7819..b257c64 100644
20028 --- a/arch/x86/include/asm/module.h
20029 +++ b/arch/x86/include/asm/module.h
20030 @@ -5,6 +5,7 @@
20031
20032 #ifdef CONFIG_X86_64
20033 /* X86_64 does not define MODULE_PROC_FAMILY */
20034 +#define MODULE_PROC_FAMILY ""
20035 #elif defined CONFIG_M486
20036 #define MODULE_PROC_FAMILY "486 "
20037 #elif defined CONFIG_M586
20038 @@ -57,8 +58,20 @@
20039 #error unknown processor family
20040 #endif
20041
20042 -#ifdef CONFIG_X86_32
20043 -# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
20044 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
20045 +#define MODULE_PAX_KERNEXEC "KERNEXEC_BTS "
20046 +#elif defined(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR)
20047 +#define MODULE_PAX_KERNEXEC "KERNEXEC_OR "
20048 +#else
20049 +#define MODULE_PAX_KERNEXEC ""
20050 #endif
20051
20052 +#ifdef CONFIG_PAX_MEMORY_UDEREF
20053 +#define MODULE_PAX_UDEREF "UDEREF "
20054 +#else
20055 +#define MODULE_PAX_UDEREF ""
20056 +#endif
20057 +
20058 +#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_PAX_KERNEXEC MODULE_PAX_UDEREF
20059 +
20060 #endif /* _ASM_X86_MODULE_H */
20061 diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h
20062 index 5f2fc44..106caa6 100644
20063 --- a/arch/x86/include/asm/nmi.h
20064 +++ b/arch/x86/include/asm/nmi.h
20065 @@ -36,26 +36,35 @@ enum {
20066
20067 typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
20068
20069 +struct nmiaction;
20070 +
20071 +struct nmiwork {
20072 + const struct nmiaction *action;
20073 + u64 max_duration;
20074 + struct irq_work irq_work;
20075 +};
20076 +
20077 struct nmiaction {
20078 struct list_head list;
20079 nmi_handler_t handler;
20080 - u64 max_duration;
20081 - struct irq_work irq_work;
20082 unsigned long flags;
20083 const char *name;
20084 -};
20085 + struct nmiwork *work;
20086 +} __do_const;
20087
20088 #define register_nmi_handler(t, fn, fg, n, init...) \
20089 ({ \
20090 - static struct nmiaction init fn##_na = { \
20091 + static struct nmiwork fn##_nw; \
20092 + static const struct nmiaction init fn##_na = { \
20093 .handler = (fn), \
20094 .name = (n), \
20095 .flags = (fg), \
20096 + .work = &fn##_nw, \
20097 }; \
20098 __register_nmi_handler((t), &fn##_na); \
20099 })
20100
20101 -int __register_nmi_handler(unsigned int, struct nmiaction *);
20102 +int __register_nmi_handler(unsigned int, const struct nmiaction *);
20103
20104 void unregister_nmi_handler(unsigned int, const char *);
20105
20106 diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
20107 index 802dde3..9183e68 100644
20108 --- a/arch/x86/include/asm/page.h
20109 +++ b/arch/x86/include/asm/page.h
20110 @@ -52,6 +52,7 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
20111 __phys_addr_symbol(__phys_reloc_hide((unsigned long)(x)))
20112
20113 #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
20114 +#define __early_va(x) ((void *)((unsigned long)(x)+__START_KERNEL_map - phys_base))
20115
20116 #define __boot_va(x) __va(x)
20117 #define __boot_pa(x) __pa(x)
20118 @@ -60,11 +61,21 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
20119 * virt_to_page(kaddr) returns a valid pointer if and only if
20120 * virt_addr_valid(kaddr) returns true.
20121 */
20122 -#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
20123 #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
20124 extern bool __virt_addr_valid(unsigned long kaddr);
20125 #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr))
20126
20127 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
20128 +#define virt_to_page(kaddr) \
20129 + ({ \
20130 + const void *__kaddr = (const void *)(kaddr); \
20131 + BUG_ON(!virt_addr_valid(__kaddr)); \
20132 + pfn_to_page(__pa(__kaddr) >> PAGE_SHIFT); \
20133 + })
20134 +#else
20135 +#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
20136 +#endif
20137 +
20138 #endif /* __ASSEMBLY__ */
20139
20140 #include <asm-generic/memory_model.h>
20141 diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h
20142 index 904f528..b4d0d24 100644
20143 --- a/arch/x86/include/asm/page_32.h
20144 +++ b/arch/x86/include/asm/page_32.h
20145 @@ -7,11 +7,17 @@
20146
20147 #define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET)
20148 #ifdef CONFIG_DEBUG_VIRTUAL
20149 -extern unsigned long __phys_addr(unsigned long);
20150 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
20151 #else
20152 -#define __phys_addr(x) __phys_addr_nodebug(x)
20153 +static inline unsigned long __intentional_overflow(-1) __phys_addr(unsigned long x)
20154 +{
20155 + return __phys_addr_nodebug(x);
20156 +}
20157 #endif
20158 -#define __phys_addr_symbol(x) __phys_addr(x)
20159 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
20160 +{
20161 + return __phys_addr(x);
20162 +}
20163 #define __phys_reloc_hide(x) RELOC_HIDE((x), 0)
20164
20165 #ifdef CONFIG_FLATMEM
20166 diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
20167 index b3bebf9..cb419e7 100644
20168 --- a/arch/x86/include/asm/page_64.h
20169 +++ b/arch/x86/include/asm/page_64.h
20170 @@ -7,9 +7,9 @@
20171
20172 /* duplicated to the one in bootmem.h */
20173 extern unsigned long max_pfn;
20174 -extern unsigned long phys_base;
20175 +extern const unsigned long phys_base;
20176
20177 -static inline unsigned long __phys_addr_nodebug(unsigned long x)
20178 +static inline unsigned long __intentional_overflow(-1) __phys_addr_nodebug(unsigned long x)
20179 {
20180 unsigned long y = x - __START_KERNEL_map;
20181
20182 @@ -20,12 +20,14 @@ static inline unsigned long __phys_addr_nodebug(unsigned long x)
20183 }
20184
20185 #ifdef CONFIG_DEBUG_VIRTUAL
20186 -extern unsigned long __phys_addr(unsigned long);
20187 -extern unsigned long __phys_addr_symbol(unsigned long);
20188 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
20189 +extern unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long);
20190 #else
20191 #define __phys_addr(x) __phys_addr_nodebug(x)
20192 -#define __phys_addr_symbol(x) \
20193 - ((unsigned long)(x) - __START_KERNEL_map + phys_base)
20194 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
20195 +{
20196 + return x - __START_KERNEL_map + phys_base;
20197 +}
20198 #endif
20199
20200 #define __phys_reloc_hide(x) (x)
20201 diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
20202 index d143bfa..30d1f41 100644
20203 --- a/arch/x86/include/asm/paravirt.h
20204 +++ b/arch/x86/include/asm/paravirt.h
20205 @@ -560,7 +560,7 @@ static inline pmd_t __pmd(pmdval_t val)
20206 return (pmd_t) { ret };
20207 }
20208
20209 -static inline pmdval_t pmd_val(pmd_t pmd)
20210 +static inline __intentional_overflow(-1) pmdval_t pmd_val(pmd_t pmd)
20211 {
20212 pmdval_t ret;
20213
20214 @@ -626,6 +626,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
20215 val);
20216 }
20217
20218 +static inline void set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
20219 +{
20220 + pgdval_t val = native_pgd_val(pgd);
20221 +
20222 + if (sizeof(pgdval_t) > sizeof(long))
20223 + PVOP_VCALL3(pv_mmu_ops.set_pgd_batched, pgdp,
20224 + val, (u64)val >> 32);
20225 + else
20226 + PVOP_VCALL2(pv_mmu_ops.set_pgd_batched, pgdp,
20227 + val);
20228 +}
20229 +
20230 static inline void pgd_clear(pgd_t *pgdp)
20231 {
20232 set_pgd(pgdp, __pgd(0));
20233 @@ -710,6 +722,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
20234 pv_mmu_ops.set_fixmap(idx, phys, flags);
20235 }
20236
20237 +#ifdef CONFIG_PAX_KERNEXEC
20238 +static inline unsigned long pax_open_kernel(void)
20239 +{
20240 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_open_kernel);
20241 +}
20242 +
20243 +static inline unsigned long pax_close_kernel(void)
20244 +{
20245 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_close_kernel);
20246 +}
20247 +#else
20248 +static inline unsigned long pax_open_kernel(void) { return 0; }
20249 +static inline unsigned long pax_close_kernel(void) { return 0; }
20250 +#endif
20251 +
20252 #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
20253
20254 #ifdef CONFIG_QUEUED_SPINLOCKS
20255 @@ -933,7 +960,7 @@ extern void default_banner(void);
20256
20257 #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
20258 #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
20259 -#define PARA_INDIRECT(addr) *%cs:addr
20260 +#define PARA_INDIRECT(addr) *%ss:addr
20261 #endif
20262
20263 #define INTERRUPT_RETURN \
20264 @@ -1003,6 +1030,21 @@ extern void default_banner(void);
20265 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64), \
20266 CLBR_NONE, \
20267 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64))
20268 +
20269 +#define GET_CR0_INTO_RDI \
20270 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \
20271 + mov %rax,%rdi
20272 +
20273 +#define SET_RDI_INTO_CR0 \
20274 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
20275 +
20276 +#define GET_CR3_INTO_RDI \
20277 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr3); \
20278 + mov %rax,%rdi
20279 +
20280 +#define SET_RDI_INTO_CR3 \
20281 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_write_cr3)
20282 +
20283 #endif /* CONFIG_X86_32 */
20284
20285 #endif /* __ASSEMBLY__ */
20286 diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
20287 index a6b8f9f..fd61ef7 100644
20288 --- a/arch/x86/include/asm/paravirt_types.h
20289 +++ b/arch/x86/include/asm/paravirt_types.h
20290 @@ -84,7 +84,7 @@ struct pv_init_ops {
20291 */
20292 unsigned (*patch)(u8 type, u16 clobber, void *insnbuf,
20293 unsigned long addr, unsigned len);
20294 -};
20295 +} __no_const __no_randomize_layout;
20296
20297
20298 struct pv_lazy_ops {
20299 @@ -92,13 +92,13 @@ struct pv_lazy_ops {
20300 void (*enter)(void);
20301 void (*leave)(void);
20302 void (*flush)(void);
20303 -};
20304 +} __no_randomize_layout;
20305
20306 struct pv_time_ops {
20307 unsigned long long (*sched_clock)(void);
20308 unsigned long long (*steal_clock)(int cpu);
20309 unsigned long (*get_tsc_khz)(void);
20310 -};
20311 +} __no_const __no_randomize_layout;
20312
20313 struct pv_cpu_ops {
20314 /* hooks for various privileged instructions */
20315 @@ -193,7 +193,7 @@ struct pv_cpu_ops {
20316
20317 void (*start_context_switch)(struct task_struct *prev);
20318 void (*end_context_switch)(struct task_struct *next);
20319 -};
20320 +} __no_const __no_randomize_layout;
20321
20322 struct pv_irq_ops {
20323 /*
20324 @@ -216,7 +216,7 @@ struct pv_irq_ops {
20325 #ifdef CONFIG_X86_64
20326 void (*adjust_exception_frame)(void);
20327 #endif
20328 -};
20329 +} __no_randomize_layout;
20330
20331 struct pv_apic_ops {
20332 #ifdef CONFIG_X86_LOCAL_APIC
20333 @@ -224,7 +224,7 @@ struct pv_apic_ops {
20334 unsigned long start_eip,
20335 unsigned long start_esp);
20336 #endif
20337 -};
20338 +} __no_const __no_randomize_layout;
20339
20340 struct pv_mmu_ops {
20341 unsigned long (*read_cr2)(void);
20342 @@ -314,6 +314,7 @@ struct pv_mmu_ops {
20343 struct paravirt_callee_save make_pud;
20344
20345 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
20346 + void (*set_pgd_batched)(pgd_t *pudp, pgd_t pgdval);
20347 #endif /* CONFIG_PGTABLE_LEVELS == 4 */
20348 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
20349
20350 @@ -325,7 +326,13 @@ struct pv_mmu_ops {
20351 an mfn. We can tell which is which from the index. */
20352 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
20353 phys_addr_t phys, pgprot_t flags);
20354 -};
20355 +
20356 +#ifdef CONFIG_PAX_KERNEXEC
20357 + unsigned long (*pax_open_kernel)(void);
20358 + unsigned long (*pax_close_kernel)(void);
20359 +#endif
20360 +
20361 +} __no_randomize_layout;
20362
20363 struct arch_spinlock;
20364 #ifdef CONFIG_SMP
20365 @@ -347,11 +354,14 @@ struct pv_lock_ops {
20366 struct paravirt_callee_save lock_spinning;
20367 void (*unlock_kick)(struct arch_spinlock *lock, __ticket_t ticket);
20368 #endif /* !CONFIG_QUEUED_SPINLOCKS */
20369 -};
20370 +} __no_randomize_layout;
20371
20372 /* This contains all the paravirt structures: we get a convenient
20373 * number for each function using the offset which we use to indicate
20374 - * what to patch. */
20375 + * what to patch.
20376 + * shouldn't be randomized due to the "NEAT TRICK" in paravirt.c
20377 + */
20378 +
20379 struct paravirt_patch_template {
20380 struct pv_init_ops pv_init_ops;
20381 struct pv_time_ops pv_time_ops;
20382 @@ -360,7 +370,7 @@ struct paravirt_patch_template {
20383 struct pv_apic_ops pv_apic_ops;
20384 struct pv_mmu_ops pv_mmu_ops;
20385 struct pv_lock_ops pv_lock_ops;
20386 -};
20387 +} __no_randomize_layout;
20388
20389 extern struct pv_info pv_info;
20390 extern struct pv_init_ops pv_init_ops;
20391 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
20392 index bf7f8b5..ca5799d 100644
20393 --- a/arch/x86/include/asm/pgalloc.h
20394 +++ b/arch/x86/include/asm/pgalloc.h
20395 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
20396 pmd_t *pmd, pte_t *pte)
20397 {
20398 paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
20399 + set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
20400 +}
20401 +
20402 +static inline void pmd_populate_user(struct mm_struct *mm,
20403 + pmd_t *pmd, pte_t *pte)
20404 +{
20405 + paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
20406 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
20407 }
20408
20409 @@ -108,12 +115,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
20410
20411 #ifdef CONFIG_X86_PAE
20412 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
20413 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
20414 +{
20415 + pud_populate(mm, pudp, pmd);
20416 +}
20417 #else /* !CONFIG_X86_PAE */
20418 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
20419 {
20420 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
20421 set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
20422 }
20423 +
20424 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
20425 +{
20426 + paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
20427 + set_pud(pud, __pud(_KERNPG_TABLE | __pa(pmd)));
20428 +}
20429 #endif /* CONFIG_X86_PAE */
20430
20431 #if CONFIG_PGTABLE_LEVELS > 3
20432 @@ -123,6 +140,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
20433 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
20434 }
20435
20436 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
20437 +{
20438 + paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT);
20439 + set_pgd(pgd, __pgd(_KERNPG_TABLE | __pa(pud)));
20440 +}
20441 +
20442 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
20443 {
20444 return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
20445 diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
20446 index fd74a11..35fd5af 100644
20447 --- a/arch/x86/include/asm/pgtable-2level.h
20448 +++ b/arch/x86/include/asm/pgtable-2level.h
20449 @@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t *ptep , pte_t pte)
20450
20451 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20452 {
20453 + pax_open_kernel();
20454 *pmdp = pmd;
20455 + pax_close_kernel();
20456 }
20457
20458 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20459 diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
20460 index cdaa58c..ae30f0d 100644
20461 --- a/arch/x86/include/asm/pgtable-3level.h
20462 +++ b/arch/x86/include/asm/pgtable-3level.h
20463 @@ -92,12 +92,16 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20464
20465 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20466 {
20467 + pax_open_kernel();
20468 set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd));
20469 + pax_close_kernel();
20470 }
20471
20472 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20473 {
20474 + pax_open_kernel();
20475 set_64bit((unsigned long long *)(pudp), native_pud_val(pud));
20476 + pax_close_kernel();
20477 }
20478
20479 /*
20480 @@ -116,9 +120,12 @@ static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr,
20481 static inline void native_pmd_clear(pmd_t *pmd)
20482 {
20483 u32 *tmp = (u32 *)pmd;
20484 +
20485 + pax_open_kernel();
20486 *tmp = 0;
20487 smp_wmb();
20488 *(tmp + 1) = 0;
20489 + pax_close_kernel();
20490 }
20491
20492 static inline void pud_clear(pud_t *pudp)
20493 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
20494 index 867da5b..7ec083d 100644
20495 --- a/arch/x86/include/asm/pgtable.h
20496 +++ b/arch/x86/include/asm/pgtable.h
20497 @@ -47,6 +47,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
20498
20499 #ifndef __PAGETABLE_PUD_FOLDED
20500 #define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
20501 +#define set_pgd_batched(pgdp, pgd) native_set_pgd_batched(pgdp, pgd)
20502 #define pgd_clear(pgd) native_pgd_clear(pgd)
20503 #endif
20504
20505 @@ -84,12 +85,53 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
20506
20507 #define arch_end_context_switch(prev) do {} while(0)
20508
20509 +#define pax_open_kernel() native_pax_open_kernel()
20510 +#define pax_close_kernel() native_pax_close_kernel()
20511 #endif /* CONFIG_PARAVIRT */
20512
20513 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
20514 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
20515 +
20516 +#ifdef CONFIG_PAX_KERNEXEC
20517 +static inline unsigned long native_pax_open_kernel(void)
20518 +{
20519 + unsigned long cr0;
20520 +
20521 + preempt_disable();
20522 + barrier();
20523 + cr0 = read_cr0() ^ X86_CR0_WP;
20524 + BUG_ON(cr0 & X86_CR0_WP);
20525 + write_cr0(cr0);
20526 + barrier();
20527 + return cr0 ^ X86_CR0_WP;
20528 +}
20529 +
20530 +static inline unsigned long native_pax_close_kernel(void)
20531 +{
20532 + unsigned long cr0;
20533 +
20534 + barrier();
20535 + cr0 = read_cr0() ^ X86_CR0_WP;
20536 + BUG_ON(!(cr0 & X86_CR0_WP));
20537 + write_cr0(cr0);
20538 + barrier();
20539 + preempt_enable_no_resched();
20540 + return cr0 ^ X86_CR0_WP;
20541 +}
20542 +#else
20543 +static inline unsigned long native_pax_open_kernel(void) { return 0; }
20544 +static inline unsigned long native_pax_close_kernel(void) { return 0; }
20545 +#endif
20546 +
20547 /*
20548 * The following only work if pte_present() is true.
20549 * Undefined behaviour if not..
20550 */
20551 +static inline int pte_user(pte_t pte)
20552 +{
20553 + return pte_val(pte) & _PAGE_USER;
20554 +}
20555 +
20556 static inline int pte_dirty(pte_t pte)
20557 {
20558 return pte_flags(pte) & _PAGE_DIRTY;
20559 @@ -150,6 +192,11 @@ static inline unsigned long pud_pfn(pud_t pud)
20560 return (pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT;
20561 }
20562
20563 +static inline unsigned long pgd_pfn(pgd_t pgd)
20564 +{
20565 + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT;
20566 +}
20567 +
20568 #define pte_page(pte) pfn_to_page(pte_pfn(pte))
20569
20570 static inline int pmd_large(pmd_t pte)
20571 @@ -203,9 +250,29 @@ static inline pte_t pte_wrprotect(pte_t pte)
20572 return pte_clear_flags(pte, _PAGE_RW);
20573 }
20574
20575 +static inline pte_t pte_mkread(pte_t pte)
20576 +{
20577 + return __pte(pte_val(pte) | _PAGE_USER);
20578 +}
20579 +
20580 static inline pte_t pte_mkexec(pte_t pte)
20581 {
20582 - return pte_clear_flags(pte, _PAGE_NX);
20583 +#ifdef CONFIG_X86_PAE
20584 + if (__supported_pte_mask & _PAGE_NX)
20585 + return pte_clear_flags(pte, _PAGE_NX);
20586 + else
20587 +#endif
20588 + return pte_set_flags(pte, _PAGE_USER);
20589 +}
20590 +
20591 +static inline pte_t pte_exprotect(pte_t pte)
20592 +{
20593 +#ifdef CONFIG_X86_PAE
20594 + if (__supported_pte_mask & _PAGE_NX)
20595 + return pte_set_flags(pte, _PAGE_NX);
20596 + else
20597 +#endif
20598 + return pte_clear_flags(pte, _PAGE_USER);
20599 }
20600
20601 static inline pte_t pte_mkdirty(pte_t pte)
20602 @@ -426,6 +493,16 @@ pte_t *populate_extra_pte(unsigned long vaddr);
20603 #endif
20604
20605 #ifndef __ASSEMBLY__
20606 +
20607 +#ifdef CONFIG_PAX_PER_CPU_PGD
20608 +extern pgd_t cpu_pgd[NR_CPUS][2][PTRS_PER_PGD];
20609 +enum cpu_pgd_type {kernel = 0, user = 1};
20610 +static inline pgd_t *get_cpu_pgd(unsigned int cpu, enum cpu_pgd_type type)
20611 +{
20612 + return cpu_pgd[cpu][type];
20613 +}
20614 +#endif
20615 +
20616 #include <linux/mm_types.h>
20617 #include <linux/mmdebug.h>
20618 #include <linux/log2.h>
20619 @@ -577,7 +654,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
20620 * Currently stuck as a macro due to indirect forward reference to
20621 * linux/mmzone.h's __section_mem_map_addr() definition:
20622 */
20623 -#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
20624 +#define pud_page(pud) pfn_to_page((pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT)
20625
20626 /* Find an entry in the second-level page table.. */
20627 static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
20628 @@ -617,7 +694,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
20629 * Currently stuck as a macro due to indirect forward reference to
20630 * linux/mmzone.h's __section_mem_map_addr() definition:
20631 */
20632 -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
20633 +#define pgd_page(pgd) pfn_to_page((pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT)
20634
20635 /* to find an entry in a page-table-directory. */
20636 static inline unsigned long pud_index(unsigned long address)
20637 @@ -632,7 +709,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
20638
20639 static inline int pgd_bad(pgd_t pgd)
20640 {
20641 - return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE;
20642 + return (pgd_flags(pgd) & ~(_PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE;
20643 }
20644
20645 static inline int pgd_none(pgd_t pgd)
20646 @@ -655,7 +732,12 @@ static inline int pgd_none(pgd_t pgd)
20647 * pgd_offset() returns a (pgd_t *)
20648 * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
20649 */
20650 -#define pgd_offset(mm, address) ((mm)->pgd + pgd_index((address)))
20651 +#define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address))
20652 +
20653 +#ifdef CONFIG_PAX_PER_CPU_PGD
20654 +#define pgd_offset_cpu(cpu, type, address) (get_cpu_pgd(cpu, type) + pgd_index(address))
20655 +#endif
20656 +
20657 /*
20658 * a shortcut which implies the use of the kernel's pgd, instead
20659 * of a process's
20660 @@ -666,6 +748,25 @@ static inline int pgd_none(pgd_t pgd)
20661 #define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET)
20662 #define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
20663
20664 +#ifdef CONFIG_X86_32
20665 +#define USER_PGD_PTRS KERNEL_PGD_BOUNDARY
20666 +#else
20667 +#define TASK_SIZE_MAX_SHIFT CONFIG_TASK_SIZE_MAX_SHIFT
20668 +#define USER_PGD_PTRS (_AC(1,UL) << (TASK_SIZE_MAX_SHIFT - PGDIR_SHIFT))
20669 +
20670 +#ifdef CONFIG_PAX_MEMORY_UDEREF
20671 +#ifdef __ASSEMBLY__
20672 +#define pax_user_shadow_base pax_user_shadow_base(%rip)
20673 +#else
20674 +extern unsigned long pax_user_shadow_base;
20675 +extern pgdval_t clone_pgd_mask;
20676 +#endif
20677 +#else
20678 +#define pax_user_shadow_base (0UL)
20679 +#endif
20680 +
20681 +#endif
20682 +
20683 #ifndef __ASSEMBLY__
20684
20685 extern int direct_gbpages;
20686 @@ -832,11 +933,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
20687 * dst and src can be on the same page, but the range must not overlap,
20688 * and must not cross a page boundary.
20689 */
20690 -static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
20691 +static inline void clone_pgd_range(pgd_t *dst, const pgd_t *src, int count)
20692 {
20693 - memcpy(dst, src, count * sizeof(pgd_t));
20694 + pax_open_kernel();
20695 + while (count--)
20696 + *dst++ = *src++;
20697 + pax_close_kernel();
20698 }
20699
20700 +#ifdef CONFIG_PAX_PER_CPU_PGD
20701 +extern void __clone_user_pgds(pgd_t *dst, const pgd_t *src);
20702 +#endif
20703 +
20704 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
20705 +extern void __shadow_user_pgds(pgd_t *dst, const pgd_t *src);
20706 +#else
20707 +static inline void __shadow_user_pgds(pgd_t *dst, const pgd_t *src) {}
20708 +#endif
20709 +
20710 #define PTE_SHIFT ilog2(PTRS_PER_PTE)
20711 static inline int page_level_shift(enum pg_level level)
20712 {
20713 diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
20714 index b6c0b40..3535d47 100644
20715 --- a/arch/x86/include/asm/pgtable_32.h
20716 +++ b/arch/x86/include/asm/pgtable_32.h
20717 @@ -25,9 +25,6 @@
20718 struct mm_struct;
20719 struct vm_area_struct;
20720
20721 -extern pgd_t swapper_pg_dir[1024];
20722 -extern pgd_t initial_page_table[1024];
20723 -
20724 static inline void pgtable_cache_init(void) { }
20725 static inline void check_pgt_cache(void) { }
20726 void paging_init(void);
20727 @@ -45,6 +42,12 @@ void paging_init(void);
20728 # include <asm/pgtable-2level.h>
20729 #endif
20730
20731 +extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
20732 +extern pgd_t initial_page_table[PTRS_PER_PGD];
20733 +#ifdef CONFIG_X86_PAE
20734 +extern pmd_t swapper_pm_dir[PTRS_PER_PGD][PTRS_PER_PMD];
20735 +#endif
20736 +
20737 #if defined(CONFIG_HIGHPTE)
20738 #define pte_offset_map(dir, address) \
20739 ((pte_t *)kmap_atomic(pmd_page(*(dir))) + \
20740 @@ -59,12 +62,17 @@ void paging_init(void);
20741 /* Clear a kernel PTE and flush it from the TLB */
20742 #define kpte_clear_flush(ptep, vaddr) \
20743 do { \
20744 + pax_open_kernel(); \
20745 pte_clear(&init_mm, (vaddr), (ptep)); \
20746 + pax_close_kernel(); \
20747 __flush_tlb_one((vaddr)); \
20748 } while (0)
20749
20750 #endif /* !__ASSEMBLY__ */
20751
20752 +#define HAVE_ARCH_UNMAPPED_AREA
20753 +#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
20754 +
20755 /*
20756 * kern_addr_valid() is (1) for FLATMEM and (0) for
20757 * SPARSEMEM and DISCONTIGMEM
20758 diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
20759 index 9fb2f2b..8e18c70 100644
20760 --- a/arch/x86/include/asm/pgtable_32_types.h
20761 +++ b/arch/x86/include/asm/pgtable_32_types.h
20762 @@ -8,7 +8,7 @@
20763 */
20764 #ifdef CONFIG_X86_PAE
20765 # include <asm/pgtable-3level_types.h>
20766 -# define PMD_SIZE (1UL << PMD_SHIFT)
20767 +# define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
20768 # define PMD_MASK (~(PMD_SIZE - 1))
20769 #else
20770 # include <asm/pgtable-2level_types.h>
20771 @@ -46,6 +46,28 @@ extern bool __vmalloc_start_set; /* set once high_memory is set */
20772 # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
20773 #endif
20774
20775 +#ifdef CONFIG_PAX_KERNEXEC
20776 +#ifndef __ASSEMBLY__
20777 +extern unsigned char MODULES_EXEC_VADDR[];
20778 +extern unsigned char MODULES_EXEC_END[];
20779 +
20780 +extern unsigned char __LOAD_PHYSICAL_ADDR[];
20781 +#define LOAD_PHYSICAL_ADDR ((unsigned long)__LOAD_PHYSICAL_ADDR)
20782 +static inline unsigned long __intentional_overflow(-1) ktla_ktva(unsigned long addr)
20783 +{
20784 + return addr + LOAD_PHYSICAL_ADDR + PAGE_OFFSET;
20785 +
20786 +}
20787 +static inline unsigned long __intentional_overflow(-1) ktva_ktla(unsigned long addr)
20788 +{
20789 + return addr - LOAD_PHYSICAL_ADDR - PAGE_OFFSET;
20790 +}
20791 +#endif
20792 +#else
20793 +#define ktla_ktva(addr) (addr)
20794 +#define ktva_ktla(addr) (addr)
20795 +#endif
20796 +
20797 #define MODULES_VADDR VMALLOC_START
20798 #define MODULES_END VMALLOC_END
20799 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
20800 diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
20801 index 2ee7811..afd76c0 100644
20802 --- a/arch/x86/include/asm/pgtable_64.h
20803 +++ b/arch/x86/include/asm/pgtable_64.h
20804 @@ -16,11 +16,17 @@
20805
20806 extern pud_t level3_kernel_pgt[512];
20807 extern pud_t level3_ident_pgt[512];
20808 +extern pud_t level3_vmalloc_start_pgt[512];
20809 +extern pud_t level3_vmalloc_end_pgt[512];
20810 +extern pud_t level3_vmemmap_pgt[512];
20811 +extern pud_t level2_vmemmap_pgt[512];
20812 extern pmd_t level2_kernel_pgt[512];
20813 extern pmd_t level2_fixmap_pgt[512];
20814 -extern pmd_t level2_ident_pgt[512];
20815 -extern pte_t level1_fixmap_pgt[512];
20816 -extern pgd_t init_level4_pgt[];
20817 +extern pmd_t level2_ident_pgt[2][512];
20818 +extern pte_t level1_modules_pgt[4][512];
20819 +extern pte_t level1_fixmap_pgt[3][512];
20820 +extern pte_t level1_vsyscall_pgt[512];
20821 +extern pgd_t init_level4_pgt[512];
20822
20823 #define swapper_pg_dir init_level4_pgt
20824
20825 @@ -62,7 +68,9 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20826
20827 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20828 {
20829 + pax_open_kernel();
20830 *pmdp = pmd;
20831 + pax_close_kernel();
20832 }
20833
20834 static inline void native_pmd_clear(pmd_t *pmd)
20835 @@ -98,7 +106,9 @@ static inline pmd_t native_pmdp_get_and_clear(pmd_t *xp)
20836
20837 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20838 {
20839 + pax_open_kernel();
20840 *pudp = pud;
20841 + pax_close_kernel();
20842 }
20843
20844 static inline void native_pud_clear(pud_t *pud)
20845 @@ -108,6 +118,13 @@ static inline void native_pud_clear(pud_t *pud)
20846
20847 static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd)
20848 {
20849 + pax_open_kernel();
20850 + *pgdp = pgd;
20851 + pax_close_kernel();
20852 +}
20853 +
20854 +static inline void native_set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
20855 +{
20856 *pgdp = pgd;
20857 }
20858
20859 diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
20860 index e6844df..432b56e 100644
20861 --- a/arch/x86/include/asm/pgtable_64_types.h
20862 +++ b/arch/x86/include/asm/pgtable_64_types.h
20863 @@ -60,11 +60,16 @@ typedef struct { pteval_t pte; } pte_t;
20864 #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
20865 #define MODULES_END _AC(0xffffffffff000000, UL)
20866 #define MODULES_LEN (MODULES_END - MODULES_VADDR)
20867 +#define MODULES_EXEC_VADDR MODULES_VADDR
20868 +#define MODULES_EXEC_END MODULES_END
20869 #define ESPFIX_PGD_ENTRY _AC(-2, UL)
20870 #define ESPFIX_BASE_ADDR (ESPFIX_PGD_ENTRY << PGDIR_SHIFT)
20871 #define EFI_VA_START ( -4 * (_AC(1, UL) << 30))
20872 #define EFI_VA_END (-68 * (_AC(1, UL) << 30))
20873
20874 +#define ktla_ktva(addr) (addr)
20875 +#define ktva_ktla(addr) (addr)
20876 +
20877 #define EARLY_DYNAMIC_PAGE_TABLES 64
20878
20879 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
20880 diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
20881 index 13f310b..f0ef42e 100644
20882 --- a/arch/x86/include/asm/pgtable_types.h
20883 +++ b/arch/x86/include/asm/pgtable_types.h
20884 @@ -85,8 +85,10 @@
20885
20886 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
20887 #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
20888 -#else
20889 +#elif defined(CONFIG_KMEMCHECK) || defined(CONFIG_MEM_SOFT_DIRTY)
20890 #define _PAGE_NX (_AT(pteval_t, 0))
20891 +#else
20892 +#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_HIDDEN)
20893 #endif
20894
20895 #define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
20896 @@ -141,6 +143,9 @@ enum page_cache_mode {
20897 #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
20898 _PAGE_ACCESSED)
20899
20900 +#define PAGE_READONLY_NOEXEC PAGE_READONLY
20901 +#define PAGE_SHARED_NOEXEC PAGE_SHARED
20902 +
20903 #define __PAGE_KERNEL_EXEC \
20904 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
20905 #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
20906 @@ -148,7 +153,7 @@ enum page_cache_mode {
20907 #define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
20908 #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
20909 #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_NOCACHE)
20910 -#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
20911 +#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RO | _PAGE_USER)
20912 #define __PAGE_KERNEL_VVAR (__PAGE_KERNEL_RO | _PAGE_USER)
20913 #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
20914 #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
20915 @@ -194,7 +199,7 @@ enum page_cache_mode {
20916 #ifdef CONFIG_X86_64
20917 #define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
20918 #else
20919 -#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
20920 +#define PTE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20921 #define PDE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20922 #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
20923 #endif
20924 @@ -233,7 +238,17 @@ static inline pgdval_t pgd_flags(pgd_t pgd)
20925 {
20926 return native_pgd_val(pgd) & PTE_FLAGS_MASK;
20927 }
20928 +#endif
20929
20930 +#if CONFIG_PGTABLE_LEVELS == 3
20931 +#include <asm-generic/pgtable-nopud.h>
20932 +#endif
20933 +
20934 +#if CONFIG_PGTABLE_LEVELS == 2
20935 +#include <asm-generic/pgtable-nopmd.h>
20936 +#endif
20937 +
20938 +#ifndef __ASSEMBLY__
20939 #if CONFIG_PGTABLE_LEVELS > 3
20940 typedef struct { pudval_t pud; } pud_t;
20941
20942 @@ -247,8 +262,6 @@ static inline pudval_t native_pud_val(pud_t pud)
20943 return pud.pud;
20944 }
20945 #else
20946 -#include <asm-generic/pgtable-nopud.h>
20947 -
20948 static inline pudval_t native_pud_val(pud_t pud)
20949 {
20950 return native_pgd_val(pud.pgd);
20951 @@ -268,8 +281,6 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
20952 return pmd.pmd;
20953 }
20954 #else
20955 -#include <asm-generic/pgtable-nopmd.h>
20956 -
20957 static inline pmdval_t native_pmd_val(pmd_t pmd)
20958 {
20959 return native_pgd_val(pmd.pud.pgd);
20960 @@ -362,7 +373,6 @@ typedef struct page *pgtable_t;
20961
20962 extern pteval_t __supported_pte_mask;
20963 extern void set_nx(void);
20964 -extern int nx_enabled;
20965
20966 #define pgprot_writecombine pgprot_writecombine
20967 extern pgprot_t pgprot_writecombine(pgprot_t prot);
20968 diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
20969 index b12f810..aedcc13 100644
20970 --- a/arch/x86/include/asm/preempt.h
20971 +++ b/arch/x86/include/asm/preempt.h
20972 @@ -84,7 +84,7 @@ static __always_inline void __preempt_count_sub(int val)
20973 */
20974 static __always_inline bool __preempt_count_dec_and_test(void)
20975 {
20976 - GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), "e");
20977 + GEN_UNARY_RMWcc("decl", "incl", __preempt_count, __percpu_arg(0), "e");
20978 }
20979
20980 /*
20981 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
20982 index 944f178..f2269de 100644
20983 --- a/arch/x86/include/asm/processor.h
20984 +++ b/arch/x86/include/asm/processor.h
20985 @@ -136,7 +136,7 @@ struct cpuinfo_x86 {
20986 /* Index into per_cpu list: */
20987 u16 cpu_index;
20988 u32 microcode;
20989 -};
20990 +} __randomize_layout;
20991
20992 #define X86_VENDOR_INTEL 0
20993 #define X86_VENDOR_CYRIX 1
20994 @@ -206,9 +206,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
20995 : "memory");
20996 }
20997
20998 +/* invpcid (%rdx),%rax */
20999 +#define __ASM_INVPCID ".byte 0x66,0x0f,0x38,0x82,0x02"
21000 +
21001 +#define INVPCID_SINGLE_ADDRESS 0UL
21002 +#define INVPCID_SINGLE_CONTEXT 1UL
21003 +#define INVPCID_ALL_GLOBAL 2UL
21004 +#define INVPCID_ALL_NONGLOBAL 3UL
21005 +
21006 +#define PCID_KERNEL 0UL
21007 +#define PCID_USER 1UL
21008 +#define PCID_NOFLUSH (1UL << 63)
21009 +
21010 static inline void load_cr3(pgd_t *pgdir)
21011 {
21012 - write_cr3(__pa(pgdir));
21013 + write_cr3(__pa(pgdir) | PCID_KERNEL);
21014 }
21015
21016 #ifdef CONFIG_X86_32
21017 @@ -305,11 +317,9 @@ struct tss_struct {
21018
21019 } ____cacheline_aligned;
21020
21021 -DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss);
21022 +extern struct tss_struct cpu_tss[NR_CPUS];
21023
21024 -#ifdef CONFIG_X86_32
21025 DECLARE_PER_CPU(unsigned long, cpu_current_top_of_stack);
21026 -#endif
21027
21028 /*
21029 * Save the original ist values for checking stack pointers during debugging
21030 @@ -381,6 +391,7 @@ struct thread_struct {
21031 unsigned short ds;
21032 unsigned short fsindex;
21033 unsigned short gsindex;
21034 + unsigned short ss;
21035 #endif
21036 #ifdef CONFIG_X86_32
21037 unsigned long ip;
21038 @@ -390,6 +401,9 @@ struct thread_struct {
21039 #endif
21040 unsigned long gs;
21041
21042 + /* Floating point and extended processor state */
21043 + struct fpu fpu;
21044 +
21045 /* Save middle states of ptrace breakpoints */
21046 struct perf_event *ptrace_bps[HBP_NUM];
21047 /* Debug status used for traps, single steps, etc... */
21048 @@ -415,13 +429,6 @@ struct thread_struct {
21049 unsigned long iopl;
21050 /* Max allowed port in the bitmap, in bytes: */
21051 unsigned io_bitmap_max;
21052 -
21053 - /* Floating point and extended processor state */
21054 - struct fpu fpu;
21055 - /*
21056 - * WARNING: 'fpu' is dynamically-sized. It *MUST* be at
21057 - * the end.
21058 - */
21059 };
21060
21061 /*
21062 @@ -463,10 +470,10 @@ static inline void native_swapgs(void)
21063 #endif
21064 }
21065
21066 -static inline unsigned long current_top_of_stack(void)
21067 +static inline unsigned long current_top_of_stack(unsigned int cpu)
21068 {
21069 #ifdef CONFIG_X86_64
21070 - return this_cpu_read_stable(cpu_tss.x86_tss.sp0);
21071 + return cpu_tss[cpu].x86_tss.sp0;
21072 #else
21073 /* sp0 on x86_32 is special in and around vm86 mode. */
21074 return this_cpu_read_stable(cpu_current_top_of_stack);
21075 @@ -709,20 +716,30 @@ static inline void spin_lock_prefetch(const void *x)
21076 #define TOP_OF_INIT_STACK ((unsigned long)&init_stack + sizeof(init_stack) - \
21077 TOP_OF_KERNEL_STACK_PADDING)
21078
21079 +extern union fpregs_state init_fpregs_state;
21080 +
21081 #ifdef CONFIG_X86_32
21082 /*
21083 * User space process size: 3GB (default).
21084 */
21085 #define TASK_SIZE PAGE_OFFSET
21086 #define TASK_SIZE_MAX TASK_SIZE
21087 +
21088 +#ifdef CONFIG_PAX_SEGMEXEC
21089 +#define SEGMEXEC_TASK_SIZE (TASK_SIZE / 2)
21090 +#define STACK_TOP ((current->mm->pax_flags & MF_PAX_SEGMEXEC)?SEGMEXEC_TASK_SIZE:TASK_SIZE)
21091 +#else
21092 #define STACK_TOP TASK_SIZE
21093 -#define STACK_TOP_MAX STACK_TOP
21094 +#endif
21095 +
21096 +#define STACK_TOP_MAX TASK_SIZE
21097
21098 #define INIT_THREAD { \
21099 .sp0 = TOP_OF_INIT_STACK, \
21100 .vm86_info = NULL, \
21101 .sysenter_cs = __KERNEL_CS, \
21102 .io_bitmap_ptr = NULL, \
21103 + .fpu.state = &init_fpregs_state, \
21104 }
21105
21106 extern unsigned long thread_saved_pc(struct task_struct *tsk);
21107 @@ -737,12 +754,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
21108 * "struct pt_regs" is possible, but they may contain the
21109 * completely wrong values.
21110 */
21111 -#define task_pt_regs(task) \
21112 -({ \
21113 - unsigned long __ptr = (unsigned long)task_stack_page(task); \
21114 - __ptr += THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING; \
21115 - ((struct pt_regs *)__ptr) - 1; \
21116 -})
21117 +#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1)
21118
21119 #define KSTK_ESP(task) (task_pt_regs(task)->sp)
21120
21121 @@ -756,13 +768,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
21122 * particular problem by preventing anything from being mapped
21123 * at the maximum canonical address.
21124 */
21125 -#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE)
21126 +#define TASK_SIZE_MAX ((1UL << TASK_SIZE_MAX_SHIFT) - PAGE_SIZE)
21127
21128 /* This decides where the kernel will search for a free chunk of vm
21129 * space during mmap's.
21130 */
21131 #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \
21132 - 0xc0000000 : 0xFFFFe000)
21133 + 0xc0000000 : 0xFFFFf000)
21134
21135 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \
21136 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
21137 @@ -773,7 +785,8 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
21138 #define STACK_TOP_MAX TASK_SIZE_MAX
21139
21140 #define INIT_THREAD { \
21141 - .sp0 = TOP_OF_INIT_STACK \
21142 + .sp0 = TOP_OF_INIT_STACK, \
21143 + .fpu.state = &init_fpregs_state, \
21144 }
21145
21146 /*
21147 @@ -796,6 +809,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
21148 */
21149 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
21150
21151 +#ifdef CONFIG_PAX_SEGMEXEC
21152 +#define SEGMEXEC_TASK_UNMAPPED_BASE (PAGE_ALIGN(SEGMEXEC_TASK_SIZE / 3))
21153 +#endif
21154 +
21155 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
21156
21157 /* Get/set a process' ability to use the timestamp counter instruction */
21158 @@ -841,7 +858,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
21159 return 0;
21160 }
21161
21162 -extern unsigned long arch_align_stack(unsigned long sp);
21163 +#define arch_align_stack(x) ((x) & ~0xfUL)
21164 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
21165
21166 void default_idle(void);
21167 @@ -851,6 +868,6 @@ bool xen_set_default_idle(void);
21168 #define xen_set_default_idle 0
21169 #endif
21170
21171 -void stop_this_cpu(void *dummy);
21172 +void stop_this_cpu(void *dummy) __noreturn;
21173 void df_debug(struct pt_regs *regs, long error_code);
21174 #endif /* _ASM_X86_PROCESSOR_H */
21175 diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
21176 index 5fabf13..7388158 100644
21177 --- a/arch/x86/include/asm/ptrace.h
21178 +++ b/arch/x86/include/asm/ptrace.h
21179 @@ -125,15 +125,16 @@ static inline int v8086_mode(struct pt_regs *regs)
21180 #ifdef CONFIG_X86_64
21181 static inline bool user_64bit_mode(struct pt_regs *regs)
21182 {
21183 + unsigned long cs = regs->cs & 0xffff;
21184 #ifndef CONFIG_PARAVIRT
21185 /*
21186 * On non-paravirt systems, this is the only long mode CPL 3
21187 * selector. We do not allow long mode selectors in the LDT.
21188 */
21189 - return regs->cs == __USER_CS;
21190 + return cs == __USER_CS;
21191 #else
21192 /* Headers are too twisted for this to go in paravirt.h. */
21193 - return regs->cs == __USER_CS || regs->cs == pv_info.extra_user_64bit_cs;
21194 + return cs == __USER_CS || cs == pv_info.extra_user_64bit_cs;
21195 #endif
21196 }
21197
21198 @@ -180,9 +181,11 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
21199 * Traps from the kernel do not save sp and ss.
21200 * Use the helper function to retrieve sp.
21201 */
21202 - if (offset == offsetof(struct pt_regs, sp) &&
21203 - regs->cs == __KERNEL_CS)
21204 - return kernel_stack_pointer(regs);
21205 + if (offset == offsetof(struct pt_regs, sp)) {
21206 + unsigned long cs = regs->cs & 0xffff;
21207 + if (cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS)
21208 + return kernel_stack_pointer(regs);
21209 + }
21210 #endif
21211 return *(unsigned long *)((unsigned long)regs + offset);
21212 }
21213 diff --git a/arch/x86/include/asm/qrwlock.h b/arch/x86/include/asm/qrwlock.h
21214 index ae0e241..e80b10b 100644
21215 --- a/arch/x86/include/asm/qrwlock.h
21216 +++ b/arch/x86/include/asm/qrwlock.h
21217 @@ -7,8 +7,8 @@
21218 #define queue_write_unlock queue_write_unlock
21219 static inline void queue_write_unlock(struct qrwlock *lock)
21220 {
21221 - barrier();
21222 - ACCESS_ONCE(*(u8 *)&lock->cnts) = 0;
21223 + barrier();
21224 + ACCESS_ONCE_RW(*(u8 *)&lock->cnts) = 0;
21225 }
21226 #endif
21227
21228 diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
21229 index 9c6b890..5305f53 100644
21230 --- a/arch/x86/include/asm/realmode.h
21231 +++ b/arch/x86/include/asm/realmode.h
21232 @@ -22,16 +22,14 @@ struct real_mode_header {
21233 #endif
21234 /* APM/BIOS reboot */
21235 u32 machine_real_restart_asm;
21236 -#ifdef CONFIG_X86_64
21237 u32 machine_real_restart_seg;
21238 -#endif
21239 };
21240
21241 /* This must match data at trampoline_32/64.S */
21242 struct trampoline_header {
21243 #ifdef CONFIG_X86_32
21244 u32 start;
21245 - u16 gdt_pad;
21246 + u16 boot_cs;
21247 u16 gdt_limit;
21248 u32 gdt_base;
21249 #else
21250 diff --git a/arch/x86/include/asm/reboot.h b/arch/x86/include/asm/reboot.h
21251 index a82c4f1..ac45053 100644
21252 --- a/arch/x86/include/asm/reboot.h
21253 +++ b/arch/x86/include/asm/reboot.h
21254 @@ -6,13 +6,13 @@
21255 struct pt_regs;
21256
21257 struct machine_ops {
21258 - void (*restart)(char *cmd);
21259 - void (*halt)(void);
21260 - void (*power_off)(void);
21261 + void (* __noreturn restart)(char *cmd);
21262 + void (* __noreturn halt)(void);
21263 + void (* __noreturn power_off)(void);
21264 void (*shutdown)(void);
21265 void (*crash_shutdown)(struct pt_regs *);
21266 - void (*emergency_restart)(void);
21267 -};
21268 + void (* __noreturn emergency_restart)(void);
21269 +} __no_const;
21270
21271 extern struct machine_ops machine_ops;
21272
21273 diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h
21274 index 8f7866a..e442f20 100644
21275 --- a/arch/x86/include/asm/rmwcc.h
21276 +++ b/arch/x86/include/asm/rmwcc.h
21277 @@ -3,7 +3,34 @@
21278
21279 #ifdef CC_HAVE_ASM_GOTO
21280
21281 -#define __GEN_RMWcc(fullop, var, cc, ...) \
21282 +#ifdef CONFIG_PAX_REFCOUNT
21283 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21284 +do { \
21285 + asm_volatile_goto (fullop \
21286 + ";jno 0f\n" \
21287 + fullantiop \
21288 + ";int $4\n0:\n" \
21289 + _ASM_EXTABLE(0b, 0b) \
21290 + ";j" cc " %l[cc_label]" \
21291 + : : "m" (var), ## __VA_ARGS__ \
21292 + : "memory" : cc_label); \
21293 + return 0; \
21294 +cc_label: \
21295 + return 1; \
21296 +} while (0)
21297 +#else
21298 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21299 +do { \
21300 + asm_volatile_goto (fullop ";j" cc " %l[cc_label]" \
21301 + : : "m" (var), ## __VA_ARGS__ \
21302 + : "memory" : cc_label); \
21303 + return 0; \
21304 +cc_label: \
21305 + return 1; \
21306 +} while (0)
21307 +#endif
21308 +
21309 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
21310 do { \
21311 asm_volatile_goto (fullop "; j" cc " %l[cc_label]" \
21312 : : "m" (var), ## __VA_ARGS__ \
21313 @@ -13,15 +40,46 @@ cc_label: \
21314 return 1; \
21315 } while (0)
21316
21317 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
21318 - __GEN_RMWcc(op " " arg0, var, cc)
21319 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
21320 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
21321
21322 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21323 - __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val))
21324 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
21325 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
21326 +
21327 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
21328 + __GEN_RMWcc(op " %1, " arg0, antiop " %1, " arg0, var, cc, vcon (val))
21329 +
21330 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
21331 + __GEN_RMWcc_unchecked(op " %1, " arg0, var, cc, vcon (val))
21332
21333 #else /* !CC_HAVE_ASM_GOTO */
21334
21335 -#define __GEN_RMWcc(fullop, var, cc, ...) \
21336 +#ifdef CONFIG_PAX_REFCOUNT
21337 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21338 +do { \
21339 + char c; \
21340 + asm volatile (fullop \
21341 + ";jno 0f\n" \
21342 + fullantiop \
21343 + ";int $4\n0:\n" \
21344 + _ASM_EXTABLE(0b, 0b) \
21345 + "; set" cc " %1" \
21346 + : "+m" (var), "=qm" (c) \
21347 + : __VA_ARGS__ : "memory"); \
21348 + return c != 0; \
21349 +} while (0)
21350 +#else
21351 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21352 +do { \
21353 + char c; \
21354 + asm volatile (fullop "; set" cc " %1" \
21355 + : "+m" (var), "=qm" (c) \
21356 + : __VA_ARGS__ : "memory"); \
21357 + return c != 0; \
21358 +} while (0)
21359 +#endif
21360 +
21361 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
21362 do { \
21363 char c; \
21364 asm volatile (fullop "; set" cc " %1" \
21365 @@ -30,11 +88,17 @@ do { \
21366 return c != 0; \
21367 } while (0)
21368
21369 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
21370 - __GEN_RMWcc(op " " arg0, var, cc)
21371 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
21372 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
21373 +
21374 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
21375 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
21376 +
21377 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
21378 + __GEN_RMWcc(op " %2, " arg0, antiop " %2, " arg0, var, cc, vcon (val))
21379
21380 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21381 - __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val))
21382 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
21383 + __GEN_RMWcc_unchecked(op " %2, " arg0, var, cc, vcon (val))
21384
21385 #endif /* CC_HAVE_ASM_GOTO */
21386
21387 diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
21388 index cad82c9..2e5c5c1 100644
21389 --- a/arch/x86/include/asm/rwsem.h
21390 +++ b/arch/x86/include/asm/rwsem.h
21391 @@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem)
21392 {
21393 asm volatile("# beginning down_read\n\t"
21394 LOCK_PREFIX _ASM_INC "(%1)\n\t"
21395 +
21396 +#ifdef CONFIG_PAX_REFCOUNT
21397 + "jno 0f\n"
21398 + LOCK_PREFIX _ASM_DEC "(%1)\n"
21399 + "int $4\n0:\n"
21400 + _ASM_EXTABLE(0b, 0b)
21401 +#endif
21402 +
21403 /* adds 0x00000001 */
21404 " jns 1f\n"
21405 " call call_rwsem_down_read_failed\n"
21406 @@ -85,6 +93,14 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
21407 "1:\n\t"
21408 " mov %1,%2\n\t"
21409 " add %3,%2\n\t"
21410 +
21411 +#ifdef CONFIG_PAX_REFCOUNT
21412 + "jno 0f\n"
21413 + "sub %3,%2\n"
21414 + "int $4\n0:\n"
21415 + _ASM_EXTABLE(0b, 0b)
21416 +#endif
21417 +
21418 " jle 2f\n\t"
21419 LOCK_PREFIX " cmpxchg %2,%0\n\t"
21420 " jnz 1b\n\t"
21421 @@ -104,6 +120,14 @@ static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
21422 long tmp;
21423 asm volatile("# beginning down_write\n\t"
21424 LOCK_PREFIX " xadd %1,(%2)\n\t"
21425 +
21426 +#ifdef CONFIG_PAX_REFCOUNT
21427 + "jno 0f\n"
21428 + "mov %1,(%2)\n"
21429 + "int $4\n0:\n"
21430 + _ASM_EXTABLE(0b, 0b)
21431 +#endif
21432 +
21433 /* adds 0xffff0001, returns the old value */
21434 " test " __ASM_SEL(%w1,%k1) "," __ASM_SEL(%w1,%k1) "\n\t"
21435 /* was the active mask 0 before? */
21436 @@ -155,6 +179,14 @@ static inline void __up_read(struct rw_semaphore *sem)
21437 long tmp;
21438 asm volatile("# beginning __up_read\n\t"
21439 LOCK_PREFIX " xadd %1,(%2)\n\t"
21440 +
21441 +#ifdef CONFIG_PAX_REFCOUNT
21442 + "jno 0f\n"
21443 + "mov %1,(%2)\n"
21444 + "int $4\n0:\n"
21445 + _ASM_EXTABLE(0b, 0b)
21446 +#endif
21447 +
21448 /* subtracts 1, returns the old value */
21449 " jns 1f\n\t"
21450 " call call_rwsem_wake\n" /* expects old value in %edx */
21451 @@ -173,6 +205,14 @@ static inline void __up_write(struct rw_semaphore *sem)
21452 long tmp;
21453 asm volatile("# beginning __up_write\n\t"
21454 LOCK_PREFIX " xadd %1,(%2)\n\t"
21455 +
21456 +#ifdef CONFIG_PAX_REFCOUNT
21457 + "jno 0f\n"
21458 + "mov %1,(%2)\n"
21459 + "int $4\n0:\n"
21460 + _ASM_EXTABLE(0b, 0b)
21461 +#endif
21462 +
21463 /* subtracts 0xffff0001, returns the old value */
21464 " jns 1f\n\t"
21465 " call call_rwsem_wake\n" /* expects old value in %edx */
21466 @@ -190,6 +230,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
21467 {
21468 asm volatile("# beginning __downgrade_write\n\t"
21469 LOCK_PREFIX _ASM_ADD "%2,(%1)\n\t"
21470 +
21471 +#ifdef CONFIG_PAX_REFCOUNT
21472 + "jno 0f\n"
21473 + LOCK_PREFIX _ASM_SUB "%2,(%1)\n"
21474 + "int $4\n0:\n"
21475 + _ASM_EXTABLE(0b, 0b)
21476 +#endif
21477 +
21478 /*
21479 * transitions 0xZZZZ0001 -> 0xYYYY0001 (i386)
21480 * 0xZZZZZZZZ00000001 -> 0xYYYYYYYY00000001 (x86_64)
21481 @@ -208,7 +256,15 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
21482 */
21483 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
21484 {
21485 - asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0"
21486 + asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0\n"
21487 +
21488 +#ifdef CONFIG_PAX_REFCOUNT
21489 + "jno 0f\n"
21490 + LOCK_PREFIX _ASM_SUB "%1,%0\n"
21491 + "int $4\n0:\n"
21492 + _ASM_EXTABLE(0b, 0b)
21493 +#endif
21494 +
21495 : "+m" (sem->count)
21496 : "er" (delta));
21497 }
21498 @@ -218,7 +274,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
21499 */
21500 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
21501 {
21502 - return delta + xadd(&sem->count, delta);
21503 + return delta + xadd_check_overflow(&sem->count, delta);
21504 }
21505
21506 #endif /* __KERNEL__ */
21507 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
21508 index 7d5a192..23ef1aa 100644
21509 --- a/arch/x86/include/asm/segment.h
21510 +++ b/arch/x86/include/asm/segment.h
21511 @@ -82,14 +82,20 @@
21512 * 26 - ESPFIX small SS
21513 * 27 - per-cpu [ offset to per-cpu data area ]
21514 * 28 - stack_canary-20 [ for stack protector ] <=== cacheline #8
21515 - * 29 - unused
21516 - * 30 - unused
21517 + * 29 - PCI BIOS CS
21518 + * 30 - PCI BIOS DS
21519 * 31 - TSS for double fault handler
21520 */
21521 +#define GDT_ENTRY_KERNEXEC_EFI_CS (1)
21522 +#define GDT_ENTRY_KERNEXEC_EFI_DS (2)
21523 +#define __KERNEXEC_EFI_CS (GDT_ENTRY_KERNEXEC_EFI_CS*8)
21524 +#define __KERNEXEC_EFI_DS (GDT_ENTRY_KERNEXEC_EFI_DS*8)
21525 +
21526 #define GDT_ENTRY_TLS_MIN 6
21527 #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
21528
21529 #define GDT_ENTRY_KERNEL_CS 12
21530 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 4
21531 #define GDT_ENTRY_KERNEL_DS 13
21532 #define GDT_ENTRY_DEFAULT_USER_CS 14
21533 #define GDT_ENTRY_DEFAULT_USER_DS 15
21534 @@ -106,6 +112,12 @@
21535 #define GDT_ENTRY_PERCPU 27
21536 #define GDT_ENTRY_STACK_CANARY 28
21537
21538 +#define GDT_ENTRY_PCIBIOS_CS 29
21539 +#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8)
21540 +
21541 +#define GDT_ENTRY_PCIBIOS_DS 30
21542 +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8)
21543 +
21544 #define GDT_ENTRY_DOUBLEFAULT_TSS 31
21545
21546 /*
21547 @@ -118,6 +130,7 @@
21548 */
21549
21550 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21551 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21552 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21553 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21554 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8 + 3)
21555 @@ -129,7 +142,7 @@
21556 #define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16*8)
21557
21558 /* "Is this PNP code selector (PNP_CS32 or PNP_CS16)?" */
21559 -#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == PNP_CS32)
21560 +#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xFFFCU) == PNP_CS32 || ((x) & 0xFFFCU) == PNP_CS16)
21561
21562 /* data segment for BIOS: */
21563 #define PNP_DS (GDT_ENTRY_PNPBIOS_DS*8)
21564 @@ -176,6 +189,8 @@
21565 #define GDT_ENTRY_DEFAULT_USER_DS 5
21566 #define GDT_ENTRY_DEFAULT_USER_CS 6
21567
21568 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 7
21569 +
21570 /* Needs two entries */
21571 #define GDT_ENTRY_TSS 8
21572 /* Needs two entries */
21573 @@ -187,10 +202,12 @@
21574 /* Abused to load per CPU data from limit */
21575 #define GDT_ENTRY_PER_CPU 15
21576
21577 +#define GDT_ENTRY_UDEREF_KERNEL_DS 16
21578 +
21579 /*
21580 * Number of entries in the GDT table:
21581 */
21582 -#define GDT_ENTRIES 16
21583 +#define GDT_ENTRIES 17
21584
21585 /*
21586 * Segment selector values corresponding to the above entries:
21587 @@ -200,7 +217,9 @@
21588 */
21589 #define __KERNEL32_CS (GDT_ENTRY_KERNEL32_CS*8)
21590 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21591 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21592 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21593 +#define __UDEREF_KERNEL_DS (GDT_ENTRY_UDEREF_KERNEL_DS*8)
21594 #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3)
21595 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21596 #define __USER32_DS __USER_DS
21597 diff --git a/arch/x86/include/asm/smap.h b/arch/x86/include/asm/smap.h
21598 index ba665eb..0f72938 100644
21599 --- a/arch/x86/include/asm/smap.h
21600 +++ b/arch/x86/include/asm/smap.h
21601 @@ -25,6 +25,18 @@
21602
21603 #include <asm/alternative-asm.h>
21604
21605 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21606 +#define ASM_PAX_OPEN_USERLAND \
21607 + ALTERNATIVE "", "call __pax_open_userland", X86_FEATURE_STRONGUDEREF
21608 +
21609 +#define ASM_PAX_CLOSE_USERLAND \
21610 + ALTERNATIVE "", "call __pax_close_userland", X86_FEATURE_STRONGUDEREF
21611 +
21612 +#else
21613 +#define ASM_PAX_OPEN_USERLAND
21614 +#define ASM_PAX_CLOSE_USERLAND
21615 +#endif
21616 +
21617 #ifdef CONFIG_X86_SMAP
21618
21619 #define ASM_CLAC \
21620 @@ -44,6 +56,37 @@
21621
21622 #include <asm/alternative.h>
21623
21624 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
21625 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
21626 +
21627 +extern void __pax_open_userland(void);
21628 +static __always_inline unsigned long pax_open_userland(void)
21629 +{
21630 +
21631 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21632 + asm volatile(ALTERNATIVE("", "call %P[open]", X86_FEATURE_STRONGUDEREF)
21633 + :
21634 + : [open] "i" (__pax_open_userland)
21635 + : "memory", "rax");
21636 +#endif
21637 +
21638 + return 0;
21639 +}
21640 +
21641 +extern void __pax_close_userland(void);
21642 +static __always_inline unsigned long pax_close_userland(void)
21643 +{
21644 +
21645 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21646 + asm volatile(ALTERNATIVE("", "call %P[close]", X86_FEATURE_STRONGUDEREF)
21647 + :
21648 + : [close] "i" (__pax_close_userland)
21649 + : "memory", "rax");
21650 +#endif
21651 +
21652 + return 0;
21653 +}
21654 +
21655 #ifdef CONFIG_X86_SMAP
21656
21657 static __always_inline void clac(void)
21658 diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
21659 index 222a6a3..839da8d 100644
21660 --- a/arch/x86/include/asm/smp.h
21661 +++ b/arch/x86/include/asm/smp.h
21662 @@ -35,7 +35,7 @@ DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_map);
21663 /* cpus sharing the last level cache: */
21664 DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_llc_shared_map);
21665 DECLARE_PER_CPU_READ_MOSTLY(u16, cpu_llc_id);
21666 -DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
21667 +DECLARE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
21668
21669 static inline struct cpumask *cpu_llc_shared_mask(int cpu)
21670 {
21671 @@ -68,7 +68,7 @@ struct smp_ops {
21672
21673 void (*send_call_func_ipi)(const struct cpumask *mask);
21674 void (*send_call_func_single_ipi)(int cpu);
21675 -};
21676 +} __no_const;
21677
21678 /* Globals due to paravirt */
21679 extern void set_cpu_sibling_map(int cpu);
21680 @@ -182,14 +182,8 @@ extern unsigned disabled_cpus;
21681 extern int safe_smp_processor_id(void);
21682
21683 #elif defined(CONFIG_X86_64_SMP)
21684 -#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21685 -
21686 -#define stack_smp_processor_id() \
21687 -({ \
21688 - struct thread_info *ti; \
21689 - __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \
21690 - ti->cpu; \
21691 -})
21692 +#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21693 +#define stack_smp_processor_id() raw_smp_processor_id()
21694 #define safe_smp_processor_id() smp_processor_id()
21695
21696 #endif
21697 diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
21698 index c2e00bb..a10266e 100644
21699 --- a/arch/x86/include/asm/stackprotector.h
21700 +++ b/arch/x86/include/asm/stackprotector.h
21701 @@ -49,7 +49,7 @@
21702 * head_32 for boot CPU and setup_per_cpu_areas() for others.
21703 */
21704 #define GDT_STACK_CANARY_INIT \
21705 - [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x18),
21706 + [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x17),
21707
21708 /*
21709 * Initialize the stackprotector canary value.
21710 @@ -114,7 +114,7 @@ static inline void setup_stack_canary_segment(int cpu)
21711
21712 static inline void load_stack_canary_segment(void)
21713 {
21714 -#ifdef CONFIG_X86_32
21715 +#if defined(CONFIG_X86_32) && !defined(CONFIG_PAX_MEMORY_UDEREF)
21716 asm volatile ("mov %0, %%gs" : : "r" (0));
21717 #endif
21718 }
21719 diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h
21720 index 70bbe39..4ae2bd4 100644
21721 --- a/arch/x86/include/asm/stacktrace.h
21722 +++ b/arch/x86/include/asm/stacktrace.h
21723 @@ -11,28 +11,20 @@
21724
21725 extern int kstack_depth_to_print;
21726
21727 -struct thread_info;
21728 +struct task_struct;
21729 struct stacktrace_ops;
21730
21731 -typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
21732 - unsigned long *stack,
21733 - unsigned long bp,
21734 - const struct stacktrace_ops *ops,
21735 - void *data,
21736 - unsigned long *end,
21737 - int *graph);
21738 +typedef unsigned long walk_stack_t(struct task_struct *task,
21739 + void *stack_start,
21740 + unsigned long *stack,
21741 + unsigned long bp,
21742 + const struct stacktrace_ops *ops,
21743 + void *data,
21744 + unsigned long *end,
21745 + int *graph);
21746
21747 -extern unsigned long
21748 -print_context_stack(struct thread_info *tinfo,
21749 - unsigned long *stack, unsigned long bp,
21750 - const struct stacktrace_ops *ops, void *data,
21751 - unsigned long *end, int *graph);
21752 -
21753 -extern unsigned long
21754 -print_context_stack_bp(struct thread_info *tinfo,
21755 - unsigned long *stack, unsigned long bp,
21756 - const struct stacktrace_ops *ops, void *data,
21757 - unsigned long *end, int *graph);
21758 +extern walk_stack_t print_context_stack;
21759 +extern walk_stack_t print_context_stack_bp;
21760
21761 /* Generic stack tracer with callbacks */
21762
21763 @@ -40,7 +32,7 @@ struct stacktrace_ops {
21764 void (*address)(void *data, unsigned long address, int reliable);
21765 /* On negative return stop dumping */
21766 int (*stack)(void *data, char *name);
21767 - walk_stack_t walk_stack;
21768 + walk_stack_t *walk_stack;
21769 };
21770
21771 void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
21772 diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
21773 index d7f3b3b..3cc39f1 100644
21774 --- a/arch/x86/include/asm/switch_to.h
21775 +++ b/arch/x86/include/asm/switch_to.h
21776 @@ -108,7 +108,7 @@ do { \
21777 "call __switch_to\n\t" \
21778 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
21779 __switch_canary \
21780 - "movq %P[thread_info](%%rsi),%%r8\n\t" \
21781 + "movq "__percpu_arg([thread_info])",%%r8\n\t" \
21782 "movq %%rax,%%rdi\n\t" \
21783 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
21784 "jnz ret_from_fork\n\t" \
21785 @@ -119,7 +119,7 @@ do { \
21786 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
21787 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
21788 [_tif_fork] "i" (_TIF_FORK), \
21789 - [thread_info] "i" (offsetof(struct task_struct, stack)), \
21790 + [thread_info] "m" (current_tinfo), \
21791 [current_task] "m" (current_task) \
21792 __switch_canary_iparam \
21793 : "memory", "cc" __EXTRA_CLOBBER)
21794 diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
21795 index 82c34ee..940fa40 100644
21796 --- a/arch/x86/include/asm/sys_ia32.h
21797 +++ b/arch/x86/include/asm/sys_ia32.h
21798 @@ -20,8 +20,8 @@
21799 #include <asm/ia32.h>
21800
21801 /* ia32/sys_ia32.c */
21802 -asmlinkage long sys32_truncate64(const char __user *, unsigned long, unsigned long);
21803 -asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long);
21804 +asmlinkage long sys32_truncate64(const char __user *, unsigned int, unsigned int);
21805 +asmlinkage long sys32_ftruncate64(unsigned int, unsigned int, unsigned int);
21806
21807 asmlinkage long sys32_stat64(const char __user *, struct stat64 __user *);
21808 asmlinkage long sys32_lstat64(const char __user *, struct stat64 __user *);
21809 @@ -42,7 +42,7 @@ long sys32_vm86_warning(void);
21810 asmlinkage ssize_t sys32_readahead(int, unsigned, unsigned, size_t);
21811 asmlinkage long sys32_sync_file_range(int, unsigned, unsigned,
21812 unsigned, unsigned, int);
21813 -asmlinkage long sys32_fadvise64(int, unsigned, unsigned, size_t, int);
21814 +asmlinkage long sys32_fadvise64(int, unsigned, unsigned, int, int);
21815 asmlinkage long sys32_fallocate(int, int, unsigned,
21816 unsigned, unsigned, unsigned);
21817
21818 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
21819 index 225ee54..fae4566 100644
21820 --- a/arch/x86/include/asm/thread_info.h
21821 +++ b/arch/x86/include/asm/thread_info.h
21822 @@ -36,7 +36,7 @@
21823 #ifdef CONFIG_X86_32
21824 # define TOP_OF_KERNEL_STACK_PADDING 8
21825 #else
21826 -# define TOP_OF_KERNEL_STACK_PADDING 0
21827 +# define TOP_OF_KERNEL_STACK_PADDING 16
21828 #endif
21829
21830 /*
21831 @@ -50,27 +50,26 @@ struct task_struct;
21832 #include <linux/atomic.h>
21833
21834 struct thread_info {
21835 - struct task_struct *task; /* main task structure */
21836 __u32 flags; /* low level flags */
21837 __u32 status; /* thread synchronous flags */
21838 __u32 cpu; /* current CPU */
21839 int saved_preempt_count;
21840 mm_segment_t addr_limit;
21841 void __user *sysenter_return;
21842 + unsigned long lowest_stack;
21843 unsigned int sig_on_uaccess_error:1;
21844 unsigned int uaccess_err:1; /* uaccess failed */
21845 };
21846
21847 -#define INIT_THREAD_INFO(tsk) \
21848 +#define INIT_THREAD_INFO \
21849 { \
21850 - .task = &tsk, \
21851 .flags = 0, \
21852 .cpu = 0, \
21853 .saved_preempt_count = INIT_PREEMPT_COUNT, \
21854 .addr_limit = KERNEL_DS, \
21855 }
21856
21857 -#define init_thread_info (init_thread_union.thread_info)
21858 +#define init_thread_info (init_thread_union.stack)
21859 #define init_stack (init_thread_union.stack)
21860
21861 #else /* !__ASSEMBLY__ */
21862 @@ -110,6 +109,7 @@ struct thread_info {
21863 #define TIF_SYSCALL_TRACEPOINT 28 /* syscall tracepoint instrumentation */
21864 #define TIF_ADDR32 29 /* 32-bit address space on 64 bits */
21865 #define TIF_X32 30 /* 32-bit native x86-64 binary */
21866 +#define TIF_GRSEC_SETXID 31 /* update credentials on syscall entry/exit */
21867
21868 #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
21869 #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
21870 @@ -133,17 +133,18 @@ struct thread_info {
21871 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
21872 #define _TIF_ADDR32 (1 << TIF_ADDR32)
21873 #define _TIF_X32 (1 << TIF_X32)
21874 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
21875
21876 /* work to do in syscall_trace_enter() */
21877 #define _TIF_WORK_SYSCALL_ENTRY \
21878 (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \
21879 _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT | \
21880 - _TIF_NOHZ)
21881 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21882
21883 /* work to do in syscall_trace_leave() */
21884 #define _TIF_WORK_SYSCALL_EXIT \
21885 (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP | \
21886 - _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ)
21887 + _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
21888
21889 /* work to do on interrupt/exception return */
21890 #define _TIF_WORK_MASK \
21891 @@ -154,7 +155,7 @@ struct thread_info {
21892 /* work to do on any return to user space */
21893 #define _TIF_ALLWORK_MASK \
21894 ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
21895 - _TIF_NOHZ)
21896 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21897
21898 /* Only used for 64 bit */
21899 #define _TIF_DO_NOTIFY_MASK \
21900 @@ -177,9 +178,11 @@ struct thread_info {
21901 */
21902 #ifndef __ASSEMBLY__
21903
21904 +DECLARE_PER_CPU(struct thread_info *, current_tinfo);
21905 +
21906 static inline struct thread_info *current_thread_info(void)
21907 {
21908 - return (struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
21909 + return this_cpu_read_stable(current_tinfo);
21910 }
21911
21912 static inline unsigned long current_stack_pointer(void)
21913 @@ -195,14 +198,9 @@ static inline unsigned long current_stack_pointer(void)
21914
21915 #else /* !__ASSEMBLY__ */
21916
21917 -#ifdef CONFIG_X86_64
21918 -# define cpu_current_top_of_stack (cpu_tss + TSS_sp0)
21919 -#endif
21920 -
21921 /* Load thread_info address into "reg" */
21922 #define GET_THREAD_INFO(reg) \
21923 - _ASM_MOV PER_CPU_VAR(cpu_current_top_of_stack),reg ; \
21924 - _ASM_SUB $(THREAD_SIZE),reg ;
21925 + _ASM_MOV PER_CPU_VAR(current_tinfo),reg ;
21926
21927 /*
21928 * ASM operand which evaluates to a 'thread_info' address of
21929 @@ -295,5 +293,12 @@ static inline bool is_ia32_task(void)
21930 extern void arch_task_cache_init(void);
21931 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
21932 extern void arch_release_task_struct(struct task_struct *tsk);
21933 +
21934 +#define __HAVE_THREAD_FUNCTIONS
21935 +#define task_thread_info(task) (&(task)->tinfo)
21936 +#define task_stack_page(task) ((task)->stack)
21937 +#define setup_thread_stack(p, org) do {} while (0)
21938 +#define end_of_stack(p) ((unsigned long *)task_stack_page(p) + 1)
21939 +
21940 #endif
21941 #endif /* _ASM_X86_THREAD_INFO_H */
21942 diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
21943 index cd79194..6a9956f 100644
21944 --- a/arch/x86/include/asm/tlbflush.h
21945 +++ b/arch/x86/include/asm/tlbflush.h
21946 @@ -86,18 +86,44 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask)
21947
21948 static inline void __native_flush_tlb(void)
21949 {
21950 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21951 + u64 descriptor[2];
21952 +
21953 + descriptor[0] = PCID_KERNEL;
21954 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_NONGLOBAL) : "memory");
21955 + return;
21956 + }
21957 +
21958 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21959 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21960 + unsigned int cpu = raw_get_cpu();
21961 +
21962 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
21963 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
21964 + raw_put_cpu_no_resched();
21965 + return;
21966 + }
21967 +#endif
21968 +
21969 native_write_cr3(native_read_cr3());
21970 }
21971
21972 static inline void __native_flush_tlb_global_irq_disabled(void)
21973 {
21974 - unsigned long cr4;
21975 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21976 + u64 descriptor[2];
21977
21978 - cr4 = this_cpu_read(cpu_tlbstate.cr4);
21979 - /* clear PGE */
21980 - native_write_cr4(cr4 & ~X86_CR4_PGE);
21981 - /* write old PGE again and flush TLBs */
21982 - native_write_cr4(cr4);
21983 + descriptor[0] = PCID_KERNEL;
21984 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_GLOBAL) : "memory");
21985 + } else {
21986 + unsigned long cr4;
21987 +
21988 + cr4 = this_cpu_read(cpu_tlbstate.cr4);
21989 + /* clear PGE */
21990 + native_write_cr4(cr4 & ~X86_CR4_PGE);
21991 + /* write old PGE again and flush TLBs */
21992 + native_write_cr4(cr4);
21993 + }
21994 }
21995
21996 static inline void __native_flush_tlb_global(void)
21997 @@ -118,6 +144,43 @@ static inline void __native_flush_tlb_global(void)
21998
21999 static inline void __native_flush_tlb_single(unsigned long addr)
22000 {
22001 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
22002 + u64 descriptor[2];
22003 +
22004 + descriptor[0] = PCID_KERNEL;
22005 + descriptor[1] = addr;
22006 +
22007 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22008 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
22009 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) || addr >= TASK_SIZE_MAX) {
22010 + if (addr < TASK_SIZE_MAX)
22011 + descriptor[1] += pax_user_shadow_base;
22012 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
22013 + }
22014 +
22015 + descriptor[0] = PCID_USER;
22016 + descriptor[1] = addr;
22017 + }
22018 +#endif
22019 +
22020 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
22021 + return;
22022 + }
22023 +
22024 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22025 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
22026 + unsigned int cpu = raw_get_cpu();
22027 +
22028 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
22029 + asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
22030 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
22031 + raw_put_cpu_no_resched();
22032 +
22033 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) && addr < TASK_SIZE_MAX)
22034 + addr += pax_user_shadow_base;
22035 + }
22036 +#endif
22037 +
22038 asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
22039 }
22040
22041 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
22042 index a8df874..3dcbd7c 100644
22043 --- a/arch/x86/include/asm/uaccess.h
22044 +++ b/arch/x86/include/asm/uaccess.h
22045 @@ -7,6 +7,7 @@
22046 #include <linux/compiler.h>
22047 #include <linux/thread_info.h>
22048 #include <linux/string.h>
22049 +#include <linux/spinlock.h>
22050 #include <asm/asm.h>
22051 #include <asm/page.h>
22052 #include <asm/smap.h>
22053 @@ -29,7 +30,12 @@
22054
22055 #define get_ds() (KERNEL_DS)
22056 #define get_fs() (current_thread_info()->addr_limit)
22057 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
22058 +void __set_fs(mm_segment_t x);
22059 +void set_fs(mm_segment_t x);
22060 +#else
22061 #define set_fs(x) (current_thread_info()->addr_limit = (x))
22062 +#endif
22063
22064 #define segment_eq(a, b) ((a).seg == (b).seg)
22065
22066 @@ -86,8 +92,36 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
22067 * checks that the pointer is in the user space range - after calling
22068 * this function, memory access functions may still return -EFAULT.
22069 */
22070 -#define access_ok(type, addr, size) \
22071 - likely(!__range_not_ok(addr, size, user_addr_max()))
22072 +extern int _cond_resched(void);
22073 +#define access_ok_noprefault(type, addr, size) (likely(!__range_not_ok(addr, size, user_addr_max())))
22074 +#define access_ok(type, addr, size) \
22075 +({ \
22076 + unsigned long __size = size; \
22077 + unsigned long __addr = (unsigned long)addr; \
22078 + bool __ret_ao = __range_not_ok(__addr, __size, user_addr_max()) == 0;\
22079 + if (__ret_ao && __size) { \
22080 + unsigned long __addr_ao = __addr & PAGE_MASK; \
22081 + unsigned long __end_ao = __addr + __size - 1; \
22082 + if (unlikely((__end_ao ^ __addr_ao) & PAGE_MASK)) { \
22083 + while (__addr_ao <= __end_ao) { \
22084 + char __c_ao; \
22085 + __addr_ao += PAGE_SIZE; \
22086 + if (__size > PAGE_SIZE) \
22087 + _cond_resched(); \
22088 + if (__get_user(__c_ao, (char __user *)__addr)) \
22089 + break; \
22090 + if ((type) != VERIFY_WRITE) { \
22091 + __addr = __addr_ao; \
22092 + continue; \
22093 + } \
22094 + if (__put_user(__c_ao, (char __user *)__addr)) \
22095 + break; \
22096 + __addr = __addr_ao; \
22097 + } \
22098 + } \
22099 + } \
22100 + __ret_ao; \
22101 +})
22102
22103 /*
22104 * The exception table consists of pairs of addresses relative to the
22105 @@ -135,11 +169,13 @@ extern int __get_user_8(void);
22106 extern int __get_user_bad(void);
22107
22108 /*
22109 - * This is a type: either unsigned long, if the argument fits into
22110 - * that type, or otherwise unsigned long long.
22111 + * This is a type: either (un)signed int, if the argument fits into
22112 + * that type, or otherwise (un)signed long long.
22113 */
22114 #define __inttype(x) \
22115 -__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22116 +__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0U), \
22117 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0ULL, 0LL),\
22118 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0U, 0)))
22119
22120 /**
22121 * get_user: - Get a simple variable from user space.
22122 @@ -178,10 +214,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22123 register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
22124 __chk_user_ptr(ptr); \
22125 might_fault(); \
22126 + pax_open_userland(); \
22127 asm volatile("call __get_user_%P3" \
22128 : "=a" (__ret_gu), "=r" (__val_gu) \
22129 : "0" (ptr), "i" (sizeof(*(ptr)))); \
22130 (x) = (__force __typeof__(*(ptr))) __val_gu; \
22131 + pax_close_userland(); \
22132 __ret_gu; \
22133 })
22134
22135 @@ -189,13 +227,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22136 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
22137 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
22138
22139 -
22140 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
22141 +#define __copyuser_seg "gs;"
22142 +#define __COPYUSER_SET_ES "pushl %%gs; popl %%es\n"
22143 +#define __COPYUSER_RESTORE_ES "pushl %%ss; popl %%es\n"
22144 +#else
22145 +#define __copyuser_seg
22146 +#define __COPYUSER_SET_ES
22147 +#define __COPYUSER_RESTORE_ES
22148 +#endif
22149
22150 #ifdef CONFIG_X86_32
22151 #define __put_user_asm_u64(x, addr, err, errret) \
22152 asm volatile(ASM_STAC "\n" \
22153 - "1: movl %%eax,0(%2)\n" \
22154 - "2: movl %%edx,4(%2)\n" \
22155 + "1: "__copyuser_seg"movl %%eax,0(%2)\n" \
22156 + "2: "__copyuser_seg"movl %%edx,4(%2)\n" \
22157 "3: " ASM_CLAC "\n" \
22158 ".section .fixup,\"ax\"\n" \
22159 "4: movl %3,%0\n" \
22160 @@ -208,8 +254,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22161
22162 #define __put_user_asm_ex_u64(x, addr) \
22163 asm volatile(ASM_STAC "\n" \
22164 - "1: movl %%eax,0(%1)\n" \
22165 - "2: movl %%edx,4(%1)\n" \
22166 + "1: "__copyuser_seg"movl %%eax,0(%1)\n" \
22167 + "2: "__copyuser_seg"movl %%edx,4(%1)\n" \
22168 "3: " ASM_CLAC "\n" \
22169 _ASM_EXTABLE_EX(1b, 2b) \
22170 _ASM_EXTABLE_EX(2b, 3b) \
22171 @@ -260,7 +306,8 @@ extern void __put_user_8(void);
22172 __typeof__(*(ptr)) __pu_val; \
22173 __chk_user_ptr(ptr); \
22174 might_fault(); \
22175 - __pu_val = x; \
22176 + __pu_val = (x); \
22177 + pax_open_userland(); \
22178 switch (sizeof(*(ptr))) { \
22179 case 1: \
22180 __put_user_x(1, __pu_val, ptr, __ret_pu); \
22181 @@ -278,6 +325,7 @@ extern void __put_user_8(void);
22182 __put_user_x(X, __pu_val, ptr, __ret_pu); \
22183 break; \
22184 } \
22185 + pax_close_userland(); \
22186 __ret_pu; \
22187 })
22188
22189 @@ -358,8 +406,10 @@ do { \
22190 } while (0)
22191
22192 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
22193 +do { \
22194 + pax_open_userland(); \
22195 asm volatile(ASM_STAC "\n" \
22196 - "1: mov"itype" %2,%"rtype"1\n" \
22197 + "1: "__copyuser_seg"mov"itype" %2,%"rtype"1\n"\
22198 "2: " ASM_CLAC "\n" \
22199 ".section .fixup,\"ax\"\n" \
22200 "3: mov %3,%0\n" \
22201 @@ -367,8 +417,10 @@ do { \
22202 " jmp 2b\n" \
22203 ".previous\n" \
22204 _ASM_EXTABLE(1b, 3b) \
22205 - : "=r" (err), ltype(x) \
22206 - : "m" (__m(addr)), "i" (errret), "0" (err))
22207 + : "=r" (err), ltype (x) \
22208 + : "m" (__m(addr)), "i" (errret), "0" (err)); \
22209 + pax_close_userland(); \
22210 +} while (0)
22211
22212 #define __get_user_size_ex(x, ptr, size) \
22213 do { \
22214 @@ -392,7 +444,7 @@ do { \
22215 } while (0)
22216
22217 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
22218 - asm volatile("1: mov"itype" %1,%"rtype"0\n" \
22219 + asm volatile("1: "__copyuser_seg"mov"itype" %1,%"rtype"0\n"\
22220 "2:\n" \
22221 _ASM_EXTABLE_EX(1b, 2b) \
22222 : ltype(x) : "m" (__m(addr)))
22223 @@ -407,15 +459,26 @@ do { \
22224 #define __get_user_nocheck(x, ptr, size) \
22225 ({ \
22226 int __gu_err; \
22227 - unsigned long __gu_val; \
22228 + __inttype(*(ptr)) __gu_val; \
22229 __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \
22230 - (x) = (__force __typeof__(*(ptr)))__gu_val; \
22231 + (x) = (__typeof__(*(ptr)))__gu_val; \
22232 __gu_err; \
22233 })
22234
22235 /* FIXME: this hack is definitely wrong -AK */
22236 struct __large_struct { unsigned long buf[100]; };
22237 -#define __m(x) (*(struct __large_struct __user *)(x))
22238 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22239 +#define ____m(x) \
22240 +({ \
22241 + unsigned long ____x = (unsigned long)(x); \
22242 + if (____x < pax_user_shadow_base) \
22243 + ____x += pax_user_shadow_base; \
22244 + (typeof(x))____x; \
22245 +})
22246 +#else
22247 +#define ____m(x) (x)
22248 +#endif
22249 +#define __m(x) (*(struct __large_struct __user *)____m(x))
22250
22251 /*
22252 * Tell gcc we read from memory instead of writing: this is because
22253 @@ -423,8 +486,10 @@ struct __large_struct { unsigned long buf[100]; };
22254 * aliasing issues.
22255 */
22256 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
22257 +do { \
22258 + pax_open_userland(); \
22259 asm volatile(ASM_STAC "\n" \
22260 - "1: mov"itype" %"rtype"1,%2\n" \
22261 + "1: "__copyuser_seg"mov"itype" %"rtype"1,%2\n"\
22262 "2: " ASM_CLAC "\n" \
22263 ".section .fixup,\"ax\"\n" \
22264 "3: mov %3,%0\n" \
22265 @@ -432,10 +497,12 @@ struct __large_struct { unsigned long buf[100]; };
22266 ".previous\n" \
22267 _ASM_EXTABLE(1b, 3b) \
22268 : "=r"(err) \
22269 - : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
22270 + : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err));\
22271 + pax_close_userland(); \
22272 +} while (0)
22273
22274 #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
22275 - asm volatile("1: mov"itype" %"rtype"0,%1\n" \
22276 + asm volatile("1: "__copyuser_seg"mov"itype" %"rtype"0,%1\n"\
22277 "2:\n" \
22278 _ASM_EXTABLE_EX(1b, 2b) \
22279 : : ltype(x), "m" (__m(addr)))
22280 @@ -445,11 +512,13 @@ struct __large_struct { unsigned long buf[100]; };
22281 */
22282 #define uaccess_try do { \
22283 current_thread_info()->uaccess_err = 0; \
22284 + pax_open_userland(); \
22285 stac(); \
22286 barrier();
22287
22288 #define uaccess_catch(err) \
22289 clac(); \
22290 + pax_close_userland(); \
22291 (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \
22292 } while (0)
22293
22294 @@ -475,8 +544,12 @@ struct __large_struct { unsigned long buf[100]; };
22295 * On error, the variable @x is set to zero.
22296 */
22297
22298 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22299 +#define __get_user(x, ptr) get_user((x), (ptr))
22300 +#else
22301 #define __get_user(x, ptr) \
22302 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
22303 +#endif
22304
22305 /**
22306 * __put_user: - Write a simple value into user space, with less checking.
22307 @@ -499,8 +572,12 @@ struct __large_struct { unsigned long buf[100]; };
22308 * Returns zero on success, or -EFAULT on error.
22309 */
22310
22311 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22312 +#define __put_user(x, ptr) put_user((x), (ptr))
22313 +#else
22314 #define __put_user(x, ptr) \
22315 __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
22316 +#endif
22317
22318 #define __get_user_unaligned __get_user
22319 #define __put_user_unaligned __put_user
22320 @@ -518,7 +595,7 @@ struct __large_struct { unsigned long buf[100]; };
22321 #define get_user_ex(x, ptr) do { \
22322 unsigned long __gue_val; \
22323 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
22324 - (x) = (__force __typeof__(*(ptr)))__gue_val; \
22325 + (x) = (__typeof__(*(ptr)))__gue_val; \
22326 } while (0)
22327
22328 #define put_user_try uaccess_try
22329 @@ -536,7 +613,7 @@ extern __must_check long strlen_user(const char __user *str);
22330 extern __must_check long strnlen_user(const char __user *str, long n);
22331
22332 unsigned long __must_check clear_user(void __user *mem, unsigned long len);
22333 -unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
22334 +unsigned long __must_check __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
22335
22336 extern void __cmpxchg_wrong_size(void)
22337 __compiletime_error("Bad argument size for cmpxchg");
22338 @@ -547,18 +624,19 @@ extern void __cmpxchg_wrong_size(void)
22339 __typeof__(ptr) __uval = (uval); \
22340 __typeof__(*(ptr)) __old = (old); \
22341 __typeof__(*(ptr)) __new = (new); \
22342 + pax_open_userland(); \
22343 switch (size) { \
22344 case 1: \
22345 { \
22346 asm volatile("\t" ASM_STAC "\n" \
22347 - "1:\t" LOCK_PREFIX "cmpxchgb %4, %2\n" \
22348 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgb %4, %2\n"\
22349 "2:\t" ASM_CLAC "\n" \
22350 "\t.section .fixup, \"ax\"\n" \
22351 "3:\tmov %3, %0\n" \
22352 "\tjmp 2b\n" \
22353 "\t.previous\n" \
22354 _ASM_EXTABLE(1b, 3b) \
22355 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22356 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22357 : "i" (-EFAULT), "q" (__new), "1" (__old) \
22358 : "memory" \
22359 ); \
22360 @@ -567,14 +645,14 @@ extern void __cmpxchg_wrong_size(void)
22361 case 2: \
22362 { \
22363 asm volatile("\t" ASM_STAC "\n" \
22364 - "1:\t" LOCK_PREFIX "cmpxchgw %4, %2\n" \
22365 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgw %4, %2\n"\
22366 "2:\t" ASM_CLAC "\n" \
22367 "\t.section .fixup, \"ax\"\n" \
22368 "3:\tmov %3, %0\n" \
22369 "\tjmp 2b\n" \
22370 "\t.previous\n" \
22371 _ASM_EXTABLE(1b, 3b) \
22372 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22373 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22374 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22375 : "memory" \
22376 ); \
22377 @@ -583,14 +661,14 @@ extern void __cmpxchg_wrong_size(void)
22378 case 4: \
22379 { \
22380 asm volatile("\t" ASM_STAC "\n" \
22381 - "1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n" \
22382 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %4, %2\n"\
22383 "2:\t" ASM_CLAC "\n" \
22384 "\t.section .fixup, \"ax\"\n" \
22385 "3:\tmov %3, %0\n" \
22386 "\tjmp 2b\n" \
22387 "\t.previous\n" \
22388 _ASM_EXTABLE(1b, 3b) \
22389 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22390 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22391 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22392 : "memory" \
22393 ); \
22394 @@ -602,14 +680,14 @@ extern void __cmpxchg_wrong_size(void)
22395 __cmpxchg_wrong_size(); \
22396 \
22397 asm volatile("\t" ASM_STAC "\n" \
22398 - "1:\t" LOCK_PREFIX "cmpxchgq %4, %2\n" \
22399 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgq %4, %2\n"\
22400 "2:\t" ASM_CLAC "\n" \
22401 "\t.section .fixup, \"ax\"\n" \
22402 "3:\tmov %3, %0\n" \
22403 "\tjmp 2b\n" \
22404 "\t.previous\n" \
22405 _ASM_EXTABLE(1b, 3b) \
22406 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22407 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22408 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22409 : "memory" \
22410 ); \
22411 @@ -618,6 +696,7 @@ extern void __cmpxchg_wrong_size(void)
22412 default: \
22413 __cmpxchg_wrong_size(); \
22414 } \
22415 + pax_close_userland(); \
22416 *__uval = __old; \
22417 __ret; \
22418 })
22419 @@ -641,17 +720,6 @@ extern struct movsl_mask {
22420
22421 #define ARCH_HAS_NOCACHE_UACCESS 1
22422
22423 -#ifdef CONFIG_X86_32
22424 -# include <asm/uaccess_32.h>
22425 -#else
22426 -# include <asm/uaccess_64.h>
22427 -#endif
22428 -
22429 -unsigned long __must_check _copy_from_user(void *to, const void __user *from,
22430 - unsigned n);
22431 -unsigned long __must_check _copy_to_user(void __user *to, const void *from,
22432 - unsigned n);
22433 -
22434 #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
22435 # define copy_user_diag __compiletime_error
22436 #else
22437 @@ -661,7 +729,7 @@ unsigned long __must_check _copy_to_user(void __user *to, const void *from,
22438 extern void copy_user_diag("copy_from_user() buffer size is too small")
22439 copy_from_user_overflow(void);
22440 extern void copy_user_diag("copy_to_user() buffer size is too small")
22441 -copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
22442 +copy_to_user_overflow(void);
22443
22444 #undef copy_user_diag
22445
22446 @@ -674,7 +742,7 @@ __copy_from_user_overflow(void) __asm__("copy_from_user_overflow");
22447
22448 extern void
22449 __compiletime_warning("copy_to_user() buffer size is not provably correct")
22450 -__copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
22451 +__copy_to_user_overflow(void) __asm__("copy_to_user_overflow");
22452 #define __copy_to_user_overflow(size, count) __copy_to_user_overflow()
22453
22454 #else
22455 @@ -689,10 +757,16 @@ __copy_from_user_overflow(int size, unsigned long count)
22456
22457 #endif
22458
22459 +#ifdef CONFIG_X86_32
22460 +# include <asm/uaccess_32.h>
22461 +#else
22462 +# include <asm/uaccess_64.h>
22463 +#endif
22464 +
22465 static inline unsigned long __must_check
22466 copy_from_user(void *to, const void __user *from, unsigned long n)
22467 {
22468 - int sz = __compiletime_object_size(to);
22469 + size_t sz = __compiletime_object_size(to);
22470
22471 might_fault();
22472
22473 @@ -714,12 +788,15 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
22474 * case, and do only runtime checking for non-constant sizes.
22475 */
22476
22477 - if (likely(sz < 0 || sz >= n))
22478 - n = _copy_from_user(to, from, n);
22479 - else if(__builtin_constant_p(n))
22480 - copy_from_user_overflow();
22481 - else
22482 - __copy_from_user_overflow(sz, n);
22483 + if (likely(sz != (size_t)-1 && sz < n)) {
22484 + if(__builtin_constant_p(n))
22485 + copy_from_user_overflow();
22486 + else
22487 + __copy_from_user_overflow(sz, n);
22488 + } else if (access_ok(VERIFY_READ, from, n))
22489 + n = __copy_from_user(to, from, n);
22490 + else if ((long)n > 0)
22491 + memset(to, 0, n);
22492
22493 return n;
22494 }
22495 @@ -727,17 +804,18 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
22496 static inline unsigned long __must_check
22497 copy_to_user(void __user *to, const void *from, unsigned long n)
22498 {
22499 - int sz = __compiletime_object_size(from);
22500 + size_t sz = __compiletime_object_size(from);
22501
22502 might_fault();
22503
22504 /* See the comment in copy_from_user() above. */
22505 - if (likely(sz < 0 || sz >= n))
22506 - n = _copy_to_user(to, from, n);
22507 - else if(__builtin_constant_p(n))
22508 - copy_to_user_overflow();
22509 - else
22510 - __copy_to_user_overflow(sz, n);
22511 + if (likely(sz != (size_t)-1 && sz < n)) {
22512 + if(__builtin_constant_p(n))
22513 + copy_to_user_overflow();
22514 + else
22515 + __copy_to_user_overflow(sz, n);
22516 + } else if (access_ok(VERIFY_WRITE, to, n))
22517 + n = __copy_to_user(to, from, n);
22518
22519 return n;
22520 }
22521 diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
22522 index f5dcb52..da2c15b 100644
22523 --- a/arch/x86/include/asm/uaccess_32.h
22524 +++ b/arch/x86/include/asm/uaccess_32.h
22525 @@ -40,9 +40,14 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
22526 * anything, so this is accurate.
22527 */
22528
22529 -static __always_inline unsigned long __must_check
22530 +static __always_inline __size_overflow(3) unsigned long __must_check
22531 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
22532 {
22533 + if ((long)n < 0)
22534 + return n;
22535 +
22536 + check_object_size(from, n, true);
22537 +
22538 if (__builtin_constant_p(n)) {
22539 unsigned long ret;
22540
22541 @@ -87,12 +92,16 @@ static __always_inline unsigned long __must_check
22542 __copy_to_user(void __user *to, const void *from, unsigned long n)
22543 {
22544 might_fault();
22545 +
22546 return __copy_to_user_inatomic(to, from, n);
22547 }
22548
22549 -static __always_inline unsigned long
22550 +static __always_inline __size_overflow(3) unsigned long
22551 __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n)
22552 {
22553 + if ((long)n < 0)
22554 + return n;
22555 +
22556 /* Avoid zeroing the tail if the copy fails..
22557 * If 'n' is constant and 1, 2, or 4, we do still zero on a failure,
22558 * but as the zeroing behaviour is only significant when n is not
22559 @@ -143,6 +152,12 @@ static __always_inline unsigned long
22560 __copy_from_user(void *to, const void __user *from, unsigned long n)
22561 {
22562 might_fault();
22563 +
22564 + if ((long)n < 0)
22565 + return n;
22566 +
22567 + check_object_size(to, n, false);
22568 +
22569 if (__builtin_constant_p(n)) {
22570 unsigned long ret;
22571
22572 @@ -165,6 +180,10 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to,
22573 const void __user *from, unsigned long n)
22574 {
22575 might_fault();
22576 +
22577 + if ((long)n < 0)
22578 + return n;
22579 +
22580 if (__builtin_constant_p(n)) {
22581 unsigned long ret;
22582
22583 @@ -187,7 +206,10 @@ static __always_inline unsigned long
22584 __copy_from_user_inatomic_nocache(void *to, const void __user *from,
22585 unsigned long n)
22586 {
22587 - return __copy_from_user_ll_nocache_nozero(to, from, n);
22588 + if ((long)n < 0)
22589 + return n;
22590 +
22591 + return __copy_from_user_ll_nocache_nozero(to, from, n);
22592 }
22593
22594 #endif /* _ASM_X86_UACCESS_32_H */
22595 diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
22596 index f2f9b39..2ae1bf8 100644
22597 --- a/arch/x86/include/asm/uaccess_64.h
22598 +++ b/arch/x86/include/asm/uaccess_64.h
22599 @@ -10,6 +10,9 @@
22600 #include <asm/alternative.h>
22601 #include <asm/cpufeature.h>
22602 #include <asm/page.h>
22603 +#include <asm/pgtable.h>
22604 +
22605 +#define set_fs(x) (current_thread_info()->addr_limit = (x))
22606
22607 /*
22608 * Copy To/From Userspace
22609 @@ -23,8 +26,8 @@ copy_user_generic_string(void *to, const void *from, unsigned len);
22610 __must_check unsigned long
22611 copy_user_generic_unrolled(void *to, const void *from, unsigned len);
22612
22613 -static __always_inline __must_check unsigned long
22614 -copy_user_generic(void *to, const void *from, unsigned len)
22615 +static __always_inline __must_check __size_overflow(3) unsigned long
22616 +copy_user_generic(void *to, const void *from, unsigned long len)
22617 {
22618 unsigned ret;
22619
22620 @@ -46,121 +49,170 @@ copy_user_generic(void *to, const void *from, unsigned len)
22621 }
22622
22623 __must_check unsigned long
22624 -copy_in_user(void __user *to, const void __user *from, unsigned len);
22625 +copy_in_user(void __user *to, const void __user *from, unsigned long len);
22626
22627 static __always_inline __must_check
22628 -int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size)
22629 +unsigned long __copy_from_user_nocheck(void *dst, const void __user *src, unsigned long size)
22630 {
22631 - int ret = 0;
22632 + size_t sz = __compiletime_object_size(dst);
22633 + unsigned ret = 0;
22634 +
22635 + if (size > INT_MAX)
22636 + return size;
22637 +
22638 + check_object_size(dst, size, false);
22639 +
22640 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22641 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22642 + return size;
22643 +#endif
22644 +
22645 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22646 + if(__builtin_constant_p(size))
22647 + copy_from_user_overflow();
22648 + else
22649 + __copy_from_user_overflow(sz, size);
22650 + return size;
22651 + }
22652
22653 if (!__builtin_constant_p(size))
22654 - return copy_user_generic(dst, (__force void *)src, size);
22655 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22656 switch (size) {
22657 - case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src,
22658 + case 1:__get_user_asm(*(u8 *)dst, (const u8 __user *)src,
22659 ret, "b", "b", "=q", 1);
22660 return ret;
22661 - case 2:__get_user_asm(*(u16 *)dst, (u16 __user *)src,
22662 + case 2:__get_user_asm(*(u16 *)dst, (const u16 __user *)src,
22663 ret, "w", "w", "=r", 2);
22664 return ret;
22665 - case 4:__get_user_asm(*(u32 *)dst, (u32 __user *)src,
22666 + case 4:__get_user_asm(*(u32 *)dst, (const u32 __user *)src,
22667 ret, "l", "k", "=r", 4);
22668 return ret;
22669 - case 8:__get_user_asm(*(u64 *)dst, (u64 __user *)src,
22670 + case 8:__get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22671 ret, "q", "", "=r", 8);
22672 return ret;
22673 case 10:
22674 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22675 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22676 ret, "q", "", "=r", 10);
22677 if (unlikely(ret))
22678 return ret;
22679 __get_user_asm(*(u16 *)(8 + (char *)dst),
22680 - (u16 __user *)(8 + (char __user *)src),
22681 + (const u16 __user *)(8 + (const char __user *)src),
22682 ret, "w", "w", "=r", 2);
22683 return ret;
22684 case 16:
22685 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22686 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22687 ret, "q", "", "=r", 16);
22688 if (unlikely(ret))
22689 return ret;
22690 __get_user_asm(*(u64 *)(8 + (char *)dst),
22691 - (u64 __user *)(8 + (char __user *)src),
22692 + (const u64 __user *)(8 + (const char __user *)src),
22693 ret, "q", "", "=r", 8);
22694 return ret;
22695 default:
22696 - return copy_user_generic(dst, (__force void *)src, size);
22697 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22698 }
22699 }
22700
22701 static __always_inline __must_check
22702 -int __copy_from_user(void *dst, const void __user *src, unsigned size)
22703 +unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
22704 {
22705 might_fault();
22706 return __copy_from_user_nocheck(dst, src, size);
22707 }
22708
22709 static __always_inline __must_check
22710 -int __copy_to_user_nocheck(void __user *dst, const void *src, unsigned size)
22711 +unsigned long __copy_to_user_nocheck(void __user *dst, const void *src, unsigned long size)
22712 {
22713 - int ret = 0;
22714 + size_t sz = __compiletime_object_size(src);
22715 + unsigned ret = 0;
22716 +
22717 + if (size > INT_MAX)
22718 + return size;
22719 +
22720 + check_object_size(src, size, true);
22721 +
22722 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22723 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22724 + return size;
22725 +#endif
22726 +
22727 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22728 + if(__builtin_constant_p(size))
22729 + copy_to_user_overflow();
22730 + else
22731 + __copy_to_user_overflow(sz, size);
22732 + return size;
22733 + }
22734
22735 if (!__builtin_constant_p(size))
22736 - return copy_user_generic((__force void *)dst, src, size);
22737 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22738 switch (size) {
22739 - case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst,
22740 + case 1:__put_user_asm(*(const u8 *)src, (u8 __user *)dst,
22741 ret, "b", "b", "iq", 1);
22742 return ret;
22743 - case 2:__put_user_asm(*(u16 *)src, (u16 __user *)dst,
22744 + case 2:__put_user_asm(*(const u16 *)src, (u16 __user *)dst,
22745 ret, "w", "w", "ir", 2);
22746 return ret;
22747 - case 4:__put_user_asm(*(u32 *)src, (u32 __user *)dst,
22748 + case 4:__put_user_asm(*(const u32 *)src, (u32 __user *)dst,
22749 ret, "l", "k", "ir", 4);
22750 return ret;
22751 - case 8:__put_user_asm(*(u64 *)src, (u64 __user *)dst,
22752 + case 8:__put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22753 ret, "q", "", "er", 8);
22754 return ret;
22755 case 10:
22756 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22757 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22758 ret, "q", "", "er", 10);
22759 if (unlikely(ret))
22760 return ret;
22761 asm("":::"memory");
22762 - __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst,
22763 + __put_user_asm(4[(const u16 *)src], 4 + (u16 __user *)dst,
22764 ret, "w", "w", "ir", 2);
22765 return ret;
22766 case 16:
22767 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22768 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22769 ret, "q", "", "er", 16);
22770 if (unlikely(ret))
22771 return ret;
22772 asm("":::"memory");
22773 - __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst,
22774 + __put_user_asm(1[(const u64 *)src], 1 + (u64 __user *)dst,
22775 ret, "q", "", "er", 8);
22776 return ret;
22777 default:
22778 - return copy_user_generic((__force void *)dst, src, size);
22779 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22780 }
22781 }
22782
22783 static __always_inline __must_check
22784 -int __copy_to_user(void __user *dst, const void *src, unsigned size)
22785 +unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
22786 {
22787 might_fault();
22788 return __copy_to_user_nocheck(dst, src, size);
22789 }
22790
22791 static __always_inline __must_check
22792 -int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22793 +unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22794 {
22795 - int ret = 0;
22796 + unsigned ret = 0;
22797
22798 might_fault();
22799 +
22800 + if (size > INT_MAX)
22801 + return size;
22802 +
22803 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22804 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22805 + return size;
22806 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22807 + return size;
22808 +#endif
22809 +
22810 if (!__builtin_constant_p(size))
22811 - return copy_user_generic((__force void *)dst,
22812 - (__force void *)src, size);
22813 + return copy_user_generic((__force_kernel void *)____m(dst),
22814 + (__force_kernel const void *)____m(src), size);
22815 switch (size) {
22816 case 1: {
22817 u8 tmp;
22818 - __get_user_asm(tmp, (u8 __user *)src,
22819 + __get_user_asm(tmp, (const u8 __user *)src,
22820 ret, "b", "b", "=q", 1);
22821 if (likely(!ret))
22822 __put_user_asm(tmp, (u8 __user *)dst,
22823 @@ -169,7 +221,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22824 }
22825 case 2: {
22826 u16 tmp;
22827 - __get_user_asm(tmp, (u16 __user *)src,
22828 + __get_user_asm(tmp, (const u16 __user *)src,
22829 ret, "w", "w", "=r", 2);
22830 if (likely(!ret))
22831 __put_user_asm(tmp, (u16 __user *)dst,
22832 @@ -179,7 +231,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22833
22834 case 4: {
22835 u32 tmp;
22836 - __get_user_asm(tmp, (u32 __user *)src,
22837 + __get_user_asm(tmp, (const u32 __user *)src,
22838 ret, "l", "k", "=r", 4);
22839 if (likely(!ret))
22840 __put_user_asm(tmp, (u32 __user *)dst,
22841 @@ -188,7 +240,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22842 }
22843 case 8: {
22844 u64 tmp;
22845 - __get_user_asm(tmp, (u64 __user *)src,
22846 + __get_user_asm(tmp, (const u64 __user *)src,
22847 ret, "q", "", "=r", 8);
22848 if (likely(!ret))
22849 __put_user_asm(tmp, (u64 __user *)dst,
22850 @@ -196,41 +248,58 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22851 return ret;
22852 }
22853 default:
22854 - return copy_user_generic((__force void *)dst,
22855 - (__force void *)src, size);
22856 + return copy_user_generic((__force_kernel void *)____m(dst),
22857 + (__force_kernel const void *)____m(src), size);
22858 }
22859 }
22860
22861 -static __must_check __always_inline int
22862 -__copy_from_user_inatomic(void *dst, const void __user *src, unsigned size)
22863 +static __must_check __always_inline unsigned long
22864 +__copy_from_user_inatomic(void *dst, const void __user *src, unsigned long size)
22865 {
22866 return __copy_from_user_nocheck(dst, src, size);
22867 }
22868
22869 -static __must_check __always_inline int
22870 -__copy_to_user_inatomic(void __user *dst, const void *src, unsigned size)
22871 +static __must_check __always_inline unsigned long
22872 +__copy_to_user_inatomic(void __user *dst, const void *src, unsigned long size)
22873 {
22874 return __copy_to_user_nocheck(dst, src, size);
22875 }
22876
22877 -extern long __copy_user_nocache(void *dst, const void __user *src,
22878 - unsigned size, int zerorest);
22879 +extern unsigned long __copy_user_nocache(void *dst, const void __user *src,
22880 + unsigned long size, int zerorest);
22881
22882 -static inline int
22883 -__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
22884 +static inline unsigned long
22885 +__copy_from_user_nocache(void *dst, const void __user *src, unsigned long size)
22886 {
22887 might_fault();
22888 +
22889 + if (size > INT_MAX)
22890 + return size;
22891 +
22892 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22893 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22894 + return size;
22895 +#endif
22896 +
22897 return __copy_user_nocache(dst, src, size, 1);
22898 }
22899
22900 -static inline int
22901 +static inline unsigned long
22902 __copy_from_user_inatomic_nocache(void *dst, const void __user *src,
22903 - unsigned size)
22904 + unsigned long size)
22905 {
22906 + if (size > INT_MAX)
22907 + return size;
22908 +
22909 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22910 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22911 + return size;
22912 +#endif
22913 +
22914 return __copy_user_nocache(dst, src, size, 0);
22915 }
22916
22917 unsigned long
22918 -copy_user_handle_tail(char *to, char *from, unsigned len);
22919 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len) __size_overflow(3);
22920
22921 #endif /* _ASM_X86_UACCESS_64_H */
22922 diff --git a/arch/x86/include/asm/word-at-a-time.h b/arch/x86/include/asm/word-at-a-time.h
22923 index 5b238981..77fdd78 100644
22924 --- a/arch/x86/include/asm/word-at-a-time.h
22925 +++ b/arch/x86/include/asm/word-at-a-time.h
22926 @@ -11,7 +11,7 @@
22927 * and shift, for example.
22928 */
22929 struct word_at_a_time {
22930 - const unsigned long one_bits, high_bits;
22931 + unsigned long one_bits, high_bits;
22932 };
22933
22934 #define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x01), REPEAT_BYTE(0x80) }
22935 diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
22936 index 48d34d2..90671c7 100644
22937 --- a/arch/x86/include/asm/x86_init.h
22938 +++ b/arch/x86/include/asm/x86_init.h
22939 @@ -129,7 +129,7 @@ struct x86_init_ops {
22940 struct x86_init_timers timers;
22941 struct x86_init_iommu iommu;
22942 struct x86_init_pci pci;
22943 -};
22944 +} __no_const;
22945
22946 /**
22947 * struct x86_cpuinit_ops - platform specific cpu hotplug setups
22948 @@ -140,7 +140,7 @@ struct x86_cpuinit_ops {
22949 void (*setup_percpu_clockev)(void);
22950 void (*early_percpu_clock_init)(void);
22951 void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
22952 -};
22953 +} __no_const;
22954
22955 struct timespec;
22956
22957 @@ -168,7 +168,7 @@ struct x86_platform_ops {
22958 void (*save_sched_clock_state)(void);
22959 void (*restore_sched_clock_state)(void);
22960 void (*apic_post_init)(void);
22961 -};
22962 +} __no_const;
22963
22964 struct pci_dev;
22965
22966 @@ -177,12 +177,12 @@ struct x86_msi_ops {
22967 void (*teardown_msi_irq)(unsigned int irq);
22968 void (*teardown_msi_irqs)(struct pci_dev *dev);
22969 void (*restore_msi_irqs)(struct pci_dev *dev);
22970 -};
22971 +} __no_const;
22972
22973 struct x86_io_apic_ops {
22974 unsigned int (*read) (unsigned int apic, unsigned int reg);
22975 void (*disable)(void);
22976 -};
22977 +} __no_const;
22978
22979 extern struct x86_init_ops x86_init;
22980 extern struct x86_cpuinit_ops x86_cpuinit;
22981 diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
22982 index c44a5d5..7f83cfc 100644
22983 --- a/arch/x86/include/asm/xen/page.h
22984 +++ b/arch/x86/include/asm/xen/page.h
22985 @@ -82,7 +82,7 @@ static inline int xen_safe_read_ulong(unsigned long *addr, unsigned long *val)
22986 * - get_phys_to_machine() is to be called by __pfn_to_mfn() only in special
22987 * cases needing an extended handling.
22988 */
22989 -static inline unsigned long __pfn_to_mfn(unsigned long pfn)
22990 +static inline unsigned long __intentional_overflow(-1) __pfn_to_mfn(unsigned long pfn)
22991 {
22992 unsigned long mfn;
22993
22994 diff --git a/arch/x86/include/uapi/asm/e820.h b/arch/x86/include/uapi/asm/e820.h
22995 index 0f457e6..5970c0a 100644
22996 --- a/arch/x86/include/uapi/asm/e820.h
22997 +++ b/arch/x86/include/uapi/asm/e820.h
22998 @@ -69,7 +69,7 @@ struct e820map {
22999 #define ISA_START_ADDRESS 0xa0000
23000 #define ISA_END_ADDRESS 0x100000
23001
23002 -#define BIOS_BEGIN 0x000a0000
23003 +#define BIOS_BEGIN 0x000c0000
23004 #define BIOS_END 0x00100000
23005
23006 #define BIOS_ROM_BASE 0xffe00000
23007 diff --git a/arch/x86/include/uapi/asm/svm.h b/arch/x86/include/uapi/asm/svm.h
23008 index b5d7640..8a4add8 100644
23009 --- a/arch/x86/include/uapi/asm/svm.h
23010 +++ b/arch/x86/include/uapi/asm/svm.h
23011 @@ -100,6 +100,7 @@
23012 { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, \
23013 { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, \
23014 { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, \
23015 + { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, \
23016 { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, \
23017 { SVM_EXIT_INTR, "interrupt" }, \
23018 { SVM_EXIT_NMI, "nmi" }, \
23019 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
23020 index 0f15af4..501a76a 100644
23021 --- a/arch/x86/kernel/Makefile
23022 +++ b/arch/x86/kernel/Makefile
23023 @@ -28,7 +28,7 @@ obj-y += time.o ioport.o ldt.o dumpstack.o nmi.o
23024 obj-y += setup.o x86_init.o i8259.o irqinit.o jump_label.o
23025 obj-$(CONFIG_IRQ_WORK) += irq_work.o
23026 obj-y += probe_roms.o
23027 -obj-$(CONFIG_X86_32) += i386_ksyms_32.o
23028 +obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
23029 obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
23030 obj-$(CONFIG_X86_64) += mcount_64.o
23031 obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o
23032 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
23033 index 9393896..adbaa90 100644
23034 --- a/arch/x86/kernel/acpi/boot.c
23035 +++ b/arch/x86/kernel/acpi/boot.c
23036 @@ -1333,7 +1333,7 @@ static void __init acpi_reduced_hw_init(void)
23037 * If your system is blacklisted here, but you find that acpi=force
23038 * works for you, please contact linux-acpi@vger.kernel.org
23039 */
23040 -static struct dmi_system_id __initdata acpi_dmi_table[] = {
23041 +static const struct dmi_system_id __initconst acpi_dmi_table[] = {
23042 /*
23043 * Boxes that need ACPI disabled
23044 */
23045 @@ -1408,7 +1408,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
23046 };
23047
23048 /* second table for DMI checks that should run after early-quirks */
23049 -static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
23050 +static const struct dmi_system_id __initconst acpi_dmi_table_late[] = {
23051 /*
23052 * HP laptops which use a DSDT reporting as HP/SB400/10000,
23053 * which includes some code which overrides all temperature
23054 diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
23055 index d1daead..acd77e2 100644
23056 --- a/arch/x86/kernel/acpi/sleep.c
23057 +++ b/arch/x86/kernel/acpi/sleep.c
23058 @@ -99,8 +99,12 @@ int x86_acpi_suspend_lowlevel(void)
23059 #else /* CONFIG_64BIT */
23060 #ifdef CONFIG_SMP
23061 stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
23062 +
23063 + pax_open_kernel();
23064 early_gdt_descr.address =
23065 (unsigned long)get_cpu_gdt_table(smp_processor_id());
23066 + pax_close_kernel();
23067 +
23068 initial_gs = per_cpu_offset(smp_processor_id());
23069 #endif
23070 initial_code = (unsigned long)wakeup_long64;
23071 diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
23072 index 0c26b1b..a766e85 100644
23073 --- a/arch/x86/kernel/acpi/wakeup_32.S
23074 +++ b/arch/x86/kernel/acpi/wakeup_32.S
23075 @@ -31,13 +31,11 @@ wakeup_pmode_return:
23076 # and restore the stack ... but you need gdt for this to work
23077 movl saved_context_esp, %esp
23078
23079 - movl %cs:saved_magic, %eax
23080 - cmpl $0x12345678, %eax
23081 + cmpl $0x12345678, saved_magic
23082 jne bogus_magic
23083
23084 # jump to place where we left off
23085 - movl saved_eip, %eax
23086 - jmp *%eax
23087 + jmp *(saved_eip)
23088
23089 bogus_magic:
23090 jmp bogus_magic
23091 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
23092 index 25f9093..21d2827 100644
23093 --- a/arch/x86/kernel/alternative.c
23094 +++ b/arch/x86/kernel/alternative.c
23095 @@ -20,6 +20,7 @@
23096 #include <asm/tlbflush.h>
23097 #include <asm/io.h>
23098 #include <asm/fixmap.h>
23099 +#include <asm/boot.h>
23100
23101 int __read_mostly alternatives_patched;
23102
23103 @@ -261,7 +262,9 @@ static void __init_or_module add_nops(void *insns, unsigned int len)
23104 unsigned int noplen = len;
23105 if (noplen > ASM_NOP_MAX)
23106 noplen = ASM_NOP_MAX;
23107 + pax_open_kernel();
23108 memcpy(insns, ideal_nops[noplen], noplen);
23109 + pax_close_kernel();
23110 insns += noplen;
23111 len -= noplen;
23112 }
23113 @@ -289,6 +292,13 @@ recompute_jump(struct alt_instr *a, u8 *orig_insn, u8 *repl_insn, u8 *insnbuf)
23114 if (a->replacementlen != 5)
23115 return;
23116
23117 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23118 + if (orig_insn < (u8 *)_text || (u8 *)_einittext <= orig_insn)
23119 + orig_insn = (u8 *)ktva_ktla((unsigned long)orig_insn);
23120 + else
23121 + orig_insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23122 +#endif
23123 +
23124 o_dspl = *(s32 *)(insnbuf + 1);
23125
23126 /* next_rip of the replacement JMP */
23127 @@ -364,6 +374,7 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
23128 {
23129 struct alt_instr *a;
23130 u8 *instr, *replacement;
23131 + u8 *vinstr, *vreplacement;
23132 u8 insnbuf[MAX_PATCH_LEN];
23133
23134 DPRINTK("alt table %p -> %p", start, end);
23135 @@ -379,46 +390,71 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
23136 for (a = start; a < end; a++) {
23137 int insnbuf_sz = 0;
23138
23139 - instr = (u8 *)&a->instr_offset + a->instr_offset;
23140 - replacement = (u8 *)&a->repl_offset + a->repl_offset;
23141 + vinstr = instr = (u8 *)&a->instr_offset + a->instr_offset;
23142 +
23143 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23144 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= instr &&
23145 + instr < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
23146 + instr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23147 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
23148 + } else if ((u8 *)_text <= instr && instr < (u8 *)_einittext) {
23149 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
23150 + } else {
23151 + instr = (u8 *)ktva_ktla((unsigned long)instr);
23152 + }
23153 +#endif
23154 +
23155 + vreplacement = replacement = (u8 *)&a->repl_offset + a->repl_offset;
23156 +
23157 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23158 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= replacement &&
23159 + replacement < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
23160 + replacement += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23161 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
23162 + } else if ((u8 *)_text <= replacement && replacement < (u8 *)_einittext) {
23163 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
23164 + } else
23165 + replacement = (u8 *)ktva_ktla((unsigned long)replacement);
23166 +#endif
23167 +
23168 BUG_ON(a->instrlen > sizeof(insnbuf));
23169 BUG_ON(a->cpuid >= (NCAPINTS + NBUGINTS) * 32);
23170 if (!boot_cpu_has(a->cpuid)) {
23171 if (a->padlen > 1)
23172 - optimize_nops(a, instr);
23173 + optimize_nops(a, vinstr);
23174
23175 continue;
23176 }
23177
23178 - DPRINTK("feat: %d*32+%d, old: (%p, len: %d), repl: (%p, len: %d), pad: %d",
23179 + DPRINTK("feat: %d*32+%d, old: (%p/%p, len: %d), repl: (%p, len: %d), pad: %d",
23180 a->cpuid >> 5,
23181 a->cpuid & 0x1f,
23182 - instr, a->instrlen,
23183 - replacement, a->replacementlen, a->padlen);
23184 + instr, vinstr, a->instrlen,
23185 + vreplacement, a->replacementlen, a->padlen);
23186
23187 - DUMP_BYTES(instr, a->instrlen, "%p: old_insn: ", instr);
23188 - DUMP_BYTES(replacement, a->replacementlen, "%p: rpl_insn: ", replacement);
23189 + DUMP_BYTES(vinstr, a->instrlen, "%p: old_insn: ", vinstr);
23190 + DUMP_BYTES(vreplacement, a->replacementlen, "%p: rpl_insn: ", vreplacement);
23191
23192 - memcpy(insnbuf, replacement, a->replacementlen);
23193 + memcpy(insnbuf, vreplacement, a->replacementlen);
23194 insnbuf_sz = a->replacementlen;
23195
23196 /* 0xe8 is a relative jump; fix the offset. */
23197 if (*insnbuf == 0xe8 && a->replacementlen == 5) {
23198 - *(s32 *)(insnbuf + 1) += replacement - instr;
23199 + *(s32 *)(insnbuf + 1) += vreplacement - vinstr;
23200 DPRINTK("Fix CALL offset: 0x%x, CALL 0x%lx",
23201 *(s32 *)(insnbuf + 1),
23202 - (unsigned long)instr + *(s32 *)(insnbuf + 1) + 5);
23203 + (unsigned long)vinstr + *(s32 *)(insnbuf + 1) + 5);
23204 }
23205
23206 - if (a->replacementlen && is_jmp(replacement[0]))
23207 - recompute_jump(a, instr, replacement, insnbuf);
23208 + if (a->replacementlen && is_jmp(vreplacement[0]))
23209 + recompute_jump(a, instr, vreplacement, insnbuf);
23210
23211 if (a->instrlen > a->replacementlen) {
23212 add_nops(insnbuf + a->replacementlen,
23213 a->instrlen - a->replacementlen);
23214 insnbuf_sz += a->instrlen - a->replacementlen;
23215 }
23216 - DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", instr);
23217 + DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", vinstr);
23218
23219 text_poke_early(instr, insnbuf, insnbuf_sz);
23220 }
23221 @@ -434,10 +470,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
23222 for (poff = start; poff < end; poff++) {
23223 u8 *ptr = (u8 *)poff + *poff;
23224
23225 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23226 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23227 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
23228 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23229 +#endif
23230 +
23231 if (!*poff || ptr < text || ptr >= text_end)
23232 continue;
23233 /* turn DS segment override prefix into lock prefix */
23234 - if (*ptr == 0x3e)
23235 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0x3e)
23236 text_poke(ptr, ((unsigned char []){0xf0}), 1);
23237 }
23238 mutex_unlock(&text_mutex);
23239 @@ -452,10 +494,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
23240 for (poff = start; poff < end; poff++) {
23241 u8 *ptr = (u8 *)poff + *poff;
23242
23243 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23244 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23245 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
23246 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23247 +#endif
23248 +
23249 if (!*poff || ptr < text || ptr >= text_end)
23250 continue;
23251 /* turn lock prefix into DS segment override prefix */
23252 - if (*ptr == 0xf0)
23253 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0xf0)
23254 text_poke(ptr, ((unsigned char []){0x3E}), 1);
23255 }
23256 mutex_unlock(&text_mutex);
23257 @@ -592,7 +640,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
23258
23259 BUG_ON(p->len > MAX_PATCH_LEN);
23260 /* prep the buffer with the original instructions */
23261 - memcpy(insnbuf, p->instr, p->len);
23262 + memcpy(insnbuf, (const void *)ktla_ktva((unsigned long)p->instr), p->len);
23263 used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
23264 (unsigned long)p->instr, p->len);
23265
23266 @@ -639,7 +687,7 @@ void __init alternative_instructions(void)
23267 if (!uniproc_patched || num_possible_cpus() == 1)
23268 free_init_pages("SMP alternatives",
23269 (unsigned long)__smp_locks,
23270 - (unsigned long)__smp_locks_end);
23271 + PAGE_ALIGN((unsigned long)__smp_locks_end));
23272 #endif
23273
23274 apply_paravirt(__parainstructions, __parainstructions_end);
23275 @@ -660,13 +708,17 @@ void __init alternative_instructions(void)
23276 * instructions. And on the local CPU you need to be protected again NMI or MCE
23277 * handlers seeing an inconsistent instruction while you patch.
23278 */
23279 -void *__init_or_module text_poke_early(void *addr, const void *opcode,
23280 +void *__kprobes text_poke_early(void *addr, const void *opcode,
23281 size_t len)
23282 {
23283 unsigned long flags;
23284 local_irq_save(flags);
23285 - memcpy(addr, opcode, len);
23286 +
23287 + pax_open_kernel();
23288 + memcpy((void *)ktla_ktva((unsigned long)addr), opcode, len);
23289 sync_core();
23290 + pax_close_kernel();
23291 +
23292 local_irq_restore(flags);
23293 /* Could also do a CLFLUSH here to speed up CPU recovery; but
23294 that causes hangs on some VIA CPUs. */
23295 @@ -688,36 +740,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
23296 */
23297 void *text_poke(void *addr, const void *opcode, size_t len)
23298 {
23299 - unsigned long flags;
23300 - char *vaddr;
23301 + unsigned char *vaddr = (void *)ktla_ktva((unsigned long)addr);
23302 struct page *pages[2];
23303 - int i;
23304 + size_t i;
23305
23306 if (!core_kernel_text((unsigned long)addr)) {
23307 - pages[0] = vmalloc_to_page(addr);
23308 - pages[1] = vmalloc_to_page(addr + PAGE_SIZE);
23309 + pages[0] = vmalloc_to_page(vaddr);
23310 + pages[1] = vmalloc_to_page(vaddr + PAGE_SIZE);
23311 } else {
23312 - pages[0] = virt_to_page(addr);
23313 + pages[0] = virt_to_page(vaddr);
23314 WARN_ON(!PageReserved(pages[0]));
23315 - pages[1] = virt_to_page(addr + PAGE_SIZE);
23316 + pages[1] = virt_to_page(vaddr + PAGE_SIZE);
23317 }
23318 BUG_ON(!pages[0]);
23319 - local_irq_save(flags);
23320 - set_fixmap(FIX_TEXT_POKE0, page_to_phys(pages[0]));
23321 - if (pages[1])
23322 - set_fixmap(FIX_TEXT_POKE1, page_to_phys(pages[1]));
23323 - vaddr = (char *)fix_to_virt(FIX_TEXT_POKE0);
23324 - memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
23325 - clear_fixmap(FIX_TEXT_POKE0);
23326 - if (pages[1])
23327 - clear_fixmap(FIX_TEXT_POKE1);
23328 - local_flush_tlb();
23329 - sync_core();
23330 - /* Could also do a CLFLUSH here to speed up CPU recovery; but
23331 - that causes hangs on some VIA CPUs. */
23332 + text_poke_early(addr, opcode, len);
23333 for (i = 0; i < len; i++)
23334 - BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]);
23335 - local_irq_restore(flags);
23336 + BUG_ON((vaddr)[i] != ((const unsigned char *)opcode)[i]);
23337 return addr;
23338 }
23339
23340 @@ -771,7 +809,7 @@ int poke_int3_handler(struct pt_regs *regs)
23341 */
23342 void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
23343 {
23344 - unsigned char int3 = 0xcc;
23345 + const unsigned char int3 = 0xcc;
23346
23347 bp_int3_handler = handler;
23348 bp_int3_addr = (u8 *)addr + sizeof(int3);
23349 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
23350 index 307a498..a7ffc39 100644
23351 --- a/arch/x86/kernel/apic/apic.c
23352 +++ b/arch/x86/kernel/apic/apic.c
23353 @@ -171,7 +171,7 @@ int first_system_vector = FIRST_SYSTEM_VECTOR;
23354 /*
23355 * Debug level, exported for io_apic.c
23356 */
23357 -unsigned int apic_verbosity;
23358 +int apic_verbosity;
23359
23360 int pic_mode;
23361
23362 @@ -1864,7 +1864,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
23363 apic_write(APIC_ESR, 0);
23364 v = apic_read(APIC_ESR);
23365 ack_APIC_irq();
23366 - atomic_inc(&irq_err_count);
23367 + atomic_inc_unchecked(&irq_err_count);
23368
23369 apic_printk(APIC_DEBUG, KERN_DEBUG "APIC error on CPU%d: %02x",
23370 smp_processor_id(), v);
23371 @@ -2143,7 +2143,9 @@ void __init apic_set_eoi_write(void (*eoi_write)(u32 reg, u32 v))
23372 for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
23373 /* Should happen once for each apic */
23374 WARN_ON((*drv)->eoi_write == eoi_write);
23375 - (*drv)->eoi_write = eoi_write;
23376 + pax_open_kernel();
23377 + *(void **)&(*drv)->eoi_write = eoi_write;
23378 + pax_close_kernel();
23379 }
23380 }
23381
23382 diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
23383 index de918c4..32eed23 100644
23384 --- a/arch/x86/kernel/apic/apic_flat_64.c
23385 +++ b/arch/x86/kernel/apic/apic_flat_64.c
23386 @@ -154,7 +154,7 @@ static int flat_probe(void)
23387 return 1;
23388 }
23389
23390 -static struct apic apic_flat = {
23391 +static struct apic apic_flat __read_only = {
23392 .name = "flat",
23393 .probe = flat_probe,
23394 .acpi_madt_oem_check = flat_acpi_madt_oem_check,
23395 @@ -260,7 +260,7 @@ static int physflat_probe(void)
23396 return 0;
23397 }
23398
23399 -static struct apic apic_physflat = {
23400 +static struct apic apic_physflat __read_only = {
23401
23402 .name = "physical flat",
23403 .probe = physflat_probe,
23404 diff --git a/arch/x86/kernel/apic/apic_noop.c b/arch/x86/kernel/apic/apic_noop.c
23405 index b205cdb..d8503ff 100644
23406 --- a/arch/x86/kernel/apic/apic_noop.c
23407 +++ b/arch/x86/kernel/apic/apic_noop.c
23408 @@ -108,7 +108,7 @@ static void noop_apic_write(u32 reg, u32 v)
23409 WARN_ON_ONCE(cpu_has_apic && !disable_apic);
23410 }
23411
23412 -struct apic apic_noop = {
23413 +struct apic apic_noop __read_only = {
23414 .name = "noop",
23415 .probe = noop_probe,
23416 .acpi_madt_oem_check = NULL,
23417 diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c
23418 index c4a8d63..fe893ac 100644
23419 --- a/arch/x86/kernel/apic/bigsmp_32.c
23420 +++ b/arch/x86/kernel/apic/bigsmp_32.c
23421 @@ -147,7 +147,7 @@ static int probe_bigsmp(void)
23422 return dmi_bigsmp;
23423 }
23424
23425 -static struct apic apic_bigsmp = {
23426 +static struct apic apic_bigsmp __read_only = {
23427
23428 .name = "bigsmp",
23429 .probe = probe_bigsmp,
23430 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
23431 index 11b46d9..e2bc827 100644
23432 --- a/arch/x86/kernel/apic/io_apic.c
23433 +++ b/arch/x86/kernel/apic/io_apic.c
23434 @@ -1682,7 +1682,7 @@ static unsigned int startup_ioapic_irq(struct irq_data *data)
23435 return was_pending;
23436 }
23437
23438 -atomic_t irq_mis_count;
23439 +atomic_unchecked_t irq_mis_count;
23440
23441 #ifdef CONFIG_GENERIC_PENDING_IRQ
23442 static bool io_apic_level_ack_pending(struct mp_chip_data *data)
23443 @@ -1821,7 +1821,7 @@ static void ioapic_ack_level(struct irq_data *irq_data)
23444 * at the cpu.
23445 */
23446 if (!(v & (1 << (i & 0x1f)))) {
23447 - atomic_inc(&irq_mis_count);
23448 + atomic_inc_unchecked(&irq_mis_count);
23449 eoi_ioapic_pin(cfg->vector, irq_data->chip_data);
23450 }
23451
23452 @@ -1867,7 +1867,7 @@ static int ioapic_set_affinity(struct irq_data *irq_data,
23453 return ret;
23454 }
23455
23456 -static struct irq_chip ioapic_chip __read_mostly = {
23457 +static struct irq_chip ioapic_chip = {
23458 .name = "IO-APIC",
23459 .irq_startup = startup_ioapic_irq,
23460 .irq_mask = mask_ioapic_irq,
23461 @@ -1936,7 +1936,7 @@ static void ack_lapic_irq(struct irq_data *data)
23462 ack_APIC_irq();
23463 }
23464
23465 -static struct irq_chip lapic_chip __read_mostly = {
23466 +static struct irq_chip lapic_chip = {
23467 .name = "local-APIC",
23468 .irq_mask = mask_lapic_irq,
23469 .irq_unmask = unmask_lapic_irq,
23470 diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
23471 index 1a9d735..c58b5c5 100644
23472 --- a/arch/x86/kernel/apic/msi.c
23473 +++ b/arch/x86/kernel/apic/msi.c
23474 @@ -267,7 +267,7 @@ static void hpet_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
23475 hpet_msi_write(data->handler_data, msg);
23476 }
23477
23478 -static struct irq_chip hpet_msi_controller = {
23479 +static irq_chip_no_const hpet_msi_controller __read_only = {
23480 .name = "HPET-MSI",
23481 .irq_unmask = hpet_msi_unmask,
23482 .irq_mask = hpet_msi_mask,
23483 diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
23484 index bda4886..f9c7195 100644
23485 --- a/arch/x86/kernel/apic/probe_32.c
23486 +++ b/arch/x86/kernel/apic/probe_32.c
23487 @@ -72,7 +72,7 @@ static int probe_default(void)
23488 return 1;
23489 }
23490
23491 -static struct apic apic_default = {
23492 +static struct apic apic_default __read_only = {
23493
23494 .name = "default",
23495 .probe = probe_default,
23496 diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
23497 index 2683f36..0bdc74c 100644
23498 --- a/arch/x86/kernel/apic/vector.c
23499 +++ b/arch/x86/kernel/apic/vector.c
23500 @@ -36,7 +36,7 @@ static struct irq_chip lapic_controller;
23501 static struct apic_chip_data *legacy_irq_data[NR_IRQS_LEGACY];
23502 #endif
23503
23504 -void lock_vector_lock(void)
23505 +void lock_vector_lock(void) __acquires(vector_lock)
23506 {
23507 /* Used to the online set of cpus does not change
23508 * during assign_irq_vector.
23509 @@ -44,7 +44,7 @@ void lock_vector_lock(void)
23510 raw_spin_lock(&vector_lock);
23511 }
23512
23513 -void unlock_vector_lock(void)
23514 +void unlock_vector_lock(void) __releases(vector_lock)
23515 {
23516 raw_spin_unlock(&vector_lock);
23517 }
23518 diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
23519 index ab3219b..e8033eb 100644
23520 --- a/arch/x86/kernel/apic/x2apic_cluster.c
23521 +++ b/arch/x86/kernel/apic/x2apic_cluster.c
23522 @@ -182,7 +182,7 @@ update_clusterinfo(struct notifier_block *nfb, unsigned long action, void *hcpu)
23523 return notifier_from_errno(err);
23524 }
23525
23526 -static struct notifier_block __refdata x2apic_cpu_notifier = {
23527 +static struct notifier_block x2apic_cpu_notifier = {
23528 .notifier_call = update_clusterinfo,
23529 };
23530
23531 @@ -234,7 +234,7 @@ static void cluster_vector_allocation_domain(int cpu, struct cpumask *retmask,
23532 cpumask_and(retmask, mask, per_cpu(cpus_in_cluster, cpu));
23533 }
23534
23535 -static struct apic apic_x2apic_cluster = {
23536 +static struct apic apic_x2apic_cluster __read_only = {
23537
23538 .name = "cluster x2apic",
23539 .probe = x2apic_cluster_probe,
23540 diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
23541 index 3ffd925..8c0f5a8 100644
23542 --- a/arch/x86/kernel/apic/x2apic_phys.c
23543 +++ b/arch/x86/kernel/apic/x2apic_phys.c
23544 @@ -90,7 +90,7 @@ static int x2apic_phys_probe(void)
23545 return apic == &apic_x2apic_phys;
23546 }
23547
23548 -static struct apic apic_x2apic_phys = {
23549 +static struct apic apic_x2apic_phys __read_only = {
23550
23551 .name = "physical x2apic",
23552 .probe = x2apic_phys_probe,
23553 diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
23554 index c8d9295..9af2d03 100644
23555 --- a/arch/x86/kernel/apic/x2apic_uv_x.c
23556 +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
23557 @@ -375,7 +375,7 @@ static int uv_probe(void)
23558 return apic == &apic_x2apic_uv_x;
23559 }
23560
23561 -static struct apic __refdata apic_x2apic_uv_x = {
23562 +static struct apic apic_x2apic_uv_x __read_only = {
23563
23564 .name = "UV large system",
23565 .probe = uv_probe,
23566 diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
23567 index 927ec92..de68f32 100644
23568 --- a/arch/x86/kernel/apm_32.c
23569 +++ b/arch/x86/kernel/apm_32.c
23570 @@ -432,7 +432,7 @@ static DEFINE_MUTEX(apm_mutex);
23571 * This is for buggy BIOS's that refer to (real mode) segment 0x40
23572 * even though they are called in protected mode.
23573 */
23574 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
23575 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
23576 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
23577
23578 static const char driver_version[] = "1.16ac"; /* no spaces */
23579 @@ -610,7 +610,10 @@ static long __apm_bios_call(void *_call)
23580 BUG_ON(cpu != 0);
23581 gdt = get_cpu_gdt_table(cpu);
23582 save_desc_40 = gdt[0x40 / 8];
23583 +
23584 + pax_open_kernel();
23585 gdt[0x40 / 8] = bad_bios_desc;
23586 + pax_close_kernel();
23587
23588 apm_irq_save(flags);
23589 APM_DO_SAVE_SEGS;
23590 @@ -619,7 +622,11 @@ static long __apm_bios_call(void *_call)
23591 &call->esi);
23592 APM_DO_RESTORE_SEGS;
23593 apm_irq_restore(flags);
23594 +
23595 + pax_open_kernel();
23596 gdt[0x40 / 8] = save_desc_40;
23597 + pax_close_kernel();
23598 +
23599 put_cpu();
23600
23601 return call->eax & 0xff;
23602 @@ -686,7 +693,10 @@ static long __apm_bios_call_simple(void *_call)
23603 BUG_ON(cpu != 0);
23604 gdt = get_cpu_gdt_table(cpu);
23605 save_desc_40 = gdt[0x40 / 8];
23606 +
23607 + pax_open_kernel();
23608 gdt[0x40 / 8] = bad_bios_desc;
23609 + pax_close_kernel();
23610
23611 apm_irq_save(flags);
23612 APM_DO_SAVE_SEGS;
23613 @@ -694,7 +704,11 @@ static long __apm_bios_call_simple(void *_call)
23614 &call->eax);
23615 APM_DO_RESTORE_SEGS;
23616 apm_irq_restore(flags);
23617 +
23618 + pax_open_kernel();
23619 gdt[0x40 / 8] = save_desc_40;
23620 + pax_close_kernel();
23621 +
23622 put_cpu();
23623 return error;
23624 }
23625 @@ -2039,7 +2053,7 @@ static int __init swab_apm_power_in_minutes(const struct dmi_system_id *d)
23626 return 0;
23627 }
23628
23629 -static struct dmi_system_id __initdata apm_dmi_table[] = {
23630 +static const struct dmi_system_id __initconst apm_dmi_table[] = {
23631 {
23632 print_if_true,
23633 KERN_WARNING "IBM T23 - BIOS 1.03b+ and controller firmware 1.02+ may be needed for Linux APM.",
23634 @@ -2349,12 +2363,15 @@ static int __init apm_init(void)
23635 * code to that CPU.
23636 */
23637 gdt = get_cpu_gdt_table(0);
23638 +
23639 + pax_open_kernel();
23640 set_desc_base(&gdt[APM_CS >> 3],
23641 (unsigned long)__va((unsigned long)apm_info.bios.cseg << 4));
23642 set_desc_base(&gdt[APM_CS_16 >> 3],
23643 (unsigned long)__va((unsigned long)apm_info.bios.cseg_16 << 4));
23644 set_desc_base(&gdt[APM_DS >> 3],
23645 (unsigned long)__va((unsigned long)apm_info.bios.dseg << 4));
23646 + pax_close_kernel();
23647
23648 proc_create("apm", 0, NULL, &apm_file_ops);
23649
23650 diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
23651 index 8e3d22a1..37118b6 100644
23652 --- a/arch/x86/kernel/asm-offsets.c
23653 +++ b/arch/x86/kernel/asm-offsets.c
23654 @@ -32,6 +32,8 @@ void common(void) {
23655 OFFSET(TI_flags, thread_info, flags);
23656 OFFSET(TI_status, thread_info, status);
23657 OFFSET(TI_addr_limit, thread_info, addr_limit);
23658 + OFFSET(TI_lowest_stack, thread_info, lowest_stack);
23659 + DEFINE(TI_task_thread_sp0, offsetof(struct task_struct, thread.sp0) - offsetof(struct task_struct, tinfo));
23660
23661 BLANK();
23662 OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx);
23663 @@ -73,8 +75,26 @@ void common(void) {
23664 #endif
23665 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
23666 OFFSET(PV_MMU_read_cr2, pv_mmu_ops, read_cr2);
23667 +
23668 +#ifdef CONFIG_PAX_KERNEXEC
23669 + OFFSET(PV_CPU_write_cr0, pv_cpu_ops, write_cr0);
23670 #endif
23671
23672 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23673 + OFFSET(PV_MMU_read_cr3, pv_mmu_ops, read_cr3);
23674 + OFFSET(PV_MMU_write_cr3, pv_mmu_ops, write_cr3);
23675 +#ifdef CONFIG_X86_64
23676 + OFFSET(PV_MMU_set_pgd_batched, pv_mmu_ops, set_pgd_batched);
23677 +#endif
23678 +#endif
23679 +
23680 +#endif
23681 +
23682 + BLANK();
23683 + DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
23684 + DEFINE(PAGE_SHIFT_asm, PAGE_SHIFT);
23685 + DEFINE(THREAD_SIZE_asm, THREAD_SIZE);
23686 +
23687 #ifdef CONFIG_XEN
23688 BLANK();
23689 OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
23690 diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
23691 index d8f42f9..a46f1fc 100644
23692 --- a/arch/x86/kernel/asm-offsets_64.c
23693 +++ b/arch/x86/kernel/asm-offsets_64.c
23694 @@ -59,6 +59,7 @@ int main(void)
23695 BLANK();
23696 #undef ENTRY
23697
23698 + DEFINE(TSS_size, sizeof(struct tss_struct));
23699 OFFSET(TSS_ist, tss_struct, x86_tss.ist);
23700 OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
23701 BLANK();
23702 diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
23703 index 9bff687..5b899fb 100644
23704 --- a/arch/x86/kernel/cpu/Makefile
23705 +++ b/arch/x86/kernel/cpu/Makefile
23706 @@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
23707 CFLAGS_REMOVE_perf_event.o = -pg
23708 endif
23709
23710 -# Make sure load_percpu_segment has no stackprotector
23711 -nostackp := $(call cc-option, -fno-stack-protector)
23712 -CFLAGS_common.o := $(nostackp)
23713 -
23714 obj-y := intel_cacheinfo.o scattered.o topology.o
23715 obj-y += common.o
23716 obj-y += rdrand.o
23717 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
23718 index dd3a4ba..06672af 100644
23719 --- a/arch/x86/kernel/cpu/amd.c
23720 +++ b/arch/x86/kernel/cpu/amd.c
23721 @@ -750,7 +750,7 @@ static void init_amd(struct cpuinfo_x86 *c)
23722 static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size)
23723 {
23724 /* AMD errata T13 (order #21922) */
23725 - if ((c->x86 == 6)) {
23726 + if (c->x86 == 6) {
23727 /* Duron Rev A0 */
23728 if (c->x86_model == 3 && c->x86_mask == 0)
23729 size = 64;
23730 diff --git a/arch/x86/kernel/cpu/bugs_64.c b/arch/x86/kernel/cpu/bugs_64.c
23731 index 04f0fe5..3c0598c 100644
23732 --- a/arch/x86/kernel/cpu/bugs_64.c
23733 +++ b/arch/x86/kernel/cpu/bugs_64.c
23734 @@ -10,6 +10,7 @@
23735 #include <asm/processor.h>
23736 #include <asm/mtrr.h>
23737 #include <asm/cacheflush.h>
23738 +#include <asm/sections.h>
23739
23740 void __init check_bugs(void)
23741 {
23742 @@ -18,6 +19,7 @@ void __init check_bugs(void)
23743 printk(KERN_INFO "CPU: ");
23744 print_cpu_info(&boot_cpu_data);
23745 #endif
23746 + set_memory_nx((unsigned long)_sinitdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sinitdata) >> PAGE_SHIFT);
23747 alternative_instructions();
23748
23749 /*
23750 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
23751 index cb9e5df..0849dd8 100644
23752 --- a/arch/x86/kernel/cpu/common.c
23753 +++ b/arch/x86/kernel/cpu/common.c
23754 @@ -91,60 +91,6 @@ static const struct cpu_dev default_cpu = {
23755
23756 static const struct cpu_dev *this_cpu = &default_cpu;
23757
23758 -DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
23759 -#ifdef CONFIG_X86_64
23760 - /*
23761 - * We need valid kernel segments for data and code in long mode too
23762 - * IRET will check the segment types kkeil 2000/10/28
23763 - * Also sysret mandates a special GDT layout
23764 - *
23765 - * TLS descriptors are currently at a different place compared to i386.
23766 - * Hopefully nobody expects them at a fixed place (Wine?)
23767 - */
23768 - [GDT_ENTRY_KERNEL32_CS] = GDT_ENTRY_INIT(0xc09b, 0, 0xfffff),
23769 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xa09b, 0, 0xfffff),
23770 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc093, 0, 0xfffff),
23771 - [GDT_ENTRY_DEFAULT_USER32_CS] = GDT_ENTRY_INIT(0xc0fb, 0, 0xfffff),
23772 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f3, 0, 0xfffff),
23773 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xa0fb, 0, 0xfffff),
23774 -#else
23775 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xc09a, 0, 0xfffff),
23776 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23777 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xc0fa, 0, 0xfffff),
23778 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f2, 0, 0xfffff),
23779 - /*
23780 - * Segments used for calling PnP BIOS have byte granularity.
23781 - * They code segments and data segments have fixed 64k limits,
23782 - * the transfer segment sizes are set at run time.
23783 - */
23784 - /* 32-bit code */
23785 - [GDT_ENTRY_PNPBIOS_CS32] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23786 - /* 16-bit code */
23787 - [GDT_ENTRY_PNPBIOS_CS16] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23788 - /* 16-bit data */
23789 - [GDT_ENTRY_PNPBIOS_DS] = GDT_ENTRY_INIT(0x0092, 0, 0xffff),
23790 - /* 16-bit data */
23791 - [GDT_ENTRY_PNPBIOS_TS1] = GDT_ENTRY_INIT(0x0092, 0, 0),
23792 - /* 16-bit data */
23793 - [GDT_ENTRY_PNPBIOS_TS2] = GDT_ENTRY_INIT(0x0092, 0, 0),
23794 - /*
23795 - * The APM segments have byte granularity and their bases
23796 - * are set at run time. All have 64k limits.
23797 - */
23798 - /* 32-bit code */
23799 - [GDT_ENTRY_APMBIOS_BASE] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23800 - /* 16-bit code */
23801 - [GDT_ENTRY_APMBIOS_BASE+1] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23802 - /* data */
23803 - [GDT_ENTRY_APMBIOS_BASE+2] = GDT_ENTRY_INIT(0x4092, 0, 0xffff),
23804 -
23805 - [GDT_ENTRY_ESPFIX_SS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23806 - [GDT_ENTRY_PERCPU] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23807 - GDT_STACK_CANARY_INIT
23808 -#endif
23809 -} };
23810 -EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
23811 -
23812 static int __init x86_mpx_setup(char *s)
23813 {
23814 /* require an exact match without trailing characters */
23815 @@ -272,10 +218,9 @@ __setup("nosmap", setup_disable_smap);
23816
23817 static __always_inline void setup_smap(struct cpuinfo_x86 *c)
23818 {
23819 - unsigned long eflags;
23820 + unsigned long eflags = native_save_fl();
23821
23822 /* This should have been cleared long ago */
23823 - raw_local_save_flags(eflags);
23824 BUG_ON(eflags & X86_EFLAGS_AC);
23825
23826 if (cpu_has(c, X86_FEATURE_SMAP)) {
23827 @@ -287,6 +232,109 @@ static __always_inline void setup_smap(struct cpuinfo_x86 *c)
23828 }
23829 }
23830
23831 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23832 +#ifdef CONFIG_X86_64
23833 +static bool uderef_enabled __read_only = true;
23834 +unsigned long pax_user_shadow_base __read_only;
23835 +EXPORT_SYMBOL(pax_user_shadow_base);
23836 +extern char pax_enter_kernel_user[];
23837 +extern char pax_exit_kernel_user[];
23838 +
23839 +static int __init setup_pax_weakuderef(char *str)
23840 +{
23841 + if (uderef_enabled)
23842 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23843 + return 1;
23844 +}
23845 +__setup("pax_weakuderef", setup_pax_weakuderef);
23846 +#endif
23847 +
23848 +static int __init setup_pax_nouderef(char *str)
23849 +{
23850 +#ifdef CONFIG_X86_32
23851 + unsigned int cpu;
23852 + struct desc_struct *gdt;
23853 +
23854 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
23855 + gdt = get_cpu_gdt_table(cpu);
23856 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
23857 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
23858 + gdt[GDT_ENTRY_DEFAULT_USER_CS].limit = 0xf;
23859 + gdt[GDT_ENTRY_DEFAULT_USER_DS].limit = 0xf;
23860 + }
23861 + loadsegment(ds, __KERNEL_DS);
23862 + loadsegment(es, __KERNEL_DS);
23863 + loadsegment(ss, __KERNEL_DS);
23864 +#else
23865 + memcpy(pax_enter_kernel_user, (unsigned char []){0xc3}, 1);
23866 + memcpy(pax_exit_kernel_user, (unsigned char []){0xc3}, 1);
23867 + clone_pgd_mask = ~(pgdval_t)0UL;
23868 + pax_user_shadow_base = 0UL;
23869 + setup_clear_cpu_cap(X86_FEATURE_PCIDUDEREF);
23870 + uderef_enabled = false;
23871 +#endif
23872 +
23873 + return 0;
23874 +}
23875 +early_param("pax_nouderef", setup_pax_nouderef);
23876 +#endif
23877 +
23878 +#ifdef CONFIG_X86_64
23879 +static __init int setup_disable_pcid(char *arg)
23880 +{
23881 + setup_clear_cpu_cap(X86_FEATURE_PCID);
23882 + setup_clear_cpu_cap(X86_FEATURE_INVPCID);
23883 +
23884 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23885 + if (uderef_enabled)
23886 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23887 +#endif
23888 +
23889 + return 1;
23890 +}
23891 +__setup("nopcid", setup_disable_pcid);
23892 +
23893 +static void setup_pcid(struct cpuinfo_x86 *c)
23894 +{
23895 + if (cpu_has(c, X86_FEATURE_PCID)) {
23896 + printk("PAX: PCID detected\n");
23897 + cr4_set_bits(X86_CR4_PCIDE);
23898 + } else
23899 + clear_cpu_cap(c, X86_FEATURE_INVPCID);
23900 +
23901 + if (cpu_has(c, X86_FEATURE_INVPCID))
23902 + printk("PAX: INVPCID detected\n");
23903 +
23904 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23905 + if (!uderef_enabled) {
23906 + printk("PAX: UDEREF disabled\n");
23907 + return;
23908 + }
23909 +
23910 + if (!cpu_has(c, X86_FEATURE_PCID)) {
23911 + pax_open_kernel();
23912 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23913 + pax_close_kernel();
23914 + printk("PAX: slow and weak UDEREF enabled\n");
23915 + return;
23916 + }
23917 +
23918 + set_cpu_cap(c, X86_FEATURE_PCIDUDEREF);
23919 +
23920 + pax_open_kernel();
23921 + clone_pgd_mask = ~(pgdval_t)0UL;
23922 + pax_close_kernel();
23923 + if (pax_user_shadow_base)
23924 + printk("PAX: weak UDEREF enabled\n");
23925 + else {
23926 + set_cpu_cap(c, X86_FEATURE_STRONGUDEREF);
23927 + printk("PAX: strong UDEREF enabled\n");
23928 + }
23929 +#endif
23930 +
23931 +}
23932 +#endif
23933 +
23934 /*
23935 * Some CPU features depend on higher CPUID levels, which may not always
23936 * be available due to CPUID level capping or broken virtualization
23937 @@ -387,7 +435,7 @@ void switch_to_new_gdt(int cpu)
23938 {
23939 struct desc_ptr gdt_descr;
23940
23941 - gdt_descr.address = (long)get_cpu_gdt_table(cpu);
23942 + gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
23943 gdt_descr.size = GDT_SIZE - 1;
23944 load_gdt(&gdt_descr);
23945 /* Reload the per-cpu base */
23946 @@ -918,6 +966,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
23947 setup_smep(c);
23948 setup_smap(c);
23949
23950 +#ifdef CONFIG_X86_32
23951 +#ifdef CONFIG_PAX_PAGEEXEC
23952 + if (!(__supported_pte_mask & _PAGE_NX))
23953 + clear_cpu_cap(c, X86_FEATURE_PSE);
23954 +#endif
23955 +#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
23956 + clear_cpu_cap(c, X86_FEATURE_SEP);
23957 +#endif
23958 +#endif
23959 +
23960 +#ifdef CONFIG_X86_64
23961 + setup_pcid(c);
23962 +#endif
23963 +
23964 /*
23965 * The vendor-specific functions might have changed features.
23966 * Now we do "generic changes."
23967 @@ -992,7 +1054,7 @@ void enable_sep_cpu(void)
23968 int cpu;
23969
23970 cpu = get_cpu();
23971 - tss = &per_cpu(cpu_tss, cpu);
23972 + tss = cpu_tss + cpu;
23973
23974 if (!boot_cpu_has(X86_FEATURE_SEP))
23975 goto out;
23976 @@ -1138,10 +1200,12 @@ static __init int setup_disablecpuid(char *arg)
23977 }
23978 __setup("clearcpuid=", setup_disablecpuid);
23979
23980 +DEFINE_PER_CPU(struct thread_info *, current_tinfo) = &init_task.tinfo;
23981 +EXPORT_PER_CPU_SYMBOL(current_tinfo);
23982 +
23983 #ifdef CONFIG_X86_64
23984 -struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23985 -struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1,
23986 - (unsigned long) debug_idt_table };
23987 +struct desc_ptr idt_descr __read_only = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23988 +const struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) debug_idt_table };
23989
23990 DEFINE_PER_CPU_FIRST(union irq_stack_union,
23991 irq_stack_union) __aligned(PAGE_SIZE) __visible;
23992 @@ -1253,21 +1317,21 @@ EXPORT_PER_CPU_SYMBOL(current_task);
23993 DEFINE_PER_CPU(int, __preempt_count) = INIT_PREEMPT_COUNT;
23994 EXPORT_PER_CPU_SYMBOL(__preempt_count);
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 * On x86_32, vm86 modifies tss.sp0, so sp0 isn't a reliable way to find
24004 * the top of the kernel stack. Use an extra percpu variable to track the
24005 * top of the kernel stack directly.
24006 */
24007 DEFINE_PER_CPU(unsigned long, cpu_current_top_of_stack) =
24008 - (unsigned long)&init_thread_union + THREAD_SIZE;
24009 + (unsigned long)&init_thread_union - 16 + THREAD_SIZE;
24010 EXPORT_PER_CPU_SYMBOL(cpu_current_top_of_stack);
24011
24012 -#ifdef CONFIG_CC_STACKPROTECTOR
24013 -DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
24014 -#endif
24015 -
24016 -#endif /* CONFIG_X86_64 */
24017 -
24018 /*
24019 * Clear all 6 debug registers:
24020 */
24021 @@ -1343,7 +1407,7 @@ void cpu_init(void)
24022 */
24023 load_ucode_ap();
24024
24025 - t = &per_cpu(cpu_tss, cpu);
24026 + t = cpu_tss + cpu;
24027 oist = &per_cpu(orig_ist, cpu);
24028
24029 #ifdef CONFIG_NUMA
24030 @@ -1375,7 +1439,6 @@ void cpu_init(void)
24031 wrmsrl(MSR_KERNEL_GS_BASE, 0);
24032 barrier();
24033
24034 - x86_configure_nx();
24035 x2apic_setup();
24036
24037 /*
24038 @@ -1427,7 +1490,7 @@ void cpu_init(void)
24039 {
24040 int cpu = smp_processor_id();
24041 struct task_struct *curr = current;
24042 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
24043 + struct tss_struct *t = cpu_tss + cpu;
24044 struct thread_struct *thread = &curr->thread;
24045
24046 wait_for_master_cpu(cpu);
24047 diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
24048 index be4febc..f7af533 100644
24049 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
24050 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
24051 @@ -519,25 +519,23 @@ cache_private_attrs_is_visible(struct kobject *kobj,
24052 return 0;
24053 }
24054
24055 +static struct attribute *amd_l3_attrs[4];
24056 +
24057 static struct attribute_group cache_private_group = {
24058 .is_visible = cache_private_attrs_is_visible,
24059 + .attrs = amd_l3_attrs,
24060 };
24061
24062 static void init_amd_l3_attrs(void)
24063 {
24064 int n = 1;
24065 - static struct attribute **amd_l3_attrs;
24066 -
24067 - if (amd_l3_attrs) /* already initialized */
24068 - return;
24069
24070 if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE))
24071 n += 2;
24072 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
24073 n += 1;
24074
24075 - amd_l3_attrs = kcalloc(n, sizeof(*amd_l3_attrs), GFP_KERNEL);
24076 - if (!amd_l3_attrs)
24077 + if (n > 1 && amd_l3_attrs[0]) /* already initialized */
24078 return;
24079
24080 n = 0;
24081 @@ -547,8 +545,6 @@ static void init_amd_l3_attrs(void)
24082 }
24083 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
24084 amd_l3_attrs[n++] = &dev_attr_subcaches.attr;
24085 -
24086 - cache_private_group.attrs = amd_l3_attrs;
24087 }
24088
24089 const struct attribute_group *
24090 @@ -559,7 +555,7 @@ cache_get_priv_group(struct cacheinfo *this_leaf)
24091 if (this_leaf->level < 3 || !nb)
24092 return NULL;
24093
24094 - if (nb && nb->l3_cache.indices)
24095 + if (nb->l3_cache.indices)
24096 init_amd_l3_attrs();
24097
24098 return &cache_private_group;
24099 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
24100 index df919ff..3332bf7 100644
24101 --- a/arch/x86/kernel/cpu/mcheck/mce.c
24102 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
24103 @@ -47,6 +47,7 @@
24104 #include <asm/tlbflush.h>
24105 #include <asm/mce.h>
24106 #include <asm/msr.h>
24107 +#include <asm/local.h>
24108
24109 #include "mce-internal.h"
24110
24111 @@ -259,7 +260,7 @@ static void print_mce(struct mce *m)
24112 !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
24113 m->cs, m->ip);
24114
24115 - if (m->cs == __KERNEL_CS)
24116 + if (m->cs == __KERNEL_CS || m->cs == __KERNEXEC_KERNEL_CS)
24117 print_symbol("{%s}", m->ip);
24118 pr_cont("\n");
24119 }
24120 @@ -292,10 +293,10 @@ static void print_mce(struct mce *m)
24121
24122 #define PANIC_TIMEOUT 5 /* 5 seconds */
24123
24124 -static atomic_t mce_panicked;
24125 +static atomic_unchecked_t mce_panicked;
24126
24127 static int fake_panic;
24128 -static atomic_t mce_fake_panicked;
24129 +static atomic_unchecked_t mce_fake_panicked;
24130
24131 /* Panic in progress. Enable interrupts and wait for final IPI */
24132 static void wait_for_panic(void)
24133 @@ -319,7 +320,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
24134 /*
24135 * Make sure only one CPU runs in machine check panic
24136 */
24137 - if (atomic_inc_return(&mce_panicked) > 1)
24138 + if (atomic_inc_return_unchecked(&mce_panicked) > 1)
24139 wait_for_panic();
24140 barrier();
24141
24142 @@ -327,7 +328,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
24143 console_verbose();
24144 } else {
24145 /* Don't log too much for fake panic */
24146 - if (atomic_inc_return(&mce_fake_panicked) > 1)
24147 + if (atomic_inc_return_unchecked(&mce_fake_panicked) > 1)
24148 return;
24149 }
24150 /* First print corrected ones that are still unlogged */
24151 @@ -366,7 +367,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
24152 if (!fake_panic) {
24153 if (panic_timeout == 0)
24154 panic_timeout = mca_cfg.panic_timeout;
24155 - panic(msg);
24156 + panic("%s", msg);
24157 } else
24158 pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
24159 }
24160 @@ -752,7 +753,7 @@ static int mce_timed_out(u64 *t, const char *msg)
24161 * might have been modified by someone else.
24162 */
24163 rmb();
24164 - if (atomic_read(&mce_panicked))
24165 + if (atomic_read_unchecked(&mce_panicked))
24166 wait_for_panic();
24167 if (!mca_cfg.monarch_timeout)
24168 goto out;
24169 @@ -1708,7 +1709,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
24170 }
24171
24172 /* Call the installed machine check handler for this CPU setup. */
24173 -void (*machine_check_vector)(struct pt_regs *, long error_code) =
24174 +void (*machine_check_vector)(struct pt_regs *, long error_code) __read_only =
24175 unexpected_machine_check;
24176
24177 /*
24178 @@ -1731,7 +1732,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
24179 return;
24180 }
24181
24182 + pax_open_kernel();
24183 machine_check_vector = do_machine_check;
24184 + pax_close_kernel();
24185
24186 __mcheck_cpu_init_generic();
24187 __mcheck_cpu_init_vendor(c);
24188 @@ -1745,7 +1748,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
24189 */
24190
24191 static DEFINE_SPINLOCK(mce_chrdev_state_lock);
24192 -static int mce_chrdev_open_count; /* #times opened */
24193 +static local_t mce_chrdev_open_count; /* #times opened */
24194 static int mce_chrdev_open_exclu; /* already open exclusive? */
24195
24196 static int mce_chrdev_open(struct inode *inode, struct file *file)
24197 @@ -1753,7 +1756,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
24198 spin_lock(&mce_chrdev_state_lock);
24199
24200 if (mce_chrdev_open_exclu ||
24201 - (mce_chrdev_open_count && (file->f_flags & O_EXCL))) {
24202 + (local_read(&mce_chrdev_open_count) && (file->f_flags & O_EXCL))) {
24203 spin_unlock(&mce_chrdev_state_lock);
24204
24205 return -EBUSY;
24206 @@ -1761,7 +1764,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
24207
24208 if (file->f_flags & O_EXCL)
24209 mce_chrdev_open_exclu = 1;
24210 - mce_chrdev_open_count++;
24211 + local_inc(&mce_chrdev_open_count);
24212
24213 spin_unlock(&mce_chrdev_state_lock);
24214
24215 @@ -1772,7 +1775,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
24216 {
24217 spin_lock(&mce_chrdev_state_lock);
24218
24219 - mce_chrdev_open_count--;
24220 + local_dec(&mce_chrdev_open_count);
24221 mce_chrdev_open_exclu = 0;
24222
24223 spin_unlock(&mce_chrdev_state_lock);
24224 @@ -2448,7 +2451,7 @@ static __init void mce_init_banks(void)
24225
24226 for (i = 0; i < mca_cfg.banks; i++) {
24227 struct mce_bank *b = &mce_banks[i];
24228 - struct device_attribute *a = &b->attr;
24229 + device_attribute_no_const *a = &b->attr;
24230
24231 sysfs_attr_init(&a->attr);
24232 a->attr.name = b->attrname;
24233 @@ -2555,7 +2558,7 @@ struct dentry *mce_get_debugfs_dir(void)
24234 static void mce_reset(void)
24235 {
24236 cpu_missing = 0;
24237 - atomic_set(&mce_fake_panicked, 0);
24238 + atomic_set_unchecked(&mce_fake_panicked, 0);
24239 atomic_set(&mce_executing, 0);
24240 atomic_set(&mce_callin, 0);
24241 atomic_set(&global_nwo, 0);
24242 diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
24243 index 737b0ad..09ec66e 100644
24244 --- a/arch/x86/kernel/cpu/mcheck/p5.c
24245 +++ b/arch/x86/kernel/cpu/mcheck/p5.c
24246 @@ -12,6 +12,7 @@
24247 #include <asm/tlbflush.h>
24248 #include <asm/mce.h>
24249 #include <asm/msr.h>
24250 +#include <asm/pgtable.h>
24251
24252 /* By default disabled */
24253 int mce_p5_enabled __read_mostly;
24254 @@ -55,7 +56,9 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
24255 if (!cpu_has(c, X86_FEATURE_MCE))
24256 return;
24257
24258 + pax_open_kernel();
24259 machine_check_vector = pentium_machine_check;
24260 + pax_close_kernel();
24261 /* Make sure the vector pointer is visible before we enable MCEs: */
24262 wmb();
24263
24264 diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
24265 index 44f1382..315b292 100644
24266 --- a/arch/x86/kernel/cpu/mcheck/winchip.c
24267 +++ b/arch/x86/kernel/cpu/mcheck/winchip.c
24268 @@ -11,6 +11,7 @@
24269 #include <asm/tlbflush.h>
24270 #include <asm/mce.h>
24271 #include <asm/msr.h>
24272 +#include <asm/pgtable.h>
24273
24274 /* Machine check handler for WinChip C6: */
24275 static void winchip_machine_check(struct pt_regs *regs, long error_code)
24276 @@ -28,7 +29,9 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c)
24277 {
24278 u32 lo, hi;
24279
24280 + pax_open_kernel();
24281 machine_check_vector = winchip_machine_check;
24282 + pax_close_kernel();
24283 /* Make sure the vector pointer is visible before we enable MCEs: */
24284 wmb();
24285
24286 diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
24287 index 6236a54..532026d 100644
24288 --- a/arch/x86/kernel/cpu/microcode/core.c
24289 +++ b/arch/x86/kernel/cpu/microcode/core.c
24290 @@ -460,7 +460,7 @@ mc_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
24291 return NOTIFY_OK;
24292 }
24293
24294 -static struct notifier_block __refdata mc_cpu_notifier = {
24295 +static struct notifier_block mc_cpu_notifier = {
24296 .notifier_call = mc_cpu_callback,
24297 };
24298
24299 diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
24300 index 969dc17..a9c3fdd 100644
24301 --- a/arch/x86/kernel/cpu/microcode/intel.c
24302 +++ b/arch/x86/kernel/cpu/microcode/intel.c
24303 @@ -237,13 +237,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
24304
24305 static int get_ucode_user(void *to, const void *from, size_t n)
24306 {
24307 - return copy_from_user(to, from, n);
24308 + return copy_from_user(to, (const void __force_user *)from, n);
24309 }
24310
24311 static enum ucode_state
24312 request_microcode_user(int cpu, const void __user *buf, size_t size)
24313 {
24314 - return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
24315 + return generic_load_microcode(cpu, (__force_kernel void *)buf, size, &get_ucode_user);
24316 }
24317
24318 static void microcode_fini_cpu(int cpu)
24319 diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
24320 index e7ed0d8..57a2ab9 100644
24321 --- a/arch/x86/kernel/cpu/mtrr/main.c
24322 +++ b/arch/x86/kernel/cpu/mtrr/main.c
24323 @@ -72,7 +72,7 @@ static DEFINE_MUTEX(mtrr_mutex);
24324 u64 size_or_mask, size_and_mask;
24325 static bool mtrr_aps_delayed_init;
24326
24327 -static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM];
24328 +static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM] __read_only;
24329
24330 const struct mtrr_ops *mtrr_if;
24331
24332 diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.h b/arch/x86/kernel/cpu/mtrr/mtrr.h
24333 index 951884d..4796b75 100644
24334 --- a/arch/x86/kernel/cpu/mtrr/mtrr.h
24335 +++ b/arch/x86/kernel/cpu/mtrr/mtrr.h
24336 @@ -25,7 +25,7 @@ struct mtrr_ops {
24337 int (*validate_add_page)(unsigned long base, unsigned long size,
24338 unsigned int type);
24339 int (*have_wrcomb)(void);
24340 -};
24341 +} __do_const;
24342
24343 extern int generic_get_free_region(unsigned long base, unsigned long size,
24344 int replace_reg);
24345 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
24346 index 9469dfa..2b026bc 100644
24347 --- a/arch/x86/kernel/cpu/perf_event.c
24348 +++ b/arch/x86/kernel/cpu/perf_event.c
24349 @@ -1518,7 +1518,7 @@ static void __init pmu_check_apic(void)
24350
24351 }
24352
24353 -static struct attribute_group x86_pmu_format_group = {
24354 +static attribute_group_no_const x86_pmu_format_group = {
24355 .name = "format",
24356 .attrs = NULL,
24357 };
24358 @@ -1617,7 +1617,7 @@ static struct attribute *events_attr[] = {
24359 NULL,
24360 };
24361
24362 -static struct attribute_group x86_pmu_events_group = {
24363 +static attribute_group_no_const x86_pmu_events_group = {
24364 .name = "events",
24365 .attrs = events_attr,
24366 };
24367 @@ -2176,7 +2176,7 @@ valid_user_frame(const void __user *fp, unsigned long size)
24368 static unsigned long get_segment_base(unsigned int segment)
24369 {
24370 struct desc_struct *desc;
24371 - int idx = segment >> 3;
24372 + unsigned int idx = segment >> 3;
24373
24374 if ((segment & SEGMENT_TI_MASK) == SEGMENT_LDT) {
24375 struct ldt_struct *ldt;
24376 @@ -2194,7 +2194,7 @@ static unsigned long get_segment_base(unsigned int segment)
24377 if (idx > GDT_ENTRIES)
24378 return 0;
24379
24380 - desc = raw_cpu_ptr(gdt_page.gdt) + idx;
24381 + desc = get_cpu_gdt_table(smp_processor_id()) + idx;
24382 }
24383
24384 return get_desc_base(desc);
24385 @@ -2284,7 +2284,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
24386 break;
24387
24388 perf_callchain_store(entry, frame.return_address);
24389 - fp = frame.next_frame;
24390 + fp = (const void __force_user *)frame.next_frame;
24391 }
24392 }
24393
24394 diff --git a/arch/x86/kernel/cpu/perf_event_amd_iommu.c b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24395 index 97242a9..cf9c30e 100644
24396 --- a/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24397 +++ b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24398 @@ -402,7 +402,7 @@ static void perf_iommu_del(struct perf_event *event, int flags)
24399 static __init int _init_events_attrs(struct perf_amd_iommu *perf_iommu)
24400 {
24401 struct attribute **attrs;
24402 - struct attribute_group *attr_group;
24403 + attribute_group_no_const *attr_group;
24404 int i = 0, j;
24405
24406 while (amd_iommu_v2_event_descs[i].attr.attr.name)
24407 diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
24408 index 1b09c42..521004d 100644
24409 --- a/arch/x86/kernel/cpu/perf_event_intel.c
24410 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
24411 @@ -3019,10 +3019,10 @@ __init int intel_pmu_init(void)
24412 x86_pmu.num_counters_fixed = max((int)edx.split.num_counters_fixed, 3);
24413
24414 if (boot_cpu_has(X86_FEATURE_PDCM)) {
24415 - u64 capabilities;
24416 + u64 capabilities = x86_pmu.intel_cap.capabilities;
24417
24418 - rdmsrl(MSR_IA32_PERF_CAPABILITIES, capabilities);
24419 - x86_pmu.intel_cap.capabilities = capabilities;
24420 + if (rdmsrl_safe(MSR_IA32_PERF_CAPABILITIES, &x86_pmu.intel_cap.capabilities))
24421 + x86_pmu.intel_cap.capabilities = capabilities;
24422 }
24423
24424 intel_ds_init();
24425 diff --git a/arch/x86/kernel/cpu/perf_event_intel_bts.c b/arch/x86/kernel/cpu/perf_event_intel_bts.c
24426 index 43dd672..78c0562 100644
24427 --- a/arch/x86/kernel/cpu/perf_event_intel_bts.c
24428 +++ b/arch/x86/kernel/cpu/perf_event_intel_bts.c
24429 @@ -252,7 +252,7 @@ static void bts_event_start(struct perf_event *event, int flags)
24430 __bts_event_start(event);
24431
24432 /* PMI handler: this counter is running and likely generating PMIs */
24433 - ACCESS_ONCE(bts->started) = 1;
24434 + ACCESS_ONCE_RW(bts->started) = 1;
24435 }
24436
24437 static void __bts_event_stop(struct perf_event *event)
24438 @@ -266,7 +266,7 @@ static void __bts_event_stop(struct perf_event *event)
24439 if (event->hw.state & PERF_HES_STOPPED)
24440 return;
24441
24442 - ACCESS_ONCE(event->hw.state) |= PERF_HES_STOPPED;
24443 + ACCESS_ONCE_RW(event->hw.state) |= PERF_HES_STOPPED;
24444 }
24445
24446 static void bts_event_stop(struct perf_event *event, int flags)
24447 @@ -274,7 +274,7 @@ static void bts_event_stop(struct perf_event *event, int flags)
24448 struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
24449
24450 /* PMI handler: don't restart this counter */
24451 - ACCESS_ONCE(bts->started) = 0;
24452 + ACCESS_ONCE_RW(bts->started) = 0;
24453
24454 __bts_event_stop(event);
24455
24456 diff --git a/arch/x86/kernel/cpu/perf_event_intel_cqm.c b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24457 index 377e8f8..2982f48 100644
24458 --- a/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24459 +++ b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24460 @@ -1364,7 +1364,9 @@ static int __init intel_cqm_init(void)
24461 goto out;
24462 }
24463
24464 - event_attr_intel_cqm_llc_scale.event_str = str;
24465 + pax_open_kernel();
24466 + *(const char **)&event_attr_intel_cqm_llc_scale.event_str = str;
24467 + pax_close_kernel();
24468
24469 ret = intel_cqm_setup_rmid_cache();
24470 if (ret)
24471 diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24472 index 183de71..bd34d52 100644
24473 --- a/arch/x86/kernel/cpu/perf_event_intel_pt.c
24474 +++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24475 @@ -116,16 +116,12 @@ static const struct attribute_group *pt_attr_groups[] = {
24476
24477 static int __init pt_pmu_hw_init(void)
24478 {
24479 - struct dev_ext_attribute *de_attrs;
24480 - struct attribute **attrs;
24481 - size_t size;
24482 - int ret;
24483 + static struct dev_ext_attribute de_attrs[ARRAY_SIZE(pt_caps)];
24484 + static struct attribute *attrs[ARRAY_SIZE(pt_caps)];
24485 long i;
24486
24487 - attrs = NULL;
24488 - ret = -ENODEV;
24489 if (!test_cpu_cap(&boot_cpu_data, X86_FEATURE_INTEL_PT))
24490 - goto fail;
24491 + return -ENODEV;
24492
24493 for (i = 0; i < PT_CPUID_LEAVES; i++) {
24494 cpuid_count(20, i,
24495 @@ -135,39 +131,25 @@ static int __init pt_pmu_hw_init(void)
24496 &pt_pmu.caps[CR_EDX + i*4]);
24497 }
24498
24499 - ret = -ENOMEM;
24500 - size = sizeof(struct attribute *) * (ARRAY_SIZE(pt_caps)+1);
24501 - attrs = kzalloc(size, GFP_KERNEL);
24502 - if (!attrs)
24503 - goto fail;
24504 -
24505 - size = sizeof(struct dev_ext_attribute) * (ARRAY_SIZE(pt_caps)+1);
24506 - de_attrs = kzalloc(size, GFP_KERNEL);
24507 - if (!de_attrs)
24508 - goto fail;
24509 -
24510 + pax_open_kernel();
24511 for (i = 0; i < ARRAY_SIZE(pt_caps); i++) {
24512 - struct dev_ext_attribute *de_attr = de_attrs + i;
24513 + struct dev_ext_attribute *de_attr = &de_attrs[i];
24514
24515 - de_attr->attr.attr.name = pt_caps[i].name;
24516 + *(const char **)&de_attr->attr.attr.name = pt_caps[i].name;
24517
24518 sysfs_attr_init(&de_attr->attr.attr);
24519
24520 - de_attr->attr.attr.mode = S_IRUGO;
24521 - de_attr->attr.show = pt_cap_show;
24522 - de_attr->var = (void *)i;
24523 + *(umode_t *)&de_attr->attr.attr.mode = S_IRUGO;
24524 + *(void **)&de_attr->attr.show = pt_cap_show;
24525 + *(void **)&de_attr->var = (void *)i;
24526
24527 attrs[i] = &de_attr->attr.attr;
24528 }
24529
24530 - pt_cap_group.attrs = attrs;
24531 + *(struct attribute ***)&pt_cap_group.attrs = attrs;
24532 + pax_close_kernel();
24533
24534 return 0;
24535 -
24536 -fail:
24537 - kfree(attrs);
24538 -
24539 - return ret;
24540 }
24541
24542 #define PT_CONFIG_MASK (RTIT_CTL_TSC_EN | RTIT_CTL_DISRETC)
24543 @@ -929,7 +911,7 @@ static void pt_event_start(struct perf_event *event, int mode)
24544 return;
24545 }
24546
24547 - ACCESS_ONCE(pt->handle_nmi) = 1;
24548 + ACCESS_ONCE_RW(pt->handle_nmi) = 1;
24549 event->hw.state = 0;
24550
24551 pt_config_buffer(buf->cur->table, buf->cur_idx,
24552 @@ -946,7 +928,7 @@ static void pt_event_stop(struct perf_event *event, int mode)
24553 * Protect against the PMI racing with disabling wrmsr,
24554 * see comment in intel_pt_interrupt().
24555 */
24556 - ACCESS_ONCE(pt->handle_nmi) = 0;
24557 + ACCESS_ONCE_RW(pt->handle_nmi) = 0;
24558 pt_config_start(false);
24559
24560 if (event->hw.state == PERF_HES_STOPPED)
24561 diff --git a/arch/x86/kernel/cpu/perf_event_intel_rapl.c b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24562 index 5cbd4e6..ee9388a 100644
24563 --- a/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24564 +++ b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24565 @@ -486,7 +486,7 @@ static struct attribute *rapl_events_hsw_attr[] = {
24566 NULL,
24567 };
24568
24569 -static struct attribute_group rapl_pmu_events_group = {
24570 +static attribute_group_no_const rapl_pmu_events_group __read_only = {
24571 .name = "events",
24572 .attrs = NULL, /* patched at runtime */
24573 };
24574 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24575 index 21b5e38..84f1f82 100644
24576 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24577 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24578 @@ -731,7 +731,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
24579 static int __init uncore_type_init(struct intel_uncore_type *type)
24580 {
24581 struct intel_uncore_pmu *pmus;
24582 - struct attribute_group *attr_group;
24583 + attribute_group_no_const *attr_group;
24584 struct attribute **attrs;
24585 int i, j;
24586
24587 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24588 index 0f77f0a..d3c6b7d 100644
24589 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24590 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24591 @@ -115,7 +115,7 @@ struct intel_uncore_box {
24592 struct uncore_event_desc {
24593 struct kobj_attribute attr;
24594 const char *config;
24595 -};
24596 +} __do_const;
24597
24598 ssize_t uncore_event_show(struct kobject *kobj,
24599 struct kobj_attribute *attr, char *buf);
24600 diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c
24601 index 83741a7..bd3507d 100644
24602 --- a/arch/x86/kernel/cpuid.c
24603 +++ b/arch/x86/kernel/cpuid.c
24604 @@ -170,7 +170,7 @@ static int cpuid_class_cpu_callback(struct notifier_block *nfb,
24605 return notifier_from_errno(err);
24606 }
24607
24608 -static struct notifier_block __refdata cpuid_class_cpu_notifier =
24609 +static struct notifier_block cpuid_class_cpu_notifier =
24610 {
24611 .notifier_call = cpuid_class_cpu_callback,
24612 };
24613 diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
24614 index afa64ad..dce67dd 100644
24615 --- a/arch/x86/kernel/crash_dump_64.c
24616 +++ b/arch/x86/kernel/crash_dump_64.c
24617 @@ -36,7 +36,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
24618 return -ENOMEM;
24619
24620 if (userbuf) {
24621 - if (copy_to_user(buf, vaddr + offset, csize)) {
24622 + if (copy_to_user((char __force_user *)buf, vaddr + offset, csize)) {
24623 iounmap(vaddr);
24624 return -EFAULT;
24625 }
24626 diff --git a/arch/x86/kernel/doublefault.c b/arch/x86/kernel/doublefault.c
24627 index f6dfd93..892ade4 100644
24628 --- a/arch/x86/kernel/doublefault.c
24629 +++ b/arch/x86/kernel/doublefault.c
24630 @@ -12,7 +12,7 @@
24631
24632 #define DOUBLEFAULT_STACKSIZE (1024)
24633 static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE];
24634 -#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE)
24635 +#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE-2)
24636
24637 #define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + MAXMEM)
24638
24639 @@ -22,7 +22,7 @@ static void doublefault_fn(void)
24640 unsigned long gdt, tss;
24641
24642 native_store_gdt(&gdt_desc);
24643 - gdt = gdt_desc.address;
24644 + gdt = (unsigned long)gdt_desc.address;
24645
24646 printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size);
24647
24648 @@ -59,10 +59,10 @@ struct tss_struct doublefault_tss __cacheline_aligned = {
24649 /* 0x2 bit is always set */
24650 .flags = X86_EFLAGS_SF | 0x2,
24651 .sp = STACK_START,
24652 - .es = __USER_DS,
24653 + .es = __KERNEL_DS,
24654 .cs = __KERNEL_CS,
24655 .ss = __KERNEL_DS,
24656 - .ds = __USER_DS,
24657 + .ds = __KERNEL_DS,
24658 .fs = __KERNEL_PERCPU,
24659
24660 .__cr3 = __pa_nodebug(swapper_pg_dir),
24661 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
24662 index 9c30acf..8cf2411 100644
24663 --- a/arch/x86/kernel/dumpstack.c
24664 +++ b/arch/x86/kernel/dumpstack.c
24665 @@ -2,6 +2,9 @@
24666 * Copyright (C) 1991, 1992 Linus Torvalds
24667 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
24668 */
24669 +#ifdef CONFIG_GRKERNSEC_HIDESYM
24670 +#define __INCLUDED_BY_HIDESYM 1
24671 +#endif
24672 #include <linux/kallsyms.h>
24673 #include <linux/kprobes.h>
24674 #include <linux/uaccess.h>
24675 @@ -35,23 +38,21 @@ static void printk_stack_address(unsigned long address, int reliable,
24676
24677 void printk_address(unsigned long address)
24678 {
24679 - pr_cont(" [<%p>] %pS\n", (void *)address, (void *)address);
24680 + pr_cont(" [<%p>] %pA\n", (void *)address, (void *)address);
24681 }
24682
24683 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
24684 static void
24685 print_ftrace_graph_addr(unsigned long addr, void *data,
24686 const struct stacktrace_ops *ops,
24687 - struct thread_info *tinfo, int *graph)
24688 + struct task_struct *task, int *graph)
24689 {
24690 - struct task_struct *task;
24691 unsigned long ret_addr;
24692 int index;
24693
24694 if (addr != (unsigned long)return_to_handler)
24695 return;
24696
24697 - task = tinfo->task;
24698 index = task->curr_ret_stack;
24699
24700 if (!task->ret_stack || index < *graph)
24701 @@ -68,7 +69,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24702 static inline void
24703 print_ftrace_graph_addr(unsigned long addr, void *data,
24704 const struct stacktrace_ops *ops,
24705 - struct thread_info *tinfo, int *graph)
24706 + struct task_struct *task, int *graph)
24707 { }
24708 #endif
24709
24710 @@ -79,10 +80,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24711 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
24712 */
24713
24714 -static inline int valid_stack_ptr(struct thread_info *tinfo,
24715 - void *p, unsigned int size, void *end)
24716 +static inline int valid_stack_ptr(void *t, void *p, unsigned int size, void *end)
24717 {
24718 - void *t = tinfo;
24719 if (end) {
24720 if (p < end && p >= (end-THREAD_SIZE))
24721 return 1;
24722 @@ -93,14 +92,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
24723 }
24724
24725 unsigned long
24726 -print_context_stack(struct thread_info *tinfo,
24727 +print_context_stack(struct task_struct *task, void *stack_start,
24728 unsigned long *stack, unsigned long bp,
24729 const struct stacktrace_ops *ops, void *data,
24730 unsigned long *end, int *graph)
24731 {
24732 struct stack_frame *frame = (struct stack_frame *)bp;
24733
24734 - while (valid_stack_ptr(tinfo, stack, sizeof(*stack), end)) {
24735 + while (valid_stack_ptr(stack_start, stack, sizeof(*stack), end)) {
24736 unsigned long addr;
24737
24738 addr = *stack;
24739 @@ -112,7 +111,7 @@ print_context_stack(struct thread_info *tinfo,
24740 } else {
24741 ops->address(data, addr, 0);
24742 }
24743 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24744 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24745 }
24746 stack++;
24747 }
24748 @@ -121,7 +120,7 @@ print_context_stack(struct thread_info *tinfo,
24749 EXPORT_SYMBOL_GPL(print_context_stack);
24750
24751 unsigned long
24752 -print_context_stack_bp(struct thread_info *tinfo,
24753 +print_context_stack_bp(struct task_struct *task, void *stack_start,
24754 unsigned long *stack, unsigned long bp,
24755 const struct stacktrace_ops *ops, void *data,
24756 unsigned long *end, int *graph)
24757 @@ -129,7 +128,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24758 struct stack_frame *frame = (struct stack_frame *)bp;
24759 unsigned long *ret_addr = &frame->return_address;
24760
24761 - while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) {
24762 + while (valid_stack_ptr(stack_start, ret_addr, sizeof(*ret_addr), end)) {
24763 unsigned long addr = *ret_addr;
24764
24765 if (!__kernel_text_address(addr))
24766 @@ -138,7 +137,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24767 ops->address(data, addr, 1);
24768 frame = frame->next_frame;
24769 ret_addr = &frame->return_address;
24770 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24771 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24772 }
24773
24774 return (unsigned long)frame;
24775 @@ -226,6 +225,8 @@ unsigned long oops_begin(void)
24776 EXPORT_SYMBOL_GPL(oops_begin);
24777 NOKPROBE_SYMBOL(oops_begin);
24778
24779 +extern void gr_handle_kernel_exploit(void);
24780 +
24781 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24782 {
24783 if (regs && kexec_should_crash(current))
24784 @@ -247,7 +248,10 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24785 panic("Fatal exception in interrupt");
24786 if (panic_on_oops)
24787 panic("Fatal exception");
24788 - do_exit(signr);
24789 +
24790 + gr_handle_kernel_exploit();
24791 +
24792 + do_group_exit(signr);
24793 }
24794 NOKPROBE_SYMBOL(oops_end);
24795
24796 diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
24797 index 464ffd6..01f2cda 100644
24798 --- a/arch/x86/kernel/dumpstack_32.c
24799 +++ b/arch/x86/kernel/dumpstack_32.c
24800 @@ -61,15 +61,14 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24801 bp = stack_frame(task, regs);
24802
24803 for (;;) {
24804 - struct thread_info *context;
24805 + void *stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24806 void *end_stack;
24807
24808 end_stack = is_hardirq_stack(stack, cpu);
24809 if (!end_stack)
24810 end_stack = is_softirq_stack(stack, cpu);
24811
24812 - context = task_thread_info(task);
24813 - bp = ops->walk_stack(context, stack, bp, ops, data,
24814 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data,
24815 end_stack, &graph);
24816
24817 /* Stop if not on irq stack */
24818 @@ -137,16 +136,17 @@ void show_regs(struct pt_regs *regs)
24819 unsigned int code_len = code_bytes;
24820 unsigned char c;
24821 u8 *ip;
24822 + unsigned long cs_base = get_desc_base(&get_cpu_gdt_table(0)[(0xffff & regs->cs) >> 3]);
24823
24824 pr_emerg("Stack:\n");
24825 show_stack_log_lvl(NULL, regs, &regs->sp, 0, KERN_EMERG);
24826
24827 pr_emerg("Code:");
24828
24829 - ip = (u8 *)regs->ip - code_prologue;
24830 + ip = (u8 *)regs->ip - code_prologue + cs_base;
24831 if (ip < (u8 *)PAGE_OFFSET || probe_kernel_address(ip, c)) {
24832 /* try starting at IP */
24833 - ip = (u8 *)regs->ip;
24834 + ip = (u8 *)regs->ip + cs_base;
24835 code_len = code_len - code_prologue + 1;
24836 }
24837 for (i = 0; i < code_len; i++, ip++) {
24838 @@ -155,7 +155,7 @@ void show_regs(struct pt_regs *regs)
24839 pr_cont(" Bad EIP value.");
24840 break;
24841 }
24842 - if (ip == (u8 *)regs->ip)
24843 + if (ip == (u8 *)regs->ip + cs_base)
24844 pr_cont(" <%02x>", c);
24845 else
24846 pr_cont(" %02x", c);
24847 @@ -168,6 +168,7 @@ int is_valid_bugaddr(unsigned long ip)
24848 {
24849 unsigned short ud2;
24850
24851 + ip = ktla_ktva(ip);
24852 if (ip < PAGE_OFFSET)
24853 return 0;
24854 if (probe_kernel_address((unsigned short *)ip, ud2))
24855 @@ -175,3 +176,15 @@ int is_valid_bugaddr(unsigned long ip)
24856
24857 return ud2 == 0x0b0f;
24858 }
24859 +
24860 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24861 +void __used pax_check_alloca(unsigned long size)
24862 +{
24863 + unsigned long sp = (unsigned long)&sp, stack_left;
24864 +
24865 + /* all kernel stacks are of the same size */
24866 + stack_left = sp & (THREAD_SIZE - 1);
24867 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24868 +}
24869 +EXPORT_SYMBOL(pax_check_alloca);
24870 +#endif
24871 diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
24872 index 5f1c626..1cba97e 100644
24873 --- a/arch/x86/kernel/dumpstack_64.c
24874 +++ b/arch/x86/kernel/dumpstack_64.c
24875 @@ -153,12 +153,12 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24876 const struct stacktrace_ops *ops, void *data)
24877 {
24878 const unsigned cpu = get_cpu();
24879 - struct thread_info *tinfo;
24880 unsigned long *irq_stack = (unsigned long *)per_cpu(irq_stack_ptr, cpu);
24881 unsigned long dummy;
24882 unsigned used = 0;
24883 int graph = 0;
24884 int done = 0;
24885 + void *stack_start;
24886
24887 if (!task)
24888 task = current;
24889 @@ -179,7 +179,6 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24890 * current stack address. If the stacks consist of nested
24891 * exceptions
24892 */
24893 - tinfo = task_thread_info(task);
24894 while (!done) {
24895 unsigned long *stack_end;
24896 enum stack_type stype;
24897 @@ -202,7 +201,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24898 if (ops->stack(data, id) < 0)
24899 break;
24900
24901 - bp = ops->walk_stack(tinfo, stack, bp, ops,
24902 + bp = ops->walk_stack(task, stack_end - EXCEPTION_STKSZ, stack, bp, ops,
24903 data, stack_end, &graph);
24904 ops->stack(data, "<EOE>");
24905 /*
24906 @@ -210,6 +209,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24907 * second-to-last pointer (index -2 to end) in the
24908 * exception stack:
24909 */
24910 + if ((u16)stack_end[-1] != __KERNEL_DS)
24911 + goto out;
24912 stack = (unsigned long *) stack_end[-2];
24913 done = 0;
24914 break;
24915 @@ -218,7 +219,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24916
24917 if (ops->stack(data, "IRQ") < 0)
24918 break;
24919 - bp = ops->walk_stack(tinfo, stack, bp,
24920 + bp = ops->walk_stack(task, irq_stack, stack, bp,
24921 ops, data, stack_end, &graph);
24922 /*
24923 * We link to the next stack (which would be
24924 @@ -240,7 +241,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24925 /*
24926 * This handles the process stack:
24927 */
24928 - bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
24929 + stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24930 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
24931 +out:
24932 put_cpu();
24933 }
24934 EXPORT_SYMBOL(dump_trace);
24935 @@ -347,8 +350,55 @@ int is_valid_bugaddr(unsigned long ip)
24936 {
24937 unsigned short ud2;
24938
24939 - if (__copy_from_user(&ud2, (const void __user *) ip, sizeof(ud2)))
24940 + if (probe_kernel_address((unsigned short *)ip, ud2))
24941 return 0;
24942
24943 return ud2 == 0x0b0f;
24944 }
24945 +
24946 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24947 +void __used pax_check_alloca(unsigned long size)
24948 +{
24949 + unsigned long sp = (unsigned long)&sp, stack_start, stack_end;
24950 + unsigned cpu, used;
24951 + char *id;
24952 +
24953 + /* check the process stack first */
24954 + stack_start = (unsigned long)task_stack_page(current);
24955 + stack_end = stack_start + THREAD_SIZE;
24956 + if (likely(stack_start <= sp && sp < stack_end)) {
24957 + unsigned long stack_left = sp & (THREAD_SIZE - 1);
24958 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24959 + return;
24960 + }
24961 +
24962 + cpu = get_cpu();
24963 +
24964 + /* check the irq stacks */
24965 + stack_end = (unsigned long)per_cpu(irq_stack_ptr, cpu);
24966 + stack_start = stack_end - IRQ_STACK_SIZE;
24967 + if (stack_start <= sp && sp < stack_end) {
24968 + unsigned long stack_left = sp & (IRQ_STACK_SIZE - 1);
24969 + put_cpu();
24970 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24971 + return;
24972 + }
24973 +
24974 + /* check the exception stacks */
24975 + used = 0;
24976 + stack_end = (unsigned long)in_exception_stack(cpu, sp, &used, &id);
24977 + stack_start = stack_end - EXCEPTION_STKSZ;
24978 + if (stack_end && stack_start <= sp && sp < stack_end) {
24979 + unsigned long stack_left = sp & (EXCEPTION_STKSZ - 1);
24980 + put_cpu();
24981 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24982 + return;
24983 + }
24984 +
24985 + put_cpu();
24986 +
24987 + /* unknown stack */
24988 + BUG();
24989 +}
24990 +EXPORT_SYMBOL(pax_check_alloca);
24991 +#endif
24992 diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
24993 index a102564..d1f0b73 100644
24994 --- a/arch/x86/kernel/e820.c
24995 +++ b/arch/x86/kernel/e820.c
24996 @@ -803,8 +803,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void)
24997
24998 static void early_panic(char *msg)
24999 {
25000 - early_printk(msg);
25001 - panic(msg);
25002 + early_printk("%s", msg);
25003 + panic("%s", msg);
25004 }
25005
25006 static int userdef __initdata;
25007 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
25008 index eec40f5..4fee808 100644
25009 --- a/arch/x86/kernel/early_printk.c
25010 +++ b/arch/x86/kernel/early_printk.c
25011 @@ -7,6 +7,7 @@
25012 #include <linux/pci_regs.h>
25013 #include <linux/pci_ids.h>
25014 #include <linux/errno.h>
25015 +#include <linux/sched.h>
25016 #include <asm/io.h>
25017 #include <asm/processor.h>
25018 #include <asm/fcntl.h>
25019 diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
25020 index ce95676..af5c012 100644
25021 --- a/arch/x86/kernel/espfix_64.c
25022 +++ b/arch/x86/kernel/espfix_64.c
25023 @@ -41,6 +41,7 @@
25024 #include <asm/pgalloc.h>
25025 #include <asm/setup.h>
25026 #include <asm/espfix.h>
25027 +#include <asm/bug.h>
25028
25029 /*
25030 * Note: we only need 6*8 = 48 bytes for the espfix stack, but round
25031 @@ -70,8 +71,10 @@ static DEFINE_MUTEX(espfix_init_mutex);
25032 #define ESPFIX_MAX_PAGES DIV_ROUND_UP(CONFIG_NR_CPUS, ESPFIX_STACKS_PER_PAGE)
25033 static void *espfix_pages[ESPFIX_MAX_PAGES];
25034
25035 -static __page_aligned_bss pud_t espfix_pud_page[PTRS_PER_PUD]
25036 - __aligned(PAGE_SIZE);
25037 +static __page_aligned_rodata pud_t espfix_pud_page[PTRS_PER_PUD];
25038 +static __page_aligned_rodata pmd_t espfix_pmd_page[PTRS_PER_PMD];
25039 +static __page_aligned_rodata pte_t espfix_pte_page[PTRS_PER_PTE];
25040 +static __page_aligned_rodata char espfix_stack_page[ESPFIX_MAX_PAGES][PAGE_SIZE];
25041
25042 static unsigned int page_random, slot_random;
25043
25044 @@ -122,10 +125,19 @@ static void init_espfix_random(void)
25045 void __init init_espfix_bsp(void)
25046 {
25047 pgd_t *pgd_p;
25048 + pud_t *pud_p;
25049 + unsigned long index = pgd_index(ESPFIX_BASE_ADDR);
25050
25051 /* Install the espfix pud into the kernel page directory */
25052 - pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
25053 - pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page);
25054 + pgd_p = &init_level4_pgt[index];
25055 + pud_p = espfix_pud_page;
25056 + paravirt_alloc_pud(&init_mm, __pa(pud_p) >> PAGE_SHIFT);
25057 + set_pgd(pgd_p, __pgd(PGTABLE_PROT | __pa(pud_p)));
25058 +
25059 +#ifdef CONFIG_PAX_PER_CPU_PGD
25060 + clone_pgd_range(get_cpu_pgd(0, kernel) + index, swapper_pg_dir + index, 1);
25061 + clone_pgd_range(get_cpu_pgd(0, user) + index, swapper_pg_dir + index, 1);
25062 +#endif
25063
25064 /* Randomize the locations */
25065 init_espfix_random();
25066 @@ -170,35 +182,39 @@ void init_espfix_ap(int cpu)
25067 pud_p = &espfix_pud_page[pud_index(addr)];
25068 pud = *pud_p;
25069 if (!pud_present(pud)) {
25070 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
25071 -
25072 - pmd_p = (pmd_t *)page_address(page);
25073 + if (cpu)
25074 + pmd_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
25075 + else
25076 + pmd_p = espfix_pmd_page;
25077 pud = __pud(__pa(pmd_p) | (PGTABLE_PROT & ptemask));
25078 paravirt_alloc_pmd(&init_mm, __pa(pmd_p) >> PAGE_SHIFT);
25079 for (n = 0; n < ESPFIX_PUD_CLONES; n++)
25080 set_pud(&pud_p[n], pud);
25081 - }
25082 + } else
25083 + BUG_ON(!cpu);
25084
25085 pmd_p = pmd_offset(&pud, addr);
25086 pmd = *pmd_p;
25087 if (!pmd_present(pmd)) {
25088 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
25089 -
25090 - pte_p = (pte_t *)page_address(page);
25091 + if (cpu)
25092 + pte_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
25093 + else
25094 + pte_p = espfix_pte_page;
25095 pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask));
25096 paravirt_alloc_pte(&init_mm, __pa(pte_p) >> PAGE_SHIFT);
25097 for (n = 0; n < ESPFIX_PMD_CLONES; n++)
25098 set_pmd(&pmd_p[n], pmd);
25099 - }
25100 + } else
25101 + BUG_ON(!cpu);
25102
25103 pte_p = pte_offset_kernel(&pmd, addr);
25104 - stack_page = page_address(alloc_pages_node(node, GFP_KERNEL, 0));
25105 + stack_page = espfix_stack_page[page];
25106 pte = __pte(__pa(stack_page) | (__PAGE_KERNEL_RO & ptemask));
25107 for (n = 0; n < ESPFIX_PTE_CLONES; n++)
25108 set_pte(&pte_p[n*PTE_STRIDE], pte);
25109
25110 /* Job is done for this CPU and any CPU which shares this page */
25111 - ACCESS_ONCE(espfix_pages[page]) = stack_page;
25112 + ACCESS_ONCE_RW(espfix_pages[page]) = stack_page;
25113
25114 unlock_done:
25115 mutex_unlock(&espfix_init_mutex);
25116 diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
25117 index d25097c..e2df353 100644
25118 --- a/arch/x86/kernel/fpu/core.c
25119 +++ b/arch/x86/kernel/fpu/core.c
25120 @@ -127,7 +127,7 @@ void __kernel_fpu_end(void)
25121 struct fpu *fpu = &current->thread.fpu;
25122
25123 if (fpu->fpregs_active)
25124 - copy_kernel_to_fpregs(&fpu->state);
25125 + copy_kernel_to_fpregs(fpu->state);
25126 else
25127 __fpregs_deactivate_hw();
25128
25129 @@ -238,7 +238,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
25130 * leak into the child task:
25131 */
25132 if (use_eager_fpu())
25133 - memset(&dst_fpu->state.xsave, 0, xstate_size);
25134 + memset(&dst_fpu->state->xsave, 0, xstate_size);
25135
25136 /*
25137 * Save current FPU registers directly into the child
25138 @@ -258,7 +258,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
25139 */
25140 preempt_disable();
25141 if (!copy_fpregs_to_fpstate(dst_fpu)) {
25142 - memcpy(&src_fpu->state, &dst_fpu->state, xstate_size);
25143 + memcpy(src_fpu->state, dst_fpu->state, xstate_size);
25144 fpregs_deactivate(src_fpu);
25145 }
25146 preempt_enable();
25147 @@ -285,7 +285,7 @@ void fpu__activate_curr(struct fpu *fpu)
25148 WARN_ON_FPU(fpu != &current->thread.fpu);
25149
25150 if (!fpu->fpstate_active) {
25151 - fpstate_init(&fpu->state);
25152 + fpstate_init(fpu->state);
25153
25154 /* Safe to do for the current task: */
25155 fpu->fpstate_active = 1;
25156 @@ -311,7 +311,7 @@ void fpu__activate_fpstate_read(struct fpu *fpu)
25157 fpu__save(fpu);
25158 } else {
25159 if (!fpu->fpstate_active) {
25160 - fpstate_init(&fpu->state);
25161 + fpstate_init(fpu->state);
25162
25163 /* Safe to do for current and for stopped child tasks: */
25164 fpu->fpstate_active = 1;
25165 @@ -344,7 +344,7 @@ void fpu__activate_fpstate_write(struct fpu *fpu)
25166 /* Invalidate any lazy state: */
25167 fpu->last_cpu = -1;
25168 } else {
25169 - fpstate_init(&fpu->state);
25170 + fpstate_init(fpu->state);
25171
25172 /* Safe to do for stopped child tasks: */
25173 fpu->fpstate_active = 1;
25174 @@ -368,7 +368,7 @@ void fpu__restore(struct fpu *fpu)
25175 /* Avoid __kernel_fpu_begin() right after fpregs_activate() */
25176 kernel_fpu_disable();
25177 fpregs_activate(fpu);
25178 - copy_kernel_to_fpregs(&fpu->state);
25179 + copy_kernel_to_fpregs(fpu->state);
25180 fpu->counter++;
25181 kernel_fpu_enable();
25182 }
25183 @@ -442,25 +442,25 @@ void fpu__clear(struct fpu *fpu)
25184 static inline unsigned short get_fpu_cwd(struct fpu *fpu)
25185 {
25186 if (cpu_has_fxsr) {
25187 - return fpu->state.fxsave.cwd;
25188 + return fpu->state->fxsave.cwd;
25189 } else {
25190 - return (unsigned short)fpu->state.fsave.cwd;
25191 + return (unsigned short)fpu->state->fsave.cwd;
25192 }
25193 }
25194
25195 static inline unsigned short get_fpu_swd(struct fpu *fpu)
25196 {
25197 if (cpu_has_fxsr) {
25198 - return fpu->state.fxsave.swd;
25199 + return fpu->state->fxsave.swd;
25200 } else {
25201 - return (unsigned short)fpu->state.fsave.swd;
25202 + return (unsigned short)fpu->state->fsave.swd;
25203 }
25204 }
25205
25206 static inline unsigned short get_fpu_mxcsr(struct fpu *fpu)
25207 {
25208 if (cpu_has_xmm) {
25209 - return fpu->state.fxsave.mxcsr;
25210 + return fpu->state->fxsave.mxcsr;
25211 } else {
25212 return MXCSR_DEFAULT;
25213 }
25214 diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
25215 index d14e9ac..13442f0 100644
25216 --- a/arch/x86/kernel/fpu/init.c
25217 +++ b/arch/x86/kernel/fpu/init.c
25218 @@ -42,7 +42,7 @@ static void fpu__init_cpu_generic(void)
25219 /* Flush out any pending x87 state: */
25220 #ifdef CONFIG_MATH_EMULATION
25221 if (!cpu_has_fpu)
25222 - fpstate_init_soft(&current->thread.fpu.state.soft);
25223 + fpstate_init_soft(&current->thread.fpu.state->soft);
25224 else
25225 #endif
25226 asm volatile ("fninit");
25227 @@ -143,42 +143,7 @@ static void __init fpu__init_system_generic(void)
25228 unsigned int xstate_size;
25229 EXPORT_SYMBOL_GPL(xstate_size);
25230
25231 -/* Enforce that 'MEMBER' is the last field of 'TYPE': */
25232 -#define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
25233 - BUILD_BUG_ON(sizeof(TYPE) != offsetofend(TYPE, MEMBER))
25234 -
25235 -/*
25236 - * We append the 'struct fpu' to the task_struct:
25237 - */
25238 -static void __init fpu__init_task_struct_size(void)
25239 -{
25240 - int task_size = sizeof(struct task_struct);
25241 -
25242 - /*
25243 - * Subtract off the static size of the register state.
25244 - * It potentially has a bunch of padding.
25245 - */
25246 - task_size -= sizeof(((struct task_struct *)0)->thread.fpu.state);
25247 -
25248 - /*
25249 - * Add back the dynamically-calculated register state
25250 - * size.
25251 - */
25252 - task_size += xstate_size;
25253 -
25254 - /*
25255 - * We dynamically size 'struct fpu', so we require that
25256 - * it be at the end of 'thread_struct' and that
25257 - * 'thread_struct' be at the end of 'task_struct'. If
25258 - * you hit a compile error here, check the structure to
25259 - * see if something got added to the end.
25260 - */
25261 - CHECK_MEMBER_AT_END_OF(struct fpu, state);
25262 - CHECK_MEMBER_AT_END_OF(struct thread_struct, fpu);
25263 - CHECK_MEMBER_AT_END_OF(struct task_struct, thread);
25264 -
25265 - arch_task_struct_size = task_size;
25266 -}
25267 +union fpregs_state init_fpregs_state;
25268
25269 /*
25270 * Set up the xstate_size based on the legacy FPU context size.
25271 @@ -331,7 +296,6 @@ void __init fpu__init_system(struct cpuinfo_x86 *c)
25272 fpu__init_system_generic();
25273 fpu__init_system_xstate_size_legacy();
25274 fpu__init_system_xstate();
25275 - fpu__init_task_struct_size();
25276
25277 fpu__init_system_ctx_switch();
25278 }
25279 diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
25280 index dc60810..6c8a1fa 100644
25281 --- a/arch/x86/kernel/fpu/regset.c
25282 +++ b/arch/x86/kernel/fpu/regset.c
25283 @@ -37,7 +37,7 @@ int xfpregs_get(struct task_struct *target, const struct user_regset *regset,
25284 fpstate_sanitize_xstate(fpu);
25285
25286 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
25287 - &fpu->state.fxsave, 0, -1);
25288 + &fpu->state->fxsave, 0, -1);
25289 }
25290
25291 int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
25292 @@ -54,19 +54,19 @@ int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
25293 fpstate_sanitize_xstate(fpu);
25294
25295 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
25296 - &fpu->state.fxsave, 0, -1);
25297 + &fpu->state->fxsave, 0, -1);
25298
25299 /*
25300 * mxcsr reserved bits must be masked to zero for security reasons.
25301 */
25302 - fpu->state.fxsave.mxcsr &= mxcsr_feature_mask;
25303 + fpu->state->fxsave.mxcsr &= mxcsr_feature_mask;
25304
25305 /*
25306 * update the header bits in the xsave header, indicating the
25307 * presence of FP and SSE state.
25308 */
25309 if (cpu_has_xsave)
25310 - fpu->state.xsave.header.xfeatures |= XSTATE_FPSSE;
25311 + fpu->state->xsave.header.xfeatures |= XSTATE_FPSSE;
25312
25313 return ret;
25314 }
25315 @@ -84,7 +84,7 @@ int xstateregs_get(struct task_struct *target, const struct user_regset *regset,
25316
25317 fpu__activate_fpstate_read(fpu);
25318
25319 - xsave = &fpu->state.xsave;
25320 + xsave = &fpu->state->xsave;
25321
25322 /*
25323 * Copy the 48bytes defined by the software first into the xstate
25324 @@ -113,7 +113,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,
25325
25326 fpu__activate_fpstate_write(fpu);
25327
25328 - xsave = &fpu->state.xsave;
25329 + xsave = &fpu->state->xsave;
25330
25331 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, xsave, 0, -1);
25332 /*
25333 @@ -204,7 +204,7 @@ static inline u32 twd_fxsr_to_i387(struct fxregs_state *fxsave)
25334 void
25335 convert_from_fxsr(struct user_i387_ia32_struct *env, struct task_struct *tsk)
25336 {
25337 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
25338 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
25339 struct _fpreg *to = (struct _fpreg *) &env->st_space[0];
25340 struct _fpxreg *from = (struct _fpxreg *) &fxsave->st_space[0];
25341 int i;
25342 @@ -242,7 +242,7 @@ void convert_to_fxsr(struct task_struct *tsk,
25343 const struct user_i387_ia32_struct *env)
25344
25345 {
25346 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
25347 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
25348 struct _fpreg *from = (struct _fpreg *) &env->st_space[0];
25349 struct _fpxreg *to = (struct _fpxreg *) &fxsave->st_space[0];
25350 int i;
25351 @@ -280,7 +280,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
25352
25353 if (!cpu_has_fxsr)
25354 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
25355 - &fpu->state.fsave, 0,
25356 + &fpu->state->fsave, 0,
25357 -1);
25358
25359 fpstate_sanitize_xstate(fpu);
25360 @@ -311,7 +311,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
25361
25362 if (!cpu_has_fxsr)
25363 return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
25364 - &fpu->state.fsave, 0,
25365 + &fpu->state->fsave, 0,
25366 -1);
25367
25368 if (pos > 0 || count < sizeof(env))
25369 @@ -326,7 +326,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
25370 * presence of FP.
25371 */
25372 if (cpu_has_xsave)
25373 - fpu->state.xsave.header.xfeatures |= XSTATE_FP;
25374 + fpu->state->xsave.header.xfeatures |= XSTATE_FP;
25375 return ret;
25376 }
25377
25378 diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
25379 index 50ec9af..32d7f10 100644
25380 --- a/arch/x86/kernel/fpu/signal.c
25381 +++ b/arch/x86/kernel/fpu/signal.c
25382 @@ -54,7 +54,7 @@ static inline int check_for_xstate(struct fxregs_state __user *buf,
25383 static inline int save_fsave_header(struct task_struct *tsk, void __user *buf)
25384 {
25385 if (use_fxsr()) {
25386 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25387 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25388 struct user_i387_ia32_struct env;
25389 struct _fpstate_ia32 __user *fp = buf;
25390
25391 @@ -83,18 +83,18 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25392
25393 /* Setup the bytes not touched by the [f]xsave and reserved for SW. */
25394 sw_bytes = ia32_frame ? &fx_sw_reserved_ia32 : &fx_sw_reserved;
25395 - err = __copy_to_user(&x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
25396 + err = __copy_to_user(x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
25397
25398 if (!use_xsave())
25399 return err;
25400
25401 - err |= __put_user(FP_XSTATE_MAGIC2, (__u32 *)(buf + xstate_size));
25402 + err |= __put_user(FP_XSTATE_MAGIC2, (__u32 __user *)(buf + xstate_size));
25403
25404 /*
25405 * Read the xfeatures which we copied (directly from the cpu or
25406 * from the state in task struct) to the user buffers.
25407 */
25408 - err |= __get_user(xfeatures, (__u32 *)&x->header.xfeatures);
25409 + err |= __get_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25410
25411 /*
25412 * For legacy compatible, we always set FP/SSE bits in the bit
25413 @@ -109,7 +109,7 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25414 */
25415 xfeatures |= XSTATE_FPSSE;
25416
25417 - err |= __put_user(xfeatures, (__u32 *)&x->header.xfeatures);
25418 + err |= __put_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25419
25420 return err;
25421 }
25422 @@ -118,6 +118,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25423 {
25424 int err;
25425
25426 + buf = (struct xregs_state __user *)____m(buf);
25427 if (use_xsave())
25428 err = copy_xregs_to_user(buf);
25429 else if (use_fxsr())
25430 @@ -152,7 +153,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25431 */
25432 int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size)
25433 {
25434 - struct xregs_state *xsave = &current->thread.fpu.state.xsave;
25435 + struct xregs_state *xsave = &current->thread.fpu.state->xsave;
25436 struct task_struct *tsk = current;
25437 int ia32_fxstate = (buf != buf_fx);
25438
25439 @@ -195,7 +196,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25440 struct user_i387_ia32_struct *ia32_env,
25441 u64 xfeatures, int fx_only)
25442 {
25443 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25444 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25445 struct xstate_header *header = &xsave->header;
25446
25447 if (use_xsave()) {
25448 @@ -228,6 +229,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25449 */
25450 static inline int copy_user_to_fpregs_zeroing(void __user *buf, u64 xbv, int fx_only)
25451 {
25452 + buf = (void __user *)____m(buf);
25453 if (use_xsave()) {
25454 if ((unsigned long)buf % 64 || fx_only) {
25455 u64 init_bv = xfeatures_mask & ~XSTATE_FPSSE;
25456 @@ -308,9 +310,9 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
25457 */
25458 fpu__drop(fpu);
25459
25460 - if (__copy_from_user(&fpu->state.xsave, buf_fx, state_size) ||
25461 + if (__copy_from_user(&fpu->state->xsave, buf_fx, state_size) ||
25462 __copy_from_user(&env, buf, sizeof(env))) {
25463 - fpstate_init(&fpu->state);
25464 + fpstate_init(fpu->state);
25465 err = -1;
25466 } else {
25467 sanitize_restored_xstate(tsk, &env, xfeatures, fx_only);
25468 @@ -385,20 +387,19 @@ fpu__alloc_mathframe(unsigned long sp, int ia32_frame,
25469 */
25470 void fpu__init_prepare_fx_sw_frame(void)
25471 {
25472 - int fsave_header_size = sizeof(struct fregs_state);
25473 int size = xstate_size + FP_XSTATE_MAGIC2_SIZE;
25474
25475 - if (config_enabled(CONFIG_X86_32))
25476 - size += fsave_header_size;
25477 -
25478 fx_sw_reserved.magic1 = FP_XSTATE_MAGIC1;
25479 fx_sw_reserved.extended_size = size;
25480 fx_sw_reserved.xfeatures = xfeatures_mask;
25481 fx_sw_reserved.xstate_size = xstate_size;
25482
25483 - if (config_enabled(CONFIG_IA32_EMULATION)) {
25484 + if (config_enabled(CONFIG_IA32_EMULATION) ||
25485 + config_enabled(CONFIG_X86_32)) {
25486 + int fsave_header_size = sizeof(struct fregs_state);
25487 +
25488 fx_sw_reserved_ia32 = fx_sw_reserved;
25489 - fx_sw_reserved_ia32.extended_size += fsave_header_size;
25490 + fx_sw_reserved_ia32.extended_size = size + fsave_header_size;
25491 }
25492 }
25493
25494 diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
25495 index 62fc001..099cbd7 100644
25496 --- a/arch/x86/kernel/fpu/xstate.c
25497 +++ b/arch/x86/kernel/fpu/xstate.c
25498 @@ -93,14 +93,14 @@ EXPORT_SYMBOL_GPL(cpu_has_xfeatures);
25499 */
25500 void fpstate_sanitize_xstate(struct fpu *fpu)
25501 {
25502 - struct fxregs_state *fx = &fpu->state.fxsave;
25503 + struct fxregs_state *fx = &fpu->state->fxsave;
25504 int feature_bit;
25505 u64 xfeatures;
25506
25507 if (!use_xsaveopt())
25508 return;
25509
25510 - xfeatures = fpu->state.xsave.header.xfeatures;
25511 + xfeatures = fpu->state->xsave.header.xfeatures;
25512
25513 /*
25514 * None of the feature bits are in init state. So nothing else
25515 @@ -402,7 +402,6 @@ void *get_xsave_addr(struct xregs_state *xsave, int xstate_feature)
25516 if (!boot_cpu_has(X86_FEATURE_XSAVE))
25517 return NULL;
25518
25519 - xsave = &current->thread.fpu.state.xsave;
25520 /*
25521 * We should not ever be requesting features that we
25522 * have not enabled. Remember that pcntxt_mask is
25523 @@ -457,5 +456,5 @@ const void *get_xsave_field_ptr(int xsave_state)
25524 */
25525 fpu__save(fpu);
25526
25527 - return get_xsave_addr(&fpu->state.xsave, xsave_state);
25528 + return get_xsave_addr(&fpu->state->xsave, xsave_state);
25529 }
25530 diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
25531 index 8b7b0a5..02219db 100644
25532 --- a/arch/x86/kernel/ftrace.c
25533 +++ b/arch/x86/kernel/ftrace.c
25534 @@ -89,7 +89,7 @@ static unsigned long text_ip_addr(unsigned long ip)
25535 * kernel identity mapping to modify code.
25536 */
25537 if (within(ip, (unsigned long)_text, (unsigned long)_etext))
25538 - ip = (unsigned long)__va(__pa_symbol(ip));
25539 + ip = (unsigned long)__va(__pa_symbol(ktla_ktva(ip)));
25540
25541 return ip;
25542 }
25543 @@ -105,6 +105,8 @@ ftrace_modify_code_direct(unsigned long ip, unsigned const char *old_code,
25544 {
25545 unsigned char replaced[MCOUNT_INSN_SIZE];
25546
25547 + ip = ktla_ktva(ip);
25548 +
25549 /*
25550 * Note: Due to modules and __init, code can
25551 * disappear and change, we need to protect against faulting
25552 @@ -230,7 +232,7 @@ static int update_ftrace_func(unsigned long ip, void *new)
25553 unsigned char old[MCOUNT_INSN_SIZE];
25554 int ret;
25555
25556 - memcpy(old, (void *)ip, MCOUNT_INSN_SIZE);
25557 + memcpy(old, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE);
25558
25559 ftrace_update_func = ip;
25560 /* Make sure the breakpoints see the ftrace_update_func update */
25561 @@ -311,7 +313,7 @@ static int add_break(unsigned long ip, const char *old)
25562 unsigned char replaced[MCOUNT_INSN_SIZE];
25563 unsigned char brk = BREAKPOINT_INSTRUCTION;
25564
25565 - if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE))
25566 + if (probe_kernel_read(replaced, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE))
25567 return -EFAULT;
25568
25569 /* Make sure it is what we expect it to be */
25570 @@ -670,11 +672,11 @@ static unsigned char *ftrace_jmp_replace(unsigned long ip, unsigned long addr)
25571 /* Module allocation simplifies allocating memory for code */
25572 static inline void *alloc_tramp(unsigned long size)
25573 {
25574 - return module_alloc(size);
25575 + return module_alloc_exec(size);
25576 }
25577 static inline void tramp_free(void *tramp)
25578 {
25579 - module_memfree(tramp);
25580 + module_memfree_exec(tramp);
25581 }
25582 #else
25583 /* Trampolines can only be created if modules are supported */
25584 @@ -753,7 +755,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25585 *tramp_size = size + MCOUNT_INSN_SIZE + sizeof(void *);
25586
25587 /* Copy ftrace_caller onto the trampoline memory */
25588 + pax_open_kernel();
25589 ret = probe_kernel_read(trampoline, (void *)start_offset, size);
25590 + pax_close_kernel();
25591 if (WARN_ON(ret < 0)) {
25592 tramp_free(trampoline);
25593 return 0;
25594 @@ -763,6 +767,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25595
25596 /* The trampoline ends with a jmp to ftrace_return */
25597 jmp = ftrace_jmp_replace(ip, (unsigned long)ftrace_return);
25598 + pax_open_kernel();
25599 memcpy(trampoline + size, jmp, MCOUNT_INSN_SIZE);
25600
25601 /*
25602 @@ -775,6 +780,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25603
25604 ptr = (unsigned long *)(trampoline + size + MCOUNT_INSN_SIZE);
25605 *ptr = (unsigned long)ops;
25606 + pax_close_kernel();
25607
25608 op_offset -= start_offset;
25609 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE);
25610 @@ -792,7 +798,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25611 op_ptr.offset = offset;
25612
25613 /* put in the new offset to the ftrace_ops */
25614 + pax_open_kernel();
25615 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE);
25616 + pax_close_kernel();
25617
25618 /* ALLOC_TRAMP flags lets us know we created it */
25619 ops->flags |= FTRACE_OPS_FL_ALLOC_TRAMP;
25620 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
25621 index f129a9a..af8f6da 100644
25622 --- a/arch/x86/kernel/head64.c
25623 +++ b/arch/x86/kernel/head64.c
25624 @@ -68,12 +68,12 @@ again:
25625 pgd = *pgd_p;
25626
25627 /*
25628 - * The use of __START_KERNEL_map rather than __PAGE_OFFSET here is
25629 - * critical -- __PAGE_OFFSET would point us back into the dynamic
25630 + * The use of __early_va rather than __va here is critical:
25631 + * __va would point us back into the dynamic
25632 * range and we might end up looping forever...
25633 */
25634 if (pgd)
25635 - pud_p = (pudval_t *)((pgd & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25636 + pud_p = (pudval_t *)(__early_va(pgd & PTE_PFN_MASK));
25637 else {
25638 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25639 reset_early_page_tables();
25640 @@ -83,13 +83,13 @@ again:
25641 pud_p = (pudval_t *)early_dynamic_pgts[next_early_pgt++];
25642 for (i = 0; i < PTRS_PER_PUD; i++)
25643 pud_p[i] = 0;
25644 - *pgd_p = (pgdval_t)pud_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25645 + *pgd_p = (pgdval_t)__pa(pud_p) + _KERNPG_TABLE;
25646 }
25647 pud_p += pud_index(address);
25648 pud = *pud_p;
25649
25650 if (pud)
25651 - pmd_p = (pmdval_t *)((pud & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25652 + pmd_p = (pmdval_t *)(__early_va(pud & PTE_PFN_MASK));
25653 else {
25654 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25655 reset_early_page_tables();
25656 @@ -99,7 +99,7 @@ again:
25657 pmd_p = (pmdval_t *)early_dynamic_pgts[next_early_pgt++];
25658 for (i = 0; i < PTRS_PER_PMD; i++)
25659 pmd_p[i] = 0;
25660 - *pud_p = (pudval_t)pmd_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25661 + *pud_p = (pudval_t)__pa(pmd_p) + _KERNPG_TABLE;
25662 }
25663 pmd = (physaddr & PMD_MASK) + early_pmd_flags;
25664 pmd_p[pmd_index(address)] = pmd;
25665 @@ -163,8 +163,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
25666
25667 clear_bss();
25668
25669 - clear_page(init_level4_pgt);
25670 -
25671 kasan_early_init();
25672
25673 for (i = 0; i < NUM_EXCEPTION_VECTORS; i++)
25674 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
25675 index 0e2d96f..5889003 100644
25676 --- a/arch/x86/kernel/head_32.S
25677 +++ b/arch/x86/kernel/head_32.S
25678 @@ -27,6 +27,12 @@
25679 /* Physical address */
25680 #define pa(X) ((X) - __PAGE_OFFSET)
25681
25682 +#ifdef CONFIG_PAX_KERNEXEC
25683 +#define ta(X) (X)
25684 +#else
25685 +#define ta(X) ((X) - __PAGE_OFFSET)
25686 +#endif
25687 +
25688 /*
25689 * References to members of the new_cpu_data structure.
25690 */
25691 @@ -56,11 +62,7 @@
25692 * and small than max_low_pfn, otherwise will waste some page table entries
25693 */
25694
25695 -#if PTRS_PER_PMD > 1
25696 -#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
25697 -#else
25698 -#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
25699 -#endif
25700 +#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PTE)
25701
25702 /*
25703 * Number of possible pages in the lowmem region.
25704 @@ -86,6 +88,12 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE
25705 RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25706
25707 /*
25708 + * Real beginning of normal "text" segment
25709 + */
25710 +ENTRY(stext)
25711 +ENTRY(_stext)
25712 +
25713 +/*
25714 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
25715 * %esi points to the real-mode code as a 32-bit pointer.
25716 * CS and DS must be 4 GB flat segments, but we don't depend on
25717 @@ -93,6 +101,13 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25718 * can.
25719 */
25720 __HEAD
25721 +
25722 +#ifdef CONFIG_PAX_KERNEXEC
25723 + jmp startup_32
25724 +/* PaX: fill first page in .text with int3 to catch NULL derefs in kernel mode */
25725 +.fill PAGE_SIZE-5,1,0xcc
25726 +#endif
25727 +
25728 ENTRY(startup_32)
25729 movl pa(stack_start),%ecx
25730
25731 @@ -114,6 +129,66 @@ ENTRY(startup_32)
25732 2:
25733 leal -__PAGE_OFFSET(%ecx),%esp
25734
25735 +#ifdef CONFIG_SMP
25736 + movl $pa(cpu_gdt_table),%edi
25737 + movl $__per_cpu_load,%eax
25738 + movw %ax,GDT_ENTRY_PERCPU * 8 + 2(%edi)
25739 + rorl $16,%eax
25740 + movb %al,GDT_ENTRY_PERCPU * 8 + 4(%edi)
25741 + movb %ah,GDT_ENTRY_PERCPU * 8 + 7(%edi)
25742 + movl $__per_cpu_end - 1,%eax
25743 + subl $__per_cpu_start,%eax
25744 + cmpl $0x100000,%eax
25745 + jb 1f
25746 + shrl $PAGE_SHIFT,%eax
25747 + orb $0x80,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25748 +1:
25749 + movw %ax,GDT_ENTRY_PERCPU * 8 + 0(%edi)
25750 + shrl $16,%eax
25751 + orb %al,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25752 +#endif
25753 +
25754 +#ifdef CONFIG_PAX_MEMORY_UDEREF
25755 + movl $NR_CPUS,%ecx
25756 + movl $pa(cpu_gdt_table),%edi
25757 +1:
25758 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c09700),GDT_ENTRY_KERNEL_DS * 8 + 4(%edi)
25759 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0fb00),GDT_ENTRY_DEFAULT_USER_CS * 8 + 4(%edi)
25760 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0f300),GDT_ENTRY_DEFAULT_USER_DS * 8 + 4(%edi)
25761 + addl $PAGE_SIZE_asm,%edi
25762 + loop 1b
25763 +#endif
25764 +
25765 +#ifdef CONFIG_PAX_KERNEXEC
25766 + movl $pa(boot_gdt),%edi
25767 + movl $__LOAD_PHYSICAL_ADDR,%eax
25768 + movw %ax,GDT_ENTRY_BOOT_CS * 8 + 2(%edi)
25769 + rorl $16,%eax
25770 + movb %al,GDT_ENTRY_BOOT_CS * 8 + 4(%edi)
25771 + movb %ah,GDT_ENTRY_BOOT_CS * 8 + 7(%edi)
25772 + rorl $16,%eax
25773 +
25774 + ljmp $(__BOOT_CS),$1f
25775 +1:
25776 +
25777 + movl $NR_CPUS,%ecx
25778 + movl $pa(cpu_gdt_table),%edi
25779 + addl $__PAGE_OFFSET,%eax
25780 +1:
25781 + movb $0xc0,GDT_ENTRY_KERNEL_CS * 8 + 6(%edi)
25782 + movb $0xc0,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 6(%edi)
25783 + movw %ax,GDT_ENTRY_KERNEL_CS * 8 + 2(%edi)
25784 + movw %ax,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 2(%edi)
25785 + rorl $16,%eax
25786 + movb %al,GDT_ENTRY_KERNEL_CS * 8 + 4(%edi)
25787 + movb %al,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 4(%edi)
25788 + movb %ah,GDT_ENTRY_KERNEL_CS * 8 + 7(%edi)
25789 + movb %ah,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 7(%edi)
25790 + rorl $16,%eax
25791 + addl $PAGE_SIZE_asm,%edi
25792 + loop 1b
25793 +#endif
25794 +
25795 /*
25796 * Clear BSS first so that there are no surprises...
25797 */
25798 @@ -209,8 +284,11 @@ ENTRY(startup_32)
25799 movl %eax, pa(max_pfn_mapped)
25800
25801 /* Do early initialization of the fixmap area */
25802 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25803 - movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
25804 +#ifdef CONFIG_COMPAT_VDSO
25805 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_pg_pmd+0x1000*KPMDS-8)
25806 +#else
25807 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_pg_pmd+0x1000*KPMDS-8)
25808 +#endif
25809 #else /* Not PAE */
25810
25811 page_pde_offset = (__PAGE_OFFSET >> 20);
25812 @@ -240,8 +318,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25813 movl %eax, pa(max_pfn_mapped)
25814
25815 /* Do early initialization of the fixmap area */
25816 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25817 - movl %eax,pa(initial_page_table+0xffc)
25818 +#ifdef CONFIG_COMPAT_VDSO
25819 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_page_table+0xffc)
25820 +#else
25821 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_page_table+0xffc)
25822 +#endif
25823 #endif
25824
25825 #ifdef CONFIG_PARAVIRT
25826 @@ -255,9 +336,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25827 cmpl $num_subarch_entries, %eax
25828 jae bad_subarch
25829
25830 - movl pa(subarch_entries)(,%eax,4), %eax
25831 - subl $__PAGE_OFFSET, %eax
25832 - jmp *%eax
25833 + jmp *pa(subarch_entries)(,%eax,4)
25834
25835 bad_subarch:
25836 WEAK(lguest_entry)
25837 @@ -269,10 +348,10 @@ WEAK(xen_entry)
25838 __INITDATA
25839
25840 subarch_entries:
25841 - .long default_entry /* normal x86/PC */
25842 - .long lguest_entry /* lguest hypervisor */
25843 - .long xen_entry /* Xen hypervisor */
25844 - .long default_entry /* Moorestown MID */
25845 + .long ta(default_entry) /* normal x86/PC */
25846 + .long ta(lguest_entry) /* lguest hypervisor */
25847 + .long ta(xen_entry) /* Xen hypervisor */
25848 + .long ta(default_entry) /* Moorestown MID */
25849 num_subarch_entries = (. - subarch_entries) / 4
25850 .previous
25851 #else
25852 @@ -362,6 +441,7 @@ default_entry:
25853 movl pa(mmu_cr4_features),%eax
25854 movl %eax,%cr4
25855
25856 +#ifdef CONFIG_X86_PAE
25857 testb $X86_CR4_PAE, %al # check if PAE is enabled
25858 jz enable_paging
25859
25860 @@ -390,6 +470,9 @@ default_entry:
25861 /* Make changes effective */
25862 wrmsr
25863
25864 + btsl $_PAGE_BIT_NX-32,pa(__supported_pte_mask+4)
25865 +#endif
25866 +
25867 enable_paging:
25868
25869 /*
25870 @@ -457,14 +540,20 @@ is486:
25871 1: movl $(__KERNEL_DS),%eax # reload all the segment registers
25872 movl %eax,%ss # after changing gdt.
25873
25874 - movl $(__USER_DS),%eax # DS/ES contains default USER segment
25875 +# movl $(__KERNEL_DS),%eax # DS/ES contains default KERNEL segment
25876 movl %eax,%ds
25877 movl %eax,%es
25878
25879 movl $(__KERNEL_PERCPU), %eax
25880 movl %eax,%fs # set this cpu's percpu
25881
25882 +#ifdef CONFIG_CC_STACKPROTECTOR
25883 movl $(__KERNEL_STACK_CANARY),%eax
25884 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
25885 + movl $(__USER_DS),%eax
25886 +#else
25887 + xorl %eax,%eax
25888 +#endif
25889 movl %eax,%gs
25890
25891 xorl %eax,%eax # Clear LDT
25892 @@ -521,8 +610,11 @@ setup_once:
25893 * relocation. Manually set base address in stack canary
25894 * segment descriptor.
25895 */
25896 - movl $gdt_page,%eax
25897 + movl $cpu_gdt_table,%eax
25898 movl $stack_canary,%ecx
25899 +#ifdef CONFIG_SMP
25900 + addl $__per_cpu_load,%ecx
25901 +#endif
25902 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
25903 shrl $16, %ecx
25904 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
25905 @@ -559,7 +651,7 @@ early_idt_handler_common:
25906 cmpl $2,(%esp) # X86_TRAP_NMI
25907 je .Lis_nmi # Ignore NMI
25908
25909 - cmpl $2,%ss:early_recursion_flag
25910 + cmpl $1,%ss:early_recursion_flag
25911 je hlt_loop
25912 incl %ss:early_recursion_flag
25913
25914 @@ -597,8 +689,8 @@ early_idt_handler_common:
25915 pushl (20+6*4)(%esp) /* trapno */
25916 pushl $fault_msg
25917 call printk
25918 -#endif
25919 call dump_stack
25920 +#endif
25921 hlt_loop:
25922 hlt
25923 jmp hlt_loop
25924 @@ -618,8 +710,11 @@ ENDPROC(early_idt_handler_common)
25925 /* This is the default interrupt "handler" :-) */
25926 ALIGN
25927 ignore_int:
25928 - cld
25929 #ifdef CONFIG_PRINTK
25930 + cmpl $2,%ss:early_recursion_flag
25931 + je hlt_loop
25932 + incl %ss:early_recursion_flag
25933 + cld
25934 pushl %eax
25935 pushl %ecx
25936 pushl %edx
25937 @@ -628,9 +723,6 @@ ignore_int:
25938 movl $(__KERNEL_DS),%eax
25939 movl %eax,%ds
25940 movl %eax,%es
25941 - cmpl $2,early_recursion_flag
25942 - je hlt_loop
25943 - incl early_recursion_flag
25944 pushl 16(%esp)
25945 pushl 24(%esp)
25946 pushl 32(%esp)
25947 @@ -664,29 +756,34 @@ ENTRY(setup_once_ref)
25948 /*
25949 * BSS section
25950 */
25951 -__PAGE_ALIGNED_BSS
25952 - .align PAGE_SIZE
25953 #ifdef CONFIG_X86_PAE
25954 +.section .initial_pg_pmd,"a",@progbits
25955 initial_pg_pmd:
25956 .fill 1024*KPMDS,4,0
25957 #else
25958 +.section .initial_page_table,"a",@progbits
25959 ENTRY(initial_page_table)
25960 .fill 1024,4,0
25961 #endif
25962 +.section .initial_pg_fixmap,"a",@progbits
25963 initial_pg_fixmap:
25964 .fill 1024,4,0
25965 +.section .empty_zero_page,"a",@progbits
25966 ENTRY(empty_zero_page)
25967 .fill 4096,1,0
25968 +.section .swapper_pg_dir,"a",@progbits
25969 ENTRY(swapper_pg_dir)
25970 +#ifdef CONFIG_X86_PAE
25971 + .fill 4,8,0
25972 +#else
25973 .fill 1024,4,0
25974 +#endif
25975
25976 /*
25977 * This starts the data section.
25978 */
25979 #ifdef CONFIG_X86_PAE
25980 -__PAGE_ALIGNED_DATA
25981 - /* Page-aligned for the benefit of paravirt? */
25982 - .align PAGE_SIZE
25983 +.section .initial_page_table,"a",@progbits
25984 ENTRY(initial_page_table)
25985 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
25986 # if KPMDS == 3
25987 @@ -705,12 +802,20 @@ ENTRY(initial_page_table)
25988 # error "Kernel PMDs should be 1, 2 or 3"
25989 # endif
25990 .align PAGE_SIZE /* needs to be page-sized too */
25991 +
25992 +#ifdef CONFIG_PAX_PER_CPU_PGD
25993 +ENTRY(cpu_pgd)
25994 + .rept 2*NR_CPUS
25995 + .fill 4,8,0
25996 + .endr
25997 +#endif
25998 +
25999 #endif
26000
26001 .data
26002 .balign 4
26003 ENTRY(stack_start)
26004 - .long init_thread_union+THREAD_SIZE
26005 + .long init_thread_union+THREAD_SIZE-8
26006
26007 __INITRODATA
26008 int_msg:
26009 @@ -738,7 +843,7 @@ fault_msg:
26010 * segment size, and 32-bit linear address value:
26011 */
26012
26013 - .data
26014 +.section .rodata,"a",@progbits
26015 .globl boot_gdt_descr
26016 .globl idt_descr
26017
26018 @@ -747,7 +852,7 @@ fault_msg:
26019 .word 0 # 32 bit align gdt_desc.address
26020 boot_gdt_descr:
26021 .word __BOOT_DS+7
26022 - .long boot_gdt - __PAGE_OFFSET
26023 + .long pa(boot_gdt)
26024
26025 .word 0 # 32-bit align idt_desc.address
26026 idt_descr:
26027 @@ -758,7 +863,7 @@ idt_descr:
26028 .word 0 # 32 bit align gdt_desc.address
26029 ENTRY(early_gdt_descr)
26030 .word GDT_ENTRIES*8-1
26031 - .long gdt_page /* Overwritten for secondary CPUs */
26032 + .long cpu_gdt_table /* Overwritten for secondary CPUs */
26033
26034 /*
26035 * The boot_gdt must mirror the equivalent in setup.S and is
26036 @@ -767,5 +872,65 @@ ENTRY(early_gdt_descr)
26037 .align L1_CACHE_BYTES
26038 ENTRY(boot_gdt)
26039 .fill GDT_ENTRY_BOOT_CS,8,0
26040 - .quad 0x00cf9a000000ffff /* kernel 4GB code at 0x00000000 */
26041 - .quad 0x00cf92000000ffff /* kernel 4GB data at 0x00000000 */
26042 + .quad 0x00cf9b000000ffff /* kernel 4GB code at 0x00000000 */
26043 + .quad 0x00cf93000000ffff /* kernel 4GB data at 0x00000000 */
26044 +
26045 + .align PAGE_SIZE_asm
26046 +ENTRY(cpu_gdt_table)
26047 + .rept NR_CPUS
26048 + .quad 0x0000000000000000 /* NULL descriptor */
26049 + .quad 0x0000000000000000 /* 0x0b reserved */
26050 + .quad 0x0000000000000000 /* 0x13 reserved */
26051 + .quad 0x0000000000000000 /* 0x1b reserved */
26052 +
26053 +#ifdef CONFIG_PAX_KERNEXEC
26054 + .quad 0x00cf9b000000ffff /* 0x20 alternate kernel 4GB code at 0x00000000 */
26055 +#else
26056 + .quad 0x0000000000000000 /* 0x20 unused */
26057 +#endif
26058 +
26059 + .quad 0x0000000000000000 /* 0x28 unused */
26060 + .quad 0x0000000000000000 /* 0x33 TLS entry 1 */
26061 + .quad 0x0000000000000000 /* 0x3b TLS entry 2 */
26062 + .quad 0x0000000000000000 /* 0x43 TLS entry 3 */
26063 + .quad 0x0000000000000000 /* 0x4b reserved */
26064 + .quad 0x0000000000000000 /* 0x53 reserved */
26065 + .quad 0x0000000000000000 /* 0x5b reserved */
26066 +
26067 + .quad 0x00cf9b000000ffff /* 0x60 kernel 4GB code at 0x00000000 */
26068 + .quad 0x00cf93000000ffff /* 0x68 kernel 4GB data at 0x00000000 */
26069 + .quad 0x00cffb000000ffff /* 0x73 user 4GB code at 0x00000000 */
26070 + .quad 0x00cff3000000ffff /* 0x7b user 4GB data at 0x00000000 */
26071 +
26072 + .quad 0x0000000000000000 /* 0x80 TSS descriptor */
26073 + .quad 0x0000000000000000 /* 0x88 LDT descriptor */
26074 +
26075 + /*
26076 + * Segments used for calling PnP BIOS have byte granularity.
26077 + * The code segments and data segments have fixed 64k limits,
26078 + * the transfer segment sizes are set at run time.
26079 + */
26080 + .quad 0x00409b000000ffff /* 0x90 32-bit code */
26081 + .quad 0x00009b000000ffff /* 0x98 16-bit code */
26082 + .quad 0x000093000000ffff /* 0xa0 16-bit data */
26083 + .quad 0x0000930000000000 /* 0xa8 16-bit data */
26084 + .quad 0x0000930000000000 /* 0xb0 16-bit data */
26085 +
26086 + /*
26087 + * The APM segments have byte granularity and their bases
26088 + * are set at run time. All have 64k limits.
26089 + */
26090 + .quad 0x00409b000000ffff /* 0xb8 APM CS code */
26091 + .quad 0x00009b000000ffff /* 0xc0 APM CS 16 code (16 bit) */
26092 + .quad 0x004093000000ffff /* 0xc8 APM DS data */
26093 +
26094 + .quad 0x00c093000000ffff /* 0xd0 - ESPFIX SS */
26095 + .quad 0x0040930000000000 /* 0xd8 - PERCPU */
26096 + .quad 0x0040910000000017 /* 0xe0 - STACK_CANARY */
26097 + .quad 0x0000000000000000 /* 0xe8 - PCIBIOS_CS */
26098 + .quad 0x0000000000000000 /* 0xf0 - PCIBIOS_DS */
26099 + .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */
26100 +
26101 + /* Be sure this is zeroed to avoid false validations in Xen */
26102 + .fill PAGE_SIZE_asm - GDT_SIZE,1,0
26103 + .endr
26104 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
26105 index 1d40ca8..2dbedb3 100644
26106 --- a/arch/x86/kernel/head_64.S
26107 +++ b/arch/x86/kernel/head_64.S
26108 @@ -20,6 +20,8 @@
26109 #include <asm/processor-flags.h>
26110 #include <asm/percpu.h>
26111 #include <asm/nops.h>
26112 +#include <asm/cpufeature.h>
26113 +#include <asm/alternative-asm.h>
26114
26115 #ifdef CONFIG_PARAVIRT
26116 #include <asm/asm-offsets.h>
26117 @@ -41,6 +43,12 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET)
26118 L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET)
26119 L4_START_KERNEL = pgd_index(__START_KERNEL_map)
26120 L3_START_KERNEL = pud_index(__START_KERNEL_map)
26121 +L4_VMALLOC_START = pgd_index(VMALLOC_START)
26122 +L3_VMALLOC_START = pud_index(VMALLOC_START)
26123 +L4_VMALLOC_END = pgd_index(VMALLOC_END)
26124 +L3_VMALLOC_END = pud_index(VMALLOC_END)
26125 +L4_VMEMMAP_START = pgd_index(VMEMMAP_START)
26126 +L3_VMEMMAP_START = pud_index(VMEMMAP_START)
26127
26128 .text
26129 __HEAD
26130 @@ -65,6 +73,9 @@ startup_64:
26131 * tables and then reload them.
26132 */
26133
26134 + /* Sanitize CPU configuration */
26135 + call verify_cpu
26136 +
26137 /*
26138 * Compute the delta between the address I am compiled to run at and the
26139 * address I am actually running at.
26140 @@ -89,11 +100,33 @@ startup_64:
26141 * Fixup the physical addresses in the page table
26142 */
26143 addq %rbp, early_level4_pgt + (L4_START_KERNEL*8)(%rip)
26144 + addq %rbp, init_level4_pgt + (L4_PAGE_OFFSET*8)(%rip)
26145 + addq %rbp, init_level4_pgt + (L4_VMALLOC_START*8)(%rip)
26146 + addq %rbp, init_level4_pgt + (L4_VMALLOC_END*8)(%rip)
26147 + addq %rbp, init_level4_pgt + (L4_VMEMMAP_START*8)(%rip)
26148 + addq %rbp, init_level4_pgt + (L4_START_KERNEL*8)(%rip)
26149
26150 - addq %rbp, level3_kernel_pgt + (510*8)(%rip)
26151 - addq %rbp, level3_kernel_pgt + (511*8)(%rip)
26152 + addq %rbp, level3_ident_pgt + (0*8)(%rip)
26153 +#ifndef CONFIG_XEN
26154 + addq %rbp, level3_ident_pgt + (1*8)(%rip)
26155 +#endif
26156
26157 + addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
26158 +
26159 + addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip)
26160 + addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip)
26161 +
26162 + addq %rbp, level2_ident_pgt + (0*8)(%rip)
26163 +
26164 + addq %rbp, level2_fixmap_pgt + (0*8)(%rip)
26165 + addq %rbp, level2_fixmap_pgt + (1*8)(%rip)
26166 + addq %rbp, level2_fixmap_pgt + (2*8)(%rip)
26167 + addq %rbp, level2_fixmap_pgt + (3*8)(%rip)
26168 +
26169 + addq %rbp, level2_fixmap_pgt + (504*8)(%rip)
26170 + addq %rbp, level2_fixmap_pgt + (505*8)(%rip)
26171 addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
26172 + addq %rbp, level2_fixmap_pgt + (507*8)(%rip)
26173
26174 /*
26175 * Set up the identity mapping for the switchover. These
26176 @@ -174,11 +207,16 @@ ENTRY(secondary_startup_64)
26177 * after the boot processor executes this code.
26178 */
26179
26180 + /* Sanitize CPU configuration */
26181 + call verify_cpu
26182 +
26183 + orq $-1, %rbp
26184 +
26185 movq $(init_level4_pgt - __START_KERNEL_map), %rax
26186 1:
26187
26188 - /* Enable PAE mode and PGE */
26189 - movl $(X86_CR4_PAE | X86_CR4_PGE), %ecx
26190 + /* Enable PAE mode and PSE/PGE */
26191 + movl $(X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE), %ecx
26192 movq %rcx, %cr4
26193
26194 /* Setup early boot stage 4 level pagetables. */
26195 @@ -199,10 +237,21 @@ ENTRY(secondary_startup_64)
26196 movl $MSR_EFER, %ecx
26197 rdmsr
26198 btsl $_EFER_SCE, %eax /* Enable System Call */
26199 - btl $20,%edi /* No Execute supported? */
26200 + btl $(X86_FEATURE_NX & 31),%edi /* No Execute supported? */
26201 jnc 1f
26202 btsl $_EFER_NX, %eax
26203 + cmpq $-1, %rbp
26204 + je 1f
26205 btsq $_PAGE_BIT_NX,early_pmd_flags(%rip)
26206 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_PAGE_OFFSET(%rip)
26207 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_START(%rip)
26208 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_END(%rip)
26209 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMEMMAP_START(%rip)
26210 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*504(%rip)
26211 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*505(%rip)
26212 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*506(%rip)
26213 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*507(%rip)
26214 + btsq $_PAGE_BIT_NX, __supported_pte_mask(%rip)
26215 1: wrmsr /* Make changes effective */
26216
26217 /* Setup cr0 */
26218 @@ -282,12 +331,15 @@ ENTRY(secondary_startup_64)
26219 * REX.W + FF /5 JMP m16:64 Jump far, absolute indirect,
26220 * address given in m16:64.
26221 */
26222 + pax_set_fptr_mask
26223 movq initial_code(%rip),%rax
26224 pushq $0 # fake return address to stop unwinder
26225 pushq $__KERNEL_CS # set correct cs
26226 pushq %rax # target address in negative space
26227 lretq
26228
26229 +#include "verify_cpu.S"
26230 +
26231 #ifdef CONFIG_HOTPLUG_CPU
26232 /*
26233 * Boot CPU0 entry point. It's called from play_dead(). Everything has been set
26234 @@ -313,7 +365,7 @@ ENDPROC(start_cpu0)
26235 .quad INIT_PER_CPU_VAR(irq_stack_union)
26236
26237 GLOBAL(stack_start)
26238 - .quad init_thread_union+THREAD_SIZE-8
26239 + .quad init_thread_union+THREAD_SIZE-16
26240 .word 0
26241 __FINITDATA
26242
26243 @@ -393,7 +445,7 @@ early_idt_handler_common:
26244 call dump_stack
26245 #ifdef CONFIG_KALLSYMS
26246 leaq early_idt_ripmsg(%rip),%rdi
26247 - movq 40(%rsp),%rsi # %rip again
26248 + movq 88(%rsp),%rsi # %rip again
26249 call __print_symbol
26250 #endif
26251 #endif /* EARLY_PRINTK */
26252 @@ -422,6 +474,7 @@ ENDPROC(early_idt_handler_common)
26253 early_recursion_flag:
26254 .long 0
26255
26256 + .section .rodata,"a",@progbits
26257 #ifdef CONFIG_EARLY_PRINTK
26258 early_idt_msg:
26259 .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
26260 @@ -444,40 +497,67 @@ GLOBAL(name)
26261 __INITDATA
26262 NEXT_PAGE(early_level4_pgt)
26263 .fill 511,8,0
26264 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
26265 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26266
26267 NEXT_PAGE(early_dynamic_pgts)
26268 .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
26269
26270 - .data
26271 + .section .rodata,"a",@progbits
26272
26273 -#ifndef CONFIG_XEN
26274 NEXT_PAGE(init_level4_pgt)
26275 - .fill 512,8,0
26276 -#else
26277 -NEXT_PAGE(init_level4_pgt)
26278 - .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26279 .org init_level4_pgt + L4_PAGE_OFFSET*8, 0
26280 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26281 + .org init_level4_pgt + L4_VMALLOC_START*8, 0
26282 + .quad level3_vmalloc_start_pgt - __START_KERNEL_map + _KERNPG_TABLE
26283 + .org init_level4_pgt + L4_VMALLOC_END*8, 0
26284 + .quad level3_vmalloc_end_pgt - __START_KERNEL_map + _KERNPG_TABLE
26285 + .org init_level4_pgt + L4_VMEMMAP_START*8, 0
26286 + .quad level3_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26287 .org init_level4_pgt + L4_START_KERNEL*8, 0
26288 /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */
26289 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
26290 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26291 +
26292 +#ifdef CONFIG_PAX_PER_CPU_PGD
26293 +NEXT_PAGE(cpu_pgd)
26294 + .rept 2*NR_CPUS
26295 + .fill 512,8,0
26296 + .endr
26297 +#endif
26298
26299 NEXT_PAGE(level3_ident_pgt)
26300 .quad level2_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26301 +#ifdef CONFIG_XEN
26302 .fill 511, 8, 0
26303 +#else
26304 + .quad level2_ident_pgt + PAGE_SIZE - __START_KERNEL_map + _KERNPG_TABLE
26305 + .fill 510,8,0
26306 +#endif
26307 +
26308 +NEXT_PAGE(level3_vmalloc_start_pgt)
26309 + .fill 512,8,0
26310 +
26311 +NEXT_PAGE(level3_vmalloc_end_pgt)
26312 + .fill 512,8,0
26313 +
26314 +NEXT_PAGE(level3_vmemmap_pgt)
26315 + .fill L3_VMEMMAP_START,8,0
26316 + .quad level2_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26317 +
26318 NEXT_PAGE(level2_ident_pgt)
26319 - /* Since I easily can, map the first 1G.
26320 + .quad level1_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26321 + /* Since I easily can, map the first 2G.
26322 * Don't set NX because code runs from these pages.
26323 */
26324 - PMDS(0, __PAGE_KERNEL_IDENT_LARGE_EXEC, PTRS_PER_PMD)
26325 -#endif
26326 + PMDS(PMD_SIZE, __PAGE_KERNEL_IDENT_LARGE_EXEC, 2*PTRS_PER_PMD - 1)
26327
26328 NEXT_PAGE(level3_kernel_pgt)
26329 .fill L3_START_KERNEL,8,0
26330 /* (2^48-(2*1024*1024*1024)-((2^39)*511))/(2^30) = 510 */
26331 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26332 - .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
26333 + .quad level2_fixmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26334 +
26335 +NEXT_PAGE(level2_vmemmap_pgt)
26336 + .fill 512,8,0
26337
26338 NEXT_PAGE(level2_kernel_pgt)
26339 /*
26340 @@ -494,31 +574,79 @@ NEXT_PAGE(level2_kernel_pgt)
26341 KERNEL_IMAGE_SIZE/PMD_SIZE)
26342
26343 NEXT_PAGE(level2_fixmap_pgt)
26344 - .fill 506,8,0
26345 - .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
26346 - /* 8MB reserved for vsyscalls + a 2MB hole = 4 + 1 entries */
26347 - .fill 5,8,0
26348 + .quad level1_modules_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
26349 + .quad level1_modules_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
26350 + .quad level1_modules_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
26351 + .quad level1_modules_pgt - __START_KERNEL_map + 3 * PAGE_SIZE + _KERNPG_TABLE
26352 + .fill 500,8,0
26353 + .quad level1_fixmap_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
26354 + .quad level1_fixmap_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
26355 + .quad level1_fixmap_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
26356 + .quad level1_vsyscall_pgt - __START_KERNEL_map + _KERNPG_TABLE
26357 + /* 6MB reserved for vsyscalls + a 2MB hole = 3 + 1 entries */
26358 + .fill 4,8,0
26359 +
26360 +NEXT_PAGE(level1_ident_pgt)
26361 + .fill 512,8,0
26362 +
26363 +NEXT_PAGE(level1_modules_pgt)
26364 + .fill 4*512,8,0
26365
26366 NEXT_PAGE(level1_fixmap_pgt)
26367 + .fill 3*512,8,0
26368 +
26369 +NEXT_PAGE(level1_vsyscall_pgt)
26370 .fill 512,8,0
26371
26372 #undef PMDS
26373
26374 - .data
26375 + .align PAGE_SIZE
26376 +ENTRY(cpu_gdt_table)
26377 + .rept NR_CPUS
26378 + .quad 0x0000000000000000 /* NULL descriptor */
26379 + .quad 0x00cf9b000000ffff /* __KERNEL32_CS */
26380 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
26381 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
26382 + .quad 0x00cffb000000ffff /* __USER32_CS */
26383 + .quad 0x00cff3000000ffff /* __USER_DS, __USER32_DS */
26384 + .quad 0x00affb000000ffff /* __USER_CS */
26385 +
26386 +#ifdef CONFIG_PAX_KERNEXEC
26387 + .quad 0x00af9b000000ffff /* __KERNEXEC_KERNEL_CS */
26388 +#else
26389 + .quad 0x0 /* unused */
26390 +#endif
26391 +
26392 + .quad 0,0 /* TSS */
26393 + .quad 0,0 /* LDT */
26394 + .quad 0,0,0 /* three TLS descriptors */
26395 + .quad 0x0000f40000000000 /* node/CPU stored in limit */
26396 + /* asm/segment.h:GDT_ENTRIES must match this */
26397 +
26398 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26399 + .quad 0x00cf93000000ffff /* __UDEREF_KERNEL_DS */
26400 +#else
26401 + .quad 0x0 /* unused */
26402 +#endif
26403 +
26404 + /* zero the remaining page */
26405 + .fill PAGE_SIZE / 8 - GDT_ENTRIES,8,0
26406 + .endr
26407 +
26408 .align 16
26409 .globl early_gdt_descr
26410 early_gdt_descr:
26411 .word GDT_ENTRIES*8-1
26412 early_gdt_descr_base:
26413 - .quad INIT_PER_CPU_VAR(gdt_page)
26414 + .quad cpu_gdt_table
26415
26416 ENTRY(phys_base)
26417 /* This must match the first entry in level2_kernel_pgt */
26418 .quad 0x0000000000000000
26419
26420 #include "../../x86/xen/xen-head.S"
26421 -
26422 - __PAGE_ALIGNED_BSS
26423 +
26424 + .section .rodata,"a",@progbits
26425 NEXT_PAGE(empty_zero_page)
26426 .skip PAGE_SIZE
26427
26428 diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
26429 index 64341aa..b1e6632 100644
26430 --- a/arch/x86/kernel/i386_ksyms_32.c
26431 +++ b/arch/x86/kernel/i386_ksyms_32.c
26432 @@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
26433 EXPORT_SYMBOL(cmpxchg8b_emu);
26434 #endif
26435
26436 +EXPORT_SYMBOL_GPL(cpu_gdt_table);
26437 +
26438 /* Networking helper routines. */
26439 EXPORT_SYMBOL(csum_partial_copy_generic);
26440 +EXPORT_SYMBOL(csum_partial_copy_generic_to_user);
26441 +EXPORT_SYMBOL(csum_partial_copy_generic_from_user);
26442
26443 EXPORT_SYMBOL(__get_user_1);
26444 EXPORT_SYMBOL(__get_user_2);
26445 @@ -42,3 +46,11 @@ EXPORT_SYMBOL(empty_zero_page);
26446 EXPORT_SYMBOL(___preempt_schedule);
26447 EXPORT_SYMBOL(___preempt_schedule_notrace);
26448 #endif
26449 +
26450 +#ifdef CONFIG_PAX_KERNEXEC
26451 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
26452 +#endif
26453 +
26454 +#ifdef CONFIG_PAX_PER_CPU_PGD
26455 +EXPORT_SYMBOL(cpu_pgd);
26456 +#endif
26457 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
26458 index 16cb827..372334f 100644
26459 --- a/arch/x86/kernel/i8259.c
26460 +++ b/arch/x86/kernel/i8259.c
26461 @@ -110,7 +110,7 @@ static int i8259A_irq_pending(unsigned int irq)
26462 static void make_8259A_irq(unsigned int irq)
26463 {
26464 disable_irq_nosync(irq);
26465 - io_apic_irqs &= ~(1<<irq);
26466 + io_apic_irqs &= ~(1UL<<irq);
26467 irq_set_chip_and_handler(irq, &i8259A_chip, handle_level_irq);
26468 enable_irq(irq);
26469 }
26470 @@ -208,7 +208,7 @@ spurious_8259A_irq:
26471 "spurious 8259A interrupt: IRQ%d.\n", irq);
26472 spurious_irq_mask |= irqmask;
26473 }
26474 - atomic_inc(&irq_err_count);
26475 + atomic_inc_unchecked(&irq_err_count);
26476 /*
26477 * Theoretically we do not have to handle this IRQ,
26478 * but in Linux this does not cause problems and is
26479 @@ -349,14 +349,16 @@ static void init_8259A(int auto_eoi)
26480 /* (slave's support for AEOI in flat mode is to be investigated) */
26481 outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR);
26482
26483 + pax_open_kernel();
26484 if (auto_eoi)
26485 /*
26486 * In AEOI mode we just have to mask the interrupt
26487 * when acking.
26488 */
26489 - i8259A_chip.irq_mask_ack = disable_8259A_irq;
26490 + *(void **)&i8259A_chip.irq_mask_ack = disable_8259A_irq;
26491 else
26492 - i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26493 + *(void **)&i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26494 + pax_close_kernel();
26495
26496 udelay(100); /* wait for 8259A to initialize */
26497
26498 diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
26499 index a979b5b..1d6db75 100644
26500 --- a/arch/x86/kernel/io_delay.c
26501 +++ b/arch/x86/kernel/io_delay.c
26502 @@ -58,7 +58,7 @@ static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
26503 * Quirk table for systems that misbehave (lock up, etc.) if port
26504 * 0x80 is used:
26505 */
26506 -static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
26507 +static const struct dmi_system_id __initconst io_delay_0xed_port_dmi_table[] = {
26508 {
26509 .callback = dmi_io_delay_0xed_port,
26510 .ident = "Compaq Presario V6000",
26511 diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
26512 index 37dae79..620dd84 100644
26513 --- a/arch/x86/kernel/ioport.c
26514 +++ b/arch/x86/kernel/ioport.c
26515 @@ -6,6 +6,7 @@
26516 #include <linux/sched.h>
26517 #include <linux/kernel.h>
26518 #include <linux/capability.h>
26519 +#include <linux/security.h>
26520 #include <linux/errno.h>
26521 #include <linux/types.h>
26522 #include <linux/ioport.h>
26523 @@ -30,6 +31,12 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26524 return -EINVAL;
26525 if (turn_on && !capable(CAP_SYS_RAWIO))
26526 return -EPERM;
26527 +#ifdef CONFIG_GRKERNSEC_IO
26528 + if (turn_on && grsec_disable_privio) {
26529 + gr_handle_ioperm();
26530 + return -ENODEV;
26531 + }
26532 +#endif
26533
26534 /*
26535 * If it's the first ioperm() call in this thread's lifetime, set the
26536 @@ -54,7 +61,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26537 * because the ->io_bitmap_max value must match the bitmap
26538 * contents:
26539 */
26540 - tss = &per_cpu(cpu_tss, get_cpu());
26541 + tss = cpu_tss + get_cpu();
26542
26543 if (turn_on)
26544 bitmap_clear(t->io_bitmap_ptr, from, num);
26545 @@ -105,6 +112,12 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
26546 if (level > old) {
26547 if (!capable(CAP_SYS_RAWIO))
26548 return -EPERM;
26549 +#ifdef CONFIG_GRKERNSEC_IO
26550 + if (grsec_disable_privio) {
26551 + gr_handle_iopl();
26552 + return -ENODEV;
26553 + }
26554 +#endif
26555 }
26556 regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
26557 t->iopl = level << 12;
26558 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
26559 index c7dfe1b..146f63c 100644
26560 --- a/arch/x86/kernel/irq.c
26561 +++ b/arch/x86/kernel/irq.c
26562 @@ -28,7 +28,7 @@ EXPORT_PER_CPU_SYMBOL(irq_stat);
26563 DEFINE_PER_CPU(struct pt_regs *, irq_regs);
26564 EXPORT_PER_CPU_SYMBOL(irq_regs);
26565
26566 -atomic_t irq_err_count;
26567 +atomic_unchecked_t irq_err_count;
26568
26569 /* Function pointer for generic interrupt vector handling */
26570 void (*x86_platform_ipi_callback)(void) = NULL;
26571 @@ -144,9 +144,9 @@ int arch_show_interrupts(struct seq_file *p, int prec)
26572 seq_printf(p, "%10u ", irq_stats(j)->irq_hv_callback_count);
26573 seq_puts(p, " Hypervisor callback interrupts\n");
26574 #endif
26575 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
26576 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
26577 #if defined(CONFIG_X86_IO_APIC)
26578 - seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count));
26579 + seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read_unchecked(&irq_mis_count));
26580 #endif
26581 #ifdef CONFIG_HAVE_KVM
26582 seq_printf(p, "%*s: ", prec, "PIN");
26583 @@ -198,7 +198,7 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
26584
26585 u64 arch_irq_stat(void)
26586 {
26587 - u64 sum = atomic_read(&irq_err_count);
26588 + u64 sum = atomic_read_unchecked(&irq_err_count);
26589 return sum;
26590 }
26591
26592 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
26593 index cd74f59..588af0b 100644
26594 --- a/arch/x86/kernel/irq_32.c
26595 +++ b/arch/x86/kernel/irq_32.c
26596 @@ -23,6 +23,8 @@
26597
26598 #ifdef CONFIG_DEBUG_STACKOVERFLOW
26599
26600 +extern void gr_handle_kernel_exploit(void);
26601 +
26602 int sysctl_panic_on_stackoverflow __read_mostly;
26603
26604 /* Debugging check for stack overflow: is there less than 1KB free? */
26605 @@ -33,13 +35,14 @@ static int check_stack_overflow(void)
26606 __asm__ __volatile__("andl %%esp,%0" :
26607 "=r" (sp) : "0" (THREAD_SIZE - 1));
26608
26609 - return sp < (sizeof(struct thread_info) + STACK_WARN);
26610 + return sp < STACK_WARN;
26611 }
26612
26613 static void print_stack_overflow(void)
26614 {
26615 printk(KERN_WARNING "low stack detected by irq handler\n");
26616 dump_stack();
26617 + gr_handle_kernel_exploit();
26618 if (sysctl_panic_on_stackoverflow)
26619 panic("low stack detected by irq handler - check messages\n");
26620 }
26621 @@ -71,10 +74,9 @@ static inline void *current_stack(void)
26622 static inline int
26623 execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26624 {
26625 - struct irq_stack *curstk, *irqstk;
26626 + struct irq_stack *irqstk;
26627 u32 *isp, *prev_esp, arg1, arg2;
26628
26629 - curstk = (struct irq_stack *) current_stack();
26630 irqstk = __this_cpu_read(hardirq_stack);
26631
26632 /*
26633 @@ -83,15 +85,19 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26634 * handler) we can't do that and just have to keep using the
26635 * current stack (which is the irq stack already after all)
26636 */
26637 - if (unlikely(curstk == irqstk))
26638 + if (unlikely((void *)current_stack_pointer - (void *)irqstk < THREAD_SIZE))
26639 return 0;
26640
26641 - isp = (u32 *) ((char *)irqstk + sizeof(*irqstk));
26642 + isp = (u32 *) ((char *)irqstk + sizeof(*irqstk) - 8);
26643
26644 /* Save the next esp at the bottom of the stack */
26645 prev_esp = (u32 *)irqstk;
26646 *prev_esp = current_stack_pointer();
26647
26648 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26649 + __set_fs(MAKE_MM_SEG(0));
26650 +#endif
26651 +
26652 if (unlikely(overflow))
26653 call_on_stack(print_stack_overflow, isp);
26654
26655 @@ -102,6 +108,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26656 : "0" (irq), "1" (desc), "2" (isp),
26657 "D" (desc->handle_irq)
26658 : "memory", "cc", "ecx");
26659 +
26660 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26661 + __set_fs(current_thread_info()->addr_limit);
26662 +#endif
26663 +
26664 return 1;
26665 }
26666
26667 @@ -110,32 +121,18 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26668 */
26669 void irq_ctx_init(int cpu)
26670 {
26671 - struct irq_stack *irqstk;
26672 -
26673 if (per_cpu(hardirq_stack, cpu))
26674 return;
26675
26676 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26677 - THREADINFO_GFP,
26678 - THREAD_SIZE_ORDER));
26679 - per_cpu(hardirq_stack, cpu) = irqstk;
26680 -
26681 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26682 - THREADINFO_GFP,
26683 - THREAD_SIZE_ORDER));
26684 - per_cpu(softirq_stack, cpu) = irqstk;
26685 -
26686 - printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
26687 - cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
26688 + per_cpu(hardirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26689 + per_cpu(softirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26690 }
26691
26692 void do_softirq_own_stack(void)
26693 {
26694 - struct thread_info *curstk;
26695 struct irq_stack *irqstk;
26696 u32 *isp, *prev_esp;
26697
26698 - curstk = current_stack();
26699 irqstk = __this_cpu_read(softirq_stack);
26700
26701 /* build the stack frame on the softirq stack */
26702 @@ -145,7 +142,16 @@ void do_softirq_own_stack(void)
26703 prev_esp = (u32 *)irqstk;
26704 *prev_esp = current_stack_pointer();
26705
26706 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26707 + __set_fs(MAKE_MM_SEG(0));
26708 +#endif
26709 +
26710 call_on_stack(__do_softirq, isp);
26711 +
26712 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26713 + __set_fs(current_thread_info()->addr_limit);
26714 +#endif
26715 +
26716 }
26717
26718 bool handle_irq(unsigned irq, struct pt_regs *regs)
26719 diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
26720 index bc4604e..0be227d 100644
26721 --- a/arch/x86/kernel/irq_64.c
26722 +++ b/arch/x86/kernel/irq_64.c
26723 @@ -20,6 +20,8 @@
26724 #include <asm/idle.h>
26725 #include <asm/apic.h>
26726
26727 +extern void gr_handle_kernel_exploit(void);
26728 +
26729 int sysctl_panic_on_stackoverflow;
26730
26731 /*
26732 @@ -63,6 +65,8 @@ static inline void stack_overflow_check(struct pt_regs *regs)
26733 irq_stack_top, irq_stack_bottom,
26734 estack_top, estack_bottom);
26735
26736 + gr_handle_kernel_exploit();
26737 +
26738 if (sysctl_panic_on_stackoverflow)
26739 panic("low stack detected by irq handler - check messages\n");
26740 #endif
26741 diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
26742 index 26d5a55..063fef8 100644
26743 --- a/arch/x86/kernel/jump_label.c
26744 +++ b/arch/x86/kernel/jump_label.c
26745 @@ -31,6 +31,8 @@ static void bug_at(unsigned char *ip, int line)
26746 * Something went wrong. Crash the box, as something could be
26747 * corrupting the kernel.
26748 */
26749 + ip = (unsigned char *)ktla_ktva((unsigned long)ip);
26750 + pr_warning("Unexpected op at %pS [%p] %s:%d\n", ip, ip, __FILE__, line);
26751 pr_warning("Unexpected op at %pS [%p] (%02x %02x %02x %02x %02x) %s:%d\n",
26752 ip, ip, ip[0], ip[1], ip[2], ip[3], ip[4], __FILE__, line);
26753 BUG();
26754 @@ -51,7 +53,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26755 * Jump label is enabled for the first time.
26756 * So we expect a default_nop...
26757 */
26758 - if (unlikely(memcmp((void *)entry->code, default_nop, 5)
26759 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5)
26760 != 0))
26761 bug_at((void *)entry->code, __LINE__);
26762 } else {
26763 @@ -59,7 +61,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26764 * ...otherwise expect an ideal_nop. Otherwise
26765 * something went horribly wrong.
26766 */
26767 - if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
26768 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5)
26769 != 0))
26770 bug_at((void *)entry->code, __LINE__);
26771 }
26772 @@ -75,13 +77,13 @@ static void __jump_label_transform(struct jump_entry *entry,
26773 * are converting the default nop to the ideal nop.
26774 */
26775 if (init) {
26776 - if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
26777 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5) != 0))
26778 bug_at((void *)entry->code, __LINE__);
26779 } else {
26780 code.jump = 0xe9;
26781 code.offset = entry->target -
26782 (entry->code + JUMP_LABEL_NOP_SIZE);
26783 - if (unlikely(memcmp((void *)entry->code, &code, 5) != 0))
26784 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), &code, 5) != 0))
26785 bug_at((void *)entry->code, __LINE__);
26786 }
26787 memcpy(&code, ideal_nops[NOP_ATOMIC5], JUMP_LABEL_NOP_SIZE);
26788 diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
26789 index d6178d9..598681f 100644
26790 --- a/arch/x86/kernel/kgdb.c
26791 +++ b/arch/x86/kernel/kgdb.c
26792 @@ -228,7 +228,10 @@ static void kgdb_correct_hw_break(void)
26793 bp->attr.bp_addr = breakinfo[breakno].addr;
26794 bp->attr.bp_len = breakinfo[breakno].len;
26795 bp->attr.bp_type = breakinfo[breakno].type;
26796 - info->address = breakinfo[breakno].addr;
26797 + if (breakinfo[breakno].type == X86_BREAKPOINT_EXECUTE)
26798 + info->address = ktla_ktva(breakinfo[breakno].addr);
26799 + else
26800 + info->address = breakinfo[breakno].addr;
26801 info->len = breakinfo[breakno].len;
26802 info->type = breakinfo[breakno].type;
26803 val = arch_install_hw_breakpoint(bp);
26804 @@ -475,12 +478,12 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
26805 case 'k':
26806 /* clear the trace bit */
26807 linux_regs->flags &= ~X86_EFLAGS_TF;
26808 - atomic_set(&kgdb_cpu_doing_single_step, -1);
26809 + atomic_set_unchecked(&kgdb_cpu_doing_single_step, -1);
26810
26811 /* set the trace bit if we're stepping */
26812 if (remcomInBuffer[0] == 's') {
26813 linux_regs->flags |= X86_EFLAGS_TF;
26814 - atomic_set(&kgdb_cpu_doing_single_step,
26815 + atomic_set_unchecked(&kgdb_cpu_doing_single_step,
26816 raw_smp_processor_id());
26817 }
26818
26819 @@ -545,7 +548,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
26820
26821 switch (cmd) {
26822 case DIE_DEBUG:
26823 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
26824 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
26825 if (user_mode(regs))
26826 return single_step_cont(regs, args);
26827 break;
26828 @@ -750,11 +753,11 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26829 #endif /* CONFIG_DEBUG_RODATA */
26830
26831 bpt->type = BP_BREAKPOINT;
26832 - err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr,
26833 + err = probe_kernel_read(bpt->saved_instr, (const void *)ktla_ktva(bpt->bpt_addr),
26834 BREAK_INSTR_SIZE);
26835 if (err)
26836 return err;
26837 - err = probe_kernel_write((char *)bpt->bpt_addr,
26838 + err = probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26839 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
26840 #ifdef CONFIG_DEBUG_RODATA
26841 if (!err)
26842 @@ -767,7 +770,7 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26843 return -EBUSY;
26844 text_poke((void *)bpt->bpt_addr, arch_kgdb_ops.gdb_bpt_instr,
26845 BREAK_INSTR_SIZE);
26846 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26847 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26848 if (err)
26849 return err;
26850 if (memcmp(opc, arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE))
26851 @@ -792,13 +795,13 @@ int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt)
26852 if (mutex_is_locked(&text_mutex))
26853 goto knl_write;
26854 text_poke((void *)bpt->bpt_addr, bpt->saved_instr, BREAK_INSTR_SIZE);
26855 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26856 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26857 if (err || memcmp(opc, bpt->saved_instr, BREAK_INSTR_SIZE))
26858 goto knl_write;
26859 return err;
26860 knl_write:
26861 #endif /* CONFIG_DEBUG_RODATA */
26862 - return probe_kernel_write((char *)bpt->bpt_addr,
26863 + return probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26864 (char *)bpt->saved_instr, BREAK_INSTR_SIZE);
26865 }
26866
26867 diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
26868 index 1deffe6..3be342a 100644
26869 --- a/arch/x86/kernel/kprobes/core.c
26870 +++ b/arch/x86/kernel/kprobes/core.c
26871 @@ -120,9 +120,12 @@ __synthesize_relative_insn(void *from, void *to, u8 op)
26872 s32 raddr;
26873 } __packed *insn;
26874
26875 - insn = (struct __arch_relative_insn *)from;
26876 + insn = (struct __arch_relative_insn *)ktla_ktva((unsigned long)from);
26877 +
26878 + pax_open_kernel();
26879 insn->raddr = (s32)((long)(to) - ((long)(from) + 5));
26880 insn->op = op;
26881 + pax_close_kernel();
26882 }
26883
26884 /* Insert a jump instruction at address 'from', which jumps to address 'to'.*/
26885 @@ -168,7 +171,7 @@ int can_boost(kprobe_opcode_t *opcodes)
26886 kprobe_opcode_t opcode;
26887 kprobe_opcode_t *orig_opcodes = opcodes;
26888
26889 - if (search_exception_tables((unsigned long)opcodes))
26890 + if (search_exception_tables(ktva_ktla((unsigned long)opcodes)))
26891 return 0; /* Page fault may occur on this address. */
26892
26893 retry:
26894 @@ -260,12 +263,12 @@ __recover_probed_insn(kprobe_opcode_t *buf, unsigned long addr)
26895 * Fortunately, we know that the original code is the ideal 5-byte
26896 * long NOP.
26897 */
26898 - memcpy(buf, (void *)addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26899 + memcpy(buf, (void *)ktla_ktva(addr), MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26900 if (faddr)
26901 memcpy(buf, ideal_nops[NOP_ATOMIC5], 5);
26902 else
26903 buf[0] = kp->opcode;
26904 - return (unsigned long)buf;
26905 + return ktva_ktla((unsigned long)buf);
26906 }
26907
26908 /*
26909 @@ -367,7 +370,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26910 /* Another subsystem puts a breakpoint, failed to recover */
26911 if (insn.opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
26912 return 0;
26913 + pax_open_kernel();
26914 memcpy(dest, insn.kaddr, length);
26915 + pax_close_kernel();
26916
26917 #ifdef CONFIG_X86_64
26918 if (insn_rip_relative(&insn)) {
26919 @@ -394,7 +399,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26920 return 0;
26921 }
26922 disp = (u8 *) dest + insn_offset_displacement(&insn);
26923 + pax_open_kernel();
26924 *(s32 *) disp = (s32) newdisp;
26925 + pax_close_kernel();
26926 }
26927 #endif
26928 return length;
26929 @@ -536,7 +543,7 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26930 * nor set current_kprobe, because it doesn't use single
26931 * stepping.
26932 */
26933 - regs->ip = (unsigned long)p->ainsn.insn;
26934 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26935 preempt_enable_no_resched();
26936 return;
26937 }
26938 @@ -553,9 +560,9 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26939 regs->flags &= ~X86_EFLAGS_IF;
26940 /* single step inline if the instruction is an int3 */
26941 if (p->opcode == BREAKPOINT_INSTRUCTION)
26942 - regs->ip = (unsigned long)p->addr;
26943 + regs->ip = ktla_ktva((unsigned long)p->addr);
26944 else
26945 - regs->ip = (unsigned long)p->ainsn.insn;
26946 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26947 }
26948 NOKPROBE_SYMBOL(setup_singlestep);
26949
26950 @@ -640,7 +647,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
26951 setup_singlestep(p, regs, kcb, 0);
26952 return 1;
26953 }
26954 - } else if (*addr != BREAKPOINT_INSTRUCTION) {
26955 + } else if (*(kprobe_opcode_t *)ktla_ktva((unsigned long)addr) != BREAKPOINT_INSTRUCTION) {
26956 /*
26957 * The breakpoint instruction was removed right
26958 * after we hit it. Another cpu has removed
26959 @@ -687,6 +694,9 @@ static void __used kretprobe_trampoline_holder(void)
26960 " movq %rax, 152(%rsp)\n"
26961 RESTORE_REGS_STRING
26962 " popfq\n"
26963 +#ifdef KERNEXEC_PLUGIN
26964 + " btsq $63,(%rsp)\n"
26965 +#endif
26966 #else
26967 " pushf\n"
26968 SAVE_REGS_STRING
26969 @@ -827,7 +837,7 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs,
26970 struct kprobe_ctlblk *kcb)
26971 {
26972 unsigned long *tos = stack_addr(regs);
26973 - unsigned long copy_ip = (unsigned long)p->ainsn.insn;
26974 + unsigned long copy_ip = ktva_ktla((unsigned long)p->ainsn.insn);
26975 unsigned long orig_ip = (unsigned long)p->addr;
26976 kprobe_opcode_t *insn = p->ainsn.insn;
26977
26978 diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c
26979 index 7b3b9d1..e2478b91 100644
26980 --- a/arch/x86/kernel/kprobes/opt.c
26981 +++ b/arch/x86/kernel/kprobes/opt.c
26982 @@ -79,6 +79,7 @@ found:
26983 /* Insert a move instruction which sets a pointer to eax/rdi (1st arg). */
26984 static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26985 {
26986 + pax_open_kernel();
26987 #ifdef CONFIG_X86_64
26988 *addr++ = 0x48;
26989 *addr++ = 0xbf;
26990 @@ -86,6 +87,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26991 *addr++ = 0xb8;
26992 #endif
26993 *(unsigned long *)addr = val;
26994 + pax_close_kernel();
26995 }
26996
26997 asm (
26998 @@ -342,7 +344,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26999 * Verify if the address gap is in 2GB range, because this uses
27000 * a relative jump.
27001 */
27002 - rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE;
27003 + rel = (long)op->optinsn.insn - ktla_ktva((long)op->kp.addr) + RELATIVEJUMP_SIZE;
27004 if (abs(rel) > 0x7fffffff) {
27005 __arch_remove_optimized_kprobe(op, 0);
27006 return -ERANGE;
27007 @@ -359,16 +361,18 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
27008 op->optinsn.size = ret;
27009
27010 /* Copy arch-dep-instance from template */
27011 - memcpy(buf, &optprobe_template_entry, TMPL_END_IDX);
27012 + pax_open_kernel();
27013 + memcpy(buf, ktla_ktva(&optprobe_template_entry), TMPL_END_IDX);
27014 + pax_close_kernel();
27015
27016 /* Set probe information */
27017 synthesize_set_arg1(buf + TMPL_MOVE_IDX, (unsigned long)op);
27018
27019 /* Set probe function call */
27020 - synthesize_relcall(buf + TMPL_CALL_IDX, optimized_callback);
27021 + synthesize_relcall(ktva_ktla(buf) + TMPL_CALL_IDX, optimized_callback);
27022
27023 /* Set returning jmp instruction at the tail of out-of-line buffer */
27024 - synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size,
27025 + synthesize_reljump(ktva_ktla(buf) + TMPL_END_IDX + op->optinsn.size,
27026 (u8 *)op->kp.addr + op->optinsn.size);
27027
27028 flush_icache_range((unsigned long) buf,
27029 @@ -393,7 +397,7 @@ void arch_optimize_kprobes(struct list_head *oplist)
27030 WARN_ON(kprobe_disabled(&op->kp));
27031
27032 /* Backup instructions which will be replaced by jump address */
27033 - memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
27034 + memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
27035 RELATIVE_ADDR_SIZE);
27036
27037 insn_buf[0] = RELATIVEJUMP_OPCODE;
27038 @@ -441,7 +445,7 @@ int setup_detour_execution(struct kprobe *p, struct pt_regs *regs, int reenter)
27039 /* This kprobe is really able to run optimized path. */
27040 op = container_of(p, struct optimized_kprobe, kp);
27041 /* Detour through copied instructions */
27042 - regs->ip = (unsigned long)op->optinsn.insn + TMPL_END_IDX;
27043 + regs->ip = ktva_ktla((unsigned long)op->optinsn.insn) + TMPL_END_IDX;
27044 if (!reenter)
27045 reset_current_kprobe();
27046 preempt_enable_no_resched();
27047 diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
27048 index c2bedae..25e7ab60 100644
27049 --- a/arch/x86/kernel/ksysfs.c
27050 +++ b/arch/x86/kernel/ksysfs.c
27051 @@ -184,7 +184,7 @@ out:
27052
27053 static struct kobj_attribute type_attr = __ATTR_RO(type);
27054
27055 -static struct bin_attribute data_attr = {
27056 +static bin_attribute_no_const data_attr __read_only = {
27057 .attr = {
27058 .name = "data",
27059 .mode = S_IRUGO,
27060 diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
27061 index 49487b4..a94a0d3 100644
27062 --- a/arch/x86/kernel/kvmclock.c
27063 +++ b/arch/x86/kernel/kvmclock.c
27064 @@ -29,7 +29,7 @@
27065 #include <asm/x86_init.h>
27066 #include <asm/reboot.h>
27067
27068 -static int kvmclock = 1;
27069 +static int kvmclock __read_only = 1;
27070 static int msr_kvm_system_time = MSR_KVM_SYSTEM_TIME;
27071 static int msr_kvm_wall_clock = MSR_KVM_WALL_CLOCK;
27072
27073 @@ -41,7 +41,7 @@ static int parse_no_kvmclock(char *arg)
27074 early_param("no-kvmclock", parse_no_kvmclock);
27075
27076 /* The hypervisor will put information about time periodically here */
27077 -static struct pvclock_vsyscall_time_info *hv_clock;
27078 +static struct pvclock_vsyscall_time_info hv_clock[NR_CPUS] __page_aligned_bss;
27079 static struct pvclock_wall_clock wall_clock;
27080
27081 /*
27082 @@ -132,7 +132,7 @@ bool kvm_check_and_clear_guest_paused(void)
27083 struct pvclock_vcpu_time_info *src;
27084 int cpu = smp_processor_id();
27085
27086 - if (!hv_clock)
27087 + if (!kvmclock)
27088 return ret;
27089
27090 src = &hv_clock[cpu].pvti;
27091 @@ -159,7 +159,7 @@ int kvm_register_clock(char *txt)
27092 int low, high, ret;
27093 struct pvclock_vcpu_time_info *src;
27094
27095 - if (!hv_clock)
27096 + if (!kvmclock)
27097 return 0;
27098
27099 src = &hv_clock[cpu].pvti;
27100 @@ -219,7 +219,6 @@ static void kvm_shutdown(void)
27101 void __init kvmclock_init(void)
27102 {
27103 struct pvclock_vcpu_time_info *vcpu_time;
27104 - unsigned long mem;
27105 int size, cpu;
27106 u8 flags;
27107
27108 @@ -237,15 +236,8 @@ void __init kvmclock_init(void)
27109 printk(KERN_INFO "kvm-clock: Using msrs %x and %x",
27110 msr_kvm_system_time, msr_kvm_wall_clock);
27111
27112 - mem = memblock_alloc(size, PAGE_SIZE);
27113 - if (!mem)
27114 - return;
27115 - hv_clock = __va(mem);
27116 - memset(hv_clock, 0, size);
27117 -
27118 if (kvm_register_clock("primary cpu clock")) {
27119 - hv_clock = NULL;
27120 - memblock_free(mem, size);
27121 + kvmclock = 0;
27122 return;
27123 }
27124 pv_time_ops.sched_clock = kvm_clock_read;
27125 @@ -286,7 +278,7 @@ int __init kvm_setup_vsyscall_timeinfo(void)
27126 struct pvclock_vcpu_time_info *vcpu_time;
27127 unsigned int size;
27128
27129 - if (!hv_clock)
27130 + if (!kvmclock)
27131 return 0;
27132
27133 size = PAGE_ALIGN(sizeof(struct pvclock_vsyscall_time_info)*NR_CPUS);
27134 diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
27135 index 2bcc052..864eb84 100644
27136 --- a/arch/x86/kernel/ldt.c
27137 +++ b/arch/x86/kernel/ldt.c
27138 @@ -11,6 +11,7 @@
27139 #include <linux/sched.h>
27140 #include <linux/string.h>
27141 #include <linux/mm.h>
27142 +#include <linux/ratelimit.h>
27143 #include <linux/smp.h>
27144 #include <linux/slab.h>
27145 #include <linux/vmalloc.h>
27146 @@ -21,6 +22,14 @@
27147 #include <asm/mmu_context.h>
27148 #include <asm/syscalls.h>
27149
27150 +#ifdef CONFIG_GRKERNSEC
27151 +int sysctl_modify_ldt __read_only = 0;
27152 +#elif defined(CONFIG_DEFAULT_MODIFY_LDT_SYSCALL)
27153 +int sysctl_modify_ldt __read_only = 1;
27154 +#else
27155 +int sysctl_modify_ldt __read_only = 0;
27156 +#endif
27157 +
27158 /* context.lock is held for us, so we don't need any locking. */
27159 static void flush_ldt(void *current_mm)
27160 {
27161 @@ -109,6 +118,23 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
27162 struct mm_struct *old_mm;
27163 int retval = 0;
27164
27165 + if (tsk == current) {
27166 + mm->context.vdso = 0;
27167 +
27168 +#ifdef CONFIG_X86_32
27169 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
27170 + mm->context.user_cs_base = 0UL;
27171 + mm->context.user_cs_limit = ~0UL;
27172 +
27173 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
27174 + cpumask_clear(&mm->context.cpu_user_cs_mask);
27175 +#endif
27176 +
27177 +#endif
27178 +#endif
27179 +
27180 + }
27181 +
27182 mutex_init(&mm->context.lock);
27183 old_mm = current->mm;
27184 if (!old_mm) {
27185 @@ -235,6 +261,14 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
27186 /* The user wants to clear the entry. */
27187 memset(&ldt, 0, sizeof(ldt));
27188 } else {
27189 +
27190 +#ifdef CONFIG_PAX_SEGMEXEC
27191 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (ldt_info.contents & MODIFY_LDT_CONTENTS_CODE)) {
27192 + error = -EINVAL;
27193 + goto out;
27194 + }
27195 +#endif
27196 +
27197 if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) {
27198 error = -EINVAL;
27199 goto out;
27200 @@ -276,6 +310,15 @@ asmlinkage int sys_modify_ldt(int func, void __user *ptr,
27201 {
27202 int ret = -ENOSYS;
27203
27204 + if (!sysctl_modify_ldt) {
27205 + printk_ratelimited(KERN_INFO
27206 + "Denied a call to modify_ldt() from %s[%d] (uid: %d)."
27207 + " Adjust sysctl if this was not an exploit attempt.\n",
27208 + current->comm, task_pid_nr(current),
27209 + from_kuid_munged(current_user_ns(), current_uid()));
27210 + return ret;
27211 + }
27212 +
27213 switch (func) {
27214 case 0:
27215 ret = read_ldt(ptr, bytecount);
27216 diff --git a/arch/x86/kernel/livepatch.c b/arch/x86/kernel/livepatch.c
27217 index ff3c3101d..d7c0cd8 100644
27218 --- a/arch/x86/kernel/livepatch.c
27219 +++ b/arch/x86/kernel/livepatch.c
27220 @@ -41,9 +41,10 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
27221 int ret, numpages, size = 4;
27222 bool readonly;
27223 unsigned long val;
27224 - unsigned long core = (unsigned long)mod->module_core;
27225 - unsigned long core_ro_size = mod->core_ro_size;
27226 - unsigned long core_size = mod->core_size;
27227 + unsigned long core_rx = (unsigned long)mod->module_core_rx;
27228 + unsigned long core_rw = (unsigned long)mod->module_core_rw;
27229 + unsigned long core_size_rx = mod->core_size_rx;
27230 + unsigned long core_size_rw = mod->core_size_rw;
27231
27232 switch (type) {
27233 case R_X86_64_NONE:
27234 @@ -66,11 +67,12 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
27235 return -EINVAL;
27236 }
27237
27238 - if (loc < core || loc >= core + core_size)
27239 + if ((loc < core_rx || loc >= core_rx + core_size_rx) &&
27240 + (loc < core_rw || loc >= core_rw + core_size_rw))
27241 /* loc does not point to any symbol inside the module */
27242 return -EINVAL;
27243
27244 - if (loc < core + core_ro_size)
27245 + if (loc < core_rx + core_size_rx)
27246 readonly = true;
27247 else
27248 readonly = false;
27249 diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
27250 index 469b23d..5449cfe 100644
27251 --- a/arch/x86/kernel/machine_kexec_32.c
27252 +++ b/arch/x86/kernel/machine_kexec_32.c
27253 @@ -26,7 +26,7 @@
27254 #include <asm/cacheflush.h>
27255 #include <asm/debugreg.h>
27256
27257 -static void set_idt(void *newidt, __u16 limit)
27258 +static void set_idt(struct desc_struct *newidt, __u16 limit)
27259 {
27260 struct desc_ptr curidt;
27261
27262 @@ -38,7 +38,7 @@ static void set_idt(void *newidt, __u16 limit)
27263 }
27264
27265
27266 -static void set_gdt(void *newgdt, __u16 limit)
27267 +static void set_gdt(struct desc_struct *newgdt, __u16 limit)
27268 {
27269 struct desc_ptr curgdt;
27270
27271 @@ -216,7 +216,7 @@ void machine_kexec(struct kimage *image)
27272 }
27273
27274 control_page = page_address(image->control_code_page);
27275 - memcpy(control_page, relocate_kernel, KEXEC_CONTROL_CODE_MAX_SIZE);
27276 + memcpy(control_page, (void *)ktla_ktva((unsigned long)relocate_kernel), KEXEC_CONTROL_CODE_MAX_SIZE);
27277
27278 relocate_kernel_ptr = control_page;
27279 page_list[PA_CONTROL_PAGE] = __pa(control_page);
27280 diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
27281 index 94ea120..4154cea 100644
27282 --- a/arch/x86/kernel/mcount_64.S
27283 +++ b/arch/x86/kernel/mcount_64.S
27284 @@ -7,7 +7,7 @@
27285 #include <linux/linkage.h>
27286 #include <asm/ptrace.h>
27287 #include <asm/ftrace.h>
27288 -
27289 +#include <asm/alternative-asm.h>
27290
27291 .code64
27292 .section .entry.text, "ax"
27293 @@ -148,8 +148,9 @@
27294 #ifdef CONFIG_DYNAMIC_FTRACE
27295
27296 ENTRY(function_hook)
27297 + pax_force_retaddr
27298 retq
27299 -END(function_hook)
27300 +ENDPROC(function_hook)
27301
27302 ENTRY(ftrace_caller)
27303 /* save_mcount_regs fills in first two parameters */
27304 @@ -181,8 +182,9 @@ GLOBAL(ftrace_graph_call)
27305 #endif
27306
27307 GLOBAL(ftrace_stub)
27308 + pax_force_retaddr
27309 retq
27310 -END(ftrace_caller)
27311 +ENDPROC(ftrace_caller)
27312
27313 ENTRY(ftrace_regs_caller)
27314 /* Save the current flags before any operations that can change them */
27315 @@ -253,7 +255,7 @@ GLOBAL(ftrace_regs_caller_end)
27316
27317 jmp ftrace_return
27318
27319 -END(ftrace_regs_caller)
27320 +ENDPROC(ftrace_regs_caller)
27321
27322
27323 #else /* ! CONFIG_DYNAMIC_FTRACE */
27324 @@ -272,18 +274,20 @@ fgraph_trace:
27325 #endif
27326
27327 GLOBAL(ftrace_stub)
27328 + pax_force_retaddr
27329 retq
27330
27331 trace:
27332 /* save_mcount_regs fills in first two parameters */
27333 save_mcount_regs
27334
27335 + pax_force_fptr ftrace_trace_function
27336 call *ftrace_trace_function
27337
27338 restore_mcount_regs
27339
27340 jmp fgraph_trace
27341 -END(function_hook)
27342 +ENDPROC(function_hook)
27343 #endif /* CONFIG_DYNAMIC_FTRACE */
27344 #endif /* CONFIG_FUNCTION_TRACER */
27345
27346 @@ -305,8 +309,9 @@ ENTRY(ftrace_graph_caller)
27347
27348 restore_mcount_regs
27349
27350 + pax_force_retaddr
27351 retq
27352 -END(ftrace_graph_caller)
27353 +ENDPROC(ftrace_graph_caller)
27354
27355 GLOBAL(return_to_handler)
27356 subq $24, %rsp
27357 @@ -322,5 +327,7 @@ GLOBAL(return_to_handler)
27358 movq 8(%rsp), %rdx
27359 movq (%rsp), %rax
27360 addq $24, %rsp
27361 + pax_force_fptr %rdi
27362 jmp *%rdi
27363 +ENDPROC(return_to_handler)
27364 #endif
27365 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
27366 index 005c03e..7000fe4 100644
27367 --- a/arch/x86/kernel/module.c
27368 +++ b/arch/x86/kernel/module.c
27369 @@ -75,17 +75,17 @@ static unsigned long int get_module_load_offset(void)
27370 }
27371 #endif
27372
27373 -void *module_alloc(unsigned long size)
27374 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
27375 {
27376 void *p;
27377
27378 - if (PAGE_ALIGN(size) > MODULES_LEN)
27379 + if (!size || PAGE_ALIGN(size) > MODULES_LEN)
27380 return NULL;
27381
27382 p = __vmalloc_node_range(size, MODULE_ALIGN,
27383 MODULES_VADDR + get_module_load_offset(),
27384 - MODULES_END, GFP_KERNEL | __GFP_HIGHMEM,
27385 - PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
27386 + MODULES_END, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
27387 + prot, 0, NUMA_NO_NODE,
27388 __builtin_return_address(0));
27389 if (p && (kasan_module_alloc(p, size) < 0)) {
27390 vfree(p);
27391 @@ -95,6 +95,51 @@ void *module_alloc(unsigned long size)
27392 return p;
27393 }
27394
27395 +void *module_alloc(unsigned long size)
27396 +{
27397 +
27398 +#ifdef CONFIG_PAX_KERNEXEC
27399 + return __module_alloc(size, PAGE_KERNEL);
27400 +#else
27401 + return __module_alloc(size, PAGE_KERNEL_EXEC);
27402 +#endif
27403 +
27404 +}
27405 +
27406 +#ifdef CONFIG_PAX_KERNEXEC
27407 +#ifdef CONFIG_X86_32
27408 +void *module_alloc_exec(unsigned long size)
27409 +{
27410 + struct vm_struct *area;
27411 +
27412 + if (size == 0)
27413 + return NULL;
27414 +
27415 + area = __get_vm_area(size, VM_ALLOC, (unsigned long)&MODULES_EXEC_VADDR, (unsigned long)&MODULES_EXEC_END);
27416 +return area ? area->addr : NULL;
27417 +}
27418 +EXPORT_SYMBOL(module_alloc_exec);
27419 +
27420 +void module_memfree_exec(void *module_region)
27421 +{
27422 + vunmap(module_region);
27423 +}
27424 +EXPORT_SYMBOL(module_memfree_exec);
27425 +#else
27426 +void module_memfree_exec(void *module_region)
27427 +{
27428 + module_memfree(module_region);
27429 +}
27430 +EXPORT_SYMBOL(module_memfree_exec);
27431 +
27432 +void *module_alloc_exec(unsigned long size)
27433 +{
27434 + return __module_alloc(size, PAGE_KERNEL_RX);
27435 +}
27436 +EXPORT_SYMBOL(module_alloc_exec);
27437 +#endif
27438 +#endif
27439 +
27440 #ifdef CONFIG_X86_32
27441 int apply_relocate(Elf32_Shdr *sechdrs,
27442 const char *strtab,
27443 @@ -105,14 +150,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27444 unsigned int i;
27445 Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
27446 Elf32_Sym *sym;
27447 - uint32_t *location;
27448 + uint32_t *plocation, location;
27449
27450 DEBUGP("Applying relocate section %u to %u\n",
27451 relsec, sechdrs[relsec].sh_info);
27452 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
27453 /* This is where to make the change */
27454 - location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
27455 - + rel[i].r_offset;
27456 + plocation = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr + rel[i].r_offset;
27457 + location = (uint32_t)plocation;
27458 + if (sechdrs[sechdrs[relsec].sh_info].sh_flags & SHF_EXECINSTR)
27459 + plocation = (uint32_t *)ktla_ktva((unsigned long)plocation);
27460 /* This is the symbol it is referring to. Note that all
27461 undefined symbols have been resolved. */
27462 sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
27463 @@ -121,11 +168,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27464 switch (ELF32_R_TYPE(rel[i].r_info)) {
27465 case R_386_32:
27466 /* We add the value into the location given */
27467 - *location += sym->st_value;
27468 + pax_open_kernel();
27469 + *plocation += sym->st_value;
27470 + pax_close_kernel();
27471 break;
27472 case R_386_PC32:
27473 /* Add the value, subtract its position */
27474 - *location += sym->st_value - (uint32_t)location;
27475 + pax_open_kernel();
27476 + *plocation += sym->st_value - location;
27477 + pax_close_kernel();
27478 break;
27479 default:
27480 pr_err("%s: Unknown relocation: %u\n",
27481 @@ -170,21 +221,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
27482 case R_X86_64_NONE:
27483 break;
27484 case R_X86_64_64:
27485 + pax_open_kernel();
27486 *(u64 *)loc = val;
27487 + pax_close_kernel();
27488 break;
27489 case R_X86_64_32:
27490 + pax_open_kernel();
27491 *(u32 *)loc = val;
27492 + pax_close_kernel();
27493 if (val != *(u32 *)loc)
27494 goto overflow;
27495 break;
27496 case R_X86_64_32S:
27497 + pax_open_kernel();
27498 *(s32 *)loc = val;
27499 + pax_close_kernel();
27500 if ((s64)val != *(s32 *)loc)
27501 goto overflow;
27502 break;
27503 case R_X86_64_PC32:
27504 val -= (u64)loc;
27505 + pax_open_kernel();
27506 *(u32 *)loc = val;
27507 + pax_close_kernel();
27508 +
27509 #if 0
27510 if ((s64)val != *(s32 *)loc)
27511 goto overflow;
27512 diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
27513 index 113e707..0a690e1 100644
27514 --- a/arch/x86/kernel/msr.c
27515 +++ b/arch/x86/kernel/msr.c
27516 @@ -39,6 +39,7 @@
27517 #include <linux/notifier.h>
27518 #include <linux/uaccess.h>
27519 #include <linux/gfp.h>
27520 +#include <linux/grsecurity.h>
27521
27522 #include <asm/processor.h>
27523 #include <asm/msr.h>
27524 @@ -105,6 +106,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
27525 int err = 0;
27526 ssize_t bytes = 0;
27527
27528 +#ifdef CONFIG_GRKERNSEC_KMEM
27529 + gr_handle_msr_write();
27530 + return -EPERM;
27531 +#endif
27532 +
27533 if (count % 8)
27534 return -EINVAL; /* Invalid chunk size */
27535
27536 @@ -152,6 +158,10 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg)
27537 err = -EBADF;
27538 break;
27539 }
27540 +#ifdef CONFIG_GRKERNSEC_KMEM
27541 + gr_handle_msr_write();
27542 + return -EPERM;
27543 +#endif
27544 if (copy_from_user(&regs, uregs, sizeof regs)) {
27545 err = -EFAULT;
27546 break;
27547 @@ -235,7 +245,7 @@ static int msr_class_cpu_callback(struct notifier_block *nfb,
27548 return notifier_from_errno(err);
27549 }
27550
27551 -static struct notifier_block __refdata msr_class_cpu_notifier = {
27552 +static struct notifier_block msr_class_cpu_notifier = {
27553 .notifier_call = msr_class_cpu_callback,
27554 };
27555
27556 diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
27557 index d05bd2e..f690edd 100644
27558 --- a/arch/x86/kernel/nmi.c
27559 +++ b/arch/x86/kernel/nmi.c
27560 @@ -98,16 +98,16 @@ fs_initcall(nmi_warning_debugfs);
27561
27562 static void nmi_max_handler(struct irq_work *w)
27563 {
27564 - struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
27565 + struct nmiwork *n = container_of(w, struct nmiwork, irq_work);
27566 int remainder_ns, decimal_msecs;
27567 - u64 whole_msecs = ACCESS_ONCE(a->max_duration);
27568 + u64 whole_msecs = ACCESS_ONCE(n->max_duration);
27569
27570 remainder_ns = do_div(whole_msecs, (1000 * 1000));
27571 decimal_msecs = remainder_ns / 1000;
27572
27573 printk_ratelimited(KERN_INFO
27574 "INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
27575 - a->handler, whole_msecs, decimal_msecs);
27576 + n->action->handler, whole_msecs, decimal_msecs);
27577 }
27578
27579 static int nmi_handle(unsigned int type, struct pt_regs *regs, bool b2b)
27580 @@ -134,11 +134,11 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs, bool b2b)
27581 delta = sched_clock() - delta;
27582 trace_nmi_handler(a->handler, (int)delta, thishandled);
27583
27584 - if (delta < nmi_longest_ns || delta < a->max_duration)
27585 + if (delta < nmi_longest_ns || delta < a->work->max_duration)
27586 continue;
27587
27588 - a->max_duration = delta;
27589 - irq_work_queue(&a->irq_work);
27590 + a->work->max_duration = delta;
27591 + irq_work_queue(&a->work->irq_work);
27592 }
27593
27594 rcu_read_unlock();
27595 @@ -148,7 +148,7 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs, bool b2b)
27596 }
27597 NOKPROBE_SYMBOL(nmi_handle);
27598
27599 -int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27600 +int __register_nmi_handler(unsigned int type, const struct nmiaction *action)
27601 {
27602 struct nmi_desc *desc = nmi_to_desc(type);
27603 unsigned long flags;
27604 @@ -156,7 +156,8 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27605 if (!action->handler)
27606 return -EINVAL;
27607
27608 - init_irq_work(&action->irq_work, nmi_max_handler);
27609 + action->work->action = action;
27610 + init_irq_work(&action->work->irq_work, nmi_max_handler);
27611
27612 spin_lock_irqsave(&desc->lock, flags);
27613
27614 @@ -174,9 +175,9 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27615 * event confuses some handlers (kdump uses this flag)
27616 */
27617 if (action->flags & NMI_FLAG_FIRST)
27618 - list_add_rcu(&action->list, &desc->head);
27619 + pax_list_add_rcu((struct list_head *)&action->list, &desc->head);
27620 else
27621 - list_add_tail_rcu(&action->list, &desc->head);
27622 + pax_list_add_tail_rcu((struct list_head *)&action->list, &desc->head);
27623
27624 spin_unlock_irqrestore(&desc->lock, flags);
27625 return 0;
27626 @@ -199,7 +200,7 @@ void unregister_nmi_handler(unsigned int type, const char *name)
27627 if (!strcmp(n->name, name)) {
27628 WARN(in_nmi(),
27629 "Trying to free NMI (%s) from NMI context!\n", n->name);
27630 - list_del_rcu(&n->list);
27631 + pax_list_del_rcu((struct list_head *)&n->list);
27632 break;
27633 }
27634 }
27635 @@ -481,6 +482,17 @@ static DEFINE_PER_CPU(int, update_debug_stack);
27636 dotraplinkage notrace void
27637 do_nmi(struct pt_regs *regs, long error_code)
27638 {
27639 +
27640 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
27641 + if (!user_mode(regs)) {
27642 + unsigned long cs = regs->cs & 0xFFFF;
27643 + unsigned long ip = ktva_ktla(regs->ip);
27644 +
27645 + if ((cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS) && ip <= (unsigned long)_etext)
27646 + regs->ip = ip;
27647 + }
27648 +#endif
27649 +
27650 if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {
27651 this_cpu_write(nmi_state, NMI_LATCHED);
27652 return;
27653 diff --git a/arch/x86/kernel/nmi_selftest.c b/arch/x86/kernel/nmi_selftest.c
27654 index 6d9582e..f746287 100644
27655 --- a/arch/x86/kernel/nmi_selftest.c
27656 +++ b/arch/x86/kernel/nmi_selftest.c
27657 @@ -43,7 +43,7 @@ static void __init init_nmi_testsuite(void)
27658 {
27659 /* trap all the unknown NMIs we may generate */
27660 register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk",
27661 - __initdata);
27662 + __initconst);
27663 }
27664
27665 static void __init cleanup_nmi_testsuite(void)
27666 @@ -66,7 +66,7 @@ static void __init test_nmi_ipi(struct cpumask *mask)
27667 unsigned long timeout;
27668
27669 if (register_nmi_handler(NMI_LOCAL, test_nmi_ipi_callback,
27670 - NMI_FLAG_FIRST, "nmi_selftest", __initdata)) {
27671 + NMI_FLAG_FIRST, "nmi_selftest", __initconst)) {
27672 nmi_fail = FAILURE;
27673 return;
27674 }
27675 diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
27676 index 33ee3e0..da3519a 100644
27677 --- a/arch/x86/kernel/paravirt-spinlocks.c
27678 +++ b/arch/x86/kernel/paravirt-spinlocks.c
27679 @@ -23,7 +23,7 @@ bool pv_is_native_spin_unlock(void)
27680 }
27681 #endif
27682
27683 -struct pv_lock_ops pv_lock_ops = {
27684 +struct pv_lock_ops pv_lock_ops __read_only = {
27685 #ifdef CONFIG_SMP
27686 #ifdef CONFIG_QUEUED_SPINLOCKS
27687 .queued_spin_lock_slowpath = native_queued_spin_lock_slowpath,
27688 diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
27689 index ebb5657..dde2f45 100644
27690 --- a/arch/x86/kernel/paravirt.c
27691 +++ b/arch/x86/kernel/paravirt.c
27692 @@ -64,6 +64,9 @@ u64 _paravirt_ident_64(u64 x)
27693 {
27694 return x;
27695 }
27696 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27697 +PV_CALLEE_SAVE_REGS_THUNK(_paravirt_ident_64);
27698 +#endif
27699
27700 void __init default_banner(void)
27701 {
27702 @@ -150,16 +153,20 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
27703
27704 if (opfunc == NULL)
27705 /* If there's no function, patch it with a ud2a (BUG) */
27706 - ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
27707 - else if (opfunc == _paravirt_nop)
27708 + ret = paravirt_patch_insns(insnbuf, len, (const char *)ktva_ktla((unsigned long)ud2a), ud2a+sizeof(ud2a));
27709 + else if (opfunc == (void *)_paravirt_nop)
27710 /* If the operation is a nop, then nop the callsite */
27711 ret = paravirt_patch_nop();
27712
27713 /* identity functions just return their single argument */
27714 - else if (opfunc == _paravirt_ident_32)
27715 + else if (opfunc == (void *)_paravirt_ident_32)
27716 ret = paravirt_patch_ident_32(insnbuf, len);
27717 - else if (opfunc == _paravirt_ident_64)
27718 + else if (opfunc == (void *)_paravirt_ident_64)
27719 ret = paravirt_patch_ident_64(insnbuf, len);
27720 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27721 + else if (opfunc == (void *)__raw_callee_save__paravirt_ident_64)
27722 + ret = paravirt_patch_ident_64(insnbuf, len);
27723 +#endif
27724
27725 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
27726 #ifdef CONFIG_X86_32
27727 @@ -186,7 +193,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
27728 if (insn_len > len || start == NULL)
27729 insn_len = len;
27730 else
27731 - memcpy(insnbuf, start, insn_len);
27732 + memcpy(insnbuf, (const char *)ktla_ktva((unsigned long)start), insn_len);
27733
27734 return insn_len;
27735 }
27736 @@ -310,7 +317,7 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
27737 return this_cpu_read(paravirt_lazy_mode);
27738 }
27739
27740 -struct pv_info pv_info = {
27741 +struct pv_info pv_info __read_only = {
27742 .name = "bare hardware",
27743 .paravirt_enabled = 0,
27744 .kernel_rpl = 0,
27745 @@ -321,16 +328,16 @@ struct pv_info pv_info = {
27746 #endif
27747 };
27748
27749 -struct pv_init_ops pv_init_ops = {
27750 +struct pv_init_ops pv_init_ops __read_only = {
27751 .patch = native_patch,
27752 };
27753
27754 -struct pv_time_ops pv_time_ops = {
27755 +struct pv_time_ops pv_time_ops __read_only = {
27756 .sched_clock = native_sched_clock,
27757 .steal_clock = native_steal_clock,
27758 };
27759
27760 -__visible struct pv_irq_ops pv_irq_ops = {
27761 +__visible struct pv_irq_ops pv_irq_ops __read_only = {
27762 .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
27763 .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
27764 .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
27765 @@ -342,7 +349,7 @@ __visible struct pv_irq_ops pv_irq_ops = {
27766 #endif
27767 };
27768
27769 -__visible struct pv_cpu_ops pv_cpu_ops = {
27770 +__visible struct pv_cpu_ops pv_cpu_ops __read_only = {
27771 .cpuid = native_cpuid,
27772 .get_debugreg = native_get_debugreg,
27773 .set_debugreg = native_set_debugreg,
27774 @@ -405,21 +412,26 @@ NOKPROBE_SYMBOL(native_get_debugreg);
27775 NOKPROBE_SYMBOL(native_set_debugreg);
27776 NOKPROBE_SYMBOL(native_load_idt);
27777
27778 -struct pv_apic_ops pv_apic_ops = {
27779 +struct pv_apic_ops pv_apic_ops __read_only= {
27780 #ifdef CONFIG_X86_LOCAL_APIC
27781 .startup_ipi_hook = paravirt_nop,
27782 #endif
27783 };
27784
27785 -#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
27786 +#ifdef CONFIG_X86_32
27787 +#ifdef CONFIG_X86_PAE
27788 +/* 64-bit pagetable entries */
27789 +#define PTE_IDENT PV_CALLEE_SAVE(_paravirt_ident_64)
27790 +#else
27791 /* 32-bit pagetable entries */
27792 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
27793 +#endif
27794 #else
27795 /* 64-bit pagetable entries */
27796 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
27797 #endif
27798
27799 -struct pv_mmu_ops pv_mmu_ops = {
27800 +struct pv_mmu_ops pv_mmu_ops __read_only = {
27801
27802 .read_cr2 = native_read_cr2,
27803 .write_cr2 = native_write_cr2,
27804 @@ -469,6 +481,7 @@ struct pv_mmu_ops pv_mmu_ops = {
27805 .make_pud = PTE_IDENT,
27806
27807 .set_pgd = native_set_pgd,
27808 + .set_pgd_batched = native_set_pgd_batched,
27809 #endif
27810 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
27811
27812 @@ -489,6 +502,12 @@ struct pv_mmu_ops pv_mmu_ops = {
27813 },
27814
27815 .set_fixmap = native_set_fixmap,
27816 +
27817 +#ifdef CONFIG_PAX_KERNEXEC
27818 + .pax_open_kernel = native_pax_open_kernel,
27819 + .pax_close_kernel = native_pax_close_kernel,
27820 +#endif
27821 +
27822 };
27823
27824 EXPORT_SYMBOL_GPL(pv_time_ops);
27825 diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c
27826 index 8aa0558..465512e 100644
27827 --- a/arch/x86/kernel/paravirt_patch_64.c
27828 +++ b/arch/x86/kernel/paravirt_patch_64.c
27829 @@ -9,7 +9,11 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax");
27830 DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
27831 DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
27832 DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
27833 +
27834 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27835 DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
27836 +#endif
27837 +
27838 DEF_NATIVE(pv_cpu_ops, clts, "clts");
27839 DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
27840
27841 @@ -62,7 +66,11 @@ unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
27842 PATCH_SITE(pv_mmu_ops, read_cr3);
27843 PATCH_SITE(pv_mmu_ops, write_cr3);
27844 PATCH_SITE(pv_cpu_ops, clts);
27845 +
27846 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27847 PATCH_SITE(pv_mmu_ops, flush_tlb_single);
27848 +#endif
27849 +
27850 PATCH_SITE(pv_cpu_ops, wbinvd);
27851 #if defined(CONFIG_PARAVIRT_SPINLOCKS) && defined(CONFIG_QUEUED_SPINLOCKS)
27852 case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):
27853 diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
27854 index 0497f71..7186c0d 100644
27855 --- a/arch/x86/kernel/pci-calgary_64.c
27856 +++ b/arch/x86/kernel/pci-calgary_64.c
27857 @@ -1347,7 +1347,7 @@ static void __init get_tce_space_from_tar(void)
27858 tce_space = be64_to_cpu(readq(target));
27859 tce_space = tce_space & TAR_SW_BITS;
27860
27861 - tce_space = tce_space & (~specified_table_size);
27862 + tce_space = tce_space & (~(unsigned long)specified_table_size);
27863 info->tce_space = (u64 *)__va(tce_space);
27864 }
27865 }
27866 diff --git a/arch/x86/kernel/pci-iommu_table.c b/arch/x86/kernel/pci-iommu_table.c
27867 index 35ccf75..7a15747 100644
27868 --- a/arch/x86/kernel/pci-iommu_table.c
27869 +++ b/arch/x86/kernel/pci-iommu_table.c
27870 @@ -2,7 +2,7 @@
27871 #include <asm/iommu_table.h>
27872 #include <linux/string.h>
27873 #include <linux/kallsyms.h>
27874 -
27875 +#include <linux/sched.h>
27876
27877 #define DEBUG 1
27878
27879 diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
27880 index adf0392..88a7576 100644
27881 --- a/arch/x86/kernel/pci-swiotlb.c
27882 +++ b/arch/x86/kernel/pci-swiotlb.c
27883 @@ -40,7 +40,7 @@ void x86_swiotlb_free_coherent(struct device *dev, size_t size,
27884 struct dma_attrs *attrs)
27885 {
27886 if (is_swiotlb_buffer(dma_to_phys(dev, dma_addr)))
27887 - swiotlb_free_coherent(dev, size, vaddr, dma_addr);
27888 + swiotlb_free_coherent(dev, size, vaddr, dma_addr, attrs);
27889 else
27890 dma_generic_free_coherent(dev, size, vaddr, dma_addr, attrs);
27891 }
27892 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
27893 index c27cad7..47c45ed 100644
27894 --- a/arch/x86/kernel/process.c
27895 +++ b/arch/x86/kernel/process.c
27896 @@ -15,6 +15,7 @@
27897 #include <linux/dmi.h>
27898 #include <linux/utsname.h>
27899 #include <linux/stackprotector.h>
27900 +#include <linux/kthread.h>
27901 #include <linux/tick.h>
27902 #include <linux/cpuidle.h>
27903 #include <trace/events/power.h>
27904 @@ -37,7 +38,8 @@
27905 * section. Since TSS's are completely CPU-local, we want them
27906 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
27907 */
27908 -__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27909 +struct tss_struct cpu_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = {
27910 + [0 ... NR_CPUS-1] = {
27911 .x86_tss = {
27912 .sp0 = TOP_OF_INIT_STACK,
27913 #ifdef CONFIG_X86_32
27914 @@ -55,6 +57,7 @@ __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27915 */
27916 .io_bitmap = { [0 ... IO_BITMAP_LONGS] = ~0 },
27917 #endif
27918 +}
27919 };
27920 EXPORT_PER_CPU_SYMBOL(cpu_tss);
27921
27922 @@ -75,17 +78,36 @@ void idle_notifier_unregister(struct notifier_block *n)
27923 EXPORT_SYMBOL_GPL(idle_notifier_unregister);
27924 #endif
27925
27926 +struct kmem_cache *fpregs_state_cachep;
27927 +EXPORT_SYMBOL(fpregs_state_cachep);
27928 +
27929 +void __init arch_task_cache_init(void)
27930 +{
27931 + /* create a slab on which task_structs can be allocated */
27932 + fpregs_state_cachep =
27933 + kmem_cache_create("fpregs_state", xstate_size,
27934 + ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK | SLAB_USERCOPY, NULL);
27935 +}
27936 +
27937 /*
27938 * this gets called so that we can store lazy state into memory and copy the
27939 * current task into the new thread.
27940 */
27941 int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
27942 {
27943 - memcpy(dst, src, arch_task_struct_size);
27944 + *dst = *src;
27945 + dst->thread.fpu.state = kmem_cache_alloc_node(fpregs_state_cachep, GFP_KERNEL, tsk_fork_get_node(src));
27946 + memcpy(dst->thread.fpu.state, src->thread.fpu.state, xstate_size);
27947
27948 return fpu__copy(&dst->thread.fpu, &src->thread.fpu);
27949 }
27950
27951 +void arch_release_task_struct(struct task_struct *tsk)
27952 +{
27953 + kmem_cache_free(fpregs_state_cachep, tsk->thread.fpu.state);
27954 + tsk->thread.fpu.state = NULL;
27955 +}
27956 +
27957 /*
27958 * Free current thread data structures etc..
27959 */
27960 @@ -97,7 +119,7 @@ void exit_thread(void)
27961 struct fpu *fpu = &t->fpu;
27962
27963 if (bp) {
27964 - struct tss_struct *tss = &per_cpu(cpu_tss, get_cpu());
27965 + struct tss_struct *tss = cpu_tss + get_cpu();
27966
27967 t->io_bitmap_ptr = NULL;
27968 clear_thread_flag(TIF_IO_BITMAP);
27969 @@ -117,6 +139,9 @@ void flush_thread(void)
27970 {
27971 struct task_struct *tsk = current;
27972
27973 +#if defined(CONFIG_X86_32) && !defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_PAX_MEMORY_UDEREF)
27974 + loadsegment(gs, 0);
27975 +#endif
27976 flush_ptrace_hw_breakpoint(tsk);
27977 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
27978
27979 @@ -258,7 +283,7 @@ static void __exit_idle(void)
27980 void exit_idle(void)
27981 {
27982 /* idle loop has pid 0 */
27983 - if (current->pid)
27984 + if (task_pid_nr(current))
27985 return;
27986 __exit_idle();
27987 }
27988 @@ -311,7 +336,7 @@ bool xen_set_default_idle(void)
27989 return ret;
27990 }
27991 #endif
27992 -void stop_this_cpu(void *dummy)
27993 +__noreturn void stop_this_cpu(void *dummy)
27994 {
27995 local_irq_disable();
27996 /*
27997 @@ -488,16 +513,40 @@ static int __init idle_setup(char *str)
27998 }
27999 early_param("idle", idle_setup);
28000
28001 -unsigned long arch_align_stack(unsigned long sp)
28002 -{
28003 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
28004 - sp -= get_random_int() % 8192;
28005 - return sp & ~0xf;
28006 -}
28007 -
28008 unsigned long arch_randomize_brk(struct mm_struct *mm)
28009 {
28010 unsigned long range_end = mm->brk + 0x02000000;
28011 return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
28012 }
28013
28014 +#ifdef CONFIG_PAX_RANDKSTACK
28015 +void pax_randomize_kstack(struct pt_regs *regs)
28016 +{
28017 + struct thread_struct *thread = &current->thread;
28018 + unsigned long time;
28019 +
28020 + if (!randomize_va_space)
28021 + return;
28022 +
28023 + if (v8086_mode(regs))
28024 + return;
28025 +
28026 + rdtscl(time);
28027 +
28028 + /* P4 seems to return a 0 LSB, ignore it */
28029 +#ifdef CONFIG_MPENTIUM4
28030 + time &= 0x3EUL;
28031 + time <<= 2;
28032 +#elif defined(CONFIG_X86_64)
28033 + time &= 0xFUL;
28034 + time <<= 4;
28035 +#else
28036 + time &= 0x1FUL;
28037 + time <<= 3;
28038 +#endif
28039 +
28040 + thread->sp0 ^= time;
28041 + load_sp0(cpu_tss + smp_processor_id(), thread);
28042 + this_cpu_write(cpu_current_top_of_stack, thread->sp0);
28043 +}
28044 +#endif
28045 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
28046 index f73c962..6589332 100644
28047 --- a/arch/x86/kernel/process_32.c
28048 +++ b/arch/x86/kernel/process_32.c
28049 @@ -63,6 +63,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
28050 unsigned long thread_saved_pc(struct task_struct *tsk)
28051 {
28052 return ((unsigned long *)tsk->thread.sp)[3];
28053 +//XXX return tsk->thread.eip;
28054 }
28055
28056 void __show_regs(struct pt_regs *regs, int all)
28057 @@ -75,16 +76,15 @@ void __show_regs(struct pt_regs *regs, int all)
28058 if (user_mode(regs)) {
28059 sp = regs->sp;
28060 ss = regs->ss & 0xffff;
28061 - gs = get_user_gs(regs);
28062 } else {
28063 sp = kernel_stack_pointer(regs);
28064 savesegment(ss, ss);
28065 - savesegment(gs, gs);
28066 }
28067 + gs = get_user_gs(regs);
28068
28069 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
28070 (u16)regs->cs, regs->ip, regs->flags,
28071 - smp_processor_id());
28072 + raw_smp_processor_id());
28073 print_symbol("EIP is at %s\n", regs->ip);
28074
28075 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
28076 @@ -131,21 +131,22 @@ void release_thread(struct task_struct *dead_task)
28077 int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
28078 unsigned long arg, struct task_struct *p, unsigned long tls)
28079 {
28080 - struct pt_regs *childregs = task_pt_regs(p);
28081 + struct pt_regs *childregs = task_stack_page(p) + THREAD_SIZE - sizeof(struct pt_regs) - 8;
28082 struct task_struct *tsk;
28083 int err;
28084
28085 p->thread.sp = (unsigned long) childregs;
28086 p->thread.sp0 = (unsigned long) (childregs+1);
28087 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
28088 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
28089
28090 if (unlikely(p->flags & PF_KTHREAD)) {
28091 /* kernel thread */
28092 memset(childregs, 0, sizeof(struct pt_regs));
28093 p->thread.ip = (unsigned long) ret_from_kernel_thread;
28094 - task_user_gs(p) = __KERNEL_STACK_CANARY;
28095 - childregs->ds = __USER_DS;
28096 - childregs->es = __USER_DS;
28097 + savesegment(gs, childregs->gs);
28098 + childregs->ds = __KERNEL_DS;
28099 + childregs->es = __KERNEL_DS;
28100 childregs->fs = __KERNEL_PERCPU;
28101 childregs->bx = sp; /* function */
28102 childregs->bp = arg;
28103 @@ -245,7 +246,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28104 struct fpu *prev_fpu = &prev->fpu;
28105 struct fpu *next_fpu = &next->fpu;
28106 int cpu = smp_processor_id();
28107 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
28108 + struct tss_struct *tss = cpu_tss + cpu;
28109 fpu_switch_t fpu_switch;
28110
28111 /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
28112 @@ -264,6 +265,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28113 */
28114 lazy_save_gs(prev->gs);
28115
28116 +#ifdef CONFIG_PAX_MEMORY_UDEREF
28117 + __set_fs(task_thread_info(next_p)->addr_limit);
28118 +#endif
28119 +
28120 /*
28121 * Load the per-thread Thread-Local Storage descriptor.
28122 */
28123 @@ -307,9 +312,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28124 * current_thread_info().
28125 */
28126 load_sp0(tss, next);
28127 - this_cpu_write(cpu_current_top_of_stack,
28128 - (unsigned long)task_stack_page(next_p) +
28129 - THREAD_SIZE);
28130 + this_cpu_write(current_task, next_p);
28131 + this_cpu_write(current_tinfo, &next_p->tinfo);
28132 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
28133
28134 /*
28135 * Restore %gs if needed (which is common)
28136 @@ -319,8 +324,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28137
28138 switch_fpu_finish(next_fpu, fpu_switch);
28139
28140 - this_cpu_write(current_task, next_p);
28141 -
28142 return prev_p;
28143 }
28144
28145 @@ -350,4 +353,3 @@ unsigned long get_wchan(struct task_struct *p)
28146 } while (count++ < 16);
28147 return 0;
28148 }
28149 -
28150 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
28151 index a90ac95..c285bd5 100644
28152 --- a/arch/x86/kernel/process_64.c
28153 +++ b/arch/x86/kernel/process_64.c
28154 @@ -157,9 +157,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
28155 struct pt_regs *childregs;
28156 struct task_struct *me = current;
28157
28158 - p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE;
28159 + p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE - 16;
28160 childregs = task_pt_regs(p);
28161 p->thread.sp = (unsigned long) childregs;
28162 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
28163 set_tsk_thread_flag(p, TIF_FORK);
28164 p->thread.io_bitmap_ptr = NULL;
28165
28166 @@ -169,6 +170,8 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
28167 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
28168 savesegment(es, p->thread.es);
28169 savesegment(ds, p->thread.ds);
28170 + savesegment(ss, p->thread.ss);
28171 + BUG_ON(p->thread.ss == __UDEREF_KERNEL_DS);
28172 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
28173
28174 if (unlikely(p->flags & PF_KTHREAD)) {
28175 @@ -276,7 +279,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28176 struct fpu *prev_fpu = &prev->fpu;
28177 struct fpu *next_fpu = &next->fpu;
28178 int cpu = smp_processor_id();
28179 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
28180 + struct tss_struct *tss = cpu_tss + cpu;
28181 unsigned fsindex, gsindex;
28182 fpu_switch_t fpu_switch;
28183
28184 @@ -327,6 +330,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28185 if (unlikely(next->ds | prev->ds))
28186 loadsegment(ds, next->ds);
28187
28188 + savesegment(ss, prev->ss);
28189 + if (unlikely(next->ss != prev->ss))
28190 + loadsegment(ss, next->ss);
28191 +
28192 /*
28193 * Switch FS and GS.
28194 *
28195 @@ -398,6 +405,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28196 * Switch the PDA and FPU contexts.
28197 */
28198 this_cpu_write(current_task, next_p);
28199 + this_cpu_write(current_tinfo, &next_p->tinfo);
28200
28201 /*
28202 * If it were not for PREEMPT_ACTIVE we could guarantee that the
28203 @@ -410,6 +418,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28204 /* Reload esp0 and ss1. This changes current_thread_info(). */
28205 load_sp0(tss, next);
28206
28207 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
28208 +
28209 /*
28210 * Now maybe reload the debug registers and handle I/O bitmaps
28211 */
28212 @@ -522,9 +532,7 @@ unsigned long get_wchan(struct task_struct *p)
28213 * PADDING
28214 * ----------- top = topmax - TOP_OF_KERNEL_STACK_PADDING
28215 * stack
28216 - * ----------- bottom = start + sizeof(thread_info)
28217 - * thread_info
28218 - * ----------- start
28219 + * ----------- bottom = start
28220 *
28221 * The tasks stack pointer points at the location where the
28222 * framepointer is stored. The data on the stack is:
28223 @@ -535,7 +543,7 @@ unsigned long get_wchan(struct task_struct *p)
28224 */
28225 top = start + THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING;
28226 top -= 2 * sizeof(unsigned long);
28227 - bottom = start + sizeof(struct thread_info);
28228 + bottom = start;
28229
28230 sp = READ_ONCE(p->thread.sp);
28231 if (sp < bottom || sp > top)
28232 diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
28233 index 9be72bc..f4329c5 100644
28234 --- a/arch/x86/kernel/ptrace.c
28235 +++ b/arch/x86/kernel/ptrace.c
28236 @@ -186,10 +186,10 @@ unsigned long kernel_stack_pointer(struct pt_regs *regs)
28237 unsigned long sp = (unsigned long)&regs->sp;
28238 u32 *prev_esp;
28239
28240 - if (context == (sp & ~(THREAD_SIZE - 1)))
28241 + if (context == ((sp + 8) & ~(THREAD_SIZE - 1)))
28242 return sp;
28243
28244 - prev_esp = (u32 *)(context);
28245 + prev_esp = *(u32 **)(context);
28246 if (prev_esp)
28247 return (unsigned long)prev_esp;
28248
28249 @@ -446,6 +446,20 @@ static int putreg(struct task_struct *child,
28250 if (child->thread.gs != value)
28251 return do_arch_prctl(child, ARCH_SET_GS, value);
28252 return 0;
28253 +
28254 + case offsetof(struct user_regs_struct,ip):
28255 + /*
28256 + * Protect against any attempt to set ip to an
28257 + * impossible address. There are dragons lurking if the
28258 + * address is noncanonical. (This explicitly allows
28259 + * setting ip to TASK_SIZE_MAX, because user code can do
28260 + * that all by itself by running off the end of its
28261 + * address space.
28262 + */
28263 + if (value > TASK_SIZE_MAX)
28264 + return -EIO;
28265 + break;
28266 +
28267 #endif
28268 }
28269
28270 @@ -582,7 +596,7 @@ static void ptrace_triggered(struct perf_event *bp,
28271 static unsigned long ptrace_get_dr7(struct perf_event *bp[])
28272 {
28273 int i;
28274 - int dr7 = 0;
28275 + unsigned long dr7 = 0;
28276 struct arch_hw_breakpoint *info;
28277
28278 for (i = 0; i < HBP_NUM; i++) {
28279 @@ -816,7 +830,7 @@ long arch_ptrace(struct task_struct *child, long request,
28280 unsigned long addr, unsigned long data)
28281 {
28282 int ret;
28283 - unsigned long __user *datap = (unsigned long __user *)data;
28284 + unsigned long __user *datap = (__force unsigned long __user *)data;
28285
28286 switch (request) {
28287 /* read the word at location addr in the USER area. */
28288 @@ -901,14 +915,14 @@ long arch_ptrace(struct task_struct *child, long request,
28289 if ((int) addr < 0)
28290 return -EIO;
28291 ret = do_get_thread_area(child, addr,
28292 - (struct user_desc __user *)data);
28293 + (__force struct user_desc __user *) data);
28294 break;
28295
28296 case PTRACE_SET_THREAD_AREA:
28297 if ((int) addr < 0)
28298 return -EIO;
28299 ret = do_set_thread_area(child, addr,
28300 - (struct user_desc __user *)data, 0);
28301 + (__force struct user_desc __user *) data, 0);
28302 break;
28303 #endif
28304
28305 @@ -1286,7 +1300,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
28306
28307 #ifdef CONFIG_X86_64
28308
28309 -static struct user_regset x86_64_regsets[] __read_mostly = {
28310 +static user_regset_no_const x86_64_regsets[] __read_only = {
28311 [REGSET_GENERAL] = {
28312 .core_note_type = NT_PRSTATUS,
28313 .n = sizeof(struct user_regs_struct) / sizeof(long),
28314 @@ -1327,7 +1341,7 @@ static const struct user_regset_view user_x86_64_view = {
28315 #endif /* CONFIG_X86_64 */
28316
28317 #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
28318 -static struct user_regset x86_32_regsets[] __read_mostly = {
28319 +static user_regset_no_const x86_32_regsets[] __read_only = {
28320 [REGSET_GENERAL] = {
28321 .core_note_type = NT_PRSTATUS,
28322 .n = sizeof(struct user_regs_struct32) / sizeof(u32),
28323 @@ -1380,7 +1394,7 @@ static const struct user_regset_view user_x86_32_view = {
28324 */
28325 u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS];
28326
28327 -void update_regset_xstate_info(unsigned int size, u64 xstate_mask)
28328 +void __init update_regset_xstate_info(unsigned int size, u64 xstate_mask)
28329 {
28330 #ifdef CONFIG_X86_64
28331 x86_64_regsets[REGSET_XSTATE].n = size / sizeof(u64);
28332 @@ -1415,7 +1429,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
28333 memset(info, 0, sizeof(*info));
28334 info->si_signo = SIGTRAP;
28335 info->si_code = si_code;
28336 - info->si_addr = user_mode(regs) ? (void __user *)regs->ip : NULL;
28337 + info->si_addr = user_mode(regs) ? (__force void __user *)regs->ip : NULL;
28338 }
28339
28340 void user_single_step_siginfo(struct task_struct *tsk,
28341 @@ -1449,6 +1463,10 @@ static void do_audit_syscall_entry(struct pt_regs *regs, u32 arch)
28342 }
28343 }
28344
28345 +#ifdef CONFIG_GRKERNSEC_SETXID
28346 +extern void gr_delayed_cred_worker(void);
28347 +#endif
28348 +
28349 /*
28350 * We can return 0 to resume the syscall or anything else to go to phase
28351 * 2. If we resume the syscall, we need to put something appropriate in
28352 @@ -1556,6 +1574,11 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
28353
28354 BUG_ON(regs != task_pt_regs(current));
28355
28356 +#ifdef CONFIG_GRKERNSEC_SETXID
28357 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
28358 + gr_delayed_cred_worker();
28359 +#endif
28360 +
28361 /*
28362 * If we stepped into a sysenter/syscall insn, it trapped in
28363 * kernel mode; do_debug() cleared TF and set TIF_SINGLESTEP.
28364 @@ -1614,6 +1637,11 @@ void syscall_trace_leave(struct pt_regs *regs)
28365 */
28366 user_exit();
28367
28368 +#ifdef CONFIG_GRKERNSEC_SETXID
28369 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
28370 + gr_delayed_cred_worker();
28371 +#endif
28372 +
28373 audit_syscall_exit(regs);
28374
28375 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
28376 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
28377 index 2f355d2..e75ed0a 100644
28378 --- a/arch/x86/kernel/pvclock.c
28379 +++ b/arch/x86/kernel/pvclock.c
28380 @@ -51,11 +51,11 @@ void pvclock_touch_watchdogs(void)
28381 reset_hung_task_detector();
28382 }
28383
28384 -static atomic64_t last_value = ATOMIC64_INIT(0);
28385 +static atomic64_unchecked_t last_value = ATOMIC64_INIT(0);
28386
28387 void pvclock_resume(void)
28388 {
28389 - atomic64_set(&last_value, 0);
28390 + atomic64_set_unchecked(&last_value, 0);
28391 }
28392
28393 u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
28394 @@ -105,11 +105,11 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
28395 * updating at the same time, and one of them could be slightly behind,
28396 * making the assumption that last_value always go forward fail to hold.
28397 */
28398 - last = atomic64_read(&last_value);
28399 + last = atomic64_read_unchecked(&last_value);
28400 do {
28401 if (ret < last)
28402 return last;
28403 - last = atomic64_cmpxchg(&last_value, last, ret);
28404 + last = atomic64_cmpxchg_unchecked(&last_value, last, ret);
28405 } while (unlikely(last != ret));
28406
28407 return ret;
28408 diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
28409 index 86db4bc..a50a54a 100644
28410 --- a/arch/x86/kernel/reboot.c
28411 +++ b/arch/x86/kernel/reboot.c
28412 @@ -70,6 +70,11 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
28413
28414 void __noreturn machine_real_restart(unsigned int type)
28415 {
28416 +
28417 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF))
28418 + struct desc_struct *gdt;
28419 +#endif
28420 +
28421 local_irq_disable();
28422
28423 /*
28424 @@ -97,7 +102,29 @@ void __noreturn machine_real_restart(unsigned int type)
28425
28426 /* Jump to the identity-mapped low memory code */
28427 #ifdef CONFIG_X86_32
28428 - asm volatile("jmpl *%0" : :
28429 +
28430 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
28431 + gdt = get_cpu_gdt_table(smp_processor_id());
28432 + pax_open_kernel();
28433 +#ifdef CONFIG_PAX_MEMORY_UDEREF
28434 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
28435 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
28436 + loadsegment(ds, __KERNEL_DS);
28437 + loadsegment(es, __KERNEL_DS);
28438 + loadsegment(ss, __KERNEL_DS);
28439 +#endif
28440 +#ifdef CONFIG_PAX_KERNEXEC
28441 + gdt[GDT_ENTRY_KERNEL_CS].base0 = 0;
28442 + gdt[GDT_ENTRY_KERNEL_CS].base1 = 0;
28443 + gdt[GDT_ENTRY_KERNEL_CS].base2 = 0;
28444 + gdt[GDT_ENTRY_KERNEL_CS].limit0 = 0xffff;
28445 + gdt[GDT_ENTRY_KERNEL_CS].limit = 0xf;
28446 + gdt[GDT_ENTRY_KERNEL_CS].g = 1;
28447 +#endif
28448 + pax_close_kernel();
28449 +#endif
28450 +
28451 + asm volatile("ljmpl *%0" : :
28452 "rm" (real_mode_header->machine_real_restart_asm),
28453 "a" (type));
28454 #else
28455 @@ -137,7 +164,7 @@ static int __init set_kbd_reboot(const struct dmi_system_id *d)
28456 /*
28457 * This is a single dmi_table handling all reboot quirks.
28458 */
28459 -static struct dmi_system_id __initdata reboot_dmi_table[] = {
28460 +static const struct dmi_system_id __initconst reboot_dmi_table[] = {
28461
28462 /* Acer */
28463 { /* Handle reboot issue on Acer Aspire one */
28464 @@ -511,7 +538,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
28465 * This means that this function can never return, it can misbehave
28466 * by not rebooting properly and hanging.
28467 */
28468 -static void native_machine_emergency_restart(void)
28469 +static void __noreturn native_machine_emergency_restart(void)
28470 {
28471 int i;
28472 int attempt = 0;
28473 @@ -631,13 +658,13 @@ void native_machine_shutdown(void)
28474 #endif
28475 }
28476
28477 -static void __machine_emergency_restart(int emergency)
28478 +static void __noreturn __machine_emergency_restart(int emergency)
28479 {
28480 reboot_emergency = emergency;
28481 machine_ops.emergency_restart();
28482 }
28483
28484 -static void native_machine_restart(char *__unused)
28485 +static void __noreturn native_machine_restart(char *__unused)
28486 {
28487 pr_notice("machine restart\n");
28488
28489 @@ -646,7 +673,7 @@ static void native_machine_restart(char *__unused)
28490 __machine_emergency_restart(0);
28491 }
28492
28493 -static void native_machine_halt(void)
28494 +static void __noreturn native_machine_halt(void)
28495 {
28496 /* Stop other cpus and apics */
28497 machine_shutdown();
28498 @@ -656,7 +683,7 @@ static void native_machine_halt(void)
28499 stop_this_cpu(NULL);
28500 }
28501
28502 -static void native_machine_power_off(void)
28503 +static void __noreturn native_machine_power_off(void)
28504 {
28505 if (pm_power_off) {
28506 if (!reboot_force)
28507 @@ -665,9 +692,10 @@ static void native_machine_power_off(void)
28508 }
28509 /* A fallback in case there is no PM info available */
28510 tboot_shutdown(TB_SHUTDOWN_HALT);
28511 + unreachable();
28512 }
28513
28514 -struct machine_ops machine_ops = {
28515 +struct machine_ops machine_ops __read_only = {
28516 .power_off = native_machine_power_off,
28517 .shutdown = native_machine_shutdown,
28518 .emergency_restart = native_machine_emergency_restart,
28519 diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
28520 index c8e41e9..64049ef 100644
28521 --- a/arch/x86/kernel/reboot_fixups_32.c
28522 +++ b/arch/x86/kernel/reboot_fixups_32.c
28523 @@ -57,7 +57,7 @@ struct device_fixup {
28524 unsigned int vendor;
28525 unsigned int device;
28526 void (*reboot_fixup)(struct pci_dev *);
28527 -};
28528 +} __do_const;
28529
28530 /*
28531 * PCI ids solely used for fixups_table go here
28532 diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
28533 index 98111b3..73ca125 100644
28534 --- a/arch/x86/kernel/relocate_kernel_64.S
28535 +++ b/arch/x86/kernel/relocate_kernel_64.S
28536 @@ -96,8 +96,7 @@ relocate_kernel:
28537
28538 /* jump to identity mapped page */
28539 addq $(identity_mapped - relocate_kernel), %r8
28540 - pushq %r8
28541 - ret
28542 + jmp *%r8
28543
28544 identity_mapped:
28545 /* set return address to 0 if not preserving context */
28546 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
28547 index 80f874b..b3eff67 100644
28548 --- a/arch/x86/kernel/setup.c
28549 +++ b/arch/x86/kernel/setup.c
28550 @@ -111,6 +111,7 @@
28551 #include <asm/mce.h>
28552 #include <asm/alternative.h>
28553 #include <asm/prom.h>
28554 +#include <asm/boot.h>
28555
28556 /*
28557 * max_low_pfn_mapped: highest direct mapped pfn under 4GB
28558 @@ -206,10 +207,12 @@ EXPORT_SYMBOL(boot_cpu_data);
28559 #endif
28560
28561
28562 -#if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
28563 -__visible unsigned long mmu_cr4_features;
28564 +#ifdef CONFIG_X86_64
28565 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE;
28566 +#elif defined(CONFIG_X86_PAE)
28567 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PAE;
28568 #else
28569 -__visible unsigned long mmu_cr4_features = X86_CR4_PAE;
28570 +__visible unsigned long mmu_cr4_features __read_only;
28571 #endif
28572
28573 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */
28574 @@ -772,7 +775,7 @@ static void __init trim_bios_range(void)
28575 * area (640->1Mb) as ram even though it is not.
28576 * take them out.
28577 */
28578 - e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1);
28579 + e820_remove_range(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RAM, 1);
28580
28581 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
28582 }
28583 @@ -780,7 +783,7 @@ static void __init trim_bios_range(void)
28584 /* called before trim_bios_range() to spare extra sanitize */
28585 static void __init e820_add_kernel_range(void)
28586 {
28587 - u64 start = __pa_symbol(_text);
28588 + u64 start = __pa_symbol(ktla_ktva((unsigned long)_text));
28589 u64 size = __pa_symbol(_end) - start;
28590
28591 /*
28592 @@ -861,8 +864,8 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p)
28593
28594 void __init setup_arch(char **cmdline_p)
28595 {
28596 - memblock_reserve(__pa_symbol(_text),
28597 - (unsigned long)__bss_stop - (unsigned long)_text);
28598 + memblock_reserve(__pa_symbol(ktla_ktva((unsigned long)_text)),
28599 + (unsigned long)__bss_stop - ktla_ktva((unsigned long)_text));
28600
28601 early_reserve_initrd();
28602
28603 @@ -960,16 +963,16 @@ void __init setup_arch(char **cmdline_p)
28604
28605 if (!boot_params.hdr.root_flags)
28606 root_mountflags &= ~MS_RDONLY;
28607 - init_mm.start_code = (unsigned long) _text;
28608 - init_mm.end_code = (unsigned long) _etext;
28609 - init_mm.end_data = (unsigned long) _edata;
28610 + init_mm.start_code = ktla_ktva((unsigned long)_text);
28611 + init_mm.end_code = ktla_ktva((unsigned long)_etext);
28612 + init_mm.end_data = (unsigned long)_edata;
28613 init_mm.brk = _brk_end;
28614
28615 mpx_mm_init(&init_mm);
28616
28617 - code_resource.start = __pa_symbol(_text);
28618 - code_resource.end = __pa_symbol(_etext)-1;
28619 - data_resource.start = __pa_symbol(_etext);
28620 + code_resource.start = __pa_symbol(ktla_ktva((unsigned long)_text));
28621 + code_resource.end = __pa_symbol(ktla_ktva((unsigned long)_etext))-1;
28622 + data_resource.start = __pa_symbol(_sdata);
28623 data_resource.end = __pa_symbol(_edata)-1;
28624 bss_resource.start = __pa_symbol(__bss_start);
28625 bss_resource.end = __pa_symbol(__bss_stop)-1;
28626 diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
28627 index e4fcb87..9c06c55 100644
28628 --- a/arch/x86/kernel/setup_percpu.c
28629 +++ b/arch/x86/kernel/setup_percpu.c
28630 @@ -21,19 +21,17 @@
28631 #include <asm/cpu.h>
28632 #include <asm/stackprotector.h>
28633
28634 -DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number);
28635 +#ifdef CONFIG_SMP
28636 +DEFINE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
28637 EXPORT_PER_CPU_SYMBOL(cpu_number);
28638 +#endif
28639
28640 -#ifdef CONFIG_X86_64
28641 #define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load)
28642 -#else
28643 -#define BOOT_PERCPU_OFFSET 0
28644 -#endif
28645
28646 DEFINE_PER_CPU_READ_MOSTLY(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET;
28647 EXPORT_PER_CPU_SYMBOL(this_cpu_off);
28648
28649 -unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
28650 +unsigned long __per_cpu_offset[NR_CPUS] __read_only = {
28651 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET,
28652 };
28653 EXPORT_SYMBOL(__per_cpu_offset);
28654 @@ -66,7 +64,7 @@ static bool __init pcpu_need_numa(void)
28655 {
28656 #ifdef CONFIG_NEED_MULTIPLE_NODES
28657 pg_data_t *last = NULL;
28658 - unsigned int cpu;
28659 + int cpu;
28660
28661 for_each_possible_cpu(cpu) {
28662 int node = early_cpu_to_node(cpu);
28663 @@ -155,10 +153,10 @@ static inline void setup_percpu_segment(int cpu)
28664 {
28665 #ifdef CONFIG_X86_32
28666 struct desc_struct gdt;
28667 + unsigned long base = per_cpu_offset(cpu);
28668
28669 - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF,
28670 - 0x2 | DESCTYPE_S, 0x8);
28671 - gdt.s = 1;
28672 + pack_descriptor(&gdt, base, (VMALLOC_END - base - 1) >> PAGE_SHIFT,
28673 + 0x83 | DESCTYPE_S, 0xC);
28674 write_gdt_entry(get_cpu_gdt_table(cpu),
28675 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
28676 #endif
28677 @@ -219,6 +217,11 @@ void __init setup_per_cpu_areas(void)
28678 /* alrighty, percpu areas up and running */
28679 delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
28680 for_each_possible_cpu(cpu) {
28681 +#ifdef CONFIG_CC_STACKPROTECTOR
28682 +#ifdef CONFIG_X86_32
28683 + unsigned long canary = per_cpu(stack_canary.canary, cpu);
28684 +#endif
28685 +#endif
28686 per_cpu_offset(cpu) = delta + pcpu_unit_offsets[cpu];
28687 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
28688 per_cpu(cpu_number, cpu) = cpu;
28689 @@ -259,6 +262,12 @@ void __init setup_per_cpu_areas(void)
28690 */
28691 set_cpu_numa_node(cpu, early_cpu_to_node(cpu));
28692 #endif
28693 +#ifdef CONFIG_CC_STACKPROTECTOR
28694 +#ifdef CONFIG_X86_32
28695 + if (!cpu)
28696 + per_cpu(stack_canary.canary, cpu) = canary;
28697 +#endif
28698 +#endif
28699 /*
28700 * Up to this point, the boot CPU has been using .init.data
28701 * area. Reload any changed state for the boot CPU.
28702 diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
28703 index 71820c4..ad16f6b 100644
28704 --- a/arch/x86/kernel/signal.c
28705 +++ b/arch/x86/kernel/signal.c
28706 @@ -189,7 +189,7 @@ static unsigned long align_sigframe(unsigned long sp)
28707 * Align the stack pointer according to the i386 ABI,
28708 * i.e. so that on function entry ((sp + 4) & 15) == 0.
28709 */
28710 - sp = ((sp + 4) & -16ul) - 4;
28711 + sp = ((sp - 12) & -16ul) - 4;
28712 #else /* !CONFIG_X86_32 */
28713 sp = round_down(sp, 16) - 8;
28714 #endif
28715 @@ -298,10 +298,9 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28716 }
28717
28718 if (current->mm->context.vdso)
28719 - restorer = current->mm->context.vdso +
28720 - selected_vdso32->sym___kernel_sigreturn;
28721 + restorer = (void __force_user *)(current->mm->context.vdso + selected_vdso32->sym___kernel_sigreturn);
28722 else
28723 - restorer = &frame->retcode;
28724 + restorer = (void __user *)&frame->retcode;
28725 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28726 restorer = ksig->ka.sa.sa_restorer;
28727
28728 @@ -315,7 +314,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28729 * reasons and because gdb uses it as a signature to notice
28730 * signal handler stack frames.
28731 */
28732 - err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode);
28733 + err |= __put_user(*((u64 *)&retcode), (u64 __user *)frame->retcode);
28734
28735 if (err)
28736 return -EFAULT;
28737 @@ -362,8 +361,10 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28738 save_altstack_ex(&frame->uc.uc_stack, regs->sp);
28739
28740 /* Set up to return from userspace. */
28741 - restorer = current->mm->context.vdso +
28742 - selected_vdso32->sym___kernel_rt_sigreturn;
28743 + if (current->mm->context.vdso)
28744 + restorer = (void __force_user *)(current->mm->context.vdso + selected_vdso32->sym___kernel_rt_sigreturn);
28745 + else
28746 + restorer = (void __user *)&frame->retcode;
28747 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28748 restorer = ksig->ka.sa.sa_restorer;
28749 put_user_ex(restorer, &frame->pretcode);
28750 @@ -375,7 +376,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28751 * reasons and because gdb uses it as a signature to notice
28752 * signal handler stack frames.
28753 */
28754 - put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode);
28755 + put_user_ex(*((u64 *)&rt_retcode), (u64 __user *)frame->retcode);
28756 } put_user_catch(err);
28757
28758 err |= copy_siginfo_to_user(&frame->info, &ksig->info);
28759 @@ -611,7 +612,12 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28760 {
28761 int usig = ksig->sig;
28762 sigset_t *set = sigmask_to_save();
28763 - compat_sigset_t *cset = (compat_sigset_t *) set;
28764 + sigset_t sigcopy;
28765 + compat_sigset_t *cset;
28766 +
28767 + sigcopy = *set;
28768 +
28769 + cset = (compat_sigset_t *) &sigcopy;
28770
28771 /* Set up the stack frame */
28772 if (is_ia32_frame()) {
28773 @@ -622,7 +628,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28774 } else if (is_x32_frame()) {
28775 return x32_setup_rt_frame(ksig, cset, regs);
28776 } else {
28777 - return __setup_rt_frame(ksig->sig, ksig, set, regs);
28778 + return __setup_rt_frame(ksig->sig, ksig, &sigcopy, regs);
28779 }
28780 }
28781
28782 diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
28783 index 15aaa69..66103af 100644
28784 --- a/arch/x86/kernel/smp.c
28785 +++ b/arch/x86/kernel/smp.c
28786 @@ -334,7 +334,7 @@ static int __init nonmi_ipi_setup(char *str)
28787
28788 __setup("nonmi_ipi", nonmi_ipi_setup);
28789
28790 -struct smp_ops smp_ops = {
28791 +struct smp_ops smp_ops __read_only = {
28792 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu,
28793 .smp_prepare_cpus = native_smp_prepare_cpus,
28794 .smp_cpus_done = native_smp_cpus_done,
28795 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
28796 index b1f3ed9c..b76221b 100644
28797 --- a/arch/x86/kernel/smpboot.c
28798 +++ b/arch/x86/kernel/smpboot.c
28799 @@ -220,14 +220,17 @@ static void notrace start_secondary(void *unused)
28800
28801 enable_start_cpu0 = 0;
28802
28803 -#ifdef CONFIG_X86_32
28804 + /* otherwise gcc will move up smp_processor_id before the cpu_init */
28805 + barrier();
28806 +
28807 /* switch away from the initial page table */
28808 +#ifdef CONFIG_PAX_PER_CPU_PGD
28809 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
28810 +#else
28811 load_cr3(swapper_pg_dir);
28812 +#endif
28813 __flush_tlb_all();
28814 -#endif
28815
28816 - /* otherwise gcc will move up smp_processor_id before the cpu_init */
28817 - barrier();
28818 /*
28819 * Check TSC synchronization with the BP:
28820 */
28821 @@ -808,16 +811,15 @@ void common_cpu_up(unsigned int cpu, struct task_struct *idle)
28822 alternatives_enable_smp();
28823
28824 per_cpu(current_task, cpu) = idle;
28825 + per_cpu(current_tinfo, cpu) = &idle->tinfo;
28826
28827 #ifdef CONFIG_X86_32
28828 - /* Stack for startup_32 can be just as for start_secondary onwards */
28829 irq_ctx_init(cpu);
28830 - per_cpu(cpu_current_top_of_stack, cpu) =
28831 - (unsigned long)task_stack_page(idle) + THREAD_SIZE;
28832 #else
28833 clear_tsk_thread_flag(idle, TIF_FORK);
28834 initial_gs = per_cpu_offset(cpu);
28835 #endif
28836 + per_cpu(cpu_current_top_of_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
28837 }
28838
28839 /*
28840 @@ -838,9 +840,11 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
28841 unsigned long timeout;
28842
28843 idle->thread.sp = (unsigned long) (((struct pt_regs *)
28844 - (THREAD_SIZE + task_stack_page(idle))) - 1);
28845 + (THREAD_SIZE - 16 + task_stack_page(idle))) - 1);
28846
28847 + pax_open_kernel();
28848 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
28849 + pax_close_kernel();
28850 initial_code = (unsigned long)start_secondary;
28851 stack_start = idle->thread.sp;
28852
28853 @@ -992,6 +996,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
28854
28855 common_cpu_up(cpu, tidle);
28856
28857 +#ifdef CONFIG_PAX_PER_CPU_PGD
28858 + clone_pgd_range(get_cpu_pgd(cpu, kernel) + KERNEL_PGD_BOUNDARY,
28859 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28860 + KERNEL_PGD_PTRS);
28861 + clone_pgd_range(get_cpu_pgd(cpu, user) + KERNEL_PGD_BOUNDARY,
28862 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28863 + KERNEL_PGD_PTRS);
28864 +#endif
28865 +
28866 /*
28867 * We have to walk the irq descriptors to setup the vector
28868 * space for the cpu which comes online. Prevent irq
28869 diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c
28870 index 0ccb53a..fbc4759 100644
28871 --- a/arch/x86/kernel/step.c
28872 +++ b/arch/x86/kernel/step.c
28873 @@ -44,7 +44,8 @@ unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *re
28874 addr += base;
28875 }
28876 mutex_unlock(&child->mm->context.lock);
28877 - }
28878 + } else if (seg == __KERNEL_CS || seg == __KERNEXEC_KERNEL_CS)
28879 + addr = ktla_ktva(addr);
28880
28881 return addr;
28882 }
28883 @@ -55,6 +56,9 @@ static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs)
28884 unsigned char opcode[15];
28885 unsigned long addr = convert_ip_to_linear(child, regs);
28886
28887 + if (addr == -EINVAL)
28888 + return 0;
28889 +
28890 copied = access_process_vm(child, addr, opcode, sizeof(opcode), 0);
28891 for (i = 0; i < copied; i++) {
28892 switch (opcode[i]) {
28893 diff --git a/arch/x86/kernel/sys_i386_32.c b/arch/x86/kernel/sys_i386_32.c
28894 new file mode 100644
28895 index 0000000..5877189
28896 --- /dev/null
28897 +++ b/arch/x86/kernel/sys_i386_32.c
28898 @@ -0,0 +1,189 @@
28899 +/*
28900 + * This file contains various random system calls that
28901 + * have a non-standard calling sequence on the Linux/i386
28902 + * platform.
28903 + */
28904 +
28905 +#include <linux/errno.h>
28906 +#include <linux/sched.h>
28907 +#include <linux/mm.h>
28908 +#include <linux/fs.h>
28909 +#include <linux/smp.h>
28910 +#include <linux/sem.h>
28911 +#include <linux/msg.h>
28912 +#include <linux/shm.h>
28913 +#include <linux/stat.h>
28914 +#include <linux/syscalls.h>
28915 +#include <linux/mman.h>
28916 +#include <linux/file.h>
28917 +#include <linux/utsname.h>
28918 +#include <linux/ipc.h>
28919 +#include <linux/elf.h>
28920 +
28921 +#include <linux/uaccess.h>
28922 +#include <linux/unistd.h>
28923 +
28924 +#include <asm/syscalls.h>
28925 +
28926 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags)
28927 +{
28928 + unsigned long pax_task_size = TASK_SIZE;
28929 +
28930 +#ifdef CONFIG_PAX_SEGMEXEC
28931 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
28932 + pax_task_size = SEGMEXEC_TASK_SIZE;
28933 +#endif
28934 +
28935 + if (flags & MAP_FIXED)
28936 + if (len > pax_task_size || addr > pax_task_size - len)
28937 + return -EINVAL;
28938 +
28939 + return 0;
28940 +}
28941 +
28942 +/*
28943 + * Align a virtual address to avoid aliasing in the I$ on AMD F15h.
28944 + */
28945 +static unsigned long get_align_mask(void)
28946 +{
28947 + if (va_align.flags < 0 || !(va_align.flags & ALIGN_VA_32))
28948 + return 0;
28949 +
28950 + if (!(current->flags & PF_RANDOMIZE))
28951 + return 0;
28952 +
28953 + return va_align.mask;
28954 +}
28955 +
28956 +unsigned long
28957 +arch_get_unmapped_area(struct file *filp, unsigned long addr,
28958 + unsigned long len, unsigned long pgoff, unsigned long flags)
28959 +{
28960 + struct mm_struct *mm = current->mm;
28961 + struct vm_area_struct *vma;
28962 + unsigned long pax_task_size = TASK_SIZE;
28963 + struct vm_unmapped_area_info info;
28964 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28965 +
28966 +#ifdef CONFIG_PAX_SEGMEXEC
28967 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28968 + pax_task_size = SEGMEXEC_TASK_SIZE;
28969 +#endif
28970 +
28971 + pax_task_size -= PAGE_SIZE;
28972 +
28973 + if (len > pax_task_size)
28974 + return -ENOMEM;
28975 +
28976 + if (flags & MAP_FIXED)
28977 + return addr;
28978 +
28979 +#ifdef CONFIG_PAX_RANDMMAP
28980 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28981 +#endif
28982 +
28983 + if (addr) {
28984 + addr = PAGE_ALIGN(addr);
28985 + if (pax_task_size - len >= addr) {
28986 + vma = find_vma(mm, addr);
28987 + if (check_heap_stack_gap(vma, addr, len, offset))
28988 + return addr;
28989 + }
28990 + }
28991 +
28992 + info.flags = 0;
28993 + info.length = len;
28994 + info.align_mask = filp ? get_align_mask() : 0;
28995 + info.align_offset = pgoff << PAGE_SHIFT;
28996 + info.threadstack_offset = offset;
28997 +
28998 +#ifdef CONFIG_PAX_PAGEEXEC
28999 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE)) {
29000 + info.low_limit = 0x00110000UL;
29001 + info.high_limit = mm->start_code;
29002 +
29003 +#ifdef CONFIG_PAX_RANDMMAP
29004 + if (mm->pax_flags & MF_PAX_RANDMMAP)
29005 + info.low_limit += mm->delta_mmap & 0x03FFF000UL;
29006 +#endif
29007 +
29008 + if (info.low_limit < info.high_limit) {
29009 + addr = vm_unmapped_area(&info);
29010 + if (!IS_ERR_VALUE(addr))
29011 + return addr;
29012 + }
29013 + } else
29014 +#endif
29015 +
29016 + info.low_limit = mm->mmap_base;
29017 + info.high_limit = pax_task_size;
29018 +
29019 + return vm_unmapped_area(&info);
29020 +}
29021 +
29022 +unsigned long
29023 +arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29024 + const unsigned long len, const unsigned long pgoff,
29025 + const unsigned long flags)
29026 +{
29027 + struct vm_area_struct *vma;
29028 + struct mm_struct *mm = current->mm;
29029 + unsigned long addr = addr0, pax_task_size = TASK_SIZE;
29030 + struct vm_unmapped_area_info info;
29031 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
29032 +
29033 +#ifdef CONFIG_PAX_SEGMEXEC
29034 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
29035 + pax_task_size = SEGMEXEC_TASK_SIZE;
29036 +#endif
29037 +
29038 + pax_task_size -= PAGE_SIZE;
29039 +
29040 + /* requested length too big for entire address space */
29041 + if (len > pax_task_size)
29042 + return -ENOMEM;
29043 +
29044 + if (flags & MAP_FIXED)
29045 + return addr;
29046 +
29047 +#ifdef CONFIG_PAX_PAGEEXEC
29048 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE))
29049 + goto bottomup;
29050 +#endif
29051 +
29052 +#ifdef CONFIG_PAX_RANDMMAP
29053 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
29054 +#endif
29055 +
29056 + /* requesting a specific address */
29057 + if (addr) {
29058 + addr = PAGE_ALIGN(addr);
29059 + if (pax_task_size - len >= addr) {
29060 + vma = find_vma(mm, addr);
29061 + if (check_heap_stack_gap(vma, addr, len, offset))
29062 + return addr;
29063 + }
29064 + }
29065 +
29066 + info.flags = VM_UNMAPPED_AREA_TOPDOWN;
29067 + info.length = len;
29068 + info.low_limit = PAGE_SIZE;
29069 + info.high_limit = mm->mmap_base;
29070 + info.align_mask = filp ? get_align_mask() : 0;
29071 + info.align_offset = pgoff << PAGE_SHIFT;
29072 + info.threadstack_offset = offset;
29073 +
29074 + addr = vm_unmapped_area(&info);
29075 + if (!(addr & ~PAGE_MASK))
29076 + return addr;
29077 + VM_BUG_ON(addr != -ENOMEM);
29078 +
29079 +bottomup:
29080 + /*
29081 + * A failed mmap() very likely causes application failure,
29082 + * so fall back to the bottom-up function here. This scenario
29083 + * can happen with large stack limits and large mmap()
29084 + * allocations.
29085 + */
29086 + return arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
29087 +}
29088 diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
29089 index 10e0272..b4bb9a7 100644
29090 --- a/arch/x86/kernel/sys_x86_64.c
29091 +++ b/arch/x86/kernel/sys_x86_64.c
29092 @@ -97,8 +97,8 @@ out:
29093 return error;
29094 }
29095
29096 -static void find_start_end(unsigned long flags, unsigned long *begin,
29097 - unsigned long *end)
29098 +static void find_start_end(struct mm_struct *mm, unsigned long flags,
29099 + unsigned long *begin, unsigned long *end)
29100 {
29101 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
29102 unsigned long new_begin;
29103 @@ -117,7 +117,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
29104 *begin = new_begin;
29105 }
29106 } else {
29107 - *begin = current->mm->mmap_legacy_base;
29108 + *begin = mm->mmap_legacy_base;
29109 *end = TASK_SIZE;
29110 }
29111 }
29112 @@ -130,20 +130,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
29113 struct vm_area_struct *vma;
29114 struct vm_unmapped_area_info info;
29115 unsigned long begin, end;
29116 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
29117
29118 if (flags & MAP_FIXED)
29119 return addr;
29120
29121 - find_start_end(flags, &begin, &end);
29122 + find_start_end(mm, flags, &begin, &end);
29123
29124 if (len > end)
29125 return -ENOMEM;
29126
29127 +#ifdef CONFIG_PAX_RANDMMAP
29128 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
29129 +#endif
29130 +
29131 if (addr) {
29132 addr = PAGE_ALIGN(addr);
29133 vma = find_vma(mm, addr);
29134 - if (end - len >= addr &&
29135 - (!vma || addr + len <= vma->vm_start))
29136 + if (end - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
29137 return addr;
29138 }
29139
29140 @@ -157,6 +161,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
29141 info.align_mask = get_align_mask();
29142 info.align_offset += get_align_bits();
29143 }
29144 + info.threadstack_offset = offset;
29145 return vm_unmapped_area(&info);
29146 }
29147
29148 @@ -169,6 +174,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29149 struct mm_struct *mm = current->mm;
29150 unsigned long addr = addr0;
29151 struct vm_unmapped_area_info info;
29152 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
29153
29154 /* requested length too big for entire address space */
29155 if (len > TASK_SIZE)
29156 @@ -181,12 +187,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29157 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT))
29158 goto bottomup;
29159
29160 +#ifdef CONFIG_PAX_RANDMMAP
29161 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
29162 +#endif
29163 +
29164 /* requesting a specific address */
29165 if (addr) {
29166 addr = PAGE_ALIGN(addr);
29167 vma = find_vma(mm, addr);
29168 - if (TASK_SIZE - len >= addr &&
29169 - (!vma || addr + len <= vma->vm_start))
29170 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
29171 return addr;
29172 }
29173
29174 @@ -200,6 +209,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29175 info.align_mask = get_align_mask();
29176 info.align_offset += get_align_bits();
29177 }
29178 + info.threadstack_offset = offset;
29179 addr = vm_unmapped_area(&info);
29180 if (!(addr & ~PAGE_MASK))
29181 return addr;
29182 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
29183 index 91a4496..42fc304 100644
29184 --- a/arch/x86/kernel/tboot.c
29185 +++ b/arch/x86/kernel/tboot.c
29186 @@ -44,6 +44,7 @@
29187 #include <asm/setup.h>
29188 #include <asm/e820.h>
29189 #include <asm/io.h>
29190 +#include <asm/tlbflush.h>
29191
29192 #include "../realmode/rm/wakeup.h"
29193
29194 @@ -221,7 +222,7 @@ static int tboot_setup_sleep(void)
29195
29196 void tboot_shutdown(u32 shutdown_type)
29197 {
29198 - void (*shutdown)(void);
29199 + void (* __noreturn shutdown)(void);
29200
29201 if (!tboot_enabled())
29202 return;
29203 @@ -242,8 +243,9 @@ void tboot_shutdown(u32 shutdown_type)
29204 tboot->shutdown_type = shutdown_type;
29205
29206 switch_to_tboot_pt();
29207 + cr4_clear_bits(X86_CR4_PCIDE);
29208
29209 - shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry;
29210 + shutdown = (void *)(unsigned long)tboot->shutdown_entry;
29211 shutdown();
29212
29213 /* should not reach here */
29214 @@ -310,7 +312,7 @@ static int tboot_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b)
29215 return -ENODEV;
29216 }
29217
29218 -static atomic_t ap_wfs_count;
29219 +static atomic_unchecked_t ap_wfs_count;
29220
29221 static int tboot_wait_for_aps(int num_aps)
29222 {
29223 @@ -334,9 +336,9 @@ static int tboot_cpu_callback(struct notifier_block *nfb, unsigned long action,
29224 {
29225 switch (action) {
29226 case CPU_DYING:
29227 - atomic_inc(&ap_wfs_count);
29228 + atomic_inc_unchecked(&ap_wfs_count);
29229 if (num_online_cpus() == 1)
29230 - if (tboot_wait_for_aps(atomic_read(&ap_wfs_count)))
29231 + if (tboot_wait_for_aps(atomic_read_unchecked(&ap_wfs_count)))
29232 return NOTIFY_BAD;
29233 break;
29234 }
29235 @@ -422,7 +424,7 @@ static __init int tboot_late_init(void)
29236
29237 tboot_create_trampoline();
29238
29239 - atomic_set(&ap_wfs_count, 0);
29240 + atomic_set_unchecked(&ap_wfs_count, 0);
29241 register_hotcpu_notifier(&tboot_cpu_notifier);
29242
29243 #ifdef CONFIG_DEBUG_FS
29244 diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
29245 index d39c091..1df4349 100644
29246 --- a/arch/x86/kernel/time.c
29247 +++ b/arch/x86/kernel/time.c
29248 @@ -32,7 +32,7 @@ unsigned long profile_pc(struct pt_regs *regs)
29249
29250 if (!user_mode(regs) && in_lock_functions(pc)) {
29251 #ifdef CONFIG_FRAME_POINTER
29252 - return *(unsigned long *)(regs->bp + sizeof(long));
29253 + return ktla_ktva(*(unsigned long *)(regs->bp + sizeof(long)));
29254 #else
29255 unsigned long *sp =
29256 (unsigned long *)kernel_stack_pointer(regs);
29257 @@ -41,11 +41,17 @@ unsigned long profile_pc(struct pt_regs *regs)
29258 * or above a saved flags. Eflags has bits 22-31 zero,
29259 * kernel addresses don't.
29260 */
29261 +
29262 +#ifdef CONFIG_PAX_KERNEXEC
29263 + return ktla_ktva(sp[0]);
29264 +#else
29265 if (sp[0] >> 22)
29266 return sp[0];
29267 if (sp[1] >> 22)
29268 return sp[1];
29269 #endif
29270 +
29271 +#endif
29272 }
29273 return pc;
29274 }
29275 diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
29276 index 7fc5e84..c6e445a 100644
29277 --- a/arch/x86/kernel/tls.c
29278 +++ b/arch/x86/kernel/tls.c
29279 @@ -139,6 +139,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
29280 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
29281 return -EINVAL;
29282
29283 +#ifdef CONFIG_PAX_SEGMEXEC
29284 + if ((p->mm->pax_flags & MF_PAX_SEGMEXEC) && (info.contents & MODIFY_LDT_CONTENTS_CODE))
29285 + return -EINVAL;
29286 +#endif
29287 +
29288 set_tls_desc(p, idx, &info, 1);
29289
29290 return 0;
29291 @@ -256,7 +261,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset,
29292
29293 if (kbuf)
29294 info = kbuf;
29295 - else if (__copy_from_user(infobuf, ubuf, count))
29296 + else if (count > sizeof infobuf || __copy_from_user(infobuf, ubuf, count))
29297 return -EFAULT;
29298 else
29299 info = infobuf;
29300 diff --git a/arch/x86/kernel/tracepoint.c b/arch/x86/kernel/tracepoint.c
29301 index 1c113db..287b42e 100644
29302 --- a/arch/x86/kernel/tracepoint.c
29303 +++ b/arch/x86/kernel/tracepoint.c
29304 @@ -9,11 +9,11 @@
29305 #include <linux/atomic.h>
29306
29307 atomic_t trace_idt_ctr = ATOMIC_INIT(0);
29308 -struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
29309 +const struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
29310 (unsigned long) trace_idt_table };
29311
29312 /* No need to be aligned, but done to keep all IDTs defined the same way. */
29313 -gate_desc trace_idt_table[NR_VECTORS] __page_aligned_bss;
29314 +gate_desc trace_idt_table[NR_VECTORS] __page_aligned_rodata;
29315
29316 static int trace_irq_vector_refcount;
29317 static DEFINE_MUTEX(irq_vector_mutex);
29318 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
29319 index f579192..aed90b8 100644
29320 --- a/arch/x86/kernel/traps.c
29321 +++ b/arch/x86/kernel/traps.c
29322 @@ -69,7 +69,7 @@
29323 #include <asm/proto.h>
29324
29325 /* No need to be aligned, but done to keep all IDTs defined the same way. */
29326 -gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
29327 +gate_desc debug_idt_table[NR_VECTORS] __page_aligned_rodata;
29328 #else
29329 #include <asm/processor-flags.h>
29330 #include <asm/setup.h>
29331 @@ -77,7 +77,7 @@ gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
29332 #endif
29333
29334 /* Must be page-aligned because the real IDT is used in a fixmap. */
29335 -gate_desc idt_table[NR_VECTORS] __page_aligned_bss;
29336 +gate_desc idt_table[NR_VECTORS] __page_aligned_rodata;
29337
29338 DECLARE_BITMAP(used_vectors, NR_VECTORS);
29339 EXPORT_SYMBOL_GPL(used_vectors);
29340 @@ -174,7 +174,7 @@ void ist_begin_non_atomic(struct pt_regs *regs)
29341 * will catch asm bugs and any attempt to use ist_preempt_enable
29342 * from double_fault.
29343 */
29344 - BUG_ON((unsigned long)(current_top_of_stack() -
29345 + BUG_ON((unsigned long)(current_top_of_stack(smp_processor_id()) -
29346 current_stack_pointer()) >= THREAD_SIZE);
29347
29348 preempt_count_sub(HARDIRQ_OFFSET);
29349 @@ -191,7 +191,7 @@ void ist_end_non_atomic(void)
29350 }
29351
29352 static nokprobe_inline int
29353 -do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
29354 +do_trap_no_signal(struct task_struct *tsk, int trapnr, const char *str,
29355 struct pt_regs *regs, long error_code)
29356 {
29357 if (v8086_mode(regs)) {
29358 @@ -211,8 +211,20 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
29359 if (!fixup_exception(regs)) {
29360 tsk->thread.error_code = error_code;
29361 tsk->thread.trap_nr = trapnr;
29362 +
29363 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29364 + if (trapnr == X86_TRAP_SS && ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS))
29365 + str = "PAX: suspicious stack segment fault";
29366 +#endif
29367 +
29368 die(str, regs, error_code);
29369 }
29370 +
29371 +#ifdef CONFIG_PAX_REFCOUNT
29372 + if (trapnr == X86_TRAP_OF)
29373 + pax_report_refcount_overflow(regs);
29374 +#endif
29375 +
29376 return 0;
29377 }
29378
29379 @@ -251,7 +263,7 @@ static siginfo_t *fill_trap_info(struct pt_regs *regs, int signr, int trapnr,
29380 }
29381
29382 static void
29383 -do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
29384 +do_trap(int trapnr, int signr, const char *str, struct pt_regs *regs,
29385 long error_code, siginfo_t *info)
29386 {
29387 struct task_struct *tsk = current;
29388 @@ -275,7 +287,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
29389 if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
29390 printk_ratelimit()) {
29391 pr_info("%s[%d] trap %s ip:%lx sp:%lx error:%lx",
29392 - tsk->comm, tsk->pid, str,
29393 + tsk->comm, task_pid_nr(tsk), str,
29394 regs->ip, regs->sp, error_code);
29395 print_vma_addr(" in ", regs->ip);
29396 pr_cont("\n");
29397 @@ -357,6 +369,11 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
29398 tsk->thread.error_code = error_code;
29399 tsk->thread.trap_nr = X86_TRAP_DF;
29400
29401 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
29402 + if ((unsigned long)tsk->stack - regs->sp <= PAGE_SIZE)
29403 + die("grsec: kernel stack overflow detected", regs, error_code);
29404 +#endif
29405 +
29406 #ifdef CONFIG_DOUBLEFAULT
29407 df_debug(regs, error_code);
29408 #endif
29409 @@ -473,11 +490,35 @@ do_general_protection(struct pt_regs *regs, long error_code)
29410 tsk->thread.error_code = error_code;
29411 tsk->thread.trap_nr = X86_TRAP_GP;
29412 if (notify_die(DIE_GPF, "general protection fault", regs, error_code,
29413 - X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP)
29414 + X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP) {
29415 +
29416 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29417 + if ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS)
29418 + die("PAX: suspicious general protection fault", regs, error_code);
29419 + else
29420 +#endif
29421 +
29422 die("general protection fault", regs, error_code);
29423 + }
29424 goto exit;
29425 }
29426
29427 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
29428 + if (!(__supported_pte_mask & _PAGE_NX) && tsk->mm && (tsk->mm->pax_flags & MF_PAX_PAGEEXEC)) {
29429 + struct mm_struct *mm = tsk->mm;
29430 + unsigned long limit;
29431 +
29432 + down_write(&mm->mmap_sem);
29433 + limit = mm->context.user_cs_limit;
29434 + if (limit < TASK_SIZE) {
29435 + track_exec_limit(mm, limit, TASK_SIZE, VM_EXEC);
29436 + up_write(&mm->mmap_sem);
29437 + return;
29438 + }
29439 + up_write(&mm->mmap_sem);
29440 + }
29441 +#endif
29442 +
29443 tsk->thread.error_code = error_code;
29444 tsk->thread.trap_nr = X86_TRAP_GP;
29445
29446 @@ -576,6 +617,9 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
29447 container_of(task_pt_regs(current),
29448 struct bad_iret_stack, regs);
29449
29450 + if ((current->thread.sp0 ^ (unsigned long)s) < THREAD_SIZE)
29451 + new_stack = s;
29452 +
29453 /* Copy the IRET target to the new stack. */
29454 memmove(&new_stack->regs.ip, (void *)s->regs.sp, 5*8);
29455
29456 diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
29457 index dc9af7a..1bc625e 100644
29458 --- a/arch/x86/kernel/tsc.c
29459 +++ b/arch/x86/kernel/tsc.c
29460 @@ -151,7 +151,7 @@ static void cyc2ns_write_end(int cpu, struct cyc2ns_data *data)
29461 */
29462 smp_wmb();
29463
29464 - ACCESS_ONCE(c2n->head) = data;
29465 + ACCESS_ONCE_RW(c2n->head) = data;
29466 }
29467
29468 /*
29469 diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
29470 index 6647624..2056791 100644
29471 --- a/arch/x86/kernel/uprobes.c
29472 +++ b/arch/x86/kernel/uprobes.c
29473 @@ -978,7 +978,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
29474
29475 if (nleft != rasize) {
29476 pr_err("uprobe: return address clobbered: pid=%d, %%sp=%#lx, "
29477 - "%%ip=%#lx\n", current->pid, regs->sp, regs->ip);
29478 + "%%ip=%#lx\n", task_pid_nr(current), regs->sp, regs->ip);
29479
29480 force_sig_info(SIGSEGV, SEND_SIG_FORCED, current);
29481 }
29482 diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S
29483 index b9242ba..ae8c9cf 100644
29484 --- a/arch/x86/kernel/verify_cpu.S
29485 +++ b/arch/x86/kernel/verify_cpu.S
29486 @@ -20,6 +20,7 @@
29487 * arch/x86/boot/compressed/head_64.S: Boot cpu verification
29488 * arch/x86/kernel/trampoline_64.S: secondary processor verification
29489 * arch/x86/kernel/head_32.S: processor startup
29490 + * arch/x86/kernel/acpi/realmode/wakeup.S: 32bit processor resume
29491 *
29492 * verify_cpu, returns the status of longmode and SSE in register %eax.
29493 * 0: Success 1: Failure
29494 @@ -34,10 +35,11 @@
29495 #include <asm/msr-index.h>
29496
29497 verify_cpu:
29498 - pushfl # Save caller passed flags
29499 - pushl $0 # Kill any dangerous flags
29500 - popfl
29501 + pushf # Save caller passed flags
29502 + push $0 # Kill any dangerous flags
29503 + popf
29504
29505 +#ifndef __x86_64__
29506 pushfl # standard way to check for cpuid
29507 popl %eax
29508 movl %eax,%ebx
29509 @@ -48,6 +50,7 @@ verify_cpu:
29510 popl %eax
29511 cmpl %eax,%ebx
29512 jz verify_cpu_no_longmode # cpu has no cpuid
29513 +#endif
29514
29515 movl $0x0,%eax # See if cpuid 1 is implemented
29516 cpuid
29517 @@ -130,10 +133,10 @@ verify_cpu_sse_test:
29518 jmp verify_cpu_sse_test # try again
29519
29520 verify_cpu_no_longmode:
29521 - popfl # Restore caller passed flags
29522 + popf # Restore caller passed flags
29523 movl $1,%eax
29524 ret
29525 verify_cpu_sse_ok:
29526 - popfl # Restore caller passed flags
29527 + popf # Restore caller passed flags
29528 xorl %eax, %eax
29529 ret
29530 diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
29531 index fc9db6e..2c5865d 100644
29532 --- a/arch/x86/kernel/vm86_32.c
29533 +++ b/arch/x86/kernel/vm86_32.c
29534 @@ -44,6 +44,7 @@
29535 #include <linux/ptrace.h>
29536 #include <linux/audit.h>
29537 #include <linux/stddef.h>
29538 +#include <linux/grsecurity.h>
29539
29540 #include <asm/uaccess.h>
29541 #include <asm/io.h>
29542 @@ -150,7 +151,7 @@ struct pt_regs *save_v86_state(struct kernel_vm86_regs *regs)
29543 do_exit(SIGSEGV);
29544 }
29545
29546 - tss = &per_cpu(cpu_tss, get_cpu());
29547 + tss = cpu_tss + get_cpu();
29548 current->thread.sp0 = current->thread.saved_sp0;
29549 current->thread.sysenter_cs = __KERNEL_CS;
29550 load_sp0(tss, &current->thread);
29551 @@ -214,6 +215,14 @@ SYSCALL_DEFINE1(vm86old, struct vm86_struct __user *, v86)
29552
29553 if (tsk->thread.saved_sp0)
29554 return -EPERM;
29555 +
29556 +#ifdef CONFIG_GRKERNSEC_VM86
29557 + if (!capable(CAP_SYS_RAWIO)) {
29558 + gr_handle_vm86();
29559 + return -EPERM;
29560 + }
29561 +#endif
29562 +
29563 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs,
29564 offsetof(struct kernel_vm86_struct, vm86plus) -
29565 sizeof(info.regs));
29566 @@ -238,6 +247,13 @@ SYSCALL_DEFINE2(vm86, unsigned long, cmd, unsigned long, arg)
29567 int tmp;
29568 struct vm86plus_struct __user *v86;
29569
29570 +#ifdef CONFIG_GRKERNSEC_VM86
29571 + if (!capable(CAP_SYS_RAWIO)) {
29572 + gr_handle_vm86();
29573 + return -EPERM;
29574 + }
29575 +#endif
29576 +
29577 tsk = current;
29578 switch (cmd) {
29579 case VM86_REQUEST_IRQ:
29580 @@ -318,7 +334,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
29581 tsk->thread.saved_fs = info->regs32->fs;
29582 tsk->thread.saved_gs = get_user_gs(info->regs32);
29583
29584 - tss = &per_cpu(cpu_tss, get_cpu());
29585 + tss = cpu_tss + get_cpu();
29586 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
29587 if (cpu_has_sep)
29588 tsk->thread.sysenter_cs = 0;
29589 @@ -525,7 +541,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
29590 goto cannot_handle;
29591 if (i == 0x21 && is_revectored(AH(regs), &KVM86->int21_revectored))
29592 goto cannot_handle;
29593 - intr_ptr = (unsigned long __user *) (i << 2);
29594 + intr_ptr = (__force unsigned long __user *) (i << 2);
29595 if (get_user(segoffs, intr_ptr))
29596 goto cannot_handle;
29597 if ((segoffs >> 16) == BIOSSEG)
29598 diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
29599 index 00bf300..03e1c3b 100644
29600 --- a/arch/x86/kernel/vmlinux.lds.S
29601 +++ b/arch/x86/kernel/vmlinux.lds.S
29602 @@ -26,6 +26,13 @@
29603 #include <asm/page_types.h>
29604 #include <asm/cache.h>
29605 #include <asm/boot.h>
29606 +#include <asm/segment.h>
29607 +
29608 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29609 +#define __KERNEL_TEXT_OFFSET (LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR)
29610 +#else
29611 +#define __KERNEL_TEXT_OFFSET 0
29612 +#endif
29613
29614 #undef i386 /* in case the preprocessor is a 32bit one */
29615
29616 @@ -69,30 +76,43 @@ jiffies_64 = jiffies;
29617
29618 PHDRS {
29619 text PT_LOAD FLAGS(5); /* R_E */
29620 +#ifdef CONFIG_X86_32
29621 + module PT_LOAD FLAGS(5); /* R_E */
29622 +#endif
29623 +#ifdef CONFIG_XEN
29624 + rodata PT_LOAD FLAGS(5); /* R_E */
29625 +#else
29626 + rodata PT_LOAD FLAGS(4); /* R__ */
29627 +#endif
29628 data PT_LOAD FLAGS(6); /* RW_ */
29629 -#ifdef CONFIG_X86_64
29630 + init.begin PT_LOAD FLAGS(6); /* RW_ */
29631 #ifdef CONFIG_SMP
29632 percpu PT_LOAD FLAGS(6); /* RW_ */
29633 #endif
29634 - init PT_LOAD FLAGS(7); /* RWE */
29635 -#endif
29636 + text.init PT_LOAD FLAGS(5); /* R_E */
29637 + text.exit PT_LOAD FLAGS(5); /* R_E */
29638 + init PT_LOAD FLAGS(6); /* RW_ */
29639 note PT_NOTE FLAGS(0); /* ___ */
29640 }
29641
29642 SECTIONS
29643 {
29644 #ifdef CONFIG_X86_32
29645 - . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
29646 - phys_startup_32 = startup_32 - LOAD_OFFSET;
29647 + . = LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR;
29648 #else
29649 - . = __START_KERNEL;
29650 - phys_startup_64 = startup_64 - LOAD_OFFSET;
29651 + . = __START_KERNEL;
29652 #endif
29653
29654 /* Text and read-only data */
29655 - .text : AT(ADDR(.text) - LOAD_OFFSET) {
29656 - _text = .;
29657 + .text (. - __KERNEL_TEXT_OFFSET): AT(ADDR(.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29658 /* bootstrapping code */
29659 +#ifdef CONFIG_X86_32
29660 + phys_startup_32 = startup_32 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29661 +#else
29662 + phys_startup_64 = startup_64 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29663 +#endif
29664 + __LOAD_PHYSICAL_ADDR = . - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29665 + _text = .;
29666 HEAD_TEXT
29667 . = ALIGN(8);
29668 _stext = .;
29669 @@ -104,13 +124,47 @@ SECTIONS
29670 IRQENTRY_TEXT
29671 *(.fixup)
29672 *(.gnu.warning)
29673 - /* End of text section */
29674 - _etext = .;
29675 } :text = 0x9090
29676
29677 - NOTES :text :note
29678 + . += __KERNEL_TEXT_OFFSET;
29679
29680 - EXCEPTION_TABLE(16) :text = 0x9090
29681 +#ifdef CONFIG_X86_32
29682 + . = ALIGN(PAGE_SIZE);
29683 + .module.text : AT(ADDR(.module.text) - LOAD_OFFSET) {
29684 +
29685 +#ifdef CONFIG_PAX_KERNEXEC
29686 + MODULES_EXEC_VADDR = .;
29687 + BYTE(0)
29688 + . += (CONFIG_PAX_KERNEXEC_MODULE_TEXT * 1024 * 1024);
29689 + . = ALIGN(HPAGE_SIZE) - 1;
29690 + MODULES_EXEC_END = .;
29691 +#endif
29692 +
29693 + } :module
29694 +#endif
29695 +
29696 + .text.end : AT(ADDR(.text.end) - LOAD_OFFSET) {
29697 + /* End of text section */
29698 + BYTE(0)
29699 + _etext = . - __KERNEL_TEXT_OFFSET;
29700 + }
29701 +
29702 +#ifdef CONFIG_X86_32
29703 + . = ALIGN(PAGE_SIZE);
29704 + .rodata.page_aligned : AT(ADDR(.rodata.page_aligned) - LOAD_OFFSET) {
29705 + . = ALIGN(PAGE_SIZE);
29706 + *(.empty_zero_page)
29707 + *(.initial_pg_fixmap)
29708 + *(.initial_pg_pmd)
29709 + *(.initial_page_table)
29710 + *(.swapper_pg_dir)
29711 + } :rodata
29712 +#endif
29713 +
29714 + . = ALIGN(PAGE_SIZE);
29715 + NOTES :rodata :note
29716 +
29717 + EXCEPTION_TABLE(16) :rodata
29718
29719 #if defined(CONFIG_DEBUG_RODATA)
29720 /* .text should occupy whole number of pages */
29721 @@ -122,16 +176,20 @@ SECTIONS
29722
29723 /* Data */
29724 .data : AT(ADDR(.data) - LOAD_OFFSET) {
29725 +
29726 +#ifdef CONFIG_PAX_KERNEXEC
29727 + . = ALIGN(HPAGE_SIZE);
29728 +#else
29729 + . = ALIGN(PAGE_SIZE);
29730 +#endif
29731 +
29732 /* Start of data section */
29733 _sdata = .;
29734
29735 /* init_task */
29736 INIT_TASK_DATA(THREAD_SIZE)
29737
29738 -#ifdef CONFIG_X86_32
29739 - /* 32 bit has nosave before _edata */
29740 NOSAVE_DATA
29741 -#endif
29742
29743 PAGE_ALIGNED_DATA(PAGE_SIZE)
29744
29745 @@ -174,12 +232,19 @@ SECTIONS
29746 . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);
29747
29748 /* Init code and data - will be freed after init */
29749 - . = ALIGN(PAGE_SIZE);
29750 .init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) {
29751 + BYTE(0)
29752 +
29753 +#ifdef CONFIG_PAX_KERNEXEC
29754 + . = ALIGN(HPAGE_SIZE);
29755 +#else
29756 + . = ALIGN(PAGE_SIZE);
29757 +#endif
29758 +
29759 __init_begin = .; /* paired with __init_end */
29760 - }
29761 + } :init.begin
29762
29763 -#if defined(CONFIG_X86_64) && defined(CONFIG_SMP)
29764 +#ifdef CONFIG_SMP
29765 /*
29766 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
29767 * output PHDR, so the next output section - .init.text - should
29768 @@ -190,12 +255,33 @@ SECTIONS
29769 "per-CPU data too large - increase CONFIG_PHYSICAL_START")
29770 #endif
29771
29772 - INIT_TEXT_SECTION(PAGE_SIZE)
29773 -#ifdef CONFIG_X86_64
29774 - :init
29775 + . = ALIGN(PAGE_SIZE);
29776 + init_begin = .;
29777 + .init.text (. - __KERNEL_TEXT_OFFSET): AT(init_begin - LOAD_OFFSET) {
29778 + VMLINUX_SYMBOL(_sinittext) = .;
29779 + INIT_TEXT
29780 + . = ALIGN(PAGE_SIZE);
29781 + } :text.init
29782 +
29783 + /*
29784 + * .exit.text is discard at runtime, not link time, to deal with
29785 + * references from .altinstructions and .eh_frame
29786 + */
29787 + .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29788 + EXIT_TEXT
29789 + VMLINUX_SYMBOL(_einittext) = .;
29790 +
29791 +#ifdef CONFIG_PAX_KERNEXEC
29792 + . = ALIGN(HPAGE_SIZE);
29793 +#else
29794 + . = ALIGN(16);
29795 #endif
29796
29797 - INIT_DATA_SECTION(16)
29798 + } :text.exit
29799 + . = init_begin + SIZEOF(.init.text) + SIZEOF(.exit.text);
29800 +
29801 + . = ALIGN(PAGE_SIZE);
29802 + INIT_DATA_SECTION(16) :init
29803
29804 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
29805 __x86_cpu_dev_start = .;
29806 @@ -266,19 +352,12 @@ SECTIONS
29807 }
29808
29809 . = ALIGN(8);
29810 - /*
29811 - * .exit.text is discard at runtime, not link time, to deal with
29812 - * references from .altinstructions and .eh_frame
29813 - */
29814 - .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
29815 - EXIT_TEXT
29816 - }
29817
29818 .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
29819 EXIT_DATA
29820 }
29821
29822 -#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
29823 +#ifndef CONFIG_SMP
29824 PERCPU_SECTION(INTERNODE_CACHE_BYTES)
29825 #endif
29826
29827 @@ -297,16 +376,10 @@ SECTIONS
29828 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
29829 __smp_locks = .;
29830 *(.smp_locks)
29831 - . = ALIGN(PAGE_SIZE);
29832 __smp_locks_end = .;
29833 + . = ALIGN(PAGE_SIZE);
29834 }
29835
29836 -#ifdef CONFIG_X86_64
29837 - .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
29838 - NOSAVE_DATA
29839 - }
29840 -#endif
29841 -
29842 /* BSS */
29843 . = ALIGN(PAGE_SIZE);
29844 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
29845 @@ -322,6 +395,7 @@ SECTIONS
29846 __brk_base = .;
29847 . += 64 * 1024; /* 64k alignment slop space */
29848 *(.brk_reservation) /* areas brk users have reserved */
29849 + . = ALIGN(HPAGE_SIZE);
29850 __brk_limit = .;
29851 }
29852
29853 @@ -348,13 +422,12 @@ SECTIONS
29854 * for the boot processor.
29855 */
29856 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
29857 -INIT_PER_CPU(gdt_page);
29858 INIT_PER_CPU(irq_stack_union);
29859
29860 /*
29861 * Build-time check on the image size:
29862 */
29863 -. = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE),
29864 +. = ASSERT((_end - _text - __KERNEL_TEXT_OFFSET <= KERNEL_IMAGE_SIZE),
29865 "kernel image bigger than KERNEL_IMAGE_SIZE");
29866
29867 #ifdef CONFIG_SMP
29868 diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
29869 index b034b1b..32462af 100644
29870 --- a/arch/x86/kernel/vsmp_64.c
29871 +++ b/arch/x86/kernel/vsmp_64.c
29872 @@ -224,10 +224,15 @@ static void fill_vector_allocation_domain(int cpu, struct cpumask *retmask,
29873 static void vsmp_apic_post_init(void)
29874 {
29875 /* need to update phys_pkg_id */
29876 - apic->phys_pkg_id = apicid_phys_pkg_id;
29877 + pax_open_kernel();
29878 + *(void **)&apic->phys_pkg_id = apicid_phys_pkg_id;
29879 + pax_close_kernel();
29880
29881 - if (!irq_routing_comply)
29882 - apic->vector_allocation_domain = fill_vector_allocation_domain;
29883 + if (!irq_routing_comply) {
29884 + pax_open_kernel();
29885 + *(void **)&apic->vector_allocation_domain = fill_vector_allocation_domain;
29886 + pax_close_kernel();
29887 + }
29888 }
29889
29890 void __init vsmp_init(void)
29891 diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
29892 index a0695be..33e180c 100644
29893 --- a/arch/x86/kernel/x8664_ksyms_64.c
29894 +++ b/arch/x86/kernel/x8664_ksyms_64.c
29895 @@ -34,8 +34,6 @@ EXPORT_SYMBOL(copy_user_generic_string);
29896 EXPORT_SYMBOL(copy_user_generic_unrolled);
29897 EXPORT_SYMBOL(copy_user_enhanced_fast_string);
29898 EXPORT_SYMBOL(__copy_user_nocache);
29899 -EXPORT_SYMBOL(_copy_from_user);
29900 -EXPORT_SYMBOL(_copy_to_user);
29901
29902 EXPORT_SYMBOL(copy_page);
29903 EXPORT_SYMBOL(clear_page);
29904 @@ -77,3 +75,7 @@ EXPORT_SYMBOL(native_load_gs_index);
29905 EXPORT_SYMBOL(___preempt_schedule);
29906 EXPORT_SYMBOL(___preempt_schedule_notrace);
29907 #endif
29908 +
29909 +#ifdef CONFIG_PAX_PER_CPU_PGD
29910 +EXPORT_SYMBOL(cpu_pgd);
29911 +#endif
29912 diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
29913 index 3839628..2e5b5b35 100644
29914 --- a/arch/x86/kernel/x86_init.c
29915 +++ b/arch/x86/kernel/x86_init.c
29916 @@ -92,7 +92,7 @@ struct x86_cpuinit_ops x86_cpuinit = {
29917 static void default_nmi_init(void) { };
29918 static int default_i8042_detect(void) { return 1; };
29919
29920 -struct x86_platform_ops x86_platform = {
29921 +struct x86_platform_ops x86_platform __read_only = {
29922 .calibrate_tsc = native_calibrate_tsc,
29923 .get_wallclock = mach_get_cmos_time,
29924 .set_wallclock = mach_set_rtc_mmss,
29925 @@ -108,7 +108,7 @@ struct x86_platform_ops x86_platform = {
29926 EXPORT_SYMBOL_GPL(x86_platform);
29927
29928 #if defined(CONFIG_PCI_MSI)
29929 -struct x86_msi_ops x86_msi = {
29930 +struct x86_msi_ops x86_msi __read_only = {
29931 .setup_msi_irqs = native_setup_msi_irqs,
29932 .teardown_msi_irq = native_teardown_msi_irq,
29933 .teardown_msi_irqs = default_teardown_msi_irqs,
29934 @@ -137,7 +137,7 @@ void arch_restore_msi_irqs(struct pci_dev *dev)
29935 }
29936 #endif
29937
29938 -struct x86_io_apic_ops x86_io_apic_ops = {
29939 +struct x86_io_apic_ops x86_io_apic_ops __read_only = {
29940 .read = native_io_apic_read,
29941 .disable = native_disable_io_apic,
29942 };
29943 diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
29944 index 2fbea25..9e0f8c7 100644
29945 --- a/arch/x86/kvm/cpuid.c
29946 +++ b/arch/x86/kvm/cpuid.c
29947 @@ -206,15 +206,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
29948 struct kvm_cpuid2 *cpuid,
29949 struct kvm_cpuid_entry2 __user *entries)
29950 {
29951 - int r;
29952 + int r, i;
29953
29954 r = -E2BIG;
29955 if (cpuid->nent > KVM_MAX_CPUID_ENTRIES)
29956 goto out;
29957 r = -EFAULT;
29958 - if (copy_from_user(&vcpu->arch.cpuid_entries, entries,
29959 - cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29960 + if (!access_ok(VERIFY_READ, entries, cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29961 goto out;
29962 + for (i = 0; i < cpuid->nent; ++i) {
29963 + struct kvm_cpuid_entry2 cpuid_entry;
29964 + if (__copy_from_user(&cpuid_entry, entries + i, sizeof(cpuid_entry)))
29965 + goto out;
29966 + vcpu->arch.cpuid_entries[i] = cpuid_entry;
29967 + }
29968 vcpu->arch.cpuid_nent = cpuid->nent;
29969 kvm_apic_set_version(vcpu);
29970 kvm_x86_ops->cpuid_update(vcpu);
29971 @@ -227,15 +232,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
29972 struct kvm_cpuid2 *cpuid,
29973 struct kvm_cpuid_entry2 __user *entries)
29974 {
29975 - int r;
29976 + int r, i;
29977
29978 r = -E2BIG;
29979 if (cpuid->nent < vcpu->arch.cpuid_nent)
29980 goto out;
29981 r = -EFAULT;
29982 - if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
29983 - vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29984 + if (!access_ok(VERIFY_WRITE, entries, vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29985 goto out;
29986 + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) {
29987 + struct kvm_cpuid_entry2 cpuid_entry = vcpu->arch.cpuid_entries[i];
29988 + if (__copy_to_user(entries + i, &cpuid_entry, sizeof(cpuid_entry)))
29989 + goto out;
29990 + }
29991 return 0;
29992
29993 out:
29994 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
29995 index 2392541a..2aefc2a 100644
29996 --- a/arch/x86/kvm/emulate.c
29997 +++ b/arch/x86/kvm/emulate.c
29998 @@ -3851,7 +3851,7 @@ static int check_cr_write(struct x86_emulate_ctxt *ctxt)
29999 int cr = ctxt->modrm_reg;
30000 u64 efer = 0;
30001
30002 - static u64 cr_reserved_bits[] = {
30003 + static const u64 cr_reserved_bits[] = {
30004 0xffffffff00000000ULL,
30005 0, 0, 0, /* CR3 checked later */
30006 CR4_RESERVED_BITS,
30007 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
30008 index 2a5ca97..ce8577a 100644
30009 --- a/arch/x86/kvm/lapic.c
30010 +++ b/arch/x86/kvm/lapic.c
30011 @@ -56,7 +56,7 @@
30012 #define APIC_BUS_CYCLE_NS 1
30013
30014 /* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */
30015 -#define apic_debug(fmt, arg...)
30016 +#define apic_debug(fmt, arg...) do {} while (0)
30017
30018 #define APIC_LVT_NUM 6
30019 /* 14 is the version for Xeon and Pentium 8.4.8*/
30020 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
30021 index 0f67d7e..4b9fa11 100644
30022 --- a/arch/x86/kvm/paging_tmpl.h
30023 +++ b/arch/x86/kvm/paging_tmpl.h
30024 @@ -343,7 +343,7 @@ retry_walk:
30025 if (unlikely(kvm_is_error_hva(host_addr)))
30026 goto error;
30027
30028 - ptep_user = (pt_element_t __user *)((void *)host_addr + offset);
30029 + ptep_user = (pt_element_t __force_user *)((void *)host_addr + offset);
30030 if (unlikely(__copy_from_user(&pte, ptep_user, sizeof(pte))))
30031 goto error;
30032 walker->ptep_user[walker->level - 1] = ptep_user;
30033 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
30034 index 2d32b67..976f46e 100644
30035 --- a/arch/x86/kvm/svm.c
30036 +++ b/arch/x86/kvm/svm.c
30037 @@ -1106,6 +1106,8 @@ static void init_vmcb(struct vcpu_svm *svm, bool init_event)
30038 set_exception_intercept(svm, PF_VECTOR);
30039 set_exception_intercept(svm, UD_VECTOR);
30040 set_exception_intercept(svm, MC_VECTOR);
30041 + set_exception_intercept(svm, AC_VECTOR);
30042 + set_exception_intercept(svm, DB_VECTOR);
30043
30044 set_intercept(svm, INTERCEPT_INTR);
30045 set_intercept(svm, INTERCEPT_NMI);
30046 @@ -1641,20 +1643,13 @@ static void svm_set_segment(struct kvm_vcpu *vcpu,
30047 mark_dirty(svm->vmcb, VMCB_SEG);
30048 }
30049
30050 -static void update_db_bp_intercept(struct kvm_vcpu *vcpu)
30051 +static void update_bp_intercept(struct kvm_vcpu *vcpu)
30052 {
30053 struct vcpu_svm *svm = to_svm(vcpu);
30054
30055 - clr_exception_intercept(svm, DB_VECTOR);
30056 clr_exception_intercept(svm, BP_VECTOR);
30057
30058 - if (svm->nmi_singlestep)
30059 - set_exception_intercept(svm, DB_VECTOR);
30060 -
30061 if (vcpu->guest_debug & KVM_GUESTDBG_ENABLE) {
30062 - if (vcpu->guest_debug &
30063 - (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))
30064 - set_exception_intercept(svm, DB_VECTOR);
30065 if (vcpu->guest_debug & KVM_GUESTDBG_USE_SW_BP)
30066 set_exception_intercept(svm, BP_VECTOR);
30067 } else
30068 @@ -1760,7 +1755,6 @@ static int db_interception(struct vcpu_svm *svm)
30069 if (!(svm->vcpu.guest_debug & KVM_GUESTDBG_SINGLESTEP))
30070 svm->vmcb->save.rflags &=
30071 ~(X86_EFLAGS_TF | X86_EFLAGS_RF);
30072 - update_db_bp_intercept(&svm->vcpu);
30073 }
30074
30075 if (svm->vcpu.guest_debug &
30076 @@ -1795,6 +1789,12 @@ static int ud_interception(struct vcpu_svm *svm)
30077 return 1;
30078 }
30079
30080 +static int ac_interception(struct vcpu_svm *svm)
30081 +{
30082 + kvm_queue_exception_e(&svm->vcpu, AC_VECTOR, 0);
30083 + return 1;
30084 +}
30085 +
30086 static void svm_fpu_activate(struct kvm_vcpu *vcpu)
30087 {
30088 struct vcpu_svm *svm = to_svm(vcpu);
30089 @@ -3369,6 +3369,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = {
30090 [SVM_EXIT_EXCP_BASE + PF_VECTOR] = pf_interception,
30091 [SVM_EXIT_EXCP_BASE + NM_VECTOR] = nm_interception,
30092 [SVM_EXIT_EXCP_BASE + MC_VECTOR] = mc_interception,
30093 + [SVM_EXIT_EXCP_BASE + AC_VECTOR] = ac_interception,
30094 [SVM_EXIT_INTR] = intr_interception,
30095 [SVM_EXIT_NMI] = nmi_interception,
30096 [SVM_EXIT_SMI] = nop_on_interception,
30097 @@ -3586,7 +3587,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
30098 int cpu = raw_smp_processor_id();
30099
30100 struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
30101 +
30102 + pax_open_kernel();
30103 sd->tss_desc->type = 9; /* available 32/64-bit TSS */
30104 + pax_close_kernel();
30105 +
30106 load_TR_desc();
30107 }
30108
30109 @@ -3752,7 +3757,6 @@ static void enable_nmi_window(struct kvm_vcpu *vcpu)
30110 */
30111 svm->nmi_singlestep = true;
30112 svm->vmcb->save.rflags |= (X86_EFLAGS_TF | X86_EFLAGS_RF);
30113 - update_db_bp_intercept(vcpu);
30114 }
30115
30116 static int svm_set_tss_addr(struct kvm *kvm, unsigned int addr)
30117 @@ -3982,6 +3986,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
30118 #endif
30119 #endif
30120
30121 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
30122 + __set_fs(current_thread_info()->addr_limit);
30123 +#endif
30124 +
30125 reload_tss(vcpu);
30126
30127 local_irq_disable();
30128 @@ -4355,7 +4363,7 @@ static void svm_sched_in(struct kvm_vcpu *vcpu, int cpu)
30129 {
30130 }
30131
30132 -static struct kvm_x86_ops svm_x86_ops = {
30133 +static struct kvm_x86_ops svm_x86_ops __read_only = {
30134 .cpu_has_kvm_support = has_svm,
30135 .disabled_by_bios = is_disabled,
30136 .hardware_setup = svm_hardware_setup,
30137 @@ -4374,7 +4382,7 @@ static struct kvm_x86_ops svm_x86_ops = {
30138 .vcpu_load = svm_vcpu_load,
30139 .vcpu_put = svm_vcpu_put,
30140
30141 - .update_db_bp_intercept = update_db_bp_intercept,
30142 + .update_db_bp_intercept = update_bp_intercept,
30143 .get_msr = svm_get_msr,
30144 .set_msr = svm_set_msr,
30145 .get_segment_base = svm_get_segment_base,
30146 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
30147 index aa9e8229..5f643bf 100644
30148 --- a/arch/x86/kvm/vmx.c
30149 +++ b/arch/x86/kvm/vmx.c
30150 @@ -1440,12 +1440,12 @@ static void vmcs_write64(unsigned long field, u64 value)
30151 #endif
30152 }
30153
30154 -static void vmcs_clear_bits(unsigned long field, u32 mask)
30155 +static void vmcs_clear_bits(unsigned long field, unsigned long mask)
30156 {
30157 vmcs_writel(field, vmcs_readl(field) & ~mask);
30158 }
30159
30160 -static void vmcs_set_bits(unsigned long field, u32 mask)
30161 +static void vmcs_set_bits(unsigned long field, unsigned long mask)
30162 {
30163 vmcs_writel(field, vmcs_readl(field) | mask);
30164 }
30165 @@ -1567,7 +1567,7 @@ static void update_exception_bitmap(struct kvm_vcpu *vcpu)
30166 u32 eb;
30167
30168 eb = (1u << PF_VECTOR) | (1u << UD_VECTOR) | (1u << MC_VECTOR) |
30169 - (1u << NM_VECTOR) | (1u << DB_VECTOR);
30170 + (1u << NM_VECTOR) | (1u << DB_VECTOR) | (1u << AC_VECTOR);
30171 if ((vcpu->guest_debug &
30172 (KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP)) ==
30173 (KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP))
30174 @@ -1705,7 +1705,11 @@ static void reload_tss(void)
30175 struct desc_struct *descs;
30176
30177 descs = (void *)gdt->address;
30178 +
30179 + pax_open_kernel();
30180 descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
30181 + pax_close_kernel();
30182 +
30183 load_TR_desc();
30184 }
30185
30186 @@ -1941,6 +1945,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
30187 vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
30188 vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */
30189
30190 +#ifdef CONFIG_PAX_PER_CPU_PGD
30191 + vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
30192 +#endif
30193 +
30194 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
30195 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
30196 vmx->loaded_vmcs->cpu = cpu;
30197 @@ -2232,7 +2240,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
30198 * reads and returns guest's timestamp counter "register"
30199 * guest_tsc = host_tsc + tsc_offset -- 21.3
30200 */
30201 -static u64 guest_read_tsc(void)
30202 +static u64 __intentional_overflow(-1) guest_read_tsc(void)
30203 {
30204 u64 host_tsc, tsc_offset;
30205
30206 @@ -4459,7 +4467,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
30207 unsigned long cr4;
30208
30209 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
30210 +
30211 +#ifndef CONFIG_PAX_PER_CPU_PGD
30212 vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
30213 +#endif
30214
30215 /* Save the most likely value for this task's CR4 in the VMCS. */
30216 cr4 = cr4_read_shadow();
30217 @@ -4486,7 +4497,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
30218 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
30219 vmx->host_idt_base = dt.address;
30220
30221 - vmcs_writel(HOST_RIP, vmx_return); /* 22.2.5 */
30222 + vmcs_writel(HOST_RIP, ktla_ktva(vmx_return)); /* 22.2.5 */
30223
30224 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
30225 vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
30226 @@ -5118,6 +5129,9 @@ static int handle_exception(struct kvm_vcpu *vcpu)
30227 return handle_rmode_exception(vcpu, ex_no, error_code);
30228
30229 switch (ex_no) {
30230 + case AC_VECTOR:
30231 + kvm_queue_exception_e(vcpu, AC_VECTOR, error_code);
30232 + return 1;
30233 case DB_VECTOR:
30234 dr6 = vmcs_readl(EXIT_QUALIFICATION);
30235 if (!(vcpu->guest_debug &
30236 @@ -6097,11 +6111,17 @@ static __init int hardware_setup(void)
30237 * page upon invalidation. No need to do anything if not
30238 * using the APIC_ACCESS_ADDR VMCS field.
30239 */
30240 - if (!flexpriority_enabled)
30241 + if (!flexpriority_enabled) {
30242 + pax_open_kernel();
30243 kvm_x86_ops->set_apic_access_page_addr = NULL;
30244 + pax_close_kernel();
30245 + }
30246
30247 - if (!cpu_has_vmx_tpr_shadow())
30248 + if (!cpu_has_vmx_tpr_shadow()) {
30249 + pax_open_kernel();
30250 kvm_x86_ops->update_cr8_intercept = NULL;
30251 + pax_close_kernel();
30252 + }
30253
30254 if (enable_ept && !cpu_has_vmx_ept_2m_page())
30255 kvm_disable_largepages();
30256 @@ -6112,6 +6132,7 @@ static __init int hardware_setup(void)
30257 if (!cpu_has_vmx_apicv())
30258 enable_apicv = 0;
30259
30260 + pax_open_kernel();
30261 if (enable_apicv)
30262 kvm_x86_ops->update_cr8_intercept = NULL;
30263 else {
30264 @@ -6120,6 +6141,7 @@ static __init int hardware_setup(void)
30265 kvm_x86_ops->deliver_posted_interrupt = NULL;
30266 kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
30267 }
30268 + pax_close_kernel();
30269
30270 vmx_disable_intercept_for_msr(MSR_FS_BASE, false);
30271 vmx_disable_intercept_for_msr(MSR_GS_BASE, false);
30272 @@ -6174,10 +6196,12 @@ static __init int hardware_setup(void)
30273 enable_pml = 0;
30274
30275 if (!enable_pml) {
30276 + pax_open_kernel();
30277 kvm_x86_ops->slot_enable_log_dirty = NULL;
30278 kvm_x86_ops->slot_disable_log_dirty = NULL;
30279 kvm_x86_ops->flush_log_dirty = NULL;
30280 kvm_x86_ops->enable_log_dirty_pt_masked = NULL;
30281 + pax_close_kernel();
30282 }
30283
30284 return alloc_kvm_area();
30285 @@ -8380,6 +8404,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30286 "jmp 2f \n\t"
30287 "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
30288 "2: "
30289 +
30290 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
30291 + "ljmp %[cs],$3f\n\t"
30292 + "3: "
30293 +#endif
30294 +
30295 /* Save guest registers, load host registers, keep flags */
30296 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
30297 "pop %0 \n\t"
30298 @@ -8432,6 +8462,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30299 #endif
30300 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
30301 [wordsize]"i"(sizeof(ulong))
30302 +
30303 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
30304 + ,[cs]"i"(__KERNEL_CS)
30305 +#endif
30306 +
30307 : "cc", "memory"
30308 #ifdef CONFIG_X86_64
30309 , "rax", "rbx", "rdi", "rsi"
30310 @@ -8445,7 +8480,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30311 if (debugctlmsr)
30312 update_debugctlmsr(debugctlmsr);
30313
30314 -#ifndef CONFIG_X86_64
30315 +#ifdef CONFIG_X86_32
30316 /*
30317 * The sysexit path does not restore ds/es, so we must set them to
30318 * a reasonable value ourselves.
30319 @@ -8454,8 +8489,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30320 * may be executed in interrupt context, which saves and restore segments
30321 * around it, nullifying its effect.
30322 */
30323 - loadsegment(ds, __USER_DS);
30324 - loadsegment(es, __USER_DS);
30325 + loadsegment(ds, __KERNEL_DS);
30326 + loadsegment(es, __KERNEL_DS);
30327 + loadsegment(ss, __KERNEL_DS);
30328 +
30329 +#ifdef CONFIG_PAX_KERNEXEC
30330 + loadsegment(fs, __KERNEL_PERCPU);
30331 +#endif
30332 +
30333 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30334 + __set_fs(current_thread_info()->addr_limit);
30335 +#endif
30336 +
30337 #endif
30338
30339 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
30340 @@ -10309,7 +10354,7 @@ static void vmx_enable_log_dirty_pt_masked(struct kvm *kvm,
30341 kvm_mmu_clear_dirty_pt_masked(kvm, memslot, offset, mask);
30342 }
30343
30344 -static struct kvm_x86_ops vmx_x86_ops = {
30345 +static struct kvm_x86_ops vmx_x86_ops __read_only = {
30346 .cpu_has_kvm_support = cpu_has_kvm_support,
30347 .disabled_by_bios = vmx_disabled_by_bios,
30348 .hardware_setup = hardware_setup,
30349 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
30350 index 373328b7..310cf2f 100644
30351 --- a/arch/x86/kvm/x86.c
30352 +++ b/arch/x86/kvm/x86.c
30353 @@ -1842,8 +1842,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
30354 {
30355 struct kvm *kvm = vcpu->kvm;
30356 int lm = is_long_mode(vcpu);
30357 - u8 *blob_addr = lm ? (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_64
30358 - : (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
30359 + u8 __user *blob_addr = lm ? (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_64
30360 + : (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
30361 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
30362 : kvm->arch.xen_hvm_config.blob_size_32;
30363 u32 page_num = data & ~PAGE_MASK;
30364 @@ -2733,6 +2733,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
30365 if (n < msr_list.nmsrs)
30366 goto out;
30367 r = -EFAULT;
30368 + if (num_msrs_to_save > ARRAY_SIZE(msrs_to_save))
30369 + goto out;
30370 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
30371 num_msrs_to_save * sizeof(u32)))
30372 goto out;
30373 @@ -3093,7 +3095,7 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
30374
30375 static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
30376 {
30377 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
30378 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
30379 u64 xstate_bv = xsave->header.xfeatures;
30380 u64 valid;
30381
30382 @@ -3129,7 +3131,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
30383
30384 static void load_xsave(struct kvm_vcpu *vcpu, u8 *src)
30385 {
30386 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
30387 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
30388 u64 xstate_bv = *(u64 *)(src + XSAVE_HDR_OFFSET);
30389 u64 valid;
30390
30391 @@ -3173,7 +3175,7 @@ static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
30392 fill_xsave((u8 *) guest_xsave->region, vcpu);
30393 } else {
30394 memcpy(guest_xsave->region,
30395 - &vcpu->arch.guest_fpu.state.fxsave,
30396 + &vcpu->arch.guest_fpu.state->fxsave,
30397 sizeof(struct fxregs_state));
30398 *(u64 *)&guest_xsave->region[XSAVE_HDR_OFFSET / sizeof(u32)] =
30399 XSTATE_FPSSE;
30400 @@ -3198,7 +3200,7 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
30401 } else {
30402 if (xstate_bv & ~XSTATE_FPSSE)
30403 return -EINVAL;
30404 - memcpy(&vcpu->arch.guest_fpu.state.fxsave,
30405 + memcpy(&vcpu->arch.guest_fpu.state->fxsave,
30406 guest_xsave->region, sizeof(struct fxregs_state));
30407 }
30408 return 0;
30409 @@ -7217,7 +7219,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
30410 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30411 {
30412 struct fxregs_state *fxsave =
30413 - &vcpu->arch.guest_fpu.state.fxsave;
30414 + &vcpu->arch.guest_fpu.state->fxsave;
30415
30416 memcpy(fpu->fpr, fxsave->st_space, 128);
30417 fpu->fcw = fxsave->cwd;
30418 @@ -7234,7 +7236,7 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30419 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30420 {
30421 struct fxregs_state *fxsave =
30422 - &vcpu->arch.guest_fpu.state.fxsave;
30423 + &vcpu->arch.guest_fpu.state->fxsave;
30424
30425 memcpy(fxsave->st_space, fpu->fpr, 128);
30426 fxsave->cwd = fpu->fcw;
30427 @@ -7250,9 +7252,9 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30428
30429 static void fx_init(struct kvm_vcpu *vcpu)
30430 {
30431 - fpstate_init(&vcpu->arch.guest_fpu.state);
30432 + fpstate_init(vcpu->arch.guest_fpu.state);
30433 if (cpu_has_xsaves)
30434 - vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv =
30435 + vcpu->arch.guest_fpu.state->xsave.header.xcomp_bv =
30436 host_xcr0 | XSTATE_COMPACTION_ENABLED;
30437
30438 /*
30439 @@ -7276,7 +7278,7 @@ void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
30440 kvm_put_guest_xcr0(vcpu);
30441 vcpu->guest_fpu_loaded = 1;
30442 __kernel_fpu_begin();
30443 - __copy_kernel_to_fpregs(&vcpu->arch.guest_fpu.state);
30444 + __copy_kernel_to_fpregs(vcpu->arch.guest_fpu.state);
30445 trace_kvm_fpu(1);
30446 }
30447
30448 @@ -7554,6 +7556,8 @@ bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
30449
30450 struct static_key kvm_no_apic_vcpu __read_mostly;
30451
30452 +extern struct kmem_cache *fpregs_state_cachep;
30453 +
30454 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
30455 {
30456 struct page *page;
30457 @@ -7570,11 +7574,14 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
30458 else
30459 vcpu->arch.mp_state = KVM_MP_STATE_UNINITIALIZED;
30460
30461 - page = alloc_page(GFP_KERNEL | __GFP_ZERO);
30462 - if (!page) {
30463 - r = -ENOMEM;
30464 + r = -ENOMEM;
30465 + vcpu->arch.guest_fpu.state = kmem_cache_alloc(fpregs_state_cachep, GFP_KERNEL);
30466 + if (!vcpu->arch.guest_fpu.state)
30467 goto fail;
30468 - }
30469 +
30470 + page = alloc_page(GFP_KERNEL | __GFP_ZERO);
30471 + if (!page)
30472 + goto fail_free_fpregs;
30473 vcpu->arch.pio_data = page_address(page);
30474
30475 kvm_set_tsc_khz(vcpu, max_tsc_khz);
30476 @@ -7628,6 +7635,9 @@ fail_mmu_destroy:
30477 kvm_mmu_destroy(vcpu);
30478 fail_free_pio_data:
30479 free_page((unsigned long)vcpu->arch.pio_data);
30480 +fail_free_fpregs:
30481 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
30482 + vcpu->arch.guest_fpu.state = NULL;
30483 fail:
30484 return r;
30485 }
30486 @@ -7645,6 +7655,8 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
30487 free_page((unsigned long)vcpu->arch.pio_data);
30488 if (!irqchip_in_kernel(vcpu->kvm))
30489 static_key_slow_dec(&kvm_no_apic_vcpu);
30490 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
30491 + vcpu->arch.guest_fpu.state = NULL;
30492 }
30493
30494 void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
30495 diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
30496 index f2dc08c..d85d906 100644
30497 --- a/arch/x86/lguest/boot.c
30498 +++ b/arch/x86/lguest/boot.c
30499 @@ -1341,9 +1341,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
30500 * Rebooting also tells the Host we're finished, but the RESTART flag tells the
30501 * Launcher to reboot us.
30502 */
30503 -static void lguest_restart(char *reason)
30504 +static __noreturn void lguest_restart(char *reason)
30505 {
30506 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0, 0);
30507 + BUG();
30508 }
30509
30510 /*G:050
30511 diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
30512 index 9b0ca8f..bb4af41 100644
30513 --- a/arch/x86/lib/atomic64_386_32.S
30514 +++ b/arch/x86/lib/atomic64_386_32.S
30515 @@ -45,6 +45,10 @@ BEGIN(read)
30516 movl (v), %eax
30517 movl 4(v), %edx
30518 RET_ENDP
30519 +BEGIN(read_unchecked)
30520 + movl (v), %eax
30521 + movl 4(v), %edx
30522 +RET_ENDP
30523 #undef v
30524
30525 #define v %esi
30526 @@ -52,6 +56,10 @@ BEGIN(set)
30527 movl %ebx, (v)
30528 movl %ecx, 4(v)
30529 RET_ENDP
30530 +BEGIN(set_unchecked)
30531 + movl %ebx, (v)
30532 + movl %ecx, 4(v)
30533 +RET_ENDP
30534 #undef v
30535
30536 #define v %esi
30537 @@ -67,6 +75,20 @@ RET_ENDP
30538 BEGIN(add)
30539 addl %eax, (v)
30540 adcl %edx, 4(v)
30541 +
30542 +#ifdef CONFIG_PAX_REFCOUNT
30543 + jno 0f
30544 + subl %eax, (v)
30545 + sbbl %edx, 4(v)
30546 + int $4
30547 +0:
30548 + _ASM_EXTABLE(0b, 0b)
30549 +#endif
30550 +
30551 +RET_ENDP
30552 +BEGIN(add_unchecked)
30553 + addl %eax, (v)
30554 + adcl %edx, 4(v)
30555 RET_ENDP
30556 #undef v
30557
30558 @@ -74,6 +96,24 @@ RET_ENDP
30559 BEGIN(add_return)
30560 addl (v), %eax
30561 adcl 4(v), %edx
30562 +
30563 +#ifdef CONFIG_PAX_REFCOUNT
30564 + into
30565 +1234:
30566 + _ASM_EXTABLE(1234b, 2f)
30567 +#endif
30568 +
30569 + movl %eax, (v)
30570 + movl %edx, 4(v)
30571 +
30572 +#ifdef CONFIG_PAX_REFCOUNT
30573 +2:
30574 +#endif
30575 +
30576 +RET_ENDP
30577 +BEGIN(add_return_unchecked)
30578 + addl (v), %eax
30579 + adcl 4(v), %edx
30580 movl %eax, (v)
30581 movl %edx, 4(v)
30582 RET_ENDP
30583 @@ -83,6 +123,20 @@ RET_ENDP
30584 BEGIN(sub)
30585 subl %eax, (v)
30586 sbbl %edx, 4(v)
30587 +
30588 +#ifdef CONFIG_PAX_REFCOUNT
30589 + jno 0f
30590 + addl %eax, (v)
30591 + adcl %edx, 4(v)
30592 + int $4
30593 +0:
30594 + _ASM_EXTABLE(0b, 0b)
30595 +#endif
30596 +
30597 +RET_ENDP
30598 +BEGIN(sub_unchecked)
30599 + subl %eax, (v)
30600 + sbbl %edx, 4(v)
30601 RET_ENDP
30602 #undef v
30603
30604 @@ -93,6 +147,27 @@ BEGIN(sub_return)
30605 sbbl $0, %edx
30606 addl (v), %eax
30607 adcl 4(v), %edx
30608 +
30609 +#ifdef CONFIG_PAX_REFCOUNT
30610 + into
30611 +1234:
30612 + _ASM_EXTABLE(1234b, 2f)
30613 +#endif
30614 +
30615 + movl %eax, (v)
30616 + movl %edx, 4(v)
30617 +
30618 +#ifdef CONFIG_PAX_REFCOUNT
30619 +2:
30620 +#endif
30621 +
30622 +RET_ENDP
30623 +BEGIN(sub_return_unchecked)
30624 + negl %edx
30625 + negl %eax
30626 + sbbl $0, %edx
30627 + addl (v), %eax
30628 + adcl 4(v), %edx
30629 movl %eax, (v)
30630 movl %edx, 4(v)
30631 RET_ENDP
30632 @@ -102,6 +177,20 @@ RET_ENDP
30633 BEGIN(inc)
30634 addl $1, (v)
30635 adcl $0, 4(v)
30636 +
30637 +#ifdef CONFIG_PAX_REFCOUNT
30638 + jno 0f
30639 + subl $1, (v)
30640 + sbbl $0, 4(v)
30641 + int $4
30642 +0:
30643 + _ASM_EXTABLE(0b, 0b)
30644 +#endif
30645 +
30646 +RET_ENDP
30647 +BEGIN(inc_unchecked)
30648 + addl $1, (v)
30649 + adcl $0, 4(v)
30650 RET_ENDP
30651 #undef v
30652
30653 @@ -111,6 +200,26 @@ BEGIN(inc_return)
30654 movl 4(v), %edx
30655 addl $1, %eax
30656 adcl $0, %edx
30657 +
30658 +#ifdef CONFIG_PAX_REFCOUNT
30659 + into
30660 +1234:
30661 + _ASM_EXTABLE(1234b, 2f)
30662 +#endif
30663 +
30664 + movl %eax, (v)
30665 + movl %edx, 4(v)
30666 +
30667 +#ifdef CONFIG_PAX_REFCOUNT
30668 +2:
30669 +#endif
30670 +
30671 +RET_ENDP
30672 +BEGIN(inc_return_unchecked)
30673 + movl (v), %eax
30674 + movl 4(v), %edx
30675 + addl $1, %eax
30676 + adcl $0, %edx
30677 movl %eax, (v)
30678 movl %edx, 4(v)
30679 RET_ENDP
30680 @@ -120,6 +229,20 @@ RET_ENDP
30681 BEGIN(dec)
30682 subl $1, (v)
30683 sbbl $0, 4(v)
30684 +
30685 +#ifdef CONFIG_PAX_REFCOUNT
30686 + jno 0f
30687 + addl $1, (v)
30688 + adcl $0, 4(v)
30689 + int $4
30690 +0:
30691 + _ASM_EXTABLE(0b, 0b)
30692 +#endif
30693 +
30694 +RET_ENDP
30695 +BEGIN(dec_unchecked)
30696 + subl $1, (v)
30697 + sbbl $0, 4(v)
30698 RET_ENDP
30699 #undef v
30700
30701 @@ -129,6 +252,26 @@ BEGIN(dec_return)
30702 movl 4(v), %edx
30703 subl $1, %eax
30704 sbbl $0, %edx
30705 +
30706 +#ifdef CONFIG_PAX_REFCOUNT
30707 + into
30708 +1234:
30709 + _ASM_EXTABLE(1234b, 2f)
30710 +#endif
30711 +
30712 + movl %eax, (v)
30713 + movl %edx, 4(v)
30714 +
30715 +#ifdef CONFIG_PAX_REFCOUNT
30716 +2:
30717 +#endif
30718 +
30719 +RET_ENDP
30720 +BEGIN(dec_return_unchecked)
30721 + movl (v), %eax
30722 + movl 4(v), %edx
30723 + subl $1, %eax
30724 + sbbl $0, %edx
30725 movl %eax, (v)
30726 movl %edx, 4(v)
30727 RET_ENDP
30728 @@ -140,6 +283,13 @@ BEGIN(add_unless)
30729 adcl %edx, %edi
30730 addl (v), %eax
30731 adcl 4(v), %edx
30732 +
30733 +#ifdef CONFIG_PAX_REFCOUNT
30734 + into
30735 +1234:
30736 + _ASM_EXTABLE(1234b, 2f)
30737 +#endif
30738 +
30739 cmpl %eax, %ecx
30740 je 3f
30741 1:
30742 @@ -165,6 +315,13 @@ BEGIN(inc_not_zero)
30743 1:
30744 addl $1, %eax
30745 adcl $0, %edx
30746 +
30747 +#ifdef CONFIG_PAX_REFCOUNT
30748 + into
30749 +1234:
30750 + _ASM_EXTABLE(1234b, 2f)
30751 +#endif
30752 +
30753 movl %eax, (v)
30754 movl %edx, 4(v)
30755 movl $1, %eax
30756 @@ -183,6 +340,13 @@ BEGIN(dec_if_positive)
30757 movl 4(v), %edx
30758 subl $1, %eax
30759 sbbl $0, %edx
30760 +
30761 +#ifdef CONFIG_PAX_REFCOUNT
30762 + into
30763 +1234:
30764 + _ASM_EXTABLE(1234b, 1f)
30765 +#endif
30766 +
30767 js 1f
30768 movl %eax, (v)
30769 movl %edx, 4(v)
30770 diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
30771 index db3ae854..b8ad0de 100644
30772 --- a/arch/x86/lib/atomic64_cx8_32.S
30773 +++ b/arch/x86/lib/atomic64_cx8_32.S
30774 @@ -22,9 +22,16 @@
30775
30776 ENTRY(atomic64_read_cx8)
30777 read64 %ecx
30778 + pax_force_retaddr
30779 ret
30780 ENDPROC(atomic64_read_cx8)
30781
30782 +ENTRY(atomic64_read_unchecked_cx8)
30783 + read64 %ecx
30784 + pax_force_retaddr
30785 + ret
30786 +ENDPROC(atomic64_read_unchecked_cx8)
30787 +
30788 ENTRY(atomic64_set_cx8)
30789 1:
30790 /* we don't need LOCK_PREFIX since aligned 64-bit writes
30791 @@ -32,20 +39,33 @@ ENTRY(atomic64_set_cx8)
30792 cmpxchg8b (%esi)
30793 jne 1b
30794
30795 + pax_force_retaddr
30796 ret
30797 ENDPROC(atomic64_set_cx8)
30798
30799 +ENTRY(atomic64_set_unchecked_cx8)
30800 +1:
30801 +/* we don't need LOCK_PREFIX since aligned 64-bit writes
30802 + * are atomic on 586 and newer */
30803 + cmpxchg8b (%esi)
30804 + jne 1b
30805 +
30806 + pax_force_retaddr
30807 + ret
30808 +ENDPROC(atomic64_set_unchecked_cx8)
30809 +
30810 ENTRY(atomic64_xchg_cx8)
30811 1:
30812 LOCK_PREFIX
30813 cmpxchg8b (%esi)
30814 jne 1b
30815
30816 + pax_force_retaddr
30817 ret
30818 ENDPROC(atomic64_xchg_cx8)
30819
30820 -.macro addsub_return func ins insc
30821 -ENTRY(atomic64_\func\()_return_cx8)
30822 +.macro addsub_return func ins insc unchecked=""
30823 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30824 pushl %ebp
30825 pushl %ebx
30826 pushl %esi
30827 @@ -61,26 +81,43 @@ ENTRY(atomic64_\func\()_return_cx8)
30828 movl %edx, %ecx
30829 \ins\()l %esi, %ebx
30830 \insc\()l %edi, %ecx
30831 +
30832 +.ifb \unchecked
30833 +#ifdef CONFIG_PAX_REFCOUNT
30834 + into
30835 +2:
30836 + _ASM_EXTABLE(2b, 3f)
30837 +#endif
30838 +.endif
30839 +
30840 LOCK_PREFIX
30841 cmpxchg8b (%ebp)
30842 jne 1b
30843 -
30844 -10:
30845 movl %ebx, %eax
30846 movl %ecx, %edx
30847 +
30848 +.ifb \unchecked
30849 +#ifdef CONFIG_PAX_REFCOUNT
30850 +3:
30851 +#endif
30852 +.endif
30853 +
30854 popl %edi
30855 popl %esi
30856 popl %ebx
30857 popl %ebp
30858 + pax_force_retaddr
30859 ret
30860 -ENDPROC(atomic64_\func\()_return_cx8)
30861 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30862 .endm
30863
30864 addsub_return add add adc
30865 addsub_return sub sub sbb
30866 +addsub_return add add adc _unchecked
30867 +addsub_return sub sub sbb _unchecked
30868
30869 -.macro incdec_return func ins insc
30870 -ENTRY(atomic64_\func\()_return_cx8)
30871 +.macro incdec_return func ins insc unchecked=""
30872 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30873 pushl %ebx
30874
30875 read64 %esi
30876 @@ -89,20 +126,37 @@ ENTRY(atomic64_\func\()_return_cx8)
30877 movl %edx, %ecx
30878 \ins\()l $1, %ebx
30879 \insc\()l $0, %ecx
30880 +
30881 +.ifb \unchecked
30882 +#ifdef CONFIG_PAX_REFCOUNT
30883 + into
30884 +2:
30885 + _ASM_EXTABLE(2b, 3f)
30886 +#endif
30887 +.endif
30888 +
30889 LOCK_PREFIX
30890 cmpxchg8b (%esi)
30891 jne 1b
30892 -
30893 -10:
30894 movl %ebx, %eax
30895 movl %ecx, %edx
30896 +
30897 +.ifb \unchecked
30898 +#ifdef CONFIG_PAX_REFCOUNT
30899 +3:
30900 +#endif
30901 +.endif
30902 +
30903 popl %ebx
30904 + pax_force_retaddr
30905 ret
30906 -ENDPROC(atomic64_\func\()_return_cx8)
30907 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30908 .endm
30909
30910 incdec_return inc add adc
30911 incdec_return dec sub sbb
30912 +incdec_return inc add adc _unchecked
30913 +incdec_return dec sub sbb _unchecked
30914
30915 ENTRY(atomic64_dec_if_positive_cx8)
30916 pushl %ebx
30917 @@ -113,6 +167,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
30918 movl %edx, %ecx
30919 subl $1, %ebx
30920 sbb $0, %ecx
30921 +
30922 +#ifdef CONFIG_PAX_REFCOUNT
30923 + into
30924 +1234:
30925 + _ASM_EXTABLE(1234b, 2f)
30926 +#endif
30927 +
30928 js 2f
30929 LOCK_PREFIX
30930 cmpxchg8b (%esi)
30931 @@ -122,6 +183,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
30932 movl %ebx, %eax
30933 movl %ecx, %edx
30934 popl %ebx
30935 + pax_force_retaddr
30936 ret
30937 ENDPROC(atomic64_dec_if_positive_cx8)
30938
30939 @@ -144,6 +206,13 @@ ENTRY(atomic64_add_unless_cx8)
30940 movl %edx, %ecx
30941 addl %ebp, %ebx
30942 adcl %edi, %ecx
30943 +
30944 +#ifdef CONFIG_PAX_REFCOUNT
30945 + into
30946 +1234:
30947 + _ASM_EXTABLE(1234b, 3f)
30948 +#endif
30949 +
30950 LOCK_PREFIX
30951 cmpxchg8b (%esi)
30952 jne 1b
30953 @@ -153,6 +222,7 @@ ENTRY(atomic64_add_unless_cx8)
30954 addl $8, %esp
30955 popl %ebx
30956 popl %ebp
30957 + pax_force_retaddr
30958 ret
30959 4:
30960 cmpl %edx, 4(%esp)
30961 @@ -173,6 +243,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
30962 xorl %ecx, %ecx
30963 addl $1, %ebx
30964 adcl %edx, %ecx
30965 +
30966 +#ifdef CONFIG_PAX_REFCOUNT
30967 + into
30968 +1234:
30969 + _ASM_EXTABLE(1234b, 3f)
30970 +#endif
30971 +
30972 LOCK_PREFIX
30973 cmpxchg8b (%esi)
30974 jne 1b
30975 @@ -180,5 +257,6 @@ ENTRY(atomic64_inc_not_zero_cx8)
30976 movl $1, %eax
30977 3:
30978 popl %ebx
30979 + pax_force_retaddr
30980 ret
30981 ENDPROC(atomic64_inc_not_zero_cx8)
30982 diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
30983 index c1e6232..ebbeba7 100644
30984 --- a/arch/x86/lib/checksum_32.S
30985 +++ b/arch/x86/lib/checksum_32.S
30986 @@ -28,7 +28,8 @@
30987 #include <linux/linkage.h>
30988 #include <asm/errno.h>
30989 #include <asm/asm.h>
30990 -
30991 +#include <asm/segment.h>
30992 +
30993 /*
30994 * computes a partial checksum, e.g. for TCP/UDP fragments
30995 */
30996 @@ -280,7 +281,22 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
30997
30998 #define ARGBASE 16
30999 #define FP 12
31000 -
31001 +
31002 +ENTRY(csum_partial_copy_generic_to_user)
31003 +
31004 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31005 + pushl %gs
31006 + popl %es
31007 + jmp csum_partial_copy_generic
31008 +#endif
31009 +
31010 +ENTRY(csum_partial_copy_generic_from_user)
31011 +
31012 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31013 + pushl %gs
31014 + popl %ds
31015 +#endif
31016 +
31017 ENTRY(csum_partial_copy_generic)
31018 subl $4,%esp
31019 pushl %edi
31020 @@ -299,7 +315,7 @@ ENTRY(csum_partial_copy_generic)
31021 jmp 4f
31022 SRC(1: movw (%esi), %bx )
31023 addl $2, %esi
31024 -DST( movw %bx, (%edi) )
31025 +DST( movw %bx, %es:(%edi) )
31026 addl $2, %edi
31027 addw %bx, %ax
31028 adcl $0, %eax
31029 @@ -311,30 +327,30 @@ DST( movw %bx, (%edi) )
31030 SRC(1: movl (%esi), %ebx )
31031 SRC( movl 4(%esi), %edx )
31032 adcl %ebx, %eax
31033 -DST( movl %ebx, (%edi) )
31034 +DST( movl %ebx, %es:(%edi) )
31035 adcl %edx, %eax
31036 -DST( movl %edx, 4(%edi) )
31037 +DST( movl %edx, %es:4(%edi) )
31038
31039 SRC( movl 8(%esi), %ebx )
31040 SRC( movl 12(%esi), %edx )
31041 adcl %ebx, %eax
31042 -DST( movl %ebx, 8(%edi) )
31043 +DST( movl %ebx, %es:8(%edi) )
31044 adcl %edx, %eax
31045 -DST( movl %edx, 12(%edi) )
31046 +DST( movl %edx, %es:12(%edi) )
31047
31048 SRC( movl 16(%esi), %ebx )
31049 SRC( movl 20(%esi), %edx )
31050 adcl %ebx, %eax
31051 -DST( movl %ebx, 16(%edi) )
31052 +DST( movl %ebx, %es:16(%edi) )
31053 adcl %edx, %eax
31054 -DST( movl %edx, 20(%edi) )
31055 +DST( movl %edx, %es:20(%edi) )
31056
31057 SRC( movl 24(%esi), %ebx )
31058 SRC( movl 28(%esi), %edx )
31059 adcl %ebx, %eax
31060 -DST( movl %ebx, 24(%edi) )
31061 +DST( movl %ebx, %es:24(%edi) )
31062 adcl %edx, %eax
31063 -DST( movl %edx, 28(%edi) )
31064 +DST( movl %edx, %es:28(%edi) )
31065
31066 lea 32(%esi), %esi
31067 lea 32(%edi), %edi
31068 @@ -348,7 +364,7 @@ DST( movl %edx, 28(%edi) )
31069 shrl $2, %edx # This clears CF
31070 SRC(3: movl (%esi), %ebx )
31071 adcl %ebx, %eax
31072 -DST( movl %ebx, (%edi) )
31073 +DST( movl %ebx, %es:(%edi) )
31074 lea 4(%esi), %esi
31075 lea 4(%edi), %edi
31076 dec %edx
31077 @@ -360,12 +376,12 @@ DST( movl %ebx, (%edi) )
31078 jb 5f
31079 SRC( movw (%esi), %cx )
31080 leal 2(%esi), %esi
31081 -DST( movw %cx, (%edi) )
31082 +DST( movw %cx, %es:(%edi) )
31083 leal 2(%edi), %edi
31084 je 6f
31085 shll $16,%ecx
31086 SRC(5: movb (%esi), %cl )
31087 -DST( movb %cl, (%edi) )
31088 +DST( movb %cl, %es:(%edi) )
31089 6: addl %ecx, %eax
31090 adcl $0, %eax
31091 7:
31092 @@ -376,7 +392,7 @@ DST( movb %cl, (%edi) )
31093
31094 6001:
31095 movl ARGBASE+20(%esp), %ebx # src_err_ptr
31096 - movl $-EFAULT, (%ebx)
31097 + movl $-EFAULT, %ss:(%ebx)
31098
31099 # zero the complete destination - computing the rest
31100 # is too much work
31101 @@ -389,34 +405,58 @@ DST( movb %cl, (%edi) )
31102
31103 6002:
31104 movl ARGBASE+24(%esp), %ebx # dst_err_ptr
31105 - movl $-EFAULT,(%ebx)
31106 + movl $-EFAULT,%ss:(%ebx)
31107 jmp 5000b
31108
31109 .previous
31110
31111 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31112 + pushl %ss
31113 + popl %ds
31114 + pushl %ss
31115 + popl %es
31116 +#endif
31117 +
31118 popl %ebx
31119 popl %esi
31120 popl %edi
31121 popl %ecx # equivalent to addl $4,%esp
31122 ret
31123 -ENDPROC(csum_partial_copy_generic)
31124 +ENDPROC(csum_partial_copy_generic_to_user)
31125
31126 #else
31127
31128 /* Version for PentiumII/PPro */
31129
31130 #define ROUND1(x) \
31131 + nop; nop; nop; \
31132 SRC(movl x(%esi), %ebx ) ; \
31133 addl %ebx, %eax ; \
31134 - DST(movl %ebx, x(%edi) ) ;
31135 + DST(movl %ebx, %es:x(%edi)) ;
31136
31137 #define ROUND(x) \
31138 + nop; nop; nop; \
31139 SRC(movl x(%esi), %ebx ) ; \
31140 adcl %ebx, %eax ; \
31141 - DST(movl %ebx, x(%edi) ) ;
31142 + DST(movl %ebx, %es:x(%edi)) ;
31143
31144 #define ARGBASE 12
31145 -
31146 +
31147 +ENTRY(csum_partial_copy_generic_to_user)
31148 +
31149 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31150 + pushl %gs
31151 + popl %es
31152 + jmp csum_partial_copy_generic
31153 +#endif
31154 +
31155 +ENTRY(csum_partial_copy_generic_from_user)
31156 +
31157 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31158 + pushl %gs
31159 + popl %ds
31160 +#endif
31161 +
31162 ENTRY(csum_partial_copy_generic)
31163 pushl %ebx
31164 pushl %edi
31165 @@ -435,7 +475,7 @@ ENTRY(csum_partial_copy_generic)
31166 subl %ebx, %edi
31167 lea -1(%esi),%edx
31168 andl $-32,%edx
31169 - lea 3f(%ebx,%ebx), %ebx
31170 + lea 3f(%ebx,%ebx,2), %ebx
31171 testl %esi, %esi
31172 jmp *%ebx
31173 1: addl $64,%esi
31174 @@ -456,19 +496,19 @@ ENTRY(csum_partial_copy_generic)
31175 jb 5f
31176 SRC( movw (%esi), %dx )
31177 leal 2(%esi), %esi
31178 -DST( movw %dx, (%edi) )
31179 +DST( movw %dx, %es:(%edi) )
31180 leal 2(%edi), %edi
31181 je 6f
31182 shll $16,%edx
31183 5:
31184 SRC( movb (%esi), %dl )
31185 -DST( movb %dl, (%edi) )
31186 +DST( movb %dl, %es:(%edi) )
31187 6: addl %edx, %eax
31188 adcl $0, %eax
31189 7:
31190 .section .fixup, "ax"
31191 6001: movl ARGBASE+20(%esp), %ebx # src_err_ptr
31192 - movl $-EFAULT, (%ebx)
31193 + movl $-EFAULT, %ss:(%ebx)
31194 # zero the complete destination (computing the rest is too much work)
31195 movl ARGBASE+8(%esp),%edi # dst
31196 movl ARGBASE+12(%esp),%ecx # len
31197 @@ -476,15 +516,22 @@ DST( movb %dl, (%edi) )
31198 rep; stosb
31199 jmp 7b
31200 6002: movl ARGBASE+24(%esp), %ebx # dst_err_ptr
31201 - movl $-EFAULT, (%ebx)
31202 + movl $-EFAULT, %ss:(%ebx)
31203 jmp 7b
31204 .previous
31205
31206 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31207 + pushl %ss
31208 + popl %ds
31209 + pushl %ss
31210 + popl %es
31211 +#endif
31212 +
31213 popl %esi
31214 popl %edi
31215 popl %ebx
31216 ret
31217 -ENDPROC(csum_partial_copy_generic)
31218 +ENDPROC(csum_partial_copy_generic_to_user)
31219
31220 #undef ROUND
31221 #undef ROUND1
31222 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S
31223 index a2fe51b..507dab0 100644
31224 --- a/arch/x86/lib/clear_page_64.S
31225 +++ b/arch/x86/lib/clear_page_64.S
31226 @@ -21,6 +21,7 @@ ENTRY(clear_page)
31227 movl $4096/8,%ecx
31228 xorl %eax,%eax
31229 rep stosq
31230 + pax_force_retaddr
31231 ret
31232 ENDPROC(clear_page)
31233
31234 @@ -43,6 +44,7 @@ ENTRY(clear_page_orig)
31235 leaq 64(%rdi),%rdi
31236 jnz .Lloop
31237 nop
31238 + pax_force_retaddr
31239 ret
31240 ENDPROC(clear_page_orig)
31241
31242 @@ -50,5 +52,6 @@ ENTRY(clear_page_c_e)
31243 movl $4096,%ecx
31244 xorl %eax,%eax
31245 rep stosb
31246 + pax_force_retaddr
31247 ret
31248 ENDPROC(clear_page_c_e)
31249 diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S
31250 index 9b33024..e52ee44 100644
31251 --- a/arch/x86/lib/cmpxchg16b_emu.S
31252 +++ b/arch/x86/lib/cmpxchg16b_emu.S
31253 @@ -7,6 +7,7 @@
31254 */
31255 #include <linux/linkage.h>
31256 #include <asm/percpu.h>
31257 +#include <asm/alternative-asm.h>
31258
31259 .text
31260
31261 @@ -43,11 +44,13 @@ ENTRY(this_cpu_cmpxchg16b_emu)
31262
31263 popfq
31264 mov $1, %al
31265 + pax_force_retaddr
31266 ret
31267
31268 .Lnot_same:
31269 popfq
31270 xor %al,%al
31271 + pax_force_retaddr
31272 ret
31273
31274 ENDPROC(this_cpu_cmpxchg16b_emu)
31275 diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
31276 index 009f982..9b3db5e 100644
31277 --- a/arch/x86/lib/copy_page_64.S
31278 +++ b/arch/x86/lib/copy_page_64.S
31279 @@ -15,13 +15,14 @@ ENTRY(copy_page)
31280 ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD
31281 movl $4096/8, %ecx
31282 rep movsq
31283 + pax_force_retaddr
31284 ret
31285 ENDPROC(copy_page)
31286
31287 ENTRY(copy_page_regs)
31288 subq $2*8, %rsp
31289 movq %rbx, (%rsp)
31290 - movq %r12, 1*8(%rsp)
31291 + movq %r13, 1*8(%rsp)
31292
31293 movl $(4096/64)-5, %ecx
31294 .p2align 4
31295 @@ -34,7 +35,7 @@ ENTRY(copy_page_regs)
31296 movq 0x8*4(%rsi), %r9
31297 movq 0x8*5(%rsi), %r10
31298 movq 0x8*6(%rsi), %r11
31299 - movq 0x8*7(%rsi), %r12
31300 + movq 0x8*7(%rsi), %r13
31301
31302 prefetcht0 5*64(%rsi)
31303
31304 @@ -45,7 +46,7 @@ ENTRY(copy_page_regs)
31305 movq %r9, 0x8*4(%rdi)
31306 movq %r10, 0x8*5(%rdi)
31307 movq %r11, 0x8*6(%rdi)
31308 - movq %r12, 0x8*7(%rdi)
31309 + movq %r13, 0x8*7(%rdi)
31310
31311 leaq 64 (%rsi), %rsi
31312 leaq 64 (%rdi), %rdi
31313 @@ -64,7 +65,7 @@ ENTRY(copy_page_regs)
31314 movq 0x8*4(%rsi), %r9
31315 movq 0x8*5(%rsi), %r10
31316 movq 0x8*6(%rsi), %r11
31317 - movq 0x8*7(%rsi), %r12
31318 + movq 0x8*7(%rsi), %r13
31319
31320 movq %rax, 0x8*0(%rdi)
31321 movq %rbx, 0x8*1(%rdi)
31322 @@ -73,14 +74,15 @@ ENTRY(copy_page_regs)
31323 movq %r9, 0x8*4(%rdi)
31324 movq %r10, 0x8*5(%rdi)
31325 movq %r11, 0x8*6(%rdi)
31326 - movq %r12, 0x8*7(%rdi)
31327 + movq %r13, 0x8*7(%rdi)
31328
31329 leaq 64(%rdi), %rdi
31330 leaq 64(%rsi), %rsi
31331 jnz .Loop2
31332
31333 movq (%rsp), %rbx
31334 - movq 1*8(%rsp), %r12
31335 + movq 1*8(%rsp), %r13
31336 addq $2*8, %rsp
31337 + pax_force_retaddr
31338 ret
31339 ENDPROC(copy_page_regs)
31340 diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
31341 index 982ce34..8e14731 100644
31342 --- a/arch/x86/lib/copy_user_64.S
31343 +++ b/arch/x86/lib/copy_user_64.S
31344 @@ -14,50 +14,7 @@
31345 #include <asm/alternative-asm.h>
31346 #include <asm/asm.h>
31347 #include <asm/smap.h>
31348 -
31349 -/* Standard copy_to_user with segment limit checking */
31350 -ENTRY(_copy_to_user)
31351 - GET_THREAD_INFO(%rax)
31352 - movq %rdi,%rcx
31353 - addq %rdx,%rcx
31354 - jc bad_to_user
31355 - cmpq TI_addr_limit(%rax),%rcx
31356 - ja bad_to_user
31357 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
31358 - "jmp copy_user_generic_string", \
31359 - X86_FEATURE_REP_GOOD, \
31360 - "jmp copy_user_enhanced_fast_string", \
31361 - X86_FEATURE_ERMS
31362 -ENDPROC(_copy_to_user)
31363 -
31364 -/* Standard copy_from_user with segment limit checking */
31365 -ENTRY(_copy_from_user)
31366 - GET_THREAD_INFO(%rax)
31367 - movq %rsi,%rcx
31368 - addq %rdx,%rcx
31369 - jc bad_from_user
31370 - cmpq TI_addr_limit(%rax),%rcx
31371 - ja bad_from_user
31372 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
31373 - "jmp copy_user_generic_string", \
31374 - X86_FEATURE_REP_GOOD, \
31375 - "jmp copy_user_enhanced_fast_string", \
31376 - X86_FEATURE_ERMS
31377 -ENDPROC(_copy_from_user)
31378 -
31379 - .section .fixup,"ax"
31380 - /* must zero dest */
31381 -ENTRY(bad_from_user)
31382 -bad_from_user:
31383 - movl %edx,%ecx
31384 - xorl %eax,%eax
31385 - rep
31386 - stosb
31387 -bad_to_user:
31388 - movl %edx,%eax
31389 - ret
31390 -ENDPROC(bad_from_user)
31391 - .previous
31392 +#include <asm/pgtable.h>
31393
31394 /*
31395 * copy_user_generic_unrolled - memory copy with exception handling.
31396 @@ -73,6 +30,7 @@ ENDPROC(bad_from_user)
31397 * eax uncopied bytes or 0 if successful.
31398 */
31399 ENTRY(copy_user_generic_unrolled)
31400 + ASM_PAX_OPEN_USERLAND
31401 ASM_STAC
31402 cmpl $8,%edx
31403 jb 20f /* less then 8 bytes, go to byte copy loop */
31404 @@ -122,6 +80,8 @@ ENTRY(copy_user_generic_unrolled)
31405 jnz 21b
31406 23: xor %eax,%eax
31407 ASM_CLAC
31408 + ASM_PAX_CLOSE_USERLAND
31409 + pax_force_retaddr
31410 ret
31411
31412 .section .fixup,"ax"
31413 @@ -175,6 +135,7 @@ ENDPROC(copy_user_generic_unrolled)
31414 * eax uncopied bytes or 0 if successful.
31415 */
31416 ENTRY(copy_user_generic_string)
31417 + ASM_PAX_OPEN_USERLAND
31418 ASM_STAC
31419 cmpl $8,%edx
31420 jb 2f /* less than 8 bytes, go to byte copy loop */
31421 @@ -189,6 +150,8 @@ ENTRY(copy_user_generic_string)
31422 movsb
31423 xorl %eax,%eax
31424 ASM_CLAC
31425 + ASM_PAX_CLOSE_USERLAND
31426 + pax_force_retaddr
31427 ret
31428
31429 .section .fixup,"ax"
31430 @@ -214,12 +177,15 @@ ENDPROC(copy_user_generic_string)
31431 * eax uncopied bytes or 0 if successful.
31432 */
31433 ENTRY(copy_user_enhanced_fast_string)
31434 + ASM_PAX_OPEN_USERLAND
31435 ASM_STAC
31436 movl %edx,%ecx
31437 1: rep
31438 movsb
31439 xorl %eax,%eax
31440 ASM_CLAC
31441 + ASM_PAX_CLOSE_USERLAND
31442 + pax_force_retaddr
31443 ret
31444
31445 .section .fixup,"ax"
31446 @@ -235,6 +201,16 @@ ENDPROC(copy_user_enhanced_fast_string)
31447 * This will force destination/source out of cache for more performance.
31448 */
31449 ENTRY(__copy_user_nocache)
31450 +
31451 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31452 + mov pax_user_shadow_base,%rcx
31453 + cmp %rcx,%rsi
31454 + jae 1f
31455 + add %rcx,%rsi
31456 +1:
31457 +#endif
31458 +
31459 + ASM_PAX_OPEN_USERLAND
31460 ASM_STAC
31461 cmpl $8,%edx
31462 jb 20f /* less then 8 bytes, go to byte copy loop */
31463 @@ -284,7 +260,9 @@ ENTRY(__copy_user_nocache)
31464 jnz 21b
31465 23: xorl %eax,%eax
31466 ASM_CLAC
31467 + ASM_PAX_CLOSE_USERLAND
31468 sfence
31469 + pax_force_retaddr
31470 ret
31471
31472 .section .fixup,"ax"
31473 diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S
31474 index 7e48807..cc966ff 100644
31475 --- a/arch/x86/lib/csum-copy_64.S
31476 +++ b/arch/x86/lib/csum-copy_64.S
31477 @@ -8,6 +8,7 @@
31478 #include <linux/linkage.h>
31479 #include <asm/errno.h>
31480 #include <asm/asm.h>
31481 +#include <asm/alternative-asm.h>
31482
31483 /*
31484 * Checksum copy with exception handling.
31485 @@ -52,7 +53,7 @@ ENTRY(csum_partial_copy_generic)
31486 .Lignore:
31487 subq $7*8, %rsp
31488 movq %rbx, 2*8(%rsp)
31489 - movq %r12, 3*8(%rsp)
31490 + movq %r15, 3*8(%rsp)
31491 movq %r14, 4*8(%rsp)
31492 movq %r13, 5*8(%rsp)
31493 movq %rbp, 6*8(%rsp)
31494 @@ -64,16 +65,16 @@ ENTRY(csum_partial_copy_generic)
31495 movl %edx, %ecx
31496
31497 xorl %r9d, %r9d
31498 - movq %rcx, %r12
31499 + movq %rcx, %r15
31500
31501 - shrq $6, %r12
31502 + shrq $6, %r15
31503 jz .Lhandle_tail /* < 64 */
31504
31505 clc
31506
31507 /* main loop. clear in 64 byte blocks */
31508 /* r9: zero, r8: temp2, rbx: temp1, rax: sum, rcx: saved length */
31509 - /* r11: temp3, rdx: temp4, r12 loopcnt */
31510 + /* r11: temp3, rdx: temp4, r15 loopcnt */
31511 /* r10: temp5, rbp: temp6, r14 temp7, r13 temp8 */
31512 .p2align 4
31513 .Lloop:
31514 @@ -107,7 +108,7 @@ ENTRY(csum_partial_copy_generic)
31515 adcq %r14, %rax
31516 adcq %r13, %rax
31517
31518 - decl %r12d
31519 + decl %r15d
31520
31521 dest
31522 movq %rbx, (%rsi)
31523 @@ -200,11 +201,12 @@ ENTRY(csum_partial_copy_generic)
31524
31525 .Lende:
31526 movq 2*8(%rsp), %rbx
31527 - movq 3*8(%rsp), %r12
31528 + movq 3*8(%rsp), %r15
31529 movq 4*8(%rsp), %r14
31530 movq 5*8(%rsp), %r13
31531 movq 6*8(%rsp), %rbp
31532 addq $7*8, %rsp
31533 + pax_force_retaddr
31534 ret
31535
31536 /* Exception handlers. Very simple, zeroing is done in the wrappers */
31537 diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
31538 index 1318f75..44c30fd 100644
31539 --- a/arch/x86/lib/csum-wrappers_64.c
31540 +++ b/arch/x86/lib/csum-wrappers_64.c
31541 @@ -52,10 +52,12 @@ csum_partial_copy_from_user(const void __user *src, void *dst,
31542 len -= 2;
31543 }
31544 }
31545 + pax_open_userland();
31546 stac();
31547 - isum = csum_partial_copy_generic((__force const void *)src,
31548 + isum = csum_partial_copy_generic((const void __force_kernel *)____m(src),
31549 dst, len, isum, errp, NULL);
31550 clac();
31551 + pax_close_userland();
31552 if (unlikely(*errp))
31553 goto out_err;
31554
31555 @@ -109,10 +111,12 @@ csum_partial_copy_to_user(const void *src, void __user *dst,
31556 }
31557
31558 *errp = 0;
31559 + pax_open_userland();
31560 stac();
31561 - ret = csum_partial_copy_generic(src, (void __force *)dst,
31562 + ret = csum_partial_copy_generic(src, (void __force_kernel *)____m(dst),
31563 len, isum, NULL, errp);
31564 clac();
31565 + pax_close_userland();
31566 return ret;
31567 }
31568 EXPORT_SYMBOL(csum_partial_copy_to_user);
31569 diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
31570 index 46668cd..a3bdfb9 100644
31571 --- a/arch/x86/lib/getuser.S
31572 +++ b/arch/x86/lib/getuser.S
31573 @@ -32,42 +32,93 @@
31574 #include <asm/thread_info.h>
31575 #include <asm/asm.h>
31576 #include <asm/smap.h>
31577 +#include <asm/segment.h>
31578 +#include <asm/pgtable.h>
31579 +#include <asm/alternative-asm.h>
31580 +
31581 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
31582 +#define __copyuser_seg gs;
31583 +#else
31584 +#define __copyuser_seg
31585 +#endif
31586
31587 .text
31588 ENTRY(__get_user_1)
31589 +
31590 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31591 GET_THREAD_INFO(%_ASM_DX)
31592 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31593 jae bad_get_user
31594 +
31595 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31596 + mov pax_user_shadow_base,%_ASM_DX
31597 + cmp %_ASM_DX,%_ASM_AX
31598 + jae 1234f
31599 + add %_ASM_DX,%_ASM_AX
31600 +1234:
31601 +#endif
31602 +
31603 +#endif
31604 +
31605 ASM_STAC
31606 -1: movzbl (%_ASM_AX),%edx
31607 +1: __copyuser_seg movzbl (%_ASM_AX),%edx
31608 xor %eax,%eax
31609 ASM_CLAC
31610 + pax_force_retaddr
31611 ret
31612 ENDPROC(__get_user_1)
31613
31614 ENTRY(__get_user_2)
31615 add $1,%_ASM_AX
31616 +
31617 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31618 jc bad_get_user
31619 GET_THREAD_INFO(%_ASM_DX)
31620 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31621 jae bad_get_user
31622 +
31623 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31624 + mov pax_user_shadow_base,%_ASM_DX
31625 + cmp %_ASM_DX,%_ASM_AX
31626 + jae 1234f
31627 + add %_ASM_DX,%_ASM_AX
31628 +1234:
31629 +#endif
31630 +
31631 +#endif
31632 +
31633 ASM_STAC
31634 -2: movzwl -1(%_ASM_AX),%edx
31635 +2: __copyuser_seg movzwl -1(%_ASM_AX),%edx
31636 xor %eax,%eax
31637 ASM_CLAC
31638 + pax_force_retaddr
31639 ret
31640 ENDPROC(__get_user_2)
31641
31642 ENTRY(__get_user_4)
31643 add $3,%_ASM_AX
31644 +
31645 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31646 jc bad_get_user
31647 GET_THREAD_INFO(%_ASM_DX)
31648 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31649 jae bad_get_user
31650 +
31651 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31652 + mov pax_user_shadow_base,%_ASM_DX
31653 + cmp %_ASM_DX,%_ASM_AX
31654 + jae 1234f
31655 + add %_ASM_DX,%_ASM_AX
31656 +1234:
31657 +#endif
31658 +
31659 +#endif
31660 +
31661 ASM_STAC
31662 -3: movl -3(%_ASM_AX),%edx
31663 +3: __copyuser_seg movl -3(%_ASM_AX),%edx
31664 xor %eax,%eax
31665 ASM_CLAC
31666 + pax_force_retaddr
31667 ret
31668 ENDPROC(__get_user_4)
31669
31670 @@ -78,10 +129,20 @@ ENTRY(__get_user_8)
31671 GET_THREAD_INFO(%_ASM_DX)
31672 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31673 jae bad_get_user
31674 +
31675 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31676 + mov pax_user_shadow_base,%_ASM_DX
31677 + cmp %_ASM_DX,%_ASM_AX
31678 + jae 1234f
31679 + add %_ASM_DX,%_ASM_AX
31680 +1234:
31681 +#endif
31682 +
31683 ASM_STAC
31684 4: movq -7(%_ASM_AX),%rdx
31685 xor %eax,%eax
31686 ASM_CLAC
31687 + pax_force_retaddr
31688 ret
31689 #else
31690 add $7,%_ASM_AX
31691 @@ -90,10 +151,11 @@ ENTRY(__get_user_8)
31692 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31693 jae bad_get_user_8
31694 ASM_STAC
31695 -4: movl -7(%_ASM_AX),%edx
31696 -5: movl -3(%_ASM_AX),%ecx
31697 +4: __copyuser_seg movl -7(%_ASM_AX),%edx
31698 +5: __copyuser_seg movl -3(%_ASM_AX),%ecx
31699 xor %eax,%eax
31700 ASM_CLAC
31701 + pax_force_retaddr
31702 ret
31703 #endif
31704 ENDPROC(__get_user_8)
31705 @@ -103,6 +165,7 @@ bad_get_user:
31706 xor %edx,%edx
31707 mov $(-EFAULT),%_ASM_AX
31708 ASM_CLAC
31709 + pax_force_retaddr
31710 ret
31711 END(bad_get_user)
31712
31713 @@ -112,6 +175,7 @@ bad_get_user_8:
31714 xor %ecx,%ecx
31715 mov $(-EFAULT),%_ASM_AX
31716 ASM_CLAC
31717 + pax_force_retaddr
31718 ret
31719 END(bad_get_user_8)
31720 #endif
31721 diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
31722 index 8f72b33..4667a46 100644
31723 --- a/arch/x86/lib/insn.c
31724 +++ b/arch/x86/lib/insn.c
31725 @@ -20,8 +20,10 @@
31726
31727 #ifdef __KERNEL__
31728 #include <linux/string.h>
31729 +#include <asm/pgtable_types.h>
31730 #else
31731 #include <string.h>
31732 +#define ktla_ktva(addr) addr
31733 #endif
31734 #include <asm/inat.h>
31735 #include <asm/insn.h>
31736 @@ -60,9 +62,9 @@ void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
31737 buf_len = MAX_INSN_SIZE;
31738
31739 memset(insn, 0, sizeof(*insn));
31740 - insn->kaddr = kaddr;
31741 - insn->end_kaddr = kaddr + buf_len;
31742 - insn->next_byte = kaddr;
31743 + insn->kaddr = (void *)ktla_ktva((unsigned long)kaddr);
31744 + insn->end_kaddr = insn->kaddr + buf_len;
31745 + insn->next_byte = insn->kaddr;
31746 insn->x86_64 = x86_64 ? 1 : 0;
31747 insn->opnd_bytes = 4;
31748 if (x86_64)
31749 diff --git a/arch/x86/lib/iomap_copy_64.S b/arch/x86/lib/iomap_copy_64.S
31750 index 33147fe..12a8815 100644
31751 --- a/arch/x86/lib/iomap_copy_64.S
31752 +++ b/arch/x86/lib/iomap_copy_64.S
31753 @@ -16,6 +16,7 @@
31754 */
31755
31756 #include <linux/linkage.h>
31757 +#include <asm/alternative-asm.h>
31758
31759 /*
31760 * override generic version in lib/iomap_copy.c
31761 @@ -23,5 +24,6 @@
31762 ENTRY(__iowrite32_copy)
31763 movl %edx,%ecx
31764 rep movsd
31765 + pax_force_retaddr
31766 ret
31767 ENDPROC(__iowrite32_copy)
31768 diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
31769 index 16698bb..971d300 100644
31770 --- a/arch/x86/lib/memcpy_64.S
31771 +++ b/arch/x86/lib/memcpy_64.S
31772 @@ -36,6 +36,7 @@ ENTRY(memcpy)
31773 rep movsq
31774 movl %edx, %ecx
31775 rep movsb
31776 + pax_force_retaddr
31777 ret
31778 ENDPROC(memcpy)
31779 ENDPROC(__memcpy)
31780 @@ -48,6 +49,7 @@ ENTRY(memcpy_erms)
31781 movq %rdi, %rax
31782 movq %rdx, %rcx
31783 rep movsb
31784 + pax_force_retaddr
31785 ret
31786 ENDPROC(memcpy_erms)
31787
31788 @@ -132,6 +134,7 @@ ENTRY(memcpy_orig)
31789 movq %r9, 1*8(%rdi)
31790 movq %r10, -2*8(%rdi, %rdx)
31791 movq %r11, -1*8(%rdi, %rdx)
31792 + pax_force_retaddr
31793 retq
31794 .p2align 4
31795 .Lless_16bytes:
31796 @@ -144,6 +147,7 @@ ENTRY(memcpy_orig)
31797 movq -1*8(%rsi, %rdx), %r9
31798 movq %r8, 0*8(%rdi)
31799 movq %r9, -1*8(%rdi, %rdx)
31800 + pax_force_retaddr
31801 retq
31802 .p2align 4
31803 .Lless_8bytes:
31804 @@ -157,6 +161,7 @@ ENTRY(memcpy_orig)
31805 movl -4(%rsi, %rdx), %r8d
31806 movl %ecx, (%rdi)
31807 movl %r8d, -4(%rdi, %rdx)
31808 + pax_force_retaddr
31809 retq
31810 .p2align 4
31811 .Lless_3bytes:
31812 @@ -175,5 +180,6 @@ ENTRY(memcpy_orig)
31813 movb %cl, (%rdi)
31814
31815 .Lend:
31816 + pax_force_retaddr
31817 retq
31818 ENDPROC(memcpy_orig)
31819 diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
31820 index ca2afdd..2e474fa 100644
31821 --- a/arch/x86/lib/memmove_64.S
31822 +++ b/arch/x86/lib/memmove_64.S
31823 @@ -41,7 +41,7 @@ ENTRY(__memmove)
31824 jg 2f
31825
31826 .Lmemmove_begin_forward:
31827 - ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; retq", X86_FEATURE_ERMS
31828 + ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; pax_force_retaddr; retq", X86_FEATURE_ERMS
31829
31830 /*
31831 * movsq instruction have many startup latency
31832 @@ -204,6 +204,7 @@ ENTRY(__memmove)
31833 movb (%rsi), %r11b
31834 movb %r11b, (%rdi)
31835 13:
31836 + pax_force_retaddr
31837 retq
31838 ENDPROC(__memmove)
31839 ENDPROC(memmove)
31840 diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
31841 index 2661fad..b584d5c 100644
31842 --- a/arch/x86/lib/memset_64.S
31843 +++ b/arch/x86/lib/memset_64.S
31844 @@ -40,6 +40,7 @@ ENTRY(__memset)
31845 movl %edx,%ecx
31846 rep stosb
31847 movq %r9,%rax
31848 + pax_force_retaddr
31849 ret
31850 ENDPROC(memset)
31851 ENDPROC(__memset)
31852 @@ -61,6 +62,7 @@ ENTRY(memset_erms)
31853 movq %rdx,%rcx
31854 rep stosb
31855 movq %r9,%rax
31856 + pax_force_retaddr
31857 ret
31858 ENDPROC(memset_erms)
31859
31860 @@ -123,6 +125,7 @@ ENTRY(memset_orig)
31861
31862 .Lende:
31863 movq %r10,%rax
31864 + pax_force_retaddr
31865 ret
31866
31867 .Lbad_alignment:
31868 diff --git a/arch/x86/lib/mmx_32.c b/arch/x86/lib/mmx_32.c
31869 index e5e3ed8..d7c08c2 100644
31870 --- a/arch/x86/lib/mmx_32.c
31871 +++ b/arch/x86/lib/mmx_32.c
31872 @@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31873 {
31874 void *p;
31875 int i;
31876 + unsigned long cr0;
31877
31878 if (unlikely(in_interrupt()))
31879 return __memcpy(to, from, len);
31880 @@ -39,44 +40,72 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31881 kernel_fpu_begin();
31882
31883 __asm__ __volatile__ (
31884 - "1: prefetch (%0)\n" /* This set is 28 bytes */
31885 - " prefetch 64(%0)\n"
31886 - " prefetch 128(%0)\n"
31887 - " prefetch 192(%0)\n"
31888 - " prefetch 256(%0)\n"
31889 + "1: prefetch (%1)\n" /* This set is 28 bytes */
31890 + " prefetch 64(%1)\n"
31891 + " prefetch 128(%1)\n"
31892 + " prefetch 192(%1)\n"
31893 + " prefetch 256(%1)\n"
31894 "2: \n"
31895 ".section .fixup, \"ax\"\n"
31896 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31897 + "3: \n"
31898 +
31899 +#ifdef CONFIG_PAX_KERNEXEC
31900 + " movl %%cr0, %0\n"
31901 + " movl %0, %%eax\n"
31902 + " andl $0xFFFEFFFF, %%eax\n"
31903 + " movl %%eax, %%cr0\n"
31904 +#endif
31905 +
31906 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31907 +
31908 +#ifdef CONFIG_PAX_KERNEXEC
31909 + " movl %0, %%cr0\n"
31910 +#endif
31911 +
31912 " jmp 2b\n"
31913 ".previous\n"
31914 _ASM_EXTABLE(1b, 3b)
31915 - : : "r" (from));
31916 + : "=&r" (cr0) : "r" (from) : "ax");
31917
31918 for ( ; i > 5; i--) {
31919 __asm__ __volatile__ (
31920 - "1: prefetch 320(%0)\n"
31921 - "2: movq (%0), %%mm0\n"
31922 - " movq 8(%0), %%mm1\n"
31923 - " movq 16(%0), %%mm2\n"
31924 - " movq 24(%0), %%mm3\n"
31925 - " movq %%mm0, (%1)\n"
31926 - " movq %%mm1, 8(%1)\n"
31927 - " movq %%mm2, 16(%1)\n"
31928 - " movq %%mm3, 24(%1)\n"
31929 - " movq 32(%0), %%mm0\n"
31930 - " movq 40(%0), %%mm1\n"
31931 - " movq 48(%0), %%mm2\n"
31932 - " movq 56(%0), %%mm3\n"
31933 - " movq %%mm0, 32(%1)\n"
31934 - " movq %%mm1, 40(%1)\n"
31935 - " movq %%mm2, 48(%1)\n"
31936 - " movq %%mm3, 56(%1)\n"
31937 + "1: prefetch 320(%1)\n"
31938 + "2: movq (%1), %%mm0\n"
31939 + " movq 8(%1), %%mm1\n"
31940 + " movq 16(%1), %%mm2\n"
31941 + " movq 24(%1), %%mm3\n"
31942 + " movq %%mm0, (%2)\n"
31943 + " movq %%mm1, 8(%2)\n"
31944 + " movq %%mm2, 16(%2)\n"
31945 + " movq %%mm3, 24(%2)\n"
31946 + " movq 32(%1), %%mm0\n"
31947 + " movq 40(%1), %%mm1\n"
31948 + " movq 48(%1), %%mm2\n"
31949 + " movq 56(%1), %%mm3\n"
31950 + " movq %%mm0, 32(%2)\n"
31951 + " movq %%mm1, 40(%2)\n"
31952 + " movq %%mm2, 48(%2)\n"
31953 + " movq %%mm3, 56(%2)\n"
31954 ".section .fixup, \"ax\"\n"
31955 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31956 + "3:\n"
31957 +
31958 +#ifdef CONFIG_PAX_KERNEXEC
31959 + " movl %%cr0, %0\n"
31960 + " movl %0, %%eax\n"
31961 + " andl $0xFFFEFFFF, %%eax\n"
31962 + " movl %%eax, %%cr0\n"
31963 +#endif
31964 +
31965 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31966 +
31967 +#ifdef CONFIG_PAX_KERNEXEC
31968 + " movl %0, %%cr0\n"
31969 +#endif
31970 +
31971 " jmp 2b\n"
31972 ".previous\n"
31973 _ASM_EXTABLE(1b, 3b)
31974 - : : "r" (from), "r" (to) : "memory");
31975 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31976
31977 from += 64;
31978 to += 64;
31979 @@ -158,6 +187,7 @@ static void fast_clear_page(void *page)
31980 static void fast_copy_page(void *to, void *from)
31981 {
31982 int i;
31983 + unsigned long cr0;
31984
31985 kernel_fpu_begin();
31986
31987 @@ -166,42 +196,70 @@ static void fast_copy_page(void *to, void *from)
31988 * but that is for later. -AV
31989 */
31990 __asm__ __volatile__(
31991 - "1: prefetch (%0)\n"
31992 - " prefetch 64(%0)\n"
31993 - " prefetch 128(%0)\n"
31994 - " prefetch 192(%0)\n"
31995 - " prefetch 256(%0)\n"
31996 + "1: prefetch (%1)\n"
31997 + " prefetch 64(%1)\n"
31998 + " prefetch 128(%1)\n"
31999 + " prefetch 192(%1)\n"
32000 + " prefetch 256(%1)\n"
32001 "2: \n"
32002 ".section .fixup, \"ax\"\n"
32003 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
32004 + "3: \n"
32005 +
32006 +#ifdef CONFIG_PAX_KERNEXEC
32007 + " movl %%cr0, %0\n"
32008 + " movl %0, %%eax\n"
32009 + " andl $0xFFFEFFFF, %%eax\n"
32010 + " movl %%eax, %%cr0\n"
32011 +#endif
32012 +
32013 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
32014 +
32015 +#ifdef CONFIG_PAX_KERNEXEC
32016 + " movl %0, %%cr0\n"
32017 +#endif
32018 +
32019 " jmp 2b\n"
32020 ".previous\n"
32021 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
32022 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
32023
32024 for (i = 0; i < (4096-320)/64; i++) {
32025 __asm__ __volatile__ (
32026 - "1: prefetch 320(%0)\n"
32027 - "2: movq (%0), %%mm0\n"
32028 - " movntq %%mm0, (%1)\n"
32029 - " movq 8(%0), %%mm1\n"
32030 - " movntq %%mm1, 8(%1)\n"
32031 - " movq 16(%0), %%mm2\n"
32032 - " movntq %%mm2, 16(%1)\n"
32033 - " movq 24(%0), %%mm3\n"
32034 - " movntq %%mm3, 24(%1)\n"
32035 - " movq 32(%0), %%mm4\n"
32036 - " movntq %%mm4, 32(%1)\n"
32037 - " movq 40(%0), %%mm5\n"
32038 - " movntq %%mm5, 40(%1)\n"
32039 - " movq 48(%0), %%mm6\n"
32040 - " movntq %%mm6, 48(%1)\n"
32041 - " movq 56(%0), %%mm7\n"
32042 - " movntq %%mm7, 56(%1)\n"
32043 + "1: prefetch 320(%1)\n"
32044 + "2: movq (%1), %%mm0\n"
32045 + " movntq %%mm0, (%2)\n"
32046 + " movq 8(%1), %%mm1\n"
32047 + " movntq %%mm1, 8(%2)\n"
32048 + " movq 16(%1), %%mm2\n"
32049 + " movntq %%mm2, 16(%2)\n"
32050 + " movq 24(%1), %%mm3\n"
32051 + " movntq %%mm3, 24(%2)\n"
32052 + " movq 32(%1), %%mm4\n"
32053 + " movntq %%mm4, 32(%2)\n"
32054 + " movq 40(%1), %%mm5\n"
32055 + " movntq %%mm5, 40(%2)\n"
32056 + " movq 48(%1), %%mm6\n"
32057 + " movntq %%mm6, 48(%2)\n"
32058 + " movq 56(%1), %%mm7\n"
32059 + " movntq %%mm7, 56(%2)\n"
32060 ".section .fixup, \"ax\"\n"
32061 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
32062 + "3:\n"
32063 +
32064 +#ifdef CONFIG_PAX_KERNEXEC
32065 + " movl %%cr0, %0\n"
32066 + " movl %0, %%eax\n"
32067 + " andl $0xFFFEFFFF, %%eax\n"
32068 + " movl %%eax, %%cr0\n"
32069 +#endif
32070 +
32071 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
32072 +
32073 +#ifdef CONFIG_PAX_KERNEXEC
32074 + " movl %0, %%cr0\n"
32075 +#endif
32076 +
32077 " jmp 2b\n"
32078 ".previous\n"
32079 - _ASM_EXTABLE(1b, 3b) : : "r" (from), "r" (to) : "memory");
32080 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
32081
32082 from += 64;
32083 to += 64;
32084 @@ -280,47 +338,76 @@ static void fast_clear_page(void *page)
32085 static void fast_copy_page(void *to, void *from)
32086 {
32087 int i;
32088 + unsigned long cr0;
32089
32090 kernel_fpu_begin();
32091
32092 __asm__ __volatile__ (
32093 - "1: prefetch (%0)\n"
32094 - " prefetch 64(%0)\n"
32095 - " prefetch 128(%0)\n"
32096 - " prefetch 192(%0)\n"
32097 - " prefetch 256(%0)\n"
32098 + "1: prefetch (%1)\n"
32099 + " prefetch 64(%1)\n"
32100 + " prefetch 128(%1)\n"
32101 + " prefetch 192(%1)\n"
32102 + " prefetch 256(%1)\n"
32103 "2: \n"
32104 ".section .fixup, \"ax\"\n"
32105 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
32106 + "3: \n"
32107 +
32108 +#ifdef CONFIG_PAX_KERNEXEC
32109 + " movl %%cr0, %0\n"
32110 + " movl %0, %%eax\n"
32111 + " andl $0xFFFEFFFF, %%eax\n"
32112 + " movl %%eax, %%cr0\n"
32113 +#endif
32114 +
32115 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
32116 +
32117 +#ifdef CONFIG_PAX_KERNEXEC
32118 + " movl %0, %%cr0\n"
32119 +#endif
32120 +
32121 " jmp 2b\n"
32122 ".previous\n"
32123 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
32124 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
32125
32126 for (i = 0; i < 4096/64; i++) {
32127 __asm__ __volatile__ (
32128 - "1: prefetch 320(%0)\n"
32129 - "2: movq (%0), %%mm0\n"
32130 - " movq 8(%0), %%mm1\n"
32131 - " movq 16(%0), %%mm2\n"
32132 - " movq 24(%0), %%mm3\n"
32133 - " movq %%mm0, (%1)\n"
32134 - " movq %%mm1, 8(%1)\n"
32135 - " movq %%mm2, 16(%1)\n"
32136 - " movq %%mm3, 24(%1)\n"
32137 - " movq 32(%0), %%mm0\n"
32138 - " movq 40(%0), %%mm1\n"
32139 - " movq 48(%0), %%mm2\n"
32140 - " movq 56(%0), %%mm3\n"
32141 - " movq %%mm0, 32(%1)\n"
32142 - " movq %%mm1, 40(%1)\n"
32143 - " movq %%mm2, 48(%1)\n"
32144 - " movq %%mm3, 56(%1)\n"
32145 + "1: prefetch 320(%1)\n"
32146 + "2: movq (%1), %%mm0\n"
32147 + " movq 8(%1), %%mm1\n"
32148 + " movq 16(%1), %%mm2\n"
32149 + " movq 24(%1), %%mm3\n"
32150 + " movq %%mm0, (%2)\n"
32151 + " movq %%mm1, 8(%2)\n"
32152 + " movq %%mm2, 16(%2)\n"
32153 + " movq %%mm3, 24(%2)\n"
32154 + " movq 32(%1), %%mm0\n"
32155 + " movq 40(%1), %%mm1\n"
32156 + " movq 48(%1), %%mm2\n"
32157 + " movq 56(%1), %%mm3\n"
32158 + " movq %%mm0, 32(%2)\n"
32159 + " movq %%mm1, 40(%2)\n"
32160 + " movq %%mm2, 48(%2)\n"
32161 + " movq %%mm3, 56(%2)\n"
32162 ".section .fixup, \"ax\"\n"
32163 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
32164 + "3:\n"
32165 +
32166 +#ifdef CONFIG_PAX_KERNEXEC
32167 + " movl %%cr0, %0\n"
32168 + " movl %0, %%eax\n"
32169 + " andl $0xFFFEFFFF, %%eax\n"
32170 + " movl %%eax, %%cr0\n"
32171 +#endif
32172 +
32173 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
32174 +
32175 +#ifdef CONFIG_PAX_KERNEXEC
32176 + " movl %0, %%cr0\n"
32177 +#endif
32178 +
32179 " jmp 2b\n"
32180 ".previous\n"
32181 _ASM_EXTABLE(1b, 3b)
32182 - : : "r" (from), "r" (to) : "memory");
32183 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
32184
32185 from += 64;
32186 to += 64;
32187 diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S
32188 index c815564..303dcfa 100644
32189 --- a/arch/x86/lib/msr-reg.S
32190 +++ b/arch/x86/lib/msr-reg.S
32191 @@ -2,6 +2,7 @@
32192 #include <linux/errno.h>
32193 #include <asm/asm.h>
32194 #include <asm/msr.h>
32195 +#include <asm/alternative-asm.h>
32196
32197 #ifdef CONFIG_X86_64
32198 /*
32199 @@ -34,6 +35,7 @@ ENTRY(\op\()_safe_regs)
32200 movl %edi, 28(%r10)
32201 popq %rbp
32202 popq %rbx
32203 + pax_force_retaddr
32204 ret
32205 3:
32206 movl $-EIO, %r11d
32207 diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S
32208 index e0817a1..bc9cf66 100644
32209 --- a/arch/x86/lib/putuser.S
32210 +++ b/arch/x86/lib/putuser.S
32211 @@ -15,7 +15,9 @@
32212 #include <asm/errno.h>
32213 #include <asm/asm.h>
32214 #include <asm/smap.h>
32215 -
32216 +#include <asm/segment.h>
32217 +#include <asm/pgtable.h>
32218 +#include <asm/alternative-asm.h>
32219
32220 /*
32221 * __put_user_X
32222 @@ -29,55 +31,124 @@
32223 * as they get called from within inline assembly.
32224 */
32225
32226 -#define ENTER GET_THREAD_INFO(%_ASM_BX)
32227 -#define EXIT ASM_CLAC ; \
32228 +#define ENTER
32229 +#define EXIT ASM_CLAC ; \
32230 + pax_force_retaddr ; \
32231 ret
32232
32233 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32234 +#define _DEST %_ASM_CX,%_ASM_BX
32235 +#else
32236 +#define _DEST %_ASM_CX
32237 +#endif
32238 +
32239 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
32240 +#define __copyuser_seg gs;
32241 +#else
32242 +#define __copyuser_seg
32243 +#endif
32244 +
32245 .text
32246 ENTRY(__put_user_1)
32247 ENTER
32248 +
32249 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32250 + GET_THREAD_INFO(%_ASM_BX)
32251 cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
32252 jae bad_put_user
32253 +
32254 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32255 + mov pax_user_shadow_base,%_ASM_BX
32256 + cmp %_ASM_BX,%_ASM_CX
32257 + jb 1234f
32258 + xor %ebx,%ebx
32259 +1234:
32260 +#endif
32261 +
32262 +#endif
32263 +
32264 ASM_STAC
32265 -1: movb %al,(%_ASM_CX)
32266 +1: __copyuser_seg movb %al,(_DEST)
32267 xor %eax,%eax
32268 EXIT
32269 ENDPROC(__put_user_1)
32270
32271 ENTRY(__put_user_2)
32272 ENTER
32273 +
32274 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32275 + GET_THREAD_INFO(%_ASM_BX)
32276 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32277 sub $1,%_ASM_BX
32278 cmp %_ASM_BX,%_ASM_CX
32279 jae bad_put_user
32280 +
32281 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32282 + mov pax_user_shadow_base,%_ASM_BX
32283 + cmp %_ASM_BX,%_ASM_CX
32284 + jb 1234f
32285 + xor %ebx,%ebx
32286 +1234:
32287 +#endif
32288 +
32289 +#endif
32290 +
32291 ASM_STAC
32292 -2: movw %ax,(%_ASM_CX)
32293 +2: __copyuser_seg movw %ax,(_DEST)
32294 xor %eax,%eax
32295 EXIT
32296 ENDPROC(__put_user_2)
32297
32298 ENTRY(__put_user_4)
32299 ENTER
32300 +
32301 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32302 + GET_THREAD_INFO(%_ASM_BX)
32303 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32304 sub $3,%_ASM_BX
32305 cmp %_ASM_BX,%_ASM_CX
32306 jae bad_put_user
32307 +
32308 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32309 + mov pax_user_shadow_base,%_ASM_BX
32310 + cmp %_ASM_BX,%_ASM_CX
32311 + jb 1234f
32312 + xor %ebx,%ebx
32313 +1234:
32314 +#endif
32315 +
32316 +#endif
32317 +
32318 ASM_STAC
32319 -3: movl %eax,(%_ASM_CX)
32320 +3: __copyuser_seg movl %eax,(_DEST)
32321 xor %eax,%eax
32322 EXIT
32323 ENDPROC(__put_user_4)
32324
32325 ENTRY(__put_user_8)
32326 ENTER
32327 +
32328 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32329 + GET_THREAD_INFO(%_ASM_BX)
32330 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32331 sub $7,%_ASM_BX
32332 cmp %_ASM_BX,%_ASM_CX
32333 jae bad_put_user
32334 +
32335 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32336 + mov pax_user_shadow_base,%_ASM_BX
32337 + cmp %_ASM_BX,%_ASM_CX
32338 + jb 1234f
32339 + xor %ebx,%ebx
32340 +1234:
32341 +#endif
32342 +
32343 +#endif
32344 +
32345 ASM_STAC
32346 -4: mov %_ASM_AX,(%_ASM_CX)
32347 +4: __copyuser_seg mov %_ASM_AX,(_DEST)
32348 #ifdef CONFIG_X86_32
32349 -5: movl %edx,4(%_ASM_CX)
32350 +5: __copyuser_seg movl %edx,4(_DEST)
32351 #endif
32352 xor %eax,%eax
32353 EXIT
32354 diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S
32355 index 40027db..37bb69d 100644
32356 --- a/arch/x86/lib/rwsem.S
32357 +++ b/arch/x86/lib/rwsem.S
32358 @@ -90,6 +90,7 @@ ENTRY(call_rwsem_down_read_failed)
32359 call rwsem_down_read_failed
32360 __ASM_SIZE(pop,) %__ASM_REG(dx)
32361 restore_common_regs
32362 + pax_force_retaddr
32363 ret
32364 ENDPROC(call_rwsem_down_read_failed)
32365
32366 @@ -98,6 +99,7 @@ ENTRY(call_rwsem_down_write_failed)
32367 movq %rax,%rdi
32368 call rwsem_down_write_failed
32369 restore_common_regs
32370 + pax_force_retaddr
32371 ret
32372 ENDPROC(call_rwsem_down_write_failed)
32373
32374 @@ -109,7 +111,8 @@ ENTRY(call_rwsem_wake)
32375 movq %rax,%rdi
32376 call rwsem_wake
32377 restore_common_regs
32378 -1: ret
32379 +1: pax_force_retaddr
32380 + ret
32381 ENDPROC(call_rwsem_wake)
32382
32383 ENTRY(call_rwsem_downgrade_wake)
32384 @@ -119,5 +122,6 @@ ENTRY(call_rwsem_downgrade_wake)
32385 call rwsem_downgrade_wake
32386 __ASM_SIZE(pop,) %__ASM_REG(dx)
32387 restore_common_regs
32388 + pax_force_retaddr
32389 ret
32390 ENDPROC(call_rwsem_downgrade_wake)
32391 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
32392 index 91d93b9..4b22130 100644
32393 --- a/arch/x86/lib/usercopy_32.c
32394 +++ b/arch/x86/lib/usercopy_32.c
32395 @@ -42,11 +42,13 @@ do { \
32396 int __d0; \
32397 might_fault(); \
32398 __asm__ __volatile__( \
32399 + __COPYUSER_SET_ES \
32400 ASM_STAC "\n" \
32401 "0: rep; stosl\n" \
32402 " movl %2,%0\n" \
32403 "1: rep; stosb\n" \
32404 "2: " ASM_CLAC "\n" \
32405 + __COPYUSER_RESTORE_ES \
32406 ".section .fixup,\"ax\"\n" \
32407 "3: lea 0(%2,%0,4),%0\n" \
32408 " jmp 2b\n" \
32409 @@ -98,7 +100,7 @@ EXPORT_SYMBOL(__clear_user);
32410
32411 #ifdef CONFIG_X86_INTEL_USERCOPY
32412 static unsigned long
32413 -__copy_user_intel(void __user *to, const void *from, unsigned long size)
32414 +__generic_copy_to_user_intel(void __user *to, const void *from, unsigned long size)
32415 {
32416 int d0, d1;
32417 __asm__ __volatile__(
32418 @@ -110,36 +112,36 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
32419 " .align 2,0x90\n"
32420 "3: movl 0(%4), %%eax\n"
32421 "4: movl 4(%4), %%edx\n"
32422 - "5: movl %%eax, 0(%3)\n"
32423 - "6: movl %%edx, 4(%3)\n"
32424 + "5: "__copyuser_seg" movl %%eax, 0(%3)\n"
32425 + "6: "__copyuser_seg" movl %%edx, 4(%3)\n"
32426 "7: movl 8(%4), %%eax\n"
32427 "8: movl 12(%4),%%edx\n"
32428 - "9: movl %%eax, 8(%3)\n"
32429 - "10: movl %%edx, 12(%3)\n"
32430 + "9: "__copyuser_seg" movl %%eax, 8(%3)\n"
32431 + "10: "__copyuser_seg" movl %%edx, 12(%3)\n"
32432 "11: movl 16(%4), %%eax\n"
32433 "12: movl 20(%4), %%edx\n"
32434 - "13: movl %%eax, 16(%3)\n"
32435 - "14: movl %%edx, 20(%3)\n"
32436 + "13: "__copyuser_seg" movl %%eax, 16(%3)\n"
32437 + "14: "__copyuser_seg" movl %%edx, 20(%3)\n"
32438 "15: movl 24(%4), %%eax\n"
32439 "16: movl 28(%4), %%edx\n"
32440 - "17: movl %%eax, 24(%3)\n"
32441 - "18: movl %%edx, 28(%3)\n"
32442 + "17: "__copyuser_seg" movl %%eax, 24(%3)\n"
32443 + "18: "__copyuser_seg" movl %%edx, 28(%3)\n"
32444 "19: movl 32(%4), %%eax\n"
32445 "20: movl 36(%4), %%edx\n"
32446 - "21: movl %%eax, 32(%3)\n"
32447 - "22: movl %%edx, 36(%3)\n"
32448 + "21: "__copyuser_seg" movl %%eax, 32(%3)\n"
32449 + "22: "__copyuser_seg" movl %%edx, 36(%3)\n"
32450 "23: movl 40(%4), %%eax\n"
32451 "24: movl 44(%4), %%edx\n"
32452 - "25: movl %%eax, 40(%3)\n"
32453 - "26: movl %%edx, 44(%3)\n"
32454 + "25: "__copyuser_seg" movl %%eax, 40(%3)\n"
32455 + "26: "__copyuser_seg" movl %%edx, 44(%3)\n"
32456 "27: movl 48(%4), %%eax\n"
32457 "28: movl 52(%4), %%edx\n"
32458 - "29: movl %%eax, 48(%3)\n"
32459 - "30: movl %%edx, 52(%3)\n"
32460 + "29: "__copyuser_seg" movl %%eax, 48(%3)\n"
32461 + "30: "__copyuser_seg" movl %%edx, 52(%3)\n"
32462 "31: movl 56(%4), %%eax\n"
32463 "32: movl 60(%4), %%edx\n"
32464 - "33: movl %%eax, 56(%3)\n"
32465 - "34: movl %%edx, 60(%3)\n"
32466 + "33: "__copyuser_seg" movl %%eax, 56(%3)\n"
32467 + "34: "__copyuser_seg" movl %%edx, 60(%3)\n"
32468 " addl $-64, %0\n"
32469 " addl $64, %4\n"
32470 " addl $64, %3\n"
32471 @@ -149,10 +151,116 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
32472 " shrl $2, %0\n"
32473 " andl $3, %%eax\n"
32474 " cld\n"
32475 + __COPYUSER_SET_ES
32476 "99: rep; movsl\n"
32477 "36: movl %%eax, %0\n"
32478 "37: rep; movsb\n"
32479 "100:\n"
32480 + __COPYUSER_RESTORE_ES
32481 + ".section .fixup,\"ax\"\n"
32482 + "101: lea 0(%%eax,%0,4),%0\n"
32483 + " jmp 100b\n"
32484 + ".previous\n"
32485 + _ASM_EXTABLE(1b,100b)
32486 + _ASM_EXTABLE(2b,100b)
32487 + _ASM_EXTABLE(3b,100b)
32488 + _ASM_EXTABLE(4b,100b)
32489 + _ASM_EXTABLE(5b,100b)
32490 + _ASM_EXTABLE(6b,100b)
32491 + _ASM_EXTABLE(7b,100b)
32492 + _ASM_EXTABLE(8b,100b)
32493 + _ASM_EXTABLE(9b,100b)
32494 + _ASM_EXTABLE(10b,100b)
32495 + _ASM_EXTABLE(11b,100b)
32496 + _ASM_EXTABLE(12b,100b)
32497 + _ASM_EXTABLE(13b,100b)
32498 + _ASM_EXTABLE(14b,100b)
32499 + _ASM_EXTABLE(15b,100b)
32500 + _ASM_EXTABLE(16b,100b)
32501 + _ASM_EXTABLE(17b,100b)
32502 + _ASM_EXTABLE(18b,100b)
32503 + _ASM_EXTABLE(19b,100b)
32504 + _ASM_EXTABLE(20b,100b)
32505 + _ASM_EXTABLE(21b,100b)
32506 + _ASM_EXTABLE(22b,100b)
32507 + _ASM_EXTABLE(23b,100b)
32508 + _ASM_EXTABLE(24b,100b)
32509 + _ASM_EXTABLE(25b,100b)
32510 + _ASM_EXTABLE(26b,100b)
32511 + _ASM_EXTABLE(27b,100b)
32512 + _ASM_EXTABLE(28b,100b)
32513 + _ASM_EXTABLE(29b,100b)
32514 + _ASM_EXTABLE(30b,100b)
32515 + _ASM_EXTABLE(31b,100b)
32516 + _ASM_EXTABLE(32b,100b)
32517 + _ASM_EXTABLE(33b,100b)
32518 + _ASM_EXTABLE(34b,100b)
32519 + _ASM_EXTABLE(35b,100b)
32520 + _ASM_EXTABLE(36b,100b)
32521 + _ASM_EXTABLE(37b,100b)
32522 + _ASM_EXTABLE(99b,101b)
32523 + : "=&c"(size), "=&D" (d0), "=&S" (d1)
32524 + : "1"(to), "2"(from), "0"(size)
32525 + : "eax", "edx", "memory");
32526 + return size;
32527 +}
32528 +
32529 +static unsigned long
32530 +__generic_copy_from_user_intel(void *to, const void __user *from, unsigned long size)
32531 +{
32532 + int d0, d1;
32533 + __asm__ __volatile__(
32534 + " .align 2,0x90\n"
32535 + "1: "__copyuser_seg" movl 32(%4), %%eax\n"
32536 + " cmpl $67, %0\n"
32537 + " jbe 3f\n"
32538 + "2: "__copyuser_seg" movl 64(%4), %%eax\n"
32539 + " .align 2,0x90\n"
32540 + "3: "__copyuser_seg" movl 0(%4), %%eax\n"
32541 + "4: "__copyuser_seg" movl 4(%4), %%edx\n"
32542 + "5: movl %%eax, 0(%3)\n"
32543 + "6: movl %%edx, 4(%3)\n"
32544 + "7: "__copyuser_seg" movl 8(%4), %%eax\n"
32545 + "8: "__copyuser_seg" movl 12(%4),%%edx\n"
32546 + "9: movl %%eax, 8(%3)\n"
32547 + "10: movl %%edx, 12(%3)\n"
32548 + "11: "__copyuser_seg" movl 16(%4), %%eax\n"
32549 + "12: "__copyuser_seg" movl 20(%4), %%edx\n"
32550 + "13: movl %%eax, 16(%3)\n"
32551 + "14: movl %%edx, 20(%3)\n"
32552 + "15: "__copyuser_seg" movl 24(%4), %%eax\n"
32553 + "16: "__copyuser_seg" movl 28(%4), %%edx\n"
32554 + "17: movl %%eax, 24(%3)\n"
32555 + "18: movl %%edx, 28(%3)\n"
32556 + "19: "__copyuser_seg" movl 32(%4), %%eax\n"
32557 + "20: "__copyuser_seg" movl 36(%4), %%edx\n"
32558 + "21: movl %%eax, 32(%3)\n"
32559 + "22: movl %%edx, 36(%3)\n"
32560 + "23: "__copyuser_seg" movl 40(%4), %%eax\n"
32561 + "24: "__copyuser_seg" movl 44(%4), %%edx\n"
32562 + "25: movl %%eax, 40(%3)\n"
32563 + "26: movl %%edx, 44(%3)\n"
32564 + "27: "__copyuser_seg" movl 48(%4), %%eax\n"
32565 + "28: "__copyuser_seg" movl 52(%4), %%edx\n"
32566 + "29: movl %%eax, 48(%3)\n"
32567 + "30: movl %%edx, 52(%3)\n"
32568 + "31: "__copyuser_seg" movl 56(%4), %%eax\n"
32569 + "32: "__copyuser_seg" movl 60(%4), %%edx\n"
32570 + "33: movl %%eax, 56(%3)\n"
32571 + "34: movl %%edx, 60(%3)\n"
32572 + " addl $-64, %0\n"
32573 + " addl $64, %4\n"
32574 + " addl $64, %3\n"
32575 + " cmpl $63, %0\n"
32576 + " ja 1b\n"
32577 + "35: movl %0, %%eax\n"
32578 + " shrl $2, %0\n"
32579 + " andl $3, %%eax\n"
32580 + " cld\n"
32581 + "99: rep; "__copyuser_seg" movsl\n"
32582 + "36: movl %%eax, %0\n"
32583 + "37: rep; "__copyuser_seg" movsb\n"
32584 + "100:\n"
32585 ".section .fixup,\"ax\"\n"
32586 "101: lea 0(%%eax,%0,4),%0\n"
32587 " jmp 100b\n"
32588 @@ -207,41 +315,41 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32589 int d0, d1;
32590 __asm__ __volatile__(
32591 " .align 2,0x90\n"
32592 - "0: movl 32(%4), %%eax\n"
32593 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32594 " cmpl $67, %0\n"
32595 " jbe 2f\n"
32596 - "1: movl 64(%4), %%eax\n"
32597 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32598 " .align 2,0x90\n"
32599 - "2: movl 0(%4), %%eax\n"
32600 - "21: movl 4(%4), %%edx\n"
32601 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32602 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32603 " movl %%eax, 0(%3)\n"
32604 " movl %%edx, 4(%3)\n"
32605 - "3: movl 8(%4), %%eax\n"
32606 - "31: movl 12(%4),%%edx\n"
32607 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32608 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32609 " movl %%eax, 8(%3)\n"
32610 " movl %%edx, 12(%3)\n"
32611 - "4: movl 16(%4), %%eax\n"
32612 - "41: movl 20(%4), %%edx\n"
32613 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32614 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32615 " movl %%eax, 16(%3)\n"
32616 " movl %%edx, 20(%3)\n"
32617 - "10: movl 24(%4), %%eax\n"
32618 - "51: movl 28(%4), %%edx\n"
32619 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32620 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32621 " movl %%eax, 24(%3)\n"
32622 " movl %%edx, 28(%3)\n"
32623 - "11: movl 32(%4), %%eax\n"
32624 - "61: movl 36(%4), %%edx\n"
32625 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32626 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32627 " movl %%eax, 32(%3)\n"
32628 " movl %%edx, 36(%3)\n"
32629 - "12: movl 40(%4), %%eax\n"
32630 - "71: movl 44(%4), %%edx\n"
32631 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32632 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32633 " movl %%eax, 40(%3)\n"
32634 " movl %%edx, 44(%3)\n"
32635 - "13: movl 48(%4), %%eax\n"
32636 - "81: movl 52(%4), %%edx\n"
32637 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32638 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32639 " movl %%eax, 48(%3)\n"
32640 " movl %%edx, 52(%3)\n"
32641 - "14: movl 56(%4), %%eax\n"
32642 - "91: movl 60(%4), %%edx\n"
32643 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32644 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32645 " movl %%eax, 56(%3)\n"
32646 " movl %%edx, 60(%3)\n"
32647 " addl $-64, %0\n"
32648 @@ -253,9 +361,9 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32649 " shrl $2, %0\n"
32650 " andl $3, %%eax\n"
32651 " cld\n"
32652 - "6: rep; movsl\n"
32653 + "6: rep; "__copyuser_seg" movsl\n"
32654 " movl %%eax,%0\n"
32655 - "7: rep; movsb\n"
32656 + "7: rep; "__copyuser_seg" movsb\n"
32657 "8:\n"
32658 ".section .fixup,\"ax\"\n"
32659 "9: lea 0(%%eax,%0,4),%0\n"
32660 @@ -305,41 +413,41 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32661
32662 __asm__ __volatile__(
32663 " .align 2,0x90\n"
32664 - "0: movl 32(%4), %%eax\n"
32665 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32666 " cmpl $67, %0\n"
32667 " jbe 2f\n"
32668 - "1: movl 64(%4), %%eax\n"
32669 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32670 " .align 2,0x90\n"
32671 - "2: movl 0(%4), %%eax\n"
32672 - "21: movl 4(%4), %%edx\n"
32673 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32674 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32675 " movnti %%eax, 0(%3)\n"
32676 " movnti %%edx, 4(%3)\n"
32677 - "3: movl 8(%4), %%eax\n"
32678 - "31: movl 12(%4),%%edx\n"
32679 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32680 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32681 " movnti %%eax, 8(%3)\n"
32682 " movnti %%edx, 12(%3)\n"
32683 - "4: movl 16(%4), %%eax\n"
32684 - "41: movl 20(%4), %%edx\n"
32685 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32686 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32687 " movnti %%eax, 16(%3)\n"
32688 " movnti %%edx, 20(%3)\n"
32689 - "10: movl 24(%4), %%eax\n"
32690 - "51: movl 28(%4), %%edx\n"
32691 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32692 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32693 " movnti %%eax, 24(%3)\n"
32694 " movnti %%edx, 28(%3)\n"
32695 - "11: movl 32(%4), %%eax\n"
32696 - "61: movl 36(%4), %%edx\n"
32697 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32698 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32699 " movnti %%eax, 32(%3)\n"
32700 " movnti %%edx, 36(%3)\n"
32701 - "12: movl 40(%4), %%eax\n"
32702 - "71: movl 44(%4), %%edx\n"
32703 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32704 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32705 " movnti %%eax, 40(%3)\n"
32706 " movnti %%edx, 44(%3)\n"
32707 - "13: movl 48(%4), %%eax\n"
32708 - "81: movl 52(%4), %%edx\n"
32709 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32710 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32711 " movnti %%eax, 48(%3)\n"
32712 " movnti %%edx, 52(%3)\n"
32713 - "14: movl 56(%4), %%eax\n"
32714 - "91: movl 60(%4), %%edx\n"
32715 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32716 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32717 " movnti %%eax, 56(%3)\n"
32718 " movnti %%edx, 60(%3)\n"
32719 " addl $-64, %0\n"
32720 @@ -352,9 +460,9 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32721 " shrl $2, %0\n"
32722 " andl $3, %%eax\n"
32723 " cld\n"
32724 - "6: rep; movsl\n"
32725 + "6: rep; "__copyuser_seg" movsl\n"
32726 " movl %%eax,%0\n"
32727 - "7: rep; movsb\n"
32728 + "7: rep; "__copyuser_seg" movsb\n"
32729 "8:\n"
32730 ".section .fixup,\"ax\"\n"
32731 "9: lea 0(%%eax,%0,4),%0\n"
32732 @@ -399,41 +507,41 @@ static unsigned long __copy_user_intel_nocache(void *to,
32733
32734 __asm__ __volatile__(
32735 " .align 2,0x90\n"
32736 - "0: movl 32(%4), %%eax\n"
32737 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32738 " cmpl $67, %0\n"
32739 " jbe 2f\n"
32740 - "1: movl 64(%4), %%eax\n"
32741 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32742 " .align 2,0x90\n"
32743 - "2: movl 0(%4), %%eax\n"
32744 - "21: movl 4(%4), %%edx\n"
32745 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32746 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32747 " movnti %%eax, 0(%3)\n"
32748 " movnti %%edx, 4(%3)\n"
32749 - "3: movl 8(%4), %%eax\n"
32750 - "31: movl 12(%4),%%edx\n"
32751 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32752 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32753 " movnti %%eax, 8(%3)\n"
32754 " movnti %%edx, 12(%3)\n"
32755 - "4: movl 16(%4), %%eax\n"
32756 - "41: movl 20(%4), %%edx\n"
32757 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32758 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32759 " movnti %%eax, 16(%3)\n"
32760 " movnti %%edx, 20(%3)\n"
32761 - "10: movl 24(%4), %%eax\n"
32762 - "51: movl 28(%4), %%edx\n"
32763 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32764 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32765 " movnti %%eax, 24(%3)\n"
32766 " movnti %%edx, 28(%3)\n"
32767 - "11: movl 32(%4), %%eax\n"
32768 - "61: movl 36(%4), %%edx\n"
32769 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32770 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32771 " movnti %%eax, 32(%3)\n"
32772 " movnti %%edx, 36(%3)\n"
32773 - "12: movl 40(%4), %%eax\n"
32774 - "71: movl 44(%4), %%edx\n"
32775 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32776 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32777 " movnti %%eax, 40(%3)\n"
32778 " movnti %%edx, 44(%3)\n"
32779 - "13: movl 48(%4), %%eax\n"
32780 - "81: movl 52(%4), %%edx\n"
32781 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32782 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32783 " movnti %%eax, 48(%3)\n"
32784 " movnti %%edx, 52(%3)\n"
32785 - "14: movl 56(%4), %%eax\n"
32786 - "91: movl 60(%4), %%edx\n"
32787 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32788 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32789 " movnti %%eax, 56(%3)\n"
32790 " movnti %%edx, 60(%3)\n"
32791 " addl $-64, %0\n"
32792 @@ -446,9 +554,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
32793 " shrl $2, %0\n"
32794 " andl $3, %%eax\n"
32795 " cld\n"
32796 - "6: rep; movsl\n"
32797 + "6: rep; "__copyuser_seg" movsl\n"
32798 " movl %%eax,%0\n"
32799 - "7: rep; movsb\n"
32800 + "7: rep; "__copyuser_seg" movsb\n"
32801 "8:\n"
32802 ".section .fixup,\"ax\"\n"
32803 "9: lea 0(%%eax,%0,4),%0\n"
32804 @@ -488,32 +596,36 @@ static unsigned long __copy_user_intel_nocache(void *to,
32805 */
32806 unsigned long __copy_user_zeroing_intel(void *to, const void __user *from,
32807 unsigned long size);
32808 -unsigned long __copy_user_intel(void __user *to, const void *from,
32809 +unsigned long __generic_copy_to_user_intel(void __user *to, const void *from,
32810 + unsigned long size);
32811 +unsigned long __generic_copy_from_user_intel(void *to, const void __user *from,
32812 unsigned long size);
32813 unsigned long __copy_user_zeroing_intel_nocache(void *to,
32814 const void __user *from, unsigned long size);
32815 #endif /* CONFIG_X86_INTEL_USERCOPY */
32816
32817 /* Generic arbitrary sized copy. */
32818 -#define __copy_user(to, from, size) \
32819 +#define __copy_user(to, from, size, prefix, set, restore) \
32820 do { \
32821 int __d0, __d1, __d2; \
32822 __asm__ __volatile__( \
32823 + set \
32824 " cmp $7,%0\n" \
32825 " jbe 1f\n" \
32826 " movl %1,%0\n" \
32827 " negl %0\n" \
32828 " andl $7,%0\n" \
32829 " subl %0,%3\n" \
32830 - "4: rep; movsb\n" \
32831 + "4: rep; "prefix"movsb\n" \
32832 " movl %3,%0\n" \
32833 " shrl $2,%0\n" \
32834 " andl $3,%3\n" \
32835 " .align 2,0x90\n" \
32836 - "0: rep; movsl\n" \
32837 + "0: rep; "prefix"movsl\n" \
32838 " movl %3,%0\n" \
32839 - "1: rep; movsb\n" \
32840 + "1: rep; "prefix"movsb\n" \
32841 "2:\n" \
32842 + restore \
32843 ".section .fixup,\"ax\"\n" \
32844 "5: addl %3,%0\n" \
32845 " jmp 2b\n" \
32846 @@ -538,14 +650,14 @@ do { \
32847 " negl %0\n" \
32848 " andl $7,%0\n" \
32849 " subl %0,%3\n" \
32850 - "4: rep; movsb\n" \
32851 + "4: rep; "__copyuser_seg"movsb\n" \
32852 " movl %3,%0\n" \
32853 " shrl $2,%0\n" \
32854 " andl $3,%3\n" \
32855 " .align 2,0x90\n" \
32856 - "0: rep; movsl\n" \
32857 + "0: rep; "__copyuser_seg"movsl\n" \
32858 " movl %3,%0\n" \
32859 - "1: rep; movsb\n" \
32860 + "1: rep; "__copyuser_seg"movsb\n" \
32861 "2:\n" \
32862 ".section .fixup,\"ax\"\n" \
32863 "5: addl %3,%0\n" \
32864 @@ -572,9 +684,9 @@ unsigned long __copy_to_user_ll(void __user *to, const void *from,
32865 {
32866 stac();
32867 if (movsl_is_ok(to, from, n))
32868 - __copy_user(to, from, n);
32869 + __copy_user(to, from, n, "", __COPYUSER_SET_ES, __COPYUSER_RESTORE_ES);
32870 else
32871 - n = __copy_user_intel(to, from, n);
32872 + n = __generic_copy_to_user_intel(to, from, n);
32873 clac();
32874 return n;
32875 }
32876 @@ -598,10 +710,9 @@ unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from,
32877 {
32878 stac();
32879 if (movsl_is_ok(to, from, n))
32880 - __copy_user(to, from, n);
32881 + __copy_user(to, from, n, __copyuser_seg, "", "");
32882 else
32883 - n = __copy_user_intel((void __user *)to,
32884 - (const void *)from, n);
32885 + n = __generic_copy_from_user_intel(to, from, n);
32886 clac();
32887 return n;
32888 }
32889 @@ -632,60 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
32890 if (n > 64 && cpu_has_xmm2)
32891 n = __copy_user_intel_nocache(to, from, n);
32892 else
32893 - __copy_user(to, from, n);
32894 + __copy_user(to, from, n, __copyuser_seg, "", "");
32895 #else
32896 - __copy_user(to, from, n);
32897 + __copy_user(to, from, n, __copyuser_seg, "", "");
32898 #endif
32899 clac();
32900 return n;
32901 }
32902 EXPORT_SYMBOL(__copy_from_user_ll_nocache_nozero);
32903
32904 -/**
32905 - * copy_to_user: - Copy a block of data into user space.
32906 - * @to: Destination address, in user space.
32907 - * @from: Source address, in kernel space.
32908 - * @n: Number of bytes to copy.
32909 - *
32910 - * Context: User context only. This function may sleep if pagefaults are
32911 - * enabled.
32912 - *
32913 - * Copy data from kernel space to user space.
32914 - *
32915 - * Returns number of bytes that could not be copied.
32916 - * On success, this will be zero.
32917 - */
32918 -unsigned long _copy_to_user(void __user *to, const void *from, unsigned n)
32919 +#ifdef CONFIG_PAX_MEMORY_UDEREF
32920 +void __set_fs(mm_segment_t x)
32921 {
32922 - if (access_ok(VERIFY_WRITE, to, n))
32923 - n = __copy_to_user(to, from, n);
32924 - return n;
32925 + switch (x.seg) {
32926 + case 0:
32927 + loadsegment(gs, 0);
32928 + break;
32929 + case TASK_SIZE_MAX:
32930 + loadsegment(gs, __USER_DS);
32931 + break;
32932 + case -1UL:
32933 + loadsegment(gs, __KERNEL_DS);
32934 + break;
32935 + default:
32936 + BUG();
32937 + }
32938 }
32939 -EXPORT_SYMBOL(_copy_to_user);
32940 +EXPORT_SYMBOL(__set_fs);
32941
32942 -/**
32943 - * copy_from_user: - Copy a block of data from user space.
32944 - * @to: Destination address, in kernel space.
32945 - * @from: Source address, in user space.
32946 - * @n: Number of bytes to copy.
32947 - *
32948 - * Context: User context only. This function may sleep if pagefaults are
32949 - * enabled.
32950 - *
32951 - * Copy data from user space to kernel space.
32952 - *
32953 - * Returns number of bytes that could not be copied.
32954 - * On success, this will be zero.
32955 - *
32956 - * If some data could not be copied, this function will pad the copied
32957 - * data to the requested size using zero bytes.
32958 - */
32959 -unsigned long _copy_from_user(void *to, const void __user *from, unsigned n)
32960 +void set_fs(mm_segment_t x)
32961 {
32962 - if (access_ok(VERIFY_READ, from, n))
32963 - n = __copy_from_user(to, from, n);
32964 - else
32965 - memset(to, 0, n);
32966 - return n;
32967 + current_thread_info()->addr_limit = x;
32968 + __set_fs(x);
32969 }
32970 -EXPORT_SYMBOL(_copy_from_user);
32971 +EXPORT_SYMBOL(set_fs);
32972 +#endif
32973 diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
32974 index 0a42327..7a82465 100644
32975 --- a/arch/x86/lib/usercopy_64.c
32976 +++ b/arch/x86/lib/usercopy_64.c
32977 @@ -18,6 +18,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32978 might_fault();
32979 /* no memory constraint because it doesn't change any memory gcc knows
32980 about */
32981 + pax_open_userland();
32982 stac();
32983 asm volatile(
32984 " testq %[size8],%[size8]\n"
32985 @@ -39,9 +40,10 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32986 _ASM_EXTABLE(0b,3b)
32987 _ASM_EXTABLE(1b,2b)
32988 : [size8] "=&c"(size), [dst] "=&D" (__d0)
32989 - : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
32990 + : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(____m(addr)),
32991 [zero] "r" (0UL), [eight] "r" (8UL));
32992 clac();
32993 + pax_close_userland();
32994 return size;
32995 }
32996 EXPORT_SYMBOL(__clear_user);
32997 @@ -54,12 +56,11 @@ unsigned long clear_user(void __user *to, unsigned long n)
32998 }
32999 EXPORT_SYMBOL(clear_user);
33000
33001 -unsigned long copy_in_user(void __user *to, const void __user *from, unsigned len)
33002 +unsigned long copy_in_user(void __user *to, const void __user *from, unsigned long len)
33003 {
33004 - if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len)) {
33005 - return copy_user_generic((__force void *)to, (__force void *)from, len);
33006 - }
33007 - return len;
33008 + if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len))
33009 + return copy_user_generic((void __force_kernel *)____m(to), (void __force_kernel *)____m(from), len);
33010 + return len;
33011 }
33012 EXPORT_SYMBOL(copy_in_user);
33013
33014 @@ -69,8 +70,10 @@ EXPORT_SYMBOL(copy_in_user);
33015 * it is not necessary to optimize tail handling.
33016 */
33017 __visible unsigned long
33018 -copy_user_handle_tail(char *to, char *from, unsigned len)
33019 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len)
33020 {
33021 + clac();
33022 + pax_close_userland();
33023 for (; len; --len, to++) {
33024 char c;
33025
33026 @@ -79,10 +82,9 @@ copy_user_handle_tail(char *to, char *from, unsigned len)
33027 if (__put_user_nocheck(c, to, sizeof(char)))
33028 break;
33029 }
33030 - clac();
33031
33032 /* If the destination is a kernel buffer, we always clear the end */
33033 - if (!__addr_ok(to))
33034 + if (!__addr_ok(to) && (unsigned long)to >= TASK_SIZE_MAX + pax_user_shadow_base)
33035 memset(to, 0, len);
33036 return len;
33037 }
33038 diff --git a/arch/x86/math-emu/fpu_aux.c b/arch/x86/math-emu/fpu_aux.c
33039 index dd76a05..df65688 100644
33040 --- a/arch/x86/math-emu/fpu_aux.c
33041 +++ b/arch/x86/math-emu/fpu_aux.c
33042 @@ -52,7 +52,7 @@ void fpstate_init_soft(struct swregs_state *soft)
33043
33044 void finit(void)
33045 {
33046 - fpstate_init_soft(&current->thread.fpu.state.soft);
33047 + fpstate_init_soft(&current->thread.fpu.state->soft);
33048 }
33049
33050 /*
33051 diff --git a/arch/x86/math-emu/fpu_entry.c b/arch/x86/math-emu/fpu_entry.c
33052 index 3d8f2e4..ef7cf4e 100644
33053 --- a/arch/x86/math-emu/fpu_entry.c
33054 +++ b/arch/x86/math-emu/fpu_entry.c
33055 @@ -677,7 +677,7 @@ int fpregs_soft_set(struct task_struct *target,
33056 unsigned int pos, unsigned int count,
33057 const void *kbuf, const void __user *ubuf)
33058 {
33059 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
33060 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
33061 void *space = s387->st_space;
33062 int ret;
33063 int offset, other, i, tags, regnr, tag, newtop;
33064 @@ -729,7 +729,7 @@ int fpregs_soft_get(struct task_struct *target,
33065 unsigned int pos, unsigned int count,
33066 void *kbuf, void __user *ubuf)
33067 {
33068 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
33069 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
33070 const void *space = s387->st_space;
33071 int ret;
33072 int offset = (S387->ftop & 7) * 10, other = 80 - offset;
33073 diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h
33074 index 5e044d5..d342fce 100644
33075 --- a/arch/x86/math-emu/fpu_system.h
33076 +++ b/arch/x86/math-emu/fpu_system.h
33077 @@ -46,7 +46,7 @@ static inline struct desc_struct FPU_get_ldt_descriptor(unsigned seg)
33078 #define SEG_EXPAND_DOWN(s) (((s).b & ((1 << 11) | (1 << 10))) \
33079 == (1 << 10))
33080
33081 -#define I387 (&current->thread.fpu.state)
33082 +#define I387 (current->thread.fpu.state)
33083 #define FPU_info (I387->soft.info)
33084
33085 #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs))
33086 diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
33087 index a482d10..1a6edb5 100644
33088 --- a/arch/x86/mm/Makefile
33089 +++ b/arch/x86/mm/Makefile
33090 @@ -33,3 +33,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
33091 obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
33092
33093 obj-$(CONFIG_X86_INTEL_MPX) += mpx.o
33094 +
33095 +quote:="
33096 +obj-$(CONFIG_X86_64) += uderef_64.o
33097 +CFLAGS_uderef_64.o := $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) -fcall-saved-rax
33098 diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
33099 index 903ec1e..41b4708 100644
33100 --- a/arch/x86/mm/extable.c
33101 +++ b/arch/x86/mm/extable.c
33102 @@ -2,16 +2,29 @@
33103 #include <linux/spinlock.h>
33104 #include <linux/sort.h>
33105 #include <asm/uaccess.h>
33106 +#include <asm/boot.h>
33107
33108 static inline unsigned long
33109 ex_insn_addr(const struct exception_table_entry *x)
33110 {
33111 - return (unsigned long)&x->insn + x->insn;
33112 + unsigned long reloc = 0;
33113 +
33114 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
33115 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33116 +#endif
33117 +
33118 + return (unsigned long)&x->insn + x->insn + reloc;
33119 }
33120 static inline unsigned long
33121 ex_fixup_addr(const struct exception_table_entry *x)
33122 {
33123 - return (unsigned long)&x->fixup + x->fixup;
33124 + unsigned long reloc = 0;
33125 +
33126 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
33127 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33128 +#endif
33129 +
33130 + return (unsigned long)&x->fixup + x->fixup + reloc;
33131 }
33132
33133 int fixup_exception(struct pt_regs *regs)
33134 @@ -20,7 +33,7 @@ int fixup_exception(struct pt_regs *regs)
33135 unsigned long new_ip;
33136
33137 #ifdef CONFIG_PNPBIOS
33138 - if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
33139 + if (unlikely(!v8086_mode(regs) && SEGMENT_IS_PNP_CODE(regs->cs))) {
33140 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
33141 extern u32 pnp_bios_is_utter_crap;
33142 pnp_bios_is_utter_crap = 1;
33143 @@ -145,6 +158,13 @@ void sort_extable(struct exception_table_entry *start,
33144 i += 4;
33145 p->fixup -= i;
33146 i += 4;
33147 +
33148 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
33149 + BUILD_BUG_ON(!IS_ENABLED(CONFIG_BUILDTIME_EXTABLE_SORT));
33150 + p->insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33151 + p->fixup -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33152 +#endif
33153 +
33154 }
33155 }
33156
33157 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
33158 index 9dc9098..938251a 100644
33159 --- a/arch/x86/mm/fault.c
33160 +++ b/arch/x86/mm/fault.c
33161 @@ -14,12 +14,19 @@
33162 #include <linux/prefetch.h> /* prefetchw */
33163 #include <linux/context_tracking.h> /* exception_enter(), ... */
33164 #include <linux/uaccess.h> /* faulthandler_disabled() */
33165 +#include <linux/unistd.h>
33166 +#include <linux/compiler.h>
33167
33168 #include <asm/traps.h> /* dotraplinkage, ... */
33169 #include <asm/pgalloc.h> /* pgd_*(), ... */
33170 #include <asm/kmemcheck.h> /* kmemcheck_*(), ... */
33171 #include <asm/fixmap.h> /* VSYSCALL_ADDR */
33172 #include <asm/vsyscall.h> /* emulate_vsyscall */
33173 +#include <asm/tlbflush.h>
33174 +
33175 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
33176 +#include <asm/stacktrace.h>
33177 +#endif
33178
33179 #define CREATE_TRACE_POINTS
33180 #include <asm/trace/exceptions.h>
33181 @@ -121,7 +128,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
33182 return !instr_lo || (instr_lo>>1) == 1;
33183 case 0x00:
33184 /* Prefetch instruction is 0x0F0D or 0x0F18 */
33185 - if (probe_kernel_address(instr, opcode))
33186 + if (user_mode(regs)) {
33187 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
33188 + return 0;
33189 + } else if (probe_kernel_address(instr, opcode))
33190 return 0;
33191
33192 *prefetch = (instr_lo == 0xF) &&
33193 @@ -155,7 +165,10 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
33194 while (instr < max_instr) {
33195 unsigned char opcode;
33196
33197 - if (probe_kernel_address(instr, opcode))
33198 + if (user_mode(regs)) {
33199 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
33200 + break;
33201 + } else if (probe_kernel_address(instr, opcode))
33202 break;
33203
33204 instr++;
33205 @@ -186,6 +199,34 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address,
33206 force_sig_info(si_signo, &info, tsk);
33207 }
33208
33209 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33210 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);
33211 +#endif
33212 +
33213 +#ifdef CONFIG_PAX_EMUTRAMP
33214 +static int pax_handle_fetch_fault(struct pt_regs *regs);
33215 +#endif
33216 +
33217 +#ifdef CONFIG_PAX_PAGEEXEC
33218 +static inline pmd_t * pax_get_pmd(struct mm_struct *mm, unsigned long address)
33219 +{
33220 + pgd_t *pgd;
33221 + pud_t *pud;
33222 + pmd_t *pmd;
33223 +
33224 + pgd = pgd_offset(mm, address);
33225 + if (!pgd_present(*pgd))
33226 + return NULL;
33227 + pud = pud_offset(pgd, address);
33228 + if (!pud_present(*pud))
33229 + return NULL;
33230 + pmd = pmd_offset(pud, address);
33231 + if (!pmd_present(*pmd))
33232 + return NULL;
33233 + return pmd;
33234 +}
33235 +#endif
33236 +
33237 DEFINE_SPINLOCK(pgd_lock);
33238 LIST_HEAD(pgd_list);
33239
33240 @@ -236,10 +277,27 @@ void vmalloc_sync_all(void)
33241 for (address = VMALLOC_START & PMD_MASK;
33242 address >= TASK_SIZE && address < FIXADDR_TOP;
33243 address += PMD_SIZE) {
33244 +
33245 +#ifdef CONFIG_PAX_PER_CPU_PGD
33246 + unsigned long cpu;
33247 +#else
33248 struct page *page;
33249 +#endif
33250
33251 spin_lock(&pgd_lock);
33252 +
33253 +#ifdef CONFIG_PAX_PER_CPU_PGD
33254 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
33255 + pgd_t *pgd = get_cpu_pgd(cpu, user);
33256 + pmd_t *ret;
33257 +
33258 + ret = vmalloc_sync_one(pgd, address);
33259 + if (!ret)
33260 + break;
33261 + pgd = get_cpu_pgd(cpu, kernel);
33262 +#else
33263 list_for_each_entry(page, &pgd_list, lru) {
33264 + pgd_t *pgd;
33265 spinlock_t *pgt_lock;
33266 pmd_t *ret;
33267
33268 @@ -247,8 +305,14 @@ void vmalloc_sync_all(void)
33269 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
33270
33271 spin_lock(pgt_lock);
33272 - ret = vmalloc_sync_one(page_address(page), address);
33273 + pgd = page_address(page);
33274 +#endif
33275 +
33276 + ret = vmalloc_sync_one(pgd, address);
33277 +
33278 +#ifndef CONFIG_PAX_PER_CPU_PGD
33279 spin_unlock(pgt_lock);
33280 +#endif
33281
33282 if (!ret)
33283 break;
33284 @@ -282,6 +346,12 @@ static noinline int vmalloc_fault(unsigned long address)
33285 * an interrupt in the middle of a task switch..
33286 */
33287 pgd_paddr = read_cr3();
33288 +
33289 +#ifdef CONFIG_PAX_PER_CPU_PGD
33290 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (pgd_paddr & __PHYSICAL_MASK));
33291 + vmalloc_sync_one(__va(pgd_paddr + PAGE_SIZE), address);
33292 +#endif
33293 +
33294 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
33295 if (!pmd_k)
33296 return -1;
33297 @@ -378,11 +448,25 @@ static noinline int vmalloc_fault(unsigned long address)
33298 * happen within a race in page table update. In the later
33299 * case just flush:
33300 */
33301 - pgd = pgd_offset(current->active_mm, address);
33302 +
33303 pgd_ref = pgd_offset_k(address);
33304 if (pgd_none(*pgd_ref))
33305 return -1;
33306
33307 +#ifdef CONFIG_PAX_PER_CPU_PGD
33308 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (read_cr3() & __PHYSICAL_MASK));
33309 + pgd = pgd_offset_cpu(smp_processor_id(), user, address);
33310 + if (pgd_none(*pgd)) {
33311 + set_pgd(pgd, *pgd_ref);
33312 + arch_flush_lazy_mmu_mode();
33313 + } else {
33314 + BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
33315 + }
33316 + pgd = pgd_offset_cpu(smp_processor_id(), kernel, address);
33317 +#else
33318 + pgd = pgd_offset(current->active_mm, address);
33319 +#endif
33320 +
33321 if (pgd_none(*pgd)) {
33322 set_pgd(pgd, *pgd_ref);
33323 arch_flush_lazy_mmu_mode();
33324 @@ -549,7 +633,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
33325 static int is_errata100(struct pt_regs *regs, unsigned long address)
33326 {
33327 #ifdef CONFIG_X86_64
33328 - if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
33329 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) && (address >> 32))
33330 return 1;
33331 #endif
33332 return 0;
33333 @@ -576,9 +660,9 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
33334 }
33335
33336 static const char nx_warning[] = KERN_CRIT
33337 -"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n";
33338 +"kernel tried to execute NX-protected page - exploit attempt? (uid: %d, task: %s, pid: %d)\n";
33339 static const char smep_warning[] = KERN_CRIT
33340 -"unable to execute userspace code (SMEP?) (uid: %d)\n";
33341 +"unable to execute userspace code (SMEP?) (uid: %d, task: %s, pid: %d)\n";
33342
33343 static void
33344 show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33345 @@ -587,7 +671,7 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33346 if (!oops_may_print())
33347 return;
33348
33349 - if (error_code & PF_INSTR) {
33350 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR)) {
33351 unsigned int level;
33352 pgd_t *pgd;
33353 pte_t *pte;
33354 @@ -598,13 +682,25 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33355 pte = lookup_address_in_pgd(pgd, address, &level);
33356
33357 if (pte && pte_present(*pte) && !pte_exec(*pte))
33358 - printk(nx_warning, from_kuid(&init_user_ns, current_uid()));
33359 + printk(nx_warning, from_kuid_munged(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
33360 if (pte && pte_present(*pte) && pte_exec(*pte) &&
33361 (pgd_flags(*pgd) & _PAGE_USER) &&
33362 (__read_cr4() & X86_CR4_SMEP))
33363 - printk(smep_warning, from_kuid(&init_user_ns, current_uid()));
33364 + printk(smep_warning, from_kuid(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
33365 }
33366
33367 +#ifdef CONFIG_PAX_KERNEXEC
33368 + if (init_mm.start_code <= address && address < init_mm.end_code) {
33369 + if (current->signal->curr_ip)
33370 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n",
33371 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
33372 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
33373 + else
33374 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
33375 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
33376 + }
33377 +#endif
33378 +
33379 printk(KERN_ALERT "BUG: unable to handle kernel ");
33380 if (address < PAGE_SIZE)
33381 printk(KERN_CONT "NULL pointer dereference");
33382 @@ -783,6 +879,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
33383 return;
33384 }
33385 #endif
33386 +
33387 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33388 + if (pax_is_fetch_fault(regs, error_code, address)) {
33389 +
33390 +#ifdef CONFIG_PAX_EMUTRAMP
33391 + switch (pax_handle_fetch_fault(regs)) {
33392 + case 2:
33393 + return;
33394 + }
33395 +#endif
33396 +
33397 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
33398 + do_group_exit(SIGKILL);
33399 + }
33400 +#endif
33401 +
33402 /* Kernel addresses are always protection faults: */
33403 if (address >= TASK_SIZE)
33404 error_code |= PF_PROT;
33405 @@ -865,7 +977,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
33406 if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
33407 printk(KERN_ERR
33408 "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
33409 - tsk->comm, tsk->pid, address);
33410 + tsk->comm, task_pid_nr(tsk), address);
33411 code = BUS_MCEERR_AR;
33412 }
33413 #endif
33414 @@ -917,6 +1029,107 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
33415 return 1;
33416 }
33417
33418 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33419 +static inline unsigned long get_limit(unsigned long segment)
33420 +{
33421 + unsigned long __limit;
33422 +
33423 + asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
33424 + return __limit + 1;
33425 +}
33426 +
33427 +static int pax_handle_pageexec_fault(struct pt_regs *regs, struct mm_struct *mm, unsigned long address, unsigned long error_code)
33428 +{
33429 + pte_t *pte;
33430 + pmd_t *pmd;
33431 + spinlock_t *ptl;
33432 + unsigned char pte_mask;
33433 +
33434 + if ((__supported_pte_mask & _PAGE_NX) || (error_code & (PF_PROT|PF_USER)) != (PF_PROT|PF_USER) || v8086_mode(regs) ||
33435 + !(mm->pax_flags & MF_PAX_PAGEEXEC))
33436 + return 0;
33437 +
33438 + /* PaX: it's our fault, let's handle it if we can */
33439 +
33440 + /* PaX: take a look at read faults before acquiring any locks */
33441 + if (unlikely(!(error_code & PF_WRITE) && (regs->ip == address))) {
33442 + /* instruction fetch attempt from a protected page in user mode */
33443 + up_read(&mm->mmap_sem);
33444 +
33445 +#ifdef CONFIG_PAX_EMUTRAMP
33446 + switch (pax_handle_fetch_fault(regs)) {
33447 + case 2:
33448 + return 1;
33449 + }
33450 +#endif
33451 +
33452 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
33453 + do_group_exit(SIGKILL);
33454 + }
33455 +
33456 + pmd = pax_get_pmd(mm, address);
33457 + if (unlikely(!pmd))
33458 + return 0;
33459 +
33460 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
33461 + if (unlikely(!(pte_val(*pte) & _PAGE_PRESENT) || pte_user(*pte))) {
33462 + pte_unmap_unlock(pte, ptl);
33463 + return 0;
33464 + }
33465 +
33466 + if (unlikely((error_code & PF_WRITE) && !pte_write(*pte))) {
33467 + /* write attempt to a protected page in user mode */
33468 + pte_unmap_unlock(pte, ptl);
33469 + return 0;
33470 + }
33471 +
33472 +#ifdef CONFIG_SMP
33473 + if (likely(address > get_limit(regs->cs) && cpumask_test_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask)))
33474 +#else
33475 + if (likely(address > get_limit(regs->cs)))
33476 +#endif
33477 + {
33478 + set_pte(pte, pte_mkread(*pte));
33479 + __flush_tlb_one(address);
33480 + pte_unmap_unlock(pte, ptl);
33481 + up_read(&mm->mmap_sem);
33482 + return 1;
33483 + }
33484 +
33485 + pte_mask = _PAGE_ACCESSED | _PAGE_USER | ((error_code & PF_WRITE) << (_PAGE_BIT_DIRTY-1));
33486 +
33487 + /*
33488 + * PaX: fill DTLB with user rights and retry
33489 + */
33490 + __asm__ __volatile__ (
33491 + "orb %2,(%1)\n"
33492 +#if defined(CONFIG_M586) || defined(CONFIG_M586TSC)
33493 +/*
33494 + * PaX: let this uncommented 'invlpg' remind us on the behaviour of Intel's
33495 + * (and AMD's) TLBs. namely, they do not cache PTEs that would raise *any*
33496 + * page fault when examined during a TLB load attempt. this is true not only
33497 + * for PTEs holding a non-present entry but also present entries that will
33498 + * raise a page fault (such as those set up by PaX, or the copy-on-write
33499 + * mechanism). in effect it means that we do *not* need to flush the TLBs
33500 + * for our target pages since their PTEs are simply not in the TLBs at all.
33501 +
33502 + * the best thing in omitting it is that we gain around 15-20% speed in the
33503 + * fast path of the page fault handler and can get rid of tracing since we
33504 + * can no longer flush unintended entries.
33505 + */
33506 + "invlpg (%0)\n"
33507 +#endif
33508 + __copyuser_seg"testb $0,(%0)\n"
33509 + "xorb %3,(%1)\n"
33510 + :
33511 + : "r" (address), "r" (pte), "q" (pte_mask), "i" (_PAGE_USER)
33512 + : "memory", "cc");
33513 + pte_unmap_unlock(pte, ptl);
33514 + up_read(&mm->mmap_sem);
33515 + return 1;
33516 +}
33517 +#endif
33518 +
33519 /*
33520 * Handle a spurious fault caused by a stale TLB entry.
33521 *
33522 @@ -1002,6 +1215,9 @@ int show_unhandled_signals = 1;
33523 static inline int
33524 access_error(unsigned long error_code, struct vm_area_struct *vma)
33525 {
33526 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR) && !(vma->vm_flags & VM_EXEC))
33527 + return 1;
33528 +
33529 if (error_code & PF_WRITE) {
33530 /* write, present and write, not present: */
33531 if (unlikely(!(vma->vm_flags & VM_WRITE)))
33532 @@ -1064,6 +1280,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
33533 tsk = current;
33534 mm = tsk->mm;
33535
33536 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
33537 + if (!user_mode(regs) && address < 2 * pax_user_shadow_base) {
33538 + if (!search_exception_tables(regs->ip)) {
33539 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33540 + bad_area_nosemaphore(regs, error_code, address);
33541 + return;
33542 + }
33543 + if (address < pax_user_shadow_base) {
33544 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33545 + printk(KERN_EMERG "PAX: faulting IP: %pS\n", (void *)regs->ip);
33546 + show_trace_log_lvl(NULL, NULL, (void *)regs->sp, regs->bp, KERN_EMERG);
33547 + } else
33548 + address -= pax_user_shadow_base;
33549 + }
33550 +#endif
33551 +
33552 /*
33553 * Detect and handle instructions that would cause a page fault for
33554 * both a tracked kernel page and a userspace page.
33555 @@ -1188,6 +1420,11 @@ retry:
33556 might_sleep();
33557 }
33558
33559 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33560 + if (pax_handle_pageexec_fault(regs, mm, address, error_code))
33561 + return;
33562 +#endif
33563 +
33564 vma = find_vma(mm, address);
33565 if (unlikely(!vma)) {
33566 bad_area(regs, error_code, address);
33567 @@ -1199,18 +1436,24 @@ retry:
33568 bad_area(regs, error_code, address);
33569 return;
33570 }
33571 - if (error_code & PF_USER) {
33572 - /*
33573 - * Accessing the stack below %sp is always a bug.
33574 - * The large cushion allows instructions like enter
33575 - * and pusha to work. ("enter $65535, $31" pushes
33576 - * 32 pointers and then decrements %sp by 65535.)
33577 - */
33578 - if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
33579 - bad_area(regs, error_code, address);
33580 - return;
33581 - }
33582 + /*
33583 + * Accessing the stack below %sp is always a bug.
33584 + * The large cushion allows instructions like enter
33585 + * and pusha to work. ("enter $65535, $31" pushes
33586 + * 32 pointers and then decrements %sp by 65535.)
33587 + */
33588 + if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < task_pt_regs(tsk)->sp)) {
33589 + bad_area(regs, error_code, address);
33590 + return;
33591 }
33592 +
33593 +#ifdef CONFIG_PAX_SEGMEXEC
33594 + if (unlikely((mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end - SEGMEXEC_TASK_SIZE - 1 < address - SEGMEXEC_TASK_SIZE - 1)) {
33595 + bad_area(regs, error_code, address);
33596 + return;
33597 + }
33598 +#endif
33599 +
33600 if (unlikely(expand_stack(vma, address))) {
33601 bad_area(regs, error_code, address);
33602 return;
33603 @@ -1330,3 +1573,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
33604 }
33605 NOKPROBE_SYMBOL(trace_do_page_fault);
33606 #endif /* CONFIG_TRACING */
33607 +
33608 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33609 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address)
33610 +{
33611 + struct mm_struct *mm = current->mm;
33612 + unsigned long ip = regs->ip;
33613 +
33614 + if (v8086_mode(regs))
33615 + ip = ((regs->cs & 0xffff) << 4) + (ip & 0xffff);
33616 +
33617 +#ifdef CONFIG_PAX_PAGEEXEC
33618 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
33619 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR))
33620 + return true;
33621 + if (!(error_code & (PF_PROT | PF_WRITE)) && ip == address)
33622 + return true;
33623 + return false;
33624 + }
33625 +#endif
33626 +
33627 +#ifdef CONFIG_PAX_SEGMEXEC
33628 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
33629 + if (!(error_code & (PF_PROT | PF_WRITE)) && (ip + SEGMEXEC_TASK_SIZE == address))
33630 + return true;
33631 + return false;
33632 + }
33633 +#endif
33634 +
33635 + return false;
33636 +}
33637 +#endif
33638 +
33639 +#ifdef CONFIG_PAX_EMUTRAMP
33640 +static int pax_handle_fetch_fault_32(struct pt_regs *regs)
33641 +{
33642 + int err;
33643 +
33644 + do { /* PaX: libffi trampoline emulation */
33645 + unsigned char mov, jmp;
33646 + unsigned int addr1, addr2;
33647 +
33648 +#ifdef CONFIG_X86_64
33649 + if ((regs->ip + 9) >> 32)
33650 + break;
33651 +#endif
33652 +
33653 + err = get_user(mov, (unsigned char __user *)regs->ip);
33654 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33655 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33656 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33657 +
33658 + if (err)
33659 + break;
33660 +
33661 + if (mov == 0xB8 && jmp == 0xE9) {
33662 + regs->ax = addr1;
33663 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33664 + return 2;
33665 + }
33666 + } while (0);
33667 +
33668 + do { /* PaX: gcc trampoline emulation #1 */
33669 + unsigned char mov1, mov2;
33670 + unsigned short jmp;
33671 + unsigned int addr1, addr2;
33672 +
33673 +#ifdef CONFIG_X86_64
33674 + if ((regs->ip + 11) >> 32)
33675 + break;
33676 +#endif
33677 +
33678 + err = get_user(mov1, (unsigned char __user *)regs->ip);
33679 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33680 + err |= get_user(mov2, (unsigned char __user *)(regs->ip + 5));
33681 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33682 + err |= get_user(jmp, (unsigned short __user *)(regs->ip + 10));
33683 +
33684 + if (err)
33685 + break;
33686 +
33687 + if (mov1 == 0xB9 && mov2 == 0xB8 && jmp == 0xE0FF) {
33688 + regs->cx = addr1;
33689 + regs->ax = addr2;
33690 + regs->ip = addr2;
33691 + return 2;
33692 + }
33693 + } while (0);
33694 +
33695 + do { /* PaX: gcc trampoline emulation #2 */
33696 + unsigned char mov, jmp;
33697 + unsigned int addr1, addr2;
33698 +
33699 +#ifdef CONFIG_X86_64
33700 + if ((regs->ip + 9) >> 32)
33701 + break;
33702 +#endif
33703 +
33704 + err = get_user(mov, (unsigned char __user *)regs->ip);
33705 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33706 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33707 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33708 +
33709 + if (err)
33710 + break;
33711 +
33712 + if (mov == 0xB9 && jmp == 0xE9) {
33713 + regs->cx = addr1;
33714 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33715 + return 2;
33716 + }
33717 + } while (0);
33718 +
33719 + return 1; /* PaX in action */
33720 +}
33721 +
33722 +#ifdef CONFIG_X86_64
33723 +static int pax_handle_fetch_fault_64(struct pt_regs *regs)
33724 +{
33725 + int err;
33726 +
33727 + do { /* PaX: libffi trampoline emulation */
33728 + unsigned short mov1, mov2, jmp1;
33729 + unsigned char stcclc, jmp2;
33730 + unsigned long addr1, addr2;
33731 +
33732 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33733 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33734 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33735 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33736 + err |= get_user(stcclc, (unsigned char __user *)(regs->ip + 20));
33737 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 21));
33738 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 23));
33739 +
33740 + if (err)
33741 + break;
33742 +
33743 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && (stcclc == 0xF8 || stcclc == 0xF9) && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33744 + regs->r11 = addr1;
33745 + regs->r10 = addr2;
33746 + if (stcclc == 0xF8)
33747 + regs->flags &= ~X86_EFLAGS_CF;
33748 + else
33749 + regs->flags |= X86_EFLAGS_CF;
33750 + regs->ip = addr1;
33751 + return 2;
33752 + }
33753 + } while (0);
33754 +
33755 + do { /* PaX: gcc trampoline emulation #1 */
33756 + unsigned short mov1, mov2, jmp1;
33757 + unsigned char jmp2;
33758 + unsigned int addr1;
33759 + unsigned long addr2;
33760 +
33761 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33762 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 2));
33763 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 6));
33764 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 8));
33765 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 16));
33766 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 18));
33767 +
33768 + if (err)
33769 + break;
33770 +
33771 + if (mov1 == 0xBB41 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33772 + regs->r11 = addr1;
33773 + regs->r10 = addr2;
33774 + regs->ip = addr1;
33775 + return 2;
33776 + }
33777 + } while (0);
33778 +
33779 + do { /* PaX: gcc trampoline emulation #2 */
33780 + unsigned short mov1, mov2, jmp1;
33781 + unsigned char jmp2;
33782 + unsigned long addr1, addr2;
33783 +
33784 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33785 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33786 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33787 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33788 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 20));
33789 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 22));
33790 +
33791 + if (err)
33792 + break;
33793 +
33794 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33795 + regs->r11 = addr1;
33796 + regs->r10 = addr2;
33797 + regs->ip = addr1;
33798 + return 2;
33799 + }
33800 + } while (0);
33801 +
33802 + return 1; /* PaX in action */
33803 +}
33804 +#endif
33805 +
33806 +/*
33807 + * PaX: decide what to do with offenders (regs->ip = fault address)
33808 + *
33809 + * returns 1 when task should be killed
33810 + * 2 when gcc trampoline was detected
33811 + */
33812 +static int pax_handle_fetch_fault(struct pt_regs *regs)
33813 +{
33814 + if (v8086_mode(regs))
33815 + return 1;
33816 +
33817 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
33818 + return 1;
33819 +
33820 +#ifdef CONFIG_X86_32
33821 + return pax_handle_fetch_fault_32(regs);
33822 +#else
33823 + if (regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))
33824 + return pax_handle_fetch_fault_32(regs);
33825 + else
33826 + return pax_handle_fetch_fault_64(regs);
33827 +#endif
33828 +}
33829 +#endif
33830 +
33831 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33832 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
33833 +{
33834 + long i;
33835 +
33836 + printk(KERN_ERR "PAX: bytes at PC: ");
33837 + for (i = 0; i < 20; i++) {
33838 + unsigned char c;
33839 + if (get_user(c, (unsigned char __force_user *)pc+i))
33840 + printk(KERN_CONT "?? ");
33841 + else
33842 + printk(KERN_CONT "%02x ", c);
33843 + }
33844 + printk("\n");
33845 +
33846 + printk(KERN_ERR "PAX: bytes at SP-%lu: ", (unsigned long)sizeof(long));
33847 + for (i = -1; i < 80 / (long)sizeof(long); i++) {
33848 + unsigned long c;
33849 + if (get_user(c, (unsigned long __force_user *)sp+i)) {
33850 +#ifdef CONFIG_X86_32
33851 + printk(KERN_CONT "???????? ");
33852 +#else
33853 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)))
33854 + printk(KERN_CONT "???????? ???????? ");
33855 + else
33856 + printk(KERN_CONT "???????????????? ");
33857 +#endif
33858 + } else {
33859 +#ifdef CONFIG_X86_64
33860 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))) {
33861 + printk(KERN_CONT "%08x ", (unsigned int)c);
33862 + printk(KERN_CONT "%08x ", (unsigned int)(c >> 32));
33863 + } else
33864 +#endif
33865 + printk(KERN_CONT "%0*lx ", 2 * (int)sizeof(long), c);
33866 + }
33867 + }
33868 + printk("\n");
33869 +}
33870 +#endif
33871 +
33872 +/**
33873 + * probe_kernel_write(): safely attempt to write to a location
33874 + * @dst: address to write to
33875 + * @src: pointer to the data that shall be written
33876 + * @size: size of the data chunk
33877 + *
33878 + * Safely write to address @dst from the buffer at @src. If a kernel fault
33879 + * happens, handle that and return -EFAULT.
33880 + */
33881 +long notrace probe_kernel_write(void *dst, const void *src, size_t size)
33882 +{
33883 + long ret;
33884 + mm_segment_t old_fs = get_fs();
33885 +
33886 + set_fs(KERNEL_DS);
33887 + pagefault_disable();
33888 + pax_open_kernel();
33889 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
33890 + pax_close_kernel();
33891 + pagefault_enable();
33892 + set_fs(old_fs);
33893 +
33894 + return ret ? -EFAULT : 0;
33895 +}
33896 diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
33897 index 81bf3d2..7ef25c2 100644
33898 --- a/arch/x86/mm/gup.c
33899 +++ b/arch/x86/mm/gup.c
33900 @@ -268,7 +268,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
33901 addr = start;
33902 len = (unsigned long) nr_pages << PAGE_SHIFT;
33903 end = start + len;
33904 - if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ,
33905 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33906 (void __user *)start, len)))
33907 return 0;
33908
33909 @@ -344,6 +344,10 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
33910 goto slow_irqon;
33911 #endif
33912
33913 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33914 + (void __user *)start, len)))
33915 + return 0;
33916 +
33917 /*
33918 * XXX: batch / limit 'nr', to avoid large irq off latency
33919 * needs some instrumenting to determine the common sizes used by
33920 diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
33921 index eecb207a..e76b7f4 100644
33922 --- a/arch/x86/mm/highmem_32.c
33923 +++ b/arch/x86/mm/highmem_32.c
33924 @@ -35,6 +35,8 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33925 unsigned long vaddr;
33926 int idx, type;
33927
33928 + BUG_ON(pgprot_val(prot) & _PAGE_USER);
33929 +
33930 preempt_disable();
33931 pagefault_disable();
33932
33933 @@ -45,7 +47,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33934 idx = type + KM_TYPE_NR*smp_processor_id();
33935 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
33936 BUG_ON(!pte_none(*(kmap_pte-idx)));
33937 +
33938 + pax_open_kernel();
33939 set_pte(kmap_pte-idx, mk_pte(page, prot));
33940 + pax_close_kernel();
33941 +
33942 arch_flush_lazy_mmu_mode();
33943
33944 return (void *)vaddr;
33945 diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
33946 index 42982b2..7168fc3 100644
33947 --- a/arch/x86/mm/hugetlbpage.c
33948 +++ b/arch/x86/mm/hugetlbpage.c
33949 @@ -74,23 +74,24 @@ int pud_huge(pud_t pud)
33950 #ifdef CONFIG_HUGETLB_PAGE
33951 static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
33952 unsigned long addr, unsigned long len,
33953 - unsigned long pgoff, unsigned long flags)
33954 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33955 {
33956 struct hstate *h = hstate_file(file);
33957 struct vm_unmapped_area_info info;
33958 -
33959 +
33960 info.flags = 0;
33961 info.length = len;
33962 info.low_limit = current->mm->mmap_legacy_base;
33963 info.high_limit = TASK_SIZE;
33964 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33965 info.align_offset = 0;
33966 + info.threadstack_offset = offset;
33967 return vm_unmapped_area(&info);
33968 }
33969
33970 static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33971 unsigned long addr0, unsigned long len,
33972 - unsigned long pgoff, unsigned long flags)
33973 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33974 {
33975 struct hstate *h = hstate_file(file);
33976 struct vm_unmapped_area_info info;
33977 @@ -102,6 +103,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33978 info.high_limit = current->mm->mmap_base;
33979 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33980 info.align_offset = 0;
33981 + info.threadstack_offset = offset;
33982 addr = vm_unmapped_area(&info);
33983
33984 /*
33985 @@ -114,6 +116,12 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33986 VM_BUG_ON(addr != -ENOMEM);
33987 info.flags = 0;
33988 info.low_limit = TASK_UNMAPPED_BASE;
33989 +
33990 +#ifdef CONFIG_PAX_RANDMMAP
33991 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
33992 + info.low_limit += current->mm->delta_mmap;
33993 +#endif
33994 +
33995 info.high_limit = TASK_SIZE;
33996 addr = vm_unmapped_area(&info);
33997 }
33998 @@ -128,10 +136,20 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33999 struct hstate *h = hstate_file(file);
34000 struct mm_struct *mm = current->mm;
34001 struct vm_area_struct *vma;
34002 + unsigned long pax_task_size = TASK_SIZE;
34003 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
34004
34005 if (len & ~huge_page_mask(h))
34006 return -EINVAL;
34007 - if (len > TASK_SIZE)
34008 +
34009 +#ifdef CONFIG_PAX_SEGMEXEC
34010 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34011 + pax_task_size = SEGMEXEC_TASK_SIZE;
34012 +#endif
34013 +
34014 + pax_task_size -= PAGE_SIZE;
34015 +
34016 + if (len > pax_task_size)
34017 return -ENOMEM;
34018
34019 if (flags & MAP_FIXED) {
34020 @@ -140,19 +158,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
34021 return addr;
34022 }
34023
34024 +#ifdef CONFIG_PAX_RANDMMAP
34025 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
34026 +#endif
34027 +
34028 if (addr) {
34029 addr = ALIGN(addr, huge_page_size(h));
34030 vma = find_vma(mm, addr);
34031 - if (TASK_SIZE - len >= addr &&
34032 - (!vma || addr + len <= vma->vm_start))
34033 + if (pax_task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
34034 return addr;
34035 }
34036 if (mm->get_unmapped_area == arch_get_unmapped_area)
34037 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
34038 - pgoff, flags);
34039 + pgoff, flags, offset);
34040 else
34041 return hugetlb_get_unmapped_area_topdown(file, addr, len,
34042 - pgoff, flags);
34043 + pgoff, flags, offset);
34044 }
34045 #endif /* CONFIG_HUGETLB_PAGE */
34046
34047 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
34048 index 8533b46..8c83176 100644
34049 --- a/arch/x86/mm/init.c
34050 +++ b/arch/x86/mm/init.c
34051 @@ -4,6 +4,7 @@
34052 #include <linux/swap.h>
34053 #include <linux/memblock.h>
34054 #include <linux/bootmem.h> /* for max_low_pfn */
34055 +#include <linux/tboot.h>
34056
34057 #include <asm/cacheflush.h>
34058 #include <asm/e820.h>
34059 @@ -17,6 +18,8 @@
34060 #include <asm/proto.h>
34061 #include <asm/dma.h> /* for MAX_DMA_PFN */
34062 #include <asm/microcode.h>
34063 +#include <asm/desc.h>
34064 +#include <asm/bios_ebda.h>
34065
34066 /*
34067 * We need to define the tracepoints somewhere, and tlb.c
34068 @@ -615,7 +618,18 @@ void __init init_mem_mapping(void)
34069 early_ioremap_page_table_range_init();
34070 #endif
34071
34072 +#ifdef CONFIG_PAX_PER_CPU_PGD
34073 + clone_pgd_range(get_cpu_pgd(0, kernel) + KERNEL_PGD_BOUNDARY,
34074 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
34075 + KERNEL_PGD_PTRS);
34076 + clone_pgd_range(get_cpu_pgd(0, user) + KERNEL_PGD_BOUNDARY,
34077 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
34078 + KERNEL_PGD_PTRS);
34079 + load_cr3(get_cpu_pgd(0, kernel));
34080 +#else
34081 load_cr3(swapper_pg_dir);
34082 +#endif
34083 +
34084 __flush_tlb_all();
34085
34086 early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
34087 @@ -631,10 +645,40 @@ void __init init_mem_mapping(void)
34088 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
34089 * mmio resources as well as potential bios/acpi data regions.
34090 */
34091 +
34092 +#ifdef CONFIG_GRKERNSEC_KMEM
34093 +static unsigned int ebda_start __read_only;
34094 +static unsigned int ebda_end __read_only;
34095 +#endif
34096 +
34097 int devmem_is_allowed(unsigned long pagenr)
34098 {
34099 - if (pagenr < 256)
34100 +#ifdef CONFIG_GRKERNSEC_KMEM
34101 + /* allow BDA */
34102 + if (!pagenr)
34103 return 1;
34104 + /* allow EBDA */
34105 + if (pagenr >= ebda_start && pagenr < ebda_end)
34106 + return 1;
34107 + /* if tboot is in use, allow access to its hardcoded serial log range */
34108 + if (tboot_enabled() && ((0x60000 >> PAGE_SHIFT) <= pagenr) && (pagenr < (0x68000 >> PAGE_SHIFT)))
34109 + return 1;
34110 +#else
34111 + if (!pagenr)
34112 + return 1;
34113 +#ifdef CONFIG_VM86
34114 + if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
34115 + return 1;
34116 +#endif
34117 +#endif
34118 +
34119 + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
34120 + return 1;
34121 +#ifdef CONFIG_GRKERNSEC_KMEM
34122 + /* throw out everything else below 1MB */
34123 + if (pagenr <= 256)
34124 + return 0;
34125 +#endif
34126 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
34127 return 0;
34128 if (!page_is_ram(pagenr))
34129 @@ -680,8 +724,127 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
34130 #endif
34131 }
34132
34133 +#ifdef CONFIG_GRKERNSEC_KMEM
34134 +static inline void gr_init_ebda(void)
34135 +{
34136 + unsigned int ebda_addr;
34137 + unsigned int ebda_size = 0;
34138 +
34139 + ebda_addr = get_bios_ebda();
34140 + if (ebda_addr) {
34141 + ebda_size = *(unsigned char *)phys_to_virt(ebda_addr);
34142 + ebda_size <<= 10;
34143 + }
34144 + if (ebda_addr && ebda_size) {
34145 + ebda_start = ebda_addr >> PAGE_SHIFT;
34146 + ebda_end = min((unsigned int)PAGE_ALIGN(ebda_addr + ebda_size), (unsigned int)0xa0000) >> PAGE_SHIFT;
34147 + } else {
34148 + ebda_start = 0x9f000 >> PAGE_SHIFT;
34149 + ebda_end = 0xa0000 >> PAGE_SHIFT;
34150 + }
34151 +}
34152 +#else
34153 +static inline void gr_init_ebda(void) { }
34154 +#endif
34155 +
34156 void free_initmem(void)
34157 {
34158 +#ifdef CONFIG_PAX_KERNEXEC
34159 +#ifdef CONFIG_X86_32
34160 + /* PaX: limit KERNEL_CS to actual size */
34161 + unsigned long addr, limit;
34162 + struct desc_struct d;
34163 + int cpu;
34164 +#else
34165 + pgd_t *pgd;
34166 + pud_t *pud;
34167 + pmd_t *pmd;
34168 + unsigned long addr, end;
34169 +#endif
34170 +#endif
34171 +
34172 + gr_init_ebda();
34173 +
34174 +#ifdef CONFIG_PAX_KERNEXEC
34175 +#ifdef CONFIG_X86_32
34176 + limit = paravirt_enabled() ? ktva_ktla(0xffffffff) : (unsigned long)&_etext;
34177 + limit = (limit - 1UL) >> PAGE_SHIFT;
34178 +
34179 + memset(__LOAD_PHYSICAL_ADDR + PAGE_OFFSET, POISON_FREE_INITMEM, PAGE_SIZE);
34180 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
34181 + pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC);
34182 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S);
34183 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEXEC_KERNEL_CS, &d, DESCTYPE_S);
34184 + }
34185 +
34186 + /* PaX: make KERNEL_CS read-only */
34187 + addr = PFN_ALIGN(ktla_ktva((unsigned long)&_text));
34188 + if (!paravirt_enabled())
34189 + set_memory_ro(addr, (PFN_ALIGN(_sdata) - addr) >> PAGE_SHIFT);
34190 +/*
34191 + for (addr = ktla_ktva((unsigned long)&_text); addr < (unsigned long)&_sdata; addr += PMD_SIZE) {
34192 + pgd = pgd_offset_k(addr);
34193 + pud = pud_offset(pgd, addr);
34194 + pmd = pmd_offset(pud, addr);
34195 + set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34196 + }
34197 +*/
34198 +#ifdef CONFIG_X86_PAE
34199 + set_memory_nx(PFN_ALIGN(__init_begin), (PFN_ALIGN(__init_end) - PFN_ALIGN(__init_begin)) >> PAGE_SHIFT);
34200 +/*
34201 + for (addr = (unsigned long)&__init_begin; addr < (unsigned long)&__init_end; addr += PMD_SIZE) {
34202 + pgd = pgd_offset_k(addr);
34203 + pud = pud_offset(pgd, addr);
34204 + pmd = pmd_offset(pud, addr);
34205 + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
34206 + }
34207 +*/
34208 +#endif
34209 +
34210 +#ifdef CONFIG_MODULES
34211 + set_memory_4k((unsigned long)MODULES_EXEC_VADDR, (MODULES_EXEC_END - MODULES_EXEC_VADDR) >> PAGE_SHIFT);
34212 +#endif
34213 +
34214 +#else
34215 + /* PaX: make kernel code/rodata read-only, rest non-executable */
34216 + set_memory_ro((unsigned long)_text, ((unsigned long)(_sdata - _text) >> PAGE_SHIFT));
34217 + set_memory_nx((unsigned long)_sdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sdata) >> PAGE_SHIFT);
34218 +
34219 + for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) {
34220 + pgd = pgd_offset_k(addr);
34221 + pud = pud_offset(pgd, addr);
34222 + pmd = pmd_offset(pud, addr);
34223 + if (!pmd_present(*pmd))
34224 + continue;
34225 + if (addr >= (unsigned long)_text)
34226 + BUG_ON(!pmd_large(*pmd));
34227 + if ((unsigned long)_text <= addr && addr < (unsigned long)_sdata)
34228 + BUG_ON(pmd_write(*pmd));
34229 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34230 + else
34231 + BUG_ON(!(pmd_flags(*pmd) & _PAGE_NX));
34232 +// set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
34233 + }
34234 +
34235 + addr = (unsigned long)__va(__pa(__START_KERNEL_map));
34236 + end = addr + KERNEL_IMAGE_SIZE;
34237 + for (; addr < end; addr += PMD_SIZE) {
34238 + pgd = pgd_offset_k(addr);
34239 + pud = pud_offset(pgd, addr);
34240 + pmd = pmd_offset(pud, addr);
34241 + if (!pmd_present(*pmd))
34242 + continue;
34243 + if (addr >= (unsigned long)_text)
34244 + BUG_ON(!pmd_large(*pmd));
34245 + if ((unsigned long)__va(__pa(_text)) <= addr && addr < (unsigned long)__va(__pa(_sdata)))
34246 + BUG_ON(pmd_write(*pmd));
34247 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34248 + }
34249 +#endif
34250 +
34251 + flush_tlb_all();
34252 +#endif
34253 +
34254 free_init_pages("unused kernel",
34255 (unsigned long)(&__init_begin),
34256 (unsigned long)(&__init_end));
34257 diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
34258 index 68aec42..95ad5d3 100644
34259 --- a/arch/x86/mm/init_32.c
34260 +++ b/arch/x86/mm/init_32.c
34261 @@ -62,33 +62,6 @@ static noinline int do_test_wp_bit(void);
34262 bool __read_mostly __vmalloc_start_set = false;
34263
34264 /*
34265 - * Creates a middle page table and puts a pointer to it in the
34266 - * given global directory entry. This only returns the gd entry
34267 - * in non-PAE compilation mode, since the middle layer is folded.
34268 - */
34269 -static pmd_t * __init one_md_table_init(pgd_t *pgd)
34270 -{
34271 - pud_t *pud;
34272 - pmd_t *pmd_table;
34273 -
34274 -#ifdef CONFIG_X86_PAE
34275 - if (!(pgd_val(*pgd) & _PAGE_PRESENT)) {
34276 - pmd_table = (pmd_t *)alloc_low_page();
34277 - paravirt_alloc_pmd(&init_mm, __pa(pmd_table) >> PAGE_SHIFT);
34278 - set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
34279 - pud = pud_offset(pgd, 0);
34280 - BUG_ON(pmd_table != pmd_offset(pud, 0));
34281 -
34282 - return pmd_table;
34283 - }
34284 -#endif
34285 - pud = pud_offset(pgd, 0);
34286 - pmd_table = pmd_offset(pud, 0);
34287 -
34288 - return pmd_table;
34289 -}
34290 -
34291 -/*
34292 * Create a page table and place a pointer to it in a middle page
34293 * directory entry:
34294 */
34295 @@ -98,13 +71,28 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
34296 pte_t *page_table = (pte_t *)alloc_low_page();
34297
34298 paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT);
34299 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
34300 + set_pmd(pmd, __pmd(__pa(page_table) | _KERNPG_TABLE));
34301 +#else
34302 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
34303 +#endif
34304 BUG_ON(page_table != pte_offset_kernel(pmd, 0));
34305 }
34306
34307 return pte_offset_kernel(pmd, 0);
34308 }
34309
34310 +static pmd_t * __init one_md_table_init(pgd_t *pgd)
34311 +{
34312 + pud_t *pud;
34313 + pmd_t *pmd_table;
34314 +
34315 + pud = pud_offset(pgd, 0);
34316 + pmd_table = pmd_offset(pud, 0);
34317 +
34318 + return pmd_table;
34319 +}
34320 +
34321 pmd_t * __init populate_extra_pmd(unsigned long vaddr)
34322 {
34323 int pgd_idx = pgd_index(vaddr);
34324 @@ -209,6 +197,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34325 int pgd_idx, pmd_idx;
34326 unsigned long vaddr;
34327 pgd_t *pgd;
34328 + pud_t *pud;
34329 pmd_t *pmd;
34330 pte_t *pte = NULL;
34331 unsigned long count = page_table_range_init_count(start, end);
34332 @@ -223,8 +212,13 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34333 pgd = pgd_base + pgd_idx;
34334
34335 for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
34336 - pmd = one_md_table_init(pgd);
34337 - pmd = pmd + pmd_index(vaddr);
34338 + pud = pud_offset(pgd, vaddr);
34339 + pmd = pmd_offset(pud, vaddr);
34340 +
34341 +#ifdef CONFIG_X86_PAE
34342 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
34343 +#endif
34344 +
34345 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
34346 pmd++, pmd_idx++) {
34347 pte = page_table_kmap_check(one_page_table_init(pmd),
34348 @@ -236,11 +230,20 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34349 }
34350 }
34351
34352 -static inline int is_kernel_text(unsigned long addr)
34353 +static inline int is_kernel_text(unsigned long start, unsigned long end)
34354 {
34355 - if (addr >= (unsigned long)_text && addr <= (unsigned long)__init_end)
34356 - return 1;
34357 - return 0;
34358 + if ((start >= ktla_ktva((unsigned long)_etext) ||
34359 + end <= ktla_ktva((unsigned long)_stext)) &&
34360 + (start >= ktla_ktva((unsigned long)_einittext) ||
34361 + end <= ktla_ktva((unsigned long)_sinittext)) &&
34362 +
34363 +#ifdef CONFIG_ACPI_SLEEP
34364 + (start >= (unsigned long)__va(acpi_wakeup_address) + 0x4000 || end <= (unsigned long)__va(acpi_wakeup_address)) &&
34365 +#endif
34366 +
34367 + (start > (unsigned long)__va(0xfffff) || end <= (unsigned long)__va(0xc0000)))
34368 + return 0;
34369 + return 1;
34370 }
34371
34372 /*
34373 @@ -257,9 +260,10 @@ kernel_physical_mapping_init(unsigned long start,
34374 unsigned long last_map_addr = end;
34375 unsigned long start_pfn, end_pfn;
34376 pgd_t *pgd_base = swapper_pg_dir;
34377 - int pgd_idx, pmd_idx, pte_ofs;
34378 + unsigned int pgd_idx, pmd_idx, pte_ofs;
34379 unsigned long pfn;
34380 pgd_t *pgd;
34381 + pud_t *pud;
34382 pmd_t *pmd;
34383 pte_t *pte;
34384 unsigned pages_2m, pages_4k;
34385 @@ -292,8 +296,13 @@ repeat:
34386 pfn = start_pfn;
34387 pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
34388 pgd = pgd_base + pgd_idx;
34389 - for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
34390 - pmd = one_md_table_init(pgd);
34391 + for (; pgd_idx < PTRS_PER_PGD && pfn < max_low_pfn; pgd++, pgd_idx++) {
34392 + pud = pud_offset(pgd, 0);
34393 + pmd = pmd_offset(pud, 0);
34394 +
34395 +#ifdef CONFIG_X86_PAE
34396 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
34397 +#endif
34398
34399 if (pfn >= end_pfn)
34400 continue;
34401 @@ -305,14 +314,13 @@ repeat:
34402 #endif
34403 for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn;
34404 pmd++, pmd_idx++) {
34405 - unsigned int addr = pfn * PAGE_SIZE + PAGE_OFFSET;
34406 + unsigned long address = pfn * PAGE_SIZE + PAGE_OFFSET;
34407
34408 /*
34409 * Map with big pages if possible, otherwise
34410 * create normal page tables:
34411 */
34412 if (use_pse) {
34413 - unsigned int addr2;
34414 pgprot_t prot = PAGE_KERNEL_LARGE;
34415 /*
34416 * first pass will use the same initial
34417 @@ -323,11 +331,7 @@ repeat:
34418 _PAGE_PSE);
34419
34420 pfn &= PMD_MASK >> PAGE_SHIFT;
34421 - addr2 = (pfn + PTRS_PER_PTE-1) * PAGE_SIZE +
34422 - PAGE_OFFSET + PAGE_SIZE-1;
34423 -
34424 - if (is_kernel_text(addr) ||
34425 - is_kernel_text(addr2))
34426 + if (is_kernel_text(address, address + PMD_SIZE))
34427 prot = PAGE_KERNEL_LARGE_EXEC;
34428
34429 pages_2m++;
34430 @@ -344,7 +348,7 @@ repeat:
34431 pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
34432 pte += pte_ofs;
34433 for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn;
34434 - pte++, pfn++, pte_ofs++, addr += PAGE_SIZE) {
34435 + pte++, pfn++, pte_ofs++, address += PAGE_SIZE) {
34436 pgprot_t prot = PAGE_KERNEL;
34437 /*
34438 * first pass will use the same initial
34439 @@ -352,7 +356,7 @@ repeat:
34440 */
34441 pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR);
34442
34443 - if (is_kernel_text(addr))
34444 + if (is_kernel_text(address, address + PAGE_SIZE))
34445 prot = PAGE_KERNEL_EXEC;
34446
34447 pages_4k++;
34448 @@ -475,7 +479,7 @@ void __init native_pagetable_init(void)
34449
34450 pud = pud_offset(pgd, va);
34451 pmd = pmd_offset(pud, va);
34452 - if (!pmd_present(*pmd))
34453 + if (!pmd_present(*pmd)) // PAX TODO || pmd_large(*pmd))
34454 break;
34455
34456 /* should not be large page here */
34457 @@ -533,12 +537,10 @@ void __init early_ioremap_page_table_range_init(void)
34458
34459 static void __init pagetable_init(void)
34460 {
34461 - pgd_t *pgd_base = swapper_pg_dir;
34462 -
34463 - permanent_kmaps_init(pgd_base);
34464 + permanent_kmaps_init(swapper_pg_dir);
34465 }
34466
34467 -pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL);
34468 +pteval_t __supported_pte_mask __read_only = ~(_PAGE_NX | _PAGE_GLOBAL);
34469 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34470
34471 /* user-defined highmem size */
34472 @@ -788,10 +790,10 @@ void __init mem_init(void)
34473 ((unsigned long)&__init_end -
34474 (unsigned long)&__init_begin) >> 10,
34475
34476 - (unsigned long)&_etext, (unsigned long)&_edata,
34477 - ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
34478 + (unsigned long)&_sdata, (unsigned long)&_edata,
34479 + ((unsigned long)&_edata - (unsigned long)&_sdata) >> 10,
34480
34481 - (unsigned long)&_text, (unsigned long)&_etext,
34482 + ktla_ktva((unsigned long)&_text), ktla_ktva((unsigned long)&_etext),
34483 ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
34484
34485 /*
34486 @@ -885,6 +887,7 @@ void set_kernel_text_rw(void)
34487 if (!kernel_set_to_readonly)
34488 return;
34489
34490 + start = ktla_ktva(start);
34491 pr_debug("Set kernel text: %lx - %lx for read write\n",
34492 start, start+size);
34493
34494 @@ -899,6 +902,7 @@ void set_kernel_text_ro(void)
34495 if (!kernel_set_to_readonly)
34496 return;
34497
34498 + start = ktla_ktva(start);
34499 pr_debug("Set kernel text: %lx - %lx for read only\n",
34500 start, start+size);
34501
34502 @@ -927,6 +931,7 @@ void mark_rodata_ro(void)
34503 unsigned long start = PFN_ALIGN(_text);
34504 unsigned long size = PFN_ALIGN(_etext) - start;
34505
34506 + start = ktla_ktva(start);
34507 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
34508 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
34509 size >> 10);
34510 diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
34511 index f9977a7..21a5082 100644
34512 --- a/arch/x86/mm/init_64.c
34513 +++ b/arch/x86/mm/init_64.c
34514 @@ -136,7 +136,7 @@ int kernel_ident_mapping_init(struct x86_mapping_info *info, pgd_t *pgd_page,
34515 * around without checking the pgd every time.
34516 */
34517
34518 -pteval_t __supported_pte_mask __read_mostly = ~0;
34519 +pteval_t __supported_pte_mask __read_only = ~_PAGE_NX;
34520 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34521
34522 int force_personality32;
34523 @@ -169,7 +169,12 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34524
34525 for (address = start; address <= end; address += PGDIR_SIZE) {
34526 const pgd_t *pgd_ref = pgd_offset_k(address);
34527 +
34528 +#ifdef CONFIG_PAX_PER_CPU_PGD
34529 + unsigned long cpu;
34530 +#else
34531 struct page *page;
34532 +#endif
34533
34534 /*
34535 * When it is called after memory hot remove, pgd_none()
34536 @@ -180,6 +185,25 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34537 continue;
34538
34539 spin_lock(&pgd_lock);
34540 +
34541 +#ifdef CONFIG_PAX_PER_CPU_PGD
34542 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34543 + pgd_t *pgd = pgd_offset_cpu(cpu, user, address);
34544 +
34545 + if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34546 + BUG_ON(pgd_page_vaddr(*pgd)
34547 + != pgd_page_vaddr(*pgd_ref));
34548 +
34549 + if (removed) {
34550 + if (pgd_none(*pgd_ref) && !pgd_none(*pgd))
34551 + pgd_clear(pgd);
34552 + } else {
34553 + if (pgd_none(*pgd))
34554 + set_pgd(pgd, *pgd_ref);
34555 + }
34556 +
34557 + pgd = pgd_offset_cpu(cpu, kernel, address);
34558 +#else
34559 list_for_each_entry(page, &pgd_list, lru) {
34560 pgd_t *pgd;
34561 spinlock_t *pgt_lock;
34562 @@ -188,6 +212,7 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34563 /* the pgt_lock only for Xen */
34564 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
34565 spin_lock(pgt_lock);
34566 +#endif
34567
34568 if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34569 BUG_ON(pgd_page_vaddr(*pgd)
34570 @@ -201,7 +226,10 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34571 set_pgd(pgd, *pgd_ref);
34572 }
34573
34574 +#ifndef CONFIG_PAX_PER_CPU_PGD
34575 spin_unlock(pgt_lock);
34576 +#endif
34577 +
34578 }
34579 spin_unlock(&pgd_lock);
34580 }
34581 @@ -234,7 +262,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
34582 {
34583 if (pgd_none(*pgd)) {
34584 pud_t *pud = (pud_t *)spp_getpage();
34585 - pgd_populate(&init_mm, pgd, pud);
34586 + pgd_populate_kernel(&init_mm, pgd, pud);
34587 if (pud != pud_offset(pgd, 0))
34588 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
34589 pud, pud_offset(pgd, 0));
34590 @@ -246,7 +274,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
34591 {
34592 if (pud_none(*pud)) {
34593 pmd_t *pmd = (pmd_t *) spp_getpage();
34594 - pud_populate(&init_mm, pud, pmd);
34595 + pud_populate_kernel(&init_mm, pud, pmd);
34596 if (pmd != pmd_offset(pud, 0))
34597 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
34598 pmd, pmd_offset(pud, 0));
34599 @@ -275,7 +303,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
34600 pmd = fill_pmd(pud, vaddr);
34601 pte = fill_pte(pmd, vaddr);
34602
34603 + pax_open_kernel();
34604 set_pte(pte, new_pte);
34605 + pax_close_kernel();
34606
34607 /*
34608 * It's enough to flush this one mapping.
34609 @@ -337,14 +367,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
34610 pgd = pgd_offset_k((unsigned long)__va(phys));
34611 if (pgd_none(*pgd)) {
34612 pud = (pud_t *) spp_getpage();
34613 - set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE |
34614 - _PAGE_USER));
34615 + set_pgd(pgd, __pgd(__pa(pud) | _PAGE_TABLE));
34616 }
34617 pud = pud_offset(pgd, (unsigned long)__va(phys));
34618 if (pud_none(*pud)) {
34619 pmd = (pmd_t *) spp_getpage();
34620 - set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE |
34621 - _PAGE_USER));
34622 + set_pud(pud, __pud(__pa(pmd) | _PAGE_TABLE));
34623 }
34624 pmd = pmd_offset(pud, phys);
34625 BUG_ON(!pmd_none(*pmd));
34626 @@ -585,7 +613,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
34627 prot);
34628
34629 spin_lock(&init_mm.page_table_lock);
34630 - pud_populate(&init_mm, pud, pmd);
34631 + pud_populate_kernel(&init_mm, pud, pmd);
34632 spin_unlock(&init_mm.page_table_lock);
34633 }
34634 __flush_tlb_all();
34635 @@ -626,7 +654,7 @@ kernel_physical_mapping_init(unsigned long start,
34636 page_size_mask);
34637
34638 spin_lock(&init_mm.page_table_lock);
34639 - pgd_populate(&init_mm, pgd, pud);
34640 + pgd_populate_kernel(&init_mm, pgd, pud);
34641 spin_unlock(&init_mm.page_table_lock);
34642 pgd_changed = true;
34643 }
34644 diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
34645 index 9c0ff04..9020d5f 100644
34646 --- a/arch/x86/mm/iomap_32.c
34647 +++ b/arch/x86/mm/iomap_32.c
34648 @@ -65,7 +65,11 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
34649 type = kmap_atomic_idx_push();
34650 idx = type + KM_TYPE_NR * smp_processor_id();
34651 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34652 +
34653 + pax_open_kernel();
34654 set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
34655 + pax_close_kernel();
34656 +
34657 arch_flush_lazy_mmu_mode();
34658
34659 return (void *)vaddr;
34660 diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
34661 index b9c78f3..c757af4 100644
34662 --- a/arch/x86/mm/ioremap.c
34663 +++ b/arch/x86/mm/ioremap.c
34664 @@ -59,8 +59,8 @@ static int __ioremap_check_ram(unsigned long start_pfn, unsigned long nr_pages,
34665 unsigned long i;
34666
34667 for (i = 0; i < nr_pages; ++i)
34668 - if (pfn_valid(start_pfn + i) &&
34669 - !PageReserved(pfn_to_page(start_pfn + i)))
34670 + if (pfn_valid(start_pfn + i) && (start_pfn + i >= 0x100 ||
34671 + !PageReserved(pfn_to_page(start_pfn + i))))
34672 return 1;
34673
34674 return 0;
34675 @@ -332,7 +332,7 @@ EXPORT_SYMBOL(ioremap_prot);
34676 *
34677 * Caller must ensure there is only one unmapping for the same pointer.
34678 */
34679 -void iounmap(volatile void __iomem *addr)
34680 +void iounmap(const volatile void __iomem *addr)
34681 {
34682 struct vm_struct *p, *o;
34683
34684 @@ -395,31 +395,37 @@ int __init arch_ioremap_pmd_supported(void)
34685 */
34686 void *xlate_dev_mem_ptr(phys_addr_t phys)
34687 {
34688 - unsigned long start = phys & PAGE_MASK;
34689 - unsigned long offset = phys & ~PAGE_MASK;
34690 - void *vaddr;
34691 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34692
34693 - /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
34694 - if (page_is_ram(start >> PAGE_SHIFT))
34695 - return __va(phys);
34696 + if (page_is_ram(pfn)) {
34697 +#ifdef CONFIG_HIGHMEM
34698 + if (pfn >= max_low_pfn)
34699 + return kmap_high(pfn_to_page(pfn));
34700 + else
34701 +#endif
34702 + return __va(phys);
34703 + }
34704
34705 - vaddr = ioremap_cache(start, PAGE_SIZE);
34706 - /* Only add the offset on success and return NULL if the ioremap() failed: */
34707 - if (vaddr)
34708 - vaddr += offset;
34709 -
34710 - return vaddr;
34711 + return (void __force *)ioremap_cache(phys, 1);
34712 }
34713
34714 void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr)
34715 {
34716 - if (page_is_ram(phys >> PAGE_SHIFT))
34717 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34718 +
34719 + if (page_is_ram(pfn)) {
34720 +#ifdef CONFIG_HIGHMEM
34721 + if (pfn >= max_low_pfn)
34722 + kunmap_high(pfn_to_page(pfn));
34723 +#endif
34724 return;
34725 + }
34726
34727 - iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
34728 + iounmap((void __iomem __force *)addr);
34729 }
34730
34731 -static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
34732 +static pte_t __bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_rodata;
34733 +static pte_t *bm_pte __read_only = __bm_pte;
34734
34735 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
34736 {
34737 @@ -455,8 +461,14 @@ void __init early_ioremap_init(void)
34738 early_ioremap_setup();
34739
34740 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
34741 - memset(bm_pte, 0, sizeof(bm_pte));
34742 - pmd_populate_kernel(&init_mm, pmd, bm_pte);
34743 + if (pmd_none(*pmd))
34744 +#ifdef CONFIG_COMPAT_VDSO
34745 + pmd_populate_user(&init_mm, pmd, __bm_pte);
34746 +#else
34747 + pmd_populate_kernel(&init_mm, pmd, __bm_pte);
34748 +#endif
34749 + else
34750 + bm_pte = (pte_t *)pmd_page_vaddr(*pmd);
34751
34752 /*
34753 * The boot-ioremap range spans multiple pmds, for which
34754 diff --git a/arch/x86/mm/kmemcheck/kmemcheck.c b/arch/x86/mm/kmemcheck/kmemcheck.c
34755 index b4f2e7e..96c9c3e 100644
34756 --- a/arch/x86/mm/kmemcheck/kmemcheck.c
34757 +++ b/arch/x86/mm/kmemcheck/kmemcheck.c
34758 @@ -628,9 +628,9 @@ bool kmemcheck_fault(struct pt_regs *regs, unsigned long address,
34759 * memory (e.g. tracked pages)? For now, we need this to avoid
34760 * invoking kmemcheck for PnP BIOS calls.
34761 */
34762 - if (regs->flags & X86_VM_MASK)
34763 + if (v8086_mode(regs))
34764 return false;
34765 - if (regs->cs != __KERNEL_CS)
34766 + if (regs->cs != __KERNEL_CS && regs->cs != __KERNEXEC_KERNEL_CS)
34767 return false;
34768
34769 pte = kmemcheck_pte_lookup(address);
34770 diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
34771 index 844b06d..f363c86 100644
34772 --- a/arch/x86/mm/mmap.c
34773 +++ b/arch/x86/mm/mmap.c
34774 @@ -52,7 +52,7 @@ static unsigned long stack_maxrandom_size(void)
34775 * Leave an at least ~128 MB hole with possible stack randomization.
34776 */
34777 #define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
34778 -#define MAX_GAP (TASK_SIZE/6*5)
34779 +#define MAX_GAP (pax_task_size/6*5)
34780
34781 static int mmap_is_legacy(void)
34782 {
34783 @@ -81,27 +81,40 @@ unsigned long arch_mmap_rnd(void)
34784 return rnd << PAGE_SHIFT;
34785 }
34786
34787 -static unsigned long mmap_base(unsigned long rnd)
34788 +static unsigned long mmap_base(struct mm_struct *mm, unsigned long rnd)
34789 {
34790 unsigned long gap = rlimit(RLIMIT_STACK);
34791 + unsigned long pax_task_size = TASK_SIZE;
34792 +
34793 +#ifdef CONFIG_PAX_SEGMEXEC
34794 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34795 + pax_task_size = SEGMEXEC_TASK_SIZE;
34796 +#endif
34797
34798 if (gap < MIN_GAP)
34799 gap = MIN_GAP;
34800 else if (gap > MAX_GAP)
34801 gap = MAX_GAP;
34802
34803 - return PAGE_ALIGN(TASK_SIZE - gap - rnd);
34804 + return PAGE_ALIGN(pax_task_size - gap - rnd);
34805 }
34806
34807 /*
34808 * Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64
34809 * does, but not when emulating X86_32
34810 */
34811 -static unsigned long mmap_legacy_base(unsigned long rnd)
34812 +static unsigned long mmap_legacy_base(struct mm_struct *mm, unsigned long rnd)
34813 {
34814 - if (mmap_is_ia32())
34815 + if (mmap_is_ia32()) {
34816 +
34817 +#ifdef CONFIG_PAX_SEGMEXEC
34818 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34819 + return SEGMEXEC_TASK_UNMAPPED_BASE;
34820 + else
34821 +#endif
34822 +
34823 return TASK_UNMAPPED_BASE;
34824 - else
34825 + } else
34826 return TASK_UNMAPPED_BASE + rnd;
34827 }
34828
34829 @@ -113,18 +126,29 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
34830 {
34831 unsigned long random_factor = 0UL;
34832
34833 +#ifdef CONFIG_PAX_RANDMMAP
34834 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
34835 +#endif
34836 if (current->flags & PF_RANDOMIZE)
34837 random_factor = arch_mmap_rnd();
34838
34839 - mm->mmap_legacy_base = mmap_legacy_base(random_factor);
34840 + mm->mmap_legacy_base = mmap_legacy_base(mm, random_factor);
34841
34842 if (mmap_is_legacy()) {
34843 mm->mmap_base = mm->mmap_legacy_base;
34844 mm->get_unmapped_area = arch_get_unmapped_area;
34845 } else {
34846 - mm->mmap_base = mmap_base(random_factor);
34847 + mm->mmap_base = mmap_base(mm, random_factor);
34848 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
34849 }
34850 +
34851 +#ifdef CONFIG_PAX_RANDMMAP
34852 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
34853 + mm->mmap_legacy_base += mm->delta_mmap;
34854 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
34855 + }
34856 +#endif
34857 +
34858 }
34859
34860 const char *arch_vma_name(struct vm_area_struct *vma)
34861 diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
34862 index 0057a7acc..95c7edd 100644
34863 --- a/arch/x86/mm/mmio-mod.c
34864 +++ b/arch/x86/mm/mmio-mod.c
34865 @@ -194,7 +194,7 @@ static void pre(struct kmmio_probe *p, struct pt_regs *regs,
34866 break;
34867 default:
34868 {
34869 - unsigned char *ip = (unsigned char *)instptr;
34870 + unsigned char *ip = (unsigned char *)ktla_ktva(instptr);
34871 my_trace->opcode = MMIO_UNKNOWN_OP;
34872 my_trace->width = 0;
34873 my_trace->value = (*ip) << 16 | *(ip + 1) << 8 |
34874 @@ -234,7 +234,7 @@ static void post(struct kmmio_probe *p, unsigned long condition,
34875 static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34876 void __iomem *addr)
34877 {
34878 - static atomic_t next_id;
34879 + static atomic_unchecked_t next_id;
34880 struct remap_trace *trace = kmalloc(sizeof(*trace), GFP_KERNEL);
34881 /* These are page-unaligned. */
34882 struct mmiotrace_map map = {
34883 @@ -258,7 +258,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34884 .private = trace
34885 },
34886 .phys = offset,
34887 - .id = atomic_inc_return(&next_id)
34888 + .id = atomic_inc_return_unchecked(&next_id)
34889 };
34890 map.map_id = trace->id;
34891
34892 @@ -290,7 +290,7 @@ void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
34893 ioremap_trace_core(offset, size, addr);
34894 }
34895
34896 -static void iounmap_trace_core(volatile void __iomem *addr)
34897 +static void iounmap_trace_core(const volatile void __iomem *addr)
34898 {
34899 struct mmiotrace_map map = {
34900 .phys = 0,
34901 @@ -328,7 +328,7 @@ not_enabled:
34902 }
34903 }
34904
34905 -void mmiotrace_iounmap(volatile void __iomem *addr)
34906 +void mmiotrace_iounmap(const volatile void __iomem *addr)
34907 {
34908 might_sleep();
34909 if (is_enabled()) /* recheck and proper locking in *_core() */
34910 diff --git a/arch/x86/mm/mpx.c b/arch/x86/mm/mpx.c
34911 index db1b0bc..c28f618 100644
34912 --- a/arch/x86/mm/mpx.c
34913 +++ b/arch/x86/mm/mpx.c
34914 @@ -622,6 +622,29 @@ static unsigned long mpx_bd_entry_to_bt_addr(struct mm_struct *mm,
34915 }
34916
34917 /*
34918 + * We only want to do a 4-byte get_user() on 32-bit. Otherwise,
34919 + * we might run off the end of the bounds table if we are on
34920 + * a 64-bit kernel and try to get 8 bytes.
34921 + */
34922 +int get_user_bd_entry(struct mm_struct *mm, unsigned long *bd_entry_ret,
34923 + long __user *bd_entry_ptr)
34924 +{
34925 + u32 bd_entry_32;
34926 + int ret;
34927 +
34928 + if (is_64bit_mm(mm))
34929 + return get_user(*bd_entry_ret, bd_entry_ptr);
34930 +
34931 + /*
34932 + * Note that get_user() uses the type of the *pointer* to
34933 + * establish the size of the get, not the destination.
34934 + */
34935 + ret = get_user(bd_entry_32, (u32 __user *)bd_entry_ptr);
34936 + *bd_entry_ret = bd_entry_32;
34937 + return ret;
34938 +}
34939 +
34940 +/*
34941 * Get the base of bounds tables pointed by specific bounds
34942 * directory entry.
34943 */
34944 @@ -641,7 +664,7 @@ static int get_bt_addr(struct mm_struct *mm,
34945 int need_write = 0;
34946
34947 pagefault_disable();
34948 - ret = get_user(bd_entry, bd_entry_ptr);
34949 + ret = get_user_bd_entry(mm, &bd_entry, bd_entry_ptr);
34950 pagefault_enable();
34951 if (!ret)
34952 break;
34953 @@ -736,11 +759,23 @@ static unsigned long mpx_get_bt_entry_offset_bytes(struct mm_struct *mm,
34954 */
34955 static inline unsigned long bd_entry_virt_space(struct mm_struct *mm)
34956 {
34957 - unsigned long long virt_space = (1ULL << boot_cpu_data.x86_virt_bits);
34958 - if (is_64bit_mm(mm))
34959 - return virt_space / MPX_BD_NR_ENTRIES_64;
34960 - else
34961 - return virt_space / MPX_BD_NR_ENTRIES_32;
34962 + unsigned long long virt_space;
34963 + unsigned long long GB = (1ULL << 30);
34964 +
34965 + /*
34966 + * This covers 32-bit emulation as well as 32-bit kernels
34967 + * running on 64-bit harware.
34968 + */
34969 + if (!is_64bit_mm(mm))
34970 + return (4ULL * GB) / MPX_BD_NR_ENTRIES_32;
34971 +
34972 + /*
34973 + * 'x86_virt_bits' returns what the hardware is capable
34974 + * of, and returns the full >32-bit adddress space when
34975 + * running 32-bit kernels on 64-bit hardware.
34976 + */
34977 + virt_space = (1ULL << boot_cpu_data.x86_virt_bits);
34978 + return virt_space / MPX_BD_NR_ENTRIES_64;
34979 }
34980
34981 /*
34982 diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
34983 index 4053bb5..b1ad3dc 100644
34984 --- a/arch/x86/mm/numa.c
34985 +++ b/arch/x86/mm/numa.c
34986 @@ -506,7 +506,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
34987 }
34988 }
34989
34990 -static int __init numa_register_memblks(struct numa_meminfo *mi)
34991 +static int __init __intentional_overflow(-1) numa_register_memblks(struct numa_meminfo *mi)
34992 {
34993 unsigned long uninitialized_var(pfn_align);
34994 int i, nid;
34995 diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
34996 index 727158c..54dd3ff 100644
34997 --- a/arch/x86/mm/pageattr.c
34998 +++ b/arch/x86/mm/pageattr.c
34999 @@ -260,7 +260,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
35000 */
35001 #ifdef CONFIG_PCI_BIOS
35002 if (pcibios_enabled && within(pfn, BIOS_BEGIN >> PAGE_SHIFT, BIOS_END >> PAGE_SHIFT))
35003 - pgprot_val(forbidden) |= _PAGE_NX;
35004 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
35005 #endif
35006
35007 /*
35008 @@ -268,9 +268,10 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
35009 * Does not cover __inittext since that is gone later on. On
35010 * 64bit we do not enforce !NX on the low mapping
35011 */
35012 - if (within(address, (unsigned long)_text, (unsigned long)_etext))
35013 - pgprot_val(forbidden) |= _PAGE_NX;
35014 + if (within(address, ktla_ktva((unsigned long)_text), ktla_ktva((unsigned long)_etext)))
35015 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
35016
35017 +#ifdef CONFIG_DEBUG_RODATA
35018 /*
35019 * The .rodata section needs to be read-only. Using the pfn
35020 * catches all aliases.
35021 @@ -278,6 +279,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
35022 if (within(pfn, __pa_symbol(__start_rodata) >> PAGE_SHIFT,
35023 __pa_symbol(__end_rodata) >> PAGE_SHIFT))
35024 pgprot_val(forbidden) |= _PAGE_RW;
35025 +#endif
35026
35027 #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
35028 /*
35029 @@ -316,6 +318,13 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
35030 }
35031 #endif
35032
35033 +#ifdef CONFIG_PAX_KERNEXEC
35034 + if (within(pfn, __pa(ktla_ktva((unsigned long)&_text)), __pa((unsigned long)&_sdata))) {
35035 + pgprot_val(forbidden) |= _PAGE_RW;
35036 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
35037 + }
35038 +#endif
35039 +
35040 prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
35041
35042 return prot;
35043 @@ -436,23 +445,37 @@ EXPORT_SYMBOL_GPL(slow_virt_to_phys);
35044 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
35045 {
35046 /* change init_mm */
35047 + pax_open_kernel();
35048 set_pte_atomic(kpte, pte);
35049 +
35050 #ifdef CONFIG_X86_32
35051 if (!SHARED_KERNEL_PMD) {
35052 +
35053 +#ifdef CONFIG_PAX_PER_CPU_PGD
35054 + unsigned long cpu;
35055 +#else
35056 struct page *page;
35057 +#endif
35058
35059 +#ifdef CONFIG_PAX_PER_CPU_PGD
35060 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
35061 + pgd_t *pgd = get_cpu_pgd(cpu, kernel);
35062 +#else
35063 list_for_each_entry(page, &pgd_list, lru) {
35064 - pgd_t *pgd;
35065 + pgd_t *pgd = (pgd_t *)page_address(page);
35066 +#endif
35067 +
35068 pud_t *pud;
35069 pmd_t *pmd;
35070
35071 - pgd = (pgd_t *)page_address(page) + pgd_index(address);
35072 + pgd += pgd_index(address);
35073 pud = pud_offset(pgd, address);
35074 pmd = pmd_offset(pud, address);
35075 set_pte_atomic((pte_t *)pmd, pte);
35076 }
35077 }
35078 #endif
35079 + pax_close_kernel();
35080 }
35081
35082 static int
35083 @@ -505,7 +528,8 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
35084 * up accordingly.
35085 */
35086 old_pte = *kpte;
35087 - old_prot = req_prot = pgprot_large_2_4k(pte_pgprot(old_pte));
35088 + old_prot = pte_pgprot(old_pte);
35089 + req_prot = pgprot_large_2_4k(old_prot);
35090
35091 pgprot_val(req_prot) &= ~pgprot_val(cpa->mask_clr);
35092 pgprot_val(req_prot) |= pgprot_val(cpa->mask_set);
35093 @@ -1176,7 +1200,9 @@ repeat:
35094 * Do we really change anything ?
35095 */
35096 if (pte_val(old_pte) != pte_val(new_pte)) {
35097 + pax_open_kernel();
35098 set_pte_atomic(kpte, new_pte);
35099 + pax_close_kernel();
35100 cpa->flags |= CPA_FLUSHTLB;
35101 }
35102 cpa->numpages = 1;
35103 diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
35104 index 188e3e0..5c75446 100644
35105 --- a/arch/x86/mm/pat.c
35106 +++ b/arch/x86/mm/pat.c
35107 @@ -588,7 +588,7 @@ int free_memtype(u64 start, u64 end)
35108
35109 if (!entry) {
35110 pr_info("x86/PAT: %s:%d freeing invalid memtype [mem %#010Lx-%#010Lx]\n",
35111 - current->comm, current->pid, start, end - 1);
35112 + current->comm, task_pid_nr(current), start, end - 1);
35113 return -EINVAL;
35114 }
35115
35116 @@ -711,8 +711,8 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
35117
35118 while (cursor < to) {
35119 if (!devmem_is_allowed(pfn)) {
35120 - pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx], PAT prevents it\n",
35121 - current->comm, from, to - 1);
35122 + pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx] (%#010Lx), PAT prevents it\n",
35123 + current->comm, from, to - 1, cursor);
35124 return 0;
35125 }
35126 cursor += PAGE_SIZE;
35127 @@ -782,7 +782,7 @@ int kernel_map_sync_memtype(u64 base, unsigned long size,
35128
35129 if (ioremap_change_attr((unsigned long)__va(base), id_sz, pcm) < 0) {
35130 pr_info("x86/PAT: %s:%d ioremap_change_attr failed %s for [mem %#010Lx-%#010Lx]\n",
35131 - current->comm, current->pid,
35132 + current->comm, task_pid_nr(current),
35133 cattr_name(pcm),
35134 base, (unsigned long long)(base + size-1));
35135 return -EINVAL;
35136 @@ -817,7 +817,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
35137 pcm = lookup_memtype(paddr);
35138 if (want_pcm != pcm) {
35139 pr_warn("x86/PAT: %s:%d map pfn RAM range req %s for [mem %#010Lx-%#010Lx], got %s\n",
35140 - current->comm, current->pid,
35141 + current->comm, task_pid_nr(current),
35142 cattr_name(want_pcm),
35143 (unsigned long long)paddr,
35144 (unsigned long long)(paddr + size - 1),
35145 @@ -838,7 +838,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
35146 !is_new_memtype_allowed(paddr, size, want_pcm, pcm)) {
35147 free_memtype(paddr, paddr + size);
35148 pr_err("x86/PAT: %s:%d map pfn expected mapping type %s for [mem %#010Lx-%#010Lx], got %s\n",
35149 - current->comm, current->pid,
35150 + current->comm, task_pid_nr(current),
35151 cattr_name(want_pcm),
35152 (unsigned long long)paddr,
35153 (unsigned long long)(paddr + size - 1),
35154 diff --git a/arch/x86/mm/pat_rbtree.c b/arch/x86/mm/pat_rbtree.c
35155 index 6393108..890adda 100644
35156 --- a/arch/x86/mm/pat_rbtree.c
35157 +++ b/arch/x86/mm/pat_rbtree.c
35158 @@ -161,7 +161,7 @@ success:
35159
35160 failure:
35161 pr_info("x86/PAT: %s:%d conflicting memory types %Lx-%Lx %s<->%s\n",
35162 - current->comm, current->pid, start, end,
35163 + current->comm, task_pid_nr(current), start, end,
35164 cattr_name(found_type), cattr_name(match->type));
35165 return -EBUSY;
35166 }
35167 diff --git a/arch/x86/mm/pf_in.c b/arch/x86/mm/pf_in.c
35168 index 9f0614d..92ae64a 100644
35169 --- a/arch/x86/mm/pf_in.c
35170 +++ b/arch/x86/mm/pf_in.c
35171 @@ -148,7 +148,7 @@ enum reason_type get_ins_type(unsigned long ins_addr)
35172 int i;
35173 enum reason_type rv = OTHERS;
35174
35175 - p = (unsigned char *)ins_addr;
35176 + p = (unsigned char *)ktla_ktva(ins_addr);
35177 p += skip_prefix(p, &prf);
35178 p += get_opcode(p, &opcode);
35179
35180 @@ -168,7 +168,7 @@ static unsigned int get_ins_reg_width(unsigned long ins_addr)
35181 struct prefix_bits prf;
35182 int i;
35183
35184 - p = (unsigned char *)ins_addr;
35185 + p = (unsigned char *)ktla_ktva(ins_addr);
35186 p += skip_prefix(p, &prf);
35187 p += get_opcode(p, &opcode);
35188
35189 @@ -191,7 +191,7 @@ unsigned int get_ins_mem_width(unsigned long ins_addr)
35190 struct prefix_bits prf;
35191 int i;
35192
35193 - p = (unsigned char *)ins_addr;
35194 + p = (unsigned char *)ktla_ktva(ins_addr);
35195 p += skip_prefix(p, &prf);
35196 p += get_opcode(p, &opcode);
35197
35198 @@ -415,7 +415,7 @@ unsigned long get_ins_reg_val(unsigned long ins_addr, struct pt_regs *regs)
35199 struct prefix_bits prf;
35200 int i;
35201
35202 - p = (unsigned char *)ins_addr;
35203 + p = (unsigned char *)ktla_ktva(ins_addr);
35204 p += skip_prefix(p, &prf);
35205 p += get_opcode(p, &opcode);
35206 for (i = 0; i < ARRAY_SIZE(reg_rop); i++)
35207 @@ -470,7 +470,7 @@ unsigned long get_ins_imm_val(unsigned long ins_addr)
35208 struct prefix_bits prf;
35209 int i;
35210
35211 - p = (unsigned char *)ins_addr;
35212 + p = (unsigned char *)ktla_ktva(ins_addr);
35213 p += skip_prefix(p, &prf);
35214 p += get_opcode(p, &opcode);
35215 for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
35216 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
35217 index fb0a9dd..5ab49c4 100644
35218 --- a/arch/x86/mm/pgtable.c
35219 +++ b/arch/x86/mm/pgtable.c
35220 @@ -98,10 +98,75 @@ static inline void pgd_list_del(pgd_t *pgd)
35221 list_del(&page->lru);
35222 }
35223
35224 -#define UNSHARED_PTRS_PER_PGD \
35225 - (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
35226 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
35227 +pgdval_t clone_pgd_mask __read_only = ~_PAGE_PRESENT;
35228
35229 +void __shadow_user_pgds(pgd_t *dst, const pgd_t *src)
35230 +{
35231 + unsigned int count = USER_PGD_PTRS;
35232
35233 + if (!pax_user_shadow_base)
35234 + return;
35235 +
35236 + while (count--)
35237 + *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER);
35238 +}
35239 +#endif
35240 +
35241 +#ifdef CONFIG_PAX_PER_CPU_PGD
35242 +void __clone_user_pgds(pgd_t *dst, const pgd_t *src)
35243 +{
35244 + unsigned int count = USER_PGD_PTRS;
35245 +
35246 + while (count--) {
35247 + pgd_t pgd;
35248 +
35249 +#ifdef CONFIG_X86_64
35250 + pgd = __pgd(pgd_val(*src++) | _PAGE_USER);
35251 +#else
35252 + pgd = *src++;
35253 +#endif
35254 +
35255 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
35256 + pgd = __pgd(pgd_val(pgd) & clone_pgd_mask);
35257 +#endif
35258 +
35259 + *dst++ = pgd;
35260 + }
35261 +
35262 +}
35263 +#endif
35264 +
35265 +#ifdef CONFIG_X86_64
35266 +#define pxd_t pud_t
35267 +#define pyd_t pgd_t
35268 +#define paravirt_release_pxd(pfn) paravirt_release_pud(pfn)
35269 +#define pgtable_pxd_page_ctor(page) true
35270 +#define pgtable_pxd_page_dtor(page) do {} while (0)
35271 +#define pxd_free(mm, pud) pud_free((mm), (pud))
35272 +#define pyd_populate(mm, pgd, pud) pgd_populate((mm), (pgd), (pud))
35273 +#define pyd_offset(mm, address) pgd_offset((mm), (address))
35274 +#define PYD_SIZE PGDIR_SIZE
35275 +#define mm_inc_nr_pxds(mm) do {} while (0)
35276 +#define mm_dec_nr_pxds(mm) do {} while (0)
35277 +#else
35278 +#define pxd_t pmd_t
35279 +#define pyd_t pud_t
35280 +#define paravirt_release_pxd(pfn) paravirt_release_pmd(pfn)
35281 +#define pgtable_pxd_page_ctor(page) pgtable_pmd_page_ctor(page)
35282 +#define pgtable_pxd_page_dtor(page) pgtable_pmd_page_dtor(page)
35283 +#define pxd_free(mm, pud) pmd_free((mm), (pud))
35284 +#define pyd_populate(mm, pgd, pud) pud_populate((mm), (pgd), (pud))
35285 +#define pyd_offset(mm, address) pud_offset((mm), (address))
35286 +#define PYD_SIZE PUD_SIZE
35287 +#define mm_inc_nr_pxds(mm) mm_inc_nr_pmds(mm)
35288 +#define mm_dec_nr_pxds(mm) mm_dec_nr_pmds(mm)
35289 +#endif
35290 +
35291 +#ifdef CONFIG_PAX_PER_CPU_PGD
35292 +static inline void pgd_ctor(struct mm_struct *mm, pgd_t *pgd) {}
35293 +static inline void pgd_dtor(pgd_t *pgd) {}
35294 +#else
35295 static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
35296 {
35297 BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
35298 @@ -142,6 +207,7 @@ static void pgd_dtor(pgd_t *pgd)
35299 pgd_list_del(pgd);
35300 spin_unlock(&pgd_lock);
35301 }
35302 +#endif
35303
35304 /*
35305 * List of all pgd's needed for non-PAE so it can invalidate entries
35306 @@ -154,7 +220,7 @@ static void pgd_dtor(pgd_t *pgd)
35307 * -- nyc
35308 */
35309
35310 -#ifdef CONFIG_X86_PAE
35311 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
35312 /*
35313 * In PAE mode, we need to do a cr3 reload (=tlb flush) when
35314 * updating the top-level pagetable entries to guarantee the
35315 @@ -166,7 +232,7 @@ static void pgd_dtor(pgd_t *pgd)
35316 * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
35317 * and initialize the kernel pmds here.
35318 */
35319 -#define PREALLOCATED_PMDS UNSHARED_PTRS_PER_PGD
35320 +#define PREALLOCATED_PXDS (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
35321
35322 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
35323 {
35324 @@ -184,46 +250,48 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
35325 */
35326 flush_tlb_mm(mm);
35327 }
35328 +#elif defined(CONFIG_X86_64) && defined(CONFIG_PAX_PER_CPU_PGD)
35329 +#define PREALLOCATED_PXDS USER_PGD_PTRS
35330 #else /* !CONFIG_X86_PAE */
35331
35332 /* No need to prepopulate any pagetable entries in non-PAE modes. */
35333 -#define PREALLOCATED_PMDS 0
35334 +#define PREALLOCATED_PXDS 0
35335
35336 #endif /* CONFIG_X86_PAE */
35337
35338 -static void free_pmds(struct mm_struct *mm, pmd_t *pmds[])
35339 +static void free_pxds(struct mm_struct *mm, pxd_t *pxds[])
35340 {
35341 int i;
35342
35343 - for(i = 0; i < PREALLOCATED_PMDS; i++)
35344 - if (pmds[i]) {
35345 - pgtable_pmd_page_dtor(virt_to_page(pmds[i]));
35346 - free_page((unsigned long)pmds[i]);
35347 - mm_dec_nr_pmds(mm);
35348 + for(i = 0; i < PREALLOCATED_PXDS; i++)
35349 + if (pxds[i]) {
35350 + pgtable_pxd_page_dtor(virt_to_page(pxds[i]));
35351 + free_page((unsigned long)pxds[i]);
35352 + mm_dec_nr_pxds(mm);
35353 }
35354 }
35355
35356 -static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
35357 +static int preallocate_pxds(struct mm_struct *mm, pxd_t *pxds[])
35358 {
35359 int i;
35360 bool failed = false;
35361
35362 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
35363 - pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP);
35364 - if (!pmd)
35365 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
35366 + pxd_t *pxd = (pxd_t *)__get_free_page(PGALLOC_GFP);
35367 + if (!pxd)
35368 failed = true;
35369 - if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) {
35370 - free_page((unsigned long)pmd);
35371 - pmd = NULL;
35372 + if (pxd && !pgtable_pxd_page_ctor(virt_to_page(pxd))) {
35373 + free_page((unsigned long)pxd);
35374 + pxd = NULL;
35375 failed = true;
35376 }
35377 - if (pmd)
35378 - mm_inc_nr_pmds(mm);
35379 - pmds[i] = pmd;
35380 + if (pxd)
35381 + mm_inc_nr_pxds(mm);
35382 + pxds[i] = pxd;
35383 }
35384
35385 if (failed) {
35386 - free_pmds(mm, pmds);
35387 + free_pxds(mm, pxds);
35388 return -ENOMEM;
35389 }
35390
35391 @@ -236,43 +304,47 @@ static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
35392 * preallocate which never got a corresponding vma will need to be
35393 * freed manually.
35394 */
35395 -static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
35396 +static void pgd_mop_up_pxds(struct mm_struct *mm, pgd_t *pgdp)
35397 {
35398 int i;
35399
35400 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
35401 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
35402 pgd_t pgd = pgdp[i];
35403
35404 if (pgd_val(pgd) != 0) {
35405 - pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd);
35406 + pxd_t *pxd = (pxd_t *)pgd_page_vaddr(pgd);
35407
35408 - pgdp[i] = native_make_pgd(0);
35409 + set_pgd(pgdp + i, native_make_pgd(0));
35410
35411 - paravirt_release_pmd(pgd_val(pgd) >> PAGE_SHIFT);
35412 - pmd_free(mm, pmd);
35413 - mm_dec_nr_pmds(mm);
35414 + paravirt_release_pxd(pgd_val(pgd) >> PAGE_SHIFT);
35415 + pxd_free(mm, pxd);
35416 + mm_dec_nr_pxds(mm);
35417 }
35418 }
35419 }
35420
35421 -static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
35422 +static void pgd_prepopulate_pxd(struct mm_struct *mm, pgd_t *pgd, pxd_t *pxds[])
35423 {
35424 - pud_t *pud;
35425 + pyd_t *pyd;
35426 int i;
35427
35428 - if (PREALLOCATED_PMDS == 0) /* Work around gcc-3.4.x bug */
35429 + if (PREALLOCATED_PXDS == 0) /* Work around gcc-3.4.x bug */
35430 return;
35431
35432 - pud = pud_offset(pgd, 0);
35433 +#ifdef CONFIG_X86_64
35434 + pyd = pyd_offset(mm, 0L);
35435 +#else
35436 + pyd = pyd_offset(pgd, 0L);
35437 +#endif
35438
35439 - for (i = 0; i < PREALLOCATED_PMDS; i++, pud++) {
35440 - pmd_t *pmd = pmds[i];
35441 + for (i = 0; i < PREALLOCATED_PXDS; i++, pyd++) {
35442 + pxd_t *pxd = pxds[i];
35443
35444 if (i >= KERNEL_PGD_BOUNDARY)
35445 - memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
35446 - sizeof(pmd_t) * PTRS_PER_PMD);
35447 + memcpy(pxd, (pxd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
35448 + sizeof(pxd_t) * PTRS_PER_PMD);
35449
35450 - pud_populate(mm, pud, pmd);
35451 + pyd_populate(mm, pyd, pxd);
35452 }
35453 }
35454
35455 @@ -354,7 +426,7 @@ static inline void _pgd_free(pgd_t *pgd)
35456 pgd_t *pgd_alloc(struct mm_struct *mm)
35457 {
35458 pgd_t *pgd;
35459 - pmd_t *pmds[PREALLOCATED_PMDS];
35460 + pxd_t *pxds[PREALLOCATED_PXDS];
35461
35462 pgd = _pgd_alloc();
35463
35464 @@ -363,11 +435,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
35465
35466 mm->pgd = pgd;
35467
35468 - if (preallocate_pmds(mm, pmds) != 0)
35469 + if (preallocate_pxds(mm, pxds) != 0)
35470 goto out_free_pgd;
35471
35472 if (paravirt_pgd_alloc(mm) != 0)
35473 - goto out_free_pmds;
35474 + goto out_free_pxds;
35475
35476 /*
35477 * Make sure that pre-populating the pmds is atomic with
35478 @@ -377,14 +449,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
35479 spin_lock(&pgd_lock);
35480
35481 pgd_ctor(mm, pgd);
35482 - pgd_prepopulate_pmd(mm, pgd, pmds);
35483 + pgd_prepopulate_pxd(mm, pgd, pxds);
35484
35485 spin_unlock(&pgd_lock);
35486
35487 return pgd;
35488
35489 -out_free_pmds:
35490 - free_pmds(mm, pmds);
35491 +out_free_pxds:
35492 + free_pxds(mm, pxds);
35493 out_free_pgd:
35494 _pgd_free(pgd);
35495 out:
35496 @@ -393,7 +465,7 @@ out:
35497
35498 void pgd_free(struct mm_struct *mm, pgd_t *pgd)
35499 {
35500 - pgd_mop_up_pmds(mm, pgd);
35501 + pgd_mop_up_pxds(mm, pgd);
35502 pgd_dtor(pgd);
35503 paravirt_pgd_free(mm, pgd);
35504 _pgd_free(pgd);
35505 @@ -544,6 +616,55 @@ void __init reserve_top_address(unsigned long reserve)
35506
35507 int fixmaps_set;
35508
35509 +static void fix_user_fixmap(enum fixed_addresses idx, unsigned long address)
35510 +{
35511 +#ifdef CONFIG_X86_64
35512 + pgd_t *pgd;
35513 + pud_t *pud;
35514 + pmd_t *pmd;
35515 +
35516 + switch (idx) {
35517 + default:
35518 + return;
35519 +
35520 +#ifdef CONFIG_X86_VSYSCALL_EMULATION
35521 + case VSYSCALL_PAGE:
35522 + break;
35523 +#endif
35524 +
35525 +#ifdef CONFIG_PARAVIRT_CLOCK
35526 + case PVCLOCK_FIXMAP_BEGIN ... PVCLOCK_FIXMAP_END:
35527 + break;
35528 +#endif
35529 + }
35530 +
35531 + pgd = pgd_offset_k(address);
35532 + if (!(pgd_val(*pgd) & _PAGE_USER)) {
35533 +#ifdef CONFIG_PAX_PER_CPU_PGD
35534 + unsigned int cpu;
35535 + pgd_t *pgd_cpu;
35536 +
35537 + for_each_possible_cpu(cpu) {
35538 + pgd_cpu = pgd_offset_cpu(cpu, kernel, address);
35539 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35540 +
35541 + pgd_cpu = pgd_offset_cpu(cpu, user, address);
35542 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35543 + }
35544 +#endif
35545 + set_pgd(pgd, __pgd(pgd_val(*pgd) | _PAGE_USER));
35546 + }
35547 +
35548 + pud = pud_offset(pgd, address);
35549 + if (!(pud_val(*pud) & _PAGE_USER))
35550 + set_pud(pud, __pud(pud_val(*pud) | _PAGE_USER));
35551 +
35552 + pmd = pmd_offset(pud, address);
35553 + if (!(pmd_val(*pmd) & _PAGE_USER))
35554 + set_pmd(pmd, __pmd(pmd_val(*pmd) | _PAGE_USER));
35555 +#endif
35556 +}
35557 +
35558 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35559 {
35560 unsigned long address = __fix_to_virt(idx);
35561 @@ -554,6 +675,7 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35562 }
35563 set_pte_vaddr(address, pte);
35564 fixmaps_set++;
35565 + fix_user_fixmap(idx, address);
35566 }
35567
35568 void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
35569 @@ -620,9 +742,11 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
35570
35571 prot = pgprot_4k_2_large(prot);
35572
35573 + pax_open_kernel();
35574 set_pte((pte_t *)pmd, pfn_pte(
35575 (u64)addr >> PAGE_SHIFT,
35576 __pgprot(pgprot_val(prot) | _PAGE_PSE)));
35577 + pax_close_kernel();
35578
35579 return 1;
35580 }
35581 diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
35582 index 75cc097..79a097f 100644
35583 --- a/arch/x86/mm/pgtable_32.c
35584 +++ b/arch/x86/mm/pgtable_32.c
35585 @@ -47,10 +47,13 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
35586 return;
35587 }
35588 pte = pte_offset_kernel(pmd, vaddr);
35589 +
35590 + pax_open_kernel();
35591 if (pte_val(pteval))
35592 set_pte_at(&init_mm, vaddr, pte, pteval);
35593 else
35594 pte_clear(&init_mm, vaddr, pte);
35595 + pax_close_kernel();
35596
35597 /*
35598 * It's enough to flush this one mapping.
35599 diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
35600 index 90555bf..f5f1828 100644
35601 --- a/arch/x86/mm/setup_nx.c
35602 +++ b/arch/x86/mm/setup_nx.c
35603 @@ -5,8 +5,10 @@
35604 #include <asm/pgtable.h>
35605 #include <asm/proto.h>
35606
35607 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35608 static int disable_nx;
35609
35610 +#ifndef CONFIG_PAX_PAGEEXEC
35611 /*
35612 * noexec = on|off
35613 *
35614 @@ -28,12 +30,17 @@ static int __init noexec_setup(char *str)
35615 return 0;
35616 }
35617 early_param("noexec", noexec_setup);
35618 +#endif
35619 +
35620 +#endif
35621
35622 void x86_configure_nx(void)
35623 {
35624 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35625 if (cpu_has_nx && !disable_nx)
35626 __supported_pte_mask |= _PAGE_NX;
35627 else
35628 +#endif
35629 __supported_pte_mask &= ~_PAGE_NX;
35630 }
35631
35632 diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
35633 index 90b924a..4197ac2 100644
35634 --- a/arch/x86/mm/tlb.c
35635 +++ b/arch/x86/mm/tlb.c
35636 @@ -45,7 +45,11 @@ void leave_mm(int cpu)
35637 BUG();
35638 if (cpumask_test_cpu(cpu, mm_cpumask(active_mm))) {
35639 cpumask_clear_cpu(cpu, mm_cpumask(active_mm));
35640 +
35641 +#ifndef CONFIG_PAX_PER_CPU_PGD
35642 load_cr3(swapper_pg_dir);
35643 +#endif
35644 +
35645 /*
35646 * This gets called in the idle path where RCU
35647 * functions differently. Tracing normally
35648 diff --git a/arch/x86/mm/uderef_64.c b/arch/x86/mm/uderef_64.c
35649 new file mode 100644
35650 index 0000000..3fda3f3
35651 --- /dev/null
35652 +++ b/arch/x86/mm/uderef_64.c
35653 @@ -0,0 +1,37 @@
35654 +#include <linux/mm.h>
35655 +#include <asm/pgtable.h>
35656 +#include <asm/uaccess.h>
35657 +
35658 +#ifdef CONFIG_PAX_MEMORY_UDEREF
35659 +/* PaX: due to the special call convention these functions must
35660 + * - remain leaf functions under all configurations,
35661 + * - never be called directly, only dereferenced from the wrappers.
35662 + */
35663 +void __used __pax_open_userland(void)
35664 +{
35665 + unsigned int cpu;
35666 +
35667 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35668 + return;
35669 +
35670 + cpu = raw_get_cpu();
35671 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_KERNEL);
35672 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
35673 + raw_put_cpu_no_resched();
35674 +}
35675 +EXPORT_SYMBOL(__pax_open_userland);
35676 +
35677 +void __used __pax_close_userland(void)
35678 +{
35679 + unsigned int cpu;
35680 +
35681 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35682 + return;
35683 +
35684 + cpu = raw_get_cpu();
35685 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_USER);
35686 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
35687 + raw_put_cpu_no_resched();
35688 +}
35689 +EXPORT_SYMBOL(__pax_close_userland);
35690 +#endif
35691 diff --git a/arch/x86/net/bpf_jit.S b/arch/x86/net/bpf_jit.S
35692 index 4093216..44b6b83 100644
35693 --- a/arch/x86/net/bpf_jit.S
35694 +++ b/arch/x86/net/bpf_jit.S
35695 @@ -8,6 +8,7 @@
35696 * of the License.
35697 */
35698 #include <linux/linkage.h>
35699 +#include <asm/alternative-asm.h>
35700
35701 /*
35702 * Calling convention :
35703 @@ -37,6 +38,7 @@ sk_load_word_positive_offset:
35704 jle bpf_slow_path_word
35705 mov (SKBDATA,%rsi),%eax
35706 bswap %eax /* ntohl() */
35707 + pax_force_retaddr
35708 ret
35709
35710 sk_load_half:
35711 @@ -54,6 +56,7 @@ sk_load_half_positive_offset:
35712 jle bpf_slow_path_half
35713 movzwl (SKBDATA,%rsi),%eax
35714 rol $8,%ax # ntohs()
35715 + pax_force_retaddr
35716 ret
35717
35718 sk_load_byte:
35719 @@ -68,6 +71,7 @@ sk_load_byte_positive_offset:
35720 cmp %esi,%r9d /* if (offset >= hlen) goto bpf_slow_path_byte */
35721 jle bpf_slow_path_byte
35722 movzbl (SKBDATA,%rsi),%eax
35723 + pax_force_retaddr
35724 ret
35725
35726 /* rsi contains offset and can be scratched */
35727 @@ -89,6 +93,7 @@ bpf_slow_path_word:
35728 js bpf_error
35729 mov - MAX_BPF_STACK + 32(%rbp),%eax
35730 bswap %eax
35731 + pax_force_retaddr
35732 ret
35733
35734 bpf_slow_path_half:
35735 @@ -97,12 +102,14 @@ bpf_slow_path_half:
35736 mov - MAX_BPF_STACK + 32(%rbp),%ax
35737 rol $8,%ax
35738 movzwl %ax,%eax
35739 + pax_force_retaddr
35740 ret
35741
35742 bpf_slow_path_byte:
35743 bpf_slow_path_common(1)
35744 js bpf_error
35745 movzbl - MAX_BPF_STACK + 32(%rbp),%eax
35746 + pax_force_retaddr
35747 ret
35748
35749 #define sk_negative_common(SIZE) \
35750 @@ -125,6 +132,7 @@ sk_load_word_negative_offset:
35751 sk_negative_common(4)
35752 mov (%rax), %eax
35753 bswap %eax
35754 + pax_force_retaddr
35755 ret
35756
35757 bpf_slow_path_half_neg:
35758 @@ -136,6 +144,7 @@ sk_load_half_negative_offset:
35759 mov (%rax),%ax
35760 rol $8,%ax
35761 movzwl %ax,%eax
35762 + pax_force_retaddr
35763 ret
35764
35765 bpf_slow_path_byte_neg:
35766 @@ -145,6 +154,7 @@ sk_load_byte_negative_offset:
35767 .globl sk_load_byte_negative_offset
35768 sk_negative_common(1)
35769 movzbl (%rax), %eax
35770 + pax_force_retaddr
35771 ret
35772
35773 bpf_error:
35774 @@ -155,4 +165,5 @@ bpf_error:
35775 mov - MAX_BPF_STACK + 16(%rbp),%r14
35776 mov - MAX_BPF_STACK + 24(%rbp),%r15
35777 leaveq
35778 + pax_force_retaddr
35779 ret
35780 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
35781 index be2e7a2..e6960dd 100644
35782 --- a/arch/x86/net/bpf_jit_comp.c
35783 +++ b/arch/x86/net/bpf_jit_comp.c
35784 @@ -14,7 +14,11 @@
35785 #include <asm/cacheflush.h>
35786 #include <linux/bpf.h>
35787
35788 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
35789 +int bpf_jit_enable __read_only;
35790 +#else
35791 int bpf_jit_enable __read_mostly;
35792 +#endif
35793
35794 /*
35795 * assembly code in arch/x86/net/bpf_jit.S
35796 @@ -176,7 +180,9 @@ static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg)
35797 static void jit_fill_hole(void *area, unsigned int size)
35798 {
35799 /* fill whole space with int3 instructions */
35800 + pax_open_kernel();
35801 memset(area, 0xcc, size);
35802 + pax_close_kernel();
35803 }
35804
35805 struct jit_context {
35806 @@ -1026,7 +1032,9 @@ common_load:
35807 pr_err("bpf_jit_compile fatal error\n");
35808 return -EFAULT;
35809 }
35810 + pax_open_kernel();
35811 memcpy(image + proglen, temp, ilen);
35812 + pax_close_kernel();
35813 }
35814 proglen += ilen;
35815 addrs[i] = proglen;
35816 @@ -1103,7 +1111,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
35817
35818 if (image) {
35819 bpf_flush_icache(header, image + proglen);
35820 - set_memory_ro((unsigned long)header, header->pages);
35821 prog->bpf_func = (void *)image;
35822 prog->jited = true;
35823 }
35824 @@ -1116,12 +1123,8 @@ void bpf_jit_free(struct bpf_prog *fp)
35825 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
35826 struct bpf_binary_header *header = (void *)addr;
35827
35828 - if (!fp->jited)
35829 - goto free_filter;
35830 + if (fp->jited)
35831 + bpf_jit_binary_free(header);
35832
35833 - set_memory_rw(addr, header->pages);
35834 - bpf_jit_binary_free(header);
35835 -
35836 -free_filter:
35837 bpf_prog_unlock_free(fp);
35838 }
35839 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
35840 index 4e664bd..2beeaa2 100644
35841 --- a/arch/x86/oprofile/backtrace.c
35842 +++ b/arch/x86/oprofile/backtrace.c
35843 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
35844 struct stack_frame_ia32 *fp;
35845 unsigned long bytes;
35846
35847 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35848 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35849 if (bytes != 0)
35850 return NULL;
35851
35852 - fp = (struct stack_frame_ia32 *) compat_ptr(bufhead[0].next_frame);
35853 + fp = (struct stack_frame_ia32 __force_kernel *) compat_ptr(bufhead[0].next_frame);
35854
35855 oprofile_add_trace(bufhead[0].return_address);
35856
35857 @@ -92,7 +92,7 @@ static struct stack_frame *dump_user_backtrace(struct stack_frame *head)
35858 struct stack_frame bufhead[2];
35859 unsigned long bytes;
35860
35861 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35862 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35863 if (bytes != 0)
35864 return NULL;
35865
35866 diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
35867 index 1d2e639..f6ef82a 100644
35868 --- a/arch/x86/oprofile/nmi_int.c
35869 +++ b/arch/x86/oprofile/nmi_int.c
35870 @@ -23,6 +23,7 @@
35871 #include <asm/nmi.h>
35872 #include <asm/msr.h>
35873 #include <asm/apic.h>
35874 +#include <asm/pgtable.h>
35875
35876 #include "op_counter.h"
35877 #include "op_x86_model.h"
35878 @@ -785,8 +786,11 @@ int __init op_nmi_init(struct oprofile_operations *ops)
35879 if (ret)
35880 return ret;
35881
35882 - if (!model->num_virt_counters)
35883 - model->num_virt_counters = model->num_counters;
35884 + if (!model->num_virt_counters) {
35885 + pax_open_kernel();
35886 + *(unsigned int *)&model->num_virt_counters = model->num_counters;
35887 + pax_close_kernel();
35888 + }
35889
35890 mux_init(ops);
35891
35892 diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
35893 index 50d86c0..7985318 100644
35894 --- a/arch/x86/oprofile/op_model_amd.c
35895 +++ b/arch/x86/oprofile/op_model_amd.c
35896 @@ -519,9 +519,11 @@ static int op_amd_init(struct oprofile_operations *ops)
35897 num_counters = AMD64_NUM_COUNTERS;
35898 }
35899
35900 - op_amd_spec.num_counters = num_counters;
35901 - op_amd_spec.num_controls = num_counters;
35902 - op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35903 + pax_open_kernel();
35904 + *(unsigned int *)&op_amd_spec.num_counters = num_counters;
35905 + *(unsigned int *)&op_amd_spec.num_controls = num_counters;
35906 + *(unsigned int *)&op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35907 + pax_close_kernel();
35908
35909 return 0;
35910 }
35911 diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
35912 index d90528e..0127e2b 100644
35913 --- a/arch/x86/oprofile/op_model_ppro.c
35914 +++ b/arch/x86/oprofile/op_model_ppro.c
35915 @@ -19,6 +19,7 @@
35916 #include <asm/msr.h>
35917 #include <asm/apic.h>
35918 #include <asm/nmi.h>
35919 +#include <asm/pgtable.h>
35920
35921 #include "op_x86_model.h"
35922 #include "op_counter.h"
35923 @@ -221,8 +222,10 @@ static void arch_perfmon_setup_counters(void)
35924
35925 num_counters = min((int)eax.split.num_counters, OP_MAX_COUNTER);
35926
35927 - op_arch_perfmon_spec.num_counters = num_counters;
35928 - op_arch_perfmon_spec.num_controls = num_counters;
35929 + pax_open_kernel();
35930 + *(unsigned int *)&op_arch_perfmon_spec.num_counters = num_counters;
35931 + *(unsigned int *)&op_arch_perfmon_spec.num_controls = num_counters;
35932 + pax_close_kernel();
35933 }
35934
35935 static int arch_perfmon_init(struct oprofile_operations *ignore)
35936 diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h
35937 index 71e8a67..6a313bb 100644
35938 --- a/arch/x86/oprofile/op_x86_model.h
35939 +++ b/arch/x86/oprofile/op_x86_model.h
35940 @@ -52,7 +52,7 @@ struct op_x86_model_spec {
35941 void (*switch_ctrl)(struct op_x86_model_spec const *model,
35942 struct op_msrs const * const msrs);
35943 #endif
35944 -};
35945 +} __do_const;
35946
35947 struct op_counter_config;
35948
35949 diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c
35950 index 7553921..d631bd4 100644
35951 --- a/arch/x86/pci/intel_mid_pci.c
35952 +++ b/arch/x86/pci/intel_mid_pci.c
35953 @@ -278,7 +278,7 @@ int __init intel_mid_pci_init(void)
35954 pci_mmcfg_late_init();
35955 pcibios_enable_irq = intel_mid_pci_irq_enable;
35956 pcibios_disable_irq = intel_mid_pci_irq_disable;
35957 - pci_root_ops = intel_mid_pci_ops;
35958 + memcpy((void *)&pci_root_ops, &intel_mid_pci_ops, sizeof pci_root_ops);
35959 pci_soc_mode = 1;
35960 /* Continue with standard init */
35961 return 1;
35962 diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
35963 index 9bd1154..e9d4656 100644
35964 --- a/arch/x86/pci/irq.c
35965 +++ b/arch/x86/pci/irq.c
35966 @@ -51,7 +51,7 @@ struct irq_router {
35967 struct irq_router_handler {
35968 u16 vendor;
35969 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
35970 -};
35971 +} __do_const;
35972
35973 int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq;
35974 void (*pcibios_disable_irq)(struct pci_dev *dev) = pirq_disable_irq;
35975 @@ -792,7 +792,7 @@ static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router
35976 return 0;
35977 }
35978
35979 -static __initdata struct irq_router_handler pirq_routers[] = {
35980 +static __initconst const struct irq_router_handler pirq_routers[] = {
35981 { PCI_VENDOR_ID_INTEL, intel_router_probe },
35982 { PCI_VENDOR_ID_AL, ali_router_probe },
35983 { PCI_VENDOR_ID_ITE, ite_router_probe },
35984 @@ -819,7 +819,7 @@ static struct pci_dev *pirq_router_dev;
35985 static void __init pirq_find_router(struct irq_router *r)
35986 {
35987 struct irq_routing_table *rt = pirq_table;
35988 - struct irq_router_handler *h;
35989 + const struct irq_router_handler *h;
35990
35991 #ifdef CONFIG_PCI_BIOS
35992 if (!rt->signature) {
35993 @@ -1092,7 +1092,7 @@ static int __init fix_acer_tm360_irqrouting(const struct dmi_system_id *d)
35994 return 0;
35995 }
35996
35997 -static struct dmi_system_id __initdata pciirq_dmi_table[] = {
35998 +static const struct dmi_system_id __initconst pciirq_dmi_table[] = {
35999 {
36000 .callback = fix_broken_hp_bios_irq9,
36001 .ident = "HP Pavilion N5400 Series Laptop",
36002 diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
36003 index 9b83b90..2c256c5 100644
36004 --- a/arch/x86/pci/pcbios.c
36005 +++ b/arch/x86/pci/pcbios.c
36006 @@ -79,7 +79,7 @@ union bios32 {
36007 static struct {
36008 unsigned long address;
36009 unsigned short segment;
36010 -} bios32_indirect __initdata = { 0, __KERNEL_CS };
36011 +} bios32_indirect __initdata = { 0, __PCIBIOS_CS };
36012
36013 /*
36014 * Returns the entry point for the given service, NULL on error
36015 @@ -92,37 +92,80 @@ static unsigned long __init bios32_service(unsigned long service)
36016 unsigned long length; /* %ecx */
36017 unsigned long entry; /* %edx */
36018 unsigned long flags;
36019 + struct desc_struct d, *gdt;
36020
36021 local_irq_save(flags);
36022 - __asm__("lcall *(%%edi); cld"
36023 +
36024 + gdt = get_cpu_gdt_table(smp_processor_id());
36025 +
36026 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x9B, 0xC);
36027 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
36028 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x93, 0xC);
36029 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
36030 +
36031 + __asm__("movw %w7, %%ds; lcall *(%%edi); push %%ss; pop %%ds; cld"
36032 : "=a" (return_code),
36033 "=b" (address),
36034 "=c" (length),
36035 "=d" (entry)
36036 : "0" (service),
36037 "1" (0),
36038 - "D" (&bios32_indirect));
36039 + "D" (&bios32_indirect),
36040 + "r"(__PCIBIOS_DS)
36041 + : "memory");
36042 +
36043 + pax_open_kernel();
36044 + gdt[GDT_ENTRY_PCIBIOS_CS].a = 0;
36045 + gdt[GDT_ENTRY_PCIBIOS_CS].b = 0;
36046 + gdt[GDT_ENTRY_PCIBIOS_DS].a = 0;
36047 + gdt[GDT_ENTRY_PCIBIOS_DS].b = 0;
36048 + pax_close_kernel();
36049 +
36050 local_irq_restore(flags);
36051
36052 switch (return_code) {
36053 - case 0:
36054 - return address + entry;
36055 - case 0x80: /* Not present */
36056 - printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
36057 - return 0;
36058 - default: /* Shouldn't happen */
36059 - printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
36060 - service, return_code);
36061 + case 0: {
36062 + int cpu;
36063 + unsigned char flags;
36064 +
36065 + printk(KERN_INFO "bios32_service: base:%08lx length:%08lx entry:%08lx\n", address, length, entry);
36066 + if (address >= 0xFFFF0 || length > 0x100000 - address || length <= entry) {
36067 + printk(KERN_WARNING "bios32_service: not valid\n");
36068 return 0;
36069 + }
36070 + address = address + PAGE_OFFSET;
36071 + length += 16UL; /* some BIOSs underreport this... */
36072 + flags = 4;
36073 + if (length >= 64*1024*1024) {
36074 + length >>= PAGE_SHIFT;
36075 + flags |= 8;
36076 + }
36077 +
36078 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
36079 + gdt = get_cpu_gdt_table(cpu);
36080 + pack_descriptor(&d, address, length, 0x9b, flags);
36081 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
36082 + pack_descriptor(&d, address, length, 0x93, flags);
36083 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
36084 + }
36085 + return entry;
36086 + }
36087 + case 0x80: /* Not present */
36088 + printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
36089 + return 0;
36090 + default: /* Shouldn't happen */
36091 + printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
36092 + service, return_code);
36093 + return 0;
36094 }
36095 }
36096
36097 static struct {
36098 unsigned long address;
36099 unsigned short segment;
36100 -} pci_indirect = { 0, __KERNEL_CS };
36101 +} pci_indirect __read_only = { 0, __PCIBIOS_CS };
36102
36103 -static int pci_bios_present;
36104 +static int pci_bios_present __read_only;
36105
36106 static int __init check_pcibios(void)
36107 {
36108 @@ -131,11 +174,13 @@ static int __init check_pcibios(void)
36109 unsigned long flags, pcibios_entry;
36110
36111 if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
36112 - pci_indirect.address = pcibios_entry + PAGE_OFFSET;
36113 + pci_indirect.address = pcibios_entry;
36114
36115 local_irq_save(flags);
36116 - __asm__(
36117 - "lcall *(%%edi); cld\n\t"
36118 + __asm__("movw %w6, %%ds\n\t"
36119 + "lcall *%%ss:(%%edi); cld\n\t"
36120 + "push %%ss\n\t"
36121 + "pop %%ds\n\t"
36122 "jc 1f\n\t"
36123 "xor %%ah, %%ah\n"
36124 "1:"
36125 @@ -144,7 +189,8 @@ static int __init check_pcibios(void)
36126 "=b" (ebx),
36127 "=c" (ecx)
36128 : "1" (PCIBIOS_PCI_BIOS_PRESENT),
36129 - "D" (&pci_indirect)
36130 + "D" (&pci_indirect),
36131 + "r" (__PCIBIOS_DS)
36132 : "memory");
36133 local_irq_restore(flags);
36134
36135 @@ -189,7 +235,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36136
36137 switch (len) {
36138 case 1:
36139 - __asm__("lcall *(%%esi); cld\n\t"
36140 + __asm__("movw %w6, %%ds\n\t"
36141 + "lcall *%%ss:(%%esi); cld\n\t"
36142 + "push %%ss\n\t"
36143 + "pop %%ds\n\t"
36144 "jc 1f\n\t"
36145 "xor %%ah, %%ah\n"
36146 "1:"
36147 @@ -198,7 +247,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36148 : "1" (PCIBIOS_READ_CONFIG_BYTE),
36149 "b" (bx),
36150 "D" ((long)reg),
36151 - "S" (&pci_indirect));
36152 + "S" (&pci_indirect),
36153 + "r" (__PCIBIOS_DS));
36154 /*
36155 * Zero-extend the result beyond 8 bits, do not trust the
36156 * BIOS having done it:
36157 @@ -206,7 +256,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36158 *value &= 0xff;
36159 break;
36160 case 2:
36161 - __asm__("lcall *(%%esi); cld\n\t"
36162 + __asm__("movw %w6, %%ds\n\t"
36163 + "lcall *%%ss:(%%esi); cld\n\t"
36164 + "push %%ss\n\t"
36165 + "pop %%ds\n\t"
36166 "jc 1f\n\t"
36167 "xor %%ah, %%ah\n"
36168 "1:"
36169 @@ -215,7 +268,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36170 : "1" (PCIBIOS_READ_CONFIG_WORD),
36171 "b" (bx),
36172 "D" ((long)reg),
36173 - "S" (&pci_indirect));
36174 + "S" (&pci_indirect),
36175 + "r" (__PCIBIOS_DS));
36176 /*
36177 * Zero-extend the result beyond 16 bits, do not trust the
36178 * BIOS having done it:
36179 @@ -223,7 +277,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36180 *value &= 0xffff;
36181 break;
36182 case 4:
36183 - __asm__("lcall *(%%esi); cld\n\t"
36184 + __asm__("movw %w6, %%ds\n\t"
36185 + "lcall *%%ss:(%%esi); cld\n\t"
36186 + "push %%ss\n\t"
36187 + "pop %%ds\n\t"
36188 "jc 1f\n\t"
36189 "xor %%ah, %%ah\n"
36190 "1:"
36191 @@ -232,7 +289,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36192 : "1" (PCIBIOS_READ_CONFIG_DWORD),
36193 "b" (bx),
36194 "D" ((long)reg),
36195 - "S" (&pci_indirect));
36196 + "S" (&pci_indirect),
36197 + "r" (__PCIBIOS_DS));
36198 break;
36199 }
36200
36201 @@ -256,7 +314,10 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36202
36203 switch (len) {
36204 case 1:
36205 - __asm__("lcall *(%%esi); cld\n\t"
36206 + __asm__("movw %w6, %%ds\n\t"
36207 + "lcall *%%ss:(%%esi); cld\n\t"
36208 + "push %%ss\n\t"
36209 + "pop %%ds\n\t"
36210 "jc 1f\n\t"
36211 "xor %%ah, %%ah\n"
36212 "1:"
36213 @@ -265,10 +326,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36214 "c" (value),
36215 "b" (bx),
36216 "D" ((long)reg),
36217 - "S" (&pci_indirect));
36218 + "S" (&pci_indirect),
36219 + "r" (__PCIBIOS_DS));
36220 break;
36221 case 2:
36222 - __asm__("lcall *(%%esi); cld\n\t"
36223 + __asm__("movw %w6, %%ds\n\t"
36224 + "lcall *%%ss:(%%esi); cld\n\t"
36225 + "push %%ss\n\t"
36226 + "pop %%ds\n\t"
36227 "jc 1f\n\t"
36228 "xor %%ah, %%ah\n"
36229 "1:"
36230 @@ -277,10 +342,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36231 "c" (value),
36232 "b" (bx),
36233 "D" ((long)reg),
36234 - "S" (&pci_indirect));
36235 + "S" (&pci_indirect),
36236 + "r" (__PCIBIOS_DS));
36237 break;
36238 case 4:
36239 - __asm__("lcall *(%%esi); cld\n\t"
36240 + __asm__("movw %w6, %%ds\n\t"
36241 + "lcall *%%ss:(%%esi); cld\n\t"
36242 + "push %%ss\n\t"
36243 + "pop %%ds\n\t"
36244 "jc 1f\n\t"
36245 "xor %%ah, %%ah\n"
36246 "1:"
36247 @@ -289,7 +358,8 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36248 "c" (value),
36249 "b" (bx),
36250 "D" ((long)reg),
36251 - "S" (&pci_indirect));
36252 + "S" (&pci_indirect),
36253 + "r" (__PCIBIOS_DS));
36254 break;
36255 }
36256
36257 @@ -394,10 +464,13 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
36258
36259 DBG("PCI: Fetching IRQ routing table... ");
36260 __asm__("push %%es\n\t"
36261 + "movw %w8, %%ds\n\t"
36262 "push %%ds\n\t"
36263 "pop %%es\n\t"
36264 - "lcall *(%%esi); cld\n\t"
36265 + "lcall *%%ss:(%%esi); cld\n\t"
36266 "pop %%es\n\t"
36267 + "push %%ss\n\t"
36268 + "pop %%ds\n"
36269 "jc 1f\n\t"
36270 "xor %%ah, %%ah\n"
36271 "1:"
36272 @@ -408,7 +481,8 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
36273 "1" (0),
36274 "D" ((long) &opt),
36275 "S" (&pci_indirect),
36276 - "m" (opt)
36277 + "m" (opt),
36278 + "r" (__PCIBIOS_DS)
36279 : "memory");
36280 DBG("OK ret=%d, size=%d, map=%x\n", ret, opt.size, map);
36281 if (ret & 0xff00)
36282 @@ -432,7 +506,10 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
36283 {
36284 int ret;
36285
36286 - __asm__("lcall *(%%esi); cld\n\t"
36287 + __asm__("movw %w5, %%ds\n\t"
36288 + "lcall *%%ss:(%%esi); cld\n\t"
36289 + "push %%ss\n\t"
36290 + "pop %%ds\n"
36291 "jc 1f\n\t"
36292 "xor %%ah, %%ah\n"
36293 "1:"
36294 @@ -440,7 +517,8 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
36295 : "0" (PCIBIOS_SET_PCI_HW_INT),
36296 "b" ((dev->bus->number << 8) | dev->devfn),
36297 "c" ((irq << 8) | (pin + 10)),
36298 - "S" (&pci_indirect));
36299 + "S" (&pci_indirect),
36300 + "r" (__PCIBIOS_DS));
36301 return !(ret & 0xff00);
36302 }
36303 EXPORT_SYMBOL(pcibios_set_irq_routing);
36304 diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
36305 index ed5b673..24d2d53 100644
36306 --- a/arch/x86/platform/efi/efi_32.c
36307 +++ b/arch/x86/platform/efi/efi_32.c
36308 @@ -61,11 +61,27 @@ pgd_t * __init efi_call_phys_prolog(void)
36309 struct desc_ptr gdt_descr;
36310 pgd_t *save_pgd;
36311
36312 +#ifdef CONFIG_PAX_KERNEXEC
36313 + struct desc_struct d;
36314 +#endif
36315 +
36316 /* Current pgd is swapper_pg_dir, we'll restore it later: */
36317 +#ifdef CONFIG_PAX_PER_CPU_PGD
36318 + save_pgd = get_cpu_pgd(smp_processor_id(), kernel);
36319 +#else
36320 save_pgd = swapper_pg_dir;
36321 +#endif
36322 +
36323 load_cr3(initial_page_table);
36324 __flush_tlb_all();
36325
36326 +#ifdef CONFIG_PAX_KERNEXEC
36327 + pack_descriptor(&d, 0, 0xFFFFF, 0x9B, 0xC);
36328 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
36329 + pack_descriptor(&d, 0, 0xFFFFF, 0x93, 0xC);
36330 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
36331 +#endif
36332 +
36333 gdt_descr.address = __pa(get_cpu_gdt_table(0));
36334 gdt_descr.size = GDT_SIZE - 1;
36335 load_gdt(&gdt_descr);
36336 @@ -77,6 +93,14 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
36337 {
36338 struct desc_ptr gdt_descr;
36339
36340 +#ifdef CONFIG_PAX_KERNEXEC
36341 + struct desc_struct d;
36342 +
36343 + memset(&d, 0, sizeof d);
36344 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
36345 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
36346 +#endif
36347 +
36348 gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
36349 gdt_descr.size = GDT_SIZE - 1;
36350 load_gdt(&gdt_descr);
36351 diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
36352 index a0ac0f9..f41d324 100644
36353 --- a/arch/x86/platform/efi/efi_64.c
36354 +++ b/arch/x86/platform/efi/efi_64.c
36355 @@ -96,6 +96,11 @@ pgd_t * __init efi_call_phys_prolog(void)
36356 vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
36357 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress));
36358 }
36359 +
36360 +#ifdef CONFIG_PAX_PER_CPU_PGD
36361 + load_cr3(swapper_pg_dir);
36362 +#endif
36363 +
36364 __flush_tlb_all();
36365
36366 return save_pgd;
36367 @@ -119,6 +124,10 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
36368
36369 kfree(save_pgd);
36370
36371 +#ifdef CONFIG_PAX_PER_CPU_PGD
36372 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
36373 +#endif
36374 +
36375 __flush_tlb_all();
36376 early_code_mapping_set_exec(0);
36377 }
36378 @@ -148,8 +157,23 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
36379 unsigned npages;
36380 pgd_t *pgd;
36381
36382 - if (efi_enabled(EFI_OLD_MEMMAP))
36383 + if (efi_enabled(EFI_OLD_MEMMAP)) {
36384 + /* PaX: We need to disable the NX bit in the PGD, otherwise we won't be
36385 + * able to execute the EFI services.
36386 + */
36387 + if (__supported_pte_mask & _PAGE_NX) {
36388 + unsigned long addr = (unsigned long) __va(0);
36389 + pgd_t pe = __pgd(pgd_val(*pgd_offset_k(addr)) & ~_PAGE_NX);
36390 +
36391 + pr_alert("PAX: Disabling NX protection for low memory map. Try booting without \"efi=old_map\"\n");
36392 +#ifdef CONFIG_PAX_PER_CPU_PGD
36393 + set_pgd(pgd_offset_cpu(0, kernel, addr), pe);
36394 +#endif
36395 + set_pgd(pgd_offset_k(addr), pe);
36396 + }
36397 +
36398 return 0;
36399 + }
36400
36401 efi_scratch.efi_pgt = (pgd_t *)(unsigned long)real_mode_header->trampoline_pgd;
36402 pgd = __va(efi_scratch.efi_pgt);
36403 diff --git a/arch/x86/platform/efi/efi_stub_32.S b/arch/x86/platform/efi/efi_stub_32.S
36404 index 040192b..7d3300f 100644
36405 --- a/arch/x86/platform/efi/efi_stub_32.S
36406 +++ b/arch/x86/platform/efi/efi_stub_32.S
36407 @@ -6,7 +6,9 @@
36408 */
36409
36410 #include <linux/linkage.h>
36411 +#include <linux/init.h>
36412 #include <asm/page_types.h>
36413 +#include <asm/segment.h>
36414
36415 /*
36416 * efi_call_phys(void *, ...) is a function with variable parameters.
36417 @@ -20,7 +22,7 @@
36418 * service functions will comply with gcc calling convention, too.
36419 */
36420
36421 -.text
36422 +__INIT
36423 ENTRY(efi_call_phys)
36424 /*
36425 * 0. The function can only be called in Linux kernel. So CS has been
36426 @@ -36,10 +38,24 @@ ENTRY(efi_call_phys)
36427 * The mapping of lower virtual memory has been created in prolog and
36428 * epilog.
36429 */
36430 - movl $1f, %edx
36431 - subl $__PAGE_OFFSET, %edx
36432 - jmp *%edx
36433 +#ifdef CONFIG_PAX_KERNEXEC
36434 + movl $(__KERNEXEC_EFI_DS), %edx
36435 + mov %edx, %ds
36436 + mov %edx, %es
36437 + mov %edx, %ss
36438 + addl $2f,(1f)
36439 + ljmp *(1f)
36440 +
36441 +__INITDATA
36442 +1: .long __LOAD_PHYSICAL_ADDR, __KERNEXEC_EFI_CS
36443 +.previous
36444 +
36445 +2:
36446 + subl $2b,(1b)
36447 +#else
36448 + jmp 1f-__PAGE_OFFSET
36449 1:
36450 +#endif
36451
36452 /*
36453 * 2. Now on the top of stack is the return
36454 @@ -47,14 +63,8 @@ ENTRY(efi_call_phys)
36455 * parameter 2, ..., param n. To make things easy, we save the return
36456 * address of efi_call_phys in a global variable.
36457 */
36458 - popl %edx
36459 - movl %edx, saved_return_addr
36460 - /* get the function pointer into ECX*/
36461 - popl %ecx
36462 - movl %ecx, efi_rt_function_ptr
36463 - movl $2f, %edx
36464 - subl $__PAGE_OFFSET, %edx
36465 - pushl %edx
36466 + popl (saved_return_addr)
36467 + popl (efi_rt_function_ptr)
36468
36469 /*
36470 * 3. Clear PG bit in %CR0.
36471 @@ -73,9 +83,8 @@ ENTRY(efi_call_phys)
36472 /*
36473 * 5. Call the physical function.
36474 */
36475 - jmp *%ecx
36476 + call *(efi_rt_function_ptr-__PAGE_OFFSET)
36477
36478 -2:
36479 /*
36480 * 6. After EFI runtime service returns, control will return to
36481 * following instruction. We'd better readjust stack pointer first.
36482 @@ -88,35 +97,36 @@ ENTRY(efi_call_phys)
36483 movl %cr0, %edx
36484 orl $0x80000000, %edx
36485 movl %edx, %cr0
36486 - jmp 1f
36487 -1:
36488 +
36489 /*
36490 * 8. Now restore the virtual mode from flat mode by
36491 * adding EIP with PAGE_OFFSET.
36492 */
36493 - movl $1f, %edx
36494 - jmp *%edx
36495 +#ifdef CONFIG_PAX_KERNEXEC
36496 + movl $(__KERNEL_DS), %edx
36497 + mov %edx, %ds
36498 + mov %edx, %es
36499 + mov %edx, %ss
36500 + ljmp $(__KERNEL_CS),$1f
36501 +#else
36502 + jmp 1f+__PAGE_OFFSET
36503 +#endif
36504 1:
36505
36506 /*
36507 * 9. Balance the stack. And because EAX contain the return value,
36508 * we'd better not clobber it.
36509 */
36510 - leal efi_rt_function_ptr, %edx
36511 - movl (%edx), %ecx
36512 - pushl %ecx
36513 + pushl (efi_rt_function_ptr)
36514
36515 /*
36516 - * 10. Push the saved return address onto the stack and return.
36517 + * 10. Return to the saved return address.
36518 */
36519 - leal saved_return_addr, %edx
36520 - movl (%edx), %ecx
36521 - pushl %ecx
36522 - ret
36523 + jmpl *(saved_return_addr)
36524 ENDPROC(efi_call_phys)
36525 .previous
36526
36527 -.data
36528 +__INITDATA
36529 saved_return_addr:
36530 .long 0
36531 efi_rt_function_ptr:
36532 diff --git a/arch/x86/platform/efi/efi_stub_64.S b/arch/x86/platform/efi/efi_stub_64.S
36533 index 86d0f9e..6d499f4 100644
36534 --- a/arch/x86/platform/efi/efi_stub_64.S
36535 +++ b/arch/x86/platform/efi/efi_stub_64.S
36536 @@ -11,6 +11,7 @@
36537 #include <asm/msr.h>
36538 #include <asm/processor-flags.h>
36539 #include <asm/page_types.h>
36540 +#include <asm/alternative-asm.h>
36541
36542 #define SAVE_XMM \
36543 mov %rsp, %rax; \
36544 @@ -88,6 +89,7 @@ ENTRY(efi_call)
36545 RESTORE_PGT
36546 addq $48, %rsp
36547 RESTORE_XMM
36548 + pax_force_retaddr 0, 1
36549 ret
36550 ENDPROC(efi_call)
36551
36552 diff --git a/arch/x86/platform/intel-mid/intel-mid.c b/arch/x86/platform/intel-mid/intel-mid.c
36553 index 01d54ea..ba1d71c 100644
36554 --- a/arch/x86/platform/intel-mid/intel-mid.c
36555 +++ b/arch/x86/platform/intel-mid/intel-mid.c
36556 @@ -63,7 +63,7 @@ enum intel_mid_timer_options intel_mid_timer_options;
36557 /* intel_mid_ops to store sub arch ops */
36558 struct intel_mid_ops *intel_mid_ops;
36559 /* getter function for sub arch ops*/
36560 -static void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36561 +static const void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36562 enum intel_mid_cpu_type __intel_mid_cpu_chip;
36563 EXPORT_SYMBOL_GPL(__intel_mid_cpu_chip);
36564
36565 @@ -71,9 +71,10 @@ static void intel_mid_power_off(void)
36566 {
36567 };
36568
36569 -static void intel_mid_reboot(void)
36570 +static void __noreturn intel_mid_reboot(void)
36571 {
36572 intel_scu_ipc_simple_command(IPCMSG_COLD_BOOT, 0);
36573 + BUG();
36574 }
36575
36576 static unsigned long __init intel_mid_calibrate_tsc(void)
36577 diff --git a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36578 index 3c1c386..59a68ed 100644
36579 --- a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36580 +++ b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36581 @@ -13,6 +13,6 @@
36582 /* For every CPU addition a new get_<cpuname>_ops interface needs
36583 * to be added.
36584 */
36585 -extern void *get_penwell_ops(void);
36586 -extern void *get_cloverview_ops(void);
36587 -extern void *get_tangier_ops(void);
36588 +extern const void *get_penwell_ops(void);
36589 +extern const void *get_cloverview_ops(void);
36590 +extern const void *get_tangier_ops(void);
36591 diff --git a/arch/x86/platform/intel-mid/mfld.c b/arch/x86/platform/intel-mid/mfld.c
36592 index 23381d2..8ddc10e 100644
36593 --- a/arch/x86/platform/intel-mid/mfld.c
36594 +++ b/arch/x86/platform/intel-mid/mfld.c
36595 @@ -64,12 +64,12 @@ static void __init penwell_arch_setup(void)
36596 pm_power_off = mfld_power_off;
36597 }
36598
36599 -void *get_penwell_ops(void)
36600 +const void *get_penwell_ops(void)
36601 {
36602 return &penwell_ops;
36603 }
36604
36605 -void *get_cloverview_ops(void)
36606 +const void *get_cloverview_ops(void)
36607 {
36608 return &penwell_ops;
36609 }
36610 diff --git a/arch/x86/platform/intel-mid/mrfl.c b/arch/x86/platform/intel-mid/mrfl.c
36611 index aaca917..66eadbc 100644
36612 --- a/arch/x86/platform/intel-mid/mrfl.c
36613 +++ b/arch/x86/platform/intel-mid/mrfl.c
36614 @@ -97,7 +97,7 @@ static struct intel_mid_ops tangier_ops = {
36615 .arch_setup = tangier_arch_setup,
36616 };
36617
36618 -void *get_tangier_ops(void)
36619 +const void *get_tangier_ops(void)
36620 {
36621 return &tangier_ops;
36622 }
36623 diff --git a/arch/x86/platform/intel-quark/imr_selftest.c b/arch/x86/platform/intel-quark/imr_selftest.c
36624 index 278e4da..35db1a9 100644
36625 --- a/arch/x86/platform/intel-quark/imr_selftest.c
36626 +++ b/arch/x86/platform/intel-quark/imr_selftest.c
36627 @@ -55,7 +55,7 @@ static void __init imr_self_test_result(int res, const char *fmt, ...)
36628 */
36629 static void __init imr_self_test(void)
36630 {
36631 - phys_addr_t base = virt_to_phys(&_text);
36632 + phys_addr_t base = virt_to_phys((void *)ktla_ktva((unsigned long)_text));
36633 size_t size = virt_to_phys(&__end_rodata) - base;
36634 const char *fmt_over = "overlapped IMR @ (0x%08lx - 0x%08lx)\n";
36635 int ret;
36636 diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
36637 index d6ee929..3637cb5 100644
36638 --- a/arch/x86/platform/olpc/olpc_dt.c
36639 +++ b/arch/x86/platform/olpc/olpc_dt.c
36640 @@ -156,7 +156,7 @@ void * __init prom_early_alloc(unsigned long size)
36641 return res;
36642 }
36643
36644 -static struct of_pdt_ops prom_olpc_ops __initdata = {
36645 +static struct of_pdt_ops prom_olpc_ops __initconst = {
36646 .nextprop = olpc_dt_nextprop,
36647 .getproplen = olpc_dt_getproplen,
36648 .getproperty = olpc_dt_getproperty,
36649 diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
36650 index 9ab5279..8ba4611 100644
36651 --- a/arch/x86/power/cpu.c
36652 +++ b/arch/x86/power/cpu.c
36653 @@ -134,11 +134,8 @@ static void do_fpu_end(void)
36654 static void fix_processor_context(void)
36655 {
36656 int cpu = smp_processor_id();
36657 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
36658 -#ifdef CONFIG_X86_64
36659 - struct desc_struct *desc = get_cpu_gdt_table(cpu);
36660 - tss_desc tss;
36661 -#endif
36662 + struct tss_struct *t = cpu_tss + cpu;
36663 +
36664 set_tss_desc(cpu, t); /*
36665 * This just modifies memory; should not be
36666 * necessary. But... This is necessary, because
36667 @@ -147,10 +144,6 @@ static void fix_processor_context(void)
36668 */
36669
36670 #ifdef CONFIG_X86_64
36671 - memcpy(&tss, &desc[GDT_ENTRY_TSS], sizeof(tss_desc));
36672 - tss.type = 0x9; /* The available 64-bit TSS (see AMD vol 2, pg 91 */
36673 - write_gdt_entry(desc, GDT_ENTRY_TSS, &tss, DESC_TSS);
36674 -
36675 syscall_init(); /* This sets MSR_*STAR and related */
36676 #endif
36677 load_TR_desc(); /* This does ltr */
36678 diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
36679 index 0b7a63d..dff2199 100644
36680 --- a/arch/x86/realmode/init.c
36681 +++ b/arch/x86/realmode/init.c
36682 @@ -68,7 +68,13 @@ void __init setup_real_mode(void)
36683 __va(real_mode_header->trampoline_header);
36684
36685 #ifdef CONFIG_X86_32
36686 - trampoline_header->start = __pa_symbol(startup_32_smp);
36687 + trampoline_header->start = __pa_symbol(ktla_ktva((unsigned long)startup_32_smp));
36688 +
36689 +#ifdef CONFIG_PAX_KERNEXEC
36690 + trampoline_header->start -= LOAD_PHYSICAL_ADDR;
36691 +#endif
36692 +
36693 + trampoline_header->boot_cs = __BOOT_CS;
36694 trampoline_header->gdt_limit = __BOOT_DS + 7;
36695 trampoline_header->gdt_base = __pa_symbol(boot_gdt);
36696 #else
36697 @@ -84,7 +90,7 @@ void __init setup_real_mode(void)
36698 *trampoline_cr4_features = __read_cr4();
36699
36700 trampoline_pgd = (u64 *) __va(real_mode_header->trampoline_pgd);
36701 - trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd;
36702 + trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd & ~_PAGE_NX;
36703 trampoline_pgd[511] = init_level4_pgt[511].pgd;
36704 #endif
36705 }
36706 diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile
36707 index 2730d77..2e4cd19 100644
36708 --- a/arch/x86/realmode/rm/Makefile
36709 +++ b/arch/x86/realmode/rm/Makefile
36710 @@ -68,5 +68,8 @@ $(obj)/realmode.relocs: $(obj)/realmode.elf FORCE
36711
36712 KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \
36713 -I$(srctree)/arch/x86/boot
36714 +ifdef CONSTIFY_PLUGIN
36715 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
36716 +endif
36717 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
36718 GCOV_PROFILE := n
36719 diff --git a/arch/x86/realmode/rm/header.S b/arch/x86/realmode/rm/header.S
36720 index a28221d..93c40f1 100644
36721 --- a/arch/x86/realmode/rm/header.S
36722 +++ b/arch/x86/realmode/rm/header.S
36723 @@ -30,7 +30,9 @@ GLOBAL(real_mode_header)
36724 #endif
36725 /* APM/BIOS reboot */
36726 .long pa_machine_real_restart_asm
36727 -#ifdef CONFIG_X86_64
36728 +#ifdef CONFIG_X86_32
36729 + .long __KERNEL_CS
36730 +#else
36731 .long __KERNEL32_CS
36732 #endif
36733 END(real_mode_header)
36734 diff --git a/arch/x86/realmode/rm/reboot.S b/arch/x86/realmode/rm/reboot.S
36735 index d66c607..3def845 100644
36736 --- a/arch/x86/realmode/rm/reboot.S
36737 +++ b/arch/x86/realmode/rm/reboot.S
36738 @@ -27,6 +27,10 @@ ENTRY(machine_real_restart_asm)
36739 lgdtl pa_tr_gdt
36740
36741 /* Disable paging to drop us out of long mode */
36742 + movl %cr4, %eax
36743 + andl $~X86_CR4_PCIDE, %eax
36744 + movl %eax, %cr4
36745 +
36746 movl %cr0, %eax
36747 andl $~X86_CR0_PG, %eax
36748 movl %eax, %cr0
36749 diff --git a/arch/x86/realmode/rm/trampoline_32.S b/arch/x86/realmode/rm/trampoline_32.S
36750 index 48ddd76..c26749f 100644
36751 --- a/arch/x86/realmode/rm/trampoline_32.S
36752 +++ b/arch/x86/realmode/rm/trampoline_32.S
36753 @@ -24,6 +24,12 @@
36754 #include <asm/page_types.h>
36755 #include "realmode.h"
36756
36757 +#ifdef CONFIG_PAX_KERNEXEC
36758 +#define ta(X) (X)
36759 +#else
36760 +#define ta(X) (pa_ ## X)
36761 +#endif
36762 +
36763 .text
36764 .code16
36765
36766 @@ -38,8 +44,6 @@ ENTRY(trampoline_start)
36767
36768 cli # We should be safe anyway
36769
36770 - movl tr_start, %eax # where we need to go
36771 -
36772 movl $0xA5A5A5A5, trampoline_status
36773 # write marker for master knows we're running
36774
36775 @@ -55,7 +59,7 @@ ENTRY(trampoline_start)
36776 movw $1, %dx # protected mode (PE) bit
36777 lmsw %dx # into protected mode
36778
36779 - ljmpl $__BOOT_CS, $pa_startup_32
36780 + ljmpl *(trampoline_header)
36781
36782 .section ".text32","ax"
36783 .code32
36784 @@ -66,7 +70,7 @@ ENTRY(startup_32) # note: also used from wakeup_asm.S
36785 .balign 8
36786 GLOBAL(trampoline_header)
36787 tr_start: .space 4
36788 - tr_gdt_pad: .space 2
36789 + tr_boot_cs: .space 2
36790 tr_gdt: .space 6
36791 END(trampoline_header)
36792
36793 diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
36794 index dac7b20..72dbaca 100644
36795 --- a/arch/x86/realmode/rm/trampoline_64.S
36796 +++ b/arch/x86/realmode/rm/trampoline_64.S
36797 @@ -93,6 +93,7 @@ ENTRY(startup_32)
36798 movl %edx, %gs
36799
36800 movl pa_tr_cr4, %eax
36801 + andl $~X86_CR4_PCIDE, %eax
36802 movl %eax, %cr4 # Enable PAE mode
36803
36804 # Setup trampoline 4 level pagetables
36805 @@ -106,7 +107,7 @@ ENTRY(startup_32)
36806 wrmsr
36807
36808 # Enable paging and in turn activate Long Mode
36809 - movl $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE), %eax
36810 + movl $(X86_CR0_PG | X86_CR0_PE), %eax
36811 movl %eax, %cr0
36812
36813 /*
36814 diff --git a/arch/x86/realmode/rm/wakeup_asm.S b/arch/x86/realmode/rm/wakeup_asm.S
36815 index 9e7e147..25a4158 100644
36816 --- a/arch/x86/realmode/rm/wakeup_asm.S
36817 +++ b/arch/x86/realmode/rm/wakeup_asm.S
36818 @@ -126,11 +126,10 @@ ENTRY(wakeup_start)
36819 lgdtl pmode_gdt
36820
36821 /* This really couldn't... */
36822 - movl pmode_entry, %eax
36823 movl pmode_cr0, %ecx
36824 movl %ecx, %cr0
36825 - ljmpl $__KERNEL_CS, $pa_startup_32
36826 - /* -> jmp *%eax in trampoline_32.S */
36827 +
36828 + ljmpl *pmode_entry
36829 #else
36830 jmp trampoline_start
36831 #endif
36832 diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
36833 index 604a37e..e49702a 100644
36834 --- a/arch/x86/tools/Makefile
36835 +++ b/arch/x86/tools/Makefile
36836 @@ -37,7 +37,7 @@ $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/in
36837
36838 $(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
36839
36840 -HOST_EXTRACFLAGS += -I$(srctree)/tools/include
36841 +HOST_EXTRACFLAGS += -I$(srctree)/tools/include -ggdb
36842 hostprogs-y += relocs
36843 relocs-objs := relocs_32.o relocs_64.o relocs_common.o
36844 PHONY += relocs
36845 diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
36846 index 0c2fae8..88d7719 100644
36847 --- a/arch/x86/tools/relocs.c
36848 +++ b/arch/x86/tools/relocs.c
36849 @@ -1,5 +1,7 @@
36850 /* This is included from relocs_32/64.c */
36851
36852 +#include "../../../include/generated/autoconf.h"
36853 +
36854 #define ElfW(type) _ElfW(ELF_BITS, type)
36855 #define _ElfW(bits, type) __ElfW(bits, type)
36856 #define __ElfW(bits, type) Elf##bits##_##type
36857 @@ -11,6 +13,7 @@
36858 #define Elf_Sym ElfW(Sym)
36859
36860 static Elf_Ehdr ehdr;
36861 +static Elf_Phdr *phdr;
36862
36863 struct relocs {
36864 uint32_t *offset;
36865 @@ -386,9 +389,39 @@ static void read_ehdr(FILE *fp)
36866 }
36867 }
36868
36869 +static void read_phdrs(FILE *fp)
36870 +{
36871 + unsigned int i;
36872 +
36873 + phdr = calloc(ehdr.e_phnum, sizeof(Elf_Phdr));
36874 + if (!phdr) {
36875 + die("Unable to allocate %d program headers\n",
36876 + ehdr.e_phnum);
36877 + }
36878 + if (fseek(fp, ehdr.e_phoff, SEEK_SET) < 0) {
36879 + die("Seek to %d failed: %s\n",
36880 + ehdr.e_phoff, strerror(errno));
36881 + }
36882 + if (fread(phdr, sizeof(*phdr), ehdr.e_phnum, fp) != ehdr.e_phnum) {
36883 + die("Cannot read ELF program headers: %s\n",
36884 + strerror(errno));
36885 + }
36886 + for(i = 0; i < ehdr.e_phnum; i++) {
36887 + phdr[i].p_type = elf_word_to_cpu(phdr[i].p_type);
36888 + phdr[i].p_offset = elf_off_to_cpu(phdr[i].p_offset);
36889 + phdr[i].p_vaddr = elf_addr_to_cpu(phdr[i].p_vaddr);
36890 + phdr[i].p_paddr = elf_addr_to_cpu(phdr[i].p_paddr);
36891 + phdr[i].p_filesz = elf_word_to_cpu(phdr[i].p_filesz);
36892 + phdr[i].p_memsz = elf_word_to_cpu(phdr[i].p_memsz);
36893 + phdr[i].p_flags = elf_word_to_cpu(phdr[i].p_flags);
36894 + phdr[i].p_align = elf_word_to_cpu(phdr[i].p_align);
36895 + }
36896 +
36897 +}
36898 +
36899 static void read_shdrs(FILE *fp)
36900 {
36901 - int i;
36902 + unsigned int i;
36903 Elf_Shdr shdr;
36904
36905 secs = calloc(ehdr.e_shnum, sizeof(struct section));
36906 @@ -423,7 +456,7 @@ static void read_shdrs(FILE *fp)
36907
36908 static void read_strtabs(FILE *fp)
36909 {
36910 - int i;
36911 + unsigned int i;
36912 for (i = 0; i < ehdr.e_shnum; i++) {
36913 struct section *sec = &secs[i];
36914 if (sec->shdr.sh_type != SHT_STRTAB) {
36915 @@ -448,7 +481,7 @@ static void read_strtabs(FILE *fp)
36916
36917 static void read_symtabs(FILE *fp)
36918 {
36919 - int i,j;
36920 + unsigned int i,j;
36921 for (i = 0; i < ehdr.e_shnum; i++) {
36922 struct section *sec = &secs[i];
36923 if (sec->shdr.sh_type != SHT_SYMTAB) {
36924 @@ -479,9 +512,11 @@ static void read_symtabs(FILE *fp)
36925 }
36926
36927
36928 -static void read_relocs(FILE *fp)
36929 +static void read_relocs(FILE *fp, int use_real_mode)
36930 {
36931 - int i,j;
36932 + unsigned int i,j;
36933 + uint32_t base;
36934 +
36935 for (i = 0; i < ehdr.e_shnum; i++) {
36936 struct section *sec = &secs[i];
36937 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36938 @@ -501,9 +536,22 @@ static void read_relocs(FILE *fp)
36939 die("Cannot read symbol table: %s\n",
36940 strerror(errno));
36941 }
36942 + base = 0;
36943 +
36944 +#ifdef CONFIG_X86_32
36945 + for (j = 0; !use_real_mode && j < ehdr.e_phnum; j++) {
36946 + if (phdr[j].p_type != PT_LOAD )
36947 + continue;
36948 + 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)
36949 + continue;
36950 + base = CONFIG_PAGE_OFFSET + phdr[j].p_paddr - phdr[j].p_vaddr;
36951 + break;
36952 + }
36953 +#endif
36954 +
36955 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
36956 Elf_Rel *rel = &sec->reltab[j];
36957 - rel->r_offset = elf_addr_to_cpu(rel->r_offset);
36958 + rel->r_offset = elf_addr_to_cpu(rel->r_offset) + base;
36959 rel->r_info = elf_xword_to_cpu(rel->r_info);
36960 #if (SHT_REL_TYPE == SHT_RELA)
36961 rel->r_addend = elf_xword_to_cpu(rel->r_addend);
36962 @@ -515,7 +563,7 @@ static void read_relocs(FILE *fp)
36963
36964 static void print_absolute_symbols(void)
36965 {
36966 - int i;
36967 + unsigned int i;
36968 const char *format;
36969
36970 if (ELF_BITS == 64)
36971 @@ -528,7 +576,7 @@ static void print_absolute_symbols(void)
36972 for (i = 0; i < ehdr.e_shnum; i++) {
36973 struct section *sec = &secs[i];
36974 char *sym_strtab;
36975 - int j;
36976 + unsigned int j;
36977
36978 if (sec->shdr.sh_type != SHT_SYMTAB) {
36979 continue;
36980 @@ -555,7 +603,7 @@ static void print_absolute_symbols(void)
36981
36982 static void print_absolute_relocs(void)
36983 {
36984 - int i, printed = 0;
36985 + unsigned int i, printed = 0;
36986 const char *format;
36987
36988 if (ELF_BITS == 64)
36989 @@ -568,7 +616,7 @@ static void print_absolute_relocs(void)
36990 struct section *sec_applies, *sec_symtab;
36991 char *sym_strtab;
36992 Elf_Sym *sh_symtab;
36993 - int j;
36994 + unsigned int j;
36995 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36996 continue;
36997 }
36998 @@ -645,13 +693,13 @@ static void add_reloc(struct relocs *r, uint32_t offset)
36999 static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
37000 Elf_Sym *sym, const char *symname))
37001 {
37002 - int i;
37003 + unsigned int i;
37004 /* Walk through the relocations */
37005 for (i = 0; i < ehdr.e_shnum; i++) {
37006 char *sym_strtab;
37007 Elf_Sym *sh_symtab;
37008 struct section *sec_applies, *sec_symtab;
37009 - int j;
37010 + unsigned int j;
37011 struct section *sec = &secs[i];
37012
37013 if (sec->shdr.sh_type != SHT_REL_TYPE) {
37014 @@ -697,7 +745,7 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
37015 * kernel data and does not require special treatment.
37016 *
37017 */
37018 -static int per_cpu_shndx = -1;
37019 +static unsigned int per_cpu_shndx = ~0;
37020 static Elf_Addr per_cpu_load_addr;
37021
37022 static void percpu_init(void)
37023 @@ -830,6 +878,23 @@ static int do_reloc32(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
37024 {
37025 unsigned r_type = ELF32_R_TYPE(rel->r_info);
37026 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname);
37027 + char *sym_strtab = sec->link->link->strtab;
37028 +
37029 + /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
37030 + if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
37031 + return 0;
37032 +
37033 +#ifdef CONFIG_PAX_KERNEXEC
37034 + /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
37035 + if (!strcmp(sec_name(sym->st_shndx), ".text.end") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
37036 + return 0;
37037 + if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
37038 + return 0;
37039 + if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
37040 + return 0;
37041 + if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
37042 + return 0;
37043 +#endif
37044
37045 switch (r_type) {
37046 case R_386_NONE:
37047 @@ -968,7 +1033,7 @@ static int write32_as_text(uint32_t v, FILE *f)
37048
37049 static void emit_relocs(int as_text, int use_real_mode)
37050 {
37051 - int i;
37052 + unsigned int i;
37053 int (*write_reloc)(uint32_t, FILE *) = write32;
37054 int (*do_reloc)(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
37055 const char *symname);
37056 @@ -1078,10 +1143,11 @@ void process(FILE *fp, int use_real_mode, int as_text,
37057 {
37058 regex_init(use_real_mode);
37059 read_ehdr(fp);
37060 + read_phdrs(fp);
37061 read_shdrs(fp);
37062 read_strtabs(fp);
37063 read_symtabs(fp);
37064 - read_relocs(fp);
37065 + read_relocs(fp, use_real_mode);
37066 if (ELF_BITS == 64)
37067 percpu_init();
37068 if (show_absolute_syms) {
37069 diff --git a/arch/x86/um/mem_32.c b/arch/x86/um/mem_32.c
37070 index 744afdc..a0b8a0d 100644
37071 --- a/arch/x86/um/mem_32.c
37072 +++ b/arch/x86/um/mem_32.c
37073 @@ -20,7 +20,7 @@ static int __init gate_vma_init(void)
37074 gate_vma.vm_start = FIXADDR_USER_START;
37075 gate_vma.vm_end = FIXADDR_USER_END;
37076 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
37077 - gate_vma.vm_page_prot = __P101;
37078 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
37079
37080 return 0;
37081 }
37082 diff --git a/arch/x86/um/tls_32.c b/arch/x86/um/tls_32.c
37083 index 48e3858..ab4458c 100644
37084 --- a/arch/x86/um/tls_32.c
37085 +++ b/arch/x86/um/tls_32.c
37086 @@ -261,7 +261,7 @@ out:
37087 if (unlikely(task == current &&
37088 !t->arch.tls_array[idx - GDT_ENTRY_TLS_MIN].flushed)) {
37089 printk(KERN_ERR "get_tls_entry: task with pid %d got here "
37090 - "without flushed TLS.", current->pid);
37091 + "without flushed TLS.", task_pid_nr(current));
37092 }
37093
37094 return 0;
37095 diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
37096 index 4841453..d59a203 100644
37097 --- a/arch/x86/xen/Kconfig
37098 +++ b/arch/x86/xen/Kconfig
37099 @@ -9,6 +9,7 @@ config XEN
37100 select XEN_HAVE_PVMMU
37101 depends on X86_64 || (X86_32 && X86_PAE)
37102 depends on X86_LOCAL_APIC && X86_TSC
37103 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_XEN
37104 help
37105 This is the Linux Xen port. Enabling this will allow the
37106 kernel to boot in a paravirtualized environment under the
37107 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
37108 index 3cebc65..2789b02 100644
37109 --- a/arch/x86/xen/enlighten.c
37110 +++ b/arch/x86/xen/enlighten.c
37111 @@ -129,8 +129,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
37112
37113 struct shared_info xen_dummy_shared_info;
37114
37115 -void *xen_initial_gdt;
37116 -
37117 RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
37118 __read_mostly int xen_have_vector_callback;
37119 EXPORT_SYMBOL_GPL(xen_have_vector_callback);
37120 @@ -588,8 +586,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
37121 {
37122 unsigned long va = dtr->address;
37123 unsigned int size = dtr->size + 1;
37124 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
37125 - unsigned long frames[pages];
37126 + unsigned long frames[65536 / PAGE_SIZE];
37127 int f;
37128
37129 /*
37130 @@ -637,8 +634,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
37131 {
37132 unsigned long va = dtr->address;
37133 unsigned int size = dtr->size + 1;
37134 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
37135 - unsigned long frames[pages];
37136 + unsigned long frames[(GDT_SIZE + PAGE_SIZE - 1) / PAGE_SIZE];
37137 int f;
37138
37139 /*
37140 @@ -646,7 +642,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
37141 * 8-byte entries, or 16 4k pages..
37142 */
37143
37144 - BUG_ON(size > 65536);
37145 + BUG_ON(size > GDT_SIZE);
37146 BUG_ON(va & ~PAGE_MASK);
37147
37148 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
37149 @@ -1268,30 +1264,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
37150 #endif
37151 };
37152
37153 -static void xen_reboot(int reason)
37154 +static __noreturn void xen_reboot(int reason)
37155 {
37156 struct sched_shutdown r = { .reason = reason };
37157
37158 - if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
37159 - BUG();
37160 + HYPERVISOR_sched_op(SCHEDOP_shutdown, &r);
37161 + BUG();
37162 }
37163
37164 -static void xen_restart(char *msg)
37165 +static __noreturn void xen_restart(char *msg)
37166 {
37167 xen_reboot(SHUTDOWN_reboot);
37168 }
37169
37170 -static void xen_emergency_restart(void)
37171 +static __noreturn void xen_emergency_restart(void)
37172 {
37173 xen_reboot(SHUTDOWN_reboot);
37174 }
37175
37176 -static void xen_machine_halt(void)
37177 +static __noreturn void xen_machine_halt(void)
37178 {
37179 xen_reboot(SHUTDOWN_poweroff);
37180 }
37181
37182 -static void xen_machine_power_off(void)
37183 +static __noreturn void xen_machine_power_off(void)
37184 {
37185 if (pm_power_off)
37186 pm_power_off();
37187 @@ -1444,8 +1440,11 @@ static void __ref xen_setup_gdt(int cpu)
37188 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
37189 pv_cpu_ops.load_gdt = xen_load_gdt_boot;
37190
37191 - setup_stack_canary_segment(0);
37192 - switch_to_new_gdt(0);
37193 + setup_stack_canary_segment(cpu);
37194 +#ifdef CONFIG_X86_64
37195 + load_percpu_segment(cpu);
37196 +#endif
37197 + switch_to_new_gdt(cpu);
37198
37199 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry;
37200 pv_cpu_ops.load_gdt = xen_load_gdt;
37201 @@ -1561,7 +1560,17 @@ asmlinkage __visible void __init xen_start_kernel(void)
37202 __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
37203
37204 /* Work out if we support NX */
37205 - x86_configure_nx();
37206 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
37207 + if ((cpuid_eax(0x80000000) & 0xffff0000) == 0x80000000 &&
37208 + (cpuid_edx(0x80000001) & (1U << (X86_FEATURE_NX & 31)))) {
37209 + unsigned l, h;
37210 +
37211 + __supported_pte_mask |= _PAGE_NX;
37212 + rdmsr(MSR_EFER, l, h);
37213 + l |= EFER_NX;
37214 + wrmsr(MSR_EFER, l, h);
37215 + }
37216 +#endif
37217
37218 /* Get mfn list */
37219 xen_build_dynamic_phys_to_machine();
37220 @@ -1589,13 +1598,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
37221
37222 machine_ops = xen_machine_ops;
37223
37224 - /*
37225 - * The only reliable way to retain the initial address of the
37226 - * percpu gdt_page is to remember it here, so we can go and
37227 - * mark it RW later, when the initial percpu area is freed.
37228 - */
37229 - xen_initial_gdt = &per_cpu(gdt_page, 0);
37230 -
37231 xen_smp_init();
37232
37233 #ifdef CONFIG_ACPI_NUMA
37234 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
37235 index dd151b2..3291e38 100644
37236 --- a/arch/x86/xen/mmu.c
37237 +++ b/arch/x86/xen/mmu.c
37238 @@ -1835,7 +1835,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
37239 * L3_k[511] -> level2_fixmap_pgt */
37240 convert_pfn_mfn(level3_kernel_pgt);
37241
37242 + convert_pfn_mfn(level3_vmalloc_start_pgt);
37243 + convert_pfn_mfn(level3_vmalloc_end_pgt);
37244 + convert_pfn_mfn(level3_vmemmap_pgt);
37245 /* L3_k[511][506] -> level1_fixmap_pgt */
37246 + /* L3_k[511][507] -> level1_vsyscall_pgt */
37247 convert_pfn_mfn(level2_fixmap_pgt);
37248 }
37249 /* We get [511][511] and have Xen's version of level2_kernel_pgt */
37250 @@ -1860,11 +1864,22 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
37251 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
37252 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
37253 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
37254 + set_page_prot(level3_vmalloc_start_pgt, PAGE_KERNEL_RO);
37255 + set_page_prot(level3_vmalloc_end_pgt, PAGE_KERNEL_RO);
37256 + set_page_prot(level3_vmemmap_pgt, PAGE_KERNEL_RO);
37257 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
37258 set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
37259 + set_page_prot(level2_vmemmap_pgt, PAGE_KERNEL_RO);
37260 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
37261 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
37262 - set_page_prot(level1_fixmap_pgt, PAGE_KERNEL_RO);
37263 + set_page_prot(level1_modules_pgt[0], PAGE_KERNEL_RO);
37264 + set_page_prot(level1_modules_pgt[1], PAGE_KERNEL_RO);
37265 + set_page_prot(level1_modules_pgt[2], PAGE_KERNEL_RO);
37266 + set_page_prot(level1_modules_pgt[3], PAGE_KERNEL_RO);
37267 + set_page_prot(level1_fixmap_pgt[0], PAGE_KERNEL_RO);
37268 + set_page_prot(level1_fixmap_pgt[1], PAGE_KERNEL_RO);
37269 + set_page_prot(level1_fixmap_pgt[2], PAGE_KERNEL_RO);
37270 + set_page_prot(level1_vsyscall_pgt, PAGE_KERNEL_RO);
37271
37272 /* Pin down new L4 */
37273 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
37274 @@ -2048,6 +2063,7 @@ static void __init xen_post_allocator_init(void)
37275 pv_mmu_ops.set_pud = xen_set_pud;
37276 #if CONFIG_PGTABLE_LEVELS == 4
37277 pv_mmu_ops.set_pgd = xen_set_pgd;
37278 + pv_mmu_ops.set_pgd_batched = xen_set_pgd;
37279 #endif
37280
37281 /* This will work as long as patching hasn't happened yet
37282 @@ -2126,6 +2142,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
37283 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
37284 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
37285 .set_pgd = xen_set_pgd_hyper,
37286 + .set_pgd_batched = xen_set_pgd_hyper,
37287
37288 .alloc_pud = xen_alloc_pmd_init,
37289 .release_pud = xen_release_pmd_init,
37290 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
37291 index 8648438..18bac20 100644
37292 --- a/arch/x86/xen/smp.c
37293 +++ b/arch/x86/xen/smp.c
37294 @@ -284,17 +284,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
37295
37296 if (xen_pv_domain()) {
37297 if (!xen_feature(XENFEAT_writable_page_tables))
37298 - /* We've switched to the "real" per-cpu gdt, so make
37299 - * sure the old memory can be recycled. */
37300 - make_lowmem_page_readwrite(xen_initial_gdt);
37301 -
37302 #ifdef CONFIG_X86_32
37303 /*
37304 * Xen starts us with XEN_FLAT_RING1_DS, but linux code
37305 * expects __USER_DS
37306 */
37307 - loadsegment(ds, __USER_DS);
37308 - loadsegment(es, __USER_DS);
37309 + loadsegment(ds, __KERNEL_DS);
37310 + loadsegment(es, __KERNEL_DS);
37311 #endif
37312
37313 xen_filter_cpu_maps();
37314 @@ -375,7 +371,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
37315 #ifdef CONFIG_X86_32
37316 /* Note: PVH is not yet supported on x86_32. */
37317 ctxt->user_regs.fs = __KERNEL_PERCPU;
37318 - ctxt->user_regs.gs = __KERNEL_STACK_CANARY;
37319 + savesegment(gs, ctxt->user_regs.gs);
37320 #endif
37321 memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt));
37322
37323 @@ -383,8 +379,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
37324 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
37325 ctxt->flags = VGCF_IN_KERNEL;
37326 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
37327 - ctxt->user_regs.ds = __USER_DS;
37328 - ctxt->user_regs.es = __USER_DS;
37329 + ctxt->user_regs.ds = __KERNEL_DS;
37330 + ctxt->user_regs.es = __KERNEL_DS;
37331 ctxt->user_regs.ss = __KERNEL_DS;
37332
37333 xen_copy_trap_info(ctxt->trap_ctxt);
37334 @@ -720,7 +716,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
37335
37336 void __init xen_smp_init(void)
37337 {
37338 - smp_ops = xen_smp_ops;
37339 + memcpy((void *)&smp_ops, &xen_smp_ops, sizeof smp_ops);
37340 xen_fill_possible_map();
37341 }
37342
37343 diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
37344 index fd92a64..1f72641 100644
37345 --- a/arch/x86/xen/xen-asm_32.S
37346 +++ b/arch/x86/xen/xen-asm_32.S
37347 @@ -99,7 +99,7 @@ ENTRY(xen_iret)
37348 pushw %fs
37349 movl $(__KERNEL_PERCPU), %eax
37350 movl %eax, %fs
37351 - movl %fs:xen_vcpu, %eax
37352 + mov PER_CPU_VAR(xen_vcpu), %eax
37353 POP_FS
37354 #else
37355 movl %ss:xen_vcpu, %eax
37356 diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
37357 index 8afdfcc..79239db 100644
37358 --- a/arch/x86/xen/xen-head.S
37359 +++ b/arch/x86/xen/xen-head.S
37360 @@ -41,6 +41,17 @@ ENTRY(startup_xen)
37361 #ifdef CONFIG_X86_32
37362 mov %esi,xen_start_info
37363 mov $init_thread_union+THREAD_SIZE,%esp
37364 +#ifdef CONFIG_SMP
37365 + movl $cpu_gdt_table,%edi
37366 + movl $__per_cpu_load,%eax
37367 + movw %ax,__KERNEL_PERCPU + 2(%edi)
37368 + rorl $16,%eax
37369 + movb %al,__KERNEL_PERCPU + 4(%edi)
37370 + movb %ah,__KERNEL_PERCPU + 7(%edi)
37371 + movl $__per_cpu_end - 1,%eax
37372 + subl $__per_cpu_start,%eax
37373 + movw %ax,__KERNEL_PERCPU + 0(%edi)
37374 +#endif
37375 #else
37376 mov %rsi,xen_start_info
37377 mov $init_thread_union+THREAD_SIZE,%rsp
37378 diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
37379 index 2292721..a9bb18e 100644
37380 --- a/arch/x86/xen/xen-ops.h
37381 +++ b/arch/x86/xen/xen-ops.h
37382 @@ -16,8 +16,6 @@ void xen_syscall_target(void);
37383 void xen_syscall32_target(void);
37384 #endif
37385
37386 -extern void *xen_initial_gdt;
37387 -
37388 struct trap_info;
37389 void xen_copy_trap_info(struct trap_info *traps);
37390
37391 diff --git a/arch/xtensa/variants/dc232b/include/variant/core.h b/arch/xtensa/variants/dc232b/include/variant/core.h
37392 index 525bd3d..ef888b1 100644
37393 --- a/arch/xtensa/variants/dc232b/include/variant/core.h
37394 +++ b/arch/xtensa/variants/dc232b/include/variant/core.h
37395 @@ -119,9 +119,9 @@
37396 ----------------------------------------------------------------------*/
37397
37398 #define XCHAL_ICACHE_LINESIZE 32 /* I-cache line size in bytes */
37399 -#define XCHAL_DCACHE_LINESIZE 32 /* D-cache line size in bytes */
37400 #define XCHAL_ICACHE_LINEWIDTH 5 /* log2(I line size in bytes) */
37401 #define XCHAL_DCACHE_LINEWIDTH 5 /* log2(D line size in bytes) */
37402 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
37403
37404 #define XCHAL_ICACHE_SIZE 16384 /* I-cache size in bytes or 0 */
37405 #define XCHAL_DCACHE_SIZE 16384 /* D-cache size in bytes or 0 */
37406 diff --git a/arch/xtensa/variants/fsf/include/variant/core.h b/arch/xtensa/variants/fsf/include/variant/core.h
37407 index 2f33760..835e50a 100644
37408 --- a/arch/xtensa/variants/fsf/include/variant/core.h
37409 +++ b/arch/xtensa/variants/fsf/include/variant/core.h
37410 @@ -11,6 +11,7 @@
37411 #ifndef _XTENSA_CORE_H
37412 #define _XTENSA_CORE_H
37413
37414 +#include <linux/const.h>
37415
37416 /****************************************************************************
37417 Parameters Useful for Any Code, USER or PRIVILEGED
37418 @@ -112,9 +113,9 @@
37419 ----------------------------------------------------------------------*/
37420
37421 #define XCHAL_ICACHE_LINESIZE 16 /* I-cache line size in bytes */
37422 -#define XCHAL_DCACHE_LINESIZE 16 /* D-cache line size in bytes */
37423 #define XCHAL_ICACHE_LINEWIDTH 4 /* log2(I line size in bytes) */
37424 #define XCHAL_DCACHE_LINEWIDTH 4 /* log2(D line size in bytes) */
37425 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
37426
37427 #define XCHAL_ICACHE_SIZE 8192 /* I-cache size in bytes or 0 */
37428 #define XCHAL_DCACHE_SIZE 8192 /* D-cache size in bytes or 0 */
37429 diff --git a/block/bio.c b/block/bio.c
37430 index d6e5ba3..2bb142c 100644
37431 --- a/block/bio.c
37432 +++ b/block/bio.c
37433 @@ -1187,7 +1187,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
37434 /*
37435 * Overflow, abort
37436 */
37437 - if (end < start)
37438 + if (end < start || end - start > INT_MAX - nr_pages)
37439 return ERR_PTR(-EINVAL);
37440
37441 nr_pages += end - start;
37442 @@ -1312,7 +1312,7 @@ struct bio *bio_map_user_iov(struct request_queue *q,
37443 /*
37444 * Overflow, abort
37445 */
37446 - if (end < start)
37447 + if (end < start || end - start > INT_MAX - nr_pages)
37448 return ERR_PTR(-EINVAL);
37449
37450 nr_pages += end - start;
37451 diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
37452 index 0736729..2ec3b48 100644
37453 --- a/block/blk-iopoll.c
37454 +++ b/block/blk-iopoll.c
37455 @@ -74,7 +74,7 @@ void blk_iopoll_complete(struct blk_iopoll *iop)
37456 }
37457 EXPORT_SYMBOL(blk_iopoll_complete);
37458
37459 -static void blk_iopoll_softirq(struct softirq_action *h)
37460 +static __latent_entropy void blk_iopoll_softirq(void)
37461 {
37462 struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll);
37463 int rearm = 0, budget = blk_iopoll_budget;
37464 diff --git a/block/blk-map.c b/block/blk-map.c
37465 index da310a1..213b5c9 100644
37466 --- a/block/blk-map.c
37467 +++ b/block/blk-map.c
37468 @@ -192,7 +192,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
37469 if (!len || !kbuf)
37470 return -EINVAL;
37471
37472 - do_copy = !blk_rq_aligned(q, addr, len) || object_is_on_stack(kbuf);
37473 + do_copy = !blk_rq_aligned(q, addr, len) || object_starts_on_stack(kbuf);
37474 if (do_copy)
37475 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
37476 else
37477 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
37478 index 53b1737..08177d2e 100644
37479 --- a/block/blk-softirq.c
37480 +++ b/block/blk-softirq.c
37481 @@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
37482 * Softirq action handler - move entries to local list and loop over them
37483 * while passing them to the queue registered handler.
37484 */
37485 -static void blk_done_softirq(struct softirq_action *h)
37486 +static __latent_entropy void blk_done_softirq(void)
37487 {
37488 struct list_head *cpu_list, local_list;
37489
37490 diff --git a/block/bsg.c b/block/bsg.c
37491 index d214e92..9649863 100644
37492 --- a/block/bsg.c
37493 +++ b/block/bsg.c
37494 @@ -140,16 +140,24 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
37495 struct sg_io_v4 *hdr, struct bsg_device *bd,
37496 fmode_t has_write_perm)
37497 {
37498 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37499 + unsigned char *cmdptr;
37500 +
37501 if (hdr->request_len > BLK_MAX_CDB) {
37502 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
37503 if (!rq->cmd)
37504 return -ENOMEM;
37505 - }
37506 + cmdptr = rq->cmd;
37507 + } else
37508 + cmdptr = tmpcmd;
37509
37510 - if (copy_from_user(rq->cmd, (void __user *)(unsigned long)hdr->request,
37511 + if (copy_from_user(cmdptr, (void __user *)(unsigned long)hdr->request,
37512 hdr->request_len))
37513 return -EFAULT;
37514
37515 + if (cmdptr != rq->cmd)
37516 + memcpy(rq->cmd, cmdptr, hdr->request_len);
37517 +
37518 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
37519 if (blk_verify_command(rq->cmd, has_write_perm))
37520 return -EPERM;
37521 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
37522 index f678c73..f35aa18 100644
37523 --- a/block/compat_ioctl.c
37524 +++ b/block/compat_ioctl.c
37525 @@ -156,7 +156,7 @@ static int compat_cdrom_generic_command(struct block_device *bdev, fmode_t mode,
37526 cgc = compat_alloc_user_space(sizeof(*cgc));
37527 cgc32 = compat_ptr(arg);
37528
37529 - if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
37530 + if (copy_in_user(cgc->cmd, cgc32->cmd, sizeof(cgc->cmd)) ||
37531 get_user(data, &cgc32->buffer) ||
37532 put_user(compat_ptr(data), &cgc->buffer) ||
37533 copy_in_user(&cgc->buflen, &cgc32->buflen,
37534 @@ -341,7 +341,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
37535 err |= __get_user(f->spec1, &uf->spec1);
37536 err |= __get_user(f->fmt_gap, &uf->fmt_gap);
37537 err |= __get_user(name, &uf->name);
37538 - f->name = compat_ptr(name);
37539 + f->name = (void __force_kernel *)compat_ptr(name);
37540 if (err) {
37541 err = -EFAULT;
37542 goto out;
37543 diff --git a/block/genhd.c b/block/genhd.c
37544 index 59a1395..54ff187 100644
37545 --- a/block/genhd.c
37546 +++ b/block/genhd.c
37547 @@ -470,21 +470,24 @@ static char *bdevt_str(dev_t devt, char *buf)
37548
37549 /*
37550 * Register device numbers dev..(dev+range-1)
37551 - * range must be nonzero
37552 + * Noop if @range is zero.
37553 * The hash chain is sorted on range, so that subranges can override.
37554 */
37555 void blk_register_region(dev_t devt, unsigned long range, struct module *module,
37556 struct kobject *(*probe)(dev_t, int *, void *),
37557 int (*lock)(dev_t, void *), void *data)
37558 {
37559 - kobj_map(bdev_map, devt, range, module, probe, lock, data);
37560 + if (range)
37561 + kobj_map(bdev_map, devt, range, module, probe, lock, data);
37562 }
37563
37564 EXPORT_SYMBOL(blk_register_region);
37565
37566 +/* undo blk_register_region(), noop if @range is zero */
37567 void blk_unregister_region(dev_t devt, unsigned long range)
37568 {
37569 - kobj_unmap(bdev_map, devt, range);
37570 + if (range)
37571 + kobj_unmap(bdev_map, devt, range);
37572 }
37573
37574 EXPORT_SYMBOL(blk_unregister_region);
37575 diff --git a/block/partitions/efi.c b/block/partitions/efi.c
37576 index 26cb624..a49c3a5 100644
37577 --- a/block/partitions/efi.c
37578 +++ b/block/partitions/efi.c
37579 @@ -293,14 +293,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
37580 if (!gpt)
37581 return NULL;
37582
37583 + if (!le32_to_cpu(gpt->num_partition_entries))
37584 + return NULL;
37585 + pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
37586 + if (!pte)
37587 + return NULL;
37588 +
37589 count = le32_to_cpu(gpt->num_partition_entries) *
37590 le32_to_cpu(gpt->sizeof_partition_entry);
37591 - if (!count)
37592 - return NULL;
37593 - pte = kmalloc(count, GFP_KERNEL);
37594 - if (!pte)
37595 - return NULL;
37596 -
37597 if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
37598 (u8 *) pte, count) < count) {
37599 kfree(pte);
37600 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
37601 index dda653c..028a13ee 100644
37602 --- a/block/scsi_ioctl.c
37603 +++ b/block/scsi_ioctl.c
37604 @@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
37605 return put_user(0, p);
37606 }
37607
37608 -static int sg_get_timeout(struct request_queue *q)
37609 +static int __intentional_overflow(-1) sg_get_timeout(struct request_queue *q)
37610 {
37611 return jiffies_to_clock_t(q->sg_timeout);
37612 }
37613 @@ -227,8 +227,20 @@ EXPORT_SYMBOL(blk_verify_command);
37614 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
37615 struct sg_io_hdr *hdr, fmode_t mode)
37616 {
37617 - if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
37618 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37619 + unsigned char *cmdptr;
37620 +
37621 + if (rq->cmd != rq->__cmd)
37622 + cmdptr = rq->cmd;
37623 + else
37624 + cmdptr = tmpcmd;
37625 +
37626 + if (copy_from_user(cmdptr, hdr->cmdp, hdr->cmd_len))
37627 return -EFAULT;
37628 +
37629 + if (cmdptr != rq->cmd)
37630 + memcpy(rq->cmd, cmdptr, hdr->cmd_len);
37631 +
37632 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
37633 return -EPERM;
37634
37635 @@ -420,6 +432,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37636 int err;
37637 unsigned int in_len, out_len, bytes, opcode, cmdlen;
37638 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
37639 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37640 + unsigned char *cmdptr;
37641
37642 if (!sic)
37643 return -EINVAL;
37644 @@ -458,9 +472,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37645 */
37646 err = -EFAULT;
37647 rq->cmd_len = cmdlen;
37648 - if (copy_from_user(rq->cmd, sic->data, cmdlen))
37649 +
37650 + if (rq->cmd != rq->__cmd)
37651 + cmdptr = rq->cmd;
37652 + else
37653 + cmdptr = tmpcmd;
37654 +
37655 + if (copy_from_user(cmdptr, sic->data, cmdlen))
37656 goto error;
37657
37658 + if (rq->cmd != cmdptr)
37659 + memcpy(rq->cmd, cmdptr, cmdlen);
37660 +
37661 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
37662 goto error;
37663
37664 diff --git a/crypto/cryptd.c b/crypto/cryptd.c
37665 index 22ba81f..1acac67 100644
37666 --- a/crypto/cryptd.c
37667 +++ b/crypto/cryptd.c
37668 @@ -63,7 +63,7 @@ struct cryptd_blkcipher_ctx {
37669
37670 struct cryptd_blkcipher_request_ctx {
37671 crypto_completion_t complete;
37672 -};
37673 +} __no_const;
37674
37675 struct cryptd_hash_ctx {
37676 struct crypto_shash *child;
37677 @@ -80,7 +80,7 @@ struct cryptd_aead_ctx {
37678
37679 struct cryptd_aead_request_ctx {
37680 crypto_completion_t complete;
37681 -};
37682 +} __no_const;
37683
37684 static void cryptd_queue_worker(struct work_struct *work);
37685
37686 diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
37687 index 45e7d51..2967121 100644
37688 --- a/crypto/pcrypt.c
37689 +++ b/crypto/pcrypt.c
37690 @@ -385,7 +385,7 @@ static int pcrypt_sysfs_add(struct padata_instance *pinst, const char *name)
37691 int ret;
37692
37693 pinst->kobj.kset = pcrypt_kset;
37694 - ret = kobject_add(&pinst->kobj, NULL, name);
37695 + ret = kobject_add(&pinst->kobj, NULL, "%s", name);
37696 if (!ret)
37697 kobject_uevent(&pinst->kobj, KOBJ_ADD);
37698
37699 diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c
37700 index ea5815c..5880da6 100644
37701 --- a/crypto/scatterwalk.c
37702 +++ b/crypto/scatterwalk.c
37703 @@ -109,14 +109,20 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
37704 {
37705 struct scatter_walk walk;
37706 struct scatterlist tmp[2];
37707 + void *realbuf = buf;
37708
37709 if (!nbytes)
37710 return;
37711
37712 sg = scatterwalk_ffwd(tmp, sg, start);
37713
37714 - if (sg_page(sg) == virt_to_page(buf) &&
37715 - sg->offset == offset_in_page(buf))
37716 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
37717 + if (object_starts_on_stack(buf))
37718 + realbuf = buf - current->stack + current->lowmem_stack;
37719 +#endif
37720 +
37721 + if (sg_page(sg) == virt_to_page(realbuf) &&
37722 + sg->offset == offset_in_page(realbuf))
37723 return;
37724
37725 scatterwalk_start(&walk, sg);
37726 diff --git a/crypto/zlib.c b/crypto/zlib.c
37727 index d51a30a..b6891a3 100644
37728 --- a/crypto/zlib.c
37729 +++ b/crypto/zlib.c
37730 @@ -95,10 +95,10 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37731 zlib_comp_exit(ctx);
37732
37733 window_bits = tb[ZLIB_COMP_WINDOWBITS]
37734 - ? nla_get_u32(tb[ZLIB_COMP_WINDOWBITS])
37735 + ? nla_get_s32(tb[ZLIB_COMP_WINDOWBITS])
37736 : MAX_WBITS;
37737 mem_level = tb[ZLIB_COMP_MEMLEVEL]
37738 - ? nla_get_u32(tb[ZLIB_COMP_MEMLEVEL])
37739 + ? nla_get_s32(tb[ZLIB_COMP_MEMLEVEL])
37740 : DEF_MEM_LEVEL;
37741
37742 workspacesize = zlib_deflate_workspacesize(window_bits, mem_level);
37743 @@ -108,15 +108,15 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37744
37745 ret = zlib_deflateInit2(stream,
37746 tb[ZLIB_COMP_LEVEL]
37747 - ? nla_get_u32(tb[ZLIB_COMP_LEVEL])
37748 + ? nla_get_s32(tb[ZLIB_COMP_LEVEL])
37749 : Z_DEFAULT_COMPRESSION,
37750 tb[ZLIB_COMP_METHOD]
37751 - ? nla_get_u32(tb[ZLIB_COMP_METHOD])
37752 + ? nla_get_s32(tb[ZLIB_COMP_METHOD])
37753 : Z_DEFLATED,
37754 window_bits,
37755 mem_level,
37756 tb[ZLIB_COMP_STRATEGY]
37757 - ? nla_get_u32(tb[ZLIB_COMP_STRATEGY])
37758 + ? nla_get_s32(tb[ZLIB_COMP_STRATEGY])
37759 : Z_DEFAULT_STRATEGY);
37760 if (ret != Z_OK) {
37761 vfree(stream->workspace);
37762 @@ -224,7 +224,7 @@ static int zlib_decompress_setup(struct crypto_pcomp *tfm, const void *params,
37763 zlib_decomp_exit(ctx);
37764
37765 ctx->decomp_windowBits = tb[ZLIB_DECOMP_WINDOWBITS]
37766 - ? nla_get_u32(tb[ZLIB_DECOMP_WINDOWBITS])
37767 + ? nla_get_s32(tb[ZLIB_DECOMP_WINDOWBITS])
37768 : DEF_WBITS;
37769
37770 stream->workspace = vzalloc(zlib_inflate_workspacesize());
37771 diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
37772 index 8c2fe2f..fc47c12 100644
37773 --- a/drivers/acpi/acpi_video.c
37774 +++ b/drivers/acpi/acpi_video.c
37775 @@ -398,7 +398,7 @@ static int video_disable_backlight_sysfs_if(
37776 return 0;
37777 }
37778
37779 -static struct dmi_system_id video_dmi_table[] = {
37780 +static const struct dmi_system_id video_dmi_table[] = {
37781 /*
37782 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
37783 */
37784 diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
37785 index 52dfd0d..8386baf 100644
37786 --- a/drivers/acpi/acpica/hwxfsleep.c
37787 +++ b/drivers/acpi/acpica/hwxfsleep.c
37788 @@ -70,11 +70,12 @@ static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
37789 /* Legacy functions are optional, based upon ACPI_REDUCED_HARDWARE */
37790
37791 static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
37792 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37793 - acpi_hw_extended_sleep},
37794 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37795 - acpi_hw_extended_wake_prep},
37796 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), acpi_hw_extended_wake}
37797 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37798 + .extended_function = acpi_hw_extended_sleep},
37799 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37800 + .extended_function = acpi_hw_extended_wake_prep},
37801 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake),
37802 + .extended_function = acpi_hw_extended_wake}
37803 };
37804
37805 /*
37806 diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
37807 index 16129c7..8b675cd 100644
37808 --- a/drivers/acpi/apei/apei-internal.h
37809 +++ b/drivers/acpi/apei/apei-internal.h
37810 @@ -19,7 +19,7 @@ typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *ctx,
37811 struct apei_exec_ins_type {
37812 u32 flags;
37813 apei_exec_ins_func_t run;
37814 -};
37815 +} __do_const;
37816
37817 struct apei_exec_context {
37818 u32 ip;
37819 diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
37820 index 2bfd53c..391e9a4 100644
37821 --- a/drivers/acpi/apei/ghes.c
37822 +++ b/drivers/acpi/apei/ghes.c
37823 @@ -478,7 +478,7 @@ static void __ghes_print_estatus(const char *pfx,
37824 const struct acpi_hest_generic *generic,
37825 const struct acpi_hest_generic_status *estatus)
37826 {
37827 - static atomic_t seqno;
37828 + static atomic_unchecked_t seqno;
37829 unsigned int curr_seqno;
37830 char pfx_seq[64];
37831
37832 @@ -489,7 +489,7 @@ static void __ghes_print_estatus(const char *pfx,
37833 else
37834 pfx = KERN_ERR;
37835 }
37836 - curr_seqno = atomic_inc_return(&seqno);
37837 + curr_seqno = atomic_inc_return_unchecked(&seqno);
37838 snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}" HW_ERR, pfx, curr_seqno);
37839 printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n",
37840 pfx_seq, generic->header.source_id);
37841 diff --git a/drivers/acpi/bgrt.c b/drivers/acpi/bgrt.c
37842 index a83e3c6..c3d617f 100644
37843 --- a/drivers/acpi/bgrt.c
37844 +++ b/drivers/acpi/bgrt.c
37845 @@ -86,8 +86,10 @@ static int __init bgrt_init(void)
37846 if (!bgrt_image)
37847 return -ENODEV;
37848
37849 - bin_attr_image.private = bgrt_image;
37850 - bin_attr_image.size = bgrt_image_size;
37851 + pax_open_kernel();
37852 + *(void **)&bin_attr_image.private = bgrt_image;
37853 + *(size_t *)&bin_attr_image.size = bgrt_image_size;
37854 + pax_close_kernel();
37855
37856 bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
37857 if (!bgrt_kobj)
37858 diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
37859 index 278dc4b..976433d 100644
37860 --- a/drivers/acpi/blacklist.c
37861 +++ b/drivers/acpi/blacklist.c
37862 @@ -51,7 +51,7 @@ struct acpi_blacklist_item {
37863 u32 is_critical_error;
37864 };
37865
37866 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata;
37867 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst;
37868
37869 /*
37870 * POLICY: If *anything* doesn't work, put it on the blacklist.
37871 @@ -172,7 +172,7 @@ static int __init dmi_enable_rev_override(const struct dmi_system_id *d)
37872 }
37873 #endif
37874
37875 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
37876 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
37877 {
37878 .callback = dmi_disable_osi_vista,
37879 .ident = "Fujitsu Siemens",
37880 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
37881 index 513e7230e..802015a 100644
37882 --- a/drivers/acpi/bus.c
37883 +++ b/drivers/acpi/bus.c
37884 @@ -67,7 +67,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
37885 }
37886 #endif
37887
37888 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37889 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37890 /*
37891 * Invoke DSDT corruption work-around on all Toshiba Satellite.
37892 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
37893 @@ -83,7 +83,7 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37894 {}
37895 };
37896 #else
37897 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37898 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37899 {}
37900 };
37901 #endif
37902 diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
37903 index c68e724..e863008 100644
37904 --- a/drivers/acpi/custom_method.c
37905 +++ b/drivers/acpi/custom_method.c
37906 @@ -29,6 +29,10 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
37907 struct acpi_table_header table;
37908 acpi_status status;
37909
37910 +#ifdef CONFIG_GRKERNSEC_KMEM
37911 + return -EPERM;
37912 +#endif
37913 +
37914 if (!(*ppos)) {
37915 /* parse the table header to get the table length */
37916 if (count <= sizeof(struct acpi_table_header))
37917 diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c
37918 index 88dbbb1..90714c0 100644
37919 --- a/drivers/acpi/device_pm.c
37920 +++ b/drivers/acpi/device_pm.c
37921 @@ -1045,6 +1045,8 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
37922
37923 #endif /* CONFIG_PM_SLEEP */
37924
37925 +static void acpi_dev_pm_detach(struct device *dev, bool power_off);
37926 +
37927 static struct dev_pm_domain acpi_general_pm_domain = {
37928 .ops = {
37929 .runtime_suspend = acpi_subsys_runtime_suspend,
37930 @@ -1061,6 +1063,7 @@ static struct dev_pm_domain acpi_general_pm_domain = {
37931 .restore_early = acpi_subsys_resume_early,
37932 #endif
37933 },
37934 + .detach = acpi_dev_pm_detach
37935 };
37936
37937 /**
37938 @@ -1130,7 +1133,6 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
37939 acpi_device_wakeup(adev, ACPI_STATE_S0, false);
37940 }
37941
37942 - dev->pm_domain->detach = acpi_dev_pm_detach;
37943 return 0;
37944 }
37945 EXPORT_SYMBOL_GPL(acpi_dev_pm_attach);
37946 diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
37947 index 9d4761d..ece2163 100644
37948 --- a/drivers/acpi/ec.c
37949 +++ b/drivers/acpi/ec.c
37950 @@ -1434,7 +1434,7 @@ static int ec_clear_on_resume(const struct dmi_system_id *id)
37951 return 0;
37952 }
37953
37954 -static struct dmi_system_id ec_dmi_table[] __initdata = {
37955 +static const struct dmi_system_id ec_dmi_table[] __initconst = {
37956 {
37957 ec_skip_dsdt_scan, "Compal JFL92", {
37958 DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
37959 diff --git a/drivers/acpi/pci_slot.c b/drivers/acpi/pci_slot.c
37960 index 139d9e4..9a9d799 100644
37961 --- a/drivers/acpi/pci_slot.c
37962 +++ b/drivers/acpi/pci_slot.c
37963 @@ -195,7 +195,7 @@ static int do_sta_before_sun(const struct dmi_system_id *d)
37964 return 0;
37965 }
37966
37967 -static struct dmi_system_id acpi_pci_slot_dmi_table[] __initdata = {
37968 +static const struct dmi_system_id acpi_pci_slot_dmi_table[] __initconst = {
37969 /*
37970 * Fujitsu Primequest machines will return 1023 to indicate an
37971 * error if the _SUN method is evaluated on SxFy objects that
37972 diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
37973 index d9f7158..168e742 100644
37974 --- a/drivers/acpi/processor_driver.c
37975 +++ b/drivers/acpi/processor_driver.c
37976 @@ -159,7 +159,7 @@ static int acpi_cpu_soft_notify(struct notifier_block *nfb,
37977 return NOTIFY_OK;
37978 }
37979
37980 -static struct notifier_block __refdata acpi_cpu_notifier = {
37981 +static struct notifier_block __refconst acpi_cpu_notifier = {
37982 .notifier_call = acpi_cpu_soft_notify,
37983 };
37984
37985 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
37986 index d540f42..d5b32ac 100644
37987 --- a/drivers/acpi/processor_idle.c
37988 +++ b/drivers/acpi/processor_idle.c
37989 @@ -910,7 +910,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
37990 {
37991 int i, count = CPUIDLE_DRIVER_STATE_START;
37992 struct acpi_processor_cx *cx;
37993 - struct cpuidle_state *state;
37994 + cpuidle_state_no_const *state;
37995 struct cpuidle_driver *drv = &acpi_idle_driver;
37996
37997 if (!pr->flags.power_setup_done)
37998 diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
37999 index 7cfbda4..74f738c 100644
38000 --- a/drivers/acpi/processor_pdc.c
38001 +++ b/drivers/acpi/processor_pdc.c
38002 @@ -173,7 +173,7 @@ static int __init set_no_mwait(const struct dmi_system_id *id)
38003 return 0;
38004 }
38005
38006 -static struct dmi_system_id processor_idle_dmi_table[] __initdata = {
38007 +static const struct dmi_system_id processor_idle_dmi_table[] __initconst = {
38008 {
38009 set_no_mwait, "Extensa 5220", {
38010 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
38011 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
38012 index 2f0d4db..b9e9b15 100644
38013 --- a/drivers/acpi/sleep.c
38014 +++ b/drivers/acpi/sleep.c
38015 @@ -148,7 +148,7 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
38016 return 0;
38017 }
38018
38019 -static struct dmi_system_id acpisleep_dmi_table[] __initdata = {
38020 +static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
38021 {
38022 .callback = init_old_suspend_ordering,
38023 .ident = "Abit KN9 (nForce4 variant)",
38024 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
38025 index 0876d77b..3ba0127 100644
38026 --- a/drivers/acpi/sysfs.c
38027 +++ b/drivers/acpi/sysfs.c
38028 @@ -423,11 +423,11 @@ static u32 num_counters;
38029 static struct attribute **all_attrs;
38030 static u32 acpi_gpe_count;
38031
38032 -static struct attribute_group interrupt_stats_attr_group = {
38033 +static attribute_group_no_const interrupt_stats_attr_group = {
38034 .name = "interrupts",
38035 };
38036
38037 -static struct kobj_attribute *counter_attrs;
38038 +static kobj_attribute_no_const *counter_attrs;
38039
38040 static void delete_gpe_attr_array(void)
38041 {
38042 diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
38043 index 6d4e44e..44fb839 100644
38044 --- a/drivers/acpi/thermal.c
38045 +++ b/drivers/acpi/thermal.c
38046 @@ -1212,7 +1212,7 @@ static int thermal_psv(const struct dmi_system_id *d) {
38047 return 0;
38048 }
38049
38050 -static struct dmi_system_id thermal_dmi_table[] __initdata = {
38051 +static const struct dmi_system_id thermal_dmi_table[] __initconst = {
38052 /*
38053 * Award BIOS on this AOpen makes thermal control almost worthless.
38054 * http://bugzilla.kernel.org/show_bug.cgi?id=8842
38055 diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
38056 index 2922f1f..6c2fdaf 100644
38057 --- a/drivers/acpi/video_detect.c
38058 +++ b/drivers/acpi/video_detect.c
38059 @@ -41,7 +41,6 @@ ACPI_MODULE_NAME("video");
38060 void acpi_video_unregister_backlight(void);
38061
38062 static bool backlight_notifier_registered;
38063 -static struct notifier_block backlight_nb;
38064 static struct work_struct backlight_notify_work;
38065
38066 static enum acpi_backlight_type acpi_backlight_cmdline = acpi_backlight_undef;
38067 @@ -284,6 +283,10 @@ static int acpi_video_backlight_notify(struct notifier_block *nb,
38068 return NOTIFY_OK;
38069 }
38070
38071 +static struct notifier_block backlight_nb = {
38072 + .notifier_call = acpi_video_backlight_notify,
38073 +};
38074 +
38075 /*
38076 * Determine which type of backlight interface to use on this system,
38077 * First check cmdline, then dmi quirks, then do autodetect.
38078 @@ -314,8 +317,6 @@ enum acpi_backlight_type acpi_video_get_backlight_type(void)
38079 &video_caps, NULL);
38080 INIT_WORK(&backlight_notify_work,
38081 acpi_video_backlight_notify_work);
38082 - backlight_nb.notifier_call = acpi_video_backlight_notify;
38083 - backlight_nb.priority = 0;
38084 if (backlight_register_notifier(&backlight_nb) == 0)
38085 backlight_notifier_registered = true;
38086 init_done = true;
38087 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
38088 index 790e0de..6bae378 100644
38089 --- a/drivers/ata/libata-core.c
38090 +++ b/drivers/ata/libata-core.c
38091 @@ -102,7 +102,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
38092 static void ata_dev_xfermask(struct ata_device *dev);
38093 static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
38094
38095 -atomic_t ata_print_id = ATOMIC_INIT(0);
38096 +atomic_unchecked_t ata_print_id = ATOMIC_INIT(0);
38097
38098 struct ata_force_param {
38099 const char *name;
38100 @@ -4800,7 +4800,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
38101 struct ata_port *ap;
38102 unsigned int tag;
38103
38104 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
38105 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
38106 ap = qc->ap;
38107
38108 qc->flags = 0;
38109 @@ -4817,7 +4817,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
38110 struct ata_port *ap;
38111 struct ata_link *link;
38112
38113 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
38114 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
38115 WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
38116 ap = qc->ap;
38117 link = qc->dev->link;
38118 @@ -5924,6 +5924,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
38119 return;
38120
38121 spin_lock(&lock);
38122 + pax_open_kernel();
38123
38124 for (cur = ops->inherits; cur; cur = cur->inherits) {
38125 void **inherit = (void **)cur;
38126 @@ -5937,8 +5938,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
38127 if (IS_ERR(*pp))
38128 *pp = NULL;
38129
38130 - ops->inherits = NULL;
38131 + *(struct ata_port_operations **)&ops->inherits = NULL;
38132
38133 + pax_close_kernel();
38134 spin_unlock(&lock);
38135 }
38136
38137 @@ -6134,7 +6136,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
38138
38139 /* give ports names and add SCSI hosts */
38140 for (i = 0; i < host->n_ports; i++) {
38141 - host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
38142 + host->ports[i]->print_id = atomic_inc_return_unchecked(&ata_print_id);
38143 host->ports[i]->local_port_no = i + 1;
38144 }
38145
38146 diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
38147 index 0d7f0da..bc20aa6 100644
38148 --- a/drivers/ata/libata-scsi.c
38149 +++ b/drivers/ata/libata-scsi.c
38150 @@ -4193,7 +4193,7 @@ int ata_sas_port_init(struct ata_port *ap)
38151
38152 if (rc)
38153 return rc;
38154 - ap->print_id = atomic_inc_return(&ata_print_id);
38155 + ap->print_id = atomic_inc_return_unchecked(&ata_print_id);
38156 return 0;
38157 }
38158 EXPORT_SYMBOL_GPL(ata_sas_port_init);
38159 diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
38160 index f840ca1..edd6ef3 100644
38161 --- a/drivers/ata/libata.h
38162 +++ b/drivers/ata/libata.h
38163 @@ -53,7 +53,7 @@ enum {
38164 ATA_DNXFER_QUIET = (1 << 31),
38165 };
38166
38167 -extern atomic_t ata_print_id;
38168 +extern atomic_unchecked_t ata_print_id;
38169 extern int atapi_passthru16;
38170 extern int libata_fua;
38171 extern int libata_noacpi;
38172 diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
38173 index 5d9ee99..8fa2585 100644
38174 --- a/drivers/ata/pata_arasan_cf.c
38175 +++ b/drivers/ata/pata_arasan_cf.c
38176 @@ -865,7 +865,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
38177 /* Handle platform specific quirks */
38178 if (quirk) {
38179 if (quirk & CF_BROKEN_PIO) {
38180 - ap->ops->set_piomode = NULL;
38181 + pax_open_kernel();
38182 + *(void **)&ap->ops->set_piomode = NULL;
38183 + pax_close_kernel();
38184 ap->pio_mask = 0;
38185 }
38186 if (quirk & CF_BROKEN_MWDMA)
38187 diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
38188 index f9b983a..887b9d8 100644
38189 --- a/drivers/atm/adummy.c
38190 +++ b/drivers/atm/adummy.c
38191 @@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct sk_buff *skb)
38192 vcc->pop(vcc, skb);
38193 else
38194 dev_kfree_skb_any(skb);
38195 - atomic_inc(&vcc->stats->tx);
38196 + atomic_inc_unchecked(&vcc->stats->tx);
38197
38198 return 0;
38199 }
38200 diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
38201 index f1a9198..f466a4a 100644
38202 --- a/drivers/atm/ambassador.c
38203 +++ b/drivers/atm/ambassador.c
38204 @@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, tx_out * tx) {
38205 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
38206
38207 // VC layer stats
38208 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38209 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38210
38211 // free the descriptor
38212 kfree (tx_descr);
38213 @@ -495,7 +495,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
38214 dump_skb ("<<<", vc, skb);
38215
38216 // VC layer stats
38217 - atomic_inc(&atm_vcc->stats->rx);
38218 + atomic_inc_unchecked(&atm_vcc->stats->rx);
38219 __net_timestamp(skb);
38220 // end of our responsibility
38221 atm_vcc->push (atm_vcc, skb);
38222 @@ -510,7 +510,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
38223 } else {
38224 PRINTK (KERN_INFO, "dropped over-size frame");
38225 // should we count this?
38226 - atomic_inc(&atm_vcc->stats->rx_drop);
38227 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38228 }
38229
38230 } else {
38231 @@ -1338,7 +1338,7 @@ static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {
38232 }
38233
38234 if (check_area (skb->data, skb->len)) {
38235 - atomic_inc(&atm_vcc->stats->tx_err);
38236 + atomic_inc_unchecked(&atm_vcc->stats->tx_err);
38237 return -ENOMEM; // ?
38238 }
38239
38240 diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c
38241 index 480fa6f..947067c 100644
38242 --- a/drivers/atm/atmtcp.c
38243 +++ b/drivers/atm/atmtcp.c
38244 @@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38245 if (vcc->pop) vcc->pop(vcc,skb);
38246 else dev_kfree_skb(skb);
38247 if (dev_data) return 0;
38248 - atomic_inc(&vcc->stats->tx_err);
38249 + atomic_inc_unchecked(&vcc->stats->tx_err);
38250 return -ENOLINK;
38251 }
38252 size = skb->len+sizeof(struct atmtcp_hdr);
38253 @@ -214,7 +214,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38254 if (!new_skb) {
38255 if (vcc->pop) vcc->pop(vcc,skb);
38256 else dev_kfree_skb(skb);
38257 - atomic_inc(&vcc->stats->tx_err);
38258 + atomic_inc_unchecked(&vcc->stats->tx_err);
38259 return -ENOBUFS;
38260 }
38261 hdr = (void *) skb_put(new_skb,sizeof(struct atmtcp_hdr));
38262 @@ -225,8 +225,8 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38263 if (vcc->pop) vcc->pop(vcc,skb);
38264 else dev_kfree_skb(skb);
38265 out_vcc->push(out_vcc,new_skb);
38266 - atomic_inc(&vcc->stats->tx);
38267 - atomic_inc(&out_vcc->stats->rx);
38268 + atomic_inc_unchecked(&vcc->stats->tx);
38269 + atomic_inc_unchecked(&out_vcc->stats->rx);
38270 return 0;
38271 }
38272
38273 @@ -300,7 +300,7 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
38274 read_unlock(&vcc_sklist_lock);
38275 if (!out_vcc) {
38276 result = -EUNATCH;
38277 - atomic_inc(&vcc->stats->tx_err);
38278 + atomic_inc_unchecked(&vcc->stats->tx_err);
38279 goto done;
38280 }
38281 skb_pull(skb,sizeof(struct atmtcp_hdr));
38282 @@ -312,8 +312,8 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
38283 __net_timestamp(new_skb);
38284 skb_copy_from_linear_data(skb, skb_put(new_skb, skb->len), skb->len);
38285 out_vcc->push(out_vcc,new_skb);
38286 - atomic_inc(&vcc->stats->tx);
38287 - atomic_inc(&out_vcc->stats->rx);
38288 + atomic_inc_unchecked(&vcc->stats->tx);
38289 + atomic_inc_unchecked(&out_vcc->stats->rx);
38290 done:
38291 if (vcc->pop) vcc->pop(vcc,skb);
38292 else dev_kfree_skb(skb);
38293 diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
38294 index 6339efd..2b441d5 100644
38295 --- a/drivers/atm/eni.c
38296 +++ b/drivers/atm/eni.c
38297 @@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc)
38298 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
38299 vcc->dev->number);
38300 length = 0;
38301 - atomic_inc(&vcc->stats->rx_err);
38302 + atomic_inc_unchecked(&vcc->stats->rx_err);
38303 }
38304 else {
38305 length = ATM_CELL_SIZE-1; /* no HEC */
38306 @@ -580,7 +580,7 @@ static int rx_aal5(struct atm_vcc *vcc)
38307 size);
38308 }
38309 eff = length = 0;
38310 - atomic_inc(&vcc->stats->rx_err);
38311 + atomic_inc_unchecked(&vcc->stats->rx_err);
38312 }
38313 else {
38314 size = (descr & MID_RED_COUNT)*(ATM_CELL_PAYLOAD >> 2);
38315 @@ -597,7 +597,7 @@ static int rx_aal5(struct atm_vcc *vcc)
38316 "(VCI=%d,length=%ld,size=%ld (descr 0x%lx))\n",
38317 vcc->dev->number,vcc->vci,length,size << 2,descr);
38318 length = eff = 0;
38319 - atomic_inc(&vcc->stats->rx_err);
38320 + atomic_inc_unchecked(&vcc->stats->rx_err);
38321 }
38322 }
38323 skb = eff ? atm_alloc_charge(vcc,eff << 2,GFP_ATOMIC) : NULL;
38324 @@ -770,7 +770,7 @@ rx_dequeued++;
38325 vcc->push(vcc,skb);
38326 pushed++;
38327 }
38328 - atomic_inc(&vcc->stats->rx);
38329 + atomic_inc_unchecked(&vcc->stats->rx);
38330 }
38331 wake_up(&eni_dev->rx_wait);
38332 }
38333 @@ -1230,7 +1230,7 @@ static void dequeue_tx(struct atm_dev *dev)
38334 DMA_TO_DEVICE);
38335 if (vcc->pop) vcc->pop(vcc,skb);
38336 else dev_kfree_skb_irq(skb);
38337 - atomic_inc(&vcc->stats->tx);
38338 + atomic_inc_unchecked(&vcc->stats->tx);
38339 wake_up(&eni_dev->tx_wait);
38340 dma_complete++;
38341 }
38342 diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
38343 index 82f2ae0..f205c02 100644
38344 --- a/drivers/atm/firestream.c
38345 +++ b/drivers/atm/firestream.c
38346 @@ -749,7 +749,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)
38347 }
38348 }
38349
38350 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38351 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38352
38353 fs_dprintk (FS_DEBUG_TXMEM, "i");
38354 fs_dprintk (FS_DEBUG_ALLOC, "Free t-skb: %p\n", skb);
38355 @@ -816,7 +816,7 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
38356 #endif
38357 skb_put (skb, qe->p1 & 0xffff);
38358 ATM_SKB(skb)->vcc = atm_vcc;
38359 - atomic_inc(&atm_vcc->stats->rx);
38360 + atomic_inc_unchecked(&atm_vcc->stats->rx);
38361 __net_timestamp(skb);
38362 fs_dprintk (FS_DEBUG_ALLOC, "Free rec-skb: %p (pushed)\n", skb);
38363 atm_vcc->push (atm_vcc, skb);
38364 @@ -837,12 +837,12 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
38365 kfree (pe);
38366 }
38367 if (atm_vcc)
38368 - atomic_inc(&atm_vcc->stats->rx_drop);
38369 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38370 break;
38371 case 0x1f: /* Reassembly abort: no buffers. */
38372 /* Silently increment error counter. */
38373 if (atm_vcc)
38374 - atomic_inc(&atm_vcc->stats->rx_drop);
38375 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38376 break;
38377 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
38378 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
38379 diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
38380 index 75dde90..4309ead 100644
38381 --- a/drivers/atm/fore200e.c
38382 +++ b/drivers/atm/fore200e.c
38383 @@ -932,9 +932,9 @@ fore200e_tx_irq(struct fore200e* fore200e)
38384 #endif
38385 /* check error condition */
38386 if (*entry->status & STATUS_ERROR)
38387 - atomic_inc(&vcc->stats->tx_err);
38388 + atomic_inc_unchecked(&vcc->stats->tx_err);
38389 else
38390 - atomic_inc(&vcc->stats->tx);
38391 + atomic_inc_unchecked(&vcc->stats->tx);
38392 }
38393 }
38394
38395 @@ -1083,7 +1083,7 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
38396 if (skb == NULL) {
38397 DPRINTK(2, "unable to alloc new skb, rx PDU length = %d\n", pdu_len);
38398
38399 - atomic_inc(&vcc->stats->rx_drop);
38400 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38401 return -ENOMEM;
38402 }
38403
38404 @@ -1126,14 +1126,14 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
38405
38406 dev_kfree_skb_any(skb);
38407
38408 - atomic_inc(&vcc->stats->rx_drop);
38409 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38410 return -ENOMEM;
38411 }
38412
38413 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
38414
38415 vcc->push(vcc, skb);
38416 - atomic_inc(&vcc->stats->rx);
38417 + atomic_inc_unchecked(&vcc->stats->rx);
38418
38419 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
38420
38421 @@ -1211,7 +1211,7 @@ fore200e_rx_irq(struct fore200e* fore200e)
38422 DPRINTK(2, "damaged PDU on %d.%d.%d\n",
38423 fore200e->atm_dev->number,
38424 entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
38425 - atomic_inc(&vcc->stats->rx_err);
38426 + atomic_inc_unchecked(&vcc->stats->rx_err);
38427 }
38428 }
38429
38430 @@ -1656,7 +1656,7 @@ fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
38431 goto retry_here;
38432 }
38433
38434 - atomic_inc(&vcc->stats->tx_err);
38435 + atomic_inc_unchecked(&vcc->stats->tx_err);
38436
38437 fore200e->tx_sat++;
38438 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
38439 diff --git a/drivers/atm/he.c b/drivers/atm/he.c
38440 index a8da3a5..67cf6c2 100644
38441 --- a/drivers/atm/he.c
38442 +++ b/drivers/atm/he.c
38443 @@ -1692,7 +1692,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38444
38445 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
38446 hprintk("HBUF_ERR! (cid 0x%x)\n", cid);
38447 - atomic_inc(&vcc->stats->rx_drop);
38448 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38449 goto return_host_buffers;
38450 }
38451
38452 @@ -1719,7 +1719,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38453 RBRQ_LEN_ERR(he_dev->rbrq_head)
38454 ? "LEN_ERR" : "",
38455 vcc->vpi, vcc->vci);
38456 - atomic_inc(&vcc->stats->rx_err);
38457 + atomic_inc_unchecked(&vcc->stats->rx_err);
38458 goto return_host_buffers;
38459 }
38460
38461 @@ -1771,7 +1771,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38462 vcc->push(vcc, skb);
38463 spin_lock(&he_dev->global_lock);
38464
38465 - atomic_inc(&vcc->stats->rx);
38466 + atomic_inc_unchecked(&vcc->stats->rx);
38467
38468 return_host_buffers:
38469 ++pdus_assembled;
38470 @@ -2097,7 +2097,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
38471 tpd->vcc->pop(tpd->vcc, tpd->skb);
38472 else
38473 dev_kfree_skb_any(tpd->skb);
38474 - atomic_inc(&tpd->vcc->stats->tx_err);
38475 + atomic_inc_unchecked(&tpd->vcc->stats->tx_err);
38476 }
38477 dma_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
38478 return;
38479 @@ -2509,7 +2509,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38480 vcc->pop(vcc, skb);
38481 else
38482 dev_kfree_skb_any(skb);
38483 - atomic_inc(&vcc->stats->tx_err);
38484 + atomic_inc_unchecked(&vcc->stats->tx_err);
38485 return -EINVAL;
38486 }
38487
38488 @@ -2520,7 +2520,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38489 vcc->pop(vcc, skb);
38490 else
38491 dev_kfree_skb_any(skb);
38492 - atomic_inc(&vcc->stats->tx_err);
38493 + atomic_inc_unchecked(&vcc->stats->tx_err);
38494 return -EINVAL;
38495 }
38496 #endif
38497 @@ -2532,7 +2532,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38498 vcc->pop(vcc, skb);
38499 else
38500 dev_kfree_skb_any(skb);
38501 - atomic_inc(&vcc->stats->tx_err);
38502 + atomic_inc_unchecked(&vcc->stats->tx_err);
38503 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38504 return -ENOMEM;
38505 }
38506 @@ -2574,7 +2574,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38507 vcc->pop(vcc, skb);
38508 else
38509 dev_kfree_skb_any(skb);
38510 - atomic_inc(&vcc->stats->tx_err);
38511 + atomic_inc_unchecked(&vcc->stats->tx_err);
38512 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38513 return -ENOMEM;
38514 }
38515 @@ -2605,7 +2605,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38516 __enqueue_tpd(he_dev, tpd, cid);
38517 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38518
38519 - atomic_inc(&vcc->stats->tx);
38520 + atomic_inc_unchecked(&vcc->stats->tx);
38521
38522 return 0;
38523 }
38524 diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
38525 index 527bbd5..96570c8 100644
38526 --- a/drivers/atm/horizon.c
38527 +++ b/drivers/atm/horizon.c
38528 @@ -1018,7 +1018,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
38529 {
38530 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
38531 // VC layer stats
38532 - atomic_inc(&vcc->stats->rx);
38533 + atomic_inc_unchecked(&vcc->stats->rx);
38534 __net_timestamp(skb);
38535 // end of our responsibility
38536 vcc->push (vcc, skb);
38537 @@ -1170,7 +1170,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
38538 dev->tx_iovec = NULL;
38539
38540 // VC layer stats
38541 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38542 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38543
38544 // free the skb
38545 hrz_kfree_skb (skb);
38546 diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
38547 index 074616b..d6b3d5f 100644
38548 --- a/drivers/atm/idt77252.c
38549 +++ b/drivers/atm/idt77252.c
38550 @@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, struct vc_map *vc)
38551 else
38552 dev_kfree_skb(skb);
38553
38554 - atomic_inc(&vcc->stats->tx);
38555 + atomic_inc_unchecked(&vcc->stats->tx);
38556 }
38557
38558 atomic_dec(&scq->used);
38559 @@ -1073,13 +1073,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38560 if ((sb = dev_alloc_skb(64)) == NULL) {
38561 printk("%s: Can't allocate buffers for aal0.\n",
38562 card->name);
38563 - atomic_add(i, &vcc->stats->rx_drop);
38564 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38565 break;
38566 }
38567 if (!atm_charge(vcc, sb->truesize)) {
38568 RXPRINTK("%s: atm_charge() dropped aal0 packets.\n",
38569 card->name);
38570 - atomic_add(i - 1, &vcc->stats->rx_drop);
38571 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop);
38572 dev_kfree_skb(sb);
38573 break;
38574 }
38575 @@ -1096,7 +1096,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38576 ATM_SKB(sb)->vcc = vcc;
38577 __net_timestamp(sb);
38578 vcc->push(vcc, sb);
38579 - atomic_inc(&vcc->stats->rx);
38580 + atomic_inc_unchecked(&vcc->stats->rx);
38581
38582 cell += ATM_CELL_PAYLOAD;
38583 }
38584 @@ -1133,13 +1133,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38585 "(CDC: %08x)\n",
38586 card->name, len, rpp->len, readl(SAR_REG_CDC));
38587 recycle_rx_pool_skb(card, rpp);
38588 - atomic_inc(&vcc->stats->rx_err);
38589 + atomic_inc_unchecked(&vcc->stats->rx_err);
38590 return;
38591 }
38592 if (stat & SAR_RSQE_CRC) {
38593 RXPRINTK("%s: AAL5 CRC error.\n", card->name);
38594 recycle_rx_pool_skb(card, rpp);
38595 - atomic_inc(&vcc->stats->rx_err);
38596 + atomic_inc_unchecked(&vcc->stats->rx_err);
38597 return;
38598 }
38599 if (skb_queue_len(&rpp->queue) > 1) {
38600 @@ -1150,7 +1150,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38601 RXPRINTK("%s: Can't alloc RX skb.\n",
38602 card->name);
38603 recycle_rx_pool_skb(card, rpp);
38604 - atomic_inc(&vcc->stats->rx_err);
38605 + atomic_inc_unchecked(&vcc->stats->rx_err);
38606 return;
38607 }
38608 if (!atm_charge(vcc, skb->truesize)) {
38609 @@ -1169,7 +1169,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38610 __net_timestamp(skb);
38611
38612 vcc->push(vcc, skb);
38613 - atomic_inc(&vcc->stats->rx);
38614 + atomic_inc_unchecked(&vcc->stats->rx);
38615
38616 return;
38617 }
38618 @@ -1191,7 +1191,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38619 __net_timestamp(skb);
38620
38621 vcc->push(vcc, skb);
38622 - atomic_inc(&vcc->stats->rx);
38623 + atomic_inc_unchecked(&vcc->stats->rx);
38624
38625 if (skb->truesize > SAR_FB_SIZE_3)
38626 add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
38627 @@ -1302,14 +1302,14 @@ idt77252_rx_raw(struct idt77252_dev *card)
38628 if (vcc->qos.aal != ATM_AAL0) {
38629 RPRINTK("%s: raw cell for non AAL0 vc %u.%u\n",
38630 card->name, vpi, vci);
38631 - atomic_inc(&vcc->stats->rx_drop);
38632 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38633 goto drop;
38634 }
38635
38636 if ((sb = dev_alloc_skb(64)) == NULL) {
38637 printk("%s: Can't allocate buffers for AAL0.\n",
38638 card->name);
38639 - atomic_inc(&vcc->stats->rx_err);
38640 + atomic_inc_unchecked(&vcc->stats->rx_err);
38641 goto drop;
38642 }
38643
38644 @@ -1328,7 +1328,7 @@ idt77252_rx_raw(struct idt77252_dev *card)
38645 ATM_SKB(sb)->vcc = vcc;
38646 __net_timestamp(sb);
38647 vcc->push(vcc, sb);
38648 - atomic_inc(&vcc->stats->rx);
38649 + atomic_inc_unchecked(&vcc->stats->rx);
38650
38651 drop:
38652 skb_pull(queue, 64);
38653 @@ -1953,13 +1953,13 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38654
38655 if (vc == NULL) {
38656 printk("%s: NULL connection in send().\n", card->name);
38657 - atomic_inc(&vcc->stats->tx_err);
38658 + atomic_inc_unchecked(&vcc->stats->tx_err);
38659 dev_kfree_skb(skb);
38660 return -EINVAL;
38661 }
38662 if (!test_bit(VCF_TX, &vc->flags)) {
38663 printk("%s: Trying to transmit on a non-tx VC.\n", card->name);
38664 - atomic_inc(&vcc->stats->tx_err);
38665 + atomic_inc_unchecked(&vcc->stats->tx_err);
38666 dev_kfree_skb(skb);
38667 return -EINVAL;
38668 }
38669 @@ -1971,14 +1971,14 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38670 break;
38671 default:
38672 printk("%s: Unsupported AAL: %d\n", card->name, vcc->qos.aal);
38673 - atomic_inc(&vcc->stats->tx_err);
38674 + atomic_inc_unchecked(&vcc->stats->tx_err);
38675 dev_kfree_skb(skb);
38676 return -EINVAL;
38677 }
38678
38679 if (skb_shinfo(skb)->nr_frags != 0) {
38680 printk("%s: No scatter-gather yet.\n", card->name);
38681 - atomic_inc(&vcc->stats->tx_err);
38682 + atomic_inc_unchecked(&vcc->stats->tx_err);
38683 dev_kfree_skb(skb);
38684 return -EINVAL;
38685 }
38686 @@ -1986,7 +1986,7 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38687
38688 err = queue_skb(card, vc, skb, oam);
38689 if (err) {
38690 - atomic_inc(&vcc->stats->tx_err);
38691 + atomic_inc_unchecked(&vcc->stats->tx_err);
38692 dev_kfree_skb(skb);
38693 return err;
38694 }
38695 @@ -2009,7 +2009,7 @@ idt77252_send_oam(struct atm_vcc *vcc, void *cell, int flags)
38696 skb = dev_alloc_skb(64);
38697 if (!skb) {
38698 printk("%s: Out of memory in send_oam().\n", card->name);
38699 - atomic_inc(&vcc->stats->tx_err);
38700 + atomic_inc_unchecked(&vcc->stats->tx_err);
38701 return -ENOMEM;
38702 }
38703 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
38704 diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
38705 index 65e6590..df77d04 100644
38706 --- a/drivers/atm/iphase.c
38707 +++ b/drivers/atm/iphase.c
38708 @@ -1145,7 +1145,7 @@ static int rx_pkt(struct atm_dev *dev)
38709 status = (u_short) (buf_desc_ptr->desc_mode);
38710 if (status & (RX_CER | RX_PTE | RX_OFL))
38711 {
38712 - atomic_inc(&vcc->stats->rx_err);
38713 + atomic_inc_unchecked(&vcc->stats->rx_err);
38714 IF_ERR(printk("IA: bad packet, dropping it");)
38715 if (status & RX_CER) {
38716 IF_ERR(printk(" cause: packet CRC error\n");)
38717 @@ -1168,7 +1168,7 @@ static int rx_pkt(struct atm_dev *dev)
38718 len = dma_addr - buf_addr;
38719 if (len > iadev->rx_buf_sz) {
38720 printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz);
38721 - atomic_inc(&vcc->stats->rx_err);
38722 + atomic_inc_unchecked(&vcc->stats->rx_err);
38723 goto out_free_desc;
38724 }
38725
38726 @@ -1318,7 +1318,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38727 ia_vcc = INPH_IA_VCC(vcc);
38728 if (ia_vcc == NULL)
38729 {
38730 - atomic_inc(&vcc->stats->rx_err);
38731 + atomic_inc_unchecked(&vcc->stats->rx_err);
38732 atm_return(vcc, skb->truesize);
38733 dev_kfree_skb_any(skb);
38734 goto INCR_DLE;
38735 @@ -1330,7 +1330,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38736 if ((length > iadev->rx_buf_sz) || (length >
38737 (skb->len - sizeof(struct cpcs_trailer))))
38738 {
38739 - atomic_inc(&vcc->stats->rx_err);
38740 + atomic_inc_unchecked(&vcc->stats->rx_err);
38741 IF_ERR(printk("rx_dle_intr: Bad AAL5 trailer %d (skb len %d)",
38742 length, skb->len);)
38743 atm_return(vcc, skb->truesize);
38744 @@ -1346,7 +1346,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38745
38746 IF_RX(printk("rx_dle_intr: skb push");)
38747 vcc->push(vcc,skb);
38748 - atomic_inc(&vcc->stats->rx);
38749 + atomic_inc_unchecked(&vcc->stats->rx);
38750 iadev->rx_pkt_cnt++;
38751 }
38752 INCR_DLE:
38753 @@ -2828,15 +2828,15 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
38754 {
38755 struct k_sonet_stats *stats;
38756 stats = &PRIV(_ia_dev[board])->sonet_stats;
38757 - printk("section_bip: %d\n", atomic_read(&stats->section_bip));
38758 - printk("line_bip : %d\n", atomic_read(&stats->line_bip));
38759 - printk("path_bip : %d\n", atomic_read(&stats->path_bip));
38760 - printk("line_febe : %d\n", atomic_read(&stats->line_febe));
38761 - printk("path_febe : %d\n", atomic_read(&stats->path_febe));
38762 - printk("corr_hcs : %d\n", atomic_read(&stats->corr_hcs));
38763 - printk("uncorr_hcs : %d\n", atomic_read(&stats->uncorr_hcs));
38764 - printk("tx_cells : %d\n", atomic_read(&stats->tx_cells));
38765 - printk("rx_cells : %d\n", atomic_read(&stats->rx_cells));
38766 + printk("section_bip: %d\n", atomic_read_unchecked(&stats->section_bip));
38767 + printk("line_bip : %d\n", atomic_read_unchecked(&stats->line_bip));
38768 + printk("path_bip : %d\n", atomic_read_unchecked(&stats->path_bip));
38769 + printk("line_febe : %d\n", atomic_read_unchecked(&stats->line_febe));
38770 + printk("path_febe : %d\n", atomic_read_unchecked(&stats->path_febe));
38771 + printk("corr_hcs : %d\n", atomic_read_unchecked(&stats->corr_hcs));
38772 + printk("uncorr_hcs : %d\n", atomic_read_unchecked(&stats->uncorr_hcs));
38773 + printk("tx_cells : %d\n", atomic_read_unchecked(&stats->tx_cells));
38774 + printk("rx_cells : %d\n", atomic_read_unchecked(&stats->rx_cells));
38775 }
38776 ia_cmds.status = 0;
38777 break;
38778 @@ -2941,7 +2941,7 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38779 if ((desc == 0) || (desc > iadev->num_tx_desc))
38780 {
38781 IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);)
38782 - atomic_inc(&vcc->stats->tx);
38783 + atomic_inc_unchecked(&vcc->stats->tx);
38784 if (vcc->pop)
38785 vcc->pop(vcc, skb);
38786 else
38787 @@ -3046,14 +3046,14 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38788 ATM_DESC(skb) = vcc->vci;
38789 skb_queue_tail(&iadev->tx_dma_q, skb);
38790
38791 - atomic_inc(&vcc->stats->tx);
38792 + atomic_inc_unchecked(&vcc->stats->tx);
38793 iadev->tx_pkt_cnt++;
38794 /* Increment transaction counter */
38795 writel(2, iadev->dma+IPHASE5575_TX_COUNTER);
38796
38797 #if 0
38798 /* add flow control logic */
38799 - if (atomic_read(&vcc->stats->tx) % 20 == 0) {
38800 + if (atomic_read_unchecked(&vcc->stats->tx) % 20 == 0) {
38801 if (iavcc->vc_desc_cnt > 10) {
38802 vcc->tx_quota = vcc->tx_quota * 3 / 4;
38803 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
38804 diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
38805 index ce43ae3..969de38 100644
38806 --- a/drivers/atm/lanai.c
38807 +++ b/drivers/atm/lanai.c
38808 @@ -1295,7 +1295,7 @@ static void lanai_send_one_aal5(struct lanai_dev *lanai,
38809 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
38810 lanai_endtx(lanai, lvcc);
38811 lanai_free_skb(lvcc->tx.atmvcc, skb);
38812 - atomic_inc(&lvcc->tx.atmvcc->stats->tx);
38813 + atomic_inc_unchecked(&lvcc->tx.atmvcc->stats->tx);
38814 }
38815
38816 /* Try to fill the buffer - don't call unless there is backlog */
38817 @@ -1418,7 +1418,7 @@ static void vcc_rx_aal5(struct lanai_vcc *lvcc, int endptr)
38818 ATM_SKB(skb)->vcc = lvcc->rx.atmvcc;
38819 __net_timestamp(skb);
38820 lvcc->rx.atmvcc->push(lvcc->rx.atmvcc, skb);
38821 - atomic_inc(&lvcc->rx.atmvcc->stats->rx);
38822 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx);
38823 out:
38824 lvcc->rx.buf.ptr = end;
38825 cardvcc_write(lvcc, endptr, vcc_rxreadptr);
38826 @@ -1659,7 +1659,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38827 DPRINTK("(itf %d) got RX service entry 0x%X for non-AAL5 "
38828 "vcc %d\n", lanai->number, (unsigned int) s, vci);
38829 lanai->stats.service_rxnotaal5++;
38830 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38831 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38832 return 0;
38833 }
38834 if (likely(!(s & (SERVICE_TRASH | SERVICE_STREAM | SERVICE_CRCERR)))) {
38835 @@ -1671,7 +1671,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38836 int bytes;
38837 read_unlock(&vcc_sklist_lock);
38838 DPRINTK("got trashed rx pdu on vci %d\n", vci);
38839 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38840 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38841 lvcc->stats.x.aal5.service_trash++;
38842 bytes = (SERVICE_GET_END(s) * 16) -
38843 (((unsigned long) lvcc->rx.buf.ptr) -
38844 @@ -1683,7 +1683,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38845 }
38846 if (s & SERVICE_STREAM) {
38847 read_unlock(&vcc_sklist_lock);
38848 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38849 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38850 lvcc->stats.x.aal5.service_stream++;
38851 printk(KERN_ERR DEV_LABEL "(itf %d): Got AAL5 stream "
38852 "PDU on VCI %d!\n", lanai->number, vci);
38853 @@ -1691,7 +1691,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38854 return 0;
38855 }
38856 DPRINTK("got rx crc error on vci %d\n", vci);
38857 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38858 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38859 lvcc->stats.x.aal5.service_rxcrc++;
38860 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
38861 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
38862 diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
38863 index ddc4ceb..36e29aa 100644
38864 --- a/drivers/atm/nicstar.c
38865 +++ b/drivers/atm/nicstar.c
38866 @@ -1632,7 +1632,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38867 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
38868 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
38869 card->index);
38870 - atomic_inc(&vcc->stats->tx_err);
38871 + atomic_inc_unchecked(&vcc->stats->tx_err);
38872 dev_kfree_skb_any(skb);
38873 return -EINVAL;
38874 }
38875 @@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38876 if (!vc->tx) {
38877 printk("nicstar%d: Trying to transmit on a non-tx VC.\n",
38878 card->index);
38879 - atomic_inc(&vcc->stats->tx_err);
38880 + atomic_inc_unchecked(&vcc->stats->tx_err);
38881 dev_kfree_skb_any(skb);
38882 return -EINVAL;
38883 }
38884 @@ -1648,14 +1648,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38885 if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
38886 printk("nicstar%d: Only AAL0 and AAL5 are supported.\n",
38887 card->index);
38888 - atomic_inc(&vcc->stats->tx_err);
38889 + atomic_inc_unchecked(&vcc->stats->tx_err);
38890 dev_kfree_skb_any(skb);
38891 return -EINVAL;
38892 }
38893
38894 if (skb_shinfo(skb)->nr_frags != 0) {
38895 printk("nicstar%d: No scatter-gather yet.\n", card->index);
38896 - atomic_inc(&vcc->stats->tx_err);
38897 + atomic_inc_unchecked(&vcc->stats->tx_err);
38898 dev_kfree_skb_any(skb);
38899 return -EINVAL;
38900 }
38901 @@ -1703,11 +1703,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38902 }
38903
38904 if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
38905 - atomic_inc(&vcc->stats->tx_err);
38906 + atomic_inc_unchecked(&vcc->stats->tx_err);
38907 dev_kfree_skb_any(skb);
38908 return -EIO;
38909 }
38910 - atomic_inc(&vcc->stats->tx);
38911 + atomic_inc_unchecked(&vcc->stats->tx);
38912
38913 return 0;
38914 }
38915 @@ -2024,14 +2024,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38916 printk
38917 ("nicstar%d: Can't allocate buffers for aal0.\n",
38918 card->index);
38919 - atomic_add(i, &vcc->stats->rx_drop);
38920 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38921 break;
38922 }
38923 if (!atm_charge(vcc, sb->truesize)) {
38924 RXPRINTK
38925 ("nicstar%d: atm_charge() dropped aal0 packets.\n",
38926 card->index);
38927 - atomic_add(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38928 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38929 dev_kfree_skb_any(sb);
38930 break;
38931 }
38932 @@ -2046,7 +2046,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38933 ATM_SKB(sb)->vcc = vcc;
38934 __net_timestamp(sb);
38935 vcc->push(vcc, sb);
38936 - atomic_inc(&vcc->stats->rx);
38937 + atomic_inc_unchecked(&vcc->stats->rx);
38938 cell += ATM_CELL_PAYLOAD;
38939 }
38940
38941 @@ -2063,7 +2063,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38942 if (iovb == NULL) {
38943 printk("nicstar%d: Out of iovec buffers.\n",
38944 card->index);
38945 - atomic_inc(&vcc->stats->rx_drop);
38946 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38947 recycle_rx_buf(card, skb);
38948 return;
38949 }
38950 @@ -2087,7 +2087,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38951 small or large buffer itself. */
38952 } else if (NS_PRV_IOVCNT(iovb) >= NS_MAX_IOVECS) {
38953 printk("nicstar%d: received too big AAL5 SDU.\n", card->index);
38954 - atomic_inc(&vcc->stats->rx_err);
38955 + atomic_inc_unchecked(&vcc->stats->rx_err);
38956 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38957 NS_MAX_IOVECS);
38958 NS_PRV_IOVCNT(iovb) = 0;
38959 @@ -2107,7 +2107,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38960 ("nicstar%d: Expected a small buffer, and this is not one.\n",
38961 card->index);
38962 which_list(card, skb);
38963 - atomic_inc(&vcc->stats->rx_err);
38964 + atomic_inc_unchecked(&vcc->stats->rx_err);
38965 recycle_rx_buf(card, skb);
38966 vc->rx_iov = NULL;
38967 recycle_iov_buf(card, iovb);
38968 @@ -2120,7 +2120,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38969 ("nicstar%d: Expected a large buffer, and this is not one.\n",
38970 card->index);
38971 which_list(card, skb);
38972 - atomic_inc(&vcc->stats->rx_err);
38973 + atomic_inc_unchecked(&vcc->stats->rx_err);
38974 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38975 NS_PRV_IOVCNT(iovb));
38976 vc->rx_iov = NULL;
38977 @@ -2143,7 +2143,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38978 printk(" - PDU size mismatch.\n");
38979 else
38980 printk(".\n");
38981 - atomic_inc(&vcc->stats->rx_err);
38982 + atomic_inc_unchecked(&vcc->stats->rx_err);
38983 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38984 NS_PRV_IOVCNT(iovb));
38985 vc->rx_iov = NULL;
38986 @@ -2157,14 +2157,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38987 /* skb points to a small buffer */
38988 if (!atm_charge(vcc, skb->truesize)) {
38989 push_rxbufs(card, skb);
38990 - atomic_inc(&vcc->stats->rx_drop);
38991 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38992 } else {
38993 skb_put(skb, len);
38994 dequeue_sm_buf(card, skb);
38995 ATM_SKB(skb)->vcc = vcc;
38996 __net_timestamp(skb);
38997 vcc->push(vcc, skb);
38998 - atomic_inc(&vcc->stats->rx);
38999 + atomic_inc_unchecked(&vcc->stats->rx);
39000 }
39001 } else if (NS_PRV_IOVCNT(iovb) == 2) { /* One small plus one large buffer */
39002 struct sk_buff *sb;
39003 @@ -2175,14 +2175,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
39004 if (len <= NS_SMBUFSIZE) {
39005 if (!atm_charge(vcc, sb->truesize)) {
39006 push_rxbufs(card, sb);
39007 - atomic_inc(&vcc->stats->rx_drop);
39008 + atomic_inc_unchecked(&vcc->stats->rx_drop);
39009 } else {
39010 skb_put(sb, len);
39011 dequeue_sm_buf(card, sb);
39012 ATM_SKB(sb)->vcc = vcc;
39013 __net_timestamp(sb);
39014 vcc->push(vcc, sb);
39015 - atomic_inc(&vcc->stats->rx);
39016 + atomic_inc_unchecked(&vcc->stats->rx);
39017 }
39018
39019 push_rxbufs(card, skb);
39020 @@ -2191,7 +2191,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
39021
39022 if (!atm_charge(vcc, skb->truesize)) {
39023 push_rxbufs(card, skb);
39024 - atomic_inc(&vcc->stats->rx_drop);
39025 + atomic_inc_unchecked(&vcc->stats->rx_drop);
39026 } else {
39027 dequeue_lg_buf(card, skb);
39028 skb_push(skb, NS_SMBUFSIZE);
39029 @@ -2201,7 +2201,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
39030 ATM_SKB(skb)->vcc = vcc;
39031 __net_timestamp(skb);
39032 vcc->push(vcc, skb);
39033 - atomic_inc(&vcc->stats->rx);
39034 + atomic_inc_unchecked(&vcc->stats->rx);
39035 }
39036
39037 push_rxbufs(card, sb);
39038 @@ -2222,7 +2222,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
39039 printk
39040 ("nicstar%d: Out of huge buffers.\n",
39041 card->index);
39042 - atomic_inc(&vcc->stats->rx_drop);
39043 + atomic_inc_unchecked(&vcc->stats->rx_drop);
39044 recycle_iovec_rx_bufs(card,
39045 (struct iovec *)
39046 iovb->data,
39047 @@ -2273,7 +2273,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
39048 card->hbpool.count++;
39049 } else
39050 dev_kfree_skb_any(hb);
39051 - atomic_inc(&vcc->stats->rx_drop);
39052 + atomic_inc_unchecked(&vcc->stats->rx_drop);
39053 } else {
39054 /* Copy the small buffer to the huge buffer */
39055 sb = (struct sk_buff *)iov->iov_base;
39056 @@ -2307,7 +2307,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
39057 ATM_SKB(hb)->vcc = vcc;
39058 __net_timestamp(hb);
39059 vcc->push(vcc, hb);
39060 - atomic_inc(&vcc->stats->rx);
39061 + atomic_inc_unchecked(&vcc->stats->rx);
39062 }
39063 }
39064
39065 diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
39066 index 74e18b0..f16afa0 100644
39067 --- a/drivers/atm/solos-pci.c
39068 +++ b/drivers/atm/solos-pci.c
39069 @@ -838,7 +838,7 @@ static void solos_bh(unsigned long card_arg)
39070 }
39071 atm_charge(vcc, skb->truesize);
39072 vcc->push(vcc, skb);
39073 - atomic_inc(&vcc->stats->rx);
39074 + atomic_inc_unchecked(&vcc->stats->rx);
39075 break;
39076
39077 case PKT_STATUS:
39078 @@ -1116,7 +1116,7 @@ static uint32_t fpga_tx(struct solos_card *card)
39079 vcc = SKB_CB(oldskb)->vcc;
39080
39081 if (vcc) {
39082 - atomic_inc(&vcc->stats->tx);
39083 + atomic_inc_unchecked(&vcc->stats->tx);
39084 solos_pop(vcc, oldskb);
39085 } else {
39086 dev_kfree_skb_irq(oldskb);
39087 diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
39088 index 0215934..ce9f5b1 100644
39089 --- a/drivers/atm/suni.c
39090 +++ b/drivers/atm/suni.c
39091 @@ -49,8 +49,8 @@ static DEFINE_SPINLOCK(sunis_lock);
39092
39093
39094 #define ADD_LIMITED(s,v) \
39095 - atomic_add((v),&stats->s); \
39096 - if (atomic_read(&stats->s) < 0) atomic_set(&stats->s,INT_MAX);
39097 + atomic_add_unchecked((v),&stats->s); \
39098 + if (atomic_read_unchecked(&stats->s) < 0) atomic_set_unchecked(&stats->s,INT_MAX);
39099
39100
39101 static void suni_hz(unsigned long from_timer)
39102 diff --git a/drivers/atm/uPD98402.c b/drivers/atm/uPD98402.c
39103 index 5120a96..e2572bd 100644
39104 --- a/drivers/atm/uPD98402.c
39105 +++ b/drivers/atm/uPD98402.c
39106 @@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *dev,struct sonet_stats __user *arg,int ze
39107 struct sonet_stats tmp;
39108 int error = 0;
39109
39110 - atomic_add(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
39111 + atomic_add_unchecked(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
39112 sonet_copy_stats(&PRIV(dev)->sonet_stats,&tmp);
39113 if (arg) error = copy_to_user(arg,&tmp,sizeof(tmp));
39114 if (zero && !error) {
39115 @@ -161,9 +161,9 @@ static int uPD98402_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
39116
39117
39118 #define ADD_LIMITED(s,v) \
39119 - { atomic_add(GET(v),&PRIV(dev)->sonet_stats.s); \
39120 - if (atomic_read(&PRIV(dev)->sonet_stats.s) < 0) \
39121 - atomic_set(&PRIV(dev)->sonet_stats.s,INT_MAX); }
39122 + { atomic_add_unchecked(GET(v),&PRIV(dev)->sonet_stats.s); \
39123 + if (atomic_read_unchecked(&PRIV(dev)->sonet_stats.s) < 0) \
39124 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.s,INT_MAX); }
39125
39126
39127 static void stat_event(struct atm_dev *dev)
39128 @@ -194,7 +194,7 @@ static void uPD98402_int(struct atm_dev *dev)
39129 if (reason & uPD98402_INT_PFM) stat_event(dev);
39130 if (reason & uPD98402_INT_PCO) {
39131 (void) GET(PCOCR); /* clear interrupt cause */
39132 - atomic_add(GET(HECCT),
39133 + atomic_add_unchecked(GET(HECCT),
39134 &PRIV(dev)->sonet_stats.uncorr_hcs);
39135 }
39136 if ((reason & uPD98402_INT_RFO) &&
39137 @@ -222,9 +222,9 @@ static int uPD98402_start(struct atm_dev *dev)
39138 PUT(~(uPD98402_INT_PFM | uPD98402_INT_ALM | uPD98402_INT_RFO |
39139 uPD98402_INT_LOS),PIMR); /* enable them */
39140 (void) fetch_stats(dev,NULL,1); /* clear kernel counters */
39141 - atomic_set(&PRIV(dev)->sonet_stats.corr_hcs,-1);
39142 - atomic_set(&PRIV(dev)->sonet_stats.tx_cells,-1);
39143 - atomic_set(&PRIV(dev)->sonet_stats.rx_cells,-1);
39144 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.corr_hcs,-1);
39145 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.tx_cells,-1);
39146 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.rx_cells,-1);
39147 return 0;
39148 }
39149
39150 diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
39151 index cecfb94..87009ec 100644
39152 --- a/drivers/atm/zatm.c
39153 +++ b/drivers/atm/zatm.c
39154 @@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
39155 }
39156 if (!size) {
39157 dev_kfree_skb_irq(skb);
39158 - if (vcc) atomic_inc(&vcc->stats->rx_err);
39159 + if (vcc) atomic_inc_unchecked(&vcc->stats->rx_err);
39160 continue;
39161 }
39162 if (!atm_charge(vcc,skb->truesize)) {
39163 @@ -469,7 +469,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
39164 skb->len = size;
39165 ATM_SKB(skb)->vcc = vcc;
39166 vcc->push(vcc,skb);
39167 - atomic_inc(&vcc->stats->rx);
39168 + atomic_inc_unchecked(&vcc->stats->rx);
39169 }
39170 zout(pos & 0xffff,MTA(mbx));
39171 #if 0 /* probably a stupid idea */
39172 @@ -733,7 +733,7 @@ if (*ZATM_PRV_DSC(skb) != (uPD98401_TXPD_V | uPD98401_TXPD_DP |
39173 skb_queue_head(&zatm_vcc->backlog,skb);
39174 break;
39175 }
39176 - atomic_inc(&vcc->stats->tx);
39177 + atomic_inc_unchecked(&vcc->stats->tx);
39178 wake_up(&zatm_vcc->tx_wait);
39179 }
39180
39181 diff --git a/drivers/base/bus.c b/drivers/base/bus.c
39182 index 5005924..9fc06c4 100644
39183 --- a/drivers/base/bus.c
39184 +++ b/drivers/base/bus.c
39185 @@ -1141,7 +1141,7 @@ int subsys_interface_register(struct subsys_interface *sif)
39186 return -EINVAL;
39187
39188 mutex_lock(&subsys->p->mutex);
39189 - list_add_tail(&sif->node, &subsys->p->interfaces);
39190 + pax_list_add_tail((struct list_head *)&sif->node, &subsys->p->interfaces);
39191 if (sif->add_dev) {
39192 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
39193 while ((dev = subsys_dev_iter_next(&iter)))
39194 @@ -1166,7 +1166,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
39195 subsys = sif->subsys;
39196
39197 mutex_lock(&subsys->p->mutex);
39198 - list_del_init(&sif->node);
39199 + pax_list_del_init((struct list_head *)&sif->node);
39200 if (sif->remove_dev) {
39201 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
39202 while ((dev = subsys_dev_iter_next(&iter)))
39203 diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
39204 index 68f0314..ca2a609 100644
39205 --- a/drivers/base/devtmpfs.c
39206 +++ b/drivers/base/devtmpfs.c
39207 @@ -354,7 +354,7 @@ int devtmpfs_mount(const char *mntdir)
39208 if (!thread)
39209 return 0;
39210
39211 - err = sys_mount("devtmpfs", (char *)mntdir, "devtmpfs", MS_SILENT, NULL);
39212 + err = sys_mount((char __force_user *)"devtmpfs", (char __force_user *)mntdir, (char __force_user *)"devtmpfs", MS_SILENT, NULL);
39213 if (err)
39214 printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
39215 else
39216 @@ -380,11 +380,11 @@ static int devtmpfsd(void *p)
39217 *err = sys_unshare(CLONE_NEWNS);
39218 if (*err)
39219 goto out;
39220 - *err = sys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, options);
39221 + *err = sys_mount((char __force_user *)"devtmpfs", (char __force_user *)"/", (char __force_user *)"devtmpfs", MS_SILENT, (char __force_user *)options);
39222 if (*err)
39223 goto out;
39224 - sys_chdir("/.."); /* will traverse into overmounted root */
39225 - sys_chroot(".");
39226 + sys_chdir((char __force_user *)"/.."); /* will traverse into overmounted root */
39227 + sys_chroot((char __force_user *)".");
39228 complete(&setup_done);
39229 while (1) {
39230 spin_lock(&req_lock);
39231 diff --git a/drivers/base/node.c b/drivers/base/node.c
39232 index 560751b..3a4847a 100644
39233 --- a/drivers/base/node.c
39234 +++ b/drivers/base/node.c
39235 @@ -627,7 +627,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
39236 struct node_attr {
39237 struct device_attribute attr;
39238 enum node_states state;
39239 -};
39240 +} __do_const;
39241
39242 static ssize_t show_node_state(struct device *dev,
39243 struct device_attribute *attr, char *buf)
39244 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
39245 index 0ee43c1..369dd62 100644
39246 --- a/drivers/base/power/domain.c
39247 +++ b/drivers/base/power/domain.c
39248 @@ -1738,7 +1738,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
39249 {
39250 struct cpuidle_driver *cpuidle_drv;
39251 struct gpd_cpuidle_data *cpuidle_data;
39252 - struct cpuidle_state *idle_state;
39253 + cpuidle_state_no_const *idle_state;
39254 int ret = 0;
39255
39256 if (IS_ERR_OR_NULL(genpd) || state < 0)
39257 @@ -1806,7 +1806,7 @@ int pm_genpd_name_attach_cpuidle(const char *name, int state)
39258 int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
39259 {
39260 struct gpd_cpuidle_data *cpuidle_data;
39261 - struct cpuidle_state *idle_state;
39262 + cpuidle_state_no_const *idle_state;
39263 int ret = 0;
39264
39265 if (IS_ERR_OR_NULL(genpd))
39266 @@ -2241,8 +2241,11 @@ int genpd_dev_pm_attach(struct device *dev)
39267 return ret;
39268 }
39269
39270 - dev->pm_domain->detach = genpd_dev_pm_detach;
39271 - dev->pm_domain->sync = genpd_dev_pm_sync;
39272 + pax_open_kernel();
39273 + *(void **)&dev->pm_domain->detach = genpd_dev_pm_detach;
39274 + *(void **)&dev->pm_domain->sync = genpd_dev_pm_sync;
39275 + pax_close_kernel();
39276 +
39277 pm_genpd_poweron(pd);
39278
39279 return 0;
39280 diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
39281 index d2be3f9..0a3167a 100644
39282 --- a/drivers/base/power/sysfs.c
39283 +++ b/drivers/base/power/sysfs.c
39284 @@ -181,7 +181,7 @@ static ssize_t rtpm_status_show(struct device *dev,
39285 return -EIO;
39286 }
39287 }
39288 - return sprintf(buf, p);
39289 + return sprintf(buf, "%s", p);
39290 }
39291
39292 static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL);
39293 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
39294 index 51f15bc..892a668 100644
39295 --- a/drivers/base/power/wakeup.c
39296 +++ b/drivers/base/power/wakeup.c
39297 @@ -33,14 +33,14 @@ static bool pm_abort_suspend __read_mostly;
39298 * They need to be modified together atomically, so it's better to use one
39299 * atomic variable to hold them both.
39300 */
39301 -static atomic_t combined_event_count = ATOMIC_INIT(0);
39302 +static atomic_unchecked_t combined_event_count = ATOMIC_INIT(0);
39303
39304 #define IN_PROGRESS_BITS (sizeof(int) * 4)
39305 #define MAX_IN_PROGRESS ((1 << IN_PROGRESS_BITS) - 1)
39306
39307 static void split_counters(unsigned int *cnt, unsigned int *inpr)
39308 {
39309 - unsigned int comb = atomic_read(&combined_event_count);
39310 + unsigned int comb = atomic_read_unchecked(&combined_event_count);
39311
39312 *cnt = (comb >> IN_PROGRESS_BITS);
39313 *inpr = comb & MAX_IN_PROGRESS;
39314 @@ -537,7 +537,7 @@ static void wakeup_source_activate(struct wakeup_source *ws)
39315 ws->start_prevent_time = ws->last_time;
39316
39317 /* Increment the counter of events in progress. */
39318 - cec = atomic_inc_return(&combined_event_count);
39319 + cec = atomic_inc_return_unchecked(&combined_event_count);
39320
39321 trace_wakeup_source_activate(ws->name, cec);
39322 }
39323 @@ -663,7 +663,7 @@ static void wakeup_source_deactivate(struct wakeup_source *ws)
39324 * Increment the counter of registered wakeup events and decrement the
39325 * couter of wakeup events in progress simultaneously.
39326 */
39327 - cec = atomic_add_return(MAX_IN_PROGRESS, &combined_event_count);
39328 + cec = atomic_add_return_unchecked(MAX_IN_PROGRESS, &combined_event_count);
39329 trace_wakeup_source_deactivate(ws->name, cec);
39330
39331 split_counters(&cnt, &inpr);
39332 diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
39333 index c8941f3..f7c7a7e 100644
39334 --- a/drivers/base/regmap/regmap-debugfs.c
39335 +++ b/drivers/base/regmap/regmap-debugfs.c
39336 @@ -30,7 +30,7 @@ static LIST_HEAD(regmap_debugfs_early_list);
39337 static DEFINE_MUTEX(regmap_debugfs_early_lock);
39338
39339 /* Calculate the length of a fixed format */
39340 -static size_t regmap_calc_reg_len(int max_val, char *buf, size_t buf_size)
39341 +static size_t regmap_calc_reg_len(int max_val)
39342 {
39343 return snprintf(NULL, 0, "%x", max_val);
39344 }
39345 @@ -173,8 +173,7 @@ static inline void regmap_calc_tot_len(struct regmap *map,
39346 {
39347 /* Calculate the length of a fixed format */
39348 if (!map->debugfs_tot_len) {
39349 - map->debugfs_reg_len = regmap_calc_reg_len(map->max_register,
39350 - buf, count);
39351 + map->debugfs_reg_len = regmap_calc_reg_len(map->max_register);
39352 map->debugfs_val_len = 2 * map->format.val_bytes;
39353 map->debugfs_tot_len = map->debugfs_reg_len +
39354 map->debugfs_val_len + 3; /* : \n */
39355 @@ -404,7 +403,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39356 char __user *user_buf, size_t count,
39357 loff_t *ppos)
39358 {
39359 - int reg_len, tot_len;
39360 + size_t reg_len, tot_len;
39361 size_t buf_pos = 0;
39362 loff_t p = 0;
39363 ssize_t ret;
39364 @@ -420,7 +419,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39365 return -ENOMEM;
39366
39367 /* Calculate the length of a fixed format */
39368 - reg_len = regmap_calc_reg_len(map->max_register, buf, count);
39369 + reg_len = regmap_calc_reg_len(map->max_register);
39370 tot_len = reg_len + 10; /* ': R W V P\n' */
39371
39372 for (i = 0; i <= map->max_register; i += map->reg_stride) {
39373 diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c
39374 index 8d98a32..61d3165 100644
39375 --- a/drivers/base/syscore.c
39376 +++ b/drivers/base/syscore.c
39377 @@ -22,7 +22,7 @@ static DEFINE_MUTEX(syscore_ops_lock);
39378 void register_syscore_ops(struct syscore_ops *ops)
39379 {
39380 mutex_lock(&syscore_ops_lock);
39381 - list_add_tail(&ops->node, &syscore_ops_list);
39382 + pax_list_add_tail((struct list_head *)&ops->node, &syscore_ops_list);
39383 mutex_unlock(&syscore_ops_lock);
39384 }
39385 EXPORT_SYMBOL_GPL(register_syscore_ops);
39386 @@ -34,7 +34,7 @@ EXPORT_SYMBOL_GPL(register_syscore_ops);
39387 void unregister_syscore_ops(struct syscore_ops *ops)
39388 {
39389 mutex_lock(&syscore_ops_lock);
39390 - list_del(&ops->node);
39391 + pax_list_del((struct list_head *)&ops->node);
39392 mutex_unlock(&syscore_ops_lock);
39393 }
39394 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
39395 diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
39396 index 0422c47..b222c7a 100644
39397 --- a/drivers/block/cciss.c
39398 +++ b/drivers/block/cciss.c
39399 @@ -3024,7 +3024,7 @@ static void start_io(ctlr_info_t *h)
39400 while (!list_empty(&h->reqQ)) {
39401 c = list_entry(h->reqQ.next, CommandList_struct, list);
39402 /* can't do anything if fifo is full */
39403 - if ((h->access.fifo_full(h))) {
39404 + if ((h->access->fifo_full(h))) {
39405 dev_warn(&h->pdev->dev, "fifo full\n");
39406 break;
39407 }
39408 @@ -3034,7 +3034,7 @@ static void start_io(ctlr_info_t *h)
39409 h->Qdepth--;
39410
39411 /* Tell the controller execute command */
39412 - h->access.submit_command(h, c);
39413 + h->access->submit_command(h, c);
39414
39415 /* Put job onto the completed Q */
39416 addQ(&h->cmpQ, c);
39417 @@ -3460,17 +3460,17 @@ startio:
39418
39419 static inline unsigned long get_next_completion(ctlr_info_t *h)
39420 {
39421 - return h->access.command_completed(h);
39422 + return h->access->command_completed(h);
39423 }
39424
39425 static inline int interrupt_pending(ctlr_info_t *h)
39426 {
39427 - return h->access.intr_pending(h);
39428 + return h->access->intr_pending(h);
39429 }
39430
39431 static inline long interrupt_not_for_us(ctlr_info_t *h)
39432 {
39433 - return ((h->access.intr_pending(h) == 0) ||
39434 + return ((h->access->intr_pending(h) == 0) ||
39435 (h->interrupts_enabled == 0));
39436 }
39437
39438 @@ -3503,7 +3503,7 @@ static inline u32 next_command(ctlr_info_t *h)
39439 u32 a;
39440
39441 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
39442 - return h->access.command_completed(h);
39443 + return h->access->command_completed(h);
39444
39445 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
39446 a = *(h->reply_pool_head); /* Next cmd in ring buffer */
39447 @@ -4060,7 +4060,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h)
39448 trans_support & CFGTBL_Trans_use_short_tags);
39449
39450 /* Change the access methods to the performant access methods */
39451 - h->access = SA5_performant_access;
39452 + h->access = &SA5_performant_access;
39453 h->transMethod = CFGTBL_Trans_Performant;
39454
39455 return;
39456 @@ -4334,7 +4334,7 @@ static int cciss_pci_init(ctlr_info_t *h)
39457 if (prod_index < 0)
39458 return -ENODEV;
39459 h->product_name = products[prod_index].product_name;
39460 - h->access = *(products[prod_index].access);
39461 + h->access = products[prod_index].access;
39462
39463 if (cciss_board_disabled(h)) {
39464 dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
39465 @@ -5065,7 +5065,7 @@ reinit_after_soft_reset:
39466 }
39467
39468 /* make sure the board interrupts are off */
39469 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39470 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39471 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
39472 if (rc)
39473 goto clean2;
39474 @@ -5115,7 +5115,7 @@ reinit_after_soft_reset:
39475 * fake ones to scoop up any residual completions.
39476 */
39477 spin_lock_irqsave(&h->lock, flags);
39478 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39479 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39480 spin_unlock_irqrestore(&h->lock, flags);
39481 free_irq(h->intr[h->intr_mode], h);
39482 rc = cciss_request_irq(h, cciss_msix_discard_completions,
39483 @@ -5135,9 +5135,9 @@ reinit_after_soft_reset:
39484 dev_info(&h->pdev->dev, "Board READY.\n");
39485 dev_info(&h->pdev->dev,
39486 "Waiting for stale completions to drain.\n");
39487 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39488 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39489 msleep(10000);
39490 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39491 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39492
39493 rc = controller_reset_failed(h->cfgtable);
39494 if (rc)
39495 @@ -5160,7 +5160,7 @@ reinit_after_soft_reset:
39496 cciss_scsi_setup(h);
39497
39498 /* Turn the interrupts on so we can service requests */
39499 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39500 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39501
39502 /* Get the firmware version */
39503 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
39504 @@ -5232,7 +5232,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
39505 kfree(flush_buf);
39506 if (return_code != IO_OK)
39507 dev_warn(&h->pdev->dev, "Error flushing cache\n");
39508 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39509 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39510 free_irq(h->intr[h->intr_mode], h);
39511 }
39512
39513 diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
39514 index 7fda30e..2f27946 100644
39515 --- a/drivers/block/cciss.h
39516 +++ b/drivers/block/cciss.h
39517 @@ -101,7 +101,7 @@ struct ctlr_info
39518 /* information about each logical volume */
39519 drive_info_struct *drv[CISS_MAX_LUN];
39520
39521 - struct access_method access;
39522 + struct access_method *access;
39523
39524 /* queue and queue Info */
39525 struct list_head reqQ;
39526 @@ -402,27 +402,27 @@ static bool SA5_performant_intr_pending(ctlr_info_t *h)
39527 }
39528
39529 static struct access_method SA5_access = {
39530 - SA5_submit_command,
39531 - SA5_intr_mask,
39532 - SA5_fifo_full,
39533 - SA5_intr_pending,
39534 - SA5_completed,
39535 + .submit_command = SA5_submit_command,
39536 + .set_intr_mask = SA5_intr_mask,
39537 + .fifo_full = SA5_fifo_full,
39538 + .intr_pending = SA5_intr_pending,
39539 + .command_completed = SA5_completed,
39540 };
39541
39542 static struct access_method SA5B_access = {
39543 - SA5_submit_command,
39544 - SA5B_intr_mask,
39545 - SA5_fifo_full,
39546 - SA5B_intr_pending,
39547 - SA5_completed,
39548 + .submit_command = SA5_submit_command,
39549 + .set_intr_mask = SA5B_intr_mask,
39550 + .fifo_full = SA5_fifo_full,
39551 + .intr_pending = SA5B_intr_pending,
39552 + .command_completed = SA5_completed,
39553 };
39554
39555 static struct access_method SA5_performant_access = {
39556 - SA5_submit_command,
39557 - SA5_performant_intr_mask,
39558 - SA5_fifo_full,
39559 - SA5_performant_intr_pending,
39560 - SA5_performant_completed,
39561 + .submit_command = SA5_submit_command,
39562 + .set_intr_mask = SA5_performant_intr_mask,
39563 + .fifo_full = SA5_fifo_full,
39564 + .intr_pending = SA5_performant_intr_pending,
39565 + .command_completed = SA5_performant_completed,
39566 };
39567
39568 struct board_type {
39569 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
39570 index f749df9..5f8b9c4 100644
39571 --- a/drivers/block/cpqarray.c
39572 +++ b/drivers/block/cpqarray.c
39573 @@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39574 if (register_blkdev(COMPAQ_SMART2_MAJOR+i, hba[i]->devname)) {
39575 goto Enomem4;
39576 }
39577 - hba[i]->access.set_intr_mask(hba[i], 0);
39578 + hba[i]->access->set_intr_mask(hba[i], 0);
39579 if (request_irq(hba[i]->intr, do_ida_intr, IRQF_SHARED,
39580 hba[i]->devname, hba[i]))
39581 {
39582 @@ -459,7 +459,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39583 add_timer(&hba[i]->timer);
39584
39585 /* Enable IRQ now that spinlock and rate limit timer are set up */
39586 - hba[i]->access.set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39587 + hba[i]->access->set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39588
39589 for(j=0; j<NWD; j++) {
39590 struct gendisk *disk = ida_gendisk[i][j];
39591 @@ -694,7 +694,7 @@ DBGINFO(
39592 for(i=0; i<NR_PRODUCTS; i++) {
39593 if (board_id == products[i].board_id) {
39594 c->product_name = products[i].product_name;
39595 - c->access = *(products[i].access);
39596 + c->access = products[i].access;
39597 break;
39598 }
39599 }
39600 @@ -792,7 +792,7 @@ static int cpqarray_eisa_detect(void)
39601 hba[ctlr]->intr = intr;
39602 sprintf(hba[ctlr]->devname, "ida%d", nr_ctlr);
39603 hba[ctlr]->product_name = products[j].product_name;
39604 - hba[ctlr]->access = *(products[j].access);
39605 + hba[ctlr]->access = products[j].access;
39606 hba[ctlr]->ctlr = ctlr;
39607 hba[ctlr]->board_id = board_id;
39608 hba[ctlr]->pci_dev = NULL; /* not PCI */
39609 @@ -978,7 +978,7 @@ static void start_io(ctlr_info_t *h)
39610
39611 while((c = h->reqQ) != NULL) {
39612 /* Can't do anything if we're busy */
39613 - if (h->access.fifo_full(h) == 0)
39614 + if (h->access->fifo_full(h) == 0)
39615 return;
39616
39617 /* Get the first entry from the request Q */
39618 @@ -986,7 +986,7 @@ static void start_io(ctlr_info_t *h)
39619 h->Qdepth--;
39620
39621 /* Tell the controller to do our bidding */
39622 - h->access.submit_command(h, c);
39623 + h->access->submit_command(h, c);
39624
39625 /* Get onto the completion Q */
39626 addQ(&h->cmpQ, c);
39627 @@ -1048,7 +1048,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39628 unsigned long flags;
39629 __u32 a,a1;
39630
39631 - istat = h->access.intr_pending(h);
39632 + istat = h->access->intr_pending(h);
39633 /* Is this interrupt for us? */
39634 if (istat == 0)
39635 return IRQ_NONE;
39636 @@ -1059,7 +1059,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39637 */
39638 spin_lock_irqsave(IDA_LOCK(h->ctlr), flags);
39639 if (istat & FIFO_NOT_EMPTY) {
39640 - while((a = h->access.command_completed(h))) {
39641 + while((a = h->access->command_completed(h))) {
39642 a1 = a; a &= ~3;
39643 if ((c = h->cmpQ) == NULL)
39644 {
39645 @@ -1448,11 +1448,11 @@ static int sendcmd(
39646 /*
39647 * Disable interrupt
39648 */
39649 - info_p->access.set_intr_mask(info_p, 0);
39650 + info_p->access->set_intr_mask(info_p, 0);
39651 /* Make sure there is room in the command FIFO */
39652 /* Actually it should be completely empty at this time. */
39653 for (i = 200000; i > 0; i--) {
39654 - temp = info_p->access.fifo_full(info_p);
39655 + temp = info_p->access->fifo_full(info_p);
39656 if (temp != 0) {
39657 break;
39658 }
39659 @@ -1465,7 +1465,7 @@ DBG(
39660 /*
39661 * Send the cmd
39662 */
39663 - info_p->access.submit_command(info_p, c);
39664 + info_p->access->submit_command(info_p, c);
39665 complete = pollcomplete(ctlr);
39666
39667 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr,
39668 @@ -1548,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host)
39669 * we check the new geometry. Then turn interrupts back on when
39670 * we're done.
39671 */
39672 - host->access.set_intr_mask(host, 0);
39673 + host->access->set_intr_mask(host, 0);
39674 getgeometry(ctlr);
39675 - host->access.set_intr_mask(host, FIFO_NOT_EMPTY);
39676 + host->access->set_intr_mask(host, FIFO_NOT_EMPTY);
39677
39678 for(i=0; i<NWD; i++) {
39679 struct gendisk *disk = ida_gendisk[ctlr][i];
39680 @@ -1590,7 +1590,7 @@ static int pollcomplete(int ctlr)
39681 /* Wait (up to 2 seconds) for a command to complete */
39682
39683 for (i = 200000; i > 0; i--) {
39684 - done = hba[ctlr]->access.command_completed(hba[ctlr]);
39685 + done = hba[ctlr]->access->command_completed(hba[ctlr]);
39686 if (done == 0) {
39687 udelay(10); /* a short fixed delay */
39688 } else
39689 diff --git a/drivers/block/cpqarray.h b/drivers/block/cpqarray.h
39690 index be73e9d..7fbf140 100644
39691 --- a/drivers/block/cpqarray.h
39692 +++ b/drivers/block/cpqarray.h
39693 @@ -99,7 +99,7 @@ struct ctlr_info {
39694 drv_info_t drv[NWD];
39695 struct proc_dir_entry *proc;
39696
39697 - struct access_method access;
39698 + struct access_method *access;
39699
39700 cmdlist_t *reqQ;
39701 cmdlist_t *cmpQ;
39702 diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
39703 index 434c77d..6d3219a 100644
39704 --- a/drivers/block/drbd/drbd_bitmap.c
39705 +++ b/drivers/block/drbd/drbd_bitmap.c
39706 @@ -1036,7 +1036,7 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, int page_nr) __must_ho
39707 submit_bio(rw, bio);
39708 /* this should not count as user activity and cause the
39709 * resync to throttle -- see drbd_rs_should_slow_down(). */
39710 - atomic_add(len >> 9, &device->rs_sect_ev);
39711 + atomic_add_unchecked(len >> 9, &device->rs_sect_ev);
39712 }
39713 }
39714
39715 diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
39716 index efd19c2..6ccfa94 100644
39717 --- a/drivers/block/drbd/drbd_int.h
39718 +++ b/drivers/block/drbd/drbd_int.h
39719 @@ -386,7 +386,7 @@ struct drbd_epoch {
39720 struct drbd_connection *connection;
39721 struct list_head list;
39722 unsigned int barrier_nr;
39723 - atomic_t epoch_size; /* increased on every request added. */
39724 + atomic_unchecked_t epoch_size; /* increased on every request added. */
39725 atomic_t active; /* increased on every req. added, and dec on every finished. */
39726 unsigned long flags;
39727 };
39728 @@ -947,7 +947,7 @@ struct drbd_device {
39729 unsigned int al_tr_number;
39730 int al_tr_cycle;
39731 wait_queue_head_t seq_wait;
39732 - atomic_t packet_seq;
39733 + atomic_unchecked_t packet_seq;
39734 unsigned int peer_seq;
39735 spinlock_t peer_seq_lock;
39736 unsigned long comm_bm_set; /* communicated number of set bits. */
39737 @@ -956,8 +956,8 @@ struct drbd_device {
39738 struct mutex own_state_mutex;
39739 struct mutex *state_mutex; /* either own_state_mutex or first_peer_device(device)->connection->cstate_mutex */
39740 char congestion_reason; /* Why we where congested... */
39741 - atomic_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39742 - atomic_t rs_sect_ev; /* for submitted resync data rate, both */
39743 + atomic_unchecked_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39744 + atomic_unchecked_t rs_sect_ev; /* for submitted resync data rate, both */
39745 int rs_last_sect_ev; /* counter to compare with */
39746 int rs_last_events; /* counter of read or write "events" (unit sectors)
39747 * on the lower level device when we last looked. */
39748 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
39749 index a151853..b9b5baa 100644
39750 --- a/drivers/block/drbd/drbd_main.c
39751 +++ b/drivers/block/drbd/drbd_main.c
39752 @@ -1328,7 +1328,7 @@ static int _drbd_send_ack(struct drbd_peer_device *peer_device, enum drbd_packet
39753 p->sector = sector;
39754 p->block_id = block_id;
39755 p->blksize = blksize;
39756 - p->seq_num = cpu_to_be32(atomic_inc_return(&peer_device->device->packet_seq));
39757 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&peer_device->device->packet_seq));
39758 return drbd_send_command(peer_device, sock, cmd, sizeof(*p), NULL, 0);
39759 }
39760
39761 @@ -1634,7 +1634,7 @@ int drbd_send_dblock(struct drbd_peer_device *peer_device, struct drbd_request *
39762 return -EIO;
39763 p->sector = cpu_to_be64(req->i.sector);
39764 p->block_id = (unsigned long)req;
39765 - p->seq_num = cpu_to_be32(atomic_inc_return(&device->packet_seq));
39766 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&device->packet_seq));
39767 dp_flags = bio_flags_to_wire(peer_device->connection, req->master_bio->bi_rw);
39768 if (device->state.conn >= C_SYNC_SOURCE &&
39769 device->state.conn <= C_PAUSED_SYNC_T)
39770 @@ -1915,8 +1915,8 @@ void drbd_init_set_defaults(struct drbd_device *device)
39771 atomic_set(&device->unacked_cnt, 0);
39772 atomic_set(&device->local_cnt, 0);
39773 atomic_set(&device->pp_in_use_by_net, 0);
39774 - atomic_set(&device->rs_sect_in, 0);
39775 - atomic_set(&device->rs_sect_ev, 0);
39776 + atomic_set_unchecked(&device->rs_sect_in, 0);
39777 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39778 atomic_set(&device->ap_in_flight, 0);
39779 atomic_set(&device->md_io.in_use, 0);
39780
39781 @@ -2683,8 +2683,8 @@ void drbd_destroy_connection(struct kref *kref)
39782 struct drbd_connection *connection = container_of(kref, struct drbd_connection, kref);
39783 struct drbd_resource *resource = connection->resource;
39784
39785 - if (atomic_read(&connection->current_epoch->epoch_size) != 0)
39786 - drbd_err(connection, "epoch_size:%d\n", atomic_read(&connection->current_epoch->epoch_size));
39787 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size) != 0)
39788 + drbd_err(connection, "epoch_size:%d\n", atomic_read_unchecked(&connection->current_epoch->epoch_size));
39789 kfree(connection->current_epoch);
39790
39791 idr_destroy(&connection->peer_devices);
39792 diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
39793 index 74df8cf..e41fc24 100644
39794 --- a/drivers/block/drbd/drbd_nl.c
39795 +++ b/drivers/block/drbd/drbd_nl.c
39796 @@ -3637,13 +3637,13 @@ finish:
39797
39798 void drbd_bcast_event(struct drbd_device *device, const struct sib_info *sib)
39799 {
39800 - static atomic_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39801 + static atomic_unchecked_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39802 struct sk_buff *msg;
39803 struct drbd_genlmsghdr *d_out;
39804 unsigned seq;
39805 int err = -ENOMEM;
39806
39807 - seq = atomic_inc_return(&drbd_genl_seq);
39808 + seq = atomic_inc_return_unchecked(&drbd_genl_seq);
39809 msg = genlmsg_new(NLMSG_GOODSIZE, GFP_NOIO);
39810 if (!msg)
39811 goto failed;
39812 diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
39813 index c097909..13688e1 100644
39814 --- a/drivers/block/drbd/drbd_receiver.c
39815 +++ b/drivers/block/drbd/drbd_receiver.c
39816 @@ -870,7 +870,7 @@ int drbd_connected(struct drbd_peer_device *peer_device)
39817 struct drbd_device *device = peer_device->device;
39818 int err;
39819
39820 - atomic_set(&device->packet_seq, 0);
39821 + atomic_set_unchecked(&device->packet_seq, 0);
39822 device->peer_seq = 0;
39823
39824 device->state_mutex = peer_device->connection->agreed_pro_version < 100 ?
39825 @@ -1233,7 +1233,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39826 do {
39827 next_epoch = NULL;
39828
39829 - epoch_size = atomic_read(&epoch->epoch_size);
39830 + epoch_size = atomic_read_unchecked(&epoch->epoch_size);
39831
39832 switch (ev & ~EV_CLEANUP) {
39833 case EV_PUT:
39834 @@ -1273,7 +1273,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39835 rv = FE_DESTROYED;
39836 } else {
39837 epoch->flags = 0;
39838 - atomic_set(&epoch->epoch_size, 0);
39839 + atomic_set_unchecked(&epoch->epoch_size, 0);
39840 /* atomic_set(&epoch->active, 0); is already zero */
39841 if (rv == FE_STILL_LIVE)
39842 rv = FE_RECYCLED;
39843 @@ -1550,7 +1550,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39844 conn_wait_active_ee_empty(connection);
39845 drbd_flush(connection);
39846
39847 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39848 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39849 epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
39850 if (epoch)
39851 break;
39852 @@ -1564,11 +1564,11 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39853 }
39854
39855 epoch->flags = 0;
39856 - atomic_set(&epoch->epoch_size, 0);
39857 + atomic_set_unchecked(&epoch->epoch_size, 0);
39858 atomic_set(&epoch->active, 0);
39859
39860 spin_lock(&connection->epoch_lock);
39861 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39862 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39863 list_add(&epoch->list, &connection->current_epoch->list);
39864 connection->current_epoch = epoch;
39865 connection->epochs++;
39866 @@ -1802,7 +1802,7 @@ static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t secto
39867 list_add_tail(&peer_req->w.list, &device->sync_ee);
39868 spin_unlock_irq(&device->resource->req_lock);
39869
39870 - atomic_add(pi->size >> 9, &device->rs_sect_ev);
39871 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_ev);
39872 if (drbd_submit_peer_request(device, peer_req, WRITE, DRBD_FAULT_RS_WR) == 0)
39873 return 0;
39874
39875 @@ -1900,7 +1900,7 @@ static int receive_RSDataReply(struct drbd_connection *connection, struct packet
39876 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39877 }
39878
39879 - atomic_add(pi->size >> 9, &device->rs_sect_in);
39880 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_in);
39881
39882 return err;
39883 }
39884 @@ -2290,7 +2290,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39885
39886 err = wait_for_and_update_peer_seq(peer_device, peer_seq);
39887 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39888 - atomic_inc(&connection->current_epoch->epoch_size);
39889 + atomic_inc_unchecked(&connection->current_epoch->epoch_size);
39890 err2 = drbd_drain_block(peer_device, pi->size);
39891 if (!err)
39892 err = err2;
39893 @@ -2334,7 +2334,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39894
39895 spin_lock(&connection->epoch_lock);
39896 peer_req->epoch = connection->current_epoch;
39897 - atomic_inc(&peer_req->epoch->epoch_size);
39898 + atomic_inc_unchecked(&peer_req->epoch->epoch_size);
39899 atomic_inc(&peer_req->epoch->active);
39900 spin_unlock(&connection->epoch_lock);
39901
39902 @@ -2479,7 +2479,7 @@ bool drbd_rs_c_min_rate_throttle(struct drbd_device *device)
39903
39904 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
39905 (int)part_stat_read(&disk->part0, sectors[1]) -
39906 - atomic_read(&device->rs_sect_ev);
39907 + atomic_read_unchecked(&device->rs_sect_ev);
39908
39909 if (atomic_read(&device->ap_actlog_cnt)
39910 || curr_events - device->rs_last_events > 64) {
39911 @@ -2618,7 +2618,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39912 device->use_csums = true;
39913 } else if (pi->cmd == P_OV_REPLY) {
39914 /* track progress, we may need to throttle */
39915 - atomic_add(size >> 9, &device->rs_sect_in);
39916 + atomic_add_unchecked(size >> 9, &device->rs_sect_in);
39917 peer_req->w.cb = w_e_end_ov_reply;
39918 dec_rs_pending(device);
39919 /* drbd_rs_begin_io done when we sent this request,
39920 @@ -2691,7 +2691,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39921 goto out_free_e;
39922
39923 submit_for_resync:
39924 - atomic_add(size >> 9, &device->rs_sect_ev);
39925 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39926
39927 submit:
39928 update_receiver_timing_details(connection, drbd_submit_peer_request);
39929 @@ -4564,7 +4564,7 @@ struct data_cmd {
39930 int expect_payload;
39931 size_t pkt_size;
39932 int (*fn)(struct drbd_connection *, struct packet_info *);
39933 -};
39934 +} __do_const;
39935
39936 static struct data_cmd drbd_cmd_handler[] = {
39937 [P_DATA] = { 1, sizeof(struct p_data), receive_Data },
39938 @@ -4678,7 +4678,7 @@ static void conn_disconnect(struct drbd_connection *connection)
39939 if (!list_empty(&connection->current_epoch->list))
39940 drbd_err(connection, "ASSERTION FAILED: connection->current_epoch->list not empty\n");
39941 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */
39942 - atomic_set(&connection->current_epoch->epoch_size, 0);
39943 + atomic_set_unchecked(&connection->current_epoch->epoch_size, 0);
39944 connection->send.seen_any_write_yet = false;
39945
39946 drbd_info(connection, "Connection closed\n");
39947 @@ -5182,7 +5182,7 @@ static int got_IsInSync(struct drbd_connection *connection, struct packet_info *
39948 put_ldev(device);
39949 }
39950 dec_rs_pending(device);
39951 - atomic_add(blksize >> 9, &device->rs_sect_in);
39952 + atomic_add_unchecked(blksize >> 9, &device->rs_sect_in);
39953
39954 return 0;
39955 }
39956 @@ -5470,7 +5470,7 @@ static int connection_finish_peer_reqs(struct drbd_connection *connection)
39957 struct asender_cmd {
39958 size_t pkt_size;
39959 int (*fn)(struct drbd_connection *connection, struct packet_info *);
39960 -};
39961 +} __do_const;
39962
39963 static struct asender_cmd asender_tbl[] = {
39964 [P_PING] = { 0, got_Ping },
39965 diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
39966 index d0fae55..4469096 100644
39967 --- a/drivers/block/drbd/drbd_worker.c
39968 +++ b/drivers/block/drbd/drbd_worker.c
39969 @@ -408,7 +408,7 @@ static int read_for_csum(struct drbd_peer_device *peer_device, sector_t sector,
39970 list_add_tail(&peer_req->w.list, &device->read_ee);
39971 spin_unlock_irq(&device->resource->req_lock);
39972
39973 - atomic_add(size >> 9, &device->rs_sect_ev);
39974 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39975 if (drbd_submit_peer_request(device, peer_req, READ, DRBD_FAULT_RS_RD) == 0)
39976 return 0;
39977
39978 @@ -553,7 +553,7 @@ static int drbd_rs_number_requests(struct drbd_device *device)
39979 unsigned int sect_in; /* Number of sectors that came in since the last turn */
39980 int number, mxb;
39981
39982 - sect_in = atomic_xchg(&device->rs_sect_in, 0);
39983 + sect_in = atomic_xchg_unchecked(&device->rs_sect_in, 0);
39984 device->rs_in_flight -= sect_in;
39985
39986 rcu_read_lock();
39987 @@ -1595,8 +1595,8 @@ void drbd_rs_controller_reset(struct drbd_device *device)
39988 struct gendisk *disk = device->ldev->backing_bdev->bd_contains->bd_disk;
39989 struct fifo_buffer *plan;
39990
39991 - atomic_set(&device->rs_sect_in, 0);
39992 - atomic_set(&device->rs_sect_ev, 0);
39993 + atomic_set_unchecked(&device->rs_sect_in, 0);
39994 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39995 device->rs_in_flight = 0;
39996 device->rs_last_events =
39997 (int)part_stat_read(&disk->part0, sectors[0]) +
39998 diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
39999 index 4c20c22..caef1eb 100644
40000 --- a/drivers/block/pktcdvd.c
40001 +++ b/drivers/block/pktcdvd.c
40002 @@ -109,7 +109,7 @@ static int pkt_seq_show(struct seq_file *m, void *p);
40003
40004 static sector_t get_zone(sector_t sector, struct pktcdvd_device *pd)
40005 {
40006 - return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1);
40007 + return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1UL);
40008 }
40009
40010 /*
40011 @@ -1891,7 +1891,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
40012 return -EROFS;
40013 }
40014 pd->settings.fp = ti.fp;
40015 - pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1);
40016 + pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1UL);
40017
40018 if (ti.nwa_v) {
40019 pd->nwa = be32_to_cpu(ti.next_writable);
40020 diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
40021 index 017b7d5..6845b91 100644
40022 --- a/drivers/block/rbd.c
40023 +++ b/drivers/block/rbd.c
40024 @@ -64,7 +64,7 @@
40025 * If the counter is already at its maximum value returns
40026 * -EINVAL without updating it.
40027 */
40028 -static int atomic_inc_return_safe(atomic_t *v)
40029 +static int __intentional_overflow(-1) atomic_inc_return_safe(atomic_t *v)
40030 {
40031 unsigned int counter;
40032
40033 diff --git a/drivers/block/smart1,2.h b/drivers/block/smart1,2.h
40034 index e5565fb..71be10b4 100644
40035 --- a/drivers/block/smart1,2.h
40036 +++ b/drivers/block/smart1,2.h
40037 @@ -108,11 +108,11 @@ static unsigned long smart4_intr_pending(ctlr_info_t *h)
40038 }
40039
40040 static struct access_method smart4_access = {
40041 - smart4_submit_command,
40042 - smart4_intr_mask,
40043 - smart4_fifo_full,
40044 - smart4_intr_pending,
40045 - smart4_completed,
40046 + .submit_command = smart4_submit_command,
40047 + .set_intr_mask = smart4_intr_mask,
40048 + .fifo_full = smart4_fifo_full,
40049 + .intr_pending = smart4_intr_pending,
40050 + .command_completed = smart4_completed,
40051 };
40052
40053 /*
40054 @@ -144,11 +144,11 @@ static unsigned long smart2_intr_pending(ctlr_info_t *h)
40055 }
40056
40057 static struct access_method smart2_access = {
40058 - smart2_submit_command,
40059 - smart2_intr_mask,
40060 - smart2_fifo_full,
40061 - smart2_intr_pending,
40062 - smart2_completed,
40063 + .submit_command = smart2_submit_command,
40064 + .set_intr_mask = smart2_intr_mask,
40065 + .fifo_full = smart2_fifo_full,
40066 + .intr_pending = smart2_intr_pending,
40067 + .command_completed = smart2_completed,
40068 };
40069
40070 /*
40071 @@ -180,11 +180,11 @@ static unsigned long smart2e_intr_pending(ctlr_info_t *h)
40072 }
40073
40074 static struct access_method smart2e_access = {
40075 - smart2e_submit_command,
40076 - smart2e_intr_mask,
40077 - smart2e_fifo_full,
40078 - smart2e_intr_pending,
40079 - smart2e_completed,
40080 + .submit_command = smart2e_submit_command,
40081 + .set_intr_mask = smart2e_intr_mask,
40082 + .fifo_full = smart2e_fifo_full,
40083 + .intr_pending = smart2e_intr_pending,
40084 + .command_completed = smart2e_completed,
40085 };
40086
40087 /*
40088 @@ -270,9 +270,9 @@ static unsigned long smart1_intr_pending(ctlr_info_t *h)
40089 }
40090
40091 static struct access_method smart1_access = {
40092 - smart1_submit_command,
40093 - smart1_intr_mask,
40094 - smart1_fifo_full,
40095 - smart1_intr_pending,
40096 - smart1_completed,
40097 + .submit_command = smart1_submit_command,
40098 + .set_intr_mask = smart1_intr_mask,
40099 + .fifo_full = smart1_fifo_full,
40100 + .intr_pending = smart1_intr_pending,
40101 + .command_completed = smart1_completed,
40102 };
40103 diff --git a/drivers/bluetooth/btwilink.c b/drivers/bluetooth/btwilink.c
40104 index 7a722df..54b76ab 100644
40105 --- a/drivers/bluetooth/btwilink.c
40106 +++ b/drivers/bluetooth/btwilink.c
40107 @@ -288,7 +288,7 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
40108
40109 static int bt_ti_probe(struct platform_device *pdev)
40110 {
40111 - static struct ti_st *hst;
40112 + struct ti_st *hst;
40113 struct hci_dev *hdev;
40114 int err;
40115
40116 diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
40117 index 5d28a45..a538f90 100644
40118 --- a/drivers/cdrom/cdrom.c
40119 +++ b/drivers/cdrom/cdrom.c
40120 @@ -610,7 +610,6 @@ int register_cdrom(struct cdrom_device_info *cdi)
40121 ENSURE(reset, CDC_RESET);
40122 ENSURE(generic_packet, CDC_GENERIC_PACKET);
40123 cdi->mc_flags = 0;
40124 - cdo->n_minors = 0;
40125 cdi->options = CDO_USE_FFLAGS;
40126
40127 if (autoclose == 1 && CDROM_CAN(CDC_CLOSE_TRAY))
40128 @@ -630,8 +629,11 @@ int register_cdrom(struct cdrom_device_info *cdi)
40129 else
40130 cdi->cdda_method = CDDA_OLD;
40131
40132 - if (!cdo->generic_packet)
40133 - cdo->generic_packet = cdrom_dummy_generic_packet;
40134 + if (!cdo->generic_packet) {
40135 + pax_open_kernel();
40136 + *(void **)&cdo->generic_packet = cdrom_dummy_generic_packet;
40137 + pax_close_kernel();
40138 + }
40139
40140 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
40141 mutex_lock(&cdrom_mutex);
40142 @@ -652,7 +654,6 @@ void unregister_cdrom(struct cdrom_device_info *cdi)
40143 if (cdi->exit)
40144 cdi->exit(cdi);
40145
40146 - cdi->ops->n_minors--;
40147 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" unregistered\n", cdi->name);
40148 }
40149
40150 @@ -2126,7 +2127,7 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
40151 */
40152 nr = nframes;
40153 do {
40154 - cgc.buffer = kmalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
40155 + cgc.buffer = kzalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
40156 if (cgc.buffer)
40157 break;
40158
40159 @@ -3434,7 +3435,7 @@ static int cdrom_print_info(const char *header, int val, char *info,
40160 struct cdrom_device_info *cdi;
40161 int ret;
40162
40163 - ret = scnprintf(info + *pos, max_size - *pos, header);
40164 + ret = scnprintf(info + *pos, max_size - *pos, "%s", header);
40165 if (!ret)
40166 return 1;
40167
40168 diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
40169 index 584bc31..e64a12c 100644
40170 --- a/drivers/cdrom/gdrom.c
40171 +++ b/drivers/cdrom/gdrom.c
40172 @@ -491,7 +491,6 @@ static struct cdrom_device_ops gdrom_ops = {
40173 .audio_ioctl = gdrom_audio_ioctl,
40174 .capability = CDC_MULTI_SESSION | CDC_MEDIA_CHANGED |
40175 CDC_RESET | CDC_DRIVE_STATUS | CDC_CD_R,
40176 - .n_minors = 1,
40177 };
40178
40179 static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
40180 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
40181 index a043107..1263e4a 100644
40182 --- a/drivers/char/Kconfig
40183 +++ b/drivers/char/Kconfig
40184 @@ -17,7 +17,8 @@ config DEVMEM
40185
40186 config DEVKMEM
40187 bool "/dev/kmem virtual device support"
40188 - default y
40189 + default n
40190 + depends on !GRKERNSEC_KMEM
40191 help
40192 Say Y here if you want to support the /dev/kmem device. The
40193 /dev/kmem device is rarely used, but can be used for certain
40194 @@ -586,6 +587,7 @@ config DEVPORT
40195 bool
40196 depends on !M68K
40197 depends on ISA || PCI
40198 + depends on !GRKERNSEC_KMEM
40199 default y
40200
40201 source "drivers/s390/char/Kconfig"
40202 diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
40203 index a48e05b..6bac831 100644
40204 --- a/drivers/char/agp/compat_ioctl.c
40205 +++ b/drivers/char/agp/compat_ioctl.c
40206 @@ -108,7 +108,7 @@ static int compat_agpioc_reserve_wrap(struct agp_file_private *priv, void __user
40207 return -ENOMEM;
40208 }
40209
40210 - if (copy_from_user(usegment, (void __user *) ureserve.seg_list,
40211 + if (copy_from_user(usegment, (void __force_user *) ureserve.seg_list,
40212 sizeof(*usegment) * ureserve.seg_count)) {
40213 kfree(usegment);
40214 kfree(ksegment);
40215 diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
40216 index 09f17eb..8531d2f 100644
40217 --- a/drivers/char/agp/frontend.c
40218 +++ b/drivers/char/agp/frontend.c
40219 @@ -806,7 +806,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
40220 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
40221 return -EFAULT;
40222
40223 - if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment))
40224 + if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment_priv))
40225 return -EFAULT;
40226
40227 client = agp_find_client_by_pid(reserve.pid);
40228 @@ -836,7 +836,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
40229 if (segment == NULL)
40230 return -ENOMEM;
40231
40232 - if (copy_from_user(segment, (void __user *) reserve.seg_list,
40233 + if (copy_from_user(segment, (void __force_user *) reserve.seg_list,
40234 sizeof(struct agp_segment) * reserve.seg_count)) {
40235 kfree(segment);
40236 return -EFAULT;
40237 diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
40238 index c6dea3f..72ae4b0 100644
40239 --- a/drivers/char/agp/intel-gtt.c
40240 +++ b/drivers/char/agp/intel-gtt.c
40241 @@ -1408,8 +1408,8 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
40242 }
40243 EXPORT_SYMBOL(intel_gmch_probe);
40244
40245 -void intel_gtt_get(size_t *gtt_total, size_t *stolen_size,
40246 - phys_addr_t *mappable_base, unsigned long *mappable_end)
40247 +void intel_gtt_get(uint64_t *gtt_total, uint64_t *stolen_size,
40248 + uint64_t *mappable_base, uint64_t *mappable_end)
40249 {
40250 *gtt_total = intel_private.gtt_total_entries << PAGE_SHIFT;
40251 *stolen_size = intel_private.stolen_size;
40252 diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c
40253 index 4f94375..413694e 100644
40254 --- a/drivers/char/genrtc.c
40255 +++ b/drivers/char/genrtc.c
40256 @@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *file,
40257 switch (cmd) {
40258
40259 case RTC_PLL_GET:
40260 + memset(&pll, 0, sizeof(pll));
40261 if (get_rtc_pll(&pll))
40262 return -EINVAL;
40263 else
40264 diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
40265 index 5c0baa9..44011b1 100644
40266 --- a/drivers/char/hpet.c
40267 +++ b/drivers/char/hpet.c
40268 @@ -575,7 +575,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
40269 }
40270
40271 static int
40272 -hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg,
40273 +hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
40274 struct hpet_info *info)
40275 {
40276 struct hpet_timer __iomem *timer;
40277 diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
40278 index bf75f63..359fa10 100644
40279 --- a/drivers/char/ipmi/ipmi_msghandler.c
40280 +++ b/drivers/char/ipmi/ipmi_msghandler.c
40281 @@ -436,7 +436,7 @@ struct ipmi_smi {
40282 struct proc_dir_entry *proc_dir;
40283 char proc_dir_name[10];
40284
40285 - atomic_t stats[IPMI_NUM_STATS];
40286 + atomic_unchecked_t stats[IPMI_NUM_STATS];
40287
40288 /*
40289 * run_to_completion duplicate of smb_info, smi_info
40290 @@ -468,9 +468,9 @@ static LIST_HEAD(smi_watchers);
40291 static DEFINE_MUTEX(smi_watchers_mutex);
40292
40293 #define ipmi_inc_stat(intf, stat) \
40294 - atomic_inc(&(intf)->stats[IPMI_STAT_ ## stat])
40295 + atomic_inc_unchecked(&(intf)->stats[IPMI_STAT_ ## stat])
40296 #define ipmi_get_stat(intf, stat) \
40297 - ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat]))
40298 + ((unsigned int) atomic_read_unchecked(&(intf)->stats[IPMI_STAT_ ## stat]))
40299
40300 static char *addr_src_to_str[] = { "invalid", "hotmod", "hardcoded", "SPMI",
40301 "ACPI", "SMBIOS", "PCI",
40302 @@ -2828,7 +2828,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
40303 INIT_LIST_HEAD(&intf->cmd_rcvrs);
40304 init_waitqueue_head(&intf->waitq);
40305 for (i = 0; i < IPMI_NUM_STATS; i++)
40306 - atomic_set(&intf->stats[i], 0);
40307 + atomic_set_unchecked(&intf->stats[i], 0);
40308
40309 intf->proc_dir = NULL;
40310
40311 diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
40312 index 8a45e92..e41b1c7 100644
40313 --- a/drivers/char/ipmi/ipmi_si_intf.c
40314 +++ b/drivers/char/ipmi/ipmi_si_intf.c
40315 @@ -289,7 +289,7 @@ struct smi_info {
40316 unsigned char slave_addr;
40317
40318 /* Counters and things for the proc filesystem. */
40319 - atomic_t stats[SI_NUM_STATS];
40320 + atomic_unchecked_t stats[SI_NUM_STATS];
40321
40322 struct task_struct *thread;
40323
40324 @@ -298,9 +298,9 @@ struct smi_info {
40325 };
40326
40327 #define smi_inc_stat(smi, stat) \
40328 - atomic_inc(&(smi)->stats[SI_STAT_ ## stat])
40329 + atomic_inc_unchecked(&(smi)->stats[SI_STAT_ ## stat])
40330 #define smi_get_stat(smi, stat) \
40331 - ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat]))
40332 + ((unsigned int) atomic_read_unchecked(&(smi)->stats[SI_STAT_ ## stat]))
40333
40334 #define SI_MAX_PARMS 4
40335
40336 @@ -3500,7 +3500,7 @@ static int try_smi_init(struct smi_info *new_smi)
40337 atomic_set(&new_smi->req_events, 0);
40338 new_smi->run_to_completion = false;
40339 for (i = 0; i < SI_NUM_STATS; i++)
40340 - atomic_set(&new_smi->stats[i], 0);
40341 + atomic_set_unchecked(&new_smi->stats[i], 0);
40342
40343 new_smi->interrupt_disabled = true;
40344 atomic_set(&new_smi->need_watch, 0);
40345 diff --git a/drivers/char/mem.c b/drivers/char/mem.c
40346 index 6b1721f..fda9398 100644
40347 --- a/drivers/char/mem.c
40348 +++ b/drivers/char/mem.c
40349 @@ -18,6 +18,7 @@
40350 #include <linux/raw.h>
40351 #include <linux/tty.h>
40352 #include <linux/capability.h>
40353 +#include <linux/security.h>
40354 #include <linux/ptrace.h>
40355 #include <linux/device.h>
40356 #include <linux/highmem.h>
40357 @@ -36,6 +37,10 @@
40358
40359 #define DEVPORT_MINOR 4
40360
40361 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40362 +extern const struct file_operations grsec_fops;
40363 +#endif
40364 +
40365 static inline unsigned long size_inside_page(unsigned long start,
40366 unsigned long size)
40367 {
40368 @@ -67,9 +72,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40369
40370 while (cursor < to) {
40371 if (!devmem_is_allowed(pfn)) {
40372 +#ifdef CONFIG_GRKERNSEC_KMEM
40373 + gr_handle_mem_readwrite(from, to);
40374 +#else
40375 printk(KERN_INFO
40376 "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
40377 current->comm, from, to);
40378 +#endif
40379 return 0;
40380 }
40381 cursor += PAGE_SIZE;
40382 @@ -77,6 +86,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40383 }
40384 return 1;
40385 }
40386 +#elif defined(CONFIG_GRKERNSEC_KMEM)
40387 +static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40388 +{
40389 + return 0;
40390 +}
40391 #else
40392 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40393 {
40394 @@ -124,7 +138,8 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40395 #endif
40396
40397 while (count > 0) {
40398 - unsigned long remaining;
40399 + unsigned long remaining = 0;
40400 + char *temp;
40401
40402 sz = size_inside_page(p, count);
40403
40404 @@ -140,7 +155,24 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40405 if (!ptr)
40406 return -EFAULT;
40407
40408 - remaining = copy_to_user(buf, ptr, sz);
40409 +#ifdef CONFIG_PAX_USERCOPY
40410 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40411 + if (!temp) {
40412 + unxlate_dev_mem_ptr(p, ptr);
40413 + return -ENOMEM;
40414 + }
40415 + remaining = probe_kernel_read(temp, ptr, sz);
40416 +#else
40417 + temp = ptr;
40418 +#endif
40419 +
40420 + if (!remaining)
40421 + remaining = copy_to_user(buf, temp, sz);
40422 +
40423 +#ifdef CONFIG_PAX_USERCOPY
40424 + kfree(temp);
40425 +#endif
40426 +
40427 unxlate_dev_mem_ptr(p, ptr);
40428 if (remaining)
40429 return -EFAULT;
40430 @@ -380,9 +412,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40431 size_t count, loff_t *ppos)
40432 {
40433 unsigned long p = *ppos;
40434 - ssize_t low_count, read, sz;
40435 + ssize_t low_count, read, sz, err = 0;
40436 char *kbuf; /* k-addr because vread() takes vmlist_lock rwlock */
40437 - int err = 0;
40438
40439 read = 0;
40440 if (p < (unsigned long) high_memory) {
40441 @@ -404,6 +435,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40442 }
40443 #endif
40444 while (low_count > 0) {
40445 + char *temp;
40446 +
40447 sz = size_inside_page(p, low_count);
40448
40449 /*
40450 @@ -413,7 +446,23 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40451 */
40452 kbuf = xlate_dev_kmem_ptr((void *)p);
40453
40454 - if (copy_to_user(buf, kbuf, sz))
40455 +#ifdef CONFIG_PAX_USERCOPY
40456 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40457 + if (!temp)
40458 + return -ENOMEM;
40459 + err = probe_kernel_read(temp, kbuf, sz);
40460 +#else
40461 + temp = kbuf;
40462 +#endif
40463 +
40464 + if (!err)
40465 + err = copy_to_user(buf, temp, sz);
40466 +
40467 +#ifdef CONFIG_PAX_USERCOPY
40468 + kfree(temp);
40469 +#endif
40470 +
40471 + if (err)
40472 return -EFAULT;
40473 buf += sz;
40474 p += sz;
40475 @@ -802,6 +851,9 @@ static const struct memdev {
40476 #ifdef CONFIG_PRINTK
40477 [11] = { "kmsg", 0644, &kmsg_fops, 0 },
40478 #endif
40479 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40480 + [13] = { "grsec",S_IRUSR | S_IWUGO, &grsec_fops, 0 },
40481 +#endif
40482 };
40483
40484 static int memory_open(struct inode *inode, struct file *filp)
40485 @@ -863,7 +915,7 @@ static int __init chr_dev_init(void)
40486 continue;
40487
40488 device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
40489 - NULL, devlist[minor].name);
40490 + NULL, "%s", devlist[minor].name);
40491 }
40492
40493 return tty_init();
40494 diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
40495 index 9df78e2..01ba9ae 100644
40496 --- a/drivers/char/nvram.c
40497 +++ b/drivers/char/nvram.c
40498 @@ -247,7 +247,7 @@ static ssize_t nvram_read(struct file *file, char __user *buf,
40499
40500 spin_unlock_irq(&rtc_lock);
40501
40502 - if (copy_to_user(buf, contents, tmp - contents))
40503 + if (tmp - contents > sizeof(contents) || copy_to_user(buf, contents, tmp - contents))
40504 return -EFAULT;
40505
40506 *ppos = i;
40507 diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
40508 index 7680d52..073f799e 100644
40509 --- a/drivers/char/pcmcia/synclink_cs.c
40510 +++ b/drivers/char/pcmcia/synclink_cs.c
40511 @@ -2345,7 +2345,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40512
40513 if (debug_level >= DEBUG_LEVEL_INFO)
40514 printk("%s(%d):mgslpc_close(%s) entry, count=%d\n",
40515 - __FILE__, __LINE__, info->device_name, port->count);
40516 + __FILE__, __LINE__, info->device_name, atomic_read(&port->count));
40517
40518 if (tty_port_close_start(port, tty, filp) == 0)
40519 goto cleanup;
40520 @@ -2363,7 +2363,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40521 cleanup:
40522 if (debug_level >= DEBUG_LEVEL_INFO)
40523 printk("%s(%d):mgslpc_close(%s) exit, count=%d\n", __FILE__, __LINE__,
40524 - tty->driver->name, port->count);
40525 + tty->driver->name, atomic_read(&port->count));
40526 }
40527
40528 /* Wait until the transmitter is empty.
40529 @@ -2505,7 +2505,7 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40530
40531 if (debug_level >= DEBUG_LEVEL_INFO)
40532 printk("%s(%d):mgslpc_open(%s), old ref count = %d\n",
40533 - __FILE__, __LINE__, tty->driver->name, port->count);
40534 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
40535
40536 /* If port is closing, signal caller to try again */
40537 if (port->flags & ASYNC_CLOSING){
40538 @@ -2525,11 +2525,11 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40539 goto cleanup;
40540 }
40541 spin_lock(&port->lock);
40542 - port->count++;
40543 + atomic_inc(&port->count);
40544 spin_unlock(&port->lock);
40545 spin_unlock_irqrestore(&info->netlock, flags);
40546
40547 - if (port->count == 1) {
40548 + if (atomic_read(&port->count) == 1) {
40549 /* 1st open on this device, init hardware */
40550 retval = startup(info, tty);
40551 if (retval < 0)
40552 @@ -3918,7 +3918,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
40553 unsigned short new_crctype;
40554
40555 /* return error if TTY interface open */
40556 - if (info->port.count)
40557 + if (atomic_read(&info->port.count))
40558 return -EBUSY;
40559
40560 switch (encoding)
40561 @@ -4022,7 +4022,7 @@ static int hdlcdev_open(struct net_device *dev)
40562
40563 /* arbitrate between network and tty opens */
40564 spin_lock_irqsave(&info->netlock, flags);
40565 - if (info->port.count != 0 || info->netcount != 0) {
40566 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
40567 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
40568 spin_unlock_irqrestore(&info->netlock, flags);
40569 return -EBUSY;
40570 @@ -4112,7 +4112,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
40571 printk("%s:hdlcdev_ioctl(%s)\n", __FILE__, dev->name);
40572
40573 /* return error if TTY interface open */
40574 - if (info->port.count)
40575 + if (atomic_read(&info->port.count))
40576 return -EBUSY;
40577
40578 if (cmd != SIOCWANDEV)
40579 diff --git a/drivers/char/random.c b/drivers/char/random.c
40580 index d0da5d8..739fd3a 100644
40581 --- a/drivers/char/random.c
40582 +++ b/drivers/char/random.c
40583 @@ -289,9 +289,6 @@
40584 /*
40585 * To allow fractional bits to be tracked, the entropy_count field is
40586 * denominated in units of 1/8th bits.
40587 - *
40588 - * 2*(ENTROPY_SHIFT + log2(poolbits)) must <= 31, or the multiply in
40589 - * credit_entropy_bits() needs to be 64 bits wide.
40590 */
40591 #define ENTROPY_SHIFT 3
40592 #define ENTROPY_BITS(r) ((r)->entropy_count >> ENTROPY_SHIFT)
40593 @@ -442,9 +439,9 @@ struct entropy_store {
40594 };
40595
40596 static void push_to_pool(struct work_struct *work);
40597 -static __u32 input_pool_data[INPUT_POOL_WORDS];
40598 -static __u32 blocking_pool_data[OUTPUT_POOL_WORDS];
40599 -static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS];
40600 +static __u32 input_pool_data[INPUT_POOL_WORDS] __latent_entropy;
40601 +static __u32 blocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40602 +static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40603
40604 static struct entropy_store input_pool = {
40605 .poolinfo = &poolinfo_table[0],
40606 @@ -654,7 +651,7 @@ retry:
40607 /* The +2 corresponds to the /4 in the denominator */
40608
40609 do {
40610 - unsigned int anfrac = min(pnfrac, pool_size/2);
40611 + u64 anfrac = min(pnfrac, pool_size/2);
40612 unsigned int add =
40613 ((pool_size - entropy_count)*anfrac*3) >> s;
40614
40615 @@ -1227,7 +1224,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
40616
40617 extract_buf(r, tmp);
40618 i = min_t(int, nbytes, EXTRACT_SIZE);
40619 - if (copy_to_user(buf, tmp, i)) {
40620 + if (i > sizeof(tmp) || copy_to_user(buf, tmp, i)) {
40621 ret = -EFAULT;
40622 break;
40623 }
40624 @@ -1668,7 +1665,7 @@ static char sysctl_bootid[16];
40625 static int proc_do_uuid(struct ctl_table *table, int write,
40626 void __user *buffer, size_t *lenp, loff_t *ppos)
40627 {
40628 - struct ctl_table fake_table;
40629 + ctl_table_no_const fake_table;
40630 unsigned char buf[64], tmp_uuid[16], *uuid;
40631
40632 uuid = table->data;
40633 @@ -1698,7 +1695,7 @@ static int proc_do_uuid(struct ctl_table *table, int write,
40634 static int proc_do_entropy(struct ctl_table *table, int write,
40635 void __user *buffer, size_t *lenp, loff_t *ppos)
40636 {
40637 - struct ctl_table fake_table;
40638 + ctl_table_no_const fake_table;
40639 int entropy_count;
40640
40641 entropy_count = *(int *)table->data >> ENTROPY_SHIFT;
40642 diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
40643 index e496dae..3db53b6 100644
40644 --- a/drivers/char/sonypi.c
40645 +++ b/drivers/char/sonypi.c
40646 @@ -54,6 +54,7 @@
40647
40648 #include <asm/uaccess.h>
40649 #include <asm/io.h>
40650 +#include <asm/local.h>
40651
40652 #include <linux/sonypi.h>
40653
40654 @@ -490,7 +491,7 @@ static struct sonypi_device {
40655 spinlock_t fifo_lock;
40656 wait_queue_head_t fifo_proc_list;
40657 struct fasync_struct *fifo_async;
40658 - int open_count;
40659 + local_t open_count;
40660 int model;
40661 struct input_dev *input_jog_dev;
40662 struct input_dev *input_key_dev;
40663 @@ -892,7 +893,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
40664 static int sonypi_misc_release(struct inode *inode, struct file *file)
40665 {
40666 mutex_lock(&sonypi_device.lock);
40667 - sonypi_device.open_count--;
40668 + local_dec(&sonypi_device.open_count);
40669 mutex_unlock(&sonypi_device.lock);
40670 return 0;
40671 }
40672 @@ -901,9 +902,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
40673 {
40674 mutex_lock(&sonypi_device.lock);
40675 /* Flush input queue on first open */
40676 - if (!sonypi_device.open_count)
40677 + if (!local_read(&sonypi_device.open_count))
40678 kfifo_reset(&sonypi_device.fifo);
40679 - sonypi_device.open_count++;
40680 + local_inc(&sonypi_device.open_count);
40681 mutex_unlock(&sonypi_device.lock);
40682
40683 return 0;
40684 @@ -1491,7 +1492,7 @@ static struct platform_driver sonypi_driver = {
40685
40686 static struct platform_device *sonypi_platform_device;
40687
40688 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
40689 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
40690 {
40691 .ident = "Sony Vaio",
40692 .matches = {
40693 diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
40694 index 565a947..dcdc06e 100644
40695 --- a/drivers/char/tpm/tpm_acpi.c
40696 +++ b/drivers/char/tpm/tpm_acpi.c
40697 @@ -98,11 +98,12 @@ int read_log(struct tpm_bios_log *log)
40698 virt = acpi_os_map_iomem(start, len);
40699 if (!virt) {
40700 kfree(log->bios_event_log);
40701 + log->bios_event_log = NULL;
40702 printk("%s: ERROR - Unable to map memory\n", __func__);
40703 return -EIO;
40704 }
40705
40706 - memcpy_fromio(log->bios_event_log, virt, len);
40707 + memcpy_fromio(log->bios_event_log, (const char __force_kernel *)virt, len);
40708
40709 acpi_os_unmap_iomem(virt, len);
40710 return 0;
40711 diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
40712 index 3a56a13..f8cbd25 100644
40713 --- a/drivers/char/tpm/tpm_eventlog.c
40714 +++ b/drivers/char/tpm/tpm_eventlog.c
40715 @@ -95,7 +95,7 @@ static void *tpm_bios_measurements_start(struct seq_file *m, loff_t *pos)
40716 event = addr;
40717
40718 if ((event->event_type == 0 && event->event_size == 0) ||
40719 - ((addr + sizeof(struct tcpa_event) + event->event_size) >= limit))
40720 + (event->event_size >= limit - addr - sizeof(struct tcpa_event)))
40721 return NULL;
40722
40723 return addr;
40724 @@ -120,7 +120,7 @@ static void *tpm_bios_measurements_next(struct seq_file *m, void *v,
40725 return NULL;
40726
40727 if ((event->event_type == 0 && event->event_size == 0) ||
40728 - ((v + sizeof(struct tcpa_event) + event->event_size) >= limit))
40729 + (event->event_size >= limit - v - sizeof(struct tcpa_event)))
40730 return NULL;
40731
40732 (*pos)++;
40733 @@ -213,7 +213,8 @@ static int tpm_binary_bios_measurements_show(struct seq_file *m, void *v)
40734 int i;
40735
40736 for (i = 0; i < sizeof(struct tcpa_event) + event->event_size; i++)
40737 - seq_putc(m, data[i]);
40738 + if (!seq_putc(m, data[i]))
40739 + return -EFAULT;
40740
40741 return 0;
40742 }
40743 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
40744 index d2406fe..243951a 100644
40745 --- a/drivers/char/virtio_console.c
40746 +++ b/drivers/char/virtio_console.c
40747 @@ -685,7 +685,7 @@ static ssize_t fill_readbuf(struct port *port, char __user *out_buf,
40748 if (to_user) {
40749 ssize_t ret;
40750
40751 - ret = copy_to_user(out_buf, buf->buf + buf->offset, out_count);
40752 + ret = copy_to_user((char __force_user *)out_buf, buf->buf + buf->offset, out_count);
40753 if (ret)
40754 return -EFAULT;
40755 } else {
40756 @@ -789,7 +789,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
40757 if (!port_has_data(port) && !port->host_connected)
40758 return 0;
40759
40760 - return fill_readbuf(port, ubuf, count, true);
40761 + return fill_readbuf(port, (char __force_kernel *)ubuf, count, true);
40762 }
40763
40764 static int wait_port_writable(struct port *port, bool nonblock)
40765 diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
40766 index 616f5ae..747bdd0 100644
40767 --- a/drivers/clk/clk-composite.c
40768 +++ b/drivers/clk/clk-composite.c
40769 @@ -197,7 +197,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
40770 struct clk *clk;
40771 struct clk_init_data init;
40772 struct clk_composite *composite;
40773 - struct clk_ops *clk_composite_ops;
40774 + clk_ops_no_const *clk_composite_ops;
40775
40776 composite = kzalloc(sizeof(*composite), GFP_KERNEL);
40777 if (!composite)
40778 diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
40779 index b775fc2..2d45b64 100644
40780 --- a/drivers/clk/samsung/clk.h
40781 +++ b/drivers/clk/samsung/clk.h
40782 @@ -260,7 +260,7 @@ struct samsung_gate_clock {
40783 #define GATE_DA(_id, dname, cname, pname, o, b, f, gf, a) \
40784 __GATE(_id, dname, cname, pname, o, b, f, gf, a)
40785
40786 -#define PNAME(x) static const char *x[] __initdata
40787 +#define PNAME(x) static const char * const x[] __initconst
40788
40789 /**
40790 * struct samsung_clk_reg_dump: register dump of clock controller registers.
40791 diff --git a/drivers/clk/socfpga/clk-gate.c b/drivers/clk/socfpga/clk-gate.c
40792 index 82449cd..dcfec30 100644
40793 --- a/drivers/clk/socfpga/clk-gate.c
40794 +++ b/drivers/clk/socfpga/clk-gate.c
40795 @@ -22,6 +22,7 @@
40796 #include <linux/mfd/syscon.h>
40797 #include <linux/of.h>
40798 #include <linux/regmap.h>
40799 +#include <asm/pgtable.h>
40800
40801 #include "clk.h"
40802
40803 @@ -170,7 +171,7 @@ static int socfpga_clk_prepare(struct clk_hw *hwclk)
40804 return 0;
40805 }
40806
40807 -static struct clk_ops gateclk_ops = {
40808 +static clk_ops_no_const gateclk_ops __read_only = {
40809 .prepare = socfpga_clk_prepare,
40810 .recalc_rate = socfpga_clk_recalc_rate,
40811 .get_parent = socfpga_clk_get_parent,
40812 @@ -203,8 +204,10 @@ static void __init __socfpga_gate_init(struct device_node *node,
40813 socfpga_clk->hw.reg = clk_mgr_base_addr + clk_gate[0];
40814 socfpga_clk->hw.bit_idx = clk_gate[1];
40815
40816 - gateclk_ops.enable = clk_gate_ops.enable;
40817 - gateclk_ops.disable = clk_gate_ops.disable;
40818 + pax_open_kernel();
40819 + *(void **)&gateclk_ops.enable = clk_gate_ops.enable;
40820 + *(void **)&gateclk_ops.disable = clk_gate_ops.disable;
40821 + pax_close_kernel();
40822 }
40823
40824 rc = of_property_read_u32(node, "fixed-divider", &fixed_div);
40825 diff --git a/drivers/clk/socfpga/clk-pll.c b/drivers/clk/socfpga/clk-pll.c
40826 index 8f26b52..29f2a3a 100644
40827 --- a/drivers/clk/socfpga/clk-pll.c
40828 +++ b/drivers/clk/socfpga/clk-pll.c
40829 @@ -21,6 +21,7 @@
40830 #include <linux/io.h>
40831 #include <linux/of.h>
40832 #include <linux/of_address.h>
40833 +#include <asm/pgtable.h>
40834
40835 #include "clk.h"
40836
40837 @@ -76,7 +77,7 @@ static u8 clk_pll_get_parent(struct clk_hw *hwclk)
40838 CLK_MGR_PLL_CLK_SRC_MASK;
40839 }
40840
40841 -static struct clk_ops clk_pll_ops = {
40842 +static clk_ops_no_const clk_pll_ops __read_only = {
40843 .recalc_rate = clk_pll_recalc_rate,
40844 .get_parent = clk_pll_get_parent,
40845 };
40846 @@ -115,8 +116,10 @@ static __init struct clk *__socfpga_pll_init(struct device_node *node,
40847 pll_clk->hw.hw.init = &init;
40848
40849 pll_clk->hw.bit_idx = SOCFPGA_PLL_EXT_ENA;
40850 - clk_pll_ops.enable = clk_gate_ops.enable;
40851 - clk_pll_ops.disable = clk_gate_ops.disable;
40852 + pax_open_kernel();
40853 + *(void **)&clk_pll_ops.enable = clk_gate_ops.enable;
40854 + *(void **)&clk_pll_ops.disable = clk_gate_ops.disable;
40855 + pax_close_kernel();
40856
40857 clk = clk_register(NULL, &pll_clk->hw.hw);
40858 if (WARN_ON(IS_ERR(clk))) {
40859 diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
40860 index 7c2a738..0b84bd6 100644
40861 --- a/drivers/cpufreq/acpi-cpufreq.c
40862 +++ b/drivers/cpufreq/acpi-cpufreq.c
40863 @@ -678,8 +678,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40864 data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu);
40865 per_cpu(acfreq_data, cpu) = data;
40866
40867 - if (cpu_has(c, X86_FEATURE_CONSTANT_TSC))
40868 - acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40869 + if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) {
40870 + pax_open_kernel();
40871 + *(u8 *)&acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40872 + pax_close_kernel();
40873 + }
40874
40875 result = acpi_processor_register_performance(data->acpi_data, cpu);
40876 if (result)
40877 @@ -813,7 +816,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40878 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
40879 break;
40880 case ACPI_ADR_SPACE_FIXED_HARDWARE:
40881 - acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40882 + pax_open_kernel();
40883 + *(void **)&acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40884 + pax_close_kernel();
40885 break;
40886 default:
40887 break;
40888 @@ -907,8 +912,10 @@ static void __init acpi_cpufreq_boost_init(void)
40889 if (!msrs)
40890 return;
40891
40892 - acpi_cpufreq_driver.boost_supported = true;
40893 - acpi_cpufreq_driver.boost_enabled = boost_state(0);
40894 + pax_open_kernel();
40895 + *(bool *)&acpi_cpufreq_driver.boost_supported = true;
40896 + *(bool *)&acpi_cpufreq_driver.boost_enabled = boost_state(0);
40897 + pax_close_kernel();
40898
40899 cpu_notifier_register_begin();
40900
40901 diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
40902 index 99a4065..f97236c 100644
40903 --- a/drivers/cpufreq/cpufreq-dt.c
40904 +++ b/drivers/cpufreq/cpufreq-dt.c
40905 @@ -393,7 +393,9 @@ static int dt_cpufreq_probe(struct platform_device *pdev)
40906 if (!IS_ERR(cpu_reg))
40907 regulator_put(cpu_reg);
40908
40909 - dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40910 + pax_open_kernel();
40911 + *(void **)&dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40912 + pax_close_kernel();
40913
40914 ret = cpufreq_register_driver(&dt_cpufreq_driver);
40915 if (ret)
40916 diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
40917 index 7a3c30c..bac142e 100644
40918 --- a/drivers/cpufreq/cpufreq.c
40919 +++ b/drivers/cpufreq/cpufreq.c
40920 @@ -2197,7 +2197,7 @@ void cpufreq_unregister_governor(struct cpufreq_governor *governor)
40921 read_unlock_irqrestore(&cpufreq_driver_lock, flags);
40922
40923 mutex_lock(&cpufreq_governor_mutex);
40924 - list_del(&governor->governor_list);
40925 + pax_list_del(&governor->governor_list);
40926 mutex_unlock(&cpufreq_governor_mutex);
40927 return;
40928 }
40929 @@ -2412,7 +2412,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
40930 return NOTIFY_OK;
40931 }
40932
40933 -static struct notifier_block __refdata cpufreq_cpu_notifier = {
40934 +static struct notifier_block cpufreq_cpu_notifier = {
40935 .notifier_call = cpufreq_cpu_callback,
40936 };
40937
40938 @@ -2452,13 +2452,17 @@ int cpufreq_boost_trigger_state(int state)
40939 return 0;
40940
40941 write_lock_irqsave(&cpufreq_driver_lock, flags);
40942 - cpufreq_driver->boost_enabled = state;
40943 + pax_open_kernel();
40944 + *(bool *)&cpufreq_driver->boost_enabled = state;
40945 + pax_close_kernel();
40946 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40947
40948 ret = cpufreq_driver->set_boost(state);
40949 if (ret) {
40950 write_lock_irqsave(&cpufreq_driver_lock, flags);
40951 - cpufreq_driver->boost_enabled = !state;
40952 + pax_open_kernel();
40953 + *(bool *)&cpufreq_driver->boost_enabled = !state;
40954 + pax_close_kernel();
40955 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40956
40957 pr_err("%s: Cannot %s BOOST\n",
40958 @@ -2523,16 +2527,22 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
40959 cpufreq_driver = driver_data;
40960 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40961
40962 - if (driver_data->setpolicy)
40963 - driver_data->flags |= CPUFREQ_CONST_LOOPS;
40964 + if (driver_data->setpolicy) {
40965 + pax_open_kernel();
40966 + *(u8 *)&driver_data->flags |= CPUFREQ_CONST_LOOPS;
40967 + pax_close_kernel();
40968 + }
40969
40970 if (cpufreq_boost_supported()) {
40971 /*
40972 * Check if driver provides function to enable boost -
40973 * if not, use cpufreq_boost_set_sw as default
40974 */
40975 - if (!cpufreq_driver->set_boost)
40976 - cpufreq_driver->set_boost = cpufreq_boost_set_sw;
40977 + if (!cpufreq_driver->set_boost) {
40978 + pax_open_kernel();
40979 + *(void **)&cpufreq_driver->set_boost = cpufreq_boost_set_sw;
40980 + pax_close_kernel();
40981 + }
40982
40983 ret = cpufreq_sysfs_create_file(&boost.attr);
40984 if (ret) {
40985 diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
40986 index 57a39f8..feb9c73 100644
40987 --- a/drivers/cpufreq/cpufreq_governor.c
40988 +++ b/drivers/cpufreq/cpufreq_governor.c
40989 @@ -378,7 +378,7 @@ static int cpufreq_governor_start(struct cpufreq_policy *policy,
40990 cs_dbs_info->enable = 1;
40991 cs_dbs_info->requested_freq = policy->cur;
40992 } else {
40993 - struct od_ops *od_ops = cdata->gov_ops;
40994 + const struct od_ops *od_ops = cdata->gov_ops;
40995 struct od_cpu_dbs_info_s *od_dbs_info = cdata->get_cpu_dbs_info_s(cpu);
40996
40997 od_dbs_info->rate_mult = 1;
40998 diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
40999 index 34736f5..da8cf4a 100644
41000 --- a/drivers/cpufreq/cpufreq_governor.h
41001 +++ b/drivers/cpufreq/cpufreq_governor.h
41002 @@ -212,7 +212,7 @@ struct common_dbs_data {
41003 void (*exit)(struct dbs_data *dbs_data, bool notify);
41004
41005 /* Governor specific ops, see below */
41006 - void *gov_ops;
41007 + const void *gov_ops;
41008
41009 /*
41010 * Protects governor's data (struct dbs_data and struct common_dbs_data)
41011 @@ -234,7 +234,7 @@ struct od_ops {
41012 unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
41013 unsigned int freq_next, unsigned int relation);
41014 void (*freq_increase)(struct cpufreq_policy *policy, unsigned int freq);
41015 -};
41016 +} __no_const;
41017
41018 static inline int delay_for_sampling_rate(unsigned int sampling_rate)
41019 {
41020 diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
41021 index 3c1e10f..02f17af 100644
41022 --- a/drivers/cpufreq/cpufreq_ondemand.c
41023 +++ b/drivers/cpufreq/cpufreq_ondemand.c
41024 @@ -523,7 +523,7 @@ static void od_exit(struct dbs_data *dbs_data, bool notify)
41025
41026 define_get_cpu_dbs_routines(od_cpu_dbs_info);
41027
41028 -static struct od_ops od_ops = {
41029 +static struct od_ops od_ops __read_only = {
41030 .powersave_bias_init_cpu = ondemand_powersave_bias_init_cpu,
41031 .powersave_bias_target = generic_powersave_bias_target,
41032 .freq_increase = dbs_freq_increase,
41033 @@ -579,14 +579,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
41034 (struct cpufreq_policy *, unsigned int, unsigned int),
41035 unsigned int powersave_bias)
41036 {
41037 - od_ops.powersave_bias_target = f;
41038 + pax_open_kernel();
41039 + *(void **)&od_ops.powersave_bias_target = f;
41040 + pax_close_kernel();
41041 od_set_powersave_bias(powersave_bias);
41042 }
41043 EXPORT_SYMBOL_GPL(od_register_powersave_bias_handler);
41044
41045 void od_unregister_powersave_bias_handler(void)
41046 {
41047 - od_ops.powersave_bias_target = generic_powersave_bias_target;
41048 + pax_open_kernel();
41049 + *(void **)&od_ops.powersave_bias_target = generic_powersave_bias_target;
41050 + pax_close_kernel();
41051 od_set_powersave_bias(0);
41052 }
41053 EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
41054 diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
41055 index aba2117..4b187c8 100644
41056 --- a/drivers/cpufreq/intel_pstate.c
41057 +++ b/drivers/cpufreq/intel_pstate.c
41058 @@ -137,10 +137,10 @@ struct pstate_funcs {
41059 struct cpu_defaults {
41060 struct pstate_adjust_policy pid_policy;
41061 struct pstate_funcs funcs;
41062 -};
41063 +} __do_const;
41064
41065 static struct pstate_adjust_policy pid_params;
41066 -static struct pstate_funcs pstate_funcs;
41067 +static struct pstate_funcs *pstate_funcs;
41068 static int hwp_active;
41069
41070 struct perf_limits {
41071 @@ -726,18 +726,18 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate, bool force)
41072
41073 cpu->pstate.current_pstate = pstate;
41074
41075 - pstate_funcs.set(cpu, pstate);
41076 + pstate_funcs->set(cpu, pstate);
41077 }
41078
41079 static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
41080 {
41081 - cpu->pstate.min_pstate = pstate_funcs.get_min();
41082 - cpu->pstate.max_pstate = pstate_funcs.get_max();
41083 - cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
41084 - cpu->pstate.scaling = pstate_funcs.get_scaling();
41085 + cpu->pstate.min_pstate = pstate_funcs->get_min();
41086 + cpu->pstate.max_pstate = pstate_funcs->get_max();
41087 + cpu->pstate.turbo_pstate = pstate_funcs->get_turbo();
41088 + cpu->pstate.scaling = pstate_funcs->get_scaling();
41089
41090 - if (pstate_funcs.get_vid)
41091 - pstate_funcs.get_vid(cpu);
41092 + if (pstate_funcs->get_vid)
41093 + pstate_funcs->get_vid(cpu);
41094 intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate, false);
41095 }
41096
41097 @@ -1075,15 +1075,15 @@ static unsigned int force_load;
41098
41099 static int intel_pstate_msrs_not_valid(void)
41100 {
41101 - if (!pstate_funcs.get_max() ||
41102 - !pstate_funcs.get_min() ||
41103 - !pstate_funcs.get_turbo())
41104 + if (!pstate_funcs->get_max() ||
41105 + !pstate_funcs->get_min() ||
41106 + !pstate_funcs->get_turbo())
41107 return -ENODEV;
41108
41109 return 0;
41110 }
41111
41112 -static void copy_pid_params(struct pstate_adjust_policy *policy)
41113 +static void copy_pid_params(const struct pstate_adjust_policy *policy)
41114 {
41115 pid_params.sample_rate_ms = policy->sample_rate_ms;
41116 pid_params.p_gain_pct = policy->p_gain_pct;
41117 @@ -1095,12 +1095,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
41118
41119 static void copy_cpu_funcs(struct pstate_funcs *funcs)
41120 {
41121 - pstate_funcs.get_max = funcs->get_max;
41122 - pstate_funcs.get_min = funcs->get_min;
41123 - pstate_funcs.get_turbo = funcs->get_turbo;
41124 - pstate_funcs.get_scaling = funcs->get_scaling;
41125 - pstate_funcs.set = funcs->set;
41126 - pstate_funcs.get_vid = funcs->get_vid;
41127 + pstate_funcs = funcs;
41128 }
41129
41130 #if IS_ENABLED(CONFIG_ACPI)
41131 diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
41132 index 5dd95da..abc3837 100644
41133 --- a/drivers/cpufreq/p4-clockmod.c
41134 +++ b/drivers/cpufreq/p4-clockmod.c
41135 @@ -134,10 +134,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
41136 case 0x0F: /* Core Duo */
41137 case 0x16: /* Celeron Core */
41138 case 0x1C: /* Atom */
41139 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41140 + pax_open_kernel();
41141 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41142 + pax_close_kernel();
41143 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE);
41144 case 0x0D: /* Pentium M (Dothan) */
41145 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41146 + pax_open_kernel();
41147 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41148 + pax_close_kernel();
41149 /* fall through */
41150 case 0x09: /* Pentium M (Banias) */
41151 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
41152 @@ -149,7 +153,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
41153
41154 /* on P-4s, the TSC runs with constant frequency independent whether
41155 * throttling is active or not. */
41156 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41157 + pax_open_kernel();
41158 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
41159 + pax_close_kernel();
41160
41161 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
41162 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
41163 diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
41164 index 9bb42ba..b01b4a2 100644
41165 --- a/drivers/cpufreq/sparc-us3-cpufreq.c
41166 +++ b/drivers/cpufreq/sparc-us3-cpufreq.c
41167 @@ -18,14 +18,12 @@
41168 #include <asm/head.h>
41169 #include <asm/timer.h>
41170
41171 -static struct cpufreq_driver *cpufreq_us3_driver;
41172 -
41173 struct us3_freq_percpu_info {
41174 struct cpufreq_frequency_table table[4];
41175 };
41176
41177 /* Indexed by cpu number. */
41178 -static struct us3_freq_percpu_info *us3_freq_table;
41179 +static struct us3_freq_percpu_info us3_freq_table[NR_CPUS];
41180
41181 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
41182 * in the Safari config register.
41183 @@ -156,16 +154,27 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
41184
41185 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
41186 {
41187 - if (cpufreq_us3_driver)
41188 - us3_freq_target(policy, 0);
41189 + us3_freq_target(policy, 0);
41190
41191 return 0;
41192 }
41193
41194 +static int __init us3_freq_init(void);
41195 +static void __exit us3_freq_exit(void);
41196 +
41197 +static struct cpufreq_driver cpufreq_us3_driver = {
41198 + .init = us3_freq_cpu_init,
41199 + .verify = cpufreq_generic_frequency_table_verify,
41200 + .target_index = us3_freq_target,
41201 + .get = us3_freq_get,
41202 + .exit = us3_freq_cpu_exit,
41203 + .name = "UltraSPARC-III",
41204 +
41205 +};
41206 +
41207 static int __init us3_freq_init(void)
41208 {
41209 unsigned long manuf, impl, ver;
41210 - int ret;
41211
41212 if (tlb_type != cheetah && tlb_type != cheetah_plus)
41213 return -ENODEV;
41214 @@ -178,55 +187,15 @@ static int __init us3_freq_init(void)
41215 (impl == CHEETAH_IMPL ||
41216 impl == CHEETAH_PLUS_IMPL ||
41217 impl == JAGUAR_IMPL ||
41218 - impl == PANTHER_IMPL)) {
41219 - struct cpufreq_driver *driver;
41220 -
41221 - ret = -ENOMEM;
41222 - driver = kzalloc(sizeof(*driver), GFP_KERNEL);
41223 - if (!driver)
41224 - goto err_out;
41225 -
41226 - us3_freq_table = kzalloc((NR_CPUS * sizeof(*us3_freq_table)),
41227 - GFP_KERNEL);
41228 - if (!us3_freq_table)
41229 - goto err_out;
41230 -
41231 - driver->init = us3_freq_cpu_init;
41232 - driver->verify = cpufreq_generic_frequency_table_verify;
41233 - driver->target_index = us3_freq_target;
41234 - driver->get = us3_freq_get;
41235 - driver->exit = us3_freq_cpu_exit;
41236 - strcpy(driver->name, "UltraSPARC-III");
41237 -
41238 - cpufreq_us3_driver = driver;
41239 - ret = cpufreq_register_driver(driver);
41240 - if (ret)
41241 - goto err_out;
41242 -
41243 - return 0;
41244 -
41245 -err_out:
41246 - if (driver) {
41247 - kfree(driver);
41248 - cpufreq_us3_driver = NULL;
41249 - }
41250 - kfree(us3_freq_table);
41251 - us3_freq_table = NULL;
41252 - return ret;
41253 - }
41254 + impl == PANTHER_IMPL))
41255 + return cpufreq_register_driver(&cpufreq_us3_driver);
41256
41257 return -ENODEV;
41258 }
41259
41260 static void __exit us3_freq_exit(void)
41261 {
41262 - if (cpufreq_us3_driver) {
41263 - cpufreq_unregister_driver(cpufreq_us3_driver);
41264 - kfree(cpufreq_us3_driver);
41265 - cpufreq_us3_driver = NULL;
41266 - kfree(us3_freq_table);
41267 - us3_freq_table = NULL;
41268 - }
41269 + cpufreq_unregister_driver(&cpufreq_us3_driver);
41270 }
41271
41272 MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
41273 diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
41274 index 7d4a315..21bb886 100644
41275 --- a/drivers/cpufreq/speedstep-centrino.c
41276 +++ b/drivers/cpufreq/speedstep-centrino.c
41277 @@ -351,8 +351,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
41278 !cpu_has(cpu, X86_FEATURE_EST))
41279 return -ENODEV;
41280
41281 - if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC))
41282 - centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41283 + if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC)) {
41284 + pax_open_kernel();
41285 + *(u8 *)&centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41286 + pax_close_kernel();
41287 + }
41288
41289 if (policy->cpu != 0)
41290 return -ENODEV;
41291 diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
41292 index 5db1478..e90e25e 100644
41293 --- a/drivers/cpuidle/driver.c
41294 +++ b/drivers/cpuidle/driver.c
41295 @@ -193,7 +193,7 @@ static int poll_idle(struct cpuidle_device *dev,
41296
41297 static void poll_idle_init(struct cpuidle_driver *drv)
41298 {
41299 - struct cpuidle_state *state = &drv->states[0];
41300 + cpuidle_state_no_const *state = &drv->states[0];
41301
41302 snprintf(state->name, CPUIDLE_NAME_LEN, "POLL");
41303 snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
41304 diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c
41305 index a5c111b..1113002 100644
41306 --- a/drivers/cpuidle/dt_idle_states.c
41307 +++ b/drivers/cpuidle/dt_idle_states.c
41308 @@ -21,7 +21,7 @@
41309
41310 #include "dt_idle_states.h"
41311
41312 -static int init_state_node(struct cpuidle_state *idle_state,
41313 +static int init_state_node(cpuidle_state_no_const *idle_state,
41314 const struct of_device_id *matches,
41315 struct device_node *state_node)
41316 {
41317 diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
41318 index fb9f511..213e6cc 100644
41319 --- a/drivers/cpuidle/governor.c
41320 +++ b/drivers/cpuidle/governor.c
41321 @@ -87,7 +87,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
41322 mutex_lock(&cpuidle_lock);
41323 if (__cpuidle_find_governor(gov->name) == NULL) {
41324 ret = 0;
41325 - list_add_tail(&gov->governor_list, &cpuidle_governors);
41326 + pax_list_add_tail((struct list_head *)&gov->governor_list, &cpuidle_governors);
41327 if (!cpuidle_curr_governor ||
41328 cpuidle_curr_governor->rating < gov->rating)
41329 cpuidle_switch_governor(gov);
41330 diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
41331 index 832a2c3..1794080 100644
41332 --- a/drivers/cpuidle/sysfs.c
41333 +++ b/drivers/cpuidle/sysfs.c
41334 @@ -135,7 +135,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
41335 NULL
41336 };
41337
41338 -static struct attribute_group cpuidle_attr_group = {
41339 +static attribute_group_no_const cpuidle_attr_group = {
41340 .attrs = cpuidle_default_attrs,
41341 .name = "cpuidle",
41342 };
41343 diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
41344 index 8d2a772..33826c9 100644
41345 --- a/drivers/crypto/hifn_795x.c
41346 +++ b/drivers/crypto/hifn_795x.c
41347 @@ -51,7 +51,7 @@ module_param_string(hifn_pll_ref, hifn_pll_ref, sizeof(hifn_pll_ref), 0444);
41348 MODULE_PARM_DESC(hifn_pll_ref,
41349 "PLL reference clock (pci[freq] or ext[freq], default ext)");
41350
41351 -static atomic_t hifn_dev_number;
41352 +static atomic_unchecked_t hifn_dev_number;
41353
41354 #define ACRYPTO_OP_DECRYPT 0
41355 #define ACRYPTO_OP_ENCRYPT 1
41356 @@ -2577,7 +2577,7 @@ static int hifn_probe(struct pci_dev *pdev, const struct pci_device_id *id)
41357 goto err_out_disable_pci_device;
41358
41359 snprintf(name, sizeof(name), "hifn%d",
41360 - atomic_inc_return(&hifn_dev_number)-1);
41361 + atomic_inc_return_unchecked(&hifn_dev_number)-1);
41362
41363 err = pci_request_regions(pdev, name);
41364 if (err)
41365 diff --git a/drivers/crypto/nx/nx-aes-ccm.c b/drivers/crypto/nx/nx-aes-ccm.c
41366 index e4311ce..a1d0848 100644
41367 --- a/drivers/crypto/nx/nx-aes-ccm.c
41368 +++ b/drivers/crypto/nx/nx-aes-ccm.c
41369 @@ -412,7 +412,7 @@ static int ccm_nx_decrypt(struct aead_request *req,
41370 processed += to_process;
41371 } while (processed < nbytes);
41372
41373 - rc = memcmp(csbcpb->cpb.aes_ccm.out_pat_or_mac, priv->oauth_tag,
41374 + rc = crypto_memneq(csbcpb->cpb.aes_ccm.out_pat_or_mac, priv->oauth_tag,
41375 authsize) ? -EBADMSG : 0;
41376 out:
41377 spin_unlock_irqrestore(&nx_ctx->lock, irq_flags);
41378 diff --git a/drivers/crypto/nx/nx-aes-gcm.c b/drivers/crypto/nx/nx-aes-gcm.c
41379 index 92c993f..1c478bc 100644
41380 --- a/drivers/crypto/nx/nx-aes-gcm.c
41381 +++ b/drivers/crypto/nx/nx-aes-gcm.c
41382 @@ -414,7 +414,7 @@ mac:
41383 itag, req->src, req->assoclen + nbytes,
41384 crypto_aead_authsize(crypto_aead_reqtfm(req)),
41385 SCATTERWALK_FROM_SG);
41386 - rc = memcmp(itag, otag,
41387 + rc = crypto_memneq(itag, otag,
41388 crypto_aead_authsize(crypto_aead_reqtfm(req))) ?
41389 -EBADMSG : 0;
41390 }
41391 diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
41392 index 83aca95..4e6d4ea 100644
41393 --- a/drivers/crypto/talitos.c
41394 +++ b/drivers/crypto/talitos.c
41395 @@ -1025,8 +1025,8 @@ static void ipsec_esp_decrypt_swauth_done(struct device *dev,
41396 icvdata = &edesc->link_tbl[0];
41397
41398 sg = sg_last(req->dst, edesc->dst_nents ? : 1);
41399 - err = memcmp(icvdata, (char *)sg_virt(sg) + sg->length -
41400 - ctx->authsize, ctx->authsize) ? -EBADMSG : 0;
41401 + err = crypto_memneq(icvdata, (char *)sg_virt(sg) + sg->length -
41402 + ctx->authsize, ctx->authsize) ? -EBADMSG : 0;
41403 }
41404
41405 kfree(edesc);
41406 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
41407 index ca1b362..01cae6a 100644
41408 --- a/drivers/devfreq/devfreq.c
41409 +++ b/drivers/devfreq/devfreq.c
41410 @@ -672,7 +672,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
41411 goto err_out;
41412 }
41413
41414 - list_add(&governor->node, &devfreq_governor_list);
41415 + pax_list_add((struct list_head *)&governor->node, &devfreq_governor_list);
41416
41417 list_for_each_entry(devfreq, &devfreq_list, node) {
41418 int ret = 0;
41419 @@ -760,7 +760,7 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
41420 }
41421 }
41422
41423 - list_del(&governor->node);
41424 + pax_list_del((struct list_head *)&governor->node);
41425 err_out:
41426 mutex_unlock(&devfreq_list_lock);
41427
41428 diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
41429 index 10fcaba..326f709 100644
41430 --- a/drivers/dma/sh/shdma-base.c
41431 +++ b/drivers/dma/sh/shdma-base.c
41432 @@ -227,8 +227,8 @@ static int shdma_alloc_chan_resources(struct dma_chan *chan)
41433 schan->slave_id = -EINVAL;
41434 }
41435
41436 - schan->desc = kcalloc(NR_DESCS_PER_CHANNEL,
41437 - sdev->desc_size, GFP_KERNEL);
41438 + schan->desc = kcalloc(sdev->desc_size,
41439 + NR_DESCS_PER_CHANNEL, GFP_KERNEL);
41440 if (!schan->desc) {
41441 ret = -ENOMEM;
41442 goto edescalloc;
41443 diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
41444 index 11707df..2ea96f7 100644
41445 --- a/drivers/dma/sh/shdmac.c
41446 +++ b/drivers/dma/sh/shdmac.c
41447 @@ -513,7 +513,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
41448 return ret;
41449 }
41450
41451 -static struct notifier_block sh_dmae_nmi_notifier __read_mostly = {
41452 +static struct notifier_block sh_dmae_nmi_notifier = {
41453 .notifier_call = sh_dmae_nmi_handler,
41454
41455 /* Run before NMI debug handler and KGDB */
41456 diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
41457 index 592af5f..bb1d583 100644
41458 --- a/drivers/edac/edac_device.c
41459 +++ b/drivers/edac/edac_device.c
41460 @@ -477,9 +477,9 @@ void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev,
41461 */
41462 int edac_device_alloc_index(void)
41463 {
41464 - static atomic_t device_indexes = ATOMIC_INIT(0);
41465 + static atomic_unchecked_t device_indexes = ATOMIC_INIT(0);
41466
41467 - return atomic_inc_return(&device_indexes) - 1;
41468 + return atomic_inc_return_unchecked(&device_indexes) - 1;
41469 }
41470 EXPORT_SYMBOL_GPL(edac_device_alloc_index);
41471
41472 diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
41473 index 33df7d9..0794989 100644
41474 --- a/drivers/edac/edac_mc_sysfs.c
41475 +++ b/drivers/edac/edac_mc_sysfs.c
41476 @@ -154,7 +154,7 @@ static const char * const edac_caps[] = {
41477 struct dev_ch_attribute {
41478 struct device_attribute attr;
41479 int channel;
41480 -};
41481 +} __do_const;
41482
41483 #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
41484 static struct dev_ch_attribute dev_attr_legacy_##_name = \
41485 diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
41486 index 2cf44b4d..6dd2dc7 100644
41487 --- a/drivers/edac/edac_pci.c
41488 +++ b/drivers/edac/edac_pci.c
41489 @@ -29,7 +29,7 @@
41490
41491 static DEFINE_MUTEX(edac_pci_ctls_mutex);
41492 static LIST_HEAD(edac_pci_list);
41493 -static atomic_t pci_indexes = ATOMIC_INIT(0);
41494 +static atomic_unchecked_t pci_indexes = ATOMIC_INIT(0);
41495
41496 /*
41497 * edac_pci_alloc_ctl_info
41498 @@ -315,7 +315,7 @@ EXPORT_SYMBOL_GPL(edac_pci_reset_delay_period);
41499 */
41500 int edac_pci_alloc_index(void)
41501 {
41502 - return atomic_inc_return(&pci_indexes) - 1;
41503 + return atomic_inc_return_unchecked(&pci_indexes) - 1;
41504 }
41505 EXPORT_SYMBOL_GPL(edac_pci_alloc_index);
41506
41507 diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
41508 index 24d877f..4e30133 100644
41509 --- a/drivers/edac/edac_pci_sysfs.c
41510 +++ b/drivers/edac/edac_pci_sysfs.c
41511 @@ -23,8 +23,8 @@ static int edac_pci_log_pe = 1; /* log PCI parity errors */
41512 static int edac_pci_log_npe = 1; /* log PCI non-parity error errors */
41513 static int edac_pci_poll_msec = 1000; /* one second workq period */
41514
41515 -static atomic_t pci_parity_count = ATOMIC_INIT(0);
41516 -static atomic_t pci_nonparity_count = ATOMIC_INIT(0);
41517 +static atomic_unchecked_t pci_parity_count = ATOMIC_INIT(0);
41518 +static atomic_unchecked_t pci_nonparity_count = ATOMIC_INIT(0);
41519
41520 static struct kobject *edac_pci_top_main_kobj;
41521 static atomic_t edac_pci_sysfs_refcount = ATOMIC_INIT(0);
41522 @@ -232,7 +232,7 @@ struct edac_pci_dev_attribute {
41523 void *value;
41524 ssize_t(*show) (void *, char *);
41525 ssize_t(*store) (void *, const char *, size_t);
41526 -};
41527 +} __do_const;
41528
41529 /* Set of show/store abstract level functions for PCI Parity object */
41530 static ssize_t edac_pci_dev_show(struct kobject *kobj, struct attribute *attr,
41531 @@ -576,7 +576,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41532 edac_printk(KERN_CRIT, EDAC_PCI,
41533 "Signaled System Error on %s\n",
41534 pci_name(dev));
41535 - atomic_inc(&pci_nonparity_count);
41536 + atomic_inc_unchecked(&pci_nonparity_count);
41537 }
41538
41539 if (status & (PCI_STATUS_PARITY)) {
41540 @@ -584,7 +584,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41541 "Master Data Parity Error on %s\n",
41542 pci_name(dev));
41543
41544 - atomic_inc(&pci_parity_count);
41545 + atomic_inc_unchecked(&pci_parity_count);
41546 }
41547
41548 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41549 @@ -592,7 +592,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41550 "Detected Parity Error on %s\n",
41551 pci_name(dev));
41552
41553 - atomic_inc(&pci_parity_count);
41554 + atomic_inc_unchecked(&pci_parity_count);
41555 }
41556 }
41557
41558 @@ -615,7 +615,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41559 edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
41560 "Signaled System Error on %s\n",
41561 pci_name(dev));
41562 - atomic_inc(&pci_nonparity_count);
41563 + atomic_inc_unchecked(&pci_nonparity_count);
41564 }
41565
41566 if (status & (PCI_STATUS_PARITY)) {
41567 @@ -623,7 +623,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41568 "Master Data Parity Error on "
41569 "%s\n", pci_name(dev));
41570
41571 - atomic_inc(&pci_parity_count);
41572 + atomic_inc_unchecked(&pci_parity_count);
41573 }
41574
41575 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41576 @@ -631,7 +631,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41577 "Detected Parity Error on %s\n",
41578 pci_name(dev));
41579
41580 - atomic_inc(&pci_parity_count);
41581 + atomic_inc_unchecked(&pci_parity_count);
41582 }
41583 }
41584 }
41585 @@ -669,7 +669,7 @@ void edac_pci_do_parity_check(void)
41586 if (!check_pci_errors)
41587 return;
41588
41589 - before_count = atomic_read(&pci_parity_count);
41590 + before_count = atomic_read_unchecked(&pci_parity_count);
41591
41592 /* scan all PCI devices looking for a Parity Error on devices and
41593 * bridges.
41594 @@ -681,7 +681,7 @@ void edac_pci_do_parity_check(void)
41595 /* Only if operator has selected panic on PCI Error */
41596 if (edac_pci_get_panic_on_pe()) {
41597 /* If the count is different 'after' from 'before' */
41598 - if (before_count != atomic_read(&pci_parity_count))
41599 + if (before_count != atomic_read_unchecked(&pci_parity_count))
41600 panic("EDAC: PCI Parity Error");
41601 }
41602 }
41603 diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
41604 index c2359a1..8bd119d 100644
41605 --- a/drivers/edac/mce_amd.h
41606 +++ b/drivers/edac/mce_amd.h
41607 @@ -74,7 +74,7 @@ struct amd_decoder_ops {
41608 bool (*mc0_mce)(u16, u8);
41609 bool (*mc1_mce)(u16, u8);
41610 bool (*mc2_mce)(u16, u8);
41611 -};
41612 +} __no_const;
41613
41614 void amd_report_gart_errors(bool);
41615 void amd_register_ecc_decoder(void (*f)(int, struct mce *));
41616 diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
41617 index 57ea7f4..af06b76 100644
41618 --- a/drivers/firewire/core-card.c
41619 +++ b/drivers/firewire/core-card.c
41620 @@ -528,9 +528,9 @@ void fw_card_initialize(struct fw_card *card,
41621 const struct fw_card_driver *driver,
41622 struct device *device)
41623 {
41624 - static atomic_t index = ATOMIC_INIT(-1);
41625 + static atomic_unchecked_t index = ATOMIC_INIT(-1);
41626
41627 - card->index = atomic_inc_return(&index);
41628 + card->index = atomic_inc_return_unchecked(&index);
41629 card->driver = driver;
41630 card->device = device;
41631 card->current_tlabel = 0;
41632 @@ -680,7 +680,7 @@ EXPORT_SYMBOL_GPL(fw_card_release);
41633
41634 void fw_core_remove_card(struct fw_card *card)
41635 {
41636 - struct fw_card_driver dummy_driver = dummy_driver_template;
41637 + fw_card_driver_no_const dummy_driver = dummy_driver_template;
41638
41639 card->driver->update_phy_reg(card, 4,
41640 PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
41641 diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
41642 index f9e3aee..269dbdb 100644
41643 --- a/drivers/firewire/core-device.c
41644 +++ b/drivers/firewire/core-device.c
41645 @@ -256,7 +256,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma);
41646 struct config_rom_attribute {
41647 struct device_attribute attr;
41648 u32 key;
41649 -};
41650 +} __do_const;
41651
41652 static ssize_t show_immediate(struct device *dev,
41653 struct device_attribute *dattr, char *buf)
41654 diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
41655 index d6a09b9..18e90dd 100644
41656 --- a/drivers/firewire/core-transaction.c
41657 +++ b/drivers/firewire/core-transaction.c
41658 @@ -38,6 +38,7 @@
41659 #include <linux/timer.h>
41660 #include <linux/types.h>
41661 #include <linux/workqueue.h>
41662 +#include <linux/sched.h>
41663
41664 #include <asm/byteorder.h>
41665
41666 diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h
41667 index e1480ff6..1a429bd 100644
41668 --- a/drivers/firewire/core.h
41669 +++ b/drivers/firewire/core.h
41670 @@ -111,6 +111,7 @@ struct fw_card_driver {
41671
41672 int (*stop_iso)(struct fw_iso_context *ctx);
41673 };
41674 +typedef struct fw_card_driver __no_const fw_card_driver_no_const;
41675
41676 void fw_card_initialize(struct fw_card *card,
41677 const struct fw_card_driver *driver, struct device *device);
41678 diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
41679 index f51d376..b118e40 100644
41680 --- a/drivers/firewire/ohci.c
41681 +++ b/drivers/firewire/ohci.c
41682 @@ -2049,10 +2049,12 @@ static void bus_reset_work(struct work_struct *work)
41683 be32_to_cpu(ohci->next_header));
41684 }
41685
41686 +#ifndef CONFIG_GRKERNSEC
41687 if (param_remote_dma) {
41688 reg_write(ohci, OHCI1394_PhyReqFilterHiSet, ~0);
41689 reg_write(ohci, OHCI1394_PhyReqFilterLoSet, ~0);
41690 }
41691 +#endif
41692
41693 spin_unlock_irq(&ohci->lock);
41694
41695 @@ -2584,8 +2586,10 @@ static int ohci_enable_phys_dma(struct fw_card *card,
41696 unsigned long flags;
41697 int n, ret = 0;
41698
41699 +#ifndef CONFIG_GRKERNSEC
41700 if (param_remote_dma)
41701 return 0;
41702 +#endif
41703
41704 /*
41705 * FIXME: Make sure this bitmask is cleared when we clear the busReset
41706 diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c
41707 index 94a58a0..f5eba42 100644
41708 --- a/drivers/firmware/dmi-id.c
41709 +++ b/drivers/firmware/dmi-id.c
41710 @@ -16,7 +16,7 @@
41711 struct dmi_device_attribute{
41712 struct device_attribute dev_attr;
41713 int field;
41714 -};
41715 +} __do_const;
41716 #define to_dmi_dev_attr(_dev_attr) \
41717 container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
41718
41719 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
41720 index ac1ce4a..321745e 100644
41721 --- a/drivers/firmware/dmi_scan.c
41722 +++ b/drivers/firmware/dmi_scan.c
41723 @@ -690,14 +690,18 @@ static int __init dmi_init(void)
41724 if (!dmi_table)
41725 goto err_tables;
41726
41727 - bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41728 - bin_attr_smbios_entry_point.private = smbios_entry_point;
41729 + pax_open_kernel();
41730 + *(size_t *)&bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41731 + *(void **)&bin_attr_smbios_entry_point.private = smbios_entry_point;
41732 + pax_close_kernel();
41733 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_smbios_entry_point);
41734 if (ret)
41735 goto err_unmap;
41736
41737 - bin_attr_DMI.size = dmi_len;
41738 - bin_attr_DMI.private = dmi_table;
41739 + pax_open_kernel();
41740 + *(size_t *)&bin_attr_DMI.size = dmi_len;
41741 + *(void **)&bin_attr_DMI.private = dmi_table;
41742 + pax_close_kernel();
41743 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_DMI);
41744 if (!ret)
41745 return 0;
41746 diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
41747 index d425374..1da1716 100644
41748 --- a/drivers/firmware/efi/cper.c
41749 +++ b/drivers/firmware/efi/cper.c
41750 @@ -44,12 +44,12 @@ static char rcd_decode_str[CPER_REC_LEN];
41751 */
41752 u64 cper_next_record_id(void)
41753 {
41754 - static atomic64_t seq;
41755 + static atomic64_unchecked_t seq;
41756
41757 - if (!atomic64_read(&seq))
41758 - atomic64_set(&seq, ((u64)get_seconds()) << 32);
41759 + if (!atomic64_read_unchecked(&seq))
41760 + atomic64_set_unchecked(&seq, ((u64)get_seconds()) << 32);
41761
41762 - return atomic64_inc_return(&seq);
41763 + return atomic64_inc_return_unchecked(&seq);
41764 }
41765 EXPORT_SYMBOL_GPL(cper_next_record_id);
41766
41767 diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
41768 index d6144e3..23f9686 100644
41769 --- a/drivers/firmware/efi/efi.c
41770 +++ b/drivers/firmware/efi/efi.c
41771 @@ -170,14 +170,16 @@ static struct attribute_group efi_subsys_attr_group = {
41772 };
41773
41774 static struct efivars generic_efivars;
41775 -static struct efivar_operations generic_ops;
41776 +static efivar_operations_no_const generic_ops __read_only;
41777
41778 static int generic_ops_register(void)
41779 {
41780 - generic_ops.get_variable = efi.get_variable;
41781 - generic_ops.set_variable = efi.set_variable;
41782 - generic_ops.get_next_variable = efi.get_next_variable;
41783 - generic_ops.query_variable_store = efi_query_variable_store;
41784 + pax_open_kernel();
41785 + *(void **)&generic_ops.get_variable = efi.get_variable;
41786 + *(void **)&generic_ops.set_variable = efi.set_variable;
41787 + *(void **)&generic_ops.get_next_variable = efi.get_next_variable;
41788 + *(void **)&generic_ops.query_variable_store = efi_query_variable_store;
41789 + pax_close_kernel();
41790
41791 return efivars_register(&generic_efivars, &generic_ops, efi_kobj);
41792 }
41793 diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
41794 index 756eca8..2336d08 100644
41795 --- a/drivers/firmware/efi/efivars.c
41796 +++ b/drivers/firmware/efi/efivars.c
41797 @@ -590,7 +590,7 @@ efivar_create_sysfs_entry(struct efivar_entry *new_var)
41798 static int
41799 create_efivars_bin_attributes(void)
41800 {
41801 - struct bin_attribute *attr;
41802 + bin_attribute_no_const *attr;
41803 int error;
41804
41805 /* new_var */
41806 diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
41807 index 5c55227..97f4978 100644
41808 --- a/drivers/firmware/efi/runtime-map.c
41809 +++ b/drivers/firmware/efi/runtime-map.c
41810 @@ -97,7 +97,7 @@ static void map_release(struct kobject *kobj)
41811 kfree(entry);
41812 }
41813
41814 -static struct kobj_type __refdata map_ktype = {
41815 +static const struct kobj_type __refconst map_ktype = {
41816 .sysfs_ops = &map_attr_ops,
41817 .default_attrs = def_attrs,
41818 .release = map_release,
41819 diff --git a/drivers/firmware/google/gsmi.c b/drivers/firmware/google/gsmi.c
41820 index f1ab05e..ab51228 100644
41821 --- a/drivers/firmware/google/gsmi.c
41822 +++ b/drivers/firmware/google/gsmi.c
41823 @@ -709,7 +709,7 @@ static u32 __init hash_oem_table_id(char s[8])
41824 return local_hash_64(input, 32);
41825 }
41826
41827 -static struct dmi_system_id gsmi_dmi_table[] __initdata = {
41828 +static const struct dmi_system_id gsmi_dmi_table[] __initconst = {
41829 {
41830 .ident = "Google Board",
41831 .matches = {
41832 diff --git a/drivers/firmware/google/memconsole.c b/drivers/firmware/google/memconsole.c
41833 index 2f569aa..26e4f39 100644
41834 --- a/drivers/firmware/google/memconsole.c
41835 +++ b/drivers/firmware/google/memconsole.c
41836 @@ -136,7 +136,7 @@ static bool __init found_memconsole(void)
41837 return false;
41838 }
41839
41840 -static struct dmi_system_id memconsole_dmi_table[] __initdata = {
41841 +static const struct dmi_system_id memconsole_dmi_table[] __initconst = {
41842 {
41843 .ident = "Google Board",
41844 .matches = {
41845 @@ -155,7 +155,10 @@ static int __init memconsole_init(void)
41846 if (!found_memconsole())
41847 return -ENODEV;
41848
41849 - memconsole_bin_attr.size = memconsole_length;
41850 + pax_open_kernel();
41851 + *(size_t *)&memconsole_bin_attr.size = memconsole_length;
41852 + pax_close_kernel();
41853 +
41854 return sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr);
41855 }
41856
41857 diff --git a/drivers/firmware/memmap.c b/drivers/firmware/memmap.c
41858 index 5de3ed2..d839c56 100644
41859 --- a/drivers/firmware/memmap.c
41860 +++ b/drivers/firmware/memmap.c
41861 @@ -124,7 +124,7 @@ static void __meminit release_firmware_map_entry(struct kobject *kobj)
41862 kfree(entry);
41863 }
41864
41865 -static struct kobj_type __refdata memmap_ktype = {
41866 +static const struct kobj_type __refconst memmap_ktype = {
41867 .release = release_firmware_map_entry,
41868 .sysfs_ops = &memmap_attr_ops,
41869 .default_attrs = def_attrs,
41870 diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
41871 index c246ac3..6867ca6 100644
41872 --- a/drivers/gpio/gpio-davinci.c
41873 +++ b/drivers/gpio/gpio-davinci.c
41874 @@ -442,9 +442,9 @@ static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq)
41875 return &gpio_unbanked.chip;
41876 };
41877
41878 -static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq)
41879 +static irq_chip_no_const *keystone_gpio_get_irq_chip(unsigned int irq)
41880 {
41881 - static struct irq_chip gpio_unbanked;
41882 + static irq_chip_no_const gpio_unbanked;
41883
41884 gpio_unbanked = *irq_get_chip(irq);
41885 return &gpio_unbanked;
41886 @@ -474,7 +474,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev)
41887 struct davinci_gpio_regs __iomem *g;
41888 struct irq_domain *irq_domain = NULL;
41889 const struct of_device_id *match;
41890 - struct irq_chip *irq_chip;
41891 + irq_chip_no_const *irq_chip;
41892 gpio_get_irq_chip_cb_t gpio_get_irq_chip;
41893
41894 /*
41895 diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c
41896 index fbf2873..0a37114 100644
41897 --- a/drivers/gpio/gpio-em.c
41898 +++ b/drivers/gpio/gpio-em.c
41899 @@ -278,7 +278,7 @@ static int em_gio_probe(struct platform_device *pdev)
41900 struct em_gio_priv *p;
41901 struct resource *io[2], *irq[2];
41902 struct gpio_chip *gpio_chip;
41903 - struct irq_chip *irq_chip;
41904 + irq_chip_no_const *irq_chip;
41905 const char *name = dev_name(&pdev->dev);
41906 int ret;
41907
41908 diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
41909 index 4ba7ed5..1536b5d 100644
41910 --- a/drivers/gpio/gpio-ich.c
41911 +++ b/drivers/gpio/gpio-ich.c
41912 @@ -94,7 +94,7 @@ struct ichx_desc {
41913 * this option allows driver caching written output values
41914 */
41915 bool use_outlvl_cache;
41916 -};
41917 +} __do_const;
41918
41919 static struct {
41920 spinlock_t lock;
41921 diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
41922 index 61a731f..d5ca6cb 100644
41923 --- a/drivers/gpio/gpio-omap.c
41924 +++ b/drivers/gpio/gpio-omap.c
41925 @@ -1067,7 +1067,7 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)
41926 dev_err(bank->dev, "Could not get gpio dbck\n");
41927 }
41928
41929 -static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
41930 +static int omap_gpio_chip_init(struct gpio_bank *bank, irq_chip_no_const *irqc)
41931 {
41932 static int gpio;
41933 int irq_base = 0;
41934 @@ -1150,7 +1150,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
41935 const struct omap_gpio_platform_data *pdata;
41936 struct resource *res;
41937 struct gpio_bank *bank;
41938 - struct irq_chip *irqc;
41939 + irq_chip_no_const *irqc;
41940 int ret;
41941
41942 match = of_match_device(of_match_ptr(omap_gpio_match), dev);
41943 diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
41944 index 1e14a6c..0442450 100644
41945 --- a/drivers/gpio/gpio-rcar.c
41946 +++ b/drivers/gpio/gpio-rcar.c
41947 @@ -379,7 +379,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
41948 struct gpio_rcar_priv *p;
41949 struct resource *io, *irq;
41950 struct gpio_chip *gpio_chip;
41951 - struct irq_chip *irq_chip;
41952 + irq_chip_no_const *irq_chip;
41953 struct device *dev = &pdev->dev;
41954 const char *name = dev_name(dev);
41955 int ret;
41956 diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c
41957 index c1caa45..f0f97d2 100644
41958 --- a/drivers/gpio/gpio-vr41xx.c
41959 +++ b/drivers/gpio/gpio-vr41xx.c
41960 @@ -224,7 +224,7 @@ static int giu_get_irq(unsigned int irq)
41961 printk(KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n",
41962 maskl, pendl, maskh, pendh);
41963
41964 - atomic_inc(&irq_err_count);
41965 + atomic_inc_unchecked(&irq_err_count);
41966
41967 return -EINVAL;
41968 }
41969 diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
41970 index bf4bd1d..51154a3 100644
41971 --- a/drivers/gpio/gpiolib.c
41972 +++ b/drivers/gpio/gpiolib.c
41973 @@ -569,8 +569,10 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
41974 }
41975
41976 if (gpiochip->irqchip) {
41977 - gpiochip->irqchip->irq_request_resources = NULL;
41978 - gpiochip->irqchip->irq_release_resources = NULL;
41979 + pax_open_kernel();
41980 + *(void **)&gpiochip->irqchip->irq_request_resources = NULL;
41981 + *(void **)&gpiochip->irqchip->irq_release_resources = NULL;
41982 + pax_close_kernel();
41983 gpiochip->irqchip = NULL;
41984 }
41985 }
41986 @@ -636,8 +638,11 @@ int gpiochip_irqchip_add(struct gpio_chip *gpiochip,
41987 gpiochip->irqchip = NULL;
41988 return -EINVAL;
41989 }
41990 - irqchip->irq_request_resources = gpiochip_irq_reqres;
41991 - irqchip->irq_release_resources = gpiochip_irq_relres;
41992 +
41993 + pax_open_kernel();
41994 + *(void **)&irqchip->irq_request_resources = gpiochip_irq_reqres;
41995 + *(void **)&irqchip->irq_release_resources = gpiochip_irq_relres;
41996 + pax_close_kernel();
41997
41998 /*
41999 * Prepare the mapping since the irqchip shall be orthogonal to
42000 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
42001 index 99f158e..20b6c4c 100644
42002 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
42003 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
42004 @@ -1071,7 +1071,7 @@ static bool amdgpu_switcheroo_can_switch(struct pci_dev *pdev)
42005 * locking inversion with the driver load path. And the access here is
42006 * completely racy anyway. So don't bother with locking for now.
42007 */
42008 - return dev->open_count == 0;
42009 + return local_read(&dev->open_count) == 0;
42010 }
42011
42012 static const struct vga_switcheroo_client_ops amdgpu_switcheroo_ops = {
42013 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
42014 index c991973..8eb176b 100644
42015 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
42016 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
42017 @@ -419,7 +419,7 @@ static int kfd_ioctl_set_memory_policy(struct file *filep,
42018 (args->alternate_policy == KFD_IOC_CACHE_POLICY_COHERENT)
42019 ? cache_policy_coherent : cache_policy_noncoherent;
42020
42021 - if (!dev->dqm->ops.set_cache_memory_policy(dev->dqm,
42022 + if (!dev->dqm->ops->set_cache_memory_policy(dev->dqm,
42023 &pdd->qpd,
42024 default_policy,
42025 alternate_policy,
42026 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
42027 index 75312c8..e3684e6 100644
42028 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
42029 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
42030 @@ -293,7 +293,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
42031 goto device_queue_manager_error;
42032 }
42033
42034 - if (kfd->dqm->ops.start(kfd->dqm) != 0) {
42035 + if (kfd->dqm->ops->start(kfd->dqm) != 0) {
42036 dev_err(kfd_device,
42037 "Error starting queuen manager for device (%x:%x)\n",
42038 kfd->pdev->vendor, kfd->pdev->device);
42039 @@ -349,7 +349,7 @@ void kgd2kfd_suspend(struct kfd_dev *kfd)
42040 BUG_ON(kfd == NULL);
42041
42042 if (kfd->init_complete) {
42043 - kfd->dqm->ops.stop(kfd->dqm);
42044 + kfd->dqm->ops->stop(kfd->dqm);
42045 amd_iommu_set_invalidate_ctx_cb(kfd->pdev, NULL);
42046 amd_iommu_set_invalid_ppr_cb(kfd->pdev, NULL);
42047 amd_iommu_free_device(kfd->pdev);
42048 @@ -372,7 +372,7 @@ int kgd2kfd_resume(struct kfd_dev *kfd)
42049 amd_iommu_set_invalidate_ctx_cb(kfd->pdev,
42050 iommu_pasid_shutdown_callback);
42051 amd_iommu_set_invalid_ppr_cb(kfd->pdev, iommu_invalid_ppr_cb);
42052 - kfd->dqm->ops.start(kfd->dqm);
42053 + kfd->dqm->ops->start(kfd->dqm);
42054 }
42055
42056 return 0;
42057 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
42058 index 4bb7f42..320fcac 100644
42059 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
42060 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
42061 @@ -242,7 +242,7 @@ static int create_compute_queue_nocpsch(struct device_queue_manager *dqm,
42062
42063 BUG_ON(!dqm || !q || !qpd);
42064
42065 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42066 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42067 if (mqd == NULL)
42068 return -ENOMEM;
42069
42070 @@ -288,14 +288,14 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
42071 mutex_lock(&dqm->lock);
42072
42073 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) {
42074 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42075 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42076 if (mqd == NULL) {
42077 retval = -ENOMEM;
42078 goto out;
42079 }
42080 deallocate_hqd(dqm, q);
42081 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA) {
42082 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42083 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42084 if (mqd == NULL) {
42085 retval = -ENOMEM;
42086 goto out;
42087 @@ -347,7 +347,7 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
42088 BUG_ON(!dqm || !q || !q->mqd);
42089
42090 mutex_lock(&dqm->lock);
42091 - mqd = dqm->ops.get_mqd_manager(dqm,
42092 + mqd = dqm->ops->get_mqd_manager(dqm,
42093 get_mqd_type_from_queue_type(q->properties.type));
42094 if (mqd == NULL) {
42095 mutex_unlock(&dqm->lock);
42096 @@ -414,7 +414,7 @@ static int register_process_nocpsch(struct device_queue_manager *dqm,
42097 mutex_lock(&dqm->lock);
42098 list_add(&n->list, &dqm->queues);
42099
42100 - retval = dqm->ops_asic_specific.register_process(dqm, qpd);
42101 + retval = dqm->ops_asic_specific->register_process(dqm, qpd);
42102
42103 dqm->processes_count++;
42104
42105 @@ -502,7 +502,7 @@ int init_pipelines(struct device_queue_manager *dqm,
42106
42107 memset(hpdptr, 0, CIK_HPD_EOP_BYTES * pipes_num);
42108
42109 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42110 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42111 if (mqd == NULL) {
42112 kfd_gtt_sa_free(dqm->dev, dqm->pipeline_mem);
42113 return -ENOMEM;
42114 @@ -635,7 +635,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
42115 struct mqd_manager *mqd;
42116 int retval;
42117
42118 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42119 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42120 if (!mqd)
42121 return -ENOMEM;
42122
42123 @@ -650,7 +650,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
42124 pr_debug(" sdma queue id: %d\n", q->properties.sdma_queue_id);
42125 pr_debug(" sdma engine id: %d\n", q->properties.sdma_engine_id);
42126
42127 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
42128 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
42129 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
42130 &q->gart_mqd_addr, &q->properties);
42131 if (retval != 0) {
42132 @@ -712,7 +712,7 @@ static int initialize_cpsch(struct device_queue_manager *dqm)
42133 dqm->queue_count = dqm->processes_count = 0;
42134 dqm->sdma_queue_count = 0;
42135 dqm->active_runlist = false;
42136 - retval = dqm->ops_asic_specific.initialize(dqm);
42137 + retval = dqm->ops_asic_specific->initialize(dqm);
42138 if (retval != 0)
42139 goto fail_init_pipelines;
42140
42141 @@ -879,7 +879,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
42142 if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
42143 select_sdma_engine_id(q);
42144
42145 - mqd = dqm->ops.get_mqd_manager(dqm,
42146 + mqd = dqm->ops->get_mqd_manager(dqm,
42147 get_mqd_type_from_queue_type(q->properties.type));
42148
42149 if (mqd == NULL) {
42150 @@ -887,7 +887,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
42151 return -ENOMEM;
42152 }
42153
42154 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
42155 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
42156 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
42157 &q->gart_mqd_addr, &q->properties);
42158 if (retval != 0)
42159 @@ -1060,7 +1060,7 @@ static int destroy_queue_cpsch(struct device_queue_manager *dqm,
42160
42161 }
42162
42163 - mqd = dqm->ops.get_mqd_manager(dqm,
42164 + mqd = dqm->ops->get_mqd_manager(dqm,
42165 get_mqd_type_from_queue_type(q->properties.type));
42166 if (!mqd) {
42167 retval = -ENOMEM;
42168 @@ -1149,7 +1149,7 @@ static bool set_cache_memory_policy(struct device_queue_manager *dqm,
42169 qpd->sh_mem_ape1_limit = limit >> 16;
42170 }
42171
42172 - retval = dqm->ops_asic_specific.set_cache_memory_policy(
42173 + retval = dqm->ops_asic_specific->set_cache_memory_policy(
42174 dqm,
42175 qpd,
42176 default_policy,
42177 @@ -1172,6 +1172,36 @@ out:
42178 return false;
42179 }
42180
42181 +static const struct device_queue_manager_ops cp_dqm_ops = {
42182 + .create_queue = create_queue_cpsch,
42183 + .initialize = initialize_cpsch,
42184 + .start = start_cpsch,
42185 + .stop = stop_cpsch,
42186 + .destroy_queue = destroy_queue_cpsch,
42187 + .update_queue = update_queue,
42188 + .get_mqd_manager = get_mqd_manager_nocpsch,
42189 + .register_process = register_process_nocpsch,
42190 + .unregister_process = unregister_process_nocpsch,
42191 + .uninitialize = uninitialize_nocpsch,
42192 + .create_kernel_queue = create_kernel_queue_cpsch,
42193 + .destroy_kernel_queue = destroy_kernel_queue_cpsch,
42194 + .set_cache_memory_policy = set_cache_memory_policy,
42195 +};
42196 +
42197 +static const struct device_queue_manager_ops no_cp_dqm_ops = {
42198 + .start = start_nocpsch,
42199 + .stop = stop_nocpsch,
42200 + .create_queue = create_queue_nocpsch,
42201 + .destroy_queue = destroy_queue_nocpsch,
42202 + .update_queue = update_queue,
42203 + .get_mqd_manager = get_mqd_manager_nocpsch,
42204 + .register_process = register_process_nocpsch,
42205 + .unregister_process = unregister_process_nocpsch,
42206 + .initialize = initialize_nocpsch,
42207 + .uninitialize = uninitialize_nocpsch,
42208 + .set_cache_memory_policy = set_cache_memory_policy,
42209 +};
42210 +
42211 struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42212 {
42213 struct device_queue_manager *dqm;
42214 @@ -1189,33 +1219,11 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42215 case KFD_SCHED_POLICY_HWS:
42216 case KFD_SCHED_POLICY_HWS_NO_OVERSUBSCRIPTION:
42217 /* initialize dqm for cp scheduling */
42218 - dqm->ops.create_queue = create_queue_cpsch;
42219 - dqm->ops.initialize = initialize_cpsch;
42220 - dqm->ops.start = start_cpsch;
42221 - dqm->ops.stop = stop_cpsch;
42222 - dqm->ops.destroy_queue = destroy_queue_cpsch;
42223 - dqm->ops.update_queue = update_queue;
42224 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42225 - dqm->ops.register_process = register_process_nocpsch;
42226 - dqm->ops.unregister_process = unregister_process_nocpsch;
42227 - dqm->ops.uninitialize = uninitialize_nocpsch;
42228 - dqm->ops.create_kernel_queue = create_kernel_queue_cpsch;
42229 - dqm->ops.destroy_kernel_queue = destroy_kernel_queue_cpsch;
42230 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42231 + dqm->ops = &cp_dqm_ops;
42232 break;
42233 case KFD_SCHED_POLICY_NO_HWS:
42234 /* initialize dqm for no cp scheduling */
42235 - dqm->ops.start = start_nocpsch;
42236 - dqm->ops.stop = stop_nocpsch;
42237 - dqm->ops.create_queue = create_queue_nocpsch;
42238 - dqm->ops.destroy_queue = destroy_queue_nocpsch;
42239 - dqm->ops.update_queue = update_queue;
42240 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42241 - dqm->ops.register_process = register_process_nocpsch;
42242 - dqm->ops.unregister_process = unregister_process_nocpsch;
42243 - dqm->ops.initialize = initialize_nocpsch;
42244 - dqm->ops.uninitialize = uninitialize_nocpsch;
42245 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42246 + dqm->ops = &no_cp_dqm_ops;
42247 break;
42248 default:
42249 BUG();
42250 @@ -1224,15 +1232,15 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42251
42252 switch (dev->device_info->asic_family) {
42253 case CHIP_CARRIZO:
42254 - device_queue_manager_init_vi(&dqm->ops_asic_specific);
42255 + device_queue_manager_init_vi(dqm);
42256 break;
42257
42258 case CHIP_KAVERI:
42259 - device_queue_manager_init_cik(&dqm->ops_asic_specific);
42260 + device_queue_manager_init_cik(dqm);
42261 break;
42262 }
42263
42264 - if (dqm->ops.initialize(dqm) != 0) {
42265 + if (dqm->ops->initialize(dqm) != 0) {
42266 kfree(dqm);
42267 return NULL;
42268 }
42269 @@ -1244,6 +1252,6 @@ void device_queue_manager_uninit(struct device_queue_manager *dqm)
42270 {
42271 BUG_ON(!dqm);
42272
42273 - dqm->ops.uninitialize(dqm);
42274 + dqm->ops->uninitialize(dqm);
42275 kfree(dqm);
42276 }
42277 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42278 index ec4036a..3ef0646 100644
42279 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42280 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42281 @@ -154,8 +154,8 @@ struct device_queue_manager_asic_ops {
42282 */
42283
42284 struct device_queue_manager {
42285 - struct device_queue_manager_ops ops;
42286 - struct device_queue_manager_asic_ops ops_asic_specific;
42287 + struct device_queue_manager_ops *ops;
42288 + struct device_queue_manager_asic_ops *ops_asic_specific;
42289
42290 struct mqd_manager *mqds[KFD_MQD_TYPE_MAX];
42291 struct packet_manager packets;
42292 @@ -178,8 +178,8 @@ struct device_queue_manager {
42293 bool active_runlist;
42294 };
42295
42296 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops);
42297 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops);
42298 +void device_queue_manager_init_cik(struct device_queue_manager *dqm);
42299 +void device_queue_manager_init_vi(struct device_queue_manager *dqm);
42300 void program_sh_mem_settings(struct device_queue_manager *dqm,
42301 struct qcm_process_device *qpd);
42302 int init_pipelines(struct device_queue_manager *dqm,
42303 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
42304 index 9ce8a20..1ca4e22 100644
42305 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42306 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42307 @@ -36,12 +36,16 @@ static int initialize_cpsch_cik(struct device_queue_manager *dqm);
42308 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42309 struct qcm_process_device *qpd);
42310
42311 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops)
42312 +static const struct device_queue_manager_asic_ops cik_dqm_asic_ops = {
42313 + .set_cache_memory_policy = set_cache_memory_policy_cik,
42314 + .register_process = register_process_cik,
42315 + .initialize = initialize_cpsch_cik,
42316 + .init_sdma_vm = init_sdma_vm,
42317 +};
42318 +
42319 +void device_queue_manager_init_cik(struct device_queue_manager *dqm)
42320 {
42321 - ops->set_cache_memory_policy = set_cache_memory_policy_cik;
42322 - ops->register_process = register_process_cik;
42323 - ops->initialize = initialize_cpsch_cik;
42324 - ops->init_sdma_vm = init_sdma_vm;
42325 + dqm->ops_asic_specific = &cik_dqm_asic_ops;
42326 }
42327
42328 static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
42329 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
42330 index 4c15212..61bfab8 100644
42331 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42332 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42333 @@ -35,14 +35,18 @@ static int initialize_cpsch_vi(struct device_queue_manager *dqm);
42334 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42335 struct qcm_process_device *qpd);
42336
42337 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops)
42338 +static const struct device_queue_manager_asic_ops vi_dqm_asic_ops = {
42339 + .set_cache_memory_policy = set_cache_memory_policy_vi,
42340 + .register_process = register_process_vi,
42341 + .initialize = initialize_cpsch_vi,
42342 + .init_sdma_vm = init_sdma_vm,
42343 +};
42344 +
42345 +void device_queue_manager_init_vi(struct device_queue_manager *dqm)
42346 {
42347 pr_warn("amdkfd: VI DQM is not currently supported\n");
42348
42349 - ops->set_cache_memory_policy = set_cache_memory_policy_vi;
42350 - ops->register_process = register_process_vi;
42351 - ops->initialize = initialize_cpsch_vi;
42352 - ops->init_sdma_vm = init_sdma_vm;
42353 + dqm->ops_asic_specific = &vi_dqm_asic_ops;
42354 }
42355
42356 static bool set_cache_memory_policy_vi(struct device_queue_manager *dqm,
42357 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42358 index 7f134aa..cd34d4a 100644
42359 --- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42360 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42361 @@ -50,8 +50,8 @@ static void interrupt_wq(struct work_struct *);
42362
42363 int kfd_interrupt_init(struct kfd_dev *kfd)
42364 {
42365 - void *interrupt_ring = kmalloc_array(KFD_INTERRUPT_RING_SIZE,
42366 - kfd->device_info->ih_ring_entry_size,
42367 + void *interrupt_ring = kmalloc_array(kfd->device_info->ih_ring_entry_size,
42368 + KFD_INTERRUPT_RING_SIZE,
42369 GFP_KERNEL);
42370 if (!interrupt_ring)
42371 return -ENOMEM;
42372 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42373 index 8fa8941..5ae07df 100644
42374 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42375 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42376 @@ -56,7 +56,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev,
42377 switch (type) {
42378 case KFD_QUEUE_TYPE_DIQ:
42379 case KFD_QUEUE_TYPE_HIQ:
42380 - kq->mqd = dev->dqm->ops.get_mqd_manager(dev->dqm,
42381 + kq->mqd = dev->dqm->ops->get_mqd_manager(dev->dqm,
42382 KFD_MQD_TYPE_HIQ);
42383 break;
42384 default:
42385 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42386 index 5940531..a75b0e5 100644
42387 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42388 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42389 @@ -62,7 +62,7 @@ struct kernel_queue_ops {
42390
42391 void (*submit_packet)(struct kernel_queue *kq);
42392 void (*rollback_packet)(struct kernel_queue *kq);
42393 -};
42394 +} __no_const;
42395
42396 struct kernel_queue {
42397 struct kernel_queue_ops ops;
42398 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42399 index 7b69070..d7bd78b 100644
42400 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42401 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42402 @@ -194,7 +194,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42403
42404 if (list_empty(&pqm->queues)) {
42405 pdd->qpd.pqm = pqm;
42406 - dev->dqm->ops.register_process(dev->dqm, &pdd->qpd);
42407 + dev->dqm->ops->register_process(dev->dqm, &pdd->qpd);
42408 }
42409
42410 pqn = kzalloc(sizeof(struct process_queue_node), GFP_KERNEL);
42411 @@ -220,7 +220,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42412 goto err_create_queue;
42413 pqn->q = q;
42414 pqn->kq = NULL;
42415 - retval = dev->dqm->ops.create_queue(dev->dqm, q, &pdd->qpd,
42416 + retval = dev->dqm->ops->create_queue(dev->dqm, q, &pdd->qpd,
42417 &q->properties.vmid);
42418 pr_debug("DQM returned %d for create_queue\n", retval);
42419 print_queue(q);
42420 @@ -234,7 +234,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42421 kq->queue->properties.queue_id = *qid;
42422 pqn->kq = kq;
42423 pqn->q = NULL;
42424 - retval = dev->dqm->ops.create_kernel_queue(dev->dqm,
42425 + retval = dev->dqm->ops->create_kernel_queue(dev->dqm,
42426 kq, &pdd->qpd);
42427 break;
42428 default:
42429 @@ -265,7 +265,7 @@ err_allocate_pqn:
42430 /* check if queues list is empty unregister process from device */
42431 clear_bit(*qid, pqm->queue_slot_bitmap);
42432 if (list_empty(&pqm->queues))
42433 - dev->dqm->ops.unregister_process(dev->dqm, &pdd->qpd);
42434 + dev->dqm->ops->unregister_process(dev->dqm, &pdd->qpd);
42435 return retval;
42436 }
42437
42438 @@ -306,13 +306,13 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42439 if (pqn->kq) {
42440 /* destroy kernel queue (DIQ) */
42441 dqm = pqn->kq->dev->dqm;
42442 - dqm->ops.destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42443 + dqm->ops->destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42444 kernel_queue_uninit(pqn->kq);
42445 }
42446
42447 if (pqn->q) {
42448 dqm = pqn->q->device->dqm;
42449 - retval = dqm->ops.destroy_queue(dqm, &pdd->qpd, pqn->q);
42450 + retval = dqm->ops->destroy_queue(dqm, &pdd->qpd, pqn->q);
42451 if (retval != 0)
42452 return retval;
42453
42454 @@ -324,7 +324,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42455 clear_bit(qid, pqm->queue_slot_bitmap);
42456
42457 if (list_empty(&pqm->queues))
42458 - dqm->ops.unregister_process(dqm, &pdd->qpd);
42459 + dqm->ops->unregister_process(dqm, &pdd->qpd);
42460
42461 return retval;
42462 }
42463 @@ -349,7 +349,7 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid,
42464 pqn->q->properties.queue_percent = p->queue_percent;
42465 pqn->q->properties.priority = p->priority;
42466
42467 - retval = pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm,
42468 + retval = pqn->q->device->dqm->ops->update_queue(pqn->q->device->dqm,
42469 pqn->q);
42470 if (retval != 0)
42471 return retval;
42472 diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c
42473 index 9b23525..65f4110 100644
42474 --- a/drivers/gpu/drm/drm_context.c
42475 +++ b/drivers/gpu/drm/drm_context.c
42476 @@ -53,6 +53,9 @@ struct drm_ctx_list {
42477 */
42478 void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle)
42479 {
42480 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42481 + return;
42482 +
42483 mutex_lock(&dev->struct_mutex);
42484 idr_remove(&dev->ctx_idr, ctx_handle);
42485 mutex_unlock(&dev->struct_mutex);
42486 @@ -87,6 +90,9 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev)
42487 */
42488 int drm_legacy_ctxbitmap_init(struct drm_device * dev)
42489 {
42490 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42491 + return -EINVAL;
42492 +
42493 idr_init(&dev->ctx_idr);
42494 return 0;
42495 }
42496 @@ -101,6 +107,9 @@ int drm_legacy_ctxbitmap_init(struct drm_device * dev)
42497 */
42498 void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev)
42499 {
42500 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42501 + return;
42502 +
42503 mutex_lock(&dev->struct_mutex);
42504 idr_destroy(&dev->ctx_idr);
42505 mutex_unlock(&dev->struct_mutex);
42506 @@ -119,11 +128,14 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file)
42507 {
42508 struct drm_ctx_list *pos, *tmp;
42509
42510 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42511 + return;
42512 +
42513 mutex_lock(&dev->ctxlist_mutex);
42514
42515 list_for_each_entry_safe(pos, tmp, &dev->ctxlist, head) {
42516 if (pos->tag == file &&
42517 - pos->handle != DRM_KERNEL_CONTEXT) {
42518 + _DRM_LOCKING_CONTEXT(pos->handle) != DRM_KERNEL_CONTEXT) {
42519 if (dev->driver->context_dtor)
42520 dev->driver->context_dtor(dev, pos->handle);
42521
42522 @@ -161,6 +173,9 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data,
42523 struct drm_local_map *map;
42524 struct drm_map_list *_entry;
42525
42526 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42527 + return -EINVAL;
42528 +
42529 mutex_lock(&dev->struct_mutex);
42530
42531 map = idr_find(&dev->ctx_idr, request->ctx_id);
42532 @@ -205,6 +220,9 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data,
42533 struct drm_local_map *map = NULL;
42534 struct drm_map_list *r_list = NULL;
42535
42536 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42537 + return -EINVAL;
42538 +
42539 mutex_lock(&dev->struct_mutex);
42540 list_for_each_entry(r_list, &dev->maplist, head) {
42541 if (r_list->map
42542 @@ -277,7 +295,13 @@ static int drm_context_switch_complete(struct drm_device *dev,
42543 {
42544 dev->last_context = new; /* PRE/POST: This is the _only_ writer. */
42545
42546 - if (!_DRM_LOCK_IS_HELD(file_priv->master->lock.hw_lock->lock)) {
42547 + if (file_priv->master->lock.hw_lock == NULL) {
42548 + DRM_ERROR(
42549 + "Device has been unregistered. Hard exit. Process %d\n",
42550 + task_pid_nr(current));
42551 + send_sig(SIGTERM, current, 0);
42552 + return -EPERM;
42553 + } else if (!_DRM_LOCK_IS_HELD(file_priv->master->lock.hw_lock->lock)) {
42554 DRM_ERROR("Lock isn't held after context switch\n");
42555 }
42556
42557 @@ -305,6 +329,9 @@ int drm_legacy_resctx(struct drm_device *dev, void *data,
42558 struct drm_ctx ctx;
42559 int i;
42560
42561 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42562 + return -EINVAL;
42563 +
42564 if (res->count >= DRM_RESERVED_CONTEXTS) {
42565 memset(&ctx, 0, sizeof(ctx));
42566 for (i = 0; i < DRM_RESERVED_CONTEXTS; i++) {
42567 @@ -335,8 +362,11 @@ int drm_legacy_addctx(struct drm_device *dev, void *data,
42568 struct drm_ctx_list *ctx_entry;
42569 struct drm_ctx *ctx = data;
42570
42571 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42572 + return -EINVAL;
42573 +
42574 ctx->handle = drm_legacy_ctxbitmap_next(dev);
42575 - if (ctx->handle == DRM_KERNEL_CONTEXT) {
42576 + if (_DRM_LOCKING_CONTEXT(ctx->handle) == DRM_KERNEL_CONTEXT) {
42577 /* Skip kernel's context and get a new one. */
42578 ctx->handle = drm_legacy_ctxbitmap_next(dev);
42579 }
42580 @@ -378,6 +408,9 @@ int drm_legacy_getctx(struct drm_device *dev, void *data,
42581 {
42582 struct drm_ctx *ctx = data;
42583
42584 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42585 + return -EINVAL;
42586 +
42587 /* This is 0, because we don't handle any context flags */
42588 ctx->flags = 0;
42589
42590 @@ -400,6 +433,9 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data,
42591 {
42592 struct drm_ctx *ctx = data;
42593
42594 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42595 + return -EINVAL;
42596 +
42597 DRM_DEBUG("%d\n", ctx->handle);
42598 return drm_context_switch(dev, dev->last_context, ctx->handle);
42599 }
42600 @@ -420,6 +456,9 @@ int drm_legacy_newctx(struct drm_device *dev, void *data,
42601 {
42602 struct drm_ctx *ctx = data;
42603
42604 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42605 + return -EINVAL;
42606 +
42607 DRM_DEBUG("%d\n", ctx->handle);
42608 drm_context_switch_complete(dev, file_priv, ctx->handle);
42609
42610 @@ -442,8 +481,11 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data,
42611 {
42612 struct drm_ctx *ctx = data;
42613
42614 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42615 + return -EINVAL;
42616 +
42617 DRM_DEBUG("%d\n", ctx->handle);
42618 - if (ctx->handle != DRM_KERNEL_CONTEXT) {
42619 + if (_DRM_LOCKING_CONTEXT(ctx->handle) != DRM_KERNEL_CONTEXT) {
42620 if (dev->driver->context_dtor)
42621 dev->driver->context_dtor(dev, ctx->handle);
42622 drm_legacy_ctxbitmap_free(dev, ctx->handle);
42623 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
42624 index 4e8d72d4..ca1459a 100644
42625 --- a/drivers/gpu/drm/drm_crtc.c
42626 +++ b/drivers/gpu/drm/drm_crtc.c
42627 @@ -4174,7 +4174,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
42628 goto done;
42629 }
42630
42631 - if (copy_to_user(&enum_ptr[copied].name,
42632 + if (copy_to_user(enum_ptr[copied].name,
42633 &prop_enum->name, DRM_PROP_NAME_LEN)) {
42634 ret = -EFAULT;
42635 goto done;
42636 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
42637 index b7bf4ce..585cf3b 100644
42638 --- a/drivers/gpu/drm/drm_drv.c
42639 +++ b/drivers/gpu/drm/drm_drv.c
42640 @@ -434,7 +434,7 @@ void drm_unplug_dev(struct drm_device *dev)
42641
42642 drm_device_set_unplugged(dev);
42643
42644 - if (dev->open_count == 0) {
42645 + if (local_read(&dev->open_count) == 0) {
42646 drm_put_dev(dev);
42647 }
42648 mutex_unlock(&drm_global_mutex);
42649 @@ -582,10 +582,13 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,
42650 if (drm_ht_create(&dev->map_hash, 12))
42651 goto err_minors;
42652
42653 - ret = drm_legacy_ctxbitmap_init(dev);
42654 - if (ret) {
42655 - DRM_ERROR("Cannot allocate memory for context bitmap.\n");
42656 - goto err_ht;
42657 + if (drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT)) {
42658 + ret = drm_legacy_ctxbitmap_init(dev);
42659 + if (ret) {
42660 + DRM_ERROR(
42661 + "Cannot allocate memory for context bitmap.\n");
42662 + goto err_ht;
42663 + }
42664 }
42665
42666 if (drm_core_check_feature(dev, DRIVER_GEM)) {
42667 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
42668 index c59ce4d..056d413 100644
42669 --- a/drivers/gpu/drm/drm_fops.c
42670 +++ b/drivers/gpu/drm/drm_fops.c
42671 @@ -89,7 +89,7 @@ int drm_open(struct inode *inode, struct file *filp)
42672 return PTR_ERR(minor);
42673
42674 dev = minor->dev;
42675 - if (!dev->open_count++)
42676 + if (local_inc_return(&dev->open_count) == 1)
42677 need_setup = 1;
42678
42679 /* share address_space across all char-devs of a single device */
42680 @@ -106,7 +106,7 @@ int drm_open(struct inode *inode, struct file *filp)
42681 return 0;
42682
42683 err_undo:
42684 - dev->open_count--;
42685 + local_dec(&dev->open_count);
42686 drm_minor_release(minor);
42687 return retcode;
42688 }
42689 @@ -377,7 +377,7 @@ int drm_release(struct inode *inode, struct file *filp)
42690
42691 mutex_lock(&drm_global_mutex);
42692
42693 - DRM_DEBUG("open_count = %d\n", dev->open_count);
42694 + DRM_DEBUG("open_count = %ld\n", local_read(&dev->open_count));
42695
42696 mutex_lock(&dev->struct_mutex);
42697 list_del(&file_priv->lhead);
42698 @@ -392,10 +392,10 @@ int drm_release(struct inode *inode, struct file *filp)
42699 * Begin inline drm_release
42700 */
42701
42702 - DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
42703 + DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %ld\n",
42704 task_pid_nr(current),
42705 (long)old_encode_dev(file_priv->minor->kdev->devt),
42706 - dev->open_count);
42707 + local_read(&dev->open_count));
42708
42709 /* if the master has gone away we can't do anything with the lock */
42710 if (file_priv->minor->master)
42711 @@ -465,7 +465,7 @@ int drm_release(struct inode *inode, struct file *filp)
42712 * End inline drm_release
42713 */
42714
42715 - if (!--dev->open_count) {
42716 + if (local_dec_and_test(&dev->open_count)) {
42717 retcode = drm_lastclose(dev);
42718 if (drm_device_is_unplugged(dev))
42719 drm_put_dev(dev);
42720 diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c
42721 index 3d2e91c..d31c4c9 100644
42722 --- a/drivers/gpu/drm/drm_global.c
42723 +++ b/drivers/gpu/drm/drm_global.c
42724 @@ -36,7 +36,7 @@
42725 struct drm_global_item {
42726 struct mutex mutex;
42727 void *object;
42728 - int refcount;
42729 + atomic_t refcount;
42730 };
42731
42732 static struct drm_global_item glob[DRM_GLOBAL_NUM];
42733 @@ -49,7 +49,7 @@ void drm_global_init(void)
42734 struct drm_global_item *item = &glob[i];
42735 mutex_init(&item->mutex);
42736 item->object = NULL;
42737 - item->refcount = 0;
42738 + atomic_set(&item->refcount, 0);
42739 }
42740 }
42741
42742 @@ -59,7 +59,7 @@ void drm_global_release(void)
42743 for (i = 0; i < DRM_GLOBAL_NUM; ++i) {
42744 struct drm_global_item *item = &glob[i];
42745 BUG_ON(item->object != NULL);
42746 - BUG_ON(item->refcount != 0);
42747 + BUG_ON(atomic_read(&item->refcount) != 0);
42748 }
42749 }
42750
42751 @@ -69,7 +69,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42752 struct drm_global_item *item = &glob[ref->global_type];
42753
42754 mutex_lock(&item->mutex);
42755 - if (item->refcount == 0) {
42756 + if (atomic_read(&item->refcount) == 0) {
42757 item->object = kzalloc(ref->size, GFP_KERNEL);
42758 if (unlikely(item->object == NULL)) {
42759 ret = -ENOMEM;
42760 @@ -82,7 +82,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42761 goto out_err;
42762
42763 }
42764 - ++item->refcount;
42765 + atomic_inc(&item->refcount);
42766 ref->object = item->object;
42767 mutex_unlock(&item->mutex);
42768 return 0;
42769 @@ -98,9 +98,9 @@ void drm_global_item_unref(struct drm_global_reference *ref)
42770 struct drm_global_item *item = &glob[ref->global_type];
42771
42772 mutex_lock(&item->mutex);
42773 - BUG_ON(item->refcount == 0);
42774 + BUG_ON(atomic_read(&item->refcount) == 0);
42775 BUG_ON(ref->object != item->object);
42776 - if (--item->refcount == 0) {
42777 + if (atomic_dec_and_test(&item->refcount)) {
42778 ref->release(ref);
42779 item->object = NULL;
42780 }
42781 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
42782 index cbb4fc0..5c756cb9 100644
42783 --- a/drivers/gpu/drm/drm_info.c
42784 +++ b/drivers/gpu/drm/drm_info.c
42785 @@ -77,10 +77,13 @@ int drm_vm_info(struct seq_file *m, void *data)
42786 struct drm_local_map *map;
42787 struct drm_map_list *r_list;
42788
42789 - /* Hardcoded from _DRM_FRAME_BUFFER,
42790 - _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and
42791 - _DRM_SCATTER_GATHER and _DRM_CONSISTENT */
42792 - const char *types[] = { "FB", "REG", "SHM", "AGP", "SG", "PCI" };
42793 + static const char * const types[] = {
42794 + [_DRM_FRAME_BUFFER] = "FB",
42795 + [_DRM_REGISTERS] = "REG",
42796 + [_DRM_SHM] = "SHM",
42797 + [_DRM_AGP] = "AGP",
42798 + [_DRM_SCATTER_GATHER] = "SG",
42799 + [_DRM_CONSISTENT] = "PCI"};
42800 const char *type;
42801 int i;
42802
42803 @@ -91,7 +94,7 @@ int drm_vm_info(struct seq_file *m, void *data)
42804 map = r_list->map;
42805 if (!map)
42806 continue;
42807 - if (map->type < 0 || map->type > 5)
42808 + if (map->type >= ARRAY_SIZE(types))
42809 type = "??";
42810 else
42811 type = types[map->type];
42812 diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
42813 index 9cfcd0a..7142a7f 100644
42814 --- a/drivers/gpu/drm/drm_ioc32.c
42815 +++ b/drivers/gpu/drm/drm_ioc32.c
42816 @@ -459,7 +459,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
42817 request = compat_alloc_user_space(nbytes);
42818 if (!access_ok(VERIFY_WRITE, request, nbytes))
42819 return -EFAULT;
42820 - list = (struct drm_buf_desc *) (request + 1);
42821 + list = (struct drm_buf_desc __user *) (request + 1);
42822
42823 if (__put_user(count, &request->count)
42824 || __put_user(list, &request->list))
42825 @@ -520,7 +520,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd,
42826 request = compat_alloc_user_space(nbytes);
42827 if (!access_ok(VERIFY_WRITE, request, nbytes))
42828 return -EFAULT;
42829 - list = (struct drm_buf_pub *) (request + 1);
42830 + list = (struct drm_buf_pub __user *) (request + 1);
42831
42832 if (__put_user(count, &request->count)
42833 || __put_user(list, &request->list))
42834 @@ -1075,7 +1075,7 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
42835 return 0;
42836 }
42837
42838 -static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42839 +static drm_ioctl_compat_t drm_compat_ioctls[] = {
42840 [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version,
42841 [DRM_IOCTL_NR(DRM_IOCTL_GET_UNIQUE32)] = compat_drm_getunique,
42842 [DRM_IOCTL_NR(DRM_IOCTL_GET_MAP32)] = compat_drm_getmap,
42843 @@ -1122,7 +1122,6 @@ static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42844 long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42845 {
42846 unsigned int nr = DRM_IOCTL_NR(cmd);
42847 - drm_ioctl_compat_t *fn;
42848 int ret;
42849
42850 /* Assume that ioctls without an explicit compat routine will just
42851 @@ -1132,10 +1131,8 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42852 if (nr >= ARRAY_SIZE(drm_compat_ioctls))
42853 return drm_ioctl(filp, cmd, arg);
42854
42855 - fn = drm_compat_ioctls[nr];
42856 -
42857 - if (fn != NULL)
42858 - ret = (*fn) (filp, cmd, arg);
42859 + if (drm_compat_ioctls[nr] != NULL)
42860 + ret = (*drm_compat_ioctls[nr]) (filp, cmd, arg);
42861 else
42862 ret = drm_ioctl(filp, cmd, arg);
42863
42864 diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
42865 index b1d303f..c59012c 100644
42866 --- a/drivers/gpu/drm/drm_ioctl.c
42867 +++ b/drivers/gpu/drm/drm_ioctl.c
42868 @@ -650,7 +650,7 @@ long drm_ioctl(struct file *filp,
42869 struct drm_file *file_priv = filp->private_data;
42870 struct drm_device *dev;
42871 const struct drm_ioctl_desc *ioctl = NULL;
42872 - drm_ioctl_t *func;
42873 + drm_ioctl_no_const_t func;
42874 unsigned int nr = DRM_IOCTL_NR(cmd);
42875 int retcode = -EINVAL;
42876 char stack_kdata[128];
42877 diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
42878 index 4924d381..fd3b5ee 100644
42879 --- a/drivers/gpu/drm/drm_lock.c
42880 +++ b/drivers/gpu/drm/drm_lock.c
42881 @@ -61,12 +61,15 @@ int drm_legacy_lock(struct drm_device *dev, void *data,
42882 struct drm_master *master = file_priv->master;
42883 int ret = 0;
42884
42885 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42886 + return -EINVAL;
42887 +
42888 if (drm_core_check_feature(dev, DRIVER_MODESET))
42889 return -EINVAL;
42890
42891 ++file_priv->lock_count;
42892
42893 - if (lock->context == DRM_KERNEL_CONTEXT) {
42894 + if (_DRM_LOCKING_CONTEXT(lock->context) == DRM_KERNEL_CONTEXT) {
42895 DRM_ERROR("Process %d using kernel context %d\n",
42896 task_pid_nr(current), lock->context);
42897 return -EINVAL;
42898 @@ -156,6 +159,9 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_
42899 struct drm_lock *lock = data;
42900 struct drm_master *master = file_priv->master;
42901
42902 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42903 + return -EINVAL;
42904 +
42905 if (drm_core_check_feature(dev, DRIVER_MODESET))
42906 return -EINVAL;
42907
42908 @@ -165,6 +171,14 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_
42909 return -EINVAL;
42910 }
42911
42912 + if (!master->lock.hw_lock) {
42913 + DRM_ERROR(
42914 + "Device has been unregistered. Hard exit. Process %d\n",
42915 + task_pid_nr(current));
42916 + send_sig(SIGTERM, current, 0);
42917 + return -EPERM;
42918 + }
42919 +
42920 if (drm_legacy_lock_free(&master->lock, lock->context)) {
42921 /* FIXME: Should really bail out here. */
42922 }
42923 diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42924 index d4813e0..6c1ab4d 100644
42925 --- a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42926 +++ b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42927 @@ -825,10 +825,16 @@ void mdfld_dsi_dpi_mode_set(struct drm_encoder *encoder,
42928 u32 pipeconf_reg = PIPEACONF;
42929 u32 dspcntr_reg = DSPACNTR;
42930
42931 - u32 pipeconf = dev_priv->pipeconf[pipe];
42932 - u32 dspcntr = dev_priv->dspcntr[pipe];
42933 + u32 pipeconf;
42934 + u32 dspcntr;
42935 u32 mipi = MIPI_PORT_EN | PASS_FROM_SPHY_TO_AFE | SEL_FLOPPED_HSTX;
42936
42937 + if (pipe == -1)
42938 + return;
42939 +
42940 + pipeconf = dev_priv->pipeconf[pipe];
42941 + dspcntr = dev_priv->dspcntr[pipe];
42942 +
42943 if (pipe) {
42944 pipeconf_reg = PIPECCONF;
42945 dspcntr_reg = DSPCCNTR;
42946 diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
42947 index 93ec5dc..82acbaf 100644
42948 --- a/drivers/gpu/drm/i810/i810_drv.h
42949 +++ b/drivers/gpu/drm/i810/i810_drv.h
42950 @@ -110,8 +110,8 @@ typedef struct drm_i810_private {
42951 int page_flipping;
42952
42953 wait_queue_head_t irq_queue;
42954 - atomic_t irq_received;
42955 - atomic_t irq_emitted;
42956 + atomic_unchecked_t irq_received;
42957 + atomic_unchecked_t irq_emitted;
42958
42959 int front_offset;
42960 } drm_i810_private_t;
42961 diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
42962 index 82bbe3f..ce004bf 100644
42963 --- a/drivers/gpu/drm/i915/i915_debugfs.c
42964 +++ b/drivers/gpu/drm/i915/i915_debugfs.c
42965 @@ -480,7 +480,7 @@ static int i915_gem_object_info(struct seq_file *m, void* data)
42966 seq_printf(m, "%u fault mappable objects, %zu bytes\n",
42967 count, size);
42968
42969 - seq_printf(m, "%zu [%lu] gtt total\n",
42970 + seq_printf(m, "%llu [%llu] gtt total\n",
42971 dev_priv->gtt.base.total,
42972 dev_priv->gtt.mappable_end - dev_priv->gtt.base.start);
42973
42974 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
42975 index d2df321..f746478 100644
42976 --- a/drivers/gpu/drm/i915/i915_dma.c
42977 +++ b/drivers/gpu/drm/i915/i915_dma.c
42978 @@ -162,6 +162,8 @@ static int i915_getparam(struct drm_device *dev, void *data,
42979 value = INTEL_INFO(dev)->eu_total;
42980 if (!value)
42981 return -ENODEV;
42982 + case I915_PARAM_HAS_LEGACY_CONTEXT:
42983 + value = drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT);
42984 break;
42985 default:
42986 DRM_DEBUG("Unknown parameter %d\n", param->param);
42987 @@ -376,7 +378,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
42988 * locking inversion with the driver load path. And the access here is
42989 * completely racy anyway. So don't bother with locking for now.
42990 */
42991 - return dev->open_count == 0;
42992 + return local_read(&dev->open_count) == 0;
42993 }
42994
42995 static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
42996 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42997 index 5e6b4a2..6ba2c85 100644
42998 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42999 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
43000 @@ -935,12 +935,12 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
43001 static int
43002 validate_exec_list(struct drm_device *dev,
43003 struct drm_i915_gem_exec_object2 *exec,
43004 - int count)
43005 + unsigned int count)
43006 {
43007 unsigned relocs_total = 0;
43008 unsigned relocs_max = UINT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
43009 unsigned invalid_flags;
43010 - int i;
43011 + unsigned int i;
43012
43013 invalid_flags = __EXEC_OBJECT_UNKNOWN_FLAGS;
43014 if (USES_FULL_PPGTT(dev))
43015 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
43016 index 31e8269..7055934 100644
43017 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
43018 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
43019 @@ -2360,10 +2360,10 @@ static void chv_setup_private_ppat(struct drm_i915_private *dev_priv)
43020 }
43021
43022 static int gen8_gmch_probe(struct drm_device *dev,
43023 - size_t *gtt_total,
43024 - size_t *stolen,
43025 - phys_addr_t *mappable_base,
43026 - unsigned long *mappable_end)
43027 + uint64_t *gtt_total,
43028 + uint64_t *stolen,
43029 + uint64_t *mappable_base,
43030 + uint64_t *mappable_end)
43031 {
43032 struct drm_i915_private *dev_priv = dev->dev_private;
43033 unsigned int gtt_size;
43034 @@ -2408,10 +2408,10 @@ static int gen8_gmch_probe(struct drm_device *dev,
43035 }
43036
43037 static int gen6_gmch_probe(struct drm_device *dev,
43038 - size_t *gtt_total,
43039 - size_t *stolen,
43040 - phys_addr_t *mappable_base,
43041 - unsigned long *mappable_end)
43042 + uint64_t *gtt_total,
43043 + uint64_t *stolen,
43044 + uint64_t *mappable_base,
43045 + uint64_t *mappable_end)
43046 {
43047 struct drm_i915_private *dev_priv = dev->dev_private;
43048 unsigned int gtt_size;
43049 @@ -2425,7 +2425,7 @@ static int gen6_gmch_probe(struct drm_device *dev,
43050 * a coarse sanity check.
43051 */
43052 if ((*mappable_end < (64<<20) || (*mappable_end > (512<<20)))) {
43053 - DRM_ERROR("Unknown GMADR size (%lx)\n",
43054 + DRM_ERROR("Unknown GMADR size (%llx)\n",
43055 dev_priv->gtt.mappable_end);
43056 return -ENXIO;
43057 }
43058 @@ -2459,10 +2459,10 @@ static void gen6_gmch_remove(struct i915_address_space *vm)
43059 }
43060
43061 static int i915_gmch_probe(struct drm_device *dev,
43062 - size_t *gtt_total,
43063 - size_t *stolen,
43064 - phys_addr_t *mappable_base,
43065 - unsigned long *mappable_end)
43066 + uint64_t *gtt_total,
43067 + uint64_t *stolen,
43068 + uint64_t *mappable_base,
43069 + uint64_t *mappable_end)
43070 {
43071 struct drm_i915_private *dev_priv = dev->dev_private;
43072 int ret;
43073 @@ -2527,10 +2527,10 @@ int i915_gem_gtt_init(struct drm_device *dev)
43074 gtt->base.dev = dev;
43075
43076 /* GMADR is the PCI mmio aperture into the global GTT. */
43077 - DRM_INFO("Memory usable by graphics device = %zdM\n",
43078 + DRM_INFO("Memory usable by graphics device = %lldM\n",
43079 gtt->base.total >> 20);
43080 - DRM_DEBUG_DRIVER("GMADR size = %ldM\n", gtt->mappable_end >> 20);
43081 - DRM_DEBUG_DRIVER("GTT stolen size = %zdM\n", gtt->stolen_size >> 20);
43082 + DRM_DEBUG_DRIVER("GMADR size = %lldM\n", gtt->mappable_end >> 20);
43083 + DRM_DEBUG_DRIVER("GTT stolen size = %lldM\n", gtt->stolen_size >> 20);
43084 #ifdef CONFIG_INTEL_IOMMU
43085 if (intel_iommu_gfx_mapped)
43086 DRM_INFO("VT-d active for gfx access\n");
43087 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
43088 index 0d46dd2..1171c00 100644
43089 --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
43090 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
43091 @@ -233,8 +233,8 @@ struct i915_address_space {
43092 struct drm_mm mm;
43093 struct drm_device *dev;
43094 struct list_head global_link;
43095 - unsigned long start; /* Start offset always 0 for dri2 */
43096 - size_t total; /* size addr space maps (ex. 2GB for ggtt) */
43097 + uint64_t start; /* Start offset always 0 for dri2 */
43098 + uint64_t total; /* size addr space maps (ex. 2GB for ggtt) */
43099
43100 struct {
43101 dma_addr_t addr;
43102 @@ -300,11 +300,11 @@ struct i915_address_space {
43103 */
43104 struct i915_gtt {
43105 struct i915_address_space base;
43106 - size_t stolen_size; /* Total size of stolen memory */
43107 + uint64_t stolen_size; /* Total size of stolen memory */
43108
43109 - unsigned long mappable_end; /* End offset that we can CPU map */
43110 + uint64_t mappable_end; /* End offset that we can CPU map */
43111 struct io_mapping *mappable; /* Mapping to our CPU mappable region */
43112 - phys_addr_t mappable_base; /* PA of our GMADR */
43113 + uint64_t mappable_base; /* PA of our GMADR */
43114
43115 /** "Graphics Stolen Memory" holds the global PTEs */
43116 void __iomem *gsm;
43117 @@ -314,9 +314,9 @@ struct i915_gtt {
43118 int mtrr;
43119
43120 /* global gtt ops */
43121 - int (*gtt_probe)(struct drm_device *dev, size_t *gtt_total,
43122 - size_t *stolen, phys_addr_t *mappable_base,
43123 - unsigned long *mappable_end);
43124 + int (*gtt_probe)(struct drm_device *dev, uint64_t *gtt_total,
43125 + uint64_t *stolen, uint64_t *mappable_base,
43126 + uint64_t *mappable_end);
43127 };
43128
43129 struct i915_hw_ppgtt {
43130 diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
43131 index 8b5b784..78711f6 100644
43132 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
43133 +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
43134 @@ -310,7 +310,7 @@ int i915_gem_init_stolen(struct drm_device *dev)
43135 if (dev_priv->mm.stolen_base == 0)
43136 return 0;
43137
43138 - DRM_DEBUG_KMS("found %zd bytes of stolen memory at %08lx\n",
43139 + DRM_DEBUG_KMS("found %lld bytes of stolen memory at %08lx\n",
43140 dev_priv->gtt.stolen_size, dev_priv->mm.stolen_base);
43141
43142 if (INTEL_INFO(dev)->gen >= 8) {
43143 diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
43144 index 23aa04c..1d25960 100644
43145 --- a/drivers/gpu/drm/i915/i915_ioc32.c
43146 +++ b/drivers/gpu/drm/i915/i915_ioc32.c
43147 @@ -62,7 +62,7 @@ static int compat_i915_batchbuffer(struct file *file, unsigned int cmd,
43148 || __put_user(batchbuffer32.DR4, &batchbuffer->DR4)
43149 || __put_user(batchbuffer32.num_cliprects,
43150 &batchbuffer->num_cliprects)
43151 - || __put_user((int __user *)(unsigned long)batchbuffer32.cliprects,
43152 + || __put_user((struct drm_clip_rect __user *)(unsigned long)batchbuffer32.cliprects,
43153 &batchbuffer->cliprects))
43154 return -EFAULT;
43155
43156 @@ -91,13 +91,13 @@ static int compat_i915_cmdbuffer(struct file *file, unsigned int cmd,
43157
43158 cmdbuffer = compat_alloc_user_space(sizeof(*cmdbuffer));
43159 if (!access_ok(VERIFY_WRITE, cmdbuffer, sizeof(*cmdbuffer))
43160 - || __put_user((int __user *)(unsigned long)cmdbuffer32.buf,
43161 + || __put_user((char __user *)(unsigned long)cmdbuffer32.buf,
43162 &cmdbuffer->buf)
43163 || __put_user(cmdbuffer32.sz, &cmdbuffer->sz)
43164 || __put_user(cmdbuffer32.DR1, &cmdbuffer->DR1)
43165 || __put_user(cmdbuffer32.DR4, &cmdbuffer->DR4)
43166 || __put_user(cmdbuffer32.num_cliprects, &cmdbuffer->num_cliprects)
43167 - || __put_user((int __user *)(unsigned long)cmdbuffer32.cliprects,
43168 + || __put_user((struct drm_clip_rect __user *)(unsigned long)cmdbuffer32.cliprects,
43169 &cmdbuffer->cliprects))
43170 return -EFAULT;
43171
43172 @@ -181,7 +181,7 @@ static int compat_i915_alloc(struct file *file, unsigned int cmd,
43173 (unsigned long)request);
43174 }
43175
43176 -static drm_ioctl_compat_t *i915_compat_ioctls[] = {
43177 +static drm_ioctl_compat_t i915_compat_ioctls[] = {
43178 [DRM_I915_BATCHBUFFER] = compat_i915_batchbuffer,
43179 [DRM_I915_CMDBUFFER] = compat_i915_cmdbuffer,
43180 [DRM_I915_GETPARAM] = compat_i915_getparam,
43181 @@ -201,17 +201,13 @@ static drm_ioctl_compat_t *i915_compat_ioctls[] = {
43182 long i915_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43183 {
43184 unsigned int nr = DRM_IOCTL_NR(cmd);
43185 - drm_ioctl_compat_t *fn = NULL;
43186 int ret;
43187
43188 if (nr < DRM_COMMAND_BASE || nr >= DRM_COMMAND_END)
43189 return drm_compat_ioctl(filp, cmd, arg);
43190
43191 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls))
43192 - fn = i915_compat_ioctls[nr - DRM_COMMAND_BASE];
43193 -
43194 - if (fn != NULL)
43195 - ret = (*fn) (filp, cmd, arg);
43196 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls) && i915_compat_ioctls[nr - DRM_COMMAND_BASE])
43197 + ret = (*i915_compat_ioctls[nr - DRM_COMMAND_BASE])(filp, cmd, arg);
43198 else
43199 ret = drm_ioctl(filp, cmd, arg);
43200
43201 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
43202 index 10b1b65..4891a7e 100644
43203 --- a/drivers/gpu/drm/i915/intel_display.c
43204 +++ b/drivers/gpu/drm/i915/intel_display.c
43205 @@ -14508,13 +14508,13 @@ struct intel_quirk {
43206 int subsystem_vendor;
43207 int subsystem_device;
43208 void (*hook)(struct drm_device *dev);
43209 -};
43210 +} __do_const;
43211
43212 /* For systems that don't have a meaningful PCI subdevice/subvendor ID */
43213 struct intel_dmi_quirk {
43214 void (*hook)(struct drm_device *dev);
43215 const struct dmi_system_id (*dmi_id_list)[];
43216 -};
43217 +} __do_const;
43218
43219 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
43220 {
43221 @@ -14522,18 +14522,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
43222 return 1;
43223 }
43224
43225 -static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43226 +static const struct dmi_system_id intel_dmi_quirks_table[] = {
43227 {
43228 - .dmi_id_list = &(const struct dmi_system_id[]) {
43229 - {
43230 - .callback = intel_dmi_reverse_brightness,
43231 - .ident = "NCR Corporation",
43232 - .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43233 - DMI_MATCH(DMI_PRODUCT_NAME, ""),
43234 - },
43235 - },
43236 - { } /* terminating entry */
43237 + .callback = intel_dmi_reverse_brightness,
43238 + .ident = "NCR Corporation",
43239 + .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43240 + DMI_MATCH(DMI_PRODUCT_NAME, ""),
43241 },
43242 + },
43243 + { } /* terminating entry */
43244 +};
43245 +
43246 +static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43247 + {
43248 + .dmi_id_list = &intel_dmi_quirks_table,
43249 .hook = quirk_invert_brightness,
43250 },
43251 };
43252 diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
43253 index 74f505b..21f6914 100644
43254 --- a/drivers/gpu/drm/imx/imx-drm-core.c
43255 +++ b/drivers/gpu/drm/imx/imx-drm-core.c
43256 @@ -355,7 +355,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
43257 if (imxdrm->pipes >= MAX_CRTC)
43258 return -EINVAL;
43259
43260 - if (imxdrm->drm->open_count)
43261 + if (local_read(&imxdrm->drm->open_count))
43262 return -EBUSY;
43263
43264 imx_drm_crtc = kzalloc(sizeof(*imx_drm_crtc), GFP_KERNEL);
43265 diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
43266 index b4a20149..219ab78 100644
43267 --- a/drivers/gpu/drm/mga/mga_drv.h
43268 +++ b/drivers/gpu/drm/mga/mga_drv.h
43269 @@ -122,9 +122,9 @@ typedef struct drm_mga_private {
43270 u32 clear_cmd;
43271 u32 maccess;
43272
43273 - atomic_t vbl_received; /**< Number of vblanks received. */
43274 + atomic_unchecked_t vbl_received; /**< Number of vblanks received. */
43275 wait_queue_head_t fence_queue;
43276 - atomic_t last_fence_retired;
43277 + atomic_unchecked_t last_fence_retired;
43278 u32 next_fence_to_post;
43279
43280 unsigned int fb_cpp;
43281 diff --git a/drivers/gpu/drm/mga/mga_ioc32.c b/drivers/gpu/drm/mga/mga_ioc32.c
43282 index 729bfd5..14bae78 100644
43283 --- a/drivers/gpu/drm/mga/mga_ioc32.c
43284 +++ b/drivers/gpu/drm/mga/mga_ioc32.c
43285 @@ -190,7 +190,7 @@ static int compat_mga_dma_bootstrap(struct file *file, unsigned int cmd,
43286 return 0;
43287 }
43288
43289 -drm_ioctl_compat_t *mga_compat_ioctls[] = {
43290 +drm_ioctl_compat_t mga_compat_ioctls[] = {
43291 [DRM_MGA_INIT] = compat_mga_init,
43292 [DRM_MGA_GETPARAM] = compat_mga_getparam,
43293 [DRM_MGA_DMA_BOOTSTRAP] = compat_mga_dma_bootstrap,
43294 @@ -208,17 +208,13 @@ drm_ioctl_compat_t *mga_compat_ioctls[] = {
43295 long mga_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43296 {
43297 unsigned int nr = DRM_IOCTL_NR(cmd);
43298 - drm_ioctl_compat_t *fn = NULL;
43299 int ret;
43300
43301 if (nr < DRM_COMMAND_BASE)
43302 return drm_compat_ioctl(filp, cmd, arg);
43303
43304 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls))
43305 - fn = mga_compat_ioctls[nr - DRM_COMMAND_BASE];
43306 -
43307 - if (fn != NULL)
43308 - ret = (*fn) (filp, cmd, arg);
43309 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls) && mga_compat_ioctls[nr - DRM_COMMAND_BASE])
43310 + ret = (*mga_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43311 else
43312 ret = drm_ioctl(filp, cmd, arg);
43313
43314 diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
43315 index 1b071b8..de8601a 100644
43316 --- a/drivers/gpu/drm/mga/mga_irq.c
43317 +++ b/drivers/gpu/drm/mga/mga_irq.c
43318 @@ -43,7 +43,7 @@ u32 mga_get_vblank_counter(struct drm_device *dev, int crtc)
43319 if (crtc != 0)
43320 return 0;
43321
43322 - return atomic_read(&dev_priv->vbl_received);
43323 + return atomic_read_unchecked(&dev_priv->vbl_received);
43324 }
43325
43326
43327 @@ -59,7 +59,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43328 /* VBLANK interrupt */
43329 if (status & MGA_VLINEPEN) {
43330 MGA_WRITE(MGA_ICLEAR, MGA_VLINEICLR);
43331 - atomic_inc(&dev_priv->vbl_received);
43332 + atomic_inc_unchecked(&dev_priv->vbl_received);
43333 drm_handle_vblank(dev, 0);
43334 handled = 1;
43335 }
43336 @@ -78,7 +78,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43337 if ((prim_start & ~0x03) != (prim_end & ~0x03))
43338 MGA_WRITE(MGA_PRIMEND, prim_end);
43339
43340 - atomic_inc(&dev_priv->last_fence_retired);
43341 + atomic_inc_unchecked(&dev_priv->last_fence_retired);
43342 wake_up(&dev_priv->fence_queue);
43343 handled = 1;
43344 }
43345 @@ -129,7 +129,7 @@ int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence)
43346 * using fences.
43347 */
43348 DRM_WAIT_ON(ret, dev_priv->fence_queue, 3 * HZ,
43349 - (((cur_fence = atomic_read(&dev_priv->last_fence_retired))
43350 + (((cur_fence = atomic_read_unchecked(&dev_priv->last_fence_retired))
43351 - *sequence) <= (1 << 23)));
43352
43353 *sequence = cur_fence;
43354 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
43355 index 0190b69..60c3eaf 100644
43356 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
43357 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
43358 @@ -963,7 +963,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios,
43359 struct bit_table {
43360 const char id;
43361 int (* const parse_fn)(struct drm_device *, struct nvbios *, struct bit_entry *);
43362 -};
43363 +} __no_const;
43364
43365 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
43366
43367 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
43368 index 477cbb1..109b826 100644
43369 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
43370 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
43371 @@ -946,7 +946,8 @@ static struct drm_driver
43372 driver_stub = {
43373 .driver_features =
43374 DRIVER_USE_AGP |
43375 - DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER,
43376 + DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER |
43377 + DRIVER_KMS_LEGACY_CONTEXT,
43378
43379 .load = nouveau_drm_load,
43380 .unload = nouveau_drm_unload,
43381 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
43382 index dd72652..1fd2368 100644
43383 --- a/drivers/gpu/drm/nouveau/nouveau_drm.h
43384 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
43385 @@ -123,7 +123,6 @@ struct nouveau_drm {
43386 struct drm_global_reference mem_global_ref;
43387 struct ttm_bo_global_ref bo_global_ref;
43388 struct ttm_bo_device bdev;
43389 - atomic_t validate_sequence;
43390 int (*move)(struct nouveau_channel *,
43391 struct ttm_buffer_object *,
43392 struct ttm_mem_reg *, struct ttm_mem_reg *);
43393 diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43394 index 462679a..88e32a7 100644
43395 --- a/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43396 +++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43397 @@ -50,7 +50,7 @@ long nouveau_compat_ioctl(struct file *filp, unsigned int cmd,
43398 unsigned long arg)
43399 {
43400 unsigned int nr = DRM_IOCTL_NR(cmd);
43401 - drm_ioctl_compat_t *fn = NULL;
43402 + drm_ioctl_compat_t fn = NULL;
43403 int ret;
43404
43405 if (nr < DRM_COMMAND_BASE)
43406 diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43407 index 7464aef3..c63ae4f 100644
43408 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
43409 +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43410 @@ -130,11 +130,11 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43411 }
43412
43413 const struct ttm_mem_type_manager_func nouveau_vram_manager = {
43414 - nouveau_vram_manager_init,
43415 - nouveau_vram_manager_fini,
43416 - nouveau_vram_manager_new,
43417 - nouveau_vram_manager_del,
43418 - nouveau_vram_manager_debug
43419 + .init = nouveau_vram_manager_init,
43420 + .takedown = nouveau_vram_manager_fini,
43421 + .get_node = nouveau_vram_manager_new,
43422 + .put_node = nouveau_vram_manager_del,
43423 + .debug = nouveau_vram_manager_debug
43424 };
43425
43426 static int
43427 @@ -207,11 +207,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43428 }
43429
43430 const struct ttm_mem_type_manager_func nouveau_gart_manager = {
43431 - nouveau_gart_manager_init,
43432 - nouveau_gart_manager_fini,
43433 - nouveau_gart_manager_new,
43434 - nouveau_gart_manager_del,
43435 - nouveau_gart_manager_debug
43436 + .init = nouveau_gart_manager_init,
43437 + .takedown = nouveau_gart_manager_fini,
43438 + .get_node = nouveau_gart_manager_new,
43439 + .put_node = nouveau_gart_manager_del,
43440 + .debug = nouveau_gart_manager_debug
43441 };
43442
43443 /*XXX*/
43444 @@ -280,11 +280,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43445 }
43446
43447 const struct ttm_mem_type_manager_func nv04_gart_manager = {
43448 - nv04_gart_manager_init,
43449 - nv04_gart_manager_fini,
43450 - nv04_gart_manager_new,
43451 - nv04_gart_manager_del,
43452 - nv04_gart_manager_debug
43453 + .init = nv04_gart_manager_init,
43454 + .takedown = nv04_gart_manager_fini,
43455 + .get_node = nv04_gart_manager_new,
43456 + .put_node = nv04_gart_manager_del,
43457 + .debug = nv04_gart_manager_debug
43458 };
43459
43460 int
43461 diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
43462 index c7592ec..dd45ebc 100644
43463 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c
43464 +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c
43465 @@ -72,7 +72,7 @@ nouveau_switcheroo_can_switch(struct pci_dev *pdev)
43466 * locking inversion with the driver load path. And the access here is
43467 * completely racy anyway. So don't bother with locking for now.
43468 */
43469 - return dev->open_count == 0;
43470 + return local_read(&dev->open_count) == 0;
43471 }
43472
43473 static const struct vga_switcheroo_client_ops
43474 diff --git a/drivers/gpu/drm/omapdrm/Makefile b/drivers/gpu/drm/omapdrm/Makefile
43475 index 778372b..4b81cb4 100644
43476 --- a/drivers/gpu/drm/omapdrm/Makefile
43477 +++ b/drivers/gpu/drm/omapdrm/Makefile
43478 @@ -3,7 +3,7 @@
43479 # Direct Rendering Infrastructure (DRI)
43480 #
43481
43482 -ccflags-y := -Iinclude/drm -Werror
43483 +ccflags-y := -Iinclude/drm
43484 omapdrm-y := omap_drv.o \
43485 omap_irq.o \
43486 omap_debugfs.o \
43487 diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
43488 index fdc1833..f307630 100644
43489 --- a/drivers/gpu/drm/qxl/qxl_cmd.c
43490 +++ b/drivers/gpu/drm/qxl/qxl_cmd.c
43491 @@ -285,27 +285,27 @@ static int wait_for_io_cmd_user(struct qxl_device *qdev, uint8_t val, long port,
43492 int ret;
43493
43494 mutex_lock(&qdev->async_io_mutex);
43495 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43496 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43497 if (qdev->last_sent_io_cmd > irq_num) {
43498 if (intr)
43499 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43500 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43501 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43502 else
43503 ret = wait_event_timeout(qdev->io_cmd_event,
43504 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43505 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43506 /* 0 is timeout, just bail the "hw" has gone away */
43507 if (ret <= 0)
43508 goto out;
43509 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43510 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43511 }
43512 outb(val, addr);
43513 qdev->last_sent_io_cmd = irq_num + 1;
43514 if (intr)
43515 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43516 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43517 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43518 else
43519 ret = wait_event_timeout(qdev->io_cmd_event,
43520 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43521 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43522 out:
43523 if (ret > 0)
43524 ret = 0;
43525 diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c
43526 index 6911b8c..89d6867 100644
43527 --- a/drivers/gpu/drm/qxl/qxl_debugfs.c
43528 +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
43529 @@ -42,10 +42,10 @@ qxl_debugfs_irq_received(struct seq_file *m, void *data)
43530 struct drm_info_node *node = (struct drm_info_node *) m->private;
43531 struct qxl_device *qdev = node->minor->dev->dev_private;
43532
43533 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received));
43534 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_display));
43535 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_cursor));
43536 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_io_cmd));
43537 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received));
43538 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_display));
43539 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_cursor));
43540 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_io_cmd));
43541 seq_printf(m, "%d\n", qdev->irq_received_error);
43542 return 0;
43543 }
43544 diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
43545 index 01a8694..584fb48 100644
43546 --- a/drivers/gpu/drm/qxl/qxl_drv.h
43547 +++ b/drivers/gpu/drm/qxl/qxl_drv.h
43548 @@ -290,10 +290,10 @@ struct qxl_device {
43549 unsigned int last_sent_io_cmd;
43550
43551 /* interrupt handling */
43552 - atomic_t irq_received;
43553 - atomic_t irq_received_display;
43554 - atomic_t irq_received_cursor;
43555 - atomic_t irq_received_io_cmd;
43556 + atomic_unchecked_t irq_received;
43557 + atomic_unchecked_t irq_received_display;
43558 + atomic_unchecked_t irq_received_cursor;
43559 + atomic_unchecked_t irq_received_io_cmd;
43560 unsigned irq_received_error;
43561 wait_queue_head_t display_event;
43562 wait_queue_head_t cursor_event;
43563 diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
43564 index bda5c5f..140ac46 100644
43565 --- a/drivers/gpu/drm/qxl/qxl_ioctl.c
43566 +++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
43567 @@ -183,7 +183,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43568
43569 /* TODO copy slow path code from i915 */
43570 fb_cmd = qxl_bo_kmap_atomic_page(qdev, cmd_bo, (release->release_offset & PAGE_SIZE));
43571 - 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);
43572 + 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);
43573
43574 {
43575 struct qxl_drawable *draw = fb_cmd;
43576 @@ -203,7 +203,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43577 struct drm_qxl_reloc reloc;
43578
43579 if (copy_from_user(&reloc,
43580 - &((struct drm_qxl_reloc *)(uintptr_t)cmd->relocs)[i],
43581 + &((struct drm_qxl_reloc __force_user *)(uintptr_t)cmd->relocs)[i],
43582 sizeof(reloc))) {
43583 ret = -EFAULT;
43584 goto out_free_bos;
43585 @@ -282,10 +282,10 @@ static int qxl_execbuffer_ioctl(struct drm_device *dev, void *data,
43586
43587 for (cmd_num = 0; cmd_num < execbuffer->commands_num; ++cmd_num) {
43588
43589 - struct drm_qxl_command *commands =
43590 - (struct drm_qxl_command *)(uintptr_t)execbuffer->commands;
43591 + struct drm_qxl_command __user *commands =
43592 + (struct drm_qxl_command __user *)(uintptr_t)execbuffer->commands;
43593
43594 - if (copy_from_user(&user_cmd, &commands[cmd_num],
43595 + if (copy_from_user(&user_cmd, (struct drm_qxl_command __force_user *)&commands[cmd_num],
43596 sizeof(user_cmd)))
43597 return -EFAULT;
43598
43599 diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
43600 index 0bf1e20..42a7310 100644
43601 --- a/drivers/gpu/drm/qxl/qxl_irq.c
43602 +++ b/drivers/gpu/drm/qxl/qxl_irq.c
43603 @@ -36,19 +36,19 @@ irqreturn_t qxl_irq_handler(int irq, void *arg)
43604 if (!pending)
43605 return IRQ_NONE;
43606
43607 - atomic_inc(&qdev->irq_received);
43608 + atomic_inc_unchecked(&qdev->irq_received);
43609
43610 if (pending & QXL_INTERRUPT_DISPLAY) {
43611 - atomic_inc(&qdev->irq_received_display);
43612 + atomic_inc_unchecked(&qdev->irq_received_display);
43613 wake_up_all(&qdev->display_event);
43614 qxl_queue_garbage_collect(qdev, false);
43615 }
43616 if (pending & QXL_INTERRUPT_CURSOR) {
43617 - atomic_inc(&qdev->irq_received_cursor);
43618 + atomic_inc_unchecked(&qdev->irq_received_cursor);
43619 wake_up_all(&qdev->cursor_event);
43620 }
43621 if (pending & QXL_INTERRUPT_IO_CMD) {
43622 - atomic_inc(&qdev->irq_received_io_cmd);
43623 + atomic_inc_unchecked(&qdev->irq_received_io_cmd);
43624 wake_up_all(&qdev->io_cmd_event);
43625 }
43626 if (pending & QXL_INTERRUPT_ERROR) {
43627 @@ -85,10 +85,10 @@ int qxl_irq_init(struct qxl_device *qdev)
43628 init_waitqueue_head(&qdev->io_cmd_event);
43629 INIT_WORK(&qdev->client_monitors_config_work,
43630 qxl_client_monitors_config_work_func);
43631 - atomic_set(&qdev->irq_received, 0);
43632 - atomic_set(&qdev->irq_received_display, 0);
43633 - atomic_set(&qdev->irq_received_cursor, 0);
43634 - atomic_set(&qdev->irq_received_io_cmd, 0);
43635 + atomic_set_unchecked(&qdev->irq_received, 0);
43636 + atomic_set_unchecked(&qdev->irq_received_display, 0);
43637 + atomic_set_unchecked(&qdev->irq_received_cursor, 0);
43638 + atomic_set_unchecked(&qdev->irq_received_io_cmd, 0);
43639 qdev->irq_received_error = 0;
43640 ret = drm_irq_install(qdev->ddev, qdev->ddev->pdev->irq);
43641 qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
43642 diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
43643 index 0cbc4c9..0e46686 100644
43644 --- a/drivers/gpu/drm/qxl/qxl_ttm.c
43645 +++ b/drivers/gpu/drm/qxl/qxl_ttm.c
43646 @@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
43647 }
43648 }
43649
43650 -static struct vm_operations_struct qxl_ttm_vm_ops;
43651 +static vm_operations_struct_no_const qxl_ttm_vm_ops __read_only;
43652 static const struct vm_operations_struct *ttm_vm_ops;
43653
43654 static int qxl_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43655 @@ -145,8 +145,10 @@ int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
43656 return r;
43657 if (unlikely(ttm_vm_ops == NULL)) {
43658 ttm_vm_ops = vma->vm_ops;
43659 + pax_open_kernel();
43660 qxl_ttm_vm_ops = *ttm_vm_ops;
43661 qxl_ttm_vm_ops.fault = &qxl_ttm_fault;
43662 + pax_close_kernel();
43663 }
43664 vma->vm_ops = &qxl_ttm_vm_ops;
43665 return 0;
43666 @@ -464,25 +466,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
43667 static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
43668 {
43669 #if defined(CONFIG_DEBUG_FS)
43670 - static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES];
43671 - static char qxl_mem_types_names[QXL_DEBUGFS_MEM_TYPES][32];
43672 - unsigned i;
43673 + static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES] = {
43674 + {
43675 + .name = "qxl_mem_mm",
43676 + .show = &qxl_mm_dump_table,
43677 + },
43678 + {
43679 + .name = "qxl_surf_mm",
43680 + .show = &qxl_mm_dump_table,
43681 + }
43682 + };
43683
43684 - for (i = 0; i < QXL_DEBUGFS_MEM_TYPES; i++) {
43685 - if (i == 0)
43686 - sprintf(qxl_mem_types_names[i], "qxl_mem_mm");
43687 - else
43688 - sprintf(qxl_mem_types_names[i], "qxl_surf_mm");
43689 - qxl_mem_types_list[i].name = qxl_mem_types_names[i];
43690 - qxl_mem_types_list[i].show = &qxl_mm_dump_table;
43691 - qxl_mem_types_list[i].driver_features = 0;
43692 - if (i == 0)
43693 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43694 - else
43695 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43696 + pax_open_kernel();
43697 + *(void **)&qxl_mem_types_list[0].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43698 + *(void **)&qxl_mem_types_list[1].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43699 + pax_close_kernel();
43700
43701 - }
43702 - return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
43703 + return qxl_debugfs_add_files(qdev, qxl_mem_types_list, QXL_DEBUGFS_MEM_TYPES);
43704 #else
43705 return 0;
43706 #endif
43707 diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
43708 index 2c45ac9..5d740f8 100644
43709 --- a/drivers/gpu/drm/r128/r128_cce.c
43710 +++ b/drivers/gpu/drm/r128/r128_cce.c
43711 @@ -377,7 +377,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
43712
43713 /* GH: Simple idle check.
43714 */
43715 - atomic_set(&dev_priv->idle_count, 0);
43716 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43717
43718 /* We don't support anything other than bus-mastering ring mode,
43719 * but the ring can be in either AGP or PCI space for the ring
43720 diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
43721 index 723e5d6..102dbaf 100644
43722 --- a/drivers/gpu/drm/r128/r128_drv.h
43723 +++ b/drivers/gpu/drm/r128/r128_drv.h
43724 @@ -93,14 +93,14 @@ typedef struct drm_r128_private {
43725 int is_pci;
43726 unsigned long cce_buffers_offset;
43727
43728 - atomic_t idle_count;
43729 + atomic_unchecked_t idle_count;
43730
43731 int page_flipping;
43732 int current_page;
43733 u32 crtc_offset;
43734 u32 crtc_offset_cntl;
43735
43736 - atomic_t vbl_received;
43737 + atomic_unchecked_t vbl_received;
43738
43739 u32 color_fmt;
43740 unsigned int front_offset;
43741 diff --git a/drivers/gpu/drm/r128/r128_ioc32.c b/drivers/gpu/drm/r128/r128_ioc32.c
43742 index 663f38c..ec159a1 100644
43743 --- a/drivers/gpu/drm/r128/r128_ioc32.c
43744 +++ b/drivers/gpu/drm/r128/r128_ioc32.c
43745 @@ -178,7 +178,7 @@ static int compat_r128_getparam(struct file *file, unsigned int cmd,
43746 return drm_ioctl(file, DRM_IOCTL_R128_GETPARAM, (unsigned long)getparam);
43747 }
43748
43749 -drm_ioctl_compat_t *r128_compat_ioctls[] = {
43750 +drm_ioctl_compat_t r128_compat_ioctls[] = {
43751 [DRM_R128_INIT] = compat_r128_init,
43752 [DRM_R128_DEPTH] = compat_r128_depth,
43753 [DRM_R128_STIPPLE] = compat_r128_stipple,
43754 @@ -197,17 +197,13 @@ drm_ioctl_compat_t *r128_compat_ioctls[] = {
43755 long r128_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43756 {
43757 unsigned int nr = DRM_IOCTL_NR(cmd);
43758 - drm_ioctl_compat_t *fn = NULL;
43759 int ret;
43760
43761 if (nr < DRM_COMMAND_BASE)
43762 return drm_compat_ioctl(filp, cmd, arg);
43763
43764 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls))
43765 - fn = r128_compat_ioctls[nr - DRM_COMMAND_BASE];
43766 -
43767 - if (fn != NULL)
43768 - ret = (*fn) (filp, cmd, arg);
43769 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls) && r128_compat_ioctls[nr - DRM_COMMAND_BASE])
43770 + ret = (*r128_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43771 else
43772 ret = drm_ioctl(filp, cmd, arg);
43773
43774 diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c
43775 index c2ae496..30b5993 100644
43776 --- a/drivers/gpu/drm/r128/r128_irq.c
43777 +++ b/drivers/gpu/drm/r128/r128_irq.c
43778 @@ -41,7 +41,7 @@ u32 r128_get_vblank_counter(struct drm_device *dev, int crtc)
43779 if (crtc != 0)
43780 return 0;
43781
43782 - return atomic_read(&dev_priv->vbl_received);
43783 + return atomic_read_unchecked(&dev_priv->vbl_received);
43784 }
43785
43786 irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43787 @@ -55,7 +55,7 @@ irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43788 /* VBLANK interrupt */
43789 if (status & R128_CRTC_VBLANK_INT) {
43790 R128_WRITE(R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK);
43791 - atomic_inc(&dev_priv->vbl_received);
43792 + atomic_inc_unchecked(&dev_priv->vbl_received);
43793 drm_handle_vblank(dev, 0);
43794 return IRQ_HANDLED;
43795 }
43796 diff --git a/drivers/gpu/drm/r128/r128_state.c b/drivers/gpu/drm/r128/r128_state.c
43797 index 8fd2d9f..18c9660 100644
43798 --- a/drivers/gpu/drm/r128/r128_state.c
43799 +++ b/drivers/gpu/drm/r128/r128_state.c
43800 @@ -320,10 +320,10 @@ static void r128_clear_box(drm_r128_private_t *dev_priv,
43801
43802 static void r128_cce_performance_boxes(drm_r128_private_t *dev_priv)
43803 {
43804 - if (atomic_read(&dev_priv->idle_count) == 0)
43805 + if (atomic_read_unchecked(&dev_priv->idle_count) == 0)
43806 r128_clear_box(dev_priv, 64, 4, 8, 8, 0, 255, 0);
43807 else
43808 - atomic_set(&dev_priv->idle_count, 0);
43809 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43810 }
43811
43812 #endif
43813 diff --git a/drivers/gpu/drm/radeon/mkregtable.c b/drivers/gpu/drm/radeon/mkregtable.c
43814 index b928c17..e5d9400 100644
43815 --- a/drivers/gpu/drm/radeon/mkregtable.c
43816 +++ b/drivers/gpu/drm/radeon/mkregtable.c
43817 @@ -624,14 +624,14 @@ static int parser_auth(struct table *t, const char *filename)
43818 regex_t mask_rex;
43819 regmatch_t match[4];
43820 char buf[1024];
43821 - size_t end;
43822 + long end;
43823 int len;
43824 int done = 0;
43825 int r;
43826 unsigned o;
43827 struct offset *offset;
43828 char last_reg_s[10];
43829 - int last_reg;
43830 + unsigned long last_reg;
43831
43832 if (regcomp
43833 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
43834 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
43835 index d8319da..d6e066f 100644
43836 --- a/drivers/gpu/drm/radeon/radeon_device.c
43837 +++ b/drivers/gpu/drm/radeon/radeon_device.c
43838 @@ -1253,7 +1253,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
43839 * locking inversion with the driver load path. And the access here is
43840 * completely racy anyway. So don't bother with locking for now.
43841 */
43842 - return dev->open_count == 0;
43843 + return local_read(&dev->open_count) == 0;
43844 }
43845
43846 static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
43847 diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
43848 index 46bd393..6ae4719 100644
43849 --- a/drivers/gpu/drm/radeon/radeon_drv.h
43850 +++ b/drivers/gpu/drm/radeon/radeon_drv.h
43851 @@ -264,7 +264,7 @@ typedef struct drm_radeon_private {
43852
43853 /* SW interrupt */
43854 wait_queue_head_t swi_queue;
43855 - atomic_t swi_emitted;
43856 + atomic_unchecked_t swi_emitted;
43857 int vblank_crtc;
43858 uint32_t irq_enable_reg;
43859 uint32_t r500_disp_irq_reg;
43860 diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
43861 index 0b98ea1..a3c770f 100644
43862 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c
43863 +++ b/drivers/gpu/drm/radeon/radeon_ioc32.c
43864 @@ -358,7 +358,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
43865 request = compat_alloc_user_space(sizeof(*request));
43866 if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
43867 || __put_user(req32.param, &request->param)
43868 - || __put_user((void __user *)(unsigned long)req32.value,
43869 + || __put_user((unsigned long)req32.value,
43870 &request->value))
43871 return -EFAULT;
43872
43873 @@ -368,7 +368,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
43874 #define compat_radeon_cp_setparam NULL
43875 #endif /* X86_64 || IA64 */
43876
43877 -static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
43878 +static drm_ioctl_compat_t radeon_compat_ioctls[] = {
43879 [DRM_RADEON_CP_INIT] = compat_radeon_cp_init,
43880 [DRM_RADEON_CLEAR] = compat_radeon_cp_clear,
43881 [DRM_RADEON_STIPPLE] = compat_radeon_cp_stipple,
43882 @@ -393,17 +393,13 @@ static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
43883 long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43884 {
43885 unsigned int nr = DRM_IOCTL_NR(cmd);
43886 - drm_ioctl_compat_t *fn = NULL;
43887 int ret;
43888
43889 if (nr < DRM_COMMAND_BASE)
43890 return drm_compat_ioctl(filp, cmd, arg);
43891
43892 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls))
43893 - fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE];
43894 -
43895 - if (fn != NULL)
43896 - ret = (*fn) (filp, cmd, arg);
43897 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls) && radeon_compat_ioctls[nr - DRM_COMMAND_BASE])
43898 + ret = (*radeon_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43899 else
43900 ret = drm_ioctl(filp, cmd, arg);
43901
43902 diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
43903 index 244b19b..c19226d 100644
43904 --- a/drivers/gpu/drm/radeon/radeon_irq.c
43905 +++ b/drivers/gpu/drm/radeon/radeon_irq.c
43906 @@ -226,8 +226,8 @@ static int radeon_emit_irq(struct drm_device * dev)
43907 unsigned int ret;
43908 RING_LOCALS;
43909
43910 - atomic_inc(&dev_priv->swi_emitted);
43911 - ret = atomic_read(&dev_priv->swi_emitted);
43912 + atomic_inc_unchecked(&dev_priv->swi_emitted);
43913 + ret = atomic_read_unchecked(&dev_priv->swi_emitted);
43914
43915 BEGIN_RING(4);
43916 OUT_RING_REG(RADEON_LAST_SWI_REG, ret);
43917 @@ -353,7 +353,7 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
43918 drm_radeon_private_t *dev_priv =
43919 (drm_radeon_private_t *) dev->dev_private;
43920
43921 - atomic_set(&dev_priv->swi_emitted, 0);
43922 + atomic_set_unchecked(&dev_priv->swi_emitted, 0);
43923 init_waitqueue_head(&dev_priv->swi_queue);
43924
43925 dev->max_vblank_count = 0x001fffff;
43926 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
43927 index 15aee72..cda326e 100644
43928 --- a/drivers/gpu/drm/radeon/radeon_state.c
43929 +++ b/drivers/gpu/drm/radeon/radeon_state.c
43930 @@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_device *dev, void *data, struct drm_file *
43931 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
43932 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
43933
43934 - if (copy_from_user(&depth_boxes, clear->depth_boxes,
43935 + if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS || copy_from_user(&depth_boxes, clear->depth_boxes,
43936 sarea_priv->nbox * sizeof(depth_boxes[0])))
43937 return -EFAULT;
43938
43939 @@ -3031,7 +3031,7 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
43940 {
43941 drm_radeon_private_t *dev_priv = dev->dev_private;
43942 drm_radeon_getparam_t *param = data;
43943 - int value;
43944 + int value = 0;
43945
43946 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
43947
43948 diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
43949 index 06ac59fe..57e0681 100644
43950 --- a/drivers/gpu/drm/radeon/radeon_ttm.c
43951 +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
43952 @@ -961,7 +961,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
43953 man->size = size >> PAGE_SHIFT;
43954 }
43955
43956 -static struct vm_operations_struct radeon_ttm_vm_ops;
43957 +static vm_operations_struct_no_const radeon_ttm_vm_ops __read_only;
43958 static const struct vm_operations_struct *ttm_vm_ops = NULL;
43959
43960 static int radeon_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43961 @@ -1002,8 +1002,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
43962 }
43963 if (unlikely(ttm_vm_ops == NULL)) {
43964 ttm_vm_ops = vma->vm_ops;
43965 + pax_open_kernel();
43966 radeon_ttm_vm_ops = *ttm_vm_ops;
43967 radeon_ttm_vm_ops.fault = &radeon_ttm_fault;
43968 + pax_close_kernel();
43969 }
43970 vma->vm_ops = &radeon_ttm_vm_ops;
43971 return 0;
43972 diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
43973 index a287e4f..df1d5dd 100644
43974 --- a/drivers/gpu/drm/tegra/dc.c
43975 +++ b/drivers/gpu/drm/tegra/dc.c
43976 @@ -1594,7 +1594,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
43977 }
43978
43979 for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
43980 - dc->debugfs_files[i].data = dc;
43981 + *(void **)&dc->debugfs_files[i].data = dc;
43982
43983 err = drm_debugfs_create_files(dc->debugfs_files,
43984 ARRAY_SIZE(debugfs_files),
43985 diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
43986 index ed970f6..4eeea42 100644
43987 --- a/drivers/gpu/drm/tegra/dsi.c
43988 +++ b/drivers/gpu/drm/tegra/dsi.c
43989 @@ -62,7 +62,7 @@ struct tegra_dsi {
43990 struct clk *clk_lp;
43991 struct clk *clk;
43992
43993 - struct drm_info_list *debugfs_files;
43994 + drm_info_list_no_const *debugfs_files;
43995 struct drm_minor *minor;
43996 struct dentry *debugfs;
43997
43998 diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
43999 index 06ab178..b5324e4 100644
44000 --- a/drivers/gpu/drm/tegra/hdmi.c
44001 +++ b/drivers/gpu/drm/tegra/hdmi.c
44002 @@ -64,7 +64,7 @@ struct tegra_hdmi {
44003 bool stereo;
44004 bool dvi;
44005
44006 - struct drm_info_list *debugfs_files;
44007 + drm_info_list_no_const *debugfs_files;
44008 struct drm_minor *minor;
44009 struct dentry *debugfs;
44010 };
44011 diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
44012 index 7591d89..463e2b6 100644
44013 --- a/drivers/gpu/drm/tegra/sor.c
44014 +++ b/drivers/gpu/drm/tegra/sor.c
44015 @@ -826,8 +826,11 @@ static int tegra_sor_debugfs_init(struct tegra_sor *sor,
44016 goto remove;
44017 }
44018
44019 - for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
44020 - sor->debugfs_files[i].data = sor;
44021 + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) {
44022 + pax_open_kernel();
44023 + *(void **)&sor->debugfs_files[i].data = sor;
44024 + pax_close_kernel();
44025 + }
44026
44027 err = drm_debugfs_create_files(sor->debugfs_files,
44028 ARRAY_SIZE(debugfs_files),
44029 diff --git a/drivers/gpu/drm/tilcdc/Makefile b/drivers/gpu/drm/tilcdc/Makefile
44030 index deeca48..54e1b6c 100644
44031 --- a/drivers/gpu/drm/tilcdc/Makefile
44032 +++ b/drivers/gpu/drm/tilcdc/Makefile
44033 @@ -1,7 +1,7 @@
44034 ccflags-y := -Iinclude/drm
44035 -ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
44036 - ccflags-y += -Werror
44037 -endif
44038 +#ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
44039 +# ccflags-y += -Werror
44040 +#endif
44041
44042 obj-$(CONFIG_DRM_TILCDC_SLAVE_COMPAT) += tilcdc_slave_compat.o \
44043 tilcdc_slave_compat.dtb.o
44044 diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
44045 index aa0bd054..aea6a01 100644
44046 --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
44047 +++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c
44048 @@ -148,10 +148,10 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
44049 }
44050
44051 const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
44052 - ttm_bo_man_init,
44053 - ttm_bo_man_takedown,
44054 - ttm_bo_man_get_node,
44055 - ttm_bo_man_put_node,
44056 - ttm_bo_man_debug
44057 + .init = ttm_bo_man_init,
44058 + .takedown = ttm_bo_man_takedown,
44059 + .get_node = ttm_bo_man_get_node,
44060 + .put_node = ttm_bo_man_put_node,
44061 + .debug = ttm_bo_man_debug
44062 };
44063 EXPORT_SYMBOL(ttm_bo_manager_func);
44064 diff --git a/drivers/gpu/drm/ttm/ttm_memory.c b/drivers/gpu/drm/ttm/ttm_memory.c
44065 index a1803fb..c53f6b0 100644
44066 --- a/drivers/gpu/drm/ttm/ttm_memory.c
44067 +++ b/drivers/gpu/drm/ttm/ttm_memory.c
44068 @@ -264,7 +264,7 @@ static int ttm_mem_init_kernel_zone(struct ttm_mem_global *glob,
44069 zone->glob = glob;
44070 glob->zone_kernel = zone;
44071 ret = kobject_init_and_add(
44072 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
44073 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
44074 if (unlikely(ret != 0)) {
44075 kobject_put(&zone->kobj);
44076 return ret;
44077 @@ -348,7 +348,7 @@ static int ttm_mem_init_dma32_zone(struct ttm_mem_global *glob,
44078 zone->glob = glob;
44079 glob->zone_dma32 = zone;
44080 ret = kobject_init_and_add(
44081 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
44082 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
44083 if (unlikely(ret != 0)) {
44084 kobject_put(&zone->kobj);
44085 return ret;
44086 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
44087 index 025c429..314062f 100644
44088 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
44089 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
44090 @@ -54,7 +54,7 @@
44091
44092 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
44093 #define SMALL_ALLOCATION 16
44094 -#define FREE_ALL_PAGES (~0U)
44095 +#define FREE_ALL_PAGES (~0UL)
44096 /* times are in msecs */
44097 #define PAGE_FREE_INTERVAL 1000
44098
44099 @@ -299,15 +299,14 @@ static void ttm_pool_update_free_locked(struct ttm_page_pool *pool,
44100 * @free_all: If set to true will free all pages in pool
44101 * @use_static: Safe to use static buffer
44102 **/
44103 -static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free,
44104 +static unsigned long ttm_page_pool_free(struct ttm_page_pool *pool, unsigned long nr_free,
44105 bool use_static)
44106 {
44107 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
44108 unsigned long irq_flags;
44109 struct page *p;
44110 struct page **pages_to_free;
44111 - unsigned freed_pages = 0,
44112 - npages_to_free = nr_free;
44113 + unsigned long freed_pages = 0, npages_to_free = nr_free;
44114
44115 if (NUM_PAGES_TO_ALLOC < nr_free)
44116 npages_to_free = NUM_PAGES_TO_ALLOC;
44117 @@ -371,7 +370,8 @@ restart:
44118 __list_del(&p->lru, &pool->list);
44119
44120 ttm_pool_update_free_locked(pool, freed_pages);
44121 - nr_free -= freed_pages;
44122 + if (likely(nr_free != FREE_ALL_PAGES))
44123 + nr_free -= freed_pages;
44124 }
44125
44126 spin_unlock_irqrestore(&pool->lock, irq_flags);
44127 @@ -399,7 +399,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44128 unsigned i;
44129 unsigned pool_offset;
44130 struct ttm_page_pool *pool;
44131 - int shrink_pages = sc->nr_to_scan;
44132 + unsigned long shrink_pages = sc->nr_to_scan;
44133 unsigned long freed = 0;
44134
44135 if (!mutex_trylock(&lock))
44136 @@ -407,7 +407,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44137 pool_offset = ++start_pool % NUM_POOLS;
44138 /* select start pool in round robin fashion */
44139 for (i = 0; i < NUM_POOLS; ++i) {
44140 - unsigned nr_free = shrink_pages;
44141 + unsigned long nr_free = shrink_pages;
44142 if (shrink_pages == 0)
44143 break;
44144 pool = &_manager->pools[(i + pool_offset)%NUM_POOLS];
44145 @@ -673,7 +673,7 @@ out:
44146 }
44147
44148 /* Put all pages in pages list to correct pool to wait for reuse */
44149 -static void ttm_put_pages(struct page **pages, unsigned npages, int flags,
44150 +static void ttm_put_pages(struct page **pages, unsigned long npages, int flags,
44151 enum ttm_caching_state cstate)
44152 {
44153 unsigned long irq_flags;
44154 @@ -728,7 +728,7 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags,
44155 struct list_head plist;
44156 struct page *p = NULL;
44157 gfp_t gfp_flags = GFP_USER;
44158 - unsigned count;
44159 + unsigned long count;
44160 int r;
44161
44162 /* set zero flag for page allocation if required */
44163 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
44164 index 624d941..106fa1f 100644
44165 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
44166 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
44167 @@ -56,7 +56,7 @@
44168
44169 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
44170 #define SMALL_ALLOCATION 4
44171 -#define FREE_ALL_PAGES (~0U)
44172 +#define FREE_ALL_PAGES (~0UL)
44173 /* times are in msecs */
44174 #define IS_UNDEFINED (0)
44175 #define IS_WC (1<<1)
44176 @@ -416,7 +416,7 @@ static void ttm_dma_page_put(struct dma_pool *pool, struct dma_page *d_page)
44177 * @nr_free: If set to true will free all pages in pool
44178 * @use_static: Safe to use static buffer
44179 **/
44180 -static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
44181 +static unsigned long ttm_dma_page_pool_free(struct dma_pool *pool, unsigned long nr_free,
44182 bool use_static)
44183 {
44184 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
44185 @@ -424,8 +424,7 @@ static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
44186 struct dma_page *dma_p, *tmp;
44187 struct page **pages_to_free;
44188 struct list_head d_pages;
44189 - unsigned freed_pages = 0,
44190 - npages_to_free = nr_free;
44191 + unsigned long freed_pages = 0, npages_to_free = nr_free;
44192
44193 if (NUM_PAGES_TO_ALLOC < nr_free)
44194 npages_to_free = NUM_PAGES_TO_ALLOC;
44195 @@ -502,7 +501,8 @@ restart:
44196 /* remove range of pages from the pool */
44197 if (freed_pages) {
44198 ttm_pool_update_free_locked(pool, freed_pages);
44199 - nr_free -= freed_pages;
44200 + if (likely(nr_free != FREE_ALL_PAGES))
44201 + nr_free -= freed_pages;
44202 }
44203
44204 spin_unlock_irqrestore(&pool->lock, irq_flags);
44205 @@ -939,7 +939,7 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
44206 struct dma_page *d_page, *next;
44207 enum pool_type type;
44208 bool is_cached = false;
44209 - unsigned count = 0, i, npages = 0;
44210 + unsigned long count = 0, i, npages = 0;
44211 unsigned long irq_flags;
44212
44213 type = ttm_to_type(ttm->page_flags, ttm->caching_state);
44214 @@ -1014,7 +1014,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44215 static unsigned start_pool;
44216 unsigned idx = 0;
44217 unsigned pool_offset;
44218 - unsigned shrink_pages = sc->nr_to_scan;
44219 + unsigned long shrink_pages = sc->nr_to_scan;
44220 struct device_pools *p;
44221 unsigned long freed = 0;
44222
44223 @@ -1027,7 +1027,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44224 goto out;
44225 pool_offset = ++start_pool % _manager->npools;
44226 list_for_each_entry(p, &_manager->pools, pools) {
44227 - unsigned nr_free;
44228 + unsigned long nr_free;
44229
44230 if (!p->dev)
44231 continue;
44232 @@ -1041,7 +1041,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44233 shrink_pages = ttm_dma_page_pool_free(p->pool, nr_free, true);
44234 freed += nr_free - shrink_pages;
44235
44236 - pr_debug("%s: (%s:%d) Asked to shrink %d, have %d more to go\n",
44237 + pr_debug("%s: (%s:%d) Asked to shrink %lu, have %lu more to go\n",
44238 p->pool->dev_name, p->pool->name, current->pid,
44239 nr_free, shrink_pages);
44240 }
44241 diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
44242 index 5fc16ce..1bd84ec 100644
44243 --- a/drivers/gpu/drm/udl/udl_fb.c
44244 +++ b/drivers/gpu/drm/udl/udl_fb.c
44245 @@ -367,7 +367,6 @@ static int udl_fb_release(struct fb_info *info, int user)
44246 fb_deferred_io_cleanup(info);
44247 kfree(info->fbdefio);
44248 info->fbdefio = NULL;
44249 - info->fbops->fb_mmap = udl_fb_mmap;
44250 }
44251
44252 pr_warn("released /dev/fb%d user=%d count=%d\n",
44253 diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
44254 index ef8c500..01030c8 100644
44255 --- a/drivers/gpu/drm/via/via_drv.h
44256 +++ b/drivers/gpu/drm/via/via_drv.h
44257 @@ -53,7 +53,7 @@ typedef struct drm_via_ring_buffer {
44258 typedef uint32_t maskarray_t[5];
44259
44260 typedef struct drm_via_irq {
44261 - atomic_t irq_received;
44262 + atomic_unchecked_t irq_received;
44263 uint32_t pending_mask;
44264 uint32_t enable_mask;
44265 wait_queue_head_t irq_queue;
44266 @@ -77,7 +77,7 @@ typedef struct drm_via_private {
44267 struct timeval last_vblank;
44268 int last_vblank_valid;
44269 unsigned usec_per_vblank;
44270 - atomic_t vbl_received;
44271 + atomic_unchecked_t vbl_received;
44272 drm_via_state_t hc_state;
44273 char pci_buf[VIA_PCI_BUF_SIZE];
44274 const uint32_t *fire_offsets[VIA_FIRE_BUF_SIZE];
44275 diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c
44276 index 1319433..a993b0c 100644
44277 --- a/drivers/gpu/drm/via/via_irq.c
44278 +++ b/drivers/gpu/drm/via/via_irq.c
44279 @@ -101,7 +101,7 @@ u32 via_get_vblank_counter(struct drm_device *dev, int crtc)
44280 if (crtc != 0)
44281 return 0;
44282
44283 - return atomic_read(&dev_priv->vbl_received);
44284 + return atomic_read_unchecked(&dev_priv->vbl_received);
44285 }
44286
44287 irqreturn_t via_driver_irq_handler(int irq, void *arg)
44288 @@ -116,8 +116,8 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44289
44290 status = VIA_READ(VIA_REG_INTERRUPT);
44291 if (status & VIA_IRQ_VBLANK_PENDING) {
44292 - atomic_inc(&dev_priv->vbl_received);
44293 - if (!(atomic_read(&dev_priv->vbl_received) & 0x0F)) {
44294 + atomic_inc_unchecked(&dev_priv->vbl_received);
44295 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0x0F)) {
44296 do_gettimeofday(&cur_vblank);
44297 if (dev_priv->last_vblank_valid) {
44298 dev_priv->usec_per_vblank =
44299 @@ -127,7 +127,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44300 dev_priv->last_vblank = cur_vblank;
44301 dev_priv->last_vblank_valid = 1;
44302 }
44303 - if (!(atomic_read(&dev_priv->vbl_received) & 0xFF)) {
44304 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0xFF)) {
44305 DRM_DEBUG("US per vblank is: %u\n",
44306 dev_priv->usec_per_vblank);
44307 }
44308 @@ -137,7 +137,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44309
44310 for (i = 0; i < dev_priv->num_irqs; ++i) {
44311 if (status & cur_irq->pending_mask) {
44312 - atomic_inc(&cur_irq->irq_received);
44313 + atomic_inc_unchecked(&cur_irq->irq_received);
44314 wake_up(&cur_irq->irq_queue);
44315 handled = 1;
44316 if (dev_priv->irq_map[drm_via_irq_dma0_td] == i)
44317 @@ -242,11 +242,11 @@ via_driver_irq_wait(struct drm_device *dev, unsigned int irq, int force_sequence
44318 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44319 ((VIA_READ(masks[irq][2]) & masks[irq][3]) ==
44320 masks[irq][4]));
44321 - cur_irq_sequence = atomic_read(&cur_irq->irq_received);
44322 + cur_irq_sequence = atomic_read_unchecked(&cur_irq->irq_received);
44323 } else {
44324 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44325 (((cur_irq_sequence =
44326 - atomic_read(&cur_irq->irq_received)) -
44327 + atomic_read_unchecked(&cur_irq->irq_received)) -
44328 *sequence) <= (1 << 23)));
44329 }
44330 *sequence = cur_irq_sequence;
44331 @@ -284,7 +284,7 @@ void via_driver_irq_preinstall(struct drm_device *dev)
44332 }
44333
44334 for (i = 0; i < dev_priv->num_irqs; ++i) {
44335 - atomic_set(&cur_irq->irq_received, 0);
44336 + atomic_set_unchecked(&cur_irq->irq_received, 0);
44337 cur_irq->enable_mask = dev_priv->irq_masks[i][0];
44338 cur_irq->pending_mask = dev_priv->irq_masks[i][1];
44339 init_waitqueue_head(&cur_irq->irq_queue);
44340 @@ -366,7 +366,7 @@ int via_wait_irq(struct drm_device *dev, void *data, struct drm_file *file_priv)
44341 switch (irqwait->request.type & ~VIA_IRQ_FLAGS_MASK) {
44342 case VIA_IRQ_RELATIVE:
44343 irqwait->request.sequence +=
44344 - atomic_read(&cur_irq->irq_received);
44345 + atomic_read_unchecked(&cur_irq->irq_received);
44346 irqwait->request.type &= ~_DRM_VBLANK_RELATIVE;
44347 case VIA_IRQ_ABSOLUTE:
44348 break;
44349 diff --git a/drivers/gpu/drm/virtio/virtgpu_debugfs.c b/drivers/gpu/drm/virtio/virtgpu_debugfs.c
44350 index db8b491..d87b27c 100644
44351 --- a/drivers/gpu/drm/virtio/virtgpu_debugfs.c
44352 +++ b/drivers/gpu/drm/virtio/virtgpu_debugfs.c
44353 @@ -34,7 +34,7 @@ virtio_gpu_debugfs_irq_info(struct seq_file *m, void *data)
44354 struct drm_info_node *node = (struct drm_info_node *) m->private;
44355 struct virtio_gpu_device *vgdev = node->minor->dev->dev_private;
44356
44357 - seq_printf(m, "fence %ld %lld\n",
44358 + seq_printf(m, "fence %lld %lld\n",
44359 atomic64_read(&vgdev->fence_drv.last_seq),
44360 vgdev->fence_drv.sync_seq);
44361 return 0;
44362 diff --git a/drivers/gpu/drm/virtio/virtgpu_fence.c b/drivers/gpu/drm/virtio/virtgpu_fence.c
44363 index 1da6326..98dd385 100644
44364 --- a/drivers/gpu/drm/virtio/virtgpu_fence.c
44365 +++ b/drivers/gpu/drm/virtio/virtgpu_fence.c
44366 @@ -61,7 +61,7 @@ static void virtio_timeline_value_str(struct fence *f, char *str, int size)
44367 {
44368 struct virtio_gpu_fence *fence = to_virtio_fence(f);
44369
44370 - snprintf(str, size, "%lu", atomic64_read(&fence->drv->last_seq));
44371 + snprintf(str, size, "%llu", atomic64_read(&fence->drv->last_seq));
44372 }
44373
44374 static const struct fence_ops virtio_fence_ops = {
44375 diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44376 index b092d7b..3bbecd9 100644
44377 --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
44378 +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44379 @@ -197,11 +197,11 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
44380 }
44381
44382 static const struct ttm_mem_type_manager_func virtio_gpu_bo_manager_func = {
44383 - ttm_bo_man_init,
44384 - ttm_bo_man_takedown,
44385 - ttm_bo_man_get_node,
44386 - ttm_bo_man_put_node,
44387 - ttm_bo_man_debug
44388 + .init = &ttm_bo_man_init,
44389 + .takedown = &ttm_bo_man_takedown,
44390 + .get_node = &ttm_bo_man_get_node,
44391 + .put_node = &ttm_bo_man_put_node,
44392 + .debug = &ttm_bo_man_debug
44393 };
44394
44395 static int virtio_gpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
44396 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44397 index d8896ed..f5ca485 100644
44398 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44399 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44400 @@ -447,7 +447,7 @@ struct vmw_private {
44401 * Fencing and IRQs.
44402 */
44403
44404 - atomic_t marker_seq;
44405 + atomic_unchecked_t marker_seq;
44406 wait_queue_head_t fence_queue;
44407 wait_queue_head_t fifo_queue;
44408 spinlock_t waiter_lock;
44409 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44410 index 39f2b03..d1b0a64 100644
44411 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44412 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44413 @@ -152,7 +152,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
44414 (unsigned int) min,
44415 (unsigned int) fifo->capabilities);
44416
44417 - atomic_set(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44418 + atomic_set_unchecked(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44419 iowrite32(dev_priv->last_read_seqno, fifo_mem + SVGA_FIFO_FENCE);
44420 vmw_marker_queue_init(&fifo->marker_queue);
44421 return vmw_fifo_send_fence(dev_priv, &dummy);
44422 @@ -372,7 +372,7 @@ void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes)
44423 if (reserveable)
44424 iowrite32(bytes, fifo_mem +
44425 SVGA_FIFO_RESERVED);
44426 - return fifo_mem + (next_cmd >> 2);
44427 + return (__le32 __force_kernel *)fifo_mem + (next_cmd >> 2);
44428 } else {
44429 need_bounce = true;
44430 }
44431 @@ -492,7 +492,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44432
44433 fm = vmw_fifo_reserve(dev_priv, bytes);
44434 if (unlikely(fm == NULL)) {
44435 - *seqno = atomic_read(&dev_priv->marker_seq);
44436 + *seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44437 ret = -ENOMEM;
44438 (void)vmw_fallback_wait(dev_priv, false, true, *seqno,
44439 false, 3*HZ);
44440 @@ -500,7 +500,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44441 }
44442
44443 do {
44444 - *seqno = atomic_add_return(1, &dev_priv->marker_seq);
44445 + *seqno = atomic_add_return_unchecked(1, &dev_priv->marker_seq);
44446 } while (*seqno == 0);
44447
44448 if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) {
44449 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44450 index 170b61b..fec7348 100644
44451 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44452 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44453 @@ -164,9 +164,9 @@ static void vmw_gmrid_man_debug(struct ttm_mem_type_manager *man,
44454 }
44455
44456 const struct ttm_mem_type_manager_func vmw_gmrid_manager_func = {
44457 - vmw_gmrid_man_init,
44458 - vmw_gmrid_man_takedown,
44459 - vmw_gmrid_man_get_node,
44460 - vmw_gmrid_man_put_node,
44461 - vmw_gmrid_man_debug
44462 + .init = vmw_gmrid_man_init,
44463 + .takedown = vmw_gmrid_man_takedown,
44464 + .get_node = vmw_gmrid_man_get_node,
44465 + .put_node = vmw_gmrid_man_put_node,
44466 + .debug = vmw_gmrid_man_debug
44467 };
44468 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
44469 index 69c8ce2..cacb0ab 100644
44470 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
44471 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
44472 @@ -235,7 +235,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
44473 int ret;
44474
44475 num_clips = arg->num_clips;
44476 - clips_ptr = (struct drm_vmw_rect *)(unsigned long)arg->clips_ptr;
44477 + clips_ptr = (struct drm_vmw_rect __user *)(unsigned long)arg->clips_ptr;
44478
44479 if (unlikely(num_clips == 0))
44480 return 0;
44481 @@ -318,7 +318,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
44482 int ret;
44483
44484 num_clips = arg->num_clips;
44485 - clips_ptr = (struct drm_vmw_rect *)(unsigned long)arg->clips_ptr;
44486 + clips_ptr = (struct drm_vmw_rect __user *)(unsigned long)arg->clips_ptr;
44487
44488 if (unlikely(num_clips == 0))
44489 return 0;
44490 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44491 index 9fe9827..0aa2fc0 100644
44492 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44493 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44494 @@ -102,7 +102,7 @@ bool vmw_seqno_passed(struct vmw_private *dev_priv,
44495 * emitted. Then the fence is stale and signaled.
44496 */
44497
44498 - ret = ((atomic_read(&dev_priv->marker_seq) - seqno)
44499 + ret = ((atomic_read_unchecked(&dev_priv->marker_seq) - seqno)
44500 > VMW_FENCE_WRAP);
44501
44502 return ret;
44503 @@ -133,7 +133,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
44504
44505 if (fifo_idle)
44506 down_read(&fifo_state->rwsem);
44507 - signal_seq = atomic_read(&dev_priv->marker_seq);
44508 + signal_seq = atomic_read_unchecked(&dev_priv->marker_seq);
44509 ret = 0;
44510
44511 for (;;) {
44512 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44513 index efd1ffd..0ae13ca 100644
44514 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44515 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44516 @@ -135,7 +135,7 @@ int vmw_wait_lag(struct vmw_private *dev_priv,
44517 while (!vmw_lag_lt(queue, us)) {
44518 spin_lock(&queue->lock);
44519 if (list_empty(&queue->head))
44520 - seqno = atomic_read(&dev_priv->marker_seq);
44521 + seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44522 else {
44523 marker = list_first_entry(&queue->head,
44524 struct vmw_marker, head);
44525 diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
44526 index 37ac7b5..d52a5c9 100644
44527 --- a/drivers/gpu/vga/vga_switcheroo.c
44528 +++ b/drivers/gpu/vga/vga_switcheroo.c
44529 @@ -644,7 +644,7 @@ static int vga_switcheroo_runtime_resume(struct device *dev)
44530
44531 /* this version is for the case where the power switch is separate
44532 to the device being powered down. */
44533 -int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain)
44534 +int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain)
44535 {
44536 /* copy over all the bus versions */
44537 if (dev->bus && dev->bus->pm) {
44538 @@ -695,7 +695,7 @@ static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
44539 return ret;
44540 }
44541
44542 -int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain)
44543 +int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain)
44544 {
44545 /* copy over all the bus versions */
44546 if (dev->bus && dev->bus->pm) {
44547 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
44548 index e6fce23..85949a0 100644
44549 --- a/drivers/hid/hid-core.c
44550 +++ b/drivers/hid/hid-core.c
44551 @@ -2550,7 +2550,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
44552
44553 int hid_add_device(struct hid_device *hdev)
44554 {
44555 - static atomic_t id = ATOMIC_INIT(0);
44556 + static atomic_unchecked_t id = ATOMIC_INIT(0);
44557 int ret;
44558
44559 if (WARN_ON(hdev->status & HID_STAT_ADDED))
44560 @@ -2593,7 +2593,7 @@ int hid_add_device(struct hid_device *hdev)
44561 /* XXX hack, any other cleaner solution after the driver core
44562 * is converted to allow more than 20 bytes as the device name? */
44563 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
44564 - hdev->vendor, hdev->product, atomic_inc_return(&id));
44565 + hdev->vendor, hdev->product, atomic_inc_return_unchecked(&id));
44566
44567 hid_debug_register(hdev, dev_name(&hdev->dev));
44568 ret = device_add(&hdev->dev);
44569 diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
44570 index 5614fee..8a6f5f6 100644
44571 --- a/drivers/hid/hid-sensor-custom.c
44572 +++ b/drivers/hid/hid-sensor-custom.c
44573 @@ -590,7 +590,7 @@ static int hid_sensor_custom_add_attributes(struct hid_sensor_custom
44574 j = 0;
44575 while (j < HID_CUSTOM_TOTAL_ATTRS &&
44576 hid_custom_attrs[j].name) {
44577 - struct device_attribute *device_attr;
44578 + device_attribute_no_const *device_attr;
44579
44580 device_attr = &sensor_inst->fields[i].sd_attrs[j];
44581
44582 diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
44583 index c13fb5b..55a3802 100644
44584 --- a/drivers/hid/hid-wiimote-debug.c
44585 +++ b/drivers/hid/hid-wiimote-debug.c
44586 @@ -66,7 +66,7 @@ static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
44587 else if (size == 0)
44588 return -EIO;
44589
44590 - if (copy_to_user(u, buf, size))
44591 + if (size > sizeof(buf) || copy_to_user(u, buf, size))
44592 return -EFAULT;
44593
44594 *off += size;
44595 diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
44596 index 603ce97..7f27468 100644
44597 --- a/drivers/hv/channel.c
44598 +++ b/drivers/hv/channel.c
44599 @@ -382,7 +382,7 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
44600 int ret = 0;
44601
44602 next_gpadl_handle =
44603 - (atomic_inc_return(&vmbus_connection.next_gpadl_handle) - 1);
44604 + (atomic_inc_return_unchecked(&vmbus_connection.next_gpadl_handle) - 1);
44605
44606 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
44607 if (ret)
44608 diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
44609 index d3943bc..597fd1e 100644
44610 --- a/drivers/hv/hv.c
44611 +++ b/drivers/hv/hv.c
44612 @@ -118,7 +118,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
44613 u64 output_address = (output) ? virt_to_phys(output) : 0;
44614 u32 output_address_hi = output_address >> 32;
44615 u32 output_address_lo = output_address & 0xFFFFFFFF;
44616 - void *hypercall_page = hv_context.hypercall_page;
44617 + void *hypercall_page = (void *)ktva_ktla((unsigned long)hv_context.hypercall_page);
44618
44619 __asm__ __volatile__ ("call *%8" : "=d"(hv_status_hi),
44620 "=a"(hv_status_lo) : "d" (control_hi),
44621 @@ -164,7 +164,7 @@ int hv_init(void)
44622 /* See if the hypercall page is already set */
44623 rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
44624
44625 - virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC);
44626 + virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX);
44627
44628 if (!virtaddr)
44629 goto cleanup;
44630 diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
44631 index 8a725cd..91abaf0 100644
44632 --- a/drivers/hv/hv_balloon.c
44633 +++ b/drivers/hv/hv_balloon.c
44634 @@ -469,7 +469,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
44635
44636 module_param(pressure_report_delay, uint, (S_IRUGO | S_IWUSR));
44637 MODULE_PARM_DESC(pressure_report_delay, "Delay in secs in reporting pressure");
44638 -static atomic_t trans_id = ATOMIC_INIT(0);
44639 +static atomic_unchecked_t trans_id = ATOMIC_INIT(0);
44640
44641 static int dm_ring_size = (5 * PAGE_SIZE);
44642
44643 @@ -943,7 +943,7 @@ static void hot_add_req(struct work_struct *dummy)
44644 pr_info("Memory hot add failed\n");
44645
44646 dm->state = DM_INITIALIZED;
44647 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44648 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44649 vmbus_sendpacket(dm->dev->channel, &resp,
44650 sizeof(struct dm_hot_add_response),
44651 (unsigned long)NULL,
44652 @@ -1024,7 +1024,7 @@ static void post_status(struct hv_dynmem_device *dm)
44653 memset(&status, 0, sizeof(struct dm_status));
44654 status.hdr.type = DM_STATUS_REPORT;
44655 status.hdr.size = sizeof(struct dm_status);
44656 - status.hdr.trans_id = atomic_inc_return(&trans_id);
44657 + status.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44658
44659 /*
44660 * The host expects the guest to report free and committed memory.
44661 @@ -1048,7 +1048,7 @@ static void post_status(struct hv_dynmem_device *dm)
44662 * send the status. This can happen if we were interrupted
44663 * after we picked our transaction ID.
44664 */
44665 - if (status.hdr.trans_id != atomic_read(&trans_id))
44666 + if (status.hdr.trans_id != atomic_read_unchecked(&trans_id))
44667 return;
44668
44669 /*
44670 @@ -1193,7 +1193,7 @@ static void balloon_up(struct work_struct *dummy)
44671 */
44672
44673 do {
44674 - bl_resp->hdr.trans_id = atomic_inc_return(&trans_id);
44675 + bl_resp->hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44676 ret = vmbus_sendpacket(dm_device.dev->channel,
44677 bl_resp,
44678 bl_resp->hdr.size,
44679 @@ -1239,7 +1239,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
44680
44681 memset(&resp, 0, sizeof(struct dm_unballoon_response));
44682 resp.hdr.type = DM_UNBALLOON_RESPONSE;
44683 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44684 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44685 resp.hdr.size = sizeof(struct dm_unballoon_response);
44686
44687 vmbus_sendpacket(dm_device.dev->channel, &resp,
44688 @@ -1300,7 +1300,7 @@ static void version_resp(struct hv_dynmem_device *dm,
44689 memset(&version_req, 0, sizeof(struct dm_version_request));
44690 version_req.hdr.type = DM_VERSION_REQUEST;
44691 version_req.hdr.size = sizeof(struct dm_version_request);
44692 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44693 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44694 version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN7;
44695 version_req.is_last_attempt = 1;
44696
44697 @@ -1473,7 +1473,7 @@ static int balloon_probe(struct hv_device *dev,
44698 memset(&version_req, 0, sizeof(struct dm_version_request));
44699 version_req.hdr.type = DM_VERSION_REQUEST;
44700 version_req.hdr.size = sizeof(struct dm_version_request);
44701 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44702 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44703 version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN8;
44704 version_req.is_last_attempt = 0;
44705
44706 @@ -1504,7 +1504,7 @@ static int balloon_probe(struct hv_device *dev,
44707 memset(&cap_msg, 0, sizeof(struct dm_capabilities));
44708 cap_msg.hdr.type = DM_CAPABILITIES_REPORT;
44709 cap_msg.hdr.size = sizeof(struct dm_capabilities);
44710 - cap_msg.hdr.trans_id = atomic_inc_return(&trans_id);
44711 + cap_msg.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44712
44713 cap_msg.caps.cap_bits.balloon = 1;
44714 cap_msg.caps.cap_bits.hot_add = 1;
44715 diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
44716 index cddc0c9..2eb587d 100644
44717 --- a/drivers/hv/hyperv_vmbus.h
44718 +++ b/drivers/hv/hyperv_vmbus.h
44719 @@ -645,7 +645,7 @@ enum vmbus_connect_state {
44720 struct vmbus_connection {
44721 enum vmbus_connect_state conn_state;
44722
44723 - atomic_t next_gpadl_handle;
44724 + atomic_unchecked_t next_gpadl_handle;
44725
44726 struct completion unload_event;
44727 /*
44728 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
44729 index 579bdf9..0dac21d5 100644
44730 --- a/drivers/hwmon/acpi_power_meter.c
44731 +++ b/drivers/hwmon/acpi_power_meter.c
44732 @@ -116,7 +116,7 @@ struct sensor_template {
44733 struct device_attribute *devattr,
44734 const char *buf, size_t count);
44735 int index;
44736 -};
44737 +} __do_const;
44738
44739 /* Averaging interval */
44740 static int update_avg_interval(struct acpi_power_meter_resource *resource)
44741 @@ -631,7 +631,7 @@ static int register_attrs(struct acpi_power_meter_resource *resource,
44742 struct sensor_template *attrs)
44743 {
44744 struct device *dev = &resource->acpi_dev->dev;
44745 - struct sensor_device_attribute *sensors =
44746 + sensor_device_attribute_no_const *sensors =
44747 &resource->sensors[resource->num_sensors];
44748 int res = 0;
44749
44750 @@ -973,7 +973,7 @@ static int __init enable_cap_knobs(const struct dmi_system_id *d)
44751 return 0;
44752 }
44753
44754 -static struct dmi_system_id __initdata pm_dmi_table[] = {
44755 +static const struct dmi_system_id __initconst pm_dmi_table[] = {
44756 {
44757 enable_cap_knobs, "IBM Active Energy Manager",
44758 {
44759 diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
44760 index 0af63da..05a183a 100644
44761 --- a/drivers/hwmon/applesmc.c
44762 +++ b/drivers/hwmon/applesmc.c
44763 @@ -1105,7 +1105,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
44764 {
44765 struct applesmc_node_group *grp;
44766 struct applesmc_dev_attr *node;
44767 - struct attribute *attr;
44768 + attribute_no_const *attr;
44769 int ret, i;
44770
44771 for (grp = groups; grp->format; grp++) {
44772 diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
44773 index cccef87..06ce8ec 100644
44774 --- a/drivers/hwmon/asus_atk0110.c
44775 +++ b/drivers/hwmon/asus_atk0110.c
44776 @@ -147,10 +147,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids);
44777 struct atk_sensor_data {
44778 struct list_head list;
44779 struct atk_data *data;
44780 - struct device_attribute label_attr;
44781 - struct device_attribute input_attr;
44782 - struct device_attribute limit1_attr;
44783 - struct device_attribute limit2_attr;
44784 + device_attribute_no_const label_attr;
44785 + device_attribute_no_const input_attr;
44786 + device_attribute_no_const limit1_attr;
44787 + device_attribute_no_const limit2_attr;
44788 char label_attr_name[ATTR_NAME_SIZE];
44789 char input_attr_name[ATTR_NAME_SIZE];
44790 char limit1_attr_name[ATTR_NAME_SIZE];
44791 @@ -270,7 +270,7 @@ static ssize_t atk_name_show(struct device *dev,
44792 static struct device_attribute atk_name_attr =
44793 __ATTR(name, 0444, atk_name_show, NULL);
44794
44795 -static void atk_init_attribute(struct device_attribute *attr, char *name,
44796 +static void atk_init_attribute(device_attribute_no_const *attr, char *name,
44797 sysfs_show_func show)
44798 {
44799 sysfs_attr_init(&attr->attr);
44800 diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
44801 index 3e03379..ec521d3 100644
44802 --- a/drivers/hwmon/coretemp.c
44803 +++ b/drivers/hwmon/coretemp.c
44804 @@ -783,7 +783,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
44805 return NOTIFY_OK;
44806 }
44807
44808 -static struct notifier_block coretemp_cpu_notifier __refdata = {
44809 +static struct notifier_block coretemp_cpu_notifier = {
44810 .notifier_call = coretemp_cpu_callback,
44811 };
44812
44813 diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
44814 index c848789..e9e9217 100644
44815 --- a/drivers/hwmon/dell-smm-hwmon.c
44816 +++ b/drivers/hwmon/dell-smm-hwmon.c
44817 @@ -819,7 +819,7 @@ static const struct i8k_config_data i8k_config_data[] = {
44818 },
44819 };
44820
44821 -static struct dmi_system_id i8k_dmi_table[] __initdata = {
44822 +static const struct dmi_system_id i8k_dmi_table[] __initconst = {
44823 {
44824 .ident = "Dell Inspiron",
44825 .matches = {
44826 diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
44827 index 7a8a6fb..015c1fd 100644
44828 --- a/drivers/hwmon/ibmaem.c
44829 +++ b/drivers/hwmon/ibmaem.c
44830 @@ -924,7 +924,7 @@ static int aem_register_sensors(struct aem_data *data,
44831 struct aem_rw_sensor_template *rw)
44832 {
44833 struct device *dev = &data->pdev->dev;
44834 - struct sensor_device_attribute *sensors = data->sensors;
44835 + sensor_device_attribute_no_const *sensors = data->sensors;
44836 int err;
44837
44838 /* Set up read-only sensors */
44839 diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c
44840 index 17ae2eb..21b71dd 100644
44841 --- a/drivers/hwmon/iio_hwmon.c
44842 +++ b/drivers/hwmon/iio_hwmon.c
44843 @@ -61,7 +61,7 @@ static int iio_hwmon_probe(struct platform_device *pdev)
44844 {
44845 struct device *dev = &pdev->dev;
44846 struct iio_hwmon_state *st;
44847 - struct sensor_device_attribute *a;
44848 + sensor_device_attribute_no_const *a;
44849 int ret, i;
44850 int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1;
44851 enum iio_chan_type type;
44852 diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
44853 index 37f0170..414ec2c 100644
44854 --- a/drivers/hwmon/nct6683.c
44855 +++ b/drivers/hwmon/nct6683.c
44856 @@ -397,11 +397,11 @@ static struct attribute_group *
44857 nct6683_create_attr_group(struct device *dev, struct sensor_template_group *tg,
44858 int repeat)
44859 {
44860 - struct sensor_device_attribute_2 *a2;
44861 - struct sensor_device_attribute *a;
44862 + sensor_device_attribute_2_no_const *a2;
44863 + sensor_device_attribute_no_const *a;
44864 struct sensor_device_template **t;
44865 struct sensor_device_attr_u *su;
44866 - struct attribute_group *group;
44867 + attribute_group_no_const *group;
44868 struct attribute **attrs;
44869 int i, j, count;
44870
44871 diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
44872 index 2aaedbe..e944f14 100644
44873 --- a/drivers/hwmon/nct6775.c
44874 +++ b/drivers/hwmon/nct6775.c
44875 @@ -957,10 +957,10 @@ static struct attribute_group *
44876 nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
44877 int repeat)
44878 {
44879 - struct attribute_group *group;
44880 + attribute_group_no_const *group;
44881 struct sensor_device_attr_u *su;
44882 - struct sensor_device_attribute *a;
44883 - struct sensor_device_attribute_2 *a2;
44884 + sensor_device_attribute_no_const *a;
44885 + sensor_device_attribute_2_no_const *a2;
44886 struct attribute **attrs;
44887 struct sensor_device_template **t;
44888 int i, count;
44889 diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
44890 index f2e47c7..45d7941 100644
44891 --- a/drivers/hwmon/pmbus/pmbus_core.c
44892 +++ b/drivers/hwmon/pmbus/pmbus_core.c
44893 @@ -816,7 +816,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
44894 return 0;
44895 }
44896
44897 -static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
44898 +static void pmbus_dev_attr_init(device_attribute_no_const *dev_attr,
44899 const char *name,
44900 umode_t mode,
44901 ssize_t (*show)(struct device *dev,
44902 @@ -833,7 +833,7 @@ static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
44903 dev_attr->store = store;
44904 }
44905
44906 -static void pmbus_attr_init(struct sensor_device_attribute *a,
44907 +static void pmbus_attr_init(sensor_device_attribute_no_const *a,
44908 const char *name,
44909 umode_t mode,
44910 ssize_t (*show)(struct device *dev,
44911 @@ -855,7 +855,7 @@ static int pmbus_add_boolean(struct pmbus_data *data,
44912 u16 reg, u8 mask)
44913 {
44914 struct pmbus_boolean *boolean;
44915 - struct sensor_device_attribute *a;
44916 + sensor_device_attribute_no_const *a;
44917
44918 boolean = devm_kzalloc(data->dev, sizeof(*boolean), GFP_KERNEL);
44919 if (!boolean)
44920 @@ -880,7 +880,7 @@ static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data,
44921 bool update, bool readonly)
44922 {
44923 struct pmbus_sensor *sensor;
44924 - struct device_attribute *a;
44925 + device_attribute_no_const *a;
44926
44927 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL);
44928 if (!sensor)
44929 @@ -911,7 +911,7 @@ static int pmbus_add_label(struct pmbus_data *data,
44930 const char *lstring, int index)
44931 {
44932 struct pmbus_label *label;
44933 - struct device_attribute *a;
44934 + device_attribute_no_const *a;
44935
44936 label = devm_kzalloc(data->dev, sizeof(*label), GFP_KERNEL);
44937 if (!label)
44938 diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
44939 index 497a7f8..3fffedf 100644
44940 --- a/drivers/hwmon/sht15.c
44941 +++ b/drivers/hwmon/sht15.c
44942 @@ -169,7 +169,7 @@ struct sht15_data {
44943 int supply_uv;
44944 bool supply_uv_valid;
44945 struct work_struct update_supply_work;
44946 - atomic_t interrupt_handled;
44947 + atomic_unchecked_t interrupt_handled;
44948 };
44949
44950 /**
44951 @@ -542,13 +542,13 @@ static int sht15_measurement(struct sht15_data *data,
44952 ret = gpio_direction_input(data->pdata->gpio_data);
44953 if (ret)
44954 return ret;
44955 - atomic_set(&data->interrupt_handled, 0);
44956 + atomic_set_unchecked(&data->interrupt_handled, 0);
44957
44958 enable_irq(gpio_to_irq(data->pdata->gpio_data));
44959 if (gpio_get_value(data->pdata->gpio_data) == 0) {
44960 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));
44961 /* Only relevant if the interrupt hasn't occurred. */
44962 - if (!atomic_read(&data->interrupt_handled))
44963 + if (!atomic_read_unchecked(&data->interrupt_handled))
44964 schedule_work(&data->read_work);
44965 }
44966 ret = wait_event_timeout(data->wait_queue,
44967 @@ -820,7 +820,7 @@ static irqreturn_t sht15_interrupt_fired(int irq, void *d)
44968
44969 /* First disable the interrupt */
44970 disable_irq_nosync(irq);
44971 - atomic_inc(&data->interrupt_handled);
44972 + atomic_inc_unchecked(&data->interrupt_handled);
44973 /* Then schedule a reading work struct */
44974 if (data->state != SHT15_READING_NOTHING)
44975 schedule_work(&data->read_work);
44976 @@ -842,11 +842,11 @@ static void sht15_bh_read_data(struct work_struct *work_s)
44977 * If not, then start the interrupt again - care here as could
44978 * have gone low in meantime so verify it hasn't!
44979 */
44980 - atomic_set(&data->interrupt_handled, 0);
44981 + atomic_set_unchecked(&data->interrupt_handled, 0);
44982 enable_irq(gpio_to_irq(data->pdata->gpio_data));
44983 /* If still not occurred or another handler was scheduled */
44984 if (gpio_get_value(data->pdata->gpio_data)
44985 - || atomic_read(&data->interrupt_handled))
44986 + || atomic_read_unchecked(&data->interrupt_handled))
44987 return;
44988 }
44989
44990 diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c
44991 index ac91c07..8e69663 100644
44992 --- a/drivers/hwmon/via-cputemp.c
44993 +++ b/drivers/hwmon/via-cputemp.c
44994 @@ -295,7 +295,7 @@ static int via_cputemp_cpu_callback(struct notifier_block *nfb,
44995 return NOTIFY_OK;
44996 }
44997
44998 -static struct notifier_block via_cputemp_cpu_notifier __refdata = {
44999 +static struct notifier_block via_cputemp_cpu_notifier = {
45000 .notifier_call = via_cputemp_cpu_callback,
45001 };
45002
45003 diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
45004 index 65e3240..e6c511d 100644
45005 --- a/drivers/i2c/busses/i2c-amd756-s4882.c
45006 +++ b/drivers/i2c/busses/i2c-amd756-s4882.c
45007 @@ -39,7 +39,7 @@
45008 extern struct i2c_adapter amd756_smbus;
45009
45010 static struct i2c_adapter *s4882_adapter;
45011 -static struct i2c_algorithm *s4882_algo;
45012 +static i2c_algorithm_no_const *s4882_algo;
45013
45014 /* Wrapper access functions for multiplexed SMBus */
45015 static DEFINE_MUTEX(amd756_lock);
45016 diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
45017 index 88eda09..cf40434 100644
45018 --- a/drivers/i2c/busses/i2c-nforce2-s4985.c
45019 +++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
45020 @@ -37,7 +37,7 @@
45021 extern struct i2c_adapter *nforce2_smbus;
45022
45023 static struct i2c_adapter *s4985_adapter;
45024 -static struct i2c_algorithm *s4985_algo;
45025 +static i2c_algorithm_no_const *s4985_algo;
45026
45027 /* Wrapper access functions for multiplexed SMBus */
45028 static DEFINE_MUTEX(nforce2_lock);
45029 diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
45030 index 71c7a39..71dd3e0 100644
45031 --- a/drivers/i2c/i2c-dev.c
45032 +++ b/drivers/i2c/i2c-dev.c
45033 @@ -272,7 +272,7 @@ static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
45034 break;
45035 }
45036
45037 - data_ptrs[i] = (u8 __user *)rdwr_pa[i].buf;
45038 + data_ptrs[i] = (u8 __force_user *)rdwr_pa[i].buf;
45039 rdwr_pa[i].buf = memdup_user(data_ptrs[i], rdwr_pa[i].len);
45040 if (IS_ERR(rdwr_pa[i].buf)) {
45041 res = PTR_ERR(rdwr_pa[i].buf);
45042 diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
45043 index 64a6b82..a524354 100644
45044 --- a/drivers/ide/ide-cd.c
45045 +++ b/drivers/ide/ide-cd.c
45046 @@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
45047 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
45048 if ((unsigned long)buf & alignment
45049 || blk_rq_bytes(rq) & q->dma_pad_mask
45050 - || object_is_on_stack(buf))
45051 + || object_starts_on_stack(buf))
45052 drive->dma = 0;
45053 }
45054 }
45055 diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
45056 index 56b9708..980b63b 100644
45057 --- a/drivers/ide/ide-disk.c
45058 +++ b/drivers/ide/ide-disk.c
45059 @@ -178,7 +178,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
45060 * 1073741822 == 549756 MB or 48bit addressing fake drive
45061 */
45062
45063 -static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
45064 +static ide_startstop_t __intentional_overflow(-1) ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
45065 sector_t block)
45066 {
45067 ide_hwif_t *hwif = drive->hwif;
45068 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
45069 index 3524b0d..8c14520 100644
45070 --- a/drivers/iio/industrialio-core.c
45071 +++ b/drivers/iio/industrialio-core.c
45072 @@ -576,7 +576,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
45073 }
45074
45075 static
45076 -int __iio_device_attr_init(struct device_attribute *dev_attr,
45077 +int __iio_device_attr_init(device_attribute_no_const *dev_attr,
45078 const char *postfix,
45079 struct iio_chan_spec const *chan,
45080 ssize_t (*readfunc)(struct device *dev,
45081 diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
45082 index b13936d..65322b2 100644
45083 --- a/drivers/iio/magnetometer/ak8975.c
45084 +++ b/drivers/iio/magnetometer/ak8975.c
45085 @@ -776,7 +776,7 @@ static int ak8975_probe(struct i2c_client *client,
45086 name = id->name;
45087 } else if (ACPI_HANDLE(&client->dev))
45088 name = ak8975_match_acpi_device(&client->dev, &chipset);
45089 - else
45090 + if (!name)
45091 return -ENOSYS;
45092
45093 if (chipset >= AK_MAX_TYPE) {
45094 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
45095 index 8be7352..02f9653 100644
45096 --- a/drivers/infiniband/core/cm.c
45097 +++ b/drivers/infiniband/core/cm.c
45098 @@ -115,7 +115,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
45099
45100 struct cm_counter_group {
45101 struct kobject obj;
45102 - atomic_long_t counter[CM_ATTR_COUNT];
45103 + atomic_long_unchecked_t counter[CM_ATTR_COUNT];
45104 };
45105
45106 struct cm_counter_attribute {
45107 @@ -1416,7 +1416,7 @@ static void cm_dup_req_handler(struct cm_work *work,
45108 struct ib_mad_send_buf *msg = NULL;
45109 int ret;
45110
45111 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45112 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45113 counter[CM_REQ_COUNTER]);
45114
45115 /* Quick state check to discard duplicate REQs. */
45116 @@ -1803,7 +1803,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
45117 if (!cm_id_priv)
45118 return;
45119
45120 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45121 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45122 counter[CM_REP_COUNTER]);
45123 ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
45124 if (ret)
45125 @@ -1970,7 +1970,7 @@ static int cm_rtu_handler(struct cm_work *work)
45126 if (cm_id_priv->id.state != IB_CM_REP_SENT &&
45127 cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
45128 spin_unlock_irq(&cm_id_priv->lock);
45129 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45130 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45131 counter[CM_RTU_COUNTER]);
45132 goto out;
45133 }
45134 @@ -2153,7 +2153,7 @@ static int cm_dreq_handler(struct cm_work *work)
45135 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
45136 dreq_msg->local_comm_id);
45137 if (!cm_id_priv) {
45138 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45139 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45140 counter[CM_DREQ_COUNTER]);
45141 cm_issue_drep(work->port, work->mad_recv_wc);
45142 return -EINVAL;
45143 @@ -2178,7 +2178,7 @@ static int cm_dreq_handler(struct cm_work *work)
45144 case IB_CM_MRA_REP_RCVD:
45145 break;
45146 case IB_CM_TIMEWAIT:
45147 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45148 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45149 counter[CM_DREQ_COUNTER]);
45150 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
45151 goto unlock;
45152 @@ -2192,7 +2192,7 @@ static int cm_dreq_handler(struct cm_work *work)
45153 cm_free_msg(msg);
45154 goto deref;
45155 case IB_CM_DREQ_RCVD:
45156 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45157 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45158 counter[CM_DREQ_COUNTER]);
45159 goto unlock;
45160 default:
45161 @@ -2559,7 +2559,7 @@ static int cm_mra_handler(struct cm_work *work)
45162 ib_modify_mad(cm_id_priv->av.port->mad_agent,
45163 cm_id_priv->msg, timeout)) {
45164 if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
45165 - atomic_long_inc(&work->port->
45166 + atomic_long_inc_unchecked(&work->port->
45167 counter_group[CM_RECV_DUPLICATES].
45168 counter[CM_MRA_COUNTER]);
45169 goto out;
45170 @@ -2568,7 +2568,7 @@ static int cm_mra_handler(struct cm_work *work)
45171 break;
45172 case IB_CM_MRA_REQ_RCVD:
45173 case IB_CM_MRA_REP_RCVD:
45174 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45175 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45176 counter[CM_MRA_COUNTER]);
45177 /* fall through */
45178 default:
45179 @@ -2730,7 +2730,7 @@ static int cm_lap_handler(struct cm_work *work)
45180 case IB_CM_LAP_IDLE:
45181 break;
45182 case IB_CM_MRA_LAP_SENT:
45183 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45184 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45185 counter[CM_LAP_COUNTER]);
45186 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
45187 goto unlock;
45188 @@ -2746,7 +2746,7 @@ static int cm_lap_handler(struct cm_work *work)
45189 cm_free_msg(msg);
45190 goto deref;
45191 case IB_CM_LAP_RCVD:
45192 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45193 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45194 counter[CM_LAP_COUNTER]);
45195 goto unlock;
45196 default:
45197 @@ -3030,7 +3030,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
45198 cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
45199 if (cur_cm_id_priv) {
45200 spin_unlock_irq(&cm.lock);
45201 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45202 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45203 counter[CM_SIDR_REQ_COUNTER]);
45204 goto out; /* Duplicate message. */
45205 }
45206 @@ -3245,10 +3245,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
45207 if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
45208 msg->retries = 1;
45209
45210 - atomic_long_add(1 + msg->retries,
45211 + atomic_long_add_unchecked(1 + msg->retries,
45212 &port->counter_group[CM_XMIT].counter[attr_index]);
45213 if (msg->retries)
45214 - atomic_long_add(msg->retries,
45215 + atomic_long_add_unchecked(msg->retries,
45216 &port->counter_group[CM_XMIT_RETRIES].
45217 counter[attr_index]);
45218
45219 @@ -3474,7 +3474,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
45220 }
45221
45222 attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
45223 - atomic_long_inc(&port->counter_group[CM_RECV].
45224 + atomic_long_inc_unchecked(&port->counter_group[CM_RECV].
45225 counter[attr_id - CM_ATTR_ID_OFFSET]);
45226
45227 work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
45228 @@ -3717,7 +3717,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
45229 cm_attr = container_of(attr, struct cm_counter_attribute, attr);
45230
45231 return sprintf(buf, "%ld\n",
45232 - atomic_long_read(&group->counter[cm_attr->index]));
45233 + atomic_long_read_unchecked(&group->counter[cm_attr->index]));
45234 }
45235
45236 static const struct sysfs_ops cm_counter_ops = {
45237 diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
45238 index 9f5ad7c..588cd84 100644
45239 --- a/drivers/infiniband/core/fmr_pool.c
45240 +++ b/drivers/infiniband/core/fmr_pool.c
45241 @@ -98,8 +98,8 @@ struct ib_fmr_pool {
45242
45243 struct task_struct *thread;
45244
45245 - atomic_t req_ser;
45246 - atomic_t flush_ser;
45247 + atomic_unchecked_t req_ser;
45248 + atomic_unchecked_t flush_ser;
45249
45250 wait_queue_head_t force_wait;
45251 };
45252 @@ -179,10 +179,10 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45253 struct ib_fmr_pool *pool = pool_ptr;
45254
45255 do {
45256 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) < 0) {
45257 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) < 0) {
45258 ib_fmr_batch_release(pool);
45259
45260 - atomic_inc(&pool->flush_ser);
45261 + atomic_inc_unchecked(&pool->flush_ser);
45262 wake_up_interruptible(&pool->force_wait);
45263
45264 if (pool->flush_function)
45265 @@ -190,7 +190,7 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45266 }
45267
45268 set_current_state(TASK_INTERRUPTIBLE);
45269 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) >= 0 &&
45270 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) >= 0 &&
45271 !kthread_should_stop())
45272 schedule();
45273 __set_current_state(TASK_RUNNING);
45274 @@ -282,8 +282,8 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
45275 pool->dirty_watermark = params->dirty_watermark;
45276 pool->dirty_len = 0;
45277 spin_lock_init(&pool->pool_lock);
45278 - atomic_set(&pool->req_ser, 0);
45279 - atomic_set(&pool->flush_ser, 0);
45280 + atomic_set_unchecked(&pool->req_ser, 0);
45281 + atomic_set_unchecked(&pool->flush_ser, 0);
45282 init_waitqueue_head(&pool->force_wait);
45283
45284 pool->thread = kthread_run(ib_fmr_cleanup_thread,
45285 @@ -411,11 +411,11 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
45286 }
45287 spin_unlock_irq(&pool->pool_lock);
45288
45289 - serial = atomic_inc_return(&pool->req_ser);
45290 + serial = atomic_inc_return_unchecked(&pool->req_ser);
45291 wake_up_process(pool->thread);
45292
45293 if (wait_event_interruptible(pool->force_wait,
45294 - atomic_read(&pool->flush_ser) - serial >= 0))
45295 + atomic_read_unchecked(&pool->flush_ser) - serial >= 0))
45296 return -EINTR;
45297
45298 return 0;
45299 @@ -525,7 +525,7 @@ int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr)
45300 } else {
45301 list_add_tail(&fmr->list, &pool->dirty_list);
45302 if (++pool->dirty_len >= pool->dirty_watermark) {
45303 - atomic_inc(&pool->req_ser);
45304 + atomic_inc_unchecked(&pool->req_ser);
45305 wake_up_process(pool->thread);
45306 }
45307 }
45308 diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
45309 index a6ca83b..bd3a726 100644
45310 --- a/drivers/infiniband/core/uverbs_cmd.c
45311 +++ b/drivers/infiniband/core/uverbs_cmd.c
45312 @@ -951,6 +951,9 @@ ssize_t ib_uverbs_reg_mr(struct ib_uverbs_file *file,
45313 if (copy_from_user(&cmd, buf, sizeof cmd))
45314 return -EFAULT;
45315
45316 + if (!access_ok_noprefault(VERIFY_READ, cmd.start, cmd.length))
45317 + return -EFAULT;
45318 +
45319 INIT_UDATA(&udata, buf + sizeof cmd,
45320 (unsigned long) cmd.response + sizeof resp,
45321 in_len - sizeof cmd, out_len - sizeof resp);
45322 diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
45323 index cff815b..75576dd 100644
45324 --- a/drivers/infiniband/hw/cxgb4/mem.c
45325 +++ b/drivers/infiniband/hw/cxgb4/mem.c
45326 @@ -256,7 +256,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45327 int err;
45328 struct fw_ri_tpte tpt;
45329 u32 stag_idx;
45330 - static atomic_t key;
45331 + static atomic_unchecked_t key;
45332
45333 if (c4iw_fatal_error(rdev))
45334 return -EIO;
45335 @@ -277,7 +277,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45336 if (rdev->stats.stag.cur > rdev->stats.stag.max)
45337 rdev->stats.stag.max = rdev->stats.stag.cur;
45338 mutex_unlock(&rdev->stats.lock);
45339 - *stag = (stag_idx << 8) | (atomic_inc_return(&key) & 0xff);
45340 + *stag = (stag_idx << 8) | (atomic_inc_return_unchecked(&key) & 0xff);
45341 }
45342 PDBG("%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x\n",
45343 __func__, stag_state, type, pdid, stag_idx);
45344 diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
45345 index 79b3dbc..96e5fcc 100644
45346 --- a/drivers/infiniband/hw/ipath/ipath_rc.c
45347 +++ b/drivers/infiniband/hw/ipath/ipath_rc.c
45348 @@ -1868,7 +1868,7 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
45349 struct ib_atomic_eth *ateth;
45350 struct ipath_ack_entry *e;
45351 u64 vaddr;
45352 - atomic64_t *maddr;
45353 + atomic64_unchecked_t *maddr;
45354 u64 sdata;
45355 u32 rkey;
45356 u8 next;
45357 @@ -1903,11 +1903,11 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
45358 IB_ACCESS_REMOTE_ATOMIC)))
45359 goto nack_acc_unlck;
45360 /* Perform atomic OP and save result. */
45361 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
45362 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
45363 sdata = be64_to_cpu(ateth->swap_data);
45364 e = &qp->s_ack_queue[qp->r_head_ack_queue];
45365 e->atomic_data = (opcode == OP(FETCH_ADD)) ?
45366 - (u64) atomic64_add_return(sdata, maddr) - sdata :
45367 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
45368 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
45369 be64_to_cpu(ateth->compare_data),
45370 sdata);
45371 diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c
45372 index 1f95bba..9530f87 100644
45373 --- a/drivers/infiniband/hw/ipath/ipath_ruc.c
45374 +++ b/drivers/infiniband/hw/ipath/ipath_ruc.c
45375 @@ -266,7 +266,7 @@ static void ipath_ruc_loopback(struct ipath_qp *sqp)
45376 unsigned long flags;
45377 struct ib_wc wc;
45378 u64 sdata;
45379 - atomic64_t *maddr;
45380 + atomic64_unchecked_t *maddr;
45381 enum ib_wc_status send_status;
45382
45383 /*
45384 @@ -382,11 +382,11 @@ again:
45385 IB_ACCESS_REMOTE_ATOMIC)))
45386 goto acc_err;
45387 /* Perform atomic OP and save result. */
45388 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
45389 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
45390 sdata = wqe->wr.wr.atomic.compare_add;
45391 *(u64 *) sqp->s_sge.sge.vaddr =
45392 (wqe->wr.opcode == IB_WR_ATOMIC_FETCH_AND_ADD) ?
45393 - (u64) atomic64_add_return(sdata, maddr) - sdata :
45394 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
45395 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
45396 sdata, wqe->wr.wr.atomic.swap);
45397 goto send_comp;
45398 diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
45399 index 68b3dfa..3e0c511 100644
45400 --- a/drivers/infiniband/hw/mlx4/mad.c
45401 +++ b/drivers/infiniband/hw/mlx4/mad.c
45402 @@ -98,7 +98,7 @@ __be64 mlx4_ib_gen_node_guid(void)
45403
45404 __be64 mlx4_ib_get_new_demux_tid(struct mlx4_ib_demux_ctx *ctx)
45405 {
45406 - return cpu_to_be64(atomic_inc_return(&ctx->tid)) |
45407 + return cpu_to_be64(atomic_inc_return_unchecked(&ctx->tid)) |
45408 cpu_to_be64(0xff00000000000000LL);
45409 }
45410
45411 diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
45412 index a0559a8..86a2320 100644
45413 --- a/drivers/infiniband/hw/mlx4/mcg.c
45414 +++ b/drivers/infiniband/hw/mlx4/mcg.c
45415 @@ -1042,7 +1042,7 @@ int mlx4_ib_mcg_port_init(struct mlx4_ib_demux_ctx *ctx)
45416 {
45417 char name[20];
45418
45419 - atomic_set(&ctx->tid, 0);
45420 + atomic_set_unchecked(&ctx->tid, 0);
45421 sprintf(name, "mlx4_ib_mcg%d", ctx->port);
45422 ctx->mcg_wq = create_singlethread_workqueue(name);
45423 if (!ctx->mcg_wq)
45424 diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45425 index 334387f..e640d74 100644
45426 --- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
45427 +++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45428 @@ -436,7 +436,7 @@ struct mlx4_ib_demux_ctx {
45429 struct list_head mcg_mgid0_list;
45430 struct workqueue_struct *mcg_wq;
45431 struct mlx4_ib_demux_pv_ctx **tun;
45432 - atomic_t tid;
45433 + atomic_unchecked_t tid;
45434 int flushing; /* flushing the work queue */
45435 };
45436
45437 diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
45438 index c7f49bb..6a021bb 100644
45439 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c
45440 +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
45441 @@ -772,7 +772,7 @@ static void mthca_setup_cmd_doorbells(struct mthca_dev *dev, u64 base)
45442 mthca_dbg(dev, "Mapped doorbell page for posting FW commands\n");
45443 }
45444
45445 -int mthca_QUERY_FW(struct mthca_dev *dev)
45446 +int __intentional_overflow(-1) mthca_QUERY_FW(struct mthca_dev *dev)
45447 {
45448 struct mthca_mailbox *mailbox;
45449 u32 *outbox;
45450 @@ -1612,7 +1612,7 @@ int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45451 CMD_TIME_CLASS_B);
45452 }
45453
45454 -int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45455 +int __intentional_overflow(-1) mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45456 int num_mtt)
45457 {
45458 return mthca_cmd(dev, mailbox->dma, num_mtt, 0, CMD_WRITE_MTT,
45459 @@ -1634,7 +1634,7 @@ int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap,
45460 0, CMD_MAP_EQ, CMD_TIME_CLASS_B);
45461 }
45462
45463 -int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45464 +int __intentional_overflow(-1) mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45465 int eq_num)
45466 {
45467 return mthca_cmd(dev, mailbox->dma, eq_num, 0, CMD_SW2HW_EQ,
45468 @@ -1857,7 +1857,7 @@ int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn)
45469 CMD_TIME_CLASS_B);
45470 }
45471
45472 -int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45473 +int __intentional_overflow(-1) mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45474 int port, const struct ib_wc *in_wc, const struct ib_grh *in_grh,
45475 const void *in_mad, void *response_mad)
45476 {
45477 diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
45478 index ded76c1..0cf0a08 100644
45479 --- a/drivers/infiniband/hw/mthca/mthca_main.c
45480 +++ b/drivers/infiniband/hw/mthca/mthca_main.c
45481 @@ -692,7 +692,7 @@ err_close:
45482 return err;
45483 }
45484
45485 -static int mthca_setup_hca(struct mthca_dev *dev)
45486 +static int __intentional_overflow(-1) mthca_setup_hca(struct mthca_dev *dev)
45487 {
45488 int err;
45489
45490 diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
45491 index ed9a989..6aa5dc2 100644
45492 --- a/drivers/infiniband/hw/mthca/mthca_mr.c
45493 +++ b/drivers/infiniband/hw/mthca/mthca_mr.c
45494 @@ -81,7 +81,7 @@ struct mthca_mpt_entry {
45495 * through the bitmaps)
45496 */
45497
45498 -static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45499 +static u32 __intentional_overflow(-1) mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45500 {
45501 int o;
45502 int m;
45503 @@ -426,7 +426,7 @@ static inline u32 adjust_key(struct mthca_dev *dev, u32 key)
45504 return key;
45505 }
45506
45507 -int mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45508 +int __intentional_overflow(-1) mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45509 u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
45510 {
45511 struct mthca_mailbox *mailbox;
45512 @@ -516,7 +516,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd,
45513 return mthca_mr_alloc(dev, pd, 12, 0, ~0ULL, access, mr);
45514 }
45515
45516 -int mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45517 +int __intentional_overflow(-1) mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45518 u64 *buffer_list, int buffer_size_shift,
45519 int list_len, u64 iova, u64 total_size,
45520 u32 access, struct mthca_mr *mr)
45521 diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
45522 index 93ae51d..84c4a44 100644
45523 --- a/drivers/infiniband/hw/mthca/mthca_provider.c
45524 +++ b/drivers/infiniband/hw/mthca/mthca_provider.c
45525 @@ -771,7 +771,7 @@ unlock:
45526 return 0;
45527 }
45528
45529 -static int mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45530 +static int __intentional_overflow(-1) mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45531 {
45532 struct mthca_dev *dev = to_mdev(ibcq->device);
45533 struct mthca_cq *cq = to_mcq(ibcq);
45534 diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
45535 index 9f9d5c5..3c19aac 100644
45536 --- a/drivers/infiniband/hw/nes/nes.c
45537 +++ b/drivers/infiniband/hw/nes/nes.c
45538 @@ -97,7 +97,7 @@ MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
45539 LIST_HEAD(nes_adapter_list);
45540 static LIST_HEAD(nes_dev_list);
45541
45542 -atomic_t qps_destroyed;
45543 +atomic_unchecked_t qps_destroyed;
45544
45545 static unsigned int ee_flsh_adapter;
45546 static unsigned int sysfs_nonidx_addr;
45547 @@ -279,7 +279,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
45548 struct nes_qp *nesqp = cqp_request->cqp_callback_pointer;
45549 struct nes_adapter *nesadapter = nesdev->nesadapter;
45550
45551 - atomic_inc(&qps_destroyed);
45552 + atomic_inc_unchecked(&qps_destroyed);
45553
45554 /* Free the control structures */
45555
45556 diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
45557 index bd9d132..70d84f4 100644
45558 --- a/drivers/infiniband/hw/nes/nes.h
45559 +++ b/drivers/infiniband/hw/nes/nes.h
45560 @@ -180,17 +180,17 @@ extern unsigned int nes_debug_level;
45561 extern unsigned int wqm_quanta;
45562 extern struct list_head nes_adapter_list;
45563
45564 -extern atomic_t cm_connects;
45565 -extern atomic_t cm_accepts;
45566 -extern atomic_t cm_disconnects;
45567 -extern atomic_t cm_closes;
45568 -extern atomic_t cm_connecteds;
45569 -extern atomic_t cm_connect_reqs;
45570 -extern atomic_t cm_rejects;
45571 -extern atomic_t mod_qp_timouts;
45572 -extern atomic_t qps_created;
45573 -extern atomic_t qps_destroyed;
45574 -extern atomic_t sw_qps_destroyed;
45575 +extern atomic_unchecked_t cm_connects;
45576 +extern atomic_unchecked_t cm_accepts;
45577 +extern atomic_unchecked_t cm_disconnects;
45578 +extern atomic_unchecked_t cm_closes;
45579 +extern atomic_unchecked_t cm_connecteds;
45580 +extern atomic_unchecked_t cm_connect_reqs;
45581 +extern atomic_unchecked_t cm_rejects;
45582 +extern atomic_unchecked_t mod_qp_timouts;
45583 +extern atomic_unchecked_t qps_created;
45584 +extern atomic_unchecked_t qps_destroyed;
45585 +extern atomic_unchecked_t sw_qps_destroyed;
45586 extern u32 mh_detected;
45587 extern u32 mh_pauses_sent;
45588 extern u32 cm_packets_sent;
45589 @@ -199,16 +199,16 @@ extern u32 cm_packets_created;
45590 extern u32 cm_packets_received;
45591 extern u32 cm_packets_dropped;
45592 extern u32 cm_packets_retrans;
45593 -extern atomic_t cm_listens_created;
45594 -extern atomic_t cm_listens_destroyed;
45595 +extern atomic_unchecked_t cm_listens_created;
45596 +extern atomic_unchecked_t cm_listens_destroyed;
45597 extern u32 cm_backlog_drops;
45598 -extern atomic_t cm_loopbacks;
45599 -extern atomic_t cm_nodes_created;
45600 -extern atomic_t cm_nodes_destroyed;
45601 -extern atomic_t cm_accel_dropped_pkts;
45602 -extern atomic_t cm_resets_recvd;
45603 -extern atomic_t pau_qps_created;
45604 -extern atomic_t pau_qps_destroyed;
45605 +extern atomic_unchecked_t cm_loopbacks;
45606 +extern atomic_unchecked_t cm_nodes_created;
45607 +extern atomic_unchecked_t cm_nodes_destroyed;
45608 +extern atomic_unchecked_t cm_accel_dropped_pkts;
45609 +extern atomic_unchecked_t cm_resets_recvd;
45610 +extern atomic_unchecked_t pau_qps_created;
45611 +extern atomic_unchecked_t pau_qps_destroyed;
45612
45613 extern u32 int_mod_timer_init;
45614 extern u32 int_mod_cq_depth_256;
45615 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
45616 index 8a3ad17..e1ed4bc 100644
45617 --- a/drivers/infiniband/hw/nes/nes_cm.c
45618 +++ b/drivers/infiniband/hw/nes/nes_cm.c
45619 @@ -69,14 +69,14 @@ u32 cm_packets_dropped;
45620 u32 cm_packets_retrans;
45621 u32 cm_packets_created;
45622 u32 cm_packets_received;
45623 -atomic_t cm_listens_created;
45624 -atomic_t cm_listens_destroyed;
45625 +atomic_unchecked_t cm_listens_created;
45626 +atomic_unchecked_t cm_listens_destroyed;
45627 u32 cm_backlog_drops;
45628 -atomic_t cm_loopbacks;
45629 -atomic_t cm_nodes_created;
45630 -atomic_t cm_nodes_destroyed;
45631 -atomic_t cm_accel_dropped_pkts;
45632 -atomic_t cm_resets_recvd;
45633 +atomic_unchecked_t cm_loopbacks;
45634 +atomic_unchecked_t cm_nodes_created;
45635 +atomic_unchecked_t cm_nodes_destroyed;
45636 +atomic_unchecked_t cm_accel_dropped_pkts;
45637 +atomic_unchecked_t cm_resets_recvd;
45638
45639 static inline int mini_cm_accelerated(struct nes_cm_core *, struct nes_cm_node *);
45640 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *, struct nes_vnic *, struct nes_cm_info *);
45641 @@ -135,28 +135,28 @@ static void record_ird_ord(struct nes_cm_node *, u16, u16);
45642 /* instance of function pointers for client API */
45643 /* set address of this instance to cm_core->cm_ops at cm_core alloc */
45644 static struct nes_cm_ops nes_cm_api = {
45645 - mini_cm_accelerated,
45646 - mini_cm_listen,
45647 - mini_cm_del_listen,
45648 - mini_cm_connect,
45649 - mini_cm_close,
45650 - mini_cm_accept,
45651 - mini_cm_reject,
45652 - mini_cm_recv_pkt,
45653 - mini_cm_dealloc_core,
45654 - mini_cm_get,
45655 - mini_cm_set
45656 + .accelerated = mini_cm_accelerated,
45657 + .listen = mini_cm_listen,
45658 + .stop_listener = mini_cm_del_listen,
45659 + .connect = mini_cm_connect,
45660 + .close = mini_cm_close,
45661 + .accept = mini_cm_accept,
45662 + .reject = mini_cm_reject,
45663 + .recv_pkt = mini_cm_recv_pkt,
45664 + .destroy_cm_core = mini_cm_dealloc_core,
45665 + .get = mini_cm_get,
45666 + .set = mini_cm_set
45667 };
45668
45669 static struct nes_cm_core *g_cm_core;
45670
45671 -atomic_t cm_connects;
45672 -atomic_t cm_accepts;
45673 -atomic_t cm_disconnects;
45674 -atomic_t cm_closes;
45675 -atomic_t cm_connecteds;
45676 -atomic_t cm_connect_reqs;
45677 -atomic_t cm_rejects;
45678 +atomic_unchecked_t cm_connects;
45679 +atomic_unchecked_t cm_accepts;
45680 +atomic_unchecked_t cm_disconnects;
45681 +atomic_unchecked_t cm_closes;
45682 +atomic_unchecked_t cm_connecteds;
45683 +atomic_unchecked_t cm_connect_reqs;
45684 +atomic_unchecked_t cm_rejects;
45685
45686 int nes_add_ref_cm_node(struct nes_cm_node *cm_node)
45687 {
45688 @@ -1461,7 +1461,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
45689 kfree(listener);
45690 listener = NULL;
45691 ret = 0;
45692 - atomic_inc(&cm_listens_destroyed);
45693 + atomic_inc_unchecked(&cm_listens_destroyed);
45694 } else {
45695 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
45696 }
45697 @@ -1670,7 +1670,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
45698 cm_node->rem_mac);
45699
45700 add_hte_node(cm_core, cm_node);
45701 - atomic_inc(&cm_nodes_created);
45702 + atomic_inc_unchecked(&cm_nodes_created);
45703
45704 return cm_node;
45705 }
45706 @@ -1731,7 +1731,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
45707 }
45708
45709 atomic_dec(&cm_core->node_cnt);
45710 - atomic_inc(&cm_nodes_destroyed);
45711 + atomic_inc_unchecked(&cm_nodes_destroyed);
45712 nesqp = cm_node->nesqp;
45713 if (nesqp) {
45714 nesqp->cm_node = NULL;
45715 @@ -1795,7 +1795,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
45716
45717 static void drop_packet(struct sk_buff *skb)
45718 {
45719 - atomic_inc(&cm_accel_dropped_pkts);
45720 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45721 dev_kfree_skb_any(skb);
45722 }
45723
45724 @@ -1858,7 +1858,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
45725 {
45726
45727 int reset = 0; /* whether to send reset in case of err.. */
45728 - atomic_inc(&cm_resets_recvd);
45729 + atomic_inc_unchecked(&cm_resets_recvd);
45730 nes_debug(NES_DBG_CM, "Received Reset, cm_node = %p, state = %u."
45731 " refcnt=%d\n", cm_node, cm_node->state,
45732 atomic_read(&cm_node->ref_count));
45733 @@ -2526,7 +2526,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
45734 rem_ref_cm_node(cm_node->cm_core, cm_node);
45735 return NULL;
45736 }
45737 - atomic_inc(&cm_loopbacks);
45738 + atomic_inc_unchecked(&cm_loopbacks);
45739 loopbackremotenode->loopbackpartner = cm_node;
45740 loopbackremotenode->tcp_cntxt.rcv_wscale =
45741 NES_CM_DEFAULT_RCV_WND_SCALE;
45742 @@ -2807,7 +2807,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
45743 nes_queue_mgt_skbs(skb, nesvnic, cm_node->nesqp);
45744 else {
45745 rem_ref_cm_node(cm_core, cm_node);
45746 - atomic_inc(&cm_accel_dropped_pkts);
45747 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45748 dev_kfree_skb_any(skb);
45749 }
45750 break;
45751 @@ -3118,7 +3118,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
45752
45753 if ((cm_id) && (cm_id->event_handler)) {
45754 if (issue_disconn) {
45755 - atomic_inc(&cm_disconnects);
45756 + atomic_inc_unchecked(&cm_disconnects);
45757 cm_event.event = IW_CM_EVENT_DISCONNECT;
45758 cm_event.status = disconn_status;
45759 cm_event.local_addr = cm_id->local_addr;
45760 @@ -3140,7 +3140,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
45761 }
45762
45763 if (issue_close) {
45764 - atomic_inc(&cm_closes);
45765 + atomic_inc_unchecked(&cm_closes);
45766 nes_disconnect(nesqp, 1);
45767
45768 cm_id->provider_data = nesqp;
45769 @@ -3278,7 +3278,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
45770
45771 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
45772 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
45773 - atomic_inc(&cm_accepts);
45774 + atomic_inc_unchecked(&cm_accepts);
45775
45776 nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
45777 netdev_refcnt_read(nesvnic->netdev));
45778 @@ -3476,7 +3476,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
45779 struct nes_cm_core *cm_core;
45780 u8 *start_buff;
45781
45782 - atomic_inc(&cm_rejects);
45783 + atomic_inc_unchecked(&cm_rejects);
45784 cm_node = (struct nes_cm_node *)cm_id->provider_data;
45785 loopback = cm_node->loopbackpartner;
45786 cm_core = cm_node->cm_core;
45787 @@ -3541,7 +3541,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
45788 ntohs(raddr->sin_port), ntohl(laddr->sin_addr.s_addr),
45789 ntohs(laddr->sin_port));
45790
45791 - atomic_inc(&cm_connects);
45792 + atomic_inc_unchecked(&cm_connects);
45793 nesqp->active_conn = 1;
45794
45795 /* cache the cm_id in the qp */
45796 @@ -3688,7 +3688,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
45797 g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
45798 return err;
45799 }
45800 - atomic_inc(&cm_listens_created);
45801 + atomic_inc_unchecked(&cm_listens_created);
45802 }
45803
45804 cm_id->add_ref(cm_id);
45805 @@ -3795,7 +3795,7 @@ static void cm_event_connected(struct nes_cm_event *event)
45806
45807 if (nesqp->destroyed)
45808 return;
45809 - atomic_inc(&cm_connecteds);
45810 + atomic_inc_unchecked(&cm_connecteds);
45811 nes_debug(NES_DBG_CM, "QP%u attempting to connect to 0x%08X:0x%04X on"
45812 " local port 0x%04X. jiffies = %lu.\n",
45813 nesqp->hwqp.qp_id, ntohl(raddr->sin_addr.s_addr),
45814 @@ -3980,7 +3980,7 @@ static void cm_event_reset(struct nes_cm_event *event)
45815
45816 cm_id->add_ref(cm_id);
45817 ret = cm_id->event_handler(cm_id, &cm_event);
45818 - atomic_inc(&cm_closes);
45819 + atomic_inc_unchecked(&cm_closes);
45820 cm_event.event = IW_CM_EVENT_CLOSE;
45821 cm_event.status = 0;
45822 cm_event.provider_data = cm_id->provider_data;
45823 @@ -4020,7 +4020,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
45824 return;
45825 cm_id = cm_node->cm_id;
45826
45827 - atomic_inc(&cm_connect_reqs);
45828 + atomic_inc_unchecked(&cm_connect_reqs);
45829 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
45830 cm_node, cm_id, jiffies);
45831
45832 @@ -4069,7 +4069,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
45833 return;
45834 cm_id = cm_node->cm_id;
45835
45836 - atomic_inc(&cm_connect_reqs);
45837 + atomic_inc_unchecked(&cm_connect_reqs);
45838 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
45839 cm_node, cm_id, jiffies);
45840
45841 diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c
45842 index 4166452..fc952c3 100644
45843 --- a/drivers/infiniband/hw/nes/nes_mgt.c
45844 +++ b/drivers/infiniband/hw/nes/nes_mgt.c
45845 @@ -40,8 +40,8 @@
45846 #include "nes.h"
45847 #include "nes_mgt.h"
45848
45849 -atomic_t pau_qps_created;
45850 -atomic_t pau_qps_destroyed;
45851 +atomic_unchecked_t pau_qps_created;
45852 +atomic_unchecked_t pau_qps_destroyed;
45853
45854 static void nes_replenish_mgt_rq(struct nes_vnic_mgt *mgtvnic)
45855 {
45856 @@ -621,7 +621,7 @@ void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp)
45857 {
45858 struct sk_buff *skb;
45859 unsigned long flags;
45860 - atomic_inc(&pau_qps_destroyed);
45861 + atomic_inc_unchecked(&pau_qps_destroyed);
45862
45863 /* Free packets that have not yet been forwarded */
45864 /* Lock is acquired by skb_dequeue when removing the skb */
45865 @@ -810,7 +810,7 @@ static void nes_mgt_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *
45866 cq->cq_vbase[head].cqe_words[NES_NIC_CQE_HASH_RCVNXT]);
45867 skb_queue_head_init(&nesqp->pau_list);
45868 spin_lock_init(&nesqp->pau_lock);
45869 - atomic_inc(&pau_qps_created);
45870 + atomic_inc_unchecked(&pau_qps_created);
45871 nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp);
45872 }
45873
45874 diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
45875 index 70acda9..a96de9d 100644
45876 --- a/drivers/infiniband/hw/nes/nes_nic.c
45877 +++ b/drivers/infiniband/hw/nes/nes_nic.c
45878 @@ -1274,39 +1274,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
45879 target_stat_values[++index] = mh_detected;
45880 target_stat_values[++index] = mh_pauses_sent;
45881 target_stat_values[++index] = nesvnic->endnode_ipv4_tcp_retransmits;
45882 - target_stat_values[++index] = atomic_read(&cm_connects);
45883 - target_stat_values[++index] = atomic_read(&cm_accepts);
45884 - target_stat_values[++index] = atomic_read(&cm_disconnects);
45885 - target_stat_values[++index] = atomic_read(&cm_connecteds);
45886 - target_stat_values[++index] = atomic_read(&cm_connect_reqs);
45887 - target_stat_values[++index] = atomic_read(&cm_rejects);
45888 - target_stat_values[++index] = atomic_read(&mod_qp_timouts);
45889 - target_stat_values[++index] = atomic_read(&qps_created);
45890 - target_stat_values[++index] = atomic_read(&sw_qps_destroyed);
45891 - target_stat_values[++index] = atomic_read(&qps_destroyed);
45892 - target_stat_values[++index] = atomic_read(&cm_closes);
45893 + target_stat_values[++index] = atomic_read_unchecked(&cm_connects);
45894 + target_stat_values[++index] = atomic_read_unchecked(&cm_accepts);
45895 + target_stat_values[++index] = atomic_read_unchecked(&cm_disconnects);
45896 + target_stat_values[++index] = atomic_read_unchecked(&cm_connecteds);
45897 + target_stat_values[++index] = atomic_read_unchecked(&cm_connect_reqs);
45898 + target_stat_values[++index] = atomic_read_unchecked(&cm_rejects);
45899 + target_stat_values[++index] = atomic_read_unchecked(&mod_qp_timouts);
45900 + target_stat_values[++index] = atomic_read_unchecked(&qps_created);
45901 + target_stat_values[++index] = atomic_read_unchecked(&sw_qps_destroyed);
45902 + target_stat_values[++index] = atomic_read_unchecked(&qps_destroyed);
45903 + target_stat_values[++index] = atomic_read_unchecked(&cm_closes);
45904 target_stat_values[++index] = cm_packets_sent;
45905 target_stat_values[++index] = cm_packets_bounced;
45906 target_stat_values[++index] = cm_packets_created;
45907 target_stat_values[++index] = cm_packets_received;
45908 target_stat_values[++index] = cm_packets_dropped;
45909 target_stat_values[++index] = cm_packets_retrans;
45910 - target_stat_values[++index] = atomic_read(&cm_listens_created);
45911 - target_stat_values[++index] = atomic_read(&cm_listens_destroyed);
45912 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_created);
45913 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_destroyed);
45914 target_stat_values[++index] = cm_backlog_drops;
45915 - target_stat_values[++index] = atomic_read(&cm_loopbacks);
45916 - target_stat_values[++index] = atomic_read(&cm_nodes_created);
45917 - target_stat_values[++index] = atomic_read(&cm_nodes_destroyed);
45918 - target_stat_values[++index] = atomic_read(&cm_accel_dropped_pkts);
45919 - target_stat_values[++index] = atomic_read(&cm_resets_recvd);
45920 + target_stat_values[++index] = atomic_read_unchecked(&cm_loopbacks);
45921 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_created);
45922 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_destroyed);
45923 + target_stat_values[++index] = atomic_read_unchecked(&cm_accel_dropped_pkts);
45924 + target_stat_values[++index] = atomic_read_unchecked(&cm_resets_recvd);
45925 target_stat_values[++index] = nesadapter->free_4kpbl;
45926 target_stat_values[++index] = nesadapter->free_256pbl;
45927 target_stat_values[++index] = int_mod_timer_init;
45928 target_stat_values[++index] = nesvnic->lro_mgr.stats.aggregated;
45929 target_stat_values[++index] = nesvnic->lro_mgr.stats.flushed;
45930 target_stat_values[++index] = nesvnic->lro_mgr.stats.no_desc;
45931 - target_stat_values[++index] = atomic_read(&pau_qps_created);
45932 - target_stat_values[++index] = atomic_read(&pau_qps_destroyed);
45933 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_created);
45934 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_destroyed);
45935 }
45936
45937 /**
45938 diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
45939 index fbc43e5..3672792 100644
45940 --- a/drivers/infiniband/hw/nes/nes_verbs.c
45941 +++ b/drivers/infiniband/hw/nes/nes_verbs.c
45942 @@ -46,9 +46,9 @@
45943
45944 #include <rdma/ib_umem.h>
45945
45946 -atomic_t mod_qp_timouts;
45947 -atomic_t qps_created;
45948 -atomic_t sw_qps_destroyed;
45949 +atomic_unchecked_t mod_qp_timouts;
45950 +atomic_unchecked_t qps_created;
45951 +atomic_unchecked_t sw_qps_destroyed;
45952
45953 static void nes_unregister_ofa_device(struct nes_ib_device *nesibdev);
45954
45955 @@ -1137,7 +1137,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
45956 if (init_attr->create_flags)
45957 return ERR_PTR(-EINVAL);
45958
45959 - atomic_inc(&qps_created);
45960 + atomic_inc_unchecked(&qps_created);
45961 switch (init_attr->qp_type) {
45962 case IB_QPT_RC:
45963 if (nes_drv_opt & NES_DRV_OPT_NO_INLINE_DATA) {
45964 @@ -1471,7 +1471,7 @@ static int nes_destroy_qp(struct ib_qp *ibqp)
45965 struct iw_cm_event cm_event;
45966 int ret = 0;
45967
45968 - atomic_inc(&sw_qps_destroyed);
45969 + atomic_inc_unchecked(&sw_qps_destroyed);
45970 nesqp->destroyed = 1;
45971
45972 /* Blow away the connection if it exists. */
45973 diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
45974 index 7df16f7..7e1b21e 100644
45975 --- a/drivers/infiniband/hw/qib/qib.h
45976 +++ b/drivers/infiniband/hw/qib/qib.h
45977 @@ -52,6 +52,7 @@
45978 #include <linux/kref.h>
45979 #include <linux/sched.h>
45980 #include <linux/kthread.h>
45981 +#include <linux/slab.h>
45982
45983 #include "qib_common.h"
45984 #include "qib_verbs.h"
45985 diff --git a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45986 index cdc7df4..a2fdfdb 100644
45987 --- a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45988 +++ b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45989 @@ -156,7 +156,7 @@ static size_t ipoib_get_size(const struct net_device *dev)
45990 nla_total_size(2); /* IFLA_IPOIB_UMCAST */
45991 }
45992
45993 -static struct rtnl_link_ops ipoib_link_ops __read_mostly = {
45994 +static struct rtnl_link_ops ipoib_link_ops = {
45995 .kind = "ipoib",
45996 .maxtype = IFLA_IPOIB_MAX,
45997 .policy = ipoib_policy,
45998 diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
45999 index e853a21..56fc5a8 100644
46000 --- a/drivers/input/gameport/gameport.c
46001 +++ b/drivers/input/gameport/gameport.c
46002 @@ -527,14 +527,14 @@ EXPORT_SYMBOL(gameport_set_phys);
46003 */
46004 static void gameport_init_port(struct gameport *gameport)
46005 {
46006 - static atomic_t gameport_no = ATOMIC_INIT(-1);
46007 + static atomic_unchecked_t gameport_no = ATOMIC_INIT(-1);
46008
46009 __module_get(THIS_MODULE);
46010
46011 mutex_init(&gameport->drv_mutex);
46012 device_initialize(&gameport->dev);
46013 dev_set_name(&gameport->dev, "gameport%lu",
46014 - (unsigned long)atomic_inc_return(&gameport_no));
46015 + (unsigned long)atomic_inc_return_unchecked(&gameport_no));
46016 gameport->dev.bus = &gameport_bus;
46017 gameport->dev.release = gameport_release_port;
46018 if (gameport->parent)
46019 diff --git a/drivers/input/input.c b/drivers/input/input.c
46020 index 78d2499..1f0318e 100644
46021 --- a/drivers/input/input.c
46022 +++ b/drivers/input/input.c
46023 @@ -1775,7 +1775,7 @@ EXPORT_SYMBOL_GPL(input_class);
46024 */
46025 struct input_dev *input_allocate_device(void)
46026 {
46027 - static atomic_t input_no = ATOMIC_INIT(-1);
46028 + static atomic_unchecked_t input_no = ATOMIC_INIT(-1);
46029 struct input_dev *dev;
46030
46031 dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
46032 @@ -1790,7 +1790,7 @@ struct input_dev *input_allocate_device(void)
46033 INIT_LIST_HEAD(&dev->node);
46034
46035 dev_set_name(&dev->dev, "input%lu",
46036 - (unsigned long)atomic_inc_return(&input_no));
46037 + (unsigned long)atomic_inc_return_unchecked(&input_no));
46038
46039 __module_get(THIS_MODULE);
46040 }
46041 diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
46042 index 4a95b22..874c182 100644
46043 --- a/drivers/input/joystick/sidewinder.c
46044 +++ b/drivers/input/joystick/sidewinder.c
46045 @@ -30,6 +30,7 @@
46046 #include <linux/kernel.h>
46047 #include <linux/module.h>
46048 #include <linux/slab.h>
46049 +#include <linux/sched.h>
46050 #include <linux/input.h>
46051 #include <linux/gameport.h>
46052 #include <linux/jiffies.h>
46053 diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
46054 index f8850f9..9708a2d 100644
46055 --- a/drivers/input/joystick/xpad.c
46056 +++ b/drivers/input/joystick/xpad.c
46057 @@ -959,7 +959,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
46058
46059 static int xpad_led_probe(struct usb_xpad *xpad)
46060 {
46061 - static atomic_t led_seq = ATOMIC_INIT(-1);
46062 + static atomic_unchecked_t led_seq = ATOMIC_INIT(-1);
46063 struct xpad_led *led;
46064 struct led_classdev *led_cdev;
46065 int error;
46066 @@ -971,7 +971,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
46067 if (!led)
46068 return -ENOMEM;
46069
46070 - xpad->led_no = atomic_inc_return(&led_seq);
46071 + xpad->led_no = atomic_inc_return_unchecked(&led_seq);
46072
46073 snprintf(led->name, sizeof(led->name), "xpad%lu", xpad->led_no);
46074 led->xpad = xpad;
46075 diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
46076 index ac1fa5f..5f7502c 100644
46077 --- a/drivers/input/misc/ims-pcu.c
46078 +++ b/drivers/input/misc/ims-pcu.c
46079 @@ -1851,7 +1851,7 @@ static int ims_pcu_identify_type(struct ims_pcu *pcu, u8 *device_id)
46080
46081 static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
46082 {
46083 - static atomic_t device_no = ATOMIC_INIT(-1);
46084 + static atomic_unchecked_t device_no = ATOMIC_INIT(-1);
46085
46086 const struct ims_pcu_device_info *info;
46087 int error;
46088 @@ -1882,7 +1882,7 @@ static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
46089 }
46090
46091 /* Device appears to be operable, complete initialization */
46092 - pcu->device_no = atomic_inc_return(&device_no);
46093 + pcu->device_no = atomic_inc_return_unchecked(&device_no);
46094
46095 /*
46096 * PCU-B devices, both GEN_1 and GEN_2 do not have OFN sensor
46097 diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
46098 index ad5a5a1..5eac214 100644
46099 --- a/drivers/input/mouse/psmouse.h
46100 +++ b/drivers/input/mouse/psmouse.h
46101 @@ -125,7 +125,7 @@ struct psmouse_attribute {
46102 ssize_t (*set)(struct psmouse *psmouse, void *data,
46103 const char *buf, size_t count);
46104 bool protect;
46105 -};
46106 +} __do_const;
46107 #define to_psmouse_attr(a) container_of((a), struct psmouse_attribute, dattr)
46108
46109 ssize_t psmouse_attr_show_helper(struct device *dev, struct device_attribute *attr,
46110 diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
46111 index b604564..3f14ae4 100644
46112 --- a/drivers/input/mousedev.c
46113 +++ b/drivers/input/mousedev.c
46114 @@ -744,7 +744,7 @@ static ssize_t mousedev_read(struct file *file, char __user *buffer,
46115
46116 spin_unlock_irq(&client->packet_lock);
46117
46118 - if (copy_to_user(buffer, data, count))
46119 + if (count > sizeof(data) || copy_to_user(buffer, data, count))
46120 return -EFAULT;
46121
46122 return count;
46123 diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
46124 index a05a517..323a2fd 100644
46125 --- a/drivers/input/serio/serio.c
46126 +++ b/drivers/input/serio/serio.c
46127 @@ -514,7 +514,7 @@ static void serio_release_port(struct device *dev)
46128 */
46129 static void serio_init_port(struct serio *serio)
46130 {
46131 - static atomic_t serio_no = ATOMIC_INIT(-1);
46132 + static atomic_unchecked_t serio_no = ATOMIC_INIT(-1);
46133
46134 __module_get(THIS_MODULE);
46135
46136 @@ -525,7 +525,7 @@ static void serio_init_port(struct serio *serio)
46137 mutex_init(&serio->drv_mutex);
46138 device_initialize(&serio->dev);
46139 dev_set_name(&serio->dev, "serio%lu",
46140 - (unsigned long)atomic_inc_return(&serio_no));
46141 + (unsigned long)atomic_inc_return_unchecked(&serio_no));
46142 serio->dev.bus = &serio_bus;
46143 serio->dev.release = serio_release_port;
46144 serio->dev.groups = serio_device_attr_groups;
46145 diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
46146 index 71ef5d6..93380a9 100644
46147 --- a/drivers/input/serio/serio_raw.c
46148 +++ b/drivers/input/serio/serio_raw.c
46149 @@ -292,7 +292,7 @@ static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data,
46150
46151 static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
46152 {
46153 - static atomic_t serio_raw_no = ATOMIC_INIT(-1);
46154 + static atomic_unchecked_t serio_raw_no = ATOMIC_INIT(-1);
46155 struct serio_raw *serio_raw;
46156 int err;
46157
46158 @@ -303,7 +303,7 @@ static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
46159 }
46160
46161 snprintf(serio_raw->name, sizeof(serio_raw->name),
46162 - "serio_raw%ld", (long)atomic_inc_return(&serio_raw_no));
46163 + "serio_raw%ld", (long)atomic_inc_return_unchecked(&serio_raw_no));
46164 kref_init(&serio_raw->kref);
46165 INIT_LIST_HEAD(&serio_raw->client_list);
46166 init_waitqueue_head(&serio_raw->wait);
46167 diff --git a/drivers/input/touchscreen/htcpen.c b/drivers/input/touchscreen/htcpen.c
46168 index 92e2243..8fd9092 100644
46169 --- a/drivers/input/touchscreen/htcpen.c
46170 +++ b/drivers/input/touchscreen/htcpen.c
46171 @@ -219,7 +219,7 @@ static struct isa_driver htcpen_isa_driver = {
46172 }
46173 };
46174
46175 -static struct dmi_system_id htcshift_dmi_table[] __initdata = {
46176 +static const struct dmi_system_id htcshift_dmi_table[] __initconst = {
46177 {
46178 .ident = "Shift",
46179 .matches = {
46180 diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
46181 index f1fb1d3..82257cc 100644
46182 --- a/drivers/iommu/Kconfig
46183 +++ b/drivers/iommu/Kconfig
46184 @@ -102,6 +102,7 @@ config AMD_IOMMU_STATS
46185 bool "Export AMD IOMMU statistics to debugfs"
46186 depends on AMD_IOMMU
46187 select DEBUG_FS
46188 + depends on !GRKERNSEC_KMEM
46189 ---help---
46190 This option enables code in the AMD IOMMU driver to collect various
46191 statistics about whats happening in the driver and exports that
46192 diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
46193 index 1b10e5fd..9eddba7 100644
46194 --- a/drivers/iommu/amd_iommu.c
46195 +++ b/drivers/iommu/amd_iommu.c
46196 @@ -794,11 +794,21 @@ static void copy_cmd_to_buffer(struct amd_iommu *iommu,
46197
46198 static void build_completion_wait(struct iommu_cmd *cmd, u64 address)
46199 {
46200 + phys_addr_t physaddr;
46201 WARN_ON(address & 0x7ULL);
46202
46203 memset(cmd, 0, sizeof(*cmd));
46204 - cmd->data[0] = lower_32_bits(__pa(address)) | CMD_COMPL_WAIT_STORE_MASK;
46205 - cmd->data[1] = upper_32_bits(__pa(address));
46206 +
46207 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
46208 + if (object_starts_on_stack((void *)address)) {
46209 + void *adjbuf = (void *)address - current->stack + current->lowmem_stack;
46210 + physaddr = __pa((u64)adjbuf);
46211 + } else
46212 +#endif
46213 + physaddr = __pa(address);
46214 +
46215 + cmd->data[0] = lower_32_bits(physaddr) | CMD_COMPL_WAIT_STORE_MASK;
46216 + cmd->data[1] = upper_32_bits(physaddr);
46217 cmd->data[2] = 1;
46218 CMD_SET_TYPE(cmd, CMD_COMPL_WAIT);
46219 }
46220 diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
46221 index 4cd0c29..afd3cbe 100644
46222 --- a/drivers/iommu/arm-smmu.c
46223 +++ b/drivers/iommu/arm-smmu.c
46224 @@ -330,7 +330,7 @@ enum arm_smmu_domain_stage {
46225
46226 struct arm_smmu_domain {
46227 struct arm_smmu_device *smmu;
46228 - struct io_pgtable_ops *pgtbl_ops;
46229 + struct io_pgtable *pgtbl;
46230 spinlock_t pgtbl_lock;
46231 struct arm_smmu_cfg cfg;
46232 enum arm_smmu_domain_stage stage;
46233 @@ -816,7 +816,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46234 {
46235 int irq, start, ret = 0;
46236 unsigned long ias, oas;
46237 - struct io_pgtable_ops *pgtbl_ops;
46238 + struct io_pgtable *pgtbl;
46239 struct io_pgtable_cfg pgtbl_cfg;
46240 enum io_pgtable_fmt fmt;
46241 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46242 @@ -901,14 +901,16 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46243 };
46244
46245 smmu_domain->smmu = smmu;
46246 - pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain);
46247 - if (!pgtbl_ops) {
46248 + pgtbl = alloc_io_pgtable(fmt, &pgtbl_cfg, smmu_domain);
46249 + if (!pgtbl) {
46250 ret = -ENOMEM;
46251 goto out_clear_smmu;
46252 }
46253
46254 /* Update our support page sizes to reflect the page table format */
46255 - arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46256 + pax_open_kernel();
46257 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46258 + pax_close_kernel();
46259
46260 /* Initialise the context bank with our page table cfg */
46261 arm_smmu_init_context_bank(smmu_domain, &pgtbl_cfg);
46262 @@ -929,7 +931,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46263 mutex_unlock(&smmu_domain->init_mutex);
46264
46265 /* Publish page table ops for map/unmap */
46266 - smmu_domain->pgtbl_ops = pgtbl_ops;
46267 + smmu_domain->pgtbl = pgtbl;
46268 return 0;
46269
46270 out_clear_smmu:
46271 @@ -962,8 +964,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
46272 free_irq(irq, domain);
46273 }
46274
46275 - if (smmu_domain->pgtbl_ops)
46276 - free_io_pgtable_ops(smmu_domain->pgtbl_ops);
46277 + free_io_pgtable(smmu_domain->pgtbl);
46278
46279 __arm_smmu_free_bitmap(smmu->context_map, cfg->cbndx);
46280 }
46281 @@ -1189,13 +1190,13 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
46282 int ret;
46283 unsigned long flags;
46284 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46285 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46286 + struct io_pgtable *iop = smmu_domain->pgtbl;
46287
46288 - if (!ops)
46289 + if (!iop)
46290 return -ENODEV;
46291
46292 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46293 - ret = ops->map(ops, iova, paddr, size, prot);
46294 + ret = iop->ops->map(iop, iova, paddr, size, prot);
46295 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46296 return ret;
46297 }
46298 @@ -1206,13 +1207,13 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
46299 size_t ret;
46300 unsigned long flags;
46301 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46302 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46303 + struct io_pgtable *iop = smmu_domain->pgtbl;
46304
46305 - if (!ops)
46306 + if (!iop)
46307 return 0;
46308
46309 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46310 - ret = ops->unmap(ops, iova, size);
46311 + ret = iop->ops->unmap(iop, iova, size);
46312 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46313 return ret;
46314 }
46315 @@ -1223,7 +1224,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46316 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46317 struct arm_smmu_device *smmu = smmu_domain->smmu;
46318 struct arm_smmu_cfg *cfg = &smmu_domain->cfg;
46319 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46320 + struct io_pgtable *iop = smmu_domain->pgtbl;
46321 struct device *dev = smmu->dev;
46322 void __iomem *cb_base;
46323 u32 tmp;
46324 @@ -1246,7 +1247,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46325 dev_err(dev,
46326 "iova to phys timed out on 0x%pad. Falling back to software table walk.\n",
46327 &iova);
46328 - return ops->iova_to_phys(ops, iova);
46329 + return iop->ops->iova_to_phys(iop, iova);
46330 }
46331
46332 phys = readl_relaxed(cb_base + ARM_SMMU_CB_PAR_LO);
46333 @@ -1267,9 +1268,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46334 phys_addr_t ret;
46335 unsigned long flags;
46336 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46337 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46338 + struct io_pgtable *iop = smmu_domain->pgtbl;
46339
46340 - if (!ops)
46341 + if (!iop)
46342 return 0;
46343
46344 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46345 @@ -1277,7 +1278,7 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46346 smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
46347 ret = arm_smmu_iova_to_phys_hard(domain, iova);
46348 } else {
46349 - ret = ops->iova_to_phys(ops, iova);
46350 + ret = iop->ops->iova_to_phys(iop, iova);
46351 }
46352
46353 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46354 @@ -1667,7 +1668,9 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
46355 size |= SZ_64K | SZ_512M;
46356 }
46357
46358 - arm_smmu_ops.pgsize_bitmap &= size;
46359 + pax_open_kernel();
46360 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap &= size;
46361 + pax_close_kernel();
46362 dev_notice(smmu->dev, "\tSupported page sizes: 0x%08lx\n", size);
46363
46364 if (smmu->features & ARM_SMMU_FEAT_TRANS_S1)
46365 diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
46366 index e29d5d7..e5eeb3e 100644
46367 --- a/drivers/iommu/io-pgtable-arm.c
46368 +++ b/drivers/iommu/io-pgtable-arm.c
46369 @@ -36,12 +36,6 @@
46370 #define io_pgtable_to_data(x) \
46371 container_of((x), struct arm_lpae_io_pgtable, iop)
46372
46373 -#define io_pgtable_ops_to_pgtable(x) \
46374 - container_of((x), struct io_pgtable, ops)
46375 -
46376 -#define io_pgtable_ops_to_data(x) \
46377 - io_pgtable_to_data(io_pgtable_ops_to_pgtable(x))
46378 -
46379 /*
46380 * For consistency with the architecture, we always consider
46381 * ARM_LPAE_MAX_LEVELS levels, with the walk starting at level n >=0
46382 @@ -319,10 +313,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
46383 return pte;
46384 }
46385
46386 -static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
46387 +static int arm_lpae_map(struct io_pgtable *iop, unsigned long iova,
46388 phys_addr_t paddr, size_t size, int iommu_prot)
46389 {
46390 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46391 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46392 arm_lpae_iopte *ptep = data->pgd;
46393 int lvl = ARM_LPAE_START_LVL(data);
46394 arm_lpae_iopte prot;
46395 @@ -462,12 +456,11 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
46396 return __arm_lpae_unmap(data, iova, size, lvl + 1, ptep);
46397 }
46398
46399 -static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46400 +static int arm_lpae_unmap(struct io_pgtable *iop, unsigned long iova,
46401 size_t size)
46402 {
46403 size_t unmapped;
46404 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46405 - struct io_pgtable *iop = &data->iop;
46406 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46407 arm_lpae_iopte *ptep = data->pgd;
46408 int lvl = ARM_LPAE_START_LVL(data);
46409
46410 @@ -478,10 +471,10 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46411 return unmapped;
46412 }
46413
46414 -static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
46415 +static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable *iop,
46416 unsigned long iova)
46417 {
46418 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46419 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46420 arm_lpae_iopte pte, *ptep = data->pgd;
46421 int lvl = ARM_LPAE_START_LVL(data);
46422
46423 @@ -548,6 +541,12 @@ static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
46424 }
46425 }
46426
46427 +static struct io_pgtable_ops arm_lpae_io_pgtable_ops = {
46428 + .map = arm_lpae_map,
46429 + .unmap = arm_lpae_unmap,
46430 + .iova_to_phys = arm_lpae_iova_to_phys,
46431 +};
46432 +
46433 static struct arm_lpae_io_pgtable *
46434 arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46435 {
46436 @@ -579,11 +578,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46437 pgd_bits = va_bits - (data->bits_per_level * (data->levels - 1));
46438 data->pgd_size = 1UL << (pgd_bits + ilog2(sizeof(arm_lpae_iopte)));
46439
46440 - data->iop.ops = (struct io_pgtable_ops) {
46441 - .map = arm_lpae_map,
46442 - .unmap = arm_lpae_unmap,
46443 - .iova_to_phys = arm_lpae_iova_to_phys,
46444 - };
46445 + data->iop.ops = &arm_lpae_io_pgtable_ops;
46446
46447 return data;
46448 }
46449 @@ -845,9 +840,9 @@ static struct iommu_gather_ops dummy_tlb_ops __initdata = {
46450 .flush_pgtable = dummy_flush_pgtable,
46451 };
46452
46453 -static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46454 +static void __init arm_lpae_dump_ops(struct io_pgtable *iop)
46455 {
46456 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46457 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46458 struct io_pgtable_cfg *cfg = &data->iop.cfg;
46459
46460 pr_err("cfg: pgsize_bitmap 0x%lx, ias %u-bit\n",
46461 @@ -857,9 +852,9 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46462 data->bits_per_level, data->pgd);
46463 }
46464
46465 -#define __FAIL(ops, i) ({ \
46466 +#define __FAIL(iop, i) ({ \
46467 WARN(1, "selftest: test failed for fmt idx %d\n", (i)); \
46468 - arm_lpae_dump_ops(ops); \
46469 + arm_lpae_dump_ops(iop); \
46470 selftest_running = false; \
46471 -EFAULT; \
46472 })
46473 @@ -874,30 +869,32 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46474 int i, j;
46475 unsigned long iova;
46476 size_t size;
46477 - struct io_pgtable_ops *ops;
46478 + struct io_pgtable *iop;
46479 + const struct io_pgtable_ops *ops;
46480
46481 selftest_running = true;
46482
46483 for (i = 0; i < ARRAY_SIZE(fmts); ++i) {
46484 cfg_cookie = cfg;
46485 - ops = alloc_io_pgtable_ops(fmts[i], cfg, cfg);
46486 - if (!ops) {
46487 + iop = alloc_io_pgtable(fmts[i], cfg, cfg);
46488 + if (!iop) {
46489 pr_err("selftest: failed to allocate io pgtable ops\n");
46490 return -ENOMEM;
46491 }
46492 + ops = iop->ops;
46493
46494 /*
46495 * Initial sanity checks.
46496 * Empty page tables shouldn't provide any translations.
46497 */
46498 - if (ops->iova_to_phys(ops, 42))
46499 - return __FAIL(ops, i);
46500 + if (ops->iova_to_phys(iop, 42))
46501 + return __FAIL(iop, i);
46502
46503 - if (ops->iova_to_phys(ops, SZ_1G + 42))
46504 - return __FAIL(ops, i);
46505 + if (ops->iova_to_phys(iop, SZ_1G + 42))
46506 + return __FAIL(iop, i);
46507
46508 - if (ops->iova_to_phys(ops, SZ_2G + 42))
46509 - return __FAIL(ops, i);
46510 + if (ops->iova_to_phys(iop, SZ_2G + 42))
46511 + return __FAIL(iop, i);
46512
46513 /*
46514 * Distinct mappings of different granule sizes.
46515 @@ -907,19 +904,19 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46516 while (j != BITS_PER_LONG) {
46517 size = 1UL << j;
46518
46519 - if (ops->map(ops, iova, iova, size, IOMMU_READ |
46520 + if (ops->map(iop, iova, iova, size, IOMMU_READ |
46521 IOMMU_WRITE |
46522 IOMMU_NOEXEC |
46523 IOMMU_CACHE))
46524 - return __FAIL(ops, i);
46525 + return __FAIL(iop, i);
46526
46527 /* Overlapping mappings */
46528 - if (!ops->map(ops, iova, iova + size, size,
46529 + if (!ops->map(iop, iova, iova + size, size,
46530 IOMMU_READ | IOMMU_NOEXEC))
46531 - return __FAIL(ops, i);
46532 + return __FAIL(iop, i);
46533
46534 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46535 - return __FAIL(ops, i);
46536 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46537 + return __FAIL(iop, i);
46538
46539 iova += SZ_1G;
46540 j++;
46541 @@ -928,15 +925,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46542
46543 /* Partial unmap */
46544 size = 1UL << __ffs(cfg->pgsize_bitmap);
46545 - if (ops->unmap(ops, SZ_1G + size, size) != size)
46546 - return __FAIL(ops, i);
46547 + if (ops->unmap(iop, SZ_1G + size, size) != size)
46548 + return __FAIL(iop, i);
46549
46550 /* Remap of partial unmap */
46551 - if (ops->map(ops, SZ_1G + size, size, size, IOMMU_READ))
46552 - return __FAIL(ops, i);
46553 + if (ops->map(iop, SZ_1G + size, size, size, IOMMU_READ))
46554 + return __FAIL(iop, i);
46555
46556 - if (ops->iova_to_phys(ops, SZ_1G + size + 42) != (size + 42))
46557 - return __FAIL(ops, i);
46558 + if (ops->iova_to_phys(iop, SZ_1G + size + 42) != (size + 42))
46559 + return __FAIL(iop, i);
46560
46561 /* Full unmap */
46562 iova = 0;
46563 @@ -944,25 +941,25 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46564 while (j != BITS_PER_LONG) {
46565 size = 1UL << j;
46566
46567 - if (ops->unmap(ops, iova, size) != size)
46568 - return __FAIL(ops, i);
46569 + if (ops->unmap(iop, iova, size) != size)
46570 + return __FAIL(iop, i);
46571
46572 - if (ops->iova_to_phys(ops, iova + 42))
46573 - return __FAIL(ops, i);
46574 + if (ops->iova_to_phys(iop, iova + 42))
46575 + return __FAIL(iop, i);
46576
46577 /* Remap full block */
46578 - if (ops->map(ops, iova, iova, size, IOMMU_WRITE))
46579 - return __FAIL(ops, i);
46580 + if (ops->map(iop, iova, iova, size, IOMMU_WRITE))
46581 + return __FAIL(iop, i);
46582
46583 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46584 - return __FAIL(ops, i);
46585 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46586 + return __FAIL(iop, i);
46587
46588 iova += SZ_1G;
46589 j++;
46590 j = find_next_bit(&cfg->pgsize_bitmap, BITS_PER_LONG, j);
46591 }
46592
46593 - free_io_pgtable_ops(ops);
46594 + free_io_pgtable(iop);
46595 }
46596
46597 selftest_running = false;
46598 diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
46599 index 6436fe2..088c965 100644
46600 --- a/drivers/iommu/io-pgtable.c
46601 +++ b/drivers/iommu/io-pgtable.c
46602 @@ -40,7 +40,7 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] =
46603 #endif
46604 };
46605
46606 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46607 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46608 struct io_pgtable_cfg *cfg,
46609 void *cookie)
46610 {
46611 @@ -62,21 +62,18 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46612 iop->cookie = cookie;
46613 iop->cfg = *cfg;
46614
46615 - return &iop->ops;
46616 + return iop;
46617 }
46618
46619 /*
46620 * It is the IOMMU driver's responsibility to ensure that the page table
46621 * is no longer accessible to the walker by this point.
46622 */
46623 -void free_io_pgtable_ops(struct io_pgtable_ops *ops)
46624 +void free_io_pgtable(struct io_pgtable *iop)
46625 {
46626 - struct io_pgtable *iop;
46627 -
46628 - if (!ops)
46629 + if (!iop)
46630 return;
46631
46632 - iop = container_of(ops, struct io_pgtable, ops);
46633 iop->cfg.tlb->tlb_flush_all(iop->cookie);
46634 io_pgtable_init_table[iop->fmt]->free(iop);
46635 }
46636 diff --git a/drivers/iommu/io-pgtable.h b/drivers/iommu/io-pgtable.h
46637 index 10e32f6..0b276c8 100644
46638 --- a/drivers/iommu/io-pgtable.h
46639 +++ b/drivers/iommu/io-pgtable.h
46640 @@ -75,17 +75,18 @@ struct io_pgtable_cfg {
46641 * These functions map directly onto the iommu_ops member functions with
46642 * the same names.
46643 */
46644 +struct io_pgtable;
46645 struct io_pgtable_ops {
46646 - int (*map)(struct io_pgtable_ops *ops, unsigned long iova,
46647 + int (*map)(struct io_pgtable *iop, unsigned long iova,
46648 phys_addr_t paddr, size_t size, int prot);
46649 - int (*unmap)(struct io_pgtable_ops *ops, unsigned long iova,
46650 + int (*unmap)(struct io_pgtable *iop, unsigned long iova,
46651 size_t size);
46652 - phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *ops,
46653 + phys_addr_t (*iova_to_phys)(struct io_pgtable *iop,
46654 unsigned long iova);
46655 };
46656
46657 /**
46658 - * alloc_io_pgtable_ops() - Allocate a page table allocator for use by an IOMMU.
46659 + * alloc_io_pgtable() - Allocate a page table allocator for use by an IOMMU.
46660 *
46661 * @fmt: The page table format.
46662 * @cfg: The page table configuration. This will be modified to represent
46663 @@ -94,9 +95,9 @@ struct io_pgtable_ops {
46664 * @cookie: An opaque token provided by the IOMMU driver and passed back to
46665 * the callback routines in cfg->tlb.
46666 */
46667 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46668 - struct io_pgtable_cfg *cfg,
46669 - void *cookie);
46670 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46671 + struct io_pgtable_cfg *cfg,
46672 + void *cookie);
46673
46674 /**
46675 * free_io_pgtable_ops() - Free an io_pgtable_ops structure. The caller
46676 @@ -105,7 +106,7 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46677 *
46678 * @ops: The ops returned from alloc_io_pgtable_ops.
46679 */
46680 -void free_io_pgtable_ops(struct io_pgtable_ops *ops);
46681 +void free_io_pgtable(struct io_pgtable *iop);
46682
46683
46684 /*
46685 @@ -125,7 +126,7 @@ struct io_pgtable {
46686 enum io_pgtable_fmt fmt;
46687 void *cookie;
46688 struct io_pgtable_cfg cfg;
46689 - struct io_pgtable_ops ops;
46690 + const struct io_pgtable_ops *ops;
46691 };
46692
46693 /**
46694 diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
46695 index f286090..bac3e7e 100644
46696 --- a/drivers/iommu/iommu.c
46697 +++ b/drivers/iommu/iommu.c
46698 @@ -934,7 +934,7 @@ static int iommu_bus_notifier(struct notifier_block *nb,
46699 static int iommu_bus_init(struct bus_type *bus, const struct iommu_ops *ops)
46700 {
46701 int err;
46702 - struct notifier_block *nb;
46703 + notifier_block_no_const *nb;
46704 struct iommu_callback_data cb = {
46705 .ops = ops,
46706 };
46707 diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
46708 index 1a67c53..23181d8 100644
46709 --- a/drivers/iommu/ipmmu-vmsa.c
46710 +++ b/drivers/iommu/ipmmu-vmsa.c
46711 @@ -41,7 +41,7 @@ struct ipmmu_vmsa_domain {
46712 struct iommu_domain io_domain;
46713
46714 struct io_pgtable_cfg cfg;
46715 - struct io_pgtable_ops *iop;
46716 + struct io_pgtable *iop;
46717
46718 unsigned int context_id;
46719 spinlock_t lock; /* Protects mappings */
46720 @@ -328,8 +328,7 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
46721 domain->cfg.oas = 40;
46722 domain->cfg.tlb = &ipmmu_gather_ops;
46723
46724 - domain->iop = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &domain->cfg,
46725 - domain);
46726 + domain->iop = alloc_io_pgtable(ARM_32_LPAE_S1, &domain->cfg, domain);
46727 if (!domain->iop)
46728 return -EINVAL;
46729
46730 @@ -487,7 +486,7 @@ static void ipmmu_domain_free(struct iommu_domain *io_domain)
46731 * been detached.
46732 */
46733 ipmmu_domain_destroy_context(domain);
46734 - free_io_pgtable_ops(domain->iop);
46735 + free_io_pgtable(domain->iop);
46736 kfree(domain);
46737 }
46738
46739 @@ -556,7 +555,7 @@ static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
46740 if (!domain)
46741 return -ENODEV;
46742
46743 - return domain->iop->map(domain->iop, iova, paddr, size, prot);
46744 + return domain->iop->ops->map(domain->iop, iova, paddr, size, prot);
46745 }
46746
46747 static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
46748 @@ -564,7 +563,7 @@ static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
46749 {
46750 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain);
46751
46752 - return domain->iop->unmap(domain->iop, iova, size);
46753 + return domain->iop->ops->unmap(domain->iop, iova, size);
46754 }
46755
46756 static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
46757 @@ -574,7 +573,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
46758
46759 /* TODO: Is locking needed ? */
46760
46761 - return domain->iop->iova_to_phys(domain->iop, iova);
46762 + return domain->iop->ops->iova_to_phys(domain->iop, iova);
46763 }
46764
46765 static int ipmmu_find_utlbs(struct ipmmu_vmsa_device *mmu, struct device *dev,
46766 diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
46767 index 2d99930..b8b358c 100644
46768 --- a/drivers/iommu/irq_remapping.c
46769 +++ b/drivers/iommu/irq_remapping.c
46770 @@ -149,7 +149,7 @@ int __init irq_remap_enable_fault_handling(void)
46771 void panic_if_irq_remap(const char *msg)
46772 {
46773 if (irq_remapping_enabled)
46774 - panic(msg);
46775 + panic("%s", msg);
46776 }
46777
46778 void ir_ack_apic_edge(struct irq_data *data)
46779 diff --git a/drivers/iommu/omap-iommu-debug.c b/drivers/iommu/omap-iommu-debug.c
46780 index f3d20a2..5dcb85e 100644
46781 --- a/drivers/iommu/omap-iommu-debug.c
46782 +++ b/drivers/iommu/omap-iommu-debug.c
46783 @@ -55,34 +55,22 @@ static ssize_t debug_read_regs(struct file *file, char __user *userbuf,
46784 return bytes;
46785 }
46786
46787 -static ssize_t debug_read_tlb(struct file *file, char __user *userbuf,
46788 - size_t count, loff_t *ppos)
46789 +static int debug_read_tlb(struct seq_file *s, void *data)
46790 {
46791 - struct omap_iommu *obj = file->private_data;
46792 - char *p, *buf;
46793 - ssize_t bytes, rest;
46794 + struct omap_iommu *obj = s->private;
46795
46796 if (is_omap_iommu_detached(obj))
46797 return -EPERM;
46798
46799 - buf = kmalloc(count, GFP_KERNEL);
46800 - if (!buf)
46801 - return -ENOMEM;
46802 - p = buf;
46803 -
46804 mutex_lock(&iommu_debug_lock);
46805
46806 - p += sprintf(p, "%8s %8s\n", "cam:", "ram:");
46807 - p += sprintf(p, "-----------------------------------------\n");
46808 - rest = count - (p - buf);
46809 - p += omap_dump_tlb_entries(obj, p, rest);
46810 -
46811 - bytes = simple_read_from_buffer(userbuf, count, ppos, buf, p - buf);
46812 + seq_printf(s, "%8s %8s\n", "cam:", "ram:");
46813 + seq_puts(s, "-----------------------------------------\n");
46814 + omap_dump_tlb_entries(obj, s);
46815
46816 mutex_unlock(&iommu_debug_lock);
46817 - kfree(buf);
46818
46819 - return bytes;
46820 + return 0;
46821 }
46822
46823 static void dump_ioptable(struct seq_file *s)
46824 @@ -157,7 +145,7 @@ static int debug_read_pagetable(struct seq_file *s, void *data)
46825 };
46826
46827 DEBUG_FOPS_RO(regs);
46828 -DEBUG_FOPS_RO(tlb);
46829 +DEBUG_SEQ_FOPS_RO(tlb);
46830 DEBUG_SEQ_FOPS_RO(pagetable);
46831
46832 #define __DEBUG_ADD_FILE(attr, mode) \
46833 diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
46834 index a22c33d..2247075e2 100644
46835 --- a/drivers/iommu/omap-iommu.c
46836 +++ b/drivers/iommu/omap-iommu.c
46837 @@ -546,36 +546,30 @@ __dump_tlb_entries(struct omap_iommu *obj, struct cr_regs *crs, int num)
46838 }
46839
46840 /**
46841 - * iotlb_dump_cr - Dump an iommu tlb entry into buf
46842 + * iotlb_dump_cr - Dump an iommu tlb entry into seq_file
46843 * @obj: target iommu
46844 * @cr: contents of cam and ram register
46845 - * @buf: output buffer
46846 + * @s: output seq_file
46847 **/
46848 static ssize_t iotlb_dump_cr(struct omap_iommu *obj, struct cr_regs *cr,
46849 - char *buf)
46850 + struct seq_file *s)
46851 {
46852 - char *p = buf;
46853 -
46854 /* FIXME: Need more detail analysis of cam/ram */
46855 - p += sprintf(p, "%08x %08x %01x\n", cr->cam, cr->ram,
46856 - (cr->cam & MMU_CAM_P) ? 1 : 0);
46857 -
46858 - return p - buf;
46859 + return seq_printf(s, "%08x %08x %01x\n", cr->cam, cr->ram,
46860 + (cr->cam & MMU_CAM_P) ? 1 : 0);
46861 }
46862
46863 /**
46864 - * omap_dump_tlb_entries - dump cr arrays to given buffer
46865 + * omap_dump_tlb_entries - dump cr arrays to given seq_file
46866 * @obj: target iommu
46867 - * @buf: output buffer
46868 + * @s: output seq_file
46869 **/
46870 -size_t omap_dump_tlb_entries(struct omap_iommu *obj, char *buf, ssize_t bytes)
46871 +size_t omap_dump_tlb_entries(struct omap_iommu *obj, struct seq_file *s)
46872 {
46873 int i, num;
46874 struct cr_regs *cr;
46875 - char *p = buf;
46876
46877 - num = bytes / sizeof(*cr);
46878 - num = min(obj->nr_tlb_entries, num);
46879 + num = obj->nr_tlb_entries;
46880
46881 cr = kcalloc(num, sizeof(*cr), GFP_KERNEL);
46882 if (!cr)
46883 @@ -583,10 +577,10 @@ size_t omap_dump_tlb_entries(struct omap_iommu *obj, char *buf, ssize_t bytes)
46884
46885 num = __dump_tlb_entries(obj, cr, num);
46886 for (i = 0; i < num; i++)
46887 - p += iotlb_dump_cr(obj, cr + i, p);
46888 + iotlb_dump_cr(obj, cr + i, s);
46889 kfree(cr);
46890
46891 - return p - buf;
46892 + return 0;
46893 }
46894
46895 #endif /* CONFIG_OMAP_IOMMU_DEBUG */
46896 diff --git a/drivers/iommu/omap-iommu.h b/drivers/iommu/omap-iommu.h
46897 index d736630..5df9755 100644
46898 --- a/drivers/iommu/omap-iommu.h
46899 +++ b/drivers/iommu/omap-iommu.h
46900 @@ -193,8 +193,7 @@ static inline struct omap_iommu *dev_to_omap_iommu(struct device *dev)
46901 #ifdef CONFIG_OMAP_IOMMU_DEBUG
46902 extern ssize_t
46903 omap_iommu_dump_ctx(struct omap_iommu *obj, char *buf, ssize_t len);
46904 -extern size_t
46905 -omap_dump_tlb_entries(struct omap_iommu *obj, char *buf, ssize_t len);
46906 +extern size_t omap_dump_tlb_entries(struct omap_iommu *obj, struct seq_file *s);
46907
46908 void omap_iommu_debugfs_init(void);
46909 void omap_iommu_debugfs_exit(void);
46910 diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
46911 index 4dd8826..1f33400 100644
46912 --- a/drivers/irqchip/irq-gic.c
46913 +++ b/drivers/irqchip/irq-gic.c
46914 @@ -313,7 +313,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
46915 chained_irq_exit(chip, desc);
46916 }
46917
46918 -static struct irq_chip gic_chip = {
46919 +static irq_chip_no_const gic_chip __read_only = {
46920 .name = "GIC",
46921 .irq_mask = gic_mask_irq,
46922 .irq_unmask = gic_unmask_irq,
46923 diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
46924 index 0670ab4..1094651 100644
46925 --- a/drivers/irqchip/irq-renesas-intc-irqpin.c
46926 +++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
46927 @@ -373,7 +373,7 @@ static int intc_irqpin_probe(struct platform_device *pdev)
46928 struct intc_irqpin_iomem *i;
46929 struct resource *io[INTC_IRQPIN_REG_NR];
46930 struct resource *irq;
46931 - struct irq_chip *irq_chip;
46932 + irq_chip_no_const *irq_chip;
46933 void (*enable_fn)(struct irq_data *d);
46934 void (*disable_fn)(struct irq_data *d);
46935 const char *name = dev_name(dev);
46936 diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c
46937 index 778bd07..0397152 100644
46938 --- a/drivers/irqchip/irq-renesas-irqc.c
46939 +++ b/drivers/irqchip/irq-renesas-irqc.c
46940 @@ -176,7 +176,7 @@ static int irqc_probe(struct platform_device *pdev)
46941 struct irqc_priv *p;
46942 struct resource *io;
46943 struct resource *irq;
46944 - struct irq_chip *irq_chip;
46945 + irq_chip_no_const *irq_chip;
46946 const char *name = dev_name(&pdev->dev);
46947 int ret;
46948 int k;
46949 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
46950 index 6a2df32..dc962f1 100644
46951 --- a/drivers/isdn/capi/capi.c
46952 +++ b/drivers/isdn/capi/capi.c
46953 @@ -81,8 +81,8 @@ struct capiminor {
46954
46955 struct capi20_appl *ap;
46956 u32 ncci;
46957 - atomic_t datahandle;
46958 - atomic_t msgid;
46959 + atomic_unchecked_t datahandle;
46960 + atomic_unchecked_t msgid;
46961
46962 struct tty_port port;
46963 int ttyinstop;
46964 @@ -391,7 +391,7 @@ gen_data_b3_resp_for(struct capiminor *mp, struct sk_buff *skb)
46965 capimsg_setu16(s, 2, mp->ap->applid);
46966 capimsg_setu8 (s, 4, CAPI_DATA_B3);
46967 capimsg_setu8 (s, 5, CAPI_RESP);
46968 - capimsg_setu16(s, 6, atomic_inc_return(&mp->msgid));
46969 + capimsg_setu16(s, 6, atomic_inc_return_unchecked(&mp->msgid));
46970 capimsg_setu32(s, 8, mp->ncci);
46971 capimsg_setu16(s, 12, datahandle);
46972 }
46973 @@ -512,14 +512,14 @@ static void handle_minor_send(struct capiminor *mp)
46974 mp->outbytes -= len;
46975 spin_unlock_bh(&mp->outlock);
46976
46977 - datahandle = atomic_inc_return(&mp->datahandle);
46978 + datahandle = atomic_inc_return_unchecked(&mp->datahandle);
46979 skb_push(skb, CAPI_DATA_B3_REQ_LEN);
46980 memset(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
46981 capimsg_setu16(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
46982 capimsg_setu16(skb->data, 2, mp->ap->applid);
46983 capimsg_setu8 (skb->data, 4, CAPI_DATA_B3);
46984 capimsg_setu8 (skb->data, 5, CAPI_REQ);
46985 - capimsg_setu16(skb->data, 6, atomic_inc_return(&mp->msgid));
46986 + capimsg_setu16(skb->data, 6, atomic_inc_return_unchecked(&mp->msgid));
46987 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
46988 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
46989 capimsg_setu16(skb->data, 16, len); /* Data length */
46990 diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
46991 index aecec6d..11e13c5 100644
46992 --- a/drivers/isdn/gigaset/bas-gigaset.c
46993 +++ b/drivers/isdn/gigaset/bas-gigaset.c
46994 @@ -2565,22 +2565,22 @@ static int gigaset_post_reset(struct usb_interface *intf)
46995
46996
46997 static const struct gigaset_ops gigops = {
46998 - gigaset_write_cmd,
46999 - gigaset_write_room,
47000 - gigaset_chars_in_buffer,
47001 - gigaset_brkchars,
47002 - gigaset_init_bchannel,
47003 - gigaset_close_bchannel,
47004 - gigaset_initbcshw,
47005 - gigaset_freebcshw,
47006 - gigaset_reinitbcshw,
47007 - gigaset_initcshw,
47008 - gigaset_freecshw,
47009 - gigaset_set_modem_ctrl,
47010 - gigaset_baud_rate,
47011 - gigaset_set_line_ctrl,
47012 - gigaset_isoc_send_skb,
47013 - gigaset_isoc_input,
47014 + .write_cmd = gigaset_write_cmd,
47015 + .write_room = gigaset_write_room,
47016 + .chars_in_buffer = gigaset_chars_in_buffer,
47017 + .brkchars = gigaset_brkchars,
47018 + .init_bchannel = gigaset_init_bchannel,
47019 + .close_bchannel = gigaset_close_bchannel,
47020 + .initbcshw = gigaset_initbcshw,
47021 + .freebcshw = gigaset_freebcshw,
47022 + .reinitbcshw = gigaset_reinitbcshw,
47023 + .initcshw = gigaset_initcshw,
47024 + .freecshw = gigaset_freecshw,
47025 + .set_modem_ctrl = gigaset_set_modem_ctrl,
47026 + .baud_rate = gigaset_baud_rate,
47027 + .set_line_ctrl = gigaset_set_line_ctrl,
47028 + .send_skb = gigaset_isoc_send_skb,
47029 + .handle_input = gigaset_isoc_input,
47030 };
47031
47032 /* bas_gigaset_init
47033 diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
47034 index 600c79b..3752bab 100644
47035 --- a/drivers/isdn/gigaset/interface.c
47036 +++ b/drivers/isdn/gigaset/interface.c
47037 @@ -130,9 +130,9 @@ static int if_open(struct tty_struct *tty, struct file *filp)
47038 }
47039 tty->driver_data = cs;
47040
47041 - ++cs->port.count;
47042 + atomic_inc(&cs->port.count);
47043
47044 - if (cs->port.count == 1) {
47045 + if (atomic_read(&cs->port.count) == 1) {
47046 tty_port_tty_set(&cs->port, tty);
47047 cs->port.low_latency = 1;
47048 }
47049 @@ -156,9 +156,9 @@ static void if_close(struct tty_struct *tty, struct file *filp)
47050
47051 if (!cs->connected)
47052 gig_dbg(DEBUG_IF, "not connected"); /* nothing to do */
47053 - else if (!cs->port.count)
47054 + else if (!atomic_read(&cs->port.count))
47055 dev_warn(cs->dev, "%s: device not opened\n", __func__);
47056 - else if (!--cs->port.count)
47057 + else if (!atomic_dec_return(&cs->port.count))
47058 tty_port_tty_set(&cs->port, NULL);
47059
47060 mutex_unlock(&cs->mutex);
47061 diff --git a/drivers/isdn/gigaset/ser-gigaset.c b/drivers/isdn/gigaset/ser-gigaset.c
47062 index 375be50..675293c 100644
47063 --- a/drivers/isdn/gigaset/ser-gigaset.c
47064 +++ b/drivers/isdn/gigaset/ser-gigaset.c
47065 @@ -453,22 +453,22 @@ static int gigaset_set_line_ctrl(struct cardstate *cs, unsigned cflag)
47066 }
47067
47068 static const struct gigaset_ops ops = {
47069 - gigaset_write_cmd,
47070 - gigaset_write_room,
47071 - gigaset_chars_in_buffer,
47072 - gigaset_brkchars,
47073 - gigaset_init_bchannel,
47074 - gigaset_close_bchannel,
47075 - gigaset_initbcshw,
47076 - gigaset_freebcshw,
47077 - gigaset_reinitbcshw,
47078 - gigaset_initcshw,
47079 - gigaset_freecshw,
47080 - gigaset_set_modem_ctrl,
47081 - gigaset_baud_rate,
47082 - gigaset_set_line_ctrl,
47083 - gigaset_m10x_send_skb, /* asyncdata.c */
47084 - gigaset_m10x_input, /* asyncdata.c */
47085 + .write_cmd = gigaset_write_cmd,
47086 + .write_room = gigaset_write_room,
47087 + .chars_in_buffer = gigaset_chars_in_buffer,
47088 + .brkchars = gigaset_brkchars,
47089 + .init_bchannel = gigaset_init_bchannel,
47090 + .close_bchannel = gigaset_close_bchannel,
47091 + .initbcshw = gigaset_initbcshw,
47092 + .freebcshw = gigaset_freebcshw,
47093 + .reinitbcshw = gigaset_reinitbcshw,
47094 + .initcshw = gigaset_initcshw,
47095 + .freecshw = gigaset_freecshw,
47096 + .set_modem_ctrl = gigaset_set_modem_ctrl,
47097 + .baud_rate = gigaset_baud_rate,
47098 + .set_line_ctrl = gigaset_set_line_ctrl,
47099 + .send_skb = gigaset_m10x_send_skb, /* asyncdata.c */
47100 + .handle_input = gigaset_m10x_input, /* asyncdata.c */
47101 };
47102
47103
47104 diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
47105 index 5f306e2..5342f88 100644
47106 --- a/drivers/isdn/gigaset/usb-gigaset.c
47107 +++ b/drivers/isdn/gigaset/usb-gigaset.c
47108 @@ -543,7 +543,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6])
47109 gigaset_dbg_buffer(DEBUG_USBREQ, "brkchars", 6, buf);
47110 memcpy(cs->hw.usb->bchars, buf, 6);
47111 return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x19, 0x41,
47112 - 0, 0, &buf, 6, 2000);
47113 + 0, 0, buf, 6, 2000);
47114 }
47115
47116 static void gigaset_freebcshw(struct bc_state *bcs)
47117 @@ -862,22 +862,22 @@ static int gigaset_pre_reset(struct usb_interface *intf)
47118 }
47119
47120 static const struct gigaset_ops ops = {
47121 - gigaset_write_cmd,
47122 - gigaset_write_room,
47123 - gigaset_chars_in_buffer,
47124 - gigaset_brkchars,
47125 - gigaset_init_bchannel,
47126 - gigaset_close_bchannel,
47127 - gigaset_initbcshw,
47128 - gigaset_freebcshw,
47129 - gigaset_reinitbcshw,
47130 - gigaset_initcshw,
47131 - gigaset_freecshw,
47132 - gigaset_set_modem_ctrl,
47133 - gigaset_baud_rate,
47134 - gigaset_set_line_ctrl,
47135 - gigaset_m10x_send_skb,
47136 - gigaset_m10x_input,
47137 + .write_cmd = gigaset_write_cmd,
47138 + .write_room = gigaset_write_room,
47139 + .chars_in_buffer = gigaset_chars_in_buffer,
47140 + .brkchars = gigaset_brkchars,
47141 + .init_bchannel = gigaset_init_bchannel,
47142 + .close_bchannel = gigaset_close_bchannel,
47143 + .initbcshw = gigaset_initbcshw,
47144 + .freebcshw = gigaset_freebcshw,
47145 + .reinitbcshw = gigaset_reinitbcshw,
47146 + .initcshw = gigaset_initcshw,
47147 + .freecshw = gigaset_freecshw,
47148 + .set_modem_ctrl = gigaset_set_modem_ctrl,
47149 + .baud_rate = gigaset_baud_rate,
47150 + .set_line_ctrl = gigaset_set_line_ctrl,
47151 + .send_skb = gigaset_m10x_send_skb,
47152 + .handle_input = gigaset_m10x_input,
47153 };
47154
47155 /*
47156 diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
47157 index 4d9b195..455075c 100644
47158 --- a/drivers/isdn/hardware/avm/b1.c
47159 +++ b/drivers/isdn/hardware/avm/b1.c
47160 @@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
47161 }
47162 if (left) {
47163 if (t4file->user) {
47164 - if (copy_from_user(buf, dp, left))
47165 + if (left > sizeof buf || copy_from_user(buf, dp, left))
47166 return -EFAULT;
47167 } else {
47168 memcpy(buf, dp, left);
47169 @@ -224,7 +224,7 @@ int b1_load_config(avmcard *card, capiloaddatapart *config)
47170 }
47171 if (left) {
47172 if (config->user) {
47173 - if (copy_from_user(buf, dp, left))
47174 + if (left > sizeof buf || copy_from_user(buf, dp, left))
47175 return -EFAULT;
47176 } else {
47177 memcpy(buf, dp, left);
47178 diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
47179 index b33f53b..bf04d2a 100644
47180 --- a/drivers/isdn/hisax/config.c
47181 +++ b/drivers/isdn/hisax/config.c
47182 @@ -1896,7 +1896,7 @@ static void EChannel_proc_rcv(struct hisax_d_if *d_if)
47183 ptr--;
47184 *ptr++ = '\n';
47185 *ptr = 0;
47186 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
47187 + HiSax_putstatus(cs, NULL, cs->dlog);
47188 } else
47189 HiSax_putstatus(cs, "LogEcho: ",
47190 "warning Frame too big (%d)",
47191 diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
47192 index 4a48255..90449e1 100644
47193 --- a/drivers/isdn/hisax/hfc_pci.c
47194 +++ b/drivers/isdn/hisax/hfc_pci.c
47195 @@ -901,7 +901,7 @@ Begin:
47196 ptr--;
47197 *ptr++ = '\n';
47198 *ptr = 0;
47199 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
47200 + HiSax_putstatus(cs, NULL, cs->dlog);
47201 } else
47202 HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", total - 3);
47203 }
47204 diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c
47205 index b1fad81..13b2151 100644
47206 --- a/drivers/isdn/hisax/hfc_sx.c
47207 +++ b/drivers/isdn/hisax/hfc_sx.c
47208 @@ -674,7 +674,7 @@ receive_emsg(struct IsdnCardState *cs)
47209 ptr--;
47210 *ptr++ = '\n';
47211 *ptr = 0;
47212 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
47213 + HiSax_putstatus(cs, NULL, cs->dlog);
47214 } else
47215 HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", skb->len);
47216 }
47217 diff --git a/drivers/isdn/hisax/q931.c b/drivers/isdn/hisax/q931.c
47218 index b420f8b..ba4beb2 100644
47219 --- a/drivers/isdn/hisax/q931.c
47220 +++ b/drivers/isdn/hisax/q931.c
47221 @@ -1179,7 +1179,7 @@ LogFrame(struct IsdnCardState *cs, u_char *buf, int size)
47222 dp--;
47223 *dp++ = '\n';
47224 *dp = 0;
47225 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
47226 + HiSax_putstatus(cs, NULL, cs->dlog);
47227 } else
47228 HiSax_putstatus(cs, "LogFrame: ", "warning Frame too big (%d)", size);
47229 }
47230 @@ -1246,7 +1246,7 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
47231 }
47232 if (finish) {
47233 *dp = 0;
47234 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
47235 + HiSax_putstatus(cs, NULL, cs->dlog);
47236 return;
47237 }
47238 if ((0xfe & buf[0]) == PROTO_DIS_N0) { /* 1TR6 */
47239 @@ -1509,5 +1509,5 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
47240 dp += sprintf(dp, "Unknown protocol %x!", buf[0]);
47241 }
47242 *dp = 0;
47243 - HiSax_putstatus(cs, NULL, "%s", cs->dlog);
47244 + HiSax_putstatus(cs, NULL, cs->dlog);
47245 }
47246 diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
47247 index 9b856e1..fa03c92 100644
47248 --- a/drivers/isdn/i4l/isdn_common.c
47249 +++ b/drivers/isdn/i4l/isdn_common.c
47250 @@ -1654,6 +1654,8 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
47251 } else
47252 return -EINVAL;
47253 case IIOCDBGVAR:
47254 + if (!capable(CAP_SYS_RAWIO))
47255 + return -EPERM;
47256 if (arg) {
47257 if (copy_to_user(argp, &dev, sizeof(ulong)))
47258 return -EFAULT;
47259 diff --git a/drivers/isdn/i4l/isdn_concap.c b/drivers/isdn/i4l/isdn_concap.c
47260 index 91d5730..336523e 100644
47261 --- a/drivers/isdn/i4l/isdn_concap.c
47262 +++ b/drivers/isdn/i4l/isdn_concap.c
47263 @@ -80,9 +80,9 @@ static int isdn_concap_dl_disconn_req(struct concap_proto *concap)
47264 }
47265
47266 struct concap_device_ops isdn_concap_reliable_dl_dops = {
47267 - &isdn_concap_dl_data_req,
47268 - &isdn_concap_dl_connect_req,
47269 - &isdn_concap_dl_disconn_req
47270 + .data_req = &isdn_concap_dl_data_req,
47271 + .connect_req = &isdn_concap_dl_connect_req,
47272 + .disconn_req = &isdn_concap_dl_disconn_req
47273 };
47274
47275 /* The following should better go into a dedicated source file such that
47276 diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
47277 index bc91261..2ef7e36 100644
47278 --- a/drivers/isdn/i4l/isdn_tty.c
47279 +++ b/drivers/isdn/i4l/isdn_tty.c
47280 @@ -1503,9 +1503,9 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
47281
47282 #ifdef ISDN_DEBUG_MODEM_OPEN
47283 printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name,
47284 - port->count);
47285 + atomic_read(&port->count));
47286 #endif
47287 - port->count++;
47288 + atomic_inc(&port->count);
47289 port->tty = tty;
47290 /*
47291 * Start up serial port
47292 @@ -1549,7 +1549,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
47293 #endif
47294 return;
47295 }
47296 - if ((tty->count == 1) && (port->count != 1)) {
47297 + if ((tty->count == 1) && (atomic_read(&port->count) != 1)) {
47298 /*
47299 * Uh, oh. tty->count is 1, which means that the tty
47300 * structure will be freed. Info->count should always
47301 @@ -1558,15 +1558,15 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
47302 * serial port won't be shutdown.
47303 */
47304 printk(KERN_ERR "isdn_tty_close: bad port count; tty->count is 1, "
47305 - "info->count is %d\n", port->count);
47306 - port->count = 1;
47307 + "info->count is %d\n", atomic_read(&port->count));
47308 + atomic_set(&port->count, 1);
47309 }
47310 - if (--port->count < 0) {
47311 + if (atomic_dec_return(&port->count) < 0) {
47312 printk(KERN_ERR "isdn_tty_close: bad port count for ttyi%d: %d\n",
47313 - info->line, port->count);
47314 - port->count = 0;
47315 + info->line, atomic_read(&port->count));
47316 + atomic_set(&port->count, 0);
47317 }
47318 - if (port->count) {
47319 + if (atomic_read(&port->count)) {
47320 #ifdef ISDN_DEBUG_MODEM_OPEN
47321 printk(KERN_DEBUG "isdn_tty_close after info->count != 0\n");
47322 #endif
47323 @@ -1620,7 +1620,7 @@ isdn_tty_hangup(struct tty_struct *tty)
47324 if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_hangup"))
47325 return;
47326 isdn_tty_shutdown(info);
47327 - port->count = 0;
47328 + atomic_set(&port->count, 0);
47329 port->flags &= ~ASYNC_NORMAL_ACTIVE;
47330 port->tty = NULL;
47331 wake_up_interruptible(&port->open_wait);
47332 @@ -1965,7 +1965,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
47333 for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
47334 modem_info *info = &dev->mdm.info[i];
47335
47336 - if (info->port.count == 0)
47337 + if (atomic_read(&info->port.count) == 0)
47338 continue;
47339 if ((info->emu.mdmreg[REG_SI1] & si2bit[si1]) && /* SI1 is matching */
47340 (info->emu.mdmreg[REG_SI2] == si2)) { /* SI2 is matching */
47341 diff --git a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
47342 index e2d4e58..40cd045 100644
47343 --- a/drivers/isdn/i4l/isdn_x25iface.c
47344 +++ b/drivers/isdn/i4l/isdn_x25iface.c
47345 @@ -53,14 +53,14 @@ static int isdn_x25iface_disconn_ind(struct concap_proto *);
47346
47347
47348 static struct concap_proto_ops ix25_pops = {
47349 - &isdn_x25iface_proto_new,
47350 - &isdn_x25iface_proto_del,
47351 - &isdn_x25iface_proto_restart,
47352 - &isdn_x25iface_proto_close,
47353 - &isdn_x25iface_xmit,
47354 - &isdn_x25iface_receive,
47355 - &isdn_x25iface_connect_ind,
47356 - &isdn_x25iface_disconn_ind
47357 + .proto_new = &isdn_x25iface_proto_new,
47358 + .proto_del = &isdn_x25iface_proto_del,
47359 + .restart = &isdn_x25iface_proto_restart,
47360 + .close = &isdn_x25iface_proto_close,
47361 + .encap_and_xmit = &isdn_x25iface_xmit,
47362 + .data_ind = &isdn_x25iface_receive,
47363 + .connect_ind = &isdn_x25iface_connect_ind,
47364 + .disconn_ind = &isdn_x25iface_disconn_ind
47365 };
47366
47367 /* error message helper function */
47368 diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
47369 index 358a574..b4987ea 100644
47370 --- a/drivers/isdn/icn/icn.c
47371 +++ b/drivers/isdn/icn/icn.c
47372 @@ -1045,7 +1045,7 @@ icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
47373 if (count > len)
47374 count = len;
47375 if (user) {
47376 - if (copy_from_user(msg, buf, count))
47377 + if (count > sizeof msg || copy_from_user(msg, buf, count))
47378 return -EFAULT;
47379 } else
47380 memcpy(msg, buf, count);
47381 diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
47382 index 52c4382..09e0c7c 100644
47383 --- a/drivers/isdn/mISDN/dsp_cmx.c
47384 +++ b/drivers/isdn/mISDN/dsp_cmx.c
47385 @@ -1625,7 +1625,7 @@ unsigned long dsp_spl_jiffies; /* calculate the next time to fire */
47386 static u16 dsp_count; /* last sample count */
47387 static int dsp_count_valid; /* if we have last sample count */
47388
47389 -void
47390 +void __intentional_overflow(-1)
47391 dsp_cmx_send(void *arg)
47392 {
47393 struct dsp_conf *conf;
47394 diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
47395 index 312ffd3..d060510 100644
47396 --- a/drivers/lguest/core.c
47397 +++ b/drivers/lguest/core.c
47398 @@ -96,9 +96,17 @@ static __init int map_switcher(void)
47399 * The end address needs +1 because __get_vm_area allocates an
47400 * extra guard page, so we need space for that.
47401 */
47402 +
47403 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
47404 + switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47405 + VM_ALLOC | VM_KERNEXEC, switcher_addr, switcher_addr
47406 + + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47407 +#else
47408 switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47409 VM_ALLOC, switcher_addr, switcher_addr
47410 + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47411 +#endif
47412 +
47413 if (!switcher_vma) {
47414 err = -ENOMEM;
47415 printk("lguest: could not map switcher pages high\n");
47416 @@ -121,7 +129,7 @@ static __init int map_switcher(void)
47417 * Now the Switcher is mapped at the right address, we can't fail!
47418 * Copy in the compiled-in Switcher code (from x86/switcher_32.S).
47419 */
47420 - memcpy(switcher_vma->addr, start_switcher_text,
47421 + memcpy(switcher_vma->addr, (void *)ktla_ktva((unsigned long)start_switcher_text),
47422 end_switcher_text - start_switcher_text);
47423
47424 printk(KERN_INFO "lguest: mapped switcher at %p\n",
47425 diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
47426 index e3abebc9..6a35328 100644
47427 --- a/drivers/lguest/page_tables.c
47428 +++ b/drivers/lguest/page_tables.c
47429 @@ -585,7 +585,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr)
47430 /*:*/
47431
47432 #ifdef CONFIG_X86_PAE
47433 -static void release_pmd(pmd_t *spmd)
47434 +static void __intentional_overflow(-1) release_pmd(pmd_t *spmd)
47435 {
47436 /* If the entry's not present, there's nothing to release. */
47437 if (pmd_flags(*spmd) & _PAGE_PRESENT) {
47438 diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
47439 index 6a4cd77..c9e2d9f 100644
47440 --- a/drivers/lguest/x86/core.c
47441 +++ b/drivers/lguest/x86/core.c
47442 @@ -60,7 +60,7 @@ static struct {
47443 /* Offset from where switcher.S was compiled to where we've copied it */
47444 static unsigned long switcher_offset(void)
47445 {
47446 - return switcher_addr - (unsigned long)start_switcher_text;
47447 + return switcher_addr - ktla_ktva((unsigned long)start_switcher_text);
47448 }
47449
47450 /* This cpu's struct lguest_pages (after the Switcher text page) */
47451 @@ -100,7 +100,13 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages)
47452 * These copies are pretty cheap, so we do them unconditionally: */
47453 /* Save the current Host top-level page directory.
47454 */
47455 +
47456 +#ifdef CONFIG_PAX_PER_CPU_PGD
47457 + pages->state.host_cr3 = read_cr3();
47458 +#else
47459 pages->state.host_cr3 = __pa(current->mm->pgd);
47460 +#endif
47461 +
47462 /*
47463 * Set up the Guest's page tables to see this CPU's pages (and no
47464 * other CPU's pages).
47465 @@ -494,7 +500,7 @@ void __init lguest_arch_host_init(void)
47466 * compiled-in switcher code and the high-mapped copy we just made.
47467 */
47468 for (i = 0; i < IDT_ENTRIES; i++)
47469 - default_idt_entries[i] += switcher_offset();
47470 + default_idt_entries[i] = ktla_ktva(default_idt_entries[i]) + switcher_offset();
47471
47472 /*
47473 * Set up the Switcher's per-cpu areas.
47474 @@ -577,7 +583,7 @@ void __init lguest_arch_host_init(void)
47475 * it will be undisturbed when we switch. To change %cs and jump we
47476 * need this structure to feed to Intel's "lcall" instruction.
47477 */
47478 - lguest_entry.offset = (long)switch_to_guest + switcher_offset();
47479 + lguest_entry.offset = ktla_ktva((unsigned long)switch_to_guest) + switcher_offset();
47480 lguest_entry.segment = LGUEST_CS;
47481
47482 /*
47483 diff --git a/drivers/lguest/x86/switcher_32.S b/drivers/lguest/x86/switcher_32.S
47484 index 40634b0..4f5855e 100644
47485 --- a/drivers/lguest/x86/switcher_32.S
47486 +++ b/drivers/lguest/x86/switcher_32.S
47487 @@ -87,6 +87,7 @@
47488 #include <asm/page.h>
47489 #include <asm/segment.h>
47490 #include <asm/lguest.h>
47491 +#include <asm/processor-flags.h>
47492
47493 // We mark the start of the code to copy
47494 // It's placed in .text tho it's never run here
47495 @@ -149,6 +150,13 @@ ENTRY(switch_to_guest)
47496 // Changes type when we load it: damn Intel!
47497 // For after we switch over our page tables
47498 // That entry will be read-only: we'd crash.
47499 +
47500 +#ifdef CONFIG_PAX_KERNEXEC
47501 + mov %cr0, %edx
47502 + xor $X86_CR0_WP, %edx
47503 + mov %edx, %cr0
47504 +#endif
47505 +
47506 movl $(GDT_ENTRY_TSS*8), %edx
47507 ltr %dx
47508
47509 @@ -157,9 +165,15 @@ ENTRY(switch_to_guest)
47510 // Let's clear it again for our return.
47511 // The GDT descriptor of the Host
47512 // Points to the table after two "size" bytes
47513 - movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %edx
47514 + movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %eax
47515 // Clear "used" from type field (byte 5, bit 2)
47516 - andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%edx)
47517 + andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%eax)
47518 +
47519 +#ifdef CONFIG_PAX_KERNEXEC
47520 + mov %cr0, %eax
47521 + xor $X86_CR0_WP, %eax
47522 + mov %eax, %cr0
47523 +#endif
47524
47525 // Once our page table's switched, the Guest is live!
47526 // The Host fades as we run this final step.
47527 @@ -295,13 +309,12 @@ deliver_to_host:
47528 // I consulted gcc, and it gave
47529 // These instructions, which I gladly credit:
47530 leal (%edx,%ebx,8), %eax
47531 - movzwl (%eax),%edx
47532 - movl 4(%eax), %eax
47533 - xorw %ax, %ax
47534 - orl %eax, %edx
47535 + movl 4(%eax), %edx
47536 + movw (%eax), %dx
47537 // Now the address of the handler's in %edx
47538 // We call it now: its "iret" drops us home.
47539 - jmp *%edx
47540 + ljmp $__KERNEL_CS, $1f
47541 +1: jmp *%edx
47542
47543 // Every interrupt can come to us here
47544 // But we must truly tell each apart.
47545 diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
47546 index 4d20088..de60cb2 100644
47547 --- a/drivers/md/bcache/Kconfig
47548 +++ b/drivers/md/bcache/Kconfig
47549 @@ -20,6 +20,7 @@ config BCACHE_CLOSURES_DEBUG
47550 bool "Debug closures"
47551 depends on BCACHE
47552 select DEBUG_FS
47553 + depends on !GRKERNSEC_KMEM
47554 ---help---
47555 Keeps all active closures in a linked list and provides a debugfs
47556 interface to list them, which makes it possible to see asynchronous
47557 diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h
47558 index 79a6d63..47acff6 100644
47559 --- a/drivers/md/bcache/closure.h
47560 +++ b/drivers/md/bcache/closure.h
47561 @@ -238,7 +238,7 @@ static inline void closure_set_stopped(struct closure *cl)
47562 static inline void set_closure_fn(struct closure *cl, closure_fn *fn,
47563 struct workqueue_struct *wq)
47564 {
47565 - BUG_ON(object_is_on_stack(cl));
47566 + BUG_ON(object_starts_on_stack(cl));
47567 closure_set_ip(cl);
47568 cl->fn = fn;
47569 cl->wq = wq;
47570 diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
47571 index 48b5890..b0af0ca 100644
47572 --- a/drivers/md/bitmap.c
47573 +++ b/drivers/md/bitmap.c
47574 @@ -1933,7 +1933,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
47575 chunk_kb ? "KB" : "B");
47576 if (bitmap->storage.file) {
47577 seq_printf(seq, ", file: ");
47578 - seq_file_path(seq, bitmap->storage.file, " \t\n");
47579 + seq_file_path(seq, bitmap->storage.file, " \t\n\\");
47580 }
47581
47582 seq_printf(seq, "\n");
47583 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
47584 index 720ceeb..030f1d4 100644
47585 --- a/drivers/md/dm-ioctl.c
47586 +++ b/drivers/md/dm-ioctl.c
47587 @@ -1773,7 +1773,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
47588 cmd == DM_LIST_VERSIONS_CMD)
47589 return 0;
47590
47591 - if ((cmd == DM_DEV_CREATE_CMD)) {
47592 + if (cmd == DM_DEV_CREATE_CMD) {
47593 if (!*param->name) {
47594 DMWARN("name not supplied when creating device");
47595 return -EINVAL;
47596 diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
47597 index d83696b..44f22f7 100644
47598 --- a/drivers/md/dm-raid1.c
47599 +++ b/drivers/md/dm-raid1.c
47600 @@ -42,7 +42,7 @@ enum dm_raid1_error {
47601
47602 struct mirror {
47603 struct mirror_set *ms;
47604 - atomic_t error_count;
47605 + atomic_unchecked_t error_count;
47606 unsigned long error_type;
47607 struct dm_dev *dev;
47608 sector_t offset;
47609 @@ -188,7 +188,7 @@ static struct mirror *get_valid_mirror(struct mirror_set *ms)
47610 struct mirror *m;
47611
47612 for (m = ms->mirror; m < ms->mirror + ms->nr_mirrors; m++)
47613 - if (!atomic_read(&m->error_count))
47614 + if (!atomic_read_unchecked(&m->error_count))
47615 return m;
47616
47617 return NULL;
47618 @@ -220,7 +220,7 @@ static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type)
47619 * simple way to tell if a device has encountered
47620 * errors.
47621 */
47622 - atomic_inc(&m->error_count);
47623 + atomic_inc_unchecked(&m->error_count);
47624
47625 if (test_and_set_bit(error_type, &m->error_type))
47626 return;
47627 @@ -378,7 +378,7 @@ static void reset_ms_flags(struct mirror_set *ms)
47628
47629 ms->leg_failure = 0;
47630 for (m = 0; m < ms->nr_mirrors; m++) {
47631 - atomic_set(&(ms->mirror[m].error_count), 0);
47632 + atomic_set_unchecked(&(ms->mirror[m].error_count), 0);
47633 ms->mirror[m].error_type = 0;
47634 }
47635 }
47636 @@ -423,7 +423,7 @@ static struct mirror *choose_mirror(struct mirror_set *ms, sector_t sector)
47637 struct mirror *m = get_default_mirror(ms);
47638
47639 do {
47640 - if (likely(!atomic_read(&m->error_count)))
47641 + if (likely(!atomic_read_unchecked(&m->error_count)))
47642 return m;
47643
47644 if (m-- == ms->mirror)
47645 @@ -437,7 +437,7 @@ static int default_ok(struct mirror *m)
47646 {
47647 struct mirror *default_mirror = get_default_mirror(m->ms);
47648
47649 - return !atomic_read(&default_mirror->error_count);
47650 + return !atomic_read_unchecked(&default_mirror->error_count);
47651 }
47652
47653 static int mirror_available(struct mirror_set *ms, struct bio *bio)
47654 @@ -574,7 +574,7 @@ static void do_reads(struct mirror_set *ms, struct bio_list *reads)
47655 */
47656 if (likely(region_in_sync(ms, region, 1)))
47657 m = choose_mirror(ms, bio->bi_iter.bi_sector);
47658 - else if (m && atomic_read(&m->error_count))
47659 + else if (m && atomic_read_unchecked(&m->error_count))
47660 m = NULL;
47661
47662 if (likely(m))
47663 @@ -956,7 +956,7 @@ static int get_mirror(struct mirror_set *ms, struct dm_target *ti,
47664 }
47665
47666 ms->mirror[mirror].ms = ms;
47667 - atomic_set(&(ms->mirror[mirror].error_count), 0);
47668 + atomic_set_unchecked(&(ms->mirror[mirror].error_count), 0);
47669 ms->mirror[mirror].error_type = 0;
47670 ms->mirror[mirror].offset = offset;
47671
47672 @@ -1380,7 +1380,7 @@ static void mirror_resume(struct dm_target *ti)
47673 */
47674 static char device_status_char(struct mirror *m)
47675 {
47676 - if (!atomic_read(&(m->error_count)))
47677 + if (!atomic_read_unchecked(&(m->error_count)))
47678 return 'A';
47679
47680 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
47681 diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
47682 index 8289804..12db118 100644
47683 --- a/drivers/md/dm-stats.c
47684 +++ b/drivers/md/dm-stats.c
47685 @@ -435,7 +435,7 @@ do_sync_free:
47686 synchronize_rcu_expedited();
47687 dm_stat_free(&s->rcu_head);
47688 } else {
47689 - ACCESS_ONCE(dm_stat_need_rcu_barrier) = 1;
47690 + ACCESS_ONCE_RW(dm_stat_need_rcu_barrier) = 1;
47691 call_rcu(&s->rcu_head, dm_stat_free);
47692 }
47693 return 0;
47694 @@ -648,8 +648,8 @@ void dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw,
47695 ((bi_rw & (REQ_WRITE | REQ_DISCARD)) ==
47696 (ACCESS_ONCE(last->last_rw) & (REQ_WRITE | REQ_DISCARD)))
47697 ));
47698 - ACCESS_ONCE(last->last_sector) = end_sector;
47699 - ACCESS_ONCE(last->last_rw) = bi_rw;
47700 + ACCESS_ONCE_RW(last->last_sector) = end_sector;
47701 + ACCESS_ONCE_RW(last->last_rw) = bi_rw;
47702 }
47703
47704 rcu_read_lock();
47705 diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
47706 index a672a15..dc85e99 100644
47707 --- a/drivers/md/dm-stripe.c
47708 +++ b/drivers/md/dm-stripe.c
47709 @@ -21,7 +21,7 @@ struct stripe {
47710 struct dm_dev *dev;
47711 sector_t physical_start;
47712
47713 - atomic_t error_count;
47714 + atomic_unchecked_t error_count;
47715 };
47716
47717 struct stripe_c {
47718 @@ -188,7 +188,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
47719 kfree(sc);
47720 return r;
47721 }
47722 - atomic_set(&(sc->stripe[i].error_count), 0);
47723 + atomic_set_unchecked(&(sc->stripe[i].error_count), 0);
47724 }
47725
47726 ti->private = sc;
47727 @@ -332,7 +332,7 @@ static void stripe_status(struct dm_target *ti, status_type_t type,
47728 DMEMIT("%d ", sc->stripes);
47729 for (i = 0; i < sc->stripes; i++) {
47730 DMEMIT("%s ", sc->stripe[i].dev->name);
47731 - buffer[i] = atomic_read(&(sc->stripe[i].error_count)) ?
47732 + buffer[i] = atomic_read_unchecked(&(sc->stripe[i].error_count)) ?
47733 'D' : 'A';
47734 }
47735 buffer[i] = '\0';
47736 @@ -377,8 +377,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, int error)
47737 */
47738 for (i = 0; i < sc->stripes; i++)
47739 if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
47740 - atomic_inc(&(sc->stripe[i].error_count));
47741 - if (atomic_read(&(sc->stripe[i].error_count)) <
47742 + atomic_inc_unchecked(&(sc->stripe[i].error_count));
47743 + if (atomic_read_unchecked(&(sc->stripe[i].error_count)) <
47744 DM_IO_ERROR_THRESHOLD)
47745 schedule_work(&sc->trigger_event);
47746 }
47747 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
47748 index 16ba55a..31af906 100644
47749 --- a/drivers/md/dm-table.c
47750 +++ b/drivers/md/dm-table.c
47751 @@ -305,7 +305,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
47752 if (!dev_size)
47753 return 0;
47754
47755 - if ((start >= dev_size) || (start + len > dev_size)) {
47756 + if ((start >= dev_size) || (len > dev_size - start)) {
47757 DMWARN("%s: %s too small for target: "
47758 "start=%llu, len=%llu, dev_size=%llu",
47759 dm_device_name(ti->table->md), bdevname(bdev, b),
47760 diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
47761 index 6ba47cf..a870ba2 100644
47762 --- a/drivers/md/dm-thin-metadata.c
47763 +++ b/drivers/md/dm-thin-metadata.c
47764 @@ -403,7 +403,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
47765 {
47766 pmd->info.tm = pmd->tm;
47767 pmd->info.levels = 2;
47768 - pmd->info.value_type.context = pmd->data_sm;
47769 + pmd->info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
47770 pmd->info.value_type.size = sizeof(__le64);
47771 pmd->info.value_type.inc = data_block_inc;
47772 pmd->info.value_type.dec = data_block_dec;
47773 @@ -422,7 +422,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
47774
47775 pmd->bl_info.tm = pmd->tm;
47776 pmd->bl_info.levels = 1;
47777 - pmd->bl_info.value_type.context = pmd->data_sm;
47778 + pmd->bl_info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
47779 pmd->bl_info.value_type.size = sizeof(__le64);
47780 pmd->bl_info.value_type.inc = data_block_inc;
47781 pmd->bl_info.value_type.dec = data_block_dec;
47782 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
47783 index 3e32f4e..01e0a7f 100644
47784 --- a/drivers/md/dm.c
47785 +++ b/drivers/md/dm.c
47786 @@ -194,9 +194,9 @@ struct mapped_device {
47787 /*
47788 * Event handling.
47789 */
47790 - atomic_t event_nr;
47791 + atomic_unchecked_t event_nr;
47792 wait_queue_head_t eventq;
47793 - atomic_t uevent_seq;
47794 + atomic_unchecked_t uevent_seq;
47795 struct list_head uevent_list;
47796 spinlock_t uevent_lock; /* Protect access to uevent_list */
47797
47798 @@ -2339,8 +2339,8 @@ static struct mapped_device *alloc_dev(int minor)
47799 spin_lock_init(&md->deferred_lock);
47800 atomic_set(&md->holders, 1);
47801 atomic_set(&md->open_count, 0);
47802 - atomic_set(&md->event_nr, 0);
47803 - atomic_set(&md->uevent_seq, 0);
47804 + atomic_set_unchecked(&md->event_nr, 0);
47805 + atomic_set_unchecked(&md->uevent_seq, 0);
47806 INIT_LIST_HEAD(&md->uevent_list);
47807 INIT_LIST_HEAD(&md->table_devices);
47808 spin_lock_init(&md->uevent_lock);
47809 @@ -2481,7 +2481,7 @@ static void event_callback(void *context)
47810
47811 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
47812
47813 - atomic_inc(&md->event_nr);
47814 + atomic_inc_unchecked(&md->event_nr);
47815 wake_up(&md->eventq);
47816 }
47817
47818 @@ -3479,18 +3479,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
47819
47820 uint32_t dm_next_uevent_seq(struct mapped_device *md)
47821 {
47822 - return atomic_add_return(1, &md->uevent_seq);
47823 + return atomic_add_return_unchecked(1, &md->uevent_seq);
47824 }
47825
47826 uint32_t dm_get_event_nr(struct mapped_device *md)
47827 {
47828 - return atomic_read(&md->event_nr);
47829 + return atomic_read_unchecked(&md->event_nr);
47830 }
47831
47832 int dm_wait_event(struct mapped_device *md, int event_nr)
47833 {
47834 return wait_event_interruptible(md->eventq,
47835 - (event_nr != atomic_read(&md->event_nr)));
47836 + (event_nr != atomic_read_unchecked(&md->event_nr)));
47837 }
47838
47839 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
47840 diff --git a/drivers/md/md.c b/drivers/md/md.c
47841 index 95e7b72..3d67ca6 100644
47842 --- a/drivers/md/md.c
47843 +++ b/drivers/md/md.c
47844 @@ -197,10 +197,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
47845 * start build, activate spare
47846 */
47847 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
47848 -static atomic_t md_event_count;
47849 +static atomic_unchecked_t md_event_count;
47850 void md_new_event(struct mddev *mddev)
47851 {
47852 - atomic_inc(&md_event_count);
47853 + atomic_inc_unchecked(&md_event_count);
47854 wake_up(&md_event_waiters);
47855 }
47856 EXPORT_SYMBOL_GPL(md_new_event);
47857 @@ -210,7 +210,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
47858 */
47859 static void md_new_event_inintr(struct mddev *mddev)
47860 {
47861 - atomic_inc(&md_event_count);
47862 + atomic_inc_unchecked(&md_event_count);
47863 wake_up(&md_event_waiters);
47864 }
47865
47866 @@ -1449,7 +1449,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
47867 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
47868 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
47869 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
47870 - atomic_set(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
47871 + atomic_set_unchecked(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
47872
47873 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
47874 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
47875 @@ -1700,7 +1700,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
47876 else
47877 sb->resync_offset = cpu_to_le64(0);
47878
47879 - sb->cnt_corrected_read = cpu_to_le32(atomic_read(&rdev->corrected_errors));
47880 + sb->cnt_corrected_read = cpu_to_le32(atomic_read_unchecked(&rdev->corrected_errors));
47881
47882 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
47883 sb->size = cpu_to_le64(mddev->dev_sectors);
47884 @@ -2622,7 +2622,7 @@ __ATTR_PREALLOC(state, S_IRUGO|S_IWUSR, state_show, state_store);
47885 static ssize_t
47886 errors_show(struct md_rdev *rdev, char *page)
47887 {
47888 - return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors));
47889 + return sprintf(page, "%d\n", atomic_read_unchecked(&rdev->corrected_errors));
47890 }
47891
47892 static ssize_t
47893 @@ -2634,7 +2634,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
47894 rv = kstrtouint(buf, 10, &n);
47895 if (rv < 0)
47896 return rv;
47897 - atomic_set(&rdev->corrected_errors, n);
47898 + atomic_set_unchecked(&rdev->corrected_errors, n);
47899 return len;
47900 }
47901 static struct rdev_sysfs_entry rdev_errors =
47902 @@ -3071,8 +3071,8 @@ int md_rdev_init(struct md_rdev *rdev)
47903 rdev->sb_loaded = 0;
47904 rdev->bb_page = NULL;
47905 atomic_set(&rdev->nr_pending, 0);
47906 - atomic_set(&rdev->read_errors, 0);
47907 - atomic_set(&rdev->corrected_errors, 0);
47908 + atomic_set_unchecked(&rdev->read_errors, 0);
47909 + atomic_set_unchecked(&rdev->corrected_errors, 0);
47910
47911 INIT_LIST_HEAD(&rdev->same_set);
47912 init_waitqueue_head(&rdev->blocked_wait);
47913 @@ -5723,9 +5723,10 @@ static int get_array_info(struct mddev *mddev, void __user *arg)
47914 info.patch_version = MD_PATCHLEVEL_VERSION;
47915 info.ctime = mddev->ctime;
47916 info.level = mddev->level;
47917 - info.size = mddev->dev_sectors / 2;
47918 - if (info.size != mddev->dev_sectors / 2) /* overflow */
47919 + if (2 * (sector_t)INT_MAX < mddev->dev_sectors) /* overflow */
47920 info.size = -1;
47921 + else
47922 + info.size = mddev->dev_sectors / 2;
47923 info.nr_disks = nr;
47924 info.raid_disks = mddev->raid_disks;
47925 info.md_minor = mddev->md_minor;
47926 @@ -7256,7 +7257,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
47927
47928 spin_unlock(&pers_lock);
47929 seq_printf(seq, "\n");
47930 - seq->poll_event = atomic_read(&md_event_count);
47931 + seq->poll_event = atomic_read_unchecked(&md_event_count);
47932 return 0;
47933 }
47934 if (v == (void*)2) {
47935 @@ -7359,7 +7360,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
47936 return error;
47937
47938 seq = file->private_data;
47939 - seq->poll_event = atomic_read(&md_event_count);
47940 + seq->poll_event = atomic_read_unchecked(&md_event_count);
47941 return error;
47942 }
47943
47944 @@ -7376,7 +7377,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
47945 /* always allow read */
47946 mask = POLLIN | POLLRDNORM;
47947
47948 - if (seq->poll_event != atomic_read(&md_event_count))
47949 + if (seq->poll_event != atomic_read_unchecked(&md_event_count))
47950 mask |= POLLERR | POLLPRI;
47951 return mask;
47952 }
47953 @@ -7472,7 +7473,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
47954 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
47955 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
47956 (int)part_stat_read(&disk->part0, sectors[1]) -
47957 - atomic_read(&disk->sync_io);
47958 + atomic_read_unchecked(&disk->sync_io);
47959 /* sync IO will cause sync_io to increase before the disk_stats
47960 * as sync_io is counted when a request starts, and
47961 * disk_stats is counted when it completes.
47962 diff --git a/drivers/md/md.h b/drivers/md/md.h
47963 index 7da6e9c..f0c1f10 100644
47964 --- a/drivers/md/md.h
47965 +++ b/drivers/md/md.h
47966 @@ -96,13 +96,13 @@ struct md_rdev {
47967 * only maintained for arrays that
47968 * support hot removal
47969 */
47970 - atomic_t read_errors; /* number of consecutive read errors that
47971 + atomic_unchecked_t read_errors; /* number of consecutive read errors that
47972 * we have tried to ignore.
47973 */
47974 struct timespec last_read_error; /* monotonic time since our
47975 * last read error
47976 */
47977 - atomic_t corrected_errors; /* number of corrected read errors,
47978 + atomic_unchecked_t corrected_errors; /* number of corrected read errors,
47979 * for reporting to userspace and storing
47980 * in superblock.
47981 */
47982 @@ -487,7 +487,7 @@ extern void mddev_unlock(struct mddev *mddev);
47983
47984 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
47985 {
47986 - atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
47987 + atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
47988 }
47989
47990 struct md_personality
47991 diff --git a/drivers/md/persistent-data/dm-space-map-metadata.c b/drivers/md/persistent-data/dm-space-map-metadata.c
47992 index 5309129..7fb096e 100644
47993 --- a/drivers/md/persistent-data/dm-space-map-metadata.c
47994 +++ b/drivers/md/persistent-data/dm-space-map-metadata.c
47995 @@ -691,7 +691,7 @@ static int sm_metadata_extend(struct dm_space_map *sm, dm_block_t extra_blocks)
47996 * Flick into a mode where all blocks get allocated in the new area.
47997 */
47998 smm->begin = old_len;
47999 - memcpy(sm, &bootstrap_ops, sizeof(*sm));
48000 + memcpy((void *)sm, &bootstrap_ops, sizeof(*sm));
48001
48002 /*
48003 * Extend.
48004 @@ -728,7 +728,7 @@ out:
48005 /*
48006 * Switch back to normal behaviour.
48007 */
48008 - memcpy(sm, &ops, sizeof(*sm));
48009 + memcpy((void *)sm, &ops, sizeof(*sm));
48010 return r;
48011 }
48012
48013 diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h
48014 index 3e6d115..ffecdeb 100644
48015 --- a/drivers/md/persistent-data/dm-space-map.h
48016 +++ b/drivers/md/persistent-data/dm-space-map.h
48017 @@ -71,6 +71,7 @@ struct dm_space_map {
48018 dm_sm_threshold_fn fn,
48019 void *context);
48020 };
48021 +typedef struct dm_space_map __no_const dm_space_map_no_const;
48022
48023 /*----------------------------------------------------------------*/
48024
48025 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
48026 index d10d300..dbdcf89 100644
48027 --- a/drivers/md/raid1.c
48028 +++ b/drivers/md/raid1.c
48029 @@ -1095,7 +1095,7 @@ static void make_request(struct mddev *mddev, struct bio * bio)
48030 struct blk_plug_cb *cb;
48031 struct raid1_plug_cb *plug = NULL;
48032 int first_clone;
48033 - int sectors_handled;
48034 + sector_t sectors_handled;
48035 int max_sectors;
48036 sector_t start_next_window;
48037
48038 @@ -1937,7 +1937,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
48039 if (r1_sync_page_io(rdev, sect, s,
48040 bio->bi_io_vec[idx].bv_page,
48041 READ) != 0)
48042 - atomic_add(s, &rdev->corrected_errors);
48043 + atomic_add_unchecked(s, &rdev->corrected_errors);
48044 }
48045 sectors -= s;
48046 sect += s;
48047 @@ -2170,7 +2170,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
48048 !test_bit(Faulty, &rdev->flags)) {
48049 if (r1_sync_page_io(rdev, sect, s,
48050 conf->tmppage, READ)) {
48051 - atomic_add(s, &rdev->corrected_errors);
48052 + atomic_add_unchecked(s, &rdev->corrected_errors);
48053 printk(KERN_INFO
48054 "md/raid1:%s: read error corrected "
48055 "(%d sectors at %llu on %s)\n",
48056 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
48057 index d4b70d9..54d3a62 100644
48058 --- a/drivers/md/raid10.c
48059 +++ b/drivers/md/raid10.c
48060 @@ -1157,7 +1157,7 @@ static void __make_request(struct mddev *mddev, struct bio *bio)
48061 struct md_rdev *blocked_rdev;
48062 struct blk_plug_cb *cb;
48063 struct raid10_plug_cb *plug = NULL;
48064 - int sectors_handled;
48065 + sector_t sectors_handled;
48066 int max_sectors;
48067 int sectors;
48068
48069 @@ -1934,7 +1934,7 @@ static void end_sync_read(struct bio *bio, int error)
48070 /* The write handler will notice the lack of
48071 * R10BIO_Uptodate and record any errors etc
48072 */
48073 - atomic_add(r10_bio->sectors,
48074 + atomic_add_unchecked(r10_bio->sectors,
48075 &conf->mirrors[d].rdev->corrected_errors);
48076
48077 /* for reconstruct, we always reschedule after a read.
48078 @@ -2281,7 +2281,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
48079 {
48080 struct timespec cur_time_mon;
48081 unsigned long hours_since_last;
48082 - unsigned int read_errors = atomic_read(&rdev->read_errors);
48083 + unsigned int read_errors = atomic_read_unchecked(&rdev->read_errors);
48084
48085 ktime_get_ts(&cur_time_mon);
48086
48087 @@ -2303,9 +2303,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
48088 * overflowing the shift of read_errors by hours_since_last.
48089 */
48090 if (hours_since_last >= 8 * sizeof(read_errors))
48091 - atomic_set(&rdev->read_errors, 0);
48092 + atomic_set_unchecked(&rdev->read_errors, 0);
48093 else
48094 - atomic_set(&rdev->read_errors, read_errors >> hours_since_last);
48095 + atomic_set_unchecked(&rdev->read_errors, read_errors >> hours_since_last);
48096 }
48097
48098 static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
48099 @@ -2359,8 +2359,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
48100 return;
48101
48102 check_decay_read_errors(mddev, rdev);
48103 - atomic_inc(&rdev->read_errors);
48104 - if (atomic_read(&rdev->read_errors) > max_read_errors) {
48105 + atomic_inc_unchecked(&rdev->read_errors);
48106 + if (atomic_read_unchecked(&rdev->read_errors) > max_read_errors) {
48107 char b[BDEVNAME_SIZE];
48108 bdevname(rdev->bdev, b);
48109
48110 @@ -2368,7 +2368,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
48111 "md/raid10:%s: %s: Raid device exceeded "
48112 "read_error threshold [cur %d:max %d]\n",
48113 mdname(mddev), b,
48114 - atomic_read(&rdev->read_errors), max_read_errors);
48115 + atomic_read_unchecked(&rdev->read_errors), max_read_errors);
48116 printk(KERN_NOTICE
48117 "md/raid10:%s: %s: Failing raid device\n",
48118 mdname(mddev), b);
48119 @@ -2523,7 +2523,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
48120 sect +
48121 choose_data_offset(r10_bio, rdev)),
48122 bdevname(rdev->bdev, b));
48123 - atomic_add(s, &rdev->corrected_errors);
48124 + atomic_add_unchecked(s, &rdev->corrected_errors);
48125 }
48126
48127 rdev_dec_pending(rdev, mddev);
48128 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
48129 index 0d4f7b1..86ea615 100644
48130 --- a/drivers/md/raid5.c
48131 +++ b/drivers/md/raid5.c
48132 @@ -1119,23 +1119,23 @@ async_copy_data(int frombio, struct bio *bio, struct page **page,
48133 struct bio_vec bvl;
48134 struct bvec_iter iter;
48135 struct page *bio_page;
48136 - int page_offset;
48137 + s64 page_offset;
48138 struct async_submit_ctl submit;
48139 enum async_tx_flags flags = 0;
48140
48141 if (bio->bi_iter.bi_sector >= sector)
48142 - page_offset = (signed)(bio->bi_iter.bi_sector - sector) * 512;
48143 + page_offset = (s64)(bio->bi_iter.bi_sector - sector) * 512;
48144 else
48145 - page_offset = (signed)(sector - bio->bi_iter.bi_sector) * -512;
48146 + page_offset = (s64)(sector - bio->bi_iter.bi_sector) * -512;
48147
48148 if (frombio)
48149 flags |= ASYNC_TX_FENCE;
48150 init_async_submit(&submit, flags, tx, NULL, NULL, NULL);
48151
48152 bio_for_each_segment(bvl, bio, iter) {
48153 - int len = bvl.bv_len;
48154 - int clen;
48155 - int b_offset = 0;
48156 + s64 len = bvl.bv_len;
48157 + s64 clen;
48158 + s64 b_offset = 0;
48159
48160 if (page_offset < 0) {
48161 b_offset = -page_offset;
48162 @@ -2028,6 +2028,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t gfp)
48163 return 1;
48164 }
48165
48166 +#ifdef CONFIG_GRKERNSEC_HIDESYM
48167 +static atomic_unchecked_t raid5_cache_id = ATOMIC_INIT(0);
48168 +#endif
48169 +
48170 static int grow_stripes(struct r5conf *conf, int num)
48171 {
48172 struct kmem_cache *sc;
48173 @@ -2038,7 +2042,11 @@ static int grow_stripes(struct r5conf *conf, int num)
48174 "raid%d-%s", conf->level, mdname(conf->mddev));
48175 else
48176 sprintf(conf->cache_name[0],
48177 +#ifdef CONFIG_GRKERNSEC_HIDESYM
48178 + "raid%d-%08lx", conf->level, atomic_inc_return_unchecked(&raid5_cache_id));
48179 +#else
48180 "raid%d-%p", conf->level, conf->mddev);
48181 +#endif
48182 sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]);
48183
48184 conf->active_name = 0;
48185 @@ -2331,21 +2339,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
48186 mdname(conf->mddev), STRIPE_SECTORS,
48187 (unsigned long long)s,
48188 bdevname(rdev->bdev, b));
48189 - atomic_add(STRIPE_SECTORS, &rdev->corrected_errors);
48190 + atomic_add_unchecked(STRIPE_SECTORS, &rdev->corrected_errors);
48191 clear_bit(R5_ReadError, &sh->dev[i].flags);
48192 clear_bit(R5_ReWrite, &sh->dev[i].flags);
48193 } else if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags))
48194 clear_bit(R5_ReadNoMerge, &sh->dev[i].flags);
48195
48196 - if (atomic_read(&rdev->read_errors))
48197 - atomic_set(&rdev->read_errors, 0);
48198 + if (atomic_read_unchecked(&rdev->read_errors))
48199 + atomic_set_unchecked(&rdev->read_errors, 0);
48200 } else {
48201 const char *bdn = bdevname(rdev->bdev, b);
48202 int retry = 0;
48203 int set_bad = 0;
48204
48205 clear_bit(R5_UPTODATE, &sh->dev[i].flags);
48206 - atomic_inc(&rdev->read_errors);
48207 + atomic_inc_unchecked(&rdev->read_errors);
48208 if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
48209 printk_ratelimited(
48210 KERN_WARNING
48211 @@ -2373,7 +2381,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
48212 mdname(conf->mddev),
48213 (unsigned long long)s,
48214 bdn);
48215 - } else if (atomic_read(&rdev->read_errors)
48216 + } else if (atomic_read_unchecked(&rdev->read_errors)
48217 > conf->max_nr_stripes)
48218 printk(KERN_WARNING
48219 "md/raid:%s: Too many read errors, failing device %s.\n",
48220 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
48221 index 13bb57f..0ca21b2 100644
48222 --- a/drivers/media/dvb-core/dvbdev.c
48223 +++ b/drivers/media/dvb-core/dvbdev.c
48224 @@ -272,7 +272,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
48225 const struct dvb_device *template, void *priv, int type)
48226 {
48227 struct dvb_device *dvbdev;
48228 - struct file_operations *dvbdevfops;
48229 + file_operations_no_const *dvbdevfops;
48230 struct device *clsdev;
48231 int minor;
48232 int id;
48233 diff --git a/drivers/media/dvb-frontends/af9033.h b/drivers/media/dvb-frontends/af9033.h
48234 index 6ad22b6..6e90e2a 100644
48235 --- a/drivers/media/dvb-frontends/af9033.h
48236 +++ b/drivers/media/dvb-frontends/af9033.h
48237 @@ -96,6 +96,6 @@ struct af9033_ops {
48238 int (*pid_filter_ctrl)(struct dvb_frontend *fe, int onoff);
48239 int (*pid_filter)(struct dvb_frontend *fe, int index, u16 pid,
48240 int onoff);
48241 -};
48242 +} __no_const;
48243
48244 #endif /* AF9033_H */
48245 diff --git a/drivers/media/dvb-frontends/dib3000.h b/drivers/media/dvb-frontends/dib3000.h
48246 index 6ae9899..07d8543 100644
48247 --- a/drivers/media/dvb-frontends/dib3000.h
48248 +++ b/drivers/media/dvb-frontends/dib3000.h
48249 @@ -39,7 +39,7 @@ struct dib_fe_xfer_ops
48250 int (*fifo_ctrl)(struct dvb_frontend *fe, int onoff);
48251 int (*pid_ctrl)(struct dvb_frontend *fe, int index, int pid, int onoff);
48252 int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl);
48253 -};
48254 +} __no_const;
48255
48256 #if IS_REACHABLE(CONFIG_DVB_DIB3000MB)
48257 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
48258 diff --git a/drivers/media/dvb-frontends/dib7000p.h b/drivers/media/dvb-frontends/dib7000p.h
48259 index baa2789..c8de7fe 100644
48260 --- a/drivers/media/dvb-frontends/dib7000p.h
48261 +++ b/drivers/media/dvb-frontends/dib7000p.h
48262 @@ -64,7 +64,7 @@ struct dib7000p_ops {
48263 int (*get_adc_power)(struct dvb_frontend *fe);
48264 int (*slave_reset)(struct dvb_frontend *fe);
48265 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg);
48266 -};
48267 +} __no_const;
48268
48269 #if IS_REACHABLE(CONFIG_DVB_DIB7000P)
48270 void *dib7000p_attach(struct dib7000p_ops *ops);
48271 diff --git a/drivers/media/dvb-frontends/dib8000.h b/drivers/media/dvb-frontends/dib8000.h
48272 index 2b8b4b1..8cef451 100644
48273 --- a/drivers/media/dvb-frontends/dib8000.h
48274 +++ b/drivers/media/dvb-frontends/dib8000.h
48275 @@ -61,7 +61,7 @@ struct dib8000_ops {
48276 int (*pid_filter_ctrl)(struct dvb_frontend *fe, u8 onoff);
48277 int (*pid_filter)(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff);
48278 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg);
48279 -};
48280 +} __no_const;
48281
48282 #if IS_REACHABLE(CONFIG_DVB_DIB8000)
48283 void *dib8000_attach(struct dib8000_ops *ops);
48284 diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
48285 index 400e5ca..f69f748 100644
48286 --- a/drivers/media/pci/cx88/cx88-video.c
48287 +++ b/drivers/media/pci/cx88/cx88-video.c
48288 @@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
48289
48290 /* ------------------------------------------------------------------ */
48291
48292 -static unsigned int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
48293 -static unsigned int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
48294 -static unsigned int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
48295 +static int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
48296 +static int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
48297 +static int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
48298
48299 module_param_array(video_nr, int, NULL, 0444);
48300 module_param_array(vbi_nr, int, NULL, 0444);
48301 diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
48302 index 8616fa8..e16eeaf 100644
48303 --- a/drivers/media/pci/ivtv/ivtv-driver.c
48304 +++ b/drivers/media/pci/ivtv/ivtv-driver.c
48305 @@ -83,7 +83,7 @@ static struct pci_device_id ivtv_pci_tbl[] = {
48306 MODULE_DEVICE_TABLE(pci,ivtv_pci_tbl);
48307
48308 /* ivtv instance counter */
48309 -static atomic_t ivtv_instance = ATOMIC_INIT(0);
48310 +static atomic_unchecked_t ivtv_instance = ATOMIC_INIT(0);
48311
48312 /* Parameter declarations */
48313 static int cardtype[IVTV_MAX_CARDS];
48314 diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c
48315 index 570d119..ed25830 100644
48316 --- a/drivers/media/pci/solo6x10/solo6x10-core.c
48317 +++ b/drivers/media/pci/solo6x10/solo6x10-core.c
48318 @@ -424,7 +424,7 @@ static void solo_device_release(struct device *dev)
48319
48320 static int solo_sysfs_init(struct solo_dev *solo_dev)
48321 {
48322 - struct bin_attribute *sdram_attr = &solo_dev->sdram_attr;
48323 + bin_attribute_no_const *sdram_attr = &solo_dev->sdram_attr;
48324 struct device *dev = &solo_dev->dev;
48325 const char *driver;
48326 int i;
48327 diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
48328 index 7ddc767..1c24361 100644
48329 --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
48330 +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
48331 @@ -351,7 +351,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
48332
48333 int solo_g723_init(struct solo_dev *solo_dev)
48334 {
48335 - static struct snd_device_ops ops = { NULL };
48336 + static struct snd_device_ops ops = { };
48337 struct snd_card *card;
48338 struct snd_kcontrol_new kctl;
48339 char name[32];
48340 diff --git a/drivers/media/pci/solo6x10/solo6x10-p2m.c b/drivers/media/pci/solo6x10/solo6x10-p2m.c
48341 index 8c84846..27b4f83 100644
48342 --- a/drivers/media/pci/solo6x10/solo6x10-p2m.c
48343 +++ b/drivers/media/pci/solo6x10/solo6x10-p2m.c
48344 @@ -73,7 +73,7 @@ int solo_p2m_dma_desc(struct solo_dev *solo_dev,
48345
48346 /* Get next ID. According to Softlogic, 6110 has problems on !=0 P2M */
48347 if (solo_dev->type != SOLO_DEV_6110 && multi_p2m) {
48348 - p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M;
48349 + p2m_id = atomic_inc_return_unchecked(&solo_dev->p2m_count) % SOLO_NR_P2M;
48350 if (p2m_id < 0)
48351 p2m_id = -p2m_id;
48352 }
48353 diff --git a/drivers/media/pci/solo6x10/solo6x10.h b/drivers/media/pci/solo6x10/solo6x10.h
48354 index 1ca54b0..7d7cb9a 100644
48355 --- a/drivers/media/pci/solo6x10/solo6x10.h
48356 +++ b/drivers/media/pci/solo6x10/solo6x10.h
48357 @@ -218,7 +218,7 @@ struct solo_dev {
48358
48359 /* P2M DMA Engine */
48360 struct solo_p2m_dev p2m_dev[SOLO_NR_P2M];
48361 - atomic_t p2m_count;
48362 + atomic_unchecked_t p2m_count;
48363 int p2m_jiffies;
48364 unsigned int p2m_timeouts;
48365
48366 diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c
48367 index c135165..dc69499 100644
48368 --- a/drivers/media/pci/tw68/tw68-core.c
48369 +++ b/drivers/media/pci/tw68/tw68-core.c
48370 @@ -60,7 +60,7 @@ static unsigned int card[] = {[0 ... (TW68_MAXBOARDS - 1)] = UNSET };
48371 module_param_array(card, int, NULL, 0444);
48372 MODULE_PARM_DESC(card, "card type");
48373
48374 -static atomic_t tw68_instance = ATOMIC_INIT(0);
48375 +static atomic_unchecked_t tw68_instance = ATOMIC_INIT(0);
48376
48377 /* ------------------------------------------------------------------ */
48378
48379 diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
48380 index f09c5f1..38f6d65 100644
48381 --- a/drivers/media/platform/omap/omap_vout.c
48382 +++ b/drivers/media/platform/omap/omap_vout.c
48383 @@ -63,7 +63,6 @@ enum omap_vout_channels {
48384 OMAP_VIDEO2,
48385 };
48386
48387 -static struct videobuf_queue_ops video_vbq_ops;
48388 /* Variables configurable through module params*/
48389 static u32 video1_numbuffers = 3;
48390 static u32 video2_numbuffers = 3;
48391 @@ -1008,6 +1007,12 @@ static int omap_vout_open(struct file *file)
48392 {
48393 struct videobuf_queue *q;
48394 struct omap_vout_device *vout = NULL;
48395 + static struct videobuf_queue_ops video_vbq_ops = {
48396 + .buf_setup = omap_vout_buffer_setup,
48397 + .buf_prepare = omap_vout_buffer_prepare,
48398 + .buf_release = omap_vout_buffer_release,
48399 + .buf_queue = omap_vout_buffer_queue,
48400 + };
48401
48402 vout = video_drvdata(file);
48403 v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__);
48404 @@ -1025,10 +1030,6 @@ static int omap_vout_open(struct file *file)
48405 vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
48406
48407 q = &vout->vbq;
48408 - video_vbq_ops.buf_setup = omap_vout_buffer_setup;
48409 - video_vbq_ops.buf_prepare = omap_vout_buffer_prepare;
48410 - video_vbq_ops.buf_release = omap_vout_buffer_release;
48411 - video_vbq_ops.buf_queue = omap_vout_buffer_queue;
48412 spin_lock_init(&vout->vbq_lock);
48413
48414 videobuf_queue_dma_contig_init(q, &video_vbq_ops, q->dev,
48415 diff --git a/drivers/media/platform/s5p-tv/mixer.h b/drivers/media/platform/s5p-tv/mixer.h
48416 index fb2acc5..a2fcbdc4 100644
48417 --- a/drivers/media/platform/s5p-tv/mixer.h
48418 +++ b/drivers/media/platform/s5p-tv/mixer.h
48419 @@ -156,7 +156,7 @@ struct mxr_layer {
48420 /** layer index (unique identifier) */
48421 int idx;
48422 /** callbacks for layer methods */
48423 - struct mxr_layer_ops ops;
48424 + struct mxr_layer_ops *ops;
48425 /** format array */
48426 const struct mxr_format **fmt_array;
48427 /** size of format array */
48428 diff --git a/drivers/media/platform/s5p-tv/mixer_grp_layer.c b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48429 index 74344c7..a39e70e 100644
48430 --- a/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48431 +++ b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48432 @@ -235,7 +235,7 @@ struct mxr_layer *mxr_graph_layer_create(struct mxr_device *mdev, int idx)
48433 {
48434 struct mxr_layer *layer;
48435 int ret;
48436 - struct mxr_layer_ops ops = {
48437 + static struct mxr_layer_ops ops = {
48438 .release = mxr_graph_layer_release,
48439 .buffer_set = mxr_graph_buffer_set,
48440 .stream_set = mxr_graph_stream_set,
48441 diff --git a/drivers/media/platform/s5p-tv/mixer_reg.c b/drivers/media/platform/s5p-tv/mixer_reg.c
48442 index b713403..53cb5ad 100644
48443 --- a/drivers/media/platform/s5p-tv/mixer_reg.c
48444 +++ b/drivers/media/platform/s5p-tv/mixer_reg.c
48445 @@ -276,7 +276,7 @@ static void mxr_irq_layer_handle(struct mxr_layer *layer)
48446 layer->update_buf = next;
48447 }
48448
48449 - layer->ops.buffer_set(layer, layer->update_buf);
48450 + layer->ops->buffer_set(layer, layer->update_buf);
48451
48452 if (done && done != layer->shadow_buf)
48453 vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE);
48454 diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
48455 index 751f3b6..d829203 100644
48456 --- a/drivers/media/platform/s5p-tv/mixer_video.c
48457 +++ b/drivers/media/platform/s5p-tv/mixer_video.c
48458 @@ -210,7 +210,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
48459 layer->geo.src.height = layer->geo.src.full_height;
48460
48461 mxr_geometry_dump(mdev, &layer->geo);
48462 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48463 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48464 mxr_geometry_dump(mdev, &layer->geo);
48465 }
48466
48467 @@ -228,7 +228,7 @@ static void mxr_layer_update_output(struct mxr_layer *layer)
48468 layer->geo.dst.full_width = mbus_fmt.width;
48469 layer->geo.dst.full_height = mbus_fmt.height;
48470 layer->geo.dst.field = mbus_fmt.field;
48471 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48472 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48473
48474 mxr_geometry_dump(mdev, &layer->geo);
48475 }
48476 @@ -334,7 +334,7 @@ static int mxr_s_fmt(struct file *file, void *priv,
48477 /* set source size to highest accepted value */
48478 geo->src.full_width = max(geo->dst.full_width, pix->width);
48479 geo->src.full_height = max(geo->dst.full_height, pix->height);
48480 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48481 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48482 mxr_geometry_dump(mdev, &layer->geo);
48483 /* set cropping to total visible screen */
48484 geo->src.width = pix->width;
48485 @@ -342,12 +342,12 @@ static int mxr_s_fmt(struct file *file, void *priv,
48486 geo->src.x_offset = 0;
48487 geo->src.y_offset = 0;
48488 /* assure consistency of geometry */
48489 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
48490 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
48491 mxr_geometry_dump(mdev, &layer->geo);
48492 /* set full size to lowest possible value */
48493 geo->src.full_width = 0;
48494 geo->src.full_height = 0;
48495 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48496 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48497 mxr_geometry_dump(mdev, &layer->geo);
48498
48499 /* returning results */
48500 @@ -474,7 +474,7 @@ static int mxr_s_selection(struct file *file, void *fh,
48501 target->width = s->r.width;
48502 target->height = s->r.height;
48503
48504 - layer->ops.fix_geometry(layer, stage, s->flags);
48505 + layer->ops->fix_geometry(layer, stage, s->flags);
48506
48507 /* retrieve update selection rectangle */
48508 res.left = target->x_offset;
48509 @@ -938,13 +938,13 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
48510 mxr_output_get(mdev);
48511
48512 mxr_layer_update_output(layer);
48513 - layer->ops.format_set(layer);
48514 + layer->ops->format_set(layer);
48515 /* enabling layer in hardware */
48516 spin_lock_irqsave(&layer->enq_slock, flags);
48517 layer->state = MXR_LAYER_STREAMING;
48518 spin_unlock_irqrestore(&layer->enq_slock, flags);
48519
48520 - layer->ops.stream_set(layer, MXR_ENABLE);
48521 + layer->ops->stream_set(layer, MXR_ENABLE);
48522 mxr_streamer_get(mdev);
48523
48524 return 0;
48525 @@ -1014,7 +1014,7 @@ static void stop_streaming(struct vb2_queue *vq)
48526 spin_unlock_irqrestore(&layer->enq_slock, flags);
48527
48528 /* disabling layer in hardware */
48529 - layer->ops.stream_set(layer, MXR_DISABLE);
48530 + layer->ops->stream_set(layer, MXR_DISABLE);
48531 /* remove one streamer */
48532 mxr_streamer_put(mdev);
48533 /* allow changes in output configuration */
48534 @@ -1052,8 +1052,8 @@ void mxr_base_layer_unregister(struct mxr_layer *layer)
48535
48536 void mxr_layer_release(struct mxr_layer *layer)
48537 {
48538 - if (layer->ops.release)
48539 - layer->ops.release(layer);
48540 + if (layer->ops->release)
48541 + layer->ops->release(layer);
48542 }
48543
48544 void mxr_base_layer_release(struct mxr_layer *layer)
48545 @@ -1079,7 +1079,7 @@ struct mxr_layer *mxr_base_layer_create(struct mxr_device *mdev,
48546
48547 layer->mdev = mdev;
48548 layer->idx = idx;
48549 - layer->ops = *ops;
48550 + layer->ops = ops;
48551
48552 spin_lock_init(&layer->enq_slock);
48553 INIT_LIST_HEAD(&layer->enq_list);
48554 diff --git a/drivers/media/platform/s5p-tv/mixer_vp_layer.c b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48555 index c9388c4..ce71ece 100644
48556 --- a/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48557 +++ b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48558 @@ -206,7 +206,7 @@ struct mxr_layer *mxr_vp_layer_create(struct mxr_device *mdev, int idx)
48559 {
48560 struct mxr_layer *layer;
48561 int ret;
48562 - struct mxr_layer_ops ops = {
48563 + static struct mxr_layer_ops ops = {
48564 .release = mxr_vp_layer_release,
48565 .buffer_set = mxr_vp_buffer_set,
48566 .stream_set = mxr_vp_stream_set,
48567 diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
48568 index 084d346..e15eef6 100644
48569 --- a/drivers/media/platform/vivid/vivid-osd.c
48570 +++ b/drivers/media/platform/vivid/vivid-osd.c
48571 @@ -85,6 +85,7 @@ static int vivid_fb_ioctl(struct fb_info *info, unsigned cmd, unsigned long arg)
48572 case FBIOGET_VBLANK: {
48573 struct fb_vblank vblank;
48574
48575 + memset(&vblank, 0, sizeof(vblank));
48576 vblank.flags = FB_VBLANK_HAVE_COUNT | FB_VBLANK_HAVE_VCOUNT |
48577 FB_VBLANK_HAVE_VSYNC;
48578 vblank.count = 0;
48579 diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
48580 index 82affae..42833ec 100644
48581 --- a/drivers/media/radio/radio-cadet.c
48582 +++ b/drivers/media/radio/radio-cadet.c
48583 @@ -333,6 +333,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
48584 unsigned char readbuf[RDS_BUFFER];
48585 int i = 0;
48586
48587 + if (count > RDS_BUFFER)
48588 + return -EFAULT;
48589 mutex_lock(&dev->lock);
48590 if (dev->rdsstat == 0)
48591 cadet_start_rds(dev);
48592 @@ -349,8 +351,9 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
48593 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
48594 mutex_unlock(&dev->lock);
48595
48596 - if (i && copy_to_user(data, readbuf, i))
48597 - return -EFAULT;
48598 + if (i > sizeof(readbuf) || (i && copy_to_user(data, readbuf, i)))
48599 + i = -EFAULT;
48600 +
48601 return i;
48602 }
48603
48604 diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
48605 index 5236035..c622c74 100644
48606 --- a/drivers/media/radio/radio-maxiradio.c
48607 +++ b/drivers/media/radio/radio-maxiradio.c
48608 @@ -61,7 +61,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device number");
48609 /* TEA5757 pin mappings */
48610 static const int clk = 1, data = 2, wren = 4, mo_st = 8, power = 16;
48611
48612 -static atomic_t maxiradio_instance = ATOMIC_INIT(0);
48613 +static atomic_unchecked_t maxiradio_instance = ATOMIC_INIT(0);
48614
48615 #define PCI_VENDOR_ID_GUILLEMOT 0x5046
48616 #define PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO 0x1001
48617 diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
48618 index 050b3bb..79f62b9 100644
48619 --- a/drivers/media/radio/radio-shark.c
48620 +++ b/drivers/media/radio/radio-shark.c
48621 @@ -79,7 +79,7 @@ struct shark_device {
48622 u32 last_val;
48623 };
48624
48625 -static atomic_t shark_instance = ATOMIC_INIT(0);
48626 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
48627
48628 static void shark_write_val(struct snd_tea575x *tea, u32 val)
48629 {
48630 diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c
48631 index 8654e0d..0608a64 100644
48632 --- a/drivers/media/radio/radio-shark2.c
48633 +++ b/drivers/media/radio/radio-shark2.c
48634 @@ -74,7 +74,7 @@ struct shark_device {
48635 u8 *transfer_buffer;
48636 };
48637
48638 -static atomic_t shark_instance = ATOMIC_INIT(0);
48639 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
48640
48641 static int shark_write_reg(struct radio_tea5777 *tea, u64 reg)
48642 {
48643 diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
48644 index 9cbb8cd..2bf2ff3 100644
48645 --- a/drivers/media/radio/radio-si476x.c
48646 +++ b/drivers/media/radio/radio-si476x.c
48647 @@ -1445,7 +1445,7 @@ static int si476x_radio_probe(struct platform_device *pdev)
48648 struct si476x_radio *radio;
48649 struct v4l2_ctrl *ctrl;
48650
48651 - static atomic_t instance = ATOMIC_INIT(0);
48652 + static atomic_unchecked_t instance = ATOMIC_INIT(0);
48653
48654 radio = devm_kzalloc(&pdev->dev, sizeof(*radio), GFP_KERNEL);
48655 if (!radio)
48656 diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c
48657 index 704397f..4d05977 100644
48658 --- a/drivers/media/radio/wl128x/fmdrv_common.c
48659 +++ b/drivers/media/radio/wl128x/fmdrv_common.c
48660 @@ -71,7 +71,7 @@ module_param(default_rds_buf, uint, 0444);
48661 MODULE_PARM_DESC(rds_buf, "RDS buffer entries");
48662
48663 /* Radio Nr */
48664 -static u32 radio_nr = -1;
48665 +static int radio_nr = -1;
48666 module_param(radio_nr, int, 0444);
48667 MODULE_PARM_DESC(radio_nr, "Radio Nr");
48668
48669 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-core.c b/drivers/media/usb/dvb-usb/cinergyT2-core.c
48670 index 9fd1527..8927230 100644
48671 --- a/drivers/media/usb/dvb-usb/cinergyT2-core.c
48672 +++ b/drivers/media/usb/dvb-usb/cinergyT2-core.c
48673 @@ -50,29 +50,73 @@ static struct dvb_usb_device_properties cinergyt2_properties;
48674
48675 static int cinergyt2_streaming_ctrl(struct dvb_usb_adapter *adap, int enable)
48676 {
48677 - char buf[] = { CINERGYT2_EP1_CONTROL_STREAM_TRANSFER, enable ? 1 : 0 };
48678 - char result[64];
48679 - return dvb_usb_generic_rw(adap->dev, buf, sizeof(buf), result,
48680 - sizeof(result), 0);
48681 + char *buf;
48682 + char *result;
48683 + int retval;
48684 +
48685 + buf = kmalloc(2, GFP_KERNEL);
48686 + if (buf == NULL)
48687 + return -ENOMEM;
48688 + result = kmalloc(64, GFP_KERNEL);
48689 + if (result == NULL) {
48690 + kfree(buf);
48691 + return -ENOMEM;
48692 + }
48693 +
48694 + buf[0] = CINERGYT2_EP1_CONTROL_STREAM_TRANSFER;
48695 + buf[1] = enable ? 1 : 0;
48696 +
48697 + retval = dvb_usb_generic_rw(adap->dev, buf, 2, result, 64, 0);
48698 +
48699 + kfree(buf);
48700 + kfree(result);
48701 + return retval;
48702 }
48703
48704 static int cinergyt2_power_ctrl(struct dvb_usb_device *d, int enable)
48705 {
48706 - char buf[] = { CINERGYT2_EP1_SLEEP_MODE, enable ? 0 : 1 };
48707 - char state[3];
48708 - return dvb_usb_generic_rw(d, buf, sizeof(buf), state, sizeof(state), 0);
48709 + char *buf;
48710 + char *state;
48711 + int retval;
48712 +
48713 + buf = kmalloc(2, GFP_KERNEL);
48714 + if (buf == NULL)
48715 + return -ENOMEM;
48716 + state = kmalloc(3, GFP_KERNEL);
48717 + if (state == NULL) {
48718 + kfree(buf);
48719 + return -ENOMEM;
48720 + }
48721 +
48722 + buf[0] = CINERGYT2_EP1_SLEEP_MODE;
48723 + buf[1] = enable ? 1 : 0;
48724 +
48725 + retval = dvb_usb_generic_rw(d, buf, 2, state, 3, 0);
48726 +
48727 + kfree(buf);
48728 + kfree(state);
48729 + return retval;
48730 }
48731
48732 static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
48733 {
48734 - char query[] = { CINERGYT2_EP1_GET_FIRMWARE_VERSION };
48735 - char state[3];
48736 + char *query;
48737 + char *state;
48738 int ret;
48739 + query = kmalloc(1, GFP_KERNEL);
48740 + if (query == NULL)
48741 + return -ENOMEM;
48742 + state = kmalloc(3, GFP_KERNEL);
48743 + if (state == NULL) {
48744 + kfree(query);
48745 + return -ENOMEM;
48746 + }
48747 +
48748 + query[0] = CINERGYT2_EP1_GET_FIRMWARE_VERSION;
48749
48750 adap->fe_adap[0].fe = cinergyt2_fe_attach(adap->dev);
48751
48752 - ret = dvb_usb_generic_rw(adap->dev, query, sizeof(query), state,
48753 - sizeof(state), 0);
48754 + ret = dvb_usb_generic_rw(adap->dev, query, 1, state, 3, 0);
48755 if (ret < 0) {
48756 deb_rc("cinergyt2_power_ctrl() Failed to retrieve sleep "
48757 "state info\n");
48758 @@ -80,7 +124,8 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
48759
48760 /* Copy this pointer as we are gonna need it in the release phase */
48761 cinergyt2_usb_device = adap->dev;
48762 -
48763 + kfree(query);
48764 + kfree(state);
48765 return 0;
48766 }
48767
48768 @@ -141,12 +186,23 @@ static int repeatable_keys[] = {
48769 static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48770 {
48771 struct cinergyt2_state *st = d->priv;
48772 - u8 key[5] = {0, 0, 0, 0, 0}, cmd = CINERGYT2_EP1_GET_RC_EVENTS;
48773 + u8 *key, *cmd;
48774 int i;
48775
48776 + cmd = kmalloc(1, GFP_KERNEL);
48777 + if (cmd == NULL)
48778 + return -EINVAL;
48779 + key = kzalloc(5, GFP_KERNEL);
48780 + if (key == NULL) {
48781 + kfree(cmd);
48782 + return -EINVAL;
48783 + }
48784 +
48785 + cmd[0] = CINERGYT2_EP1_GET_RC_EVENTS;
48786 +
48787 *state = REMOTE_NO_KEY_PRESSED;
48788
48789 - dvb_usb_generic_rw(d, &cmd, 1, key, sizeof(key), 0);
48790 + dvb_usb_generic_rw(d, cmd, 1, key, 5, 0);
48791 if (key[4] == 0xff) {
48792 /* key repeat */
48793 st->rc_counter++;
48794 @@ -157,12 +213,12 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48795 *event = d->last_event;
48796 deb_rc("repeat key, event %x\n",
48797 *event);
48798 - return 0;
48799 + goto out;
48800 }
48801 }
48802 deb_rc("repeated key (non repeatable)\n");
48803 }
48804 - return 0;
48805 + goto out;
48806 }
48807
48808 /* hack to pass checksum on the custom field */
48809 @@ -174,6 +230,9 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48810
48811 deb_rc("key: %*ph\n", 5, key);
48812 }
48813 +out:
48814 + kfree(cmd);
48815 + kfree(key);
48816 return 0;
48817 }
48818
48819 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-fe.c b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48820 index b3ec743..9c0e418 100644
48821 --- a/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48822 +++ b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48823 @@ -145,103 +145,176 @@ static int cinergyt2_fe_read_status(struct dvb_frontend *fe,
48824 enum fe_status *status)
48825 {
48826 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48827 - struct dvbt_get_status_msg result;
48828 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48829 + struct dvbt_get_status_msg *result;
48830 + u8 *cmd;
48831 int ret;
48832
48833 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&result,
48834 - sizeof(result), 0);
48835 + cmd = kmalloc(1, GFP_KERNEL);
48836 + if (cmd == NULL)
48837 + return -ENOMEM;
48838 + result = kmalloc(sizeof(*result), GFP_KERNEL);
48839 + if (result == NULL) {
48840 + kfree(cmd);
48841 + return -ENOMEM;
48842 + }
48843 +
48844 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48845 +
48846 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)result,
48847 + sizeof(*result), 0);
48848 if (ret < 0)
48849 - return ret;
48850 + goto out;
48851
48852 *status = 0;
48853
48854 - if (0xffff - le16_to_cpu(result.gain) > 30)
48855 + if (0xffff - le16_to_cpu(result->gain) > 30)
48856 *status |= FE_HAS_SIGNAL;
48857 - if (result.lock_bits & (1 << 6))
48858 + if (result->lock_bits & (1 << 6))
48859 *status |= FE_HAS_LOCK;
48860 - if (result.lock_bits & (1 << 5))
48861 + if (result->lock_bits & (1 << 5))
48862 *status |= FE_HAS_SYNC;
48863 - if (result.lock_bits & (1 << 4))
48864 + if (result->lock_bits & (1 << 4))
48865 *status |= FE_HAS_CARRIER;
48866 - if (result.lock_bits & (1 << 1))
48867 + if (result->lock_bits & (1 << 1))
48868 *status |= FE_HAS_VITERBI;
48869
48870 if ((*status & (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC)) !=
48871 (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC))
48872 *status &= ~FE_HAS_LOCK;
48873
48874 - return 0;
48875 +out:
48876 + kfree(cmd);
48877 + kfree(result);
48878 + return ret;
48879 }
48880
48881 static int cinergyt2_fe_read_ber(struct dvb_frontend *fe, u32 *ber)
48882 {
48883 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48884 - struct dvbt_get_status_msg status;
48885 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48886 + struct dvbt_get_status_msg *status;
48887 + char *cmd;
48888 int ret;
48889
48890 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48891 - sizeof(status), 0);
48892 + cmd = kmalloc(1, GFP_KERNEL);
48893 + if (cmd == NULL)
48894 + return -ENOMEM;
48895 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48896 + if (status == NULL) {
48897 + kfree(cmd);
48898 + return -ENOMEM;
48899 + }
48900 +
48901 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48902 +
48903 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48904 + sizeof(*status), 0);
48905 if (ret < 0)
48906 - return ret;
48907 + goto out;
48908
48909 - *ber = le32_to_cpu(status.viterbi_error_rate);
48910 + *ber = le32_to_cpu(status->viterbi_error_rate);
48911 +out:
48912 + kfree(cmd);
48913 + kfree(status);
48914 return 0;
48915 }
48916
48917 static int cinergyt2_fe_read_unc_blocks(struct dvb_frontend *fe, u32 *unc)
48918 {
48919 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48920 - struct dvbt_get_status_msg status;
48921 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48922 + struct dvbt_get_status_msg *status;
48923 + u8 *cmd;
48924 int ret;
48925
48926 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&status,
48927 - sizeof(status), 0);
48928 + cmd = kmalloc(1, GFP_KERNEL);
48929 + if (cmd == NULL)
48930 + return -ENOMEM;
48931 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48932 + if (status == NULL) {
48933 + kfree(cmd);
48934 + return -ENOMEM;
48935 + }
48936 +
48937 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48938 +
48939 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)status,
48940 + sizeof(*status), 0);
48941 if (ret < 0) {
48942 err("cinergyt2_fe_read_unc_blocks() Failed! (Error=%d)\n",
48943 ret);
48944 - return ret;
48945 + goto out;
48946 }
48947 - *unc = le32_to_cpu(status.uncorrected_block_count);
48948 - return 0;
48949 + *unc = le32_to_cpu(status->uncorrected_block_count);
48950 +
48951 +out:
48952 + kfree(cmd);
48953 + kfree(status);
48954 + return ret;
48955 }
48956
48957 static int cinergyt2_fe_read_signal_strength(struct dvb_frontend *fe,
48958 u16 *strength)
48959 {
48960 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48961 - struct dvbt_get_status_msg status;
48962 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48963 + struct dvbt_get_status_msg *status;
48964 + char *cmd;
48965 int ret;
48966
48967 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48968 - sizeof(status), 0);
48969 + cmd = kmalloc(1, GFP_KERNEL);
48970 + if (cmd == NULL)
48971 + return -ENOMEM;
48972 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48973 + if (status == NULL) {
48974 + kfree(cmd);
48975 + return -ENOMEM;
48976 + }
48977 +
48978 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48979 +
48980 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48981 + sizeof(*status), 0);
48982 if (ret < 0) {
48983 err("cinergyt2_fe_read_signal_strength() Failed!"
48984 " (Error=%d)\n", ret);
48985 - return ret;
48986 + goto out;
48987 }
48988 - *strength = (0xffff - le16_to_cpu(status.gain));
48989 + *strength = (0xffff - le16_to_cpu(status->gain));
48990 +
48991 +out:
48992 + kfree(cmd);
48993 + kfree(status);
48994 return 0;
48995 }
48996
48997 static int cinergyt2_fe_read_snr(struct dvb_frontend *fe, u16 *snr)
48998 {
48999 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49000 - struct dvbt_get_status_msg status;
49001 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
49002 + struct dvbt_get_status_msg *status;
49003 + char *cmd;
49004 int ret;
49005
49006 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
49007 - sizeof(status), 0);
49008 + cmd = kmalloc(1, GFP_KERNEL);
49009 + if (cmd == NULL)
49010 + return -ENOMEM;
49011 + status = kmalloc(sizeof(*status), GFP_KERNEL);
49012 + if (status == NULL) {
49013 + kfree(cmd);
49014 + return -ENOMEM;
49015 + }
49016 +
49017 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
49018 +
49019 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
49020 + sizeof(*status), 0);
49021 if (ret < 0) {
49022 err("cinergyt2_fe_read_snr() Failed! (Error=%d)\n", ret);
49023 - return ret;
49024 + goto out;
49025 }
49026 - *snr = (status.snr << 8) | status.snr;
49027 - return 0;
49028 + *snr = (status->snr << 8) | status->snr;
49029 +
49030 +out:
49031 + kfree(cmd);
49032 + kfree(status);
49033 + return ret;
49034 }
49035
49036 static int cinergyt2_fe_init(struct dvb_frontend *fe)
49037 @@ -266,35 +339,46 @@ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe)
49038 {
49039 struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
49040 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49041 - struct dvbt_set_parameters_msg param;
49042 - char result[2];
49043 + struct dvbt_set_parameters_msg *param;
49044 + char *result;
49045 int err;
49046
49047 - param.cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
49048 - param.tps = cpu_to_le16(compute_tps(fep));
49049 - param.freq = cpu_to_le32(fep->frequency / 1000);
49050 - param.flags = 0;
49051 + result = kmalloc(2, GFP_KERNEL);
49052 + if (result == NULL)
49053 + return -ENOMEM;
49054 + param = kmalloc(sizeof(*param), GFP_KERNEL);
49055 + if (param == NULL) {
49056 + kfree(result);
49057 + return -ENOMEM;
49058 + }
49059 +
49060 + param->cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
49061 + param->tps = cpu_to_le16(compute_tps(fep));
49062 + param->freq = cpu_to_le32(fep->frequency / 1000);
49063 + param->flags = 0;
49064
49065 switch (fep->bandwidth_hz) {
49066 default:
49067 case 8000000:
49068 - param.bandwidth = 8;
49069 + param->bandwidth = 8;
49070 break;
49071 case 7000000:
49072 - param.bandwidth = 7;
49073 + param->bandwidth = 7;
49074 break;
49075 case 6000000:
49076 - param.bandwidth = 6;
49077 + param->bandwidth = 6;
49078 break;
49079 }
49080
49081 err = dvb_usb_generic_rw(state->d,
49082 - (char *)&param, sizeof(param),
49083 - result, sizeof(result), 0);
49084 + (char *)param, sizeof(*param),
49085 + result, 2, 0);
49086 if (err < 0)
49087 err("cinergyt2_fe_set_frontend() Failed! err=%d\n", err);
49088
49089 - return (err < 0) ? err : 0;
49090 + kfree(result);
49091 + kfree(param);
49092 + return err;
49093 }
49094
49095 static void cinergyt2_fe_release(struct dvb_frontend *fe)
49096 diff --git a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
49097 index 733a7ff..f8b52e3 100644
49098 --- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
49099 +++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
49100 @@ -35,42 +35,57 @@ static int usb_cypress_writemem(struct usb_device *udev,u16 addr,u8 *data, u8 le
49101
49102 int usb_cypress_load_firmware(struct usb_device *udev, const struct firmware *fw, int type)
49103 {
49104 - struct hexline hx;
49105 - u8 reset;
49106 + struct hexline *hx;
49107 + u8 *reset;
49108 int ret,pos=0;
49109
49110 + reset = kmalloc(1, GFP_KERNEL);
49111 + if (reset == NULL)
49112 + return -ENOMEM;
49113 +
49114 + hx = kmalloc(sizeof(struct hexline), GFP_KERNEL);
49115 + if (hx == NULL) {
49116 + kfree(reset);
49117 + return -ENOMEM;
49118 + }
49119 +
49120 /* stop the CPU */
49121 - reset = 1;
49122 - if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1)) != 1)
49123 + reset[0] = 1;
49124 + if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1)) != 1)
49125 err("could not stop the USB controller CPU.");
49126
49127 - while ((ret = dvb_usb_get_hexline(fw,&hx,&pos)) > 0) {
49128 - deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx.addr,hx.len,hx.chk);
49129 - ret = usb_cypress_writemem(udev,hx.addr,hx.data,hx.len);
49130 + while ((ret = dvb_usb_get_hexline(fw,hx,&pos)) > 0) {
49131 + deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx->addr,hx->len,hx->chk);
49132 + ret = usb_cypress_writemem(udev,hx->addr,hx->data,hx->len);
49133
49134 - if (ret != hx.len) {
49135 + if (ret != hx->len) {
49136 err("error while transferring firmware "
49137 "(transferred size: %d, block size: %d)",
49138 - ret,hx.len);
49139 + ret,hx->len);
49140 ret = -EINVAL;
49141 break;
49142 }
49143 }
49144 if (ret < 0) {
49145 err("firmware download failed at %d with %d",pos,ret);
49146 + kfree(reset);
49147 + kfree(hx);
49148 return ret;
49149 }
49150
49151 if (ret == 0) {
49152 /* restart the CPU */
49153 - reset = 0;
49154 - if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1) != 1) {
49155 + reset[0] = 0;
49156 + if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1) != 1) {
49157 err("could not restart the USB controller CPU.");
49158 ret = -EINVAL;
49159 }
49160 } else
49161 ret = -EIO;
49162
49163 + kfree(reset);
49164 + kfree(hx);
49165 +
49166 return ret;
49167 }
49168 EXPORT_SYMBOL(usb_cypress_load_firmware);
49169 diff --git a/drivers/media/usb/dvb-usb/technisat-usb2.c b/drivers/media/usb/dvb-usb/technisat-usb2.c
49170 index 03f334d..0986492 100644
49171 --- a/drivers/media/usb/dvb-usb/technisat-usb2.c
49172 +++ b/drivers/media/usb/dvb-usb/technisat-usb2.c
49173 @@ -87,8 +87,11 @@ struct technisat_usb2_state {
49174 static int technisat_usb2_i2c_access(struct usb_device *udev,
49175 u8 device_addr, u8 *tx, u8 txlen, u8 *rx, u8 rxlen)
49176 {
49177 - u8 b[64];
49178 - int ret, actual_length;
49179 + u8 *b = kmalloc(64, GFP_KERNEL);
49180 + int ret, actual_length, error = 0;
49181 +
49182 + if (b == NULL)
49183 + return -ENOMEM;
49184
49185 deb_i2c("i2c-access: %02x, tx: ", device_addr);
49186 debug_dump(tx, txlen, deb_i2c);
49187 @@ -121,7 +124,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49188
49189 if (ret < 0) {
49190 err("i2c-error: out failed %02x = %d", device_addr, ret);
49191 - return -ENODEV;
49192 + error = -ENODEV;
49193 + goto out;
49194 }
49195
49196 ret = usb_bulk_msg(udev,
49197 @@ -129,7 +133,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49198 b, 64, &actual_length, 1000);
49199 if (ret < 0) {
49200 err("i2c-error: in failed %02x = %d", device_addr, ret);
49201 - return -ENODEV;
49202 + error = -ENODEV;
49203 + goto out;
49204 }
49205
49206 if (b[0] != I2C_STATUS_OK) {
49207 @@ -137,8 +142,10 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49208 /* handle tuner-i2c-nak */
49209 if (!(b[0] == I2C_STATUS_NAK &&
49210 device_addr == 0x60
49211 - /* && device_is_technisat_usb2 */))
49212 - return -ENODEV;
49213 + /* && device_is_technisat_usb2 */)) {
49214 + error = -ENODEV;
49215 + goto out;
49216 + }
49217 }
49218
49219 deb_i2c("status: %d, ", b[0]);
49220 @@ -152,7 +159,9 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49221
49222 deb_i2c("\n");
49223
49224 - return 0;
49225 +out:
49226 + kfree(b);
49227 + return error;
49228 }
49229
49230 static int technisat_usb2_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,
49231 @@ -224,14 +233,16 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
49232 {
49233 int ret;
49234
49235 - u8 led[8] = {
49236 - red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
49237 - 0
49238 - };
49239 + u8 *led = kzalloc(8, GFP_KERNEL);
49240 +
49241 + if (led == NULL)
49242 + return -ENOMEM;
49243
49244 if (disable_led_control && state != TECH_LED_OFF)
49245 return 0;
49246
49247 + led[0] = red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST;
49248 +
49249 switch (state) {
49250 case TECH_LED_ON:
49251 led[1] = 0x82;
49252 @@ -263,16 +274,22 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
49253 red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
49254 USB_TYPE_VENDOR | USB_DIR_OUT,
49255 0, 0,
49256 - led, sizeof(led), 500);
49257 + led, 8, 500);
49258
49259 mutex_unlock(&d->i2c_mutex);
49260 +
49261 + kfree(led);
49262 +
49263 return ret;
49264 }
49265
49266 static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 green)
49267 {
49268 int ret;
49269 - u8 b = 0;
49270 + u8 *b = kzalloc(1, GFP_KERNEL);
49271 +
49272 + if (b == NULL)
49273 + return -ENOMEM;
49274
49275 if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
49276 return -EAGAIN;
49277 @@ -281,10 +298,12 @@ static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 gre
49278 SET_LED_TIMER_DIVIDER_VENDOR_REQUEST,
49279 USB_TYPE_VENDOR | USB_DIR_OUT,
49280 (red << 8) | green, 0,
49281 - &b, 1, 500);
49282 + b, 1, 500);
49283
49284 mutex_unlock(&d->i2c_mutex);
49285
49286 + kfree(b);
49287 +
49288 return ret;
49289 }
49290
49291 @@ -328,7 +347,7 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
49292 struct dvb_usb_device_description **desc, int *cold)
49293 {
49294 int ret;
49295 - u8 version[3];
49296 + u8 *version = kmalloc(3, GFP_KERNEL);
49297
49298 /* first select the interface */
49299 if (usb_set_interface(udev, 0, 1) != 0)
49300 @@ -338,11 +357,14 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
49301
49302 *cold = 0; /* by default do not download a firmware - just in case something is wrong */
49303
49304 + if (version == NULL)
49305 + return 0;
49306 +
49307 ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
49308 GET_VERSION_INFO_VENDOR_REQUEST,
49309 USB_TYPE_VENDOR | USB_DIR_IN,
49310 0, 0,
49311 - version, sizeof(version), 500);
49312 + version, 3, 500);
49313
49314 if (ret < 0)
49315 *cold = 1;
49316 @@ -351,6 +373,8 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
49317 *cold = 0;
49318 }
49319
49320 + kfree(version);
49321 +
49322 return 0;
49323 }
49324
49325 @@ -594,10 +618,15 @@ static int technisat_usb2_frontend_attach(struct dvb_usb_adapter *a)
49326
49327 static int technisat_usb2_get_ir(struct dvb_usb_device *d)
49328 {
49329 - u8 buf[62], *b;
49330 + u8 *buf, *b;
49331 int ret;
49332 struct ir_raw_event ev;
49333
49334 + buf = kmalloc(62, GFP_KERNEL);
49335 +
49336 + if (buf == NULL)
49337 + return -ENOMEM;
49338 +
49339 buf[0] = GET_IR_DATA_VENDOR_REQUEST;
49340 buf[1] = 0x08;
49341 buf[2] = 0x8f;
49342 @@ -620,16 +649,20 @@ static int technisat_usb2_get_ir(struct dvb_usb_device *d)
49343 GET_IR_DATA_VENDOR_REQUEST,
49344 USB_TYPE_VENDOR | USB_DIR_IN,
49345 0x8080, 0,
49346 - buf, sizeof(buf), 500);
49347 + buf, 62, 500);
49348
49349 unlock:
49350 mutex_unlock(&d->i2c_mutex);
49351
49352 - if (ret < 0)
49353 + if (ret < 0) {
49354 + kfree(buf);
49355 return ret;
49356 + }
49357
49358 - if (ret == 1)
49359 + if (ret == 1) {
49360 + kfree(buf);
49361 return 0; /* no key pressed */
49362 + }
49363
49364 /* decoding */
49365 b = buf+1;
49366 @@ -656,6 +689,8 @@ unlock:
49367
49368 ir_raw_event_handle(d->rc_dev);
49369
49370 + kfree(buf);
49371 +
49372 return 1;
49373 }
49374
49375 diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49376 index af63543..0436f20 100644
49377 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49378 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49379 @@ -429,7 +429,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
49380 * by passing a very big num_planes value */
49381 uplane = compat_alloc_user_space(num_planes *
49382 sizeof(struct v4l2_plane));
49383 - kp->m.planes = (__force struct v4l2_plane *)uplane;
49384 + kp->m.planes = (__force_kernel struct v4l2_plane *)uplane;
49385
49386 while (--num_planes >= 0) {
49387 ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
49388 @@ -500,7 +500,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
49389 if (num_planes == 0)
49390 return 0;
49391
49392 - uplane = (__force struct v4l2_plane __user *)kp->m.planes;
49393 + uplane = (struct v4l2_plane __force_user *)kp->m.planes;
49394 if (get_user(p, &up->m.planes))
49395 return -EFAULT;
49396 uplane32 = compat_ptr(p);
49397 @@ -564,7 +564,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
49398 get_user(kp->flags, &up->flags) ||
49399 copy_from_user(&kp->fmt, &up->fmt, sizeof(up->fmt)))
49400 return -EFAULT;
49401 - kp->base = (__force void *)compat_ptr(tmp);
49402 + kp->base = (__force_kernel void *)compat_ptr(tmp);
49403 return 0;
49404 }
49405
49406 @@ -669,7 +669,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
49407 n * sizeof(struct v4l2_ext_control32)))
49408 return -EFAULT;
49409 kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control));
49410 - kp->controls = (__force struct v4l2_ext_control *)kcontrols;
49411 + kp->controls = (__force_kernel struct v4l2_ext_control *)kcontrols;
49412 while (--n >= 0) {
49413 u32 id;
49414
49415 @@ -696,7 +696,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
49416 {
49417 struct v4l2_ext_control32 __user *ucontrols;
49418 struct v4l2_ext_control __user *kcontrols =
49419 - (__force struct v4l2_ext_control __user *)kp->controls;
49420 + (struct v4l2_ext_control __force_user *)kp->controls;
49421 int n = kp->count;
49422 compat_caddr_t p;
49423
49424 @@ -780,7 +780,7 @@ static int get_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up)
49425 get_user(tmp, &up->edid) ||
49426 copy_from_user(kp->reserved, up->reserved, sizeof(kp->reserved)))
49427 return -EFAULT;
49428 - kp->edid = (__force u8 *)compat_ptr(tmp);
49429 + kp->edid = (__force_kernel u8 *)compat_ptr(tmp);
49430 return 0;
49431 }
49432
49433 diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
49434 index 5b0a30b..1974b38 100644
49435 --- a/drivers/media/v4l2-core/v4l2-device.c
49436 +++ b/drivers/media/v4l2-core/v4l2-device.c
49437 @@ -74,9 +74,9 @@ int v4l2_device_put(struct v4l2_device *v4l2_dev)
49438 EXPORT_SYMBOL_GPL(v4l2_device_put);
49439
49440 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
49441 - atomic_t *instance)
49442 + atomic_unchecked_t *instance)
49443 {
49444 - int num = atomic_inc_return(instance) - 1;
49445 + int num = atomic_inc_return_unchecked(instance) - 1;
49446 int len = strlen(basename);
49447
49448 if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
49449 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
49450 index 85de455..4987854 100644
49451 --- a/drivers/media/v4l2-core/v4l2-ioctl.c
49452 +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
49453 @@ -2341,7 +2341,8 @@ struct v4l2_ioctl_info {
49454 struct file *file, void *fh, void *p);
49455 } u;
49456 void (*debug)(const void *arg, bool write_only);
49457 -};
49458 +} __do_const;
49459 +typedef struct v4l2_ioctl_info __no_const v4l2_ioctl_info_no_const;
49460
49461 /* This control needs a priority check */
49462 #define INFO_FL_PRIO (1 << 0)
49463 @@ -2525,7 +2526,7 @@ static long __video_do_ioctl(struct file *file,
49464 struct video_device *vfd = video_devdata(file);
49465 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops;
49466 bool write_only = false;
49467 - struct v4l2_ioctl_info default_info;
49468 + v4l2_ioctl_info_no_const default_info;
49469 const struct v4l2_ioctl_info *info;
49470 void *fh = file->private_data;
49471 struct v4l2_fh *vfh = NULL;
49472 @@ -2616,7 +2617,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49473 ret = -EINVAL;
49474 break;
49475 }
49476 - *user_ptr = (void __user *)buf->m.planes;
49477 + *user_ptr = (void __force_user *)buf->m.planes;
49478 *kernel_ptr = (void **)&buf->m.planes;
49479 *array_size = sizeof(struct v4l2_plane) * buf->length;
49480 ret = 1;
49481 @@ -2633,7 +2634,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49482 ret = -EINVAL;
49483 break;
49484 }
49485 - *user_ptr = (void __user *)edid->edid;
49486 + *user_ptr = (void __force_user *)edid->edid;
49487 *kernel_ptr = (void **)&edid->edid;
49488 *array_size = edid->blocks * 128;
49489 ret = 1;
49490 @@ -2651,7 +2652,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49491 ret = -EINVAL;
49492 break;
49493 }
49494 - *user_ptr = (void __user *)ctrls->controls;
49495 + *user_ptr = (void __force_user *)ctrls->controls;
49496 *kernel_ptr = (void **)&ctrls->controls;
49497 *array_size = sizeof(struct v4l2_ext_control)
49498 * ctrls->count;
49499 @@ -2752,7 +2753,7 @@ video_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
49500 }
49501
49502 if (has_array_args) {
49503 - *kernel_ptr = (void __force *)user_ptr;
49504 + *kernel_ptr = (void __force_kernel *)user_ptr;
49505 if (copy_to_user(user_ptr, mbuf, array_size))
49506 err = -EFAULT;
49507 goto out_array_args;
49508 diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
49509 index 9426276..9abd11e 100644
49510 --- a/drivers/memory/omap-gpmc.c
49511 +++ b/drivers/memory/omap-gpmc.c
49512 @@ -232,7 +232,6 @@ struct omap3_gpmc_regs {
49513 };
49514
49515 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
49516 -static struct irq_chip gpmc_irq_chip;
49517 static int gpmc_irq_start;
49518
49519 static struct resource gpmc_mem_root;
49520 @@ -1146,6 +1145,17 @@ static void gpmc_irq_noop(struct irq_data *data) { }
49521
49522 static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
49523
49524 +static struct irq_chip gpmc_irq_chip = {
49525 + .name = "gpmc",
49526 + .irq_startup = gpmc_irq_noop_ret,
49527 + .irq_enable = gpmc_irq_enable,
49528 + .irq_disable = gpmc_irq_disable,
49529 + .irq_shutdown = gpmc_irq_noop,
49530 + .irq_ack = gpmc_irq_noop,
49531 + .irq_mask = gpmc_irq_noop,
49532 + .irq_unmask = gpmc_irq_noop,
49533 +};
49534 +
49535 static int gpmc_setup_irq(void)
49536 {
49537 int i;
49538 @@ -1160,15 +1170,6 @@ static int gpmc_setup_irq(void)
49539 return gpmc_irq_start;
49540 }
49541
49542 - gpmc_irq_chip.name = "gpmc";
49543 - gpmc_irq_chip.irq_startup = gpmc_irq_noop_ret;
49544 - gpmc_irq_chip.irq_enable = gpmc_irq_enable;
49545 - gpmc_irq_chip.irq_disable = gpmc_irq_disable;
49546 - gpmc_irq_chip.irq_shutdown = gpmc_irq_noop;
49547 - gpmc_irq_chip.irq_ack = gpmc_irq_noop;
49548 - gpmc_irq_chip.irq_mask = gpmc_irq_noop;
49549 - gpmc_irq_chip.irq_unmask = gpmc_irq_noop;
49550 -
49551 gpmc_client_irq[0].bitmask = GPMC_IRQ_FIFOEVENTENABLE;
49552 gpmc_client_irq[1].bitmask = GPMC_IRQ_COUNT_EVENT;
49553
49554 diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
49555 index 5dcc031..e08ecd2 100644
49556 --- a/drivers/message/fusion/mptbase.c
49557 +++ b/drivers/message/fusion/mptbase.c
49558 @@ -6722,8 +6722,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
49559 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
49560 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
49561
49562 +#ifdef CONFIG_GRKERNSEC_HIDESYM
49563 + seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n", NULL, NULL);
49564 +#else
49565 seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n",
49566 (void *)ioc->req_frames, (void *)(ulong)ioc->req_frames_dma);
49567 +#endif
49568 +
49569 /*
49570 * Rounding UP to nearest 4-kB boundary here...
49571 */
49572 @@ -6736,7 +6741,11 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
49573 ioc->facts.GlobalCredits);
49574
49575 seq_printf(m, " Frames @ 0x%p (Dma @ 0x%p)\n",
49576 +#ifdef CONFIG_GRKERNSEC_HIDESYM
49577 + NULL, NULL);
49578 +#else
49579 (void *)ioc->alloc, (void *)(ulong)ioc->alloc_dma);
49580 +#endif
49581 sz = (ioc->reply_sz * ioc->reply_depth) + 128;
49582 seq_printf(m, " {CurRepSz=%d} x {CurRepDepth=%d} = %d bytes ^= 0x%x\n",
49583 ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz);
49584 diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
49585 index 005a88b..5a90fbb 100644
49586 --- a/drivers/message/fusion/mptsas.c
49587 +++ b/drivers/message/fusion/mptsas.c
49588 @@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
49589 return 0;
49590 }
49591
49592 +static inline void
49593 +mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
49594 +{
49595 + if (phy_info->port_details) {
49596 + phy_info->port_details->rphy = rphy;
49597 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
49598 + ioc->name, rphy));
49599 + }
49600 +
49601 + if (rphy) {
49602 + dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
49603 + &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
49604 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
49605 + ioc->name, rphy, rphy->dev.release));
49606 + }
49607 +}
49608 +
49609 /* no mutex */
49610 static void
49611 mptsas_port_delete(MPT_ADAPTER *ioc, struct mptsas_portinfo_details * port_details)
49612 @@ -484,23 +501,6 @@ mptsas_get_rphy(struct mptsas_phyinfo *phy_info)
49613 return NULL;
49614 }
49615
49616 -static inline void
49617 -mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
49618 -{
49619 - if (phy_info->port_details) {
49620 - phy_info->port_details->rphy = rphy;
49621 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
49622 - ioc->name, rphy));
49623 - }
49624 -
49625 - if (rphy) {
49626 - dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
49627 - &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
49628 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
49629 - ioc->name, rphy, rphy->dev.release));
49630 - }
49631 -}
49632 -
49633 static inline struct sas_port *
49634 mptsas_get_port(struct mptsas_phyinfo *phy_info)
49635 {
49636 diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
49637 index 0236cd7..53b10d7 100644
49638 --- a/drivers/mfd/ab8500-debugfs.c
49639 +++ b/drivers/mfd/ab8500-debugfs.c
49640 @@ -100,7 +100,7 @@ static int irq_last;
49641 static u32 *irq_count;
49642 static int num_irqs;
49643
49644 -static struct device_attribute **dev_attr;
49645 +static device_attribute_no_const **dev_attr;
49646 static char **event_name;
49647
49648 static u8 avg_sample = SAMPLE_16;
49649 diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
49650 index 8057849..0550fdf 100644
49651 --- a/drivers/mfd/kempld-core.c
49652 +++ b/drivers/mfd/kempld-core.c
49653 @@ -499,7 +499,7 @@ static struct platform_driver kempld_driver = {
49654 .remove = kempld_remove,
49655 };
49656
49657 -static struct dmi_system_id kempld_dmi_table[] __initdata = {
49658 +static const struct dmi_system_id kempld_dmi_table[] __initconst = {
49659 {
49660 .ident = "BHL6",
49661 .matches = {
49662 diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
49663 index c880c89..45a7c68 100644
49664 --- a/drivers/mfd/max8925-i2c.c
49665 +++ b/drivers/mfd/max8925-i2c.c
49666 @@ -152,7 +152,7 @@ static int max8925_probe(struct i2c_client *client,
49667 const struct i2c_device_id *id)
49668 {
49669 struct max8925_platform_data *pdata = dev_get_platdata(&client->dev);
49670 - static struct max8925_chip *chip;
49671 + struct max8925_chip *chip;
49672 struct device_node *node = client->dev.of_node;
49673
49674 if (node && !pdata) {
49675 diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
49676 index 7612d89..70549c2 100644
49677 --- a/drivers/mfd/tps65910.c
49678 +++ b/drivers/mfd/tps65910.c
49679 @@ -230,7 +230,7 @@ static int tps65910_irq_init(struct tps65910 *tps65910, int irq,
49680 struct tps65910_platform_data *pdata)
49681 {
49682 int ret = 0;
49683 - static struct regmap_irq_chip *tps6591x_irqs_chip;
49684 + struct regmap_irq_chip *tps6591x_irqs_chip;
49685
49686 if (!irq) {
49687 dev_warn(tps65910->dev, "No interrupt support, no core IRQ\n");
49688 diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
49689 index a3fa7f4..eac02ef 100644
49690 --- a/drivers/mfd/twl4030-irq.c
49691 +++ b/drivers/mfd/twl4030-irq.c
49692 @@ -34,6 +34,7 @@
49693 #include <linux/of.h>
49694 #include <linux/irqdomain.h>
49695 #include <linux/i2c/twl.h>
49696 +#include <asm/pgtable.h>
49697
49698 #include "twl-core.h"
49699
49700 @@ -729,10 +730,12 @@ int twl4030_init_irq(struct device *dev, int irq_num)
49701 * Install an irq handler for each of the SIH modules;
49702 * clone dummy irq_chip since PIH can't *do* anything
49703 */
49704 - twl4030_irq_chip = dummy_irq_chip;
49705 - twl4030_irq_chip.name = "twl4030";
49706 + pax_open_kernel();
49707 + memcpy((void *)&twl4030_irq_chip, &dummy_irq_chip, sizeof twl4030_irq_chip);
49708 + *(const char **)&twl4030_irq_chip.name = "twl4030";
49709
49710 - twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
49711 + *(void **)&twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
49712 + pax_close_kernel();
49713
49714 for (i = irq_base; i < irq_end; i++) {
49715 irq_set_chip_and_handler(i, &twl4030_irq_chip,
49716 diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
49717 index 464419b..64bae8d 100644
49718 --- a/drivers/misc/c2port/core.c
49719 +++ b/drivers/misc/c2port/core.c
49720 @@ -922,7 +922,9 @@ struct c2port_device *c2port_device_register(char *name,
49721 goto error_idr_alloc;
49722 c2dev->id = ret;
49723
49724 - bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
49725 + pax_open_kernel();
49726 + *(size_t *)&bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
49727 + pax_close_kernel();
49728
49729 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
49730 "c2port%d", c2dev->id);
49731 diff --git a/drivers/misc/eeprom/sunxi_sid.c b/drivers/misc/eeprom/sunxi_sid.c
49732 index 8385177..2f54635 100644
49733 --- a/drivers/misc/eeprom/sunxi_sid.c
49734 +++ b/drivers/misc/eeprom/sunxi_sid.c
49735 @@ -126,7 +126,9 @@ static int sunxi_sid_probe(struct platform_device *pdev)
49736
49737 platform_set_drvdata(pdev, sid_data);
49738
49739 - sid_bin_attr.size = sid_data->keysize;
49740 + pax_open_kernel();
49741 + *(size_t *)&sid_bin_attr.size = sid_data->keysize;
49742 + pax_close_kernel();
49743 if (device_create_bin_file(&pdev->dev, &sid_bin_attr))
49744 return -ENODEV;
49745
49746 diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
49747 index 9a60bd4..cee2069 100644
49748 --- a/drivers/misc/kgdbts.c
49749 +++ b/drivers/misc/kgdbts.c
49750 @@ -834,7 +834,7 @@ static void run_plant_and_detach_test(int is_early)
49751 char before[BREAK_INSTR_SIZE];
49752 char after[BREAK_INSTR_SIZE];
49753
49754 - probe_kernel_read(before, (char *)kgdbts_break_test,
49755 + probe_kernel_read(before, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
49756 BREAK_INSTR_SIZE);
49757 init_simple_test();
49758 ts.tst = plant_and_detach_test;
49759 @@ -842,7 +842,7 @@ static void run_plant_and_detach_test(int is_early)
49760 /* Activate test with initial breakpoint */
49761 if (!is_early)
49762 kgdb_breakpoint();
49763 - probe_kernel_read(after, (char *)kgdbts_break_test,
49764 + probe_kernel_read(after, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
49765 BREAK_INSTR_SIZE);
49766 if (memcmp(before, after, BREAK_INSTR_SIZE)) {
49767 printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n");
49768 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
49769 index fb8705f..dc2f679 100644
49770 --- a/drivers/misc/lis3lv02d/lis3lv02d.c
49771 +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
49772 @@ -497,7 +497,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
49773 * the lid is closed. This leads to interrupts as soon as a little move
49774 * is done.
49775 */
49776 - atomic_inc(&lis3->count);
49777 + atomic_inc_unchecked(&lis3->count);
49778
49779 wake_up_interruptible(&lis3->misc_wait);
49780 kill_fasync(&lis3->async_queue, SIGIO, POLL_IN);
49781 @@ -583,7 +583,7 @@ static int lis3lv02d_misc_open(struct inode *inode, struct file *file)
49782 if (lis3->pm_dev)
49783 pm_runtime_get_sync(lis3->pm_dev);
49784
49785 - atomic_set(&lis3->count, 0);
49786 + atomic_set_unchecked(&lis3->count, 0);
49787 return 0;
49788 }
49789
49790 @@ -615,7 +615,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
49791 add_wait_queue(&lis3->misc_wait, &wait);
49792 while (true) {
49793 set_current_state(TASK_INTERRUPTIBLE);
49794 - data = atomic_xchg(&lis3->count, 0);
49795 + data = atomic_xchg_unchecked(&lis3->count, 0);
49796 if (data)
49797 break;
49798
49799 @@ -656,7 +656,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
49800 struct lis3lv02d, miscdev);
49801
49802 poll_wait(file, &lis3->misc_wait, wait);
49803 - if (atomic_read(&lis3->count))
49804 + if (atomic_read_unchecked(&lis3->count))
49805 return POLLIN | POLLRDNORM;
49806 return 0;
49807 }
49808 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h
49809 index c439c82..1f20f57 100644
49810 --- a/drivers/misc/lis3lv02d/lis3lv02d.h
49811 +++ b/drivers/misc/lis3lv02d/lis3lv02d.h
49812 @@ -297,7 +297,7 @@ struct lis3lv02d {
49813 struct input_polled_dev *idev; /* input device */
49814 struct platform_device *pdev; /* platform device */
49815 struct regulator_bulk_data regulators[2];
49816 - atomic_t count; /* interrupt count after last read */
49817 + atomic_unchecked_t count; /* interrupt count after last read */
49818 union axis_conversion ac; /* hw -> logical axis */
49819 int mapped_btns[3];
49820
49821 diff --git a/drivers/misc/mic/scif/scif_rb.c b/drivers/misc/mic/scif/scif_rb.c
49822 index 637cc46..4fb1267 100644
49823 --- a/drivers/misc/mic/scif/scif_rb.c
49824 +++ b/drivers/misc/mic/scif/scif_rb.c
49825 @@ -138,7 +138,7 @@ void scif_rb_commit(struct scif_rb *rb)
49826 * the read barrier in scif_rb_count(..)
49827 */
49828 wmb();
49829 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
49830 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
49831 #ifdef CONFIG_INTEL_MIC_CARD
49832 /*
49833 * X100 Si bug: For the case where a Core is performing an EXT_WR
49834 @@ -147,7 +147,7 @@ void scif_rb_commit(struct scif_rb *rb)
49835 * This way, if ordering is violated for the Interrupt Message, it will
49836 * fall just behind the first Posted associated with the first EXT_WR.
49837 */
49838 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
49839 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
49840 #endif
49841 }
49842
49843 @@ -210,7 +210,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
49844 * scif_rb_space(..)
49845 */
49846 mb();
49847 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
49848 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
49849 #ifdef CONFIG_INTEL_MIC_CARD
49850 /*
49851 * X100 Si Bug: For the case where a Core is performing an EXT_WR
49852 @@ -219,7 +219,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
49853 * This way, if ordering is violated for the Interrupt Message, it will
49854 * fall just behind the first Posted associated with the first EXT_WR.
49855 */
49856 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
49857 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
49858 #endif
49859 }
49860
49861 diff --git a/drivers/misc/sgi-gru/gruhandles.c b/drivers/misc/sgi-gru/gruhandles.c
49862 index 2f30bad..c4c13d0 100644
49863 --- a/drivers/misc/sgi-gru/gruhandles.c
49864 +++ b/drivers/misc/sgi-gru/gruhandles.c
49865 @@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op op, unsigned long clks)
49866 unsigned long nsec;
49867
49868 nsec = CLKS2NSEC(clks);
49869 - atomic_long_inc(&mcs_op_statistics[op].count);
49870 - atomic_long_add(nsec, &mcs_op_statistics[op].total);
49871 + atomic_long_inc_unchecked(&mcs_op_statistics[op].count);
49872 + atomic_long_add_unchecked(nsec, &mcs_op_statistics[op].total);
49873 if (mcs_op_statistics[op].max < nsec)
49874 mcs_op_statistics[op].max = nsec;
49875 }
49876 diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
49877 index 4f76359..cdfcb2e 100644
49878 --- a/drivers/misc/sgi-gru/gruprocfs.c
49879 +++ b/drivers/misc/sgi-gru/gruprocfs.c
49880 @@ -32,9 +32,9 @@
49881
49882 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
49883
49884 -static void printstat_val(struct seq_file *s, atomic_long_t *v, char *id)
49885 +static void printstat_val(struct seq_file *s, atomic_long_unchecked_t *v, char *id)
49886 {
49887 - unsigned long val = atomic_long_read(v);
49888 + unsigned long val = atomic_long_read_unchecked(v);
49889
49890 seq_printf(s, "%16lu %s\n", val, id);
49891 }
49892 @@ -134,8 +134,8 @@ static int mcs_statistics_show(struct seq_file *s, void *p)
49893
49894 seq_printf(s, "%-20s%12s%12s%12s\n", "#id", "count", "aver-clks", "max-clks");
49895 for (op = 0; op < mcsop_last; op++) {
49896 - count = atomic_long_read(&mcs_op_statistics[op].count);
49897 - total = atomic_long_read(&mcs_op_statistics[op].total);
49898 + count = atomic_long_read_unchecked(&mcs_op_statistics[op].count);
49899 + total = atomic_long_read_unchecked(&mcs_op_statistics[op].total);
49900 max = mcs_op_statistics[op].max;
49901 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
49902 count ? total / count : 0, max);
49903 diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h
49904 index 5c3ce24..4915ccb 100644
49905 --- a/drivers/misc/sgi-gru/grutables.h
49906 +++ b/drivers/misc/sgi-gru/grutables.h
49907 @@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
49908 * GRU statistics.
49909 */
49910 struct gru_stats_s {
49911 - atomic_long_t vdata_alloc;
49912 - atomic_long_t vdata_free;
49913 - atomic_long_t gts_alloc;
49914 - atomic_long_t gts_free;
49915 - atomic_long_t gms_alloc;
49916 - atomic_long_t gms_free;
49917 - atomic_long_t gts_double_allocate;
49918 - atomic_long_t assign_context;
49919 - atomic_long_t assign_context_failed;
49920 - atomic_long_t free_context;
49921 - atomic_long_t load_user_context;
49922 - atomic_long_t load_kernel_context;
49923 - atomic_long_t lock_kernel_context;
49924 - atomic_long_t unlock_kernel_context;
49925 - atomic_long_t steal_user_context;
49926 - atomic_long_t steal_kernel_context;
49927 - atomic_long_t steal_context_failed;
49928 - atomic_long_t nopfn;
49929 - atomic_long_t asid_new;
49930 - atomic_long_t asid_next;
49931 - atomic_long_t asid_wrap;
49932 - atomic_long_t asid_reuse;
49933 - atomic_long_t intr;
49934 - atomic_long_t intr_cbr;
49935 - atomic_long_t intr_tfh;
49936 - atomic_long_t intr_spurious;
49937 - atomic_long_t intr_mm_lock_failed;
49938 - atomic_long_t call_os;
49939 - atomic_long_t call_os_wait_queue;
49940 - atomic_long_t user_flush_tlb;
49941 - atomic_long_t user_unload_context;
49942 - atomic_long_t user_exception;
49943 - atomic_long_t set_context_option;
49944 - atomic_long_t check_context_retarget_intr;
49945 - atomic_long_t check_context_unload;
49946 - atomic_long_t tlb_dropin;
49947 - atomic_long_t tlb_preload_page;
49948 - atomic_long_t tlb_dropin_fail_no_asid;
49949 - atomic_long_t tlb_dropin_fail_upm;
49950 - atomic_long_t tlb_dropin_fail_invalid;
49951 - atomic_long_t tlb_dropin_fail_range_active;
49952 - atomic_long_t tlb_dropin_fail_idle;
49953 - atomic_long_t tlb_dropin_fail_fmm;
49954 - atomic_long_t tlb_dropin_fail_no_exception;
49955 - atomic_long_t tfh_stale_on_fault;
49956 - atomic_long_t mmu_invalidate_range;
49957 - atomic_long_t mmu_invalidate_page;
49958 - atomic_long_t flush_tlb;
49959 - atomic_long_t flush_tlb_gru;
49960 - atomic_long_t flush_tlb_gru_tgh;
49961 - atomic_long_t flush_tlb_gru_zero_asid;
49962 + atomic_long_unchecked_t vdata_alloc;
49963 + atomic_long_unchecked_t vdata_free;
49964 + atomic_long_unchecked_t gts_alloc;
49965 + atomic_long_unchecked_t gts_free;
49966 + atomic_long_unchecked_t gms_alloc;
49967 + atomic_long_unchecked_t gms_free;
49968 + atomic_long_unchecked_t gts_double_allocate;
49969 + atomic_long_unchecked_t assign_context;
49970 + atomic_long_unchecked_t assign_context_failed;
49971 + atomic_long_unchecked_t free_context;
49972 + atomic_long_unchecked_t load_user_context;
49973 + atomic_long_unchecked_t load_kernel_context;
49974 + atomic_long_unchecked_t lock_kernel_context;
49975 + atomic_long_unchecked_t unlock_kernel_context;
49976 + atomic_long_unchecked_t steal_user_context;
49977 + atomic_long_unchecked_t steal_kernel_context;
49978 + atomic_long_unchecked_t steal_context_failed;
49979 + atomic_long_unchecked_t nopfn;
49980 + atomic_long_unchecked_t asid_new;
49981 + atomic_long_unchecked_t asid_next;
49982 + atomic_long_unchecked_t asid_wrap;
49983 + atomic_long_unchecked_t asid_reuse;
49984 + atomic_long_unchecked_t intr;
49985 + atomic_long_unchecked_t intr_cbr;
49986 + atomic_long_unchecked_t intr_tfh;
49987 + atomic_long_unchecked_t intr_spurious;
49988 + atomic_long_unchecked_t intr_mm_lock_failed;
49989 + atomic_long_unchecked_t call_os;
49990 + atomic_long_unchecked_t call_os_wait_queue;
49991 + atomic_long_unchecked_t user_flush_tlb;
49992 + atomic_long_unchecked_t user_unload_context;
49993 + atomic_long_unchecked_t user_exception;
49994 + atomic_long_unchecked_t set_context_option;
49995 + atomic_long_unchecked_t check_context_retarget_intr;
49996 + atomic_long_unchecked_t check_context_unload;
49997 + atomic_long_unchecked_t tlb_dropin;
49998 + atomic_long_unchecked_t tlb_preload_page;
49999 + atomic_long_unchecked_t tlb_dropin_fail_no_asid;
50000 + atomic_long_unchecked_t tlb_dropin_fail_upm;
50001 + atomic_long_unchecked_t tlb_dropin_fail_invalid;
50002 + atomic_long_unchecked_t tlb_dropin_fail_range_active;
50003 + atomic_long_unchecked_t tlb_dropin_fail_idle;
50004 + atomic_long_unchecked_t tlb_dropin_fail_fmm;
50005 + atomic_long_unchecked_t tlb_dropin_fail_no_exception;
50006 + atomic_long_unchecked_t tfh_stale_on_fault;
50007 + atomic_long_unchecked_t mmu_invalidate_range;
50008 + atomic_long_unchecked_t mmu_invalidate_page;
50009 + atomic_long_unchecked_t flush_tlb;
50010 + atomic_long_unchecked_t flush_tlb_gru;
50011 + atomic_long_unchecked_t flush_tlb_gru_tgh;
50012 + atomic_long_unchecked_t flush_tlb_gru_zero_asid;
50013
50014 - atomic_long_t copy_gpa;
50015 - atomic_long_t read_gpa;
50016 + atomic_long_unchecked_t copy_gpa;
50017 + atomic_long_unchecked_t read_gpa;
50018
50019 - atomic_long_t mesq_receive;
50020 - atomic_long_t mesq_receive_none;
50021 - atomic_long_t mesq_send;
50022 - atomic_long_t mesq_send_failed;
50023 - atomic_long_t mesq_noop;
50024 - atomic_long_t mesq_send_unexpected_error;
50025 - atomic_long_t mesq_send_lb_overflow;
50026 - atomic_long_t mesq_send_qlimit_reached;
50027 - atomic_long_t mesq_send_amo_nacked;
50028 - atomic_long_t mesq_send_put_nacked;
50029 - atomic_long_t mesq_page_overflow;
50030 - atomic_long_t mesq_qf_locked;
50031 - atomic_long_t mesq_qf_noop_not_full;
50032 - atomic_long_t mesq_qf_switch_head_failed;
50033 - atomic_long_t mesq_qf_unexpected_error;
50034 - atomic_long_t mesq_noop_unexpected_error;
50035 - atomic_long_t mesq_noop_lb_overflow;
50036 - atomic_long_t mesq_noop_qlimit_reached;
50037 - atomic_long_t mesq_noop_amo_nacked;
50038 - atomic_long_t mesq_noop_put_nacked;
50039 - atomic_long_t mesq_noop_page_overflow;
50040 + atomic_long_unchecked_t mesq_receive;
50041 + atomic_long_unchecked_t mesq_receive_none;
50042 + atomic_long_unchecked_t mesq_send;
50043 + atomic_long_unchecked_t mesq_send_failed;
50044 + atomic_long_unchecked_t mesq_noop;
50045 + atomic_long_unchecked_t mesq_send_unexpected_error;
50046 + atomic_long_unchecked_t mesq_send_lb_overflow;
50047 + atomic_long_unchecked_t mesq_send_qlimit_reached;
50048 + atomic_long_unchecked_t mesq_send_amo_nacked;
50049 + atomic_long_unchecked_t mesq_send_put_nacked;
50050 + atomic_long_unchecked_t mesq_page_overflow;
50051 + atomic_long_unchecked_t mesq_qf_locked;
50052 + atomic_long_unchecked_t mesq_qf_noop_not_full;
50053 + atomic_long_unchecked_t mesq_qf_switch_head_failed;
50054 + atomic_long_unchecked_t mesq_qf_unexpected_error;
50055 + atomic_long_unchecked_t mesq_noop_unexpected_error;
50056 + atomic_long_unchecked_t mesq_noop_lb_overflow;
50057 + atomic_long_unchecked_t mesq_noop_qlimit_reached;
50058 + atomic_long_unchecked_t mesq_noop_amo_nacked;
50059 + atomic_long_unchecked_t mesq_noop_put_nacked;
50060 + atomic_long_unchecked_t mesq_noop_page_overflow;
50061
50062 };
50063
50064 @@ -251,8 +251,8 @@ enum mcs_op {cchop_allocate, cchop_start, cchop_interrupt, cchop_interrupt_sync,
50065 tghop_invalidate, mcsop_last};
50066
50067 struct mcs_op_statistic {
50068 - atomic_long_t count;
50069 - atomic_long_t total;
50070 + atomic_long_unchecked_t count;
50071 + atomic_long_unchecked_t total;
50072 unsigned long max;
50073 };
50074
50075 @@ -275,7 +275,7 @@ extern struct mcs_op_statistic mcs_op_statistics[mcsop_last];
50076
50077 #define STAT(id) do { \
50078 if (gru_options & OPT_STATS) \
50079 - atomic_long_inc(&gru_stats.id); \
50080 + atomic_long_inc_unchecked(&gru_stats.id); \
50081 } while (0)
50082
50083 #ifdef CONFIG_SGI_GRU_DEBUG
50084 diff --git a/drivers/misc/sgi-xp/xp.h b/drivers/misc/sgi-xp/xp.h
50085 index c862cd4..0d176fe 100644
50086 --- a/drivers/misc/sgi-xp/xp.h
50087 +++ b/drivers/misc/sgi-xp/xp.h
50088 @@ -288,7 +288,7 @@ struct xpc_interface {
50089 xpc_notify_func, void *);
50090 void (*received) (short, int, void *);
50091 enum xp_retval (*partid_to_nasids) (short, void *);
50092 -};
50093 +} __no_const;
50094
50095 extern struct xpc_interface xpc_interface;
50096
50097 diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
50098 index 01be66d..e3a0c7e 100644
50099 --- a/drivers/misc/sgi-xp/xp_main.c
50100 +++ b/drivers/misc/sgi-xp/xp_main.c
50101 @@ -78,13 +78,13 @@ xpc_notloaded(void)
50102 }
50103
50104 struct xpc_interface xpc_interface = {
50105 - (void (*)(int))xpc_notloaded,
50106 - (void (*)(int))xpc_notloaded,
50107 - (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
50108 - (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
50109 + .connect = (void (*)(int))xpc_notloaded,
50110 + .disconnect = (void (*)(int))xpc_notloaded,
50111 + .send = (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
50112 + .send_notify = (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
50113 void *))xpc_notloaded,
50114 - (void (*)(short, int, void *))xpc_notloaded,
50115 - (enum xp_retval(*)(short, void *))xpc_notloaded
50116 + .received = (void (*)(short, int, void *))xpc_notloaded,
50117 + .partid_to_nasids = (enum xp_retval(*)(short, void *))xpc_notloaded
50118 };
50119 EXPORT_SYMBOL_GPL(xpc_interface);
50120
50121 diff --git a/drivers/misc/sgi-xp/xpc.h b/drivers/misc/sgi-xp/xpc.h
50122 index b94d5f7..7f494c5 100644
50123 --- a/drivers/misc/sgi-xp/xpc.h
50124 +++ b/drivers/misc/sgi-xp/xpc.h
50125 @@ -835,6 +835,7 @@ struct xpc_arch_operations {
50126 void (*received_payload) (struct xpc_channel *, void *);
50127 void (*notify_senders_of_disconnect) (struct xpc_channel *);
50128 };
50129 +typedef struct xpc_arch_operations __no_const xpc_arch_operations_no_const;
50130
50131 /* struct xpc_partition act_state values (for XPC HB) */
50132
50133 @@ -876,7 +877,7 @@ extern struct xpc_registration xpc_registrations[];
50134 /* found in xpc_main.c */
50135 extern struct device *xpc_part;
50136 extern struct device *xpc_chan;
50137 -extern struct xpc_arch_operations xpc_arch_ops;
50138 +extern xpc_arch_operations_no_const xpc_arch_ops;
50139 extern int xpc_disengage_timelimit;
50140 extern int xpc_disengage_timedout;
50141 extern int xpc_activate_IRQ_rcvd;
50142 diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
50143 index 7f32712..8539ab2 100644
50144 --- a/drivers/misc/sgi-xp/xpc_main.c
50145 +++ b/drivers/misc/sgi-xp/xpc_main.c
50146 @@ -166,7 +166,7 @@ static struct notifier_block xpc_die_notifier = {
50147 .notifier_call = xpc_system_die,
50148 };
50149
50150 -struct xpc_arch_operations xpc_arch_ops;
50151 +xpc_arch_operations_no_const xpc_arch_ops;
50152
50153 /*
50154 * Timer function to enforce the timelimit on the partition disengage.
50155 diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
50156 index a1b820f..e299c58 100644
50157 --- a/drivers/mmc/card/block.c
50158 +++ b/drivers/mmc/card/block.c
50159 @@ -579,7 +579,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
50160 if (idata->ic.postsleep_min_us)
50161 usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
50162
50163 - if (copy_to_user(&(ic_ptr->response), cmd.resp, sizeof(cmd.resp))) {
50164 + if (copy_to_user(ic_ptr->response, cmd.resp, sizeof(cmd.resp))) {
50165 err = -EFAULT;
50166 goto cmd_rel_host;
50167 }
50168 diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
50169 index 8ce4674..a23c858 100644
50170 --- a/drivers/mmc/host/dw_mmc.h
50171 +++ b/drivers/mmc/host/dw_mmc.h
50172 @@ -286,5 +286,5 @@ struct dw_mci_drv_data {
50173 struct mmc_ios *ios);
50174 int (*switch_voltage)(struct mmc_host *mmc,
50175 struct mmc_ios *ios);
50176 -};
50177 +} __do_const;
50178 #endif /* _DW_MMC_H_ */
50179 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
50180 index fb26674..3172c2b 100644
50181 --- a/drivers/mmc/host/mmci.c
50182 +++ b/drivers/mmc/host/mmci.c
50183 @@ -1633,7 +1633,9 @@ static int mmci_probe(struct amba_device *dev,
50184 mmc->caps |= MMC_CAP_CMD23;
50185
50186 if (variant->busy_detect) {
50187 - mmci_ops.card_busy = mmci_card_busy;
50188 + pax_open_kernel();
50189 + *(void **)&mmci_ops.card_busy = mmci_card_busy;
50190 + pax_close_kernel();
50191 mmci_write_datactrlreg(host, MCI_ST_DPSM_BUSYMODE);
50192 mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
50193 mmc->max_busy_timeout = 0;
50194 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
50195 index 4d12032..2b0eb6d 100644
50196 --- a/drivers/mmc/host/omap_hsmmc.c
50197 +++ b/drivers/mmc/host/omap_hsmmc.c
50198 @@ -1984,7 +1984,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
50199
50200 if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) {
50201 dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n");
50202 - omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
50203 + pax_open_kernel();
50204 + *(void **)&omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
50205 + pax_close_kernel();
50206 }
50207
50208 device_init_wakeup(&pdev->dev, true);
50209 diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
50210 index c6b9f64..00e656c 100644
50211 --- a/drivers/mmc/host/sdhci-esdhc-imx.c
50212 +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
50213 @@ -1088,9 +1088,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
50214 host->ioaddr + 0x6c);
50215 }
50216
50217 - if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
50218 - sdhci_esdhc_ops.platform_execute_tuning =
50219 + if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
50220 + pax_open_kernel();
50221 + *(void **)&sdhci_esdhc_ops.platform_execute_tuning =
50222 esdhc_executing_tuning;
50223 + pax_close_kernel();
50224 + }
50225
50226 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
50227 writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
50228 diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
50229 index 70c724b..308aafc 100644
50230 --- a/drivers/mmc/host/sdhci-s3c.c
50231 +++ b/drivers/mmc/host/sdhci-s3c.c
50232 @@ -598,9 +598,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
50233 * we can use overriding functions instead of default.
50234 */
50235 if (sc->no_divider) {
50236 - sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
50237 - sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
50238 - sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
50239 + pax_open_kernel();
50240 + *(void **)&sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
50241 + *(void **)&sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
50242 + *(void **)&sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
50243 + pax_close_kernel();
50244 }
50245
50246 /* It supports additional host capabilities if needed */
50247 diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
50248 index 9a1a6ff..b8f1a57 100644
50249 --- a/drivers/mtd/chips/cfi_cmdset_0020.c
50250 +++ b/drivers/mtd/chips/cfi_cmdset_0020.c
50251 @@ -666,7 +666,7 @@ cfi_staa_writev(struct mtd_info *mtd, const struct kvec *vecs,
50252 size_t totlen = 0, thislen;
50253 int ret = 0;
50254 size_t buflen = 0;
50255 - static char *buffer;
50256 + char *buffer;
50257
50258 if (!ECCBUF_SIZE) {
50259 /* We should fall back to a general writev implementation.
50260 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
50261 index 870c7fc..c7d6440 100644
50262 --- a/drivers/mtd/nand/denali.c
50263 +++ b/drivers/mtd/nand/denali.c
50264 @@ -24,6 +24,7 @@
50265 #include <linux/slab.h>
50266 #include <linux/mtd/mtd.h>
50267 #include <linux/module.h>
50268 +#include <linux/slab.h>
50269
50270 #include "denali.h"
50271
50272 diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
50273 index 1b8f350..990f2e9 100644
50274 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
50275 +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
50276 @@ -386,7 +386,7 @@ void prepare_data_dma(struct gpmi_nand_data *this, enum dma_data_direction dr)
50277
50278 /* first try to map the upper buffer directly */
50279 if (virt_addr_valid(this->upper_buf) &&
50280 - !object_is_on_stack(this->upper_buf)) {
50281 + !object_starts_on_stack(this->upper_buf)) {
50282 sg_init_one(sgl, this->upper_buf, this->upper_len);
50283 ret = dma_map_sg(this->dev, sgl, 1, dr);
50284 if (ret == 0)
50285 diff --git a/drivers/mtd/nftlmount.c b/drivers/mtd/nftlmount.c
50286 index a5dfbfb..8042ab4 100644
50287 --- a/drivers/mtd/nftlmount.c
50288 +++ b/drivers/mtd/nftlmount.c
50289 @@ -24,6 +24,7 @@
50290 #include <asm/errno.h>
50291 #include <linux/delay.h>
50292 #include <linux/slab.h>
50293 +#include <linux/sched.h>
50294 #include <linux/mtd/mtd.h>
50295 #include <linux/mtd/nand.h>
50296 #include <linux/mtd/nftl.h>
50297 diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
50298 index c23184a..4115c41 100644
50299 --- a/drivers/mtd/sm_ftl.c
50300 +++ b/drivers/mtd/sm_ftl.c
50301 @@ -56,7 +56,7 @@ static ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
50302 #define SM_CIS_VENDOR_OFFSET 0x59
50303 static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
50304 {
50305 - struct attribute_group *attr_group;
50306 + attribute_group_no_const *attr_group;
50307 struct attribute **attributes;
50308 struct sm_sysfs_attribute *vendor_attribute;
50309 char *vendor;
50310 diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c
50311 index 1bda292..3f4af40 100644
50312 --- a/drivers/net/bonding/bond_netlink.c
50313 +++ b/drivers/net/bonding/bond_netlink.c
50314 @@ -649,7 +649,7 @@ nla_put_failure:
50315 return -EMSGSIZE;
50316 }
50317
50318 -struct rtnl_link_ops bond_link_ops __read_mostly = {
50319 +struct rtnl_link_ops bond_link_ops = {
50320 .kind = "bond",
50321 .priv_size = sizeof(struct bonding),
50322 .setup = bond_setup,
50323 diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c
50324 index b3b922a..80bba38 100644
50325 --- a/drivers/net/caif/caif_hsi.c
50326 +++ b/drivers/net/caif/caif_hsi.c
50327 @@ -1444,7 +1444,7 @@ err:
50328 return -ENODEV;
50329 }
50330
50331 -static struct rtnl_link_ops caif_hsi_link_ops __read_mostly = {
50332 +static struct rtnl_link_ops caif_hsi_link_ops = {
50333 .kind = "cfhsi",
50334 .priv_size = sizeof(struct cfhsi),
50335 .setup = cfhsi_setup,
50336 diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
50337 index e8c96b8..516a96c 100644
50338 --- a/drivers/net/can/Kconfig
50339 +++ b/drivers/net/can/Kconfig
50340 @@ -98,7 +98,7 @@ config CAN_JANZ_ICAN3
50341
50342 config CAN_FLEXCAN
50343 tristate "Support for Freescale FLEXCAN based chips"
50344 - depends on ARM || PPC
50345 + depends on (ARM && CPU_LITTLE_ENDIAN) || PPC
50346 ---help---
50347 Say Y here if you want to support for Freescale FlexCAN.
50348
50349 diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
50350 index aede704..ca734ed 100644
50351 --- a/drivers/net/can/dev.c
50352 +++ b/drivers/net/can/dev.c
50353 @@ -915,7 +915,7 @@ static int can_fill_info(struct sk_buff *skb, const struct net_device *dev)
50354 nla_put(skb, IFLA_CAN_BITTIMING_CONST,
50355 sizeof(*priv->bittiming_const), priv->bittiming_const)) ||
50356
50357 - nla_put(skb, IFLA_CAN_CLOCK, sizeof(cm), &priv->clock) ||
50358 + nla_put(skb, IFLA_CAN_CLOCK, sizeof(priv->clock), &priv->clock) ||
50359 nla_put_u32(skb, IFLA_CAN_STATE, state) ||
50360 nla_put(skb, IFLA_CAN_CTRLMODE, sizeof(cm), &cm) ||
50361 nla_put_u32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms) ||
50362 @@ -961,7 +961,7 @@ static int can_newlink(struct net *src_net, struct net_device *dev,
50363 return -EOPNOTSUPP;
50364 }
50365
50366 -static struct rtnl_link_ops can_link_ops __read_mostly = {
50367 +static struct rtnl_link_ops can_link_ops = {
50368 .kind = "can",
50369 .maxtype = IFLA_CAN_MAX,
50370 .policy = can_policy,
50371 diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c
50372 index 674f367..ec3a31f 100644
50373 --- a/drivers/net/can/vcan.c
50374 +++ b/drivers/net/can/vcan.c
50375 @@ -163,7 +163,7 @@ static void vcan_setup(struct net_device *dev)
50376 dev->destructor = free_netdev;
50377 }
50378
50379 -static struct rtnl_link_ops vcan_link_ops __read_mostly = {
50380 +static struct rtnl_link_ops vcan_link_ops = {
50381 .kind = "vcan",
50382 .setup = vcan_setup,
50383 };
50384 diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
50385 index 49adbf1..fff7ff8 100644
50386 --- a/drivers/net/dummy.c
50387 +++ b/drivers/net/dummy.c
50388 @@ -164,7 +164,7 @@ static int dummy_validate(struct nlattr *tb[], struct nlattr *data[])
50389 return 0;
50390 }
50391
50392 -static struct rtnl_link_ops dummy_link_ops __read_mostly = {
50393 +static struct rtnl_link_ops dummy_link_ops = {
50394 .kind = DRV_NAME,
50395 .setup = dummy_setup,
50396 .validate = dummy_validate,
50397 diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
50398 index 0443654..4f0aa18 100644
50399 --- a/drivers/net/ethernet/8390/ax88796.c
50400 +++ b/drivers/net/ethernet/8390/ax88796.c
50401 @@ -889,9 +889,11 @@ static int ax_probe(struct platform_device *pdev)
50402 if (ax->plat->reg_offsets)
50403 ei_local->reg_offset = ax->plat->reg_offsets;
50404 else {
50405 + resource_size_t _mem_size = mem_size;
50406 + do_div(_mem_size, 0x18);
50407 ei_local->reg_offset = ax->reg_offsets;
50408 for (ret = 0; ret < 0x18; ret++)
50409 - ax->reg_offsets[ret] = (mem_size / 0x18) * ret;
50410 + ax->reg_offsets[ret] = _mem_size * ret;
50411 }
50412
50413 if (!request_mem_region(mem->start, mem_size, pdev->name)) {
50414 diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c
50415 index 8207877..ce13e99 100644
50416 --- a/drivers/net/ethernet/altera/altera_tse_main.c
50417 +++ b/drivers/net/ethernet/altera/altera_tse_main.c
50418 @@ -1255,7 +1255,7 @@ static int tse_shutdown(struct net_device *dev)
50419 return 0;
50420 }
50421
50422 -static struct net_device_ops altera_tse_netdev_ops = {
50423 +static net_device_ops_no_const altera_tse_netdev_ops __read_only = {
50424 .ndo_open = tse_open,
50425 .ndo_stop = tse_shutdown,
50426 .ndo_start_xmit = tse_start_xmit,
50427 @@ -1492,11 +1492,13 @@ static int altera_tse_probe(struct platform_device *pdev)
50428 ndev->netdev_ops = &altera_tse_netdev_ops;
50429 altera_tse_set_ethtool_ops(ndev);
50430
50431 + pax_open_kernel();
50432 altera_tse_netdev_ops.ndo_set_rx_mode = tse_set_rx_mode;
50433
50434 if (priv->hash_filter)
50435 altera_tse_netdev_ops.ndo_set_rx_mode =
50436 tse_set_rx_mode_hashfilter;
50437 + pax_close_kernel();
50438
50439 /* Scatter/gather IO is not supported,
50440 * so it is turned off
50441 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50442 index b6fa891..31ef157 100644
50443 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50444 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50445 @@ -1279,14 +1279,14 @@ do { \
50446 * operations, everything works on mask values.
50447 */
50448 #define XMDIO_READ(_pdata, _mmd, _reg) \
50449 - ((_pdata)->hw_if.read_mmd_regs((_pdata), 0, \
50450 + ((_pdata)->hw_if->read_mmd_regs((_pdata), 0, \
50451 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff)))
50452
50453 #define XMDIO_READ_BITS(_pdata, _mmd, _reg, _mask) \
50454 (XMDIO_READ((_pdata), _mmd, _reg) & _mask)
50455
50456 #define XMDIO_WRITE(_pdata, _mmd, _reg, _val) \
50457 - ((_pdata)->hw_if.write_mmd_regs((_pdata), 0, \
50458 + ((_pdata)->hw_if->write_mmd_regs((_pdata), 0, \
50459 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff), (_val)))
50460
50461 #define XMDIO_WRITE_BITS(_pdata, _mmd, _reg, _mask, _val) \
50462 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50463 index a6b9899..2e5e972 100644
50464 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50465 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50466 @@ -190,7 +190,7 @@ static int xgbe_dcb_ieee_setets(struct net_device *netdev,
50467
50468 memcpy(pdata->ets, ets, sizeof(*pdata->ets));
50469
50470 - pdata->hw_if.config_dcb_tc(pdata);
50471 + pdata->hw_if->config_dcb_tc(pdata);
50472
50473 return 0;
50474 }
50475 @@ -230,7 +230,7 @@ static int xgbe_dcb_ieee_setpfc(struct net_device *netdev,
50476
50477 memcpy(pdata->pfc, pfc, sizeof(*pdata->pfc));
50478
50479 - pdata->hw_if.config_dcb_pfc(pdata);
50480 + pdata->hw_if->config_dcb_pfc(pdata);
50481
50482 return 0;
50483 }
50484 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50485 index b3bc87f..5bdfdd3 100644
50486 --- a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50487 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50488 @@ -353,7 +353,7 @@ static int xgbe_map_rx_buffer(struct xgbe_prv_data *pdata,
50489
50490 static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
50491 {
50492 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50493 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50494 struct xgbe_channel *channel;
50495 struct xgbe_ring *ring;
50496 struct xgbe_ring_data *rdata;
50497 @@ -394,7 +394,7 @@ static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
50498
50499 static void xgbe_wrapper_rx_descriptor_init(struct xgbe_prv_data *pdata)
50500 {
50501 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50502 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50503 struct xgbe_channel *channel;
50504 struct xgbe_ring *ring;
50505 struct xgbe_ring_desc *rdesc;
50506 @@ -628,17 +628,12 @@ err_out:
50507 return 0;
50508 }
50509
50510 -void xgbe_init_function_ptrs_desc(struct xgbe_desc_if *desc_if)
50511 -{
50512 - DBGPR("-->xgbe_init_function_ptrs_desc\n");
50513 -
50514 - desc_if->alloc_ring_resources = xgbe_alloc_ring_resources;
50515 - desc_if->free_ring_resources = xgbe_free_ring_resources;
50516 - desc_if->map_tx_skb = xgbe_map_tx_skb;
50517 - desc_if->map_rx_buffer = xgbe_map_rx_buffer;
50518 - desc_if->unmap_rdata = xgbe_unmap_rdata;
50519 - desc_if->wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init;
50520 - desc_if->wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init;
50521 -
50522 - DBGPR("<--xgbe_init_function_ptrs_desc\n");
50523 -}
50524 +const struct xgbe_desc_if default_xgbe_desc_if = {
50525 + .alloc_ring_resources = xgbe_alloc_ring_resources,
50526 + .free_ring_resources = xgbe_free_ring_resources,
50527 + .map_tx_skb = xgbe_map_tx_skb,
50528 + .map_rx_buffer = xgbe_map_rx_buffer,
50529 + .unmap_rdata = xgbe_unmap_rdata,
50530 + .wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init,
50531 + .wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init,
50532 +};
50533 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50534 index a4473d8..039a2ab 100644
50535 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50536 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50537 @@ -2776,7 +2776,7 @@ static void xgbe_powerdown_rx(struct xgbe_prv_data *pdata)
50538
50539 static int xgbe_init(struct xgbe_prv_data *pdata)
50540 {
50541 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50542 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50543 int ret;
50544
50545 DBGPR("-->xgbe_init\n");
50546 @@ -2842,106 +2842,101 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
50547 return 0;
50548 }
50549
50550 -void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *hw_if)
50551 -{
50552 - DBGPR("-->xgbe_init_function_ptrs\n");
50553 -
50554 - hw_if->tx_complete = xgbe_tx_complete;
50555 -
50556 - hw_if->set_mac_address = xgbe_set_mac_address;
50557 - hw_if->config_rx_mode = xgbe_config_rx_mode;
50558 -
50559 - hw_if->enable_rx_csum = xgbe_enable_rx_csum;
50560 - hw_if->disable_rx_csum = xgbe_disable_rx_csum;
50561 -
50562 - hw_if->enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping;
50563 - hw_if->disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping;
50564 - hw_if->enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering;
50565 - hw_if->disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering;
50566 - hw_if->update_vlan_hash_table = xgbe_update_vlan_hash_table;
50567 -
50568 - hw_if->read_mmd_regs = xgbe_read_mmd_regs;
50569 - hw_if->write_mmd_regs = xgbe_write_mmd_regs;
50570 -
50571 - hw_if->set_gmii_speed = xgbe_set_gmii_speed;
50572 - hw_if->set_gmii_2500_speed = xgbe_set_gmii_2500_speed;
50573 - hw_if->set_xgmii_speed = xgbe_set_xgmii_speed;
50574 -
50575 - hw_if->enable_tx = xgbe_enable_tx;
50576 - hw_if->disable_tx = xgbe_disable_tx;
50577 - hw_if->enable_rx = xgbe_enable_rx;
50578 - hw_if->disable_rx = xgbe_disable_rx;
50579 -
50580 - hw_if->powerup_tx = xgbe_powerup_tx;
50581 - hw_if->powerdown_tx = xgbe_powerdown_tx;
50582 - hw_if->powerup_rx = xgbe_powerup_rx;
50583 - hw_if->powerdown_rx = xgbe_powerdown_rx;
50584 -
50585 - hw_if->dev_xmit = xgbe_dev_xmit;
50586 - hw_if->dev_read = xgbe_dev_read;
50587 - hw_if->enable_int = xgbe_enable_int;
50588 - hw_if->disable_int = xgbe_disable_int;
50589 - hw_if->init = xgbe_init;
50590 - hw_if->exit = xgbe_exit;
50591 +const struct xgbe_hw_if default_xgbe_hw_if = {
50592 + .tx_complete = xgbe_tx_complete,
50593 +
50594 + .set_mac_address = xgbe_set_mac_address,
50595 + .config_rx_mode = xgbe_config_rx_mode,
50596 +
50597 + .enable_rx_csum = xgbe_enable_rx_csum,
50598 + .disable_rx_csum = xgbe_disable_rx_csum,
50599 +
50600 + .enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping,
50601 + .disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping,
50602 + .enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering,
50603 + .disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering,
50604 + .update_vlan_hash_table = xgbe_update_vlan_hash_table,
50605 +
50606 + .read_mmd_regs = xgbe_read_mmd_regs,
50607 + .write_mmd_regs = xgbe_write_mmd_regs,
50608 +
50609 + .set_gmii_speed = xgbe_set_gmii_speed,
50610 + .set_gmii_2500_speed = xgbe_set_gmii_2500_speed,
50611 + .set_xgmii_speed = xgbe_set_xgmii_speed,
50612 +
50613 + .enable_tx = xgbe_enable_tx,
50614 + .disable_tx = xgbe_disable_tx,
50615 + .enable_rx = xgbe_enable_rx,
50616 + .disable_rx = xgbe_disable_rx,
50617 +
50618 + .powerup_tx = xgbe_powerup_tx,
50619 + .powerdown_tx = xgbe_powerdown_tx,
50620 + .powerup_rx = xgbe_powerup_rx,
50621 + .powerdown_rx = xgbe_powerdown_rx,
50622 +
50623 + .dev_xmit = xgbe_dev_xmit,
50624 + .dev_read = xgbe_dev_read,
50625 + .enable_int = xgbe_enable_int,
50626 + .disable_int = xgbe_disable_int,
50627 + .init = xgbe_init,
50628 + .exit = xgbe_exit,
50629
50630 /* Descriptor related Sequences have to be initialized here */
50631 - hw_if->tx_desc_init = xgbe_tx_desc_init;
50632 - hw_if->rx_desc_init = xgbe_rx_desc_init;
50633 - hw_if->tx_desc_reset = xgbe_tx_desc_reset;
50634 - hw_if->rx_desc_reset = xgbe_rx_desc_reset;
50635 - hw_if->is_last_desc = xgbe_is_last_desc;
50636 - hw_if->is_context_desc = xgbe_is_context_desc;
50637 - hw_if->tx_start_xmit = xgbe_tx_start_xmit;
50638 + .tx_desc_init = xgbe_tx_desc_init,
50639 + .rx_desc_init = xgbe_rx_desc_init,
50640 + .tx_desc_reset = xgbe_tx_desc_reset,
50641 + .rx_desc_reset = xgbe_rx_desc_reset,
50642 + .is_last_desc = xgbe_is_last_desc,
50643 + .is_context_desc = xgbe_is_context_desc,
50644 + .tx_start_xmit = xgbe_tx_start_xmit,
50645
50646 /* For FLOW ctrl */
50647 - hw_if->config_tx_flow_control = xgbe_config_tx_flow_control;
50648 - hw_if->config_rx_flow_control = xgbe_config_rx_flow_control;
50649 + .config_tx_flow_control = xgbe_config_tx_flow_control,
50650 + .config_rx_flow_control = xgbe_config_rx_flow_control,
50651
50652 /* For RX coalescing */
50653 - hw_if->config_rx_coalesce = xgbe_config_rx_coalesce;
50654 - hw_if->config_tx_coalesce = xgbe_config_tx_coalesce;
50655 - hw_if->usec_to_riwt = xgbe_usec_to_riwt;
50656 - hw_if->riwt_to_usec = xgbe_riwt_to_usec;
50657 + .config_rx_coalesce = xgbe_config_rx_coalesce,
50658 + .config_tx_coalesce = xgbe_config_tx_coalesce,
50659 + .usec_to_riwt = xgbe_usec_to_riwt,
50660 + .riwt_to_usec = xgbe_riwt_to_usec,
50661
50662 /* For RX and TX threshold config */
50663 - hw_if->config_rx_threshold = xgbe_config_rx_threshold;
50664 - hw_if->config_tx_threshold = xgbe_config_tx_threshold;
50665 + .config_rx_threshold = xgbe_config_rx_threshold,
50666 + .config_tx_threshold = xgbe_config_tx_threshold,
50667
50668 /* For RX and TX Store and Forward Mode config */
50669 - hw_if->config_rsf_mode = xgbe_config_rsf_mode;
50670 - hw_if->config_tsf_mode = xgbe_config_tsf_mode;
50671 + .config_rsf_mode = xgbe_config_rsf_mode,
50672 + .config_tsf_mode = xgbe_config_tsf_mode,
50673
50674 /* For TX DMA Operating on Second Frame config */
50675 - hw_if->config_osp_mode = xgbe_config_osp_mode;
50676 + .config_osp_mode = xgbe_config_osp_mode,
50677
50678 /* For RX and TX PBL config */
50679 - hw_if->config_rx_pbl_val = xgbe_config_rx_pbl_val;
50680 - hw_if->get_rx_pbl_val = xgbe_get_rx_pbl_val;
50681 - hw_if->config_tx_pbl_val = xgbe_config_tx_pbl_val;
50682 - hw_if->get_tx_pbl_val = xgbe_get_tx_pbl_val;
50683 - hw_if->config_pblx8 = xgbe_config_pblx8;
50684 + .config_rx_pbl_val = xgbe_config_rx_pbl_val,
50685 + .get_rx_pbl_val = xgbe_get_rx_pbl_val,
50686 + .config_tx_pbl_val = xgbe_config_tx_pbl_val,
50687 + .get_tx_pbl_val = xgbe_get_tx_pbl_val,
50688 + .config_pblx8 = xgbe_config_pblx8,
50689
50690 /* For MMC statistics support */
50691 - hw_if->tx_mmc_int = xgbe_tx_mmc_int;
50692 - hw_if->rx_mmc_int = xgbe_rx_mmc_int;
50693 - hw_if->read_mmc_stats = xgbe_read_mmc_stats;
50694 + .tx_mmc_int = xgbe_tx_mmc_int,
50695 + .rx_mmc_int = xgbe_rx_mmc_int,
50696 + .read_mmc_stats = xgbe_read_mmc_stats,
50697
50698 /* For PTP config */
50699 - hw_if->config_tstamp = xgbe_config_tstamp;
50700 - hw_if->update_tstamp_addend = xgbe_update_tstamp_addend;
50701 - hw_if->set_tstamp_time = xgbe_set_tstamp_time;
50702 - hw_if->get_tstamp_time = xgbe_get_tstamp_time;
50703 - hw_if->get_tx_tstamp = xgbe_get_tx_tstamp;
50704 + .config_tstamp = xgbe_config_tstamp,
50705 + .update_tstamp_addend = xgbe_update_tstamp_addend,
50706 + .set_tstamp_time = xgbe_set_tstamp_time,
50707 + .get_tstamp_time = xgbe_get_tstamp_time,
50708 + .get_tx_tstamp = xgbe_get_tx_tstamp,
50709
50710 /* For Data Center Bridging config */
50711 - hw_if->config_dcb_tc = xgbe_config_dcb_tc;
50712 - hw_if->config_dcb_pfc = xgbe_config_dcb_pfc;
50713 + .config_dcb_tc = xgbe_config_dcb_tc,
50714 + .config_dcb_pfc = xgbe_config_dcb_pfc,
50715
50716 /* For Receive Side Scaling */
50717 - hw_if->enable_rss = xgbe_enable_rss;
50718 - hw_if->disable_rss = xgbe_disable_rss;
50719 - hw_if->set_rss_hash_key = xgbe_set_rss_hash_key;
50720 - hw_if->set_rss_lookup_table = xgbe_set_rss_lookup_table;
50721 -
50722 - DBGPR("<--xgbe_init_function_ptrs\n");
50723 -}
50724 + .enable_rss = xgbe_enable_rss,
50725 + .disable_rss = xgbe_disable_rss,
50726 + .set_rss_hash_key = xgbe_set_rss_hash_key,
50727 + .set_rss_lookup_table = xgbe_set_rss_lookup_table,
50728 +};
50729 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50730 index aae9d5e..29ce58d 100644
50731 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50732 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50733 @@ -245,7 +245,7 @@ static int xgbe_maybe_stop_tx_queue(struct xgbe_channel *channel,
50734 * support, tell it now
50735 */
50736 if (ring->tx.xmit_more)
50737 - pdata->hw_if.tx_start_xmit(channel, ring);
50738 + pdata->hw_if->tx_start_xmit(channel, ring);
50739
50740 return NETDEV_TX_BUSY;
50741 }
50742 @@ -273,7 +273,7 @@ static int xgbe_calc_rx_buf_size(struct net_device *netdev, unsigned int mtu)
50743
50744 static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
50745 {
50746 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50747 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50748 struct xgbe_channel *channel;
50749 enum xgbe_int int_id;
50750 unsigned int i;
50751 @@ -295,7 +295,7 @@ static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
50752
50753 static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
50754 {
50755 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50756 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50757 struct xgbe_channel *channel;
50758 enum xgbe_int int_id;
50759 unsigned int i;
50760 @@ -318,7 +318,7 @@ static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
50761 static irqreturn_t xgbe_isr(int irq, void *data)
50762 {
50763 struct xgbe_prv_data *pdata = data;
50764 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50765 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50766 struct xgbe_channel *channel;
50767 unsigned int dma_isr, dma_ch_isr;
50768 unsigned int mac_isr, mac_tssr;
50769 @@ -443,7 +443,7 @@ static void xgbe_service(struct work_struct *work)
50770 struct xgbe_prv_data,
50771 service_work);
50772
50773 - pdata->phy_if.phy_status(pdata);
50774 + pdata->phy_if->phy_status(pdata);
50775 }
50776
50777 static void xgbe_service_timer(unsigned long data)
50778 @@ -702,7 +702,7 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
50779
50780 void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
50781 {
50782 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50783 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50784
50785 DBGPR("-->xgbe_init_tx_coalesce\n");
50786
50787 @@ -716,7 +716,7 @@ void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
50788
50789 void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
50790 {
50791 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50792 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50793
50794 DBGPR("-->xgbe_init_rx_coalesce\n");
50795
50796 @@ -731,7 +731,7 @@ void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
50797
50798 static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
50799 {
50800 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50801 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50802 struct xgbe_channel *channel;
50803 struct xgbe_ring *ring;
50804 struct xgbe_ring_data *rdata;
50805 @@ -756,7 +756,7 @@ static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
50806
50807 static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
50808 {
50809 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50810 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50811 struct xgbe_channel *channel;
50812 struct xgbe_ring *ring;
50813 struct xgbe_ring_data *rdata;
50814 @@ -784,13 +784,13 @@ static int xgbe_phy_init(struct xgbe_prv_data *pdata)
50815 pdata->phy_link = -1;
50816 pdata->phy_speed = SPEED_UNKNOWN;
50817
50818 - return pdata->phy_if.phy_reset(pdata);
50819 + return pdata->phy_if->phy_reset(pdata);
50820 }
50821
50822 int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
50823 {
50824 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50825 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50826 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50827 unsigned long flags;
50828
50829 DBGPR("-->xgbe_powerdown\n");
50830 @@ -829,7 +829,7 @@ int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
50831 int xgbe_powerup(struct net_device *netdev, unsigned int caller)
50832 {
50833 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50834 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50835 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50836 unsigned long flags;
50837
50838 DBGPR("-->xgbe_powerup\n");
50839 @@ -866,8 +866,8 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller)
50840
50841 static int xgbe_start(struct xgbe_prv_data *pdata)
50842 {
50843 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50844 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
50845 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50846 + struct xgbe_phy_if *phy_if = pdata->phy_if;
50847 struct net_device *netdev = pdata->netdev;
50848 int ret;
50849
50850 @@ -910,8 +910,8 @@ err_phy:
50851
50852 static void xgbe_stop(struct xgbe_prv_data *pdata)
50853 {
50854 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50855 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
50856 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50857 + struct xgbe_phy_if *phy_if = pdata->phy_if;
50858 struct xgbe_channel *channel;
50859 struct net_device *netdev = pdata->netdev;
50860 struct netdev_queue *txq;
50861 @@ -1139,7 +1139,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata,
50862 return -ERANGE;
50863 }
50864
50865 - pdata->hw_if.config_tstamp(pdata, mac_tscr);
50866 + pdata->hw_if->config_tstamp(pdata, mac_tscr);
50867
50868 memcpy(&pdata->tstamp_config, &config, sizeof(config));
50869
50870 @@ -1288,7 +1288,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata,
50871 static int xgbe_open(struct net_device *netdev)
50872 {
50873 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50874 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50875 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50876 int ret;
50877
50878 DBGPR("-->xgbe_open\n");
50879 @@ -1360,7 +1360,7 @@ err_sysclk:
50880 static int xgbe_close(struct net_device *netdev)
50881 {
50882 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50883 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50884 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50885
50886 DBGPR("-->xgbe_close\n");
50887
50888 @@ -1387,8 +1387,8 @@ static int xgbe_close(struct net_device *netdev)
50889 static int xgbe_xmit(struct sk_buff *skb, struct net_device *netdev)
50890 {
50891 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50892 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50893 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50894 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50895 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50896 struct xgbe_channel *channel;
50897 struct xgbe_ring *ring;
50898 struct xgbe_packet_data *packet;
50899 @@ -1457,7 +1457,7 @@ tx_netdev_return:
50900 static void xgbe_set_rx_mode(struct net_device *netdev)
50901 {
50902 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50903 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50904 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50905
50906 DBGPR("-->xgbe_set_rx_mode\n");
50907
50908 @@ -1469,7 +1469,7 @@ static void xgbe_set_rx_mode(struct net_device *netdev)
50909 static int xgbe_set_mac_address(struct net_device *netdev, void *addr)
50910 {
50911 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50912 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50913 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50914 struct sockaddr *saddr = addr;
50915
50916 DBGPR("-->xgbe_set_mac_address\n");
50917 @@ -1544,7 +1544,7 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
50918
50919 DBGPR("-->%s\n", __func__);
50920
50921 - pdata->hw_if.read_mmc_stats(pdata);
50922 + pdata->hw_if->read_mmc_stats(pdata);
50923
50924 s->rx_packets = pstats->rxframecount_gb;
50925 s->rx_bytes = pstats->rxoctetcount_gb;
50926 @@ -1571,7 +1571,7 @@ static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
50927 u16 vid)
50928 {
50929 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50930 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50931 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50932
50933 DBGPR("-->%s\n", __func__);
50934
50935 @@ -1587,7 +1587,7 @@ static int xgbe_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto,
50936 u16 vid)
50937 {
50938 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50939 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50940 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50941
50942 DBGPR("-->%s\n", __func__);
50943
50944 @@ -1654,7 +1654,7 @@ static int xgbe_set_features(struct net_device *netdev,
50945 netdev_features_t features)
50946 {
50947 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50948 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50949 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50950 netdev_features_t rxhash, rxcsum, rxvlan, rxvlan_filter;
50951 int ret = 0;
50952
50953 @@ -1720,8 +1720,8 @@ struct net_device_ops *xgbe_get_netdev_ops(void)
50954 static void xgbe_rx_refresh(struct xgbe_channel *channel)
50955 {
50956 struct xgbe_prv_data *pdata = channel->pdata;
50957 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50958 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50959 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50960 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50961 struct xgbe_ring *ring = channel->rx_ring;
50962 struct xgbe_ring_data *rdata;
50963
50964 @@ -1798,8 +1798,8 @@ static struct sk_buff *xgbe_create_skb(struct xgbe_prv_data *pdata,
50965 static int xgbe_tx_poll(struct xgbe_channel *channel)
50966 {
50967 struct xgbe_prv_data *pdata = channel->pdata;
50968 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50969 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50970 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50971 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50972 struct xgbe_ring *ring = channel->tx_ring;
50973 struct xgbe_ring_data *rdata;
50974 struct xgbe_ring_desc *rdesc;
50975 @@ -1863,7 +1863,7 @@ static int xgbe_tx_poll(struct xgbe_channel *channel)
50976 static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
50977 {
50978 struct xgbe_prv_data *pdata = channel->pdata;
50979 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50980 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50981 struct xgbe_ring *ring = channel->rx_ring;
50982 struct xgbe_ring_data *rdata;
50983 struct xgbe_packet_data *packet;
50984 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50985 index 59e090e..90bc0b4 100644
50986 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50987 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50988 @@ -211,7 +211,7 @@ static void xgbe_get_ethtool_stats(struct net_device *netdev,
50989
50990 DBGPR("-->%s\n", __func__);
50991
50992 - pdata->hw_if.read_mmc_stats(pdata);
50993 + pdata->hw_if->read_mmc_stats(pdata);
50994 for (i = 0; i < XGBE_STATS_COUNT; i++) {
50995 stat = (u8 *)pdata + xgbe_gstring_stats[i].stat_offset;
50996 *data++ = *(u64 *)stat;
50997 @@ -284,7 +284,7 @@ static int xgbe_set_pauseparam(struct net_device *netdev,
50998 pdata->phy.advertising ^= ADVERTISED_Asym_Pause;
50999
51000 if (netif_running(netdev))
51001 - ret = pdata->phy_if.phy_config_aneg(pdata);
51002 + ret = pdata->phy_if->phy_config_aneg(pdata);
51003
51004 DBGPR("<--xgbe_set_pauseparam\n");
51005
51006 @@ -364,7 +364,7 @@ static int xgbe_set_settings(struct net_device *netdev,
51007 pdata->phy.advertising &= ~ADVERTISED_Autoneg;
51008
51009 if (netif_running(netdev))
51010 - ret = pdata->phy_if.phy_config_aneg(pdata);
51011 + ret = pdata->phy_if->phy_config_aneg(pdata);
51012
51013 DBGPR("<--xgbe_set_settings\n");
51014
51015 @@ -411,7 +411,7 @@ static int xgbe_set_coalesce(struct net_device *netdev,
51016 struct ethtool_coalesce *ec)
51017 {
51018 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51019 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51020 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51021 unsigned int rx_frames, rx_riwt, rx_usecs;
51022 unsigned int tx_frames;
51023
51024 @@ -536,7 +536,7 @@ static int xgbe_set_rxfh(struct net_device *netdev, const u32 *indir,
51025 const u8 *key, const u8 hfunc)
51026 {
51027 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51028 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51029 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51030 unsigned int ret;
51031
51032 if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP)
51033 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
51034 index e83bd76..f2d5d56 100644
51035 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
51036 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
51037 @@ -202,13 +202,6 @@ static void xgbe_default_config(struct xgbe_prv_data *pdata)
51038 DBGPR("<--xgbe_default_config\n");
51039 }
51040
51041 -static void xgbe_init_all_fptrs(struct xgbe_prv_data *pdata)
51042 -{
51043 - xgbe_init_function_ptrs_dev(&pdata->hw_if);
51044 - xgbe_init_function_ptrs_phy(&pdata->phy_if);
51045 - xgbe_init_function_ptrs_desc(&pdata->desc_if);
51046 -}
51047 -
51048 #ifdef CONFIG_ACPI
51049 static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
51050 {
51051 @@ -641,10 +634,12 @@ static int xgbe_probe(struct platform_device *pdev)
51052 memcpy(netdev->dev_addr, pdata->mac_addr, netdev->addr_len);
51053
51054 /* Set all the function pointers */
51055 - xgbe_init_all_fptrs(pdata);
51056 + pdata->hw_if = &default_xgbe_hw_if;
51057 + pdata->phy_if = &default_xgbe_phy_if;
51058 + pdata->desc_if = &default_xgbe_desc_if;
51059
51060 /* Issue software reset to device */
51061 - pdata->hw_if.exit(pdata);
51062 + pdata->hw_if->exit(pdata);
51063
51064 /* Populate the hardware features */
51065 xgbe_get_all_hw_features(pdata);
51066 @@ -698,7 +693,7 @@ static int xgbe_probe(struct platform_device *pdev)
51067 XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);
51068
51069 /* Call MDIO/PHY initialization routine */
51070 - pdata->phy_if.phy_init(pdata);
51071 + pdata->phy_if->phy_init(pdata);
51072
51073 /* Set device operations */
51074 netdev->netdev_ops = xgbe_get_netdev_ops();
51075 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
51076 index 9088c3a..2ffe7c4 100644
51077 --- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
51078 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
51079 @@ -202,7 +202,7 @@ static void xgbe_xgmii_mode(struct xgbe_prv_data *pdata)
51080 xgbe_an_enable_kr_training(pdata);
51081
51082 /* Set MAC to 10G speed */
51083 - pdata->hw_if.set_xgmii_speed(pdata);
51084 + pdata->hw_if->set_xgmii_speed(pdata);
51085
51086 /* Set PCS to KR/10G speed */
51087 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
51088 @@ -250,7 +250,7 @@ static void xgbe_gmii_2500_mode(struct xgbe_prv_data *pdata)
51089 xgbe_an_disable_kr_training(pdata);
51090
51091 /* Set MAC to 2.5G speed */
51092 - pdata->hw_if.set_gmii_2500_speed(pdata);
51093 + pdata->hw_if->set_gmii_2500_speed(pdata);
51094
51095 /* Set PCS to KX/1G speed */
51096 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
51097 @@ -298,7 +298,7 @@ static void xgbe_gmii_mode(struct xgbe_prv_data *pdata)
51098 xgbe_an_disable_kr_training(pdata);
51099
51100 /* Set MAC to 1G speed */
51101 - pdata->hw_if.set_gmii_speed(pdata);
51102 + pdata->hw_if->set_gmii_speed(pdata);
51103
51104 /* Set PCS to KX/1G speed */
51105 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
51106 @@ -872,13 +872,13 @@ static void xgbe_phy_adjust_link(struct xgbe_prv_data *pdata)
51107
51108 if (pdata->tx_pause != pdata->phy.tx_pause) {
51109 new_state = 1;
51110 - pdata->hw_if.config_tx_flow_control(pdata);
51111 + pdata->hw_if->config_tx_flow_control(pdata);
51112 pdata->tx_pause = pdata->phy.tx_pause;
51113 }
51114
51115 if (pdata->rx_pause != pdata->phy.rx_pause) {
51116 new_state = 1;
51117 - pdata->hw_if.config_rx_flow_control(pdata);
51118 + pdata->hw_if->config_rx_flow_control(pdata);
51119 pdata->rx_pause = pdata->phy.rx_pause;
51120 }
51121
51122 @@ -1351,14 +1351,13 @@ static void xgbe_phy_init(struct xgbe_prv_data *pdata)
51123 xgbe_dump_phy_registers(pdata);
51124 }
51125
51126 -void xgbe_init_function_ptrs_phy(struct xgbe_phy_if *phy_if)
51127 -{
51128 - phy_if->phy_init = xgbe_phy_init;
51129 +const struct xgbe_phy_if default_xgbe_phy_if = {
51130 + .phy_init = xgbe_phy_init,
51131
51132 - phy_if->phy_reset = xgbe_phy_reset;
51133 - phy_if->phy_start = xgbe_phy_start;
51134 - phy_if->phy_stop = xgbe_phy_stop;
51135 + .phy_reset = xgbe_phy_reset,
51136 + .phy_start = xgbe_phy_start,
51137 + .phy_stop = xgbe_phy_stop,
51138
51139 - phy_if->phy_status = xgbe_phy_status;
51140 - phy_if->phy_config_aneg = xgbe_phy_config_aneg;
51141 -}
51142 + .phy_status = xgbe_phy_status,
51143 + .phy_config_aneg = xgbe_phy_config_aneg,
51144 +};
51145 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
51146 index b03e4f5..78e4cc4 100644
51147 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
51148 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
51149 @@ -129,7 +129,7 @@ static cycle_t xgbe_cc_read(const struct cyclecounter *cc)
51150 tstamp_cc);
51151 u64 nsec;
51152
51153 - nsec = pdata->hw_if.get_tstamp_time(pdata);
51154 + nsec = pdata->hw_if->get_tstamp_time(pdata);
51155
51156 return nsec;
51157 }
51158 @@ -158,7 +158,7 @@ static int xgbe_adjfreq(struct ptp_clock_info *info, s32 delta)
51159
51160 spin_lock_irqsave(&pdata->tstamp_lock, flags);
51161
51162 - pdata->hw_if.update_tstamp_addend(pdata, addend);
51163 + pdata->hw_if->update_tstamp_addend(pdata, addend);
51164
51165 spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
51166
51167 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
51168 index 717ce21..aacd1f3 100644
51169 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h
51170 +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
51171 @@ -801,9 +801,9 @@ struct xgbe_prv_data {
51172 int dev_irq;
51173 unsigned int per_channel_irq;
51174
51175 - struct xgbe_hw_if hw_if;
51176 - struct xgbe_phy_if phy_if;
51177 - struct xgbe_desc_if desc_if;
51178 + struct xgbe_hw_if *hw_if;
51179 + struct xgbe_phy_if *phy_if;
51180 + struct xgbe_desc_if *desc_if;
51181
51182 /* AXI DMA settings */
51183 unsigned int coherent;
51184 @@ -964,6 +964,10 @@ struct xgbe_prv_data {
51185 #endif
51186 };
51187
51188 +extern const struct xgbe_hw_if default_xgbe_hw_if;
51189 +extern const struct xgbe_phy_if default_xgbe_phy_if;
51190 +extern const struct xgbe_desc_if default_xgbe_desc_if;
51191 +
51192 /* Function prototypes*/
51193
51194 void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *);
51195 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
51196 index 03b7404..01ff3b3 100644
51197 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
51198 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
51199 @@ -1082,7 +1082,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
51200 static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
51201 {
51202 /* RX_MODE controlling object */
51203 - bnx2x_init_rx_mode_obj(bp, &bp->rx_mode_obj);
51204 + bnx2x_init_rx_mode_obj(bp);
51205
51206 /* multicast configuration controlling object */
51207 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
51208 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
51209 index 4ad415a..8e0a040 100644
51210 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
51211 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
51212 @@ -2329,15 +2329,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
51213 return rc;
51214 }
51215
51216 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
51217 - struct bnx2x_rx_mode_obj *o)
51218 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp)
51219 {
51220 if (CHIP_IS_E1x(bp)) {
51221 - o->wait_comp = bnx2x_empty_rx_mode_wait;
51222 - o->config_rx_mode = bnx2x_set_rx_mode_e1x;
51223 + bp->rx_mode_obj.wait_comp = bnx2x_empty_rx_mode_wait;
51224 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e1x;
51225 } else {
51226 - o->wait_comp = bnx2x_wait_rx_mode_comp_e2;
51227 - o->config_rx_mode = bnx2x_set_rx_mode_e2;
51228 + bp->rx_mode_obj.wait_comp = bnx2x_wait_rx_mode_comp_e2;
51229 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e2;
51230 }
51231 }
51232
51233 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
51234 index 86baecb..ff3bb46 100644
51235 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
51236 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
51237 @@ -1411,8 +1411,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
51238
51239 /********************* RX MODE ****************/
51240
51241 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
51242 - struct bnx2x_rx_mode_obj *o);
51243 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp);
51244
51245 /**
51246 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
51247 diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
51248 index 31c9f82..e65e986 100644
51249 --- a/drivers/net/ethernet/broadcom/tg3.h
51250 +++ b/drivers/net/ethernet/broadcom/tg3.h
51251 @@ -150,6 +150,7 @@
51252 #define CHIPREV_ID_5750_A0 0x4000
51253 #define CHIPREV_ID_5750_A1 0x4001
51254 #define CHIPREV_ID_5750_A3 0x4003
51255 +#define CHIPREV_ID_5750_C1 0x4201
51256 #define CHIPREV_ID_5750_C2 0x4202
51257 #define CHIPREV_ID_5752_A0_HW 0x5000
51258 #define CHIPREV_ID_5752_A0 0x6000
51259 diff --git a/drivers/net/ethernet/brocade/bna/bna_enet.c b/drivers/net/ethernet/brocade/bna/bna_enet.c
51260 index 4e5c387..bba8173 100644
51261 --- a/drivers/net/ethernet/brocade/bna/bna_enet.c
51262 +++ b/drivers/net/ethernet/brocade/bna/bna_enet.c
51263 @@ -1676,10 +1676,10 @@ bna_cb_ioceth_reset(void *arg)
51264 }
51265
51266 static struct bfa_ioc_cbfn bna_ioceth_cbfn = {
51267 - bna_cb_ioceth_enable,
51268 - bna_cb_ioceth_disable,
51269 - bna_cb_ioceth_hbfail,
51270 - bna_cb_ioceth_reset
51271 + .enable_cbfn = bna_cb_ioceth_enable,
51272 + .disable_cbfn = bna_cb_ioceth_disable,
51273 + .hbfail_cbfn = bna_cb_ioceth_hbfail,
51274 + .reset_cbfn = bna_cb_ioceth_reset
51275 };
51276
51277 static void bna_attr_init(struct bna_ioceth *ioceth)
51278 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
51279 index 29f3308..b594c38 100644
51280 --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
51281 +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
51282 @@ -265,9 +265,9 @@ static void octnet_mdio_resp_callback(struct octeon_device *oct,
51283 if (status) {
51284 dev_err(&oct->pci_dev->dev, "MIDO instruction failed. Status: %llx\n",
51285 CVM_CAST64(status));
51286 - ACCESS_ONCE(mdio_cmd_ctx->cond) = -1;
51287 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = -1;
51288 } else {
51289 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 1;
51290 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 1;
51291 }
51292 wake_up_interruptible(&mdio_cmd_ctx->wc);
51293 }
51294 @@ -298,7 +298,7 @@ octnet_mdio45_access(struct lio *lio, int op, int loc, int *value)
51295 mdio_cmd_rsp = (struct oct_mdio_cmd_resp *)sc->virtrptr;
51296 mdio_cmd = (struct oct_mdio_cmd *)sc->virtdptr;
51297
51298 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 0;
51299 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 0;
51300 mdio_cmd_ctx->octeon_id = lio_get_device_id(oct_dev);
51301 mdio_cmd->op = op;
51302 mdio_cmd->mdio_addr = loc;
51303 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
51304 index 0660dee..e07895e 100644
51305 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
51306 +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
51307 @@ -1727,7 +1727,7 @@ static void if_cfg_callback(struct octeon_device *oct,
51308 if (resp->status)
51309 dev_err(&oct->pci_dev->dev, "nic if cfg instruction failed. Status: %llx\n",
51310 CVM_CAST64(resp->status));
51311 - ACCESS_ONCE(ctx->cond) = 1;
51312 + ACCESS_ONCE_RW(ctx->cond) = 1;
51313
51314 /* This barrier is required to be sure that the response has been
51315 * written fully before waking up the handler
51316 @@ -3177,7 +3177,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
51317 dev_dbg(&octeon_dev->pci_dev->dev,
51318 "requesting config for interface %d, iqs %d, oqs %d\n",
51319 i, num_iqueues, num_oqueues);
51320 - ACCESS_ONCE(ctx->cond) = 0;
51321 + ACCESS_ONCE_RW(ctx->cond) = 0;
51322 ctx->octeon_id = lio_get_device_id(octeon_dev);
51323 init_waitqueue_head(&ctx->wc);
51324
51325 @@ -3240,8 +3240,11 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
51326 props = &octeon_dev->props[i];
51327 props->netdev = netdev;
51328
51329 - if (num_iqueues > 1)
51330 - lionetdevops.ndo_select_queue = select_q;
51331 + if (num_iqueues > 1) {
51332 + pax_open_kernel();
51333 + *(void **)&lionetdevops.ndo_select_queue = select_q;
51334 + pax_close_kernel();
51335 + }
51336
51337 /* Associate the routines that will handle different
51338 * netdev tasks.
51339 diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.h b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51340 index 8cffcdf..aadf043 100644
51341 --- a/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51342 +++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51343 @@ -87,7 +87,7 @@ typedef void (*arp_failure_handler_func)(struct t3cdev * dev,
51344 */
51345 struct l2t_skb_cb {
51346 arp_failure_handler_func arp_failure_handler;
51347 -};
51348 +} __no_const;
51349
51350 #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
51351
51352 diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
51353 index 8966f31..e15a101 100644
51354 --- a/drivers/net/ethernet/dec/tulip/de4x5.c
51355 +++ b/drivers/net/ethernet/dec/tulip/de4x5.c
51356 @@ -5373,7 +5373,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
51357 for (i=0; i<ETH_ALEN; i++) {
51358 tmp.addr[i] = dev->dev_addr[i];
51359 }
51360 - if (copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
51361 + if (ioc->len > sizeof tmp.addr || copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
51362 break;
51363
51364 case DE4X5_SET_HWADDR: /* Set the hardware address */
51365 @@ -5413,7 +5413,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
51366 spin_lock_irqsave(&lp->lock, flags);
51367 memcpy(&statbuf, &lp->pktStats, ioc->len);
51368 spin_unlock_irqrestore(&lp->lock, flags);
51369 - if (copy_to_user(ioc->data, &statbuf, ioc->len))
51370 + if (ioc->len > sizeof statbuf || copy_to_user(ioc->data, &statbuf, ioc->len))
51371 return -EFAULT;
51372 break;
51373 }
51374 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
51375 index 6ca693b..fa18c3f 100644
51376 --- a/drivers/net/ethernet/emulex/benet/be_main.c
51377 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
51378 @@ -551,7 +551,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
51379
51380 if (wrapped)
51381 newacc += 65536;
51382 - ACCESS_ONCE(*acc) = newacc;
51383 + ACCESS_ONCE_RW(*acc) = newacc;
51384 }
51385
51386 static void populate_erx_stats(struct be_adapter *adapter,
51387 diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
51388 index 6d0c5d5..55be363 100644
51389 --- a/drivers/net/ethernet/faraday/ftgmac100.c
51390 +++ b/drivers/net/ethernet/faraday/ftgmac100.c
51391 @@ -30,6 +30,8 @@
51392 #include <linux/netdevice.h>
51393 #include <linux/phy.h>
51394 #include <linux/platform_device.h>
51395 +#include <linux/interrupt.h>
51396 +#include <linux/irqreturn.h>
51397 #include <net/ip.h>
51398
51399 #include "ftgmac100.h"
51400 diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
51401 index dce5f7b..2433466 100644
51402 --- a/drivers/net/ethernet/faraday/ftmac100.c
51403 +++ b/drivers/net/ethernet/faraday/ftmac100.c
51404 @@ -31,6 +31,8 @@
51405 #include <linux/module.h>
51406 #include <linux/netdevice.h>
51407 #include <linux/platform_device.h>
51408 +#include <linux/interrupt.h>
51409 +#include <linux/irqreturn.h>
51410
51411 #include "ftmac100.h"
51412
51413 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51414 index a92b772..250fe69 100644
51415 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51416 +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51417 @@ -419,7 +419,7 @@ void i40e_ptp_set_increment(struct i40e_pf *pf)
51418 wr32(hw, I40E_PRTTSYN_INC_H, incval >> 32);
51419
51420 /* Update the base adjustement value. */
51421 - ACCESS_ONCE(pf->ptp_base_adj) = incval;
51422 + ACCESS_ONCE_RW(pf->ptp_base_adj) = incval;
51423 smp_mb(); /* Force the above update. */
51424 }
51425
51426 diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51427 index e5ba040..d47531c 100644
51428 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51429 +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51430 @@ -782,7 +782,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
51431 }
51432
51433 /* update the base incval used to calculate frequency adjustment */
51434 - ACCESS_ONCE(adapter->base_incval) = incval;
51435 + ACCESS_ONCE_RW(adapter->base_incval) = incval;
51436 smp_mb();
51437
51438 /* need lock to prevent incorrect read while modifying cyclecounter */
51439 diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c
51440 index 0a32020..2177e56 100644
51441 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c
51442 +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c
51443 @@ -2398,7 +2398,7 @@ int mlx4_multi_func_init(struct mlx4_dev *dev)
51444 }
51445 }
51446
51447 - memset(&priv->mfunc.master.cmd_eqe, 0, dev->caps.eqe_size);
51448 + memset(&priv->mfunc.master.cmd_eqe, 0, sizeof(struct mlx4_eqe));
51449 priv->mfunc.master.cmd_eqe.type = MLX4_EVENT_TYPE_CMD;
51450 INIT_WORK(&priv->mfunc.master.comm_work,
51451 mlx4_master_comm_channel);
51452 diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51453 index c10d98f..72914c6 100644
51454 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51455 +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51456 @@ -475,8 +475,8 @@ static bool mlx4_en_process_tx_cq(struct net_device *dev,
51457 wmb();
51458
51459 /* we want to dirty this cache line once */
51460 - ACCESS_ONCE(ring->last_nr_txbb) = last_nr_txbb;
51461 - ACCESS_ONCE(ring->cons) = ring_cons + txbbs_skipped;
51462 + ACCESS_ONCE_RW(ring->last_nr_txbb) = last_nr_txbb;
51463 + ACCESS_ONCE_RW(ring->cons) = ring_cons + txbbs_skipped;
51464
51465 netdev_tx_completed_queue(ring->tx_queue, packets, bytes);
51466
51467 diff --git a/drivers/net/ethernet/mellanox/mlx4/eq.c b/drivers/net/ethernet/mellanox/mlx4/eq.c
51468 index 8e81e53..ad8f95d 100644
51469 --- a/drivers/net/ethernet/mellanox/mlx4/eq.c
51470 +++ b/drivers/net/ethernet/mellanox/mlx4/eq.c
51471 @@ -196,7 +196,7 @@ static void slave_event(struct mlx4_dev *dev, u8 slave, struct mlx4_eqe *eqe)
51472 return;
51473 }
51474
51475 - memcpy(s_eqe, eqe, dev->caps.eqe_size - 1);
51476 + memcpy(s_eqe, eqe, sizeof(struct mlx4_eqe) - 1);
51477 s_eqe->slave_id = slave;
51478 /* ensure all information is written before setting the ownersip bit */
51479 dma_wmb();
51480 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51481 index 40206da..9d94643 100644
51482 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51483 +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51484 @@ -1734,7 +1734,9 @@ static void mlx5e_build_netdev(struct net_device *netdev)
51485 SET_NETDEV_DEV(netdev, &mdev->pdev->dev);
51486
51487 if (priv->num_tc > 1) {
51488 - mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
51489 + pax_open_kernel();
51490 + *(void **)&mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
51491 + pax_close_kernel();
51492 }
51493
51494 netdev->netdev_ops = &mlx5e_netdev_ops;
51495 diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c
51496 index 6223930..975033d 100644
51497 --- a/drivers/net/ethernet/neterion/vxge/vxge-config.c
51498 +++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c
51499 @@ -3457,7 +3457,10 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
51500 struct __vxge_hw_fifo *fifo;
51501 struct vxge_hw_fifo_config *config;
51502 u32 txdl_size, txdl_per_memblock;
51503 - struct vxge_hw_mempool_cbs fifo_mp_callback;
51504 + static struct vxge_hw_mempool_cbs fifo_mp_callback = {
51505 + .item_func_alloc = __vxge_hw_fifo_mempool_item_alloc,
51506 + };
51507 +
51508 struct __vxge_hw_virtualpath *vpath;
51509
51510 if ((vp == NULL) || (attr == NULL)) {
51511 @@ -3540,8 +3543,6 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
51512 goto exit;
51513 }
51514
51515 - fifo_mp_callback.item_func_alloc = __vxge_hw_fifo_mempool_item_alloc;
51516 -
51517 fifo->mempool =
51518 __vxge_hw_mempool_create(vpath->hldev,
51519 fifo->config->memblock_size,
51520 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51521 index 753ea8b..674c39a 100644
51522 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51523 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51524 @@ -2324,7 +2324,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
51525 max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
51526 } else if (ret == QLC_83XX_DEFAULT_OPMODE) {
51527 ahw->nic_mode = QLCNIC_DEFAULT_MODE;
51528 - adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
51529 + pax_open_kernel();
51530 + *(void **)&adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
51531 + pax_close_kernel();
51532 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51533 max_sds_rings = QLCNIC_MAX_SDS_RINGS;
51534 max_tx_rings = QLCNIC_MAX_TX_RINGS;
51535 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51536 index be7d7a6..a8983f8 100644
51537 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51538 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51539 @@ -207,17 +207,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
51540 case QLCNIC_NON_PRIV_FUNC:
51541 ahw->op_mode = QLCNIC_NON_PRIV_FUNC;
51542 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51543 - nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
51544 + pax_open_kernel();
51545 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
51546 + pax_close_kernel();
51547 break;
51548 case QLCNIC_PRIV_FUNC:
51549 ahw->op_mode = QLCNIC_PRIV_FUNC;
51550 ahw->idc.state_entry = qlcnic_83xx_idc_vnic_pf_entry;
51551 - nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
51552 + pax_open_kernel();
51553 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
51554 + pax_close_kernel();
51555 break;
51556 case QLCNIC_MGMT_FUNC:
51557 ahw->op_mode = QLCNIC_MGMT_FUNC;
51558 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51559 - nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
51560 + pax_open_kernel();
51561 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
51562 + pax_close_kernel();
51563 break;
51564 default:
51565 dev_err(&adapter->pdev->dev, "Invalid Virtual NIC opmode\n");
51566 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51567 index 332bb8a..e6adcd1 100644
51568 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51569 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51570 @@ -1285,7 +1285,7 @@ flash_temp:
51571 int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
51572 {
51573 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump;
51574 - static const struct qlcnic_dump_operations *fw_dump_ops;
51575 + const struct qlcnic_dump_operations *fw_dump_ops;
51576 struct qlcnic_83xx_dump_template_hdr *hdr_83xx;
51577 u32 entry_offset, dump, no_entries, buf_offset = 0;
51578 int i, k, ops_cnt, ops_index, dump_size = 0;
51579 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
51580 index f790f61..cb663ef8 100644
51581 --- a/drivers/net/ethernet/realtek/r8169.c
51582 +++ b/drivers/net/ethernet/realtek/r8169.c
51583 @@ -788,22 +788,22 @@ struct rtl8169_private {
51584 struct mdio_ops {
51585 void (*write)(struct rtl8169_private *, int, int);
51586 int (*read)(struct rtl8169_private *, int);
51587 - } mdio_ops;
51588 + } __no_const mdio_ops;
51589
51590 struct pll_power_ops {
51591 void (*down)(struct rtl8169_private *);
51592 void (*up)(struct rtl8169_private *);
51593 - } pll_power_ops;
51594 + } __no_const pll_power_ops;
51595
51596 struct jumbo_ops {
51597 void (*enable)(struct rtl8169_private *);
51598 void (*disable)(struct rtl8169_private *);
51599 - } jumbo_ops;
51600 + } __no_const jumbo_ops;
51601
51602 struct csi_ops {
51603 void (*write)(struct rtl8169_private *, int, int);
51604 u32 (*read)(struct rtl8169_private *, int);
51605 - } csi_ops;
51606 + } __no_const csi_ops;
51607
51608 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
51609 int (*get_settings)(struct net_device *, struct ethtool_cmd *);
51610 @@ -7361,6 +7361,9 @@ process_pkt:
51611
51612 rtl8169_rx_vlan_tag(desc, skb);
51613
51614 + if (skb->pkt_type == PACKET_MULTICAST)
51615 + dev->stats.multicast++;
51616 +
51617 napi_gro_receive(&tp->napi, skb);
51618
51619 u64_stats_update_begin(&tp->rx_stats.syncp);
51620 diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
51621 index ad62615..a4c124d 100644
51622 --- a/drivers/net/ethernet/sfc/ptp.c
51623 +++ b/drivers/net/ethernet/sfc/ptp.c
51624 @@ -832,7 +832,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
51625 ptp->start.dma_addr);
51626
51627 /* Clear flag that signals MC ready */
51628 - ACCESS_ONCE(*start) = 0;
51629 + ACCESS_ONCE_RW(*start) = 0;
51630 rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
51631 MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
51632 EFX_BUG_ON_PARANOID(rc);
51633 diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51634 index 3f20bb1..59add41 100644
51635 --- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51636 +++ b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51637 @@ -140,8 +140,8 @@ void dwmac_mmc_ctrl(void __iomem *ioaddr, unsigned int mode)
51638
51639 writel(value, ioaddr + MMC_CNTRL);
51640
51641 - pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
51642 - MMC_CNTRL, value);
51643 +// pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
51644 +// MMC_CNTRL, value);
51645 }
51646
51647 /* To mask all all interrupts.*/
51648 diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
51649 index a832637..092da0a 100644
51650 --- a/drivers/net/ethernet/via/via-rhine.c
51651 +++ b/drivers/net/ethernet/via/via-rhine.c
51652 @@ -2599,7 +2599,7 @@ static struct platform_driver rhine_driver_platform = {
51653 }
51654 };
51655
51656 -static struct dmi_system_id rhine_dmi_table[] __initdata = {
51657 +static const struct dmi_system_id rhine_dmi_table[] __initconst = {
51658 {
51659 .ident = "EPIA-M",
51660 .matches = {
51661 diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
51662 index dd45440..c5f3cae 100644
51663 --- a/drivers/net/hyperv/hyperv_net.h
51664 +++ b/drivers/net/hyperv/hyperv_net.h
51665 @@ -177,7 +177,7 @@ struct rndis_device {
51666 enum rndis_device_state state;
51667 bool link_state;
51668 bool link_change;
51669 - atomic_t new_req_id;
51670 + atomic_unchecked_t new_req_id;
51671
51672 spinlock_t request_lock;
51673 struct list_head req_list;
51674 diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
51675 index 236aeb7..fd695e2 100644
51676 --- a/drivers/net/hyperv/rndis_filter.c
51677 +++ b/drivers/net/hyperv/rndis_filter.c
51678 @@ -101,7 +101,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
51679 * template
51680 */
51681 set = &rndis_msg->msg.set_req;
51682 - set->req_id = atomic_inc_return(&dev->new_req_id);
51683 + set->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
51684
51685 /* Add to the request list */
51686 spin_lock_irqsave(&dev->request_lock, flags);
51687 @@ -924,7 +924,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
51688
51689 /* Setup the rndis set */
51690 halt = &request->request_msg.msg.halt_req;
51691 - halt->req_id = atomic_inc_return(&dev->new_req_id);
51692 + halt->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
51693
51694 /* Ignore return since this msg is optional. */
51695 rndis_filter_send_request(dev, request);
51696 diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
51697 index 94570aa..1a798e1 100644
51698 --- a/drivers/net/ifb.c
51699 +++ b/drivers/net/ifb.c
51700 @@ -253,7 +253,7 @@ static int ifb_validate(struct nlattr *tb[], struct nlattr *data[])
51701 return 0;
51702 }
51703
51704 -static struct rtnl_link_ops ifb_link_ops __read_mostly = {
51705 +static struct rtnl_link_ops ifb_link_ops = {
51706 .kind = "ifb",
51707 .priv_size = sizeof(struct ifb_private),
51708 .setup = ifb_setup,
51709 diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
51710 index 207f62e..af3f5e5 100644
51711 --- a/drivers/net/ipvlan/ipvlan_core.c
51712 +++ b/drivers/net/ipvlan/ipvlan_core.c
51713 @@ -466,7 +466,7 @@ static void ipvlan_multicast_enqueue(struct ipvl_port *port,
51714 schedule_work(&port->wq);
51715 } else {
51716 spin_unlock(&port->backlog.lock);
51717 - atomic_long_inc(&skb->dev->rx_dropped);
51718 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
51719 kfree_skb(skb);
51720 }
51721 }
51722 diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
51723 index 9f59f17..52cb38f 100644
51724 --- a/drivers/net/macvlan.c
51725 +++ b/drivers/net/macvlan.c
51726 @@ -335,7 +335,7 @@ static void macvlan_broadcast_enqueue(struct macvlan_port *port,
51727 free_nskb:
51728 kfree_skb(nskb);
51729 err:
51730 - atomic_long_inc(&skb->dev->rx_dropped);
51731 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
51732 }
51733
51734 static void macvlan_flush_sources(struct macvlan_port *port,
51735 @@ -1480,13 +1480,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
51736 int macvlan_link_register(struct rtnl_link_ops *ops)
51737 {
51738 /* common fields */
51739 - ops->priv_size = sizeof(struct macvlan_dev);
51740 - ops->validate = macvlan_validate;
51741 - ops->maxtype = IFLA_MACVLAN_MAX;
51742 - ops->policy = macvlan_policy;
51743 - ops->changelink = macvlan_changelink;
51744 - ops->get_size = macvlan_get_size;
51745 - ops->fill_info = macvlan_fill_info;
51746 + pax_open_kernel();
51747 + *(size_t *)&ops->priv_size = sizeof(struct macvlan_dev);
51748 + *(void **)&ops->validate = macvlan_validate;
51749 + *(int *)&ops->maxtype = IFLA_MACVLAN_MAX;
51750 + *(const void **)&ops->policy = macvlan_policy;
51751 + *(void **)&ops->changelink = macvlan_changelink;
51752 + *(void **)&ops->get_size = macvlan_get_size;
51753 + *(void **)&ops->fill_info = macvlan_fill_info;
51754 + pax_close_kernel();
51755
51756 return rtnl_link_register(ops);
51757 };
51758 @@ -1572,7 +1574,7 @@ static int macvlan_device_event(struct notifier_block *unused,
51759 return NOTIFY_DONE;
51760 }
51761
51762 -static struct notifier_block macvlan_notifier_block __read_mostly = {
51763 +static struct notifier_block macvlan_notifier_block = {
51764 .notifier_call = macvlan_device_event,
51765 };
51766
51767 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
51768 index 248478c..05e8467 100644
51769 --- a/drivers/net/macvtap.c
51770 +++ b/drivers/net/macvtap.c
51771 @@ -485,7 +485,7 @@ static void macvtap_setup(struct net_device *dev)
51772 dev->tx_queue_len = TUN_READQ_SIZE;
51773 }
51774
51775 -static struct rtnl_link_ops macvtap_link_ops __read_mostly = {
51776 +static struct rtnl_link_ops macvtap_link_ops = {
51777 .kind = "macvtap",
51778 .setup = macvtap_setup,
51779 .newlink = macvtap_newlink,
51780 @@ -1090,7 +1090,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
51781
51782 ret = 0;
51783 u = q->flags;
51784 - if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51785 + if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51786 put_user(u, &ifr->ifr_flags))
51787 ret = -EFAULT;
51788 macvtap_put_vlan(vlan);
51789 @@ -1308,7 +1308,7 @@ static int macvtap_device_event(struct notifier_block *unused,
51790 return NOTIFY_DONE;
51791 }
51792
51793 -static struct notifier_block macvtap_notifier_block __read_mostly = {
51794 +static struct notifier_block macvtap_notifier_block = {
51795 .notifier_call = macvtap_device_event,
51796 };
51797
51798 diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c
51799 index 34924df..a747360 100644
51800 --- a/drivers/net/nlmon.c
51801 +++ b/drivers/net/nlmon.c
51802 @@ -154,7 +154,7 @@ static int nlmon_validate(struct nlattr *tb[], struct nlattr *data[])
51803 return 0;
51804 }
51805
51806 -static struct rtnl_link_ops nlmon_link_ops __read_mostly = {
51807 +static struct rtnl_link_ops nlmon_link_ops = {
51808 .kind = "nlmon",
51809 .priv_size = sizeof(struct nlmon),
51810 .setup = nlmon_setup,
51811 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
51812 index 55f0178..6220e93 100644
51813 --- a/drivers/net/phy/phy_device.c
51814 +++ b/drivers/net/phy/phy_device.c
51815 @@ -218,7 +218,7 @@ EXPORT_SYMBOL(phy_device_create);
51816 * zero on success.
51817 *
51818 */
51819 -static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id,
51820 +static int get_phy_c45_ids(struct mii_bus *bus, int addr, int *phy_id,
51821 struct phy_c45_device_ids *c45_ids) {
51822 int phy_reg;
51823 int i, reg_addr;
51824 @@ -296,7 +296,7 @@ retry: reg_addr = MII_ADDR_C45 | i << 16 | MDIO_DEVS2;
51825 * its return value is in turn returned.
51826 *
51827 */
51828 -static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
51829 +static int get_phy_id(struct mii_bus *bus, int addr, int *phy_id,
51830 bool is_c45, struct phy_c45_device_ids *c45_ids)
51831 {
51832 int phy_reg;
51833 @@ -334,7 +334,7 @@ static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
51834 struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45)
51835 {
51836 struct phy_c45_device_ids c45_ids = {0};
51837 - u32 phy_id = 0;
51838 + int phy_id = 0;
51839 int r;
51840
51841 r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
51842 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
51843 index 487be20..f4c87bc 100644
51844 --- a/drivers/net/ppp/ppp_generic.c
51845 +++ b/drivers/net/ppp/ppp_generic.c
51846 @@ -1035,7 +1035,6 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
51847 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
51848 struct ppp_stats stats;
51849 struct ppp_comp_stats cstats;
51850 - char *vers;
51851
51852 switch (cmd) {
51853 case SIOCGPPPSTATS:
51854 @@ -1057,8 +1056,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
51855 break;
51856
51857 case SIOCGPPPVER:
51858 - vers = PPP_VERSION;
51859 - if (copy_to_user(addr, vers, strlen(vers) + 1))
51860 + if (copy_to_user(addr, PPP_VERSION, sizeof(PPP_VERSION)))
51861 break;
51862 err = 0;
51863 break;
51864 diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
51865 index 2ed7506..cf82b13 100644
51866 --- a/drivers/net/ppp/pppoe.c
51867 +++ b/drivers/net/ppp/pppoe.c
51868 @@ -568,6 +568,9 @@ static int pppoe_create(struct net *net, struct socket *sock, int kern)
51869 sk->sk_family = PF_PPPOX;
51870 sk->sk_protocol = PX_PROTO_OE;
51871
51872 + INIT_WORK(&pppox_sk(sk)->proto.pppoe.padt_work,
51873 + pppoe_unbind_sock_work);
51874 +
51875 return 0;
51876 }
51877
51878 @@ -632,8 +635,6 @@ static int pppoe_connect(struct socket *sock, struct sockaddr *uservaddr,
51879
51880 lock_sock(sk);
51881
51882 - INIT_WORK(&po->proto.pppoe.padt_work, pppoe_unbind_sock_work);
51883 -
51884 error = -EINVAL;
51885 if (sp->sa_protocol != PX_PROTO_OE)
51886 goto end;
51887 @@ -663,8 +664,13 @@ static int pppoe_connect(struct socket *sock, struct sockaddr *uservaddr,
51888 po->pppoe_dev = NULL;
51889 }
51890
51891 - memset(sk_pppox(po) + 1, 0,
51892 - sizeof(struct pppox_sock) - sizeof(struct sock));
51893 + po->pppoe_ifindex = 0;
51894 + memset(&po->pppoe_pa, 0, sizeof(po->pppoe_pa));
51895 + memset(&po->pppoe_relay, 0, sizeof(po->pppoe_relay));
51896 + memset(&po->chan, 0, sizeof(po->chan));
51897 + po->next = NULL;
51898 + po->num = 0;
51899 +
51900 sk->sk_state = PPPOX_NONE;
51901 }
51902
51903 diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c
51904 index 079f7ad..7e59810 100644
51905 --- a/drivers/net/slip/slhc.c
51906 +++ b/drivers/net/slip/slhc.c
51907 @@ -94,6 +94,9 @@ slhc_init(int rslots, int tslots)
51908 register struct cstate *ts;
51909 struct slcompress *comp;
51910
51911 + if (rslots <= 0 || tslots <= 0 || rslots >= 256 || tslots >= 256)
51912 + goto out_fail;
51913 +
51914 comp = kzalloc(sizeof(struct slcompress), GFP_KERNEL);
51915 if (! comp)
51916 goto out_fail;
51917 @@ -487,7 +490,7 @@ slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize)
51918 register struct tcphdr *thp;
51919 register struct iphdr *ip;
51920 register struct cstate *cs;
51921 - int len, hdrlen;
51922 + long len, hdrlen;
51923 unsigned char *cp = icp;
51924
51925 /* We've got a compressed packet; read the change byte */
51926 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
51927 index daa054b..07d6b98 100644
51928 --- a/drivers/net/team/team.c
51929 +++ b/drivers/net/team/team.c
51930 @@ -2107,7 +2107,7 @@ static unsigned int team_get_num_rx_queues(void)
51931 return TEAM_DEFAULT_NUM_RX_QUEUES;
51932 }
51933
51934 -static struct rtnl_link_ops team_link_ops __read_mostly = {
51935 +static struct rtnl_link_ops team_link_ops = {
51936 .kind = DRV_NAME,
51937 .priv_size = sizeof(struct team),
51938 .setup = team_setup,
51939 @@ -2897,7 +2897,7 @@ static int team_device_event(struct notifier_block *unused,
51940 return NOTIFY_DONE;
51941 }
51942
51943 -static struct notifier_block team_notifier_block __read_mostly = {
51944 +static struct notifier_block team_notifier_block = {
51945 .notifier_call = team_device_event,
51946 };
51947
51948 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
51949 index 06a0394..1756d18 100644
51950 --- a/drivers/net/tun.c
51951 +++ b/drivers/net/tun.c
51952 @@ -1472,7 +1472,7 @@ static int tun_validate(struct nlattr *tb[], struct nlattr *data[])
51953 return -EINVAL;
51954 }
51955
51956 -static struct rtnl_link_ops tun_link_ops __read_mostly = {
51957 +static struct rtnl_link_ops tun_link_ops = {
51958 .kind = DRV_NAME,
51959 .priv_size = sizeof(struct tun_struct),
51960 .setup = tun_setup,
51961 @@ -1871,7 +1871,7 @@ unlock:
51962 }
51963
51964 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
51965 - unsigned long arg, int ifreq_len)
51966 + unsigned long arg, size_t ifreq_len)
51967 {
51968 struct tun_file *tfile = file->private_data;
51969 struct tun_struct *tun;
51970 @@ -1885,6 +1885,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
51971 int le;
51972 int ret;
51973
51974 + if (ifreq_len > sizeof ifr)
51975 + return -EFAULT;
51976 +
51977 if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == 0x89) {
51978 if (copy_from_user(&ifr, argp, ifreq_len))
51979 return -EFAULT;
51980 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
51981 index 111d907..1ee643e 100644
51982 --- a/drivers/net/usb/hso.c
51983 +++ b/drivers/net/usb/hso.c
51984 @@ -70,7 +70,7 @@
51985 #include <asm/byteorder.h>
51986 #include <linux/serial_core.h>
51987 #include <linux/serial.h>
51988 -
51989 +#include <asm/local.h>
51990
51991 #define MOD_AUTHOR "Option Wireless"
51992 #define MOD_DESCRIPTION "USB High Speed Option driver"
51993 @@ -1183,7 +1183,7 @@ static void put_rxbuf_data_and_resubmit_ctrl_urb(struct hso_serial *serial)
51994 struct urb *urb;
51995
51996 urb = serial->rx_urb[0];
51997 - if (serial->port.count > 0) {
51998 + if (atomic_read(&serial->port.count) > 0) {
51999 count = put_rxbuf_data(urb, serial);
52000 if (count == -1)
52001 return;
52002 @@ -1221,7 +1221,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb)
52003 DUMP1(urb->transfer_buffer, urb->actual_length);
52004
52005 /* Anyone listening? */
52006 - if (serial->port.count == 0)
52007 + if (atomic_read(&serial->port.count) == 0)
52008 return;
52009
52010 if (serial->parent->port_spec & HSO_INFO_CRC_BUG)
52011 @@ -1282,8 +1282,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
52012 tty_port_tty_set(&serial->port, tty);
52013
52014 /* check for port already opened, if not set the termios */
52015 - serial->port.count++;
52016 - if (serial->port.count == 1) {
52017 + if (atomic_inc_return(&serial->port.count) == 1) {
52018 serial->rx_state = RX_IDLE;
52019 /* Force default termio settings */
52020 _hso_serial_set_termios(tty, NULL);
52021 @@ -1293,7 +1292,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
52022 result = hso_start_serial_device(serial->parent, GFP_KERNEL);
52023 if (result) {
52024 hso_stop_serial_device(serial->parent);
52025 - serial->port.count--;
52026 + atomic_dec(&serial->port.count);
52027 } else {
52028 kref_get(&serial->parent->ref);
52029 }
52030 @@ -1331,10 +1330,10 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
52031
52032 /* reset the rts and dtr */
52033 /* do the actual close */
52034 - serial->port.count--;
52035 + atomic_dec(&serial->port.count);
52036
52037 - if (serial->port.count <= 0) {
52038 - serial->port.count = 0;
52039 + if (atomic_read(&serial->port.count) <= 0) {
52040 + atomic_set(&serial->port.count, 0);
52041 tty_port_tty_set(&serial->port, NULL);
52042 if (!usb_gone)
52043 hso_stop_serial_device(serial->parent);
52044 @@ -1417,7 +1416,7 @@ static void hso_serial_set_termios(struct tty_struct *tty, struct ktermios *old)
52045
52046 /* the actual setup */
52047 spin_lock_irqsave(&serial->serial_lock, flags);
52048 - if (serial->port.count)
52049 + if (atomic_read(&serial->port.count))
52050 _hso_serial_set_termios(tty, old);
52051 else
52052 tty->termios = *old;
52053 @@ -1891,7 +1890,7 @@ static void intr_callback(struct urb *urb)
52054 D1("Pending read interrupt on port %d\n", i);
52055 spin_lock(&serial->serial_lock);
52056 if (serial->rx_state == RX_IDLE &&
52057 - serial->port.count > 0) {
52058 + atomic_read(&serial->port.count) > 0) {
52059 /* Setup and send a ctrl req read on
52060 * port i */
52061 if (!serial->rx_urb_filled[0]) {
52062 @@ -3058,7 +3057,7 @@ static int hso_resume(struct usb_interface *iface)
52063 /* Start all serial ports */
52064 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
52065 if (serial_table[i] && (serial_table[i]->interface == iface)) {
52066 - if (dev2ser(serial_table[i])->port.count) {
52067 + if (atomic_read(&dev2ser(serial_table[i])->port.count)) {
52068 result =
52069 hso_start_serial_device(serial_table[i], GFP_NOIO);
52070 hso_kick_transmit(dev2ser(serial_table[i]));
52071 diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
52072 index ad8cbc6..de80b09 100644
52073 --- a/drivers/net/usb/r8152.c
52074 +++ b/drivers/net/usb/r8152.c
52075 @@ -603,7 +603,7 @@ struct r8152 {
52076 void (*unload)(struct r8152 *);
52077 int (*eee_get)(struct r8152 *, struct ethtool_eee *);
52078 int (*eee_set)(struct r8152 *, struct ethtool_eee *);
52079 - } rtl_ops;
52080 + } __no_const rtl_ops;
52081
52082 int intr_interval;
52083 u32 saved_wolopts;
52084 diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
52085 index a2515887..6d13233 100644
52086 --- a/drivers/net/usb/sierra_net.c
52087 +++ b/drivers/net/usb/sierra_net.c
52088 @@ -51,7 +51,7 @@ static const char driver_name[] = "sierra_net";
52089 /* atomic counter partially included in MAC address to make sure 2 devices
52090 * do not end up with the same MAC - concept breaks in case of > 255 ifaces
52091 */
52092 -static atomic_t iface_counter = ATOMIC_INIT(0);
52093 +static atomic_unchecked_t iface_counter = ATOMIC_INIT(0);
52094
52095 /*
52096 * SYNC Timer Delay definition used to set the expiry time
52097 @@ -697,7 +697,7 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
52098 dev->net->netdev_ops = &sierra_net_device_ops;
52099
52100 /* change MAC addr to include, ifacenum, and to be unique */
52101 - dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
52102 + dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return_unchecked(&iface_counter);
52103 dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
52104
52105 /* we will have to manufacture ethernet headers, prepare template */
52106 diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
52107 index 237f8e5..8dccb91 100644
52108 --- a/drivers/net/virtio_net.c
52109 +++ b/drivers/net/virtio_net.c
52110 @@ -48,7 +48,7 @@ module_param(gso, bool, 0444);
52111 #define RECEIVE_AVG_WEIGHT 64
52112
52113 /* Minimum alignment for mergeable packet buffers. */
52114 -#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256)
52115 +#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256UL)
52116
52117 #define VIRTNET_DRIVER_VERSION "1.0.0"
52118
52119 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
52120 index 5bc4b1e..d5769f5 100644
52121 --- a/drivers/net/vxlan.c
52122 +++ b/drivers/net/vxlan.c
52123 @@ -2884,7 +2884,7 @@ static struct net *vxlan_get_link_net(const struct net_device *dev)
52124 return vxlan->net;
52125 }
52126
52127 -static struct rtnl_link_ops vxlan_link_ops __read_mostly = {
52128 +static struct rtnl_link_ops vxlan_link_ops = {
52129 .kind = "vxlan",
52130 .maxtype = IFLA_VXLAN_MAX,
52131 .policy = vxlan_policy,
52132 @@ -2932,7 +2932,7 @@ static int vxlan_lowerdev_event(struct notifier_block *unused,
52133 return NOTIFY_DONE;
52134 }
52135
52136 -static struct notifier_block vxlan_notifier_block __read_mostly = {
52137 +static struct notifier_block vxlan_notifier_block = {
52138 .notifier_call = vxlan_lowerdev_event,
52139 };
52140
52141 diff --git a/drivers/net/wan/lmc/lmc_media.c b/drivers/net/wan/lmc/lmc_media.c
52142 index 5920c99..ff2e4a5 100644
52143 --- a/drivers/net/wan/lmc/lmc_media.c
52144 +++ b/drivers/net/wan/lmc/lmc_media.c
52145 @@ -95,62 +95,63 @@ static inline void write_av9110_bit (lmc_softc_t *, int);
52146 static void write_av9110(lmc_softc_t *, u32, u32, u32, u32, u32);
52147
52148 lmc_media_t lmc_ds3_media = {
52149 - lmc_ds3_init, /* special media init stuff */
52150 - lmc_ds3_default, /* reset to default state */
52151 - lmc_ds3_set_status, /* reset status to state provided */
52152 - lmc_dummy_set_1, /* set clock source */
52153 - lmc_dummy_set2_1, /* set line speed */
52154 - lmc_ds3_set_100ft, /* set cable length */
52155 - lmc_ds3_set_scram, /* set scrambler */
52156 - lmc_ds3_get_link_status, /* get link status */
52157 - lmc_dummy_set_1, /* set link status */
52158 - lmc_ds3_set_crc_length, /* set CRC length */
52159 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
52160 - lmc_ds3_watchdog
52161 + .init = lmc_ds3_init, /* special media init stuff */
52162 + .defaults = lmc_ds3_default, /* reset to default state */
52163 + .set_status = lmc_ds3_set_status, /* reset status to state provided */
52164 + .set_clock_source = lmc_dummy_set_1, /* set clock source */
52165 + .set_speed = lmc_dummy_set2_1, /* set line speed */
52166 + .set_cable_length = lmc_ds3_set_100ft, /* set cable length */
52167 + .set_scrambler = lmc_ds3_set_scram, /* set scrambler */
52168 + .get_link_status = lmc_ds3_get_link_status, /* get link status */
52169 + .set_link_status = lmc_dummy_set_1, /* set link status */
52170 + .set_crc_length = lmc_ds3_set_crc_length, /* set CRC length */
52171 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
52172 + .watchdog = lmc_ds3_watchdog
52173 };
52174
52175 lmc_media_t lmc_hssi_media = {
52176 - lmc_hssi_init, /* special media init stuff */
52177 - lmc_hssi_default, /* reset to default state */
52178 - lmc_hssi_set_status, /* reset status to state provided */
52179 - lmc_hssi_set_clock, /* set clock source */
52180 - lmc_dummy_set2_1, /* set line speed */
52181 - lmc_dummy_set_1, /* set cable length */
52182 - lmc_dummy_set_1, /* set scrambler */
52183 - lmc_hssi_get_link_status, /* get link status */
52184 - lmc_hssi_set_link_status, /* set link status */
52185 - lmc_hssi_set_crc_length, /* set CRC length */
52186 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
52187 - lmc_hssi_watchdog
52188 + .init = lmc_hssi_init, /* special media init stuff */
52189 + .defaults = lmc_hssi_default, /* reset to default state */
52190 + .set_status = lmc_hssi_set_status, /* reset status to state provided */
52191 + .set_clock_source = lmc_hssi_set_clock, /* set clock source */
52192 + .set_speed = lmc_dummy_set2_1, /* set line speed */
52193 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
52194 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
52195 + .get_link_status = lmc_hssi_get_link_status, /* get link status */
52196 + .set_link_status = lmc_hssi_set_link_status, /* set link status */
52197 + .set_crc_length = lmc_hssi_set_crc_length, /* set CRC length */
52198 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
52199 + .watchdog = lmc_hssi_watchdog
52200 };
52201
52202 -lmc_media_t lmc_ssi_media = { lmc_ssi_init, /* special media init stuff */
52203 - lmc_ssi_default, /* reset to default state */
52204 - lmc_ssi_set_status, /* reset status to state provided */
52205 - lmc_ssi_set_clock, /* set clock source */
52206 - lmc_ssi_set_speed, /* set line speed */
52207 - lmc_dummy_set_1, /* set cable length */
52208 - lmc_dummy_set_1, /* set scrambler */
52209 - lmc_ssi_get_link_status, /* get link status */
52210 - lmc_ssi_set_link_status, /* set link status */
52211 - lmc_ssi_set_crc_length, /* set CRC length */
52212 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
52213 - lmc_ssi_watchdog
52214 +lmc_media_t lmc_ssi_media = {
52215 + .init = lmc_ssi_init, /* special media init stuff */
52216 + .defaults = lmc_ssi_default, /* reset to default state */
52217 + .set_status = lmc_ssi_set_status, /* reset status to state provided */
52218 + .set_clock_source = lmc_ssi_set_clock, /* set clock source */
52219 + .set_speed = lmc_ssi_set_speed, /* set line speed */
52220 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
52221 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
52222 + .get_link_status = lmc_ssi_get_link_status, /* get link status */
52223 + .set_link_status = lmc_ssi_set_link_status, /* set link status */
52224 + .set_crc_length = lmc_ssi_set_crc_length, /* set CRC length */
52225 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
52226 + .watchdog = lmc_ssi_watchdog
52227 };
52228
52229 lmc_media_t lmc_t1_media = {
52230 - lmc_t1_init, /* special media init stuff */
52231 - lmc_t1_default, /* reset to default state */
52232 - lmc_t1_set_status, /* reset status to state provided */
52233 - lmc_t1_set_clock, /* set clock source */
52234 - lmc_dummy_set2_1, /* set line speed */
52235 - lmc_dummy_set_1, /* set cable length */
52236 - lmc_dummy_set_1, /* set scrambler */
52237 - lmc_t1_get_link_status, /* get link status */
52238 - lmc_dummy_set_1, /* set link status */
52239 - lmc_t1_set_crc_length, /* set CRC length */
52240 - lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
52241 - lmc_t1_watchdog
52242 + .init = lmc_t1_init, /* special media init stuff */
52243 + .defaults = lmc_t1_default, /* reset to default state */
52244 + .set_status = lmc_t1_set_status, /* reset status to state provided */
52245 + .set_clock_source = lmc_t1_set_clock, /* set clock source */
52246 + .set_speed = lmc_dummy_set2_1, /* set line speed */
52247 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
52248 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
52249 + .get_link_status = lmc_t1_get_link_status, /* get link status */
52250 + .set_link_status = lmc_dummy_set_1, /* set link status */
52251 + .set_crc_length = lmc_t1_set_crc_length, /* set CRC length */
52252 + .set_circuit_type = lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
52253 + .watchdog = lmc_t1_watchdog
52254 };
52255
52256 static void
52257 diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c
52258 index 5c47b01..cd39025 100644
52259 --- a/drivers/net/wan/x25_asy.c
52260 +++ b/drivers/net/wan/x25_asy.c
52261 @@ -549,16 +549,12 @@ static void x25_asy_receive_buf(struct tty_struct *tty,
52262
52263 static int x25_asy_open_tty(struct tty_struct *tty)
52264 {
52265 - struct x25_asy *sl = tty->disc_data;
52266 + struct x25_asy *sl;
52267 int err;
52268
52269 if (tty->ops->write == NULL)
52270 return -EOPNOTSUPP;
52271
52272 - /* First make sure we're not already connected. */
52273 - if (sl && sl->magic == X25_ASY_MAGIC)
52274 - return -EEXIST;
52275 -
52276 /* OK. Find a free X.25 channel to use. */
52277 sl = x25_asy_alloc();
52278 if (sl == NULL)
52279 diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
52280 index 2f0bd69..e46ed7b 100644
52281 --- a/drivers/net/wan/z85230.c
52282 +++ b/drivers/net/wan/z85230.c
52283 @@ -485,9 +485,9 @@ static void z8530_status(struct z8530_channel *chan)
52284
52285 struct z8530_irqhandler z8530_sync =
52286 {
52287 - z8530_rx,
52288 - z8530_tx,
52289 - z8530_status
52290 + .rx = z8530_rx,
52291 + .tx = z8530_tx,
52292 + .status = z8530_status
52293 };
52294
52295 EXPORT_SYMBOL(z8530_sync);
52296 @@ -605,15 +605,15 @@ static void z8530_dma_status(struct z8530_channel *chan)
52297 }
52298
52299 static struct z8530_irqhandler z8530_dma_sync = {
52300 - z8530_dma_rx,
52301 - z8530_dma_tx,
52302 - z8530_dma_status
52303 + .rx = z8530_dma_rx,
52304 + .tx = z8530_dma_tx,
52305 + .status = z8530_dma_status
52306 };
52307
52308 static struct z8530_irqhandler z8530_txdma_sync = {
52309 - z8530_rx,
52310 - z8530_dma_tx,
52311 - z8530_dma_status
52312 + .rx = z8530_rx,
52313 + .tx = z8530_dma_tx,
52314 + .status = z8530_dma_status
52315 };
52316
52317 /**
52318 @@ -680,9 +680,9 @@ static void z8530_status_clear(struct z8530_channel *chan)
52319
52320 struct z8530_irqhandler z8530_nop=
52321 {
52322 - z8530_rx_clear,
52323 - z8530_tx_clear,
52324 - z8530_status_clear
52325 + .rx = z8530_rx_clear,
52326 + .tx = z8530_tx_clear,
52327 + .status = z8530_status_clear
52328 };
52329
52330
52331 diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
52332 index 0b60295..b8bfa5b 100644
52333 --- a/drivers/net/wimax/i2400m/rx.c
52334 +++ b/drivers/net/wimax/i2400m/rx.c
52335 @@ -1359,7 +1359,7 @@ int i2400m_rx_setup(struct i2400m *i2400m)
52336 if (i2400m->rx_roq == NULL)
52337 goto error_roq_alloc;
52338
52339 - rd = kcalloc(I2400M_RO_CIN + 1, sizeof(*i2400m->rx_roq[0].log),
52340 + rd = kcalloc(sizeof(*i2400m->rx_roq[0].log), I2400M_RO_CIN + 1,
52341 GFP_KERNEL);
52342 if (rd == NULL) {
52343 result = -ENOMEM;
52344 diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
52345 index d0c97c2..108f59b 100644
52346 --- a/drivers/net/wireless/airo.c
52347 +++ b/drivers/net/wireless/airo.c
52348 @@ -7846,7 +7846,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
52349 struct airo_info *ai = dev->ml_priv;
52350 int ridcode;
52351 int enabled;
52352 - static int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
52353 + int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
52354 unsigned char *iobuf;
52355
52356 /* Only super-user can write RIDs */
52357 diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
52358 index dab2513..4c4b65d 100644
52359 --- a/drivers/net/wireless/at76c50x-usb.c
52360 +++ b/drivers/net/wireless/at76c50x-usb.c
52361 @@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state)
52362 }
52363
52364 /* Convert timeout from the DFU status to jiffies */
52365 -static inline unsigned long at76_get_timeout(struct dfu_status *s)
52366 +static inline unsigned long __intentional_overflow(-1) at76_get_timeout(struct dfu_status *s)
52367 {
52368 return msecs_to_jiffies((s->poll_timeout[2] << 16)
52369 | (s->poll_timeout[1] << 8)
52370 diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c
52371 index e508c65..3fd90eb 100644
52372 --- a/drivers/net/wireless/ath/ath10k/ce.c
52373 +++ b/drivers/net/wireless/ath/ath10k/ce.c
52374 @@ -896,12 +896,12 @@ static int ath10k_ce_init_dest_ring(struct ath10k *ar,
52375 return 0;
52376 }
52377
52378 -static struct ath10k_ce_ring *
52379 +static struct ath10k_ce_ring * __intentional_overflow(-1)
52380 ath10k_ce_alloc_src_ring(struct ath10k *ar, unsigned int ce_id,
52381 const struct ce_attr *attr)
52382 {
52383 struct ath10k_ce_ring *src_ring;
52384 - u32 nentries = attr->src_nentries;
52385 + unsigned long nentries = attr->src_nentries;
52386 dma_addr_t base_addr;
52387
52388 nentries = roundup_pow_of_two(nentries);
52389 @@ -968,7 +968,7 @@ ath10k_ce_alloc_dest_ring(struct ath10k *ar, unsigned int ce_id,
52390 const struct ce_attr *attr)
52391 {
52392 struct ath10k_ce_ring *dest_ring;
52393 - u32 nentries;
52394 + unsigned long nentries;
52395 dma_addr_t base_addr;
52396
52397 nentries = roundup_pow_of_two(attr->dest_nentries);
52398 diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
52399 index 32d9ff1..0952b33 100644
52400 --- a/drivers/net/wireless/ath/ath10k/htc.c
52401 +++ b/drivers/net/wireless/ath/ath10k/htc.c
52402 @@ -841,7 +841,10 @@ int ath10k_htc_start(struct ath10k_htc *htc)
52403 /* registered target arrival callback from the HIF layer */
52404 int ath10k_htc_init(struct ath10k *ar)
52405 {
52406 - struct ath10k_hif_cb htc_callbacks;
52407 + static struct ath10k_hif_cb htc_callbacks = {
52408 + .rx_completion = ath10k_htc_rx_completion_handler,
52409 + .tx_completion = ath10k_htc_tx_completion_handler,
52410 + };
52411 struct ath10k_htc_ep *ep = NULL;
52412 struct ath10k_htc *htc = &ar->htc;
52413
52414 @@ -850,8 +853,6 @@ int ath10k_htc_init(struct ath10k *ar)
52415 ath10k_htc_reset_endpoint_states(htc);
52416
52417 /* setup HIF layer callbacks */
52418 - htc_callbacks.rx_completion = ath10k_htc_rx_completion_handler;
52419 - htc_callbacks.tx_completion = ath10k_htc_tx_completion_handler;
52420 htc->ar = ar;
52421
52422 /* Get HIF default pipe for HTC message exchange */
52423 diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
52424 index 527179c..a890150 100644
52425 --- a/drivers/net/wireless/ath/ath10k/htc.h
52426 +++ b/drivers/net/wireless/ath/ath10k/htc.h
52427 @@ -270,13 +270,13 @@ enum ath10k_htc_ep_id {
52428
52429 struct ath10k_htc_ops {
52430 void (*target_send_suspend_complete)(struct ath10k *ar);
52431 -};
52432 +} __no_const;
52433
52434 struct ath10k_htc_ep_ops {
52435 void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
52436 void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
52437 void (*ep_tx_credits)(struct ath10k *);
52438 -};
52439 +} __no_const;
52440
52441 /* service connection information */
52442 struct ath10k_htc_svc_conn_req {
52443 diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
52444 index fee0cad..a7a3b63 100644
52445 --- a/drivers/net/wireless/ath/ath9k/Kconfig
52446 +++ b/drivers/net/wireless/ath/ath9k/Kconfig
52447 @@ -3,7 +3,6 @@ config ATH9K_HW
52448 config ATH9K_COMMON
52449 tristate
52450 select ATH_COMMON
52451 - select DEBUG_FS
52452 select RELAY
52453 config ATH9K_DFS_DEBUGFS
52454 def_bool y
52455 diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52456 index f816909..e56cd8b 100644
52457 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52458 +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52459 @@ -220,8 +220,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52460 ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
52461 ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
52462
52463 - ACCESS_ONCE(ads->ds_link) = i->link;
52464 - ACCESS_ONCE(ads->ds_data) = i->buf_addr[0];
52465 + ACCESS_ONCE_RW(ads->ds_link) = i->link;
52466 + ACCESS_ONCE_RW(ads->ds_data) = i->buf_addr[0];
52467
52468 ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
52469 ctl6 = SM(i->keytype, AR_EncrType);
52470 @@ -235,26 +235,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52471
52472 if ((i->is_first || i->is_last) &&
52473 i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
52474 - ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0)
52475 + ACCESS_ONCE_RW(ads->ds_ctl2) = set11nTries(i->rates, 0)
52476 | set11nTries(i->rates, 1)
52477 | set11nTries(i->rates, 2)
52478 | set11nTries(i->rates, 3)
52479 | (i->dur_update ? AR_DurUpdateEna : 0)
52480 | SM(0, AR_BurstDur);
52481
52482 - ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0)
52483 + ACCESS_ONCE_RW(ads->ds_ctl3) = set11nRate(i->rates, 0)
52484 | set11nRate(i->rates, 1)
52485 | set11nRate(i->rates, 2)
52486 | set11nRate(i->rates, 3);
52487 } else {
52488 - ACCESS_ONCE(ads->ds_ctl2) = 0;
52489 - ACCESS_ONCE(ads->ds_ctl3) = 0;
52490 + ACCESS_ONCE_RW(ads->ds_ctl2) = 0;
52491 + ACCESS_ONCE_RW(ads->ds_ctl3) = 0;
52492 }
52493
52494 if (!i->is_first) {
52495 - ACCESS_ONCE(ads->ds_ctl0) = 0;
52496 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
52497 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
52498 + ACCESS_ONCE_RW(ads->ds_ctl0) = 0;
52499 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
52500 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
52501 return;
52502 }
52503
52504 @@ -279,7 +279,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52505 break;
52506 }
52507
52508 - ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
52509 + ACCESS_ONCE_RW(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
52510 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
52511 | SM(i->txpower[0], AR_XmitPower0)
52512 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
52513 @@ -289,27 +289,27 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52514 | (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
52515 (i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
52516
52517 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
52518 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
52519 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
52520 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
52521
52522 if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST)
52523 return;
52524
52525 - ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
52526 + ACCESS_ONCE_RW(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
52527 | set11nPktDurRTSCTS(i->rates, 1);
52528
52529 - ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
52530 + ACCESS_ONCE_RW(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
52531 | set11nPktDurRTSCTS(i->rates, 3);
52532
52533 - ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
52534 + ACCESS_ONCE_RW(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
52535 | set11nRateFlags(i->rates, 1)
52536 | set11nRateFlags(i->rates, 2)
52537 | set11nRateFlags(i->rates, 3)
52538 | SM(i->rtscts_rate, AR_RTSCTSRate);
52539
52540 - ACCESS_ONCE(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
52541 - ACCESS_ONCE(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
52542 - ACCESS_ONCE(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
52543 + ACCESS_ONCE_RW(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
52544 + ACCESS_ONCE_RW(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
52545 + ACCESS_ONCE_RW(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
52546 }
52547
52548 static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds,
52549 diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52550 index da84b70..83e4978 100644
52551 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52552 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52553 @@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52554 (i->qcu << AR_TxQcuNum_S) | desc_len;
52555
52556 checksum += val;
52557 - ACCESS_ONCE(ads->info) = val;
52558 + ACCESS_ONCE_RW(ads->info) = val;
52559
52560 checksum += i->link;
52561 - ACCESS_ONCE(ads->link) = i->link;
52562 + ACCESS_ONCE_RW(ads->link) = i->link;
52563
52564 checksum += i->buf_addr[0];
52565 - ACCESS_ONCE(ads->data0) = i->buf_addr[0];
52566 + ACCESS_ONCE_RW(ads->data0) = i->buf_addr[0];
52567 checksum += i->buf_addr[1];
52568 - ACCESS_ONCE(ads->data1) = i->buf_addr[1];
52569 + ACCESS_ONCE_RW(ads->data1) = i->buf_addr[1];
52570 checksum += i->buf_addr[2];
52571 - ACCESS_ONCE(ads->data2) = i->buf_addr[2];
52572 + ACCESS_ONCE_RW(ads->data2) = i->buf_addr[2];
52573 checksum += i->buf_addr[3];
52574 - ACCESS_ONCE(ads->data3) = i->buf_addr[3];
52575 + ACCESS_ONCE_RW(ads->data3) = i->buf_addr[3];
52576
52577 checksum += (val = (i->buf_len[0] << AR_BufLen_S) & AR_BufLen);
52578 - ACCESS_ONCE(ads->ctl3) = val;
52579 + ACCESS_ONCE_RW(ads->ctl3) = val;
52580 checksum += (val = (i->buf_len[1] << AR_BufLen_S) & AR_BufLen);
52581 - ACCESS_ONCE(ads->ctl5) = val;
52582 + ACCESS_ONCE_RW(ads->ctl5) = val;
52583 checksum += (val = (i->buf_len[2] << AR_BufLen_S) & AR_BufLen);
52584 - ACCESS_ONCE(ads->ctl7) = val;
52585 + ACCESS_ONCE_RW(ads->ctl7) = val;
52586 checksum += (val = (i->buf_len[3] << AR_BufLen_S) & AR_BufLen);
52587 - ACCESS_ONCE(ads->ctl9) = val;
52588 + ACCESS_ONCE_RW(ads->ctl9) = val;
52589
52590 checksum = (u16) (((checksum & 0xffff) + (checksum >> 16)) & 0xffff);
52591 - ACCESS_ONCE(ads->ctl10) = checksum;
52592 + ACCESS_ONCE_RW(ads->ctl10) = checksum;
52593
52594 if (i->is_first || i->is_last) {
52595 - ACCESS_ONCE(ads->ctl13) = set11nTries(i->rates, 0)
52596 + ACCESS_ONCE_RW(ads->ctl13) = set11nTries(i->rates, 0)
52597 | set11nTries(i->rates, 1)
52598 | set11nTries(i->rates, 2)
52599 | set11nTries(i->rates, 3)
52600 | (i->dur_update ? AR_DurUpdateEna : 0)
52601 | SM(0, AR_BurstDur);
52602
52603 - ACCESS_ONCE(ads->ctl14) = set11nRate(i->rates, 0)
52604 + ACCESS_ONCE_RW(ads->ctl14) = set11nRate(i->rates, 0)
52605 | set11nRate(i->rates, 1)
52606 | set11nRate(i->rates, 2)
52607 | set11nRate(i->rates, 3);
52608 } else {
52609 - ACCESS_ONCE(ads->ctl13) = 0;
52610 - ACCESS_ONCE(ads->ctl14) = 0;
52611 + ACCESS_ONCE_RW(ads->ctl13) = 0;
52612 + ACCESS_ONCE_RW(ads->ctl14) = 0;
52613 }
52614
52615 ads->ctl20 = 0;
52616 @@ -89,17 +89,17 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52617
52618 ctl17 = SM(i->keytype, AR_EncrType);
52619 if (!i->is_first) {
52620 - ACCESS_ONCE(ads->ctl11) = 0;
52621 - ACCESS_ONCE(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
52622 - ACCESS_ONCE(ads->ctl15) = 0;
52623 - ACCESS_ONCE(ads->ctl16) = 0;
52624 - ACCESS_ONCE(ads->ctl17) = ctl17;
52625 - ACCESS_ONCE(ads->ctl18) = 0;
52626 - ACCESS_ONCE(ads->ctl19) = 0;
52627 + ACCESS_ONCE_RW(ads->ctl11) = 0;
52628 + ACCESS_ONCE_RW(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
52629 + ACCESS_ONCE_RW(ads->ctl15) = 0;
52630 + ACCESS_ONCE_RW(ads->ctl16) = 0;
52631 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
52632 + ACCESS_ONCE_RW(ads->ctl18) = 0;
52633 + ACCESS_ONCE_RW(ads->ctl19) = 0;
52634 return;
52635 }
52636
52637 - ACCESS_ONCE(ads->ctl11) = (i->pkt_len & AR_FrameLen)
52638 + ACCESS_ONCE_RW(ads->ctl11) = (i->pkt_len & AR_FrameLen)
52639 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
52640 | SM(i->txpower[0], AR_XmitPower0)
52641 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
52642 @@ -135,26 +135,26 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52643 val = (i->flags & ATH9K_TXDESC_PAPRD) >> ATH9K_TXDESC_PAPRD_S;
52644 ctl12 |= SM(val, AR_PAPRDChainMask);
52645
52646 - ACCESS_ONCE(ads->ctl12) = ctl12;
52647 - ACCESS_ONCE(ads->ctl17) = ctl17;
52648 + ACCESS_ONCE_RW(ads->ctl12) = ctl12;
52649 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
52650
52651 - ACCESS_ONCE(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
52652 + ACCESS_ONCE_RW(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
52653 | set11nPktDurRTSCTS(i->rates, 1);
52654
52655 - ACCESS_ONCE(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
52656 + ACCESS_ONCE_RW(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
52657 | set11nPktDurRTSCTS(i->rates, 3);
52658
52659 - ACCESS_ONCE(ads->ctl18) = set11nRateFlags(i->rates, 0)
52660 + ACCESS_ONCE_RW(ads->ctl18) = set11nRateFlags(i->rates, 0)
52661 | set11nRateFlags(i->rates, 1)
52662 | set11nRateFlags(i->rates, 2)
52663 | set11nRateFlags(i->rates, 3)
52664 | SM(i->rtscts_rate, AR_RTSCTSRate);
52665
52666 - ACCESS_ONCE(ads->ctl19) = AR_Not_Sounding;
52667 + ACCESS_ONCE_RW(ads->ctl19) = AR_Not_Sounding;
52668
52669 - ACCESS_ONCE(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
52670 - ACCESS_ONCE(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
52671 - ACCESS_ONCE(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
52672 + ACCESS_ONCE_RW(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
52673 + ACCESS_ONCE_RW(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
52674 + ACCESS_ONCE_RW(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
52675 }
52676
52677 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
52678 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
52679 index e8454db..c7b26fe 100644
52680 --- a/drivers/net/wireless/ath/ath9k/hw.h
52681 +++ b/drivers/net/wireless/ath/ath9k/hw.h
52682 @@ -671,7 +671,7 @@ struct ath_hw_private_ops {
52683 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
52684 bool (*is_aic_enabled)(struct ath_hw *ah);
52685 #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */
52686 -};
52687 +} __no_const;
52688
52689 /**
52690 * struct ath_spec_scan - parameters for Atheros spectral scan
52691 @@ -747,7 +747,7 @@ struct ath_hw_ops {
52692 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
52693 void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
52694 #endif
52695 -};
52696 +} __no_const;
52697
52698 struct ath_nf_limits {
52699 s16 max;
52700 diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
52701 index cfd45cb..6de2be6 100644
52702 --- a/drivers/net/wireless/ath/ath9k/main.c
52703 +++ b/drivers/net/wireless/ath/ath9k/main.c
52704 @@ -2574,16 +2574,18 @@ void ath9k_fill_chanctx_ops(void)
52705 if (!ath9k_is_chanctx_enabled())
52706 return;
52707
52708 - ath9k_ops.hw_scan = ath9k_hw_scan;
52709 - ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
52710 - ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
52711 - ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
52712 - ath9k_ops.add_chanctx = ath9k_add_chanctx;
52713 - ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
52714 - ath9k_ops.change_chanctx = ath9k_change_chanctx;
52715 - ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
52716 - ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
52717 - ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
52718 + pax_open_kernel();
52719 + *(void **)&ath9k_ops.hw_scan = ath9k_hw_scan;
52720 + *(void **)&ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
52721 + *(void **)&ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
52722 + *(void **)&ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
52723 + *(void **)&ath9k_ops.add_chanctx = ath9k_add_chanctx;
52724 + *(void **)&ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
52725 + *(void **)&ath9k_ops.change_chanctx = ath9k_change_chanctx;
52726 + *(void **)&ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
52727 + *(void **)&ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
52728 + *(void **)&ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
52729 + pax_close_kernel();
52730 }
52731
52732 #endif
52733 diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c
52734 index 058a9f2..d5cb1ba 100644
52735 --- a/drivers/net/wireless/b43/phy_lp.c
52736 +++ b/drivers/net/wireless/b43/phy_lp.c
52737 @@ -2502,7 +2502,7 @@ static int lpphy_b2063_tune(struct b43_wldev *dev,
52738 {
52739 struct ssb_bus *bus = dev->dev->sdev->bus;
52740
52741 - static const struct b206x_channel *chandata = NULL;
52742 + const struct b206x_channel *chandata = NULL;
52743 u32 crystal_freq = bus->chipco.pmu.crystalfreq * 1000;
52744 u32 freqref, vco_freq, val1, val2, val3, timeout, timeoutref, count;
52745 u16 old_comm15, scale;
52746 diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
52747 index 7f4cb69..16c0825 100644
52748 --- a/drivers/net/wireless/iwlegacy/3945-mac.c
52749 +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
52750 @@ -3633,7 +3633,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
52751 */
52752 if (il3945_mod_params.disable_hw_scan) {
52753 D_INFO("Disabling hw_scan\n");
52754 - il3945_mac_ops.hw_scan = NULL;
52755 + pax_open_kernel();
52756 + *(void **)&il3945_mac_ops.hw_scan = NULL;
52757 + pax_close_kernel();
52758 }
52759
52760 D_INFO("*** LOAD DRIVER ***\n");
52761 diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52762 index 0ffb6ff..c0b7f0e 100644
52763 --- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52764 +++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52765 @@ -188,7 +188,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
52766 {
52767 struct iwl_priv *priv = file->private_data;
52768 char buf[64];
52769 - int buf_size;
52770 + size_t buf_size;
52771 u32 offset, len;
52772
52773 memset(buf, 0, sizeof(buf));
52774 @@ -458,7 +458,7 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file,
52775 struct iwl_priv *priv = file->private_data;
52776
52777 char buf[8];
52778 - int buf_size;
52779 + size_t buf_size;
52780 u32 reset_flag;
52781
52782 memset(buf, 0, sizeof(buf));
52783 @@ -539,7 +539,7 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file,
52784 {
52785 struct iwl_priv *priv = file->private_data;
52786 char buf[8];
52787 - int buf_size;
52788 + size_t buf_size;
52789 int ht40;
52790
52791 memset(buf, 0, sizeof(buf));
52792 @@ -591,7 +591,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
52793 {
52794 struct iwl_priv *priv = file->private_data;
52795 char buf[8];
52796 - int buf_size;
52797 + size_t buf_size;
52798 int value;
52799
52800 memset(buf, 0, sizeof(buf));
52801 @@ -683,10 +683,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
52802 DEBUGFS_READ_WRITE_FILE_OPS(sleep_level_override);
52803 DEBUGFS_READ_FILE_OPS(current_sleep_command);
52804
52805 -static const char *fmt_value = " %-30s %10u\n";
52806 -static const char *fmt_hex = " %-30s 0x%02X\n";
52807 -static const char *fmt_table = " %-30s %10u %10u %10u %10u\n";
52808 -static const char *fmt_header =
52809 +static const char fmt_value[] = " %-30s %10u\n";
52810 +static const char fmt_hex[] = " %-30s 0x%02X\n";
52811 +static const char fmt_table[] = " %-30s %10u %10u %10u %10u\n";
52812 +static const char fmt_header[] =
52813 "%-32s current cumulative delta max\n";
52814
52815 static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
52816 @@ -1856,7 +1856,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
52817 {
52818 struct iwl_priv *priv = file->private_data;
52819 char buf[8];
52820 - int buf_size;
52821 + size_t buf_size;
52822 int clear;
52823
52824 memset(buf, 0, sizeof(buf));
52825 @@ -1901,7 +1901,7 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
52826 {
52827 struct iwl_priv *priv = file->private_data;
52828 char buf[8];
52829 - int buf_size;
52830 + size_t buf_size;
52831 int trace;
52832
52833 memset(buf, 0, sizeof(buf));
52834 @@ -1972,7 +1972,7 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file,
52835 {
52836 struct iwl_priv *priv = file->private_data;
52837 char buf[8];
52838 - int buf_size;
52839 + size_t buf_size;
52840 int missed;
52841
52842 memset(buf, 0, sizeof(buf));
52843 @@ -2013,7 +2013,7 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
52844
52845 struct iwl_priv *priv = file->private_data;
52846 char buf[8];
52847 - int buf_size;
52848 + size_t buf_size;
52849 int plcp;
52850
52851 memset(buf, 0, sizeof(buf));
52852 @@ -2073,7 +2073,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
52853
52854 struct iwl_priv *priv = file->private_data;
52855 char buf[8];
52856 - int buf_size;
52857 + size_t buf_size;
52858 int flush;
52859
52860 memset(buf, 0, sizeof(buf));
52861 @@ -2163,7 +2163,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file,
52862
52863 struct iwl_priv *priv = file->private_data;
52864 char buf[8];
52865 - int buf_size;
52866 + size_t buf_size;
52867 int rts;
52868
52869 if (!priv->cfg->ht_params)
52870 @@ -2204,7 +2204,7 @@ static ssize_t iwl_dbgfs_echo_test_write(struct file *file,
52871 {
52872 struct iwl_priv *priv = file->private_data;
52873 char buf[8];
52874 - int buf_size;
52875 + size_t buf_size;
52876
52877 memset(buf, 0, sizeof(buf));
52878 buf_size = min(count, sizeof(buf) - 1);
52879 @@ -2238,7 +2238,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
52880 struct iwl_priv *priv = file->private_data;
52881 u32 event_log_flag;
52882 char buf[8];
52883 - int buf_size;
52884 + size_t buf_size;
52885
52886 /* check that the interface is up */
52887 if (!iwl_is_ready(priv))
52888 @@ -2292,7 +2292,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
52889 struct iwl_priv *priv = file->private_data;
52890 char buf[8];
52891 u32 calib_disabled;
52892 - int buf_size;
52893 + size_t buf_size;
52894
52895 memset(buf, 0, sizeof(buf));
52896 buf_size = min(count, sizeof(buf) - 1);
52897 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
52898 index 9e144e7..2f5511a 100644
52899 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
52900 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
52901 @@ -1950,7 +1950,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
52902 struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
52903
52904 char buf[8];
52905 - int buf_size;
52906 + size_t buf_size;
52907 u32 reset_flag;
52908
52909 memset(buf, 0, sizeof(buf));
52910 @@ -1971,7 +1971,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
52911 {
52912 struct iwl_trans *trans = file->private_data;
52913 char buf[8];
52914 - int buf_size;
52915 + size_t buf_size;
52916 int csr;
52917
52918 memset(buf, 0, sizeof(buf));
52919 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
52920 index 99e873d..0d9aab2 100644
52921 --- a/drivers/net/wireless/mac80211_hwsim.c
52922 +++ b/drivers/net/wireless/mac80211_hwsim.c
52923 @@ -3148,20 +3148,20 @@ static int __init init_mac80211_hwsim(void)
52924 if (channels < 1)
52925 return -EINVAL;
52926
52927 - mac80211_hwsim_mchan_ops = mac80211_hwsim_ops;
52928 - mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
52929 - mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
52930 - mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
52931 - mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
52932 - mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
52933 - mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
52934 - mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
52935 - mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
52936 - mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
52937 - mac80211_hwsim_mchan_ops.assign_vif_chanctx =
52938 - mac80211_hwsim_assign_vif_chanctx;
52939 - mac80211_hwsim_mchan_ops.unassign_vif_chanctx =
52940 - mac80211_hwsim_unassign_vif_chanctx;
52941 + pax_open_kernel();
52942 + memcpy((void *)&mac80211_hwsim_mchan_ops, &mac80211_hwsim_ops, sizeof mac80211_hwsim_mchan_ops);
52943 + *(void **)&mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
52944 + *(void **)&mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
52945 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
52946 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
52947 + *(void **)&mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
52948 + *(void **)&mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
52949 + *(void **)&mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
52950 + *(void **)&mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
52951 + *(void **)&mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
52952 + *(void **)&mac80211_hwsim_mchan_ops.assign_vif_chanctx = mac80211_hwsim_assign_vif_chanctx;
52953 + *(void **)&mac80211_hwsim_mchan_ops.unassign_vif_chanctx = mac80211_hwsim_unassign_vif_chanctx;
52954 + pax_close_kernel();
52955
52956 spin_lock_init(&hwsim_radio_lock);
52957 INIT_LIST_HEAD(&hwsim_radios);
52958 diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
52959 index 71a825c..ce7d6c3 100644
52960 --- a/drivers/net/wireless/rndis_wlan.c
52961 +++ b/drivers/net/wireless/rndis_wlan.c
52962 @@ -1236,7 +1236,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
52963
52964 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
52965
52966 - if (rts_threshold < 0 || rts_threshold > 2347)
52967 + if (rts_threshold > 2347)
52968 rts_threshold = 2347;
52969
52970 tmp = cpu_to_le32(rts_threshold);
52971 diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
52972 index 9bb398b..b0cc047 100644
52973 --- a/drivers/net/wireless/rt2x00/rt2x00.h
52974 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
52975 @@ -375,7 +375,7 @@ struct rt2x00_intf {
52976 * for hardware which doesn't support hardware
52977 * sequence counting.
52978 */
52979 - atomic_t seqno;
52980 + atomic_unchecked_t seqno;
52981 };
52982
52983 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
52984 diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
52985 index 68b620b..92ecd9e 100644
52986 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
52987 +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
52988 @@ -224,9 +224,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
52989 * sequence counter given by mac80211.
52990 */
52991 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
52992 - seqno = atomic_add_return(0x10, &intf->seqno);
52993 + seqno = atomic_add_return_unchecked(0x10, &intf->seqno);
52994 else
52995 - seqno = atomic_read(&intf->seqno);
52996 + seqno = atomic_read_unchecked(&intf->seqno);
52997
52998 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
52999 hdr->seq_ctrl |= cpu_to_le16(seqno);
53000 diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
53001 index b661f896..ddf7d2b 100644
53002 --- a/drivers/net/wireless/ti/wl1251/sdio.c
53003 +++ b/drivers/net/wireless/ti/wl1251/sdio.c
53004 @@ -282,13 +282,17 @@ static int wl1251_sdio_probe(struct sdio_func *func,
53005
53006 irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
53007
53008 - wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
53009 - wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
53010 + pax_open_kernel();
53011 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
53012 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
53013 + pax_close_kernel();
53014
53015 wl1251_info("using dedicated interrupt line");
53016 } else {
53017 - wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
53018 - wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
53019 + pax_open_kernel();
53020 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
53021 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
53022 + pax_close_kernel();
53023
53024 wl1251_info("using SDIO interrupt");
53025 }
53026 diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
53027 index af0fe2e..d04986b 100644
53028 --- a/drivers/net/wireless/ti/wl12xx/main.c
53029 +++ b/drivers/net/wireless/ti/wl12xx/main.c
53030 @@ -655,7 +655,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
53031 sizeof(wl->conf.mem));
53032
53033 /* read data preparation is only needed by wl127x */
53034 - wl->ops->prepare_read = wl127x_prepare_read;
53035 + pax_open_kernel();
53036 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
53037 + pax_close_kernel();
53038
53039 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
53040 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
53041 @@ -680,7 +682,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
53042 sizeof(wl->conf.mem));
53043
53044 /* read data preparation is only needed by wl127x */
53045 - wl->ops->prepare_read = wl127x_prepare_read;
53046 + pax_open_kernel();
53047 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
53048 + pax_close_kernel();
53049
53050 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
53051 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
53052 diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
53053 index 49aca2c..3b9c10c 100644
53054 --- a/drivers/net/wireless/ti/wl18xx/main.c
53055 +++ b/drivers/net/wireless/ti/wl18xx/main.c
53056 @@ -1952,8 +1952,10 @@ static int wl18xx_setup(struct wl1271 *wl)
53057 }
53058
53059 if (!checksum_param) {
53060 - wl18xx_ops.set_rx_csum = NULL;
53061 - wl18xx_ops.init_vif = NULL;
53062 + pax_open_kernel();
53063 + *(void **)&wl18xx_ops.set_rx_csum = NULL;
53064 + *(void **)&wl18xx_ops.init_vif = NULL;
53065 + pax_close_kernel();
53066 }
53067
53068 /* Enable 11a Band only if we have 5G antennas */
53069 diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
53070 index a912dc0..a8225ba 100644
53071 --- a/drivers/net/wireless/zd1211rw/zd_usb.c
53072 +++ b/drivers/net/wireless/zd1211rw/zd_usb.c
53073 @@ -385,7 +385,7 @@ static inline void handle_regs_int(struct urb *urb)
53074 {
53075 struct zd_usb *usb = urb->context;
53076 struct zd_usb_interrupt *intr = &usb->intr;
53077 - int len;
53078 + unsigned int len;
53079 u16 int_num;
53080
53081 ZD_ASSERT(in_interrupt());
53082 diff --git a/drivers/nfc/nfcwilink.c b/drivers/nfc/nfcwilink.c
53083 index ce2e2cf..f81e500 100644
53084 --- a/drivers/nfc/nfcwilink.c
53085 +++ b/drivers/nfc/nfcwilink.c
53086 @@ -497,7 +497,7 @@ static struct nci_ops nfcwilink_ops = {
53087
53088 static int nfcwilink_probe(struct platform_device *pdev)
53089 {
53090 - static struct nfcwilink *drv;
53091 + struct nfcwilink *drv;
53092 int rc;
53093 __u32 protocols;
53094
53095 diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
53096 index 6e82bc42..ab4145c 100644
53097 --- a/drivers/of/fdt.c
53098 +++ b/drivers/of/fdt.c
53099 @@ -1161,7 +1161,9 @@ static int __init of_fdt_raw_init(void)
53100 pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n");
53101 return 0;
53102 }
53103 - of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
53104 + pax_open_kernel();
53105 + *(size_t *)&of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
53106 + pax_close_kernel();
53107 return sysfs_create_bin_file(firmware_kobj, &of_fdt_raw_attr);
53108 }
53109 late_initcall(of_fdt_raw_init);
53110 diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c
53111 index 82f7000..d6d0447 100644
53112 --- a/drivers/oprofile/buffer_sync.c
53113 +++ b/drivers/oprofile/buffer_sync.c
53114 @@ -345,7 +345,7 @@ static void add_data(struct op_entry *entry, struct mm_struct *mm)
53115 if (cookie == NO_COOKIE)
53116 offset = pc;
53117 if (cookie == INVALID_COOKIE) {
53118 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
53119 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
53120 offset = pc;
53121 }
53122 if (cookie != last_cookie) {
53123 @@ -389,14 +389,14 @@ add_sample(struct mm_struct *mm, struct op_sample *s, int in_kernel)
53124 /* add userspace sample */
53125
53126 if (!mm) {
53127 - atomic_inc(&oprofile_stats.sample_lost_no_mm);
53128 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mm);
53129 return 0;
53130 }
53131
53132 cookie = lookup_dcookie(mm, s->eip, &offset);
53133
53134 if (cookie == INVALID_COOKIE) {
53135 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
53136 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
53137 return 0;
53138 }
53139
53140 @@ -554,7 +554,7 @@ void sync_buffer(int cpu)
53141 /* ignore backtraces if failed to add a sample */
53142 if (state == sb_bt_start) {
53143 state = sb_bt_ignore;
53144 - atomic_inc(&oprofile_stats.bt_lost_no_mapping);
53145 + atomic_inc_unchecked(&oprofile_stats.bt_lost_no_mapping);
53146 }
53147 }
53148 release_mm(mm);
53149 diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
53150 index c0cc4e7..44d4e54 100644
53151 --- a/drivers/oprofile/event_buffer.c
53152 +++ b/drivers/oprofile/event_buffer.c
53153 @@ -53,7 +53,7 @@ void add_event_entry(unsigned long value)
53154 }
53155
53156 if (buffer_pos == buffer_size) {
53157 - atomic_inc(&oprofile_stats.event_lost_overflow);
53158 + atomic_inc_unchecked(&oprofile_stats.event_lost_overflow);
53159 return;
53160 }
53161
53162 diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
53163 index ed2c3ec..deda85a 100644
53164 --- a/drivers/oprofile/oprof.c
53165 +++ b/drivers/oprofile/oprof.c
53166 @@ -110,7 +110,7 @@ static void switch_worker(struct work_struct *work)
53167 if (oprofile_ops.switch_events())
53168 return;
53169
53170 - atomic_inc(&oprofile_stats.multiplex_counter);
53171 + atomic_inc_unchecked(&oprofile_stats.multiplex_counter);
53172 start_switch_worker();
53173 }
53174
53175 diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
53176 index 59659ce..6c860a0 100644
53177 --- a/drivers/oprofile/oprofile_stats.c
53178 +++ b/drivers/oprofile/oprofile_stats.c
53179 @@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
53180 cpu_buf->sample_invalid_eip = 0;
53181 }
53182
53183 - atomic_set(&oprofile_stats.sample_lost_no_mm, 0);
53184 - atomic_set(&oprofile_stats.sample_lost_no_mapping, 0);
53185 - atomic_set(&oprofile_stats.event_lost_overflow, 0);
53186 - atomic_set(&oprofile_stats.bt_lost_no_mapping, 0);
53187 - atomic_set(&oprofile_stats.multiplex_counter, 0);
53188 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mm, 0);
53189 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mapping, 0);
53190 + atomic_set_unchecked(&oprofile_stats.event_lost_overflow, 0);
53191 + atomic_set_unchecked(&oprofile_stats.bt_lost_no_mapping, 0);
53192 + atomic_set_unchecked(&oprofile_stats.multiplex_counter, 0);
53193 }
53194
53195
53196 diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h
53197 index 1fc622b..8c48fc3 100644
53198 --- a/drivers/oprofile/oprofile_stats.h
53199 +++ b/drivers/oprofile/oprofile_stats.h
53200 @@ -13,11 +13,11 @@
53201 #include <linux/atomic.h>
53202
53203 struct oprofile_stat_struct {
53204 - atomic_t sample_lost_no_mm;
53205 - atomic_t sample_lost_no_mapping;
53206 - atomic_t bt_lost_no_mapping;
53207 - atomic_t event_lost_overflow;
53208 - atomic_t multiplex_counter;
53209 + atomic_unchecked_t sample_lost_no_mm;
53210 + atomic_unchecked_t sample_lost_no_mapping;
53211 + atomic_unchecked_t bt_lost_no_mapping;
53212 + atomic_unchecked_t event_lost_overflow;
53213 + atomic_unchecked_t multiplex_counter;
53214 };
53215
53216 extern struct oprofile_stat_struct oprofile_stats;
53217 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
53218 index dd92c5e..dfc04b5 100644
53219 --- a/drivers/oprofile/oprofilefs.c
53220 +++ b/drivers/oprofile/oprofilefs.c
53221 @@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
53222
53223 static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t count, loff_t *offset)
53224 {
53225 - atomic_t *val = file->private_data;
53226 - return oprofilefs_ulong_to_user(atomic_read(val), buf, count, offset);
53227 + atomic_unchecked_t *val = file->private_data;
53228 + return oprofilefs_ulong_to_user(atomic_read_unchecked(val), buf, count, offset);
53229 }
53230
53231
53232 @@ -189,7 +189,7 @@ static const struct file_operations atomic_ro_fops = {
53233
53234
53235 int oprofilefs_create_ro_atomic(struct dentry *root,
53236 - char const *name, atomic_t *val)
53237 + char const *name, atomic_unchecked_t *val)
53238 {
53239 return __oprofilefs_create_file(root, name,
53240 &atomic_ro_fops, 0444, val);
53241 diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c
53242 index bdef916..88c7dee 100644
53243 --- a/drivers/oprofile/timer_int.c
53244 +++ b/drivers/oprofile/timer_int.c
53245 @@ -93,7 +93,7 @@ static int oprofile_cpu_notify(struct notifier_block *self,
53246 return NOTIFY_OK;
53247 }
53248
53249 -static struct notifier_block __refdata oprofile_cpu_notifier = {
53250 +static struct notifier_block oprofile_cpu_notifier = {
53251 .notifier_call = oprofile_cpu_notify,
53252 };
53253
53254 diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
53255 index c776333..aa6b325 100644
53256 --- a/drivers/parport/procfs.c
53257 +++ b/drivers/parport/procfs.c
53258 @@ -65,7 +65,7 @@ static int do_active_device(struct ctl_table *table, int write,
53259
53260 *ppos += len;
53261
53262 - return copy_to_user(result, buffer, len) ? -EFAULT : 0;
53263 + return (len > sizeof buffer || copy_to_user(result, buffer, len)) ? -EFAULT : 0;
53264 }
53265
53266 #ifdef CONFIG_PARPORT_1284
53267 @@ -107,7 +107,7 @@ static int do_autoprobe(struct ctl_table *table, int write,
53268
53269 *ppos += len;
53270
53271 - return copy_to_user (result, buffer, len) ? -EFAULT : 0;
53272 + return (len > sizeof buffer || copy_to_user (result, buffer, len)) ? -EFAULT : 0;
53273 }
53274 #endif /* IEEE1284.3 support. */
53275
53276 diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c
53277 index ba46e58..90cfc24 100644
53278 --- a/drivers/pci/host/pci-host-generic.c
53279 +++ b/drivers/pci/host/pci-host-generic.c
53280 @@ -26,9 +26,9 @@
53281 #include <linux/platform_device.h>
53282
53283 struct gen_pci_cfg_bus_ops {
53284 + struct pci_ops ops;
53285 u32 bus_shift;
53286 - void __iomem *(*map_bus)(struct pci_bus *, unsigned int, int);
53287 -};
53288 +} __do_const;
53289
53290 struct gen_pci_cfg_windows {
53291 struct resource res;
53292 @@ -56,8 +56,12 @@ static void __iomem *gen_pci_map_cfg_bus_cam(struct pci_bus *bus,
53293 }
53294
53295 static struct gen_pci_cfg_bus_ops gen_pci_cfg_cam_bus_ops = {
53296 + .ops = {
53297 + .map_bus = gen_pci_map_cfg_bus_cam,
53298 + .read = pci_generic_config_read,
53299 + .write = pci_generic_config_write,
53300 + },
53301 .bus_shift = 16,
53302 - .map_bus = gen_pci_map_cfg_bus_cam,
53303 };
53304
53305 static void __iomem *gen_pci_map_cfg_bus_ecam(struct pci_bus *bus,
53306 @@ -72,13 +76,12 @@ static void __iomem *gen_pci_map_cfg_bus_ecam(struct pci_bus *bus,
53307 }
53308
53309 static struct gen_pci_cfg_bus_ops gen_pci_cfg_ecam_bus_ops = {
53310 + .ops = {
53311 + .map_bus = gen_pci_map_cfg_bus_ecam,
53312 + .read = pci_generic_config_read,
53313 + .write = pci_generic_config_write,
53314 + },
53315 .bus_shift = 20,
53316 - .map_bus = gen_pci_map_cfg_bus_ecam,
53317 -};
53318 -
53319 -static struct pci_ops gen_pci_ops = {
53320 - .read = pci_generic_config_read,
53321 - .write = pci_generic_config_write,
53322 };
53323
53324 static const struct of_device_id gen_pci_of_match[] = {
53325 @@ -219,7 +222,6 @@ static int gen_pci_probe(struct platform_device *pdev)
53326 .private_data = (void **)&pci,
53327 .setup = gen_pci_setup,
53328 .map_irq = of_irq_parse_and_map_pci,
53329 - .ops = &gen_pci_ops,
53330 };
53331
53332 if (!pci)
53333 @@ -241,7 +243,7 @@ static int gen_pci_probe(struct platform_device *pdev)
53334
53335 of_id = of_match_node(gen_pci_of_match, np);
53336 pci->cfg.ops = of_id->data;
53337 - gen_pci_ops.map_bus = pci->cfg.ops->map_bus;
53338 + hw.ops = &pci->cfg.ops->ops;
53339 pci->host.dev.parent = dev;
53340 INIT_LIST_HEAD(&pci->host.windows);
53341 INIT_LIST_HEAD(&pci->resources);
53342 diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
53343 index 6ca2399..68d866b 100644
53344 --- a/drivers/pci/hotplug/acpiphp_ibm.c
53345 +++ b/drivers/pci/hotplug/acpiphp_ibm.c
53346 @@ -452,7 +452,9 @@ static int __init ibm_acpiphp_init(void)
53347 goto init_cleanup;
53348 }
53349
53350 - ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
53351 + pax_open_kernel();
53352 + *(size_t *)&ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
53353 + pax_close_kernel();
53354 retval = sysfs_create_bin_file(sysdir, &ibm_apci_table_attr);
53355
53356 return retval;
53357 diff --git a/drivers/pci/hotplug/cpcihp_generic.c b/drivers/pci/hotplug/cpcihp_generic.c
53358 index 66b7bbe..26bee78 100644
53359 --- a/drivers/pci/hotplug/cpcihp_generic.c
53360 +++ b/drivers/pci/hotplug/cpcihp_generic.c
53361 @@ -73,7 +73,6 @@ static u16 port;
53362 static unsigned int enum_bit;
53363 static u8 enum_mask;
53364
53365 -static struct cpci_hp_controller_ops generic_hpc_ops;
53366 static struct cpci_hp_controller generic_hpc;
53367
53368 static int __init validate_parameters(void)
53369 @@ -139,6 +138,10 @@ static int query_enum(void)
53370 return ((value & enum_mask) == enum_mask);
53371 }
53372
53373 +static struct cpci_hp_controller_ops generic_hpc_ops = {
53374 + .query_enum = query_enum,
53375 +};
53376 +
53377 static int __init cpcihp_generic_init(void)
53378 {
53379 int status;
53380 @@ -165,7 +168,6 @@ static int __init cpcihp_generic_init(void)
53381 pci_dev_put(dev);
53382
53383 memset(&generic_hpc, 0, sizeof (struct cpci_hp_controller));
53384 - generic_hpc_ops.query_enum = query_enum;
53385 generic_hpc.ops = &generic_hpc_ops;
53386
53387 status = cpci_hp_register_controller(&generic_hpc);
53388 diff --git a/drivers/pci/hotplug/cpcihp_zt5550.c b/drivers/pci/hotplug/cpcihp_zt5550.c
53389 index 7ecf34e..effed62 100644
53390 --- a/drivers/pci/hotplug/cpcihp_zt5550.c
53391 +++ b/drivers/pci/hotplug/cpcihp_zt5550.c
53392 @@ -59,7 +59,6 @@
53393 /* local variables */
53394 static bool debug;
53395 static bool poll;
53396 -static struct cpci_hp_controller_ops zt5550_hpc_ops;
53397 static struct cpci_hp_controller zt5550_hpc;
53398
53399 /* Primary cPCI bus bridge device */
53400 @@ -204,6 +203,10 @@ static int zt5550_hc_disable_irq(void)
53401 return 0;
53402 }
53403
53404 +static struct cpci_hp_controller_ops zt5550_hpc_ops = {
53405 + .query_enum = zt5550_hc_query_enum,
53406 +};
53407 +
53408 static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
53409 {
53410 int status;
53411 @@ -215,16 +218,17 @@ static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id
53412 dbg("returned from zt5550_hc_config");
53413
53414 memset(&zt5550_hpc, 0, sizeof (struct cpci_hp_controller));
53415 - zt5550_hpc_ops.query_enum = zt5550_hc_query_enum;
53416 zt5550_hpc.ops = &zt5550_hpc_ops;
53417 if (!poll) {
53418 zt5550_hpc.irq = hc_dev->irq;
53419 zt5550_hpc.irq_flags = IRQF_SHARED;
53420 zt5550_hpc.dev_id = hc_dev;
53421
53422 - zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
53423 - zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
53424 - zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
53425 + pax_open_kernel();
53426 + *(void **)&zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
53427 + *(void **)&zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
53428 + *(void **)&zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
53429 + pax_open_kernel();
53430 } else {
53431 info("using ENUM# polling mode");
53432 }
53433 diff --git a/drivers/pci/hotplug/cpqphp_nvram.c b/drivers/pci/hotplug/cpqphp_nvram.c
53434 index 1e08ff8c..3cd145f 100644
53435 --- a/drivers/pci/hotplug/cpqphp_nvram.c
53436 +++ b/drivers/pci/hotplug/cpqphp_nvram.c
53437 @@ -425,8 +425,10 @@ static u32 store_HRT (void __iomem *rom_start)
53438
53439 void compaq_nvram_init (void __iomem *rom_start)
53440 {
53441 +#ifndef CONFIG_PAX_KERNEXEC
53442 if (rom_start)
53443 compaq_int15_entry_point = (rom_start + ROM_INT15_PHY_ADDR - ROM_PHY_ADDR);
53444 +#endif
53445
53446 dbg("int15 entry = %p\n", compaq_int15_entry_point);
53447
53448 diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
53449 index 56d8486..f26113f 100644
53450 --- a/drivers/pci/hotplug/pci_hotplug_core.c
53451 +++ b/drivers/pci/hotplug/pci_hotplug_core.c
53452 @@ -436,8 +436,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus,
53453 return -EINVAL;
53454 }
53455
53456 - slot->ops->owner = owner;
53457 - slot->ops->mod_name = mod_name;
53458 + pax_open_kernel();
53459 + *(struct module **)&slot->ops->owner = owner;
53460 + *(const char **)&slot->ops->mod_name = mod_name;
53461 + pax_close_kernel();
53462
53463 mutex_lock(&pci_hp_mutex);
53464 /*
53465 diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
53466 index 612b21a..9494a5e 100644
53467 --- a/drivers/pci/hotplug/pciehp_core.c
53468 +++ b/drivers/pci/hotplug/pciehp_core.c
53469 @@ -87,7 +87,7 @@ static int init_slot(struct controller *ctrl)
53470 struct slot *slot = ctrl->slot;
53471 struct hotplug_slot *hotplug = NULL;
53472 struct hotplug_slot_info *info = NULL;
53473 - struct hotplug_slot_ops *ops = NULL;
53474 + hotplug_slot_ops_no_const *ops = NULL;
53475 char name[SLOT_NAME_SIZE];
53476 int retval = -ENOMEM;
53477
53478 diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
53479 index f66be86..6cbcabb 100644
53480 --- a/drivers/pci/msi.c
53481 +++ b/drivers/pci/msi.c
53482 @@ -492,8 +492,8 @@ static int populate_msi_sysfs(struct pci_dev *pdev)
53483 {
53484 struct attribute **msi_attrs;
53485 struct attribute *msi_attr;
53486 - struct device_attribute *msi_dev_attr;
53487 - struct attribute_group *msi_irq_group;
53488 + device_attribute_no_const *msi_dev_attr;
53489 + attribute_group_no_const *msi_irq_group;
53490 const struct attribute_group **msi_irq_groups;
53491 struct msi_desc *entry;
53492 int ret = -ENOMEM;
53493 @@ -552,7 +552,7 @@ error_attrs:
53494 count = 0;
53495 msi_attr = msi_attrs[count];
53496 while (msi_attr) {
53497 - msi_dev_attr = container_of(msi_attr, struct device_attribute, attr);
53498 + msi_dev_attr = container_of(msi_attr, device_attribute_no_const, attr);
53499 kfree(msi_attr->name);
53500 kfree(msi_dev_attr);
53501 ++count;
53502 @@ -1236,12 +1236,14 @@ static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
53503 if (ops == NULL) {
53504 info->ops = &pci_msi_domain_ops_default;
53505 } else {
53506 + pax_open_kernel();
53507 if (ops->set_desc == NULL)
53508 - ops->set_desc = pci_msi_domain_set_desc;
53509 + *(void **)&ops->set_desc = pci_msi_domain_set_desc;
53510 if (ops->msi_check == NULL)
53511 - ops->msi_check = pci_msi_domain_check_cap;
53512 + *(void **)&ops->msi_check = pci_msi_domain_check_cap;
53513 if (ops->handle_error == NULL)
53514 - ops->handle_error = pci_msi_domain_handle_error;
53515 + *(void **)&ops->handle_error = pci_msi_domain_handle_error;
53516 + pax_close_kernel();
53517 }
53518 }
53519
53520 @@ -1250,8 +1252,11 @@ static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
53521 struct irq_chip *chip = info->chip;
53522
53523 BUG_ON(!chip);
53524 - if (!chip->irq_write_msi_msg)
53525 - chip->irq_write_msi_msg = pci_msi_domain_write_msg;
53526 + if (!chip->irq_write_msi_msg) {
53527 + pax_open_kernel();
53528 + *(void **)&chip->irq_write_msi_msg = pci_msi_domain_write_msg;
53529 + pax_close_kernel();
53530 + }
53531 }
53532
53533 /**
53534 diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
53535 index 9261868..a403263 100644
53536 --- a/drivers/pci/pci-sysfs.c
53537 +++ b/drivers/pci/pci-sysfs.c
53538 @@ -216,7 +216,10 @@ static ssize_t numa_node_store(struct device *dev,
53539 if (ret)
53540 return ret;
53541
53542 - if (node >= MAX_NUMNODES || !node_online(node))
53543 + if (node < NUMA_NO_NODE || node >= MAX_NUMNODES)
53544 + return -EINVAL;
53545 +
53546 + if (node != NUMA_NO_NODE && !node_online(node))
53547 return -EINVAL;
53548
53549 add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
53550 @@ -1140,7 +1143,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
53551 {
53552 /* allocate attribute structure, piggyback attribute name */
53553 int name_len = write_combine ? 13 : 10;
53554 - struct bin_attribute *res_attr;
53555 + bin_attribute_no_const *res_attr;
53556 int retval;
53557
53558 res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
53559 @@ -1317,7 +1320,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
53560 static int pci_create_capabilities_sysfs(struct pci_dev *dev)
53561 {
53562 int retval;
53563 - struct bin_attribute *attr;
53564 + bin_attribute_no_const *attr;
53565
53566 /* If the device has VPD, try to expose it in sysfs. */
53567 if (dev->vpd) {
53568 @@ -1364,7 +1367,7 @@ int __must_check pci_create_sysfs_dev_files(struct pci_dev *pdev)
53569 {
53570 int retval;
53571 int rom_size = 0;
53572 - struct bin_attribute *attr;
53573 + bin_attribute_no_const *attr;
53574
53575 if (!sysfs_initialized)
53576 return -EACCES;
53577 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
53578 index 4ff0ff1..e309fb0 100644
53579 --- a/drivers/pci/pci.h
53580 +++ b/drivers/pci/pci.h
53581 @@ -99,7 +99,7 @@ struct pci_vpd_ops {
53582 struct pci_vpd {
53583 unsigned int len;
53584 const struct pci_vpd_ops *ops;
53585 - struct bin_attribute *attr; /* descriptor for sysfs VPD entry */
53586 + bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */
53587 };
53588
53589 int pci_vpd_pci22_init(struct pci_dev *dev);
53590 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
53591 index 317e355..21f7b91 100644
53592 --- a/drivers/pci/pcie/aspm.c
53593 +++ b/drivers/pci/pcie/aspm.c
53594 @@ -27,9 +27,9 @@
53595 #define MODULE_PARAM_PREFIX "pcie_aspm."
53596
53597 /* Note: those are not register definitions */
53598 -#define ASPM_STATE_L0S_UP (1) /* Upstream direction L0s state */
53599 -#define ASPM_STATE_L0S_DW (2) /* Downstream direction L0s state */
53600 -#define ASPM_STATE_L1 (4) /* L1 state */
53601 +#define ASPM_STATE_L0S_UP (1U) /* Upstream direction L0s state */
53602 +#define ASPM_STATE_L0S_DW (2U) /* Downstream direction L0s state */
53603 +#define ASPM_STATE_L1 (4U) /* L1 state */
53604 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
53605 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
53606
53607 diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
53608 index be35da2..ec16cdb 100644
53609 --- a/drivers/pci/pcie/portdrv_pci.c
53610 +++ b/drivers/pci/pcie/portdrv_pci.c
53611 @@ -324,7 +324,7 @@ static int __init dmi_pcie_pme_disable_msi(const struct dmi_system_id *d)
53612 return 0;
53613 }
53614
53615 -static struct dmi_system_id __initdata pcie_portdrv_dmi_table[] = {
53616 +static const struct dmi_system_id __initconst pcie_portdrv_dmi_table[] = {
53617 /*
53618 * Boxes that should not use MSI for PCIe PME signaling.
53619 */
53620 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
53621 index f6ae0d0..af897bc 100644
53622 --- a/drivers/pci/probe.c
53623 +++ b/drivers/pci/probe.c
53624 @@ -176,7 +176,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
53625 u16 orig_cmd;
53626 struct pci_bus_region region, inverted_region;
53627
53628 - mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
53629 + mask = type ? (u32)PCI_ROM_ADDRESS_MASK : ~0;
53630
53631 /* No printks while decoding is disabled! */
53632 if (!dev->mmio_always_on) {
53633 diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
53634 index 3f155e7..0f4b1f0 100644
53635 --- a/drivers/pci/proc.c
53636 +++ b/drivers/pci/proc.c
53637 @@ -434,7 +434,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
53638 static int __init pci_proc_init(void)
53639 {
53640 struct pci_dev *dev = NULL;
53641 +
53642 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
53643 +#ifdef CONFIG_GRKERNSEC_PROC_USER
53644 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR, NULL);
53645 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
53646 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
53647 +#endif
53648 +#else
53649 proc_bus_pci_dir = proc_mkdir("bus/pci", NULL);
53650 +#endif
53651 proc_create("devices", 0, proc_bus_pci_dir,
53652 &proc_bus_pci_dev_operations);
53653 proc_initialized = 1;
53654 diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
53655 index 2deb130..8194e13 100644
53656 --- a/drivers/pinctrl/pinctrl-at91.c
53657 +++ b/drivers/pinctrl/pinctrl-at91.c
53658 @@ -24,6 +24,7 @@
53659 #include <linux/pinctrl/pinmux.h>
53660 /* Since we request GPIOs from ourself */
53661 #include <linux/pinctrl/consumer.h>
53662 +#include <asm/pgtable.h>
53663
53664 #include "pinctrl-at91.h"
53665 #include "core.h"
53666 @@ -1656,7 +1657,9 @@ static int at91_gpio_of_irq_setup(struct platform_device *pdev,
53667 at91_gpio->pioc_hwirq = irqd_to_hwirq(d);
53668
53669 /* Setup proper .irq_set_type function */
53670 - gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
53671 + pax_open_kernel();
53672 + *(void **)&gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
53673 + pax_close_kernel();
53674
53675 /* Disable irqs of this PIO controller */
53676 writel_relaxed(~0, at91_gpio->regbase + PIO_IDR);
53677 diff --git a/drivers/platform/chrome/chromeos_pstore.c b/drivers/platform/chrome/chromeos_pstore.c
53678 index 3474920..acc9581 100644
53679 --- a/drivers/platform/chrome/chromeos_pstore.c
53680 +++ b/drivers/platform/chrome/chromeos_pstore.c
53681 @@ -13,7 +13,7 @@
53682 #include <linux/platform_device.h>
53683 #include <linux/pstore_ram.h>
53684
53685 -static struct dmi_system_id chromeos_pstore_dmi_table[] __initdata = {
53686 +static const struct dmi_system_id chromeos_pstore_dmi_table[] __initconst = {
53687 {
53688 /*
53689 * Today all Chromebooks/boxes ship with Google_* as version and
53690 diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
53691 index 1e1e594..8fe59c5 100644
53692 --- a/drivers/platform/x86/alienware-wmi.c
53693 +++ b/drivers/platform/x86/alienware-wmi.c
53694 @@ -150,7 +150,7 @@ struct wmax_led_args {
53695 } __packed;
53696
53697 static struct platform_device *platform_device;
53698 -static struct device_attribute *zone_dev_attrs;
53699 +static device_attribute_no_const *zone_dev_attrs;
53700 static struct attribute **zone_attrs;
53701 static struct platform_zone *zone_data;
53702
53703 @@ -160,7 +160,7 @@ static struct platform_driver platform_driver = {
53704 }
53705 };
53706
53707 -static struct attribute_group zone_attribute_group = {
53708 +static attribute_group_no_const zone_attribute_group = {
53709 .name = "rgb_zones",
53710 };
53711
53712 diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
53713 index efbc3f0..18ae682 100644
53714 --- a/drivers/platform/x86/asus-wmi.c
53715 +++ b/drivers/platform/x86/asus-wmi.c
53716 @@ -1868,6 +1868,10 @@ static int show_dsts(struct seq_file *m, void *data)
53717 int err;
53718 u32 retval = -1;
53719
53720 +#ifdef CONFIG_GRKERNSEC_KMEM
53721 + return -EPERM;
53722 +#endif
53723 +
53724 err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
53725
53726 if (err < 0)
53727 @@ -1884,6 +1888,10 @@ static int show_devs(struct seq_file *m, void *data)
53728 int err;
53729 u32 retval = -1;
53730
53731 +#ifdef CONFIG_GRKERNSEC_KMEM
53732 + return -EPERM;
53733 +#endif
53734 +
53735 err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
53736 &retval);
53737
53738 @@ -1908,6 +1916,10 @@ static int show_call(struct seq_file *m, void *data)
53739 union acpi_object *obj;
53740 acpi_status status;
53741
53742 +#ifdef CONFIG_GRKERNSEC_KMEM
53743 + return -EPERM;
53744 +#endif
53745 +
53746 status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
53747 1, asus->debug.method_id,
53748 &input, &output);
53749 diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c
53750 index f2706d2..850edfa4 100644
53751 --- a/drivers/platform/x86/compal-laptop.c
53752 +++ b/drivers/platform/x86/compal-laptop.c
53753 @@ -765,7 +765,7 @@ static int dmi_check_cb_extra(const struct dmi_system_id *id)
53754 return 1;
53755 }
53756
53757 -static struct dmi_system_id __initdata compal_dmi_table[] = {
53758 +static const struct dmi_system_id __initconst compal_dmi_table[] = {
53759 {
53760 .ident = "FL90/IFL90",
53761 .matches = {
53762 diff --git a/drivers/platform/x86/hdaps.c b/drivers/platform/x86/hdaps.c
53763 index 458e6c9..089aee7 100644
53764 --- a/drivers/platform/x86/hdaps.c
53765 +++ b/drivers/platform/x86/hdaps.c
53766 @@ -514,7 +514,7 @@ static int __init hdaps_dmi_match_invert(const struct dmi_system_id *id)
53767 "ThinkPad T42p", so the order of the entries matters.
53768 If your ThinkPad is not recognized, please update to latest
53769 BIOS. This is especially the case for some R52 ThinkPads. */
53770 -static struct dmi_system_id __initdata hdaps_whitelist[] = {
53771 +static const struct dmi_system_id __initconst hdaps_whitelist[] = {
53772 HDAPS_DMI_MATCH_INVERT("IBM", "ThinkPad R50p", HDAPS_BOTH_AXES),
53773 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R50"),
53774 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R51"),
53775 diff --git a/drivers/platform/x86/ibm_rtl.c b/drivers/platform/x86/ibm_rtl.c
53776 index 97c2be1..2ee50ce 100644
53777 --- a/drivers/platform/x86/ibm_rtl.c
53778 +++ b/drivers/platform/x86/ibm_rtl.c
53779 @@ -227,7 +227,7 @@ static void rtl_teardown_sysfs(void) {
53780 }
53781
53782
53783 -static struct dmi_system_id __initdata ibm_rtl_dmi_table[] = {
53784 +static const struct dmi_system_id __initconst ibm_rtl_dmi_table[] = {
53785 { \
53786 .matches = { \
53787 DMI_MATCH(DMI_SYS_VENDOR, "IBM"), \
53788 diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
53789 index 6aa33c4..cfb5425 100644
53790 --- a/drivers/platform/x86/intel_oaktrail.c
53791 +++ b/drivers/platform/x86/intel_oaktrail.c
53792 @@ -299,7 +299,7 @@ static int dmi_check_cb(const struct dmi_system_id *id)
53793 return 0;
53794 }
53795
53796 -static struct dmi_system_id __initdata oaktrail_dmi_table[] = {
53797 +static const struct dmi_system_id __initconst oaktrail_dmi_table[] = {
53798 {
53799 .ident = "OakTrail platform",
53800 .matches = {
53801 diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
53802 index 4231770..10a6caf 100644
53803 --- a/drivers/platform/x86/msi-laptop.c
53804 +++ b/drivers/platform/x86/msi-laptop.c
53805 @@ -605,7 +605,7 @@ static int dmi_check_cb(const struct dmi_system_id *dmi)
53806 return 1;
53807 }
53808
53809 -static struct dmi_system_id __initdata msi_dmi_table[] = {
53810 +static const struct dmi_system_id __initconst msi_dmi_table[] = {
53811 {
53812 .ident = "MSI S270",
53813 .matches = {
53814 @@ -1000,12 +1000,14 @@ static int __init load_scm_model_init(struct platform_device *sdev)
53815
53816 if (!quirks->ec_read_only) {
53817 /* allow userland write sysfs file */
53818 - dev_attr_bluetooth.store = store_bluetooth;
53819 - dev_attr_wlan.store = store_wlan;
53820 - dev_attr_threeg.store = store_threeg;
53821 - dev_attr_bluetooth.attr.mode |= S_IWUSR;
53822 - dev_attr_wlan.attr.mode |= S_IWUSR;
53823 - dev_attr_threeg.attr.mode |= S_IWUSR;
53824 + pax_open_kernel();
53825 + *(void **)&dev_attr_bluetooth.store = store_bluetooth;
53826 + *(void **)&dev_attr_wlan.store = store_wlan;
53827 + *(void **)&dev_attr_threeg.store = store_threeg;
53828 + *(umode_t *)&dev_attr_bluetooth.attr.mode |= S_IWUSR;
53829 + *(umode_t *)&dev_attr_wlan.attr.mode |= S_IWUSR;
53830 + *(umode_t *)&dev_attr_threeg.attr.mode |= S_IWUSR;
53831 + pax_close_kernel();
53832 }
53833
53834 /* disable hardware control by fn key */
53835 diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
53836 index 978e6d6..1f0b37d 100644
53837 --- a/drivers/platform/x86/msi-wmi.c
53838 +++ b/drivers/platform/x86/msi-wmi.c
53839 @@ -184,7 +184,7 @@ static const struct backlight_ops msi_backlight_ops = {
53840 static void msi_wmi_notify(u32 value, void *context)
53841 {
53842 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
53843 - static struct key_entry *key;
53844 + struct key_entry *key;
53845 union acpi_object *obj;
53846 acpi_status status;
53847
53848 diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
53849 index 8c146e2..356c62e 100644
53850 --- a/drivers/platform/x86/samsung-laptop.c
53851 +++ b/drivers/platform/x86/samsung-laptop.c
53852 @@ -1567,7 +1567,7 @@ static int __init samsung_dmi_matched(const struct dmi_system_id *d)
53853 return 0;
53854 }
53855
53856 -static struct dmi_system_id __initdata samsung_dmi_table[] = {
53857 +static const struct dmi_system_id __initconst samsung_dmi_table[] = {
53858 {
53859 .matches = {
53860 DMI_MATCH(DMI_SYS_VENDOR,
53861 diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
53862 index e6aac72..e11ff24 100644
53863 --- a/drivers/platform/x86/samsung-q10.c
53864 +++ b/drivers/platform/x86/samsung-q10.c
53865 @@ -95,7 +95,7 @@ static int __init dmi_check_callback(const struct dmi_system_id *id)
53866 return 1;
53867 }
53868
53869 -static struct dmi_system_id __initdata samsungq10_dmi_table[] = {
53870 +static const struct dmi_system_id __initconst samsungq10_dmi_table[] = {
53871 {
53872 .ident = "Samsung Q10",
53873 .matches = {
53874 diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
53875 index aeb80d1..3eb376b 100644
53876 --- a/drivers/platform/x86/sony-laptop.c
53877 +++ b/drivers/platform/x86/sony-laptop.c
53878 @@ -2527,7 +2527,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
53879 }
53880
53881 /* High speed charging function */
53882 -static struct device_attribute *hsc_handle;
53883 +static device_attribute_no_const *hsc_handle;
53884
53885 static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
53886 struct device_attribute *attr,
53887 @@ -2601,7 +2601,7 @@ static void sony_nc_highspeed_charging_cleanup(struct platform_device *pd)
53888 }
53889
53890 /* low battery function */
53891 -static struct device_attribute *lowbatt_handle;
53892 +static device_attribute_no_const *lowbatt_handle;
53893
53894 static ssize_t sony_nc_lowbatt_store(struct device *dev,
53895 struct device_attribute *attr,
53896 @@ -2667,7 +2667,7 @@ static void sony_nc_lowbatt_cleanup(struct platform_device *pd)
53897 }
53898
53899 /* fan speed function */
53900 -static struct device_attribute *fan_handle, *hsf_handle;
53901 +static device_attribute_no_const *fan_handle, *hsf_handle;
53902
53903 static ssize_t sony_nc_hsfan_store(struct device *dev,
53904 struct device_attribute *attr,
53905 @@ -2774,7 +2774,7 @@ static void sony_nc_fanspeed_cleanup(struct platform_device *pd)
53906 }
53907
53908 /* USB charge function */
53909 -static struct device_attribute *uc_handle;
53910 +static device_attribute_no_const *uc_handle;
53911
53912 static ssize_t sony_nc_usb_charge_store(struct device *dev,
53913 struct device_attribute *attr,
53914 @@ -2848,7 +2848,7 @@ static void sony_nc_usb_charge_cleanup(struct platform_device *pd)
53915 }
53916
53917 /* Panel ID function */
53918 -static struct device_attribute *panel_handle;
53919 +static device_attribute_no_const *panel_handle;
53920
53921 static ssize_t sony_nc_panelid_show(struct device *dev,
53922 struct device_attribute *attr, char *buffer)
53923 @@ -2895,7 +2895,7 @@ static void sony_nc_panelid_cleanup(struct platform_device *pd)
53924 }
53925
53926 /* smart connect function */
53927 -static struct device_attribute *sc_handle;
53928 +static device_attribute_no_const *sc_handle;
53929
53930 static ssize_t sony_nc_smart_conn_store(struct device *dev,
53931 struct device_attribute *attr,
53932 @@ -4851,7 +4851,7 @@ static struct acpi_driver sony_pic_driver = {
53933 .drv.pm = &sony_pic_pm,
53934 };
53935
53936 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
53937 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
53938 {
53939 .ident = "Sony Vaio",
53940 .matches = {
53941 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
53942 index 33e488c..417aaea 100644
53943 --- a/drivers/platform/x86/thinkpad_acpi.c
53944 +++ b/drivers/platform/x86/thinkpad_acpi.c
53945 @@ -2460,10 +2460,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
53946 && !tp_features.bright_unkfw)
53947 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
53948 }
53949 +}
53950
53951 #undef TPACPI_COMPARE_KEY
53952 #undef TPACPI_MAY_SEND_KEY
53953 -}
53954
53955 /*
53956 * Polling driver
53957 diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c
53958 index 438d4c7..ca8a2fb 100644
53959 --- a/drivers/pnp/pnpbios/bioscalls.c
53960 +++ b/drivers/pnp/pnpbios/bioscalls.c
53961 @@ -59,7 +59,7 @@ do { \
53962 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
53963 } while(0)
53964
53965 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
53966 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
53967 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
53968
53969 /*
53970 @@ -96,7 +96,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
53971
53972 cpu = get_cpu();
53973 save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8];
53974 +
53975 + pax_open_kernel();
53976 get_cpu_gdt_table(cpu)[0x40 / 8] = bad_bios_desc;
53977 + pax_close_kernel();
53978
53979 /* On some boxes IRQ's during PnP BIOS calls are deadly. */
53980 spin_lock_irqsave(&pnp_bios_lock, flags);
53981 @@ -134,7 +137,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
53982 :"memory");
53983 spin_unlock_irqrestore(&pnp_bios_lock, flags);
53984
53985 + pax_open_kernel();
53986 get_cpu_gdt_table(cpu)[0x40 / 8] = save_desc_40;
53987 + pax_close_kernel();
53988 +
53989 put_cpu();
53990
53991 /* If we get here and this is set then the PnP BIOS faulted on us. */
53992 @@ -468,7 +474,7 @@ int pnp_bios_read_escd(char *data, u32 nvram_base)
53993 return status;
53994 }
53995
53996 -void pnpbios_calls_init(union pnp_bios_install_struct *header)
53997 +void __init pnpbios_calls_init(union pnp_bios_install_struct *header)
53998 {
53999 int i;
54000
54001 @@ -476,6 +482,8 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
54002 pnp_bios_callpoint.offset = header->fields.pm16offset;
54003 pnp_bios_callpoint.segment = PNP_CS16;
54004
54005 + pax_open_kernel();
54006 +
54007 for_each_possible_cpu(i) {
54008 struct desc_struct *gdt = get_cpu_gdt_table(i);
54009 if (!gdt)
54010 @@ -487,4 +495,6 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
54011 set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS],
54012 (unsigned long)__va(header->fields.pm16dseg));
54013 }
54014 +
54015 + pax_close_kernel();
54016 }
54017 diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
54018 index facd43b..b291260 100644
54019 --- a/drivers/pnp/pnpbios/core.c
54020 +++ b/drivers/pnp/pnpbios/core.c
54021 @@ -494,7 +494,7 @@ static int __init exploding_pnp_bios(const struct dmi_system_id *d)
54022 return 0;
54023 }
54024
54025 -static struct dmi_system_id pnpbios_dmi_table[] __initdata = {
54026 +static const struct dmi_system_id pnpbios_dmi_table[] __initconst = {
54027 { /* PnPBIOS GPF on boot */
54028 .callback = exploding_pnp_bios,
54029 .ident = "Higraded P14H",
54030 diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
54031 index dfe1ee8..67e820c 100644
54032 --- a/drivers/power/pda_power.c
54033 +++ b/drivers/power/pda_power.c
54034 @@ -38,7 +38,11 @@ static struct power_supply *pda_psy_ac, *pda_psy_usb;
54035
54036 #if IS_ENABLED(CONFIG_USB_PHY)
54037 static struct usb_phy *transceiver;
54038 -static struct notifier_block otg_nb;
54039 +static int otg_handle_notification(struct notifier_block *nb,
54040 + unsigned long event, void *unused);
54041 +static struct notifier_block otg_nb = {
54042 + .notifier_call = otg_handle_notification
54043 +};
54044 #endif
54045
54046 static struct regulator *ac_draw;
54047 @@ -373,7 +377,6 @@ static int pda_power_probe(struct platform_device *pdev)
54048
54049 #if IS_ENABLED(CONFIG_USB_PHY)
54050 if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) {
54051 - otg_nb.notifier_call = otg_handle_notification;
54052 ret = usb_register_notifier(transceiver, &otg_nb);
54053 if (ret) {
54054 dev_err(dev, "failure to register otg notifier\n");
54055 diff --git a/drivers/power/power_supply.h b/drivers/power/power_supply.h
54056 index cc439fd..8fa30df 100644
54057 --- a/drivers/power/power_supply.h
54058 +++ b/drivers/power/power_supply.h
54059 @@ -16,12 +16,12 @@ struct power_supply;
54060
54061 #ifdef CONFIG_SYSFS
54062
54063 -extern void power_supply_init_attrs(struct device_type *dev_type);
54064 +extern void power_supply_init_attrs(void);
54065 extern int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env);
54066
54067 #else
54068
54069 -static inline void power_supply_init_attrs(struct device_type *dev_type) {}
54070 +static inline void power_supply_init_attrs(void) {}
54071 #define power_supply_uevent NULL
54072
54073 #endif /* CONFIG_SYSFS */
54074 diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
54075 index 869284c..38a812b 100644
54076 --- a/drivers/power/power_supply_core.c
54077 +++ b/drivers/power/power_supply_core.c
54078 @@ -28,7 +28,10 @@ EXPORT_SYMBOL_GPL(power_supply_class);
54079 ATOMIC_NOTIFIER_HEAD(power_supply_notifier);
54080 EXPORT_SYMBOL_GPL(power_supply_notifier);
54081
54082 -static struct device_type power_supply_dev_type;
54083 +extern const struct attribute_group *power_supply_attr_groups[];
54084 +static struct device_type power_supply_dev_type = {
54085 + .groups = power_supply_attr_groups,
54086 +};
54087
54088 #define POWER_SUPPLY_DEFERRED_REGISTER_TIME msecs_to_jiffies(10)
54089
54090 @@ -960,7 +963,7 @@ static int __init power_supply_class_init(void)
54091 return PTR_ERR(power_supply_class);
54092
54093 power_supply_class->dev_uevent = power_supply_uevent;
54094 - power_supply_init_attrs(&power_supply_dev_type);
54095 + power_supply_init_attrs();
54096
54097 return 0;
54098 }
54099 diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
54100 index ed2d7fd..266b28f 100644
54101 --- a/drivers/power/power_supply_sysfs.c
54102 +++ b/drivers/power/power_supply_sysfs.c
54103 @@ -238,17 +238,15 @@ static struct attribute_group power_supply_attr_group = {
54104 .is_visible = power_supply_attr_is_visible,
54105 };
54106
54107 -static const struct attribute_group *power_supply_attr_groups[] = {
54108 +const struct attribute_group *power_supply_attr_groups[] = {
54109 &power_supply_attr_group,
54110 NULL,
54111 };
54112
54113 -void power_supply_init_attrs(struct device_type *dev_type)
54114 +void power_supply_init_attrs(void)
54115 {
54116 int i;
54117
54118 - dev_type->groups = power_supply_attr_groups;
54119 -
54120 for (i = 0; i < ARRAY_SIZE(power_supply_attrs); i++)
54121 __power_supply_attrs[i] = &power_supply_attrs[i].attr;
54122 }
54123 diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
54124 index 36dc52f..e2e8a4b 100644
54125 --- a/drivers/power/reset/at91-reset.c
54126 +++ b/drivers/power/reset/at91-reset.c
54127 @@ -16,6 +16,7 @@
54128 #include <linux/of_address.h>
54129 #include <linux/platform_device.h>
54130 #include <linux/reboot.h>
54131 +#include <asm/pgtable.h>
54132
54133 #include <soc/at91/at91sam9_ddrsdr.h>
54134 #include <soc/at91/at91sam9_sdramc.h>
54135 @@ -191,7 +192,9 @@ static int at91_reset_of_probe(struct platform_device *pdev)
54136 }
54137
54138 match = of_match_node(at91_reset_of_match, pdev->dev.of_node);
54139 - at91_restart_nb.notifier_call = match->data;
54140 + pax_open_kernel();
54141 + *(void **)&at91_restart_nb.notifier_call = match->data;
54142 + pax_close_kernel();
54143 return register_restart_handler(&at91_restart_nb);
54144 }
54145
54146 @@ -219,9 +222,11 @@ static int at91_reset_platform_probe(struct platform_device *pdev)
54147 }
54148
54149 match = platform_get_device_id(pdev);
54150 - at91_restart_nb.notifier_call =
54151 + pax_open_kernel();
54152 + *(void **)&at91_restart_nb.notifier_call =
54153 (int (*)(struct notifier_block *,
54154 unsigned long, void *)) match->driver_data;
54155 + pax_close_kernel();
54156
54157 return register_restart_handler(&at91_restart_nb);
54158 }
54159 diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
54160 index 84419af..268ede8 100644
54161 --- a/drivers/powercap/powercap_sys.c
54162 +++ b/drivers/powercap/powercap_sys.c
54163 @@ -154,8 +154,77 @@ struct powercap_constraint_attr {
54164 struct device_attribute name_attr;
54165 };
54166
54167 +static ssize_t show_constraint_name(struct device *dev,
54168 + struct device_attribute *dev_attr,
54169 + char *buf);
54170 +
54171 static struct powercap_constraint_attr
54172 - constraint_attrs[MAX_CONSTRAINTS_PER_ZONE];
54173 + constraint_attrs[MAX_CONSTRAINTS_PER_ZONE] = {
54174 + [0 ... MAX_CONSTRAINTS_PER_ZONE - 1] = {
54175 + .power_limit_attr = {
54176 + .attr = {
54177 + .name = NULL,
54178 + .mode = S_IWUSR | S_IRUGO
54179 + },
54180 + .show = show_constraint_power_limit_uw,
54181 + .store = store_constraint_power_limit_uw
54182 + },
54183 +
54184 + .time_window_attr = {
54185 + .attr = {
54186 + .name = NULL,
54187 + .mode = S_IWUSR | S_IRUGO
54188 + },
54189 + .show = show_constraint_time_window_us,
54190 + .store = store_constraint_time_window_us
54191 + },
54192 +
54193 + .max_power_attr = {
54194 + .attr = {
54195 + .name = NULL,
54196 + .mode = S_IRUGO
54197 + },
54198 + .show = show_constraint_max_power_uw,
54199 + .store = NULL
54200 + },
54201 +
54202 + .min_power_attr = {
54203 + .attr = {
54204 + .name = NULL,
54205 + .mode = S_IRUGO
54206 + },
54207 + .show = show_constraint_min_power_uw,
54208 + .store = NULL
54209 + },
54210 +
54211 + .max_time_window_attr = {
54212 + .attr = {
54213 + .name = NULL,
54214 + .mode = S_IRUGO
54215 + },
54216 + .show = show_constraint_max_time_window_us,
54217 + .store = NULL
54218 + },
54219 +
54220 + .min_time_window_attr = {
54221 + .attr = {
54222 + .name = NULL,
54223 + .mode = S_IRUGO
54224 + },
54225 + .show = show_constraint_min_time_window_us,
54226 + .store = NULL
54227 + },
54228 +
54229 + .name_attr = {
54230 + .attr = {
54231 + .name = NULL,
54232 + .mode = S_IRUGO
54233 + },
54234 + .show = show_constraint_name,
54235 + .store = NULL
54236 + }
54237 + }
54238 +};
54239
54240 /* A list of powercap control_types */
54241 static LIST_HEAD(powercap_cntrl_list);
54242 @@ -193,23 +262,16 @@ static ssize_t show_constraint_name(struct device *dev,
54243 }
54244
54245 static int create_constraint_attribute(int id, const char *name,
54246 - int mode,
54247 - struct device_attribute *dev_attr,
54248 - ssize_t (*show)(struct device *,
54249 - struct device_attribute *, char *),
54250 - ssize_t (*store)(struct device *,
54251 - struct device_attribute *,
54252 - const char *, size_t)
54253 - )
54254 + struct device_attribute *dev_attr)
54255 {
54256 + name = kasprintf(GFP_KERNEL, "constraint_%d_%s", id, name);
54257
54258 - dev_attr->attr.name = kasprintf(GFP_KERNEL, "constraint_%d_%s",
54259 - id, name);
54260 - if (!dev_attr->attr.name)
54261 + if (!name)
54262 return -ENOMEM;
54263 - dev_attr->attr.mode = mode;
54264 - dev_attr->show = show;
54265 - dev_attr->store = store;
54266 +
54267 + pax_open_kernel();
54268 + *(const char **)&dev_attr->attr.name = name;
54269 + pax_close_kernel();
54270
54271 return 0;
54272 }
54273 @@ -236,49 +298,31 @@ static int seed_constraint_attributes(void)
54274
54275 for (i = 0; i < MAX_CONSTRAINTS_PER_ZONE; ++i) {
54276 ret = create_constraint_attribute(i, "power_limit_uw",
54277 - S_IWUSR | S_IRUGO,
54278 - &constraint_attrs[i].power_limit_attr,
54279 - show_constraint_power_limit_uw,
54280 - store_constraint_power_limit_uw);
54281 + &constraint_attrs[i].power_limit_attr);
54282 if (ret)
54283 goto err_alloc;
54284 ret = create_constraint_attribute(i, "time_window_us",
54285 - S_IWUSR | S_IRUGO,
54286 - &constraint_attrs[i].time_window_attr,
54287 - show_constraint_time_window_us,
54288 - store_constraint_time_window_us);
54289 + &constraint_attrs[i].time_window_attr);
54290 if (ret)
54291 goto err_alloc;
54292 - ret = create_constraint_attribute(i, "name", S_IRUGO,
54293 - &constraint_attrs[i].name_attr,
54294 - show_constraint_name,
54295 - NULL);
54296 + ret = create_constraint_attribute(i, "name",
54297 + &constraint_attrs[i].name_attr);
54298 if (ret)
54299 goto err_alloc;
54300 - ret = create_constraint_attribute(i, "max_power_uw", S_IRUGO,
54301 - &constraint_attrs[i].max_power_attr,
54302 - show_constraint_max_power_uw,
54303 - NULL);
54304 + ret = create_constraint_attribute(i, "max_power_uw",
54305 + &constraint_attrs[i].max_power_attr);
54306 if (ret)
54307 goto err_alloc;
54308 - ret = create_constraint_attribute(i, "min_power_uw", S_IRUGO,
54309 - &constraint_attrs[i].min_power_attr,
54310 - show_constraint_min_power_uw,
54311 - NULL);
54312 + ret = create_constraint_attribute(i, "min_power_uw",
54313 + &constraint_attrs[i].min_power_attr);
54314 if (ret)
54315 goto err_alloc;
54316 ret = create_constraint_attribute(i, "max_time_window_us",
54317 - S_IRUGO,
54318 - &constraint_attrs[i].max_time_window_attr,
54319 - show_constraint_max_time_window_us,
54320 - NULL);
54321 + &constraint_attrs[i].max_time_window_attr);
54322 if (ret)
54323 goto err_alloc;
54324 ret = create_constraint_attribute(i, "min_time_window_us",
54325 - S_IRUGO,
54326 - &constraint_attrs[i].min_time_window_attr,
54327 - show_constraint_min_time_window_us,
54328 - NULL);
54329 + &constraint_attrs[i].min_time_window_attr);
54330 if (ret)
54331 goto err_alloc;
54332
54333 @@ -378,10 +422,12 @@ static void create_power_zone_common_attributes(
54334 power_zone->zone_dev_attrs[count++] =
54335 &dev_attr_max_energy_range_uj.attr;
54336 if (power_zone->ops->get_energy_uj) {
54337 + pax_open_kernel();
54338 if (power_zone->ops->reset_energy_uj)
54339 - dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
54340 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
54341 else
54342 - dev_attr_energy_uj.attr.mode = S_IRUGO;
54343 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IRUGO;
54344 + pax_close_kernel();
54345 power_zone->zone_dev_attrs[count++] =
54346 &dev_attr_energy_uj.attr;
54347 }
54348 diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h
54349 index 9c5d414..c7900ce 100644
54350 --- a/drivers/ptp/ptp_private.h
54351 +++ b/drivers/ptp/ptp_private.h
54352 @@ -51,7 +51,7 @@ struct ptp_clock {
54353 struct mutex pincfg_mux; /* protect concurrent info->pin_config access */
54354 wait_queue_head_t tsev_wq;
54355 int defunct; /* tells readers to go away when clock is being removed */
54356 - struct device_attribute *pin_dev_attr;
54357 + device_attribute_no_const *pin_dev_attr;
54358 struct attribute **pin_attr;
54359 struct attribute_group pin_attr_group;
54360 };
54361 diff --git a/drivers/ptp/ptp_sysfs.c b/drivers/ptp/ptp_sysfs.c
54362 index 302e626..12579af 100644
54363 --- a/drivers/ptp/ptp_sysfs.c
54364 +++ b/drivers/ptp/ptp_sysfs.c
54365 @@ -280,7 +280,7 @@ static int ptp_populate_pins(struct ptp_clock *ptp)
54366 goto no_pin_attr;
54367
54368 for (i = 0; i < n_pins; i++) {
54369 - struct device_attribute *da = &ptp->pin_dev_attr[i];
54370 + device_attribute_no_const *da = &ptp->pin_dev_attr[i];
54371 sysfs_attr_init(&da->attr);
54372 da->attr.name = info->pin_config[i].name;
54373 da->attr.mode = 0644;
54374 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
54375 index 5081533..794deb2 100644
54376 --- a/drivers/regulator/core.c
54377 +++ b/drivers/regulator/core.c
54378 @@ -3650,7 +3650,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
54379 const struct regulation_constraints *constraints = NULL;
54380 const struct regulator_init_data *init_data;
54381 struct regulator_config *config = NULL;
54382 - static atomic_t regulator_no = ATOMIC_INIT(-1);
54383 + static atomic_unchecked_t regulator_no = ATOMIC_INIT(-1);
54384 struct regulator_dev *rdev;
54385 struct device *dev;
54386 int ret, i;
54387 @@ -3733,7 +3733,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
54388 rdev->dev.class = &regulator_class;
54389 rdev->dev.parent = dev;
54390 dev_set_name(&rdev->dev, "regulator.%lu",
54391 - (unsigned long) atomic_inc_return(&regulator_no));
54392 + (unsigned long) atomic_inc_return_unchecked(&regulator_no));
54393 ret = device_register(&rdev->dev);
54394 if (ret != 0) {
54395 put_device(&rdev->dev);
54396 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
54397 index 4071d74..260b15a 100644
54398 --- a/drivers/regulator/max8660.c
54399 +++ b/drivers/regulator/max8660.c
54400 @@ -423,8 +423,10 @@ static int max8660_probe(struct i2c_client *client,
54401 max8660->shadow_regs[MAX8660_OVER1] = 5;
54402 } else {
54403 /* Otherwise devices can be toggled via software */
54404 - max8660_dcdc_ops.enable = max8660_dcdc_enable;
54405 - max8660_dcdc_ops.disable = max8660_dcdc_disable;
54406 + pax_open_kernel();
54407 + *(void **)&max8660_dcdc_ops.enable = max8660_dcdc_enable;
54408 + *(void **)&max8660_dcdc_ops.disable = max8660_dcdc_disable;
54409 + pax_close_kernel();
54410 }
54411
54412 /*
54413 diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
54414 index e94ddcf..bad33ad 100644
54415 --- a/drivers/regulator/max8973-regulator.c
54416 +++ b/drivers/regulator/max8973-regulator.c
54417 @@ -580,9 +580,11 @@ static int max8973_probe(struct i2c_client *client,
54418 if (!pdata->enable_ext_control) {
54419 max->desc.enable_reg = MAX8973_VOUT;
54420 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
54421 - max->ops.enable = regulator_enable_regmap;
54422 - max->ops.disable = regulator_disable_regmap;
54423 - max->ops.is_enabled = regulator_is_enabled_regmap;
54424 + pax_open_kernel();
54425 + *(void **)&max->ops.enable = regulator_enable_regmap;
54426 + *(void **)&max->ops.disable = regulator_disable_regmap;
54427 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
54428 + pax_close_kernel();
54429 break;
54430 }
54431
54432 @@ -610,9 +612,11 @@ static int max8973_probe(struct i2c_client *client,
54433
54434 max->desc.enable_reg = MAX8973_VOUT;
54435 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
54436 - max->ops.enable = regulator_enable_regmap;
54437 - max->ops.disable = regulator_disable_regmap;
54438 - max->ops.is_enabled = regulator_is_enabled_regmap;
54439 + pax_open_kernel();
54440 + *(void **)&max->ops.enable = regulator_enable_regmap;
54441 + *(void **)&max->ops.disable = regulator_disable_regmap;
54442 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
54443 + pax_close_kernel();
54444 break;
54445 default:
54446 break;
54447 diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
54448 index 0d17c92..a29f627 100644
54449 --- a/drivers/regulator/mc13892-regulator.c
54450 +++ b/drivers/regulator/mc13892-regulator.c
54451 @@ -584,10 +584,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev)
54452 mc13xxx_unlock(mc13892);
54453
54454 /* update mc13892_vcam ops */
54455 - memcpy(&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
54456 + pax_open_kernel();
54457 + memcpy((void *)&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
54458 sizeof(struct regulator_ops));
54459 - mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
54460 - mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
54461 + *(void **)&mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
54462 + *(void **)&mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
54463 + pax_close_kernel();
54464 mc13892_regulators[MC13892_VCAM].desc.ops = &mc13892_vcam_ops;
54465
54466 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
54467 diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c
54468 index 2b08cac..8942201 100644
54469 --- a/drivers/rtc/rtc-armada38x.c
54470 +++ b/drivers/rtc/rtc-armada38x.c
54471 @@ -18,6 +18,7 @@
54472 #include <linux/of.h>
54473 #include <linux/platform_device.h>
54474 #include <linux/rtc.h>
54475 +#include <asm/pgtable.h>
54476
54477 #define RTC_STATUS 0x0
54478 #define RTC_STATUS_ALARM1 BIT(0)
54479 @@ -254,8 +255,10 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
54480 * If there is no interrupt available then we can't
54481 * use the alarm
54482 */
54483 - armada38x_rtc_ops.set_alarm = NULL;
54484 - armada38x_rtc_ops.alarm_irq_enable = NULL;
54485 + pax_open_kernel();
54486 + *(void **)&armada38x_rtc_ops.set_alarm = NULL;
54487 + *(void **)&armada38x_rtc_ops.alarm_irq_enable = NULL;
54488 + pax_close_kernel();
54489 }
54490 platform_set_drvdata(pdev, rtc);
54491 if (rtc->irq != -1)
54492 diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
54493 index a82556a0..e842923 100644
54494 --- a/drivers/rtc/rtc-cmos.c
54495 +++ b/drivers/rtc/rtc-cmos.c
54496 @@ -793,7 +793,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
54497 hpet_rtc_timer_init();
54498
54499 /* export at least the first block of NVRAM */
54500 - nvram.size = address_space - NVRAM_OFFSET;
54501 + pax_open_kernel();
54502 + *(size_t *)&nvram.size = address_space - NVRAM_OFFSET;
54503 + pax_close_kernel();
54504 retval = sysfs_create_bin_file(&dev->kobj, &nvram);
54505 if (retval < 0) {
54506 dev_dbg(dev, "can't create nvram file? %d\n", retval);
54507 diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c
54508 index 799c34b..8e9786a 100644
54509 --- a/drivers/rtc/rtc-dev.c
54510 +++ b/drivers/rtc/rtc-dev.c
54511 @@ -16,6 +16,7 @@
54512 #include <linux/module.h>
54513 #include <linux/rtc.h>
54514 #include <linux/sched.h>
54515 +#include <linux/grsecurity.h>
54516 #include "rtc-core.h"
54517
54518 static dev_t rtc_devt;
54519 @@ -347,6 +348,8 @@ static long rtc_dev_ioctl(struct file *file,
54520 if (copy_from_user(&tm, uarg, sizeof(tm)))
54521 return -EFAULT;
54522
54523 + gr_log_timechange();
54524 +
54525 return rtc_set_time(rtc, &tm);
54526
54527 case RTC_PIE_ON:
54528 diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
54529 index 6e76de1..d38a1e0 100644
54530 --- a/drivers/rtc/rtc-ds1307.c
54531 +++ b/drivers/rtc/rtc-ds1307.c
54532 @@ -107,7 +107,7 @@ struct ds1307 {
54533 u8 offset; /* register's offset */
54534 u8 regs[11];
54535 u16 nvram_offset;
54536 - struct bin_attribute *nvram;
54537 + bin_attribute_no_const *nvram;
54538 enum ds_type type;
54539 unsigned long flags;
54540 #define HAS_NVRAM 0 /* bit 0 == sysfs file active */
54541 diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c
54542 index 90abb5b..e0bf6dd 100644
54543 --- a/drivers/rtc/rtc-m48t59.c
54544 +++ b/drivers/rtc/rtc-m48t59.c
54545 @@ -483,7 +483,9 @@ static int m48t59_rtc_probe(struct platform_device *pdev)
54546 if (IS_ERR(m48t59->rtc))
54547 return PTR_ERR(m48t59->rtc);
54548
54549 - m48t59_nvram_attr.size = pdata->offset;
54550 + pax_open_kernel();
54551 + *(size_t *)&m48t59_nvram_attr.size = pdata->offset;
54552 + pax_close_kernel();
54553
54554 ret = sysfs_create_bin_file(&pdev->dev.kobj, &m48t59_nvram_attr);
54555 if (ret)
54556 diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
54557 index 3a2da4c..e88493c 100644
54558 --- a/drivers/rtc/rtc-test.c
54559 +++ b/drivers/rtc/rtc-test.c
54560 @@ -112,8 +112,10 @@ static int test_probe(struct platform_device *plat_dev)
54561 struct rtc_device *rtc;
54562
54563 if (test_mmss64) {
54564 - test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
54565 - test_rtc_ops.set_mmss = NULL;
54566 + pax_open_kernel();
54567 + *(void **)&test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
54568 + *(void **)&test_rtc_ops.set_mmss = NULL;
54569 + pax_close_kernel();
54570 }
54571
54572 rtc = devm_rtc_device_register(&plat_dev->dev, "test",
54573 diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
54574 index 7a6dbfb..5cdcd29 100644
54575 --- a/drivers/scsi/be2iscsi/be_main.c
54576 +++ b/drivers/scsi/be2iscsi/be_main.c
54577 @@ -3184,7 +3184,7 @@ be_sgl_create_contiguous(void *virtual_address,
54578 {
54579 WARN_ON(!virtual_address);
54580 WARN_ON(!physical_address);
54581 - WARN_ON(!length > 0);
54582 + WARN_ON(!length);
54583 WARN_ON(!sgl);
54584
54585 sgl->va = virtual_address;
54586 diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h
54587 index e693af6..2e525b6 100644
54588 --- a/drivers/scsi/bfa/bfa_fcpim.h
54589 +++ b/drivers/scsi/bfa/bfa_fcpim.h
54590 @@ -36,7 +36,7 @@ struct bfa_iotag_s {
54591
54592 struct bfa_itn_s {
54593 bfa_isr_func_t isr;
54594 -};
54595 +} __no_const;
54596
54597 void bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
54598 void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m));
54599 diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
54600 index 0f19455..ef7adb5 100644
54601 --- a/drivers/scsi/bfa/bfa_fcs.c
54602 +++ b/drivers/scsi/bfa/bfa_fcs.c
54603 @@ -38,10 +38,21 @@ struct bfa_fcs_mod_s {
54604 #define BFA_FCS_MODULE(_mod) { _mod ## _modinit, _mod ## _modexit }
54605
54606 static struct bfa_fcs_mod_s fcs_modules[] = {
54607 - { bfa_fcs_port_attach, NULL, NULL },
54608 - { bfa_fcs_uf_attach, NULL, NULL },
54609 - { bfa_fcs_fabric_attach, bfa_fcs_fabric_modinit,
54610 - bfa_fcs_fabric_modexit },
54611 + {
54612 + .attach = bfa_fcs_port_attach,
54613 + .modinit = NULL,
54614 + .modexit = NULL
54615 + },
54616 + {
54617 + .attach = bfa_fcs_uf_attach,
54618 + .modinit = NULL,
54619 + .modexit = NULL
54620 + },
54621 + {
54622 + .attach = bfa_fcs_fabric_attach,
54623 + .modinit = bfa_fcs_fabric_modinit,
54624 + .modexit = bfa_fcs_fabric_modexit
54625 + },
54626 };
54627
54628 /*
54629 diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
54630 index ff75ef8..2dfe00a 100644
54631 --- a/drivers/scsi/bfa/bfa_fcs_lport.c
54632 +++ b/drivers/scsi/bfa/bfa_fcs_lport.c
54633 @@ -89,15 +89,26 @@ static struct {
54634 void (*offline) (struct bfa_fcs_lport_s *port);
54635 } __port_action[] = {
54636 {
54637 - bfa_fcs_lport_unknown_init, bfa_fcs_lport_unknown_online,
54638 - bfa_fcs_lport_unknown_offline}, {
54639 - bfa_fcs_lport_fab_init, bfa_fcs_lport_fab_online,
54640 - bfa_fcs_lport_fab_offline}, {
54641 - bfa_fcs_lport_n2n_init, bfa_fcs_lport_n2n_online,
54642 - bfa_fcs_lport_n2n_offline}, {
54643 - bfa_fcs_lport_loop_init, bfa_fcs_lport_loop_online,
54644 - bfa_fcs_lport_loop_offline},
54645 - };
54646 + .init = bfa_fcs_lport_unknown_init,
54647 + .online = bfa_fcs_lport_unknown_online,
54648 + .offline = bfa_fcs_lport_unknown_offline
54649 + },
54650 + {
54651 + .init = bfa_fcs_lport_fab_init,
54652 + .online = bfa_fcs_lport_fab_online,
54653 + .offline = bfa_fcs_lport_fab_offline
54654 + },
54655 + {
54656 + .init = bfa_fcs_lport_n2n_init,
54657 + .online = bfa_fcs_lport_n2n_online,
54658 + .offline = bfa_fcs_lport_n2n_offline
54659 + },
54660 + {
54661 + .init = bfa_fcs_lport_loop_init,
54662 + .online = bfa_fcs_lport_loop_online,
54663 + .offline = bfa_fcs_lport_loop_offline
54664 + },
54665 +};
54666
54667 /*
54668 * fcs_port_sm FCS logical port state machine
54669 diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h
54670 index a38aafa0..fe8f03b 100644
54671 --- a/drivers/scsi/bfa/bfa_ioc.h
54672 +++ b/drivers/scsi/bfa/bfa_ioc.h
54673 @@ -258,7 +258,7 @@ struct bfa_ioc_cbfn_s {
54674 bfa_ioc_disable_cbfn_t disable_cbfn;
54675 bfa_ioc_hbfail_cbfn_t hbfail_cbfn;
54676 bfa_ioc_reset_cbfn_t reset_cbfn;
54677 -};
54678 +} __no_const;
54679
54680 /*
54681 * IOC event notification mechanism.
54682 @@ -352,7 +352,7 @@ struct bfa_ioc_hwif_s {
54683 void (*ioc_set_alt_fwstate) (struct bfa_ioc_s *ioc,
54684 enum bfi_ioc_state fwstate);
54685 enum bfi_ioc_state (*ioc_get_alt_fwstate) (struct bfa_ioc_s *ioc);
54686 -};
54687 +} __no_const;
54688
54689 /*
54690 * Queue element to wait for room in request queue. FIFO order is
54691 diff --git a/drivers/scsi/bfa/bfa_modules.h b/drivers/scsi/bfa/bfa_modules.h
54692 index a14c784..6de6790 100644
54693 --- a/drivers/scsi/bfa/bfa_modules.h
54694 +++ b/drivers/scsi/bfa/bfa_modules.h
54695 @@ -78,12 +78,12 @@ enum {
54696 \
54697 extern struct bfa_module_s hal_mod_ ## __mod; \
54698 struct bfa_module_s hal_mod_ ## __mod = { \
54699 - bfa_ ## __mod ## _meminfo, \
54700 - bfa_ ## __mod ## _attach, \
54701 - bfa_ ## __mod ## _detach, \
54702 - bfa_ ## __mod ## _start, \
54703 - bfa_ ## __mod ## _stop, \
54704 - bfa_ ## __mod ## _iocdisable, \
54705 + .meminfo = bfa_ ## __mod ## _meminfo, \
54706 + .attach = bfa_ ## __mod ## _attach, \
54707 + .detach = bfa_ ## __mod ## _detach, \
54708 + .start = bfa_ ## __mod ## _start, \
54709 + .stop = bfa_ ## __mod ## _stop, \
54710 + .iocdisable = bfa_ ## __mod ## _iocdisable, \
54711 }
54712
54713 #define BFA_CACHELINE_SZ (256)
54714 diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
54715 index 045c4e1..13de803 100644
54716 --- a/drivers/scsi/fcoe/fcoe_sysfs.c
54717 +++ b/drivers/scsi/fcoe/fcoe_sysfs.c
54718 @@ -33,8 +33,8 @@
54719 */
54720 #include "libfcoe.h"
54721
54722 -static atomic_t ctlr_num;
54723 -static atomic_t fcf_num;
54724 +static atomic_unchecked_t ctlr_num;
54725 +static atomic_unchecked_t fcf_num;
54726
54727 /*
54728 * fcoe_fcf_dev_loss_tmo: the default number of seconds that fcoe sysfs
54729 @@ -685,7 +685,7 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
54730 if (!ctlr)
54731 goto out;
54732
54733 - ctlr->id = atomic_inc_return(&ctlr_num) - 1;
54734 + ctlr->id = atomic_inc_return_unchecked(&ctlr_num) - 1;
54735 ctlr->f = f;
54736 ctlr->mode = FIP_CONN_TYPE_FABRIC;
54737 INIT_LIST_HEAD(&ctlr->fcfs);
54738 @@ -902,7 +902,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
54739 fcf->dev.parent = &ctlr->dev;
54740 fcf->dev.bus = &fcoe_bus_type;
54741 fcf->dev.type = &fcoe_fcf_device_type;
54742 - fcf->id = atomic_inc_return(&fcf_num) - 1;
54743 + fcf->id = atomic_inc_return_unchecked(&fcf_num) - 1;
54744 fcf->state = FCOE_FCF_STATE_UNKNOWN;
54745
54746 fcf->dev_loss_tmo = ctlr->fcf_dev_loss_tmo;
54747 @@ -938,8 +938,8 @@ int __init fcoe_sysfs_setup(void)
54748 {
54749 int error;
54750
54751 - atomic_set(&ctlr_num, 0);
54752 - atomic_set(&fcf_num, 0);
54753 + atomic_set_unchecked(&ctlr_num, 0);
54754 + atomic_set_unchecked(&fcf_num, 0);
54755
54756 error = bus_register(&fcoe_bus_type);
54757 if (error)
54758 diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
54759 index 8bb173e..20236b4 100644
54760 --- a/drivers/scsi/hosts.c
54761 +++ b/drivers/scsi/hosts.c
54762 @@ -42,7 +42,7 @@
54763 #include "scsi_logging.h"
54764
54765
54766 -static atomic_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
54767 +static atomic_unchecked_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
54768
54769
54770 static void scsi_host_cls_release(struct device *dev)
54771 @@ -392,7 +392,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
54772 * subtract one because we increment first then return, but we need to
54773 * know what the next host number was before increment
54774 */
54775 - shost->host_no = atomic_inc_return(&scsi_host_next_hn) - 1;
54776 + shost->host_no = atomic_inc_return_unchecked(&scsi_host_next_hn) - 1;
54777 shost->dma_channel = 0xff;
54778
54779 /* These three are default values which can be overridden */
54780 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
54781 index cab4e98..31323f6 100644
54782 --- a/drivers/scsi/hpsa.c
54783 +++ b/drivers/scsi/hpsa.c
54784 @@ -793,10 +793,10 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
54785 struct reply_queue_buffer *rq = &h->reply_queue[q];
54786
54787 if (h->transMethod & CFGTBL_Trans_io_accel1)
54788 - return h->access.command_completed(h, q);
54789 + return h->access->command_completed(h, q);
54790
54791 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
54792 - return h->access.command_completed(h, q);
54793 + return h->access->command_completed(h, q);
54794
54795 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
54796 a = rq->head[rq->current_entry];
54797 @@ -978,7 +978,7 @@ static void __enqueue_cmd_and_start_io(struct ctlr_info *h,
54798 break;
54799 default:
54800 set_performant_mode(h, c, reply_queue);
54801 - h->access.submit_command(h, c);
54802 + h->access->submit_command(h, c);
54803 }
54804 }
54805
54806 @@ -6343,17 +6343,17 @@ static void __iomem *remap_pci_mem(ulong base, ulong size)
54807
54808 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
54809 {
54810 - return h->access.command_completed(h, q);
54811 + return h->access->command_completed(h, q);
54812 }
54813
54814 static inline bool interrupt_pending(struct ctlr_info *h)
54815 {
54816 - return h->access.intr_pending(h);
54817 + return h->access->intr_pending(h);
54818 }
54819
54820 static inline long interrupt_not_for_us(struct ctlr_info *h)
54821 {
54822 - return (h->access.intr_pending(h) == 0) ||
54823 + return (h->access->intr_pending(h) == 0) ||
54824 (h->interrupts_enabled == 0);
54825 }
54826
54827 @@ -7291,7 +7291,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
54828 if (prod_index < 0)
54829 return prod_index;
54830 h->product_name = products[prod_index].product_name;
54831 - h->access = *(products[prod_index].access);
54832 + h->access = products[prod_index].access;
54833
54834 h->needs_abort_tags_swizzled =
54835 ctlr_needs_abort_tags_swizzled(h->board_id);
54836 @@ -7690,7 +7690,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
54837 unsigned long flags;
54838 u32 lockup_detected;
54839
54840 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54841 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54842 spin_lock_irqsave(&h->lock, flags);
54843 lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
54844 if (!lockup_detected) {
54845 @@ -7973,7 +7973,7 @@ reinit_after_soft_reset:
54846 }
54847
54848 /* make sure the board interrupts are off */
54849 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54850 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54851
54852 rc = hpsa_request_irqs(h, do_hpsa_intr_msi, do_hpsa_intr_intx);
54853 if (rc)
54854 @@ -8032,7 +8032,7 @@ reinit_after_soft_reset:
54855 * fake ones to scoop up any residual completions.
54856 */
54857 spin_lock_irqsave(&h->lock, flags);
54858 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54859 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54860 spin_unlock_irqrestore(&h->lock, flags);
54861 hpsa_free_irqs(h);
54862 rc = hpsa_request_irqs(h, hpsa_msix_discard_completions,
54863 @@ -8062,9 +8062,9 @@ reinit_after_soft_reset:
54864 dev_info(&h->pdev->dev, "Board READY.\n");
54865 dev_info(&h->pdev->dev,
54866 "Waiting for stale completions to drain.\n");
54867 - h->access.set_intr_mask(h, HPSA_INTR_ON);
54868 + h->access->set_intr_mask(h, HPSA_INTR_ON);
54869 msleep(10000);
54870 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54871 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54872
54873 rc = controller_reset_failed(h->cfgtable);
54874 if (rc)
54875 @@ -8089,7 +8089,7 @@ reinit_after_soft_reset:
54876
54877
54878 /* Turn the interrupts on so we can service requests */
54879 - h->access.set_intr_mask(h, HPSA_INTR_ON);
54880 + h->access->set_intr_mask(h, HPSA_INTR_ON);
54881
54882 hpsa_hba_inquiry(h);
54883
54884 @@ -8107,7 +8107,7 @@ clean9: /* wq, sh, perf, sg, cmd, irq, shost, pci, lu, aer/h */
54885 kfree(h->hba_inquiry_data);
54886 clean7: /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
54887 hpsa_free_performant_mode(h);
54888 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54889 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54890 clean6: /* sg, cmd, irq, pci, lockup, wq/aer/h */
54891 hpsa_free_sg_chain_blocks(h);
54892 clean5: /* cmd, irq, shost, pci, lu, aer/h */
54893 @@ -8177,7 +8177,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
54894 * To write all data in the battery backed cache to disks
54895 */
54896 hpsa_flush_cache(h);
54897 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54898 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54899 hpsa_free_irqs(h); /* init_one 4 */
54900 hpsa_disable_interrupt_mode(h); /* pci_init 2 */
54901 }
54902 @@ -8309,7 +8309,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54903 CFGTBL_Trans_enable_directed_msix |
54904 (trans_support & (CFGTBL_Trans_io_accel1 |
54905 CFGTBL_Trans_io_accel2));
54906 - struct access_method access = SA5_performant_access;
54907 + struct access_method *access = &SA5_performant_access;
54908
54909 /* This is a bit complicated. There are 8 registers on
54910 * the controller which we write to to tell it 8 different
54911 @@ -8351,7 +8351,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54912 * perform the superfluous readl() after each command submission.
54913 */
54914 if (trans_support & (CFGTBL_Trans_io_accel1 | CFGTBL_Trans_io_accel2))
54915 - access = SA5_performant_access_no_read;
54916 + access = &SA5_performant_access_no_read;
54917
54918 /* Controller spec: zero out this buffer. */
54919 for (i = 0; i < h->nreply_queues; i++)
54920 @@ -8381,12 +8381,12 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54921 * enable outbound interrupt coalescing in accelerator mode;
54922 */
54923 if (trans_support & CFGTBL_Trans_io_accel1) {
54924 - access = SA5_ioaccel_mode1_access;
54925 + access = &SA5_ioaccel_mode1_access;
54926 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
54927 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
54928 } else {
54929 if (trans_support & CFGTBL_Trans_io_accel2) {
54930 - access = SA5_ioaccel_mode2_access;
54931 + access = &SA5_ioaccel_mode2_access;
54932 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
54933 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
54934 }
54935 diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
54936 index 6ee4da6..dfafb48 100644
54937 --- a/drivers/scsi/hpsa.h
54938 +++ b/drivers/scsi/hpsa.h
54939 @@ -152,7 +152,7 @@ struct ctlr_info {
54940 unsigned int msix_vector;
54941 unsigned int msi_vector;
54942 int intr_mode; /* either PERF_MODE_INT or SIMPLE_MODE_INT */
54943 - struct access_method access;
54944 + struct access_method *access;
54945 char hba_mode_enabled;
54946
54947 /* queue and queue Info */
54948 @@ -542,38 +542,38 @@ static unsigned long SA5_ioaccel_mode1_completed(struct ctlr_info *h, u8 q)
54949 }
54950
54951 static struct access_method SA5_access = {
54952 - SA5_submit_command,
54953 - SA5_intr_mask,
54954 - SA5_intr_pending,
54955 - SA5_completed,
54956 + .submit_command = SA5_submit_command,
54957 + .set_intr_mask = SA5_intr_mask,
54958 + .intr_pending = SA5_intr_pending,
54959 + .command_completed = SA5_completed,
54960 };
54961
54962 static struct access_method SA5_ioaccel_mode1_access = {
54963 - SA5_submit_command,
54964 - SA5_performant_intr_mask,
54965 - SA5_ioaccel_mode1_intr_pending,
54966 - SA5_ioaccel_mode1_completed,
54967 + .submit_command = SA5_submit_command,
54968 + .set_intr_mask = SA5_performant_intr_mask,
54969 + .intr_pending = SA5_ioaccel_mode1_intr_pending,
54970 + .command_completed = SA5_ioaccel_mode1_completed,
54971 };
54972
54973 static struct access_method SA5_ioaccel_mode2_access = {
54974 - SA5_submit_command_ioaccel2,
54975 - SA5_performant_intr_mask,
54976 - SA5_performant_intr_pending,
54977 - SA5_performant_completed,
54978 + .submit_command = SA5_submit_command_ioaccel2,
54979 + .set_intr_mask = SA5_performant_intr_mask,
54980 + .intr_pending = SA5_performant_intr_pending,
54981 + .command_completed = SA5_performant_completed,
54982 };
54983
54984 static struct access_method SA5_performant_access = {
54985 - SA5_submit_command,
54986 - SA5_performant_intr_mask,
54987 - SA5_performant_intr_pending,
54988 - SA5_performant_completed,
54989 + .submit_command = SA5_submit_command,
54990 + .set_intr_mask = SA5_performant_intr_mask,
54991 + .intr_pending = SA5_performant_intr_pending,
54992 + .command_completed = SA5_performant_completed,
54993 };
54994
54995 static struct access_method SA5_performant_access_no_read = {
54996 - SA5_submit_command_no_read,
54997 - SA5_performant_intr_mask,
54998 - SA5_performant_intr_pending,
54999 - SA5_performant_completed,
55000 + .submit_command = SA5_submit_command_no_read,
55001 + .set_intr_mask = SA5_performant_intr_mask,
55002 + .intr_pending = SA5_performant_intr_pending,
55003 + .command_completed = SA5_performant_completed,
55004 };
55005
55006 struct board_type {
55007 diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
55008 index 30f9ef0..a1e29ac 100644
55009 --- a/drivers/scsi/libfc/fc_exch.c
55010 +++ b/drivers/scsi/libfc/fc_exch.c
55011 @@ -101,12 +101,12 @@ struct fc_exch_mgr {
55012 u16 pool_max_index;
55013
55014 struct {
55015 - atomic_t no_free_exch;
55016 - atomic_t no_free_exch_xid;
55017 - atomic_t xid_not_found;
55018 - atomic_t xid_busy;
55019 - atomic_t seq_not_found;
55020 - atomic_t non_bls_resp;
55021 + atomic_unchecked_t no_free_exch;
55022 + atomic_unchecked_t no_free_exch_xid;
55023 + atomic_unchecked_t xid_not_found;
55024 + atomic_unchecked_t xid_busy;
55025 + atomic_unchecked_t seq_not_found;
55026 + atomic_unchecked_t non_bls_resp;
55027 } stats;
55028 };
55029
55030 @@ -809,7 +809,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
55031 /* allocate memory for exchange */
55032 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
55033 if (!ep) {
55034 - atomic_inc(&mp->stats.no_free_exch);
55035 + atomic_inc_unchecked(&mp->stats.no_free_exch);
55036 goto out;
55037 }
55038 memset(ep, 0, sizeof(*ep));
55039 @@ -872,7 +872,7 @@ out:
55040 return ep;
55041 err:
55042 spin_unlock_bh(&pool->lock);
55043 - atomic_inc(&mp->stats.no_free_exch_xid);
55044 + atomic_inc_unchecked(&mp->stats.no_free_exch_xid);
55045 mempool_free(ep, mp->ep_pool);
55046 return NULL;
55047 }
55048 @@ -1021,7 +1021,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
55049 xid = ntohs(fh->fh_ox_id); /* we originated exch */
55050 ep = fc_exch_find(mp, xid);
55051 if (!ep) {
55052 - atomic_inc(&mp->stats.xid_not_found);
55053 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55054 reject = FC_RJT_OX_ID;
55055 goto out;
55056 }
55057 @@ -1051,7 +1051,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
55058 ep = fc_exch_find(mp, xid);
55059 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
55060 if (ep) {
55061 - atomic_inc(&mp->stats.xid_busy);
55062 + atomic_inc_unchecked(&mp->stats.xid_busy);
55063 reject = FC_RJT_RX_ID;
55064 goto rel;
55065 }
55066 @@ -1062,7 +1062,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
55067 }
55068 xid = ep->xid; /* get our XID */
55069 } else if (!ep) {
55070 - atomic_inc(&mp->stats.xid_not_found);
55071 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55072 reject = FC_RJT_RX_ID; /* XID not found */
55073 goto out;
55074 }
55075 @@ -1080,7 +1080,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
55076 } else {
55077 sp = &ep->seq;
55078 if (sp->id != fh->fh_seq_id) {
55079 - atomic_inc(&mp->stats.seq_not_found);
55080 + atomic_inc_unchecked(&mp->stats.seq_not_found);
55081 if (f_ctl & FC_FC_END_SEQ) {
55082 /*
55083 * Update sequence_id based on incoming last
55084 @@ -1531,22 +1531,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
55085
55086 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
55087 if (!ep) {
55088 - atomic_inc(&mp->stats.xid_not_found);
55089 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55090 goto out;
55091 }
55092 if (ep->esb_stat & ESB_ST_COMPLETE) {
55093 - atomic_inc(&mp->stats.xid_not_found);
55094 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55095 goto rel;
55096 }
55097 if (ep->rxid == FC_XID_UNKNOWN)
55098 ep->rxid = ntohs(fh->fh_rx_id);
55099 if (ep->sid != 0 && ep->sid != ntoh24(fh->fh_d_id)) {
55100 - atomic_inc(&mp->stats.xid_not_found);
55101 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55102 goto rel;
55103 }
55104 if (ep->did != ntoh24(fh->fh_s_id) &&
55105 ep->did != FC_FID_FLOGI) {
55106 - atomic_inc(&mp->stats.xid_not_found);
55107 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55108 goto rel;
55109 }
55110 sof = fr_sof(fp);
55111 @@ -1555,7 +1555,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
55112 sp->ssb_stat |= SSB_ST_RESP;
55113 sp->id = fh->fh_seq_id;
55114 } else if (sp->id != fh->fh_seq_id) {
55115 - atomic_inc(&mp->stats.seq_not_found);
55116 + atomic_inc_unchecked(&mp->stats.seq_not_found);
55117 goto rel;
55118 }
55119
55120 @@ -1618,9 +1618,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
55121 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */
55122
55123 if (!sp)
55124 - atomic_inc(&mp->stats.xid_not_found);
55125 + atomic_inc_unchecked(&mp->stats.xid_not_found);
55126 else
55127 - atomic_inc(&mp->stats.non_bls_resp);
55128 + atomic_inc_unchecked(&mp->stats.non_bls_resp);
55129
55130 fc_frame_free(fp);
55131 }
55132 @@ -2261,13 +2261,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
55133
55134 list_for_each_entry(ema, &lport->ema_list, ema_list) {
55135 mp = ema->mp;
55136 - st->fc_no_free_exch += atomic_read(&mp->stats.no_free_exch);
55137 + st->fc_no_free_exch += atomic_read_unchecked(&mp->stats.no_free_exch);
55138 st->fc_no_free_exch_xid +=
55139 - atomic_read(&mp->stats.no_free_exch_xid);
55140 - st->fc_xid_not_found += atomic_read(&mp->stats.xid_not_found);
55141 - st->fc_xid_busy += atomic_read(&mp->stats.xid_busy);
55142 - st->fc_seq_not_found += atomic_read(&mp->stats.seq_not_found);
55143 - st->fc_non_bls_resp += atomic_read(&mp->stats.non_bls_resp);
55144 + atomic_read_unchecked(&mp->stats.no_free_exch_xid);
55145 + st->fc_xid_not_found += atomic_read_unchecked(&mp->stats.xid_not_found);
55146 + st->fc_xid_busy += atomic_read_unchecked(&mp->stats.xid_busy);
55147 + st->fc_seq_not_found += atomic_read_unchecked(&mp->stats.seq_not_found);
55148 + st->fc_non_bls_resp += atomic_read_unchecked(&mp->stats.non_bls_resp);
55149 }
55150 }
55151 EXPORT_SYMBOL(fc_exch_update_stats);
55152 diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
55153 index 9c706d8..d3e3ed2 100644
55154 --- a/drivers/scsi/libsas/sas_ata.c
55155 +++ b/drivers/scsi/libsas/sas_ata.c
55156 @@ -535,7 +535,7 @@ static struct ata_port_operations sas_sata_ops = {
55157 .postreset = ata_std_postreset,
55158 .error_handler = ata_std_error_handler,
55159 .post_internal_cmd = sas_ata_post_internal,
55160 - .qc_defer = ata_std_qc_defer,
55161 + .qc_defer = ata_std_qc_defer,
55162 .qc_prep = ata_noop_qc_prep,
55163 .qc_issue = sas_ata_qc_issue,
55164 .qc_fill_rtf = sas_ata_qc_fill_rtf,
55165 diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
55166 index a5a56fa..43499fd 100644
55167 --- a/drivers/scsi/lpfc/lpfc.h
55168 +++ b/drivers/scsi/lpfc/lpfc.h
55169 @@ -435,7 +435,7 @@ struct lpfc_vport {
55170 struct dentry *debug_nodelist;
55171 struct dentry *vport_debugfs_root;
55172 struct lpfc_debugfs_trc *disc_trc;
55173 - atomic_t disc_trc_cnt;
55174 + atomic_unchecked_t disc_trc_cnt;
55175 #endif
55176 uint8_t stat_data_enabled;
55177 uint8_t stat_data_blocked;
55178 @@ -885,8 +885,8 @@ struct lpfc_hba {
55179 struct timer_list fabric_block_timer;
55180 unsigned long bit_flags;
55181 #define FABRIC_COMANDS_BLOCKED 0
55182 - atomic_t num_rsrc_err;
55183 - atomic_t num_cmd_success;
55184 + atomic_unchecked_t num_rsrc_err;
55185 + atomic_unchecked_t num_cmd_success;
55186 unsigned long last_rsrc_error_time;
55187 unsigned long last_ramp_down_time;
55188 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
55189 @@ -921,7 +921,7 @@ struct lpfc_hba {
55190
55191 struct dentry *debug_slow_ring_trc;
55192 struct lpfc_debugfs_trc *slow_ring_trc;
55193 - atomic_t slow_ring_trc_cnt;
55194 + atomic_unchecked_t slow_ring_trc_cnt;
55195 /* iDiag debugfs sub-directory */
55196 struct dentry *idiag_root;
55197 struct dentry *idiag_pci_cfg;
55198 diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
55199 index 25aa9b9..d700a65 100644
55200 --- a/drivers/scsi/lpfc/lpfc_debugfs.c
55201 +++ b/drivers/scsi/lpfc/lpfc_debugfs.c
55202 @@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
55203
55204 #include <linux/debugfs.h>
55205
55206 -static atomic_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
55207 +static atomic_unchecked_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
55208 static unsigned long lpfc_debugfs_start_time = 0L;
55209
55210 /* iDiag */
55211 @@ -147,7 +147,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
55212 lpfc_debugfs_enable = 0;
55213
55214 len = 0;
55215 - index = (atomic_read(&vport->disc_trc_cnt) + 1) &
55216 + index = (atomic_read_unchecked(&vport->disc_trc_cnt) + 1) &
55217 (lpfc_debugfs_max_disc_trc - 1);
55218 for (i = index; i < lpfc_debugfs_max_disc_trc; i++) {
55219 dtp = vport->disc_trc + i;
55220 @@ -213,7 +213,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
55221 lpfc_debugfs_enable = 0;
55222
55223 len = 0;
55224 - index = (atomic_read(&phba->slow_ring_trc_cnt) + 1) &
55225 + index = (atomic_read_unchecked(&phba->slow_ring_trc_cnt) + 1) &
55226 (lpfc_debugfs_max_slow_ring_trc - 1);
55227 for (i = index; i < lpfc_debugfs_max_slow_ring_trc; i++) {
55228 dtp = phba->slow_ring_trc + i;
55229 @@ -646,14 +646,14 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
55230 !vport || !vport->disc_trc)
55231 return;
55232
55233 - index = atomic_inc_return(&vport->disc_trc_cnt) &
55234 + index = atomic_inc_return_unchecked(&vport->disc_trc_cnt) &
55235 (lpfc_debugfs_max_disc_trc - 1);
55236 dtp = vport->disc_trc + index;
55237 dtp->fmt = fmt;
55238 dtp->data1 = data1;
55239 dtp->data2 = data2;
55240 dtp->data3 = data3;
55241 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
55242 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
55243 dtp->jif = jiffies;
55244 #endif
55245 return;
55246 @@ -684,14 +684,14 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
55247 !phba || !phba->slow_ring_trc)
55248 return;
55249
55250 - index = atomic_inc_return(&phba->slow_ring_trc_cnt) &
55251 + index = atomic_inc_return_unchecked(&phba->slow_ring_trc_cnt) &
55252 (lpfc_debugfs_max_slow_ring_trc - 1);
55253 dtp = phba->slow_ring_trc + index;
55254 dtp->fmt = fmt;
55255 dtp->data1 = data1;
55256 dtp->data2 = data2;
55257 dtp->data3 = data3;
55258 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
55259 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
55260 dtp->jif = jiffies;
55261 #endif
55262 return;
55263 @@ -4268,7 +4268,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
55264 "slow_ring buffer\n");
55265 goto debug_failed;
55266 }
55267 - atomic_set(&phba->slow_ring_trc_cnt, 0);
55268 + atomic_set_unchecked(&phba->slow_ring_trc_cnt, 0);
55269 memset(phba->slow_ring_trc, 0,
55270 (sizeof(struct lpfc_debugfs_trc) *
55271 lpfc_debugfs_max_slow_ring_trc));
55272 @@ -4314,7 +4314,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
55273 "buffer\n");
55274 goto debug_failed;
55275 }
55276 - atomic_set(&vport->disc_trc_cnt, 0);
55277 + atomic_set_unchecked(&vport->disc_trc_cnt, 0);
55278
55279 snprintf(name, sizeof(name), "discovery_trace");
55280 vport->debug_disc_trc =
55281 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
55282 index f962118..6706983 100644
55283 --- a/drivers/scsi/lpfc/lpfc_init.c
55284 +++ b/drivers/scsi/lpfc/lpfc_init.c
55285 @@ -11416,8 +11416,10 @@ lpfc_init(void)
55286 "misc_register returned with status %d", error);
55287
55288 if (lpfc_enable_npiv) {
55289 - lpfc_transport_functions.vport_create = lpfc_vport_create;
55290 - lpfc_transport_functions.vport_delete = lpfc_vport_delete;
55291 + pax_open_kernel();
55292 + *(void **)&lpfc_transport_functions.vport_create = lpfc_vport_create;
55293 + *(void **)&lpfc_transport_functions.vport_delete = lpfc_vport_delete;
55294 + pax_close_kernel();
55295 }
55296 lpfc_transport_template =
55297 fc_attach_transport(&lpfc_transport_functions);
55298 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
55299 index e5eb40d..056dcd4 100644
55300 --- a/drivers/scsi/lpfc/lpfc_scsi.c
55301 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
55302 @@ -261,7 +261,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
55303 unsigned long expires;
55304
55305 spin_lock_irqsave(&phba->hbalock, flags);
55306 - atomic_inc(&phba->num_rsrc_err);
55307 + atomic_inc_unchecked(&phba->num_rsrc_err);
55308 phba->last_rsrc_error_time = jiffies;
55309
55310 expires = phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL;
55311 @@ -303,8 +303,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
55312 unsigned long num_rsrc_err, num_cmd_success;
55313 int i;
55314
55315 - num_rsrc_err = atomic_read(&phba->num_rsrc_err);
55316 - num_cmd_success = atomic_read(&phba->num_cmd_success);
55317 + num_rsrc_err = atomic_read_unchecked(&phba->num_rsrc_err);
55318 + num_cmd_success = atomic_read_unchecked(&phba->num_cmd_success);
55319
55320 /*
55321 * The error and success command counters are global per
55322 @@ -331,8 +331,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
55323 }
55324 }
55325 lpfc_destroy_vport_work_array(phba, vports);
55326 - atomic_set(&phba->num_rsrc_err, 0);
55327 - atomic_set(&phba->num_cmd_success, 0);
55328 + atomic_set_unchecked(&phba->num_rsrc_err, 0);
55329 + atomic_set_unchecked(&phba->num_cmd_success, 0);
55330 }
55331
55332 /**
55333 diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
55334 index 20c3754..1b05e727 100644
55335 --- a/drivers/scsi/megaraid/megaraid_sas.h
55336 +++ b/drivers/scsi/megaraid/megaraid_sas.h
55337 @@ -1700,7 +1700,7 @@ struct megasas_instance {
55338 s8 init_id;
55339
55340 u16 max_num_sge;
55341 - u16 max_fw_cmds;
55342 + u16 max_fw_cmds __intentional_overflow(-1);
55343 u16 max_mfi_cmds;
55344 u16 max_scsi_cmds;
55345 u32 max_sectors_per_req;
55346 diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
55347 index 3f26147..ee8efd1 100644
55348 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
55349 +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
55350 @@ -1509,7 +1509,7 @@ _scsih_get_resync(struct device *dev)
55351 {
55352 struct scsi_device *sdev = to_scsi_device(dev);
55353 struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
55354 - static struct _raid_device *raid_device;
55355 + struct _raid_device *raid_device;
55356 unsigned long flags;
55357 Mpi2RaidVolPage0_t vol_pg0;
55358 Mpi2ConfigReply_t mpi_reply;
55359 @@ -1561,7 +1561,7 @@ _scsih_get_state(struct device *dev)
55360 {
55361 struct scsi_device *sdev = to_scsi_device(dev);
55362 struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
55363 - static struct _raid_device *raid_device;
55364 + struct _raid_device *raid_device;
55365 unsigned long flags;
55366 Mpi2RaidVolPage0_t vol_pg0;
55367 Mpi2ConfigReply_t mpi_reply;
55368 @@ -6641,7 +6641,7 @@ _scsih_sas_ir_operation_status_event(struct MPT2SAS_ADAPTER *ioc,
55369 Mpi2EventDataIrOperationStatus_t *event_data =
55370 (Mpi2EventDataIrOperationStatus_t *)
55371 fw_event->event_data;
55372 - static struct _raid_device *raid_device;
55373 + struct _raid_device *raid_device;
55374 unsigned long flags;
55375 u16 handle;
55376
55377 @@ -7112,7 +7112,7 @@ _scsih_scan_for_devices_after_reset(struct MPT2SAS_ADAPTER *ioc)
55378 u64 sas_address;
55379 struct _sas_device *sas_device;
55380 struct _sas_node *expander_device;
55381 - static struct _raid_device *raid_device;
55382 + struct _raid_device *raid_device;
55383 u8 retry_count;
55384 unsigned long flags;
55385
55386 diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
55387 index ed31d8c..ab856b3 100644
55388 --- a/drivers/scsi/pmcraid.c
55389 +++ b/drivers/scsi/pmcraid.c
55390 @@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
55391 res->scsi_dev = scsi_dev;
55392 scsi_dev->hostdata = res;
55393 res->change_detected = 0;
55394 - atomic_set(&res->read_failures, 0);
55395 - atomic_set(&res->write_failures, 0);
55396 + atomic_set_unchecked(&res->read_failures, 0);
55397 + atomic_set_unchecked(&res->write_failures, 0);
55398 rc = 0;
55399 }
55400 spin_unlock_irqrestore(&pinstance->resource_lock, lock_flags);
55401 @@ -2640,9 +2640,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
55402
55403 /* If this was a SCSI read/write command keep count of errors */
55404 if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_READ_CMD)
55405 - atomic_inc(&res->read_failures);
55406 + atomic_inc_unchecked(&res->read_failures);
55407 else if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_WRITE_CMD)
55408 - atomic_inc(&res->write_failures);
55409 + atomic_inc_unchecked(&res->write_failures);
55410
55411 if (!RES_IS_GSCSI(res->cfg_entry) &&
55412 masked_ioasc != PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR) {
55413 @@ -3468,7 +3468,7 @@ static int pmcraid_queuecommand_lck(
55414 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
55415 * hrrq_id assigned here in queuecommand
55416 */
55417 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
55418 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
55419 pinstance->num_hrrq;
55420 cmd->cmd_done = pmcraid_io_done;
55421
55422 @@ -3782,7 +3782,7 @@ static long pmcraid_ioctl_passthrough(
55423 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
55424 * hrrq_id assigned here in queuecommand
55425 */
55426 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
55427 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
55428 pinstance->num_hrrq;
55429
55430 if (request_size) {
55431 @@ -4420,7 +4420,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
55432
55433 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
55434 /* add resources only after host is added into system */
55435 - if (!atomic_read(&pinstance->expose_resources))
55436 + if (!atomic_read_unchecked(&pinstance->expose_resources))
55437 return;
55438
55439 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
55440 @@ -5237,8 +5237,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
55441 init_waitqueue_head(&pinstance->reset_wait_q);
55442
55443 atomic_set(&pinstance->outstanding_cmds, 0);
55444 - atomic_set(&pinstance->last_message_id, 0);
55445 - atomic_set(&pinstance->expose_resources, 0);
55446 + atomic_set_unchecked(&pinstance->last_message_id, 0);
55447 + atomic_set_unchecked(&pinstance->expose_resources, 0);
55448
55449 INIT_LIST_HEAD(&pinstance->free_res_q);
55450 INIT_LIST_HEAD(&pinstance->used_res_q);
55451 @@ -5951,7 +5951,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
55452 /* Schedule worker thread to handle CCN and take care of adding and
55453 * removing devices to OS
55454 */
55455 - atomic_set(&pinstance->expose_resources, 1);
55456 + atomic_set_unchecked(&pinstance->expose_resources, 1);
55457 schedule_work(&pinstance->worker_q);
55458 return rc;
55459
55460 diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h
55461 index e1d150f..6c6df44 100644
55462 --- a/drivers/scsi/pmcraid.h
55463 +++ b/drivers/scsi/pmcraid.h
55464 @@ -748,7 +748,7 @@ struct pmcraid_instance {
55465 struct pmcraid_isr_param hrrq_vector[PMCRAID_NUM_MSIX_VECTORS];
55466
55467 /* Message id as filled in last fired IOARCB, used to identify HRRQ */
55468 - atomic_t last_message_id;
55469 + atomic_unchecked_t last_message_id;
55470
55471 /* configuration table */
55472 struct pmcraid_config_table *cfg_table;
55473 @@ -777,7 +777,7 @@ struct pmcraid_instance {
55474 atomic_t outstanding_cmds;
55475
55476 /* should add/delete resources to mid-layer now ?*/
55477 - atomic_t expose_resources;
55478 + atomic_unchecked_t expose_resources;
55479
55480
55481
55482 @@ -813,8 +813,8 @@ struct pmcraid_resource_entry {
55483 struct pmcraid_config_table_entry_ext cfg_entry_ext;
55484 };
55485 struct scsi_device *scsi_dev; /* Link scsi_device structure */
55486 - atomic_t read_failures; /* count of failed READ commands */
55487 - atomic_t write_failures; /* count of failed WRITE commands */
55488 + atomic_unchecked_t read_failures; /* count of failed READ commands */
55489 + atomic_unchecked_t write_failures; /* count of failed WRITE commands */
55490
55491 /* To indicate add/delete/modify during CCN */
55492 u8 change_detected;
55493 diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
55494 index 437254e..a66eb82 100644
55495 --- a/drivers/scsi/qla2xxx/qla_attr.c
55496 +++ b/drivers/scsi/qla2xxx/qla_attr.c
55497 @@ -2192,7 +2192,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
55498 return 0;
55499 }
55500
55501 -struct fc_function_template qla2xxx_transport_functions = {
55502 +fc_function_template_no_const qla2xxx_transport_functions = {
55503
55504 .show_host_node_name = 1,
55505 .show_host_port_name = 1,
55506 @@ -2240,7 +2240,7 @@ struct fc_function_template qla2xxx_transport_functions = {
55507 .bsg_timeout = qla24xx_bsg_timeout,
55508 };
55509
55510 -struct fc_function_template qla2xxx_transport_vport_functions = {
55511 +fc_function_template_no_const qla2xxx_transport_vport_functions = {
55512
55513 .show_host_node_name = 1,
55514 .show_host_port_name = 1,
55515 diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
55516 index 7686bfe..4710893 100644
55517 --- a/drivers/scsi/qla2xxx/qla_gbl.h
55518 +++ b/drivers/scsi/qla2xxx/qla_gbl.h
55519 @@ -571,8 +571,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *, size_t);
55520 struct device_attribute;
55521 extern struct device_attribute *qla2x00_host_attrs[];
55522 struct fc_function_template;
55523 -extern struct fc_function_template qla2xxx_transport_functions;
55524 -extern struct fc_function_template qla2xxx_transport_vport_functions;
55525 +extern fc_function_template_no_const qla2xxx_transport_functions;
55526 +extern fc_function_template_no_const qla2xxx_transport_vport_functions;
55527 extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *);
55528 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *, bool);
55529 extern void qla2x00_init_host_attr(scsi_qla_host_t *);
55530 diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
55531 index 8a5cac8..4eba6ab 100644
55532 --- a/drivers/scsi/qla2xxx/qla_os.c
55533 +++ b/drivers/scsi/qla2xxx/qla_os.c
55534 @@ -1435,8 +1435,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
55535 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
55536 /* Ok, a 64bit DMA mask is applicable. */
55537 ha->flags.enable_64bit_addressing = 1;
55538 - ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
55539 - ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
55540 + pax_open_kernel();
55541 + *(void **)&ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
55542 + *(void **)&ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
55543 + pax_close_kernel();
55544 return;
55545 }
55546 }
55547 diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
55548 index a7cfc27..151f483 100644
55549 --- a/drivers/scsi/qla4xxx/ql4_def.h
55550 +++ b/drivers/scsi/qla4xxx/ql4_def.h
55551 @@ -306,7 +306,7 @@ struct ddb_entry {
55552 * (4000 only) */
55553 atomic_t relogin_timer; /* Max Time to wait for
55554 * relogin to complete */
55555 - atomic_t relogin_retry_count; /* Num of times relogin has been
55556 + atomic_unchecked_t relogin_retry_count; /* Num of times relogin has been
55557 * retried */
55558 uint32_t default_time2wait; /* Default Min time between
55559 * relogins (+aens) */
55560 diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
55561 index 6d25879..3031a9f 100644
55562 --- a/drivers/scsi/qla4xxx/ql4_os.c
55563 +++ b/drivers/scsi/qla4xxx/ql4_os.c
55564 @@ -4491,12 +4491,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
55565 */
55566 if (!iscsi_is_session_online(cls_sess)) {
55567 /* Reset retry relogin timer */
55568 - atomic_inc(&ddb_entry->relogin_retry_count);
55569 + atomic_inc_unchecked(&ddb_entry->relogin_retry_count);
55570 DEBUG2(ql4_printk(KERN_INFO, ha,
55571 "%s: index[%d] relogin timed out-retrying"
55572 " relogin (%d), retry (%d)\n", __func__,
55573 ddb_entry->fw_ddb_index,
55574 - atomic_read(&ddb_entry->relogin_retry_count),
55575 + atomic_read_unchecked(&ddb_entry->relogin_retry_count),
55576 ddb_entry->default_time2wait + 4));
55577 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
55578 atomic_set(&ddb_entry->retry_relogin_timer,
55579 @@ -6604,7 +6604,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
55580
55581 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
55582 atomic_set(&ddb_entry->relogin_timer, 0);
55583 - atomic_set(&ddb_entry->relogin_retry_count, 0);
55584 + atomic_set_unchecked(&ddb_entry->relogin_retry_count, 0);
55585 def_timeout = le16_to_cpu(ddb_entry->fw_ddb_entry.def_timeout);
55586 ddb_entry->default_relogin_timeout =
55587 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
55588 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
55589 index 207d6a7..bf155b5 100644
55590 --- a/drivers/scsi/scsi.c
55591 +++ b/drivers/scsi/scsi.c
55592 @@ -591,7 +591,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
55593
55594 good_bytes = scsi_bufflen(cmd);
55595 if (cmd->request->cmd_type != REQ_TYPE_BLOCK_PC) {
55596 - int old_good_bytes = good_bytes;
55597 + unsigned int old_good_bytes = good_bytes;
55598 drv = scsi_cmd_to_driver(cmd);
55599 if (drv->done)
55600 good_bytes = drv->done(cmd);
55601 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
55602 index 448ebda..9bd345f 100644
55603 --- a/drivers/scsi/scsi_lib.c
55604 +++ b/drivers/scsi/scsi_lib.c
55605 @@ -1597,7 +1597,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
55606 shost = sdev->host;
55607 scsi_init_cmd_errh(cmd);
55608 cmd->result = DID_NO_CONNECT << 16;
55609 - atomic_inc(&cmd->device->iorequest_cnt);
55610 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
55611
55612 /*
55613 * SCSI request completion path will do scsi_device_unbusy(),
55614 @@ -1620,9 +1620,9 @@ static void scsi_softirq_done(struct request *rq)
55615
55616 INIT_LIST_HEAD(&cmd->eh_entry);
55617
55618 - atomic_inc(&cmd->device->iodone_cnt);
55619 + atomic_inc_unchecked(&cmd->device->iodone_cnt);
55620 if (cmd->result)
55621 - atomic_inc(&cmd->device->ioerr_cnt);
55622 + atomic_inc_unchecked(&cmd->device->ioerr_cnt);
55623
55624 disposition = scsi_decide_disposition(cmd);
55625 if (disposition != SUCCESS &&
55626 @@ -1663,7 +1663,7 @@ static int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
55627 struct Scsi_Host *host = cmd->device->host;
55628 int rtn = 0;
55629
55630 - atomic_inc(&cmd->device->iorequest_cnt);
55631 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
55632
55633 /* check if the device is still usable */
55634 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
55635 diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
55636 index 9ad4116..4e736fc 100644
55637 --- a/drivers/scsi/scsi_sysfs.c
55638 +++ b/drivers/scsi/scsi_sysfs.c
55639 @@ -788,7 +788,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
55640 char *buf) \
55641 { \
55642 struct scsi_device *sdev = to_scsi_device(dev); \
55643 - unsigned long long count = atomic_read(&sdev->field); \
55644 + unsigned long long count = atomic_read_unchecked(&sdev->field); \
55645 return snprintf(buf, 20, "0x%llx\n", count); \
55646 } \
55647 static DEVICE_ATTR(field, S_IRUGO, show_iostat_##field, NULL)
55648 diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
55649 index 24eaaf6..de30ec9 100644
55650 --- a/drivers/scsi/scsi_transport_fc.c
55651 +++ b/drivers/scsi/scsi_transport_fc.c
55652 @@ -502,7 +502,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
55653 * Netlink Infrastructure
55654 */
55655
55656 -static atomic_t fc_event_seq;
55657 +static atomic_unchecked_t fc_event_seq;
55658
55659 /**
55660 * fc_get_event_number - Obtain the next sequential FC event number
55661 @@ -515,7 +515,7 @@ static atomic_t fc_event_seq;
55662 u32
55663 fc_get_event_number(void)
55664 {
55665 - return atomic_add_return(1, &fc_event_seq);
55666 + return atomic_add_return_unchecked(1, &fc_event_seq);
55667 }
55668 EXPORT_SYMBOL(fc_get_event_number);
55669
55670 @@ -659,7 +659,7 @@ static __init int fc_transport_init(void)
55671 {
55672 int error;
55673
55674 - atomic_set(&fc_event_seq, 0);
55675 + atomic_set_unchecked(&fc_event_seq, 0);
55676
55677 error = transport_class_register(&fc_host_class);
55678 if (error)
55679 @@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
55680 char *cp;
55681
55682 *val = simple_strtoul(buf, &cp, 0);
55683 - if ((*cp && (*cp != '\n')) || (*val < 0))
55684 + if (*cp && (*cp != '\n'))
55685 return -EINVAL;
55686 /*
55687 * Check for overflow; dev_loss_tmo is u32
55688 diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
55689 index 55647aa..b647d05 100644
55690 --- a/drivers/scsi/scsi_transport_iscsi.c
55691 +++ b/drivers/scsi/scsi_transport_iscsi.c
55692 @@ -79,7 +79,7 @@ struct iscsi_internal {
55693 struct transport_container session_cont;
55694 };
55695
55696 -static atomic_t iscsi_session_nr; /* sysfs session id for next new session */
55697 +static atomic_unchecked_t iscsi_session_nr; /* sysfs session id for next new session */
55698 static struct workqueue_struct *iscsi_eh_timer_workq;
55699
55700 static DEFINE_IDA(iscsi_sess_ida);
55701 @@ -2073,7 +2073,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
55702 int err;
55703
55704 ihost = shost->shost_data;
55705 - session->sid = atomic_add_return(1, &iscsi_session_nr);
55706 + session->sid = atomic_add_return_unchecked(1, &iscsi_session_nr);
55707
55708 if (target_id == ISCSI_MAX_TARGET) {
55709 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
55710 @@ -4517,7 +4517,7 @@ static __init int iscsi_transport_init(void)
55711 printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
55712 ISCSI_TRANSPORT_VERSION);
55713
55714 - atomic_set(&iscsi_session_nr, 0);
55715 + atomic_set_unchecked(&iscsi_session_nr, 0);
55716
55717 err = class_register(&iscsi_transport_class);
55718 if (err)
55719 diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
55720 index e3cd3ec..00560ec 100644
55721 --- a/drivers/scsi/scsi_transport_srp.c
55722 +++ b/drivers/scsi/scsi_transport_srp.c
55723 @@ -35,7 +35,7 @@
55724 #include "scsi_priv.h"
55725
55726 struct srp_host_attrs {
55727 - atomic_t next_port_id;
55728 + atomic_unchecked_t next_port_id;
55729 };
55730 #define to_srp_host_attrs(host) ((struct srp_host_attrs *)(host)->shost_data)
55731
55732 @@ -105,7 +105,7 @@ static int srp_host_setup(struct transport_container *tc, struct device *dev,
55733 struct Scsi_Host *shost = dev_to_shost(dev);
55734 struct srp_host_attrs *srp_host = to_srp_host_attrs(shost);
55735
55736 - atomic_set(&srp_host->next_port_id, 0);
55737 + atomic_set_unchecked(&srp_host->next_port_id, 0);
55738 return 0;
55739 }
55740
55741 @@ -752,7 +752,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
55742 rport_fast_io_fail_timedout);
55743 INIT_DELAYED_WORK(&rport->dev_loss_work, rport_dev_loss_timedout);
55744
55745 - id = atomic_inc_return(&to_srp_host_attrs(shost)->next_port_id);
55746 + id = atomic_inc_return_unchecked(&to_srp_host_attrs(shost)->next_port_id);
55747 dev_set_name(&rport->dev, "port-%d:%d", shost->host_no, id);
55748
55749 transport_setup_device(&rport->dev);
55750 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
55751 index a20da8c..7f47bac 100644
55752 --- a/drivers/scsi/sd.c
55753 +++ b/drivers/scsi/sd.c
55754 @@ -111,7 +111,7 @@ static int sd_resume(struct device *);
55755 static void sd_rescan(struct device *);
55756 static int sd_init_command(struct scsi_cmnd *SCpnt);
55757 static void sd_uninit_command(struct scsi_cmnd *SCpnt);
55758 -static int sd_done(struct scsi_cmnd *);
55759 +static unsigned int sd_done(struct scsi_cmnd *);
55760 static int sd_eh_action(struct scsi_cmnd *, int);
55761 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
55762 static void scsi_disk_release(struct device *cdev);
55763 @@ -1646,7 +1646,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)
55764 *
55765 * Note: potentially run from within an ISR. Must not block.
55766 **/
55767 -static int sd_done(struct scsi_cmnd *SCpnt)
55768 +static unsigned int sd_done(struct scsi_cmnd *SCpnt)
55769 {
55770 int result = SCpnt->result;
55771 unsigned int good_bytes = result ? 0 : scsi_bufflen(SCpnt);
55772 @@ -2973,7 +2973,7 @@ static int sd_probe(struct device *dev)
55773 sdkp->disk = gd;
55774 sdkp->index = index;
55775 atomic_set(&sdkp->openers, 0);
55776 - atomic_set(&sdkp->device->ioerr_cnt, 0);
55777 + atomic_set_unchecked(&sdkp->device->ioerr_cnt, 0);
55778
55779 if (!sdp->request_queue->rq_timeout) {
55780 if (sdp->type != TYPE_MOD)
55781 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
55782 index 9d7b7db..33ecc51 100644
55783 --- a/drivers/scsi/sg.c
55784 +++ b/drivers/scsi/sg.c
55785 @@ -1083,7 +1083,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
55786 sdp->disk->disk_name,
55787 MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
55788 NULL,
55789 - (char *)arg);
55790 + (char __user *)arg);
55791 case BLKTRACESTART:
55792 return blk_trace_startstop(sdp->device->request_queue, 1);
55793 case BLKTRACESTOP:
55794 diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
55795 index 8bd54a6..58fa0d6 100644
55796 --- a/drivers/scsi/sr.c
55797 +++ b/drivers/scsi/sr.c
55798 @@ -80,7 +80,7 @@ static DEFINE_MUTEX(sr_mutex);
55799 static int sr_probe(struct device *);
55800 static int sr_remove(struct device *);
55801 static int sr_init_command(struct scsi_cmnd *SCpnt);
55802 -static int sr_done(struct scsi_cmnd *);
55803 +static unsigned int sr_done(struct scsi_cmnd *);
55804 static int sr_runtime_suspend(struct device *dev);
55805
55806 static struct dev_pm_ops sr_pm_ops = {
55807 @@ -312,13 +312,13 @@ do_tur:
55808 * It will be notified on the end of a SCSI read / write, and will take one
55809 * of several actions based on success or failure.
55810 */
55811 -static int sr_done(struct scsi_cmnd *SCpnt)
55812 +static unsigned int sr_done(struct scsi_cmnd *SCpnt)
55813 {
55814 int result = SCpnt->result;
55815 - int this_count = scsi_bufflen(SCpnt);
55816 - int good_bytes = (result == 0 ? this_count : 0);
55817 - int block_sectors = 0;
55818 - long error_sector;
55819 + unsigned int this_count = scsi_bufflen(SCpnt);
55820 + unsigned int good_bytes = (result == 0 ? this_count : 0);
55821 + unsigned int block_sectors = 0;
55822 + sector_t error_sector;
55823 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
55824
55825 #ifdef DEBUG
55826 @@ -351,9 +351,12 @@ static int sr_done(struct scsi_cmnd *SCpnt)
55827 if (cd->device->sector_size == 2048)
55828 error_sector <<= 2;
55829 error_sector &= ~(block_sectors - 1);
55830 - good_bytes = (error_sector -
55831 - blk_rq_pos(SCpnt->request)) << 9;
55832 - if (good_bytes < 0 || good_bytes >= this_count)
55833 + if (error_sector >= blk_rq_pos(SCpnt->request)) {
55834 + good_bytes = (error_sector -
55835 + blk_rq_pos(SCpnt->request)) << 9;
55836 + if (good_bytes >= this_count)
55837 + good_bytes = 0;
55838 + } else
55839 good_bytes = 0;
55840 /*
55841 * The SCSI specification allows for the value
55842 diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
55843 index c0d660f..24a5854 100644
55844 --- a/drivers/soc/tegra/fuse/fuse-tegra.c
55845 +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
55846 @@ -71,7 +71,7 @@ static ssize_t fuse_read(struct file *fd, struct kobject *kobj,
55847 return i;
55848 }
55849
55850 -static struct bin_attribute fuse_bin_attr = {
55851 +static bin_attribute_no_const fuse_bin_attr = {
55852 .attr = { .name = "fuse", .mode = S_IRUGO, },
55853 .read = fuse_read,
55854 };
55855 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
55856 index 9ce2f15..1ff9b36 100644
55857 --- a/drivers/spi/spi.c
55858 +++ b/drivers/spi/spi.c
55859 @@ -2215,7 +2215,7 @@ int spi_bus_unlock(struct spi_master *master)
55860 EXPORT_SYMBOL_GPL(spi_bus_unlock);
55861
55862 /* portable code must never pass more than 32 bytes */
55863 -#define SPI_BUFSIZ max(32, SMP_CACHE_BYTES)
55864 +#define SPI_BUFSIZ max(32UL, SMP_CACHE_BYTES)
55865
55866 static u8 *buf;
55867
55868 diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
55869 index b41429f..2de5373 100644
55870 --- a/drivers/staging/android/timed_output.c
55871 +++ b/drivers/staging/android/timed_output.c
55872 @@ -25,7 +25,7 @@
55873 #include "timed_output.h"
55874
55875 static struct class *timed_output_class;
55876 -static atomic_t device_count;
55877 +static atomic_unchecked_t device_count;
55878
55879 static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
55880 char *buf)
55881 @@ -65,7 +65,7 @@ static int create_timed_output_class(void)
55882 timed_output_class = class_create(THIS_MODULE, "timed_output");
55883 if (IS_ERR(timed_output_class))
55884 return PTR_ERR(timed_output_class);
55885 - atomic_set(&device_count, 0);
55886 + atomic_set_unchecked(&device_count, 0);
55887 timed_output_class->dev_groups = timed_output_groups;
55888 }
55889
55890 @@ -83,7 +83,7 @@ int timed_output_dev_register(struct timed_output_dev *tdev)
55891 if (ret < 0)
55892 return ret;
55893
55894 - tdev->index = atomic_inc_return(&device_count);
55895 + tdev->index = atomic_inc_return_unchecked(&device_count);
55896 tdev->dev = device_create(timed_output_class, NULL,
55897 MKDEV(0, tdev->index), NULL, "%s", tdev->name);
55898 if (IS_ERR(tdev->dev))
55899 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
55900 index 985d94b..49c59fb 100644
55901 --- a/drivers/staging/comedi/comedi_fops.c
55902 +++ b/drivers/staging/comedi/comedi_fops.c
55903 @@ -314,8 +314,8 @@ static void comedi_file_reset(struct file *file)
55904 }
55905 cfp->last_attached = dev->attached;
55906 cfp->last_detach_count = dev->detach_count;
55907 - ACCESS_ONCE(cfp->read_subdev) = read_s;
55908 - ACCESS_ONCE(cfp->write_subdev) = write_s;
55909 + ACCESS_ONCE_RW(cfp->read_subdev) = read_s;
55910 + ACCESS_ONCE_RW(cfp->write_subdev) = write_s;
55911 }
55912
55913 static void comedi_file_check(struct file *file)
55914 @@ -1983,7 +1983,7 @@ static int do_setrsubd_ioctl(struct comedi_device *dev, unsigned long arg,
55915 !(s_old->async->cmd.flags & CMDF_WRITE))
55916 return -EBUSY;
55917
55918 - ACCESS_ONCE(cfp->read_subdev) = s_new;
55919 + ACCESS_ONCE_RW(cfp->read_subdev) = s_new;
55920 return 0;
55921 }
55922
55923 @@ -2025,7 +2025,7 @@ static int do_setwsubd_ioctl(struct comedi_device *dev, unsigned long arg,
55924 (s_old->async->cmd.flags & CMDF_WRITE))
55925 return -EBUSY;
55926
55927 - ACCESS_ONCE(cfp->write_subdev) = s_new;
55928 + ACCESS_ONCE_RW(cfp->write_subdev) = s_new;
55929 return 0;
55930 }
55931
55932 diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c
55933 index b13318a..883e2a8 100644
55934 --- a/drivers/staging/dgnc/dgnc_mgmt.c
55935 +++ b/drivers/staging/dgnc/dgnc_mgmt.c
55936 @@ -115,6 +115,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
55937
55938 spin_lock_irqsave(&dgnc_global_lock, flags);
55939
55940 + memset(&ddi, 0, sizeof(ddi));
55941 ddi.dinfo_nboards = dgnc_NumBoards;
55942 sprintf(ddi.dinfo_version, "%s", DG_PART);
55943
55944 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
55945 index 9cc8141..ffd5039 100644
55946 --- a/drivers/staging/fbtft/fbtft-core.c
55947 +++ b/drivers/staging/fbtft/fbtft-core.c
55948 @@ -681,7 +681,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
55949 {
55950 struct fb_info *info;
55951 struct fbtft_par *par;
55952 - struct fb_ops *fbops = NULL;
55953 + fb_ops_no_const *fbops = NULL;
55954 struct fb_deferred_io *fbdefio = NULL;
55955 struct fbtft_platform_data *pdata = dev->platform_data;
55956 u8 *vmem = NULL;
55957 diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
55958 index 7d817eb..d22e49e 100644
55959 --- a/drivers/staging/fbtft/fbtft.h
55960 +++ b/drivers/staging/fbtft/fbtft.h
55961 @@ -106,7 +106,7 @@ struct fbtft_ops {
55962
55963 int (*set_var)(struct fbtft_par *par);
55964 int (*set_gamma)(struct fbtft_par *par, unsigned long *curves);
55965 -};
55966 +} __no_const;
55967
55968 /**
55969 * struct fbtft_display - Describes the display properties
55970 diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c
55971 index 001348c..cfaac8a 100644
55972 --- a/drivers/staging/gdm724x/gdm_tty.c
55973 +++ b/drivers/staging/gdm724x/gdm_tty.c
55974 @@ -44,7 +44,7 @@
55975 #define gdm_tty_send_control(n, r, v, d, l) (\
55976 n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
55977
55978 -#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
55979 +#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && atomic_read(&gdm->port.count))
55980
55981 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
55982 static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
55983 diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
55984 index b892f2c..9b4898a 100644
55985 --- a/drivers/staging/iio/accel/lis3l02dq_ring.c
55986 +++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
55987 @@ -118,7 +118,7 @@ static int lis3l02dq_get_buffer_element(struct iio_dev *indio_dev,
55988 int scan_count = bitmap_weight(indio_dev->active_scan_mask,
55989 indio_dev->masklength);
55990
55991 - rx_array = kcalloc(4, scan_count, GFP_KERNEL);
55992 + rx_array = kcalloc(scan_count, 4, GFP_KERNEL);
55993 if (!rx_array)
55994 return -ENOMEM;
55995 ret = lis3l02dq_read_all(indio_dev, rx_array);
55996 diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
55997 index d98e229..9c59bc2 100644
55998 --- a/drivers/staging/iio/adc/ad7280a.c
55999 +++ b/drivers/staging/iio/adc/ad7280a.c
56000 @@ -547,8 +547,8 @@ static int ad7280_attr_init(struct ad7280_state *st)
56001 {
56002 int dev, ch, cnt;
56003
56004 - st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) *
56005 - (st->slave_num + 1) * AD7280A_CELLS_PER_DEV,
56006 + st->iio_attr = kcalloc(sizeof(*st->iio_attr) *
56007 + (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, 2,
56008 GFP_KERNEL);
56009 if (st->iio_attr == NULL)
56010 return -ENOMEM;
56011 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
56012 index de11f1b..f7181cf 100644
56013 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c
56014 +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
56015 @@ -487,13 +487,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
56016 return 0;
56017 }
56018
56019 -sfw_test_client_ops_t brw_test_client;
56020 -void brw_init_test_client(void)
56021 -{
56022 - brw_test_client.tso_init = brw_client_init;
56023 - brw_test_client.tso_fini = brw_client_fini;
56024 - brw_test_client.tso_prep_rpc = brw_client_prep_rpc;
56025 - brw_test_client.tso_done_rpc = brw_client_done_rpc;
56026 +sfw_test_client_ops_t brw_test_client = {
56027 + .tso_init = brw_client_init,
56028 + .tso_fini = brw_client_fini,
56029 + .tso_prep_rpc = brw_client_prep_rpc,
56030 + .tso_done_rpc = brw_client_done_rpc,
56031 };
56032
56033 srpc_service_t brw_test_service;
56034 diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c
56035 index 7c5185a..51c2ae7 100644
56036 --- a/drivers/staging/lustre/lnet/selftest/framework.c
56037 +++ b/drivers/staging/lustre/lnet/selftest/framework.c
56038 @@ -1628,12 +1628,10 @@ static srpc_service_t sfw_services[] = {
56039
56040 extern sfw_test_client_ops_t ping_test_client;
56041 extern srpc_service_t ping_test_service;
56042 -extern void ping_init_test_client(void);
56043 extern void ping_init_test_service(void);
56044
56045 extern sfw_test_client_ops_t brw_test_client;
56046 extern srpc_service_t brw_test_service;
56047 -extern void brw_init_test_client(void);
56048 extern void brw_init_test_service(void);
56049
56050
56051 @@ -1675,12 +1673,10 @@ sfw_startup(void)
56052 INIT_LIST_HEAD(&sfw_data.fw_zombie_rpcs);
56053 INIT_LIST_HEAD(&sfw_data.fw_zombie_sessions);
56054
56055 - brw_init_test_client();
56056 brw_init_test_service();
56057 rc = sfw_register_test(&brw_test_service, &brw_test_client);
56058 LASSERT(rc == 0);
56059
56060 - ping_init_test_client();
56061 ping_init_test_service();
56062 rc = sfw_register_test(&ping_test_service, &ping_test_client);
56063 LASSERT(rc == 0);
56064 diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c
56065 index 1dab998..edfe0ac 100644
56066 --- a/drivers/staging/lustre/lnet/selftest/ping_test.c
56067 +++ b/drivers/staging/lustre/lnet/selftest/ping_test.c
56068 @@ -211,14 +211,12 @@ ping_server_handle(struct srpc_server_rpc *rpc)
56069 return 0;
56070 }
56071
56072 -sfw_test_client_ops_t ping_test_client;
56073 -void ping_init_test_client(void)
56074 -{
56075 - ping_test_client.tso_init = ping_client_init;
56076 - ping_test_client.tso_fini = ping_client_fini;
56077 - ping_test_client.tso_prep_rpc = ping_client_prep_rpc;
56078 - ping_test_client.tso_done_rpc = ping_client_done_rpc;
56079 -}
56080 +sfw_test_client_ops_t ping_test_client = {
56081 + .tso_init = ping_client_init,
56082 + .tso_fini = ping_client_fini,
56083 + .tso_prep_rpc = ping_client_prep_rpc,
56084 + .tso_done_rpc = ping_client_done_rpc,
56085 +};
56086
56087 srpc_service_t ping_test_service;
56088 void ping_init_test_service(void)
56089 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
56090 index f6f4c03..cdc3556 100644
56091 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
56092 +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
56093 @@ -1107,7 +1107,7 @@ struct ldlm_callback_suite {
56094 ldlm_completion_callback lcs_completion;
56095 ldlm_blocking_callback lcs_blocking;
56096 ldlm_glimpse_callback lcs_glimpse;
56097 -};
56098 +} __no_const;
56099
56100 /* ldlm_lockd.c */
56101 int ldlm_del_waiting_lock(struct ldlm_lock *lock);
56102 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h
56103 index 55452e5..43b0f2f 100644
56104 --- a/drivers/staging/lustre/lustre/include/obd.h
56105 +++ b/drivers/staging/lustre/lustre/include/obd.h
56106 @@ -1364,7 +1364,7 @@ struct md_ops {
56107 * lprocfs_alloc_md_stats() in obdclass/lprocfs_status.c. Also, add a
56108 * wrapper function in include/linux/obd_class.h.
56109 */
56110 -};
56111 +} __no_const;
56112
56113 struct lsm_operations {
56114 void (*lsm_free)(struct lov_stripe_md *);
56115 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
56116 index a4c252f..b21acac 100644
56117 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
56118 +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
56119 @@ -258,7 +258,7 @@ ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq,
56120 int added = (mode == LCK_NL);
56121 int overlaps = 0;
56122 int splitted = 0;
56123 - const struct ldlm_callback_suite null_cbs = { NULL };
56124 + const struct ldlm_callback_suite null_cbs = { };
56125
56126 CDEBUG(D_DLMTRACE,
56127 "flags %#llx owner %llu pid %u mode %u start %llu end %llu\n",
56128 diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
56129 index e60b2e9..ad9ceb3 100644
56130 --- a/drivers/staging/lustre/lustre/libcfs/module.c
56131 +++ b/drivers/staging/lustre/lustre/libcfs/module.c
56132 @@ -377,11 +377,11 @@ out:
56133
56134
56135 struct cfs_psdev_ops libcfs_psdev_ops = {
56136 - libcfs_psdev_open,
56137 - libcfs_psdev_release,
56138 - NULL,
56139 - NULL,
56140 - libcfs_ioctl
56141 + .p_open = libcfs_psdev_open,
56142 + .p_close = libcfs_psdev_release,
56143 + .p_read = NULL,
56144 + .p_write = NULL,
56145 + .p_ioctl = libcfs_ioctl
56146 };
56147
56148 static int init_libcfs_module(void)
56149 @@ -623,7 +623,7 @@ static int proc_console_max_delay_cs(struct ctl_table *table, int write,
56150 loff_t *ppos)
56151 {
56152 int rc, max_delay_cs;
56153 - struct ctl_table dummy = *table;
56154 + ctl_table_no_const dummy = *table;
56155 long d;
56156
56157 dummy.data = &max_delay_cs;
56158 @@ -656,7 +656,7 @@ static int proc_console_min_delay_cs(struct ctl_table *table, int write,
56159 loff_t *ppos)
56160 {
56161 int rc, min_delay_cs;
56162 - struct ctl_table dummy = *table;
56163 + ctl_table_no_const dummy = *table;
56164 long d;
56165
56166 dummy.data = &min_delay_cs;
56167 @@ -688,7 +688,7 @@ static int proc_console_backoff(struct ctl_table *table, int write,
56168 void __user *buffer, size_t *lenp, loff_t *ppos)
56169 {
56170 int rc, backoff;
56171 - struct ctl_table dummy = *table;
56172 + ctl_table_no_const dummy = *table;
56173
56174 dummy.data = &backoff;
56175 dummy.proc_handler = &proc_dointvec;
56176 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
56177 index 22853d3..cfa3c49 100644
56178 --- a/drivers/staging/octeon/ethernet-rx.c
56179 +++ b/drivers/staging/octeon/ethernet-rx.c
56180 @@ -335,14 +335,14 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
56181 /* Increment RX stats for virtual ports */
56182 if (work->ipprt >= CVMX_PIP_NUM_INPUT_PORTS) {
56183 #ifdef CONFIG_64BIT
56184 - atomic64_add(1,
56185 + atomic64_add_unchecked(1,
56186 (atomic64_t *)&priv->stats.rx_packets);
56187 - atomic64_add(skb->len,
56188 + atomic64_add_unchecked(skb->len,
56189 (atomic64_t *)&priv->stats.rx_bytes);
56190 #else
56191 - atomic_add(1,
56192 + atomic_add_unchecked(1,
56193 (atomic_t *)&priv->stats.rx_packets);
56194 - atomic_add(skb->len,
56195 + atomic_add_unchecked(skb->len,
56196 (atomic_t *)&priv->stats.rx_bytes);
56197 #endif
56198 }
56199 @@ -354,10 +354,10 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
56200 dev->name);
56201 */
56202 #ifdef CONFIG_64BIT
56203 - atomic64_add(1,
56204 + atomic64_add_unchecked(1,
56205 (atomic64_t *)&priv->stats.rx_dropped);
56206 #else
56207 - atomic_add(1,
56208 + atomic_add_unchecked(1,
56209 (atomic_t *)&priv->stats.rx_dropped);
56210 #endif
56211 dev_kfree_skb_irq(skb);
56212 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
56213 index f9dba23..7bc0ef3 100644
56214 --- a/drivers/staging/octeon/ethernet.c
56215 +++ b/drivers/staging/octeon/ethernet.c
56216 @@ -231,11 +231,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
56217 * since the RX tasklet also increments it.
56218 */
56219 #ifdef CONFIG_64BIT
56220 - atomic64_add(rx_status.dropped_packets,
56221 - (atomic64_t *)&priv->stats.rx_dropped);
56222 + atomic64_add_unchecked(rx_status.dropped_packets,
56223 + (atomic64_unchecked_t *)&priv->stats.rx_dropped);
56224 #else
56225 - atomic_add(rx_status.dropped_packets,
56226 - (atomic_t *)&priv->stats.rx_dropped);
56227 + atomic_add_unchecked(rx_status.dropped_packets,
56228 + (atomic_unchecked_t *)&priv->stats.rx_dropped);
56229 #endif
56230 }
56231
56232 diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h
56233 index 3b476d8..f522d68 100644
56234 --- a/drivers/staging/rtl8188eu/include/hal_intf.h
56235 +++ b/drivers/staging/rtl8188eu/include/hal_intf.h
56236 @@ -225,7 +225,7 @@ struct hal_ops {
56237
56238 void (*hal_notch_filter)(struct adapter *adapter, bool enable);
56239 void (*hal_reset_security_engine)(struct adapter *adapter);
56240 -};
56241 +} __no_const;
56242
56243 enum rt_eeprom_type {
56244 EEPROM_93C46,
56245 diff --git a/drivers/staging/rtl8712/rtl871x_io.h b/drivers/staging/rtl8712/rtl871x_io.h
56246 index 070cc03..6806e37 100644
56247 --- a/drivers/staging/rtl8712/rtl871x_io.h
56248 +++ b/drivers/staging/rtl8712/rtl871x_io.h
56249 @@ -108,7 +108,7 @@ struct _io_ops {
56250 u8 *pmem);
56251 u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt,
56252 u8 *pmem);
56253 -};
56254 +} __no_const;
56255
56256 struct io_req {
56257 struct list_head list;
56258 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
56259 index 8e201f1..bf2a28d 100644
56260 --- a/drivers/staging/sm750fb/sm750.c
56261 +++ b/drivers/staging/sm750fb/sm750.c
56262 @@ -775,6 +775,7 @@ static struct fb_ops lynxfb_ops = {
56263 .fb_set_par = lynxfb_ops_set_par,
56264 .fb_setcolreg = lynxfb_ops_setcolreg,
56265 .fb_blank = lynxfb_ops_blank,
56266 + .fb_pan_display = lynxfb_ops_pan_display,
56267 .fb_fillrect = cfb_fillrect,
56268 .fb_imageblit = cfb_imageblit,
56269 .fb_copyarea = cfb_copyarea,
56270 @@ -822,8 +823,10 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
56271 par->index = index;
56272 output->channel = &crtc->channel;
56273 sm750fb_set_drv(par);
56274 - lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
56275
56276 + pax_open_kernel();
56277 + *(void **)&lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
56278 + pax_close_kernel();
56279
56280 /* set current cursor variable and proc pointer,
56281 * must be set after crtc member initialized */
56282 @@ -845,7 +848,9 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
56283 crtc->cursor.share = share;
56284 memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
56285 if (!g_hwcursor) {
56286 - lynxfb_ops.fb_cursor = NULL;
56287 + pax_open_kernel();
56288 + *(void **)&lynxfb_ops.fb_cursor = NULL;
56289 + pax_close_kernel();
56290 crtc->cursor.disable(&crtc->cursor);
56291 }
56292
56293 @@ -853,9 +858,11 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
56294 /* set info->fbops, must be set before fb_find_mode */
56295 if (!share->accel_off) {
56296 /* use 2d acceleration */
56297 - lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
56298 - lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
56299 - lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
56300 + pax_open_kernel();
56301 + *(void **)&lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
56302 + *(void **)&lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
56303 + *(void **)&lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
56304 + pax_close_kernel();
56305 }
56306 info->fbops = &lynxfb_ops;
56307
56308 diff --git a/drivers/staging/unisys/visorbus/visorbus_private.h b/drivers/staging/unisys/visorbus/visorbus_private.h
56309 index 2f12483..6e1b50a 100644
56310 --- a/drivers/staging/unisys/visorbus/visorbus_private.h
56311 +++ b/drivers/staging/unisys/visorbus/visorbus_private.h
56312 @@ -35,7 +35,7 @@ struct visorchipset_busdev_notifiers {
56313 void (*device_destroy)(struct visor_device *bus_info);
56314 void (*device_pause)(struct visor_device *bus_info);
56315 void (*device_resume)(struct visor_device *bus_info);
56316 -};
56317 +} __no_const;
56318
56319 /* These functions live inside visorchipset, and will be called to indicate
56320 * responses to specific events (by code outside of visorchipset).
56321 @@ -50,7 +50,7 @@ struct visorchipset_busdev_responders {
56322 void (*device_destroy)(struct visor_device *p, int response);
56323 void (*device_pause)(struct visor_device *p, int response);
56324 void (*device_resume)(struct visor_device *p, int response);
56325 -};
56326 +} __no_const;
56327
56328 /** Register functions (in the bus driver) to get called by visorchipset
56329 * whenever a bus or device appears for which this guest is to be the
56330 diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
56331 index 0edf320..49afe95 100644
56332 --- a/drivers/target/sbp/sbp_target.c
56333 +++ b/drivers/target/sbp/sbp_target.c
56334 @@ -60,7 +60,7 @@ static const u32 sbp_unit_directory_template[] = {
56335
56336 #define SESSION_MAINTENANCE_INTERVAL HZ
56337
56338 -static atomic_t login_id = ATOMIC_INIT(0);
56339 +static atomic_unchecked_t login_id = ATOMIC_INIT(0);
56340
56341 static void session_maintenance_work(struct work_struct *);
56342 static int sbp_run_transaction(struct fw_card *, int, int, int, int,
56343 @@ -441,7 +441,7 @@ static void sbp_management_request_login(
56344 login->login_lun = unpacked_lun;
56345 login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo);
56346 login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc));
56347 - login->login_id = atomic_inc_return(&login_id);
56348 + login->login_id = atomic_inc_return_unchecked(&login_id);
56349
56350 login->tgt_agt = sbp_target_agent_register(login);
56351 if (IS_ERR(login->tgt_agt)) {
56352 diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
56353 index 8f1cd19..ba7a8f1 100644
56354 --- a/drivers/target/target_core_device.c
56355 +++ b/drivers/target/target_core_device.c
56356 @@ -772,7 +772,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
56357 spin_lock_init(&dev->se_tmr_lock);
56358 spin_lock_init(&dev->qf_cmd_lock);
56359 sema_init(&dev->caw_sem, 1);
56360 - atomic_set(&dev->dev_ordered_id, 0);
56361 + atomic_set_unchecked(&dev->dev_ordered_id, 0);
56362 INIT_LIST_HEAD(&dev->t10_wwn.t10_vpd_list);
56363 spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
56364 INIT_LIST_HEAD(&dev->t10_pr.registration_list);
56365 diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
56366 index e318ddb..9444c7b 100644
56367 --- a/drivers/target/target_core_sbc.c
56368 +++ b/drivers/target/target_core_sbc.c
56369 @@ -339,7 +339,8 @@ sbc_setup_write_same(struct se_cmd *cmd, unsigned char *flags, struct sbc_ops *o
56370 return 0;
56371 }
56372
56373 -static sense_reason_t xdreadwrite_callback(struct se_cmd *cmd, bool success)
56374 +static sense_reason_t xdreadwrite_callback(struct se_cmd *cmd, bool success,
56375 + int *post_ret)
56376 {
56377 unsigned char *buf, *addr;
56378 struct scatterlist *sg;
56379 @@ -405,7 +406,8 @@ sbc_execute_rw(struct se_cmd *cmd)
56380 cmd->data_direction);
56381 }
56382
56383 -static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success)
56384 +static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success,
56385 + int *post_ret)
56386 {
56387 struct se_device *dev = cmd->se_dev;
56388
56389 @@ -415,8 +417,10 @@ static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success)
56390 * sent to the backend driver.
56391 */
56392 spin_lock_irq(&cmd->t_state_lock);
56393 - if ((cmd->transport_state & CMD_T_SENT) && !cmd->scsi_status)
56394 + if ((cmd->transport_state & CMD_T_SENT) && !cmd->scsi_status) {
56395 cmd->se_cmd_flags |= SCF_COMPARE_AND_WRITE_POST;
56396 + *post_ret = 1;
56397 + }
56398 spin_unlock_irq(&cmd->t_state_lock);
56399
56400 /*
56401 @@ -428,7 +432,8 @@ static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success)
56402 return TCM_NO_SENSE;
56403 }
56404
56405 -static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool success)
56406 +static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool success,
56407 + int *post_ret)
56408 {
56409 struct se_device *dev = cmd->se_dev;
56410 struct scatterlist *write_sg = NULL, *sg;
56411 @@ -524,11 +529,11 @@ static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool succes
56412
56413 if (block_size < PAGE_SIZE) {
56414 sg_set_page(&write_sg[i], m.page, block_size,
56415 - block_size);
56416 + m.piter.sg->offset + block_size);
56417 } else {
56418 sg_miter_next(&m);
56419 sg_set_page(&write_sg[i], m.page, block_size,
56420 - 0);
56421 + m.piter.sg->offset);
56422 }
56423 len -= block_size;
56424 i++;
56425 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
56426 index ce8574b..0634ccb 100644
56427 --- a/drivers/target/target_core_transport.c
56428 +++ b/drivers/target/target_core_transport.c
56429 @@ -1181,7 +1181,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
56430 * Used to determine when ORDERED commands should go from
56431 * Dormant to Active status.
56432 */
56433 - cmd->se_ordered_id = atomic_inc_return(&dev->dev_ordered_id);
56434 + cmd->se_ordered_id = atomic_inc_return_unchecked(&dev->dev_ordered_id);
56435 pr_debug("Allocated se_ordered_id: %u for Task Attr: 0x%02x on %s\n",
56436 cmd->se_ordered_id, cmd->sam_task_attr,
56437 dev->transport->name);
56438 @@ -1610,7 +1610,7 @@ bool target_stop_cmd(struct se_cmd *cmd, unsigned long *flags)
56439 void transport_generic_request_failure(struct se_cmd *cmd,
56440 sense_reason_t sense_reason)
56441 {
56442 - int ret = 0;
56443 + int ret = 0, post_ret = 0;
56444
56445 pr_debug("-----[ Storage Engine Exception for cmd: %p ITT: 0x%08llx"
56446 " CDB: 0x%02x\n", cmd, cmd->tag, cmd->t_task_cdb[0]);
56447 @@ -1632,7 +1632,7 @@ void transport_generic_request_failure(struct se_cmd *cmd,
56448 */
56449 if ((cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) &&
56450 cmd->transport_complete_callback)
56451 - cmd->transport_complete_callback(cmd, false);
56452 + cmd->transport_complete_callback(cmd, false, &post_ret);
56453
56454 switch (sense_reason) {
56455 case TCM_NON_EXISTENT_LUN:
56456 @@ -2027,11 +2027,13 @@ static void target_complete_ok_work(struct work_struct *work)
56457 */
56458 if (cmd->transport_complete_callback) {
56459 sense_reason_t rc;
56460 + bool caw = (cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE);
56461 + bool zero_dl = !(cmd->data_length);
56462 + int post_ret = 0;
56463
56464 - rc = cmd->transport_complete_callback(cmd, true);
56465 - if (!rc && !(cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE_POST)) {
56466 - if ((cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) &&
56467 - !cmd->data_length)
56468 + rc = cmd->transport_complete_callback(cmd, true, &post_ret);
56469 + if (!rc && !post_ret) {
56470 + if (caw && zero_dl)
56471 goto queue_rsp;
56472
56473 return;
56474 diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
56475 index 42c6f71..1c64309 100644
56476 --- a/drivers/thermal/cpu_cooling.c
56477 +++ b/drivers/thermal/cpu_cooling.c
56478 @@ -838,10 +838,11 @@ __cpufreq_cooling_register(struct device_node *np,
56479 cpumask_copy(&cpufreq_dev->allowed_cpus, clip_cpus);
56480
56481 if (capacitance) {
56482 - cpufreq_cooling_ops.get_requested_power =
56483 - cpufreq_get_requested_power;
56484 - cpufreq_cooling_ops.state2power = cpufreq_state2power;
56485 - cpufreq_cooling_ops.power2state = cpufreq_power2state;
56486 + pax_open_kernel();
56487 + *(void **)&cpufreq_cooling_ops.get_requested_power = cpufreq_get_requested_power;
56488 + *(void **)&cpufreq_cooling_ops.state2power = cpufreq_state2power;
56489 + *(void **)&cpufreq_cooling_ops.power2state = cpufreq_power2state;
56490 + pax_close_kernel();
56491 cpufreq_dev->plat_get_static_power = plat_static_func;
56492
56493 ret = build_dyn_power_table(cpufreq_dev, capacitance);
56494 diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c b/drivers/thermal/int340x_thermal/int3400_thermal.c
56495 index 031018e..90981a1 100644
56496 --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
56497 +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
56498 @@ -272,8 +272,10 @@ static int int3400_thermal_probe(struct platform_device *pdev)
56499 platform_set_drvdata(pdev, priv);
56500
56501 if (priv->uuid_bitmap & 1 << INT3400_THERMAL_PASSIVE_1) {
56502 - int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
56503 - int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
56504 + pax_open_kernel();
56505 + *(void **)&int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
56506 + *(void **)&int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
56507 + pax_close_kernel();
56508 }
56509 priv->thermal = thermal_zone_device_register("INT3400 Thermal", 0, 0,
56510 priv, &int3400_thermal_ops,
56511 diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
56512 index b295b2b..f7e2a30 100644
56513 --- a/drivers/thermal/of-thermal.c
56514 +++ b/drivers/thermal/of-thermal.c
56515 @@ -31,6 +31,7 @@
56516 #include <linux/export.h>
56517 #include <linux/string.h>
56518 #include <linux/thermal.h>
56519 +#include <linux/mm.h>
56520
56521 #include "thermal_core.h"
56522
56523 @@ -417,9 +418,11 @@ thermal_zone_of_add_sensor(struct device_node *zone,
56524 tz->ops = ops;
56525 tz->sensor_data = data;
56526
56527 - tzd->ops->get_temp = of_thermal_get_temp;
56528 - tzd->ops->get_trend = of_thermal_get_trend;
56529 - tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
56530 + pax_open_kernel();
56531 + *(void **)&tzd->ops->get_temp = of_thermal_get_temp;
56532 + *(void **)&tzd->ops->get_trend = of_thermal_get_trend;
56533 + *(void **)&tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
56534 + pax_close_kernel();
56535 mutex_unlock(&tzd->lock);
56536
56537 return tzd;
56538 @@ -549,9 +552,11 @@ void thermal_zone_of_sensor_unregister(struct device *dev,
56539 return;
56540
56541 mutex_lock(&tzd->lock);
56542 - tzd->ops->get_temp = NULL;
56543 - tzd->ops->get_trend = NULL;
56544 - tzd->ops->set_emul_temp = NULL;
56545 + pax_open_kernel();
56546 + *(void **)&tzd->ops->get_temp = NULL;
56547 + *(void **)&tzd->ops->get_trend = NULL;
56548 + *(void **)&tzd->ops->set_emul_temp = NULL;
56549 + pax_close_kernel();
56550
56551 tz->ops = NULL;
56552 tz->sensor_data = NULL;
56553 diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
56554 index 50d1d2c..39c5ce0 100644
56555 --- a/drivers/thermal/x86_pkg_temp_thermal.c
56556 +++ b/drivers/thermal/x86_pkg_temp_thermal.c
56557 @@ -567,7 +567,7 @@ static int pkg_temp_thermal_cpu_callback(struct notifier_block *nfb,
56558 return NOTIFY_OK;
56559 }
56560
56561 -static struct notifier_block pkg_temp_thermal_notifier __refdata = {
56562 +static struct notifier_block pkg_temp_thermal_notifier __refconst = {
56563 .notifier_call = pkg_temp_thermal_cpu_callback,
56564 };
56565
56566 diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
56567 index 87f6578..905c8f8 100644
56568 --- a/drivers/tty/cyclades.c
56569 +++ b/drivers/tty/cyclades.c
56570 @@ -1570,10 +1570,10 @@ static int cy_open(struct tty_struct *tty, struct file *filp)
56571 printk(KERN_DEBUG "cyc:cy_open ttyC%d, count = %d\n", info->line,
56572 info->port.count);
56573 #endif
56574 - info->port.count++;
56575 + atomic_inc(&info->port.count);
56576 #ifdef CY_DEBUG_COUNT
56577 printk(KERN_DEBUG "cyc:cy_open (%d): incrementing count to %d\n",
56578 - current->pid, info->port.count);
56579 + current->pid, atomic_read(&info->port.count));
56580 #endif
56581
56582 /*
56583 @@ -3970,7 +3970,7 @@ static int cyclades_proc_show(struct seq_file *m, void *v)
56584 for (j = 0; j < cy_card[i].nports; j++) {
56585 info = &cy_card[i].ports[j];
56586
56587 - if (info->port.count) {
56588 + if (atomic_read(&info->port.count)) {
56589 /* XXX is the ldisc num worth this? */
56590 struct tty_struct *tty;
56591 struct tty_ldisc *ld;
56592 diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
56593 index 4e9c4cc..2199d8f 100644
56594 --- a/drivers/tty/hvc/hvc_console.c
56595 +++ b/drivers/tty/hvc/hvc_console.c
56596 @@ -343,7 +343,7 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
56597
56598 spin_lock_irqsave(&hp->port.lock, flags);
56599 /* Check and then increment for fast path open. */
56600 - if (hp->port.count++ > 0) {
56601 + if (atomic_inc_return(&hp->port.count) > 1) {
56602 spin_unlock_irqrestore(&hp->port.lock, flags);
56603 hvc_kick();
56604 return 0;
56605 @@ -398,7 +398,7 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
56606
56607 spin_lock_irqsave(&hp->port.lock, flags);
56608
56609 - if (--hp->port.count == 0) {
56610 + if (atomic_dec_return(&hp->port.count) == 0) {
56611 spin_unlock_irqrestore(&hp->port.lock, flags);
56612 /* We are done with the tty pointer now. */
56613 tty_port_tty_set(&hp->port, NULL);
56614 @@ -420,9 +420,9 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
56615 */
56616 tty_wait_until_sent_from_close(tty, HVC_CLOSE_WAIT);
56617 } else {
56618 - if (hp->port.count < 0)
56619 + if (atomic_read(&hp->port.count) < 0)
56620 printk(KERN_ERR "hvc_close %X: oops, count is %d\n",
56621 - hp->vtermno, hp->port.count);
56622 + hp->vtermno, atomic_read(&hp->port.count));
56623 spin_unlock_irqrestore(&hp->port.lock, flags);
56624 }
56625 }
56626 @@ -452,12 +452,12 @@ static void hvc_hangup(struct tty_struct *tty)
56627 * open->hangup case this can be called after the final close so prevent
56628 * that from happening for now.
56629 */
56630 - if (hp->port.count <= 0) {
56631 + if (atomic_read(&hp->port.count) <= 0) {
56632 spin_unlock_irqrestore(&hp->port.lock, flags);
56633 return;
56634 }
56635
56636 - hp->port.count = 0;
56637 + atomic_set(&hp->port.count, 0);
56638 spin_unlock_irqrestore(&hp->port.lock, flags);
56639 tty_port_tty_set(&hp->port, NULL);
56640
56641 @@ -505,7 +505,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
56642 return -EPIPE;
56643
56644 /* FIXME what's this (unprotected) check for? */
56645 - if (hp->port.count <= 0)
56646 + if (atomic_read(&hp->port.count) <= 0)
56647 return -EIO;
56648
56649 spin_lock_irqsave(&hp->lock, flags);
56650 diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
56651 index f7ff97c..0c0ebbf 100644
56652 --- a/drivers/tty/hvc/hvcs.c
56653 +++ b/drivers/tty/hvc/hvcs.c
56654 @@ -83,6 +83,7 @@
56655 #include <asm/hvcserver.h>
56656 #include <asm/uaccess.h>
56657 #include <asm/vio.h>
56658 +#include <asm/local.h>
56659
56660 /*
56661 * 1.3.0 -> 1.3.1 In hvcs_open memset(..,0x00,..) instead of memset(..,0x3F,00).
56662 @@ -416,7 +417,7 @@ static ssize_t hvcs_vterm_state_store(struct device *dev, struct device_attribut
56663
56664 spin_lock_irqsave(&hvcsd->lock, flags);
56665
56666 - if (hvcsd->port.count > 0) {
56667 + if (atomic_read(&hvcsd->port.count) > 0) {
56668 spin_unlock_irqrestore(&hvcsd->lock, flags);
56669 printk(KERN_INFO "HVCS: vterm state unchanged. "
56670 "The hvcs device node is still in use.\n");
56671 @@ -1127,7 +1128,7 @@ static int hvcs_install(struct tty_driver *driver, struct tty_struct *tty)
56672 }
56673 }
56674
56675 - hvcsd->port.count = 0;
56676 + atomic_set(&hvcsd->port.count, 0);
56677 hvcsd->port.tty = tty;
56678 tty->driver_data = hvcsd;
56679
56680 @@ -1180,7 +1181,7 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp)
56681 unsigned long flags;
56682
56683 spin_lock_irqsave(&hvcsd->lock, flags);
56684 - hvcsd->port.count++;
56685 + atomic_inc(&hvcsd->port.count);
56686 hvcsd->todo_mask |= HVCS_SCHED_READ;
56687 spin_unlock_irqrestore(&hvcsd->lock, flags);
56688
56689 @@ -1216,7 +1217,7 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
56690 hvcsd = tty->driver_data;
56691
56692 spin_lock_irqsave(&hvcsd->lock, flags);
56693 - if (--hvcsd->port.count == 0) {
56694 + if (atomic_dec_and_test(&hvcsd->port.count)) {
56695
56696 vio_disable_interrupts(hvcsd->vdev);
56697
56698 @@ -1241,10 +1242,10 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
56699
56700 free_irq(irq, hvcsd);
56701 return;
56702 - } else if (hvcsd->port.count < 0) {
56703 + } else if (atomic_read(&hvcsd->port.count) < 0) {
56704 printk(KERN_ERR "HVCS: vty-server@%X open_count: %d"
56705 " is missmanaged.\n",
56706 - hvcsd->vdev->unit_address, hvcsd->port.count);
56707 + hvcsd->vdev->unit_address, atomic_read(&hvcsd->port.count));
56708 }
56709
56710 spin_unlock_irqrestore(&hvcsd->lock, flags);
56711 @@ -1266,7 +1267,7 @@ static void hvcs_hangup(struct tty_struct * tty)
56712
56713 spin_lock_irqsave(&hvcsd->lock, flags);
56714 /* Preserve this so that we know how many kref refs to put */
56715 - temp_open_count = hvcsd->port.count;
56716 + temp_open_count = atomic_read(&hvcsd->port.count);
56717
56718 /*
56719 * Don't kref put inside the spinlock because the destruction
56720 @@ -1281,7 +1282,7 @@ static void hvcs_hangup(struct tty_struct * tty)
56721 tty->driver_data = NULL;
56722 hvcsd->port.tty = NULL;
56723
56724 - hvcsd->port.count = 0;
56725 + atomic_set(&hvcsd->port.count, 0);
56726
56727 /* This will drop any buffered data on the floor which is OK in a hangup
56728 * scenario. */
56729 @@ -1352,7 +1353,7 @@ static int hvcs_write(struct tty_struct *tty,
56730 * the middle of a write operation? This is a crummy place to do this
56731 * but we want to keep it all in the spinlock.
56732 */
56733 - if (hvcsd->port.count <= 0) {
56734 + if (atomic_read(&hvcsd->port.count) <= 0) {
56735 spin_unlock_irqrestore(&hvcsd->lock, flags);
56736 return -ENODEV;
56737 }
56738 @@ -1426,7 +1427,7 @@ static int hvcs_write_room(struct tty_struct *tty)
56739 {
56740 struct hvcs_struct *hvcsd = tty->driver_data;
56741
56742 - if (!hvcsd || hvcsd->port.count <= 0)
56743 + if (!hvcsd || atomic_read(&hvcsd->port.count) <= 0)
56744 return 0;
56745
56746 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
56747 diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
56748 index 4190199..06d5bfa 100644
56749 --- a/drivers/tty/hvc/hvsi.c
56750 +++ b/drivers/tty/hvc/hvsi.c
56751 @@ -85,7 +85,7 @@ struct hvsi_struct {
56752 int n_outbuf;
56753 uint32_t vtermno;
56754 uint32_t virq;
56755 - atomic_t seqno; /* HVSI packet sequence number */
56756 + atomic_unchecked_t seqno; /* HVSI packet sequence number */
56757 uint16_t mctrl;
56758 uint8_t state; /* HVSI protocol state */
56759 uint8_t flags;
56760 @@ -295,7 +295,7 @@ static int hvsi_version_respond(struct hvsi_struct *hp, uint16_t query_seqno)
56761
56762 packet.hdr.type = VS_QUERY_RESPONSE_PACKET_HEADER;
56763 packet.hdr.len = sizeof(struct hvsi_query_response);
56764 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56765 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56766 packet.verb = VSV_SEND_VERSION_NUMBER;
56767 packet.u.version = HVSI_VERSION;
56768 packet.query_seqno = query_seqno+1;
56769 @@ -555,7 +555,7 @@ static int hvsi_query(struct hvsi_struct *hp, uint16_t verb)
56770
56771 packet.hdr.type = VS_QUERY_PACKET_HEADER;
56772 packet.hdr.len = sizeof(struct hvsi_query);
56773 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56774 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56775 packet.verb = verb;
56776
56777 pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
56778 @@ -597,7 +597,7 @@ static int hvsi_set_mctrl(struct hvsi_struct *hp, uint16_t mctrl)
56779 int wrote;
56780
56781 packet.hdr.type = VS_CONTROL_PACKET_HEADER,
56782 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56783 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56784 packet.hdr.len = sizeof(struct hvsi_control);
56785 packet.verb = VSV_SET_MODEM_CTL;
56786 packet.mask = HVSI_TSDTR;
56787 @@ -680,7 +680,7 @@ static int hvsi_put_chars(struct hvsi_struct *hp, const char *buf, int count)
56788 BUG_ON(count > HVSI_MAX_OUTGOING_DATA);
56789
56790 packet.hdr.type = VS_DATA_PACKET_HEADER;
56791 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56792 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56793 packet.hdr.len = count + sizeof(struct hvsi_header);
56794 memcpy(&packet.data, buf, count);
56795
56796 @@ -697,7 +697,7 @@ static void hvsi_close_protocol(struct hvsi_struct *hp)
56797 struct hvsi_control packet __ALIGNED__;
56798
56799 packet.hdr.type = VS_CONTROL_PACKET_HEADER;
56800 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56801 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56802 packet.hdr.len = 6;
56803 packet.verb = VSV_CLOSE_PROTOCOL;
56804
56805 @@ -725,7 +725,7 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp)
56806
56807 tty_port_tty_set(&hp->port, tty);
56808 spin_lock_irqsave(&hp->lock, flags);
56809 - hp->port.count++;
56810 + atomic_inc(&hp->port.count);
56811 atomic_set(&hp->seqno, 0);
56812 h_vio_signal(hp->vtermno, VIO_IRQ_ENABLE);
56813 spin_unlock_irqrestore(&hp->lock, flags);
56814 @@ -782,7 +782,7 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
56815
56816 spin_lock_irqsave(&hp->lock, flags);
56817
56818 - if (--hp->port.count == 0) {
56819 + if (atomic_dec_return(&hp->port.count) == 0) {
56820 tty_port_tty_set(&hp->port, NULL);
56821 hp->inbuf_end = hp->inbuf; /* discard remaining partial packets */
56822
56823 @@ -815,9 +815,9 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
56824
56825 spin_lock_irqsave(&hp->lock, flags);
56826 }
56827 - } else if (hp->port.count < 0)
56828 + } else if (atomic_read(&hp->port.count) < 0)
56829 printk(KERN_ERR "hvsi_close %lu: oops, count is %d\n",
56830 - hp - hvsi_ports, hp->port.count);
56831 + hp - hvsi_ports, atomic_read(&hp->port.count));
56832
56833 spin_unlock_irqrestore(&hp->lock, flags);
56834 }
56835 @@ -832,7 +832,7 @@ static void hvsi_hangup(struct tty_struct *tty)
56836 tty_port_tty_set(&hp->port, NULL);
56837
56838 spin_lock_irqsave(&hp->lock, flags);
56839 - hp->port.count = 0;
56840 + atomic_set(&hp->port.count, 0);
56841 hp->n_outbuf = 0;
56842 spin_unlock_irqrestore(&hp->lock, flags);
56843 }
56844 diff --git a/drivers/tty/hvc/hvsi_lib.c b/drivers/tty/hvc/hvsi_lib.c
56845 index a270f04..7c77b5d 100644
56846 --- a/drivers/tty/hvc/hvsi_lib.c
56847 +++ b/drivers/tty/hvc/hvsi_lib.c
56848 @@ -8,7 +8,7 @@
56849
56850 static int hvsi_send_packet(struct hvsi_priv *pv, struct hvsi_header *packet)
56851 {
56852 - packet->seqno = cpu_to_be16(atomic_inc_return(&pv->seqno));
56853 + packet->seqno = cpu_to_be16(atomic_inc_return_unchecked(&pv->seqno));
56854
56855 /* Assumes that always succeeds, works in practice */
56856 return pv->put_chars(pv->termno, (char *)packet, packet->len);
56857 @@ -20,7 +20,7 @@ static void hvsi_start_handshake(struct hvsi_priv *pv)
56858
56859 /* Reset state */
56860 pv->established = 0;
56861 - atomic_set(&pv->seqno, 0);
56862 + atomic_set_unchecked(&pv->seqno, 0);
56863
56864 pr_devel("HVSI@%x: Handshaking started\n", pv->termno);
56865
56866 diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
56867 index 345cebb..d5a1e9e 100644
56868 --- a/drivers/tty/ipwireless/tty.c
56869 +++ b/drivers/tty/ipwireless/tty.c
56870 @@ -28,6 +28,7 @@
56871 #include <linux/tty_driver.h>
56872 #include <linux/tty_flip.h>
56873 #include <linux/uaccess.h>
56874 +#include <asm/local.h>
56875
56876 #include "tty.h"
56877 #include "network.h"
56878 @@ -93,10 +94,10 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
56879 return -ENODEV;
56880
56881 mutex_lock(&tty->ipw_tty_mutex);
56882 - if (tty->port.count == 0)
56883 + if (atomic_read(&tty->port.count) == 0)
56884 tty->tx_bytes_queued = 0;
56885
56886 - tty->port.count++;
56887 + atomic_inc(&tty->port.count);
56888
56889 tty->port.tty = linux_tty;
56890 linux_tty->driver_data = tty;
56891 @@ -112,9 +113,7 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
56892
56893 static void do_ipw_close(struct ipw_tty *tty)
56894 {
56895 - tty->port.count--;
56896 -
56897 - if (tty->port.count == 0) {
56898 + if (atomic_dec_return(&tty->port.count) == 0) {
56899 struct tty_struct *linux_tty = tty->port.tty;
56900
56901 if (linux_tty != NULL) {
56902 @@ -135,7 +134,7 @@ static void ipw_hangup(struct tty_struct *linux_tty)
56903 return;
56904
56905 mutex_lock(&tty->ipw_tty_mutex);
56906 - if (tty->port.count == 0) {
56907 + if (atomic_read(&tty->port.count) == 0) {
56908 mutex_unlock(&tty->ipw_tty_mutex);
56909 return;
56910 }
56911 @@ -158,7 +157,7 @@ void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data,
56912
56913 mutex_lock(&tty->ipw_tty_mutex);
56914
56915 - if (!tty->port.count) {
56916 + if (!atomic_read(&tty->port.count)) {
56917 mutex_unlock(&tty->ipw_tty_mutex);
56918 return;
56919 }
56920 @@ -197,7 +196,7 @@ static int ipw_write(struct tty_struct *linux_tty,
56921 return -ENODEV;
56922
56923 mutex_lock(&tty->ipw_tty_mutex);
56924 - if (!tty->port.count) {
56925 + if (!atomic_read(&tty->port.count)) {
56926 mutex_unlock(&tty->ipw_tty_mutex);
56927 return -EINVAL;
56928 }
56929 @@ -237,7 +236,7 @@ static int ipw_write_room(struct tty_struct *linux_tty)
56930 if (!tty)
56931 return -ENODEV;
56932
56933 - if (!tty->port.count)
56934 + if (!atomic_read(&tty->port.count))
56935 return -EINVAL;
56936
56937 room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued;
56938 @@ -279,7 +278,7 @@ static int ipw_chars_in_buffer(struct tty_struct *linux_tty)
56939 if (!tty)
56940 return 0;
56941
56942 - if (!tty->port.count)
56943 + if (!atomic_read(&tty->port.count))
56944 return 0;
56945
56946 return tty->tx_bytes_queued;
56947 @@ -360,7 +359,7 @@ static int ipw_tiocmget(struct tty_struct *linux_tty)
56948 if (!tty)
56949 return -ENODEV;
56950
56951 - if (!tty->port.count)
56952 + if (!atomic_read(&tty->port.count))
56953 return -EINVAL;
56954
56955 return get_control_lines(tty);
56956 @@ -376,7 +375,7 @@ ipw_tiocmset(struct tty_struct *linux_tty,
56957 if (!tty)
56958 return -ENODEV;
56959
56960 - if (!tty->port.count)
56961 + if (!atomic_read(&tty->port.count))
56962 return -EINVAL;
56963
56964 return set_control_lines(tty, set, clear);
56965 @@ -390,7 +389,7 @@ static int ipw_ioctl(struct tty_struct *linux_tty,
56966 if (!tty)
56967 return -ENODEV;
56968
56969 - if (!tty->port.count)
56970 + if (!atomic_read(&tty->port.count))
56971 return -EINVAL;
56972
56973 /* FIXME: Exactly how is the tty object locked here .. */
56974 @@ -546,7 +545,7 @@ void ipwireless_tty_free(struct ipw_tty *tty)
56975 * are gone */
56976 mutex_lock(&ttyj->ipw_tty_mutex);
56977 }
56978 - while (ttyj->port.count)
56979 + while (atomic_read(&ttyj->port.count))
56980 do_ipw_close(ttyj);
56981 ipwireless_disassociate_network_ttys(network,
56982 ttyj->channel_idx);
56983 diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
56984 index 14c54e0..1efd4f2 100644
56985 --- a/drivers/tty/moxa.c
56986 +++ b/drivers/tty/moxa.c
56987 @@ -1189,7 +1189,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp)
56988 }
56989
56990 ch = &brd->ports[port % MAX_PORTS_PER_BOARD];
56991 - ch->port.count++;
56992 + atomic_inc(&ch->port.count);
56993 tty->driver_data = ch;
56994 tty_port_tty_set(&ch->port, tty);
56995 mutex_lock(&ch->port.mutex);
56996 diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
56997 index 382d3fc..b16d625 100644
56998 --- a/drivers/tty/n_gsm.c
56999 +++ b/drivers/tty/n_gsm.c
57000 @@ -1644,7 +1644,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
57001 spin_lock_init(&dlci->lock);
57002 mutex_init(&dlci->mutex);
57003 dlci->fifo = &dlci->_fifo;
57004 - if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL) < 0) {
57005 + if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL)) {
57006 kfree(dlci);
57007 return NULL;
57008 }
57009 @@ -2957,7 +2957,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
57010 struct gsm_dlci *dlci = tty->driver_data;
57011 struct tty_port *port = &dlci->port;
57012
57013 - port->count++;
57014 + atomic_inc(&port->count);
57015 tty_port_tty_set(port, tty);
57016
57017 dlci->modem_rx = 0;
57018 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
57019 index afc1879..b605d4b 100644
57020 --- a/drivers/tty/n_tty.c
57021 +++ b/drivers/tty/n_tty.c
57022 @@ -2574,6 +2574,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
57023 {
57024 *ops = tty_ldisc_N_TTY;
57025 ops->owner = NULL;
57026 - ops->refcount = ops->flags = 0;
57027 + atomic_set(&ops->refcount, 0);
57028 + ops->flags = 0;
57029 }
57030 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
57031 diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
57032 index 4d5e840..a2340a6 100644
57033 --- a/drivers/tty/pty.c
57034 +++ b/drivers/tty/pty.c
57035 @@ -849,8 +849,10 @@ static void __init unix98_pty_init(void)
57036 panic("Couldn't register Unix98 pts driver");
57037
57038 /* Now create the /dev/ptmx special device */
57039 + pax_open_kernel();
57040 tty_default_fops(&ptmx_fops);
57041 - ptmx_fops.open = ptmx_open;
57042 + *(void **)&ptmx_fops.open = ptmx_open;
57043 + pax_close_kernel();
57044
57045 cdev_init(&ptmx_cdev, &ptmx_fops);
57046 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
57047 diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
57048 index c8dd8dc..dca6cfd 100644
57049 --- a/drivers/tty/rocket.c
57050 +++ b/drivers/tty/rocket.c
57051 @@ -914,7 +914,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
57052 tty->driver_data = info;
57053 tty_port_tty_set(port, tty);
57054
57055 - if (port->count++ == 0) {
57056 + if (atomic_inc_return(&port->count) == 1) {
57057 atomic_inc(&rp_num_ports_open);
57058
57059 #ifdef ROCKET_DEBUG_OPEN
57060 @@ -923,7 +923,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
57061 #endif
57062 }
57063 #ifdef ROCKET_DEBUG_OPEN
57064 - printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, info->port.count);
57065 + printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, atomic-read(&info->port.count));
57066 #endif
57067
57068 /*
57069 @@ -1515,7 +1515,7 @@ static void rp_hangup(struct tty_struct *tty)
57070 spin_unlock_irqrestore(&info->port.lock, flags);
57071 return;
57072 }
57073 - if (info->port.count)
57074 + if (atomic_read(&info->port.count))
57075 atomic_dec(&rp_num_ports_open);
57076 clear_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
57077 spin_unlock_irqrestore(&info->port.lock, flags);
57078 diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
57079 index c35d96e..f05d689 100644
57080 --- a/drivers/tty/serial/8250/8250_core.c
57081 +++ b/drivers/tty/serial/8250/8250_core.c
57082 @@ -3237,9 +3237,9 @@ static void univ8250_release_port(struct uart_port *port)
57083
57084 static void univ8250_rsa_support(struct uart_ops *ops)
57085 {
57086 - ops->config_port = univ8250_config_port;
57087 - ops->request_port = univ8250_request_port;
57088 - ops->release_port = univ8250_release_port;
57089 + *(void **)&ops->config_port = univ8250_config_port;
57090 + *(void **)&ops->request_port = univ8250_request_port;
57091 + *(void **)&ops->release_port = univ8250_release_port;
57092 }
57093
57094 #else
57095 @@ -3282,8 +3282,10 @@ static void __init serial8250_isa_init_ports(void)
57096 }
57097
57098 /* chain base port ops to support Remote Supervisor Adapter */
57099 - univ8250_port_ops = *base_ops;
57100 + pax_open_kernel();
57101 + memcpy((void *)&univ8250_port_ops, base_ops, sizeof univ8250_port_ops);
57102 univ8250_rsa_support(&univ8250_port_ops);
57103 + pax_close_kernel();
57104
57105 if (share_irqs)
57106 irqflag = IRQF_SHARED;
57107 diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
57108 index 536a33b..1b98f43 100644
57109 --- a/drivers/tty/serial/ifx6x60.c
57110 +++ b/drivers/tty/serial/ifx6x60.c
57111 @@ -649,7 +649,7 @@ static void ifx_spi_complete(void *ctx)
57112 struct ifx_spi_device *ifx_dev = ctx;
57113 int length;
57114 int actual_length;
57115 - unsigned char more;
57116 + unsigned char more = 0;
57117 unsigned char cts;
57118 int local_write_pending = 0;
57119 int queue_length;
57120 diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
57121 index e5c42fe..f091b02 100644
57122 --- a/drivers/tty/serial/ioc4_serial.c
57123 +++ b/drivers/tty/serial/ioc4_serial.c
57124 @@ -437,7 +437,7 @@ struct ioc4_soft {
57125 } is_intr_info[MAX_IOC4_INTR_ENTS];
57126
57127 /* Number of entries active in the above array */
57128 - atomic_t is_num_intrs;
57129 + atomic_unchecked_t is_num_intrs;
57130 } is_intr_type[IOC4_NUM_INTR_TYPES];
57131
57132 /* is_ir_lock must be held while
57133 @@ -974,7 +974,7 @@ intr_connect(struct ioc4_soft *soft, int type,
57134 BUG_ON(!((type == IOC4_SIO_INTR_TYPE)
57135 || (type == IOC4_OTHER_INTR_TYPE)));
57136
57137 - i = atomic_inc_return(&soft-> is_intr_type[type].is_num_intrs) - 1;
57138 + i = atomic_inc_return_unchecked(&soft-> is_intr_type[type].is_num_intrs) - 1;
57139 BUG_ON(!(i < MAX_IOC4_INTR_ENTS || (printk("i %d\n", i), 0)));
57140
57141 /* Save off the lower level interrupt handler */
57142 @@ -1001,7 +1001,7 @@ static irqreturn_t ioc4_intr(int irq, void *arg)
57143
57144 soft = arg;
57145 for (intr_type = 0; intr_type < IOC4_NUM_INTR_TYPES; intr_type++) {
57146 - num_intrs = (int)atomic_read(
57147 + num_intrs = (int)atomic_read_unchecked(
57148 &soft->is_intr_type[intr_type].is_num_intrs);
57149
57150 this_mir = this_ir = pending_intrs(soft, intr_type);
57151 diff --git a/drivers/tty/serial/kgdb_nmi.c b/drivers/tty/serial/kgdb_nmi.c
57152 index 117df15..2f7dfcf 100644
57153 --- a/drivers/tty/serial/kgdb_nmi.c
57154 +++ b/drivers/tty/serial/kgdb_nmi.c
57155 @@ -53,7 +53,9 @@ static int kgdb_nmi_console_setup(struct console *co, char *options)
57156 * I/O utilities that messages sent to the console will automatically
57157 * be displayed on the dbg_io.
57158 */
57159 - dbg_io_ops->is_console = true;
57160 + pax_open_kernel();
57161 + *(int *)&dbg_io_ops->is_console = true;
57162 + pax_close_kernel();
57163
57164 return 0;
57165 }
57166 diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
57167 index a260cde..6b2b5ce 100644
57168 --- a/drivers/tty/serial/kgdboc.c
57169 +++ b/drivers/tty/serial/kgdboc.c
57170 @@ -24,8 +24,9 @@
57171 #define MAX_CONFIG_LEN 40
57172
57173 static struct kgdb_io kgdboc_io_ops;
57174 +static struct kgdb_io kgdboc_io_ops_console;
57175
57176 -/* -1 = init not run yet, 0 = unconfigured, 1 = configured. */
57177 +/* -1 = init not run yet, 0 = unconfigured, 1/2 = configured. */
57178 static int configured = -1;
57179
57180 static char config[MAX_CONFIG_LEN];
57181 @@ -151,6 +152,8 @@ static void cleanup_kgdboc(void)
57182 kgdboc_unregister_kbd();
57183 if (configured == 1)
57184 kgdb_unregister_io_module(&kgdboc_io_ops);
57185 + else if (configured == 2)
57186 + kgdb_unregister_io_module(&kgdboc_io_ops_console);
57187 }
57188
57189 static int configure_kgdboc(void)
57190 @@ -160,13 +163,13 @@ static int configure_kgdboc(void)
57191 int err;
57192 char *cptr = config;
57193 struct console *cons;
57194 + int is_console = 0;
57195
57196 err = kgdboc_option_setup(config);
57197 if (err || !strlen(config) || isspace(config[0]))
57198 goto noconfig;
57199
57200 err = -ENODEV;
57201 - kgdboc_io_ops.is_console = 0;
57202 kgdb_tty_driver = NULL;
57203
57204 kgdboc_use_kms = 0;
57205 @@ -187,7 +190,7 @@ static int configure_kgdboc(void)
57206 int idx;
57207 if (cons->device && cons->device(cons, &idx) == p &&
57208 idx == tty_line) {
57209 - kgdboc_io_ops.is_console = 1;
57210 + is_console = 1;
57211 break;
57212 }
57213 cons = cons->next;
57214 @@ -197,7 +200,13 @@ static int configure_kgdboc(void)
57215 kgdb_tty_line = tty_line;
57216
57217 do_register:
57218 - err = kgdb_register_io_module(&kgdboc_io_ops);
57219 + if (is_console) {
57220 + err = kgdb_register_io_module(&kgdboc_io_ops_console);
57221 + configured = 2;
57222 + } else {
57223 + err = kgdb_register_io_module(&kgdboc_io_ops);
57224 + configured = 1;
57225 + }
57226 if (err)
57227 goto noconfig;
57228
57229 @@ -205,8 +214,6 @@ do_register:
57230 if (err)
57231 goto nmi_con_failed;
57232
57233 - configured = 1;
57234 -
57235 return 0;
57236
57237 nmi_con_failed:
57238 @@ -223,7 +230,7 @@ noconfig:
57239 static int __init init_kgdboc(void)
57240 {
57241 /* Already configured? */
57242 - if (configured == 1)
57243 + if (configured >= 1)
57244 return 0;
57245
57246 return configure_kgdboc();
57247 @@ -272,7 +279,7 @@ static int param_set_kgdboc_var(const char *kmessage, struct kernel_param *kp)
57248 if (config[len - 1] == '\n')
57249 config[len - 1] = '\0';
57250
57251 - if (configured == 1)
57252 + if (configured >= 1)
57253 cleanup_kgdboc();
57254
57255 /* Go and configure with the new params. */
57256 @@ -312,6 +319,15 @@ static struct kgdb_io kgdboc_io_ops = {
57257 .post_exception = kgdboc_post_exp_handler,
57258 };
57259
57260 +static struct kgdb_io kgdboc_io_ops_console = {
57261 + .name = "kgdboc",
57262 + .read_char = kgdboc_get_char,
57263 + .write_char = kgdboc_put_char,
57264 + .pre_exception = kgdboc_pre_exp_handler,
57265 + .post_exception = kgdboc_post_exp_handler,
57266 + .is_console = 1
57267 +};
57268 +
57269 #ifdef CONFIG_KGDB_SERIAL_CONSOLE
57270 /* This is only available if kgdboc is a built in for early debugging */
57271 static int __init kgdboc_early_init(char *opt)
57272 diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
57273 index b73889c..9f74f0a 100644
57274 --- a/drivers/tty/serial/msm_serial.c
57275 +++ b/drivers/tty/serial/msm_serial.c
57276 @@ -1012,7 +1012,7 @@ static struct uart_driver msm_uart_driver = {
57277 .cons = MSM_CONSOLE,
57278 };
57279
57280 -static atomic_t msm_uart_next_id = ATOMIC_INIT(0);
57281 +static atomic_unchecked_t msm_uart_next_id = ATOMIC_INIT(0);
57282
57283 static const struct of_device_id msm_uartdm_table[] = {
57284 { .compatible = "qcom,msm-uartdm-v1.1", .data = (void *)UARTDM_1P1 },
57285 @@ -1036,7 +1036,7 @@ static int msm_serial_probe(struct platform_device *pdev)
57286 line = pdev->id;
57287
57288 if (line < 0)
57289 - line = atomic_inc_return(&msm_uart_next_id) - 1;
57290 + line = atomic_inc_return_unchecked(&msm_uart_next_id) - 1;
57291
57292 if (unlikely(line < 0 || line >= UART_NR))
57293 return -ENXIO;
57294 diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
57295 index 5916311..1e32415 100644
57296 --- a/drivers/tty/serial/samsung.c
57297 +++ b/drivers/tty/serial/samsung.c
57298 @@ -995,11 +995,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
57299 ourport->tx_in_progress = 0;
57300 }
57301
57302 +static int s3c64xx_serial_startup(struct uart_port *port);
57303 static int s3c24xx_serial_startup(struct uart_port *port)
57304 {
57305 struct s3c24xx_uart_port *ourport = to_ourport(port);
57306 int ret;
57307
57308 + /* Startup sequence is different for s3c64xx and higher SoC's */
57309 + if (s3c24xx_serial_has_interrupt_mask(port))
57310 + return s3c64xx_serial_startup(port);
57311 +
57312 dbg("s3c24xx_serial_startup: port=%p (%08llx,%p)\n",
57313 port, (unsigned long long)port->mapbase, port->membase);
57314
57315 @@ -1706,10 +1711,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
57316 /* setup info for port */
57317 port->dev = &platdev->dev;
57318
57319 - /* Startup sequence is different for s3c64xx and higher SoC's */
57320 - if (s3c24xx_serial_has_interrupt_mask(port))
57321 - s3c24xx_serial_ops.startup = s3c64xx_serial_startup;
57322 -
57323 port->uartclk = 1;
57324
57325 if (cfg->uart_flags & UPF_CONS_FLOW) {
57326 diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
57327 index f368520..c7a703a 100644
57328 --- a/drivers/tty/serial/serial_core.c
57329 +++ b/drivers/tty/serial/serial_core.c
57330 @@ -1385,7 +1385,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
57331 state = drv->state + tty->index;
57332 port = &state->port;
57333 spin_lock_irq(&port->lock);
57334 - --port->count;
57335 + atomic_dec(&port->count);
57336 spin_unlock_irq(&port->lock);
57337 return;
57338 }
57339 @@ -1395,7 +1395,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
57340
57341 pr_debug("uart_close(%d) called\n", uport ? uport->line : -1);
57342
57343 - if (!port->count || tty_port_close_start(port, tty, filp) == 0)
57344 + if (!atomic_read(&port->count) || tty_port_close_start(port, tty, filp) == 0)
57345 return;
57346
57347 /*
57348 @@ -1520,7 +1520,7 @@ static void uart_hangup(struct tty_struct *tty)
57349 uart_flush_buffer(tty);
57350 uart_shutdown(tty, state);
57351 spin_lock_irqsave(&port->lock, flags);
57352 - port->count = 0;
57353 + atomic_set(&port->count, 0);
57354 clear_bit(ASYNCB_NORMAL_ACTIVE, &port->flags);
57355 spin_unlock_irqrestore(&port->lock, flags);
57356 tty_port_tty_set(port, NULL);
57357 @@ -1607,7 +1607,7 @@ static int uart_open(struct tty_struct *tty, struct file *filp)
57358 pr_debug("uart_open(%d) called\n", line);
57359
57360 spin_lock_irq(&port->lock);
57361 - ++port->count;
57362 + atomic_inc(&port->count);
57363 spin_unlock_irq(&port->lock);
57364
57365 /*
57366 diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
57367 index b1c6bd3..5f038e2 100644
57368 --- a/drivers/tty/serial/uartlite.c
57369 +++ b/drivers/tty/serial/uartlite.c
57370 @@ -341,13 +341,13 @@ static int ulite_request_port(struct uart_port *port)
57371 return -EBUSY;
57372 }
57373
57374 - port->private_data = &uartlite_be;
57375 + port->private_data = (void *)&uartlite_be;
57376 ret = uart_in32(ULITE_CONTROL, port);
57377 uart_out32(ULITE_CONTROL_RST_TX, ULITE_CONTROL, port);
57378 ret = uart_in32(ULITE_STATUS, port);
57379 /* Endianess detection */
57380 if ((ret & ULITE_STATUS_TXEMPTY) != ULITE_STATUS_TXEMPTY)
57381 - port->private_data = &uartlite_le;
57382 + port->private_data = (void *)&uartlite_le;
57383
57384 return 0;
57385 }
57386 diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
57387 index 2fac712..fcd5268 100644
57388 --- a/drivers/tty/synclink.c
57389 +++ b/drivers/tty/synclink.c
57390 @@ -3090,7 +3090,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
57391
57392 if (debug_level >= DEBUG_LEVEL_INFO)
57393 printk("%s(%d):mgsl_close(%s) entry, count=%d\n",
57394 - __FILE__,__LINE__, info->device_name, info->port.count);
57395 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
57396
57397 if (tty_port_close_start(&info->port, tty, filp) == 0)
57398 goto cleanup;
57399 @@ -3108,7 +3108,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
57400 cleanup:
57401 if (debug_level >= DEBUG_LEVEL_INFO)
57402 printk("%s(%d):mgsl_close(%s) exit, count=%d\n", __FILE__,__LINE__,
57403 - tty->driver->name, info->port.count);
57404 + tty->driver->name, atomic_read(&info->port.count));
57405
57406 } /* end of mgsl_close() */
57407
57408 @@ -3207,8 +3207,8 @@ static void mgsl_hangup(struct tty_struct *tty)
57409
57410 mgsl_flush_buffer(tty);
57411 shutdown(info);
57412 -
57413 - info->port.count = 0;
57414 +
57415 + atomic_set(&info->port.count, 0);
57416 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57417 info->port.tty = NULL;
57418
57419 @@ -3296,10 +3296,10 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
57420
57421 if (debug_level >= DEBUG_LEVEL_INFO)
57422 printk("%s(%d):block_til_ready before block on %s count=%d\n",
57423 - __FILE__,__LINE__, tty->driver->name, port->count );
57424 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57425
57426 spin_lock_irqsave(&info->irq_spinlock, flags);
57427 - port->count--;
57428 + atomic_dec(&port->count);
57429 spin_unlock_irqrestore(&info->irq_spinlock, flags);
57430 port->blocked_open++;
57431
57432 @@ -3327,7 +3327,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
57433
57434 if (debug_level >= DEBUG_LEVEL_INFO)
57435 printk("%s(%d):block_til_ready blocking on %s count=%d\n",
57436 - __FILE__,__LINE__, tty->driver->name, port->count );
57437 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57438
57439 tty_unlock(tty);
57440 schedule();
57441 @@ -3339,12 +3339,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
57442
57443 /* FIXME: Racy on hangup during close wait */
57444 if (!tty_hung_up_p(filp))
57445 - port->count++;
57446 + atomic_inc(&port->count);
57447 port->blocked_open--;
57448
57449 if (debug_level >= DEBUG_LEVEL_INFO)
57450 printk("%s(%d):block_til_ready after blocking on %s count=%d\n",
57451 - __FILE__,__LINE__, tty->driver->name, port->count );
57452 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57453
57454 if (!retval)
57455 port->flags |= ASYNC_NORMAL_ACTIVE;
57456 @@ -3396,7 +3396,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
57457
57458 if (debug_level >= DEBUG_LEVEL_INFO)
57459 printk("%s(%d):mgsl_open(%s), old ref count = %d\n",
57460 - __FILE__,__LINE__,tty->driver->name, info->port.count);
57461 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
57462
57463 /* If port is closing, signal caller to try again */
57464 if (info->port.flags & ASYNC_CLOSING){
57465 @@ -3415,10 +3415,10 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
57466 spin_unlock_irqrestore(&info->netlock, flags);
57467 goto cleanup;
57468 }
57469 - info->port.count++;
57470 + atomic_inc(&info->port.count);
57471 spin_unlock_irqrestore(&info->netlock, flags);
57472
57473 - if (info->port.count == 1) {
57474 + if (atomic_read(&info->port.count) == 1) {
57475 /* 1st open on this device, init hardware */
57476 retval = startup(info);
57477 if (retval < 0)
57478 @@ -3442,8 +3442,8 @@ cleanup:
57479 if (retval) {
57480 if (tty->count == 1)
57481 info->port.tty = NULL; /* tty layer will release tty struct */
57482 - if(info->port.count)
57483 - info->port.count--;
57484 + if (atomic_read(&info->port.count))
57485 + atomic_dec(&info->port.count);
57486 }
57487
57488 return retval;
57489 @@ -7662,7 +7662,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57490 unsigned short new_crctype;
57491
57492 /* return error if TTY interface open */
57493 - if (info->port.count)
57494 + if (atomic_read(&info->port.count))
57495 return -EBUSY;
57496
57497 switch (encoding)
57498 @@ -7758,7 +7758,7 @@ static int hdlcdev_open(struct net_device *dev)
57499
57500 /* arbitrate between network and tty opens */
57501 spin_lock_irqsave(&info->netlock, flags);
57502 - if (info->port.count != 0 || info->netcount != 0) {
57503 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57504 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
57505 spin_unlock_irqrestore(&info->netlock, flags);
57506 return -EBUSY;
57507 @@ -7844,7 +7844,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57508 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
57509
57510 /* return error if TTY interface open */
57511 - if (info->port.count)
57512 + if (atomic_read(&info->port.count))
57513 return -EBUSY;
57514
57515 if (cmd != SIOCWANDEV)
57516 diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
57517 index 0ea8eee..b3f1b8f 100644
57518 --- a/drivers/tty/synclink_gt.c
57519 +++ b/drivers/tty/synclink_gt.c
57520 @@ -670,7 +670,7 @@ static int open(struct tty_struct *tty, struct file *filp)
57521 tty->driver_data = info;
57522 info->port.tty = tty;
57523
57524 - DBGINFO(("%s open, old ref count = %d\n", info->device_name, info->port.count));
57525 + DBGINFO(("%s open, old ref count = %d\n", info->device_name, atomic_read(&info->port.count)));
57526
57527 /* If port is closing, signal caller to try again */
57528 if (info->port.flags & ASYNC_CLOSING){
57529 @@ -691,10 +691,10 @@ static int open(struct tty_struct *tty, struct file *filp)
57530 mutex_unlock(&info->port.mutex);
57531 goto cleanup;
57532 }
57533 - info->port.count++;
57534 + atomic_inc(&info->port.count);
57535 spin_unlock_irqrestore(&info->netlock, flags);
57536
57537 - if (info->port.count == 1) {
57538 + if (atomic_read(&info->port.count) == 1) {
57539 /* 1st open on this device, init hardware */
57540 retval = startup(info);
57541 if (retval < 0) {
57542 @@ -715,8 +715,8 @@ cleanup:
57543 if (retval) {
57544 if (tty->count == 1)
57545 info->port.tty = NULL; /* tty layer will release tty struct */
57546 - if(info->port.count)
57547 - info->port.count--;
57548 + if(atomic_read(&info->port.count))
57549 + atomic_dec(&info->port.count);
57550 }
57551
57552 DBGINFO(("%s open rc=%d\n", info->device_name, retval));
57553 @@ -729,7 +729,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57554
57555 if (sanity_check(info, tty->name, "close"))
57556 return;
57557 - DBGINFO(("%s close entry, count=%d\n", info->device_name, info->port.count));
57558 + DBGINFO(("%s close entry, count=%d\n", info->device_name, atomic_read(&info->port.count)));
57559
57560 if (tty_port_close_start(&info->port, tty, filp) == 0)
57561 goto cleanup;
57562 @@ -746,7 +746,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57563 tty_port_close_end(&info->port, tty);
57564 info->port.tty = NULL;
57565 cleanup:
57566 - DBGINFO(("%s close exit, count=%d\n", tty->driver->name, info->port.count));
57567 + DBGINFO(("%s close exit, count=%d\n", tty->driver->name, atomic_read(&info->port.count)));
57568 }
57569
57570 static void hangup(struct tty_struct *tty)
57571 @@ -764,7 +764,7 @@ static void hangup(struct tty_struct *tty)
57572 shutdown(info);
57573
57574 spin_lock_irqsave(&info->port.lock, flags);
57575 - info->port.count = 0;
57576 + atomic_set(&info->port.count, 0);
57577 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57578 info->port.tty = NULL;
57579 spin_unlock_irqrestore(&info->port.lock, flags);
57580 @@ -1449,7 +1449,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57581 unsigned short new_crctype;
57582
57583 /* return error if TTY interface open */
57584 - if (info->port.count)
57585 + if (atomic_read(&info->port.count))
57586 return -EBUSY;
57587
57588 DBGINFO(("%s hdlcdev_attach\n", info->device_name));
57589 @@ -1545,7 +1545,7 @@ static int hdlcdev_open(struct net_device *dev)
57590
57591 /* arbitrate between network and tty opens */
57592 spin_lock_irqsave(&info->netlock, flags);
57593 - if (info->port.count != 0 || info->netcount != 0) {
57594 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57595 DBGINFO(("%s hdlc_open busy\n", dev->name));
57596 spin_unlock_irqrestore(&info->netlock, flags);
57597 return -EBUSY;
57598 @@ -1630,7 +1630,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57599 DBGINFO(("%s hdlcdev_ioctl\n", dev->name));
57600
57601 /* return error if TTY interface open */
57602 - if (info->port.count)
57603 + if (atomic_read(&info->port.count))
57604 return -EBUSY;
57605
57606 if (cmd != SIOCWANDEV)
57607 @@ -2417,7 +2417,7 @@ static irqreturn_t slgt_interrupt(int dummy, void *dev_id)
57608 if (port == NULL)
57609 continue;
57610 spin_lock(&port->lock);
57611 - if ((port->port.count || port->netcount) &&
57612 + if ((atomic_read(&port->port.count) || port->netcount) &&
57613 port->pending_bh && !port->bh_running &&
57614 !port->bh_requested) {
57615 DBGISR(("%s bh queued\n", port->device_name));
57616 @@ -3303,7 +3303,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57617 add_wait_queue(&port->open_wait, &wait);
57618
57619 spin_lock_irqsave(&info->lock, flags);
57620 - port->count--;
57621 + atomic_dec(&port->count);
57622 spin_unlock_irqrestore(&info->lock, flags);
57623 port->blocked_open++;
57624
57625 @@ -3339,7 +3339,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57626 remove_wait_queue(&port->open_wait, &wait);
57627
57628 if (!tty_hung_up_p(filp))
57629 - port->count++;
57630 + atomic_inc(&port->count);
57631 port->blocked_open--;
57632
57633 if (!retval)
57634 diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
57635 index 08633a8..3d56e14 100644
57636 --- a/drivers/tty/synclinkmp.c
57637 +++ b/drivers/tty/synclinkmp.c
57638 @@ -750,7 +750,7 @@ static int open(struct tty_struct *tty, struct file *filp)
57639
57640 if (debug_level >= DEBUG_LEVEL_INFO)
57641 printk("%s(%d):%s open(), old ref count = %d\n",
57642 - __FILE__,__LINE__,tty->driver->name, info->port.count);
57643 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
57644
57645 /* If port is closing, signal caller to try again */
57646 if (info->port.flags & ASYNC_CLOSING){
57647 @@ -769,10 +769,10 @@ static int open(struct tty_struct *tty, struct file *filp)
57648 spin_unlock_irqrestore(&info->netlock, flags);
57649 goto cleanup;
57650 }
57651 - info->port.count++;
57652 + atomic_inc(&info->port.count);
57653 spin_unlock_irqrestore(&info->netlock, flags);
57654
57655 - if (info->port.count == 1) {
57656 + if (atomic_read(&info->port.count) == 1) {
57657 /* 1st open on this device, init hardware */
57658 retval = startup(info);
57659 if (retval < 0)
57660 @@ -796,8 +796,8 @@ cleanup:
57661 if (retval) {
57662 if (tty->count == 1)
57663 info->port.tty = NULL; /* tty layer will release tty struct */
57664 - if(info->port.count)
57665 - info->port.count--;
57666 + if(atomic_read(&info->port.count))
57667 + atomic_dec(&info->port.count);
57668 }
57669
57670 return retval;
57671 @@ -815,7 +815,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57672
57673 if (debug_level >= DEBUG_LEVEL_INFO)
57674 printk("%s(%d):%s close() entry, count=%d\n",
57675 - __FILE__,__LINE__, info->device_name, info->port.count);
57676 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
57677
57678 if (tty_port_close_start(&info->port, tty, filp) == 0)
57679 goto cleanup;
57680 @@ -834,7 +834,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57681 cleanup:
57682 if (debug_level >= DEBUG_LEVEL_INFO)
57683 printk("%s(%d):%s close() exit, count=%d\n", __FILE__,__LINE__,
57684 - tty->driver->name, info->port.count);
57685 + tty->driver->name, atomic_read(&info->port.count));
57686 }
57687
57688 /* Called by tty_hangup() when a hangup is signaled.
57689 @@ -857,7 +857,7 @@ static void hangup(struct tty_struct *tty)
57690 shutdown(info);
57691
57692 spin_lock_irqsave(&info->port.lock, flags);
57693 - info->port.count = 0;
57694 + atomic_set(&info->port.count, 0);
57695 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57696 info->port.tty = NULL;
57697 spin_unlock_irqrestore(&info->port.lock, flags);
57698 @@ -1565,7 +1565,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57699 unsigned short new_crctype;
57700
57701 /* return error if TTY interface open */
57702 - if (info->port.count)
57703 + if (atomic_read(&info->port.count))
57704 return -EBUSY;
57705
57706 switch (encoding)
57707 @@ -1661,7 +1661,7 @@ static int hdlcdev_open(struct net_device *dev)
57708
57709 /* arbitrate between network and tty opens */
57710 spin_lock_irqsave(&info->netlock, flags);
57711 - if (info->port.count != 0 || info->netcount != 0) {
57712 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57713 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
57714 spin_unlock_irqrestore(&info->netlock, flags);
57715 return -EBUSY;
57716 @@ -1747,7 +1747,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57717 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
57718
57719 /* return error if TTY interface open */
57720 - if (info->port.count)
57721 + if (atomic_read(&info->port.count))
57722 return -EBUSY;
57723
57724 if (cmd != SIOCWANDEV)
57725 @@ -2624,7 +2624,7 @@ static irqreturn_t synclinkmp_interrupt(int dummy, void *dev_id)
57726 * do not request bottom half processing if the
57727 * device is not open in a normal mode.
57728 */
57729 - if ( port && (port->port.count || port->netcount) &&
57730 + if ( port && (atomic_read(&port->port.count) || port->netcount) &&
57731 port->pending_bh && !port->bh_running &&
57732 !port->bh_requested ) {
57733 if ( debug_level >= DEBUG_LEVEL_ISR )
57734 @@ -3321,10 +3321,10 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57735
57736 if (debug_level >= DEBUG_LEVEL_INFO)
57737 printk("%s(%d):%s block_til_ready() before block, count=%d\n",
57738 - __FILE__,__LINE__, tty->driver->name, port->count );
57739 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57740
57741 spin_lock_irqsave(&info->lock, flags);
57742 - port->count--;
57743 + atomic_dec(&port->count);
57744 spin_unlock_irqrestore(&info->lock, flags);
57745 port->blocked_open++;
57746
57747 @@ -3352,7 +3352,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57748
57749 if (debug_level >= DEBUG_LEVEL_INFO)
57750 printk("%s(%d):%s block_til_ready() count=%d\n",
57751 - __FILE__,__LINE__, tty->driver->name, port->count );
57752 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57753
57754 tty_unlock(tty);
57755 schedule();
57756 @@ -3362,12 +3362,12 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57757 set_current_state(TASK_RUNNING);
57758 remove_wait_queue(&port->open_wait, &wait);
57759 if (!tty_hung_up_p(filp))
57760 - port->count++;
57761 + atomic_inc(&port->count);
57762 port->blocked_open--;
57763
57764 if (debug_level >= DEBUG_LEVEL_INFO)
57765 printk("%s(%d):%s block_til_ready() after, count=%d\n",
57766 - __FILE__,__LINE__, tty->driver->name, port->count );
57767 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57768
57769 if (!retval)
57770 port->flags |= ASYNC_NORMAL_ACTIVE;
57771 diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
57772 index b5b4278..bb9c7b0 100644
57773 --- a/drivers/tty/sysrq.c
57774 +++ b/drivers/tty/sysrq.c
57775 @@ -1072,7 +1072,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
57776 static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
57777 size_t count, loff_t *ppos)
57778 {
57779 - if (count) {
57780 + if (count && capable(CAP_SYS_ADMIN)) {
57781 char c;
57782
57783 if (get_user(c, buf))
57784 diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
57785 index 4cf263d..fd011fa 100644
57786 --- a/drivers/tty/tty_buffer.c
57787 +++ b/drivers/tty/tty_buffer.c
57788 @@ -242,7 +242,10 @@ void tty_buffer_flush(struct tty_struct *tty, struct tty_ldisc *ld)
57789 atomic_inc(&buf->priority);
57790
57791 mutex_lock(&buf->lock);
57792 - while ((next = buf->head->next) != NULL) {
57793 + /* paired w/ release in __tty_buffer_request_room; ensures there are
57794 + * no pending memory accesses to the freed buffer
57795 + */
57796 + while ((next = smp_load_acquire(&buf->head->next)) != NULL) {
57797 tty_buffer_free(port, buf->head);
57798 buf->head = next;
57799 }
57800 @@ -290,13 +293,15 @@ static int __tty_buffer_request_room(struct tty_port *port, size_t size,
57801 if (n != NULL) {
57802 n->flags = flags;
57803 buf->tail = n;
57804 - b->commit = b->used;
57805 - /* paired w/ barrier in flush_to_ldisc(); ensures the
57806 + /* paired w/ acquire in flush_to_ldisc(); ensures
57807 + * flush_to_ldisc() sees buffer data.
57808 + */
57809 + smp_store_release(&b->commit, b->used);
57810 + /* paired w/ acquire in flush_to_ldisc(); ensures the
57811 * latest commit value can be read before the head is
57812 * advanced to the next buffer
57813 */
57814 - smp_wmb();
57815 - b->next = n;
57816 + smp_store_release(&b->next, n);
57817 } else if (change)
57818 size = 0;
57819 else
57820 @@ -394,7 +399,10 @@ void tty_schedule_flip(struct tty_port *port)
57821 {
57822 struct tty_bufhead *buf = &port->buf;
57823
57824 - buf->tail->commit = buf->tail->used;
57825 + /* paired w/ acquire in flush_to_ldisc(); ensures
57826 + * flush_to_ldisc() sees buffer data.
57827 + */
57828 + smp_store_release(&buf->tail->commit, buf->tail->used);
57829 schedule_work(&buf->work);
57830 }
57831 EXPORT_SYMBOL(tty_schedule_flip);
57832 @@ -469,7 +477,7 @@ static void flush_to_ldisc(struct work_struct *work)
57833 struct tty_struct *tty;
57834 struct tty_ldisc *disc;
57835
57836 - tty = port->itty;
57837 + tty = READ_ONCE(port->itty);
57838 if (tty == NULL)
57839 return;
57840
57841 @@ -488,13 +496,15 @@ static void flush_to_ldisc(struct work_struct *work)
57842 if (atomic_read(&buf->priority))
57843 break;
57844
57845 - next = head->next;
57846 - /* paired w/ barrier in __tty_buffer_request_room();
57847 + /* paired w/ release in __tty_buffer_request_room();
57848 * ensures commit value read is not stale if the head
57849 * is advancing to the next buffer
57850 */
57851 - smp_rmb();
57852 - count = head->commit - head->read;
57853 + next = smp_load_acquire(&head->next);
57854 + /* paired w/ release in __tty_buffer_request_room() or in
57855 + * tty_buffer_flush(); ensures we see the committed buffer data
57856 + */
57857 + count = smp_load_acquire(&head->commit) - head->read;
57858 if (!count) {
57859 if (next == NULL) {
57860 check_other_closed(tty);
57861 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
57862 index 774df35..62fa290 100644
57863 --- a/drivers/tty/tty_io.c
57864 +++ b/drivers/tty/tty_io.c
57865 @@ -3524,7 +3524,7 @@ EXPORT_SYMBOL(tty_devnum);
57866
57867 void tty_default_fops(struct file_operations *fops)
57868 {
57869 - *fops = tty_fops;
57870 + memcpy((void *)fops, &tty_fops, sizeof(tty_fops));
57871 }
57872
57873 /*
57874 diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
57875 index c07fb5d..942acf7 100644
57876 --- a/drivers/tty/tty_ldisc.c
57877 +++ b/drivers/tty/tty_ldisc.c
57878 @@ -70,7 +70,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
57879 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57880 tty_ldiscs[disc] = new_ldisc;
57881 new_ldisc->num = disc;
57882 - new_ldisc->refcount = 0;
57883 + atomic_set(&new_ldisc->refcount, 0);
57884 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
57885
57886 return ret;
57887 @@ -98,7 +98,7 @@ int tty_unregister_ldisc(int disc)
57888 return -EINVAL;
57889
57890 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57891 - if (tty_ldiscs[disc]->refcount)
57892 + if (atomic_read(&tty_ldiscs[disc]->refcount))
57893 ret = -EBUSY;
57894 else
57895 tty_ldiscs[disc] = NULL;
57896 @@ -119,7 +119,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
57897 if (ldops) {
57898 ret = ERR_PTR(-EAGAIN);
57899 if (try_module_get(ldops->owner)) {
57900 - ldops->refcount++;
57901 + atomic_inc(&ldops->refcount);
57902 ret = ldops;
57903 }
57904 }
57905 @@ -132,7 +132,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
57906 unsigned long flags;
57907
57908 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57909 - ldops->refcount--;
57910 + atomic_dec(&ldops->refcount);
57911 module_put(ldops->owner);
57912 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
57913 }
57914 diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
57915 index 40b31835..94d92ae 100644
57916 --- a/drivers/tty/tty_port.c
57917 +++ b/drivers/tty/tty_port.c
57918 @@ -236,7 +236,7 @@ void tty_port_hangup(struct tty_port *port)
57919 unsigned long flags;
57920
57921 spin_lock_irqsave(&port->lock, flags);
57922 - port->count = 0;
57923 + atomic_set(&port->count, 0);
57924 port->flags &= ~ASYNC_NORMAL_ACTIVE;
57925 tty = port->tty;
57926 if (tty)
57927 @@ -398,7 +398,7 @@ int tty_port_block_til_ready(struct tty_port *port,
57928
57929 /* The port lock protects the port counts */
57930 spin_lock_irqsave(&port->lock, flags);
57931 - port->count--;
57932 + atomic_dec(&port->count);
57933 port->blocked_open++;
57934 spin_unlock_irqrestore(&port->lock, flags);
57935
57936 @@ -440,7 +440,7 @@ int tty_port_block_til_ready(struct tty_port *port,
57937 we must not mess that up further */
57938 spin_lock_irqsave(&port->lock, flags);
57939 if (!tty_hung_up_p(filp))
57940 - port->count++;
57941 + atomic_inc(&port->count);
57942 port->blocked_open--;
57943 if (retval == 0)
57944 port->flags |= ASYNC_NORMAL_ACTIVE;
57945 @@ -476,19 +476,19 @@ int tty_port_close_start(struct tty_port *port,
57946 return 0;
57947
57948 spin_lock_irqsave(&port->lock, flags);
57949 - if (tty->count == 1 && port->count != 1) {
57950 + if (tty->count == 1 && atomic_read(&port->count) != 1) {
57951 printk(KERN_WARNING
57952 "tty_port_close_start: tty->count = 1 port count = %d.\n",
57953 - port->count);
57954 - port->count = 1;
57955 + atomic_read(&port->count));
57956 + atomic_set(&port->count, 1);
57957 }
57958 - if (--port->count < 0) {
57959 + if (atomic_dec_return(&port->count) < 0) {
57960 printk(KERN_WARNING "tty_port_close_start: count = %d\n",
57961 - port->count);
57962 - port->count = 0;
57963 + atomic_read(&port->count));
57964 + atomic_set(&port->count, 0);
57965 }
57966
57967 - if (port->count) {
57968 + if (atomic_read(&port->count)) {
57969 spin_unlock_irqrestore(&port->lock, flags);
57970 return 0;
57971 }
57972 @@ -590,7 +590,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty,
57973 struct file *filp)
57974 {
57975 spin_lock_irq(&port->lock);
57976 - ++port->count;
57977 + atomic_inc(&port->count);
57978 spin_unlock_irq(&port->lock);
57979 tty_port_tty_set(port, tty);
57980
57981 diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
57982 index 6f0336f..5818bc1 100644
57983 --- a/drivers/tty/vt/keyboard.c
57984 +++ b/drivers/tty/vt/keyboard.c
57985 @@ -642,6 +642,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
57986 kbd->kbdmode == VC_OFF) &&
57987 value != KVAL(K_SAK))
57988 return; /* SAK is allowed even in raw mode */
57989 +
57990 +#if defined(CONFIG_GRKERNSEC_PROC) || defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
57991 + {
57992 + void *func = fn_handler[value];
57993 + if (func == fn_show_state || func == fn_show_ptregs ||
57994 + func == fn_show_mem)
57995 + return;
57996 + }
57997 +#endif
57998 +
57999 fn_handler[value](vc);
58000 }
58001
58002 @@ -1880,9 +1890,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
58003 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
58004 return -EFAULT;
58005
58006 - if (!capable(CAP_SYS_TTY_CONFIG))
58007 - perm = 0;
58008 -
58009 switch (cmd) {
58010 case KDGKBENT:
58011 /* Ensure another thread doesn't free it under us */
58012 @@ -1897,6 +1904,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
58013 spin_unlock_irqrestore(&kbd_event_lock, flags);
58014 return put_user(val, &user_kbe->kb_value);
58015 case KDSKBENT:
58016 + if (!capable(CAP_SYS_TTY_CONFIG))
58017 + perm = 0;
58018 +
58019 if (!perm)
58020 return -EPERM;
58021 if (!i && v == K_NOSUCHMAP) {
58022 @@ -1987,9 +1997,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
58023 int i, j, k;
58024 int ret;
58025
58026 - if (!capable(CAP_SYS_TTY_CONFIG))
58027 - perm = 0;
58028 -
58029 kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
58030 if (!kbs) {
58031 ret = -ENOMEM;
58032 @@ -2023,6 +2030,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
58033 kfree(kbs);
58034 return ((p && *p) ? -EOVERFLOW : 0);
58035 case KDSKBSENT:
58036 + if (!capable(CAP_SYS_TTY_CONFIG))
58037 + perm = 0;
58038 +
58039 if (!perm) {
58040 ret = -EPERM;
58041 goto reterr;
58042 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
58043 index 3257d42..b430b06 100644
58044 --- a/drivers/uio/uio.c
58045 +++ b/drivers/uio/uio.c
58046 @@ -25,6 +25,7 @@
58047 #include <linux/kobject.h>
58048 #include <linux/cdev.h>
58049 #include <linux/uio_driver.h>
58050 +#include <asm/local.h>
58051
58052 #define UIO_MAX_DEVICES (1U << MINORBITS)
58053
58054 @@ -231,7 +232,7 @@ static ssize_t event_show(struct device *dev,
58055 struct device_attribute *attr, char *buf)
58056 {
58057 struct uio_device *idev = dev_get_drvdata(dev);
58058 - return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
58059 + return sprintf(buf, "%u\n", (unsigned int)atomic_read_unchecked(&idev->event));
58060 }
58061 static DEVICE_ATTR_RO(event);
58062
58063 @@ -393,7 +394,7 @@ void uio_event_notify(struct uio_info *info)
58064 {
58065 struct uio_device *idev = info->uio_dev;
58066
58067 - atomic_inc(&idev->event);
58068 + atomic_inc_unchecked(&idev->event);
58069 wake_up_interruptible(&idev->wait);
58070 kill_fasync(&idev->async_queue, SIGIO, POLL_IN);
58071 }
58072 @@ -446,7 +447,7 @@ static int uio_open(struct inode *inode, struct file *filep)
58073 }
58074
58075 listener->dev = idev;
58076 - listener->event_count = atomic_read(&idev->event);
58077 + listener->event_count = atomic_read_unchecked(&idev->event);
58078 filep->private_data = listener;
58079
58080 if (idev->info->open) {
58081 @@ -497,7 +498,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
58082 return -EIO;
58083
58084 poll_wait(filep, &idev->wait, wait);
58085 - if (listener->event_count != atomic_read(&idev->event))
58086 + if (listener->event_count != atomic_read_unchecked(&idev->event))
58087 return POLLIN | POLLRDNORM;
58088 return 0;
58089 }
58090 @@ -522,7 +523,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
58091 do {
58092 set_current_state(TASK_INTERRUPTIBLE);
58093
58094 - event_count = atomic_read(&idev->event);
58095 + event_count = atomic_read_unchecked(&idev->event);
58096 if (event_count != listener->event_count) {
58097 if (copy_to_user(buf, &event_count, count))
58098 retval = -EFAULT;
58099 @@ -579,9 +580,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
58100 static int uio_find_mem_index(struct vm_area_struct *vma)
58101 {
58102 struct uio_device *idev = vma->vm_private_data;
58103 + unsigned long size;
58104
58105 if (vma->vm_pgoff < MAX_UIO_MAPS) {
58106 - if (idev->info->mem[vma->vm_pgoff].size == 0)
58107 + size = idev->info->mem[vma->vm_pgoff].size;
58108 + if (size == 0)
58109 + return -1;
58110 + if (vma->vm_end - vma->vm_start > size)
58111 return -1;
58112 return (int)vma->vm_pgoff;
58113 }
58114 @@ -813,7 +818,7 @@ int __uio_register_device(struct module *owner,
58115 idev->owner = owner;
58116 idev->info = info;
58117 init_waitqueue_head(&idev->wait);
58118 - atomic_set(&idev->event, 0);
58119 + atomic_set_unchecked(&idev->event, 0);
58120
58121 ret = uio_get_minor(idev);
58122 if (ret)
58123 diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
58124 index 813d4d3..a71934f 100644
58125 --- a/drivers/usb/atm/cxacru.c
58126 +++ b/drivers/usb/atm/cxacru.c
58127 @@ -472,7 +472,7 @@ static ssize_t cxacru_sysfs_store_adsl_config(struct device *dev,
58128 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
58129 if (ret < 2)
58130 return -EINVAL;
58131 - if (index < 0 || index > 0x7f)
58132 + if (index > 0x7f)
58133 return -EINVAL;
58134 pos += tmp;
58135
58136 diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
58137 index db322d9..f0f4bc1 100644
58138 --- a/drivers/usb/atm/usbatm.c
58139 +++ b/drivers/usb/atm/usbatm.c
58140 @@ -331,7 +331,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
58141 if (printk_ratelimit())
58142 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
58143 __func__, vpi, vci);
58144 - atomic_inc(&vcc->stats->rx_err);
58145 + atomic_inc_unchecked(&vcc->stats->rx_err);
58146 return;
58147 }
58148
58149 @@ -358,7 +358,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
58150 if (length > ATM_MAX_AAL5_PDU) {
58151 atm_rldbg(instance, "%s: bogus length %u (vcc: 0x%p)!\n",
58152 __func__, length, vcc);
58153 - atomic_inc(&vcc->stats->rx_err);
58154 + atomic_inc_unchecked(&vcc->stats->rx_err);
58155 goto out;
58156 }
58157
58158 @@ -367,14 +367,14 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
58159 if (sarb->len < pdu_length) {
58160 atm_rldbg(instance, "%s: bogus pdu_length %u (sarb->len: %u, vcc: 0x%p)!\n",
58161 __func__, pdu_length, sarb->len, vcc);
58162 - atomic_inc(&vcc->stats->rx_err);
58163 + atomic_inc_unchecked(&vcc->stats->rx_err);
58164 goto out;
58165 }
58166
58167 if (crc32_be(~0, skb_tail_pointer(sarb) - pdu_length, pdu_length) != 0xc704dd7b) {
58168 atm_rldbg(instance, "%s: packet failed crc check (vcc: 0x%p)!\n",
58169 __func__, vcc);
58170 - atomic_inc(&vcc->stats->rx_err);
58171 + atomic_inc_unchecked(&vcc->stats->rx_err);
58172 goto out;
58173 }
58174
58175 @@ -387,7 +387,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
58176 if (printk_ratelimit())
58177 atm_err(instance, "%s: no memory for skb (length: %u)!\n",
58178 __func__, length);
58179 - atomic_inc(&vcc->stats->rx_drop);
58180 + atomic_inc_unchecked(&vcc->stats->rx_drop);
58181 goto out;
58182 }
58183
58184 @@ -415,7 +415,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
58185
58186 vcc->push(vcc, skb);
58187
58188 - atomic_inc(&vcc->stats->rx);
58189 + atomic_inc_unchecked(&vcc->stats->rx);
58190 out:
58191 skb_trim(sarb, 0);
58192 }
58193 @@ -613,7 +613,7 @@ static void usbatm_tx_process(unsigned long data)
58194 struct atm_vcc *vcc = UDSL_SKB(skb)->atm.vcc;
58195
58196 usbatm_pop(vcc, skb);
58197 - atomic_inc(&vcc->stats->tx);
58198 + atomic_inc_unchecked(&vcc->stats->tx);
58199
58200 skb = skb_dequeue(&instance->sndqueue);
58201 }
58202 @@ -757,11 +757,11 @@ static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t *pos, char *page
58203 if (!left--)
58204 return sprintf(page,
58205 "AAL5: tx %d ( %d err ), rx %d ( %d err, %d drop )\n",
58206 - atomic_read(&atm_dev->stats.aal5.tx),
58207 - atomic_read(&atm_dev->stats.aal5.tx_err),
58208 - atomic_read(&atm_dev->stats.aal5.rx),
58209 - atomic_read(&atm_dev->stats.aal5.rx_err),
58210 - atomic_read(&atm_dev->stats.aal5.rx_drop));
58211 + atomic_read_unchecked(&atm_dev->stats.aal5.tx),
58212 + atomic_read_unchecked(&atm_dev->stats.aal5.tx_err),
58213 + atomic_read_unchecked(&atm_dev->stats.aal5.rx),
58214 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_err),
58215 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_drop));
58216
58217 if (!left--) {
58218 if (instance->disconnected)
58219 diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
58220 index dd9af38..75b53e3 100644
58221 --- a/drivers/usb/class/cdc-acm.h
58222 +++ b/drivers/usb/class/cdc-acm.h
58223 @@ -95,7 +95,7 @@ struct acm {
58224 struct urb *read_urbs[ACM_NR];
58225 struct acm_rb read_buffers[ACM_NR];
58226 int rx_buflimit;
58227 - int rx_endpoint;
58228 + unsigned int rx_endpoint;
58229 spinlock_t read_lock;
58230 int write_used; /* number of non-empty write buffers */
58231 int transmitting;
58232 diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
58233 index 2a3bbdf..91d72cf 100644
58234 --- a/drivers/usb/core/devices.c
58235 +++ b/drivers/usb/core/devices.c
58236 @@ -126,7 +126,7 @@ static const char format_endpt[] =
58237 * time it gets called.
58238 */
58239 static struct device_connect_event {
58240 - atomic_t count;
58241 + atomic_unchecked_t count;
58242 wait_queue_head_t wait;
58243 } device_event = {
58244 .count = ATOMIC_INIT(1),
58245 @@ -164,7 +164,7 @@ static const struct class_info clas_info[] = {
58246
58247 void usbfs_conn_disc_event(void)
58248 {
58249 - atomic_add(2, &device_event.count);
58250 + atomic_add_unchecked(2, &device_event.count);
58251 wake_up(&device_event.wait);
58252 }
58253
58254 @@ -652,7 +652,7 @@ static unsigned int usb_device_poll(struct file *file,
58255
58256 poll_wait(file, &device_event.wait, wait);
58257
58258 - event_count = atomic_read(&device_event.count);
58259 + event_count = atomic_read_unchecked(&device_event.count);
58260 if (file->f_version != event_count) {
58261 file->f_version = event_count;
58262 return POLLIN | POLLRDNORM;
58263 diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
58264 index 986abde..2af59b11 100644
58265 --- a/drivers/usb/core/devio.c
58266 +++ b/drivers/usb/core/devio.c
58267 @@ -187,7 +187,7 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
58268 struct usb_dev_state *ps = file->private_data;
58269 struct usb_device *dev = ps->dev;
58270 ssize_t ret = 0;
58271 - unsigned len;
58272 + size_t len;
58273 loff_t pos;
58274 int i;
58275
58276 @@ -229,22 +229,22 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
58277 for (i = 0; nbytes && i < dev->descriptor.bNumConfigurations; i++) {
58278 struct usb_config_descriptor *config =
58279 (struct usb_config_descriptor *)dev->rawdescriptors[i];
58280 - unsigned int length = le16_to_cpu(config->wTotalLength);
58281 + size_t length = le16_to_cpu(config->wTotalLength);
58282
58283 if (*ppos < pos + length) {
58284
58285 /* The descriptor may claim to be longer than it
58286 * really is. Here is the actual allocated length. */
58287 - unsigned alloclen =
58288 + size_t alloclen =
58289 le16_to_cpu(dev->config[i].desc.wTotalLength);
58290
58291 - len = length - (*ppos - pos);
58292 + len = length + pos - *ppos;
58293 if (len > nbytes)
58294 len = nbytes;
58295
58296 /* Simply don't write (skip over) unallocated parts */
58297 if (alloclen > (*ppos - pos)) {
58298 - alloclen -= (*ppos - pos);
58299 + alloclen = alloclen + pos - *ppos;
58300 if (copy_to_user(buf,
58301 dev->rawdescriptors[i] + (*ppos - pos),
58302 min(len, alloclen))) {
58303 @@ -1499,7 +1499,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
58304 }
58305 }
58306 as->urb->dev = ps->dev;
58307 - as->urb->pipe = (uurb->type << 30) |
58308 + as->urb->pipe = ((unsigned int)uurb->type << 30) |
58309 __create_pipe(ps->dev, uurb->endpoint & 0xf) |
58310 (uurb->endpoint & USB_DIR_IN);
58311
58312 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
58313 index cbcd092..e783f87 100644
58314 --- a/drivers/usb/core/hcd.c
58315 +++ b/drivers/usb/core/hcd.c
58316 @@ -1554,7 +1554,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
58317 */
58318 usb_get_urb(urb);
58319 atomic_inc(&urb->use_count);
58320 - atomic_inc(&urb->dev->urbnum);
58321 + atomic_inc_unchecked(&urb->dev->urbnum);
58322 usbmon_urb_submit(&hcd->self, urb);
58323
58324 /* NOTE requirements on root-hub callers (usbfs and the hub
58325 @@ -1581,7 +1581,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
58326 urb->hcpriv = NULL;
58327 INIT_LIST_HEAD(&urb->urb_list);
58328 atomic_dec(&urb->use_count);
58329 - atomic_dec(&urb->dev->urbnum);
58330 + atomic_dec_unchecked(&urb->dev->urbnum);
58331 if (atomic_read(&urb->reject))
58332 wake_up(&usb_kill_urb_queue);
58333 usb_put_urb(urb);
58334 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
58335 index 73dfa19..c22f1e43 100644
58336 --- a/drivers/usb/core/hub.c
58337 +++ b/drivers/usb/core/hub.c
58338 @@ -26,6 +26,7 @@
58339 #include <linux/mutex.h>
58340 #include <linux/random.h>
58341 #include <linux/pm_qos.h>
58342 +#include <linux/grsecurity.h>
58343
58344 #include <asm/uaccess.h>
58345 #include <asm/byteorder.h>
58346 @@ -4655,6 +4656,10 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
58347 goto done;
58348 return;
58349 }
58350 +
58351 + if (gr_handle_new_usb())
58352 + goto done;
58353 +
58354 if (hub_is_superspeed(hub->hdev))
58355 unit_load = 150;
58356 else
58357 diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
58358 index d269738..7340cd7 100644
58359 --- a/drivers/usb/core/sysfs.c
58360 +++ b/drivers/usb/core/sysfs.c
58361 @@ -244,7 +244,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
58362 struct usb_device *udev;
58363
58364 udev = to_usb_device(dev);
58365 - return sprintf(buf, "%d\n", atomic_read(&udev->urbnum));
58366 + return sprintf(buf, "%d\n", atomic_read_unchecked(&udev->urbnum));
58367 }
58368 static DEVICE_ATTR_RO(urbnum);
58369
58370 diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
58371 index 8d5b2f4..3896940 100644
58372 --- a/drivers/usb/core/usb.c
58373 +++ b/drivers/usb/core/usb.c
58374 @@ -447,7 +447,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
58375 set_dev_node(&dev->dev, dev_to_node(bus->controller));
58376 dev->state = USB_STATE_ATTACHED;
58377 dev->lpm_disable_count = 1;
58378 - atomic_set(&dev->urbnum, 0);
58379 + atomic_set_unchecked(&dev->urbnum, 0);
58380
58381 INIT_LIST_HEAD(&dev->ep0.urb_list);
58382 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
58383 diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
58384 index 8cfc319..4868255 100644
58385 --- a/drivers/usb/early/ehci-dbgp.c
58386 +++ b/drivers/usb/early/ehci-dbgp.c
58387 @@ -98,7 +98,8 @@ static inline u32 dbgp_len_update(u32 x, u32 len)
58388
58389 #ifdef CONFIG_KGDB
58390 static struct kgdb_io kgdbdbgp_io_ops;
58391 -#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops)
58392 +static struct kgdb_io kgdbdbgp_io_ops_console;
58393 +#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops || dbg_io_ops == &kgdbdbgp_io_ops_console)
58394 #else
58395 #define dbgp_kgdb_mode (0)
58396 #endif
58397 @@ -1043,6 +1044,13 @@ static struct kgdb_io kgdbdbgp_io_ops = {
58398 .write_char = kgdbdbgp_write_char,
58399 };
58400
58401 +static struct kgdb_io kgdbdbgp_io_ops_console = {
58402 + .name = "kgdbdbgp",
58403 + .read_char = kgdbdbgp_read_char,
58404 + .write_char = kgdbdbgp_write_char,
58405 + .is_console = 1
58406 +};
58407 +
58408 static int kgdbdbgp_wait_time;
58409
58410 static int __init kgdbdbgp_parse_config(char *str)
58411 @@ -1058,8 +1066,10 @@ static int __init kgdbdbgp_parse_config(char *str)
58412 ptr++;
58413 kgdbdbgp_wait_time = simple_strtoul(ptr, &ptr, 10);
58414 }
58415 - kgdb_register_io_module(&kgdbdbgp_io_ops);
58416 - kgdbdbgp_io_ops.is_console = early_dbgp_console.index != -1;
58417 + if (early_dbgp_console.index != -1)
58418 + kgdb_register_io_module(&kgdbdbgp_io_ops_console);
58419 + else
58420 + kgdb_register_io_module(&kgdbdbgp_io_ops);
58421
58422 return 0;
58423 }
58424 diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
58425 index 7856b33..8b7fe09 100644
58426 --- a/drivers/usb/gadget/function/f_uac1.c
58427 +++ b/drivers/usb/gadget/function/f_uac1.c
58428 @@ -14,6 +14,7 @@
58429 #include <linux/module.h>
58430 #include <linux/device.h>
58431 #include <linux/atomic.h>
58432 +#include <linux/module.h>
58433
58434 #include "u_uac1.h"
58435
58436 diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
58437 index 7ee05793..2e31e99 100644
58438 --- a/drivers/usb/gadget/function/u_serial.c
58439 +++ b/drivers/usb/gadget/function/u_serial.c
58440 @@ -732,9 +732,9 @@ static int gs_open(struct tty_struct *tty, struct file *file)
58441 spin_lock_irq(&port->port_lock);
58442
58443 /* already open? Great. */
58444 - if (port->port.count) {
58445 + if (atomic_read(&port->port.count)) {
58446 status = 0;
58447 - port->port.count++;
58448 + atomic_inc(&port->port.count);
58449
58450 /* currently opening/closing? wait ... */
58451 } else if (port->openclose) {
58452 @@ -793,7 +793,7 @@ static int gs_open(struct tty_struct *tty, struct file *file)
58453 tty->driver_data = port;
58454 port->port.tty = tty;
58455
58456 - port->port.count = 1;
58457 + atomic_set(&port->port.count, 1);
58458 port->openclose = false;
58459
58460 /* if connected, start the I/O stream */
58461 @@ -835,11 +835,11 @@ static void gs_close(struct tty_struct *tty, struct file *file)
58462
58463 spin_lock_irq(&port->port_lock);
58464
58465 - if (port->port.count != 1) {
58466 - if (port->port.count == 0)
58467 + if (atomic_read(&port->port.count) != 1) {
58468 + if (atomic_read(&port->port.count) == 0)
58469 WARN_ON(1);
58470 else
58471 - --port->port.count;
58472 + atomic_dec(&port->port.count);
58473 goto exit;
58474 }
58475
58476 @@ -849,7 +849,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
58477 * and sleep if necessary
58478 */
58479 port->openclose = true;
58480 - port->port.count = 0;
58481 + atomic_set(&port->port.count, 0);
58482
58483 gser = port->port_usb;
58484 if (gser && gser->disconnect)
58485 @@ -1065,7 +1065,7 @@ static int gs_closed(struct gs_port *port)
58486 int cond;
58487
58488 spin_lock_irq(&port->port_lock);
58489 - cond = (port->port.count == 0) && !port->openclose;
58490 + cond = (atomic_read(&port->port.count) == 0) && !port->openclose;
58491 spin_unlock_irq(&port->port_lock);
58492 return cond;
58493 }
58494 @@ -1208,7 +1208,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
58495 /* if it's already open, start I/O ... and notify the serial
58496 * protocol about open/close status (connect/disconnect).
58497 */
58498 - if (port->port.count) {
58499 + if (atomic_read(&port->port.count)) {
58500 pr_debug("gserial_connect: start ttyGS%d\n", port->port_num);
58501 gs_start_io(port);
58502 if (gser->connect)
58503 @@ -1255,7 +1255,7 @@ void gserial_disconnect(struct gserial *gser)
58504
58505 port->port_usb = NULL;
58506 gser->ioport = NULL;
58507 - if (port->port.count > 0 || port->openclose) {
58508 + if (atomic_read(&port->port.count) > 0 || port->openclose) {
58509 wake_up_interruptible(&port->drain_wait);
58510 if (port->port.tty)
58511 tty_hangup(port->port.tty);
58512 @@ -1271,7 +1271,7 @@ void gserial_disconnect(struct gserial *gser)
58513
58514 /* finally, free any unused/unusable I/O buffers */
58515 spin_lock_irqsave(&port->port_lock, flags);
58516 - if (port->port.count == 0 && !port->openclose)
58517 + if (atomic_read(&port->port.count) == 0 && !port->openclose)
58518 gs_buf_free(&port->port_write_buf);
58519 gs_free_requests(gser->out, &port->read_pool, NULL);
58520 gs_free_requests(gser->out, &port->read_queue, NULL);
58521 diff --git a/drivers/usb/gadget/function/u_uac1.c b/drivers/usb/gadget/function/u_uac1.c
58522 index c78c841..48fd281 100644
58523 --- a/drivers/usb/gadget/function/u_uac1.c
58524 +++ b/drivers/usb/gadget/function/u_uac1.c
58525 @@ -17,6 +17,7 @@
58526 #include <linux/ctype.h>
58527 #include <linux/random.h>
58528 #include <linux/syscalls.h>
58529 +#include <linux/module.h>
58530
58531 #include "u_uac1.h"
58532
58533 diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
58534 index 181112c..036bcab 100644
58535 --- a/drivers/usb/gadget/udc/dummy_hcd.c
58536 +++ b/drivers/usb/gadget/udc/dummy_hcd.c
58537 @@ -2384,7 +2384,7 @@ static int dummy_setup(struct usb_hcd *hcd)
58538 struct dummy *dum;
58539
58540 dum = *((void **)dev_get_platdata(hcd->self.controller));
58541 - hcd->self.sg_tablesize = ~0;
58542 + hcd->self.sg_tablesize = SG_ALL;
58543 if (usb_hcd_is_primary_hcd(hcd)) {
58544 dum->hs_hcd = hcd_to_dummy_hcd(hcd);
58545 dum->hs_hcd->dum = dum;
58546 diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
58547 index c63d82c..a7e8665 100644
58548 --- a/drivers/usb/host/ehci-hcd.c
58549 +++ b/drivers/usb/host/ehci-hcd.c
58550 @@ -564,7 +564,7 @@ static int ehci_init(struct usb_hcd *hcd)
58551
58552 /* Accept arbitrarily long scatter-gather lists */
58553 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58554 - hcd->self.sg_tablesize = ~0;
58555 + hcd->self.sg_tablesize = SG_ALL;
58556 return 0;
58557 }
58558
58559 diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
58560 index 22abb68..50b7b84 100644
58561 --- a/drivers/usb/host/ehci-hub.c
58562 +++ b/drivers/usb/host/ehci-hub.c
58563 @@ -773,7 +773,7 @@ static struct urb *request_single_step_set_feature_urb(
58564 urb->transfer_flags = URB_DIR_IN;
58565 usb_get_urb(urb);
58566 atomic_inc(&urb->use_count);
58567 - atomic_inc(&urb->dev->urbnum);
58568 + atomic_inc_unchecked(&urb->dev->urbnum);
58569 urb->setup_dma = dma_map_single(
58570 hcd->self.controller,
58571 urb->setup_packet,
58572 @@ -840,7 +840,7 @@ static int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
58573 urb->status = -EINPROGRESS;
58574 usb_get_urb(urb);
58575 atomic_inc(&urb->use_count);
58576 - atomic_inc(&urb->dev->urbnum);
58577 + atomic_inc_unchecked(&urb->dev->urbnum);
58578 retval = submit_single_step_set_feature(hcd, urb, 0);
58579 if (!retval && !wait_for_completion_timeout(&done,
58580 msecs_to_jiffies(2000))) {
58581 diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
58582 index 54f5332..8b8335c 100644
58583 --- a/drivers/usb/host/ehci-q.c
58584 +++ b/drivers/usb/host/ehci-q.c
58585 @@ -44,9 +44,9 @@
58586
58587 static int
58588 qtd_fill(struct ehci_hcd *ehci, struct ehci_qtd *qtd, dma_addr_t buf,
58589 - size_t len, int token, int maxpacket)
58590 + size_t len, u32 token, int maxpacket)
58591 {
58592 - int i, count;
58593 + u32 i, count;
58594 u64 addr = buf;
58595
58596 /* one buffer entry per 4K ... first might be short or unaligned */
58597 diff --git a/drivers/usb/host/fotg210-hcd.c b/drivers/usb/host/fotg210-hcd.c
58598 index 000ed80..2701154 100644
58599 --- a/drivers/usb/host/fotg210-hcd.c
58600 +++ b/drivers/usb/host/fotg210-hcd.c
58601 @@ -5231,7 +5231,7 @@ static int hcd_fotg210_init(struct usb_hcd *hcd)
58602
58603 /* Accept arbitrarily long scatter-gather lists */
58604 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58605 - hcd->self.sg_tablesize = ~0;
58606 + hcd->self.sg_tablesize = SG_ALL;
58607 return 0;
58608 }
58609
58610 diff --git a/drivers/usb/host/fusbh200-hcd.c b/drivers/usb/host/fusbh200-hcd.c
58611 index 1fd8718..c7ff47c 100644
58612 --- a/drivers/usb/host/fusbh200-hcd.c
58613 +++ b/drivers/usb/host/fusbh200-hcd.c
58614 @@ -5156,7 +5156,7 @@ static int hcd_fusbh200_init(struct usb_hcd *hcd)
58615
58616 /* Accept arbitrarily long scatter-gather lists */
58617 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58618 - hcd->self.sg_tablesize = ~0;
58619 + hcd->self.sg_tablesize = SG_ALL;
58620 return 0;
58621 }
58622
58623 diff --git a/drivers/usb/host/hwa-hc.c b/drivers/usb/host/hwa-hc.c
58624 index 1db0626..2e9f5ea 100644
58625 --- a/drivers/usb/host/hwa-hc.c
58626 +++ b/drivers/usb/host/hwa-hc.c
58627 @@ -337,7 +337,10 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
58628 struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc);
58629 struct wahc *wa = &hwahc->wa;
58630 struct device *dev = &wa->usb_iface->dev;
58631 - u8 mas_le[UWB_NUM_MAS/8];
58632 + u8 *mas_le = kmalloc(UWB_NUM_MAS/8, GFP_KERNEL);
58633 +
58634 + if (mas_le == NULL)
58635 + return -ENOMEM;
58636
58637 /* Set the stream index */
58638 result = usb_control_msg(wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0),
58639 @@ -356,10 +359,12 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
58640 WUSB_REQ_SET_WUSB_MAS,
58641 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
58642 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber,
58643 - mas_le, 32, USB_CTRL_SET_TIMEOUT);
58644 + mas_le, UWB_NUM_MAS/8, USB_CTRL_SET_TIMEOUT);
58645 if (result < 0)
58646 dev_err(dev, "Cannot set WUSB MAS allocation: %d\n", result);
58647 out:
58648 + kfree(mas_le);
58649 +
58650 return result;
58651 }
58652
58653 @@ -812,7 +817,7 @@ static int hwahc_probe(struct usb_interface *usb_iface,
58654 goto error_alloc;
58655 }
58656 usb_hcd->wireless = 1;
58657 - usb_hcd->self.sg_tablesize = ~0;
58658 + usb_hcd->self.sg_tablesize = SG_ALL;
58659 wusbhc = usb_hcd_to_wusbhc(usb_hcd);
58660 hwahc = container_of(wusbhc, struct hwahc, wusbhc);
58661 hwahc_init(hwahc);
58662 diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
58663 index 760cb57..fc7f8ad 100644
58664 --- a/drivers/usb/host/ohci-hcd.c
58665 +++ b/drivers/usb/host/ohci-hcd.c
58666 @@ -444,7 +444,7 @@ static int ohci_init (struct ohci_hcd *ohci)
58667 struct usb_hcd *hcd = ohci_to_hcd(ohci);
58668
58669 /* Accept arbitrarily long scatter-gather lists */
58670 - hcd->self.sg_tablesize = ~0;
58671 + hcd->self.sg_tablesize = SG_ALL;
58672
58673 if (distrust_firmware)
58674 ohci->flags |= OHCI_QUIRK_HUB_POWER;
58675 diff --git a/drivers/usb/host/r8a66597.h b/drivers/usb/host/r8a66597.h
58676 index 672cea3..31a730db 100644
58677 --- a/drivers/usb/host/r8a66597.h
58678 +++ b/drivers/usb/host/r8a66597.h
58679 @@ -125,7 +125,7 @@ struct r8a66597 {
58680 unsigned short interval_map;
58681 unsigned char pipe_cnt[R8A66597_MAX_NUM_PIPE];
58682 unsigned char dma_map;
58683 - unsigned int max_root_hub;
58684 + unsigned char max_root_hub;
58685
58686 struct list_head child_device;
58687 unsigned long child_connect_map[4];
58688 diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
58689 index a7de8e8..e1ef134 100644
58690 --- a/drivers/usb/host/uhci-hcd.c
58691 +++ b/drivers/usb/host/uhci-hcd.c
58692 @@ -570,7 +570,7 @@ static int uhci_start(struct usb_hcd *hcd)
58693 hcd->uses_new_polling = 1;
58694 /* Accept arbitrarily long scatter-gather lists */
58695 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58696 - hcd->self.sg_tablesize = ~0;
58697 + hcd->self.sg_tablesize = SG_ALL;
58698
58699 spin_lock_init(&uhci->lock);
58700 setup_timer(&uhci->fsbr_timer, uhci_fsbr_timeout,
58701 diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
58702 index c47d3e4..35bcc1e 100644
58703 --- a/drivers/usb/host/xhci-pci.c
58704 +++ b/drivers/usb/host/xhci-pci.c
58705 @@ -30,7 +30,7 @@
58706
58707 #define PORT2_SSIC_CONFIG_REG2 0x883c
58708 #define PROG_DONE (1 << 30)
58709 -#define SSIC_PORT_UNUSED (1 << 31)
58710 +#define SSIC_PORT_UNUSED (1U << 31)
58711
58712 /* Device for a quirk */
58713 #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
58714 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
58715 index d7b9f484..8208965 100644
58716 --- a/drivers/usb/host/xhci.c
58717 +++ b/drivers/usb/host/xhci.c
58718 @@ -4837,7 +4837,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
58719 int retval;
58720
58721 /* Accept arbitrarily long scatter-gather lists */
58722 - hcd->self.sg_tablesize = ~0;
58723 + hcd->self.sg_tablesize = SG_ALL;
58724
58725 /* support to build packet from discontinuous buffers */
58726 hcd->self.no_sg_constraint = 1;
58727 diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
58728 index a0a3827..d7ec10b 100644
58729 --- a/drivers/usb/misc/appledisplay.c
58730 +++ b/drivers/usb/misc/appledisplay.c
58731 @@ -84,7 +84,7 @@ struct appledisplay {
58732 struct mutex sysfslock; /* concurrent read and write */
58733 };
58734
58735 -static atomic_t count_displays = ATOMIC_INIT(0);
58736 +static atomic_unchecked_t count_displays = ATOMIC_INIT(0);
58737 static struct workqueue_struct *wq;
58738
58739 static void appledisplay_complete(struct urb *urb)
58740 @@ -288,7 +288,7 @@ static int appledisplay_probe(struct usb_interface *iface,
58741
58742 /* Register backlight device */
58743 snprintf(bl_name, sizeof(bl_name), "appledisplay%d",
58744 - atomic_inc_return(&count_displays) - 1);
58745 + atomic_inc_return_unchecked(&count_displays) - 1);
58746 memset(&props, 0, sizeof(struct backlight_properties));
58747 props.type = BACKLIGHT_RAW;
58748 props.max_brightness = 0xff;
58749 diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
58750 index 3806e70..55c508b 100644
58751 --- a/drivers/usb/serial/console.c
58752 +++ b/drivers/usb/serial/console.c
58753 @@ -126,7 +126,7 @@ static int usb_console_setup(struct console *co, char *options)
58754
58755 info->port = port;
58756
58757 - ++port->port.count;
58758 + atomic_inc(&port->port.count);
58759 if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) {
58760 if (serial->type->set_termios) {
58761 /*
58762 @@ -175,7 +175,7 @@ static int usb_console_setup(struct console *co, char *options)
58763 }
58764 /* Now that any required fake tty operations are completed restore
58765 * the tty port count */
58766 - --port->port.count;
58767 + atomic_dec(&port->port.count);
58768 /* The console is special in terms of closing the device so
58769 * indicate this port is now acting as a system console. */
58770 port->port.console = 1;
58771 @@ -188,7 +188,7 @@ static int usb_console_setup(struct console *co, char *options)
58772 put_tty:
58773 tty_kref_put(tty);
58774 reset_open_count:
58775 - port->port.count = 0;
58776 + atomic_set(&port->port.count, 0);
58777 usb_autopm_put_interface(serial->interface);
58778 error_get_interface:
58779 usb_serial_put(serial);
58780 @@ -199,7 +199,7 @@ static int usb_console_setup(struct console *co, char *options)
58781 static void usb_console_write(struct console *co,
58782 const char *buf, unsigned count)
58783 {
58784 - static struct usbcons_info *info = &usbcons_info;
58785 + struct usbcons_info *info = &usbcons_info;
58786 struct usb_serial_port *port = info->port;
58787 struct usb_serial *serial;
58788 int retval = -ENODEV;
58789 diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
58790 index 540add2..2a2c7da 100644
58791 --- a/drivers/usb/storage/transport.c
58792 +++ b/drivers/usb/storage/transport.c
58793 @@ -689,7 +689,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
58794 if (need_auto_sense) {
58795 int temp_result;
58796 struct scsi_eh_save ses;
58797 - int sense_size = US_SENSE_SIZE;
58798 + unsigned int sense_size = US_SENSE_SIZE;
58799 struct scsi_sense_hdr sshdr;
58800 const u8 *scdd;
58801 u8 fm_ili;
58802 diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
58803 index 43576ed..583589d 100644
58804 --- a/drivers/usb/storage/usb.c
58805 +++ b/drivers/usb/storage/usb.c
58806 @@ -912,7 +912,7 @@ static void usb_stor_scan_dwork(struct work_struct *work)
58807 clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags);
58808 }
58809
58810 -static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf)
58811 +static unsigned short usb_stor_sg_tablesize(struct usb_interface *intf)
58812 {
58813 struct usb_device *usb_dev = interface_to_usbdev(intf);
58814
58815 diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
58816 index da0ad32..50b5bbe 100644
58817 --- a/drivers/usb/storage/usb.h
58818 +++ b/drivers/usb/storage/usb.h
58819 @@ -63,7 +63,7 @@ struct us_unusual_dev {
58820 __u8 useProtocol;
58821 __u8 useTransport;
58822 int (*initFunction)(struct us_data *);
58823 -};
58824 +} __do_const;
58825
58826
58827 /* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */
58828 diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h
58829 index a863a98..d272795 100644
58830 --- a/drivers/usb/usbip/vhci.h
58831 +++ b/drivers/usb/usbip/vhci.h
58832 @@ -83,7 +83,7 @@ struct vhci_hcd {
58833 unsigned resuming:1;
58834 unsigned long re_timeout;
58835
58836 - atomic_t seqnum;
58837 + atomic_unchecked_t seqnum;
58838
58839 /*
58840 * NOTE:
58841 diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
58842 index e9ef1ec..c3a0b04 100644
58843 --- a/drivers/usb/usbip/vhci_hcd.c
58844 +++ b/drivers/usb/usbip/vhci_hcd.c
58845 @@ -440,7 +440,7 @@ static void vhci_tx_urb(struct urb *urb)
58846
58847 spin_lock(&vdev->priv_lock);
58848
58849 - priv->seqnum = atomic_inc_return(&the_controller->seqnum);
58850 + priv->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
58851 if (priv->seqnum == 0xffff)
58852 dev_info(&urb->dev->dev, "seqnum max\n");
58853
58854 @@ -685,7 +685,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
58855 return -ENOMEM;
58856 }
58857
58858 - unlink->seqnum = atomic_inc_return(&the_controller->seqnum);
58859 + unlink->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
58860 if (unlink->seqnum == 0xffff)
58861 pr_info("seqnum max\n");
58862
58863 @@ -889,7 +889,7 @@ static int vhci_start(struct usb_hcd *hcd)
58864 vdev->rhport = rhport;
58865 }
58866
58867 - atomic_set(&vhci->seqnum, 0);
58868 + atomic_set_unchecked(&vhci->seqnum, 0);
58869 spin_lock_init(&vhci->lock);
58870
58871 hcd->power_budget = 0; /* no limit */
58872 diff --git a/drivers/usb/usbip/vhci_rx.c b/drivers/usb/usbip/vhci_rx.c
58873 index 00e4a54..d676f85 100644
58874 --- a/drivers/usb/usbip/vhci_rx.c
58875 +++ b/drivers/usb/usbip/vhci_rx.c
58876 @@ -80,7 +80,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev,
58877 if (!urb) {
58878 pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum);
58879 pr_info("max seqnum %d\n",
58880 - atomic_read(&the_controller->seqnum));
58881 + atomic_read_unchecked(&the_controller->seqnum));
58882 usbip_event_add(ud, VDEV_EVENT_ERROR_TCP);
58883 return;
58884 }
58885 diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
58886 index 211f43f..6c22ae1 100644
58887 --- a/drivers/usb/usbip/vhci_sysfs.c
58888 +++ b/drivers/usb/usbip/vhci_sysfs.c
58889 @@ -59,7 +59,7 @@ static ssize_t status_show(struct device *dev, struct device_attribute *attr,
58890 if (vdev->ud.status == VDEV_ST_USED) {
58891 out += sprintf(out, "%03u %08x ",
58892 vdev->speed, vdev->devid);
58893 - out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
58894 + out += sprintf(out, "%16pK ", vdev->ud.tcp_socket);
58895 out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
58896
58897 } else {
58898 diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
58899 index edc7267..9f65ce2 100644
58900 --- a/drivers/usb/wusbcore/wa-hc.h
58901 +++ b/drivers/usb/wusbcore/wa-hc.h
58902 @@ -240,7 +240,7 @@ struct wahc {
58903 spinlock_t xfer_list_lock;
58904 struct work_struct xfer_enqueue_work;
58905 struct work_struct xfer_error_work;
58906 - atomic_t xfer_id_count;
58907 + atomic_unchecked_t xfer_id_count;
58908
58909 kernel_ulong_t quirks;
58910 };
58911 @@ -305,7 +305,7 @@ static inline void wa_init(struct wahc *wa)
58912 INIT_WORK(&wa->xfer_enqueue_work, wa_urb_enqueue_run);
58913 INIT_WORK(&wa->xfer_error_work, wa_process_errored_transfers_run);
58914 wa->dto_in_use = 0;
58915 - atomic_set(&wa->xfer_id_count, 1);
58916 + atomic_set_unchecked(&wa->xfer_id_count, 1);
58917 /* init the buf in URBs */
58918 for (index = 0; index < WA_MAX_BUF_IN_URBS; ++index)
58919 usb_init_urb(&(wa->buf_in_urbs[index]));
58920 diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
58921 index 69af4fd..da390d7 100644
58922 --- a/drivers/usb/wusbcore/wa-xfer.c
58923 +++ b/drivers/usb/wusbcore/wa-xfer.c
58924 @@ -314,7 +314,7 @@ static void wa_xfer_completion(struct wa_xfer *xfer)
58925 */
58926 static void wa_xfer_id_init(struct wa_xfer *xfer)
58927 {
58928 - xfer->id = atomic_add_return(1, &xfer->wa->xfer_id_count);
58929 + xfer->id = atomic_add_return_unchecked(1, &xfer->wa->xfer_id_count);
58930 }
58931
58932 /* Return the xfer's ID. */
58933 diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
58934 index 563c510..1fcc957 100644
58935 --- a/drivers/vfio/vfio.c
58936 +++ b/drivers/vfio/vfio.c
58937 @@ -517,7 +517,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev)
58938 return 0;
58939
58940 /* TODO Prevent device auto probing */
58941 - WARN("Device %s added to live group %d!\n", dev_name(dev),
58942 + WARN(1, "Device %s added to live group %d!\n", dev_name(dev),
58943 iommu_group_id(group->iommu_group));
58944
58945 return 0;
58946 diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
58947 index 3bb02c6..a01ff38 100644
58948 --- a/drivers/vhost/vringh.c
58949 +++ b/drivers/vhost/vringh.c
58950 @@ -551,7 +551,7 @@ static inline void __vringh_notify_disable(struct vringh *vrh,
58951 static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio16 *p)
58952 {
58953 __virtio16 v = 0;
58954 - int rc = get_user(v, (__force __virtio16 __user *)p);
58955 + int rc = get_user(v, (__force_user __virtio16 *)p);
58956 *val = vringh16_to_cpu(vrh, v);
58957 return rc;
58958 }
58959 @@ -559,12 +559,12 @@ static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio
58960 static inline int putu16_user(const struct vringh *vrh, __virtio16 *p, u16 val)
58961 {
58962 __virtio16 v = cpu_to_vringh16(vrh, val);
58963 - return put_user(v, (__force __virtio16 __user *)p);
58964 + return put_user(v, (__force_user __virtio16 *)p);
58965 }
58966
58967 static inline int copydesc_user(void *dst, const void *src, size_t len)
58968 {
58969 - return copy_from_user(dst, (__force void __user *)src, len) ?
58970 + return copy_from_user(dst, (void __force_user *)src, len) ?
58971 -EFAULT : 0;
58972 }
58973
58974 @@ -572,19 +572,19 @@ static inline int putused_user(struct vring_used_elem *dst,
58975 const struct vring_used_elem *src,
58976 unsigned int num)
58977 {
58978 - return copy_to_user((__force void __user *)dst, src,
58979 + return copy_to_user((void __force_user *)dst, src,
58980 sizeof(*dst) * num) ? -EFAULT : 0;
58981 }
58982
58983 static inline int xfer_from_user(void *src, void *dst, size_t len)
58984 {
58985 - return copy_from_user(dst, (__force void __user *)src, len) ?
58986 + return copy_from_user(dst, (void __force_user *)src, len) ?
58987 -EFAULT : 0;
58988 }
58989
58990 static inline int xfer_to_user(void *dst, void *src, size_t len)
58991 {
58992 - return copy_to_user((__force void __user *)dst, src, len) ?
58993 + return copy_to_user((void __force_user *)dst, src, len) ?
58994 -EFAULT : 0;
58995 }
58996
58997 @@ -621,9 +621,9 @@ int vringh_init_user(struct vringh *vrh, u64 features,
58998 vrh->last_used_idx = 0;
58999 vrh->vring.num = num;
59000 /* vring expects kernel addresses, but only used via accessors. */
59001 - vrh->vring.desc = (__force struct vring_desc *)desc;
59002 - vrh->vring.avail = (__force struct vring_avail *)avail;
59003 - vrh->vring.used = (__force struct vring_used *)used;
59004 + vrh->vring.desc = (__force_kernel struct vring_desc *)desc;
59005 + vrh->vring.avail = (__force_kernel struct vring_avail *)avail;
59006 + vrh->vring.used = (__force_kernel struct vring_used *)used;
59007 return 0;
59008 }
59009 EXPORT_SYMBOL(vringh_init_user);
59010 @@ -826,7 +826,7 @@ static inline int getu16_kern(const struct vringh *vrh,
59011
59012 static inline int putu16_kern(const struct vringh *vrh, __virtio16 *p, u16 val)
59013 {
59014 - ACCESS_ONCE(*p) = cpu_to_vringh16(vrh, val);
59015 + ACCESS_ONCE_RW(*p) = cpu_to_vringh16(vrh, val);
59016 return 0;
59017 }
59018
59019 diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
59020 index 84a110a..96312c3 100644
59021 --- a/drivers/video/backlight/kb3886_bl.c
59022 +++ b/drivers/video/backlight/kb3886_bl.c
59023 @@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo;
59024 static unsigned long kb3886bl_flags;
59025 #define KB3886BL_SUSPENDED 0x01
59026
59027 -static struct dmi_system_id kb3886bl_device_table[] __initdata = {
59028 +static const struct dmi_system_id kb3886bl_device_table[] __initconst = {
59029 {
59030 .ident = "Sahara Touch-iT",
59031 .matches = {
59032 diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
59033 index 92f3949..7bb0e86 100644
59034 --- a/drivers/video/console/fbcon.c
59035 +++ b/drivers/video/console/fbcon.c
59036 @@ -106,7 +106,7 @@ static int fbcon_softback_size = 32768;
59037 static unsigned long softback_buf, softback_curr;
59038 static unsigned long softback_in;
59039 static unsigned long softback_top, softback_end;
59040 -static int softback_lines;
59041 +static long softback_lines;
59042 /* console mappings */
59043 static int first_fb_vc;
59044 static int last_fb_vc = MAX_NR_CONSOLES - 1;
59045 diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
59046 index 1b0b233..6f34c2c 100644
59047 --- a/drivers/video/fbdev/arcfb.c
59048 +++ b/drivers/video/fbdev/arcfb.c
59049 @@ -458,7 +458,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
59050 return -ENOSPC;
59051
59052 err = 0;
59053 - if ((count + p) > fbmemlength) {
59054 + if (count > (fbmemlength - p)) {
59055 count = fbmemlength - p;
59056 err = -ENOSPC;
59057 }
59058 diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
59059 index c42ce2f..4c8bc59 100644
59060 --- a/drivers/video/fbdev/aty/aty128fb.c
59061 +++ b/drivers/video/fbdev/aty/aty128fb.c
59062 @@ -145,7 +145,7 @@ enum {
59063 };
59064
59065 /* Must match above enum */
59066 -static char * const r128_family[] = {
59067 +static const char * const r128_family[] = {
59068 "AGP",
59069 "PCI",
59070 "PRO AGP",
59071 diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
59072 index 8789e48..698fe4c 100644
59073 --- a/drivers/video/fbdev/aty/atyfb_base.c
59074 +++ b/drivers/video/fbdev/aty/atyfb_base.c
59075 @@ -1326,10 +1326,14 @@ static int atyfb_set_par(struct fb_info *info)
59076 par->accel_flags = var->accel_flags; /* hack */
59077
59078 if (var->accel_flags) {
59079 - info->fbops->fb_sync = atyfb_sync;
59080 + pax_open_kernel();
59081 + *(void **)&info->fbops->fb_sync = atyfb_sync;
59082 + pax_close_kernel();
59083 info->flags &= ~FBINFO_HWACCEL_DISABLED;
59084 } else {
59085 - info->fbops->fb_sync = NULL;
59086 + pax_open_kernel();
59087 + *(void **)&info->fbops->fb_sync = NULL;
59088 + pax_close_kernel();
59089 info->flags |= FBINFO_HWACCEL_DISABLED;
59090 }
59091
59092 diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
59093 index 2fa0317..4983f2a 100644
59094 --- a/drivers/video/fbdev/aty/mach64_cursor.c
59095 +++ b/drivers/video/fbdev/aty/mach64_cursor.c
59096 @@ -8,6 +8,7 @@
59097 #include "../core/fb_draw.h"
59098
59099 #include <asm/io.h>
59100 +#include <asm/pgtable.h>
59101
59102 #ifdef __sparc__
59103 #include <asm/fbio.h>
59104 @@ -218,7 +219,9 @@ int aty_init_cursor(struct fb_info *info)
59105 info->sprite.buf_align = 16; /* and 64 lines tall. */
59106 info->sprite.flags = FB_PIXMAP_IO;
59107
59108 - info->fbops->fb_cursor = atyfb_cursor;
59109 + pax_open_kernel();
59110 + *(void **)&info->fbops->fb_cursor = atyfb_cursor;
59111 + pax_close_kernel();
59112
59113 return 0;
59114 }
59115 diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
59116 index 3fc63c2..eec5e49 100644
59117 --- a/drivers/video/fbdev/core/fb_defio.c
59118 +++ b/drivers/video/fbdev/core/fb_defio.c
59119 @@ -207,7 +207,9 @@ void fb_deferred_io_init(struct fb_info *info)
59120
59121 BUG_ON(!fbdefio);
59122 mutex_init(&fbdefio->lock);
59123 - info->fbops->fb_mmap = fb_deferred_io_mmap;
59124 + pax_open_kernel();
59125 + *(void **)&info->fbops->fb_mmap = fb_deferred_io_mmap;
59126 + pax_close_kernel();
59127 INIT_DELAYED_WORK(&info->deferred_work, fb_deferred_io_work);
59128 INIT_LIST_HEAD(&fbdefio->pagelist);
59129 if (fbdefio->delay == 0) /* set a default of 1 s */
59130 @@ -238,7 +240,7 @@ void fb_deferred_io_cleanup(struct fb_info *info)
59131 page->mapping = NULL;
59132 }
59133
59134 - info->fbops->fb_mmap = NULL;
59135 + *(void **)&info->fbops->fb_mmap = NULL;
59136 mutex_destroy(&fbdefio->lock);
59137 }
59138 EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
59139 diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
59140 index 0705d88..d9429bf 100644
59141 --- a/drivers/video/fbdev/core/fbmem.c
59142 +++ b/drivers/video/fbdev/core/fbmem.c
59143 @@ -1301,7 +1301,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
59144 __u32 data;
59145 int err;
59146
59147 - err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id));
59148 + err = copy_to_user(fix32->id, &fix->id, sizeof(fix32->id));
59149
59150 data = (__u32) (unsigned long) fix->smem_start;
59151 err |= put_user(data, &fix32->smem_start);
59152 diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
59153 index 807ee22..7814cd6 100644
59154 --- a/drivers/video/fbdev/hyperv_fb.c
59155 +++ b/drivers/video/fbdev/hyperv_fb.c
59156 @@ -240,7 +240,7 @@ static uint screen_fb_size;
59157 static inline int synthvid_send(struct hv_device *hdev,
59158 struct synthvid_msg *msg)
59159 {
59160 - static atomic64_t request_id = ATOMIC64_INIT(0);
59161 + static atomic64_unchecked_t request_id = ATOMIC64_INIT(0);
59162 int ret;
59163
59164 msg->pipe_hdr.type = PIPE_MSG_DATA;
59165 @@ -248,7 +248,7 @@ static inline int synthvid_send(struct hv_device *hdev,
59166
59167 ret = vmbus_sendpacket(hdev->channel, msg,
59168 msg->vid_hdr.size + sizeof(struct pipe_msg_hdr),
59169 - atomic64_inc_return(&request_id),
59170 + atomic64_inc_return_unchecked(&request_id),
59171 VM_PKT_DATA_INBAND, 0);
59172
59173 if (ret)
59174 diff --git a/drivers/video/fbdev/i810/i810_accel.c b/drivers/video/fbdev/i810/i810_accel.c
59175 index 7672d2e..b56437f 100644
59176 --- a/drivers/video/fbdev/i810/i810_accel.c
59177 +++ b/drivers/video/fbdev/i810/i810_accel.c
59178 @@ -73,6 +73,7 @@ static inline int wait_for_space(struct fb_info *info, u32 space)
59179 }
59180 }
59181 printk("ringbuffer lockup!!!\n");
59182 + printk("head:%u tail:%u iring.size:%u space:%u\n", head, tail, par->iring.size, space);
59183 i810_report_error(mmio);
59184 par->dev_flags |= LOCKUP;
59185 info->pixmap.scan_align = 1;
59186 diff --git a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
59187 index a01147f..5d896f8 100644
59188 --- a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
59189 +++ b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
59190 @@ -1088,14 +1088,20 @@ static void MGAG100_restore(struct matrox_fb_info *minfo)
59191
59192 #ifdef CONFIG_FB_MATROX_MYSTIQUE
59193 struct matrox_switch matrox_mystique = {
59194 - MGA1064_preinit, MGA1064_reset, MGA1064_init, MGA1064_restore,
59195 + .preinit = MGA1064_preinit,
59196 + .reset = MGA1064_reset,
59197 + .init = MGA1064_init,
59198 + .restore = MGA1064_restore,
59199 };
59200 EXPORT_SYMBOL(matrox_mystique);
59201 #endif
59202
59203 #ifdef CONFIG_FB_MATROX_G
59204 struct matrox_switch matrox_G100 = {
59205 - MGAG100_preinit, MGAG100_reset, MGAG100_init, MGAG100_restore,
59206 + .preinit = MGAG100_preinit,
59207 + .reset = MGAG100_reset,
59208 + .init = MGAG100_init,
59209 + .restore = MGAG100_restore,
59210 };
59211 EXPORT_SYMBOL(matrox_G100);
59212 #endif
59213 diff --git a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
59214 index 195ad7c..09743fc 100644
59215 --- a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
59216 +++ b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
59217 @@ -738,7 +738,10 @@ static int Ti3026_preinit(struct matrox_fb_info *minfo)
59218 }
59219
59220 struct matrox_switch matrox_millennium = {
59221 - Ti3026_preinit, Ti3026_reset, Ti3026_init, Ti3026_restore
59222 + .preinit = Ti3026_preinit,
59223 + .reset = Ti3026_reset,
59224 + .init = Ti3026_init,
59225 + .restore = Ti3026_restore
59226 };
59227 EXPORT_SYMBOL(matrox_millennium);
59228 #endif
59229 diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
59230 index 11eb094..622ee31 100644
59231 --- a/drivers/video/fbdev/matrox/matroxfb_base.c
59232 +++ b/drivers/video/fbdev/matrox/matroxfb_base.c
59233 @@ -2176,7 +2176,7 @@ static struct pci_driver matroxfb_driver = {
59234 #define RS1056x480 14 /* 132 x 60 text */
59235 #define RSNoxNo 15
59236 /* 10-FF */
59237 -static struct { int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
59238 +static struct { unsigned int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
59239 { 640, 400, 48, 16, 39, 8, 96, 2, 70 },
59240 { 640, 480, 48, 16, 33, 10, 96, 2, 60 },
59241 { 800, 600, 144, 24, 28, 8, 112, 6, 60 },
59242 diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
59243 index fe92eed..106e085 100644
59244 --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
59245 +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
59246 @@ -312,14 +312,18 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
59247 struct mb862xxfb_par *par = info->par;
59248
59249 if (info->var.bits_per_pixel == 32) {
59250 - info->fbops->fb_fillrect = cfb_fillrect;
59251 - info->fbops->fb_copyarea = cfb_copyarea;
59252 - info->fbops->fb_imageblit = cfb_imageblit;
59253 + pax_open_kernel();
59254 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
59255 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
59256 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
59257 + pax_close_kernel();
59258 } else {
59259 outreg(disp, GC_L0EM, 3);
59260 - info->fbops->fb_fillrect = mb86290fb_fillrect;
59261 - info->fbops->fb_copyarea = mb86290fb_copyarea;
59262 - info->fbops->fb_imageblit = mb86290fb_imageblit;
59263 + pax_open_kernel();
59264 + *(void **)&info->fbops->fb_fillrect = mb86290fb_fillrect;
59265 + *(void **)&info->fbops->fb_copyarea = mb86290fb_copyarea;
59266 + *(void **)&info->fbops->fb_imageblit = mb86290fb_imageblit;
59267 + pax_close_kernel();
59268 }
59269 outreg(draw, GDC_REG_DRAW_BASE, 0);
59270 outreg(draw, GDC_REG_MODE_MISC, 0x8000);
59271 diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
59272 index ce7dab7..a87baf8 100644
59273 --- a/drivers/video/fbdev/nvidia/nvidia.c
59274 +++ b/drivers/video/fbdev/nvidia/nvidia.c
59275 @@ -660,19 +660,23 @@ static int nvidiafb_set_par(struct fb_info *info)
59276 info->fix.line_length = (info->var.xres_virtual *
59277 info->var.bits_per_pixel) >> 3;
59278 if (info->var.accel_flags) {
59279 - info->fbops->fb_imageblit = nvidiafb_imageblit;
59280 - info->fbops->fb_fillrect = nvidiafb_fillrect;
59281 - info->fbops->fb_copyarea = nvidiafb_copyarea;
59282 - info->fbops->fb_sync = nvidiafb_sync;
59283 + pax_open_kernel();
59284 + *(void **)&info->fbops->fb_imageblit = nvidiafb_imageblit;
59285 + *(void **)&info->fbops->fb_fillrect = nvidiafb_fillrect;
59286 + *(void **)&info->fbops->fb_copyarea = nvidiafb_copyarea;
59287 + *(void **)&info->fbops->fb_sync = nvidiafb_sync;
59288 + pax_close_kernel();
59289 info->pixmap.scan_align = 4;
59290 info->flags &= ~FBINFO_HWACCEL_DISABLED;
59291 info->flags |= FBINFO_READS_FAST;
59292 NVResetGraphics(info);
59293 } else {
59294 - info->fbops->fb_imageblit = cfb_imageblit;
59295 - info->fbops->fb_fillrect = cfb_fillrect;
59296 - info->fbops->fb_copyarea = cfb_copyarea;
59297 - info->fbops->fb_sync = NULL;
59298 + pax_open_kernel();
59299 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
59300 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
59301 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
59302 + *(void **)&info->fbops->fb_sync = NULL;
59303 + pax_close_kernel();
59304 info->pixmap.scan_align = 1;
59305 info->flags |= FBINFO_HWACCEL_DISABLED;
59306 info->flags &= ~FBINFO_READS_FAST;
59307 @@ -1164,8 +1168,11 @@ static int nvidia_set_fbinfo(struct fb_info *info)
59308 info->pixmap.size = 8 * 1024;
59309 info->pixmap.flags = FB_PIXMAP_SYSTEM;
59310
59311 - if (!hwcur)
59312 - info->fbops->fb_cursor = NULL;
59313 + if (!hwcur) {
59314 + pax_open_kernel();
59315 + *(void **)&info->fbops->fb_cursor = NULL;
59316 + pax_close_kernel();
59317 + }
59318
59319 info->var.accel_flags = (!noaccel);
59320
59321 diff --git a/drivers/video/fbdev/omap2/dss/display.c b/drivers/video/fbdev/omap2/dss/display.c
59322 index ef5b902..47cf7f5 100644
59323 --- a/drivers/video/fbdev/omap2/dss/display.c
59324 +++ b/drivers/video/fbdev/omap2/dss/display.c
59325 @@ -161,12 +161,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
59326 if (dssdev->name == NULL)
59327 dssdev->name = dssdev->alias;
59328
59329 + pax_open_kernel();
59330 if (drv && drv->get_resolution == NULL)
59331 - drv->get_resolution = omapdss_default_get_resolution;
59332 + *(void **)&drv->get_resolution = omapdss_default_get_resolution;
59333 if (drv && drv->get_recommended_bpp == NULL)
59334 - drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
59335 + *(void **)&drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
59336 if (drv && drv->get_timings == NULL)
59337 - drv->get_timings = omapdss_default_get_timings;
59338 + *(void **)&drv->get_timings = omapdss_default_get_timings;
59339 + pax_close_kernel();
59340
59341 mutex_lock(&panel_list_mutex);
59342 list_add_tail(&dssdev->panel_list, &panel_list);
59343 diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c
59344 index 83433cb..71e9b98 100644
59345 --- a/drivers/video/fbdev/s1d13xxxfb.c
59346 +++ b/drivers/video/fbdev/s1d13xxxfb.c
59347 @@ -881,8 +881,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev)
59348
59349 switch(prod_id) {
59350 case S1D13506_PROD_ID: /* activate acceleration */
59351 - s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
59352 - s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
59353 + pax_open_kernel();
59354 + *(void **)&s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
59355 + *(void **)&s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
59356 + pax_close_kernel();
59357 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
59358 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
59359 break;
59360 diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
59361 index 82c0a8c..42499a1 100644
59362 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
59363 +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
59364 @@ -439,9 +439,9 @@ static unsigned long lcdc_sys_read_data(void *handle)
59365 }
59366
59367 static struct sh_mobile_lcdc_sys_bus_ops sh_mobile_lcdc_sys_bus_ops = {
59368 - lcdc_sys_write_index,
59369 - lcdc_sys_write_data,
59370 - lcdc_sys_read_data,
59371 + .write_index = lcdc_sys_write_index,
59372 + .write_data = lcdc_sys_write_data,
59373 + .read_data = lcdc_sys_read_data,
59374 };
59375
59376 static int sh_mobile_lcdc_sginit(struct fb_info *info,
59377 diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
59378 index 9279e5f..d5f5276 100644
59379 --- a/drivers/video/fbdev/smscufx.c
59380 +++ b/drivers/video/fbdev/smscufx.c
59381 @@ -1174,7 +1174,9 @@ static int ufx_ops_release(struct fb_info *info, int user)
59382 fb_deferred_io_cleanup(info);
59383 kfree(info->fbdefio);
59384 info->fbdefio = NULL;
59385 - info->fbops->fb_mmap = ufx_ops_mmap;
59386 + pax_open_kernel();
59387 + *(void **)&info->fbops->fb_mmap = ufx_ops_mmap;
59388 + pax_close_kernel();
59389 }
59390
59391 pr_debug("released /dev/fb%d user=%d count=%d",
59392 diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c
59393 index ff2b873..626a8d5 100644
59394 --- a/drivers/video/fbdev/udlfb.c
59395 +++ b/drivers/video/fbdev/udlfb.c
59396 @@ -623,11 +623,11 @@ static int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
59397 dlfb_urb_completion(urb);
59398
59399 error:
59400 - atomic_add(bytes_sent, &dev->bytes_sent);
59401 - atomic_add(bytes_identical, &dev->bytes_identical);
59402 - atomic_add(width*height*2, &dev->bytes_rendered);
59403 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
59404 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
59405 + atomic_add_unchecked(width*height*2, &dev->bytes_rendered);
59406 end_cycles = get_cycles();
59407 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
59408 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
59409 >> 10)), /* Kcycles */
59410 &dev->cpu_kcycles_used);
59411
59412 @@ -748,11 +748,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
59413 dlfb_urb_completion(urb);
59414
59415 error:
59416 - atomic_add(bytes_sent, &dev->bytes_sent);
59417 - atomic_add(bytes_identical, &dev->bytes_identical);
59418 - atomic_add(bytes_rendered, &dev->bytes_rendered);
59419 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
59420 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
59421 + atomic_add_unchecked(bytes_rendered, &dev->bytes_rendered);
59422 end_cycles = get_cycles();
59423 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
59424 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
59425 >> 10)), /* Kcycles */
59426 &dev->cpu_kcycles_used);
59427 }
59428 @@ -991,7 +991,9 @@ static int dlfb_ops_release(struct fb_info *info, int user)
59429 fb_deferred_io_cleanup(info);
59430 kfree(info->fbdefio);
59431 info->fbdefio = NULL;
59432 - info->fbops->fb_mmap = dlfb_ops_mmap;
59433 + pax_open_kernel();
59434 + *(void **)&info->fbops->fb_mmap = dlfb_ops_mmap;
59435 + pax_close_kernel();
59436 }
59437
59438 pr_warn("released /dev/fb%d user=%d count=%d\n",
59439 @@ -1373,7 +1375,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
59440 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59441 struct dlfb_data *dev = fb_info->par;
59442 return snprintf(buf, PAGE_SIZE, "%u\n",
59443 - atomic_read(&dev->bytes_rendered));
59444 + atomic_read_unchecked(&dev->bytes_rendered));
59445 }
59446
59447 static ssize_t metrics_bytes_identical_show(struct device *fbdev,
59448 @@ -1381,7 +1383,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
59449 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59450 struct dlfb_data *dev = fb_info->par;
59451 return snprintf(buf, PAGE_SIZE, "%u\n",
59452 - atomic_read(&dev->bytes_identical));
59453 + atomic_read_unchecked(&dev->bytes_identical));
59454 }
59455
59456 static ssize_t metrics_bytes_sent_show(struct device *fbdev,
59457 @@ -1389,7 +1391,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
59458 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59459 struct dlfb_data *dev = fb_info->par;
59460 return snprintf(buf, PAGE_SIZE, "%u\n",
59461 - atomic_read(&dev->bytes_sent));
59462 + atomic_read_unchecked(&dev->bytes_sent));
59463 }
59464
59465 static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
59466 @@ -1397,7 +1399,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
59467 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59468 struct dlfb_data *dev = fb_info->par;
59469 return snprintf(buf, PAGE_SIZE, "%u\n",
59470 - atomic_read(&dev->cpu_kcycles_used));
59471 + atomic_read_unchecked(&dev->cpu_kcycles_used));
59472 }
59473
59474 static ssize_t edid_show(
59475 @@ -1457,10 +1459,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
59476 struct fb_info *fb_info = dev_get_drvdata(fbdev);
59477 struct dlfb_data *dev = fb_info->par;
59478
59479 - atomic_set(&dev->bytes_rendered, 0);
59480 - atomic_set(&dev->bytes_identical, 0);
59481 - atomic_set(&dev->bytes_sent, 0);
59482 - atomic_set(&dev->cpu_kcycles_used, 0);
59483 + atomic_set_unchecked(&dev->bytes_rendered, 0);
59484 + atomic_set_unchecked(&dev->bytes_identical, 0);
59485 + atomic_set_unchecked(&dev->bytes_sent, 0);
59486 + atomic_set_unchecked(&dev->cpu_kcycles_used, 0);
59487
59488 return count;
59489 }
59490 diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
59491 index 178ae93..624b2eb 100644
59492 --- a/drivers/video/fbdev/uvesafb.c
59493 +++ b/drivers/video/fbdev/uvesafb.c
59494 @@ -19,6 +19,7 @@
59495 #include <linux/io.h>
59496 #include <linux/mutex.h>
59497 #include <linux/slab.h>
59498 +#include <linux/moduleloader.h>
59499 #include <video/edid.h>
59500 #include <video/uvesafb.h>
59501 #ifdef CONFIG_X86
59502 @@ -565,10 +566,32 @@ static int uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
59503 if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) {
59504 par->pmi_setpal = par->ypan = 0;
59505 } else {
59506 +
59507 +#ifdef CONFIG_PAX_KERNEXEC
59508 +#ifdef CONFIG_MODULES
59509 + par->pmi_code = module_alloc_exec((u16)task->t.regs.ecx);
59510 +#endif
59511 + if (!par->pmi_code) {
59512 + par->pmi_setpal = par->ypan = 0;
59513 + return 0;
59514 + }
59515 +#endif
59516 +
59517 par->pmi_base = (u16 *)phys_to_virt(((u32)task->t.regs.es << 4)
59518 + task->t.regs.edi);
59519 +
59520 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59521 + pax_open_kernel();
59522 + memcpy(par->pmi_code, par->pmi_base, (u16)task->t.regs.ecx);
59523 + pax_close_kernel();
59524 +
59525 + par->pmi_start = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[1]));
59526 + par->pmi_pal = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[2]));
59527 +#else
59528 par->pmi_start = (u8 *)par->pmi_base + par->pmi_base[1];
59529 par->pmi_pal = (u8 *)par->pmi_base + par->pmi_base[2];
59530 +#endif
59531 +
59532 printk(KERN_INFO "uvesafb: protected mode interface info at "
59533 "%04x:%04x\n",
59534 (u16)task->t.regs.es, (u16)task->t.regs.edi);
59535 @@ -813,13 +836,14 @@ static int uvesafb_vbe_init(struct fb_info *info)
59536 par->ypan = ypan;
59537
59538 if (par->pmi_setpal || par->ypan) {
59539 +#if !defined(CONFIG_MODULES) || !defined(CONFIG_PAX_KERNEXEC)
59540 if (__supported_pte_mask & _PAGE_NX) {
59541 par->pmi_setpal = par->ypan = 0;
59542 printk(KERN_WARNING "uvesafb: NX protection is active, "
59543 "better not use the PMI.\n");
59544 - } else {
59545 + } else
59546 +#endif
59547 uvesafb_vbe_getpmi(task, par);
59548 - }
59549 }
59550 #else
59551 /* The protected mode interface is not available on non-x86. */
59552 @@ -1452,8 +1476,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
59553 info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0;
59554
59555 /* Disable blanking if the user requested so. */
59556 - if (!blank)
59557 - info->fbops->fb_blank = NULL;
59558 + if (!blank) {
59559 + pax_open_kernel();
59560 + *(void **)&info->fbops->fb_blank = NULL;
59561 + pax_close_kernel();
59562 + }
59563
59564 /*
59565 * Find out how much IO memory is required for the mode with
59566 @@ -1524,8 +1551,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
59567 info->flags = FBINFO_FLAG_DEFAULT |
59568 (par->ypan ? FBINFO_HWACCEL_YPAN : 0);
59569
59570 - if (!par->ypan)
59571 - info->fbops->fb_pan_display = NULL;
59572 + if (!par->ypan) {
59573 + pax_open_kernel();
59574 + *(void **)&info->fbops->fb_pan_display = NULL;
59575 + pax_close_kernel();
59576 + }
59577 }
59578
59579 static void uvesafb_init_mtrr(struct fb_info *info)
59580 @@ -1786,6 +1816,11 @@ out_mode:
59581 out:
59582 kfree(par->vbe_modes);
59583
59584 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59585 + if (par->pmi_code)
59586 + module_memfree_exec(par->pmi_code);
59587 +#endif
59588 +
59589 framebuffer_release(info);
59590 return err;
59591 }
59592 @@ -1810,6 +1845,11 @@ static int uvesafb_remove(struct platform_device *dev)
59593 kfree(par->vbe_state_orig);
59594 kfree(par->vbe_state_saved);
59595
59596 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59597 + if (par->pmi_code)
59598 + module_memfree_exec(par->pmi_code);
59599 +#endif
59600 +
59601 framebuffer_release(info);
59602 }
59603 return 0;
59604 diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c
59605 index 528fe91..6fd29fe 100644
59606 --- a/drivers/video/fbdev/vesafb.c
59607 +++ b/drivers/video/fbdev/vesafb.c
59608 @@ -9,6 +9,7 @@
59609 */
59610
59611 #include <linux/module.h>
59612 +#include <linux/moduleloader.h>
59613 #include <linux/kernel.h>
59614 #include <linux/errno.h>
59615 #include <linux/string.h>
59616 @@ -56,8 +57,8 @@ static int vram_remap; /* Set amount of memory to be used */
59617 static int vram_total; /* Set total amount of memory */
59618 static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */
59619 static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */
59620 -static void (*pmi_start)(void) __read_mostly;
59621 -static void (*pmi_pal) (void) __read_mostly;
59622 +static void (*pmi_start)(void) __read_only;
59623 +static void (*pmi_pal) (void) __read_only;
59624 static int depth __read_mostly;
59625 static int vga_compat __read_mostly;
59626 /* --------------------------------------------------------------------- */
59627 @@ -241,6 +242,7 @@ static int vesafb_probe(struct platform_device *dev)
59628 unsigned int size_remap;
59629 unsigned int size_total;
59630 char *option = NULL;
59631 + void *pmi_code = NULL;
59632
59633 /* ignore error return of fb_get_options */
59634 fb_get_options("vesafb", &option);
59635 @@ -287,10 +289,6 @@ static int vesafb_probe(struct platform_device *dev)
59636 size_remap = size_total;
59637 vesafb_fix.smem_len = size_remap;
59638
59639 -#ifndef __i386__
59640 - screen_info.vesapm_seg = 0;
59641 -#endif
59642 -
59643 if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
59644 printk(KERN_WARNING
59645 "vesafb: cannot reserve video memory at 0x%lx\n",
59646 @@ -320,9 +318,21 @@ static int vesafb_probe(struct platform_device *dev)
59647 printk(KERN_INFO "vesafb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
59648 vesafb_defined.xres, vesafb_defined.yres, vesafb_defined.bits_per_pixel, vesafb_fix.line_length, screen_info.pages);
59649
59650 +#ifdef __i386__
59651 +
59652 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59653 + pmi_code = module_alloc_exec(screen_info.vesapm_size);
59654 + if (!pmi_code)
59655 +#elif !defined(CONFIG_PAX_KERNEXEC)
59656 + if (0)
59657 +#endif
59658 +
59659 +#endif
59660 + screen_info.vesapm_seg = 0;
59661 +
59662 if (screen_info.vesapm_seg) {
59663 - printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x\n",
59664 - screen_info.vesapm_seg,screen_info.vesapm_off);
59665 + printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x %04x bytes\n",
59666 + screen_info.vesapm_seg,screen_info.vesapm_off,screen_info.vesapm_size);
59667 }
59668
59669 if (screen_info.vesapm_seg < 0xc000)
59670 @@ -330,9 +340,25 @@ static int vesafb_probe(struct platform_device *dev)
59671
59672 if (ypan || pmi_setpal) {
59673 unsigned short *pmi_base;
59674 +
59675 pmi_base = (unsigned short*)phys_to_virt(((unsigned long)screen_info.vesapm_seg << 4) + screen_info.vesapm_off);
59676 - pmi_start = (void*)((char*)pmi_base + pmi_base[1]);
59677 - pmi_pal = (void*)((char*)pmi_base + pmi_base[2]);
59678 +
59679 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59680 + pax_open_kernel();
59681 + memcpy(pmi_code, pmi_base, screen_info.vesapm_size);
59682 +#else
59683 + pmi_code = pmi_base;
59684 +#endif
59685 +
59686 + pmi_start = (void*)((char*)pmi_code + pmi_base[1]);
59687 + pmi_pal = (void*)((char*)pmi_code + pmi_base[2]);
59688 +
59689 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59690 + pmi_start = (void *)ktva_ktla((unsigned long)pmi_start);
59691 + pmi_pal = (void *)ktva_ktla((unsigned long)pmi_pal);
59692 + pax_close_kernel();
59693 +#endif
59694 +
59695 printk(KERN_INFO "vesafb: pmi: set display start = %p, set palette = %p\n",pmi_start,pmi_pal);
59696 if (pmi_base[3]) {
59697 printk(KERN_INFO "vesafb: pmi: ports = ");
59698 @@ -452,8 +478,11 @@ static int vesafb_probe(struct platform_device *dev)
59699 info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE |
59700 (ypan ? FBINFO_HWACCEL_YPAN : 0);
59701
59702 - if (!ypan)
59703 - info->fbops->fb_pan_display = NULL;
59704 + if (!ypan) {
59705 + pax_open_kernel();
59706 + *(void **)&info->fbops->fb_pan_display = NULL;
59707 + pax_close_kernel();
59708 + }
59709
59710 if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) {
59711 err = -ENOMEM;
59712 @@ -467,6 +496,11 @@ static int vesafb_probe(struct platform_device *dev)
59713 fb_info(info, "%s frame buffer device\n", info->fix.id);
59714 return 0;
59715 err:
59716 +
59717 +#if defined(__i386__) && defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59718 + module_memfree_exec(pmi_code);
59719 +#endif
59720 +
59721 arch_phys_wc_del(par->wc_cookie);
59722 if (info->screen_base)
59723 iounmap(info->screen_base);
59724 diff --git a/drivers/video/fbdev/via/via_clock.h b/drivers/video/fbdev/via/via_clock.h
59725 index 88714ae..16c2e11 100644
59726 --- a/drivers/video/fbdev/via/via_clock.h
59727 +++ b/drivers/video/fbdev/via/via_clock.h
59728 @@ -56,7 +56,7 @@ struct via_clock {
59729
59730 void (*set_engine_pll_state)(u8 state);
59731 void (*set_engine_pll)(struct via_pll_config config);
59732 -};
59733 +} __no_const;
59734
59735
59736 static inline u32 get_pll_internal_frequency(u32 ref_freq,
59737 diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
59738 index 3c14e43..2630570 100644
59739 --- a/drivers/video/logo/logo_linux_clut224.ppm
59740 +++ b/drivers/video/logo/logo_linux_clut224.ppm
59741 @@ -2,1603 +2,1123 @@ P3
59742 # Standard 224-color Linux logo
59743 80 80
59744 255
59745 - 0 0 0 0 0 0 0 0 0 0 0 0
59746 - 0 0 0 0 0 0 0 0 0 0 0 0
59747 - 0 0 0 0 0 0 0 0 0 0 0 0
59748 - 0 0 0 0 0 0 0 0 0 0 0 0
59749 - 0 0 0 0 0 0 0 0 0 0 0 0
59750 - 0 0 0 0 0 0 0 0 0 0 0 0
59751 - 0 0 0 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 - 6 6 6 6 6 6 10 10 10 10 10 10
59755 - 10 10 10 6 6 6 6 6 6 6 6 6
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 0 0 0
59764 - 0 0 0 0 0 0 0 0 0 0 0 0
59765 - 0 0 0 0 0 0 0 0 0 0 0 0
59766 - 0 0 0 0 0 0 0 0 0 0 0 0
59767 - 0 0 0 0 0 0 0 0 0 0 0 0
59768 - 0 0 0 0 0 0 0 0 0 0 0 0
59769 - 0 0 0 0 0 0 0 0 0 0 0 0
59770 - 0 0 0 0 0 0 0 0 0 0 0 0
59771 - 0 0 0 0 0 0 0 0 0 0 0 0
59772 - 0 0 0 0 0 0 0 0 0 0 0 0
59773 - 0 0 0 6 6 6 10 10 10 14 14 14
59774 - 22 22 22 26 26 26 30 30 30 34 34 34
59775 - 30 30 30 30 30 30 26 26 26 18 18 18
59776 - 14 14 14 10 10 10 6 6 6 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 0 0 0
59784 - 0 0 0 0 0 0 0 0 0 0 0 0
59785 - 0 0 0 0 0 0 0 0 0 0 0 0
59786 - 0 0 0 0 0 1 0 0 1 0 0 0
59787 - 0 0 0 0 0 0 0 0 0 0 0 0
59788 - 0 0 0 0 0 0 0 0 0 0 0 0
59789 - 0 0 0 0 0 0 0 0 0 0 0 0
59790 - 0 0 0 0 0 0 0 0 0 0 0 0
59791 - 0 0 0 0 0 0 0 0 0 0 0 0
59792 - 0 0 0 0 0 0 0 0 0 0 0 0
59793 - 6 6 6 14 14 14 26 26 26 42 42 42
59794 - 54 54 54 66 66 66 78 78 78 78 78 78
59795 - 78 78 78 74 74 74 66 66 66 54 54 54
59796 - 42 42 42 26 26 26 18 18 18 10 10 10
59797 - 6 6 6 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 0 0 0 0 0 0
59804 - 0 0 0 0 0 0 0 0 0 0 0 0
59805 - 0 0 0 0 0 0 0 0 0 0 0 0
59806 - 0 0 1 0 0 0 0 0 0 0 0 0
59807 - 0 0 0 0 0 0 0 0 0 0 0 0
59808 - 0 0 0 0 0 0 0 0 0 0 0 0
59809 - 0 0 0 0 0 0 0 0 0 0 0 0
59810 - 0 0 0 0 0 0 0 0 0 0 0 0
59811 - 0 0 0 0 0 0 0 0 0 0 0 0
59812 - 0 0 0 0 0 0 0 0 0 10 10 10
59813 - 22 22 22 42 42 42 66 66 66 86 86 86
59814 - 66 66 66 38 38 38 38 38 38 22 22 22
59815 - 26 26 26 34 34 34 54 54 54 66 66 66
59816 - 86 86 86 70 70 70 46 46 46 26 26 26
59817 - 14 14 14 6 6 6 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 0 0 0 0 0 0
59824 - 0 0 0 0 0 0 0 0 0 0 0 0
59825 - 0 0 0 0 0 0 0 0 0 0 0 0
59826 - 0 0 1 0 0 1 0 0 1 0 0 0
59827 - 0 0 0 0 0 0 0 0 0 0 0 0
59828 - 0 0 0 0 0 0 0 0 0 0 0 0
59829 - 0 0 0 0 0 0 0 0 0 0 0 0
59830 - 0 0 0 0 0 0 0 0 0 0 0 0
59831 - 0 0 0 0 0 0 0 0 0 0 0 0
59832 - 0 0 0 0 0 0 10 10 10 26 26 26
59833 - 50 50 50 82 82 82 58 58 58 6 6 6
59834 - 2 2 6 2 2 6 2 2 6 2 2 6
59835 - 2 2 6 2 2 6 2 2 6 2 2 6
59836 - 6 6 6 54 54 54 86 86 86 66 66 66
59837 - 38 38 38 18 18 18 6 6 6 0 0 0
59838 - 0 0 0 0 0 0 0 0 0 0 0 0
59839 - 0 0 0 0 0 0 0 0 0 0 0 0
59840 - 0 0 0 0 0 0 0 0 0 0 0 0
59841 - 0 0 0 0 0 0 0 0 0 0 0 0
59842 - 0 0 0 0 0 0 0 0 0 0 0 0
59843 - 0 0 0 0 0 0 0 0 0 0 0 0
59844 - 0 0 0 0 0 0 0 0 0 0 0 0
59845 - 0 0 0 0 0 0 0 0 0 0 0 0
59846 - 0 0 0 0 0 0 0 0 0 0 0 0
59847 - 0 0 0 0 0 0 0 0 0 0 0 0
59848 - 0 0 0 0 0 0 0 0 0 0 0 0
59849 - 0 0 0 0 0 0 0 0 0 0 0 0
59850 - 0 0 0 0 0 0 0 0 0 0 0 0
59851 - 0 0 0 0 0 0 0 0 0 0 0 0
59852 - 0 0 0 6 6 6 22 22 22 50 50 50
59853 - 78 78 78 34 34 34 2 2 6 2 2 6
59854 - 2 2 6 2 2 6 2 2 6 2 2 6
59855 - 2 2 6 2 2 6 2 2 6 2 2 6
59856 - 2 2 6 2 2 6 6 6 6 70 70 70
59857 - 78 78 78 46 46 46 22 22 22 6 6 6
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 - 0 0 0 0 0 0 0 0 0 0 0 0
59864 - 0 0 0 0 0 0 0 0 0 0 0 0
59865 - 0 0 0 0 0 0 0 0 0 0 0 0
59866 - 0 0 1 0 0 1 0 0 1 0 0 0
59867 - 0 0 0 0 0 0 0 0 0 0 0 0
59868 - 0 0 0 0 0 0 0 0 0 0 0 0
59869 - 0 0 0 0 0 0 0 0 0 0 0 0
59870 - 0 0 0 0 0 0 0 0 0 0 0 0
59871 - 0 0 0 0 0 0 0 0 0 0 0 0
59872 - 6 6 6 18 18 18 42 42 42 82 82 82
59873 - 26 26 26 2 2 6 2 2 6 2 2 6
59874 - 2 2 6 2 2 6 2 2 6 2 2 6
59875 - 2 2 6 2 2 6 2 2 6 14 14 14
59876 - 46 46 46 34 34 34 6 6 6 2 2 6
59877 - 42 42 42 78 78 78 42 42 42 18 18 18
59878 - 6 6 6 0 0 0 0 0 0 0 0 0
59879 - 0 0 0 0 0 0 0 0 0 0 0 0
59880 - 0 0 0 0 0 0 0 0 0 0 0 0
59881 - 0 0 0 0 0 0 0 0 0 0 0 0
59882 - 0 0 0 0 0 0 0 0 0 0 0 0
59883 - 0 0 0 0 0 0 0 0 0 0 0 0
59884 - 0 0 0 0 0 0 0 0 0 0 0 0
59885 - 0 0 0 0 0 0 0 0 0 0 0 0
59886 - 0 0 1 0 0 0 0 0 1 0 0 0
59887 - 0 0 0 0 0 0 0 0 0 0 0 0
59888 - 0 0 0 0 0 0 0 0 0 0 0 0
59889 - 0 0 0 0 0 0 0 0 0 0 0 0
59890 - 0 0 0 0 0 0 0 0 0 0 0 0
59891 - 0 0 0 0 0 0 0 0 0 0 0 0
59892 - 10 10 10 30 30 30 66 66 66 58 58 58
59893 - 2 2 6 2 2 6 2 2 6 2 2 6
59894 - 2 2 6 2 2 6 2 2 6 2 2 6
59895 - 2 2 6 2 2 6 2 2 6 26 26 26
59896 - 86 86 86 101 101 101 46 46 46 10 10 10
59897 - 2 2 6 58 58 58 70 70 70 34 34 34
59898 - 10 10 10 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 0 0 0
59903 - 0 0 0 0 0 0 0 0 0 0 0 0
59904 - 0 0 0 0 0 0 0 0 0 0 0 0
59905 - 0 0 0 0 0 0 0 0 0 0 0 0
59906 - 0 0 1 0 0 1 0 0 1 0 0 0
59907 - 0 0 0 0 0 0 0 0 0 0 0 0
59908 - 0 0 0 0 0 0 0 0 0 0 0 0
59909 - 0 0 0 0 0 0 0 0 0 0 0 0
59910 - 0 0 0 0 0 0 0 0 0 0 0 0
59911 - 0 0 0 0 0 0 0 0 0 0 0 0
59912 - 14 14 14 42 42 42 86 86 86 10 10 10
59913 - 2 2 6 2 2 6 2 2 6 2 2 6
59914 - 2 2 6 2 2 6 2 2 6 2 2 6
59915 - 2 2 6 2 2 6 2 2 6 30 30 30
59916 - 94 94 94 94 94 94 58 58 58 26 26 26
59917 - 2 2 6 6 6 6 78 78 78 54 54 54
59918 - 22 22 22 6 6 6 0 0 0 0 0 0
59919 - 0 0 0 0 0 0 0 0 0 0 0 0
59920 - 0 0 0 0 0 0 0 0 0 0 0 0
59921 - 0 0 0 0 0 0 0 0 0 0 0 0
59922 - 0 0 0 0 0 0 0 0 0 0 0 0
59923 - 0 0 0 0 0 0 0 0 0 0 0 0
59924 - 0 0 0 0 0 0 0 0 0 0 0 0
59925 - 0 0 0 0 0 0 0 0 0 0 0 0
59926 - 0 0 0 0 0 0 0 0 0 0 0 0
59927 - 0 0 0 0 0 0 0 0 0 0 0 0
59928 - 0 0 0 0 0 0 0 0 0 0 0 0
59929 - 0 0 0 0 0 0 0 0 0 0 0 0
59930 - 0 0 0 0 0 0 0 0 0 0 0 0
59931 - 0 0 0 0 0 0 0 0 0 6 6 6
59932 - 22 22 22 62 62 62 62 62 62 2 2 6
59933 - 2 2 6 2 2 6 2 2 6 2 2 6
59934 - 2 2 6 2 2 6 2 2 6 2 2 6
59935 - 2 2 6 2 2 6 2 2 6 26 26 26
59936 - 54 54 54 38 38 38 18 18 18 10 10 10
59937 - 2 2 6 2 2 6 34 34 34 82 82 82
59938 - 38 38 38 14 14 14 0 0 0 0 0 0
59939 - 0 0 0 0 0 0 0 0 0 0 0 0
59940 - 0 0 0 0 0 0 0 0 0 0 0 0
59941 - 0 0 0 0 0 0 0 0 0 0 0 0
59942 - 0 0 0 0 0 0 0 0 0 0 0 0
59943 - 0 0 0 0 0 0 0 0 0 0 0 0
59944 - 0 0 0 0 0 0 0 0 0 0 0 0
59945 - 0 0 0 0 0 0 0 0 0 0 0 0
59946 - 0 0 0 0 0 1 0 0 1 0 0 0
59947 - 0 0 0 0 0 0 0 0 0 0 0 0
59948 - 0 0 0 0 0 0 0 0 0 0 0 0
59949 - 0 0 0 0 0 0 0 0 0 0 0 0
59950 - 0 0 0 0 0 0 0 0 0 0 0 0
59951 - 0 0 0 0 0 0 0 0 0 6 6 6
59952 - 30 30 30 78 78 78 30 30 30 2 2 6
59953 - 2 2 6 2 2 6 2 2 6 2 2 6
59954 - 2 2 6 2 2 6 2 2 6 2 2 6
59955 - 2 2 6 2 2 6 2 2 6 10 10 10
59956 - 10 10 10 2 2 6 2 2 6 2 2 6
59957 - 2 2 6 2 2 6 2 2 6 78 78 78
59958 - 50 50 50 18 18 18 6 6 6 0 0 0
59959 - 0 0 0 0 0 0 0 0 0 0 0 0
59960 - 0 0 0 0 0 0 0 0 0 0 0 0
59961 - 0 0 0 0 0 0 0 0 0 0 0 0
59962 - 0 0 0 0 0 0 0 0 0 0 0 0
59963 - 0 0 0 0 0 0 0 0 0 0 0 0
59964 - 0 0 0 0 0 0 0 0 0 0 0 0
59965 - 0 0 0 0 0 0 0 0 0 0 0 0
59966 - 0 0 1 0 0 0 0 0 0 0 0 0
59967 - 0 0 0 0 0 0 0 0 0 0 0 0
59968 - 0 0 0 0 0 0 0 0 0 0 0 0
59969 - 0 0 0 0 0 0 0 0 0 0 0 0
59970 - 0 0 0 0 0 0 0 0 0 0 0 0
59971 - 0 0 0 0 0 0 0 0 0 10 10 10
59972 - 38 38 38 86 86 86 14 14 14 2 2 6
59973 - 2 2 6 2 2 6 2 2 6 2 2 6
59974 - 2 2 6 2 2 6 2 2 6 2 2 6
59975 - 2 2 6 2 2 6 2 2 6 2 2 6
59976 - 2 2 6 2 2 6 2 2 6 2 2 6
59977 - 2 2 6 2 2 6 2 2 6 54 54 54
59978 - 66 66 66 26 26 26 6 6 6 0 0 0
59979 - 0 0 0 0 0 0 0 0 0 0 0 0
59980 - 0 0 0 0 0 0 0 0 0 0 0 0
59981 - 0 0 0 0 0 0 0 0 0 0 0 0
59982 - 0 0 0 0 0 0 0 0 0 0 0 0
59983 - 0 0 0 0 0 0 0 0 0 0 0 0
59984 - 0 0 0 0 0 0 0 0 0 0 0 0
59985 - 0 0 0 0 0 0 0 0 0 0 0 0
59986 - 0 0 0 0 0 1 0 0 1 0 0 0
59987 - 0 0 0 0 0 0 0 0 0 0 0 0
59988 - 0 0 0 0 0 0 0 0 0 0 0 0
59989 - 0 0 0 0 0 0 0 0 0 0 0 0
59990 - 0 0 0 0 0 0 0 0 0 0 0 0
59991 - 0 0 0 0 0 0 0 0 0 14 14 14
59992 - 42 42 42 82 82 82 2 2 6 2 2 6
59993 - 2 2 6 6 6 6 10 10 10 2 2 6
59994 - 2 2 6 2 2 6 2 2 6 2 2 6
59995 - 2 2 6 2 2 6 2 2 6 6 6 6
59996 - 14 14 14 10 10 10 2 2 6 2 2 6
59997 - 2 2 6 2 2 6 2 2 6 18 18 18
59998 - 82 82 82 34 34 34 10 10 10 0 0 0
59999 - 0 0 0 0 0 0 0 0 0 0 0 0
60000 - 0 0 0 0 0 0 0 0 0 0 0 0
60001 - 0 0 0 0 0 0 0 0 0 0 0 0
60002 - 0 0 0 0 0 0 0 0 0 0 0 0
60003 - 0 0 0 0 0 0 0 0 0 0 0 0
60004 - 0 0 0 0 0 0 0 0 0 0 0 0
60005 - 0 0 0 0 0 0 0 0 0 0 0 0
60006 - 0 0 1 0 0 0 0 0 0 0 0 0
60007 - 0 0 0 0 0 0 0 0 0 0 0 0
60008 - 0 0 0 0 0 0 0 0 0 0 0 0
60009 - 0 0 0 0 0 0 0 0 0 0 0 0
60010 - 0 0 0 0 0 0 0 0 0 0 0 0
60011 - 0 0 0 0 0 0 0 0 0 14 14 14
60012 - 46 46 46 86 86 86 2 2 6 2 2 6
60013 - 6 6 6 6 6 6 22 22 22 34 34 34
60014 - 6 6 6 2 2 6 2 2 6 2 2 6
60015 - 2 2 6 2 2 6 18 18 18 34 34 34
60016 - 10 10 10 50 50 50 22 22 22 2 2 6
60017 - 2 2 6 2 2 6 2 2 6 10 10 10
60018 - 86 86 86 42 42 42 14 14 14 0 0 0
60019 - 0 0 0 0 0 0 0 0 0 0 0 0
60020 - 0 0 0 0 0 0 0 0 0 0 0 0
60021 - 0 0 0 0 0 0 0 0 0 0 0 0
60022 - 0 0 0 0 0 0 0 0 0 0 0 0
60023 - 0 0 0 0 0 0 0 0 0 0 0 0
60024 - 0 0 0 0 0 0 0 0 0 0 0 0
60025 - 0 0 0 0 0 0 0 0 0 0 0 0
60026 - 0 0 1 0 0 1 0 0 1 0 0 0
60027 - 0 0 0 0 0 0 0 0 0 0 0 0
60028 - 0 0 0 0 0 0 0 0 0 0 0 0
60029 - 0 0 0 0 0 0 0 0 0 0 0 0
60030 - 0 0 0 0 0 0 0 0 0 0 0 0
60031 - 0 0 0 0 0 0 0 0 0 14 14 14
60032 - 46 46 46 86 86 86 2 2 6 2 2 6
60033 - 38 38 38 116 116 116 94 94 94 22 22 22
60034 - 22 22 22 2 2 6 2 2 6 2 2 6
60035 - 14 14 14 86 86 86 138 138 138 162 162 162
60036 -154 154 154 38 38 38 26 26 26 6 6 6
60037 - 2 2 6 2 2 6 2 2 6 2 2 6
60038 - 86 86 86 46 46 46 14 14 14 0 0 0
60039 - 0 0 0 0 0 0 0 0 0 0 0 0
60040 - 0 0 0 0 0 0 0 0 0 0 0 0
60041 - 0 0 0 0 0 0 0 0 0 0 0 0
60042 - 0 0 0 0 0 0 0 0 0 0 0 0
60043 - 0 0 0 0 0 0 0 0 0 0 0 0
60044 - 0 0 0 0 0 0 0 0 0 0 0 0
60045 - 0 0 0 0 0 0 0 0 0 0 0 0
60046 - 0 0 0 0 0 0 0 0 0 0 0 0
60047 - 0 0 0 0 0 0 0 0 0 0 0 0
60048 - 0 0 0 0 0 0 0 0 0 0 0 0
60049 - 0 0 0 0 0 0 0 0 0 0 0 0
60050 - 0 0 0 0 0 0 0 0 0 0 0 0
60051 - 0 0 0 0 0 0 0 0 0 14 14 14
60052 - 46 46 46 86 86 86 2 2 6 14 14 14
60053 -134 134 134 198 198 198 195 195 195 116 116 116
60054 - 10 10 10 2 2 6 2 2 6 6 6 6
60055 -101 98 89 187 187 187 210 210 210 218 218 218
60056 -214 214 214 134 134 134 14 14 14 6 6 6
60057 - 2 2 6 2 2 6 2 2 6 2 2 6
60058 - 86 86 86 50 50 50 18 18 18 6 6 6
60059 - 0 0 0 0 0 0 0 0 0 0 0 0
60060 - 0 0 0 0 0 0 0 0 0 0 0 0
60061 - 0 0 0 0 0 0 0 0 0 0 0 0
60062 - 0 0 0 0 0 0 0 0 0 0 0 0
60063 - 0 0 0 0 0 0 0 0 0 0 0 0
60064 - 0 0 0 0 0 0 0 0 0 0 0 0
60065 - 0 0 0 0 0 0 0 0 1 0 0 0
60066 - 0 0 1 0 0 1 0 0 1 0 0 0
60067 - 0 0 0 0 0 0 0 0 0 0 0 0
60068 - 0 0 0 0 0 0 0 0 0 0 0 0
60069 - 0 0 0 0 0 0 0 0 0 0 0 0
60070 - 0 0 0 0 0 0 0 0 0 0 0 0
60071 - 0 0 0 0 0 0 0 0 0 14 14 14
60072 - 46 46 46 86 86 86 2 2 6 54 54 54
60073 -218 218 218 195 195 195 226 226 226 246 246 246
60074 - 58 58 58 2 2 6 2 2 6 30 30 30
60075 -210 210 210 253 253 253 174 174 174 123 123 123
60076 -221 221 221 234 234 234 74 74 74 2 2 6
60077 - 2 2 6 2 2 6 2 2 6 2 2 6
60078 - 70 70 70 58 58 58 22 22 22 6 6 6
60079 - 0 0 0 0 0 0 0 0 0 0 0 0
60080 - 0 0 0 0 0 0 0 0 0 0 0 0
60081 - 0 0 0 0 0 0 0 0 0 0 0 0
60082 - 0 0 0 0 0 0 0 0 0 0 0 0
60083 - 0 0 0 0 0 0 0 0 0 0 0 0
60084 - 0 0 0 0 0 0 0 0 0 0 0 0
60085 - 0 0 0 0 0 0 0 0 0 0 0 0
60086 - 0 0 0 0 0 0 0 0 0 0 0 0
60087 - 0 0 0 0 0 0 0 0 0 0 0 0
60088 - 0 0 0 0 0 0 0 0 0 0 0 0
60089 - 0 0 0 0 0 0 0 0 0 0 0 0
60090 - 0 0 0 0 0 0 0 0 0 0 0 0
60091 - 0 0 0 0 0 0 0 0 0 14 14 14
60092 - 46 46 46 82 82 82 2 2 6 106 106 106
60093 -170 170 170 26 26 26 86 86 86 226 226 226
60094 -123 123 123 10 10 10 14 14 14 46 46 46
60095 -231 231 231 190 190 190 6 6 6 70 70 70
60096 - 90 90 90 238 238 238 158 158 158 2 2 6
60097 - 2 2 6 2 2 6 2 2 6 2 2 6
60098 - 70 70 70 58 58 58 22 22 22 6 6 6
60099 - 0 0 0 0 0 0 0 0 0 0 0 0
60100 - 0 0 0 0 0 0 0 0 0 0 0 0
60101 - 0 0 0 0 0 0 0 0 0 0 0 0
60102 - 0 0 0 0 0 0 0 0 0 0 0 0
60103 - 0 0 0 0 0 0 0 0 0 0 0 0
60104 - 0 0 0 0 0 0 0 0 0 0 0 0
60105 - 0 0 0 0 0 0 0 0 1 0 0 0
60106 - 0 0 1 0 0 1 0 0 1 0 0 0
60107 - 0 0 0 0 0 0 0 0 0 0 0 0
60108 - 0 0 0 0 0 0 0 0 0 0 0 0
60109 - 0 0 0 0 0 0 0 0 0 0 0 0
60110 - 0 0 0 0 0 0 0 0 0 0 0 0
60111 - 0 0 0 0 0 0 0 0 0 14 14 14
60112 - 42 42 42 86 86 86 6 6 6 116 116 116
60113 -106 106 106 6 6 6 70 70 70 149 149 149
60114 -128 128 128 18 18 18 38 38 38 54 54 54
60115 -221 221 221 106 106 106 2 2 6 14 14 14
60116 - 46 46 46 190 190 190 198 198 198 2 2 6
60117 - 2 2 6 2 2 6 2 2 6 2 2 6
60118 - 74 74 74 62 62 62 22 22 22 6 6 6
60119 - 0 0 0 0 0 0 0 0 0 0 0 0
60120 - 0 0 0 0 0 0 0 0 0 0 0 0
60121 - 0 0 0 0 0 0 0 0 0 0 0 0
60122 - 0 0 0 0 0 0 0 0 0 0 0 0
60123 - 0 0 0 0 0 0 0 0 0 0 0 0
60124 - 0 0 0 0 0 0 0 0 0 0 0 0
60125 - 0 0 0 0 0 0 0 0 1 0 0 0
60126 - 0 0 1 0 0 0 0 0 1 0 0 0
60127 - 0 0 0 0 0 0 0 0 0 0 0 0
60128 - 0 0 0 0 0 0 0 0 0 0 0 0
60129 - 0 0 0 0 0 0 0 0 0 0 0 0
60130 - 0 0 0 0 0 0 0 0 0 0 0 0
60131 - 0 0 0 0 0 0 0 0 0 14 14 14
60132 - 42 42 42 94 94 94 14 14 14 101 101 101
60133 -128 128 128 2 2 6 18 18 18 116 116 116
60134 -118 98 46 121 92 8 121 92 8 98 78 10
60135 -162 162 162 106 106 106 2 2 6 2 2 6
60136 - 2 2 6 195 195 195 195 195 195 6 6 6
60137 - 2 2 6 2 2 6 2 2 6 2 2 6
60138 - 74 74 74 62 62 62 22 22 22 6 6 6
60139 - 0 0 0 0 0 0 0 0 0 0 0 0
60140 - 0 0 0 0 0 0 0 0 0 0 0 0
60141 - 0 0 0 0 0 0 0 0 0 0 0 0
60142 - 0 0 0 0 0 0 0 0 0 0 0 0
60143 - 0 0 0 0 0 0 0 0 0 0 0 0
60144 - 0 0 0 0 0 0 0 0 0 0 0 0
60145 - 0 0 0 0 0 0 0 0 1 0 0 1
60146 - 0 0 1 0 0 0 0 0 1 0 0 0
60147 - 0 0 0 0 0 0 0 0 0 0 0 0
60148 - 0 0 0 0 0 0 0 0 0 0 0 0
60149 - 0 0 0 0 0 0 0 0 0 0 0 0
60150 - 0 0 0 0 0 0 0 0 0 0 0 0
60151 - 0 0 0 0 0 0 0 0 0 10 10 10
60152 - 38 38 38 90 90 90 14 14 14 58 58 58
60153 -210 210 210 26 26 26 54 38 6 154 114 10
60154 -226 170 11 236 186 11 225 175 15 184 144 12
60155 -215 174 15 175 146 61 37 26 9 2 2 6
60156 - 70 70 70 246 246 246 138 138 138 2 2 6
60157 - 2 2 6 2 2 6 2 2 6 2 2 6
60158 - 70 70 70 66 66 66 26 26 26 6 6 6
60159 - 0 0 0 0 0 0 0 0 0 0 0 0
60160 - 0 0 0 0 0 0 0 0 0 0 0 0
60161 - 0 0 0 0 0 0 0 0 0 0 0 0
60162 - 0 0 0 0 0 0 0 0 0 0 0 0
60163 - 0 0 0 0 0 0 0 0 0 0 0 0
60164 - 0 0 0 0 0 0 0 0 0 0 0 0
60165 - 0 0 0 0 0 0 0 0 0 0 0 0
60166 - 0 0 0 0 0 0 0 0 0 0 0 0
60167 - 0 0 0 0 0 0 0 0 0 0 0 0
60168 - 0 0 0 0 0 0 0 0 0 0 0 0
60169 - 0 0 0 0 0 0 0 0 0 0 0 0
60170 - 0 0 0 0 0 0 0 0 0 0 0 0
60171 - 0 0 0 0 0 0 0 0 0 10 10 10
60172 - 38 38 38 86 86 86 14 14 14 10 10 10
60173 -195 195 195 188 164 115 192 133 9 225 175 15
60174 -239 182 13 234 190 10 232 195 16 232 200 30
60175 -245 207 45 241 208 19 232 195 16 184 144 12
60176 -218 194 134 211 206 186 42 42 42 2 2 6
60177 - 2 2 6 2 2 6 2 2 6 2 2 6
60178 - 50 50 50 74 74 74 30 30 30 6 6 6
60179 - 0 0 0 0 0 0 0 0 0 0 0 0
60180 - 0 0 0 0 0 0 0 0 0 0 0 0
60181 - 0 0 0 0 0 0 0 0 0 0 0 0
60182 - 0 0 0 0 0 0 0 0 0 0 0 0
60183 - 0 0 0 0 0 0 0 0 0 0 0 0
60184 - 0 0 0 0 0 0 0 0 0 0 0 0
60185 - 0 0 0 0 0 0 0 0 0 0 0 0
60186 - 0 0 0 0 0 0 0 0 0 0 0 0
60187 - 0 0 0 0 0 0 0 0 0 0 0 0
60188 - 0 0 0 0 0 0 0 0 0 0 0 0
60189 - 0 0 0 0 0 0 0 0 0 0 0 0
60190 - 0 0 0 0 0 0 0 0 0 0 0 0
60191 - 0 0 0 0 0 0 0 0 0 10 10 10
60192 - 34 34 34 86 86 86 14 14 14 2 2 6
60193 -121 87 25 192 133 9 219 162 10 239 182 13
60194 -236 186 11 232 195 16 241 208 19 244 214 54
60195 -246 218 60 246 218 38 246 215 20 241 208 19
60196 -241 208 19 226 184 13 121 87 25 2 2 6
60197 - 2 2 6 2 2 6 2 2 6 2 2 6
60198 - 50 50 50 82 82 82 34 34 34 10 10 10
60199 - 0 0 0 0 0 0 0 0 0 0 0 0
60200 - 0 0 0 0 0 0 0 0 0 0 0 0
60201 - 0 0 0 0 0 0 0 0 0 0 0 0
60202 - 0 0 0 0 0 0 0 0 0 0 0 0
60203 - 0 0 0 0 0 0 0 0 0 0 0 0
60204 - 0 0 0 0 0 0 0 0 0 0 0 0
60205 - 0 0 0 0 0 0 0 0 0 0 0 0
60206 - 0 0 0 0 0 0 0 0 0 0 0 0
60207 - 0 0 0 0 0 0 0 0 0 0 0 0
60208 - 0 0 0 0 0 0 0 0 0 0 0 0
60209 - 0 0 0 0 0 0 0 0 0 0 0 0
60210 - 0 0 0 0 0 0 0 0 0 0 0 0
60211 - 0 0 0 0 0 0 0 0 0 10 10 10
60212 - 34 34 34 82 82 82 30 30 30 61 42 6
60213 -180 123 7 206 145 10 230 174 11 239 182 13
60214 -234 190 10 238 202 15 241 208 19 246 218 74
60215 -246 218 38 246 215 20 246 215 20 246 215 20
60216 -226 184 13 215 174 15 184 144 12 6 6 6
60217 - 2 2 6 2 2 6 2 2 6 2 2 6
60218 - 26 26 26 94 94 94 42 42 42 14 14 14
60219 - 0 0 0 0 0 0 0 0 0 0 0 0
60220 - 0 0 0 0 0 0 0 0 0 0 0 0
60221 - 0 0 0 0 0 0 0 0 0 0 0 0
60222 - 0 0 0 0 0 0 0 0 0 0 0 0
60223 - 0 0 0 0 0 0 0 0 0 0 0 0
60224 - 0 0 0 0 0 0 0 0 0 0 0 0
60225 - 0 0 0 0 0 0 0 0 0 0 0 0
60226 - 0 0 0 0 0 0 0 0 0 0 0 0
60227 - 0 0 0 0 0 0 0 0 0 0 0 0
60228 - 0 0 0 0 0 0 0 0 0 0 0 0
60229 - 0 0 0 0 0 0 0 0 0 0 0 0
60230 - 0 0 0 0 0 0 0 0 0 0 0 0
60231 - 0 0 0 0 0 0 0 0 0 10 10 10
60232 - 30 30 30 78 78 78 50 50 50 104 69 6
60233 -192 133 9 216 158 10 236 178 12 236 186 11
60234 -232 195 16 241 208 19 244 214 54 245 215 43
60235 -246 215 20 246 215 20 241 208 19 198 155 10
60236 -200 144 11 216 158 10 156 118 10 2 2 6
60237 - 2 2 6 2 2 6 2 2 6 2 2 6
60238 - 6 6 6 90 90 90 54 54 54 18 18 18
60239 - 6 6 6 0 0 0 0 0 0 0 0 0
60240 - 0 0 0 0 0 0 0 0 0 0 0 0
60241 - 0 0 0 0 0 0 0 0 0 0 0 0
60242 - 0 0 0 0 0 0 0 0 0 0 0 0
60243 - 0 0 0 0 0 0 0 0 0 0 0 0
60244 - 0 0 0 0 0 0 0 0 0 0 0 0
60245 - 0 0 0 0 0 0 0 0 0 0 0 0
60246 - 0 0 0 0 0 0 0 0 0 0 0 0
60247 - 0 0 0 0 0 0 0 0 0 0 0 0
60248 - 0 0 0 0 0 0 0 0 0 0 0 0
60249 - 0 0 0 0 0 0 0 0 0 0 0 0
60250 - 0 0 0 0 0 0 0 0 0 0 0 0
60251 - 0 0 0 0 0 0 0 0 0 10 10 10
60252 - 30 30 30 78 78 78 46 46 46 22 22 22
60253 -137 92 6 210 162 10 239 182 13 238 190 10
60254 -238 202 15 241 208 19 246 215 20 246 215 20
60255 -241 208 19 203 166 17 185 133 11 210 150 10
60256 -216 158 10 210 150 10 102 78 10 2 2 6
60257 - 6 6 6 54 54 54 14 14 14 2 2 6
60258 - 2 2 6 62 62 62 74 74 74 30 30 30
60259 - 10 10 10 0 0 0 0 0 0 0 0 0
60260 - 0 0 0 0 0 0 0 0 0 0 0 0
60261 - 0 0 0 0 0 0 0 0 0 0 0 0
60262 - 0 0 0 0 0 0 0 0 0 0 0 0
60263 - 0 0 0 0 0 0 0 0 0 0 0 0
60264 - 0 0 0 0 0 0 0 0 0 0 0 0
60265 - 0 0 0 0 0 0 0 0 0 0 0 0
60266 - 0 0 0 0 0 0 0 0 0 0 0 0
60267 - 0 0 0 0 0 0 0 0 0 0 0 0
60268 - 0 0 0 0 0 0 0 0 0 0 0 0
60269 - 0 0 0 0 0 0 0 0 0 0 0 0
60270 - 0 0 0 0 0 0 0 0 0 0 0 0
60271 - 0 0 0 0 0 0 0 0 0 10 10 10
60272 - 34 34 34 78 78 78 50 50 50 6 6 6
60273 - 94 70 30 139 102 15 190 146 13 226 184 13
60274 -232 200 30 232 195 16 215 174 15 190 146 13
60275 -168 122 10 192 133 9 210 150 10 213 154 11
60276 -202 150 34 182 157 106 101 98 89 2 2 6
60277 - 2 2 6 78 78 78 116 116 116 58 58 58
60278 - 2 2 6 22 22 22 90 90 90 46 46 46
60279 - 18 18 18 6 6 6 0 0 0 0 0 0
60280 - 0 0 0 0 0 0 0 0 0 0 0 0
60281 - 0 0 0 0 0 0 0 0 0 0 0 0
60282 - 0 0 0 0 0 0 0 0 0 0 0 0
60283 - 0 0 0 0 0 0 0 0 0 0 0 0
60284 - 0 0 0 0 0 0 0 0 0 0 0 0
60285 - 0 0 0 0 0 0 0 0 0 0 0 0
60286 - 0 0 0 0 0 0 0 0 0 0 0 0
60287 - 0 0 0 0 0 0 0 0 0 0 0 0
60288 - 0 0 0 0 0 0 0 0 0 0 0 0
60289 - 0 0 0 0 0 0 0 0 0 0 0 0
60290 - 0 0 0 0 0 0 0 0 0 0 0 0
60291 - 0 0 0 0 0 0 0 0 0 10 10 10
60292 - 38 38 38 86 86 86 50 50 50 6 6 6
60293 -128 128 128 174 154 114 156 107 11 168 122 10
60294 -198 155 10 184 144 12 197 138 11 200 144 11
60295 -206 145 10 206 145 10 197 138 11 188 164 115
60296 -195 195 195 198 198 198 174 174 174 14 14 14
60297 - 2 2 6 22 22 22 116 116 116 116 116 116
60298 - 22 22 22 2 2 6 74 74 74 70 70 70
60299 - 30 30 30 10 10 10 0 0 0 0 0 0
60300 - 0 0 0 0 0 0 0 0 0 0 0 0
60301 - 0 0 0 0 0 0 0 0 0 0 0 0
60302 - 0 0 0 0 0 0 0 0 0 0 0 0
60303 - 0 0 0 0 0 0 0 0 0 0 0 0
60304 - 0 0 0 0 0 0 0 0 0 0 0 0
60305 - 0 0 0 0 0 0 0 0 0 0 0 0
60306 - 0 0 0 0 0 0 0 0 0 0 0 0
60307 - 0 0 0 0 0 0 0 0 0 0 0 0
60308 - 0 0 0 0 0 0 0 0 0 0 0 0
60309 - 0 0 0 0 0 0 0 0 0 0 0 0
60310 - 0 0 0 0 0 0 0 0 0 0 0 0
60311 - 0 0 0 0 0 0 6 6 6 18 18 18
60312 - 50 50 50 101 101 101 26 26 26 10 10 10
60313 -138 138 138 190 190 190 174 154 114 156 107 11
60314 -197 138 11 200 144 11 197 138 11 192 133 9
60315 -180 123 7 190 142 34 190 178 144 187 187 187
60316 -202 202 202 221 221 221 214 214 214 66 66 66
60317 - 2 2 6 2 2 6 50 50 50 62 62 62
60318 - 6 6 6 2 2 6 10 10 10 90 90 90
60319 - 50 50 50 18 18 18 6 6 6 0 0 0
60320 - 0 0 0 0 0 0 0 0 0 0 0 0
60321 - 0 0 0 0 0 0 0 0 0 0 0 0
60322 - 0 0 0 0 0 0 0 0 0 0 0 0
60323 - 0 0 0 0 0 0 0 0 0 0 0 0
60324 - 0 0 0 0 0 0 0 0 0 0 0 0
60325 - 0 0 0 0 0 0 0 0 0 0 0 0
60326 - 0 0 0 0 0 0 0 0 0 0 0 0
60327 - 0 0 0 0 0 0 0 0 0 0 0 0
60328 - 0 0 0 0 0 0 0 0 0 0 0 0
60329 - 0 0 0 0 0 0 0 0 0 0 0 0
60330 - 0 0 0 0 0 0 0 0 0 0 0 0
60331 - 0 0 0 0 0 0 10 10 10 34 34 34
60332 - 74 74 74 74 74 74 2 2 6 6 6 6
60333 -144 144 144 198 198 198 190 190 190 178 166 146
60334 -154 121 60 156 107 11 156 107 11 168 124 44
60335 -174 154 114 187 187 187 190 190 190 210 210 210
60336 -246 246 246 253 253 253 253 253 253 182 182 182
60337 - 6 6 6 2 2 6 2 2 6 2 2 6
60338 - 2 2 6 2 2 6 2 2 6 62 62 62
60339 - 74 74 74 34 34 34 14 14 14 0 0 0
60340 - 0 0 0 0 0 0 0 0 0 0 0 0
60341 - 0 0 0 0 0 0 0 0 0 0 0 0
60342 - 0 0 0 0 0 0 0 0 0 0 0 0
60343 - 0 0 0 0 0 0 0 0 0 0 0 0
60344 - 0 0 0 0 0 0 0 0 0 0 0 0
60345 - 0 0 0 0 0 0 0 0 0 0 0 0
60346 - 0 0 0 0 0 0 0 0 0 0 0 0
60347 - 0 0 0 0 0 0 0 0 0 0 0 0
60348 - 0 0 0 0 0 0 0 0 0 0 0 0
60349 - 0 0 0 0 0 0 0 0 0 0 0 0
60350 - 0 0 0 0 0 0 0 0 0 0 0 0
60351 - 0 0 0 10 10 10 22 22 22 54 54 54
60352 - 94 94 94 18 18 18 2 2 6 46 46 46
60353 -234 234 234 221 221 221 190 190 190 190 190 190
60354 -190 190 190 187 187 187 187 187 187 190 190 190
60355 -190 190 190 195 195 195 214 214 214 242 242 242
60356 -253 253 253 253 253 253 253 253 253 253 253 253
60357 - 82 82 82 2 2 6 2 2 6 2 2 6
60358 - 2 2 6 2 2 6 2 2 6 14 14 14
60359 - 86 86 86 54 54 54 22 22 22 6 6 6
60360 - 0 0 0 0 0 0 0 0 0 0 0 0
60361 - 0 0 0 0 0 0 0 0 0 0 0 0
60362 - 0 0 0 0 0 0 0 0 0 0 0 0
60363 - 0 0 0 0 0 0 0 0 0 0 0 0
60364 - 0 0 0 0 0 0 0 0 0 0 0 0
60365 - 0 0 0 0 0 0 0 0 0 0 0 0
60366 - 0 0 0 0 0 0 0 0 0 0 0 0
60367 - 0 0 0 0 0 0 0 0 0 0 0 0
60368 - 0 0 0 0 0 0 0 0 0 0 0 0
60369 - 0 0 0 0 0 0 0 0 0 0 0 0
60370 - 0 0 0 0 0 0 0 0 0 0 0 0
60371 - 6 6 6 18 18 18 46 46 46 90 90 90
60372 - 46 46 46 18 18 18 6 6 6 182 182 182
60373 -253 253 253 246 246 246 206 206 206 190 190 190
60374 -190 190 190 190 190 190 190 190 190 190 190 190
60375 -206 206 206 231 231 231 250 250 250 253 253 253
60376 -253 253 253 253 253 253 253 253 253 253 253 253
60377 -202 202 202 14 14 14 2 2 6 2 2 6
60378 - 2 2 6 2 2 6 2 2 6 2 2 6
60379 - 42 42 42 86 86 86 42 42 42 18 18 18
60380 - 6 6 6 0 0 0 0 0 0 0 0 0
60381 - 0 0 0 0 0 0 0 0 0 0 0 0
60382 - 0 0 0 0 0 0 0 0 0 0 0 0
60383 - 0 0 0 0 0 0 0 0 0 0 0 0
60384 - 0 0 0 0 0 0 0 0 0 0 0 0
60385 - 0 0 0 0 0 0 0 0 0 0 0 0
60386 - 0 0 0 0 0 0 0 0 0 0 0 0
60387 - 0 0 0 0 0 0 0 0 0 0 0 0
60388 - 0 0 0 0 0 0 0 0 0 0 0 0
60389 - 0 0 0 0 0 0 0 0 0 0 0 0
60390 - 0 0 0 0 0 0 0 0 0 6 6 6
60391 - 14 14 14 38 38 38 74 74 74 66 66 66
60392 - 2 2 6 6 6 6 90 90 90 250 250 250
60393 -253 253 253 253 253 253 238 238 238 198 198 198
60394 -190 190 190 190 190 190 195 195 195 221 221 221
60395 -246 246 246 253 253 253 253 253 253 253 253 253
60396 -253 253 253 253 253 253 253 253 253 253 253 253
60397 -253 253 253 82 82 82 2 2 6 2 2 6
60398 - 2 2 6 2 2 6 2 2 6 2 2 6
60399 - 2 2 6 78 78 78 70 70 70 34 34 34
60400 - 14 14 14 6 6 6 0 0 0 0 0 0
60401 - 0 0 0 0 0 0 0 0 0 0 0 0
60402 - 0 0 0 0 0 0 0 0 0 0 0 0
60403 - 0 0 0 0 0 0 0 0 0 0 0 0
60404 - 0 0 0 0 0 0 0 0 0 0 0 0
60405 - 0 0 0 0 0 0 0 0 0 0 0 0
60406 - 0 0 0 0 0 0 0 0 0 0 0 0
60407 - 0 0 0 0 0 0 0 0 0 0 0 0
60408 - 0 0 0 0 0 0 0 0 0 0 0 0
60409 - 0 0 0 0 0 0 0 0 0 0 0 0
60410 - 0 0 0 0 0 0 0 0 0 14 14 14
60411 - 34 34 34 66 66 66 78 78 78 6 6 6
60412 - 2 2 6 18 18 18 218 218 218 253 253 253
60413 -253 253 253 253 253 253 253 253 253 246 246 246
60414 -226 226 226 231 231 231 246 246 246 253 253 253
60415 -253 253 253 253 253 253 253 253 253 253 253 253
60416 -253 253 253 253 253 253 253 253 253 253 253 253
60417 -253 253 253 178 178 178 2 2 6 2 2 6
60418 - 2 2 6 2 2 6 2 2 6 2 2 6
60419 - 2 2 6 18 18 18 90 90 90 62 62 62
60420 - 30 30 30 10 10 10 0 0 0 0 0 0
60421 - 0 0 0 0 0 0 0 0 0 0 0 0
60422 - 0 0 0 0 0 0 0 0 0 0 0 0
60423 - 0 0 0 0 0 0 0 0 0 0 0 0
60424 - 0 0 0 0 0 0 0 0 0 0 0 0
60425 - 0 0 0 0 0 0 0 0 0 0 0 0
60426 - 0 0 0 0 0 0 0 0 0 0 0 0
60427 - 0 0 0 0 0 0 0 0 0 0 0 0
60428 - 0 0 0 0 0 0 0 0 0 0 0 0
60429 - 0 0 0 0 0 0 0 0 0 0 0 0
60430 - 0 0 0 0 0 0 10 10 10 26 26 26
60431 - 58 58 58 90 90 90 18 18 18 2 2 6
60432 - 2 2 6 110 110 110 253 253 253 253 253 253
60433 -253 253 253 253 253 253 253 253 253 253 253 253
60434 -250 250 250 253 253 253 253 253 253 253 253 253
60435 -253 253 253 253 253 253 253 253 253 253 253 253
60436 -253 253 253 253 253 253 253 253 253 253 253 253
60437 -253 253 253 231 231 231 18 18 18 2 2 6
60438 - 2 2 6 2 2 6 2 2 6 2 2 6
60439 - 2 2 6 2 2 6 18 18 18 94 94 94
60440 - 54 54 54 26 26 26 10 10 10 0 0 0
60441 - 0 0 0 0 0 0 0 0 0 0 0 0
60442 - 0 0 0 0 0 0 0 0 0 0 0 0
60443 - 0 0 0 0 0 0 0 0 0 0 0 0
60444 - 0 0 0 0 0 0 0 0 0 0 0 0
60445 - 0 0 0 0 0 0 0 0 0 0 0 0
60446 - 0 0 0 0 0 0 0 0 0 0 0 0
60447 - 0 0 0 0 0 0 0 0 0 0 0 0
60448 - 0 0 0 0 0 0 0 0 0 0 0 0
60449 - 0 0 0 0 0 0 0 0 0 0 0 0
60450 - 0 0 0 6 6 6 22 22 22 50 50 50
60451 - 90 90 90 26 26 26 2 2 6 2 2 6
60452 - 14 14 14 195 195 195 250 250 250 253 253 253
60453 -253 253 253 253 253 253 253 253 253 253 253 253
60454 -253 253 253 253 253 253 253 253 253 253 253 253
60455 -253 253 253 253 253 253 253 253 253 253 253 253
60456 -253 253 253 253 253 253 253 253 253 253 253 253
60457 -250 250 250 242 242 242 54 54 54 2 2 6
60458 - 2 2 6 2 2 6 2 2 6 2 2 6
60459 - 2 2 6 2 2 6 2 2 6 38 38 38
60460 - 86 86 86 50 50 50 22 22 22 6 6 6
60461 - 0 0 0 0 0 0 0 0 0 0 0 0
60462 - 0 0 0 0 0 0 0 0 0 0 0 0
60463 - 0 0 0 0 0 0 0 0 0 0 0 0
60464 - 0 0 0 0 0 0 0 0 0 0 0 0
60465 - 0 0 0 0 0 0 0 0 0 0 0 0
60466 - 0 0 0 0 0 0 0 0 0 0 0 0
60467 - 0 0 0 0 0 0 0 0 0 0 0 0
60468 - 0 0 0 0 0 0 0 0 0 0 0 0
60469 - 0 0 0 0 0 0 0 0 0 0 0 0
60470 - 6 6 6 14 14 14 38 38 38 82 82 82
60471 - 34 34 34 2 2 6 2 2 6 2 2 6
60472 - 42 42 42 195 195 195 246 246 246 253 253 253
60473 -253 253 253 253 253 253 253 253 253 250 250 250
60474 -242 242 242 242 242 242 250 250 250 253 253 253
60475 -253 253 253 253 253 253 253 253 253 253 253 253
60476 -253 253 253 250 250 250 246 246 246 238 238 238
60477 -226 226 226 231 231 231 101 101 101 6 6 6
60478 - 2 2 6 2 2 6 2 2 6 2 2 6
60479 - 2 2 6 2 2 6 2 2 6 2 2 6
60480 - 38 38 38 82 82 82 42 42 42 14 14 14
60481 - 6 6 6 0 0 0 0 0 0 0 0 0
60482 - 0 0 0 0 0 0 0 0 0 0 0 0
60483 - 0 0 0 0 0 0 0 0 0 0 0 0
60484 - 0 0 0 0 0 0 0 0 0 0 0 0
60485 - 0 0 0 0 0 0 0 0 0 0 0 0
60486 - 0 0 0 0 0 0 0 0 0 0 0 0
60487 - 0 0 0 0 0 0 0 0 0 0 0 0
60488 - 0 0 0 0 0 0 0 0 0 0 0 0
60489 - 0 0 0 0 0 0 0 0 0 0 0 0
60490 - 10 10 10 26 26 26 62 62 62 66 66 66
60491 - 2 2 6 2 2 6 2 2 6 6 6 6
60492 - 70 70 70 170 170 170 206 206 206 234 234 234
60493 -246 246 246 250 250 250 250 250 250 238 238 238
60494 -226 226 226 231 231 231 238 238 238 250 250 250
60495 -250 250 250 250 250 250 246 246 246 231 231 231
60496 -214 214 214 206 206 206 202 202 202 202 202 202
60497 -198 198 198 202 202 202 182 182 182 18 18 18
60498 - 2 2 6 2 2 6 2 2 6 2 2 6
60499 - 2 2 6 2 2 6 2 2 6 2 2 6
60500 - 2 2 6 62 62 62 66 66 66 30 30 30
60501 - 10 10 10 0 0 0 0 0 0 0 0 0
60502 - 0 0 0 0 0 0 0 0 0 0 0 0
60503 - 0 0 0 0 0 0 0 0 0 0 0 0
60504 - 0 0 0 0 0 0 0 0 0 0 0 0
60505 - 0 0 0 0 0 0 0 0 0 0 0 0
60506 - 0 0 0 0 0 0 0 0 0 0 0 0
60507 - 0 0 0 0 0 0 0 0 0 0 0 0
60508 - 0 0 0 0 0 0 0 0 0 0 0 0
60509 - 0 0 0 0 0 0 0 0 0 0 0 0
60510 - 14 14 14 42 42 42 82 82 82 18 18 18
60511 - 2 2 6 2 2 6 2 2 6 10 10 10
60512 - 94 94 94 182 182 182 218 218 218 242 242 242
60513 -250 250 250 253 253 253 253 253 253 250 250 250
60514 -234 234 234 253 253 253 253 253 253 253 253 253
60515 -253 253 253 253 253 253 253 253 253 246 246 246
60516 -238 238 238 226 226 226 210 210 210 202 202 202
60517 -195 195 195 195 195 195 210 210 210 158 158 158
60518 - 6 6 6 14 14 14 50 50 50 14 14 14
60519 - 2 2 6 2 2 6 2 2 6 2 2 6
60520 - 2 2 6 6 6 6 86 86 86 46 46 46
60521 - 18 18 18 6 6 6 0 0 0 0 0 0
60522 - 0 0 0 0 0 0 0 0 0 0 0 0
60523 - 0 0 0 0 0 0 0 0 0 0 0 0
60524 - 0 0 0 0 0 0 0 0 0 0 0 0
60525 - 0 0 0 0 0 0 0 0 0 0 0 0
60526 - 0 0 0 0 0 0 0 0 0 0 0 0
60527 - 0 0 0 0 0 0 0 0 0 0 0 0
60528 - 0 0 0 0 0 0 0 0 0 0 0 0
60529 - 0 0 0 0 0 0 0 0 0 6 6 6
60530 - 22 22 22 54 54 54 70 70 70 2 2 6
60531 - 2 2 6 10 10 10 2 2 6 22 22 22
60532 -166 166 166 231 231 231 250 250 250 253 253 253
60533 -253 253 253 253 253 253 253 253 253 250 250 250
60534 -242 242 242 253 253 253 253 253 253 253 253 253
60535 -253 253 253 253 253 253 253 253 253 253 253 253
60536 -253 253 253 253 253 253 253 253 253 246 246 246
60537 -231 231 231 206 206 206 198 198 198 226 226 226
60538 - 94 94 94 2 2 6 6 6 6 38 38 38
60539 - 30 30 30 2 2 6 2 2 6 2 2 6
60540 - 2 2 6 2 2 6 62 62 62 66 66 66
60541 - 26 26 26 10 10 10 0 0 0 0 0 0
60542 - 0 0 0 0 0 0 0 0 0 0 0 0
60543 - 0 0 0 0 0 0 0 0 0 0 0 0
60544 - 0 0 0 0 0 0 0 0 0 0 0 0
60545 - 0 0 0 0 0 0 0 0 0 0 0 0
60546 - 0 0 0 0 0 0 0 0 0 0 0 0
60547 - 0 0 0 0 0 0 0 0 0 0 0 0
60548 - 0 0 0 0 0 0 0 0 0 0 0 0
60549 - 0 0 0 0 0 0 0 0 0 10 10 10
60550 - 30 30 30 74 74 74 50 50 50 2 2 6
60551 - 26 26 26 26 26 26 2 2 6 106 106 106
60552 -238 238 238 253 253 253 253 253 253 253 253 253
60553 -253 253 253 253 253 253 253 253 253 253 253 253
60554 -253 253 253 253 253 253 253 253 253 253 253 253
60555 -253 253 253 253 253 253 253 253 253 253 253 253
60556 -253 253 253 253 253 253 253 253 253 253 253 253
60557 -253 253 253 246 246 246 218 218 218 202 202 202
60558 -210 210 210 14 14 14 2 2 6 2 2 6
60559 - 30 30 30 22 22 22 2 2 6 2 2 6
60560 - 2 2 6 2 2 6 18 18 18 86 86 86
60561 - 42 42 42 14 14 14 0 0 0 0 0 0
60562 - 0 0 0 0 0 0 0 0 0 0 0 0
60563 - 0 0 0 0 0 0 0 0 0 0 0 0
60564 - 0 0 0 0 0 0 0 0 0 0 0 0
60565 - 0 0 0 0 0 0 0 0 0 0 0 0
60566 - 0 0 0 0 0 0 0 0 0 0 0 0
60567 - 0 0 0 0 0 0 0 0 0 0 0 0
60568 - 0 0 0 0 0 0 0 0 0 0 0 0
60569 - 0 0 0 0 0 0 0 0 0 14 14 14
60570 - 42 42 42 90 90 90 22 22 22 2 2 6
60571 - 42 42 42 2 2 6 18 18 18 218 218 218
60572 -253 253 253 253 253 253 253 253 253 253 253 253
60573 -253 253 253 253 253 253 253 253 253 253 253 253
60574 -253 253 253 253 253 253 253 253 253 253 253 253
60575 -253 253 253 253 253 253 253 253 253 253 253 253
60576 -253 253 253 253 253 253 253 253 253 253 253 253
60577 -253 253 253 253 253 253 250 250 250 221 221 221
60578 -218 218 218 101 101 101 2 2 6 14 14 14
60579 - 18 18 18 38 38 38 10 10 10 2 2 6
60580 - 2 2 6 2 2 6 2 2 6 78 78 78
60581 - 58 58 58 22 22 22 6 6 6 0 0 0
60582 - 0 0 0 0 0 0 0 0 0 0 0 0
60583 - 0 0 0 0 0 0 0 0 0 0 0 0
60584 - 0 0 0 0 0 0 0 0 0 0 0 0
60585 - 0 0 0 0 0 0 0 0 0 0 0 0
60586 - 0 0 0 0 0 0 0 0 0 0 0 0
60587 - 0 0 0 0 0 0 0 0 0 0 0 0
60588 - 0 0 0 0 0 0 0 0 0 0 0 0
60589 - 0 0 0 0 0 0 6 6 6 18 18 18
60590 - 54 54 54 82 82 82 2 2 6 26 26 26
60591 - 22 22 22 2 2 6 123 123 123 253 253 253
60592 -253 253 253 253 253 253 253 253 253 253 253 253
60593 -253 253 253 253 253 253 253 253 253 253 253 253
60594 -253 253 253 253 253 253 253 253 253 253 253 253
60595 -253 253 253 253 253 253 253 253 253 253 253 253
60596 -253 253 253 253 253 253 253 253 253 253 253 253
60597 -253 253 253 253 253 253 253 253 253 250 250 250
60598 -238 238 238 198 198 198 6 6 6 38 38 38
60599 - 58 58 58 26 26 26 38 38 38 2 2 6
60600 - 2 2 6 2 2 6 2 2 6 46 46 46
60601 - 78 78 78 30 30 30 10 10 10 0 0 0
60602 - 0 0 0 0 0 0 0 0 0 0 0 0
60603 - 0 0 0 0 0 0 0 0 0 0 0 0
60604 - 0 0 0 0 0 0 0 0 0 0 0 0
60605 - 0 0 0 0 0 0 0 0 0 0 0 0
60606 - 0 0 0 0 0 0 0 0 0 0 0 0
60607 - 0 0 0 0 0 0 0 0 0 0 0 0
60608 - 0 0 0 0 0 0 0 0 0 0 0 0
60609 - 0 0 0 0 0 0 10 10 10 30 30 30
60610 - 74 74 74 58 58 58 2 2 6 42 42 42
60611 - 2 2 6 22 22 22 231 231 231 253 253 253
60612 -253 253 253 253 253 253 253 253 253 253 253 253
60613 -253 253 253 253 253 253 253 253 253 250 250 250
60614 -253 253 253 253 253 253 253 253 253 253 253 253
60615 -253 253 253 253 253 253 253 253 253 253 253 253
60616 -253 253 253 253 253 253 253 253 253 253 253 253
60617 -253 253 253 253 253 253 253 253 253 253 253 253
60618 -253 253 253 246 246 246 46 46 46 38 38 38
60619 - 42 42 42 14 14 14 38 38 38 14 14 14
60620 - 2 2 6 2 2 6 2 2 6 6 6 6
60621 - 86 86 86 46 46 46 14 14 14 0 0 0
60622 - 0 0 0 0 0 0 0 0 0 0 0 0
60623 - 0 0 0 0 0 0 0 0 0 0 0 0
60624 - 0 0 0 0 0 0 0 0 0 0 0 0
60625 - 0 0 0 0 0 0 0 0 0 0 0 0
60626 - 0 0 0 0 0 0 0 0 0 0 0 0
60627 - 0 0 0 0 0 0 0 0 0 0 0 0
60628 - 0 0 0 0 0 0 0 0 0 0 0 0
60629 - 0 0 0 6 6 6 14 14 14 42 42 42
60630 - 90 90 90 18 18 18 18 18 18 26 26 26
60631 - 2 2 6 116 116 116 253 253 253 253 253 253
60632 -253 253 253 253 253 253 253 253 253 253 253 253
60633 -253 253 253 253 253 253 250 250 250 238 238 238
60634 -253 253 253 253 253 253 253 253 253 253 253 253
60635 -253 253 253 253 253 253 253 253 253 253 253 253
60636 -253 253 253 253 253 253 253 253 253 253 253 253
60637 -253 253 253 253 253 253 253 253 253 253 253 253
60638 -253 253 253 253 253 253 94 94 94 6 6 6
60639 - 2 2 6 2 2 6 10 10 10 34 34 34
60640 - 2 2 6 2 2 6 2 2 6 2 2 6
60641 - 74 74 74 58 58 58 22 22 22 6 6 6
60642 - 0 0 0 0 0 0 0 0 0 0 0 0
60643 - 0 0 0 0 0 0 0 0 0 0 0 0
60644 - 0 0 0 0 0 0 0 0 0 0 0 0
60645 - 0 0 0 0 0 0 0 0 0 0 0 0
60646 - 0 0 0 0 0 0 0 0 0 0 0 0
60647 - 0 0 0 0 0 0 0 0 0 0 0 0
60648 - 0 0 0 0 0 0 0 0 0 0 0 0
60649 - 0 0 0 10 10 10 26 26 26 66 66 66
60650 - 82 82 82 2 2 6 38 38 38 6 6 6
60651 - 14 14 14 210 210 210 253 253 253 253 253 253
60652 -253 253 253 253 253 253 253 253 253 253 253 253
60653 -253 253 253 253 253 253 246 246 246 242 242 242
60654 -253 253 253 253 253 253 253 253 253 253 253 253
60655 -253 253 253 253 253 253 253 253 253 253 253 253
60656 -253 253 253 253 253 253 253 253 253 253 253 253
60657 -253 253 253 253 253 253 253 253 253 253 253 253
60658 -253 253 253 253 253 253 144 144 144 2 2 6
60659 - 2 2 6 2 2 6 2 2 6 46 46 46
60660 - 2 2 6 2 2 6 2 2 6 2 2 6
60661 - 42 42 42 74 74 74 30 30 30 10 10 10
60662 - 0 0 0 0 0 0 0 0 0 0 0 0
60663 - 0 0 0 0 0 0 0 0 0 0 0 0
60664 - 0 0 0 0 0 0 0 0 0 0 0 0
60665 - 0 0 0 0 0 0 0 0 0 0 0 0
60666 - 0 0 0 0 0 0 0 0 0 0 0 0
60667 - 0 0 0 0 0 0 0 0 0 0 0 0
60668 - 0 0 0 0 0 0 0 0 0 0 0 0
60669 - 6 6 6 14 14 14 42 42 42 90 90 90
60670 - 26 26 26 6 6 6 42 42 42 2 2 6
60671 - 74 74 74 250 250 250 253 253 253 253 253 253
60672 -253 253 253 253 253 253 253 253 253 253 253 253
60673 -253 253 253 253 253 253 242 242 242 242 242 242
60674 -253 253 253 253 253 253 253 253 253 253 253 253
60675 -253 253 253 253 253 253 253 253 253 253 253 253
60676 -253 253 253 253 253 253 253 253 253 253 253 253
60677 -253 253 253 253 253 253 253 253 253 253 253 253
60678 -253 253 253 253 253 253 182 182 182 2 2 6
60679 - 2 2 6 2 2 6 2 2 6 46 46 46
60680 - 2 2 6 2 2 6 2 2 6 2 2 6
60681 - 10 10 10 86 86 86 38 38 38 10 10 10
60682 - 0 0 0 0 0 0 0 0 0 0 0 0
60683 - 0 0 0 0 0 0 0 0 0 0 0 0
60684 - 0 0 0 0 0 0 0 0 0 0 0 0
60685 - 0 0 0 0 0 0 0 0 0 0 0 0
60686 - 0 0 0 0 0 0 0 0 0 0 0 0
60687 - 0 0 0 0 0 0 0 0 0 0 0 0
60688 - 0 0 0 0 0 0 0 0 0 0 0 0
60689 - 10 10 10 26 26 26 66 66 66 82 82 82
60690 - 2 2 6 22 22 22 18 18 18 2 2 6
60691 -149 149 149 253 253 253 253 253 253 253 253 253
60692 -253 253 253 253 253 253 253 253 253 253 253 253
60693 -253 253 253 253 253 253 234 234 234 242 242 242
60694 -253 253 253 253 253 253 253 253 253 253 253 253
60695 -253 253 253 253 253 253 253 253 253 253 253 253
60696 -253 253 253 253 253 253 253 253 253 253 253 253
60697 -253 253 253 253 253 253 253 253 253 253 253 253
60698 -253 253 253 253 253 253 206 206 206 2 2 6
60699 - 2 2 6 2 2 6 2 2 6 38 38 38
60700 - 2 2 6 2 2 6 2 2 6 2 2 6
60701 - 6 6 6 86 86 86 46 46 46 14 14 14
60702 - 0 0 0 0 0 0 0 0 0 0 0 0
60703 - 0 0 0 0 0 0 0 0 0 0 0 0
60704 - 0 0 0 0 0 0 0 0 0 0 0 0
60705 - 0 0 0 0 0 0 0 0 0 0 0 0
60706 - 0 0 0 0 0 0 0 0 0 0 0 0
60707 - 0 0 0 0 0 0 0 0 0 0 0 0
60708 - 0 0 0 0 0 0 0 0 0 6 6 6
60709 - 18 18 18 46 46 46 86 86 86 18 18 18
60710 - 2 2 6 34 34 34 10 10 10 6 6 6
60711 -210 210 210 253 253 253 253 253 253 253 253 253
60712 -253 253 253 253 253 253 253 253 253 253 253 253
60713 -253 253 253 253 253 253 234 234 234 242 242 242
60714 -253 253 253 253 253 253 253 253 253 253 253 253
60715 -253 253 253 253 253 253 253 253 253 253 253 253
60716 -253 253 253 253 253 253 253 253 253 253 253 253
60717 -253 253 253 253 253 253 253 253 253 253 253 253
60718 -253 253 253 253 253 253 221 221 221 6 6 6
60719 - 2 2 6 2 2 6 6 6 6 30 30 30
60720 - 2 2 6 2 2 6 2 2 6 2 2 6
60721 - 2 2 6 82 82 82 54 54 54 18 18 18
60722 - 6 6 6 0 0 0 0 0 0 0 0 0
60723 - 0 0 0 0 0 0 0 0 0 0 0 0
60724 - 0 0 0 0 0 0 0 0 0 0 0 0
60725 - 0 0 0 0 0 0 0 0 0 0 0 0
60726 - 0 0 0 0 0 0 0 0 0 0 0 0
60727 - 0 0 0 0 0 0 0 0 0 0 0 0
60728 - 0 0 0 0 0 0 0 0 0 10 10 10
60729 - 26 26 26 66 66 66 62 62 62 2 2 6
60730 - 2 2 6 38 38 38 10 10 10 26 26 26
60731 -238 238 238 253 253 253 253 253 253 253 253 253
60732 -253 253 253 253 253 253 253 253 253 253 253 253
60733 -253 253 253 253 253 253 231 231 231 238 238 238
60734 -253 253 253 253 253 253 253 253 253 253 253 253
60735 -253 253 253 253 253 253 253 253 253 253 253 253
60736 -253 253 253 253 253 253 253 253 253 253 253 253
60737 -253 253 253 253 253 253 253 253 253 253 253 253
60738 -253 253 253 253 253 253 231 231 231 6 6 6
60739 - 2 2 6 2 2 6 10 10 10 30 30 30
60740 - 2 2 6 2 2 6 2 2 6 2 2 6
60741 - 2 2 6 66 66 66 58 58 58 22 22 22
60742 - 6 6 6 0 0 0 0 0 0 0 0 0
60743 - 0 0 0 0 0 0 0 0 0 0 0 0
60744 - 0 0 0 0 0 0 0 0 0 0 0 0
60745 - 0 0 0 0 0 0 0 0 0 0 0 0
60746 - 0 0 0 0 0 0 0 0 0 0 0 0
60747 - 0 0 0 0 0 0 0 0 0 0 0 0
60748 - 0 0 0 0 0 0 0 0 0 10 10 10
60749 - 38 38 38 78 78 78 6 6 6 2 2 6
60750 - 2 2 6 46 46 46 14 14 14 42 42 42
60751 -246 246 246 253 253 253 253 253 253 253 253 253
60752 -253 253 253 253 253 253 253 253 253 253 253 253
60753 -253 253 253 253 253 253 231 231 231 242 242 242
60754 -253 253 253 253 253 253 253 253 253 253 253 253
60755 -253 253 253 253 253 253 253 253 253 253 253 253
60756 -253 253 253 253 253 253 253 253 253 253 253 253
60757 -253 253 253 253 253 253 253 253 253 253 253 253
60758 -253 253 253 253 253 253 234 234 234 10 10 10
60759 - 2 2 6 2 2 6 22 22 22 14 14 14
60760 - 2 2 6 2 2 6 2 2 6 2 2 6
60761 - 2 2 6 66 66 66 62 62 62 22 22 22
60762 - 6 6 6 0 0 0 0 0 0 0 0 0
60763 - 0 0 0 0 0 0 0 0 0 0 0 0
60764 - 0 0 0 0 0 0 0 0 0 0 0 0
60765 - 0 0 0 0 0 0 0 0 0 0 0 0
60766 - 0 0 0 0 0 0 0 0 0 0 0 0
60767 - 0 0 0 0 0 0 0 0 0 0 0 0
60768 - 0 0 0 0 0 0 6 6 6 18 18 18
60769 - 50 50 50 74 74 74 2 2 6 2 2 6
60770 - 14 14 14 70 70 70 34 34 34 62 62 62
60771 -250 250 250 253 253 253 253 253 253 253 253 253
60772 -253 253 253 253 253 253 253 253 253 253 253 253
60773 -253 253 253 253 253 253 231 231 231 246 246 246
60774 -253 253 253 253 253 253 253 253 253 253 253 253
60775 -253 253 253 253 253 253 253 253 253 253 253 253
60776 -253 253 253 253 253 253 253 253 253 253 253 253
60777 -253 253 253 253 253 253 253 253 253 253 253 253
60778 -253 253 253 253 253 253 234 234 234 14 14 14
60779 - 2 2 6 2 2 6 30 30 30 2 2 6
60780 - 2 2 6 2 2 6 2 2 6 2 2 6
60781 - 2 2 6 66 66 66 62 62 62 22 22 22
60782 - 6 6 6 0 0 0 0 0 0 0 0 0
60783 - 0 0 0 0 0 0 0 0 0 0 0 0
60784 - 0 0 0 0 0 0 0 0 0 0 0 0
60785 - 0 0 0 0 0 0 0 0 0 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 6 6 6 18 18 18
60789 - 54 54 54 62 62 62 2 2 6 2 2 6
60790 - 2 2 6 30 30 30 46 46 46 70 70 70
60791 -250 250 250 253 253 253 253 253 253 253 253 253
60792 -253 253 253 253 253 253 253 253 253 253 253 253
60793 -253 253 253 253 253 253 231 231 231 246 246 246
60794 -253 253 253 253 253 253 253 253 253 253 253 253
60795 -253 253 253 253 253 253 253 253 253 253 253 253
60796 -253 253 253 253 253 253 253 253 253 253 253 253
60797 -253 253 253 253 253 253 253 253 253 253 253 253
60798 -253 253 253 253 253 253 226 226 226 10 10 10
60799 - 2 2 6 6 6 6 30 30 30 2 2 6
60800 - 2 2 6 2 2 6 2 2 6 2 2 6
60801 - 2 2 6 66 66 66 58 58 58 22 22 22
60802 - 6 6 6 0 0 0 0 0 0 0 0 0
60803 - 0 0 0 0 0 0 0 0 0 0 0 0
60804 - 0 0 0 0 0 0 0 0 0 0 0 0
60805 - 0 0 0 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 6 6 6 22 22 22
60809 - 58 58 58 62 62 62 2 2 6 2 2 6
60810 - 2 2 6 2 2 6 30 30 30 78 78 78
60811 -250 250 250 253 253 253 253 253 253 253 253 253
60812 -253 253 253 253 253 253 253 253 253 253 253 253
60813 -253 253 253 253 253 253 231 231 231 246 246 246
60814 -253 253 253 253 253 253 253 253 253 253 253 253
60815 -253 253 253 253 253 253 253 253 253 253 253 253
60816 -253 253 253 253 253 253 253 253 253 253 253 253
60817 -253 253 253 253 253 253 253 253 253 253 253 253
60818 -253 253 253 253 253 253 206 206 206 2 2 6
60819 - 22 22 22 34 34 34 18 14 6 22 22 22
60820 - 26 26 26 18 18 18 6 6 6 2 2 6
60821 - 2 2 6 82 82 82 54 54 54 18 18 18
60822 - 6 6 6 0 0 0 0 0 0 0 0 0
60823 - 0 0 0 0 0 0 0 0 0 0 0 0
60824 - 0 0 0 0 0 0 0 0 0 0 0 0
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 6 6 6 26 26 26
60829 - 62 62 62 106 106 106 74 54 14 185 133 11
60830 -210 162 10 121 92 8 6 6 6 62 62 62
60831 -238 238 238 253 253 253 253 253 253 253 253 253
60832 -253 253 253 253 253 253 253 253 253 253 253 253
60833 -253 253 253 253 253 253 231 231 231 246 246 246
60834 -253 253 253 253 253 253 253 253 253 253 253 253
60835 -253 253 253 253 253 253 253 253 253 253 253 253
60836 -253 253 253 253 253 253 253 253 253 253 253 253
60837 -253 253 253 253 253 253 253 253 253 253 253 253
60838 -253 253 253 253 253 253 158 158 158 18 18 18
60839 - 14 14 14 2 2 6 2 2 6 2 2 6
60840 - 6 6 6 18 18 18 66 66 66 38 38 38
60841 - 6 6 6 94 94 94 50 50 50 18 18 18
60842 - 6 6 6 0 0 0 0 0 0 0 0 0
60843 - 0 0 0 0 0 0 0 0 0 0 0 0
60844 - 0 0 0 0 0 0 0 0 0 0 0 0
60845 - 0 0 0 0 0 0 0 0 0 0 0 0
60846 - 0 0 0 0 0 0 0 0 0 0 0 0
60847 - 0 0 0 0 0 0 0 0 0 6 6 6
60848 - 10 10 10 10 10 10 18 18 18 38 38 38
60849 - 78 78 78 142 134 106 216 158 10 242 186 14
60850 -246 190 14 246 190 14 156 118 10 10 10 10
60851 - 90 90 90 238 238 238 253 253 253 253 253 253
60852 -253 253 253 253 253 253 253 253 253 253 253 253
60853 -253 253 253 253 253 253 231 231 231 250 250 250
60854 -253 253 253 253 253 253 253 253 253 253 253 253
60855 -253 253 253 253 253 253 253 253 253 253 253 253
60856 -253 253 253 253 253 253 253 253 253 253 253 253
60857 -253 253 253 253 253 253 253 253 253 246 230 190
60858 -238 204 91 238 204 91 181 142 44 37 26 9
60859 - 2 2 6 2 2 6 2 2 6 2 2 6
60860 - 2 2 6 2 2 6 38 38 38 46 46 46
60861 - 26 26 26 106 106 106 54 54 54 18 18 18
60862 - 6 6 6 0 0 0 0 0 0 0 0 0
60863 - 0 0 0 0 0 0 0 0 0 0 0 0
60864 - 0 0 0 0 0 0 0 0 0 0 0 0
60865 - 0 0 0 0 0 0 0 0 0 0 0 0
60866 - 0 0 0 0 0 0 0 0 0 0 0 0
60867 - 0 0 0 6 6 6 14 14 14 22 22 22
60868 - 30 30 30 38 38 38 50 50 50 70 70 70
60869 -106 106 106 190 142 34 226 170 11 242 186 14
60870 -246 190 14 246 190 14 246 190 14 154 114 10
60871 - 6 6 6 74 74 74 226 226 226 253 253 253
60872 -253 253 253 253 253 253 253 253 253 253 253 253
60873 -253 253 253 253 253 253 231 231 231 250 250 250
60874 -253 253 253 253 253 253 253 253 253 253 253 253
60875 -253 253 253 253 253 253 253 253 253 253 253 253
60876 -253 253 253 253 253 253 253 253 253 253 253 253
60877 -253 253 253 253 253 253 253 253 253 228 184 62
60878 -241 196 14 241 208 19 232 195 16 38 30 10
60879 - 2 2 6 2 2 6 2 2 6 2 2 6
60880 - 2 2 6 6 6 6 30 30 30 26 26 26
60881 -203 166 17 154 142 90 66 66 66 26 26 26
60882 - 6 6 6 0 0 0 0 0 0 0 0 0
60883 - 0 0 0 0 0 0 0 0 0 0 0 0
60884 - 0 0 0 0 0 0 0 0 0 0 0 0
60885 - 0 0 0 0 0 0 0 0 0 0 0 0
60886 - 0 0 0 0 0 0 0 0 0 0 0 0
60887 - 6 6 6 18 18 18 38 38 38 58 58 58
60888 - 78 78 78 86 86 86 101 101 101 123 123 123
60889 -175 146 61 210 150 10 234 174 13 246 186 14
60890 -246 190 14 246 190 14 246 190 14 238 190 10
60891 -102 78 10 2 2 6 46 46 46 198 198 198
60892 -253 253 253 253 253 253 253 253 253 253 253 253
60893 -253 253 253 253 253 253 234 234 234 242 242 242
60894 -253 253 253 253 253 253 253 253 253 253 253 253
60895 -253 253 253 253 253 253 253 253 253 253 253 253
60896 -253 253 253 253 253 253 253 253 253 253 253 253
60897 -253 253 253 253 253 253 253 253 253 224 178 62
60898 -242 186 14 241 196 14 210 166 10 22 18 6
60899 - 2 2 6 2 2 6 2 2 6 2 2 6
60900 - 2 2 6 2 2 6 6 6 6 121 92 8
60901 -238 202 15 232 195 16 82 82 82 34 34 34
60902 - 10 10 10 0 0 0 0 0 0 0 0 0
60903 - 0 0 0 0 0 0 0 0 0 0 0 0
60904 - 0 0 0 0 0 0 0 0 0 0 0 0
60905 - 0 0 0 0 0 0 0 0 0 0 0 0
60906 - 0 0 0 0 0 0 0 0 0 0 0 0
60907 - 14 14 14 38 38 38 70 70 70 154 122 46
60908 -190 142 34 200 144 11 197 138 11 197 138 11
60909 -213 154 11 226 170 11 242 186 14 246 190 14
60910 -246 190 14 246 190 14 246 190 14 246 190 14
60911 -225 175 15 46 32 6 2 2 6 22 22 22
60912 -158 158 158 250 250 250 253 253 253 253 253 253
60913 -253 253 253 253 253 253 253 253 253 253 253 253
60914 -253 253 253 253 253 253 253 253 253 253 253 253
60915 -253 253 253 253 253 253 253 253 253 253 253 253
60916 -253 253 253 253 253 253 253 253 253 253 253 253
60917 -253 253 253 250 250 250 242 242 242 224 178 62
60918 -239 182 13 236 186 11 213 154 11 46 32 6
60919 - 2 2 6 2 2 6 2 2 6 2 2 6
60920 - 2 2 6 2 2 6 61 42 6 225 175 15
60921 -238 190 10 236 186 11 112 100 78 42 42 42
60922 - 14 14 14 0 0 0 0 0 0 0 0 0
60923 - 0 0 0 0 0 0 0 0 0 0 0 0
60924 - 0 0 0 0 0 0 0 0 0 0 0 0
60925 - 0 0 0 0 0 0 0 0 0 0 0 0
60926 - 0 0 0 0 0 0 0 0 0 6 6 6
60927 - 22 22 22 54 54 54 154 122 46 213 154 11
60928 -226 170 11 230 174 11 226 170 11 226 170 11
60929 -236 178 12 242 186 14 246 190 14 246 190 14
60930 -246 190 14 246 190 14 246 190 14 246 190 14
60931 -241 196 14 184 144 12 10 10 10 2 2 6
60932 - 6 6 6 116 116 116 242 242 242 253 253 253
60933 -253 253 253 253 253 253 253 253 253 253 253 253
60934 -253 253 253 253 253 253 253 253 253 253 253 253
60935 -253 253 253 253 253 253 253 253 253 253 253 253
60936 -253 253 253 253 253 253 253 253 253 253 253 253
60937 -253 253 253 231 231 231 198 198 198 214 170 54
60938 -236 178 12 236 178 12 210 150 10 137 92 6
60939 - 18 14 6 2 2 6 2 2 6 2 2 6
60940 - 6 6 6 70 47 6 200 144 11 236 178 12
60941 -239 182 13 239 182 13 124 112 88 58 58 58
60942 - 22 22 22 6 6 6 0 0 0 0 0 0
60943 - 0 0 0 0 0 0 0 0 0 0 0 0
60944 - 0 0 0 0 0 0 0 0 0 0 0 0
60945 - 0 0 0 0 0 0 0 0 0 0 0 0
60946 - 0 0 0 0 0 0 0 0 0 10 10 10
60947 - 30 30 30 70 70 70 180 133 36 226 170 11
60948 -239 182 13 242 186 14 242 186 14 246 186 14
60949 -246 190 14 246 190 14 246 190 14 246 190 14
60950 -246 190 14 246 190 14 246 190 14 246 190 14
60951 -246 190 14 232 195 16 98 70 6 2 2 6
60952 - 2 2 6 2 2 6 66 66 66 221 221 221
60953 -253 253 253 253 253 253 253 253 253 253 253 253
60954 -253 253 253 253 253 253 253 253 253 253 253 253
60955 -253 253 253 253 253 253 253 253 253 253 253 253
60956 -253 253 253 253 253 253 253 253 253 253 253 253
60957 -253 253 253 206 206 206 198 198 198 214 166 58
60958 -230 174 11 230 174 11 216 158 10 192 133 9
60959 -163 110 8 116 81 8 102 78 10 116 81 8
60960 -167 114 7 197 138 11 226 170 11 239 182 13
60961 -242 186 14 242 186 14 162 146 94 78 78 78
60962 - 34 34 34 14 14 14 6 6 6 0 0 0
60963 - 0 0 0 0 0 0 0 0 0 0 0 0
60964 - 0 0 0 0 0 0 0 0 0 0 0 0
60965 - 0 0 0 0 0 0 0 0 0 0 0 0
60966 - 0 0 0 0 0 0 0 0 0 6 6 6
60967 - 30 30 30 78 78 78 190 142 34 226 170 11
60968 -239 182 13 246 190 14 246 190 14 246 190 14
60969 -246 190 14 246 190 14 246 190 14 246 190 14
60970 -246 190 14 246 190 14 246 190 14 246 190 14
60971 -246 190 14 241 196 14 203 166 17 22 18 6
60972 - 2 2 6 2 2 6 2 2 6 38 38 38
60973 -218 218 218 253 253 253 253 253 253 253 253 253
60974 -253 253 253 253 253 253 253 253 253 253 253 253
60975 -253 253 253 253 253 253 253 253 253 253 253 253
60976 -253 253 253 253 253 253 253 253 253 253 253 253
60977 -250 250 250 206 206 206 198 198 198 202 162 69
60978 -226 170 11 236 178 12 224 166 10 210 150 10
60979 -200 144 11 197 138 11 192 133 9 197 138 11
60980 -210 150 10 226 170 11 242 186 14 246 190 14
60981 -246 190 14 246 186 14 225 175 15 124 112 88
60982 - 62 62 62 30 30 30 14 14 14 6 6 6
60983 - 0 0 0 0 0 0 0 0 0 0 0 0
60984 - 0 0 0 0 0 0 0 0 0 0 0 0
60985 - 0 0 0 0 0 0 0 0 0 0 0 0
60986 - 0 0 0 0 0 0 0 0 0 10 10 10
60987 - 30 30 30 78 78 78 174 135 50 224 166 10
60988 -239 182 13 246 190 14 246 190 14 246 190 14
60989 -246 190 14 246 190 14 246 190 14 246 190 14
60990 -246 190 14 246 190 14 246 190 14 246 190 14
60991 -246 190 14 246 190 14 241 196 14 139 102 15
60992 - 2 2 6 2 2 6 2 2 6 2 2 6
60993 - 78 78 78 250 250 250 253 253 253 253 253 253
60994 -253 253 253 253 253 253 253 253 253 253 253 253
60995 -253 253 253 253 253 253 253 253 253 253 253 253
60996 -253 253 253 253 253 253 253 253 253 253 253 253
60997 -250 250 250 214 214 214 198 198 198 190 150 46
60998 -219 162 10 236 178 12 234 174 13 224 166 10
60999 -216 158 10 213 154 11 213 154 11 216 158 10
61000 -226 170 11 239 182 13 246 190 14 246 190 14
61001 -246 190 14 246 190 14 242 186 14 206 162 42
61002 -101 101 101 58 58 58 30 30 30 14 14 14
61003 - 6 6 6 0 0 0 0 0 0 0 0 0
61004 - 0 0 0 0 0 0 0 0 0 0 0 0
61005 - 0 0 0 0 0 0 0 0 0 0 0 0
61006 - 0 0 0 0 0 0 0 0 0 10 10 10
61007 - 30 30 30 74 74 74 174 135 50 216 158 10
61008 -236 178 12 246 190 14 246 190 14 246 190 14
61009 -246 190 14 246 190 14 246 190 14 246 190 14
61010 -246 190 14 246 190 14 246 190 14 246 190 14
61011 -246 190 14 246 190 14 241 196 14 226 184 13
61012 - 61 42 6 2 2 6 2 2 6 2 2 6
61013 - 22 22 22 238 238 238 253 253 253 253 253 253
61014 -253 253 253 253 253 253 253 253 253 253 253 253
61015 -253 253 253 253 253 253 253 253 253 253 253 253
61016 -253 253 253 253 253 253 253 253 253 253 253 253
61017 -253 253 253 226 226 226 187 187 187 180 133 36
61018 -216 158 10 236 178 12 239 182 13 236 178 12
61019 -230 174 11 226 170 11 226 170 11 230 174 11
61020 -236 178 12 242 186 14 246 190 14 246 190 14
61021 -246 190 14 246 190 14 246 186 14 239 182 13
61022 -206 162 42 106 106 106 66 66 66 34 34 34
61023 - 14 14 14 6 6 6 0 0 0 0 0 0
61024 - 0 0 0 0 0 0 0 0 0 0 0 0
61025 - 0 0 0 0 0 0 0 0 0 0 0 0
61026 - 0 0 0 0 0 0 0 0 0 6 6 6
61027 - 26 26 26 70 70 70 163 133 67 213 154 11
61028 -236 178 12 246 190 14 246 190 14 246 190 14
61029 -246 190 14 246 190 14 246 190 14 246 190 14
61030 -246 190 14 246 190 14 246 190 14 246 190 14
61031 -246 190 14 246 190 14 246 190 14 241 196 14
61032 -190 146 13 18 14 6 2 2 6 2 2 6
61033 - 46 46 46 246 246 246 253 253 253 253 253 253
61034 -253 253 253 253 253 253 253 253 253 253 253 253
61035 -253 253 253 253 253 253 253 253 253 253 253 253
61036 -253 253 253 253 253 253 253 253 253 253 253 253
61037 -253 253 253 221 221 221 86 86 86 156 107 11
61038 -216 158 10 236 178 12 242 186 14 246 186 14
61039 -242 186 14 239 182 13 239 182 13 242 186 14
61040 -242 186 14 246 186 14 246 190 14 246 190 14
61041 -246 190 14 246 190 14 246 190 14 246 190 14
61042 -242 186 14 225 175 15 142 122 72 66 66 66
61043 - 30 30 30 10 10 10 0 0 0 0 0 0
61044 - 0 0 0 0 0 0 0 0 0 0 0 0
61045 - 0 0 0 0 0 0 0 0 0 0 0 0
61046 - 0 0 0 0 0 0 0 0 0 6 6 6
61047 - 26 26 26 70 70 70 163 133 67 210 150 10
61048 -236 178 12 246 190 14 246 190 14 246 190 14
61049 -246 190 14 246 190 14 246 190 14 246 190 14
61050 -246 190 14 246 190 14 246 190 14 246 190 14
61051 -246 190 14 246 190 14 246 190 14 246 190 14
61052 -232 195 16 121 92 8 34 34 34 106 106 106
61053 -221 221 221 253 253 253 253 253 253 253 253 253
61054 -253 253 253 253 253 253 253 253 253 253 253 253
61055 -253 253 253 253 253 253 253 253 253 253 253 253
61056 -253 253 253 253 253 253 253 253 253 253 253 253
61057 -242 242 242 82 82 82 18 14 6 163 110 8
61058 -216 158 10 236 178 12 242 186 14 246 190 14
61059 -246 190 14 246 190 14 246 190 14 246 190 14
61060 -246 190 14 246 190 14 246 190 14 246 190 14
61061 -246 190 14 246 190 14 246 190 14 246 190 14
61062 -246 190 14 246 190 14 242 186 14 163 133 67
61063 - 46 46 46 18 18 18 6 6 6 0 0 0
61064 - 0 0 0 0 0 0 0 0 0 0 0 0
61065 - 0 0 0 0 0 0 0 0 0 0 0 0
61066 - 0 0 0 0 0 0 0 0 0 10 10 10
61067 - 30 30 30 78 78 78 163 133 67 210 150 10
61068 -236 178 12 246 186 14 246 190 14 246 190 14
61069 -246 190 14 246 190 14 246 190 14 246 190 14
61070 -246 190 14 246 190 14 246 190 14 246 190 14
61071 -246 190 14 246 190 14 246 190 14 246 190 14
61072 -241 196 14 215 174 15 190 178 144 253 253 253
61073 -253 253 253 253 253 253 253 253 253 253 253 253
61074 -253 253 253 253 253 253 253 253 253 253 253 253
61075 -253 253 253 253 253 253 253 253 253 253 253 253
61076 -253 253 253 253 253 253 253 253 253 218 218 218
61077 - 58 58 58 2 2 6 22 18 6 167 114 7
61078 -216 158 10 236 178 12 246 186 14 246 190 14
61079 -246 190 14 246 190 14 246 190 14 246 190 14
61080 -246 190 14 246 190 14 246 190 14 246 190 14
61081 -246 190 14 246 190 14 246 190 14 246 190 14
61082 -246 190 14 246 186 14 242 186 14 190 150 46
61083 - 54 54 54 22 22 22 6 6 6 0 0 0
61084 - 0 0 0 0 0 0 0 0 0 0 0 0
61085 - 0 0 0 0 0 0 0 0 0 0 0 0
61086 - 0 0 0 0 0 0 0 0 0 14 14 14
61087 - 38 38 38 86 86 86 180 133 36 213 154 11
61088 -236 178 12 246 186 14 246 190 14 246 190 14
61089 -246 190 14 246 190 14 246 190 14 246 190 14
61090 -246 190 14 246 190 14 246 190 14 246 190 14
61091 -246 190 14 246 190 14 246 190 14 246 190 14
61092 -246 190 14 232 195 16 190 146 13 214 214 214
61093 -253 253 253 253 253 253 253 253 253 253 253 253
61094 -253 253 253 253 253 253 253 253 253 253 253 253
61095 -253 253 253 253 253 253 253 253 253 253 253 253
61096 -253 253 253 250 250 250 170 170 170 26 26 26
61097 - 2 2 6 2 2 6 37 26 9 163 110 8
61098 -219 162 10 239 182 13 246 186 14 246 190 14
61099 -246 190 14 246 190 14 246 190 14 246 190 14
61100 -246 190 14 246 190 14 246 190 14 246 190 14
61101 -246 190 14 246 190 14 246 190 14 246 190 14
61102 -246 186 14 236 178 12 224 166 10 142 122 72
61103 - 46 46 46 18 18 18 6 6 6 0 0 0
61104 - 0 0 0 0 0 0 0 0 0 0 0 0
61105 - 0 0 0 0 0 0 0 0 0 0 0 0
61106 - 0 0 0 0 0 0 6 6 6 18 18 18
61107 - 50 50 50 109 106 95 192 133 9 224 166 10
61108 -242 186 14 246 190 14 246 190 14 246 190 14
61109 -246 190 14 246 190 14 246 190 14 246 190 14
61110 -246 190 14 246 190 14 246 190 14 246 190 14
61111 -246 190 14 246 190 14 246 190 14 246 190 14
61112 -242 186 14 226 184 13 210 162 10 142 110 46
61113 -226 226 226 253 253 253 253 253 253 253 253 253
61114 -253 253 253 253 253 253 253 253 253 253 253 253
61115 -253 253 253 253 253 253 253 253 253 253 253 253
61116 -198 198 198 66 66 66 2 2 6 2 2 6
61117 - 2 2 6 2 2 6 50 34 6 156 107 11
61118 -219 162 10 239 182 13 246 186 14 246 190 14
61119 -246 190 14 246 190 14 246 190 14 246 190 14
61120 -246 190 14 246 190 14 246 190 14 246 190 14
61121 -246 190 14 246 190 14 246 190 14 242 186 14
61122 -234 174 13 213 154 11 154 122 46 66 66 66
61123 - 30 30 30 10 10 10 0 0 0 0 0 0
61124 - 0 0 0 0 0 0 0 0 0 0 0 0
61125 - 0 0 0 0 0 0 0 0 0 0 0 0
61126 - 0 0 0 0 0 0 6 6 6 22 22 22
61127 - 58 58 58 154 121 60 206 145 10 234 174 13
61128 -242 186 14 246 186 14 246 190 14 246 190 14
61129 -246 190 14 246 190 14 246 190 14 246 190 14
61130 -246 190 14 246 190 14 246 190 14 246 190 14
61131 -246 190 14 246 190 14 246 190 14 246 190 14
61132 -246 186 14 236 178 12 210 162 10 163 110 8
61133 - 61 42 6 138 138 138 218 218 218 250 250 250
61134 -253 253 253 253 253 253 253 253 253 250 250 250
61135 -242 242 242 210 210 210 144 144 144 66 66 66
61136 - 6 6 6 2 2 6 2 2 6 2 2 6
61137 - 2 2 6 2 2 6 61 42 6 163 110 8
61138 -216 158 10 236 178 12 246 190 14 246 190 14
61139 -246 190 14 246 190 14 246 190 14 246 190 14
61140 -246 190 14 246 190 14 246 190 14 246 190 14
61141 -246 190 14 239 182 13 230 174 11 216 158 10
61142 -190 142 34 124 112 88 70 70 70 38 38 38
61143 - 18 18 18 6 6 6 0 0 0 0 0 0
61144 - 0 0 0 0 0 0 0 0 0 0 0 0
61145 - 0 0 0 0 0 0 0 0 0 0 0 0
61146 - 0 0 0 0 0 0 6 6 6 22 22 22
61147 - 62 62 62 168 124 44 206 145 10 224 166 10
61148 -236 178 12 239 182 13 242 186 14 242 186 14
61149 -246 186 14 246 190 14 246 190 14 246 190 14
61150 -246 190 14 246 190 14 246 190 14 246 190 14
61151 -246 190 14 246 190 14 246 190 14 246 190 14
61152 -246 190 14 236 178 12 216 158 10 175 118 6
61153 - 80 54 7 2 2 6 6 6 6 30 30 30
61154 - 54 54 54 62 62 62 50 50 50 38 38 38
61155 - 14 14 14 2 2 6 2 2 6 2 2 6
61156 - 2 2 6 2 2 6 2 2 6 2 2 6
61157 - 2 2 6 6 6 6 80 54 7 167 114 7
61158 -213 154 11 236 178 12 246 190 14 246 190 14
61159 -246 190 14 246 190 14 246 190 14 246 190 14
61160 -246 190 14 242 186 14 239 182 13 239 182 13
61161 -230 174 11 210 150 10 174 135 50 124 112 88
61162 - 82 82 82 54 54 54 34 34 34 18 18 18
61163 - 6 6 6 0 0 0 0 0 0 0 0 0
61164 - 0 0 0 0 0 0 0 0 0 0 0 0
61165 - 0 0 0 0 0 0 0 0 0 0 0 0
61166 - 0 0 0 0 0 0 6 6 6 18 18 18
61167 - 50 50 50 158 118 36 192 133 9 200 144 11
61168 -216 158 10 219 162 10 224 166 10 226 170 11
61169 -230 174 11 236 178 12 239 182 13 239 182 13
61170 -242 186 14 246 186 14 246 190 14 246 190 14
61171 -246 190 14 246 190 14 246 190 14 246 190 14
61172 -246 186 14 230 174 11 210 150 10 163 110 8
61173 -104 69 6 10 10 10 2 2 6 2 2 6
61174 - 2 2 6 2 2 6 2 2 6 2 2 6
61175 - 2 2 6 2 2 6 2 2 6 2 2 6
61176 - 2 2 6 2 2 6 2 2 6 2 2 6
61177 - 2 2 6 6 6 6 91 60 6 167 114 7
61178 -206 145 10 230 174 11 242 186 14 246 190 14
61179 -246 190 14 246 190 14 246 186 14 242 186 14
61180 -239 182 13 230 174 11 224 166 10 213 154 11
61181 -180 133 36 124 112 88 86 86 86 58 58 58
61182 - 38 38 38 22 22 22 10 10 10 6 6 6
61183 - 0 0 0 0 0 0 0 0 0 0 0 0
61184 - 0 0 0 0 0 0 0 0 0 0 0 0
61185 - 0 0 0 0 0 0 0 0 0 0 0 0
61186 - 0 0 0 0 0 0 0 0 0 14 14 14
61187 - 34 34 34 70 70 70 138 110 50 158 118 36
61188 -167 114 7 180 123 7 192 133 9 197 138 11
61189 -200 144 11 206 145 10 213 154 11 219 162 10
61190 -224 166 10 230 174 11 239 182 13 242 186 14
61191 -246 186 14 246 186 14 246 186 14 246 186 14
61192 -239 182 13 216 158 10 185 133 11 152 99 6
61193 -104 69 6 18 14 6 2 2 6 2 2 6
61194 - 2 2 6 2 2 6 2 2 6 2 2 6
61195 - 2 2 6 2 2 6 2 2 6 2 2 6
61196 - 2 2 6 2 2 6 2 2 6 2 2 6
61197 - 2 2 6 6 6 6 80 54 7 152 99 6
61198 -192 133 9 219 162 10 236 178 12 239 182 13
61199 -246 186 14 242 186 14 239 182 13 236 178 12
61200 -224 166 10 206 145 10 192 133 9 154 121 60
61201 - 94 94 94 62 62 62 42 42 42 22 22 22
61202 - 14 14 14 6 6 6 0 0 0 0 0 0
61203 - 0 0 0 0 0 0 0 0 0 0 0 0
61204 - 0 0 0 0 0 0 0 0 0 0 0 0
61205 - 0 0 0 0 0 0 0 0 0 0 0 0
61206 - 0 0 0 0 0 0 0 0 0 6 6 6
61207 - 18 18 18 34 34 34 58 58 58 78 78 78
61208 -101 98 89 124 112 88 142 110 46 156 107 11
61209 -163 110 8 167 114 7 175 118 6 180 123 7
61210 -185 133 11 197 138 11 210 150 10 219 162 10
61211 -226 170 11 236 178 12 236 178 12 234 174 13
61212 -219 162 10 197 138 11 163 110 8 130 83 6
61213 - 91 60 6 10 10 10 2 2 6 2 2 6
61214 - 18 18 18 38 38 38 38 38 38 38 38 38
61215 - 38 38 38 38 38 38 38 38 38 38 38 38
61216 - 38 38 38 38 38 38 26 26 26 2 2 6
61217 - 2 2 6 6 6 6 70 47 6 137 92 6
61218 -175 118 6 200 144 11 219 162 10 230 174 11
61219 -234 174 13 230 174 11 219 162 10 210 150 10
61220 -192 133 9 163 110 8 124 112 88 82 82 82
61221 - 50 50 50 30 30 30 14 14 14 6 6 6
61222 - 0 0 0 0 0 0 0 0 0 0 0 0
61223 - 0 0 0 0 0 0 0 0 0 0 0 0
61224 - 0 0 0 0 0 0 0 0 0 0 0 0
61225 - 0 0 0 0 0 0 0 0 0 0 0 0
61226 - 0 0 0 0 0 0 0 0 0 0 0 0
61227 - 6 6 6 14 14 14 22 22 22 34 34 34
61228 - 42 42 42 58 58 58 74 74 74 86 86 86
61229 -101 98 89 122 102 70 130 98 46 121 87 25
61230 -137 92 6 152 99 6 163 110 8 180 123 7
61231 -185 133 11 197 138 11 206 145 10 200 144 11
61232 -180 123 7 156 107 11 130 83 6 104 69 6
61233 - 50 34 6 54 54 54 110 110 110 101 98 89
61234 - 86 86 86 82 82 82 78 78 78 78 78 78
61235 - 78 78 78 78 78 78 78 78 78 78 78 78
61236 - 78 78 78 82 82 82 86 86 86 94 94 94
61237 -106 106 106 101 101 101 86 66 34 124 80 6
61238 -156 107 11 180 123 7 192 133 9 200 144 11
61239 -206 145 10 200 144 11 192 133 9 175 118 6
61240 -139 102 15 109 106 95 70 70 70 42 42 42
61241 - 22 22 22 10 10 10 0 0 0 0 0 0
61242 - 0 0 0 0 0 0 0 0 0 0 0 0
61243 - 0 0 0 0 0 0 0 0 0 0 0 0
61244 - 0 0 0 0 0 0 0 0 0 0 0 0
61245 - 0 0 0 0 0 0 0 0 0 0 0 0
61246 - 0 0 0 0 0 0 0 0 0 0 0 0
61247 - 0 0 0 0 0 0 6 6 6 10 10 10
61248 - 14 14 14 22 22 22 30 30 30 38 38 38
61249 - 50 50 50 62 62 62 74 74 74 90 90 90
61250 -101 98 89 112 100 78 121 87 25 124 80 6
61251 -137 92 6 152 99 6 152 99 6 152 99 6
61252 -138 86 6 124 80 6 98 70 6 86 66 30
61253 -101 98 89 82 82 82 58 58 58 46 46 46
61254 - 38 38 38 34 34 34 34 34 34 34 34 34
61255 - 34 34 34 34 34 34 34 34 34 34 34 34
61256 - 34 34 34 34 34 34 38 38 38 42 42 42
61257 - 54 54 54 82 82 82 94 86 76 91 60 6
61258 -134 86 6 156 107 11 167 114 7 175 118 6
61259 -175 118 6 167 114 7 152 99 6 121 87 25
61260 -101 98 89 62 62 62 34 34 34 18 18 18
61261 - 6 6 6 0 0 0 0 0 0 0 0 0
61262 - 0 0 0 0 0 0 0 0 0 0 0 0
61263 - 0 0 0 0 0 0 0 0 0 0 0 0
61264 - 0 0 0 0 0 0 0 0 0 0 0 0
61265 - 0 0 0 0 0 0 0 0 0 0 0 0
61266 - 0 0 0 0 0 0 0 0 0 0 0 0
61267 - 0 0 0 0 0 0 0 0 0 0 0 0
61268 - 0 0 0 6 6 6 6 6 6 10 10 10
61269 - 18 18 18 22 22 22 30 30 30 42 42 42
61270 - 50 50 50 66 66 66 86 86 86 101 98 89
61271 -106 86 58 98 70 6 104 69 6 104 69 6
61272 -104 69 6 91 60 6 82 62 34 90 90 90
61273 - 62 62 62 38 38 38 22 22 22 14 14 14
61274 - 10 10 10 10 10 10 10 10 10 10 10 10
61275 - 10 10 10 10 10 10 6 6 6 10 10 10
61276 - 10 10 10 10 10 10 10 10 10 14 14 14
61277 - 22 22 22 42 42 42 70 70 70 89 81 66
61278 - 80 54 7 104 69 6 124 80 6 137 92 6
61279 -134 86 6 116 81 8 100 82 52 86 86 86
61280 - 58 58 58 30 30 30 14 14 14 6 6 6
61281 - 0 0 0 0 0 0 0 0 0 0 0 0
61282 - 0 0 0 0 0 0 0 0 0 0 0 0
61283 - 0 0 0 0 0 0 0 0 0 0 0 0
61284 - 0 0 0 0 0 0 0 0 0 0 0 0
61285 - 0 0 0 0 0 0 0 0 0 0 0 0
61286 - 0 0 0 0 0 0 0 0 0 0 0 0
61287 - 0 0 0 0 0 0 0 0 0 0 0 0
61288 - 0 0 0 0 0 0 0 0 0 0 0 0
61289 - 0 0 0 6 6 6 10 10 10 14 14 14
61290 - 18 18 18 26 26 26 38 38 38 54 54 54
61291 - 70 70 70 86 86 86 94 86 76 89 81 66
61292 - 89 81 66 86 86 86 74 74 74 50 50 50
61293 - 30 30 30 14 14 14 6 6 6 0 0 0
61294 - 0 0 0 0 0 0 0 0 0 0 0 0
61295 - 0 0 0 0 0 0 0 0 0 0 0 0
61296 - 0 0 0 0 0 0 0 0 0 0 0 0
61297 - 6 6 6 18 18 18 34 34 34 58 58 58
61298 - 82 82 82 89 81 66 89 81 66 89 81 66
61299 - 94 86 66 94 86 76 74 74 74 50 50 50
61300 - 26 26 26 14 14 14 6 6 6 0 0 0
61301 - 0 0 0 0 0 0 0 0 0 0 0 0
61302 - 0 0 0 0 0 0 0 0 0 0 0 0
61303 - 0 0 0 0 0 0 0 0 0 0 0 0
61304 - 0 0 0 0 0 0 0 0 0 0 0 0
61305 - 0 0 0 0 0 0 0 0 0 0 0 0
61306 - 0 0 0 0 0 0 0 0 0 0 0 0
61307 - 0 0 0 0 0 0 0 0 0 0 0 0
61308 - 0 0 0 0 0 0 0 0 0 0 0 0
61309 - 0 0 0 0 0 0 0 0 0 0 0 0
61310 - 6 6 6 6 6 6 14 14 14 18 18 18
61311 - 30 30 30 38 38 38 46 46 46 54 54 54
61312 - 50 50 50 42 42 42 30 30 30 18 18 18
61313 - 10 10 10 0 0 0 0 0 0 0 0 0
61314 - 0 0 0 0 0 0 0 0 0 0 0 0
61315 - 0 0 0 0 0 0 0 0 0 0 0 0
61316 - 0 0 0 0 0 0 0 0 0 0 0 0
61317 - 0 0 0 6 6 6 14 14 14 26 26 26
61318 - 38 38 38 50 50 50 58 58 58 58 58 58
61319 - 54 54 54 42 42 42 30 30 30 18 18 18
61320 - 10 10 10 0 0 0 0 0 0 0 0 0
61321 - 0 0 0 0 0 0 0 0 0 0 0 0
61322 - 0 0 0 0 0 0 0 0 0 0 0 0
61323 - 0 0 0 0 0 0 0 0 0 0 0 0
61324 - 0 0 0 0 0 0 0 0 0 0 0 0
61325 - 0 0 0 0 0 0 0 0 0 0 0 0
61326 - 0 0 0 0 0 0 0 0 0 0 0 0
61327 - 0 0 0 0 0 0 0 0 0 0 0 0
61328 - 0 0 0 0 0 0 0 0 0 0 0 0
61329 - 0 0 0 0 0 0 0 0 0 0 0 0
61330 - 0 0 0 0 0 0 0 0 0 6 6 6
61331 - 6 6 6 10 10 10 14 14 14 18 18 18
61332 - 18 18 18 14 14 14 10 10 10 6 6 6
61333 - 0 0 0 0 0 0 0 0 0 0 0 0
61334 - 0 0 0 0 0 0 0 0 0 0 0 0
61335 - 0 0 0 0 0 0 0 0 0 0 0 0
61336 - 0 0 0 0 0 0 0 0 0 0 0 0
61337 - 0 0 0 0 0 0 0 0 0 6 6 6
61338 - 14 14 14 18 18 18 22 22 22 22 22 22
61339 - 18 18 18 14 14 14 10 10 10 6 6 6
61340 - 0 0 0 0 0 0 0 0 0 0 0 0
61341 - 0 0 0 0 0 0 0 0 0 0 0 0
61342 - 0 0 0 0 0 0 0 0 0 0 0 0
61343 - 0 0 0 0 0 0 0 0 0 0 0 0
61344 - 0 0 0 0 0 0 0 0 0 0 0 0
61345 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61346 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61347 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61348 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61349 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61350 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61351 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61355 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61356 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61357 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61358 +4 4 4 4 4 4
61359 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61360 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61361 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61362 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61363 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61364 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61365 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61369 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61370 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61371 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61372 +4 4 4 4 4 4
61373 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61374 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61375 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61376 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61377 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61378 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61379 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61383 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61384 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61385 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61386 +4 4 4 4 4 4
61387 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61388 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61389 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61390 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61391 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61392 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61393 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61397 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61398 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61399 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61400 +4 4 4 4 4 4
61401 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61402 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61403 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61404 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61405 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61406 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61407 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61411 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61412 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61413 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61414 +4 4 4 4 4 4
61415 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61416 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61417 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61418 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61419 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61420 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61421 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61425 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61426 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61427 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61428 +4 4 4 4 4 4
61429 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61430 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61431 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61432 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61433 +4 4 4 4 4 4 4 4 4 3 3 3 0 0 0 0 0 0
61434 +0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 4 4 4
61435 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 1 1 1 0 0 0
61439 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
61440 +4 4 4 4 4 4 4 4 4 2 1 0 2 1 0 3 2 2
61441 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61442 +4 4 4 4 4 4
61443 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61444 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61445 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61446 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61447 +4 4 4 4 4 4 2 2 2 0 0 0 3 4 3 26 28 28
61448 +37 38 37 37 38 37 14 17 19 2 2 2 0 0 0 2 2 2
61449 +5 5 5 4 4 4 4 4 4 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 3 3 3 0 0 0 1 1 1 6 6 6
61453 +2 2 2 0 0 0 3 3 3 4 4 4 4 4 4 4 4 4
61454 +4 4 5 3 3 3 1 0 0 0 0 0 1 0 0 0 0 0
61455 +1 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61456 +4 4 4 4 4 4
61457 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61458 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61459 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61460 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61461 +2 2 2 0 0 0 0 0 0 14 17 19 60 74 84 137 136 137
61462 +153 152 153 137 136 137 125 124 125 60 73 81 6 6 6 3 1 0
61463 +0 0 0 3 3 3 4 4 4 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 0 0 0 4 4 4 41 54 63 125 124 125
61467 +60 73 81 6 6 6 4 0 0 3 3 3 4 4 4 4 4 4
61468 +4 4 4 0 0 0 6 9 11 41 54 63 41 65 82 22 30 35
61469 +2 2 2 2 1 0 4 4 4 4 4 4 4 4 4 4 4 4
61470 +4 4 4 4 4 4
61471 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61472 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61473 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61474 +4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 0 0 0
61475 +4 0 0 6 6 6 41 54 63 137 136 137 174 174 174 167 166 167
61476 +165 164 165 165 164 165 163 162 163 163 162 163 125 124 125 41 54 63
61477 +1 1 1 0 0 0 0 0 0 3 3 3 5 5 5 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 5 5 5 5 5 5
61480 +3 3 3 2 0 0 4 0 0 60 73 81 156 155 156 167 166 167
61481 +163 162 163 85 115 134 5 7 8 0 0 0 4 4 4 5 5 5
61482 +0 0 0 2 5 5 55 98 126 90 154 193 90 154 193 72 125 159
61483 +37 51 59 2 0 0 1 1 1 4 5 5 4 4 4 4 4 4
61484 +4 4 4 4 4 4
61485 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61486 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61487 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61488 +4 4 4 5 5 5 4 4 4 1 1 1 0 0 0 3 3 3
61489 +37 38 37 125 124 125 163 162 163 174 174 174 158 157 158 158 157 158
61490 +156 155 156 156 155 156 158 157 158 165 164 165 174 174 174 166 165 166
61491 +125 124 125 16 19 21 1 0 0 0 0 0 0 0 0 4 4 4
61492 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
61493 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 1 1 1
61494 +0 0 0 0 0 0 37 38 37 153 152 153 174 174 174 158 157 158
61495 +174 174 174 163 162 163 37 38 37 4 3 3 4 0 0 1 1 1
61496 +0 0 0 22 40 52 101 161 196 101 161 196 90 154 193 101 161 196
61497 +64 123 161 14 17 19 0 0 0 4 4 4 4 4 4 4 4 4
61498 +4 4 4 4 4 4
61499 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61500 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61501 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
61502 +5 5 5 2 2 2 0 0 0 4 0 0 24 26 27 85 115 134
61503 +156 155 156 174 174 174 167 166 167 156 155 156 154 153 154 157 156 157
61504 +156 155 156 156 155 156 155 154 155 153 152 153 158 157 158 167 166 167
61505 +174 174 174 156 155 156 60 74 84 16 19 21 0 0 0 0 0 0
61506 +1 1 1 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
61507 +4 4 4 5 5 5 6 6 6 3 3 3 0 0 0 4 0 0
61508 +13 16 17 60 73 81 137 136 137 165 164 165 156 155 156 153 152 153
61509 +174 174 174 177 184 187 60 73 81 3 1 0 0 0 0 1 1 2
61510 +22 30 35 64 123 161 136 185 209 90 154 193 90 154 193 90 154 193
61511 +90 154 193 21 29 34 0 0 0 3 2 2 4 4 5 4 4 4
61512 +4 4 4 4 4 4
61513 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61514 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61515 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 3 3 3
61516 +0 0 0 0 0 0 10 13 16 60 74 84 157 156 157 174 174 174
61517 +174 174 174 158 157 158 153 152 153 154 153 154 156 155 156 155 154 155
61518 +156 155 156 155 154 155 154 153 154 157 156 157 154 153 154 153 152 153
61519 +163 162 163 174 174 174 177 184 187 137 136 137 60 73 81 13 16 17
61520 +4 0 0 0 0 0 3 3 3 5 5 5 4 4 4 4 4 4
61521 +5 5 5 4 4 4 1 1 1 0 0 0 3 3 3 41 54 63
61522 +131 129 131 174 174 174 174 174 174 174 174 174 167 166 167 174 174 174
61523 +190 197 201 137 136 137 24 26 27 4 0 0 16 21 25 50 82 103
61524 +90 154 193 136 185 209 90 154 193 101 161 196 101 161 196 101 161 196
61525 +31 91 132 3 6 7 0 0 0 4 4 4 4 4 4 4 4 4
61526 +4 4 4 4 4 4
61527 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61528 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61529 +4 4 4 4 4 4 4 4 4 2 2 2 0 0 0 4 0 0
61530 +4 0 0 43 57 68 137 136 137 177 184 187 174 174 174 163 162 163
61531 +155 154 155 155 154 155 156 155 156 155 154 155 158 157 158 165 164 165
61532 +167 166 167 166 165 166 163 162 163 157 156 157 155 154 155 155 154 155
61533 +153 152 153 156 155 156 167 166 167 174 174 174 174 174 174 131 129 131
61534 +41 54 63 5 5 5 0 0 0 0 0 0 3 3 3 4 4 4
61535 +1 1 1 0 0 0 1 0 0 26 28 28 125 124 125 174 174 174
61536 +177 184 187 174 174 174 174 174 174 156 155 156 131 129 131 137 136 137
61537 +125 124 125 24 26 27 4 0 0 41 65 82 90 154 193 136 185 209
61538 +136 185 209 101 161 196 53 118 160 37 112 160 90 154 193 34 86 122
61539 +7 12 15 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
61540 +4 4 4 4 4 4
61541 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61542 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61543 +4 4 4 3 3 3 0 0 0 0 0 0 5 5 5 37 38 37
61544 +125 124 125 167 166 167 174 174 174 167 166 167 158 157 158 155 154 155
61545 +156 155 156 156 155 156 156 155 156 163 162 163 167 166 167 155 154 155
61546 +137 136 137 153 152 153 156 155 156 165 164 165 163 162 163 156 155 156
61547 +156 155 156 156 155 156 155 154 155 158 157 158 166 165 166 174 174 174
61548 +167 166 167 125 124 125 37 38 37 1 0 0 0 0 0 0 0 0
61549 +0 0 0 24 26 27 60 74 84 158 157 158 174 174 174 174 174 174
61550 +166 165 166 158 157 158 125 124 125 41 54 63 13 16 17 6 6 6
61551 +6 6 6 37 38 37 80 127 157 136 185 209 101 161 196 101 161 196
61552 +90 154 193 28 67 93 6 10 14 13 20 25 13 20 25 6 10 14
61553 +1 1 2 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
61554 +4 4 4 4 4 4
61555 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61556 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61557 +1 1 1 1 0 0 4 3 3 37 38 37 60 74 84 153 152 153
61558 +167 166 167 167 166 167 158 157 158 154 153 154 155 154 155 156 155 156
61559 +157 156 157 158 157 158 167 166 167 167 166 167 131 129 131 43 57 68
61560 +26 28 28 37 38 37 60 73 81 131 129 131 165 164 165 166 165 166
61561 +158 157 158 155 154 155 156 155 156 156 155 156 156 155 156 158 157 158
61562 +165 164 165 174 174 174 163 162 163 60 74 84 16 19 21 13 16 17
61563 +60 73 81 131 129 131 174 174 174 174 174 174 167 166 167 165 164 165
61564 +137 136 137 60 73 81 24 26 27 4 0 0 4 0 0 16 19 21
61565 +52 104 138 101 161 196 136 185 209 136 185 209 90 154 193 27 99 146
61566 +13 20 25 4 5 7 2 5 5 4 5 7 1 1 2 0 0 0
61567 +4 4 4 4 4 4 3 3 3 2 2 2 2 2 2 4 4 4
61568 +4 4 4 4 4 4
61569 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61570 +4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 0 0 0
61571 +0 0 0 13 16 17 60 73 81 137 136 137 174 174 174 166 165 166
61572 +158 157 158 156 155 156 157 156 157 156 155 156 155 154 155 158 157 158
61573 +167 166 167 174 174 174 153 152 153 60 73 81 16 19 21 4 0 0
61574 +4 0 0 4 0 0 6 6 6 26 28 28 60 74 84 158 157 158
61575 +174 174 174 166 165 166 157 156 157 155 154 155 156 155 156 156 155 156
61576 +155 154 155 158 157 158 167 166 167 167 166 167 131 129 131 125 124 125
61577 +137 136 137 167 166 167 167 166 167 174 174 174 158 157 158 125 124 125
61578 +16 19 21 4 0 0 4 0 0 10 13 16 49 76 92 107 159 188
61579 +136 185 209 136 185 209 90 154 193 26 108 161 22 40 52 6 10 14
61580 +2 3 3 1 1 2 1 1 2 4 4 5 4 4 5 4 4 5
61581 +4 4 5 2 2 1 0 0 0 0 0 0 0 0 0 2 2 2
61582 +4 4 4 4 4 4
61583 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61584 +4 4 4 5 5 5 3 3 3 0 0 0 1 0 0 4 0 0
61585 +37 51 59 131 129 131 167 166 167 167 166 167 163 162 163 157 156 157
61586 +157 156 157 155 154 155 153 152 153 157 156 157 167 166 167 174 174 174
61587 +153 152 153 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
61588 +4 3 3 4 3 3 4 0 0 6 6 6 4 0 0 37 38 37
61589 +125 124 125 174 174 174 174 174 174 165 164 165 156 155 156 154 153 154
61590 +156 155 156 156 155 156 155 154 155 163 162 163 158 157 158 163 162 163
61591 +174 174 174 174 174 174 174 174 174 125 124 125 37 38 37 0 0 0
61592 +4 0 0 6 9 11 41 54 63 90 154 193 136 185 209 146 190 211
61593 +136 185 209 37 112 160 22 40 52 6 10 14 3 6 7 1 1 2
61594 +1 1 2 3 3 3 1 1 2 3 3 3 4 4 4 4 4 4
61595 +2 2 2 2 0 0 16 19 21 37 38 37 24 26 27 0 0 0
61596 +0 0 0 4 4 4
61597 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
61598 +4 4 4 0 0 0 0 0 0 0 0 0 26 28 28 120 125 127
61599 +158 157 158 174 174 174 165 164 165 157 156 157 155 154 155 156 155 156
61600 +153 152 153 153 152 153 167 166 167 174 174 174 174 174 174 125 124 125
61601 +37 38 37 4 0 0 0 0 0 4 0 0 4 3 3 4 4 4
61602 +4 4 4 4 4 4 5 5 5 4 0 0 4 0 0 4 0 0
61603 +4 3 3 43 57 68 137 136 137 174 174 174 174 174 174 165 164 165
61604 +154 153 154 153 152 153 153 152 153 153 152 153 163 162 163 174 174 174
61605 +174 174 174 153 152 153 60 73 81 6 6 6 4 0 0 4 3 3
61606 +32 43 50 80 127 157 136 185 209 146 190 211 146 190 211 90 154 193
61607 +28 67 93 28 67 93 40 71 93 3 6 7 1 1 2 2 5 5
61608 +50 82 103 79 117 143 26 37 45 0 0 0 3 3 3 1 1 1
61609 +0 0 0 41 54 63 137 136 137 174 174 174 153 152 153 60 73 81
61610 +2 0 0 0 0 0
61611 +4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 2 2 2
61612 +0 0 0 2 0 0 24 26 27 60 74 84 153 152 153 174 174 174
61613 +174 174 174 157 156 157 154 153 154 156 155 156 154 153 154 153 152 153
61614 +165 164 165 174 174 174 177 184 187 137 136 137 43 57 68 6 6 6
61615 +4 0 0 2 0 0 3 3 3 5 5 5 5 5 5 4 4 4
61616 +4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 4 3 3
61617 +4 0 0 4 0 0 24 26 27 60 73 81 153 152 153 174 174 174
61618 +174 174 174 158 157 158 158 157 158 174 174 174 174 174 174 158 157 158
61619 +60 74 84 24 26 27 4 0 0 4 0 0 17 23 27 59 113 148
61620 +136 185 209 191 222 234 146 190 211 136 185 209 31 91 132 7 11 13
61621 +22 40 52 101 161 196 90 154 193 6 9 11 3 4 4 43 95 132
61622 +136 185 209 172 205 220 55 98 126 0 0 0 0 0 0 2 0 0
61623 +26 28 28 153 152 153 177 184 187 167 166 167 177 184 187 165 164 165
61624 +37 38 37 0 0 0
61625 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
61626 +13 16 17 60 73 81 137 136 137 174 174 174 174 174 174 165 164 165
61627 +153 152 153 153 152 153 155 154 155 154 153 154 158 157 158 174 174 174
61628 +177 184 187 163 162 163 60 73 81 16 19 21 4 0 0 4 0 0
61629 +4 3 3 4 4 4 5 5 5 5 5 5 4 4 4 5 5 5
61630 +5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 5 5 5
61631 +6 6 6 4 0 0 4 0 0 4 0 0 24 26 27 60 74 84
61632 +166 165 166 174 174 174 177 184 187 165 164 165 125 124 125 24 26 27
61633 +4 0 0 4 0 0 5 5 5 50 82 103 136 185 209 172 205 220
61634 +146 190 211 136 185 209 26 108 161 22 40 52 7 12 15 44 81 103
61635 +71 116 144 28 67 93 37 51 59 41 65 82 100 139 164 101 161 196
61636 +90 154 193 90 154 193 28 67 93 0 0 0 0 0 0 26 28 28
61637 +125 124 125 167 166 167 163 162 163 153 152 153 163 162 163 174 174 174
61638 +85 115 134 4 0 0
61639 +4 4 4 5 5 5 4 4 4 1 0 0 4 0 0 34 47 55
61640 +125 124 125 174 174 174 174 174 174 167 166 167 157 156 157 153 152 153
61641 +155 154 155 155 154 155 158 157 158 166 165 166 167 166 167 154 153 154
61642 +125 124 125 26 28 28 4 0 0 4 0 0 4 0 0 5 5 5
61643 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1
61644 +0 0 0 0 0 0 1 1 1 4 4 4 4 4 4 4 4 4
61645 +5 5 5 5 5 5 4 3 3 4 0 0 4 0 0 6 6 6
61646 +37 38 37 131 129 131 137 136 137 37 38 37 0 0 0 4 0 0
61647 +4 5 5 43 61 72 90 154 193 172 205 220 146 190 211 136 185 209
61648 +90 154 193 28 67 93 13 20 25 43 61 72 71 116 144 44 81 103
61649 +2 5 5 7 11 13 59 113 148 101 161 196 90 154 193 28 67 93
61650 +13 20 25 6 10 14 0 0 0 13 16 17 60 73 81 137 136 137
61651 +166 165 166 158 157 158 156 155 156 154 153 154 167 166 167 174 174 174
61652 +60 73 81 4 0 0
61653 +4 4 4 4 4 4 0 0 0 3 3 3 60 74 84 174 174 174
61654 +174 174 174 167 166 167 163 162 163 155 154 155 157 156 157 155 154 155
61655 +156 155 156 163 162 163 167 166 167 158 157 158 125 124 125 37 38 37
61656 +4 3 3 4 0 0 4 0 0 6 6 6 6 6 6 5 5 5
61657 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 2 3 3
61658 +10 13 16 7 11 13 1 0 0 0 0 0 2 2 1 4 4 4
61659 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 4 0 0
61660 +4 0 0 7 11 13 13 16 17 4 0 0 3 3 3 34 47 55
61661 +80 127 157 146 190 211 172 205 220 136 185 209 136 185 209 136 185 209
61662 +28 67 93 22 40 52 55 98 126 55 98 126 21 29 34 7 11 13
61663 +50 82 103 101 161 196 101 161 196 35 83 115 13 20 25 2 2 1
61664 +1 1 2 1 1 2 37 51 59 131 129 131 174 174 174 174 174 174
61665 +167 166 167 163 162 163 163 162 163 167 166 167 174 174 174 125 124 125
61666 +16 19 21 4 0 0
61667 +4 4 4 4 0 0 4 0 0 60 74 84 174 174 174 174 174 174
61668 +158 157 158 155 154 155 155 154 155 156 155 156 155 154 155 158 157 158
61669 +167 166 167 165 164 165 131 129 131 60 73 81 13 16 17 4 0 0
61670 +4 0 0 4 3 3 6 6 6 4 3 3 5 5 5 4 4 4
61671 +4 4 4 3 2 2 0 0 0 0 0 0 7 11 13 45 69 86
61672 +80 127 157 71 116 144 43 61 72 7 11 13 0 0 0 1 1 1
61673 +4 3 3 4 4 4 4 4 4 4 4 4 6 6 6 5 5 5
61674 +3 2 2 4 0 0 1 0 0 21 29 34 59 113 148 136 185 209
61675 +146 190 211 136 185 209 136 185 209 136 185 209 136 185 209 136 185 209
61676 +68 124 159 44 81 103 22 40 52 13 16 17 43 61 72 90 154 193
61677 +136 185 209 59 113 148 21 29 34 3 4 3 1 1 1 0 0 0
61678 +24 26 27 125 124 125 163 162 163 174 174 174 166 165 166 165 164 165
61679 +163 162 163 125 124 125 125 124 125 125 124 125 125 124 125 26 28 28
61680 +4 0 0 4 3 3
61681 +3 3 3 0 0 0 24 26 27 153 152 153 177 184 187 158 157 158
61682 +156 155 156 156 155 156 155 154 155 155 154 155 165 164 165 174 174 174
61683 +155 154 155 60 74 84 26 28 28 4 0 0 4 0 0 3 1 0
61684 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3
61685 +2 0 0 0 0 0 0 0 0 32 43 50 72 125 159 101 161 196
61686 +136 185 209 101 161 196 101 161 196 79 117 143 32 43 50 0 0 0
61687 +0 0 0 2 2 2 4 4 4 4 4 4 3 3 3 1 0 0
61688 +0 0 0 4 5 5 49 76 92 101 161 196 146 190 211 146 190 211
61689 +136 185 209 136 185 209 136 185 209 136 185 209 136 185 209 90 154 193
61690 +28 67 93 13 16 17 37 51 59 80 127 157 136 185 209 90 154 193
61691 +22 40 52 6 9 11 3 4 3 2 2 1 16 19 21 60 73 81
61692 +137 136 137 163 162 163 158 157 158 166 165 166 167 166 167 153 152 153
61693 +60 74 84 37 38 37 6 6 6 13 16 17 4 0 0 1 0 0
61694 +3 2 2 4 4 4
61695 +3 2 2 4 0 0 37 38 37 137 136 137 167 166 167 158 157 158
61696 +157 156 157 154 153 154 157 156 157 167 166 167 174 174 174 125 124 125
61697 +37 38 37 4 0 0 4 0 0 4 0 0 4 3 3 4 4 4
61698 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
61699 +0 0 0 16 21 25 55 98 126 90 154 193 136 185 209 101 161 196
61700 +101 161 196 101 161 196 136 185 209 136 185 209 101 161 196 55 98 126
61701 +14 17 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
61702 +22 40 52 90 154 193 146 190 211 146 190 211 136 185 209 136 185 209
61703 +136 185 209 136 185 209 136 185 209 101 161 196 35 83 115 7 11 13
61704 +17 23 27 59 113 148 136 185 209 101 161 196 34 86 122 7 12 15
61705 +2 5 5 3 4 3 6 6 6 60 73 81 131 129 131 163 162 163
61706 +166 165 166 174 174 174 174 174 174 163 162 163 125 124 125 41 54 63
61707 +13 16 17 4 0 0 4 0 0 4 0 0 1 0 0 2 2 2
61708 +4 4 4 4 4 4
61709 +1 1 1 2 1 0 43 57 68 137 136 137 153 152 153 153 152 153
61710 +163 162 163 156 155 156 165 164 165 167 166 167 60 74 84 6 6 6
61711 +4 0 0 4 0 0 5 5 5 4 4 4 4 4 4 4 4 4
61712 +4 5 5 6 6 6 4 3 3 0 0 0 0 0 0 11 15 18
61713 +40 71 93 100 139 164 101 161 196 101 161 196 101 161 196 101 161 196
61714 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 136 185 209
61715 +101 161 196 45 69 86 6 6 6 0 0 0 17 23 27 55 98 126
61716 +136 185 209 146 190 211 136 185 209 136 185 209 136 185 209 136 185 209
61717 +136 185 209 136 185 209 90 154 193 22 40 52 7 11 13 50 82 103
61718 +136 185 209 136 185 209 53 118 160 22 40 52 7 11 13 2 5 5
61719 +3 4 3 37 38 37 125 124 125 157 156 157 166 165 166 167 166 167
61720 +174 174 174 174 174 174 137 136 137 60 73 81 4 0 0 4 0 0
61721 +4 0 0 4 0 0 5 5 5 3 3 3 3 3 3 4 4 4
61722 +4 4 4 4 4 4
61723 +4 0 0 4 0 0 41 54 63 137 136 137 125 124 125 131 129 131
61724 +155 154 155 167 166 167 174 174 174 60 74 84 6 6 6 4 0 0
61725 +4 3 3 6 6 6 4 4 4 4 4 4 4 4 4 5 5 5
61726 +4 4 4 1 1 1 0 0 0 3 6 7 41 65 82 72 125 159
61727 +101 161 196 101 161 196 101 161 196 90 154 193 90 154 193 101 161 196
61728 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
61729 +136 185 209 136 185 209 80 127 157 55 98 126 101 161 196 146 190 211
61730 +136 185 209 136 185 209 136 185 209 101 161 196 136 185 209 101 161 196
61731 +136 185 209 101 161 196 35 83 115 22 30 35 101 161 196 172 205 220
61732 +90 154 193 28 67 93 7 11 13 2 5 5 3 4 3 13 16 17
61733 +85 115 134 167 166 167 174 174 174 174 174 174 174 174 174 174 174 174
61734 +167 166 167 60 74 84 13 16 17 4 0 0 4 0 0 4 3 3
61735 +6 6 6 5 5 5 4 4 4 5 5 5 4 4 4 5 5 5
61736 +5 5 5 5 5 5
61737 +1 1 1 4 0 0 41 54 63 137 136 137 137 136 137 125 124 125
61738 +131 129 131 167 166 167 157 156 157 37 38 37 6 6 6 4 0 0
61739 +6 6 6 5 5 5 4 4 4 4 4 4 4 5 5 2 2 1
61740 +0 0 0 0 0 0 26 37 45 58 111 146 101 161 196 101 161 196
61741 +101 161 196 90 154 193 90 154 193 90 154 193 101 161 196 101 161 196
61742 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61743 +101 161 196 136 185 209 136 185 209 136 185 209 146 190 211 136 185 209
61744 +136 185 209 101 161 196 136 185 209 136 185 209 101 161 196 136 185 209
61745 +101 161 196 136 185 209 136 185 209 136 185 209 136 185 209 16 89 141
61746 +7 11 13 2 5 5 2 5 5 13 16 17 60 73 81 154 154 154
61747 +174 174 174 174 174 174 174 174 174 174 174 174 163 162 163 125 124 125
61748 +24 26 27 4 0 0 4 0 0 4 0 0 5 5 5 5 5 5
61749 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
61750 +5 5 5 4 4 4
61751 +4 0 0 6 6 6 37 38 37 137 136 137 137 136 137 131 129 131
61752 +131 129 131 153 152 153 131 129 131 26 28 28 4 0 0 4 3 3
61753 +6 6 6 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0
61754 +13 20 25 51 88 114 90 154 193 101 161 196 101 161 196 90 154 193
61755 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61756 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 101 161 196
61757 +101 161 196 136 185 209 101 161 196 136 185 209 136 185 209 101 161 196
61758 +136 185 209 101 161 196 136 185 209 101 161 196 101 161 196 101 161 196
61759 +136 185 209 136 185 209 136 185 209 37 112 160 21 29 34 5 7 8
61760 +2 5 5 13 16 17 43 57 68 131 129 131 174 174 174 174 174 174
61761 +174 174 174 167 166 167 157 156 157 125 124 125 37 38 37 4 0 0
61762 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
61763 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61764 +4 4 4 4 4 4
61765 +1 1 1 4 0 0 41 54 63 153 152 153 137 136 137 137 136 137
61766 +137 136 137 153 152 153 125 124 125 24 26 27 4 0 0 3 2 2
61767 +4 4 4 4 4 4 4 3 3 4 0 0 3 6 7 43 61 72
61768 +64 123 161 101 161 196 90 154 193 90 154 193 90 154 193 90 154 193
61769 +90 154 193 90 154 193 90 154 193 90 154 193 101 161 196 90 154 193
61770 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61771 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61772 +136 185 209 101 161 196 101 161 196 136 185 209 136 185 209 101 161 196
61773 +101 161 196 90 154 193 28 67 93 13 16 17 7 11 13 3 6 7
61774 +37 51 59 125 124 125 163 162 163 174 174 174 167 166 167 166 165 166
61775 +167 166 167 131 129 131 60 73 81 4 0 0 4 0 0 4 0 0
61776 +3 3 3 5 5 5 6 6 6 4 4 4 4 4 4 4 4 4
61777 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61778 +4 4 4 4 4 4
61779 +4 0 0 4 0 0 41 54 63 137 136 137 153 152 153 137 136 137
61780 +153 152 153 157 156 157 125 124 125 24 26 27 0 0 0 2 2 2
61781 +4 4 4 4 4 4 2 0 0 0 0 0 28 67 93 90 154 193
61782 +90 154 193 90 154 193 90 154 193 90 154 193 64 123 161 90 154 193
61783 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61784 +90 154 193 101 161 196 101 161 196 101 161 196 90 154 193 136 185 209
61785 +101 161 196 101 161 196 136 185 209 101 161 196 136 185 209 101 161 196
61786 +101 161 196 101 161 196 136 185 209 101 161 196 101 161 196 90 154 193
61787 +35 83 115 13 16 17 3 6 7 2 5 5 13 16 17 60 74 84
61788 +154 154 154 166 165 166 165 164 165 158 157 158 163 162 163 157 156 157
61789 +60 74 84 13 16 17 4 0 0 4 0 0 3 2 2 4 4 4
61790 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61791 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61792 +4 4 4 4 4 4
61793 +1 1 1 4 0 0 41 54 63 157 156 157 155 154 155 137 136 137
61794 +153 152 153 158 157 158 137 136 137 26 28 28 2 0 0 2 2 2
61795 +4 4 4 4 4 4 1 0 0 6 10 14 34 86 122 90 154 193
61796 +64 123 161 90 154 193 64 123 161 90 154 193 90 154 193 90 154 193
61797 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61798 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61799 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61800 +136 185 209 101 161 196 136 185 209 90 154 193 26 108 161 22 40 52
61801 +13 16 17 5 7 8 2 5 5 2 5 5 37 38 37 165 164 165
61802 +174 174 174 163 162 163 154 154 154 165 164 165 167 166 167 60 73 81
61803 +6 6 6 4 0 0 4 0 0 4 4 4 4 4 4 4 4 4
61804 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61805 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61806 +4 4 4 4 4 4
61807 +4 0 0 6 6 6 41 54 63 156 155 156 158 157 158 153 152 153
61808 +156 155 156 165 164 165 137 136 137 26 28 28 0 0 0 2 2 2
61809 +4 4 5 4 4 4 2 0 0 7 12 15 31 96 139 64 123 161
61810 +90 154 193 64 123 161 90 154 193 90 154 193 64 123 161 90 154 193
61811 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61812 +90 154 193 90 154 193 90 154 193 101 161 196 101 161 196 101 161 196
61813 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
61814 +101 161 196 136 185 209 26 108 161 22 40 52 7 11 13 5 7 8
61815 +2 5 5 2 5 5 2 5 5 2 2 1 37 38 37 158 157 158
61816 +174 174 174 154 154 154 156 155 156 167 166 167 165 164 165 37 38 37
61817 +4 0 0 4 3 3 5 5 5 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 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61820 +4 4 4 4 4 4
61821 +3 1 0 4 0 0 60 73 81 157 156 157 163 162 163 153 152 153
61822 +158 157 158 167 166 167 137 136 137 26 28 28 2 0 0 2 2 2
61823 +4 5 5 4 4 4 4 0 0 7 12 15 24 86 132 26 108 161
61824 +37 112 160 64 123 161 90 154 193 64 123 161 90 154 193 90 154 193
61825 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61826 +90 154 193 101 161 196 90 154 193 101 161 196 101 161 196 101 161 196
61827 +101 161 196 101 161 196 101 161 196 136 185 209 101 161 196 136 185 209
61828 +90 154 193 35 83 115 13 16 17 13 16 17 7 11 13 3 6 7
61829 +5 7 8 6 6 6 3 4 3 2 2 1 30 32 34 154 154 154
61830 +167 166 167 154 154 154 154 154 154 174 174 174 165 164 165 37 38 37
61831 +6 6 6 4 0 0 6 6 6 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 4 4 4
61834 +4 4 4 4 4 4
61835 +4 0 0 4 0 0 41 54 63 163 162 163 166 165 166 154 154 154
61836 +163 162 163 174 174 174 137 136 137 26 28 28 0 0 0 2 2 2
61837 +4 5 5 4 4 5 1 1 2 6 10 14 28 67 93 18 97 151
61838 +18 97 151 18 97 151 26 108 161 37 112 160 37 112 160 90 154 193
61839 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61840 +90 154 193 101 161 196 101 161 196 90 154 193 101 161 196 101 161 196
61841 +101 161 196 101 161 196 101 161 196 136 185 209 90 154 193 16 89 141
61842 +13 20 25 7 11 13 5 7 8 5 7 8 2 5 5 4 5 5
61843 +3 4 3 4 5 5 3 4 3 0 0 0 37 38 37 158 157 158
61844 +174 174 174 158 157 158 158 157 158 167 166 167 174 174 174 41 54 63
61845 +4 0 0 3 2 2 5 5 5 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 4 4 4
61849 +1 1 1 4 0 0 60 73 81 165 164 165 174 174 174 158 157 158
61850 +167 166 167 174 174 174 153 152 153 26 28 28 2 0 0 2 2 2
61851 +4 5 5 4 4 4 4 0 0 7 12 15 10 87 144 10 87 144
61852 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
61853 +26 108 161 37 112 160 53 118 160 90 154 193 90 154 193 90 154 193
61854 +90 154 193 90 154 193 101 161 196 101 161 196 101 161 196 101 161 196
61855 +101 161 196 136 185 209 90 154 193 26 108 161 22 40 52 13 16 17
61856 +7 11 13 3 6 7 5 7 8 5 7 8 2 5 5 4 5 5
61857 +4 5 5 6 6 6 3 4 3 0 0 0 30 32 34 158 157 158
61858 +174 174 174 156 155 156 155 154 155 165 164 165 154 153 154 37 38 37
61859 +4 0 0 4 3 3 5 5 5 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
61863 +4 0 0 4 0 0 60 73 81 167 166 167 174 174 174 163 162 163
61864 +174 174 174 174 174 174 153 152 153 26 28 28 0 0 0 3 3 3
61865 +5 5 5 4 4 4 1 1 2 7 12 15 28 67 93 18 97 151
61866 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
61867 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61868 +90 154 193 26 108 161 90 154 193 90 154 193 90 154 193 101 161 196
61869 +101 161 196 26 108 161 22 40 52 13 16 17 7 11 13 2 5 5
61870 +2 5 5 6 6 6 2 5 5 4 5 5 4 5 5 4 5 5
61871 +3 4 3 5 5 5 3 4 3 2 0 0 30 32 34 137 136 137
61872 +153 152 153 137 136 137 131 129 131 137 136 137 131 129 131 37 38 37
61873 +4 0 0 4 3 3 5 5 5 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
61877 +1 1 1 4 0 0 60 73 81 167 166 167 174 174 174 166 165 166
61878 +174 174 174 177 184 187 153 152 153 30 32 34 1 0 0 3 3 3
61879 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
61880 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
61881 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61882 +26 108 161 26 108 161 26 108 161 90 154 193 90 154 193 26 108 161
61883 +35 83 115 13 16 17 7 11 13 5 7 8 3 6 7 5 7 8
61884 +2 5 5 6 6 6 4 5 5 4 5 5 3 4 3 4 5 5
61885 +3 4 3 6 6 6 3 4 3 0 0 0 26 28 28 125 124 125
61886 +131 129 131 125 124 125 125 124 125 131 129 131 131 129 131 37 38 37
61887 +4 0 0 3 3 3 5 5 5 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
61891 +3 1 0 4 0 0 60 73 81 174 174 174 177 184 187 167 166 167
61892 +174 174 174 177 184 187 153 152 153 30 32 34 0 0 0 3 3 3
61893 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
61894 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
61895 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61896 +26 108 161 90 154 193 26 108 161 26 108 161 24 86 132 13 20 25
61897 +7 11 13 13 20 25 22 40 52 5 7 8 3 4 3 3 4 3
61898 +4 5 5 3 4 3 4 5 5 3 4 3 4 5 5 3 4 3
61899 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
61900 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61901 +0 0 0 3 3 3 5 5 5 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
61905 +1 1 1 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
61906 +174 174 174 190 197 201 157 156 157 30 32 34 1 0 0 3 3 3
61907 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
61908 +18 97 151 19 95 150 19 95 150 18 97 151 18 97 151 26 108 161
61909 +18 97 151 26 108 161 26 108 161 26 108 161 26 108 161 90 154 193
61910 +26 108 161 26 108 161 26 108 161 22 40 52 2 5 5 3 4 3
61911 +28 67 93 37 112 160 34 86 122 2 5 5 3 4 3 3 4 3
61912 +3 4 3 3 4 3 3 4 3 2 2 1 3 4 3 4 4 4
61913 +4 5 5 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61914 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61915 +0 0 0 3 3 3 5 5 5 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
61919 +4 0 0 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
61920 +174 174 174 190 197 201 158 157 158 30 32 34 0 0 0 2 2 2
61921 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
61922 +10 87 144 19 95 150 19 95 150 18 97 151 18 97 151 18 97 151
61923 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61924 +18 97 151 22 40 52 2 5 5 2 2 1 22 40 52 26 108 161
61925 +90 154 193 37 112 160 22 40 52 3 4 3 13 20 25 22 30 35
61926 +3 6 7 1 1 1 2 2 2 6 9 11 5 5 5 4 3 3
61927 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61928 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61929 +0 0 0 3 3 3 5 5 5 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
61933 +1 1 1 4 0 0 60 73 81 177 184 187 193 200 203 174 174 174
61934 +177 184 187 193 200 203 163 162 163 30 32 34 4 0 0 2 2 2
61935 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
61936 +10 87 144 10 87 144 19 95 150 19 95 150 19 95 150 18 97 151
61937 +26 108 161 26 108 161 26 108 161 90 154 193 26 108 161 28 67 93
61938 +6 10 14 2 5 5 13 20 25 24 86 132 37 112 160 90 154 193
61939 +10 87 144 7 12 15 2 5 5 28 67 93 37 112 160 28 67 93
61940 +2 2 1 7 12 15 35 83 115 28 67 93 3 6 7 1 0 0
61941 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61942 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61943 +0 0 0 3 3 3 5 5 5 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
61947 +4 0 0 4 0 0 60 73 81 174 174 174 190 197 201 174 174 174
61948 +177 184 187 193 200 203 163 162 163 30 32 34 0 0 0 2 2 2
61949 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61950 +10 87 144 16 89 141 19 95 150 10 87 144 26 108 161 26 108 161
61951 +26 108 161 26 108 161 26 108 161 28 67 93 6 10 14 1 1 2
61952 +7 12 15 28 67 93 26 108 161 16 89 141 24 86 132 21 29 34
61953 +3 4 3 21 29 34 37 112 160 37 112 160 27 99 146 21 29 34
61954 +21 29 34 26 108 161 90 154 193 35 83 115 1 1 2 2 0 0
61955 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
61956 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61957 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61958 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61959 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61960 +4 4 4 4 4 4
61961 +3 1 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
61962 +190 197 201 193 200 203 165 164 165 37 38 37 4 0 0 2 2 2
61963 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
61964 +10 87 144 10 87 144 16 89 141 18 97 151 18 97 151 10 87 144
61965 +24 86 132 24 86 132 13 20 25 4 5 7 4 5 7 22 40 52
61966 +18 97 151 37 112 160 26 108 161 7 12 15 1 1 1 0 0 0
61967 +28 67 93 37 112 160 26 108 161 28 67 93 22 40 52 28 67 93
61968 +26 108 161 90 154 193 26 108 161 10 87 144 0 0 0 2 0 0
61969 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61970 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61971 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61972 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61973 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61974 +4 4 4 4 4 4
61975 +4 0 0 6 6 6 60 73 81 174 174 174 193 200 203 174 174 174
61976 +190 197 201 193 200 203 165 164 165 30 32 34 0 0 0 2 2 2
61977 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61978 +10 87 144 10 87 144 10 87 144 18 97 151 28 67 93 6 10 14
61979 +0 0 0 1 1 2 4 5 7 13 20 25 16 89 141 26 108 161
61980 +26 108 161 26 108 161 24 86 132 6 9 11 2 3 3 22 40 52
61981 +37 112 160 16 89 141 22 40 52 28 67 93 26 108 161 26 108 161
61982 +90 154 193 26 108 161 26 108 161 28 67 93 1 1 1 4 0 0
61983 +4 4 4 5 5 5 3 3 3 4 0 0 26 28 28 124 126 130
61984 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61985 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61986 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61987 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61988 +4 4 4 4 4 4
61989 +4 0 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
61990 +193 200 203 193 200 203 167 166 167 37 38 37 4 0 0 2 2 2
61991 +5 5 5 4 4 4 4 0 0 6 10 14 28 67 93 10 87 144
61992 +10 87 144 10 87 144 18 97 151 10 87 144 13 20 25 4 5 7
61993 +1 1 2 1 1 1 22 40 52 26 108 161 26 108 161 26 108 161
61994 +26 108 161 26 108 161 26 108 161 24 86 132 22 40 52 22 40 52
61995 +22 40 52 22 40 52 10 87 144 26 108 161 26 108 161 26 108 161
61996 +26 108 161 26 108 161 90 154 193 10 87 144 0 0 0 4 0 0
61997 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61998 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61999 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62000 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62001 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62002 +4 4 4 4 4 4
62003 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
62004 +190 197 201 205 212 215 167 166 167 30 32 34 0 0 0 2 2 2
62005 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
62006 +10 87 144 10 87 144 10 87 144 10 87 144 22 40 52 1 1 2
62007 +2 0 0 1 1 2 24 86 132 26 108 161 26 108 161 26 108 161
62008 +26 108 161 19 95 150 16 89 141 10 87 144 22 40 52 22 40 52
62009 +10 87 144 26 108 161 37 112 160 26 108 161 26 108 161 26 108 161
62010 +26 108 161 26 108 161 26 108 161 28 67 93 2 0 0 3 1 0
62011 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
62012 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62013 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62014 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62015 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62016 +4 4 4 4 4 4
62017 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
62018 +193 200 203 193 200 203 174 174 174 37 38 37 4 0 0 2 2 2
62019 +5 5 5 4 4 4 3 2 2 1 1 2 13 20 25 10 87 144
62020 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 13 20 25
62021 +13 20 25 22 40 52 10 87 144 18 97 151 18 97 151 26 108 161
62022 +10 87 144 13 20 25 6 10 14 21 29 34 24 86 132 18 97 151
62023 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
62024 +26 108 161 90 154 193 18 97 151 13 20 25 0 0 0 4 3 3
62025 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
62026 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62027 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62028 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62029 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62030 +4 4 4 4 4 4
62031 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
62032 +190 197 201 220 221 221 167 166 167 30 32 34 1 0 0 2 2 2
62033 +5 5 5 4 4 4 4 4 5 2 5 5 4 5 7 13 20 25
62034 +28 67 93 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
62035 +10 87 144 10 87 144 18 97 151 10 87 144 18 97 151 18 97 151
62036 +28 67 93 2 3 3 0 0 0 28 67 93 26 108 161 26 108 161
62037 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
62038 +26 108 161 10 87 144 13 20 25 1 1 2 3 2 2 4 4 4
62039 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
62040 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62041 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62042 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62043 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62044 +4 4 4 4 4 4
62045 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
62046 +193 200 203 193 200 203 174 174 174 26 28 28 4 0 0 4 3 3
62047 +5 5 5 4 4 4 4 4 4 4 4 5 1 1 2 2 5 5
62048 +4 5 7 22 40 52 10 87 144 10 87 144 18 97 151 10 87 144
62049 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 18 97 151
62050 +10 87 144 28 67 93 22 40 52 10 87 144 26 108 161 18 97 151
62051 +18 97 151 18 97 151 26 108 161 26 108 161 26 108 161 26 108 161
62052 +22 40 52 1 1 2 0 0 0 2 3 3 4 4 4 4 4 4
62053 +4 4 4 5 5 5 4 4 4 0 0 0 26 28 28 131 129 131
62054 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62055 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62056 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62057 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62058 +4 4 4 4 4 4
62059 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
62060 +190 197 201 220 221 221 190 197 201 41 54 63 4 0 0 2 2 2
62061 +6 6 6 4 4 4 4 4 4 4 4 5 4 4 5 3 3 3
62062 +1 1 2 1 1 2 6 10 14 22 40 52 10 87 144 18 97 151
62063 +18 97 151 10 87 144 10 87 144 10 87 144 18 97 151 10 87 144
62064 +10 87 144 18 97 151 26 108 161 18 97 151 18 97 151 10 87 144
62065 +26 108 161 26 108 161 26 108 161 10 87 144 28 67 93 6 10 14
62066 +1 1 2 1 1 2 4 3 3 4 4 5 4 4 4 4 4 4
62067 +5 5 5 5 5 5 1 1 1 4 0 0 37 51 59 137 136 137
62068 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62069 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62070 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62071 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62072 +4 4 4 4 4 4
62073 +4 0 0 4 0 0 60 73 81 220 221 221 193 200 203 174 174 174
62074 +193 200 203 193 200 203 220 221 221 137 136 137 13 16 17 4 0 0
62075 +2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
62076 +4 4 5 4 3 3 1 1 2 4 5 7 13 20 25 28 67 93
62077 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
62078 +10 87 144 18 97 151 18 97 151 10 87 144 18 97 151 26 108 161
62079 +26 108 161 18 97 151 28 67 93 6 10 14 0 0 0 0 0 0
62080 +2 3 3 4 5 5 4 4 5 4 4 4 4 4 4 5 5 5
62081 +3 3 3 1 1 1 0 0 0 16 19 21 125 124 125 137 136 137
62082 +131 129 131 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62083 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62084 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62085 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62086 +4 4 4 4 4 4
62087 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
62088 +193 200 203 190 197 201 220 221 221 220 221 221 153 152 153 30 32 34
62089 +0 0 0 0 0 0 2 2 2 4 4 4 4 4 4 4 4 4
62090 +4 4 4 4 5 5 4 5 7 1 1 2 1 1 2 4 5 7
62091 +13 20 25 28 67 93 10 87 144 18 97 151 10 87 144 10 87 144
62092 +10 87 144 10 87 144 10 87 144 18 97 151 26 108 161 18 97 151
62093 +28 67 93 7 12 15 0 0 0 0 0 0 2 2 1 4 4 4
62094 +4 5 5 4 5 5 4 4 4 4 4 4 3 3 3 0 0 0
62095 +0 0 0 0 0 0 37 38 37 125 124 125 158 157 158 131 129 131
62096 +125 124 125 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
62097 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62098 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62099 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62100 +4 4 4 4 4 4
62101 +4 3 3 4 0 0 41 54 63 193 200 203 220 221 221 174 174 174
62102 +193 200 203 193 200 203 193 200 203 220 221 221 244 246 246 193 200 203
62103 +120 125 127 5 5 5 1 0 0 0 0 0 1 1 1 4 4 4
62104 +4 4 4 4 4 4 4 5 5 4 5 5 4 4 5 1 1 2
62105 +4 5 7 4 5 7 22 40 52 10 87 144 10 87 144 10 87 144
62106 +10 87 144 10 87 144 18 97 151 10 87 144 10 87 144 13 20 25
62107 +4 5 7 2 3 3 1 1 2 4 4 4 4 5 5 4 4 4
62108 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 1 2
62109 +24 26 27 60 74 84 153 152 153 163 162 163 137 136 137 125 124 125
62110 +125 124 125 125 124 125 125 124 125 137 136 137 125 124 125 26 28 28
62111 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62112 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62113 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62114 +4 4 4 4 4 4
62115 +4 0 0 6 6 6 26 28 28 156 155 156 220 221 221 220 221 221
62116 +174 174 174 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
62117 +220 221 221 167 166 167 60 73 81 7 11 13 0 0 0 0 0 0
62118 +3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 5
62119 +4 4 5 1 1 2 1 1 2 4 5 7 22 40 52 10 87 144
62120 +10 87 144 10 87 144 10 87 144 22 40 52 4 5 7 1 1 2
62121 +1 1 2 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4
62122 +5 5 5 2 2 2 0 0 0 4 0 0 16 19 21 60 73 81
62123 +137 136 137 167 166 167 158 157 158 137 136 137 131 129 131 131 129 131
62124 +125 124 125 125 124 125 131 129 131 155 154 155 60 74 84 5 7 8
62125 +0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62126 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62127 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62128 +4 4 4 4 4 4
62129 +5 5 5 4 0 0 4 0 0 60 73 81 193 200 203 220 221 221
62130 +193 200 203 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
62131 +220 221 221 220 221 221 220 221 221 137 136 137 43 57 68 6 6 6
62132 +4 0 0 1 1 1 4 4 4 4 4 4 4 4 4 4 4 4
62133 +4 4 5 4 4 5 3 2 2 1 1 2 2 5 5 13 20 25
62134 +22 40 52 22 40 52 13 20 25 2 3 3 1 1 2 3 3 3
62135 +4 5 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62136 +1 1 1 0 0 0 2 3 3 41 54 63 131 129 131 166 165 166
62137 +166 165 166 155 154 155 153 152 153 137 136 137 137 136 137 125 124 125
62138 +125 124 125 137 136 137 137 136 137 125 124 125 37 38 37 4 3 3
62139 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62140 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62141 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62142 +4 4 4 4 4 4
62143 +4 3 3 6 6 6 6 6 6 13 16 17 60 73 81 167 166 167
62144 +220 221 221 220 221 221 220 221 221 193 200 203 193 200 203 193 200 203
62145 +205 212 215 220 221 221 220 221 221 244 246 246 205 212 215 125 124 125
62146 +24 26 27 0 0 0 0 0 0 2 2 2 5 5 5 5 5 5
62147 +4 4 4 4 4 4 4 4 4 4 4 5 1 1 2 4 5 7
62148 +4 5 7 4 5 7 1 1 2 3 2 2 4 4 5 4 4 4
62149 +4 4 4 4 4 4 5 5 5 4 4 4 0 0 0 0 0 0
62150 +2 0 0 26 28 28 125 124 125 174 174 174 174 174 174 166 165 166
62151 +156 155 156 153 152 153 137 136 137 137 136 137 131 129 131 137 136 137
62152 +137 136 137 137 136 137 60 74 84 30 32 34 4 0 0 4 0 0
62153 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62154 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62155 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62156 +4 4 4 4 4 4
62157 +5 5 5 6 6 6 4 0 0 4 0 0 6 6 6 26 28 28
62158 +125 124 125 174 174 174 220 221 221 220 221 221 220 221 221 193 200 203
62159 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
62160 +193 200 203 60 74 84 13 16 17 4 0 0 0 0 0 3 3 3
62161 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 5 3 3 3
62162 +1 1 2 3 3 3 4 4 5 4 4 5 4 4 4 4 4 4
62163 +5 5 5 5 5 5 2 2 2 0 0 0 0 0 0 13 16 17
62164 +60 74 84 174 174 174 193 200 203 174 174 174 167 166 167 163 162 163
62165 +153 152 153 153 152 153 137 136 137 137 136 137 153 152 153 137 136 137
62166 +125 124 125 41 54 63 24 26 27 4 0 0 4 0 0 5 5 5
62167 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62168 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62169 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62170 +4 4 4 4 4 4
62171 +4 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
62172 +6 6 6 37 38 37 131 129 131 220 221 221 220 221 221 220 221 221
62173 +193 200 203 193 200 203 220 221 221 205 212 215 220 221 221 244 246 246
62174 +244 246 246 244 246 246 174 174 174 41 54 63 0 0 0 0 0 0
62175 +0 0 0 4 4 4 5 5 5 5 5 5 4 4 4 4 4 5
62176 +4 4 5 4 4 5 4 4 4 4 4 4 6 6 6 6 6 6
62177 +3 3 3 0 0 0 2 0 0 13 16 17 60 73 81 156 155 156
62178 +220 221 221 193 200 203 174 174 174 165 164 165 163 162 163 154 153 154
62179 +153 152 153 153 152 153 158 157 158 163 162 163 137 136 137 60 73 81
62180 +13 16 17 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
62181 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62182 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62183 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62184 +4 4 4 4 4 4
62185 +5 5 5 4 3 3 4 3 3 6 6 6 6 6 6 6 6 6
62186 +6 6 6 6 6 6 6 6 6 37 38 37 167 166 167 244 246 246
62187 +244 246 246 220 221 221 205 212 215 205 212 215 220 221 221 193 200 203
62188 +220 221 221 244 246 246 244 246 246 244 246 246 137 136 137 37 38 37
62189 +3 2 2 0 0 0 1 1 1 5 5 5 5 5 5 4 4 4
62190 +4 4 4 4 4 4 4 4 4 5 5 5 4 4 4 1 1 1
62191 +0 0 0 5 5 5 43 57 68 153 152 153 193 200 203 220 221 221
62192 +177 184 187 174 174 174 167 166 167 166 165 166 158 157 158 157 156 157
62193 +158 157 158 166 165 166 156 155 156 85 115 134 13 16 17 4 0 0
62194 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
62195 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62196 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62197 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62198 +4 4 4 4 4 4
62199 +5 5 5 4 3 3 6 6 6 6 6 6 4 0 0 6 6 6
62200 +6 6 6 6 6 6 6 6 6 6 6 6 13 16 17 60 73 81
62201 +177 184 187 220 221 221 220 221 221 220 221 221 205 212 215 220 221 221
62202 +220 221 221 205 212 215 220 221 221 244 246 246 244 246 246 205 212 215
62203 +125 124 125 30 32 34 0 0 0 0 0 0 2 2 2 5 5 5
62204 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 0 0
62205 +37 38 37 131 129 131 205 212 215 220 221 221 193 200 203 174 174 174
62206 +174 174 174 174 174 174 167 166 167 165 164 165 166 165 166 167 166 167
62207 +158 157 158 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
62208 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62209 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62210 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62211 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62212 +4 4 4 4 4 4
62213 +4 4 4 5 5 5 4 3 3 4 3 3 6 6 6 6 6 6
62214 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
62215 +26 28 28 125 124 125 205 212 215 220 221 221 220 221 221 220 221 221
62216 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
62217 +244 246 246 190 197 201 60 74 84 16 19 21 4 0 0 0 0 0
62218 +0 0 0 0 0 0 0 0 0 0 0 0 16 19 21 120 125 127
62219 +177 184 187 220 221 221 205 212 215 177 184 187 174 174 174 177 184 187
62220 +174 174 174 174 174 174 167 166 167 174 174 174 166 165 166 137 136 137
62221 +60 73 81 13 16 17 4 0 0 4 0 0 4 3 3 6 6 6
62222 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62223 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62224 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62225 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62226 +4 4 4 4 4 4
62227 +5 5 5 4 3 3 5 5 5 4 3 3 6 6 6 4 0 0
62228 +6 6 6 6 6 6 4 0 0 6 6 6 4 0 0 6 6 6
62229 +6 6 6 6 6 6 37 38 37 137 136 137 193 200 203 220 221 221
62230 +220 221 221 205 212 215 220 221 221 205 212 215 205 212 215 220 221 221
62231 +220 221 221 220 221 221 244 246 246 166 165 166 43 57 68 2 2 2
62232 +0 0 0 4 0 0 16 19 21 60 73 81 157 156 157 202 210 214
62233 +220 221 221 193 200 203 177 184 187 177 184 187 177 184 187 174 174 174
62234 +174 174 174 174 174 174 174 174 174 157 156 157 60 74 84 24 26 27
62235 +4 0 0 4 0 0 4 0 0 6 6 6 4 4 4 4 4 4
62236 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62237 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62238 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62239 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62240 +4 4 4 4 4 4
62241 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
62242 +6 6 6 4 0 0 6 6 6 6 6 6 6 6 6 4 0 0
62243 +4 0 0 4 0 0 6 6 6 24 26 27 60 73 81 167 166 167
62244 +220 221 221 220 221 221 220 221 221 205 212 215 205 212 215 205 212 215
62245 +205 212 215 220 221 221 220 221 221 220 221 221 205 212 215 137 136 137
62246 +60 74 84 125 124 125 137 136 137 190 197 201 220 221 221 193 200 203
62247 +177 184 187 177 184 187 177 184 187 174 174 174 174 174 174 177 184 187
62248 +190 197 201 174 174 174 125 124 125 37 38 37 6 6 6 4 0 0
62249 +4 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62250 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62251 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62252 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62253 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62254 +4 4 4 4 4 4
62255 +4 4 4 4 4 4 5 5 5 5 5 5 4 3 3 6 6 6
62256 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 6 6 6
62257 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
62258 +125 124 125 193 200 203 244 246 246 220 221 221 205 212 215 205 212 215
62259 +205 212 215 193 200 203 205 212 215 205 212 215 220 221 221 220 221 221
62260 +193 200 203 193 200 203 205 212 215 193 200 203 193 200 203 177 184 187
62261 +190 197 201 190 197 201 174 174 174 190 197 201 193 200 203 190 197 201
62262 +153 152 153 60 73 81 4 0 0 4 0 0 4 0 0 3 2 2
62263 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62264 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62265 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62266 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62267 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62268 +4 4 4 4 4 4
62269 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
62270 +6 6 6 4 3 3 4 3 3 4 3 3 6 6 6 6 6 6
62271 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 4 0 0
62272 +4 0 0 26 28 28 131 129 131 220 221 221 244 246 246 220 221 221
62273 +205 212 215 193 200 203 205 212 215 193 200 203 193 200 203 205 212 215
62274 +220 221 221 193 200 203 193 200 203 193 200 203 190 197 201 174 174 174
62275 +174 174 174 190 197 201 193 200 203 193 200 203 167 166 167 125 124 125
62276 +6 6 6 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
62277 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62278 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62279 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62280 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62281 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62282 +4 4 4 4 4 4
62283 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62284 +5 5 5 4 3 3 5 5 5 6 6 6 4 3 3 5 5 5
62285 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
62286 +4 0 0 4 0 0 6 6 6 41 54 63 158 157 158 220 221 221
62287 +220 221 221 220 221 221 193 200 203 193 200 203 193 200 203 190 197 201
62288 +190 197 201 190 197 201 190 197 201 190 197 201 174 174 174 193 200 203
62289 +193 200 203 220 221 221 174 174 174 125 124 125 37 38 37 4 0 0
62290 +4 0 0 4 3 3 6 6 6 4 4 4 4 4 4 4 4 4
62291 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62292 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62293 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62294 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62295 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62296 +4 4 4 4 4 4
62297 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62298 +4 4 4 5 5 5 4 3 3 4 3 3 4 3 3 5 5 5
62299 +4 3 3 6 6 6 5 5 5 4 3 3 6 6 6 6 6 6
62300 +6 6 6 6 6 6 4 0 0 4 0 0 13 16 17 60 73 81
62301 +174 174 174 220 221 221 220 221 221 205 212 215 190 197 201 174 174 174
62302 +193 200 203 174 174 174 190 197 201 174 174 174 193 200 203 220 221 221
62303 +193 200 203 131 129 131 37 38 37 6 6 6 4 0 0 4 0 0
62304 +6 6 6 6 6 6 4 3 3 5 5 5 4 4 4 4 4 4
62305 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62306 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62307 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62308 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62309 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62310 +4 4 4 4 4 4
62311 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62312 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
62313 +5 5 5 4 3 3 4 3 3 5 5 5 4 3 3 4 3 3
62314 +5 5 5 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
62315 +6 6 6 125 124 125 174 174 174 220 221 221 220 221 221 193 200 203
62316 +193 200 203 193 200 203 193 200 203 193 200 203 220 221 221 158 157 158
62317 +60 73 81 6 6 6 4 0 0 4 0 0 5 5 5 6 6 6
62318 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62319 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62320 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62321 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62322 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62323 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62324 +4 4 4 4 4 4
62325 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62326 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62327 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
62328 +5 5 5 5 5 5 6 6 6 6 6 6 4 0 0 4 0 0
62329 +4 0 0 4 0 0 26 28 28 125 124 125 174 174 174 193 200 203
62330 +193 200 203 174 174 174 193 200 203 167 166 167 125 124 125 6 6 6
62331 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 5 5 5
62332 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62333 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62334 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62335 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62336 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62337 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62338 +4 4 4 4 4 4
62339 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62340 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62341 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62342 +4 3 3 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
62343 +6 6 6 4 0 0 4 0 0 6 6 6 37 38 37 125 124 125
62344 +153 152 153 131 129 131 125 124 125 37 38 37 6 6 6 6 6 6
62345 +6 6 6 4 0 0 6 6 6 6 6 6 4 3 3 5 5 5
62346 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62347 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62348 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62349 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62350 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62351 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62352 +4 4 4 4 4 4
62353 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62354 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62355 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62356 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
62357 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
62358 +24 26 27 24 26 27 6 6 6 6 6 6 6 6 6 4 0 0
62359 +6 6 6 6 6 6 4 0 0 6 6 6 5 5 5 4 3 3
62360 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62361 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62362 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62363 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62364 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62365 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62366 +4 4 4 4 4 4
62367 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62368 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62369 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62370 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
62371 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
62372 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
62373 +4 0 0 6 6 6 6 6 6 4 3 3 5 5 5 4 4 4
62374 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62375 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62376 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62377 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62378 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62379 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62380 +4 4 4 4 4 4
62381 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62382 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62383 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62384 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 5 5 5
62385 +5 5 5 5 5 5 4 0 0 6 6 6 4 0 0 6 6 6
62386 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 4 0 0
62387 +6 6 6 4 3 3 5 5 5 4 3 3 5 5 5 4 4 4
62388 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62389 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62390 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62391 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62392 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62393 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62394 +4 4 4 4 4 4
62395 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62396 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62397 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62398 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62399 +4 3 3 6 6 6 4 3 3 6 6 6 6 6 6 6 6 6
62400 +4 0 0 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
62401 +6 6 6 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
62402 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62403 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62404 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62405 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62406 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62407 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62408 +4 4 4 4 4 4
62409 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62410 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62411 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62412 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62413 +4 4 4 5 5 5 4 3 3 5 5 5 4 0 0 6 6 6
62414 +6 6 6 4 0 0 6 6 6 6 6 6 4 0 0 6 6 6
62415 +4 3 3 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
62416 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62417 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62418 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62419 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62420 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62421 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62422 +4 4 4 4 4 4
62423 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62424 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62425 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62426 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62427 +4 4 4 5 5 5 4 3 3 5 5 5 6 6 6 4 3 3
62428 +4 3 3 6 6 6 6 6 6 4 3 3 6 6 6 4 3 3
62429 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62430 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62431 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62432 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62433 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62434 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62435 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62436 +4 4 4 4 4 4
62437 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62438 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62439 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62440 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62441 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 6 6 6
62442 +5 5 5 4 3 3 4 3 3 4 3 3 5 5 5 5 5 5
62443 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62444 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62445 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62446 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62447 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62448 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62449 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62450 +4 4 4 4 4 4
62451 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62452 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62453 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62454 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62455 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
62456 +5 5 5 4 3 3 5 5 5 5 5 5 4 4 4 4 4 4
62457 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62458 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62459 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62460 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62461 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62462 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62463 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62464 +4 4 4 4 4 4
62465 diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
62466 index 96093ae..b9eed29 100644
62467 --- a/drivers/xen/events/events_base.c
62468 +++ b/drivers/xen/events/events_base.c
62469 @@ -1568,7 +1568,7 @@ void xen_irq_resume(void)
62470 restore_pirqs();
62471 }
62472
62473 -static struct irq_chip xen_dynamic_chip __read_mostly = {
62474 +static struct irq_chip xen_dynamic_chip = {
62475 .name = "xen-dyn",
62476
62477 .irq_disable = disable_dynirq,
62478 @@ -1582,7 +1582,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
62479 .irq_retrigger = retrigger_dynirq,
62480 };
62481
62482 -static struct irq_chip xen_pirq_chip __read_mostly = {
62483 +static struct irq_chip xen_pirq_chip = {
62484 .name = "xen-pirq",
62485
62486 .irq_startup = startup_pirq,
62487 @@ -1602,7 +1602,7 @@ static struct irq_chip xen_pirq_chip __read_mostly = {
62488 .irq_retrigger = retrigger_dynirq,
62489 };
62490
62491 -static struct irq_chip xen_percpu_chip __read_mostly = {
62492 +static struct irq_chip xen_percpu_chip = {
62493 .name = "xen-percpu",
62494
62495 .irq_disable = disable_dynirq,
62496 diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
62497 index 00f40f0..e3c0b15 100644
62498 --- a/drivers/xen/evtchn.c
62499 +++ b/drivers/xen/evtchn.c
62500 @@ -201,8 +201,8 @@ static ssize_t evtchn_read(struct file *file, char __user *buf,
62501
62502 /* Byte lengths of two chunks. Chunk split (if any) is at ring wrap. */
62503 if (((c ^ p) & EVTCHN_RING_SIZE) != 0) {
62504 - bytes1 = (EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c)) *
62505 - sizeof(evtchn_port_t);
62506 + bytes1 = EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c);
62507 + bytes1 *= sizeof(evtchn_port_t);
62508 bytes2 = EVTCHN_RING_MASK(p) * sizeof(evtchn_port_t);
62509 } else {
62510 bytes1 = (p - c) * sizeof(evtchn_port_t);
62511 diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c
62512 index fef20db..d28b1ab 100644
62513 --- a/drivers/xen/xenfs/xenstored.c
62514 +++ b/drivers/xen/xenfs/xenstored.c
62515 @@ -24,7 +24,12 @@ static int xsd_release(struct inode *inode, struct file *file)
62516 static int xsd_kva_open(struct inode *inode, struct file *file)
62517 {
62518 file->private_data = (void *)kasprintf(GFP_KERNEL, "0x%p",
62519 +#ifdef CONFIG_GRKERNSEC_HIDESYM
62520 + NULL);
62521 +#else
62522 xen_store_interface);
62523 +#endif
62524 +
62525 if (!file->private_data)
62526 return -ENOMEM;
62527 return 0;
62528 diff --git a/firmware/Makefile b/firmware/Makefile
62529 index e297e1b..aeb0982 100644
62530 --- a/firmware/Makefile
62531 +++ b/firmware/Makefile
62532 @@ -35,9 +35,11 @@ fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \
62533 bnx2x/bnx2x-e1h-6.2.9.0.fw \
62534 bnx2x/bnx2x-e2-6.2.9.0.fw
62535 fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
62536 + bnx2/bnx2-mips-09-6.2.1b.fw \
62537 bnx2/bnx2-rv2p-09-6.0.17.fw \
62538 bnx2/bnx2-rv2p-09ax-6.0.17.fw \
62539 bnx2/bnx2-mips-06-6.2.1.fw \
62540 + bnx2/bnx2-mips-06-6.2.3.fw \
62541 bnx2/bnx2-rv2p-06-6.0.15.fw
62542 fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
62543 fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
62544 diff --git a/firmware/WHENCE b/firmware/WHENCE
62545 index 0c4d96d..b17700f 100644
62546 --- a/firmware/WHENCE
62547 +++ b/firmware/WHENCE
62548 @@ -653,21 +653,23 @@ Found in hex form in kernel source.
62549 Driver: BNX2 - Broadcom NetXtremeII
62550
62551 File: bnx2/bnx2-mips-06-6.2.1.fw
62552 +File: bnx2/bnx2-mips-06-6.2.3.fw
62553 File: bnx2/bnx2-rv2p-06-6.0.15.fw
62554 File: bnx2/bnx2-mips-09-6.2.1a.fw
62555 +File: bnx2/bnx2-mips-09-6.2.1b.fw
62556 File: bnx2/bnx2-rv2p-09-6.0.17.fw
62557 File: bnx2/bnx2-rv2p-09ax-6.0.17.fw
62558
62559 Licence:
62560 -
62561 - This file contains firmware data derived from proprietary unpublished
62562 - source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
62563 -
62564 - Permission is hereby granted for the distribution of this firmware data
62565 - in hexadecimal or equivalent format, provided this copyright notice is
62566 - accompanying it.
62567 -
62568 -Found in hex form in kernel source.
62569 +
62570 + This file contains firmware data derived from proprietary unpublished
62571 + source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
62572 +
62573 + Permission is hereby granted for the distribution of this firmware data
62574 + in hexadecimal or equivalent format, provided this copyright notice is
62575 + accompanying it.
62576 +
62577 +Found in hex form in kernel source.
62578
62579 --------------------------------------------------------------------------
62580
62581 diff --git a/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
62582 new file mode 100644
62583 index 0000000..da72bf1
62584 --- /dev/null
62585 +++ b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
62586 @@ -0,0 +1,5804 @@
62587 +:10000000080001180800000000004A68000000C84D
62588 +:1000100000000000000000000000000008004A6826
62589 +:100020000000001400004B30080000A00800000091
62590 +:100030000000569400004B44080058200000008443
62591 +:100040000000A1D808005694000001580000A25CEE
62592 +:100050000800321008000000000072F00000A3B495
62593 +:10006000000000000000000000000000080072F026
62594 +:1000700000000024000116A40800049008000400F9
62595 +:10008000000017D4000116C80000000000000000A6
62596 +:100090000000000000000000000000000000000060
62597 +:1000A000080000A80800000000003BFC00012E9C96
62598 +:1000B0000000000000000000000000000000000040
62599 +:1000C00000000000000000000A00004600000000E0
62600 +:1000D000000000000000000D636F6D362E322E33DD
62601 +:1000E0000000000006020302000000000000000300
62602 +:1000F000000000C800000032000000030000000003
62603 +:1001000000000000000000000000000000000000EF
62604 +:1001100000000010000001360000EA600000000549
62605 +:1001200000000000000000000000000000000008C7
62606 +:1001300000000000000000000000000000000000BF
62607 +:1001400000000000000000000000000000000000AF
62608 +:10015000000000000000000000000000000000009F
62609 +:10016000000000020000000000000000000000008D
62610 +:10017000000000000000000000000000000000007F
62611 +:10018000000000000000000000000010000000005F
62612 +:10019000000000000000000000000000000000005F
62613 +:1001A000000000000000000000000000000000004F
62614 +:1001B000000000000000000000000000000000003F
62615 +:1001C000000000000000000000000000000000002F
62616 +:1001D000000000000000000000000000000000001F
62617 +:1001E0000000000010000003000000000000000DEF
62618 +:1001F0000000000D3C02080024424AA03C03080015
62619 +:1002000024634B9CAC4000000043202B1480FFFD76
62620 +:10021000244200043C1D080037BD7FFC03A0F021F0
62621 +:100220003C100800261001183C1C0800279C4AA01E
62622 +:100230000E000168000000000000000D27470100CB
62623 +:1002400090E3000B2402001A94E5000814620028D1
62624 +:10025000000020218CE200003C0308008C63004475
62625 +:1002600094E60014000211C20002104030A4000203
62626 +:10027000005A10212463000130A50004A446008028
62627 +:100280003C010800AC23004410A000190004202BFE
62628 +:100290008F4202B804410008240400013C02080017
62629 +:1002A0008C420060244200013C010800AC22006046
62630 +:1002B00003E00008008010218CE2002094E3001687
62631 +:1002C00000002021AF4202808CE20004A743028498
62632 +:1002D000AF4202883C021000AF4202B83C02080064
62633 +:1002E0008C42005C244200013C010800AC22005C0E
62634 +:1002F00003E00008008010212747010090E3000B75
62635 +:100300002402000394E50008146200280000202164
62636 +:100310008CE200003C0308008C63004494E6001467
62637 +:10032000000211C20002104030A40002005A102145
62638 +:100330002463000130A50004A44600803C010800AD
62639 +:10034000AC23004410A000190004202B8F4202B8F7
62640 +:1003500004410008240400013C0208008C420060B3
62641 +:10036000244200013C010800AC22006003E00008C8
62642 +:10037000008010218CE2002094E300160000202170
62643 +:10038000AF4202808CE20004A7430284AF4202889D
62644 +:100390003C021000AF4202B83C0208008C42005CF4
62645 +:1003A000244200013C010800AC22005C03E000088C
62646 +:1003B000008010218F4301002402010050620003DD
62647 +:1003C000000311C20000000D000311C20002104022
62648 +:1003D000005A1021A440008003E000080000102112
62649 +:1003E0009362000003E00008AF80000003E0000813
62650 +:1003F0000000102103E00008000010212402010089
62651 +:1004000014820008000000003C0208008C4200FC3E
62652 +:10041000244200013C010800AC2200FC0A0000DD7F
62653 +:1004200030A200203C0208008C42008424420001DB
62654 +:100430003C010800AC22008430A2002010400008DB
62655 +:1004400030A300103C0208008C4201082442000145
62656 +:100450003C010800AC22010803E000080000000095
62657 +:1004600010600008000000003C0208008C420104FB
62658 +:10047000244200013C010800AC22010403E0000812
62659 +:10048000000000003C0208008C42010024420001F0
62660 +:100490003C010800AC22010003E00008000000005D
62661 +:1004A00027BDFFE8AFBF0010274401009483000878
62662 +:1004B000306200041040001B306600028F4202B818
62663 +:1004C00004410008240500013C0208008C42006041
62664 +:1004D000244200013C010800AC2200600A0001290E
62665 +:1004E0008FBF00108C82002094830016000028210A
62666 +:1004F000AF4202808C820004A7430284AF4202888C
62667 +:100500003C021000AF4202B83C0208008C42005C82
62668 +:10051000244200013C010800AC22005C0A000129D1
62669 +:100520008FBF001010C00006006028218F4401001A
62670 +:100530000E0000CD000000000A0001282405000183
62671 +:100540008F8200088F4301045043000700002821D8
62672 +:100550008F4401000E0000CD000000008F42010416
62673 +:10056000AF820008000028218FBF001000A01021DA
62674 +:1005700003E0000827BD001827BDFFE8AFBF001447
62675 +:10058000AFB00010974201083043700024022000F1
62676 +:100590001062000B286220011440002F000010217F
62677 +:1005A00024024000106200250000000024026000C8
62678 +:1005B00010620026000010210A0001658FBF0014A0
62679 +:1005C00027500100920200091040001A2403000184
62680 +:1005D0003C0208008C420020104000160000182148
62681 +:1005E0000E00049300000000960300083C0608007B
62682 +:1005F00094C64B5E8E0400188F8200209605000C76
62683 +:1006000000031C0000661825AC440000AC45000443
62684 +:1006100024040001AC400008AC40000CAC400010C9
62685 +:10062000AC400014AC4000180E0004B8AC43001CF1
62686 +:10063000000018210A000164006010210E0003254B
62687 +:10064000000000000A000164000010210E000EE905
62688 +:1006500000000000000010218FBF00148FB00010B8
62689 +:1006600003E0000827BD001827BDFFE0AFB2001867
62690 +:100670003C036010AFBF001CAFB10014AFB000105E
62691 +:100680008C6450002402FF7F3C1A800000822024EA
62692 +:100690003484380C24020037AC6450003C1208004B
62693 +:1006A00026524AD8AF42000824020C80AF420024F0
62694 +:1006B0003C1B80083C06080024C60324024010218D
62695 +:1006C0002404001D2484FFFFAC4600000481FFFDCC
62696 +:1006D000244200043C020800244204B03C0108000B
62697 +:1006E000AC224AE03C020800244202303C010800EF
62698 +:1006F000AC224AE43C020800244201743C03080096
62699 +:100700002463032C3C040800248403D83C0508001F
62700 +:1007100024A538F03C010800AC224B403C02080004
62701 +:10072000244202EC3C010800AC264B243C010800AA
62702 +:10073000AC254B343C010800AC234B3C3C01080089
62703 +:10074000AC244B443C010800AC224B483C0108005F
62704 +:10075000AC234ADC3C010800AC204AE83C0108001C
62705 +:10076000AC204AEC3C010800AC204AF03C010800F7
62706 +:10077000AC204AF43C010800AC204AF83C010800D7
62707 +:10078000AC204AFC3C010800AC204B003C010800B6
62708 +:10079000AC244B043C010800AC204B083C01080091
62709 +:1007A000AC204B0C3C010800AC204B103C01080075
62710 +:1007B000AC204B143C010800AC204B183C01080055
62711 +:1007C000AC264B1C3C010800AC264B203C01080029
62712 +:1007D000AC254B303C010800AC234B380E000623FF
62713 +:1007E000000000003C028000344200708C42000097
62714 +:1007F000AF8200143C0308008C6300208F82000449
62715 +:10080000104300043C0280000E00045BAF83000430
62716 +:100810003C028000344600703C0308008C6300A05A
62717 +:100820003C0208008C4200A4104300048F84001492
62718 +:100830003C010800AC2300A4A743009E8CCA000022
62719 +:100840003C0308008C6300BC3C0208008C4200B8EA
62720 +:100850000144202300641821000040210064202B63
62721 +:1008600000481021004410213C010800AC2300BCCA
62722 +:100870003C010800AC2200B88F5100003222000772
62723 +:100880001040FFDCAF8A00148CC600003C05080055
62724 +:100890008CA500BC3C0408008C8400B800CA30233E
62725 +:1008A00000A628210000102100A6302B0082202164
62726 +:1008B00000862021322700013C010800AC2500BC45
62727 +:1008C0003C010800AC2400B810E0001F32220002F6
62728 +:1008D0008F420100AF4200208F420104AF4200A8C6
62729 +:1008E0009342010B0E0000C6305000FF2E02001E86
62730 +:1008F00054400004001010800E0000C90A000213CA
62731 +:1009000000000000005210218C4200000040F80955
62732 +:1009100000000000104000053C0240008F4301042D
62733 +:100920003C026020AC4300143C024000AF4201385E
62734 +:100930003C0208008C420034244200013C010800C3
62735 +:10094000AC220034322200021040000E3222000499
62736 +:100950008F4201400E0000C6AF4200200E000295FB
62737 +:10096000000000003C024000AF4201783C02080059
62738 +:100970008C420038244200013C010800AC220038BF
62739 +:10098000322200041040FF983C0280008F42018018
62740 +:100990000E0000C6AF4200208F43018024020F00EA
62741 +:1009A00014620005000000008F420188A742009CED
62742 +:1009B0000A0002483C0240009362000024030050F9
62743 +:1009C000304200FF144300083C0240000E00027B4E
62744 +:1009D00000000000544000043C0240000E000D7571
62745 +:1009E000000000003C024000AF4201B83C02080099
62746 +:1009F0008C42003C244200013C010800AC22003C37
62747 +:100A00000A0001C83C0280003C0290003442000110
62748 +:100A100000822025AF4400208F4200200440FFFECA
62749 +:100A20000000000003E00008000000003C0280001D
62750 +:100A3000344200010082202503E00008AF4400207A
62751 +:100A400027BDFFE0AFB10014AFB0001000808821D7
62752 +:100A5000AFBF00180E00025030B000FF9362007D5F
62753 +:100A60000220202102028025A370007D8F70007477
62754 +:100A70003C0280000E000259020280241600000988
62755 +:100A80008FBF00188F4201F80440FFFE24020002CD
62756 +:100A9000AF5101C0A34201C43C021000AF4201F8B3
62757 +:100AA0008FBF00188FB100148FB0001003E0000852
62758 +:100AB00027BD002027BDFFE8AFBF0010974201848B
62759 +:100AC0008F440188304202001040000500002821B8
62760 +:100AD0000E000FAA000000000A00028D240500018C
62761 +:100AE0003C02FF0004800005008218243C02040040
62762 +:100AF000506200019362003E240500018FBF001088
62763 +:100B000000A0102103E0000827BD0018A360002208
62764 +:100B10008F4401400A00025E2405000127BDFFE862
62765 +:100B2000AFBF0014AFB0001093620000304400FF6C
62766 +:100B300038830020388200300003182B0002102B6D
62767 +:100B40000062182410600003240200501482008008
62768 +:100B50008FBF001493620005304200011040007CFA
62769 +:100B60008FBF0014934201482443FFFF2C6200050D
62770 +:100B7000104000788FB00010000310803C03080084
62771 +:100B800024634A68004310218C42000000400008A2
62772 +:100B9000000000000E0002508F4401408F70000CD6
62773 +:100BA0008F4201441602000224020001AF62000CD1
62774 +:100BB0000E0002598F4401408F420144145000043A
62775 +:100BC0008FBF00148FB000100A000F2027BD00183F
62776 +:100BD0008F62000C0A0003040000000097620010FE
62777 +:100BE0008F4301443042FFFF1462001A00000000EE
62778 +:100BF00024020001A76200108F4202380443001053
62779 +:100C00008F4201403C02003F3446F0003C0560004A
62780 +:100C10003C04FFC08CA22BBC0044182400461024C6
62781 +:100C20000002130200031D82106200390000000060
62782 +:100C30008F4202380440FFF7000000008F4201405D
62783 +:100C4000AF4202003C021000AF4202380A00032209
62784 +:100C50008FBF0014976200100A0003040000000018
62785 +:100C60000E0002508F440140976200128F430144EE
62786 +:100C70003050FFFF1603000224020001A762001299
62787 +:100C80000E0002598F4401408F42014416020004B5
62788 +:100C90008FBF00148FB000100A00029127BD00180A
62789 +:100CA000976200120A00030400000000976200141B
62790 +:100CB0008F4301443042FFFF14620006240200010A
62791 +:100CC0008FBF00148FB00010A76200140A00124AF0
62792 +:100CD00027BD0018976200141440001D8FBF001438
62793 +:100CE0000A00031C00000000976200168F430144B5
62794 +:100CF0003042FFFF1462000B240200018FBF00147A
62795 +:100D00008FB00010A76200160A000B1227BD001852
62796 +:100D10009742007824420004A76200100A000322D0
62797 +:100D20008FBF001497620016240300013042FFFFBA
62798 +:100D3000144300078FBF00143C0208008C4200706F
62799 +:100D4000244200013C010800AC2200708FBF001457
62800 +:100D50008FB0001003E0000827BD001827BDFFE892
62801 +:100D6000AFBF0014AFB000108F50010093620000BD
62802 +:100D700093430109304400FF2402001F106200A5C4
62803 +:100D80002862002010400018240200382862000A5F
62804 +:100D90001040000C2402000B286200081040002CB8
62805 +:100DA00000000000046000E52862000214400028F2
62806 +:100DB00024020006106200268FBF00140A00041FE0
62807 +:100DC0008FB000101062005E2862000B144000DC3F
62808 +:100DD0008FBF00142402000E106200738FB0001049
62809 +:100DE0000A00041F00000000106200C028620039E1
62810 +:100DF0001040000A2402008024020036106200CA5B
62811 +:100E000028620037104000B424020035106200C18F
62812 +:100E10008FBF00140A00041F8FB000101062002B57
62813 +:100E20002862008110400006240200C82402003914
62814 +:100E3000106200B48FBF00140A00041F8FB00010AE
62815 +:100E4000106200998FBF00140A00041F8FB00010B9
62816 +:100E50003C0208008C420020104000B98FBF0014F3
62817 +:100E60000E000493000000008F4201008F830020D9
62818 +:100E70009745010C97460108AC6200008F420104BF
62819 +:100E80003C04080094844B5E00052C00AC62000416
62820 +:100E90008F4201180006340000C43025AC620008FF
62821 +:100EA0008F42011C24040001AC62000C9342010A31
62822 +:100EB00000A22825AC650010AC600014AC600018DE
62823 +:100EC000AC66001C0A0003F58FBF00143C0208004A
62824 +:100ED0008C4200201040009A8FBF00140E00049333
62825 +:100EE00000000000974401083C03080094634B5E37
62826 +:100EF0009745010C000422029746010E8F820020C4
62827 +:100F0000000426000083202500052C003C030080FF
62828 +:100F100000A6282500832025AC400000AC4000043A
62829 +:100F2000AC400008AC40000CAC450010AC400014D4
62830 +:100F3000AC400018AC44001C0A0003F42404000177
62831 +:100F40009742010C14400015000000009362000558
62832 +:100F50003042001014400011000000000E0002504A
62833 +:100F6000020020219362000502002021344200107B
62834 +:100F70000E000259A36200059362000024030020C2
62835 +:100F8000304200FF1043006D020020218FBF00148B
62836 +:100F90008FB000100A000FC027BD00180000000D20
62837 +:100FA0000A00041E8FBF00143C0208008C4200207F
62838 +:100FB000104000638FBF00140E0004930000000077
62839 +:100FC0008F4201048F8300209744010C3C050800E8
62840 +:100FD00094A54B5EAC6200009762002C00042400D4
62841 +:100FE0003042FFFF008220253C02400E00A228254F
62842 +:100FF000AC640004AC600008AC60000CAC60001095
62843 +:10100000AC600014AC600018AC65001C0A0003F46E
62844 +:10101000240400010E00025002002021A7600008F5
62845 +:101020000E00025902002021020020210E00025E63
62846 +:10103000240500013C0208008C42002010400040C2
62847 +:101040008FBF00140E000493000000009742010CB3
62848 +:101050008F8300203C05080094A54B5E000214001D
62849 +:10106000AC700000AC620004AC6000088F64004CFF
62850 +:101070003C02401F00A22825AC64000C8F62005087
62851 +:1010800024040001AC6200108F620054AC620014B2
62852 +:10109000AC600018AC65001C8FBF00148FB000104E
62853 +:1010A0000A0004B827BD0018240200205082002541
62854 +:1010B0008FB000100E000F0A020020211040002007
62855 +:1010C0008FBF0014020020218FB0001000002821E3
62856 +:1010D0000A00025E27BD0018020020218FBF001405
62857 +:1010E0008FB000100A00058027BD00189745010C3D
62858 +:1010F000020020218FBF00148FB000100A0005A04D
62859 +:1011000027BD0018020020218FB000100A0005C57D
62860 +:1011100027BD00189345010D020020218FB000105B
62861 +:101120000A00060F27BD0018020020218FBF0014FF
62862 +:101130008FB000100A0005EB27BD00188FBF001408
62863 +:101140008FB0001003E0000827BD00188F4202781E
62864 +:101150000440FFFE2402000234840080AF440240B9
62865 +:10116000A34202443C02100003E00008AF420278B0
62866 +:101170003C04080094844B6A3C0208008C424B7487
62867 +:101180003083FFFF000318C000431021AF42003C32
62868 +:101190003C0208008C424B70AF4200383C020050C9
62869 +:1011A00034420008AF4200300000000000000000A0
62870 +:1011B000000000008F420000304200201040FFFD80
62871 +:1011C000000000008F4204003C010800AC224B608C
62872 +:1011D0008F4204043C010800AC224B643C02002016
62873 +:1011E000AF420030000000003C02080094424B680F
62874 +:1011F0003C03080094634B6C3C05080094A54B6EBF
62875 +:1012000024840001004310213083FFFF3C010800CB
62876 +:10121000A4224B683C010800A4244B6A1465000317
62877 +:10122000000000003C010800A4204B6A03E0000815
62878 +:10123000000000003C05000A27BDFFE80345282107
62879 +:101240003C04080024844B50AFBF00100E00051D65
62880 +:101250002406000A3C02080094424B523C0308005A
62881 +:1012600094634B6E3042000F244200030043180485
62882 +:1012700024027FFF0043102B10400002AF83001CAC
62883 +:101280000000000D0E00042A000000003C020800CF
62884 +:1012900094424B5A8FBF001027BD001803E000088E
62885 +:1012A000A74200A23C02000A034210219443000618
62886 +:1012B0003C02080094424B5A3C010800A4234B56C0
62887 +:1012C000004310238F83001C00021400000214034B
62888 +:1012D0000043102B03E000083842000127BDFFE85F
62889 +:1012E000AFBF00103C02000A0342102194420006E6
62890 +:1012F0003C010800A4224B560E00047700000000B9
62891 +:101300005440FFF93C02000A8FBF001003E00008C0
62892 +:1013100027BD001827BDFFE8AFBF00100E000477FF
62893 +:101320000000000010400003000000000E000485D3
62894 +:10133000000000003C0208008C424B608FBF001090
62895 +:1013400027430400AF4200383C0208008C424B6443
62896 +:1013500027BD0018AF830020AF42003C3C020005CF
62897 +:10136000AF42003003E00008AF8000188F82001801
62898 +:101370003C0300060002114000431025AF4200303C
62899 +:101380000000000000000000000000008F4200008C
62900 +:10139000304200101040FFFD27420400AF820020C1
62901 +:1013A00003E00008AF8000183C0608008CC64B64C0
62902 +:1013B0008F8500188F8300203C02080094424B5A0E
62903 +:1013C00027BDFFE024A50001246300202442000182
62904 +:1013D00024C70020AFB10014AFB00010AFBF001899
62905 +:1013E000AF850018AF8300203C010800A4224B5AAF
62906 +:1013F000309000FF3C010800AC274B6404C100089A
62907 +:101400000000882104E00006000000003C02080003
62908 +:101410008C424B60244200013C010800AC224B602E
62909 +:101420003C02080094424B5A3C03080094634B680A
62910 +:101430000010202B004310262C42000100441025F0
62911 +:10144000144000048F830018240200101462000F5F
62912 +:10145000000000000E0004A9241100013C03080054
62913 +:1014600094634B5A3C02080094424B681462000398
62914 +:10147000000000000E00042A000000001600000317
62915 +:10148000000000000E000493000000003C03080070
62916 +:1014900094634B5E3C02080094424B5C2463000161
62917 +:1014A0003064FFFF3C010800A4234B5E148200035C
62918 +:1014B000000000003C010800A4204B5E1200000662
62919 +:1014C000000000003C02080094424B5AA74200A2D0
62920 +:1014D0000A00050B022010210E0004770000000016
62921 +:1014E00010400004022010210E00048500000000BE
62922 +:1014F000022010218FBF00188FB100148FB0001090
62923 +:1015000003E0000827BD00203084FFFF30A5FFFF67
62924 +:101510000000182110800007000000003082000148
62925 +:101520001040000200042042006518210A00051343
62926 +:101530000005284003E000080060102110C00006EC
62927 +:1015400024C6FFFF8CA2000024A50004AC8200008A
62928 +:101550000A00051D2484000403E0000800000000C8
62929 +:1015600010A0000824A3FFFFAC86000000000000CC
62930 +:10157000000000002402FFFF2463FFFF1462FFFA53
62931 +:101580002484000403E0000800000000240200019D
62932 +:10159000AF62000CA7620010A7620012A7620014DD
62933 +:1015A00003E00008A76200163082007F034210218A
62934 +:1015B0003C08000E004818213C0208008C42002024
62935 +:1015C00027BDFFD82407FF80AFB3001CAFB20018BF
62936 +:1015D000AFB10014AFB00010AFBF00200080802179
62937 +:1015E00030B100FF0087202430D200FF1040002FD0
62938 +:1015F00000009821AF44002C9062000024030050AA
62939 +:10160000304200FF1443000E000000003C020800BE
62940 +:101610008C4200E00202102100471024AF42002C4F
62941 +:101620003C0208008C4200E0020210213042007FA0
62942 +:101630000342102100481021944200D43053FFFF90
62943 +:101640000E000493000000003C02080094424B5E30
62944 +:101650008F8300200011340000C2302500122C00BE
62945 +:101660003C02400000C2302534A50001AC700000EF
62946 +:101670008FBF0020AC6000048FB20018AC7300086C
62947 +:101680008FB10014AC60000C8FB3001CAC6500106F
62948 +:101690008FB00010AC60001424040001AC6000188E
62949 +:1016A00027BD00280A0004B8AC66001C8FBF0020CC
62950 +:1016B0008FB3001C8FB200188FB100148FB00010D0
62951 +:1016C00003E0000827BD00289343010F2402001007
62952 +:1016D0001062000E2865001110A0000724020012FD
62953 +:1016E000240200082405003A1062000600003021A0
62954 +:1016F00003E0000800000000240500351462FFFC30
62955 +:10170000000030210A000538000000008F420074FC
62956 +:1017100024420FA003E00008AF62000C27BDFFE8E1
62957 +:10172000AFBF00100E00025E240500018FBF001045
62958 +:1017300024020001A762001227BD00182402000144
62959 +:1017400003E00008A360002227BDFFE0AFB1001452
62960 +:10175000AFB00010AFBF001830B1FFFF0E00025055
62961 +:10176000008080219362003F24030004304200FF88
62962 +:101770001443000C02002021122000082402000A59
62963 +:101780000E00053100000000936200052403FFFEF7
62964 +:1017900000431024A362000524020012A362003F4C
62965 +:1017A000020020210E000259A360008116200003D0
62966 +:1017B000020020210E0005950000000002002021FB
62967 +:1017C000322600FF8FBF00188FB100148FB00010B9
62968 +:1017D000240500380A00053827BD002027BDFFE09A
62969 +:1017E000AFBF001CAFB20018AFB10014AFB0001013
62970 +:1017F0000E000250008080210E0005310000000024
62971 +:101800009362003F24120018305100FF123200038F
62972 +:101810000200202124020012A362003F936200050F
62973 +:101820002403FFFE004310240E000259A3620005AA
62974 +:10183000020020212405002016320007000030217C
62975 +:101840008FBF001C8FB200188FB100148FB0001032
62976 +:101850000A00025E27BD00208FBF001C8FB2001857
62977 +:101860008FB100148FB00010240500390A0005382C
62978 +:1018700027BD002027BDFFE8AFB00010AFBF0014A8
62979 +:101880009742010C2405003600808021144000108E
62980 +:10189000304600FF0E00025000000000240200123B
62981 +:1018A000A362003F93620005344200100E00053130
62982 +:1018B000A36200050E00025902002021020020212F
62983 +:1018C0000E00025E240500200A000604000000004D
62984 +:1018D0000E000538000000000E000250020020211A
62985 +:1018E000936200232403FF9F020020210043102461
62986 +:1018F0008FBF00148FB00010A36200230A000259AA
62987 +:1019000027BD001827BDFFE0AFBF0018AFB100141E
62988 +:10191000AFB0001030B100FF0E00025000808021F7
62989 +:10192000240200120E000531A362003F0E0002598E
62990 +:101930000200202102002021022030218FBF001848
62991 +:101940008FB100148FB00010240500350A0005384F
62992 +:1019500027BD0020A380002C03E00008A380002DF9
62993 +:101960008F4202780440FFFE8F820034AF42024073
62994 +:1019700024020002A34202443C02100003E00008DB
62995 +:10198000AF4202783C0360008C6254003042000891
62996 +:101990001440FFFD000000008C625408AF82000C70
62997 +:1019A00024020052AC605408AC645430AC6254342D
62998 +:1019B0002402000803E00008AC6254003C0260000E
62999 +:1019C0008C42540030420008104000053C03600087
63000 +:1019D0008C625400304200081440FFFD00000000FB
63001 +:1019E0008F83000C3C02600003E00008AC43540805
63002 +:1019F00090A3000024020005008040213063003FD6
63003 +:101A000000004821146200050000502190A2001C33
63004 +:101A100094A3001E304900FF306AFFFFAD00000CA8
63005 +:101A2000AD000010AD000024950200148D05001CCF
63006 +:101A30008D0400183042FFFF0049102300021100FE
63007 +:101A4000000237C3004038210086202300A2102B5B
63008 +:101A50000082202300A72823AD05001CAD04001838
63009 +:101A6000A5090014A5090020A50A001603E0000836
63010 +:101A7000A50A00228F4201F80440FFFE2402000262
63011 +:101A8000AF4401C0A34201C43C02100003E00008BF
63012 +:101A9000AF4201F83C0208008C4200B427BDFFE8C9
63013 +:101AA000AFBF001424420001AFB000103C01080099
63014 +:101AB000AC2200B48F4300243C02001F30AA00FF78
63015 +:101AC0003442FF8030D800FF006280240080F8217B
63016 +:101AD00030EF00FF1158003B01405821240CFF80DB
63017 +:101AE0003C19000A3163007F000310C00003194055
63018 +:101AF000006218213C0208008C4200DC25680001CD
63019 +:101B0000310D007F03E21021004310213043007F9C
63020 +:101B100003431821004C102400794821AF420024CF
63021 +:101B20008D220024016C1824006C7026AD22000C5C
63022 +:101B30008D220024310800FFAD22001095220014F0
63023 +:101B4000952300208D27001C3042FFFF3063FFFFEC
63024 +:101B50008D2600180043102300021100000227C345
63025 +:101B60000040282100C4302300E2102B00C23023A3
63026 +:101B700000E53823AD27001CAD2600189522002073
63027 +:101B8000A522001495220022154B000AA52200165A
63028 +:101B90008D2300248D220008254600013145008058
63029 +:101BA0001462000430C4007F108F000238AA008045
63030 +:101BB00000C0502151AF000131C800FF1518FFC906
63031 +:101BC000010058218F8400343082007F03421821A5
63032 +:101BD0003C02000A006218212402FF8000822024B7
63033 +:101BE000AF440024A06A0079A06A00838C62005090
63034 +:101BF0008F840034AC6200708C6500743C027FFFFF
63035 +:101C00003442FFFF00A228240E00066BAC6500746E
63036 +:101C1000AF5000248FBF00148FB0001003E0000805
63037 +:101C200027BD001827BDFFC0AFBE0038AFB70034D6
63038 +:101C3000AFB5002CAFB20020AFB1001CAFB00018A0
63039 +:101C4000AFBF003CAFB60030AFB40028AFB3002444
63040 +:101C50008F4500248F4600288F43002C3C02001F34
63041 +:101C60003442FF800062182400C230240080A82182
63042 +:101C7000AFA3001400A2F0240E00062FAFA60010A0
63043 +:101C80003C0208008C4200E02410FF8003608821A1
63044 +:101C900002A2102100501024AF4200243C02080090
63045 +:101CA0008C4200E002A210213042007F0342182142
63046 +:101CB0003C02000A00629021924200D293630084A9
63047 +:101CC000305700FF306300FF24020001106200342F
63048 +:101CD000036020212402000214620036000000008C
63049 +:101CE0000E001216024028219223008392220083C4
63050 +:101CF0003063007F3042007F000210C000031940B3
63051 +:101D0000006218213C0208008C4200DC02A2102173
63052 +:101D10000043382100F01024AF42002892250078BB
63053 +:101D20009224008330E2007F034218213C02000C21
63054 +:101D300014850007006280212402FFFFA24200F107
63055 +:101D40002402FFFFA64200F20A0007272402FFFF39
63056 +:101D500096020020A24200F196020022A64200F262
63057 +:101D60008E020024AE4200F492220083A24200F0D0
63058 +:101D70008E4200C8AE4200FC8E4200C4AE4200F863
63059 +:101D80008E220050AE4201008E4200CCAE420104D1
63060 +:101D9000922200853042003F0A0007823442004010
63061 +:101DA0000E00123902402821922200850A00078283
63062 +:101DB0003042003F936200852403FFDF3042003F42
63063 +:101DC000A36200859362008500431024A36200850E
63064 +:101DD0009363008393620078307400FF304200FF09
63065 +:101DE00010540036240AFF803C0C000C3283007F24
63066 +:101DF000000310C000031940006218213C020800D3
63067 +:101E00008C4200DC268800013109007F02A21021EB
63068 +:101E10000043382130E2007F0342182100EA1024F9
63069 +:101E2000AF420028006C80218E020024028A182410
63070 +:101E3000006A5826AE02000C8E020024310800FF12
63071 +:101E4000AE02001096020014960300208E07001CBC
63072 +:101E50003042FFFF3063FFFF8E060018004310235F
63073 +:101E600000021100000227C30040282100C43023D3
63074 +:101E700000E2102B00C2302300E53823AE07001C1F
63075 +:101E8000AE06001896020020A60200149602002258
63076 +:101E9000A602001692220079304200FF105400077B
63077 +:101EA0000000000051370001316800FF92220078E5
63078 +:101EB000304200FF1448FFCD0100A0219222008390
63079 +:101EC000A22200798E2200500A0007E2AE220070A2
63080 +:101ED000A22200858E22004C2405FF80AE42010C18
63081 +:101EE0009222008534420020A2220085924200D135
63082 +:101EF0003C0308008C6300DC305400FF3C02080007
63083 +:101F00008C4200E400143140001420C002A31821C8
63084 +:101F100000C4202102A210210064382100461021B3
63085 +:101F20000045182400E52824AF450028AF43002CC5
63086 +:101F30003042007F924400D030E3007F03422821EA
63087 +:101F4000034318213C02000C006280213C02000E79
63088 +:101F5000309600FF00A298211296002A000000008F
63089 +:101F60008E02000C02002021026028211040002572
63090 +:101F7000261000280E00064A000000009262000DA4
63091 +:101F800026830001307400FF3042007FA262000D02
63092 +:101F90002404FF801697FFF0267300203C020800FF
63093 +:101FA0008C4200DC0000A02102A210210044102479
63094 +:101FB000AF4200283C0208008C4200E43C030800C9
63095 +:101FC0008C6300DC02A2102100441024AF42002CDC
63096 +:101FD0003C0208008C4200E402A318213063007F19
63097 +:101FE00002A210213042007F034220210343182126
63098 +:101FF0003C02000C006280213C02000E0A0007A493
63099 +:10200000008298218E4200D8AE2200508E4200D825
63100 +:10201000AE22007092250083924600D19223008365
63101 +:10202000924400D12402FF8000A228243063007F64
63102 +:10203000308400FF00A628250064182A10600002E2
63103 +:1020400030A500FF38A50080A2250083A2250079D5
63104 +:102050000E00063D000000009222007E02A020211A
63105 +:10206000A222007A8E2300743C027FFF3442FFFFDD
63106 +:10207000006218240E00066BAE2300748FA20010BD
63107 +:10208000AF5E00248FBF003CAF4200288FBE0038F7
63108 +:102090008FA200148FB700348FB600308FB5002C9C
63109 +:1020A0008FB400288FB300248FB200208FB1001CA2
63110 +:1020B0008FB0001827BD004003E00008AF42002C9D
63111 +:1020C00090A2000024420001A0A200003C030800EE
63112 +:1020D0008C6300F4304200FF1443000F0080302175
63113 +:1020E000A0A000003C0208008C4200E48F84003471
63114 +:1020F000008220213082007F034218213C02000C24
63115 +:10210000006218212402FF8000822024ACC300005A
63116 +:1021100003E00008AF4400288C8200002442002025
63117 +:1021200003E00008AC82000094C200003C080800F4
63118 +:10213000950800CA30E7FFFF008048210102102106
63119 +:10214000A4C2000094C200003042FFFF00E2102B46
63120 +:1021500054400001A4C7000094A200003C03080002
63121 +:102160008C6300CC24420001A4A2000094A20000D1
63122 +:102170003042FFFF544300078F8600280107102BD1
63123 +:10218000A4A000005440000101003821A4C70000B1
63124 +:102190008F8600288CC4001CAF44003C94A2000031
63125 +:1021A0008F43003C3042FFFF000210C00062182144
63126 +:1021B000AF43003C8F42003C008220231880000483
63127 +:1021C000000000008CC200180A00084324420001ED
63128 +:1021D0008CC20018AF4200383C020050344200105C
63129 +:1021E000AF420030000000000000000000000000CE
63130 +:1021F0008F420000304200201040FFFD0000000030
63131 +:102200008F420404AD2200048F420400AD2200007E
63132 +:102210003C020020AF42003003E000080000000054
63133 +:1022200027BDFFE0AFB20018AFB10014AFB000108F
63134 +:10223000AFBF001C94C2000000C080213C12080007
63135 +:10224000965200C624420001A60200009603000038
63136 +:1022500094E2000000E03021144300058FB100300B
63137 +:102260000E000818024038210A000875000000001E
63138 +:102270008C8300048C820004244200400461000727
63139 +:10228000AC8200048C8200040440000400000000C2
63140 +:102290008C82000024420001AC8200009602000003
63141 +:1022A0003042FFFF50520001A600000096220000BD
63142 +:1022B00024420001A62200008F82002896230000FD
63143 +:1022C00094420016144300048FBF001C2402000136
63144 +:1022D000A62200008FBF001C8FB200188FB100141F
63145 +:1022E0008FB0001003E0000827BD00208F89002870
63146 +:1022F00027BDFFE0AFBF00188D220028274804004B
63147 +:1023000030E700FFAF4200388D22002CAF8800304C
63148 +:10231000AF42003C3C020005AF420030000000002C
63149 +:1023200000000000000000000000000000000000AD
63150 +:10233000000000008C82000C8C82000CAD020000BA
63151 +:102340008C820010AD0200048C820018AD020008DF
63152 +:102350008C82001CAD02000C8CA20014AD02001097
63153 +:102360008C820020AD02001490820005304200FFF4
63154 +:1023700000021200AD0200188CA20018AD02001C71
63155 +:102380008CA2000CAD0200208CA20010AD02002433
63156 +:102390008CA2001CAD0200288CA20020AD02002CF3
63157 +:1023A000AD060030AD000034978300263402FFFFF5
63158 +:1023B00014620002006020213404FFFF10E00011CD
63159 +:1023C000AD04003895230036952400362402000120
63160 +:1023D0003063FFFF000318C20069182190650040B8
63161 +:1023E000308400070082100400451025A0620040E0
63162 +:1023F0008F820028944200563042FFFF0A0008DC1A
63163 +:10240000AD02003C952300369524003624020001DD
63164 +:102410003063FFFF000318C2006918219065004077
63165 +:1024200030840007008210040002102700451024A9
63166 +:10243000A0620040AD00003C000000000000000071
63167 +:10244000000000003C02000634420040AF42003071
63168 +:102450000000000000000000000000008F420000AB
63169 +:10246000304200101040FFFD8F860028AF880030FA
63170 +:1024700024C2005624C7003C24C4002824C50032CE
63171 +:1024800024C600360E000856AFA200108FBF0018F9
63172 +:1024900003E0000827BD00208F8300243C060800CD
63173 +:1024A0008CC600E88F82003430633FFF0003198040
63174 +:1024B00000461021004310212403FF803046007F96
63175 +:1024C00000431024AF420028034618213C02000CB0
63176 +:1024D0000062302190C2000D30A500FF00003821BD
63177 +:1024E00034420010A0C2000D8F8900288F8A00247A
63178 +:1024F00095230036000A13823048000324020001AD
63179 +:10250000A4C3000E1102000B2902000210400005B6
63180 +:10251000240200021100000C240300010A0009201B
63181 +:102520000000182111020006000000000A00092026
63182 +:10253000000018218CC2002C0A000920244300014D
63183 +:102540008CC20014244300018CC200180043102BDD
63184 +:1025500050400009240700012402002714A20003B0
63185 +:10256000000000000A00092C240700019522003E0B
63186 +:1025700024420001A522003E000A138230430003DA
63187 +:102580002C62000210400009008028211460000421
63188 +:102590000000000094C200360A00093C3046FFFFEC
63189 +:1025A0008CC600380A00093C008028210000302138
63190 +:1025B0003C04080024844B780A00088900000000CD
63191 +:1025C000274901008D22000C9523000601202021BF
63192 +:1025D000000216023046003F3063FFFF240200274E
63193 +:1025E00000C0282128C7002810C2000EAF83002495
63194 +:1025F00010E00008240200312402002110C200096A
63195 +:102600002402002510C200079382002D0A00095BF6
63196 +:102610000000000010C200059382002D0A00095B33
63197 +:10262000000000000A0008F4000000000A0006266E
63198 +:102630000000000095230006912400058D25000C64
63199 +:102640008D2600108D2700188D28001C8D29002054
63200 +:10265000244200013C010800A4234B7E3C010800F9
63201 +:10266000A0244B7D3C010800AC254B843C010800B4
63202 +:10267000AC264B883C010800AC274B903C0108007D
63203 +:10268000AC284B943C010800AC294B9803E00008AF
63204 +:10269000A382002D8F87002827BDFFC0AFB3003471
63205 +:1026A000AFB20030AFB1002CAFB00028AFBF0038E0
63206 +:1026B0003C0208008C4200D094E3003030B0FFFFB1
63207 +:1026C000005010073045FFFF3063FFFF00C0982126
63208 +:1026D000A7A200103C110800963100C614A3000602
63209 +:1026E0003092FFFF8CE2002424420030AF42003CD5
63210 +:1026F0000A0009948CE2002094E200323042FFFF8D
63211 +:1027000054A2000827A400188CE2002C24420030B8
63212 +:10271000AF42003C8CE20028AF4200380A0009A218
63213 +:102720008F84002827A5001027A60020022038212A
63214 +:102730000E000818A7A000208FA200182442003025
63215 +:10274000AF4200388FA2001CAF42003C8F840028AB
63216 +:102750003C020005AF42003094820034274304005D
63217 +:102760003042FFFF0202102B14400007AF830030FD
63218 +:1027700094820054948300340202102100431023F9
63219 +:102780000A0009B63043FFFF94830054948200345A
63220 +:102790000223182100501023006218233063FFFF2A
63221 +:1027A000948200163042FFFF144300030000000033
63222 +:1027B0000A0009C424030001948200163042FFFF7E
63223 +:1027C0000043102B104000058F82003094820016C9
63224 +:1027D000006210233043FFFF8F820030AC530000B3
63225 +:1027E000AC400004AC520008AC43000C3C020006B4
63226 +:1027F00034420010AF420030000000000000000032
63227 +:10280000000000008F420000304200101040FFFD29
63228 +:10281000001018C2006418219065004032040007BF
63229 +:10282000240200018FBF00388FB300348FB2003014
63230 +:102830008FB1002C8FB000280082100400451025B5
63231 +:1028400027BD004003E00008A062004027BDFFA8AC
63232 +:10285000AFB60050AFB5004CAFB40048AFB30044C2
63233 +:10286000AFB1003CAFBF0054AFB20040AFB00038D2
63234 +:102870008C9000003C0208008C4200E88F860034F7
63235 +:10288000960300022413FF8000C2302130633FFF13
63236 +:102890000003198000C3382100F3102490B2000017
63237 +:1028A000AF42002C9203000230E2007F034230214D
63238 +:1028B0003C02000E00C28821306300C024020040A8
63239 +:1028C0000080A82100A0B021146200260000A021F1
63240 +:1028D0008E3400388E2200181440000224020001B9
63241 +:1028E000AE2200189202000D304200201440001564
63242 +:1028F0008F8200343C0308008C6300DC001238C077
63243 +:10290000001231400043102100C730210046382119
63244 +:1029100030E300073C02008030E6007800C230253A
63245 +:102920000343182100F31024AF4208002463090078
63246 +:10293000AF4608108E2200188C6300080043102157
63247 +:10294000AE2200188E22002C8E2300182442000193
63248 +:102950000062182B1060003D000000000A000A7899
63249 +:1029600000000000920300022402FFC00043102474
63250 +:10297000304200FF1440000524020001AE2200187E
63251 +:10298000962200360A000A613054FFFF8E2200149E
63252 +:1029900024420001AE22001892020000000216003C
63253 +:1029A0000002160304410029000000009602000204
63254 +:1029B00027A4001000802821A7A20016960200027A
63255 +:1029C00024070001000030213042FFFFAF820024C5
63256 +:1029D0000E000889AFA0001C960300023C0408000A
63257 +:1029E0008C8400E88F82003430633FFF000319803D
63258 +:1029F00000441021004310213043007F3C05000CAF
63259 +:102A00000053102403431821AF4200280065182109
63260 +:102A10009062000D001221403042007FA062000D44
63261 +:102A20003C0308008C6300E48F82003400431021D3
63262 +:102A30000044382130E2007F03421021004510217C
63263 +:102A400000F31824AF430028AEA200009222000D2C
63264 +:102A5000304200101040001302A020218F83002874
63265 +:102A60008EA40000028030219462003E2442FFFFC9
63266 +:102A7000A462003E948400029625000E3084FFFF7D
63267 +:102A80000E00097330A5FFFF8F82002894430034A5
63268 +:102A90009622000E1443000302A02021240200010C
63269 +:102AA000A382002C02C028210E0007FE00000000B7
63270 +:102AB0008FBF00548FB600508FB5004C8FB40048C4
63271 +:102AC0008FB300448FB200408FB1003C8FB000380C
63272 +:102AD00003E0000827BD00588F82002827BDFFD0E3
63273 +:102AE000AFB40028AFB20020AFBF002CAFB30024BA
63274 +:102AF000AFB1001CAFB00018904400D0904300D19B
63275 +:102B00000000A021309200FFA3A30010306300FF5B
63276 +:102B10008C5100D88C5300DC1072002B2402000171
63277 +:102B20003C0308008C6300E493A400108F820034FF
63278 +:102B30002406FF800004214000431021004410219E
63279 +:102B40003043007F00461024AF4200280343182181
63280 +:102B50003C02000C006218218C62000427A40014BF
63281 +:102B600027A50010022280210270102304400015C6
63282 +:102B7000AFA300149062000D00C21024304200FF89
63283 +:102B800014400007020088219062000D344200408A
63284 +:102B90000E0007FEA062000D0A000ABD93A20010FD
63285 +:102BA0000E0009E1241400018F830028AC7000D8C6
63286 +:102BB00093A20010A06200D193A200101452FFD87B
63287 +:102BC0000000000024020001168200048FBF002CC8
63288 +:102BD0000E000626000000008FBF002C8FB40028D6
63289 +:102BE0008FB300248FB200208FB1001C8FB000186B
63290 +:102BF00003E0000827BD003027BDFFD8AFB3001C9D
63291 +:102C0000AFB20018AFB10014AFB00010AFBF0020DA
63292 +:102C10000080982100E0802130B1FFFF0E00049376
63293 +:102C200030D200FF000000000000000000000000A3
63294 +:102C30008F820020AC510000AC520004AC5300085D
63295 +:102C4000AC40000CAC400010AC400014AC4000188C
63296 +:102C50003C03080094634B5E02038025AC50001CCB
63297 +:102C6000000000000000000000000000240400013B
63298 +:102C70008FBF00208FB3001C8FB200188FB10014DB
63299 +:102C80008FB000100A0004B827BD002827BDFFE858
63300 +:102C9000AFB00010AFBF001430A5FFFF30C600FF7B
63301 +:102CA0000080802124020C80AF420024000000003C
63302 +:102CB0000000000000000000000000000000000014
63303 +:102CC0000E000ACC000000003C040800248400E050
63304 +:102CD0008C8200002403FF808FBF001402021021A9
63305 +:102CE00000431024AF4200248C8200003C03000A01
63306 +:102CF000020280213210007F035010218FB000109B
63307 +:102D00000043102127BD001803E00008AF8200280F
63308 +:102D100027BDFFE8AFBF00108F4401403C0308000F
63309 +:102D20008C6300E02402FF80AF840034008318210C
63310 +:102D300000621024AF4200243C02000803424021FC
63311 +:102D4000950500023063007F3C02000A034318210E
63312 +:102D50000062182130A5FFFF3402FFFF0000302180
63313 +:102D60003C07602010A20006AF8300282402FFFF6A
63314 +:102D7000A5020002946500D40E000AF130A5FFFF01
63315 +:102D80008FBF001024020C8027BD001803E000084C
63316 +:102D9000AF4200243C020008034240219502000299
63317 +:102DA0003C0A0800954A00C63046FFFF14C00007E1
63318 +:102DB0003402FFFF8F8200288F8400343C0760209C
63319 +:102DC000944500D40A000B5A30A5FFFF10C200241E
63320 +:102DD0008F87002894E2005494E400163045FFFFEA
63321 +:102DE00000A6102300A6182B3089FFFF10600004F6
63322 +:102DF0003044FFFF00C51023012210233044FFFFA1
63323 +:102E0000008A102B1040000C012A1023240200011C
63324 +:102E1000A50200162402FFFFA502000294E500D4DB
63325 +:102E20008F8400340000302130A5FFFF3C07602074
63326 +:102E30000A000AF1000000000044102A10400008B7
63327 +:102E4000000000009502001630420001104000040E
63328 +:102E5000000000009742007E24420014A5020016E4
63329 +:102E600003E00008000000008F84002827BDFFE079
63330 +:102E7000AFBF0018948200349483003E1060001AA3
63331 +:102E80003048FFFF9383002C2402000114620027C6
63332 +:102E90008FBF00188F820028000818C23108000771
63333 +:102EA000006218212447003A244900542444002099
63334 +:102EB000244500302446003490620040304200FF38
63335 +:102EC0000102100730420001104000168FBF0018A9
63336 +:102ED0000E000856AFA900108F82002894420034DB
63337 +:102EE0000A000B733048FFFF94830036948200344D
63338 +:102EF0001043000E8FBF001894820036A482003465
63339 +:102F000094820056A48200548C82002CAC8200244F
63340 +:102F100094820032A48200309482003CA482003A61
63341 +:102F20008FBF00180A000B3327BD002003E0000804
63342 +:102F300027BD002027BDFFE8AFBF00108F4A01006A
63343 +:102F40003C0508008CA500E03C02080090424B8440
63344 +:102F50003C0C0800958C4B7E01452821304B003FEE
63345 +:102F600030A2007F03424021396900323C02000A4E
63346 +:102F70003963003F2C630001010240212D2900012B
63347 +:102F80002402FF8000A2282401234825AF8A0034B0
63348 +:102F900000801821AF450024000030210080282146
63349 +:102FA00024070001AF8800283C04080024844B78E3
63350 +:102FB000AF8C002415200007A380002D24020020E0
63351 +:102FC0005562000F006020213402FFFF5582000C83
63352 +:102FD000006020212402002015620005000000008E
63353 +:102FE0008C6300142402FFFF106200070000000041
63354 +:102FF0000E000889000000000A000BD0000000004D
63355 +:103000000E0008F4016028210E000B68000000008B
63356 +:103010008FBF001024020C8027BD001803E00008B9
63357 +:10302000AF4200243C0208008C4200E027BDFFA014
63358 +:10303000AFB1003C008210212411FF80AFBE0058C8
63359 +:10304000AFB70054AFB20040AFB00038AFBF005CC4
63360 +:10305000AFB60050AFB5004CAFB40048AFB30044BA
63361 +:10306000005110248F4800248F4900288F470028E2
63362 +:10307000AF4200243C0208008C4200E00080902116
63363 +:1030800024060006008210213042007F03421821EE
63364 +:103090003C02000A006280213C02001F3442FF8093
63365 +:1030A00000E2382427A40010260500F00122F024B5
63366 +:1030B0000102B8240E00051DAFA700308FA2001832
63367 +:1030C000AE0200C48FA2001CAE0200C88FA2002472
63368 +:1030D000AE0200CC93A40010920300D12402FF8022
63369 +:1030E0000082102400431025304900FF3083007F08
63370 +:1030F0003122007F0062102A10400004000310C03B
63371 +:1031000001311026304900FF000310C000031940B0
63372 +:10311000006218213C0208008C4200DC920400D2BC
63373 +:10312000024210210043102100511024AF42002818
63374 +:1031300093A300103063007F000310C00003194008
63375 +:10314000006218213C0208008C4200DC024210217F
63376 +:10315000004310213042007F034218213C02000C42
63377 +:10316000006240218FA300142402FFFF1062003090
63378 +:10317000309500FF93A2001195030014304400FF26
63379 +:103180003063FFFF0064182B1060000D000000008A
63380 +:10319000950400148D07001C8D0600183084FFFF75
63381 +:1031A00000442023000421000000102100E4382105
63382 +:1031B00000E4202B00C230210A000C4A00C4302158
63383 +:1031C000950400148D07001C8D0600183084FFFF45
63384 +:1031D000008220230004210000001021008018211B
63385 +:1031E00000C2302300E4202B00C4302300E3382346
63386 +:1031F000AD07001CAD06001893A20011A502001433
63387 +:1032000097A20012A50200168FA20014AD020010B2
63388 +:103210008FA20014AD02000C93A20011A5020020A1
63389 +:1032200097A20012A50200228FA20014AD02002472
63390 +:103230002406FF80024610243256007FAF4200244D
63391 +:10324000035618213C02000A006280218E02004CC5
63392 +:103250008FA200203124007F000428C0AE0200505D
63393 +:103260008FA200200004214000852821AE020070BA
63394 +:1032700093A2001001208821A202008393A20010D3
63395 +:10328000A2020079920200853042003FA20200852E
63396 +:103290003C0208008C4200DC024210210045102153
63397 +:1032A00000461024AF42002C3C0208008C4200E48F
63398 +:1032B0003C0308008C6300DC024210210044102112
63399 +:1032C00000461024AF4200283C0208008C4200E473
63400 +:1032D00002431821006518210242102100441021E8
63401 +:1032E0003042007F3063007F93A50010034220210D
63402 +:1032F000034318213C02000E006240213C02000CF6
63403 +:1033000010B1008C008248213233007F1660001912
63404 +:103310002404FF803C0208008C4200DC02421021A1
63405 +:1033200000441024AF42002C3C0208008C4200E410
63406 +:103330003C0308008C6300DC02421021004410248E
63407 +:10334000AF4200283C0208008C4200E402431821EE
63408 +:103350003063007F024210213042007F034220216F
63409 +:10336000034318213C02000E006240213C02000C85
63410 +:10337000008248219124000D2414FF8000001021B8
63411 +:1033800000942025A124000D950400029505001449
63412 +:103390008D07001C3084FFFF30A5FFFF8D0600184D
63413 +:1033A000008520230004210000E4382100C23021E0
63414 +:1033B00000E4202B00C43021AD07001CAD0600182E
63415 +:1033C00095020002A5020014A50000168D02000857
63416 +:1033D000AD0200108D020008AD02000C9502000243
63417 +:1033E000A5020020A50000228D020008AD020024E5
63418 +:1033F0009122000D30420040104000422622000180
63419 +:103400003C0208008C4200E0A3B300283C10000AF4
63420 +:103410000242102100541024AF4200243C02080054
63421 +:103420008C4200E0A380002C27A4002C0242102133
63422 +:103430003042007F03421821007018218C6200D8AE
63423 +:103440008D26000427A50028AFA9002C00461021D6
63424 +:10345000AC6200D80E0009E1AF83002893A30028D6
63425 +:103460008F8200280E000626A04300D10E000B68B4
63426 +:103470000000000002541024AF4200243C02080067
63427 +:103480008C4200DC00132940001320C000A420213E
63428 +:10349000024210210044102100541024AF42002C9D
63429 +:1034A0003C0208008C4200E43C0308008C6300DC12
63430 +:1034B00003563021024210210045102100541024EF
63431 +:1034C000AF4200283C0208008C4200E4024318216D
63432 +:1034D0000064182102421021004510213042007F73
63433 +:1034E0003063007F03422021034318213C02000E79
63434 +:1034F000006240213C02000C00D080210082482163
63435 +:10350000262200013043007F14750005304400FF7F
63436 +:103510002403FF800223102400431026304400FFC0
63437 +:1035200093A2001000808821250800281444FF760B
63438 +:103530002529002093A400108FA300142402FFFF6C
63439 +:103540001062000A308900FF2482000124830001F8
63440 +:103550003042007F14550005306900FF2403FF80CE
63441 +:103560000083102400431026304900FF92020078A7
63442 +:10357000305300FF11330032012088213C02080043
63443 +:103580008C4200DC3225007F000520C00005294068
63444 +:1035900000A42021024210212406FF8000441021B3
63445 +:1035A00000461024AF42002C3C0308008C6300DC72
63446 +:1035B0003C0208008C4200E4024318210242102120
63447 +:1035C0000045102100641821004610243063007F5C
63448 +:1035D000AF420028034318213C02000E0062402144
63449 +:1035E0003C0208008C4200E48D06000C0100202102
63450 +:1035F00002421021004510213042007F0342182171
63451 +:103600003C02000C0062482110C0000D012028215E
63452 +:103610000E00064A000000002402FF800222182447
63453 +:1036200026240001006228263082007F1455000203
63454 +:10363000308300FF30A300FF1473FFD000608821A7
63455 +:103640008E0300743C027FFF3442FFFF00621824A7
63456 +:10365000AE0300740E00066B02402021AF57002419
63457 +:103660008FA20030AF5E00288FBF005C8FBE005875
63458 +:103670008FB700548FB600508FB5004C8FB4004800
63459 +:103680008FB300448FB200408FB1003C8FB0003840
63460 +:1036900027BD006003E00008AF42002C27BDFFD823
63461 +:1036A000AFB1001CAFBF0020AFB000182751018898
63462 +:1036B000922200032408FF803C03000A3047007F69
63463 +:1036C000A3A700108F4601803C0208008C4200E056
63464 +:1036D000AF86003400C2282100A81024AF42002485
63465 +:1036E0009224000030A2007F0342102100431021E9
63466 +:1036F000AF8200283084007F24020002148200255B
63467 +:10370000000719403C0208008C4200E400C210216E
63468 +:103710000043282130A2007F0342182100A8102472
63469 +:10372000AF4200283C02000C006218219062000D9C
63470 +:10373000AFA3001400481025A062000D8FA3001451
63471 +:103740009062000D304200405040006A8FBF002060
63472 +:103750008F860028A380002C27A400148CC200D8D8
63473 +:103760008C63000427A50010004310210E0009E11E
63474 +:10377000ACC200D893A300108F8200280E0006264A
63475 +:10378000A04300D10E000B68000000000A000E0BE1
63476 +:103790008FBF00200E00062F00C020210E00063D26
63477 +:1037A000000000003C020008034280219223000137
63478 +:1037B0009202007B1443004F8FBF00209222000032
63479 +:1037C0003044007F24020004108200172882000584
63480 +:1037D00010400006240200052402000310820007A6
63481 +:1037E0008FB1001C0A000E0C0000000010820012B5
63482 +:1037F0008FBF00200A000E0C8FB1001C92050083C1
63483 +:10380000920600788E0700748F84003430A500FF84
63484 +:1038100000073E0230C600FF0E00067330E7007F4F
63485 +:103820000A000E0B8FBF00200E000BD78F840034D0
63486 +:103830000A000E0B8FBF002024020C80AF42002430
63487 +:103840009202003E30420040104000200000000084
63488 +:103850009202003E00021600000216030441000618
63489 +:10386000000000008F8400340E0005A024050093A2
63490 +:103870000A000E0B8FBF00209202003F24030018A5
63491 +:10388000304200FF1443000C8F84003424050039BB
63492 +:103890000E000538000030210E0002508F840034E5
63493 +:1038A00024020012A202003F0E0002598F8400344D
63494 +:1038B0000A000E0B8FBF0020240500360E000538CD
63495 +:1038C000000030210A000E0B8FBF00200E000250B6
63496 +:1038D0008F8400349202000534420020A2020005C9
63497 +:1038E0000E0002598F8400340E000FC08F84003404
63498 +:1038F0008FBF00208FB1001C8FB0001824020C80F5
63499 +:1039000027BD002803E00008AF42002427BDFFE8E0
63500 +:10391000AFB00010AFBF001427430100946200084D
63501 +:103920000002140000021403044100020000802180
63502 +:103930002410000194620008304200801040001AF8
63503 +:10394000020010219462000830422000104000164E
63504 +:10395000020010218C6300183C021C2D344219ED2A
63505 +:10396000240600061062000F3C0760213C0208009C
63506 +:103970008C4200D4104000078F8200288F830028DB
63507 +:10398000906200623042000F34420040A062006248
63508 +:103990008F8200288F840034944500D40E000AF1F1
63509 +:1039A00030A5FFFF020010218FBF00148FB0001060
63510 +:1039B00003E0000827BD001827BDFFE0AFB10014E9
63511 +:1039C000AFB00010A380002CAFBF00188F450100DE
63512 +:1039D0003C0308008C6300E02402FF80AF850034C4
63513 +:1039E00000A318213064007F0344202100621824C2
63514 +:1039F0003C02000A00822021AF430024275001002E
63515 +:103A00008E0200148C8300DCAF8400280043102356
63516 +:103A100018400004000088218E0200140E000A8461
63517 +:103A2000AC8200DC9202000B24030002304200FF53
63518 +:103A30001443002F0000000096020008304300FFEE
63519 +:103A40002402008214620005240200840E00093E54
63520 +:103A5000000000000A000E97000000001462000938
63521 +:103A6000240200818F8200288F8400343C0760216B
63522 +:103A7000944500D49206000530A5FFFF0A000E868B
63523 +:103A800030C600FF14620027000000009202000A06
63524 +:103A9000304300FF306200201040000430620040DC
63525 +:103AA0008F8400340A000E82240600401040000477
63526 +:103AB000000316008F8400340A000E8224060041A1
63527 +:103AC00000021603044100178F84003424060042CC
63528 +:103AD0008F8200283C076019944500D430A5FFFF71
63529 +:103AE0000E000AF1000000000A000E97000000001E
63530 +:103AF0009202000B24030016304200FF1043000620
63531 +:103B0000000000009202000B24030017304200FF67
63532 +:103B100014430004000000000E000E11000000001D
63533 +:103B2000004088210E000B68000000009202000A8D
63534 +:103B3000304200081040000624020C808F850028C7
63535 +:103B40003C0400080E0011EE0344202124020C80E6
63536 +:103B5000AF4200248FBF0018022010218FB0001048
63537 +:103B60008FB1001403E0000827BD002027BDFFE847
63538 +:103B7000AFBF0014AFB000108F5000243C0308000A
63539 +:103B80008C6300E08F4501002402FF8000A3182110
63540 +:103B90003064007F03442021006218243C02000AA4
63541 +:103BA00000822021AF850034AF4300249082006260
63542 +:103BB000AF8400283042000F34420050A0820062DF
63543 +:103BC0003C02001F3442FF800E00062602028024C1
63544 +:103BD000AF5000248FBF00148FB0001003E0000826
63545 +:103BE00027BD00183C0208008C4200201040001D38
63546 +:103BF0002745010090A300093C0200080342202150
63547 +:103C000024020018546200033C0200080A000ED887
63548 +:103C10002402000803422021240200161462000539
63549 +:103C20002402001724020012A082003F0A000EE2C4
63550 +:103C300094A700085462000694A700089362000548
63551 +:103C40002403FFFE00431024A362000594A700088C
63552 +:103C500090A6001B8CA4000094A500060A000ACCC4
63553 +:103C600000073C0003E000080000000027440100BA
63554 +:103C700094820008304500FF38A3008238A20084F7
63555 +:103C80002C6300012C420001006218251060000620
63556 +:103C9000240200839382002D1040000D00000000DC
63557 +:103CA0000A000B9B0000000014A2000524A2FF8064
63558 +:103CB0008F4301043C02602003E00008AC43001481
63559 +:103CC000304200FF2C420002104000032402002278
63560 +:103CD0000A000E3C0000000014A2000300000000D7
63561 +:103CE0000A000EA9000000000A000EC70000000034
63562 +:103CF0009363007E9362007A144300090000202140
63563 +:103D00009362000024030050304200FF144300047B
63564 +:103D1000240400019362007E24420001A362007E1D
63565 +:103D200003E00008008010218F4201F80440FFFEEC
63566 +:103D300024020002AF4401C0A34201C43C021000AF
63567 +:103D400003E00008AF4201F827BDFFE8AFBF001055
63568 +:103D50009362003F2403000A304200FF14430046F0
63569 +:103D6000000000008F6300548F62004C1062007DE1
63570 +:103D7000036030219362000024030050304200FFB2
63571 +:103D80001443002F000000008F4401403C02080053
63572 +:103D90008C4200E02403FF800082102100431024A5
63573 +:103DA000AF4200243C0208008C4200E08F650054C2
63574 +:103DB0003C03000A008220213084007F034410214C
63575 +:103DC00000431021AC4501089762003C8F63004C12
63576 +:103DD0003042FFFF0002104000621821AF63005C18
63577 +:103DE0008F6300548F64004C9762003C006418237A
63578 +:103DF0003042FFFF00031843000210400043102A26
63579 +:103E000010400006000000008F6200548F63004CD9
63580 +:103E1000004310230A000F58000210439762003C31
63581 +:103E20003042FFFF00021040ACC2006424020001D7
63582 +:103E3000A0C0007CA0C2008424020C80AF420024F9
63583 +:103E40000E000F0A8F440140104000478FBF001042
63584 +:103E50008F4301408F4201F80440FFFE240200021C
63585 +:103E6000AF4301C0A34201C43C021000AF4201F8BD
63586 +:103E70000A000FA88FBF00109362003F24030010B8
63587 +:103E8000304200FF14430004000000008F44014052
63588 +:103E90000A000F94000028219362003F24030016BB
63589 +:103EA000304200FF1443000424020014A362003FC8
63590 +:103EB0000A000FA2000000008F62004C8F630050C8
63591 +:103EC00000431023044100288FBF0010936200813B
63592 +:103ED00024420001A3620081936200812C4200040D
63593 +:103EE00014400010000000009362003F240300040F
63594 +:103EF000304200FF14430006000000008F440140E0
63595 +:103F00008FBF0010240500930A0005A027BD0018EC
63596 +:103F10008F440140240500938FBF00100A00060F54
63597 +:103F200027BD00188F4401400E0002500000000021
63598 +:103F30008F6200542442FFFFAF6200548F62005032
63599 +:103F40002442FFFFAF6200500E0002598F4401402F
63600 +:103F50008F4401408FBF0010240500040A00025E58
63601 +:103F600027BD00188FBF001003E0000827BD001810
63602 +:103F70008F4201889363007E00021402304400FFE8
63603 +:103F8000306300FF1464000D0000000093620080A5
63604 +:103F9000304200FF1044000900000000A3640080CC
63605 +:103FA0009362000024030050304200FF14430004D9
63606 +:103FB000000000000A0006D78F440180A36400803F
63607 +:103FC00003E000080000000027BDFFE8AFB00010CC
63608 +:103FD000AFBF00149362000524030030304200306C
63609 +:103FE00014430089008080213C0208008C4200209C
63610 +:103FF00010400080020020210E0004930000000009
63611 +:104000008F850020ACB000009362003E9363003FB8
63612 +:10401000304200FF00021200306300FF0043102511
63613 +:10402000ACA2000493620082000216000002160394
63614 +:1040300004410005000000003C0308008C630048B8
63615 +:104040000A000FE6000000009362003E304200408C
63616 +:10405000144000030000182193620081304300FFE8
63617 +:104060009362008200031E00304200FF0002140031
63618 +:1040700000621825ACA300088F620040ACA2000CBF
63619 +:104080008F620048ACA200108F62004CACA20014FA
63620 +:104090008F6200508F63004C0043102304410003E3
63621 +:1040A000000000000A000FFA8F62004C8F6200507F
63622 +:1040B000ACA200183C02080094424B5E3C03C00BCB
63623 +:1040C00000002021004310250E0004B8ACA2001C03
63624 +:1040D0008F6200548F840020AC8200008F620058F1
63625 +:1040E000AC8200048F62005CAC8200088F620060CA
63626 +:1040F0008F43007400431021AC82000C8F62006477
63627 +:10410000AC820010976300689762006A00031C008D
63628 +:104110003042FFFF00621825AC83001493620082D6
63629 +:1041200024030080304200FF14430003000000001D
63630 +:104130000A00102EAC8000188F63000C24020001CE
63631 +:104140001062000E2402FFFF9362003E30420040E6
63632 +:104150001440000A2402FFFF8F63000C8F4200749A
63633 +:10416000006218233C020800006210241440000280
63634 +:10417000000028210060282100051043AC820018AF
63635 +:104180003C02080094424B5E3C03C00C000020211E
63636 +:10419000004310258F8300200E0004B8AC62001C81
63637 +:1041A0008F6200188F8300203C05080094A54B5EA9
63638 +:1041B00024040001AC620000AC6000048F66006C57
63639 +:1041C0003C02400D00A22825AC6600088F6200DC8E
63640 +:1041D000AC62000CAC600010936200050002160097
63641 +:1041E000AC620014AC6000180E0004B8AC65001C92
63642 +:1041F000020020218FBF00148FB00010A3600005C3
63643 +:104200000A00042127BD00188FBF00148FB00010D2
63644 +:1042100003E0000827BD00189742007C30C600FF6D
63645 +:10422000A08600843047FFFF2402000514C2000B63
63646 +:1042300024E3465090A201122C42000710400007D0
63647 +:1042400024E30A0090A30112240200140062100467
63648 +:1042500000E210210A0010663047FFFF3067FFFFC1
63649 +:1042600003E00008A4870014AC87004C8CA201086E
63650 +:104270000080402100A0482100E2102330C600FF4A
63651 +:104280001840000393AA001324E2FFFCACA201082B
63652 +:1042900030C2000110400008000000008D020050F4
63653 +:1042A00000E2102304410013240600058D0200548F
63654 +:1042B00010E20010000000008D02005414E2001A09
63655 +:1042C000000000003C0208008C4200D83042002070
63656 +:1042D0001040000A2402000191030078910200833B
63657 +:1042E000144300062402000101002021012028219E
63658 +:1042F000240600040A00105400000000A1000084FD
63659 +:1043000011400009A50200148F4301008F4201F8FB
63660 +:104310000440FFFE24020002AF4301C0A34201C4D7
63661 +:104320003C021000AF4201F803E00008000000006A
63662 +:1043300027BDFFE88FA90028AFBF001000804021F3
63663 +:1043400000E918231860007330C600FFA080007CCD
63664 +:10435000A08000818CA2010800E210230440004DDF
63665 +:10436000000000008C8200509483003C8C84006428
63666 +:10437000004748233063FFFF012318210083202BCF
63667 +:1043800010800004000000008D0200640A0010B7D5
63668 +:1043900000E210219502003C3042FFFF0122102173
63669 +:1043A00000E21021AD02005C9502003C8D03005C30
63670 +:1043B0003042FFFF0002104000E210210043102BAA
63671 +:1043C00010400003000000000A0010C68D02005CCF
63672 +:1043D0009502003C3042FFFF0002104000E2102135
63673 +:1043E000AD02005CA1000084AD07004C8CA2010866
63674 +:1043F00000E210231840000224E2FFFCACA20108F6
63675 +:1044000030C200011040000A000000008D02005080
63676 +:1044100000E2102304410004010020218D02005419
63677 +:1044200014E20003000000000A0010E82406000562
63678 +:104430008D02005414E200478FBF00103C020800B8
63679 +:104440008C4200D8304200201040000A24020001B3
63680 +:1044500091030078910200831443000624020001B6
63681 +:1044600001002021240600048FBF00100A00105410
63682 +:1044700027BD0018A1000084A50200148F4301008D
63683 +:104480008F4201F80440FFFE240200020A00110DD1
63684 +:10449000000000008C82005C004910230043102BB8
63685 +:1044A00054400001AC87005C9502003C3042FFFFA5
63686 +:1044B0000062102B14400007240200029502003C09
63687 +:1044C0008D03005C3042FFFF00621821AD03005CE9
63688 +:1044D00024020002AD07004CA10200840E000F0A66
63689 +:1044E0008F4401001040001B8FBF00108F4301005C
63690 +:1044F0008F4201F80440FFFE24020002AF4301C0D6
63691 +:10450000A34201C43C021000AF4201F80A0011238B
63692 +:104510008FBF001030C200101040000E8FBF00107F
63693 +:104520008C83005C9482003C006918233042FFFFBA
63694 +:10453000006218213C023FFF3444FFFF0083102B30
63695 +:10454000544000010080182101231021AD02005CBD
63696 +:104550008FBF001003E0000827BD001827BDFFE84B
63697 +:104560008FAA0028AFBF00100080402100EA482336
63698 +:104570001920002130C600FF8C83005C8C8200640F
63699 +:10458000006A18230043102B5040001000691821C6
63700 +:1045900094A2011001221021A4A2011094A20110E2
63701 +:1045A0003042FFFF0043102B1440000A3C023FFF43
63702 +:1045B00094A2011000431023A4A201109482003C95
63703 +:1045C0003042FFFF0A00114200621821A4A001102E
63704 +:1045D0003C023FFF3444FFFF0083102B5440000196
63705 +:1045E0000080182100671021AD02005CA100007C52
63706 +:1045F0000A00118AA100008130C200101040003C66
63707 +:10460000000000008C820050004A1023184000383F
63708 +:10461000000000009082007C24420001A082007C07
63709 +:104620009082007C3C0308008C630024304200FF31
63710 +:104630000043102B1440005C8FBF00108CA20108B7
63711 +:1046400000E2102318400058000000008C83005442
63712 +:104650009482003C006A18233042FFFF0003184395
63713 +:10466000000210400043102A104000050000000026
63714 +:104670008C820054004A10230A001171000210437A
63715 +:104680009482003C3042FFFF00021040AD02006403
63716 +:104690009502003C8D0400649503003C3042FFFF0E
63717 +:1046A00000021040008220213063FFFF00831821A8
63718 +:1046B00001431021AD02005C8D020054ACA2010840
63719 +:1046C00024020002A10200840E000F0A8F440100A0
63720 +:1046D000104000358FBF00108F4301008F4201F85A
63721 +:1046E0000440FFFE240200020A0011B30000000093
63722 +:1046F000AD07004C8CA2010800E210231840000214
63723 +:1047000024E2FFFCACA2010830C200011040000A04
63724 +:10471000000000008D02005000E21023044100045C
63725 +:10472000010020218D02005414E20003000000006B
63726 +:104730000A0011AA240600058D02005414E2001A92
63727 +:104740008FBF00103C0208008C4200D8304200208D
63728 +:104750001040000A240200019103007891020083B6
63729 +:104760001443000624020001010020212406000455
63730 +:104770008FBF00100A00105427BD0018A10000844C
63731 +:10478000A50200148F4301008F4201F80440FFFE90
63732 +:1047900024020002AF4301C0A34201C43C02100046
63733 +:1047A000AF4201F88FBF001003E0000827BD0018DA
63734 +:1047B0008FAA00108C8200500080402130C600FF7C
63735 +:1047C000004A102300A048211840000700E01821EB
63736 +:1047D00024020001A0800084A0A00112A482001481
63737 +:1047E0000A001125AFAA0010A0800081AD07004C7F
63738 +:1047F0008CA2010800E210231840000224E2FFFC12
63739 +:10480000ACA2010830C20001104000080000000006
63740 +:104810008D0200500062102304410013240600059D
63741 +:104820008D02005410620010000000008D02005440
63742 +:1048300014620011000000003C0208008C4200D805
63743 +:10484000304200201040000A240200019103007849
63744 +:10485000910200831443000624020001010020217C
63745 +:1048600001202821240600040A0010540000000042
63746 +:10487000A1000084A502001403E00008000000006D
63747 +:1048800027BDFFE0AFBF0018274201009046000A95
63748 +:104890008C4800148C8B004C9082008430C900FF3F
63749 +:1048A00001681823304A00FF1C60001A2D460006DC
63750 +:1048B000240200010142100410C00016304300031E
63751 +:1048C000012030210100382114600007304C000C19
63752 +:1048D00015800009304200301440000B8FBF0018D3
63753 +:1048E0000A001214000000000E001125AFAB0010EA
63754 +:1048F0000A0012148FBF00180E00109AAFAB001000
63755 +:104900000A0012148FBF0018AFAB00100E0011BACE
63756 +:10491000AFAA00148FBF001803E0000827BD0020D5
63757 +:1049200024020003A08200848C82005403E000086B
63758 +:10493000ACA201083C0200080342182190620081E9
63759 +:10494000240600433C07601924420001A062008154
63760 +:10495000906300813C0208008C4200C0306300FF7D
63761 +:10496000146200102403FF803C0208008C4200E027
63762 +:104970000082102100431024AF4200243C020800B2
63763 +:104980008C4200E03C03000A008210213042007F8C
63764 +:104990000342102100431021944500D40A000AF17B
63765 +:1049A00030A5FFFF03E000080000000027BDFFE086
63766 +:1049B000AFBF0018AFB10014AFB000108F4201803C
63767 +:1049C0000080802100A088210E00121B00402021C1
63768 +:1049D000A20000848E0200548FBF00188FB0001018
63769 +:1049E000AE2201088FB1001403E0000827BD0020AB
63770 +:1049F00027BDFFE03C020008AFB00010AFBF0018B9
63771 +:104A0000AFB10014034280218F5101409203008412
63772 +:104A10008E0400508E02004C14820040306600FF6D
63773 +:104A20003C0208008C4200E02403FF800222102197
63774 +:104A300000431024AF4200243C0208008C4200E0F6
63775 +:104A40009744007C92050081022210213042007FB1
63776 +:104A5000034218213C02000A0062182114A0000B36
63777 +:104A60003084FFFF2402000554C20014248205DCB8
63778 +:104A70009062011224420001A062011224020C8003
63779 +:104A8000AF4200240A00127324020005A060011244
63780 +:104A90002402000514C20009248205DC9202008170
63781 +:104AA0002C4200075040000524820A009203008136
63782 +:104AB0002402001400621004008210213044FFFF21
63783 +:104AC000A60400140E00121B022020219602003CB6
63784 +:104AD0008E03004C022020213042FFFF00021040D4
63785 +:104AE000006218210E000250AE03005C9202007DAD
63786 +:104AF00002202021344200400E000259A202007D13
63787 +:104B00008F4201F80440FFFE24020002AF5101C0B1
63788 +:104B1000A34201C43C021000AF4201F88FBF00184D
63789 +:104B20008FB100148FB0001003E0000827BD0020F3
63790 +:104B300008000ACC08000B1408000B9808000BE4CE
63791 +:104B400008000C200A0000280000000000000000FF
63792 +:104B50000000000D6370362E322E3300000000007E
63793 +:104B60000602030400000000000000000000000036
63794 +:104B70000000000000000000000000000000000035
63795 +:104B80000000000000000000000000000000002005
63796 +:104B90000000000000000000000000000000000015
63797 +:104BA0000000000000000000000000000000000005
63798 +:104BB00000000000000000000000000000000001F4
63799 +:104BC0000000002B000000000000000400030D4066
63800 +:104BD00000000000000000000000000000000000D5
63801 +:104BE00000000000000000001000000300000000B2
63802 +:104BF0000000000D0000000D3C020800244258A4F3
63803 +:104C00003C03080024635F70AC4000000043202B8D
63804 +:104C10001480FFFD244200043C1D080037BD7FFCCA
63805 +:104C200003A0F0213C100800261000A03C1C080046
63806 +:104C3000279C58A40E0001AC000000000000000DED
63807 +:104C400027BDFFE83C096018AFBF00108D2C500055
63808 +:104C5000240DFF7F24080031018D5824356A380C5B
63809 +:104C600024070C003C1A8000AD2A50003C04800A46
63810 +:104C7000AF4800083C1B8008AF4700240E00091510
63811 +:104C8000AF8400100E0008D8000000000E000825B8
63812 +:104C9000000000000E001252000000003C046016EC
63813 +:104CA0008C8500003C06FFFF3C02535300A61824ED
63814 +:104CB0001062004734867C0094C201F2A780002C69
63815 +:104CC00010400003A78000CC38581E1EA798002C67
63816 +:104CD00094C201F810400004978300CC38591E1E7E
63817 +:104CE000A79900CC978300CC2C7F006753E000018C
63818 +:104CF000240300669784002C2C82040114400002D7
63819 +:104D000000602821240404003C0760008CE904387A
63820 +:104D10002403103C3128FFFF1103001F30B9FFFFAF
63821 +:104D200057200010A38000CE24020050A38200CEA2
63822 +:104D3000939F00CE53E0000FA78500CCA78000CC46
63823 +:104D4000978500CC8FBF0010A780002CA78000346F
63824 +:104D5000A78000E63C010800AC25008003E00008C5
63825 +:104D600027BD0018939F00CE57E0FFF5A78000CC29
63826 +:104D7000A78500CC978500CC8FBF0010A784002C9E
63827 +:104D8000A7800034A78000E63C010800AC25008025
63828 +:104D900003E0000827BD0018A38000CE8CCB003CA8
63829 +:104DA000316A00011140000E0000000030A7FFFF33
63830 +:104DB00010E0FFDE240200508CCC00C831860001D8
63831 +:104DC00014C0FFDC939F00CE0A00007A2402005139
63832 +:104DD0008C8F00043C0E60000A00005D01EE302163
63833 +:104DE0008CEF0808240D5708000F740211CD000441
63834 +:104DF00030B8FFFF240500660A00007B240404008D
63835 +:104E00001700FFCC939F00CE0A00007A24020050C6
63836 +:104E10008F8600103089FFFF000939408CC30010D5
63837 +:104E20003C08005000E82025AF4300388CC5001432
63838 +:104E300027420400AF82001CAF45003CAF44003065
63839 +:104E40000000000000000000000000000000000062
63840 +:104E50000000000000000000000000000000000052
63841 +:104E60008F4B0000316A00201140FFFD0000000060
63842 +:104E700003E00008000000008F840010948A001AEC
63843 +:104E80008C8700243149FFFF000940C000E8302131
63844 +:104E9000AF46003C8C8500248F43003C00A31023C8
63845 +:104EA00018400029000000008C8B002025620001C2
63846 +:104EB0003C0D005035AC0008AF420038AF4C00301C
63847 +:104EC00000000000000000000000000000000000E2
63848 +:104ED00000000000000000000000000000000000D2
63849 +:104EE0008F4F000031EE002011C0FFFD00000000D8
63850 +:104EF0008F4A04003C080020AC8A00108F4904044B
63851 +:104F0000AC890014AF4800300000000094860018FF
63852 +:104F10009487001C00C71821A48300189485001AE8
63853 +:104F200024A20001A482001A9498001A9499001EE9
63854 +:104F3000133800030000000003E000080000000038
63855 +:104F400003E00008A480001A8C8200200A0000DC24
63856 +:104F50003C0D00500A0000CD000000003C0308009A
63857 +:104F60008C6300208F82001827BDFFE810620008C4
63858 +:104F7000AFBF00100E000104AF8300183C0308000F
63859 +:104F80008C63002024040001106400048F89001049
63860 +:104F90008FBF001003E0000827BD00188FBF00106E
63861 +:104FA0003C076012A520000A9528000A34E500108D
63862 +:104FB00027BD00183106FFFF03E00008ACA60090F3
63863 +:104FC0003C0208008C42002027BDFFC8AFBF003460
63864 +:104FD000AFBE0030AFB7002CAFB60028AFB500248D
63865 +:104FE000AFB40020AFB3001CAFB20018AFB10014D3
63866 +:104FF00010400050AFB000108F840010948600065F
63867 +:105000009483000A00C3282330B6FFFF12C0004A71
63868 +:105010008FBF003494890018948A000A012A402323
63869 +:105020003102FFFF02C2382B14E0000202C020212F
63870 +:10503000004020212C8C0005158000020080A0215A
63871 +:10504000241400040E0000B3028020218F8700107A
63872 +:1050500002809821AF80001494ED000A028088211C
63873 +:105060001280004E31B2FFFF3C1770003C1540002B
63874 +:105070003C1E60008F8F001C8DEE000001D71824AD
63875 +:10508000507500500220202102A3802B160000350D
63876 +:105090003C182000507800470220202124100001F5
63877 +:1050A0008F83001414600039029158230230F823D2
63878 +:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D
63879 +:1050C0008F8700103C110020AF510030000000001D
63880 +:1050D00094E6000A3C1E601237D5001002662821B3
63881 +:1050E000A4E5000A94E2000A94F2000A94F400187D
63882 +:1050F0003057FFFF1292003BAEB700908CED0014CA
63883 +:105100008CE400100013714001AE4021000E5FC31B
63884 +:10511000010E502B008B4821012A1821ACE8001405
63885 +:10512000ACE3001002D3382330F6FFFF16C0FFB9FE
63886 +:105130008F8400108FBF00348FBE00308FB7002CDB
63887 +:105140008FB600288FB500248FB400208FB3001CC9
63888 +:105150008FB200188FB100148FB0001003E0000868
63889 +:1051600027BD0038107E001B000000001477FFCC24
63890 +:10517000241000010E00159B000000008F83001416
63891 +:105180001060FFCB0230F823029158238F87001064
63892 +:10519000017020210A0001973093FFFF8F830014D4
63893 +:1051A0001460FFCB3C110020AF5100300A000163B6
63894 +:1051B000000000000E00077D024028210A00015770
63895 +:1051C000004080210E00033A024028210A000157C6
63896 +:1051D000004080210E001463022020210A000157A4
63897 +:1051E000004080210E0000CD000000000A0001797F
63898 +:1051F00002D3382327BDFFE8AFB00010AFBF0014C3
63899 +:105200000E00003F000000003C028000345000709F
63900 +:105210000A0001BA8E0600008F4F000039EE00012F
63901 +:1052200031C20001104000248F8600A88E070000C4
63902 +:105230003C0C08008D8C003C3C0908008D2900388E
63903 +:1052400000E66823018D28210000502100AD302B9D
63904 +:10525000012A4021010620213C010800AC25003C28
63905 +:10526000AF8700A83C010800AC2400380E000106FE
63906 +:10527000000000003C0308008C6300701060FFE633
63907 +:10528000006020213C0508008CA500683C06080051
63908 +:105290008CC6006C0E00152A000000003C010800BE
63909 +:1052A000AC2000708F4F000039EE000131C20001C8
63910 +:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6
63911 +:1052C0003C0508008CA5003C3C0408008C84003898
63912 +:1052D000014B482300A938210082182100E9402B06
63913 +:1052E000006810213C010800AC27003C3C0108008C
63914 +:1052F000AC2200388F5F01002419FF0024180C0035
63915 +:1053000003F9202410980012AF840000AF4400205D
63916 +:10531000936D0000240C002031A600FF10CC001279
63917 +:10532000240E005010CE00043C194000AF59013843
63918 +:105330000A0001B3000000000E0011C800000000C8
63919 +:105340003C194000AF5901380A0001B300000000C9
63920 +:105350000E00011F000000003C194000AF59013849
63921 +:105360000A0001B3000000008F58010000802821CE
63922 +:10537000330F00FF01E020210E0002F1AF8F000487
63923 +:105380003C194000AF5901380A0001B30000000089
63924 +:1053900000A4102B2403000110400009000030215C
63925 +:1053A0000005284000A4102B04A0000300031840AF
63926 +:1053B0005440FFFC000528405060000A0004182BF0
63927 +:1053C0000085382B54E000040003184200C3302548
63928 +:1053D00000852023000318421460FFF900052842CD
63929 +:1053E0000004182B03E0000800C310218F4201B80D
63930 +:1053F0000440FFFE00000000AF4401803C031000A9
63931 +:1054000024040040AF450184A3440188A3460189D8
63932 +:10541000A747018A03E00008AF4301B83084FFFFCB
63933 +:105420000080382130A5FFFF000020210A00022A59
63934 +:10543000240600803087FFFF8CA40000240600387B
63935 +:105440000A00022A000028218F8300388F8600304E
63936 +:105450001066000B008040213C07080024E75A1822
63937 +:10546000000328C000A710218C4400002463000121
63938 +:10547000108800053063000F5466FFFA000328C04F
63939 +:1054800003E00008000010213C07080024E75A1C34
63940 +:1054900000A7302103E000088CC200003C0390000C
63941 +:1054A0003462000100822025AF4400208F45002097
63942 +:1054B00004A0FFFE0000000003E000080000000060
63943 +:1054C0003C038000346200010082202503E00008D4
63944 +:1054D000AF44002027BDFFE0AFB100143091FFFFC3
63945 +:1054E000AFB00010AFBF00181220001300A0802141
63946 +:1054F0008CA2000024040002240601401040000F8A
63947 +:10550000004028210E000C5C00000000000010216B
63948 +:10551000AE000000022038218FBF00188FB10014A8
63949 +:105520008FB0001000402021000028210000302111
63950 +:105530000A00022A27BD00208CA200000220382188
63951 +:105540008FBF00188FB100148FB0001000402021D1
63952 +:1055500000002821000030210A00022A27BD002077
63953 +:1055600000A010213087FFFF8CA500048C440000B0
63954 +:105570000A00022A2406000627BDFFE0AFB0001093
63955 +:10558000AFBF0018AFB100149363003E00808021CC
63956 +:105590000080282130620040000020211040000FD0
63957 +:1055A0008E1100000E000851022020219367000098
63958 +:1055B0002404005030E500FF50A400128E0F0000BC
63959 +:1055C000022020218FBF00188FB100148FB000106F
63960 +:1055D000A762013C0A00091127BD00200E000287C6
63961 +:1055E000000000000E0008510220202193670000F7
63962 +:1055F0002404005030E500FF14A4FFF20220202113
63963 +:105600008E0F00003C1008008E1000503C0D000C66
63964 +:10561000240BFF8001F05021314E007F01DA602120
63965 +:10562000018D4021014B4824AF4900280220202150
63966 +:105630008FBF00188FB100148FB00010A50200D6E4
63967 +:1056400027BD00200A000911AF8800D027BDFFE068
63968 +:10565000AFBF0018AFB10014AFB0001093660001E7
63969 +:10566000008080210E00025630D1000493640005B2
63970 +:10567000001029C2A765000034830040A363000521
63971 +:105680000E00025F020020210E00091302002021FB
63972 +:1056900024020001AF62000C02002821A762001062
63973 +:1056A00024040002A762001224060140A76200142D
63974 +:1056B0000E000C5CA76200161620000F8FBF0018AA
63975 +:1056C000978C00343C0B08008D6B00782588FFFF19
63976 +:1056D0003109FFFF256A0001012A382B10E000067E
63977 +:1056E000A78800343C0F6006240E001635ED00102C
63978 +:1056F000ADAE00508FBF00188FB100148FB00010F6
63979 +:1057000003E0000827BD002027BDFFE0AFB1001473
63980 +:10571000AFBF0018AFB0001000A088211080000AB1
63981 +:105720003C03600024020080108200120000000090
63982 +:105730000000000D8FBF00188FB100148FB0001053
63983 +:1057400003E0000827BD00208C682BF80500FFFE51
63984 +:1057500000000000AC712BC08FBF00188FB1001487
63985 +:105760008FB000103C09100027BD002003E00008A6
63986 +:10577000AC692BF80E00025600A0202193650005AD
63987 +:10578000022020210E00025F30B000FF2403003E03
63988 +:105790001603FFE7000000008F4401780480FFFE3D
63989 +:1057A000240700073C061000AF51014002202021D1
63990 +:1057B000A34701448FBF00188FB100148FB00010B1
63991 +:1057C000AF4601780A0002C227BD002027BDFFE8CE
63992 +:1057D000AFBF0014AFB000108F50002000000000D9
63993 +:1057E0000E000913AF440020AF5000208FBF0014FB
63994 +:1057F0008FB0001003E0000827BD00183084FFFFC1
63995 +:10580000008038212406003500A020210A00022A49
63996 +:10581000000028213084FFFF008038212406003654
63997 +:1058200000A020210A00022A0000282127BDFFD065
63998 +:10583000AFB3001C3093FFFFAFB50024AFB2001828
63999 +:10584000AFBF0028AFB40020AFB10014AFB000105C
64000 +:1058500030B5FFFF12600027000090218F90001CE0
64001 +:105860008E0300003C0680002402004000033E023C
64002 +:1058700000032C0230E4007F006688241482001D9F
64003 +:1058800030A500FF8F8300282C68000A510000100B
64004 +:105890008F910014000358803C0C0800258C56940E
64005 +:1058A000016C50218D49000001200008000000001B
64006 +:1058B00002B210213045FFFF0E000236240400849E
64007 +:1058C000162000028F90001CAF8000288F910014DA
64008 +:1058D000260C002026430001018080213072FFFF4A
64009 +:1058E00016200004AF8C001C0253502B1540FFDC27
64010 +:1058F00000000000024010218FBF00288FB5002457
64011 +:105900008FB400208FB3001C8FB200188FB1001429
64012 +:105910008FB0001003E0000827BD0030240E0034D3
64013 +:1059200014AE00F9000000009203000E241F168040
64014 +:105930003C07000CA36300219202000D0347C8211D
64015 +:105940003C066000A3620020961100123C0A7FFF13
64016 +:10595000354CFFFFA771003C960B00102403000597
64017 +:105960003168FFFFAF6800848E05001CAF5F002820
64018 +:105970008F3800008CC4444803057826008F3021FE
64019 +:10598000AF66004C8F69004C24CE00013C057F00BF
64020 +:10599000AF6900508F740050AF740054AF66007050
64021 +:1059A000AF6E00588F6D005824140050AF6D005C2E
64022 +:1059B000A3600023AF6C0064A36300378E02001461
64023 +:1059C000AF6200488F710048AF7100248E0B001841
64024 +:1059D000AF6B006C9208000CA3680036937F003E0A
64025 +:1059E00037F90020A379003E8F78007403058024E6
64026 +:1059F000360F4000AF6F007493640000308900FFE1
64027 +:105A0000513402452404FF803C04080024845A9841
64028 +:105A10000E00028D000000003C1008008E105A9805
64029 +:105A20000E00025602002021240600042407000173
64030 +:105A3000A366007D020020210E00025FA36700051F
64031 +:105A40008F5F017807E0FFFE240B0002AF5001409A
64032 +:105A5000A34B01448F90001C3C081000AF48017814
64033 +:105A60000A000362AF8000282CAD003751A0FF98D8
64034 +:105A70008F9100140005A0803C180800271856BC20
64035 +:105A8000029878218DEE000001C00008000000009F
64036 +:105A90002418000614B80011000000003C0808009B
64037 +:105AA0008D085A9824040005AF4800208E1F001866
64038 +:105AB000AF7F00188F79004CAF79001C8F650050C4
64039 +:105AC000122000C0AF6500700A000362AF84002896
64040 +:105AD0002406000710A60083240300063C050800E6
64041 +:105AE00024A55A980E000264240400818F90001CA3
64042 +:105AF0000011102B0A000362AF8200282407000463
64043 +:105B000014A7FFF6240500503C1808008F185A9877
64044 +:105B1000AF5800208E0F0008AF6F00408E090008BC
64045 +:105B2000AF6900448E14000CAF7400488E0E001054
64046 +:105B3000AF6E004C8E0D0010AF6D00848E0A001405
64047 +:105B4000AF6A00508E0C0018AF6C00548E04001C1D
64048 +:105B5000AF64005893630000306B00FF116501D8FB
64049 +:105B6000000000008F7400488F6900400289702394
64050 +:105B700005C000042404008C1620FFDE240200036C
64051 +:105B8000240400823C05080024A55A980E000287D0
64052 +:105B9000000000008F90001C000010210A0003622A
64053 +:105BA000AF820028240F000514AFFFCC240520008D
64054 +:105BB0003C0708008CE75A98AF4700208E06000487
64055 +:105BC000AF66005C9208000824100008A36800215A
64056 +:105BD0008F9F001C93F90009A37900208F86001C79
64057 +:105BE00090D8000A330400FF10900011000000005C
64058 +:105BF0002885000914A0006924020002240A00205C
64059 +:105C0000108A000B34058000288D002115A00008A3
64060 +:105C100024054000240E0040108E00053C050001C4
64061 +:105C200024140080109400023C050002240540006A
64062 +:105C30008F7800743C19FF00031980240205782531
64063 +:105C4000AF6F007490C4000BA36400818F84001CAC
64064 +:105C50009489000C11200192000000009490000C27
64065 +:105C60002406FFBF24050004A770003C908F000E9F
64066 +:105C7000A36F003E8F84001C9089000FA369003F32
64067 +:105C80008F8B001C8D6E00108F54007401D468231C
64068 +:105C9000AF6D00608D6A0014AF6A0064956C0018E7
64069 +:105CA000A76C00689563001AA763006A8D62001CE8
64070 +:105CB000AF62006C9167000EA367003E9368003EE0
64071 +:105CC0000106F8241220014BA37F003E8F90001C98
64072 +:105CD0000A000362AF8500282407002214A7FF7F73
64073 +:105CE000240300073C0B08008D6B5A981220000C0F
64074 +:105CF000AF4B00200A000362AF830028240C00335E
64075 +:105D000010AC0014240A00283C05080024A55A9869
64076 +:105D10000E00023C240400810A0003EB8F90001C5B
64077 +:105D20003C04080024845A980E00028D00000000F4
64078 +:105D30009363000024110050306200FF10510135C0
64079 +:105D4000000000008F90001C000018210A00036270
64080 +:105D5000AF8300283C0D08008DAD5A9824040081C3
64081 +:105D6000AF4D00203C05080024A55A980E00023CC7
64082 +:105D7000A36A00348F90001C240200090A00036209
64083 +:105D8000AF82002802B288213225FFFF0E000236C2
64084 +:105D9000240400840A0003628F90001C1082FFA478
64085 +:105DA00024050400288B000311600170240C0004FA
64086 +:105DB000240300015483FF9E240540000A00043B95
64087 +:105DC000240501003C04080024845A988F62004C8A
64088 +:105DD0000E00028D8F6300508F90001C0000202168
64089 +:105DE0000A000362AF8400288E1000042404008A95
64090 +:105DF000AF50002093790005333800021700015F8F
64091 +:105E0000020028219368002302002821311F00206E
64092 +:105E100017E0015A2404008D9367003F2406001206
64093 +:105E200030E200FF10460155240400810E000256A6
64094 +:105E30000200202193630023240500040200202196
64095 +:105E4000346B0042A36B00230E00025FA365007D4C
64096 +:105E50008F4401780480FFFE240A0002AF50014005
64097 +:105E6000A34A01448F90001C3C0C1000AF4C0178F9
64098 +:105E70000A0003EC0011102B8E1000042404008A89
64099 +:105E8000AF500020936E000531CD000215A0001622
64100 +:105E900002002821936F003F2414000402002821EF
64101 +:105EA00031E900FF11340010240400810E00025675
64102 +:105EB000020020219362002324080012241FFFFE09
64103 +:105EC00034460020A3660023A368003F93790005B1
64104 +:105ED00002002021033FC0240E00025FA3780005CA
64105 +:105EE00002002821000020210E00033400000000E1
64106 +:105EF0000A0003EB8F90001C8E1000043C03000886
64107 +:105F00000343A021AF500020928B000024050050D5
64108 +:105F1000316400FF10850161240700880200202100
64109 +:105F2000000028210E00022A2406000E928D000097
64110 +:105F3000240EFF800200282101AE8025A2900000DF
64111 +:105F4000240400040E000C5C240600300A0003EB5D
64112 +:105F50008F90001C8E0800043C14080026945A9868
64113 +:105F60003C010800AC285A98AF480020921F00035B
64114 +:105F700033F9000413200002240200122402000658
64115 +:105F8000A362003F920B001B2404FFC03165003F59
64116 +:105F900000A43825A367003E9206000330C200012A
64117 +:105FA00014400132000000008E020008AE8200089A
64118 +:105FB0003C0208008C425AA010400131000249C244
64119 +:105FC000A76900088E14000C240C0001240300149F
64120 +:105FD000AF74002C8E0E0010AF6E0030960D0016C0
64121 +:105FE000A76D0038960A0014A76A003AAF6C000C3F
64122 +:105FF000A76C0010A76C0012A76C0014A76C001609
64123 +:1060000012200136A3630034920F000331F0000226
64124 +:106010002E1100018F90001C262200080A00036246
64125 +:10602000AF8200288E0400043C0E0008034E30218D
64126 +:10603000AF4400208E05000890CD0000240C0050D5
64127 +:1060400031AA00FF114C00862407008824060009AD
64128 +:106050000E00022A000000000A0003EB8F90001CD3
64129 +:106060008E04001C0E00024100000000104000F4ED
64130 +:10607000004050218F89001C240700890140202105
64131 +:106080008D25001C240600010E00022A00000000DD
64132 +:106090000A0003EB8F90001C960D00023C140800D0
64133 +:1060A00026945A9831AA0004514000B83C10600070
64134 +:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA
64135 +:1060C000920700102408001430E200FF144800D6A4
64136 +:1060D00000000000960B00023163000114600165AE
64137 +:1060E000000000008E020004AE8200083C1408008C
64138 +:1060F0008E945AA01280015B000000008F7400741F
64139 +:106100003C0380002404000102835825AF6B007417
64140 +:10611000A3600005AF64000C3C0708008CE75AA0A0
64141 +:106120008F86001CA7640010000711C2A76400122C
64142 +:10613000A7640014A7640016A76200088CC80008B2
64143 +:1061400024040002AF68002C8CC5000CAF65003041
64144 +:1061500090DF0010A37F00348F99001C9330001152
64145 +:10616000A37000358F98001C930F0012A36F0036A8
64146 +:106170008F89001C912E0013A36E00378F90001C96
64147 +:10618000960D0014A76D0038960A0016A76A003A0B
64148 +:106190008E0C0018AF6C00245620FDCCAF84002874
64149 +:1061A0003C05080024A55A980E0002640000202136
64150 +:1061B0008F90001C0A0004A7000020218E1000040C
64151 +:1061C00024070081AF500020936900233134001070
64152 +:1061D000128000170000000002002021000028218A
64153 +:1061E0002406001F0E00022A000000000A0003EB34
64154 +:1061F0008F90001C3C05080024A55A980E000287C9
64155 +:10620000240400828F90001C000028210A000362F1
64156 +:10621000AF8500283C0408008C845A980E0014E8CE
64157 +:10622000000000008F90001C0A000482000018216A
64158 +:106230000E00025602002021937800230200202144
64159 +:10624000370F00100E00025FA36F002300003821FB
64160 +:1062500002002021000028210A0005A82406001FB2
64161 +:10626000920F000C31E90001112000030000000032
64162 +:106270009618000EA4D8002C921F000C33F90002CF
64163 +:1062800013200005000038218E0200149608001229
64164 +:10629000ACC2001CA4C8001A0A0005432406000969
64165 +:1062A0003C05080024A55A980E0002872404008BA0
64166 +:1062B0008F90001C0011282B0A000362AF85002874
64167 +:1062C000AF6000843C0A08008D4A5A983C0D0800D3
64168 +:1062D0008DAD0050240CFF803C02000C014D1821B4
64169 +:1062E000006C2024AF4400288E070014306B007F20
64170 +:1062F000017A282100A2C821AF2700D88E060014F9
64171 +:10630000AF9900D0AF2600DC8E080010251FFFFEDD
64172 +:106310000A000408AF3F01083C0508008CA55A9804
64173 +:106320003C1908008F39005024CCFFFE00B9C02171
64174 +:1063300003047824AF4F00283C1408008E945A9828
64175 +:106340003C0908008D2900500289702131CD007F61
64176 +:1063500001BA502101478021AE0600D8AF9000D08D
64177 +:10636000AE0000DC0A0003B1AE0C0108548CFE3014
64178 +:10637000240540000A00043B240510000E00032EF3
64179 +:10638000000000000A0003EB8F90001C8E0F442CCD
64180 +:106390003C186C62370979703C010800AC205A98AF
64181 +:1063A00015E9000824050140979F00349786002CCA
64182 +:1063B0000280282103E6C82B132000112404009238
64183 +:1063C000240501400E000C7A240400023C01080060
64184 +:1063D000AC225A98AF4200203C0508008CA55A9880
64185 +:1063E00010A00005240400830E00084500000000F2
64186 +:1063F00010400009240400833C05080024A55A9895
64187 +:106400000E000264000000008F90001C0011202B81
64188 +:106410000A000362AF8400280E0008490000000053
64189 +:106420000A00055F8F90001C0E00084D0000000060
64190 +:106430003C05080024A55A980A00062F2404008B66
64191 +:10644000240400040E000C7A240500301440002AB5
64192 +:10645000004050218F89001C240700830140202127
64193 +:106460008D25001C0A000551240600018E04000839
64194 +:106470000E000241000000000A00051BAE82000869
64195 +:106480003C05080024A55A980E00023C240400870D
64196 +:106490008F90001C0A0005360011102B8F830038E6
64197 +:1064A0008F8600301066FE9D000038213C070800F2
64198 +:1064B00024E75A1C000320C0008728218CAC000070
64199 +:1064C00011900061246A00013143000F5466FFFA05
64200 +:1064D000000320C00A0004F6000038213C05080033
64201 +:1064E00024A55A980E000287240400828F90001C75
64202 +:1064F0000A000536000010213C0B0008034B202148
64203 +:106500002403005024070001AF420020A0830000B4
64204 +:10651000A08700018F82001C90480004A08800180A
64205 +:106520008F85001C90A60005A08600198F9F001C77
64206 +:1065300093F90006A099001A8F90001C921800078A
64207 +:10654000A098001B8F94001C928F0008A08F001C45
64208 +:106550008F89001C912E0009A08E001D8F8D001CBC
64209 +:1065600091AC000AA08C001E8F8B001C3C0C080014
64210 +:10657000258C5A1C9163000B3C0B0800256B5A18A4
64211 +:10658000A083001F8F87001C90E8000CA0880020CB
64212 +:106590008F82001C9045000D24024646A0850021F4
64213 +:1065A0008F86001C90DF000EA09F00228F99001C98
64214 +:1065B0009330000FA09000238F98001C93140010BC
64215 +:1065C000A09400248F8F001C91E90011A089002560
64216 +:1065D0008F89001C8F8E00308F900038952D00140D
64217 +:1065E000000E18C025C80001A48D002895270016AC
64218 +:1065F000006C3021006BC821A487002A9525001863
64219 +:106600003108000FA485002CA482002E8D3F001CB1
64220 +:10661000ACCA0000AF88003011100006AF3F000088
64221 +:10662000000038218D25001C014020210A00055161
64222 +:1066300024060001250C00013184000F00003821E0
64223 +:106640000A0006B8AF8400383C07080024E75A184F
64224 +:106650000087302100003821ACA000000A0004F6B9
64225 +:10666000ACC000003C05080024A55A980A00062F7B
64226 +:10667000240400878E0400040E0002410000000084
64227 +:106680000A00056AAE8200083084FFFF30C600FFB2
64228 +:106690008F4201B80440FFFE00064400010430258B
64229 +:1066A0003C07200000C720253C031000AF400180BC
64230 +:1066B000AF450184AF44018803E00008AF4301B84F
64231 +:1066C00027BDFFE8AFB00010AFBF00143C0760006B
64232 +:1066D000240600021080000600A080210010102B6C
64233 +:1066E0008FBF00148FB0001003E0000827BD001812
64234 +:1066F0003C09600EAD2000348CE5201C8F82001C0C
64235 +:106700002408FFFC00A81824ACE3201C0E0006D1CE
64236 +:106710008C45000C0010102B8FBF00148FB00010A0
64237 +:1067200003E0000827BD00183C02600E344701005A
64238 +:1067300024090018274A040000000000000000009F
64239 +:10674000000000003C06005034C30200AF44003893
64240 +:10675000AF45003CAF430030014018218F4B000093
64241 +:10676000316800201100FFFD2406007F2408FFFF90
64242 +:106770008C6C000024C6FFFF24630004ACEC000016
64243 +:1067800014C8FFFB24E70004000000000000000024
64244 +:10679000000000003C0F0020AF4F00300000000060
64245 +:1067A00024AD020001A5702B2529FFFF008E2021BA
64246 +:1067B0001520FFE101A0282103E0000800000000EF
64247 +:1067C00027BDFFE0AFB10014AFBF0018AFB000109D
64248 +:1067D0003C05600E8CA20034008088211440000625
64249 +:1067E0003C0460008C87201C2408FFFC00E8302457
64250 +:1067F00034C30001AC83201C8F8B001C24090001D2
64251 +:10680000ACA90034956900028D6500148D70000CF0
64252 +:106810002D2400818D6700048D660008108000071C
64253 +:106820008D6A00102D2C00041580000E30CE00075C
64254 +:10683000312D000311A0000B000000002404008B88
64255 +:10684000020028210E0006D1240600030011102B9F
64256 +:106850008FBF00188FB100148FB0001003E0000844
64257 +:1068600027BD002015C0FFF62404008B3C03002048
64258 +:10687000AF4300300000000024020001AF8200148A
64259 +:106880000000000000000000000000003C1F01505C
64260 +:10689000013FC825253800033C0F600EAF47003884
64261 +:1068A00000181882AF46003C35E8003CAF59003074
64262 +:1068B000274704008F4400003086002010C0FFFDF1
64263 +:1068C00000000000106000082466FFFF2403FFFFA3
64264 +:1068D0008CEB000024C6FFFF24E70004AD0B000092
64265 +:1068E00014C3FFFB250800043C08600EAD09003806
64266 +:1068F0000000000000000000000000003C07002035
64267 +:10690000AF470030000000000E0006F901402021D2
64268 +:1069100002002821000020210E0006D124060003D9
64269 +:106920000011102B8FBF00188FB100148FB0001012
64270 +:1069300003E0000827BD002027BDFFE0AFB200182C
64271 +:106940003092FFFFAFB10014AFBF001CAFB000101A
64272 +:106950001640000D000088210A0007AA022010211D
64273 +:1069600024050001508500278CE5000C0000000D77
64274 +:10697000262300013071FFFF24E200200232382B71
64275 +:1069800010E00019AF82001C8F8200141440001622
64276 +:106990008F87001C3C0670003C0320008CE5000043
64277 +:1069A00000A62024148300108F84003C00054402BC
64278 +:1069B0003C09800000A980241480FFE9310600FF13
64279 +:1069C0002CCA00095140FFEB262300010006688015
64280 +:1069D0003C0E080025CE579801AE60218D8B00003B
64281 +:1069E0000160000800000000022010218FBF001C81
64282 +:1069F0008FB200188FB100148FB0001003E00008B0
64283 +:106A000027BD00200E0006D1240400841600FFD804
64284 +:106A10008F87001C0A00078BAF80003C90EF0002BC
64285 +:106A200000002021240600090E0006D1000F2E00D0
64286 +:106A30008F87001C0010102B0A00078BAF82003CD0
64287 +:106A4000020028210E0006DF240400018F87001CAD
64288 +:106A50000A00078BAF82003C020028210E0006DFEF
64289 +:106A6000000020210A0007C38F87001C0E00071FAB
64290 +:106A7000020020210A0007C38F87001C30B0FFFFEF
64291 +:106A8000001019C08F5801B80700FFFE3C1F2004FA
64292 +:106A90003C191000AF430180AF400184AF5F018813
64293 +:106AA000AF5901B80A00078C262300013082FFFF8E
64294 +:106AB00014400003000018210004240224030010E5
64295 +:106AC000308500FF14A000053087000F2466000801
64296 +:106AD0000004220230C300FF3087000F14E00005DD
64297 +:106AE000308900032468000400042102310300FF00
64298 +:106AF0003089000315200005388B0001246A00024C
64299 +:106B000000042082314300FF388B00013164000112
64300 +:106B100010800002246C0001318300FF03E00008B4
64301 +:106B200000601021308BFFFF000B394230E600FF80
64302 +:106B30003C09080025295998000640800109602178
64303 +:106B40008D8700003164001F240A0001008A1804A8
64304 +:106B500030A500FF00E3202514A000020003102749
64305 +:106B600000E22024240F000100CF700401096821F5
64306 +:106B7000000E282714800005ADA400008F86000CAD
64307 +:106B800000A6102403E00008AF82000C8F88000CE0
64308 +:106B900001C8102503E00008AF82000C3C06001F6E
64309 +:106BA0003C0360003084FFFF34C5FF8024020020D6
64310 +:106BB000AC602008AC60200CAC602010AC652014E8
64311 +:106BC000AC642018AC62200000000000000000004F
64312 +:106BD00003E000080000000027BDFFE82402FFFFDB
64313 +:106BE000AFBF0010AF82000C000020213C0608005F
64314 +:106BF00024C659982405FFFF248900010004408021
64315 +:106C00003124FFFF010618212C87002014E0FFFA31
64316 +:106C1000AC6500000E0008160000202124020001CF
64317 +:106C20003C04600024050020AC822018AC852000C4
64318 +:106C3000000000000000000000000000244A0001E5
64319 +:106C40003142FFFF2C46040014C0FFF78FBF001035
64320 +:106C500003E0000827BD00188F8300082C620400A1
64321 +:106C600003E00008384200018F830008246200011D
64322 +:106C700003E00008AF8200088F8300082462FFFF52
64323 +:106C800003E00008AF82000827BDFFE0AFB10014A9
64324 +:106C9000AFBF0018AFB000108F6B00303C06600033
64325 +:106CA00000808821ACCB20088F6A002C3C02800039
64326 +:106CB00024030008ACCA200C9769003A9768003892
64327 +:106CC00000092C003107FFFF00A72025ACC42010CD
64328 +:106CD000ACC22014ACC32000000000000000000083
64329 +:106CE000000000003C0360008C6D200031AC000807
64330 +:106CF0001580FFF9000000008C6E201405C00020F4
64331 +:106D0000000000000E0007DA8F84000C00024080B3
64332 +:106D10003C09080025295998010938218CE4000014
64333 +:106D20000E0007DA00028140020220213090FFFFAE
64334 +:106D3000020020210E0007F8000028213C0C8000F2
64335 +:106D4000022C58253210FFFF3C116000240A00205D
64336 +:106D5000AE2B2014AE302018AE2A20000000000018
64337 +:106D60000000000000000000020010218FBF00188A
64338 +:106D70008FB100148FB0001003E0000827BD002081
64339 +:106D80008C6620143C02001F3443FF803C1FFFE848
64340 +:106D900000C3C02437F9080003198021001079C20C
64341 +:106DA0003C0C8000022C582531F0FFFF3C116000A4
64342 +:106DB000240A0020AE2B2014AE302018AE2A20006A
64343 +:106DC0000000000000000000000000000200102190
64344 +:106DD0008FBF00188FB100148FB0001003E00008BF
64345 +:106DE00027BD002027BDFFE8AFB000103402FFFF31
64346 +:106DF0003090FFFFAFBF00141202000602002021F6
64347 +:106E00000E00081600000000020020210E0007F806
64348 +:106E1000240500018F8400088FBF00148FB000107C
64349 +:106E20002483FFFF27BD001803E00008AF8300089C
64350 +:106E3000000439C230E6003F00043B42000718401E
64351 +:106E4000240210002CC4002024C8FFE0AF42002C14
64352 +:106E5000246300011480000330A900FF00071840DC
64353 +:106E6000310600FF0003608024080001019A5821C8
64354 +:106E70003C0A000E00C82804016A382111200005D0
64355 +:106E8000000530278CE900000125302503E00008CB
64356 +:106E9000ACE600008CEE000001C6682403E00008A8
64357 +:106EA000ACED000027BDFFE8AFBF0014AFB000108D
64358 +:106EB0003C0460008C8508083403F00030A2F00028
64359 +:106EC00050430006240200018C8708083404E000C7
64360 +:106ED00030E6F00010C4001E24020002AF82004021
64361 +:106EE0003C1060003C0A0200AE0A0814240910009D
64362 +:106EF0003C08000E8E03440003482021AF49002CBB
64363 +:106F0000240501200E000CC0000030218F830040BA
64364 +:106F1000106000043C021691240B0001106B000E5F
64365 +:106F20003C023D2C344F0090AE0F44088FBF00143C
64366 +:106F30008FB000103C0C6000240E10003C0D0200CD
64367 +:106F400027BD0018AD8E442003E00008AD8D081069
64368 +:106F50000A0008E7AF8000403C0218DA344F009086
64369 +:106F6000AE0F44088FBF00148FB000103C0C6000BF
64370 +:106F7000240E10003C0D020027BD0018AD8E4420E9
64371 +:106F800003E00008AD8D08100A0008BB24050001CD
64372 +:106F90000A0008BB000028213C08080025085DA461
64373 +:106FA0002404FFFF010018212402001E2442FFFFD9
64374 +:106FB000AC6400000441FFFD246300043C070800AA
64375 +:106FC00024E75E208CE5FFFC2404001C240600015D
64376 +:106FD000308A001F0146480424840001000910275C
64377 +:106FE0002C8300201460FFFA00A22824ACE5FFFCEB
64378 +:106FF0003C05666634A4616E3C06080024C65EE06B
64379 +:10700000AF840058AF88009C2404FFFF00C0182103
64380 +:107010002402001F2442FFFFAC6400000441FFFD76
64381 +:10702000246300043C0766663C05080024A55EA0B6
64382 +:10703000AF86004834E6616EAF8600982404FFFFF7
64383 +:1070400000A018212402000F2442FFFFAC640000BE
64384 +:107050000441FFFD246300043C0B66663C06080007
64385 +:1070600024C65E203568616EAF8500A4AF880070CD
64386 +:107070002404FFFF00C018212402001F2442FFFF48
64387 +:10708000AC6400000441FFFD246300043C0D66660F
64388 +:107090003C0A0800254A5F6035AC616EAF860090FF
64389 +:1070A000AF8C005C2404FFFF014018212402000380
64390 +:1070B0002442FFFFAC6400000441FFFD2463000490
64391 +:1070C0003C09080025295F708D27FFFC2404000679
64392 +:1070D000240500013099001F0325C0042484000109
64393 +:1070E000001878272C8E002015C0FFFA00EF3824F6
64394 +:1070F000AD27FFFC3C09666624030400240403DC7E
64395 +:1071000024050200240600663522616E3C08080052
64396 +:1071100025085AA4AF820074AF830044AF83006C8B
64397 +:10712000AF830050AF830084AF8A008CAF840064CB
64398 +:10713000AF85004CAF860054AF840078AF85006007
64399 +:10714000AF86008001001821240200022442FFFFC4
64400 +:10715000AC6000000441FFFD24630004240400032C
64401 +:107160002403000C3C0A0800254A5AB0AF8A006884
64402 +:107170000A00098E2405FFFF000418802484000102
64403 +:10718000006858212C8700C014E0FFFBAD650000AB
64404 +:107190003C0E666635CD616E240C17A024081800DD
64405 +:1071A000AF8D0088AF8C009403E00008AF88007CAE
64406 +:1071B0002484007F000421C200004021000030210F
64407 +:1071C00000003821000028210A0009A5AF8400A092
64408 +:1071D0001060000624E7000100C4302124A500014E
64409 +:1071E0002CC20BF51440FFFA2CA300663C090800E2
64410 +:1071F00025295F6001201821240200032442FFFF9B
64411 +:10720000AC6000000441FFFD2463000410E0001A9C
64412 +:1072100024E3FFFF0003294210A0000A0000202100
64413 +:107220002406FFFF3C03080024635F602484000100
64414 +:107230000085502BAC660000250800011540FFFBBF
64415 +:107240002463000430E2001F10400008000868803A
64416 +:10725000240C0001004C38040008588001692821E2
64417 +:1072600024E6FFFF03E00008ACA6000001A94021CE
64418 +:107270002409FFFFAD09000003E000080000000042
64419 +:10728000AF4400283C04000C034420210005288260
64420 +:107290000A000CC000003021000421803C03600083
64421 +:1072A000AC6410080000000000052980AC65100CDB
64422 +:1072B0000000000003E000088C62100C27BDFFE80E
64423 +:1072C0000080282124040038AFBF00140E0009D527
64424 +:1072D000AFB0001024040E00AF4400283C10000C96
64425 +:1072E00003502021240500100E000CC000003021A6
64426 +:1072F00003501021AC400000AC40000424040038CE
64427 +:107300008FBF00148FB0001024053FFF27BD001869
64428 +:107310000A0009D58C430000000421803C03600072
64429 +:10732000AC641008000000008C62100C03E0000840
64430 +:107330000002118227BDFFC8AFB400208F940068FF
64431 +:10734000AFBE0030AFB7002CAFB600280000B821A8
64432 +:107350000080B021241E00C0AFBF0034AFB50024B0
64433 +:10736000AFB3001CAFB20018AFB10014AFB0001043
64434 +:107370000A000A12AFA5003C504000018F9400683B
64435 +:1073800027DEFFFF13C00028269400048E92000021
64436 +:107390003C03080024635DA01240FFF70283102B1A
64437 +:1073A0003C04080024845AA4028410230002A8C0CC
64438 +:1073B000000098210A000A212411000100118840D0
64439 +:1073C000122000260000000002B380210251282470
64440 +:1073D0000200202110A0FFF9267300010E0009DE33
64441 +:1073E000000000000016684032EC000101AC2021D2
64442 +:1073F0000E0009D5020028218F89009426F700018C
64443 +:107400008FA6003C3AEB0001316A00012528FFFFFE
64444 +:107410000011382702CAB021AF88009416E6FFE7B2
64445 +:1074200002479024AE92000002E010218FBF00348A
64446 +:107430008FBE00308FB7002C8FB600288FB5002488
64447 +:107440008FB400208FB3001C8FB200188FB10014CE
64448 +:107450008FB0001003E0000827BD00383C0E080084
64449 +:1074600025CE5DA0028E102B0A000A0DAE92000000
64450 +:1074700027BDFFD8AFB10014AFB00010AFBF0020E0
64451 +:10748000AFB3001CAFB2001800A0882110A0001FED
64452 +:10749000000480403C13080026735AA40A000A5ACC
64453 +:1074A0002412000112200019261000010E0009F517
64454 +:1074B00002002021000231422444FFA0000618806F
64455 +:1074C0003045001F2C8217A1007318212631FFFFC1
64456 +:1074D0001040FFF400B230048C690000020020214B
64457 +:1074E00024053FFF012640241500FFEE0126382524
64458 +:1074F0000E0009D5AC6700008F8A009426100001A9
64459 +:10750000254700011620FFE9AF8700948FBF0020B8
64460 +:107510008FB3001C8FB200188FB100148FB0001011
64461 +:1075200003E0000827BD00288F85009C00805821BB
64462 +:107530000000402100004821240A001F3C0C0800E4
64463 +:10754000258C5E1C3C0D080025AD5DA48CA60000BA
64464 +:1075500050C000140000402100AD1023000238C0CC
64465 +:10756000240300010A000A930000202115000003F3
64466 +:1075700000E410212448202400004821252900018E
64467 +:10758000512B00132506DFDC106000062484000167
64468 +:1075900000C3702415C0FFF5000318400A000A91CB
64469 +:1075A0000000402110AC002624A300040060282124
64470 +:1075B000254AFFFF1540FFE5AF85009C512B0004D5
64471 +:1075C0002506DFDC0000402103E000080100102157
64472 +:1075D0000006614230C5001F000C50803C070800C7
64473 +:1075E00024E75DA424040001014730211120000F8D
64474 +:1075F00000A420043C05080024A55E20148000059A
64475 +:107600002529FFFF24C6000410C50011000000005A
64476 +:10761000240400018CCF00000004C0270004204097
64477 +:1076200001F868241520FFF5ACCD00008F99007893
64478 +:1076300001001021032B482303E00008AF890078E4
64479 +:107640003C05080024A55DA40A000A9B0000402117
64480 +:107650003C06080024C65DA40A000AB42404000104
64481 +:10766000308800FF240200021102000A24030003F4
64482 +:107670001103005C8F8900A4240400041104005F3E
64483 +:1076800024050005110500670000182103E000082B
64484 +:10769000006010218F8900483C0C0800258C5EE0BA
64485 +:1076A0003C04080024845F60240300201060000F65
64486 +:1076B00000005821240D0002240E00033C0F080096
64487 +:1076C00025EF5EE08D27000014E0000B30F9FFFF8E
64488 +:1076D000252900040124C02B53000001018048210A
64489 +:1076E0002463FFFF5460FFF88D270000016018211C
64490 +:1076F00003E0000800601021132000323C0500FF69
64491 +:1077000030E200FF004030211040004200005021D4
64492 +:1077100024050001000020210005C84000A6C02467
64493 +:1077200017000003332500FF14A0FFFB2484000191
64494 +:10773000012CC023001828C000AA6021008C502111
64495 +:107740003144001F240C0001008C18040003102792
64496 +:1077500000E23024110D0041AD260000110E004C56
64497 +:10776000000A1840110D00368F87006C510E00562C
64498 +:107770008F8C0060240D0004110D005A8F8E008440
64499 +:10778000240E0005150EFFDA01601821240B1430B9
64500 +:1077900011400006000018218F8400A0246300011E
64501 +:1077A000006A402B1500FFFD016458218F8A00807C
64502 +:1077B000AF89008C016018212549FFFF0A000AEB00
64503 +:1077C000AF89008000E52024000736021080FFD03A
64504 +:1077D000240A001800075402314600FF0A000AF389
64505 +:1077E000240A00103C0C0800258C5EA03C04080014
64506 +:1077F00024845EE00A000ADA240300103C0C08002E
64507 +:10780000258C5E203C04080024845EA00A000AD96E
64508 +:107810008F89009000071A02306600FF0A000AF301
64509 +:10782000240A00088F89008C3C0C0800258C5F60BE
64510 +:107830003C04080024845F700A000ADA2403000470
64511 +:10784000000A4080250B003024E6FFFF016018216C
64512 +:10785000AF8900480A000AEBAF86006C000AC982B3
64513 +:10786000001978803C07080024E75EA001E720218A
64514 +:10787000000A18428C8F00003079001F032C380456
64515 +:107880000007C02701F860240A000B08AC8C000038
64516 +:10789000000331420006288000AF28213062001F1B
64517 +:1078A0008CB8000024630001004CC804000321428E
64518 +:1078B000001938270004108003073024004F2021CE
64519 +:1078C0000A000B4CACA60000000A68C025AB0032D1
64520 +:1078D000258AFFFF01601821AF8900A40A000AEB86
64521 +:1078E000AF8A0060254B1030AF89009001601821ED
64522 +:1078F00025C9FFFF0A000AEBAF8900843086000724
64523 +:107900002CC2000610400014000000000006408059
64524 +:107910003C030800246357BC010338218CE40000B9
64525 +:1079200000800008000000002409000310A9000ED8
64526 +:1079300000000000240A000510AA000B000000004F
64527 +:10794000240B000110AB0008000000008F8C00A089
64528 +:1079500010AC00050000000003E00008000010214A
64529 +:107960000A000A7900A020210A000AC700C02021CD
64530 +:1079700027BDFFE8308400FF240300021083000BC2
64531 +:10798000AFBF0010240600031086003A240800044C
64532 +:1079900010880068240E0005108E007F2CAF143074
64533 +:1079A0008FBF001003E0000827BD00182CA2003094
64534 +:1079B0001440FFFC8FBF001024A5FFD0000531C28A
64535 +:1079C000000668803C07080024E75EE001A730213C
64536 +:1079D0008CC900000005288230AC001F240B000178
64537 +:1079E000018B50048F840048012A4025ACC8000058
64538 +:1079F0008C83000050600001AF8600488F98006CB7
64539 +:107A000030AE000124A6FFFF270F000115C00002C1
64540 +:107A1000AF8F006C24A600010006414200082080C0
64541 +:107A2000008718218C79000030C2001F2406000155
64542 +:107A30000046F804033F382410E0FFDA8FBF00103F
64543 +:107A40000005C182001870803C0F080025EF5EA081
64544 +:107A500001CF48218D2B00000005684231A5001F91
64545 +:107A600000A66004016C502527BD001803E0000843
64546 +:107A7000AD2A00002CA7003014E0FFCA8FBF001011
64547 +:107A800030B900071723FFC724A8FFCE00086A02F9
64548 +:107A9000000D60803C0B0800256B5EA0018B30213F
64549 +:107AA0008CC40000000828C230AA001F240800016E
64550 +:107AB000014848048F8200A400891825ACC3000047
64551 +:107AC0008C5F000053E00001AF8600A40005704009
64552 +:107AD000000E7942000F28803C04080024845EE0F8
64553 +:107AE00000A418218C6B000025DF000131CD001FA0
64554 +:107AF000001F514201A86004016C4825000A108053
64555 +:107B0000AC690000004428218CA600008F9800601A
64556 +:107B100033F9001F8FBF00100328380400C77825F1
64557 +:107B2000270E000127BD0018ACAF000003E00008DD
64558 +:107B3000AF8E006024A5EFD02CB804001300FF998D
64559 +:107B40008FBF001000053142000658803C0A080033
64560 +:107B5000254A5E20016A30218CC4000030A3001F3A
64561 +:107B600024090001006910048F9900900082F82513
64562 +:107B7000ACDF00008F27000050E00001AF860090CE
64563 +:107B80008F8D00848FBF001027BD001825AC000129
64564 +:107B900003E00008AF8C008415E0FF828FBF001067
64565 +:107BA0008F8600A0000610400046F821001F21002B
64566 +:107BB00003E4C8210019384024F8143000B8402BE1
64567 +:107BC0001100FF788FBF001024A4EBD00E00021329
64568 +:107BD00000C0282100027942000F70803C0D08008F
64569 +:107BE00025AD5F6001CD20218C8B0000304C001F43
64570 +:107BF00024060001018618048F89008C016350253A
64571 +:107C0000AC8A00008D25000050A00001AF84008CDC
64572 +:107C10008F9800808FBF001027BD00182708000133
64573 +:107C200003E00008AF88008030A5000724030003AC
64574 +:107C300010A3001028A2000414400008240700022A
64575 +:107C40002403000410A300152408000510A8000F49
64576 +:107C50008F8500A003E000080000000014A7FFFDCE
64577 +:107C60000080282114C3FFFB240400020A000B8BB0
64578 +:107C700000000000240900050080282110C9FFFB36
64579 +:107C80002404000303E000080000000014C5FFF115
64580 +:107C9000008028210A000B8B24040005240A00011F
64581 +:107CA0000080282110CAFFF12404000403E000082A
64582 +:107CB0000000000027BDFFE0AFB00010000581C24A
64583 +:107CC0002603FFD024C5003F2C6223D024C6007FAA
64584 +:107CD000AFB20018AFB10014AFBF001C309100FF6D
64585 +:107CE000000691C2000529820200202110400008F0
64586 +:107CF0002403FFFF0E000A4B0000000002002021B9
64587 +:107D0000022028210E000C390240302100001821E9
64588 +:107D10008FBF001C8FB200188FB100148FB00010FD
64589 +:107D20000060102103E0000827BD002027BDFFD818
64590 +:107D300024A2007FAFB3001CAFB20018000299C2AA
64591 +:107D4000309200FF24A3003F02402021026028213E
64592 +:107D5000AFB10014AFB00010AFBF00200E000B6E2B
64593 +:107D60000003898200408021004020210220282138
64594 +:107D700014400009000018218FBF00208FB3001CA1
64595 +:107D80008FB200188FB100148FB000100060102166
64596 +:107D900003E0000827BD00280E0009FC00000000D9
64597 +:107DA00000402821020020211051FFF3001019C0CB
64598 +:107DB0000E000A4B00000000020020210240282192
64599 +:107DC0000E000C39026030218FBF00208FB3001CE1
64600 +:107DD0008FB200188FB100148FB00010000018216E
64601 +:107DE0000060102103E0000827BD00283084FFFF59
64602 +:107DF00030A5FFFF1080000700001821308200012D
64603 +:107E00001040000200042042006518211480FFFB8E
64604 +:107E10000005284003E000080060102110C00007A2
64605 +:107E2000000000008CA2000024C6FFFF24A500046F
64606 +:107E3000AC82000014C0FFFB2484000403E00008AF
64607 +:107E40000000000010A0000824A3FFFFAC86000083
64608 +:107E500000000000000000002402FFFF2463FFFF79
64609 +:107E60001462FFFA2484000403E00008000000000C
64610 +:107E700030A5FFFF8F4201B80440FFFE3C076015AC
64611 +:107E800000A730253C031000AF440180AF400184BF
64612 +:107E9000AF46018803E00008AF4301B88F8500D0EA
64613 +:107EA0002C864000008018218CA700840087102BAE
64614 +:107EB00014400010000000008CA800842D06400033
64615 +:107EC00050C0000F240340008CAA0084008A482B75
64616 +:107ED000512000018CA3008400035A42000B208033
64617 +:107EE0003C05080024A558200085182103E000085F
64618 +:107EF0008C62000014C0FFF4000000002403400066
64619 +:107F000000035A42000B20803C05080024A558209D
64620 +:107F10000085182103E000088C6200008F8300D0E8
64621 +:107F2000906600D024C50001A06500D08F8500D0E8
64622 +:107F3000906400D090A200D210440017000000000E
64623 +:107F4000936C00788F8B00BC318A00FFA16A000C13
64624 +:107F500025490001938700C4312200FF3048007F8B
64625 +:107F60001107000B00026827A36200788F4E01788A
64626 +:107F700005C0FFFE8F9900B0241800023C0F1000CE
64627 +:107F8000AF590140A358014403E00008AF4F017806
64628 +:107F90000A000D0931A20080A0A000D00A000CFF49
64629 +:107FA000000000008F8700D027BDFFC8AFBF0030A2
64630 +:107FB000AFB7002CAFB60028AFB50024AFB4002097
64631 +:107FC000AFB3001CAFB20018AFB10014AFB00010D7
64632 +:107FD00094E300E094E200E2104300D72405FFFFA1
64633 +:107FE0003C047FFF3497FFFF2415FF800A000DF04B
64634 +:107FF0003C16000E108A00D18FBF00308F9100B068
64635 +:108000003C1808008F18005C001230C0001291402C
64636 +:108010000311702101D57824AF4F002C94EC00E2BD
64637 +:1080200031CD007F01BA5821318A7FFF0176482186
64638 +:10803000000A804002091021945300003C08080007
64639 +:108040008D0800580246C02132733FFF001319808B
64640 +:10805000010320210224282130BF007F03FAC82118
64641 +:1080600000B5A024AF54002C0336A0218E87001049
64642 +:108070008E8F003003785821256D008800EF702323
64643 +:10808000240C0002AE8E0010AF8D00ACA16C0088F5
64644 +:10809000976A003C8E8400308F9100AC0E000CD6A5
64645 +:1080A0003150FFFF00024B80020940253C02420094
64646 +:1080B00001022025AE2400048E8300048F8D00ACC5
64647 +:1080C0008E860000240E0008ADA3001CADA600188B
64648 +:1080D000ADA0000CADA00010929F000A33F900FF84
64649 +:1080E000A5B90014968500083C1F000CA5A5001634
64650 +:1080F0009298000A331100FFA5B100209690000865
64651 +:1081000024180005A5B00022ADA00024928F000B1A
64652 +:108110002410C00031E700FFA5A70002A1AE0001B6
64653 +:108120008E8C00308F8B00AC8F8400B0AD6C00085B
64654 +:108130003C0A08008D4A005401444821013540247E
64655 +:10814000AF4800283C0208008C4200540044302113
64656 +:1081500030C3007F007AC821033F282102458821CF
64657 +:10816000AF9100BCAF8500C0A23800008F8A00BC70
64658 +:108170002403FFBF2418FFDF954F000201F03824CD
64659 +:1081800000F37025A54E0002914D000231AC003F76
64660 +:10819000358B0040A14B00028F8600BC8F8900D038
64661 +:1081A000ACC000048D28007C3C098000ACC80008ED
64662 +:1081B00090C4000D3082007FA0C2000D8F8500BCEE
64663 +:1081C00090BF000D03E3C824A0B9000D8F9100BC3F
64664 +:1081D0009233000D02789024A232000D8E9000346C
64665 +:1081E0008F8B00BCAD7000108E87002C8E8F0030FE
64666 +:1081F00000EF7023AD6E0014916D001831AC007F5C
64667 +:10820000A16C00188F9F00BC8E8A00308FE8001888
64668 +:10821000015720240109302400C41025AFE20018C2
64669 +:108220009283000AA3E3001C969900088F8500BC86
64670 +:108230008F9800D0A4B9001E8E9000308E8400303C
64671 +:108240000E0002138F0500848F8500D0000291403C
64672 +:108250000002990090AF00BC0253882100403021F9
64673 +:1082600031E7000210E0000302118021000290803B
64674 +:108270000212802190B900BC3327000410E00002F4
64675 +:108280000006F880021F80218E9800308F8B00BC82
64676 +:1082900024068000330F0003000F702331CD00034C
64677 +:1082A000020D6021AD6C000494A400E294AA00E2E7
64678 +:1082B00094B000E231497FFF2522000130537FFF57
64679 +:1082C0000206182400734025A4A800E294A400E24A
64680 +:1082D0003C1408008E94006030917FFF123400221D
64681 +:1082E000000000000E000CF6000000008F8700D098
64682 +:1082F0000000282194F300E094F000E21213000F34
64683 +:108300008FBF003090E900D090E800D1313200FFFB
64684 +:10831000310400FF0244302B14C0FF36264A00010E
64685 +:1083200090EE00D2264B000131CD00FF008D602180
64686 +:10833000158BFF338F9100B08FBF00308FB7002CAB
64687 +:108340008FB600288FB500248FB400208FB3001C97
64688 +:108350008FB200188FB100148FB0001000A0102150
64689 +:1083600003E0000827BD003894A300E20066402423
64690 +:10837000A4A800E290A400E290B900E2309100FFCE
64691 +:108380000011A1C20014F827001F39C03332007F4A
64692 +:10839000024730250A000DE8A0A600E23084FFFF66
64693 +:1083A00030A5FFFFAF440018AF45001C03E00008F4
64694 +:1083B0008F42001427BDFFB8AFB000208F9000D0CF
64695 +:1083C0003084FFFFAFA40010AFBF0044AFBE004039
64696 +:1083D000AFB7003CAFB60038AFB50034AFB4003033
64697 +:1083E000AFB3002CAFB20028AFB10024A7A0001893
64698 +:1083F000920600D1920500D030C400FF30A300FFE8
64699 +:108400000064102B10400122AFA00014920900D08C
64700 +:108410008FB50010312800FF0088382324F4FFFFB7
64701 +:108420000014882B0015982B02339024524001260B
64702 +:108430008FB40014961E0012961F00108FB7001004
64703 +:1084400003DFC823001714000019C400000224032E
64704 +:108450000018140302E2B02A52C00001004020219B
64705 +:108460000284282B10A0000200801821028018210D
64706 +:1084700000033C0000071C033064FFFF2C8600094A
64707 +:1084800014C000020060B821241700088E0A0008FA
64708 +:10849000001769808E09000C31ABFFFF3C0C001007
64709 +:1084A000016C402527520400AF4A0038AF9200B853
64710 +:1084B000AF49003CAF480030000000000000000061
64711 +:1084C00000000000000000000000000000000000AC
64712 +:1084D00000000000000000008F4F000031EE00207F
64713 +:1084E00011C0FFFD0017982A027110240A000E83A4
64714 +:1084F0000000B02155E001019258000131130080C5
64715 +:10850000126001CF012020219655001232A5FFFFF5
64716 +:108510000E000CCBA7B500188F9000D00291A023BD
64717 +:1085200026CD00018F9100B8000DB4000016B403F1
64718 +:108530002638004002D7582A0014882B2405000151
64719 +:108540000300902101711024AF9800B8AFA500146A
64720 +:10855000104001BC8F8900B03C0C08008D8C005489
64721 +:10856000240BFF80921E00D001895021014B28244A
64722 +:10857000921900D0AF4500288E4700103C08080033
64723 +:108580008D0800583C1808008F18005430E33FFF56
64724 +:108590000003218001043021012658212402FF809C
64725 +:1085A0000162F824920C00D0AF5F002C92480000CA
64726 +:1085B00033D100FF333500FF0309982100117140CA
64727 +:1085C000001578C0326D007F01CF382101BA282113
64728 +:1085D000318300FF3164007F3C0A000C00AA88212F
64729 +:1085E0000367F02100033140009A10213108003F59
64730 +:1085F0003C1F000E00D1C021005F982127D90088C0
64731 +:108600002D150008AF9100C0AF9900ACAF9800BC29
64732 +:10861000AF9300B412A0018A00008821240E00014B
64733 +:10862000010E4004310D005D11A0FFB2310F0002B8
64734 +:108630008E4A00283C0300803C04FFEFAE6A000035
64735 +:108640008E450024A260000A3488FFFFAE65000456
64736 +:108650009247002C3C1FFF9F37FEFFFFA267000CD4
64737 +:108660008E62000C3C180040A267000B00433025CE
64738 +:1086700000C8C824033E88240238A825AE75000C23
64739 +:108680008E490004AE6000183C0F00FFAE69001474
64740 +:108690008E4D002C35EEFFFF8F8B00B001AE6024B5
64741 +:1086A000AE6C00108E470008A660000896450012C8
64742 +:1086B000AE6700208E42000C30B03FFF00105180AA
64743 +:1086C000AE6200248E5E0014014B182130A400011C
64744 +:1086D000AE7E00288E590018000331C2000443808A
64745 +:1086E000AE79002C8E51001C00C8F821A67F001C1A
64746 +:1086F000AE710030965800028E550020A678001EFC
64747 +:10870000AE75003492490033313000045600000544
64748 +:10871000925000008F8C00D08D8B007CAE6B0030AF
64749 +:10872000925000008F8F00BCA1F00000924E0033E9
64750 +:1087300031CD000251A00007925E00018F8900BC7C
64751 +:108740002418FF80913100000311A825A1350000F5
64752 +:10875000925E00018F9900BC2409FFBF240BFFDF4C
64753 +:10876000A33E00018F9500BC92B8000D3311007F2D
64754 +:10877000A2B1000D8F8E00BC91D0000D02097824AB
64755 +:10878000A1CF000D8F8800BC8E6D0014910A000DE2
64756 +:108790002DAC0001000C2940014B382400E51825C0
64757 +:1087A000A103000D964200128F8800BC8F8700D075
64758 +:1087B000A50200028E45000490FF00BC30A4000317
64759 +:1087C0000004302330DE000300BE102133F9000224
64760 +:1087D00017200002244400342444003090E200BCFE
64761 +:1087E00000A2302430DF000417E0000224830004DC
64762 +:1087F000008018218F8F00AC24090002AD03000413
64763 +:10880000A1E90000924E003F8F8D00ACA1AE0001A7
64764 +:108810008F9500AC924C003F8E440004A6AC000241
64765 +:10882000976B003C0E000CD63170FFFF00025380A6
64766 +:10883000020A38253C05420000E51825AEA30004D5
64767 +:108840008F8600AC8E480038ACC800188E440034C7
64768 +:10885000ACC4001CACC0000CACC00010A4C0001420
64769 +:10886000A4C00016A4C00020A4C00022ACC00024F4
64770 +:108870008E6400145080000124040001ACC4000880
64771 +:108880000E000CF6241100010A000E768F9000D025
64772 +:10889000920F00D2920E00D08FB5001031EB00FF86
64773 +:1088A00031CD00FF008D6023016C50212554FFFF66
64774 +:1088B0000014882B0015982B023390241640FEDDFF
64775 +:1088C000000000008FB400148FBF00448FBE004032
64776 +:1088D0003A8200018FB7003C8FB600388FB5003464
64777 +:1088E0008FB400308FB3002C8FB200288FB10024DA
64778 +:1088F0008FB0002003E0000827BD0048331100209E
64779 +:10890000122000EF24150001921E00BC241F00015C
64780 +:108910000000A82133D900011320000DAFBF001CB7
64781 +:108920008E4400148E0800840088102B144000022E
64782 +:10893000008030218E0600848E03006400C3A82BC3
64783 +:1089400016A0000200C020218E0400640080A8212F
64784 +:108950008E4700148E05006400E5302B14C0000221
64785 +:1089600000E020218E0400640095F02313C0000471
64786 +:108970008FAC001C240A0002AFAA001C8FAC001CA4
64787 +:10898000028C582B156000A8000018218E4F00386B
64788 +:108990008E6D000C3C0E0080AE6F00008E4A0034DD
64789 +:1089A0003C10FF9F01AE5825AE6A00049246003F7E
64790 +:1089B000360CFFFF016C38243C0500203C03FFEF20
64791 +:1089C000A266000B00E510253468FFFF8F8700B812
64792 +:1089D0000048F8243C04000803E4C825AE79000CE4
64793 +:1089E0008CF80014AE60001802BE7821AE78001436
64794 +:1089F0008CF10018AE71001C8CE90008AE690024EF
64795 +:108A00008CEE000CAE6F002CAE600028AE6E002025
64796 +:108A1000A6600038A660003A8CED001401B58023F2
64797 +:108A2000021E902312400011AE72001090EA003D29
64798 +:108A30008E6500048E640000000A310000A6C82183
64799 +:108A4000000010210326402B0082F82103E8C021FA
64800 +:108A5000AE790004AE78000090F1003DA271000AEA
64801 +:108A60008F8900B895320006A67200088F9800AC76
64802 +:108A70002419000202A02021A31900009769003CDC
64803 +:108A80008F9200AC0E000CD63131FFFF00027B80CC
64804 +:108A90008F8500B8022F68253C0E420001AE80256C
64805 +:108AA000AE5000048F8400AC8CAC0038AC8C001845
64806 +:108AB0008CAB0034AC8B001CAC80000CAC80001084
64807 +:108AC000A4800014A4800016A4800020A4800022AA
64808 +:108AD000AC80002490A7003FA487000212A00135BB
64809 +:108AE0002403000153C0000290A2003D90A2003E6A
64810 +:108AF00024480001A08800018F9F00ACAFF500085A
64811 +:108B00008F8300D024070034906600BC30C500027B
64812 +:108B100050A00001240700308F9200B88F8A00BC5B
64813 +:108B2000906D00BC924B00002412C00032A50003DF
64814 +:108B3000A14B00008F8600B88F8800BC240200047F
64815 +:108B400090C400010045182330790003A1040001FE
64816 +:108B50008F8A00BC8F9F00B800F53821955800021D
64817 +:108B600097E9001200F9382103128824312F3FFFC2
64818 +:108B7000022F7025A54E00029150000231A800047A
64819 +:108B8000320C003F358B0040A14B000212A00002C6
64820 +:108B90008F8500BC00E838218F8E00D0ACA7000480
64821 +:108BA000240BFFBF8DCD007C2EA400012403FFDF2A
64822 +:108BB000ACAD000890B0000D00044140320C007FC5
64823 +:108BC000A0AC000D8F8600BC90CA000D014B102494
64824 +:108BD000A0C2000D8F8700BC90E5000D00A3F82413
64825 +:108BE00003E8C825A0F9000D8F9100B88F8D00BC57
64826 +:108BF0008E380020ADB800108E290024ADA90014D5
64827 +:108C00008E2F0028ADAF00188E2E002C0E000CF613
64828 +:108C1000ADAE001C8FB0001C240C0002120C00EE44
64829 +:108C20008F9000D08FA3001C006088211460000288
64830 +:108C30000060A8210000A02156A0FE390291A023C7
64831 +:108C40000014882B8FA90010960700103C1E0020EE
64832 +:108C50000136402302C750213112FFFFA60A00103F
64833 +:108C6000AFB20010AF5E0030000000009617001099
64834 +:108C7000961300121277008F000000008E05000C82
64835 +:108C80008E0B00080016698000AD7021000DC7C36F
64836 +:108C900001CDA82B0178782101F56021AE0E000CE2
64837 +:108CA000AE0C00088FB300100013B82B02378024DD
64838 +:108CB0001200FF048F9000D00A000E3C000000005C
64839 +:108CC0008E4D0038A6600008240B0003AE6D000036
64840 +:108CD0008E500034A260000A8F9800B8AE70000475
64841 +:108CE0003C0500809311003FA26B000C8E6F000CBE
64842 +:108CF0003C0EFF9FA271000B01E5102535CCFFFF54
64843 +:108D00003C03FFEF8F9200B8004C30243464FFFF27
64844 +:108D100000C4F824AE7F000C8E590014964800124F
64845 +:108D20008F8A00B0AE7900108E490014AE60001832
64846 +:108D3000AE600020AE690014AE6000248E470018BB
64847 +:108D400031093FFF0009F180AE6700288E4D000811
64848 +:108D500003CA802131180001AE6D00308E4F000C27
64849 +:108D60008F8C00AC001089C200185B80022B282178
64850 +:108D7000240E0002A665001CA6600036AE6F002C13
64851 +:108D8000A18E00009763003C8F8A00AC3C04420037
64852 +:108D90003062FFFF00443025AD4600048F9F00B8CD
64853 +:108DA000240700012411C0008FF30038240600348A
64854 +:108DB000AD5300188FF90034AD59001CAD40000CC4
64855 +:108DC000AD400010A5400014A5400016A5400020AD
64856 +:108DD000A5400022AD400024A5550002A147000196
64857 +:108DE0008F9E00AC8F8800B88F9200BCAFD5000872
64858 +:108DF000910D0000A24D00008F9000B88F8B00BC39
64859 +:108E000092180001A17800018F8400BC94850002B3
64860 +:108E100000B1782401E97025A48E0002908C000234
64861 +:108E20003183003FA08300028F8300D08F8400BC79
64862 +:108E3000906200BC305300025260000124060030F2
64863 +:108E4000AC8600048C6F007C2403FFBF02A0882145
64864 +:108E5000AC8F0008908E000D31CC007FA08C000DEF
64865 +:108E60008F8600BC90C2000D00432024A0C4000DDA
64866 +:108E70008F8900BC913F000D37F90020A139000D0A
64867 +:108E80008F8800B88F9300BC8D070020AE6700105C
64868 +:108E90008D0A0024AE6A00148D1E0028AE7E0018D4
64869 +:108EA0008D12002C0E000CF6AE72001C0A00103D54
64870 +:108EB0008F9000D0960E00148E03000431CCFFFF7B
64871 +:108EC000000C10C000622021AF44003C8E1F000443
64872 +:108ED0008F46003C03E6C8231B20003C0000000036
64873 +:108EE0008E0F000025E200013C05001034B500089B
64874 +:108EF000AF420038AF550030000000000000000015
64875 +:108F00000000000000000000000000000000000061
64876 +:108F100000000000000000008F580000330B00200C
64877 +:108F20001160FFFD000000008F5304003C0D002085
64878 +:108F3000AE1300088F570404AE17000CAF4D00307D
64879 +:108F4000000000003C0608008CC600442416000106
64880 +:108F500010D600BD00000000961F00123C0508005E
64881 +:108F60008CA5004000BFC821A61900129609001464
64882 +:108F700025270001A6070014960A00143144FFFFBC
64883 +:108F80005486FF498FB30010A60000140E000E1681
64884 +:108F900030A5FFFF3C0408008C84002496030012D7
64885 +:108FA0000044102300623023A60600120A00105964
64886 +:108FB0008FB30010A08300018F8200AC2404000155
64887 +:108FC000AC4400080A000FF08F8300D08E0200002E
64888 +:108FD0000A0010EA3C0500108F8200C08FA7001C19
64889 +:108FE000921800D0920B00D0920E00D0331100FFE7
64890 +:108FF000316900FF00117940000928C001E56021B6
64891 +:1090000031C300FF036C50210003314000C2C8216E
64892 +:10901000255F0088AF9F00ACAF9900BCA1470088D6
64893 +:109020009768003C03C020218F9100AC0E000CD645
64894 +:109030003110FFFF00026B80020DC0253C0442008E
64895 +:109040008F8D00B803045825AE2B00048DA900387D
64896 +:109050008F8B00AC0000882100118100AD690018E1
64897 +:109060008DAF00343C087FFF3504FFFFAD6F001C5F
64898 +:1090700091AC003E8D65001C8D660018000C190037
64899 +:10908000000C770200A33821020E102500E3F82B14
64900 +:1090900000C2C821033F5021AD67001CAD6A001813
64901 +:1090A000AD60000CAD60001091B8003E24050005D5
64902 +:1090B00003C45024A578001495A9000403C02021FE
64903 +:1090C000A569001691AF003EA56F002095B1000480
64904 +:1090D000A5710022AD60002491AE003FA56E000294
64905 +:1090E00091B0003E91AC003D01901023244300015B
64906 +:1090F000A16300018F8600AC8F9F00BCACDE00082E
64907 +:10910000A3E500008F9000BC8F9900B82405FFBF35
64908 +:1091100096070002973800120247782433093FFF70
64909 +:1091200001E98825A6110002921200022418FFDF2F
64910 +:10913000324E003F35CD0040A20D00028F8600BCAC
64911 +:109140008F8C00D02412FFFFACC000048D8B007CFC
64912 +:109150003C0C8000ACCB000890C2000D3043007F77
64913 +:10916000A0C3000D8F8700BC90FF000D03E5C8244D
64914 +:10917000A0F9000D8F9100BC9229000D01387824D0
64915 +:10918000A22F000D8F9000BCAE120010AE1500147F
64916 +:10919000920E00182415FF8002AE6825A20D00185B
64917 +:1091A0008F8500BC8F8300B88CAB0018016C102435
64918 +:1091B000004A3025ACA600189068003EA0A8001C0C
64919 +:1091C0008F9F00B88F8700BC8F9800D097F900045C
64920 +:1091D000A4F9001E0E0002138F0500848F8600D0B4
64921 +:1091E000000279400002490090D200BC01E98821C8
64922 +:1091F000004028213255000212A0000303D1202193
64923 +:109200000002A8800095202190CD00BC31B200045E
64924 +:109210001240000333DF0003000540800088202156
64925 +:10922000240600048F9E00BC00DFC8233327000300
64926 +:1092300000875021AFCA00040E000CF6A665003866
64927 +:109240000A0010388F9000D0961E00123C080800CB
64928 +:109250008D080024011E9021A61200120A00105948
64929 +:109260008FB3001027BDFFE03C1808008F18005096
64930 +:10927000AFB00010AFBF0018AFB10014AF8400B0A2
64931 +:1092800093710074030478212410FF8031EE007F75
64932 +:109290003225007F01F0582401DA68213C0C000AD5
64933 +:1092A000A38500C401AC2821AF4B002494A9001071
64934 +:1092B0009768000690A600620080382124020030E2
64935 +:1092C0000109202330C300F0AF8500D010620019DF
64936 +:1092D0003090FFFF90AE0062240DFFF0240A005092
64937 +:1092E00001AE6024318B00FF116A002F00000000E6
64938 +:1092F00016000007241F0C00AF5F00248FB100147C
64939 +:109300008FBF00188FB0001003E0000827BD0020B9
64940 +:109310000E000E1C02002021241F0C00AF5F002451
64941 +:109320008FB100148FBF00188FB0001003E0000849
64942 +:1093300027BD002094A200E094A400E290BF011396
64943 +:10934000008218263079FFFF33E700C014E00009DF
64944 +:109350002F31000116000038000000005620FFE603
64945 +:10936000241F0C000E000D18000000000A0011ED73
64946 +:10937000241F0C001620FFDE000000000E000D1858
64947 +:10938000000000001440FFDC241F0C001600002227
64948 +:109390008F8300D0906901133122003FA062011336
64949 +:1093A0000A0011ED241F0C0094AF00D48F8600D466
64950 +:1093B00000E02821240400050E000C5C31F0FFFFC2
64951 +:1093C0001440000524030003979100E600001821D3
64952 +:1093D0002625FFFFA78500E68F5801B80700FFFE8E
64953 +:1093E0003C196013AF400180241F0C00AF50018472
64954 +:1093F000007938253C101000AF4701888FB1001468
64955 +:10940000AF5001B8AF5F00248FB000108FBF0018BD
64956 +:1094100003E0000827BD00200E000E1C02002021E2
64957 +:109420005040FFB5241F0C008F8300D090690113BA
64958 +:109430000A0012163122003F0E000E1C02002021ED
64959 +:109440001440FFAD241F0C00122000078F8300D0B2
64960 +:10945000906801133106003F34C20040A06201133E
64961 +:109460000A0011ED241F0C000E000D180000000072
64962 +:109470005040FFA1241F0C008F8300D0906801137F
64963 +:109480003106003F0A00124634C20040AF9B00C8BC
64964 +:1094900003E00008AF8000EC3089FFFF0009404284
64965 +:1094A0002D020041000921801440000200095040B3
64966 +:1094B00024080040000830C0000811400046582130
64967 +:1094C000256701A800E2C821272F007F2418FF800C
64968 +:1094D00001F818240064302100CA702125CC00FF57
64969 +:1094E000240DFF00018D202425650088240A0088B2
64970 +:1094F0003C010800AC2A004C3C010800AC2500509F
64971 +:10950000AF8400D43C010800AC2900603C01080095
64972 +:10951000AC2800643C010800AC2700543C01080062
64973 +:10952000AC2300583C010800AC26005C03E00008B6
64974 +:1095300000000000308300FF30C6FFFF30E400FF72
64975 +:109540008F4201B80440FFFE00034C00012438257F
64976 +:109550003C08600000E820253C031000AF45018076
64977 +:10956000AF460184AF44018803E00008AF4301B86F
64978 +:109570008F86001C3C096012352700108CCB00043C
64979 +:109580003C0C600E35850010316A00062D48000144
64980 +:10959000ACE800C48CC40004ACA431808CC20008C8
64981 +:1095A00094C30002ACA2318403E00008A78300E466
64982 +:1095B0003C0308008C6300508F8400E88F86001CF9
64983 +:1095C0002402FF800064C0210302C824AF59002890
64984 +:1095D0008CCD00043305007F00BA78213C0E000CCE
64985 +:1095E00001EE2821ACAD00588CC80008AF8500D032
64986 +:1095F0003C076012ACA8005C8CCC001034E8001072
64987 +:10960000ACAC000C8CCB000CACAB000894AA0014E2
64988 +:109610003C0208008C42004425490001A4A9001422
64989 +:1096200094A400143083FFFF106200178F8400D0D1
64990 +:109630003C0A08008D4A0040A4AA00128CCE0018F3
64991 +:10964000AC8E00248CCD0014AC8D00208CC700188B
64992 +:10965000AC87002C8CCC001424060001AC8C0028B4
64993 +:109660008D0B00BC5166001A8D0200B48D0200B84B
64994 +:10967000A482003A948F003AA48F003C948800D4CE
64995 +:1096800003E000083102FFFF3C0908008D29002497
64996 +:10969000A4A000148F8400D0A4A900128CCE0018BE
64997 +:1096A000AC8E00248CCD0014AC8D00208CC700182B
64998 +:1096B000AC87002C8CCC001424060001AC8C002854
64999 +:1096C0008D0B00BC5566FFEA8D0200B88D0200B418
65000 +:1096D000A482003A948F003AA48F003C948800D46E
65001 +:1096E00003E000083102FFFF8F86001C3C0C0800DD
65002 +:1096F0008D8C0050240BFF808CCD00083C03000CA7
65003 +:10970000000D51C0018A4021010B4824AF8A00E8B6
65004 +:10971000AF49002890C700073105007F00BA10212B
65005 +:109720000043282130E4000410800039AF8500D0C8
65006 +:1097300090CF000731EE000811C000380000000093
65007 +:109740008CD9000C8CC400140324C02B13000030EF
65008 +:10975000000000008CC2000CACA200648CCD00188C
65009 +:109760002402FFF8ACAD00688CCC0010ACAC0080DB
65010 +:109770008CCB000CACAB00848CCA001CACAA007C67
65011 +:1097800090A900BC01224024A0A800BC90C30007FF
65012 +:109790003067000810E000048F8500D090AF00BC57
65013 +:1097A00035EE0001A0AE00BC90D9000733380001AF
65014 +:1097B000130000088F8300D08F8700D0240400346A
65015 +:1097C00090E800BC35030002A0E300BC8F8300D00A
65016 +:1097D000AC6400C090C900073126000210C000052B
65017 +:1097E00000000000906A00BC35420004A06200BC8A
65018 +:1097F0008F8300D09065011330AD003FA06D011341
65019 +:109800008F8C00D0958B00D403E000083162FFFFFD
65020 +:109810008CC200140A001305000000000A001306A1
65021 +:10982000ACA0006427BDFFD8AFB000108F90001C23
65022 +:10983000AFBF0024AFB40020AFB20018AFB1001426
65023 +:10984000AFB3001C9613000E3C07600A3C14600680
65024 +:109850003264FFFF369300100E00125534F40410EA
65025 +:109860008F8400D43C11600E0E00099B363100102D
65026 +:10987000920E00153C0708008CE700603C12601255
65027 +:1098800031CD000FA38D00F08E0E00048E0D000868
65028 +:1098900096080012961F00109619001A9618001EBE
65029 +:1098A000960F001C310CFFFF33EBFFFF332AFFFF45
65030 +:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD
65031 +:1098C0003C010800AC2C00243C010800AC2A0044F8
65032 +:1098D000AE293178AE26317C92020015960300162F
65033 +:1098E00036520010304400FF3065FFFF3C06080090
65034 +:1098F0008CC60064AE243188AE4500B492080014D2
65035 +:1099000096190018241F0001011FC004332FFFFF08
65036 +:109910003C0508008CA50058AE5800B8AE4F00BCFE
65037 +:10992000920C0014AF8E00D8AF8D00DC318B00FF9D
65038 +:10993000AE4B00C0920A0015AE670048AE66004C00
65039 +:10994000314900FFAE4900C8AE65007C3C03080009
65040 +:109950008C6300503C0408008C84004C3C080800D8
65041 +:109960008D0800543C0208008C42005C8FBF00242C
65042 +:10997000AE6300808FB00010AE8300748FB3001C04
65043 +:10998000AE22319CAE4200DCAE2731A0AE2631A41F
65044 +:10999000AE24318CAE233190AE283194AE2531986F
65045 +:1099A000AE870050AE860054AE8500708FB10014B3
65046 +:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B
65047 +:1099C000AE4800D4AE4500D88FB400208FB2001846
65048 +:1099D00003E0000827BD002827BDFFE0AFB1001459
65049 +:1099E000AFBF0018241100010E000845AFB00010F1
65050 +:1099F00010510005978400E6978300CC0083102B5C
65051 +:109A0000144000088F8500D4240700028FBF00187F
65052 +:109A10008FB100148FB0001000E0102103E00008A7
65053 +:109A200027BD00200E000C7A24040005AF8200E858
65054 +:109A30001040FFF6240700020E0008498F90001C1A
65055 +:109A4000979F00E68F9900E88F8D00C827EF0001EF
65056 +:109A5000240E0050AF590020A78F00E6A1AE0000F1
65057 +:109A60003C0C08008D8C00648F8600C8240A80009E
65058 +:109A7000000C5E00ACCB0074A4C0000694C9000AC0
65059 +:109A8000241FFF803C0D000C012AC024A4D8000A2A
65060 +:109A900090C8000A24182000011F1825A0C3000A3E
65061 +:109AA0008F8700C8A0E000788F8500C800003821AB
65062 +:109AB000A0A000833C0208008C4200508F8400E884
65063 +:109AC0000044782101FFC824AF590028960B0002FA
65064 +:109AD00031EE007F01DA6021018D3021A4CB00D46A
65065 +:109AE000960A0002AF8600D03C0E000425492401EE
65066 +:109AF000A4C900E68E080004ACC800048E03000868
65067 +:109B0000ACC30000A4C00010A4C00014A0C000D0CA
65068 +:109B10008F8500D02403FFBFA0A000D13C04080023
65069 +:109B20008C8400648F8200D0A04400D28E1F000C71
65070 +:109B30008F8A00D0978F00E4AD5F001C8E19001053
65071 +:109B400024100030AD590018A5400030A551005434
65072 +:109B5000A5510056A54F0016AD4E0068AD580080C7
65073 +:109B6000AD580084914D006231AC000F358B001070
65074 +:109B7000A14B00628F8600D090C900633128007F1E
65075 +:109B8000A0C800638F8400D02406FFFF9085006387
65076 +:109B900000A31024A08200638F9100D000E0102168
65077 +:109BA000923F00BC37F90001A23900BC8F8A00D077
65078 +:109BB000938F00F0AD580064AD5000C0914E00D3BB
65079 +:109BC000000F690031CC000F018D5825A14B00D347
65080 +:109BD0008F8500D08F8900DCACA900E88F8800D881
65081 +:109BE0008FBF00188FB100148FB0001027BD002068
65082 +:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB
65083 +:109C000003E000080000000027BDFFE0AFB0001037
65084 +:109C10008F90001CAFB10014AFBF00188E19000464
65085 +:109C20003C1808008F180050240FFF80001989C0CD
65086 +:109C30000238702131CD007F01CF602401BA50215C
65087 +:109C40003C0B000CAF4C0028014B4021950900D47F
65088 +:109C5000950400D68E0700043131FFFFAF8800D095
65089 +:109C60000E000913000721C08E0600048F8300C870
65090 +:109C7000000629C0AF4500209064003E30820040BD
65091 +:109C8000144000068F8400D0341FFFFF948300D659
65092 +:109C90003062FFFF145F000400000000948400D6CF
65093 +:109CA0000E0008A83084FFFF8E050004022030213A
65094 +:109CB0008FBF00188FB100148FB000102404002251
65095 +:109CC00000003821000529C00A00127C27BD0020B1
65096 +:109CD00027BDFFE0AFB100143091FFFFAFB000101F
65097 +:109CE000AFBF00181220001D000080218F86001CCD
65098 +:109CF0008CC500002403000600053F020005140285
65099 +:109D000030E4000714830015304500FF2CA800063E
65100 +:109D10001100004D000558803C0C0800258C57D4DC
65101 +:109D2000016C50218D490000012000080000000056
65102 +:109D30008F8E00EC240D000111CD005900000000B1
65103 +:109D4000260B00013170FFFF24CA00200211202BD6
65104 +:109D5000014030211480FFE6AF8A001C0200102170
65105 +:109D60008FBF00188FB100148FB0001003E00008FF
65106 +:109D700027BD0020938700CE14E00038240400148F
65107 +:109D80000E001338000000008F86001C2402000122
65108 +:109D90000A00147FAF8200EC8F8900EC24080002D7
65109 +:109DA0001128003B2404001300002821000030216A
65110 +:109DB000240700010E00127C000000000A00147F3E
65111 +:109DC0008F86001C8F8700EC2405000214E5FFF647
65112 +:109DD000240400120E0012E9000000008F8500E844
65113 +:109DE00000403021240400120E00127C00003821B3
65114 +:109DF0000A00147F8F86001C8F8300EC241F000351
65115 +:109E0000147FFFD0260B00010E00129B0000000003
65116 +:109E10008F8500E800403021240200022404001055
65117 +:109E200000003821AF8200EC0E00127C0000000020
65118 +:109E30000A00147F8F86001C8F8F00EC240600021E
65119 +:109E400011E6000B0000000024040010000028218F
65120 +:109E5000000030210A00149C240700010000282182
65121 +:109E60000E00127C000030210A00147F8F86001C37
65122 +:109E70000E0013A500000000144000128F99001C72
65123 +:109E80008F86001C240200030A00147FAF8200ECBE
65124 +:109E90000E001431000000000A00147F8F86001CA1
65125 +:109EA0000E00128B000000002402000224040014A3
65126 +:109EB0000000282100003021000038210A0014B9D8
65127 +:109EC000AF8200EC004038212404001097380002D3
65128 +:109ED000000028210E00127C3306FFFF0A00147FC9
65129 +:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D
65130 +:109EF0008C8500742402000100A61824AC83007431
65131 +:109F000003E00008A082000510A000362CA200800B
65132 +:109F1000274A04003C0B000524090080104000077C
65133 +:109F20002408008030A6000F00C540212D030081C9
65134 +:109F30001460000200A0482124080080AF4B0030CC
65135 +:109F400000000000000000000000000011000009F7
65136 +:109F500000003821014030218C8D000024E70004EE
65137 +:109F600000E8602BACCD0000248400041580FFFACB
65138 +:109F700024C60004000000000000000000000000F3
65139 +:109F80003C0E0006010E3825AF47003000000000EF
65140 +:109F900000000000000000008F4F000031E80010BA
65141 +:109FA0001100FFFD000000008F42003C8F43003C89
65142 +:109FB0000049C8210323C02B130000040000000047
65143 +:109FC0008F4C003825860001AF4600388F47003C93
65144 +:109FD00000A9282300E96821AF4D003C14A0FFCE62
65145 +:109FE0002CA2008003E000080000000027BDFFD085
65146 +:109FF0003C020002AFB100143C11000CAF45003828
65147 +:10A00000AFB3001CAF46003C00809821AF42003047
65148 +:10A0100024050088AF44002803512021AFBF002849
65149 +:10A02000AFB50024AFB40020AFB200180E0014F199
65150 +:10A03000AFB000103C1F08008FFF004C3C18080018
65151 +:10A040008F1800642410FF8003F3A82132B9007F29
65152 +:10A0500002B078240018A0C0033A70210018914083
65153 +:10A0600001D12021AF4F00280E0014F10254282105
65154 +:10A070003C0D08008DAD00502405012001B358218E
65155 +:10A08000316C007F01705024019A48210131202158
65156 +:10A090000E0014F1AF4A00283C0808008D08005457
65157 +:10A0A0003C0508008CA500640113382130E6007FD0
65158 +:10A0B00000F0182400DA202100912021AF4300286D
65159 +:10A0C0000E0014F1000529403C0208008C420058A3
65160 +:10A0D0003C1008008E1000601200001C0053882104
65161 +:10A0E0002415FF800A0015743C14000C3226007FF2
65162 +:10A0F0000235182400DA202102402821AF4300282D
65163 +:10A10000009420210E0014F12610FFC01200000F51
65164 +:10A11000023288212E05004110A0FFF42412100005
65165 +:10A120003226007F001091800235182400DA2021A9
65166 +:10A1300002402821AF430028009420210E0014F192
65167 +:10A14000000080211600FFF3023288213C0B08003A
65168 +:10A150008D6B005C240AFF802405000201734021FE
65169 +:10A16000010A4824AF4900283C0408009484006296
65170 +:10A170003110007F021A88213C07000C0E000CAA47
65171 +:10A180000227982100402821026020218FBF00284B
65172 +:10A190008FB500248FB400208FB3001C8FB200183D
65173 +:10A1A0008FB100148FB000100A0014F127BD0030E9
65174 +:10A1B0008F83001C8C62000410400003000000002C
65175 +:10A1C00003E00008000000008C6400108C650008AB
65176 +:10A1D0000A00152A8C66000C000000000000001B1D
65177 +:10A1E0000000000F0000000A000000080000000648
65178 +:10A1F000000000050000000500000004000000044D
65179 +:10A200000000000300000003000000030000000342
65180 +:10A210000000000300000002000000020000000235
65181 +:10A220000000000200000002000000020000000226
65182 +:10A230000000000200000002000000020000000216
65183 +:10A240000000000200000002000000020000000206
65184 +:10A2500000000001000000010000000108000F24C0
65185 +:10A2600008000D6C08000FB80800106008000F4CC3
65186 +:10A2700008000F8C0800119408000D88080011B820
65187 +:10A2800008000DD8080015540800151C08000D889A
65188 +:10A2900008000D8808000D880800124008001240D0
65189 +:10A2A00008000D8808000D88080014E008000D88DB
65190 +:10A2B00008000D8808000D8808000D88080013B4F8
65191 +:10A2C00008000D8808000D8808000D8808000D881A
65192 +:10A2D00008000D8808000D8808000D8808000D880A
65193 +:10A2E00008000D8808000D8808000D8808000D88FA
65194 +:10A2F00008000D8808000D8808000FAC08000D88C4
65195 +:10A3000008000D880800167808000D8808000D88E0
65196 +:10A3100008000D8808000D8808000D8808000D88C9
65197 +:10A3200008000D8808000D8808000D8808000D88B9
65198 +:10A3300008000D8808000D8808000D8808000D88A9
65199 +:10A3400008000D8808000D8808000D88080014100A
65200 +:10A3500008000D8808000D8808001334080012A4B6
65201 +:10A3600008001E2C08001EFC08001F1408001F28EF
65202 +:10A3700008001F3808001E2C08001E2C08001E2C88
65203 +:10A3800008001ED808002E1408002E1C08002DE41A
65204 +:10A3900008002DF008002DFC08002E08080052F4DB
65205 +:10A3A000080052B40800528008005254080052308D
65206 +:10A3B000080051EC0A000C840000000000000000BE
65207 +:10A3C0000000000D727870362E322E33000000002F
65208 +:10A3D000060203030000000000000001000000006E
65209 +:10A3E000000000000000000000000000000000006D
65210 +:10A3F000000000000000000000000000000000005D
65211 +:10A40000000000000000000000000000000000004C
65212 +:10A41000000000000000000000000000000000003C
65213 +:10A42000000000000000000000000000000000002C
65214 +:10A43000000000000000000000000000000000001C
65215 +:10A44000000000000000000000000000000000000C
65216 +:10A4500000000000000000000000000000000000FC
65217 +:10A4600000000000000000000000000000000000EC
65218 +:10A4700000000000000000000000000000000000DC
65219 +:10A4800000000000000000000000000000000000CC
65220 +:10A4900000000000000000000000000000000000BC
65221 +:10A4A00000000000000000000000000000000000AC
65222 +:10A4B000000000000000000000000000000000009C
65223 +:10A4C000000000000000000000000000000000008C
65224 +:10A4D000000000000000000000000000000000007C
65225 +:10A4E000000000000000000000000000000000006C
65226 +:10A4F000000000000000000000000000000000005C
65227 +:10A50000000000000000000000000000000000004B
65228 +:10A51000000000000000000000000000000000003B
65229 +:10A52000000000000000000000000000000000002B
65230 +:10A53000000000000000000000000000000000001B
65231 +:10A54000000000000000000000000000000000000B
65232 +:10A5500000000000000000000000000000000000FB
65233 +:10A5600000000000000000000000000000000000EB
65234 +:10A5700000000000000000000000000000000000DB
65235 +:10A5800000000000000000000000000000000000CB
65236 +:10A5900000000000000000000000000000000000BB
65237 +:10A5A00000000000000000000000000000000000AB
65238 +:10A5B000000000000000000000000000000000009B
65239 +:10A5C000000000000000000000000000000000008B
65240 +:10A5D000000000000000000000000000000000007B
65241 +:10A5E000000000000000000000000000000000006B
65242 +:10A5F000000000000000000000000000000000005B
65243 +:10A60000000000000000000000000000000000004A
65244 +:10A61000000000000000000000000000000000003A
65245 +:10A62000000000000000000000000000000000002A
65246 +:10A63000000000000000000000000000000000001A
65247 +:10A64000000000000000000000000000000000000A
65248 +:10A6500000000000000000000000000000000000FA
65249 +:10A6600000000000000000000000000000000000EA
65250 +:10A6700000000000000000000000000000000000DA
65251 +:10A6800000000000000000000000000000000000CA
65252 +:10A6900000000000000000000000000000000000BA
65253 +:10A6A00000000000000000000000000000000000AA
65254 +:10A6B000000000000000000000000000000000009A
65255 +:10A6C000000000000000000000000000000000008A
65256 +:10A6D000000000000000000000000000000000007A
65257 +:10A6E000000000000000000000000000000000006A
65258 +:10A6F000000000000000000000000000000000005A
65259 +:10A700000000000000000000000000000000000049
65260 +:10A710000000000000000000000000000000000039
65261 +:10A720000000000000000000000000000000000029
65262 +:10A730000000000000000000000000000000000019
65263 +:10A740000000000000000000000000000000000009
65264 +:10A7500000000000000000000000000000000000F9
65265 +:10A7600000000000000000000000000000000000E9
65266 +:10A7700000000000000000000000000000000000D9
65267 +:10A7800000000000000000000000000000000000C9
65268 +:10A7900000000000000000000000000000000000B9
65269 +:10A7A00000000000000000000000000000000000A9
65270 +:10A7B0000000000000000000000000000000000099
65271 +:10A7C0000000000000000000000000000000000089
65272 +:10A7D0000000000000000000000000000000000079
65273 +:10A7E0000000000000000000000000000000000069
65274 +:10A7F0000000000000000000000000000000000059
65275 +:10A800000000000000000000000000000000000048
65276 +:10A810000000000000000000000000000000000038
65277 +:10A820000000000000000000000000000000000028
65278 +:10A830000000000000000000000000000000000018
65279 +:10A840000000000000000000000000000000000008
65280 +:10A8500000000000000000000000000000000000F8
65281 +:10A8600000000000000000000000000000000000E8
65282 +:10A8700000000000000000000000000000000000D8
65283 +:10A8800000000000000000000000000000000000C8
65284 +:10A8900000000000000000000000000000000000B8
65285 +:10A8A00000000000000000000000000000000000A8
65286 +:10A8B0000000000000000000000000000000000098
65287 +:10A8C0000000000000000000000000000000000088
65288 +:10A8D0000000000000000000000000000000000078
65289 +:10A8E0000000000000000000000000000000000068
65290 +:10A8F0000000000000000000000000000000000058
65291 +:10A900000000000000000000000000000000000047
65292 +:10A910000000000000000000000000000000000037
65293 +:10A920000000000000000000000000000000000027
65294 +:10A930000000000000000000000000000000000017
65295 +:10A940000000000000000000000000000000000007
65296 +:10A9500000000000000000000000000000000000F7
65297 +:10A9600000000000000000000000000000000000E7
65298 +:10A9700000000000000000000000000000000000D7
65299 +:10A9800000000000000000000000000000000000C7
65300 +:10A9900000000000000000000000000000000000B7
65301 +:10A9A00000000000000000000000000000000000A7
65302 +:10A9B0000000000000000000000000000000000097
65303 +:10A9C0000000000000000000000000000000000087
65304 +:10A9D0000000000000000000000000000000000077
65305 +:10A9E0000000000000000000000000000000000067
65306 +:10A9F0000000000000000000000000000000000057
65307 +:10AA00000000000000000000000000000000000046
65308 +:10AA10000000000000000000000000000000000036
65309 +:10AA20000000000000000000000000000000000026
65310 +:10AA30000000000000000000000000000000000016
65311 +:10AA40000000000000000000000000000000000006
65312 +:10AA500000000000000000000000000000000000F6
65313 +:10AA600000000000000000000000000000000000E6
65314 +:10AA700000000000000000000000000000000000D6
65315 +:10AA800000000000000000000000000000000000C6
65316 +:10AA900000000000000000000000000000000000B6
65317 +:10AAA00000000000000000000000000000000000A6
65318 +:10AAB0000000000000000000000000000000000096
65319 +:10AAC0000000000000000000000000000000000086
65320 +:10AAD0000000000000000000000000000000000076
65321 +:10AAE0000000000000000000000000000000000066
65322 +:10AAF0000000000000000000000000000000000056
65323 +:10AB00000000000000000000000000000000000045
65324 +:10AB10000000000000000000000000000000000035
65325 +:10AB20000000000000000000000000000000000025
65326 +:10AB30000000000000000000000000000000000015
65327 +:10AB40000000000000000000000000000000000005
65328 +:10AB500000000000000000000000000000000000F5
65329 +:10AB600000000000000000000000000000000000E5
65330 +:10AB700000000000000000000000000000000000D5
65331 +:10AB800000000000000000000000000000000000C5
65332 +:10AB900000000000000000000000000000000000B5
65333 +:10ABA00000000000000000000000000000000000A5
65334 +:10ABB0000000000000000000000000000000000095
65335 +:10ABC0000000000000000000000000000000000085
65336 +:10ABD0000000000000000000000000000000000075
65337 +:10ABE0000000000000000000000000000000000065
65338 +:10ABF0000000000000000000000000000000000055
65339 +:10AC00000000000000000000000000000000000044
65340 +:10AC10000000000000000000000000000000000034
65341 +:10AC20000000000000000000000000000000000024
65342 +:10AC30000000000000000000000000000000000014
65343 +:10AC40000000000000000000000000000000000004
65344 +:10AC500000000000000000000000000000000000F4
65345 +:10AC600000000000000000000000000000000000E4
65346 +:10AC700000000000000000000000000000000000D4
65347 +:10AC800000000000000000000000000000000000C4
65348 +:10AC900000000000000000000000000000000000B4
65349 +:10ACA00000000000000000000000000000000000A4
65350 +:10ACB0000000000000000000000000000000000094
65351 +:10ACC0000000000000000000000000000000000084
65352 +:10ACD0000000000000000000000000000000000074
65353 +:10ACE0000000000000000000000000000000000064
65354 +:10ACF0000000000000000000000000000000000054
65355 +:10AD00000000000000000000000000000000000043
65356 +:10AD10000000000000000000000000000000000033
65357 +:10AD20000000000000000000000000000000000023
65358 +:10AD30000000000000000000000000000000000013
65359 +:10AD40000000000000000000000000000000000003
65360 +:10AD500000000000000000000000000000000000F3
65361 +:10AD600000000000000000000000000000000000E3
65362 +:10AD700000000000000000000000000000000000D3
65363 +:10AD800000000000000000000000000000000000C3
65364 +:10AD900000000000000000000000000000000000B3
65365 +:10ADA00000000000000000000000000000000000A3
65366 +:10ADB0000000000000000000000000000000000093
65367 +:10ADC0000000000000000000000000000000000083
65368 +:10ADD0000000000000000000000000000000000073
65369 +:10ADE0000000000000000000000000000000000063
65370 +:10ADF0000000000000000000000000000000000053
65371 +:10AE00000000000000000000000000000000000042
65372 +:10AE10000000000000000000000000000000000032
65373 +:10AE20000000000000000000000000000000000022
65374 +:10AE30000000000000000000000000000000000012
65375 +:10AE40000000000000000000000000000000000002
65376 +:10AE500000000000000000000000000000000000F2
65377 +:10AE600000000000000000000000000000000000E2
65378 +:10AE700000000000000000000000000000000000D2
65379 +:10AE800000000000000000000000000000000000C2
65380 +:10AE900000000000000000000000000000000000B2
65381 +:10AEA00000000000000000000000000000000000A2
65382 +:10AEB0000000000000000000000000000000000092
65383 +:10AEC0000000000000000000000000000000000082
65384 +:10AED0000000000000000000000000000000000072
65385 +:10AEE0000000000000000000000000000000000062
65386 +:10AEF0000000000000000000000000000000000052
65387 +:10AF00000000000000000000000000000000000041
65388 +:10AF10000000000000000000000000000000000031
65389 +:10AF20000000000000000000000000000000000021
65390 +:10AF30000000000000000000000000000000000011
65391 +:10AF40000000000000000000000000000000000001
65392 +:10AF500000000000000000000000000000000000F1
65393 +:10AF600000000000000000000000000000000000E1
65394 +:10AF700000000000000000000000000000000000D1
65395 +:10AF800000000000000000000000000000000000C1
65396 +:10AF900000000000000000000000000000000000B1
65397 +:10AFA00000000000000000000000000000000000A1
65398 +:10AFB0000000000000000000000000000000000091
65399 +:10AFC0000000000000000000000000000000000081
65400 +:10AFD0000000000000000000000000000000000071
65401 +:10AFE0000000000000000000000000000000000061
65402 +:10AFF0000000000000000000000000000000000051
65403 +:10B000000000000000000000000000000000000040
65404 +:10B010000000000000000000000000000000000030
65405 +:10B020000000000000000000000000000000000020
65406 +:10B030000000000000000000000000000000000010
65407 +:10B040000000000000000000000000000000000000
65408 +:10B0500000000000000000000000000000000000F0
65409 +:10B0600000000000000000000000000000000000E0
65410 +:10B0700000000000000000000000000000000000D0
65411 +:10B0800000000000000000000000000000000000C0
65412 +:10B0900000000000000000000000000000000000B0
65413 +:10B0A00000000000000000000000000000000000A0
65414 +:10B0B0000000000000000000000000000000000090
65415 +:10B0C0000000000000000000000000000000000080
65416 +:10B0D0000000000000000000000000000000000070
65417 +:10B0E0000000000000000000000000000000000060
65418 +:10B0F0000000000000000000000000000000000050
65419 +:10B10000000000000000000000000000000000003F
65420 +:10B11000000000000000000000000000000000002F
65421 +:10B12000000000000000000000000000000000001F
65422 +:10B13000000000000000000000000000000000000F
65423 +:10B1400000000000000000000000000000000000FF
65424 +:10B1500000000000000000000000000000000000EF
65425 +:10B1600000000000000000000000000000000000DF
65426 +:10B1700000000000000000000000000000000000CF
65427 +:10B1800000000000000000000000000000000000BF
65428 +:10B1900000000000000000000000000000000000AF
65429 +:10B1A000000000000000000000000000000000009F
65430 +:10B1B000000000000000000000000000000000008F
65431 +:10B1C000000000000000000000000000000000007F
65432 +:10B1D000000000000000000000000000000000006F
65433 +:10B1E000000000000000000000000000000000005F
65434 +:10B1F000000000000000000000000000000000004F
65435 +:10B20000000000000000000000000000000000003E
65436 +:10B21000000000000000000000000000000000002E
65437 +:10B22000000000000000000000000000000000001E
65438 +:10B23000000000000000000000000000000000000E
65439 +:10B2400000000000000000000000000000000000FE
65440 +:10B2500000000000000000000000000000000000EE
65441 +:10B2600000000000000000000000000000000000DE
65442 +:10B2700000000000000000000000000000000000CE
65443 +:10B2800000000000000000000000000000000000BE
65444 +:10B2900000000000000000000000000000000000AE
65445 +:10B2A000000000000000000000000000000000009E
65446 +:10B2B000000000000000000000000000000000008E
65447 +:10B2C000000000000000000000000000000000007E
65448 +:10B2D000000000000000000000000000000000006E
65449 +:10B2E000000000000000000000000000000000005E
65450 +:10B2F000000000000000000000000000000000004E
65451 +:10B30000000000000000000000000000000000003D
65452 +:10B31000000000000000000000000000000000002D
65453 +:10B32000000000000000000000000000000000001D
65454 +:10B33000000000000000000000000000000000000D
65455 +:10B3400000000000000000000000000000000000FD
65456 +:10B3500000000000000000000000000000000000ED
65457 +:10B3600000000000000000000000000000000000DD
65458 +:10B3700000000000000000000000000000000000CD
65459 +:10B3800000000000000000000000000000000000BD
65460 +:10B3900000000000000000000000000000000000AD
65461 +:10B3A000000000000000000000000000000000009D
65462 +:10B3B000000000000000000000000000000000008D
65463 +:10B3C000000000000000000000000000000000007D
65464 +:10B3D000000000000000000000000000000000006D
65465 +:10B3E000000000000000000000000000000000005D
65466 +:10B3F000000000000000000000000000000000004D
65467 +:10B40000000000000000000000000000000000003C
65468 +:10B41000000000000000000000000000000000002C
65469 +:10B42000000000000000000000000000000000001C
65470 +:10B43000000000000000000000000000000000000C
65471 +:10B4400000000000000000000000000000000000FC
65472 +:10B4500000000000000000000000000000000000EC
65473 +:10B4600000000000000000000000000000000000DC
65474 +:10B4700000000000000000000000000000000000CC
65475 +:10B4800000000000000000000000000000000000BC
65476 +:10B4900000000000000000000000000000000000AC
65477 +:10B4A000000000000000000000000000000000009C
65478 +:10B4B000000000000000000000000000000000008C
65479 +:10B4C000000000000000000000000000000000007C
65480 +:10B4D000000000000000000000000000000000006C
65481 +:10B4E000000000000000000000000000000000005C
65482 +:10B4F000000000000000000000000000000000004C
65483 +:10B50000000000000000000000000000000000003B
65484 +:10B51000000000000000000000000000000000002B
65485 +:10B52000000000000000000000000000000000001B
65486 +:10B53000000000000000000000000000000000000B
65487 +:10B5400000000000000000000000000000000000FB
65488 +:10B5500000000000000000000000000000000000EB
65489 +:10B5600000000000000000000000000000000000DB
65490 +:10B5700000000000000000000000000000000000CB
65491 +:10B5800000000000000000000000000000000000BB
65492 +:10B5900000000000000000000000000000000000AB
65493 +:10B5A000000000000000000000000000000000009B
65494 +:10B5B000000000000000000000000000000000008B
65495 +:10B5C000000000000000000000000000000000007B
65496 +:10B5D000000000000000000000000000000000006B
65497 +:10B5E000000000000000000000000000000000005B
65498 +:10B5F000000000000000000000000000000000004B
65499 +:10B60000000000000000000000000000000000003A
65500 +:10B61000000000000000000000000000000000002A
65501 +:10B62000000000000000000000000000000000001A
65502 +:10B63000000000000000000000000000000000000A
65503 +:10B6400000000000000000000000000000000000FA
65504 +:10B6500000000000000000000000000000000000EA
65505 +:10B6600000000000000000000000000000000000DA
65506 +:10B6700000000000000000000000000000000000CA
65507 +:10B6800000000000000000000000000000000000BA
65508 +:10B6900000000000000000000000000000000000AA
65509 +:10B6A000000000000000000000000000000000009A
65510 +:10B6B000000000000000000000000000000000008A
65511 +:10B6C000000000000000000000000000000000007A
65512 +:10B6D000000000000000000000000000000000006A
65513 +:10B6E000000000000000000000000000000000005A
65514 +:10B6F000000000000000000000000000000000004A
65515 +:10B700000000000000000000000000000000000039
65516 +:10B710000000000000000000000000000000000029
65517 +:10B720000000000000000000000000000000000019
65518 +:10B730000000000000000000000000000000000009
65519 +:10B7400000000000000000000000000000000000F9
65520 +:10B7500000000000000000000000000000000000E9
65521 +:10B7600000000000000000000000000000000000D9
65522 +:10B7700000000000000000000000000000000000C9
65523 +:10B7800000000000000000000000000000000000B9
65524 +:10B7900000000000000000000000000000000000A9
65525 +:10B7A0000000000000000000000000000000000099
65526 +:10B7B0000000000000000000000000000000000089
65527 +:10B7C0000000000000000000000000000000000079
65528 +:10B7D0000000000000000000000000000000000069
65529 +:10B7E0000000000000000000000000000000000059
65530 +:10B7F0000000000000000000000000000000000049
65531 +:10B800000000000000000000000000000000000038
65532 +:10B810000000000000000000000000000000000028
65533 +:10B820000000000000000000000000000000000018
65534 +:10B830000000000000000000000000000000000008
65535 +:10B8400000000000000000000000000000000000F8
65536 +:10B8500000000000000000000000000000000000E8
65537 +:10B8600000000000000000000000000000000000D8
65538 +:10B8700000000000000000000000000000000000C8
65539 +:10B8800000000000000000000000000000000000B8
65540 +:10B8900000000000000000000000000000000000A8
65541 +:10B8A0000000000000000000000000000000000098
65542 +:10B8B0000000000000000000000000000000000088
65543 +:10B8C0000000000000000000000000000000000078
65544 +:10B8D0000000000000000000000000000000000068
65545 +:10B8E0000000000000000000000000000000000058
65546 +:10B8F0000000000000000000000000000000000048
65547 +:10B900000000000000000000000000000000000037
65548 +:10B910000000000000000000000000000000000027
65549 +:10B920000000000000000000000000000000000017
65550 +:10B930000000000000000000000000000000000007
65551 +:10B9400000000000000000000000000000000000F7
65552 +:10B9500000000000000000000000000000000000E7
65553 +:10B9600000000000000000000000000000000000D7
65554 +:10B9700000000000000000000000000000000000C7
65555 +:10B9800000000000000000000000000000000000B7
65556 +:10B9900000000000000000000000000000000000A7
65557 +:10B9A0000000000000000000000000000000000097
65558 +:10B9B0000000000000000000000000000000000087
65559 +:10B9C0000000000000000000000000000000000077
65560 +:10B9D0000000000000000000000000000000000067
65561 +:10B9E0000000000000000000000000000000000057
65562 +:10B9F0000000000000000000000000000000000047
65563 +:10BA00000000000000000000000000000000000036
65564 +:10BA10000000000000000000000000000000000026
65565 +:10BA20000000000000000000000000000000000016
65566 +:10BA30000000000000000000000000000000000006
65567 +:10BA400000000000000000000000000000000000F6
65568 +:10BA500000000000000000000000000000000000E6
65569 +:10BA600000000000000000000000000000000000D6
65570 +:10BA700000000000000000000000000000000000C6
65571 +:10BA800000000000000000000000000000000000B6
65572 +:10BA900000000000000000000000000000000000A6
65573 +:10BAA0000000000000000000000000000000000096
65574 +:10BAB0000000000000000000000000000000000086
65575 +:10BAC0000000000000000000000000000000000076
65576 +:10BAD0000000000000000000000000000000000066
65577 +:10BAE0000000000000000000000000000000000056
65578 +:10BAF0000000000000000000000000000000000046
65579 +:10BB00000000000000000000000000000000000035
65580 +:10BB10000000000000000000000000000000000025
65581 +:10BB20000000000000000000000000000000000015
65582 +:10BB30000000000000000000000000000000000005
65583 +:10BB400000000000000000000000000000000000F5
65584 +:10BB500000000000000000000000000000000000E5
65585 +:10BB600000000000000000000000000000000000D5
65586 +:10BB700000000000000000000000000000000000C5
65587 +:10BB800000000000000000000000000000000000B5
65588 +:10BB900000000000000000000000000000000000A5
65589 +:10BBA0000000000000000000000000000000000095
65590 +:10BBB0000000000000000000000000000000000085
65591 +:10BBC0000000000000000000000000000000000075
65592 +:10BBD0000000000000000000000000000000000065
65593 +:10BBE0000000000000000000000000000000000055
65594 +:10BBF0000000000000000000000000000000000045
65595 +:10BC00000000000000000000000000000000000034
65596 +:10BC10000000000000000000000000000000000024
65597 +:10BC20000000000000000000000000000000000014
65598 +:10BC30000000000000000000000000000000000004
65599 +:10BC400000000000000000000000000000000000F4
65600 +:10BC500000000000000000000000000000000000E4
65601 +:10BC600000000000000000000000000000000000D4
65602 +:10BC700000000000000000000000000000000000C4
65603 +:10BC800000000000000000000000000000000000B4
65604 +:10BC900000000000000000000000000000000000A4
65605 +:10BCA0000000000000000000000000000000000094
65606 +:10BCB0000000000000000000000000000000000084
65607 +:10BCC0000000000000000000000000000000000074
65608 +:10BCD0000000000000000000000000000000000064
65609 +:10BCE0000000000000000000000000000000000054
65610 +:10BCF0000000000000000000000000000000000044
65611 +:10BD00000000000000000000000000000000000033
65612 +:10BD10000000000000000000000000000000000023
65613 +:10BD20000000000000000000000000000000000013
65614 +:10BD30000000000000000000000000000000000003
65615 +:10BD400000000000000000000000000000000000F3
65616 +:10BD500000000000000000000000000000000000E3
65617 +:10BD600000000000000000000000000000000000D3
65618 +:10BD700000000000000000000000000000000000C3
65619 +:10BD800000000000000000000000000000000000B3
65620 +:10BD900000000000000000000000000000000000A3
65621 +:10BDA0000000000000000000000000000000000093
65622 +:10BDB0000000000000000000000000000000000083
65623 +:10BDC0000000000000000000000000000000000073
65624 +:10BDD0000000000000000000000000000000000063
65625 +:10BDE0000000000000000000000000000000000053
65626 +:10BDF0000000000000000000000000000000000043
65627 +:10BE00000000000000000000000000000000000032
65628 +:10BE10000000000000000000000000000000000022
65629 +:10BE20000000000000000000000000000000000012
65630 +:10BE30000000000000000000000000000000000002
65631 +:10BE400000000000000000000000000000000000F2
65632 +:10BE500000000000000000000000000000000000E2
65633 +:10BE600000000000000000000000000000000000D2
65634 +:10BE700000000000000000000000000000000000C2
65635 +:10BE800000000000000000000000000000000000B2
65636 +:10BE900000000000000000000000000000000000A2
65637 +:10BEA0000000000000000000000000000000000092
65638 +:10BEB0000000000000000000000000000000000082
65639 +:10BEC0000000000000000000000000000000000072
65640 +:10BED0000000000000000000000000000000000062
65641 +:10BEE0000000000000000000000000000000000052
65642 +:10BEF0000000000000000000000000000000000042
65643 +:10BF00000000000000000000000000000000000031
65644 +:10BF10000000000000000000000000000000000021
65645 +:10BF20000000000000000000000000000000000011
65646 +:10BF30000000000000000000000000000000000001
65647 +:10BF400000000000000000000000000000000000F1
65648 +:10BF500000000000000000000000000000000000E1
65649 +:10BF600000000000000000000000000000000000D1
65650 +:10BF700000000000000000000000000000000000C1
65651 +:10BF800000000000000000000000000000000000B1
65652 +:10BF900000000000000000000000000000000000A1
65653 +:10BFA0000000000000000000000000000000000091
65654 +:10BFB0000000000000000000000000000000000081
65655 +:10BFC0000000000000000000000000000000000071
65656 +:10BFD0000000000000000000000000000000000061
65657 +:10BFE0000000000000000000000000000000000051
65658 +:10BFF0000000000000000000000000000000000041
65659 +:10C000000000000000000000000000000000000030
65660 +:10C010000000000000000000000000000000000020
65661 +:10C020000000000000000000000000000000000010
65662 +:10C030000000000000000000000000000000000000
65663 +:10C0400000000000000000000000000000000000F0
65664 +:10C0500000000000000000000000000000000000E0
65665 +:10C0600000000000000000000000000000000000D0
65666 +:10C0700000000000000000000000000000000000C0
65667 +:10C0800000000000000000000000000000000000B0
65668 +:10C0900000000000000000000000000000000000A0
65669 +:10C0A0000000000000000000000000000000000090
65670 +:10C0B0000000000000000000000000000000000080
65671 +:10C0C0000000000000000000000000000000000070
65672 +:10C0D0000000000000000000000000000000000060
65673 +:10C0E0000000000000000000000000000000000050
65674 +:10C0F0000000000000000000000000000000000040
65675 +:10C10000000000000000000000000000000000002F
65676 +:10C11000000000000000000000000000000000001F
65677 +:10C12000000000000000000000000000000000000F
65678 +:10C1300000000000000000000000000000000000FF
65679 +:10C1400000000000000000000000000000000000EF
65680 +:10C1500000000000000000000000000000000000DF
65681 +:10C1600000000000000000000000000000000000CF
65682 +:10C1700000000000000000000000000000000000BF
65683 +:10C1800000000000000000000000000000000000AF
65684 +:10C19000000000000000000000000000000000009F
65685 +:10C1A000000000000000000000000000000000008F
65686 +:10C1B000000000000000000000000000000000007F
65687 +:10C1C000000000000000000000000000000000006F
65688 +:10C1D000000000000000000000000000000000005F
65689 +:10C1E000000000000000000000000000000000004F
65690 +:10C1F000000000000000000000000000000000003F
65691 +:10C20000000000000000000000000000000000002E
65692 +:10C21000000000000000000000000000000000001E
65693 +:10C22000000000000000000000000000000000000E
65694 +:10C2300000000000000000000000000000000000FE
65695 +:10C2400000000000000000000000000000000000EE
65696 +:10C2500000000000000000000000000000000000DE
65697 +:10C2600000000000000000000000000000000000CE
65698 +:10C2700000000000000000000000000000000000BE
65699 +:10C2800000000000000000000000000000000000AE
65700 +:10C29000000000000000000000000000000000009E
65701 +:10C2A000000000000000000000000000000000008E
65702 +:10C2B000000000000000000000000000000000007E
65703 +:10C2C000000000000000000000000000000000006E
65704 +:10C2D000000000000000000000000000000000005E
65705 +:10C2E000000000000000000000000000000000004E
65706 +:10C2F000000000000000000000000000000000003E
65707 +:10C30000000000000000000000000000000000002D
65708 +:10C31000000000000000000000000000000000001D
65709 +:10C32000000000000000000000000000000000000D
65710 +:10C3300000000000000000000000000000000000FD
65711 +:10C3400000000000000000000000000000000000ED
65712 +:10C3500000000000000000000000000000000000DD
65713 +:10C3600000000000000000000000000000000000CD
65714 +:10C3700000000000000000000000000000000000BD
65715 +:10C3800000000000000000000000000000000000AD
65716 +:10C39000000000000000000000000000000000009D
65717 +:10C3A000000000000000000000000000000000008D
65718 +:10C3B000000000000000000000000000000000007D
65719 +:10C3C000000000000000000000000000000000006D
65720 +:10C3D000000000000000000000000000000000005D
65721 +:10C3E000000000000000000000000000000000004D
65722 +:10C3F000000000000000000000000000000000003D
65723 +:10C40000000000000000000000000000000000002C
65724 +:10C41000000000000000000000000000000000001C
65725 +:10C42000000000000000000000000000000000000C
65726 +:10C4300000000000000000000000000000000000FC
65727 +:10C4400000000000000000000000000000000000EC
65728 +:10C4500000000000000000000000000000000000DC
65729 +:10C4600000000000000000000000000000000000CC
65730 +:10C4700000000000000000000000000000000000BC
65731 +:10C4800000000000000000000000000000000000AC
65732 +:10C49000000000000000000000000000000000009C
65733 +:10C4A000000000000000000000000000000000008C
65734 +:10C4B000000000000000000000000000000000007C
65735 +:10C4C000000000000000000000000000000000006C
65736 +:10C4D000000000000000000000000000000000005C
65737 +:10C4E000000000000000000000000000000000004C
65738 +:10C4F000000000000000000000000000000000003C
65739 +:10C50000000000000000000000000000000000002B
65740 +:10C51000000000000000000000000000000000001B
65741 +:10C52000000000000000000000000000000000000B
65742 +:10C5300000000000000000000000000000000000FB
65743 +:10C5400000000000000000000000000000000000EB
65744 +:10C5500000000000000000000000000000000000DB
65745 +:10C5600000000000000000000000000000000000CB
65746 +:10C5700000000000000000000000000000000000BB
65747 +:10C5800000000000000000000000000000000000AB
65748 +:10C59000000000000000000000000000000000009B
65749 +:10C5A000000000000000000000000000000000008B
65750 +:10C5B000000000000000000000000000000000007B
65751 +:10C5C000000000000000000000000000000000006B
65752 +:10C5D000000000000000000000000000000000005B
65753 +:10C5E000000000000000000000000000000000004B
65754 +:10C5F000000000000000000000000000000000003B
65755 +:10C60000000000000000000000000000000000002A
65756 +:10C61000000000000000000000000000000000001A
65757 +:10C62000000000000000000000000000000000000A
65758 +:10C6300000000000000000000000000000000000FA
65759 +:10C6400000000000000000000000000000000000EA
65760 +:10C6500000000000000000000000000000000000DA
65761 +:10C6600000000000000000000000000000000000CA
65762 +:10C6700000000000000000000000000000000000BA
65763 +:10C6800000000000000000000000000000000000AA
65764 +:10C69000000000000000000000000000000000009A
65765 +:10C6A000000000000000000000000000000000008A
65766 +:10C6B000000000000000000000000000000000007A
65767 +:10C6C000000000000000000000000000000000006A
65768 +:10C6D000000000000000000000000000000000005A
65769 +:10C6E000000000000000000000000000000000004A
65770 +:10C6F000000000000000000000000000000000003A
65771 +:10C700000000000000000000000000000000000029
65772 +:10C710000000000000000000000000000000000019
65773 +:10C720000000000000000000000000000000000009
65774 +:10C7300000000000000000000000000000000000F9
65775 +:10C7400000000000000000000000000000000000E9
65776 +:10C7500000000000000000000000000000000000D9
65777 +:10C7600000000000000000000000000000000000C9
65778 +:10C7700000000000000000000000000000000000B9
65779 +:10C7800000000000000000000000000000000000A9
65780 +:10C790000000000000000000000000000000000099
65781 +:10C7A0000000000000000000000000000000000089
65782 +:10C7B0000000000000000000000000000000000079
65783 +:10C7C0000000000000000000000000000000000069
65784 +:10C7D0000000000000000000000000000000000059
65785 +:10C7E0000000000000000000000000000000000049
65786 +:10C7F0000000000000000000000000000000000039
65787 +:10C800000000000000000000000000000000000028
65788 +:10C810000000000000000000000000000000000018
65789 +:10C820000000000000000000000000000000000008
65790 +:10C8300000000000000000000000000000000000F8
65791 +:10C8400000000000000000000000000000000000E8
65792 +:10C8500000000000000000000000000000000000D8
65793 +:10C8600000000000000000000000000000000000C8
65794 +:10C8700000000000000000000000000000000000B8
65795 +:10C8800000000000000000000000000000000000A8
65796 +:10C890000000000000000000000000000000000098
65797 +:10C8A0000000000000000000000000000000000088
65798 +:10C8B0000000000000000000000000000000000078
65799 +:10C8C0000000000000000000000000000000000068
65800 +:10C8D0000000000000000000000000000000000058
65801 +:10C8E0000000000000000000000000000000000048
65802 +:10C8F0000000000000000000000000000000000038
65803 +:10C900000000000000000000000000000000000027
65804 +:10C910000000000000000000000000000000000017
65805 +:10C920000000000000000000000000000000000007
65806 +:10C9300000000000000000000000000000000000F7
65807 +:10C9400000000000000000000000000000000000E7
65808 +:10C9500000000000000000000000000000000000D7
65809 +:10C9600000000000000000000000000000000000C7
65810 +:10C9700000000000000000000000000000000000B7
65811 +:10C9800000000000000000000000000000000000A7
65812 +:10C990000000000000000000000000000000000097
65813 +:10C9A0000000000000000000000000000000000087
65814 +:10C9B0000000000000000000000000000000000077
65815 +:10C9C0000000000000000000000000000000000067
65816 +:10C9D0000000000000000000000000000000000057
65817 +:10C9E0000000000000000000000000000000000047
65818 +:10C9F0000000000000000000000000000000000037
65819 +:10CA00000000000000000000000000000000000026
65820 +:10CA10000000000000000000000000000000000016
65821 +:10CA20000000000000000000000000000000000006
65822 +:10CA300000000000000000000000000000000000F6
65823 +:10CA400000000000000000000000000000000000E6
65824 +:10CA500000000000000000000000000000000000D6
65825 +:10CA600000000000000000000000000000000000C6
65826 +:10CA700000000000000000000000000000000000B6
65827 +:10CA800000000000000000000000000000000000A6
65828 +:10CA90000000000000000000000000000000000096
65829 +:10CAA0000000000000000000000000000000000086
65830 +:10CAB0000000000000000000000000000000000076
65831 +:10CAC0000000000000000000000000000000000066
65832 +:10CAD0000000000000000000000000000000000056
65833 +:10CAE0000000000000000000000000000000000046
65834 +:10CAF0000000000000000000000000000000000036
65835 +:10CB00000000000000000000000000000000000025
65836 +:10CB10000000000000000000000000000000000015
65837 +:10CB20000000000000000000000000000000000005
65838 +:10CB300000000000000000000000000000000000F5
65839 +:10CB400000000000000000000000000000000000E5
65840 +:10CB500000000000000000000000000000000000D5
65841 +:10CB600000000000000000000000000000000000C5
65842 +:10CB700000000000000000000000000000000000B5
65843 +:10CB800000000000000000000000000000000000A5
65844 +:10CB90000000000000000000000000000000000095
65845 +:10CBA0000000000000000000000000000000000085
65846 +:10CBB0000000000000000000000000000000000075
65847 +:10CBC0000000000000000000000000000000000065
65848 +:10CBD0000000000000000000000000000000000055
65849 +:10CBE0000000000000000000000000000000000045
65850 +:10CBF0000000000000000000000000000000000035
65851 +:10CC00000000000000000000000000000000000024
65852 +:10CC10000000000000000000000000000000000014
65853 +:10CC20000000000000000000000000000000000004
65854 +:10CC300000000000000000000000000000000000F4
65855 +:10CC400000000000000000000000000000000000E4
65856 +:10CC500000000000000000000000000000000000D4
65857 +:10CC600000000000000000000000000000000000C4
65858 +:10CC700000000000000000000000000000000000B4
65859 +:10CC800000000000000000000000000000000000A4
65860 +:10CC90000000000000000000000000000000000094
65861 +:10CCA0000000000000000000000000000000000084
65862 +:10CCB0000000000000000000000000000000000074
65863 +:10CCC0000000000000000000000000000000000064
65864 +:10CCD0000000000000000000000000000000000054
65865 +:10CCE0000000000000000000000000000000000044
65866 +:10CCF0000000000000000000000000000000000034
65867 +:10CD00000000000000000000000000000000000023
65868 +:10CD10000000000000000000000000000000000013
65869 +:10CD20000000000000000000000000000000000003
65870 +:10CD300000000000000000000000000000000000F3
65871 +:10CD400000000000000000000000000000000000E3
65872 +:10CD500000000000000000000000000000000000D3
65873 +:10CD600000000000000000000000000000000000C3
65874 +:10CD700000000000000000000000000000000000B3
65875 +:10CD800000000000000000000000000000000000A3
65876 +:10CD90000000000000000000000000000000000093
65877 +:10CDA0000000000000000000000000000000000083
65878 +:10CDB0000000000000000000000000000000000073
65879 +:10CDC0000000000000000000000000000000000063
65880 +:10CDD0000000000000000000000000000000000053
65881 +:10CDE0000000000000000000000000000000000043
65882 +:10CDF0000000000000000000000000000000000033
65883 +:10CE00000000000000000000000000000000000022
65884 +:10CE10000000000000000000000000000000000012
65885 +:10CE20000000000000000000000000000000000002
65886 +:10CE300000000000000000000000000000000000F2
65887 +:10CE400000000000000000000000000000000000E2
65888 +:10CE500000000000000000000000000000000000D2
65889 +:10CE600000000000000000000000000000000000C2
65890 +:10CE700000000000000000000000000000000000B2
65891 +:10CE800000000000000000000000000000000000A2
65892 +:10CE90000000000000000000000000000000000092
65893 +:10CEA0000000000000000000000000000000000082
65894 +:10CEB0000000000000000000000000000000000072
65895 +:10CEC0000000000000000000000000000000000062
65896 +:10CED0000000000000000000000000000000000052
65897 +:10CEE0000000000000000000000000000000000042
65898 +:10CEF0000000000000000000000000000000000032
65899 +:10CF00000000000000000000000000000000000021
65900 +:10CF10000000000000000000000000000000000011
65901 +:10CF20000000000000000000000000000000000001
65902 +:10CF300000000000000000000000000000000000F1
65903 +:10CF400000000000000000000000000000000000E1
65904 +:10CF500000000000000000000000000000000000D1
65905 +:10CF600000000000000000000000000000000000C1
65906 +:10CF700000000000000000000000000000000000B1
65907 +:10CF800000000000000000000000000000000000A1
65908 +:10CF90000000000000000000000000000000000091
65909 +:10CFA0000000000000000000000000000000000081
65910 +:10CFB0000000000000000000000000000000000071
65911 +:10CFC0000000000000000000000000000000000061
65912 +:10CFD0000000000000000000000000000000000051
65913 +:10CFE0000000000000000000000000000000000041
65914 +:10CFF0000000000000000000000000000000000031
65915 +:10D000000000000000000000000000000000000020
65916 +:10D010000000000000000000000000000000000010
65917 +:10D020000000000000000000000000000000000000
65918 +:10D0300000000000000000000000000000000000F0
65919 +:10D0400000000000000000000000000000000000E0
65920 +:10D0500000000000000000000000000000000000D0
65921 +:10D0600000000000000000000000000000000000C0
65922 +:10D0700000000000000000000000000000000000B0
65923 +:10D0800000000000000000000000000000000000A0
65924 +:10D090000000000000000000000000000000000090
65925 +:10D0A0000000000000000000000000000000000080
65926 +:10D0B0000000000000000000000000000000000070
65927 +:10D0C0000000000000000000000000000000000060
65928 +:10D0D0000000000000000000000000000000000050
65929 +:10D0E0000000000000000000000000000000000040
65930 +:10D0F0000000000000000000000000000000000030
65931 +:10D10000000000000000000000000000000000001F
65932 +:10D11000000000000000000000000000000000000F
65933 +:10D1200000000000000000000000000000000000FF
65934 +:10D1300000000000000000000000000000000000EF
65935 +:10D1400000000000000000000000000000000000DF
65936 +:10D1500000000000000000000000000000000000CF
65937 +:10D1600000000000000000000000000000000000BF
65938 +:10D1700000000000000000000000000000000000AF
65939 +:10D18000000000000000000000000000000000009F
65940 +:10D19000000000000000000000000000000000008F
65941 +:10D1A000000000000000000000000000000000007F
65942 +:10D1B000000000000000000000000000000000006F
65943 +:10D1C000000000000000000000000000000000005F
65944 +:10D1D000000000000000000000000000000000004F
65945 +:10D1E000000000000000000000000000000000003F
65946 +:10D1F000000000000000000000000000000000002F
65947 +:10D20000000000000000000000000000000000001E
65948 +:10D21000000000000000000000000000000000000E
65949 +:10D2200000000000000000000000000000000000FE
65950 +:10D2300000000000000000000000000000000000EE
65951 +:10D2400000000000000000000000000000000000DE
65952 +:10D2500000000000000000000000000000000000CE
65953 +:10D2600000000000000000000000000000000000BE
65954 +:10D2700000000000000000000000000000000000AE
65955 +:10D28000000000000000000000000000000000009E
65956 +:10D29000000000000000000000000000000000008E
65957 +:10D2A000000000000000000000000000000000007E
65958 +:10D2B000000000000000000000000000000000006E
65959 +:10D2C000000000000000000000000000000000005E
65960 +:10D2D000000000000000000000000000000000004E
65961 +:10D2E000000000000000000000000000000000003E
65962 +:10D2F000000000000000000000000000000000002E
65963 +:10D30000000000000000000000000000000000001D
65964 +:10D31000000000000000000000000000000000000D
65965 +:10D3200000000000000000000000000000000000FD
65966 +:10D3300000000000000000000000000000000000ED
65967 +:10D3400000000000000000000000000000000000DD
65968 +:10D3500000000000000000000000000000000000CD
65969 +:10D3600000000000000000000000000000000000BD
65970 +:10D3700000000000000000000000000000000000AD
65971 +:10D38000000000000000000000000000000000009D
65972 +:10D39000000000000000000000000000000000008D
65973 +:10D3A000000000000000000000000000000000007D
65974 +:10D3B000000000000000000000000000000000006D
65975 +:10D3C000000000000000000000000000000000005D
65976 +:10D3D000000000000000000000000000000000004D
65977 +:10D3E000000000000000000000000000000000003D
65978 +:10D3F000000000000000000000000000000000002D
65979 +:10D40000000000000000000000000000000000001C
65980 +:10D41000000000000000000000000000000000000C
65981 +:10D4200000000000000000000000000000000000FC
65982 +:10D4300000000000000000000000000000000000EC
65983 +:10D4400000000000000000000000000000000000DC
65984 +:10D4500000000000000000000000000000000000CC
65985 +:10D4600000000000000000000000000000000000BC
65986 +:10D4700000000000000000000000000000000000AC
65987 +:10D48000000000000000000000000000000000009C
65988 +:10D49000000000000000000000000000000000008C
65989 +:10D4A000000000000000000000000000000000007C
65990 +:10D4B000000000000000000000000000000000006C
65991 +:10D4C000000000000000000000000000000000005C
65992 +:10D4D000000000000000000000000000000000004C
65993 +:10D4E000000000000000000000000000000000003C
65994 +:10D4F000000000000000000000000000000000002C
65995 +:10D50000000000000000000000000000000000001B
65996 +:10D51000000000000000000000000000000000000B
65997 +:10D5200000000000000000000000000000000000FB
65998 +:10D5300000000000000000000000000000000000EB
65999 +:10D5400000000000000000000000000000000000DB
66000 +:10D5500000000000000000000000000000000000CB
66001 +:10D5600000000000000000000000000000000000BB
66002 +:10D5700000000000000000000000000000000000AB
66003 +:10D58000000000000000000000000000000000009B
66004 +:10D59000000000000000008000000000000000000B
66005 +:10D5A000000000000000000000000000000000007B
66006 +:10D5B00000000000000000000000000A0000000061
66007 +:10D5C0000000000000000000100000030000000048
66008 +:10D5D0000000000D0000000D3C02080024427340D2
66009 +:10D5E0003C030800246377CCAC4000000043202BB0
66010 +:10D5F0001480FFFD244200043C1D080037BD7FFC61
66011 +:10D6000003A0F0213C100800261032103C1C08003A
66012 +:10D61000279C73400E0010FE000000000000000D6B
66013 +:10D6200030A5FFFF30C600FF274301808F4201B8BD
66014 +:10D630000440FFFE24020002AC640000A465000860
66015 +:10D64000A066000AA062000B3C021000AC67001844
66016 +:10D6500003E00008AF4201B83C0360008C624FF861
66017 +:10D660000440FFFE3C020200AC644FC0AC624FC4F9
66018 +:10D670003C02100003E00008AC624FF89482000CFA
66019 +:10D680002486001400A0382100021302000210803A
66020 +:10D690000082402100C8102B1040005700000000FD
66021 +:10D6A00090C300002C6200095040005190C200015C
66022 +:10D6B000000310803C030800246372F00043102133
66023 +:10D6C0008C420000004000080000000090C30001F0
66024 +:10D6D0002402000A1462003A000000000106102330
66025 +:10D6E0002C42000A1440003624C600028CE20000DE
66026 +:10D6F00034420100ACE2000090C2000090C300017F
66027 +:10D7000090C4000290C5000300031C000002160034
66028 +:10D710000043102500042200004410250045102578
66029 +:10D7200024C60004ACE2000490C2000090C30001D3
66030 +:10D7300090C4000290C500030002160000031C0004
66031 +:10D740000043102500042200004410250045102548
66032 +:10D7500024C600040A000CB8ACE2000890C3000123
66033 +:10D76000240200041462001624C6000290C20000C5
66034 +:10D7700090C400018CE30000000212000044102558
66035 +:10D780003463000424C60002ACE2000C0A000CB8AA
66036 +:10D79000ACE3000090C300012402000314620008FF
66037 +:10D7A00024C600028CE2000090C3000024C60001E1
66038 +:10D7B00034420008A0E300100A000CB8ACE20000FC
66039 +:10D7C00003E000082402000190C3000124020002CB
66040 +:10D7D0001062000224C40002010020210A000CB8DB
66041 +:10D7E000008030210A000CB824C6000190C200015C
66042 +:10D7F0000A000CB800C2302103E00008000010212C
66043 +:10D8000027BDFFE8AFBF0014AFB000100E00130239
66044 +:10D8100000808021936200052403FFFE0200202186
66045 +:10D82000004310248FBF00148FB00010A3620005C6
66046 +:10D830000A00130B27BD001827BDFFE8AFB000108A
66047 +:10D84000AFBF00140E000F3C0080802193620000E7
66048 +:10D8500024030050304200FF14430004240201005E
66049 +:10D86000AF4201800A000D3002002021AF4001804C
66050 +:10D87000020020218FBF00148FB000100A000FE7B4
66051 +:10D8800027BD001827BDFF80AFBE0078AFB700747A
66052 +:10D89000AFB20060AFBF007CAFB60070AFB5006C38
66053 +:10D8A000AFB40068AFB30064AFB1005CAFB0005874
66054 +:10D8B0008F5001283C0208008C4231A02403FF80D5
66055 +:10D8C0009365003F0202102100431024AF42002460
66056 +:10D8D0003C0208008C4231A09364000530B200FF86
66057 +:10D8E000020210213042007F034218210004202749
66058 +:10D8F0003C02000A0062182130840001AF8300144A
66059 +:10D900000000F0210000B82114800053AFA00050A7
66060 +:10D9100093430116934401128F450104306300FFC5
66061 +:10D920003C020001308400FF00A2282403431021A0
66062 +:10D9300003441821245640002467400014A001CD60
66063 +:10D940002402000193620000304300FF2402002003
66064 +:10D950001062000524020050106200060000000062
66065 +:10D960000A000D74000000000000000D0A000D7D8B
66066 +:10D97000AFA000303C1E080027DE738C0A000D7D2E
66067 +:10D98000AFA000303C0208008C4200DC24420001C1
66068 +:10D990003C010800AC2200DC0E00139F00000000D8
66069 +:10D9A0000A000F318FBF007C8F4201043C0300202E
66070 +:10D9B00092D3000D004310240002202B00042140CC
66071 +:10D9C000AFA400308F4301043C02004000621824E1
66072 +:10D9D000146000023485004000802821326200205B
66073 +:10D9E000AFA500301440000234A6008000A0302112
66074 +:10D9F00010C0000BAFA6003093C500088F67004C25
66075 +:10DA00000200202100052B0034A5008130A5F08103
66076 +:10DA10000E000C9B30C600FF0A000F2E0000000015
66077 +:10DA20009362003E304200401040000F2402000488
66078 +:10DA300056420007240200120200202100E02821A3
66079 +:10DA40000E0013F702C030210A000F318FBF007C97
66080 +:10DA500016420005000000000E000D2100002021EC
66081 +:10DA60000A000F318FBF007C9743011A96C4000E45
66082 +:10DA700093620035326500043075FFFF00442004D6
66083 +:10DA8000AFA400548ED1000410A000158ED400085D
66084 +:10DA90009362003E3042004010400007000000004A
66085 +:10DAA0000E0013E0022020211040000D00000000B5
66086 +:10DAB0000A000F2E000000008F6200440222102393
66087 +:10DAC0000440016A000000008F6200480222102317
66088 +:10DAD00004410166240400160A000E218FC20004CE
66089 +:10DAE0008F6200480222102304400008000000005A
66090 +:10DAF0003C0208008C423100244200013C01080035
66091 +:10DB0000AC2231000A000F23000000008F620040A9
66092 +:10DB100002221023184000128F8400143C020800D7
66093 +:10DB20008C423100327300FC0000A8212442000125
66094 +:10DB30003C010800AC2231008F6300409482011C3C
66095 +:10DB4000022318233042FFFF0043102A50400010E8
66096 +:10DB50002402000C8F6200400A000DF20222102302
66097 +:10DB60009483011C9762003C0043102B1040000678
66098 +:10DB7000000000009482011C00551023A482011CA7
66099 +:10DB80000A000DF72402000CA480011C2402000CE2
66100 +:10DB9000AFA200308F620040005120231880000D9A
66101 +:10DBA00002A4102A1440012600000000149500066B
66102 +:10DBB00002A410233A620001304200011440012007
66103 +:10DBC0000000000002A41023022488210A000E098C
66104 +:10DBD0003055FFFF00002021326200021040001A81
66105 +:10DBE000326200109362003E30420040504000110B
66106 +:10DBF0008FC200040E00130202002021240200182C
66107 +:10DC0000A362003F936200052403FFFE020020216F
66108 +:10DC1000004310240E00130BA362000524040039F6
66109 +:10DC2000000028210E0013C9240600180A000F3036
66110 +:10DC300024020001240400170040F809000000003D
66111 +:10DC40000A000F302402000110400108000000000B
66112 +:10DC50008F63004C8F620054028210231C4001032A
66113 +:10DC600002831023044200010060A021AFA4001829
66114 +:10DC7000AFB10010AFB50014934201208F65004092
66115 +:10DC80009763003C304200FF034210210044102102
66116 +:10DC90008FA400543063FFFF244240000083182B00
66117 +:10DCA0008FA40030AFA20020AFA50028008320255C
66118 +:10DCB000AFA40030AFA50024AFA0002CAFB4003457
66119 +:10DCC0009362003E30420008504000118FC20000B5
66120 +:10DCD00002C0202127A500380E000CB2AFA00038EA
66121 +:10DCE0005440000B8FC200008FA200383042010068
66122 +:10DCF000504000078FC200008FA3003C8F6200607D
66123 +:10DD00000062102304430001AF6300608FC2000073
66124 +:10DD10000040F80927A400108FA200303042000212
66125 +:10DD200054400001327300FE9362003E30420040D6
66126 +:10DD3000104000378FA200248F6200541682001A10
66127 +:10DD40003262000124020014124200102A4200151F
66128 +:10DD500010400006240200162402000C12420007A4
66129 +:10DD6000326200010A000E7D000000001242000530
66130 +:10DD7000326200010A000E7D000000000A000E78E9
66131 +:10DD80002417000E0A000E78241700100A000E7CDB
66132 +:10DD900024170012936200232403FFBD00431024C4
66133 +:10DDA000A362002332620001104000198FA20024F8
66134 +:10DDB0002402000C1242000E2A42000D1040000600
66135 +:10DDC0002402000E2402000A124200078FA200243F
66136 +:10DDD0000A000E9524420001124200088FA200247E
66137 +:10DDE0000A000E95244200010A000E932417000831
66138 +:10DDF0002402000E16E20002241700162417001059
66139 +:10DE00008FA2002424420001AFA200248FA200248C
66140 +:10DE10008FA300148F76004000431021AF620040B2
66141 +:10DE20008F8200149442011C104000090000000081
66142 +:10DE30008F6200488F6400409763003C00441023C9
66143 +:10DE40003063FFFF0043102A104000088FA20054E7
66144 +:10DE5000936400368F6300403402FFFC008210049C
66145 +:10DE600000621821AF6300488FA200548FA60030D3
66146 +:10DE70000282902130C200081040000E0000000015
66147 +:10DE80008F6200581642000430C600FF9742011A04
66148 +:10DE90005040000134C6001093C500088FA700341D
66149 +:10DEA0000200202100052B0034A500800E000C9BF1
66150 +:10DEB00030A5F0808F620040005610231840001BF0
66151 +:10DEC0008FA200183C0208008C42319830420010AA
66152 +:10DED0001040000D24020001976200681440000AFF
66153 +:10DEE000240200018F8200149442011C1440000699
66154 +:10DEF00024020001A76200689742007A244200646D
66155 +:10DF00000A000EE9A7620012A76200120E001302B7
66156 +:10DF1000020020219362007D2403000102002021E1
66157 +:10DF2000344200010A000EE7AFA300501840000A77
66158 +:10DF3000000000000E001302020020219362007D09
66159 +:10DF40002403000102002021AFA30050344200044A
66160 +:10DF50000E00130BA362007D9362003E304200402E
66161 +:10DF60001440000C326200011040000A0000000062
66162 +:10DF70008F6300408FC20004240400182463000152
66163 +:10DF80000040F809AF6300408FA200300A000F3054
66164 +:10DF9000304200048F620058105200100000000050
66165 +:10DFA0008F620018022210231C4000082404000184
66166 +:10DFB0008F62001816220009000000008F62001C0A
66167 +:10DFC000028210230440000500000000AF720058D8
66168 +:10DFD000AFA40050AF710018AF74001C12E0000B2A
66169 +:10DFE0008FA200500E00130202002021A377003FF1
66170 +:10DFF0000E00130B0200202102E030212404003720
66171 +:10E000000E0013C9000028218FA200501040000309
66172 +:10E01000000000000E000CA90200202112A0000543
66173 +:10E02000000018218FA2003030420004504000113F
66174 +:10E0300000601021240300010A000F30006010214D
66175 +:10E040000E001302020020219362007D02002021B5
66176 +:10E05000344200040E00130BA362007D0E000CA9D5
66177 +:10E06000020020210A000F3024020001AF400044CA
66178 +:10E07000240200018FBF007C8FBE00788FB7007430
66179 +:10E080008FB600708FB5006C8FB400688FB30064DA
66180 +:10E090008FB200608FB1005C8FB0005803E00008C1
66181 +:10E0A00027BD00808F4201B80440FFFE2402080013
66182 +:10E0B000AF4201B803E00008000000003C02000885
66183 +:10E0C00003421021944200483084FFFF2484001250
66184 +:10E0D0003045FFFF10A0001700A4102B10400016C1
66185 +:10E0E00024020003934201202403001AA343018B5E
66186 +:10E0F000304200FF2446FFFE8F82000000A6182B4E
66187 +:10E100003863000100021382004310241040000510
66188 +:10E110008F84000434820001A746019403E00008C4
66189 +:10E12000AF8200042402FFFE0082102403E00008F6
66190 +:10E13000AF8200042402000303E00008A342018B25
66191 +:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3
66192 +:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17
66193 +:10E1600000000000AF440180AF4400200E000F42C9
66194 +:10E17000020020218F8300008F840004A750019AA1
66195 +:10E18000A750018EA74301908F8300083082800042
66196 +:10E19000AF4301A8A75101881040000E8F820004F0
66197 +:10E1A00093420116304200FC24420004005A102120
66198 +:10E1B0008C4240003042FFFF144000068F82000472
66199 +:10E1C0003C02FFFF34427FFF00821024AF82000434
66200 +:10E1D0008F8200042403BFFF00431024A74201A63E
66201 +:10E1E0009743010C8F42010400031C003042FFFFE3
66202 +:10E1F00000621825AF4301AC3C021000AF4201B8E9
66203 +:10E200008FBF00188FB100148FB0001003E000081A
66204 +:10E2100027BD00208F470070934201128F830000BA
66205 +:10E2200027BDFFF0304200FF00022882306201006B
66206 +:10E23000000030211040004324A40003306240005D
66207 +:10E24000104000103062200000041080005A10219D
66208 +:10E250008C43400024A4000400041080AFA30000FD
66209 +:10E26000005A10218C424000AFA2000493420116D4
66210 +:10E27000304200FC005A10218C4240000A000FC0BE
66211 +:10E28000AFA200081040002F0000302100041080D1
66212 +:10E29000005A10218C43400024A400040004108084
66213 +:10E2A000AFA30000005A10218C424000AFA000082C
66214 +:10E2B000AFA200048FA80008000030210000202138
66215 +:10E2C000240A00083C0908002529010003A41021A4
66216 +:10E2D000148A000300042A001100000A0000000054
66217 +:10E2E00090420000248400012C83000C00A2102125
66218 +:10E2F00000021080004910218C4200001460FFF3DE
66219 +:10E3000000C230263C0408008C8431048F42007027
66220 +:10E310002C83002010600009004738233C030800CC
66221 +:10E32000246331080004108000431021248300017D
66222 +:10E33000AC4700003C010800AC233104AF86000864
66223 +:10E340002406000100C0102103E0000827BD0010D2
66224 +:10E350003C0208008C42003827BDFFD0AFB5002436
66225 +:10E36000AFB40020AFB10014AFBF0028AFB3001CA2
66226 +:10E37000AFB20018AFB00010000088213C150800B3
66227 +:10E3800026B50038144000022454FFFF0000A021ED
66228 +:10E390009742010E8F8400003042FFFF308340001F
66229 +:10E3A0001060000A245200043C0200200082102465
66230 +:10E3B00050400007308280008F8200042403BFFF9A
66231 +:10E3C000008318240A0010103442100030828000AC
66232 +:10E3D0001040000A3C020020008210241040000778
66233 +:10E3E0008F8200043C03FFFF34637FFF0083182407
66234 +:10E3F00034428000AF820004AF8300000E000F980B
66235 +:10E400000000000014400007000000009743011EB8
66236 +:10E410009742011C3063FFFF0002140000621825C0
66237 +:10E42000AF8300089742010C8F4340003045FFFF47
66238 +:10E430003402FFFF14620003000000000A001028ED
66239 +:10E44000241100208F42400030420100544000015E
66240 +:10E45000241100108F8400003082100050400014FE
66241 +:10E4600036310001308200201440000B3C021000C5
66242 +:10E47000008210245040000E363100013C030E0093
66243 +:10E480003C020DFF008318243442FFFF0043102B91
66244 +:10E4900050400007363100013C0208008C42002C3D
66245 +:10E4A000244200013C010800AC22002C363100055A
66246 +:10E4B0003C0608008CC6003454C000238F85000041
66247 +:10E4C0008F820004304240005440001F8F850000BE
66248 +:10E4D0003C021F01008210243C0310005443001A28
66249 +:10E4E0008F85000030A20200144000178F850000C5
66250 +:10E4F0003250FFFF363100028F4201B80440FFFE68
66251 +:10E5000000000000AF400180020020210E000F42F9
66252 +:10E51000AF4000208F8300042402BFFFA750019A60
66253 +:10E52000006218248F820000A750018EA751018835
66254 +:10E53000A74301A6A74201903C021000AF4201B8D8
66255 +:10E540000A0010F5000010213C02100000A2102467
66256 +:10E550001040003A0000000010C0000F0000000052
66257 +:10E5600030A201001040000C3C0302003C020F00EE
66258 +:10E5700000A2102410430008000000008F82000851
66259 +:10E58000005410240055102190420004244200043D
66260 +:10E590000A00109F000221C00000000000051602C2
66261 +:10E5A0003050000F3A0300022E4203EF38420001C0
66262 +:10E5B0002C6300010062182414600073240200011F
66263 +:10E5C0003C0308008C6300D02E06000C386200016A
66264 +:10E5D0002C4200010046102414400015001021C0F8
66265 +:10E5E0002602FFFC2C4200045440001100002021B0
66266 +:10E5F000386200022C420001004610241040000343
66267 +:10E60000000512420A00109F000020210010182B64
66268 +:10E610000043102450400006001021C000002021BB
66269 +:10E620003245FFFF0E000F633226FFFB001021C0B2
66270 +:10E630003245FFFF0A0010F2362600028F424000EA
66271 +:10E640003C0308008C630024304201001040004667
66272 +:10E6500030620001322200043070000D14400002CC
66273 +:10E660002413000424130002000512C238420001E2
66274 +:10E670002E4303EF304200013863000100431025B0
66275 +:10E68000104000033231FFFB2402FFFB0202802412
66276 +:10E6900010C000183202000130A201001040001525
66277 +:10E6A000320200013C020F0000A210243C030200D1
66278 +:10E6B0001043000F8F8200082403FFFE0203802412
66279 +:10E6C00000541024005510219042000402333025DC
66280 +:10E6D0002442000412000002000221C03226FFFF83
66281 +:10E6E0000E000F633245FFFF1200002700001021CB
66282 +:10E6F000320200011040000D320200042402000129
66283 +:10E7000012020002023330253226FFFF00002021D2
66284 +:10E710000E000F633245FFFF2402FFFE0202802439
66285 +:10E7200012000019000010213202000410400016EF
66286 +:10E7300024020001240200041202000202333025E8
66287 +:10E740003226FFFF3245FFFF0E000F632404010055
66288 +:10E750002402FFFB020280241200000B00001021A3
66289 +:10E760000A0010F5240200011040000700001021EB
66290 +:10E770003245FFFF36260002000020210E000F6305
66291 +:10E7800000000000000010218FBF00288FB500247A
66292 +:10E790008FB400208FB3001C8FB200188FB100140B
66293 +:10E7A0008FB0001003E0000827BD003027BDFFD068
66294 +:10E7B000AFB000103C04600CAFBF002CAFB6002817
66295 +:10E7C000AFB50024AFB40020AFB3001CAFB2001847
66296 +:10E7D000AFB100148C8250002403FF7F3C1A8000EC
66297 +:10E7E000004310243442380CAC8250002402000351
66298 +:10E7F0003C106000AF4200088E0208083C1B8008F5
66299 +:10E800003C010800AC2000203042FFF038420010EC
66300 +:10E810002C4200010E001B8DAF8200183C04FFFF4C
66301 +:10E820003C020400348308063442000CAE0219484E
66302 +:10E83000AE03194C3C0560168E0219808CA30000B3
66303 +:10E840003442020000641824AE0219803C02535383
66304 +:10E850001462000334A47C008CA200040050202128
66305 +:10E860008C82007C8C830078AF820010AF83000C18
66306 +:10E870008F55000032A200031040FFFD32A20001BC
66307 +:10E880001040013D32A200028F420128AF42002019
66308 +:10E890008F4201048F430100AF8200000E000F3C45
66309 +:10E8A000AF8300043C0208008C4200C01040000806
66310 +:10E8B0008F8400003C0208008C4200C42442000106
66311 +:10E8C0003C010800AC2200C40A00126900000000EC
66312 +:10E8D0003C020010008210241440010C8F830004BD
66313 +:10E8E0003C0208008C4200203C0308008C63003886
66314 +:10E8F00000008821244200013C010800AC220020D5
66315 +:10E900003C16080026D60038146000022474FFFF6D
66316 +:10E910000000A0219742010E308340003042FFFFEB
66317 +:10E920001060000A245200043C02002000821024DF
66318 +:10E9300050400007308280008F8200042403BFFF14
66319 +:10E94000008318240A0011703442100030828000C5
66320 +:10E950001040000A3C0200200082102410400007F2
66321 +:10E960008F8200043C03FFFF34637FFF0083182481
66322 +:10E9700034428000AF820004AF8300000E000F9885
66323 +:10E980000000000014400007000000009743011E33
66324 +:10E990009742011C3063FFFF00021400006218253B
66325 +:10E9A000AF8300089742010C8F4340003045FFFFC2
66326 +:10E9B0003402FFFF14620003000000000A00118807
66327 +:10E9C000241100208F4240003042010054400001D9
66328 +:10E9D000241100108F840000308210005040001479
66329 +:10E9E00036310001308200201440000B3C02100040
66330 +:10E9F000008210245040000E363100013C030E000E
66331 +:10EA00003C020DFF008318243442FFFF0043102B0B
66332 +:10EA100050400007363100013C0208008C42002CB7
66333 +:10EA2000244200013C010800AC22002C36310005D4
66334 +:10EA30003C0608008CC6003454C000238F850000BB
66335 +:10EA40008F820004304240005440001F8F85000038
66336 +:10EA50003C021F01008210243C0310005443001AA2
66337 +:10EA60008F85000030A20200144000178F8500003F
66338 +:10EA70003250FFFF363100028F4201B80440FFFEE2
66339 +:10EA800000000000AF400180020020210E000F4274
66340 +:10EA9000AF4000208F8300042402BFFFA750019ADB
66341 +:10EAA000006218248F820000A750018EA7510188B0
66342 +:10EAB000A74301A6A74201903C021000AF4201B853
66343 +:10EAC0000A001267000010213C02100000A210246E
66344 +:10EAD0001040003A0000000010C0000F00000000CD
66345 +:10EAE00030A201001040000C3C0302003C020F0069
66346 +:10EAF00000A2102410430008000000008F820008CC
66347 +:10EB000000541024005610219042000424420004B6
66348 +:10EB10000A0011FF000221C00000000000051602DB
66349 +:10EB20003050000F3A0300022E4203EF384200013A
66350 +:10EB30002C63000100621824146000852402000187
66351 +:10EB40003C0308008C6300D02E06000C38620001E4
66352 +:10EB50002C4200010046102414400015001021C072
66353 +:10EB60002602FFFC2C42000454400011000020212A
66354 +:10EB7000386200022C42000100461024504000037D
66355 +:10EB8000000512420A0011FF000020210010182B7E
66356 +:10EB90000043102450400006001021C00000202136
66357 +:10EBA0003245FFFF0E000F633226FFFB001021C02D
66358 +:10EBB0003245FFFF0A001252362600028F42400003
66359 +:10EBC0003C0308008C6300243042010010400046E2
66360 +:10EBD00030620001322200043070000D1440000247
66361 +:10EBE0002413000424130002000512C2384200015D
66362 +:10EBF0002E4303EF3042000138630001004310252B
66363 +:10EC0000104000033231FFFB2402FFFB020280248C
66364 +:10EC100010C000183202000130A20100104000159F
66365 +:10EC2000320200013C020F0000A210243C0302004B
66366 +:10EC30001043000F8F8200082403FFFE020380248C
66367 +:10EC40000054102400561021904200040233302555
66368 +:10EC50002442000412000002000221C03226FFFFFD
66369 +:10EC60000E000F633245FFFF120000390000102133
66370 +:10EC7000320200011040000D3202000424020001A3
66371 +:10EC800012020002023330253226FFFF000020214D
66372 +:10EC90000E000F633245FFFF2402FFFE02028024B4
66373 +:10ECA0001200002B00001021320200041040002846
66374 +:10ECB0002402000124020004120200020233302563
66375 +:10ECC0003226FFFF3245FFFF0E000F6324040100D0
66376 +:10ECD0002402FFFB020280241200001D000010210C
66377 +:10ECE0000A001267240200015040001900001021A0
66378 +:10ECF0003245FFFF36260002000020210E000F6380
66379 +:10ED0000000000000A001267000010212402BFFF6B
66380 +:10ED1000006210241040000800000000240287FF59
66381 +:10ED200000621024144000083C020060008210249D
66382 +:10ED300010400005000000000E000D34000000002F
66383 +:10ED40000A001267000000000E0012C70000000059
66384 +:10ED5000104000063C0240008F4301243C0260202A
66385 +:10ED6000AC430014000000003C024000AF420138F8
66386 +:10ED70000000000032A200021040FEBD00000000B2
66387 +:10ED80008F4201403C044000AF4200208F430148C5
66388 +:10ED90003C02700000621824106400420000000071
66389 +:10EDA0000083102B144000063C0260003C0220004F
66390 +:10EDB000106200073C0240000A0012C3000000007D
66391 +:10EDC0001062003C3C0240000A0012C30000000038
66392 +:10EDD0008F4501408F4601448F42014800021402D2
66393 +:10EDE000304300FF240200041462000A274401801B
66394 +:10EDF0008F4201B80440FFFE2402001CAC850000D5
66395 +:10EE0000A082000B3C021000AF4201B80A0012C3FE
66396 +:10EE10003C0240002402000914620012000616029F
66397 +:10EE2000000229C0AF4500208F4201B80440FFFE18
66398 +:10EE30002402000124030003AF450180A343018B9A
66399 +:10EE4000A740018EA740019AA7400190AF4001A8BA
66400 +:10EE5000A7420188A74201A6AF4001AC3C021000C6
66401 +:10EE6000AF4201B88F4201B80440FFFE000000002D
66402 +:10EE7000AC8500008F42014800021402A482000801
66403 +:10EE800024020002A082000B8F420148A4820010DD
66404 +:10EE90003C021000AC860024AF4201B80A0012C345
66405 +:10EEA0003C0240000E001310000000000A0012C3D4
66406 +:10EEB0003C0240000E001BC2000000003C0240006B
66407 +:10EEC000AF420178000000000A00112F000000008E
66408 +:10EED0008F4201003042003E144000112402000124
66409 +:10EEE000AF4000488F420100304207C0104000058B
66410 +:10EEF00000000000AF40004CAF40005003E00008AD
66411 +:10EF000024020001AF400054AF4000408F42010096
66412 +:10EF10003042380054400001AF4000442402000158
66413 +:10EF200003E00008000000008F4201B80440FFFE2B
66414 +:10EF300024020001AF440180AF400184A74501884D
66415 +:10EF4000A342018A24020002A342018B9742014A94
66416 +:10EF500014C00004A7420190AF4001A40A0012EFC0
66417 +:10EF60003C0210008F420144AF4201A43C02100059
66418 +:10EF7000AF4001A803E00008AF4201B88F4201B8DA
66419 +:10EF80000440FFFE24020002AF440180AF4401842C
66420 +:10EF9000A7450188A342018AA342018B9742014AF7
66421 +:10EFA000A7420190AF4001A48F420144AF4201A8A3
66422 +:10EFB0003C02100003E00008AF4201B83C029000A0
66423 +:10EFC0003442000100822025AF4400208F420020FF
66424 +:10EFD0000440FFFE0000000003E000080000000005
66425 +:10EFE0003C028000344200010082202503E000083A
66426 +:10EFF000AF44002027BDFFE8AFBF0014AFB0001042
66427 +:10F000008F50014093430149934201489344014882
66428 +:10F01000306300FF304200FF00021200006228252A
66429 +:10F020002402001910620076308400802862001AE1
66430 +:10F030001040001C24020020240200081062007707
66431 +:10F04000286200091040000E2402000B2402000177
66432 +:10F0500010620034286200025040000524020006BD
66433 +:10F0600050600034020020210A00139A00000000C2
66434 +:10F0700010620030020020210A00139A00000000F4
66435 +:10F080001062003B2862000C504000022402000E77
66436 +:10F090002402000910620056020020210A00139A7F
66437 +:10F0A0000000000010620056286200211040000F8E
66438 +:10F0B000240200382402001C106200582862001D3F
66439 +:10F0C000104000062402001F2402001B1062004CA6
66440 +:10F0D000000000000A00139A000000001062004ABD
66441 +:10F0E000020020210A00139A00000000106200456F
66442 +:10F0F0002862003910400007240200802462FFCB00
66443 +:10F100002C42000210400045020020210A00139604
66444 +:10F110000000302110620009000000000A00139A6C
66445 +:10F12000000000001480003D020020210A0013901E
66446 +:10F130008FBF00140A001396240600018F4201B805
66447 +:10F140000440FFFE24020002A342018BA745018870
66448 +:10F150009742014AA74201908F420144A74201927F
66449 +:10F160003C021000AF4201B80A00139C8FBF00148C
66450 +:10F170009742014A144000290000000093620005F4
66451 +:10F180003042000414400025000000000E0013026D
66452 +:10F190000200202193620005020020213442000475
66453 +:10F1A0000E00130BA36200059362000530420004B9
66454 +:10F1B00014400002000000000000000D93620000F7
66455 +:10F1C00024030020304200FF14430014000000001C
66456 +:10F1D0008F4201B80440FFFE24020005AF500180B9
66457 +:10F1E000A342018B3C0210000A00139AAF4201B8FF
66458 +:10F1F0008FBF00148FB000100A0012F227BD001854
66459 +:10F200000000000D02002021000030218FBF0014FB
66460 +:10F210008FB000100A0012DD27BD00180000000D9D
66461 +:10F220008FBF00148FB0001003E0000827BD001846
66462 +:10F2300027BDFFE8AFBF00100E000F3C000000002C
66463 +:10F24000AF4001808FBF0010000020210A000FE7AF
66464 +:10F2500027BD00183084FFFF30A5FFFF00001821F4
66465 +:10F260001080000700000000308200011040000202
66466 +:10F2700000042042006518210A0013AB0005284055
66467 +:10F2800003E000080060102110C0000624C6FFFF44
66468 +:10F290008CA2000024A50004AC8200000A0013B573
66469 +:10F2A0002484000403E000080000000010A000080F
66470 +:10F2B00024A3FFFFAC860000000000000000000057
66471 +:10F2C0002402FFFF2463FFFF1462FFFA248400047A
66472 +:10F2D00003E0000800000000308300FF30A500FFBD
66473 +:10F2E00030C600FF274701808F4201B80440FFFE6F
66474 +:10F2F000000000008F42012834634000ACE20000AF
66475 +:10F3000024020001ACE00004A4E30008A0E2000A2B
66476 +:10F3100024020002A0E2000B3C021000A4E5001051
66477 +:10F32000ACE00024ACE00028A4E6001203E00008F2
66478 +:10F33000AF4201B827BDFFE8AFBF00109362003FA6
66479 +:10F3400024030012304200FF1043000D00803021E2
66480 +:10F350008F620044008210230440000A8FBF001017
66481 +:10F360008F620048240400390000282100C21023C5
66482 +:10F3700004410004240600120E0013C9000000001E
66483 +:10F380008FBF00102402000103E0000827BD001811
66484 +:10F3900027BDFFC8AFB20030AFB1002CAFBF003403
66485 +:10F3A000AFB0002890C5000D0080902130A400105F
66486 +:10F3B0001080000B00C088218CC300088F620054AD
66487 +:10F3C0001062000730A20005144000B524040001BB
66488 +:10F3D0000E000D21000020210A0014BB0040202156
66489 +:10F3E00030A200051040000930A30012108000ACCC
66490 +:10F3F000240400018E2300088F620054146200A9C7
66491 +:10F400008FBF00340A00142C240400382402001298
66492 +:10F41000146200A3240400010220202127A500106B
66493 +:10F420000E000CB2AFA000101040001102402021CD
66494 +:10F430008E220008AF620084AF6000400E0013020D
66495 +:10F44000000000009362007D024020213442002031
66496 +:10F450000E00130BA362007D0E000CA902402021B8
66497 +:10F46000240400382405008D0A0014B82406001274
66498 +:10F470009362003E304200081040000F8FA200103F
66499 +:10F4800030420100104000078FA300148F6200601B
66500 +:10F490000062102304430008AF6300600A001441B7
66501 +:10F4A00000000000AF6000609362003E2403FFF79D
66502 +:10F4B00000431024A362003E9362003E30420008E5
66503 +:10F4C000144000022406000300003021936200343F
66504 +:10F4D000936300378F640084304200FF306300FF85
66505 +:10F4E00000661821000318800043282100A4202B67
66506 +:10F4F0001080000B000000009763003C8F620084C6
66507 +:10F500003063FFFF004510230062182B14600004D5
66508 +:10F51000000000008F6200840A00145D0045802313
66509 +:10F520009762003C3050FFFF8FA300103062000450
66510 +:10F5300010400004000628808FA2001C0A001465F9
66511 +:10F540000202102B2E02021850400003240202185F
66512 +:10F550000A00146E020510233063000410600003DB
66513 +:10F56000004510238FA2001C00451023004080217D
66514 +:10F570002C42008054400001241000800E00130231
66515 +:10F580000240202124020001AF62000C9362003E81
66516 +:10F59000001020403042007FA362003E8E22000413
66517 +:10F5A00024420001AF620040A770003C8F6200500F
66518 +:10F5B0009623000E00431021AF6200588F62005066
66519 +:10F5C00000441021AF62005C8E220004AF6200187C
66520 +:10F5D0008E220008AF62001C8FA20010304200088B
66521 +:10F5E0005440000A93A20020A360003693620036C4
66522 +:10F5F0002403FFDFA36200359362003E0043102422
66523 +:10F60000A362003E0A0014988E220008A36200350F
66524 +:10F610008E220008AF62004C8F6200248F6300408E
66525 +:10F6200000431021AF6200489362000024030050A1
66526 +:10F63000304200FF144300122403FF803C02080004
66527 +:10F640008C4231A00242102100431024AF42002816
66528 +:10F650003C0208008C4231A08E2400083C03000CC0
66529 +:10F66000024210213042007F03421021004310214A
66530 +:10F67000AC4400D88E230008AF820014AC4300DCF9
66531 +:10F680000E00130B02402021240400380000282122
66532 +:10F690002406000A0E0013C9000000002404000123
66533 +:10F6A0008FBF00348FB200308FB1002C8FB0002894
66534 +:10F6B0000080102103E0000827BD003827BDFFF8B7
66535 +:10F6C00027420180AFA20000308A00FF8F4201B8BC
66536 +:10F6D0000440FFFE000000008F4601283C020800A5
66537 +:10F6E0008C4231A02403FF80AF86004800C2102165
66538 +:10F6F00000431024AF4200243C0208008C4231A099
66539 +:10F700008FA900008FA8000000C210213042007FA6
66540 +:10F71000034218213C02000A00621821946400D4BC
66541 +:10F720008FA700008FA5000024020002AF83001401
66542 +:10F73000A0A2000B8FA30000354260003084FFFFC1
66543 +:10F74000A4E200083C021000AD260000AD04000455
66544 +:10F75000AC60002427BD0008AF4201B803E00008F8
66545 +:10F76000240200018F88003C938200288F830014BC
66546 +:10F770003C07080024E7779800481023304200FF38
66547 +:10F78000304900FC246500888F860040304A000321
66548 +:10F790001120000900002021248200048CA3000015
66549 +:10F7A000304400FF0089102AACE3000024A50004C7
66550 +:10F7B0001440FFF924E70004114000090000202153
66551 +:10F7C0002482000190A30000304400FF008A102B27
66552 +:10F7D000A0E3000024A500011440FFF924E7000184
66553 +:10F7E00030C20003144000048F85003C3102000346
66554 +:10F7F0001040000D0000000010A0000900002021B2
66555 +:10F800002482000190C30000304400FF0085102BCB
66556 +:10F81000A0E3000024C600011440FFF924E7000122
66557 +:10F8200003E00008000000001100FFFD000020219F
66558 +:10F83000248200048CC30000304400FF0088102B99
66559 +:10F84000ACE3000024C600041440FFF924E70004E0
66560 +:10F8500003E00008000000008F83003C9382002832
66561 +:10F8600030C600FF30A500FF00431023304300FFE7
66562 +:10F870008F820014008038210043102114C0000240
66563 +:10F88000244800880083382130E20003144000053A
66564 +:10F8900030A2000314400003306200031040000D4A
66565 +:10F8A0000000000010A000090000202124820001B7
66566 +:10F8B00090E30000304400FF0085102BA1030000FE
66567 +:10F8C00024E700011440FFF92508000103E00008C7
66568 +:10F8D0000000000010A0FFFD000020212482000491
66569 +:10F8E0008CE30000304400FF0085102BAD030000C6
66570 +:10F8F00024E700041440FFF92508000403E0000891
66571 +:10F90000000000000080482130AAFFFF30C600FF41
66572 +:10F9100030E7FFFF274801808F4201B80440FFFE17
66573 +:10F920008F820048AD0200008F420124AD02000426
66574 +:10F930008D220020A5070008A102000A240200165B
66575 +:10F94000A102000B934301208D2200088D240004A6
66576 +:10F95000306300FF004310219783003A00441021D8
66577 +:10F960008D250024004310233C0308008C6331A044
66578 +:10F970008F840014A502000C246300E82402FFFF1A
66579 +:10F98000A50A000EA5030010A5060012AD0500187B
66580 +:10F99000AD020024948201142403FFF73042FFFFDC
66581 +:10F9A000AD0200288C820118AD02002C3C02100030
66582 +:10F9B000AD000030AF4201B88D220020004310247A
66583 +:10F9C00003E00008AD2200208F82001430E7FFFF23
66584 +:10F9D00000804821904200D330A5FFFF30C600FFD1
66585 +:10F9E0000002110030420F0000E238252748018054
66586 +:10F9F0008F4201B80440FFFE8F820048AD02000034
66587 +:10FA00008F420124AD0200048D220020A5070008CA
66588 +:10FA1000A102000A24020017A102000B9343012057
66589 +:10FA20008D2200088D240004306300FF0043102164
66590 +:10FA30009783003A004410218F8400140043102360
66591 +:10FA40003C0308008C6331A0A502000CA505000E44
66592 +:10FA5000246300E8A5030010A5060012AD00001401
66593 +:10FA60008D220024AD0200188C82005CAD02001CC7
66594 +:10FA70008C820058AD0200202402FFFFAD0200245A
66595 +:10FA8000948200E63042FFFFAD02002894820060BD
66596 +:10FA9000948300BE30427FFF3063FFFF00021200FC
66597 +:10FAA00000431021AD02002C3C021000AD000030DC
66598 +:10FAB000AF4201B8948200BE2403FFF700A21021D8
66599 +:10FAC000A48200BE8D2200200043102403E0000821
66600 +:10FAD000AD220020274301808F4201B80440FFFE81
66601 +:10FAE0008F8200249442001C3042FFFF000211C0AC
66602 +:10FAF000AC62000024020019A062000B3C0210005E
66603 +:10FB0000AC60003003E00008AF4201B88F87002CE2
66604 +:10FB100030C300FF8F4201B80440FFFE8F820048CF
66605 +:10FB200034636000ACA2000093820044A0A20005F0
66606 +:10FB30008CE20010A4A20006A4A300088C8200207E
66607 +:10FB40002403FFF7A0A2000A24020002A0A2000BD7
66608 +:10FB50008CE20000ACA200108CE20004ACA2001405
66609 +:10FB60008CE2001CACA200248CE20020ACA2002895
66610 +:10FB70008CE2002CACA2002C8C820024ACA20018D9
66611 +:10FB80003C021000AF4201B88C82002000431024D8
66612 +:10FB900003E00008AC8200208F86001427BDFFE838
66613 +:10FBA000AFBF0014AFB0001090C20063304200201D
66614 +:10FBB0001040000830A500FF8CC2007C2403FFDF4A
66615 +:10FBC00024420001ACC2007C90C2006300431024B8
66616 +:10FBD000A0C2006310A000238F830014275001806F
66617 +:10FBE000020028210E0015D6240600828F82001400
66618 +:10FBF000904200633042004050400019A38000440E
66619 +:10FC00008F83002C8F4201B80440FFFE8F82004892
66620 +:10FC1000AE02000024026082A60200082402000254
66621 +:10FC2000A202000B8C620008AE0200108C62000C75
66622 +:10FC3000AE0200148C620014AE0200188C62001830
66623 +:10FC4000AE0200248C620024AE0200288C620028E0
66624 +:10FC5000AE02002C3C021000AF4201B8A380004469
66625 +:10FC60008F8300148FBF00148FB000109062006368
66626 +:10FC700027BD00183042007FA06200639782003ADF
66627 +:10FC80008F86003C8F850014938300280046102344
66628 +:10FC9000A782003AA4A000E490A400638F820040F1
66629 +:10FCA000AF83003C2403FFBF0046102100832024C3
66630 +:10FCB000AF820040A0A400638F820014A04000BD6A
66631 +:10FCC0008F82001403E00008A44000BE8F8A001455
66632 +:10FCD00027BDFFE0AFB10014AFB000108F88003C2B
66633 +:10FCE000AFBF00189389001C954200E430D100FF9B
66634 +:10FCF0000109182B0080802130AC00FF3047FFFF46
66635 +:10FD00000000582114600003310600FF012030215B
66636 +:10FD1000010958239783003A0068102B1440003CD7
66637 +:10FD20000000000014680007240200018E02002079
66638 +:10FD30002403FFFB34E7800000431024AE020020C0
66639 +:10FD40002402000134E70880158200053165FFFFB9
66640 +:10FD50000E001554020020210A00169102002021F5
66641 +:10FD60000E001585020020218F8400482743018062
66642 +:10FD70008F4201B80440FFFE24020018AC6400006A
66643 +:10FD8000A062000B8F840014948200E6A46200102D
66644 +:10FD90003C021000AC600030AF4201B894820060B9
66645 +:10FDA00024420001A4820060948200603C030800A9
66646 +:10FDB0008C63318830427FFF5443000F02002021C2
66647 +:10FDC000948200602403800000431024A482006019
66648 +:10FDD0009082006090830060304200FF000211C2F8
66649 +:10FDE00000021027000211C03063007F0062182556
66650 +:10FDF000A083006002002021022028218FBF00186C
66651 +:10FE00008FB100148FB000100A0015F927BD002033
66652 +:10FE1000914200632403FF8000431025A142006348
66653 +:10FE20009782003A3048FFFF110000209383001CA6
66654 +:10FE30008F840014004B1023304600FF948300E4AD
66655 +:10FE40002402EFFF0168282B00621824A48300E439
66656 +:10FE500014A000038E020020010058210000302170
66657 +:10FE60002403FFFB34E7800000431024AE0200208F
66658 +:10FE700024020001158200053165FFFF0E001554B4
66659 +:10FE8000020020210A0016B99783003A0E0015855A
66660 +:10FE9000020020219783003A8F82003CA780003A1D
66661 +:10FEA00000431023AF82003C9383001C8F82001418
66662 +:10FEB0008FBF00188FB100148FB0001027BD002035
66663 +:10FEC00003E00008A04300BD938200442403000126
66664 +:10FED00027BDFFE8004330042C420020AFB00010E3
66665 +:10FEE000AFBF00142410FFFE10400005274501801D
66666 +:10FEF0003C0208008C4231900A0016D600461024BD
66667 +:10FF00003C0208008C423194004610241440000743
66668 +:10FF1000240600848F8300142410FFFF9062006287
66669 +:10FF20003042000F34420040A06200620E0015D63D
66670 +:10FF300000000000020010218FBF00148FB00010DD
66671 +:10FF400003E0000827BD00188F83002427BDFFE0D1
66672 +:10FF5000AFB20018AFB10014AFB00010AFBF001CBB
66673 +:10FF60009062000D00A0902130D100FF3042007F50
66674 +:10FF7000A062000D8F8500148E4300180080802140
66675 +:10FF80008CA2007C146200052402000E90A2006383
66676 +:10FF9000344200200A0016FFA0A200630E0016C51E
66677 +:10FFA000A38200442403FFFF104300472404FFFF03
66678 +:10FFB00052200045000020218E4300003C0200102A
66679 +:10FFC00000621024504000043C020008020020217E
66680 +:10FFD0000A00170E24020015006210245040000988
66681 +:10FFE0008E45000002002021240200140E0016C5D8
66682 +:10FFF000A38200442403FFFF104300332404FFFFC7
66683 +:020000021000EC
66684 +:100000008E4500003C02000200A2102410400016A1
66685 +:100010003C0200048F8600248CC200148CC30010A4
66686 +:100020008CC40014004310230044102B50400005E2
66687 +:10003000020020218E43002C8CC2001010620003AD
66688 +:10004000020020210A00173F240200123C02000493
66689 +:1000500000A210245040001C00002021020020219A
66690 +:100060000A00173F2402001300A2102410400006CB
66691 +:100070008F8300248C620010504000130000202168
66692 +:100080000A001739020020218C6200105040000441
66693 +:100090008E42002C020020210A00173F240200118A
66694 +:1000A00050400009000020210200202124020017F6
66695 +:1000B0000E0016C5A38200442403FFFF1043000274
66696 +:1000C0002404FFFF000020218FBF001C8FB2001806
66697 +:1000D0008FB100148FB000100080102103E00008E1
66698 +:1000E00027BD00208F83001427BDFFD8AFB40020A8
66699 +:1000F000AFB3001CAFB20018AFB10014AFB0001026
66700 +:10010000AFBF0024906200638F91002C2412FFFF88
66701 +:100110003442004092250000A06200638E2200104D
66702 +:100120000080982130B0003F105200060360A021EB
66703 +:100130002402000D0E0016C5A38200441052005484
66704 +:100140002404FFFF8F8300148E2200188C63007C30
66705 +:1001500010430007026020212402000E0E0016C585
66706 +:10016000A38200442403FFFF104300492404FFFF3F
66707 +:1001700024040020120400048F83001490620063A2
66708 +:1001800034420020A06200638F85003410A000205C
66709 +:1001900000000000560400048F8200140260202139
66710 +:1001A0000A0017902402000A9683000A9442006015
66711 +:1001B0003042FFFF144300048F8200202404FFFD1F
66712 +:1001C0000A0017B7AF82003C3C0208008C42318C19
66713 +:1001D0000045102B14400006026020210000282159
66714 +:1001E0000E001646240600010A0017B70000202161
66715 +:1001F0002402002D0E0016C5A38200442403FFFF35
66716 +:10020000104300232404FFFF0A0017B70000202139
66717 +:10021000160400058F8400148E2300142402FFFFAF
66718 +:100220005062001802602021948200602442000184
66719 +:10023000A4820060948200603C0308008C633188D3
66720 +:1002400030427FFF5443000F0260202194820060FF
66721 +:100250002403800000431024A48200609082006088
66722 +:1002600090830060304200FF000211C2000210279C
66723 +:10027000000211C03063007F00621825A083006077
66724 +:10028000026020210E0015F9240500010000202144
66725 +:100290008FBF00248FB400208FB3001C8FB20018D2
66726 +:1002A0008FB100148FB000100080102103E000080F
66727 +:1002B00027BD00288F83001427BDFFE8AFB00010D2
66728 +:1002C000AFBF0014906200638F87002C00808021F4
66729 +:1002D000344200408CE60010A06200633C0308003A
66730 +:1002E0008C6331B030C23FFF0043102B1040004EF2
66731 +:1002F0008F8500302402FF8090A3000D004310245E
66732 +:10030000304200FF504000490200202100061382C5
66733 +:10031000304800032402000255020044020020215C
66734 +:1003200094A2001C8F85001424030023A4A20114AE
66735 +:100330008CE60000000616023042003F1043001019
66736 +:100340003C0300838CE300188CA2007C1062000642
66737 +:100350002402000E0E0016C5A38200442403FFFFF2
66738 +:10036000104300382404FFFF8F8300149062006361
66739 +:1003700034420020A06200630A0017FC8F8300242F
66740 +:1003800000C31024144300078F83002490A200624E
66741 +:100390003042000F34420020A0A20062A38800383F
66742 +:1003A0008F8300249062000D3042007FA062000D18
66743 +:1003B0008F83003410600018020020218F840030E9
66744 +:1003C0008C8200100043102B1040000924020018FA
66745 +:1003D000020020210E0016C5A38200442403FFFF63
66746 +:1003E000104300182404FFFF0A00182400002021F5
66747 +:1003F0008C820010240500010200202100431023FC
66748 +:100400008F830024240600010E001646AC62001003
66749 +:100410000A001824000020210E0015F9240500010F
66750 +:100420000A00182400002021020020212402000DCF
66751 +:100430008FBF00148FB0001027BD00180A0016C52A
66752 +:10044000A38200448FBF00148FB0001000801021E1
66753 +:1004500003E0000827BD001827BDFFC8AFB2002089
66754 +:10046000AFBF0034AFB60030AFB5002CAFB400283A
66755 +:10047000AFB30024AFB1001CAFB000188F46012805
66756 +:100480003C0308008C6331A02402FF80AF86004843
66757 +:1004900000C318213065007F03452821006218241D
66758 +:1004A0003C02000AAF43002400A2282190A200626F
66759 +:1004B00000809021AF850014304200FF000211023D
66760 +:1004C000A382003890A200BC304200021440000217
66761 +:1004D00024030034240300308F820014A3830028F7
66762 +:1004E000938300388C4200C0A3800044AF82003C5C
66763 +:1004F000240200041062031C8F84003C8E4400041C
66764 +:10050000508003198F84003C8E4200103083FFFF1F
66765 +:10051000A784003A106002FFAF8200408F8400146D
66766 +:100520002403FF809082006300621024304200FFA9
66767 +:10053000144002CF9785003A9383003824020002CA
66768 +:1005400030B6FFFF14620005000088219382002866
66769 +:100550002403FFFD0A001B19AF82003C8F82003C80
66770 +:1005600002C2102B144002A18F8400400E0014EC34
66771 +:1005700000000000938300283C040800248477983E
66772 +:10058000240200341462002EAF84002C3C0A0800C0
66773 +:100590008D4A77C82402FFFFAFA2001000803821E7
66774 +:1005A0002405002F3C09080025297398240800FF22
66775 +:1005B0002406FFFF90E2000024A3FFFF00062202B2
66776 +:1005C00000C21026304200FF0002108000491021B6
66777 +:1005D0008C420000306500FF24E7000114A8FFF5FD
66778 +:1005E0000082302600061027AFA20014AFA2001030
66779 +:1005F0000000282127A7001027A6001400C51023FB
66780 +:100600009044000324A2000100A71821304500FFF8
66781 +:100610002CA200041440FFF9A06400008FA2001077
66782 +:100620001142000724020005024020210E0016C5D9
66783 +:10063000A38200442403FFFF104300642404FFFF4F
66784 +:100640003C0208009042779C104000098F82001401
66785 +:10065000024020212402000C0E0016C5A382004493
66786 +:100660002403FFFF104300592404FFFF8F8200146E
66787 +:10067000A380001C3C0308008C63779C8C440080A2
66788 +:100680003C0200FF3442FFFF006218240083202B4D
66789 +:1006900010800008AF83003402402021240200199A
66790 +:1006A0000E0016C5A38200442403FFFF1043004739
66791 +:1006B0002404FFFF8F87003C9782003A8F85003427
66792 +:1006C000AF8700200047202310A0003BA784003AFA
66793 +:1006D0008F86001430A200030002102390C300BCD8
66794 +:1006E0003050000300B0282100031882307300014D
66795 +:1006F0000013108000A228213C0308008C6331A065
66796 +:100700008F8200483084FFFF0085202B004310219A
66797 +:1007100010800011244200888F84002C1082000E6B
66798 +:100720003C033F013C0208008C42779800431024B0
66799 +:100730003C0325001443000630E500FF8C820000D6
66800 +:10074000ACC200888C8200100A0018E9ACC2009884
66801 +:100750000E001529000030219382001C8F850014A3
66802 +:100760008F830040020238218F82003CA387001C47
66803 +:1007700094A400E4006218218F82003434841000B5
66804 +:10078000AF83004000503021A4A400E41260000EAA
66805 +:10079000AF86003C24E20004A382001C94A200E483
66806 +:1007A00024C30004AF83003C34422000A4A200E430
66807 +:1007B0000A001906000020218F820040AF80003C13
66808 +:1007C00000471021AF820040000020212414FFFFC9
66809 +:1007D000109402112403FFFF3C0808008D0877A83D
66810 +:1007E0003C0208008C4231B03C03080090637798CB
66811 +:1007F00031043FFF0082102B1040001B3067003F88
66812 +:100800003C0208008C4231A88F83004800042180FC
66813 +:1008100000621821006418213062007F0342282101
66814 +:100820003C02000C00A228213C020080344200015E
66815 +:100830003066007800C230252402FF800062102458
66816 +:10084000AF42002830640007AF4208048F820014D2
66817 +:100850000344202124840940AF460814AF850024B6
66818 +:10086000AF840030AC4301189383003824020003A6
66819 +:10087000146201CF240200012402002610E201D1FB
66820 +:1008800028E2002710400013240200322402002234
66821 +:1008900010E201CC28E200231040000824020024CA
66822 +:1008A0002402002010E201B82402002110E20147D6
66823 +:1008B000024020210A001AFB2402000B10E201C1B1
66824 +:1008C0002402002510E20010024020210A001AFB39
66825 +:1008D0002402000B10E201AE28E2003310400006B3
66826 +:1008E0002402003F2402003110E2009A024020213D
66827 +:1008F0000A001AFB2402000B10E201A5024020218D
66828 +:100900000A001AFB2402000B8F90002C3C03080005
66829 +:100910008C6331B08F8500308E0400100000A82158
66830 +:100920008CB3001430823FFF0043102B8CB10020A9
66831 +:100930005040018F0240202190A3000D2402FF802F
66832 +:1009400000431024304200FF504001890240202122
66833 +:10095000000413823042000314400185024020212C
66834 +:1009600094A3001C8F8200148E040028A443011459
66835 +:100970008CA20010026218231064000302402021A0
66836 +:100980000A00197C2402001F8F82003400621021AB
66837 +:100990000262102B104000088F83002402402021A7
66838 +:1009A000240200180E0016C5A382004410540174DE
66839 +:1009B0002404FFFF8F8300248F8400348C62001096
66840 +:1009C0000224882100441023AC6200108F8200149E
66841 +:1009D000AC7100208C4200680051102B10400009BF
66842 +:1009E0008F830030024020212402001D0E0016C516
66843 +:1009F000A38200442403FFFF104301612404FFFF8E
66844 +:100A00008F8300308E0200248C6300241043000783
66845 +:100A1000024020212402001C0E0016C5A3820044BF
66846 +:100A20002403FFFF104301562404FFFF8F8400249A
66847 +:100A30008C82002424420001AC8200241233000482
66848 +:100A40008F8200148C4200685622000E8E02000035
66849 +:100A50008E0200003C030080004310241440000D6F
66850 +:100A60002402001A024020210E0016C5A382004471
66851 +:100A70002403FFFF104301422404FFFF0A0019BAB8
66852 +:100A80008E0200143C0300800043102450400003F9
66853 +:100A90008E020014AC8000208E0200142411FFFF8F
66854 +:100AA0001051000E3C0308003C0208008C423190BB
66855 +:100AB000004310242403001B14400007A3830044B8
66856 +:100AC0000E0016C5024020211051012D2404FFFF05
66857 +:100AD0000A0019CB8E030000A38000448E0300009F
66858 +:100AE0003C02000100621024104000123C02008011
66859 +:100AF0000062102414400008024020212402001A41
66860 +:100B00000E0016C5A38200442403FFFF1043011CFE
66861 +:100B10002404FFFF02402021020028210E0016E5D8
66862 +:100B2000240600012403FFFF104301152404FFFFE6
66863 +:100B3000241500018F83002402A0302102402021CF
66864 +:100B40009462003624050001244200010A001ADFE5
66865 +:100B5000A46200368F90002C3C0308008C6331B0F7
66866 +:100B60008E13001032623FFF0043102B10400089AB
66867 +:100B70008F8400302402FF809083000D00431024F6
66868 +:100B8000304200FF104000842402000D0013138245
66869 +:100B900030420003240300011443007F2402000DAF
66870 +:100BA0009082000D30420008544000048F820034CF
66871 +:100BB000024020210A001A102402002450400004A0
66872 +:100BC0008E03000C024020210A001A102402002784
66873 +:100BD0008C82002054620006024020218E0300080F
66874 +:100BE0008C820024506200098E02001402402021F1
66875 +:100BF000240200200E0016C5A38200441054007188
66876 +:100C00002403FFFF0A001A458F8400242411FFFFEC
66877 +:100C1000145100048F860014024020210A001A405B
66878 +:100C2000240200258E0300188CC2007C1062000391
66879 +:100C30002402000E0A001A40024020218E030024E4
66880 +:100C40008C82002810620003240200210A001A404E
66881 +:100C5000024020218E0500288C82002C10A2000367
66882 +:100C60002402001F0A001A40024020218E03002C9B
66883 +:100C700014600003240200230A001A4002402021CD
66884 +:100C80008CC200680043102B104000032402002691
66885 +:100C90000A001A40024020218C82001400651821AD
66886 +:100CA0000043102B104000088F84002402402021B4
66887 +:100CB000240200220E0016C5A382004410510041F8
66888 +:100CC0002403FFFF8F8400242403FFF79082000D8C
66889 +:100CD00000431024A082000D8F8600143C030800FE
66890 +:100CE0008C6331AC8F82004894C400E08F8500246F
66891 +:100CF0000043102130847FFF000420400044102175
66892 +:100D00003043007F034320213C03000E0083202159
66893 +:100D10002403FF8000431024AF42002CA493000062
66894 +:100D20008CA2002824420001ACA200288CA2002C36
66895 +:100D30008E03002C00431021ACA2002C8E02002C4C
66896 +:100D4000ACA200308E020014ACA2003494A2003A8F
66897 +:100D500024420001A4A2003A94C600E03C0208002C
66898 +:100D60008C4231B024C4000130837FFF1462000F35
66899 +:100D700000803021240280000082302430C2FFFF36
66900 +:100D8000000213C2304200FF000210270A001A7E40
66901 +:100D9000000233C02402000D024020210E0016C5BF
66902 +:100DA000A38200440A001A84004018218F82001494
66903 +:100DB00002402021240500010E0015F9A44600E0A0
66904 +:100DC000000018210A001B16006088218F90002C5B
66905 +:100DD0003C0308008C6331B08E05001030A23FFF49
66906 +:100DE0000043102B104000612402FF808F840030EC
66907 +:100DF0009083000D00431024304200FF5040005CFF
66908 +:100E0000024020218F8200341040000B0005138225
66909 +:100E10008F8200149763000A944200603042FFFF03
66910 +:100E200014430005000513828F8200202404FFFD77
66911 +:100E30000A001AF3AF82003C304200031440000E57
66912 +:100E40000000000092020002104000058E03002402
66913 +:100E500050600015920300030A001AAF02402021DF
66914 +:100E60008C82002450620010920300030240202173
66915 +:100E70000A001AB72402000F9082000D30420008C9
66916 +:100E80005440000992030003024020212402001074
66917 +:100E90000E0016C5A38200442403FFFF1043003850
66918 +:100EA0002404FFFF92030003240200025462000C9A
66919 +:100EB000920200038F820034544000099202000322
66920 +:100EC000024020212402002C0E0016C5A3820044FB
66921 +:100ED0002403FFFF1043002A2404FFFF92020003B3
66922 +:100EE0000200282102402021384600102CC60001B3
66923 +:100EF0002C4200010E0016E5004630252410FFFFAD
66924 +:100F00001050001F2404FFFF8F8300341060001373
66925 +:100F1000024020213C0208008C42318C0043102BFF
66926 +:100F200014400007000000000000282124060001F2
66927 +:100F30000E001646000000000A001AF300002021EF
66928 +:100F40002402002D0E0016C5A38200441050000C90
66929 +:100F50002404FFFF0A001AF3000020210E0015F9F7
66930 +:100F6000240500010A001AF300002021024020217C
66931 +:100F70002402000D0E0016C5A3820044004020216B
66932 +:100F80000A001B16008088211514000E00000000C6
66933 +:100F90000E00174C024020210A001B160040882139
66934 +:100FA0000E0016C5A38200440A001B1600408821CB
66935 +:100FB00014620017022018212402002314E2000505
66936 +:100FC0002402000B0E0017C0024020210A001B164D
66937 +:100FD0000040882102402021A38200440E0016C553
66938 +:100FE0002411FFFF0A001B170220182130A500FF63
66939 +:100FF0000E001529240600019783003A8F82003CD9
66940 +:10100000A780003A00431023AF82003C0220182141
66941 +:101010001220003E9782003A2402FFFD5462003EF7
66942 +:101020008E4300208E4200048F830014005610234C
66943 +:10103000AE420004906200633042007FA062006311
66944 +:101040008E4200208F840014A780003A34420002B0
66945 +:10105000AE420020A48000E4908200632403FFBF1E
66946 +:1010600000431024A08200630A001B598E43002015
66947 +:101070009082006300621024304200FF1040002381
66948 +:101080009782003A90820088908300BD2485008872
66949 +:101090003042003F2444FFE02C820020A383001C48
66950 +:1010A00010400019AF85002C2402000100821804B2
66951 +:1010B000306200191440000C3C02800034420002EF
66952 +:1010C000006210241440000B306200201040000F1A
66953 +:1010D0009782003A90A600010240202124050001D9
66954 +:1010E0000A001B5330C60001024020210A001B5297
66955 +:1010F00024050001024020210000282124060001CF
66956 +:101100000E001646000000009782003A1440FD04CD
66957 +:101110008F8400148E4300203062000410400012BF
66958 +:101120008F84003C2402FFFB00621024AE420020AA
66959 +:10113000274301808F4201B80440FFFE8F820048A0
66960 +:10114000AC6200008F420124AC6200042402608380
66961 +:10115000A462000824020002A062000B3C021000FE
66962 +:10116000AF4201B88F84003C8F8300148FBF0034DE
66963 +:101170008FB600308FB5002C8FB400288FB30024B9
66964 +:101180008FB200208FB1001C8FB000182402000124
66965 +:1011900027BD003803E00008AC6400C030A500FFA4
66966 +:1011A0002403000124A900010069102B1040000C49
66967 +:1011B00000004021240A000100A31023004A380443
66968 +:1011C00024630001308200010069302B10400002CE
66969 +:1011D000000420420107402554C0FFF800A310235B
66970 +:1011E00003E00008010010213C020800244260A432
66971 +:1011F0003C010800AC22738C3C02080024425308D6
66972 +:101200003C010800AC2273902402000627BDFFE0D9
66973 +:101210003C010800A02273943C021EDCAFB200180F
66974 +:10122000AFB10014AFBF001CAFB0001034526F411B
66975 +:1012300000008821240500080E001B7A02202021CE
66976 +:10124000001180803C07080024E773980002160014
66977 +:1012500002071821AC6200000000282124A200012E
66978 +:101260003045FFFF8C6200002CA6000804410002FC
66979 +:10127000000220400092202614C0FFF8AC64000059
66980 +:10128000020780218E0400000E001B7A2405002036
66981 +:10129000262300013071FFFF2E2301001460FFE5BB
66982 +:1012A000AE0200008FBF001C8FB200188FB1001477
66983 +:1012B0008FB0001003E0000827BD002027BDFFD835
66984 +:1012C000AFB3001CAFB20018AFBF0020AFB1001425
66985 +:1012D000AFB000108F5101408F48014800089402C0
66986 +:1012E000324300FF311300FF8F4201B80440FFFE7C
66987 +:1012F00027500180AE1100008F420144AE0200046D
66988 +:1013000024020002A6120008A202000B240200140C
66989 +:10131000AE1300241062002528620015104000085A
66990 +:101320002402001524020010106200302402001272
66991 +:10133000106200098FBF00200A001CB58FB3001C8B
66992 +:101340001062007024020022106200378FBF00205C
66993 +:101350000A001CB58FB3001C3C0208008C4231A06F
66994 +:101360002403FF800222102100431024AF420024F6
66995 +:101370003C0208008C4231A0022210213042007F42
66996 +:10138000034218213C02000A00621821166000BCCA
66997 +:10139000AF830014906200623042000F344200308C
66998 +:1013A000A06200620A001CB48FBF00203C046000F1
66999 +:1013B0008C832C083C02F0033442FFFF00621824A7
67000 +:1013C000AC832C083C0208008C4231A08C832C0892
67001 +:1013D000244200740002108200021480006218256A
67002 +:1013E000AC832C080A001CB48FBF00203C0208000C
67003 +:1013F0008C4231A02403FF800222102100431024DC
67004 +:10140000AF4200243C0208008C4231A03C03000A99
67005 +:10141000022210213042007F03421021004310219C
67006 +:101420000A001CB3AF8200143C0208008C4231A0B9
67007 +:101430002405FF800222102100451024AF42002421
67008 +:101440003C0208008C4231A0022210213042007F71
67009 +:10145000034218213C02000A0062182190620063D6
67010 +:1014600000A21024304200FF10400085AF8300141A
67011 +:1014700024620088944300123C0208008C4231A888
67012 +:1014800030633FFF00031980022210210043102126
67013 +:101490003043007F03432021004510243C03000C0F
67014 +:1014A00000832021AF4200289082000D00A210246A
67015 +:1014B000304200FF10400072AF8400249082000D83
67016 +:1014C000304200101440006F8FBF00200E0015C87E
67017 +:1014D000000000008F4201B80440FFFE0000000041
67018 +:1014E000AE1100008F420144AE020004240200024B
67019 +:1014F000A6120008A202000BAE1300240A001CB4BE
67020 +:101500008FBF00202406FF8002261024AF42002057
67021 +:101510003C0208008C4231A031043FFF00042180CE
67022 +:101520000222102100461024AF4200243C03080090
67023 +:101530008C6331A83C0208008C4231A03227007F26
67024 +:101540000223182102221021006418213042007F5A
67025 +:101550003064007F034228213C02000A0066182400
67026 +:1015600000A22821034420213C02000C00822021FB
67027 +:10157000AF4300283C020008034718210062902175
67028 +:10158000AF850014AF8400240E0015C8010080212F
67029 +:101590008F4201B80440FFFE8F8200248F84001424
67030 +:1015A000274501809042000DACB10000A4B00006B8
67031 +:1015B000000216000002160300021027000237C2C4
67032 +:1015C00014C00016248200889442001232033FFFA8
67033 +:1015D00030423FFF14430012240260829083006374
67034 +:1015E0002402FF8000431024304200FF5040000CD2
67035 +:1015F00024026082908200623042000F3442004038
67036 +:10160000A082006224026084A4A200082402000DCB
67037 +:10161000A0A200050A001C9E3C0227002402608252
67038 +:10162000A4A20008A0A000053C02270000061C00A0
67039 +:101630000062182524020002A0A2000BACA3001037
67040 +:10164000ACA00014ACA00024ACA00028ACA0002CDE
67041 +:101650008E42004C8F840024ACA200189083000DB1
67042 +:101660002402FF8000431024304200FF1040000598
67043 +:101670008FBF00209082000D3042007FA082000DBD
67044 +:101680008FBF00208FB3001C8FB200188FB10014E1
67045 +:101690008FB000103C02100027BD002803E00008B6
67046 +:1016A000AF4201B80800343008003430080033A8D5
67047 +:1016B000080033E0080034140800343808003438D7
67048 +:1016C00008003438080033180A0001240000000024
67049 +:1016D000000000000000000D747061362E322E33C1
67050 +:1016E00000000000060203010000000000000000EE
67051 +:1016F00000000000000000000000000000000000EA
67052 +:1017000000000000000000000000000000000000D9
67053 +:1017100000000000000000000000000000000000C9
67054 +:1017200000000000000000000000000000000000B9
67055 +:1017300000000000000000000000000000000000A9
67056 +:101740000000000000000000000000000000000099
67057 +:101750000000000000000000000000001000000376
67058 +:10176000000000000000000D0000000D3C02080019
67059 +:1017700024421C003C03080024632094AC40000079
67060 +:101780000043202B1480FFFD244200043C1D080070
67061 +:1017900037BD2FFC03A0F0213C1008002610049058
67062 +:1017A0003C1C0800279C1C000E00015C000000008F
67063 +:1017B0000000000D3084FFFF308200078F85001885
67064 +:1017C00010400002248300073064FFF800853021B8
67065 +:1017D00030C41FFF03441821247B4000AF85001C48
67066 +:1017E000AF84001803E00008AF4400843084FFFF9A
67067 +:1017F000308200078F8500208F860028104000026D
67068 +:10180000248300073064FFF8008520210086182B10
67069 +:1018100014600002AF8500240086202303442821A1
67070 +:1018200034068000AF840020AF44008000A6202151
67071 +:1018300003E00008AF84003827BDFFD8AFB3001C19
67072 +:10184000AFB20018AFB00010AFBF0024AFB400209B
67073 +:10185000AFB100143C0860088D1450002418FF7FBD
67074 +:101860003C1A8000029898243672380CAD12500051
67075 +:101870008F5100083C07601C3C08600036300001B6
67076 +:10188000AF500008AF800018AF400080AF40008428
67077 +:101890008CE600088D0F08083C0760168CEC0000F1
67078 +:1018A00031EEFFF039CA00103C0DFFFF340B800011
67079 +:1018B0003C030080034B48212D440001018D282466
67080 +:1018C0003C0253533C010800AC230420AF8900388C
67081 +:1018D000AF860028AF840010275B400014A20003ED
67082 +:1018E00034E37C008CF90004032818218C7F007CF1
67083 +:1018F0008C6500783C0280003C0B08008D6B048CEA
67084 +:101900003C0A08008D4A048834520070AF85003CC0
67085 +:10191000AF9F00403C13080026731C440240A021E6
67086 +:101920008E4800008F46000038C30001306400017B
67087 +:1019300010800017AF880034028048218D2F0000EE
67088 +:101940003C0508008CA5045C3C1808008F1804585E
67089 +:1019500001E8102300A280210000C8210202402BD0
67090 +:1019600003198821022838213C010800AC30045CAE
67091 +:101970003C010800AC2704588F4E000039CD00010F
67092 +:1019800031AC00011580FFED01E04021AF8F003444
67093 +:101990008E5100003C0708008CE7045C3C0D0800F9
67094 +:1019A0008DAD04580228802300F0602100007021D2
67095 +:1019B0000190302B01AE1821006620213C01080067
67096 +:1019C000AC2C045C3C010800AC2404588F46010890
67097 +:1019D0008F47010030C92000AF860000AF87000CA0
67098 +:1019E0001120000A00C040213C1808008F18042C68
67099 +:1019F000270800013C010800AC28042C3C184000DA
67100 +:101A0000AF5801380A000196000000009749010410
67101 +:101A100000002821014550213122FFFF0162582199
67102 +:101A20000162F82B015F502130D902003C0108000F
67103 +:101A3000AC2B048C3C010800AC2A0488172000154C
67104 +:101A400024040F0010E400130000000024080D001F
67105 +:101A500010E8023B30CD000611A0FFE93C18400021
67106 +:101A6000936E00002409001031C400F01089027147
67107 +:101A700024020070108202E58F880014250F0001F7
67108 +:101A8000AF8F00143C184000AF5801380A0001968F
67109 +:101A900000000000974C01041180FFD93C18400061
67110 +:101AA00030C34000146000A1000000008F460178A0
67111 +:101AB00004C0FFFE8F87003824100800240F0008A0
67112 +:101AC0008CE30008AF500178A74F0140A7400142C6
67113 +:101AD000974E01048F86000031C9FFFF30CD000111
67114 +:101AE00011A002E1012040212531FFFE241800024F
67115 +:101AF000A75801463228FFFFA75101483C190800AA
67116 +:101B00008F39043C172002D08F8C000C30DF00206E
67117 +:101B100017E00002240400092404000130C20C0074
67118 +:101B2000240504005045000134840004A744014A00
67119 +:101B30003C1108008E3104203C1800483C10000184
67120 +:101B40000238182530CF00020070282511E000046B
67121 +:101B5000000018213C19010000B9282524030001C8
67122 +:101B600030DF000453E00005AF8300083C0600109E
67123 +:101B700000A6282524030001AF830008AF4510000C
67124 +:101B80000000000000000000000000000000000055
67125 +:101B90008F83000810600023000000008F451000B4
67126 +:101BA00004A1FFFE000000001060001E0000000005
67127 +:101BB0008F4410003C0C0020008C102410400019B1
67128 +:101BC0008F8E000031CD000211A000160000000031
67129 +:101BD000974F101415E000130000000097591008EB
67130 +:101BE0003338FFFF271100060011188200033080F0
67131 +:101BF00000C7282132300001322300031200032CD9
67132 +:101C00008CA200000000000D00C7F821AFE2000028
67133 +:101C10003C0508008CA5043024A600013C01080006
67134 +:101C2000AC2604308F6D00003402FFFFAF8D00043E
67135 +:101C30008CEC0000118202A6000020218CED000037
67136 +:101C400031AC01001180028A000000003C02080053
67137 +:101C50008C4204743C0308008C63044C3C1F080055
67138 +:101C60008FFF04703C1808008F1804480048382182
67139 +:101C70000068802100E8282B03E430210208402B73
67140 +:101C80000304882100C57021022878213C01080046
67141 +:101C9000AC30044C3C010800AC2F04483C01080067
67142 +:101CA000AC2704743C010800AC2E04708F8400182B
67143 +:101CB0000120302131290007249F000833F91FFF3C
67144 +:101CC00003594021AF84001CAF990018251B400028
67145 +:101CD000AF590084112000038F83002024C2000725
67146 +:101CE0003046FFF88F84002800C3282100A4302B41
67147 +:101CF00014C00002AF83002400A428230345602100
67148 +:101D0000340D8000018D10213C0F1000AF850020A4
67149 +:101D1000AF820038AF450080AF4F01788F88001444
67150 +:101D2000250F00010A0001EFAF8F00148F62000839
67151 +:101D30008F670000240500300007760231C300F0F1
67152 +:101D4000106500A7240F0040546FFF4C8F880014CB
67153 +:101D50008F4B01780560FFFE0000000030CA0200D2
67154 +:101D600015400003000612820000000D00061282DA
67155 +:101D7000304D0003000D4900012D18210003808023
67156 +:101D8000020D402100086080019380218E1F000019
67157 +:101D900017E00002000000000000000D8F6E00043C
67158 +:101DA00005C202BD92070006920E000592020004D1
67159 +:101DB0003C090001000E18800070F8218FED00181A
67160 +:101DC000277100082448000501A96021000830821D
67161 +:101DD000AFEC0018022020210E00059E26050014FD
67162 +:101DE000920A00068F7900043C0B7FFF000A2080D6
67163 +:101DF000009178218DF800043566FFFF0326282422
67164 +:101E000003053821ADE70004920E0005920D000491
67165 +:101E1000960C0008000E10800051C8218F2300008E
67166 +:101E2000974901043C07FFFF006758243128FFFF52
67167 +:101E3000010DF82103EC50233144FFFF01643025EC
67168 +:101E4000AF260000920300072418000110780275E5
67169 +:101E5000240F0003106F0285000000008E050010A3
67170 +:101E60002419000AA7590140A7450142921800040D
67171 +:101E70008F860000240F0001A7580144A7400146A7
67172 +:101E80009747010430D100023C050041A7470148B3
67173 +:101E900000001821A74F014A1220000330CB000494
67174 +:101EA0003C0501412403000151600005AF83000897
67175 +:101EB0003C06001000A6282524030001AF8300087B
67176 +:101EC000AF4510000000000000000000000000000E
67177 +:101ED000000000008F8A000811400004000000008C
67178 +:101EE0008F4410000481FFFE000000008F6B000093
67179 +:101EF000920800043C1108008E310444AF8B0004AA
67180 +:101F000097590104311800FF3C0E08008DCE0440A3
67181 +:101F10003325FFFF0305382102276021000010212F
67182 +:101F2000250F000A31E8FFFF0187482B01C2682115
67183 +:101F300001A9F821311000073C010800AC2C044431
67184 +:101F40003C010800AC3F0440120000038F8C0018D5
67185 +:101F50002506000730C8FFF8010C682131BF1FFFBC
67186 +:101F6000AF8C001CAF9F0018AF5F00849744010442
67187 +:101F7000035F80213084FFFF308A00071140000397
67188 +:101F8000261B4000248900073124FFF88F8200209F
67189 +:101F90008F850028008220210085702B15C000024B
67190 +:101FA000AF820024008520233C0B08008D6B048C3D
67191 +:101FB0003C0A08008D4A04880344882134038000C9
67192 +:101FC000022310213C0F1000AF840020AF820038A4
67193 +:101FD000AF440080AF4F01780A0002968F8800144A
67194 +:101FE0008F5001780600FFFE30D10200162000035A
67195 +:101FF000000612820000000D00061282305F00030E
67196 +:10200000001F1900007F302100062080009FC8219A
67197 +:1020100000194880013380218E180000130000024F
67198 +:10202000000000000000000D8F6C000C058001FB1B
67199 +:102030008F870038240E0001AE0E00008CE30008EC
67200 +:10204000A20000078F65000400055402314D00FF17
67201 +:1020500025A80005000830822CCB00411560000245
67202 +:10206000A20A00040000000D8F7800043C03FFFF6B
67203 +:1020700000E02821330BFFFF256C000B000C1082C1
67204 +:1020800000022080008748218D3F000026040014B4
67205 +:10209000A618000803E3C8240E00059EAD39000011
67206 +:1020A0008F4F01083C11100001F1382410E001AB02
67207 +:1020B00000000000974D01049208000725AAFFECDC
67208 +:1020C000350600023144FFFFA2060007960600080D
67209 +:1020D0002CC7001354E0000592030007921100077B
67210 +:1020E000362F0001A20F00079203000724180001F9
67211 +:1020F000107801C224090003106901D58F880038C7
67212 +:1021000030CBFFFF257100020011788331E400FF1E
67213 +:1021100000042880A20F000500A848218D2D000092
67214 +:10212000974A01043C0EFFFF01AEF8243143FFFF44
67215 +:10213000006B1023244CFFFE03ECC825AD390000D2
67216 +:10214000920600053C03FFF63462FFFF30D800FF23
67217 +:102150000018388000F08821922F00143C04FF7F83
67218 +:102160003487FFFF31EE000F01C65821316500FFB3
67219 +:1021700000055080015068218DAC00200148F821F5
67220 +:10218000A20B00060182C824AE0C000CAFF9000CB3
67221 +:10219000920900068E11000C032778240009C080E4
67222 +:1021A0000310702195C60026030828210227202449
67223 +:1021B000AE04000CADCF0020ADC60024ACA60010CC
67224 +:1021C0008F8800003C0B08008D6B048C3C0A0800D3
67225 +:1021D0008D4A0488241F001024190002A75F0140C3
67226 +:1021E000A7400142A7400144A7590146974901046D
67227 +:1021F00024070001310600022538FFFEA7580148D8
67228 +:102200003C050009A747014A10C00003000018213F
67229 +:102210003C05010924030001310C00045180000534
67230 +:10222000AF8300083C08001000A828252403000103
67231 +:10223000AF830008AF451000000000000000000060
67232 +:1022400000000000000000009205000424AE00021F
67233 +:1022500031CD0007000D182330620007AE020010D8
67234 +:102260008F90000812000004000000008F4F100043
67235 +:1022700005E1FFFE000000008F7100008F8E001846
67236 +:102280003C0308008C630444AF91000497450104AB
67237 +:1022900025CF001031E61FFF30A2FFFFAF8E001CDC
67238 +:1022A000AF860018AF4600842449FFFE3C0C0800AE
67239 +:1022B0008D8C0440974D010401208021000947C303
67240 +:1022C0000070C02131A9FFFF0310F82B0188C8213D
67241 +:1022D000033F202103463821313100073C0108002B
67242 +:1022E000AC3804443C010800AC2404401220000334
67243 +:1022F00024FB40002527000730E9FFF88F860020E7
67244 +:102300008F8400280126382100E4C02B170000022A
67245 +:10231000AF86002400E438230347202134198000CD
67246 +:10232000009910213C0F1000AF870020AF820038C9
67247 +:10233000AF470080AF4F01780A0002968F880014E3
67248 +:102340009747010410E0FDAE3C1840008F5801781B
67249 +:102350000700FFFE30C5400010A000033C1F00082E
67250 +:102360000000000D3C1F0008AF5F01402410080072
67251 +:102370008F860000AF5001789744010430D90001E6
67252 +:10238000132000ED3086FFFF24CCFFFE240D000259
67253 +:10239000A74D0146A74C01488F9100182408000D55
67254 +:1023A000A748014A8F630000262F000831E21FFF73
67255 +:1023B0000342702130C90007AF830004AF91001CB5
67256 +:1023C000AF82001800C03821AF4200841120000302
67257 +:1023D00025DB400024D800073307FFF88F85002055
67258 +:1023E0008F84002800E5302100C4382B14E000025F
67259 +:1023F000AF85002400C430238F8400140346F821E5
67260 +:10240000340C8000AF86002003EC8021AF460080B2
67261 +:10241000249900013C0610003C184000AF460178AA
67262 +:10242000AF900038AF990014AF5801380A000196F8
67263 +:10243000000000008F630000975101043067FFFF28
67264 +:102440003228FFFF8F4F017805E0FFFE30EC0007D8
67265 +:10245000000CF82333F0000724F9FFFE2404000ADF
67266 +:10246000A7440140A7500142A7590144A740014693
67267 +:10247000A74801488F45010830B800201700000226
67268 +:10248000240300092403000130CD0002A743014AC0
67269 +:102490003C04004111A00003000018213C0401414C
67270 +:1024A0002403000130C9000451200005AF83000857
67271 +:1024B0003C0600100086202524030001AF8300089D
67272 +:1024C000AF44100000000000000000000000000009
67273 +:1024D000000000008F8E000811C000040000000002
67274 +:1024E0008F4210000441FFFE000000008F7F0000BB
67275 +:1024F000276400088F91003CAF9F0004948500087A
67276 +:102500009490000A9499000C30AFFFFF0010C400B3
67277 +:102510003323FFFF11F100A6030320253C0E080022
67278 +:102520008DCE04443C0C08008D8C044000E88821CA
67279 +:102530002626FFFE01C628210000682100A6F82BF0
67280 +:10254000018D2021009F80213C010800AC2504441E
67281 +:102550003C010800AC30044024E200083042FFFF98
67282 +:102560003047000710E000038F830018244F000756
67283 +:1025700031E2FFF83106FFFF30C800070043802139
67284 +:1025800032191FFF0359C021AF83001CAF990018F7
67285 +:10259000271B4000AF590084110000038F8C0020DE
67286 +:1025A00024C5000730A6FFF88F84002800CC28211E
67287 +:1025B00000A4F82B17E00002AF8C002400A428230D
67288 +:1025C000AF850020AF4500803C0408008C840434B3
67289 +:1025D00003454821340E8000012E6821108000053B
67290 +:1025E000AF8D0038939100172406000E12260011BB
67291 +:1025F0002407043F3C021000AF4201788F8800148A
67292 +:10260000250F00010A0001EFAF8F00140E0005C472
67293 +:1026100000E020218F8800143C0B08008D6B048C97
67294 +:102620003C0A08008D4A0488250F00010A0001EFCA
67295 +:10263000AF8F00143C021000A7470148AF42017859
67296 +:102640000A0004CE8F88001424040F001184003D7A
67297 +:1026500030CE002015C0000224030009240300012D
67298 +:102660000A00021AA743014A0A00020DA7400146C8
67299 +:1026700094EF000894F1000A94F0000C8F8C003C59
67300 +:10268000001174003207FFFF31EDFFFF11AC00377E
67301 +:1026900001C720253C1808008F1804443C0F08008F
67302 +:1026A0008DEF0440000080210308682101A8382B29
67303 +:1026B00001F0702101C760213C010800AC2D0444E9
67304 +:1026C0003C010800AC2C04400A00027A8F840018F8
67305 +:1026D0003C0208008C42047C3C0308008C630454D8
67306 +:1026E0003C1F08008FFF04783C1808008F18045026
67307 +:1026F000004838210068802100E8282B03E43021BD
67308 +:102700000208402B0304882100C57021022878218B
67309 +:102710003C010800AC3004543C010800AC2F0450CC
67310 +:102720003C010800AC27047C3C010800AC2E047876
67311 +:102730000A00027A8F840018A74001460A00043577
67312 +:102740008F91001830CD002015A0FFC52403000D87
67313 +:10275000240300050A00021AA743014A974E010408
67314 +:1027600025C5FFF00A00038130A4FFFF8F980040C9
67315 +:102770001498FFC8000010213C0508008CA5046CCB
67316 +:102780003C1F08008FFF046800A8C8210328302BD5
67317 +:1027900003E22021008640213C010800AC39046C92
67318 +:1027A0003C010800AC2804680A00027A8F840018F3
67319 +:1027B0008F8C0040148CFF5900E8C8213C18080099
67320 +:1027C0008F18046C3C1108008E3104682723FFFE2B
67321 +:1027D00003034821000010210123302B0222702125
67322 +:1027E00001C668213C010800AC29046C3C010800CA
67323 +:1027F000AC2D04680A0004A524E200088F88003884
67324 +:102800003C03FFFF8D02000C0043F82403E4C825BD
67325 +:10281000AD19000C0A00038F30CBFFFF0A0003C381
67326 +:10282000AE000000974A0104920400048E26000CBA
67327 +:10283000014458212579FFF200C7C0243325FFFF4A
67328 +:1028400003053825AE27000C0A0002E68E050010AD
67329 +:102850003C0DFFFF8D0A0010014D582401646025D6
67330 +:10286000AD0C00100A00038F30CBFFFF974301042B
67331 +:10287000920E00048E290010006E1021244DFFEEF0
67332 +:102880000127602431A8FFFF0188F825AE3F001022
67333 +:102890000A0002E68E0500108E0F000CAE0000004C
67334 +:1028A00000078880023028210A0002B8ACAF00205F
67335 +:1028B0001460000D3058FFFF3C04FFFF0044682403
67336 +:1028C00001A47026000E602B000D102B004CF82484
67337 +:1028D00013E00002000000000000000D8CAF0000BB
67338 +:1028E0000A00025001E410253B03FFFF0003882B80
67339 +:1028F0000018802B0211202410800002000000002C
67340 +:102900000000000D8CB900000A0002503722FFFFC2
67341 +:102910003084FFFF30A5FFFF108000070000182162
67342 +:10292000308200011040000200042042006518219E
67343 +:102930001480FFFB0005284003E000080060102120
67344 +:1029400010C00007000000008CA2000024C6FFFF9A
67345 +:1029500024A50004AC82000014C0FFFB2484000402
67346 +:1029600003E000080000000010A0000824A3FFFFFF
67347 +:10297000AC86000000000000000000002402FFFF01
67348 +:102980002463FFFF1462FFFA2484000403E00008BC
67349 +:1029900000000000308EFFFF30D8FFFF00057C00F4
67350 +:1029A00001F8602539CDFFFF01AC5021014C582BB7
67351 +:1029B000014B4821000944023127FFFF00E8302184
67352 +:1029C0000006240230C5FFFF00A418213862FFFF73
67353 +:1029D00003E000083042FFFF3C0C08008D8C0484AB
67354 +:1029E000240BFF8027BDFFD001845021014B4824D8
67355 +:1029F000AF4900203C0808008D080484AFB20020D5
67356 +:102A0000AFB00018AFBF0028AFB30024AFB1001CB7
67357 +:102A1000936600040104382130E4007F009A1021FD
67358 +:102A20003C0300080043902130C500200360802152
67359 +:102A30003C080111277B000814A000022646007004
67360 +:102A40002646006C9213000497510104920F000473
67361 +:102A50003267000F322EFFFF31ED004001C72823FF
67362 +:102A600011A0000500004821925900BC3338000431
67363 +:102A70001700009000000000924300BC307F00046B
67364 +:102A800013E0000F0000000010A0000D0000000087
67365 +:102A9000960E0002240AFF8000A7602125CDFFFECC
67366 +:102AA000A74D1016920B0004014B2024308200FF2A
67367 +:102AB00010400085010C40253C0F0400010F40250B
67368 +:102AC0008F5301780660FFFE2404000AA7440140EA
67369 +:102AD000960D00022404000931AC0007000C5823B5
67370 +:102AE000316A0007A74A0142960200022443FFFE12
67371 +:102AF000A7430144A7400146975F0104A75F01482F
67372 +:102B00008F590108333800205300000124040001CC
67373 +:102B1000920F000431EE001015C000023483001043
67374 +:102B200000801821A743014A0000000000000000B7
67375 +:102B30000000000000000000AF481000000000008E
67376 +:102B40000000000000000000000000008F51100095
67377 +:102B50000621FFFE3113FFFF12600003000000009A
67378 +:102B60008F481018ACC8000096030006307FFFFFA6
67379 +:102B700027F900020019988200138880023B302157
67380 +:102B80008CD800001520005700183402920300046E
67381 +:102B90002405FF8000A3F82433F100FF1220002C4D
67382 +:102BA00000000000924700BC30F2000212400028F2
67383 +:102BB00000000000974B100C2562FFFEA742101684
67384 +:102BC000000000003C0A040035490030AF49100005
67385 +:102BD00000000000000000000000000000000000F5
67386 +:102BE0008F4C10000581FFFE000000009749100C7B
67387 +:102BF0008F51101C00C020213127FFFF24F200302C
67388 +:102C0000001218820003288000BBF8213226FFFF43
67389 +:102C1000AFF100000E0005B300112C020013C880B4
67390 +:102C2000033B98218E78000000027400AFB80010BA
67391 +:102C30008FA80010310FFFFFAFAF00108FA400105E
67392 +:102C400001C46825AFAD00108FA60010AE6600006D
67393 +:102C500097730008976D000A9766000C8F8A003CF6
67394 +:102C6000000D5C0030CCFFFF3262FFFF104A0036DF
67395 +:102C7000016C2025960600023C10100024D30008A9
67396 +:102C80000E00013B3264FFFF974C01040E00014926
67397 +:102C90003184FFFFAF5001788FBF00288FB300242D
67398 +:102CA0008FB200208FB1001C8FB0001803E0000825
67399 +:102CB00027BD003010A0FF700000000024A5FFFC1D
67400 +:102CC0000A0005EC240900048CD10000AF51101853
67401 +:102CD0008F5301780660FF7A2404000A0A00060177
67402 +:102CE0000000000000A7C8218F8800388F4E101CFC
67403 +:102CF0000019C0820018788001E82021AC8E000005
67404 +:102D0000000E2C0200C020210E0005B331C6FFFFCB
67405 +:102D1000023B28218CAD000000025400004030210D
67406 +:102D2000AFAD00108FAC0010318BFFFFAFAB0010C8
67407 +:102D30008FA2001001424825AFA900108FA70010F4
67408 +:102D40000A000631ACA700008F8F0040148FFFC926
67409 +:102D50000000000097420104960B00023C050800A9
67410 +:102D60008CA5046C3049FFFF316AFFFF3C1108005D
67411 +:102D70008E310468012A382124F2FFFE00B240217E
67412 +:102D80000012FFC30112C82B023FC02103192021EA
67413 +:102D90003C010800AC28046C3C010800AC24046829
67414 +:102DA0000A00066B0000000000A4102B1040000970
67415 +:102DB000240300010005284000A4102B04A00003F8
67416 +:102DC000000318405440FFFC000528401060000735
67417 +:102DD000000000000085302B14C0000200031842E0
67418 +:102DE000008520231460FFFB0005284203E0000853
67419 +:102DF000008010218F85002C27BDFFE800053027BB
67420 +:102E00002CC300012CA400020083102510400003F5
67421 +:102E1000AFBF00102405007FAF85002C00052827D8
67422 +:102E200030A5FFFF0E000592240426F58F830030A5
67423 +:102E3000240402BD004030210083382B10E000093B
67424 +:102E400024050001000420400083102B04800003AF
67425 +:102E5000000528405440FFFC0004204010A000085A
67426 +:102E600000C350210064402B1500000200052842D9
67427 +:102E70000064182314A0FFFB0004204200C350216B
67428 +:102E80008FBF0010000A4C02312200FF27BD00183E
67429 +:102E9000AF8A002C03E00008AF8900300A00002A46
67430 +:102EA00000000000000000000000000D7478703683
67431 +:102EB0002E322E3300000000060203000000000046
67432 +:102EC000000001360000EA60000000000000000081
67433 +:102ED00000000000000000000000000000000000F2
67434 +:102EE00000000000000000000000000000000000E2
67435 +:102EF00000000000000000000000000000000016BC
67436 +:102F000000000000000000000000000000000000C1
67437 +:102F100000000000000000000000000000000000B1
67438 +:102F200000000000000000000000000000000000A1
67439 +:102F3000000000000000138800000000000005DC15
67440 +:102F4000000000000000000010000003000000006E
67441 +:102F50000000000D0000000D3C02080024423C204F
67442 +:102F60003C03080024633DD4AC4000000043202B08
67443 +:102F70001480FFFD244200043C1D080037BD7FFC87
67444 +:102F800003A0F0213C100800261000A83C1C0800FB
67445 +:102F9000279C3C200E0002BA000000000000000D3B
67446 +:102FA0008F8300383C088000350700708CE50000F6
67447 +:102FB000008330253C02900000C22025AF85003000
67448 +:102FC000AF4400208F4900200520FFFE3C03800015
67449 +:102FD000346200708C4500008F8600303C19080078
67450 +:102FE0008F39007C3C0E08008DCE007800A620238F
67451 +:102FF00003245821000078210164682B01CF60214F
67452 +:10300000018D50213C010800AC2B007C3C010800E4
67453 +:10301000AC2A007803E00008000000000A0000412C
67454 +:10302000240400018F8400383C05800034A2000194
67455 +:103030000082182503E00008AF43002003E00008E9
67456 +:10304000000010213084FFFF30A5FFFF1080000733
67457 +:1030500000001821308200011040000200042042CC
67458 +:10306000006518211480FFFB0005284003E00008DC
67459 +:103070000060102110C00007000000008CA20000BA
67460 +:1030800024C6FFFF24A50004AC82000014C0FFFB8F
67461 +:103090002484000403E000080000000010A00008E1
67462 +:1030A00024A3FFFFAC860000000000000000000029
67463 +:1030B0002402FFFF2463FFFF1462FFFA248400044C
67464 +:1030C00003E0000800000000308AFFFF93A800130F
67465 +:1030D000A74A014497490E1630C600FF3C02100073
67466 +:1030E000A7490146AF450148A3460152A748015AE6
67467 +:1030F000AF4701608FA400188FA30014A7440158A4
67468 +:10310000AF43015403E00008AF42017803E0000838
67469 +:10311000000000003C038000346200708C49000015
67470 +:103120008F8800002484000727BDFFF83084FFF853
67471 +:10313000AF890030974D008A31ACFFFFAFAC000083
67472 +:103140008FAB0000016850232547FFFF30E61FFFCB
67473 +:1031500000C4282B14A0FFF73C0C8000358B0070B6
67474 +:103160008D6A00003C0708008CE700843C060800DC
67475 +:103170008CC6008000081082014918230002788064
67476 +:1031800000E370210000202101C3C82B00C4C0212E
67477 +:1031900001FA4021031948212502400027BD0008FB
67478 +:1031A0003C010800AC2E00843C010800AC290080E2
67479 +:1031B00003E00008000000008F8200002486000762
67480 +:1031C00030C5FFF800A2182130641FFF03E000089B
67481 +:1031D000AF8400008F8700388F8A004027BDFFB87A
67482 +:1031E0008F860044AFB60040AFBF0044AFB5003C8F
67483 +:1031F000AFB40038AFB30034AFB20030AFB1002C81
67484 +:10320000AFB000288F4501048D4900ACAF47008066
67485 +:103210008CC8002000A938230000B021AF480E1050
67486 +:103220008F440E1000004821AF440E148CC20024BD
67487 +:10323000AF420E188F430E18AF430E1C10E001254D
67488 +:103240002D230001936B0008116000D400000000E2
67489 +:10325000976E001031CDFFFF00ED602B158000CF81
67490 +:103260000000000097700010320FFFFFAF4F0E00FC
67491 +:103270008F520000325100081220FFFD00000000B4
67492 +:1032800097540E088F460E043285FFFF30B30001BD
67493 +:1032900012600132000000000000000D30B8A040B4
67494 +:1032A00024150040131500C030A9A0001120012DE5
67495 +:1032B00000000000937F000813E0000800000000F9
67496 +:1032C00097630010306BFFFF00CB402B1100000311
67497 +:1032D00030AC00401180012300000000A785003CB5
67498 +:1032E000AF8600349366000800E02821AFA70020D5
67499 +:1032F00014C0012427B30020AF60000C9782003C6B
67500 +:103300003047400014E00002240300162403000E9E
67501 +:1033100024194007A363000AAF790014938A003E82
67502 +:103320008F740014315800070018AA4002959025A8
67503 +:10333000AF7200149784003C8F700014309100101D
67504 +:1033400002117825AF6F0014978E003C31CD000834
67505 +:1033500011A00147000028218F6700143C021000D3
67506 +:103360003C0C810000E22825AF65001497460E0A48
67507 +:103370002408000E3405FFFC30C3FFFF006C582505
67508 +:10338000AF6B0004A3680002937F000A27E90004E2
67509 +:10339000A369000A9786003C9363000A30CC1F00A3
67510 +:1033A000000C598301634021251F0028A37F0009D9
67511 +:1033B00097490E0CA769001093790009272A00028B
67512 +:1033C000315800070018A82332B10007A371000B81
67513 +:1033D00093740009976400108F910034978F003C1C
67514 +:1033E000329200FF024480210205702131ED00403D
67515 +:1033F00011A0000531C4FFFF0091282B3C12800072
67516 +:1034000010A000140000A0210224382B14E0011B9E
67517 +:103410008FA500208F4D0E14AF4D0E108F420E1C45
67518 +:10342000AF420E18AF440E008F4F000031EE00087F
67519 +:1034300011C0FFFD0000000097540E080080882195
67520 +:1034400000009021A794003C8F500E04241400012A
67521 +:10345000AF900034976400103095FFFF8E68000035
67522 +:103460000111F82317E00009AE7F00008F650014FA
67523 +:103470008F8B004434A60040AF6600148F4C0E10B2
67524 +:10348000AD6C00208F430E18AD63002493670008D5
67525 +:1034900014E000D2000000000E00009E2404001082
67526 +:1034A0008F8900483C08320000402821312600FF67
67527 +:1034B0000006FC0003E8502525390001AF990048BB
67528 +:1034C000AC4A0000937800099370000A330400FFAF
67529 +:1034D00000047400320F00FF01CF6825AC4D0004DA
67530 +:1034E0008F820048064000EAACA20008ACA0000CA5
67531 +:1034F0009783003C306B0008156000022628000608
67532 +:1035000026280002974E0E148F450E1C8F6700046C
67533 +:10351000936D000231C4FFFF31A200FFAFA2001083
67534 +:103520008F6C0014AFA800180E00008BAFAC001415
67535 +:10353000240400100E0000C7000000008E7200007E
67536 +:1035400016400005000000008F6400142405FFBF32
67537 +:1035500000859824AF7300148F79000C033538214F
67538 +:10356000AF67000C9375000816A00008000000006B
67539 +:1035700012800006000000008F7F00143C0BEFFF5C
67540 +:103580003568FFFE03E84824AF690014A3740008FF
67541 +:103590008FA500200A00024602202021AF470E001E
67542 +:1035A0000A0000F5000000008F5901780720FFFE97
67543 +:1035B000241F08008F840000AF5F0178974B008ABA
67544 +:1035C000316AFFFF014448232528FFFF31021FFF16
67545 +:1035D0002C4300081460FFF9000000008F8E0048A3
67546 +:1035E0008F8D003800C048210344202125C60001EA
67547 +:1035F000240C0F00AF86004800E9382324864000E1
67548 +:1036000031CA00FF11AC0005240800019391003E6F
67549 +:103610003230000700107A4035E80001000AAC00A3
67550 +:103620003C18010002B8A025AC9440008F930048DC
67551 +:1036300030B2003630A40008ACD3000410800097EC
67552 +:1036400001123025974E0E0A8F8D00003C0281003A
67553 +:1036500031CCFFFF25AB0008018240253C03100060
67554 +:1036600031651FFF25390006241F000EAF48016099
67555 +:1036700000C33025A75F015AAF850000A759015844
67556 +:1036800014E0000A8F93003824120F0052720002D7
67557 +:103690002416000134C600408F580E108F94004449
67558 +:1036A000AE9800208F550E18AE9500248F450E144D
67559 +:1036B000AF4501448F590E1CAF590148A34A01522E
67560 +:1036C0003C0A1000AF460154AF4A017814E0FEDD19
67561 +:1036D0002D2300010076A025128000178FBF004423
67562 +:1036E0008F84003824160F0010960084000000001C
67563 +:1036F0008F45017804A0FFFE24150F001095006E81
67564 +:10370000000000008F470E14240202403C1F1000EE
67565 +:10371000AF4701448F440E1CAF440148A3400152FF
67566 +:10372000A740015AAF400160A7400158AF42015481
67567 +:10373000AF5F01788FBF00448FB600408FB5003C6B
67568 +:103740008FB400388FB300348FB200308FB1002CAB
67569 +:103750008FB0002803E0000827BD004814C0FED049
67570 +:1037600030B8A0408F420E148F84004400004821DE
67571 +:10377000AC8200208F510E1CAC9100240A00020E76
67572 +:103780002D2300018F910034978A003C3C12800069
67573 +:103790000220A821315800401700FF300000A0216E
67574 +:1037A000976900108F9200343139FFFF13320035D2
67575 +:1037B00000002021008048211480FEA000A03821B4
67576 +:1037C0008F420E148F840044AC8200208F510E1C57
67577 +:1037D000AC9100240A00020E2D230001936A000917
67578 +:1037E0009378000B315000FF330F00FF020F702160
67579 +:1037F00025C2000A3050FFFF0E00009E020020216B
67580 +:103800008F8600483C1F410024CD0001AF8D004849
67581 +:10381000936C000930C600FF00064400318300FFAE
67582 +:10382000246B0002010B4825013FC825AC5900005C
67583 +:103830008F67000C97440E1400F22825AC45000455
67584 +:103840008F450E1C8F670004936A00023084FFFFCF
67585 +:10385000315800FFAFB800108F6F0014AFB10018DF
67586 +:103860000E00008BAFAF00140A0001A60200202159
67587 +:10387000AF6000040A00013EA36000020A00024695
67588 +:1038800000002021000090210A0001702414000192
67589 +:103890003C1280000A000195ACB2000C8F91000030
67590 +:1038A00025240002A744015826300008320F1FFFCC
67591 +:1038B0000A0001F9AF8F0000AF40014C1120002C2D
67592 +:1038C000000000008F590E10AF5901448F430E18AD
67593 +:1038D000240200403C1F1000AF430148A3400152A6
67594 +:1038E000A740015AAF400160A7400158AF420154C0
67595 +:1038F000AF5F01780A0002278FBF00441120000645
67596 +:103900000000000097460E0830CC004015800002F1
67597 +:10391000000000000000000D8F4D017805A0FFFEA3
67598 +:103920000000000097530E103C120500240E2000EA
67599 +:10393000326AFFFF0152C025AF58014C8F4F0E1461
67600 +:103940003C021000AF4F01448F500E1CAF50014895
67601 +:10395000A34001528F840038A740015AAF40016054
67602 +:10396000A7400158AF4E01540A000215AF4201783A
67603 +:103970008F490E14AF4901448F430E1C0A00028E7A
67604 +:10398000240200403C0E20FF27BDFFE03C1A8000CF
67605 +:103990003C0F800835CDFFFDAFBF001CAFB2001853
67606 +:1039A000AFB10014AFB00010AF8F0040AF4D0E00AC
67607 +:1039B0000000000000000000000000000000000007
67608 +:1039C000000000003C0C00FF358BFFFDAF4B0E00EC
67609 +:1039D0003C0660048CC95000240AFF7F3C11600043
67610 +:1039E000012A40243507380CACC750008E24043817
67611 +:1039F00024050009AF4500083083FFFF38622F71AE
67612 +:103A00002450C0B3AF8000480E000068AF800000B3
67613 +:103A100052000001AE20442C0E0004353C11800001
67614 +:103A20000E000ED9363000708F8A00403C1208001C
67615 +:103A300026523C88020088218E0800008F5F00001B
67616 +:103A40003BF900013338000113000017AF88003044
67617 +:103A5000022048218D2700003C0F08008DEF006CEC
67618 +:103A60003C0C08008D8C006800E8C02301F8282178
67619 +:103A70000000682100B8302B018D582101664021DB
67620 +:103A80003C010800AC25006C3C010800AC28006833
67621 +:103A90008F44000038830001306200011440FFEDC4
67622 +:103AA00000E04021AF8700308E0C00003C0508008C
67623 +:103AB0008CA5006C3C0408008C84006801883023CD
67624 +:103AC00000A638210000102100E6402B00821821BA
67625 +:103AD0000068F8213C010800AC27006C3C0108009C
67626 +:103AE000AC3F00688F49010025590088AF99004418
67627 +:103AF000AF890038AF4900208E070000AF87003043
67628 +:103B00008F4D017805A0FFFE000000008E0600002A
67629 +:103B10003C0B08008D6B00743C0408008C84007022
67630 +:103B200000C728230165F8210000102103E5402B80
67631 +:103B30000082382100E8C821240908003C0108005F
67632 +:103B4000AC3F00743C010800AC390070AF4901780B
67633 +:103B500093580108A398003E938F003E31EE000178
67634 +:103B600015C000158F830038240E0D00106E00194B
67635 +:103B7000240F0F00106F001D00000000915900007D
67636 +:103B800024180050332900FF113800043C1F400066
67637 +:103B9000AF5F01380A0002E7000000000E00090EC6
67638 +:103BA000000000008F8A00403C1F4000AF5F0138DA
67639 +:103BB0000A0002E700000000938D003E31AC0006D1
67640 +:103BC000000C51000E0000CE0152D8210A00034320
67641 +:103BD0008F8A00403C1B0800277B3D080E0000CE6A
67642 +:103BE000000000000A0003438F8A00403C1B0800CD
67643 +:103BF000277B3D280E0000CE000000000A00034392
67644 +:103C00008F8A004090AA00018FAB00108CAC00108E
67645 +:103C10003C0300FF8D680004AD6C00208CAD0014E7
67646 +:103C200000E060213462FFFFAD6D00248CA7001816
67647 +:103C30003C09FF000109C024AD6700288CAE001CC0
67648 +:103C40000182C82403197825AD6F0004AD6E002CE5
67649 +:103C50008CAD0008314A00FFAD6D001C94A9000234
67650 +:103C60003128FFFFAD68001090A70000A56000029A
67651 +:103C7000A1600004A167000090A30002306200FF71
67652 +:103C80000002198210600005240500011065000E75
67653 +:103C90000000000003E00008A16A00018CD80028A1
67654 +:103CA000354A0080AD7800188CCF0014AD6F001439
67655 +:103CB0008CCE0030AD6E00088CC4002CA16A0001CF
67656 +:103CC00003E00008AD64000C8CCD001CAD6D001845
67657 +:103CD0008CC90014AD6900148CC80024AD680008BC
67658 +:103CE0008CC70020AD67000C8CC200148C8300646C
67659 +:103CF0000043C82B13200007000000008CC20014F2
67660 +:103D0000144CFFE400000000354A008003E0000886
67661 +:103D1000A16A00018C8200640A000399000000007F
67662 +:103D200090AA000027BDFFF88FA9001CA3AA0000DD
67663 +:103D30008FAE00003C0FFF808FA8001835E2FFFF18
67664 +:103D40008CCD002C01C26024AFAC0000A120000487
67665 +:103D500000E06021A7A000028FB800008D270004BA
67666 +:103D60000188182100A0582100C05021006D28268C
67667 +:103D70003C06FF7F3C0F00FF2CAD000135EEFFFF3E
67668 +:103D800034D9FFFF3C02FF0003193024000D1DC091
67669 +:103D9000010EC82400E2C02400C370250319782551
67670 +:103DA000AD2E0000AD2F00048D450024AFAE000005
67671 +:103DB000AD2500088D4D00202405FFFFAD2D000C22
67672 +:103DC000956800023107FFFFAD27001091660018CB
67673 +:103DD00030C200FF000219C2506000018D4500345E
67674 +:103DE000AD2500148D67000827BD0008AD27001C15
67675 +:103DF0008C8B00CCAD2C0028AD20002CAD2B0024EA
67676 +:103E0000AD20001803E00008AD20002027BDFFE032
67677 +:103E1000AFB20018AFB10014AFB00010AFBF001CBC
67678 +:103E20009098000000C088213C0D00FF330F007FF8
67679 +:103E3000A0CF0000908E000135ACFFFF3C0AFF00D0
67680 +:103E4000A0CE000194A6001EA22000048CAB00149A
67681 +:103E50008E29000400A08021016C2824012A40241E
67682 +:103E60000080902101052025A6260002AE24000432
67683 +:103E700026050020262400080E00007624060002F5
67684 +:103E800092470000260500282624001400071E0083
67685 +:103E90000003160324060004044000032403FFFF6C
67686 +:103EA000965900023323FFFF0E000076AE23001068
67687 +:103EB000262400248FBF001C8FB200188FB100147D
67688 +:103EC0008FB0001024050003000030210A0000809C
67689 +:103ED00027BD002027BDFFD8AFB1001CAFB0001830
67690 +:103EE000AFBF002090A80000240200018FB0003C6A
67691 +:103EF0003103003F00808821106200148FAA00382F
67692 +:103F0000240B0005506B0016AFAA001000A0202162
67693 +:103F100000C028210E0003DC02003021922400BCE6
67694 +:103F2000308300021060000326060030ACC00000A1
67695 +:103F300024C600048FBF00208FB1001C8FB0001872
67696 +:103F400000C0102103E0000827BD002801403821EF
67697 +:103F50000E00035AAFB000100A0004200000000059
67698 +:103F60000E0003A1AFB000140A00042000000000FE
67699 +:103F70003C02000A034218213C04080024843D6CE2
67700 +:103F80002405001A000030210A000080AF8300548D
67701 +:103F90003C038000346200708C48000000A058216F
67702 +:103FA00000C04821308A00FFAF8800308F4401787C
67703 +:103FB0000480FFFE3C0C8000358600708CC500003C
67704 +:103FC0003C0308008C6300743C1808008F180070D4
67705 +:103FD00000A82023006468210000C82101A4782BD8
67706 +:103FE0000319702101CF60213C010800AC2D007441
67707 +:103FF0003C010800AC2C00708F480E14AF480144FF
67708 +:10400000AF47014CA34A0152A74B01589346010800
67709 +:1040100030C5000854A0000135291000934B090059
67710 +:1040200024070050316A00FF11470007000000001C
67711 +:104030008F450E1CAF450148AF4901543C091000A3
67712 +:1040400003E00008AF490178934D010831A800084A
67713 +:104050001100001000000000934F010831EE001025
67714 +:1040600051C00001352900083C04080090843DD06F
67715 +:10407000A34401508F4309A4AF4301488F4209A0D4
67716 +:10408000AF420144AF4901543C09100003E000086D
67717 +:10409000AF4901783C1908008F393D8C333800084E
67718 +:1040A0005700FFF1352900080A00047300000000E2
67719 +:1040B00024070040AF470814AF4008108F4209445E
67720 +:1040C0008F4309508F4409548F45095C8F46094C32
67721 +:1040D000AF820064AF830050AF84004CAF85005CBA
67722 +:1040E00003E00008AF8600609346010930C5007FF9
67723 +:1040F000000518C0000521400083102103E00008DE
67724 +:10410000244200883C09080091293D9124A800021E
67725 +:104110003C05110000093C0000E8302500C51825C9
67726 +:1041200024820008AC83000003E00008AC80000497
67727 +:104130009347010B8F4A002C974F09083C18000E3B
67728 +:104140000358482131EEFFFF000E41C0AF48002C5C
67729 +:1041500097430908952C001A008040212403000190
67730 +:10416000318BFFFFAC8B00008D2D001C00A058216F
67731 +:1041700000C06021AC8D00048D24002030E7004099
67732 +:10418000AD04000891220019304400031083004858
67733 +:104190002885000214A00062240600021086005642
67734 +:1041A00024190003109900660000000010E0003A96
67735 +:1041B000000000003C07080094E73D8624E200016F
67736 +:1041C000934F0934934709219525002A31EE00FFCA
67737 +:1041D000000E488230ED00FF978700580009360036
67738 +:1041E000000D1C003044FFFF00C310250044C02513
67739 +:1041F00000A778213C19400003197025000F4C00DE
67740 +:10420000AD090004AD0E0000934D09203C030006EB
67741 +:1042100025090014000D360000C32025AD04000858
67742 +:104220008F59092C24E5000130A27FFFAD19000C45
67743 +:104230008F580930A782005825020028AD180010B9
67744 +:104240008F4F0938AD0F0014AD2B00048F4E09407D
67745 +:10425000AD2E0008934D09373C05080090A53D9010
67746 +:104260008F4409488F46094031A700FF00EC182110
67747 +:10427000008678230003C7000005CC0003196025E1
67748 +:1042800031E8FFFC01885825AD2B000CAD20001053
67749 +:1042900003E00008AF4A002C3C0D080095AD3D86B8
67750 +:1042A0003C0E080095CE3D800A0004C901AE1021E5
67751 +:1042B0003C05080094A53D8A3C06080094C63D8054
67752 +:1042C0003C18080097183D7C952E002400A6782104
67753 +:1042D00001F86823000E240025A2FFF200821825B1
67754 +:1042E00024190800AD03000CAD190014AD00001036
67755 +:1042F0000A0004C4250800189526002495250028E6
67756 +:104300000006C40000057C00370E810035ED080072
67757 +:10431000AD0E000CAD0D00100A0004C425080014F9
67758 +:104320001480FFA200000000952400240004140063
67759 +:1043300034430800AD03000C0A0004C42508001033
67760 +:104340003C03080094633D8A3C05080094A53D8029
67761 +:104350003C06080094C63D7C953900249538002819
67762 +:10436000006520210086782300196C000018740075
67763 +:1043700025E2FFEE01C2202535A3810024190800A3
67764 +:10438000AD03000CAD040010AD190018AD00001411
67765 +:104390000A0004C42508001C03E00008240201F4FC
67766 +:1043A00027BDFFE8AFB00010AFBF00140E000060E3
67767 +:1043B0000080802124050040AF4508148F83005001
67768 +:1043C0008F84004C8F85005C0070182100641023DE
67769 +:1043D00018400004AF830050AF6300548F66005450
67770 +:1043E000AF86004C1200000C000000008F440074E7
67771 +:1043F000936800813409FA002D07000710E00005DA
67772 +:1044000000891021936C0081240B01F4018B50046E
67773 +:1044100001441021AF62000C8F4E095C01C5682376
67774 +:1044200019A000048FBF00148F4F095CAF8F005C90
67775 +:104430008FBF00148FB000100A00006227BD001863
67776 +:104440008F8400648F8300508F82004CAF640044DF
67777 +:10445000AF63005003E00008AF6200543C038000EB
67778 +:10446000346200708C43000027BDFFF8308700FFE6
67779 +:1044700030A900FF30C800FFAF8300308F440178BF
67780 +:104480000480FFFE3C028000345900708F38000029
67781 +:10449000A3A700033C0708008CE700748FAC000062
67782 +:1044A0003C0608008CC60070030378233C0E7FFF97
67783 +:1044B00000EFC82135CDFFFF00005021018D2824D9
67784 +:1044C00000CA1821000847C0032F202B00A8102580
67785 +:1044D0000064C021AFA200003C010800AC390074A8
67786 +:1044E0003C010800AC380070934F010AA3A0000201
67787 +:1044F0003C0E80FFA3AF00018FAC0000312B007F8A
67788 +:1045000035CDFFFF018D4824000B5600012A4025C0
67789 +:10451000240730002406FF803C05100027BD00085A
67790 +:10452000AF48014CAF470154A7400158A346015280
67791 +:1045300003E00008AF45017827BDFFE8AFBF0014D6
67792 +:10454000AFB000108F6500743C068000309000FF13
67793 +:1045500000A620250E000060AF6400749363000580
67794 +:10456000346200080E000062A362000502002021F0
67795 +:104570008FBF00148FB00010240500052406000131
67796 +:104580000A00057027BD001827BDFFE03C0380002E
67797 +:10459000AFB00010AFBF0018AFB1001434620070AC
67798 +:1045A0008C470000309000FF30A800FFAF8700303C
67799 +:1045B0008F4401780480FFFE3C18800037110070A2
67800 +:1045C0008E2F00003C0D08008DAD00743C0A0800E1
67801 +:1045D0008D4A007001E7702301AE282100005821A8
67802 +:1045E00000AE302B014B4821012638213C01080048
67803 +:1045F000AC250074000088213C010800AC27007045
67804 +:104600001100000F000000008F6200742619FFFFE8
67805 +:104610003208007F0002FE0233E5007F150000062D
67806 +:10462000332200FF2407FF800207202624A3FFFF78
67807 +:1046300000838025320200FF0040802124111008F1
67808 +:104640000E000060000000008F49081831250004AA
67809 +:1046500014A0FFFD3218007F001878C000187140C8
67810 +:1046600001CF682125AC0088AF4C0818274A098083
67811 +:104670008D4B0020AF4B01448D460024AF460148CE
67812 +:10468000A35001500E000062A740015802201021E3
67813 +:104690008FBF00188FB100148FB0001003E0000826
67814 +:1046A00027BD002027BDFFE8308400FFAFBF00100A
67815 +:1046B0000E0005BB30A500FF8F8300508FBF001098
67816 +:1046C000344500402404FF903C02100027BD001830
67817 +:1046D000AF43014CA3440152AF45015403E000082D
67818 +:1046E000AF4201789343093E306200081040000D4C
67819 +:1046F0003C0901013528080AAC8800008F47007486
67820 +:10470000AC8700043C06080090C63D9030C5001000
67821 +:1047100050A00006AC8000088F6A0060AC8A0008D8
67822 +:104720002484000C03E00008008010210A00062207
67823 +:104730002484000C27BDFFE8AFBF0014AFB0001009
67824 +:104740009346093F00A050210005288000853823AA
67825 +:1047500030C200FF240300063C09080095293D866D
67826 +:1047600024E8FFD824050004104300372406000283
67827 +:104770009750093C3C0F020400063400320EFFFF44
67828 +:1047800001CF6825AC8D0000934C093E318B002091
67829 +:104790001160000800000000934309363C02010349
67830 +:1047A000345F0300307900FF033FC0252405000873
67831 +:1047B000AC98000493430934935909210005F88209
67832 +:1047C000306200FF0002C082332F00FF00186E002D
67833 +:1047D000000F740001AE6025018920253C094000CE
67834 +:1047E00000898025ACF0FFD8934309378F4F0948E3
67835 +:1047F0008F580940306200FF004AC821033F7021F2
67836 +:1048000001F86023000E6F0001A650253185FFFCE2
67837 +:10481000001F58800145482501683821AD09002056
67838 +:104820000E00006024F00028240400040E00006242
67839 +:10483000A364003F020010218FBF00148FB000104E
67840 +:1048400003E0000827BD00180A0006352406001200
67841 +:1048500027BDFFD024090010AFB60028AFB5002453
67842 +:10486000AFB40020AFB10014AFB000103C0108009D
67843 +:10487000A0293D90AFBF002CAFB3001CAFB2001811
67844 +:1048800097480908309400FF3C02000E3107FFFFF3
67845 +:10489000000731C0AF46002C974409089344010B30
67846 +:1048A00030B500FF03428021308300300000B0218A
67847 +:1048B0001060012500008821240C00043C01080040
67848 +:1048C000A02C3D90934B093E000B5600000A2E038E
67849 +:1048D00004A0016000000000AF400048934F010BAE
67850 +:1048E00031EE002011C00006000000009358093E80
67851 +:1048F00000189E0000139603064001890000000086
67852 +:104900009344010B30830040106000038F930050EC
67853 +:104910008F8200502453FFFF9347093E30E6000882
67854 +:1049200014C0000224120003000090219619002CEC
67855 +:1049300093580934934F0937A7990058330C00FF57
67856 +:1049400031EE00FF024E6821000D5880016C5021AD
67857 +:10495000015140213C010800A4283D869205001821
67858 +:1049600030A900FF010918213C010800A4233D885B
67859 +:104970009211001816200002000000000000000D37
67860 +:104980003C010800A4233D8A3C010800A4203D808E
67861 +:104990003C010800A4203D7C935F010B3063FFFFC6
67862 +:1049A00033F00040120000022464000A2464000B6B
67863 +:1049B0003091FFFF0E00009E022020219358010B32
67864 +:1049C0003C08080095083D8A0040202100185982C3
67865 +:1049D000316700010E00049A01072821934C010B56
67866 +:1049E0008F4B002C974E09083C0F000E034F4021BF
67867 +:1049F00031CDFFFF000D51C0AF4A002C974309088D
67868 +:104A00009505001A004038212404000130A9FFFF59
67869 +:104A1000AC4900008D06001C00404821318A00404E
67870 +:104A2000AC4600048D020020ACE20008910300199E
67871 +:104A300030630003106400EC28790002172001188D
67872 +:104A4000241000021070010C241F0003107F011EAF
67873 +:104A500000000000114000DE000000003C090800DA
67874 +:104A600095293D8625220001935F0934934E092143
67875 +:104A70009504002A33F900FF0019C08231CF00FFEE
67876 +:104A8000978E005800184600000F6C00010D80251D
67877 +:104A90003045FFFF02051025008E50213C034000E9
67878 +:104AA00000433025000A6400ACEC0004ACE60000D2
67879 +:104AB000935F09203C19000624EC0014001FC60077
67880 +:104AC00003197825ACEF00088F48092C25CD00018B
67881 +:104AD00031A57FFFACE8000C8F500930A785005846
67882 +:104AE00024E80028ACF000108F4409380100802130
67883 +:104AF000ACE40014AD9300048F530940AD9300085B
67884 +:104B0000934A09373C19080093393D908F4309486F
67885 +:104B10008F460940314200FF0052F82100667023A1
67886 +:104B2000001F7F000019C40001F8282531CDFFFCCB
67887 +:104B300000AD2025AD84000CAD800010AF4B002CE3
67888 +:104B4000934B093E317300081260000D3C060101D1
67889 +:104B500034CC080AACEC00288F530074AD13000469
67890 +:104B60003C0B0800916B3D903167001050E0000352
67891 +:104B7000AD0000088F6A0060AD0A00082510000C27
67892 +:104B800012C0003D000000009343093F24160006B8
67893 +:104B900024060004306200FF105600C924070002FA
67894 +:104BA0009758093C3C0F0204330DFFFF01AF40252D
67895 +:104BB000AE0800009345093E30A400201080000894
67896 +:104BC00000000000935309363C0B0103357F0300BE
67897 +:104BD000327900FF033F7025AE0E00042406000862
67898 +:104BE000934F093493480921312AFFFF31ED00FF2B
67899 +:104BF000000D1082310300FF0002B60000032C00FC
67900 +:104C000002C56025018A9825001220803C094000D9
67901 +:104C10000204502302695825AD4BFFD8935F093732
67902 +:104C20008F4F09488F58094033F900FF0332702134
67903 +:104C30000006B08201D668210007440001F828234D
67904 +:104C4000000D1F000068302530A2FFFC2547FFD86B
67905 +:104C500000C260250016808002074821ACEC0020CD
67906 +:104C6000253000280E00006024120004A372003FCB
67907 +:104C70000E000062000000009347010B30F200407C
67908 +:104C8000124000053C1900FF8E180000372EFFFF70
67909 +:104C9000030E3024AE0600000E0000C702202021C3
67910 +:104CA0003C10080092103D90321100031220000FBA
67911 +:104CB00002A028218F89005025330001AF930050B6
67912 +:104CC000AF7300508F6B00540173F8231BE0000298
67913 +:104CD000026020218F640054AF6400548F4C007434
67914 +:104CE000258401F4AF64000C02A028210280202159
67915 +:104CF000A76000680E0005BB3C1410008F850050B3
67916 +:104D000034550006AF45014C8F8A00488FBF002CF8
67917 +:104D10008FB3001C25560001AF9600488FB20018D3
67918 +:104D2000A34A01528FB60028AF5501548FB1001429
67919 +:104D3000AF5401788FB500248FB400208FB00010DD
67920 +:104D400003E0000827BD00309358093E00189E007C
67921 +:104D500000139603064200362411000293440923EF
67922 +:104D6000308300021060FEDD8F8600608F8200506D
67923 +:104D700014C2FEDA000000000E0000600000000017
67924 +:104D80009369003F24070016312800FF1107000C2B
67925 +:104D9000240500083C0C0800918C3D90358B0001E7
67926 +:104DA0003C010800A02B3D90936A003F314300FF77
67927 +:104DB00010650065240D000A106D005E2402000CD1
67928 +:104DC0000E000062000000000A00069000000000D3
67929 +:104DD0003C09080095293D863C0A0800954A3D801B
67930 +:104DE0000A0006F3012A10213C09080095293D8A92
67931 +:104DF0003C04080094843D803C06080094C63D7C39
67932 +:104E000095030024012410210046F8230003CC0060
67933 +:104E100027F0FFF20330C025240F0800ACF8000C87
67934 +:104E2000ACEF0014ACE000100A0006EE24E7001816
67935 +:104E30003C010800A0313D90935F093E241600011B
67936 +:104E400033F900201720FEA5241100080A0006905F
67937 +:104E5000241100048F6E00848F4D094011A0FE9E26
67938 +:104E6000AF8E0050240F00143C010800A02F3D908D
67939 +:104E70000A00068F00000000950E0024950D002802
67940 +:104E8000000E6400000D2C003589810034A6080056
67941 +:104E9000ACE9000CACE600100A0006EE24E70014B2
67942 +:104EA0001460FEEC000000009502002400021C00CB
67943 +:104EB00034640800ACE4000C0A0006EE24E700109D
67944 +:104EC0000A000741240700123C02080094423D8A70
67945 +:104ED0003C06080094C63D803C03080094633D7C7A
67946 +:104EE00095100024951900280046F82103E3C023FB
67947 +:104EF00000106C0000197400270FFFEE01CF282569
67948 +:104F000035AC8100ACEC000CACE5001024070800C7
67949 +:104F1000AD2700182527001C0A0006EEAD2000145E
67950 +:104F20008F7F004CAF7F00548F7900540A000699A0
67951 +:104F3000AF790050A362003F0E0000620000000045
67952 +:104F40000A00069000000000240200140A0008274E
67953 +:104F5000A362003F27BDFFE8308400FFAFBF001011
67954 +:104F60000E0005BB30A500FF9378007E9379007F8B
67955 +:104F7000936E00809368007A332F00FF001866005C
67956 +:104F8000000F6C0031CB00FF018D4825000B520053
67957 +:104F90008FBF0010012A3825310600FF344470000D
67958 +:104FA00000E628252402FF813C03100027BD0018DD
67959 +:104FB000AF45014CAF440154A342015203E0000845
67960 +:104FC000AF43017827BDFFD8AFB20018AFB10014CE
67961 +:104FD000AFB00010AFBF0020AFB3001C9342010977
67962 +:104FE000308600FF30B000FF000618C23204000215
67963 +:104FF0003071000114800005305200FF93670005F6
67964 +:1050000030E5000810A0000D30C80010024020213B
67965 +:105010000E0005A702202821240400018FBF0020D4
67966 +:105020008FB3001C8FB200188FB100148FB0001026
67967 +:105030000080102103E0000827BD00281500003281
67968 +:105040000000000093430109000028213062007F26
67969 +:10505000000220C00002F94003E49821267900886C
67970 +:10506000033B98218E7800248E6F0008130F0046B2
67971 +:10507000000000008F640084241800020004FD82F8
67972 +:1050800033F900031338007C0000000093660083AE
67973 +:10509000934A0109514600043205007C10A00060CB
67974 +:1050A000000000003205007C14A0005302402021C3
67975 +:1050B00016200006320400018E7F00248F5901045F
67976 +:1050C00017F9FFD600002021320400011080000AE9
67977 +:1050D000024020218F4209408F9300641053000644
67978 +:1050E000000000000E00066D022028218F430940B9
67979 +:1050F000AF630044024020210E0006020220282156
67980 +:105100000A000860240400013C0908008D2900649D
67981 +:10511000252600013C010800AC26006416000012A0
67982 +:10512000000000008F6D00843C0E00C001AE6024C2
67983 +:1051300015800005024020210E00082E02202821A3
67984 +:105140000A00086024040001240500040E00057014
67985 +:1051500024060001024020210E00082E02202821F2
67986 +:105160000A000860240400010E000041240400012C
67987 +:10517000936B007D020B50250E000062A36A007D38
67988 +:105180000A0008A38F6D00848F6600748F480104A5
67989 +:105190008E67002400064E021507FFB63126007FF9
67990 +:1051A000936B008326440001308A007F1146004340
67991 +:1051B000316300FF5464FFB08F6400842645000112
67992 +:1051C00030B1007F30A200FF122600042405000148
67993 +:1051D000004090210A00087624110001240FFF806E
67994 +:1051E000024F702401CF9026324200FF00409021F0
67995 +:1051F0000A000876241100010E00066D0220282105
67996 +:10520000321800301300FFAA321000820240202121
67997 +:105210000E0005A7022028210A00086024040001CE
67998 +:105220008F6E00743C0F80002405000301CF902591
67999 +:10523000AF72007493710083240600010E000570A4
68000 +:10524000322400FF0E00004124040001936D007D14
68001 +:10525000020D60250E000062A36C007D3C0B08006F
68002 +:105260008D6B0054257000013C010800AC300054E7
68003 +:105270000A000860240400018F6800743C09800063
68004 +:105280002405000401093825AF6700749363008387
68005 +:10529000240600010E000570306400FF0E0000417E
68006 +:1052A000240400019362007D020298250E00006232
68007 +:1052B000A373007D0A00086024040001324D0080C1
68008 +:1052C00039AC0080546CFF6C8F6400840A0008C9FC
68009 +:1052D0002645000127BDFFC83C0A0008AFBF0030CB
68010 +:1052E000AFB5002CAFB40028AFB30024AFB200209C
68011 +:1052F000AFB1001CAFB00018034AD8212409004008
68012 +:10530000AF490814AF4008108F4209448F43095039
68013 +:105310008F4609548F47095C8F48094C9344010814
68014 +:105320009345010BAF820064308400FF30A500FF7D
68015 +:10533000AF830050AF86004CAF87005C0E00084A78
68016 +:10534000AF8800601440017D8FBF0030A760006807
68017 +:10535000934D0900240B00503C15080026B53D482C
68018 +:1053600031AC00FF3C12080026523D58118B00035F
68019 +:10537000000000000000A8210000902193510109C5
68020 +:105380008F9F005024040010322E007F000E68C052
68021 +:10539000000E6140018D282124B40088AF54081804
68022 +:1053A0008F4901048F4A09A43C0B000E034BC02116
68023 +:1053B000012A10233C010800AC223D6C8F430958A0
68024 +:1053C0003C010800A0243D9097470908007F302346
68025 +:1053D0003C010800AC263D7030E8FFFF0008C9C062
68026 +:1053E0003C010800AC3F3D94AF59002C974209089E
68027 +:1053F0009710002C8EB10000930F001803749821B1
68028 +:10540000A7900058AF9300440220F80931F000FF44
68029 +:10541000304E000215C001B2304F000111E0014FC3
68030 +:10542000000000009343093E3066000814C00002EB
68031 +:10543000241400030000A0218F5809A424130001A4
68032 +:105440003C010800AC383D98934F0934935109371B
68033 +:1054500031EC00FF322E00FF028E6821000D288003
68034 +:1054600000AC5021015058213C010800A42B3D887C
68035 +:105470003C010800A42A3D8693490934312200FFEB
68036 +:1054800002022021249000103C010800A4303D8439
68037 +:10549000240700068F9F00503C010800AC273D8C7C
68038 +:1054A0008F88005C8F59095800008021011F282334
68039 +:1054B00004A00149033F20230480014700A4302BAE
68040 +:1054C00010C00149000000003C010800AC253D70FF
68041 +:1054D0008E4200000040F809000000003043000246
68042 +:1054E000146000F80040882130440001548000100E
68043 +:1054F0008E4200043C0908008D293D743C0AC0001E
68044 +:10550000012A8025AF500E008F45000030AB000807
68045 +:105510001160FFFD00000000974D0E0824100001EF
68046 +:10552000A78D003C8F4C0E04AF8C00348E420004DB
68047 +:105530000040F8090000000002228825322E0002F7
68048 +:1055400015C00180000000003C09080095293D7C41
68049 +:105550003C06080094C63D883C0A0800954A3D7EFA
68050 +:105560003C1908008F393D74012660213C18080061
68051 +:105570008F183D983C03080094633D92018A2021D6
68052 +:105580008F4E09400329F821248F000203E32821CC
68053 +:10559000031968213C010800A42C3D8AAF8E0064E9
68054 +:1055A0003C010800AC2D3D983C010800A4253D803D
68055 +:1055B0000E00009E31E4FFFF8F870048004020214D
68056 +:1055C0003C010800A0273D918E42000824E800011C
68057 +:1055D000AF8800480040F809000000009344010B28
68058 +:1055E0008F4C002C974A09083C0B000E034B4021BE
68059 +:1055F0003149FFFF000919C08F8B0050AF43002CC9
68060 +:10560000974309089506001A00403821308A004067
68061 +:1056100030DFFFFFAC5F00008D19001C0040482107
68062 +:10562000AC5900048D180020AC580008910F0019E7
68063 +:1056300031E30003107300F0000000002862000254
68064 +:105640001440010924050002106500FD240D00032B
68065 +:10565000106D010D00000000114000D90000000095
68066 +:105660003C0A0800954A3D8625420001934D0934C5
68067 +:1056700093580921950E002A31A300FF00032082D0
68068 +:10568000331F00FF9798005800047E00001FCC00D5
68069 +:1056900001F940253049FFFF0109102501D83021CB
68070 +:1056A0003C0540000045502500066C00ACED0004B0
68071 +:1056B000ACEA0000934309203C04000624ED0014EA
68072 +:1056C0000003FE0003E4C825ACF900088F49092C4B
68073 +:1056D000270F000131EE7FFFACE9000C8F48093045
68074 +:1056E000A78E005824E90028ACE800108F4509383F
68075 +:1056F00001204021ACE50014ADAB00048F4209400D
68076 +:10570000ADA20008934B09373C1F080093FF3D9062
68077 +:105710008F4309488F4A0940316600FF00D4202199
68078 +:10572000006A78230004C700001FCC000319282555
68079 +:1057300031EEFFFC00AE1025ADA2000CADA00010B4
68080 +:10574000AF4C002C934C093E318B00085160000F88
68081 +:105750008E58000C3C06010134CA080AACEA002845
68082 +:105760008F4B0074AD2B00043C0C0800918C3D90D5
68083 +:105770003187001050E00003AD2000088F62006008
68084 +:10578000AD2200082528000C8E58000C0300F809F3
68085 +:10579000010020213C19080097393D8A3C1F080070
68086 +:1057A00097FF3D7E033F782125E900020E0000C7E8
68087 +:1057B0003124FFFF3C0E08008DCE3D6C3C080800F4
68088 +:1057C0008D083D7401C828233C010800AC253D6CC0
68089 +:1057D00014A00006000000003C0308008C633D8C10
68090 +:1057E000346400403C010800AC243D8C1200007081
68091 +:1057F0008F8C00448F470E108F900044AE0700201E
68092 +:105800008F4D0E18AE0D00243C10080096103D8000
68093 +:105810000E0000600000000024020040AF420814A7
68094 +:105820008F8600508F8A004C00D01821006A5823C0
68095 +:1058300019600004AF830050AF6300548F650054BB
68096 +:10584000AF85004C1200000C000000008F44007473
68097 +:10585000936800813409FA002D0E000711C000057D
68098 +:1058600000891821937F0081241901F403F9780439
68099 +:1058700001E41821AF63000C8F44095C8F83005C46
68100 +:105880000083C0231B000003000000008F50095C50
68101 +:10589000AF90005C0E000062000000008F8C005092
68102 +:1058A0008E4700103C010800AC2C3D9400E0F80944
68103 +:1058B000000000003C0D08008DAD3D6C55A0FEF5CC
68104 +:1058C000240700068F450024975909088F8B006430
68105 +:1058D0008F9400503C0F001F978200588F86005411
68106 +:1058E0008F93004C3328FFFF35E9FF8000A9502437
68107 +:1058F000000871C032320100AF4E0024A4C2002C57
68108 +:10590000AF4A0024AF6B0044AF740050AF73005433
68109 +:105910001640008032380010570000868EA4000424
68110 +:10592000322300405460001B8EB100088EB0000C82
68111 +:105930000200F809000000008FBF00308FB5002C76
68112 +:105940008FB400288FB300248FB200208FB1001CC9
68113 +:105950008FB0001803E0000827BD00389347010905
68114 +:105960008F8800380007FE0003E8C825AF59008083
68115 +:105970008F5809A08F5309A4AFB80010AF580E1468
68116 +:105980008FB40010AF540E10AF530E1C0A00096202
68117 +:10599000AF530E180220F809000000008EB0000C72
68118 +:1059A0000200F809000000000A000AA88FBF0030BA
68119 +:1059B000A5800020A59300220A000A5BAD93002475
68120 +:1059C0003C09080095293D863C06080094C63D80A8
68121 +:1059D0000A0009F4012610213C010800AC203D70AA
68122 +:1059E0000A00098E8E4200003C010800AC243D7084
68123 +:1059F0000A00098E8E4200003C03080094633D8A31
68124 +:105A00003C04080094843D803C1F080097FF3D7CC7
68125 +:105A1000951800240064C821033F782300186C0007
68126 +:105A200025EEFFF201AE2825AC45000C240208004B
68127 +:105A3000ACE20014ACE000100A0009EF24E7001803
68128 +:105A400095060024950900280006240000091C0082
68129 +:105A5000349F810034790800ACFF000CACF90010D1
68130 +:105A60000A0009EF24E700141460FEFB00000000A8
68131 +:105A70009518002400187C0035EE0800ACEE000CF0
68132 +:105A80000A0009EF24E700103C07080094E73D8076
68133 +:105A90003C04080094843D8A3C03080094633D7CE8
68134 +:105AA00095190024951800280087F82103E378232E
68135 +:105AB0002407080000192C0000186C0025EEFFEEEA
68136 +:105AC00001AE302534A28100AD2700182527001C27
68137 +:105AD000AD22000CAD2600100A0009EFAD20001425
68138 +:105AE00093520109000028210E000602324400FFF3
68139 +:105AF0008FBF00308FB5002C8FB400288FB30024E7
68140 +:105B00008FB200208FB1001C8FB0001803E0000896
68141 +:105B100027BD0038935F010933E400FF0E00066DD6
68142 +:105B200000002821323800105300FF7E322300404D
68143 +:105B30008EA400040080F809000000000A000AA2F8
68144 +:105B4000322300401200FF5F000000008F540E144B
68145 +:105B50008F920044AE5400208F530E1C0A000A8A14
68146 +:105B6000AE5300248F82001C008040213C040100C1
68147 +:105B70009047008530E3002010600009000000001D
68148 +:105B80003C0708008CE73D948F83001800E3202336
68149 +:105B9000048000089389000414E30003010020211D
68150 +:105BA00003E00008008010213C04010003E000082D
68151 +:105BB000008010211120000B006738238F8C0020FB
68152 +:105BC00024090034918B00BC316A0002514000016D
68153 +:105BD0002409003000E9682B15A0FFF10100202105
68154 +:105BE00000E938232419FFFC00B9C02400F9782407
68155 +:105BF00000F8702B15C0FFEA01E8202130C2000335
68156 +:105C00000002182314C00012306900030000302184
68157 +:105C100000A9702101C6682100ED602B1180FFE012
68158 +:105C20003C0401002D2F00010006482B01053821FE
68159 +:105C300001E9302414C0FFDA24E4FFFC2419FFFC3E
68160 +:105C400000B9C0240308202103E0000800801021CF
68161 +:105C50008F8B002024060004916A00BC31440004AC
68162 +:105C60001480FFEC00A970210A000B5E00003021B7
68163 +:105C700027BDFFE8AFBF00108F460100934A01091E
68164 +:105C80003C1F08008FFF00902407FF80314F00FF6A
68165 +:105C900031E8007F0008614003E6C821032CC021E1
68166 +:105CA00027090120012770243C010800A02F3DD0C6
68167 +:105CB000AF4E080C3C0D08008DAD00903C040080F8
68168 +:105CC0003482000301A65821016C182124650120AB
68169 +:105CD00030AA007801424025AF48081C3C1F08004C
68170 +:105CE0008FFF00908F88004003E6C0213319000722
68171 +:105CF00003074824033A7821AF49002825E909C061
68172 +:105D0000952E00023C0D08008DAD008C3C0A080069
68173 +:105D10008D4A009031CC3FFF01A61821000C59801C
68174 +:105D2000006B282100A72024AF44002C95220002FC
68175 +:105D30003C1F08008FFF008C9107008530593FFF02
68176 +:105D400003E678210019C1800146702101F868211D
68177 +:105D500031CC007F31AB007F019A2821017A50219C
68178 +:105D60003C03000C3C04000E00A328210144102138
68179 +:105D700030E6002027470980AF82002CAF88001C46
68180 +:105D8000AF890024AF85002010C00006AF8700282F
68181 +:105D90008D0200508CA4010C0044302318C0007701
68182 +:105DA00000000000910C0085240DFFDF018D3824D8
68183 +:105DB000A10700858F8B001C8F8900248F87002806
68184 +:105DC0008D65004CAF850018912F000D31EE00203D
68185 +:105DD00011C000170000000024090001A38900047D
68186 +:105DE000AF80000C8CE400248F85000C240A00088E
68187 +:105DF000AF800008AF8000103C010800A42A3D7E5F
68188 +:105E00003C010800A4203D920E000B32000030211E
68189 +:105E10008F8500248FBF0010AF82001490A8000D62
68190 +:105E200027BD00180008394203E0000830E20001F5
68191 +:105E3000913F00022418000133F900FF001921826C
68192 +:105E400010980039240800021088005B8F86002C0F
68193 +:105E50008CE5002414A0001B8F9F002091220000DD
68194 +:105E6000240A00053046003F10CA00472404000100
68195 +:105E70008F860008A3840004AF860010AF86000C54
68196 +:105E80008CE400248F85000C240A00083C010800E3
68197 +:105E9000A42A3D7E3C010800A4203D920E000B3256
68198 +:105EA000000000008F8500248FBF0010AF82001417
68199 +:105EB00090A8000D27BD00180008394203E0000833
68200 +:105EC00030E200018CF800088CF900248FEE00C449
68201 +:105ED000A38000048CE40024AF8E000C8F85000C9E
68202 +:105EE0008F86000803197823240A0008AF8F00105A
68203 +:105EF0003C010800A42A3D7E3C010800A4203D92FC
68204 +:105F00000E000B32000000008F8500248FBF0010B0
68205 +:105F1000AF82001490A8000D27BD00180008394278
68206 +:105F200003E0000830E20001912300003062003FEE
68207 +:105F3000104400278F8500208CE400241480002169
68208 +:105F4000000000008D2E00183C187FFF8F85002078
68209 +:105F5000370FFFFF01CF1824AF8300088F9F000881
68210 +:105F60008CA8008403E8C82B1720000203E020213E
68211 +:105F70008CA400840A000BEDAF8400088CA3010CF4
68212 +:105F80000A000BCBAF8300188D2C00188F860008F9
68213 +:105F90003C0D7FFF8F89002035A3FFFF018358242C
68214 +:105FA00024040001AF8B0010AD2000CCA3840004BA
68215 +:105FB0000A000BF9AF86000C8CCA00140A000BED26
68216 +:105FC000AF8A00088CA300C80A000C30AF83000819
68217 +:105FD0008F84002C8CAC00648C8D0014018D582BA8
68218 +:105FE00011600004000000008CA200640A000C3064
68219 +:105FF000AF8200088C8200140A000C30AF820008C7
68220 +:106000008F85000C27BDFFE0AFBF0018AFB10014B3
68221 +:1060100014A00007AFB000108F86002424020005F2
68222 +:1060200090C400003083003F106200B68F840020CF
68223 +:106030008F91000800A080218F8C00283C0508006B
68224 +:106040008CA53D708D8B000431663FFF00C5502B41
68225 +:106050005540000100C02821938D000411A0007359
68226 +:1060600000B0F82B8F98002024040034930F00BC5C
68227 +:1060700031EE000251C000012404003000A4C82BFE
68228 +:10608000172000D10000000000A4282300B0F82B46
68229 +:106090003C010800A4243D7C17E000680200202198
68230 +:1060A0003C0308008C633D6C0083102B54400001BE
68231 +:1060B000008018218F8800243C010800AC233D7427
68232 +:1060C000000048219104000D308300205060000141
68233 +:1060D0008F490E188F8300140123382B10E00059CC
68234 +:1060E000000000003C0408008C843D7400895821A5
68235 +:1060F000006B502B114000560090602B006930233C
68236 +:1061000000C020213C010800AC263D7412000003B1
68237 +:10611000241FFFFC1090008A32270003009FC82430
68238 +:106120003C010800AC393D743C010800A4203D92BC
68239 +:106130008F84000C120400078F830020AF910008A9
68240 +:10614000020020218C7100CCAF90000C26300001A1
68241 +:10615000AC7000CC3C0208008C423D748F8A001069
68242 +:10616000240700180082202301422823AF84000C5A
68243 +:1061700010800002AF850010240700108F86001CDD
68244 +:106180003C010800A0273D902407004090CC0085EA
68245 +:10619000318B00C0116700408F8D001414A00015D2
68246 +:1061A00000002021934A01098F420974314500FF04
68247 +:1061B0000002260224A300013090007F3071007F8E
68248 +:1061C0001230007A2407FF80A0C300833C09080036
68249 +:1061D0008D293D8C8F880024240D0002352C000869
68250 +:1061E0003C010800A02D3DD13C010800AC2C3D8CA9
68251 +:1061F00024040010910E000D31C6002010C00005CF
68252 +:1062000000801821240800013C010800AC283D74DE
68253 +:10621000348300018FBF00188FB100148FB00010BD
68254 +:106220000060102103E0000827BD00203C010800A9
68255 +:10623000A4203D7C13E0FF9A020020210A000C817B
68256 +:1062400000A020213C0408008C843D740090602B49
68257 +:106250001180FFAE000000003C0F080095EF3D7C70
68258 +:1062600001E4702101C6682B11A000072C820004F4
68259 +:106270003C1F60008FF954043338003F1700FFE5DE
68260 +:10628000240300422C8200041040FFA0240300429B
68261 +:106290000A000CDF8FBF0018152DFFC000000000A2
68262 +:1062A0008CDF00743C0380002405FF8003E3C825D5
68263 +:1062B000ACD9007490D80085240E0004240400108A
68264 +:1062C000330F003F01E54025A0C800858F880024DA
68265 +:1062D0003C010800A02E3DD1240300019106000DD1
68266 +:1062E00030C9002015200003000000003C03080016
68267 +:1062F0008C633D743C010800AC233D6C0A000CD655
68268 +:10630000000000008F8700108C88008400E8282B94
68269 +:1063100014A0000200E088218C910084240900016F
68270 +:10632000A38900048F440E18022028210E000B328E
68271 +:1063300002203021022080210A000C67AF82001465
68272 +:1063400000071823306600033C010800A4263D9294
68273 +:10635000122000058F8C0020918B00BC316A000454
68274 +:106360001540001524CD00043C0F080095EF3D9228
68275 +:1063700001E4702100AE302B50C0FF6E8F84000C02
68276 +:106380002C85000514A0FFA32403004230980003CD
68277 +:1063900017000002009818232483FFFC3C0108002A
68278 +:1063A000AC233D740A000CA30000000000A7582491
68279 +:1063B0000A000CCB016718263C010800A42D3D9271
68280 +:1063C0000A000D33000000003C010800AC203D74C1
68281 +:1063D0000A000CDE240300428F83001014600007C3
68282 +:1063E000000010218F88002424050005910600007C
68283 +:1063F00030C400FF108500030000000003E0000827
68284 +:1064000000000000910A0018314900FF000939C25C
68285 +:1064100014E0FFFA8F85001C3C04080094843D7C46
68286 +:106420003C0308008C633D943C1908008F393D748F
68287 +:106430003C0F080095EF3D920064C0218CAD0054E4
68288 +:106440000319702101CF6021018D58231960001DAF
68289 +:1064500000000000910E001C8F8C002C974B0E103A
68290 +:1064600031CD00FF8D850004016D30238D88000043
68291 +:1064700030CEFFFF000E510000AAC82100003821D5
68292 +:1064800001072021032A182B0083C021AD990004A5
68293 +:10649000AD980000918F000A01CF6821A18D000AFC
68294 +:1064A0008F88002C974B0E12A50B0008950A003818
68295 +:1064B00025490001A50900389107000D34E60008C0
68296 +:1064C000A106000D03E000080000000027BDFFE06A
68297 +:1064D000938700048F8F00248FAD00143C0E7FFF44
68298 +:1064E0008F89000C35C8FFFFAFBF001CAFB000188C
68299 +:1064F00001A8182491EA000D000717C03C1FBFFF38
68300 +:10650000006258252D2E00018F90001837F9FFFFEB
68301 +:106510003C1808008F183D943C0F080095EF3D8A09
68302 +:1065200001796824000E47803C07EFFF3C05F0FF2F
68303 +:1065300001A818253149002034E2FFFF34ACFFFFE9
68304 +:106540000310582327A500102406000225EA0002A4
68305 +:1065500000621824008080211520000200004021E4
68306 +:106560008F480E1CA7AA0012056000372407000000
68307 +:1065700030FF00FF001FCF008F8B001C00793825F3
68308 +:10658000AFA70014916F00853C08080091083D9169
68309 +:106590003C18DFFF31EE00C0370AFFFF000E182B5A
68310 +:1065A0003C1F080097FF3D8400EA6824A3A800115F
68311 +:1065B0000003174001A248258FB90010AFA90014AD
68312 +:1065C0003C0A0800914A3D93A7BF00168FA800140B
68313 +:1065D000032CC0243C0B01003C0F0FFF030B1825BC
68314 +:1065E0003147000335EEFFFF010C68240007160059
68315 +:1065F000006EF8243C09700001A2C82503E9582563
68316 +:10660000AFB90014AFAB00100E000076A3A00015C8
68317 +:106610008F8C0024260200089186000D30C40020D3
68318 +:10662000108000068FBF001C3C05080094A53D802B
68319 +:1066300024B0FFFF3C010800A4303D808FB000185B
68320 +:1066400003E0000827BD00208F9800140118502B8C
68321 +:106650005540FFC7240700010A000DB630FF00FFB8
68322 +:106660009382000427BDFFE0AFBF00181040000F69
68323 +:10667000008050218F880024240B00058F8900089A
68324 +:10668000910700008F8400200100282130E3003FA3
68325 +:106690008F86002C106B000800003821AFA9001075
68326 +:1066A0000E00040EAFAA0014A38000048FBF0018D0
68327 +:1066B00003E0000827BD00208D1900183C0F0800DA
68328 +:1066C0008DEF3D748F9800103C027FFF8D08001401
68329 +:1066D000345FFFFF033F682401F8702101AE60239F
68330 +:1066E00001883821AFA900100E00040EAFAA0014D3
68331 +:1066F0000A000E04A38000048F8700243C050800D4
68332 +:1067000094A53D923C0208008C423D8C90E6000D21
68333 +:106710000005240030C300201060002C00444025F8
68334 +:106720008F85001C00006021240B000190A30085D0
68335 +:1067300000004821240A00013C0F800035EE007063
68336 +:106740008DC70000AF8700308F5801780700FFFE2B
68337 +:106750003C038000347900708F3800003C0508004D
68338 +:106760008CA500743C0D08008DAD007003077823E4
68339 +:1067700000AF38210000102100EF302B01A22021B2
68340 +:10678000008618213C010800AC2700743C01080079
68341 +:10679000AC230070AF4B01483C1908008F393D9481
68342 +:1067A000A7490144A74A0146AF59014C3C0B0800D8
68343 +:1067B000916B3D91A34B0152AF4801543C0810002E
68344 +:1067C000A74C015803E00008AF4801788F4B0E1C1E
68345 +:1067D0003C0A08008D4A3D7497490E16974D0E14D9
68346 +:1067E00001456021312AFFFF0A000E2731A9FFFF72
68347 +:1067F0008F8300249064000D308200201040002917
68348 +:10680000000000000000482100005021000040214D
68349 +:106810003C07800034EB00708D670000AF870030CC
68350 +:106820008F4C01780580FFFE3C0D800035AC007078
68351 +:106830008D8B00003C0508008CA500743C0408000A
68352 +:106840008C8400700167302300A67821000010219D
68353 +:1068500001E6C82B0082C021031970213C01080009
68354 +:10686000AC2F00743C010800AC2E0070AF49014809
68355 +:106870003C0D08008DAD3D94A7480144240900401B
68356 +:10688000A74A01463C081000240AFF91AF4D014C75
68357 +:10689000A34A0152AF490154A740015803E0000840
68358 +:1068A000AF4801788F490E1897460E1297450E1083
68359 +:1068B00030CAFFFF0A000E5D30A8FFFF8F8300245F
68360 +:1068C00027BDFFF89064000D308200201040003A90
68361 +:1068D00000000000240B000100004821240A0001F0
68362 +:1068E0003C088000350700708CE30000AF83003067
68363 +:1068F0008F4C01780580FFFE3C0E80003C040800B0
68364 +:1069000090843DD035C700708CEC00003C05080039
68365 +:106910008CA50074A3A400033C1908008F390070F3
68366 +:106920008FAD00000183302300A638210000102124
68367 +:106930000322782100E6C02B01F8602101AE40253A
68368 +:10694000AFA800003C010800AC2700743C0108001F
68369 +:10695000AC2C00709346010A3C04080090843DD1A1
68370 +:10696000A3A00002A3A600018FA300003C0580FFA6
68371 +:106970003099007F34A2FFFF006278240019C6001E
68372 +:1069800001F87025240D3000AF4E014C27BD0008E2
68373 +:10699000AF4D0154A7400158AF4B0148A7490144EE
68374 +:1069A000A74A01463C091000240AFF80A34A01526D
68375 +:1069B00003E00008AF4901788F4B0E1897460E127E
68376 +:1069C00097450E1030CAFFFF0A000E9130A9FFFF55
68377 +:1069D0008F85001C2402008090A40085308300C0B5
68378 +:1069E000106200058F8600208F8800088F87000CBA
68379 +:1069F000ACC800C8ACC700C403E000080000000039
68380 +:106A00003C0A0800254A39543C09080025293A2047
68381 +:106A10003C08080025082DD43C07080024E73B3437
68382 +:106A20003C06080024C637C43C05080024A5353CB4
68383 +:106A30003C040800248431643C0308002463385C6F
68384 +:106A40003C020800244236303C010800AC2A3D508C
68385 +:106A50003C010800AC293D4C3C010800AC283D48F5
68386 +:106A60003C010800AC273D543C010800AC263D64C5
68387 +:106A70003C010800AC253D5C3C010800AC243D58BD
68388 +:106A80003C010800AC233D683C010800AC223D609D
68389 +:086A900003E000080000000013
68390 +:00000001FF
68391 diff --git a/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
68392 new file mode 100644
68393 index 0000000..43d7c4f
68394 --- /dev/null
68395 +++ b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
68396 @@ -0,0 +1,6496 @@
68397 +:10000000080001180800000000005594000000C816
68398 +:1000100000000000000000000000000008005594EF
68399 +:10002000000000380000565C080000A00800000036
68400 +:100030000000574400005694080059200000008436
68401 +:100040000000ADD808005744000001C00000AE5CBD
68402 +:100050000800321008000000000092580000B01C98
68403 +:10006000000000000000000000000000080092589E
68404 +:100070000000033C000142740800049008000400E2
68405 +:10008000000012FC000145B000000000000000006C
68406 +:1000900000000000080016FC00000004000158AC3D
68407 +:1000A000080000A80800000000003D00000158B052
68408 +:1000B00000000000000000000000000008003D00FB
68409 +:1000C00000000030000195B00A000046000000006A
68410 +:1000D000000000000000000D636F6D362E322E31DF
68411 +:1000E00062000000060201020000000000000003A0
68412 +:1000F000000000C800000032000000030000000003
68413 +:1001000000000000000000000000000000000000EF
68414 +:1001100000000010000001360000EA600000000549
68415 +:1001200000000000000000000000000000000008C7
68416 +:1001300000000000000000000000000000000000BF
68417 +:1001400000000000000000000000000000000000AF
68418 +:10015000000000000000000000000000000000009F
68419 +:10016000000000020000000000000000000000008D
68420 +:10017000000000000000000000000000000000007F
68421 +:10018000000000000000000000000010000000005F
68422 +:10019000000000000000000000000000000000005F
68423 +:1001A000000000000000000000000000000000004F
68424 +:1001B000000000000000000000000000000000003F
68425 +:1001C000000000000000000000000000000000002F
68426 +:1001D000000000000000000000000000000000001F
68427 +:1001E0000000000010000003000000000000000DEF
68428 +:1001F0000000000D3C020800244256083C030800A1
68429 +:1002000024635754AC4000000043202B1480FFFDB2
68430 +:10021000244200043C1D080037BD9FFC03A0F021D0
68431 +:100220003C100800261001183C1C0800279C5608AA
68432 +:100230000E000256000000000000000D27BDFFB4B4
68433 +:10024000AFA10000AFA20004AFA30008AFA4000C50
68434 +:10025000AFA50010AFA60014AFA70018AFA8001CF0
68435 +:10026000AFA90020AFAA0024AFAB0028AFAC002C90
68436 +:10027000AFAD0030AFAE0034AFAF0038AFB8003C28
68437 +:10028000AFB90040AFBC0044AFBF00480E001544FA
68438 +:10029000000000008FBF00488FBC00448FB90040B1
68439 +:1002A0008FB8003C8FAF00388FAE00348FAD003078
68440 +:1002B0008FAC002C8FAB00288FAA00248FA90020C0
68441 +:1002C0008FA8001C8FA700188FA600148FA5001000
68442 +:1002D0008FA4000C8FA300088FA200048FA1000040
68443 +:1002E00027BD004C3C1B60108F7A5030377B502864
68444 +:1002F00003400008AF7A00008F82002427BDFFE092
68445 +:10030000AFB00010AFBF0018AFB100148C42000CAA
68446 +:100310003C1080008E110100104000348FBF001887
68447 +:100320000E000D84000000008F85002024047FFF54
68448 +:100330000091202BACB100008E030104960201084D
68449 +:1003400000031C003042FFFF00621825ACA300042C
68450 +:100350009202010A96030114304200FF3063FFFF4E
68451 +:100360000002140000431025ACA200089603010C03
68452 +:100370009602010E00031C003042FFFF00621825A8
68453 +:10038000ACA3000C960301109602011200031C009E
68454 +:100390003042FFFF00621825ACA300108E02011846
68455 +:1003A000ACA200148E02011CACA20018148000083C
68456 +:1003B0008F820024978200003C0420050044182509
68457 +:1003C00024420001ACA3001C0A0000C6A782000062
68458 +:1003D0003C0340189442001E00431025ACA2001CB0
68459 +:1003E0000E000DB8240400018FBF00188FB1001457
68460 +:1003F0008FB000100000102103E0000827BD00208E
68461 +:100400003C0780008CE202B834E50100044100089A
68462 +:10041000240300013C0208008C42006024420001D9
68463 +:100420003C010800AC22006003E0000800601021DD
68464 +:100430003C0208008C42005C8CA4002094A30016AF
68465 +:100440008CA6000494A5000E24420001ACE40280B6
68466 +:100450002463FFFC3C010800AC22005C3C0210005D
68467 +:10046000A4E30284A4E5028600001821ACE6028819
68468 +:10047000ACE202B803E000080060102127BDFFE0F5
68469 +:100480003C028000AFB0001034420100AFBF001C3E
68470 +:10049000AFB20018AFB100148C43000094450008BF
68471 +:1004A0002462FE002C42038110400003000381C23D
68472 +:1004B0000A00010226100004240201001462000553
68473 +:1004C0003C1180003C02800890420004305000FF44
68474 +:1004D0003C11800036320100964300143202000FB6
68475 +:1004E00000021500004310253C0308008C63004403
68476 +:1004F00030A40004AE220080246300013C01080007
68477 +:10050000AC2300441080000730A200028FBF001C03
68478 +:100510008FB200188FB100148FB000100A0000CE07
68479 +:1005200027BD00201040002D0000182130A20080BF
68480 +:1005300010400005362200708E44001C0E000C672F
68481 +:10054000240500A0362200708C4400008F82000C2D
68482 +:10055000008210232C43012C10600004AF82001095
68483 +:10056000240300010A000145AF84000C8E42000400
68484 +:100570003C036020AF84000CAC6200143C02080015
68485 +:100580008C42005850400015000018218C62000475
68486 +:10059000240301FE304203FF144300100000182121
68487 +:1005A0002E020004104000032E0200080A00014041
68488 +:1005B0000000802114400003000000000A000140F8
68489 +:1005C0002610FFF90000000D2402000202021004B0
68490 +:1005D0003C036000AC626914000018218FBF001C4E
68491 +:1005E0008FB200188FB100148FB00010006010217E
68492 +:1005F00003E0000827BD00203C0480008C8301003C
68493 +:1006000024020100506200033C0280080000000D3B
68494 +:100610003C02800890430004000010213063000F6A
68495 +:1006200000031D0003E00008AC8300800004188074
68496 +:100630002782FF9C00621821000410C00044102390
68497 +:100640008C640000000210C03C030800246356E4E0
68498 +:10065000004310213C038000AC64009003E00008DC
68499 +:10066000AF8200243C0208008C42011410400019A3
68500 +:100670003084400030A2007F000231C03C02020002
68501 +:100680001080001400A218253C026020AC43001426
68502 +:100690003C0408008C8456B83C0308008C630110AD
68503 +:1006A0003C02800024050900AC4500200086202182
68504 +:1006B000246300013C028008AC4400643C01080053
68505 +:1006C000AC2301103C010800AC2456B803E000083C
68506 +:1006D000000000003C02602003E00008AC4500146C
68507 +:1006E00003E000080000102103E0000800001021D2
68508 +:1006F00030A2000810400008240201003C0208005B
68509 +:100700008C42010C244200013C010800AC22010C87
68510 +:1007100003E0000800000000148200080000000050
68511 +:100720003C0208008C4200FC244200013C0108000D
68512 +:10073000AC2200FC0A0001A330A200203C02080009
68513 +:100740008C420084244200013C010800AC22008459
68514 +:1007500030A200201040000830A200103C02080027
68515 +:100760008C420108244200013C010800AC2201082F
68516 +:1007700003E0000800000000104000080000000036
68517 +:100780003C0208008C420104244200013C010800A4
68518 +:10079000AC22010403E00008000000003C02080055
68519 +:1007A0008C420100244200013C010800AC220100FF
68520 +:1007B00003E000080000000027BDFFE0AFB1001417
68521 +:1007C0003C118000AFB20018AFBF001CAFB00010EA
68522 +:1007D0003632010096500008320200041040000733
68523 +:1007E000320300028FBF001C8FB200188FB10014BB
68524 +:1007F0008FB000100A0000CE27BD00201060000B53
68525 +:10080000020028218E2401000E00018A0000000051
68526 +:100810003202008010400003240500A10E000C6786
68527 +:100820008E44001C0A0001E3240200018E2301040F
68528 +:100830008F82000810430006020028218E24010048
68529 +:100840000E00018A000000008E220104AF82000821
68530 +:10085000000010218FBF001C8FB200188FB1001450
68531 +:100860008FB0001003E0000827BD00202C82000498
68532 +:1008700014400002000018212483FFFD240200021E
68533 +:10088000006210043C03600003E00008AC626914DD
68534 +:1008900027BDFFE0AFBF001CAFB20018AFB100141E
68535 +:1008A000AFB000103C048000948201083043700017
68536 +:1008B000240220001062000A2862200154400052E5
68537 +:1008C0008FBF001C24024000106200482402600018
68538 +:1008D0001062004A8FBF001C0A0002518FB200183C
68539 +:1008E00034820100904300098C5000189451000C90
68540 +:1008F000240200091062001C0000902128620009F7
68541 +:10090000144000218F8200242402000A5062001249
68542 +:10091000323100FF2402000B1062000F00000000C3
68543 +:100920002402000C146200188F8200243C0208008C
68544 +:100930008C4256B824030900AC83002000501021DB
68545 +:100940003C038008AC6200643C010800AC2256B84D
68546 +:100950000A0002508FBF001C0E0001E900102602A1
68547 +:100960000A0002308F8200240E0001E900102602E6
68548 +:100970003C0380089462001A8C72000C3042FFFF26
68549 +:10098000020280258F8200248C42000C5040001E01
68550 +:100990008FBF001C0E000D84000000003C02800090
68551 +:1009A00034420100944300088F82002400031C009D
68552 +:1009B0009444001E8F82002000641825AC50000073
68553 +:1009C00024040001AC510004AC520008AC40000CFF
68554 +:1009D000AC400010AC400014AC4000180E000DB844
68555 +:1009E000AC43001C0A0002508FBF001C0E000440E4
68556 +:1009F000000000000A0002508FBF001C0E000C9F78
68557 +:100A0000000000008FBF001C8FB200188FB10014CF
68558 +:100A10008FB000100000102103E0000827BD002067
68559 +:100A200027BDFFD8AFB400203C036010AFBF002447
68560 +:100A3000AFB3001CAFB20018AFB10014AFB00010DC
68561 +:100A40008C6450002402FF7F3C1408002694563822
68562 +:100A5000008220243484380CAC6450003C028000B6
68563 +:100A6000240300370E0014B0AC4300083C07080014
68564 +:100A700024E70618028010212404001D2484FFFFAF
68565 +:100A8000AC4700000481FFFD244200043C02080042
68566 +:100A9000244207C83C010800AC2256403C02080032
68567 +:100AA000244202303C030800246306203C04080072
68568 +:100AB000248403B43C05080024A506F03C06080085
68569 +:100AC00024C62C9C3C010800AC2256803C02080045
68570 +:100AD000244205303C010800AC2756843C01080044
68571 +:100AE000AC2656943C010800AC23569C3C010800FF
68572 +:100AF000AC2456A03C010800AC2556A43C010800DB
68573 +:100B0000AC2256A83C010800AC23563C3C0108002E
68574 +:100B1000AC2456443C010800AC2056603C0108005F
68575 +:100B2000AC2556643C010800AC2056703C0108001E
68576 +:100B3000AC27567C3C010800AC2656903C010800CE
68577 +:100B4000AC2356980E00056E00000000AF80000C2C
68578 +:100B50003C0280008C5300008F8300043C0208009C
68579 +:100B60008C420020106200213262000700008821C0
68580 +:100B70002792FF9C3C100800261056E43C02080017
68581 +:100B80008C42002024050001022518040043202483
68582 +:100B90008F820004004310245044000C26310001D1
68583 +:100BA00010800008AF9000248E4300003C028000BB
68584 +:100BB000AC4300900E000D4BAE05000C0A0002C1C4
68585 +:100BC00026310001AE00000C263100012E22000269
68586 +:100BD000261000381440FFE9265200043C020800A9
68587 +:100BE0008C420020AF820004326200071040FFD91F
68588 +:100BF0003C028000326200011040002D326200028F
68589 +:100C00003C0580008CA2010000002021ACA2002045
68590 +:100C10008CA301042C42078110400008ACA300A85B
68591 +:100C200094A2010824032000304270001443000302
68592 +:100C30003C02800890420005304400FF0E0001593C
68593 +:100C4000000000003C0280009042010B304300FF96
68594 +:100C50002C62001E54400004000310800E00018628
68595 +:100C60000A0002EC00000000005410218C42000039
68596 +:100C70000040F80900000000104000043C02800021
68597 +:100C80008C4301043C026020AC4300143C02080089
68598 +:100C90008C4200343C0440003C03800024420001AC
68599 +:100CA000AC6401383C010800AC220034326200021E
68600 +:100CB00010400010326200043C1080008E0201409F
68601 +:100CC000000020210E000159AE0200200E00038317
68602 +:100CD000000000003C024000AE0201783C02080027
68603 +:100CE0008C420038244200013C010800AC2200384C
68604 +:100CF000326200041040FF973C0280003C108000EC
68605 +:100D00008E020180000020210E000159AE02002059
68606 +:100D10008E03018024020F00546200073C02800809
68607 +:100D20008E0201883C0300E03042FFFF00431025A3
68608 +:100D30000A000328AE020080344200809042000086
68609 +:100D400024030050304200FF14430007000000005D
68610 +:100D50000E000362000000001440000300000000C9
68611 +:100D60000E000971000000003C0208008C42003CAB
68612 +:100D70003C0440003C03800024420001AC6401B804
68613 +:100D80003C010800AC22003C0A0002A33C028000A7
68614 +:100D90003C02900034420001008220253C02800089
68615 +:100DA000AC4400203C0380008C6200200440FFFE25
68616 +:100DB0000000000003E00008000000003C0280008A
68617 +:100DC000344300010083202503E00008AC440020E8
68618 +:100DD00027BDFFE0AFB10014AFB000100080882144
68619 +:100DE000AFBF00180E00033230B000FF8F83FF94B6
68620 +:100DF000022020219062002502028025A07000259B
68621 +:100E00008C7000183C0280000E00033D020280241A
68622 +:100E10001600000B8FBF00183C0480008C8201F884
68623 +:100E20000440FFFE348201C024030002AC510000E4
68624 +:100E3000A04300043C021000AC8201F88FBF0018F0
68625 +:100E40008FB100148FB0001003E0000827BD002010
68626 +:100E500027BDFFE83C028000AFBF00103442018094
68627 +:100E6000944300048C4400083063020010600005C5
68628 +:100E7000000028210E00100C000000000A0003787A
68629 +:100E8000240500013C02FF000480000700821824B2
68630 +:100E90003C02040014620004240500018F82FF94C8
68631 +:100EA00090420008240500018FBF001000A010210F
68632 +:100EB00003E0000827BD00188F82FF982405000179
68633 +:100EC000A040001A3C028000344201400A00034264
68634 +:100ED0008C4400008F85FF9427BDFFE0AFBF001C4E
68635 +:100EE000AFB20018AFB10014AFB0001090A2000074
68636 +:100EF000304400FF38830020388200300003182B74
68637 +:100F00000002102B0062182410600003240200501D
68638 +:100F1000148200A88FBF001C90A20005304200017F
68639 +:100F2000104000A48FBF001C3C02800034420140EE
68640 +:100F3000904200082443FFFF2C6200051040009EF1
68641 +:100F40008FB20018000310803C030800246355ACE6
68642 +:100F5000004310218C420000004000080000000007
68643 +:100F60003C028000345101400E0003328E24000008
68644 +:100F70008F92FF948E2200048E50000C1602000205
68645 +:100F800024020001AE42000C0E00033D8E2400003E
68646 +:100F90008E220004145000068FBF001C8FB2001870
68647 +:100FA0008FB100148FB000100A000F7827BD002009
68648 +:100FB0008E42000C0A000419000000003C0480006E
68649 +:100FC0003482014094A300108C4200043063FFFF80
68650 +:100FD0001443001C0000000024020001A4A2001021
68651 +:100FE0008C8202380441000F3C0380003C02003F29
68652 +:100FF0003448F0003C0760003C06FFC08CE22BBC8C
68653 +:1010000000461824004810240002130200031D8229
68654 +:10101000106200583C0280008C8202380440FFF7C6
68655 +:101020003C038000346201408C44000034620200C2
68656 +:10103000AC4400003C021000AC6202380A00043BE1
68657 +:101040008FBF001C94A200100A00041900000000C9
68658 +:10105000240200201482000F3C0280003C03800028
68659 +:1010600094A20012346301408C6300043042FFFFFD
68660 +:10107000146200050000000024020001A4A2001276
68661 +:101080000A0004028FBF001C94A200120A00041977
68662 +:1010900000000000345101400E0003328E24000095
68663 +:1010A0008F92FF948E230004964200123050FFFF6F
68664 +:1010B0001603000224020001A64200120E00033DA6
68665 +:1010C0008E2400008E220004160200068FBF001C32
68666 +:1010D0008FB200188FB100148FB000100A00037C8B
68667 +:1010E00027BD0020964200120A00041900000000EB
68668 +:1010F0003C03800094A20014346301408C6300041C
68669 +:101100003042FFFF14620008240200018FBF001C60
68670 +:101110008FB200188FB100148FB00010A4A2001479
68671 +:101120000A00146327BD002094A20014144000217B
68672 +:101130008FBF001C0A000435000000003C03800043
68673 +:1011400094A20016346301408C6300043042FFFF18
68674 +:101150001462000D240200018FBF001C8FB2001822
68675 +:101160008FB100148FB00010A4A200160A000B1457
68676 +:1011700027BD00209442007824420004A4A200105D
68677 +:101180000A00043B8FBF001C94A200162403000138
68678 +:101190003042FFFF144300078FBF001C3C020800D1
68679 +:1011A0008C420070244200013C010800AC22007017
68680 +:1011B0008FBF001C8FB200188FB100148FB00010C9
68681 +:1011C00003E0000827BD002027BDFFD8AFB20018FC
68682 +:1011D0008F92FF94AFB10014AFBF0020AFB3001CDB
68683 +:1011E000AFB000103C028000345101008C5001006F
68684 +:1011F0009242000092230009304400FF2402001FA5
68685 +:10120000106200AB28620020104000192402003850
68686 +:101210002862000A1040000D2402000B286200081A
68687 +:101220001040002E8F820024046001042862000216
68688 +:101230001440002A8F820024240200061062002637
68689 +:101240008FBF00200A00055F8FB3001C1062006092
68690 +:101250002862000B144000FA8FBF00202402000E09
68691 +:10126000106200788F8200240A00055F8FB3001C93
68692 +:10127000106200D2286200391040000A2402008067
68693 +:1012800024020036106200E528620037104000C3D7
68694 +:1012900024020035106200D98FBF00200A00055FCC
68695 +:1012A0008FB3001C1062002D2862008110400006E0
68696 +:1012B000240200C824020039106200C98FBF002038
68697 +:1012C0000A00055F8FB3001C106200A28FBF0020D0
68698 +:1012D0000A00055F8FB3001C8F8200248C42000C33
68699 +:1012E000104000D78FBF00200E000D8400000000CA
68700 +:1012F0003C038000346301008C6200008F85002075
68701 +:10130000946700089466000CACA200008C64000492
68702 +:101310008F82002400063400ACA400049448001E10
68703 +:101320008C62001800073C0000E83825ACA20008D9
68704 +:101330008C62001C24040001ACA2000C9062000A24
68705 +:1013400000C23025ACA60010ACA00014ACA0001860
68706 +:10135000ACA7001C0A00051D8FBF00208F8200244F
68707 +:101360008C42000C104000B68FBF00200E000D8490
68708 +:10137000000000008F820024962400089625000CAF
68709 +:101380009443001E000422029626000E8F82002045
68710 +:10139000000426000083202500052C003C0300806B
68711 +:1013A00000A6282500832025AC400000AC400004A6
68712 +:1013B000AC400008AC40000CAC450010AC40001440
68713 +:1013C000AC400018AC44001C0A00051C24040001B9
68714 +:1013D0009622000C14400018000000009242000504
68715 +:1013E0003042001014400014000000000E000332D0
68716 +:1013F0000200202192420005020020213442001008
68717 +:101400000E00033DA242000592420000240300208A
68718 +:10141000304200FF10430089020020218FBF0020CE
68719 +:101420008FB3001C8FB200188FB100148FB0001062
68720 +:101430000A00107527BD00280000000D0A00055E97
68721 +:101440008FBF00208C42000C1040007D8FBF002019
68722 +:101450000E000D84000000008E2200048F84002006
68723 +:101460009623000CAC8200003C0280089445002CBE
68724 +:101470008F82002400031C0030A5FFFF9446001E4D
68725 +:101480003C02400E0065182500C23025AC830004E4
68726 +:10149000AC800008AC80000CAC800010AC80001464
68727 +:1014A000AC800018AC86001C0A00051C2404000156
68728 +:1014B0000E000332020020218F93FF9802002021AA
68729 +:1014C0000E00033DA660000C020020210E00034226
68730 +:1014D000240500018F8200248C42000C104000582B
68731 +:1014E0008FBF00200E000D84000000009622000C2B
68732 +:1014F0008F83002000021400AC700000AC62000476
68733 +:10150000AC6000088E4400388F820024AC64000C6C
68734 +:101510008E46003C9445001E3C02401FAC66001005
68735 +:1015200000A228258E62000424040001AC6200148D
68736 +:10153000AC600018AC65001C8FBF00208FB3001C8E
68737 +:101540008FB200188FB100148FB000100A000DB8D0
68738 +:1015500027BD0028240200201082003A8FB3001C0F
68739 +:101560000E000F5E00000000104000358FBF00200D
68740 +:101570003C0480008C8201F80440FFFE348201C0EC
68741 +:1015800024030002AC500000A04300043C02100001
68742 +:10159000AC8201F80A00055E8FBF00200200202106
68743 +:1015A0008FBF00208FB3001C8FB200188FB10014C2
68744 +:1015B0008FB000100A000EA727BD00289625000C4A
68745 +:1015C000020020218FBF00208FB3001C8FB20018B3
68746 +:1015D0008FB100148FB000100A000ECC27BD002878
68747 +:1015E000020020218FB3001C8FB200188FB10014AD
68748 +:1015F0008FB000100A000EF727BD00289225000DBD
68749 +:10160000020020218FB3001C8FB200188FB100148C
68750 +:101610008FB000100A000F4827BD002802002021CB
68751 +:101620008FBF00208FB3001C8FB200188FB1001441
68752 +:101630008FB000100A000F1F27BD00288FBF0020A9
68753 +:101640008FB3001C8FB200188FB100148FB0001040
68754 +:1016500003E0000827BD00283C0580008CA202782A
68755 +:101660000440FFFE34A2024024030002AC44000008
68756 +:10167000A04300043C02100003E00008ACA2027882
68757 +:10168000A380001803E00008A38000193C03800039
68758 +:101690008C6202780440FFFE8F82001CAC62024024
68759 +:1016A00024020002A06202443C02100003E0000891
68760 +:1016B000AC6202783C02600003E000088C425404F3
68761 +:1016C0009083003024020005008040213063003FF9
68762 +:1016D0000000482114620005000050219082004C57
68763 +:1016E0009483004E304900FF306AFFFFAD00000CCC
68764 +:1016F000AD000010AD000024950200148D05001C03
68765 +:101700008D0400183042FFFF004910230002110031
68766 +:10171000000237C3004038210086202300A2102B8E
68767 +:101720000082202300A72823AD05001CAD0400186B
68768 +:10173000A5090014A5090020A50A001603E0000869
68769 +:10174000A50A002203E000080000000027BDFFD822
68770 +:10175000AFB200183C128008AFB40020AFB3001C39
68771 +:10176000AFB10014AFBF0024AFB00010365101007C
68772 +:101770003C0260008C4254049222000C3C1408008D
68773 +:10178000929400F7304300FF2402000110620032FF
68774 +:101790000080982124020002146200353650008037
68775 +:1017A0000E00143D000000009202004C2403FF8054
68776 +:1017B0003C0480003042007F000211C024420240FD
68777 +:1017C0000262102100431824AC8300949245000863
68778 +:1017D0009204004C3042007F3C03800614850007D1
68779 +:1017E000004380212402FFFFA22200112402FFFFF8
68780 +:1017F000A62200120A0005D22402FFFF9602002052
68781 +:10180000A222001196020022A62200128E020024BB
68782 +:101810003C048008AE2200143485008090A2004C65
68783 +:1018200034830100A06200108CA2003CAC6200185E
68784 +:101830008C820068AC6200F48C820064AC6200F0C0
68785 +:101840008C82006CAC6200F824020001A0A2006847
68786 +:101850000A0005EE3C0480080E001456000000004B
68787 +:1018600036420080A04000680A0005EE3C04800873
68788 +:10187000A2000068A20000690A0006293C02800854
68789 +:10188000348300808C62003834850100AC62006CC7
68790 +:1018900024020001A062006990A200D59083000894
68791 +:1018A000305100FF3072007F12320019001111C058
68792 +:1018B00024420240026210212403FF8000431824C6
68793 +:1018C0003C048000AC8300943042007F3C038006DF
68794 +:1018D000004380218E02000C1040000D02002021E8
68795 +:1018E0000E00057E0000000026220001305100FF9E
68796 +:1018F0009203003C023410260002102B0002102339
68797 +:101900003063007F022288240A0005F8A203003C0D
68798 +:101910003C088008350401008C8200E03507008017
68799 +:10192000ACE2003C8C8200E0AD02000090E5004C8F
68800 +:10193000908600D590E3004C908400D52402FF806F
68801 +:1019400000A228243063007F308400FF00A62825F1
68802 +:101950000064182A1060000230A500FF38A500803E
68803 +:10196000A0E5004CA10500093C0280089043000E50
68804 +:10197000344400803C058000A043000A8C8300189A
68805 +:101980003C027FFF3442FFFF00621824AC83001842
68806 +:101990008CA201F80440FFFE00000000ACB301C0BF
68807 +:1019A0008FBF00248FB400208FB3001C8FB20018AB
68808 +:1019B0008FB100148FB0001024020002A0A201C455
68809 +:1019C00027BD00283C02100003E00008ACA201F88B
68810 +:1019D00090A2000024420001A0A200003C030800E5
68811 +:1019E0008C6300F4304200FF144300020080302179
68812 +:1019F000A0A0000090A200008F84001C000211C073
68813 +:101A00002442024024830040008220212402FF80DF
68814 +:101A1000008220243063007F3C02800A006218218B
68815 +:101A20003C028000AC44002403E00008ACC300008A
68816 +:101A300094820006908300058C85000C8C86001033
68817 +:101A40008C8700188C88001C8C8400203C010800C6
68818 +:101A5000A42256C63C010800A02356C53C0108003C
68819 +:101A6000AC2556CC3C010800AC2656D03C01080001
68820 +:101A7000AC2756D83C010800AC2856DC3C010800D5
68821 +:101A8000AC2456E003E00008000000003C0280089F
68822 +:101A9000344201008C4400343C038000346504006F
68823 +:101AA000AC6400388C420038AF850028AC62003C42
68824 +:101AB0003C020005AC6200300000000000000000A5
68825 +:101AC00003E00008000000003C020006308400FF34
68826 +:101AD000008220253C028000AC4400300000000061
68827 +:101AE00000000000000000003C0380008C62000049
68828 +:101AF000304200101040FFFD3462040003E0000893
68829 +:101B0000AF82002894C200003C080800950800CA73
68830 +:101B100030E7FFFF0080482101021021A4C200002D
68831 +:101B200094C200003042FFFF00E2102B544000013D
68832 +:101B3000A4C7000094A200003C0308008C6300CC02
68833 +:101B400024420001A4A2000094A200003042FFFF42
68834 +:101B5000144300073C0280080107102BA4A00000DA
68835 +:101B60005440000101003821A4C700003C02800855
68836 +:101B7000344601008CC3002894A200003C0480007D
68837 +:101B80003042FFFE000210C000621021AC82003C17
68838 +:101B90008C82003C006218231860000400000000E2
68839 +:101BA0008CC200240A0006BA244200018CC2002420
68840 +:101BB000AC8200383C020050344200103C038000EC
68841 +:101BC000AC620030000000000000000000000000D7
68842 +:101BD0008C620000304200201040FFFD0000000039
68843 +:101BE00094A200003C04800030420001000210C0BA
68844 +:101BF000004410218C430400AD2300008C420404F7
68845 +:101C0000AD2200043C02002003E00008AC8200305A
68846 +:101C100027BDFFE0AFB20018AFB10014AFB00010A5
68847 +:101C2000AFBF001C94C2000000C080213C1208001D
68848 +:101C3000965200C624420001A6020000960300004E
68849 +:101C400094E2000000E03021144300058FB1003021
68850 +:101C50000E00068F024038210A0006F10000000045
68851 +:101C60008C8300048C82000424420040046100073D
68852 +:101C7000AC8200048C8200040440000400000000D8
68853 +:101C80008C82000024420001AC8200009602000019
68854 +:101C90003042FFFF50520001A600000096220000D3
68855 +:101CA00024420001A62200003C02800834420100C8
68856 +:101CB000962300009442003C144300048FBF001C94
68857 +:101CC00024020001A62200008FBF001C8FB2001862
68858 +:101CD0008FB100148FB0001003E0000827BD002072
68859 +:101CE00027BDFFE03C028008AFBF0018344201006E
68860 +:101CF0008C4800343C03800034690400AC68003830
68861 +:101D00008C42003830E700FFAF890028AC62003C0D
68862 +:101D10003C020005AC620030000000000000000042
68863 +:101D200000000000000000000000000000000000B3
68864 +:101D30008C82000C8C82000C97830016AD22000070
68865 +:101D40008C82001000604021AD2200048C820018BB
68866 +:101D5000AD2200088C82001CAD22000C8CA2001465
68867 +:101D6000AD2200108C820020AD220014908200056C
68868 +:101D7000304200FF00021200AD2200188CA20018B1
68869 +:101D8000AD22001C8CA2000CAD2200208CA2001001
68870 +:101D9000AD2200248CA2001CAD2200288CA20020C1
68871 +:101DA000AD22002C3402FFFFAD260030AD20003400
68872 +:101DB000506200013408FFFFAD28003850E00011E8
68873 +:101DC0003C0280083C048008348401009482005066
68874 +:101DD0003042FFFFAD22003C9483004494850044D0
68875 +:101DE000240200013063FFFF000318C200641821C1
68876 +:101DF0009064006430A5000700A210040A00075C8C
68877 +:101E00000044102534420100AD20003C94430044BE
68878 +:101E1000944400443063FFFF000318C2006218219D
68879 +:101E200030840007906500642402000100821004E1
68880 +:101E30000002102700451024A0620064000000008A
68881 +:101E400000000000000000003C0200063442004098
68882 +:101E50003C038000AC620030000000000000000085
68883 +:101E6000000000008C620000304200101040FFFDB6
68884 +:101E70003C06800834C201503463040034C7014A70
68885 +:101E800034C4013434C5014034C60144AFA200104B
68886 +:101E90000E0006D2AF8300288FBF001803E00008B1
68887 +:101EA00027BD00208F8300143C0608008CC600E884
68888 +:101EB0008F82001C30633FFF000319800046102111
68889 +:101EC000004310212403FF80004318243C068000B7
68890 +:101ED000ACC300283042007F3C03800C004330211B
68891 +:101EE00090C2000D30A500FF0000382134420010E0
68892 +:101EF000A0C2000D8F8900143C028008344201000A
68893 +:101F00009443004400091382304800032402000176
68894 +:101F1000A4C3000E1102000B2902000210400005AC
68895 +:101F2000240200021100000C240300010A0007A48F
68896 +:101F30000000182111020006000000000A0007A49A
68897 +:101F4000000018218CC2002C0A0007A424430001C1
68898 +:101F50008CC20014244300018CC200180043102BD3
68899 +:101F60005040000A240700012402002714A20003A5
68900 +:101F70003C0380080A0007B1240700013463010014
68901 +:101F80009462004C24420001A462004C00091382B8
68902 +:101F9000304300032C620002104000090080282119
68903 +:101FA000146000040000000094C200340A0007C15D
68904 +:101FB0003046FFFF8CC600380A0007C10080282188
68905 +:101FC000000030213C040800248456C00A000706A3
68906 +:101FD0000000000027BDFF90AFB60068AFB50064F9
68907 +:101FE000AFB40060AFB3005CAFB20058AFB1005403
68908 +:101FF000AFBF006CAFB000508C9000000080B021EB
68909 +:102000003C0208008C4200E8960400328F83001CDA
68910 +:102010002414FF8030843FFF0062182100042180D7
68911 +:1020200000641821007410243C13800000A090214B
68912 +:1020300090A50000AE620028920400323C02800CA1
68913 +:102040003063007F00628821308400C02402004099
68914 +:10205000148200320000A8218E3500388E2200182C
68915 +:102060001440000224020001AE2200189202003C3B
68916 +:10207000304200201440000E8F83001C000511C068
68917 +:102080002442024000621821306400783C02008043
68918 +:102090000082202500741824AE630800AE64081086
68919 +:1020A0008E2200188E03000800431021AE22001873
68920 +:1020B0008E22002C8E230018244200010062182B6F
68921 +:1020C0001060004300000000924200002442000122
68922 +:1020D000A24200003C0308008C6300F4304200FF81
68923 +:1020E00050430001A2400000924200008F84001C77
68924 +:1020F000000211C024420240248300403063007F6C
68925 +:10210000008220213C02800A0094202400621821D1
68926 +:10211000AE6400240A0008D2AEC30000920300326D
68927 +:102120002402FFC000431024304200FF1440000589
68928 +:1021300024020001AE220018962200340A00084250
68929 +:102140003055FFFF8E22001424420001AE220018F9
68930 +:102150009202003000021600000216030441001C27
68931 +:10216000000000009602003227A400100080282101
68932 +:10217000A7A20016960200320000302124070001B9
68933 +:102180003042FFFFAF8200140E000706AFA0001C14
68934 +:10219000960200328F83001C3C0408008C8400E807
68935 +:1021A00030423FFF000211800064182100621821B4
68936 +:1021B00000741024AE62002C3063007F3C02800E5D
68937 +:1021C000006218219062000D3042007FA062000D75
68938 +:1021D0009222000D304200105040007892420000E0
68939 +:1021E0003C028008344401009482004C8EC30000FD
68940 +:1021F0003C130800967300C62442FFFFA482004CE3
68941 +:10220000946200329623000E3054FFFF3070FFFFBF
68942 +:102210003C0308008C6300D000701807A7A30038A7
68943 +:102220009482003E3063FFFF3042FFFF14620007DC
68944 +:10223000000000008C8200303C038000244200300B
68945 +:10224000AC62003C0A00086A8C82002C9482004038
68946 +:102250003042FFFF5462000927A400408C820038FE
68947 +:102260003C03800024420030AC62003C8C8200348D
68948 +:10227000AC6200380A0008793C03800027A50038CA
68949 +:1022800027A60048026038210E00068FA7A000484C
68950 +:102290008FA300403C02800024630030AC43003830
68951 +:1022A0008FA30044AC43003C3C0380003C0200058B
68952 +:1022B000AC6200303C028008344401009482004249
68953 +:1022C000346304003042FFFF0202102B1440000769
68954 +:1022D000AF8300289482004E9483004202021021B2
68955 +:1022E000004310230A00088F3043FFFF9483004E01
68956 +:1022F00094820042026318210050102300621823C8
68957 +:102300003063FFFF3C028008344401009482003CAB
68958 +:102310003042FFFF14430003000000000A00089F42
68959 +:10232000240300019482003C3042FFFF0062102B26
68960 +:10233000144000058F8200289482003C0062102324
68961 +:102340003043FFFF8F820028AC550000AC400004F2
68962 +:10235000AC540008AC43000C3C02000634420010B0
68963 +:102360003C038000AC620030000000000000000070
68964 +:10237000000000008C620000304200101040FFFDA1
68965 +:102380003C04800834840100001018C20064182145
68966 +:102390009065006432020007240600010046100424
68967 +:1023A00000451025A0620064948300429622000E2E
68968 +:1023B00050430001A386001892420000244200010D
68969 +:1023C000A24200003C0308008C6300F4304200FF8E
68970 +:1023D00050430001A2400000924200008F84001C84
68971 +:1023E000000211C0244202402483004000822021C8
68972 +:1023F0002402FF80008220243063007F3C02800A98
68973 +:10240000006218213C028000AC440024AEC30000EE
68974 +:102410008FBF006C8FB600688FB500648FB400600A
68975 +:102420008FB3005C8FB200588FB100548FB0005052
68976 +:1024300003E0000827BD007027BDFFD8AFB3001C24
68977 +:10244000AFB20018AFB10014AFB00010AFBF0020A2
68978 +:102450000080982100E0802130B1FFFF0E000D8444
68979 +:1024600030D200FF0000000000000000000000006B
68980 +:102470008F8200208F830024AC510000AC520004F6
68981 +:10248000AC530008AC40000CAC400010AC40001451
68982 +:10249000AC4000189463001E02038025AC50001C61
68983 +:1024A0000000000000000000000000002404000103
68984 +:1024B0008FBF00208FB3001C8FB200188FB10014A3
68985 +:1024C0008FB000100A000DB827BD002830A5FFFF0F
68986 +:1024D0000A0008DC30C600FF3C02800834430100DB
68987 +:1024E0009462000E3C080800950800C63046FFFFC5
68988 +:1024F00014C000043402FFFF946500EA0A000929B1
68989 +:102500008F84001C10C20027000000009462004E5F
68990 +:102510009464003C3045FFFF00A6102300A6182B52
68991 +:102520003087FFFF106000043044FFFF00C5102318
68992 +:1025300000E210233044FFFF0088102B1040000EF3
68993 +:1025400000E810233C028008344401002403000109
68994 +:1025500034420080A44300162402FFFFA482000E30
68995 +:10256000948500EA8F84001C0000302130A5FFFF15
68996 +:102570000A0009013C0760200044102A10400009AD
68997 +:102580003C0280083443008094620016304200010F
68998 +:10259000104000043C0280009442007E244200145B
68999 +:1025A000A462001603E000080000000027BDFFE061
69000 +:1025B0003C028008AFBF001CAFB0001834420100DD
69001 +:1025C000944300429442004C104000193068FFFFD1
69002 +:1025D0009383001824020001146200298FBF001C9D
69003 +:1025E0003C06800834D00100000810C200501021C1
69004 +:1025F000904200643103000734C70148304200FFB5
69005 +:10260000006210073042000134C9014E34C4012C6D
69006 +:1026100034C5013E1040001634C601420E0006D2F9
69007 +:10262000AFA90010960200420A0009463048FFFF99
69008 +:102630003C028008344401009483004494820042A8
69009 +:102640001043000F8FBF001C94820044A4820042FC
69010 +:1026500094820050A482004E8C820038AC820030FC
69011 +:1026600094820040A482003E9482004AA4820048E2
69012 +:102670008FBF001C8FB000180A00090427BD00207E
69013 +:102680008FB0001803E0000827BD002027BDFFA081
69014 +:10269000AFB1004C3C118000AFBF0058AFB3005445
69015 +:1026A000AFB20050AFB000483626018890C2000398
69016 +:1026B0003044007FA3A400108E32018090C200003D
69017 +:1026C0003043007F240200031062003BAF92001CE5
69018 +:1026D00028620004104000062402000424020002C4
69019 +:1026E000106200098FBF00580A000B0F8FB300540F
69020 +:1026F0001062004D240200051062014E8FBF005889
69021 +:102700000A000B0F8FB30054000411C002421021C5
69022 +:102710002404FF8024420240004410242643004049
69023 +:10272000AE2200243063007F3C02800A0062182140
69024 +:102730009062003CAFA3003C00441025A062003C26
69025 +:102740008FA3003C9062003C304200401040016C7E
69026 +:102750008FBF00583C108008A3800018361001007D
69027 +:102760008E0200E08C63003427A4003C27A50010F3
69028 +:10277000004310210E0007C3AE0200E093A2001038
69029 +:102780003C038000A20200D58C6202780440FFFE68
69030 +:102790008F82001CAC62024024020002A06202444C
69031 +:1027A0003C021000AC6202780E0009390000000003
69032 +:1027B0000A000B0E8FBF00583C05800890C3000133
69033 +:1027C00090A2000B1443014E8FBF005834A4008028
69034 +:1027D0008C8200189082004C90A200083C0260009D
69035 +:1027E0008C4254048C8300183C027FFF3442FFFF6C
69036 +:1027F000006218243C0208008C4200B4AC8300182C
69037 +:102800003C038000244200013C010800AC2200B4DB
69038 +:102810008C6201F80440FFFE8F82001CAC6201C094
69039 +:102820000A000AD6240200023C10800890C300016E
69040 +:102830009202000B144301328FBF005827A40018E6
69041 +:1028400036050110240600033C0260008C4254044B
69042 +:102850000E000E470000000027A40028360501F0F6
69043 +:102860000E000E47240600038FA200283603010045
69044 +:10287000AE0200648FA2002CAE0200688FA200306E
69045 +:10288000AE02006C93A40018906300D52402FF8070
69046 +:102890000082102400431025304900FF3084007F5F
69047 +:1028A0003122007F0082102A544000013929008023
69048 +:1028B000000411C0244202402403FF800242102180
69049 +:1028C00000431024AE220094264200403042007F94
69050 +:1028D0003C038006004340218FA3001C2402FFFF1D
69051 +:1028E000AFA800403C130800927300F71062003359
69052 +:1028F00093A2001995030014304400FF3063FFFFDA
69053 +:102900000064182B106000100000000095040014F3
69054 +:102910008D07001C8D0600183084FFFF0044202323
69055 +:102920000004210000E438210000102100E4202BE5
69056 +:1029300000C2302100C43021AD07001CAD060018D4
69057 +:102940000A000A2F93A20019950400148D07001C99
69058 +:102950008D0600183084FFFF008220230004210030
69059 +:10296000000010210080182100C2302300E4202B39
69060 +:1029700000C4302300E33823AD07001CAD06001867
69061 +:1029800093A200198FA30040A462001497A2001A1A
69062 +:10299000A46200168FA2001CAC6200108FA2001C63
69063 +:1029A000AC62000C93A20019A462002097A2001A46
69064 +:1029B000A46200228FA2001CAC6200243C048008A8
69065 +:1029C000348300808C6200388FA20020012088218F
69066 +:1029D000AC62003C8FA20020AC82000093A20018E1
69067 +:1029E000A062004C93A20018A0820009A0600068B9
69068 +:1029F00093A20018105100512407FF803229007F54
69069 +:102A0000000911C024420240024210213046007FDA
69070 +:102A10003C03800000471024AC6200943C02800616
69071 +:102A200000C2302190C2003CAFA60040000020212F
69072 +:102A300000471025A0C2003C8FA80040950200026C
69073 +:102A4000950300148D07001C3042FFFF3063FFFF29
69074 +:102A50008D060018004310230002110000E2382107
69075 +:102A600000E2102B00C4302100C23021AD07001C51
69076 +:102A7000AD06001895020002A5020014A50000167C
69077 +:102A80008D020008AD0200108D020008AD02000C9E
69078 +:102A900095020002A5020020A50000228D02000878
69079 +:102AA000AD0200249102003C304200401040001A68
69080 +:102AB000262200013C108008A3A90038A38000183A
69081 +:102AC000361001008E0200E08D03003427A4004080
69082 +:102AD00027A50038004310210E0007C3AE0200E016
69083 +:102AE00093A200383C038000A20200D58C620278D9
69084 +:102AF0000440FFFE8F82001CAC62024024020002F0
69085 +:102B0000A06202443C021000AC6202780E00093957
69086 +:102B100000000000262200013043007F14730004EF
69087 +:102B2000004020212403FF8002231024004320269C
69088 +:102B300093A200180A000A4B309100FF93A40018DA
69089 +:102B40008FA3001C2402FFFF1062000A308900FFDF
69090 +:102B500024820001248300013042007F14530005C9
69091 +:102B6000306900FF2403FF800083102400431026F7
69092 +:102B7000304900FF3C028008904200080120882173
69093 +:102B8000305000FF123000193222007F000211C0C5
69094 +:102B900002421021244202402403FF8000431824F3
69095 +:102BA0003C048000AC8300943042007F3C038006EC
69096 +:102BB000004310218C43000C004020211060000BCA
69097 +:102BC000AFA200400E00057E000000002623000199
69098 +:102BD0002405FF803062007F145300020225202468
69099 +:102BE000008518260A000AAF307100FF3C048008F7
69100 +:102BF000348400808C8300183C027FFF3442FFFF46
69101 +:102C000000621824AC8300183C0380008C6201F839
69102 +:102C10000440FFFE00000000AC7201C0240200026C
69103 +:102C2000A06201C43C021000AC6201F80A000B0E65
69104 +:102C30008FBF00583C04800890C300019082000BB5
69105 +:102C40001443002F8FBF0058349000809202000878
69106 +:102C500030420040104000200000000092020008B6
69107 +:102C60000002160000021603044100050240202164
69108 +:102C70000E000ECC240500930A000B0E8FBF0058E7
69109 +:102C80009202000924030018304200FF1443000D93
69110 +:102C900002402021240500390E000E64000030217E
69111 +:102CA0000E0003328F84001C8F82FF9424030012D5
69112 +:102CB000A04300090E00033D8F84001C0A000B0E88
69113 +:102CC0008FBF0058240500360E000E64000030212E
69114 +:102CD0000A000B0E8FBF00580E0003320240202165
69115 +:102CE000920200058F84001C344200200E00033D38
69116 +:102CF000A20200050E0010758F84001C8FBF0058C3
69117 +:102D00008FB300548FB200508FB1004C8FB0004889
69118 +:102D100003E0000827BD00603C0280083445010044
69119 +:102D20003C0280008C42014094A3000E0000302140
69120 +:102D300000402021AF82001C3063FFFF3402FFFF00
69121 +:102D4000106200063C0760202402FFFFA4A2000ED0
69122 +:102D500094A500EA0A00090130A5FFFF03E000087E
69123 +:102D60000000000027BDFFC83C0280003C06800830
69124 +:102D7000AFB5002CAFB1001CAFBF0030AFB400281E
69125 +:102D8000AFB30024AFB20020AFB00018345101003F
69126 +:102D900034C501008C4301008E2200148CA400E491
69127 +:102DA0000000A821AF83001C0044102318400052EB
69128 +:102DB000A38000188E22001400005021ACA200E471
69129 +:102DC00090C3000890A200D53073007FA3A200102A
69130 +:102DD0008CB200E08CB400E4304200FF1053003BA2
69131 +:102DE00093A200108F83001C2407FF80000211C0F3
69132 +:102DF0000062102124420240246300400047102456
69133 +:102E00003063007F3C0980003C08800A006818217C
69134 +:102E1000AD2200248C62003427A4001427A50010E2
69135 +:102E2000024280210290102304400028AFA3001426
69136 +:102E30009062003C00E21024304200FF1440001970
69137 +:102E4000020090219062003C34420040A062003CAD
69138 +:102E50008F86001C93A3001024C200403042007FE4
69139 +:102E6000004828213C0208008C4200F42463000141
69140 +:102E7000306400FF14820002A3A30010A3A000107E
69141 +:102E800093A20010AFA50014000211C0244202401A
69142 +:102E900000C2102100471024AD2200240A000B4577
69143 +:102EA00093A200100E0007C3000000003C0280083F
69144 +:102EB00034420100AC5000E093A30010240A00014A
69145 +:102EC000A04300D50A000B4593A200102402000184
69146 +:102ED000154200093C0380008C6202780440FFFE2A
69147 +:102EE0008F82001CAC62024024020002A0620244F5
69148 +:102EF0003C021000AC6202789222000B2403000214
69149 +:102F0000304200FF144300720000000096220008C7
69150 +:102F1000304300FF24020082146200402402008437
69151 +:102F20003C028000344901008D22000C95230006EC
69152 +:102F3000000216023063FFFF3045003F24020027E5
69153 +:102F400010A2000FAF83001428A200281040000830
69154 +:102F5000240200312402002110A2000924020025CD
69155 +:102F600010A20007938200190A000BBD00000000A8
69156 +:102F700010A20007938200190A000BBD0000000098
69157 +:102F80000E000777012020210A000C3D0000000000
69158 +:102F90003C0380008C6202780440FFFE8F82001C9C
69159 +:102FA000AC62024024020002A06202443C02100013
69160 +:102FB000AC6202780A000C3D000000009523000678
69161 +:102FC000912400058D25000C8D2600108D270018FA
69162 +:102FD0008D28001C8D290020244200013C0108009E
69163 +:102FE000A42356C63C010800A02456C53C01080095
69164 +:102FF000AC2556CC3C010800AC2656D03C0108005C
69165 +:10300000AC2756D83C010800AC2856DC3C0108002F
69166 +:10301000AC2956E00A000C3DA38200191462000A94
69167 +:10302000240200813C02800834420100944500EAF9
69168 +:10303000922600058F84001C30A5FFFF30C600FFDC
69169 +:103040000A000BFE3C0760211462005C00000000D7
69170 +:103050009222000A304300FF306200201040000737
69171 +:10306000306200403C02800834420100944500EA8E
69172 +:103070008F84001C0A000BFC24060040104000074F
69173 +:10308000000316003C02800834420100944500EA27
69174 +:103090008F84001C0A000BFC24060041000216036A
69175 +:1030A000044100463C02800834420100944500EA95
69176 +:1030B0008F84001C2406004230A5FFFF3C076019E6
69177 +:1030C0000E000901000000000A000C3D0000000095
69178 +:1030D0009222000B24040016304200FF1044000628
69179 +:1030E0003C0680009222000B24030017304200FFB0
69180 +:1030F000144300320000000034C5010090A2000B10
69181 +:10310000304200FF1444000B000080218CA20020FC
69182 +:103110008CA400202403FF800043102400021140EF
69183 +:103120003084007F004410253C032000004310251C
69184 +:10313000ACC2083094A2000800021400000214037C
69185 +:10314000044200012410000194A2000830420080D3
69186 +:103150005040001A0200A82194A20008304220002A
69187 +:10316000504000160200A8218CA300183C021C2D20
69188 +:10317000344219ED106200110200A8213C0208003F
69189 +:103180008C4200D4104000053C0280082403000457
69190 +:1031900034420100A04300FC3C028008344201009C
69191 +:1031A000944500EA8F84001C2406000630A5FFFF2A
69192 +:1031B0000E0009013C0760210200A8210E00093918
69193 +:1031C000000000009222000A304200081040000473
69194 +:1031D00002A010210E0013790000000002A01021AF
69195 +:1031E0008FBF00308FB5002C8FB400288FB3002420
69196 +:1031F0008FB200208FB1001C8FB0001803E00008D0
69197 +:1032000027BD00382402FF80008220243C02900069
69198 +:1032100034420007008220253C028000AC4400209C
69199 +:103220003C0380008C6200200440FFFE0000000090
69200 +:1032300003E00008000000003C0380002402FF803F
69201 +:10324000008220243462000700822025AC64002024
69202 +:103250008C6200200440FFFE0000000003E0000834
69203 +:103260000000000027BDFFD8AFB3001CAFB10014B1
69204 +:10327000AFB00010AFBF0020AFB200183C1180000B
69205 +:103280003C0280088E32002034530100AE2400201E
69206 +:10329000966300EA000514003C074000004738250B
69207 +:1032A00000A08021000030210E0009013065FFFFE1
69208 +:1032B000240200A1160200022402FFFFA2620009FC
69209 +:1032C000AE3200208FBF00208FB3001C8FB20018D9
69210 +:1032D0008FB100148FB0001003E0000827BD002854
69211 +:1032E0003C0280082403000527BDFFE834420100AA
69212 +:1032F000A04300FCAFBF00103C0280008C420100E4
69213 +:10330000240500A1004020210E000C67AF82001CA4
69214 +:103310003C0380008C6202780440FFFE8F82001C18
69215 +:103320008FBF001027BD0018AC62024024020002CB
69216 +:10333000A06202443C021000AC62027803E0000884
69217 +:103340000000000027BDFFE83C068000AFBF001072
69218 +:1033500034C7010094E20008304400FF3883008243
69219 +:10336000388200842C6300012C4200010062182581
69220 +:103370001060002D24020083938200195040003B0E
69221 +:103380008FBF00103C020800904256CC8CC4010054
69222 +:103390003C06080094C656C63045003F38A30032AC
69223 +:1033A00038A2003F2C6300012C4200010062182566
69224 +:1033B000AF84001CAF860014A380001914600007BE
69225 +:1033C00000E020212402002014A2001200000000CE
69226 +:1033D0003402FFFF14C2000F00000000240200208E
69227 +:1033E00014A2000500E028218CE300142402FFFF52
69228 +:1033F0005062000B8FBF00103C040800248456C0AC
69229 +:10340000000030210E000706240700010A000CD638
69230 +:103410008FBF00100E000777000000008FBF001064
69231 +:103420000A00093927BD001814820004240200850F
69232 +:103430008CC501040A000CE1000020211482000662
69233 +:103440002482FF808CC50104240440008FBF00103B
69234 +:103450000A00016727BD0018304200FF2C4200021D
69235 +:1034600010400004240200228FBF00100A000B2726
69236 +:1034700027BD0018148200048F8200248FBF001023
69237 +:103480000A000C8627BD00188C42000C1040001E5C
69238 +:1034900000E0282190E300092402001814620003D0
69239 +:1034A000240200160A000CFC240300081462000722
69240 +:1034B00024020017240300123C02800834420080DA
69241 +:1034C000A04300090A000D0994A7000854620007F0
69242 +:1034D00094A700088F82FF942404FFFE9043000508
69243 +:1034E00000641824A043000594A7000890A6001BC0
69244 +:1034F0008CA4000094A500068FBF001000073C00BC
69245 +:103500000A0008DC27BD00188FBF001003E0000888
69246 +:1035100027BD00188F8500243C04800094A2002A57
69247 +:103520008CA30034000230C02402FFF000C210243B
69248 +:1035300000621821AC83003C8CA200303C03800068
69249 +:10354000AC8200383C02005034420010AC620030C3
69250 +:103550000000000000000000000000008C6200007D
69251 +:10356000304200201040FFFD30C20008104000062D
69252 +:103570003C0280008C620408ACA200208C62040C27
69253 +:103580000A000D34ACA200248C430400ACA300203C
69254 +:103590008C420404ACA200243C0300203C028000C6
69255 +:1035A000AC4300303C0480008C8200300043102487
69256 +:1035B0001440FFFD8F8600243C020040AC820030A6
69257 +:1035C00094C3002A94C2002894C4002C94C5002EF1
69258 +:1035D00024630001004410213064FFFFA4C20028CE
69259 +:1035E00014850002A4C3002AA4C0002A03E0000836
69260 +:1035F000000000008F84002427BDFFE83C05800404
69261 +:1036000024840010AFBF00100E000E472406000AED
69262 +:103610008F840024948200129483002E3042000F85
69263 +:10362000244200030043180424027FFF0043102BB0
69264 +:1036300010400002AC8300000000000D0E000D13CE
69265 +:10364000000000008F8300248FBF001027BD0018EA
69266 +:10365000946200149463001A3042000F00021500B7
69267 +:10366000006218253C02800003E00008AC4300A083
69268 +:103670008F8300243C028004944400069462001A64
69269 +:103680008C650000A4640016004410233042FFFF44
69270 +:103690000045102B03E00008384200018F8400240D
69271 +:1036A0003C0780049486001A8C85000094E2000692
69272 +:1036B000A482001694E3000600C310233042FFFFEB
69273 +:1036C0000045102B384200011440FFF8A483001677
69274 +:1036D00003E00008000000008F8400243C02800406
69275 +:1036E000944200069483001A8C850000A482001680
69276 +:1036F000006210233042FFFF0045102B38420001CA
69277 +:103700005040000D8F850024006030213C0780046C
69278 +:1037100094E20006A482001694E3000600C310237E
69279 +:103720003042FFFF0045102B384200011440FFF8E3
69280 +:10373000A48300168F8500243C03800034620400BB
69281 +:103740008CA40020AF820020AC6400388CA200243E
69282 +:10375000AC62003C3C020005AC62003003E00008B3
69283 +:10376000ACA000048F8400243C0300068C8200047B
69284 +:1037700000021140004310253C038000AC62003081
69285 +:103780000000000000000000000000008C6200004B
69286 +:10379000304200101040FFFD34620400AC80000491
69287 +:1037A00003E00008AF8200208F86002427BDFFE0E1
69288 +:1037B000AFB10014AFB00010AFBF00188CC300044D
69289 +:1037C0008CC500248F820020309000FF94C4001A22
69290 +:1037D00024630001244200202484000124A7002047
69291 +:1037E000ACC30004AF820020A4C4001AACC70024FC
69292 +:1037F00004A100060000882104E2000594C2001A1A
69293 +:103800008CC2002024420001ACC2002094C2001AE5
69294 +:1038100094C300282E040001004310262C4200010E
69295 +:10382000004410245040000594C2001A24020001F4
69296 +:10383000ACC2000894C2001A94C300280010202BC8
69297 +:10384000004310262C4200010044102514400007BC
69298 +:10385000000000008CC20008144000042402001084
69299 +:103860008CC300041462000F8F8500240E000DA786
69300 +:10387000241100018F820024944300289442001AEE
69301 +:1038800014430003000000000E000D1300000000B0
69302 +:10389000160000048F8500240E000D840000000037
69303 +:1038A0008F85002494A2001E94A4001C24420001D1
69304 +:1038B0003043FFFF14640002A4A2001EA4A0001E57
69305 +:1038C0001200000A3C02800494A2001494A3001A7F
69306 +:1038D0003042000F00021500006218253C028000F3
69307 +:1038E000AC4300A00A000E1EACA0000894420006E3
69308 +:1038F00094A3001A8CA40000A4A200160062102356
69309 +:103900003042FFFF0044102B384200011040000DF0
69310 +:1039100002201021006030213C07800494E2000660
69311 +:10392000A4A2001694E3000600C310233042FFFF58
69312 +:103930000044102B384200011440FFF8A4A30016E5
69313 +:10394000022010218FBF00188FB100148FB000101B
69314 +:1039500003E0000827BD002003E00008000000008D
69315 +:103960008F82002C3C03000600021140004310250A
69316 +:103970003C038000AC62003000000000000000004A
69317 +:10398000000000008C620000304200101040FFFD7B
69318 +:1039900034620400AF82002803E00008AF80002CEE
69319 +:1039A00003E000080000102103E000080000000010
69320 +:1039B0003084FFFF30A5FFFF0000182110800007B2
69321 +:1039C000000000003082000110400002000420428C
69322 +:1039D000006518210A000E3D0005284003E000089C
69323 +:1039E0000060102110C0000624C6FFFF8CA200005A
69324 +:1039F00024A50004AC8200000A000E4724840004C1
69325 +:103A000003E000080000000010A0000824A3FFFF4E
69326 +:103A1000AC86000000000000000000002402FFFF50
69327 +:103A20002463FFFF1462FFFA2484000403E000080B
69328 +:103A3000000000003C0280083442008024030001A2
69329 +:103A4000AC43000CA4430010A4430012A443001490
69330 +:103A500003E00008A44300168F82002427BDFFD88E
69331 +:103A6000AFB3001CAFB20018AFB10014AFB000107C
69332 +:103A7000AFBF00208C47000C248200802409FF8007
69333 +:103A80003C08800E3043007F008080213C0A80008B
69334 +:103A9000004920240068182130B100FF30D200FF17
69335 +:103AA00010E000290000982126020100AD44002CFE
69336 +:103AB000004928243042007F004820219062000005
69337 +:103AC00024030050304200FF1443000400000000B3
69338 +:103AD000AD45002C948200EA3053FFFF0E000D84A8
69339 +:103AE000000000008F8200248F83002000112C0032
69340 +:103AF0009442001E001224003484000100A22825F4
69341 +:103B00003C02400000A22825AC7000008FBF0020BE
69342 +:103B1000AC6000048FB20018AC7300088FB10014C1
69343 +:103B2000AC60000C8FB3001CAC6400108FB00010B0
69344 +:103B3000AC60001424040001AC60001827BD00280C
69345 +:103B40000A000DB8AC65001C8FBF00208FB3001CAD
69346 +:103B50008FB200188FB100148FB0001003E000087E
69347 +:103B600027BD00283C06800034C201009043000FAE
69348 +:103B7000240200101062000E2865001110A000073A
69349 +:103B800024020012240200082405003A10620006F4
69350 +:103B90000000302103E0000800000000240500358B
69351 +:103BA0001462FFFC000030210A000E6400000000D7
69352 +:103BB0008CC200748F83FF9424420FA003E000089E
69353 +:103BC000AC62000C27BDFFE8AFBF00100E0003423F
69354 +:103BD000240500013C0480088FBF0010240200016E
69355 +:103BE00034830080A462001227BD00182402000163
69356 +:103BF00003E00008A080001A27BDFFE0AFB2001864
69357 +:103C0000AFB10014AFB00010AFBF001C30B2FFFF67
69358 +:103C10000E000332008088213C028008345000806E
69359 +:103C20009202000924030004304200FF1443000CF8
69360 +:103C30003C028008124000082402000A0E000E5BBD
69361 +:103C400000000000920200052403FFFE0043102440
69362 +:103C5000A202000524020012A20200093C02800810
69363 +:103C600034420080022020210E00033DA0400027A6
69364 +:103C700016400003022020210E000EBF00000000AD
69365 +:103C800002202021324600FF8FBF001C8FB2001897
69366 +:103C90008FB100148FB00010240500380A000E64A4
69367 +:103CA00027BD002027BDFFE0AFBF001CAFB200184A
69368 +:103CB000AFB10014AFB000100E00033200808021BD
69369 +:103CC0000E000E5B000000003C02800834450080BE
69370 +:103CD00090A2000924120018305100FF1232000394
69371 +:103CE0000200202124020012A0A2000990A20005D7
69372 +:103CF0002403FFFE004310240E00033DA0A2000594
69373 +:103D00000200202124050020163200070000302187
69374 +:103D10008FBF001C8FB200188FB100148FB000103D
69375 +:103D20000A00034227BD00208FBF001C8FB200187D
69376 +:103D30008FB100148FB00010240500390A000E6402
69377 +:103D400027BD002027BDFFE83C028000AFB0001077
69378 +:103D5000AFBF0014344201009442000C2405003629
69379 +:103D60000080802114400012304600FF0E00033214
69380 +:103D7000000000003C02800834420080240300124E
69381 +:103D8000A043000990430005346300100E000E5B51
69382 +:103D9000A04300050E00033D020020210200202167
69383 +:103DA0000E000342240500200A000F3C0000000022
69384 +:103DB0000E000E64000000000E00033202002021FD
69385 +:103DC0003C0280089043001B2405FF9F0200202135
69386 +:103DD000006518248FBF00148FB00010A043001B93
69387 +:103DE0000A00033D27BD001827BDFFE0AFBF001844
69388 +:103DF000AFB10014AFB0001030B100FF0E000332BD
69389 +:103E0000008080213C02800824030012344200809C
69390 +:103E10000E000E5BA04300090E00033D02002021AE
69391 +:103E200002002021022030218FBF00188FB1001422
69392 +:103E30008FB00010240500350A000E6427BD002055
69393 +:103E40003C0480089083000E9082000A1443000B0B
69394 +:103E5000000028218F82FF942403005024050001D4
69395 +:103E600090420000304200FF1443000400000000B4
69396 +:103E70009082000E24420001A082000E03E00008A0
69397 +:103E800000A010213C0380008C6201F80440FFFE7A
69398 +:103E900024020002AC6401C0A06201C43C02100014
69399 +:103EA00003E00008AC6201F827BDFFE0AFB20018E4
69400 +:103EB0003C128008AFB10014AFBF001CAFB00010BF
69401 +:103EC00036510080922200092403000A304200FF8C
69402 +:103ED0001443003E000000008E4300048E22003890
69403 +:103EE000506200808FBF001C92220000240300500B
69404 +:103EF000304200FF144300253C0280008C42014008
69405 +:103F00008E4300043642010002202821AC43001CED
69406 +:103F10009622005C8E2300383042FFFF00021040E2
69407 +:103F200000621821AE23001C8E4300048E2400384A
69408 +:103F30009622005C006418233042FFFF0003184300
69409 +:103F4000000210400043102A10400006000000004C
69410 +:103F50008E4200048E230038004310230A000FAA6B
69411 +:103F6000000220439622005C3042FFFF0002204006
69412 +:103F70003C0280083443010034420080ACA4002C91
69413 +:103F8000A040002424020001A062000C0E000F5E7D
69414 +:103F900000000000104000538FBF001C3C02800056
69415 +:103FA0008C4401403C0380008C6201F80440FFFE19
69416 +:103FB00024020002AC6401C0A06201C43C021000F3
69417 +:103FC000AC6201F80A0010078FBF001C92220009A2
69418 +:103FD00024030010304200FF144300043C02800020
69419 +:103FE0008C4401400A000FEE0000282192220009B3
69420 +:103FF00024030016304200FF14430006240200147C
69421 +:10400000A22200093C0280008C4401400A001001F9
69422 +:104010008FBF001C8E2200388E23003C00431023EB
69423 +:10402000044100308FBF001C92220027244200016F
69424 +:10403000A2220027922200272C42000414400016DE
69425 +:104040003C1080009222000924030004304200FF4B
69426 +:10405000144300093C0280008C4401408FBF001CC7
69427 +:104060008FB200188FB100148FB000102405009398
69428 +:104070000A000ECC27BD00208C440140240500938B
69429 +:104080008FBF001C8FB200188FB100148FB00010CA
69430 +:104090000A000F4827BD00208E0401400E000332A5
69431 +:1040A000000000008E4200042442FFFFAE420004E4
69432 +:1040B0008E22003C2442FFFFAE22003C0E00033D56
69433 +:1040C0008E0401408E0401408FBF001C8FB2001887
69434 +:1040D0008FB100148FB00010240500040A000342C1
69435 +:1040E00027BD00208FB200188FB100148FB00010D0
69436 +:1040F00003E0000827BD00203C0680008CC2018838
69437 +:104100003C038008346500809063000E00021402B6
69438 +:10411000304400FF306300FF1464000E3C0280084E
69439 +:1041200090A20026304200FF104400098F82FF94C5
69440 +:10413000A0A400262403005090420000304200FF5B
69441 +:1041400014430006000000000A0005A18CC4018091
69442 +:104150003C02800834420080A044002603E00008AE
69443 +:104160000000000027BDFFE030E700FFAFB20018FD
69444 +:10417000AFBF001CAFB10014AFB0001000809021A1
69445 +:1041800014E0000630C600FF000000000000000D33
69446 +:10419000000000000A001060240001163C038008A3
69447 +:1041A0009062000E304200FF14460023346200800B
69448 +:1041B00090420026304200FF1446001F000000001D
69449 +:1041C0009062000F304200FF1446001B0000000008
69450 +:1041D0009062000A304200FF144600038F90FF9463
69451 +:1041E0000000000D8F90FF948F82FF983C1180009B
69452 +:1041F000AE05003CAC450000A066000A0E0003328C
69453 +:104200008E240100A20000240E00033D8E24010034
69454 +:104210003C0380008C6201F80440FFFE240200028F
69455 +:10422000AC7201C0A06201C43C021000AC6201F893
69456 +:104230000A0010618FBF001C000000000000000D8C
69457 +:10424000000000002400013F8FBF001C8FB2001847
69458 +:104250008FB100148FB0001003E0000827BD0020CC
69459 +:104260008F83FF943C0280008C44010034420100A3
69460 +:104270008C65003C9046001B0A00102724070001B3
69461 +:104280003C0280089043000E9042000A0043102632
69462 +:10429000304200FF03E000080002102B27BDFFE0C2
69463 +:1042A0003C028008AFB10014AFB00010AFBF0018DF
69464 +:1042B0003450008092020005240300303042003068
69465 +:1042C00014430085008088218F8200248C42000CDA
69466 +:1042D000104000828FBF00180E000D840000000007
69467 +:1042E0008F860020ACD100009202000892030009E2
69468 +:1042F000304200FF00021200306300FF004310252F
69469 +:10430000ACC200049202004D000216000002160327
69470 +:1043100004410005000000003C0308008C630048D5
69471 +:104320000A00109F3C1080089202000830420040B2
69472 +:10433000144000030000182192020027304300FFC0
69473 +:104340003C108008361100809222004D00031E00B0
69474 +:10435000304200FF0002140000621825ACC30008C0
69475 +:104360008E2400308F820024ACC4000C8E250034D3
69476 +:104370009443001E3C02C00BACC50010006218251F
69477 +:104380008E22003800002021ACC200148E22003C96
69478 +:10439000ACC200180E000DB8ACC3001C8E020004A5
69479 +:1043A0008F8400203C058000AC8200008E2200201B
69480 +:1043B000AC8200048E22001CAC8200088E220058C1
69481 +:1043C0008CA3007400431021AC82000C8E22002CC0
69482 +:1043D000AC8200108E2200408E23004400021400A4
69483 +:1043E00000431025AC8200149222004D240300806B
69484 +:1043F000304200FF1443000400000000AC800018AD
69485 +:104400000A0010E38F8200248E23000C2402000196
69486 +:104410001062000E2402FFFF92220008304200408A
69487 +:104420001440000A2402FFFF8E23000C8CA20074AB
69488 +:10443000006218233C0208000062102414400002AD
69489 +:10444000000028210060282100051043AC820018DC
69490 +:104450008F820024000020219443001E3C02C00CE7
69491 +:10446000006218258F8200200E000DB8AC43001C9E
69492 +:104470003C038008346201008C4200008F850020DC
69493 +:10448000346300808FBF0018ACA20000ACA0000411
69494 +:104490008C6400488F8200248FB10014ACA4000803
69495 +:1044A000ACA0000CACA00010906300059446001E68
69496 +:1044B0003C02400D00031E0000C23025ACA30014D6
69497 +:1044C0008FB00010ACA0001824040001ACA6001CA2
69498 +:1044D0000A000DB827BD00208FBF00188FB100144F
69499 +:1044E0008FB0001003E0000827BD00203C028000D0
69500 +:1044F0009443007C3C02800834460100308400FF75
69501 +:104500003065FFFF2402000524A34650A0C4000C20
69502 +:104510005482000C3065FFFF90C2000D2C42000752
69503 +:104520001040000724A30A0090C3000D24020014C9
69504 +:104530000062100400A210210A00111F3045FFFF85
69505 +:104540003065FFFF3C0280083442008003E0000831
69506 +:10455000A44500143C03800834680080AD05003891
69507 +:10456000346701008CE2001C308400FF00A210239D
69508 +:104570001840000330C600FF24A2FFFCACE2001C80
69509 +:1045800030820001504000083C0380088D02003C4E
69510 +:1045900000A2102304410012240400058C620004D0
69511 +:1045A00010A2000F3C0380088C62000414A2001EBD
69512 +:1045B000000000003C0208008C4200D8304200207D
69513 +:1045C000104000093C0280083462008090630008BB
69514 +:1045D0009042004C144300043C0280082404000470
69515 +:1045E0000A00110900000000344300803442010039
69516 +:1045F000A040000C24020001A462001410C0000AB4
69517 +:104600003C0280008C4401003C0380008C6201F875
69518 +:104610000440FFFE24020002AC6401C0A06201C499
69519 +:104620003C021000AC6201F803E00008000000004A
69520 +:1046300027BDFFE800A61823AFBF00101860008058
69521 +:10464000308800FF3C02800834470080A0E000244E
69522 +:1046500034440100A0E000278C82001C00A210233B
69523 +:1046600004400056000000008CE2003C94E3005C33
69524 +:104670008CE4002C004530233063FFFF00C3182179
69525 +:104680000083202B1080000400E018218CE2002C15
69526 +:104690000A00117800A2102194E2005C3042FFFF72
69527 +:1046A00000C2102100A21021AC62001C3C02800854
69528 +:1046B000344400809482005C8C83001C3042FFFFF5
69529 +:1046C0000002104000A210210043102B10400004F3
69530 +:1046D000000000008C82001C0A00118B3C06800840
69531 +:1046E0009482005C3042FFFF0002104000A21021C3
69532 +:1046F0003C06800834C3010034C70080AC82001C33
69533 +:10470000A060000CACE500388C62001C00A21023F5
69534 +:104710001840000224A2FFFCAC62001C3102000120
69535 +:10472000104000083C0380088CE2003C00A21023EB
69536 +:1047300004410012240400058CC2000410A20010E1
69537 +:104740008FBF00108C62000414A2004F8FBF0010B6
69538 +:104750003C0208008C4200D8304200201040000A81
69539 +:104760003C02800834620080906300089042004C54
69540 +:10477000144300053C028008240400048FBF00108D
69541 +:104780000A00110927BD001834430080344201009B
69542 +:10479000A040000C24020001A46200143C0280002E
69543 +:1047A0008C4401003C0380008C6201F80440FFFE51
69544 +:1047B000240200020A0011D8000000008CE2001C54
69545 +:1047C000004610230043102B54400001ACE5001CB0
69546 +:1047D00094E2005C3042FFFF0062102B144000079F
69547 +:1047E0002402000294E2005C8CE3001C3042FFFFD4
69548 +:1047F00000621821ACE3001C24020002ACE5003882
69549 +:104800000E000F5EA082000C1040001F8FBF001032
69550 +:104810003C0280008C4401003C0380008C6201F863
69551 +:104820000440FFFE24020002AC6401C0A06201C487
69552 +:104830003C021000AC6201F80A0011F08FBF0010BA
69553 +:1048400031020010104000108FBF00103C028008A1
69554 +:10485000344500808CA3001C94A2005C00661823E1
69555 +:104860003042FFFF006218213C023FFF3444FFFF4B
69556 +:104870000083102B544000010080182100C3102138
69557 +:10488000ACA2001C8FBF001003E0000827BD001879
69558 +:1048900027BDFFE800C0402100A63023AFBF0010B5
69559 +:1048A00018C00026308A00FF3C028008344900808E
69560 +:1048B0008D24001C8D23002C008820230064182BDD
69561 +:1048C0001060000F344701008CE2002000461021E8
69562 +:1048D000ACE200208CE200200044102B1440000BBE
69563 +:1048E0003C023FFF8CE2002000441023ACE2002099
69564 +:1048F0009522005C3042FFFF0A0012100082202146
69565 +:10490000ACE00020008620213C023FFF3443FFFF43
69566 +:104910000064102B54400001006020213C028008FC
69567 +:104920003442008000851821AC43001CA0400024C4
69568 +:10493000A04000270A0012623C03800831420010A8
69569 +:10494000104000433C0380083C06800834C40080CB
69570 +:104950008C82003C004810235840003E34660080A2
69571 +:104960009082002424420001A0820024908200242E
69572 +:104970003C0308008C630024304200FF0043102BEE
69573 +:10498000144000688FBF001034C201008C42001C2C
69574 +:1049900000A2102318400063000000008CC3000434
69575 +:1049A0009482005C006818233042FFFF0003184324
69576 +:1049B000000210400043102A1040000500000000D3
69577 +:1049C0008CC20004004810230A0012450002104364
69578 +:1049D0009482005C3042FFFF000210403C068008D9
69579 +:1049E000AC82002C34C5008094A2005C8CA4002C06
69580 +:1049F00094A3005C3042FFFF00021040008220219F
69581 +:104A00003063FFFF0083202101041021ACA2001CB1
69582 +:104A10008CC2000434C60100ACC2001C2402000297
69583 +:104A20000E000F5EA0C2000C1040003E8FBF0010B1
69584 +:104A30003C0280008C4401003C0380008C6201F841
69585 +:104A40000440FFFE240200020A001292000000004F
69586 +:104A500034660080ACC50038346401008C82001CD0
69587 +:104A600000A210231840000224A2FFFCAC82001C0C
69588 +:104A7000314200015040000A3C0380088CC2003CD7
69589 +:104A800000A2102304430014240400058C620004D7
69590 +:104A900014A200033C0380080A00128424040005C9
69591 +:104AA0008C62000414A2001F8FBF00103C0208009B
69592 +:104AB0008C4200D8304200201040000A3C0280089E
69593 +:104AC00034620080906300089042004C144300055B
69594 +:104AD0003C028008240400048FBF00100A00110962
69595 +:104AE00027BD00183443008034420100A040000C70
69596 +:104AF00024020001A46200143C0280008C440100E6
69597 +:104B00003C0380008C6201F80440FFFE2402000296
69598 +:104B1000AC6401C0A06201C43C021000AC6201F8A8
69599 +:104B20008FBF001003E0000827BD001827BDFFE875
69600 +:104B30003C0A8008AFBF0010354900808D22003C40
69601 +:104B400000C04021308400FF004610231840009D23
69602 +:104B500030E700FF354701002402000100A63023A2
69603 +:104B6000A0E0000CA0E0000DA522001418C0002455
69604 +:104B7000308200108D23001C8D22002C0068182329
69605 +:104B80000043102B1040000F000000008CE20020BA
69606 +:104B900000461021ACE200208CE200200043102BE4
69607 +:104BA0001440000B3C023FFF8CE200200043102326
69608 +:104BB000ACE200209522005C3042FFFF0A0012C1E7
69609 +:104BC00000621821ACE00020006618213C023FFF83
69610 +:104BD0003446FFFF00C3102B5440000100C01821D1
69611 +:104BE0003C0280083442008000651821AC43001C60
69612 +:104BF000A0400024A04000270A00130F3C038008B7
69613 +:104C0000104000403C0380088D22003C00481023E7
69614 +:104C10005840003D34670080912200242442000166
69615 +:104C2000A1220024912200243C0308008C6300246C
69616 +:104C3000304200FF0043102B1440009A8FBF001039
69617 +:104C40008CE2001C00A21023184000960000000017
69618 +:104C50008D4300049522005C006818233042FFFF5A
69619 +:104C600000031843000210400043102A10400005C2
69620 +:104C7000012020218D420004004810230A0012F276
69621 +:104C8000000210439522005C3042FFFF00021040FA
69622 +:104C90003C068008AC82002C34C5008094A2005CE5
69623 +:104CA0008CA4002C94A3005C3042FFFF0002104053
69624 +:104CB000008220213063FFFF0083182101031021AF
69625 +:104CC000ACA2001C8CC2000434C60100ACC2001CA3
69626 +:104CD000240200020E000F5EA0C2000C1040007102
69627 +:104CE0008FBF00103C0280008C4401003C03800018
69628 +:104CF0008C6201F80440FFFE240200020A0013390E
69629 +:104D00000000000034670080ACE500383466010024
69630 +:104D10008CC2001C00A210231840000224A2FFFC39
69631 +:104D2000ACC2001C30820001504000083C038008E7
69632 +:104D30008CE2003C00A2102304430051240400052F
69633 +:104D40008C62000410A2003E3C0380088C620004C8
69634 +:104D500054A200548FBF00103C0208008C4200D8BF
69635 +:104D600030420020104000063C028008346200807F
69636 +:104D7000906300089042004C104300403C028008C1
69637 +:104D80003443008034420100A040000C24020001A2
69638 +:104D9000A46200143C0280008C4401003C038000AB
69639 +:104DA0008C6201F80440FFFE24020002AC6401C0E2
69640 +:104DB000A06201C43C021000AC6201F80A00137743
69641 +:104DC0008FBF001024020005A120002714E2000A72
69642 +:104DD0003C038008354301009062000D2C42000620
69643 +:104DE000504000053C0380089062000D2442000101
69644 +:104DF000A062000D3C03800834670080ACE50038F9
69645 +:104E0000346601008CC2001C00A21023184000026E
69646 +:104E100024A2FFFCACC2001C308200015040000AFA
69647 +:104E20003C0380088CE2003C00A2102304410014E3
69648 +:104E3000240400058C62000414A200033C038008D3
69649 +:104E40000A00136E240400058C62000414A20015ED
69650 +:104E50008FBF00103C0208008C4200D83042002076
69651 +:104E60001040000A3C028008346200809063000811
69652 +:104E70009042004C144300053C02800824040004C6
69653 +:104E80008FBF00100A00110927BD001834430080AD
69654 +:104E900034420100A040000C24020001A46200146E
69655 +:104EA0008FBF001003E0000827BD00183C0B8008EE
69656 +:104EB00027BDFFE83C028000AFBF00103442010074
69657 +:104EC000356A00809044000A356901008C45001461
69658 +:104ED0008D4800389123000C308400FF0105102319
69659 +:104EE0001C4000B3306700FF2CE20006504000B1C8
69660 +:104EF0008FBF00102402000100E2300430C2000322
69661 +:104F00005440000800A8302330C2000C144000A117
69662 +:104F100030C20030144000A38FBF00100A00143BC1
69663 +:104F20000000000018C00024308200108D43001CD7
69664 +:104F30008D42002C006818230043102B1040000FF6
69665 +:104F4000000000008D22002000461021AD2200202C
69666 +:104F50008D2200200043102B1440000B3C023FFF29
69667 +:104F60008D22002000431023AD2200209542005CDA
69668 +:104F70003042FFFF0A0013AF00621821AD2000206D
69669 +:104F8000006618213C023FFF3446FFFF00C3102B90
69670 +:104F90005440000100C018213C02800834420080C7
69671 +:104FA00000651821AC43001CA0400024A04000274D
69672 +:104FB0000A0013FD3C038008104000403C038008B9
69673 +:104FC0008D42003C004810231840003D34670080AB
69674 +:104FD0009142002424420001A14200249142002475
69675 +:104FE0003C0308008C630024304200FF0043102B78
69676 +:104FF000144000708FBF00108D22001C00A21023EF
69677 +:105000001840006C000000008D6300049542005CB5
69678 +:10501000006818233042FFFF0003184300021040CD
69679 +:105020000043102A10400005014020218D62000439
69680 +:10503000004810230A0013E0000210439542005C70
69681 +:105040003042FFFF000210403C068008AC82002C7A
69682 +:1050500034C5008094A2005C8CA4002C94A3005C56
69683 +:105060003042FFFF00021040008220213063FFFF2A
69684 +:105070000083182101031021ACA2001C8CC2000483
69685 +:1050800034C60100ACC2001C240200020E000F5EF8
69686 +:10509000A0C2000C104000478FBF00103C028000EF
69687 +:1050A0008C4401003C0380008C6201F80440FFFE48
69688 +:1050B000240200020A00142D000000003467008062
69689 +:1050C000ACE50038346601008CC2001C00A210233D
69690 +:1050D0001840000224A2FFFCACC2001C3082000178
69691 +:1050E0005040000A3C0380088CE2003C00A21023E0
69692 +:1050F00004430014240400058C62000414A200037D
69693 +:105100003C0380080A00141F240400058C6200047C
69694 +:1051100014A200288FBF00103C0208008C4200D867
69695 +:10512000304200201040000A3C02800834620080B7
69696 +:10513000906300089042004C144300053C02800834
69697 +:10514000240400048FBF00100A00110927BD0018B5
69698 +:105150003443008034420100A040000C24020001CE
69699 +:10516000A46200143C0280008C4401003C038000D7
69700 +:105170008C6201F80440FFFE24020002AC6401C00E
69701 +:10518000A06201C43C021000AC6201F80A00143BAA
69702 +:105190008FBF00108FBF0010010030210A00115A8C
69703 +:1051A00027BD0018010030210A00129927BD001800
69704 +:1051B0008FBF001003E0000827BD00183C038008E3
69705 +:1051C0003464010024020003A082000C8C620004FD
69706 +:1051D00003E00008AC82001C3C05800834A300807A
69707 +:1051E0009062002734A501002406004324420001F8
69708 +:1051F000A0620027906300273C0208008C42004810
69709 +:10520000306300FF146200043C07602194A500EAAB
69710 +:105210000A00090130A5FFFF03E0000800000000BC
69711 +:1052200027BDFFE8AFBF00103C0280000E00144411
69712 +:105230008C4401803C02800834430100A060000CD3
69713 +:105240008C4200048FBF001027BD001803E0000847
69714 +:10525000AC62001C27BDFFE03C028008AFBF001815
69715 +:10526000AFB10014AFB000103445008034460100E7
69716 +:105270003C0880008D09014090C3000C8CA4003CC8
69717 +:105280008CA200381482003B306700FF9502007C3E
69718 +:1052900090A30027146000093045FFFF2402000599
69719 +:1052A00054E200083C04800890C2000D2442000132
69720 +:1052B000A0C2000D0A00147F3C048008A0C0000DAD
69721 +:1052C0003C048008348201009042000C2403000555
69722 +:1052D000304200FF1443000A24A205DC348300801E
69723 +:1052E000906200272C4200075040000524A20A00CB
69724 +:1052F00090630027240200140062100400A2102111
69725 +:105300003C108008361000803045FFFF012020212E
69726 +:105310000E001444A60500149602005C8E030038AB
69727 +:105320003C1180003042FFFF000210400062182153
69728 +:10533000AE03001C0E0003328E24014092020025B1
69729 +:1053400034420040A20200250E00033D8E2401409D
69730 +:105350008E2401403C0380008C6201F80440FFFE73
69731 +:1053600024020002AC6401C0A06201C43C0210002F
69732 +:10537000AC6201F88FBF00188FB100148FB000101D
69733 +:1053800003E0000827BD00203C0360103C02080039
69734 +:1053900024420174AC62502C8C6250003C048000AA
69735 +:1053A00034420080AC6250003C0208002442547C2D
69736 +:1053B0003C010800AC2256003C020800244254384C
69737 +:1053C0003C010800AC2256043C020002AC840008F8
69738 +:1053D000AC82000C03E000082402000100A0302190
69739 +:1053E0003C1C0800279C56083C0200023C050400B7
69740 +:1053F00000852826008220260004102B2CA5000101
69741 +:105400002C840001000210803C0308002463560035
69742 +:105410000085202500431821108000030000102182
69743 +:10542000AC6600002402000103E000080000000058
69744 +:105430003C1C0800279C56083C0200023C05040066
69745 +:1054400000852826008220260004102B2CA50001B0
69746 +:105450002C840001000210803C03080024635600E5
69747 +:105460000085202500431821108000050000102130
69748 +:105470003C02080024425438AC62000024020001BF
69749 +:1054800003E00008000000003C0200023C030400AE
69750 +:1054900000821026008318262C4200012C63000194
69751 +:1054A000004310251040000B000028213C1C080080
69752 +:1054B000279C56083C0380008C62000824050001EC
69753 +:1054C00000431025AC6200088C62000C00441025DB
69754 +:1054D000AC62000C03E0000800A010213C1C080096
69755 +:1054E000279C56083C0580008CA3000C0004202754
69756 +:1054F000240200010064182403E00008ACA3000C9F
69757 +:105500003C020002148200063C0560008CA208D018
69758 +:105510002403FFFE0043102403E00008ACA208D0DF
69759 +:105520003C02040014820005000000008CA208D098
69760 +:105530002403FFFD00431024ACA208D003E00008C0
69761 +:10554000000000003C02601A344200108C430080CE
69762 +:1055500027BDFFF88C440084AFA3000093A3000094
69763 +:10556000240200041462001AAFA4000493A20001F4
69764 +:105570001040000797A300023062FFFC3C0380004C
69765 +:10558000004310218C4200000A001536AFA200042F
69766 +:105590003062FFFC3C03800000431021AC4400005B
69767 +:1055A000A3A000003C0560008CA208D02403FFFEED
69768 +:1055B0003C04601A00431024ACA208D08FA300045E
69769 +:1055C0008FA2000034840010AC830084AC82008081
69770 +:1055D00003E0000827BD000827BDFFE8AFBF0010AB
69771 +:1055E0003C1C0800279C56083C0280008C43000CA1
69772 +:1055F0008C420004004318243C0200021060001496
69773 +:10560000006228243C0204003C04000210A00005B3
69774 +:10561000006210243C0208008C4256000A00155B10
69775 +:1056200000000000104000073C0404003C02080099
69776 +:105630008C4256040040F809000000000A00156082
69777 +:10564000000000000000000D3C1C0800279C5608CC
69778 +:105650008FBF001003E0000827BD0018800802403B
69779 +:1056600080080100800800808008000000000C8095
69780 +:105670000000320008000E9808000EF408000F88A1
69781 +:1056800008001028080010748008010080080080BD
69782 +:10569000800800000A000028000000000000000050
69783 +:1056A0000000000D6370362E322E316200000000C3
69784 +:1056B00006020104000000000000000000000000DD
69785 +:1056C000000000000000000038003C000000000066
69786 +:1056D00000000000000000000000000000000020AA
69787 +:1056E00000000000000000000000000000000000BA
69788 +:1056F00000000000000000000000000000000000AA
69789 +:10570000000000000000000021003800000000013F
69790 +:105710000000002B000000000000000400030D400A
69791 +:105720000000000000000000000000000000000079
69792 +:105730000000000000000000100000030000000056
69793 +:105740000000000D0000000D3C020800244259AC8E
69794 +:105750003C03080024635BF4AC4000000043202BB2
69795 +:105760001480FFFD244200043C1D080037BD9FFC4F
69796 +:1057700003A0F0213C100800261000A03C1C0800EB
69797 +:10578000279C59AC0E0002F6000000000000000D3E
69798 +:1057900027BDFFB4AFA10000AFA20004AFA3000873
69799 +:1057A000AFA4000CAFA50010AFA60014AFA700185F
69800 +:1057B000AFA8001CAFA90020AFAA0024AFAB0028FF
69801 +:1057C000AFAC002CAFAD0030AFAE0034AFAF00389F
69802 +:1057D000AFB8003CAFB90040AFBC0044AFBF004819
69803 +:1057E0000E000820000000008FBF00488FBC00445E
69804 +:1057F0008FB900408FB8003C8FAF00388FAE0034B7
69805 +:105800008FAD00308FAC002C8FAB00288FAA002406
69806 +:105810008FA900208FA8001C8FA700188FA6001446
69807 +:105820008FA500108FA4000C8FA300088FA2000486
69808 +:105830008FA1000027BD004C3C1B60188F7A5030B0
69809 +:10584000377B502803400008AF7A000000A01821E1
69810 +:1058500000801021008028213C0460003C0760008B
69811 +:105860002406000810600006348420788C42000072
69812 +:10587000ACE220088C63000003E00008ACE3200CDD
69813 +:105880000A000F8100000000240300403C02600079
69814 +:1058900003E00008AC4320003C0760008F86000452
69815 +:1058A0008CE520740086102100A2182B14600007DC
69816 +:1058B000000028218F8AFDA024050001A1440013C7
69817 +:1058C0008F89000401244021AF88000403E0000810
69818 +:1058D00000A010218F84FDA08F8500049086001306
69819 +:1058E00030C300FF00A31023AF82000403E00008D0
69820 +:1058F000A08000138F84FDA027BDFFE8AFB000108B
69821 +:10590000AFBF001490890011908700112402002875
69822 +:10591000312800FF3906002830E300FF2485002CE1
69823 +:105920002CD00001106200162484001C0E00006EB2
69824 +:10593000000000008F8FFDA03C05600024020204DF
69825 +:1059400095EE003E95ED003C000E5C0031ACFFFF93
69826 +:10595000016C5025ACAA2010520000012402000462
69827 +:10596000ACA22000000000000000000000000000C9
69828 +:105970008FBF00148FB0001003E0000827BD00188F
69829 +:105980000A0000A6000028218F85FDA027BDFFD8B2
69830 +:10599000AFBF0020AFB3001CAFB20018AFB100140E
69831 +:1059A000AFB000100080982190A4001124B0001C1A
69832 +:1059B00024B1002C308300FF386200280E000090D4
69833 +:1059C0002C5200010E00009800000000020020216F
69834 +:1059D0001240000202202821000028210E00006E43
69835 +:1059E000000000008F8DFDA03C0880003C05600099
69836 +:1059F00095AC003E95AB003C02683025000C4C0095
69837 +:105A0000316AFFFF012A3825ACA7201024020202C8
69838 +:105A1000ACA6201452400001240200028FBF0020D7
69839 +:105A20008FB3001C8FB200188FB100148FB000101C
69840 +:105A300027BD002803E00008ACA2200027BDFFE03E
69841 +:105A4000AFB20018AFB10014AFB00010AFBF001C70
69842 +:105A50003C1160008E2320748F82000430D0FFFF41
69843 +:105A600030F2FFFF1062000C2406008F0E00006E63
69844 +:105A7000000000003C06801F0010440034C5FF00F9
69845 +:105A80000112382524040002AE2720100000302126
69846 +:105A9000AE252014AE2420008FBF001C8FB200184A
69847 +:105AA0008FB100148FB0001000C0102103E0000877
69848 +:105AB00027BD002027BDFFE0AFB0001030D0FFFFB2
69849 +:105AC000AFBF0018AFB100140E00006E30F1FFFF41
69850 +:105AD00000102400009180253C036000AC70201071
69851 +:105AE0008FBF00188FB100148FB000102402000483
69852 +:105AF000AC62200027BD002003E000080000102158
69853 +:105B000027BDFFE03C046018AFBF0018AFB1001420
69854 +:105B1000AFB000108C8850002403FF7F34028071E6
69855 +:105B20000103382434E5380C241F00313C1980006F
69856 +:105B3000AC8550003C11800AAC8253BCAF3F0008DA
69857 +:105B40000E00054CAF9100400E00050A3C116000AC
69858 +:105B50000E00007D000000008E3008083C0F570941
69859 +:105B60002418FFF00218602435EEE00035EDF00057
69860 +:105B7000018E5026018D58262D4600012D69000109
69861 +:105B8000AF86004C0E000D09AF8900503C06601630
69862 +:105B90008CC700003C0860148D0500A03C03FFFF8B
69863 +:105BA00000E320243C02535300052FC2108200550D
69864 +:105BB00034D07C00960201F2A780006C10400003F4
69865 +:105BC000A780007C384B1E1EA78B006C960201F844
69866 +:105BD000104000048F8D0050384C1E1EA78C007C96
69867 +:105BE0008F8D005011A000058F83004C240E0020E3
69868 +:105BF000A78E007CA78E006C8F83004C1060000580
69869 +:105C00009785007C240F0020A78F007CA78F006C55
69870 +:105C10009785007C2CB8008153000001240500808A
69871 +:105C20009784006C2C91040152200001240404008C
69872 +:105C30001060000B3C0260008FBF00188FB1001491
69873 +:105C40008FB0001027BD0020A784006CA785007CC2
69874 +:105C5000A380007EA780007403E00008A780009264
69875 +:105C60008C4704382419103C30FFFFFF13F9000360
69876 +:105C700030A8FFFF1100004624030050A380007EDF
69877 +:105C80009386007E50C00024A785007CA780007CFE
69878 +:105C90009798007CA780006CA7800074A780009272
69879 +:105CA0003C010800AC3800800E00078700000000AF
69880 +:105CB0003C0F60008DED0808240EFFF03C0B600ED9
69881 +:105CC000260C0388356A00100000482100002821B6
69882 +:105CD00001AE20243C105709AF8C0010AF8A004859
69883 +:105CE000AF89001810900023AF8500148FBF0018F3
69884 +:105CF0008FB100148FB0001027BD002003E0000812
69885 +:105D0000AF80005400055080014648218D260004D4
69886 +:105D10000A00014800D180219798007CA784006C7C
69887 +:105D2000A7800074A78000923C010800AC38008076
69888 +:105D30000E000787000000003C0F60008DED080892
69889 +:105D4000240EFFF03C0B600E260C0388356A001011
69890 +:105D5000000048210000282101AE20243C105709F2
69891 +:105D6000AF8C0010AF8A0048AF8900181490FFDF95
69892 +:105D7000AF85001424110001AF9100548FBF0018AB
69893 +:105D80008FB100148FB0001003E0000827BD002081
69894 +:105D90000A00017BA383007E3083FFFF8F880040D1
69895 +:105DA0008F87003C000321403C0580003C020050EE
69896 +:105DB000008248253C0660003C0A010034AC040027
69897 +:105DC0008CCD08E001AA58241160000500000000F5
69898 +:105DD0008CCF08E024E7000101EA7025ACCE08E092
69899 +:105DE0008D19001001805821ACB900388D180014AD
69900 +:105DF000ACB8003CACA9003000000000000000007E
69901 +:105E00000000000000000000000000000000000092
69902 +:105E100000000000000000003C0380008C640000D3
69903 +:105E2000308200201040FFFD3C0F60008DED08E047
69904 +:105E30003C0E010001AE18241460FFE100000000D8
69905 +:105E4000AF87003C03E00008AF8B00588F8500400F
69906 +:105E5000240BFFF03C06800094A7001A8CA90024B4
69907 +:105E600030ECFFFF000C38C000EB5024012A402129
69908 +:105E7000ACC8003C8CA400248CC3003C00831023DD
69909 +:105E800018400033000000008CAD002025A2000166
69910 +:105E90003C0F0050ACC2003835EE00103C068000CC
69911 +:105EA000ACCE003000000000000000000000000048
69912 +:105EB00000000000000000000000000000000000E2
69913 +:105EC000000000003C0480008C9900003338002062
69914 +:105ED0001300FFFD30E20008104000173C0980006D
69915 +:105EE0008C880408ACA800108C83040CACA30014AC
69916 +:105EF0003C1900203C188000AF19003094AE001807
69917 +:105F000094AF001C01CF3021A4A6001894AD001A54
69918 +:105F100025A70001A4A7001A94AB001A94AC001E98
69919 +:105F2000118B00030000000003E0000800000000E7
69920 +:105F300003E00008A4A0001A8D2A0400ACAA0010F7
69921 +:105F40008D240404ACA400140A0002183C1900209B
69922 +:105F50008CA200200A0002003C0F00500A0001EE53
69923 +:105F60000000000027BDFFE8AFBF00100E000232A6
69924 +:105F7000000000008F8900408FBF00103C038000AC
69925 +:105F8000A520000A9528000A9527000427BD0018BF
69926 +:105F90003105FFFF30E6000F0006150000A22025A6
69927 +:105FA00003E00008AC6400803C0508008CA50020DC
69928 +:105FB0008F83000C27BDFFE8AFB00010AFBF001407
69929 +:105FC00010A300100000802124040001020430040A
69930 +:105FD00000A6202400C3102450440006261000010F
69931 +:105FE000001018802787FDA41480000A006718217C
69932 +:105FF000261000012E0900025520FFF38F83000CAC
69933 +:10600000AF85000C8FBF00148FB0001003E00008B4
69934 +:1060100027BD00188C6800003C058000ACA8002457
69935 +:106020000E000234261000013C0508008CA500205B
69936 +:106030000A0002592E0900022405000100851804F7
69937 +:106040003C0408008C84002027BDFFC8AFBF00348B
69938 +:1060500000831024AFBE0030AFB7002CAFB60028CD
69939 +:10606000AFB50024AFB40020AFB3001CAFB200182E
69940 +:10607000AFB1001410400051AFB000108F84004049
69941 +:10608000948700069488000A00E8302330D5FFFF8B
69942 +:1060900012A0004B8FBF0034948B0018948C000A20
69943 +:1060A000016C50233142FFFF02A2482B1520000251
69944 +:1060B00002A02021004020212C8F000515E00002C5
69945 +:1060C00000809821241300040E0001C102602021E9
69946 +:1060D0008F87004002609021AF80004494F4000A52
69947 +:1060E000026080211260004E3291FFFF3C1670006A
69948 +:1060F0003C1440003C1E20003C1760008F99005863
69949 +:106100008F380000031618241074004F0283F82BF8
69950 +:1061100017E0003600000000107E00478F86004424
69951 +:1061200014C0003A2403000102031023022320219B
69952 +:106130003050FFFF1600FFF13091FFFF8F870040C6
69953 +:106140003C1100203C108000AE11003094EB000A9E
69954 +:106150003C178000024B5021A4EA000A94E9000A8F
69955 +:1061600094E800043123FFFF3106000F00062D00E4
69956 +:106170000065F025AEFE008094F3000A94F6001846
69957 +:1061800012D30036001221408CFF00148CF4001052
69958 +:1061900003E468210000C02101A4782B029870213B
69959 +:1061A00001CF6021ACED0014ACEC001002B238233A
69960 +:1061B00030F5FFFF16A0FFB88F8400408FBF00347A
69961 +:1061C0008FBE00308FB7002C8FB600288FB500240B
69962 +:1061D0008FB400208FB3001C8FB200188FB1001451
69963 +:1061E0008FB0001003E0000827BD00381477FFCC03
69964 +:1061F0008F8600440E000EE202002021004018218C
69965 +:106200008F86004410C0FFC9020310230270702360
69966 +:106210008F87004001C368210A0002E431B2FFFF0A
69967 +:106220008F86004414C0FFC93C1100203C10800040
69968 +:106230000A0002AEAE1100300E00046602002021FA
69969 +:106240000A0002DB00401821020020210E0009395B
69970 +:10625000022028210A0002DB004018210E0001EE76
69971 +:10626000000000000A0002C702B2382327BDFFC8A1
69972 +:10627000AFB7002CAFB60028AFB50024AFB40020F4
69973 +:10628000AFB3001CAFB20018AFB10014AFB0001034
69974 +:10629000AFBF00300E00011B241300013C047FFF40
69975 +:1062A0003C0380083C0220003C010800AC20007048
69976 +:1062B0003496FFFF34770080345200033C1512C03F
69977 +:1062C000241400013C1080002411FF800E000245C0
69978 +:1062D000000000008F8700488F8B00188F89001402
69979 +:1062E0008CEA00EC8CE800E8014B302B01092823F4
69980 +:1062F00000A6102314400006014B18231440000E82
69981 +:106300003C05800002A3602B1180000B0000000000
69982 +:106310003C0560008CEE00EC8CED00E88CA4180CC1
69983 +:10632000AF8E001804800053AF8D00148F8F0010C3
69984 +:10633000ADF400003C0580008CBF00003BF900017B
69985 +:10634000333800011700FFE13C0380008C6201003C
69986 +:1063500024060C0010460009000000008C680100B3
69987 +:106360002D043080548000103C0480008C690100B2
69988 +:106370002D2331811060000C3C0480008CAA0100A8
69989 +:1063800011460004000020218CA6010024C5FF81D5
69990 +:1063900030A400FF8E0B01000E000269AE0B00243A
69991 +:1063A0000A00034F3C0480008C8D01002DAC3300AB
69992 +:1063B00011800022000000003C0708008CE70098D4
69993 +:1063C00024EE00013C010800AC2E00983C04800043
69994 +:1063D0008C8201001440000300000000566000148D
69995 +:1063E0003C0440008C9F01008C9801000000982123
69996 +:1063F00003F1C82400193940330F007F00EF7025E6
69997 +:1064000001D26825AC8D08308C8C01008C85010090
69998 +:10641000258B0100017130240006514030A3007F1C
69999 +:106420000143482501324025AC8808303C04400037
70000 +:10643000AE0401380A00030E000000008C99010030
70001 +:10644000240F0020AC99002092F80000330300FFD5
70002 +:10645000106F000C241F0050547FFFDD3C048000AF
70003 +:106460008C8401000E00154E000000000A00034F4E
70004 +:106470003C04800000963824ACA7180C0A000327BF
70005 +:106480008F8F00108C8501000E0008F72404008017
70006 +:106490000A00034F3C04800000A4102B24030001D9
70007 +:1064A00010400009000030210005284000A4102BF6
70008 +:1064B00004A00003000318405440FFFC00052840DE
70009 +:1064C0005060000A0004182B0085382B54E00004AB
70010 +:1064D0000003184200C33025008520230003184222
70011 +:1064E0001460FFF9000528420004182B03E000089F
70012 +:1064F00000C310213084FFFF30C600FF3C0780003E
70013 +:106500008CE201B80440FFFE00064C000124302557
70014 +:106510003C08200000C820253C031000ACE00180AE
70015 +:10652000ACE50184ACE4018803E00008ACE301B809
70016 +:106530003C0660008CC5201C2402FFF03083020062
70017 +:10654000308601001060000E00A2282434A500014E
70018 +:106550003087300010E0000530830C0034A50004C3
70019 +:106560003C04600003E00008AC85201C1060FFFDC7
70020 +:106570003C04600034A5000803E00008AC85201C42
70021 +:1065800054C0FFF334A500020A0003B03087300086
70022 +:1065900027BDFFE8AFB00010AFBF00143C0760009C
70023 +:1065A000240600021080001100A080218F83005873
70024 +:1065B0000E0003A78C6400188F8200580000202171
70025 +:1065C000240600018C45000C0E000398000000001A
70026 +:1065D0001600000224020003000010218FBF0014E7
70027 +:1065E0008FB0001003E0000827BD00188CE8201CC5
70028 +:1065F0002409FFF001092824ACE5201C8F870058EE
70029 +:106600000A0003CD8CE5000C3C02600E00804021A6
70030 +:1066100034460100240900180000000000000000BA
70031 +:10662000000000003C0A00503C0380003547020097
70032 +:10663000AC68003834640400AC65003CAC670030E2
70033 +:106640008C6C0000318B00201160FFFD2407FFFFE0
70034 +:106650002403007F8C8D00002463FFFF248400044A
70035 +:10666000ACCD00001467FFFB24C60004000000004E
70036 +:10667000000000000000000024A402000085282B78
70037 +:106680003C0300203C0E80002529FFFF010540212E
70038 +:10669000ADC300301520FFE00080282103E0000892
70039 +:1066A000000000008F82005827BDFFD8AFB3001C48
70040 +:1066B000AFBF0020AFB20018AFB10014AFB00010F0
70041 +:1066C00094460002008098218C5200182CC300814F
70042 +:1066D0008C4800048C4700088C51000C8C49001039
70043 +:1066E000106000078C4A00142CC4000414800013AE
70044 +:1066F00030EB000730C5000310A0001000000000C0
70045 +:106700002410008B02002021022028210E00039873
70046 +:10671000240600031660000224020003000010217A
70047 +:106720008FBF00208FB3001C8FB200188FB10014F0
70048 +:106730008FB0001003E0000827BD00281560FFF1AE
70049 +:106740002410008B3C0C80003C030020241F00011F
70050 +:10675000AD830030AF9F0044000000000000000047
70051 +:10676000000000002419FFF024D8000F031978243A
70052 +:106770003C1000D0AD88003801F0702524CD000316
70053 +:106780003C08600EAD87003C35850400AD8E0030BE
70054 +:10679000000D38823504003C3C0380008C6B000007
70055 +:1067A000316200201040FFFD0000000010E00008F2
70056 +:1067B00024E3FFFF2407FFFF8CA800002463FFFFF2
70057 +:1067C00024A50004AC8800001467FFFB24840004A7
70058 +:1067D0003C05600EACA60038000000000000000080
70059 +:1067E000000000008F8600543C0400203C0780001D
70060 +:1067F000ACE4003054C000060120202102402021DA
70061 +:106800000E0003A7000080210A00041D02002021C1
70062 +:106810000E0003DD01402821024020210E0003A7C5
70063 +:10682000000080210A00041D0200202127BDFFE096
70064 +:10683000AFB200183092FFFFAFB10014AFBF001C21
70065 +:10684000AFB000101640000D000088210A0004932C
70066 +:106850000220102124050003508500278CE5000C40
70067 +:106860000000000D262800013111FFFF24E2002066
70068 +:106870000232802B12000019AF8200588F82004430
70069 +:10688000144000168F8700583C0670003C0320001F
70070 +:106890008CE5000000A62024148300108F84006083
70071 +:1068A000000544023C09800000A980241480FFE90F
70072 +:1068B000310600FF2CCA000B5140FFEB26280001D7
70073 +:1068C000000668803C0E080025CE575801AE6021B6
70074 +:1068D0008D8B0000016000080000000002201021E4
70075 +:1068E0008FBF001C8FB200188FB100148FB0001042
70076 +:1068F00003E0000827BD00200E0003982404008454
70077 +:106900001600FFD88F8700580A000474AF8000601B
70078 +:10691000020028210E0003BF240400018F870058C5
70079 +:106920000A000474AF820060020028210E0003BF39
70080 +:10693000000020210A0004A38F8700580E000404E1
70081 +:10694000020020218F8700580A000474AF82006083
70082 +:1069500030AFFFFF000F19C03C0480008C9001B8DD
70083 +:106960000600FFFE3C1920043C181000AC83018097
70084 +:10697000AC800184AC990188AC9801B80A00047518
70085 +:106980002628000190E2000390E30002000020218D
70086 +:106990000002FE0000033A0000FF2825240600083C
70087 +:1069A0000E000398000000001600FFDC2402000324
70088 +:1069B0008F870058000010210A000474AF82006025
70089 +:1069C00090E8000200002021240600090A0004C308
70090 +:1069D00000082E0090E4000C240900FF308500FF21
70091 +:1069E00010A900150000302190F9000290F8000372
70092 +:1069F000308F00FF94EB000400196E000018740043
70093 +:106A0000000F62000186202501AE5025014B28258C
70094 +:106A10003084FF8B0A0004C32406000A90E30002BE
70095 +:106A200090FF0004000020210003360000DF28252D
70096 +:106A30000A0004C32406000B0A0004D52406008BB8
70097 +:106A4000000449C23127003F000443423C02800059
70098 +:106A500000082040240316802CE60020AC43002CC4
70099 +:106A600024EAFFE02482000114C0000330A900FFE3
70100 +:106A700000801021314700FF000260803C0D800043
70101 +:106A8000240A0001018D20213C0B000E00EA28049D
70102 +:106A9000008B302111200005000538278CCE000026
70103 +:106AA00001C5382503E00008ACC700008CD8000001
70104 +:106AB0000307782403E00008ACCF000027BDFFE007
70105 +:106AC000AFB10014AFB00010AFBF00183C076000BA
70106 +:106AD0008CE408083402F0003C1160003083F000C0
70107 +:106AE000240501C03C04800E000030211062000625
70108 +:106AF000241000018CEA08083149F0003928E00030
70109 +:106B00000008382B000780403C0D0200AE2D081411
70110 +:106B1000240C16803C0B80008E2744000E000F8B47
70111 +:106B2000AD6C002C120000043C02169124050001FB
70112 +:106B3000120500103C023D2C345800E0AE384408E9
70113 +:106B40003C1108008E31007C8FBF00183C066000AD
70114 +:106B500000118540360F16808FB100148FB00010E1
70115 +:106B60003C0E020027BD0020ACCF442003E000080B
70116 +:106B7000ACCE08103C0218DA345800E0AE384408B5
70117 +:106B80003C1108008E31007C8FBF00183C0660006D
70118 +:106B900000118540360F16808FB100148FB00010A1
70119 +:106BA0003C0E020027BD0020ACCF442003E00008CB
70120 +:106BB000ACCE08100A0004EB240500010A0004EB27
70121 +:106BC0000000282124020400A7820024A780001CC2
70122 +:106BD000000020213C06080024C65A582405FFFF67
70123 +:106BE00024890001000440803124FFFF01061821A0
70124 +:106BF0002C87002014E0FFFAAC6500002404040098
70125 +:106C0000A7840026A780001E000020213C06080063
70126 +:106C100024C65AD82405FFFF248D0001000460809B
70127 +:106C200031A4FFFF018658212C8A00201540FFFA6D
70128 +:106C3000AD650000A7800028A7800020A780002263
70129 +:106C4000000020213C06080024C65B582405FFFFF5
70130 +:106C5000249900010004C0803324FFFF030678213B
70131 +:106C60002C8E000415C0FFFAADE500003C05600065
70132 +:106C70008CA73D002403E08F00E31024344601403C
70133 +:106C800003E00008ACA63D002487007F000731C266
70134 +:106C900024C5FFFF000518C2246400013082FFFFF5
70135 +:106CA000000238C0A78400303C010800AC27003047
70136 +:106CB000AF80002C0000282100002021000030219E
70137 +:106CC0002489000100A728213124FFFF2CA81701E7
70138 +:106CD000110000032C8300801460FFF924C600011A
70139 +:106CE00000C02821AF86002C10C0001DA786002AF6
70140 +:106CF00024CAFFFF000A11423C08080025085B581F
70141 +:106D00001040000A00002021004030212407FFFF2E
70142 +:106D1000248E00010004688031C4FFFF01A86021B7
70143 +:106D20000086582B1560FFFAAD87000030A2001FC7
70144 +:106D30005040000800043080240300010043C804D0
70145 +:106D400000041080004878212738FFFF03E0000886
70146 +:106D5000ADF8000000C820212405FFFFAC8500002D
70147 +:106D600003E000080000000030A5FFFF30C6FFFF71
70148 +:106D700030A8001F0080602130E700FF0005294295
70149 +:106D80000000502110C0001D24090001240B000147
70150 +:106D900025180001010B2004330800FF0126782686
70151 +:106DA000390E00202DED00012DC2000101A2182591
70152 +:106DB0001060000D014450250005C880032C4021BF
70153 +:106DC0000100182110E0000F000A20278D040000A8
70154 +:106DD000008A1825AD03000024AD00010000402109
70155 +:106DE0000000502131A5FFFF252E000131C9FFFF12
70156 +:106DF00000C9102B1040FFE72518000103E0000830
70157 +:106E0000000000008D0A0000014440240A0005D162
70158 +:106E1000AC68000027BDFFE830A5FFFF30C6FFFFCC
70159 +:106E2000AFB00010AFBF001430E7FFFF00005021EB
70160 +:106E30003410FFFF0000602124AF001F00C0482174
70161 +:106E4000241800012419002005E0001601E010219B
70162 +:106E50000002F943019F682A0009702B01AE40240B
70163 +:106E600011000017000C18800064102110E00005CC
70164 +:106E70008C4B000000F840040008382301675824B8
70165 +:106E800000003821154000410000402155600016E7
70166 +:106E90003169FFFF258B0001316CFFFF05E1FFEC3D
70167 +:106EA00001E0102124A2003E0002F943019F682A5C
70168 +:106EB0000009702B01AE40241500FFEB000C188078
70169 +:106EC000154600053402FFFF020028210E0005B51B
70170 +:106ED00000003821020010218FBF00148FB0001075
70171 +:106EE00003E0000827BD00181520000301601821E9
70172 +:106EF000000B1C0224080010306A00FF154000053A
70173 +:106F0000306E000F250D000800031A0231A800FFA3
70174 +:106F1000306E000F15C00005307F000325100004FF
70175 +:106F200000031902320800FF307F000317E000055C
70176 +:106F3000386900012502000200031882304800FF72
70177 +:106F4000386900013123000110600004310300FFA3
70178 +:106F5000250A0001314800FF310300FF000C6940A1
70179 +:106F600001A34021240A000110CAFFD53110FFFF00
70180 +:106F7000246E000131C800FF1119FFC638C9000195
70181 +:106F80002D1F002053E0001C258B0001240D000163
70182 +:106F90000A000648240E002051460017258B0001E8
70183 +:106FA00025090001312800FF2D0900205120001281
70184 +:106FB000258B000125430001010D5004014B1024D5
70185 +:106FC000250900011440FFF4306AFFFF3127FFFF5D
70186 +:106FD00010EE000C2582FFFF304CFFFF0000502117
70187 +:106FE0003410FFFF312800FF2D0900205520FFF24B
70188 +:106FF00025430001258B0001014648260A000602B0
70189 +:10700000316CFFFF00003821000050210A000654B7
70190 +:107010003410FFFF27BDFFD8AFB0001030F0FFFFE6
70191 +:10702000AFB10014001039423211FFE000071080A8
70192 +:10703000AFB3001C00B1282330D3FFFFAFB200185C
70193 +:1070400030A5FFFF00809021026030210044202104
70194 +:10705000AFBF00200E0005E03207001F022288218A
70195 +:107060003403FFFF0240202102002821026030216A
70196 +:1070700000003821104300093231FFFF02201021A7
70197 +:107080008FBF00208FB3001C8FB200188FB1001487
70198 +:107090008FB0001003E0000827BD00280E0005E0B7
70199 +:1070A0000000000000408821022010218FBF002036
70200 +:1070B0008FB3001C8FB200188FB100148FB0001076
70201 +:1070C00003E0000827BD0028000424003C03600002
70202 +:1070D000AC603D0810A00002348210063482101605
70203 +:1070E00003E00008AC623D0427BDFFE0AFB0001034
70204 +:1070F000309000FF2E020006AFBF001810400008BD
70205 +:10710000AFB10014001030803C03080024635784A2
70206 +:1071100000C328218CA400000080000800000000AB
70207 +:10712000000020218FBF00188FB100148FB0001015
70208 +:107130000080102103E0000827BD00209791002A5D
70209 +:1071400016200051000020213C020800904200332C
70210 +:107150000A0006BB00000000978D002615A0003134
70211 +:10716000000020210A0006BB2402000897870024A3
70212 +:1071700014E0001A00001821006020212402000100
70213 +:107180001080FFE98FBF0018000429C2004530219C
70214 +:1071900000A6582B1160FFE43C0880003C0720004B
70215 +:1071A000000569C001A76025AD0C00203C038008E4
70216 +:1071B0002402001F2442FFFFAC6000000441FFFDD9
70217 +:1071C0002463000424A5000100A6702B15C0FFF560
70218 +:1071D000000569C00A0006A58FBF00189787001C2C
70219 +:1071E0003C04080024845A58240504000E0006605C
70220 +:1071F00024060001978B002424440001308AFFFFFD
70221 +:107200002569FFFF2D48040000402821150000409B
70222 +:10721000A789002424AC3800000C19C00A0006B964
70223 +:10722000A780001C9787001E3C04080024845AD8BD
70224 +:10723000240504000E00066024060001979900262C
70225 +:10724000244400013098FFFF272FFFFF2F0E04007A
70226 +:107250000040882115C0002CA78F0026A780001EA3
70227 +:107260003A020003262401003084FFFF0E00068D41
70228 +:107270002C4500010011F8C027F00100001021C0CA
70229 +:107280000A0006BB240200089785002E978700227B
70230 +:107290003C04080024845B580E00066024060001AC
70231 +:1072A0009787002A8F89002C2445000130A8FFFF12
70232 +:1072B00024E3FFFF0109302B0040802114C0001897
70233 +:1072C000A783002AA7800022978500300E000F7543
70234 +:1072D00002002021244A05003144FFFF0E00068DE4
70235 +:1072E000240500013C05080094A500320E000F752E
70236 +:1072F00002002021244521003C0208009042003376
70237 +:107300000A0006BB000521C00A0006F3A784001E80
70238 +:1073100024AC3800000C19C00A0006B9A784001C70
70239 +:107320000A00070DA7850022308400FF27BDFFE873
70240 +:107330002C820006AFBF0014AFB000101040001543
70241 +:1073400000A03821000440803C0308002463579CBF
70242 +:10735000010328218CA40000008000080000000028
70243 +:1073600024CC007F000751C2000C59C23170FFFFCE
70244 +:107370002547C40030E5FFFF2784001C02003021B0
70245 +:107380000E0005B52407000197860028020620217B
70246 +:10739000A78400288FBF00148FB0001003E00008FE
70247 +:1073A00027BD00183C0508008CA50030000779C2F5
70248 +:1073B0000E00038125E4DF003045FFFF3C04080098
70249 +:1073C00024845B58240600010E0005B52407000143
70250 +:1073D000978E002A8FBF00148FB0001025CD0001BA
70251 +:1073E00027BD001803E00008A78D002A0007C9C2C6
70252 +:1073F0002738FF00001878C231F0FFFF3C04080076
70253 +:1074000024845AD802002821240600010E0005B564
70254 +:1074100024070001978D0026260E0100000E84002F
70255 +:1074200025AC00013C0B6000A78C0026AD603D0838
70256 +:1074300036040006000030213C0760008CE23D0469
70257 +:10744000305F000617E0FFFD24C9000100061B00A5
70258 +:10745000312600FF006440252CC50004ACE83D0443
70259 +:1074600014A0FFF68FBF00148FB0001003E00008D7
70260 +:1074700027BD0018000751C22549C8002406000195
70261 +:10748000240700013C04080024845A580E0005B566
70262 +:107490003125FFFF978700248FBF00148FB00010A5
70263 +:1074A00024E6000127BD001803E00008A786002499
70264 +:1074B0003C0660183C090800252900FCACC9502C8A
70265 +:1074C0008CC850003C0580003C020002350700805B
70266 +:1074D000ACC750003C04080024841FE03C030800B3
70267 +:1074E00024631F98ACA50008ACA2000C3C01080066
70268 +:1074F000AC2459A43C010800AC2359A803E00008BF
70269 +:107500002402000100A030213C1C0800279C59AC3B
70270 +:107510003C0C04003C0B0002008B3826008C4026FB
70271 +:107520002CE200010007502B2D050001000A4880C5
70272 +:107530003C030800246359A4004520250123182199
70273 +:107540001080000300001021AC660000240200013E
70274 +:1075500003E00008000000003C1C0800279C59AC18
70275 +:107560003C0B04003C0A0002008A3026008B3826BF
70276 +:107570002CC200010006482B2CE5000100094080C8
70277 +:107580003C030800246359A4004520250103182169
70278 +:1075900010800005000010213C0C0800258C1F986D
70279 +:1075A000AC6C00002402000103E0000800000000B1
70280 +:1075B0003C0900023C080400008830260089382677
70281 +:1075C0002CC30001008028212CE400010083102539
70282 +:1075D0001040000B000030213C1C0800279C59ACD7
70283 +:1075E0003C0A80008D4E00082406000101CA68256F
70284 +:1075F000AD4D00088D4C000C01855825AD4B000C9D
70285 +:1076000003E0000800C010213C1C0800279C59AC76
70286 +:107610003C0580008CA6000C0004202724020001F9
70287 +:1076200000C4182403E00008ACA3000C3C020002D4
70288 +:107630001082000B3C0560003C070400108700032B
70289 +:107640000000000003E00008000000008CA908D042
70290 +:10765000240AFFFD012A402403E00008ACA808D05A
70291 +:107660008CA408D02406FFFE0086182403E000083E
70292 +:10767000ACA308D03C05601A34A600108CC300806F
70293 +:1076800027BDFFF88CC50084AFA3000093A40000C1
70294 +:107690002402001010820003AFA5000403E00008DC
70295 +:1076A00027BD000893A7000114E0001497AC000266
70296 +:1076B00097B800023C0F8000330EFFFC01CF682119
70297 +:1076C000ADA50000A3A000003C0660008CC708D058
70298 +:1076D0002408FFFE3C04601A00E82824ACC508D04A
70299 +:1076E0008FA300048FA200003499001027BD00086A
70300 +:1076F000AF22008003E00008AF2300843C0B800031
70301 +:10770000318AFFFC014B48218D2800000A00080C3B
70302 +:10771000AFA8000427BDFFE8AFBF00103C1C080065
70303 +:10772000279C59AC3C0580008CA4000C8CA2000462
70304 +:107730003C0300020044282410A0000A00A31824DF
70305 +:107740003C0604003C0400021460000900A610245A
70306 +:107750001440000F3C0404000000000D3C1C080015
70307 +:10776000279C59AC8FBF001003E0000827BD00180C
70308 +:107770003C0208008C4259A40040F80900000000B7
70309 +:107780003C1C0800279C59AC0A0008358FBF00102C
70310 +:107790003C0208008C4259A80040F8090000000093
70311 +:1077A0000A00083B000000003C0880008D0201B880
70312 +:1077B0000440FFFE35090180AD2400003C031000A9
70313 +:1077C00024040040AD250004A1240008A1260009DE
70314 +:1077D000A527000A03E00008AD0301B83084FFFFCD
70315 +:1077E0000080382130A5FFFF000020210A00084555
70316 +:1077F000240600803087FFFF8CA400002406003898
70317 +:107800000A000845000028218F8300788F860070C9
70318 +:107810001066000B008040213C07080024E75B68ED
70319 +:10782000000328C000A710218C440000246300013D
70320 +:10783000108800053063000F5466FFFA000328C06B
70321 +:1078400003E00008000010213C07080024E75B6CFF
70322 +:1078500000A7302103E000088CC200003C03900028
70323 +:1078600034620001008220253C038000AC640020CB
70324 +:107870008C65002004A0FFFE0000000003E000086B
70325 +:10788000000000003C0280003443000100832025FA
70326 +:1078900003E00008AC44002027BDFFE0AFB10014B6
70327 +:1078A0003091FFFFAFB00010AFBF001812200013DF
70328 +:1078B00000A080218CA20000240400022406020003
70329 +:1078C0001040000F004028210E0007250000000096
70330 +:1078D00000001021AE000000022038218FBF0018E8
70331 +:1078E0008FB100148FB0001000402021000028212B
70332 +:1078F000000030210A00084527BD00208CA20000AE
70333 +:10790000022038218FBF00188FB100148FB00010F3
70334 +:107910000040202100002821000030210A000845F5
70335 +:1079200027BD002000A010213087FFFF8CA5000498
70336 +:107930008C4400000A000845240600068F83FD9C45
70337 +:1079400027BDFFE8AFBF0014AFB00010906700087C
70338 +:10795000008010210080282130E600400000202116
70339 +:1079600010C000088C5000000E0000BD0200202155
70340 +:10797000020020218FBF00148FB000100A000548BC
70341 +:1079800027BD00180E0008A4000000000E0000BD76
70342 +:1079900002002021020020218FBF00148FB00010B0
70343 +:1079A0000A00054827BD001827BDFFE0AFB0001052
70344 +:1079B0008F90FD9CAFBF001CAFB20018AFB1001498
70345 +:1079C00092060001008088210E00087230D2000467
70346 +:1079D00092040005001129C2A6050000348300406E
70347 +:1079E000A20300050E00087C022020210E00054A9B
70348 +:1079F0000220202124020001AE02000C02202821D6
70349 +:107A0000A602001024040002A602001224060200AE
70350 +:107A1000A60200140E000725A60200161640000F4D
70351 +:107A20008FBF001C978C00743C0B08008D6B007896
70352 +:107A30002588FFFF3109FFFF256A0001012A382B45
70353 +:107A400010E00006A78800743C0F6006240E0016A4
70354 +:107A500035ED0010ADAE00508FBF001C8FB2001886
70355 +:107A60008FB100148FB0001003E0000827BD002084
70356 +:107A700027BDFFE0AFB10014AFBF0018AFB00010DA
70357 +:107A80001080000400A088212402008010820007DA
70358 +:107A9000000000000000000D8FBF00188FB100141F
70359 +:107AA0008FB0001003E0000827BD00200E00087210
70360 +:107AB00000A020218F86FD9C0220202190C500057A
70361 +:107AC0000E00087C30B000FF2403003E1603FFF1D7
70362 +:107AD0003C0680008CC401780480FFFE34C801405D
70363 +:107AE000240900073C071000AD11000002202021EE
70364 +:107AF000A10900048FBF00188FB100148FB00010CF
70365 +:107B0000ACC701780A0008C527BD002027BDFFE0EB
70366 +:107B1000AFB00010AFBF0018AFB100143C10800030
70367 +:107B20008E110020000000000E00054AAE04002067
70368 +:107B3000AE1100208FBF00188FB100148FB000105D
70369 +:107B400003E0000827BD00203084FFFF00803821BB
70370 +:107B50002406003500A020210A0008450000282145
70371 +:107B60003084FFFF008038212406003600A0202149
70372 +:107B70000A0008450000282127BDFFD0AFB500242A
70373 +:107B80003095FFFFAFB60028AFB40020AFBF002C88
70374 +:107B9000AFB3001CAFB20018AFB10014AFB000100B
70375 +:107BA00030B6FFFF12A000270000A0218F920058DE
70376 +:107BB0008E4300003C0680002402004000033E0289
70377 +:107BC00000032C0230E4007F006698241482001D1C
70378 +:107BD00030A500FF8F8300682C68000A1100001098
70379 +:107BE0008F8D0044000358803C0C0800258C57B84A
70380 +:107BF000016C50218D4900000120000800000000A8
70381 +:107C000002D4302130C5FFFF0E0008522404008446
70382 +:107C1000166000028F920058AF8000688F8D00447C
70383 +:107C20002659002026980001032090213314FFFFDD
70384 +:107C300015A00004AF9900580295202B1480FFDC9A
70385 +:107C400000000000028010218FBF002C8FB600289A
70386 +:107C50008FB500248FB400208FB3001C8FB20018A2
70387 +:107C60008FB100148FB0001003E0000827BD003072
70388 +:107C70002407003414A70149000000009247000EB9
70389 +:107C80008F9FFDA08F90FD9C24181600A3E700197C
70390 +:107C90009242000D3C0880003C07800CA3E20018D3
70391 +:107CA000964A00123C0D60003C117FFFA60A005C62
70392 +:107CB000964400103623FFFF240200053099FFFF91
70393 +:107CC000AE1900548E46001CAD1800288CEF000041
70394 +:107CD0008DAE444801E6482601C93021AE06003881
70395 +:107CE0008E05003824CB00013C0E7F00AE05003C21
70396 +:107CF0008E0C003CAFEC0004AE0B00208E13002075
70397 +:107D0000AE13001CA3E0001BAE03002CA3E2001284
70398 +:107D10008E4A001424130050AE0A00348E0400343E
70399 +:107D2000AFE400148E590018AE1900489258000CA8
70400 +:107D3000A218004E920D000835AF0020A20F0008D7
70401 +:107D40008E090018012E282434AC4000AE0C001817
70402 +:107D5000920B0000317200FF1253027F2403FF8058
70403 +:107D60003C04080024845BE80E0008AA0000000020
70404 +:107D70003C1108008E315BE80E00087202202021C1
70405 +:107D80002405000424080001A2050025022020216A
70406 +:107D90000E00087CA20800053C0580008CB001782C
70407 +:107DA0000600FFFE8F92005834AE0140240F0002FF
70408 +:107DB0003C091000ADD10000A1CF0004ACA90178AE
70409 +:107DC0000A000962AF8000682CAD003751A0FF9413
70410 +:107DD0008F8D0044000580803C110800263157E05B
70411 +:107DE000021178218DEE000001C0000800000000A3
70412 +:107DF0002411000414B1008C3C0780003C080800EA
70413 +:107E00008D085BE88F86FD9CACE800208E4500085D
70414 +:107E10008F99FDA0240D0050ACC500308E4C000899
70415 +:107E2000ACCC00508E4B000CACCB00348E43001019
70416 +:107E3000ACC300388E4A0010ACCA00548E42001405
70417 +:107E4000ACC2003C8E5F0018AF3F00048E50001C97
70418 +:107E5000ACD0002090C40000309800FF130D024AFF
70419 +:107E6000000000008CC400348CD00030009030231F
70420 +:107E700004C000F12404008C126000EE2402000310
70421 +:107E80000A000962AF8200682419000514B900666F
70422 +:107E90003C0580003C0808008D085BE88F86FD9C4F
70423 +:107EA000ACA800208E4C00048F8AFDA0240720007F
70424 +:107EB000ACCC001C924B000824120008A14B001906
70425 +:107EC0008F82005890430009A14300188F85005805
70426 +:107ED00090BF000A33E400FF1092001028890009C7
70427 +:107EE000152000BA240E0002240D0020108D000B76
70428 +:107EF000340780002898002117000008240740005C
70429 +:107F000024100040109000053C0700012419008057
70430 +:107F1000109900023C070002240740008CC20018A0
70431 +:107F20003C03FF00004350240147F825ACDF001854
70432 +:107F300090B2000BA0D200278F8300589464000CED
70433 +:107F4000108001FE000000009467000C3C1F8000C0
70434 +:107F50002405FFBFA4C7005C9063000E2407000443
70435 +:107F6000A0C300088F820058904A000FA0CA0009E1
70436 +:107F70008F8900588D3200108FE400740244C823AA
70437 +:107F8000ACD900588D300014ACD0002C95380018B6
70438 +:107F9000330DFFFFACCD00409531001A322FFFFFAB
70439 +:107FA000ACCF00448D2E001CACCE00489128000EB2
70440 +:107FB000A0C8000890CC000801855824126001B6C2
70441 +:107FC000A0CB00088F9200580A000962AF870068B2
70442 +:107FD0002406000614A600143C0E80003C0F080086
70443 +:107FE0008DEF5BE88F85FD98ADCF00208E4900189E
70444 +:107FF0008F86FD9C8F8BFDA0ACA900008CC800383B
70445 +:1080000024040005ACA800048CCC003C1260008164
70446 +:10801000AD6C00000A000962AF84006824110007FB
70447 +:1080200010B1004B240400063C05080024A55BE8C1
70448 +:108030000E000881240400818F9200580013102B39
70449 +:108040000A000962AF820068241F002314BFFFF6F4
70450 +:108050003C0C80003C0508008CA55BE88F8BFDA0E4
70451 +:10806000AD8500208F91FD9C8E4600042564002084
70452 +:1080700026450014AE260028240600030E000F81BA
70453 +:10808000257000308F87005802002021240600034D
70454 +:108090000E000F8124E500083C04080024845BE8FE
70455 +:1080A0000E0008AA0000000092230000240A0050DD
70456 +:1080B000306200FF544AFFE18F9200580E000F6CAF
70457 +:1080C000000000000A000A6A8F920058240800335A
70458 +:1080D00014A800323C0380003C1108008E315BE89C
70459 +:1080E0008F8FFDA0AC7100208E420008240D002867
70460 +:1080F0008F89FD9CADE200308E4A000C24060009F9
70461 +:10810000ADEA00348E5F0010ADFF00388E440014DD
70462 +:10811000ADE400208E590018ADF900248E58001CE3
70463 +:10812000ADF80028A1ED00118E4E00041260003160
70464 +:10813000AD2E00288F9200580A000962AF860068B1
70465 +:10814000240D002214ADFFB8000000002404000735
70466 +:108150003C1008008E105BE83C188000AF10002037
70467 +:108160005660FEAEAF8400683C04080024845BE8DF
70468 +:108170000E0008AA241300508F84FD9C90920000EA
70469 +:10818000325900FF1333014B000000008F9200585A
70470 +:10819000000020210A000962AF8400683C05080045
70471 +:1081A00024A55BE80E000858240400810A000A6A2E
70472 +:1081B0008F92005802D498213265FFFF0E000852BA
70473 +:1081C000240400840A0009628F920058108EFF5325
70474 +:1081D000240704002887000310E00179241100041B
70475 +:1081E000240F0001548FFF4D240740000A000A228B
70476 +:1081F000240701003C05080024A55BE80E0008A444
70477 +:10820000240400828F920058000030210A00096285
70478 +:10821000AF8600683C04080024845BE88CC2003808
70479 +:108220000E0008AA8CC3003C8F9200580A000AC0B6
70480 +:1082300000002021240400823C05080024A55BE8FE
70481 +:108240000E0008A4000000008F92005800001021CA
70482 +:108250000A000962AF8200688E5000048F91FD9C75
70483 +:108260003C078000ACF00020922C00050200282181
70484 +:10827000318B0002156001562404008A8F92FDA004
70485 +:108280002404008D9245001B30A6002014C001502C
70486 +:1082900002002821922E00092408001231C900FF93
70487 +:1082A0001128014B240400810E00087202002021D5
70488 +:1082B0009258001B240F000402002021370D0042B9
70489 +:1082C000A24D001B0E00087CA22F00253C0580005B
70490 +:1082D0008CA401780480FFFE34B90140241F000201
70491 +:1082E000AF300000A33F00048F9200583C101000F4
70492 +:1082F000ACB001780A000A6B0013102B8E500004FA
70493 +:108300008F91FD9C3C038000AC700020922A0005F8
70494 +:108310000200282131420002144000172404008A80
70495 +:10832000922C00092412000402002821318B00FF46
70496 +:1083300011720011240400810E0008720200202135
70497 +:108340008F89FDA0240800122405FFFE912F001B39
70498 +:108350000200202135EE0020A12E001BA2280009DA
70499 +:108360009226000500C538240E00087CA2270005CF
70500 +:1083700002002821000020210E0009330000000027
70501 +:108380000A000A6A8F9200588E4C00043C07800055
70502 +:108390003C10080026105BE8ACEC00203C01080013
70503 +:1083A000AC2C5BE8924B0003317100041220013BBE
70504 +:1083B0008F84FD9C24020006A0820009924F001BBE
70505 +:1083C000240EFFC031E9003F012E4025A08800089F
70506 +:1083D0009245000330A6000114C0013200000000E5
70507 +:1083E0008E420008AE0200083C0208008C425BF09E
70508 +:1083F000104001318F90FDA0000219C28F8DFD9CAD
70509 +:10840000A603000C8E4A000C24180001240400145A
70510 +:10841000AE0A002C8E420010AE02001C965F0016C1
70511 +:10842000A61F003C96590014A619003EADB8000CDA
70512 +:10843000A5B80010A5B80012A5B80014A5B800167C
70513 +:1084400012600144A2040011925100033232000272
70514 +:108450002E5300018F920058266200080A0009621C
70515 +:10846000AF8200688E4400043C1980003C068008FE
70516 +:10847000AF2400208E45000890D80000240D005045
70517 +:10848000331100FF122D009C2407008824060009E8
70518 +:108490000E000845000000000A000A6A8F9200588A
70519 +:1084A0008E5000043C0980003C118008AD30002053
70520 +:1084B0009228000024050050310400FF10850110AF
70521 +:1084C0002407008802002021000028210E00084512
70522 +:1084D0002406000E922D00002418FF80020028219F
70523 +:1084E00001B8802524040004240600300E0007256E
70524 +:1084F000A23000000A000A6A8F9200588E500004D1
70525 +:108500008F91FDA03C028000AC500020923F001BE8
70526 +:1085100033F900101320006C240700810200202191
70527 +:10852000000028212406001F0E000845000000005E
70528 +:108530000A000A6A8F9200588E44001C0E00085DE3
70529 +:1085400000000000104000E3004048218F880058E0
70530 +:1085500024070089012020218D05001C240600012C
70531 +:108560000E000845000000000A000A6A8F920058B9
70532 +:10857000964900023C10080026105BE831280004F0
70533 +:10858000110000973C0460008E4E001C3C0F8000E0
70534 +:10859000ADEE00203C010800AC2E5BE896470002DF
70535 +:1085A00030E40001148000E6000000008E42000468
70536 +:1085B000AE0200083C1008008E105BF0120000ECC8
70537 +:1085C0003C0F80008F92FD9C241000018E4E0018FD
70538 +:1085D0008F8DFDA08F9FFD9801CF4825AE490018D3
70539 +:1085E000A2400005AE50000C3C0808008D085BF06E
70540 +:1085F0008F840058A6500010000839C2A6500012FF
70541 +:10860000A6500014A6500016A5A7000C8C8C0008DC
70542 +:108610008F8B00588F8A0058ADAC002C8D63000CF6
70543 +:1086200024070002ADA3001C91460010A1A6001172
70544 +:108630008F82005890450011A3E500088F990058DB
70545 +:1086400093380012A258004E8F910058922F0013B9
70546 +:10865000A1AF00128F920058964E0014A5AE003CB8
70547 +:1086600096490016A5A9003E8E480018ADA8001432
70548 +:108670005660FD6AAF8700683C05080024A55BE8EA
70549 +:108680000E000881000020218F9200580000382140
70550 +:108690000A000962AF8700683C05080024A55BE872
70551 +:1086A0000E0008A4240400828F9200580A000A4D8C
70552 +:1086B000000038210E000F6C000000008F9200585F
70553 +:1086C0000A000AC0000020210E00087202002021CA
70554 +:1086D0009223001B02002021346A00100E00087C47
70555 +:1086E000A22A001B000038210200202100002821BE
70556 +:1086F0000A000BA52406001F9242000C305F000107
70557 +:1087000013E0000300000000964A000EA4CA002CEB
70558 +:10871000924B000C316300025060000600003821CB
70559 +:108720008E470014964C0012ACC7001CA4CC001A53
70560 +:10873000000038210A000B7F240600093C050800D0
70561 +:1087400024A55BE80E0008A42404008B8F92005837
70562 +:108750000A000A4D0013382B3C0C08008D8C5BE896
70563 +:1087600024DFFFFE25930100326B007F016790211B
70564 +:1087700002638824AD110028AE4600E0AE4000E45C
70565 +:108780000A0009B3AE5F001CACC000543C0D0800E9
70566 +:108790008DAD5BE83C18800C37090100ACED00287A
70567 +:1087A0008E510014AD3100E08E4F0014AD2F00E467
70568 +:1087B0008E4E001025C7FFFE0A0009F4AD27001CED
70569 +:1087C0005491FDD6240740000A000A222407100015
70570 +:1087D0000E00092D000000000A000A6A8F9200585E
70571 +:1087E0008C83442C3C12DEAD3651BEEF3C010800B8
70572 +:1087F000AC205BE810710062000000003C196C6264
70573 +:1088000037387970147800082404000297850074C2
70574 +:108810009782006C2404009200A2F82B13E0001948
70575 +:1088200002002821240400020E00069524050200FF
70576 +:108830003C068000ACC200203C010800AC225BE892
70577 +:108840001040000D8F8C0058240A002824040003D7
70578 +:10885000918B0010316300FF546A00012404000171
70579 +:108860000E0000810000000010400004240400837A
70580 +:108870000A000BC28F920058240400833C050800B4
70581 +:1088800024A55BE80E000881000000008F920058CC
70582 +:108890000013382B0A000962AF8700680A000B49F1
70583 +:1088A000240200128E4400080E00085D0000000043
70584 +:1088B0000A000B55AE0200083C05080024A55BE841
70585 +:1088C0000E000858240400878F9200580A000B728B
70586 +:1088D0000013102B240400040E000695240500301C
70587 +:1088E0001440002A004048218F8800582407008344
70588 +:1088F000012020218D05001C0A000BB32406000175
70589 +:108900008F8300788F8600701066FEEE000038219D
70590 +:108910003C07080024E75B6C000320C00087282187
70591 +:108920008CAE000011D0005D246F000131E3000F18
70592 +:108930005466FFFA000320C00A000B8C00003821A7
70593 +:108940008E4400040E00085D000000000A000BC801
70594 +:10895000AE0200083C05080024A55BE80E0008A450
70595 +:10896000240400828F9200580A000B72000010212C
70596 +:108970003C05080024A55BE80A000C7C2404008761
70597 +:108980008C83442C0A000C5B3C196C628F88005865
70598 +:108990003C0780083C0C8000240B0050240A000196
70599 +:1089A000AD820020A0EB0000A0EA000191030004CA
70600 +:1089B000A0E3001891040005A0E400199106000648
70601 +:1089C0003C04080024845B6CA0E6001A91020007B6
70602 +:1089D0003C06080024C65B68A0E2001B9105000865
70603 +:1089E000A0E5001C911F0009A0FF001D9119000ABD
70604 +:1089F000A0F9001E9118000BA0F8001F9112000CA6
70605 +:108A0000A0F200209111000DA0F100219110000EA4
70606 +:108A1000A0F00022910F000FA0EF0023910E001094
70607 +:108A2000A0EE0024910D0011A0ED0025950C00147E
70608 +:108A3000A4EC0028950B00168F8A00708F920078A6
70609 +:108A4000A4EB002A95030018000A10C02545000178
70610 +:108A5000A4E3002C8D1F001C0044C0210046C82147
70611 +:108A600030A5000FAF3F0000AF09000010B20006B4
70612 +:108A7000AF850070000038218D05001C01202021E9
70613 +:108A80000A000BB32406000124AD000131A7000F3A
70614 +:108A9000AF8700780A000CF9000038213C06080076
70615 +:108AA00024C65B680086902100003821ACA000003D
70616 +:108AB0000A000B8CAE4000003C0482013C036000C5
70617 +:108AC00034820E02AC603D68AF80009803E000087D
70618 +:108AD000AC623D6C27BDFFE8AFB000103090FFFFE7
70619 +:108AE000001018422C620041AFBF00141440000275
70620 +:108AF00024040080240300403C010800AC300060E6
70621 +:108B00003C010800AC2300640E000F7500602821B2
70622 +:108B1000244802BF2409FF8001092824001039805D
70623 +:108B2000001030408FBF00148FB0001000A720212C
70624 +:108B300000861821AF8300803C010800AC25005856
70625 +:108B40003C010800AC24005C03E0000827BD0018CD
70626 +:108B5000308300FF30C6FFFF30E400FF3C08800098
70627 +:108B60008D0201B80440FFFE000354000144382583
70628 +:108B70003C09600000E920253C031000AD050180A0
70629 +:108B8000AD060184AD04018803E00008AD0301B81F
70630 +:108B90008F8500583C0A6012354800108CAC0004E8
70631 +:108BA0003C0D600E35A60010318B00062D690001CA
70632 +:108BB000AD0900C48CA70004ACC731808CA20008AA
70633 +:108BC00094A40002ACC231848CA3001C0460000396
70634 +:108BD000A784009003E00008000000008CAF00189C
70635 +:108BE000ACCF31D08CAE001C03E00008ACCE31D449
70636 +:108BF0008F8500588F87FF288F86FF308CAE00044A
70637 +:108C00003C0F601235E80010ACEE00788CAD000827
70638 +:108C1000ACED007C8CAC0010ACCC004C8CAB000CF0
70639 +:108C2000ACCB004894CA00543C0208008C4200447B
70640 +:108C300025490001A4C9005494C400543083FFFFA7
70641 +:108C400010620017000000003C0208008C42004047
70642 +:108C5000A4C200528CA30018ACE300308CA2001414
70643 +:108C6000ACE2002C8CB90018ACF900388CB80014B8
70644 +:108C700024050001ACF800348D0600BC50C5001975
70645 +:108C80008D0200B48D0200B8A4E2004894E40048CC
70646 +:108C9000A4E4004A94E800EA03E000083102FFFF80
70647 +:108CA0003C0208008C420024A4C00054A4C200521C
70648 +:108CB0008CA30018ACE300308CA20014ACE2002CB2
70649 +:108CC0008CB90018ACF900388CB8001424050001E8
70650 +:108CD000ACF800348D0600BC54C5FFEB8D0200B823
70651 +:108CE0008D0200B4A4E2004894E40048A4E4004AE1
70652 +:108CF00094E800EA03E000083102FFFF8F86005885
70653 +:108D00003C0480008CC900088CC80008000929C0F8
70654 +:108D1000000839C0AC87002090C30007306200040F
70655 +:108D20001040003EAF85009490CB0007316A0008E8
70656 +:108D30001140003D8F87FF2C8CCD000C8CCE001491
70657 +:108D400001AE602B11800036000000008CC2000CC8
70658 +:108D5000ACE200708CCB00188F85FF288F88FF3025
70659 +:108D6000ACEB00748CCA00102402FFF8ACAA00D847
70660 +:108D70008CC9000CAD0900608CC4001CACA400D0F0
70661 +:108D800090E3007C0062C824A0F9007C90D8000722
70662 +:108D9000330F000811E000040000000090ED007C9B
70663 +:108DA00035AC0001A0EC007C90CF000731EE000153
70664 +:108DB00011C000060000000090E3007C241800347D
70665 +:108DC00034790002A0F9007CACB800DC90C2000746
70666 +:108DD0003046000210C000040000000090E8007C53
70667 +:108DE00035040004A0E4007C90ED007D3C0B600E97
70668 +:108DF000356A001031AC003FA0EC007D8D4931D4C4
70669 +:108E00003127000110E00002240E0001A0AE00098D
70670 +:108E100094AF00EA03E0000831E2FFFF8F87FF2CE8
70671 +:108E20000A000DAF8CC200140A000DB0ACE0007057
70672 +:108E30008F8C005827BDFFD8AFB3001CAFB200180D
70673 +:108E4000AFB00010AFBF0020AFB10014918F00157C
70674 +:108E50003C13600E3673001031EB000FA38B009CA7
70675 +:108E60008D8F00048D8B0008959F0012959900103E
70676 +:108E70009584001A9598001E958E001C33EDFFFF17
70677 +:108E8000332AFFFF3089FFFF3308FFFF31C7FFFFA1
70678 +:108E90003C010800AC2D00243C010800AC29004432
70679 +:108EA0003C010800AC2A0040AE683178AE67317CE6
70680 +:108EB00091850015959100163C12601236520010F3
70681 +:108EC00030A200FF3230FFFFAE623188AE5000B4F6
70682 +:108ED00091830014959F0018240600010066C804C1
70683 +:108EE00033F8FFFFAE5900B8AE5800BC918E0014A5
70684 +:108EF000AF8F00843C08600631CD00FFAE4D00C04E
70685 +:108F0000918A00159584000E3C07600A314900FFE4
70686 +:108F1000AF8B00883084FFFFAE4900C835110010C8
70687 +:108F20000E000D1034F004103C0208008C4200606A
70688 +:108F30003C0308008C6300643C0608008CC60058A3
70689 +:108F40003C0508008CA5005C8F8400808FBF00204A
70690 +:108F5000AE23004CAE65319CAE030054AE4500DC40
70691 +:108F6000AE6231A0AE6331A4AE663198AE22004845
70692 +:108F70008FB3001CAE0200508FB10014AE4200E06F
70693 +:108F8000AE4300E4AE4600D88FB000108FB2001898
70694 +:108F90000A00057D27BD0028978500929783007CF5
70695 +:108FA00027BDFFE8AFB0001000A3102BAFBF001427
70696 +:108FB000240400058F900058104000552409000239
70697 +:108FC0000E0006958F850080AF8200942404000374
70698 +:108FD0001040004F240900023C0680000E00008172
70699 +:108FE000ACC2002024070001240820001040004DDE
70700 +:108FF00024040005978E00928F8AFF2C24090050CC
70701 +:1090000025C50001A7850092A14900003C0D08007C
70702 +:109010008DAD0064240380008F84FF28000D66005E
70703 +:10902000AD4C0018A5400006954B000A8F85FF3017
70704 +:109030002402FF8001633024A546000A915F000AE4
70705 +:109040000000482103E2C825A159000AA0A0000899
70706 +:10905000A140004CA08000D5961800029783009094
70707 +:109060003C020004A49800EA960F00022418FFBFF7
70708 +:1090700025EE2401A48E00BE8E0D0004ACAD00448C
70709 +:109080008E0C0008ACAC0040A4A00050A4A000547A
70710 +:109090008E0B000C240C0030AC8B00288E060010C8
70711 +:1090A000AC860024A480003EA487004EA487005014
70712 +:1090B000A483003CAD420074AC8800D8ACA800602A
70713 +:1090C000A08700FC909F00D433F9007FA09900D4C2
70714 +:1090D000909000D402187824A08F00D4914E007C88
70715 +:1090E00035CD0001A14D007C938B009CAD480070F4
70716 +:1090F000AC8C00DCA08B00D68F8800888F87008422
70717 +:10910000AC8800C4AC8700C8A5400078A540007AB0
70718 +:109110008FBF00148FB000100120102103E0000861
70719 +:1091200027BD00188F8500940E0007258F860080CC
70720 +:109130000A000E9F2409000227BDFFE0AFB0001017
70721 +:109140008F900058AFB10014AFBF00188E09000413
70722 +:109150000E00054A000921C08E0800048F84FF28F4
70723 +:109160008F82FF30000839C03C068000ACC7002069
70724 +:10917000948500EA904300131460001C30B1FFFF97
70725 +:109180008F8CFF2C918B0008316A00401540000B3A
70726 +:10919000000000008E0D0004022030218FBF001857
70727 +:1091A0008FB100148FB00010240400220000382179
70728 +:1091B000000D29C00A000D2F27BD00200E000098C9
70729 +:1091C000000000008E0D0004022030218FBF001827
70730 +:1091D0008FB100148FB00010240400220000382149
70731 +:1091E000000D29C00A000D2F27BD00200E000090A1
70732 +:1091F000000000008E0D0004022030218FBF0018F7
70733 +:109200008FB100148FB00010240400220000382118
70734 +:10921000000D29C00A000D2F27BD002027BDFFE04B
70735 +:10922000AFB200183092FFFFAFB00010AFBF001C0C
70736 +:10923000AFB100141240001E000080218F8600583C
70737 +:109240008CC500002403000600053F02000514023F
70738 +:1092500030E4000714830016304500FF2CA80006F8
70739 +:1092600011000040000558803C0C0800258C58BCBB
70740 +:10927000016C50218D490000012000080000000011
70741 +:109280008F8E0098240D000111CD005024020002A1
70742 +:10929000AF820098260900013130FFFF24C800206A
70743 +:1092A0000212202B010030211480FFE5AF88005806
70744 +:1092B000020010218FBF001C8FB200188FB1001464
70745 +:1092C0008FB0001003E0000827BD00209387007EC8
70746 +:1092D00054E00034000030210E000DE700000000D3
70747 +:1092E0008F8600580A000EFF240200018F87009825
70748 +:1092F0002405000210E50031240400130000282199
70749 +:1093000000003021240700010E000D2F0000000096
70750 +:109310000A000F008F8600588F83009824020002F5
70751 +:109320001462FFF6240400120E000D9A00000000E3
70752 +:109330008F85009400403021240400120E000D2F70
70753 +:10934000000038210A000F008F8600588F83009894
70754 +:109350002411000310710029241F0002107FFFCE8A
70755 +:1093600026090001240400100000282100003021FB
70756 +:109370000A000F1D240700018F91009824060002A7
70757 +:109380001626FFF9240400100E000E410000000014
70758 +:10939000144000238F9800588F8600580A000EFF53
70759 +:1093A00024020003240400140E000D2F00002821C5
70760 +:1093B0008F8600580A000EFF240200020E000EA93C
70761 +:1093C000000000000A000F008F8600580E000D3FBD
70762 +:1093D00000000000241900022404001400002821C9
70763 +:1093E0000000302100003821AF9900980E000D2FA9
70764 +:1093F000000000000A000F008F8600580E000D5775
70765 +:10940000000000008F8500942419000200403021E4
70766 +:1094100024040010000038210A000F56AF9900986C
70767 +:109420000040382124040010970F0002000028217A
70768 +:109430000E000D2F31E6FFFF8F8600580A000F0047
70769 +:10944000AF9100988F84FF2C3C077FFF34E6FFFF2D
70770 +:109450008C8500182402000100A61824AC83001893
70771 +:1094600003E00008A08200053084FFFF30A5FFFF65
70772 +:109470001080000700001821308200011040000217
70773 +:1094800000042042006518211480FFFB00052840DD
70774 +:1094900003E000080060102110C000070000000079
70775 +:1094A0008CA2000024C6FFFF24A50004AC820000AB
70776 +:1094B00014C0FFFB2484000403E000080000000047
70777 +:1094C00010A0000824A3FFFFAC86000000000000ED
70778 +:1094D000000000002402FFFF2463FFFF1462FFFA74
70779 +:1094E0002484000403E0000800000000000411C010
70780 +:1094F00003E000082442024027BDFFE8AFB000109F
70781 +:1095000000808021AFBF00140E000F9600A0202124
70782 +:1095100000504821240AFF808FBF00148FB0001034
70783 +:10952000012A30243127007F3C08800A3C042100B6
70784 +:1095300000E8102100C428253C03800027BD001846
70785 +:10954000AC650024AF820038AC400000AC6500245C
70786 +:1095500003E00008AC4000403C0D08008DAD005811
70787 +:1095600000056180240AFF8001A45821016C482174
70788 +:10957000012A30243127007F3C08800C3C04210064
70789 +:1095800000E8102100C428253C038000AC650028B9
70790 +:10959000AF82003403E00008AC40002430A5FFFF98
70791 +:1095A0003C0680008CC201B80440FFFE3C086015F8
70792 +:1095B00000A838253C031000ACC40180ACC0018475
70793 +:1095C000ACC7018803E00008ACC301B83C0D08003B
70794 +:1095D0008DAD005800056180240AFF8001A4582148
70795 +:1095E000016C4021010A4824000931403107007F05
70796 +:1095F00000C728253C04200000A418253C02800058
70797 +:10960000AC43083003E00008AF80003427BDFFE81A
70798 +:10961000AFB0001000808021AFBF00140E000F9685
70799 +:1096200000A0202100504821240BFF80012B502452
70800 +:10963000000A39403128007F3C0620008FBF00140B
70801 +:109640008FB0001000E8282534C2000100A21825C0
70802 +:109650003C04800027BD0018AC83083003E00008FC
70803 +:10966000AF8000383C0580088CA700603C0680086D
70804 +:109670000087102B144000112C8340008CA8006040
70805 +:109680002D0340001060000F240340008CC90060CF
70806 +:109690000089282B14A00002008018218CC30060D0
70807 +:1096A00000035A42000B30803C0A0800254A59202A
70808 +:1096B00000CA202103E000088C8200001460FFF340
70809 +:1096C0002403400000035A42000B30803C0A08008B
70810 +:1096D000254A592000CA202103E000088C8200009E
70811 +:1096E0003C05800890A60008938400AB24C20001CA
70812 +:1096F000304200FF3043007F1064000C0002382726
70813 +:10970000A0A200083C0480008C85017804A0FFFE24
70814 +:109710008F8A00A0240900023C081000AC8A014096
70815 +:10972000A089014403E00008AC8801780A00101BFE
70816 +:1097300030E2008027BDFFD8AFB200188F9200A49E
70817 +:10974000AFBF0020AFB3001CAFB00010AFB100142A
70818 +:109750008F9300348E5900283C1000803C0EFFEFA0
70819 +:10976000AE7900008E580024A260000A35CDFFFFBC
70820 +:10977000AE7800049251002C3C0BFF9F356AFFFF2E
70821 +:10978000A271000C8E6F000C3C080040A271000B0F
70822 +:1097900001F06025018D4824012A382400E8302595
70823 +:1097A000AE66000C8E450004AE6000183C0400FF5D
70824 +:1097B000AE6500148E43002C3482FFFFA6600008C3
70825 +:1097C0000062F824AE7F00108E5900088F9000A030
70826 +:1097D000964E0012AE7900208E51000C31D83FFF1A
70827 +:1097E00000187980AE7100248E4D001401F06021C4
70828 +:1097F00031CB0001AE6D00288E4A0018000C41C22A
70829 +:10980000000B4B80AE6A002C8E46001C01093821EB
70830 +:10981000A667001CAE660030964500028E4400200C
70831 +:10982000A665001EAE64003492430033306200042B
70832 +:1098300054400006924700003C0280083443010077
70833 +:109840008C7F00D0AE7F0030924700008F860038BA
70834 +:10985000A0C700309245003330A4000250800007BA
70835 +:10986000925100018F880038240BFF80910A00304C
70836 +:10987000014B4825A1090030925100018F9000381A
70837 +:10988000240CFFBF2404FFDFA21100318F8D0038AC
70838 +:109890003C1880083711008091AF003C31EE007F0A
70839 +:1098A000A1AE003C8F890038912B003C016C502404
70840 +:1098B000A12A003C8F9F00388E68001493E6003C7C
70841 +:1098C0002D0700010007114000C4282400A218251C
70842 +:1098D000A3E3003C8F87003896590012A4F90032A8
70843 +:1098E0008E450004922E007C30B0000300107823D7
70844 +:1098F00031ED000300AD102131CC000215800002D3
70845 +:1099000024460034244600303C0280083443008062
70846 +:10991000907F007C00BFC824333800041700000289
70847 +:1099200024C2000400C010218F98003824190002BE
70848 +:10993000ACE20034A3190000924F003F8F8E003834
70849 +:109940003C0C8008358B0080A1CF00018F9100383E
70850 +:10995000924D003F8E440004A62D0002956A005CE3
70851 +:109960000E000FF43150FFFF00024B800209382532
70852 +:109970003C08420000E82825AE2500048E4400384B
70853 +:109980008F850038ACA400188E460034ACA6001CAD
70854 +:10999000ACA0000CACA00010A4A00014A4A0001661
70855 +:1099A000A4A00020A4A00022ACA000248E62001479
70856 +:1099B00050400001240200018FBF00208FB3001C23
70857 +:1099C0008FB200188FB100148FB00010ACA2000845
70858 +:1099D0000A00101327BD002827BDFFC83C058008DA
70859 +:1099E00034A40080AFBF0034AFBE0030AFB7002C4E
70860 +:1099F000AFB60028AFB50024AFB40020AFB3001C51
70861 +:109A0000AFB20018AFB10014AFB00010948300786B
70862 +:109A10009482007A104300512405FFFF0080F0215A
70863 +:109A20000A0011230080B821108B004D8FBF003435
70864 +:109A30008F8600A03C1808008F18005C2411FF805E
70865 +:109A40003C1680000306782101F18024AED0002C62
70866 +:109A500096EE007A31EC007F3C0D800E31CB7FFF1B
70867 +:109A6000018D5021000B4840012AA82196A4000036
70868 +:109A70003C0808008D0800582405FF8030953FFF02
70869 +:109A800001061821001539800067C8210325F82434
70870 +:109A90003C02010003E290253338007F3C11800C2A
70871 +:109AA000AED20028031190219250000D320F000415
70872 +:109AB00011E0003702E0982196E3007A96E8007AF8
70873 +:109AC00096E5007A2404800031077FFF24E300013B
70874 +:109AD00030627FFF00A4F82403E2C825A6F9007ACB
70875 +:109AE00096E6007A3C1408008E94006030D67FFF22
70876 +:109AF00012D400C1000000008E5800188F8400A00E
70877 +:109B000002A028212713FFFF0E000FCEAE53002C1A
70878 +:109B100097D5007897D4007A12950010000028217C
70879 +:109B20003C098008352401003C0A8008914800085F
70880 +:109B3000908700D53114007F30E400FF0284302B81
70881 +:109B400014C0FFB9268B0001938E00AB268C000158
70882 +:109B5000008E682115ACFFB78F8600A08FBF003440
70883 +:109B60008FBE00308FB7002C8FB600288FB5002431
70884 +:109B70008FB400208FB3001C8FB200188FB1001477
70885 +:109B80008FB0001000A0102103E0000827BD0038AE
70886 +:109B900000C020210E000F99028028218E4B00105A
70887 +:109BA0008E4C00308F84003824090002016C502351
70888 +:109BB000AE4A0010A089000096E3005C8E4400309D
70889 +:109BC0008F9100380E000FF43070FFFF00024380C9
70890 +:109BD000020838253C02420000E22825AE25000498
70891 +:109BE0008E5F00048F8A00388E590000240B000815
70892 +:109BF000AD5F001CAD590018AD40000CAD40001029
70893 +:109C00009246000A240400052408C00030D000FF5A
70894 +:109C1000A550001496580008A55800169251000A45
70895 +:109C20003C188008322F00FFA54F0020964E0008F8
70896 +:109C300037110100A54E0022AD400024924D000BCB
70897 +:109C400031AC00FFA54C0002A14B00018E49003051
70898 +:109C50008F830038240BFFBFAC690008A06400307C
70899 +:109C60008F9000382403FFDF9607003200E8282495
70900 +:109C700000B51025A6020032921F003233F9003FD2
70901 +:109C800037260040A20600328F8C0038AD800034A9
70902 +:109C90008E2F00D0AD8F0038918E003C3C0F7FFF9F
70903 +:109CA00031CD007FA18D003C8F84003835EEFFFF61
70904 +:109CB000908A003C014B4824A089003C8F850038E5
70905 +:109CC00090A8003C01033824A0A7003C8E42003439
70906 +:109CD0008F9100383C038008AE2200408E59002C42
70907 +:109CE0008E5F0030033F3023AE26004492300048A0
70908 +:109CF0003218007FA23800488F8800388E4D00301F
70909 +:109D00008D0C004801AE582401965024014B482583
70910 +:109D1000AD0900489244000AA104004C964700088F
70911 +:109D20008F850038A4A7004E8E5000308E4400303E
70912 +:109D30000E0003818C65006092F9007C0002F940FE
70913 +:109D4000004028210002110003E2302133360002D6
70914 +:109D500012C00003020680210005B0800216802197
70915 +:109D6000926D007C31B30004126000020005708027
70916 +:109D7000020E80218E4B00308F8800382405800031
70917 +:109D8000316A0003000A4823312400030204182129
70918 +:109D9000AD03003496E4007A96F0007A96F1007AEA
70919 +:109DA00032027FFF2447000130FF7FFF0225C824D5
70920 +:109DB000033F3025A6E6007A96F8007A3C120800A8
70921 +:109DC0008E520060330F7FFF11F200180000000078
70922 +:109DD0008F8400A00E000FCE02A028218F8400A047
70923 +:109DE0000E000FDE028028210E001013000000007C
70924 +:109DF0000A00111F0000000096F1007A022480245E
70925 +:109E0000A6F0007A92EF007A92EB007A31EE00FF32
70926 +:109E1000000E69C2000D6027000C51C03169007F3F
70927 +:109E2000012A20250A001119A2E4007A96E6007A98
70928 +:109E300000C5C024A6F8007A92EF007A92F3007A67
70929 +:109E400031F200FF001271C2000E6827000DB1C090
70930 +:109E5000326C007F01962825A2E5007A0A0011D015
70931 +:109E60008F8400A03C0380003084FFFF30A5FFFFFB
70932 +:109E7000AC640018AC65001C03E000088C620014A0
70933 +:109E800027BDFFA03C068008AFBF005CAFBE0058F6
70934 +:109E9000AFB70054AFB60050AFB5004CAFB40048F8
70935 +:109EA000AFB30044AFB20040AFB1003CAFB0003838
70936 +:109EB00034C80100910500D590C700083084FFFF29
70937 +:109EC00030A500FF30E2007F0045182AAFA4001043
70938 +:109ED000A7A00018A7A0002610600055AFA000148E
70939 +:109EE00090CA00083149007F00A9302324D3FFFF26
70940 +:109EF0000013802B8FB400100014902B02128824C2
70941 +:109F0000522000888FB300143C03800894790052DB
70942 +:109F1000947E00508FB60010033EC0230018BC0092
70943 +:109F2000001714030016FC0002C2A82A16A00002A3
70944 +:109F3000001F2C030040282100133C0000072403CD
70945 +:109F400000A4102A5440000100A020212885000907
70946 +:109F500014A000020080A021241400083C0C8008FA
70947 +:109F60008D860048001459808D88004C3C03800089
70948 +:109F70003169FFFF3C0A0010012A202534710400DA
70949 +:109F8000AC660038AF9100A4AC68003CAC64003013
70950 +:109F900000000000000000000000000000000000C1
70951 +:109FA00000000000000000000000000000000000B1
70952 +:109FB0008C6E000031CD002011A0FFFD0014782A26
70953 +:109FC00001F01024104000390000A8213C16800840
70954 +:109FD00092D700083C1280008E44010032F6007FC8
70955 +:109FE0000E000F9902C028218E3900108E44010006
70956 +:109FF0000000902133373FFF0E000FB102E028210F
70957 +:10A00000923800003302003F2C500008520000102C
70958 +:10A0100000008821000210803C030800246358E4FB
70959 +:10A020000043F8218FFE000003C00008000000007C
70960 +:10A0300090CF0008938C00AB31EE007F00AE682318
70961 +:10A04000018D58210A0012172573FFFF0000882197
70962 +:10A050003C1E80008FC401000E000FCE02E02821BC
70963 +:10A060008FC401000E000FDE02C028211220000F55
70964 +:10A070000013802B8F8B00A426A400010004AC00E9
70965 +:10A08000027298230015AC032578004002B4B02A70
70966 +:10A090000013802B241700010300882102D0102414
70967 +:10A0A000AF9800A41440FFC9AFB700143C07800864
70968 +:10A0B00094E200508FAE00103C05800002A288217F
70969 +:10A0C0003C060020A4F10050ACA6003094F40050EF
70970 +:10A0D00094EF005201D51823306CFFFF11F4001EDD
70971 +:10A0E000AFAC00108CEF004C001561808CF500487F
70972 +:10A0F00001EC28210000202100AC582B02A4C02133
70973 +:10A10000030BB021ACE5004CACF600488FB4001056
70974 +:10A110000014902B021288241620FF7C3C03800838
70975 +:10A120008FB300148FBF005C8FBE00583A620001ED
70976 +:10A130008FB700548FB600508FB5004C8FB40048D5
70977 +:10A140008FB300448FB200408FB1003C8FB0003815
70978 +:10A1500003E0000827BD006094FE00548CF2004428
70979 +:10A1600033C9FFFE0009C8C00259F821ACBF003C4A
70980 +:10A170008CE800448CAD003C010D50231940003B9D
70981 +:10A18000000000008CF7004026E20001ACA200387D
70982 +:10A190003C05005034A700103C038000AC67003041
70983 +:10A1A00000000000000000000000000000000000AF
70984 +:10A1B000000000000000000000000000000000009F
70985 +:10A1C0008C7800003316002012C0FFFD3C1180087F
70986 +:10A1D000962200543C1580003C068008304E000159
70987 +:10A1E000000E18C0007578218DEC04003C070800B3
70988 +:10A1F0008CE700443C040020ACCC00488DF40404FF
70989 +:10A20000240B0001ACD4004C10EB0260AEA4003073
70990 +:10A21000963900523C0508008CA5004000B99021F9
70991 +:10A22000A6320052963F005427ED0001A62D00549F
70992 +:10A230009626005430C4FFFF5487FF2F8FB40010C0
70993 +:10A2400030A5FFFF0E0011F4A62000543C070800C3
70994 +:10A250008CE70024963E00520047B82303D74823DA
70995 +:10A26000A62900520A0012198FB400108CE2004097
70996 +:10A270000A0012BE00000000922400012407000121
70997 +:10A280003085007F14A7001C97AD00268E2B00148C
70998 +:10A29000240CC000316A3FFF01AC48243C06080092
70999 +:10A2A0008CC60060012A402531043FFF0086882BC0
71000 +:10A2B00012200011A7A800263C0508008CA5005814
71001 +:10A2C0008F9100A0000439802402FF8000B1182182
71002 +:10A2D0000067F82103E2F02433F8007F3C1280008D
71003 +:10A2E0003C19800EAE5E002C0319702191D0000D38
71004 +:10A2F000360F0004A1CF000D0E001028241200011B
71005 +:10A30000241100013C1E80008FC401000E000FCEFE
71006 +:10A3100002E028218FC401000E000FDE02C02821B8
71007 +:10A320001620FF558F8B00A40A0012860013802B85
71008 +:10A330008F8600A490C80001310400201080019194
71009 +:10A34000241000013C048008348B0080916A007C5A
71010 +:10A350008F9E0034AFA0002C314900011120000F66
71011 +:10A36000AFB000288CCD00148C8E006001AE602B45
71012 +:10A370001580000201A038218C8700603C188008FD
71013 +:10A38000370300808C70007000F0782B15E000021D
71014 +:10A3900000E020218C640070AFA4002C3C028008F7
71015 +:10A3A000344500808CD200148CBF0070025FC82B33
71016 +:10A3B00017200002024020218CA400708FA7002CDF
71017 +:10A3C0000087182310600003AFA3003024050002AB
71018 +:10A3D000AFA500288FA400280264882B162000BA9D
71019 +:10A3E000000018218CD000388FCE000C3C0F00806C
71020 +:10A3F000AFD000008CCD00343C0CFF9F01CF58251E
71021 +:10A40000AFCD000490CA003F3586FFFF01662024CF
71022 +:10A410003C0900203C08FFEFA3CA000B0089382547
71023 +:10A420003511FFFF00F118243C0500088F8700A4B8
71024 +:10A430000065C825AFD9000C8CE20014AFC000182D
71025 +:10A440008FA60030AFC200148CF800188FB0002C1B
71026 +:10A450003C1FFFFBAFD8001C8CEF000837F2FFFF5A
71027 +:10A4600003326824AFCF00248CEC000C020670216C
71028 +:10A47000AFCD000CA7C00038A7C0003AAFCE002C6B
71029 +:10A48000AFCC0020AFC000288CEA00148FAB002CAA
71030 +:10A49000014B48230126402311000011AFC80010D2
71031 +:10A4A00090EB003D8FC900048FC80000000B5100E5
71032 +:10A4B000012A28210000102100AA882B010218215E
71033 +:10A4C0000071F821AFC50004AFDF000090F2003D3D
71034 +:10A4D000A3D2000A8F9900A497380006A7D80008D5
71035 +:10A4E0008F910038240800023C038008A228000055
71036 +:10A4F0003465008094BF005C8FA4002C33F0FFFF14
71037 +:10A500000E000FF48F9200380002CB808F8500A4DC
71038 +:10A51000021978253C18420001F87025AE4E00045F
71039 +:10A520008F8400388CAD0038AC8D00188CAC0034B2
71040 +:10A53000AC8C001CAC80000CAC800010A48000141B
71041 +:10A54000A4800016A4800020A4800022AC800024F7
71042 +:10A5500090A6003F8FA7002CA486000250E0019235
71043 +:10A56000240700018FA200305040000290A2003D5D
71044 +:10A5700090A2003E244A0001A08A00018F84003886
71045 +:10A580008FA9002CAC8900083C128008364D008051
71046 +:10A5900091AC007C3186000214C000022407003414
71047 +:10A5A000240700308F8500A43C198008373F0080C5
71048 +:10A5B00090B0000093F9007C240E0004A0900030BD
71049 +:10A5C0008F8F00A48FB8002C8F8D003891F200017E
71050 +:10A5D0003304000301C46023A1B200318F8E003820
71051 +:10A5E0008F8600A42402C00095CA003294C90012CC
71052 +:10A5F0008FAB002C0142402431233FFF010388250B
71053 +:10A60000A5D1003291D000323185000300EBF82152
71054 +:10A610003218003F370F0040A1CF00328FA4002C2A
71055 +:10A6200003E5382133280004108000028F850038AC
71056 +:10A6300000E838213C0A8008ACA700343549010005
71057 +:10A640008D2800D08FA3002C2419FFBFACA80038A0
71058 +:10A6500090B1003C2C640001240FFFDF3227007F03
71059 +:10A66000A0A7003C8F98003800049140931F003C45
71060 +:10A6700003F98024A310003C8F8C0038918E003C9D
71061 +:10A6800001CF682401B23025A186003C8F8900A447
71062 +:10A690008F8800388D2B0020AD0B00408D220024C8
71063 +:10A6A000AD0200448D2A0028AD0A00488D23002CFD
71064 +:10A6B0000E001013AD03004C8FB1002824070002D8
71065 +:10A6C000122700118FA300280003282B00058023E8
71066 +:10A6D0000270982400608021006090210A00126FAF
71067 +:10A6E0000010882B962900128F8400A00000902172
71068 +:10A6F0003125FFFFA7A900180E000FC22411000189
71069 +:10A700000A00131D3C1E80003C0B80003C12800898
71070 +:10A710008D640100924900088F92FF340E000F995A
71071 +:10A720003125007F8F9900388FA700288FA4003033
71072 +:10A73000A3270000965F005C33F0FFFF0E000FF4CC
71073 +:10A740008F91003800026B80020D80253C0842008A
71074 +:10A750008F8D00A402085025AE2A00048DA5003874
71075 +:10A760008F8A003800007821000F1100AD450018D5
71076 +:10A770008DB800343C047FFF3488FFFFAD58001CC7
71077 +:10A7800091A6003E8D4C001C8D4900180006190052
71078 +:10A79000000677020183C821004E58250323882B29
71079 +:10A7A000012B382100F1F821AD59001CAD5F0018D4
71080 +:10A7B000AD40000CAD40001091B0003E8FA40030C1
71081 +:10A7C00024090005A550001495A500042419C00013
71082 +:10A7D00000884024A545001691B8003EA5580020E9
71083 +:10A7E00095AF0004A54F0022AD40002491AE003F7C
71084 +:10A7F000A54E000291A6003E91AC003D01861023BB
71085 +:10A80000244B0001A14B00018F9100388FA3003031
71086 +:10A810003C028008344B0100AE230008A22900301E
71087 +:10A820008F8C00388F8700A4959F003294F000121F
71088 +:10A830002407FFBF033FC02432053FFF03057825EF
71089 +:10A84000A58F0032918E00322418FFDF31CD003FFA
71090 +:10A8500035A60040A18600328F910038240DFFFFFD
71091 +:10A86000240CFF80AE2000348D6A00D0AE2A003860
71092 +:10A870009223003C3069007FA229003C8F90003871
71093 +:10A880003C0380009219003C0327F824A21F003CDF
71094 +:10A890008F8E003891C5003C00B87824A1CF003CD1
71095 +:10A8A0008F8A00383C0E8008AD4D00408FA6002CEA
71096 +:10A8B000AD46004491420048004C5825A14B004849
71097 +:10A8C0008F9000388F9900A48E09004801238824B6
71098 +:10A8D00002283825AE070048933F003EA21F004CD7
71099 +:10A8E0008F9800A48F8F003897050004A5E5004ECF
71100 +:10A8F0000E0003818DC500609246007C8FAC003055
71101 +:10A9000000026940000291000040282130CB000283
71102 +:10A9100001B21021156000AA018230213C0E80088E
71103 +:10A9200035C20080904C007C31830004106000032D
71104 +:10A930008FB900300005788000CF3021241F00043B
71105 +:10A940008F910038332D000303ED8023320800037C
71106 +:10A9500000C85021AE2A00343C188000A7C500383A
71107 +:10A960003C0680088F04010090DE00080E000FDE18
71108 +:10A9700033C5007F0E001013000000000A00140D04
71109 +:10A980008FA300288F9800348CC90038241F00033F
71110 +:10A99000A7000008AF0900008CC50034A300000A1E
71111 +:10A9A0008F9900A4AF0500043C080080932D003F60
71112 +:10A9B000A31F000C8F0A000C3C02FF9FA30D000B8D
71113 +:10A9C0000148F0253451FFFF3C12FFEF8F9900A49E
71114 +:10A9D00003D170243646FFFF01C61824AF03000CD4
71115 +:10A9E0008F2C0014972900128F8400A0AF0C001048
71116 +:10A9F0008F2F0014AF000018AF000020AF0F00141D
71117 +:10AA0000AF0000248F270018312F3FFF000F59801F
71118 +:10AA1000AF0700288F2500080164F821312D0001BF
71119 +:10AA2000AF0500308F31000C8F920038001F51C2EB
71120 +:10AA3000000D438001481021241E00023C068008BE
71121 +:10AA4000A702001CA7000034AF11002CA25E00007A
71122 +:10AA500034D20080964E005C8F9900383C0342004F
71123 +:10AA600031CCFFFF01833825AF2700048F8B00A472
71124 +:10AA7000240500012402C0008D640038240700343E
71125 +:10AA8000AF2400188D690034AF29001CAF20000CE2
71126 +:10AA9000AF200010A7200014A7200016A720002038
71127 +:10AAA000A7200022AF200024A7300002A325000128
71128 +:10AAB0008F8800388F9F00A4AD10000893ED000030
71129 +:10AAC000A10D00308F8A00A48F98003891510001A9
71130 +:10AAD000A31100318F8B0038957E003203C27024A1
71131 +:10AAE00001CF6025A56C0032916300323064003FD5
71132 +:10AAF000A16400329249007C3125000214A00002BA
71133 +:10AB00008F840038240700303C198008AC8700345B
71134 +:10AB1000373201008E5F00D0240AFFBF020090216F
71135 +:10AB2000AC9F0038908D003C31A8007FA088003C8D
71136 +:10AB30008F9E003893C2003C004A8824A3D1003C79
71137 +:10AB40008F8300380010882B9066003C34CE0020A4
71138 +:10AB5000A06E003C8F8400A48F9800388C8C00205D
71139 +:10AB6000AF0C00408C8F0024AF0F00448C8700286E
71140 +:10AB7000AF0700488C8B002CAF0B004C0E0010135D
71141 +:10AB80003C1E80000A0012700000000094C80052B1
71142 +:10AB90003C0A08008D4A002401488821A4D10052B3
71143 +:10ABA0000A0012198FB40010A08700018F840038AA
71144 +:10ABB000240B0001AC8B00080A0013BE3C12800875
71145 +:10ABC000000520800A0014A200C4302127BDFFE048
71146 +:10ABD0003C0D8008AFB20018AFB00010AFBF001C32
71147 +:10ABE000AFB1001435B200808E4C001835A80100BA
71148 +:10ABF000964B000695A70050910900FC000C5602E8
71149 +:10AC0000016728233143007F312600FF240200031F
71150 +:10AC1000AF8300A8AF8400A010C2001B30B0FFFFBC
71151 +:10AC2000910600FC2412000530C200FF10520033D0
71152 +:10AC300000000000160000098FBF001C8FB2001832
71153 +:10AC40008FB100148FB00010240D0C003C0C80005C
71154 +:10AC500027BD002003E00008AD8D00240E0011FB8D
71155 +:10AC6000020020218FBF001C8FB200188FB100148A
71156 +:10AC70008FB00010240D0C003C0C800027BD00207C
71157 +:10AC800003E00008AD8D0024965800789651007AB4
71158 +:10AC9000924E007D0238782631E8FFFF31C400C0B3
71159 +:10ACA000148000092D11000116000037000000007B
71160 +:10ACB0005620FFE28FBF001C0E0010D100000000E4
71161 +:10ACC0000A00156A8FBF001C1620FFDA0000000082
71162 +:10ACD0000E0010D1000000001440FFD88FBF001CF0
71163 +:10ACE0001600002200000000925F007D33E2003F6A
71164 +:10ACF000A242007D0A00156A8FBF001C950900EA78
71165 +:10AD00008F86008000802821240400050E0007257E
71166 +:10AD10003130FFFF978300923C0480002465FFFFE1
71167 +:10AD2000A78500928C8A01B80540FFFE0000000054
71168 +:10AD3000AC8001808FBF001CAC9001848FB20018E2
71169 +:10AD40008FB100148FB000103C0760133C0B100053
71170 +:10AD5000240D0C003C0C800027BD0020AC8701882E
71171 +:10AD6000AC8B01B803E00008AD8D00240E0011FB90
71172 +:10AD7000020020215040FFB18FBF001C925F007D78
71173 +:10AD80000A00159733E2003F0E0011FB020020215C
71174 +:10AD90001440FFAA8FBF001C122000070000000013
71175 +:10ADA0009259007D3330003F36020040A242007DC0
71176 +:10ADB0000A00156A8FBF001C0E0010D100000000B1
71177 +:10ADC0005040FF9E8FBF001C9259007D3330003FE2
71178 +:10ADD0000A0015C636020040000000000000001BFB
71179 +:10ADE0000000000F0000000A00000008000000063C
71180 +:10ADF0000000000500000005000000040000000441
71181 +:10AE00000000000300000003000000030000000336
71182 +:10AE10000000000300000002000000020000000229
71183 +:10AE2000000000020000000200000002000000021A
71184 +:10AE3000000000020000000200000002000000020A
71185 +:10AE400000000002000000020000000200000002FA
71186 +:10AE50000000000100000001000000018008010066
71187 +:10AE6000800800808008000000000C000000308096
71188 +:10AE7000080011D00800127C08001294080012A8E3
71189 +:10AE8000080012BC080011D0080011D0080012F010
71190 +:10AE90000800132C080013400800138808001A8CBF
71191 +:10AEA00008001A8C08001AC408001AC408001AD82E
71192 +:10AEB00008001AA808001D0008001CCC08001D5836
71193 +:10AEC00008001D5808001DE008001D108008024001
71194 +:10AED000080027340800256C0800275C080027F4C8
71195 +:10AEE0000800293C0800298808002AAC080029B479
71196 +:10AEF00008002A38080025DC08002EDC08002EA4F3
71197 +:10AF000008002588080025880800258808002B20CF
71198 +:10AF100008002B20080025880800258808002DD06F
71199 +:10AF2000080025880800258808002588080025884D
71200 +:10AF300008002E0C080025880800258808002588B0
71201 +:10AF4000080025880800258808002588080025882D
71202 +:10AF5000080025880800258808002588080025881D
71203 +:10AF6000080025880800258808002588080029A8E9
71204 +:10AF7000080025880800258808002E680800258814
71205 +:10AF800008002588080025880800258808002588ED
71206 +:10AF900008002588080025880800258808002588DD
71207 +:10AFA00008002588080025880800258808002588CD
71208 +:10AFB00008002588080025880800258808002588BD
71209 +:10AFC00008002CF4080025880800258808002C6853
71210 +:10AFD00008002BC408003CE408003CB808003C848E
71211 +:10AFE00008003C5808003C3808003BEC8008010091
71212 +:10AFF00080080080800800008008008008004C6401
71213 +:10B0000008004C9C08004BE408004C6408004C64A9
71214 +:10B01000080049B808004C64080050500A000C842D
71215 +:10B0200000000000000000000000000D7278703683
71216 +:10B030002E322E31620000000602010300000000E3
71217 +:10B0400000000001000000000000000000000000FF
71218 +:10B0500000000000000000000000000000000000F0
71219 +:10B0600000000000000000000000000000000000E0
71220 +:10B0700000000000000000000000000000000000D0
71221 +:10B0800000000000000000000000000000000000C0
71222 +:10B0900000000000000000000000000000000000B0
71223 +:10B0A00000000000000000000000000000000000A0
71224 +:10B0B0000000000000000000000000000000000090
71225 +:10B0C0000000000000000000000000000000000080
71226 +:10B0D0000000000000000000000000000000000070
71227 +:10B0E0000000000000000000000000000000000060
71228 +:10B0F0000000000000000000000000000000000050
71229 +:10B10000000000000000000000000000000000003F
71230 +:10B11000000000000000000000000000000000002F
71231 +:10B12000000000000000000000000000000000001F
71232 +:10B13000000000000000000000000000000000000F
71233 +:10B1400000000000000000000000000000000000FF
71234 +:10B1500000000000000000000000000000000000EF
71235 +:10B1600000000000000000000000000000000000DF
71236 +:10B1700000000000000000000000000000000000CF
71237 +:10B1800000000000000000000000000000000000BF
71238 +:10B1900000000000000000000000000000000000AF
71239 +:10B1A000000000000000000000000000000000009F
71240 +:10B1B000000000000000000000000000000000008F
71241 +:10B1C000000000000000000000000000000000007F
71242 +:10B1D000000000000000000000000000000000006F
71243 +:10B1E000000000000000000000000000000000005F
71244 +:10B1F000000000000000000000000000000000004F
71245 +:10B20000000000000000000000000000000000003E
71246 +:10B21000000000000000000000000000000000002E
71247 +:10B22000000000000000000000000000000000001E
71248 +:10B23000000000000000000000000000000000000E
71249 +:10B2400000000000000000000000000000000000FE
71250 +:10B2500000000000000000000000000000000000EE
71251 +:10B2600000000000000000000000000000000000DE
71252 +:10B2700000000000000000000000000000000000CE
71253 +:10B2800000000000000000000000000000000000BE
71254 +:10B2900000000000000000000000000000000000AE
71255 +:10B2A000000000000000000000000000000000009E
71256 +:10B2B000000000000000000000000000000000008E
71257 +:10B2C000000000000000000000000000000000007E
71258 +:10B2D000000000000000000000000000000000006E
71259 +:10B2E000000000000000000000000000000000005E
71260 +:10B2F000000000000000000000000000000000004E
71261 +:10B30000000000000000000000000000000000003D
71262 +:10B31000000000000000000000000000000000002D
71263 +:10B32000000000000000000000000000000000001D
71264 +:10B33000000000000000000000000000000000000D
71265 +:10B3400000000000000000000000000000000000FD
71266 +:10B3500000000000000000000000000000000000ED
71267 +:10B3600000000000000000000000000000000000DD
71268 +:10B3700000000000000000000000000000000000CD
71269 +:10B3800000000000000000000000000000000000BD
71270 +:10B3900000000000000000000000000000000000AD
71271 +:10B3A000000000000000000000000000000000009D
71272 +:10B3B000000000000000000000000000000000008D
71273 +:10B3C000000000000000000000000000000000007D
71274 +:10B3D000000000000000000000000000000000006D
71275 +:10B3E000000000000000000000000000000000005D
71276 +:10B3F000000000000000000000000000000000004D
71277 +:10B40000000000000000000000000000000000003C
71278 +:10B41000000000000000000000000000000000002C
71279 +:10B42000000000000000000000000000000000001C
71280 +:10B43000000000000000000000000000000000000C
71281 +:10B4400000000000000000000000000000000000FC
71282 +:10B4500000000000000000000000000000000000EC
71283 +:10B4600000000000000000000000000000000000DC
71284 +:10B4700000000000000000000000000000000000CC
71285 +:10B4800000000000000000000000000000000000BC
71286 +:10B4900000000000000000000000000000000000AC
71287 +:10B4A000000000000000000000000000000000009C
71288 +:10B4B000000000000000000000000000000000008C
71289 +:10B4C000000000000000000000000000000000007C
71290 +:10B4D000000000000000000000000000000000006C
71291 +:10B4E000000000000000000000000000000000005C
71292 +:10B4F000000000000000000000000000000000004C
71293 +:10B50000000000000000000000000000000000003B
71294 +:10B51000000000000000000000000000000000002B
71295 +:10B52000000000000000000000000000000000001B
71296 +:10B53000000000000000000000000000000000000B
71297 +:10B5400000000000000000000000000000000000FB
71298 +:10B5500000000000000000000000000000000000EB
71299 +:10B5600000000000000000000000000000000000DB
71300 +:10B5700000000000000000000000000000000000CB
71301 +:10B5800000000000000000000000000000000000BB
71302 +:10B5900000000000000000000000000000000000AB
71303 +:10B5A000000000000000000000000000000000009B
71304 +:10B5B000000000000000000000000000000000008B
71305 +:10B5C000000000000000000000000000000000007B
71306 +:10B5D000000000000000000000000000000000006B
71307 +:10B5E000000000000000000000000000000000005B
71308 +:10B5F000000000000000000000000000000000004B
71309 +:10B60000000000000000000000000000000000003A
71310 +:10B61000000000000000000000000000000000002A
71311 +:10B62000000000000000000000000000000000001A
71312 +:10B63000000000000000000000000000000000000A
71313 +:10B6400000000000000000000000000000000000FA
71314 +:10B6500000000000000000000000000000000000EA
71315 +:10B6600000000000000000000000000000000000DA
71316 +:10B6700000000000000000000000000000000000CA
71317 +:10B6800000000000000000000000000000000000BA
71318 +:10B6900000000000000000000000000000000000AA
71319 +:10B6A000000000000000000000000000000000009A
71320 +:10B6B000000000000000000000000000000000008A
71321 +:10B6C000000000000000000000000000000000007A
71322 +:10B6D000000000000000000000000000000000006A
71323 +:10B6E000000000000000000000000000000000005A
71324 +:10B6F000000000000000000000000000000000004A
71325 +:10B700000000000000000000000000000000000039
71326 +:10B710000000000000000000000000000000000029
71327 +:10B720000000000000000000000000000000000019
71328 +:10B730000000000000000000000000000000000009
71329 +:10B7400000000000000000000000000000000000F9
71330 +:10B7500000000000000000000000000000000000E9
71331 +:10B7600000000000000000000000000000000000D9
71332 +:10B7700000000000000000000000000000000000C9
71333 +:10B7800000000000000000000000000000000000B9
71334 +:10B7900000000000000000000000000000000000A9
71335 +:10B7A0000000000000000000000000000000000099
71336 +:10B7B0000000000000000000000000000000000089
71337 +:10B7C0000000000000000000000000000000000079
71338 +:10B7D0000000000000000000000000000000000069
71339 +:10B7E0000000000000000000000000000000000059
71340 +:10B7F0000000000000000000000000000000000049
71341 +:10B800000000000000000000000000000000000038
71342 +:10B810000000000000000000000000000000000028
71343 +:10B820000000000000000000000000000000000018
71344 +:10B830000000000000000000000000000000000008
71345 +:10B8400000000000000000000000000000000000F8
71346 +:10B8500000000000000000000000000000000000E8
71347 +:10B8600000000000000000000000000000000000D8
71348 +:10B8700000000000000000000000000000000000C8
71349 +:10B8800000000000000000000000000000000000B8
71350 +:10B8900000000000000000000000000000000000A8
71351 +:10B8A0000000000000000000000000000000000098
71352 +:10B8B0000000000000000000000000000000000088
71353 +:10B8C0000000000000000000000000000000000078
71354 +:10B8D0000000000000000000000000000000000068
71355 +:10B8E0000000000000000000000000000000000058
71356 +:10B8F0000000000000000000000000000000000048
71357 +:10B900000000000000000000000000000000000037
71358 +:10B910000000000000000000000000000000000027
71359 +:10B920000000000000000000000000000000000017
71360 +:10B930000000000000000000000000000000000007
71361 +:10B9400000000000000000000000000000000000F7
71362 +:10B9500000000000000000000000000000000000E7
71363 +:10B9600000000000000000000000000000000000D7
71364 +:10B9700000000000000000000000000000000000C7
71365 +:10B9800000000000000000000000000000000000B7
71366 +:10B9900000000000000000000000000000000000A7
71367 +:10B9A0000000000000000000000000000000000097
71368 +:10B9B0000000000000000000000000000000000087
71369 +:10B9C0000000000000000000000000000000000077
71370 +:10B9D0000000000000000000000000000000000067
71371 +:10B9E0000000000000000000000000000000000057
71372 +:10B9F0000000000000000000000000000000000047
71373 +:10BA00000000000000000000000000000000000036
71374 +:10BA10000000000000000000000000000000000026
71375 +:10BA20000000000000000000000000000000000016
71376 +:10BA30000000000000000000000000000000000006
71377 +:10BA400000000000000000000000000000000000F6
71378 +:10BA500000000000000000000000000000000000E6
71379 +:10BA600000000000000000000000000000000000D6
71380 +:10BA700000000000000000000000000000000000C6
71381 +:10BA800000000000000000000000000000000000B6
71382 +:10BA900000000000000000000000000000000000A6
71383 +:10BAA0000000000000000000000000000000000096
71384 +:10BAB0000000000000000000000000000000000086
71385 +:10BAC0000000000000000000000000000000000076
71386 +:10BAD0000000000000000000000000000000000066
71387 +:10BAE0000000000000000000000000000000000056
71388 +:10BAF0000000000000000000000000000000000046
71389 +:10BB00000000000000000000000000000000000035
71390 +:10BB10000000000000000000000000000000000025
71391 +:10BB20000000000000000000000000000000000015
71392 +:10BB30000000000000000000000000000000000005
71393 +:10BB400000000000000000000000000000000000F5
71394 +:10BB500000000000000000000000000000000000E5
71395 +:10BB600000000000000000000000000000000000D5
71396 +:10BB700000000000000000000000000000000000C5
71397 +:10BB800000000000000000000000000000000000B5
71398 +:10BB900000000000000000000000000000000000A5
71399 +:10BBA0000000000000000000000000000000000095
71400 +:10BBB0000000000000000000000000000000000085
71401 +:10BBC0000000000000000000000000000000000075
71402 +:10BBD0000000000000000000000000000000000065
71403 +:10BBE0000000000000000000000000000000000055
71404 +:10BBF0000000000000000000000000000000000045
71405 +:10BC00000000000000000000000000000000000034
71406 +:10BC10000000000000000000000000000000000024
71407 +:10BC20000000000000000000000000000000000014
71408 +:10BC30000000000000000000000000000000000004
71409 +:10BC400000000000000000000000000000000000F4
71410 +:10BC500000000000000000000000000000000000E4
71411 +:10BC600000000000000000000000000000000000D4
71412 +:10BC700000000000000000000000000000000000C4
71413 +:10BC800000000000000000000000000000000000B4
71414 +:10BC900000000000000000000000000000000000A4
71415 +:10BCA0000000000000000000000000000000000094
71416 +:10BCB0000000000000000000000000000000000084
71417 +:10BCC0000000000000000000000000000000000074
71418 +:10BCD0000000000000000000000000000000000064
71419 +:10BCE0000000000000000000000000000000000054
71420 +:10BCF0000000000000000000000000000000000044
71421 +:10BD00000000000000000000000000000000000033
71422 +:10BD10000000000000000000000000000000000023
71423 +:10BD20000000000000000000000000000000000013
71424 +:10BD30000000000000000000000000000000000003
71425 +:10BD400000000000000000000000000000000000F3
71426 +:10BD500000000000000000000000000000000000E3
71427 +:10BD600000000000000000000000000000000000D3
71428 +:10BD700000000000000000000000000000000000C3
71429 +:10BD800000000000000000000000000000000000B3
71430 +:10BD900000000000000000000000000000000000A3
71431 +:10BDA0000000000000000000000000000000000093
71432 +:10BDB0000000000000000000000000000000000083
71433 +:10BDC0000000000000000000000000000000000073
71434 +:10BDD0000000000000000000000000000000000063
71435 +:10BDE0000000000000000000000000000000000053
71436 +:10BDF0000000000000000000000000000000000043
71437 +:10BE00000000000000000000000000000000000032
71438 +:10BE10000000000000000000000000000000000022
71439 +:10BE20000000000000000000000000000000000012
71440 +:10BE30000000000000000000000000000000000002
71441 +:10BE400000000000000000000000000000000000F2
71442 +:10BE500000000000000000000000000000000000E2
71443 +:10BE600000000000000000000000000000000000D2
71444 +:10BE700000000000000000000000000000000000C2
71445 +:10BE800000000000000000000000000000000000B2
71446 +:10BE900000000000000000000000000000000000A2
71447 +:10BEA0000000000000000000000000000000000092
71448 +:10BEB0000000000000000000000000000000000082
71449 +:10BEC0000000000000000000000000000000000072
71450 +:10BED0000000000000000000000000000000000062
71451 +:10BEE0000000000000000000000000000000000052
71452 +:10BEF0000000000000000000000000000000000042
71453 +:10BF00000000000000000000000000000000000031
71454 +:10BF10000000000000000000000000000000000021
71455 +:10BF20000000000000000000000000000000000011
71456 +:10BF30000000000000000000000000000000000001
71457 +:10BF400000000000000000000000000000000000F1
71458 +:10BF500000000000000000000000000000000000E1
71459 +:10BF600000000000000000000000000000000000D1
71460 +:10BF700000000000000000000000000000000000C1
71461 +:10BF800000000000000000000000000000000000B1
71462 +:10BF900000000000000000000000000000000000A1
71463 +:10BFA0000000000000000000000000000000000091
71464 +:10BFB0000000000000000000000000000000000081
71465 +:10BFC0000000000000000000000000000000000071
71466 +:10BFD0000000000000000000000000000000000061
71467 +:10BFE0000000000000000000000000000000000051
71468 +:10BFF0000000000000000000000000000000000041
71469 +:10C000000000000000000000000000000000000030
71470 +:10C010000000000000000000000000000000000020
71471 +:10C020000000000000000000000000000000000010
71472 +:10C030000000000000000000000000000000000000
71473 +:10C0400000000000000000000000000000000000F0
71474 +:10C0500000000000000000000000000000000000E0
71475 +:10C0600000000000000000000000000000000000D0
71476 +:10C0700000000000000000000000000000000000C0
71477 +:10C0800000000000000000000000000000000000B0
71478 +:10C0900000000000000000000000000000000000A0
71479 +:10C0A0000000000000000000000000000000000090
71480 +:10C0B0000000000000000000000000000000000080
71481 +:10C0C0000000000000000000000000000000000070
71482 +:10C0D0000000000000000000000000000000000060
71483 +:10C0E0000000000000000000000000000000000050
71484 +:10C0F0000000000000000000000000000000000040
71485 +:10C10000000000000000000000000000000000002F
71486 +:10C11000000000000000000000000000000000001F
71487 +:10C12000000000000000000000000000000000000F
71488 +:10C1300000000000000000000000000000000000FF
71489 +:10C1400000000000000000000000000000000000EF
71490 +:10C1500000000000000000000000000000000000DF
71491 +:10C1600000000000000000000000000000000000CF
71492 +:10C1700000000000000000000000000000000000BF
71493 +:10C1800000000000000000000000000000000000AF
71494 +:10C19000000000000000000000000000000000009F
71495 +:10C1A000000000000000000000000000000000008F
71496 +:10C1B000000000000000000000000000000000007F
71497 +:10C1C000000000000000000000000000000000006F
71498 +:10C1D000000000000000000000000000000000005F
71499 +:10C1E000000000000000000000000000000000004F
71500 +:10C1F000000000000000000000000000000000003F
71501 +:10C20000000000000000000000000000000000002E
71502 +:10C21000000000000000000000000000000000001E
71503 +:10C22000000000000000000000000000000000000E
71504 +:10C2300000000000000000000000000000000000FE
71505 +:10C2400000000000000000000000000000000000EE
71506 +:10C2500000000000000000000000000000000000DE
71507 +:10C2600000000000000000000000000000000000CE
71508 +:10C2700000000000000000000000000000000000BE
71509 +:10C2800000000000000000000000000000000000AE
71510 +:10C29000000000000000000000000000000000009E
71511 +:10C2A000000000000000000000000000000000008E
71512 +:10C2B000000000000000000000000000000000007E
71513 +:10C2C000000000000000000000000000000000006E
71514 +:10C2D000000000000000000000000000000000005E
71515 +:10C2E000000000000000000000000000000000004E
71516 +:10C2F000000000000000000000000000000000003E
71517 +:10C30000000000000000000000000000000000002D
71518 +:10C31000000000000000000000000000000000001D
71519 +:10C32000000000000000000000000000000000000D
71520 +:10C3300000000000000000000000000000000000FD
71521 +:10C3400000000000000000000000000000000000ED
71522 +:10C3500000000000000000000000000000000000DD
71523 +:10C3600000000000000000000000000000000000CD
71524 +:10C3700000000000000000000000000000000000BD
71525 +:10C3800000000000000000000000000000000000AD
71526 +:10C39000000000000000000000000000000000009D
71527 +:10C3A000000000000000000000000000000000008D
71528 +:10C3B000000000000000000000000000000000007D
71529 +:10C3C000000000000000000000000000000000006D
71530 +:10C3D000000000000000000000000000000000005D
71531 +:10C3E000000000000000000000000000000000004D
71532 +:10C3F000000000000000000000000000000000003D
71533 +:10C40000000000000000000000000000000000002C
71534 +:10C41000000000000000000000000000000000001C
71535 +:10C42000000000000000000000000000000000000C
71536 +:10C4300000000000000000000000000000000000FC
71537 +:10C4400000000000000000000000000000000000EC
71538 +:10C4500000000000000000000000000000000000DC
71539 +:10C4600000000000000000000000000000000000CC
71540 +:10C4700000000000000000000000000000000000BC
71541 +:10C4800000000000000000000000000000000000AC
71542 +:10C49000000000000000000000000000000000009C
71543 +:10C4A000000000000000000000000000000000008C
71544 +:10C4B000000000000000000000000000000000007C
71545 +:10C4C000000000000000000000000000000000006C
71546 +:10C4D000000000000000000000000000000000005C
71547 +:10C4E000000000000000000000000000000000004C
71548 +:10C4F000000000000000000000000000000000003C
71549 +:10C50000000000000000000000000000000000002B
71550 +:10C51000000000000000000000000000000000001B
71551 +:10C52000000000000000000000000000000000000B
71552 +:10C5300000000000000000000000000000000000FB
71553 +:10C5400000000000000000000000000000000000EB
71554 +:10C5500000000000000000000000000000000000DB
71555 +:10C5600000000000000000000000000000000000CB
71556 +:10C5700000000000000000000000000000000000BB
71557 +:10C5800000000000000000000000000000000000AB
71558 +:10C59000000000000000000000000000000000009B
71559 +:10C5A000000000000000000000000000000000008B
71560 +:10C5B000000000000000000000000000000000007B
71561 +:10C5C000000000000000000000000000000000006B
71562 +:10C5D000000000000000000000000000000000005B
71563 +:10C5E000000000000000000000000000000000004B
71564 +:10C5F000000000000000000000000000000000003B
71565 +:10C60000000000000000000000000000000000002A
71566 +:10C61000000000000000000000000000000000001A
71567 +:10C62000000000000000000000000000000000000A
71568 +:10C6300000000000000000000000000000000000FA
71569 +:10C6400000000000000000000000000000000000EA
71570 +:10C6500000000000000000000000000000000000DA
71571 +:10C6600000000000000000000000000000000000CA
71572 +:10C6700000000000000000000000000000000000BA
71573 +:10C6800000000000000000000000000000000000AA
71574 +:10C69000000000000000000000000000000000009A
71575 +:10C6A000000000000000000000000000000000008A
71576 +:10C6B000000000000000000000000000000000007A
71577 +:10C6C000000000000000000000000000000000006A
71578 +:10C6D000000000000000000000000000000000005A
71579 +:10C6E000000000000000000000000000000000004A
71580 +:10C6F000000000000000000000000000000000003A
71581 +:10C700000000000000000000000000000000000029
71582 +:10C710000000000000000000000000000000000019
71583 +:10C720000000000000000000000000000000000009
71584 +:10C7300000000000000000000000000000000000F9
71585 +:10C7400000000000000000000000000000000000E9
71586 +:10C7500000000000000000000000000000000000D9
71587 +:10C7600000000000000000000000000000000000C9
71588 +:10C7700000000000000000000000000000000000B9
71589 +:10C7800000000000000000000000000000000000A9
71590 +:10C790000000000000000000000000000000000099
71591 +:10C7A0000000000000000000000000000000000089
71592 +:10C7B0000000000000000000000000000000000079
71593 +:10C7C0000000000000000000000000000000000069
71594 +:10C7D0000000000000000000000000000000000059
71595 +:10C7E0000000000000000000000000000000000049
71596 +:10C7F0000000000000000000000000000000000039
71597 +:10C800000000000000000000000000000000000028
71598 +:10C810000000000000000000000000000000000018
71599 +:10C820000000000000000000000000000000000008
71600 +:10C8300000000000000000000000000000000000F8
71601 +:10C8400000000000000000000000000000000000E8
71602 +:10C8500000000000000000000000000000000000D8
71603 +:10C8600000000000000000000000000000000000C8
71604 +:10C8700000000000000000000000000000000000B8
71605 +:10C8800000000000000000000000000000000000A8
71606 +:10C890000000000000000000000000000000000098
71607 +:10C8A0000000000000000000000000000000000088
71608 +:10C8B0000000000000000000000000000000000078
71609 +:10C8C0000000000000000000000000000000000068
71610 +:10C8D0000000000000000000000000000000000058
71611 +:10C8E0000000000000000000000000000000000048
71612 +:10C8F0000000000000000000000000000000000038
71613 +:10C900000000000000000000000000000000000027
71614 +:10C910000000000000000000000000000000000017
71615 +:10C920000000000000000000000000000000000007
71616 +:10C9300000000000000000000000000000000000F7
71617 +:10C9400000000000000000000000000000000000E7
71618 +:10C9500000000000000000000000000000000000D7
71619 +:10C9600000000000000000000000000000000000C7
71620 +:10C9700000000000000000000000000000000000B7
71621 +:10C9800000000000000000000000000000000000A7
71622 +:10C990000000000000000000000000000000000097
71623 +:10C9A0000000000000000000000000000000000087
71624 +:10C9B0000000000000000000000000000000000077
71625 +:10C9C0000000000000000000000000000000000067
71626 +:10C9D0000000000000000000000000000000000057
71627 +:10C9E0000000000000000000000000000000000047
71628 +:10C9F0000000000000000000000000000000000037
71629 +:10CA00000000000000000000000000000000000026
71630 +:10CA10000000000000000000000000000000000016
71631 +:10CA20000000000000000000000000000000000006
71632 +:10CA300000000000000000000000000000000000F6
71633 +:10CA400000000000000000000000000000000000E6
71634 +:10CA500000000000000000000000000000000000D6
71635 +:10CA600000000000000000000000000000000000C6
71636 +:10CA700000000000000000000000000000000000B6
71637 +:10CA800000000000000000000000000000000000A6
71638 +:10CA90000000000000000000000000000000000096
71639 +:10CAA0000000000000000000000000000000000086
71640 +:10CAB0000000000000000000000000000000000076
71641 +:10CAC0000000000000000000000000000000000066
71642 +:10CAD0000000000000000000000000000000000056
71643 +:10CAE0000000000000000000000000000000000046
71644 +:10CAF0000000000000000000000000000000000036
71645 +:10CB00000000000000000000000000000000000025
71646 +:10CB10000000000000000000000000000000000015
71647 +:10CB20000000000000000000000000000000000005
71648 +:10CB300000000000000000000000000000000000F5
71649 +:10CB400000000000000000000000000000000000E5
71650 +:10CB500000000000000000000000000000000000D5
71651 +:10CB600000000000000000000000000000000000C5
71652 +:10CB700000000000000000000000000000000000B5
71653 +:10CB800000000000000000000000000000000000A5
71654 +:10CB90000000000000000000000000000000000095
71655 +:10CBA0000000000000000000000000000000000085
71656 +:10CBB0000000000000000000000000000000000075
71657 +:10CBC0000000000000000000000000000000000065
71658 +:10CBD0000000000000000000000000000000000055
71659 +:10CBE0000000000000000000000000000000000045
71660 +:10CBF0000000000000000000000000000000000035
71661 +:10CC00000000000000000000000000000000000024
71662 +:10CC10000000000000000000000000000000000014
71663 +:10CC20000000000000000000000000000000000004
71664 +:10CC300000000000000000000000000000000000F4
71665 +:10CC400000000000000000000000000000000000E4
71666 +:10CC500000000000000000000000000000000000D4
71667 +:10CC600000000000000000000000000000000000C4
71668 +:10CC700000000000000000000000000000000000B4
71669 +:10CC800000000000000000000000000000000000A4
71670 +:10CC90000000000000000000000000000000000094
71671 +:10CCA0000000000000000000000000000000000084
71672 +:10CCB0000000000000000000000000000000000074
71673 +:10CCC0000000000000000000000000000000000064
71674 +:10CCD0000000000000000000000000000000000054
71675 +:10CCE0000000000000000000000000000000000044
71676 +:10CCF0000000000000000000000000000000000034
71677 +:10CD00000000000000000000000000000000000023
71678 +:10CD10000000000000000000000000000000000013
71679 +:10CD20000000000000000000000000000000000003
71680 +:10CD300000000000000000000000000000000000F3
71681 +:10CD400000000000000000000000000000000000E3
71682 +:10CD500000000000000000000000000000000000D3
71683 +:10CD600000000000000000000000000000000000C3
71684 +:10CD700000000000000000000000000000000000B3
71685 +:10CD800000000000000000000000000000000000A3
71686 +:10CD90000000000000000000000000000000000093
71687 +:10CDA0000000000000000000000000000000000083
71688 +:10CDB0000000000000000000000000000000000073
71689 +:10CDC0000000000000000000000000000000000063
71690 +:10CDD0000000000000000000000000000000000053
71691 +:10CDE0000000000000000000000000000000000043
71692 +:10CDF0000000000000000000000000000000000033
71693 +:10CE00000000000000000000000000000000000022
71694 +:10CE10000000000000000000000000000000000012
71695 +:10CE20000000000000000000000000000000000002
71696 +:10CE300000000000000000000000000000000000F2
71697 +:10CE400000000000000000000000000000000000E2
71698 +:10CE500000000000000000000000000000000000D2
71699 +:10CE600000000000000000000000000000000000C2
71700 +:10CE700000000000000000000000000000000000B2
71701 +:10CE800000000000000000000000000000000000A2
71702 +:10CE90000000000000000000000000000000000092
71703 +:10CEA0000000000000000000000000000000000082
71704 +:10CEB0000000000000000000000000000000000072
71705 +:10CEC0000000000000000000000000000000000062
71706 +:10CED0000000000000000000000000000000000052
71707 +:10CEE0000000000000000000000000000000000042
71708 +:10CEF0000000000000000000000000000000000032
71709 +:10CF00000000000000000000000000000000000021
71710 +:10CF10000000000000000000000000000000000011
71711 +:10CF20000000000000000000000000000000000001
71712 +:10CF300000000000000000000000000000000000F1
71713 +:10CF400000000000000000000000000000000000E1
71714 +:10CF500000000000000000000000000000000000D1
71715 +:10CF600000000000000000000000000000000000C1
71716 +:10CF700000000000000000000000000000000000B1
71717 +:10CF800000000000000000000000000000000000A1
71718 +:10CF90000000000000000000000000000000000091
71719 +:10CFA0000000000000000000000000000000000081
71720 +:10CFB0000000000000000000000000000000000071
71721 +:10CFC0000000000000000000000000000000000061
71722 +:10CFD0000000000000000000000000000000000051
71723 +:10CFE0000000000000000000000000000000000041
71724 +:10CFF0000000000000000000000000000000000031
71725 +:10D000000000000000000000000000000000000020
71726 +:10D010000000000000000000000000000000000010
71727 +:10D020000000000000000000000000000000000000
71728 +:10D0300000000000000000000000000000000000F0
71729 +:10D0400000000000000000000000000000000000E0
71730 +:10D0500000000000000000000000000000000000D0
71731 +:10D0600000000000000000000000000000000000C0
71732 +:10D0700000000000000000000000000000000000B0
71733 +:10D0800000000000000000000000000000000000A0
71734 +:10D090000000000000000000000000000000000090
71735 +:10D0A0000000000000000000000000000000000080
71736 +:10D0B0000000000000000000000000000000000070
71737 +:10D0C0000000000000000000000000000000000060
71738 +:10D0D0000000000000000000000000000000000050
71739 +:10D0E0000000000000000000000000000000000040
71740 +:10D0F0000000000000000000000000000000000030
71741 +:10D10000000000000000000000000000000000001F
71742 +:10D11000000000000000000000000000000000000F
71743 +:10D1200000000000000000000000000000000000FF
71744 +:10D1300000000000000000000000000000000000EF
71745 +:10D1400000000000000000000000000000000000DF
71746 +:10D1500000000000000000000000000000000000CF
71747 +:10D1600000000000000000000000000000000000BF
71748 +:10D1700000000000000000000000000000000000AF
71749 +:10D18000000000000000000000000000000000009F
71750 +:10D19000000000000000000000000000000000008F
71751 +:10D1A000000000000000000000000000000000007F
71752 +:10D1B000000000000000000000000000000000006F
71753 +:10D1C000000000000000000000000000000000005F
71754 +:10D1D000000000000000000000000000000000004F
71755 +:10D1E000000000000000000000000000000000003F
71756 +:10D1F000000000000000000000000000000000002F
71757 +:10D20000000000000000000000000000000000001E
71758 +:10D21000000000000000000000000000000000000E
71759 +:10D2200000000000000000000000000000000000FE
71760 +:10D2300000000000000000000000000000000000EE
71761 +:10D2400000000000000000000000000000000000DE
71762 +:10D2500000000000000000000000000000000000CE
71763 +:10D2600000000000000000000000000000000000BE
71764 +:10D2700000000000000000000000000000000000AE
71765 +:10D28000000000000000000000000000000000009E
71766 +:10D29000000000000000000000000000000000008E
71767 +:10D2A000000000000000000000000000000000007E
71768 +:10D2B000000000000000000000000000000000006E
71769 +:10D2C000000000000000000000000000000000005E
71770 +:10D2D000000000000000000000000000000000004E
71771 +:10D2E000000000000000000000000000000000003E
71772 +:10D2F000000000000000000000000000000000002E
71773 +:10D30000000000000000000000000000000000001D
71774 +:10D31000000000000000000000000000000000000D
71775 +:10D3200000000000000000000000000000000000FD
71776 +:10D3300000000000000000000000000000000000ED
71777 +:10D3400000000000000000000000000000000000DD
71778 +:10D3500000000000000000000000000000000000CD
71779 +:10D3600000000000000000000000000000000000BD
71780 +:10D3700000000000000000000000000000000000AD
71781 +:10D38000000000000000000000000000000000009D
71782 +:10D39000000000000000000000000000000000008D
71783 +:10D3A000000000000000000000000000000000007D
71784 +:10D3B000000000000000000000000000000000006D
71785 +:10D3C000000000000000000000000000000000005D
71786 +:10D3D000000000000000000000000000000000004D
71787 +:10D3E000000000000000000000000000000000003D
71788 +:10D3F000000000000000000000000000000000002D
71789 +:10D40000000000000000000000000000000000001C
71790 +:10D41000000000000000000000000000000000000C
71791 +:10D4200000000000000000000000000000000000FC
71792 +:10D4300000000000000000000000000000000000EC
71793 +:10D4400000000000000000000000000000000000DC
71794 +:10D4500000000000000000000000000000000000CC
71795 +:10D4600000000000000000000000000000000000BC
71796 +:10D4700000000000000000000000000000000000AC
71797 +:10D48000000000000000000000000000000000009C
71798 +:10D49000000000000000000000000000000000008C
71799 +:10D4A000000000000000000000000000000000007C
71800 +:10D4B000000000000000000000000000000000006C
71801 +:10D4C000000000000000000000000000000000005C
71802 +:10D4D000000000000000000000000000000000004C
71803 +:10D4E000000000000000000000000000000000003C
71804 +:10D4F000000000000000000000000000000000002C
71805 +:10D50000000000000000000000000000000000001B
71806 +:10D51000000000000000000000000000000000000B
71807 +:10D5200000000000000000000000000000000000FB
71808 +:10D5300000000000000000000000000000000000EB
71809 +:10D5400000000000000000000000000000000000DB
71810 +:10D5500000000000000000000000000000000000CB
71811 +:10D5600000000000000000000000000000000000BB
71812 +:10D5700000000000000000000000000000000000AB
71813 +:10D58000000000000000000000000000000000009B
71814 +:10D59000000000000000000000000000000000008B
71815 +:10D5A000000000000000000000000000000000007B
71816 +:10D5B000000000000000000000000000000000006B
71817 +:10D5C000000000000000000000000000000000005B
71818 +:10D5D000000000000000000000000000000000004B
71819 +:10D5E000000000000000000000000000000000003B
71820 +:10D5F000000000000000000000000000000000002B
71821 +:10D60000000000000000000000000000000000001A
71822 +:10D61000000000000000000000000000000000000A
71823 +:10D6200000000000000000000000000000000000FA
71824 +:10D6300000000000000000000000000000000000EA
71825 +:10D6400000000000000000000000000000000000DA
71826 +:10D6500000000000000000000000000000000000CA
71827 +:10D6600000000000000000000000000000000000BA
71828 +:10D6700000000000000000000000000000000000AA
71829 +:10D68000000000000000000000000000000000009A
71830 +:10D69000000000000000000000000000000000008A
71831 +:10D6A000000000000000000000000000000000007A
71832 +:10D6B000000000000000000000000000000000006A
71833 +:10D6C000000000000000000000000000000000005A
71834 +:10D6D000000000000000000000000000000000004A
71835 +:10D6E000000000000000000000000000000000003A
71836 +:10D6F000000000000000000000000000000000002A
71837 +:10D700000000000000000000000000000000000019
71838 +:10D710000000000000000000000000000000000009
71839 +:10D7200000000000000000000000000000000000F9
71840 +:10D7300000000000000000000000000000000000E9
71841 +:10D7400000000000000000000000000000000000D9
71842 +:10D7500000000000000000000000000000000000C9
71843 +:10D7600000000000000000000000000000000000B9
71844 +:10D7700000000000000000000000000000000000A9
71845 +:10D780000000000000000000000000000000000099
71846 +:10D790000000000000000000000000000000000089
71847 +:10D7A0000000000000000000000000000000000079
71848 +:10D7B0000000000000000000000000000000000069
71849 +:10D7C0000000000000000000000000000000000059
71850 +:10D7D0000000000000000000000000000000000049
71851 +:10D7E0000000000000000000000000000000000039
71852 +:10D7F0000000000000000000000000000000000029
71853 +:10D800000000000000000000000000000000000018
71854 +:10D810000000000000000000000000000000000008
71855 +:10D8200000000000000000000000000000000000F8
71856 +:10D8300000000000000000000000000000000000E8
71857 +:10D8400000000000000000000000000000000000D8
71858 +:10D8500000000000000000000000000000000000C8
71859 +:10D8600000000000000000000000000000000000B8
71860 +:10D8700000000000000000000000000000000000A8
71861 +:10D880000000000000000000000000000000000098
71862 +:10D890000000000000000000000000000000000088
71863 +:10D8A0000000000000000000000000000000000078
71864 +:10D8B0000000000000000000000000000000000068
71865 +:10D8C0000000000000000000000000000000000058
71866 +:10D8D0000000000000000000000000000000000048
71867 +:10D8E0000000000000000000000000000000000038
71868 +:10D8F0000000000000000000000000000000000028
71869 +:10D900000000000000000000000000000000000017
71870 +:10D910000000000000000000000000000000000007
71871 +:10D9200000000000000000000000000000000000F7
71872 +:10D9300000000000000000000000000000000000E7
71873 +:10D9400000000000000000000000000000000000D7
71874 +:10D9500000000000000000000000000000000000C7
71875 +:10D9600000000000000000000000000000000000B7
71876 +:10D9700000000000000000000000000000000000A7
71877 +:10D980000000000000000000000000000000000097
71878 +:10D990000000000000000000000000000000000087
71879 +:10D9A0000000000000000000000000000000000077
71880 +:10D9B0000000000000000000000000000000000067
71881 +:10D9C0000000000000000000000000000000000057
71882 +:10D9D0000000000000000000000000000000000047
71883 +:10D9E0000000000000000000000000000000000037
71884 +:10D9F0000000000000000000000000000000000027
71885 +:10DA00000000000000000000000000000000000016
71886 +:10DA10000000000000000000000000000000000006
71887 +:10DA200000000000000000000000000000000000F6
71888 +:10DA300000000000000000000000000000000000E6
71889 +:10DA400000000000000000000000000000000000D6
71890 +:10DA500000000000000000000000000000000000C6
71891 +:10DA600000000000000000000000000000000000B6
71892 +:10DA700000000000000000000000000000000000A6
71893 +:10DA80000000000000000000000000000000000096
71894 +:10DA90000000000000000000000000000000000086
71895 +:10DAA0000000000000000000000000000000000076
71896 +:10DAB0000000000000000000000000000000000066
71897 +:10DAC0000000000000000000000000000000000056
71898 +:10DAD0000000000000000000000000000000000046
71899 +:10DAE0000000000000000000000000000000000036
71900 +:10DAF0000000000000000000000000000000000026
71901 +:10DB00000000000000000000000000000000000015
71902 +:10DB10000000000000000000000000000000000005
71903 +:10DB200000000000000000000000000000000000F5
71904 +:10DB300000000000000000000000000000000000E5
71905 +:10DB400000000000000000000000000000000000D5
71906 +:10DB500000000000000000000000000000000000C5
71907 +:10DB600000000000000000000000000000000000B5
71908 +:10DB700000000000000000000000000000000000A5
71909 +:10DB80000000000000000000000000000000000095
71910 +:10DB90000000000000000000000000000000000085
71911 +:10DBA0000000000000000000000000000000000075
71912 +:10DBB0000000000000000000000000000000000065
71913 +:10DBC0000000000000000000000000000000000055
71914 +:10DBD0000000000000000000000000000000000045
71915 +:10DBE0000000000000000000000000000000000035
71916 +:10DBF0000000000000000000000000000000000025
71917 +:10DC00000000000000000000000000000000000014
71918 +:10DC10000000000000000000000000000000000004
71919 +:10DC200000000000000000000000000000000000F4
71920 +:10DC300000000000000000000000000000000000E4
71921 +:10DC400000000000000000000000000000000000D4
71922 +:10DC500000000000000000000000000000000000C4
71923 +:10DC600000000000000000000000000000000000B4
71924 +:10DC700000000000000000000000000000000000A4
71925 +:10DC80000000000000000000000000000000000094
71926 +:10DC90000000000000000000000000000000000084
71927 +:10DCA0000000000000000000000000000000000074
71928 +:10DCB0000000000000000000000000000000000064
71929 +:10DCC0000000000000000000000000000000000054
71930 +:10DCD0000000000000000000000000000000000044
71931 +:10DCE0000000000000000000000000000000000034
71932 +:10DCF0000000000000000000000000000000000024
71933 +:10DD00000000000000000000000000000000000013
71934 +:10DD10000000000000000000000000000000000003
71935 +:10DD200000000000000000000000000000000000F3
71936 +:10DD300000000000000000000000000000000000E3
71937 +:10DD400000000000000000000000000000000000D3
71938 +:10DD500000000000000000000000000000000000C3
71939 +:10DD600000000000000000000000000000000000B3
71940 +:10DD700000000000000000000000000000000000A3
71941 +:10DD80000000000000000000000000000000000093
71942 +:10DD90000000000000000000000000000000000083
71943 +:10DDA0000000000000000000000000000000000073
71944 +:10DDB0000000000000000000000000000000000063
71945 +:10DDC0000000000000000000000000000000000053
71946 +:10DDD0000000000000000000000000000000000043
71947 +:10DDE0000000000000000000000000000000000033
71948 +:10DDF0000000000000000000000000000000000023
71949 +:10DE00000000000000000000000000000000000012
71950 +:10DE10000000000000000000000000000000000002
71951 +:10DE200000000000000000000000000000000000F2
71952 +:10DE300000000000000000000000000000000000E2
71953 +:10DE400000000000000000000000000000000000D2
71954 +:10DE500000000000000000000000000000000000C2
71955 +:10DE600000000000000000000000000000000000B2
71956 +:10DE700000000000000000000000000000000000A2
71957 +:10DE80000000000000000000000000000000000092
71958 +:10DE90000000000000000000000000000000000082
71959 +:10DEA0000000000000000000000000000000000072
71960 +:10DEB0000000000000000000000000000000000062
71961 +:10DEC0000000000000000000000000000000000052
71962 +:10DED0000000000000000000000000000000000042
71963 +:10DEE0000000000000000000000000000000000032
71964 +:10DEF0000000000000000000000000000000000022
71965 +:10DF00000000000000000000000000000000000011
71966 +:10DF10000000000000000000000000000000000001
71967 +:10DF200000000000000000000000000000000000F1
71968 +:10DF300000000000000000000000000000000000E1
71969 +:10DF400000000000000000000000000000000000D1
71970 +:10DF500000000000000000000000000000000000C1
71971 +:10DF600000000000000000000000000000000000B1
71972 +:10DF700000000000000000000000000000000000A1
71973 +:10DF80000000000000000000000000000000000091
71974 +:10DF90000000000000000000000000000000000081
71975 +:10DFA0000000000000000000000000000000000071
71976 +:10DFB0000000000000000000000000000000000061
71977 +:10DFC0000000000000000000000000000000000051
71978 +:10DFD0000000000000000000000000000000000041
71979 +:10DFE0000000000000000000000000000000000031
71980 +:10DFF0000000000000000000000000000000000021
71981 +:10E000000000000000000000000000000000000010
71982 +:10E010000000000000000000000000000000000000
71983 +:10E0200000000000000000000000000000000000F0
71984 +:10E0300000000000000000000000000000000000E0
71985 +:10E0400000000000000000000000000000000000D0
71986 +:10E0500000000000000000000000000000000000C0
71987 +:10E0600000000000000000000000000000000000B0
71988 +:10E0700000000000000000000000000000000000A0
71989 +:10E080000000000000000000000000000000000090
71990 +:10E090000000000000000000000000000000000080
71991 +:10E0A0000000000000000000000000000000000070
71992 +:10E0B0000000000000000000000000000000000060
71993 +:10E0C0000000000000000000000000000000000050
71994 +:10E0D0000000000000000000000000000000000040
71995 +:10E0E0000000000000000000000000000000000030
71996 +:10E0F0000000000000000000000000000000000020
71997 +:10E10000000000000000000000000000000000000F
71998 +:10E1100000000000000000000000000000000000FF
71999 +:10E1200000000000000000000000000000000000EF
72000 +:10E1300000000000000000000000000000000000DF
72001 +:10E1400000000000000000000000000000000000CF
72002 +:10E1500000000000000000000000000000000000BF
72003 +:10E1600000000000000000000000000000000000AF
72004 +:10E17000000000000000000000000000000000009F
72005 +:10E18000000000000000000000000000000000008F
72006 +:10E19000000000000000000000000000000000007F
72007 +:10E1A000000000000000000000000000000000006F
72008 +:10E1B000000000000000000000000000000000005F
72009 +:10E1C000000000000000000000000000000000004F
72010 +:10E1D000000000000000000000000000000000003F
72011 +:10E1E000000000000000000000000000000000002F
72012 +:10E1F000000000000000000000000000000000809F
72013 +:10E20000000000000000000000000000000000000E
72014 +:10E2100000000000000000000000000000000000FE
72015 +:10E220000000000A000000000000000000000000E4
72016 +:10E2300010000003000000000000000D0000000DB1
72017 +:10E240003C020801244295C03C030801246397FC6A
72018 +:10E25000AC4000000043202B1480FFFD244200044A
72019 +:10E260003C1D080037BD9FFC03A0F0213C100800B6
72020 +:10E27000261032103C1C0801279C95C00E0012BECF
72021 +:10E28000000000000000000D3C02800030A5FFFFF0
72022 +:10E2900030C600FF344301803C0880008D0901B87E
72023 +:10E2A0000520FFFE00000000AC6400002404000212
72024 +:10E2B000A4650008A066000AA064000BAC67001803
72025 +:10E2C0003C03100003E00008AD0301B83C0560000A
72026 +:10E2D0008CA24FF80440FFFE00000000ACA44FC029
72027 +:10E2E0003C0310003C040200ACA44FC403E000084F
72028 +:10E2F000ACA34FF89486000C00A050212488001491
72029 +:10E3000000062B0200051080004448210109182B4B
72030 +:10E310001060001100000000910300002C6400094F
72031 +:10E320005080000991190001000360803C0D080134
72032 +:10E3300025AD9258018D58218D67000000E000083E
72033 +:10E340000000000091190001011940210109302B42
72034 +:10E3500054C0FFF29103000003E000080000102108
72035 +:10E360000A000CCC25080001910F0001240E000AC0
72036 +:10E3700015EE00400128C8232F38000A1700003D81
72037 +:10E38000250D00028D580000250F0006370E0100F4
72038 +:10E39000AD4E0000910C000291AB000191A400026F
72039 +:10E3A00091A60003000C2E00000B3C0000A71025D6
72040 +:10E3B00000041A000043C8250326C025AD580004F8
72041 +:10E3C000910E000691ED000191E7000291E5000336
72042 +:10E3D000000E5E00000D6400016C30250007220075
72043 +:10E3E00000C41025004518252508000A0A000CCC99
72044 +:10E3F000AD430008910F000125040002240800022B
72045 +:10E4000055E80001012020210A000CCC00804021A9
72046 +:10E41000910C0001240B0003158B00160000000076
72047 +:10E420008D580000910E000225080003370D0008EA
72048 +:10E43000A14E00100A000CCCAD4D00009119000156
72049 +:10E44000240F0004172F000B0000000091070002AA
72050 +:10E45000910400038D43000000072A0000A410254A
72051 +:10E460003466000425080004AD42000C0A000CCC00
72052 +:10E47000AD46000003E000082402000127BDFFE8CC
72053 +:10E48000AFBF0014AFB000100E00164E0080802108
72054 +:10E490003C0480083485008090A600052403FFFE1C
72055 +:10E4A0000200202100C310248FBF00148FB0001081
72056 +:10E4B000A0A200050A00165827BD001827BDFFE8D6
72057 +:10E4C000AFB00010AFBF00140E000FD40080802149
72058 +:10E4D0003C06800834C5008090A40000240200504F
72059 +:10E4E000308300FF106200073C09800002002021F9
72060 +:10E4F0008FBF00148FB00010AD2001800A00108F74
72061 +:10E5000027BD0018240801003C07800002002021DC
72062 +:10E510008FBF00148FB00010ACE801800A00108F8C
72063 +:10E5200027BD001827BDFF783C058008AFBE0080DE
72064 +:10E53000AFB7007CAFB3006CAFB10064AFBF008475
72065 +:10E54000AFB60078AFB50074AFB40070AFB200687A
72066 +:10E55000AFB0006034A600803C0580008CB201287A
72067 +:10E5600090C400098CA701043C020001309100FF17
72068 +:10E5700000E218240000B8210000F021106000071C
72069 +:10E58000000098213C0908008D2931F02413000176
72070 +:10E59000252800013C010800AC2831F0ACA0008423
72071 +:10E5A00090CC0005000C5827316A0001154000721C
72072 +:10E5B000AFA0005090CD00002406002031A400FF41
72073 +:10E5C00010860018240E0050108E009300000000EA
72074 +:10E5D0003C1008008E1000DC260F00013C010800F2
72075 +:10E5E000AC2F00DC0E0016C7000000000040182110
72076 +:10E5F0008FBF00848FBE00808FB7007C8FB60078FD
72077 +:10E600008FB500748FB400708FB3006C8FB2006848
72078 +:10E610008FB100648FB000600060102103E000083B
72079 +:10E6200027BD00880000000D3C1F8000AFA0003017
72080 +:10E6300097E501168FE201043C04002030B9FFFF8A
72081 +:10E64000004438240007182B00033140AFA60030E7
72082 +:10E650008FF5010437F80C003C1600400338802188
72083 +:10E6600002B6A02434C40040128000479215000D69
72084 +:10E6700032A800201500000234860080008030217E
72085 +:10E6800014C0009FAFA600303C0D800835A6008066
72086 +:10E6900090CC0008318B0040516000063C06800899
72087 +:10E6A000240E0004122E00A8240F0012122F003294
72088 +:10E6B0003C06800834C401003C0280009447011AE3
72089 +:10E6C0009619000E909F00088E18000830E3FFFF97
72090 +:10E6D00003F9B00432B40004AFB6005CAFA3005835
72091 +:10E6E0008E1600041280002EAFB8005434C3008090
72092 +:10E6F000906800083105004014A0002500000000CB
72093 +:10E700008C70005002D090230640000500000000ED
72094 +:10E710008C71003402D1A82306A201678EE20008A2
72095 +:10E72000126000063C1280003C1508008EB531F4E2
72096 +:10E7300026B600013C010800AC3631F4AE4000447E
72097 +:10E74000240300018FBF00848FBE00808FB7007C40
72098 +:10E750008FB600788FB500748FB400708FB3006CE3
72099 +:10E760008FB200688FB100648FB00060006010212C
72100 +:10E7700003E0000827BD00880E000D2800002021BE
72101 +:10E780000A000D75004018210A000D9500C02021D7
72102 +:10E790000E00171702C020211440FFE10000000006
72103 +:10E7A0003C0B8008356400808C8A003402CA482300
72104 +:10E7B0000520001D000000003C1E08008FDE310017
72105 +:10E7C00027D700013C010800AC3731001260000679
72106 +:10E7D000024020213C1408008E9431F42690000160
72107 +:10E7E0003C010800AC3031F40E00164E3C1E80088F
72108 +:10E7F00037CD008091B700250240202136EE00047D
72109 +:10E800000E001658A1AE00250E000CAC02402021CF
72110 +:10E810000A000DCA240300013C17080126F796C020
72111 +:10E820000A000D843C1F80008C86003002C66023E5
72112 +:10E830001980000C2419000C908F004F3C14080024
72113 +:10E840008E94310032B500FC35ED0001268E0001BA
72114 +:10E850003C010800AC2E3100A08D004FAFA0005845
72115 +:10E860002419000CAFB900308C9800300316A02397
72116 +:10E870001A80010B8FA300580074F82A17E0FFD309
72117 +:10E88000000000001074002A8FA5005802D4B021A7
72118 +:10E8900000B410233044FFFFAFA4005832A8000298
72119 +:10E8A0001100002E32AB00103C15800836B00080FD
72120 +:10E8B0009216000832D30040526000FB8EE200083E
72121 +:10E8C0000E00164E02402021240A0018A20A000958
72122 +:10E8D000921100052409FFFE024020210229902404
72123 +:10E8E0000E001658A2120005240400390000282149
72124 +:10E8F0000E0016F2240600180A000DCA24030001B7
72125 +:10E9000092FE000C3C0A800835490080001EBB00C6
72126 +:10E910008D27003836F10081024020213225F08118
72127 +:10E920000E000C9B30C600FF0A000DC10000000065
72128 +:10E930003AA7000130E300011460FFA402D4B02123
72129 +:10E940000A000E1D00000000024020210E001734B6
72130 +:10E95000020028210A000D75004018211160FF7087
72131 +:10E960003C0F80083C0D800835EE00808DC40038D7
72132 +:10E970008FA300548DA60004006660231D80FF68ED
72133 +:10E98000000000000064C02307020001AFA400548F
72134 +:10E990003C1F08008FFF31E433F9000113200015FC
72135 +:10E9A0008FAC00583C07800094E3011A10600012FD
72136 +:10E9B0003C0680080E00216A024020213C03080129
72137 +:10E9C000906396F13064000214800145000000005D
72138 +:10E9D000306C0004118000078FAC0058306600FBDB
72139 +:10E9E0003C010801A02696F132B500FCAFA000580A
72140 +:10E9F0008FAC00583C06800834D30080AFB40018B8
72141 +:10EA0000AFB60010AFAC00143C088000950B01209D
72142 +:10EA10008E6F0030966A005C8FA3005C8FBF003061
72143 +:10EA20003169FFFF3144FFFF8FAE005401341021E4
72144 +:10EA3000350540000064382B0045C82103E7C02598
72145 +:10EA4000AFB90020AFAF0028AFB80030AFAF00249F
72146 +:10EA5000AFA0002CAFAE0034926D000831B40008B6
72147 +:10EA6000168000BB020020218EE200040040F8095D
72148 +:10EA700027A400108FAF003031F300025660000170
72149 +:10EA800032B500FE3C048008349F008093F90008F2
72150 +:10EA900033380040530000138FA400248C850004F9
72151 +:10EAA0008FA7005410A700D52404001432B0000131
72152 +:10EAB0001200000C8FA400242414000C1234011A3C
72153 +:10EAC0002A2D000D11A001022413000E240E000AAD
72154 +:10EAD000522E0001241E00088FAF002425E40001FF
72155 +:10EAE000AFA400248FAA00143C0B80083565008079
72156 +:10EAF000008A48218CB10030ACA9003090A4004EAF
72157 +:10EB00008CA700303408FFFF0088180400E3F821C8
72158 +:10EB1000ACBF00348FA600308FB900548FB8005CB2
72159 +:10EB200030C200081040000B033898218CAC002044
72160 +:10EB3000119300D330C600FF92EE000C8FA7003473
72161 +:10EB400002402021000E6B0035B400800E000C9BAB
72162 +:10EB50003285F0803C028008345000808E0F0030F7
72163 +:10EB600001F1302318C00097264800803C070800B8
72164 +:10EB70008CE731E42404FF80010418243118007F5D
72165 +:10EB80003C1F80003C19800430F10001AFE300908D
72166 +:10EB900012200006031928213C030801906396F116
72167 +:10EBA00030690008152000C6306A00F73C10800864
72168 +:10EBB00036040080908C004F318B000115600042BC
72169 +:10EBC000000000003C0608008CC6319830CE0010D2
72170 +:10EBD00051C0004230F9000190AF006B55E0003F9A
72171 +:10EBE00030F9000124180001A0B8006B3C1180002E
72172 +:10EBF0009622007A24470064A48700123C0D800806
72173 +:10EC000035A5008090B40008329000401600000442
72174 +:10EC10003C03800832AE000115C0008B00000000EC
72175 +:10EC2000346400808C86002010D3000A3463010015
72176 +:10EC30008C67000002C7782319E000978FBF00544B
72177 +:10EC4000AC93002024130001AC760000AFB3005059
72178 +:10EC5000AC7F000417C0004E000000008FA90050D8
72179 +:10EC60001520000B000000003C030801906396F1A2
72180 +:10EC7000306A00011140002E8FAB0058306400FE56
72181 +:10EC80003C010801A02496F10A000D75000018212E
72182 +:10EC90000E000CAC024020210A000F1300000000FF
72183 +:10ECA0000A000E200000A0210040F80924040017EB
72184 +:10ECB0000A000DCA240300010040F80924040016CC
72185 +:10ECC0000A000DCA240300019094004F240DFFFE9A
72186 +:10ECD000028D2824A085004F30F900011320000682
72187 +:10ECE0003C0480083C030801906396F1307F0010DB
72188 +:10ECF00017E00051306800EF34900080240A0001D2
72189 +:10ED0000024020210E00164EA60A00129203002592
72190 +:10ED100024090001AFA90050346200010240202103
72191 +:10ED20000E001658A20200250A000EF93C0D8008BC
72192 +:10ED30001160FE83000018218FA5003030AC000464
72193 +:10ED40001180FE2C8FBF00840A000DCB240300012C
72194 +:10ED500027A500380E000CB6AFA000385440FF4382
72195 +:10ED60008EE200048FB40038329001005200FF3F61
72196 +:10ED70008EE200048FA3003C8E6E0058006E682364
72197 +:10ED800005A3FF39AE6300580A000E948EE200041A
72198 +:10ED90000E00164E024020213C038008346800809B
72199 +:10EDA000024020210E001658A11E000903C0302188
72200 +:10EDB000240400370E0016F2000028210A000F116B
72201 +:10EDC0008FA900508FAB00185960FF8D3C0D800853
72202 +:10EDD0000E00164E02402021920C00252405000151
72203 +:10EDE000AFA5005035820004024020210E001658C5
72204 +:10EDF000A20200250A000EF93C0D800812240059D9
72205 +:10EE00002A2300151060004D240900162408000C68
72206 +:10EE10005628FF2732B000013C0A8008914C001BA5
72207 +:10EE20002406FFBD241E000E01865824A14B001BA2
72208 +:10EE30000A000EA532B000013C010801A02896F19D
72209 +:10EE40000A000EF93C0D80088CB500308EFE0008DB
72210 +:10EE50002404001826B6000103C0F809ACB600303F
72211 +:10EE60003C030801906396F13077000116E0FF81C2
72212 +:10EE7000306A00018FB200300A000D753243000481
72213 +:10EE80003C1080009605011A50A0FF2B34C60010DC
72214 +:10EE90000A000EC892EE000C8C6200001456FF6D42
72215 +:10EEA000000000008C7800048FB9005403388823D8
72216 +:10EEB0000621FF638FBF00540A000F0E0000000000
72217 +:10EEC0003C010801A02A96F10A000F3030F9000138
72218 +:10EED0001633FF028FAF00240A000EB0241E00106C
72219 +:10EEE0000E00164E024020213C0B80083568008041
72220 +:10EEF00091090025240A0001AFAA0050353300040F
72221 +:10EF0000024020210E001658A11300253C050801DF
72222 +:10EF100090A596F130A200FD3C010801A02296F1D7
72223 +:10EF20000A000E6D004018212411000E53D1FEEA94
72224 +:10EF3000241E00100A000EAF241E00165629FEDC07
72225 +:10EF400032B000013C0A8008914C001B2406FFBD32
72226 +:10EF5000241E001001865824A14B001B0A000EA598
72227 +:10EF600032B000010A000EA4241E00123C038000EF
72228 +:10EF70008C6201B80440FFFE24040800AC6401B8B0
72229 +:10EF800003E000080000000030A5FFFF30C6FFFFCF
72230 +:10EF90003C0780008CE201B80440FFFE34EA0180A7
72231 +:10EFA000AD440000ACE400203C0480089483004899
72232 +:10EFB0003068FFFF11000016AF88000824AB001274
72233 +:10EFC000010B482B512000133C04800034EF01005A
72234 +:10EFD00095EE00208F890000240D001A31CCFFFF30
72235 +:10EFE00031274000A14D000B10E000362583FFFEC5
72236 +:10EFF0000103C02B170000348F9900048F88000490
72237 +:10F00000A5430014350700010A001003AF87000470
72238 +:10F010003C04800024030003348201808F890000B7
72239 +:10F020008F870004A043000B3C088000350C018052
72240 +:10F03000A585000EA585001A8F85000C30EB800099
72241 +:10F04000A5890010AD850028A58600081160000F75
72242 +:10F050008F85001435190100972A00163158FFFCDE
72243 +:10F06000270F000401E870218DCD400031A6FFFF7D
72244 +:10F0700014C000072403BFFF3C02FFFF34487FFF9A
72245 +:10F0800000E83824AF8700048F8500142403BFFFF5
72246 +:10F090003C04800000E3582434830180A46B0026E4
72247 +:10F0A000AC69002C10A0000300054C02A465001000
72248 +:10F0B000A46900263C071000AC8701B803E00008F3
72249 +:10F0C000000000008F990004240AFFFE032A382460
72250 +:10F0D0000A001003AF87000427BDFFE88FA20028B5
72251 +:10F0E00030A5FFFF30C6FFFFAFBF0010AF87000C99
72252 +:10F0F000AF820014AF8000040E000FDBAF80000071
72253 +:10F100008FBF001027BD001803E00008AF80001477
72254 +:10F110003C06800034C4007034C701008C8A0000B3
72255 +:10F1200090E500128F84000027BDFFF030A300FFA0
72256 +:10F13000000318823082400010400037246500032D
72257 +:10F140000005C8800326C0218F0E4000246F0004F4
72258 +:10F15000000F6880AFAE000001A660218D8B4000DB
72259 +:10F16000AFAB000494E900163128FFFC01063821FA
72260 +:10F170008CE64000AFA600088FA9000800003021EF
72261 +:10F18000000028213C07080024E701000A0010675E
72262 +:10F19000240800089059000024A500012CAC000CA4
72263 +:10F1A0000079C0210018788001E770218DCD000022
72264 +:10F1B0001180000600CD302603A5102114A8FFF50C
72265 +:10F1C00000051A005520FFF4905900003C0480000F
72266 +:10F1D000348700703C0508008CA531048CE30000E6
72267 +:10F1E0002CA2002010400009006A38230005488046
72268 +:10F1F0003C0B0800256B3108012B402124AA00019B
72269 +:10F20000AD0700003C010800AC2A310400C0102109
72270 +:10F2100003E0000827BD0010308220001040000BE2
72271 +:10F2200000055880016648218D24400024680004B0
72272 +:10F2300000083880AFA4000000E618218C6540006B
72273 +:10F24000AFA000080A001057AFA500040000000D91
72274 +:10F250000A0010588FA9000827BDFFE03C07800076
72275 +:10F2600034E60100AFBF001CAFB20018AFB100140C
72276 +:10F27000AFB0001094C5000E8F87000030A4FFFFD0
72277 +:10F280002483000430E2400010400010AF830028C7
72278 +:10F290003C09002000E940241100000D30EC800002
72279 +:10F2A0008F8A0004240BBFFF00EB38243543100085
72280 +:10F2B000AF87000030F220001640000B3C1900041C
72281 +:10F2C000241FFFBF0A0010B7007F102430EC80001D
72282 +:10F2D000158000423C0E002030F220001240FFF862
72283 +:10F2E0008F8300043C19000400F9C0241300FFF5CB
72284 +:10F2F000241FFFBF34620040AF82000430E20100EF
72285 +:10F300001040001130F010008F83002C10600006B8
72286 +:10F310003C0F80003C05002000E52024148000C044
72287 +:10F320003C0800043C0F800035EE010095CD001E26
72288 +:10F3300095CC001C31AAFFFF000C5C00014B482556
72289 +:10F34000AF89000C30F010001200000824110001F9
72290 +:10F3500030F100201620008B3C18100000F890249B
72291 +:10F36000164000823C040C002411000130E801002A
72292 +:10F370001500000B3C0900018F85000430A94000F6
72293 +:10F38000152000073C0900013C0C1F0100EC58242B
72294 +:10F390003C0A1000116A01183C1080003C09000171
72295 +:10F3A00000E9302410C000173C0B10003C18080086
72296 +:10F3B0008F1800243307000214E0014024030001E9
72297 +:10F3C0008FBF001C8FB200188FB100148FB00010D7
72298 +:10F3D0000060102103E0000827BD002000EE682433
72299 +:10F3E00011A0FFBE30F220008F8F00043C11FFFF00
72300 +:10F3F00036307FFF00F0382435E380000A0010A685
72301 +:10F40000AF87000000EB102450400065AF8000245F
72302 +:10F410008F8C002C3C0D0F0000ED18241580008807
72303 +:10F42000AF83001030E8010011000086938F0010B8
72304 +:10F430003C0A0200106A00833C1280003650010032
72305 +:10F44000920500139789002A3626000230AF00FF8C
72306 +:10F4500025EE0004000E19C03C0480008C9801B811
72307 +:10F460000700FFFE34880180AD0300003C198008CE
72308 +:10F47000AC830020973100483225FFFF10A0015CCB
72309 +:10F48000AF8500082523001200A3F82B53E0015993
72310 +:10F490008F850004348D010095AC00202402001AF1
72311 +:10F4A00030E44000318BFFFFA102000B108001927D
72312 +:10F4B0002563FFFE00A3502B154001908F8F0004A1
72313 +:10F4C000A50300148F88000435050001AF850004F2
72314 +:10F4D0003C08800035190180A729000EA729001AD1
72315 +:10F4E0008F89000C30B18000A7270010AF290028B9
72316 +:10F4F000A72600081220000E3C04800035020100FF
72317 +:10F50000944C0016318BFFFC256400040088182100
72318 +:10F510008C7F400033E6FFFF14C000053C048000F0
72319 +:10F520003C0AFFFF354D7FFF00AD2824AF85000466
72320 +:10F53000240EBFFF00AE402434850180A4A800261D
72321 +:10F54000ACA7002C3C071000AC8701B800001821C4
72322 +:10F550008FBF001C8FB200188FB100148FB0001045
72323 +:10F560000060102103E0000827BD00203C020BFFD3
72324 +:10F5700000E41824345FFFFF03E3C82B5320FF7B14
72325 +:10F58000241100013C0608008CC6002C24C5000193
72326 +:10F590003C010800AC25002C0A0010D42411000501
72327 +:10F5A0008F85002410A0002FAF80001090A30000D2
72328 +:10F5B000146000792419000310A0002A30E601002D
72329 +:10F5C00010C000CC8F860010241F000210DF00C97D
72330 +:10F5D0008F8B000C3C0708008CE7003824E4FFFF09
72331 +:10F5E00014E0000201641824000018213C0D0800FA
72332 +:10F5F00025AD0038006D1021904C00048F85002847
72333 +:10F6000025830004000321C030A5FFFF3626000239
72334 +:10F610000E000FDB000000000A00114D0000182151
72335 +:10F6200000E8302414C0FF403C0F80000E00103D65
72336 +:10F63000000000008F8700000A0010CAAF82000C93
72337 +:10F64000938F00103C18080127189640000F90C0B7
72338 +:10F6500002588021AF9000248F85002414A0FFD38E
72339 +:10F66000AF8F00103C0480008C86400030C5010044
72340 +:10F6700010A000BC322300043C0C08008D8C002438
72341 +:10F6800024120004106000C23190000D3C04800080
72342 +:10F690008C8D40003402FFFF11A201003231FFFBCC
72343 +:10F6A0008C884000310A01005540000124110010EF
72344 +:10F6B00030EE080011C000BE2419FFFB8F9800280F
72345 +:10F6C0002F0F03EF51E000010219802430E90100FF
72346 +:10F6D00011200014320800018F87002C14E000FB79
72347 +:10F6E0008F8C000C3C05800034AB0100917F00132F
72348 +:10F6F00033E300FF246A00042403FFFE0203802496
72349 +:10F70000000A21C012000002023230253226FFFF1B
72350 +:10F710000E000FDB9785002A1200FF290000182138
72351 +:10F72000320800011100000D32180004240E0001FF
72352 +:10F73000120E0002023230253226FFFF9785002A82
72353 +:10F740000E000FDB00002021240FFFFE020F80249B
72354 +:10F750001200FF1B00001821321800045300FF188C
72355 +:10F760002403000102323025241200045612000145
72356 +:10F770003226FFFF9785002A0E000FDB24040100CC
72357 +:10F780002419FFFB021988241220FF0D0000182104
72358 +:10F790000A0010E9240300011079009C00003021C8
72359 +:10F7A00090AD00012402000211A200BE30EA004028
72360 +:10F7B00090B90001241800011338007F30E900409F
72361 +:10F7C0008CA600049785002A00C020210E000FDBC4
72362 +:10F7D0003626000200004021010018218FBF001CC6
72363 +:10F7E0008FB200188FB100148FB00010006010218C
72364 +:10F7F00003E0000827BD0020360F010095EE000C45
72365 +:10F8000031CD020015A0FEE63C0900013C1880083D
72366 +:10F81000971200489789002A362600023248FFFFD7
72367 +:10F82000AF8800083C0380008C7101B80620FFFE01
72368 +:10F83000346A0180AD4000001100008E3C0F800052
72369 +:10F84000253F0012011FC82B1320008B240E00033C
72370 +:10F85000346C0100958B00202402001A30E4400033
72371 +:10F860003163FFFFA142000B108000A72463FFFE5D
72372 +:10F870000103682B15A000A52408FFFE34A5000194
72373 +:10F88000A5430014AF8500043C0480002412BFFF90
72374 +:10F8900000B2802434850180A4A9000EA4A9001A16
72375 +:10F8A000A4A60008A4B00026A4A700103C071000DE
72376 +:10F8B000AC8701B80A00114D000018213C038000FC
72377 +:10F8C00034640100949F000E3C1908008F3900D861
72378 +:10F8D0002404008033E5FFFF273100013C010800CC
72379 +:10F8E000AC3100D80E000FDB240600030A00114DD6
72380 +:10F8F00000001821240A000210CA00598F85002830
72381 +:10F900003C0308008C6300D0240E0001106E005EE2
72382 +:10F910002CCF000C24D2FFFC2E5000041600002136
72383 +:10F9200000002021241800021078001B2CD9000CA4
72384 +:10F9300024DFFFF82FE900041520FF330000202109
72385 +:10F9400030EB020051600004000621C054C00022C8
72386 +:10F9500030A5FFFF000621C030A5FFFF0A00117D82
72387 +:10F96000362600023C0908008D29002431300001B0
72388 +:10F970005200FEF7000018219785002A3626000263
72389 +:10F980000E000FDB000020210A00114D000018219D
72390 +:10F990000A00119C241200021320FFE624DFFFF866
72391 +:10F9A0000000202130A5FFFF0A00117D362600024D
72392 +:10F9B0000A0011AC021980245120FF828CA6000499
72393 +:10F9C0003C05080190A5964110A0FF7E2408000187
72394 +:10F9D0000A0011F0010018210E000FDB3226000191
72395 +:10F9E0008F8600108F8500280A00124F000621C064
72396 +:10F9F0008F8500043C18800024120003371001801A
72397 +:10FA0000A212000B0A00112E3C08800090A30001F6
72398 +:10FA1000241100011071FF70240800012409000264
72399 +:10FA20005069000430E60040240800010A0011F08B
72400 +:10FA30000100182150C0FFFD240800013C0C80008B
72401 +:10FA4000358B01009563001094A40002307FFFFF06
72402 +:10FA5000509FFF62010018210A001284240800014F
72403 +:10FA60002CA803EF1100FE56240300010A001239EE
72404 +:10FA700000000000240E000335EA0180A14E000BB7
72405 +:10FA80000A00121C3C04800011E0FFA2000621C005
72406 +:10FA900030A5FFFF0A00117D362600020A0011A5DD
72407 +:10FAA000241100201140FFC63C1280003650010096
72408 +:10FAB000960F001094AE000231E80FFF15C8FFC08A
72409 +:10FAC000000000000A0011E690B900013C060800A1
72410 +:10FAD0008CC6003824C4FFFF14C00002018418241F
72411 +:10FAE000000018213C0D080025AD0038006D1021E4
72412 +:10FAF0000A0011B6904300048F8F0004240EFFFE0D
72413 +:10FB00000A00112C01EE28242408FFFE0A00121A14
72414 +:10FB100000A8282427BDFFC8AFB00010AFBF003435
72415 +:10FB20003C10600CAFBE0030AFB7002CAFB6002861
72416 +:10FB3000AFB50024AFB40020AFB3001CAFB20018C3
72417 +:10FB4000AFB100148E0E5000240FFF7F3C068000E2
72418 +:10FB500001CF682435AC380C240B0003AE0C5000E8
72419 +:10FB6000ACCB00083C010800AC2000200E001819A6
72420 +:10FB7000000000003C0A0010354980513C06601628
72421 +:10FB8000AE09537C8CC700003C0860148D0500A0B2
72422 +:10FB90003C03FFFF00E320243C02535300051FC237
72423 +:10FBA0001482000634C57C000003A08002869821E0
72424 +:10FBB0008E7200043C116000025128218CBF007C31
72425 +:10FBC0008CA200783C1E600037C420203C05080150
72426 +:10FBD00024A59288AF820018AF9F001C0E0016DD8E
72427 +:10FBE0002406000A3C190001273996403C01080010
72428 +:10FBF000AC3931DC0E0020DDAF8000148FD708084F
72429 +:10FC00002418FFF03C15570902F8B02412D502F56C
72430 +:10FC100024040001AF80002C3C1480003697018042
72431 +:10FC20003C1E080127DE9644369301008E900000AA
72432 +:10FC30003205000310A0FFFD3207000110E000882C
72433 +:10FC4000320600028E7100283C048000AE91002034
72434 +:10FC50008E6500048E66000000A0382100C040219F
72435 +:10FC60008C8301B80460FFFE3C0B0010240A0800DE
72436 +:10FC700000AB4824AC8A01B8552000E0240BBFFF3C
72437 +:10FC80009675000E3C1208008E52002030AC4000E9
72438 +:10FC900032AFFFFF264E000125ED00043C010800B5
72439 +:10FCA000AC2E0020118000E8AF8D00283C18002009
72440 +:10FCB00000B8B02412C000E530B980002408BFFFAE
72441 +:10FCC00000A8382434C81000AF87000030E62000B8
72442 +:10FCD00010C000E92409FFBF3C03000400E328240E
72443 +:10FCE00010A00002010910243502004030EA010092
72444 +:10FCF00011400010AF8200048F8B002C11600007B0
72445 +:10FD00003C0D002000ED6024118000043C0F000435
72446 +:10FD100000EF702411C00239000000009668001E38
72447 +:10FD20009678001C3115FFFF0018B40002B690252C
72448 +:10FD3000AF92000C30F910001320001324150001BD
72449 +:10FD400030FF002017E0000A3C04100000E41024FB
72450 +:10FD50001040000D3C0A0C003C090BFF00EA18247F
72451 +:10FD60003525FFFF00A3302B10C0000830ED010047
72452 +:10FD70003C0C08008D8C002C24150005258B0001FF
72453 +:10FD80003C010800AC2B002C30ED010015A0000B4D
72454 +:10FD90003C0500018F85000430AE400055C00007CF
72455 +:10FDA0003C0500013C161F0100F690243C0F10009A
72456 +:10FDB000124F01CE000000003C05000100E5302498
72457 +:10FDC00010C000AF3C0C10003C1F08008FFF002447
72458 +:10FDD00033E90002152000712403000100601021A6
72459 +:10FDE000104000083C0680003C08800035180100E7
72460 +:10FDF0008F0F00243C056020ACAF00140000000011
72461 +:10FE00003C0680003C194000ACD9013800000000DD
72462 +:10FE10005220001332060002262B0140262C0080BF
72463 +:10FE2000240EFF80016E2024018E6824000D1940ED
72464 +:10FE3000318A007F0004A9403172007F3C16200007
72465 +:10FE400036C20002006A482502B2382500E2882541
72466 +:10FE50000122F825ACDF0830ACD1083032060002B0
72467 +:10FE600010C0FF723C188000370501408CA80000CC
72468 +:10FE700024100040AF08002090AF000831E300706C
72469 +:10FE8000107000D428790041532000082405006038
72470 +:10FE9000241100201071000E3C0A40003C09800033
72471 +:10FEA000AD2A01780A001304000000001465FFFB6E
72472 +:10FEB0003C0A40000E001FFA000000003C0A40000F
72473 +:10FEC0003C098000AD2A01780A00130400000000FC
72474 +:10FED00090A90009241F00048CA70000312800FF0E
72475 +:10FEE000111F01B22503FFFA2C7200061240001404
72476 +:10FEF0003C0680008CA9000494A4000A310500FF90
72477 +:10FF000000095E022D6A00083086FFFF15400002DE
72478 +:10FF10002567000424070003240C000910AC01FA33
72479 +:10FF200028AD000A11A001DE2410000A240E0008EA
72480 +:10FF300010AE0028000731C000C038213C06800008
72481 +:10FF40008CD501B806A0FFFE34D20180AE47000078
72482 +:10FF500034CB0140916E0008240300023C0A4000AB
72483 +:10FF600031C400FF00046A0001A86025A64C000807
72484 +:10FF7000A243000B9562000A3C0810003C09800077
72485 +:10FF8000A64200108D670004AE470024ACC801B83B
72486 +:10FF9000AD2A01780A001304000000003C0A80002A
72487 +:10FFA000354401009483000E3C0208008C4200D8C6
72488 +:10FFB000240400803065FFFF245500013C01080047
72489 +:10FFC000AC3500D80E000FDB240600030A001370C6
72490 +:10FFD000000018210009320230D900FF2418000166
72491 +:10FFE0001738FFD5000731C08F910020262200016D
72492 +:10FFF000AF8200200A0013C800C0382100CB2024A3
72493 +:020000021000EC
72494 +:10000000AF85000010800008AF860004240D87FF34
72495 +:1000100000CD6024158000083C0E006000AE302446
72496 +:1000200010C00005000000000E000D42000000009E
72497 +:100030000A001371000000000E0016050000000009
72498 +:100040000A0013710000000030B980005320FF1F28
72499 +:10005000AF8500003C02002000A2F82453E0FF1B03
72500 +:10006000AF8500003C07FFFF34E47FFF00A4382485
72501 +:100070000A00132B34C880000A001334010910242D
72502 +:1000800000EC58245160005AAF8000248F8D002C62
72503 +:100090003C0E0F0000EE182415A00075AF83001071
72504 +:1000A00030EF010011E00073939800103C12020041
72505 +:1000B000107200703C06800034D9010093280013B0
72506 +:1000C0009789002A36A60002311800FF271600047F
72507 +:1000D000001619C03C0480008C8501B804A0FFFE06
72508 +:1000E00034880180AD0300003C158008AC830020FB
72509 +:1000F00096BF004833E5FFFF10A001BCAF850008A4
72510 +:100100002523001200A3102B504001B98F85000455
72511 +:10011000348D010095AC0020240B001A30E440001F
72512 +:10012000318AFFFFA10B000B108001BA2543FFFEAF
72513 +:1001300000A3702B15C001B88F9600048F8F0004A8
72514 +:10014000A503001435E50001AF8500043C088000DC
72515 +:1001500035150180A6A9000EA6A9001A8F89000CEA
72516 +:1001600030BF8000A6A70010AEA90028A6A60008F0
72517 +:1001700013E0000F3C0F8000350C0100958B00163A
72518 +:10018000316AFFFC25440004008818218C6240007D
72519 +:100190003046FFFF14C000072416BFFF3C0EFFFFD0
72520 +:1001A00035CD7FFF00AD2824AF8500043C0F8000D3
72521 +:1001B0002416BFFF00B6902435E50180A4B20026C6
72522 +:1001C000ACA7002C3C071000ADE701B80A00137083
72523 +:1001D000000018210E00165D000000003C0A4000DF
72524 +:1001E0003C098000AD2A01780A00130400000000D9
72525 +:1001F0008F85002410A00027AF80001090A300007E
72526 +:10020000106000742409000310690101000030210E
72527 +:1002100090AE0001240D000211CD014230EF0040EC
72528 +:1002200090A90001241F0001113F000930E20040A5
72529 +:100230008CA600049785002A00C020210E000FDB49
72530 +:1002400036A60002000040210A00137001001821A8
72531 +:100250005040FFF88CA600043C07080190E7964147
72532 +:1002600010E0FFF4240800010A00137001001821B7
72533 +:10027000939800103C1F080127FF96400018C8C043
72534 +:10028000033F4021AF8800248F85002414A0FFDBAA
72535 +:10029000AF9800103C0480008C86400030C50100FF
72536 +:1002A00010A0008732AB00043C0C08008D8C0024A9
72537 +:1002B00024160004156000033192000D241600027C
72538 +:1002C0003C0480008C8E4000340DFFFF11CD0113E3
72539 +:1002D00032B5FFFB8C984000330F010055E0000160
72540 +:1002E0002415001030E80800110000382409FFFB35
72541 +:1002F0008F9F00282FF903EF53200001024990241B
72542 +:1003000030E2010010400014325F00018F87002CA2
72543 +:1003100014E0010E8F8C000C3C0480003486010038
72544 +:1003200090C5001330AA00FF25430004000321C03C
72545 +:100330002419FFFE025990241240000202B6302513
72546 +:1003400032A6FFFF0E000FDB9785002A1240FEA3A6
72547 +:1003500000001821325F000113E0000D3247000455
72548 +:10036000240900011249000202B6302532A6FFFF1F
72549 +:100370009785002A0E000FDB000020212402FFFEDB
72550 +:10038000024290241240FE950000182132470004DA
72551 +:1003900050E0FE922403000102B63025241600042A
72552 +:1003A0005656000132A6FFFF9785002A0E000FDB8C
72553 +:1003B000240401002403FFFB0243A82412A0FE87AB
72554 +:1003C000000018210A001370240300010A0014B968
72555 +:1003D0000249902410A0FFAF30E5010010A00017E3
72556 +:1003E0008F8600102403000210C300148F84000CB9
72557 +:1003F0003C0608008CC6003824CAFFFF14C0000267
72558 +:10040000008A1024000010213C0E080025CE003880
72559 +:10041000004E682191AC00048F850028258B0004D4
72560 +:10042000000B21C030A5FFFF36A600020E000FDB37
72561 +:10043000000000000A00137000001821240F0002C1
72562 +:1004400010CF0088241600013C0308008C6300D004
72563 +:100450001076008D8F85002824D9FFFC2F280004FA
72564 +:100460001500006300002021241F0002107F005DA2
72565 +:100470002CC9000C24C3FFF82C6200041440FFE9CF
72566 +:100480000000202130EA020051400004000621C093
72567 +:1004900054C0000530A5FFFF000621C030A5FFFFB6
72568 +:1004A0000A00150436A600020E000FDB32A600017A
72569 +:1004B0008F8600108F8500280A001520000621C0B5
72570 +:1004C0003C0A08008D4A0024315200015240FE438C
72571 +:1004D000000018219785002A36A600020E000FDBC7
72572 +:1004E000000020210A001370000018219668000CFB
72573 +:1004F000311802005700FE313C0500013C1F800806
72574 +:1005000097F900489789002A36A600023328FFFF92
72575 +:10051000AF8800083C0380008C7501B806A0FFFE80
72576 +:100520003C04800034820180AC400000110000B621
72577 +:1005300024180003252A0012010A182B106000B2AB
72578 +:1005400000000000966F00203C0E8000240D001A71
72579 +:1005500031ECFFFF35CA018030EB4000A14D000BAC
72580 +:10056000116000B02583FFFE0103902B164000AE02
72581 +:100570002416FFFE34A50001A5430014AF85000436
72582 +:100580002419BFFF00B94024A6E9000EA6E9001A0D
72583 +:10059000A6E60008A6E80026A6E700103C07100023
72584 +:1005A000AE8701B80A001370000018213C048000D7
72585 +:1005B0008C8201B80440FFFE349601802415001C93
72586 +:1005C000AEC70000A2D5000B3C071000AC8701B8F5
72587 +:1005D0003C0A40003C098000AD2A01780A0013045F
72588 +:1005E000000000005120FFA424C3FFF800002021D8
72589 +:1005F00030A5FFFF0A00150436A600020E00103DCC
72590 +:10060000000000008F8700000A001346AF82000C34
72591 +:1006100090A30001241500011075FF0B24080001B0
72592 +:10062000240600021066000430E2004024080001A5
72593 +:100630000A001370010018215040FFFD240800013A
72594 +:100640003C0C8000358B0100956A001094A40002D8
72595 +:100650003143FFFF5083FDE1010018210A00158599
72596 +:10066000240800018F8500282CB203EF1240FDDB27
72597 +:10067000240300013C0308008C6300D02416000111
72598 +:100680001476FF7624D9FFFC2CD8000C1300FF72DF
72599 +:10069000000621C030A5FFFF0A00150436A600029F
72600 +:1006A00010B00037240F000B14AFFE23000731C039
72601 +:1006B000312600FF00065600000A4E0305220047BF
72602 +:1006C00030C6007F0006F8C03C16080126D69640CA
72603 +:1006D00003F68021A2000001A20000003C0F600090
72604 +:1006E0008DF918202405000100C588040011302769
72605 +:1006F0000326C024000731C000C03821ADF81820FF
72606 +:100700000A0013C8A60000028F850020000731C030
72607 +:1007100024A2FFFF0A0013F6AF8200200A0014B2E1
72608 +:100720002415002011E0FECC3C1980003728010080
72609 +:100730009518001094B6000233120FFF16D2FEC6B1
72610 +:10074000000000000A00148290A900013C0B080080
72611 +:100750008D6B0038256DFFFF15600002018D1024A0
72612 +:10076000000010213C080800250800380048C0217E
72613 +:10077000930F000425EE00040A0014C5000E21C0EA
72614 +:1007800000065202241F00FF115FFDEB000731C07D
72615 +:10079000000A20C03C0E080125CE9640008EA821FC
72616 +:1007A000009E602100095C02240D00013C076000EE
72617 +:1007B000A2AD0000AD860000A2AB00018CF21820B3
72618 +:1007C00024030001014310040242B025ACF61820B6
72619 +:1007D00000C038210A0013C8A6A900020A0015AA01
72620 +:1007E000AF8000200A0012FFAF84002C8F85000428
72621 +:1007F0003C1980002408000337380180A308000B4F
72622 +:100800000A00144D3C088000A2F8000B0A00155A9B
72623 +:100810002419BFFF8F9600042412FFFE0A00144B18
72624 +:1008200002D228242416FFFE0A00155800B62824F8
72625 +:100830003C038000346401008C85000030A2003E3F
72626 +:100840001440000800000000AC6000488C870000E5
72627 +:1008500030E607C010C0000500000000AC60004C8E
72628 +:10086000AC60005003E0000824020001AC600054BA
72629 +:10087000AC6000408C880000310438001080FFF923
72630 +:10088000000000002402000103E00008AC60004406
72631 +:100890003C0380008C6201B80440FFFE3467018095
72632 +:1008A000ACE4000024080001ACE00004A4E500086A
72633 +:1008B00024050002A0E8000A34640140A0E5000B12
72634 +:1008C0009483000A14C00008A4E30010ACE00024E4
72635 +:1008D0003C07800034E901803C041000AD20002872
72636 +:1008E00003E00008ACE401B88C8600043C0410006E
72637 +:1008F000ACE600243C07800034E90180AD200028EC
72638 +:1009000003E00008ACE401B83C0680008CC201B8EA
72639 +:100910000440FFFE34C7018024090002ACE400005B
72640 +:10092000ACE40004A4E50008A0E9000A34C50140D5
72641 +:10093000A0E9000B94A8000A3C041000A4E80010F1
72642 +:10094000ACE000248CA30004ACE3002803E0000822
72643 +:10095000ACC401B83C039000346200010082202541
72644 +:100960003C038000AC6400208C65002004A0FFFEE6
72645 +:100970000000000003E00008000000003C028000CE
72646 +:10098000344300010083202503E00008AC4400202C
72647 +:1009900027BDFFE03C098000AFBF0018AFB10014D5
72648 +:1009A000AFB00010352801408D10000091040009FF
72649 +:1009B0009107000891050008308400FF30E600FF31
72650 +:1009C00000061A002C820081008330251040002A86
72651 +:1009D00030A50080000460803C0D080125AD92B078
72652 +:1009E000018D58218D6A00000140000800000000C0
72653 +:1009F0003C038000346201409445000A14A0001EAC
72654 +:100A00008F91FCC09227000530E6000414C0001A44
72655 +:100A1000000000000E00164E02002021922A000560
72656 +:100A200002002021354900040E001658A2290005B5
72657 +:100A30009228000531040004148000020000000028
72658 +:100A40000000000D922D0000240B002031AC00FFAF
72659 +:100A5000158B00093C0580008CAE01B805C0FFFE77
72660 +:100A600034B10180AE3000003C0F100024100005AE
72661 +:100A7000A230000BACAF01B80000000D8FBF001812
72662 +:100A80008FB100148FB0001003E0000827BD0020D4
72663 +:100A90000200202100C028218FBF00188FB1001450
72664 +:100AA0008FB00010240600010A00161D27BD00208B
72665 +:100AB0000000000D0200202100C028218FBF001877
72666 +:100AC0008FB100148FB00010000030210A00161DF5
72667 +:100AD00027BD002014A0FFE8000000000200202134
72668 +:100AE0008FBF00188FB100148FB0001000C02821F4
72669 +:100AF0000A00163B27BD00203C0780008CEE01B8A1
72670 +:100B000005C0FFFE34F00180241F0002A21F000B6D
72671 +:100B100034F80140A60600089719000A3C0F10009F
72672 +:100B2000A61900108F110004A6110012ACEF01B835
72673 +:100B30000A0016998FBF001827BDFFE8AFBF00104D
72674 +:100B40000E000FD4000000003C0280008FBF001098
72675 +:100B500000002021AC4001800A00108F27BD001842
72676 +:100B60003084FFFF30A5FFFF108000070000182130
72677 +:100B7000308200011040000200042042006518216C
72678 +:100B80001480FFFB0005284003E0000800601021EE
72679 +:100B900010C00007000000008CA2000024C6FFFF68
72680 +:100BA00024A50004AC82000014C0FFFB24840004D0
72681 +:100BB00003E000080000000010A0000824A3FFFFCD
72682 +:100BC000AC86000000000000000000002402FFFFCF
72683 +:100BD0002463FFFF1462FFFA2484000403E000088A
72684 +:100BE000000000003C03800027BDFFF83462018054
72685 +:100BF000AFA20000308C00FF30AD00FF30CE00FF10
72686 +:100C00003C0B80008D6401B80480FFFE00000000F2
72687 +:100C10008FA900008D6801288FAA00008FA700000F
72688 +:100C20008FA400002405000124020002A085000A10
72689 +:100C30008FA30000359940003C051000A062000B16
72690 +:100C40008FB800008FAC00008FA600008FAF0000AF
72691 +:100C500027BD0008AD280000AD400004AD80002491
72692 +:100C6000ACC00028A4F90008A70D0010A5EE0012E2
72693 +:100C700003E00008AD6501B83C06800827BDFFE829
72694 +:100C800034C50080AFBF001090A7000924020012F5
72695 +:100C900030E300FF1062000B008030218CA8005070
72696 +:100CA00000882023048000088FBF00108CAA003425
72697 +:100CB000240400390000282100CA4823052000052B
72698 +:100CC000240600128FBF00102402000103E0000878
72699 +:100CD00027BD00180E0016F2000000008FBF0010A4
72700 +:100CE0002402000103E0000827BD001827BDFFC84B
72701 +:100CF000AFB20030AFB00028AFBF0034AFB1002CAE
72702 +:100D000000A0802190A5000D30A6001010C000109A
72703 +:100D1000008090213C0280088C4400048E0300086F
72704 +:100D20001064000C30A7000530A6000510C0009329
72705 +:100D3000240400018FBF00348FB200308FB1002C2B
72706 +:100D40008FB000280080102103E0000827BD003884
72707 +:100D500030A7000510E0000F30AB001210C00006F5
72708 +:100D6000240400013C0980088E0800088D25000439
72709 +:100D70005105009C240400388FBF00348FB200302E
72710 +:100D80008FB1002C8FB000280080102103E00008F4
72711 +:100D900027BD0038240A0012156AFFE6240400016A
72712 +:100DA0000200202127A500100E000CB6AFA00010F5
72713 +:100DB0001440007C3C19800837240080909800087B
72714 +:100DC000331100081220000A8FA7001030FF010025
72715 +:100DD00013E000A48FA300148C8600580066102333
72716 +:100DE000044000043C0A8008AC8300588FA7001020
72717 +:100DF0003C0A800835480080910900083124000829
72718 +:100E00001480000224080003000040213C1F8008D9
72719 +:100E100093F1001193F9001237E600808CCC005456
72720 +:100E2000333800FF03087821322D00FF000F708057
72721 +:100E300001AE282100AC582B1160006F00000000AB
72722 +:100E400094CA005C8CC900543144FFFF0125102373
72723 +:100E50000082182B14600068000000008CCB005446
72724 +:100E60000165182330EC00041180006C000830800C
72725 +:100E70008FA8001C0068102B1040006230ED0004A9
72726 +:100E8000006610232C46008010C00002004088211C
72727 +:100E9000241100800E00164E024020213C0D8008D7
72728 +:100EA00035A6008024070001ACC7000C90C80008DC
72729 +:100EB0000011484035A70100310C007FA0CC00088C
72730 +:100EC0008E05000424AB0001ACCB0030A4D1005C43
72731 +:100ED0008CCA003C9602000E01422021ACC40020C6
72732 +:100EE0008CC3003C0069F821ACDF001C8E190004A3
72733 +:100EF000ACF900008E180008ACF800048FB10010A7
72734 +:100F0000322F000855E0004793A60020A0C0004EF5
72735 +:100F100090D8004E2411FFDFA0F8000890CF000801
72736 +:100F200001F17024A0CE00088E0500083C0B80085B
72737 +:100F300035690080AD2500388D6A00148D2200309F
72738 +:100F40002419005001422021AD24003491230000D7
72739 +:100F5000307F00FF13F90036264F01000E001658AF
72740 +:100F60000240202124040038000028210E0016F23F
72741 +:100F70002406000A0A001757240400010E000D2859
72742 +:100F8000000020218FBF00348FB200308FB1002CC1
72743 +:100F90008FB00028004020210080102103E00008CD
72744 +:100FA00027BD00388E0E00083C0F800835F0008009
72745 +:100FB000AE0E005402402021AE0000300E00164E4E
72746 +:100FC00000000000920D00250240202135AC0020D9
72747 +:100FD0000E001658A20C00250E000CAC0240202179
72748 +:100FE000240400382405008D0E0016F22406001299
72749 +:100FF0000A0017572404000194C5005C0A001792E8
72750 +:1010000030A3FFFF2407021811A0FF9E00E6102363
72751 +:101010008FAE001C0A00179A01C610230A0017970A
72752 +:101020002C620218A0E600080A0017C48E0500080A
72753 +:101030002406FF8001E6C0243C118000AE38002861
72754 +:101040008E0D000831E7007F3C0E800C00EE602121
72755 +:10105000AD8D00E08E080008AF8C00380A0017D074
72756 +:10106000AD8800E4AC800058908500082403FFF7A9
72757 +:1010700000A33824A08700080A0017758FA7001066
72758 +:101080003C05080024A560A83C04080024846FF4F3
72759 +:101090003C020800244260B0240300063C01080121
72760 +:1010A000AC2596C03C010801AC2496C43C01080163
72761 +:1010B000AC2296C83C010801A02396CC03E00008AE
72762 +:1010C0000000000003E00008240200013C02800050
72763 +:1010D000308800FF344701803C0680008CC301B893
72764 +:1010E0000460FFFE000000008CC501282418FF806A
72765 +:1010F0003C0D800A24AF010001F8702431EC007F20
72766 +:10110000ACCE0024018D2021ACE50000948B00EAD8
72767 +:101110003509600024080002316AFFFFACEA0004D0
72768 +:1011200024020001A4E90008A0E8000BACE00024C0
72769 +:101130003C071000ACC701B8AF84003803E00008DA
72770 +:10114000AF85006C938800488F8900608F820038DB
72771 +:1011500030C600FF0109382330E900FF01221821C1
72772 +:1011600030A500FF2468008810C000020124382147
72773 +:101170000080382130E400031480000330AA00030B
72774 +:101180001140000D312B000310A0000900001021B8
72775 +:1011900090ED0000244E000131C200FF0045602B9D
72776 +:1011A000A10D000024E700011580FFF925080001CA
72777 +:1011B00003E00008000000001560FFF300000000DD
72778 +:1011C00010A0FFFB000010218CF80000245900043F
72779 +:1011D000332200FF0045782BAD18000024E70004FF
72780 +:1011E00015E0FFF92508000403E0000800000000F6
72781 +:1011F00093850048938800588F8700600004320070
72782 +:101200003103007F00E5102B30C47F001040000F39
72783 +:10121000006428258F8400383C0980008C8A00EC0B
72784 +:10122000AD2A00A43C03800000A35825AC6B00A0AD
72785 +:101230008C6C00A00580FFFE000000008C6D00ACEF
72786 +:10124000AC8D00EC03E000088C6200A80A00188254
72787 +:101250008F840038938800593C0280000080502120
72788 +:10126000310300FEA383005930ABFFFF30CC00FFF9
72789 +:1012700030E7FFFF344801803C0980008D2401B82D
72790 +:101280000480FFFE8F8D006C24180016AD0D000049
72791 +:101290008D2201248F8D0038AD0200048D5900206D
72792 +:1012A000A5070008240201C4A119000AA118000B17
72793 +:1012B000952F01208D4E00088D4700049783005C18
72794 +:1012C0008D59002401CF302100C7282100A32023FD
72795 +:1012D0002418FFFFA504000CA50B000EA5020010AA
72796 +:1012E000A50C0012AD190018AD18002495AF00E848
72797 +:1012F0003C0B10002407FFF731EEFFFFAD0E002876
72798 +:101300008DAC0084AD0C002CAD2B01B88D460020B7
72799 +:1013100000C7282403E00008AD4500208F8800386E
72800 +:101320000080582130E7FFFF910900D63C02800081
72801 +:1013300030A5FFFF312400FF00041A00006750258C
72802 +:1013400030C600FF344701803C0980008D2C01B875
72803 +:101350000580FFFE8F82006C240F0017ACE20000B6
72804 +:101360008D390124ACF900048D780020A4EA00082E
72805 +:10137000241901C4A0F8000AA0EF000B9523012056
72806 +:101380008D6E00088D6D00049784005C01C35021B0
72807 +:10139000014D602101841023A4E2000CA4E5000E9D
72808 +:1013A000A4F90010A4E60012ACE000148D7800242B
72809 +:1013B000240DFFFFACF800188D0F007CACEF001C73
72810 +:1013C0008D0E00783C0F1000ACEE0020ACED002438
72811 +:1013D000950A00BE240DFFF73146FFFFACE600285A
72812 +:1013E000950C00809504008231837FFF0003CA00C2
72813 +:1013F0003082FFFF0322C021ACF8002CAD2F01B8D2
72814 +:10140000950E00828D6A002000AE3021014D282407
72815 +:10141000A506008203E00008AD6500203C028000C4
72816 +:10142000344501803C0480008C8301B80460FFFED9
72817 +:101430008F8A0044240600199549001C3128FFFFBB
72818 +:10144000000839C0ACA70000A0A6000B3C051000A6
72819 +:1014500003E00008AC8501B88F87004C0080402174
72820 +:1014600030C400FF3C0680008CC201B80440FFFE7F
72821 +:101470008F89006C9383006834996000ACA90000E8
72822 +:10148000A0A300058CE20010240F00022403FFF744
72823 +:10149000A4A20006A4B900088D180020A0B8000A74
72824 +:1014A000A0AF000B8CEE0000ACAE00108CED000481
72825 +:1014B000ACAD00148CEC001CACAC00248CEB002018
72826 +:1014C000ACAB00288CEA002C3C071000ACAA002C26
72827 +:1014D0008D090024ACA90018ACC701B88D05002007
72828 +:1014E00000A3202403E00008AD0400208F8600380C
72829 +:1014F00027BDFFE0AFB10014AFBF0018AFB00010C0
72830 +:1015000090C300D430A500FF3062002010400008D6
72831 +:10151000008088218CCB00D02409FFDF256A0001E0
72832 +:10152000ACCA00D090C800D401093824A0C700D4A8
72833 +:1015300014A000403C0C80008F840038908700D4B9
72834 +:101540002418FFBF2406FFEF30E3007FA08300D400
72835 +:10155000979F005C8F8200608F8D003803E2C82364
72836 +:10156000A799005CA5A000BC91AF00D401F870243D
72837 +:10157000A1AE00D48F8C0038A18000D78F8A0038AC
72838 +:10158000A5400082AD4000EC914500D400A658244F
72839 +:10159000A14B00D48F9000348F8400609786005C4C
72840 +:1015A0000204282110C0000FAF850034A38000582A
72841 +:1015B0003C0780008E2C000894ED01208E2B000447
72842 +:1015C000018D5021014B8021020620233086FFFF30
72843 +:1015D00030C8000F3909000131310001162000091F
72844 +:1015E000A3880058938600488FBF00188FB100145D
72845 +:1015F0008FB0001027BD0020AF85006403E0000815
72846 +:10160000AF86006000C870238FBF00189386004823
72847 +:101610008FB100148FB0001034EF0C00010F28219F
72848 +:1016200027BD0020ACEE0084AF85006403E0000815
72849 +:10163000AF86006035900180020028210E00190F4E
72850 +:10164000240600828F840038908600D430C5004084
72851 +:1016500050A0FFBAA38000688F85004C3C06800034
72852 +:101660008CCD01B805A0FFFE8F89006C2408608234
72853 +:1016700024070002AE090000A6080008A207000B1C
72854 +:101680008CA300083C0E1000AE0300108CA2000CCE
72855 +:10169000AE0200148CBF0014AE1F00188CB90018E5
72856 +:1016A000AE1900248CB80024AE1800288CAF002896
72857 +:1016B000AE0F002CACCE01B80A001948A380006818
72858 +:1016C0008F8A003827BDFFE0AFB10014AFB0001023
72859 +:1016D0008F880060AFBF00189389003C954200BC22
72860 +:1016E00030D100FF0109182B0080802130AC00FFB1
72861 +:1016F0003047FFFF0000582114600003310600FF4F
72862 +:1017000001203021010958239783005C0068202BB9
72863 +:101710001480002700000000106800562419000102
72864 +:101720001199006334E708803165FFFF0E0018C08F
72865 +:10173000020020218F83006C3C07800034E601808A
72866 +:101740003C0580008CAB01B80560FFFE240A001840
72867 +:101750008F840038ACC30000A0CA000B948900BE7F
72868 +:101760003C081000A4C90010ACC00030ACA801B8FF
72869 +:101770009482008024430001A4830080949F008011
72870 +:101780003C0608008CC6318833EC7FFF1186005E72
72871 +:101790000000000002002021022028218FBF001835
72872 +:1017A0008FB100148FB000100A00193427BD00203B
72873 +:1017B000914400D42403FF8000838825A15100D4E4
72874 +:1017C0009784005C3088FFFF51000023938C003C1D
72875 +:1017D0008F8500382402EFFF008B782394AE00BC85
72876 +:1017E0000168502B31E900FF01C26824A4AD00BCA0
72877 +:1017F00051400039010058213C1F800037E60100AC
72878 +:101800008CD800043C190001031940245500000144
72879 +:1018100034E740008E0A00202403FFFB241100015E
72880 +:1018200001432024AE0400201191002D34E78000F4
72881 +:1018300002002021012030210E0018C03165FFFF79
72882 +:101840009787005C8F890060A780005C0127802358
72883 +:10185000AF900060938C003C8F8B00388FBF0018D6
72884 +:101860008FB100148FB0001027BD002003E00008E6
72885 +:10187000A16C00D73C0D800035AA01008D48000402
72886 +:101880003C0900010109282454A0000134E740006C
72887 +:101890008E0F00202418FFFB34E7800001F870242D
72888 +:1018A00024190001AE0E00201599FF9F34E708802F
72889 +:1018B000020020210E00188E3165FFFF020020215A
72890 +:1018C000022028218FBF00188FB100148FB00010A4
72891 +:1018D0000A00193427BD00200A0019F7000048212A
72892 +:1018E00002002021012030210E00188E3165FFFFFB
72893 +:1018F0009787005C8F890060A780005C01278023A8
72894 +:101900000A001A0EAF900060948C0080241F8000A3
72895 +:10191000019F3024A4860080908B0080908F0080EF
72896 +:10192000316700FF0007C9C20019C027001871C045
72897 +:1019300031ED007F01AE2825A08500800A0019DF67
72898 +:1019400002002021938500682403000127BDFFE8E1
72899 +:1019500000A330042CA20020AFB00010AFBF0014D1
72900 +:1019600000C01821104000132410FFFE3C0708009F
72901 +:101970008CE7319000E610243C088000350501809A
72902 +:1019800014400005240600848F890038240A0004CE
72903 +:101990002410FFFFA12A00FC0E00190F0000000018
72904 +:1019A000020010218FBF00148FB0001003E0000868
72905 +:1019B00027BD00183C0608008CC631940A001A574F
72906 +:1019C00000C310248F87004427BDFFE0AFB200188A
72907 +:1019D000AFB10014AFB00010AFBF001C30D000FF9B
72908 +:1019E00090E6000D00A088210080902130C5007F86
72909 +:1019F000A0E5000D8F8500388E2300188CA200D042
72910 +:101A00001062002E240A000E0E001A4AA38A0068F3
72911 +:101A10002409FFFF104900222404FFFF5200002088
72912 +:101A2000000020218E2600003C0C001000CC582421
72913 +:101A3000156000393C0E000800CE682455A0003F18
72914 +:101A4000024020213C18000200D880241200001F10
72915 +:101A50003C0A00048F8700448CE200148CE30010E1
72916 +:101A60008CE500140043F82303E5C82B1320000580
72917 +:101A7000024020218E24002C8CF1001010910031A6
72918 +:101A80000240202124020012A38200680E001A4A9C
72919 +:101A90002412FFFF105200022404FFFF0000202147
72920 +:101AA0008FBF001C8FB200188FB100148FB00010D0
72921 +:101AB0000080102103E0000827BD002090A800D47A
72922 +:101AC000350400200A001A80A0A400D400CA4824CB
72923 +:101AD0001520000B8F8B00448F8D00448DAC0010BF
72924 +:101AE0001580000B024020218E2E002C51C0FFECEF
72925 +:101AF00000002021024020210A001A9B2402001726
72926 +:101B00008D66001050C0FFE6000020210240202119
72927 +:101B10000A001A9B24020011024020212402001511
72928 +:101B20000E001A4AA3820068240FFFFF104FFFDC4B
72929 +:101B30002404FFFF0A001A8A8E2600000A001AC138
72930 +:101B4000240200143C08000400C8382450E0FFD4EC
72931 +:101B500000002021024020210A001A9B24020013C9
72932 +:101B60008F85003827BDFFD8AFB3001CAFB2001877
72933 +:101B7000AFB10014AFB00010AFBF002090A700D4E9
72934 +:101B80008F90004C2412FFFF34E2004092060000C8
72935 +:101B9000A0A200D48E0300100080982110720006CD
72936 +:101BA00030D1003F2408000D0E001A4AA3880068B7
72937 +:101BB000105200252404FFFF8F8A00388E09001878
72938 +:101BC0008D4400D01124000702602021240C000E57
72939 +:101BD0000E001A4AA38C0068240BFFFF104B001A5A
72940 +:101BE0002404FFFF24040020122400048F8D0038F9
72941 +:101BF00091AF00D435EE0020A1AE00D48F85005403
72942 +:101C000010A00019000000001224004A8F9800382C
72943 +:101C10008F92FCC0971000809651000A5230004805
72944 +:101C20008F9300403C1F08008FFF318C03E5C82BC9
72945 +:101C30001720001E02602021000028210E0019A993
72946 +:101C400024060001000020218FBF00208FB3001C5C
72947 +:101C50008FB200188FB100148FB0001000801021D7
72948 +:101C600003E0000827BD00285224002A8E05001436
72949 +:101C70008F840038948A008025490001A48900805F
72950 +:101C8000948800803C0208008C42318831077FFF35
72951 +:101C900010E2000E00000000026020210E00193446
72952 +:101CA000240500010A001B0B000020212402002D46
72953 +:101CB0000E001A4AA38200682403FFFF1443FFE1C9
72954 +:101CC0002404FFFF0A001B0C8FBF002094990080A2
72955 +:101CD000241F800024050001033FC024A498008035
72956 +:101CE00090920080908E0080325100FF001181C2DE
72957 +:101CF00000107827000F69C031CC007F018D582576
72958 +:101D0000A08B00800E001934026020210A001B0BFA
72959 +:101D1000000020212406FFFF54A6FFD68F84003840
72960 +:101D2000026020210E001934240500010A001B0B5B
72961 +:101D300000002021026020210A001B252402000A45
72962 +:101D40002404FFFD0A001B0BAF9300608F8800384E
72963 +:101D500027BDFFE8AFB00010AFBF0014910A00D458
72964 +:101D60008F87004C00808021354900408CE60010B0
72965 +:101D7000A10900D43C0208008C4231B030C53FFFBD
72966 +:101D800000A2182B106000078F850050240DFF80E3
72967 +:101D900090AE000D01AE6024318B00FF156000088D
72968 +:101DA0000006C382020020212403000D8FBF00140F
72969 +:101DB0008FB0001027BD00180A001A4AA3830068DC
72970 +:101DC00033060003240F000254CFFFF70200202146
72971 +:101DD00094A2001C8F85003824190023A4A200E8D7
72972 +:101DE0008CE8000000081E02307F003F13F9003528
72973 +:101DF0003C0A00838CE800188CA600D0110600086D
72974 +:101E0000000000002405000E0E001A4AA385006899
72975 +:101E10002407FFFF104700182404FFFF8F850038B8
72976 +:101E200090A900D435240020A0A400D48F8C0044B5
72977 +:101E3000918E000D31CD007FA18D000D8F83005458
72978 +:101E40001060001C020020218F8400508C9800102C
72979 +:101E50000303782B11E0000D241900180200202143
72980 +:101E6000A39900680E001A4A2410FFFF10500002C8
72981 +:101E70002404FFFF000020218FBF00148FB000104A
72982 +:101E80000080102103E0000827BD00188C86001098
72983 +:101E90008F9F00440200202100C31023AFE20010F6
72984 +:101EA000240500010E0019A9240600010A001B9751
72985 +:101EB000000020210E001934240500010A001B97A0
72986 +:101EC00000002021010A5824156AFFD98F8C004494
72987 +:101ED000A0A600FC0A001B84A386005A30A500FFC0
72988 +:101EE0002406000124A9000100C9102B1040000C99
72989 +:101EF00000004021240A000100A61823308B0001B5
72990 +:101F000024C60001006A3804000420421160000267
72991 +:101F100000C9182B010740251460FFF800A61823FC
72992 +:101F200003E000080100102127BDFFD8AFB0001862
72993 +:101F30008F90004CAFB1001CAFBF00202403FFFF07
72994 +:101F40002411002FAFA30010920600002405000802
72995 +:101F500026100001006620260E001BB0308400FF12
72996 +:101F600000021E003C021EDC34466F410A001BD8F2
72997 +:101F70000000102110A00009008018212445000154
72998 +:101F800030A2FFFF2C4500080461FFFA0003204047
72999 +:101F90000086202614A0FFF9008018210E001BB037
73000 +:101FA000240500208FA300102629FFFF313100FFF8
73001 +:101FB00000034202240700FF1627FFE20102182651
73002 +:101FC00000035027AFAA0014AFAA00100000302170
73003 +:101FD00027A8001027A7001400E6782391ED00033E
73004 +:101FE00024CE000100C8602131C600FF2CCB0004C4
73005 +:101FF0001560FFF9A18D00008FA200108FBF002097
73006 +:102000008FB1001C8FB0001803E0000827BD002826
73007 +:1020100027BDFFD0AFB3001CAFB00010AFBF00288A
73008 +:10202000AFB50024AFB40020AFB20018AFB10014B8
73009 +:102030003C0C80008D880128240FFF803C06800A1C
73010 +:1020400025100100250B0080020F68243205007F57
73011 +:10205000016F7024AD8E009000A62821AD8D002464
73012 +:1020600090A600FC3169007F3C0A8004012A1821F7
73013 +:10207000A386005A9067007C00809821AF830030CF
73014 +:1020800030E20002AF88006CAF85003800A0182154
73015 +:10209000144000022404003424040030A3840048C7
73016 +:1020A0008C7200DC30D100FF24040004AF92006089
73017 +:1020B00012240004A38000688E7400041680001EA1
73018 +:1020C0003C0880009386005930C7000110E0000FE3
73019 +:1020D0008F9300608CB000848CA800842404FF805F
73020 +:1020E000020410240002F940310A007F03EA482567
73021 +:1020F0003C0C2000012C902530CD00FE3C038000DC
73022 +:10210000AC720830A38D00598F9300608FBF0028F8
73023 +:102110008FB50024ACB300DC8FB400208FB3001C5B
73024 +:102120008FB200188FB100148FB00010240200018C
73025 +:1021300003E0000827BD00308E7F000895020120D3
73026 +:102140008E67001003E2C8213326FFFF30D8000F4E
73027 +:1021500033150001AF87003416A00058A39800582B
73028 +:1021600035090C000309382100D81823AD03008479
73029 +:10217000AF8700648E6A00043148FFFF1100007EC3
73030 +:10218000A78A005C90AC00D42407FF8000EC3024C8
73031 +:1021900030CB00FF1560004B9786005C938E005A91
73032 +:1021A000240D000230D5FFFF11CD02A20000A021B6
73033 +:1021B0008F85006002A5802B160000BC9388004824
73034 +:1021C0003C11800096240120310400FF1485008812
73035 +:1021D0008F8400648F9800343312000356400085CA
73036 +:1021E00030A500FF8F900064310C00FF24060034FE
73037 +:1021F00011860095AF90004C9204000414800118E1
73038 +:102200008F8E0038A380003C8E0D00048DC800D84E
73039 +:102210003C0600FF34CCFFFF01AC30240106182B34
73040 +:1022200014600120AF8600548F8700609798005C8F
73041 +:10223000AF8700400307402310C000C7A788005C99
73042 +:102240008F91003030C3000300035823922A007C92
73043 +:102250003171000302261021000A20823092000111
73044 +:102260000012488000492821311FFFFF03E5C82BD9
73045 +:10227000132001208F8800388F8500348F880064F8
73046 +:102280001105025A3C0E3F018E0600003C0C250051
73047 +:1022900000CE682411AC01638F84004C30E500FF50
73048 +:1022A0000E00184A000030218F8800388F870060A8
73049 +:1022B0008F8500340A001DB78F8600540A001C5613
73050 +:1022C000AF87006490A400D400E48024320200FFB1
73051 +:1022D000104000169386005990A6008890AE00D753
73052 +:1022E00024A8008830D4003F2686FFE02CD10020AF
73053 +:1022F000A38E003C1220000CAF88004C240B000180
73054 +:1023000000CB20043095001916A0012B3C0680005C
73055 +:1023100034CF0002008FC0241700022E3099002015
73056 +:1023200017200234000000009386005930CB0001D2
73057 +:102330001160000F9788005C8CBF00848CA900841A
73058 +:10234000240AFF8003EA6024000C19403132007F28
73059 +:10235000007238253C0D200000EDC82530D800FE65
73060 +:102360003C0F8000ADF90830A39800599788005CB5
73061 +:102370001500FF84000000008E630020306200041E
73062 +:102380001040FF51938600592404FFFB0064802411
73063 +:102390003C038000AE700020346601808C7301B86D
73064 +:1023A0000660FFFE8F98006C347501003C1400013C
73065 +:1023B000ACD800008C6B012424076085ACCB0004F2
73066 +:1023C0008EAE000401D488245220000124076083CB
73067 +:1023D00024190002A4C700083C0F1000A0D9000B6C
73068 +:1023E0003C068000ACCF01B80A001C2B9386005934
73069 +:1023F00030A500FF0E00184A240600018F88006CEB
73070 +:102400003C05800034A90900250201889388004812
73071 +:10241000304A0007304B00783C0340802407FF809F
73072 +:102420000163C825014980210047F824310C00FFD1
73073 +:1024300024060034ACBF0800AF90004CACB90810C3
73074 +:102440005586FF6E920400048F8400388E11003090
73075 +:10245000908E00D431CD001015A000108F83006045
73076 +:102460002C6F000515E000E400000000909800D4F7
73077 +:102470002465FFFC331200101640000830A400FF52
73078 +:102480008F9F00648F99003413F90004388700018E
73079 +:1024900030E20001144001C8000000000E001BC320
73080 +:1024A000000000000A001DF8000000008F84006496
73081 +:1024B00030C500FF0E00184A24060001939800481A
73082 +:1024C000240B0034130B00A08F8500388F8600602A
73083 +:1024D0009783005C306EFFFF00CE8823AF910060D1
73084 +:1024E000A780005C1280FF90028018212414FFFD59
73085 +:1024F0005474FFA28E6300208E6A00042403FFBF81
73086 +:102500002408FFEF0155F823AE7F000490AC00D4FF
73087 +:102510003189007FA0A900D48E7200208F8F0038EF
73088 +:10252000A780005C364D0002AE6D0020A5E000BC27
73089 +:1025300091E500D400A3C824A1F900D48F950038F8
73090 +:10254000AEA000EC92B800D403085824A2AB00D48B
73091 +:102550000A001CD78F8500388F910034AF8000604F
73092 +:1025600002275821AF8B0034000020212403FFFFF5
73093 +:10257000108301B48F8500388E0C00103C0D0800CC
73094 +:102580008DAD31B09208000031843FFF008D802B6B
73095 +:1025900012000023310D003F3C1908008F3931A88B
73096 +:1025A0008F9F006C000479802408FF80033F202166
73097 +:1025B000008FC821938500590328F8243C06008029
73098 +:1025C0003C0F800034D80001001F91403331007F60
73099 +:1025D0008F8600380251502535EE0940332B0078A4
73100 +:1025E000333000073C0310003C02800C017890253A
73101 +:1025F000020E48210143C0250222382134AE0001D9
73102 +:10260000ADFF0804AF890050ADF20814AF87004455
73103 +:10261000ADFF0028ACD90084ADF80830A38E005976
73104 +:102620009383005A24070003106700272407000142
73105 +:102630001467FFAC8F8500382411002311B1008589
73106 +:1026400000000000240E000B026020210E001A4A38
73107 +:10265000A38E00680040A0210A001D328F8500383B
73108 +:1026600002602021240B000C0E001A4AA38B006884
73109 +:10267000240AFFFF104AFFBD2404FFFF8F8E00389D
73110 +:10268000A380003C8E0D00048DC800D83C0600FFDE
73111 +:1026900034CCFFFF01AC30240106182B1060FEE2A1
73112 +:1026A000AF86005402602021241200190E001A4A3D
73113 +:1026B000A3920068240FFFFF104FFFAC2404FFFF1C
73114 +:1026C0000A001C838F86005425A3FFE02C74002091
73115 +:1026D0001280FFDD240E000B000328803C1108014E
73116 +:1026E000263194B400B148218D2D000001A00008CE
73117 +:1026F000000000008F85003400A710219385003C66
73118 +:10270000AF82003402251821A383003C951F00BC32
73119 +:102710000226282137F91000A51900BC5240FF926B
73120 +:10272000AF850060246A0004A38A003C950900BCC0
73121 +:1027300024A40004AF84006035322000A51200BC40
73122 +:102740000A001D54000020218F8600602CC800055F
73123 +:102750001500FF609783005C3065FFFF00C5C8234C
73124 +:102760002F2F000511E00003306400FF24CDFFFC93
73125 +:1027700031A400FF8F8900648F920034113200046D
73126 +:10278000389F000133EC0001158001380000000083
73127 +:102790008F840038908700D434E60010A08600D4DF
73128 +:1027A0008F8500388F8600609783005CACA000ECBA
73129 +:1027B0000A001D2F306EFFFF8CB500848CB400849E
73130 +:1027C0003C04100002A7302400068940328E007FAE
73131 +:1027D000022E8025020410253C08800024050001FB
73132 +:1027E00002602021240600010E0019A9AD02083064
73133 +:1027F0000A001CC38F8500388C8200EC1222FE7EFA
73134 +:102800000260202124090005A38900680E001A4AED
73135 +:102810002411FFFF1451FE782404FFFF0A001D5508
73136 +:102820002403FFFF8F8F004C8F8800388DF8000045
73137 +:10283000AD1800888DE70010AD0700988F87006005
73138 +:102840000A001DB78F8600542406FFFF118600057D
73139 +:10285000000000000E001B4C026020210A001D8FAA
73140 +:102860000040A0210E001AD1026020210A001D8F15
73141 +:102870000040A0218F90004C3C0208008C4231B0F7
73142 +:102880008E110010322C3FFF0182282B10A0000C6B
73143 +:10289000240BFF808F85005090A3000D01637024EE
73144 +:1028A00031CA00FF1140000702602021001143825D
73145 +:1028B000310600032418000110D8010600000000B2
73146 +:1028C000026020212403000D0E001A4AA383006831
73147 +:1028D000004020218F8500380A001D320080A02191
73148 +:1028E0008F90004C3C0A08008D4A31B08F85005013
73149 +:1028F0008E0400100000A0218CB1001430823FFF34
73150 +:10290000004A602B8CB200205180FFEE0260202133
73151 +:1029100090B8000D240BFF800178702431C300FFB4
73152 +:102920005060FFE80260202100044382310600036A
73153 +:1029300014C0FFE40260202194BF001C8F9900386E
73154 +:102940008E060028A73F00E88CAF0010022F20233E
73155 +:1029500014C4013A026020218F83005400C368210F
73156 +:10296000022D382B14E00136240200188F8A00440F
73157 +:102970008F820030024390218D4B00100163702341
73158 +:10298000AD4E0010AD5200208C4C00740192282BEB
73159 +:1029900014A0015F026020218F8400508E08002463
73160 +:1029A0008C86002411060007026020212419001CD7
73161 +:1029B0000E001A4AA3990068240FFFFF104FFFC5AD
73162 +:1029C0002404FFFF8F8400448C87002424FF00012F
73163 +:1029D000AC9F00241251012F8F8D00308DB10074F7
73164 +:1029E0001232012C3C0B00808E0E000001CB5024D3
73165 +:1029F00015400075000000008E0300142411FFFF35
73166 +:102A0000107100073C0808003C0608008CC6319095
73167 +:102A100000C8C0241300015202602021A380006876
73168 +:102A20008E0300003C19000100792024108000135F
73169 +:102A30003C1F0080007FA02416800009020028218E
73170 +:102A4000026020212411001A0E001A4AA391006886
73171 +:102A50002407FFFF1047FF9F2404FFFF02002821E7
73172 +:102A6000026020210E001A6A240600012410FFFFD4
73173 +:102A70001050FF982404FFFF241400018F8D0044A0
73174 +:102A8000026020210280302195A900342405000134
73175 +:102A9000253200010E0019A9A5B200340000202142
73176 +:102AA0008F8500380A001D320080A0218F90004CD5
73177 +:102AB0003C1408008E9431B08E07001030E53FFFC3
73178 +:102AC00000B4C82B132000618F8600502412FF80B1
73179 +:102AD00090C9000D0249682431A400FF5080005CB9
73180 +:102AE000026020218F8C00541180000700078B8228
73181 +:102AF0008F8500388F82FCC094BF0080944A000A02
73182 +:102B0000515F00F78F8600403227000314E0006415
73183 +:102B100000000000920E000211C000D8000000006A
73184 +:102B20008E0B0024156000D902602021920400035E
73185 +:102B300024190002308500FF14B90005308900FF18
73186 +:102B40008F940054128000EA240D002C308900FF7D
73187 +:102B5000392C00102D8400012D3200010244302553
73188 +:102B6000020028210E001A6A026020212410FFFFB3
73189 +:102B7000105000BF8F8500388F830054106000D341
73190 +:102B8000240500013C0A08008D4A318C0143F82BD2
73191 +:102B900017E000B22402002D02602021000028214D
73192 +:102BA0000E0019A9240600018F85003800001821A5
73193 +:102BB0000A001D320060A0210E0018750000000000
73194 +:102BC0000A001DF800000000AC8000200A001E78FA
73195 +:102BD0008E03001400002821026020210E0019A994
73196 +:102BE000240600010A001CC38F8500380A001DB7A7
73197 +:102BF0008F8800388CAA00848CAC00843C031000C1
73198 +:102C00000147F824001F91403189007F024968255F
73199 +:102C100001A32825ACC50830910700012405000157
73200 +:102C2000026020210E0019A930E600010A001CC331
73201 +:102C30008F850038938F00482403FFFD0A001D3460
73202 +:102C4000AF8F00600A001D342403FFFF02602021C3
73203 +:102C50002410000D0E001A4AA390006800401821AD
73204 +:102C60008F8500380A001D320060A0210E00187503
73205 +:102C7000000000009783005C8F86006000402021E8
73206 +:102C80003070FFFF00D010232C4A00051140FE11C8
73207 +:102C90008F850038ACA400EC0A001D2F306EFFFFBA
73208 +:102CA00090CF000D31E300085460FFA192040003AF
73209 +:102CB00002602021240200100E001A4AA38200683C
73210 +:102CC0002403FFFF5443FF9A920400030A001F12DB
73211 +:102CD0008F85003890A4000D308F000811E000951A
73212 +:102CE0008F990054572000A6026020218E1F000CEF
73213 +:102CF0008CB4002057F40005026020218E0D0008DE
73214 +:102D00008CA7002411A7003A026020212402002091
73215 +:102D1000A38200680E001A4A2412FFFF1052FEED33
73216 +:102D20002404FFFF8F9F00442402FFF73C14800E11
73217 +:102D300093EA000D2419FF803C03800001423824EF
73218 +:102D4000A3E7000D8F9F00303C0908008D2931ACAE
73219 +:102D50008F8C006C97F200788F870044012C302113
73220 +:102D6000324D7FFF000D204000C4782131E5007F07
73221 +:102D700000B4C02101F94024AC68002CA711000068
73222 +:102D80008CEB0028256E0001ACEE00288CEA002CAC
73223 +:102D90008E02002C01426021ACEC002C8E09002C2C
73224 +:102DA000ACE900308E120014ACF2003494ED003A1D
73225 +:102DB00025A40001A4E4003A97E600783C1108003D
73226 +:102DC0008E3131B024C3000130707FFF1211005CDE
73227 +:102DD000006030218F8F0030026020212405000127
73228 +:102DE0000E001934A5E600780A001EA1000020217B
73229 +:102DF0008E0900142412FFFF1132006B8F8A0038F5
73230 +:102E00008E0200188D4C00D0144C00650260202109
73231 +:102E10008E0B00248CAE0028116E005B2402002172
73232 +:102E20000E001A4AA38200681452FFBE2404FFFF5A
73233 +:102E30008F8500380A001D320080A0212402001F67
73234 +:102E40000E001A4AA38200682409FFFF1049FEA160
73235 +:102E50002404FFFF0A001E548F83005402602021C7
73236 +:102E60000E001A4AA38200681450FF508F85003864
73237 +:102E70002403FFFF0A001D320060A0218CD800242B
73238 +:102E80008E0800241118FF29026020210A001F2744
73239 +:102E90002402000F8E0900003C05008001259024CB
73240 +:102EA0001640FF492402001A026020210E001A4A2F
73241 +:102EB000A3820068240CFFFF144CFECF2404FFFF04
73242 +:102EC0008F8500380A001D320080A0210E001934C1
73243 +:102ED000026020218F8500380A001EE500001821BD
73244 +:102EE0002403FFFD0060A0210A001D32AF860060B0
73245 +:102EF000026020210E001A4AA38D00682403FFFF00
73246 +:102F00001043FF588F8500380A001ECC920400033E
73247 +:102F10002418001D0E001A4AA39800682403FFFF1E
73248 +:102F20001443FE9D2404FFFF8F8500380A001D32E4
73249 +:102F30000080A021026020210A001F3D24020024FD
73250 +:102F4000240880000068C024330BFFFF000B73C20D
73251 +:102F500031D000FF001088270A001F6E001133C017
73252 +:102F6000240F001B0E001A4AA38F00681451FEACF8
73253 +:102F70002404FFFF8F8500380A001D320080A02145
73254 +:102F80000A001F3D240200278E0600288CA3002C77
73255 +:102F900010C30008026020210A001F812402001FC4
73256 +:102FA0000A001F812402000E026020210A001F81F6
73257 +:102FB000240200258E04002C1080000D8F8F00301D
73258 +:102FC0008DE800740104C02B5700000C0260202122
73259 +:102FD0008CB900140086A0210334282B10A0FF52C6
73260 +:102FE0008F9F0044026020210A001F8124020022DA
73261 +:102FF000026020210A001F81240200230A001F8191
73262 +:103000002402002627BDFFD8AFB3001CAFB10014C7
73263 +:10301000AFBF0020AFB20018AFB000103C0280007C
73264 +:103020008C5201408C4B01483C048000000B8C0208
73265 +:10303000322300FF317300FF8C8501B804A0FFFE2E
73266 +:1030400034900180AE1200008C8701442464FFF0AC
73267 +:10305000240600022C830013AE070004A61100080A
73268 +:10306000A206000BAE1300241060004F8FBF00209B
73269 +:10307000000448803C0A0801254A9534012A402171
73270 +:103080008D04000000800008000000003C030800E0
73271 +:103090008C6331A831693FFF00099980007280215B
73272 +:1030A000021370212405FF80264D0100264C00806C
73273 +:1030B0003C02800031B1007F3198007F31CA007F2F
73274 +:1030C0003C1F800A3C1980043C0F800C01C5202461
73275 +:1030D00001A5302401853824014F1821AC46002475
73276 +:1030E000023F402103194821AC470090AC4400281E
73277 +:1030F000AF830044AF880038AF8900300E0019005C
73278 +:10310000016080213C0380008C6B01B80560FFFEEC
73279 +:103110008F8700448F8600383465018090E8000D69
73280 +:10312000ACB20000A4B0000600082600000416039C
73281 +:1031300000029027001227C21080008124C200885C
73282 +:10314000241F6082A4BF0008A0A000052402000282
73283 +:10315000A0A2000B8F8B0030000424003C08270045
73284 +:1031600000889025ACB20010ACA00014ACA00024E4
73285 +:10317000ACA00028ACA0002C8D6900382413FF807F
73286 +:10318000ACA9001890E3000D02638024320500FF13
73287 +:1031900010A000058FBF002090ED000D31AC007F26
73288 +:1031A000A0EC000D8FBF00208FB3001C8FB2001861
73289 +:1031B0008FB100148FB000103C0A10003C0E80004C
73290 +:1031C00027BD002803E00008ADCA01B8265F010052
73291 +:1031D0002405FF8033F8007F3C06800003E5782457
73292 +:1031E0003C19800A03192021ACCF0024908E00D412
73293 +:1031F00000AE682431AC00FF11800024AF84003899
73294 +:10320000248E008895CD00123C0C08008D8C31A8CE
73295 +:1032100031AB3FFF01924821000B5180012A402130
73296 +:1032200001052024ACC400283107007F3C06800C37
73297 +:1032300000E620219083000D00A31024304500FFFC
73298 +:1032400010A0FFD8AF8400449098000D330F0010F9
73299 +:1032500015E0FFD58FBF00200E0019000000000010
73300 +:103260003C0380008C7901B80720FFFE00000000BD
73301 +:10327000AE1200008C7F0144AE1F0004A6110008AE
73302 +:1032800024110002A211000BAE1300243C1308010C
73303 +:10329000927396F0327000015200FFC38FBF00207E
73304 +:1032A0000E002146024020210A0020638FBF00202B
73305 +:1032B0003C1260008E452C083C03F0033462FFFF93
73306 +:1032C00000A2F824AE5F2C088E582C083C1901C0CF
73307 +:1032D00003199825AE532C080A0020638FBF0020E5
73308 +:1032E000264D010031AF007F3C10800A240EFF8084
73309 +:1032F00001F0282101AE60243C0B8000AD6C00245D
73310 +:103300001660FFA8AF85003824110003A0B100FCAF
73311 +:103310000A0020638FBF002026480100310A007F89
73312 +:103320003C0B800A2409FF80014B30210109202435
73313 +:103330003C078000ACE400240A002062AF8600381D
73314 +:10334000944E0012320C3FFF31CD3FFF15ACFF7D94
73315 +:10335000241F608290D900D42418FF800319782498
73316 +:1033600031EA00FF1140FF7700000000240700044D
73317 +:10337000A0C700FC8F870044241160842406000D40
73318 +:10338000A4B10008A0A600050A00204D24020002F6
73319 +:103390003C040001248496DC24030014240200FE73
73320 +:1033A0003C010800AC2431EC3C010800AC2331E8BE
73321 +:1033B0003C010801A42296F83C040801248496F8F4
73322 +:1033C0000000182100643021A0C300042463000120
73323 +:1033D0002C6500FF54A0FFFC006430213C0708006E
73324 +:1033E00024E7010003E00008AF87007800A058211F
73325 +:1033F000008048210000102114A00012000050217C
73326 +:103400000A002142000000003C010801A42096F8B7
73327 +:103410003C05080194A596F88F8200783C0C0801C1
73328 +:10342000258C96F800E2182100AC2021014B302BAE
73329 +:10343000A089000400001021A460000810C0003919
73330 +:10344000010048218F8600780009384000E94021BA
73331 +:103450000008388000E6282190A8000B90B9000AE7
73332 +:103460000008204000881021000218800066C0215A
73333 +:10347000A319000A8F85007800E5782191EE000AF3
73334 +:1034800091E6000B000E684001AE6021000C208028
73335 +:1034900000851021A046000B3C030801906396F2C2
73336 +:1034A000106000222462FFFF8F8300383C01080176
73337 +:1034B000A02296F2906C00FF118000040000000032
73338 +:1034C000906E00FF25CDFFFFA06D00FF3C190801A5
73339 +:1034D000973996F8272300013078FFFF2F0F00FF60
73340 +:1034E00011E0FFC9254A00013C010801A42396F818
73341 +:1034F0003C05080194A596F88F8200783C0C0801E1
73342 +:10350000258C96F800E2182100AC2021014B302BCD
73343 +:10351000A089000400001021A460000814C0FFC9A5
73344 +:103520000100482103E000080000000003E000085B
73345 +:103530002402000227BDFFE0248501002407FF804C
73346 +:10354000AFB00010AFBF0018AFB1001400A718242F
73347 +:103550003C10800030A4007F3C06800A00862821B1
73348 +:103560008E110024AE03002490A200FF1440000836
73349 +:10357000AF850038A0A000098FBF0018AE1100244D
73350 +:103580008FB100148FB0001003E0000827BD0020A9
73351 +:1035900090A900FD90A800FF312400FF0E0020F448
73352 +:1035A000310500FF8F8500388FBF0018A0A00009EB
73353 +:1035B000AE1100248FB100148FB0001003E000089A
73354 +:1035C00027BD002027BDFFD0AFB20020AFB1001C47
73355 +:1035D000AFB00018AFBF002CAFB40028AFB30024C9
73356 +:1035E0003C0980009533011635320C00952F011AE5
73357 +:1035F0003271FFFF023280218E08000431EEFFFF9E
73358 +:10360000248B0100010E6821240CFF8025A5FFFFFB
73359 +:10361000016C50243166007F3C07800AAD2A0024EB
73360 +:1036200000C73021AF850074AF8800703C010801ED
73361 +:10363000A02096F190C300090200D02100809821BB
73362 +:10364000306300FF2862000510400048AF86003854
73363 +:10365000286400021480008E24140001240D00054B
73364 +:103660003C010801A02D96D590CC00FD3C0108013D
73365 +:10367000A02096D63C010801A02096D790CB000A46
73366 +:10368000240AFF80318500FF014B4824312700FFC9
73367 +:1036900010E0000C000058213C12800836510080D8
73368 +:1036A0008E2F00308CD0005C01F0702305C0018E9D
73369 +:1036B0008F87007090D4000A3284007FA0C4000A73
73370 +:1036C0008F8600383C118008363000808E0F003025
73371 +:1036D0008F87007000EF702319C000EE000000001B
73372 +:1036E00090D4000924120002328400FF1092024795
73373 +:1036F000000000008CC2005800E2F82327F9FFFF09
73374 +:103700001B2001300000000090C5000924080004BF
73375 +:1037100030A300FF10680057240A00013C01080193
73376 +:10372000A02A96D590C900FF252700013C01080179
73377 +:10373000A02796D43C030801906396D52406000583
73378 +:103740001066006A2C780005130000C40000902168
73379 +:103750000003F8803C0408012484958003E4C82118
73380 +:103760008F25000000A0000800000000241800FFC2
73381 +:103770001078005C0000000090CC000A90CA00099C
73382 +:103780003C080801910896F13187008000EA48253D
73383 +:103790003C010801A02996DC90C500FD3C140801FD
73384 +:1037A000929496F2311100013C010801A02596DDAA
73385 +:1037B00090DF00FE3C010801A03F96DE90D200FFA2
73386 +:1037C0003C010801A03296DF8CD900543C0108016D
73387 +:1037D000AC3996E08CD000583C010801AC3096E43E
73388 +:1037E0008CC3005C3C010801AC3496EC3C01080140
73389 +:1037F000AC2396E8162000088FBF002C8FB4002859
73390 +:103800008FB300248FB200208FB1001C8FB000183E
73391 +:1038100003E0000827BD00303C1180009624010E13
73392 +:103820000E000FD43094FFFF3C0B08018D6B96F413
73393 +:103830000260382102802821AE2B01803C13080150
73394 +:103840008E7396D401602021240600830E00102F71
73395 +:10385000AFB300108FBF002C8FB400288FB30024AB
73396 +:103860008FB200208FB1001C8FB0001803E0000859
73397 +:1038700027BD00303C1808008F1831FC270F0001CD
73398 +:103880003C010800AC2F31FC0A0021D700000000E9
73399 +:103890001474FFB900000000A0C000FF3C05080040
73400 +:1038A0008CA531E43C0308008C6331E03C02080045
73401 +:1038B0008C4232048F99003834A80001241F000282
73402 +:1038C0003C010801AC2396F43C010801A02896F0C5
73403 +:1038D0003C010801A02296F3A33F00090A002190B1
73404 +:1038E0008F8600380E002146000000000A0021D714
73405 +:1038F0008F8600383C1F080193FF96D424190001DD
73406 +:1039000013F902298F8700703C100801921096D895
73407 +:103910003C06080190C696D610C000050200A02102
73408 +:103920003C040801908496D9109001E48F870078B8
73409 +:10393000001088408F9F0078023048210009C8801D
73410 +:10394000033F702195D80008270F0001A5CF00087C
73411 +:103950003C040801908496D93C05080190A596D6B0
73412 +:103960000E0020F4000000008F8700780230202134
73413 +:103970000004308000C720218C8500048F820074F1
73414 +:1039800000A2402305020006AC8200048C8A0000DD
73415 +:103990008F830070014310235C400001AC83000062
73416 +:1039A0008F86003890CB00FF2D6C00025580002DD3
73417 +:1039B000241400010230F821001F40800107282153
73418 +:1039C00090B9000B8CAE00040019C0400319782197
73419 +:1039D000000F1880006710218C4D000001AE882375
73420 +:1039E0002630FFFF5E00001F241400018C440004F9
73421 +:1039F0008CAA0000008A482319200019240E000414
73422 +:103A00003C010801A02E96D590AD000B8CAB0004B4
73423 +:103A1000000D8840022D80210010108000471021E9
73424 +:103A20008C44000401646023058202009443000872
73425 +:103A300090DF00FE90B9000B33E500FF54B900049D
73426 +:103A40000107A021A0D400FE8F8700780107A021E4
73427 +:103A50009284000B0E0020F4240500018F860038AC
73428 +:103A600024140001125400962E500001160000424A
73429 +:103A70003C08FFFF241900021659FF3F0000000018
73430 +:103A8000A0C000FF8F860038A0D200090A0021D70D
73431 +:103A90008F86003890C700092404000230E300FF3D
73432 +:103AA0001064016F24090004106901528F880074AA
73433 +:103AB0008CCE0054010E682325B10001062001754B
73434 +:103AC000241800043C010801A03896D53C010801E7
73435 +:103AD000A02096D490D400FD90D200FF2E4F00027B
73436 +:103AE00015E0FF14328400FF000438408F8900780D
73437 +:103AF00090DF00FF00E41021000220800089C8212F
73438 +:103B00002FE500029324000B14A0FF0A24070002F3
73439 +:103B100000041840006480210010588001692821A9
73440 +:103B20008CAC0004010C50230540FF020000000093
73441 +:103B30003C030801906396D614600005246F0001D1
73442 +:103B40003C010801A02496D93C010801A02796D782
73443 +:103B50003C010801A02F96D690CE00FF24E700017B
73444 +:103B600031CD00FF01A7882B1220FFE990A4000BA4
73445 +:103B70000A0021C6000000003C0508018CA596D46F
73446 +:103B80003C12000400A8F82413F2000624020005E9
73447 +:103B90003C090801912996D5152000022402000352
73448 +:103BA000240200053C010801A02296F190C700FF05
73449 +:103BB00014E0012024020002A0C200090A0021D75B
73450 +:103BC0008F86003890CC00FF1180FEDA240A0001B5
73451 +:103BD0008F8C00748F890078240F00030180682186
73452 +:103BE0001160001E240E0002000540400105A021C6
73453 +:103BF00000142080008990218E51000401918023BF
73454 +:103C00000600FECC000000003C020801904296D65F
73455 +:103C100014400005245800013C010801A02A96D751
73456 +:103C20003C010801A02596D93C010801A03896D690
73457 +:103C300090DF00FF010510210002C88033E500FF7E
73458 +:103C4000254A00010329202100AA402B1500FEB9B6
73459 +:103C50009085000B1560FFE50005404000054040E1
73460 +:103C600001051821000310803C010801A02A96D408
73461 +:103C70003C010801A02596D8004918218C64000455
73462 +:103C800000E4F82327F9FFFF1F20FFE900000000F0
73463 +:103C90008C63000000E358230560013A01A38823E8
73464 +:103CA00010E301170184C0231B00FEA200000000E6
73465 +:103CB0003C010801A02E96D50A002305240B000123
73466 +:103CC000240E0004A0CE00093C0D08008DAD31F893
73467 +:103CD0008F86003825A200013C010800AC2231F893
73468 +:103CE0000A0021D7000000008CD9005C00F9C02335
73469 +:103CF0001F00FE7B000000008CDF005C10FFFF65F2
73470 +:103D00008F8400748CC3005C008340232502000173
73471 +:103D10001C40FF60000000008CC9005C248700018B
73472 +:103D200000E9282B10A0FE943C0D80008DAB01040F
73473 +:103D30003C0C0001016C50241140FE8F2402001045
73474 +:103D40003C010801A02296F10A0021D700000000E2
73475 +:103D50008F9100748F86003826220001ACC2005C6F
73476 +:103D60000A002292241400018F8700382404FF8067
73477 +:103D70000000882190E9000A241400010124302564
73478 +:103D8000A0E6000A3C05080190A596D63C0408016F
73479 +:103D9000908496D90E0020F4000000008F86003831
73480 +:103DA0008F85007890C800FD310700FF0007404074
73481 +:103DB0000107F821001FC0800305C8219323000BD1
73482 +:103DC000A0C300FD8F8500788F8600380305602131
73483 +:103DD000918F000B000F704001CF6821000D808093
73484 +:103DE000020510218C4B0000ACCB00548D840004E4
73485 +:103DF0008F83007400645023194000022482000164
73486 +:103E00002462000101074821ACC2005C0009308037
73487 +:103E100000C5402100E02021240500010E0020F40F
73488 +:103E20009110000B8F86003890C500FF10A0FF0C8A
73489 +:103E3000001070408F85007801D06821000D10803F
73490 +:103E4000004558218D6400008F8C0074018450233C
73491 +:103E50002547000104E0FF02263100013C03080170
73492 +:103E6000906396D62E2F0002247800013C010801B1
73493 +:103E7000A03896D63C010801A03496D711E0FEF890
73494 +:103E8000020038210A002365000740408F84003873
73495 +:103E90008F8300748C85005800A340230502FE9A8E
73496 +:103EA000AC8300580A00223B000000003C070801D8
73497 +:103EB00090E796F2240200FF10E200BE8F860038E1
73498 +:103EC0003C110801963196FA3C030801246396F8E8
73499 +:103ED000262500013230FFFF30ABFFFF02036021D7
73500 +:103EE0002D6A00FF1540008D918700043C010801F8
73501 +:103EF000A42096FA8F88003800074840012728211F
73502 +:103F0000911800FF000530802405000127140001EE
73503 +:103F1000A11400FF3C120801925296F28F8800789B
73504 +:103F20008F8E0070264F000100C820213C0108013F
73505 +:103F3000A02F96F2AC8E00008F8D0074A48500082F
73506 +:103F4000AC8D00043C030801906396D414600077A4
73507 +:103F5000000090213C010801A02596D4A087000B09
73508 +:103F60008F8C007800CC5021A147000A8F82003846
73509 +:103F7000A04700FD8F840038A08700FE8F860038A0
73510 +:103F80008F9F0070ACDF00548F990074ACD900583B
73511 +:103F90008F8D00780127C02100185880016DA02165
73512 +:103FA000928F000A000F704001CF18210003888013
73513 +:103FB000022D8021A207000B8F8600780166602108
73514 +:103FC000918A000B000A1040004A2021000428803A
73515 +:103FD00000A64021A107000A3C07800834E90080C0
73516 +:103FE0008D2200308F860038ACC2005C0A0022921D
73517 +:103FF0002414000190CA00FF1540FEAD8F880074A4
73518 +:10400000A0C400090A0021D78F860038A0C000FD97
73519 +:104010008F98003824060001A30000FE3C0108012F
73520 +:10402000A02696D53C010801A02096D40A0021C6FE
73521 +:104030000000000090CB00FF3C040801908496F340
73522 +:10404000316C00FF0184502B1540000F2402000347
73523 +:1040500024020004A0C200090A0021D78F8600387C
73524 +:1040600090C3000A2410FF8002035824316C00FF23
73525 +:104070001180FDC1000000003C010801A02096D580
73526 +:104080000A0021C600000000A0C200090A0021D7D2
73527 +:104090008F86003890D4000A2412FF8002544824EE
73528 +:1040A000312800FF1500FFF4240200083C0108013C
73529 +:1040B000A02296F10A0021D70000000000108840DD
73530 +:1040C0008F8B0070023018210003688001A7202127
73531 +:1040D000AC8B00008F8A0074240C0001A48C0008B3
73532 +:1040E000AC8A00043C05080190A596D62402000184
73533 +:1040F00010A2FE1E24A5FFFF0A0022519084000B8F
73534 +:104100000184A0231A80FD8B000000003C010801FF
73535 +:10411000A02E96D50A002305240B00013C010801BE
73536 +:10412000A42596FA0A0023B78F880038240B0001D3
73537 +:10413000106B00228F9800388F85003890BF00FFE9
73538 +:1041400033F900FF1079002B000000003C1F08012C
73539 +:1041500093FF96D8001FC840033FC0210018A080DD
73540 +:104160000288782191EE000AA08E000A8F8D0078D7
73541 +:104170003C030801906396D800CD88210A0023DD16
73542 +:10418000A223000B263000010600003101A4902379
73543 +:104190000640002B240200033C010801A02F96D505
73544 +:1041A0000A002305240B00018F8900380A00223BF6
73545 +:1041B000AD2700540A00229124120001931400FD3F
73546 +:1041C000A094000B8F8800388F8F0078910E00FE2E
73547 +:1041D00000CF6821A1AE000A8F910038A22700FD10
73548 +:1041E0008F8300708F900038AE0300540A0023DEE6
73549 +:1041F0008F8D007890B000FEA090000A8F8B003861
73550 +:104200008F8C0078916A00FD00CC1021A04A000B31
73551 +:104210008F840038A08700FE8F8600748F85003859
73552 +:10422000ACA600580A0023DE8F8D007894B80008F1
73553 +:10423000ACA40004030378210A002285A4AF00087F
73554 +:104240003C010801A02296D50A0021C6000000000A
73555 +:1042500090CF0009240D000431EE00FF11CDFD8543
73556 +:10426000240200013C010801A02296D50A0021C6C3
73557 +:1042700000000000080033440800334408003420E4
73558 +:10428000080033F4080033D8080033280800332826
73559 +:10429000080033280800334C8008010080080080A3
73560 +:1042A000800800005F865437E4AC62CC50103A4579
73561 +:1042B00036621985BF14C0E81BC27A1E84F4B55655
73562 +:1042C000094EA6FE7DDA01E7C04D748108005A74DC
73563 +:1042D00008005AB808005A5C08005A5C08005A5C8A
73564 +:1042E00008005A5C08005A7408005A5C08005A5CBE
73565 +:1042F00008005AC008005A5C080059D408005A5CEB
73566 +:1043000008005A5C08005AC008005A5C08005A5C51
73567 +:1043100008005A5C08005A5C08005A5C08005A5CA5
73568 +:1043200008005A5C08005A5C08005A5C08005A5C95
73569 +:1043300008005A9408005A5C08005A9408005A5C15
73570 +:1043400008005A5C08005A5C08005A9808005A9401
73571 +:1043500008005A5C08005A5C08005A5C08005A5C65
73572 +:1043600008005A5C08005A5C08005A5C08005A5C55
73573 +:1043700008005A5C08005A5C08005A5C08005A5C45
73574 +:1043800008005A5C08005A5C08005A5C08005A5C35
73575 +:1043900008005A5C08005A5C08005A5C08005A5C25
73576 +:1043A00008005A9808005A9808005A5C08005A9861
73577 +:1043B00008005A5C08005A5C08005A5C08005A5C05
73578 +:1043C00008005A5C08005A5C08005A5C08005A5CF5
73579 +:1043D00008005A5C08005A5C08005A5C08005A5CE5
73580 +:1043E00008005A5C08005A5C08005A5C08005A5CD5
73581 +:1043F00008005A5C08005A5C08005A5C08005A5CC5
73582 +:1044000008005A5C08005A5C08005A5C08005A5CB4
73583 +:1044100008005A5C08005A5C08005A5C08005A5CA4
73584 +:1044200008005A5C08005A5C08005A5C08005A5C94
73585 +:1044300008005A5C08005A5C08005A5C08005A5C84
73586 +:1044400008005A5C08005A5C08005A5C08005A5C74
73587 +:1044500008005A5C08005A5C08005A5C08005A5C64
73588 +:1044600008005A5C08005A5C08005A5C08005A5C54
73589 +:1044700008005A5C08005A5C08005A5C08005A5C44
73590 +:1044800008005A5C08005A5C08005A5C08005A5C34
73591 +:1044900008005A5C08005A5C08005A5C08005A5C24
73592 +:1044A00008005A5C08005A5C08005A5C08005A5C14
73593 +:1044B00008005A5C08005A5C08005A5C08005A5C04
73594 +:1044C00008005A5C08005A5C08005A5C08005ADC74
73595 +:1044D0000800782C08007A900800783808007628C0
73596 +:1044E00008007838080078C4080078380800762872
73597 +:1044F0000800762808007628080076280800762824
73598 +:104500000800762808007628080076280800762813
73599 +:1045100008007628080078580800784808007628AF
73600 +:1045200008007628080076280800762808007628F3
73601 +:1045300008007628080076280800762808007628E3
73602 +:1045400008007628080076280800762808007848B1
73603 +:10455000080082FC08008188080082C40800818865
73604 +:104560000800829408008070080081880800818813
73605 +:1045700008008188080081880800818808008188F7
73606 +:1045800008008188080081880800818808008188E7
73607 +:104590000800818808008188080081B008008D34F7
73608 +:1045A00008008E9008008E70080088D808008D4C96
73609 +:1045B0000A00012400000000000000000000000DBF
73610 +:1045C000747061362E322E31620000000602010145
73611 +:1045D00000000000000000000000000000000000DB
73612 +:1045E00000000000000000000000000000000000CB
73613 +:1045F00000000000000000000000000000000000BB
73614 +:1046000000000000000000000000000000000000AA
73615 +:10461000000000000000000000000000000000009A
73616 +:10462000000000000000000000000000000000008A
73617 +:10463000000000000000000000000000000000007A
73618 +:104640000000000010000003000000000000000D4A
73619 +:104650000000000D3C020800244217203C03080023
73620 +:1046600024632A10AC4000000043202B1480FFFD7F
73621 +:10467000244200043C1D080037BD2FFC03A0F0219C
73622 +:104680003C100800261004903C1C0800279C1720B2
73623 +:104690000E000262000000000000000D2402FF80F6
73624 +:1046A00027BDFFE000821024AFB00010AF42002011
73625 +:1046B000AFBF0018AFB10014936500043084007FD1
73626 +:1046C000034418213C0200080062182130A5002094
73627 +:1046D000036080213C080111277B000814A0000220
73628 +:1046E0002466005C2466005892020004974301048B
73629 +:1046F000920400043047000F3063FFFF3084004015
73630 +:10470000006728231080000900004821920200055C
73631 +:1047100030420004104000050000000010A000031B
73632 +:104720000000000024A5FFFC2409000492020005FB
73633 +:1047300030420004104000120000000010A00010E1
73634 +:10474000000000009602000200A72021010440257D
73635 +:104750002442FFFEA7421016920300042402FF80A9
73636 +:1047600000431024304200FF104000033C020400CC
73637 +:104770000A000174010240258CC20000AF421018EB
73638 +:104780008F4201780440FFFE2402000AA742014044
73639 +:1047900096020002240400093042000700021023A0
73640 +:1047A00030420007A7420142960200022442FFFE67
73641 +:1047B000A7420144A740014697420104A74201488D
73642 +:1047C0008F420108304200205040000124040001C3
73643 +:1047D00092020004304200101440000234830010A2
73644 +:1047E00000801821A743014A0000000000000000DB
73645 +:1047F0000000000000000000AF48100000000000B2
73646 +:104800000000000000000000000000008F421000C7
73647 +:104810000441FFFE3102FFFF1040000700000000CE
73648 +:1048200092020004304200401440000300000000E7
73649 +:104830008F421018ACC20000960200063042FFFF03
73650 +:10484000244200020002104300021040036288214B
73651 +:10485000962200001120000D3044FFFF00A7102118
73652 +:104860008F8300388F45101C0002108200021080D8
73653 +:1048700000431021AC45000030A6FFFF0E00058D5F
73654 +:1048800000052C0200402021A62200009203000413
73655 +:104890002402FF8000431024304200FF1040001F1C
73656 +:1048A0000000000092020005304200021040001B90
73657 +:1048B000000000009742100C2442FFFEA742101691
73658 +:1048C000000000003C02040034420030AF421000FF
73659 +:1048D00000000000000000000000000000000000D8
73660 +:1048E0008F4210000441FFFE000000009742100CB0
73661 +:1048F0008F45101C3042FFFF24420030000210821E
73662 +:1049000000021080005B1021AC45000030A6FFFFC4
73663 +:104910000E00058D00052C02A62200009604000260
73664 +:10492000248400080E0001E93084FFFF974401044D
73665 +:104930000E0001F73084FFFF8FBF00188FB1001405
73666 +:104940008FB000103C02100027BD002003E00008DB
73667 +:10495000AF4201783084FFFF308200078F8500244A
73668 +:1049600010400002248300073064FFF800A41021E7
73669 +:1049700030421FFF03421821247B4000AF850028EE
73670 +:10498000AF82002403E00008AF4200843084FFFFC0
73671 +:104990003082000F8F85002C8F860034104000027B
73672 +:1049A0002483000F3064FFF000A410210046182B70
73673 +:1049B000AF8500300046202314600002AF82002C37
73674 +:1049C000AF84002C8F82002C340480000342182115
73675 +:1049D00000641821AF83003803E00008AF42008074
73676 +:1049E0008F820014104000088F8200048F82FFDC49
73677 +:1049F000144000058F8200043C02FFBF3442FFFFD9
73678 +:104A0000008220248F82000430430006240200022A
73679 +:104A10001062000F3C0201012C62000350400005AF
73680 +:104A2000240200041060000F3C0200010A00023062
73681 +:104A30000000000010620005240200061462000C51
73682 +:104A40003C0201110A000229008210253C020011DB
73683 +:104A500000821025AF421000240200010A0002303B
73684 +:104A6000AF82000C00821025AF421000AF80000C16
73685 +:104A700000000000000000000000000003E000084B
73686 +:104A8000000000008F82000C1040000400000000B5
73687 +:104A90008F4210000441FFFE0000000003E0000808
73688 +:104AA000000000008F8200102443F800000231C291
73689 +:104AB00024C2FFF02C6303011060000300021042C7
73690 +:104AC0000A000257AC8200008F85001800C5102B29
73691 +:104AD0001440000B0000182100C5102324470001DA
73692 +:104AE0008F82001C00A210212442FFFF0046102BE1
73693 +:104AF000544000042402FFFF0A000257AC87000064
73694 +:104B00002402FFFF0A000260AC8200008C820000D9
73695 +:104B10000002194000621821000318800062182169
73696 +:104B2000000318803C0208002442175C0062182130
73697 +:104B300003E000080060102127BDFFD8AFBF0020B0
73698 +:104B4000AFB1001CAFB000183C0460088C8250006C
73699 +:104B50002403FF7F3C066000004310243442380CDD
73700 +:104B6000AC8250008CC24C1C3C1A80000002160221
73701 +:104B70003042000F10400007AF82001C8CC34C1C59
73702 +:104B80003C02001F3442FC0000621824000319C2DA
73703 +:104B9000AF8300188F420008275B400034420001B9
73704 +:104BA000AF420008AF8000243C02601CAF40008090
73705 +:104BB000AF4000848C4500088CC308083402800094
73706 +:104BC000034220212402FFF0006218243C020080EE
73707 +:104BD0003C010800AC2204203C025709AF84003895
73708 +:104BE00014620004AF850034240200010A0002921E
73709 +:104BF000AF820014AF8000148F42000038420001E1
73710 +:104C0000304200011440FFFC8F8200141040001657
73711 +:104C10000000000097420104104000058F8300004F
73712 +:104C2000146000072462FFFF0A0002A72C62000A3A
73713 +:104C30002C620010504000048F83000024620001A9
73714 +:104C4000AF8200008F8300002C62000A1440000332
73715 +:104C50002C6200070A0002AEAF80FFDC10400002A9
73716 +:104C600024020001AF82FFDC8F4301088F44010062
73717 +:104C700030622000AF83000410400008AF840010B1
73718 +:104C80003C0208008C42042C244200013C01080034
73719 +:104C9000AC22042C0A00058A3C0240003065020068
73720 +:104CA00014A0000324020F001482026024020D00ED
73721 +:104CB00097420104104002C83C02400030624000AC
73722 +:104CC000144000AD8F8200388C4400088F42017878
73723 +:104CD0000440FFFE24020800AF42017824020008CD
73724 +:104CE000A7420140A7400142974201048F8400047B
73725 +:104CF0003051FFFF30820001104000070220802168
73726 +:104D00002623FFFE240200023070FFFFA742014667
73727 +:104D10000A0002DBA7430148A74001463C02080005
73728 +:104D20008C42043C1440000D8F8300103082002020
73729 +:104D30001440000224030009240300010060202124
73730 +:104D40008F830010240209005062000134840004A3
73731 +:104D5000A744014A0A0002F60000000024020F00E6
73732 +:104D60001462000530820020144000062403000D68
73733 +:104D70000A0002F524030005144000022403000980
73734 +:104D800024030001A743014A3C0208008C4204208E
73735 +:104D90003C0400480E00020C004420250E000235A1
73736 +:104DA000000000008F82000C1040003E0000000058
73737 +:104DB0008F4210003C0300200043102410400039B3
73738 +:104DC0008F820004304200021040003600000000D4
73739 +:104DD000974210141440003300000000974210085E
73740 +:104DE0008F8800383042FFFF2442000600021882FC
73741 +:104DF0000003388000E83021304300018CC40000FB
73742 +:104E000010600004304200030000000D0A00033768
73743 +:104E100000E81021544000103084FFFF3C05FFFFE4
73744 +:104E200000852024008518260003182B0004102B71
73745 +:104E300000431024104000050000000000000000A6
73746 +:104E40000000000D00000000240002228CC20000BF
73747 +:104E50000A000336004520253883FFFF0003182B86
73748 +:104E60000004102B00431024104000050000000037
73749 +:104E7000000000000000000D000000002400022BD4
73750 +:104E80008CC200003444FFFF00E81021AC44000055
73751 +:104E90003C0208008C420430244200013C0108001E
73752 +:104EA000AC2204308F6200008F840038AF8200088B
73753 +:104EB0008C8300003402FFFF1462000F00001021F9
73754 +:104EC0003C0508008CA504543C0408008C84045064
73755 +:104ED00000B0282100B0302B008220210086202144
73756 +:104EE0003C010800AC2504543C010800AC240450EB
73757 +:104EF0000A000580240400088C8200003042010072
73758 +:104F00001040000F000010213C0508008CA5044C47
73759 +:104F10003C0408008C84044800B0282100B0302BE9
73760 +:104F200000822021008620213C010800AC25044C91
73761 +:104F30003C010800AC2404480A0005802404000851
73762 +:104F40003C0508008CA504443C0408008C84044003
73763 +:104F500000B0282100B0302B0082202100862021C3
73764 +:104F60003C010800AC2504443C010800AC2404408A
73765 +:104F70000A000580240400088F6200088F62000088
73766 +:104F800000021602304300F02402003010620005D7
73767 +:104F900024020040106200E08F8200200A00058891
73768 +:104FA0002442000114A000050000000000000000E1
73769 +:104FB0000000000D00000000240002568F4201781E
73770 +:104FC0000440FFFE000000000E00023D27A4001078
73771 +:104FD0001440000500408021000000000000000D8A
73772 +:104FE000000000002400025D8E0200001040000559
73773 +:104FF00000000000000000000000000D00000000A4
73774 +:10500000240002608F62000C0443000324020001AC
73775 +:105010000A00042EAE000000AE0200008F820038AD
73776 +:105020008C480008A20000078F65000C8F64000404
73777 +:1050300030A3FFFF0004240200852023308200FFFC
73778 +:105040000043102124420005000230832CC200815D
73779 +:10505000A605000A14400005A20400040000000098
73780 +:105060000000000D00000000240002788F85003849
73781 +:105070000E0005AB260400148F6200048F43010864
73782 +:10508000A60200083C02100000621824106000080C
73783 +:105090000000000097420104920300072442FFEC45
73784 +:1050A000346300023045FFFF0A0003C3A203000778
73785 +:1050B000974201042442FFF03045FFFF96060008A6
73786 +:1050C0002CC200135440000592030007920200070F
73787 +:1050D00034420001A20200079203000724020001EB
73788 +:1050E00010620005240200031062000B8F8200385A
73789 +:1050F0000A0003E030C6FFFF8F8200383C04FFFF48
73790 +:105100008C43000C0064182400651825AC43000C87
73791 +:105110000A0003E030C6FFFF3C04FFFF8C43001091
73792 +:105120000064182400651825AC43001030C6FFFF4A
73793 +:1051300024C2000200021083A20200058F830038FF
73794 +:10514000304200FF00021080004328218CA800009C
73795 +:105150008CA2000024030004000217021443001272
73796 +:1051600000000000974201043C03FFFF01031824E4
73797 +:105170003042FFFF004610232442FFFE006240251C
73798 +:10518000ACA8000092030005306200FF000210800E
73799 +:1051900000501021904200143042000F00431021B3
73800 +:1051A0000A000415A20200068CA400049742010420
73801 +:1051B0009603000A3088FFFF3042FFFF00461023AD
73802 +:1051C0002442FFD60002140001024025ACA80004CE
73803 +:1051D000920200079204000524630028000318834C
73804 +:1051E0000064182134420004A2030006A202000752
73805 +:1051F0008F8200042403FFFB34420002004310248A
73806 +:10520000AF820004920300068F87003800031880E5
73807 +:10521000007010218C4400203C02FFF63442FFFF56
73808 +:105220000082402400671821AE04000CAC68000C1A
73809 +:10523000920500063C03FF7F8E02000C00052880CB
73810 +:1052400000B020213463FFFF01033024948800263E
73811 +:1052500000A7282100431024AE02000CAC860020D9
73812 +:10526000AC880024ACA8001024020010A742014022
73813 +:1052700024020002A7400142A7400144A742014680
73814 +:10528000974201043C0400082442FFFEA742014863
73815 +:10529000240200010E00020CA742014A9603000AF4
73816 +:1052A0009202000400431021244200023042000711
73817 +:1052B00000021023304200070E000235AE0200103B
73818 +:1052C0008F6200003C0308008C6304442404001037
73819 +:1052D000AF820008974201043042FFFF2442FFFEE4
73820 +:1052E00000403821000237C33C0208008C420440D1
73821 +:1052F000006718210067282B004610210045102167
73822 +:105300003C010800AC2304443C010800AC220440EA
73823 +:105310000A0005150000000014A0000500000000B0
73824 +:10532000000000000000000D000000002400030A3F
73825 +:105330008F4201780440FFFE000000000E00023D95
73826 +:1053400027A4001414400005004080210000000044
73827 +:105350000000000D00000000240003118E02000078
73828 +:105360005440000692020007000000000000000DFB
73829 +:10537000000000002400031C9202000730420004D9
73830 +:10538000104000058F8200042403FFFB344200021A
73831 +:1053900000431024AF8200048F620004044300081D
73832 +:1053A00092020007920200068E03000CAE0000007D
73833 +:1053B0000002108000501021AC4300209202000730
73834 +:1053C00030420004544000099602000A920200058F
73835 +:1053D0003C03000100021080005010218C46001890
73836 +:1053E00000C33021AC4600189602000A9206000461
73837 +:1053F000277100080220202100C2302124C60005A8
73838 +:10540000260500140E0005AB00063082920400064B
73839 +:105410008F6500043C027FFF000420800091202162
73840 +:105420008C8300043442FFFF00A228240065182169
73841 +:10543000AC8300049202000792040005920300046A
73842 +:10544000304200041040001496070008308400FF2A
73843 +:1054500000042080009120218C86000497420104E2
73844 +:105460009605000A306300FF3042FFFF0043102121
73845 +:105470000045102130E3FFFF004310232442FFD8F2
73846 +:1054800030C6FFFF0002140000C23025AC860004C5
73847 +:105490000A0004C992030007308500FF0005288038
73848 +:1054A00000B128218CA4000097420104306300FF62
73849 +:1054B0003042FFFF00431021004710233C03FFFF51
73850 +:1054C000008320243042FFFF00822025ACA400008E
73851 +:1054D0009203000724020001106200060000000091
73852 +:1054E0002402000310620011000000000A0004EC16
73853 +:1054F0008E03001097420104920300049605000AEF
73854 +:105500008E24000C00431021004510212442FFF29C
73855 +:105510003C03FFFF008320243042FFFF0082202550
73856 +:10552000AE24000C0A0004EC8E0300109742010424
73857 +:10553000920300049605000A8E24001000431021F7
73858 +:10554000004510212442FFEE3C03FFFF008320248E
73859 +:105550003042FFFF00822025AE2400108E03001091
73860 +:105560002402000AA7420140A74301429603000A11
73861 +:10557000920200043C04004000431021A742014471
73862 +:10558000A740014697420104A742014824020001B6
73863 +:105590000E00020CA742014A0E0002350000000076
73864 +:1055A0008F6200009203000400002021AF820008F7
73865 +:1055B000974201049606000A3042FFFF006218215C
73866 +:1055C000006028213C0308008C6304443C0208006E
73867 +:1055D0008C42044000651821004410210065382BDE
73868 +:1055E000004710213C010800AC2304443C010800A2
73869 +:1055F000AC22044092040004008620212484000A86
73870 +:105600003084FFFF0E0001E9000000009744010410
73871 +:105610003084FFFF0E0001F7000000003C02100084
73872 +:10562000AF4201780A0005878F820020148200278C
73873 +:105630003062000697420104104000673C024000BF
73874 +:105640003062400010400005000000000000000033
73875 +:105650000000000D00000000240004208F420178AB
73876 +:105660000440FFFE24020800AF4201782402000833
73877 +:10567000A7420140A74001428F82000497430104E2
73878 +:1056800030420001104000073070FFFF2603FFFE8C
73879 +:1056900024020002A7420146A74301480A00053F31
73880 +:1056A0002402000DA74001462402000DA742014A32
73881 +:1056B0008F62000024040008AF8200080E0001E998
73882 +:1056C000000000000A0005190200202110400042DD
73883 +:1056D0003C02400093620000304300F024020010BE
73884 +:1056E0001062000524020070106200358F820020D5
73885 +:1056F0000A000588244200018F62000097430104DC
73886 +:105700003050FFFF3071FFFF8F4201780440FFFEF1
73887 +:105710003202000700021023304200072403000A6F
73888 +:105720002604FFFEA7430140A7420142A7440144CB
73889 +:10573000A7400146A75101488F420108304200208E
73890 +:10574000144000022403000924030001A743014A76
73891 +:105750000E00020C3C0400400E0002350000000068
73892 +:105760003C0708008CE70444021110212442FFFE8C
73893 +:105770003C0608008CC604400040182100E3382194
73894 +:10578000000010218F65000000E3402B00C2302193
73895 +:105790002604000800C830213084FFFFAF850008D0
73896 +:1057A0003C010800AC2704443C010800AC2604403E
73897 +:1057B0000E0001E9000000000A0005190220202166
73898 +:1057C0000E00013B000000008F82002024420001F7
73899 +:1057D000AF8200203C024000AF4201380A00029232
73900 +:1057E000000000003084FFFF30C6FFFF00052C00E2
73901 +:1057F00000A628253882FFFF004510210045282BF0
73902 +:105800000045102100021C023042FFFF004310211E
73903 +:1058100000021C023042FFFF004310213842FFFF0C
73904 +:1058200003E000083042FFFF3084FFFF30A5FFFF98
73905 +:1058300000001821108000070000000030820001E5
73906 +:105840001040000200042042006518210A0005A152
73907 +:105850000005284003E000080060102110C0000689
73908 +:1058600024C6FFFF8CA2000024A50004AC82000027
73909 +:105870000A0005AB2484000403E0000800000000D7
73910 +:1058800010A0000824A3FFFFAC8600000000000069
73911 +:10589000000000002402FFFF2463FFFF1462FFFAF0
73912 +:1058A0002484000403E00008000000000000000160
73913 +:1058B0000A00002A00000000000000000000000DA7
73914 +:1058C000747870362E322E3162000000060201001C
73915 +:1058D00000000000000001360000EA600000000047
73916 +:1058E00000000000000000000000000000000000B8
73917 +:1058F00000000000000000000000000000000000A8
73918 +:105900000000000000000000000000000000000097
73919 +:105910000000001600000000000000000000000071
73920 +:105920000000000000000000000000000000000077
73921 +:105930000000000000000000000000000000000067
73922 +:1059400000000000000000000000138800000000BC
73923 +:10595000000005DC00000000000000001000000353
73924 +:10596000000000000000000D0000000D3C020800D7
73925 +:1059700024423D683C0308002463401CAC40000006
73926 +:105980000043202B1480FFFD244200043C1D08002E
73927 +:1059900037BD7FFC03A0F0213C100800261000A8B2
73928 +:1059A0003C1C0800279C3D680E00044E00000000CF
73929 +:1059B0000000000D27BDFFB4AFA10000AFA200049E
73930 +:1059C000AFA30008AFA4000CAFA50010AFA6001451
73931 +:1059D000AFA70018AFA8001CAFA90020AFAA0024F1
73932 +:1059E000AFAB0028AFAC002CAFAD0030AFAE003491
73933 +:1059F000AFAF0038AFB8003CAFB90040AFBC004417
73934 +:105A0000AFBF00480E000591000000008FBF0048A6
73935 +:105A10008FBC00448FB900408FB8003C8FAF003876
73936 +:105A20008FAE00348FAD00308FAC002C8FAB0028D0
73937 +:105A30008FAA00248FA900208FA8001C8FA7001810
73938 +:105A40008FA600148FA500108FA4000C8FA3000850
73939 +:105A50008FA200048FA1000027BD004C3C1B6004F6
73940 +:105A60008F7A5030377B502803400008AF7A00000F
73941 +:105A70008F86003C3C0390003C0280000086282575
73942 +:105A800000A32025AC4400203C0380008C6700204C
73943 +:105A900004E0FFFE0000000003E00008000000003A
73944 +:105AA0000A000070240400018F85003C3C04800043
73945 +:105AB0003483000100A3102503E00008AC8200201D
73946 +:105AC00003E00008000010213084FFFF30A5FFFF35
73947 +:105AD00010800007000018213082000110400002F1
73948 +:105AE00000042042006518211480FFFB00052840B7
73949 +:105AF00003E000080060102110C000070000000053
73950 +:105B00008CA2000024C6FFFF24A50004AC82000084
73951 +:105B100014C0FFFB2484000403E000080000000020
73952 +:105B200010A0000824A3FFFFAC86000000000000C6
73953 +:105B3000000000002402FFFF2463FFFF1462FFFA4D
73954 +:105B40002484000403E000080000000090AA003153
73955 +:105B50008FAB00108CAC00403C0300FF8D6800044C
73956 +:105B6000AD6C00208CAD004400E060213462FFFF8A
73957 +:105B7000AD6D00248CA700483C09FF000109C0243A
73958 +:105B8000AD6700288CAE004C0182C824031978252B
73959 +:105B9000AD6F0004AD6E002C8CAD0038314A00FFB3
73960 +:105BA000AD6D001C94A900323128FFFFAD680010D4
73961 +:105BB00090A70030A5600002A1600004A16700006A
73962 +:105BC00090A30032306200FF0002198210600005CD
73963 +:105BD000240500011065000E0000000003E000082D
73964 +:105BE000A16A00018CD80028354A0080AD780018E1
73965 +:105BF0008CCF0014AD6F00148CCE0030AD6E000859
73966 +:105C00008CC4002CA16A000103E00008AD64000C04
73967 +:105C10008CCD001CAD6D00188CC90014AD6900144A
73968 +:105C20008CC80024AD6800088CC70020AD67000C4C
73969 +:105C30008CC200148C8300700043C82B1320000713
73970 +:105C4000000000008CC20014144CFFE400000000AF
73971 +:105C5000354A008003E00008A16A00018C820070D0
73972 +:105C60000A0000E6000000009089003027BDFFF820
73973 +:105C70008FA8001CA3A900008FA300003C0DFF808B
73974 +:105C800035A2FFFF8CAC002C00625824AFAB0000A3
73975 +:105C9000A100000400C05821A7A000028D06000446
73976 +:105CA00000A048210167C8218FA500000080502175
73977 +:105CB0003C18FF7F032C20263C0E00FF2C8C00019B
73978 +:105CC000370FFFFF35CDFFFF3C02FF0000AFC824B8
73979 +:105CD00000EDC02400C27824000C1DC003236825F9
73980 +:105CE00001F87025AD0D0000AD0E00048D240024D8
73981 +:105CF000AFAD0000AD0400088D2C00202404FFFF90
73982 +:105D0000AD0C000C9547003230E6FFFFAD060010E9
73983 +:105D10009145004830A200FF000219C25060000106
73984 +:105D20008D240034AD0400148D4700388FAA00186C
73985 +:105D300027BD0008AD0B0028AD0A0024AD07001CEC
73986 +:105D4000AD00002CAD00001803E00008AD000020FD
73987 +:105D500027BDFFE0AFB20018AFB10014AFB0001024
73988 +:105D6000AFBF001C9098003000C088213C0D00FFA0
73989 +:105D7000330F007FA0CF0000908E003135ACFFFFC5
73990 +:105D80003C0AFF00A0CE000194A6001EA220000441
73991 +:105D90008CAB00148E29000400A08021016C282403
73992 +:105DA000012A40240080902101052025A62600021A
73993 +:105DB000AE24000426050020262400080E000092D0
73994 +:105DC00024060002924700302605002826240014ED
73995 +:105DD00000071E000003160324060004044000030D
73996 +:105DE0002403FFFF965900323323FFFF0E00009279
73997 +:105DF000AE230010262400248FBF001C8FB2001891
73998 +:105E00008FB100148FB00010240500030000302172
73999 +:105E10000A00009C27BD002027BDFFD8AFB1001CA1
74000 +:105E2000AFB00018AFBF002090A9003024020001DD
74001 +:105E300000E050213123003F00A040218FB00040FE
74002 +:105E40000080882100C04821106200148FA700380C
74003 +:105E5000240B000500A0202100C02821106B001396
74004 +:105E6000020030210E000128000000009225007C75
74005 +:105E700030A400021080000326030030AE00003082
74006 +:105E8000260300348FBF00208FB1001C8FB0001894
74007 +:105E90000060102103E0000827BD00280E0000A7C5
74008 +:105EA000AFB000100A00016F000000008FA3003C9B
74009 +:105EB000010020210120282101403021AFA3001042
74010 +:105EC0000E0000EEAFB000140A00016F00000000E9
74011 +:105ED0003C06800034C20E008C4400108F850044C4
74012 +:105EE000ACA400208C43001803E00008ACA30024FD
74013 +:105EF0003C06800034C20E008C4400148F850044A0
74014 +:105F0000ACA400208C43001C03E00008ACA30024D8
74015 +:105F10009382000C1040001B2483000F2404FFF028
74016 +:105F20000064382410E00019978B00109784000E4D
74017 +:105F30009389000D3C0A601C0A0001AC01644023F7
74018 +:105F400001037021006428231126000231C2FFFFE3
74019 +:105F500030A2FFFF0047302B50C0000E00E4482164
74020 +:105F60008D4D000C31A3FFFF00036400000C2C03D7
74021 +:105F700004A1FFF30000302130637FFF0A0001A479
74022 +:105F80002406000103E00008000000009784000ED2
74023 +:105F900000E448213123FFFF3168FFFF0068382B00
74024 +:105FA00054E0FFF8A783000E938A000D114000050E
74025 +:105FB000240F0001006BC023A380000D03E0000844
74026 +:105FC000A798000E006BC023A38F000D03E000080C
74027 +:105FD000A798000E03E000080000000027BDFFE8BE
74028 +:105FE000AFB000103C10800036030140308BFFFF43
74029 +:105FF00093AA002BAFBF0014A46B000436040E005C
74030 +:106000009488001630C600FF8FA90030A4680006EF
74031 +:10601000AC650008A0660012A46A001AAC670020F4
74032 +:106020008FA5002CA4690018012020210E000198E2
74033 +:10603000AC6500143C021000AE0201788FBF001462
74034 +:106040008FB0001003E0000827BD00188F85000006
74035 +:106050002484000727BDFFF83084FFF83C06800049
74036 +:1060600094CB008A316AFFFFAFAA00008FA900001D
74037 +:10607000012540232507FFFF30E31FFF0064102B9D
74038 +:106080001440FFF700056882000D288034CC4000E2
74039 +:1060900000AC102103E0000827BD00088F8200003B
74040 +:1060A0002486000730C5FFF800A2182130641FFFC6
74041 +:1060B00003E00008AF8400008F87003C8F84004419
74042 +:1060C00027BDFFB0AFB70044AFB40038AFB1002C6C
74043 +:1060D000AFBF0048AFB60040AFB5003CAFB300342F
74044 +:1060E000AFB20030AFB000283C0B80008C8600249B
74045 +:1060F000AD6700808C8A002035670E00356901008D
74046 +:10610000ACEA00108C8800248D2500040000B82122
74047 +:10611000ACE800188CE3001000A688230000A02142
74048 +:10612000ACE300148CE20018ACE2001C122000FE6C
74049 +:1061300000E0B021936C0008118000F40000000022
74050 +:10614000976F001031EEFFFF022E682B15A000EFB5
74051 +:1061500000000000977200103250FFFFAED0000028
74052 +:106160003C0380008C740000329300081260FFFD35
74053 +:106170000000000096D800088EC700043305FFFF1A
74054 +:1061800030B5000112A000E4000000000000000D86
74055 +:1061900030BFA0402419004013F9011B30B4A00007
74056 +:1061A000128000DF000000009373000812600008F6
74057 +:1061B00000000000976D001031ACFFFF00EC202BB9
74058 +:1061C0001080000330AE004011C000D50000000078
74059 +:1061D000A7850040AF87003893630008022028217C
74060 +:1061E000AFB10020146000F527B40020AF60000CB0
74061 +:1061F000978F004031F14000162000022403001662
74062 +:106200002403000E24054007A363000AAF650014B1
74063 +:10621000938A00428F70001431550001001512401E
74064 +:1062200002024825AF690014979F00408F78001440
74065 +:1062300033F9001003194025AF680014979200400D
74066 +:106240003247000810E0016E000000008F67001464
74067 +:106250003C1210003C11800000F27825AF6F001452
74068 +:1062600036230E00946E000A3C0D81002406000EB9
74069 +:1062700031CCFFFF018D2025AF640004A36600022E
74070 +:106280009373000A3406FFFC266B0004A36B000A1C
74071 +:1062900097980040330820001100015F00000000C3
74072 +:1062A0003C05800034A90E00979900409538000CF9
74073 +:1062B00097870040001940423312C00031030003A9
74074 +:1062C00000127B0330F11000006F6825001172038B
74075 +:1062D00001AE6025000C20C0A76400129793004017
74076 +:1062E000936A000A001359823175003C02AA1021FA
74077 +:1062F0002450003CA3700009953F000C33F93FFF88
74078 +:10630000A779001097700012936900090130F821F5
74079 +:1063100027E5000230B900070019C0233308000741
74080 +:10632000A368000B9371000997720012976F001019
74081 +:10633000322700FF8F910038978D004000F218211E
74082 +:10634000006F702101C6602131A6004010C0000519
74083 +:106350003185FFFF00B1102B3C1280001040001768
74084 +:10636000000098210225A82B56A0013E8FA50020F1
74085 +:106370003C048000348A0E008D5300143C068000DB
74086 +:10638000AD5300108D4B001CAD4B0018AD45000007
74087 +:106390008CCD000031AC00081180FFFD34CE0E0022
74088 +:1063A00095C3000800A0882100009021A783004029
74089 +:1063B0008DC6000424130001AF860038976F0010CB
74090 +:1063C00031F5FFFF8E9F000003F1282310A0011F6D
74091 +:1063D000AE85000093620008144000DD000000005C
74092 +:1063E0000E0001E7240400108F900048004028218F
74093 +:1063F0003C023200320600FF000654000142F8253C
74094 +:1064000026090001AF890048ACBF0000937900095C
74095 +:1064100097780012936F000A332800FF3303FFFFC1
74096 +:106420000103382100076C0031EE00FF01AE60254A
74097 +:10643000ACAC00048F840048978B0040316A200088
74098 +:106440001140010AACA4000897640012308BFFFFD2
74099 +:1064500006400108ACAB000C978E004031C5000827
74100 +:1064600014A0000226280006262800023C1F8000F7
74101 +:1064700037E70E0094F900148CE5001C8F670004C8
74102 +:10648000937800023324FFFF330300FFAFA3001013
74103 +:106490008F6F0014AFA800180E0001CBAFAF00142F
74104 +:1064A000240400100E0001FB000000008E9200008A
74105 +:1064B00016400005000000008F7800142403FFBF81
74106 +:1064C0000303A024AF7400148F67000C00F5C821EB
74107 +:1064D000AF79000C9375000816A0000800000000BA
74108 +:1064E00012600006000000008F6800143C0AEFFFF5
74109 +:1064F0003549FFFE0109F824AF7F0014A37300089B
74110 +:106500008FA500200A00034F02202021AED10000F9
74111 +:106510000A00022D3C03800014E0FF1E30BFA040A3
74112 +:106520000E0001900000A0212E9100010237B0253D
74113 +:1065300012C000188FBF00488F87003C24170F003F
74114 +:1065400010F700D43C0680008CD901780720FFFEAC
74115 +:10655000241F0F0010FF00F634CA0E008D560014E1
74116 +:1065600034C7014024080240ACF600048D49001CE9
74117 +:106570003C141000ACE90008A0E00012A4E0001AEE
74118 +:10658000ACE00020A4E00018ACE80014ACD4017822
74119 +:106590008FBF00488FB700448FB600408FB5003CD6
74120 +:1065A0008FB400388FB300348FB200308FB1002C1D
74121 +:1065B0008FB0002803E0000827BD00508F910038FD
74122 +:1065C000978800403C1280000220A821310700403B
74123 +:1065D00014E0FF7C00009821977900108F9200381A
74124 +:1065E0003338FFFF131200A8000020210080A021F3
74125 +:1065F000108000F300A088211620FECE00000000CD
74126 +:106600000A00031F2E9100013C0380008C62017878
74127 +:106610000440FFFE240808008F860000AC68017863
74128 +:106620003C038000946D008A31ACFFFF0186582343
74129 +:10663000256AFFFF31441FFF2C8900081520FFF950
74130 +:10664000000000008F8F0048347040008F83003CB2
74131 +:1066500000E0A021240E0F0025E70001AF870048CD
74132 +:1066600000D03021023488233C08800031F500FF3F
74133 +:10667000106E0005240700019398004233130001B7
74134 +:106680000013924036470001001524003C0A010027
74135 +:10669000008A4825ACC900008F82004830BF003610
74136 +:1066A00030B90008ACC200041320009900FF9825FF
74137 +:1066B00035120E009650000A8F8700003C0F8100B3
74138 +:1066C0003203FFFF24ED000835060140006F60250E
74139 +:1066D0003C0E100031AB1FFF269200062405000E71
74140 +:1066E000ACCC0020026E9825A4C5001AAF8B000028
74141 +:1066F000A4D20018162000083C1080008F89003CAE
74142 +:1067000024020F00512200022417000136730040BA
74143 +:106710000E0001883C10800036060E008CCB001461
74144 +:10672000360A014002402021AD4B00048CC5001CFC
74145 +:10673000AD450008A1550012AD5300140E0001989C
74146 +:106740003C151000AE1501780A000352000000004D
74147 +:10675000936F0009976E0012936D000B31E500FFF7
74148 +:1067600000AE202131AC00FF008C80212602000AFF
74149 +:106770003050FFFF0E0001E7020020218F86004805
74150 +:106780003C0341003C05800024CB0001AF8B004856
74151 +:10679000936A00099769001230C600FF315F00FF5D
74152 +:1067A0003128FFFF03E8382124F900020006C40065
74153 +:1067B0000319782501E37025AC4E00008F6D000CA5
74154 +:1067C00034A40E00948B001401B26025AC4C00047C
74155 +:1067D0008C85001C8F670004936A00023164FFFF00
74156 +:1067E000314900FFAFA900108F680014AFB1001845
74157 +:1067F0000E0001CBAFA800140A0002FD0200202108
74158 +:10680000AF600004A36000029798004033082000A6
74159 +:106810001500FEA300003021A760001297840040FD
74160 +:10682000936B000A3C10800030931F0000135183CB
74161 +:10683000014BA82126A20028A362000936090E00F8
74162 +:10684000953F000C0A000295A77F00108F7000147E
74163 +:10685000360900400E000188AF6900140A0002C921
74164 +:10686000000000000A00034F000020210641FEFA4C
74165 +:10687000ACA0000C8CAC000C3C0D8000018D902570
74166 +:106880000A0002EAACB2000C000090210A0002C526
74167 +:1068900024130001128000073C028000344B0E00DC
74168 +:1068A0009566000830D300401260004900000000E7
74169 +:1068B0003C0680008CD001780600FFFE34C50E0037
74170 +:1068C00094B500103C03050034CC014032B8FFFF02
74171 +:1068D00003039025AD92000C8CAF0014240D200012
74172 +:1068E0003C041000AD8F00048CAE001CAD8E00087F
74173 +:1068F000A1800012A580001AAD800020A58000189C
74174 +:10690000AD8D0014ACC401780A0003263C0680005B
74175 +:106910008F9F0000351801402692000227F90008D9
74176 +:1069200033281FFFA71200180A000391AF88000048
74177 +:106930003C02800034450140ACA0000C1280001BDA
74178 +:1069400034530E0034510E008E370010ACB70004E3
74179 +:106950008E2400183C0B8000ACA400083570014068
74180 +:1069600024040040A20000128FBF0048A600001AB5
74181 +:106970008FB70044AE0000208FB60040A60000187C
74182 +:106980008FB5003CAE0400148FB400388FB30034D0
74183 +:106990008FB200308FB1002C8FB000283C02100065
74184 +:1069A00027BD005003E00008AD6201788E66001438
74185 +:1069B000ACA600048E64001C0A00042A3C0B800074
74186 +:1069C0000E0001902E9100010A0003200237B0252D
74187 +:1069D000000000000000000D00000000240003691A
74188 +:1069E0000A0004013C06800027BDFFD8AFBF00208D
74189 +:1069F0003C0980003C1F20FFAFB200183C0760003C
74190 +:106A000035320E002402001037F9FFFDACE23008E9
74191 +:106A1000AFB3001CAFB10014AFB00010AE5900000E
74192 +:106A20000000000000000000000000000000000066
74193 +:106A3000000000003C1800FF3713FFFDAE530000BC
74194 +:106A40003C0B60048D7050002411FF7F3C0E00024F
74195 +:106A50000211782435EC380C35CD0109ACED4C1819
74196 +:106A6000240A0009AD6C50008CE80438AD2A0008F7
74197 +:106A7000AD2000148CE54C1C3106FFFF38C42F718B
74198 +:106A800000051E023062000F2486C0B310400007CC
74199 +:106A9000AF8200088CE54C1C3C09001F3528FC0027
74200 +:106AA00000A81824000321C2AF8400048CF1080858
74201 +:106AB0003C0F57092412F0000232702435F0001008
74202 +:106AC00001D0602601CF68262DAA00012D8B000180
74203 +:106AD000014B382550E00009A380000C3C1F601CCE
74204 +:106AE0008FF8000824190001A399000C33137C00CF
74205 +:106AF000A7930010A780000EA380000DAF80004870
74206 +:106B000014C00003AF8000003C066000ACC0442C01
74207 +:106B10000E0005B93C1080000E000F1A361101005E
74208 +:106B20003C12080026523DD03C13080026733E500C
74209 +:106B30008E03000038640001308200011440FFFC25
74210 +:106B40003C0B800A8E2600002407FF8024C90240E7
74211 +:106B5000312A007F014B402101272824AE06002066
74212 +:106B6000AF880044AE0500243C048000AF86003CA2
74213 +:106B70008C8C01780580FFFE24180800922F0008F5
74214 +:106B8000AC980178A38F0042938E004231CD000172
74215 +:106B900011A0000F24050D0024DFF8002FF90301D8
74216 +:106BA0001320001C000629C224A4FFF00004104298
74217 +:106BB000000231400E00020200D2D8213C02400007
74218 +:106BC0003C068000ACC201380A0004A000000000AE
74219 +:106BD00010C50023240D0F0010CD00273C1F800896
74220 +:106BE00037F9008093380000240E0050330F00FF67
74221 +:106BF00015EEFFF33C0240000E000A3600000000D4
74222 +:106C00003C0240003C068000ACC201380A0004A0EF
74223 +:106C1000000000008F83000400A3402B1500000B30
74224 +:106C20008F8B0008006B50212547FFFF00E5482BA4
74225 +:106C30001520000600A36023000C19400E0002027C
74226 +:106C40000073D8210A0004C43C0240000000000D7B
74227 +:106C50000E000202000000000A0004C43C024000D2
74228 +:106C60003C1B0800277B3F500E0002020000000082
74229 +:106C70000A0004C43C0240003C1B0800277B3F7014
74230 +:106C80000E000202000000000A0004C43C024000A2
74231 +:106C90003C0660043C09080025290104ACC9502CBD
74232 +:106CA0008CC850003C0580003C0200023507008083
74233 +:106CB000ACC750003C040800248415A43C03080021
74234 +:106CC0002463155CACA50008ACA2000C3C010800D4
74235 +:106CD000AC243D603C010800AC233D6403E00008A7
74236 +:106CE0002402000100A030213C1C0800279C3D68C4
74237 +:106CF0003C0C04003C0B0002008B3826008C402624
74238 +:106D00002CE200010007502B2D050001000A4880ED
74239 +:106D10003C03080024633D60004520250123182121
74240 +:106D20001080000300001021AC6600002402000166
74241 +:106D300003E00008000000003C1C0800279C3D68A0
74242 +:106D40003C0B04003C0A0002008A3026008B3826E7
74243 +:106D50002CC200010006482B2CE5000100094080F0
74244 +:106D60003C03080024633D600045202501031821F1
74245 +:106D700010800005000010213C0C0800258C155CDB
74246 +:106D8000AC6C00002402000103E0000800000000D9
74247 +:106D90003C0900023C08040000883026008938269F
74248 +:106DA0002CC30001008028212CE400010083102561
74249 +:106DB0001040000B000030213C1C0800279C3D685F
74250 +:106DC0003C0A80008D4E00082406000101CA682597
74251 +:106DD000AD4D00088D4C000C01855825AD4B000CC5
74252 +:106DE00003E0000800C010213C1C0800279C3D68FF
74253 +:106DF0003C0580008CA6000C000420272402000122
74254 +:106E000000C4182403E00008ACA3000C3C020002FC
74255 +:106E10001082000B3C0560003C0704001087000353
74256 +:106E20000000000003E00008000000008CA908D06A
74257 +:106E3000240AFFFD012A402403E00008ACA808D082
74258 +:106E40008CA408D02406FFFE0086182403E0000866
74259 +:106E5000ACA308D03C05601A34A600108CC3008097
74260 +:106E600027BDFFF88CC50084AFA3000093A40000E9
74261 +:106E70002402000110820003AFA5000403E0000813
74262 +:106E800027BD000893A7000114E0001497AC00028E
74263 +:106E900097B800023C0F8000330EFFFC01CF682141
74264 +:106EA000ADA50000A3A000003C0660008CC708D080
74265 +:106EB0002408FFFE3C04601A00E82824ACC508D072
74266 +:106EC0008FA300048FA200003499001027BD000892
74267 +:106ED000AF22008003E00008AF2300843C0B800059
74268 +:106EE000318AFFFC014B48218D2800000A00057DF6
74269 +:106EF000AFA8000427BDFFE8AFBF00103C1C08008E
74270 +:106F0000279C3D683C0580008CA4000C8CA20004EA
74271 +:106F10003C0300020044282410A0000A00A3182407
74272 +:106F20003C0604003C0400021460000900A6102482
74273 +:106F30001440000F3C0404000000000D3C1C08003D
74274 +:106F4000279C3D688FBF001003E0000827BD001894
74275 +:106F50003C0208008C423D600040F809000000003F
74276 +:106F60003C1C0800279C3D680A0005A68FBF001046
74277 +:106F70003C0208008C423D640040F809000000001B
74278 +:106F80000A0005AC00000000000411C003E0000886
74279 +:106F9000244202403C04080024843FB42405001A23
74280 +:106FA0000A00009C0000302127BDFFE0AFB00010B8
74281 +:106FB0003C108000AFBF0018AFB1001436110100C3
74282 +:106FC000922200090E0005B63044007F8E3F00007B
74283 +:106FD0008F89003C3C0F008003E26021258800403F
74284 +:106FE0000049F821240DFF80310E00783198007897
74285 +:106FF00035F9000135F100020319382501D1482582
74286 +:10700000010D302403ED5824018D2824240A00406A
74287 +:1070100024040080240300C0AE0B0024AE0008103E
74288 +:10702000AE0A0814AE040818AE03081CAE05080426
74289 +:10703000AE070820AE060808AE0908243609090084
74290 +:107040009539000C3605098033ED007F3338FFFF9A
74291 +:10705000001889C0AE110800AE0F0828952C000C4E
74292 +:107060008FBF00188FB10014318BFFFF000B51C090
74293 +:10707000AE0A002C8CA400508FB000108CA3003CF2
74294 +:107080008D2700048CA8001C8CA600383C0E800ABA
74295 +:1070900001AE102127BD0020AF820044AF84005014
74296 +:1070A000AF830054AF87004CAF88005C03E000085A
74297 +:1070B000AF8600603C09080091293FD924A800024E
74298 +:1070C0003C05110000093C0000E8302500C51825EA
74299 +:1070D00024820008AC83000003E00008AC800004B8
74300 +:1070E0003C098000352309009128010B906A0011AA
74301 +:1070F0002402002800804821314700FF00A07021B1
74302 +:1071000000C068213108004010E20002340C86DD26
74303 +:10711000240C08003C0A800035420A9A944700007B
74304 +:10712000354B0A9C35460AA030F9FFFFAD39000007
74305 +:107130008D780000354B0A8024040001AD3800042E
74306 +:107140008CCF0000AD2F00089165001930A300031B
74307 +:107150001064009028640002148000AF240500022F
74308 +:107160001065009E240F0003106F00B435450AA47B
74309 +:10717000240A0800118A0048000000005100003D68
74310 +:107180003C0B80003C0480003483090090670012AF
74311 +:1071900030E200FF004D7821000FC8802724000155
74312 +:1071A0003C0A8000354F090091E50019354C0980F3
74313 +:1071B0008D87002830A300FF0003150000475825E5
74314 +:1071C0000004C4003C19600001793025370806FF2F
74315 +:1071D000AD260000AD2800048DEA002C25280028EB
74316 +:1071E000AD2A00088DEC0030AD2C000C8DE500348C
74317 +:1071F000AD2500108DE400383C05800034AC093C1E
74318 +:10720000AD2400148DE3001CAD2300188DE7002091
74319 +:10721000AD27001C8DE20024AD2200208DF900284E
74320 +:1072200034A20100AD3900248D830000AD0E0004AE
74321 +:1072300034B90900AD0300008C47000C250200148E
74322 +:10724000AD070008932B00123C04080090843FD83F
74323 +:10725000AD000010317800FF030D302100064F0013
74324 +:1072600000047C00012F702535CDFFFC03E00008F1
74325 +:10727000AD0D000C35780900930600123C0508009E
74326 +:1072800094A53FC830C800FF010D5021000A60805E
74327 +:107290000A00063C018520211500005B000000006B
74328 +:1072A0003C08080095083FCE3C06080094C63FC83D
74329 +:1072B000010610213C0B800035790900933800113C
74330 +:1072C000932A001935660A80330800FF94CF002AFC
74331 +:1072D00000086082314500FF978A0058000C1E00AC
74332 +:1072E000000524003047FFFF006410250047C0253B
74333 +:1072F00001EA30213C0B4000030B402500066400EE
74334 +:10730000AD280000AD2C0004932500183C030006B6
74335 +:107310002528001400053E0000E31025AD220008DA
74336 +:107320008F24002C3C05800034AC093CAD24000CBB
74337 +:107330008F38001C34A20100254F0001AD38001029
74338 +:107340008D830000AD0E000431EB7FFFAD03000024
74339 +:107350008C47000C34B90900A78B0058AD07000812
74340 +:10736000932B00123C04080090843FD8250200149F
74341 +:10737000317800FF030D302100064F0000047C002F
74342 +:10738000012F702535CDFFFCAD00001003E0000893
74343 +:10739000AD0D000C3C02080094423FD23C050800B1
74344 +:1073A00094A53FC835440AA43C07080094E73FC4AD
74345 +:1073B000948B00000045C8210327C023000B1C004C
74346 +:1073C0002706FFF200665025AD2A000CAD20001004
74347 +:1073D000AD2C00140A00063025290018354F0AA4E8
74348 +:1073E00095E50000956400280005140000043C00A9
74349 +:1073F0003459810000EC5825AD39000CAD2B00103C
74350 +:107400000A000630252900143C0C0800958C3FCE5C
74351 +:107410000A000681258200015460FF56240A0800F4
74352 +:1074200035580AA49706000000061C00006C502581
74353 +:10743000AD2A000C0A000630252900103C03080084
74354 +:1074400094633FD23C07080094E73FC83C0F080014
74355 +:1074500095EF3FC494A4000095790028006710219F
74356 +:10746000004F582300041C00001934002578FFEE5B
74357 +:1074700000D87825346A8100AD2A000CAD2F0010A9
74358 +:10748000AD200014AD2C00180A0006302529001C80
74359 +:1074900003E00008240207D027BDFFE0AFB20018C8
74360 +:1074A000AFB10014AFB00010AFBF001C0E00007CE5
74361 +:1074B000008088218F8800548F87004C3C0580080D
74362 +:1074C00034B20080011128213C1080002402008089
74363 +:1074D000240300C000A72023AE0208183C06800841
74364 +:1074E000AE03081C18800004AF850054ACC500042E
74365 +:1074F0008CC90004AF89004C1220000936040980B1
74366 +:107500000E0006F800000000924C00278E0B00745D
74367 +:1075100001825004014B3021AE46000C3604098034
74368 +:107520008C8E001C8F8F005C01CF682319A0000493
74369 +:107530008FBF001C8C90001CAF90005C8FBF001CA4
74370 +:107540008FB200188FB100148FB000100A00007EB7
74371 +:1075500027BD00208F8600508F8300548F82004CFF
74372 +:107560003C05800834A40080AC860050AC83003C0D
74373 +:1075700003E00008ACA200043C0308008C63005444
74374 +:1075800027BDFFF8308400FF2462000130A500FF12
74375 +:107590003C010800AC22005430C600FF3C078000CC
74376 +:1075A0008CE801780500FFFE3C0C7FFFA3A40003DC
74377 +:1075B0008FAA0000358BFFFF014B4824000627C02F
74378 +:1075C00001244025AFA8000034E201009043000AE6
74379 +:1075D000A3A000023C1980FFA3A300018FAF00000D
74380 +:1075E00030AE007F3738FFFF01F86024000E6E00D8
74381 +:1075F0003C0A002034E50140018D58253549200022
74382 +:107600002406FF803C04100027BD0008ACAB000C32
74383 +:10761000ACA90014A4A00018A0A6001203E0000862
74384 +:10762000ACE40178308800FF30A700FF3C03800005
74385 +:107630008C6201780440FFFE3C0C8000358A0A0011
74386 +:107640008D4B00203584014035850980AC8B0004CA
74387 +:107650008D4900240007302B00061540AC89000836
74388 +:10766000A088001090A3004CA083002D03E0000828
74389 +:10767000A480001827BDFFE8308400FFAFBF0010D2
74390 +:107680000E00075D30A500FF8F8300548FBF0010F0
74391 +:107690003C06800034C50140344700402404FF907C
74392 +:1076A0003C02100027BD0018ACA3000CA0A40012DF
74393 +:1076B000ACA7001403E00008ACC2017827BDFFE0CE
74394 +:1076C0003C088008AFBF001CAFB20018AFB1001477
74395 +:1076D000AFB00010351000808E0600183C07800007
74396 +:1076E000309200FF00C72025AE0400180E00007C79
74397 +:1076F00030B100FF92030005346200080E00007EE6
74398 +:10770000A2020005024020210E000771022028215C
74399 +:10771000024020218FBF001C8FB200188FB10014CF
74400 +:107720008FB0001024050005240600010A0007326E
74401 +:1077300027BD00203C05800034A309809066000826
74402 +:1077400030C200081040000F3C0A01013549080A08
74403 +:10775000AC8900008CA80074AC8800043C070800C9
74404 +:1077600090E73FD830E5001050A00008AC8000083A
74405 +:107770003C0D800835AC00808D8B0058AC8B000828
74406 +:107780002484000C03E00008008010210A0007B5E3
74407 +:107790002484000C27BDFFE83C098000AFB0001036
74408 +:1077A000AFBF00143526098090C8000924020006E6
74409 +:1077B00000A05821310300FF3527090000808021F7
74410 +:1077C000240500041062007B2408000294CF005CB2
74411 +:1077D0003C0E020431EDFFFF01AE6025AE0C00004F
74412 +:1077E00090CA00083144002010800008000000000A
74413 +:1077F00090C2004E3C1F010337F90300305800FFD0
74414 +:107800000319302524050008AE06000490F9001184
74415 +:1078100090E6001290E40011333800FF00187082E7
74416 +:1078200030CF00FF01CF5021014B6821308900FF8C
74417 +:1078300031AAFFFF39230028000A60801460002C61
74418 +:10784000020C482390E400123C198000372F0100FD
74419 +:10785000308C00FF018B1821000310800045F821B7
74420 +:10786000001F8400360706FFAD270004373F0900DC
74421 +:1078700093EC001193EE0012372609800005C082B8
74422 +:107880008DE4000C8CC5003431CD00FF01AB10211C
74423 +:107890000058182100A4F8230008840000033F00CA
74424 +:1078A00000F0302533F9FFFF318F00FC00D970253F
74425 +:1078B0000158202101E9682100045080ADAE000C80
74426 +:1078C0000E00007C012A80213C088008240B000463
74427 +:1078D000350500800E00007EA0AB000902001021DB
74428 +:1078E0008FBF00148FB0001003E0000827BD001800
74429 +:1078F00090EC001190E300193C18080097183FCE57
74430 +:10790000318200FF0002F882307000FF001FCE00BD
74431 +:1079100000103C000327302500D870253C0F4000A4
74432 +:1079200001CF68253C198000AD2D0000373F0900CC
74433 +:1079300093EC001193EE0012372F010037260980D7
74434 +:107940000005C0828DE4000C8CC5003431CD00FFF1
74435 +:1079500001AB10210058182100A4F823000884006E
74436 +:1079600000033F0000F0302533F9FFFF318F00FCAA
74437 +:1079700000D970250158202101E9682100045080B8
74438 +:10798000ADAE000C0E00007C012A80213C0880086E
74439 +:10799000240B0004350500800E00007EA0AB00091A
74440 +:1079A000020010218FBF00148FB0001003E0000808
74441 +:1079B00027BD00180A0007C72408001227BDFFD002
74442 +:1079C0003C038000AFB60028AFB50024AFB4002060
74443 +:1079D000AFB10014AFBF002CAFB3001CAFB20018A2
74444 +:1079E000AFB000103467010090E6000B309400FF48
74445 +:1079F00030B500FF30C200300000B02110400099C7
74446 +:107A000000008821346409809088000800082E0056
74447 +:107A100000051E03046000C0240400048F86005487
74448 +:107A20003C010800A0243FD83C0C8000AD800048F9
74449 +:107A30003C048000348E010091CD000B31A5002064
74450 +:107A400010A000073C078000349309809272000860
74451 +:107A50000012860000107E0305E000C43C1F800871
74452 +:107A600034EC0100918A000B34EB09809169000825
74453 +:107A7000314400400004402B3123000800C8982303
74454 +:107A80001460000224120003000090213C108000CA
74455 +:107A900036180A8036040900970E002C90830011D6
74456 +:107AA0009089001293050018307F00FF312800FFF5
74457 +:107AB000024810210002C880930D0018033F78216E
74458 +:107AC00001F1302130B100FF00D11821A78E0058FC
74459 +:107AD0003C010800A4263FCE3C010800A4233FD06F
74460 +:107AE00015A00002000000000000000D920B010B29
74461 +:107AF0003065FFFF3C010800A4233FD2316A0040FB
74462 +:107B00003C010800A4203FC83C010800A4203FC459
74463 +:107B10001140000224A4000A24A4000B3091FFFFAE
74464 +:107B20000E0001E7022020219206010B3C0C080008
74465 +:107B3000958C3FD2004020210006698231A70001C8
74466 +:107B40000E00060101872821004020210260282123
74467 +:107B50000E00060C024030210E0007A1004020213B
74468 +:107B600016C00069004020219212010B32560040DD
74469 +:107B700012C000053C0500FF8C93000034AEFFFFEF
74470 +:107B8000026E8024AC9000000E0001FB0220202138
74471 +:107B90003C0F080091EF3FD831F10003122000168E
74472 +:107BA0003C1380088F8200543C09800835280080EF
74473 +:107BB000245F0001AD1F003C3C0580088CB9000427
74474 +:107BC00003E02021033FC0231B000002AF9F0054AD
74475 +:107BD0008CA400040E0006F8ACA400043C0780004E
74476 +:107BE0008CEB00743C04800834830080004B5021EF
74477 +:107BF000AC6A000C3C1380083670008002802021A3
74478 +:107C000002A02821A200006B0E00075D3C1480003A
74479 +:107C10008F920054368C0140AD92000C8F86004844
74480 +:107C20003C151000344D000624D60001AF960048E4
74481 +:107C30008FBF002CA18600128FB60028AD8D0014D6
74482 +:107C40008FB3001CAE9501788FB200188FB5002459
74483 +:107C50008FB400208FB100148FB0001003E0000833
74484 +:107C600027BD003034640980908F0008000F760033
74485 +:107C7000000E6E0305A00033347F090093F8001B4B
74486 +:107C8000241900103C010800A0393FD8331300022A
74487 +:107C90001260FF678F8600548F8200601446FF6574
74488 +:107CA0003C0480000E00007C000000003C048008C2
74489 +:107CB0003485008090A8000924060016310300FFD7
74490 +:107CC0001066000D0000000090AB00093C070800A2
74491 +:107CD00090E73FD824090008316400FF34EA00012E
74492 +:107CE0003C010800A02A3FD81089002F240C000A6C
74493 +:107CF000108C00282402000C0E00007E0000000002
74494 +:107D00000A0008608F8600540E0007B9024028213F
74495 +:107D10000A0008AE004020213C0B8008356A008034
74496 +:107D20008D4600548CE9000C1120FF3DAF860054B5
74497 +:107D3000240700143C010800A0273FD80A00085F70
74498 +:107D40003C0C800090910008241200023C010800C5
74499 +:107D5000A0323FD8323000201200000B2416000160
74500 +:107D60008F8600540A0008602411000837F800804C
74501 +:107D70008F020038AFE200048FF90004AF19003C15
74502 +:107D80000A00086C3C0780008F8600540A000860D7
74503 +:107D900024110004A0A200090E00007E00000000D3
74504 +:107DA0000A0008608F860054240200140A00093A71
74505 +:107DB000A0A2000927BDFFE8AFB000103C10800072
74506 +:107DC000AFBF001436020100904400090E00075DA9
74507 +:107DD000240500013C0480089099000E3483008043
74508 +:107DE000909F000F906F00269089000A33F800FFE3
74509 +:107DF00000196E000018740031EC00FF01AE502530
74510 +:107E0000000C5A00014B3825312800FF3603014091
74511 +:107E10003445600000E830252402FF813C04100056
74512 +:107E2000AC66000C8FBF0014AC650014A062001299
74513 +:107E3000AE0401788FB0001003E0000827BD0018E1
74514 +:107E400027BDFFE8308400FFAFBF00100E00075DC4
74515 +:107E500030A500FF3C05800034A4014034470040B9
74516 +:107E60002406FF92AC870014A08600128F83005472
74517 +:107E70008FBF00103C02100027BD0018AC83000C1F
74518 +:107E800003E00008ACA2017827BDFFD8AFB0001016
74519 +:107E9000308400FF30B000FF3C058000AFB100141B
74520 +:107EA000AFBF0020AFB3001CAFB20018000410C277
74521 +:107EB00034A60100320300023051000114600007B3
74522 +:107EC00090D200093C098008353300809268000593
74523 +:107ED0003107000810E0000C308A00100240202119
74524 +:107EE0000E00078302202821240200018FBF0020FA
74525 +:107EF0008FB3001C8FB200188FB100148FB0001028
74526 +:107F000003E0000827BD00281540003434A50A000E
74527 +:107F10008CB800248CAF0008130F004B00003821F0
74528 +:107F20003C0D800835B30080926C00682406000286
74529 +:107F3000318B00FF116600843C06800034C20100D2
74530 +:107F40009263004C90590009307F00FF53F9000400
74531 +:107F50003213007C10E00069000000003213007C46
74532 +:107F60005660005C0240202116200009320D0001FD
74533 +:107F70003C0C800035840100358B0A008D6500249F
74534 +:107F80008C86000414A6FFD900001021320D0001D8
74535 +:107F900011A0000E024020213C1880003710010083
74536 +:107FA0008E0F000C8F8E005011EE000800000000B4
74537 +:107FB0000E000843022028218E19000C3C1F800867
74538 +:107FC00037F00080AE190050024020210E000771EA
74539 +:107FD000022028210A00098F240200013C05080024
74540 +:107FE0008CA5006424A400013C010800AC240064BA
74541 +:107FF0001600000D00000000022028210E0007716D
74542 +:1080000002402021926E0068240C000231CD00FF56
74543 +:1080100011AC0022024020210E00094100000000A6
74544 +:108020000A00098F240200010E00007024040001E0
74545 +:10803000926B0025020B30250E00007EA266002503
74546 +:108040000A0009D3022028218E6200188CDF000468
74547 +:108050008CB9002400021E0217F9FFB13065007FC1
74548 +:108060009268004C264400013093007F1265004066
74549 +:10807000310300FF1464FFAB3C0D8008264700016C
74550 +:1080800030F1007F30E200FF1225000B24070001D1
74551 +:10809000004090210A00099C2411000124050004DD
74552 +:1080A0000E000732240600010E0009410000000006
74553 +:1080B0000A00098F240200012405FF8002452024C4
74554 +:1080C00000859026324200FF004090210A00099C62
74555 +:1080D000241100010E00084302202821320700303D
74556 +:1080E00010E0FFA132100082024020210E00078321
74557 +:1080F000022028210A00098F240200018E6900183D
74558 +:108100000240202102202821012640250E0009647A
74559 +:10811000AE6800189264004C240500032406000198
74560 +:108120000E000732308400FF0E00007024040001AE
74561 +:1081300092710025021150250E00007EA26A0025D2
74562 +:108140000A00098F240200018E6F00183C1880007D
74563 +:108150000240202101F87025022028210E0007711D
74564 +:10816000AE6E00189264004C0A000A1B240500043D
74565 +:10817000324A0080394900801469FF6A3C0D80084A
74566 +:108180000A0009F42647000127BDFFC0AFB0001860
74567 +:108190003C108000AFBF0038AFB70034AFB600303E
74568 +:1081A000AFB5002CAFB40028AFB30024AFB20020AD
74569 +:1081B0000E0005BEAFB1001C360201009045000B59
74570 +:1081C0000E00097690440008144000E78FBF003885
74571 +:1081D0003C08800835070080A0E0006B3606098067
74572 +:1081E00090C50000240300503C17080026F73F907C
74573 +:1081F00030A400FF3C13080026733FA01083000347
74574 +:108200003C1080000000B82100009821241F0010BD
74575 +:108210003611010036120A00361509808E580024E6
74576 +:108220008E3400048EAF00208F8C00543C01080077
74577 +:10823000A03F3FD836190A80972B002C8EF60000FD
74578 +:10824000932A00180298702301EC68233C0108006F
74579 +:10825000AC2E3FB43C010800AC2D3FB83C010800F7
74580 +:10826000AC2C3FDCA78B005802C0F809315400FF4A
74581 +:1082700030490002152000E930420001504000C49E
74582 +:108280009227000992A90008312800081500000271
74583 +:10829000241500030000A8213C0A80003543090092
74584 +:1082A00035440A008C8D00249072001190700012E9
74585 +:1082B000907F0011325900FF321100FF02B11021EE
74586 +:1082C0000002C08033EF00FF0319B021028F70213C
74587 +:1082D00002D4602125CB00103C010800A4363FCE1B
74588 +:1082E0003C010800AC2D3FE03C010800A42C3FD02D
74589 +:1082F0003C010800A42B3FCC3556010035540980C1
74590 +:1083000035510E008F8700548F89005C8E850020C8
74591 +:1083100024080006012730233C010800AC283FD484
74592 +:1083200000A7282304C000B50000902104A000B3DA
74593 +:1083300000C5502B114000B5000000003C010800B2
74594 +:10834000AC263FB88E6200000040F8090000000033
74595 +:108350003046000214C0007400408021304B000100
74596 +:10836000556000118E6200043C0D08008DAD3FBCCD
74597 +:108370003C0EC0003C04800001AE6025AE2C000025
74598 +:108380008C980000330F000811E0FFFD0000000092
74599 +:10839000963F000824120001A79F00408E39000478
74600 +:1083A000AF9900388E6200040040F8090000000018
74601 +:1083B0000202802532030002146000B300000000B6
74602 +:1083C0003C09080095293FC43C06080094C63FD0EC
74603 +:1083D0003C0A0800954A3FC63C0708008CE73FBCB2
74604 +:1083E000012670213C0308008C633FE03C08080034
74605 +:1083F00095083FDA01CA20218ED9000C00E9282116
74606 +:10840000249F000200A878210067C02133E4FFFF09
74607 +:10841000AF9900503C010800AC383FE03C01080037
74608 +:10842000A42F3FC83C010800A42E3FD20E0001E754
74609 +:10843000000000008F8D0048004020213C01080012
74610 +:10844000A02D3FD98E62000825AC0001AF8C0048FA
74611 +:108450000040F809000000008F85005402A0302180
74612 +:108460000E00060C004020210E0007A10040202134
74613 +:108470008E6B000C0160F809004020213C0A0800C6
74614 +:10848000954A3FD23C06080094C63FC601464821A3
74615 +:10849000252800020E0001FB3104FFFF3C05080007
74616 +:1084A0008CA53FB43C0708008CE73FBC00A7202305
74617 +:1084B0003C010800AC243FB414800006000000001A
74618 +:1084C0003C0208008C423FD4344B00403C01080081
74619 +:1084D000AC2B3FD4124000438F8E00448E2D0010F1
74620 +:1084E0008F920044AE4D00208E2C0018AE4C00241C
74621 +:1084F0003C04080094843FC80E0006FA0000000007
74622 +:108500008F9F00548E6700103C010800AC3F3FDC99
74623 +:1085100000E0F809000000003C1908008F393FB462
74624 +:108520001720FF798F870054979300583C11800ED5
74625 +:10853000321601000E000729A633002C16C0004594
74626 +:10854000320300105460004C8EE5000432080040F5
74627 +:108550005500001D8EF000088EE4000C0080F80924
74628 +:10856000000000008FBF00388FB700348FB6003096
74629 +:108570008FB5002C8FB400288FB300248FB2002059
74630 +:108580008FB1001C8FB0001803E0000827BD004029
74631 +:108590008F86003C36110E0000072E0000A6202515
74632 +:1085A000AE0400808E4300208E500024AFA3001044
74633 +:1085B000AE2300148FB20010AE320010AE30001C9B
74634 +:1085C0000A000A75AE3000180200F8090000000029
74635 +:1085D0008EE4000C0080F809000000000A000B2E59
74636 +:1085E0008FBF003824180001240F0001A5C000200F
74637 +:1085F000A5D800220A000B10ADCF00243C010800D2
74638 +:10860000AC203FB80A000AA68E6200003C010800B8
74639 +:10861000AC253FB80A000AA68E6200009224000929
74640 +:108620000E000771000028218FBF00388FB700347B
74641 +:108630008FB600308FB5002C8FB400288FB3002484
74642 +:108640008FB200208FB1001C8FB0001803E000082B
74643 +:1086500027BD00403C1480009295010900002821AC
74644 +:108660000E00084332A400FF320300105060FFB830
74645 +:10867000320800408EE5000400A0F8090000000068
74646 +:108680000A000B28320800405240FFA89793005878
74647 +:108690008E3400148F930044AE7400208E35001C7D
74648 +:1086A000AE7500240A000B1F979300588F820014A8
74649 +:1086B0000004218003E00008008210213C078008AC
74650 +:1086C00034E200809043006900804021106000097E
74651 +:1086D0003C0401003C0708008CE73FDC8F8300303E
74652 +:1086E00000E32023048000089389001C14E30003A6
74653 +:1086F0000100202103E00008008010213C0401005B
74654 +:1087000003E00008008010211120000B00673823CF
74655 +:108710003C0D800035AC0980918B007C316A0002F1
74656 +:10872000114000202409003400E9702B15C0FFF12E
74657 +:108730000100202100E938232403FFFC00A3C82402
74658 +:1087400000E3C02400F9782B15E0FFEA030820219C
74659 +:1087500030C400030004102314C000143049000387
74660 +:108760000000302100A9782101E6702100EE682B7D
74661 +:1087700011A0FFE03C0401002D3800010006C82BC9
74662 +:10878000010548210319382414E0FFDA2524FFFCF1
74663 +:108790002402FFFC00A218240068202103E0000846
74664 +:1087A000008010210A000B9E240900303C0C800040
74665 +:1087B0003586098090CB007C316A00041540FFE9C2
74666 +:1087C000240600040A000BAD000030213C03080021
74667 +:1087D0008C63005C8F82001827BDFFE0AFBF0018DC
74668 +:1087E000AFB1001410620005AFB00010000329C043
74669 +:1087F00024A40280AF840014AF8300183C108000D2
74670 +:1088000036020A0094450032361101000E000B7F3B
74671 +:1088100030A43FFF8E240000241FFF803C11008005
74672 +:108820000082C021031F60243309007F000CC9406F
74673 +:1088300003294025330E0078362F00033C0D10002D
74674 +:10884000010D502501CF5825AE0C002836080980AF
74675 +:10885000AE0C080CAE0B082CAE0A08309103006970
74676 +:108860003C06800C0126382110600006AF870034DA
74677 +:108870008D09003C8D03006C0123382318E0008231
74678 +:10888000000000003C0B8008356A00803C1080002E
74679 +:10889000A1400069360609808CC200383C06800081
74680 +:1088A00034C50A0090A8003C310C00201180001A49
74681 +:1088B000AF820030240D00013C0E800035D10A004B
74682 +:1088C000A38D001CAF8000248E2400248F850024FB
74683 +:1088D000240D0008AF800020AF8000283C01080074
74684 +:1088E000A42D3FC63C010800A4203FDA0E000B83F4
74685 +:1088F000000030219228003C8FBF00188FB1001477
74686 +:108900008FB0001000086142AF82002C27BD00200C
74687 +:1089100003E000083182000190B80032240E00010B
74688 +:10892000330F00FF000F2182108E00412419000236
74689 +:108930001099006434C40AC03C03800034640A0007
74690 +:108940008C8F002415E0001E34660900909F0030D3
74691 +:108950002418000533F9003F1338004E24030001AA
74692 +:108960008F860020A383001CAF860028AF860024DA
74693 +:108970003C0E800035D10A008E2400248F8500240F
74694 +:10898000240D00083C010800A42D3FC63C0108004E
74695 +:10899000A4203FDA0E000B83000000009228003C68
74696 +:1089A0008FBF00188FB100148FB000100008614213
74697 +:1089B000AF82002C27BD002003E0000831820001B7
74698 +:1089C0008C8A00088C8B00248CD000643C0E8000C4
74699 +:1089D00035D10A00014B2823AF900024A380001C4E
74700 +:1089E000AF8500288E2400248F8600208F850024E8
74701 +:1089F000240D00083C010800A42D3FC63C010800DE
74702 +:108A0000A4203FDA0E000B83000000009228003CF7
74703 +:108A10008FBF00188FB100148FB0001000086142A2
74704 +:108A2000AF82002C27BD002003E000083182000146
74705 +:108A300090A200303051003F5224002834C50AC0B3
74706 +:108A40008CB000241600002234CB09008CA600480C
74707 +:108A50003C0A7FFF3545FFFF00C510243C0E800017
74708 +:108A6000AF82002035C509008F8800208CAD0060E2
74709 +:108A7000010D602B15800002010020218CA40060F4
74710 +:108A80000A000C22AF8400208D02006C0A000BFC4F
74711 +:108A90003C0680008C8200488F8600203C097FFFC6
74712 +:108AA0003527FFFF004788243C0480082403000189
74713 +:108AB000AF910028AC80006CA383001C0A000C302E
74714 +:108AC000AF8600248C9F00140A000C22AF9F002068
74715 +:108AD0008D6200680A000C6C3C0E800034C4098072
74716 +:108AE0008C8900708CA300140123382B10E0000443
74717 +:108AF000000000008C8200700A000C6C3C0E8000AC
74718 +:108B00008CA200140A000C6C3C0E80008F8500249F
74719 +:108B100027BDFFE0AFBF0018AFB1001414A00008DC
74720 +:108B2000AFB000103C04800034870A0090E60030AB
74721 +:108B30002402000530C3003F106200B934840900EC
74722 +:108B40008F91002000A080213C048000348E0A0018
74723 +:108B50008DCD00043C0608008CC63FB831A73FFF0E
74724 +:108B600000E6602B5580000100E03021938F001C4F
74725 +:108B700011E0007800D0282B349F098093F9007C05
74726 +:108B800033380002130000792403003400C3102B93
74727 +:108B9000144000D90000000000C3302300D0282B6F
74728 +:108BA0003C010800A4233FC414A0006E0200182159
74729 +:108BB0003C0408008C843FB40064402B5500000145
74730 +:108BC000006020213C05800034A90A00912A003C65
74731 +:108BD0003C010800AC243FBC31430020146000037A
74732 +:108BE0000000482134AB0E008D6900188F88002CDE
74733 +:108BF0000128202B1080005F000000003C050800C9
74734 +:108C00008CA53FBC00A96821010D602B1180005C80
74735 +:108C100000B0702B0109382300E028213C01080036
74736 +:108C2000AC273FBC12000003240AFFFC10B0008DEB
74737 +:108C30003224000300AA18243C010800A4203FDAD3
74738 +:108C40003C010800AC233FBC006028218F84002435
74739 +:108C5000120400063C0B80088D6C006C0200202181
74740 +:108C6000AF91002025900001AD70006C8F8D002821
74741 +:108C700000858823AF91002401A52023AF8400281C
74742 +:108C80001220000224070018240700103C18800856
74743 +:108C90003706008090CF00683C010800A0273FD82D
74744 +:108CA0002407000131EE00FF11C70047000000005B
74745 +:108CB00014800018000028213C06800034D109806F
74746 +:108CC00034CD010091A600098E2C001824C40001A7
74747 +:108CD000000C86023205007F308B007F1165007F1B
74748 +:108CE0002407FF803C19800837290080A124004C0C
74749 +:108CF0003C0808008D083FD4241800023C010800FD
74750 +:108D0000A0384019350F00083C010800AC2F3FD4B3
74751 +:108D1000240500103C02800034440A009083003C8B
74752 +:108D2000307F002013E0000500A02021240A00016C
74753 +:108D30003C010800AC2A3FBC34A400018FBF0018DE
74754 +:108D40008FB100148FB000100080102103E00008E4
74755 +:108D500027BD00203C010800A4203FC410A0FF94C0
74756 +:108D6000020018210A000CC000C018210A000CB72C
74757 +:108D7000240300303C0508008CA53FBC00B0702BDC
74758 +:108D800011C0FFA8000000003C19080097393FC43B
74759 +:108D90000325C0210307782B11E000072CAA00044B
74760 +:108DA0003C0360008C625404305F003F17E0FFE337
74761 +:108DB000240400422CAA00041140FF9A240400421B
74762 +:108DC0000A000D248FBF00181528FFB9000000000D
74763 +:108DD0008CCA00183C1F800024020002015F182585
74764 +:108DE000ACC3001837F90A00A0C200689329003C00
74765 +:108DF0002404000400A01021312800203C010800B8
74766 +:108E0000A0244019110000022405001024020001D2
74767 +:108E10003C010800AC223FB40A000D1A3C0280005D
74768 +:108E20008F8800288C8900600109282B14A000027B
74769 +:108E3000010088218C9100603C048000348B0E007E
74770 +:108E40008D640018240A000102202821022030210C
74771 +:108E5000A38A001C0E000B83022080210A000CA6AE
74772 +:108E6000AF82002C00045823122000073164000355
74773 +:108E70003C0E800035C7098090ED007C31AC0004C9
74774 +:108E800015800019248F00043C010800A4243FDA57
74775 +:108E90003C1F080097FF3FDA03E5C82100D9C02B2B
74776 +:108EA0001300FF6B8F8400242CA6000514C0FFA3C1
74777 +:108EB0002404004230A200031440000200A2182340
74778 +:108EC00024A3FFFC3C010800AC233FBC3C0108008C
74779 +:108ED000A4203FDA0A000CE70060282100C77024B4
74780 +:108EE0000A000D0D01C720263C010800A42F3FDA1F
74781 +:108EF0000A000D78000000003C010800AC203FBCD7
74782 +:108F00000A000D23240400428F8300283C058000C2
74783 +:108F100034AA0A00146000060000102191470030B6
74784 +:108F20002406000530E400FF108600030000000066
74785 +:108F300003E0000800000000914B0048316900FF89
74786 +:108F4000000941C21500FFFA3C0680083C040800F5
74787 +:108F500094843FC43C0308008C633FDC3C19080048
74788 +:108F60008F393FBC3C0F080095EF3FDA0064C02109
74789 +:108F70008CCD00040319702101CF602134AB0E00A9
74790 +:108F8000018D282318A0001D00000000914F004C07
74791 +:108F90008F8C0034956D001031EE00FF8D89000438
74792 +:108FA00001AE30238D8A000030CEFFFF000E290075
74793 +:108FB0000125C82100003821014720210325182B55
74794 +:108FC0000083C021AD990004AD980000918F000A84
74795 +:108FD00001CF6821A18D000A956500128F8A0034A7
74796 +:108FE000A5450008954B003825690001A5490038C2
74797 +:108FF0009148000D35070008A147000D03E0000867
74798 +:109000000000000027BDFFD8AFB000189388001CF7
74799 +:109010008FB000143C0A80003C197FFF8F8700242A
74800 +:109020003738FFFFAFBF0020AFB1001C355F0A002B
74801 +:109030000218182493EB003C00087FC03C02BFFFDD
74802 +:10904000006F60252CF000013449FFFF3C1F080031
74803 +:109050008FFF3FDC8F9900303C18080097183FD2F3
74804 +:1090600001897824001047803C07EFFF3C05F0FFA2
74805 +:1090700001E818253C1180003169002034E2FFFF2F
74806 +:1090800034ADFFFF362E098027A50010240600020C
74807 +:1090900003F96023270B0002354A0E0000621824F2
74808 +:1090A0000080802115200002000040218D48001C16
74809 +:1090B000A7AB0012058000392407000030E800FF4C
74810 +:1090C00000083F00006758253C028008AFAB001441
74811 +:1090D000344F008091EA00683C08080091083FD9AD
74812 +:1090E0003C09DFFF352CFFFF000AF82B3C0208008B
74813 +:1090F00094423FCCA3A80011016CC024001FCF40B4
74814 +:10910000031918258FA70010AFA300143C0C08000A
74815 +:10911000918C3FDBA7A200168FAB001400ED482412
74816 +:109120003C0F01003C0A0FFF012FC82531980003B6
74817 +:10913000355FFFFF016D40243C027000033F38247F
74818 +:1091400000181E0000E2482501037825AFAF001487
74819 +:10915000AFA9001091CC007C0E000092A3AC0015CA
74820 +:10916000362D0A0091A6003C30C400201080000675
74821 +:10917000260200083C11080096313FC8262EFFFF4A
74822 +:109180003C010800A42E3FC88FBF00208FB1001CF7
74823 +:109190008FB0001803E0000827BD00288F8B002C3B
74824 +:1091A000010B502B5540FFC5240700010A000E0497
74825 +:1091B00030E800FF9383001C3C02800027BDFFD8ED
74826 +:1091C00034480A0000805021AFBF002034460AC056
74827 +:1091D000010028211060000E3444098091070030FE
74828 +:1091E000240B00058F89002030EC003F118B000B11
74829 +:1091F00000003821AFA900103C0B80088D69006C7D
74830 +:10920000AFAA00180E00015AAFA90014A380001CD9
74831 +:109210008FBF002003E0000827BD00288D1F0048F5
74832 +:109220003C1808008F183FBC8F9900283C027FFF34
74833 +:109230008D0800443443FFFFAFA900103C0B8008A9
74834 +:109240008D69006C03E370240319782101CF682332
74835 +:1092500001A83821AFAA00180E00015AAFA90014C6
74836 +:109260000A000E58A380001C3C05800034A60A00AA
74837 +:1092700090C7003C3C06080094C63FDA3C02080058
74838 +:109280008C423FD430E30020000624001060001E12
74839 +:10929000004438253C0880083505008090A300680C
74840 +:1092A00000004821240800010000282124040001B6
74841 +:1092B0003C0680008CCD017805A0FFFE34CF014034
74842 +:1092C000ADE800083C0208008C423FDCA5E5000444
74843 +:1092D000A5E40006ADE2000C3C04080090843FD9F0
74844 +:1092E0003C03800834790080A1E40012ADE700144B
74845 +:1092F000A5E900189338004C3C0E1000A1F8002D91
74846 +:1093000003E00008ACCE017834A90E008D28001CC3
74847 +:109310003C0C08008D8C3FBC952B0016952A001440
74848 +:10932000018648213164FFFF0A000E803145FFFFAE
74849 +:109330003C04800034830A009065003C30A2002089
74850 +:109340001040001934870E00000040210000382131
74851 +:10935000000020213C0680008CC901780520FFFE1A
74852 +:1093600034CA014034CF010091EB0009AD48000838
74853 +:109370003C0E08008DCE3FDC240DFF91240C0040F4
74854 +:109380003C081000A5440004A5470006AD4E000CA3
74855 +:10939000A14D0012AD4C0014A5400018A14B002DAA
74856 +:1093A00003E00008ACC801788CE8001894E60012CD
74857 +:1093B00094E4001030C7FFFF0A000EA93084FFFFBD
74858 +:1093C0003C04800034830A009065003C30A20020F9
74859 +:1093D0001040002727BDFFF82409000100003821B4
74860 +:1093E000240800013C0680008CCA01780540FFFE7D
74861 +:1093F0003C0280FF34C40100908D00093C0C080041
74862 +:10940000918C4019A3AD00038FAB00003185007F24
74863 +:109410003459FFFF01665025AFAA00009083000A6F
74864 +:10942000A3A0000200057E00A3A300018FB80000E6
74865 +:1094300034CB0140240C30000319702401CF68257F
74866 +:10944000AD6D000C27BD0008AD6C0014A5600018C0
74867 +:10945000AD690008A56700042409FF80A56800061F
74868 +:109460003C081000A169001203E00008ACC80178B4
74869 +:1094700034870E008CE9001894E6001294E4001082
74870 +:1094800030C8FFFF0A000ECD3087FFFF27BDFFE089
74871 +:10949000AFB100143C118000AFB00010AFBF001896
74872 +:1094A00036380A00970F0032363001000E000B7F6D
74873 +:1094B00031E43FFF8E0E0000240DFF803C042000AD
74874 +:1094C00001C25821016D6024000C4940316A007FBF
74875 +:1094D000012A4025010438253C048008AE270830C5
74876 +:1094E0003486008090C500682403000230A200FF8B
74877 +:1094F000104300048F9F00208F990024AC9F0068C8
74878 +:10950000AC9900648FBF00188FB100148FB00010A9
74879 +:1095100003E0000827BD00203C0A0800254A3A80E5
74880 +:109520003C09080025293B103C08080025082F1C91
74881 +:109530003C07080024E73BDC3C06080024C639044D
74882 +:109540003C05080024A536583C0408002484325CFD
74883 +:109550003C030800246339B83C0208002442375415
74884 +:109560003C010800AC2A3F983C010800AC293F941C
74885 +:109570003C010800AC283F903C010800AC273F9C10
74886 +:109580003C010800AC263FAC3C010800AC253FA4E0
74887 +:109590003C010800AC243FA03C010800AC233FB0D4
74888 +:1095A0003C010800AC223FA803E0000800000000D6
74889 +:1095B00080000940800009008008010080080080C8
74890 +:1095C00080080000800E00008008008080080000F5
74891 +:1095D00080000A8080000A00800009808000090065
74892 +:00000001FF
74893 diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
74894 index 2d0cbbd..a6d61492 100644
74895 --- a/fs/Kconfig.binfmt
74896 +++ b/fs/Kconfig.binfmt
74897 @@ -103,7 +103,7 @@ config HAVE_AOUT
74898
74899 config BINFMT_AOUT
74900 tristate "Kernel support for a.out and ECOFF binaries"
74901 - depends on HAVE_AOUT
74902 + depends on HAVE_AOUT && BROKEN
74903 ---help---
74904 A.out (Assembler.OUTput) is a set of formats for libraries and
74905 executables used in the earliest versions of UNIX. Linux used
74906 diff --git a/fs/afs/inode.c b/fs/afs/inode.c
74907 index e06f5a2..81d07ac 100644
74908 --- a/fs/afs/inode.c
74909 +++ b/fs/afs/inode.c
74910 @@ -141,7 +141,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
74911 struct afs_vnode *vnode;
74912 struct super_block *sb;
74913 struct inode *inode;
74914 - static atomic_t afs_autocell_ino;
74915 + static atomic_unchecked_t afs_autocell_ino;
74916
74917 _enter("{%x:%u},%*.*s,",
74918 AFS_FS_I(dir)->fid.vid, AFS_FS_I(dir)->fid.vnode,
74919 @@ -154,7 +154,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
74920 data.fid.unique = 0;
74921 data.fid.vnode = 0;
74922
74923 - inode = iget5_locked(sb, atomic_inc_return(&afs_autocell_ino),
74924 + inode = iget5_locked(sb, atomic_inc_return_unchecked(&afs_autocell_ino),
74925 afs_iget5_autocell_test, afs_iget5_set,
74926 &data);
74927 if (!inode) {
74928 diff --git a/fs/aio.c b/fs/aio.c
74929 index 480440f..623fd88 100644
74930 --- a/fs/aio.c
74931 +++ b/fs/aio.c
74932 @@ -441,7 +441,7 @@ static int aio_setup_ring(struct kioctx *ctx)
74933 size += sizeof(struct io_event) * nr_events;
74934
74935 nr_pages = PFN_UP(size);
74936 - if (nr_pages < 0)
74937 + if (nr_pages <= 0)
74938 return -EINVAL;
74939
74940 file = aio_private_file(ctx, nr_pages);
74941 diff --git a/fs/attr.c b/fs/attr.c
74942 index 6530ced..4a827e2 100644
74943 --- a/fs/attr.c
74944 +++ b/fs/attr.c
74945 @@ -102,6 +102,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
74946 unsigned long limit;
74947
74948 limit = rlimit(RLIMIT_FSIZE);
74949 + gr_learn_resource(current, RLIMIT_FSIZE, (unsigned long)offset, 1);
74950 if (limit != RLIM_INFINITY && offset > limit)
74951 goto out_sig;
74952 if (offset > inode->i_sb->s_maxbytes)
74953 diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
74954 index 35b755e..f4b9e0a 100644
74955 --- a/fs/autofs4/waitq.c
74956 +++ b/fs/autofs4/waitq.c
74957 @@ -59,7 +59,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
74958 {
74959 unsigned long sigpipe, flags;
74960 mm_segment_t fs;
74961 - const char *data = (const char *)addr;
74962 + const char __user *data = (const char __force_user *)addr;
74963 ssize_t wr = 0;
74964
74965 sigpipe = sigismember(&current->pending.signal, SIGPIPE);
74966 @@ -340,6 +340,10 @@ static int validate_request(struct autofs_wait_queue **wait,
74967 return 1;
74968 }
74969
74970 +#ifdef CONFIG_GRKERNSEC_HIDESYM
74971 +static atomic_unchecked_t autofs_dummy_name_id = ATOMIC_INIT(0);
74972 +#endif
74973 +
74974 int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
74975 enum autofs_notify notify)
74976 {
74977 @@ -385,7 +389,12 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
74978
74979 /* If this is a direct mount request create a dummy name */
74980 if (IS_ROOT(dentry) && autofs_type_trigger(sbi->type))
74981 +#ifdef CONFIG_GRKERNSEC_HIDESYM
74982 + /* this name does get written to userland via autofs4_write() */
74983 + qstr.len = sprintf(name, "%08x", atomic_inc_return_unchecked(&autofs_dummy_name_id));
74984 +#else
74985 qstr.len = sprintf(name, "%p", dentry);
74986 +#endif
74987 else {
74988 qstr.len = autofs4_getpath(sbi, dentry, &name);
74989 if (!qstr.len) {
74990 diff --git a/fs/befs/endian.h b/fs/befs/endian.h
74991 index 2722387..56059b5 100644
74992 --- a/fs/befs/endian.h
74993 +++ b/fs/befs/endian.h
74994 @@ -11,7 +11,7 @@
74995
74996 #include <asm/byteorder.h>
74997
74998 -static inline u64
74999 +static inline u64 __intentional_overflow(-1)
75000 fs64_to_cpu(const struct super_block *sb, fs64 n)
75001 {
75002 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
75003 @@ -29,7 +29,7 @@ cpu_to_fs64(const struct super_block *sb, u64 n)
75004 return (__force fs64)cpu_to_be64(n);
75005 }
75006
75007 -static inline u32
75008 +static inline u32 __intentional_overflow(-1)
75009 fs32_to_cpu(const struct super_block *sb, fs32 n)
75010 {
75011 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
75012 @@ -47,7 +47,7 @@ cpu_to_fs32(const struct super_block *sb, u32 n)
75013 return (__force fs32)cpu_to_be32(n);
75014 }
75015
75016 -static inline u16
75017 +static inline u16 __intentional_overflow(-1)
75018 fs16_to_cpu(const struct super_block *sb, fs16 n)
75019 {
75020 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
75021 diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
75022 index 4c55668..eeae150 100644
75023 --- a/fs/binfmt_aout.c
75024 +++ b/fs/binfmt_aout.c
75025 @@ -16,6 +16,7 @@
75026 #include <linux/string.h>
75027 #include <linux/fs.h>
75028 #include <linux/file.h>
75029 +#include <linux/security.h>
75030 #include <linux/stat.h>
75031 #include <linux/fcntl.h>
75032 #include <linux/ptrace.h>
75033 @@ -58,6 +59,8 @@ static int aout_core_dump(struct coredump_params *cprm)
75034 #endif
75035 # define START_STACK(u) ((void __user *)u.start_stack)
75036
75037 + memset(&dump, 0, sizeof(dump));
75038 +
75039 fs = get_fs();
75040 set_fs(KERNEL_DS);
75041 has_dumped = 1;
75042 @@ -68,10 +71,12 @@ static int aout_core_dump(struct coredump_params *cprm)
75043
75044 /* If the size of the dump file exceeds the rlimit, then see what would happen
75045 if we wrote the stack, but not the data area. */
75046 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE, 1);
75047 if ((dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE > cprm->limit)
75048 dump.u_dsize = 0;
75049
75050 /* Make sure we have enough room to write the stack and data areas. */
75051 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_ssize + 1) * PAGE_SIZE, 1);
75052 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
75053 dump.u_ssize = 0;
75054
75055 @@ -232,6 +237,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
75056 rlim = rlimit(RLIMIT_DATA);
75057 if (rlim >= RLIM_INFINITY)
75058 rlim = ~0;
75059 +
75060 + gr_learn_resource(current, RLIMIT_DATA, ex.a_data + ex.a_bss, 1);
75061 if (ex.a_data + ex.a_bss > rlim)
75062 return -ENOMEM;
75063
75064 @@ -261,6 +268,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
75065
75066 install_exec_creds(bprm);
75067
75068 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75069 + current->mm->pax_flags = 0UL;
75070 +#endif
75071 +
75072 +#ifdef CONFIG_PAX_PAGEEXEC
75073 + if (!(N_FLAGS(ex) & F_PAX_PAGEEXEC)) {
75074 + current->mm->pax_flags |= MF_PAX_PAGEEXEC;
75075 +
75076 +#ifdef CONFIG_PAX_EMUTRAMP
75077 + if (N_FLAGS(ex) & F_PAX_EMUTRAMP)
75078 + current->mm->pax_flags |= MF_PAX_EMUTRAMP;
75079 +#endif
75080 +
75081 +#ifdef CONFIG_PAX_MPROTECT
75082 + if (!(N_FLAGS(ex) & F_PAX_MPROTECT))
75083 + current->mm->pax_flags |= MF_PAX_MPROTECT;
75084 +#endif
75085 +
75086 + }
75087 +#endif
75088 +
75089 if (N_MAGIC(ex) == OMAGIC) {
75090 unsigned long text_addr, map_size;
75091 loff_t pos;
75092 @@ -312,7 +340,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
75093 return error;
75094
75095 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
75096 - PROT_READ | PROT_WRITE | PROT_EXEC,
75097 + PROT_READ | PROT_WRITE,
75098 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
75099 fd_offset + ex.a_text);
75100 if (error != N_DATADDR(ex))
75101 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
75102 index 6b65996..be797cf 100644
75103 --- a/fs/binfmt_elf.c
75104 +++ b/fs/binfmt_elf.c
75105 @@ -35,6 +35,7 @@
75106 #include <linux/utsname.h>
75107 #include <linux/coredump.h>
75108 #include <linux/sched.h>
75109 +#include <linux/xattr.h>
75110 #include <asm/uaccess.h>
75111 #include <asm/param.h>
75112 #include <asm/page.h>
75113 @@ -66,6 +67,14 @@ static int elf_core_dump(struct coredump_params *cprm);
75114 #define elf_core_dump NULL
75115 #endif
75116
75117 +#ifdef CONFIG_PAX_MPROTECT
75118 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags);
75119 +#endif
75120 +
75121 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
75122 +static void elf_handle_mmap(struct file *file);
75123 +#endif
75124 +
75125 #if ELF_EXEC_PAGESIZE > PAGE_SIZE
75126 #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
75127 #else
75128 @@ -85,6 +94,15 @@ static struct linux_binfmt elf_format = {
75129 .load_binary = load_elf_binary,
75130 .load_shlib = load_elf_library,
75131 .core_dump = elf_core_dump,
75132 +
75133 +#ifdef CONFIG_PAX_MPROTECT
75134 + .handle_mprotect= elf_handle_mprotect,
75135 +#endif
75136 +
75137 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
75138 + .handle_mmap = elf_handle_mmap,
75139 +#endif
75140 +
75141 .min_coredump = ELF_EXEC_PAGESIZE,
75142 };
75143
75144 @@ -92,6 +110,8 @@ static struct linux_binfmt elf_format = {
75145
75146 static int set_brk(unsigned long start, unsigned long end)
75147 {
75148 + unsigned long e = end;
75149 +
75150 start = ELF_PAGEALIGN(start);
75151 end = ELF_PAGEALIGN(end);
75152 if (end > start) {
75153 @@ -100,7 +120,7 @@ static int set_brk(unsigned long start, unsigned long end)
75154 if (BAD_ADDR(addr))
75155 return addr;
75156 }
75157 - current->mm->start_brk = current->mm->brk = end;
75158 + current->mm->start_brk = current->mm->brk = e;
75159 return 0;
75160 }
75161
75162 @@ -161,12 +181,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
75163 elf_addr_t __user *u_rand_bytes;
75164 const char *k_platform = ELF_PLATFORM;
75165 const char *k_base_platform = ELF_BASE_PLATFORM;
75166 - unsigned char k_rand_bytes[16];
75167 + u32 k_rand_bytes[4];
75168 int items;
75169 elf_addr_t *elf_info;
75170 int ei_index = 0;
75171 const struct cred *cred = current_cred();
75172 struct vm_area_struct *vma;
75173 + unsigned long saved_auxv[AT_VECTOR_SIZE];
75174
75175 /*
75176 * In some cases (e.g. Hyper-Threading), we want to avoid L1
75177 @@ -208,8 +229,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
75178 * Generate 16 random bytes for userspace PRNG seeding.
75179 */
75180 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
75181 - u_rand_bytes = (elf_addr_t __user *)
75182 - STACK_ALLOC(p, sizeof(k_rand_bytes));
75183 + prandom_seed(k_rand_bytes[0] ^ prandom_u32());
75184 + prandom_seed(k_rand_bytes[1] ^ prandom_u32());
75185 + prandom_seed(k_rand_bytes[2] ^ prandom_u32());
75186 + prandom_seed(k_rand_bytes[3] ^ prandom_u32());
75187 + p = STACK_ROUND(p, sizeof(k_rand_bytes));
75188 + u_rand_bytes = (elf_addr_t __user *) p;
75189 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
75190 return -EFAULT;
75191
75192 @@ -324,9 +349,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
75193 return -EFAULT;
75194 current->mm->env_end = p;
75195
75196 + memcpy(saved_auxv, elf_info, ei_index * sizeof(elf_addr_t));
75197 +
75198 /* Put the elf_info on the stack in the right place. */
75199 sp = (elf_addr_t __user *)envp + 1;
75200 - if (copy_to_user(sp, elf_info, ei_index * sizeof(elf_addr_t)))
75201 + if (copy_to_user(sp, saved_auxv, ei_index * sizeof(elf_addr_t)))
75202 return -EFAULT;
75203 return 0;
75204 }
75205 @@ -515,14 +542,14 @@ static inline int arch_check_elf(struct elfhdr *ehdr, bool has_interp,
75206 an ELF header */
75207
75208 static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75209 - struct file *interpreter, unsigned long *interp_map_addr,
75210 + struct file *interpreter,
75211 unsigned long no_base, struct elf_phdr *interp_elf_phdata)
75212 {
75213 struct elf_phdr *eppnt;
75214 - unsigned long load_addr = 0;
75215 + unsigned long load_addr = 0, pax_task_size = TASK_SIZE;
75216 int load_addr_set = 0;
75217 unsigned long last_bss = 0, elf_bss = 0;
75218 - unsigned long error = ~0UL;
75219 + unsigned long error = -EINVAL;
75220 unsigned long total_size;
75221 int i;
75222
75223 @@ -542,6 +569,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75224 goto out;
75225 }
75226
75227 +#ifdef CONFIG_PAX_SEGMEXEC
75228 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
75229 + pax_task_size = SEGMEXEC_TASK_SIZE;
75230 +#endif
75231 +
75232 eppnt = interp_elf_phdata;
75233 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
75234 if (eppnt->p_type == PT_LOAD) {
75235 @@ -565,8 +597,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75236 map_addr = elf_map(interpreter, load_addr + vaddr,
75237 eppnt, elf_prot, elf_type, total_size);
75238 total_size = 0;
75239 - if (!*interp_map_addr)
75240 - *interp_map_addr = map_addr;
75241 error = map_addr;
75242 if (BAD_ADDR(map_addr))
75243 goto out;
75244 @@ -585,8 +615,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75245 k = load_addr + eppnt->p_vaddr;
75246 if (BAD_ADDR(k) ||
75247 eppnt->p_filesz > eppnt->p_memsz ||
75248 - eppnt->p_memsz > TASK_SIZE ||
75249 - TASK_SIZE - eppnt->p_memsz < k) {
75250 + eppnt->p_memsz > pax_task_size ||
75251 + pax_task_size - eppnt->p_memsz < k) {
75252 error = -ENOMEM;
75253 goto out;
75254 }
75255 @@ -625,9 +655,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
75256 elf_bss = ELF_PAGESTART(elf_bss + ELF_MIN_ALIGN - 1);
75257
75258 /* Map the last of the bss segment */
75259 - error = vm_brk(elf_bss, last_bss - elf_bss);
75260 - if (BAD_ADDR(error))
75261 - goto out;
75262 + if (last_bss > elf_bss) {
75263 + error = vm_brk(elf_bss, last_bss - elf_bss);
75264 + if (BAD_ADDR(error))
75265 + goto out;
75266 + }
75267 }
75268
75269 error = load_addr;
75270 @@ -635,6 +667,336 @@ out:
75271 return error;
75272 }
75273
75274 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75275 +#ifdef CONFIG_PAX_SOFTMODE
75276 +static unsigned long pax_parse_pt_pax_softmode(const struct elf_phdr * const elf_phdata)
75277 +{
75278 + unsigned long pax_flags = 0UL;
75279 +
75280 +#ifdef CONFIG_PAX_PAGEEXEC
75281 + if (elf_phdata->p_flags & PF_PAGEEXEC)
75282 + pax_flags |= MF_PAX_PAGEEXEC;
75283 +#endif
75284 +
75285 +#ifdef CONFIG_PAX_SEGMEXEC
75286 + if (elf_phdata->p_flags & PF_SEGMEXEC)
75287 + pax_flags |= MF_PAX_SEGMEXEC;
75288 +#endif
75289 +
75290 +#ifdef CONFIG_PAX_EMUTRAMP
75291 + if ((elf_phdata->p_flags & PF_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
75292 + pax_flags |= MF_PAX_EMUTRAMP;
75293 +#endif
75294 +
75295 +#ifdef CONFIG_PAX_MPROTECT
75296 + if (elf_phdata->p_flags & PF_MPROTECT)
75297 + pax_flags |= MF_PAX_MPROTECT;
75298 +#endif
75299 +
75300 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75301 + if (randomize_va_space && (elf_phdata->p_flags & PF_RANDMMAP))
75302 + pax_flags |= MF_PAX_RANDMMAP;
75303 +#endif
75304 +
75305 + return pax_flags;
75306 +}
75307 +#endif
75308 +
75309 +static unsigned long pax_parse_pt_pax_hardmode(const struct elf_phdr * const elf_phdata)
75310 +{
75311 + unsigned long pax_flags = 0UL;
75312 +
75313 +#ifdef CONFIG_PAX_PAGEEXEC
75314 + if (!(elf_phdata->p_flags & PF_NOPAGEEXEC))
75315 + pax_flags |= MF_PAX_PAGEEXEC;
75316 +#endif
75317 +
75318 +#ifdef CONFIG_PAX_SEGMEXEC
75319 + if (!(elf_phdata->p_flags & PF_NOSEGMEXEC))
75320 + pax_flags |= MF_PAX_SEGMEXEC;
75321 +#endif
75322 +
75323 +#ifdef CONFIG_PAX_EMUTRAMP
75324 + if (!(elf_phdata->p_flags & PF_NOEMUTRAMP))
75325 + pax_flags |= MF_PAX_EMUTRAMP;
75326 +#endif
75327 +
75328 +#ifdef CONFIG_PAX_MPROTECT
75329 + if (!(elf_phdata->p_flags & PF_NOMPROTECT))
75330 + pax_flags |= MF_PAX_MPROTECT;
75331 +#endif
75332 +
75333 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75334 + if (randomize_va_space && !(elf_phdata->p_flags & PF_NORANDMMAP))
75335 + pax_flags |= MF_PAX_RANDMMAP;
75336 +#endif
75337 +
75338 + return pax_flags;
75339 +}
75340 +#endif
75341 +
75342 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
75343 +#ifdef CONFIG_PAX_SOFTMODE
75344 +static unsigned long pax_parse_xattr_pax_softmode(unsigned long pax_flags_softmode)
75345 +{
75346 + unsigned long pax_flags = 0UL;
75347 +
75348 +#ifdef CONFIG_PAX_PAGEEXEC
75349 + if (pax_flags_softmode & MF_PAX_PAGEEXEC)
75350 + pax_flags |= MF_PAX_PAGEEXEC;
75351 +#endif
75352 +
75353 +#ifdef CONFIG_PAX_SEGMEXEC
75354 + if (pax_flags_softmode & MF_PAX_SEGMEXEC)
75355 + pax_flags |= MF_PAX_SEGMEXEC;
75356 +#endif
75357 +
75358 +#ifdef CONFIG_PAX_EMUTRAMP
75359 + if ((pax_flags_softmode & MF_PAX_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
75360 + pax_flags |= MF_PAX_EMUTRAMP;
75361 +#endif
75362 +
75363 +#ifdef CONFIG_PAX_MPROTECT
75364 + if (pax_flags_softmode & MF_PAX_MPROTECT)
75365 + pax_flags |= MF_PAX_MPROTECT;
75366 +#endif
75367 +
75368 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75369 + if (randomize_va_space && (pax_flags_softmode & MF_PAX_RANDMMAP))
75370 + pax_flags |= MF_PAX_RANDMMAP;
75371 +#endif
75372 +
75373 + return pax_flags;
75374 +}
75375 +#endif
75376 +
75377 +static unsigned long pax_parse_xattr_pax_hardmode(unsigned long pax_flags_hardmode)
75378 +{
75379 + unsigned long pax_flags = 0UL;
75380 +
75381 +#ifdef CONFIG_PAX_PAGEEXEC
75382 + if (!(pax_flags_hardmode & MF_PAX_PAGEEXEC))
75383 + pax_flags |= MF_PAX_PAGEEXEC;
75384 +#endif
75385 +
75386 +#ifdef CONFIG_PAX_SEGMEXEC
75387 + if (!(pax_flags_hardmode & MF_PAX_SEGMEXEC))
75388 + pax_flags |= MF_PAX_SEGMEXEC;
75389 +#endif
75390 +
75391 +#ifdef CONFIG_PAX_EMUTRAMP
75392 + if (!(pax_flags_hardmode & MF_PAX_EMUTRAMP))
75393 + pax_flags |= MF_PAX_EMUTRAMP;
75394 +#endif
75395 +
75396 +#ifdef CONFIG_PAX_MPROTECT
75397 + if (!(pax_flags_hardmode & MF_PAX_MPROTECT))
75398 + pax_flags |= MF_PAX_MPROTECT;
75399 +#endif
75400 +
75401 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
75402 + if (randomize_va_space && !(pax_flags_hardmode & MF_PAX_RANDMMAP))
75403 + pax_flags |= MF_PAX_RANDMMAP;
75404 +#endif
75405 +
75406 + return pax_flags;
75407 +}
75408 +#endif
75409 +
75410 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75411 +static unsigned long pax_parse_defaults(void)
75412 +{
75413 + unsigned long pax_flags = 0UL;
75414 +
75415 +#ifdef CONFIG_PAX_SOFTMODE
75416 + if (pax_softmode)
75417 + return pax_flags;
75418 +#endif
75419 +
75420 +#ifdef CONFIG_PAX_PAGEEXEC
75421 + pax_flags |= MF_PAX_PAGEEXEC;
75422 +#endif
75423 +
75424 +#ifdef CONFIG_PAX_SEGMEXEC
75425 + pax_flags |= MF_PAX_SEGMEXEC;
75426 +#endif
75427 +
75428 +#ifdef CONFIG_PAX_MPROTECT
75429 + pax_flags |= MF_PAX_MPROTECT;
75430 +#endif
75431 +
75432 +#ifdef CONFIG_PAX_RANDMMAP
75433 + if (randomize_va_space)
75434 + pax_flags |= MF_PAX_RANDMMAP;
75435 +#endif
75436 +
75437 + return pax_flags;
75438 +}
75439 +
75440 +static unsigned long pax_parse_ei_pax(const struct elfhdr * const elf_ex)
75441 +{
75442 + unsigned long pax_flags = PAX_PARSE_FLAGS_FALLBACK;
75443 +
75444 +#ifdef CONFIG_PAX_EI_PAX
75445 +
75446 +#ifdef CONFIG_PAX_SOFTMODE
75447 + if (pax_softmode)
75448 + return pax_flags;
75449 +#endif
75450 +
75451 + pax_flags = 0UL;
75452 +
75453 +#ifdef CONFIG_PAX_PAGEEXEC
75454 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_PAGEEXEC))
75455 + pax_flags |= MF_PAX_PAGEEXEC;
75456 +#endif
75457 +
75458 +#ifdef CONFIG_PAX_SEGMEXEC
75459 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_SEGMEXEC))
75460 + pax_flags |= MF_PAX_SEGMEXEC;
75461 +#endif
75462 +
75463 +#ifdef CONFIG_PAX_EMUTRAMP
75464 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && (elf_ex->e_ident[EI_PAX] & EF_PAX_EMUTRAMP))
75465 + pax_flags |= MF_PAX_EMUTRAMP;
75466 +#endif
75467 +
75468 +#ifdef CONFIG_PAX_MPROTECT
75469 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && !(elf_ex->e_ident[EI_PAX] & EF_PAX_MPROTECT))
75470 + pax_flags |= MF_PAX_MPROTECT;
75471 +#endif
75472 +
75473 +#ifdef CONFIG_PAX_ASLR
75474 + if (randomize_va_space && !(elf_ex->e_ident[EI_PAX] & EF_PAX_RANDMMAP))
75475 + pax_flags |= MF_PAX_RANDMMAP;
75476 +#endif
75477 +
75478 +#endif
75479 +
75480 + return pax_flags;
75481 +
75482 +}
75483 +
75484 +static unsigned long pax_parse_pt_pax(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata)
75485 +{
75486 +
75487 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75488 + unsigned long i;
75489 +
75490 + for (i = 0UL; i < elf_ex->e_phnum; i++)
75491 + if (elf_phdata[i].p_type == PT_PAX_FLAGS) {
75492 + if (((elf_phdata[i].p_flags & PF_PAGEEXEC) && (elf_phdata[i].p_flags & PF_NOPAGEEXEC)) ||
75493 + ((elf_phdata[i].p_flags & PF_SEGMEXEC) && (elf_phdata[i].p_flags & PF_NOSEGMEXEC)) ||
75494 + ((elf_phdata[i].p_flags & PF_EMUTRAMP) && (elf_phdata[i].p_flags & PF_NOEMUTRAMP)) ||
75495 + ((elf_phdata[i].p_flags & PF_MPROTECT) && (elf_phdata[i].p_flags & PF_NOMPROTECT)) ||
75496 + ((elf_phdata[i].p_flags & PF_RANDMMAP) && (elf_phdata[i].p_flags & PF_NORANDMMAP)))
75497 + return PAX_PARSE_FLAGS_FALLBACK;
75498 +
75499 +#ifdef CONFIG_PAX_SOFTMODE
75500 + if (pax_softmode)
75501 + return pax_parse_pt_pax_softmode(&elf_phdata[i]);
75502 + else
75503 +#endif
75504 +
75505 + return pax_parse_pt_pax_hardmode(&elf_phdata[i]);
75506 + break;
75507 + }
75508 +#endif
75509 +
75510 + return PAX_PARSE_FLAGS_FALLBACK;
75511 +}
75512 +
75513 +static unsigned long pax_parse_xattr_pax(struct file * const file)
75514 +{
75515 +
75516 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
75517 + ssize_t xattr_size, i;
75518 + unsigned char xattr_value[sizeof("pemrs") - 1];
75519 + unsigned long pax_flags_hardmode = 0UL, pax_flags_softmode = 0UL;
75520 +
75521 + xattr_size = pax_getxattr(file->f_path.dentry, xattr_value, sizeof xattr_value);
75522 + if (xattr_size < 0 || xattr_size > sizeof xattr_value)
75523 + return PAX_PARSE_FLAGS_FALLBACK;
75524 +
75525 + for (i = 0; i < xattr_size; i++)
75526 + switch (xattr_value[i]) {
75527 + default:
75528 + return PAX_PARSE_FLAGS_FALLBACK;
75529 +
75530 +#define parse_flag(option1, option2, flag) \
75531 + case option1: \
75532 + if (pax_flags_hardmode & MF_PAX_##flag) \
75533 + return PAX_PARSE_FLAGS_FALLBACK;\
75534 + pax_flags_hardmode |= MF_PAX_##flag; \
75535 + break; \
75536 + case option2: \
75537 + if (pax_flags_softmode & MF_PAX_##flag) \
75538 + return PAX_PARSE_FLAGS_FALLBACK;\
75539 + pax_flags_softmode |= MF_PAX_##flag; \
75540 + break;
75541 +
75542 + parse_flag('p', 'P', PAGEEXEC);
75543 + parse_flag('e', 'E', EMUTRAMP);
75544 + parse_flag('m', 'M', MPROTECT);
75545 + parse_flag('r', 'R', RANDMMAP);
75546 + parse_flag('s', 'S', SEGMEXEC);
75547 +
75548 +#undef parse_flag
75549 + }
75550 +
75551 + if (pax_flags_hardmode & pax_flags_softmode)
75552 + return PAX_PARSE_FLAGS_FALLBACK;
75553 +
75554 +#ifdef CONFIG_PAX_SOFTMODE
75555 + if (pax_softmode)
75556 + return pax_parse_xattr_pax_softmode(pax_flags_softmode);
75557 + else
75558 +#endif
75559 +
75560 + return pax_parse_xattr_pax_hardmode(pax_flags_hardmode);
75561 +#else
75562 + return PAX_PARSE_FLAGS_FALLBACK;
75563 +#endif
75564 +
75565 +}
75566 +
75567 +static long pax_parse_pax_flags(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata, struct file * const file)
75568 +{
75569 + unsigned long pax_flags, ei_pax_flags, pt_pax_flags, xattr_pax_flags;
75570 +
75571 + pax_flags = pax_parse_defaults();
75572 + ei_pax_flags = pax_parse_ei_pax(elf_ex);
75573 + pt_pax_flags = pax_parse_pt_pax(elf_ex, elf_phdata);
75574 + xattr_pax_flags = pax_parse_xattr_pax(file);
75575 +
75576 + if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
75577 + xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
75578 + pt_pax_flags != xattr_pax_flags)
75579 + return -EINVAL;
75580 + if (xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75581 + pax_flags = xattr_pax_flags;
75582 + else if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75583 + pax_flags = pt_pax_flags;
75584 + else if (ei_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75585 + pax_flags = ei_pax_flags;
75586 +
75587 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
75588 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75589 + if ((__supported_pte_mask & _PAGE_NX))
75590 + pax_flags &= ~MF_PAX_SEGMEXEC;
75591 + else
75592 + pax_flags &= ~MF_PAX_PAGEEXEC;
75593 + }
75594 +#endif
75595 +
75596 + if (0 > pax_check_flags(&pax_flags))
75597 + return -EINVAL;
75598 +
75599 + current->mm->pax_flags = pax_flags;
75600 + return 0;
75601 +}
75602 +#endif
75603 +
75604 /*
75605 * These are the functions used to load ELF style executables and shared
75606 * libraries. There is no binary dependent code anywhere else.
75607 @@ -648,6 +1010,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
75608 {
75609 unsigned long random_variable = 0;
75610
75611 +#ifdef CONFIG_PAX_RANDUSTACK
75612 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
75613 + return stack_top - current->mm->delta_stack;
75614 +#endif
75615 +
75616 if ((current->flags & PF_RANDOMIZE) &&
75617 !(current->personality & ADDR_NO_RANDOMIZE)) {
75618 random_variable = (unsigned long) get_random_int();
75619 @@ -667,7 +1034,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75620 unsigned long load_addr = 0, load_bias = 0;
75621 int load_addr_set = 0;
75622 char * elf_interpreter = NULL;
75623 - unsigned long error;
75624 + unsigned long error = 0;
75625 struct elf_phdr *elf_ppnt, *elf_phdata, *interp_elf_phdata = NULL;
75626 unsigned long elf_bss, elf_brk;
75627 int retval, i;
75628 @@ -682,6 +1049,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75629 struct elfhdr interp_elf_ex;
75630 } *loc;
75631 struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
75632 + unsigned long pax_task_size;
75633
75634 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
75635 if (!loc) {
75636 @@ -759,16 +1127,16 @@ static int load_elf_binary(struct linux_binprm *bprm)
75637 */
75638 would_dump(bprm, interpreter);
75639
75640 - retval = kernel_read(interpreter, 0, bprm->buf,
75641 - BINPRM_BUF_SIZE);
75642 - if (retval != BINPRM_BUF_SIZE) {
75643 - if (retval >= 0)
75644 - retval = -EIO;
75645 - goto out_free_dentry;
75646 - }
75647 -
75648 /* Get the exec headers */
75649 - loc->interp_elf_ex = *((struct elfhdr *)bprm->buf);
75650 + retval = kernel_read(interpreter, 0,
75651 + (void *)&loc->interp_elf_ex,
75652 + sizeof(loc->interp_elf_ex));
75653 + if (retval != sizeof(loc->interp_elf_ex)) {
75654 + if (retval >= 0)
75655 + retval = -EIO;
75656 + goto out_free_dentry;
75657 + }
75658 +
75659 break;
75660 }
75661 elf_ppnt++;
75662 @@ -840,6 +1208,77 @@ static int load_elf_binary(struct linux_binprm *bprm)
75663 /* Do this immediately, since STACK_TOP as used in setup_arg_pages
75664 may depend on the personality. */
75665 SET_PERSONALITY2(loc->elf_ex, &arch_state);
75666 +
75667 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75668 + current->mm->pax_flags = 0UL;
75669 +#endif
75670 +
75671 +#ifdef CONFIG_PAX_DLRESOLVE
75672 + current->mm->call_dl_resolve = 0UL;
75673 +#endif
75674 +
75675 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
75676 + current->mm->call_syscall = 0UL;
75677 +#endif
75678 +
75679 +#ifdef CONFIG_PAX_ASLR
75680 + current->mm->delta_mmap = 0UL;
75681 + current->mm->delta_stack = 0UL;
75682 +#endif
75683 +
75684 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75685 + if (0 > pax_parse_pax_flags(&loc->elf_ex, elf_phdata, bprm->file)) {
75686 + retval = -EINVAL;
75687 + goto out_free_dentry;
75688 + }
75689 +#endif
75690 +
75691 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
75692 + pax_set_initial_flags(bprm);
75693 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
75694 + if (pax_set_initial_flags_func)
75695 + (pax_set_initial_flags_func)(bprm);
75696 +#endif
75697 +
75698 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
75699 + if ((current->mm->pax_flags & MF_PAX_PAGEEXEC) && !(__supported_pte_mask & _PAGE_NX)) {
75700 + current->mm->context.user_cs_limit = PAGE_SIZE;
75701 + current->mm->def_flags |= VM_PAGEEXEC | VM_NOHUGEPAGE;
75702 + }
75703 +#endif
75704 +
75705 +#ifdef CONFIG_PAX_SEGMEXEC
75706 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
75707 + current->mm->context.user_cs_base = SEGMEXEC_TASK_SIZE;
75708 + current->mm->context.user_cs_limit = TASK_SIZE-SEGMEXEC_TASK_SIZE;
75709 + pax_task_size = SEGMEXEC_TASK_SIZE;
75710 + current->mm->def_flags |= VM_NOHUGEPAGE;
75711 + } else
75712 +#endif
75713 +
75714 + pax_task_size = TASK_SIZE;
75715 +
75716 +#if defined(CONFIG_ARCH_TRACK_EXEC_LIMIT) || defined(CONFIG_PAX_SEGMEXEC)
75717 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75718 + set_user_cs(current->mm->context.user_cs_base, current->mm->context.user_cs_limit, get_cpu());
75719 + put_cpu();
75720 + }
75721 +#endif
75722 +
75723 +#ifdef CONFIG_PAX_ASLR
75724 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
75725 + current->mm->delta_mmap = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN)-1)) << PAGE_SHIFT;
75726 + current->mm->delta_stack = (pax_get_random_long() & ((1UL << PAX_DELTA_STACK_LEN)-1)) << PAGE_SHIFT;
75727 + }
75728 +#endif
75729 +
75730 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
75731 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75732 + executable_stack = EXSTACK_DISABLE_X;
75733 + current->personality &= ~READ_IMPLIES_EXEC;
75734 + } else
75735 +#endif
75736 +
75737 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
75738 current->personality |= READ_IMPLIES_EXEC;
75739
75740 @@ -915,8 +1354,21 @@ static int load_elf_binary(struct linux_binprm *bprm)
75741 if (current->flags & PF_RANDOMIZE)
75742 load_bias += arch_mmap_rnd();
75743 load_bias = ELF_PAGESTART(load_bias);
75744 - total_size = total_mapping_size(elf_phdata,
75745 - loc->elf_ex.e_phnum);
75746 +
75747 +#ifdef CONFIG_PAX_RANDMMAP
75748 + /* PaX: randomize base address at the default exe base if requested */
75749 + if ((current->mm->pax_flags & MF_PAX_RANDMMAP) && elf_interpreter) {
75750 +#ifdef CONFIG_SPARC64
75751 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << (PAGE_SHIFT+1);
75752 +#else
75753 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << PAGE_SHIFT;
75754 +#endif
75755 + load_bias = ELF_PAGESTART(PAX_ELF_ET_DYN_BASE - vaddr + load_bias);
75756 + elf_flags |= MAP_FIXED;
75757 + }
75758 +#endif
75759 +
75760 + total_size = total_mapping_size(elf_phdata, loc->elf_ex.e_phnum);
75761 if (!total_size) {
75762 retval = -EINVAL;
75763 goto out_free_dentry;
75764 @@ -952,9 +1404,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
75765 * allowed task size. Note that p_filesz must always be
75766 * <= p_memsz so it is only necessary to check p_memsz.
75767 */
75768 - if (BAD_ADDR(k) || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
75769 - elf_ppnt->p_memsz > TASK_SIZE ||
75770 - TASK_SIZE - elf_ppnt->p_memsz < k) {
75771 + if (k >= pax_task_size || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
75772 + elf_ppnt->p_memsz > pax_task_size ||
75773 + pax_task_size - elf_ppnt->p_memsz < k) {
75774 /* set_brk can never work. Avoid overflows. */
75775 retval = -EINVAL;
75776 goto out_free_dentry;
75777 @@ -990,16 +1442,43 @@ static int load_elf_binary(struct linux_binprm *bprm)
75778 if (retval)
75779 goto out_free_dentry;
75780 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
75781 - retval = -EFAULT; /* Nobody gets to see this, but.. */
75782 - goto out_free_dentry;
75783 + /*
75784 + * This bss-zeroing can fail if the ELF
75785 + * file specifies odd protections. So
75786 + * we don't check the return value
75787 + */
75788 }
75789
75790 +#ifdef CONFIG_PAX_RANDMMAP
75791 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
75792 + unsigned long start, size, flags;
75793 + vm_flags_t vm_flags;
75794 +
75795 + start = ELF_PAGEALIGN(elf_brk);
75796 + size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
75797 + flags = MAP_FIXED | MAP_PRIVATE;
75798 + vm_flags = VM_DONTEXPAND | VM_DONTDUMP;
75799 +
75800 + down_write(&current->mm->mmap_sem);
75801 + start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags);
75802 + retval = -ENOMEM;
75803 + if (!IS_ERR_VALUE(start) && !find_vma_intersection(current->mm, start, start + size + PAGE_SIZE)) {
75804 +// if (current->personality & ADDR_NO_RANDOMIZE)
75805 +// vm_flags |= VM_READ | VM_MAYREAD;
75806 + start = mmap_region(NULL, start, PAGE_ALIGN(size), vm_flags, 0);
75807 + retval = IS_ERR_VALUE(start) ? start : 0;
75808 + }
75809 + up_write(&current->mm->mmap_sem);
75810 + if (retval == 0)
75811 + retval = set_brk(start + size, start + size + PAGE_SIZE);
75812 + if (retval < 0)
75813 + goto out_free_dentry;
75814 + }
75815 +#endif
75816 +
75817 if (elf_interpreter) {
75818 - unsigned long interp_map_addr = 0;
75819 -
75820 elf_entry = load_elf_interp(&loc->interp_elf_ex,
75821 interpreter,
75822 - &interp_map_addr,
75823 load_bias, interp_elf_phdata);
75824 if (!IS_ERR((void *)elf_entry)) {
75825 /*
75826 @@ -1050,6 +1529,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75827 current->mm->end_data = end_data;
75828 current->mm->start_stack = bprm->p;
75829
75830 +#ifndef CONFIG_PAX_RANDMMAP
75831 if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) {
75832 current->mm->brk = current->mm->start_brk =
75833 arch_randomize_brk(current->mm);
75834 @@ -1057,6 +1537,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75835 current->brk_randomized = 1;
75836 #endif
75837 }
75838 +#endif
75839
75840 if (current->personality & MMAP_PAGE_ZERO) {
75841 /* Why this, you ask??? Well SVr4 maps page 0 as read-only,
75842 @@ -1225,7 +1706,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
75843 * Decide what to dump of a segment, part, all or none.
75844 */
75845 static unsigned long vma_dump_size(struct vm_area_struct *vma,
75846 - unsigned long mm_flags)
75847 + unsigned long mm_flags, long signr)
75848 {
75849 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
75850
75851 @@ -1263,7 +1744,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
75852 if (vma->vm_file == NULL)
75853 return 0;
75854
75855 - if (FILTER(MAPPED_PRIVATE))
75856 + if (signr == SIGKILL || FILTER(MAPPED_PRIVATE))
75857 goto whole;
75858
75859 /*
75860 @@ -1363,7 +1844,7 @@ static void fill_elf_header(struct elfhdr *elf, int segs,
75861 return;
75862 }
75863
75864 -static void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
75865 +static void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
75866 {
75867 phdr->p_type = PT_NOTE;
75868 phdr->p_offset = offset;
75869 @@ -1470,9 +1951,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
75870 {
75871 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
75872 int i = 0;
75873 - do
75874 + do {
75875 i += 2;
75876 - while (auxv[i - 2] != AT_NULL);
75877 + } while (auxv[i - 2] != AT_NULL);
75878 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
75879 }
75880
75881 @@ -1481,7 +1962,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
75882 {
75883 mm_segment_t old_fs = get_fs();
75884 set_fs(KERNEL_DS);
75885 - copy_siginfo_to_user((user_siginfo_t __user *) csigdata, siginfo);
75886 + copy_siginfo_to_user((user_siginfo_t __force_user *) csigdata, siginfo);
75887 set_fs(old_fs);
75888 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
75889 }
75890 @@ -2201,7 +2682,7 @@ static int elf_core_dump(struct coredump_params *cprm)
75891 vma = next_vma(vma, gate_vma)) {
75892 unsigned long dump_size;
75893
75894 - dump_size = vma_dump_size(vma, cprm->mm_flags);
75895 + dump_size = vma_dump_size(vma, cprm->mm_flags, cprm->siginfo->si_signo);
75896 vma_filesz[i++] = dump_size;
75897 vma_data_size += dump_size;
75898 }
75899 @@ -2309,6 +2790,167 @@ out:
75900
75901 #endif /* CONFIG_ELF_CORE */
75902
75903 +#ifdef CONFIG_PAX_MPROTECT
75904 +/* PaX: non-PIC ELF libraries need relocations on their executable segments
75905 + * therefore we'll grant them VM_MAYWRITE once during their life. Similarly
75906 + * we'll remove VM_MAYWRITE for good on RELRO segments.
75907 + *
75908 + * The checks favour ld-linux.so behaviour which operates on a per ELF segment
75909 + * basis because we want to allow the common case and not the special ones.
75910 + */
75911 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags)
75912 +{
75913 + struct elfhdr elf_h;
75914 + struct elf_phdr elf_p;
75915 + unsigned long i;
75916 + unsigned long oldflags;
75917 + bool is_textrel_rw, is_textrel_rx, is_relro;
75918 +
75919 + if (!(vma->vm_mm->pax_flags & MF_PAX_MPROTECT) || !vma->vm_file)
75920 + return;
75921 +
75922 + oldflags = vma->vm_flags & (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ);
75923 + newflags &= VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ;
75924 +
75925 +#ifdef CONFIG_PAX_ELFRELOCS
75926 + /* possible TEXTREL */
75927 + is_textrel_rw = !vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYREAD | VM_EXEC | VM_READ) && newflags == (VM_WRITE | VM_READ);
75928 + is_textrel_rx = vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_WRITE | VM_READ) && newflags == (VM_EXEC | VM_READ);
75929 +#else
75930 + is_textrel_rw = false;
75931 + is_textrel_rx = false;
75932 +#endif
75933 +
75934 + /* possible RELRO */
75935 + is_relro = vma->anon_vma && oldflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ) && newflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ);
75936 +
75937 + if (!is_textrel_rw && !is_textrel_rx && !is_relro)
75938 + return;
75939 +
75940 + if (sizeof(elf_h) != kernel_read(vma->vm_file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
75941 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
75942 +
75943 +#ifdef CONFIG_PAX_ETEXECRELOCS
75944 + ((is_textrel_rw || is_textrel_rx) && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
75945 +#else
75946 + ((is_textrel_rw || is_textrel_rx) && elf_h.e_type != ET_DYN) ||
75947 +#endif
75948 +
75949 + (is_relro && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
75950 + !elf_check_arch(&elf_h) ||
75951 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
75952 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
75953 + return;
75954 +
75955 + for (i = 0UL; i < elf_h.e_phnum; i++) {
75956 + if (sizeof(elf_p) != kernel_read(vma->vm_file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
75957 + return;
75958 + switch (elf_p.p_type) {
75959 + case PT_DYNAMIC:
75960 + if (!is_textrel_rw && !is_textrel_rx)
75961 + continue;
75962 + i = 0UL;
75963 + while ((i+1) * sizeof(elf_dyn) <= elf_p.p_filesz) {
75964 + elf_dyn dyn;
75965 +
75966 + if (sizeof(dyn) != kernel_read(vma->vm_file, elf_p.p_offset + i*sizeof(dyn), (char *)&dyn, sizeof(dyn)))
75967 + break;
75968 + if (dyn.d_tag == DT_NULL)
75969 + break;
75970 + if (dyn.d_tag == DT_TEXTREL || (dyn.d_tag == DT_FLAGS && (dyn.d_un.d_val & DF_TEXTREL))) {
75971 + gr_log_textrel(vma, is_textrel_rw);
75972 + if (is_textrel_rw)
75973 + vma->vm_flags |= VM_MAYWRITE;
75974 + else
75975 + /* PaX: disallow write access after relocs are done, hopefully noone else needs it... */
75976 + vma->vm_flags &= ~VM_MAYWRITE;
75977 + break;
75978 + }
75979 + i++;
75980 + }
75981 + is_textrel_rw = false;
75982 + is_textrel_rx = false;
75983 + continue;
75984 +
75985 + case PT_GNU_RELRO:
75986 + if (!is_relro)
75987 + continue;
75988 + if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start)
75989 + vma->vm_flags &= ~VM_MAYWRITE;
75990 + is_relro = false;
75991 + continue;
75992 +
75993 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75994 + case PT_PAX_FLAGS: {
75995 + const char *msg_mprotect = "", *msg_emutramp = "";
75996 + char *buffer_lib, *buffer_exe;
75997 +
75998 + if (elf_p.p_flags & PF_NOMPROTECT)
75999 + msg_mprotect = "MPROTECT disabled";
76000 +
76001 +#ifdef CONFIG_PAX_EMUTRAMP
76002 + if (!(vma->vm_mm->pax_flags & MF_PAX_EMUTRAMP) && !(elf_p.p_flags & PF_NOEMUTRAMP))
76003 + msg_emutramp = "EMUTRAMP enabled";
76004 +#endif
76005 +
76006 + if (!msg_mprotect[0] && !msg_emutramp[0])
76007 + continue;
76008 +
76009 + if (!printk_ratelimit())
76010 + continue;
76011 +
76012 + buffer_lib = (char *)__get_free_page(GFP_KERNEL);
76013 + buffer_exe = (char *)__get_free_page(GFP_KERNEL);
76014 + if (buffer_lib && buffer_exe) {
76015 + char *path_lib, *path_exe;
76016 +
76017 + path_lib = pax_get_path(&vma->vm_file->f_path, buffer_lib, PAGE_SIZE);
76018 + path_exe = pax_get_path(&vma->vm_mm->exe_file->f_path, buffer_exe, PAGE_SIZE);
76019 +
76020 + pr_info("PAX: %s wants %s%s%s on %s\n", path_lib, msg_mprotect,
76021 + (msg_mprotect[0] && msg_emutramp[0] ? " and " : ""), msg_emutramp, path_exe);
76022 +
76023 + }
76024 + free_page((unsigned long)buffer_exe);
76025 + free_page((unsigned long)buffer_lib);
76026 + continue;
76027 + }
76028 +#endif
76029 +
76030 + }
76031 + }
76032 +}
76033 +#endif
76034 +
76035 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
76036 +
76037 +extern int grsec_enable_log_rwxmaps;
76038 +
76039 +static void elf_handle_mmap(struct file *file)
76040 +{
76041 + struct elfhdr elf_h;
76042 + struct elf_phdr elf_p;
76043 + unsigned long i;
76044 +
76045 + if (!grsec_enable_log_rwxmaps)
76046 + return;
76047 +
76048 + if (sizeof(elf_h) != kernel_read(file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
76049 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
76050 + (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC) || !elf_check_arch(&elf_h) ||
76051 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
76052 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
76053 + return;
76054 +
76055 + for (i = 0UL; i < elf_h.e_phnum; i++) {
76056 + if (sizeof(elf_p) != kernel_read(file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
76057 + return;
76058 + if (elf_p.p_type == PT_GNU_STACK && (elf_p.p_flags & PF_X))
76059 + gr_log_ptgnustack(file);
76060 + }
76061 +}
76062 +#endif
76063 +
76064 static int __init init_elf_binfmt(void)
76065 {
76066 register_binfmt(&elf_format);
76067 diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
76068 index d3634bf..10fc244 100644
76069 --- a/fs/binfmt_elf_fdpic.c
76070 +++ b/fs/binfmt_elf_fdpic.c
76071 @@ -1296,7 +1296,7 @@ static inline void fill_elf_fdpic_header(struct elfhdr *elf, int segs)
76072 return;
76073 }
76074
76075 -static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
76076 +static inline void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
76077 {
76078 phdr->p_type = PT_NOTE;
76079 phdr->p_offset = offset;
76080 @@ -1667,7 +1667,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
76081
76082 /* Write notes phdr entry */
76083 {
76084 - int sz = 0;
76085 + size_t sz = 0;
76086
76087 for (i = 0; i < numnote; i++)
76088 sz += notesize(notes + i);
76089 diff --git a/fs/block_dev.c b/fs/block_dev.c
76090 index 1170f8c..2a8acc1 100644
76091 --- a/fs/block_dev.c
76092 +++ b/fs/block_dev.c
76093 @@ -738,7 +738,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
76094 else if (bdev->bd_contains == bdev)
76095 return true; /* is a whole device which isn't held */
76096
76097 - else if (whole->bd_holder == bd_may_claim)
76098 + else if (whole->bd_holder == (void *)bd_may_claim)
76099 return true; /* is a partition of a device that is being partitioned */
76100 else if (whole->bd_holder != NULL)
76101 return false; /* is a partition of a held device */
76102 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
76103 index 54114b4..580cfc9 100644
76104 --- a/fs/btrfs/ctree.c
76105 +++ b/fs/btrfs/ctree.c
76106 @@ -1180,9 +1180,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
76107 free_extent_buffer(buf);
76108 add_root_to_dirty_list(root);
76109 } else {
76110 - if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID)
76111 - parent_start = parent->start;
76112 - else
76113 + if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID) {
76114 + if (parent)
76115 + parent_start = parent->start;
76116 + else
76117 + parent_start = 0;
76118 + } else
76119 parent_start = 0;
76120
76121 WARN_ON(trans->transid != btrfs_header_generation(parent));
76122 diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
76123 index a2ae427..d028233 100644
76124 --- a/fs/btrfs/delayed-inode.c
76125 +++ b/fs/btrfs/delayed-inode.c
76126 @@ -462,7 +462,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
76127
76128 static void finish_one_item(struct btrfs_delayed_root *delayed_root)
76129 {
76130 - int seq = atomic_inc_return(&delayed_root->items_seq);
76131 + int seq = atomic_inc_return_unchecked(&delayed_root->items_seq);
76132 if ((atomic_dec_return(&delayed_root->items) <
76133 BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0) &&
76134 waitqueue_active(&delayed_root->wait))
76135 @@ -1412,7 +1412,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
76136
76137 static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq)
76138 {
76139 - int val = atomic_read(&delayed_root->items_seq);
76140 + int val = atomic_read_unchecked(&delayed_root->items_seq);
76141
76142 if (val < seq || val >= seq + BTRFS_DELAYED_BATCH)
76143 return 1;
76144 @@ -1437,7 +1437,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
76145 int seq;
76146 int ret;
76147
76148 - seq = atomic_read(&delayed_root->items_seq);
76149 + seq = atomic_read_unchecked(&delayed_root->items_seq);
76150
76151 ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0);
76152 if (ret)
76153 @@ -1690,7 +1690,7 @@ int btrfs_should_delete_dir_index(struct list_head *del_list,
76154 *
76155 */
76156 int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
76157 - struct list_head *ins_list)
76158 + struct list_head *ins_list, bool *emitted)
76159 {
76160 struct btrfs_dir_item *di;
76161 struct btrfs_delayed_item *curr, *next;
76162 @@ -1734,6 +1734,7 @@ int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
76163
76164 if (over)
76165 return 1;
76166 + *emitted = true;
76167 }
76168 return 0;
76169 }
76170 diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
76171 index f70119f..b7d2bb4 100644
76172 --- a/fs/btrfs/delayed-inode.h
76173 +++ b/fs/btrfs/delayed-inode.h
76174 @@ -43,7 +43,7 @@ struct btrfs_delayed_root {
76175 */
76176 struct list_head prepare_list;
76177 atomic_t items; /* for delayed items */
76178 - atomic_t items_seq; /* for delayed items */
76179 + atomic_unchecked_t items_seq; /* for delayed items */
76180 int nodes; /* for delayed nodes */
76181 wait_queue_head_t wait;
76182 };
76183 @@ -90,7 +90,7 @@ static inline void btrfs_init_delayed_root(
76184 struct btrfs_delayed_root *delayed_root)
76185 {
76186 atomic_set(&delayed_root->items, 0);
76187 - atomic_set(&delayed_root->items_seq, 0);
76188 + atomic_set_unchecked(&delayed_root->items_seq, 0);
76189 delayed_root->nodes = 0;
76190 spin_lock_init(&delayed_root->lock);
76191 init_waitqueue_head(&delayed_root->wait);
76192 @@ -144,7 +144,7 @@ void btrfs_put_delayed_items(struct list_head *ins_list,
76193 int btrfs_should_delete_dir_index(struct list_head *del_list,
76194 u64 index);
76195 int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
76196 - struct list_head *ins_list);
76197 + struct list_head *ins_list, bool *emitted);
76198
76199 /* for init */
76200 int __init btrfs_delayed_inode_init(void);
76201 diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
76202 index b823fac..c5155de 100644
76203 --- a/fs/btrfs/file.c
76204 +++ b/fs/btrfs/file.c
76205 @@ -1868,8 +1868,13 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
76206 struct btrfs_log_ctx ctx;
76207 int ret = 0;
76208 bool full_sync = 0;
76209 - const u64 len = end - start + 1;
76210 + u64 len;
76211
76212 + /*
76213 + * The range length can be represented by u64, we have to do the typecasts
76214 + * to avoid signed overflow if it's [0, LLONG_MAX] eg. from fsync()
76215 + */
76216 + len = (u64)end - (u64)start + 1;
76217 trace_btrfs_sync_file(file, datasync);
76218
76219 /*
76220 @@ -2057,8 +2062,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
76221 }
76222 }
76223 if (!full_sync) {
76224 - ret = btrfs_wait_ordered_range(inode, start,
76225 - end - start + 1);
76226 + ret = btrfs_wait_ordered_range(inode, start, len);
76227 if (ret) {
76228 btrfs_end_transaction(trans, root);
76229 goto out;
76230 diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
76231 index b54e630..48bd25c 100644
76232 --- a/fs/btrfs/inode.c
76233 +++ b/fs/btrfs/inode.c
76234 @@ -4184,6 +4184,47 @@ static int truncate_space_check(struct btrfs_trans_handle *trans,
76235
76236 }
76237
76238 +static int truncate_inline_extent(struct inode *inode,
76239 + struct btrfs_path *path,
76240 + struct btrfs_key *found_key,
76241 + const u64 item_end,
76242 + const u64 new_size)
76243 +{
76244 + struct extent_buffer *leaf = path->nodes[0];
76245 + int slot = path->slots[0];
76246 + struct btrfs_file_extent_item *fi;
76247 + u32 size = (u32)(new_size - found_key->offset);
76248 + struct btrfs_root *root = BTRFS_I(inode)->root;
76249 +
76250 + fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
76251 +
76252 + if (btrfs_file_extent_compression(leaf, fi) != BTRFS_COMPRESS_NONE) {
76253 + loff_t offset = new_size;
76254 + loff_t page_end = ALIGN(offset, PAGE_CACHE_SIZE);
76255 +
76256 + /*
76257 + * Zero out the remaining of the last page of our inline extent,
76258 + * instead of directly truncating our inline extent here - that
76259 + * would be much more complex (decompressing all the data, then
76260 + * compressing the truncated data, which might be bigger than
76261 + * the size of the inline extent, resize the extent, etc).
76262 + * We release the path because to get the page we might need to
76263 + * read the extent item from disk (data not in the page cache).
76264 + */
76265 + btrfs_release_path(path);
76266 + return btrfs_truncate_page(inode, offset, page_end - offset, 0);
76267 + }
76268 +
76269 + btrfs_set_file_extent_ram_bytes(leaf, fi, size);
76270 + size = btrfs_file_extent_calc_inline_size(size);
76271 + btrfs_truncate_item(root, path, size, 1);
76272 +
76273 + if (test_bit(BTRFS_ROOT_REF_COWS, &root->state))
76274 + inode_sub_bytes(inode, item_end + 1 - new_size);
76275 +
76276 + return 0;
76277 +}
76278 +
76279 /*
76280 * this can truncate away extent items, csum items and directory items.
76281 * It starts at a high offset and removes keys until it can't find
76282 @@ -4378,27 +4419,40 @@ search_again:
76283 * special encodings
76284 */
76285 if (!del_item &&
76286 - btrfs_file_extent_compression(leaf, fi) == 0 &&
76287 btrfs_file_extent_encryption(leaf, fi) == 0 &&
76288 btrfs_file_extent_other_encoding(leaf, fi) == 0) {
76289 - u32 size = new_size - found_key.offset;
76290 -
76291 - if (test_bit(BTRFS_ROOT_REF_COWS, &root->state))
76292 - inode_sub_bytes(inode, item_end + 1 -
76293 - new_size);
76294
76295 /*
76296 - * update the ram bytes to properly reflect
76297 - * the new size of our item
76298 + * Need to release path in order to truncate a
76299 + * compressed extent. So delete any accumulated
76300 + * extent items so far.
76301 */
76302 - btrfs_set_file_extent_ram_bytes(leaf, fi, size);
76303 - size =
76304 - btrfs_file_extent_calc_inline_size(size);
76305 - btrfs_truncate_item(root, path, size, 1);
76306 + if (btrfs_file_extent_compression(leaf, fi) !=
76307 + BTRFS_COMPRESS_NONE && pending_del_nr) {
76308 + err = btrfs_del_items(trans, root, path,
76309 + pending_del_slot,
76310 + pending_del_nr);
76311 + if (err) {
76312 + btrfs_abort_transaction(trans,
76313 + root,
76314 + err);
76315 + goto error;
76316 + }
76317 + pending_del_nr = 0;
76318 + }
76319 +
76320 + err = truncate_inline_extent(inode, path,
76321 + &found_key,
76322 + item_end,
76323 + new_size);
76324 + if (err) {
76325 + btrfs_abort_transaction(trans,
76326 + root, err);
76327 + goto error;
76328 + }
76329 } else if (test_bit(BTRFS_ROOT_REF_COWS,
76330 &root->state)) {
76331 - inode_sub_bytes(inode, item_end + 1 -
76332 - found_key.offset);
76333 + inode_sub_bytes(inode, item_end + 1 - new_size);
76334 }
76335 }
76336 delete:
76337 @@ -5632,6 +5686,7 @@ static int btrfs_real_readdir(struct file *file, struct dir_context *ctx)
76338 char *name_ptr;
76339 int name_len;
76340 int is_curr = 0; /* ctx->pos points to the current index? */
76341 + bool emitted;
76342
76343 /* FIXME, use a real flag for deciding about the key type */
76344 if (root->fs_info->tree_root == root)
76345 @@ -5660,6 +5715,7 @@ static int btrfs_real_readdir(struct file *file, struct dir_context *ctx)
76346 if (ret < 0)
76347 goto err;
76348
76349 + emitted = false;
76350 while (1) {
76351 leaf = path->nodes[0];
76352 slot = path->slots[0];
76353 @@ -5739,6 +5795,7 @@ skip:
76354
76355 if (over)
76356 goto nopos;
76357 + emitted = true;
76358 di_len = btrfs_dir_name_len(leaf, di) +
76359 btrfs_dir_data_len(leaf, di) + sizeof(*di);
76360 di_cur += di_len;
76361 @@ -5751,11 +5808,20 @@ next:
76362 if (key_type == BTRFS_DIR_INDEX_KEY) {
76363 if (is_curr)
76364 ctx->pos++;
76365 - ret = btrfs_readdir_delayed_dir_index(ctx, &ins_list);
76366 + ret = btrfs_readdir_delayed_dir_index(ctx, &ins_list, &emitted);
76367 if (ret)
76368 goto nopos;
76369 }
76370
76371 + /*
76372 + * If we haven't emitted any dir entry, we must not touch ctx->pos as
76373 + * it was was set to the termination value in previous call. We assume
76374 + * that "." and ".." were emitted if we reach this point and set the
76375 + * termination value as well for an empty directory.
76376 + */
76377 + if (ctx->pos > 2 && !emitted)
76378 + goto nopos;
76379 +
76380 /* Reached end of directory/root. Bump pos past the last item. */
76381 ctx->pos++;
76382
76383 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
76384 index cd7ef34..1e31ae3 100644
76385 --- a/fs/btrfs/super.c
76386 +++ b/fs/btrfs/super.c
76387 @@ -265,7 +265,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
76388 function, line, errstr);
76389 return;
76390 }
76391 - ACCESS_ONCE(trans->transaction->aborted) = errno;
76392 + ACCESS_ONCE_RW(trans->transaction->aborted) = errno;
76393 /* Wake up anybody who may be waiting on this transaction */
76394 wake_up(&root->fs_info->transaction_wait);
76395 wake_up(&root->fs_info->transaction_blocked_wait);
76396 diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
76397 index 603b0cc..8e3f600 100644
76398 --- a/fs/btrfs/sysfs.c
76399 +++ b/fs/btrfs/sysfs.c
76400 @@ -481,7 +481,7 @@ static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add)
76401 for (set = 0; set < FEAT_MAX; set++) {
76402 int i;
76403 struct attribute *attrs[2];
76404 - struct attribute_group agroup = {
76405 + attribute_group_no_const agroup = {
76406 .name = "features",
76407 .attrs = attrs,
76408 };
76409 diff --git a/fs/btrfs/tests/free-space-tests.c b/fs/btrfs/tests/free-space-tests.c
76410 index 2299bfd..4098e72 100644
76411 --- a/fs/btrfs/tests/free-space-tests.c
76412 +++ b/fs/btrfs/tests/free-space-tests.c
76413 @@ -463,7 +463,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
76414 * extent entry.
76415 */
76416 use_bitmap_op = cache->free_space_ctl->op->use_bitmap;
76417 - cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
76418 + pax_open_kernel();
76419 + *(void **)&cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
76420 + pax_close_kernel();
76421
76422 /*
76423 * Extent entry covering free space range [128Mb - 256Kb, 128Mb - 128Kb[
76424 @@ -870,7 +872,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
76425 if (ret)
76426 return ret;
76427
76428 - cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
76429 + pax_open_kernel();
76430 + *(void **)&cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
76431 + pax_close_kernel();
76432 __btrfs_remove_free_space_cache(cache->free_space_ctl);
76433
76434 return 0;
76435 diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
76436 index 6916a78..4598936 100644
76437 --- a/fs/btrfs/tree-log.h
76438 +++ b/fs/btrfs/tree-log.h
76439 @@ -45,7 +45,7 @@ static inline void btrfs_init_log_ctx(struct btrfs_log_ctx *ctx)
76440 static inline void btrfs_set_log_full_commit(struct btrfs_fs_info *fs_info,
76441 struct btrfs_trans_handle *trans)
76442 {
76443 - ACCESS_ONCE(fs_info->last_trans_log_full_commit) = trans->transid;
76444 + ACCESS_ONCE_RW(fs_info->last_trans_log_full_commit) = trans->transid;
76445 }
76446
76447 static inline int btrfs_need_log_full_commit(struct btrfs_fs_info *fs_info,
76448 diff --git a/fs/buffer.c b/fs/buffer.c
76449 index 1cf7a53..b49f8c0 100644
76450 --- a/fs/buffer.c
76451 +++ b/fs/buffer.c
76452 @@ -3440,7 +3440,7 @@ void __init buffer_init(void)
76453 bh_cachep = kmem_cache_create("buffer_head",
76454 sizeof(struct buffer_head), 0,
76455 (SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
76456 - SLAB_MEM_SPREAD),
76457 + SLAB_MEM_SPREAD|SLAB_NO_SANITIZE),
76458 NULL);
76459
76460 /*
76461 diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
76462 index 6af790f..ec4c1e6 100644
76463 --- a/fs/cachefiles/bind.c
76464 +++ b/fs/cachefiles/bind.c
76465 @@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
76466 args);
76467
76468 /* start by checking things over */
76469 - ASSERT(cache->fstop_percent >= 0 &&
76470 - cache->fstop_percent < cache->fcull_percent &&
76471 + ASSERT(cache->fstop_percent < cache->fcull_percent &&
76472 cache->fcull_percent < cache->frun_percent &&
76473 cache->frun_percent < 100);
76474
76475 - ASSERT(cache->bstop_percent >= 0 &&
76476 - cache->bstop_percent < cache->bcull_percent &&
76477 + ASSERT(cache->bstop_percent < cache->bcull_percent &&
76478 cache->bcull_percent < cache->brun_percent &&
76479 cache->brun_percent < 100);
76480
76481 diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c
76482 index f601def..b2cf704 100644
76483 --- a/fs/cachefiles/daemon.c
76484 +++ b/fs/cachefiles/daemon.c
76485 @@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer,
76486 if (n > buflen)
76487 return -EMSGSIZE;
76488
76489 - if (copy_to_user(_buffer, buffer, n) != 0)
76490 + if (n > sizeof(buffer) || copy_to_user(_buffer, buffer, n) != 0)
76491 return -EFAULT;
76492
76493 return n;
76494 @@ -222,7 +222,7 @@ static ssize_t cachefiles_daemon_write(struct file *file,
76495 if (test_bit(CACHEFILES_DEAD, &cache->flags))
76496 return -EIO;
76497
76498 - if (datalen < 0 || datalen > PAGE_SIZE - 1)
76499 + if (datalen > PAGE_SIZE - 1)
76500 return -EOPNOTSUPP;
76501
76502 /* drag the command string into the kernel so we can parse it */
76503 @@ -385,7 +385,7 @@ static int cachefiles_daemon_fstop(struct cachefiles_cache *cache, char *args)
76504 if (args[0] != '%' || args[1] != '\0')
76505 return -EINVAL;
76506
76507 - if (fstop < 0 || fstop >= cache->fcull_percent)
76508 + if (fstop >= cache->fcull_percent)
76509 return cachefiles_daemon_range_error(cache, args);
76510
76511 cache->fstop_percent = fstop;
76512 @@ -457,7 +457,7 @@ static int cachefiles_daemon_bstop(struct cachefiles_cache *cache, char *args)
76513 if (args[0] != '%' || args[1] != '\0')
76514 return -EINVAL;
76515
76516 - if (bstop < 0 || bstop >= cache->bcull_percent)
76517 + if (bstop >= cache->bcull_percent)
76518 return cachefiles_daemon_range_error(cache, args);
76519
76520 cache->bstop_percent = bstop;
76521 diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
76522 index aecd085..3584e2f 100644
76523 --- a/fs/cachefiles/internal.h
76524 +++ b/fs/cachefiles/internal.h
76525 @@ -65,7 +65,7 @@ struct cachefiles_cache {
76526 wait_queue_head_t daemon_pollwq; /* poll waitqueue for daemon */
76527 struct rb_root active_nodes; /* active nodes (can't be culled) */
76528 rwlock_t active_lock; /* lock for active_nodes */
76529 - atomic_t gravecounter; /* graveyard uniquifier */
76530 + atomic_unchecked_t gravecounter; /* graveyard uniquifier */
76531 unsigned frun_percent; /* when to stop culling (% files) */
76532 unsigned fcull_percent; /* when to start culling (% files) */
76533 unsigned fstop_percent; /* when to stop allocating (% files) */
76534 @@ -177,19 +177,19 @@ extern int cachefiles_check_in_use(struct cachefiles_cache *cache,
76535 * proc.c
76536 */
76537 #ifdef CONFIG_CACHEFILES_HISTOGRAM
76538 -extern atomic_t cachefiles_lookup_histogram[HZ];
76539 -extern atomic_t cachefiles_mkdir_histogram[HZ];
76540 -extern atomic_t cachefiles_create_histogram[HZ];
76541 +extern atomic_unchecked_t cachefiles_lookup_histogram[HZ];
76542 +extern atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
76543 +extern atomic_unchecked_t cachefiles_create_histogram[HZ];
76544
76545 extern int __init cachefiles_proc_init(void);
76546 extern void cachefiles_proc_cleanup(void);
76547 static inline
76548 -void cachefiles_hist(atomic_t histogram[], unsigned long start_jif)
76549 +void cachefiles_hist(atomic_unchecked_t histogram[], unsigned long start_jif)
76550 {
76551 unsigned long jif = jiffies - start_jif;
76552 if (jif >= HZ)
76553 jif = HZ - 1;
76554 - atomic_inc(&histogram[jif]);
76555 + atomic_inc_unchecked(&histogram[jif]);
76556 }
76557
76558 #else
76559 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
76560 index fc1056f..501a546 100644
76561 --- a/fs/cachefiles/namei.c
76562 +++ b/fs/cachefiles/namei.c
76563 @@ -312,7 +312,7 @@ try_again:
76564 /* first step is to make up a grave dentry in the graveyard */
76565 sprintf(nbuffer, "%08x%08x",
76566 (uint32_t) get_seconds(),
76567 - (uint32_t) atomic_inc_return(&cache->gravecounter));
76568 + (uint32_t) atomic_inc_return_unchecked(&cache->gravecounter));
76569
76570 /* do the multiway lock magic */
76571 trap = lock_rename(cache->graveyard, dir);
76572 diff --git a/fs/cachefiles/proc.c b/fs/cachefiles/proc.c
76573 index eccd339..4c1d995 100644
76574 --- a/fs/cachefiles/proc.c
76575 +++ b/fs/cachefiles/proc.c
76576 @@ -14,9 +14,9 @@
76577 #include <linux/seq_file.h>
76578 #include "internal.h"
76579
76580 -atomic_t cachefiles_lookup_histogram[HZ];
76581 -atomic_t cachefiles_mkdir_histogram[HZ];
76582 -atomic_t cachefiles_create_histogram[HZ];
76583 +atomic_unchecked_t cachefiles_lookup_histogram[HZ];
76584 +atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
76585 +atomic_unchecked_t cachefiles_create_histogram[HZ];
76586
76587 /*
76588 * display the latency histogram
76589 @@ -35,9 +35,9 @@ static int cachefiles_histogram_show(struct seq_file *m, void *v)
76590 return 0;
76591 default:
76592 index = (unsigned long) v - 3;
76593 - x = atomic_read(&cachefiles_lookup_histogram[index]);
76594 - y = atomic_read(&cachefiles_mkdir_histogram[index]);
76595 - z = atomic_read(&cachefiles_create_histogram[index]);
76596 + x = atomic_read_unchecked(&cachefiles_lookup_histogram[index]);
76597 + y = atomic_read_unchecked(&cachefiles_mkdir_histogram[index]);
76598 + z = atomic_read_unchecked(&cachefiles_create_histogram[index]);
76599 if (x == 0 && y == 0 && z == 0)
76600 return 0;
76601
76602 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
76603 index 9314b4e..4a1f602 100644
76604 --- a/fs/ceph/dir.c
76605 +++ b/fs/ceph/dir.c
76606 @@ -214,10 +214,18 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
76607 spin_unlock(&dentry->d_lock);
76608
76609 if (emit_dentry) {
76610 + char d_name[DNAME_INLINE_LEN];
76611 + const unsigned char *name;
76612 +
76613 dout(" %llu (%llu) dentry %p %pd %p\n", di->offset, ctx->pos,
76614 dentry, dentry, d_inode(dentry));
76615 ctx->pos = di->offset;
76616 - if (!dir_emit(ctx, dentry->d_name.name,
76617 + name = dentry->d_name.name;
76618 + if (name == dentry->d_iname) {
76619 + memcpy(d_name, name, dentry->d_name.len);
76620 + name = d_name;
76621 + }
76622 + if (!dir_emit(ctx, name,
76623 dentry->d_name.len,
76624 ceph_translate_ino(dentry->d_sb,
76625 d_inode(dentry)->i_ino),
76626 @@ -259,7 +267,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
76627 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
76628 struct ceph_mds_client *mdsc = fsc->mdsc;
76629 unsigned frag = fpos_frag(ctx->pos);
76630 - int off = fpos_off(ctx->pos);
76631 + unsigned int off = fpos_off(ctx->pos);
76632 int err;
76633 u32 ftype;
76634 struct ceph_mds_reply_info_parsed *rinfo;
76635 diff --git a/fs/ceph/super.c b/fs/ceph/super.c
76636 index 7b6bfcb..f8d5416 100644
76637 --- a/fs/ceph/super.c
76638 +++ b/fs/ceph/super.c
76639 @@ -906,7 +906,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
76640 /*
76641 * construct our own bdi so we can control readahead, etc.
76642 */
76643 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
76644 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
76645
76646 static int ceph_register_bdi(struct super_block *sb,
76647 struct ceph_fs_client *fsc)
76648 @@ -923,7 +923,7 @@ static int ceph_register_bdi(struct super_block *sb,
76649 VM_MAX_READAHEAD * 1024 / PAGE_CACHE_SIZE;
76650
76651 err = bdi_register(&fsc->backing_dev_info, NULL, "ceph-%ld",
76652 - atomic_long_inc_return(&bdi_seq));
76653 + atomic_long_inc_return_unchecked(&bdi_seq));
76654 if (!err)
76655 sb->s_bdi = &fsc->backing_dev_info;
76656 return err;
76657 diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
76658 index 7febcf2..62a5721 100644
76659 --- a/fs/cifs/cifs_debug.c
76660 +++ b/fs/cifs/cifs_debug.c
76661 @@ -269,8 +269,8 @@ static ssize_t cifs_stats_proc_write(struct file *file,
76662
76663 if (strtobool(&c, &bv) == 0) {
76664 #ifdef CONFIG_CIFS_STATS2
76665 - atomic_set(&totBufAllocCount, 0);
76666 - atomic_set(&totSmBufAllocCount, 0);
76667 + atomic_set_unchecked(&totBufAllocCount, 0);
76668 + atomic_set_unchecked(&totSmBufAllocCount, 0);
76669 #endif /* CONFIG_CIFS_STATS2 */
76670 spin_lock(&cifs_tcp_ses_lock);
76671 list_for_each(tmp1, &cifs_tcp_ses_list) {
76672 @@ -283,7 +283,7 @@ static ssize_t cifs_stats_proc_write(struct file *file,
76673 tcon = list_entry(tmp3,
76674 struct cifs_tcon,
76675 tcon_list);
76676 - atomic_set(&tcon->num_smbs_sent, 0);
76677 + atomic_set_unchecked(&tcon->num_smbs_sent, 0);
76678 if (server->ops->clear_stats)
76679 server->ops->clear_stats(tcon);
76680 }
76681 @@ -315,8 +315,8 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
76682 smBufAllocCount.counter, cifs_min_small);
76683 #ifdef CONFIG_CIFS_STATS2
76684 seq_printf(m, "Total Large %d Small %d Allocations\n",
76685 - atomic_read(&totBufAllocCount),
76686 - atomic_read(&totSmBufAllocCount));
76687 + atomic_read_unchecked(&totBufAllocCount),
76688 + atomic_read_unchecked(&totSmBufAllocCount));
76689 #endif /* CONFIG_CIFS_STATS2 */
76690
76691 seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount));
76692 @@ -345,7 +345,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
76693 if (tcon->need_reconnect)
76694 seq_puts(m, "\tDISCONNECTED ");
76695 seq_printf(m, "\nSMBs: %d",
76696 - atomic_read(&tcon->num_smbs_sent));
76697 + atomic_read_unchecked(&tcon->num_smbs_sent));
76698 if (server->ops->print_stats)
76699 server->ops->print_stats(m, tcon);
76700 }
76701 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
76702 index 6a1119e..b2f2160 100644
76703 --- a/fs/cifs/cifsfs.c
76704 +++ b/fs/cifs/cifsfs.c
76705 @@ -1082,7 +1082,7 @@ cifs_init_request_bufs(void)
76706 */
76707 cifs_req_cachep = kmem_cache_create("cifs_request",
76708 CIFSMaxBufSize + max_hdr_size, 0,
76709 - SLAB_HWCACHE_ALIGN, NULL);
76710 + SLAB_HWCACHE_ALIGN | SLAB_USERCOPY, NULL);
76711 if (cifs_req_cachep == NULL)
76712 return -ENOMEM;
76713
76714 @@ -1109,7 +1109,7 @@ cifs_init_request_bufs(void)
76715 efficient to alloc 1 per page off the slab compared to 17K (5page)
76716 alloc of large cifs buffers even when page debugging is on */
76717 cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
76718 - MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN,
76719 + MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN | SLAB_USERCOPY,
76720 NULL);
76721 if (cifs_sm_req_cachep == NULL) {
76722 mempool_destroy(cifs_req_poolp);
76723 @@ -1194,8 +1194,8 @@ init_cifs(void)
76724 atomic_set(&bufAllocCount, 0);
76725 atomic_set(&smBufAllocCount, 0);
76726 #ifdef CONFIG_CIFS_STATS2
76727 - atomic_set(&totBufAllocCount, 0);
76728 - atomic_set(&totSmBufAllocCount, 0);
76729 + atomic_set_unchecked(&totBufAllocCount, 0);
76730 + atomic_set_unchecked(&totSmBufAllocCount, 0);
76731 #endif /* CONFIG_CIFS_STATS2 */
76732
76733 atomic_set(&midCount, 0);
76734 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
76735 index b406a32..243eb1c 100644
76736 --- a/fs/cifs/cifsglob.h
76737 +++ b/fs/cifs/cifsglob.h
76738 @@ -832,35 +832,35 @@ struct cifs_tcon {
76739 __u16 Flags; /* optional support bits */
76740 enum statusEnum tidStatus;
76741 #ifdef CONFIG_CIFS_STATS
76742 - atomic_t num_smbs_sent;
76743 + atomic_unchecked_t num_smbs_sent;
76744 union {
76745 struct {
76746 - atomic_t num_writes;
76747 - atomic_t num_reads;
76748 - atomic_t num_flushes;
76749 - atomic_t num_oplock_brks;
76750 - atomic_t num_opens;
76751 - atomic_t num_closes;
76752 - atomic_t num_deletes;
76753 - atomic_t num_mkdirs;
76754 - atomic_t num_posixopens;
76755 - atomic_t num_posixmkdirs;
76756 - atomic_t num_rmdirs;
76757 - atomic_t num_renames;
76758 - atomic_t num_t2renames;
76759 - atomic_t num_ffirst;
76760 - atomic_t num_fnext;
76761 - atomic_t num_fclose;
76762 - atomic_t num_hardlinks;
76763 - atomic_t num_symlinks;
76764 - atomic_t num_locks;
76765 - atomic_t num_acl_get;
76766 - atomic_t num_acl_set;
76767 + atomic_unchecked_t num_writes;
76768 + atomic_unchecked_t num_reads;
76769 + atomic_unchecked_t num_flushes;
76770 + atomic_unchecked_t num_oplock_brks;
76771 + atomic_unchecked_t num_opens;
76772 + atomic_unchecked_t num_closes;
76773 + atomic_unchecked_t num_deletes;
76774 + atomic_unchecked_t num_mkdirs;
76775 + atomic_unchecked_t num_posixopens;
76776 + atomic_unchecked_t num_posixmkdirs;
76777 + atomic_unchecked_t num_rmdirs;
76778 + atomic_unchecked_t num_renames;
76779 + atomic_unchecked_t num_t2renames;
76780 + atomic_unchecked_t num_ffirst;
76781 + atomic_unchecked_t num_fnext;
76782 + atomic_unchecked_t num_fclose;
76783 + atomic_unchecked_t num_hardlinks;
76784 + atomic_unchecked_t num_symlinks;
76785 + atomic_unchecked_t num_locks;
76786 + atomic_unchecked_t num_acl_get;
76787 + atomic_unchecked_t num_acl_set;
76788 } cifs_stats;
76789 #ifdef CONFIG_CIFS_SMB2
76790 struct {
76791 - atomic_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
76792 - atomic_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
76793 + atomic_unchecked_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
76794 + atomic_unchecked_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
76795 } smb2_stats;
76796 #endif /* CONFIG_CIFS_SMB2 */
76797 } stats;
76798 @@ -1207,7 +1207,7 @@ convert_delimiter(char *path, char delim)
76799 }
76800
76801 #ifdef CONFIG_CIFS_STATS
76802 -#define cifs_stats_inc atomic_inc
76803 +#define cifs_stats_inc atomic_inc_unchecked
76804
76805 static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
76806 unsigned int bytes)
76807 @@ -1574,8 +1574,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
76808 /* Various Debug counters */
76809 GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
76810 #ifdef CONFIG_CIFS_STATS2
76811 -GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */
76812 -GLOBAL_EXTERN atomic_t totSmBufAllocCount;
76813 +GLOBAL_EXTERN atomic_unchecked_t totBufAllocCount; /* total allocated over all time */
76814 +GLOBAL_EXTERN atomic_unchecked_t totSmBufAllocCount;
76815 #endif
76816 GLOBAL_EXTERN atomic_t smBufAllocCount;
76817 GLOBAL_EXTERN atomic_t midCount;
76818 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
76819 index 3f50cee..7741620 100644
76820 --- a/fs/cifs/file.c
76821 +++ b/fs/cifs/file.c
76822 @@ -2054,10 +2054,14 @@ static int cifs_writepages(struct address_space *mapping,
76823 index = mapping->writeback_index; /* Start from prev offset */
76824 end = -1;
76825 } else {
76826 - index = wbc->range_start >> PAGE_CACHE_SHIFT;
76827 - end = wbc->range_end >> PAGE_CACHE_SHIFT;
76828 - if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
76829 + if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) {
76830 range_whole = true;
76831 + index = 0;
76832 + end = ULONG_MAX;
76833 + } else {
76834 + index = wbc->range_start >> PAGE_CACHE_SHIFT;
76835 + end = wbc->range_end >> PAGE_CACHE_SHIFT;
76836 + }
76837 scanned = true;
76838 }
76839 server = cifs_sb_master_tcon(cifs_sb)->ses->server;
76840 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
76841 index 8442b8b..ea6986f 100644
76842 --- a/fs/cifs/misc.c
76843 +++ b/fs/cifs/misc.c
76844 @@ -170,7 +170,7 @@ cifs_buf_get(void)
76845 memset(ret_buf, 0, buf_size + 3);
76846 atomic_inc(&bufAllocCount);
76847 #ifdef CONFIG_CIFS_STATS2
76848 - atomic_inc(&totBufAllocCount);
76849 + atomic_inc_unchecked(&totBufAllocCount);
76850 #endif /* CONFIG_CIFS_STATS2 */
76851 }
76852
76853 @@ -205,7 +205,7 @@ cifs_small_buf_get(void)
76854 /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/
76855 atomic_inc(&smBufAllocCount);
76856 #ifdef CONFIG_CIFS_STATS2
76857 - atomic_inc(&totSmBufAllocCount);
76858 + atomic_inc_unchecked(&totSmBufAllocCount);
76859 #endif /* CONFIG_CIFS_STATS2 */
76860
76861 }
76862 diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
76863 index fc537c2..47d654c 100644
76864 --- a/fs/cifs/smb1ops.c
76865 +++ b/fs/cifs/smb1ops.c
76866 @@ -622,27 +622,27 @@ static void
76867 cifs_clear_stats(struct cifs_tcon *tcon)
76868 {
76869 #ifdef CONFIG_CIFS_STATS
76870 - atomic_set(&tcon->stats.cifs_stats.num_writes, 0);
76871 - atomic_set(&tcon->stats.cifs_stats.num_reads, 0);
76872 - atomic_set(&tcon->stats.cifs_stats.num_flushes, 0);
76873 - atomic_set(&tcon->stats.cifs_stats.num_oplock_brks, 0);
76874 - atomic_set(&tcon->stats.cifs_stats.num_opens, 0);
76875 - atomic_set(&tcon->stats.cifs_stats.num_posixopens, 0);
76876 - atomic_set(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
76877 - atomic_set(&tcon->stats.cifs_stats.num_closes, 0);
76878 - atomic_set(&tcon->stats.cifs_stats.num_deletes, 0);
76879 - atomic_set(&tcon->stats.cifs_stats.num_mkdirs, 0);
76880 - atomic_set(&tcon->stats.cifs_stats.num_rmdirs, 0);
76881 - atomic_set(&tcon->stats.cifs_stats.num_renames, 0);
76882 - atomic_set(&tcon->stats.cifs_stats.num_t2renames, 0);
76883 - atomic_set(&tcon->stats.cifs_stats.num_ffirst, 0);
76884 - atomic_set(&tcon->stats.cifs_stats.num_fnext, 0);
76885 - atomic_set(&tcon->stats.cifs_stats.num_fclose, 0);
76886 - atomic_set(&tcon->stats.cifs_stats.num_hardlinks, 0);
76887 - atomic_set(&tcon->stats.cifs_stats.num_symlinks, 0);
76888 - atomic_set(&tcon->stats.cifs_stats.num_locks, 0);
76889 - atomic_set(&tcon->stats.cifs_stats.num_acl_get, 0);
76890 - atomic_set(&tcon->stats.cifs_stats.num_acl_set, 0);
76891 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_writes, 0);
76892 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_reads, 0);
76893 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_flushes, 0);
76894 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_oplock_brks, 0);
76895 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_opens, 0);
76896 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixopens, 0);
76897 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
76898 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_closes, 0);
76899 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_deletes, 0);
76900 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_mkdirs, 0);
76901 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_rmdirs, 0);
76902 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_renames, 0);
76903 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_t2renames, 0);
76904 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_ffirst, 0);
76905 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fnext, 0);
76906 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fclose, 0);
76907 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_hardlinks, 0);
76908 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_symlinks, 0);
76909 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_locks, 0);
76910 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_get, 0);
76911 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_set, 0);
76912 #endif
76913 }
76914
76915 @@ -651,36 +651,36 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
76916 {
76917 #ifdef CONFIG_CIFS_STATS
76918 seq_printf(m, " Oplocks breaks: %d",
76919 - atomic_read(&tcon->stats.cifs_stats.num_oplock_brks));
76920 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_oplock_brks));
76921 seq_printf(m, "\nReads: %d Bytes: %llu",
76922 - atomic_read(&tcon->stats.cifs_stats.num_reads),
76923 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_reads),
76924 (long long)(tcon->bytes_read));
76925 seq_printf(m, "\nWrites: %d Bytes: %llu",
76926 - atomic_read(&tcon->stats.cifs_stats.num_writes),
76927 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_writes),
76928 (long long)(tcon->bytes_written));
76929 seq_printf(m, "\nFlushes: %d",
76930 - atomic_read(&tcon->stats.cifs_stats.num_flushes));
76931 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_flushes));
76932 seq_printf(m, "\nLocks: %d HardLinks: %d Symlinks: %d",
76933 - atomic_read(&tcon->stats.cifs_stats.num_locks),
76934 - atomic_read(&tcon->stats.cifs_stats.num_hardlinks),
76935 - atomic_read(&tcon->stats.cifs_stats.num_symlinks));
76936 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_locks),
76937 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_hardlinks),
76938 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_symlinks));
76939 seq_printf(m, "\nOpens: %d Closes: %d Deletes: %d",
76940 - atomic_read(&tcon->stats.cifs_stats.num_opens),
76941 - atomic_read(&tcon->stats.cifs_stats.num_closes),
76942 - atomic_read(&tcon->stats.cifs_stats.num_deletes));
76943 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_opens),
76944 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_closes),
76945 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_deletes));
76946 seq_printf(m, "\nPosix Opens: %d Posix Mkdirs: %d",
76947 - atomic_read(&tcon->stats.cifs_stats.num_posixopens),
76948 - atomic_read(&tcon->stats.cifs_stats.num_posixmkdirs));
76949 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixopens),
76950 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs));
76951 seq_printf(m, "\nMkdirs: %d Rmdirs: %d",
76952 - atomic_read(&tcon->stats.cifs_stats.num_mkdirs),
76953 - atomic_read(&tcon->stats.cifs_stats.num_rmdirs));
76954 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_mkdirs),
76955 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_rmdirs));
76956 seq_printf(m, "\nRenames: %d T2 Renames %d",
76957 - atomic_read(&tcon->stats.cifs_stats.num_renames),
76958 - atomic_read(&tcon->stats.cifs_stats.num_t2renames));
76959 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_renames),
76960 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_t2renames));
76961 seq_printf(m, "\nFindFirst: %d FNext %d FClose %d",
76962 - atomic_read(&tcon->stats.cifs_stats.num_ffirst),
76963 - atomic_read(&tcon->stats.cifs_stats.num_fnext),
76964 - atomic_read(&tcon->stats.cifs_stats.num_fclose));
76965 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_ffirst),
76966 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fnext),
76967 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fclose));
76968 #endif
76969 }
76970
76971 diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
76972 index 18da19f..38a3a79 100644
76973 --- a/fs/cifs/smb2ops.c
76974 +++ b/fs/cifs/smb2ops.c
76975 @@ -422,8 +422,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
76976 #ifdef CONFIG_CIFS_STATS
76977 int i;
76978 for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) {
76979 - atomic_set(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
76980 - atomic_set(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
76981 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
76982 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
76983 }
76984 #endif
76985 }
76986 @@ -463,65 +463,65 @@ static void
76987 smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
76988 {
76989 #ifdef CONFIG_CIFS_STATS
76990 - atomic_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
76991 - atomic_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
76992 + atomic_unchecked_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
76993 + atomic_unchecked_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
76994 seq_printf(m, "\nNegotiates: %d sent %d failed",
76995 - atomic_read(&sent[SMB2_NEGOTIATE_HE]),
76996 - atomic_read(&failed[SMB2_NEGOTIATE_HE]));
76997 + atomic_read_unchecked(&sent[SMB2_NEGOTIATE_HE]),
76998 + atomic_read_unchecked(&failed[SMB2_NEGOTIATE_HE]));
76999 seq_printf(m, "\nSessionSetups: %d sent %d failed",
77000 - atomic_read(&sent[SMB2_SESSION_SETUP_HE]),
77001 - atomic_read(&failed[SMB2_SESSION_SETUP_HE]));
77002 + atomic_read_unchecked(&sent[SMB2_SESSION_SETUP_HE]),
77003 + atomic_read_unchecked(&failed[SMB2_SESSION_SETUP_HE]));
77004 seq_printf(m, "\nLogoffs: %d sent %d failed",
77005 - atomic_read(&sent[SMB2_LOGOFF_HE]),
77006 - atomic_read(&failed[SMB2_LOGOFF_HE]));
77007 + atomic_read_unchecked(&sent[SMB2_LOGOFF_HE]),
77008 + atomic_read_unchecked(&failed[SMB2_LOGOFF_HE]));
77009 seq_printf(m, "\nTreeConnects: %d sent %d failed",
77010 - atomic_read(&sent[SMB2_TREE_CONNECT_HE]),
77011 - atomic_read(&failed[SMB2_TREE_CONNECT_HE]));
77012 + atomic_read_unchecked(&sent[SMB2_TREE_CONNECT_HE]),
77013 + atomic_read_unchecked(&failed[SMB2_TREE_CONNECT_HE]));
77014 seq_printf(m, "\nTreeDisconnects: %d sent %d failed",
77015 - atomic_read(&sent[SMB2_TREE_DISCONNECT_HE]),
77016 - atomic_read(&failed[SMB2_TREE_DISCONNECT_HE]));
77017 + atomic_read_unchecked(&sent[SMB2_TREE_DISCONNECT_HE]),
77018 + atomic_read_unchecked(&failed[SMB2_TREE_DISCONNECT_HE]));
77019 seq_printf(m, "\nCreates: %d sent %d failed",
77020 - atomic_read(&sent[SMB2_CREATE_HE]),
77021 - atomic_read(&failed[SMB2_CREATE_HE]));
77022 + atomic_read_unchecked(&sent[SMB2_CREATE_HE]),
77023 + atomic_read_unchecked(&failed[SMB2_CREATE_HE]));
77024 seq_printf(m, "\nCloses: %d sent %d failed",
77025 - atomic_read(&sent[SMB2_CLOSE_HE]),
77026 - atomic_read(&failed[SMB2_CLOSE_HE]));
77027 + atomic_read_unchecked(&sent[SMB2_CLOSE_HE]),
77028 + atomic_read_unchecked(&failed[SMB2_CLOSE_HE]));
77029 seq_printf(m, "\nFlushes: %d sent %d failed",
77030 - atomic_read(&sent[SMB2_FLUSH_HE]),
77031 - atomic_read(&failed[SMB2_FLUSH_HE]));
77032 + atomic_read_unchecked(&sent[SMB2_FLUSH_HE]),
77033 + atomic_read_unchecked(&failed[SMB2_FLUSH_HE]));
77034 seq_printf(m, "\nReads: %d sent %d failed",
77035 - atomic_read(&sent[SMB2_READ_HE]),
77036 - atomic_read(&failed[SMB2_READ_HE]));
77037 + atomic_read_unchecked(&sent[SMB2_READ_HE]),
77038 + atomic_read_unchecked(&failed[SMB2_READ_HE]));
77039 seq_printf(m, "\nWrites: %d sent %d failed",
77040 - atomic_read(&sent[SMB2_WRITE_HE]),
77041 - atomic_read(&failed[SMB2_WRITE_HE]));
77042 + atomic_read_unchecked(&sent[SMB2_WRITE_HE]),
77043 + atomic_read_unchecked(&failed[SMB2_WRITE_HE]));
77044 seq_printf(m, "\nLocks: %d sent %d failed",
77045 - atomic_read(&sent[SMB2_LOCK_HE]),
77046 - atomic_read(&failed[SMB2_LOCK_HE]));
77047 + atomic_read_unchecked(&sent[SMB2_LOCK_HE]),
77048 + atomic_read_unchecked(&failed[SMB2_LOCK_HE]));
77049 seq_printf(m, "\nIOCTLs: %d sent %d failed",
77050 - atomic_read(&sent[SMB2_IOCTL_HE]),
77051 - atomic_read(&failed[SMB2_IOCTL_HE]));
77052 + atomic_read_unchecked(&sent[SMB2_IOCTL_HE]),
77053 + atomic_read_unchecked(&failed[SMB2_IOCTL_HE]));
77054 seq_printf(m, "\nCancels: %d sent %d failed",
77055 - atomic_read(&sent[SMB2_CANCEL_HE]),
77056 - atomic_read(&failed[SMB2_CANCEL_HE]));
77057 + atomic_read_unchecked(&sent[SMB2_CANCEL_HE]),
77058 + atomic_read_unchecked(&failed[SMB2_CANCEL_HE]));
77059 seq_printf(m, "\nEchos: %d sent %d failed",
77060 - atomic_read(&sent[SMB2_ECHO_HE]),
77061 - atomic_read(&failed[SMB2_ECHO_HE]));
77062 + atomic_read_unchecked(&sent[SMB2_ECHO_HE]),
77063 + atomic_read_unchecked(&failed[SMB2_ECHO_HE]));
77064 seq_printf(m, "\nQueryDirectories: %d sent %d failed",
77065 - atomic_read(&sent[SMB2_QUERY_DIRECTORY_HE]),
77066 - atomic_read(&failed[SMB2_QUERY_DIRECTORY_HE]));
77067 + atomic_read_unchecked(&sent[SMB2_QUERY_DIRECTORY_HE]),
77068 + atomic_read_unchecked(&failed[SMB2_QUERY_DIRECTORY_HE]));
77069 seq_printf(m, "\nChangeNotifies: %d sent %d failed",
77070 - atomic_read(&sent[SMB2_CHANGE_NOTIFY_HE]),
77071 - atomic_read(&failed[SMB2_CHANGE_NOTIFY_HE]));
77072 + atomic_read_unchecked(&sent[SMB2_CHANGE_NOTIFY_HE]),
77073 + atomic_read_unchecked(&failed[SMB2_CHANGE_NOTIFY_HE]));
77074 seq_printf(m, "\nQueryInfos: %d sent %d failed",
77075 - atomic_read(&sent[SMB2_QUERY_INFO_HE]),
77076 - atomic_read(&failed[SMB2_QUERY_INFO_HE]));
77077 + atomic_read_unchecked(&sent[SMB2_QUERY_INFO_HE]),
77078 + atomic_read_unchecked(&failed[SMB2_QUERY_INFO_HE]));
77079 seq_printf(m, "\nSetInfos: %d sent %d failed",
77080 - atomic_read(&sent[SMB2_SET_INFO_HE]),
77081 - atomic_read(&failed[SMB2_SET_INFO_HE]));
77082 + atomic_read_unchecked(&sent[SMB2_SET_INFO_HE]),
77083 + atomic_read_unchecked(&failed[SMB2_SET_INFO_HE]));
77084 seq_printf(m, "\nOplockBreaks: %d sent %d failed",
77085 - atomic_read(&sent[SMB2_OPLOCK_BREAK_HE]),
77086 - atomic_read(&failed[SMB2_OPLOCK_BREAK_HE]));
77087 + atomic_read_unchecked(&sent[SMB2_OPLOCK_BREAK_HE]),
77088 + atomic_read_unchecked(&failed[SMB2_OPLOCK_BREAK_HE]));
77089 #endif
77090 }
77091
77092 diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
77093 index 60dd831..42f911c 100644
77094 --- a/fs/cifs/smb2pdu.c
77095 +++ b/fs/cifs/smb2pdu.c
77096 @@ -2252,8 +2252,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
77097 default:
77098 cifs_dbg(VFS, "info level %u isn't supported\n",
77099 srch_inf->info_level);
77100 - rc = -EINVAL;
77101 - goto qdir_exit;
77102 + return -EINVAL;
77103 }
77104
77105 req->FileIndex = cpu_to_le32(index);
77106 diff --git a/fs/coda/cache.c b/fs/coda/cache.c
77107 index 5bb630a..043dc70 100644
77108 --- a/fs/coda/cache.c
77109 +++ b/fs/coda/cache.c
77110 @@ -24,7 +24,7 @@
77111 #include "coda_linux.h"
77112 #include "coda_cache.h"
77113
77114 -static atomic_t permission_epoch = ATOMIC_INIT(0);
77115 +static atomic_unchecked_t permission_epoch = ATOMIC_INIT(0);
77116
77117 /* replace or extend an acl cache hit */
77118 void coda_cache_enter(struct inode *inode, int mask)
77119 @@ -32,7 +32,7 @@ void coda_cache_enter(struct inode *inode, int mask)
77120 struct coda_inode_info *cii = ITOC(inode);
77121
77122 spin_lock(&cii->c_lock);
77123 - cii->c_cached_epoch = atomic_read(&permission_epoch);
77124 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch);
77125 if (!uid_eq(cii->c_uid, current_fsuid())) {
77126 cii->c_uid = current_fsuid();
77127 cii->c_cached_perm = mask;
77128 @@ -46,14 +46,14 @@ void coda_cache_clear_inode(struct inode *inode)
77129 {
77130 struct coda_inode_info *cii = ITOC(inode);
77131 spin_lock(&cii->c_lock);
77132 - cii->c_cached_epoch = atomic_read(&permission_epoch) - 1;
77133 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch) - 1;
77134 spin_unlock(&cii->c_lock);
77135 }
77136
77137 /* remove all acl caches */
77138 void coda_cache_clear_all(struct super_block *sb)
77139 {
77140 - atomic_inc(&permission_epoch);
77141 + atomic_inc_unchecked(&permission_epoch);
77142 }
77143
77144
77145 @@ -66,7 +66,7 @@ int coda_cache_check(struct inode *inode, int mask)
77146 spin_lock(&cii->c_lock);
77147 hit = (mask & cii->c_cached_perm) == mask &&
77148 uid_eq(cii->c_uid, current_fsuid()) &&
77149 - cii->c_cached_epoch == atomic_read(&permission_epoch);
77150 + cii->c_cached_epoch == atomic_read_unchecked(&permission_epoch);
77151 spin_unlock(&cii->c_lock);
77152
77153 return hit;
77154 diff --git a/fs/compat.c b/fs/compat.c
77155 index 6fd272d..dd34ba2 100644
77156 --- a/fs/compat.c
77157 +++ b/fs/compat.c
77158 @@ -54,7 +54,7 @@
77159 #include <asm/ioctls.h>
77160 #include "internal.h"
77161
77162 -int compat_log = 1;
77163 +int compat_log = 0;
77164
77165 int compat_printk(const char *fmt, ...)
77166 {
77167 @@ -512,7 +512,7 @@ COMPAT_SYSCALL_DEFINE2(io_setup, unsigned, nr_reqs, u32 __user *, ctx32p)
77168
77169 set_fs(KERNEL_DS);
77170 /* The __user pointer cast is valid because of the set_fs() */
77171 - ret = sys_io_setup(nr_reqs, (aio_context_t __user *) &ctx64);
77172 + ret = sys_io_setup(nr_reqs, (aio_context_t __force_user *) &ctx64);
77173 set_fs(oldfs);
77174 /* truncating is ok because it's a user address */
77175 if (!ret)
77176 @@ -562,7 +562,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
77177 goto out;
77178
77179 ret = -EINVAL;
77180 - if (nr_segs > UIO_MAXIOV || nr_segs < 0)
77181 + if (nr_segs > UIO_MAXIOV)
77182 goto out;
77183 if (nr_segs > fast_segs) {
77184 ret = -ENOMEM;
77185 @@ -844,6 +844,7 @@ struct compat_old_linux_dirent {
77186 struct compat_readdir_callback {
77187 struct dir_context ctx;
77188 struct compat_old_linux_dirent __user *dirent;
77189 + struct file * file;
77190 int result;
77191 };
77192
77193 @@ -863,6 +864,10 @@ static int compat_fillonedir(struct dir_context *ctx, const char *name,
77194 buf->result = -EOVERFLOW;
77195 return -EOVERFLOW;
77196 }
77197 +
77198 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
77199 + return 0;
77200 +
77201 buf->result++;
77202 dirent = buf->dirent;
77203 if (!access_ok(VERIFY_WRITE, dirent,
77204 @@ -894,6 +899,7 @@ COMPAT_SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
77205 if (!f.file)
77206 return -EBADF;
77207
77208 + buf.file = f.file;
77209 error = iterate_dir(f.file, &buf.ctx);
77210 if (buf.result)
77211 error = buf.result;
77212 @@ -913,6 +919,7 @@ struct compat_getdents_callback {
77213 struct dir_context ctx;
77214 struct compat_linux_dirent __user *current_dir;
77215 struct compat_linux_dirent __user *previous;
77216 + struct file * file;
77217 int count;
77218 int error;
77219 };
77220 @@ -935,6 +942,10 @@ static int compat_filldir(struct dir_context *ctx, const char *name, int namlen,
77221 buf->error = -EOVERFLOW;
77222 return -EOVERFLOW;
77223 }
77224 +
77225 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
77226 + return 0;
77227 +
77228 dirent = buf->previous;
77229 if (dirent) {
77230 if (__put_user(offset, &dirent->d_off))
77231 @@ -980,6 +991,7 @@ COMPAT_SYSCALL_DEFINE3(getdents, unsigned int, fd,
77232 if (!f.file)
77233 return -EBADF;
77234
77235 + buf.file = f.file;
77236 error = iterate_dir(f.file, &buf.ctx);
77237 if (error >= 0)
77238 error = buf.error;
77239 @@ -1000,6 +1012,7 @@ struct compat_getdents_callback64 {
77240 struct dir_context ctx;
77241 struct linux_dirent64 __user *current_dir;
77242 struct linux_dirent64 __user *previous;
77243 + struct file * file;
77244 int count;
77245 int error;
77246 };
77247 @@ -1018,6 +1031,10 @@ static int compat_filldir64(struct dir_context *ctx, const char *name,
77248 buf->error = -EINVAL; /* only used if we fail.. */
77249 if (reclen > buf->count)
77250 return -EINVAL;
77251 +
77252 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
77253 + return 0;
77254 +
77255 dirent = buf->previous;
77256
77257 if (dirent) {
77258 @@ -1067,6 +1084,7 @@ COMPAT_SYSCALL_DEFINE3(getdents64, unsigned int, fd,
77259 if (!f.file)
77260 return -EBADF;
77261
77262 + buf.file = f.file;
77263 error = iterate_dir(f.file, &buf.ctx);
77264 if (error >= 0)
77265 error = buf.error;
77266 diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
77267 index 4d24d17..4f8c09e 100644
77268 --- a/fs/compat_binfmt_elf.c
77269 +++ b/fs/compat_binfmt_elf.c
77270 @@ -30,11 +30,13 @@
77271 #undef elf_phdr
77272 #undef elf_shdr
77273 #undef elf_note
77274 +#undef elf_dyn
77275 #undef elf_addr_t
77276 #define elfhdr elf32_hdr
77277 #define elf_phdr elf32_phdr
77278 #define elf_shdr elf32_shdr
77279 #define elf_note elf32_note
77280 +#define elf_dyn Elf32_Dyn
77281 #define elf_addr_t Elf32_Addr
77282
77283 /*
77284 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
77285 index 48851f6..6c79d32 100644
77286 --- a/fs/compat_ioctl.c
77287 +++ b/fs/compat_ioctl.c
77288 @@ -622,7 +622,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
77289 return -EFAULT;
77290 if (__get_user(udata, &ss32->iomem_base))
77291 return -EFAULT;
77292 - ss.iomem_base = compat_ptr(udata);
77293 + ss.iomem_base = (unsigned char __force_kernel *)compat_ptr(udata);
77294 if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
77295 __get_user(ss.port_high, &ss32->port_high))
77296 return -EFAULT;
77297 @@ -704,8 +704,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
77298 for (i = 0; i < nmsgs; i++) {
77299 if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
77300 return -EFAULT;
77301 - if (get_user(datap, &umsgs[i].buf) ||
77302 - put_user(compat_ptr(datap), &tmsgs[i].buf))
77303 + if (get_user(datap, (compat_caddr_t __user *)&umsgs[i].buf) ||
77304 + put_user(compat_ptr(datap), (u8 __user * __user *)&tmsgs[i].buf))
77305 return -EFAULT;
77306 }
77307 return sys_ioctl(fd, cmd, (unsigned long)tdata);
77308 @@ -798,7 +798,7 @@ static int compat_ioctl_preallocate(struct file *file,
77309 copy_in_user(&p->l_len, &p32->l_len, sizeof(s64)) ||
77310 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
77311 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
77312 - copy_in_user(&p->l_pad, &p32->l_pad, 4*sizeof(u32)))
77313 + copy_in_user(p->l_pad, p32->l_pad, 4*sizeof(u32)))
77314 return -EFAULT;
77315
77316 return ioctl_preallocate(file, p);
77317 @@ -1621,8 +1621,8 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
77318 static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
77319 {
77320 unsigned int a, b;
77321 - a = *(unsigned int *)p;
77322 - b = *(unsigned int *)q;
77323 + a = *(const unsigned int *)p;
77324 + b = *(const unsigned int *)q;
77325 if (a > b)
77326 return 1;
77327 if (a < b)
77328 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
77329 index c81ce7f..f3de5fd 100644
77330 --- a/fs/configfs/dir.c
77331 +++ b/fs/configfs/dir.c
77332 @@ -1540,7 +1540,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
77333 }
77334 for (p = q->next; p != &parent_sd->s_children; p = p->next) {
77335 struct configfs_dirent *next;
77336 - const char *name;
77337 + const unsigned char * name;
77338 + char d_name[sizeof(next->s_dentry->d_iname)];
77339 int len;
77340 struct inode *inode = NULL;
77341
77342 @@ -1549,7 +1550,12 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
77343 continue;
77344
77345 name = configfs_get_name(next);
77346 - len = strlen(name);
77347 + if (next->s_dentry && name == next->s_dentry->d_iname) {
77348 + len = next->s_dentry->d_name.len;
77349 + memcpy(d_name, name, len);
77350 + name = d_name;
77351 + } else
77352 + len = strlen(name);
77353
77354 /*
77355 * We'll have a dentry and an inode for
77356 diff --git a/fs/coredump.c b/fs/coredump.c
77357 index a8f7564..3dde349 100644
77358 --- a/fs/coredump.c
77359 +++ b/fs/coredump.c
77360 @@ -457,8 +457,8 @@ static void wait_for_dump_helpers(struct file *file)
77361 struct pipe_inode_info *pipe = file->private_data;
77362
77363 pipe_lock(pipe);
77364 - pipe->readers++;
77365 - pipe->writers--;
77366 + atomic_inc(&pipe->readers);
77367 + atomic_dec(&pipe->writers);
77368 wake_up_interruptible_sync(&pipe->wait);
77369 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
77370 pipe_unlock(pipe);
77371 @@ -467,11 +467,11 @@ static void wait_for_dump_helpers(struct file *file)
77372 * We actually want wait_event_freezable() but then we need
77373 * to clear TIF_SIGPENDING and improve dump_interrupted().
77374 */
77375 - wait_event_interruptible(pipe->wait, pipe->readers == 1);
77376 + wait_event_interruptible(pipe->wait, atomic_read(&pipe->readers) == 1);
77377
77378 pipe_lock(pipe);
77379 - pipe->readers--;
77380 - pipe->writers++;
77381 + atomic_dec(&pipe->readers);
77382 + atomic_inc(&pipe->writers);
77383 pipe_unlock(pipe);
77384 }
77385
77386 @@ -518,7 +518,9 @@ void do_coredump(const siginfo_t *siginfo)
77387 /* require nonrelative corefile path and be extra careful */
77388 bool need_suid_safe = false;
77389 bool core_dumped = false;
77390 - static atomic_t core_dump_count = ATOMIC_INIT(0);
77391 + static atomic_unchecked_t core_dump_count = ATOMIC_INIT(0);
77392 + long signr = siginfo->si_signo;
77393 + int dumpable;
77394 struct coredump_params cprm = {
77395 .siginfo = siginfo,
77396 .regs = signal_pt_regs(),
77397 @@ -531,12 +533,17 @@ void do_coredump(const siginfo_t *siginfo)
77398 .mm_flags = mm->flags,
77399 };
77400
77401 - audit_core_dumps(siginfo->si_signo);
77402 + audit_core_dumps(signr);
77403 +
77404 + dumpable = __get_dumpable(cprm.mm_flags);
77405 +
77406 + if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
77407 + gr_handle_brute_attach(dumpable);
77408
77409 binfmt = mm->binfmt;
77410 if (!binfmt || !binfmt->core_dump)
77411 goto fail;
77412 - if (!__get_dumpable(cprm.mm_flags))
77413 + if (!dumpable)
77414 goto fail;
77415
77416 cred = prepare_creds();
77417 @@ -554,7 +561,7 @@ void do_coredump(const siginfo_t *siginfo)
77418 need_suid_safe = true;
77419 }
77420
77421 - retval = coredump_wait(siginfo->si_signo, &core_state);
77422 + retval = coredump_wait(signr, &core_state);
77423 if (retval < 0)
77424 goto fail_creds;
77425
77426 @@ -597,7 +604,7 @@ void do_coredump(const siginfo_t *siginfo)
77427 }
77428 cprm.limit = RLIM_INFINITY;
77429
77430 - dump_count = atomic_inc_return(&core_dump_count);
77431 + dump_count = atomic_inc_return_unchecked(&core_dump_count);
77432 if (core_pipe_limit && (core_pipe_limit < dump_count)) {
77433 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
77434 task_tgid_vnr(current), current->comm);
77435 @@ -629,6 +636,8 @@ void do_coredump(const siginfo_t *siginfo)
77436 } else {
77437 struct inode *inode;
77438
77439 + gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
77440 +
77441 if (cprm.limit < binfmt->min_coredump)
77442 goto fail_unlock;
77443
77444 @@ -718,7 +727,7 @@ close_fail:
77445 filp_close(cprm.file, NULL);
77446 fail_dropcount:
77447 if (ispipe)
77448 - atomic_dec(&core_dump_count);
77449 + atomic_dec_unchecked(&core_dump_count);
77450 fail_unlock:
77451 kfree(cn.corename);
77452 coredump_finish(mm, core_dumped);
77453 @@ -739,6 +748,8 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr)
77454 struct file *file = cprm->file;
77455 loff_t pos = file->f_pos;
77456 ssize_t n;
77457 +
77458 + gr_learn_resource(current, RLIMIT_CORE, cprm->written + nr, 1);
77459 if (cprm->written + nr > cprm->limit)
77460 return 0;
77461 while (nr) {
77462 diff --git a/fs/dcache.c b/fs/dcache.c
77463 index e3b44ca..e0d94f1 100644
77464 --- a/fs/dcache.c
77465 +++ b/fs/dcache.c
77466 @@ -545,7 +545,7 @@ static void __dentry_kill(struct dentry *dentry)
77467 * dentry_iput drops the locks, at which point nobody (except
77468 * transient RCU lookups) can reach this dentry.
77469 */
77470 - BUG_ON(dentry->d_lockref.count > 0);
77471 + BUG_ON(__lockref_read(&dentry->d_lockref) > 0);
77472 this_cpu_dec(nr_dentry);
77473 if (dentry->d_op && dentry->d_op->d_release)
77474 dentry->d_op->d_release(dentry);
77475 @@ -598,7 +598,7 @@ static inline struct dentry *lock_parent(struct dentry *dentry)
77476 struct dentry *parent = dentry->d_parent;
77477 if (IS_ROOT(dentry))
77478 return NULL;
77479 - if (unlikely(dentry->d_lockref.count < 0))
77480 + if (unlikely(__lockref_read(&dentry->d_lockref) < 0))
77481 return NULL;
77482 if (likely(spin_trylock(&parent->d_lock)))
77483 return parent;
77484 @@ -660,8 +660,8 @@ static inline bool fast_dput(struct dentry *dentry)
77485 */
77486 if (unlikely(ret < 0)) {
77487 spin_lock(&dentry->d_lock);
77488 - if (dentry->d_lockref.count > 1) {
77489 - dentry->d_lockref.count--;
77490 + if (__lockref_read(&dentry->d_lockref) > 1) {
77491 + __lockref_dec(&dentry->d_lockref);
77492 spin_unlock(&dentry->d_lock);
77493 return 1;
77494 }
77495 @@ -716,7 +716,7 @@ static inline bool fast_dput(struct dentry *dentry)
77496 * else could have killed it and marked it dead. Either way, we
77497 * don't need to do anything else.
77498 */
77499 - if (dentry->d_lockref.count) {
77500 + if (__lockref_read(&dentry->d_lockref)) {
77501 spin_unlock(&dentry->d_lock);
77502 return 1;
77503 }
77504 @@ -726,7 +726,7 @@ static inline bool fast_dput(struct dentry *dentry)
77505 * lock, and we just tested that it was zero, so we can just
77506 * set it to 1.
77507 */
77508 - dentry->d_lockref.count = 1;
77509 + __lockref_set(&dentry->d_lockref, 1);
77510 return 0;
77511 }
77512
77513 @@ -788,7 +788,7 @@ repeat:
77514 dentry->d_flags |= DCACHE_REFERENCED;
77515 dentry_lru_add(dentry);
77516
77517 - dentry->d_lockref.count--;
77518 + __lockref_dec(&dentry->d_lockref);
77519 spin_unlock(&dentry->d_lock);
77520 return;
77521
77522 @@ -803,7 +803,7 @@ EXPORT_SYMBOL(dput);
77523 /* This must be called with d_lock held */
77524 static inline void __dget_dlock(struct dentry *dentry)
77525 {
77526 - dentry->d_lockref.count++;
77527 + __lockref_inc(&dentry->d_lockref);
77528 }
77529
77530 static inline void __dget(struct dentry *dentry)
77531 @@ -844,8 +844,8 @@ repeat:
77532 goto repeat;
77533 }
77534 rcu_read_unlock();
77535 - BUG_ON(!ret->d_lockref.count);
77536 - ret->d_lockref.count++;
77537 + BUG_ON(!__lockref_read(&ret->d_lockref));
77538 + __lockref_inc(&ret->d_lockref);
77539 spin_unlock(&ret->d_lock);
77540 return ret;
77541 }
77542 @@ -923,9 +923,9 @@ restart:
77543 spin_lock(&inode->i_lock);
77544 hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
77545 spin_lock(&dentry->d_lock);
77546 - if (!dentry->d_lockref.count) {
77547 + if (!__lockref_read(&dentry->d_lockref)) {
77548 struct dentry *parent = lock_parent(dentry);
77549 - if (likely(!dentry->d_lockref.count)) {
77550 + if (likely(!__lockref_read(&dentry->d_lockref))) {
77551 __dentry_kill(dentry);
77552 dput(parent);
77553 goto restart;
77554 @@ -960,7 +960,7 @@ static void shrink_dentry_list(struct list_head *list)
77555 * We found an inuse dentry which was not removed from
77556 * the LRU because of laziness during lookup. Do not free it.
77557 */
77558 - if (dentry->d_lockref.count > 0) {
77559 + if (__lockref_read(&dentry->d_lockref) > 0) {
77560 spin_unlock(&dentry->d_lock);
77561 if (parent)
77562 spin_unlock(&parent->d_lock);
77563 @@ -998,8 +998,8 @@ static void shrink_dentry_list(struct list_head *list)
77564 dentry = parent;
77565 while (dentry && !lockref_put_or_lock(&dentry->d_lockref)) {
77566 parent = lock_parent(dentry);
77567 - if (dentry->d_lockref.count != 1) {
77568 - dentry->d_lockref.count--;
77569 + if (__lockref_read(&dentry->d_lockref) != 1) {
77570 + __lockref_inc(&dentry->d_lockref);
77571 spin_unlock(&dentry->d_lock);
77572 if (parent)
77573 spin_unlock(&parent->d_lock);
77574 @@ -1039,7 +1039,7 @@ static enum lru_status dentry_lru_isolate(struct list_head *item,
77575 * counts, just remove them from the LRU. Otherwise give them
77576 * another pass through the LRU.
77577 */
77578 - if (dentry->d_lockref.count) {
77579 + if (__lockref_read(&dentry->d_lockref)) {
77580 d_lru_isolate(lru, dentry);
77581 spin_unlock(&dentry->d_lock);
77582 return LRU_REMOVED;
77583 @@ -1373,7 +1373,7 @@ static enum d_walk_ret select_collect(void *_data, struct dentry *dentry)
77584 } else {
77585 if (dentry->d_flags & DCACHE_LRU_LIST)
77586 d_lru_del(dentry);
77587 - if (!dentry->d_lockref.count) {
77588 + if (!__lockref_read(&dentry->d_lockref)) {
77589 d_shrink_add(dentry, &data->dispose);
77590 data->found++;
77591 }
77592 @@ -1421,7 +1421,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
77593 return D_WALK_CONTINUE;
77594
77595 /* root with refcount 1 is fine */
77596 - if (dentry == _data && dentry->d_lockref.count == 1)
77597 + if (dentry == _data && __lockref_read(&dentry->d_lockref) == 1)
77598 return D_WALK_CONTINUE;
77599
77600 printk(KERN_ERR "BUG: Dentry %p{i=%lx,n=%pd} "
77601 @@ -1430,7 +1430,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
77602 dentry->d_inode ?
77603 dentry->d_inode->i_ino : 0UL,
77604 dentry,
77605 - dentry->d_lockref.count,
77606 + __lockref_read(&dentry->d_lockref),
77607 dentry->d_sb->s_type->name,
77608 dentry->d_sb->s_id);
77609 WARN_ON(1);
77610 @@ -1571,7 +1571,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77611 dentry->d_iname[DNAME_INLINE_LEN-1] = 0;
77612 if (name->len > DNAME_INLINE_LEN-1) {
77613 size_t size = offsetof(struct external_name, name[1]);
77614 - struct external_name *p = kmalloc(size + name->len, GFP_KERNEL);
77615 + struct external_name *p = kmalloc(round_up(size + name->len, sizeof(unsigned long)), GFP_KERNEL);
77616 if (!p) {
77617 kmem_cache_free(dentry_cache, dentry);
77618 return NULL;
77619 @@ -1594,7 +1594,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77620 smp_wmb();
77621 dentry->d_name.name = dname;
77622
77623 - dentry->d_lockref.count = 1;
77624 + __lockref_set(&dentry->d_lockref, 1);
77625 dentry->d_flags = 0;
77626 spin_lock_init(&dentry->d_lock);
77627 seqcount_init(&dentry->d_seq);
77628 @@ -1603,6 +1603,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77629 dentry->d_sb = sb;
77630 dentry->d_op = NULL;
77631 dentry->d_fsdata = NULL;
77632 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
77633 + atomic_set(&dentry->chroot_refcnt, 0);
77634 +#endif
77635 INIT_HLIST_BL_NODE(&dentry->d_hash);
77636 INIT_LIST_HEAD(&dentry->d_lru);
77637 INIT_LIST_HEAD(&dentry->d_subdirs);
77638 @@ -2327,7 +2330,7 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
77639 goto next;
77640 }
77641
77642 - dentry->d_lockref.count++;
77643 + __lockref_inc(&dentry->d_lockref);
77644 found = dentry;
77645 spin_unlock(&dentry->d_lock);
77646 break;
77647 @@ -2395,7 +2398,7 @@ again:
77648 spin_lock(&dentry->d_lock);
77649 inode = dentry->d_inode;
77650 isdir = S_ISDIR(inode->i_mode);
77651 - if (dentry->d_lockref.count == 1) {
77652 + if (__lockref_read(&dentry->d_lockref) == 1) {
77653 if (!spin_trylock(&inode->i_lock)) {
77654 spin_unlock(&dentry->d_lock);
77655 cpu_relax();
77656 @@ -3344,7 +3347,7 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
77657
77658 if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
77659 dentry->d_flags |= DCACHE_GENOCIDE;
77660 - dentry->d_lockref.count--;
77661 + __lockref_dec(&dentry->d_lockref);
77662 }
77663 }
77664 return D_WALK_CONTINUE;
77665 @@ -3452,7 +3455,8 @@ void __init vfs_caches_init_early(void)
77666 void __init vfs_caches_init(void)
77667 {
77668 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
77669 - SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
77670 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY|
77671 + SLAB_NO_SANITIZE, NULL);
77672
77673 dcache_init();
77674 inode_init();
77675 diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
77676 index c711be8..79cf56b 100644
77677 --- a/fs/debugfs/inode.c
77678 +++ b/fs/debugfs/inode.c
77679 @@ -271,8 +271,12 @@ static struct dentry *start_creating(const char *name, struct dentry *parent)
77680 dput(dentry);
77681 dentry = ERR_PTR(-EEXIST);
77682 }
77683 - if (IS_ERR(dentry))
77684 +
77685 + if (IS_ERR(dentry)) {
77686 mutex_unlock(&d_inode(parent)->i_mutex);
77687 + simple_release_fs(&debugfs_mount, &debugfs_mount_count);
77688 + }
77689 +
77690 return dentry;
77691 }
77692
77693 @@ -402,6 +406,10 @@ EXPORT_SYMBOL_GPL(debugfs_create_file_size);
77694 * If debugfs is not enabled in the kernel, the value -%ENODEV will be
77695 * returned.
77696 */
77697 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
77698 +extern int grsec_enable_sysfs_restrict;
77699 +#endif
77700 +
77701 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
77702 {
77703 struct dentry *dentry = start_creating(name, parent);
77704 @@ -414,7 +422,12 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
77705 if (unlikely(!inode))
77706 return failed_creating(dentry);
77707
77708 - inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
77709 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
77710 + if (grsec_enable_sysfs_restrict)
77711 + inode->i_mode = S_IFDIR | S_IRWXU;
77712 + else
77713 +#endif
77714 + inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
77715 inode->i_op = &simple_dir_inode_operations;
77716 inode->i_fop = &simple_dir_operations;
77717
77718 diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
77719 index 754fd6c..3b93157 100644
77720 --- a/fs/dlm/lowcomms.c
77721 +++ b/fs/dlm/lowcomms.c
77722 @@ -538,7 +538,7 @@ static void close_connection(struct connection *con, bool and_other)
77723 /* We only send shutdown messages to nodes that are not part of the cluster */
77724 static void sctp_send_shutdown(sctp_assoc_t associd)
77725 {
77726 - static char outcmsg[CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))];
77727 + char outcmsg[CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))] = {};
77728 struct msghdr outmessage;
77729 struct cmsghdr *cmsg;
77730 struct sctp_sndrcvinfo *sinfo;
77731 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
77732 index 3c4db11..a43976f 100644
77733 --- a/fs/ecryptfs/inode.c
77734 +++ b/fs/ecryptfs/inode.c
77735 @@ -662,7 +662,7 @@ static char *ecryptfs_readlink_lower(struct dentry *dentry, size_t *bufsiz)
77736 old_fs = get_fs();
77737 set_fs(get_ds());
77738 rc = d_inode(lower_dentry)->i_op->readlink(lower_dentry,
77739 - (char __user *)lower_buf,
77740 + (char __force_user *)lower_buf,
77741 PATH_MAX);
77742 set_fs(old_fs);
77743 if (rc < 0)
77744 diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
77745 index e4141f2..d8263e8 100644
77746 --- a/fs/ecryptfs/miscdev.c
77747 +++ b/fs/ecryptfs/miscdev.c
77748 @@ -304,7 +304,7 @@ check_list:
77749 goto out_unlock_msg_ctx;
77750 i = PKT_TYPE_SIZE + PKT_CTR_SIZE;
77751 if (msg_ctx->msg) {
77752 - if (copy_to_user(&buf[i], packet_length, packet_length_size))
77753 + if (packet_length_size > sizeof(packet_length) || copy_to_user(&buf[i], packet_length, packet_length_size))
77754 goto out_unlock_msg_ctx;
77755 i += packet_length_size;
77756 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
77757 diff --git a/fs/exec.c b/fs/exec.c
77758 index 1977c2a..53bf9a0 100644
77759 --- a/fs/exec.c
77760 +++ b/fs/exec.c
77761 @@ -56,8 +56,20 @@
77762 #include <linux/pipe_fs_i.h>
77763 #include <linux/oom.h>
77764 #include <linux/compat.h>
77765 +#include <linux/random.h>
77766 +#include <linux/seq_file.h>
77767 +#include <linux/coredump.h>
77768 +#include <linux/mman.h>
77769 +
77770 +#ifdef CONFIG_PAX_REFCOUNT
77771 +#include <linux/kallsyms.h>
77772 +#include <linux/kdebug.h>
77773 +#endif
77774 +
77775 +#include <trace/events/fs.h>
77776
77777 #include <asm/uaccess.h>
77778 +#include <asm/sections.h>
77779 #include <asm/mmu_context.h>
77780 #include <asm/tlb.h>
77781
77782 @@ -66,19 +78,34 @@
77783
77784 #include <trace/events/sched.h>
77785
77786 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
77787 +void __weak pax_set_initial_flags(struct linux_binprm *bprm)
77788 +{
77789 + 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");
77790 +}
77791 +#endif
77792 +
77793 +#ifdef CONFIG_PAX_HOOK_ACL_FLAGS
77794 +void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
77795 +EXPORT_SYMBOL(pax_set_initial_flags_func);
77796 +#endif
77797 +
77798 int suid_dumpable = 0;
77799
77800 static LIST_HEAD(formats);
77801 static DEFINE_RWLOCK(binfmt_lock);
77802
77803 +extern int gr_process_kernel_exec_ban(void);
77804 +extern int gr_process_suid_exec_ban(const struct linux_binprm *bprm);
77805 +
77806 void __register_binfmt(struct linux_binfmt * fmt, int insert)
77807 {
77808 BUG_ON(!fmt);
77809 if (WARN_ON(!fmt->load_binary))
77810 return;
77811 write_lock(&binfmt_lock);
77812 - insert ? list_add(&fmt->lh, &formats) :
77813 - list_add_tail(&fmt->lh, &formats);
77814 + insert ? pax_list_add((struct list_head *)&fmt->lh, &formats) :
77815 + pax_list_add_tail((struct list_head *)&fmt->lh, &formats);
77816 write_unlock(&binfmt_lock);
77817 }
77818
77819 @@ -87,7 +114,7 @@ EXPORT_SYMBOL(__register_binfmt);
77820 void unregister_binfmt(struct linux_binfmt * fmt)
77821 {
77822 write_lock(&binfmt_lock);
77823 - list_del(&fmt->lh);
77824 + pax_list_del((struct list_head *)&fmt->lh);
77825 write_unlock(&binfmt_lock);
77826 }
77827
77828 @@ -183,18 +210,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
77829 int write)
77830 {
77831 struct page *page;
77832 - int ret;
77833
77834 -#ifdef CONFIG_STACK_GROWSUP
77835 - if (write) {
77836 - ret = expand_downwards(bprm->vma, pos);
77837 - if (ret < 0)
77838 - return NULL;
77839 - }
77840 -#endif
77841 - ret = get_user_pages(current, bprm->mm, pos,
77842 - 1, write, 1, &page, NULL);
77843 - if (ret <= 0)
77844 + if (0 > expand_downwards(bprm->vma, pos))
77845 + return NULL;
77846 + if (0 >= get_user_pages(current, bprm->mm, pos, 1, write, 1, &page, NULL))
77847 return NULL;
77848
77849 if (write) {
77850 @@ -210,6 +229,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
77851 if (size <= ARG_MAX)
77852 return page;
77853
77854 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77855 + // only allow 512KB for argv+env on suid/sgid binaries
77856 + // to prevent easy ASLR exhaustion
77857 + if (((!uid_eq(bprm->cred->euid, current_euid())) ||
77858 + (!gid_eq(bprm->cred->egid, current_egid()))) &&
77859 + (size > (512 * 1024))) {
77860 + put_page(page);
77861 + return NULL;
77862 + }
77863 +#endif
77864 +
77865 /*
77866 * Limit to 1/4-th the stack size for the argv+env strings.
77867 * This ensures that:
77868 @@ -269,6 +299,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
77869 vma->vm_end = STACK_TOP_MAX;
77870 vma->vm_start = vma->vm_end - PAGE_SIZE;
77871 vma->vm_flags = VM_SOFTDIRTY | VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
77872 +
77873 +#ifdef CONFIG_PAX_SEGMEXEC
77874 + vma->vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
77875 +#endif
77876 +
77877 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
77878 INIT_LIST_HEAD(&vma->anon_vma_chain);
77879
77880 @@ -280,6 +315,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
77881 arch_bprm_mm_init(mm, vma);
77882 up_write(&mm->mmap_sem);
77883 bprm->p = vma->vm_end - sizeof(void *);
77884 +
77885 +#ifdef CONFIG_PAX_RANDUSTACK
77886 + if (randomize_va_space)
77887 + bprm->p ^= prandom_u32() & ~PAGE_MASK;
77888 +#endif
77889 +
77890 return 0;
77891 err:
77892 up_write(&mm->mmap_sem);
77893 @@ -396,7 +437,7 @@ struct user_arg_ptr {
77894 } ptr;
77895 };
77896
77897 -static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77898 +const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77899 {
77900 const char __user *native;
77901
77902 @@ -405,14 +446,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77903 compat_uptr_t compat;
77904
77905 if (get_user(compat, argv.ptr.compat + nr))
77906 - return ERR_PTR(-EFAULT);
77907 + return (const char __force_user *)ERR_PTR(-EFAULT);
77908
77909 return compat_ptr(compat);
77910 }
77911 #endif
77912
77913 if (get_user(native, argv.ptr.native + nr))
77914 - return ERR_PTR(-EFAULT);
77915 + return (const char __force_user *)ERR_PTR(-EFAULT);
77916
77917 return native;
77918 }
77919 @@ -431,7 +472,7 @@ static int count(struct user_arg_ptr argv, int max)
77920 if (!p)
77921 break;
77922
77923 - if (IS_ERR(p))
77924 + if (IS_ERR((const char __force_kernel *)p))
77925 return -EFAULT;
77926
77927 if (i >= max)
77928 @@ -466,7 +507,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
77929
77930 ret = -EFAULT;
77931 str = get_user_arg_ptr(argv, argc);
77932 - if (IS_ERR(str))
77933 + if (IS_ERR((const char __force_kernel *)str))
77934 goto out;
77935
77936 len = strnlen_user(str, MAX_ARG_STRLEN);
77937 @@ -548,7 +589,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
77938 int r;
77939 mm_segment_t oldfs = get_fs();
77940 struct user_arg_ptr argv = {
77941 - .ptr.native = (const char __user *const __user *)__argv,
77942 + .ptr.native = (const char __user * const __force_user *)__argv,
77943 };
77944
77945 set_fs(KERNEL_DS);
77946 @@ -583,7 +624,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
77947 unsigned long new_end = old_end - shift;
77948 struct mmu_gather tlb;
77949
77950 - BUG_ON(new_start > new_end);
77951 + if (new_start >= new_end || new_start < mmap_min_addr)
77952 + return -ENOMEM;
77953
77954 /*
77955 * ensure there are no vmas between where we want to go
77956 @@ -592,6 +634,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
77957 if (vma != find_vma(mm, new_start))
77958 return -EFAULT;
77959
77960 +#ifdef CONFIG_PAX_SEGMEXEC
77961 + BUG_ON(pax_find_mirror_vma(vma));
77962 +#endif
77963 +
77964 /*
77965 * cover the whole range: [new_start, old_end)
77966 */
77967 @@ -675,10 +721,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
77968 stack_top = arch_align_stack(stack_top);
77969 stack_top = PAGE_ALIGN(stack_top);
77970
77971 - if (unlikely(stack_top < mmap_min_addr) ||
77972 - unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr))
77973 - return -ENOMEM;
77974 -
77975 stack_shift = vma->vm_end - stack_top;
77976
77977 bprm->p -= stack_shift;
77978 @@ -690,8 +732,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
77979 bprm->exec -= stack_shift;
77980
77981 down_write(&mm->mmap_sem);
77982 +
77983 + /* Move stack pages down in memory. */
77984 + if (stack_shift) {
77985 + ret = shift_arg_pages(vma, stack_shift);
77986 + if (ret)
77987 + goto out_unlock;
77988 + }
77989 +
77990 vm_flags = VM_STACK_FLAGS;
77991
77992 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
77993 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
77994 + vm_flags &= ~VM_EXEC;
77995 +
77996 +#ifdef CONFIG_PAX_MPROTECT
77997 + if (mm->pax_flags & MF_PAX_MPROTECT)
77998 + vm_flags &= ~VM_MAYEXEC;
77999 +#endif
78000 +
78001 + }
78002 +#endif
78003 +
78004 /*
78005 * Adjust stack execute permissions; explicitly enable for
78006 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
78007 @@ -710,13 +772,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
78008 goto out_unlock;
78009 BUG_ON(prev != vma);
78010
78011 - /* Move stack pages down in memory. */
78012 - if (stack_shift) {
78013 - ret = shift_arg_pages(vma, stack_shift);
78014 - if (ret)
78015 - goto out_unlock;
78016 - }
78017 -
78018 /* mprotect_fixup is overkill to remove the temporary stack flags */
78019 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
78020
78021 @@ -740,6 +795,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
78022 #endif
78023 current->mm->start_stack = bprm->p;
78024 ret = expand_stack(vma, stack_base);
78025 +
78026 +#if !defined(CONFIG_STACK_GROWSUP) && defined(CONFIG_PAX_RANDMMAP)
78027 + if (!ret && (mm->pax_flags & MF_PAX_RANDMMAP) && STACK_TOP <= 0xFFFFFFFFU && STACK_TOP > vma->vm_end) {
78028 + unsigned long size;
78029 + vm_flags_t vm_flags;
78030 +
78031 + size = STACK_TOP - vma->vm_end;
78032 + vm_flags = VM_NONE | VM_DONTEXPAND | VM_DONTDUMP;
78033 +
78034 + ret = vma->vm_end != mmap_region(NULL, vma->vm_end, size, vm_flags, 0);
78035 +
78036 +#ifdef CONFIG_X86
78037 + if (!ret) {
78038 + size = PAGE_SIZE + mmap_min_addr + ((mm->delta_mmap ^ mm->delta_stack) & (0xFFUL << PAGE_SHIFT));
78039 + ret = 0 != mmap_region(NULL, 0, PAGE_ALIGN(size), vm_flags, 0);
78040 + }
78041 +#endif
78042 +
78043 + }
78044 +#endif
78045 +
78046 if (ret)
78047 ret = -EFAULT;
78048
78049 @@ -784,8 +860,10 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
78050 if (err)
78051 goto exit;
78052
78053 - if (name->name[0] != '\0')
78054 + if (name->name[0] != '\0') {
78055 fsnotify_open(file);
78056 + trace_open_exec(name->name);
78057 + }
78058
78059 out:
78060 return file;
78061 @@ -818,7 +896,7 @@ int kernel_read(struct file *file, loff_t offset,
78062 old_fs = get_fs();
78063 set_fs(get_ds());
78064 /* The cast to a user pointer is valid due to the set_fs() */
78065 - result = vfs_read(file, (void __user *)addr, count, &pos);
78066 + result = vfs_read(file, (void __force_user *)addr, count, &pos);
78067 set_fs(old_fs);
78068 return result;
78069 }
78070 @@ -863,6 +941,7 @@ static int exec_mmap(struct mm_struct *mm)
78071 tsk->mm = mm;
78072 tsk->active_mm = mm;
78073 activate_mm(active_mm, mm);
78074 + populate_stack();
78075 tsk->mm->vmacache_seqnum = 0;
78076 vmacache_flush(tsk);
78077 task_unlock(tsk);
78078 @@ -1271,7 +1350,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
78079 }
78080 rcu_read_unlock();
78081
78082 - if (p->fs->users > n_fs)
78083 + if (atomic_read(&p->fs->users) > n_fs)
78084 bprm->unsafe |= LSM_UNSAFE_SHARE;
78085 else
78086 p->fs->in_exec = 1;
78087 @@ -1472,6 +1551,31 @@ static int exec_binprm(struct linux_binprm *bprm)
78088 return ret;
78089 }
78090
78091 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
78092 +static DEFINE_PER_CPU(u64, exec_counter);
78093 +static int __init init_exec_counters(void)
78094 +{
78095 + unsigned int cpu;
78096 +
78097 + for_each_possible_cpu(cpu) {
78098 + per_cpu(exec_counter, cpu) = (u64)cpu;
78099 + }
78100 +
78101 + return 0;
78102 +}
78103 +early_initcall(init_exec_counters);
78104 +static inline void increment_exec_counter(void)
78105 +{
78106 + BUILD_BUG_ON(NR_CPUS > (1 << 16));
78107 + current->exec_id = this_cpu_add_return(exec_counter, 1 << 16);
78108 +}
78109 +#else
78110 +static inline void increment_exec_counter(void) {}
78111 +#endif
78112 +
78113 +extern void gr_handle_exec_args(struct linux_binprm *bprm,
78114 + struct user_arg_ptr argv);
78115 +
78116 /*
78117 * sys_execve() executes a new program.
78118 */
78119 @@ -1480,6 +1584,11 @@ static int do_execveat_common(int fd, struct filename *filename,
78120 struct user_arg_ptr envp,
78121 int flags)
78122 {
78123 +#ifdef CONFIG_GRKERNSEC
78124 + struct file *old_exec_file;
78125 + struct acl_subject_label *old_acl;
78126 + struct rlimit old_rlim[RLIM_NLIMITS];
78127 +#endif
78128 char *pathbuf = NULL;
78129 struct linux_binprm *bprm;
78130 struct file *file;
78131 @@ -1489,6 +1598,8 @@ static int do_execveat_common(int fd, struct filename *filename,
78132 if (IS_ERR(filename))
78133 return PTR_ERR(filename);
78134
78135 + gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current_user()->processes), 1);
78136 +
78137 /*
78138 * We move the actual failure in case of RLIMIT_NPROC excess from
78139 * set*uid() to execve() because too many poorly written programs
78140 @@ -1526,6 +1637,11 @@ static int do_execveat_common(int fd, struct filename *filename,
78141 if (IS_ERR(file))
78142 goto out_unmark;
78143
78144 + if (gr_ptrace_readexec(file, bprm->unsafe)) {
78145 + retval = -EPERM;
78146 + goto out_unmark;
78147 + }
78148 +
78149 sched_exec();
78150
78151 bprm->file = file;
78152 @@ -1552,6 +1668,11 @@ static int do_execveat_common(int fd, struct filename *filename,
78153 }
78154 bprm->interp = bprm->filename;
78155
78156 + if (!gr_acl_handle_execve(file->f_path.dentry, file->f_path.mnt)) {
78157 + retval = -EACCES;
78158 + goto out_unmark;
78159 + }
78160 +
78161 retval = bprm_mm_init(bprm);
78162 if (retval)
78163 goto out_unmark;
78164 @@ -1568,24 +1689,70 @@ static int do_execveat_common(int fd, struct filename *filename,
78165 if (retval < 0)
78166 goto out;
78167
78168 +#ifdef CONFIG_GRKERNSEC
78169 + old_acl = current->acl;
78170 + memcpy(old_rlim, current->signal->rlim, sizeof(old_rlim));
78171 + old_exec_file = current->exec_file;
78172 + get_file(file);
78173 + current->exec_file = file;
78174 +#endif
78175 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
78176 + /* limit suid stack to 8MB
78177 + * we saved the old limits above and will restore them if this exec fails
78178 + */
78179 + if (((!uid_eq(bprm->cred->euid, current_euid())) || (!gid_eq(bprm->cred->egid, current_egid()))) &&
78180 + (old_rlim[RLIMIT_STACK].rlim_cur > (8 * 1024 * 1024)))
78181 + current->signal->rlim[RLIMIT_STACK].rlim_cur = 8 * 1024 * 1024;
78182 +#endif
78183 +
78184 + if (gr_process_kernel_exec_ban() || gr_process_suid_exec_ban(bprm)) {
78185 + retval = -EPERM;
78186 + goto out_fail;
78187 + }
78188 +
78189 + if (!gr_tpe_allow(file)) {
78190 + retval = -EACCES;
78191 + goto out_fail;
78192 + }
78193 +
78194 + if (gr_check_crash_exec(file)) {
78195 + retval = -EACCES;
78196 + goto out_fail;
78197 + }
78198 +
78199 + retval = gr_set_proc_label(file->f_path.dentry, file->f_path.mnt,
78200 + bprm->unsafe);
78201 + if (retval < 0)
78202 + goto out_fail;
78203 +
78204 retval = copy_strings_kernel(1, &bprm->filename, bprm);
78205 if (retval < 0)
78206 - goto out;
78207 + goto out_fail;
78208
78209 bprm->exec = bprm->p;
78210 retval = copy_strings(bprm->envc, envp, bprm);
78211 if (retval < 0)
78212 - goto out;
78213 + goto out_fail;
78214
78215 retval = copy_strings(bprm->argc, argv, bprm);
78216 if (retval < 0)
78217 - goto out;
78218 + goto out_fail;
78219 +
78220 + gr_log_chroot_exec(file->f_path.dentry, file->f_path.mnt);
78221 +
78222 + gr_handle_exec_args(bprm, argv);
78223
78224 retval = exec_binprm(bprm);
78225 if (retval < 0)
78226 - goto out;
78227 + goto out_fail;
78228 +#ifdef CONFIG_GRKERNSEC
78229 + if (old_exec_file)
78230 + fput(old_exec_file);
78231 +#endif
78232
78233 /* execve succeeded */
78234 +
78235 + increment_exec_counter();
78236 current->fs->in_exec = 0;
78237 current->in_execve = 0;
78238 acct_update_integrals(current);
78239 @@ -1597,6 +1764,14 @@ static int do_execveat_common(int fd, struct filename *filename,
78240 put_files_struct(displaced);
78241 return retval;
78242
78243 +out_fail:
78244 +#ifdef CONFIG_GRKERNSEC
78245 + current->acl = old_acl;
78246 + memcpy(current->signal->rlim, old_rlim, sizeof(old_rlim));
78247 + fput(current->exec_file);
78248 + current->exec_file = old_exec_file;
78249 +#endif
78250 +
78251 out:
78252 if (bprm->mm) {
78253 acct_arg_size(bprm, 0);
78254 @@ -1743,3 +1918,313 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
78255 argv, envp, flags);
78256 }
78257 #endif
78258 +
78259 +int pax_check_flags(unsigned long *flags)
78260 +{
78261 + int retval = 0;
78262 +
78263 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_SEGMEXEC)
78264 + if (*flags & MF_PAX_SEGMEXEC)
78265 + {
78266 + *flags &= ~MF_PAX_SEGMEXEC;
78267 + retval = -EINVAL;
78268 + }
78269 +#endif
78270 +
78271 + if ((*flags & MF_PAX_PAGEEXEC)
78272 +
78273 +#ifdef CONFIG_PAX_PAGEEXEC
78274 + && (*flags & MF_PAX_SEGMEXEC)
78275 +#endif
78276 +
78277 + )
78278 + {
78279 + *flags &= ~MF_PAX_PAGEEXEC;
78280 + retval = -EINVAL;
78281 + }
78282 +
78283 + if ((*flags & MF_PAX_MPROTECT)
78284 +
78285 +#ifdef CONFIG_PAX_MPROTECT
78286 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
78287 +#endif
78288 +
78289 + )
78290 + {
78291 + *flags &= ~MF_PAX_MPROTECT;
78292 + retval = -EINVAL;
78293 + }
78294 +
78295 + if ((*flags & MF_PAX_EMUTRAMP)
78296 +
78297 +#ifdef CONFIG_PAX_EMUTRAMP
78298 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
78299 +#endif
78300 +
78301 + )
78302 + {
78303 + *flags &= ~MF_PAX_EMUTRAMP;
78304 + retval = -EINVAL;
78305 + }
78306 +
78307 + return retval;
78308 +}
78309 +
78310 +EXPORT_SYMBOL(pax_check_flags);
78311 +
78312 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
78313 +char *pax_get_path(const struct path *path, char *buf, int buflen)
78314 +{
78315 + char *pathname = d_path(path, buf, buflen);
78316 +
78317 + if (IS_ERR(pathname))
78318 + goto toolong;
78319 +
78320 + pathname = mangle_path(buf, pathname, "\t\n\\");
78321 + if (!pathname)
78322 + goto toolong;
78323 +
78324 + *pathname = 0;
78325 + return buf;
78326 +
78327 +toolong:
78328 + return "<path too long>";
78329 +}
78330 +EXPORT_SYMBOL(pax_get_path);
78331 +
78332 +void pax_report_fault(struct pt_regs *regs, void *pc, void *sp)
78333 +{
78334 + struct task_struct *tsk = current;
78335 + struct mm_struct *mm = current->mm;
78336 + char *buffer_exec = (char *)__get_free_page(GFP_KERNEL);
78337 + char *buffer_fault = (char *)__get_free_page(GFP_KERNEL);
78338 + char *path_exec = NULL;
78339 + char *path_fault = NULL;
78340 + unsigned long start = 0UL, end = 0UL, offset = 0UL;
78341 + siginfo_t info = { };
78342 +
78343 + if (buffer_exec && buffer_fault) {
78344 + struct vm_area_struct *vma, *vma_exec = NULL, *vma_fault = NULL;
78345 +
78346 + down_read(&mm->mmap_sem);
78347 + vma = mm->mmap;
78348 + while (vma && (!vma_exec || !vma_fault)) {
78349 + if (vma->vm_file && mm->exe_file == vma->vm_file && (vma->vm_flags & VM_EXEC))
78350 + vma_exec = vma;
78351 + if (vma->vm_start <= (unsigned long)pc && (unsigned long)pc < vma->vm_end)
78352 + vma_fault = vma;
78353 + vma = vma->vm_next;
78354 + }
78355 + if (vma_exec)
78356 + path_exec = pax_get_path(&vma_exec->vm_file->f_path, buffer_exec, PAGE_SIZE);
78357 + if (vma_fault) {
78358 + start = vma_fault->vm_start;
78359 + end = vma_fault->vm_end;
78360 + offset = vma_fault->vm_pgoff << PAGE_SHIFT;
78361 + if (vma_fault->vm_file)
78362 + path_fault = pax_get_path(&vma_fault->vm_file->f_path, buffer_fault, PAGE_SIZE);
78363 + else if ((unsigned long)pc >= mm->start_brk && (unsigned long)pc < mm->brk)
78364 + path_fault = "<heap>";
78365 + else if (vma_fault->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
78366 + path_fault = "<stack>";
78367 + else
78368 + path_fault = "<anonymous mapping>";
78369 + }
78370 + up_read(&mm->mmap_sem);
78371 + }
78372 + if (tsk->signal->curr_ip)
78373 + printk(KERN_ERR "PAX: From %pI4: execution attempt in: %s, %08lx-%08lx %08lx\n", &tsk->signal->curr_ip, path_fault, start, end, offset);
78374 + else
78375 + printk(KERN_ERR "PAX: execution attempt in: %s, %08lx-%08lx %08lx\n", path_fault, start, end, offset);
78376 + 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),
78377 + from_kuid_munged(&init_user_ns, task_uid(tsk)), from_kuid_munged(&init_user_ns, task_euid(tsk)), pc, sp);
78378 + free_page((unsigned long)buffer_exec);
78379 + free_page((unsigned long)buffer_fault);
78380 + pax_report_insns(regs, pc, sp);
78381 + info.si_signo = SIGKILL;
78382 + info.si_errno = 0;
78383 + info.si_code = SI_KERNEL;
78384 + info.si_pid = 0;
78385 + info.si_uid = 0;
78386 + do_coredump(&info);
78387 +}
78388 +#endif
78389 +
78390 +#ifdef CONFIG_PAX_REFCOUNT
78391 +void pax_report_refcount_overflow(struct pt_regs *regs)
78392 +{
78393 + if (current->signal->curr_ip)
78394 + printk(KERN_EMERG "PAX: From %pI4: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n",
78395 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
78396 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
78397 + else
78398 + printk(KERN_EMERG "PAX: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n", current->comm, task_pid_nr(current),
78399 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
78400 + print_symbol(KERN_EMERG "PAX: refcount overflow occured at: %s\n", instruction_pointer(regs));
78401 + preempt_disable();
78402 + show_regs(regs);
78403 + preempt_enable();
78404 + force_sig_info(SIGKILL, SEND_SIG_FORCED, current);
78405 +}
78406 +#endif
78407 +
78408 +#ifdef CONFIG_PAX_USERCOPY
78409 +/* 0: not at all, 1: fully, 2: fully inside frame, -1: partially (implies an error) */
78410 +static noinline int check_stack_object(const void *obj, unsigned long len)
78411 +{
78412 + const void * const stack = task_stack_page(current);
78413 + const void * const stackend = stack + THREAD_SIZE;
78414 +
78415 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
78416 + const void *frame = NULL;
78417 + const void *oldframe;
78418 +#endif
78419 +
78420 + if (obj + len < obj)
78421 + return -1;
78422 +
78423 + if (obj + len <= stack || stackend <= obj)
78424 + return 0;
78425 +
78426 + if (obj < stack || stackend < obj + len)
78427 + return -1;
78428 +
78429 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
78430 + oldframe = __builtin_frame_address(1);
78431 + if (oldframe)
78432 + frame = __builtin_frame_address(2);
78433 + /*
78434 + low ----------------------------------------------> high
78435 + [saved bp][saved ip][args][local vars][saved bp][saved ip]
78436 + ^----------------^
78437 + allow copies only within here
78438 + */
78439 + while (stack <= frame && frame < stackend) {
78440 + /* if obj + len extends past the last frame, this
78441 + check won't pass and the next frame will be 0,
78442 + causing us to bail out and correctly report
78443 + the copy as invalid
78444 + */
78445 + if (obj + len <= frame)
78446 + return obj >= oldframe + 2 * sizeof(void *) ? 2 : -1;
78447 + oldframe = frame;
78448 + frame = *(const void * const *)frame;
78449 + }
78450 + return -1;
78451 +#else
78452 + return 1;
78453 +#endif
78454 +}
78455 +
78456 +static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to_user, const char *type)
78457 +{
78458 + if (current->signal->curr_ip)
78459 + printk(KERN_EMERG "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
78460 + &current->signal->curr_ip, to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
78461 + else
78462 + printk(KERN_EMERG "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
78463 + to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
78464 + dump_stack();
78465 + gr_handle_kernel_exploit();
78466 + do_group_exit(SIGKILL);
78467 +}
78468 +#endif
78469 +
78470 +#ifdef CONFIG_PAX_USERCOPY
78471 +
78472 +static inline bool check_kernel_text_object(unsigned long low, unsigned long high)
78473 +{
78474 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
78475 + unsigned long textlow = ktla_ktva((unsigned long)_stext);
78476 +#ifdef CONFIG_MODULES
78477 + unsigned long texthigh = (unsigned long)MODULES_EXEC_VADDR;
78478 +#else
78479 + unsigned long texthigh = ktla_ktva((unsigned long)_etext);
78480 +#endif
78481 +
78482 +#else
78483 + unsigned long textlow = (unsigned long)_stext;
78484 + unsigned long texthigh = (unsigned long)_etext;
78485 +
78486 +#ifdef CONFIG_X86_64
78487 + /* check against linear mapping as well */
78488 + if (high > (unsigned long)__va(__pa(textlow)) &&
78489 + low < (unsigned long)__va(__pa(texthigh)))
78490 + return true;
78491 +#endif
78492 +
78493 +#endif
78494 +
78495 + if (high <= textlow || low >= texthigh)
78496 + return false;
78497 + else
78498 + return true;
78499 +}
78500 +#endif
78501 +
78502 +void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size)
78503 +{
78504 +#ifdef CONFIG_PAX_USERCOPY
78505 + const char *type;
78506 +#endif
78507 +
78508 +#if !defined(CONFIG_STACK_GROWSUP) && !defined(CONFIG_X86_64)
78509 + unsigned long stackstart = (unsigned long)task_stack_page(current);
78510 + unsigned long currentsp = (unsigned long)&stackstart;
78511 + if (unlikely((currentsp < stackstart + 512 ||
78512 + currentsp >= stackstart + THREAD_SIZE) && !in_interrupt()))
78513 + BUG();
78514 +#endif
78515 +
78516 +#ifndef CONFIG_PAX_USERCOPY_DEBUG
78517 + if (const_size)
78518 + return;
78519 +#endif
78520 +
78521 +#ifdef CONFIG_PAX_USERCOPY
78522 + if (!n)
78523 + return;
78524 +
78525 + type = check_heap_object(ptr, n);
78526 + if (!type) {
78527 + int ret = check_stack_object(ptr, n);
78528 + if (ret == 1 || ret == 2)
78529 + return;
78530 + if (ret == 0) {
78531 + if (check_kernel_text_object((unsigned long)ptr, (unsigned long)ptr + n))
78532 + type = "<kernel text>";
78533 + else
78534 + return;
78535 + } else
78536 + type = "<process stack>";
78537 + }
78538 +
78539 + pax_report_usercopy(ptr, n, to_user, type);
78540 +#endif
78541 +
78542 +}
78543 +EXPORT_SYMBOL(__check_object_size);
78544 +
78545 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
78546 +void __used pax_track_stack(void)
78547 +{
78548 + unsigned long sp = (unsigned long)&sp;
78549 + if (sp < current_thread_info()->lowest_stack &&
78550 + sp >= (unsigned long)task_stack_page(current) + 2 * sizeof(unsigned long))
78551 + current_thread_info()->lowest_stack = sp;
78552 + if (unlikely((sp & ~(THREAD_SIZE - 1)) < (THREAD_SIZE/16)))
78553 + BUG();
78554 +}
78555 +EXPORT_SYMBOL(pax_track_stack);
78556 +#endif
78557 +
78558 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
78559 +
78560 +void __nocapture(1, 3, 4) __used report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
78561 +{
78562 + printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
78563 + dump_stack();
78564 + do_group_exit(SIGKILL);
78565 +}
78566 +EXPORT_SYMBOL(report_size_overflow);
78567 +#endif
78568 diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
78569 index 9f9992b..8b59411 100644
78570 --- a/fs/ext2/balloc.c
78571 +++ b/fs/ext2/balloc.c
78572 @@ -1184,10 +1184,10 @@ static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
78573
78574 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
78575 root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
78576 - if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
78577 + if (free_blocks < root_blocks + 1 &&
78578 !uid_eq(sbi->s_resuid, current_fsuid()) &&
78579 (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
78580 - !in_group_p (sbi->s_resgid))) {
78581 + !in_group_p (sbi->s_resgid)) && !capable_nolog(CAP_SYS_RESOURCE)) {
78582 return 0;
78583 }
78584 return 1;
78585 diff --git a/fs/ext2/super.c b/fs/ext2/super.c
78586 index 900e19c..f7dc2b8 100644
78587 --- a/fs/ext2/super.c
78588 +++ b/fs/ext2/super.c
78589 @@ -267,10 +267,8 @@ static int ext2_show_options(struct seq_file *seq, struct dentry *root)
78590 #ifdef CONFIG_EXT2_FS_XATTR
78591 if (test_opt(sb, XATTR_USER))
78592 seq_puts(seq, ",user_xattr");
78593 - if (!test_opt(sb, XATTR_USER) &&
78594 - (def_mount_opts & EXT2_DEFM_XATTR_USER)) {
78595 + if (!test_opt(sb, XATTR_USER))
78596 seq_puts(seq, ",nouser_xattr");
78597 - }
78598 #endif
78599
78600 #ifdef CONFIG_EXT2_FS_POSIX_ACL
78601 @@ -856,8 +854,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
78602 if (def_mount_opts & EXT2_DEFM_UID16)
78603 set_opt(sbi->s_mount_opt, NO_UID32);
78604 #ifdef CONFIG_EXT2_FS_XATTR
78605 - if (def_mount_opts & EXT2_DEFM_XATTR_USER)
78606 - set_opt(sbi->s_mount_opt, XATTR_USER);
78607 + /* always enable user xattrs */
78608 + set_opt(sbi->s_mount_opt, XATTR_USER);
78609 #endif
78610 #ifdef CONFIG_EXT2_FS_POSIX_ACL
78611 if (def_mount_opts & EXT2_DEFM_ACL)
78612 diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
78613 index 0b6bfd3..93a2964 100644
78614 --- a/fs/ext2/xattr.c
78615 +++ b/fs/ext2/xattr.c
78616 @@ -247,7 +247,7 @@ ext2_xattr_list(struct dentry *dentry, char *buffer, size_t buffer_size)
78617 struct buffer_head *bh = NULL;
78618 struct ext2_xattr_entry *entry;
78619 char *end;
78620 - size_t rest = buffer_size;
78621 + size_t rest = buffer_size, total_size = 0;
78622 int error;
78623
78624 ea_idebug(inode, "buffer=%p, buffer_size=%ld",
78625 @@ -305,9 +305,10 @@ bad_block: ext2_error(inode->i_sb, "ext2_xattr_list",
78626 buffer += size;
78627 }
78628 rest -= size;
78629 + total_size += size;
78630 }
78631 }
78632 - error = buffer_size - rest; /* total size */
78633 + error = total_size;
78634
78635 cleanup:
78636 brelse(bh);
78637 diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
78638 index 158b5d4..2432610 100644
78639 --- a/fs/ext3/balloc.c
78640 +++ b/fs/ext3/balloc.c
78641 @@ -1438,10 +1438,10 @@ static int ext3_has_free_blocks(struct ext3_sb_info *sbi, int use_reservation)
78642
78643 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
78644 root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
78645 - if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
78646 + if (free_blocks < root_blocks + 1 &&
78647 !use_reservation && !uid_eq(sbi->s_resuid, current_fsuid()) &&
78648 (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
78649 - !in_group_p (sbi->s_resgid))) {
78650 + !in_group_p (sbi->s_resgid)) && !capable_nolog(CAP_SYS_RESOURCE)) {
78651 return 0;
78652 }
78653 return 1;
78654 diff --git a/fs/ext3/super.c b/fs/ext3/super.c
78655 index 5ed0044..656e3d2 100644
78656 --- a/fs/ext3/super.c
78657 +++ b/fs/ext3/super.c
78658 @@ -655,10 +655,8 @@ static int ext3_show_options(struct seq_file *seq, struct dentry *root)
78659 #ifdef CONFIG_EXT3_FS_XATTR
78660 if (test_opt(sb, XATTR_USER))
78661 seq_puts(seq, ",user_xattr");
78662 - if (!test_opt(sb, XATTR_USER) &&
78663 - (def_mount_opts & EXT3_DEFM_XATTR_USER)) {
78664 + if (!test_opt(sb, XATTR_USER))
78665 seq_puts(seq, ",nouser_xattr");
78666 - }
78667 #endif
78668 #ifdef CONFIG_EXT3_FS_POSIX_ACL
78669 if (test_opt(sb, POSIX_ACL))
78670 @@ -1760,8 +1758,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
78671 if (def_mount_opts & EXT3_DEFM_UID16)
78672 set_opt(sbi->s_mount_opt, NO_UID32);
78673 #ifdef CONFIG_EXT3_FS_XATTR
78674 - if (def_mount_opts & EXT3_DEFM_XATTR_USER)
78675 - set_opt(sbi->s_mount_opt, XATTR_USER);
78676 + /* always enable user xattrs */
78677 + set_opt(sbi->s_mount_opt, XATTR_USER);
78678 #endif
78679 #ifdef CONFIG_EXT3_FS_POSIX_ACL
78680 if (def_mount_opts & EXT3_DEFM_ACL)
78681 diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
78682 index 7cf3650..e3f4a51 100644
78683 --- a/fs/ext3/xattr.c
78684 +++ b/fs/ext3/xattr.c
78685 @@ -330,7 +330,7 @@ static int
78686 ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry,
78687 char *buffer, size_t buffer_size)
78688 {
78689 - size_t rest = buffer_size;
78690 + size_t rest = buffer_size, total_size = 0;
78691
78692 for (; !IS_LAST_ENTRY(entry); entry = EXT3_XATTR_NEXT(entry)) {
78693 const struct xattr_handler *handler =
78694 @@ -347,9 +347,10 @@ ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry,
78695 buffer += size;
78696 }
78697 rest -= size;
78698 + total_size += size;
78699 }
78700 }
78701 - return buffer_size - rest;
78702 + return total_size;
78703 }
78704
78705 static int
78706 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
78707 index cd6ea29..1cd2a97 100644
78708 --- a/fs/ext4/balloc.c
78709 +++ b/fs/ext4/balloc.c
78710 @@ -556,8 +556,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
78711 /* Hm, nope. Are (enough) root reserved clusters available? */
78712 if (uid_eq(sbi->s_resuid, current_fsuid()) ||
78713 (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
78714 - capable(CAP_SYS_RESOURCE) ||
78715 - (flags & EXT4_MB_USE_ROOT_BLOCKS)) {
78716 + (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
78717 + capable_nolog(CAP_SYS_RESOURCE)) {
78718
78719 if (free_clusters >= (nclusters + dirty_clusters +
78720 resv_clusters))
78721 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
78722 index f5e9f04..91296b9 100644
78723 --- a/fs/ext4/ext4.h
78724 +++ b/fs/ext4/ext4.h
78725 @@ -1305,19 +1305,19 @@ struct ext4_sb_info {
78726 unsigned long s_mb_last_start;
78727
78728 /* stats for buddy allocator */
78729 - atomic_t s_bal_reqs; /* number of reqs with len > 1 */
78730 - atomic_t s_bal_success; /* we found long enough chunks */
78731 - atomic_t s_bal_allocated; /* in blocks */
78732 - atomic_t s_bal_ex_scanned; /* total extents scanned */
78733 - atomic_t s_bal_goals; /* goal hits */
78734 - atomic_t s_bal_breaks; /* too long searches */
78735 - atomic_t s_bal_2orders; /* 2^order hits */
78736 + atomic_unchecked_t s_bal_reqs; /* number of reqs with len > 1 */
78737 + atomic_unchecked_t s_bal_success; /* we found long enough chunks */
78738 + atomic_unchecked_t s_bal_allocated; /* in blocks */
78739 + atomic_unchecked_t s_bal_ex_scanned; /* total extents scanned */
78740 + atomic_unchecked_t s_bal_goals; /* goal hits */
78741 + atomic_unchecked_t s_bal_breaks; /* too long searches */
78742 + atomic_unchecked_t s_bal_2orders; /* 2^order hits */
78743 spinlock_t s_bal_lock;
78744 unsigned long s_mb_buddies_generated;
78745 unsigned long long s_mb_generation_time;
78746 - atomic_t s_mb_lost_chunks;
78747 - atomic_t s_mb_preallocated;
78748 - atomic_t s_mb_discarded;
78749 + atomic_unchecked_t s_mb_lost_chunks;
78750 + atomic_unchecked_t s_mb_preallocated;
78751 + atomic_unchecked_t s_mb_discarded;
78752 atomic_t s_lock_busy;
78753
78754 /* locality groups */
78755 diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
78756 index 34b610e..ecc47cb 100644
78757 --- a/fs/ext4/mballoc.c
78758 +++ b/fs/ext4/mballoc.c
78759 @@ -1905,7 +1905,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
78760 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
78761
78762 if (EXT4_SB(sb)->s_mb_stats)
78763 - atomic_inc(&EXT4_SB(sb)->s_bal_2orders);
78764 + atomic_inc_unchecked(&EXT4_SB(sb)->s_bal_2orders);
78765
78766 break;
78767 }
78768 @@ -2228,7 +2228,7 @@ repeat:
78769 ac->ac_status = AC_STATUS_CONTINUE;
78770 ac->ac_flags |= EXT4_MB_HINT_FIRST;
78771 cr = 3;
78772 - atomic_inc(&sbi->s_mb_lost_chunks);
78773 + atomic_inc_unchecked(&sbi->s_mb_lost_chunks);
78774 goto repeat;
78775 }
78776 }
78777 @@ -2732,25 +2732,25 @@ int ext4_mb_release(struct super_block *sb)
78778 if (sbi->s_mb_stats) {
78779 ext4_msg(sb, KERN_INFO,
78780 "mballoc: %u blocks %u reqs (%u success)",
78781 - atomic_read(&sbi->s_bal_allocated),
78782 - atomic_read(&sbi->s_bal_reqs),
78783 - atomic_read(&sbi->s_bal_success));
78784 + atomic_read_unchecked(&sbi->s_bal_allocated),
78785 + atomic_read_unchecked(&sbi->s_bal_reqs),
78786 + atomic_read_unchecked(&sbi->s_bal_success));
78787 ext4_msg(sb, KERN_INFO,
78788 "mballoc: %u extents scanned, %u goal hits, "
78789 "%u 2^N hits, %u breaks, %u lost",
78790 - atomic_read(&sbi->s_bal_ex_scanned),
78791 - atomic_read(&sbi->s_bal_goals),
78792 - atomic_read(&sbi->s_bal_2orders),
78793 - atomic_read(&sbi->s_bal_breaks),
78794 - atomic_read(&sbi->s_mb_lost_chunks));
78795 + atomic_read_unchecked(&sbi->s_bal_ex_scanned),
78796 + atomic_read_unchecked(&sbi->s_bal_goals),
78797 + atomic_read_unchecked(&sbi->s_bal_2orders),
78798 + atomic_read_unchecked(&sbi->s_bal_breaks),
78799 + atomic_read_unchecked(&sbi->s_mb_lost_chunks));
78800 ext4_msg(sb, KERN_INFO,
78801 "mballoc: %lu generated and it took %Lu",
78802 sbi->s_mb_buddies_generated,
78803 sbi->s_mb_generation_time);
78804 ext4_msg(sb, KERN_INFO,
78805 "mballoc: %u preallocated, %u discarded",
78806 - atomic_read(&sbi->s_mb_preallocated),
78807 - atomic_read(&sbi->s_mb_discarded));
78808 + atomic_read_unchecked(&sbi->s_mb_preallocated),
78809 + atomic_read_unchecked(&sbi->s_mb_discarded));
78810 }
78811
78812 free_percpu(sbi->s_locality_groups);
78813 @@ -3206,16 +3206,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
78814 struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
78815
78816 if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
78817 - atomic_inc(&sbi->s_bal_reqs);
78818 - atomic_add(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
78819 + atomic_inc_unchecked(&sbi->s_bal_reqs);
78820 + atomic_add_unchecked(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
78821 if (ac->ac_b_ex.fe_len >= ac->ac_o_ex.fe_len)
78822 - atomic_inc(&sbi->s_bal_success);
78823 - atomic_add(ac->ac_found, &sbi->s_bal_ex_scanned);
78824 + atomic_inc_unchecked(&sbi->s_bal_success);
78825 + atomic_add_unchecked(ac->ac_found, &sbi->s_bal_ex_scanned);
78826 if (ac->ac_g_ex.fe_start == ac->ac_b_ex.fe_start &&
78827 ac->ac_g_ex.fe_group == ac->ac_b_ex.fe_group)
78828 - atomic_inc(&sbi->s_bal_goals);
78829 + atomic_inc_unchecked(&sbi->s_bal_goals);
78830 if (ac->ac_found > sbi->s_mb_max_to_scan)
78831 - atomic_inc(&sbi->s_bal_breaks);
78832 + atomic_inc_unchecked(&sbi->s_bal_breaks);
78833 }
78834
78835 if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
78836 @@ -3642,7 +3642,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
78837 trace_ext4_mb_new_inode_pa(ac, pa);
78838
78839 ext4_mb_use_inode_pa(ac, pa);
78840 - atomic_add(pa->pa_free, &sbi->s_mb_preallocated);
78841 + atomic_add_unchecked(pa->pa_free, &sbi->s_mb_preallocated);
78842
78843 ei = EXT4_I(ac->ac_inode);
78844 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
78845 @@ -3702,7 +3702,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
78846 trace_ext4_mb_new_group_pa(ac, pa);
78847
78848 ext4_mb_use_group_pa(ac, pa);
78849 - atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
78850 + atomic_add_unchecked(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
78851
78852 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
78853 lg = ac->ac_lg;
78854 @@ -3791,7 +3791,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
78855 * from the bitmap and continue.
78856 */
78857 }
78858 - atomic_add(free, &sbi->s_mb_discarded);
78859 + atomic_add_unchecked(free, &sbi->s_mb_discarded);
78860
78861 return err;
78862 }
78863 @@ -3809,7 +3809,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
78864 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
78865 BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
78866 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
78867 - atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
78868 + atomic_add_unchecked(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
78869 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
78870
78871 return 0;
78872 diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
78873 index 8313ca3..8a37d08 100644
78874 --- a/fs/ext4/mmp.c
78875 +++ b/fs/ext4/mmp.c
78876 @@ -111,7 +111,7 @@ static int read_mmp_block(struct super_block *sb, struct buffer_head **bh,
78877 void __dump_mmp_msg(struct super_block *sb, struct mmp_struct *mmp,
78878 const char *function, unsigned int line, const char *msg)
78879 {
78880 - __ext4_warning(sb, function, line, msg);
78881 + __ext4_warning(sb, function, line, "%s", msg);
78882 __ext4_warning(sb, function, line,
78883 "MMP failure info: last update time: %llu, last update "
78884 "node: %s, last update device: %s\n",
78885 diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
78886 index cf0c472..ddf284d 100644
78887 --- a/fs/ext4/resize.c
78888 +++ b/fs/ext4/resize.c
78889 @@ -413,7 +413,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78890
78891 ext4_debug("mark blocks [%llu/%u] used\n", block, count);
78892 for (count2 = count; count > 0; count -= count2, block += count2) {
78893 - ext4_fsblk_t start;
78894 + ext4_fsblk_t start, diff;
78895 struct buffer_head *bh;
78896 ext4_group_t group;
78897 int err;
78898 @@ -422,10 +422,6 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78899 start = ext4_group_first_block_no(sb, group);
78900 group -= flex_gd->groups[0].group;
78901
78902 - count2 = EXT4_BLOCKS_PER_GROUP(sb) - (block - start);
78903 - if (count2 > count)
78904 - count2 = count;
78905 -
78906 if (flex_gd->bg_flags[group] & EXT4_BG_BLOCK_UNINIT) {
78907 BUG_ON(flex_gd->count > 1);
78908 continue;
78909 @@ -443,9 +439,15 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78910 err = ext4_journal_get_write_access(handle, bh);
78911 if (err)
78912 return err;
78913 +
78914 + diff = block - start;
78915 + count2 = EXT4_BLOCKS_PER_GROUP(sb) - diff;
78916 + if (count2 > count)
78917 + count2 = count;
78918 +
78919 ext4_debug("mark block bitmap %#04llx (+%llu/%u)\n", block,
78920 - block - start, count2);
78921 - ext4_set_bits(bh->b_data, block - start, count2);
78922 + diff, count2);
78923 + ext4_set_bits(bh->b_data, diff, count2);
78924
78925 err = ext4_handle_dirty_metadata(handle, NULL, bh);
78926 if (unlikely(err))
78927 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
78928 index a5e8c74..a7711a8 100644
78929 --- a/fs/ext4/super.c
78930 +++ b/fs/ext4/super.c
78931 @@ -1274,7 +1274,7 @@ static ext4_fsblk_t get_sb_block(void **data)
78932 }
78933
78934 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
78935 -static char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
78936 +static const char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
78937 "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
78938
78939 #ifdef CONFIG_QUOTA
78940 @@ -2484,7 +2484,7 @@ struct ext4_attr {
78941 int offset;
78942 int deprecated_val;
78943 } u;
78944 -};
78945 +} __do_const;
78946
78947 static int parse_strtoull(const char *buf,
78948 unsigned long long max, unsigned long long *value)
78949 diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
78950 index 16e28c0..728c282 100644
78951 --- a/fs/ext4/xattr.c
78952 +++ b/fs/ext4/xattr.c
78953 @@ -398,7 +398,7 @@ static int
78954 ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
78955 char *buffer, size_t buffer_size)
78956 {
78957 - size_t rest = buffer_size;
78958 + size_t rest = buffer_size, total_size = 0;
78959
78960 for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
78961 const struct xattr_handler *handler =
78962 @@ -415,9 +415,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
78963 buffer += size;
78964 }
78965 rest -= size;
78966 + total_size += size;
78967 }
78968 }
78969 - return buffer_size - rest;
78970 + return total_size;
78971 }
78972
78973 static int
78974 diff --git a/fs/fcntl.c b/fs/fcntl.c
78975 index ee85cd4..9dd0d20 100644
78976 --- a/fs/fcntl.c
78977 +++ b/fs/fcntl.c
78978 @@ -102,6 +102,10 @@ void __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
78979 int force)
78980 {
78981 security_file_set_fowner(filp);
78982 + if (gr_handle_chroot_fowner(pid, type))
78983 + return;
78984 + if (gr_check_protected_task_fowner(pid, type))
78985 + return;
78986 f_modown(filp, pid, type, force);
78987 }
78988 EXPORT_SYMBOL(__f_setown);
78989 diff --git a/fs/fhandle.c b/fs/fhandle.c
78990 index d59712d..2281df9 100644
78991 --- a/fs/fhandle.c
78992 +++ b/fs/fhandle.c
78993 @@ -8,6 +8,7 @@
78994 #include <linux/fs_struct.h>
78995 #include <linux/fsnotify.h>
78996 #include <linux/personality.h>
78997 +#include <linux/grsecurity.h>
78998 #include <asm/uaccess.h>
78999 #include "internal.h"
79000 #include "mount.h"
79001 @@ -67,8 +68,7 @@ static long do_sys_name_to_handle(struct path *path,
79002 } else
79003 retval = 0;
79004 /* copy the mount id */
79005 - if (copy_to_user(mnt_id, &real_mount(path->mnt)->mnt_id,
79006 - sizeof(*mnt_id)) ||
79007 + if (put_user(real_mount(path->mnt)->mnt_id, mnt_id) ||
79008 copy_to_user(ufh, handle,
79009 sizeof(struct file_handle) + handle_bytes))
79010 retval = -EFAULT;
79011 @@ -175,7 +175,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
79012 * the directory. Ideally we would like CAP_DAC_SEARCH.
79013 * But we don't have that
79014 */
79015 - if (!capable(CAP_DAC_READ_SEARCH)) {
79016 + if (!capable(CAP_DAC_READ_SEARCH) || !gr_chroot_fhandle()) {
79017 retval = -EPERM;
79018 goto out_err;
79019 }
79020 diff --git a/fs/file.c b/fs/file.c
79021 index 6c672ad..bf787b0 100644
79022 --- a/fs/file.c
79023 +++ b/fs/file.c
79024 @@ -16,6 +16,7 @@
79025 #include <linux/slab.h>
79026 #include <linux/vmalloc.h>
79027 #include <linux/file.h>
79028 +#include <linux/security.h>
79029 #include <linux/fdtable.h>
79030 #include <linux/bitops.h>
79031 #include <linux/interrupt.h>
79032 @@ -139,7 +140,7 @@ out:
79033 * Return <0 error code on error; 1 on successful completion.
79034 * The files->file_lock should be held on entry, and will be held on exit.
79035 */
79036 -static int expand_fdtable(struct files_struct *files, int nr)
79037 +static int expand_fdtable(struct files_struct *files, unsigned int nr)
79038 __releases(files->file_lock)
79039 __acquires(files->file_lock)
79040 {
79041 @@ -184,7 +185,7 @@ static int expand_fdtable(struct files_struct *files, int nr)
79042 * expanded and execution may have blocked.
79043 * The files->file_lock should be held on entry, and will be held on exit.
79044 */
79045 -static int expand_files(struct files_struct *files, int nr)
79046 +static int expand_files(struct files_struct *files, unsigned int nr)
79047 __releases(files->file_lock)
79048 __acquires(files->file_lock)
79049 {
79050 @@ -834,6 +835,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
79051 if (!file)
79052 return __close_fd(files, fd);
79053
79054 + gr_learn_resource(current, RLIMIT_NOFILE, fd, 0);
79055 if (fd >= rlimit(RLIMIT_NOFILE))
79056 return -EBADF;
79057
79058 @@ -860,6 +862,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
79059 if (unlikely(oldfd == newfd))
79060 return -EINVAL;
79061
79062 + gr_learn_resource(current, RLIMIT_NOFILE, newfd, 0);
79063 if (newfd >= rlimit(RLIMIT_NOFILE))
79064 return -EBADF;
79065
79066 @@ -915,6 +918,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
79067 int f_dupfd(unsigned int from, struct file *file, unsigned flags)
79068 {
79069 int err;
79070 + gr_learn_resource(current, RLIMIT_NOFILE, from, 0);
79071 if (from >= rlimit(RLIMIT_NOFILE))
79072 return -EINVAL;
79073 err = alloc_fd(from, flags);
79074 diff --git a/fs/filesystems.c b/fs/filesystems.c
79075 index 5797d45..7d7d79a 100644
79076 --- a/fs/filesystems.c
79077 +++ b/fs/filesystems.c
79078 @@ -275,7 +275,11 @@ struct file_system_type *get_fs_type(const char *name)
79079 int len = dot ? dot - name : strlen(name);
79080
79081 fs = __get_fs_type(name, len);
79082 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
79083 + if (!fs && (___request_module(true, "grsec_modharden_fs", "fs-%.*s", len, name) == 0))
79084 +#else
79085 if (!fs && (request_module("fs-%.*s", len, name) == 0))
79086 +#endif
79087 fs = __get_fs_type(name, len);
79088
79089 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
79090 diff --git a/fs/fs_struct.c b/fs/fs_struct.c
79091 index 7dca743..1ff87ae 100644
79092 --- a/fs/fs_struct.c
79093 +++ b/fs/fs_struct.c
79094 @@ -4,6 +4,7 @@
79095 #include <linux/path.h>
79096 #include <linux/slab.h>
79097 #include <linux/fs_struct.h>
79098 +#include <linux/grsecurity.h>
79099 #include "internal.h"
79100
79101 /*
79102 @@ -15,14 +16,18 @@ void set_fs_root(struct fs_struct *fs, const struct path *path)
79103 struct path old_root;
79104
79105 path_get(path);
79106 + gr_inc_chroot_refcnts(path->dentry, path->mnt);
79107 spin_lock(&fs->lock);
79108 write_seqcount_begin(&fs->seq);
79109 old_root = fs->root;
79110 fs->root = *path;
79111 + gr_set_chroot_entries(current, path);
79112 write_seqcount_end(&fs->seq);
79113 spin_unlock(&fs->lock);
79114 - if (old_root.dentry)
79115 + if (old_root.dentry) {
79116 + gr_dec_chroot_refcnts(old_root.dentry, old_root.mnt);
79117 path_put(&old_root);
79118 + }
79119 }
79120
79121 /*
79122 @@ -67,6 +72,10 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
79123 int hits = 0;
79124 spin_lock(&fs->lock);
79125 write_seqcount_begin(&fs->seq);
79126 + /* this root replacement is only done by pivot_root,
79127 + leave grsec's chroot tagging alone for this task
79128 + so that a pivoted root isn't treated as a chroot
79129 + */
79130 hits += replace_path(&fs->root, old_root, new_root);
79131 hits += replace_path(&fs->pwd, old_root, new_root);
79132 write_seqcount_end(&fs->seq);
79133 @@ -85,6 +94,7 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
79134
79135 void free_fs_struct(struct fs_struct *fs)
79136 {
79137 + gr_dec_chroot_refcnts(fs->root.dentry, fs->root.mnt);
79138 path_put(&fs->root);
79139 path_put(&fs->pwd);
79140 kmem_cache_free(fs_cachep, fs);
79141 @@ -99,7 +109,8 @@ void exit_fs(struct task_struct *tsk)
79142 task_lock(tsk);
79143 spin_lock(&fs->lock);
79144 tsk->fs = NULL;
79145 - kill = !--fs->users;
79146 + gr_clear_chroot_entries(tsk);
79147 + kill = !atomic_dec_return(&fs->users);
79148 spin_unlock(&fs->lock);
79149 task_unlock(tsk);
79150 if (kill)
79151 @@ -112,7 +123,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
79152 struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
79153 /* We don't need to lock fs - think why ;-) */
79154 if (fs) {
79155 - fs->users = 1;
79156 + atomic_set(&fs->users, 1);
79157 fs->in_exec = 0;
79158 spin_lock_init(&fs->lock);
79159 seqcount_init(&fs->seq);
79160 @@ -121,9 +132,13 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
79161 spin_lock(&old->lock);
79162 fs->root = old->root;
79163 path_get(&fs->root);
79164 + /* instead of calling gr_set_chroot_entries here,
79165 + we call it from every caller of this function
79166 + */
79167 fs->pwd = old->pwd;
79168 path_get(&fs->pwd);
79169 spin_unlock(&old->lock);
79170 + gr_inc_chroot_refcnts(fs->root.dentry, fs->root.mnt);
79171 }
79172 return fs;
79173 }
79174 @@ -139,8 +154,9 @@ int unshare_fs_struct(void)
79175
79176 task_lock(current);
79177 spin_lock(&fs->lock);
79178 - kill = !--fs->users;
79179 + kill = !atomic_dec_return(&fs->users);
79180 current->fs = new_fs;
79181 + gr_set_chroot_entries(current, &new_fs->root);
79182 spin_unlock(&fs->lock);
79183 task_unlock(current);
79184
79185 @@ -153,13 +169,13 @@ EXPORT_SYMBOL_GPL(unshare_fs_struct);
79186
79187 int current_umask(void)
79188 {
79189 - return current->fs->umask;
79190 + return current->fs->umask | gr_acl_umask();
79191 }
79192 EXPORT_SYMBOL(current_umask);
79193
79194 /* to be mentioned only in INIT_TASK */
79195 struct fs_struct init_fs = {
79196 - .users = 1,
79197 + .users = ATOMIC_INIT(1),
79198 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock),
79199 .seq = SEQCNT_ZERO(init_fs.seq),
79200 .umask = 0022,
79201 diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
79202 index d403c69..30be0a9 100644
79203 --- a/fs/fscache/cookie.c
79204 +++ b/fs/fscache/cookie.c
79205 @@ -19,7 +19,7 @@
79206
79207 struct kmem_cache *fscache_cookie_jar;
79208
79209 -static atomic_t fscache_object_debug_id = ATOMIC_INIT(0);
79210 +static atomic_unchecked_t fscache_object_debug_id = ATOMIC_INIT(0);
79211
79212 static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie);
79213 static int fscache_alloc_object(struct fscache_cache *cache,
79214 @@ -69,11 +69,11 @@ struct fscache_cookie *__fscache_acquire_cookie(
79215 parent ? (char *) parent->def->name : "<no-parent>",
79216 def->name, netfs_data, enable);
79217
79218 - fscache_stat(&fscache_n_acquires);
79219 + fscache_stat_unchecked(&fscache_n_acquires);
79220
79221 /* if there's no parent cookie, then we don't create one here either */
79222 if (!parent) {
79223 - fscache_stat(&fscache_n_acquires_null);
79224 + fscache_stat_unchecked(&fscache_n_acquires_null);
79225 _leave(" [no parent]");
79226 return NULL;
79227 }
79228 @@ -88,7 +88,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
79229 /* allocate and initialise a cookie */
79230 cookie = kmem_cache_alloc(fscache_cookie_jar, GFP_KERNEL);
79231 if (!cookie) {
79232 - fscache_stat(&fscache_n_acquires_oom);
79233 + fscache_stat_unchecked(&fscache_n_acquires_oom);
79234 _leave(" [ENOMEM]");
79235 return NULL;
79236 }
79237 @@ -115,13 +115,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
79238
79239 switch (cookie->def->type) {
79240 case FSCACHE_COOKIE_TYPE_INDEX:
79241 - fscache_stat(&fscache_n_cookie_index);
79242 + fscache_stat_unchecked(&fscache_n_cookie_index);
79243 break;
79244 case FSCACHE_COOKIE_TYPE_DATAFILE:
79245 - fscache_stat(&fscache_n_cookie_data);
79246 + fscache_stat_unchecked(&fscache_n_cookie_data);
79247 break;
79248 default:
79249 - fscache_stat(&fscache_n_cookie_special);
79250 + fscache_stat_unchecked(&fscache_n_cookie_special);
79251 break;
79252 }
79253
79254 @@ -135,7 +135,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
79255 } else {
79256 atomic_dec(&parent->n_children);
79257 __fscache_cookie_put(cookie);
79258 - fscache_stat(&fscache_n_acquires_nobufs);
79259 + fscache_stat_unchecked(&fscache_n_acquires_nobufs);
79260 _leave(" = NULL");
79261 return NULL;
79262 }
79263 @@ -144,7 +144,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
79264 }
79265 }
79266
79267 - fscache_stat(&fscache_n_acquires_ok);
79268 + fscache_stat_unchecked(&fscache_n_acquires_ok);
79269 _leave(" = %p", cookie);
79270 return cookie;
79271 }
79272 @@ -213,7 +213,7 @@ static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie)
79273 cache = fscache_select_cache_for_object(cookie->parent);
79274 if (!cache) {
79275 up_read(&fscache_addremove_sem);
79276 - fscache_stat(&fscache_n_acquires_no_cache);
79277 + fscache_stat_unchecked(&fscache_n_acquires_no_cache);
79278 _leave(" = -ENOMEDIUM [no cache]");
79279 return -ENOMEDIUM;
79280 }
79281 @@ -297,14 +297,14 @@ static int fscache_alloc_object(struct fscache_cache *cache,
79282 object = cache->ops->alloc_object(cache, cookie);
79283 fscache_stat_d(&fscache_n_cop_alloc_object);
79284 if (IS_ERR(object)) {
79285 - fscache_stat(&fscache_n_object_no_alloc);
79286 + fscache_stat_unchecked(&fscache_n_object_no_alloc);
79287 ret = PTR_ERR(object);
79288 goto error;
79289 }
79290
79291 - fscache_stat(&fscache_n_object_alloc);
79292 + fscache_stat_unchecked(&fscache_n_object_alloc);
79293
79294 - object->debug_id = atomic_inc_return(&fscache_object_debug_id);
79295 + object->debug_id = atomic_inc_return_unchecked(&fscache_object_debug_id);
79296
79297 _debug("ALLOC OBJ%x: %s {%lx}",
79298 object->debug_id, cookie->def->name, object->events);
79299 @@ -419,7 +419,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
79300
79301 _enter("{%s}", cookie->def->name);
79302
79303 - fscache_stat(&fscache_n_invalidates);
79304 + fscache_stat_unchecked(&fscache_n_invalidates);
79305
79306 /* Only permit invalidation of data files. Invalidating an index will
79307 * require the caller to release all its attachments to the tree rooted
79308 @@ -477,10 +477,10 @@ void __fscache_update_cookie(struct fscache_cookie *cookie)
79309 {
79310 struct fscache_object *object;
79311
79312 - fscache_stat(&fscache_n_updates);
79313 + fscache_stat_unchecked(&fscache_n_updates);
79314
79315 if (!cookie) {
79316 - fscache_stat(&fscache_n_updates_null);
79317 + fscache_stat_unchecked(&fscache_n_updates_null);
79318 _leave(" [no cookie]");
79319 return;
79320 }
79321 @@ -581,12 +581,12 @@ EXPORT_SYMBOL(__fscache_disable_cookie);
79322 */
79323 void __fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
79324 {
79325 - fscache_stat(&fscache_n_relinquishes);
79326 + fscache_stat_unchecked(&fscache_n_relinquishes);
79327 if (retire)
79328 - fscache_stat(&fscache_n_relinquishes_retire);
79329 + fscache_stat_unchecked(&fscache_n_relinquishes_retire);
79330
79331 if (!cookie) {
79332 - fscache_stat(&fscache_n_relinquishes_null);
79333 + fscache_stat_unchecked(&fscache_n_relinquishes_null);
79334 _leave(" [no cookie]");
79335 return;
79336 }
79337 @@ -687,7 +687,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
79338 if (test_bit(FSCACHE_IOERROR, &object->cache->flags))
79339 goto inconsistent;
79340
79341 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
79342 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79343
79344 __fscache_use_cookie(cookie);
79345 if (fscache_submit_op(object, op) < 0)
79346 diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
79347 index 97ec451..f722cee 100644
79348 --- a/fs/fscache/internal.h
79349 +++ b/fs/fscache/internal.h
79350 @@ -136,8 +136,8 @@ extern void fscache_operation_gc(struct work_struct *);
79351 extern int fscache_wait_for_deferred_lookup(struct fscache_cookie *);
79352 extern int fscache_wait_for_operation_activation(struct fscache_object *,
79353 struct fscache_operation *,
79354 - atomic_t *,
79355 - atomic_t *);
79356 + atomic_unchecked_t *,
79357 + atomic_unchecked_t *);
79358 extern void fscache_invalidate_writes(struct fscache_cookie *);
79359
79360 /*
79361 @@ -155,102 +155,102 @@ extern void fscache_proc_cleanup(void);
79362 * stats.c
79363 */
79364 #ifdef CONFIG_FSCACHE_STATS
79365 -extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
79366 -extern atomic_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
79367 +extern atomic_unchecked_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
79368 +extern atomic_unchecked_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
79369
79370 -extern atomic_t fscache_n_op_pend;
79371 -extern atomic_t fscache_n_op_run;
79372 -extern atomic_t fscache_n_op_enqueue;
79373 -extern atomic_t fscache_n_op_deferred_release;
79374 -extern atomic_t fscache_n_op_initialised;
79375 -extern atomic_t fscache_n_op_release;
79376 -extern atomic_t fscache_n_op_gc;
79377 -extern atomic_t fscache_n_op_cancelled;
79378 -extern atomic_t fscache_n_op_rejected;
79379 +extern atomic_unchecked_t fscache_n_op_pend;
79380 +extern atomic_unchecked_t fscache_n_op_run;
79381 +extern atomic_unchecked_t fscache_n_op_enqueue;
79382 +extern atomic_unchecked_t fscache_n_op_deferred_release;
79383 +extern atomic_unchecked_t fscache_n_op_initialised;
79384 +extern atomic_unchecked_t fscache_n_op_release;
79385 +extern atomic_unchecked_t fscache_n_op_gc;
79386 +extern atomic_unchecked_t fscache_n_op_cancelled;
79387 +extern atomic_unchecked_t fscache_n_op_rejected;
79388
79389 -extern atomic_t fscache_n_attr_changed;
79390 -extern atomic_t fscache_n_attr_changed_ok;
79391 -extern atomic_t fscache_n_attr_changed_nobufs;
79392 -extern atomic_t fscache_n_attr_changed_nomem;
79393 -extern atomic_t fscache_n_attr_changed_calls;
79394 +extern atomic_unchecked_t fscache_n_attr_changed;
79395 +extern atomic_unchecked_t fscache_n_attr_changed_ok;
79396 +extern atomic_unchecked_t fscache_n_attr_changed_nobufs;
79397 +extern atomic_unchecked_t fscache_n_attr_changed_nomem;
79398 +extern atomic_unchecked_t fscache_n_attr_changed_calls;
79399
79400 -extern atomic_t fscache_n_allocs;
79401 -extern atomic_t fscache_n_allocs_ok;
79402 -extern atomic_t fscache_n_allocs_wait;
79403 -extern atomic_t fscache_n_allocs_nobufs;
79404 -extern atomic_t fscache_n_allocs_intr;
79405 -extern atomic_t fscache_n_allocs_object_dead;
79406 -extern atomic_t fscache_n_alloc_ops;
79407 -extern atomic_t fscache_n_alloc_op_waits;
79408 +extern atomic_unchecked_t fscache_n_allocs;
79409 +extern atomic_unchecked_t fscache_n_allocs_ok;
79410 +extern atomic_unchecked_t fscache_n_allocs_wait;
79411 +extern atomic_unchecked_t fscache_n_allocs_nobufs;
79412 +extern atomic_unchecked_t fscache_n_allocs_intr;
79413 +extern atomic_unchecked_t fscache_n_allocs_object_dead;
79414 +extern atomic_unchecked_t fscache_n_alloc_ops;
79415 +extern atomic_unchecked_t fscache_n_alloc_op_waits;
79416
79417 -extern atomic_t fscache_n_retrievals;
79418 -extern atomic_t fscache_n_retrievals_ok;
79419 -extern atomic_t fscache_n_retrievals_wait;
79420 -extern atomic_t fscache_n_retrievals_nodata;
79421 -extern atomic_t fscache_n_retrievals_nobufs;
79422 -extern atomic_t fscache_n_retrievals_intr;
79423 -extern atomic_t fscache_n_retrievals_nomem;
79424 -extern atomic_t fscache_n_retrievals_object_dead;
79425 -extern atomic_t fscache_n_retrieval_ops;
79426 -extern atomic_t fscache_n_retrieval_op_waits;
79427 +extern atomic_unchecked_t fscache_n_retrievals;
79428 +extern atomic_unchecked_t fscache_n_retrievals_ok;
79429 +extern atomic_unchecked_t fscache_n_retrievals_wait;
79430 +extern atomic_unchecked_t fscache_n_retrievals_nodata;
79431 +extern atomic_unchecked_t fscache_n_retrievals_nobufs;
79432 +extern atomic_unchecked_t fscache_n_retrievals_intr;
79433 +extern atomic_unchecked_t fscache_n_retrievals_nomem;
79434 +extern atomic_unchecked_t fscache_n_retrievals_object_dead;
79435 +extern atomic_unchecked_t fscache_n_retrieval_ops;
79436 +extern atomic_unchecked_t fscache_n_retrieval_op_waits;
79437
79438 -extern atomic_t fscache_n_stores;
79439 -extern atomic_t fscache_n_stores_ok;
79440 -extern atomic_t fscache_n_stores_again;
79441 -extern atomic_t fscache_n_stores_nobufs;
79442 -extern atomic_t fscache_n_stores_oom;
79443 -extern atomic_t fscache_n_store_ops;
79444 -extern atomic_t fscache_n_store_calls;
79445 -extern atomic_t fscache_n_store_pages;
79446 -extern atomic_t fscache_n_store_radix_deletes;
79447 -extern atomic_t fscache_n_store_pages_over_limit;
79448 +extern atomic_unchecked_t fscache_n_stores;
79449 +extern atomic_unchecked_t fscache_n_stores_ok;
79450 +extern atomic_unchecked_t fscache_n_stores_again;
79451 +extern atomic_unchecked_t fscache_n_stores_nobufs;
79452 +extern atomic_unchecked_t fscache_n_stores_oom;
79453 +extern atomic_unchecked_t fscache_n_store_ops;
79454 +extern atomic_unchecked_t fscache_n_store_calls;
79455 +extern atomic_unchecked_t fscache_n_store_pages;
79456 +extern atomic_unchecked_t fscache_n_store_radix_deletes;
79457 +extern atomic_unchecked_t fscache_n_store_pages_over_limit;
79458
79459 -extern atomic_t fscache_n_store_vmscan_not_storing;
79460 -extern atomic_t fscache_n_store_vmscan_gone;
79461 -extern atomic_t fscache_n_store_vmscan_busy;
79462 -extern atomic_t fscache_n_store_vmscan_cancelled;
79463 -extern atomic_t fscache_n_store_vmscan_wait;
79464 +extern atomic_unchecked_t fscache_n_store_vmscan_not_storing;
79465 +extern atomic_unchecked_t fscache_n_store_vmscan_gone;
79466 +extern atomic_unchecked_t fscache_n_store_vmscan_busy;
79467 +extern atomic_unchecked_t fscache_n_store_vmscan_cancelled;
79468 +extern atomic_unchecked_t fscache_n_store_vmscan_wait;
79469
79470 -extern atomic_t fscache_n_marks;
79471 -extern atomic_t fscache_n_uncaches;
79472 +extern atomic_unchecked_t fscache_n_marks;
79473 +extern atomic_unchecked_t fscache_n_uncaches;
79474
79475 -extern atomic_t fscache_n_acquires;
79476 -extern atomic_t fscache_n_acquires_null;
79477 -extern atomic_t fscache_n_acquires_no_cache;
79478 -extern atomic_t fscache_n_acquires_ok;
79479 -extern atomic_t fscache_n_acquires_nobufs;
79480 -extern atomic_t fscache_n_acquires_oom;
79481 +extern atomic_unchecked_t fscache_n_acquires;
79482 +extern atomic_unchecked_t fscache_n_acquires_null;
79483 +extern atomic_unchecked_t fscache_n_acquires_no_cache;
79484 +extern atomic_unchecked_t fscache_n_acquires_ok;
79485 +extern atomic_unchecked_t fscache_n_acquires_nobufs;
79486 +extern atomic_unchecked_t fscache_n_acquires_oom;
79487
79488 -extern atomic_t fscache_n_invalidates;
79489 -extern atomic_t fscache_n_invalidates_run;
79490 +extern atomic_unchecked_t fscache_n_invalidates;
79491 +extern atomic_unchecked_t fscache_n_invalidates_run;
79492
79493 -extern atomic_t fscache_n_updates;
79494 -extern atomic_t fscache_n_updates_null;
79495 -extern atomic_t fscache_n_updates_run;
79496 +extern atomic_unchecked_t fscache_n_updates;
79497 +extern atomic_unchecked_t fscache_n_updates_null;
79498 +extern atomic_unchecked_t fscache_n_updates_run;
79499
79500 -extern atomic_t fscache_n_relinquishes;
79501 -extern atomic_t fscache_n_relinquishes_null;
79502 -extern atomic_t fscache_n_relinquishes_waitcrt;
79503 -extern atomic_t fscache_n_relinquishes_retire;
79504 +extern atomic_unchecked_t fscache_n_relinquishes;
79505 +extern atomic_unchecked_t fscache_n_relinquishes_null;
79506 +extern atomic_unchecked_t fscache_n_relinquishes_waitcrt;
79507 +extern atomic_unchecked_t fscache_n_relinquishes_retire;
79508
79509 -extern atomic_t fscache_n_cookie_index;
79510 -extern atomic_t fscache_n_cookie_data;
79511 -extern atomic_t fscache_n_cookie_special;
79512 +extern atomic_unchecked_t fscache_n_cookie_index;
79513 +extern atomic_unchecked_t fscache_n_cookie_data;
79514 +extern atomic_unchecked_t fscache_n_cookie_special;
79515
79516 -extern atomic_t fscache_n_object_alloc;
79517 -extern atomic_t fscache_n_object_no_alloc;
79518 -extern atomic_t fscache_n_object_lookups;
79519 -extern atomic_t fscache_n_object_lookups_negative;
79520 -extern atomic_t fscache_n_object_lookups_positive;
79521 -extern atomic_t fscache_n_object_lookups_timed_out;
79522 -extern atomic_t fscache_n_object_created;
79523 -extern atomic_t fscache_n_object_avail;
79524 -extern atomic_t fscache_n_object_dead;
79525 +extern atomic_unchecked_t fscache_n_object_alloc;
79526 +extern atomic_unchecked_t fscache_n_object_no_alloc;
79527 +extern atomic_unchecked_t fscache_n_object_lookups;
79528 +extern atomic_unchecked_t fscache_n_object_lookups_negative;
79529 +extern atomic_unchecked_t fscache_n_object_lookups_positive;
79530 +extern atomic_unchecked_t fscache_n_object_lookups_timed_out;
79531 +extern atomic_unchecked_t fscache_n_object_created;
79532 +extern atomic_unchecked_t fscache_n_object_avail;
79533 +extern atomic_unchecked_t fscache_n_object_dead;
79534
79535 -extern atomic_t fscache_n_checkaux_none;
79536 -extern atomic_t fscache_n_checkaux_okay;
79537 -extern atomic_t fscache_n_checkaux_update;
79538 -extern atomic_t fscache_n_checkaux_obsolete;
79539 +extern atomic_unchecked_t fscache_n_checkaux_none;
79540 +extern atomic_unchecked_t fscache_n_checkaux_okay;
79541 +extern atomic_unchecked_t fscache_n_checkaux_update;
79542 +extern atomic_unchecked_t fscache_n_checkaux_obsolete;
79543
79544 extern atomic_t fscache_n_cop_alloc_object;
79545 extern atomic_t fscache_n_cop_lookup_object;
79546 @@ -280,6 +280,11 @@ static inline void fscache_stat(atomic_t *stat)
79547 atomic_inc(stat);
79548 }
79549
79550 +static inline void fscache_stat_unchecked(atomic_unchecked_t *stat)
79551 +{
79552 + atomic_inc_unchecked(stat);
79553 +}
79554 +
79555 static inline void fscache_stat_d(atomic_t *stat)
79556 {
79557 atomic_dec(stat);
79558 @@ -292,6 +297,7 @@ extern const struct file_operations fscache_stats_fops;
79559
79560 #define __fscache_stat(stat) (NULL)
79561 #define fscache_stat(stat) do {} while (0)
79562 +#define fscache_stat_unchecked(stat) do {} while (0)
79563 #define fscache_stat_d(stat) do {} while (0)
79564 #endif
79565
79566 diff --git a/fs/fscache/object.c b/fs/fscache/object.c
79567 index 9e792e3..6b2affb 100644
79568 --- a/fs/fscache/object.c
79569 +++ b/fs/fscache/object.c
79570 @@ -465,7 +465,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
79571 _debug("LOOKUP \"%s\" in \"%s\"",
79572 cookie->def->name, object->cache->tag->name);
79573
79574 - fscache_stat(&fscache_n_object_lookups);
79575 + fscache_stat_unchecked(&fscache_n_object_lookups);
79576 fscache_stat(&fscache_n_cop_lookup_object);
79577 ret = object->cache->ops->lookup_object(object);
79578 fscache_stat_d(&fscache_n_cop_lookup_object);
79579 @@ -475,7 +475,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
79580 if (ret == -ETIMEDOUT) {
79581 /* probably stuck behind another object, so move this one to
79582 * the back of the queue */
79583 - fscache_stat(&fscache_n_object_lookups_timed_out);
79584 + fscache_stat_unchecked(&fscache_n_object_lookups_timed_out);
79585 _leave(" [timeout]");
79586 return NO_TRANSIT;
79587 }
79588 @@ -503,7 +503,7 @@ void fscache_object_lookup_negative(struct fscache_object *object)
79589 _enter("{OBJ%x,%s}", object->debug_id, object->state->name);
79590
79591 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
79592 - fscache_stat(&fscache_n_object_lookups_negative);
79593 + fscache_stat_unchecked(&fscache_n_object_lookups_negative);
79594
79595 /* Allow write requests to begin stacking up and read requests to begin
79596 * returning ENODATA.
79597 @@ -538,7 +538,7 @@ void fscache_obtained_object(struct fscache_object *object)
79598 /* if we were still looking up, then we must have a positive lookup
79599 * result, in which case there may be data available */
79600 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
79601 - fscache_stat(&fscache_n_object_lookups_positive);
79602 + fscache_stat_unchecked(&fscache_n_object_lookups_positive);
79603
79604 /* We do (presumably) have data */
79605 clear_bit_unlock(FSCACHE_COOKIE_NO_DATA_YET, &cookie->flags);
79606 @@ -550,7 +550,7 @@ void fscache_obtained_object(struct fscache_object *object)
79607 clear_bit_unlock(FSCACHE_COOKIE_LOOKING_UP, &cookie->flags);
79608 wake_up_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP);
79609 } else {
79610 - fscache_stat(&fscache_n_object_created);
79611 + fscache_stat_unchecked(&fscache_n_object_created);
79612 }
79613
79614 set_bit(FSCACHE_OBJECT_IS_AVAILABLE, &object->flags);
79615 @@ -586,7 +586,7 @@ static const struct fscache_state *fscache_object_available(struct fscache_objec
79616 fscache_stat_d(&fscache_n_cop_lookup_complete);
79617
79618 fscache_hist(fscache_obj_instantiate_histogram, object->lookup_jif);
79619 - fscache_stat(&fscache_n_object_avail);
79620 + fscache_stat_unchecked(&fscache_n_object_avail);
79621
79622 _leave("");
79623 return transit_to(JUMPSTART_DEPS);
79624 @@ -735,7 +735,7 @@ static const struct fscache_state *fscache_drop_object(struct fscache_object *ob
79625
79626 /* this just shifts the object release to the work processor */
79627 fscache_put_object(object);
79628 - fscache_stat(&fscache_n_object_dead);
79629 + fscache_stat_unchecked(&fscache_n_object_dead);
79630
79631 _leave("");
79632 return transit_to(OBJECT_DEAD);
79633 @@ -900,7 +900,7 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
79634 enum fscache_checkaux result;
79635
79636 if (!object->cookie->def->check_aux) {
79637 - fscache_stat(&fscache_n_checkaux_none);
79638 + fscache_stat_unchecked(&fscache_n_checkaux_none);
79639 return FSCACHE_CHECKAUX_OKAY;
79640 }
79641
79642 @@ -909,17 +909,17 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
79643 switch (result) {
79644 /* entry okay as is */
79645 case FSCACHE_CHECKAUX_OKAY:
79646 - fscache_stat(&fscache_n_checkaux_okay);
79647 + fscache_stat_unchecked(&fscache_n_checkaux_okay);
79648 break;
79649
79650 /* entry requires update */
79651 case FSCACHE_CHECKAUX_NEEDS_UPDATE:
79652 - fscache_stat(&fscache_n_checkaux_update);
79653 + fscache_stat_unchecked(&fscache_n_checkaux_update);
79654 break;
79655
79656 /* entry requires deletion */
79657 case FSCACHE_CHECKAUX_OBSOLETE:
79658 - fscache_stat(&fscache_n_checkaux_obsolete);
79659 + fscache_stat_unchecked(&fscache_n_checkaux_obsolete);
79660 break;
79661
79662 default:
79663 @@ -1007,7 +1007,7 @@ static const struct fscache_state *fscache_invalidate_object(struct fscache_obje
79664 {
79665 const struct fscache_state *s;
79666
79667 - fscache_stat(&fscache_n_invalidates_run);
79668 + fscache_stat_unchecked(&fscache_n_invalidates_run);
79669 fscache_stat(&fscache_n_cop_invalidate_object);
79670 s = _fscache_invalidate_object(object, event);
79671 fscache_stat_d(&fscache_n_cop_invalidate_object);
79672 @@ -1022,7 +1022,7 @@ static const struct fscache_state *fscache_update_object(struct fscache_object *
79673 {
79674 _enter("{OBJ%x},%d", object->debug_id, event);
79675
79676 - fscache_stat(&fscache_n_updates_run);
79677 + fscache_stat_unchecked(&fscache_n_updates_run);
79678 fscache_stat(&fscache_n_cop_update_object);
79679 object->cache->ops->update_object(object);
79680 fscache_stat_d(&fscache_n_cop_update_object);
79681 diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c
79682 index de67745..6a3a9b6 100644
79683 --- a/fs/fscache/operation.c
79684 +++ b/fs/fscache/operation.c
79685 @@ -17,7 +17,7 @@
79686 #include <linux/slab.h>
79687 #include "internal.h"
79688
79689 -atomic_t fscache_op_debug_id;
79690 +atomic_unchecked_t fscache_op_debug_id;
79691 EXPORT_SYMBOL(fscache_op_debug_id);
79692
79693 static void fscache_operation_dummy_cancel(struct fscache_operation *op)
79694 @@ -40,12 +40,12 @@ void fscache_operation_init(struct fscache_operation *op,
79695 INIT_WORK(&op->work, fscache_op_work_func);
79696 atomic_set(&op->usage, 1);
79697 op->state = FSCACHE_OP_ST_INITIALISED;
79698 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
79699 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79700 op->processor = processor;
79701 op->cancel = cancel ?: fscache_operation_dummy_cancel;
79702 op->release = release;
79703 INIT_LIST_HEAD(&op->pend_link);
79704 - fscache_stat(&fscache_n_op_initialised);
79705 + fscache_stat_unchecked(&fscache_n_op_initialised);
79706 }
79707 EXPORT_SYMBOL(fscache_operation_init);
79708
79709 @@ -68,7 +68,7 @@ void fscache_enqueue_operation(struct fscache_operation *op)
79710 ASSERTCMP(atomic_read(&op->usage), >, 0);
79711 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_IN_PROGRESS);
79712
79713 - fscache_stat(&fscache_n_op_enqueue);
79714 + fscache_stat_unchecked(&fscache_n_op_enqueue);
79715 switch (op->flags & FSCACHE_OP_TYPE) {
79716 case FSCACHE_OP_ASYNC:
79717 _debug("queue async");
79718 @@ -101,7 +101,7 @@ static void fscache_run_op(struct fscache_object *object,
79719 wake_up_bit(&op->flags, FSCACHE_OP_WAITING);
79720 if (op->processor)
79721 fscache_enqueue_operation(op);
79722 - fscache_stat(&fscache_n_op_run);
79723 + fscache_stat_unchecked(&fscache_n_op_run);
79724 }
79725
79726 /*
79727 @@ -169,7 +169,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79728 op->state = FSCACHE_OP_ST_PENDING;
79729 flags = READ_ONCE(object->flags);
79730 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
79731 - fscache_stat(&fscache_n_op_rejected);
79732 + fscache_stat_unchecked(&fscache_n_op_rejected);
79733 op->cancel(op);
79734 op->state = FSCACHE_OP_ST_CANCELLED;
79735 ret = -ENOBUFS;
79736 @@ -185,11 +185,11 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79737 if (object->n_in_progress > 0) {
79738 atomic_inc(&op->usage);
79739 list_add_tail(&op->pend_link, &object->pending_ops);
79740 - fscache_stat(&fscache_n_op_pend);
79741 + fscache_stat_unchecked(&fscache_n_op_pend);
79742 } else if (!list_empty(&object->pending_ops)) {
79743 atomic_inc(&op->usage);
79744 list_add_tail(&op->pend_link, &object->pending_ops);
79745 - fscache_stat(&fscache_n_op_pend);
79746 + fscache_stat_unchecked(&fscache_n_op_pend);
79747 fscache_start_operations(object);
79748 } else {
79749 ASSERTCMP(object->n_in_progress, ==, 0);
79750 @@ -205,7 +205,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79751 object->n_exclusive++; /* reads and writes must wait */
79752 atomic_inc(&op->usage);
79753 list_add_tail(&op->pend_link, &object->pending_ops);
79754 - fscache_stat(&fscache_n_op_pend);
79755 + fscache_stat_unchecked(&fscache_n_op_pend);
79756 ret = 0;
79757 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
79758 op->cancel(op);
79759 @@ -254,7 +254,7 @@ int fscache_submit_op(struct fscache_object *object,
79760 op->state = FSCACHE_OP_ST_PENDING;
79761 flags = READ_ONCE(object->flags);
79762 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
79763 - fscache_stat(&fscache_n_op_rejected);
79764 + fscache_stat_unchecked(&fscache_n_op_rejected);
79765 op->cancel(op);
79766 op->state = FSCACHE_OP_ST_CANCELLED;
79767 ret = -ENOBUFS;
79768 @@ -269,11 +269,11 @@ int fscache_submit_op(struct fscache_object *object,
79769 if (object->n_exclusive > 0) {
79770 atomic_inc(&op->usage);
79771 list_add_tail(&op->pend_link, &object->pending_ops);
79772 - fscache_stat(&fscache_n_op_pend);
79773 + fscache_stat_unchecked(&fscache_n_op_pend);
79774 } else if (!list_empty(&object->pending_ops)) {
79775 atomic_inc(&op->usage);
79776 list_add_tail(&op->pend_link, &object->pending_ops);
79777 - fscache_stat(&fscache_n_op_pend);
79778 + fscache_stat_unchecked(&fscache_n_op_pend);
79779 fscache_start_operations(object);
79780 } else {
79781 ASSERTCMP(object->n_exclusive, ==, 0);
79782 @@ -285,7 +285,7 @@ int fscache_submit_op(struct fscache_object *object,
79783 object->n_ops++;
79784 atomic_inc(&op->usage);
79785 list_add_tail(&op->pend_link, &object->pending_ops);
79786 - fscache_stat(&fscache_n_op_pend);
79787 + fscache_stat_unchecked(&fscache_n_op_pend);
79788 ret = 0;
79789 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
79790 op->cancel(op);
79791 @@ -369,7 +369,7 @@ int fscache_cancel_op(struct fscache_operation *op,
79792 list_del_init(&op->pend_link);
79793 put = true;
79794
79795 - fscache_stat(&fscache_n_op_cancelled);
79796 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79797 op->cancel(op);
79798 op->state = FSCACHE_OP_ST_CANCELLED;
79799 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
79800 @@ -385,7 +385,7 @@ int fscache_cancel_op(struct fscache_operation *op,
79801 if (object->n_in_progress == 0)
79802 fscache_start_operations(object);
79803
79804 - fscache_stat(&fscache_n_op_cancelled);
79805 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79806 op->cancel(op);
79807 op->state = FSCACHE_OP_ST_CANCELLED;
79808 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
79809 @@ -416,7 +416,7 @@ void fscache_cancel_all_ops(struct fscache_object *object)
79810 while (!list_empty(&object->pending_ops)) {
79811 op = list_entry(object->pending_ops.next,
79812 struct fscache_operation, pend_link);
79813 - fscache_stat(&fscache_n_op_cancelled);
79814 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79815 list_del_init(&op->pend_link);
79816
79817 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_PENDING);
79818 @@ -493,7 +493,7 @@ void fscache_put_operation(struct fscache_operation *op)
79819 op->state != FSCACHE_OP_ST_COMPLETE,
79820 op->state, ==, FSCACHE_OP_ST_CANCELLED);
79821
79822 - fscache_stat(&fscache_n_op_release);
79823 + fscache_stat_unchecked(&fscache_n_op_release);
79824
79825 if (op->release) {
79826 op->release(op);
79827 @@ -513,7 +513,7 @@ void fscache_put_operation(struct fscache_operation *op)
79828 * lock, and defer it otherwise */
79829 if (!spin_trylock(&object->lock)) {
79830 _debug("defer put");
79831 - fscache_stat(&fscache_n_op_deferred_release);
79832 + fscache_stat_unchecked(&fscache_n_op_deferred_release);
79833
79834 cache = object->cache;
79835 spin_lock(&cache->op_gc_list_lock);
79836 @@ -567,7 +567,7 @@ void fscache_operation_gc(struct work_struct *work)
79837
79838 _debug("GC DEFERRED REL OBJ%x OP%x",
79839 object->debug_id, op->debug_id);
79840 - fscache_stat(&fscache_n_op_gc);
79841 + fscache_stat_unchecked(&fscache_n_op_gc);
79842
79843 ASSERTCMP(atomic_read(&op->usage), ==, 0);
79844 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_DEAD);
79845 diff --git a/fs/fscache/page.c b/fs/fscache/page.c
79846 index 483bbc6..ba36737 100644
79847 --- a/fs/fscache/page.c
79848 +++ b/fs/fscache/page.c
79849 @@ -74,7 +74,7 @@ try_again:
79850 val = radix_tree_lookup(&cookie->stores, page->index);
79851 if (!val) {
79852 rcu_read_unlock();
79853 - fscache_stat(&fscache_n_store_vmscan_not_storing);
79854 + fscache_stat_unchecked(&fscache_n_store_vmscan_not_storing);
79855 __fscache_uncache_page(cookie, page);
79856 return true;
79857 }
79858 @@ -104,11 +104,11 @@ try_again:
79859 spin_unlock(&cookie->stores_lock);
79860
79861 if (xpage) {
79862 - fscache_stat(&fscache_n_store_vmscan_cancelled);
79863 - fscache_stat(&fscache_n_store_radix_deletes);
79864 + fscache_stat_unchecked(&fscache_n_store_vmscan_cancelled);
79865 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
79866 ASSERTCMP(xpage, ==, page);
79867 } else {
79868 - fscache_stat(&fscache_n_store_vmscan_gone);
79869 + fscache_stat_unchecked(&fscache_n_store_vmscan_gone);
79870 }
79871
79872 wake_up_bit(&cookie->flags, 0);
79873 @@ -123,11 +123,11 @@ page_busy:
79874 * sleeping on memory allocation, so we may need to impose a timeout
79875 * too. */
79876 if (!(gfp & __GFP_WAIT) || !(gfp & __GFP_FS)) {
79877 - fscache_stat(&fscache_n_store_vmscan_busy);
79878 + fscache_stat_unchecked(&fscache_n_store_vmscan_busy);
79879 return false;
79880 }
79881
79882 - fscache_stat(&fscache_n_store_vmscan_wait);
79883 + fscache_stat_unchecked(&fscache_n_store_vmscan_wait);
79884 if (!release_page_wait_timeout(cookie, page))
79885 _debug("fscache writeout timeout page: %p{%lx}",
79886 page, page->index);
79887 @@ -156,7 +156,7 @@ static void fscache_end_page_write(struct fscache_object *object,
79888 FSCACHE_COOKIE_STORING_TAG);
79889 if (!radix_tree_tag_get(&cookie->stores, page->index,
79890 FSCACHE_COOKIE_PENDING_TAG)) {
79891 - fscache_stat(&fscache_n_store_radix_deletes);
79892 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
79893 xpage = radix_tree_delete(&cookie->stores, page->index);
79894 }
79895 spin_unlock(&cookie->stores_lock);
79896 @@ -177,7 +177,7 @@ static void fscache_attr_changed_op(struct fscache_operation *op)
79897
79898 _enter("{OBJ%x OP%x}", object->debug_id, op->debug_id);
79899
79900 - fscache_stat(&fscache_n_attr_changed_calls);
79901 + fscache_stat_unchecked(&fscache_n_attr_changed_calls);
79902
79903 if (fscache_object_is_active(object)) {
79904 fscache_stat(&fscache_n_cop_attr_changed);
79905 @@ -204,11 +204,11 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
79906
79907 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79908
79909 - fscache_stat(&fscache_n_attr_changed);
79910 + fscache_stat_unchecked(&fscache_n_attr_changed);
79911
79912 op = kzalloc(sizeof(*op), GFP_KERNEL);
79913 if (!op) {
79914 - fscache_stat(&fscache_n_attr_changed_nomem);
79915 + fscache_stat_unchecked(&fscache_n_attr_changed_nomem);
79916 _leave(" = -ENOMEM");
79917 return -ENOMEM;
79918 }
79919 @@ -230,7 +230,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
79920 if (fscache_submit_exclusive_op(object, op) < 0)
79921 goto nobufs_dec;
79922 spin_unlock(&cookie->lock);
79923 - fscache_stat(&fscache_n_attr_changed_ok);
79924 + fscache_stat_unchecked(&fscache_n_attr_changed_ok);
79925 fscache_put_operation(op);
79926 _leave(" = 0");
79927 return 0;
79928 @@ -242,7 +242,7 @@ nobufs:
79929 fscache_put_operation(op);
79930 if (wake_cookie)
79931 __fscache_wake_unused_cookie(cookie);
79932 - fscache_stat(&fscache_n_attr_changed_nobufs);
79933 + fscache_stat_unchecked(&fscache_n_attr_changed_nobufs);
79934 _leave(" = %d", -ENOBUFS);
79935 return -ENOBUFS;
79936 }
79937 @@ -293,7 +293,7 @@ static struct fscache_retrieval *fscache_alloc_retrieval(
79938 /* allocate a retrieval operation and attempt to submit it */
79939 op = kzalloc(sizeof(*op), GFP_NOIO);
79940 if (!op) {
79941 - fscache_stat(&fscache_n_retrievals_nomem);
79942 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79943 return NULL;
79944 }
79945
79946 @@ -332,12 +332,12 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
79947 return 0;
79948 }
79949
79950 - fscache_stat(&fscache_n_retrievals_wait);
79951 + fscache_stat_unchecked(&fscache_n_retrievals_wait);
79952
79953 jif = jiffies;
79954 if (wait_on_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP,
79955 TASK_INTERRUPTIBLE) != 0) {
79956 - fscache_stat(&fscache_n_retrievals_intr);
79957 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79958 _leave(" = -ERESTARTSYS");
79959 return -ERESTARTSYS;
79960 }
79961 @@ -355,8 +355,8 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
79962 */
79963 int fscache_wait_for_operation_activation(struct fscache_object *object,
79964 struct fscache_operation *op,
79965 - atomic_t *stat_op_waits,
79966 - atomic_t *stat_object_dead)
79967 + atomic_unchecked_t *stat_op_waits,
79968 + atomic_unchecked_t *stat_object_dead)
79969 {
79970 int ret;
79971
79972 @@ -365,7 +365,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
79973
79974 _debug(">>> WT");
79975 if (stat_op_waits)
79976 - fscache_stat(stat_op_waits);
79977 + fscache_stat_unchecked(stat_op_waits);
79978 if (wait_on_bit(&op->flags, FSCACHE_OP_WAITING,
79979 TASK_INTERRUPTIBLE) != 0) {
79980 ret = fscache_cancel_op(op, false);
79981 @@ -382,7 +382,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
79982 check_if_dead:
79983 if (op->state == FSCACHE_OP_ST_CANCELLED) {
79984 if (stat_object_dead)
79985 - fscache_stat(stat_object_dead);
79986 + fscache_stat_unchecked(stat_object_dead);
79987 _leave(" = -ENOBUFS [cancelled]");
79988 return -ENOBUFS;
79989 }
79990 @@ -391,7 +391,7 @@ check_if_dead:
79991 enum fscache_operation_state state = op->state;
79992 fscache_cancel_op(op, true);
79993 if (stat_object_dead)
79994 - fscache_stat(stat_object_dead);
79995 + fscache_stat_unchecked(stat_object_dead);
79996 _leave(" = -ENOBUFS [obj dead %d]", state);
79997 return -ENOBUFS;
79998 }
79999 @@ -420,7 +420,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
80000
80001 _enter("%p,%p,,,", cookie, page);
80002
80003 - fscache_stat(&fscache_n_retrievals);
80004 + fscache_stat_unchecked(&fscache_n_retrievals);
80005
80006 if (hlist_empty(&cookie->backing_objects))
80007 goto nobufs;
80008 @@ -462,7 +462,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
80009 goto nobufs_unlock_dec;
80010 spin_unlock(&cookie->lock);
80011
80012 - fscache_stat(&fscache_n_retrieval_ops);
80013 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
80014
80015 /* we wait for the operation to become active, and then process it
80016 * *here*, in this thread, and not in the thread pool */
80017 @@ -488,15 +488,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
80018
80019 error:
80020 if (ret == -ENOMEM)
80021 - fscache_stat(&fscache_n_retrievals_nomem);
80022 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
80023 else if (ret == -ERESTARTSYS)
80024 - fscache_stat(&fscache_n_retrievals_intr);
80025 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
80026 else if (ret == -ENODATA)
80027 - fscache_stat(&fscache_n_retrievals_nodata);
80028 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
80029 else if (ret < 0)
80030 - fscache_stat(&fscache_n_retrievals_nobufs);
80031 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
80032 else
80033 - fscache_stat(&fscache_n_retrievals_ok);
80034 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
80035
80036 fscache_put_retrieval(op);
80037 _leave(" = %d", ret);
80038 @@ -511,7 +511,7 @@ nobufs_unlock:
80039 __fscache_wake_unused_cookie(cookie);
80040 fscache_put_retrieval(op);
80041 nobufs:
80042 - fscache_stat(&fscache_n_retrievals_nobufs);
80043 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
80044 _leave(" = -ENOBUFS");
80045 return -ENOBUFS;
80046 }
80047 @@ -550,7 +550,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
80048
80049 _enter("%p,,%d,,,", cookie, *nr_pages);
80050
80051 - fscache_stat(&fscache_n_retrievals);
80052 + fscache_stat_unchecked(&fscache_n_retrievals);
80053
80054 if (hlist_empty(&cookie->backing_objects))
80055 goto nobufs;
80056 @@ -588,7 +588,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
80057 goto nobufs_unlock_dec;
80058 spin_unlock(&cookie->lock);
80059
80060 - fscache_stat(&fscache_n_retrieval_ops);
80061 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
80062
80063 /* we wait for the operation to become active, and then process it
80064 * *here*, in this thread, and not in the thread pool */
80065 @@ -614,15 +614,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
80066
80067 error:
80068 if (ret == -ENOMEM)
80069 - fscache_stat(&fscache_n_retrievals_nomem);
80070 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
80071 else if (ret == -ERESTARTSYS)
80072 - fscache_stat(&fscache_n_retrievals_intr);
80073 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
80074 else if (ret == -ENODATA)
80075 - fscache_stat(&fscache_n_retrievals_nodata);
80076 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
80077 else if (ret < 0)
80078 - fscache_stat(&fscache_n_retrievals_nobufs);
80079 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
80080 else
80081 - fscache_stat(&fscache_n_retrievals_ok);
80082 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
80083
80084 fscache_put_retrieval(op);
80085 _leave(" = %d", ret);
80086 @@ -637,7 +637,7 @@ nobufs_unlock:
80087 if (wake_cookie)
80088 __fscache_wake_unused_cookie(cookie);
80089 nobufs:
80090 - fscache_stat(&fscache_n_retrievals_nobufs);
80091 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
80092 _leave(" = -ENOBUFS");
80093 return -ENOBUFS;
80094 }
80095 @@ -662,7 +662,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
80096
80097 _enter("%p,%p,,,", cookie, page);
80098
80099 - fscache_stat(&fscache_n_allocs);
80100 + fscache_stat_unchecked(&fscache_n_allocs);
80101
80102 if (hlist_empty(&cookie->backing_objects))
80103 goto nobufs;
80104 @@ -696,7 +696,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
80105 goto nobufs_unlock_dec;
80106 spin_unlock(&cookie->lock);
80107
80108 - fscache_stat(&fscache_n_alloc_ops);
80109 + fscache_stat_unchecked(&fscache_n_alloc_ops);
80110
80111 ret = fscache_wait_for_operation_activation(
80112 object, &op->op,
80113 @@ -712,11 +712,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
80114
80115 error:
80116 if (ret == -ERESTARTSYS)
80117 - fscache_stat(&fscache_n_allocs_intr);
80118 + fscache_stat_unchecked(&fscache_n_allocs_intr);
80119 else if (ret < 0)
80120 - fscache_stat(&fscache_n_allocs_nobufs);
80121 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
80122 else
80123 - fscache_stat(&fscache_n_allocs_ok);
80124 + fscache_stat_unchecked(&fscache_n_allocs_ok);
80125
80126 fscache_put_retrieval(op);
80127 _leave(" = %d", ret);
80128 @@ -730,7 +730,7 @@ nobufs_unlock:
80129 if (wake_cookie)
80130 __fscache_wake_unused_cookie(cookie);
80131 nobufs:
80132 - fscache_stat(&fscache_n_allocs_nobufs);
80133 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
80134 _leave(" = -ENOBUFS");
80135 return -ENOBUFS;
80136 }
80137 @@ -806,7 +806,7 @@ static void fscache_write_op(struct fscache_operation *_op)
80138
80139 spin_lock(&cookie->stores_lock);
80140
80141 - fscache_stat(&fscache_n_store_calls);
80142 + fscache_stat_unchecked(&fscache_n_store_calls);
80143
80144 /* find a page to store */
80145 page = NULL;
80146 @@ -817,7 +817,7 @@ static void fscache_write_op(struct fscache_operation *_op)
80147 page = results[0];
80148 _debug("gang %d [%lx]", n, page->index);
80149 if (page->index > op->store_limit) {
80150 - fscache_stat(&fscache_n_store_pages_over_limit);
80151 + fscache_stat_unchecked(&fscache_n_store_pages_over_limit);
80152 goto superseded;
80153 }
80154
80155 @@ -829,7 +829,7 @@ static void fscache_write_op(struct fscache_operation *_op)
80156 spin_unlock(&cookie->stores_lock);
80157 spin_unlock(&object->lock);
80158
80159 - fscache_stat(&fscache_n_store_pages);
80160 + fscache_stat_unchecked(&fscache_n_store_pages);
80161 fscache_stat(&fscache_n_cop_write_page);
80162 ret = object->cache->ops->write_page(op, page);
80163 fscache_stat_d(&fscache_n_cop_write_page);
80164 @@ -933,7 +933,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
80165 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
80166 ASSERT(PageFsCache(page));
80167
80168 - fscache_stat(&fscache_n_stores);
80169 + fscache_stat_unchecked(&fscache_n_stores);
80170
80171 if (test_bit(FSCACHE_COOKIE_INVALIDATING, &cookie->flags)) {
80172 _leave(" = -ENOBUFS [invalidating]");
80173 @@ -992,7 +992,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
80174 spin_unlock(&cookie->stores_lock);
80175 spin_unlock(&object->lock);
80176
80177 - op->op.debug_id = atomic_inc_return(&fscache_op_debug_id);
80178 + op->op.debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
80179 op->store_limit = object->store_limit;
80180
80181 __fscache_use_cookie(cookie);
80182 @@ -1001,8 +1001,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
80183
80184 spin_unlock(&cookie->lock);
80185 radix_tree_preload_end();
80186 - fscache_stat(&fscache_n_store_ops);
80187 - fscache_stat(&fscache_n_stores_ok);
80188 + fscache_stat_unchecked(&fscache_n_store_ops);
80189 + fscache_stat_unchecked(&fscache_n_stores_ok);
80190
80191 /* the work queue now carries its own ref on the object */
80192 fscache_put_operation(&op->op);
80193 @@ -1010,14 +1010,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
80194 return 0;
80195
80196 already_queued:
80197 - fscache_stat(&fscache_n_stores_again);
80198 + fscache_stat_unchecked(&fscache_n_stores_again);
80199 already_pending:
80200 spin_unlock(&cookie->stores_lock);
80201 spin_unlock(&object->lock);
80202 spin_unlock(&cookie->lock);
80203 radix_tree_preload_end();
80204 fscache_put_operation(&op->op);
80205 - fscache_stat(&fscache_n_stores_ok);
80206 + fscache_stat_unchecked(&fscache_n_stores_ok);
80207 _leave(" = 0");
80208 return 0;
80209
80210 @@ -1039,14 +1039,14 @@ nobufs:
80211 fscache_put_operation(&op->op);
80212 if (wake_cookie)
80213 __fscache_wake_unused_cookie(cookie);
80214 - fscache_stat(&fscache_n_stores_nobufs);
80215 + fscache_stat_unchecked(&fscache_n_stores_nobufs);
80216 _leave(" = -ENOBUFS");
80217 return -ENOBUFS;
80218
80219 nomem_free:
80220 fscache_put_operation(&op->op);
80221 nomem:
80222 - fscache_stat(&fscache_n_stores_oom);
80223 + fscache_stat_unchecked(&fscache_n_stores_oom);
80224 _leave(" = -ENOMEM");
80225 return -ENOMEM;
80226 }
80227 @@ -1064,7 +1064,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
80228 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
80229 ASSERTCMP(page, !=, NULL);
80230
80231 - fscache_stat(&fscache_n_uncaches);
80232 + fscache_stat_unchecked(&fscache_n_uncaches);
80233
80234 /* cache withdrawal may beat us to it */
80235 if (!PageFsCache(page))
80236 @@ -1115,7 +1115,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
80237 struct fscache_cookie *cookie = op->op.object->cookie;
80238
80239 #ifdef CONFIG_FSCACHE_STATS
80240 - atomic_inc(&fscache_n_marks);
80241 + atomic_inc_unchecked(&fscache_n_marks);
80242 #endif
80243
80244 _debug("- mark %p{%lx}", page, page->index);
80245 diff --git a/fs/fscache/stats.c b/fs/fscache/stats.c
80246 index 7cfa0aa..d5ef97b7 100644
80247 --- a/fs/fscache/stats.c
80248 +++ b/fs/fscache/stats.c
80249 @@ -18,100 +18,100 @@
80250 /*
80251 * operation counters
80252 */
80253 -atomic_t fscache_n_op_pend;
80254 -atomic_t fscache_n_op_run;
80255 -atomic_t fscache_n_op_enqueue;
80256 -atomic_t fscache_n_op_requeue;
80257 -atomic_t fscache_n_op_deferred_release;
80258 -atomic_t fscache_n_op_initialised;
80259 -atomic_t fscache_n_op_release;
80260 -atomic_t fscache_n_op_gc;
80261 -atomic_t fscache_n_op_cancelled;
80262 -atomic_t fscache_n_op_rejected;
80263 +atomic_unchecked_t fscache_n_op_pend;
80264 +atomic_unchecked_t fscache_n_op_run;
80265 +atomic_unchecked_t fscache_n_op_enqueue;
80266 +atomic_unchecked_t fscache_n_op_requeue;
80267 +atomic_unchecked_t fscache_n_op_deferred_release;
80268 +atomic_unchecked_t fscache_n_op_initialised;
80269 +atomic_unchecked_t fscache_n_op_release;
80270 +atomic_unchecked_t fscache_n_op_gc;
80271 +atomic_unchecked_t fscache_n_op_cancelled;
80272 +atomic_unchecked_t fscache_n_op_rejected;
80273
80274 -atomic_t fscache_n_attr_changed;
80275 -atomic_t fscache_n_attr_changed_ok;
80276 -atomic_t fscache_n_attr_changed_nobufs;
80277 -atomic_t fscache_n_attr_changed_nomem;
80278 -atomic_t fscache_n_attr_changed_calls;
80279 +atomic_unchecked_t fscache_n_attr_changed;
80280 +atomic_unchecked_t fscache_n_attr_changed_ok;
80281 +atomic_unchecked_t fscache_n_attr_changed_nobufs;
80282 +atomic_unchecked_t fscache_n_attr_changed_nomem;
80283 +atomic_unchecked_t fscache_n_attr_changed_calls;
80284
80285 -atomic_t fscache_n_allocs;
80286 -atomic_t fscache_n_allocs_ok;
80287 -atomic_t fscache_n_allocs_wait;
80288 -atomic_t fscache_n_allocs_nobufs;
80289 -atomic_t fscache_n_allocs_intr;
80290 -atomic_t fscache_n_allocs_object_dead;
80291 -atomic_t fscache_n_alloc_ops;
80292 -atomic_t fscache_n_alloc_op_waits;
80293 +atomic_unchecked_t fscache_n_allocs;
80294 +atomic_unchecked_t fscache_n_allocs_ok;
80295 +atomic_unchecked_t fscache_n_allocs_wait;
80296 +atomic_unchecked_t fscache_n_allocs_nobufs;
80297 +atomic_unchecked_t fscache_n_allocs_intr;
80298 +atomic_unchecked_t fscache_n_allocs_object_dead;
80299 +atomic_unchecked_t fscache_n_alloc_ops;
80300 +atomic_unchecked_t fscache_n_alloc_op_waits;
80301
80302 -atomic_t fscache_n_retrievals;
80303 -atomic_t fscache_n_retrievals_ok;
80304 -atomic_t fscache_n_retrievals_wait;
80305 -atomic_t fscache_n_retrievals_nodata;
80306 -atomic_t fscache_n_retrievals_nobufs;
80307 -atomic_t fscache_n_retrievals_intr;
80308 -atomic_t fscache_n_retrievals_nomem;
80309 -atomic_t fscache_n_retrievals_object_dead;
80310 -atomic_t fscache_n_retrieval_ops;
80311 -atomic_t fscache_n_retrieval_op_waits;
80312 +atomic_unchecked_t fscache_n_retrievals;
80313 +atomic_unchecked_t fscache_n_retrievals_ok;
80314 +atomic_unchecked_t fscache_n_retrievals_wait;
80315 +atomic_unchecked_t fscache_n_retrievals_nodata;
80316 +atomic_unchecked_t fscache_n_retrievals_nobufs;
80317 +atomic_unchecked_t fscache_n_retrievals_intr;
80318 +atomic_unchecked_t fscache_n_retrievals_nomem;
80319 +atomic_unchecked_t fscache_n_retrievals_object_dead;
80320 +atomic_unchecked_t fscache_n_retrieval_ops;
80321 +atomic_unchecked_t fscache_n_retrieval_op_waits;
80322
80323 -atomic_t fscache_n_stores;
80324 -atomic_t fscache_n_stores_ok;
80325 -atomic_t fscache_n_stores_again;
80326 -atomic_t fscache_n_stores_nobufs;
80327 -atomic_t fscache_n_stores_oom;
80328 -atomic_t fscache_n_store_ops;
80329 -atomic_t fscache_n_store_calls;
80330 -atomic_t fscache_n_store_pages;
80331 -atomic_t fscache_n_store_radix_deletes;
80332 -atomic_t fscache_n_store_pages_over_limit;
80333 +atomic_unchecked_t fscache_n_stores;
80334 +atomic_unchecked_t fscache_n_stores_ok;
80335 +atomic_unchecked_t fscache_n_stores_again;
80336 +atomic_unchecked_t fscache_n_stores_nobufs;
80337 +atomic_unchecked_t fscache_n_stores_oom;
80338 +atomic_unchecked_t fscache_n_store_ops;
80339 +atomic_unchecked_t fscache_n_store_calls;
80340 +atomic_unchecked_t fscache_n_store_pages;
80341 +atomic_unchecked_t fscache_n_store_radix_deletes;
80342 +atomic_unchecked_t fscache_n_store_pages_over_limit;
80343
80344 -atomic_t fscache_n_store_vmscan_not_storing;
80345 -atomic_t fscache_n_store_vmscan_gone;
80346 -atomic_t fscache_n_store_vmscan_busy;
80347 -atomic_t fscache_n_store_vmscan_cancelled;
80348 -atomic_t fscache_n_store_vmscan_wait;
80349 +atomic_unchecked_t fscache_n_store_vmscan_not_storing;
80350 +atomic_unchecked_t fscache_n_store_vmscan_gone;
80351 +atomic_unchecked_t fscache_n_store_vmscan_busy;
80352 +atomic_unchecked_t fscache_n_store_vmscan_cancelled;
80353 +atomic_unchecked_t fscache_n_store_vmscan_wait;
80354
80355 -atomic_t fscache_n_marks;
80356 -atomic_t fscache_n_uncaches;
80357 +atomic_unchecked_t fscache_n_marks;
80358 +atomic_unchecked_t fscache_n_uncaches;
80359
80360 -atomic_t fscache_n_acquires;
80361 -atomic_t fscache_n_acquires_null;
80362 -atomic_t fscache_n_acquires_no_cache;
80363 -atomic_t fscache_n_acquires_ok;
80364 -atomic_t fscache_n_acquires_nobufs;
80365 -atomic_t fscache_n_acquires_oom;
80366 +atomic_unchecked_t fscache_n_acquires;
80367 +atomic_unchecked_t fscache_n_acquires_null;
80368 +atomic_unchecked_t fscache_n_acquires_no_cache;
80369 +atomic_unchecked_t fscache_n_acquires_ok;
80370 +atomic_unchecked_t fscache_n_acquires_nobufs;
80371 +atomic_unchecked_t fscache_n_acquires_oom;
80372
80373 -atomic_t fscache_n_invalidates;
80374 -atomic_t fscache_n_invalidates_run;
80375 +atomic_unchecked_t fscache_n_invalidates;
80376 +atomic_unchecked_t fscache_n_invalidates_run;
80377
80378 -atomic_t fscache_n_updates;
80379 -atomic_t fscache_n_updates_null;
80380 -atomic_t fscache_n_updates_run;
80381 +atomic_unchecked_t fscache_n_updates;
80382 +atomic_unchecked_t fscache_n_updates_null;
80383 +atomic_unchecked_t fscache_n_updates_run;
80384
80385 -atomic_t fscache_n_relinquishes;
80386 -atomic_t fscache_n_relinquishes_null;
80387 -atomic_t fscache_n_relinquishes_waitcrt;
80388 -atomic_t fscache_n_relinquishes_retire;
80389 +atomic_unchecked_t fscache_n_relinquishes;
80390 +atomic_unchecked_t fscache_n_relinquishes_null;
80391 +atomic_unchecked_t fscache_n_relinquishes_waitcrt;
80392 +atomic_unchecked_t fscache_n_relinquishes_retire;
80393
80394 -atomic_t fscache_n_cookie_index;
80395 -atomic_t fscache_n_cookie_data;
80396 -atomic_t fscache_n_cookie_special;
80397 +atomic_unchecked_t fscache_n_cookie_index;
80398 +atomic_unchecked_t fscache_n_cookie_data;
80399 +atomic_unchecked_t fscache_n_cookie_special;
80400
80401 -atomic_t fscache_n_object_alloc;
80402 -atomic_t fscache_n_object_no_alloc;
80403 -atomic_t fscache_n_object_lookups;
80404 -atomic_t fscache_n_object_lookups_negative;
80405 -atomic_t fscache_n_object_lookups_positive;
80406 -atomic_t fscache_n_object_lookups_timed_out;
80407 -atomic_t fscache_n_object_created;
80408 -atomic_t fscache_n_object_avail;
80409 -atomic_t fscache_n_object_dead;
80410 +atomic_unchecked_t fscache_n_object_alloc;
80411 +atomic_unchecked_t fscache_n_object_no_alloc;
80412 +atomic_unchecked_t fscache_n_object_lookups;
80413 +atomic_unchecked_t fscache_n_object_lookups_negative;
80414 +atomic_unchecked_t fscache_n_object_lookups_positive;
80415 +atomic_unchecked_t fscache_n_object_lookups_timed_out;
80416 +atomic_unchecked_t fscache_n_object_created;
80417 +atomic_unchecked_t fscache_n_object_avail;
80418 +atomic_unchecked_t fscache_n_object_dead;
80419
80420 -atomic_t fscache_n_checkaux_none;
80421 -atomic_t fscache_n_checkaux_okay;
80422 -atomic_t fscache_n_checkaux_update;
80423 -atomic_t fscache_n_checkaux_obsolete;
80424 +atomic_unchecked_t fscache_n_checkaux_none;
80425 +atomic_unchecked_t fscache_n_checkaux_okay;
80426 +atomic_unchecked_t fscache_n_checkaux_update;
80427 +atomic_unchecked_t fscache_n_checkaux_obsolete;
80428
80429 atomic_t fscache_n_cop_alloc_object;
80430 atomic_t fscache_n_cop_lookup_object;
80431 @@ -144,119 +144,119 @@ static int fscache_stats_show(struct seq_file *m, void *v)
80432 seq_puts(m, "FS-Cache statistics\n");
80433
80434 seq_printf(m, "Cookies: idx=%u dat=%u spc=%u\n",
80435 - atomic_read(&fscache_n_cookie_index),
80436 - atomic_read(&fscache_n_cookie_data),
80437 - atomic_read(&fscache_n_cookie_special));
80438 + atomic_read_unchecked(&fscache_n_cookie_index),
80439 + atomic_read_unchecked(&fscache_n_cookie_data),
80440 + atomic_read_unchecked(&fscache_n_cookie_special));
80441
80442 seq_printf(m, "Objects: alc=%u nal=%u avl=%u ded=%u\n",
80443 - atomic_read(&fscache_n_object_alloc),
80444 - atomic_read(&fscache_n_object_no_alloc),
80445 - atomic_read(&fscache_n_object_avail),
80446 - atomic_read(&fscache_n_object_dead));
80447 + atomic_read_unchecked(&fscache_n_object_alloc),
80448 + atomic_read_unchecked(&fscache_n_object_no_alloc),
80449 + atomic_read_unchecked(&fscache_n_object_avail),
80450 + atomic_read_unchecked(&fscache_n_object_dead));
80451 seq_printf(m, "ChkAux : non=%u ok=%u upd=%u obs=%u\n",
80452 - atomic_read(&fscache_n_checkaux_none),
80453 - atomic_read(&fscache_n_checkaux_okay),
80454 - atomic_read(&fscache_n_checkaux_update),
80455 - atomic_read(&fscache_n_checkaux_obsolete));
80456 + atomic_read_unchecked(&fscache_n_checkaux_none),
80457 + atomic_read_unchecked(&fscache_n_checkaux_okay),
80458 + atomic_read_unchecked(&fscache_n_checkaux_update),
80459 + atomic_read_unchecked(&fscache_n_checkaux_obsolete));
80460
80461 seq_printf(m, "Pages : mrk=%u unc=%u\n",
80462 - atomic_read(&fscache_n_marks),
80463 - atomic_read(&fscache_n_uncaches));
80464 + atomic_read_unchecked(&fscache_n_marks),
80465 + atomic_read_unchecked(&fscache_n_uncaches));
80466
80467 seq_printf(m, "Acquire: n=%u nul=%u noc=%u ok=%u nbf=%u"
80468 " oom=%u\n",
80469 - atomic_read(&fscache_n_acquires),
80470 - atomic_read(&fscache_n_acquires_null),
80471 - atomic_read(&fscache_n_acquires_no_cache),
80472 - atomic_read(&fscache_n_acquires_ok),
80473 - atomic_read(&fscache_n_acquires_nobufs),
80474 - atomic_read(&fscache_n_acquires_oom));
80475 + atomic_read_unchecked(&fscache_n_acquires),
80476 + atomic_read_unchecked(&fscache_n_acquires_null),
80477 + atomic_read_unchecked(&fscache_n_acquires_no_cache),
80478 + atomic_read_unchecked(&fscache_n_acquires_ok),
80479 + atomic_read_unchecked(&fscache_n_acquires_nobufs),
80480 + atomic_read_unchecked(&fscache_n_acquires_oom));
80481
80482 seq_printf(m, "Lookups: n=%u neg=%u pos=%u crt=%u tmo=%u\n",
80483 - atomic_read(&fscache_n_object_lookups),
80484 - atomic_read(&fscache_n_object_lookups_negative),
80485 - atomic_read(&fscache_n_object_lookups_positive),
80486 - atomic_read(&fscache_n_object_created),
80487 - atomic_read(&fscache_n_object_lookups_timed_out));
80488 + atomic_read_unchecked(&fscache_n_object_lookups),
80489 + atomic_read_unchecked(&fscache_n_object_lookups_negative),
80490 + atomic_read_unchecked(&fscache_n_object_lookups_positive),
80491 + atomic_read_unchecked(&fscache_n_object_created),
80492 + atomic_read_unchecked(&fscache_n_object_lookups_timed_out));
80493
80494 seq_printf(m, "Invals : n=%u run=%u\n",
80495 - atomic_read(&fscache_n_invalidates),
80496 - atomic_read(&fscache_n_invalidates_run));
80497 + atomic_read_unchecked(&fscache_n_invalidates),
80498 + atomic_read_unchecked(&fscache_n_invalidates_run));
80499
80500 seq_printf(m, "Updates: n=%u nul=%u run=%u\n",
80501 - atomic_read(&fscache_n_updates),
80502 - atomic_read(&fscache_n_updates_null),
80503 - atomic_read(&fscache_n_updates_run));
80504 + atomic_read_unchecked(&fscache_n_updates),
80505 + atomic_read_unchecked(&fscache_n_updates_null),
80506 + atomic_read_unchecked(&fscache_n_updates_run));
80507
80508 seq_printf(m, "Relinqs: n=%u nul=%u wcr=%u rtr=%u\n",
80509 - atomic_read(&fscache_n_relinquishes),
80510 - atomic_read(&fscache_n_relinquishes_null),
80511 - atomic_read(&fscache_n_relinquishes_waitcrt),
80512 - atomic_read(&fscache_n_relinquishes_retire));
80513 + atomic_read_unchecked(&fscache_n_relinquishes),
80514 + atomic_read_unchecked(&fscache_n_relinquishes_null),
80515 + atomic_read_unchecked(&fscache_n_relinquishes_waitcrt),
80516 + atomic_read_unchecked(&fscache_n_relinquishes_retire));
80517
80518 seq_printf(m, "AttrChg: n=%u ok=%u nbf=%u oom=%u run=%u\n",
80519 - atomic_read(&fscache_n_attr_changed),
80520 - atomic_read(&fscache_n_attr_changed_ok),
80521 - atomic_read(&fscache_n_attr_changed_nobufs),
80522 - atomic_read(&fscache_n_attr_changed_nomem),
80523 - atomic_read(&fscache_n_attr_changed_calls));
80524 + atomic_read_unchecked(&fscache_n_attr_changed),
80525 + atomic_read_unchecked(&fscache_n_attr_changed_ok),
80526 + atomic_read_unchecked(&fscache_n_attr_changed_nobufs),
80527 + atomic_read_unchecked(&fscache_n_attr_changed_nomem),
80528 + atomic_read_unchecked(&fscache_n_attr_changed_calls));
80529
80530 seq_printf(m, "Allocs : n=%u ok=%u wt=%u nbf=%u int=%u\n",
80531 - atomic_read(&fscache_n_allocs),
80532 - atomic_read(&fscache_n_allocs_ok),
80533 - atomic_read(&fscache_n_allocs_wait),
80534 - atomic_read(&fscache_n_allocs_nobufs),
80535 - atomic_read(&fscache_n_allocs_intr));
80536 + atomic_read_unchecked(&fscache_n_allocs),
80537 + atomic_read_unchecked(&fscache_n_allocs_ok),
80538 + atomic_read_unchecked(&fscache_n_allocs_wait),
80539 + atomic_read_unchecked(&fscache_n_allocs_nobufs),
80540 + atomic_read_unchecked(&fscache_n_allocs_intr));
80541 seq_printf(m, "Allocs : ops=%u owt=%u abt=%u\n",
80542 - atomic_read(&fscache_n_alloc_ops),
80543 - atomic_read(&fscache_n_alloc_op_waits),
80544 - atomic_read(&fscache_n_allocs_object_dead));
80545 + atomic_read_unchecked(&fscache_n_alloc_ops),
80546 + atomic_read_unchecked(&fscache_n_alloc_op_waits),
80547 + atomic_read_unchecked(&fscache_n_allocs_object_dead));
80548
80549 seq_printf(m, "Retrvls: n=%u ok=%u wt=%u nod=%u nbf=%u"
80550 " int=%u oom=%u\n",
80551 - atomic_read(&fscache_n_retrievals),
80552 - atomic_read(&fscache_n_retrievals_ok),
80553 - atomic_read(&fscache_n_retrievals_wait),
80554 - atomic_read(&fscache_n_retrievals_nodata),
80555 - atomic_read(&fscache_n_retrievals_nobufs),
80556 - atomic_read(&fscache_n_retrievals_intr),
80557 - atomic_read(&fscache_n_retrievals_nomem));
80558 + atomic_read_unchecked(&fscache_n_retrievals),
80559 + atomic_read_unchecked(&fscache_n_retrievals_ok),
80560 + atomic_read_unchecked(&fscache_n_retrievals_wait),
80561 + atomic_read_unchecked(&fscache_n_retrievals_nodata),
80562 + atomic_read_unchecked(&fscache_n_retrievals_nobufs),
80563 + atomic_read_unchecked(&fscache_n_retrievals_intr),
80564 + atomic_read_unchecked(&fscache_n_retrievals_nomem));
80565 seq_printf(m, "Retrvls: ops=%u owt=%u abt=%u\n",
80566 - atomic_read(&fscache_n_retrieval_ops),
80567 - atomic_read(&fscache_n_retrieval_op_waits),
80568 - atomic_read(&fscache_n_retrievals_object_dead));
80569 + atomic_read_unchecked(&fscache_n_retrieval_ops),
80570 + atomic_read_unchecked(&fscache_n_retrieval_op_waits),
80571 + atomic_read_unchecked(&fscache_n_retrievals_object_dead));
80572
80573 seq_printf(m, "Stores : n=%u ok=%u agn=%u nbf=%u oom=%u\n",
80574 - atomic_read(&fscache_n_stores),
80575 - atomic_read(&fscache_n_stores_ok),
80576 - atomic_read(&fscache_n_stores_again),
80577 - atomic_read(&fscache_n_stores_nobufs),
80578 - atomic_read(&fscache_n_stores_oom));
80579 + atomic_read_unchecked(&fscache_n_stores),
80580 + atomic_read_unchecked(&fscache_n_stores_ok),
80581 + atomic_read_unchecked(&fscache_n_stores_again),
80582 + atomic_read_unchecked(&fscache_n_stores_nobufs),
80583 + atomic_read_unchecked(&fscache_n_stores_oom));
80584 seq_printf(m, "Stores : ops=%u run=%u pgs=%u rxd=%u olm=%u\n",
80585 - atomic_read(&fscache_n_store_ops),
80586 - atomic_read(&fscache_n_store_calls),
80587 - atomic_read(&fscache_n_store_pages),
80588 - atomic_read(&fscache_n_store_radix_deletes),
80589 - atomic_read(&fscache_n_store_pages_over_limit));
80590 + atomic_read_unchecked(&fscache_n_store_ops),
80591 + atomic_read_unchecked(&fscache_n_store_calls),
80592 + atomic_read_unchecked(&fscache_n_store_pages),
80593 + atomic_read_unchecked(&fscache_n_store_radix_deletes),
80594 + atomic_read_unchecked(&fscache_n_store_pages_over_limit));
80595
80596 seq_printf(m, "VmScan : nos=%u gon=%u bsy=%u can=%u wt=%u\n",
80597 - atomic_read(&fscache_n_store_vmscan_not_storing),
80598 - atomic_read(&fscache_n_store_vmscan_gone),
80599 - atomic_read(&fscache_n_store_vmscan_busy),
80600 - atomic_read(&fscache_n_store_vmscan_cancelled),
80601 - atomic_read(&fscache_n_store_vmscan_wait));
80602 + atomic_read_unchecked(&fscache_n_store_vmscan_not_storing),
80603 + atomic_read_unchecked(&fscache_n_store_vmscan_gone),
80604 + atomic_read_unchecked(&fscache_n_store_vmscan_busy),
80605 + atomic_read_unchecked(&fscache_n_store_vmscan_cancelled),
80606 + atomic_read_unchecked(&fscache_n_store_vmscan_wait));
80607
80608 seq_printf(m, "Ops : pend=%u run=%u enq=%u can=%u rej=%u\n",
80609 - atomic_read(&fscache_n_op_pend),
80610 - atomic_read(&fscache_n_op_run),
80611 - atomic_read(&fscache_n_op_enqueue),
80612 - atomic_read(&fscache_n_op_cancelled),
80613 - atomic_read(&fscache_n_op_rejected));
80614 + atomic_read_unchecked(&fscache_n_op_pend),
80615 + atomic_read_unchecked(&fscache_n_op_run),
80616 + atomic_read_unchecked(&fscache_n_op_enqueue),
80617 + atomic_read_unchecked(&fscache_n_op_cancelled),
80618 + atomic_read_unchecked(&fscache_n_op_rejected));
80619 seq_printf(m, "Ops : ini=%u dfr=%u rel=%u gc=%u\n",
80620 - atomic_read(&fscache_n_op_initialised),
80621 - atomic_read(&fscache_n_op_deferred_release),
80622 - atomic_read(&fscache_n_op_release),
80623 - atomic_read(&fscache_n_op_gc));
80624 + atomic_read_unchecked(&fscache_n_op_initialised),
80625 + atomic_read_unchecked(&fscache_n_op_deferred_release),
80626 + atomic_read_unchecked(&fscache_n_op_release),
80627 + atomic_read_unchecked(&fscache_n_op_gc));
80628
80629 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
80630 atomic_read(&fscache_n_cop_alloc_object),
80631 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
80632 index eae2c11..b277a45 100644
80633 --- a/fs/fuse/cuse.c
80634 +++ b/fs/fuse/cuse.c
80635 @@ -609,10 +609,12 @@ static int __init cuse_init(void)
80636 INIT_LIST_HEAD(&cuse_conntbl[i]);
80637
80638 /* inherit and extend fuse_dev_operations */
80639 - cuse_channel_fops = fuse_dev_operations;
80640 - cuse_channel_fops.owner = THIS_MODULE;
80641 - cuse_channel_fops.open = cuse_channel_open;
80642 - cuse_channel_fops.release = cuse_channel_release;
80643 + pax_open_kernel();
80644 + memcpy((void *)&cuse_channel_fops, &fuse_dev_operations, sizeof(fuse_dev_operations));
80645 + *(void **)&cuse_channel_fops.owner = THIS_MODULE;
80646 + *(void **)&cuse_channel_fops.open = cuse_channel_open;
80647 + *(void **)&cuse_channel_fops.release = cuse_channel_release;
80648 + pax_close_kernel();
80649
80650 cuse_class = class_create(THIS_MODULE, "cuse");
80651 if (IS_ERR(cuse_class))
80652 diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
80653 index ebb5e37..beae05b 100644
80654 --- a/fs/fuse/dev.c
80655 +++ b/fs/fuse/dev.c
80656 @@ -1390,7 +1390,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
80657 ret = 0;
80658 pipe_lock(pipe);
80659
80660 - if (!pipe->readers) {
80661 + if (!atomic_read(&pipe->readers)) {
80662 send_sig(SIGPIPE, current, 0);
80663 if (!ret)
80664 ret = -EPIPE;
80665 @@ -1419,7 +1419,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
80666 page_nr++;
80667 ret += buf->len;
80668
80669 - if (pipe->files)
80670 + if (atomic_read(&pipe->files))
80671 do_wakeup = 1;
80672 }
80673
80674 diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
80675 index a38e38f..6dbdcf6 100644
80676 --- a/fs/gfs2/glock.c
80677 +++ b/fs/gfs2/glock.c
80678 @@ -385,9 +385,9 @@ static void state_change(struct gfs2_glock *gl, unsigned int new_state)
80679 if (held1 != held2) {
80680 GLOCK_BUG_ON(gl, __lockref_is_dead(&gl->gl_lockref));
80681 if (held2)
80682 - gl->gl_lockref.count++;
80683 + __lockref_inc(&gl->gl_lockref);
80684 else
80685 - gl->gl_lockref.count--;
80686 + __lockref_dec(&gl->gl_lockref);
80687 }
80688 if (held1 && held2 && list_empty(&gl->gl_holders))
80689 clear_bit(GLF_QUEUED, &gl->gl_flags);
80690 @@ -614,9 +614,9 @@ out:
80691 out_sched:
80692 clear_bit(GLF_LOCK, &gl->gl_flags);
80693 smp_mb__after_atomic();
80694 - gl->gl_lockref.count++;
80695 + __lockref_inc(&gl->gl_lockref);
80696 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80697 - gl->gl_lockref.count--;
80698 + __lockref_dec(&gl->gl_lockref);
80699 return;
80700
80701 out_unlock:
80702 @@ -742,7 +742,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
80703 gl->gl_sbd = sdp;
80704 gl->gl_flags = 0;
80705 gl->gl_name = name;
80706 - gl->gl_lockref.count = 1;
80707 + __lockref_set(&gl->gl_lockref, 1);
80708 gl->gl_state = LM_ST_UNLOCKED;
80709 gl->gl_target = LM_ST_UNLOCKED;
80710 gl->gl_demote_state = LM_ST_EXCLUSIVE;
80711 @@ -1020,9 +1020,9 @@ int gfs2_glock_nq(struct gfs2_holder *gh)
80712 if (unlikely((LM_FLAG_NOEXP & gh->gh_flags) &&
80713 test_and_clear_bit(GLF_FROZEN, &gl->gl_flags))) {
80714 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
80715 - gl->gl_lockref.count++;
80716 + __lockref_inc(&gl->gl_lockref);
80717 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80718 - gl->gl_lockref.count--;
80719 + __lockref_dec(&gl->gl_lockref);
80720 }
80721 run_queue(gl, 1);
80722 spin_unlock(&gl->gl_spin);
80723 @@ -1326,7 +1326,7 @@ void gfs2_glock_complete(struct gfs2_glock *gl, int ret)
80724 }
80725 }
80726
80727 - gl->gl_lockref.count++;
80728 + __lockref_inc(&gl->gl_lockref);
80729 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
80730 spin_unlock(&gl->gl_spin);
80731
80732 @@ -1385,12 +1385,12 @@ add_back_to_lru:
80733 goto add_back_to_lru;
80734 }
80735 clear_bit(GLF_LRU, &gl->gl_flags);
80736 - gl->gl_lockref.count++;
80737 + __lockref_inc(&gl->gl_lockref);
80738 if (demote_ok(gl))
80739 handle_callback(gl, LM_ST_UNLOCKED, 0, false);
80740 WARN_ON(!test_and_clear_bit(GLF_LOCK, &gl->gl_flags));
80741 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80742 - gl->gl_lockref.count--;
80743 + __lockref_dec(&gl->gl_lockref);
80744 spin_unlock(&gl->gl_spin);
80745 cond_resched_lock(&lru_lock);
80746 }
80747 @@ -1720,7 +1720,7 @@ void gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
80748 state2str(gl->gl_demote_state), dtime,
80749 atomic_read(&gl->gl_ail_count),
80750 atomic_read(&gl->gl_revokes),
80751 - (int)gl->gl_lockref.count, gl->gl_hold_time);
80752 + __lockref_read(&gl->gl_lockref), gl->gl_hold_time);
80753
80754 list_for_each_entry(gh, &gl->gl_holders, gh_list)
80755 dump_holder(seq, gh);
80756 diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
80757 index fa3fa5e..9fe2272 100644
80758 --- a/fs/gfs2/glops.c
80759 +++ b/fs/gfs2/glops.c
80760 @@ -552,9 +552,9 @@ static void iopen_go_callback(struct gfs2_glock *gl, bool remote)
80761
80762 if (gl->gl_demote_state == LM_ST_UNLOCKED &&
80763 gl->gl_state == LM_ST_SHARED && ip) {
80764 - gl->gl_lockref.count++;
80765 + __lockref_inc(&gl->gl_lockref);
80766 if (queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0)
80767 - gl->gl_lockref.count--;
80768 + __lockref_dec(&gl->gl_lockref);
80769 }
80770 }
80771
80772 diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
80773 index 9b61f92..ab84778 100644
80774 --- a/fs/gfs2/quota.c
80775 +++ b/fs/gfs2/quota.c
80776 @@ -154,7 +154,7 @@ static enum lru_status gfs2_qd_isolate(struct list_head *item,
80777 if (!spin_trylock(&qd->qd_lockref.lock))
80778 return LRU_SKIP;
80779
80780 - if (qd->qd_lockref.count == 0) {
80781 + if (__lockref_read(&qd->qd_lockref) == 0) {
80782 lockref_mark_dead(&qd->qd_lockref);
80783 list_lru_isolate_move(lru, &qd->qd_lru, dispose);
80784 }
80785 @@ -221,7 +221,7 @@ static struct gfs2_quota_data *qd_alloc(unsigned hash, struct gfs2_sbd *sdp, str
80786 return NULL;
80787
80788 qd->qd_sbd = sdp;
80789 - qd->qd_lockref.count = 1;
80790 + __lockref_set(&qd->qd_lockref, 1);
80791 spin_lock_init(&qd->qd_lockref.lock);
80792 qd->qd_id = qid;
80793 qd->qd_slot = -1;
80794 @@ -312,7 +312,7 @@ static void qd_put(struct gfs2_quota_data *qd)
80795 if (lockref_put_or_lock(&qd->qd_lockref))
80796 return;
80797
80798 - qd->qd_lockref.count = 0;
80799 + __lockref_set(&qd->qd_lockref, 0);
80800 list_lru_add(&gfs2_qd_lru, &qd->qd_lru);
80801 spin_unlock(&qd->qd_lockref.lock);
80802
80803 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
80804 index 973c24c..a3cbeb3 100644
80805 --- a/fs/hugetlbfs/inode.c
80806 +++ b/fs/hugetlbfs/inode.c
80807 @@ -150,6 +150,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
80808 struct mm_struct *mm = current->mm;
80809 struct vm_area_struct *vma;
80810 struct hstate *h = hstate_file(file);
80811 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
80812 struct vm_unmapped_area_info info;
80813
80814 if (len & ~huge_page_mask(h))
80815 @@ -163,17 +164,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
80816 return addr;
80817 }
80818
80819 +#ifdef CONFIG_PAX_RANDMMAP
80820 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
80821 +#endif
80822 +
80823 if (addr) {
80824 addr = ALIGN(addr, huge_page_size(h));
80825 vma = find_vma(mm, addr);
80826 - if (TASK_SIZE - len >= addr &&
80827 - (!vma || addr + len <= vma->vm_start))
80828 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
80829 return addr;
80830 }
80831
80832 info.flags = 0;
80833 info.length = len;
80834 info.low_limit = TASK_UNMAPPED_BASE;
80835 +
80836 +#ifdef CONFIG_PAX_RANDMMAP
80837 + if (mm->pax_flags & MF_PAX_RANDMMAP)
80838 + info.low_limit += mm->delta_mmap;
80839 +#endif
80840 +
80841 info.high_limit = TASK_SIZE;
80842 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
80843 info.align_offset = 0;
80844 @@ -938,7 +948,7 @@ static struct file_system_type hugetlbfs_fs_type = {
80845 };
80846 MODULE_ALIAS_FS("hugetlbfs");
80847
80848 -static struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
80849 +struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
80850
80851 static int can_do_hugetlb_shm(void)
80852 {
80853 diff --git a/fs/inode.c b/fs/inode.c
80854 index d30640f..9d909a7 100644
80855 --- a/fs/inode.c
80856 +++ b/fs/inode.c
80857 @@ -832,19 +832,19 @@ unsigned int get_next_ino(void)
80858 unsigned int *p = &get_cpu_var(last_ino);
80859 unsigned int res = *p;
80860
80861 +start:
80862 +
80863 #ifdef CONFIG_SMP
80864 if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
80865 - static atomic_t shared_last_ino;
80866 - int next = atomic_add_return(LAST_INO_BATCH, &shared_last_ino);
80867 + static atomic_unchecked_t shared_last_ino;
80868 + int next = atomic_add_return_unchecked(LAST_INO_BATCH, &shared_last_ino);
80869
80870 res = next - LAST_INO_BATCH;
80871 }
80872 #endif
80873
80874 - res++;
80875 - /* get_next_ino should not provide a 0 inode number */
80876 - if (unlikely(!res))
80877 - res++;
80878 + if (unlikely(!++res))
80879 + goto start; /* never zero */
80880 *p = res;
80881 put_cpu_var(last_ino);
80882 return res;
80883 diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
80884 index 4a6cf28..d3a29d3 100644
80885 --- a/fs/jffs2/erase.c
80886 +++ b/fs/jffs2/erase.c
80887 @@ -452,7 +452,8 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
80888 struct jffs2_unknown_node marker = {
80889 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
80890 .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
80891 - .totlen = cpu_to_je32(c->cleanmarker_size)
80892 + .totlen = cpu_to_je32(c->cleanmarker_size),
80893 + .hdr_crc = cpu_to_je32(0)
80894 };
80895
80896 jffs2_prealloc_raw_node_refs(c, jeb, 1);
80897 diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
80898 index 09ed551..45684f8 100644
80899 --- a/fs/jffs2/wbuf.c
80900 +++ b/fs/jffs2/wbuf.c
80901 @@ -1023,7 +1023,8 @@ static const struct jffs2_unknown_node oob_cleanmarker =
80902 {
80903 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
80904 .nodetype = constant_cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
80905 - .totlen = constant_cpu_to_je32(8)
80906 + .totlen = constant_cpu_to_je32(8),
80907 + .hdr_crc = constant_cpu_to_je32(0)
80908 };
80909
80910 /*
80911 diff --git a/fs/jfs/super.c b/fs/jfs/super.c
80912 index 4cd9798..8dfe86a 100644
80913 --- a/fs/jfs/super.c
80914 +++ b/fs/jfs/super.c
80915 @@ -901,7 +901,7 @@ static int __init init_jfs_fs(void)
80916
80917 jfs_inode_cachep =
80918 kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0,
80919 - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD,
80920 + SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|SLAB_USERCOPY,
80921 init_once);
80922 if (jfs_inode_cachep == NULL)
80923 return -ENOMEM;
80924 diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
80925 index 2d48d28..82eddad 100644
80926 --- a/fs/kernfs/dir.c
80927 +++ b/fs/kernfs/dir.c
80928 @@ -182,7 +182,7 @@ struct kernfs_node *kernfs_get_parent(struct kernfs_node *kn)
80929 *
80930 * Returns 31 bit hash of ns + name (so it fits in an off_t )
80931 */
80932 -static unsigned int kernfs_name_hash(const char *name, const void *ns)
80933 +static unsigned int kernfs_name_hash(const unsigned char *name, const void *ns)
80934 {
80935 unsigned long hash = init_name_hash();
80936 unsigned int len = strlen(name);
80937 @@ -873,6 +873,12 @@ static int kernfs_iop_mkdir(struct inode *dir, struct dentry *dentry,
80938 ret = scops->mkdir(parent, dentry->d_name.name, mode);
80939
80940 kernfs_put_active(parent);
80941 +
80942 + if (!ret) {
80943 + struct dentry *dentry_ret = kernfs_iop_lookup(dir, dentry, 0);
80944 + ret = PTR_ERR_OR_ZERO(dentry_ret);
80945 + }
80946 +
80947 return ret;
80948 }
80949
80950 diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
80951 index 7247252..c73808e 100644
80952 --- a/fs/kernfs/file.c
80953 +++ b/fs/kernfs/file.c
80954 @@ -34,7 +34,7 @@ static DEFINE_MUTEX(kernfs_open_file_mutex);
80955
80956 struct kernfs_open_node {
80957 atomic_t refcnt;
80958 - atomic_t event;
80959 + atomic_unchecked_t event;
80960 wait_queue_head_t poll;
80961 struct list_head files; /* goes through kernfs_open_file.list */
80962 };
80963 @@ -163,7 +163,7 @@ static int kernfs_seq_show(struct seq_file *sf, void *v)
80964 {
80965 struct kernfs_open_file *of = sf->private;
80966
80967 - of->event = atomic_read(&of->kn->attr.open->event);
80968 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
80969
80970 return of->kn->attr.ops->seq_show(sf, v);
80971 }
80972 @@ -207,7 +207,7 @@ static ssize_t kernfs_file_direct_read(struct kernfs_open_file *of,
80973 goto out_free;
80974 }
80975
80976 - of->event = atomic_read(&of->kn->attr.open->event);
80977 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
80978 ops = kernfs_ops(of->kn);
80979 if (ops->read)
80980 len = ops->read(of, buf, len, *ppos);
80981 @@ -272,7 +272,7 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf,
80982 {
80983 struct kernfs_open_file *of = kernfs_of(file);
80984 const struct kernfs_ops *ops;
80985 - size_t len;
80986 + ssize_t len;
80987 char *buf;
80988
80989 if (of->atomic_write_len) {
80990 @@ -385,12 +385,12 @@ static int kernfs_vma_page_mkwrite(struct vm_area_struct *vma,
80991 return ret;
80992 }
80993
80994 -static int kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
80995 - void *buf, int len, int write)
80996 +static ssize_t kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
80997 + void *buf, size_t len, int write)
80998 {
80999 struct file *file = vma->vm_file;
81000 struct kernfs_open_file *of = kernfs_of(file);
81001 - int ret;
81002 + ssize_t ret;
81003
81004 if (!of->vm_ops)
81005 return -EINVAL;
81006 @@ -569,7 +569,7 @@ static int kernfs_get_open_node(struct kernfs_node *kn,
81007 return -ENOMEM;
81008
81009 atomic_set(&new_on->refcnt, 0);
81010 - atomic_set(&new_on->event, 1);
81011 + atomic_set_unchecked(&new_on->event, 1);
81012 init_waitqueue_head(&new_on->poll);
81013 INIT_LIST_HEAD(&new_on->files);
81014 goto retry;
81015 @@ -792,7 +792,7 @@ static unsigned int kernfs_fop_poll(struct file *filp, poll_table *wait)
81016
81017 kernfs_put_active(kn);
81018
81019 - if (of->event != atomic_read(&on->event))
81020 + if (of->event != atomic_read_unchecked(&on->event))
81021 goto trigger;
81022
81023 return DEFAULT_POLLMASK;
81024 @@ -823,7 +823,7 @@ repeat:
81025
81026 on = kn->attr.open;
81027 if (on) {
81028 - atomic_inc(&on->event);
81029 + atomic_inc_unchecked(&on->event);
81030 wake_up_interruptible(&on->poll);
81031 }
81032
81033 diff --git a/fs/libfs.c b/fs/libfs.c
81034 index c7cbfb0..fc3636d4 100644
81035 --- a/fs/libfs.c
81036 +++ b/fs/libfs.c
81037 @@ -155,6 +155,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
81038
81039 for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
81040 struct dentry *next = list_entry(p, struct dentry, d_child);
81041 + char d_name[sizeof(next->d_iname)];
81042 + const unsigned char *name;
81043 +
81044 spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
81045 if (!simple_positive(next)) {
81046 spin_unlock(&next->d_lock);
81047 @@ -163,7 +166,12 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
81048
81049 spin_unlock(&next->d_lock);
81050 spin_unlock(&dentry->d_lock);
81051 - if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
81052 + name = next->d_name.name;
81053 + if (name == next->d_iname) {
81054 + memcpy(d_name, name, next->d_name.len);
81055 + name = d_name;
81056 + }
81057 + if (!dir_emit(ctx, name, next->d_name.len,
81058 d_inode(next)->i_ino, dt_type(d_inode(next))))
81059 return 0;
81060 spin_lock(&dentry->d_lock);
81061 diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
81062 index acd3947..1f896e2 100644
81063 --- a/fs/lockd/clntproc.c
81064 +++ b/fs/lockd/clntproc.c
81065 @@ -36,11 +36,11 @@ static const struct rpc_call_ops nlmclnt_cancel_ops;
81066 /*
81067 * Cookie counter for NLM requests
81068 */
81069 -static atomic_t nlm_cookie = ATOMIC_INIT(0x1234);
81070 +static atomic_unchecked_t nlm_cookie = ATOMIC_INIT(0x1234);
81071
81072 void nlmclnt_next_cookie(struct nlm_cookie *c)
81073 {
81074 - u32 cookie = atomic_inc_return(&nlm_cookie);
81075 + u32 cookie = atomic_inc_return_unchecked(&nlm_cookie);
81076
81077 memcpy(c->data, &cookie, 4);
81078 c->len=4;
81079 diff --git a/fs/mount.h b/fs/mount.h
81080 index 14db05d..687f6d8 100644
81081 --- a/fs/mount.h
81082 +++ b/fs/mount.h
81083 @@ -13,7 +13,7 @@ struct mnt_namespace {
81084 u64 seq; /* Sequence number to prevent loops */
81085 wait_queue_head_t poll;
81086 u64 event;
81087 -};
81088 +} __randomize_layout;
81089
81090 struct mnt_pcp {
81091 int mnt_count;
81092 @@ -65,7 +65,7 @@ struct mount {
81093 struct hlist_head mnt_pins;
81094 struct fs_pin mnt_umount;
81095 struct dentry *mnt_ex_mountpoint;
81096 -};
81097 +} __randomize_layout;
81098
81099 #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
81100
81101 diff --git a/fs/namei.c b/fs/namei.c
81102 index 36df481..c3045fd 100644
81103 --- a/fs/namei.c
81104 +++ b/fs/namei.c
81105 @@ -336,17 +336,32 @@ int generic_permission(struct inode *inode, int mask)
81106 if (ret != -EACCES)
81107 return ret;
81108
81109 +#ifdef CONFIG_GRKERNSEC
81110 + /* we'll block if we have to log due to a denied capability use */
81111 + if (mask & MAY_NOT_BLOCK)
81112 + return -ECHILD;
81113 +#endif
81114 +
81115 if (S_ISDIR(inode->i_mode)) {
81116 /* DACs are overridable for directories */
81117 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
81118 - return 0;
81119 if (!(mask & MAY_WRITE))
81120 - if (capable_wrt_inode_uidgid(inode,
81121 - CAP_DAC_READ_SEARCH))
81122 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
81123 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
81124 return 0;
81125 + if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
81126 + return 0;
81127 return -EACCES;
81128 }
81129 /*
81130 + * Searching includes executable on directories, else just read.
81131 + */
81132 + mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
81133 + if (mask == MAY_READ)
81134 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
81135 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
81136 + return 0;
81137 +
81138 + /*
81139 * Read/write DACs are always overridable.
81140 * Executable DACs are overridable when there is
81141 * at least one exec bit set.
81142 @@ -355,14 +370,6 @@ int generic_permission(struct inode *inode, int mask)
81143 if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
81144 return 0;
81145
81146 - /*
81147 - * Searching includes executable on directories, else just read.
81148 - */
81149 - mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
81150 - if (mask == MAY_READ)
81151 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
81152 - return 0;
81153 -
81154 return -EACCES;
81155 }
81156 EXPORT_SYMBOL(generic_permission);
81157 @@ -514,12 +521,35 @@ struct nameidata {
81158 struct nameidata *saved;
81159 unsigned root_seq;
81160 int dfd;
81161 -};
81162 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81163 + struct path *symlinkown_stack;
81164 + struct path symlinkown_internal[EMBEDDED_LEVELS];
81165 + unsigned symlinkown_depth;
81166 + int symlinkown_enabled;
81167 +#endif
81168 +} __randomize_layout;
81169 +
81170 +static int gr_handle_nameidata_symlinkowner(const struct nameidata *nd, const struct inode *target)
81171 +{
81172 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81173 + int i;
81174 +
81175 + for (i = 0; i < nd->symlinkown_depth; i++) {
81176 + if (gr_handle_symlink_owner(&nd->symlinkown_stack[i], target))
81177 + return -EACCES;
81178 + }
81179 +#endif
81180 + return 0;
81181 +}
81182
81183 static void set_nameidata(struct nameidata *p, int dfd, struct filename *name)
81184 {
81185 struct nameidata *old = current->nameidata;
81186 p->stack = p->internal;
81187 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81188 + p->symlinkown_stack = p->symlinkown_internal;
81189 + p->symlinkown_enabled = -1;
81190 +#endif
81191 p->dfd = dfd;
81192 p->name = name;
81193 p->total_link_count = old ? old->total_link_count : 0;
81194 @@ -538,6 +568,12 @@ static void restore_nameidata(void)
81195 kfree(now->stack);
81196 now->stack = now->internal;
81197 }
81198 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81199 + if (now->symlinkown_stack != now->symlinkown_internal) {
81200 + kfree(now->symlinkown_stack);
81201 + now->symlinkown_stack = now->symlinkown_internal;
81202 + }
81203 +#endif
81204 }
81205
81206 static int __nd_alloc_stack(struct nameidata *nd)
81207 @@ -557,9 +593,29 @@ static int __nd_alloc_stack(struct nameidata *nd)
81208 }
81209 memcpy(p, nd->internal, sizeof(nd->internal));
81210 nd->stack = p;
81211 +
81212 return 0;
81213 }
81214
81215 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81216 +static int nd_alloc_symlinkown_stack(struct nameidata *nd)
81217 +{
81218 + struct path *p;
81219 +
81220 + if (likely(nd->symlinkown_depth != EMBEDDED_LEVELS))
81221 + return 0;
81222 + if (nd->symlinkown_stack != nd->symlinkown_internal)
81223 + return 0;
81224 +
81225 + p = kmalloc(MAXSYMLINKS * sizeof(struct path), GFP_KERNEL);
81226 + if (unlikely(!p))
81227 + return -ENOMEM;
81228 + memcpy(p, nd->symlinkown_internal, sizeof(nd->symlinkown_internal));
81229 + nd->symlinkown_stack = p;
81230 + return 0;
81231 +}
81232 +#endif
81233 +
81234 /**
81235 * path_connected - Verify that a path->dentry is below path->mnt.mnt_root
81236 * @path: nameidate to verify
81237 @@ -580,6 +636,11 @@ static bool path_connected(const struct path *path)
81238
81239 static inline int nd_alloc_stack(struct nameidata *nd)
81240 {
81241 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81242 + if (nd->flags & LOOKUP_RCU)
81243 + return -ECHILD;
81244 +#endif
81245 +
81246 if (likely(nd->depth != EMBEDDED_LEVELS))
81247 return 0;
81248 if (likely(nd->stack != nd->internal))
81249 @@ -608,6 +669,14 @@ static void terminate_walk(struct nameidata *nd)
81250 path_put(&nd->path);
81251 for (i = 0; i < nd->depth; i++)
81252 path_put(&nd->stack[i].link);
81253 +
81254 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81255 + /* we'll only ever set our values in ref-walk mode */
81256 + for (i = 0; i < nd->symlinkown_depth; i++)
81257 + path_put(&nd->symlinkown_stack[i]);
81258 + nd->symlinkown_depth = 0;
81259 +#endif
81260 +
81261 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) {
81262 path_put(&nd->root);
81263 nd->root.mnt = NULL;
81264 @@ -1004,6 +1073,9 @@ const char *get_link(struct nameidata *nd)
81265 if (unlikely(error))
81266 return ERR_PTR(error);
81267
81268 + if (gr_handle_follow_link(dentry, last->link.mnt))
81269 + return ERR_PTR(-EACCES);
81270 +
81271 nd->last_type = LAST_BIND;
81272 res = inode->i_link;
81273 if (!res) {
81274 @@ -1692,6 +1764,23 @@ static int pick_link(struct nameidata *nd, struct path *link,
81275 }
81276 }
81277
81278 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81279 + if (unlikely(nd->symlinkown_enabled == -1))
81280 + nd->symlinkown_enabled = gr_get_symlinkown_enabled();
81281 + if (nd->symlinkown_enabled && gr_is_global_nonroot(inode->i_uid)) {
81282 + struct path *symlinkownlast;
81283 + error = nd_alloc_symlinkown_stack(nd);
81284 + if (unlikely(error)) {
81285 + path_put(link);
81286 + return error;
81287 + }
81288 + symlinkownlast = nd->symlinkown_stack + nd->symlinkown_depth++;
81289 + symlinkownlast->dentry = link->dentry;
81290 + symlinkownlast->mnt = link->mnt;
81291 + path_get(symlinkownlast);
81292 + }
81293 +#endif
81294 +
81295 last = nd->stack + nd->depth++;
81296 last->link = *link;
81297 last->cookie = NULL;
81298 @@ -1831,7 +1920,7 @@ EXPORT_SYMBOL(full_name_hash);
81299 static inline u64 hash_name(const char *name)
81300 {
81301 unsigned long a, b, adata, bdata, mask, hash, len;
81302 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
81303 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
81304
81305 hash = a = 0;
81306 len = -sizeof(unsigned long);
81307 @@ -2000,6 +2089,9 @@ static const char *path_init(struct nameidata *nd, unsigned flags)
81308 nd->flags = flags | LOOKUP_JUMPED | LOOKUP_PARENT;
81309 nd->depth = 0;
81310 nd->total_link_count = 0;
81311 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
81312 + nd->symlinkown_depth = 0;
81313 +#endif
81314 if (flags & LOOKUP_ROOT) {
81315 struct dentry *root = nd->root.dentry;
81316 struct inode *inode = root->d_inode;
81317 @@ -2137,6 +2229,11 @@ static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path
81318 if (!err)
81319 err = complete_walk(nd);
81320
81321 + if (!err && !(nd->flags & LOOKUP_PARENT)) {
81322 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt))
81323 + err = -ENOENT;
81324 + }
81325 +
81326 if (!err && nd->flags & LOOKUP_DIRECTORY)
81327 if (!d_can_lookup(nd->path.dentry))
81328 err = -ENOTDIR;
81329 @@ -2185,6 +2282,10 @@ static int path_parentat(struct nameidata *nd, unsigned flags,
81330 err = link_path_walk(s, nd);
81331 if (!err)
81332 err = complete_walk(nd);
81333 +
81334 + if (!err && gr_handle_nameidata_symlinkowner(nd, nd->inode))
81335 + err = -EACCES;
81336 +
81337 if (!err) {
81338 *parent = nd->path;
81339 nd->path.mnt = NULL;
81340 @@ -2716,6 +2817,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
81341 if (flag & O_NOATIME && !inode_owner_or_capable(inode))
81342 return -EPERM;
81343
81344 + if (gr_handle_rofs_blockwrite(dentry, path->mnt, acc_mode))
81345 + return -EPERM;
81346 + if (gr_handle_rawio(inode))
81347 + return -EPERM;
81348 + if (!gr_acl_handle_open(dentry, path->mnt, acc_mode))
81349 + return -EACCES;
81350 +
81351 return 0;
81352 }
81353
81354 @@ -2982,6 +3090,18 @@ static int lookup_open(struct nameidata *nd, struct path *path,
81355 /* Negative dentry, just create the file */
81356 if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
81357 umode_t mode = op->mode;
81358 +
81359 +
81360 + if (gr_handle_nameidata_symlinkowner(nd, dir_inode)) {
81361 + error = -EACCES;
81362 + goto out_dput;
81363 + }
81364 +
81365 + if (!gr_acl_handle_creat(dentry, dir, nd->path.mnt, op->open_flag, op->acc_mode, mode)) {
81366 + error = -EACCES;
81367 + goto out_dput;
81368 + }
81369 +
81370 if (!IS_POSIXACL(dir->d_inode))
81371 mode &= ~current_umask();
81372 /*
81373 @@ -3003,6 +3123,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
81374 nd->flags & LOOKUP_EXCL);
81375 if (error)
81376 goto out_dput;
81377 + else
81378 + gr_handle_create(dentry, nd->path.mnt);
81379 }
81380 out_no_open:
81381 path->dentry = dentry;
81382 @@ -3066,6 +3188,9 @@ static int do_last(struct nameidata *nd,
81383 if (error)
81384 return error;
81385
81386 + if (!gr_acl_handle_hidden_file(dir, nd->path.mnt))
81387 + return -ENOENT;
81388 +
81389 audit_inode(nd->name, dir, LOOKUP_PARENT);
81390 /* trailing slashes? */
81391 if (unlikely(nd->last.name[nd->last.len]))
81392 @@ -3108,11 +3233,24 @@ retry_lookup:
81393 goto finish_open_created;
81394 }
81395
81396 + if (!gr_acl_handle_hidden_file(path.dentry, nd->path.mnt)) {
81397 + path_to_nameidata(&path, nd);
81398 + return -ENOENT;
81399 + }
81400 +
81401 /*
81402 * create/update audit record if it already exists.
81403 */
81404 - if (d_is_positive(path.dentry))
81405 + if (d_is_positive(path.dentry)) {
81406 + /* only check if O_CREAT is specified, all other checks need to go
81407 + into may_open */
81408 + if (gr_handle_fifo(path.dentry, path.mnt, dir, open_flag, acc_mode)) {
81409 + path_to_nameidata(&path, nd);
81410 + return -EACCES;
81411 + }
81412 +
81413 audit_inode(nd->name, path.dentry, 0);
81414 + }
81415
81416 /*
81417 * If atomic_open() acquired write access it is dropped now due to
81418 @@ -3148,6 +3286,11 @@ finish_lookup:
81419 if (unlikely(error))
81420 return error;
81421
81422 + if (gr_handle_nameidata_symlinkowner(nd, inode)) {
81423 + path_to_nameidata(&path, nd);
81424 + return -EACCES;
81425 + }
81426 +
81427 if (unlikely(d_is_symlink(path.dentry)) && !(open_flag & O_PATH)) {
81428 path_to_nameidata(&path, nd);
81429 return -ELOOP;
81430 @@ -3170,6 +3313,12 @@ finish_open:
81431 path_put(&save_parent);
81432 return error;
81433 }
81434 +
81435 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt)) {
81436 + error = -ENOENT;
81437 + goto out;
81438 + }
81439 +
81440 audit_inode(nd->name, nd->path.dentry, 0);
81441 error = -EISDIR;
81442 if ((open_flag & O_CREAT) && d_is_dir(nd->path.dentry))
81443 @@ -3436,9 +3585,11 @@ static struct dentry *filename_create(int dfd, struct filename *name,
81444 goto unlock;
81445
81446 error = -EEXIST;
81447 - if (d_is_positive(dentry))
81448 + if (d_is_positive(dentry)) {
81449 + if (!gr_acl_handle_hidden_file(dentry, path->mnt))
81450 + error = -ENOENT;
81451 goto fail;
81452 -
81453 + }
81454 /*
81455 * Special case - lookup gave negative, but... we had foo/bar/
81456 * From the vfs_mknod() POV we just have a negative dentry -
81457 @@ -3492,6 +3643,20 @@ inline struct dentry *user_path_create(int dfd, const char __user *pathname,
81458 }
81459 EXPORT_SYMBOL(user_path_create);
81460
81461 +static struct dentry *user_path_create_with_name(int dfd, const char __user *pathname, struct path *path, struct filename **to, unsigned int lookup_flags)
81462 +{
81463 + struct filename *tmp = getname(pathname);
81464 + struct dentry *res;
81465 + if (IS_ERR(tmp))
81466 + return ERR_CAST(tmp);
81467 + res = kern_path_create(dfd, tmp->name, path, lookup_flags);
81468 + if (IS_ERR(res))
81469 + putname(tmp);
81470 + else
81471 + *to = tmp;
81472 + return res;
81473 +}
81474 +
81475 int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
81476 {
81477 int error = may_create(dir, dentry);
81478 @@ -3555,6 +3720,17 @@ retry:
81479
81480 if (!IS_POSIXACL(path.dentry->d_inode))
81481 mode &= ~current_umask();
81482 +
81483 + if (gr_handle_chroot_mknod(dentry, path.mnt, mode)) {
81484 + error = -EPERM;
81485 + goto out;
81486 + }
81487 +
81488 + if (!gr_acl_handle_mknod(dentry, path.dentry, path.mnt, mode)) {
81489 + error = -EACCES;
81490 + goto out;
81491 + }
81492 +
81493 error = security_path_mknod(&path, dentry, mode, dev);
81494 if (error)
81495 goto out;
81496 @@ -3570,6 +3746,8 @@ retry:
81497 error = vfs_mknod(path.dentry->d_inode,dentry,mode,0);
81498 break;
81499 }
81500 + if (!error)
81501 + gr_handle_create(dentry, path.mnt);
81502 out:
81503 done_path_create(&path, dentry);
81504 if (retry_estale(error, lookup_flags)) {
81505 @@ -3624,9 +3802,16 @@ retry:
81506
81507 if (!IS_POSIXACL(path.dentry->d_inode))
81508 mode &= ~current_umask();
81509 + if (!gr_acl_handle_mkdir(dentry, path.dentry, path.mnt)) {
81510 + error = -EACCES;
81511 + goto out;
81512 + }
81513 error = security_path_mkdir(&path, dentry, mode);
81514 if (!error)
81515 error = vfs_mkdir(path.dentry->d_inode, dentry, mode);
81516 + if (!error)
81517 + gr_handle_create(dentry, path.mnt);
81518 +out:
81519 done_path_create(&path, dentry);
81520 if (retry_estale(error, lookup_flags)) {
81521 lookup_flags |= LOOKUP_REVAL;
81522 @@ -3659,7 +3844,7 @@ void dentry_unhash(struct dentry *dentry)
81523 {
81524 shrink_dcache_parent(dentry);
81525 spin_lock(&dentry->d_lock);
81526 - if (dentry->d_lockref.count == 1)
81527 + if (__lockref_read(&dentry->d_lockref) == 1)
81528 __d_drop(dentry);
81529 spin_unlock(&dentry->d_lock);
81530 }
81531 @@ -3712,6 +3897,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
81532 struct path path;
81533 struct qstr last;
81534 int type;
81535 + u64 saved_ino = 0;
81536 + dev_t saved_dev = 0;
81537 unsigned int lookup_flags = 0;
81538 retry:
81539 name = user_path_parent(dfd, pathname,
81540 @@ -3744,10 +3931,20 @@ retry:
81541 error = -ENOENT;
81542 goto exit3;
81543 }
81544 + saved_ino = gr_get_ino_from_dentry(dentry);
81545 + saved_dev = gr_get_dev_from_dentry(dentry);
81546 +
81547 + if (!gr_acl_handle_rmdir(dentry, path.mnt)) {
81548 + error = -EACCES;
81549 + goto exit3;
81550 + }
81551 +
81552 error = security_path_rmdir(&path, dentry);
81553 if (error)
81554 goto exit3;
81555 error = vfs_rmdir(path.dentry->d_inode, dentry);
81556 + if (!error && (saved_dev || saved_ino))
81557 + gr_handle_delete(saved_ino, saved_dev);
81558 exit3:
81559 dput(dentry);
81560 exit2:
81561 @@ -3842,6 +4039,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
81562 int type;
81563 struct inode *inode = NULL;
81564 struct inode *delegated_inode = NULL;
81565 + u64 saved_ino = 0;
81566 + dev_t saved_dev = 0;
81567 unsigned int lookup_flags = 0;
81568 retry:
81569 name = user_path_parent(dfd, pathname,
81570 @@ -3868,10 +4067,21 @@ retry_deleg:
81571 if (d_is_negative(dentry))
81572 goto slashes;
81573 ihold(inode);
81574 + if (inode->i_nlink <= 1) {
81575 + saved_ino = gr_get_ino_from_dentry(dentry);
81576 + saved_dev = gr_get_dev_from_dentry(dentry);
81577 + }
81578 + if (!gr_acl_handle_unlink(dentry, path.mnt)) {
81579 + error = -EACCES;
81580 + goto exit2;
81581 + }
81582 +
81583 error = security_path_unlink(&path, dentry);
81584 if (error)
81585 goto exit2;
81586 error = vfs_unlink(path.dentry->d_inode, dentry, &delegated_inode);
81587 + if (!error && (saved_ino || saved_dev))
81588 + gr_handle_delete(saved_ino, saved_dev);
81589 exit2:
81590 dput(dentry);
81591 }
81592 @@ -3960,9 +4170,17 @@ retry:
81593 if (IS_ERR(dentry))
81594 goto out_putname;
81595
81596 + if (!gr_acl_handle_symlink(dentry, path.dentry, path.mnt, from)) {
81597 + error = -EACCES;
81598 + goto out;
81599 + }
81600 +
81601 error = security_path_symlink(&path, dentry, from->name);
81602 if (!error)
81603 error = vfs_symlink(path.dentry->d_inode, dentry, from->name);
81604 + if (!error)
81605 + gr_handle_create(dentry, path.mnt);
81606 +out:
81607 done_path_create(&path, dentry);
81608 if (retry_estale(error, lookup_flags)) {
81609 lookup_flags |= LOOKUP_REVAL;
81610 @@ -4066,6 +4284,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
81611 struct dentry *new_dentry;
81612 struct path old_path, new_path;
81613 struct inode *delegated_inode = NULL;
81614 + struct filename *to = NULL;
81615 int how = 0;
81616 int error;
81617
81618 @@ -4089,7 +4308,7 @@ retry:
81619 if (error)
81620 return error;
81621
81622 - new_dentry = user_path_create(newdfd, newname, &new_path,
81623 + new_dentry = user_path_create_with_name(newdfd, newname, &new_path, &to,
81624 (how & LOOKUP_REVAL));
81625 error = PTR_ERR(new_dentry);
81626 if (IS_ERR(new_dentry))
81627 @@ -4101,11 +4320,26 @@ retry:
81628 error = may_linkat(&old_path);
81629 if (unlikely(error))
81630 goto out_dput;
81631 +
81632 + if (gr_handle_hardlink(old_path.dentry, old_path.mnt, to)) {
81633 + error = -EACCES;
81634 + goto out_dput;
81635 + }
81636 +
81637 + if (!gr_acl_handle_link(new_dentry, new_path.dentry, new_path.mnt,
81638 + old_path.dentry, old_path.mnt, to)) {
81639 + error = -EACCES;
81640 + goto out_dput;
81641 + }
81642 +
81643 error = security_path_link(old_path.dentry, &new_path, new_dentry);
81644 if (error)
81645 goto out_dput;
81646 error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode);
81647 + if (!error)
81648 + gr_handle_create(new_dentry, new_path.mnt);
81649 out_dput:
81650 + putname(to);
81651 done_path_create(&new_path, new_dentry);
81652 if (delegated_inode) {
81653 error = break_deleg_wait(&delegated_inode);
81654 @@ -4420,6 +4654,20 @@ retry_deleg:
81655 if (new_dentry == trap)
81656 goto exit5;
81657
81658 + if (gr_bad_chroot_rename(old_dentry, old_path.mnt, new_dentry, new_path.mnt)) {
81659 + /* use EXDEV error to cause 'mv' to switch to an alternative
81660 + * method for usability
81661 + */
81662 + error = -EXDEV;
81663 + goto exit5;
81664 + }
81665 +
81666 + error = gr_acl_handle_rename(new_dentry, new_path.dentry, new_path.mnt,
81667 + old_dentry, d_backing_inode(old_path.dentry), old_path.mnt,
81668 + to, flags);
81669 + if (error)
81670 + goto exit5;
81671 +
81672 error = security_path_rename(&old_path, old_dentry,
81673 &new_path, new_dentry, flags);
81674 if (error)
81675 @@ -4427,6 +4675,9 @@ retry_deleg:
81676 error = vfs_rename(old_path.dentry->d_inode, old_dentry,
81677 new_path.dentry->d_inode, new_dentry,
81678 &delegated_inode, flags);
81679 + if (!error)
81680 + gr_handle_rename(d_backing_inode(old_path.dentry), d_backing_inode(new_path.dentry), old_dentry,
81681 + new_dentry, old_path.mnt, d_is_positive(new_dentry) ? 1 : 0, flags);
81682 exit5:
81683 dput(new_dentry);
81684 exit4:
81685 @@ -4483,14 +4734,24 @@ EXPORT_SYMBOL(vfs_whiteout);
81686
81687 int readlink_copy(char __user *buffer, int buflen, const char *link)
81688 {
81689 + char tmpbuf[64];
81690 + const char *newlink;
81691 int len = PTR_ERR(link);
81692 +
81693 if (IS_ERR(link))
81694 goto out;
81695
81696 len = strlen(link);
81697 if (len > (unsigned) buflen)
81698 len = buflen;
81699 - if (copy_to_user(buffer, link, len))
81700 +
81701 + if (len < sizeof(tmpbuf)) {
81702 + memcpy(tmpbuf, link, len);
81703 + newlink = tmpbuf;
81704 + } else
81705 + newlink = link;
81706 +
81707 + if (copy_to_user(buffer, newlink, len))
81708 len = -EFAULT;
81709 out:
81710 return len;
81711 diff --git a/fs/namespace.c b/fs/namespace.c
81712 index 2b8aa15..3230081 100644
81713 --- a/fs/namespace.c
81714 +++ b/fs/namespace.c
81715 @@ -1516,6 +1516,9 @@ static int do_umount(struct mount *mnt, int flags)
81716 if (!(sb->s_flags & MS_RDONLY))
81717 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
81718 up_write(&sb->s_umount);
81719 +
81720 + gr_log_remount(mnt->mnt_devname, retval);
81721 +
81722 return retval;
81723 }
81724
81725 @@ -1538,6 +1541,9 @@ static int do_umount(struct mount *mnt, int flags)
81726 }
81727 unlock_mount_hash();
81728 namespace_unlock();
81729 +
81730 + gr_log_unmount(mnt->mnt_devname, retval);
81731 +
81732 return retval;
81733 }
81734
81735 @@ -1592,7 +1598,7 @@ static inline bool may_mount(void)
81736 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
81737 */
81738
81739 -SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
81740 +SYSCALL_DEFINE2(umount, const char __user *, name, int, flags)
81741 {
81742 struct path path;
81743 struct mount *mnt;
81744 @@ -1637,7 +1643,7 @@ out:
81745 /*
81746 * The 2.0 compatible umount. No flags.
81747 */
81748 -SYSCALL_DEFINE1(oldumount, char __user *, name)
81749 +SYSCALL_DEFINE1(oldumount, const char __user *, name)
81750 {
81751 return sys_umount(name, 0);
81752 }
81753 @@ -2712,6 +2718,16 @@ long do_mount(const char *dev_name, const char __user *dir_name,
81754 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
81755 MS_STRICTATIME);
81756
81757 + if (gr_handle_rofs_mount(path.dentry, path.mnt, mnt_flags)) {
81758 + retval = -EPERM;
81759 + goto dput_out;
81760 + }
81761 +
81762 + if (gr_handle_chroot_mount(path.dentry, path.mnt, dev_name)) {
81763 + retval = -EPERM;
81764 + goto dput_out;
81765 + }
81766 +
81767 if (flags & MS_REMOUNT)
81768 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
81769 data_page);
81770 @@ -2725,7 +2741,10 @@ long do_mount(const char *dev_name, const char __user *dir_name,
81771 retval = do_new_mount(&path, type_page, flags, mnt_flags,
81772 dev_name, data_page);
81773 dput_out:
81774 + gr_log_mount(dev_name, &path, retval);
81775 +
81776 path_put(&path);
81777 +
81778 return retval;
81779 }
81780
81781 @@ -2743,7 +2762,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
81782 * number incrementing at 10Ghz will take 12,427 years to wrap which
81783 * is effectively never, so we can ignore the possibility.
81784 */
81785 -static atomic64_t mnt_ns_seq = ATOMIC64_INIT(1);
81786 +static atomic64_unchecked_t mnt_ns_seq = ATOMIC64_INIT(1);
81787
81788 static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81789 {
81790 @@ -2759,7 +2778,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81791 return ERR_PTR(ret);
81792 }
81793 new_ns->ns.ops = &mntns_operations;
81794 - new_ns->seq = atomic64_add_return(1, &mnt_ns_seq);
81795 + new_ns->seq = atomic64_add_return_unchecked(1, &mnt_ns_seq);
81796 atomic_set(&new_ns->count, 1);
81797 new_ns->root = NULL;
81798 INIT_LIST_HEAD(&new_ns->list);
81799 @@ -2769,7 +2788,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81800 return new_ns;
81801 }
81802
81803 -struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
81804 +__latent_entropy struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
81805 struct user_namespace *user_ns, struct fs_struct *new_fs)
81806 {
81807 struct mnt_namespace *new_ns;
81808 @@ -2890,8 +2909,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
81809 }
81810 EXPORT_SYMBOL(mount_subtree);
81811
81812 -SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
81813 - char __user *, type, unsigned long, flags, void __user *, data)
81814 +SYSCALL_DEFINE5(mount, const char __user *, dev_name, const char __user *, dir_name,
81815 + const char __user *, type, unsigned long, flags, void __user *, data)
81816 {
81817 int ret;
81818 char *kernel_type;
81819 @@ -2997,6 +3016,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
81820 if (error)
81821 goto out2;
81822
81823 + if (gr_handle_chroot_pivot()) {
81824 + error = -EPERM;
81825 + goto out2;
81826 + }
81827 +
81828 get_fs_root(current->fs, &root);
81829 old_mp = lock_mount(&old);
81830 error = PTR_ERR(old_mp);
81831 @@ -3298,7 +3322,7 @@ static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns)
81832 !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
81833 return -EPERM;
81834
81835 - if (fs->users != 1)
81836 + if (atomic_read(&fs->users) != 1)
81837 return -EINVAL;
81838
81839 get_mnt_ns(mnt_ns);
81840 diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
81841 index 6b1697a..6d5787c 100644
81842 --- a/fs/nfs/callback_xdr.c
81843 +++ b/fs/nfs/callback_xdr.c
81844 @@ -51,7 +51,7 @@ struct callback_op {
81845 callback_decode_arg_t decode_args;
81846 callback_encode_res_t encode_res;
81847 long res_maxsize;
81848 -};
81849 +} __do_const;
81850
81851 static struct callback_op callback_ops[];
81852
81853 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
81854 index 4afbe13..a6a26ce 100644
81855 --- a/fs/nfs/inode.c
81856 +++ b/fs/nfs/inode.c
81857 @@ -1273,16 +1273,16 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
81858 return 0;
81859 }
81860
81861 -static atomic_long_t nfs_attr_generation_counter;
81862 +static atomic_long_unchecked_t nfs_attr_generation_counter;
81863
81864 static unsigned long nfs_read_attr_generation_counter(void)
81865 {
81866 - return atomic_long_read(&nfs_attr_generation_counter);
81867 + return atomic_long_read_unchecked(&nfs_attr_generation_counter);
81868 }
81869
81870 unsigned long nfs_inc_attr_generation_counter(void)
81871 {
81872 - return atomic_long_inc_return(&nfs_attr_generation_counter);
81873 + return atomic_long_inc_return_unchecked(&nfs_attr_generation_counter);
81874 }
81875 EXPORT_SYMBOL_GPL(nfs_inc_attr_generation_counter);
81876
81877 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
81878 index 90cfda7..e4b50df 100644
81879 --- a/fs/nfsd/nfs4proc.c
81880 +++ b/fs/nfsd/nfs4proc.c
81881 @@ -1487,7 +1487,7 @@ struct nfsd4_operation {
81882 nfsd4op_rsize op_rsize_bop;
81883 stateid_getter op_get_currentstateid;
81884 stateid_setter op_set_currentstateid;
81885 -};
81886 +} __do_const;
81887
81888 static struct nfsd4_operation nfsd4_ops[];
81889
81890 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
81891 index b81f725..8e36601 100644
81892 --- a/fs/nfsd/nfs4xdr.c
81893 +++ b/fs/nfsd/nfs4xdr.c
81894 @@ -1704,7 +1704,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
81895
81896 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
81897
81898 -static nfsd4_dec nfsd4_dec_ops[] = {
81899 +static const nfsd4_dec nfsd4_dec_ops[] = {
81900 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
81901 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
81902 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
81903 diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
81904 index 46ec934..f384e41 100644
81905 --- a/fs/nfsd/nfscache.c
81906 +++ b/fs/nfsd/nfscache.c
81907 @@ -541,7 +541,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81908 struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
81909 u32 hash;
81910 struct nfsd_drc_bucket *b;
81911 - int len;
81912 + long len;
81913 size_t bufsize = 0;
81914
81915 if (!rp)
81916 @@ -550,11 +550,14 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81917 hash = nfsd_cache_hash(rp->c_xid);
81918 b = &drc_hashtbl[hash];
81919
81920 - len = resv->iov_len - ((char*)statp - (char*)resv->iov_base);
81921 - len >>= 2;
81922 + if (statp) {
81923 + len = (char*)statp - (char*)resv->iov_base;
81924 + len = resv->iov_len - len;
81925 + len >>= 2;
81926 + }
81927
81928 /* Don't cache excessive amounts of data and XDR failures */
81929 - if (!statp || len > (256 >> 2)) {
81930 + if (!statp || len > (256 >> 2) || len < 0) {
81931 nfsd_reply_cache_free(b, rp);
81932 return;
81933 }
81934 @@ -562,7 +565,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81935 switch (cachetype) {
81936 case RC_REPLSTAT:
81937 if (len != 1)
81938 - printk("nfsd: RC_REPLSTAT/reply len %d!\n",len);
81939 + printk("nfsd: RC_REPLSTAT/reply len %ld!\n",len);
81940 rp->c_replstat = *statp;
81941 break;
81942 case RC_REPLBUFF:
81943 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
81944 index b5e077a..50cf549 100644
81945 --- a/fs/nfsd/vfs.c
81946 +++ b/fs/nfsd/vfs.c
81947 @@ -855,7 +855,7 @@ __be32 nfsd_readv(struct file *file, loff_t offset, struct kvec *vec, int vlen,
81948
81949 oldfs = get_fs();
81950 set_fs(KERNEL_DS);
81951 - host_err = vfs_readv(file, (struct iovec __user *)vec, vlen, &offset);
81952 + host_err = vfs_readv(file, (struct iovec __force_user *)vec, vlen, &offset);
81953 set_fs(oldfs);
81954 return nfsd_finish_read(file, count, host_err);
81955 }
81956 @@ -942,7 +942,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
81957
81958 /* Write the data. */
81959 oldfs = get_fs(); set_fs(KERNEL_DS);
81960 - host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &pos);
81961 + host_err = vfs_writev(file, (struct iovec __force_user *)vec, vlen, &pos);
81962 set_fs(oldfs);
81963 if (host_err < 0)
81964 goto out_nfserr;
81965 @@ -1455,7 +1455,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
81966 */
81967
81968 oldfs = get_fs(); set_fs(KERNEL_DS);
81969 - host_err = inode->i_op->readlink(path.dentry, (char __user *)buf, *lenp);
81970 + host_err = inode->i_op->readlink(path.dentry, (char __force_user *)buf, *lenp);
81971 set_fs(oldfs);
81972
81973 if (host_err < 0)
81974 diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
81975 index 52ccd34..7a6b202 100644
81976 --- a/fs/nls/nls_base.c
81977 +++ b/fs/nls/nls_base.c
81978 @@ -234,21 +234,25 @@ EXPORT_SYMBOL(utf16s_to_utf8s);
81979
81980 int __register_nls(struct nls_table *nls, struct module *owner)
81981 {
81982 - struct nls_table ** tmp = &tables;
81983 + struct nls_table *tmp = tables;
81984
81985 if (nls->next)
81986 return -EBUSY;
81987
81988 - nls->owner = owner;
81989 + pax_open_kernel();
81990 + *(void **)&nls->owner = owner;
81991 + pax_close_kernel();
81992 spin_lock(&nls_lock);
81993 - while (*tmp) {
81994 - if (nls == *tmp) {
81995 + while (tmp) {
81996 + if (nls == tmp) {
81997 spin_unlock(&nls_lock);
81998 return -EBUSY;
81999 }
82000 - tmp = &(*tmp)->next;
82001 + tmp = tmp->next;
82002 }
82003 - nls->next = tables;
82004 + pax_open_kernel();
82005 + *(struct nls_table **)&nls->next = tables;
82006 + pax_close_kernel();
82007 tables = nls;
82008 spin_unlock(&nls_lock);
82009 return 0;
82010 @@ -257,12 +261,14 @@ EXPORT_SYMBOL(__register_nls);
82011
82012 int unregister_nls(struct nls_table * nls)
82013 {
82014 - struct nls_table ** tmp = &tables;
82015 + struct nls_table * const * tmp = &tables;
82016
82017 spin_lock(&nls_lock);
82018 while (*tmp) {
82019 if (nls == *tmp) {
82020 - *tmp = nls->next;
82021 + pax_open_kernel();
82022 + *(struct nls_table **)tmp = nls->next;
82023 + pax_close_kernel();
82024 spin_unlock(&nls_lock);
82025 return 0;
82026 }
82027 @@ -272,7 +278,7 @@ int unregister_nls(struct nls_table * nls)
82028 return -EINVAL;
82029 }
82030
82031 -static struct nls_table *find_nls(char *charset)
82032 +static struct nls_table *find_nls(const char *charset)
82033 {
82034 struct nls_table *nls;
82035 spin_lock(&nls_lock);
82036 @@ -288,7 +294,7 @@ static struct nls_table *find_nls(char *charset)
82037 return nls;
82038 }
82039
82040 -struct nls_table *load_nls(char *charset)
82041 +struct nls_table *load_nls(const char *charset)
82042 {
82043 return try_then_request_module(find_nls(charset), "nls_%s", charset);
82044 }
82045 diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c
82046 index 162b3f1..6076a7c 100644
82047 --- a/fs/nls/nls_euc-jp.c
82048 +++ b/fs/nls/nls_euc-jp.c
82049 @@ -560,8 +560,10 @@ static int __init init_nls_euc_jp(void)
82050 p_nls = load_nls("cp932");
82051
82052 if (p_nls) {
82053 - table.charset2upper = p_nls->charset2upper;
82054 - table.charset2lower = p_nls->charset2lower;
82055 + pax_open_kernel();
82056 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
82057 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
82058 + pax_close_kernel();
82059 return register_nls(&table);
82060 }
82061
82062 diff --git a/fs/nls/nls_koi8-ru.c b/fs/nls/nls_koi8-ru.c
82063 index a80a741..7b96e1b 100644
82064 --- a/fs/nls/nls_koi8-ru.c
82065 +++ b/fs/nls/nls_koi8-ru.c
82066 @@ -62,8 +62,10 @@ static int __init init_nls_koi8_ru(void)
82067 p_nls = load_nls("koi8-u");
82068
82069 if (p_nls) {
82070 - table.charset2upper = p_nls->charset2upper;
82071 - table.charset2lower = p_nls->charset2lower;
82072 + pax_open_kernel();
82073 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
82074 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
82075 + pax_close_kernel();
82076 return register_nls(&table);
82077 }
82078
82079 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
82080 index cf27550..6c70f29d 100644
82081 --- a/fs/notify/fanotify/fanotify_user.c
82082 +++ b/fs/notify/fanotify/fanotify_user.c
82083 @@ -216,8 +216,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
82084
82085 fd = fanotify_event_metadata.fd;
82086 ret = -EFAULT;
82087 - if (copy_to_user(buf, &fanotify_event_metadata,
82088 - fanotify_event_metadata.event_len))
82089 + if (fanotify_event_metadata.event_len > sizeof fanotify_event_metadata ||
82090 + copy_to_user(buf, &fanotify_event_metadata, fanotify_event_metadata.event_len))
82091 goto out_close_fd;
82092
82093 #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
82094 diff --git a/fs/notify/notification.c b/fs/notify/notification.c
82095 index a95d8e0..a91a5fd 100644
82096 --- a/fs/notify/notification.c
82097 +++ b/fs/notify/notification.c
82098 @@ -48,7 +48,7 @@
82099 #include <linux/fsnotify_backend.h>
82100 #include "fsnotify.h"
82101
82102 -static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
82103 +static atomic_unchecked_t fsnotify_sync_cookie = ATOMIC_INIT(0);
82104
82105 /**
82106 * fsnotify_get_cookie - return a unique cookie for use in synchronizing events.
82107 @@ -56,7 +56,7 @@ static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
82108 */
82109 u32 fsnotify_get_cookie(void)
82110 {
82111 - return atomic_inc_return(&fsnotify_sync_cookie);
82112 + return atomic_inc_return_unchecked(&fsnotify_sync_cookie);
82113 }
82114 EXPORT_SYMBOL_GPL(fsnotify_get_cookie);
82115
82116 diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c
82117 index 9e38daf..5727cae 100644
82118 --- a/fs/ntfs/dir.c
82119 +++ b/fs/ntfs/dir.c
82120 @@ -1310,7 +1310,7 @@ find_next_index_buffer:
82121 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
82122 ~(s64)(ndir->itype.index.block_size - 1)));
82123 /* Bounds checks. */
82124 - if (unlikely((u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
82125 + if (unlikely(!kaddr || (u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
82126 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
82127 "inode 0x%lx or driver bug.", vdir->i_ino);
82128 goto err_out;
82129 diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
82130 index 9e1e112..241a52a 100644
82131 --- a/fs/ntfs/super.c
82132 +++ b/fs/ntfs/super.c
82133 @@ -688,7 +688,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
82134 if (!silent)
82135 ntfs_error(sb, "Primary boot sector is invalid.");
82136 } else if (!silent)
82137 - ntfs_error(sb, read_err_str, "primary");
82138 + ntfs_error(sb, read_err_str, "%s", "primary");
82139 if (!(NTFS_SB(sb)->on_errors & ON_ERRORS_RECOVER)) {
82140 if (bh_primary)
82141 brelse(bh_primary);
82142 @@ -704,7 +704,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
82143 goto hotfix_primary_boot_sector;
82144 brelse(bh_backup);
82145 } else if (!silent)
82146 - ntfs_error(sb, read_err_str, "backup");
82147 + ntfs_error(sb, read_err_str, "%s", "backup");
82148 /* Try to read NT3.51- backup boot sector. */
82149 if ((bh_backup = sb_bread(sb, nr_blocks >> 1))) {
82150 if (is_boot_sector_ntfs(sb, (NTFS_BOOT_SECTOR*)
82151 @@ -715,7 +715,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
82152 "sector.");
82153 brelse(bh_backup);
82154 } else if (!silent)
82155 - ntfs_error(sb, read_err_str, "backup");
82156 + ntfs_error(sb, read_err_str, "%s", "backup");
82157 /* We failed. Cleanup and return. */
82158 if (bh_primary)
82159 brelse(bh_primary);
82160 diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
82161 index 857bbbc..3c47d15 100644
82162 --- a/fs/ocfs2/localalloc.c
82163 +++ b/fs/ocfs2/localalloc.c
82164 @@ -1320,7 +1320,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
82165 goto bail;
82166 }
82167
82168 - atomic_inc(&osb->alloc_stats.moves);
82169 + atomic_inc_unchecked(&osb->alloc_stats.moves);
82170
82171 bail:
82172 if (handle)
82173 diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
82174 index 690ddc6..f2d4c4d 100644
82175 --- a/fs/ocfs2/ocfs2.h
82176 +++ b/fs/ocfs2/ocfs2.h
82177 @@ -247,11 +247,11 @@ enum ocfs2_vol_state
82178
82179 struct ocfs2_alloc_stats
82180 {
82181 - atomic_t moves;
82182 - atomic_t local_data;
82183 - atomic_t bitmap_data;
82184 - atomic_t bg_allocs;
82185 - atomic_t bg_extends;
82186 + atomic_unchecked_t moves;
82187 + atomic_unchecked_t local_data;
82188 + atomic_unchecked_t bitmap_data;
82189 + atomic_unchecked_t bg_allocs;
82190 + atomic_unchecked_t bg_extends;
82191 };
82192
82193 enum ocfs2_local_alloc_state
82194 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
82195 index 4479029..5de740b 100644
82196 --- a/fs/ocfs2/suballoc.c
82197 +++ b/fs/ocfs2/suballoc.c
82198 @@ -867,7 +867,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
82199 mlog_errno(status);
82200 goto bail;
82201 }
82202 - atomic_inc(&osb->alloc_stats.bg_extends);
82203 + atomic_inc_unchecked(&osb->alloc_stats.bg_extends);
82204
82205 /* You should never ask for this much metadata */
82206 BUG_ON(bits_wanted >
82207 @@ -2014,7 +2014,7 @@ int ocfs2_claim_metadata(handle_t *handle,
82208 mlog_errno(status);
82209 goto bail;
82210 }
82211 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
82212 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
82213
82214 *suballoc_loc = res.sr_bg_blkno;
82215 *suballoc_bit_start = res.sr_bit_offset;
82216 @@ -2180,7 +2180,7 @@ int ocfs2_claim_new_inode_at_loc(handle_t *handle,
82217 trace_ocfs2_claim_new_inode_at_loc((unsigned long long)di_blkno,
82218 res->sr_bits);
82219
82220 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
82221 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
82222
82223 BUG_ON(res->sr_bits != 1);
82224
82225 @@ -2222,7 +2222,7 @@ int ocfs2_claim_new_inode(handle_t *handle,
82226 mlog_errno(status);
82227 goto bail;
82228 }
82229 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
82230 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
82231
82232 BUG_ON(res.sr_bits != 1);
82233
82234 @@ -2326,7 +2326,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
82235 cluster_start,
82236 num_clusters);
82237 if (!status)
82238 - atomic_inc(&osb->alloc_stats.local_data);
82239 + atomic_inc_unchecked(&osb->alloc_stats.local_data);
82240 } else {
82241 if (min_clusters > (osb->bitmap_cpg - 1)) {
82242 /* The only paths asking for contiguousness
82243 @@ -2352,7 +2352,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
82244 ocfs2_desc_bitmap_to_cluster_off(ac->ac_inode,
82245 res.sr_bg_blkno,
82246 res.sr_bit_offset);
82247 - atomic_inc(&osb->alloc_stats.bitmap_data);
82248 + atomic_inc_unchecked(&osb->alloc_stats.bitmap_data);
82249 *num_clusters = res.sr_bits;
82250 }
82251 }
82252 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
82253 index a482e31..81b251d 100644
82254 --- a/fs/ocfs2/super.c
82255 +++ b/fs/ocfs2/super.c
82256 @@ -308,11 +308,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
82257 "%10s => GlobalAllocs: %d LocalAllocs: %d "
82258 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
82259 "Stats",
82260 - atomic_read(&osb->alloc_stats.bitmap_data),
82261 - atomic_read(&osb->alloc_stats.local_data),
82262 - atomic_read(&osb->alloc_stats.bg_allocs),
82263 - atomic_read(&osb->alloc_stats.moves),
82264 - atomic_read(&osb->alloc_stats.bg_extends));
82265 + atomic_read_unchecked(&osb->alloc_stats.bitmap_data),
82266 + atomic_read_unchecked(&osb->alloc_stats.local_data),
82267 + atomic_read_unchecked(&osb->alloc_stats.bg_allocs),
82268 + atomic_read_unchecked(&osb->alloc_stats.moves),
82269 + atomic_read_unchecked(&osb->alloc_stats.bg_extends));
82270
82271 out += snprintf(buf + out, len - out,
82272 "%10s => State: %u Descriptor: %llu Size: %u bits "
82273 @@ -2095,11 +2095,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
82274
82275 mutex_init(&osb->system_file_mutex);
82276
82277 - atomic_set(&osb->alloc_stats.moves, 0);
82278 - atomic_set(&osb->alloc_stats.local_data, 0);
82279 - atomic_set(&osb->alloc_stats.bitmap_data, 0);
82280 - atomic_set(&osb->alloc_stats.bg_allocs, 0);
82281 - atomic_set(&osb->alloc_stats.bg_extends, 0);
82282 + atomic_set_unchecked(&osb->alloc_stats.moves, 0);
82283 + atomic_set_unchecked(&osb->alloc_stats.local_data, 0);
82284 + atomic_set_unchecked(&osb->alloc_stats.bitmap_data, 0);
82285 + atomic_set_unchecked(&osb->alloc_stats.bg_allocs, 0);
82286 + atomic_set_unchecked(&osb->alloc_stats.bg_extends, 0);
82287
82288 /* Copy the blockcheck stats from the superblock probe */
82289 osb->osb_ecc_stats = *stats;
82290 diff --git a/fs/open.c b/fs/open.c
82291 index e33dab2..cdbdad9 100644
82292 --- a/fs/open.c
82293 +++ b/fs/open.c
82294 @@ -32,6 +32,8 @@
82295 #include <linux/dnotify.h>
82296 #include <linux/compat.h>
82297
82298 +#define CREATE_TRACE_POINTS
82299 +#include <trace/events/fs.h>
82300 #include "internal.h"
82301
82302 int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
82303 @@ -105,6 +107,8 @@ long vfs_truncate(struct path *path, loff_t length)
82304 error = locks_verify_truncate(inode, NULL, length);
82305 if (!error)
82306 error = security_path_truncate(path);
82307 + if (!error && !gr_acl_handle_truncate(path->dentry, path->mnt))
82308 + error = -EACCES;
82309 if (!error)
82310 error = do_truncate(path->dentry, length, 0, NULL);
82311
82312 @@ -189,6 +193,8 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
82313 error = locks_verify_truncate(inode, f.file, length);
82314 if (!error)
82315 error = security_path_truncate(&f.file->f_path);
82316 + if (!error && !gr_acl_handle_truncate(f.file->f_path.dentry, f.file->f_path.mnt))
82317 + error = -EACCES;
82318 if (!error)
82319 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
82320 sb_end_write(inode->i_sb);
82321 @@ -398,6 +404,9 @@ retry:
82322 if (__mnt_is_readonly(path.mnt))
82323 res = -EROFS;
82324
82325 + if (!res && !gr_acl_handle_access(path.dentry, path.mnt, mode))
82326 + res = -EACCES;
82327 +
82328 out_path_release:
82329 path_put(&path);
82330 if (retry_estale(res, lookup_flags)) {
82331 @@ -429,6 +438,8 @@ retry:
82332 if (error)
82333 goto dput_and_out;
82334
82335 + gr_log_chdir(path.dentry, path.mnt);
82336 +
82337 set_fs_pwd(current->fs, &path);
82338
82339 dput_and_out:
82340 @@ -458,6 +469,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
82341 goto out_putf;
82342
82343 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
82344 +
82345 + if (!error && !gr_chroot_fchdir(f.file->f_path.dentry, f.file->f_path.mnt))
82346 + error = -EPERM;
82347 +
82348 + if (!error)
82349 + gr_log_chdir(f.file->f_path.dentry, f.file->f_path.mnt);
82350 +
82351 if (!error)
82352 set_fs_pwd(current->fs, &f.file->f_path);
82353 out_putf:
82354 @@ -487,7 +505,13 @@ retry:
82355 if (error)
82356 goto dput_and_out;
82357
82358 + if (gr_handle_chroot_chroot(path.dentry, path.mnt))
82359 + goto dput_and_out;
82360 +
82361 set_fs_root(current->fs, &path);
82362 +
82363 + gr_handle_chroot_chdir(&path);
82364 +
82365 error = 0;
82366 dput_and_out:
82367 path_put(&path);
82368 @@ -511,6 +535,16 @@ static int chmod_common(struct path *path, umode_t mode)
82369 return error;
82370 retry_deleg:
82371 mutex_lock(&inode->i_mutex);
82372 +
82373 + if (!gr_acl_handle_chmod(path->dentry, path->mnt, &mode)) {
82374 + error = -EACCES;
82375 + goto out_unlock;
82376 + }
82377 + if (gr_handle_chroot_chmod(path->dentry, path->mnt, mode)) {
82378 + error = -EACCES;
82379 + goto out_unlock;
82380 + }
82381 +
82382 error = security_path_chmod(path, mode);
82383 if (error)
82384 goto out_unlock;
82385 @@ -576,6 +610,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
82386 uid = make_kuid(current_user_ns(), user);
82387 gid = make_kgid(current_user_ns(), group);
82388
82389 + if (!gr_acl_handle_chown(path->dentry, path->mnt))
82390 + return -EACCES;
82391 +
82392 retry_deleg:
82393 newattrs.ia_valid = ATTR_CTIME;
82394 if (user != (uid_t) -1) {
82395 @@ -1029,6 +1066,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
82396 } else {
82397 fsnotify_open(f);
82398 fd_install(fd, f);
82399 + trace_do_sys_open(tmp->name, flags, mode);
82400 }
82401 }
82402 putname(tmp);
82403 diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
82404 index ec0c2a0..f9b5b82 100644
82405 --- a/fs/overlayfs/inode.c
82406 +++ b/fs/overlayfs/inode.c
82407 @@ -346,6 +346,9 @@ struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags)
82408 if (d_is_dir(dentry))
82409 return d_backing_inode(dentry);
82410
82411 + if (d_is_dir(dentry))
82412 + return d_backing_inode(dentry);
82413 +
82414 type = ovl_path_real(dentry, &realpath);
82415 if (ovl_open_need_copy_up(file_flags, type, realpath.dentry)) {
82416 err = ovl_want_write(dentry);
82417 diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
82418 index e38ee0f..6fc10e4 100644
82419 --- a/fs/overlayfs/super.c
82420 +++ b/fs/overlayfs/super.c
82421 @@ -172,7 +172,7 @@ void ovl_path_lower(struct dentry *dentry, struct path *path)
82422 {
82423 struct ovl_entry *oe = dentry->d_fsdata;
82424
82425 - *path = oe->numlower ? oe->lowerstack[0] : (struct path) { NULL, NULL };
82426 + *path = oe->numlower ? oe->lowerstack[0] : (struct path) { .dentry = NULL, .mnt = NULL };
82427 }
82428
82429 int ovl_want_write(struct dentry *dentry)
82430 @@ -880,8 +880,8 @@ static unsigned int ovl_split_lowerdirs(char *str)
82431
82432 static int ovl_fill_super(struct super_block *sb, void *data, int silent)
82433 {
82434 - struct path upperpath = { NULL, NULL };
82435 - struct path workpath = { NULL, NULL };
82436 + struct path upperpath = { .dentry = NULL, .mnt = NULL };
82437 + struct path workpath = { .dentry = NULL, .mnt = NULL };
82438 struct dentry *root_dentry;
82439 struct ovl_entry *oe;
82440 struct ovl_fs *ufs;
82441 diff --git a/fs/pipe.c b/fs/pipe.c
82442 index 8865f79..bd2c79b 100644
82443 --- a/fs/pipe.c
82444 +++ b/fs/pipe.c
82445 @@ -36,7 +36,7 @@ unsigned int pipe_max_size = 1048576;
82446 /*
82447 * Minimum pipe size, as required by POSIX
82448 */
82449 -unsigned int pipe_min_size = PAGE_SIZE;
82450 +unsigned int pipe_min_size __read_only = PAGE_SIZE;
82451
82452 /*
82453 * We use a start+len construction, which provides full use of the
82454 @@ -55,7 +55,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
82455
82456 static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
82457 {
82458 - if (pipe->files)
82459 + if (atomic_read(&pipe->files))
82460 mutex_lock_nested(&pipe->mutex, subclass);
82461 }
82462
82463 @@ -70,7 +70,7 @@ EXPORT_SYMBOL(pipe_lock);
82464
82465 void pipe_unlock(struct pipe_inode_info *pipe)
82466 {
82467 - if (pipe->files)
82468 + if (atomic_read(&pipe->files))
82469 mutex_unlock(&pipe->mutex);
82470 }
82471 EXPORT_SYMBOL(pipe_unlock);
82472 @@ -291,9 +291,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
82473 }
82474 if (bufs) /* More to do? */
82475 continue;
82476 - if (!pipe->writers)
82477 + if (!atomic_read(&pipe->writers))
82478 break;
82479 - if (!pipe->waiting_writers) {
82480 + if (!atomic_read(&pipe->waiting_writers)) {
82481 /* syscall merging: Usually we must not sleep
82482 * if O_NONBLOCK is set, or if we got some data.
82483 * But if a writer sleeps in kernel space, then
82484 @@ -350,7 +350,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
82485
82486 __pipe_lock(pipe);
82487
82488 - if (!pipe->readers) {
82489 + if (!atomic_read(&pipe->readers)) {
82490 send_sig(SIGPIPE, current, 0);
82491 ret = -EPIPE;
82492 goto out;
82493 @@ -386,7 +386,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
82494 for (;;) {
82495 int bufs;
82496
82497 - if (!pipe->readers) {
82498 + if (!atomic_read(&pipe->readers)) {
82499 send_sig(SIGPIPE, current, 0);
82500 if (!ret)
82501 ret = -EPIPE;
82502 @@ -454,9 +454,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
82503 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
82504 do_wakeup = 0;
82505 }
82506 - pipe->waiting_writers++;
82507 + atomic_inc(&pipe->waiting_writers);
82508 pipe_wait(pipe);
82509 - pipe->waiting_writers--;
82510 + atomic_dec(&pipe->waiting_writers);
82511 }
82512 out:
82513 __pipe_unlock(pipe);
82514 @@ -511,7 +511,7 @@ pipe_poll(struct file *filp, poll_table *wait)
82515 mask = 0;
82516 if (filp->f_mode & FMODE_READ) {
82517 mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
82518 - if (!pipe->writers && filp->f_version != pipe->w_counter)
82519 + if (!atomic_read(&pipe->writers) && filp->f_version != pipe->w_counter)
82520 mask |= POLLHUP;
82521 }
82522
82523 @@ -521,7 +521,7 @@ pipe_poll(struct file *filp, poll_table *wait)
82524 * Most Unices do not set POLLERR for FIFOs but on Linux they
82525 * behave exactly like pipes for poll().
82526 */
82527 - if (!pipe->readers)
82528 + if (!atomic_read(&pipe->readers))
82529 mask |= POLLERR;
82530 }
82531
82532 @@ -533,7 +533,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
82533 int kill = 0;
82534
82535 spin_lock(&inode->i_lock);
82536 - if (!--pipe->files) {
82537 + if (atomic_dec_and_test(&pipe->files)) {
82538 inode->i_pipe = NULL;
82539 kill = 1;
82540 }
82541 @@ -550,11 +550,11 @@ pipe_release(struct inode *inode, struct file *file)
82542
82543 __pipe_lock(pipe);
82544 if (file->f_mode & FMODE_READ)
82545 - pipe->readers--;
82546 + atomic_dec(&pipe->readers);
82547 if (file->f_mode & FMODE_WRITE)
82548 - pipe->writers--;
82549 + atomic_dec(&pipe->writers);
82550
82551 - if (pipe->readers || pipe->writers) {
82552 + if (atomic_read(&pipe->readers) || atomic_read(&pipe->writers)) {
82553 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
82554 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
82555 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
82556 @@ -619,7 +619,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
82557 kfree(pipe);
82558 }
82559
82560 -static struct vfsmount *pipe_mnt __read_mostly;
82561 +struct vfsmount *pipe_mnt __read_mostly;
82562
82563 /*
82564 * pipefs_dname() is called from d_path().
82565 @@ -649,8 +649,9 @@ static struct inode * get_pipe_inode(void)
82566 goto fail_iput;
82567
82568 inode->i_pipe = pipe;
82569 - pipe->files = 2;
82570 - pipe->readers = pipe->writers = 1;
82571 + atomic_set(&pipe->files, 2);
82572 + atomic_set(&pipe->readers, 1);
82573 + atomic_set(&pipe->writers, 1);
82574 inode->i_fop = &pipefifo_fops;
82575
82576 /*
82577 @@ -829,17 +830,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
82578 spin_lock(&inode->i_lock);
82579 if (inode->i_pipe) {
82580 pipe = inode->i_pipe;
82581 - pipe->files++;
82582 + atomic_inc(&pipe->files);
82583 spin_unlock(&inode->i_lock);
82584 } else {
82585 spin_unlock(&inode->i_lock);
82586 pipe = alloc_pipe_info();
82587 if (!pipe)
82588 return -ENOMEM;
82589 - pipe->files = 1;
82590 + atomic_set(&pipe->files, 1);
82591 spin_lock(&inode->i_lock);
82592 if (unlikely(inode->i_pipe)) {
82593 - inode->i_pipe->files++;
82594 + atomic_inc(&inode->i_pipe->files);
82595 spin_unlock(&inode->i_lock);
82596 free_pipe_info(pipe);
82597 pipe = inode->i_pipe;
82598 @@ -864,10 +865,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
82599 * opened, even when there is no process writing the FIFO.
82600 */
82601 pipe->r_counter++;
82602 - if (pipe->readers++ == 0)
82603 + if (atomic_inc_return(&pipe->readers) == 1)
82604 wake_up_partner(pipe);
82605
82606 - if (!is_pipe && !pipe->writers) {
82607 + if (!is_pipe && !atomic_read(&pipe->writers)) {
82608 if ((filp->f_flags & O_NONBLOCK)) {
82609 /* suppress POLLHUP until we have
82610 * seen a writer */
82611 @@ -886,14 +887,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
82612 * errno=ENXIO when there is no process reading the FIFO.
82613 */
82614 ret = -ENXIO;
82615 - if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !pipe->readers)
82616 + if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !atomic_read(&pipe->readers))
82617 goto err;
82618
82619 pipe->w_counter++;
82620 - if (!pipe->writers++)
82621 + if (atomic_inc_return(&pipe->writers) == 1)
82622 wake_up_partner(pipe);
82623
82624 - if (!is_pipe && !pipe->readers) {
82625 + if (!is_pipe && !atomic_read(&pipe->readers)) {
82626 if (wait_for_partner(pipe, &pipe->r_counter))
82627 goto err_wr;
82628 }
82629 @@ -907,11 +908,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
82630 * the process can at least talk to itself.
82631 */
82632
82633 - pipe->readers++;
82634 - pipe->writers++;
82635 + atomic_inc(&pipe->readers);
82636 + atomic_inc(&pipe->writers);
82637 pipe->r_counter++;
82638 pipe->w_counter++;
82639 - if (pipe->readers == 1 || pipe->writers == 1)
82640 + if (atomic_read(&pipe->readers) == 1 || atomic_read(&pipe->writers) == 1)
82641 wake_up_partner(pipe);
82642 break;
82643
82644 @@ -925,13 +926,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
82645 return 0;
82646
82647 err_rd:
82648 - if (!--pipe->readers)
82649 + if (atomic_dec_and_test(&pipe->readers))
82650 wake_up_interruptible(&pipe->wait);
82651 ret = -ERESTARTSYS;
82652 goto err;
82653
82654 err_wr:
82655 - if (!--pipe->writers)
82656 + if (atomic_dec_and_test(&pipe->writers))
82657 wake_up_interruptible(&pipe->wait);
82658 ret = -ERESTARTSYS;
82659 goto err;
82660 @@ -1007,7 +1008,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
82661 * Currently we rely on the pipe array holding a power-of-2 number
82662 * of pages.
82663 */
82664 -static inline unsigned int round_pipe_size(unsigned int size)
82665 +static inline unsigned long round_pipe_size(unsigned long size)
82666 {
82667 unsigned long nr_pages;
82668
82669 @@ -1055,13 +1056,16 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
82670
82671 switch (cmd) {
82672 case F_SETPIPE_SZ: {
82673 - unsigned int size, nr_pages;
82674 + unsigned long size, nr_pages;
82675 +
82676 + ret = -EINVAL;
82677 + if (arg < pipe_min_size)
82678 + goto out;
82679
82680 size = round_pipe_size(arg);
82681 nr_pages = size >> PAGE_SHIFT;
82682
82683 - ret = -EINVAL;
82684 - if (!nr_pages)
82685 + if (size < pipe_min_size)
82686 goto out;
82687
82688 if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
82689 diff --git a/fs/posix_acl.c b/fs/posix_acl.c
82690 index 4fb17de..13d8c0f 100644
82691 --- a/fs/posix_acl.c
82692 +++ b/fs/posix_acl.c
82693 @@ -20,6 +20,7 @@
82694 #include <linux/xattr.h>
82695 #include <linux/export.h>
82696 #include <linux/user_namespace.h>
82697 +#include <linux/grsecurity.h>
82698
82699 struct posix_acl **acl_by_type(struct inode *inode, int type)
82700 {
82701 @@ -277,7 +278,7 @@ posix_acl_equiv_mode(const struct posix_acl *acl, umode_t *mode_p)
82702 }
82703 }
82704 if (mode_p)
82705 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
82706 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
82707 return not_equiv;
82708 }
82709 EXPORT_SYMBOL(posix_acl_equiv_mode);
82710 @@ -427,7 +428,7 @@ static int posix_acl_create_masq(struct posix_acl *acl, umode_t *mode_p)
82711 mode &= (group_obj->e_perm << 3) | ~S_IRWXG;
82712 }
82713
82714 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
82715 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
82716 return not_equiv;
82717 }
82718
82719 @@ -485,6 +486,8 @@ __posix_acl_create(struct posix_acl **acl, gfp_t gfp, umode_t *mode_p)
82720 struct posix_acl *clone = posix_acl_clone(*acl, gfp);
82721 int err = -ENOMEM;
82722 if (clone) {
82723 + *mode_p &= ~gr_acl_umask();
82724 +
82725 err = posix_acl_create_masq(clone, mode_p);
82726 if (err < 0) {
82727 posix_acl_release(clone);
82728 @@ -657,11 +660,12 @@ struct posix_acl *
82729 posix_acl_from_xattr(struct user_namespace *user_ns,
82730 const void *value, size_t size)
82731 {
82732 - posix_acl_xattr_header *header = (posix_acl_xattr_header *)value;
82733 - posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end;
82734 + const posix_acl_xattr_header *header = (const posix_acl_xattr_header *)value;
82735 + const posix_acl_xattr_entry *entry = (const posix_acl_xattr_entry *)(header+1), *end;
82736 int count;
82737 struct posix_acl *acl;
82738 struct posix_acl_entry *acl_e;
82739 + umode_t umask = gr_acl_umask();
82740
82741 if (!value)
82742 return NULL;
82743 @@ -687,12 +691,18 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
82744
82745 switch(acl_e->e_tag) {
82746 case ACL_USER_OBJ:
82747 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
82748 + break;
82749 case ACL_GROUP_OBJ:
82750 case ACL_MASK:
82751 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
82752 + break;
82753 case ACL_OTHER:
82754 + acl_e->e_perm &= ~(umask & S_IRWXO);
82755 break;
82756
82757 case ACL_USER:
82758 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
82759 acl_e->e_uid =
82760 make_kuid(user_ns,
82761 le32_to_cpu(entry->e_id));
82762 @@ -700,6 +710,7 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
82763 goto fail;
82764 break;
82765 case ACL_GROUP:
82766 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
82767 acl_e->e_gid =
82768 make_kgid(user_ns,
82769 le32_to_cpu(entry->e_id));
82770 diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
82771 index 1ade120..a86f1a2 100644
82772 --- a/fs/proc/Kconfig
82773 +++ b/fs/proc/Kconfig
82774 @@ -30,7 +30,7 @@ config PROC_FS
82775
82776 config PROC_KCORE
82777 bool "/proc/kcore support" if !ARM
82778 - depends on PROC_FS && MMU
82779 + depends on PROC_FS && MMU && !GRKERNSEC_PROC_ADD
82780 help
82781 Provides a virtual ELF core file of the live kernel. This can
82782 be read with gdb and other ELF tools. No modifications can be
82783 @@ -38,8 +38,8 @@ config PROC_KCORE
82784
82785 config PROC_VMCORE
82786 bool "/proc/vmcore support"
82787 - depends on PROC_FS && CRASH_DUMP
82788 - default y
82789 + depends on PROC_FS && CRASH_DUMP && !GRKERNSEC
82790 + default n
82791 help
82792 Exports the dump image of crashed kernel in ELF format.
82793
82794 @@ -63,8 +63,8 @@ config PROC_SYSCTL
82795 limited in memory.
82796
82797 config PROC_PAGE_MONITOR
82798 - default y
82799 - depends on PROC_FS && MMU
82800 + default n
82801 + depends on PROC_FS && MMU && !GRKERNSEC
82802 bool "Enable /proc page monitoring" if EXPERT
82803 help
82804 Various /proc files exist to monitor process memory utilization:
82805 diff --git a/fs/proc/array.c b/fs/proc/array.c
82806 index ce065cf..8974fed 100644
82807 --- a/fs/proc/array.c
82808 +++ b/fs/proc/array.c
82809 @@ -60,6 +60,7 @@
82810 #include <linux/tty.h>
82811 #include <linux/string.h>
82812 #include <linux/mman.h>
82813 +#include <linux/grsecurity.h>
82814 #include <linux/proc_fs.h>
82815 #include <linux/ioport.h>
82816 #include <linux/uaccess.h>
82817 @@ -348,6 +349,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
82818 cpumask_pr_args(&task->cpus_allowed));
82819 }
82820
82821 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
82822 +static inline void task_pax(struct seq_file *m, struct task_struct *p)
82823 +{
82824 + if (p->mm)
82825 + seq_printf(m, "PaX:\t%c%c%c%c%c\n",
82826 + p->mm->pax_flags & MF_PAX_PAGEEXEC ? 'P' : 'p',
82827 + p->mm->pax_flags & MF_PAX_EMUTRAMP ? 'E' : 'e',
82828 + p->mm->pax_flags & MF_PAX_MPROTECT ? 'M' : 'm',
82829 + p->mm->pax_flags & MF_PAX_RANDMMAP ? 'R' : 'r',
82830 + p->mm->pax_flags & MF_PAX_SEGMEXEC ? 'S' : 's');
82831 + else
82832 + seq_printf(m, "PaX:\t-----\n");
82833 +}
82834 +#endif
82835 +
82836 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
82837 struct pid *pid, struct task_struct *task)
82838 {
82839 @@ -366,9 +382,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
82840 task_cpus_allowed(m, task);
82841 cpuset_task_status_allowed(m, task);
82842 task_context_switch_counts(m, task);
82843 +
82844 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
82845 + task_pax(m, task);
82846 +#endif
82847 +
82848 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
82849 + task_grsec_rbac(m, task);
82850 +#endif
82851 +
82852 return 0;
82853 }
82854
82855 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82856 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
82857 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
82858 + _mm->pax_flags & MF_PAX_SEGMEXEC))
82859 +#endif
82860 +
82861 static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82862 struct pid *pid, struct task_struct *task, int whole)
82863 {
82864 @@ -390,6 +421,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82865 char tcomm[sizeof(task->comm)];
82866 unsigned long flags;
82867
82868 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82869 + if (current->exec_id != m->exec_id) {
82870 + gr_log_badprocpid("stat");
82871 + return 0;
82872 + }
82873 +#endif
82874 +
82875 state = *get_task_state(task);
82876 vsize = eip = esp = 0;
82877 permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
82878 @@ -460,6 +498,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82879 gtime = task_gtime(task);
82880 }
82881
82882 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82883 + if (PAX_RAND_FLAGS(mm)) {
82884 + eip = 0;
82885 + esp = 0;
82886 + wchan = 0;
82887 + }
82888 +#endif
82889 +#ifdef CONFIG_GRKERNSEC_HIDESYM
82890 + wchan = 0;
82891 + eip =0;
82892 + esp =0;
82893 +#endif
82894 +
82895 /* scale priority and nice values from timeslices to -20..20 */
82896 /* to make it look like a "normal" Unix priority/nice value */
82897 priority = task_prio(task);
82898 @@ -491,9 +542,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82899 seq_put_decimal_ull(m, ' ', vsize);
82900 seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0);
82901 seq_put_decimal_ull(m, ' ', rsslim);
82902 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82903 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->start_code : 1) : 0));
82904 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->end_code : 1) : 0));
82905 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((permitted && mm) ? mm->start_stack : 0));
82906 +#else
82907 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->start_code : 1) : 0);
82908 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->end_code : 1) : 0);
82909 seq_put_decimal_ull(m, ' ', (permitted && mm) ? mm->start_stack : 0);
82910 +#endif
82911 seq_put_decimal_ull(m, ' ', esp);
82912 seq_put_decimal_ull(m, ' ', eip);
82913 /* The signal information here is obsolete.
82914 @@ -515,7 +572,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82915 seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
82916 seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
82917
82918 - if (mm && permitted) {
82919 + if (mm && permitted
82920 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82921 + && !PAX_RAND_FLAGS(mm)
82922 +#endif
82923 + ) {
82924 seq_put_decimal_ull(m, ' ', mm->start_data);
82925 seq_put_decimal_ull(m, ' ', mm->end_data);
82926 seq_put_decimal_ull(m, ' ', mm->start_brk);
82927 @@ -553,8 +614,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
82928 struct pid *pid, struct task_struct *task)
82929 {
82930 unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
82931 - struct mm_struct *mm = get_task_mm(task);
82932 + struct mm_struct *mm;
82933
82934 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82935 + if (current->exec_id != m->exec_id) {
82936 + gr_log_badprocpid("statm");
82937 + return 0;
82938 + }
82939 +#endif
82940 + mm = get_task_mm(task);
82941 if (mm) {
82942 size = task_statm(mm, &shared, &text, &data, &resident);
82943 mmput(mm);
82944 @@ -577,6 +645,20 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
82945 return 0;
82946 }
82947
82948 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
82949 +int proc_pid_ipaddr(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task)
82950 +{
82951 + unsigned long flags;
82952 + u32 curr_ip = 0;
82953 +
82954 + if (lock_task_sighand(task, &flags)) {
82955 + curr_ip = task->signal->curr_ip;
82956 + unlock_task_sighand(task, &flags);
82957 + }
82958 + return seq_printf(m, "%pI4\n", &curr_ip);
82959 +}
82960 +#endif
82961 +
82962 #ifdef CONFIG_PROC_CHILDREN
82963 static struct pid *
82964 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
82965 diff --git a/fs/proc/base.c b/fs/proc/base.c
82966 index aa50d1a..c202cde 100644
82967 --- a/fs/proc/base.c
82968 +++ b/fs/proc/base.c
82969 @@ -113,6 +113,14 @@ struct pid_entry {
82970 union proc_op op;
82971 };
82972
82973 +struct getdents_callback {
82974 + struct linux_dirent __user * current_dir;
82975 + struct linux_dirent __user * previous;
82976 + struct file * file;
82977 + int count;
82978 + int error;
82979 +};
82980 +
82981 #define NOD(NAME, MODE, IOP, FOP, OP) { \
82982 .name = (NAME), \
82983 .len = sizeof(NAME) - 1, \
82984 @@ -224,6 +232,11 @@ static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,
82985 goto out_mmput;
82986 }
82987
82988 + if (gr_acl_handle_procpidmem(tsk)) {
82989 + rv = 0;
82990 + goto out_mmput;
82991 + }
82992 +
82993 page = (char *)__get_free_page(GFP_TEMPORARY);
82994 if (!page) {
82995 rv = -ENOMEM;
82996 @@ -400,12 +413,28 @@ static const struct file_operations proc_pid_cmdline_ops = {
82997 .llseek = generic_file_llseek,
82998 };
82999
83000 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83001 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
83002 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
83003 + _mm->pax_flags & MF_PAX_SEGMEXEC))
83004 +#endif
83005 +
83006 static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
83007 struct pid *pid, struct task_struct *task)
83008 {
83009 struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ);
83010 if (mm && !IS_ERR(mm)) {
83011 unsigned int nwords = 0;
83012 +
83013 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83014 + /* allow if we're currently ptracing this task */
83015 + if (PAX_RAND_FLAGS(mm) &&
83016 + (!(task->ptrace & PT_PTRACED) || (task->parent != current))) {
83017 + mmput(mm);
83018 + return 0;
83019 + }
83020 +#endif
83021 +
83022 do {
83023 nwords += 2;
83024 } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */
83025 @@ -417,7 +446,7 @@ static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
83026 }
83027
83028
83029 -#ifdef CONFIG_KALLSYMS
83030 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83031 /*
83032 * Provides a wchan file via kallsyms in a proper one-value-per-file format.
83033 * Returns the resolved symbol. If that fails, simply return the address.
83034 @@ -459,7 +488,7 @@ static void unlock_trace(struct task_struct *task)
83035 mutex_unlock(&task->signal->cred_guard_mutex);
83036 }
83037
83038 -#ifdef CONFIG_STACKTRACE
83039 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83040
83041 #define MAX_STACK_TRACE_DEPTH 64
83042
83043 @@ -657,7 +686,7 @@ static int proc_pid_limits(struct seq_file *m, struct pid_namespace *ns,
83044 return 0;
83045 }
83046
83047 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
83048 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
83049 static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
83050 struct pid *pid, struct task_struct *task)
83051 {
83052 @@ -690,7 +719,7 @@ static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
83053 /************************************************************************/
83054
83055 /* permission checks */
83056 -static int proc_fd_access_allowed(struct inode *inode)
83057 +static int proc_fd_access_allowed(struct inode *inode, unsigned int log)
83058 {
83059 struct task_struct *task;
83060 int allowed = 0;
83061 @@ -700,7 +729,10 @@ static int proc_fd_access_allowed(struct inode *inode)
83062 */
83063 task = get_proc_task(inode);
83064 if (task) {
83065 - allowed = ptrace_may_access(task, PTRACE_MODE_READ);
83066 + if (log)
83067 + allowed = ptrace_may_access(task, PTRACE_MODE_READ);
83068 + else
83069 + allowed = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
83070 put_task_struct(task);
83071 }
83072 return allowed;
83073 @@ -731,10 +763,35 @@ static bool has_pid_permissions(struct pid_namespace *pid,
83074 struct task_struct *task,
83075 int hide_pid_min)
83076 {
83077 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83078 + return false;
83079 +
83080 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83081 + rcu_read_lock();
83082 + {
83083 + const struct cred *tmpcred = current_cred();
83084 + const struct cred *cred = __task_cred(task);
83085 +
83086 + if (uid_eq(tmpcred->uid, GLOBAL_ROOT_UID) || uid_eq(tmpcred->uid, cred->uid)
83087 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83088 + || in_group_p(grsec_proc_gid)
83089 +#endif
83090 + ) {
83091 + rcu_read_unlock();
83092 + return true;
83093 + }
83094 + }
83095 + rcu_read_unlock();
83096 +
83097 + if (!pid->hide_pid)
83098 + return ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
83099 +#endif
83100 +
83101 if (pid->hide_pid < hide_pid_min)
83102 return true;
83103 if (in_group_p(pid->pid_gid))
83104 return true;
83105 +
83106 return ptrace_may_access(task, PTRACE_MODE_READ);
83107 }
83108
83109 @@ -752,7 +809,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
83110 put_task_struct(task);
83111
83112 if (!has_perms) {
83113 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83114 + {
83115 +#else
83116 if (pid->hide_pid == 2) {
83117 +#endif
83118 /*
83119 * Let's make getdents(), stat(), and open()
83120 * consistent with each other. If a process
83121 @@ -813,6 +874,10 @@ struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode)
83122
83123 if (task) {
83124 mm = mm_access(task, mode);
83125 + if (!IS_ERR_OR_NULL(mm) && gr_acl_handle_procpidmem(task)) {
83126 + mmput(mm);
83127 + mm = ERR_PTR(-EPERM);
83128 + }
83129 put_task_struct(task);
83130
83131 if (!IS_ERR_OR_NULL(mm)) {
83132 @@ -834,6 +899,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
83133 return PTR_ERR(mm);
83134
83135 file->private_data = mm;
83136 +
83137 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83138 + file->f_version = current->exec_id;
83139 +#endif
83140 +
83141 return 0;
83142 }
83143
83144 @@ -855,6 +925,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
83145 ssize_t copied;
83146 char *page;
83147
83148 +#ifdef CONFIG_GRKERNSEC
83149 + if (write)
83150 + return -EPERM;
83151 +#endif
83152 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83153 + if (file->f_version != current->exec_id) {
83154 + gr_log_badprocpid("mem");
83155 + return 0;
83156 + }
83157 +#endif
83158 +
83159 if (!mm)
83160 return 0;
83161
83162 @@ -867,7 +948,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
83163 goto free;
83164
83165 while (count > 0) {
83166 - int this_len = min_t(int, count, PAGE_SIZE);
83167 + ssize_t this_len = min_t(ssize_t, count, PAGE_SIZE);
83168
83169 if (write && copy_from_user(page, buf, this_len)) {
83170 copied = -EFAULT;
83171 @@ -959,6 +1040,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
83172 if (!mm)
83173 return 0;
83174
83175 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83176 + if (file->f_version != current->exec_id) {
83177 + gr_log_badprocpid("environ");
83178 + return 0;
83179 + }
83180 +#endif
83181 +
83182 page = (char *)__get_free_page(GFP_TEMPORARY);
83183 if (!page)
83184 return -ENOMEM;
83185 @@ -968,7 +1056,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
83186 goto free;
83187 while (count > 0) {
83188 size_t this_len, max_len;
83189 - int retval;
83190 + ssize_t retval;
83191
83192 if (src >= (mm->env_end - mm->env_start))
83193 break;
83194 @@ -1582,7 +1670,7 @@ static const char *proc_pid_follow_link(struct dentry *dentry, void **cookie)
83195 int error = -EACCES;
83196
83197 /* Are we allowed to snoop on the tasks file descriptors? */
83198 - if (!proc_fd_access_allowed(inode))
83199 + if (!proc_fd_access_allowed(inode, 0))
83200 goto out;
83201
83202 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
83203 @@ -1626,8 +1714,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
83204 struct path path;
83205
83206 /* Are we allowed to snoop on the tasks file descriptors? */
83207 - if (!proc_fd_access_allowed(inode))
83208 - goto out;
83209 + /* logging this is needed for learning on chromium to work properly,
83210 + but we don't want to flood the logs from 'ps' which does a readlink
83211 + on /proc/fd/2 of tasks in the listing, nor do we want 'ps' to learn
83212 + CAP_SYS_PTRACE as it's not necessary for its basic functionality
83213 + */
83214 + if (dentry->d_name.name[0] == '2' && dentry->d_name.name[1] == '\0') {
83215 + if (!proc_fd_access_allowed(inode,0))
83216 + goto out;
83217 + } else {
83218 + if (!proc_fd_access_allowed(inode,1))
83219 + goto out;
83220 + }
83221
83222 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
83223 if (error)
83224 @@ -1677,7 +1775,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
83225 rcu_read_lock();
83226 cred = __task_cred(task);
83227 inode->i_uid = cred->euid;
83228 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83229 + inode->i_gid = grsec_proc_gid;
83230 +#else
83231 inode->i_gid = cred->egid;
83232 +#endif
83233 rcu_read_unlock();
83234 }
83235 security_task_to_inode(task, inode);
83236 @@ -1713,10 +1815,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
83237 return -ENOENT;
83238 }
83239 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
83240 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83241 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
83242 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83243 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
83244 +#endif
83245 task_dumpable(task)) {
83246 cred = __task_cred(task);
83247 stat->uid = cred->euid;
83248 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83249 + stat->gid = grsec_proc_gid;
83250 +#else
83251 stat->gid = cred->egid;
83252 +#endif
83253 }
83254 }
83255 rcu_read_unlock();
83256 @@ -1754,11 +1865,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
83257
83258 if (task) {
83259 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
83260 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83261 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
83262 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83263 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
83264 +#endif
83265 task_dumpable(task)) {
83266 rcu_read_lock();
83267 cred = __task_cred(task);
83268 inode->i_uid = cred->euid;
83269 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83270 + inode->i_gid = grsec_proc_gid;
83271 +#else
83272 inode->i_gid = cred->egid;
83273 +#endif
83274 rcu_read_unlock();
83275 } else {
83276 inode->i_uid = GLOBAL_ROOT_UID;
83277 @@ -2290,6 +2410,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
83278 if (!task)
83279 goto out_no_task;
83280
83281 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83282 + goto out;
83283 +
83284 /*
83285 * Yes, it does not scale. And it should not. Don't add
83286 * new entries into /proc/<tgid>/ without very good reasons.
83287 @@ -2320,6 +2443,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
83288 if (!task)
83289 return -ENOENT;
83290
83291 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83292 + goto out;
83293 +
83294 if (!dir_emit_dots(file, ctx))
83295 goto out;
83296
83297 @@ -2764,7 +2890,7 @@ static const struct pid_entry tgid_base_stuff[] = {
83298 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
83299 #endif
83300 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
83301 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
83302 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
83303 ONE("syscall", S_IRUSR, proc_pid_syscall),
83304 #endif
83305 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
83306 @@ -2789,10 +2915,10 @@ static const struct pid_entry tgid_base_stuff[] = {
83307 #ifdef CONFIG_SECURITY
83308 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
83309 #endif
83310 -#ifdef CONFIG_KALLSYMS
83311 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83312 ONE("wchan", S_IRUGO, proc_pid_wchan),
83313 #endif
83314 -#ifdef CONFIG_STACKTRACE
83315 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83316 ONE("stack", S_IRUSR, proc_pid_stack),
83317 #endif
83318 #ifdef CONFIG_SCHED_INFO
83319 @@ -2826,6 +2952,9 @@ static const struct pid_entry tgid_base_stuff[] = {
83320 #ifdef CONFIG_HARDWALL
83321 ONE("hardwall", S_IRUGO, proc_pid_hardwall),
83322 #endif
83323 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
83324 + ONE("ipaddr", S_IRUSR, proc_pid_ipaddr),
83325 +#endif
83326 #ifdef CONFIG_USER_NS
83327 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations),
83328 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
83329 @@ -2958,7 +3087,14 @@ static int proc_pid_instantiate(struct inode *dir,
83330 if (!inode)
83331 goto out;
83332
83333 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83334 + inode->i_mode = S_IFDIR|S_IRUSR|S_IXUSR;
83335 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83336 + inode->i_gid = grsec_proc_gid;
83337 + inode->i_mode = S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP;
83338 +#else
83339 inode->i_mode = S_IFDIR|S_IRUGO|S_IXUGO;
83340 +#endif
83341 inode->i_op = &proc_tgid_base_inode_operations;
83342 inode->i_fop = &proc_tgid_base_operations;
83343 inode->i_flags|=S_IMMUTABLE;
83344 @@ -2996,7 +3132,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
83345 if (!task)
83346 goto out;
83347
83348 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
83349 + goto out_put_task;
83350 +
83351 result = proc_pid_instantiate(dir, dentry, task, NULL);
83352 +out_put_task:
83353 put_task_struct(task);
83354 out:
83355 return ERR_PTR(result);
83356 @@ -3110,7 +3250,7 @@ static const struct pid_entry tid_base_stuff[] = {
83357 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
83358 #endif
83359 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
83360 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
83361 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
83362 ONE("syscall", S_IRUSR, proc_pid_syscall),
83363 #endif
83364 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
83365 @@ -3137,10 +3277,10 @@ static const struct pid_entry tid_base_stuff[] = {
83366 #ifdef CONFIG_SECURITY
83367 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
83368 #endif
83369 -#ifdef CONFIG_KALLSYMS
83370 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83371 ONE("wchan", S_IRUGO, proc_pid_wchan),
83372 #endif
83373 -#ifdef CONFIG_STACKTRACE
83374 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
83375 ONE("stack", S_IRUSR, proc_pid_stack),
83376 #endif
83377 #ifdef CONFIG_SCHED_INFO
83378 diff --git a/fs/proc/cmdline.c b/fs/proc/cmdline.c
83379 index cbd82df..c0407d2 100644
83380 --- a/fs/proc/cmdline.c
83381 +++ b/fs/proc/cmdline.c
83382 @@ -23,7 +23,11 @@ static const struct file_operations cmdline_proc_fops = {
83383
83384 static int __init proc_cmdline_init(void)
83385 {
83386 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83387 + proc_create_grsec("cmdline", 0, NULL, &cmdline_proc_fops);
83388 +#else
83389 proc_create("cmdline", 0, NULL, &cmdline_proc_fops);
83390 +#endif
83391 return 0;
83392 }
83393 fs_initcall(proc_cmdline_init);
83394 diff --git a/fs/proc/devices.c b/fs/proc/devices.c
83395 index 50493ed..248166b 100644
83396 --- a/fs/proc/devices.c
83397 +++ b/fs/proc/devices.c
83398 @@ -64,7 +64,11 @@ static const struct file_operations proc_devinfo_operations = {
83399
83400 static int __init proc_devices_init(void)
83401 {
83402 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83403 + proc_create_grsec("devices", 0, NULL, &proc_devinfo_operations);
83404 +#else
83405 proc_create("devices", 0, NULL, &proc_devinfo_operations);
83406 +#endif
83407 return 0;
83408 }
83409 fs_initcall(proc_devices_init);
83410 diff --git a/fs/proc/fd.c b/fs/proc/fd.c
83411 index 6e5fcd0..06ea074 100644
83412 --- a/fs/proc/fd.c
83413 +++ b/fs/proc/fd.c
83414 @@ -27,7 +27,8 @@ static int seq_show(struct seq_file *m, void *v)
83415 if (!task)
83416 return -ENOENT;
83417
83418 - files = get_files_struct(task);
83419 + if (!gr_acl_handle_procpidmem(task))
83420 + files = get_files_struct(task);
83421 put_task_struct(task);
83422
83423 if (files) {
83424 @@ -291,11 +292,21 @@ static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry,
83425 */
83426 int proc_fd_permission(struct inode *inode, int mask)
83427 {
83428 + struct task_struct *task;
83429 int rv = generic_permission(inode, mask);
83430 - if (rv == 0)
83431 - return 0;
83432 +
83433 if (task_tgid(current) == proc_pid(inode))
83434 rv = 0;
83435 +
83436 + task = get_proc_task(inode);
83437 + if (task == NULL)
83438 + return rv;
83439 +
83440 + if (gr_acl_handle_procpidmem(task))
83441 + rv = -EACCES;
83442 +
83443 + put_task_struct(task);
83444 +
83445 return rv;
83446 }
83447
83448 diff --git a/fs/proc/generic.c b/fs/proc/generic.c
83449 index e5dee5c..dafe21b 100644
83450 --- a/fs/proc/generic.c
83451 +++ b/fs/proc/generic.c
83452 @@ -22,6 +22,7 @@
83453 #include <linux/bitops.h>
83454 #include <linux/spinlock.h>
83455 #include <linux/completion.h>
83456 +#include <linux/grsecurity.h>
83457 #include <asm/uaccess.h>
83458
83459 #include "internal.h"
83460 @@ -253,6 +254,15 @@ struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
83461 return proc_lookup_de(PDE(dir), dir, dentry);
83462 }
83463
83464 +struct dentry *proc_lookup_restrict(struct inode *dir, struct dentry *dentry,
83465 + unsigned int flags)
83466 +{
83467 + if (gr_proc_is_restricted())
83468 + return ERR_PTR(-EACCES);
83469 +
83470 + return proc_lookup_de(PDE(dir), dir, dentry);
83471 +}
83472 +
83473 /*
83474 * This returns non-zero if at EOF, so that the /proc
83475 * root directory can use this and check if it should
83476 @@ -310,6 +320,16 @@ int proc_readdir(struct file *file, struct dir_context *ctx)
83477 return proc_readdir_de(PDE(inode), file, ctx);
83478 }
83479
83480 +int proc_readdir_restrict(struct file *file, struct dir_context *ctx)
83481 +{
83482 + struct inode *inode = file_inode(file);
83483 +
83484 + if (gr_proc_is_restricted())
83485 + return -EACCES;
83486 +
83487 + return proc_readdir_de(PDE(inode), file, ctx);
83488 +}
83489 +
83490 /*
83491 * These are the generic /proc directory operations. They
83492 * use the in-memory "struct proc_dir_entry" tree to parse
83493 @@ -321,6 +341,12 @@ static const struct file_operations proc_dir_operations = {
83494 .iterate = proc_readdir,
83495 };
83496
83497 +static const struct file_operations proc_dir_restricted_operations = {
83498 + .llseek = generic_file_llseek,
83499 + .read = generic_read_dir,
83500 + .iterate = proc_readdir_restrict,
83501 +};
83502 +
83503 /*
83504 * proc directories can do almost nothing..
83505 */
83506 @@ -330,6 +356,12 @@ static const struct inode_operations proc_dir_inode_operations = {
83507 .setattr = proc_notify_change,
83508 };
83509
83510 +static const struct inode_operations proc_dir_restricted_inode_operations = {
83511 + .lookup = proc_lookup_restrict,
83512 + .getattr = proc_getattr,
83513 + .setattr = proc_notify_change,
83514 +};
83515 +
83516 static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
83517 {
83518 int ret;
83519 @@ -445,6 +477,31 @@ struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
83520 }
83521 EXPORT_SYMBOL_GPL(proc_mkdir_data);
83522
83523 +struct proc_dir_entry *proc_mkdir_data_restrict(const char *name, umode_t mode,
83524 + struct proc_dir_entry *parent, void *data)
83525 +{
83526 + struct proc_dir_entry *ent;
83527 +
83528 + if (mode == 0)
83529 + mode = S_IRUGO | S_IXUGO;
83530 +
83531 + ent = __proc_create(&parent, name, S_IFDIR | mode, 2);
83532 + if (ent) {
83533 + ent->data = data;
83534 + ent->restricted = 1;
83535 + ent->proc_fops = &proc_dir_restricted_operations;
83536 + ent->proc_iops = &proc_dir_restricted_inode_operations;
83537 + parent->nlink++;
83538 + if (proc_register(parent, ent) < 0) {
83539 + kfree(ent);
83540 + parent->nlink--;
83541 + ent = NULL;
83542 + }
83543 + }
83544 + return ent;
83545 +}
83546 +EXPORT_SYMBOL_GPL(proc_mkdir_data_restrict);
83547 +
83548 struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
83549 struct proc_dir_entry *parent)
83550 {
83551 @@ -459,6 +516,13 @@ struct proc_dir_entry *proc_mkdir(const char *name,
83552 }
83553 EXPORT_SYMBOL(proc_mkdir);
83554
83555 +struct proc_dir_entry *proc_mkdir_restrict(const char *name,
83556 + struct proc_dir_entry *parent)
83557 +{
83558 + return proc_mkdir_data_restrict(name, 0, parent, NULL);
83559 +}
83560 +EXPORT_SYMBOL(proc_mkdir_restrict);
83561 +
83562 struct proc_dir_entry *proc_create_mount_point(const char *name)
83563 {
83564 umode_t mode = S_IFDIR | S_IRUGO | S_IXUGO;
83565 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
83566 index bd95b9f..a64a773 100644
83567 --- a/fs/proc/inode.c
83568 +++ b/fs/proc/inode.c
83569 @@ -23,11 +23,17 @@
83570 #include <linux/slab.h>
83571 #include <linux/mount.h>
83572 #include <linux/magic.h>
83573 +#include <linux/grsecurity.h>
83574
83575 #include <asm/uaccess.h>
83576
83577 #include "internal.h"
83578
83579 +#ifdef CONFIG_PROC_SYSCTL
83580 +extern const struct inode_operations proc_sys_inode_operations;
83581 +extern const struct inode_operations proc_sys_dir_operations;
83582 +#endif
83583 +
83584 static void proc_evict_inode(struct inode *inode)
83585 {
83586 struct proc_dir_entry *de;
83587 @@ -48,6 +54,13 @@ static void proc_evict_inode(struct inode *inode)
83588 RCU_INIT_POINTER(PROC_I(inode)->sysctl, NULL);
83589 sysctl_head_put(head);
83590 }
83591 +
83592 +#ifdef CONFIG_PROC_SYSCTL
83593 + if (inode->i_op == &proc_sys_inode_operations ||
83594 + inode->i_op == &proc_sys_dir_operations)
83595 + gr_handle_delete(inode->i_ino, inode->i_sb->s_dev);
83596 +#endif
83597 +
83598 }
83599
83600 static struct kmem_cache * proc_inode_cachep;
83601 @@ -429,7 +442,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
83602 if (de->mode) {
83603 inode->i_mode = de->mode;
83604 inode->i_uid = de->uid;
83605 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83606 + inode->i_gid = grsec_proc_gid;
83607 +#else
83608 inode->i_gid = de->gid;
83609 +#endif
83610 }
83611 if (de->size)
83612 inode->i_size = de->size;
83613 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
83614 index aa27810..9f2d3b2 100644
83615 --- a/fs/proc/internal.h
83616 +++ b/fs/proc/internal.h
83617 @@ -47,9 +47,10 @@ struct proc_dir_entry {
83618 struct completion *pde_unload_completion;
83619 struct list_head pde_openers; /* who did ->open, but not ->release */
83620 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
83621 + u8 restricted; /* a directory in /proc/net that should be restricted via GRKERNSEC_PROC */
83622 u8 namelen;
83623 char name[];
83624 -};
83625 +} __randomize_layout;
83626
83627 union proc_op {
83628 int (*proc_get_link)(struct dentry *, struct path *);
83629 @@ -67,7 +68,7 @@ struct proc_inode {
83630 struct ctl_table *sysctl_entry;
83631 const struct proc_ns_operations *ns_ops;
83632 struct inode vfs_inode;
83633 -};
83634 +} __randomize_layout;
83635
83636 /*
83637 * General functions
83638 @@ -155,6 +156,10 @@ extern int proc_pid_status(struct seq_file *, struct pid_namespace *,
83639 struct pid *, struct task_struct *);
83640 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
83641 struct pid *, struct task_struct *);
83642 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
83643 +extern int proc_pid_ipaddr(struct seq_file *, struct pid_namespace *,
83644 + struct pid *, struct task_struct *);
83645 +#endif
83646
83647 /*
83648 * base.c
83649 @@ -179,9 +184,11 @@ extern bool proc_fill_cache(struct file *, struct dir_context *, const char *, i
83650 * generic.c
83651 */
83652 extern struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
83653 +extern struct dentry *proc_lookup_restrict(struct inode *, struct dentry *, unsigned int);
83654 extern struct dentry *proc_lookup_de(struct proc_dir_entry *, struct inode *,
83655 struct dentry *);
83656 extern int proc_readdir(struct file *, struct dir_context *);
83657 +extern int proc_readdir_restrict(struct file *, struct dir_context *);
83658 extern int proc_readdir_de(struct proc_dir_entry *, struct file *, struct dir_context *);
83659
83660 static inline struct proc_dir_entry *pde_get(struct proc_dir_entry *pde)
83661 diff --git a/fs/proc/interrupts.c b/fs/proc/interrupts.c
83662 index a352d57..cb94a5c 100644
83663 --- a/fs/proc/interrupts.c
83664 +++ b/fs/proc/interrupts.c
83665 @@ -47,7 +47,11 @@ static const struct file_operations proc_interrupts_operations = {
83666
83667 static int __init proc_interrupts_init(void)
83668 {
83669 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83670 + proc_create_grsec("interrupts", 0, NULL, &proc_interrupts_operations);
83671 +#else
83672 proc_create("interrupts", 0, NULL, &proc_interrupts_operations);
83673 +#endif
83674 return 0;
83675 }
83676 fs_initcall(proc_interrupts_init);
83677 diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
83678 index 92e6726..a600d4fa 100644
83679 --- a/fs/proc/kcore.c
83680 +++ b/fs/proc/kcore.c
83681 @@ -483,9 +483,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83682 * the addresses in the elf_phdr on our list.
83683 */
83684 start = kc_offset_to_vaddr(*fpos - elf_buflen);
83685 - if ((tsz = (PAGE_SIZE - (start & ~PAGE_MASK))) > buflen)
83686 + tsz = PAGE_SIZE - (start & ~PAGE_MASK);
83687 + if (tsz > buflen)
83688 tsz = buflen;
83689 -
83690 +
83691 while (buflen) {
83692 struct kcore_list *m;
83693
83694 @@ -515,19 +516,20 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83695 } else {
83696 if (kern_addr_valid(start)) {
83697 unsigned long n;
83698 + char *elf_buf;
83699 + mm_segment_t oldfs;
83700
83701 - n = copy_to_user(buffer, (char *)start, tsz);
83702 - /*
83703 - * We cannot distinguish between fault on source
83704 - * and fault on destination. When this happens
83705 - * we clear too and hope it will trigger the
83706 - * EFAULT again.
83707 - */
83708 - if (n) {
83709 - if (clear_user(buffer + tsz - n,
83710 - n))
83711 - return -EFAULT;
83712 - }
83713 + elf_buf = kzalloc(tsz, GFP_KERNEL);
83714 + if (!elf_buf)
83715 + return -ENOMEM;
83716 + oldfs = get_fs();
83717 + set_fs(KERNEL_DS);
83718 + n = __copy_from_user(elf_buf, (const void __user *)start, tsz);
83719 + set_fs(oldfs);
83720 + n = copy_to_user(buffer, elf_buf, tsz);
83721 + kfree(elf_buf);
83722 + if (n)
83723 + return -EFAULT;
83724 } else {
83725 if (clear_user(buffer, tsz))
83726 return -EFAULT;
83727 @@ -547,6 +549,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83728
83729 static int open_kcore(struct inode *inode, struct file *filp)
83730 {
83731 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
83732 + return -EPERM;
83733 +#endif
83734 if (!capable(CAP_SYS_RAWIO))
83735 return -EPERM;
83736 if (kcore_need_update)
83737 @@ -580,7 +585,7 @@ static int __meminit kcore_callback(struct notifier_block *self,
83738 return NOTIFY_OK;
83739 }
83740
83741 -static struct notifier_block kcore_callback_nb __meminitdata = {
83742 +static struct notifier_block kcore_callback_nb __meminitconst = {
83743 .notifier_call = kcore_callback,
83744 .priority = 0,
83745 };
83746 diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
83747 index d3ebf2e..abe1823 100644
83748 --- a/fs/proc/meminfo.c
83749 +++ b/fs/proc/meminfo.c
83750 @@ -27,7 +27,6 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83751 {
83752 struct sysinfo i;
83753 unsigned long committed;
83754 - struct vmalloc_info vmi;
83755 long cached;
83756 long available;
83757 unsigned long pagecache;
83758 @@ -49,8 +48,6 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83759 if (cached < 0)
83760 cached = 0;
83761
83762 - get_vmalloc_info(&vmi);
83763 -
83764 for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++)
83765 pages[lru] = global_page_state(NR_LRU_BASE + lru);
83766
83767 @@ -191,10 +188,10 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83768 K(vm_commit_limit()),
83769 K(committed),
83770 (unsigned long)VMALLOC_TOTAL >> 10,
83771 - vmi.used >> 10,
83772 - vmi.largest_chunk >> 10
83773 + 0ul, // used to be vmalloc 'used'
83774 + 0ul // used to be vmalloc 'largest_chunk'
83775 #ifdef CONFIG_MEMORY_FAILURE
83776 - , atomic_long_read(&num_poisoned_pages) << (PAGE_SHIFT - 10)
83777 + , atomic_long_read_unchecked(&num_poisoned_pages) << (PAGE_SHIFT - 10)
83778 #endif
83779 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
83780 , K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
83781 diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
83782 index f8595e8..e0d13cbd 100644
83783 --- a/fs/proc/nommu.c
83784 +++ b/fs/proc/nommu.c
83785 @@ -64,7 +64,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
83786
83787 if (file) {
83788 seq_pad(m, ' ');
83789 - seq_file_path(m, file, "");
83790 + seq_file_path(m, file, "\n\\");
83791 }
83792
83793 seq_putc(m, '\n');
83794 diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
83795 index 350984a..0fb02a9 100644
83796 --- a/fs/proc/proc_net.c
83797 +++ b/fs/proc/proc_net.c
83798 @@ -23,9 +23,27 @@
83799 #include <linux/nsproxy.h>
83800 #include <net/net_namespace.h>
83801 #include <linux/seq_file.h>
83802 +#include <linux/grsecurity.h>
83803
83804 #include "internal.h"
83805
83806 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
83807 +static struct seq_operations *ipv6_seq_ops_addr;
83808 +
83809 +void register_ipv6_seq_ops_addr(struct seq_operations *addr)
83810 +{
83811 + ipv6_seq_ops_addr = addr;
83812 +}
83813 +
83814 +void unregister_ipv6_seq_ops_addr(void)
83815 +{
83816 + ipv6_seq_ops_addr = NULL;
83817 +}
83818 +
83819 +EXPORT_SYMBOL_GPL(register_ipv6_seq_ops_addr);
83820 +EXPORT_SYMBOL_GPL(unregister_ipv6_seq_ops_addr);
83821 +#endif
83822 +
83823 static inline struct net *PDE_NET(struct proc_dir_entry *pde)
83824 {
83825 return pde->parent->data;
83826 @@ -36,6 +54,8 @@ static struct net *get_proc_net(const struct inode *inode)
83827 return maybe_get_net(PDE_NET(PDE(inode)));
83828 }
83829
83830 +extern const struct seq_operations dev_seq_ops;
83831 +
83832 int seq_open_net(struct inode *ino, struct file *f,
83833 const struct seq_operations *ops, int size)
83834 {
83835 @@ -44,6 +64,14 @@ int seq_open_net(struct inode *ino, struct file *f,
83836
83837 BUG_ON(size < sizeof(*p));
83838
83839 + /* only permit access to /proc/net/dev */
83840 + if (
83841 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
83842 + ops != ipv6_seq_ops_addr &&
83843 +#endif
83844 + ops != &dev_seq_ops && gr_proc_is_restricted())
83845 + return -EACCES;
83846 +
83847 net = get_proc_net(ino);
83848 if (net == NULL)
83849 return -ENXIO;
83850 @@ -66,6 +94,9 @@ int single_open_net(struct inode *inode, struct file *file,
83851 int err;
83852 struct net *net;
83853
83854 + if (gr_proc_is_restricted())
83855 + return -EACCES;
83856 +
83857 err = -ENXIO;
83858 net = get_proc_net(inode);
83859 if (net == NULL)
83860 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
83861 index fdda62e..cd7c75f 100644
83862 --- a/fs/proc/proc_sysctl.c
83863 +++ b/fs/proc/proc_sysctl.c
83864 @@ -11,13 +11,21 @@
83865 #include <linux/namei.h>
83866 #include <linux/mm.h>
83867 #include <linux/module.h>
83868 +#include <linux/nsproxy.h>
83869 +#ifdef CONFIG_GRKERNSEC
83870 +#include <net/net_namespace.h>
83871 +#endif
83872 #include "internal.h"
83873
83874 +extern int gr_handle_chroot_sysctl(const int op);
83875 +extern int gr_handle_sysctl_mod(const char *dirname, const char *name,
83876 + const int op);
83877 +
83878 static const struct dentry_operations proc_sys_dentry_operations;
83879 static const struct file_operations proc_sys_file_operations;
83880 -static const struct inode_operations proc_sys_inode_operations;
83881 +const struct inode_operations proc_sys_inode_operations;
83882 static const struct file_operations proc_sys_dir_file_operations;
83883 -static const struct inode_operations proc_sys_dir_operations;
83884 +const struct inode_operations proc_sys_dir_operations;
83885
83886 /* Support for permanently empty directories */
83887
83888 @@ -32,13 +40,17 @@ static bool is_empty_dir(struct ctl_table_header *head)
83889
83890 static void set_empty_dir(struct ctl_dir *dir)
83891 {
83892 - dir->header.ctl_table[0].child = sysctl_mount_point;
83893 + pax_open_kernel();
83894 + *(const void **)&dir->header.ctl_table[0].child = sysctl_mount_point;
83895 + pax_close_kernel();
83896 }
83897
83898 static void clear_empty_dir(struct ctl_dir *dir)
83899
83900 {
83901 - dir->header.ctl_table[0].child = NULL;
83902 + pax_open_kernel();
83903 + *(void **)&dir->header.ctl_table[0].child = NULL;
83904 + pax_close_kernel();
83905 }
83906
83907 void proc_sys_poll_notify(struct ctl_table_poll *poll)
83908 @@ -504,6 +516,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
83909
83910 err = NULL;
83911 d_set_d_op(dentry, &proc_sys_dentry_operations);
83912 +
83913 + gr_handle_proc_create(dentry, inode);
83914 +
83915 d_add(dentry, inode);
83916
83917 out:
83918 @@ -519,6 +534,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83919 struct inode *inode = file_inode(filp);
83920 struct ctl_table_header *head = grab_header(inode);
83921 struct ctl_table *table = PROC_I(inode)->sysctl_entry;
83922 + int op = write ? MAY_WRITE : MAY_READ;
83923 ssize_t error;
83924 size_t res;
83925
83926 @@ -530,7 +546,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83927 * and won't be until we finish.
83928 */
83929 error = -EPERM;
83930 - if (sysctl_perm(head, table, write ? MAY_WRITE : MAY_READ))
83931 + if (sysctl_perm(head, table, op))
83932 goto out;
83933
83934 /* if that can happen at all, it should be -EINVAL, not -EISDIR */
83935 @@ -538,6 +554,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83936 if (!table->proc_handler)
83937 goto out;
83938
83939 +#ifdef CONFIG_GRKERNSEC
83940 + error = -EPERM;
83941 + if (gr_handle_chroot_sysctl(op))
83942 + goto out;
83943 + dget(filp->f_path.dentry);
83944 + if (gr_handle_sysctl_mod(filp->f_path.dentry->d_parent->d_name.name, table->procname, op)) {
83945 + dput(filp->f_path.dentry);
83946 + goto out;
83947 + }
83948 + dput(filp->f_path.dentry);
83949 + if (!gr_acl_handle_open(filp->f_path.dentry, filp->f_path.mnt, op))
83950 + goto out;
83951 + if (write) {
83952 + if (current->nsproxy->net_ns != table->extra2) {
83953 + if (!capable(CAP_SYS_ADMIN))
83954 + goto out;
83955 + } else if (!ns_capable(current->nsproxy->net_ns->user_ns, CAP_NET_ADMIN))
83956 + goto out;
83957 + }
83958 +#endif
83959 +
83960 /* careful: calling conventions are nasty here */
83961 res = count;
83962 error = table->proc_handler(table, write, buf, &res, ppos);
83963 @@ -635,6 +672,9 @@ static bool proc_sys_fill_cache(struct file *file,
83964 return false;
83965 } else {
83966 d_set_d_op(child, &proc_sys_dentry_operations);
83967 +
83968 + gr_handle_proc_create(child, inode);
83969 +
83970 d_add(child, inode);
83971 }
83972 } else {
83973 @@ -678,6 +718,9 @@ static int scan(struct ctl_table_header *head, struct ctl_table *table,
83974 if ((*pos)++ < ctx->pos)
83975 return true;
83976
83977 + if (!gr_acl_handle_hidden_file(file->f_path.dentry, file->f_path.mnt))
83978 + return 0;
83979 +
83980 if (unlikely(S_ISLNK(table->mode)))
83981 res = proc_sys_link_fill_cache(file, ctx, head, table);
83982 else
83983 @@ -771,6 +814,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
83984 if (IS_ERR(head))
83985 return PTR_ERR(head);
83986
83987 + if (table && !gr_acl_handle_hidden_file(dentry, mnt))
83988 + return -ENOENT;
83989 +
83990 generic_fillattr(inode, stat);
83991 if (table)
83992 stat->mode = (stat->mode & S_IFMT) | table->mode;
83993 @@ -793,13 +839,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
83994 .llseek = generic_file_llseek,
83995 };
83996
83997 -static const struct inode_operations proc_sys_inode_operations = {
83998 +const struct inode_operations proc_sys_inode_operations = {
83999 .permission = proc_sys_permission,
84000 .setattr = proc_sys_setattr,
84001 .getattr = proc_sys_getattr,
84002 };
84003
84004 -static const struct inode_operations proc_sys_dir_operations = {
84005 +const struct inode_operations proc_sys_dir_operations = {
84006 .lookup = proc_sys_lookup,
84007 .permission = proc_sys_permission,
84008 .setattr = proc_sys_setattr,
84009 @@ -876,7 +922,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
84010 static struct ctl_dir *new_dir(struct ctl_table_set *set,
84011 const char *name, int namelen)
84012 {
84013 - struct ctl_table *table;
84014 + ctl_table_no_const *table;
84015 struct ctl_dir *new;
84016 struct ctl_node *node;
84017 char *new_name;
84018 @@ -888,7 +934,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
84019 return NULL;
84020
84021 node = (struct ctl_node *)(new + 1);
84022 - table = (struct ctl_table *)(node + 1);
84023 + table = (ctl_table_no_const *)(node + 1);
84024 new_name = (char *)(table + 2);
84025 memcpy(new_name, name, namelen);
84026 new_name[namelen] = '\0';
84027 @@ -1057,7 +1103,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
84028 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
84029 struct ctl_table_root *link_root)
84030 {
84031 - struct ctl_table *link_table, *entry, *link;
84032 + ctl_table_no_const *link_table, *link;
84033 + struct ctl_table *entry;
84034 struct ctl_table_header *links;
84035 struct ctl_node *node;
84036 char *link_name;
84037 @@ -1080,7 +1127,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
84038 return NULL;
84039
84040 node = (struct ctl_node *)(links + 1);
84041 - link_table = (struct ctl_table *)(node + nr_entries);
84042 + link_table = (ctl_table_no_const *)(node + nr_entries);
84043 link_name = (char *)&link_table[nr_entries + 1];
84044
84045 for (link = link_table, entry = table; entry->procname; link++, entry++) {
84046 @@ -1328,8 +1375,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
84047 struct ctl_table_header ***subheader, struct ctl_table_set *set,
84048 struct ctl_table *table)
84049 {
84050 - struct ctl_table *ctl_table_arg = NULL;
84051 - struct ctl_table *entry, *files;
84052 + ctl_table_no_const *ctl_table_arg = NULL, *files = NULL;
84053 + struct ctl_table *entry;
84054 int nr_files = 0;
84055 int nr_dirs = 0;
84056 int err = -ENOMEM;
84057 @@ -1341,10 +1388,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
84058 nr_files++;
84059 }
84060
84061 - files = table;
84062 /* If there are mixed files and directories we need a new table */
84063 if (nr_dirs && nr_files) {
84064 - struct ctl_table *new;
84065 + ctl_table_no_const *new;
84066 files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1),
84067 GFP_KERNEL);
84068 if (!files)
84069 @@ -1362,7 +1408,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
84070 /* Register everything except a directory full of subdirectories */
84071 if (nr_files || !nr_dirs) {
84072 struct ctl_table_header *header;
84073 - header = __register_sysctl_table(set, path, files);
84074 + header = __register_sysctl_table(set, path, files ? files : table);
84075 if (!header) {
84076 kfree(ctl_table_arg);
84077 goto out;
84078 diff --git a/fs/proc/root.c b/fs/proc/root.c
84079 index 68feb0f..2c04780 100644
84080 --- a/fs/proc/root.c
84081 +++ b/fs/proc/root.c
84082 @@ -185,7 +185,15 @@ void __init proc_root_init(void)
84083 proc_create_mount_point("openprom");
84084 #endif
84085 proc_tty_init();
84086 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
84087 +#ifdef CONFIG_GRKERNSEC_PROC_USER
84088 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR, NULL);
84089 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
84090 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
84091 +#endif
84092 +#else
84093 proc_mkdir("bus", NULL);
84094 +#endif
84095 proc_sys_init();
84096 }
84097
84098 diff --git a/fs/proc/stat.c b/fs/proc/stat.c
84099 index 510413eb..34d9a8c 100644
84100 --- a/fs/proc/stat.c
84101 +++ b/fs/proc/stat.c
84102 @@ -11,6 +11,7 @@
84103 #include <linux/irqnr.h>
84104 #include <linux/cputime.h>
84105 #include <linux/tick.h>
84106 +#include <linux/grsecurity.h>
84107
84108 #ifndef arch_irq_stat_cpu
84109 #define arch_irq_stat_cpu(cpu) 0
84110 @@ -87,6 +88,18 @@ static int show_stat(struct seq_file *p, void *v)
84111 u64 sum_softirq = 0;
84112 unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
84113 struct timespec boottime;
84114 + int unrestricted = 1;
84115 +
84116 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
84117 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
84118 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
84119 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
84120 + && !in_group_p(grsec_proc_gid)
84121 +#endif
84122 + )
84123 + unrestricted = 0;
84124 +#endif
84125 +#endif
84126
84127 user = nice = system = idle = iowait =
84128 irq = softirq = steal = 0;
84129 @@ -99,23 +112,25 @@ static int show_stat(struct seq_file *p, void *v)
84130 nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
84131 system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
84132 idle += get_idle_time(i);
84133 - iowait += get_iowait_time(i);
84134 - irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84135 - softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84136 - steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84137 - guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84138 - guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84139 - sum += kstat_cpu_irqs_sum(i);
84140 - sum += arch_irq_stat_cpu(i);
84141 + if (unrestricted) {
84142 + iowait += get_iowait_time(i);
84143 + irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84144 + softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84145 + steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84146 + guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84147 + guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84148 + sum += kstat_cpu_irqs_sum(i);
84149 + sum += arch_irq_stat_cpu(i);
84150 + for (j = 0; j < NR_SOFTIRQS; j++) {
84151 + unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
84152
84153 - for (j = 0; j < NR_SOFTIRQS; j++) {
84154 - unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
84155 -
84156 - per_softirq_sums[j] += softirq_stat;
84157 - sum_softirq += softirq_stat;
84158 + per_softirq_sums[j] += softirq_stat;
84159 + sum_softirq += softirq_stat;
84160 + }
84161 }
84162 }
84163 - sum += arch_irq_stat();
84164 + if (unrestricted)
84165 + sum += arch_irq_stat();
84166
84167 seq_puts(p, "cpu ");
84168 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
84169 @@ -136,12 +151,14 @@ static int show_stat(struct seq_file *p, void *v)
84170 nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
84171 system = kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
84172 idle = get_idle_time(i);
84173 - iowait = get_iowait_time(i);
84174 - irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84175 - softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84176 - steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84177 - guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84178 - guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84179 + if (unrestricted) {
84180 + iowait = get_iowait_time(i);
84181 + irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
84182 + softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
84183 + steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
84184 + guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
84185 + guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
84186 + }
84187 seq_printf(p, "cpu%d", i);
84188 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
84189 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(nice));
84190 @@ -159,7 +176,7 @@ static int show_stat(struct seq_file *p, void *v)
84191
84192 /* sum again ? it could be updated? */
84193 for_each_irq_nr(j)
84194 - seq_put_decimal_ull(p, ' ', kstat_irqs_usr(j));
84195 + seq_put_decimal_ull(p, ' ', unrestricted ? kstat_irqs_usr(j) : 0ULL);
84196
84197 seq_printf(p,
84198 "\nctxt %llu\n"
84199 @@ -167,11 +184,11 @@ static int show_stat(struct seq_file *p, void *v)
84200 "processes %lu\n"
84201 "procs_running %lu\n"
84202 "procs_blocked %lu\n",
84203 - nr_context_switches(),
84204 + unrestricted ? nr_context_switches() : 0ULL,
84205 (unsigned long)jif,
84206 - total_forks,
84207 - nr_running(),
84208 - nr_iowait());
84209 + unrestricted ? total_forks : 0UL,
84210 + unrestricted ? nr_running() : 0UL,
84211 + unrestricted ? nr_iowait() : 0UL);
84212
84213 seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
84214
84215 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
84216 index ca1e091..12dd9f1 100644
84217 --- a/fs/proc/task_mmu.c
84218 +++ b/fs/proc/task_mmu.c
84219 @@ -13,12 +13,19 @@
84220 #include <linux/swap.h>
84221 #include <linux/swapops.h>
84222 #include <linux/mmu_notifier.h>
84223 +#include <linux/grsecurity.h>
84224
84225 #include <asm/elf.h>
84226 #include <asm/uaccess.h>
84227 #include <asm/tlbflush.h>
84228 #include "internal.h"
84229
84230 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84231 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
84232 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
84233 + _mm->pax_flags & MF_PAX_SEGMEXEC))
84234 +#endif
84235 +
84236 void task_mem(struct seq_file *m, struct mm_struct *mm)
84237 {
84238 unsigned long data, text, lib, swap, ptes, pmds;
84239 @@ -57,8 +64,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
84240 "VmLib:\t%8lu kB\n"
84241 "VmPTE:\t%8lu kB\n"
84242 "VmPMD:\t%8lu kB\n"
84243 - "VmSwap:\t%8lu kB\n",
84244 - hiwater_vm << (PAGE_SHIFT-10),
84245 + "VmSwap:\t%8lu kB\n"
84246 +
84247 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
84248 + "CsBase:\t%8lx\nCsLim:\t%8lx\n"
84249 +#endif
84250 +
84251 + ,hiwater_vm << (PAGE_SHIFT-10),
84252 total_vm << (PAGE_SHIFT-10),
84253 mm->locked_vm << (PAGE_SHIFT-10),
84254 mm->pinned_vm << (PAGE_SHIFT-10),
84255 @@ -68,7 +80,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
84256 mm->stack_vm << (PAGE_SHIFT-10), text, lib,
84257 ptes >> 10,
84258 pmds >> 10,
84259 - swap << (PAGE_SHIFT-10));
84260 + swap << (PAGE_SHIFT-10)
84261 +
84262 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
84263 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84264 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_base
84265 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_limit
84266 +#else
84267 + , mm->context.user_cs_base
84268 + , mm->context.user_cs_limit
84269 +#endif
84270 +#endif
84271 +
84272 + );
84273 }
84274
84275 unsigned long task_vsize(struct mm_struct *mm)
84276 @@ -285,13 +309,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84277 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
84278 }
84279
84280 - /* We don't show the stack guard page in /proc/maps */
84281 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84282 + start = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_start;
84283 + end = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_end;
84284 +#else
84285 start = vma->vm_start;
84286 - if (stack_guard_page_start(vma, start))
84287 - start += PAGE_SIZE;
84288 end = vma->vm_end;
84289 - if (stack_guard_page_end(vma, end))
84290 - end -= PAGE_SIZE;
84291 +#endif
84292
84293 seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
84294 seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
84295 @@ -301,7 +325,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84296 flags & VM_WRITE ? 'w' : '-',
84297 flags & VM_EXEC ? 'x' : '-',
84298 flags & VM_MAYSHARE ? 's' : 'p',
84299 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84300 + PAX_RAND_FLAGS(mm) ? 0UL : pgoff,
84301 +#else
84302 pgoff,
84303 +#endif
84304 MAJOR(dev), MINOR(dev), ino);
84305
84306 /*
84307 @@ -310,7 +338,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84308 */
84309 if (file) {
84310 seq_pad(m, ' ');
84311 - seq_file_path(m, file, "\n");
84312 + seq_file_path(m, file, "\n\\");
84313 goto done;
84314 }
84315
84316 @@ -341,8 +369,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
84317 * Thread stack in /proc/PID/task/TID/maps or
84318 * the main process stack.
84319 */
84320 - if (!is_pid || (vma->vm_start <= mm->start_stack &&
84321 - vma->vm_end >= mm->start_stack)) {
84322 + if (!is_pid || (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP)) ||
84323 + (vma->vm_start <= mm->start_stack &&
84324 + vma->vm_end >= mm->start_stack)) {
84325 name = "[stack]";
84326 } else {
84327 /* Thread stack in /proc/PID/maps */
84328 @@ -362,6 +391,12 @@ done:
84329
84330 static int show_map(struct seq_file *m, void *v, int is_pid)
84331 {
84332 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84333 + if (current->exec_id != m->exec_id) {
84334 + gr_log_badprocpid("maps");
84335 + return 0;
84336 + }
84337 +#endif
84338 show_map_vma(m, v, is_pid);
84339 m_cache_vma(m, v);
84340 return 0;
84341 @@ -585,6 +620,9 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
84342 [ilog2(VM_RAND_READ)] = "rr",
84343 [ilog2(VM_DONTCOPY)] = "dc",
84344 [ilog2(VM_DONTEXPAND)] = "de",
84345 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
84346 + [ilog2(VM_PAGEEXEC)] = "px",
84347 +#endif
84348 [ilog2(VM_ACCOUNT)] = "ac",
84349 [ilog2(VM_NORESERVE)] = "nr",
84350 [ilog2(VM_HUGETLB)] = "ht",
84351 @@ -620,9 +658,18 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
84352 .private = &mss,
84353 };
84354
84355 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84356 + if (current->exec_id != m->exec_id) {
84357 + gr_log_badprocpid("smaps");
84358 + return 0;
84359 + }
84360 +#endif
84361 memset(&mss, 0, sizeof mss);
84362 - /* mmap_sem is held in m_start */
84363 - walk_page_vma(vma, &smaps_walk);
84364 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84365 + if (!PAX_RAND_FLAGS(vma->vm_mm))
84366 +#endif
84367 + /* mmap_sem is held in m_start */
84368 + walk_page_vma(vma, &smaps_walk);
84369
84370 show_map_vma(m, vma, is_pid);
84371
84372 @@ -641,7 +688,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
84373 "KernelPageSize: %8lu kB\n"
84374 "MMUPageSize: %8lu kB\n"
84375 "Locked: %8lu kB\n",
84376 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84377 + PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : (vma->vm_end - vma->vm_start) >> 10,
84378 +#else
84379 (vma->vm_end - vma->vm_start) >> 10,
84380 +#endif
84381 mss.resident >> 10,
84382 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
84383 mss.shared_clean >> 10,
84384 @@ -1491,6 +1542,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
84385 char buffer[64];
84386 int nid;
84387
84388 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84389 + if (current->exec_id != m->exec_id) {
84390 + gr_log_badprocpid("numa_maps");
84391 + return 0;
84392 + }
84393 +#endif
84394 +
84395 if (!mm)
84396 return 0;
84397
84398 @@ -1505,11 +1563,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
84399 mpol_to_str(buffer, sizeof(buffer), proc_priv->task_mempolicy);
84400 }
84401
84402 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84403 + seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
84404 +#else
84405 seq_printf(m, "%08lx %s", vma->vm_start, buffer);
84406 +#endif
84407
84408 if (file) {
84409 seq_puts(m, " file=");
84410 - seq_file_path(m, file, "\n\t= ");
84411 + seq_file_path(m, file, "\n\t\\= ");
84412 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
84413 seq_puts(m, " heap");
84414 } else {
84415 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
84416 index e0d64c9..c44c96e 100644
84417 --- a/fs/proc/task_nommu.c
84418 +++ b/fs/proc/task_nommu.c
84419 @@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
84420 else
84421 bytes += kobjsize(mm);
84422
84423 - if (current->fs && current->fs->users > 1)
84424 + if (current->fs && atomic_read(&current->fs->users) > 1)
84425 sbytes += kobjsize(current->fs);
84426 else
84427 bytes += kobjsize(current->fs);
84428 @@ -180,7 +180,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
84429
84430 if (file) {
84431 seq_pad(m, ' ');
84432 - seq_file_path(m, file, "");
84433 + seq_file_path(m, file, "\n\\");
84434 } else if (mm) {
84435 pid_t tid = pid_of_stack(priv, vma, is_pid);
84436
84437 diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
84438 index 4e61388..1a2523d 100644
84439 --- a/fs/proc/vmcore.c
84440 +++ b/fs/proc/vmcore.c
84441 @@ -105,9 +105,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
84442 nr_bytes = count;
84443
84444 /* If pfn is not ram, return zeros for sparse dump files */
84445 - if (pfn_is_ram(pfn) == 0)
84446 - memset(buf, 0, nr_bytes);
84447 - else {
84448 + if (pfn_is_ram(pfn) == 0) {
84449 + if (userbuf) {
84450 + if (clear_user((char __force_user *)buf, nr_bytes))
84451 + return -EFAULT;
84452 + } else
84453 + memset(buf, 0, nr_bytes);
84454 + } else {
84455 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
84456 offset, userbuf);
84457 if (tmp < 0)
84458 @@ -170,7 +174,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma,
84459 static int copy_to(void *target, void *src, size_t size, int userbuf)
84460 {
84461 if (userbuf) {
84462 - if (copy_to_user((char __user *) target, src, size))
84463 + if (copy_to_user((char __force_user *) target, src, size))
84464 return -EFAULT;
84465 } else {
84466 memcpy(target, src, size);
84467 @@ -233,7 +237,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
84468 if (*fpos < m->offset + m->size) {
84469 tsz = min_t(size_t, m->offset + m->size - *fpos, buflen);
84470 start = m->paddr + *fpos - m->offset;
84471 - tmp = read_from_oldmem(buffer, tsz, &start, userbuf);
84472 + tmp = read_from_oldmem((char __force_kernel *)buffer, tsz, &start, userbuf);
84473 if (tmp < 0)
84474 return tmp;
84475 buflen -= tsz;
84476 @@ -253,7 +257,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
84477 static ssize_t read_vmcore(struct file *file, char __user *buffer,
84478 size_t buflen, loff_t *fpos)
84479 {
84480 - return __read_vmcore((__force char *) buffer, buflen, fpos, 1);
84481 + return __read_vmcore((__force_kernel char *) buffer, buflen, fpos, 1);
84482 }
84483
84484 /*
84485 diff --git a/fs/qnx6/qnx6.h b/fs/qnx6/qnx6.h
84486 index d3fb2b6..43a8140 100644
84487 --- a/fs/qnx6/qnx6.h
84488 +++ b/fs/qnx6/qnx6.h
84489 @@ -74,7 +74,7 @@ enum {
84490 BYTESEX_BE,
84491 };
84492
84493 -static inline __u64 fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
84494 +static inline __u64 __intentional_overflow(-1) fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
84495 {
84496 if (sbi->s_bytesex == BYTESEX_LE)
84497 return le64_to_cpu((__force __le64)n);
84498 @@ -90,7 +90,7 @@ static inline __fs64 cpu_to_fs64(struct qnx6_sb_info *sbi, __u64 n)
84499 return (__force __fs64)cpu_to_be64(n);
84500 }
84501
84502 -static inline __u32 fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
84503 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
84504 {
84505 if (sbi->s_bytesex == BYTESEX_LE)
84506 return le32_to_cpu((__force __le32)n);
84507 diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
84508 index bb2869f..d34ada8 100644
84509 --- a/fs/quota/netlink.c
84510 +++ b/fs/quota/netlink.c
84511 @@ -44,7 +44,7 @@ static struct genl_family quota_genl_family = {
84512 void quota_send_warning(struct kqid qid, dev_t dev,
84513 const char warntype)
84514 {
84515 - static atomic_t seq;
84516 + static atomic_unchecked_t seq;
84517 struct sk_buff *skb;
84518 void *msg_head;
84519 int ret;
84520 @@ -60,7 +60,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
84521 "VFS: Not enough memory to send quota warning.\n");
84522 return;
84523 }
84524 - msg_head = genlmsg_put(skb, 0, atomic_add_return(1, &seq),
84525 + msg_head = genlmsg_put(skb, 0, atomic_add_return_unchecked(1, &seq),
84526 &quota_genl_family, 0, QUOTA_NL_C_WARNING);
84527 if (!msg_head) {
84528 printk(KERN_ERR
84529 diff --git a/fs/read_write.c b/fs/read_write.c
84530 index 819ef3f..f07222d 100644
84531 --- a/fs/read_write.c
84532 +++ b/fs/read_write.c
84533 @@ -505,7 +505,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
84534
84535 old_fs = get_fs();
84536 set_fs(get_ds());
84537 - p = (__force const char __user *)buf;
84538 + p = (const char __force_user *)buf;
84539 if (count > MAX_RW_COUNT)
84540 count = MAX_RW_COUNT;
84541 ret = __vfs_write(file, p, count, pos);
84542 diff --git a/fs/readdir.c b/fs/readdir.c
84543 index ced6791..936687b 100644
84544 --- a/fs/readdir.c
84545 +++ b/fs/readdir.c
84546 @@ -18,6 +18,7 @@
84547 #include <linux/security.h>
84548 #include <linux/syscalls.h>
84549 #include <linux/unistd.h>
84550 +#include <linux/namei.h>
84551
84552 #include <asm/uaccess.h>
84553
84554 @@ -71,6 +72,7 @@ struct old_linux_dirent {
84555 struct readdir_callback {
84556 struct dir_context ctx;
84557 struct old_linux_dirent __user * dirent;
84558 + struct file * file;
84559 int result;
84560 };
84561
84562 @@ -89,6 +91,10 @@ static int fillonedir(struct dir_context *ctx, const char *name, int namlen,
84563 buf->result = -EOVERFLOW;
84564 return -EOVERFLOW;
84565 }
84566 +
84567 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84568 + return 0;
84569 +
84570 buf->result++;
84571 dirent = buf->dirent;
84572 if (!access_ok(VERIFY_WRITE, dirent,
84573 @@ -120,6 +126,7 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
84574 if (!f.file)
84575 return -EBADF;
84576
84577 + buf.file = f.file;
84578 error = iterate_dir(f.file, &buf.ctx);
84579 if (buf.result)
84580 error = buf.result;
84581 @@ -145,6 +152,7 @@ struct getdents_callback {
84582 struct dir_context ctx;
84583 struct linux_dirent __user * current_dir;
84584 struct linux_dirent __user * previous;
84585 + struct file * file;
84586 int count;
84587 int error;
84588 };
84589 @@ -167,6 +175,10 @@ static int filldir(struct dir_context *ctx, const char *name, int namlen,
84590 buf->error = -EOVERFLOW;
84591 return -EOVERFLOW;
84592 }
84593 +
84594 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84595 + return 0;
84596 +
84597 dirent = buf->previous;
84598 if (dirent) {
84599 if (__put_user(offset, &dirent->d_off))
84600 @@ -212,6 +224,7 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
84601 if (!f.file)
84602 return -EBADF;
84603
84604 + buf.file = f.file;
84605 error = iterate_dir(f.file, &buf.ctx);
84606 if (error >= 0)
84607 error = buf.error;
84608 @@ -230,6 +243,7 @@ struct getdents_callback64 {
84609 struct dir_context ctx;
84610 struct linux_dirent64 __user * current_dir;
84611 struct linux_dirent64 __user * previous;
84612 + struct file *file;
84613 int count;
84614 int error;
84615 };
84616 @@ -246,6 +260,10 @@ static int filldir64(struct dir_context *ctx, const char *name, int namlen,
84617 buf->error = -EINVAL; /* only used if we fail.. */
84618 if (reclen > buf->count)
84619 return -EINVAL;
84620 +
84621 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84622 + return 0;
84623 +
84624 dirent = buf->previous;
84625 if (dirent) {
84626 if (__put_user(offset, &dirent->d_off))
84627 @@ -293,6 +311,7 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
84628 if (!f.file)
84629 return -EBADF;
84630
84631 + buf.file = f.file;
84632 error = iterate_dir(f.file, &buf.ctx);
84633 if (error >= 0)
84634 error = buf.error;
84635 diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
84636 index 9c02d96..6562c10 100644
84637 --- a/fs/reiserfs/do_balan.c
84638 +++ b/fs/reiserfs/do_balan.c
84639 @@ -1887,7 +1887,7 @@ void do_balance(struct tree_balance *tb, struct item_head *ih,
84640 return;
84641 }
84642
84643 - atomic_inc(&fs_generation(tb->tb_sb));
84644 + atomic_inc_unchecked(&fs_generation(tb->tb_sb));
84645 do_balance_starts(tb);
84646
84647 /*
84648 diff --git a/fs/reiserfs/item_ops.c b/fs/reiserfs/item_ops.c
84649 index aca73dd..e3c558d 100644
84650 --- a/fs/reiserfs/item_ops.c
84651 +++ b/fs/reiserfs/item_ops.c
84652 @@ -724,18 +724,18 @@ static void errcatch_print_vi(struct virtual_item *vi)
84653 }
84654
84655 static struct item_operations errcatch_ops = {
84656 - errcatch_bytes_number,
84657 - errcatch_decrement_key,
84658 - errcatch_is_left_mergeable,
84659 - errcatch_print_item,
84660 - errcatch_check_item,
84661 + .bytes_number = errcatch_bytes_number,
84662 + .decrement_key = errcatch_decrement_key,
84663 + .is_left_mergeable = errcatch_is_left_mergeable,
84664 + .print_item = errcatch_print_item,
84665 + .check_item = errcatch_check_item,
84666
84667 - errcatch_create_vi,
84668 - errcatch_check_left,
84669 - errcatch_check_right,
84670 - errcatch_part_size,
84671 - errcatch_unit_num,
84672 - errcatch_print_vi
84673 + .create_vi = errcatch_create_vi,
84674 + .check_left = errcatch_check_left,
84675 + .check_right = errcatch_check_right,
84676 + .part_size = errcatch_part_size,
84677 + .unit_num = errcatch_unit_num,
84678 + .print_vi = errcatch_print_vi
84679 };
84680
84681 #if ! (TYPE_STAT_DATA == 0 && TYPE_INDIRECT == 1 && TYPE_DIRECT == 2 && TYPE_DIRENTRY == 3)
84682 diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
84683 index 621b9f3..af527fd 100644
84684 --- a/fs/reiserfs/procfs.c
84685 +++ b/fs/reiserfs/procfs.c
84686 @@ -114,7 +114,7 @@ static int show_super(struct seq_file *m, void *unused)
84687 "SMALL_TAILS " : "NO_TAILS ",
84688 replay_only(sb) ? "REPLAY_ONLY " : "",
84689 convert_reiserfs(sb) ? "CONV " : "",
84690 - atomic_read(&r->s_generation_counter),
84691 + atomic_read_unchecked(&r->s_generation_counter),
84692 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
84693 SF(s_do_balance), SF(s_unneeded_left_neighbor),
84694 SF(s_good_search_by_key_reada), SF(s_bmaps),
84695 diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
84696 index 2adcde1..7d27bc8 100644
84697 --- a/fs/reiserfs/reiserfs.h
84698 +++ b/fs/reiserfs/reiserfs.h
84699 @@ -580,7 +580,7 @@ struct reiserfs_sb_info {
84700 /* Comment? -Hans */
84701 wait_queue_head_t s_wait;
84702 /* increased by one every time the tree gets re-balanced */
84703 - atomic_t s_generation_counter;
84704 + atomic_unchecked_t s_generation_counter;
84705
84706 /* File system properties. Currently holds on-disk FS format */
84707 unsigned long s_properties;
84708 @@ -2300,7 +2300,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
84709 #define REISERFS_USER_MEM 1 /* user memory mode */
84710
84711 #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
84712 -#define get_generation(s) atomic_read (&fs_generation(s))
84713 +#define get_generation(s) atomic_read_unchecked (&fs_generation(s))
84714 #define FILESYSTEM_CHANGED_TB(tb) (get_generation((tb)->tb_sb) != (tb)->fs_gen)
84715 #define __fs_changed(gen,s) (gen != get_generation (s))
84716 #define fs_changed(gen,s) \
84717 diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
84718 index 4a62fe8..5dc2f5f 100644
84719 --- a/fs/reiserfs/super.c
84720 +++ b/fs/reiserfs/super.c
84721 @@ -1870,6 +1870,10 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
84722 sbi->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
84723 sbi->s_mount_opt |= (1 << REISERFS_ERROR_RO);
84724 sbi->s_mount_opt |= (1 << REISERFS_BARRIER_FLUSH);
84725 +#ifdef CONFIG_REISERFS_FS_XATTR
84726 + /* turn on user xattrs by default */
84727 + sbi->s_mount_opt |= (1 << REISERFS_XATTRS_USER);
84728 +#endif
84729 /* no preallocation minimum, be smart in reiserfs_file_write instead */
84730 sbi->s_alloc_options.preallocmin = 0;
84731 /* Preallocate by 16 blocks (17-1) at once */
84732 diff --git a/fs/select.c b/fs/select.c
84733 index 0155473..29d751f 100644
84734 --- a/fs/select.c
84735 +++ b/fs/select.c
84736 @@ -20,6 +20,7 @@
84737 #include <linux/export.h>
84738 #include <linux/slab.h>
84739 #include <linux/poll.h>
84740 +#include <linux/security.h>
84741 #include <linux/personality.h> /* for STICKY_TIMEOUTS */
84742 #include <linux/file.h>
84743 #include <linux/fdtable.h>
84744 @@ -880,6 +881,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
84745 struct poll_list *walk = head;
84746 unsigned long todo = nfds;
84747
84748 + gr_learn_resource(current, RLIMIT_NOFILE, nfds, 1);
84749 if (nfds > rlimit(RLIMIT_NOFILE))
84750 return -EINVAL;
84751
84752 diff --git a/fs/seq_file.c b/fs/seq_file.c
84753 index ce9e39f..5c5a436 100644
84754 --- a/fs/seq_file.c
84755 +++ b/fs/seq_file.c
84756 @@ -12,6 +12,8 @@
84757 #include <linux/slab.h>
84758 #include <linux/cred.h>
84759 #include <linux/mm.h>
84760 +#include <linux/sched.h>
84761 +#include <linux/grsecurity.h>
84762
84763 #include <asm/uaccess.h>
84764 #include <asm/page.h>
84765 @@ -29,9 +31,9 @@ static void *seq_buf_alloc(unsigned long size)
84766 * __GFP_NORETRY to avoid oom-killings with high-order allocations -
84767 * it's better to fall back to vmalloc() than to kill things.
84768 */
84769 - buf = kmalloc(size, GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN);
84770 + buf = kmalloc(size, GFP_KERNEL | GFP_USERCOPY | __GFP_NORETRY | __GFP_NOWARN);
84771 if (!buf && size > PAGE_SIZE)
84772 - buf = vmalloc(size);
84773 + buf = vmalloc_usercopy(size);
84774 return buf;
84775 }
84776
84777 @@ -68,6 +70,9 @@ int seq_open(struct file *file, const struct seq_operations *op)
84778 #ifdef CONFIG_USER_NS
84779 p->user_ns = file->f_cred->user_ns;
84780 #endif
84781 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84782 + p->exec_id = current->exec_id;
84783 +#endif
84784
84785 /*
84786 * Wrappers around seq_open(e.g. swaps_open) need to be
84787 @@ -90,6 +95,16 @@ int seq_open(struct file *file, const struct seq_operations *op)
84788 }
84789 EXPORT_SYMBOL(seq_open);
84790
84791 +
84792 +int seq_open_restrict(struct file *file, const struct seq_operations *op)
84793 +{
84794 + if (gr_proc_is_restricted())
84795 + return -EACCES;
84796 +
84797 + return seq_open(file, op);
84798 +}
84799 +EXPORT_SYMBOL(seq_open_restrict);
84800 +
84801 static int traverse(struct seq_file *m, loff_t offset)
84802 {
84803 loff_t pos = 0, index;
84804 @@ -161,7 +176,7 @@ Eoverflow:
84805 ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
84806 {
84807 struct seq_file *m = file->private_data;
84808 - size_t copied = 0;
84809 + ssize_t copied = 0;
84810 loff_t pos;
84811 size_t n;
84812 void *p;
84813 @@ -575,7 +590,7 @@ static void single_stop(struct seq_file *p, void *v)
84814 int single_open(struct file *file, int (*show)(struct seq_file *, void *),
84815 void *data)
84816 {
84817 - struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL);
84818 + seq_operations_no_const *op = kzalloc(sizeof(*op), GFP_KERNEL);
84819 int res = -ENOMEM;
84820
84821 if (op) {
84822 @@ -611,6 +626,17 @@ int single_open_size(struct file *file, int (*show)(struct seq_file *, void *),
84823 }
84824 EXPORT_SYMBOL(single_open_size);
84825
84826 +int single_open_restrict(struct file *file, int (*show)(struct seq_file *, void *),
84827 + void *data)
84828 +{
84829 + if (gr_proc_is_restricted())
84830 + return -EACCES;
84831 +
84832 + return single_open(file, show, data);
84833 +}
84834 +EXPORT_SYMBOL(single_open_restrict);
84835 +
84836 +
84837 int single_release(struct inode *inode, struct file *file)
84838 {
84839 const struct seq_operations *op = ((struct seq_file *)file->private_data)->op;
84840 diff --git a/fs/splice.c b/fs/splice.c
84841 index 5fc1e50..fcc355d 100644
84842 --- a/fs/splice.c
84843 +++ b/fs/splice.c
84844 @@ -192,7 +192,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84845 pipe_lock(pipe);
84846
84847 for (;;) {
84848 - if (!pipe->readers) {
84849 + if (!atomic_read(&pipe->readers)) {
84850 send_sig(SIGPIPE, current, 0);
84851 if (!ret)
84852 ret = -EPIPE;
84853 @@ -215,7 +215,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84854 page_nr++;
84855 ret += buf->len;
84856
84857 - if (pipe->files)
84858 + if (atomic_read(&pipe->files))
84859 do_wakeup = 1;
84860
84861 if (!--spd->nr_pages)
84862 @@ -246,9 +246,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84863 do_wakeup = 0;
84864 }
84865
84866 - pipe->waiting_writers++;
84867 + atomic_inc(&pipe->waiting_writers);
84868 pipe_wait(pipe);
84869 - pipe->waiting_writers--;
84870 + atomic_dec(&pipe->waiting_writers);
84871 }
84872
84873 pipe_unlock(pipe);
84874 @@ -579,7 +579,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
84875 old_fs = get_fs();
84876 set_fs(get_ds());
84877 /* The cast to a user pointer is valid due to the set_fs() */
84878 - res = vfs_readv(file, (const struct iovec __user *)vec, vlen, &pos);
84879 + res = vfs_readv(file, (const struct iovec __force_user *)vec, vlen, &pos);
84880 set_fs(old_fs);
84881
84882 return res;
84883 @@ -594,7 +594,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
84884 old_fs = get_fs();
84885 set_fs(get_ds());
84886 /* The cast to a user pointer is valid due to the set_fs() */
84887 - res = vfs_write(file, (__force const char __user *)buf, count, &pos);
84888 + res = vfs_write(file, (const char __force_user *)buf, count, &pos);
84889 set_fs(old_fs);
84890
84891 return res;
84892 @@ -647,7 +647,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
84893 goto err;
84894
84895 this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
84896 - vec[i].iov_base = (void __user *) page_address(page);
84897 + vec[i].iov_base = (void __force_user *) page_address(page);
84898 vec[i].iov_len = this_len;
84899 spd.pages[i] = page;
84900 spd.nr_pages++;
84901 @@ -786,7 +786,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
84902 ops->release(pipe, buf);
84903 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
84904 pipe->nrbufs--;
84905 - if (pipe->files)
84906 + if (atomic_read(&pipe->files))
84907 sd->need_wakeup = true;
84908 }
84909
84910 @@ -809,11 +809,18 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
84911 */
84912 static int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
84913 {
84914 + /*
84915 + * Check for signal early to make process killable when there are
84916 + * always buffers available
84917 + */
84918 + if (signal_pending(current))
84919 + return -ERESTARTSYS;
84920 +
84921 while (!pipe->nrbufs) {
84922 - if (!pipe->writers)
84923 + if (!atomic_read(&pipe->writers))
84924 return 0;
84925
84926 - if (!pipe->waiting_writers && sd->num_spliced)
84927 + if (!atomic_read(&pipe->waiting_writers) && sd->num_spliced)
84928 return 0;
84929
84930 if (sd->flags & SPLICE_F_NONBLOCK)
84931 @@ -884,6 +891,7 @@ ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, struct splice_desc *sd,
84932
84933 splice_from_pipe_begin(sd);
84934 do {
84935 + cond_resched();
84936 ret = splice_from_pipe_next(pipe, sd);
84937 if (ret > 0)
84938 ret = splice_from_pipe_feed(pipe, sd, actor);
84939 @@ -1028,7 +1036,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
84940 ops->release(pipe, buf);
84941 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
84942 pipe->nrbufs--;
84943 - if (pipe->files)
84944 + if (atomic_read(&pipe->files))
84945 sd.need_wakeup = true;
84946 } else {
84947 buf->offset += ret;
84948 @@ -1188,7 +1196,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
84949 * out of the pipe right after the splice_to_pipe(). So set
84950 * PIPE_READERS appropriately.
84951 */
84952 - pipe->readers = 1;
84953 + atomic_set(&pipe->readers, 1);
84954
84955 current->splice_pipe = pipe;
84956 }
84957 @@ -1495,6 +1503,7 @@ static int get_iovec_page_array(const struct iovec __user *iov,
84958
84959 partial[buffers].offset = off;
84960 partial[buffers].len = plen;
84961 + partial[buffers].private = 0;
84962
84963 off = 0;
84964 len -= plen;
84965 @@ -1726,9 +1735,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84966 ret = -ERESTARTSYS;
84967 break;
84968 }
84969 - if (!pipe->writers)
84970 + if (!atomic_read(&pipe->writers))
84971 break;
84972 - if (!pipe->waiting_writers) {
84973 + if (!atomic_read(&pipe->waiting_writers)) {
84974 if (flags & SPLICE_F_NONBLOCK) {
84975 ret = -EAGAIN;
84976 break;
84977 @@ -1760,7 +1769,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84978 pipe_lock(pipe);
84979
84980 while (pipe->nrbufs >= pipe->buffers) {
84981 - if (!pipe->readers) {
84982 + if (!atomic_read(&pipe->readers)) {
84983 send_sig(SIGPIPE, current, 0);
84984 ret = -EPIPE;
84985 break;
84986 @@ -1773,9 +1782,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84987 ret = -ERESTARTSYS;
84988 break;
84989 }
84990 - pipe->waiting_writers++;
84991 + atomic_inc(&pipe->waiting_writers);
84992 pipe_wait(pipe);
84993 - pipe->waiting_writers--;
84994 + atomic_dec(&pipe->waiting_writers);
84995 }
84996
84997 pipe_unlock(pipe);
84998 @@ -1811,14 +1820,14 @@ retry:
84999 pipe_double_lock(ipipe, opipe);
85000
85001 do {
85002 - if (!opipe->readers) {
85003 + if (!atomic_read(&opipe->readers)) {
85004 send_sig(SIGPIPE, current, 0);
85005 if (!ret)
85006 ret = -EPIPE;
85007 break;
85008 }
85009
85010 - if (!ipipe->nrbufs && !ipipe->writers)
85011 + if (!ipipe->nrbufs && !atomic_read(&ipipe->writers))
85012 break;
85013
85014 /*
85015 @@ -1915,7 +1924,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
85016 pipe_double_lock(ipipe, opipe);
85017
85018 do {
85019 - if (!opipe->readers) {
85020 + if (!atomic_read(&opipe->readers)) {
85021 send_sig(SIGPIPE, current, 0);
85022 if (!ret)
85023 ret = -EPIPE;
85024 @@ -1960,7 +1969,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
85025 * return EAGAIN if we have the potential of some data in the
85026 * future, otherwise just return 0
85027 */
85028 - if (!ret && ipipe->waiting_writers && (flags & SPLICE_F_NONBLOCK))
85029 + if (!ret && atomic_read(&ipipe->waiting_writers) && (flags & SPLICE_F_NONBLOCK))
85030 ret = -EAGAIN;
85031
85032 pipe_unlock(ipipe);
85033 diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
85034 index e5e0ddf..09598c4 100644
85035 --- a/fs/squashfs/xattr.c
85036 +++ b/fs/squashfs/xattr.c
85037 @@ -46,8 +46,8 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
85038 + msblk->xattr_table;
85039 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr);
85040 int count = squashfs_i(inode)->xattr_count;
85041 - size_t rest = buffer_size;
85042 - int err;
85043 + size_t used = 0;
85044 + ssize_t err;
85045
85046 /* check that the file system has xattrs */
85047 if (msblk->xattr_id_table == NULL)
85048 @@ -68,11 +68,11 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
85049 name_size = le16_to_cpu(entry.size);
85050 handler = squashfs_xattr_handler(le16_to_cpu(entry.type));
85051 if (handler)
85052 - prefix_size = handler->list(d, buffer, rest, NULL,
85053 + prefix_size = handler->list(d, buffer, buffer ? buffer_size - used : 0, NULL,
85054 name_size, handler->flags);
85055 if (prefix_size) {
85056 if (buffer) {
85057 - if (prefix_size + name_size + 1 > rest) {
85058 + if (prefix_size + name_size + 1 > buffer_size - used) {
85059 err = -ERANGE;
85060 goto failed;
85061 }
85062 @@ -86,7 +86,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
85063 buffer[name_size] = '\0';
85064 buffer += name_size + 1;
85065 }
85066 - rest -= prefix_size + name_size + 1;
85067 + used += prefix_size + name_size + 1;
85068 } else {
85069 /* no handler or insuffficient privileges, so skip */
85070 err = squashfs_read_metadata(sb, NULL, &start,
85071 @@ -107,7 +107,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
85072 if (err < 0)
85073 goto failed;
85074 }
85075 - err = buffer_size - rest;
85076 + err = used;
85077
85078 failed:
85079 return err;
85080 diff --git a/fs/stat.c b/fs/stat.c
85081 index cccc1aa..7fe8951 100644
85082 --- a/fs/stat.c
85083 +++ b/fs/stat.c
85084 @@ -28,8 +28,13 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
85085 stat->gid = inode->i_gid;
85086 stat->rdev = inode->i_rdev;
85087 stat->size = i_size_read(inode);
85088 - stat->atime = inode->i_atime;
85089 - stat->mtime = inode->i_mtime;
85090 + if (is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
85091 + stat->atime = inode->i_ctime;
85092 + stat->mtime = inode->i_ctime;
85093 + } else {
85094 + stat->atime = inode->i_atime;
85095 + stat->mtime = inode->i_mtime;
85096 + }
85097 stat->ctime = inode->i_ctime;
85098 stat->blksize = (1 << inode->i_blkbits);
85099 stat->blocks = inode->i_blocks;
85100 @@ -52,9 +57,16 @@ EXPORT_SYMBOL(generic_fillattr);
85101 int vfs_getattr_nosec(struct path *path, struct kstat *stat)
85102 {
85103 struct inode *inode = d_backing_inode(path->dentry);
85104 + int retval;
85105
85106 - if (inode->i_op->getattr)
85107 - return inode->i_op->getattr(path->mnt, path->dentry, stat);
85108 + if (inode->i_op->getattr) {
85109 + retval = inode->i_op->getattr(path->mnt, path->dentry, stat);
85110 + if (!retval && is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
85111 + stat->atime = stat->ctime;
85112 + stat->mtime = stat->ctime;
85113 + }
85114 + return retval;
85115 + }
85116
85117 generic_fillattr(inode, stat);
85118 return 0;
85119 diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
85120 index 94374e4..b5da3a1 100644
85121 --- a/fs/sysfs/dir.c
85122 +++ b/fs/sysfs/dir.c
85123 @@ -33,6 +33,10 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
85124 kfree(buf);
85125 }
85126
85127 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
85128 +extern int grsec_enable_sysfs_restrict;
85129 +#endif
85130 +
85131 /**
85132 * sysfs_create_dir_ns - create a directory for an object with a namespace tag
85133 * @kobj: object we're creating directory for
85134 @@ -41,9 +45,16 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
85135 int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
85136 {
85137 struct kernfs_node *parent, *kn;
85138 + const char *name;
85139 + umode_t mode = S_IRWXU | S_IRUGO | S_IXUGO;
85140 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
85141 + const char *parent_name;
85142 +#endif
85143
85144 BUG_ON(!kobj);
85145
85146 + name = kobject_name(kobj);
85147 +
85148 if (kobj->parent)
85149 parent = kobj->parent->sd;
85150 else
85151 @@ -52,11 +63,24 @@ int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
85152 if (!parent)
85153 return -ENOENT;
85154
85155 - kn = kernfs_create_dir_ns(parent, kobject_name(kobj),
85156 - S_IRWXU | S_IRUGO | S_IXUGO, kobj, ns);
85157 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
85158 + parent_name = parent->name;
85159 + mode = S_IRWXU;
85160 +
85161 + if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) ||
85162 + (!strcmp(parent_name, "devices") && !strcmp(name, "system")) ||
85163 + (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse") || !strcmp(name, "ecryptfs"))) ||
85164 + (!strcmp(parent_name, "system") && !strcmp(name, "cpu")))
85165 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
85166 + if (!grsec_enable_sysfs_restrict)
85167 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
85168 +#endif
85169 +
85170 + kn = kernfs_create_dir_ns(parent, name,
85171 + mode, kobj, ns);
85172 if (IS_ERR(kn)) {
85173 if (PTR_ERR(kn) == -EEXIST)
85174 - sysfs_warn_dup(parent, kobject_name(kobj));
85175 + sysfs_warn_dup(parent, name);
85176 return PTR_ERR(kn);
85177 }
85178
85179 diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c
85180 index 590ad92..02fa1dc 100644
85181 --- a/fs/sysv/inode.c
85182 +++ b/fs/sysv/inode.c
85183 @@ -162,15 +162,8 @@ void sysv_set_inode(struct inode *inode, dev_t rdev)
85184 inode->i_fop = &sysv_dir_operations;
85185 inode->i_mapping->a_ops = &sysv_aops;
85186 } else if (S_ISLNK(inode->i_mode)) {
85187 - if (inode->i_blocks) {
85188 - inode->i_op = &sysv_symlink_inode_operations;
85189 - inode->i_mapping->a_ops = &sysv_aops;
85190 - } else {
85191 - inode->i_op = &simple_symlink_inode_operations;
85192 - inode->i_link = (char *)SYSV_I(inode)->i_data;
85193 - nd_terminate_link(inode->i_link, inode->i_size,
85194 - sizeof(SYSV_I(inode)->i_data) - 1);
85195 - }
85196 + inode->i_op = &sysv_symlink_inode_operations;
85197 + inode->i_mapping->a_ops = &sysv_aops;
85198 } else
85199 init_special_inode(inode, inode->i_mode, rdev);
85200 }
85201 diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
85202 index 6c21228..9afd5fe 100644
85203 --- a/fs/sysv/sysv.h
85204 +++ b/fs/sysv/sysv.h
85205 @@ -187,7 +187,7 @@ static inline u32 PDP_swab(u32 x)
85206 #endif
85207 }
85208
85209 -static inline __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
85210 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
85211 {
85212 if (sbi->s_bytesex == BYTESEX_PDP)
85213 return PDP_swab((__force __u32)n);
85214 diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
85215 index cbc8d5d..56d2600 100644
85216 --- a/fs/tracefs/inode.c
85217 +++ b/fs/tracefs/inode.c
85218 @@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations = {
85219 static struct tracefs_dir_ops {
85220 int (*mkdir)(const char *name);
85221 int (*rmdir)(const char *name);
85222 -} tracefs_ops;
85223 +} __no_const tracefs_ops __read_only;
85224
85225 static char *get_dname(struct dentry *dentry)
85226 {
85227 @@ -490,8 +490,10 @@ struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *pare
85228 if (!dentry)
85229 return NULL;
85230
85231 - tracefs_ops.mkdir = mkdir;
85232 - tracefs_ops.rmdir = rmdir;
85233 + pax_open_kernel();
85234 + *(void **)&tracefs_ops.mkdir = mkdir;
85235 + *(void **)&tracefs_ops.rmdir = rmdir;
85236 + pax_close_kernel();
85237
85238 return dentry;
85239 }
85240 diff --git a/fs/udf/misc.c b/fs/udf/misc.c
85241 index 71d1c25..084e2ad 100644
85242 --- a/fs/udf/misc.c
85243 +++ b/fs/udf/misc.c
85244 @@ -288,7 +288,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
85245
85246 u8 udf_tag_checksum(const struct tag *t)
85247 {
85248 - u8 *data = (u8 *)t;
85249 + const u8 *data = (const u8 *)t;
85250 u8 checksum = 0;
85251 int i;
85252 for (i = 0; i < sizeof(struct tag); ++i)
85253 diff --git a/fs/ufs/swab.h b/fs/ufs/swab.h
85254 index 8d974c4..b82f6ec 100644
85255 --- a/fs/ufs/swab.h
85256 +++ b/fs/ufs/swab.h
85257 @@ -22,7 +22,7 @@ enum {
85258 BYTESEX_BE
85259 };
85260
85261 -static inline u64
85262 +static inline u64 __intentional_overflow(-1)
85263 fs64_to_cpu(struct super_block *sbp, __fs64 n)
85264 {
85265 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
85266 @@ -40,7 +40,7 @@ cpu_to_fs64(struct super_block *sbp, u64 n)
85267 return (__force __fs64)cpu_to_be64(n);
85268 }
85269
85270 -static inline u32
85271 +static inline u32 __intentional_overflow(-1)
85272 fs32_to_cpu(struct super_block *sbp, __fs32 n)
85273 {
85274 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
85275 diff --git a/fs/utimes.c b/fs/utimes.c
85276 index aa138d6..5f3a811 100644
85277 --- a/fs/utimes.c
85278 +++ b/fs/utimes.c
85279 @@ -1,6 +1,7 @@
85280 #include <linux/compiler.h>
85281 #include <linux/file.h>
85282 #include <linux/fs.h>
85283 +#include <linux/security.h>
85284 #include <linux/linkage.h>
85285 #include <linux/mount.h>
85286 #include <linux/namei.h>
85287 @@ -103,6 +104,12 @@ static int utimes_common(struct path *path, struct timespec *times)
85288 }
85289 }
85290 retry_deleg:
85291 +
85292 + if (!gr_acl_handle_utime(path->dentry, path->mnt)) {
85293 + error = -EACCES;
85294 + goto mnt_drop_write_and_out;
85295 + }
85296 +
85297 mutex_lock(&inode->i_mutex);
85298 error = notify_change(path->dentry, &newattrs, &delegated_inode);
85299 mutex_unlock(&inode->i_mutex);
85300 diff --git a/fs/xattr.c b/fs/xattr.c
85301 index 072fee1..9e497b0 100644
85302 --- a/fs/xattr.c
85303 +++ b/fs/xattr.c
85304 @@ -227,6 +227,27 @@ int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name,
85305 return rc;
85306 }
85307
85308 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
85309 +ssize_t
85310 +pax_getxattr(struct dentry *dentry, void *value, size_t size)
85311 +{
85312 + struct inode *inode = dentry->d_inode;
85313 + ssize_t error;
85314 +
85315 + error = inode_permission(inode, MAY_EXEC);
85316 + if (error)
85317 + return error;
85318 +
85319 + if (inode->i_op->getxattr)
85320 + error = inode->i_op->getxattr(dentry, XATTR_NAME_PAX_FLAGS, value, size);
85321 + else
85322 + error = -EOPNOTSUPP;
85323 +
85324 + return error;
85325 +}
85326 +EXPORT_SYMBOL(pax_getxattr);
85327 +#endif
85328 +
85329 ssize_t
85330 vfs_getxattr(struct dentry *dentry, const char *name, void *value, size_t size)
85331 {
85332 @@ -319,7 +340,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
85333 * Extended attribute SET operations
85334 */
85335 static long
85336 -setxattr(struct dentry *d, const char __user *name, const void __user *value,
85337 +setxattr(struct path *path, const char __user *name, const void __user *value,
85338 size_t size, int flags)
85339 {
85340 int error;
85341 @@ -355,7 +376,12 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
85342 posix_acl_fix_xattr_from_user(kvalue, size);
85343 }
85344
85345 - error = vfs_setxattr(d, kname, kvalue, size, flags);
85346 + if (!gr_acl_handle_setxattr(path->dentry, path->mnt)) {
85347 + error = -EACCES;
85348 + goto out;
85349 + }
85350 +
85351 + error = vfs_setxattr(path->dentry, kname, kvalue, size, flags);
85352 out:
85353 if (vvalue)
85354 vfree(vvalue);
85355 @@ -376,7 +402,7 @@ retry:
85356 return error;
85357 error = mnt_want_write(path.mnt);
85358 if (!error) {
85359 - error = setxattr(path.dentry, name, value, size, flags);
85360 + error = setxattr(&path, name, value, size, flags);
85361 mnt_drop_write(path.mnt);
85362 }
85363 path_put(&path);
85364 @@ -412,7 +438,7 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
85365 audit_file(f.file);
85366 error = mnt_want_write_file(f.file);
85367 if (!error) {
85368 - error = setxattr(f.file->f_path.dentry, name, value, size, flags);
85369 + error = setxattr(&f.file->f_path, name, value, size, flags);
85370 mnt_drop_write_file(f.file);
85371 }
85372 fdput(f);
85373 @@ -598,7 +624,7 @@ SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
85374 * Extended attribute REMOVE operations
85375 */
85376 static long
85377 -removexattr(struct dentry *d, const char __user *name)
85378 +removexattr(struct path *path, const char __user *name)
85379 {
85380 int error;
85381 char kname[XATTR_NAME_MAX + 1];
85382 @@ -609,7 +635,10 @@ removexattr(struct dentry *d, const char __user *name)
85383 if (error < 0)
85384 return error;
85385
85386 - return vfs_removexattr(d, kname);
85387 + if (!gr_acl_handle_removexattr(path->dentry, path->mnt))
85388 + return -EACCES;
85389 +
85390 + return vfs_removexattr(path->dentry, kname);
85391 }
85392
85393 static int path_removexattr(const char __user *pathname,
85394 @@ -623,7 +652,7 @@ retry:
85395 return error;
85396 error = mnt_want_write(path.mnt);
85397 if (!error) {
85398 - error = removexattr(path.dentry, name);
85399 + error = removexattr(&path, name);
85400 mnt_drop_write(path.mnt);
85401 }
85402 path_put(&path);
85403 @@ -649,14 +678,16 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname,
85404 SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
85405 {
85406 struct fd f = fdget(fd);
85407 + struct path *path;
85408 int error = -EBADF;
85409
85410 if (!f.file)
85411 return error;
85412 + path = &f.file->f_path;
85413 audit_file(f.file);
85414 error = mnt_want_write_file(f.file);
85415 if (!error) {
85416 - error = removexattr(f.file->f_path.dentry, name);
85417 + error = removexattr(path, name);
85418 mnt_drop_write_file(f.file);
85419 }
85420 fdput(f);
85421 diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
85422 index 63e05b6..249b043 100644
85423 --- a/fs/xfs/libxfs/xfs_bmap.c
85424 +++ b/fs/xfs/libxfs/xfs_bmap.c
85425 @@ -554,7 +554,7 @@ xfs_bmap_validate_ret(
85426
85427 #else
85428 #define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
85429 -#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
85430 +#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) do { } while (0)
85431 #endif /* DEBUG */
85432
85433 /*
85434 diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
85435 index 098cd78..724d3f8 100644
85436 --- a/fs/xfs/xfs_dir2_readdir.c
85437 +++ b/fs/xfs/xfs_dir2_readdir.c
85438 @@ -140,7 +140,12 @@ xfs_dir2_sf_getdents(
85439 ino = dp->d_ops->sf_get_ino(sfp, sfep);
85440 filetype = dp->d_ops->sf_get_ftype(sfep);
85441 ctx->pos = off & 0x7fffffff;
85442 - if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
85443 + if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
85444 + char name[sfep->namelen];
85445 + memcpy(name, sfep->name, sfep->namelen);
85446 + if (!dir_emit(ctx, name, sfep->namelen, ino, xfs_dir3_get_dtype(dp->i_mount, filetype)))
85447 + return 0;
85448 + } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
85449 xfs_dir3_get_dtype(dp->i_mount, filetype)))
85450 return 0;
85451 sfep = dp->d_ops->sf_nextentry(sfp, sfep);
85452 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
85453 index ea7d85a..6d4b24b 100644
85454 --- a/fs/xfs/xfs_ioctl.c
85455 +++ b/fs/xfs/xfs_ioctl.c
85456 @@ -120,7 +120,7 @@ xfs_find_handle(
85457 }
85458
85459 error = -EFAULT;
85460 - if (copy_to_user(hreq->ohandle, &handle, hsize) ||
85461 + if (hsize > sizeof handle || copy_to_user(hreq->ohandle, &handle, hsize) ||
85462 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
85463 goto out_put;
85464
85465 diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
85466 index 85f883d..db6eecc 100644
85467 --- a/fs/xfs/xfs_linux.h
85468 +++ b/fs/xfs/xfs_linux.h
85469 @@ -211,7 +211,7 @@ static inline kgid_t xfs_gid_to_kgid(__uint32_t gid)
85470 * of the compiler which do not like us using do_div in the middle
85471 * of large functions.
85472 */
85473 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
85474 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
85475 {
85476 __u32 mod;
85477
85478 @@ -267,7 +267,7 @@ static inline __u32 xfs_do_mod(void *a, __u32 b, int n)
85479 return 0;
85480 }
85481 #else
85482 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
85483 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
85484 {
85485 __u32 mod;
85486
85487 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
85488 new file mode 100644
85489 index 0000000..31f8fe4
85490 --- /dev/null
85491 +++ b/grsecurity/Kconfig
85492 @@ -0,0 +1,1182 @@
85493 +#
85494 +# grecurity configuration
85495 +#
85496 +menu "Memory Protections"
85497 +depends on GRKERNSEC
85498 +
85499 +config GRKERNSEC_KMEM
85500 + bool "Deny reading/writing to /dev/kmem, /dev/mem, and /dev/port"
85501 + default y if GRKERNSEC_CONFIG_AUTO
85502 + select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
85503 + help
85504 + If you say Y here, /dev/kmem and /dev/mem won't be allowed to
85505 + be written to or read from to modify or leak the contents of the running
85506 + kernel. /dev/port will also not be allowed to be opened, writing to
85507 + /dev/cpu/*/msr will be prevented, and support for kexec will be removed.
85508 + If you have module support disabled, enabling this will close up several
85509 + ways that are currently used to insert malicious code into the running
85510 + kernel.
85511 +
85512 + Even with this feature enabled, we still highly recommend that
85513 + you use the RBAC system, as it is still possible for an attacker to
85514 + modify the running kernel through other more obscure methods.
85515 +
85516 + It is highly recommended that you say Y here if you meet all the
85517 + conditions above.
85518 +
85519 +config GRKERNSEC_VM86
85520 + bool "Restrict VM86 mode"
85521 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85522 + depends on X86_32
85523 +
85524 + help
85525 + If you say Y here, only processes with CAP_SYS_RAWIO will be able to
85526 + make use of a special execution mode on 32bit x86 processors called
85527 + Virtual 8086 (VM86) mode. XFree86 may need vm86 mode for certain
85528 + video cards and will still work with this option enabled. The purpose
85529 + of the option is to prevent exploitation of emulation errors in
85530 + virtualization of vm86 mode like the one discovered in VMWare in 2009.
85531 + Nearly all users should be able to enable this option.
85532 +
85533 +config GRKERNSEC_IO
85534 + bool "Disable privileged I/O"
85535 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85536 + depends on X86
85537 + select RTC_CLASS
85538 + select RTC_INTF_DEV
85539 + select RTC_DRV_CMOS
85540 +
85541 + help
85542 + If you say Y here, all ioperm and iopl calls will return an error.
85543 + Ioperm and iopl can be used to modify the running kernel.
85544 + Unfortunately, some programs need this access to operate properly,
85545 + the most notable of which are XFree86 and hwclock. hwclock can be
85546 + remedied by having RTC support in the kernel, so real-time
85547 + clock support is enabled if this option is enabled, to ensure
85548 + that hwclock operates correctly. If hwclock still does not work,
85549 + either update udev or symlink /dev/rtc to /dev/rtc0.
85550 +
85551 + If you're using XFree86 or a version of Xorg from 2012 or earlier,
85552 + you may not be able to boot into a graphical environment with this
85553 + option enabled. In this case, you should use the RBAC system instead.
85554 +
85555 +config GRKERNSEC_BPF_HARDEN
85556 + bool "Harden BPF interpreter"
85557 + default y if GRKERNSEC_CONFIG_AUTO
85558 + help
85559 + Unlike previous versions of grsecurity that hardened both the BPF
85560 + interpreted code against corruption at rest as well as the JIT code
85561 + against JIT-spray attacks and attacker-controlled immediate values
85562 + for ROP, this feature will enforce disabling of the new eBPF JIT engine
85563 + and will ensure the interpreted code is read-only at rest. This feature
85564 + may be removed at a later time when eBPF stabilizes to entirely revert
85565 + back to the more secure pre-3.16 BPF interpreter/JIT.
85566 +
85567 + If you're using KERNEXEC, it's recommended that you enable this option
85568 + to supplement the hardening of the kernel.
85569 +
85570 +config GRKERNSEC_PERF_HARDEN
85571 + bool "Disable unprivileged PERF_EVENTS usage by default"
85572 + default y if GRKERNSEC_CONFIG_AUTO
85573 + depends on PERF_EVENTS
85574 + help
85575 + If you say Y here, the range of acceptable values for the
85576 + /proc/sys/kernel/perf_event_paranoid sysctl will be expanded to allow and
85577 + default to a new value: 3. When the sysctl is set to this value, no
85578 + unprivileged use of the PERF_EVENTS syscall interface will be permitted.
85579 +
85580 + Though PERF_EVENTS can be used legitimately for performance monitoring
85581 + and low-level application profiling, it is forced on regardless of
85582 + configuration, has been at fault for several vulnerabilities, and
85583 + creates new opportunities for side channels and other information leaks.
85584 +
85585 + This feature puts PERF_EVENTS into a secure default state and permits
85586 + the administrator to change out of it temporarily if unprivileged
85587 + application profiling is needed.
85588 +
85589 +config GRKERNSEC_RAND_THREADSTACK
85590 + bool "Insert random gaps between thread stacks"
85591 + default y if GRKERNSEC_CONFIG_AUTO
85592 + depends on PAX_RANDMMAP && !PPC
85593 + help
85594 + If you say Y here, a random-sized gap will be enforced between allocated
85595 + thread stacks. Glibc's NPTL and other threading libraries that
85596 + pass MAP_STACK to the kernel for thread stack allocation are supported.
85597 + The implementation currently provides 8 bits of entropy for the gap.
85598 +
85599 + Many distributions do not compile threaded remote services with the
85600 + -fstack-check argument to GCC, causing the variable-sized stack-based
85601 + allocator, alloca(), to not probe the stack on allocation. This
85602 + permits an unbounded alloca() to skip over any guard page and potentially
85603 + modify another thread's stack reliably. An enforced random gap
85604 + reduces the reliability of such an attack and increases the chance
85605 + that such a read/write to another thread's stack instead lands in
85606 + an unmapped area, causing a crash and triggering grsecurity's
85607 + anti-bruteforcing logic.
85608 +
85609 +config GRKERNSEC_PROC_MEMMAP
85610 + bool "Harden ASLR against information leaks and entropy reduction"
85611 + default y if (GRKERNSEC_CONFIG_AUTO || PAX_NOEXEC || PAX_ASLR)
85612 + depends on PAX_NOEXEC || PAX_ASLR
85613 + help
85614 + If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will
85615 + give no information about the addresses of its mappings if
85616 + PaX features that rely on random addresses are enabled on the task.
85617 + In addition to sanitizing this information and disabling other
85618 + dangerous sources of information, this option causes reads of sensitive
85619 + /proc/<pid> entries where the file descriptor was opened in a different
85620 + task than the one performing the read. Such attempts are logged.
85621 + This option also limits argv/env strings for suid/sgid binaries
85622 + to 512KB to prevent a complete exhaustion of the stack entropy provided
85623 + by ASLR. Finally, it places an 8MB stack resource limit on suid/sgid
85624 + binaries to prevent alternative mmap layouts from being abused.
85625 +
85626 + If you use PaX it is essential that you say Y here as it closes up
85627 + several holes that make full ASLR useless locally.
85628 +
85629 +
85630 +config GRKERNSEC_KSTACKOVERFLOW
85631 + bool "Prevent kernel stack overflows"
85632 + default y if GRKERNSEC_CONFIG_AUTO
85633 + depends on !IA64 && 64BIT
85634 + help
85635 + If you say Y here, the kernel's process stacks will be allocated
85636 + with vmalloc instead of the kernel's default allocator. This
85637 + introduces guard pages that in combination with the alloca checking
85638 + of the STACKLEAK feature prevents all forms of kernel process stack
85639 + overflow abuse. Note that this is different from kernel stack
85640 + buffer overflows.
85641 +
85642 +config GRKERNSEC_BRUTE
85643 + bool "Deter exploit bruteforcing"
85644 + default y if GRKERNSEC_CONFIG_AUTO
85645 + help
85646 + If you say Y here, attempts to bruteforce exploits against forking
85647 + daemons such as apache or sshd, as well as against suid/sgid binaries
85648 + will be deterred. When a child of a forking daemon is killed by PaX
85649 + or crashes due to an illegal instruction or other suspicious signal,
85650 + the parent process will be delayed 30 seconds upon every subsequent
85651 + fork until the administrator is able to assess the situation and
85652 + restart the daemon.
85653 + In the suid/sgid case, the attempt is logged, the user has all their
85654 + existing instances of the suid/sgid binary terminated and will
85655 + be unable to execute any suid/sgid binaries for 15 minutes.
85656 +
85657 + It is recommended that you also enable signal logging in the auditing
85658 + section so that logs are generated when a process triggers a suspicious
85659 + signal.
85660 + If the sysctl option is enabled, a sysctl option with name
85661 + "deter_bruteforce" is created.
85662 +
85663 +config GRKERNSEC_MODHARDEN
85664 + bool "Harden module auto-loading"
85665 + default y if GRKERNSEC_CONFIG_AUTO
85666 + depends on MODULES
85667 + help
85668 + If you say Y here, module auto-loading in response to use of some
85669 + feature implemented by an unloaded module will be restricted to
85670 + root users. Enabling this option helps defend against attacks
85671 + by unprivileged users who abuse the auto-loading behavior to
85672 + cause a vulnerable module to load that is then exploited.
85673 +
85674 + If this option prevents a legitimate use of auto-loading for a
85675 + non-root user, the administrator can execute modprobe manually
85676 + with the exact name of the module mentioned in the alert log.
85677 + Alternatively, the administrator can add the module to the list
85678 + of modules loaded at boot by modifying init scripts.
85679 +
85680 + Modification of init scripts will most likely be needed on
85681 + Ubuntu servers with encrypted home directory support enabled,
85682 + as the first non-root user logging in will cause the ecb(aes),
85683 + ecb(aes)-all, cbc(aes), and cbc(aes)-all modules to be loaded.
85684 +
85685 +config GRKERNSEC_HIDESYM
85686 + bool "Hide kernel symbols"
85687 + default y if GRKERNSEC_CONFIG_AUTO
85688 + select PAX_USERCOPY_SLABS
85689 + help
85690 + If you say Y here, getting information on loaded modules, and
85691 + displaying all kernel symbols through a syscall will be restricted
85692 + to users with CAP_SYS_MODULE. For software compatibility reasons,
85693 + /proc/kallsyms will be restricted to the root user. The RBAC
85694 + system can hide that entry even from root.
85695 +
85696 + This option also prevents leaking of kernel addresses through
85697 + several /proc entries.
85698 +
85699 + Note that this option is only effective provided the following
85700 + conditions are met:
85701 + 1) The kernel using grsecurity is not precompiled by some distribution
85702 + 2) You have also enabled GRKERNSEC_DMESG
85703 + 3) You are using the RBAC system and hiding other files such as your
85704 + kernel image and System.map. Alternatively, enabling this option
85705 + causes the permissions on /boot, /lib/modules, and the kernel
85706 + source directory to change at compile time to prevent
85707 + reading by non-root users.
85708 + If the above conditions are met, this option will aid in providing a
85709 + useful protection against local kernel exploitation of overflows
85710 + and arbitrary read/write vulnerabilities.
85711 +
85712 + It is highly recommended that you enable GRKERNSEC_PERF_HARDEN
85713 + in addition to this feature.
85714 +
85715 +config GRKERNSEC_RANDSTRUCT
85716 + bool "Randomize layout of sensitive kernel structures"
85717 + default y if GRKERNSEC_CONFIG_AUTO
85718 + select GRKERNSEC_HIDESYM
85719 + select MODVERSIONS if MODULES
85720 + help
85721 + If you say Y here, the layouts of a number of sensitive kernel
85722 + structures (task, fs, cred, etc) and all structures composed entirely
85723 + of function pointers (aka "ops" structs) will be randomized at compile-time.
85724 + This can introduce the requirement of an additional infoleak
85725 + vulnerability for exploits targeting these structure types.
85726 +
85727 + Enabling this feature will introduce some performance impact, slightly
85728 + increase memory usage, and prevent the use of forensic tools like
85729 + Volatility against the system (unless the kernel source tree isn't
85730 + cleaned after kernel installation).
85731 +
85732 + The seed used for compilation is located at tools/gcc/randomize_layout_seed.h.
85733 + It remains after a make clean to allow for external modules to be compiled
85734 + with the existing seed and will be removed by a make mrproper or
85735 + make distclean.
85736 +
85737 + Note that the implementation requires gcc 4.6.4. or newer. You may need
85738 + to install the supporting headers explicitly in addition to the normal
85739 + gcc package.
85740 +
85741 +config GRKERNSEC_RANDSTRUCT_PERFORMANCE
85742 + bool "Use cacheline-aware structure randomization"
85743 + depends on GRKERNSEC_RANDSTRUCT
85744 + default y if GRKERNSEC_CONFIG_PRIORITY_PERF
85745 + help
85746 + If you say Y here, the RANDSTRUCT randomization will make a best effort
85747 + at restricting randomization to cacheline-sized groups of elements. It
85748 + will further not randomize bitfields in structures. This reduces the
85749 + performance hit of RANDSTRUCT at the cost of weakened randomization.
85750 +
85751 +config GRKERNSEC_KERN_LOCKOUT
85752 + bool "Active kernel exploit response"
85753 + default y if GRKERNSEC_CONFIG_AUTO
85754 + depends on X86 || ARM || PPC || SPARC
85755 + help
85756 + If you say Y here, when a PaX alert is triggered due to suspicious
85757 + activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
85758 + or an OOPS occurs due to bad memory accesses, instead of just
85759 + terminating the offending process (and potentially allowing
85760 + a subsequent exploit from the same user), we will take one of two
85761 + actions:
85762 + If the user was root, we will panic the system
85763 + If the user was non-root, we will log the attempt, terminate
85764 + all processes owned by the user, then prevent them from creating
85765 + any new processes until the system is restarted
85766 + This deters repeated kernel exploitation/bruteforcing attempts
85767 + and is useful for later forensics.
85768 +
85769 +config GRKERNSEC_OLD_ARM_USERLAND
85770 + bool "Old ARM userland compatibility"
85771 + depends on ARM && (CPU_V6 || CPU_V6K || CPU_V7)
85772 + help
85773 + If you say Y here, stubs of executable code to perform such operations
85774 + as "compare-exchange" will be placed at fixed locations in the ARM vector
85775 + table. This is unfortunately needed for old ARM userland meant to run
85776 + across a wide range of processors. Without this option enabled,
85777 + the get_tls and data memory barrier stubs will be emulated by the kernel,
85778 + which is enough for Linaro userlands or other userlands designed for v6
85779 + and newer ARM CPUs. It's recommended that you try without this option enabled
85780 + first, and only enable it if your userland does not boot (it will likely fail
85781 + at init time).
85782 +
85783 +endmenu
85784 +menu "Role Based Access Control Options"
85785 +depends on GRKERNSEC
85786 +
85787 +config GRKERNSEC_RBAC_DEBUG
85788 + bool
85789 +
85790 +config GRKERNSEC_NO_RBAC
85791 + bool "Disable RBAC system"
85792 + help
85793 + If you say Y here, the /dev/grsec device will be removed from the kernel,
85794 + preventing the RBAC system from being enabled. You should only say Y
85795 + here if you have no intention of using the RBAC system, so as to prevent
85796 + an attacker with root access from misusing the RBAC system to hide files
85797 + and processes when loadable module support and /dev/[k]mem have been
85798 + locked down.
85799 +
85800 +config GRKERNSEC_ACL_HIDEKERN
85801 + bool "Hide kernel processes"
85802 + help
85803 + If you say Y here, all kernel threads will be hidden to all
85804 + processes but those whose subject has the "view hidden processes"
85805 + flag.
85806 +
85807 +config GRKERNSEC_ACL_MAXTRIES
85808 + int "Maximum tries before password lockout"
85809 + default 3
85810 + help
85811 + This option enforces the maximum number of times a user can attempt
85812 + to authorize themselves with the grsecurity RBAC system before being
85813 + denied the ability to attempt authorization again for a specified time.
85814 + The lower the number, the harder it will be to brute-force a password.
85815 +
85816 +config GRKERNSEC_ACL_TIMEOUT
85817 + int "Time to wait after max password tries, in seconds"
85818 + default 30
85819 + help
85820 + This option specifies the time the user must wait after attempting to
85821 + authorize to the RBAC system with the maximum number of invalid
85822 + passwords. The higher the number, the harder it will be to brute-force
85823 + a password.
85824 +
85825 +endmenu
85826 +menu "Filesystem Protections"
85827 +depends on GRKERNSEC
85828 +
85829 +config GRKERNSEC_PROC
85830 + bool "Proc restrictions"
85831 + default y if GRKERNSEC_CONFIG_AUTO
85832 + help
85833 + If you say Y here, the permissions of the /proc filesystem
85834 + will be altered to enhance system security and privacy. You MUST
85835 + choose either a user only restriction or a user and group restriction.
85836 + Depending upon the option you choose, you can either restrict users to
85837 + see only the processes they themselves run, or choose a group that can
85838 + view all processes and files normally restricted to root if you choose
85839 + the "restrict to user only" option. NOTE: If you're running identd or
85840 + ntpd as a non-root user, you will have to run it as the group you
85841 + specify here.
85842 +
85843 +config GRKERNSEC_PROC_USER
85844 + bool "Restrict /proc to user only"
85845 + depends on GRKERNSEC_PROC
85846 + help
85847 + If you say Y here, non-root users will only be able to view their own
85848 + processes, and restricts them from viewing network-related information,
85849 + and viewing kernel symbol and module information.
85850 +
85851 +config GRKERNSEC_PROC_USERGROUP
85852 + bool "Allow special group"
85853 + default y if GRKERNSEC_CONFIG_AUTO
85854 + depends on GRKERNSEC_PROC && !GRKERNSEC_PROC_USER
85855 + help
85856 + If you say Y here, you will be able to select a group that will be
85857 + able to view all processes and network-related information. If you've
85858 + enabled GRKERNSEC_HIDESYM, kernel and symbol information may still
85859 + remain hidden. This option is useful if you want to run identd as
85860 + a non-root user. The group you select may also be chosen at boot time
85861 + via "grsec_proc_gid=" on the kernel commandline.
85862 +
85863 +config GRKERNSEC_PROC_GID
85864 + int "GID for special group"
85865 + depends on GRKERNSEC_PROC_USERGROUP
85866 + default 1001
85867 +
85868 +config GRKERNSEC_PROC_ADD
85869 + bool "Additional restrictions"
85870 + default y if GRKERNSEC_CONFIG_AUTO
85871 + depends on GRKERNSEC_PROC_USER || GRKERNSEC_PROC_USERGROUP
85872 + help
85873 + If you say Y here, additional restrictions will be placed on
85874 + /proc that keep normal users from viewing device information and
85875 + slabinfo information that could be useful for exploits.
85876 +
85877 +config GRKERNSEC_LINK
85878 + bool "Linking restrictions"
85879 + default y if GRKERNSEC_CONFIG_AUTO
85880 + help
85881 + If you say Y here, /tmp race exploits will be prevented, since users
85882 + will no longer be able to follow symlinks owned by other users in
85883 + world-writable +t directories (e.g. /tmp), unless the owner of the
85884 + symlink is the owner of the directory. users will also not be
85885 + able to hardlink to files they do not own. If the sysctl option is
85886 + enabled, a sysctl option with name "linking_restrictions" is created.
85887 +
85888 +config GRKERNSEC_SYMLINKOWN
85889 + bool "Kernel-enforced SymlinksIfOwnerMatch"
85890 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
85891 + help
85892 + Apache's SymlinksIfOwnerMatch option has an inherent race condition
85893 + that prevents it from being used as a security feature. As Apache
85894 + verifies the symlink by performing a stat() against the target of
85895 + the symlink before it is followed, an attacker can setup a symlink
85896 + to point to a same-owned file, then replace the symlink with one
85897 + that targets another user's file just after Apache "validates" the
85898 + symlink -- a classic TOCTOU race. If you say Y here, a complete,
85899 + race-free replacement for Apache's "SymlinksIfOwnerMatch" option
85900 + will be in place for the group you specify. If the sysctl option
85901 + is enabled, a sysctl option with name "enforce_symlinksifowner" is
85902 + created.
85903 +
85904 +config GRKERNSEC_SYMLINKOWN_GID
85905 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
85906 + depends on GRKERNSEC_SYMLINKOWN
85907 + default 1006
85908 + help
85909 + Setting this GID determines what group kernel-enforced
85910 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
85911 + is enabled, a sysctl option with name "symlinkown_gid" is created.
85912 +
85913 +config GRKERNSEC_FIFO
85914 + bool "FIFO restrictions"
85915 + default y if GRKERNSEC_CONFIG_AUTO
85916 + help
85917 + If you say Y here, users will not be able to write to FIFOs they don't
85918 + own in world-writable +t directories (e.g. /tmp), unless the owner of
85919 + the FIFO is the same owner of the directory it's held in. If the sysctl
85920 + option is enabled, a sysctl option with name "fifo_restrictions" is
85921 + created.
85922 +
85923 +config GRKERNSEC_SYSFS_RESTRICT
85924 + bool "Sysfs/debugfs restriction"
85925 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85926 + depends on SYSFS
85927 + help
85928 + If you say Y here, sysfs (the pseudo-filesystem mounted at /sys) and
85929 + any filesystem normally mounted under it (e.g. debugfs) will be
85930 + mostly accessible only by root. These filesystems generally provide access
85931 + to hardware and debug information that isn't appropriate for unprivileged
85932 + users of the system. Sysfs and debugfs have also become a large source
85933 + of new vulnerabilities, ranging from infoleaks to local compromise.
85934 + There has been very little oversight with an eye toward security involved
85935 + in adding new exporters of information to these filesystems, so their
85936 + use is discouraged.
85937 + For reasons of compatibility, a few directories have been whitelisted
85938 + for access by non-root users:
85939 + /sys/fs/selinux
85940 + /sys/fs/fuse
85941 + /sys/devices/system/cpu
85942 +
85943 +config GRKERNSEC_ROFS
85944 + bool "Runtime read-only mount protection"
85945 + depends on SYSCTL
85946 + help
85947 + If you say Y here, a sysctl option with name "romount_protect" will
85948 + be created. By setting this option to 1 at runtime, filesystems
85949 + will be protected in the following ways:
85950 + * No new writable mounts will be allowed
85951 + * Existing read-only mounts won't be able to be remounted read/write
85952 + * Write operations will be denied on all block devices
85953 + This option acts independently of grsec_lock: once it is set to 1,
85954 + it cannot be turned off. Therefore, please be mindful of the resulting
85955 + behavior if this option is enabled in an init script on a read-only
85956 + filesystem.
85957 + Also be aware that as with other root-focused features, GRKERNSEC_KMEM
85958 + and GRKERNSEC_IO should be enabled and module loading disabled via
85959 + config or at runtime.
85960 + This feature is mainly intended for secure embedded systems.
85961 +
85962 +
85963 +config GRKERNSEC_DEVICE_SIDECHANNEL
85964 + bool "Eliminate stat/notify-based device sidechannels"
85965 + default y if GRKERNSEC_CONFIG_AUTO
85966 + help
85967 + If you say Y here, timing analyses on block or character
85968 + devices like /dev/ptmx using stat or inotify/dnotify/fanotify
85969 + will be thwarted for unprivileged users. If a process without
85970 + CAP_MKNOD stats such a device, the last access and last modify times
85971 + will match the device's create time. No access or modify events
85972 + will be triggered through inotify/dnotify/fanotify for such devices.
85973 + This feature will prevent attacks that may at a minimum
85974 + allow an attacker to determine the administrator's password length.
85975 +
85976 +config GRKERNSEC_CHROOT
85977 + bool "Chroot jail restrictions"
85978 + default y if GRKERNSEC_CONFIG_AUTO
85979 + help
85980 + If you say Y here, you will be able to choose several options that will
85981 + make breaking out of a chrooted jail much more difficult. If you
85982 + encounter no software incompatibilities with the following options, it
85983 + is recommended that you enable each one.
85984 +
85985 + Note that the chroot restrictions are not intended to apply to "chroots"
85986 + to directories that are simple bind mounts of the global root filesystem.
85987 + For several other reasons, a user shouldn't expect any significant
85988 + security by performing such a chroot.
85989 +
85990 +config GRKERNSEC_CHROOT_MOUNT
85991 + bool "Deny mounts"
85992 + default y if GRKERNSEC_CONFIG_AUTO
85993 + depends on GRKERNSEC_CHROOT
85994 + help
85995 + If you say Y here, processes inside a chroot will not be able to
85996 + mount or remount filesystems. If the sysctl option is enabled, a
85997 + sysctl option with name "chroot_deny_mount" is created.
85998 +
85999 +config GRKERNSEC_CHROOT_DOUBLE
86000 + bool "Deny double-chroots"
86001 + default y if GRKERNSEC_CONFIG_AUTO
86002 + depends on GRKERNSEC_CHROOT
86003 + help
86004 + If you say Y here, processes inside a chroot will not be able to chroot
86005 + again outside the chroot. This is a widely used method of breaking
86006 + out of a chroot jail and should not be allowed. If the sysctl
86007 + option is enabled, a sysctl option with name
86008 + "chroot_deny_chroot" is created.
86009 +
86010 +config GRKERNSEC_CHROOT_PIVOT
86011 + bool "Deny pivot_root in chroot"
86012 + default y if GRKERNSEC_CONFIG_AUTO
86013 + depends on GRKERNSEC_CHROOT
86014 + help
86015 + If you say Y here, processes inside a chroot will not be able to use
86016 + a function called pivot_root() that was introduced in Linux 2.3.41. It
86017 + works similar to chroot in that it changes the root filesystem. This
86018 + function could be misused in a chrooted process to attempt to break out
86019 + of the chroot, and therefore should not be allowed. If the sysctl
86020 + option is enabled, a sysctl option with name "chroot_deny_pivot" is
86021 + created.
86022 +
86023 +config GRKERNSEC_CHROOT_CHDIR
86024 + bool "Enforce chdir(\"/\") on all chroots"
86025 + default y if GRKERNSEC_CONFIG_AUTO
86026 + depends on GRKERNSEC_CHROOT
86027 + help
86028 + If you say Y here, the current working directory of all newly-chrooted
86029 + applications will be set to the the root directory of the chroot.
86030 + The man page on chroot(2) states:
86031 + Note that this call does not change the current working
86032 + directory, so that `.' can be outside the tree rooted at
86033 + `/'. In particular, the super-user can escape from a
86034 + `chroot jail' by doing `mkdir foo; chroot foo; cd ..'.
86035 +
86036 + It is recommended that you say Y here, since it's not known to break
86037 + any software. If the sysctl option is enabled, a sysctl option with
86038 + name "chroot_enforce_chdir" is created.
86039 +
86040 +config GRKERNSEC_CHROOT_CHMOD
86041 + bool "Deny (f)chmod +s"
86042 + default y if GRKERNSEC_CONFIG_AUTO
86043 + depends on GRKERNSEC_CHROOT
86044 + help
86045 + If you say Y here, processes inside a chroot will not be able to chmod
86046 + or fchmod files to make them have suid or sgid bits. This protects
86047 + against another published method of breaking a chroot. If the sysctl
86048 + option is enabled, a sysctl option with name "chroot_deny_chmod" is
86049 + created.
86050 +
86051 +config GRKERNSEC_CHROOT_FCHDIR
86052 + bool "Deny fchdir and fhandle out of chroot"
86053 + default y if GRKERNSEC_CONFIG_AUTO
86054 + depends on GRKERNSEC_CHROOT
86055 + help
86056 + If you say Y here, a well-known method of breaking chroots by fchdir'ing
86057 + to a file descriptor of the chrooting process that points to a directory
86058 + outside the filesystem will be stopped. Additionally, this option prevents
86059 + use of the recently-created syscall for opening files by a guessable "file
86060 + handle" inside a chroot. If the sysctl option is enabled, a sysctl option
86061 + with name "chroot_deny_fchdir" is created.
86062 +
86063 +config GRKERNSEC_CHROOT_MKNOD
86064 + bool "Deny mknod"
86065 + default y if GRKERNSEC_CONFIG_AUTO
86066 + depends on GRKERNSEC_CHROOT
86067 + help
86068 + If you say Y here, processes inside a chroot will not be allowed to
86069 + mknod. The problem with using mknod inside a chroot is that it
86070 + would allow an attacker to create a device entry that is the same
86071 + as one on the physical root of your system, which could range from
86072 + anything from the console device to a device for your harddrive (which
86073 + they could then use to wipe the drive or steal data). It is recommended
86074 + that you say Y here, unless you run into software incompatibilities.
86075 + If the sysctl option is enabled, a sysctl option with name
86076 + "chroot_deny_mknod" is created.
86077 +
86078 +config GRKERNSEC_CHROOT_SHMAT
86079 + bool "Deny shmat() out of chroot"
86080 + default y if GRKERNSEC_CONFIG_AUTO
86081 + depends on GRKERNSEC_CHROOT
86082 + help
86083 + If you say Y here, processes inside a chroot will not be able to attach
86084 + to shared memory segments that were created outside of the chroot jail.
86085 + It is recommended that you say Y here. If the sysctl option is enabled,
86086 + a sysctl option with name "chroot_deny_shmat" is created.
86087 +
86088 +config GRKERNSEC_CHROOT_UNIX
86089 + bool "Deny access to abstract AF_UNIX sockets out of chroot"
86090 + default y if GRKERNSEC_CONFIG_AUTO
86091 + depends on GRKERNSEC_CHROOT
86092 + help
86093 + If you say Y here, processes inside a chroot will not be able to
86094 + connect to abstract (meaning not belonging to a filesystem) Unix
86095 + domain sockets that were bound outside of a chroot. It is recommended
86096 + that you say Y here. If the sysctl option is enabled, a sysctl option
86097 + with name "chroot_deny_unix" is created.
86098 +
86099 +config GRKERNSEC_CHROOT_FINDTASK
86100 + bool "Protect outside processes"
86101 + default y if GRKERNSEC_CONFIG_AUTO
86102 + depends on GRKERNSEC_CHROOT
86103 + help
86104 + If you say Y here, processes inside a chroot will not be able to
86105 + kill, send signals with fcntl, ptrace, capget, getpgid, setpgid,
86106 + getsid, or view any process outside of the chroot. If the sysctl
86107 + option is enabled, a sysctl option with name "chroot_findtask" is
86108 + created.
86109 +
86110 +config GRKERNSEC_CHROOT_NICE
86111 + bool "Restrict priority changes"
86112 + default y if GRKERNSEC_CONFIG_AUTO
86113 + depends on GRKERNSEC_CHROOT
86114 + help
86115 + If you say Y here, processes inside a chroot will not be able to raise
86116 + the priority of processes in the chroot, or alter the priority of
86117 + processes outside the chroot. This provides more security than simply
86118 + removing CAP_SYS_NICE from the process' capability set. If the
86119 + sysctl option is enabled, a sysctl option with name "chroot_restrict_nice"
86120 + is created.
86121 +
86122 +config GRKERNSEC_CHROOT_SYSCTL
86123 + bool "Deny sysctl writes"
86124 + default y if GRKERNSEC_CONFIG_AUTO
86125 + depends on GRKERNSEC_CHROOT
86126 + help
86127 + If you say Y here, an attacker in a chroot will not be able to
86128 + write to sysctl entries, either by sysctl(2) or through a /proc
86129 + interface. It is strongly recommended that you say Y here. If the
86130 + sysctl option is enabled, a sysctl option with name
86131 + "chroot_deny_sysctl" is created.
86132 +
86133 +config GRKERNSEC_CHROOT_RENAME
86134 + bool "Deny bad renames"
86135 + default y if GRKERNSEC_CONFIG_AUTO
86136 + depends on GRKERNSEC_CHROOT
86137 + help
86138 + If you say Y here, an attacker in a chroot will not be able to
86139 + abuse the ability to create double chroots to break out of the
86140 + chroot by exploiting a race condition between a rename of a directory
86141 + within a chroot against an open of a symlink with relative path
86142 + components. This feature will likewise prevent an accomplice outside
86143 + a chroot from enabling a user inside the chroot to break out and make
86144 + use of their credentials on the global filesystem. Enabling this
86145 + feature is essential to prevent root users from breaking out of a
86146 + chroot. If the sysctl option is enabled, a sysctl option with name
86147 + "chroot_deny_bad_rename" is created.
86148 +
86149 +config GRKERNSEC_CHROOT_CAPS
86150 + bool "Capability restrictions"
86151 + default y if GRKERNSEC_CONFIG_AUTO
86152 + depends on GRKERNSEC_CHROOT
86153 + help
86154 + If you say Y here, the capabilities on all processes within a
86155 + chroot jail will be lowered to stop module insertion, raw i/o,
86156 + system and net admin tasks, rebooting the system, modifying immutable
86157 + files, modifying IPC owned by another, and changing the system time.
86158 + This is left an option because it can break some apps. Disable this
86159 + if your chrooted apps are having problems performing those kinds of
86160 + tasks. If the sysctl option is enabled, a sysctl option with
86161 + name "chroot_caps" is created.
86162 +
86163 +config GRKERNSEC_CHROOT_INITRD
86164 + bool "Exempt initrd tasks from restrictions"
86165 + default y if GRKERNSEC_CONFIG_AUTO
86166 + depends on GRKERNSEC_CHROOT && BLK_DEV_INITRD
86167 + help
86168 + If you say Y here, tasks started prior to init will be exempted from
86169 + grsecurity's chroot restrictions. This option is mainly meant to
86170 + resolve Plymouth's performing privileged operations unnecessarily
86171 + in a chroot.
86172 +
86173 +endmenu
86174 +menu "Kernel Auditing"
86175 +depends on GRKERNSEC
86176 +
86177 +config GRKERNSEC_AUDIT_GROUP
86178 + bool "Single group for auditing"
86179 + help
86180 + If you say Y here, the exec and chdir logging features will only operate
86181 + on a group you specify. This option is recommended if you only want to
86182 + watch certain users instead of having a large amount of logs from the
86183 + entire system. If the sysctl option is enabled, a sysctl option with
86184 + name "audit_group" is created.
86185 +
86186 +config GRKERNSEC_AUDIT_GID
86187 + int "GID for auditing"
86188 + depends on GRKERNSEC_AUDIT_GROUP
86189 + default 1007
86190 +
86191 +config GRKERNSEC_EXECLOG
86192 + bool "Exec logging"
86193 + help
86194 + If you say Y here, all execve() calls will be logged (since the
86195 + other exec*() calls are frontends to execve(), all execution
86196 + will be logged). Useful for shell-servers that like to keep track
86197 + of their users. If the sysctl option is enabled, a sysctl option with
86198 + name "exec_logging" is created.
86199 + WARNING: This option when enabled will produce a LOT of logs, especially
86200 + on an active system.
86201 +
86202 +config GRKERNSEC_RESLOG
86203 + bool "Resource logging"
86204 + default y if GRKERNSEC_CONFIG_AUTO
86205 + help
86206 + If you say Y here, all attempts to overstep resource limits will
86207 + be logged with the resource name, the requested size, and the current
86208 + limit. It is highly recommended that you say Y here. If the sysctl
86209 + option is enabled, a sysctl option with name "resource_logging" is
86210 + created. If the RBAC system is enabled, the sysctl value is ignored.
86211 +
86212 +config GRKERNSEC_CHROOT_EXECLOG
86213 + bool "Log execs within chroot"
86214 + help
86215 + If you say Y here, all executions inside a chroot jail will be logged
86216 + to syslog. This can cause a large amount of logs if certain
86217 + applications (eg. djb's daemontools) are installed on the system, and
86218 + is therefore left as an option. If the sysctl option is enabled, a
86219 + sysctl option with name "chroot_execlog" is created.
86220 +
86221 +config GRKERNSEC_AUDIT_PTRACE
86222 + bool "Ptrace logging"
86223 + help
86224 + If you say Y here, all attempts to attach to a process via ptrace
86225 + will be logged. If the sysctl option is enabled, a sysctl option
86226 + with name "audit_ptrace" is created.
86227 +
86228 +config GRKERNSEC_AUDIT_CHDIR
86229 + bool "Chdir logging"
86230 + help
86231 + If you say Y here, all chdir() calls will be logged. If the sysctl
86232 + option is enabled, a sysctl option with name "audit_chdir" is created.
86233 +
86234 +config GRKERNSEC_AUDIT_MOUNT
86235 + bool "(Un)Mount logging"
86236 + help
86237 + If you say Y here, all mounts and unmounts will be logged. If the
86238 + sysctl option is enabled, a sysctl option with name "audit_mount" is
86239 + created.
86240 +
86241 +config GRKERNSEC_SIGNAL
86242 + bool "Signal logging"
86243 + default y if GRKERNSEC_CONFIG_AUTO
86244 + help
86245 + If you say Y here, certain important signals will be logged, such as
86246 + SIGSEGV, which will as a result inform you of when a error in a program
86247 + occurred, which in some cases could mean a possible exploit attempt.
86248 + If the sysctl option is enabled, a sysctl option with name
86249 + "signal_logging" is created.
86250 +
86251 +config GRKERNSEC_FORKFAIL
86252 + bool "Fork failure logging"
86253 + help
86254 + If you say Y here, all failed fork() attempts will be logged.
86255 + This could suggest a fork bomb, or someone attempting to overstep
86256 + their process limit. If the sysctl option is enabled, a sysctl option
86257 + with name "forkfail_logging" is created.
86258 +
86259 +config GRKERNSEC_TIME
86260 + bool "Time change logging"
86261 + default y if GRKERNSEC_CONFIG_AUTO
86262 + help
86263 + If you say Y here, any changes of the system clock will be logged.
86264 + If the sysctl option is enabled, a sysctl option with name
86265 + "timechange_logging" is created.
86266 +
86267 +config GRKERNSEC_PROC_IPADDR
86268 + bool "/proc/<pid>/ipaddr support"
86269 + default y if GRKERNSEC_CONFIG_AUTO
86270 + help
86271 + If you say Y here, a new entry will be added to each /proc/<pid>
86272 + directory that contains the IP address of the person using the task.
86273 + The IP is carried across local TCP and AF_UNIX stream sockets.
86274 + This information can be useful for IDS/IPSes to perform remote response
86275 + to a local attack. The entry is readable by only the owner of the
86276 + process (and root if he has CAP_DAC_OVERRIDE, which can be removed via
86277 + the RBAC system), and thus does not create privacy concerns.
86278 +
86279 +config GRKERNSEC_RWXMAP_LOG
86280 + bool 'Denied RWX mmap/mprotect logging'
86281 + default y if GRKERNSEC_CONFIG_AUTO
86282 + depends on PAX_MPROTECT && !PAX_EMUPLT && !PAX_EMUSIGRT
86283 + help
86284 + If you say Y here, calls to mmap() and mprotect() with explicit
86285 + usage of PROT_WRITE and PROT_EXEC together will be logged when
86286 + denied by the PAX_MPROTECT feature. This feature will also
86287 + log other problematic scenarios that can occur when PAX_MPROTECT
86288 + is enabled on a binary, like textrels and PT_GNU_STACK. If the
86289 + sysctl option is enabled, a sysctl option with name "rwxmap_logging"
86290 + is created.
86291 +
86292 +endmenu
86293 +
86294 +menu "Executable Protections"
86295 +depends on GRKERNSEC
86296 +
86297 +config GRKERNSEC_DMESG
86298 + bool "Dmesg(8) restriction"
86299 + default y if GRKERNSEC_CONFIG_AUTO
86300 + help
86301 + If you say Y here, non-root users will not be able to use dmesg(8)
86302 + to view the contents of the kernel's circular log buffer.
86303 + The kernel's log buffer often contains kernel addresses and other
86304 + identifying information useful to an attacker in fingerprinting a
86305 + system for a targeted exploit.
86306 + If the sysctl option is enabled, a sysctl option with name "dmesg" is
86307 + created.
86308 +
86309 +config GRKERNSEC_HARDEN_PTRACE
86310 + bool "Deter ptrace-based process snooping"
86311 + default y if GRKERNSEC_CONFIG_AUTO
86312 + help
86313 + If you say Y here, TTY sniffers and other malicious monitoring
86314 + programs implemented through ptrace will be defeated. If you
86315 + have been using the RBAC system, this option has already been
86316 + enabled for several years for all users, with the ability to make
86317 + fine-grained exceptions.
86318 +
86319 + This option only affects the ability of non-root users to ptrace
86320 + processes that are not a descendent of the ptracing process.
86321 + This means that strace ./binary and gdb ./binary will still work,
86322 + but attaching to arbitrary processes will not. If the sysctl
86323 + option is enabled, a sysctl option with name "harden_ptrace" is
86324 + created.
86325 +
86326 +config GRKERNSEC_PTRACE_READEXEC
86327 + bool "Require read access to ptrace sensitive binaries"
86328 + default y if GRKERNSEC_CONFIG_AUTO
86329 + help
86330 + If you say Y here, unprivileged users will not be able to ptrace unreadable
86331 + binaries. This option is useful in environments that
86332 + remove the read bits (e.g. file mode 4711) from suid binaries to
86333 + prevent infoleaking of their contents. This option adds
86334 + consistency to the use of that file mode, as the binary could normally
86335 + be read out when run without privileges while ptracing.
86336 +
86337 + If the sysctl option is enabled, a sysctl option with name "ptrace_readexec"
86338 + is created.
86339 +
86340 +config GRKERNSEC_SETXID
86341 + bool "Enforce consistent multithreaded privileges"
86342 + default y if GRKERNSEC_CONFIG_AUTO
86343 + depends on (X86 || SPARC64 || PPC || ARM || MIPS)
86344 + help
86345 + If you say Y here, a change from a root uid to a non-root uid
86346 + in a multithreaded application will cause the resulting uids,
86347 + gids, supplementary groups, and capabilities in that thread
86348 + to be propagated to the other threads of the process. In most
86349 + cases this is unnecessary, as glibc will emulate this behavior
86350 + on behalf of the application. Other libcs do not act in the
86351 + same way, allowing the other threads of the process to continue
86352 + running with root privileges. If the sysctl option is enabled,
86353 + a sysctl option with name "consistent_setxid" is created.
86354 +
86355 +config GRKERNSEC_HARDEN_IPC
86356 + bool "Disallow access to overly-permissive IPC objects"
86357 + default y if GRKERNSEC_CONFIG_AUTO
86358 + depends on SYSVIPC
86359 + help
86360 + If you say Y here, access to overly-permissive IPC objects (shared
86361 + memory, message queues, and semaphores) will be denied for processes
86362 + given the following criteria beyond normal permission checks:
86363 + 1) If the IPC object is world-accessible and the euid doesn't match
86364 + that of the creator or current uid for the IPC object
86365 + 2) If the IPC object is group-accessible and the egid doesn't
86366 + match that of the creator or current gid for the IPC object
86367 + It's a common error to grant too much permission to these objects,
86368 + with impact ranging from denial of service and information leaking to
86369 + privilege escalation. This feature was developed in response to
86370 + research by Tim Brown:
86371 + http://labs.portcullis.co.uk/whitepapers/memory-squatting-attacks-on-system-v-shared-memory/
86372 + who found hundreds of such insecure usages. Processes with
86373 + CAP_IPC_OWNER are still permitted to access these IPC objects.
86374 + If the sysctl option is enabled, a sysctl option with name
86375 + "harden_ipc" is created.
86376 +
86377 +config GRKERNSEC_TPE
86378 + bool "Trusted Path Execution (TPE)"
86379 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
86380 + help
86381 + If you say Y here, you will be able to choose a gid to add to the
86382 + supplementary groups of users you want to mark as "untrusted."
86383 + These users will not be able to execute any files that are not in
86384 + root-owned directories writable only by root. If the sysctl option
86385 + is enabled, a sysctl option with name "tpe" is created.
86386 +
86387 +config GRKERNSEC_TPE_ALL
86388 + bool "Partially restrict all non-root users"
86389 + depends on GRKERNSEC_TPE
86390 + help
86391 + If you say Y here, all non-root users will be covered under
86392 + a weaker TPE restriction. This is separate from, and in addition to,
86393 + the main TPE options that you have selected elsewhere. Thus, if a
86394 + "trusted" GID is chosen, this restriction applies to even that GID.
86395 + Under this restriction, all non-root users will only be allowed to
86396 + execute files in directories they own that are not group or
86397 + world-writable, or in directories owned by root and writable only by
86398 + root. If the sysctl option is enabled, a sysctl option with name
86399 + "tpe_restrict_all" is created.
86400 +
86401 +config GRKERNSEC_TPE_INVERT
86402 + bool "Invert GID option"
86403 + depends on GRKERNSEC_TPE
86404 + help
86405 + If you say Y here, the group you specify in the TPE configuration will
86406 + decide what group TPE restrictions will be *disabled* for. This
86407 + option is useful if you want TPE restrictions to be applied to most
86408 + users on the system. If the sysctl option is enabled, a sysctl option
86409 + with name "tpe_invert" is created. Unlike other sysctl options, this
86410 + entry will default to on for backward-compatibility.
86411 +
86412 +config GRKERNSEC_TPE_GID
86413 + int
86414 + default GRKERNSEC_TPE_UNTRUSTED_GID if (GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT)
86415 + default GRKERNSEC_TPE_TRUSTED_GID if (GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT)
86416 +
86417 +config GRKERNSEC_TPE_UNTRUSTED_GID
86418 + int "GID for TPE-untrusted users"
86419 + depends on GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
86420 + default 1005
86421 + help
86422 + Setting this GID determines what group TPE restrictions will be
86423 + *enabled* for. If the sysctl option is enabled, a sysctl option
86424 + with name "tpe_gid" is created.
86425 +
86426 +config GRKERNSEC_TPE_TRUSTED_GID
86427 + int "GID for TPE-trusted users"
86428 + depends on GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
86429 + default 1005
86430 + help
86431 + Setting this GID determines what group TPE restrictions will be
86432 + *disabled* for. If the sysctl option is enabled, a sysctl option
86433 + with name "tpe_gid" is created.
86434 +
86435 +endmenu
86436 +menu "Network Protections"
86437 +depends on GRKERNSEC
86438 +
86439 +config GRKERNSEC_BLACKHOLE
86440 + bool "TCP/UDP blackhole and LAST_ACK DoS prevention"
86441 + default y if GRKERNSEC_CONFIG_AUTO
86442 + depends on NET
86443 + help
86444 + If you say Y here, neither TCP resets nor ICMP
86445 + destination-unreachable packets will be sent in response to packets
86446 + sent to ports for which no associated listening process exists.
86447 + It will also prevent the sending of ICMP protocol unreachable packets
86448 + in response to packets with unknown protocols.
86449 + This feature supports both IPV4 and IPV6 and exempts the
86450 + loopback interface from blackholing. Enabling this feature
86451 + makes a host more resilient to DoS attacks and reduces network
86452 + visibility against scanners.
86453 +
86454 + The blackhole feature as-implemented is equivalent to the FreeBSD
86455 + blackhole feature, as it prevents RST responses to all packets, not
86456 + just SYNs. Under most application behavior this causes no
86457 + problems, but applications (like haproxy) may not close certain
86458 + connections in a way that cleanly terminates them on the remote
86459 + end, leaving the remote host in LAST_ACK state. Because of this
86460 + side-effect and to prevent intentional LAST_ACK DoSes, this
86461 + feature also adds automatic mitigation against such attacks.
86462 + The mitigation drastically reduces the amount of time a socket
86463 + can spend in LAST_ACK state. If you're using haproxy and not
86464 + all servers it connects to have this option enabled, consider
86465 + disabling this feature on the haproxy host.
86466 +
86467 + If the sysctl option is enabled, two sysctl options with names
86468 + "ip_blackhole" and "lastack_retries" will be created.
86469 + While "ip_blackhole" takes the standard zero/non-zero on/off
86470 + toggle, "lastack_retries" uses the same kinds of values as
86471 + "tcp_retries1" and "tcp_retries2". The default value of 4
86472 + prevents a socket from lasting more than 45 seconds in LAST_ACK
86473 + state.
86474 +
86475 +config GRKERNSEC_NO_SIMULT_CONNECT
86476 + bool "Disable TCP Simultaneous Connect"
86477 + default y if GRKERNSEC_CONFIG_AUTO
86478 + depends on NET
86479 + help
86480 + If you say Y here, a feature by Willy Tarreau will be enabled that
86481 + removes a weakness in Linux's strict implementation of TCP that
86482 + allows two clients to connect to each other without either entering
86483 + a listening state. The weakness allows an attacker to easily prevent
86484 + a client from connecting to a known server provided the source port
86485 + for the connection is guessed correctly.
86486 +
86487 + As the weakness could be used to prevent an antivirus or IPS from
86488 + fetching updates, or prevent an SSL gateway from fetching a CRL,
86489 + it should be eliminated by enabling this option. Though Linux is
86490 + one of few operating systems supporting simultaneous connect, it
86491 + has no legitimate use in practice and is rarely supported by firewalls.
86492 +
86493 +config GRKERNSEC_SOCKET
86494 + bool "Socket restrictions"
86495 + depends on NET
86496 + help
86497 + If you say Y here, you will be able to choose from several options.
86498 + If you assign a GID on your system and add it to the supplementary
86499 + groups of users you want to restrict socket access to, this patch
86500 + will perform up to three things, based on the option(s) you choose.
86501 +
86502 +config GRKERNSEC_SOCKET_ALL
86503 + bool "Deny any sockets to group"
86504 + depends on GRKERNSEC_SOCKET
86505 + help
86506 + If you say Y here, you will be able to choose a GID of whose users will
86507 + be unable to connect to other hosts from your machine or run server
86508 + applications from your machine. If the sysctl option is enabled, a
86509 + sysctl option with name "socket_all" is created.
86510 +
86511 +config GRKERNSEC_SOCKET_ALL_GID
86512 + int "GID to deny all sockets for"
86513 + depends on GRKERNSEC_SOCKET_ALL
86514 + default 1004
86515 + help
86516 + Here you can choose the GID to disable socket access for. Remember to
86517 + add the users you want socket access disabled for to the GID
86518 + specified here. If the sysctl option is enabled, a sysctl option
86519 + with name "socket_all_gid" is created.
86520 +
86521 +config GRKERNSEC_SOCKET_CLIENT
86522 + bool "Deny client sockets to group"
86523 + depends on GRKERNSEC_SOCKET
86524 + help
86525 + If you say Y here, you will be able to choose a GID of whose users will
86526 + be unable to connect to other hosts from your machine, but will be
86527 + able to run servers. If this option is enabled, all users in the group
86528 + you specify will have to use passive mode when initiating ftp transfers
86529 + from the shell on your machine. If the sysctl option is enabled, a
86530 + sysctl option with name "socket_client" is created.
86531 +
86532 +config GRKERNSEC_SOCKET_CLIENT_GID
86533 + int "GID to deny client sockets for"
86534 + depends on GRKERNSEC_SOCKET_CLIENT
86535 + default 1003
86536 + help
86537 + Here you can choose the GID to disable client socket access for.
86538 + Remember to add the users you want client socket access disabled for to
86539 + the GID specified here. If the sysctl option is enabled, a sysctl
86540 + option with name "socket_client_gid" is created.
86541 +
86542 +config GRKERNSEC_SOCKET_SERVER
86543 + bool "Deny server sockets to group"
86544 + depends on GRKERNSEC_SOCKET
86545 + help
86546 + If you say Y here, you will be able to choose a GID of whose users will
86547 + be unable to run server applications from your machine. If the sysctl
86548 + option is enabled, a sysctl option with name "socket_server" is created.
86549 +
86550 +config GRKERNSEC_SOCKET_SERVER_GID
86551 + int "GID to deny server sockets for"
86552 + depends on GRKERNSEC_SOCKET_SERVER
86553 + default 1002
86554 + help
86555 + Here you can choose the GID to disable server socket access for.
86556 + Remember to add the users you want server socket access disabled for to
86557 + the GID specified here. If the sysctl option is enabled, a sysctl
86558 + option with name "socket_server_gid" is created.
86559 +
86560 +endmenu
86561 +
86562 +menu "Physical Protections"
86563 +depends on GRKERNSEC
86564 +
86565 +config GRKERNSEC_DENYUSB
86566 + bool "Deny new USB connections after toggle"
86567 + default y if GRKERNSEC_CONFIG_AUTO
86568 + depends on SYSCTL && USB_SUPPORT
86569 + help
86570 + If you say Y here, a new sysctl option with name "deny_new_usb"
86571 + will be created. Setting its value to 1 will prevent any new
86572 + USB devices from being recognized by the OS. Any attempted USB
86573 + device insertion will be logged. This option is intended to be
86574 + used against custom USB devices designed to exploit vulnerabilities
86575 + in various USB device drivers.
86576 +
86577 + For greatest effectiveness, this sysctl should be set after any
86578 + relevant init scripts. This option is safe to enable in distros
86579 + as each user can choose whether or not to toggle the sysctl.
86580 +
86581 +config GRKERNSEC_DENYUSB_FORCE
86582 + bool "Reject all USB devices not connected at boot"
86583 + select USB
86584 + depends on GRKERNSEC_DENYUSB
86585 + help
86586 + If you say Y here, a variant of GRKERNSEC_DENYUSB will be enabled
86587 + that doesn't involve a sysctl entry. This option should only be
86588 + enabled if you're sure you want to deny all new USB connections
86589 + at runtime and don't want to modify init scripts. This should not
86590 + be enabled by distros. It forces the core USB code to be built
86591 + into the kernel image so that all devices connected at boot time
86592 + can be recognized and new USB device connections can be prevented
86593 + prior to init running.
86594 +
86595 +endmenu
86596 +
86597 +menu "Sysctl Support"
86598 +depends on GRKERNSEC && SYSCTL
86599 +
86600 +config GRKERNSEC_SYSCTL
86601 + bool "Sysctl support"
86602 + default y if GRKERNSEC_CONFIG_AUTO
86603 + help
86604 + If you say Y here, you will be able to change the options that
86605 + grsecurity runs with at bootup, without having to recompile your
86606 + kernel. You can echo values to files in /proc/sys/kernel/grsecurity
86607 + to enable (1) or disable (0) various features. All the sysctl entries
86608 + are mutable until the "grsec_lock" entry is set to a non-zero value.
86609 + All features enabled in the kernel configuration are disabled at boot
86610 + if you do not say Y to the "Turn on features by default" option.
86611 + All options should be set at startup, and the grsec_lock entry should
86612 + be set to a non-zero value after all the options are set.
86613 + *THIS IS EXTREMELY IMPORTANT*
86614 +
86615 +config GRKERNSEC_SYSCTL_DISTRO
86616 + bool "Extra sysctl support for distro makers (READ HELP)"
86617 + depends on GRKERNSEC_SYSCTL && GRKERNSEC_IO
86618 + help
86619 + If you say Y here, additional sysctl options will be created
86620 + for features that affect processes running as root. Therefore,
86621 + it is critical when using this option that the grsec_lock entry be
86622 + enabled after boot. Only distros with prebuilt kernel packages
86623 + with this option enabled that can ensure grsec_lock is enabled
86624 + after boot should use this option.
86625 + *Failure to set grsec_lock after boot makes all grsec features
86626 + this option covers useless*
86627 +
86628 + Currently this option creates the following sysctl entries:
86629 + "Disable Privileged I/O": "disable_priv_io"
86630 +
86631 +config GRKERNSEC_SYSCTL_ON
86632 + bool "Turn on features by default"
86633 + default y if GRKERNSEC_CONFIG_AUTO
86634 + depends on GRKERNSEC_SYSCTL
86635 + help
86636 + If you say Y here, instead of having all features enabled in the
86637 + kernel configuration disabled at boot time, the features will be
86638 + enabled at boot time. It is recommended you say Y here unless
86639 + there is some reason you would want all sysctl-tunable features to
86640 + be disabled by default. As mentioned elsewhere, it is important
86641 + to enable the grsec_lock entry once you have finished modifying
86642 + the sysctl entries.
86643 +
86644 +endmenu
86645 +menu "Logging Options"
86646 +depends on GRKERNSEC
86647 +
86648 +config GRKERNSEC_FLOODTIME
86649 + int "Seconds in between log messages (minimum)"
86650 + default 10
86651 + help
86652 + This option allows you to enforce the number of seconds between
86653 + grsecurity log messages. The default should be suitable for most
86654 + people, however, if you choose to change it, choose a value small enough
86655 + to allow informative logs to be produced, but large enough to
86656 + prevent flooding.
86657 +
86658 + Setting both this value and GRKERNSEC_FLOODBURST to 0 will disable
86659 + any rate limiting on grsecurity log messages.
86660 +
86661 +config GRKERNSEC_FLOODBURST
86662 + int "Number of messages in a burst (maximum)"
86663 + default 6
86664 + help
86665 + This option allows you to choose the maximum number of messages allowed
86666 + within the flood time interval you chose in a separate option. The
86667 + default should be suitable for most people, however if you find that
86668 + many of your logs are being interpreted as flooding, you may want to
86669 + raise this value.
86670 +
86671 + Setting both this value and GRKERNSEC_FLOODTIME to 0 will disable
86672 + any rate limiting on grsecurity log messages.
86673 +
86674 +endmenu
86675 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
86676 new file mode 100644
86677 index 0000000..6fb2175
86678 --- /dev/null
86679 +++ b/grsecurity/Makefile
86680 @@ -0,0 +1,54 @@
86681 +# grsecurity - access control and security hardening for Linux
86682 +# All code in this directory and various hooks located throughout the Linux kernel are
86683 +# Copyright (C) 2001-2014 Bradley Spengler, Open Source Security, Inc.
86684 +# http://www.grsecurity.net spender@grsecurity.net
86685 +#
86686 +# This program is free software; you can redistribute it and/or
86687 +# modify it under the terms of the GNU General Public License version 2
86688 +# as published by the Free Software Foundation.
86689 +#
86690 +# This program is distributed in the hope that it will be useful,
86691 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
86692 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86693 +# GNU General Public License for more details.
86694 +#
86695 +# You should have received a copy of the GNU General Public License
86696 +# along with this program; if not, write to the Free Software
86697 +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
86698 +
86699 +KBUILD_CFLAGS += -Werror
86700 +
86701 +obj-y = grsec_chdir.o grsec_chroot.o grsec_exec.o grsec_fifo.o grsec_fork.o \
86702 + grsec_mount.o grsec_sig.o grsec_sysctl.o \
86703 + grsec_time.o grsec_tpe.o grsec_link.o grsec_pax.o grsec_ptrace.o \
86704 + grsec_usb.o grsec_ipc.o grsec_proc.o
86705 +
86706 +obj-$(CONFIG_GRKERNSEC) += grsec_init.o grsum.o gracl.o gracl_segv.o \
86707 + gracl_cap.o gracl_alloc.o gracl_shm.o grsec_mem.o gracl_fs.o \
86708 + gracl_learn.o grsec_log.o gracl_policy.o
86709 +ifdef CONFIG_COMPAT
86710 +obj-$(CONFIG_GRKERNSEC) += gracl_compat.o
86711 +endif
86712 +
86713 +obj-$(CONFIG_GRKERNSEC_RESLOG) += gracl_res.o
86714 +
86715 +ifdef CONFIG_NET
86716 +obj-y += grsec_sock.o
86717 +obj-$(CONFIG_GRKERNSEC) += gracl_ip.o
86718 +endif
86719 +
86720 +ifndef CONFIG_GRKERNSEC
86721 +obj-y += grsec_disabled.o
86722 +endif
86723 +
86724 +ifdef CONFIG_GRKERNSEC_HIDESYM
86725 +extra-y := grsec_hidesym.o
86726 +$(obj)/grsec_hidesym.o:
86727 + @-chmod -f 500 /boot
86728 + @-chmod -f 500 /lib/modules
86729 + @-chmod -f 500 /lib64/modules
86730 + @-chmod -f 500 /lib32/modules
86731 + @-chmod -f 700 .
86732 + @-chmod -f 700 $(objtree)
86733 + @echo ' grsec: protected kernel image paths'
86734 +endif
86735 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
86736 new file mode 100644
86737 index 0000000..7ad630a
86738 --- /dev/null
86739 +++ b/grsecurity/gracl.c
86740 @@ -0,0 +1,2757 @@
86741 +#include <linux/kernel.h>
86742 +#include <linux/module.h>
86743 +#include <linux/sched.h>
86744 +#include <linux/mm.h>
86745 +#include <linux/file.h>
86746 +#include <linux/fs.h>
86747 +#include <linux/namei.h>
86748 +#include <linux/mount.h>
86749 +#include <linux/tty.h>
86750 +#include <linux/proc_fs.h>
86751 +#include <linux/lglock.h>
86752 +#include <linux/slab.h>
86753 +#include <linux/vmalloc.h>
86754 +#include <linux/types.h>
86755 +#include <linux/sysctl.h>
86756 +#include <linux/netdevice.h>
86757 +#include <linux/ptrace.h>
86758 +#include <linux/gracl.h>
86759 +#include <linux/gralloc.h>
86760 +#include <linux/security.h>
86761 +#include <linux/grinternal.h>
86762 +#include <linux/pid_namespace.h>
86763 +#include <linux/stop_machine.h>
86764 +#include <linux/fdtable.h>
86765 +#include <linux/percpu.h>
86766 +#include <linux/lglock.h>
86767 +#include <linux/hugetlb.h>
86768 +#include <linux/posix-timers.h>
86769 +#include <linux/prefetch.h>
86770 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86771 +#include <linux/magic.h>
86772 +#include <linux/pagemap.h>
86773 +#include "../fs/btrfs/async-thread.h"
86774 +#include "../fs/btrfs/ctree.h"
86775 +#include "../fs/btrfs/btrfs_inode.h"
86776 +#endif
86777 +#include "../fs/mount.h"
86778 +
86779 +#include <asm/uaccess.h>
86780 +#include <asm/errno.h>
86781 +#include <asm/mman.h>
86782 +
86783 +#define FOR_EACH_ROLE_START(role) \
86784 + role = running_polstate.role_list; \
86785 + while (role) {
86786 +
86787 +#define FOR_EACH_ROLE_END(role) \
86788 + role = role->prev; \
86789 + }
86790 +
86791 +extern struct path gr_real_root;
86792 +
86793 +static struct gr_policy_state running_polstate;
86794 +struct gr_policy_state *polstate = &running_polstate;
86795 +extern struct gr_alloc_state *current_alloc_state;
86796 +
86797 +extern char *gr_shared_page[4];
86798 +DEFINE_RWLOCK(gr_inode_lock);
86799 +
86800 +static unsigned int gr_status __read_only = GR_STATUS_INIT;
86801 +
86802 +#ifdef CONFIG_NET
86803 +extern struct vfsmount *sock_mnt;
86804 +#endif
86805 +
86806 +extern struct vfsmount *pipe_mnt;
86807 +extern struct vfsmount *shm_mnt;
86808 +
86809 +#ifdef CONFIG_HUGETLBFS
86810 +extern struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
86811 +#endif
86812 +
86813 +extern u16 acl_sp_role_value;
86814 +extern struct acl_object_label *fakefs_obj_rw;
86815 +extern struct acl_object_label *fakefs_obj_rwx;
86816 +
86817 +int gr_acl_is_enabled(void)
86818 +{
86819 + return (gr_status & GR_READY);
86820 +}
86821 +
86822 +void gr_enable_rbac_system(void)
86823 +{
86824 + pax_open_kernel();
86825 + gr_status |= GR_READY;
86826 + pax_close_kernel();
86827 +}
86828 +
86829 +int gr_rbac_disable(void *unused)
86830 +{
86831 + pax_open_kernel();
86832 + gr_status &= ~GR_READY;
86833 + pax_close_kernel();
86834 +
86835 + return 0;
86836 +}
86837 +
86838 +static inline dev_t __get_dev(const struct dentry *dentry)
86839 +{
86840 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
86841 +
86842 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86843 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
86844 + return BTRFS_I(d_inode(ldentry))->root->anon_dev;
86845 + else
86846 +#endif
86847 + return d_inode(ldentry)->i_sb->s_dev;
86848 +}
86849 +
86850 +static inline u64 __get_ino(const struct dentry *dentry)
86851 +{
86852 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
86853 +
86854 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86855 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
86856 + return btrfs_ino(d_inode(dentry));
86857 + else
86858 +#endif
86859 + return d_inode(ldentry)->i_ino;
86860 +}
86861 +
86862 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
86863 +{
86864 + return __get_dev(dentry);
86865 +}
86866 +
86867 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
86868 +{
86869 + return __get_ino(dentry);
86870 +}
86871 +
86872 +static char gr_task_roletype_to_char(struct task_struct *task)
86873 +{
86874 + switch (task->role->roletype &
86875 + (GR_ROLE_DEFAULT | GR_ROLE_USER | GR_ROLE_GROUP |
86876 + GR_ROLE_SPECIAL)) {
86877 + case GR_ROLE_DEFAULT:
86878 + return 'D';
86879 + case GR_ROLE_USER:
86880 + return 'U';
86881 + case GR_ROLE_GROUP:
86882 + return 'G';
86883 + case GR_ROLE_SPECIAL:
86884 + return 'S';
86885 + }
86886 +
86887 + return 'X';
86888 +}
86889 +
86890 +char gr_roletype_to_char(void)
86891 +{
86892 + return gr_task_roletype_to_char(current);
86893 +}
86894 +
86895 +int
86896 +gr_acl_tpe_check(void)
86897 +{
86898 + if (unlikely(!(gr_status & GR_READY)))
86899 + return 0;
86900 + if (current->role->roletype & GR_ROLE_TPE)
86901 + return 1;
86902 + else
86903 + return 0;
86904 +}
86905 +
86906 +int
86907 +gr_handle_rawio(const struct inode *inode)
86908 +{
86909 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
86910 + if (inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR)) &&
86911 + grsec_enable_chroot_caps && proc_is_chrooted(current) &&
86912 + !capable(CAP_SYS_RAWIO))
86913 + return 1;
86914 +#endif
86915 + return 0;
86916 +}
86917 +
86918 +int
86919 +gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb)
86920 +{
86921 + if (likely(lena != lenb))
86922 + return 0;
86923 +
86924 + return !memcmp(a, b, lena);
86925 +}
86926 +
86927 +static int prepend(char **buffer, int *buflen, const char *str, int namelen)
86928 +{
86929 + *buflen -= namelen;
86930 + if (*buflen < 0)
86931 + return -ENAMETOOLONG;
86932 + *buffer -= namelen;
86933 + memcpy(*buffer, str, namelen);
86934 + return 0;
86935 +}
86936 +
86937 +static int prepend_name(char **buffer, int *buflen, struct qstr *name)
86938 +{
86939 + return prepend(buffer, buflen, name->name, name->len);
86940 +}
86941 +
86942 +static int prepend_path(const struct path *path, struct path *root,
86943 + char **buffer, int *buflen)
86944 +{
86945 + struct dentry *dentry = path->dentry;
86946 + struct vfsmount *vfsmnt = path->mnt;
86947 + struct mount *mnt = real_mount(vfsmnt);
86948 + bool slash = false;
86949 + int error = 0;
86950 +
86951 + while (dentry != root->dentry || vfsmnt != root->mnt) {
86952 + struct dentry * parent;
86953 +
86954 + if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
86955 + /* Global root? */
86956 + if (!mnt_has_parent(mnt)) {
86957 + goto out;
86958 + }
86959 + dentry = mnt->mnt_mountpoint;
86960 + mnt = mnt->mnt_parent;
86961 + vfsmnt = &mnt->mnt;
86962 + continue;
86963 + }
86964 + parent = dentry->d_parent;
86965 + prefetch(parent);
86966 + spin_lock(&dentry->d_lock);
86967 + error = prepend_name(buffer, buflen, &dentry->d_name);
86968 + spin_unlock(&dentry->d_lock);
86969 + if (!error)
86970 + error = prepend(buffer, buflen, "/", 1);
86971 + if (error)
86972 + break;
86973 +
86974 + slash = true;
86975 + dentry = parent;
86976 + }
86977 +
86978 +out:
86979 + if (!error && !slash)
86980 + error = prepend(buffer, buflen, "/", 1);
86981 +
86982 + return error;
86983 +}
86984 +
86985 +/* this must be called with mount_lock and rename_lock held */
86986 +
86987 +static char *__our_d_path(const struct path *path, struct path *root,
86988 + char *buf, int buflen)
86989 +{
86990 + char *res = buf + buflen;
86991 + int error;
86992 +
86993 + prepend(&res, &buflen, "\0", 1);
86994 + error = prepend_path(path, root, &res, &buflen);
86995 + if (error)
86996 + return ERR_PTR(error);
86997 +
86998 + return res;
86999 +}
87000 +
87001 +static char *
87002 +gen_full_path(struct path *path, struct path *root, char *buf, int buflen)
87003 +{
87004 + char *retval;
87005 +
87006 + retval = __our_d_path(path, root, buf, buflen);
87007 + if (unlikely(IS_ERR(retval)))
87008 + retval = strcpy(buf, "<path too long>");
87009 + else if (unlikely(retval[1] == '/' && retval[2] == '\0'))
87010 + retval[1] = '\0';
87011 +
87012 + return retval;
87013 +}
87014 +
87015 +static char *
87016 +__d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
87017 + char *buf, int buflen)
87018 +{
87019 + struct path path;
87020 + char *res;
87021 +
87022 + path.dentry = (struct dentry *)dentry;
87023 + path.mnt = (struct vfsmount *)vfsmnt;
87024 +
87025 + /* we can use gr_real_root.dentry, gr_real_root.mnt, because this is only called
87026 + by the RBAC system */
87027 + res = gen_full_path(&path, &gr_real_root, buf, buflen);
87028 +
87029 + return res;
87030 +}
87031 +
87032 +static char *
87033 +d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
87034 + char *buf, int buflen)
87035 +{
87036 + char *res;
87037 + struct path path;
87038 + struct path root;
87039 + struct task_struct *reaper = init_pid_ns.child_reaper;
87040 +
87041 + path.dentry = (struct dentry *)dentry;
87042 + path.mnt = (struct vfsmount *)vfsmnt;
87043 +
87044 + /* we can't use gr_real_root.dentry, gr_real_root.mnt, because they belong only to the RBAC system */
87045 + get_fs_root(reaper->fs, &root);
87046 +
87047 + read_seqlock_excl(&mount_lock);
87048 + write_seqlock(&rename_lock);
87049 + res = gen_full_path(&path, &root, buf, buflen);
87050 + write_sequnlock(&rename_lock);
87051 + read_sequnlock_excl(&mount_lock);
87052 +
87053 + path_put(&root);
87054 + return res;
87055 +}
87056 +
87057 +char *
87058 +gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
87059 +{
87060 + char *ret;
87061 + read_seqlock_excl(&mount_lock);
87062 + write_seqlock(&rename_lock);
87063 + ret = __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
87064 + PAGE_SIZE);
87065 + write_sequnlock(&rename_lock);
87066 + read_sequnlock_excl(&mount_lock);
87067 + return ret;
87068 +}
87069 +
87070 +static char *
87071 +gr_to_proc_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
87072 +{
87073 + char *ret;
87074 + char *buf;
87075 + int buflen;
87076 +
87077 + read_seqlock_excl(&mount_lock);
87078 + write_seqlock(&rename_lock);
87079 + buf = per_cpu_ptr(gr_shared_page[0], smp_processor_id());
87080 + ret = __d_real_path(dentry, mnt, buf, PAGE_SIZE - 6);
87081 + buflen = (int)(ret - buf);
87082 + if (buflen >= 5)
87083 + prepend(&ret, &buflen, "/proc", 5);
87084 + else
87085 + ret = strcpy(buf, "<path too long>");
87086 + write_sequnlock(&rename_lock);
87087 + read_sequnlock_excl(&mount_lock);
87088 + return ret;
87089 +}
87090 +
87091 +char *
87092 +gr_to_filename_nolock(const struct dentry *dentry, const struct vfsmount *mnt)
87093 +{
87094 + return __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
87095 + PAGE_SIZE);
87096 +}
87097 +
87098 +char *
87099 +gr_to_filename(const struct dentry *dentry, const struct vfsmount *mnt)
87100 +{
87101 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
87102 + PAGE_SIZE);
87103 +}
87104 +
87105 +char *
87106 +gr_to_filename1(const struct dentry *dentry, const struct vfsmount *mnt)
87107 +{
87108 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[1], smp_processor_id()),
87109 + PAGE_SIZE);
87110 +}
87111 +
87112 +char *
87113 +gr_to_filename2(const struct dentry *dentry, const struct vfsmount *mnt)
87114 +{
87115 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[2], smp_processor_id()),
87116 + PAGE_SIZE);
87117 +}
87118 +
87119 +char *
87120 +gr_to_filename3(const struct dentry *dentry, const struct vfsmount *mnt)
87121 +{
87122 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[3], smp_processor_id()),
87123 + PAGE_SIZE);
87124 +}
87125 +
87126 +__u32
87127 +to_gr_audit(const __u32 reqmode)
87128 +{
87129 + /* masks off auditable permission flags, then shifts them to create
87130 + auditing flags, and adds the special case of append auditing if
87131 + we're requesting write */
87132 + return (((reqmode & ~GR_AUDITS) << 10) | ((reqmode & GR_WRITE) ? GR_AUDIT_APPEND : 0));
87133 +}
87134 +
87135 +struct acl_role_label *
87136 +__lookup_acl_role_label(const struct gr_policy_state *state, const struct task_struct *task, const uid_t uid,
87137 + const gid_t gid)
87138 +{
87139 + unsigned int index = gr_rhash(uid, GR_ROLE_USER, state->acl_role_set.r_size);
87140 + struct acl_role_label *match;
87141 + struct role_allowed_ip *ipp;
87142 + unsigned int x;
87143 + u32 curr_ip = task->signal->saved_ip;
87144 +
87145 + match = state->acl_role_set.r_hash[index];
87146 +
87147 + while (match) {
87148 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_USER)) == (GR_ROLE_DOMAIN | GR_ROLE_USER)) {
87149 + for (x = 0; x < match->domain_child_num; x++) {
87150 + if (match->domain_children[x] == uid)
87151 + goto found;
87152 + }
87153 + } else if (match->uidgid == uid && match->roletype & GR_ROLE_USER)
87154 + break;
87155 + match = match->next;
87156 + }
87157 +found:
87158 + if (match == NULL) {
87159 + try_group:
87160 + index = gr_rhash(gid, GR_ROLE_GROUP, state->acl_role_set.r_size);
87161 + match = state->acl_role_set.r_hash[index];
87162 +
87163 + while (match) {
87164 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) == (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) {
87165 + for (x = 0; x < match->domain_child_num; x++) {
87166 + if (match->domain_children[x] == gid)
87167 + goto found2;
87168 + }
87169 + } else if (match->uidgid == gid && match->roletype & GR_ROLE_GROUP)
87170 + break;
87171 + match = match->next;
87172 + }
87173 +found2:
87174 + if (match == NULL)
87175 + match = state->default_role;
87176 + if (match->allowed_ips == NULL)
87177 + return match;
87178 + else {
87179 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
87180 + if (likely
87181 + ((ntohl(curr_ip) & ipp->netmask) ==
87182 + (ntohl(ipp->addr) & ipp->netmask)))
87183 + return match;
87184 + }
87185 + match = state->default_role;
87186 + }
87187 + } else if (match->allowed_ips == NULL) {
87188 + return match;
87189 + } else {
87190 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
87191 + if (likely
87192 + ((ntohl(curr_ip) & ipp->netmask) ==
87193 + (ntohl(ipp->addr) & ipp->netmask)))
87194 + return match;
87195 + }
87196 + goto try_group;
87197 + }
87198 +
87199 + return match;
87200 +}
87201 +
87202 +static struct acl_role_label *
87203 +lookup_acl_role_label(const struct task_struct *task, const uid_t uid,
87204 + const gid_t gid)
87205 +{
87206 + return __lookup_acl_role_label(&running_polstate, task, uid, gid);
87207 +}
87208 +
87209 +struct acl_subject_label *
87210 +lookup_acl_subj_label(const u64 ino, const dev_t dev,
87211 + const struct acl_role_label *role)
87212 +{
87213 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
87214 + struct acl_subject_label *match;
87215 +
87216 + match = role->subj_hash[index];
87217 +
87218 + while (match && (match->inode != ino || match->device != dev ||
87219 + (match->mode & GR_DELETED))) {
87220 + match = match->next;
87221 + }
87222 +
87223 + if (match && !(match->mode & GR_DELETED))
87224 + return match;
87225 + else
87226 + return NULL;
87227 +}
87228 +
87229 +struct acl_subject_label *
87230 +lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev,
87231 + const struct acl_role_label *role)
87232 +{
87233 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
87234 + struct acl_subject_label *match;
87235 +
87236 + match = role->subj_hash[index];
87237 +
87238 + while (match && (match->inode != ino || match->device != dev ||
87239 + !(match->mode & GR_DELETED))) {
87240 + match = match->next;
87241 + }
87242 +
87243 + if (match && (match->mode & GR_DELETED))
87244 + return match;
87245 + else
87246 + return NULL;
87247 +}
87248 +
87249 +static struct acl_object_label *
87250 +lookup_acl_obj_label(const u64 ino, const dev_t dev,
87251 + const struct acl_subject_label *subj)
87252 +{
87253 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
87254 + struct acl_object_label *match;
87255 +
87256 + match = subj->obj_hash[index];
87257 +
87258 + while (match && (match->inode != ino || match->device != dev ||
87259 + (match->mode & GR_DELETED))) {
87260 + match = match->next;
87261 + }
87262 +
87263 + if (match && !(match->mode & GR_DELETED))
87264 + return match;
87265 + else
87266 + return NULL;
87267 +}
87268 +
87269 +static struct acl_object_label *
87270 +lookup_acl_obj_label_create(const u64 ino, const dev_t dev,
87271 + const struct acl_subject_label *subj)
87272 +{
87273 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
87274 + struct acl_object_label *match;
87275 +
87276 + match = subj->obj_hash[index];
87277 +
87278 + while (match && (match->inode != ino || match->device != dev ||
87279 + !(match->mode & GR_DELETED))) {
87280 + match = match->next;
87281 + }
87282 +
87283 + if (match && (match->mode & GR_DELETED))
87284 + return match;
87285 +
87286 + match = subj->obj_hash[index];
87287 +
87288 + while (match && (match->inode != ino || match->device != dev ||
87289 + (match->mode & GR_DELETED))) {
87290 + match = match->next;
87291 + }
87292 +
87293 + if (match && !(match->mode & GR_DELETED))
87294 + return match;
87295 + else
87296 + return NULL;
87297 +}
87298 +
87299 +struct name_entry *
87300 +__lookup_name_entry(const struct gr_policy_state *state, const char *name)
87301 +{
87302 + unsigned int len = strlen(name);
87303 + unsigned int key = full_name_hash(name, len);
87304 + unsigned int index = key % state->name_set.n_size;
87305 + struct name_entry *match;
87306 +
87307 + match = state->name_set.n_hash[index];
87308 +
87309 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len)))
87310 + match = match->next;
87311 +
87312 + return match;
87313 +}
87314 +
87315 +static struct name_entry *
87316 +lookup_name_entry(const char *name)
87317 +{
87318 + return __lookup_name_entry(&running_polstate, name);
87319 +}
87320 +
87321 +static struct name_entry *
87322 +lookup_name_entry_create(const char *name)
87323 +{
87324 + unsigned int len = strlen(name);
87325 + unsigned int key = full_name_hash(name, len);
87326 + unsigned int index = key % running_polstate.name_set.n_size;
87327 + struct name_entry *match;
87328 +
87329 + match = running_polstate.name_set.n_hash[index];
87330 +
87331 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
87332 + !match->deleted))
87333 + match = match->next;
87334 +
87335 + if (match && match->deleted)
87336 + return match;
87337 +
87338 + match = running_polstate.name_set.n_hash[index];
87339 +
87340 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
87341 + match->deleted))
87342 + match = match->next;
87343 +
87344 + if (match && !match->deleted)
87345 + return match;
87346 + else
87347 + return NULL;
87348 +}
87349 +
87350 +static struct inodev_entry *
87351 +lookup_inodev_entry(const u64 ino, const dev_t dev)
87352 +{
87353 + unsigned int index = gr_fhash(ino, dev, running_polstate.inodev_set.i_size);
87354 + struct inodev_entry *match;
87355 +
87356 + match = running_polstate.inodev_set.i_hash[index];
87357 +
87358 + while (match && (match->nentry->inode != ino || match->nentry->device != dev))
87359 + match = match->next;
87360 +
87361 + return match;
87362 +}
87363 +
87364 +void
87365 +__insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry)
87366 +{
87367 + unsigned int index = gr_fhash(entry->nentry->inode, entry->nentry->device,
87368 + state->inodev_set.i_size);
87369 + struct inodev_entry **curr;
87370 +
87371 + entry->prev = NULL;
87372 +
87373 + curr = &state->inodev_set.i_hash[index];
87374 + if (*curr != NULL)
87375 + (*curr)->prev = entry;
87376 +
87377 + entry->next = *curr;
87378 + *curr = entry;
87379 +
87380 + return;
87381 +}
87382 +
87383 +static void
87384 +insert_inodev_entry(struct inodev_entry *entry)
87385 +{
87386 + __insert_inodev_entry(&running_polstate, entry);
87387 +}
87388 +
87389 +void
87390 +insert_acl_obj_label(struct acl_object_label *obj,
87391 + struct acl_subject_label *subj)
87392 +{
87393 + unsigned int index =
87394 + gr_fhash(obj->inode, obj->device, subj->obj_hash_size);
87395 + struct acl_object_label **curr;
87396 +
87397 + obj->prev = NULL;
87398 +
87399 + curr = &subj->obj_hash[index];
87400 + if (*curr != NULL)
87401 + (*curr)->prev = obj;
87402 +
87403 + obj->next = *curr;
87404 + *curr = obj;
87405 +
87406 + return;
87407 +}
87408 +
87409 +void
87410 +insert_acl_subj_label(struct acl_subject_label *obj,
87411 + struct acl_role_label *role)
87412 +{
87413 + unsigned int index = gr_fhash(obj->inode, obj->device, role->subj_hash_size);
87414 + struct acl_subject_label **curr;
87415 +
87416 + obj->prev = NULL;
87417 +
87418 + curr = &role->subj_hash[index];
87419 + if (*curr != NULL)
87420 + (*curr)->prev = obj;
87421 +
87422 + obj->next = *curr;
87423 + *curr = obj;
87424 +
87425 + return;
87426 +}
87427 +
87428 +/* derived from glibc fnmatch() 0: match, 1: no match*/
87429 +
87430 +static int
87431 +glob_match(const char *p, const char *n)
87432 +{
87433 + char c;
87434 +
87435 + while ((c = *p++) != '\0') {
87436 + switch (c) {
87437 + case '?':
87438 + if (*n == '\0')
87439 + return 1;
87440 + else if (*n == '/')
87441 + return 1;
87442 + break;
87443 + case '\\':
87444 + if (*n != c)
87445 + return 1;
87446 + break;
87447 + case '*':
87448 + for (c = *p++; c == '?' || c == '*'; c = *p++) {
87449 + if (*n == '/')
87450 + return 1;
87451 + else if (c == '?') {
87452 + if (*n == '\0')
87453 + return 1;
87454 + else
87455 + ++n;
87456 + }
87457 + }
87458 + if (c == '\0') {
87459 + return 0;
87460 + } else {
87461 + const char *endp;
87462 +
87463 + if ((endp = strchr(n, '/')) == NULL)
87464 + endp = n + strlen(n);
87465 +
87466 + if (c == '[') {
87467 + for (--p; n < endp; ++n)
87468 + if (!glob_match(p, n))
87469 + return 0;
87470 + } else if (c == '/') {
87471 + while (*n != '\0' && *n != '/')
87472 + ++n;
87473 + if (*n == '/' && !glob_match(p, n + 1))
87474 + return 0;
87475 + } else {
87476 + for (--p; n < endp; ++n)
87477 + if (*n == c && !glob_match(p, n))
87478 + return 0;
87479 + }
87480 +
87481 + return 1;
87482 + }
87483 + case '[':
87484 + {
87485 + int not;
87486 + char cold;
87487 +
87488 + if (*n == '\0' || *n == '/')
87489 + return 1;
87490 +
87491 + not = (*p == '!' || *p == '^');
87492 + if (not)
87493 + ++p;
87494 +
87495 + c = *p++;
87496 + for (;;) {
87497 + unsigned char fn = (unsigned char)*n;
87498 +
87499 + if (c == '\0')
87500 + return 1;
87501 + else {
87502 + if (c == fn)
87503 + goto matched;
87504 + cold = c;
87505 + c = *p++;
87506 +
87507 + if (c == '-' && *p != ']') {
87508 + unsigned char cend = *p++;
87509 +
87510 + if (cend == '\0')
87511 + return 1;
87512 +
87513 + if (cold <= fn && fn <= cend)
87514 + goto matched;
87515 +
87516 + c = *p++;
87517 + }
87518 + }
87519 +
87520 + if (c == ']')
87521 + break;
87522 + }
87523 + if (!not)
87524 + return 1;
87525 + break;
87526 + matched:
87527 + while (c != ']') {
87528 + if (c == '\0')
87529 + return 1;
87530 +
87531 + c = *p++;
87532 + }
87533 + if (not)
87534 + return 1;
87535 + }
87536 + break;
87537 + default:
87538 + if (c != *n)
87539 + return 1;
87540 + }
87541 +
87542 + ++n;
87543 + }
87544 +
87545 + if (*n == '\0')
87546 + return 0;
87547 +
87548 + if (*n == '/')
87549 + return 0;
87550 +
87551 + return 1;
87552 +}
87553 +
87554 +static struct acl_object_label *
87555 +chk_glob_label(struct acl_object_label *globbed,
87556 + const struct dentry *dentry, const struct vfsmount *mnt, char **path)
87557 +{
87558 + struct acl_object_label *tmp;
87559 +
87560 + if (*path == NULL)
87561 + *path = gr_to_filename_nolock(dentry, mnt);
87562 +
87563 + tmp = globbed;
87564 +
87565 + while (tmp) {
87566 + if (!glob_match(tmp->filename, *path))
87567 + return tmp;
87568 + tmp = tmp->next;
87569 + }
87570 +
87571 + return NULL;
87572 +}
87573 +
87574 +static struct acl_object_label *
87575 +__full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
87576 + const u64 curr_ino, const dev_t curr_dev,
87577 + const struct acl_subject_label *subj, char **path, const int checkglob)
87578 +{
87579 + struct acl_subject_label *tmpsubj;
87580 + struct acl_object_label *retval;
87581 + struct acl_object_label *retval2;
87582 +
87583 + tmpsubj = (struct acl_subject_label *) subj;
87584 + read_lock(&gr_inode_lock);
87585 + do {
87586 + retval = lookup_acl_obj_label(curr_ino, curr_dev, tmpsubj);
87587 + if (retval) {
87588 + if (checkglob && retval->globbed) {
87589 + retval2 = chk_glob_label(retval->globbed, orig_dentry, orig_mnt, path);
87590 + if (retval2)
87591 + retval = retval2;
87592 + }
87593 + break;
87594 + }
87595 + } while ((tmpsubj = tmpsubj->parent_subject));
87596 + read_unlock(&gr_inode_lock);
87597 +
87598 + return retval;
87599 +}
87600 +
87601 +static struct acl_object_label *
87602 +full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
87603 + struct dentry *curr_dentry,
87604 + const struct acl_subject_label *subj, char **path, const int checkglob)
87605 +{
87606 + int newglob = checkglob;
87607 + u64 inode;
87608 + dev_t device;
87609 +
87610 + /* if we aren't checking a subdirectory of the original path yet, don't do glob checking
87611 + as we don't want a / * rule to match instead of the / object
87612 + don't do this for create lookups that call this function though, since they're looking up
87613 + on the parent and thus need globbing checks on all paths
87614 + */
87615 + if (orig_dentry == curr_dentry && newglob != GR_CREATE_GLOB)
87616 + newglob = GR_NO_GLOB;
87617 +
87618 + spin_lock(&curr_dentry->d_lock);
87619 + inode = __get_ino(curr_dentry);
87620 + device = __get_dev(curr_dentry);
87621 + spin_unlock(&curr_dentry->d_lock);
87622 +
87623 + return __full_lookup(orig_dentry, orig_mnt, inode, device, subj, path, newglob);
87624 +}
87625 +
87626 +#ifdef CONFIG_HUGETLBFS
87627 +static inline bool
87628 +is_hugetlbfs_mnt(const struct vfsmount *mnt)
87629 +{
87630 + int i;
87631 + for (i = 0; i < HUGE_MAX_HSTATE; i++) {
87632 + if (unlikely(hugetlbfs_vfsmount[i] == mnt))
87633 + return true;
87634 + }
87635 +
87636 + return false;
87637 +}
87638 +#endif
87639 +
87640 +static struct acl_object_label *
87641 +__chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87642 + const struct acl_subject_label *subj, char *path, const int checkglob)
87643 +{
87644 + struct dentry *dentry = (struct dentry *) l_dentry;
87645 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
87646 + struct inode * inode = d_backing_inode(dentry);
87647 + struct mount *real_mnt = real_mount(mnt);
87648 + struct acl_object_label *retval;
87649 + struct dentry *parent;
87650 +
87651 + read_seqlock_excl(&mount_lock);
87652 + write_seqlock(&rename_lock);
87653 +
87654 + if (unlikely((mnt == shm_mnt && inode->i_nlink == 0) || mnt == pipe_mnt ||
87655 +#ifdef CONFIG_NET
87656 + mnt == sock_mnt ||
87657 +#endif
87658 +#ifdef CONFIG_HUGETLBFS
87659 + (is_hugetlbfs_mnt(mnt) && inode->i_nlink == 0) ||
87660 +#endif
87661 + /* ignore Eric Biederman */
87662 + IS_PRIVATE(inode))) {
87663 + retval = (subj->mode & GR_SHMEXEC) ? fakefs_obj_rwx : fakefs_obj_rw;
87664 + goto out;
87665 + }
87666 +
87667 + for (;;) {
87668 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
87669 + break;
87670 +
87671 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
87672 + if (!mnt_has_parent(real_mnt))
87673 + break;
87674 +
87675 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87676 + if (retval != NULL)
87677 + goto out;
87678 +
87679 + dentry = real_mnt->mnt_mountpoint;
87680 + real_mnt = real_mnt->mnt_parent;
87681 + mnt = &real_mnt->mnt;
87682 + continue;
87683 + }
87684 +
87685 + parent = dentry->d_parent;
87686 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87687 + if (retval != NULL)
87688 + goto out;
87689 +
87690 + dentry = parent;
87691 + }
87692 +
87693 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87694 +
87695 + /* gr_real_root is pinned so we don't have to hold a reference */
87696 + if (retval == NULL)
87697 + retval = full_lookup(l_dentry, l_mnt, gr_real_root.dentry, subj, &path, checkglob);
87698 +out:
87699 + write_sequnlock(&rename_lock);
87700 + read_sequnlock_excl(&mount_lock);
87701 +
87702 + BUG_ON(retval == NULL);
87703 +
87704 + return retval;
87705 +}
87706 +
87707 +static struct acl_object_label *
87708 +chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87709 + const struct acl_subject_label *subj)
87710 +{
87711 + char *path = NULL;
87712 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_REG_GLOB);
87713 +}
87714 +
87715 +static struct acl_object_label *
87716 +chk_obj_label_noglob(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87717 + const struct acl_subject_label *subj)
87718 +{
87719 + char *path = NULL;
87720 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_NO_GLOB);
87721 +}
87722 +
87723 +static struct acl_object_label *
87724 +chk_obj_create_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87725 + const struct acl_subject_label *subj, char *path)
87726 +{
87727 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_CREATE_GLOB);
87728 +}
87729 +
87730 +struct acl_subject_label *
87731 +chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87732 + const struct acl_role_label *role)
87733 +{
87734 + struct dentry *dentry = (struct dentry *) l_dentry;
87735 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
87736 + struct mount *real_mnt = real_mount(mnt);
87737 + struct acl_subject_label *retval;
87738 + struct dentry *parent;
87739 +
87740 + read_seqlock_excl(&mount_lock);
87741 + write_seqlock(&rename_lock);
87742 +
87743 + for (;;) {
87744 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
87745 + break;
87746 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
87747 + if (!mnt_has_parent(real_mnt))
87748 + break;
87749 +
87750 + spin_lock(&dentry->d_lock);
87751 + read_lock(&gr_inode_lock);
87752 + retval =
87753 + lookup_acl_subj_label(__get_ino(dentry),
87754 + __get_dev(dentry), role);
87755 + read_unlock(&gr_inode_lock);
87756 + spin_unlock(&dentry->d_lock);
87757 + if (retval != NULL)
87758 + goto out;
87759 +
87760 + dentry = real_mnt->mnt_mountpoint;
87761 + real_mnt = real_mnt->mnt_parent;
87762 + mnt = &real_mnt->mnt;
87763 + continue;
87764 + }
87765 +
87766 + spin_lock(&dentry->d_lock);
87767 + read_lock(&gr_inode_lock);
87768 + retval = lookup_acl_subj_label(__get_ino(dentry),
87769 + __get_dev(dentry), role);
87770 + read_unlock(&gr_inode_lock);
87771 + parent = dentry->d_parent;
87772 + spin_unlock(&dentry->d_lock);
87773 +
87774 + if (retval != NULL)
87775 + goto out;
87776 +
87777 + dentry = parent;
87778 + }
87779 +
87780 + spin_lock(&dentry->d_lock);
87781 + read_lock(&gr_inode_lock);
87782 + retval = lookup_acl_subj_label(__get_ino(dentry),
87783 + __get_dev(dentry), role);
87784 + read_unlock(&gr_inode_lock);
87785 + spin_unlock(&dentry->d_lock);
87786 +
87787 + if (unlikely(retval == NULL)) {
87788 + /* gr_real_root is pinned, we don't need to hold a reference */
87789 + read_lock(&gr_inode_lock);
87790 + retval = lookup_acl_subj_label(__get_ino(gr_real_root.dentry),
87791 + __get_dev(gr_real_root.dentry), role);
87792 + read_unlock(&gr_inode_lock);
87793 + }
87794 +out:
87795 + write_sequnlock(&rename_lock);
87796 + read_sequnlock_excl(&mount_lock);
87797 +
87798 + BUG_ON(retval == NULL);
87799 +
87800 + return retval;
87801 +}
87802 +
87803 +void
87804 +assign_special_role(const char *rolename)
87805 +{
87806 + struct acl_object_label *obj;
87807 + struct acl_role_label *r;
87808 + struct acl_role_label *assigned = NULL;
87809 + struct task_struct *tsk;
87810 + struct file *filp;
87811 +
87812 + FOR_EACH_ROLE_START(r)
87813 + if (!strcmp(rolename, r->rolename) &&
87814 + (r->roletype & GR_ROLE_SPECIAL)) {
87815 + assigned = r;
87816 + break;
87817 + }
87818 + FOR_EACH_ROLE_END(r)
87819 +
87820 + if (!assigned)
87821 + return;
87822 +
87823 + read_lock(&tasklist_lock);
87824 + read_lock(&grsec_exec_file_lock);
87825 +
87826 + tsk = current->real_parent;
87827 + if (tsk == NULL)
87828 + goto out_unlock;
87829 +
87830 + filp = tsk->exec_file;
87831 + if (filp == NULL)
87832 + goto out_unlock;
87833 +
87834 + tsk->is_writable = 0;
87835 + tsk->inherited = 0;
87836 +
87837 + tsk->acl_sp_role = 1;
87838 + tsk->acl_role_id = ++acl_sp_role_value;
87839 + tsk->role = assigned;
87840 + tsk->acl = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role);
87841 +
87842 + /* ignore additional mmap checks for processes that are writable
87843 + by the default ACL */
87844 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
87845 + if (unlikely(obj->mode & GR_WRITE))
87846 + tsk->is_writable = 1;
87847 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role->root_label);
87848 + if (unlikely(obj->mode & GR_WRITE))
87849 + tsk->is_writable = 1;
87850 +
87851 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87852 + printk(KERN_ALERT "Assigning special role:%s subject:%s to process (%s:%d)\n", tsk->role->rolename,
87853 + tsk->acl->filename, tsk->comm, task_pid_nr(tsk));
87854 +#endif
87855 +
87856 +out_unlock:
87857 + read_unlock(&grsec_exec_file_lock);
87858 + read_unlock(&tasklist_lock);
87859 + return;
87860 +}
87861 +
87862 +
87863 +static void
87864 +gr_log_learn(const struct dentry *dentry, const struct vfsmount *mnt, const __u32 mode)
87865 +{
87866 + struct task_struct *task = current;
87867 + const struct cred *cred = current_cred();
87868 +
87869 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename, task->role->roletype,
87870 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87871 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87872 + 1UL, 1UL, gr_to_filename(dentry, mnt), (unsigned long) mode, &task->signal->saved_ip);
87873 +
87874 + return;
87875 +}
87876 +
87877 +static void
87878 +gr_log_learn_uid_change(const kuid_t real, const kuid_t effective, const kuid_t fs)
87879 +{
87880 + struct task_struct *task = current;
87881 + const struct cred *cred = current_cred();
87882 +
87883 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
87884 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87885 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87886 + 'u', GR_GLOBAL_UID(real), GR_GLOBAL_UID(effective), GR_GLOBAL_UID(fs), &task->signal->saved_ip);
87887 +
87888 + return;
87889 +}
87890 +
87891 +static void
87892 +gr_log_learn_gid_change(const kgid_t real, const kgid_t effective, const kgid_t fs)
87893 +{
87894 + struct task_struct *task = current;
87895 + const struct cred *cred = current_cred();
87896 +
87897 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
87898 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87899 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87900 + 'g', GR_GLOBAL_GID(real), GR_GLOBAL_GID(effective), GR_GLOBAL_GID(fs), &task->signal->saved_ip);
87901 +
87902 + return;
87903 +}
87904 +
87905 +static void
87906 +gr_set_proc_res(struct task_struct *task)
87907 +{
87908 + struct acl_subject_label *proc;
87909 + unsigned short i;
87910 +
87911 + proc = task->acl;
87912 +
87913 + if (proc->mode & (GR_LEARN | GR_INHERITLEARN))
87914 + return;
87915 +
87916 + for (i = 0; i < RLIM_NLIMITS; i++) {
87917 + unsigned long rlim_cur, rlim_max;
87918 +
87919 + if (!(proc->resmask & (1U << i)))
87920 + continue;
87921 +
87922 + rlim_cur = proc->res[i].rlim_cur;
87923 + rlim_max = proc->res[i].rlim_max;
87924 +
87925 + if (i == RLIMIT_NOFILE) {
87926 + unsigned long saved_sysctl_nr_open = sysctl_nr_open;
87927 + if (rlim_cur > saved_sysctl_nr_open)
87928 + rlim_cur = saved_sysctl_nr_open;
87929 + if (rlim_max > saved_sysctl_nr_open)
87930 + rlim_max = saved_sysctl_nr_open;
87931 + }
87932 +
87933 + task->signal->rlim[i].rlim_cur = rlim_cur;
87934 + task->signal->rlim[i].rlim_max = rlim_max;
87935 +
87936 + if (i == RLIMIT_CPU)
87937 + update_rlimit_cpu(task, rlim_cur);
87938 + }
87939 +
87940 + return;
87941 +}
87942 +
87943 +/* both of the below must be called with
87944 + rcu_read_lock();
87945 + read_lock(&tasklist_lock);
87946 + read_lock(&grsec_exec_file_lock);
87947 + except in the case of gr_set_role_label() (for __gr_get_subject_for_task)
87948 +*/
87949 +
87950 +struct acl_subject_label *__gr_get_subject_for_task(const struct gr_policy_state *state, struct task_struct *task, const char *filename, int fallback)
87951 +{
87952 + char *tmpname;
87953 + struct acl_subject_label *tmpsubj;
87954 + struct file *filp;
87955 + struct name_entry *nmatch;
87956 +
87957 + filp = task->exec_file;
87958 + if (filp == NULL)
87959 + return NULL;
87960 +
87961 + /* the following is to apply the correct subject
87962 + on binaries running when the RBAC system
87963 + is enabled, when the binaries have been
87964 + replaced or deleted since their execution
87965 + -----
87966 + when the RBAC system starts, the inode/dev
87967 + from exec_file will be one the RBAC system
87968 + is unaware of. It only knows the inode/dev
87969 + of the present file on disk, or the absence
87970 + of it.
87971 + */
87972 +
87973 + if (filename)
87974 + nmatch = __lookup_name_entry(state, filename);
87975 + else {
87976 + preempt_disable();
87977 + tmpname = gr_to_filename_rbac(filp->f_path.dentry, filp->f_path.mnt);
87978 +
87979 + nmatch = __lookup_name_entry(state, tmpname);
87980 + preempt_enable();
87981 + }
87982 + tmpsubj = NULL;
87983 + if (nmatch) {
87984 + if (nmatch->deleted)
87985 + tmpsubj = lookup_acl_subj_label_deleted(nmatch->inode, nmatch->device, task->role);
87986 + else
87987 + tmpsubj = lookup_acl_subj_label(nmatch->inode, nmatch->device, task->role);
87988 + }
87989 + /* this also works for the reload case -- if we don't match a potentially inherited subject
87990 + then we fall back to a normal lookup based on the binary's ino/dev
87991 + */
87992 + if (tmpsubj == NULL && fallback)
87993 + tmpsubj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, task->role);
87994 +
87995 + return tmpsubj;
87996 +}
87997 +
87998 +static struct acl_subject_label *gr_get_subject_for_task(struct task_struct *task, const char *filename, int fallback)
87999 +{
88000 + return __gr_get_subject_for_task(&running_polstate, task, filename, fallback);
88001 +}
88002 +
88003 +void __gr_apply_subject_to_task(const struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj)
88004 +{
88005 + struct acl_object_label *obj;
88006 + struct file *filp;
88007 +
88008 + filp = task->exec_file;
88009 +
88010 + task->acl = subj;
88011 + task->is_writable = 0;
88012 + /* ignore additional mmap checks for processes that are writable
88013 + by the default ACL */
88014 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, state->default_role->root_label);
88015 + if (unlikely(obj->mode & GR_WRITE))
88016 + task->is_writable = 1;
88017 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
88018 + if (unlikely(obj->mode & GR_WRITE))
88019 + task->is_writable = 1;
88020 +
88021 + gr_set_proc_res(task);
88022 +
88023 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
88024 + 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);
88025 +#endif
88026 +}
88027 +
88028 +static void gr_apply_subject_to_task(struct task_struct *task, struct acl_subject_label *subj)
88029 +{
88030 + __gr_apply_subject_to_task(&running_polstate, task, subj);
88031 +}
88032 +
88033 +__u32
88034 +gr_search_file(const struct dentry * dentry, const __u32 mode,
88035 + const struct vfsmount * mnt)
88036 +{
88037 + __u32 retval = mode;
88038 + struct acl_subject_label *curracl;
88039 + struct acl_object_label *currobj;
88040 +
88041 + if (unlikely(!(gr_status & GR_READY)))
88042 + return (mode & ~GR_AUDITS);
88043 +
88044 + curracl = current->acl;
88045 +
88046 + currobj = chk_obj_label(dentry, mnt, curracl);
88047 + retval = currobj->mode & mode;
88048 +
88049 + /* if we're opening a specified transfer file for writing
88050 + (e.g. /dev/initctl), then transfer our role to init
88051 + */
88052 + if (unlikely(currobj->mode & GR_INIT_TRANSFER && retval & GR_WRITE &&
88053 + current->role->roletype & GR_ROLE_PERSIST)) {
88054 + struct task_struct *task = init_pid_ns.child_reaper;
88055 +
88056 + if (task->role != current->role) {
88057 + struct acl_subject_label *subj;
88058 +
88059 + task->acl_sp_role = 0;
88060 + task->acl_role_id = current->acl_role_id;
88061 + task->role = current->role;
88062 + rcu_read_lock();
88063 + read_lock(&grsec_exec_file_lock);
88064 + subj = gr_get_subject_for_task(task, NULL, 1);
88065 + gr_apply_subject_to_task(task, subj);
88066 + read_unlock(&grsec_exec_file_lock);
88067 + rcu_read_unlock();
88068 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_INIT_TRANSFER_MSG);
88069 + }
88070 + }
88071 +
88072 + if (unlikely
88073 + ((curracl->mode & (GR_LEARN | GR_INHERITLEARN)) && !(mode & GR_NOPTRACE)
88074 + && (retval != (mode & ~(GR_AUDITS | GR_SUPPRESS))))) {
88075 + __u32 new_mode = mode;
88076 +
88077 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
88078 +
88079 + retval = new_mode;
88080 +
88081 + if (new_mode & GR_EXEC && curracl->mode & GR_INHERITLEARN)
88082 + new_mode |= GR_INHERIT;
88083 +
88084 + if (!(mode & GR_NOLEARN))
88085 + gr_log_learn(dentry, mnt, new_mode);
88086 + }
88087 +
88088 + return retval;
88089 +}
88090 +
88091 +struct acl_object_label *gr_get_create_object(const struct dentry *new_dentry,
88092 + const struct dentry *parent,
88093 + const struct vfsmount *mnt)
88094 +{
88095 + struct name_entry *match;
88096 + struct acl_object_label *matchpo;
88097 + struct acl_subject_label *curracl;
88098 + char *path;
88099 +
88100 + if (unlikely(!(gr_status & GR_READY)))
88101 + return NULL;
88102 +
88103 + preempt_disable();
88104 + path = gr_to_filename_rbac(new_dentry, mnt);
88105 + match = lookup_name_entry_create(path);
88106 +
88107 + curracl = current->acl;
88108 +
88109 + if (match) {
88110 + read_lock(&gr_inode_lock);
88111 + matchpo = lookup_acl_obj_label_create(match->inode, match->device, curracl);
88112 + read_unlock(&gr_inode_lock);
88113 +
88114 + if (matchpo) {
88115 + preempt_enable();
88116 + return matchpo;
88117 + }
88118 + }
88119 +
88120 + // lookup parent
88121 +
88122 + matchpo = chk_obj_create_label(parent, mnt, curracl, path);
88123 +
88124 + preempt_enable();
88125 + return matchpo;
88126 +}
88127 +
88128 +__u32
88129 +gr_check_create(const struct dentry * new_dentry, const struct dentry * parent,
88130 + const struct vfsmount * mnt, const __u32 mode)
88131 +{
88132 + struct acl_object_label *matchpo;
88133 + __u32 retval;
88134 +
88135 + if (unlikely(!(gr_status & GR_READY)))
88136 + return (mode & ~GR_AUDITS);
88137 +
88138 + matchpo = gr_get_create_object(new_dentry, parent, mnt);
88139 +
88140 + retval = matchpo->mode & mode;
88141 +
88142 + if ((retval != (mode & ~(GR_AUDITS | GR_SUPPRESS)))
88143 + && (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
88144 + __u32 new_mode = mode;
88145 +
88146 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
88147 +
88148 + gr_log_learn(new_dentry, mnt, new_mode);
88149 + return new_mode;
88150 + }
88151 +
88152 + return retval;
88153 +}
88154 +
88155 +__u32
88156 +gr_check_link(const struct dentry * new_dentry,
88157 + const struct dentry * parent_dentry,
88158 + const struct vfsmount * parent_mnt,
88159 + const struct dentry * old_dentry, const struct vfsmount * old_mnt)
88160 +{
88161 + struct acl_object_label *obj;
88162 + __u32 oldmode, newmode;
88163 + __u32 needmode;
88164 + __u32 checkmodes = GR_FIND | GR_APPEND | GR_WRITE | GR_EXEC | GR_SETID | GR_READ |
88165 + GR_DELETE | GR_INHERIT;
88166 +
88167 + if (unlikely(!(gr_status & GR_READY)))
88168 + return (GR_CREATE | GR_LINK);
88169 +
88170 + obj = chk_obj_label(old_dentry, old_mnt, current->acl);
88171 + oldmode = obj->mode;
88172 +
88173 + obj = gr_get_create_object(new_dentry, parent_dentry, parent_mnt);
88174 + newmode = obj->mode;
88175 +
88176 + needmode = newmode & checkmodes;
88177 +
88178 + // old name for hardlink must have at least the permissions of the new name
88179 + if ((oldmode & needmode) != needmode)
88180 + goto bad;
88181 +
88182 + // if old name had restrictions/auditing, make sure the new name does as well
88183 + needmode = oldmode & (GR_NOPTRACE | GR_PTRACERD | GR_INHERIT | GR_AUDITS);
88184 +
88185 + // don't allow hardlinking of suid/sgid/fcapped files without permission
88186 + if (is_privileged_binary(old_dentry))
88187 + needmode |= GR_SETID;
88188 +
88189 + if ((newmode & needmode) != needmode)
88190 + goto bad;
88191 +
88192 + // enforce minimum permissions
88193 + if ((newmode & (GR_CREATE | GR_LINK)) == (GR_CREATE | GR_LINK))
88194 + return newmode;
88195 +bad:
88196 + needmode = oldmode;
88197 + if (is_privileged_binary(old_dentry))
88198 + needmode |= GR_SETID;
88199 +
88200 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN)) {
88201 + gr_log_learn(old_dentry, old_mnt, needmode | GR_CREATE | GR_LINK);
88202 + return (GR_CREATE | GR_LINK);
88203 + } else if (newmode & GR_SUPPRESS)
88204 + return GR_SUPPRESS;
88205 + else
88206 + return 0;
88207 +}
88208 +
88209 +int
88210 +gr_check_hidden_task(const struct task_struct *task)
88211 +{
88212 + if (unlikely(!(gr_status & GR_READY)))
88213 + return 0;
88214 +
88215 + if (!(task->acl->mode & GR_PROCFIND) && !(current->acl->mode & GR_VIEW))
88216 + return 1;
88217 +
88218 + return 0;
88219 +}
88220 +
88221 +int
88222 +gr_check_protected_task(const struct task_struct *task)
88223 +{
88224 + if (unlikely(!(gr_status & GR_READY) || !task))
88225 + return 0;
88226 +
88227 + if ((task->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
88228 + task->acl != current->acl)
88229 + return 1;
88230 +
88231 + return 0;
88232 +}
88233 +
88234 +int
88235 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
88236 +{
88237 + struct task_struct *p;
88238 + int ret = 0;
88239 +
88240 + if (unlikely(!(gr_status & GR_READY) || !pid))
88241 + return ret;
88242 +
88243 + read_lock(&tasklist_lock);
88244 + do_each_pid_task(pid, type, p) {
88245 + if ((p->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
88246 + p->acl != current->acl) {
88247 + ret = 1;
88248 + goto out;
88249 + }
88250 + } while_each_pid_task(pid, type, p);
88251 +out:
88252 + read_unlock(&tasklist_lock);
88253 +
88254 + return ret;
88255 +}
88256 +
88257 +void
88258 +gr_copy_label(struct task_struct *tsk)
88259 +{
88260 + struct task_struct *p = current;
88261 +
88262 + tsk->inherited = p->inherited;
88263 + tsk->acl_sp_role = 0;
88264 + tsk->acl_role_id = p->acl_role_id;
88265 + tsk->acl = p->acl;
88266 + tsk->role = p->role;
88267 + tsk->signal->used_accept = 0;
88268 + tsk->signal->curr_ip = p->signal->curr_ip;
88269 + tsk->signal->saved_ip = p->signal->saved_ip;
88270 + if (p->exec_file)
88271 + get_file(p->exec_file);
88272 + tsk->exec_file = p->exec_file;
88273 + tsk->is_writable = p->is_writable;
88274 + if (unlikely(p->signal->used_accept)) {
88275 + p->signal->curr_ip = 0;
88276 + p->signal->saved_ip = 0;
88277 + }
88278 +
88279 + return;
88280 +}
88281 +
88282 +extern int gr_process_kernel_setuid_ban(struct user_struct *user);
88283 +
88284 +int
88285 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
88286 +{
88287 + unsigned int i;
88288 + __u16 num;
88289 + uid_t *uidlist;
88290 + uid_t curuid;
88291 + int realok = 0;
88292 + int effectiveok = 0;
88293 + int fsok = 0;
88294 + uid_t globalreal, globaleffective, globalfs;
88295 +
88296 +#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT)
88297 + struct user_struct *user;
88298 +
88299 + if (!uid_valid(real))
88300 + goto skipit;
88301 +
88302 + /* find user based on global namespace */
88303 +
88304 + globalreal = GR_GLOBAL_UID(real);
88305 +
88306 + user = find_user(make_kuid(&init_user_ns, globalreal));
88307 + if (user == NULL)
88308 + goto skipit;
88309 +
88310 + if (gr_process_kernel_setuid_ban(user)) {
88311 + /* for find_user */
88312 + free_uid(user);
88313 + return 1;
88314 + }
88315 +
88316 + /* for find_user */
88317 + free_uid(user);
88318 +
88319 +skipit:
88320 +#endif
88321 +
88322 + if (unlikely(!(gr_status & GR_READY)))
88323 + return 0;
88324 +
88325 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
88326 + gr_log_learn_uid_change(real, effective, fs);
88327 +
88328 + num = current->acl->user_trans_num;
88329 + uidlist = current->acl->user_transitions;
88330 +
88331 + if (uidlist == NULL)
88332 + return 0;
88333 +
88334 + if (!uid_valid(real)) {
88335 + realok = 1;
88336 + globalreal = (uid_t)-1;
88337 + } else {
88338 + globalreal = GR_GLOBAL_UID(real);
88339 + }
88340 + if (!uid_valid(effective)) {
88341 + effectiveok = 1;
88342 + globaleffective = (uid_t)-1;
88343 + } else {
88344 + globaleffective = GR_GLOBAL_UID(effective);
88345 + }
88346 + if (!uid_valid(fs)) {
88347 + fsok = 1;
88348 + globalfs = (uid_t)-1;
88349 + } else {
88350 + globalfs = GR_GLOBAL_UID(fs);
88351 + }
88352 +
88353 + if (current->acl->user_trans_type & GR_ID_ALLOW) {
88354 + for (i = 0; i < num; i++) {
88355 + curuid = uidlist[i];
88356 + if (globalreal == curuid)
88357 + realok = 1;
88358 + if (globaleffective == curuid)
88359 + effectiveok = 1;
88360 + if (globalfs == curuid)
88361 + fsok = 1;
88362 + }
88363 + } else if (current->acl->user_trans_type & GR_ID_DENY) {
88364 + for (i = 0; i < num; i++) {
88365 + curuid = uidlist[i];
88366 + if (globalreal == curuid)
88367 + break;
88368 + if (globaleffective == curuid)
88369 + break;
88370 + if (globalfs == curuid)
88371 + break;
88372 + }
88373 + /* not in deny list */
88374 + if (i == num) {
88375 + realok = 1;
88376 + effectiveok = 1;
88377 + fsok = 1;
88378 + }
88379 + }
88380 +
88381 + if (realok && effectiveok && fsok)
88382 + return 0;
88383 + else {
88384 + gr_log_int(GR_DONT_AUDIT, GR_USRCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
88385 + return 1;
88386 + }
88387 +}
88388 +
88389 +int
88390 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
88391 +{
88392 + unsigned int i;
88393 + __u16 num;
88394 + gid_t *gidlist;
88395 + gid_t curgid;
88396 + int realok = 0;
88397 + int effectiveok = 0;
88398 + int fsok = 0;
88399 + gid_t globalreal, globaleffective, globalfs;
88400 +
88401 + if (unlikely(!(gr_status & GR_READY)))
88402 + return 0;
88403 +
88404 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
88405 + gr_log_learn_gid_change(real, effective, fs);
88406 +
88407 + num = current->acl->group_trans_num;
88408 + gidlist = current->acl->group_transitions;
88409 +
88410 + if (gidlist == NULL)
88411 + return 0;
88412 +
88413 + if (!gid_valid(real)) {
88414 + realok = 1;
88415 + globalreal = (gid_t)-1;
88416 + } else {
88417 + globalreal = GR_GLOBAL_GID(real);
88418 + }
88419 + if (!gid_valid(effective)) {
88420 + effectiveok = 1;
88421 + globaleffective = (gid_t)-1;
88422 + } else {
88423 + globaleffective = GR_GLOBAL_GID(effective);
88424 + }
88425 + if (!gid_valid(fs)) {
88426 + fsok = 1;
88427 + globalfs = (gid_t)-1;
88428 + } else {
88429 + globalfs = GR_GLOBAL_GID(fs);
88430 + }
88431 +
88432 + if (current->acl->group_trans_type & GR_ID_ALLOW) {
88433 + for (i = 0; i < num; i++) {
88434 + curgid = gidlist[i];
88435 + if (globalreal == curgid)
88436 + realok = 1;
88437 + if (globaleffective == curgid)
88438 + effectiveok = 1;
88439 + if (globalfs == curgid)
88440 + fsok = 1;
88441 + }
88442 + } else if (current->acl->group_trans_type & GR_ID_DENY) {
88443 + for (i = 0; i < num; i++) {
88444 + curgid = gidlist[i];
88445 + if (globalreal == curgid)
88446 + break;
88447 + if (globaleffective == curgid)
88448 + break;
88449 + if (globalfs == curgid)
88450 + break;
88451 + }
88452 + /* not in deny list */
88453 + if (i == num) {
88454 + realok = 1;
88455 + effectiveok = 1;
88456 + fsok = 1;
88457 + }
88458 + }
88459 +
88460 + if (realok && effectiveok && fsok)
88461 + return 0;
88462 + else {
88463 + gr_log_int(GR_DONT_AUDIT, GR_GRPCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
88464 + return 1;
88465 + }
88466 +}
88467 +
88468 +extern int gr_acl_is_capable(const int cap);
88469 +
88470 +void
88471 +gr_set_role_label(struct task_struct *task, const kuid_t kuid, const kgid_t kgid)
88472 +{
88473 + struct acl_role_label *role = task->role;
88474 + struct acl_role_label *origrole = role;
88475 + struct acl_subject_label *subj = NULL;
88476 + struct acl_object_label *obj;
88477 + struct file *filp;
88478 + uid_t uid;
88479 + gid_t gid;
88480 +
88481 + if (unlikely(!(gr_status & GR_READY)))
88482 + return;
88483 +
88484 + uid = GR_GLOBAL_UID(kuid);
88485 + gid = GR_GLOBAL_GID(kgid);
88486 +
88487 + filp = task->exec_file;
88488 +
88489 + /* kernel process, we'll give them the kernel role */
88490 + if (unlikely(!filp)) {
88491 + task->role = running_polstate.kernel_role;
88492 + task->acl = running_polstate.kernel_role->root_label;
88493 + return;
88494 + } else if (!task->role || !(task->role->roletype & GR_ROLE_SPECIAL)) {
88495 + /* save the current ip at time of role lookup so that the proper
88496 + IP will be learned for role_allowed_ip */
88497 + task->signal->saved_ip = task->signal->curr_ip;
88498 + role = lookup_acl_role_label(task, uid, gid);
88499 + }
88500 +
88501 + /* don't change the role if we're not a privileged process */
88502 + if (role && task->role != role &&
88503 + (((role->roletype & GR_ROLE_USER) && !gr_acl_is_capable(CAP_SETUID)) ||
88504 + ((role->roletype & GR_ROLE_GROUP) && !gr_acl_is_capable(CAP_SETGID))))
88505 + return;
88506 +
88507 + task->role = role;
88508 +
88509 + if (task->inherited) {
88510 + /* if we reached our subject through inheritance, then first see
88511 + if there's a subject of the same name in the new role that has
88512 + an object that would result in the same inherited subject
88513 + */
88514 + subj = gr_get_subject_for_task(task, task->acl->filename, 0);
88515 + if (subj) {
88516 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, subj);
88517 + if (!(obj->mode & GR_INHERIT))
88518 + subj = NULL;
88519 + }
88520 +
88521 + }
88522 + if (subj == NULL) {
88523 + /* otherwise:
88524 + perform subject lookup in possibly new role
88525 + we can use this result below in the case where role == task->role
88526 + */
88527 + subj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, role);
88528 + }
88529 +
88530 + /* if we changed uid/gid, but result in the same role
88531 + and are using inheritance, don't lose the inherited subject
88532 + if current subject is other than what normal lookup
88533 + would result in, we arrived via inheritance, don't
88534 + lose subject
88535 + */
88536 + if (role != origrole || (!(task->acl->mode & GR_INHERITLEARN) &&
88537 + (subj == task->acl)))
88538 + task->acl = subj;
88539 +
88540 + /* leave task->inherited unaffected */
88541 +
88542 + task->is_writable = 0;
88543 +
88544 + /* ignore additional mmap checks for processes that are writable
88545 + by the default ACL */
88546 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
88547 + if (unlikely(obj->mode & GR_WRITE))
88548 + task->is_writable = 1;
88549 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
88550 + if (unlikely(obj->mode & GR_WRITE))
88551 + task->is_writable = 1;
88552 +
88553 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
88554 + 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);
88555 +#endif
88556 +
88557 + gr_set_proc_res(task);
88558 +
88559 + return;
88560 +}
88561 +
88562 +int
88563 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
88564 + const int unsafe_flags)
88565 +{
88566 + struct task_struct *task = current;
88567 + struct acl_subject_label *newacl;
88568 + struct acl_object_label *obj;
88569 + __u32 retmode;
88570 +
88571 + if (unlikely(!(gr_status & GR_READY)))
88572 + return 0;
88573 +
88574 + newacl = chk_subj_label(dentry, mnt, task->role);
88575 +
88576 + /* special handling for if we did an strace -f -p <pid> from an admin role, where pid then
88577 + did an exec
88578 + */
88579 + rcu_read_lock();
88580 + read_lock(&tasklist_lock);
88581 + if (task->ptrace && task->parent && ((task->parent->role->roletype & GR_ROLE_GOD) ||
88582 + (task->parent->acl->mode & GR_POVERRIDE))) {
88583 + read_unlock(&tasklist_lock);
88584 + rcu_read_unlock();
88585 + goto skip_check;
88586 + }
88587 + read_unlock(&tasklist_lock);
88588 + rcu_read_unlock();
88589 +
88590 + if (unsafe_flags && !(task->acl->mode & GR_POVERRIDE) && (task->acl != newacl) &&
88591 + !(task->role->roletype & GR_ROLE_GOD) &&
88592 + !gr_search_file(dentry, GR_PTRACERD, mnt) &&
88593 + !(task->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
88594 + if (unsafe_flags & LSM_UNSAFE_SHARE)
88595 + gr_log_fs_generic(GR_DONT_AUDIT, GR_UNSAFESHARE_EXEC_ACL_MSG, dentry, mnt);
88596 + else
88597 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_EXEC_ACL_MSG, dentry, mnt);
88598 + return -EACCES;
88599 + }
88600 +
88601 +skip_check:
88602 +
88603 + obj = chk_obj_label(dentry, mnt, task->acl);
88604 + retmode = obj->mode & (GR_INHERIT | GR_AUDIT_INHERIT);
88605 +
88606 + if (!(task->acl->mode & GR_INHERITLEARN) &&
88607 + ((newacl->mode & GR_LEARN) || !(retmode & GR_INHERIT))) {
88608 + if (obj->nested)
88609 + task->acl = obj->nested;
88610 + else
88611 + task->acl = newacl;
88612 + task->inherited = 0;
88613 + } else {
88614 + task->inherited = 1;
88615 + if (retmode & GR_INHERIT && retmode & GR_AUDIT_INHERIT)
88616 + gr_log_str_fs(GR_DO_AUDIT, GR_INHERIT_ACL_MSG, task->acl->filename, dentry, mnt);
88617 + }
88618 +
88619 + task->is_writable = 0;
88620 +
88621 + /* ignore additional mmap checks for processes that are writable
88622 + by the default ACL */
88623 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
88624 + if (unlikely(obj->mode & GR_WRITE))
88625 + task->is_writable = 1;
88626 + obj = chk_obj_label(dentry, mnt, task->role->root_label);
88627 + if (unlikely(obj->mode & GR_WRITE))
88628 + task->is_writable = 1;
88629 +
88630 + gr_set_proc_res(task);
88631 +
88632 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
88633 + 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);
88634 +#endif
88635 + return 0;
88636 +}
88637 +
88638 +/* always called with valid inodev ptr */
88639 +static void
88640 +do_handle_delete(struct inodev_entry *inodev, const u64 ino, const dev_t dev)
88641 +{
88642 + struct acl_object_label *matchpo;
88643 + struct acl_subject_label *matchps;
88644 + struct acl_subject_label *subj;
88645 + struct acl_role_label *role;
88646 + unsigned int x;
88647 +
88648 + FOR_EACH_ROLE_START(role)
88649 + FOR_EACH_SUBJECT_START(role, subj, x)
88650 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
88651 + matchpo->mode |= GR_DELETED;
88652 + FOR_EACH_SUBJECT_END(subj,x)
88653 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
88654 + /* nested subjects aren't in the role's subj_hash table */
88655 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
88656 + matchpo->mode |= GR_DELETED;
88657 + FOR_EACH_NESTED_SUBJECT_END(subj)
88658 + if ((matchps = lookup_acl_subj_label(ino, dev, role)) != NULL)
88659 + matchps->mode |= GR_DELETED;
88660 + FOR_EACH_ROLE_END(role)
88661 +
88662 + inodev->nentry->deleted = 1;
88663 +
88664 + return;
88665 +}
88666 +
88667 +void
88668 +gr_handle_delete(const u64 ino, const dev_t dev)
88669 +{
88670 + struct inodev_entry *inodev;
88671 +
88672 + if (unlikely(!(gr_status & GR_READY)))
88673 + return;
88674 +
88675 + write_lock(&gr_inode_lock);
88676 + inodev = lookup_inodev_entry(ino, dev);
88677 + if (inodev != NULL)
88678 + do_handle_delete(inodev, ino, dev);
88679 + write_unlock(&gr_inode_lock);
88680 +
88681 + return;
88682 +}
88683 +
88684 +static void
88685 +update_acl_obj_label(const u64 oldinode, const dev_t olddevice,
88686 + const u64 newinode, const dev_t newdevice,
88687 + struct acl_subject_label *subj)
88688 +{
88689 + unsigned int index = gr_fhash(oldinode, olddevice, subj->obj_hash_size);
88690 + struct acl_object_label *match;
88691 +
88692 + match = subj->obj_hash[index];
88693 +
88694 + while (match && (match->inode != oldinode ||
88695 + match->device != olddevice ||
88696 + !(match->mode & GR_DELETED)))
88697 + match = match->next;
88698 +
88699 + if (match && (match->inode == oldinode)
88700 + && (match->device == olddevice)
88701 + && (match->mode & GR_DELETED)) {
88702 + if (match->prev == NULL) {
88703 + subj->obj_hash[index] = match->next;
88704 + if (match->next != NULL)
88705 + match->next->prev = NULL;
88706 + } else {
88707 + match->prev->next = match->next;
88708 + if (match->next != NULL)
88709 + match->next->prev = match->prev;
88710 + }
88711 + match->prev = NULL;
88712 + match->next = NULL;
88713 + match->inode = newinode;
88714 + match->device = newdevice;
88715 + match->mode &= ~GR_DELETED;
88716 +
88717 + insert_acl_obj_label(match, subj);
88718 + }
88719 +
88720 + return;
88721 +}
88722 +
88723 +static void
88724 +update_acl_subj_label(const u64 oldinode, const dev_t olddevice,
88725 + const u64 newinode, const dev_t newdevice,
88726 + struct acl_role_label *role)
88727 +{
88728 + unsigned int index = gr_fhash(oldinode, olddevice, role->subj_hash_size);
88729 + struct acl_subject_label *match;
88730 +
88731 + match = role->subj_hash[index];
88732 +
88733 + while (match && (match->inode != oldinode ||
88734 + match->device != olddevice ||
88735 + !(match->mode & GR_DELETED)))
88736 + match = match->next;
88737 +
88738 + if (match && (match->inode == oldinode)
88739 + && (match->device == olddevice)
88740 + && (match->mode & GR_DELETED)) {
88741 + if (match->prev == NULL) {
88742 + role->subj_hash[index] = match->next;
88743 + if (match->next != NULL)
88744 + match->next->prev = NULL;
88745 + } else {
88746 + match->prev->next = match->next;
88747 + if (match->next != NULL)
88748 + match->next->prev = match->prev;
88749 + }
88750 + match->prev = NULL;
88751 + match->next = NULL;
88752 + match->inode = newinode;
88753 + match->device = newdevice;
88754 + match->mode &= ~GR_DELETED;
88755 +
88756 + insert_acl_subj_label(match, role);
88757 + }
88758 +
88759 + return;
88760 +}
88761 +
88762 +static void
88763 +update_inodev_entry(const u64 oldinode, const dev_t olddevice,
88764 + const u64 newinode, const dev_t newdevice)
88765 +{
88766 + unsigned int index = gr_fhash(oldinode, olddevice, running_polstate.inodev_set.i_size);
88767 + struct inodev_entry *match;
88768 +
88769 + match = running_polstate.inodev_set.i_hash[index];
88770 +
88771 + while (match && (match->nentry->inode != oldinode ||
88772 + match->nentry->device != olddevice || !match->nentry->deleted))
88773 + match = match->next;
88774 +
88775 + if (match && (match->nentry->inode == oldinode)
88776 + && (match->nentry->device == olddevice) &&
88777 + match->nentry->deleted) {
88778 + if (match->prev == NULL) {
88779 + running_polstate.inodev_set.i_hash[index] = match->next;
88780 + if (match->next != NULL)
88781 + match->next->prev = NULL;
88782 + } else {
88783 + match->prev->next = match->next;
88784 + if (match->next != NULL)
88785 + match->next->prev = match->prev;
88786 + }
88787 + match->prev = NULL;
88788 + match->next = NULL;
88789 + match->nentry->inode = newinode;
88790 + match->nentry->device = newdevice;
88791 + match->nentry->deleted = 0;
88792 +
88793 + insert_inodev_entry(match);
88794 + }
88795 +
88796 + return;
88797 +}
88798 +
88799 +static void
88800 +__do_handle_create(const struct name_entry *matchn, u64 ino, dev_t dev)
88801 +{
88802 + struct acl_subject_label *subj;
88803 + struct acl_role_label *role;
88804 + unsigned int x;
88805 +
88806 + FOR_EACH_ROLE_START(role)
88807 + update_acl_subj_label(matchn->inode, matchn->device, ino, dev, role);
88808 +
88809 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
88810 + if ((subj->inode == ino) && (subj->device == dev)) {
88811 + subj->inode = ino;
88812 + subj->device = dev;
88813 + }
88814 + /* nested subjects aren't in the role's subj_hash table */
88815 + update_acl_obj_label(matchn->inode, matchn->device,
88816 + ino, dev, subj);
88817 + FOR_EACH_NESTED_SUBJECT_END(subj)
88818 + FOR_EACH_SUBJECT_START(role, subj, x)
88819 + update_acl_obj_label(matchn->inode, matchn->device,
88820 + ino, dev, subj);
88821 + FOR_EACH_SUBJECT_END(subj,x)
88822 + FOR_EACH_ROLE_END(role)
88823 +
88824 + update_inodev_entry(matchn->inode, matchn->device, ino, dev);
88825 +
88826 + return;
88827 +}
88828 +
88829 +static void
88830 +do_handle_create(const struct name_entry *matchn, const struct dentry *dentry,
88831 + const struct vfsmount *mnt)
88832 +{
88833 + u64 ino = __get_ino(dentry);
88834 + dev_t dev = __get_dev(dentry);
88835 +
88836 + __do_handle_create(matchn, ino, dev);
88837 +
88838 + return;
88839 +}
88840 +
88841 +void
88842 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
88843 +{
88844 + struct name_entry *matchn;
88845 +
88846 + if (unlikely(!(gr_status & GR_READY)))
88847 + return;
88848 +
88849 + preempt_disable();
88850 + matchn = lookup_name_entry(gr_to_filename_rbac(dentry, mnt));
88851 +
88852 + if (unlikely((unsigned long)matchn)) {
88853 + write_lock(&gr_inode_lock);
88854 + do_handle_create(matchn, dentry, mnt);
88855 + write_unlock(&gr_inode_lock);
88856 + }
88857 + preempt_enable();
88858 +
88859 + return;
88860 +}
88861 +
88862 +void
88863 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
88864 +{
88865 + struct name_entry *matchn;
88866 +
88867 + if (unlikely(!(gr_status & GR_READY)))
88868 + return;
88869 +
88870 + preempt_disable();
88871 + matchn = lookup_name_entry(gr_to_proc_filename_rbac(dentry, init_pid_ns.proc_mnt));
88872 +
88873 + if (unlikely((unsigned long)matchn)) {
88874 + write_lock(&gr_inode_lock);
88875 + __do_handle_create(matchn, inode->i_ino, inode->i_sb->s_dev);
88876 + write_unlock(&gr_inode_lock);
88877 + }
88878 + preempt_enable();
88879 +
88880 + return;
88881 +}
88882 +
88883 +void
88884 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
88885 + struct dentry *old_dentry,
88886 + struct dentry *new_dentry,
88887 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
88888 +{
88889 + struct name_entry *matchn;
88890 + struct name_entry *matchn2 = NULL;
88891 + struct inodev_entry *inodev;
88892 + struct inode *inode = d_backing_inode(new_dentry);
88893 + struct inode *old_inode = d_backing_inode(old_dentry);
88894 + u64 old_ino = __get_ino(old_dentry);
88895 + dev_t old_dev = __get_dev(old_dentry);
88896 + unsigned int exchange = flags & RENAME_EXCHANGE;
88897 +
88898 + /* vfs_rename swaps the name and parent link for old_dentry and
88899 + new_dentry
88900 + at this point, old_dentry has the new name, parent link, and inode
88901 + for the renamed file
88902 + if a file is being replaced by a rename, new_dentry has the inode
88903 + and name for the replaced file
88904 + */
88905 +
88906 + if (unlikely(!(gr_status & GR_READY)))
88907 + return;
88908 +
88909 + preempt_disable();
88910 + matchn = lookup_name_entry(gr_to_filename_rbac(old_dentry, mnt));
88911 +
88912 + /* exchange cases:
88913 + a filename exists for the source, but not dest
88914 + do a recreate on source
88915 + a filename exists for the dest, but not source
88916 + do a recreate on dest
88917 + a filename exists for both source and dest
88918 + delete source and dest, then create source and dest
88919 + a filename exists for neither source nor dest
88920 + no updates needed
88921 +
88922 + the name entry lookups get us the old inode/dev associated with
88923 + each name, so do the deletes first (if possible) so that when
88924 + we do the create, we pick up on the right entries
88925 + */
88926 +
88927 + if (exchange)
88928 + matchn2 = lookup_name_entry(gr_to_filename_rbac(new_dentry, mnt));
88929 +
88930 + /* we wouldn't have to check d_inode if it weren't for
88931 + NFS silly-renaming
88932 + */
88933 +
88934 + write_lock(&gr_inode_lock);
88935 + if (unlikely((replace || exchange) && inode)) {
88936 + u64 new_ino = __get_ino(new_dentry);
88937 + dev_t new_dev = __get_dev(new_dentry);
88938 +
88939 + inodev = lookup_inodev_entry(new_ino, new_dev);
88940 + if (inodev != NULL && ((inode->i_nlink <= 1) || d_is_dir(new_dentry)))
88941 + do_handle_delete(inodev, new_ino, new_dev);
88942 + }
88943 +
88944 + inodev = lookup_inodev_entry(old_ino, old_dev);
88945 + if (inodev != NULL && ((old_inode->i_nlink <= 1) || d_is_dir(old_dentry)))
88946 + do_handle_delete(inodev, old_ino, old_dev);
88947 +
88948 + if (unlikely(matchn != NULL))
88949 + do_handle_create(matchn, old_dentry, mnt);
88950 +
88951 + if (unlikely(matchn2 != NULL))
88952 + do_handle_create(matchn2, new_dentry, mnt);
88953 +
88954 + write_unlock(&gr_inode_lock);
88955 + preempt_enable();
88956 +
88957 + return;
88958 +}
88959 +
88960 +#if defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC)
88961 +static const unsigned long res_learn_bumps[GR_NLIMITS] = {
88962 + [RLIMIT_CPU] = GR_RLIM_CPU_BUMP,
88963 + [RLIMIT_FSIZE] = GR_RLIM_FSIZE_BUMP,
88964 + [RLIMIT_DATA] = GR_RLIM_DATA_BUMP,
88965 + [RLIMIT_STACK] = GR_RLIM_STACK_BUMP,
88966 + [RLIMIT_CORE] = GR_RLIM_CORE_BUMP,
88967 + [RLIMIT_RSS] = GR_RLIM_RSS_BUMP,
88968 + [RLIMIT_NPROC] = GR_RLIM_NPROC_BUMP,
88969 + [RLIMIT_NOFILE] = GR_RLIM_NOFILE_BUMP,
88970 + [RLIMIT_MEMLOCK] = GR_RLIM_MEMLOCK_BUMP,
88971 + [RLIMIT_AS] = GR_RLIM_AS_BUMP,
88972 + [RLIMIT_LOCKS] = GR_RLIM_LOCKS_BUMP,
88973 + [RLIMIT_SIGPENDING] = GR_RLIM_SIGPENDING_BUMP,
88974 + [RLIMIT_MSGQUEUE] = GR_RLIM_MSGQUEUE_BUMP,
88975 + [RLIMIT_NICE] = GR_RLIM_NICE_BUMP,
88976 + [RLIMIT_RTPRIO] = GR_RLIM_RTPRIO_BUMP,
88977 + [RLIMIT_RTTIME] = GR_RLIM_RTTIME_BUMP
88978 +};
88979 +
88980 +void
88981 +gr_learn_resource(const struct task_struct *task,
88982 + const int res, const unsigned long wanted, const int gt)
88983 +{
88984 + struct acl_subject_label *acl;
88985 + const struct cred *cred;
88986 +
88987 + if (unlikely((gr_status & GR_READY) &&
88988 + task->acl && (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))))
88989 + goto skip_reslog;
88990 +
88991 + gr_log_resource(task, res, wanted, gt);
88992 +skip_reslog:
88993 +
88994 + if (unlikely(!(gr_status & GR_READY) || !wanted || res >= GR_NLIMITS))
88995 + return;
88996 +
88997 + acl = task->acl;
88998 +
88999 + if (likely(!acl || !(acl->mode & (GR_LEARN | GR_INHERITLEARN)) ||
89000 + !(acl->resmask & (1U << (unsigned short) res))))
89001 + return;
89002 +
89003 + if (wanted >= acl->res[res].rlim_cur) {
89004 + unsigned long res_add;
89005 +
89006 + res_add = wanted + res_learn_bumps[res];
89007 +
89008 + acl->res[res].rlim_cur = res_add;
89009 +
89010 + if (wanted > acl->res[res].rlim_max)
89011 + acl->res[res].rlim_max = res_add;
89012 +
89013 + /* only log the subject filename, since resource logging is supported for
89014 + single-subject learning only */
89015 + rcu_read_lock();
89016 + cred = __task_cred(task);
89017 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
89018 + task->role->roletype, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), acl->filename,
89019 + acl->filename, acl->res[res].rlim_cur, acl->res[res].rlim_max,
89020 + "", (unsigned long) res, &task->signal->saved_ip);
89021 + rcu_read_unlock();
89022 + }
89023 +
89024 + return;
89025 +}
89026 +EXPORT_SYMBOL_GPL(gr_learn_resource);
89027 +#endif
89028 +
89029 +#if defined(CONFIG_PAX_HAVE_ACL_FLAGS) && (defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR))
89030 +void
89031 +pax_set_initial_flags(struct linux_binprm *bprm)
89032 +{
89033 + struct task_struct *task = current;
89034 + struct acl_subject_label *proc;
89035 + unsigned long flags;
89036 +
89037 + if (unlikely(!(gr_status & GR_READY)))
89038 + return;
89039 +
89040 + flags = pax_get_flags(task);
89041 +
89042 + proc = task->acl;
89043 +
89044 + if (proc->pax_flags & GR_PAX_DISABLE_PAGEEXEC)
89045 + flags &= ~MF_PAX_PAGEEXEC;
89046 + if (proc->pax_flags & GR_PAX_DISABLE_SEGMEXEC)
89047 + flags &= ~MF_PAX_SEGMEXEC;
89048 + if (proc->pax_flags & GR_PAX_DISABLE_RANDMMAP)
89049 + flags &= ~MF_PAX_RANDMMAP;
89050 + if (proc->pax_flags & GR_PAX_DISABLE_EMUTRAMP)
89051 + flags &= ~MF_PAX_EMUTRAMP;
89052 + if (proc->pax_flags & GR_PAX_DISABLE_MPROTECT)
89053 + flags &= ~MF_PAX_MPROTECT;
89054 +
89055 + if (proc->pax_flags & GR_PAX_ENABLE_PAGEEXEC)
89056 + flags |= MF_PAX_PAGEEXEC;
89057 + if (proc->pax_flags & GR_PAX_ENABLE_SEGMEXEC)
89058 + flags |= MF_PAX_SEGMEXEC;
89059 + if (proc->pax_flags & GR_PAX_ENABLE_RANDMMAP)
89060 + flags |= MF_PAX_RANDMMAP;
89061 + if (proc->pax_flags & GR_PAX_ENABLE_EMUTRAMP)
89062 + flags |= MF_PAX_EMUTRAMP;
89063 + if (proc->pax_flags & GR_PAX_ENABLE_MPROTECT)
89064 + flags |= MF_PAX_MPROTECT;
89065 +
89066 + pax_set_flags(task, flags);
89067 +
89068 + return;
89069 +}
89070 +#endif
89071 +
89072 +int
89073 +gr_handle_proc_ptrace(struct task_struct *task)
89074 +{
89075 + struct file *filp;
89076 + struct task_struct *tmp = task;
89077 + struct task_struct *curtemp = current;
89078 + __u32 retmode;
89079 +
89080 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
89081 + if (unlikely(!(gr_status & GR_READY)))
89082 + return 0;
89083 +#endif
89084 +
89085 + read_lock(&tasklist_lock);
89086 + read_lock(&grsec_exec_file_lock);
89087 + filp = task->exec_file;
89088 +
89089 + while (task_pid_nr(tmp) > 0) {
89090 + if (tmp == curtemp)
89091 + break;
89092 + tmp = tmp->real_parent;
89093 + }
89094 +
89095 + if (!filp || (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
89096 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE))))) {
89097 + read_unlock(&grsec_exec_file_lock);
89098 + read_unlock(&tasklist_lock);
89099 + return 1;
89100 + }
89101 +
89102 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
89103 + if (!(gr_status & GR_READY)) {
89104 + read_unlock(&grsec_exec_file_lock);
89105 + read_unlock(&tasklist_lock);
89106 + return 0;
89107 + }
89108 +#endif
89109 +
89110 + retmode = gr_search_file(filp->f_path.dentry, GR_NOPTRACE, filp->f_path.mnt);
89111 + read_unlock(&grsec_exec_file_lock);
89112 + read_unlock(&tasklist_lock);
89113 +
89114 + if (retmode & GR_NOPTRACE)
89115 + return 1;
89116 +
89117 + if (!(current->acl->mode & GR_POVERRIDE) && !(current->role->roletype & GR_ROLE_GOD)
89118 + && (current->acl != task->acl || (current->acl != current->role->root_label
89119 + && task_pid_nr(current) != task_pid_nr(task))))
89120 + return 1;
89121 +
89122 + return 0;
89123 +}
89124 +
89125 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p)
89126 +{
89127 + if (unlikely(!(gr_status & GR_READY)))
89128 + return;
89129 +
89130 + if (!(current->role->roletype & GR_ROLE_GOD))
89131 + return;
89132 +
89133 + seq_printf(m, "RBAC:\t%.64s:%c:%.950s\n",
89134 + p->role->rolename, gr_task_roletype_to_char(p),
89135 + p->acl->filename);
89136 +}
89137 +
89138 +int
89139 +gr_handle_ptrace(struct task_struct *task, const long request)
89140 +{
89141 + struct task_struct *tmp = task;
89142 + struct task_struct *curtemp = current;
89143 + __u32 retmode;
89144 +
89145 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
89146 + if (unlikely(!(gr_status & GR_READY)))
89147 + return 0;
89148 +#endif
89149 + if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
89150 + read_lock(&tasklist_lock);
89151 + while (task_pid_nr(tmp) > 0) {
89152 + if (tmp == curtemp)
89153 + break;
89154 + tmp = tmp->real_parent;
89155 + }
89156 +
89157 + if (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
89158 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE)))) {
89159 + read_unlock(&tasklist_lock);
89160 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
89161 + return 1;
89162 + }
89163 + read_unlock(&tasklist_lock);
89164 + }
89165 +
89166 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
89167 + if (!(gr_status & GR_READY))
89168 + return 0;
89169 +#endif
89170 +
89171 + read_lock(&grsec_exec_file_lock);
89172 + if (unlikely(!task->exec_file)) {
89173 + read_unlock(&grsec_exec_file_lock);
89174 + return 0;
89175 + }
89176 +
89177 + retmode = gr_search_file(task->exec_file->f_path.dentry, GR_PTRACERD | GR_NOPTRACE, task->exec_file->f_path.mnt);
89178 + read_unlock(&grsec_exec_file_lock);
89179 +
89180 + if (retmode & GR_NOPTRACE) {
89181 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
89182 + return 1;
89183 + }
89184 +
89185 + if (retmode & GR_PTRACERD) {
89186 + switch (request) {
89187 + case PTRACE_SEIZE:
89188 + case PTRACE_POKETEXT:
89189 + case PTRACE_POKEDATA:
89190 + case PTRACE_POKEUSR:
89191 +#if !defined(CONFIG_PPC32) && !defined(CONFIG_PPC64) && !defined(CONFIG_PARISC) && !defined(CONFIG_ALPHA) && !defined(CONFIG_IA64)
89192 + case PTRACE_SETREGS:
89193 + case PTRACE_SETFPREGS:
89194 +#endif
89195 +#ifdef CONFIG_X86
89196 + case PTRACE_SETFPXREGS:
89197 +#endif
89198 +#ifdef CONFIG_ALTIVEC
89199 + case PTRACE_SETVRREGS:
89200 +#endif
89201 + return 1;
89202 + default:
89203 + return 0;
89204 + }
89205 + } else if (!(current->acl->mode & GR_POVERRIDE) &&
89206 + !(current->role->roletype & GR_ROLE_GOD) &&
89207 + (current->acl != task->acl)) {
89208 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
89209 + return 1;
89210 + }
89211 +
89212 + return 0;
89213 +}
89214 +
89215 +static int is_writable_mmap(const struct file *filp)
89216 +{
89217 + struct task_struct *task = current;
89218 + struct acl_object_label *obj, *obj2;
89219 + struct dentry *dentry = filp->f_path.dentry;
89220 + struct vfsmount *mnt = filp->f_path.mnt;
89221 + struct inode *inode = d_backing_inode(dentry);
89222 +
89223 + if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
89224 + !task->is_writable && d_is_reg(dentry) && (mnt != shm_mnt || (inode->i_nlink > 0))) {
89225 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
89226 + obj2 = chk_obj_label(dentry, mnt, task->role->root_label);
89227 + if (unlikely((obj->mode & GR_WRITE) || (obj2->mode & GR_WRITE))) {
89228 + gr_log_fs_generic(GR_DONT_AUDIT, GR_WRITLIB_ACL_MSG, dentry, mnt);
89229 + return 1;
89230 + }
89231 + }
89232 + return 0;
89233 +}
89234 +
89235 +int
89236 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot)
89237 +{
89238 + __u32 mode;
89239 +
89240 + if (unlikely(!file || !(prot & PROT_EXEC)))
89241 + return 1;
89242 +
89243 + if (is_writable_mmap(file))
89244 + return 0;
89245 +
89246 + mode =
89247 + gr_search_file(file->f_path.dentry,
89248 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
89249 + file->f_path.mnt);
89250 +
89251 + if (!gr_tpe_allow(file))
89252 + return 0;
89253 +
89254 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
89255 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89256 + return 0;
89257 + } else if (unlikely(!(mode & GR_EXEC))) {
89258 + return 0;
89259 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
89260 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89261 + return 1;
89262 + }
89263 +
89264 + return 1;
89265 +}
89266 +
89267 +int
89268 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
89269 +{
89270 + __u32 mode;
89271 +
89272 + if (unlikely(!file || !(prot & PROT_EXEC)))
89273 + return 1;
89274 +
89275 + if (is_writable_mmap(file))
89276 + return 0;
89277 +
89278 + mode =
89279 + gr_search_file(file->f_path.dentry,
89280 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
89281 + file->f_path.mnt);
89282 +
89283 + if (!gr_tpe_allow(file))
89284 + return 0;
89285 +
89286 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
89287 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89288 + return 0;
89289 + } else if (unlikely(!(mode & GR_EXEC))) {
89290 + return 0;
89291 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
89292 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
89293 + return 1;
89294 + }
89295 +
89296 + return 1;
89297 +}
89298 +
89299 +void
89300 +gr_acl_handle_psacct(struct task_struct *task, const long code)
89301 +{
89302 + unsigned long runtime, cputime;
89303 + cputime_t utime, stime;
89304 + unsigned int wday, cday;
89305 + __u8 whr, chr;
89306 + __u8 wmin, cmin;
89307 + __u8 wsec, csec;
89308 + struct timespec curtime, starttime;
89309 +
89310 + if (unlikely(!(gr_status & GR_READY) || !task->acl ||
89311 + !(task->acl->mode & GR_PROCACCT)))
89312 + return;
89313 +
89314 + curtime = ns_to_timespec(ktime_get_ns());
89315 + starttime = ns_to_timespec(task->start_time);
89316 + runtime = curtime.tv_sec - starttime.tv_sec;
89317 + wday = runtime / (60 * 60 * 24);
89318 + runtime -= wday * (60 * 60 * 24);
89319 + whr = runtime / (60 * 60);
89320 + runtime -= whr * (60 * 60);
89321 + wmin = runtime / 60;
89322 + runtime -= wmin * 60;
89323 + wsec = runtime;
89324 +
89325 + task_cputime(task, &utime, &stime);
89326 + cputime = cputime_to_secs(utime + stime);
89327 + cday = cputime / (60 * 60 * 24);
89328 + cputime -= cday * (60 * 60 * 24);
89329 + chr = cputime / (60 * 60);
89330 + cputime -= chr * (60 * 60);
89331 + cmin = cputime / 60;
89332 + cputime -= cmin * 60;
89333 + csec = cputime;
89334 +
89335 + gr_log_procacct(GR_DO_AUDIT, GR_ACL_PROCACCT_MSG, task, wday, whr, wmin, wsec, cday, chr, cmin, csec, code);
89336 +
89337 + return;
89338 +}
89339 +
89340 +#ifdef CONFIG_TASKSTATS
89341 +int gr_is_taskstats_denied(int pid)
89342 +{
89343 + struct task_struct *task;
89344 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
89345 + const struct cred *cred;
89346 +#endif
89347 + int ret = 0;
89348 +
89349 + /* restrict taskstats viewing to un-chrooted root users
89350 + who have the 'view' subject flag if the RBAC system is enabled
89351 + */
89352 +
89353 + rcu_read_lock();
89354 + read_lock(&tasklist_lock);
89355 + task = find_task_by_vpid(pid);
89356 + if (task) {
89357 +#ifdef CONFIG_GRKERNSEC_CHROOT
89358 + if (proc_is_chrooted(task))
89359 + ret = -EACCES;
89360 +#endif
89361 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
89362 + cred = __task_cred(task);
89363 +#ifdef CONFIG_GRKERNSEC_PROC_USER
89364 + if (gr_is_global_nonroot(cred->uid))
89365 + ret = -EACCES;
89366 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
89367 + if (gr_is_global_nonroot(cred->uid) && !groups_search(cred->group_info, grsec_proc_gid))
89368 + ret = -EACCES;
89369 +#endif
89370 +#endif
89371 + if (gr_status & GR_READY) {
89372 + if (!(task->acl->mode & GR_VIEW))
89373 + ret = -EACCES;
89374 + }
89375 + } else
89376 + ret = -ENOENT;
89377 +
89378 + read_unlock(&tasklist_lock);
89379 + rcu_read_unlock();
89380 +
89381 + return ret;
89382 +}
89383 +#endif
89384 +
89385 +/* AUXV entries are filled via a descendant of search_binary_handler
89386 + after we've already applied the subject for the target
89387 +*/
89388 +int gr_acl_enable_at_secure(void)
89389 +{
89390 + if (unlikely(!(gr_status & GR_READY)))
89391 + return 0;
89392 +
89393 + if (current->acl->mode & GR_ATSECURE)
89394 + return 1;
89395 +
89396 + return 0;
89397 +}
89398 +
89399 +int gr_acl_handle_filldir(const struct file *file, const char *name, const unsigned int namelen, const u64 ino)
89400 +{
89401 + struct task_struct *task = current;
89402 + struct dentry *dentry = file->f_path.dentry;
89403 + struct vfsmount *mnt = file->f_path.mnt;
89404 + struct acl_object_label *obj, *tmp;
89405 + struct acl_subject_label *subj;
89406 + unsigned int bufsize;
89407 + int is_not_root;
89408 + char *path;
89409 + dev_t dev = __get_dev(dentry);
89410 +
89411 + if (unlikely(!(gr_status & GR_READY)))
89412 + return 1;
89413 +
89414 + if (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))
89415 + return 1;
89416 +
89417 + /* ignore Eric Biederman */
89418 + if (IS_PRIVATE(d_backing_inode(dentry)))
89419 + return 1;
89420 +
89421 + subj = task->acl;
89422 + read_lock(&gr_inode_lock);
89423 + do {
89424 + obj = lookup_acl_obj_label(ino, dev, subj);
89425 + if (obj != NULL) {
89426 + read_unlock(&gr_inode_lock);
89427 + return (obj->mode & GR_FIND) ? 1 : 0;
89428 + }
89429 + } while ((subj = subj->parent_subject));
89430 + read_unlock(&gr_inode_lock);
89431 +
89432 + /* this is purely an optimization since we're looking for an object
89433 + for the directory we're doing a readdir on
89434 + if it's possible for any globbed object to match the entry we're
89435 + filling into the directory, then the object we find here will be
89436 + an anchor point with attached globbed objects
89437 + */
89438 + obj = chk_obj_label_noglob(dentry, mnt, task->acl);
89439 + if (obj->globbed == NULL)
89440 + return (obj->mode & GR_FIND) ? 1 : 0;
89441 +
89442 + is_not_root = ((obj->filename[0] == '/') &&
89443 + (obj->filename[1] == '\0')) ? 0 : 1;
89444 + bufsize = PAGE_SIZE - namelen - is_not_root;
89445 +
89446 + /* check bufsize > PAGE_SIZE || bufsize == 0 */
89447 + if (unlikely((bufsize - 1) > (PAGE_SIZE - 1)))
89448 + return 1;
89449 +
89450 + preempt_disable();
89451 + path = d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
89452 + bufsize);
89453 +
89454 + bufsize = strlen(path);
89455 +
89456 + /* if base is "/", don't append an additional slash */
89457 + if (is_not_root)
89458 + *(path + bufsize) = '/';
89459 + memcpy(path + bufsize + is_not_root, name, namelen);
89460 + *(path + bufsize + namelen + is_not_root) = '\0';
89461 +
89462 + tmp = obj->globbed;
89463 + while (tmp) {
89464 + if (!glob_match(tmp->filename, path)) {
89465 + preempt_enable();
89466 + return (tmp->mode & GR_FIND) ? 1 : 0;
89467 + }
89468 + tmp = tmp->next;
89469 + }
89470 + preempt_enable();
89471 + return (obj->mode & GR_FIND) ? 1 : 0;
89472 +}
89473 +
89474 +void gr_put_exec_file(struct task_struct *task)
89475 +{
89476 + struct file *filp;
89477 +
89478 + write_lock(&grsec_exec_file_lock);
89479 + filp = task->exec_file;
89480 + task->exec_file = NULL;
89481 + write_unlock(&grsec_exec_file_lock);
89482 +
89483 + if (filp)
89484 + fput(filp);
89485 +
89486 + return;
89487 +}
89488 +
89489 +
89490 +#ifdef CONFIG_NETFILTER_XT_MATCH_GRADM_MODULE
89491 +EXPORT_SYMBOL_GPL(gr_acl_is_enabled);
89492 +#endif
89493 +#ifdef CONFIG_SECURITY
89494 +EXPORT_SYMBOL_GPL(gr_check_user_change);
89495 +EXPORT_SYMBOL_GPL(gr_check_group_change);
89496 +#endif
89497 +
89498 diff --git a/grsecurity/gracl_alloc.c b/grsecurity/gracl_alloc.c
89499 new file mode 100644
89500 index 0000000..9adc75c
89501 --- /dev/null
89502 +++ b/grsecurity/gracl_alloc.c
89503 @@ -0,0 +1,105 @@
89504 +#include <linux/kernel.h>
89505 +#include <linux/mm.h>
89506 +#include <linux/slab.h>
89507 +#include <linux/vmalloc.h>
89508 +#include <linux/gracl.h>
89509 +#include <linux/grsecurity.h>
89510 +
89511 +static struct gr_alloc_state __current_alloc_state = { 1, 1, NULL };
89512 +struct gr_alloc_state *current_alloc_state = &__current_alloc_state;
89513 +
89514 +static int
89515 +alloc_pop(void)
89516 +{
89517 + if (current_alloc_state->alloc_stack_next == 1)
89518 + return 0;
89519 +
89520 + kfree(current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 2]);
89521 +
89522 + current_alloc_state->alloc_stack_next--;
89523 +
89524 + return 1;
89525 +}
89526 +
89527 +static int
89528 +alloc_push(void *buf)
89529 +{
89530 + if (current_alloc_state->alloc_stack_next >= current_alloc_state->alloc_stack_size)
89531 + return 1;
89532 +
89533 + current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 1] = buf;
89534 +
89535 + current_alloc_state->alloc_stack_next++;
89536 +
89537 + return 0;
89538 +}
89539 +
89540 +void *
89541 +acl_alloc(unsigned long len)
89542 +{
89543 + void *ret = NULL;
89544 +
89545 + if (!len || len > PAGE_SIZE)
89546 + goto out;
89547 +
89548 + ret = kmalloc(len, GFP_KERNEL);
89549 +
89550 + if (ret) {
89551 + if (alloc_push(ret)) {
89552 + kfree(ret);
89553 + ret = NULL;
89554 + }
89555 + }
89556 +
89557 +out:
89558 + return ret;
89559 +}
89560 +
89561 +void *
89562 +acl_alloc_num(unsigned long num, unsigned long len)
89563 +{
89564 + if (!len || (num > (PAGE_SIZE / len)))
89565 + return NULL;
89566 +
89567 + return acl_alloc(num * len);
89568 +}
89569 +
89570 +void
89571 +acl_free_all(void)
89572 +{
89573 + if (!current_alloc_state->alloc_stack)
89574 + return;
89575 +
89576 + while (alloc_pop()) ;
89577 +
89578 + if (current_alloc_state->alloc_stack) {
89579 + if ((current_alloc_state->alloc_stack_size * sizeof (void *)) <= PAGE_SIZE)
89580 + kfree(current_alloc_state->alloc_stack);
89581 + else
89582 + vfree(current_alloc_state->alloc_stack);
89583 + }
89584 +
89585 + current_alloc_state->alloc_stack = NULL;
89586 + current_alloc_state->alloc_stack_size = 1;
89587 + current_alloc_state->alloc_stack_next = 1;
89588 +
89589 + return;
89590 +}
89591 +
89592 +int
89593 +acl_alloc_stack_init(unsigned long size)
89594 +{
89595 + if ((size * sizeof (void *)) <= PAGE_SIZE)
89596 + current_alloc_state->alloc_stack =
89597 + (void **) kmalloc(size * sizeof (void *), GFP_KERNEL);
89598 + else
89599 + current_alloc_state->alloc_stack = (void **) vmalloc(size * sizeof (void *));
89600 +
89601 + current_alloc_state->alloc_stack_size = size;
89602 + current_alloc_state->alloc_stack_next = 1;
89603 +
89604 + if (!current_alloc_state->alloc_stack)
89605 + return 0;
89606 + else
89607 + return 1;
89608 +}
89609 diff --git a/grsecurity/gracl_cap.c b/grsecurity/gracl_cap.c
89610 new file mode 100644
89611 index 0000000..1a94c11
89612 --- /dev/null
89613 +++ b/grsecurity/gracl_cap.c
89614 @@ -0,0 +1,127 @@
89615 +#include <linux/kernel.h>
89616 +#include <linux/module.h>
89617 +#include <linux/sched.h>
89618 +#include <linux/gracl.h>
89619 +#include <linux/grsecurity.h>
89620 +#include <linux/grinternal.h>
89621 +
89622 +extern const char *captab_log[];
89623 +extern int captab_log_entries;
89624 +
89625 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
89626 +{
89627 + struct acl_subject_label *curracl;
89628 +
89629 + if (!gr_acl_is_enabled())
89630 + return 1;
89631 +
89632 + curracl = task->acl;
89633 +
89634 + if (curracl->mode & (GR_LEARN | GR_INHERITLEARN)) {
89635 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
89636 + task->role->roletype, GR_GLOBAL_UID(cred->uid),
89637 + GR_GLOBAL_GID(cred->gid), task->exec_file ?
89638 + gr_to_filename(task->exec_file->f_path.dentry,
89639 + task->exec_file->f_path.mnt) : curracl->filename,
89640 + curracl->filename, 0UL,
89641 + 0UL, "", (unsigned long) cap, &task->signal->saved_ip);
89642 + return 1;
89643 + }
89644 +
89645 + return 0;
89646 +}
89647 +
89648 +int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
89649 +{
89650 + struct acl_subject_label *curracl;
89651 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
89652 + kernel_cap_t cap_audit = __cap_empty_set;
89653 +
89654 + if (!gr_acl_is_enabled())
89655 + return 1;
89656 +
89657 + curracl = task->acl;
89658 +
89659 + cap_drop = curracl->cap_lower;
89660 + cap_mask = curracl->cap_mask;
89661 + cap_audit = curracl->cap_invert_audit;
89662 +
89663 + while ((curracl = curracl->parent_subject)) {
89664 + /* if the cap isn't specified in the current computed mask but is specified in the
89665 + current level subject, and is lowered in the current level subject, then add
89666 + it to the set of dropped capabilities
89667 + otherwise, add the current level subject's mask to the current computed mask
89668 + */
89669 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
89670 + cap_raise(cap_mask, cap);
89671 + if (cap_raised(curracl->cap_lower, cap))
89672 + cap_raise(cap_drop, cap);
89673 + if (cap_raised(curracl->cap_invert_audit, cap))
89674 + cap_raise(cap_audit, cap);
89675 + }
89676 + }
89677 +
89678 + if (!cap_raised(cap_drop, cap)) {
89679 + if (cap_raised(cap_audit, cap))
89680 + gr_log_cap(GR_DO_AUDIT, GR_CAP_ACL_MSG2, task, captab_log[cap]);
89681 + return 1;
89682 + }
89683 +
89684 + /* only learn the capability use if the process has the capability in the
89685 + general case, the two uses in sys.c of gr_learn_cap are an exception
89686 + to this rule to ensure any role transition involves what the full-learned
89687 + policy believes in a privileged process
89688 + */
89689 + if (cap_raised(cred->cap_effective, cap) && gr_learn_cap(task, cred, cap))
89690 + return 1;
89691 +
89692 + if ((cap >= 0) && (cap < captab_log_entries) && cap_raised(cred->cap_effective, cap) && !cap_raised(cap_audit, cap))
89693 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_ACL_MSG, task, captab_log[cap]);
89694 +
89695 + return 0;
89696 +}
89697 +
89698 +int
89699 +gr_acl_is_capable(const int cap)
89700 +{
89701 + return gr_task_acl_is_capable(current, current_cred(), cap);
89702 +}
89703 +
89704 +int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap)
89705 +{
89706 + struct acl_subject_label *curracl;
89707 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
89708 +
89709 + if (!gr_acl_is_enabled())
89710 + return 1;
89711 +
89712 + curracl = task->acl;
89713 +
89714 + cap_drop = curracl->cap_lower;
89715 + cap_mask = curracl->cap_mask;
89716 +
89717 + while ((curracl = curracl->parent_subject)) {
89718 + /* if the cap isn't specified in the current computed mask but is specified in the
89719 + current level subject, and is lowered in the current level subject, then add
89720 + it to the set of dropped capabilities
89721 + otherwise, add the current level subject's mask to the current computed mask
89722 + */
89723 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
89724 + cap_raise(cap_mask, cap);
89725 + if (cap_raised(curracl->cap_lower, cap))
89726 + cap_raise(cap_drop, cap);
89727 + }
89728 + }
89729 +
89730 + if (!cap_raised(cap_drop, cap))
89731 + return 1;
89732 +
89733 + return 0;
89734 +}
89735 +
89736 +int
89737 +gr_acl_is_capable_nolog(const int cap)
89738 +{
89739 + return gr_task_acl_is_capable_nolog(current, cap);
89740 +}
89741 +
89742 diff --git a/grsecurity/gracl_compat.c b/grsecurity/gracl_compat.c
89743 new file mode 100644
89744 index 0000000..a43dd06
89745 --- /dev/null
89746 +++ b/grsecurity/gracl_compat.c
89747 @@ -0,0 +1,269 @@
89748 +#include <linux/kernel.h>
89749 +#include <linux/gracl.h>
89750 +#include <linux/compat.h>
89751 +#include <linux/gracl_compat.h>
89752 +
89753 +#include <asm/uaccess.h>
89754 +
89755 +int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap)
89756 +{
89757 + struct gr_arg_wrapper_compat uwrapcompat;
89758 +
89759 + if (copy_from_user(&uwrapcompat, buf, sizeof(uwrapcompat)))
89760 + return -EFAULT;
89761 +
89762 + if ((uwrapcompat.version != GRSECURITY_VERSION) ||
89763 + (uwrapcompat.size != sizeof(struct gr_arg_compat)))
89764 + return -EINVAL;
89765 +
89766 + uwrap->arg = compat_ptr(uwrapcompat.arg);
89767 + uwrap->version = uwrapcompat.version;
89768 + uwrap->size = sizeof(struct gr_arg);
89769 +
89770 + return 0;
89771 +}
89772 +
89773 +int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg)
89774 +{
89775 + struct gr_arg_compat argcompat;
89776 +
89777 + if (copy_from_user(&argcompat, buf, sizeof(argcompat)))
89778 + return -EFAULT;
89779 +
89780 + arg->role_db.r_table = compat_ptr(argcompat.role_db.r_table);
89781 + arg->role_db.num_pointers = argcompat.role_db.num_pointers;
89782 + arg->role_db.num_roles = argcompat.role_db.num_roles;
89783 + arg->role_db.num_domain_children = argcompat.role_db.num_domain_children;
89784 + arg->role_db.num_subjects = argcompat.role_db.num_subjects;
89785 + arg->role_db.num_objects = argcompat.role_db.num_objects;
89786 +
89787 + memcpy(&arg->pw, &argcompat.pw, sizeof(arg->pw));
89788 + memcpy(&arg->salt, &argcompat.salt, sizeof(arg->salt));
89789 + memcpy(&arg->sum, &argcompat.sum, sizeof(arg->sum));
89790 + memcpy(&arg->sp_role, &argcompat.sp_role, sizeof(arg->sp_role));
89791 + arg->sprole_pws = compat_ptr(argcompat.sprole_pws);
89792 + arg->segv_device = argcompat.segv_device;
89793 + arg->segv_inode = argcompat.segv_inode;
89794 + arg->segv_uid = argcompat.segv_uid;
89795 + arg->num_sprole_pws = argcompat.num_sprole_pws;
89796 + arg->mode = argcompat.mode;
89797 +
89798 + return 0;
89799 +}
89800 +
89801 +int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp)
89802 +{
89803 + struct acl_object_label_compat objcompat;
89804 +
89805 + if (copy_from_user(&objcompat, userp, sizeof(objcompat)))
89806 + return -EFAULT;
89807 +
89808 + obj->filename = compat_ptr(objcompat.filename);
89809 + obj->inode = objcompat.inode;
89810 + obj->device = objcompat.device;
89811 + obj->mode = objcompat.mode;
89812 +
89813 + obj->nested = compat_ptr(objcompat.nested);
89814 + obj->globbed = compat_ptr(objcompat.globbed);
89815 +
89816 + obj->prev = compat_ptr(objcompat.prev);
89817 + obj->next = compat_ptr(objcompat.next);
89818 +
89819 + return 0;
89820 +}
89821 +
89822 +int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp)
89823 +{
89824 + unsigned int i;
89825 + struct acl_subject_label_compat subjcompat;
89826 +
89827 + if (copy_from_user(&subjcompat, userp, sizeof(subjcompat)))
89828 + return -EFAULT;
89829 +
89830 + subj->filename = compat_ptr(subjcompat.filename);
89831 + subj->inode = subjcompat.inode;
89832 + subj->device = subjcompat.device;
89833 + subj->mode = subjcompat.mode;
89834 + subj->cap_mask = subjcompat.cap_mask;
89835 + subj->cap_lower = subjcompat.cap_lower;
89836 + subj->cap_invert_audit = subjcompat.cap_invert_audit;
89837 +
89838 + for (i = 0; i < GR_NLIMITS; i++) {
89839 + if (subjcompat.res[i].rlim_cur == COMPAT_RLIM_INFINITY)
89840 + subj->res[i].rlim_cur = RLIM_INFINITY;
89841 + else
89842 + subj->res[i].rlim_cur = subjcompat.res[i].rlim_cur;
89843 + if (subjcompat.res[i].rlim_max == COMPAT_RLIM_INFINITY)
89844 + subj->res[i].rlim_max = RLIM_INFINITY;
89845 + else
89846 + subj->res[i].rlim_max = subjcompat.res[i].rlim_max;
89847 + }
89848 + subj->resmask = subjcompat.resmask;
89849 +
89850 + subj->user_trans_type = subjcompat.user_trans_type;
89851 + subj->group_trans_type = subjcompat.group_trans_type;
89852 + subj->user_transitions = compat_ptr(subjcompat.user_transitions);
89853 + subj->group_transitions = compat_ptr(subjcompat.group_transitions);
89854 + subj->user_trans_num = subjcompat.user_trans_num;
89855 + subj->group_trans_num = subjcompat.group_trans_num;
89856 +
89857 + memcpy(&subj->sock_families, &subjcompat.sock_families, sizeof(subj->sock_families));
89858 + memcpy(&subj->ip_proto, &subjcompat.ip_proto, sizeof(subj->ip_proto));
89859 + subj->ip_type = subjcompat.ip_type;
89860 + subj->ips = compat_ptr(subjcompat.ips);
89861 + subj->ip_num = subjcompat.ip_num;
89862 + subj->inaddr_any_override = subjcompat.inaddr_any_override;
89863 +
89864 + subj->crashes = subjcompat.crashes;
89865 + subj->expires = subjcompat.expires;
89866 +
89867 + subj->parent_subject = compat_ptr(subjcompat.parent_subject);
89868 + subj->hash = compat_ptr(subjcompat.hash);
89869 + subj->prev = compat_ptr(subjcompat.prev);
89870 + subj->next = compat_ptr(subjcompat.next);
89871 +
89872 + subj->obj_hash = compat_ptr(subjcompat.obj_hash);
89873 + subj->obj_hash_size = subjcompat.obj_hash_size;
89874 + subj->pax_flags = subjcompat.pax_flags;
89875 +
89876 + return 0;
89877 +}
89878 +
89879 +int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp)
89880 +{
89881 + struct acl_role_label_compat rolecompat;
89882 +
89883 + if (copy_from_user(&rolecompat, userp, sizeof(rolecompat)))
89884 + return -EFAULT;
89885 +
89886 + role->rolename = compat_ptr(rolecompat.rolename);
89887 + role->uidgid = rolecompat.uidgid;
89888 + role->roletype = rolecompat.roletype;
89889 +
89890 + role->auth_attempts = rolecompat.auth_attempts;
89891 + role->expires = rolecompat.expires;
89892 +
89893 + role->root_label = compat_ptr(rolecompat.root_label);
89894 + role->hash = compat_ptr(rolecompat.hash);
89895 +
89896 + role->prev = compat_ptr(rolecompat.prev);
89897 + role->next = compat_ptr(rolecompat.next);
89898 +
89899 + role->transitions = compat_ptr(rolecompat.transitions);
89900 + role->allowed_ips = compat_ptr(rolecompat.allowed_ips);
89901 + role->domain_children = compat_ptr(rolecompat.domain_children);
89902 + role->domain_child_num = rolecompat.domain_child_num;
89903 +
89904 + role->umask = rolecompat.umask;
89905 +
89906 + role->subj_hash = compat_ptr(rolecompat.subj_hash);
89907 + role->subj_hash_size = rolecompat.subj_hash_size;
89908 +
89909 + return 0;
89910 +}
89911 +
89912 +int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
89913 +{
89914 + struct role_allowed_ip_compat roleip_compat;
89915 +
89916 + if (copy_from_user(&roleip_compat, userp, sizeof(roleip_compat)))
89917 + return -EFAULT;
89918 +
89919 + roleip->addr = roleip_compat.addr;
89920 + roleip->netmask = roleip_compat.netmask;
89921 +
89922 + roleip->prev = compat_ptr(roleip_compat.prev);
89923 + roleip->next = compat_ptr(roleip_compat.next);
89924 +
89925 + return 0;
89926 +}
89927 +
89928 +int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp)
89929 +{
89930 + struct role_transition_compat trans_compat;
89931 +
89932 + if (copy_from_user(&trans_compat, userp, sizeof(trans_compat)))
89933 + return -EFAULT;
89934 +
89935 + trans->rolename = compat_ptr(trans_compat.rolename);
89936 +
89937 + trans->prev = compat_ptr(trans_compat.prev);
89938 + trans->next = compat_ptr(trans_compat.next);
89939 +
89940 + return 0;
89941 +
89942 +}
89943 +
89944 +int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
89945 +{
89946 + struct gr_hash_struct_compat hash_compat;
89947 +
89948 + if (copy_from_user(&hash_compat, userp, sizeof(hash_compat)))
89949 + return -EFAULT;
89950 +
89951 + hash->table = compat_ptr(hash_compat.table);
89952 + hash->nametable = compat_ptr(hash_compat.nametable);
89953 + hash->first = compat_ptr(hash_compat.first);
89954 +
89955 + hash->table_size = hash_compat.table_size;
89956 + hash->used_size = hash_compat.used_size;
89957 +
89958 + hash->type = hash_compat.type;
89959 +
89960 + return 0;
89961 +}
89962 +
89963 +int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp)
89964 +{
89965 + compat_uptr_t ptrcompat;
89966 +
89967 + if (copy_from_user(&ptrcompat, userp + (idx * sizeof(ptrcompat)), sizeof(ptrcompat)))
89968 + return -EFAULT;
89969 +
89970 + *(void **)ptr = compat_ptr(ptrcompat);
89971 +
89972 + return 0;
89973 +}
89974 +
89975 +int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp)
89976 +{
89977 + struct acl_ip_label_compat ip_compat;
89978 +
89979 + if (copy_from_user(&ip_compat, userp, sizeof(ip_compat)))
89980 + return -EFAULT;
89981 +
89982 + ip->iface = compat_ptr(ip_compat.iface);
89983 + ip->addr = ip_compat.addr;
89984 + ip->netmask = ip_compat.netmask;
89985 + ip->low = ip_compat.low;
89986 + ip->high = ip_compat.high;
89987 + ip->mode = ip_compat.mode;
89988 + ip->type = ip_compat.type;
89989 +
89990 + memcpy(&ip->proto, &ip_compat.proto, sizeof(ip->proto));
89991 +
89992 + ip->prev = compat_ptr(ip_compat.prev);
89993 + ip->next = compat_ptr(ip_compat.next);
89994 +
89995 + return 0;
89996 +}
89997 +
89998 +int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
89999 +{
90000 + struct sprole_pw_compat pw_compat;
90001 +
90002 + if (copy_from_user(&pw_compat, (const void *)userp + (sizeof(pw_compat) * idx), sizeof(pw_compat)))
90003 + return -EFAULT;
90004 +
90005 + pw->rolename = compat_ptr(pw_compat.rolename);
90006 + memcpy(&pw->salt, pw_compat.salt, sizeof(pw->salt));
90007 + memcpy(&pw->sum, pw_compat.sum, sizeof(pw->sum));
90008 +
90009 + return 0;
90010 +}
90011 +
90012 +size_t get_gr_arg_wrapper_size_compat(void)
90013 +{
90014 + return sizeof(struct gr_arg_wrapper_compat);
90015 +}
90016 +
90017 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
90018 new file mode 100644
90019 index 0000000..fce7f71
90020 --- /dev/null
90021 +++ b/grsecurity/gracl_fs.c
90022 @@ -0,0 +1,448 @@
90023 +#include <linux/kernel.h>
90024 +#include <linux/sched.h>
90025 +#include <linux/types.h>
90026 +#include <linux/fs.h>
90027 +#include <linux/file.h>
90028 +#include <linux/stat.h>
90029 +#include <linux/grsecurity.h>
90030 +#include <linux/grinternal.h>
90031 +#include <linux/gracl.h>
90032 +
90033 +umode_t
90034 +gr_acl_umask(void)
90035 +{
90036 + if (unlikely(!gr_acl_is_enabled()))
90037 + return 0;
90038 +
90039 + return current->role->umask;
90040 +}
90041 +
90042 +__u32
90043 +gr_acl_handle_hidden_file(const struct dentry * dentry,
90044 + const struct vfsmount * mnt)
90045 +{
90046 + __u32 mode;
90047 +
90048 + if (unlikely(d_is_negative(dentry)))
90049 + return GR_FIND;
90050 +
90051 + mode =
90052 + gr_search_file(dentry, GR_FIND | GR_AUDIT_FIND | GR_SUPPRESS, mnt);
90053 +
90054 + if (unlikely(mode & GR_FIND && mode & GR_AUDIT_FIND)) {
90055 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
90056 + return mode;
90057 + } else if (unlikely(!(mode & GR_FIND) && !(mode & GR_SUPPRESS))) {
90058 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
90059 + return 0;
90060 + } else if (unlikely(!(mode & GR_FIND)))
90061 + return 0;
90062 +
90063 + return GR_FIND;
90064 +}
90065 +
90066 +__u32
90067 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
90068 + int acc_mode)
90069 +{
90070 + __u32 reqmode = GR_FIND;
90071 + __u32 mode;
90072 +
90073 + if (unlikely(d_is_negative(dentry)))
90074 + return reqmode;
90075 +
90076 + if (acc_mode & MAY_APPEND)
90077 + reqmode |= GR_APPEND;
90078 + else if (acc_mode & MAY_WRITE)
90079 + reqmode |= GR_WRITE;
90080 + if ((acc_mode & MAY_READ) && !d_is_dir(dentry))
90081 + reqmode |= GR_READ;
90082 +
90083 + mode =
90084 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
90085 + mnt);
90086 +
90087 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
90088 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
90089 + reqmode & GR_READ ? " reading" : "",
90090 + reqmode & GR_WRITE ? " writing" : reqmode &
90091 + GR_APPEND ? " appending" : "");
90092 + return reqmode;
90093 + } else
90094 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
90095 + {
90096 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
90097 + reqmode & GR_READ ? " reading" : "",
90098 + reqmode & GR_WRITE ? " writing" : reqmode &
90099 + GR_APPEND ? " appending" : "");
90100 + return 0;
90101 + } else if (unlikely((mode & reqmode) != reqmode))
90102 + return 0;
90103 +
90104 + return reqmode;
90105 +}
90106 +
90107 +__u32
90108 +gr_acl_handle_creat(const struct dentry * dentry,
90109 + const struct dentry * p_dentry,
90110 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
90111 + const int imode)
90112 +{
90113 + __u32 reqmode = GR_WRITE | GR_CREATE;
90114 + __u32 mode;
90115 +
90116 + if (acc_mode & MAY_APPEND)
90117 + reqmode |= GR_APPEND;
90118 + // if a directory was required or the directory already exists, then
90119 + // don't count this open as a read
90120 + if ((acc_mode & MAY_READ) &&
90121 + !((open_flags & O_DIRECTORY) || d_is_dir(dentry)))
90122 + reqmode |= GR_READ;
90123 + if ((open_flags & O_CREAT) &&
90124 + ((imode & S_ISUID) || ((imode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
90125 + reqmode |= GR_SETID;
90126 +
90127 + mode =
90128 + gr_check_create(dentry, p_dentry, p_mnt,
90129 + reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
90130 +
90131 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
90132 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
90133 + reqmode & GR_READ ? " reading" : "",
90134 + reqmode & GR_WRITE ? " writing" : reqmode &
90135 + GR_APPEND ? " appending" : "");
90136 + return reqmode;
90137 + } else
90138 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
90139 + {
90140 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
90141 + reqmode & GR_READ ? " reading" : "",
90142 + reqmode & GR_WRITE ? " writing" : reqmode &
90143 + GR_APPEND ? " appending" : "");
90144 + return 0;
90145 + } else if (unlikely((mode & reqmode) != reqmode))
90146 + return 0;
90147 +
90148 + return reqmode;
90149 +}
90150 +
90151 +__u32
90152 +gr_acl_handle_access(const struct dentry * dentry, const struct vfsmount * mnt,
90153 + const int fmode)
90154 +{
90155 + __u32 mode, reqmode = GR_FIND;
90156 +
90157 + if ((fmode & S_IXOTH) && !d_is_dir(dentry))
90158 + reqmode |= GR_EXEC;
90159 + if (fmode & S_IWOTH)
90160 + reqmode |= GR_WRITE;
90161 + if (fmode & S_IROTH)
90162 + reqmode |= GR_READ;
90163 +
90164 + mode =
90165 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
90166 + mnt);
90167 +
90168 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
90169 + gr_log_fs_rbac_mode3(GR_DO_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
90170 + reqmode & GR_READ ? " reading" : "",
90171 + reqmode & GR_WRITE ? " writing" : "",
90172 + reqmode & GR_EXEC ? " executing" : "");
90173 + return reqmode;
90174 + } else
90175 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
90176 + {
90177 + gr_log_fs_rbac_mode3(GR_DONT_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
90178 + reqmode & GR_READ ? " reading" : "",
90179 + reqmode & GR_WRITE ? " writing" : "",
90180 + reqmode & GR_EXEC ? " executing" : "");
90181 + return 0;
90182 + } else if (unlikely((mode & reqmode) != reqmode))
90183 + return 0;
90184 +
90185 + return reqmode;
90186 +}
90187 +
90188 +static __u32 generic_fs_handler(const struct dentry *dentry, const struct vfsmount *mnt, __u32 reqmode, const char *fmt)
90189 +{
90190 + __u32 mode;
90191 +
90192 + mode = gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS, mnt);
90193 +
90194 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
90195 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, dentry, mnt);
90196 + return mode;
90197 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
90198 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, dentry, mnt);
90199 + return 0;
90200 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
90201 + return 0;
90202 +
90203 + return (reqmode);
90204 +}
90205 +
90206 +__u32
90207 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
90208 +{
90209 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_RMDIR_ACL_MSG);
90210 +}
90211 +
90212 +__u32
90213 +gr_acl_handle_unlink(const struct dentry *dentry, const struct vfsmount *mnt)
90214 +{
90215 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_UNLINK_ACL_MSG);
90216 +}
90217 +
90218 +__u32
90219 +gr_acl_handle_truncate(const struct dentry *dentry, const struct vfsmount *mnt)
90220 +{
90221 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_TRUNCATE_ACL_MSG);
90222 +}
90223 +
90224 +__u32
90225 +gr_acl_handle_utime(const struct dentry *dentry, const struct vfsmount *mnt)
90226 +{
90227 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_ATIME_ACL_MSG);
90228 +}
90229 +
90230 +__u32
90231 +gr_acl_handle_chmod(const struct dentry *dentry, const struct vfsmount *mnt,
90232 + umode_t *modeptr)
90233 +{
90234 + umode_t mode;
90235 + struct inode *inode = d_backing_inode(dentry);
90236 +
90237 + *modeptr &= ~gr_acl_umask();
90238 + mode = *modeptr;
90239 +
90240 + if (unlikely(inode && S_ISSOCK(inode->i_mode)))
90241 + return 1;
90242 +
90243 + if (unlikely(!d_is_dir(dentry) &&
90244 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))) {
90245 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
90246 + GR_CHMOD_ACL_MSG);
90247 + } else {
90248 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHMOD_ACL_MSG);
90249 + }
90250 +}
90251 +
90252 +__u32
90253 +gr_acl_handle_chown(const struct dentry *dentry, const struct vfsmount *mnt)
90254 +{
90255 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHOWN_ACL_MSG);
90256 +}
90257 +
90258 +__u32
90259 +gr_acl_handle_setxattr(const struct dentry *dentry, const struct vfsmount *mnt)
90260 +{
90261 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_SETXATTR_ACL_MSG);
90262 +}
90263 +
90264 +__u32
90265 +gr_acl_handle_removexattr(const struct dentry *dentry, const struct vfsmount *mnt)
90266 +{
90267 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_REMOVEXATTR_ACL_MSG);
90268 +}
90269 +
90270 +__u32
90271 +gr_acl_handle_execve(const struct dentry *dentry, const struct vfsmount *mnt)
90272 +{
90273 + return generic_fs_handler(dentry, mnt, GR_EXEC, GR_EXEC_ACL_MSG);
90274 +}
90275 +
90276 +__u32
90277 +gr_acl_handle_unix(const struct dentry *dentry, const struct vfsmount *mnt)
90278 +{
90279 + return generic_fs_handler(dentry, mnt, GR_READ | GR_WRITE,
90280 + GR_UNIXCONNECT_ACL_MSG);
90281 +}
90282 +
90283 +/* hardlinks require at minimum create and link permission,
90284 + any additional privilege required is based on the
90285 + privilege of the file being linked to
90286 +*/
90287 +__u32
90288 +gr_acl_handle_link(const struct dentry * new_dentry,
90289 + const struct dentry * parent_dentry,
90290 + const struct vfsmount * parent_mnt,
90291 + const struct dentry * old_dentry,
90292 + const struct vfsmount * old_mnt, const struct filename *to)
90293 +{
90294 + __u32 mode;
90295 + __u32 needmode = GR_CREATE | GR_LINK;
90296 + __u32 needaudit = GR_AUDIT_CREATE | GR_AUDIT_LINK;
90297 +
90298 + mode =
90299 + gr_check_link(new_dentry, parent_dentry, parent_mnt, old_dentry,
90300 + old_mnt);
90301 +
90302 + if (unlikely(((mode & needmode) == needmode) && (mode & needaudit))) {
90303 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
90304 + return mode;
90305 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
90306 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
90307 + return 0;
90308 + } else if (unlikely((mode & needmode) != needmode))
90309 + return 0;
90310 +
90311 + return 1;
90312 +}
90313 +
90314 +__u32
90315 +gr_acl_handle_symlink(const struct dentry * new_dentry,
90316 + const struct dentry * parent_dentry,
90317 + const struct vfsmount * parent_mnt, const struct filename *from)
90318 +{
90319 + __u32 needmode = GR_WRITE | GR_CREATE;
90320 + __u32 mode;
90321 +
90322 + mode =
90323 + gr_check_create(new_dentry, parent_dentry, parent_mnt,
90324 + GR_CREATE | GR_AUDIT_CREATE |
90325 + GR_WRITE | GR_AUDIT_WRITE | GR_SUPPRESS);
90326 +
90327 + if (unlikely(mode & GR_WRITE && mode & GR_AUDITS)) {
90328 + gr_log_fs_str_rbac(GR_DO_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
90329 + return mode;
90330 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
90331 + gr_log_fs_str_rbac(GR_DONT_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
90332 + return 0;
90333 + } else if (unlikely((mode & needmode) != needmode))
90334 + return 0;
90335 +
90336 + return (GR_WRITE | GR_CREATE);
90337 +}
90338 +
90339 +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)
90340 +{
90341 + __u32 mode;
90342 +
90343 + mode = gr_check_create(new_dentry, parent_dentry, parent_mnt, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
90344 +
90345 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
90346 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, new_dentry, parent_mnt);
90347 + return mode;
90348 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
90349 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, new_dentry, parent_mnt);
90350 + return 0;
90351 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
90352 + return 0;
90353 +
90354 + return (reqmode);
90355 +}
90356 +
90357 +__u32
90358 +gr_acl_handle_mknod(const struct dentry * new_dentry,
90359 + const struct dentry * parent_dentry,
90360 + const struct vfsmount * parent_mnt,
90361 + const int mode)
90362 +{
90363 + __u32 reqmode = GR_WRITE | GR_CREATE;
90364 + if (unlikely((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
90365 + reqmode |= GR_SETID;
90366 +
90367 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
90368 + reqmode, GR_MKNOD_ACL_MSG);
90369 +}
90370 +
90371 +__u32
90372 +gr_acl_handle_mkdir(const struct dentry *new_dentry,
90373 + const struct dentry *parent_dentry,
90374 + const struct vfsmount *parent_mnt)
90375 +{
90376 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
90377 + GR_WRITE | GR_CREATE, GR_MKDIR_ACL_MSG);
90378 +}
90379 +
90380 +#define RENAME_CHECK_SUCCESS(old, new) \
90381 + (((old & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)) && \
90382 + ((new & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)))
90383 +
90384 +int
90385 +gr_acl_handle_rename(struct dentry *new_dentry,
90386 + struct dentry *parent_dentry,
90387 + const struct vfsmount *parent_mnt,
90388 + struct dentry *old_dentry,
90389 + struct inode *old_parent_inode,
90390 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags)
90391 +{
90392 + __u32 comp1, comp2;
90393 + int error = 0;
90394 +
90395 + if (unlikely(!gr_acl_is_enabled()))
90396 + return 0;
90397 +
90398 + if (flags & RENAME_EXCHANGE) {
90399 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
90400 + GR_AUDIT_READ | GR_AUDIT_WRITE |
90401 + GR_SUPPRESS, parent_mnt);
90402 + comp2 =
90403 + gr_search_file(old_dentry,
90404 + GR_READ | GR_WRITE | GR_AUDIT_READ |
90405 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
90406 + } else if (d_is_negative(new_dentry)) {
90407 + comp1 = gr_check_create(new_dentry, parent_dentry, parent_mnt,
90408 + GR_READ | GR_WRITE | GR_CREATE | GR_AUDIT_READ |
90409 + GR_AUDIT_WRITE | GR_AUDIT_CREATE | GR_SUPPRESS);
90410 + comp2 = gr_search_file(old_dentry, GR_READ | GR_WRITE |
90411 + GR_DELETE | GR_AUDIT_DELETE |
90412 + GR_AUDIT_READ | GR_AUDIT_WRITE |
90413 + GR_SUPPRESS, old_mnt);
90414 + } else {
90415 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
90416 + GR_CREATE | GR_DELETE |
90417 + GR_AUDIT_CREATE | GR_AUDIT_DELETE |
90418 + GR_AUDIT_READ | GR_AUDIT_WRITE |
90419 + GR_SUPPRESS, parent_mnt);
90420 + comp2 =
90421 + gr_search_file(old_dentry,
90422 + GR_READ | GR_WRITE | GR_AUDIT_READ |
90423 + GR_DELETE | GR_AUDIT_DELETE |
90424 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
90425 + }
90426 +
90427 + if (RENAME_CHECK_SUCCESS(comp1, comp2) &&
90428 + ((comp1 & GR_AUDITS) || (comp2 & GR_AUDITS)))
90429 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
90430 + else if (!RENAME_CHECK_SUCCESS(comp1, comp2) && !(comp1 & GR_SUPPRESS)
90431 + && !(comp2 & GR_SUPPRESS)) {
90432 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
90433 + error = -EACCES;
90434 + } else if (unlikely(!RENAME_CHECK_SUCCESS(comp1, comp2)))
90435 + error = -EACCES;
90436 +
90437 + return error;
90438 +}
90439 +
90440 +void
90441 +gr_acl_handle_exit(void)
90442 +{
90443 + u16 id;
90444 + char *rolename;
90445 +
90446 + if (unlikely(current->acl_sp_role && gr_acl_is_enabled() &&
90447 + !(current->role->roletype & GR_ROLE_PERSIST))) {
90448 + id = current->acl_role_id;
90449 + rolename = current->role->rolename;
90450 + gr_set_acls(1);
90451 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLEL_ACL_MSG, rolename, id);
90452 + }
90453 +
90454 + gr_put_exec_file(current);
90455 + return;
90456 +}
90457 +
90458 +int
90459 +gr_acl_handle_procpidmem(const struct task_struct *task)
90460 +{
90461 + if (unlikely(!gr_acl_is_enabled()))
90462 + return 0;
90463 +
90464 + if (task != current && (task->acl->mode & GR_PROTPROCFD) &&
90465 + !(current->acl->mode & GR_POVERRIDE) &&
90466 + !(current->role->roletype & GR_ROLE_GOD))
90467 + return -EACCES;
90468 +
90469 + return 0;
90470 +}
90471 diff --git a/grsecurity/gracl_ip.c b/grsecurity/gracl_ip.c
90472 new file mode 100644
90473 index 0000000..ed6ee43
90474 --- /dev/null
90475 +++ b/grsecurity/gracl_ip.c
90476 @@ -0,0 +1,386 @@
90477 +#include <linux/kernel.h>
90478 +#include <asm/uaccess.h>
90479 +#include <asm/errno.h>
90480 +#include <net/sock.h>
90481 +#include <linux/file.h>
90482 +#include <linux/fs.h>
90483 +#include <linux/net.h>
90484 +#include <linux/in.h>
90485 +#include <linux/skbuff.h>
90486 +#include <linux/ip.h>
90487 +#include <linux/udp.h>
90488 +#include <linux/types.h>
90489 +#include <linux/sched.h>
90490 +#include <linux/netdevice.h>
90491 +#include <linux/inetdevice.h>
90492 +#include <linux/gracl.h>
90493 +#include <linux/grsecurity.h>
90494 +#include <linux/grinternal.h>
90495 +
90496 +#define GR_BIND 0x01
90497 +#define GR_CONNECT 0x02
90498 +#define GR_INVERT 0x04
90499 +#define GR_BINDOVERRIDE 0x08
90500 +#define GR_CONNECTOVERRIDE 0x10
90501 +#define GR_SOCK_FAMILY 0x20
90502 +
90503 +static const char * gr_protocols[IPPROTO_MAX] = {
90504 + "ip", "icmp", "igmp", "ggp", "ipencap", "st", "tcp", "cbt",
90505 + "egp", "igp", "bbn-rcc", "nvp", "pup", "argus", "emcon", "xnet",
90506 + "chaos", "udp", "mux", "dcn", "hmp", "prm", "xns-idp", "trunk-1",
90507 + "trunk-2", "leaf-1", "leaf-2", "rdp", "irtp", "iso-tp4", "netblt", "mfe-nsp",
90508 + "merit-inp", "sep", "3pc", "idpr", "xtp", "ddp", "idpr-cmtp", "tp++",
90509 + "il", "ipv6", "sdrp", "ipv6-route", "ipv6-frag", "idrp", "rsvp", "gre",
90510 + "mhrp", "bna", "ipv6-crypt", "ipv6-auth", "i-nlsp", "swipe", "narp", "mobile",
90511 + "tlsp", "skip", "ipv6-icmp", "ipv6-nonxt", "ipv6-opts", "unknown:61", "cftp", "unknown:63",
90512 + "sat-expak", "kryptolan", "rvd", "ippc", "unknown:68", "sat-mon", "visa", "ipcv",
90513 + "cpnx", "cphb", "wsn", "pvp", "br-sat-mon", "sun-nd", "wb-mon", "wb-expak",
90514 + "iso-ip", "vmtp", "secure-vmtp", "vines", "ttp", "nfsnet-igp", "dgp", "tcf",
90515 + "eigrp", "ospf", "sprite-rpc", "larp", "mtp", "ax.25", "ipip", "micp",
90516 + "scc-sp", "etherip", "encap", "unknown:99", "gmtp", "ifmp", "pnni", "pim",
90517 + "aris", "scps", "qnx", "a/n", "ipcomp", "snp", "compaq-peer", "ipx-in-ip",
90518 + "vrrp", "pgm", "unknown:114", "l2tp", "ddx", "iatp", "stp", "srp",
90519 + "uti", "smp", "sm", "ptp", "isis", "fire", "crtp", "crdup",
90520 + "sscopmce", "iplt", "sps", "pipe", "sctp", "fc", "unkown:134", "unknown:135",
90521 + "unknown:136", "unknown:137", "unknown:138", "unknown:139", "unknown:140", "unknown:141", "unknown:142", "unknown:143",
90522 + "unknown:144", "unknown:145", "unknown:146", "unknown:147", "unknown:148", "unknown:149", "unknown:150", "unknown:151",
90523 + "unknown:152", "unknown:153", "unknown:154", "unknown:155", "unknown:156", "unknown:157", "unknown:158", "unknown:159",
90524 + "unknown:160", "unknown:161", "unknown:162", "unknown:163", "unknown:164", "unknown:165", "unknown:166", "unknown:167",
90525 + "unknown:168", "unknown:169", "unknown:170", "unknown:171", "unknown:172", "unknown:173", "unknown:174", "unknown:175",
90526 + "unknown:176", "unknown:177", "unknown:178", "unknown:179", "unknown:180", "unknown:181", "unknown:182", "unknown:183",
90527 + "unknown:184", "unknown:185", "unknown:186", "unknown:187", "unknown:188", "unknown:189", "unknown:190", "unknown:191",
90528 + "unknown:192", "unknown:193", "unknown:194", "unknown:195", "unknown:196", "unknown:197", "unknown:198", "unknown:199",
90529 + "unknown:200", "unknown:201", "unknown:202", "unknown:203", "unknown:204", "unknown:205", "unknown:206", "unknown:207",
90530 + "unknown:208", "unknown:209", "unknown:210", "unknown:211", "unknown:212", "unknown:213", "unknown:214", "unknown:215",
90531 + "unknown:216", "unknown:217", "unknown:218", "unknown:219", "unknown:220", "unknown:221", "unknown:222", "unknown:223",
90532 + "unknown:224", "unknown:225", "unknown:226", "unknown:227", "unknown:228", "unknown:229", "unknown:230", "unknown:231",
90533 + "unknown:232", "unknown:233", "unknown:234", "unknown:235", "unknown:236", "unknown:237", "unknown:238", "unknown:239",
90534 + "unknown:240", "unknown:241", "unknown:242", "unknown:243", "unknown:244", "unknown:245", "unknown:246", "unknown:247",
90535 + "unknown:248", "unknown:249", "unknown:250", "unknown:251", "unknown:252", "unknown:253", "unknown:254", "unknown:255",
90536 + };
90537 +
90538 +static const char * gr_socktypes[SOCK_MAX] = {
90539 + "unknown:0", "stream", "dgram", "raw", "rdm", "seqpacket", "unknown:6",
90540 + "unknown:7", "unknown:8", "unknown:9", "packet"
90541 + };
90542 +
90543 +static const char * gr_sockfamilies[AF_MAX+1] = {
90544 + "unspec", "unix", "inet", "ax25", "ipx", "appletalk", "netrom", "bridge", "atmpvc", "x25",
90545 + "inet6", "rose", "decnet", "netbeui", "security", "key", "netlink", "packet", "ash",
90546 + "econet", "atmsvc", "rds", "sna", "irda", "ppox", "wanpipe", "llc", "fam_27", "fam_28",
90547 + "tipc", "bluetooth", "iucv", "rxrpc", "isdn", "phonet", "ieee802154", "ciaf", "alg", "nfc", "vsock"
90548 + };
90549 +
90550 +const char *
90551 +gr_proto_to_name(unsigned char proto)
90552 +{
90553 + return gr_protocols[proto];
90554 +}
90555 +
90556 +const char *
90557 +gr_socktype_to_name(unsigned char type)
90558 +{
90559 + return gr_socktypes[type];
90560 +}
90561 +
90562 +const char *
90563 +gr_sockfamily_to_name(unsigned char family)
90564 +{
90565 + return gr_sockfamilies[family];
90566 +}
90567 +
90568 +extern const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
90569 +
90570 +int
90571 +gr_search_socket(const int domain, const int type, const int protocol)
90572 +{
90573 + struct acl_subject_label *curr;
90574 + const struct cred *cred = current_cred();
90575 +
90576 + if (unlikely(!gr_acl_is_enabled()))
90577 + goto exit;
90578 +
90579 + if ((domain < 0) || (type < 0) || (protocol < 0) ||
90580 + (domain >= AF_MAX) || (type >= SOCK_MAX) || (protocol >= IPPROTO_MAX))
90581 + goto exit; // let the kernel handle it
90582 +
90583 + curr = current->acl;
90584 +
90585 + if (curr->sock_families[domain / 32] & (1U << (domain % 32))) {
90586 + /* the family is allowed, if this is PF_INET allow it only if
90587 + the extra sock type/protocol checks pass */
90588 + if (domain == PF_INET)
90589 + goto inet_check;
90590 + goto exit;
90591 + } else {
90592 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90593 + __u32 fakeip = 0;
90594 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90595 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90596 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90597 + gr_to_filename(current->exec_file->f_path.dentry,
90598 + current->exec_file->f_path.mnt) :
90599 + curr->filename, curr->filename,
90600 + &fakeip, domain, 0, 0, GR_SOCK_FAMILY,
90601 + &current->signal->saved_ip);
90602 + goto exit;
90603 + }
90604 + goto exit_fail;
90605 + }
90606 +
90607 +inet_check:
90608 + /* the rest of this checking is for IPv4 only */
90609 + if (!curr->ips)
90610 + goto exit;
90611 +
90612 + if ((curr->ip_type & (1U << type)) &&
90613 + (curr->ip_proto[protocol / 32] & (1U << (protocol % 32))))
90614 + goto exit;
90615 +
90616 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90617 + /* we don't place acls on raw sockets , and sometimes
90618 + dgram/ip sockets are opened for ioctl and not
90619 + bind/connect, so we'll fake a bind learn log */
90620 + if (type == SOCK_RAW || type == SOCK_PACKET) {
90621 + __u32 fakeip = 0;
90622 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90623 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90624 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90625 + gr_to_filename(current->exec_file->f_path.dentry,
90626 + current->exec_file->f_path.mnt) :
90627 + curr->filename, curr->filename,
90628 + &fakeip, 0, type,
90629 + protocol, GR_CONNECT, &current->signal->saved_ip);
90630 + } else if ((type == SOCK_DGRAM) && (protocol == IPPROTO_IP)) {
90631 + __u32 fakeip = 0;
90632 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90633 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90634 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90635 + gr_to_filename(current->exec_file->f_path.dentry,
90636 + current->exec_file->f_path.mnt) :
90637 + curr->filename, curr->filename,
90638 + &fakeip, 0, type,
90639 + protocol, GR_BIND, &current->signal->saved_ip);
90640 + }
90641 + /* we'll log when they use connect or bind */
90642 + goto exit;
90643 + }
90644 +
90645 +exit_fail:
90646 + if (domain == PF_INET)
90647 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(domain),
90648 + gr_socktype_to_name(type), gr_proto_to_name(protocol));
90649 + else if (rcu_access_pointer(net_families[domain]) != NULL)
90650 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(domain),
90651 + gr_socktype_to_name(type), protocol);
90652 +
90653 + return 0;
90654 +exit:
90655 + return 1;
90656 +}
90657 +
90658 +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)
90659 +{
90660 + if ((ip->mode & mode) &&
90661 + (ip_port >= ip->low) &&
90662 + (ip_port <= ip->high) &&
90663 + ((ntohl(ip_addr) & our_netmask) ==
90664 + (ntohl(our_addr) & our_netmask))
90665 + && (ip->proto[protocol / 32] & (1U << (protocol % 32)))
90666 + && (ip->type & (1U << type))) {
90667 + if (ip->mode & GR_INVERT)
90668 + return 2; // specifically denied
90669 + else
90670 + return 1; // allowed
90671 + }
90672 +
90673 + return 0; // not specifically allowed, may continue parsing
90674 +}
90675 +
90676 +static int
90677 +gr_search_connectbind(const int full_mode, struct sock *sk,
90678 + struct sockaddr_in *addr, const int type)
90679 +{
90680 + char iface[IFNAMSIZ] = {0};
90681 + struct acl_subject_label *curr;
90682 + struct acl_ip_label *ip;
90683 + struct inet_sock *isk;
90684 + struct net_device *dev;
90685 + struct in_device *idev;
90686 + unsigned long i;
90687 + int ret;
90688 + int mode = full_mode & (GR_BIND | GR_CONNECT);
90689 + __u32 ip_addr = 0;
90690 + __u32 our_addr;
90691 + __u32 our_netmask;
90692 + char *p;
90693 + __u16 ip_port = 0;
90694 + const struct cred *cred = current_cred();
90695 +
90696 + if (unlikely(!gr_acl_is_enabled() || sk->sk_family != PF_INET))
90697 + return 0;
90698 +
90699 + curr = current->acl;
90700 + isk = inet_sk(sk);
90701 +
90702 + /* INADDR_ANY overriding for binds, inaddr_any_override is already in network order */
90703 + if ((full_mode & GR_BINDOVERRIDE) && addr->sin_addr.s_addr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0)
90704 + addr->sin_addr.s_addr = curr->inaddr_any_override;
90705 + if ((full_mode & GR_CONNECT) && isk->inet_saddr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0) {
90706 + struct sockaddr_in saddr;
90707 + int err;
90708 +
90709 + saddr.sin_family = AF_INET;
90710 + saddr.sin_addr.s_addr = curr->inaddr_any_override;
90711 + saddr.sin_port = isk->inet_sport;
90712 +
90713 + err = security_socket_bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
90714 + if (err)
90715 + return err;
90716 +
90717 + err = sk->sk_socket->ops->bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
90718 + if (err)
90719 + return err;
90720 + }
90721 +
90722 + if (!curr->ips)
90723 + return 0;
90724 +
90725 + ip_addr = addr->sin_addr.s_addr;
90726 + ip_port = ntohs(addr->sin_port);
90727 +
90728 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90729 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90730 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90731 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90732 + gr_to_filename(current->exec_file->f_path.dentry,
90733 + current->exec_file->f_path.mnt) :
90734 + curr->filename, curr->filename,
90735 + &ip_addr, ip_port, type,
90736 + sk->sk_protocol, mode, &current->signal->saved_ip);
90737 + return 0;
90738 + }
90739 +
90740 + for (i = 0; i < curr->ip_num; i++) {
90741 + ip = *(curr->ips + i);
90742 + if (ip->iface != NULL) {
90743 + strncpy(iface, ip->iface, IFNAMSIZ - 1);
90744 + p = strchr(iface, ':');
90745 + if (p != NULL)
90746 + *p = '\0';
90747 + dev = dev_get_by_name(sock_net(sk), iface);
90748 + if (dev == NULL)
90749 + continue;
90750 + idev = in_dev_get(dev);
90751 + if (idev == NULL) {
90752 + dev_put(dev);
90753 + continue;
90754 + }
90755 + rcu_read_lock();
90756 + for_ifa(idev) {
90757 + if (!strcmp(ip->iface, ifa->ifa_label)) {
90758 + our_addr = ifa->ifa_address;
90759 + our_netmask = 0xffffffff;
90760 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
90761 + if (ret == 1) {
90762 + rcu_read_unlock();
90763 + in_dev_put(idev);
90764 + dev_put(dev);
90765 + return 0;
90766 + } else if (ret == 2) {
90767 + rcu_read_unlock();
90768 + in_dev_put(idev);
90769 + dev_put(dev);
90770 + goto denied;
90771 + }
90772 + }
90773 + } endfor_ifa(idev);
90774 + rcu_read_unlock();
90775 + in_dev_put(idev);
90776 + dev_put(dev);
90777 + } else {
90778 + our_addr = ip->addr;
90779 + our_netmask = ip->netmask;
90780 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
90781 + if (ret == 1)
90782 + return 0;
90783 + else if (ret == 2)
90784 + goto denied;
90785 + }
90786 + }
90787 +
90788 +denied:
90789 + if (mode == GR_BIND)
90790 + 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));
90791 + else if (mode == GR_CONNECT)
90792 + 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));
90793 +
90794 + return -EACCES;
90795 +}
90796 +
90797 +int
90798 +gr_search_connect(struct socket *sock, struct sockaddr_in *addr)
90799 +{
90800 + /* always allow disconnection of dgram sockets with connect */
90801 + if (addr->sin_family == AF_UNSPEC)
90802 + return 0;
90803 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sock->sk, addr, sock->type);
90804 +}
90805 +
90806 +int
90807 +gr_search_bind(struct socket *sock, struct sockaddr_in *addr)
90808 +{
90809 + return gr_search_connectbind(GR_BIND | GR_BINDOVERRIDE, sock->sk, addr, sock->type);
90810 +}
90811 +
90812 +int gr_search_listen(struct socket *sock)
90813 +{
90814 + struct sock *sk = sock->sk;
90815 + struct sockaddr_in addr;
90816 +
90817 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
90818 + addr.sin_port = inet_sk(sk)->inet_sport;
90819 +
90820 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
90821 +}
90822 +
90823 +int gr_search_accept(struct socket *sock)
90824 +{
90825 + struct sock *sk = sock->sk;
90826 + struct sockaddr_in addr;
90827 +
90828 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
90829 + addr.sin_port = inet_sk(sk)->inet_sport;
90830 +
90831 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
90832 +}
90833 +
90834 +int
90835 +gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr)
90836 +{
90837 + if (addr)
90838 + return gr_search_connectbind(GR_CONNECT, sk, addr, SOCK_DGRAM);
90839 + else {
90840 + struct sockaddr_in sin;
90841 + const struct inet_sock *inet = inet_sk(sk);
90842 +
90843 + sin.sin_addr.s_addr = inet->inet_daddr;
90844 + sin.sin_port = inet->inet_dport;
90845 +
90846 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
90847 + }
90848 +}
90849 +
90850 +int
90851 +gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb)
90852 +{
90853 + struct sockaddr_in sin;
90854 +
90855 + if (unlikely(skb->len < sizeof (struct udphdr)))
90856 + return 0; // skip this packet
90857 +
90858 + sin.sin_addr.s_addr = ip_hdr(skb)->saddr;
90859 + sin.sin_port = udp_hdr(skb)->source;
90860 +
90861 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
90862 +}
90863 diff --git a/grsecurity/gracl_learn.c b/grsecurity/gracl_learn.c
90864 new file mode 100644
90865 index 0000000..25f54ef
90866 --- /dev/null
90867 +++ b/grsecurity/gracl_learn.c
90868 @@ -0,0 +1,207 @@
90869 +#include <linux/kernel.h>
90870 +#include <linux/mm.h>
90871 +#include <linux/sched.h>
90872 +#include <linux/poll.h>
90873 +#include <linux/string.h>
90874 +#include <linux/file.h>
90875 +#include <linux/types.h>
90876 +#include <linux/vmalloc.h>
90877 +#include <linux/grinternal.h>
90878 +
90879 +extern ssize_t write_grsec_handler(struct file * file, const char __user * buf,
90880 + size_t count, loff_t *ppos);
90881 +extern int gr_acl_is_enabled(void);
90882 +
90883 +static DECLARE_WAIT_QUEUE_HEAD(learn_wait);
90884 +static int gr_learn_attached;
90885 +
90886 +/* use a 512k buffer */
90887 +#define LEARN_BUFFER_SIZE (512 * 1024)
90888 +
90889 +static DEFINE_SPINLOCK(gr_learn_lock);
90890 +static DEFINE_MUTEX(gr_learn_user_mutex);
90891 +
90892 +/* we need to maintain two buffers, so that the kernel context of grlearn
90893 + uses a semaphore around the userspace copying, and the other kernel contexts
90894 + use a spinlock when copying into the buffer, since they cannot sleep
90895 +*/
90896 +static char *learn_buffer;
90897 +static char *learn_buffer_user;
90898 +static int learn_buffer_len;
90899 +static int learn_buffer_user_len;
90900 +
90901 +static ssize_t
90902 +read_learn(struct file *file, char __user * buf, size_t count, loff_t * ppos)
90903 +{
90904 + DECLARE_WAITQUEUE(wait, current);
90905 + ssize_t retval = 0;
90906 +
90907 + add_wait_queue(&learn_wait, &wait);
90908 + set_current_state(TASK_INTERRUPTIBLE);
90909 + do {
90910 + mutex_lock(&gr_learn_user_mutex);
90911 + spin_lock(&gr_learn_lock);
90912 + if (learn_buffer_len)
90913 + break;
90914 + spin_unlock(&gr_learn_lock);
90915 + mutex_unlock(&gr_learn_user_mutex);
90916 + if (file->f_flags & O_NONBLOCK) {
90917 + retval = -EAGAIN;
90918 + goto out;
90919 + }
90920 + if (signal_pending(current)) {
90921 + retval = -ERESTARTSYS;
90922 + goto out;
90923 + }
90924 +
90925 + schedule();
90926 + } while (1);
90927 +
90928 + memcpy(learn_buffer_user, learn_buffer, learn_buffer_len);
90929 + learn_buffer_user_len = learn_buffer_len;
90930 + retval = learn_buffer_len;
90931 + learn_buffer_len = 0;
90932 +
90933 + spin_unlock(&gr_learn_lock);
90934 +
90935 + if (copy_to_user(buf, learn_buffer_user, learn_buffer_user_len))
90936 + retval = -EFAULT;
90937 +
90938 + mutex_unlock(&gr_learn_user_mutex);
90939 +out:
90940 + set_current_state(TASK_RUNNING);
90941 + remove_wait_queue(&learn_wait, &wait);
90942 + return retval;
90943 +}
90944 +
90945 +static unsigned int
90946 +poll_learn(struct file * file, poll_table * wait)
90947 +{
90948 + poll_wait(file, &learn_wait, wait);
90949 +
90950 + if (learn_buffer_len)
90951 + return (POLLIN | POLLRDNORM);
90952 +
90953 + return 0;
90954 +}
90955 +
90956 +void
90957 +gr_clear_learn_entries(void)
90958 +{
90959 + char *tmp;
90960 +
90961 + mutex_lock(&gr_learn_user_mutex);
90962 + spin_lock(&gr_learn_lock);
90963 + tmp = learn_buffer;
90964 + learn_buffer = NULL;
90965 + spin_unlock(&gr_learn_lock);
90966 + if (tmp)
90967 + vfree(tmp);
90968 + if (learn_buffer_user != NULL) {
90969 + vfree(learn_buffer_user);
90970 + learn_buffer_user = NULL;
90971 + }
90972 + learn_buffer_len = 0;
90973 + mutex_unlock(&gr_learn_user_mutex);
90974 +
90975 + return;
90976 +}
90977 +
90978 +void
90979 +gr_add_learn_entry(const char *fmt, ...)
90980 +{
90981 + va_list args;
90982 + unsigned int len;
90983 +
90984 + if (!gr_learn_attached)
90985 + return;
90986 +
90987 + spin_lock(&gr_learn_lock);
90988 +
90989 + /* leave a gap at the end so we know when it's "full" but don't have to
90990 + compute the exact length of the string we're trying to append
90991 + */
90992 + if (learn_buffer_len > LEARN_BUFFER_SIZE - 16384) {
90993 + spin_unlock(&gr_learn_lock);
90994 + wake_up_interruptible(&learn_wait);
90995 + return;
90996 + }
90997 + if (learn_buffer == NULL) {
90998 + spin_unlock(&gr_learn_lock);
90999 + return;
91000 + }
91001 +
91002 + va_start(args, fmt);
91003 + len = vsnprintf(learn_buffer + learn_buffer_len, LEARN_BUFFER_SIZE - learn_buffer_len, fmt, args);
91004 + va_end(args);
91005 +
91006 + learn_buffer_len += len + 1;
91007 +
91008 + spin_unlock(&gr_learn_lock);
91009 + wake_up_interruptible(&learn_wait);
91010 +
91011 + return;
91012 +}
91013 +
91014 +static int
91015 +open_learn(struct inode *inode, struct file *file)
91016 +{
91017 + if (file->f_mode & FMODE_READ && gr_learn_attached)
91018 + return -EBUSY;
91019 + if (file->f_mode & FMODE_READ) {
91020 + int retval = 0;
91021 + mutex_lock(&gr_learn_user_mutex);
91022 + if (learn_buffer == NULL)
91023 + learn_buffer = vmalloc(LEARN_BUFFER_SIZE);
91024 + if (learn_buffer_user == NULL)
91025 + learn_buffer_user = vmalloc(LEARN_BUFFER_SIZE);
91026 + if (learn_buffer == NULL) {
91027 + retval = -ENOMEM;
91028 + goto out_error;
91029 + }
91030 + if (learn_buffer_user == NULL) {
91031 + retval = -ENOMEM;
91032 + goto out_error;
91033 + }
91034 + learn_buffer_len = 0;
91035 + learn_buffer_user_len = 0;
91036 + gr_learn_attached = 1;
91037 +out_error:
91038 + mutex_unlock(&gr_learn_user_mutex);
91039 + return retval;
91040 + }
91041 + return 0;
91042 +}
91043 +
91044 +static int
91045 +close_learn(struct inode *inode, struct file *file)
91046 +{
91047 + if (file->f_mode & FMODE_READ) {
91048 + char *tmp = NULL;
91049 + mutex_lock(&gr_learn_user_mutex);
91050 + spin_lock(&gr_learn_lock);
91051 + tmp = learn_buffer;
91052 + learn_buffer = NULL;
91053 + spin_unlock(&gr_learn_lock);
91054 + if (tmp)
91055 + vfree(tmp);
91056 + if (learn_buffer_user != NULL) {
91057 + vfree(learn_buffer_user);
91058 + learn_buffer_user = NULL;
91059 + }
91060 + learn_buffer_len = 0;
91061 + learn_buffer_user_len = 0;
91062 + gr_learn_attached = 0;
91063 + mutex_unlock(&gr_learn_user_mutex);
91064 + }
91065 +
91066 + return 0;
91067 +}
91068 +
91069 +const struct file_operations grsec_fops = {
91070 + .read = read_learn,
91071 + .write = write_grsec_handler,
91072 + .open = open_learn,
91073 + .release = close_learn,
91074 + .poll = poll_learn,
91075 +};
91076 diff --git a/grsecurity/gracl_policy.c b/grsecurity/gracl_policy.c
91077 new file mode 100644
91078 index 0000000..0773423
91079 --- /dev/null
91080 +++ b/grsecurity/gracl_policy.c
91081 @@ -0,0 +1,1786 @@
91082 +#include <linux/kernel.h>
91083 +#include <linux/module.h>
91084 +#include <linux/sched.h>
91085 +#include <linux/mm.h>
91086 +#include <linux/file.h>
91087 +#include <linux/fs.h>
91088 +#include <linux/namei.h>
91089 +#include <linux/mount.h>
91090 +#include <linux/tty.h>
91091 +#include <linux/proc_fs.h>
91092 +#include <linux/lglock.h>
91093 +#include <linux/slab.h>
91094 +#include <linux/vmalloc.h>
91095 +#include <linux/types.h>
91096 +#include <linux/sysctl.h>
91097 +#include <linux/netdevice.h>
91098 +#include <linux/ptrace.h>
91099 +#include <linux/gracl.h>
91100 +#include <linux/gralloc.h>
91101 +#include <linux/security.h>
91102 +#include <linux/grinternal.h>
91103 +#include <linux/pid_namespace.h>
91104 +#include <linux/stop_machine.h>
91105 +#include <linux/fdtable.h>
91106 +#include <linux/percpu.h>
91107 +#include <linux/lglock.h>
91108 +#include <linux/hugetlb.h>
91109 +#include <linux/posix-timers.h>
91110 +#include "../fs/mount.h"
91111 +
91112 +#include <asm/uaccess.h>
91113 +#include <asm/errno.h>
91114 +#include <asm/mman.h>
91115 +
91116 +extern struct gr_policy_state *polstate;
91117 +
91118 +#define FOR_EACH_ROLE_START(role) \
91119 + role = polstate->role_list; \
91120 + while (role) {
91121 +
91122 +#define FOR_EACH_ROLE_END(role) \
91123 + role = role->prev; \
91124 + }
91125 +
91126 +struct path gr_real_root;
91127 +
91128 +extern struct gr_alloc_state *current_alloc_state;
91129 +
91130 +u16 acl_sp_role_value;
91131 +
91132 +static DEFINE_MUTEX(gr_dev_mutex);
91133 +
91134 +extern int chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum);
91135 +extern void gr_clear_learn_entries(void);
91136 +
91137 +struct gr_arg *gr_usermode __read_only;
91138 +unsigned char *gr_system_salt __read_only;
91139 +unsigned char *gr_system_sum __read_only;
91140 +
91141 +static unsigned int gr_auth_attempts = 0;
91142 +static unsigned long gr_auth_expires = 0UL;
91143 +
91144 +struct acl_object_label *fakefs_obj_rw;
91145 +struct acl_object_label *fakefs_obj_rwx;
91146 +
91147 +extern int gr_init_uidset(void);
91148 +extern void gr_free_uidset(void);
91149 +extern void gr_remove_uid(uid_t uid);
91150 +extern int gr_find_uid(uid_t uid);
91151 +
91152 +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);
91153 +extern void __gr_apply_subject_to_task(struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj);
91154 +extern int gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb);
91155 +extern void __insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry);
91156 +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);
91157 +extern void insert_acl_obj_label(struct acl_object_label *obj, struct acl_subject_label *subj);
91158 +extern void insert_acl_subj_label(struct acl_subject_label *obj, struct acl_role_label *role);
91159 +extern struct name_entry * __lookup_name_entry(const struct gr_policy_state *state, const char *name);
91160 +extern char *gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt);
91161 +extern struct acl_subject_label *lookup_acl_subj_label(const u64 ino, const dev_t dev, const struct acl_role_label *role);
91162 +extern struct acl_subject_label *lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev, const struct acl_role_label *role);
91163 +extern void assign_special_role(const char *rolename);
91164 +extern struct acl_subject_label *chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt, const struct acl_role_label *role);
91165 +extern int gr_rbac_disable(void *unused);
91166 +extern void gr_enable_rbac_system(void);
91167 +
91168 +static int copy_acl_object_label_normal(struct acl_object_label *obj, const struct acl_object_label *userp)
91169 +{
91170 + if (copy_from_user(obj, userp, sizeof(struct acl_object_label)))
91171 + return -EFAULT;
91172 +
91173 + return 0;
91174 +}
91175 +
91176 +static int copy_acl_ip_label_normal(struct acl_ip_label *ip, const struct acl_ip_label *userp)
91177 +{
91178 + if (copy_from_user(ip, userp, sizeof(struct acl_ip_label)))
91179 + return -EFAULT;
91180 +
91181 + return 0;
91182 +}
91183 +
91184 +static int copy_acl_subject_label_normal(struct acl_subject_label *subj, const struct acl_subject_label *userp)
91185 +{
91186 + if (copy_from_user(subj, userp, sizeof(struct acl_subject_label)))
91187 + return -EFAULT;
91188 +
91189 + return 0;
91190 +}
91191 +
91192 +static int copy_acl_role_label_normal(struct acl_role_label *role, const struct acl_role_label *userp)
91193 +{
91194 + if (copy_from_user(role, userp, sizeof(struct acl_role_label)))
91195 + return -EFAULT;
91196 +
91197 + return 0;
91198 +}
91199 +
91200 +static int copy_role_allowed_ip_normal(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
91201 +{
91202 + if (copy_from_user(roleip, userp, sizeof(struct role_allowed_ip)))
91203 + return -EFAULT;
91204 +
91205 + return 0;
91206 +}
91207 +
91208 +static int copy_sprole_pw_normal(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
91209 +{
91210 + if (copy_from_user(pw, userp + idx, sizeof(struct sprole_pw)))
91211 + return -EFAULT;
91212 +
91213 + return 0;
91214 +}
91215 +
91216 +static int copy_gr_hash_struct_normal(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
91217 +{
91218 + if (copy_from_user(hash, userp, sizeof(struct gr_hash_struct)))
91219 + return -EFAULT;
91220 +
91221 + return 0;
91222 +}
91223 +
91224 +static int copy_role_transition_normal(struct role_transition *trans, const struct role_transition *userp)
91225 +{
91226 + if (copy_from_user(trans, userp, sizeof(struct role_transition)))
91227 + return -EFAULT;
91228 +
91229 + return 0;
91230 +}
91231 +
91232 +int copy_pointer_from_array_normal(void *ptr, unsigned long idx, const void *userp)
91233 +{
91234 + if (copy_from_user(ptr, userp + (idx * sizeof(void *)), sizeof(void *)))
91235 + return -EFAULT;
91236 +
91237 + return 0;
91238 +}
91239 +
91240 +static int copy_gr_arg_wrapper_normal(const char __user *buf, struct gr_arg_wrapper *uwrap)
91241 +{
91242 + if (copy_from_user(uwrap, buf, sizeof (struct gr_arg_wrapper)))
91243 + return -EFAULT;
91244 +
91245 + if ((uwrap->version != GRSECURITY_VERSION) ||
91246 + (uwrap->size != sizeof(struct gr_arg)))
91247 + return -EINVAL;
91248 +
91249 + return 0;
91250 +}
91251 +
91252 +static int copy_gr_arg_normal(const struct gr_arg __user *buf, struct gr_arg *arg)
91253 +{
91254 + if (copy_from_user(arg, buf, sizeof (struct gr_arg)))
91255 + return -EFAULT;
91256 +
91257 + return 0;
91258 +}
91259 +
91260 +static size_t get_gr_arg_wrapper_size_normal(void)
91261 +{
91262 + return sizeof(struct gr_arg_wrapper);
91263 +}
91264 +
91265 +#ifdef CONFIG_COMPAT
91266 +extern int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap);
91267 +extern int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg);
91268 +extern int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp);
91269 +extern int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp);
91270 +extern int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp);
91271 +extern int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp);
91272 +extern int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp);
91273 +extern int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp);
91274 +extern int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp);
91275 +extern int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp);
91276 +extern int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp);
91277 +extern size_t get_gr_arg_wrapper_size_compat(void);
91278 +
91279 +int (* copy_gr_arg_wrapper)(const char *buf, struct gr_arg_wrapper *uwrap) __read_only;
91280 +int (* copy_gr_arg)(const struct gr_arg *buf, struct gr_arg *arg) __read_only;
91281 +int (* copy_acl_object_label)(struct acl_object_label *obj, const struct acl_object_label *userp) __read_only;
91282 +int (* copy_acl_subject_label)(struct acl_subject_label *subj, const struct acl_subject_label *userp) __read_only;
91283 +int (* copy_acl_role_label)(struct acl_role_label *role, const struct acl_role_label *userp) __read_only;
91284 +int (* copy_acl_ip_label)(struct acl_ip_label *ip, const struct acl_ip_label *userp) __read_only;
91285 +int (* copy_pointer_from_array)(void *ptr, unsigned long idx, const void *userp) __read_only;
91286 +int (* copy_sprole_pw)(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp) __read_only;
91287 +int (* copy_gr_hash_struct)(struct gr_hash_struct *hash, const struct gr_hash_struct *userp) __read_only;
91288 +int (* copy_role_transition)(struct role_transition *trans, const struct role_transition *userp) __read_only;
91289 +int (* copy_role_allowed_ip)(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp) __read_only;
91290 +size_t (* get_gr_arg_wrapper_size)(void) __read_only;
91291 +
91292 +#else
91293 +#define copy_gr_arg_wrapper copy_gr_arg_wrapper_normal
91294 +#define copy_gr_arg copy_gr_arg_normal
91295 +#define copy_gr_hash_struct copy_gr_hash_struct_normal
91296 +#define copy_acl_object_label copy_acl_object_label_normal
91297 +#define copy_acl_subject_label copy_acl_subject_label_normal
91298 +#define copy_acl_role_label copy_acl_role_label_normal
91299 +#define copy_acl_ip_label copy_acl_ip_label_normal
91300 +#define copy_pointer_from_array copy_pointer_from_array_normal
91301 +#define copy_sprole_pw copy_sprole_pw_normal
91302 +#define copy_role_transition copy_role_transition_normal
91303 +#define copy_role_allowed_ip copy_role_allowed_ip_normal
91304 +#define get_gr_arg_wrapper_size get_gr_arg_wrapper_size_normal
91305 +#endif
91306 +
91307 +static struct acl_subject_label *
91308 +lookup_subject_map(const struct acl_subject_label *userp)
91309 +{
91310 + unsigned int index = gr_shash(userp, polstate->subj_map_set.s_size);
91311 + struct subject_map *match;
91312 +
91313 + match = polstate->subj_map_set.s_hash[index];
91314 +
91315 + while (match && match->user != userp)
91316 + match = match->next;
91317 +
91318 + if (match != NULL)
91319 + return match->kernel;
91320 + else
91321 + return NULL;
91322 +}
91323 +
91324 +static void
91325 +insert_subj_map_entry(struct subject_map *subjmap)
91326 +{
91327 + unsigned int index = gr_shash(subjmap->user, polstate->subj_map_set.s_size);
91328 + struct subject_map **curr;
91329 +
91330 + subjmap->prev = NULL;
91331 +
91332 + curr = &polstate->subj_map_set.s_hash[index];
91333 + if (*curr != NULL)
91334 + (*curr)->prev = subjmap;
91335 +
91336 + subjmap->next = *curr;
91337 + *curr = subjmap;
91338 +
91339 + return;
91340 +}
91341 +
91342 +static void
91343 +__insert_acl_role_label(struct acl_role_label *role, uid_t uidgid)
91344 +{
91345 + unsigned int index =
91346 + gr_rhash(uidgid, role->roletype & (GR_ROLE_USER | GR_ROLE_GROUP), polstate->acl_role_set.r_size);
91347 + struct acl_role_label **curr;
91348 + struct acl_role_label *tmp, *tmp2;
91349 +
91350 + curr = &polstate->acl_role_set.r_hash[index];
91351 +
91352 + /* simple case, slot is empty, just set it to our role */
91353 + if (*curr == NULL) {
91354 + *curr = role;
91355 + } else {
91356 + /* example:
91357 + 1 -> 2 -> 3 (adding 2 -> 3 to here)
91358 + 2 -> 3
91359 + */
91360 + /* first check to see if we can already be reached via this slot */
91361 + tmp = *curr;
91362 + while (tmp && tmp != role)
91363 + tmp = tmp->next;
91364 + if (tmp == role) {
91365 + /* we don't need to add ourselves to this slot's chain */
91366 + return;
91367 + }
91368 + /* we need to add ourselves to this chain, two cases */
91369 + if (role->next == NULL) {
91370 + /* simple case, append the current chain to our role */
91371 + role->next = *curr;
91372 + *curr = role;
91373 + } else {
91374 + /* 1 -> 2 -> 3 -> 4
91375 + 2 -> 3 -> 4
91376 + 3 -> 4 (adding 1 -> 2 -> 3 -> 4 to here)
91377 + */
91378 + /* trickier case: walk our role's chain until we find
91379 + the role for the start of the current slot's chain */
91380 + tmp = role;
91381 + tmp2 = *curr;
91382 + while (tmp->next && tmp->next != tmp2)
91383 + tmp = tmp->next;
91384 + if (tmp->next == tmp2) {
91385 + /* from example above, we found 3, so just
91386 + replace this slot's chain with ours */
91387 + *curr = role;
91388 + } else {
91389 + /* we didn't find a subset of our role's chain
91390 + in the current slot's chain, so append their
91391 + chain to ours, and set us as the first role in
91392 + the slot's chain
91393 +
91394 + we could fold this case with the case above,
91395 + but making it explicit for clarity
91396 + */
91397 + tmp->next = tmp2;
91398 + *curr = role;
91399 + }
91400 + }
91401 + }
91402 +
91403 + return;
91404 +}
91405 +
91406 +static void
91407 +insert_acl_role_label(struct acl_role_label *role)
91408 +{
91409 + int i;
91410 +
91411 + if (polstate->role_list == NULL) {
91412 + polstate->role_list = role;
91413 + role->prev = NULL;
91414 + } else {
91415 + role->prev = polstate->role_list;
91416 + polstate->role_list = role;
91417 + }
91418 +
91419 + /* used for hash chains */
91420 + role->next = NULL;
91421 +
91422 + if (role->roletype & GR_ROLE_DOMAIN) {
91423 + for (i = 0; i < role->domain_child_num; i++)
91424 + __insert_acl_role_label(role, role->domain_children[i]);
91425 + } else
91426 + __insert_acl_role_label(role, role->uidgid);
91427 +}
91428 +
91429 +static int
91430 +insert_name_entry(char *name, const u64 inode, const dev_t device, __u8 deleted)
91431 +{
91432 + struct name_entry **curr, *nentry;
91433 + struct inodev_entry *ientry;
91434 + unsigned int len = strlen(name);
91435 + unsigned int key = full_name_hash(name, len);
91436 + unsigned int index = key % polstate->name_set.n_size;
91437 +
91438 + curr = &polstate->name_set.n_hash[index];
91439 +
91440 + while (*curr && ((*curr)->key != key || !gr_streq((*curr)->name, name, (*curr)->len, len)))
91441 + curr = &((*curr)->next);
91442 +
91443 + if (*curr != NULL)
91444 + return 1;
91445 +
91446 + nentry = acl_alloc(sizeof (struct name_entry));
91447 + if (nentry == NULL)
91448 + return 0;
91449 + ientry = acl_alloc(sizeof (struct inodev_entry));
91450 + if (ientry == NULL)
91451 + return 0;
91452 + ientry->nentry = nentry;
91453 +
91454 + nentry->key = key;
91455 + nentry->name = name;
91456 + nentry->inode = inode;
91457 + nentry->device = device;
91458 + nentry->len = len;
91459 + nentry->deleted = deleted;
91460 +
91461 + nentry->prev = NULL;
91462 + curr = &polstate->name_set.n_hash[index];
91463 + if (*curr != NULL)
91464 + (*curr)->prev = nentry;
91465 + nentry->next = *curr;
91466 + *curr = nentry;
91467 +
91468 + /* insert us into the table searchable by inode/dev */
91469 + __insert_inodev_entry(polstate, ientry);
91470 +
91471 + return 1;
91472 +}
91473 +
91474 +/* allocating chained hash tables, so optimal size is where lambda ~ 1 */
91475 +
91476 +static void *
91477 +create_table(__u32 * len, int elementsize)
91478 +{
91479 + unsigned int table_sizes[] = {
91480 + 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381,
91481 + 32749, 65521, 131071, 262139, 524287, 1048573, 2097143,
91482 + 4194301, 8388593, 16777213, 33554393, 67108859
91483 + };
91484 + void *newtable = NULL;
91485 + unsigned int pwr = 0;
91486 +
91487 + while ((pwr < ((sizeof (table_sizes) / sizeof (table_sizes[0])) - 1)) &&
91488 + table_sizes[pwr] <= *len)
91489 + pwr++;
91490 +
91491 + if (table_sizes[pwr] <= *len || (table_sizes[pwr] > ULONG_MAX / elementsize))
91492 + return newtable;
91493 +
91494 + if ((table_sizes[pwr] * elementsize) <= PAGE_SIZE)
91495 + newtable =
91496 + kmalloc(table_sizes[pwr] * elementsize, GFP_KERNEL);
91497 + else
91498 + newtable = vmalloc(table_sizes[pwr] * elementsize);
91499 +
91500 + *len = table_sizes[pwr];
91501 +
91502 + return newtable;
91503 +}
91504 +
91505 +static int
91506 +init_variables(const struct gr_arg *arg, bool reload)
91507 +{
91508 + struct task_struct *reaper = init_pid_ns.child_reaper;
91509 + unsigned int stacksize;
91510 +
91511 + polstate->subj_map_set.s_size = arg->role_db.num_subjects;
91512 + polstate->acl_role_set.r_size = arg->role_db.num_roles + arg->role_db.num_domain_children;
91513 + polstate->name_set.n_size = arg->role_db.num_objects;
91514 + polstate->inodev_set.i_size = arg->role_db.num_objects;
91515 +
91516 + if (!polstate->subj_map_set.s_size || !polstate->acl_role_set.r_size ||
91517 + !polstate->name_set.n_size || !polstate->inodev_set.i_size)
91518 + return 1;
91519 +
91520 + if (!reload) {
91521 + if (!gr_init_uidset())
91522 + return 1;
91523 + }
91524 +
91525 + /* set up the stack that holds allocation info */
91526 +
91527 + stacksize = arg->role_db.num_pointers + 5;
91528 +
91529 + if (!acl_alloc_stack_init(stacksize))
91530 + return 1;
91531 +
91532 + if (!reload) {
91533 + /* grab reference for the real root dentry and vfsmount */
91534 + get_fs_root(reaper->fs, &gr_real_root);
91535 +
91536 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
91537 + 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));
91538 +#endif
91539 +
91540 + fakefs_obj_rw = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
91541 + if (fakefs_obj_rw == NULL)
91542 + return 1;
91543 + fakefs_obj_rw->mode = GR_FIND | GR_READ | GR_WRITE;
91544 +
91545 + fakefs_obj_rwx = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
91546 + if (fakefs_obj_rwx == NULL)
91547 + return 1;
91548 + fakefs_obj_rwx->mode = GR_FIND | GR_READ | GR_WRITE | GR_EXEC;
91549 + }
91550 +
91551 + polstate->subj_map_set.s_hash =
91552 + (struct subject_map **) create_table(&polstate->subj_map_set.s_size, sizeof(void *));
91553 + polstate->acl_role_set.r_hash =
91554 + (struct acl_role_label **) create_table(&polstate->acl_role_set.r_size, sizeof(void *));
91555 + polstate->name_set.n_hash = (struct name_entry **) create_table(&polstate->name_set.n_size, sizeof(void *));
91556 + polstate->inodev_set.i_hash =
91557 + (struct inodev_entry **) create_table(&polstate->inodev_set.i_size, sizeof(void *));
91558 +
91559 + if (!polstate->subj_map_set.s_hash || !polstate->acl_role_set.r_hash ||
91560 + !polstate->name_set.n_hash || !polstate->inodev_set.i_hash)
91561 + return 1;
91562 +
91563 + memset(polstate->subj_map_set.s_hash, 0,
91564 + sizeof(struct subject_map *) * polstate->subj_map_set.s_size);
91565 + memset(polstate->acl_role_set.r_hash, 0,
91566 + sizeof (struct acl_role_label *) * polstate->acl_role_set.r_size);
91567 + memset(polstate->name_set.n_hash, 0,
91568 + sizeof (struct name_entry *) * polstate->name_set.n_size);
91569 + memset(polstate->inodev_set.i_hash, 0,
91570 + sizeof (struct inodev_entry *) * polstate->inodev_set.i_size);
91571 +
91572 + return 0;
91573 +}
91574 +
91575 +/* free information not needed after startup
91576 + currently contains user->kernel pointer mappings for subjects
91577 +*/
91578 +
91579 +static void
91580 +free_init_variables(void)
91581 +{
91582 + __u32 i;
91583 +
91584 + if (polstate->subj_map_set.s_hash) {
91585 + for (i = 0; i < polstate->subj_map_set.s_size; i++) {
91586 + if (polstate->subj_map_set.s_hash[i]) {
91587 + kfree(polstate->subj_map_set.s_hash[i]);
91588 + polstate->subj_map_set.s_hash[i] = NULL;
91589 + }
91590 + }
91591 +
91592 + if ((polstate->subj_map_set.s_size * sizeof (struct subject_map *)) <=
91593 + PAGE_SIZE)
91594 + kfree(polstate->subj_map_set.s_hash);
91595 + else
91596 + vfree(polstate->subj_map_set.s_hash);
91597 + }
91598 +
91599 + return;
91600 +}
91601 +
91602 +static void
91603 +free_variables(bool reload)
91604 +{
91605 + struct acl_subject_label *s;
91606 + struct acl_role_label *r;
91607 + struct task_struct *task, *task2;
91608 + unsigned int x;
91609 +
91610 + if (!reload) {
91611 + gr_clear_learn_entries();
91612 +
91613 + read_lock(&tasklist_lock);
91614 + do_each_thread(task2, task) {
91615 + task->acl_sp_role = 0;
91616 + task->acl_role_id = 0;
91617 + task->inherited = 0;
91618 + task->acl = NULL;
91619 + task->role = NULL;
91620 + } while_each_thread(task2, task);
91621 + read_unlock(&tasklist_lock);
91622 +
91623 + kfree(fakefs_obj_rw);
91624 + fakefs_obj_rw = NULL;
91625 + kfree(fakefs_obj_rwx);
91626 + fakefs_obj_rwx = NULL;
91627 +
91628 + /* release the reference to the real root dentry and vfsmount */
91629 + path_put(&gr_real_root);
91630 + memset(&gr_real_root, 0, sizeof(gr_real_root));
91631 + }
91632 +
91633 + /* free all object hash tables */
91634 +
91635 + FOR_EACH_ROLE_START(r)
91636 + if (r->subj_hash == NULL)
91637 + goto next_role;
91638 + FOR_EACH_SUBJECT_START(r, s, x)
91639 + if (s->obj_hash == NULL)
91640 + break;
91641 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
91642 + kfree(s->obj_hash);
91643 + else
91644 + vfree(s->obj_hash);
91645 + FOR_EACH_SUBJECT_END(s, x)
91646 + FOR_EACH_NESTED_SUBJECT_START(r, s)
91647 + if (s->obj_hash == NULL)
91648 + break;
91649 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
91650 + kfree(s->obj_hash);
91651 + else
91652 + vfree(s->obj_hash);
91653 + FOR_EACH_NESTED_SUBJECT_END(s)
91654 + if ((r->subj_hash_size * sizeof (struct acl_subject_label *)) <= PAGE_SIZE)
91655 + kfree(r->subj_hash);
91656 + else
91657 + vfree(r->subj_hash);
91658 + r->subj_hash = NULL;
91659 +next_role:
91660 + FOR_EACH_ROLE_END(r)
91661 +
91662 + acl_free_all();
91663 +
91664 + if (polstate->acl_role_set.r_hash) {
91665 + if ((polstate->acl_role_set.r_size * sizeof (struct acl_role_label *)) <=
91666 + PAGE_SIZE)
91667 + kfree(polstate->acl_role_set.r_hash);
91668 + else
91669 + vfree(polstate->acl_role_set.r_hash);
91670 + }
91671 + if (polstate->name_set.n_hash) {
91672 + if ((polstate->name_set.n_size * sizeof (struct name_entry *)) <=
91673 + PAGE_SIZE)
91674 + kfree(polstate->name_set.n_hash);
91675 + else
91676 + vfree(polstate->name_set.n_hash);
91677 + }
91678 +
91679 + if (polstate->inodev_set.i_hash) {
91680 + if ((polstate->inodev_set.i_size * sizeof (struct inodev_entry *)) <=
91681 + PAGE_SIZE)
91682 + kfree(polstate->inodev_set.i_hash);
91683 + else
91684 + vfree(polstate->inodev_set.i_hash);
91685 + }
91686 +
91687 + if (!reload)
91688 + gr_free_uidset();
91689 +
91690 + memset(&polstate->name_set, 0, sizeof (struct name_db));
91691 + memset(&polstate->inodev_set, 0, sizeof (struct inodev_db));
91692 + memset(&polstate->acl_role_set, 0, sizeof (struct acl_role_db));
91693 + memset(&polstate->subj_map_set, 0, sizeof (struct acl_subj_map_db));
91694 +
91695 + polstate->default_role = NULL;
91696 + polstate->kernel_role = NULL;
91697 + polstate->role_list = NULL;
91698 +
91699 + return;
91700 +}
91701 +
91702 +static struct acl_subject_label *
91703 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied);
91704 +
91705 +static int alloc_and_copy_string(char **name, unsigned int maxlen)
91706 +{
91707 + unsigned int len = strnlen_user(*name, maxlen);
91708 + char *tmp;
91709 +
91710 + if (!len || len >= maxlen)
91711 + return -EINVAL;
91712 +
91713 + if ((tmp = (char *) acl_alloc(len)) == NULL)
91714 + return -ENOMEM;
91715 +
91716 + if (copy_from_user(tmp, *name, len))
91717 + return -EFAULT;
91718 +
91719 + tmp[len-1] = '\0';
91720 + *name = tmp;
91721 +
91722 + return 0;
91723 +}
91724 +
91725 +static int
91726 +copy_user_glob(struct acl_object_label *obj)
91727 +{
91728 + struct acl_object_label *g_tmp, **guser;
91729 + int error;
91730 +
91731 + if (obj->globbed == NULL)
91732 + return 0;
91733 +
91734 + guser = &obj->globbed;
91735 + while (*guser) {
91736 + g_tmp = (struct acl_object_label *)
91737 + acl_alloc(sizeof (struct acl_object_label));
91738 + if (g_tmp == NULL)
91739 + return -ENOMEM;
91740 +
91741 + if (copy_acl_object_label(g_tmp, *guser))
91742 + return -EFAULT;
91743 +
91744 + error = alloc_and_copy_string(&g_tmp->filename, PATH_MAX);
91745 + if (error)
91746 + return error;
91747 +
91748 + *guser = g_tmp;
91749 + guser = &(g_tmp->next);
91750 + }
91751 +
91752 + return 0;
91753 +}
91754 +
91755 +static int
91756 +copy_user_objs(struct acl_object_label *userp, struct acl_subject_label *subj,
91757 + struct acl_role_label *role)
91758 +{
91759 + struct acl_object_label *o_tmp;
91760 + int ret;
91761 +
91762 + while (userp) {
91763 + if ((o_tmp = (struct acl_object_label *)
91764 + acl_alloc(sizeof (struct acl_object_label))) == NULL)
91765 + return -ENOMEM;
91766 +
91767 + if (copy_acl_object_label(o_tmp, userp))
91768 + return -EFAULT;
91769 +
91770 + userp = o_tmp->prev;
91771 +
91772 + ret = alloc_and_copy_string(&o_tmp->filename, PATH_MAX);
91773 + if (ret)
91774 + return ret;
91775 +
91776 + insert_acl_obj_label(o_tmp, subj);
91777 + if (!insert_name_entry(o_tmp->filename, o_tmp->inode,
91778 + o_tmp->device, (o_tmp->mode & GR_DELETED) ? 1 : 0))
91779 + return -ENOMEM;
91780 +
91781 + ret = copy_user_glob(o_tmp);
91782 + if (ret)
91783 + return ret;
91784 +
91785 + if (o_tmp->nested) {
91786 + int already_copied;
91787 +
91788 + o_tmp->nested = do_copy_user_subj(o_tmp->nested, role, &already_copied);
91789 + if (IS_ERR(o_tmp->nested))
91790 + return PTR_ERR(o_tmp->nested);
91791 +
91792 + /* insert into nested subject list if we haven't copied this one yet
91793 + to prevent duplicate entries */
91794 + if (!already_copied) {
91795 + o_tmp->nested->next = role->hash->first;
91796 + role->hash->first = o_tmp->nested;
91797 + }
91798 + }
91799 + }
91800 +
91801 + return 0;
91802 +}
91803 +
91804 +static __u32
91805 +count_user_subjs(struct acl_subject_label *userp)
91806 +{
91807 + struct acl_subject_label s_tmp;
91808 + __u32 num = 0;
91809 +
91810 + while (userp) {
91811 + if (copy_acl_subject_label(&s_tmp, userp))
91812 + break;
91813 +
91814 + userp = s_tmp.prev;
91815 + }
91816 +
91817 + return num;
91818 +}
91819 +
91820 +static int
91821 +copy_user_allowedips(struct acl_role_label *rolep)
91822 +{
91823 + struct role_allowed_ip *ruserip, *rtmp = NULL, *rlast;
91824 +
91825 + ruserip = rolep->allowed_ips;
91826 +
91827 + while (ruserip) {
91828 + rlast = rtmp;
91829 +
91830 + if ((rtmp = (struct role_allowed_ip *)
91831 + acl_alloc(sizeof (struct role_allowed_ip))) == NULL)
91832 + return -ENOMEM;
91833 +
91834 + if (copy_role_allowed_ip(rtmp, ruserip))
91835 + return -EFAULT;
91836 +
91837 + ruserip = rtmp->prev;
91838 +
91839 + if (!rlast) {
91840 + rtmp->prev = NULL;
91841 + rolep->allowed_ips = rtmp;
91842 + } else {
91843 + rlast->next = rtmp;
91844 + rtmp->prev = rlast;
91845 + }
91846 +
91847 + if (!ruserip)
91848 + rtmp->next = NULL;
91849 + }
91850 +
91851 + return 0;
91852 +}
91853 +
91854 +static int
91855 +copy_user_transitions(struct acl_role_label *rolep)
91856 +{
91857 + struct role_transition *rusertp, *rtmp = NULL, *rlast;
91858 + int error;
91859 +
91860 + rusertp = rolep->transitions;
91861 +
91862 + while (rusertp) {
91863 + rlast = rtmp;
91864 +
91865 + if ((rtmp = (struct role_transition *)
91866 + acl_alloc(sizeof (struct role_transition))) == NULL)
91867 + return -ENOMEM;
91868 +
91869 + if (copy_role_transition(rtmp, rusertp))
91870 + return -EFAULT;
91871 +
91872 + rusertp = rtmp->prev;
91873 +
91874 + error = alloc_and_copy_string(&rtmp->rolename, GR_SPROLE_LEN);
91875 + if (error)
91876 + return error;
91877 +
91878 + if (!rlast) {
91879 + rtmp->prev = NULL;
91880 + rolep->transitions = rtmp;
91881 + } else {
91882 + rlast->next = rtmp;
91883 + rtmp->prev = rlast;
91884 + }
91885 +
91886 + if (!rusertp)
91887 + rtmp->next = NULL;
91888 + }
91889 +
91890 + return 0;
91891 +}
91892 +
91893 +static __u32 count_user_objs(const struct acl_object_label __user *userp)
91894 +{
91895 + struct acl_object_label o_tmp;
91896 + __u32 num = 0;
91897 +
91898 + while (userp) {
91899 + if (copy_acl_object_label(&o_tmp, userp))
91900 + break;
91901 +
91902 + userp = o_tmp.prev;
91903 + num++;
91904 + }
91905 +
91906 + return num;
91907 +}
91908 +
91909 +static struct acl_subject_label *
91910 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied)
91911 +{
91912 + struct acl_subject_label *s_tmp = NULL, *s_tmp2;
91913 + __u32 num_objs;
91914 + struct acl_ip_label **i_tmp, *i_utmp2;
91915 + struct gr_hash_struct ghash;
91916 + struct subject_map *subjmap;
91917 + unsigned int i_num;
91918 + int err;
91919 +
91920 + if (already_copied != NULL)
91921 + *already_copied = 0;
91922 +
91923 + s_tmp = lookup_subject_map(userp);
91924 +
91925 + /* we've already copied this subject into the kernel, just return
91926 + the reference to it, and don't copy it over again
91927 + */
91928 + if (s_tmp) {
91929 + if (already_copied != NULL)
91930 + *already_copied = 1;
91931 + return(s_tmp);
91932 + }
91933 +
91934 + if ((s_tmp = (struct acl_subject_label *)
91935 + acl_alloc(sizeof (struct acl_subject_label))) == NULL)
91936 + return ERR_PTR(-ENOMEM);
91937 +
91938 + subjmap = (struct subject_map *)kmalloc(sizeof (struct subject_map), GFP_KERNEL);
91939 + if (subjmap == NULL)
91940 + return ERR_PTR(-ENOMEM);
91941 +
91942 + subjmap->user = userp;
91943 + subjmap->kernel = s_tmp;
91944 + insert_subj_map_entry(subjmap);
91945 +
91946 + if (copy_acl_subject_label(s_tmp, userp))
91947 + return ERR_PTR(-EFAULT);
91948 +
91949 + err = alloc_and_copy_string(&s_tmp->filename, PATH_MAX);
91950 + if (err)
91951 + return ERR_PTR(err);
91952 +
91953 + if (!strcmp(s_tmp->filename, "/"))
91954 + role->root_label = s_tmp;
91955 +
91956 + if (copy_gr_hash_struct(&ghash, s_tmp->hash))
91957 + return ERR_PTR(-EFAULT);
91958 +
91959 + /* copy user and group transition tables */
91960 +
91961 + if (s_tmp->user_trans_num) {
91962 + uid_t *uidlist;
91963 +
91964 + uidlist = (uid_t *)acl_alloc_num(s_tmp->user_trans_num, sizeof(uid_t));
91965 + if (uidlist == NULL)
91966 + return ERR_PTR(-ENOMEM);
91967 + if (copy_from_user(uidlist, s_tmp->user_transitions, s_tmp->user_trans_num * sizeof(uid_t)))
91968 + return ERR_PTR(-EFAULT);
91969 +
91970 + s_tmp->user_transitions = uidlist;
91971 + }
91972 +
91973 + if (s_tmp->group_trans_num) {
91974 + gid_t *gidlist;
91975 +
91976 + gidlist = (gid_t *)acl_alloc_num(s_tmp->group_trans_num, sizeof(gid_t));
91977 + if (gidlist == NULL)
91978 + return ERR_PTR(-ENOMEM);
91979 + if (copy_from_user(gidlist, s_tmp->group_transitions, s_tmp->group_trans_num * sizeof(gid_t)))
91980 + return ERR_PTR(-EFAULT);
91981 +
91982 + s_tmp->group_transitions = gidlist;
91983 + }
91984 +
91985 + /* set up object hash table */
91986 + num_objs = count_user_objs(ghash.first);
91987 +
91988 + s_tmp->obj_hash_size = num_objs;
91989 + s_tmp->obj_hash =
91990 + (struct acl_object_label **)
91991 + create_table(&(s_tmp->obj_hash_size), sizeof(void *));
91992 +
91993 + if (!s_tmp->obj_hash)
91994 + return ERR_PTR(-ENOMEM);
91995 +
91996 + memset(s_tmp->obj_hash, 0,
91997 + s_tmp->obj_hash_size *
91998 + sizeof (struct acl_object_label *));
91999 +
92000 + /* add in objects */
92001 + err = copy_user_objs(ghash.first, s_tmp, role);
92002 +
92003 + if (err)
92004 + return ERR_PTR(err);
92005 +
92006 + /* set pointer for parent subject */
92007 + if (s_tmp->parent_subject) {
92008 + s_tmp2 = do_copy_user_subj(s_tmp->parent_subject, role, NULL);
92009 +
92010 + if (IS_ERR(s_tmp2))
92011 + return s_tmp2;
92012 +
92013 + s_tmp->parent_subject = s_tmp2;
92014 + }
92015 +
92016 + /* add in ip acls */
92017 +
92018 + if (!s_tmp->ip_num) {
92019 + s_tmp->ips = NULL;
92020 + goto insert;
92021 + }
92022 +
92023 + i_tmp =
92024 + (struct acl_ip_label **) acl_alloc_num(s_tmp->ip_num,
92025 + sizeof (struct acl_ip_label *));
92026 +
92027 + if (!i_tmp)
92028 + return ERR_PTR(-ENOMEM);
92029 +
92030 + for (i_num = 0; i_num < s_tmp->ip_num; i_num++) {
92031 + *(i_tmp + i_num) =
92032 + (struct acl_ip_label *)
92033 + acl_alloc(sizeof (struct acl_ip_label));
92034 + if (!*(i_tmp + i_num))
92035 + return ERR_PTR(-ENOMEM);
92036 +
92037 + if (copy_pointer_from_array(&i_utmp2, i_num, s_tmp->ips))
92038 + return ERR_PTR(-EFAULT);
92039 +
92040 + if (copy_acl_ip_label(*(i_tmp + i_num), i_utmp2))
92041 + return ERR_PTR(-EFAULT);
92042 +
92043 + if ((*(i_tmp + i_num))->iface == NULL)
92044 + continue;
92045 +
92046 + err = alloc_and_copy_string(&(*(i_tmp + i_num))->iface, IFNAMSIZ);
92047 + if (err)
92048 + return ERR_PTR(err);
92049 + }
92050 +
92051 + s_tmp->ips = i_tmp;
92052 +
92053 +insert:
92054 + if (!insert_name_entry(s_tmp->filename, s_tmp->inode,
92055 + s_tmp->device, (s_tmp->mode & GR_DELETED) ? 1 : 0))
92056 + return ERR_PTR(-ENOMEM);
92057 +
92058 + return s_tmp;
92059 +}
92060 +
92061 +static int
92062 +copy_user_subjs(struct acl_subject_label *userp, struct acl_role_label *role)
92063 +{
92064 + struct acl_subject_label s_pre;
92065 + struct acl_subject_label * ret;
92066 + int err;
92067 +
92068 + while (userp) {
92069 + if (copy_acl_subject_label(&s_pre, userp))
92070 + return -EFAULT;
92071 +
92072 + ret = do_copy_user_subj(userp, role, NULL);
92073 +
92074 + err = PTR_ERR(ret);
92075 + if (IS_ERR(ret))
92076 + return err;
92077 +
92078 + insert_acl_subj_label(ret, role);
92079 +
92080 + userp = s_pre.prev;
92081 + }
92082 +
92083 + return 0;
92084 +}
92085 +
92086 +static int
92087 +copy_user_acl(struct gr_arg *arg)
92088 +{
92089 + struct acl_role_label *r_tmp = NULL, **r_utmp, *r_utmp2;
92090 + struct acl_subject_label *subj_list;
92091 + struct sprole_pw *sptmp;
92092 + struct gr_hash_struct *ghash;
92093 + uid_t *domainlist;
92094 + unsigned int r_num;
92095 + int err = 0;
92096 + __u16 i;
92097 + __u32 num_subjs;
92098 +
92099 + /* we need a default and kernel role */
92100 + if (arg->role_db.num_roles < 2)
92101 + return -EINVAL;
92102 +
92103 + /* copy special role authentication info from userspace */
92104 +
92105 + polstate->num_sprole_pws = arg->num_sprole_pws;
92106 + polstate->acl_special_roles = (struct sprole_pw **) acl_alloc_num(polstate->num_sprole_pws, sizeof(struct sprole_pw *));
92107 +
92108 + if (!polstate->acl_special_roles && polstate->num_sprole_pws)
92109 + return -ENOMEM;
92110 +
92111 + for (i = 0; i < polstate->num_sprole_pws; i++) {
92112 + sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw));
92113 + if (!sptmp)
92114 + return -ENOMEM;
92115 + if (copy_sprole_pw(sptmp, i, arg->sprole_pws))
92116 + return -EFAULT;
92117 +
92118 + err = alloc_and_copy_string((char **)&sptmp->rolename, GR_SPROLE_LEN);
92119 + if (err)
92120 + return err;
92121 +
92122 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
92123 + printk(KERN_ALERT "Copying special role %s\n", sptmp->rolename);
92124 +#endif
92125 +
92126 + polstate->acl_special_roles[i] = sptmp;
92127 + }
92128 +
92129 + r_utmp = (struct acl_role_label **) arg->role_db.r_table;
92130 +
92131 + for (r_num = 0; r_num < arg->role_db.num_roles; r_num++) {
92132 + r_tmp = acl_alloc(sizeof (struct acl_role_label));
92133 +
92134 + if (!r_tmp)
92135 + return -ENOMEM;
92136 +
92137 + if (copy_pointer_from_array(&r_utmp2, r_num, r_utmp))
92138 + return -EFAULT;
92139 +
92140 + if (copy_acl_role_label(r_tmp, r_utmp2))
92141 + return -EFAULT;
92142 +
92143 + err = alloc_and_copy_string(&r_tmp->rolename, GR_SPROLE_LEN);
92144 + if (err)
92145 + return err;
92146 +
92147 + if (!strcmp(r_tmp->rolename, "default")
92148 + && (r_tmp->roletype & GR_ROLE_DEFAULT)) {
92149 + polstate->default_role = r_tmp;
92150 + } else if (!strcmp(r_tmp->rolename, ":::kernel:::")) {
92151 + polstate->kernel_role = r_tmp;
92152 + }
92153 +
92154 + if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL)
92155 + return -ENOMEM;
92156 +
92157 + if (copy_gr_hash_struct(ghash, r_tmp->hash))
92158 + return -EFAULT;
92159 +
92160 + r_tmp->hash = ghash;
92161 +
92162 + num_subjs = count_user_subjs(r_tmp->hash->first);
92163 +
92164 + r_tmp->subj_hash_size = num_subjs;
92165 + r_tmp->subj_hash =
92166 + (struct acl_subject_label **)
92167 + create_table(&(r_tmp->subj_hash_size), sizeof(void *));
92168 +
92169 + if (!r_tmp->subj_hash)
92170 + return -ENOMEM;
92171 +
92172 + err = copy_user_allowedips(r_tmp);
92173 + if (err)
92174 + return err;
92175 +
92176 + /* copy domain info */
92177 + if (r_tmp->domain_children != NULL) {
92178 + domainlist = acl_alloc_num(r_tmp->domain_child_num, sizeof(uid_t));
92179 + if (domainlist == NULL)
92180 + return -ENOMEM;
92181 +
92182 + if (copy_from_user(domainlist, r_tmp->domain_children, r_tmp->domain_child_num * sizeof(uid_t)))
92183 + return -EFAULT;
92184 +
92185 + r_tmp->domain_children = domainlist;
92186 + }
92187 +
92188 + err = copy_user_transitions(r_tmp);
92189 + if (err)
92190 + return err;
92191 +
92192 + memset(r_tmp->subj_hash, 0,
92193 + r_tmp->subj_hash_size *
92194 + sizeof (struct acl_subject_label *));
92195 +
92196 + /* acquire the list of subjects, then NULL out
92197 + the list prior to parsing the subjects for this role,
92198 + as during this parsing the list is replaced with a list
92199 + of *nested* subjects for the role
92200 + */
92201 + subj_list = r_tmp->hash->first;
92202 +
92203 + /* set nested subject list to null */
92204 + r_tmp->hash->first = NULL;
92205 +
92206 + err = copy_user_subjs(subj_list, r_tmp);
92207 +
92208 + if (err)
92209 + return err;
92210 +
92211 + insert_acl_role_label(r_tmp);
92212 + }
92213 +
92214 + if (polstate->default_role == NULL || polstate->kernel_role == NULL)
92215 + return -EINVAL;
92216 +
92217 + return err;
92218 +}
92219 +
92220 +static int gracl_reload_apply_policies(void *reload)
92221 +{
92222 + struct gr_reload_state *reload_state = (struct gr_reload_state *)reload;
92223 + struct task_struct *task, *task2;
92224 + struct acl_role_label *role, *rtmp;
92225 + struct acl_subject_label *subj;
92226 + const struct cred *cred;
92227 + int role_applied;
92228 + int ret = 0;
92229 +
92230 + memcpy(&reload_state->oldpolicy, reload_state->oldpolicy_ptr, sizeof(struct gr_policy_state));
92231 + memcpy(&reload_state->oldalloc, reload_state->oldalloc_ptr, sizeof(struct gr_alloc_state));
92232 +
92233 + /* first make sure we'll be able to apply the new policy cleanly */
92234 + do_each_thread(task2, task) {
92235 + if (task->exec_file == NULL)
92236 + continue;
92237 + role_applied = 0;
92238 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
92239 + /* preserve special roles */
92240 + FOR_EACH_ROLE_START(role)
92241 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
92242 + rtmp = task->role;
92243 + task->role = role;
92244 + role_applied = 1;
92245 + break;
92246 + }
92247 + FOR_EACH_ROLE_END(role)
92248 + }
92249 + if (!role_applied) {
92250 + cred = __task_cred(task);
92251 + rtmp = task->role;
92252 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92253 + }
92254 + /* this handles non-nested inherited subjects, nested subjects will still
92255 + be dropped currently */
92256 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
92257 + task->tmpacl = __gr_get_subject_for_task(polstate, task, NULL, 1);
92258 + /* change the role back so that we've made no modifications to the policy */
92259 + task->role = rtmp;
92260 +
92261 + if (subj == NULL || task->tmpacl == NULL) {
92262 + ret = -EINVAL;
92263 + goto out;
92264 + }
92265 + } while_each_thread(task2, task);
92266 +
92267 + /* now actually apply the policy */
92268 +
92269 + do_each_thread(task2, task) {
92270 + if (task->exec_file) {
92271 + role_applied = 0;
92272 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
92273 + /* preserve special roles */
92274 + FOR_EACH_ROLE_START(role)
92275 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
92276 + task->role = role;
92277 + role_applied = 1;
92278 + break;
92279 + }
92280 + FOR_EACH_ROLE_END(role)
92281 + }
92282 + if (!role_applied) {
92283 + cred = __task_cred(task);
92284 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92285 + }
92286 + /* this handles non-nested inherited subjects, nested subjects will still
92287 + be dropped currently */
92288 + if (!reload_state->oldmode && task->inherited)
92289 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
92290 + else {
92291 + /* looked up and tagged to the task previously */
92292 + subj = task->tmpacl;
92293 + }
92294 + /* subj will be non-null */
92295 + __gr_apply_subject_to_task(polstate, task, subj);
92296 + if (reload_state->oldmode) {
92297 + task->acl_role_id = 0;
92298 + task->acl_sp_role = 0;
92299 + task->inherited = 0;
92300 + }
92301 + } else {
92302 + // it's a kernel process
92303 + task->role = polstate->kernel_role;
92304 + task->acl = polstate->kernel_role->root_label;
92305 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
92306 + task->acl->mode &= ~GR_PROCFIND;
92307 +#endif
92308 + }
92309 + } while_each_thread(task2, task);
92310 +
92311 + memcpy(reload_state->oldpolicy_ptr, &reload_state->newpolicy, sizeof(struct gr_policy_state));
92312 + memcpy(reload_state->oldalloc_ptr, &reload_state->newalloc, sizeof(struct gr_alloc_state));
92313 +
92314 +out:
92315 +
92316 + return ret;
92317 +}
92318 +
92319 +static int gracl_reload(struct gr_arg *args, unsigned char oldmode)
92320 +{
92321 + struct gr_reload_state new_reload_state = { };
92322 + int err;
92323 +
92324 + new_reload_state.oldpolicy_ptr = polstate;
92325 + new_reload_state.oldalloc_ptr = current_alloc_state;
92326 + new_reload_state.oldmode = oldmode;
92327 +
92328 + current_alloc_state = &new_reload_state.newalloc;
92329 + polstate = &new_reload_state.newpolicy;
92330 +
92331 + /* everything relevant is now saved off, copy in the new policy */
92332 + if (init_variables(args, true)) {
92333 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
92334 + err = -ENOMEM;
92335 + goto error;
92336 + }
92337 +
92338 + err = copy_user_acl(args);
92339 + free_init_variables();
92340 + if (err)
92341 + goto error;
92342 + /* the new policy is copied in, with the old policy available via saved_state
92343 + first go through applying roles, making sure to preserve special roles
92344 + then apply new subjects, making sure to preserve inherited and nested subjects,
92345 + though currently only inherited subjects will be preserved
92346 + */
92347 + err = stop_machine(gracl_reload_apply_policies, &new_reload_state, NULL);
92348 + if (err)
92349 + goto error;
92350 +
92351 + /* we've now applied the new policy, so restore the old policy state to free it */
92352 + polstate = &new_reload_state.oldpolicy;
92353 + current_alloc_state = &new_reload_state.oldalloc;
92354 + free_variables(true);
92355 +
92356 + /* oldpolicy/oldalloc_ptr point to the new policy/alloc states as they were copied
92357 + to running_polstate/current_alloc_state inside stop_machine
92358 + */
92359 + err = 0;
92360 + goto out;
92361 +error:
92362 + /* on error of loading the new policy, we'll just keep the previous
92363 + policy set around
92364 + */
92365 + free_variables(true);
92366 +
92367 + /* doesn't affect runtime, but maintains consistent state */
92368 +out:
92369 + polstate = new_reload_state.oldpolicy_ptr;
92370 + current_alloc_state = new_reload_state.oldalloc_ptr;
92371 +
92372 + return err;
92373 +}
92374 +
92375 +static int
92376 +gracl_init(struct gr_arg *args)
92377 +{
92378 + int error = 0;
92379 +
92380 + memcpy(gr_system_salt, args->salt, GR_SALT_LEN);
92381 + memcpy(gr_system_sum, args->sum, GR_SHA_LEN);
92382 +
92383 + if (init_variables(args, false)) {
92384 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
92385 + error = -ENOMEM;
92386 + goto out;
92387 + }
92388 +
92389 + error = copy_user_acl(args);
92390 + free_init_variables();
92391 + if (error)
92392 + goto out;
92393 +
92394 + error = gr_set_acls(0);
92395 + if (error)
92396 + goto out;
92397 +
92398 + gr_enable_rbac_system();
92399 +
92400 + return 0;
92401 +
92402 +out:
92403 + free_variables(false);
92404 + return error;
92405 +}
92406 +
92407 +static int
92408 +lookup_special_role_auth(__u16 mode, const char *rolename, unsigned char **salt,
92409 + unsigned char **sum)
92410 +{
92411 + struct acl_role_label *r;
92412 + struct role_allowed_ip *ipp;
92413 + struct role_transition *trans;
92414 + unsigned int i;
92415 + int found = 0;
92416 + u32 curr_ip = current->signal->curr_ip;
92417 +
92418 + current->signal->saved_ip = curr_ip;
92419 +
92420 + /* check transition table */
92421 +
92422 + for (trans = current->role->transitions; trans; trans = trans->next) {
92423 + if (!strcmp(rolename, trans->rolename)) {
92424 + found = 1;
92425 + break;
92426 + }
92427 + }
92428 +
92429 + if (!found)
92430 + return 0;
92431 +
92432 + /* handle special roles that do not require authentication
92433 + and check ip */
92434 +
92435 + FOR_EACH_ROLE_START(r)
92436 + if (!strcmp(rolename, r->rolename) &&
92437 + (r->roletype & GR_ROLE_SPECIAL)) {
92438 + found = 0;
92439 + if (r->allowed_ips != NULL) {
92440 + for (ipp = r->allowed_ips; ipp; ipp = ipp->next) {
92441 + if ((ntohl(curr_ip) & ipp->netmask) ==
92442 + (ntohl(ipp->addr) & ipp->netmask))
92443 + found = 1;
92444 + }
92445 + } else
92446 + found = 2;
92447 + if (!found)
92448 + return 0;
92449 +
92450 + if (((mode == GR_SPROLE) && (r->roletype & GR_ROLE_NOPW)) ||
92451 + ((mode == GR_SPROLEPAM) && (r->roletype & GR_ROLE_PAM))) {
92452 + *salt = NULL;
92453 + *sum = NULL;
92454 + return 1;
92455 + }
92456 + }
92457 + FOR_EACH_ROLE_END(r)
92458 +
92459 + for (i = 0; i < polstate->num_sprole_pws; i++) {
92460 + if (!strcmp(rolename, polstate->acl_special_roles[i]->rolename)) {
92461 + *salt = polstate->acl_special_roles[i]->salt;
92462 + *sum = polstate->acl_special_roles[i]->sum;
92463 + return 1;
92464 + }
92465 + }
92466 +
92467 + return 0;
92468 +}
92469 +
92470 +int gr_check_secure_terminal(struct task_struct *task)
92471 +{
92472 + struct task_struct *p, *p2, *p3;
92473 + struct files_struct *files;
92474 + struct fdtable *fdt;
92475 + struct file *our_file = NULL, *file;
92476 + struct inode *our_inode = NULL;
92477 + int i;
92478 +
92479 + if (task->signal->tty == NULL)
92480 + return 1;
92481 +
92482 + files = get_files_struct(task);
92483 + if (files != NULL) {
92484 + rcu_read_lock();
92485 + fdt = files_fdtable(files);
92486 + for (i=0; i < fdt->max_fds; i++) {
92487 + file = fcheck_files(files, i);
92488 + if (file && (our_file == NULL) && (file->private_data == task->signal->tty)) {
92489 + get_file(file);
92490 + our_file = file;
92491 + }
92492 + }
92493 + rcu_read_unlock();
92494 + put_files_struct(files);
92495 + }
92496 +
92497 + if (our_file == NULL)
92498 + return 1;
92499 +
92500 + our_inode = d_backing_inode(our_file->f_path.dentry);
92501 +
92502 + read_lock(&tasklist_lock);
92503 + do_each_thread(p2, p) {
92504 + files = get_files_struct(p);
92505 + if (files == NULL ||
92506 + (p->signal && p->signal->tty == task->signal->tty)) {
92507 + if (files != NULL)
92508 + put_files_struct(files);
92509 + continue;
92510 + }
92511 + rcu_read_lock();
92512 + fdt = files_fdtable(files);
92513 + for (i=0; i < fdt->max_fds; i++) {
92514 + struct inode *inode = NULL;
92515 + file = fcheck_files(files, i);
92516 + if (file)
92517 + inode = d_backing_inode(file->f_path.dentry);
92518 + if (inode && S_ISCHR(inode->i_mode) && inode->i_rdev == our_inode->i_rdev) {
92519 + p3 = task;
92520 + while (task_pid_nr(p3) > 0) {
92521 + if (p3 == p)
92522 + break;
92523 + p3 = p3->real_parent;
92524 + }
92525 + if (p3 == p)
92526 + break;
92527 + gr_log_ttysniff(GR_DONT_AUDIT_GOOD, GR_TTYSNIFF_ACL_MSG, p);
92528 + gr_handle_alertkill(p);
92529 + rcu_read_unlock();
92530 + put_files_struct(files);
92531 + read_unlock(&tasklist_lock);
92532 + fput(our_file);
92533 + return 0;
92534 + }
92535 + }
92536 + rcu_read_unlock();
92537 + put_files_struct(files);
92538 + } while_each_thread(p2, p);
92539 + read_unlock(&tasklist_lock);
92540 +
92541 + fput(our_file);
92542 + return 1;
92543 +}
92544 +
92545 +ssize_t
92546 +write_grsec_handler(struct file *file, const char __user * buf, size_t count, loff_t *ppos)
92547 +{
92548 + struct gr_arg_wrapper uwrap;
92549 + unsigned char *sprole_salt = NULL;
92550 + unsigned char *sprole_sum = NULL;
92551 + int error = 0;
92552 + int error2 = 0;
92553 + size_t req_count = 0;
92554 + unsigned char oldmode = 0;
92555 +
92556 + mutex_lock(&gr_dev_mutex);
92557 +
92558 + if (gr_acl_is_enabled() && !(current->acl->mode & GR_KERNELAUTH)) {
92559 + error = -EPERM;
92560 + goto out;
92561 + }
92562 +
92563 +#ifdef CONFIG_COMPAT
92564 + pax_open_kernel();
92565 + if (is_compat_task()) {
92566 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_compat;
92567 + copy_gr_arg = &copy_gr_arg_compat;
92568 + copy_acl_object_label = &copy_acl_object_label_compat;
92569 + copy_acl_subject_label = &copy_acl_subject_label_compat;
92570 + copy_acl_role_label = &copy_acl_role_label_compat;
92571 + copy_acl_ip_label = &copy_acl_ip_label_compat;
92572 + copy_role_allowed_ip = &copy_role_allowed_ip_compat;
92573 + copy_role_transition = &copy_role_transition_compat;
92574 + copy_sprole_pw = &copy_sprole_pw_compat;
92575 + copy_gr_hash_struct = &copy_gr_hash_struct_compat;
92576 + copy_pointer_from_array = &copy_pointer_from_array_compat;
92577 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_compat;
92578 + } else {
92579 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_normal;
92580 + copy_gr_arg = &copy_gr_arg_normal;
92581 + copy_acl_object_label = &copy_acl_object_label_normal;
92582 + copy_acl_subject_label = &copy_acl_subject_label_normal;
92583 + copy_acl_role_label = &copy_acl_role_label_normal;
92584 + copy_acl_ip_label = &copy_acl_ip_label_normal;
92585 + copy_role_allowed_ip = &copy_role_allowed_ip_normal;
92586 + copy_role_transition = &copy_role_transition_normal;
92587 + copy_sprole_pw = &copy_sprole_pw_normal;
92588 + copy_gr_hash_struct = &copy_gr_hash_struct_normal;
92589 + copy_pointer_from_array = &copy_pointer_from_array_normal;
92590 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_normal;
92591 + }
92592 + pax_close_kernel();
92593 +#endif
92594 +
92595 + req_count = get_gr_arg_wrapper_size();
92596 +
92597 + if (count != req_count) {
92598 + gr_log_int_int(GR_DONT_AUDIT_GOOD, GR_DEV_ACL_MSG, (int)count, (int)req_count);
92599 + error = -EINVAL;
92600 + goto out;
92601 + }
92602 +
92603 +
92604 + if (gr_auth_expires && time_after_eq(get_seconds(), gr_auth_expires)) {
92605 + gr_auth_expires = 0;
92606 + gr_auth_attempts = 0;
92607 + }
92608 +
92609 + error = copy_gr_arg_wrapper(buf, &uwrap);
92610 + if (error)
92611 + goto out;
92612 +
92613 + error = copy_gr_arg(uwrap.arg, gr_usermode);
92614 + if (error)
92615 + goto out;
92616 +
92617 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_SPROLEPAM &&
92618 + gr_auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
92619 + time_after(gr_auth_expires, get_seconds())) {
92620 + error = -EBUSY;
92621 + goto out;
92622 + }
92623 +
92624 + /* if non-root trying to do anything other than use a special role,
92625 + do not attempt authentication, do not count towards authentication
92626 + locking
92627 + */
92628 +
92629 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_STATUS &&
92630 + gr_usermode->mode != GR_UNSPROLE && gr_usermode->mode != GR_SPROLEPAM &&
92631 + gr_is_global_nonroot(current_uid())) {
92632 + error = -EPERM;
92633 + goto out;
92634 + }
92635 +
92636 + /* ensure pw and special role name are null terminated */
92637 +
92638 + gr_usermode->pw[GR_PW_LEN - 1] = '\0';
92639 + gr_usermode->sp_role[GR_SPROLE_LEN - 1] = '\0';
92640 +
92641 + /* Okay.
92642 + * We have our enough of the argument structure..(we have yet
92643 + * to copy_from_user the tables themselves) . Copy the tables
92644 + * only if we need them, i.e. for loading operations. */
92645 +
92646 + switch (gr_usermode->mode) {
92647 + case GR_STATUS:
92648 + if (gr_acl_is_enabled()) {
92649 + error = 1;
92650 + if (!gr_check_secure_terminal(current))
92651 + error = 3;
92652 + } else
92653 + error = 2;
92654 + goto out;
92655 + case GR_SHUTDOWN:
92656 + if (gr_acl_is_enabled() && !(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92657 + stop_machine(gr_rbac_disable, NULL, NULL);
92658 + free_variables(false);
92659 + memset(gr_usermode, 0, sizeof(struct gr_arg));
92660 + memset(gr_system_salt, 0, GR_SALT_LEN);
92661 + memset(gr_system_sum, 0, GR_SHA_LEN);
92662 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
92663 + } else if (gr_acl_is_enabled()) {
92664 + gr_log_noargs(GR_DONT_AUDIT, GR_SHUTF_ACL_MSG);
92665 + error = -EPERM;
92666 + } else {
92667 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTI_ACL_MSG);
92668 + error = -EAGAIN;
92669 + }
92670 + break;
92671 + case GR_ENABLE:
92672 + if (!gr_acl_is_enabled() && !(error2 = gracl_init(gr_usermode)))
92673 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_ENABLE_ACL_MSG, GR_VERSION);
92674 + else {
92675 + if (gr_acl_is_enabled())
92676 + error = -EAGAIN;
92677 + else
92678 + error = error2;
92679 + gr_log_str(GR_DONT_AUDIT, GR_ENABLEF_ACL_MSG, GR_VERSION);
92680 + }
92681 + break;
92682 + case GR_OLDRELOAD:
92683 + oldmode = 1;
92684 + case GR_RELOAD:
92685 + if (!gr_acl_is_enabled()) {
92686 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOADI_ACL_MSG, GR_VERSION);
92687 + error = -EAGAIN;
92688 + } else if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92689 + error2 = gracl_reload(gr_usermode, oldmode);
92690 + if (!error2)
92691 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOAD_ACL_MSG, GR_VERSION);
92692 + else {
92693 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
92694 + error = error2;
92695 + }
92696 + } else {
92697 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
92698 + error = -EPERM;
92699 + }
92700 + break;
92701 + case GR_SEGVMOD:
92702 + if (unlikely(!gr_acl_is_enabled())) {
92703 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODI_ACL_MSG);
92704 + error = -EAGAIN;
92705 + break;
92706 + }
92707 +
92708 + if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92709 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODS_ACL_MSG);
92710 + if (gr_usermode->segv_device && gr_usermode->segv_inode) {
92711 + struct acl_subject_label *segvacl;
92712 + segvacl =
92713 + lookup_acl_subj_label(gr_usermode->segv_inode,
92714 + gr_usermode->segv_device,
92715 + current->role);
92716 + if (segvacl) {
92717 + segvacl->crashes = 0;
92718 + segvacl->expires = 0;
92719 + }
92720 + } else if (gr_find_uid(gr_usermode->segv_uid) >= 0) {
92721 + gr_remove_uid(gr_usermode->segv_uid);
92722 + }
92723 + } else {
92724 + gr_log_noargs(GR_DONT_AUDIT, GR_SEGVMODF_ACL_MSG);
92725 + error = -EPERM;
92726 + }
92727 + break;
92728 + case GR_SPROLE:
92729 + case GR_SPROLEPAM:
92730 + if (unlikely(!gr_acl_is_enabled())) {
92731 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SPROLEI_ACL_MSG);
92732 + error = -EAGAIN;
92733 + break;
92734 + }
92735 +
92736 + if (current->role->expires && time_after_eq(get_seconds(), current->role->expires)) {
92737 + current->role->expires = 0;
92738 + current->role->auth_attempts = 0;
92739 + }
92740 +
92741 + if (current->role->auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
92742 + time_after(current->role->expires, get_seconds())) {
92743 + error = -EBUSY;
92744 + goto out;
92745 + }
92746 +
92747 + if (lookup_special_role_auth
92748 + (gr_usermode->mode, gr_usermode->sp_role, &sprole_salt, &sprole_sum)
92749 + && ((!sprole_salt && !sprole_sum)
92750 + || !(chkpw(gr_usermode, sprole_salt, sprole_sum)))) {
92751 + char *p = "";
92752 + assign_special_role(gr_usermode->sp_role);
92753 + read_lock(&tasklist_lock);
92754 + if (current->real_parent)
92755 + p = current->real_parent->role->rolename;
92756 + read_unlock(&tasklist_lock);
92757 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLES_ACL_MSG,
92758 + p, acl_sp_role_value);
92759 + } else {
92760 + gr_log_str(GR_DONT_AUDIT, GR_SPROLEF_ACL_MSG, gr_usermode->sp_role);
92761 + error = -EPERM;
92762 + if(!(current->role->auth_attempts++))
92763 + current->role->expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
92764 +
92765 + goto out;
92766 + }
92767 + break;
92768 + case GR_UNSPROLE:
92769 + if (unlikely(!gr_acl_is_enabled())) {
92770 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_UNSPROLEI_ACL_MSG);
92771 + error = -EAGAIN;
92772 + break;
92773 + }
92774 +
92775 + if (current->role->roletype & GR_ROLE_SPECIAL) {
92776 + char *p = "";
92777 + int i = 0;
92778 +
92779 + read_lock(&tasklist_lock);
92780 + if (current->real_parent) {
92781 + p = current->real_parent->role->rolename;
92782 + i = current->real_parent->acl_role_id;
92783 + }
92784 + read_unlock(&tasklist_lock);
92785 +
92786 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_UNSPROLES_ACL_MSG, p, i);
92787 + gr_set_acls(1);
92788 + } else {
92789 + error = -EPERM;
92790 + goto out;
92791 + }
92792 + break;
92793 + default:
92794 + gr_log_int(GR_DONT_AUDIT, GR_INVMODE_ACL_MSG, gr_usermode->mode);
92795 + error = -EINVAL;
92796 + break;
92797 + }
92798 +
92799 + if (error != -EPERM)
92800 + goto out;
92801 +
92802 + if(!(gr_auth_attempts++))
92803 + gr_auth_expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
92804 +
92805 + out:
92806 + mutex_unlock(&gr_dev_mutex);
92807 +
92808 + if (!error)
92809 + error = req_count;
92810 +
92811 + return error;
92812 +}
92813 +
92814 +int
92815 +gr_set_acls(const int type)
92816 +{
92817 + struct task_struct *task, *task2;
92818 + struct acl_role_label *role = current->role;
92819 + struct acl_subject_label *subj;
92820 + __u16 acl_role_id = current->acl_role_id;
92821 + const struct cred *cred;
92822 + int ret;
92823 +
92824 + rcu_read_lock();
92825 + read_lock(&tasklist_lock);
92826 + read_lock(&grsec_exec_file_lock);
92827 + do_each_thread(task2, task) {
92828 + /* check to see if we're called from the exit handler,
92829 + if so, only replace ACLs that have inherited the admin
92830 + ACL */
92831 +
92832 + if (type && (task->role != role ||
92833 + task->acl_role_id != acl_role_id))
92834 + continue;
92835 +
92836 + task->acl_role_id = 0;
92837 + task->acl_sp_role = 0;
92838 + task->inherited = 0;
92839 +
92840 + if (task->exec_file) {
92841 + cred = __task_cred(task);
92842 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92843 + subj = __gr_get_subject_for_task(polstate, task, NULL, 1);
92844 + if (subj == NULL) {
92845 + ret = -EINVAL;
92846 + read_unlock(&grsec_exec_file_lock);
92847 + read_unlock(&tasklist_lock);
92848 + rcu_read_unlock();
92849 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_DEFACL_MSG, task->comm, task_pid_nr(task));
92850 + return ret;
92851 + }
92852 + __gr_apply_subject_to_task(polstate, task, subj);
92853 + } else {
92854 + // it's a kernel process
92855 + task->role = polstate->kernel_role;
92856 + task->acl = polstate->kernel_role->root_label;
92857 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
92858 + task->acl->mode &= ~GR_PROCFIND;
92859 +#endif
92860 + }
92861 + } while_each_thread(task2, task);
92862 + read_unlock(&grsec_exec_file_lock);
92863 + read_unlock(&tasklist_lock);
92864 + rcu_read_unlock();
92865 +
92866 + return 0;
92867 +}
92868 diff --git a/grsecurity/gracl_res.c b/grsecurity/gracl_res.c
92869 new file mode 100644
92870 index 0000000..39645c9
92871 --- /dev/null
92872 +++ b/grsecurity/gracl_res.c
92873 @@ -0,0 +1,68 @@
92874 +#include <linux/kernel.h>
92875 +#include <linux/sched.h>
92876 +#include <linux/gracl.h>
92877 +#include <linux/grinternal.h>
92878 +
92879 +static const char *restab_log[] = {
92880 + [RLIMIT_CPU] = "RLIMIT_CPU",
92881 + [RLIMIT_FSIZE] = "RLIMIT_FSIZE",
92882 + [RLIMIT_DATA] = "RLIMIT_DATA",
92883 + [RLIMIT_STACK] = "RLIMIT_STACK",
92884 + [RLIMIT_CORE] = "RLIMIT_CORE",
92885 + [RLIMIT_RSS] = "RLIMIT_RSS",
92886 + [RLIMIT_NPROC] = "RLIMIT_NPROC",
92887 + [RLIMIT_NOFILE] = "RLIMIT_NOFILE",
92888 + [RLIMIT_MEMLOCK] = "RLIMIT_MEMLOCK",
92889 + [RLIMIT_AS] = "RLIMIT_AS",
92890 + [RLIMIT_LOCKS] = "RLIMIT_LOCKS",
92891 + [RLIMIT_SIGPENDING] = "RLIMIT_SIGPENDING",
92892 + [RLIMIT_MSGQUEUE] = "RLIMIT_MSGQUEUE",
92893 + [RLIMIT_NICE] = "RLIMIT_NICE",
92894 + [RLIMIT_RTPRIO] = "RLIMIT_RTPRIO",
92895 + [RLIMIT_RTTIME] = "RLIMIT_RTTIME",
92896 + [GR_CRASH_RES] = "RLIMIT_CRASH"
92897 +};
92898 +
92899 +void
92900 +gr_log_resource(const struct task_struct *task,
92901 + const int res, const unsigned long wanted, const int gt)
92902 +{
92903 + const struct cred *cred;
92904 + unsigned long rlim;
92905 +
92906 + if (!gr_acl_is_enabled() && !grsec_resource_logging)
92907 + return;
92908 +
92909 + // not yet supported resource
92910 + if (unlikely(!restab_log[res]))
92911 + return;
92912 +
92913 + if (res == RLIMIT_CPU || res == RLIMIT_RTTIME)
92914 + rlim = task_rlimit_max(task, res);
92915 + else
92916 + rlim = task_rlimit(task, res);
92917 +
92918 + if (likely((rlim == RLIM_INFINITY) || (gt && wanted <= rlim) || (!gt && wanted < rlim)))
92919 + return;
92920 +
92921 + rcu_read_lock();
92922 + cred = __task_cred(task);
92923 +
92924 + if (res == RLIMIT_NPROC &&
92925 + (cap_raised(cred->cap_effective, CAP_SYS_ADMIN) ||
92926 + cap_raised(cred->cap_effective, CAP_SYS_RESOURCE)))
92927 + goto out_rcu_unlock;
92928 + else if (res == RLIMIT_MEMLOCK &&
92929 + cap_raised(cred->cap_effective, CAP_IPC_LOCK))
92930 + goto out_rcu_unlock;
92931 + else if (res == RLIMIT_NICE && cap_raised(cred->cap_effective, CAP_SYS_NICE))
92932 + goto out_rcu_unlock;
92933 + rcu_read_unlock();
92934 +
92935 + gr_log_res_ulong2_str(GR_DONT_AUDIT, GR_RESOURCE_MSG, task, wanted, restab_log[res], rlim);
92936 +
92937 + return;
92938 +out_rcu_unlock:
92939 + rcu_read_unlock();
92940 + return;
92941 +}
92942 diff --git a/grsecurity/gracl_segv.c b/grsecurity/gracl_segv.c
92943 new file mode 100644
92944 index 0000000..21646aa
92945 --- /dev/null
92946 +++ b/grsecurity/gracl_segv.c
92947 @@ -0,0 +1,304 @@
92948 +#include <linux/kernel.h>
92949 +#include <linux/mm.h>
92950 +#include <asm/uaccess.h>
92951 +#include <asm/errno.h>
92952 +#include <asm/mman.h>
92953 +#include <net/sock.h>
92954 +#include <linux/file.h>
92955 +#include <linux/fs.h>
92956 +#include <linux/net.h>
92957 +#include <linux/in.h>
92958 +#include <linux/slab.h>
92959 +#include <linux/types.h>
92960 +#include <linux/sched.h>
92961 +#include <linux/timer.h>
92962 +#include <linux/gracl.h>
92963 +#include <linux/grsecurity.h>
92964 +#include <linux/grinternal.h>
92965 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
92966 +#include <linux/magic.h>
92967 +#include <linux/pagemap.h>
92968 +#include "../fs/btrfs/async-thread.h"
92969 +#include "../fs/btrfs/ctree.h"
92970 +#include "../fs/btrfs/btrfs_inode.h"
92971 +#endif
92972 +
92973 +static struct crash_uid *uid_set;
92974 +static unsigned short uid_used;
92975 +static DEFINE_SPINLOCK(gr_uid_lock);
92976 +extern rwlock_t gr_inode_lock;
92977 +extern struct acl_subject_label *
92978 + lookup_acl_subj_label(const u64 inode, const dev_t dev,
92979 + struct acl_role_label *role);
92980 +
92981 +int
92982 +gr_init_uidset(void)
92983 +{
92984 + uid_set =
92985 + kmalloc(GR_UIDTABLE_MAX * sizeof (struct crash_uid), GFP_KERNEL);
92986 + uid_used = 0;
92987 +
92988 + return uid_set ? 1 : 0;
92989 +}
92990 +
92991 +void
92992 +gr_free_uidset(void)
92993 +{
92994 + if (uid_set) {
92995 + struct crash_uid *tmpset;
92996 + spin_lock(&gr_uid_lock);
92997 + tmpset = uid_set;
92998 + uid_set = NULL;
92999 + uid_used = 0;
93000 + spin_unlock(&gr_uid_lock);
93001 + if (tmpset)
93002 + kfree(tmpset);
93003 + }
93004 +
93005 + return;
93006 +}
93007 +
93008 +int
93009 +gr_find_uid(const uid_t uid)
93010 +{
93011 + struct crash_uid *tmp = uid_set;
93012 + uid_t buid;
93013 + int low = 0, high = uid_used - 1, mid;
93014 +
93015 + while (high >= low) {
93016 + mid = (low + high) >> 1;
93017 + buid = tmp[mid].uid;
93018 + if (buid == uid)
93019 + return mid;
93020 + if (buid > uid)
93021 + high = mid - 1;
93022 + if (buid < uid)
93023 + low = mid + 1;
93024 + }
93025 +
93026 + return -1;
93027 +}
93028 +
93029 +static void
93030 +gr_insertsort(void)
93031 +{
93032 + unsigned short i, j;
93033 + struct crash_uid index;
93034 +
93035 + for (i = 1; i < uid_used; i++) {
93036 + index = uid_set[i];
93037 + j = i;
93038 + while ((j > 0) && uid_set[j - 1].uid > index.uid) {
93039 + uid_set[j] = uid_set[j - 1];
93040 + j--;
93041 + }
93042 + uid_set[j] = index;
93043 + }
93044 +
93045 + return;
93046 +}
93047 +
93048 +static void
93049 +gr_insert_uid(const kuid_t kuid, const unsigned long expires)
93050 +{
93051 + int loc;
93052 + uid_t uid = GR_GLOBAL_UID(kuid);
93053 +
93054 + if (uid_used == GR_UIDTABLE_MAX)
93055 + return;
93056 +
93057 + loc = gr_find_uid(uid);
93058 +
93059 + if (loc >= 0) {
93060 + uid_set[loc].expires = expires;
93061 + return;
93062 + }
93063 +
93064 + uid_set[uid_used].uid = uid;
93065 + uid_set[uid_used].expires = expires;
93066 + uid_used++;
93067 +
93068 + gr_insertsort();
93069 +
93070 + return;
93071 +}
93072 +
93073 +void
93074 +gr_remove_uid(const unsigned short loc)
93075 +{
93076 + unsigned short i;
93077 +
93078 + for (i = loc + 1; i < uid_used; i++)
93079 + uid_set[i - 1] = uid_set[i];
93080 +
93081 + uid_used--;
93082 +
93083 + return;
93084 +}
93085 +
93086 +int
93087 +gr_check_crash_uid(const kuid_t kuid)
93088 +{
93089 + int loc;
93090 + int ret = 0;
93091 + uid_t uid;
93092 +
93093 + if (unlikely(!gr_acl_is_enabled()))
93094 + return 0;
93095 +
93096 + uid = GR_GLOBAL_UID(kuid);
93097 +
93098 + spin_lock(&gr_uid_lock);
93099 + loc = gr_find_uid(uid);
93100 +
93101 + if (loc < 0)
93102 + goto out_unlock;
93103 +
93104 + if (time_before_eq(uid_set[loc].expires, get_seconds()))
93105 + gr_remove_uid(loc);
93106 + else
93107 + ret = 1;
93108 +
93109 +out_unlock:
93110 + spin_unlock(&gr_uid_lock);
93111 + return ret;
93112 +}
93113 +
93114 +static int
93115 +proc_is_setxid(const struct cred *cred)
93116 +{
93117 + if (!uid_eq(cred->uid, cred->euid) || !uid_eq(cred->uid, cred->suid) ||
93118 + !uid_eq(cred->uid, cred->fsuid))
93119 + return 1;
93120 + if (!gid_eq(cred->gid, cred->egid) || !gid_eq(cred->gid, cred->sgid) ||
93121 + !gid_eq(cred->gid, cred->fsgid))
93122 + return 1;
93123 +
93124 + return 0;
93125 +}
93126 +
93127 +extern int gr_fake_force_sig(int sig, struct task_struct *t);
93128 +
93129 +void
93130 +gr_handle_crash(struct task_struct *task, const int sig)
93131 +{
93132 + struct acl_subject_label *curr;
93133 + struct task_struct *tsk, *tsk2;
93134 + const struct cred *cred;
93135 + const struct cred *cred2;
93136 +
93137 + if (sig != SIGSEGV && sig != SIGKILL && sig != SIGBUS && sig != SIGILL)
93138 + return;
93139 +
93140 + if (unlikely(!gr_acl_is_enabled()))
93141 + return;
93142 +
93143 + curr = task->acl;
93144 +
93145 + if (!(curr->resmask & (1U << GR_CRASH_RES)))
93146 + return;
93147 +
93148 + if (time_before_eq(curr->expires, get_seconds())) {
93149 + curr->expires = 0;
93150 + curr->crashes = 0;
93151 + }
93152 +
93153 + curr->crashes++;
93154 +
93155 + if (!curr->expires)
93156 + curr->expires = get_seconds() + curr->res[GR_CRASH_RES].rlim_max;
93157 +
93158 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
93159 + time_after(curr->expires, get_seconds())) {
93160 + rcu_read_lock();
93161 + cred = __task_cred(task);
93162 + if (gr_is_global_nonroot(cred->uid) && proc_is_setxid(cred)) {
93163 + gr_log_crash1(GR_DONT_AUDIT, GR_SEGVSTART_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
93164 + spin_lock(&gr_uid_lock);
93165 + gr_insert_uid(cred->uid, curr->expires);
93166 + spin_unlock(&gr_uid_lock);
93167 + curr->expires = 0;
93168 + curr->crashes = 0;
93169 + read_lock(&tasklist_lock);
93170 + do_each_thread(tsk2, tsk) {
93171 + cred2 = __task_cred(tsk);
93172 + if (tsk != task && uid_eq(cred2->uid, cred->uid))
93173 + gr_fake_force_sig(SIGKILL, tsk);
93174 + } while_each_thread(tsk2, tsk);
93175 + read_unlock(&tasklist_lock);
93176 + } else {
93177 + gr_log_crash2(GR_DONT_AUDIT, GR_SEGVNOSUID_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
93178 + read_lock(&tasklist_lock);
93179 + read_lock(&grsec_exec_file_lock);
93180 + do_each_thread(tsk2, tsk) {
93181 + if (likely(tsk != task)) {
93182 + // if this thread has the same subject as the one that triggered
93183 + // RES_CRASH and it's the same binary, kill it
93184 + if (tsk->acl == task->acl && gr_is_same_file(tsk->exec_file, task->exec_file))
93185 + gr_fake_force_sig(SIGKILL, tsk);
93186 + }
93187 + } while_each_thread(tsk2, tsk);
93188 + read_unlock(&grsec_exec_file_lock);
93189 + read_unlock(&tasklist_lock);
93190 + }
93191 + rcu_read_unlock();
93192 + }
93193 +
93194 + return;
93195 +}
93196 +
93197 +int
93198 +gr_check_crash_exec(const struct file *filp)
93199 +{
93200 + struct acl_subject_label *curr;
93201 + struct dentry *dentry;
93202 +
93203 + if (unlikely(!gr_acl_is_enabled()))
93204 + return 0;
93205 +
93206 + read_lock(&gr_inode_lock);
93207 + dentry = filp->f_path.dentry;
93208 + curr = lookup_acl_subj_label(gr_get_ino_from_dentry(dentry), gr_get_dev_from_dentry(dentry),
93209 + current->role);
93210 + read_unlock(&gr_inode_lock);
93211 +
93212 + if (!curr || !(curr->resmask & (1U << GR_CRASH_RES)) ||
93213 + (!curr->crashes && !curr->expires))
93214 + return 0;
93215 +
93216 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
93217 + time_after(curr->expires, get_seconds()))
93218 + return 1;
93219 + else if (time_before_eq(curr->expires, get_seconds())) {
93220 + curr->crashes = 0;
93221 + curr->expires = 0;
93222 + }
93223 +
93224 + return 0;
93225 +}
93226 +
93227 +void
93228 +gr_handle_alertkill(struct task_struct *task)
93229 +{
93230 + struct acl_subject_label *curracl;
93231 + __u32 curr_ip;
93232 + struct task_struct *p, *p2;
93233 +
93234 + if (unlikely(!gr_acl_is_enabled()))
93235 + return;
93236 +
93237 + curracl = task->acl;
93238 + curr_ip = task->signal->curr_ip;
93239 +
93240 + if ((curracl->mode & GR_KILLIPPROC) && curr_ip) {
93241 + read_lock(&tasklist_lock);
93242 + do_each_thread(p2, p) {
93243 + if (p->signal->curr_ip == curr_ip)
93244 + gr_fake_force_sig(SIGKILL, p);
93245 + } while_each_thread(p2, p);
93246 + read_unlock(&tasklist_lock);
93247 + } else if (curracl->mode & GR_KILLPROC)
93248 + gr_fake_force_sig(SIGKILL, task);
93249 +
93250 + return;
93251 +}
93252 diff --git a/grsecurity/gracl_shm.c b/grsecurity/gracl_shm.c
93253 new file mode 100644
93254 index 0000000..6b0c9cc
93255 --- /dev/null
93256 +++ b/grsecurity/gracl_shm.c
93257 @@ -0,0 +1,40 @@
93258 +#include <linux/kernel.h>
93259 +#include <linux/mm.h>
93260 +#include <linux/sched.h>
93261 +#include <linux/file.h>
93262 +#include <linux/ipc.h>
93263 +#include <linux/gracl.h>
93264 +#include <linux/grsecurity.h>
93265 +#include <linux/grinternal.h>
93266 +
93267 +int
93268 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
93269 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
93270 +{
93271 + struct task_struct *task;
93272 +
93273 + if (!gr_acl_is_enabled())
93274 + return 1;
93275 +
93276 + rcu_read_lock();
93277 + read_lock(&tasklist_lock);
93278 +
93279 + task = find_task_by_vpid(shm_cprid);
93280 +
93281 + if (unlikely(!task))
93282 + task = find_task_by_vpid(shm_lapid);
93283 +
93284 + if (unlikely(task && (time_before_eq64(task->start_time, shm_createtime) ||
93285 + (task_pid_nr(task) == shm_lapid)) &&
93286 + (task->acl->mode & GR_PROTSHM) &&
93287 + (task->acl != current->acl))) {
93288 + read_unlock(&tasklist_lock);
93289 + rcu_read_unlock();
93290 + gr_log_int3(GR_DONT_AUDIT, GR_SHMAT_ACL_MSG, GR_GLOBAL_UID(cuid), shm_cprid, shmid);
93291 + return 0;
93292 + }
93293 + read_unlock(&tasklist_lock);
93294 + rcu_read_unlock();
93295 +
93296 + return 1;
93297 +}
93298 diff --git a/grsecurity/grsec_chdir.c b/grsecurity/grsec_chdir.c
93299 new file mode 100644
93300 index 0000000..bc0be01
93301 --- /dev/null
93302 +++ b/grsecurity/grsec_chdir.c
93303 @@ -0,0 +1,19 @@
93304 +#include <linux/kernel.h>
93305 +#include <linux/sched.h>
93306 +#include <linux/fs.h>
93307 +#include <linux/file.h>
93308 +#include <linux/grsecurity.h>
93309 +#include <linux/grinternal.h>
93310 +
93311 +void
93312 +gr_log_chdir(const struct dentry *dentry, const struct vfsmount *mnt)
93313 +{
93314 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
93315 + if ((grsec_enable_chdir && grsec_enable_group &&
93316 + in_group_p(grsec_audit_gid)) || (grsec_enable_chdir &&
93317 + !grsec_enable_group)) {
93318 + gr_log_fs_generic(GR_DO_AUDIT, GR_CHDIR_AUDIT_MSG, dentry, mnt);
93319 + }
93320 +#endif
93321 + return;
93322 +}
93323 diff --git a/grsecurity/grsec_chroot.c b/grsecurity/grsec_chroot.c
93324 new file mode 100644
93325 index 0000000..652ab45
93326 --- /dev/null
93327 +++ b/grsecurity/grsec_chroot.c
93328 @@ -0,0 +1,467 @@
93329 +#include <linux/kernel.h>
93330 +#include <linux/module.h>
93331 +#include <linux/sched.h>
93332 +#include <linux/file.h>
93333 +#include <linux/fs.h>
93334 +#include <linux/mount.h>
93335 +#include <linux/types.h>
93336 +#include "../fs/mount.h"
93337 +#include <linux/grsecurity.h>
93338 +#include <linux/grinternal.h>
93339 +
93340 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
93341 +int gr_init_ran;
93342 +#endif
93343 +
93344 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
93345 +{
93346 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93347 + struct dentry *tmpd = dentry;
93348 +
93349 + read_seqlock_excl(&mount_lock);
93350 + write_seqlock(&rename_lock);
93351 +
93352 + while (tmpd != mnt->mnt_root) {
93353 + atomic_inc(&tmpd->chroot_refcnt);
93354 + tmpd = tmpd->d_parent;
93355 + }
93356 + atomic_inc(&tmpd->chroot_refcnt);
93357 +
93358 + write_sequnlock(&rename_lock);
93359 + read_sequnlock_excl(&mount_lock);
93360 +#endif
93361 +}
93362 +
93363 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
93364 +{
93365 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93366 + struct dentry *tmpd = dentry;
93367 +
93368 + read_seqlock_excl(&mount_lock);
93369 + write_seqlock(&rename_lock);
93370 +
93371 + while (tmpd != mnt->mnt_root) {
93372 + atomic_dec(&tmpd->chroot_refcnt);
93373 + tmpd = tmpd->d_parent;
93374 + }
93375 + atomic_dec(&tmpd->chroot_refcnt);
93376 +
93377 + write_sequnlock(&rename_lock);
93378 + read_sequnlock_excl(&mount_lock);
93379 +#endif
93380 +}
93381 +
93382 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93383 +static struct dentry *get_closest_chroot(struct dentry *dentry)
93384 +{
93385 + write_seqlock(&rename_lock);
93386 + do {
93387 + if (atomic_read(&dentry->chroot_refcnt)) {
93388 + write_sequnlock(&rename_lock);
93389 + return dentry;
93390 + }
93391 + dentry = dentry->d_parent;
93392 + } while (!IS_ROOT(dentry));
93393 + write_sequnlock(&rename_lock);
93394 + return NULL;
93395 +}
93396 +#endif
93397 +
93398 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
93399 + struct dentry *newdentry, struct vfsmount *newmnt)
93400 +{
93401 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
93402 + struct dentry *chroot;
93403 +
93404 + if (unlikely(!grsec_enable_chroot_rename))
93405 + return 0;
93406 +
93407 + if (likely(!proc_is_chrooted(current) && gr_is_global_root(current_uid())))
93408 + return 0;
93409 +
93410 + chroot = get_closest_chroot(olddentry);
93411 +
93412 + if (chroot == NULL)
93413 + return 0;
93414 +
93415 + if (is_subdir(newdentry, chroot))
93416 + return 0;
93417 +
93418 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_RENAME_MSG, olddentry, oldmnt);
93419 +
93420 + return 1;
93421 +#else
93422 + return 0;
93423 +#endif
93424 +}
93425 +
93426 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path)
93427 +{
93428 +#ifdef CONFIG_GRKERNSEC
93429 + if (task_pid_nr(task) > 1 && path->dentry != init_task.fs->root.dentry &&
93430 + path->dentry != task->nsproxy->mnt_ns->root->mnt.mnt_root
93431 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
93432 + && gr_init_ran
93433 +#endif
93434 + )
93435 + task->gr_is_chrooted = 1;
93436 + else {
93437 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
93438 + if (task_pid_nr(task) == 1 && !gr_init_ran)
93439 + gr_init_ran = 1;
93440 +#endif
93441 + task->gr_is_chrooted = 0;
93442 + }
93443 +
93444 + task->gr_chroot_dentry = path->dentry;
93445 +#endif
93446 + return;
93447 +}
93448 +
93449 +void gr_clear_chroot_entries(struct task_struct *task)
93450 +{
93451 +#ifdef CONFIG_GRKERNSEC
93452 + task->gr_is_chrooted = 0;
93453 + task->gr_chroot_dentry = NULL;
93454 +#endif
93455 + return;
93456 +}
93457 +
93458 +int
93459 +gr_handle_chroot_unix(const pid_t pid)
93460 +{
93461 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
93462 + struct task_struct *p;
93463 +
93464 + if (unlikely(!grsec_enable_chroot_unix))
93465 + return 1;
93466 +
93467 + if (likely(!proc_is_chrooted(current)))
93468 + return 1;
93469 +
93470 + rcu_read_lock();
93471 + read_lock(&tasklist_lock);
93472 + p = find_task_by_vpid_unrestricted(pid);
93473 + if (unlikely(p && !have_same_root(current, p))) {
93474 + read_unlock(&tasklist_lock);
93475 + rcu_read_unlock();
93476 + gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
93477 + return 0;
93478 + }
93479 + read_unlock(&tasklist_lock);
93480 + rcu_read_unlock();
93481 +#endif
93482 + return 1;
93483 +}
93484 +
93485 +int
93486 +gr_handle_chroot_nice(void)
93487 +{
93488 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
93489 + if (grsec_enable_chroot_nice && proc_is_chrooted(current)) {
93490 + gr_log_noargs(GR_DONT_AUDIT, GR_NICE_CHROOT_MSG);
93491 + return -EPERM;
93492 + }
93493 +#endif
93494 + return 0;
93495 +}
93496 +
93497 +int
93498 +gr_handle_chroot_setpriority(struct task_struct *p, const int niceval)
93499 +{
93500 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
93501 + if (grsec_enable_chroot_nice && (niceval < task_nice(p))
93502 + && proc_is_chrooted(current)) {
93503 + gr_log_str_int(GR_DONT_AUDIT, GR_PRIORITY_CHROOT_MSG, p->comm, task_pid_nr(p));
93504 + return -EACCES;
93505 + }
93506 +#endif
93507 + return 0;
93508 +}
93509 +
93510 +int
93511 +gr_handle_chroot_fowner(struct pid *pid, enum pid_type type)
93512 +{
93513 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
93514 + struct task_struct *p;
93515 + int ret = 0;
93516 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || !pid)
93517 + return ret;
93518 +
93519 + read_lock(&tasklist_lock);
93520 + do_each_pid_task(pid, type, p) {
93521 + if (!have_same_root(current, p)) {
93522 + ret = 1;
93523 + goto out;
93524 + }
93525 + } while_each_pid_task(pid, type, p);
93526 +out:
93527 + read_unlock(&tasklist_lock);
93528 + return ret;
93529 +#endif
93530 + return 0;
93531 +}
93532 +
93533 +int
93534 +gr_pid_is_chrooted(struct task_struct *p)
93535 +{
93536 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
93537 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || p == NULL)
93538 + return 0;
93539 +
93540 + if ((p->exit_state & (EXIT_ZOMBIE | EXIT_DEAD)) ||
93541 + !have_same_root(current, p)) {
93542 + return 1;
93543 + }
93544 +#endif
93545 + return 0;
93546 +}
93547 +
93548 +EXPORT_SYMBOL_GPL(gr_pid_is_chrooted);
93549 +
93550 +#if defined(CONFIG_GRKERNSEC_CHROOT_DOUBLE) || defined(CONFIG_GRKERNSEC_CHROOT_FCHDIR)
93551 +int gr_is_outside_chroot(const struct dentry *u_dentry, const struct vfsmount *u_mnt)
93552 +{
93553 + struct path path, currentroot;
93554 + int ret = 0;
93555 +
93556 + path.dentry = (struct dentry *)u_dentry;
93557 + path.mnt = (struct vfsmount *)u_mnt;
93558 + get_fs_root(current->fs, &currentroot);
93559 + if (path_is_under(&path, &currentroot))
93560 + ret = 1;
93561 + path_put(&currentroot);
93562 +
93563 + return ret;
93564 +}
93565 +#endif
93566 +
93567 +int
93568 +gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt)
93569 +{
93570 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
93571 + if (!grsec_enable_chroot_fchdir)
93572 + return 1;
93573 +
93574 + if (!proc_is_chrooted(current))
93575 + return 1;
93576 + else if (!gr_is_outside_chroot(u_dentry, u_mnt)) {
93577 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_FCHDIR_MSG, u_dentry, u_mnt);
93578 + return 0;
93579 + }
93580 +#endif
93581 + return 1;
93582 +}
93583 +
93584 +int
93585 +gr_chroot_fhandle(void)
93586 +{
93587 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
93588 + if (!grsec_enable_chroot_fchdir)
93589 + return 1;
93590 +
93591 + if (!proc_is_chrooted(current))
93592 + return 1;
93593 + else {
93594 + gr_log_noargs(GR_DONT_AUDIT, GR_CHROOT_FHANDLE_MSG);
93595 + return 0;
93596 + }
93597 +#endif
93598 + return 1;
93599 +}
93600 +
93601 +int
93602 +gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
93603 + const u64 shm_createtime)
93604 +{
93605 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
93606 + struct task_struct *p;
93607 +
93608 + if (unlikely(!grsec_enable_chroot_shmat))
93609 + return 1;
93610 +
93611 + if (likely(!proc_is_chrooted(current)))
93612 + return 1;
93613 +
93614 + rcu_read_lock();
93615 + read_lock(&tasklist_lock);
93616 +
93617 + if ((p = find_task_by_vpid_unrestricted(shm_cprid))) {
93618 + if (time_before_eq64(p->start_time, shm_createtime)) {
93619 + if (have_same_root(current, p)) {
93620 + goto allow;
93621 + } else {
93622 + read_unlock(&tasklist_lock);
93623 + rcu_read_unlock();
93624 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
93625 + return 0;
93626 + }
93627 + }
93628 + /* creator exited, pid reuse, fall through to next check */
93629 + }
93630 + if ((p = find_task_by_vpid_unrestricted(shm_lapid))) {
93631 + if (unlikely(!have_same_root(current, p))) {
93632 + read_unlock(&tasklist_lock);
93633 + rcu_read_unlock();
93634 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
93635 + return 0;
93636 + }
93637 + }
93638 +
93639 +allow:
93640 + read_unlock(&tasklist_lock);
93641 + rcu_read_unlock();
93642 +#endif
93643 + return 1;
93644 +}
93645 +
93646 +void
93647 +gr_log_chroot_exec(const struct dentry *dentry, const struct vfsmount *mnt)
93648 +{
93649 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
93650 + if (grsec_enable_chroot_execlog && proc_is_chrooted(current))
93651 + gr_log_fs_generic(GR_DO_AUDIT, GR_EXEC_CHROOT_MSG, dentry, mnt);
93652 +#endif
93653 + return;
93654 +}
93655 +
93656 +int
93657 +gr_handle_chroot_mknod(const struct dentry *dentry,
93658 + const struct vfsmount *mnt, const int mode)
93659 +{
93660 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
93661 + if (grsec_enable_chroot_mknod && !S_ISFIFO(mode) && !S_ISREG(mode) &&
93662 + proc_is_chrooted(current)) {
93663 + gr_log_fs_generic(GR_DONT_AUDIT, GR_MKNOD_CHROOT_MSG, dentry, mnt);
93664 + return -EPERM;
93665 + }
93666 +#endif
93667 + return 0;
93668 +}
93669 +
93670 +int
93671 +gr_handle_chroot_mount(const struct dentry *dentry,
93672 + const struct vfsmount *mnt, const char *dev_name)
93673 +{
93674 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
93675 + if (grsec_enable_chroot_mount && proc_is_chrooted(current)) {
93676 + gr_log_str_fs(GR_DONT_AUDIT, GR_MOUNT_CHROOT_MSG, dev_name ? dev_name : "none", dentry, mnt);
93677 + return -EPERM;
93678 + }
93679 +#endif
93680 + return 0;
93681 +}
93682 +
93683 +int
93684 +gr_handle_chroot_pivot(void)
93685 +{
93686 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
93687 + if (grsec_enable_chroot_pivot && proc_is_chrooted(current)) {
93688 + gr_log_noargs(GR_DONT_AUDIT, GR_PIVOT_CHROOT_MSG);
93689 + return -EPERM;
93690 + }
93691 +#endif
93692 + return 0;
93693 +}
93694 +
93695 +int
93696 +gr_handle_chroot_chroot(const struct dentry *dentry, const struct vfsmount *mnt)
93697 +{
93698 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
93699 + if (grsec_enable_chroot_double && proc_is_chrooted(current) &&
93700 + !gr_is_outside_chroot(dentry, mnt)) {
93701 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_CHROOT_MSG, dentry, mnt);
93702 + return -EPERM;
93703 + }
93704 +#endif
93705 + return 0;
93706 +}
93707 +
93708 +extern const char *captab_log[];
93709 +extern int captab_log_entries;
93710 +
93711 +int
93712 +gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
93713 +{
93714 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93715 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
93716 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
93717 + if (cap_raised(chroot_caps, cap)) {
93718 + if (cap_raised(cred->cap_effective, cap) && cap < captab_log_entries) {
93719 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_CHROOT_MSG, task, captab_log[cap]);
93720 + }
93721 + return 0;
93722 + }
93723 + }
93724 +#endif
93725 + return 1;
93726 +}
93727 +
93728 +int
93729 +gr_chroot_is_capable(const int cap)
93730 +{
93731 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93732 + return gr_task_chroot_is_capable(current, current_cred(), cap);
93733 +#endif
93734 + return 1;
93735 +}
93736 +
93737 +int
93738 +gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap)
93739 +{
93740 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93741 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
93742 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
93743 + if (cap_raised(chroot_caps, cap)) {
93744 + return 0;
93745 + }
93746 + }
93747 +#endif
93748 + return 1;
93749 +}
93750 +
93751 +int
93752 +gr_chroot_is_capable_nolog(const int cap)
93753 +{
93754 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93755 + return gr_task_chroot_is_capable_nolog(current, cap);
93756 +#endif
93757 + return 1;
93758 +}
93759 +
93760 +int
93761 +gr_handle_chroot_sysctl(const int op)
93762 +{
93763 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
93764 + if (grsec_enable_chroot_sysctl && (op & MAY_WRITE) &&
93765 + proc_is_chrooted(current))
93766 + return -EACCES;
93767 +#endif
93768 + return 0;
93769 +}
93770 +
93771 +void
93772 +gr_handle_chroot_chdir(const struct path *path)
93773 +{
93774 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
93775 + if (grsec_enable_chroot_chdir)
93776 + set_fs_pwd(current->fs, path);
93777 +#endif
93778 + return;
93779 +}
93780 +
93781 +int
93782 +gr_handle_chroot_chmod(const struct dentry *dentry,
93783 + const struct vfsmount *mnt, const int mode)
93784 +{
93785 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
93786 + /* allow chmod +s on directories, but not files */
93787 + if (grsec_enable_chroot_chmod && !d_is_dir(dentry) &&
93788 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))) &&
93789 + proc_is_chrooted(current)) {
93790 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHMOD_CHROOT_MSG, dentry, mnt);
93791 + return -EPERM;
93792 + }
93793 +#endif
93794 + return 0;
93795 +}
93796 diff --git a/grsecurity/grsec_disabled.c b/grsecurity/grsec_disabled.c
93797 new file mode 100644
93798 index 0000000..e723c08
93799 --- /dev/null
93800 +++ b/grsecurity/grsec_disabled.c
93801 @@ -0,0 +1,445 @@
93802 +#include <linux/kernel.h>
93803 +#include <linux/module.h>
93804 +#include <linux/sched.h>
93805 +#include <linux/file.h>
93806 +#include <linux/fs.h>
93807 +#include <linux/kdev_t.h>
93808 +#include <linux/net.h>
93809 +#include <linux/in.h>
93810 +#include <linux/ip.h>
93811 +#include <linux/skbuff.h>
93812 +#include <linux/sysctl.h>
93813 +
93814 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
93815 +void
93816 +pax_set_initial_flags(struct linux_binprm *bprm)
93817 +{
93818 + return;
93819 +}
93820 +#endif
93821 +
93822 +#ifdef CONFIG_SYSCTL
93823 +__u32
93824 +gr_handle_sysctl(const struct ctl_table * table, const int op)
93825 +{
93826 + return 0;
93827 +}
93828 +#endif
93829 +
93830 +#ifdef CONFIG_TASKSTATS
93831 +int gr_is_taskstats_denied(int pid)
93832 +{
93833 + return 0;
93834 +}
93835 +#endif
93836 +
93837 +int
93838 +gr_acl_is_enabled(void)
93839 +{
93840 + return 0;
93841 +}
93842 +
93843 +int
93844 +gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
93845 +{
93846 + return 0;
93847 +}
93848 +
93849 +void
93850 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
93851 +{
93852 + return;
93853 +}
93854 +
93855 +int
93856 +gr_handle_rawio(const struct inode *inode)
93857 +{
93858 + return 0;
93859 +}
93860 +
93861 +void
93862 +gr_acl_handle_psacct(struct task_struct *task, const long code)
93863 +{
93864 + return;
93865 +}
93866 +
93867 +int
93868 +gr_handle_ptrace(struct task_struct *task, const long request)
93869 +{
93870 + return 0;
93871 +}
93872 +
93873 +int
93874 +gr_handle_proc_ptrace(struct task_struct *task)
93875 +{
93876 + return 0;
93877 +}
93878 +
93879 +int
93880 +gr_set_acls(const int type)
93881 +{
93882 + return 0;
93883 +}
93884 +
93885 +int
93886 +gr_check_hidden_task(const struct task_struct *tsk)
93887 +{
93888 + return 0;
93889 +}
93890 +
93891 +int
93892 +gr_check_protected_task(const struct task_struct *task)
93893 +{
93894 + return 0;
93895 +}
93896 +
93897 +int
93898 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
93899 +{
93900 + return 0;
93901 +}
93902 +
93903 +void
93904 +gr_copy_label(struct task_struct *tsk)
93905 +{
93906 + return;
93907 +}
93908 +
93909 +void
93910 +gr_set_pax_flags(struct task_struct *task)
93911 +{
93912 + return;
93913 +}
93914 +
93915 +int
93916 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
93917 + const int unsafe_share)
93918 +{
93919 + return 0;
93920 +}
93921 +
93922 +void
93923 +gr_handle_delete(const u64 ino, const dev_t dev)
93924 +{
93925 + return;
93926 +}
93927 +
93928 +void
93929 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
93930 +{
93931 + return;
93932 +}
93933 +
93934 +void
93935 +gr_handle_crash(struct task_struct *task, const int sig)
93936 +{
93937 + return;
93938 +}
93939 +
93940 +int
93941 +gr_check_crash_exec(const struct file *filp)
93942 +{
93943 + return 0;
93944 +}
93945 +
93946 +int
93947 +gr_check_crash_uid(const kuid_t uid)
93948 +{
93949 + return 0;
93950 +}
93951 +
93952 +void
93953 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
93954 + struct dentry *old_dentry,
93955 + struct dentry *new_dentry,
93956 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
93957 +{
93958 + return;
93959 +}
93960 +
93961 +int
93962 +gr_search_socket(const int family, const int type, const int protocol)
93963 +{
93964 + return 1;
93965 +}
93966 +
93967 +int
93968 +gr_search_connectbind(const int mode, const struct socket *sock,
93969 + const struct sockaddr_in *addr)
93970 +{
93971 + return 0;
93972 +}
93973 +
93974 +void
93975 +gr_handle_alertkill(struct task_struct *task)
93976 +{
93977 + return;
93978 +}
93979 +
93980 +__u32
93981 +gr_acl_handle_execve(const struct dentry * dentry, const struct vfsmount * mnt)
93982 +{
93983 + return 1;
93984 +}
93985 +
93986 +__u32
93987 +gr_acl_handle_hidden_file(const struct dentry * dentry,
93988 + const struct vfsmount * mnt)
93989 +{
93990 + return 1;
93991 +}
93992 +
93993 +__u32
93994 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
93995 + int acc_mode)
93996 +{
93997 + return 1;
93998 +}
93999 +
94000 +__u32
94001 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
94002 +{
94003 + return 1;
94004 +}
94005 +
94006 +__u32
94007 +gr_acl_handle_unlink(const struct dentry * dentry, const struct vfsmount * mnt)
94008 +{
94009 + return 1;
94010 +}
94011 +
94012 +int
94013 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot,
94014 + unsigned int *vm_flags)
94015 +{
94016 + return 1;
94017 +}
94018 +
94019 +__u32
94020 +gr_acl_handle_truncate(const struct dentry * dentry,
94021 + const struct vfsmount * mnt)
94022 +{
94023 + return 1;
94024 +}
94025 +
94026 +__u32
94027 +gr_acl_handle_utime(const struct dentry * dentry, const struct vfsmount * mnt)
94028 +{
94029 + return 1;
94030 +}
94031 +
94032 +__u32
94033 +gr_acl_handle_access(const struct dentry * dentry,
94034 + const struct vfsmount * mnt, const int fmode)
94035 +{
94036 + return 1;
94037 +}
94038 +
94039 +__u32
94040 +gr_acl_handle_chmod(const struct dentry * dentry, const struct vfsmount * mnt,
94041 + umode_t *mode)
94042 +{
94043 + return 1;
94044 +}
94045 +
94046 +__u32
94047 +gr_acl_handle_chown(const struct dentry * dentry, const struct vfsmount * mnt)
94048 +{
94049 + return 1;
94050 +}
94051 +
94052 +__u32
94053 +gr_acl_handle_setxattr(const struct dentry * dentry, const struct vfsmount * mnt)
94054 +{
94055 + return 1;
94056 +}
94057 +
94058 +__u32
94059 +gr_acl_handle_removexattr(const struct dentry * dentry, const struct vfsmount * mnt)
94060 +{
94061 + return 1;
94062 +}
94063 +
94064 +void
94065 +grsecurity_init(void)
94066 +{
94067 + return;
94068 +}
94069 +
94070 +umode_t gr_acl_umask(void)
94071 +{
94072 + return 0;
94073 +}
94074 +
94075 +__u32
94076 +gr_acl_handle_mknod(const struct dentry * new_dentry,
94077 + const struct dentry * parent_dentry,
94078 + const struct vfsmount * parent_mnt,
94079 + const int mode)
94080 +{
94081 + return 1;
94082 +}
94083 +
94084 +__u32
94085 +gr_acl_handle_mkdir(const struct dentry * new_dentry,
94086 + const struct dentry * parent_dentry,
94087 + const struct vfsmount * parent_mnt)
94088 +{
94089 + return 1;
94090 +}
94091 +
94092 +__u32
94093 +gr_acl_handle_symlink(const struct dentry * new_dentry,
94094 + const struct dentry * parent_dentry,
94095 + const struct vfsmount * parent_mnt, const struct filename *from)
94096 +{
94097 + return 1;
94098 +}
94099 +
94100 +__u32
94101 +gr_acl_handle_link(const struct dentry * new_dentry,
94102 + const struct dentry * parent_dentry,
94103 + const struct vfsmount * parent_mnt,
94104 + const struct dentry * old_dentry,
94105 + const struct vfsmount * old_mnt, const struct filename *to)
94106 +{
94107 + return 1;
94108 +}
94109 +
94110 +int
94111 +gr_acl_handle_rename(const struct dentry *new_dentry,
94112 + const struct dentry *parent_dentry,
94113 + const struct vfsmount *parent_mnt,
94114 + const struct dentry *old_dentry,
94115 + const struct inode *old_parent_inode,
94116 + const struct vfsmount *old_mnt, const struct filename *newname,
94117 + unsigned int flags)
94118 +{
94119 + return 0;
94120 +}
94121 +
94122 +int
94123 +gr_acl_handle_filldir(const struct file *file, const char *name,
94124 + const int namelen, const u64 ino)
94125 +{
94126 + return 1;
94127 +}
94128 +
94129 +int
94130 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
94131 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
94132 +{
94133 + return 1;
94134 +}
94135 +
94136 +int
94137 +gr_search_bind(const struct socket *sock, const struct sockaddr_in *addr)
94138 +{
94139 + return 0;
94140 +}
94141 +
94142 +int
94143 +gr_search_accept(const struct socket *sock)
94144 +{
94145 + return 0;
94146 +}
94147 +
94148 +int
94149 +gr_search_listen(const struct socket *sock)
94150 +{
94151 + return 0;
94152 +}
94153 +
94154 +int
94155 +gr_search_connect(const struct socket *sock, const struct sockaddr_in *addr)
94156 +{
94157 + return 0;
94158 +}
94159 +
94160 +__u32
94161 +gr_acl_handle_unix(const struct dentry * dentry, const struct vfsmount * mnt)
94162 +{
94163 + return 1;
94164 +}
94165 +
94166 +__u32
94167 +gr_acl_handle_creat(const struct dentry * dentry,
94168 + const struct dentry * p_dentry,
94169 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
94170 + const int imode)
94171 +{
94172 + return 1;
94173 +}
94174 +
94175 +void
94176 +gr_acl_handle_exit(void)
94177 +{
94178 + return;
94179 +}
94180 +
94181 +int
94182 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
94183 +{
94184 + return 1;
94185 +}
94186 +
94187 +void
94188 +gr_set_role_label(const kuid_t uid, const kgid_t gid)
94189 +{
94190 + return;
94191 +}
94192 +
94193 +int
94194 +gr_acl_handle_procpidmem(const struct task_struct *task)
94195 +{
94196 + return 0;
94197 +}
94198 +
94199 +int
94200 +gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb)
94201 +{
94202 + return 0;
94203 +}
94204 +
94205 +int
94206 +gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr)
94207 +{
94208 + return 0;
94209 +}
94210 +
94211 +int
94212 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
94213 +{
94214 + return 0;
94215 +}
94216 +
94217 +int
94218 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
94219 +{
94220 + return 0;
94221 +}
94222 +
94223 +int gr_acl_enable_at_secure(void)
94224 +{
94225 + return 0;
94226 +}
94227 +
94228 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
94229 +{
94230 + return d_backing_inode(dentry)->i_sb->s_dev;
94231 +}
94232 +
94233 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
94234 +{
94235 + return d_backing_inode(dentry)->i_ino;
94236 +}
94237 +
94238 +void gr_put_exec_file(struct task_struct *task)
94239 +{
94240 + return;
94241 +}
94242 +
94243 +#ifdef CONFIG_SECURITY
94244 +EXPORT_SYMBOL_GPL(gr_check_user_change);
94245 +EXPORT_SYMBOL_GPL(gr_check_group_change);
94246 +#endif
94247 diff --git a/grsecurity/grsec_exec.c b/grsecurity/grsec_exec.c
94248 new file mode 100644
94249 index 0000000..fb7531e
94250 --- /dev/null
94251 +++ b/grsecurity/grsec_exec.c
94252 @@ -0,0 +1,189 @@
94253 +#include <linux/kernel.h>
94254 +#include <linux/sched.h>
94255 +#include <linux/file.h>
94256 +#include <linux/binfmts.h>
94257 +#include <linux/fs.h>
94258 +#include <linux/types.h>
94259 +#include <linux/grdefs.h>
94260 +#include <linux/grsecurity.h>
94261 +#include <linux/grinternal.h>
94262 +#include <linux/capability.h>
94263 +#include <linux/module.h>
94264 +#include <linux/compat.h>
94265 +
94266 +#include <asm/uaccess.h>
94267 +
94268 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94269 +static char gr_exec_arg_buf[132];
94270 +static DEFINE_MUTEX(gr_exec_arg_mutex);
94271 +#endif
94272 +
94273 +struct user_arg_ptr {
94274 +#ifdef CONFIG_COMPAT
94275 + bool is_compat;
94276 +#endif
94277 + union {
94278 + const char __user *const __user *native;
94279 +#ifdef CONFIG_COMPAT
94280 + const compat_uptr_t __user *compat;
94281 +#endif
94282 + } ptr;
94283 +};
94284 +
94285 +extern const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr);
94286 +
94287 +void
94288 +gr_handle_exec_args(struct linux_binprm *bprm, struct user_arg_ptr argv)
94289 +{
94290 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94291 + char *grarg = gr_exec_arg_buf;
94292 + unsigned int i, x, execlen = 0;
94293 + char c;
94294 +
94295 + if (!((grsec_enable_execlog && grsec_enable_group &&
94296 + in_group_p(grsec_audit_gid))
94297 + || (grsec_enable_execlog && !grsec_enable_group)))
94298 + return;
94299 +
94300 + mutex_lock(&gr_exec_arg_mutex);
94301 + memset(grarg, 0, sizeof(gr_exec_arg_buf));
94302 +
94303 + for (i = 0; i < bprm->argc && execlen < 128; i++) {
94304 + const char __user *p;
94305 + unsigned int len;
94306 +
94307 + p = get_user_arg_ptr(argv, i);
94308 + if (IS_ERR(p))
94309 + goto log;
94310 +
94311 + len = strnlen_user(p, 128 - execlen);
94312 + if (len > 128 - execlen)
94313 + len = 128 - execlen;
94314 + else if (len > 0)
94315 + len--;
94316 + if (copy_from_user(grarg + execlen, p, len))
94317 + goto log;
94318 +
94319 + /* rewrite unprintable characters */
94320 + for (x = 0; x < len; x++) {
94321 + c = *(grarg + execlen + x);
94322 + if (c < 32 || c > 126)
94323 + *(grarg + execlen + x) = ' ';
94324 + }
94325 +
94326 + execlen += len;
94327 + *(grarg + execlen) = ' ';
94328 + *(grarg + execlen + 1) = '\0';
94329 + execlen++;
94330 + }
94331 +
94332 + log:
94333 + gr_log_fs_str(GR_DO_AUDIT, GR_EXEC_AUDIT_MSG, bprm->file->f_path.dentry,
94334 + bprm->file->f_path.mnt, grarg);
94335 + mutex_unlock(&gr_exec_arg_mutex);
94336 +#endif
94337 + return;
94338 +}
94339 +
94340 +#ifdef CONFIG_GRKERNSEC
94341 +extern int gr_acl_is_capable(const int cap);
94342 +extern int gr_acl_is_capable_nolog(const int cap);
94343 +extern int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
94344 +extern int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap);
94345 +extern int gr_chroot_is_capable(const int cap);
94346 +extern int gr_chroot_is_capable_nolog(const int cap);
94347 +extern int gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
94348 +extern int gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap);
94349 +#endif
94350 +
94351 +const char *captab_log[] = {
94352 + "CAP_CHOWN",
94353 + "CAP_DAC_OVERRIDE",
94354 + "CAP_DAC_READ_SEARCH",
94355 + "CAP_FOWNER",
94356 + "CAP_FSETID",
94357 + "CAP_KILL",
94358 + "CAP_SETGID",
94359 + "CAP_SETUID",
94360 + "CAP_SETPCAP",
94361 + "CAP_LINUX_IMMUTABLE",
94362 + "CAP_NET_BIND_SERVICE",
94363 + "CAP_NET_BROADCAST",
94364 + "CAP_NET_ADMIN",
94365 + "CAP_NET_RAW",
94366 + "CAP_IPC_LOCK",
94367 + "CAP_IPC_OWNER",
94368 + "CAP_SYS_MODULE",
94369 + "CAP_SYS_RAWIO",
94370 + "CAP_SYS_CHROOT",
94371 + "CAP_SYS_PTRACE",
94372 + "CAP_SYS_PACCT",
94373 + "CAP_SYS_ADMIN",
94374 + "CAP_SYS_BOOT",
94375 + "CAP_SYS_NICE",
94376 + "CAP_SYS_RESOURCE",
94377 + "CAP_SYS_TIME",
94378 + "CAP_SYS_TTY_CONFIG",
94379 + "CAP_MKNOD",
94380 + "CAP_LEASE",
94381 + "CAP_AUDIT_WRITE",
94382 + "CAP_AUDIT_CONTROL",
94383 + "CAP_SETFCAP",
94384 + "CAP_MAC_OVERRIDE",
94385 + "CAP_MAC_ADMIN",
94386 + "CAP_SYSLOG",
94387 + "CAP_WAKE_ALARM",
94388 + "CAP_BLOCK_SUSPEND",
94389 + "CAP_AUDIT_READ"
94390 +};
94391 +
94392 +int captab_log_entries = sizeof(captab_log)/sizeof(captab_log[0]);
94393 +
94394 +int gr_is_capable(const int cap)
94395 +{
94396 +#ifdef CONFIG_GRKERNSEC
94397 + if (gr_acl_is_capable(cap) && gr_chroot_is_capable(cap))
94398 + return 1;
94399 + return 0;
94400 +#else
94401 + return 1;
94402 +#endif
94403 +}
94404 +
94405 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
94406 +{
94407 +#ifdef CONFIG_GRKERNSEC
94408 + if (gr_task_acl_is_capable(task, cred, cap) && gr_task_chroot_is_capable(task, cred, cap))
94409 + return 1;
94410 + return 0;
94411 +#else
94412 + return 1;
94413 +#endif
94414 +}
94415 +
94416 +int gr_is_capable_nolog(const int cap)
94417 +{
94418 +#ifdef CONFIG_GRKERNSEC
94419 + if (gr_acl_is_capable_nolog(cap) && gr_chroot_is_capable_nolog(cap))
94420 + return 1;
94421 + return 0;
94422 +#else
94423 + return 1;
94424 +#endif
94425 +}
94426 +
94427 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap)
94428 +{
94429 +#ifdef CONFIG_GRKERNSEC
94430 + if (gr_task_acl_is_capable_nolog(task, cap) && gr_task_chroot_is_capable_nolog(task, cap))
94431 + return 1;
94432 + return 0;
94433 +#else
94434 + return 1;
94435 +#endif
94436 +}
94437 +
94438 +EXPORT_SYMBOL_GPL(gr_is_capable);
94439 +EXPORT_SYMBOL_GPL(gr_is_capable_nolog);
94440 +EXPORT_SYMBOL_GPL(gr_task_is_capable);
94441 +EXPORT_SYMBOL_GPL(gr_task_is_capable_nolog);
94442 diff --git a/grsecurity/grsec_fifo.c b/grsecurity/grsec_fifo.c
94443 new file mode 100644
94444 index 0000000..cdec49b
94445 --- /dev/null
94446 +++ b/grsecurity/grsec_fifo.c
94447 @@ -0,0 +1,26 @@
94448 +#include <linux/kernel.h>
94449 +#include <linux/sched.h>
94450 +#include <linux/fs.h>
94451 +#include <linux/file.h>
94452 +#include <linux/grinternal.h>
94453 +
94454 +int
94455 +gr_handle_fifo(const struct dentry *dentry, const struct vfsmount *mnt,
94456 + const struct dentry *dir, const int flag, const int acc_mode)
94457 +{
94458 +#ifdef CONFIG_GRKERNSEC_FIFO
94459 + const struct cred *cred = current_cred();
94460 + struct inode *inode = d_backing_inode(dentry);
94461 + struct inode *dir_inode = d_backing_inode(dir);
94462 +
94463 + if (grsec_enable_fifo && S_ISFIFO(inode->i_mode) &&
94464 + !(flag & O_EXCL) && (dir_inode->i_mode & S_ISVTX) &&
94465 + !uid_eq(inode->i_uid, dir_inode->i_uid) &&
94466 + !uid_eq(cred->fsuid, inode->i_uid)) {
94467 + if (!inode_permission(inode, acc_mode))
94468 + gr_log_fs_int2(GR_DONT_AUDIT, GR_FIFO_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
94469 + return -EACCES;
94470 + }
94471 +#endif
94472 + return 0;
94473 +}
94474 diff --git a/grsecurity/grsec_fork.c b/grsecurity/grsec_fork.c
94475 new file mode 100644
94476 index 0000000..8ca18bf
94477 --- /dev/null
94478 +++ b/grsecurity/grsec_fork.c
94479 @@ -0,0 +1,23 @@
94480 +#include <linux/kernel.h>
94481 +#include <linux/sched.h>
94482 +#include <linux/grsecurity.h>
94483 +#include <linux/grinternal.h>
94484 +#include <linux/errno.h>
94485 +
94486 +void
94487 +gr_log_forkfail(const int retval)
94488 +{
94489 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
94490 + if (grsec_enable_forkfail && (retval == -EAGAIN || retval == -ENOMEM)) {
94491 + switch (retval) {
94492 + case -EAGAIN:
94493 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "EAGAIN");
94494 + break;
94495 + case -ENOMEM:
94496 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "ENOMEM");
94497 + break;
94498 + }
94499 + }
94500 +#endif
94501 + return;
94502 +}
94503 diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
94504 new file mode 100644
94505 index 0000000..a364c58
94506 --- /dev/null
94507 +++ b/grsecurity/grsec_init.c
94508 @@ -0,0 +1,290 @@
94509 +#include <linux/kernel.h>
94510 +#include <linux/sched.h>
94511 +#include <linux/mm.h>
94512 +#include <linux/gracl.h>
94513 +#include <linux/slab.h>
94514 +#include <linux/vmalloc.h>
94515 +#include <linux/percpu.h>
94516 +#include <linux/module.h>
94517 +
94518 +int grsec_enable_ptrace_readexec __read_only;
94519 +int grsec_enable_setxid __read_only;
94520 +int grsec_enable_symlinkown __read_only;
94521 +kgid_t grsec_symlinkown_gid __read_only;
94522 +int grsec_enable_brute __read_only;
94523 +int grsec_enable_link __read_only;
94524 +int grsec_enable_dmesg __read_only;
94525 +int grsec_enable_harden_ptrace __read_only;
94526 +int grsec_enable_harden_ipc __read_only;
94527 +int grsec_enable_fifo __read_only;
94528 +int grsec_enable_execlog __read_only;
94529 +int grsec_enable_signal __read_only;
94530 +int grsec_enable_forkfail __read_only;
94531 +int grsec_enable_audit_ptrace __read_only;
94532 +int grsec_enable_time __read_only;
94533 +int grsec_enable_group __read_only;
94534 +kgid_t grsec_audit_gid __read_only;
94535 +int grsec_enable_chdir __read_only;
94536 +int grsec_enable_mount __read_only;
94537 +int grsec_enable_rofs __read_only;
94538 +int grsec_deny_new_usb __read_only;
94539 +int grsec_enable_chroot_findtask __read_only;
94540 +int grsec_enable_chroot_mount __read_only;
94541 +int grsec_enable_chroot_shmat __read_only;
94542 +int grsec_enable_chroot_fchdir __read_only;
94543 +int grsec_enable_chroot_double __read_only;
94544 +int grsec_enable_chroot_pivot __read_only;
94545 +int grsec_enable_chroot_chdir __read_only;
94546 +int grsec_enable_chroot_chmod __read_only;
94547 +int grsec_enable_chroot_mknod __read_only;
94548 +int grsec_enable_chroot_nice __read_only;
94549 +int grsec_enable_chroot_execlog __read_only;
94550 +int grsec_enable_chroot_caps __read_only;
94551 +int grsec_enable_chroot_rename __read_only;
94552 +int grsec_enable_chroot_sysctl __read_only;
94553 +int grsec_enable_chroot_unix __read_only;
94554 +int grsec_enable_tpe __read_only;
94555 +kgid_t grsec_tpe_gid __read_only;
94556 +int grsec_enable_blackhole __read_only;
94557 +#ifdef CONFIG_IPV6_MODULE
94558 +EXPORT_SYMBOL_GPL(grsec_enable_blackhole);
94559 +#endif
94560 +int grsec_lastack_retries __read_only;
94561 +int grsec_enable_tpe_all __read_only;
94562 +int grsec_enable_tpe_invert __read_only;
94563 +int grsec_enable_socket_all __read_only;
94564 +kgid_t grsec_socket_all_gid __read_only;
94565 +int grsec_enable_socket_client __read_only;
94566 +kgid_t grsec_socket_client_gid __read_only;
94567 +int grsec_enable_socket_server __read_only;
94568 +kgid_t grsec_socket_server_gid __read_only;
94569 +int grsec_resource_logging __read_only;
94570 +int grsec_disable_privio __read_only;
94571 +int grsec_enable_log_rwxmaps __read_only;
94572 +int grsec_lock __read_only;
94573 +
94574 +DEFINE_SPINLOCK(grsec_alert_lock);
94575 +unsigned long grsec_alert_wtime = 0;
94576 +unsigned long grsec_alert_fyet = 0;
94577 +
94578 +DEFINE_SPINLOCK(grsec_audit_lock);
94579 +
94580 +DEFINE_RWLOCK(grsec_exec_file_lock);
94581 +
94582 +char *gr_shared_page[4];
94583 +
94584 +char *gr_alert_log_fmt;
94585 +char *gr_audit_log_fmt;
94586 +char *gr_alert_log_buf;
94587 +char *gr_audit_log_buf;
94588 +
94589 +extern struct gr_arg *gr_usermode;
94590 +extern unsigned char *gr_system_salt;
94591 +extern unsigned char *gr_system_sum;
94592 +
94593 +void __init
94594 +grsecurity_init(void)
94595 +{
94596 + int j;
94597 + /* create the per-cpu shared pages */
94598 +
94599 +#ifdef CONFIG_X86
94600 + memset((char *)(0x41a + PAGE_OFFSET), 0, 36);
94601 +#endif
94602 +
94603 + for (j = 0; j < 4; j++) {
94604 + gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE, __alignof__(unsigned long long));
94605 + if (gr_shared_page[j] == NULL) {
94606 + panic("Unable to allocate grsecurity shared page");
94607 + return;
94608 + }
94609 + }
94610 +
94611 + /* allocate log buffers */
94612 + gr_alert_log_fmt = kmalloc(512, GFP_KERNEL);
94613 + if (!gr_alert_log_fmt) {
94614 + panic("Unable to allocate grsecurity alert log format buffer");
94615 + return;
94616 + }
94617 + gr_audit_log_fmt = kmalloc(512, GFP_KERNEL);
94618 + if (!gr_audit_log_fmt) {
94619 + panic("Unable to allocate grsecurity audit log format buffer");
94620 + return;
94621 + }
94622 + gr_alert_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
94623 + if (!gr_alert_log_buf) {
94624 + panic("Unable to allocate grsecurity alert log buffer");
94625 + return;
94626 + }
94627 + gr_audit_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
94628 + if (!gr_audit_log_buf) {
94629 + panic("Unable to allocate grsecurity audit log buffer");
94630 + return;
94631 + }
94632 +
94633 + /* allocate memory for authentication structure */
94634 + gr_usermode = kmalloc(sizeof(struct gr_arg), GFP_KERNEL);
94635 + gr_system_salt = kmalloc(GR_SALT_LEN, GFP_KERNEL);
94636 + gr_system_sum = kmalloc(GR_SHA_LEN, GFP_KERNEL);
94637 +
94638 + if (!gr_usermode || !gr_system_salt || !gr_system_sum) {
94639 + panic("Unable to allocate grsecurity authentication structure");
94640 + return;
94641 + }
94642 +
94643 +#ifdef CONFIG_GRKERNSEC_IO
94644 +#if !defined(CONFIG_GRKERNSEC_SYSCTL_DISTRO)
94645 + grsec_disable_privio = 1;
94646 +#elif defined(CONFIG_GRKERNSEC_SYSCTL_ON)
94647 + grsec_disable_privio = 1;
94648 +#else
94649 + grsec_disable_privio = 0;
94650 +#endif
94651 +#endif
94652 +
94653 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
94654 + /* for backward compatibility, tpe_invert always defaults to on if
94655 + enabled in the kernel
94656 + */
94657 + grsec_enable_tpe_invert = 1;
94658 +#endif
94659 +
94660 +#if !defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_SYSCTL_ON)
94661 +#ifndef CONFIG_GRKERNSEC_SYSCTL
94662 + grsec_lock = 1;
94663 +#endif
94664 +
94665 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94666 + grsec_enable_log_rwxmaps = 1;
94667 +#endif
94668 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
94669 + grsec_enable_group = 1;
94670 + grsec_audit_gid = KGIDT_INIT(CONFIG_GRKERNSEC_AUDIT_GID);
94671 +#endif
94672 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
94673 + grsec_enable_ptrace_readexec = 1;
94674 +#endif
94675 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
94676 + grsec_enable_chdir = 1;
94677 +#endif
94678 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
94679 + grsec_enable_harden_ptrace = 1;
94680 +#endif
94681 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
94682 + grsec_enable_harden_ipc = 1;
94683 +#endif
94684 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
94685 + grsec_enable_mount = 1;
94686 +#endif
94687 +#ifdef CONFIG_GRKERNSEC_LINK
94688 + grsec_enable_link = 1;
94689 +#endif
94690 +#ifdef CONFIG_GRKERNSEC_BRUTE
94691 + grsec_enable_brute = 1;
94692 +#endif
94693 +#ifdef CONFIG_GRKERNSEC_DMESG
94694 + grsec_enable_dmesg = 1;
94695 +#endif
94696 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
94697 + grsec_enable_blackhole = 1;
94698 + grsec_lastack_retries = 4;
94699 +#endif
94700 +#ifdef CONFIG_GRKERNSEC_FIFO
94701 + grsec_enable_fifo = 1;
94702 +#endif
94703 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94704 + grsec_enable_execlog = 1;
94705 +#endif
94706 +#ifdef CONFIG_GRKERNSEC_SETXID
94707 + grsec_enable_setxid = 1;
94708 +#endif
94709 +#ifdef CONFIG_GRKERNSEC_SIGNAL
94710 + grsec_enable_signal = 1;
94711 +#endif
94712 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
94713 + grsec_enable_forkfail = 1;
94714 +#endif
94715 +#ifdef CONFIG_GRKERNSEC_TIME
94716 + grsec_enable_time = 1;
94717 +#endif
94718 +#ifdef CONFIG_GRKERNSEC_RESLOG
94719 + grsec_resource_logging = 1;
94720 +#endif
94721 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
94722 + grsec_enable_chroot_findtask = 1;
94723 +#endif
94724 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
94725 + grsec_enable_chroot_unix = 1;
94726 +#endif
94727 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
94728 + grsec_enable_chroot_mount = 1;
94729 +#endif
94730 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
94731 + grsec_enable_chroot_fchdir = 1;
94732 +#endif
94733 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
94734 + grsec_enable_chroot_shmat = 1;
94735 +#endif
94736 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
94737 + grsec_enable_audit_ptrace = 1;
94738 +#endif
94739 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
94740 + grsec_enable_chroot_double = 1;
94741 +#endif
94742 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
94743 + grsec_enable_chroot_pivot = 1;
94744 +#endif
94745 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
94746 + grsec_enable_chroot_chdir = 1;
94747 +#endif
94748 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
94749 + grsec_enable_chroot_chmod = 1;
94750 +#endif
94751 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
94752 + grsec_enable_chroot_mknod = 1;
94753 +#endif
94754 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
94755 + grsec_enable_chroot_nice = 1;
94756 +#endif
94757 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
94758 + grsec_enable_chroot_execlog = 1;
94759 +#endif
94760 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
94761 + grsec_enable_chroot_caps = 1;
94762 +#endif
94763 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
94764 + grsec_enable_chroot_rename = 1;
94765 +#endif
94766 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
94767 + grsec_enable_chroot_sysctl = 1;
94768 +#endif
94769 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94770 + grsec_enable_symlinkown = 1;
94771 + grsec_symlinkown_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SYMLINKOWN_GID);
94772 +#endif
94773 +#ifdef CONFIG_GRKERNSEC_TPE
94774 + grsec_enable_tpe = 1;
94775 + grsec_tpe_gid = KGIDT_INIT(CONFIG_GRKERNSEC_TPE_GID);
94776 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
94777 + grsec_enable_tpe_all = 1;
94778 +#endif
94779 +#endif
94780 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
94781 + grsec_enable_socket_all = 1;
94782 + grsec_socket_all_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_ALL_GID);
94783 +#endif
94784 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
94785 + grsec_enable_socket_client = 1;
94786 + grsec_socket_client_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_CLIENT_GID);
94787 +#endif
94788 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
94789 + grsec_enable_socket_server = 1;
94790 + grsec_socket_server_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_SERVER_GID);
94791 +#endif
94792 +#endif
94793 +#ifdef CONFIG_GRKERNSEC_DENYUSB_FORCE
94794 + grsec_deny_new_usb = 1;
94795 +#endif
94796 +
94797 + return;
94798 +}
94799 diff --git a/grsecurity/grsec_ipc.c b/grsecurity/grsec_ipc.c
94800 new file mode 100644
94801 index 0000000..1773300
94802 --- /dev/null
94803 +++ b/grsecurity/grsec_ipc.c
94804 @@ -0,0 +1,48 @@
94805 +#include <linux/kernel.h>
94806 +#include <linux/mm.h>
94807 +#include <linux/sched.h>
94808 +#include <linux/file.h>
94809 +#include <linux/ipc.h>
94810 +#include <linux/ipc_namespace.h>
94811 +#include <linux/grsecurity.h>
94812 +#include <linux/grinternal.h>
94813 +
94814 +int
94815 +gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode)
94816 +{
94817 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
94818 + int write;
94819 + int orig_granted_mode;
94820 + kuid_t euid;
94821 + kgid_t egid;
94822 +
94823 + if (!grsec_enable_harden_ipc)
94824 + return 1;
94825 +
94826 + euid = current_euid();
94827 + egid = current_egid();
94828 +
94829 + write = requested_mode & 00002;
94830 + orig_granted_mode = ipcp->mode;
94831 +
94832 + if (uid_eq(euid, ipcp->cuid) || uid_eq(euid, ipcp->uid))
94833 + orig_granted_mode >>= 6;
94834 + else {
94835 + /* if likely wrong permissions, lock to user */
94836 + if (orig_granted_mode & 0007)
94837 + orig_granted_mode = 0;
94838 + /* otherwise do a egid-only check */
94839 + else if (gid_eq(egid, ipcp->cgid) || gid_eq(egid, ipcp->gid))
94840 + orig_granted_mode >>= 3;
94841 + /* otherwise, no access */
94842 + else
94843 + orig_granted_mode = 0;
94844 + }
94845 + if (!(requested_mode & ~granted_mode & 0007) && (requested_mode & ~orig_granted_mode & 0007) &&
94846 + !ns_capable_nolog(ns->user_ns, CAP_IPC_OWNER)) {
94847 + gr_log_str_int(GR_DONT_AUDIT, GR_IPC_DENIED_MSG, write ? "write" : "read", GR_GLOBAL_UID(ipcp->cuid));
94848 + return 0;
94849 + }
94850 +#endif
94851 + return 1;
94852 +}
94853 diff --git a/grsecurity/grsec_link.c b/grsecurity/grsec_link.c
94854 new file mode 100644
94855 index 0000000..84c44a0
94856 --- /dev/null
94857 +++ b/grsecurity/grsec_link.c
94858 @@ -0,0 +1,65 @@
94859 +#include <linux/kernel.h>
94860 +#include <linux/sched.h>
94861 +#include <linux/fs.h>
94862 +#include <linux/file.h>
94863 +#include <linux/grinternal.h>
94864 +
94865 +int gr_get_symlinkown_enabled(void)
94866 +{
94867 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94868 + if (grsec_enable_symlinkown && in_group_p(grsec_symlinkown_gid))
94869 + return 1;
94870 +#endif
94871 + return 0;
94872 +}
94873 +
94874 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target)
94875 +{
94876 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94877 + const struct inode *link_inode = d_backing_inode(link->dentry);
94878 +
94879 + if (target && !uid_eq(link_inode->i_uid, target->i_uid)) {
94880 + 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));
94881 + return 1;
94882 + }
94883 +#endif
94884 + return 0;
94885 +}
94886 +
94887 +int
94888 +gr_handle_follow_link(const struct dentry *dentry, const struct vfsmount *mnt)
94889 +{
94890 +#ifdef CONFIG_GRKERNSEC_LINK
94891 + struct inode *inode = d_backing_inode(dentry);
94892 + struct inode *parent = d_backing_inode(dentry->d_parent);
94893 + const struct cred *cred = current_cred();
94894 +
94895 + if (grsec_enable_link && d_is_symlink(dentry) &&
94896 + (parent->i_mode & S_ISVTX) && !uid_eq(parent->i_uid, inode->i_uid) &&
94897 + (parent->i_mode & S_IWOTH) && !uid_eq(cred->fsuid, inode->i_uid)) {
94898 + gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINK_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
94899 + return -EACCES;
94900 + }
94901 +#endif
94902 + return 0;
94903 +}
94904 +
94905 +int
94906 +gr_handle_hardlink(const struct dentry *dentry,
94907 + const struct vfsmount *mnt,
94908 + const struct filename *to)
94909 +{
94910 +#ifdef CONFIG_GRKERNSEC_LINK
94911 + struct inode *inode = d_backing_inode(dentry);
94912 + const struct cred *cred = current_cred();
94913 +
94914 + if (grsec_enable_link && !uid_eq(cred->fsuid, inode->i_uid) &&
94915 + (!d_is_reg(dentry) || is_privileged_binary(dentry) ||
94916 + (inode_permission(inode, MAY_READ | MAY_WRITE))) &&
94917 + !capable(CAP_FOWNER) && gr_is_global_nonroot(cred->uid)) {
94918 + 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);
94919 + return -EPERM;
94920 + }
94921 +#endif
94922 + return 0;
94923 +}
94924 diff --git a/grsecurity/grsec_log.c b/grsecurity/grsec_log.c
94925 new file mode 100644
94926 index 0000000..a24b338
94927 --- /dev/null
94928 +++ b/grsecurity/grsec_log.c
94929 @@ -0,0 +1,340 @@
94930 +#include <linux/kernel.h>
94931 +#include <linux/sched.h>
94932 +#include <linux/file.h>
94933 +#include <linux/tty.h>
94934 +#include <linux/fs.h>
94935 +#include <linux/mm.h>
94936 +#include <linux/grinternal.h>
94937 +
94938 +#ifdef CONFIG_TREE_PREEMPT_RCU
94939 +#define DISABLE_PREEMPT() preempt_disable()
94940 +#define ENABLE_PREEMPT() preempt_enable()
94941 +#else
94942 +#define DISABLE_PREEMPT()
94943 +#define ENABLE_PREEMPT()
94944 +#endif
94945 +
94946 +#define BEGIN_LOCKS(x) \
94947 + DISABLE_PREEMPT(); \
94948 + rcu_read_lock(); \
94949 + read_lock(&tasklist_lock); \
94950 + read_lock(&grsec_exec_file_lock); \
94951 + if (x != GR_DO_AUDIT) \
94952 + spin_lock(&grsec_alert_lock); \
94953 + else \
94954 + spin_lock(&grsec_audit_lock)
94955 +
94956 +#define END_LOCKS(x) \
94957 + if (x != GR_DO_AUDIT) \
94958 + spin_unlock(&grsec_alert_lock); \
94959 + else \
94960 + spin_unlock(&grsec_audit_lock); \
94961 + read_unlock(&grsec_exec_file_lock); \
94962 + read_unlock(&tasklist_lock); \
94963 + rcu_read_unlock(); \
94964 + ENABLE_PREEMPT(); \
94965 + if (x == GR_DONT_AUDIT) \
94966 + gr_handle_alertkill(current)
94967 +
94968 +enum {
94969 + FLOODING,
94970 + NO_FLOODING
94971 +};
94972 +
94973 +extern char *gr_alert_log_fmt;
94974 +extern char *gr_audit_log_fmt;
94975 +extern char *gr_alert_log_buf;
94976 +extern char *gr_audit_log_buf;
94977 +
94978 +static int gr_log_start(int audit)
94979 +{
94980 + char *loglevel = (audit == GR_DO_AUDIT) ? KERN_INFO : KERN_ALERT;
94981 + char *fmt = (audit == GR_DO_AUDIT) ? gr_audit_log_fmt : gr_alert_log_fmt;
94982 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94983 +#if (CONFIG_GRKERNSEC_FLOODTIME > 0 && CONFIG_GRKERNSEC_FLOODBURST > 0)
94984 + unsigned long curr_secs = get_seconds();
94985 +
94986 + if (audit == GR_DO_AUDIT)
94987 + goto set_fmt;
94988 +
94989 + if (!grsec_alert_wtime || time_after(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)) {
94990 + grsec_alert_wtime = curr_secs;
94991 + grsec_alert_fyet = 0;
94992 + } else if (time_before_eq(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)
94993 + && (grsec_alert_fyet < CONFIG_GRKERNSEC_FLOODBURST)) {
94994 + grsec_alert_fyet++;
94995 + } else if (grsec_alert_fyet == CONFIG_GRKERNSEC_FLOODBURST) {
94996 + grsec_alert_wtime = curr_secs;
94997 + grsec_alert_fyet++;
94998 + printk(KERN_ALERT "grsec: more alerts, logging disabled for %d seconds\n", CONFIG_GRKERNSEC_FLOODTIME);
94999 + return FLOODING;
95000 + }
95001 + else return FLOODING;
95002 +
95003 +set_fmt:
95004 +#endif
95005 + memset(buf, 0, PAGE_SIZE);
95006 + if (current->signal->curr_ip && gr_acl_is_enabled()) {
95007 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: (%.64s:%c:%.950s) ");
95008 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
95009 + } else if (current->signal->curr_ip) {
95010 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: ");
95011 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip);
95012 + } else if (gr_acl_is_enabled()) {
95013 + sprintf(fmt, "%s%s", loglevel, "grsec: (%.64s:%c:%.950s) ");
95014 + snprintf(buf, PAGE_SIZE - 1, fmt, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
95015 + } else {
95016 + sprintf(fmt, "%s%s", loglevel, "grsec: ");
95017 + strcpy(buf, fmt);
95018 + }
95019 +
95020 + return NO_FLOODING;
95021 +}
95022 +
95023 +static void gr_log_middle(int audit, const char *msg, va_list ap)
95024 + __attribute__ ((format (printf, 2, 0)));
95025 +
95026 +static void gr_log_middle(int audit, const char *msg, va_list ap)
95027 +{
95028 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
95029 + unsigned int len = strlen(buf);
95030 +
95031 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
95032 +
95033 + return;
95034 +}
95035 +
95036 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
95037 + __attribute__ ((format (printf, 2, 3)));
95038 +
95039 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
95040 +{
95041 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
95042 + unsigned int len = strlen(buf);
95043 + va_list ap;
95044 +
95045 + va_start(ap, msg);
95046 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
95047 + va_end(ap);
95048 +
95049 + return;
95050 +}
95051 +
95052 +static void gr_log_end(int audit, int append_default)
95053 +{
95054 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
95055 + if (append_default) {
95056 + struct task_struct *task = current;
95057 + struct task_struct *parent = task->real_parent;
95058 + const struct cred *cred = __task_cred(task);
95059 + const struct cred *pcred = __task_cred(parent);
95060 + unsigned int len = strlen(buf);
95061 +
95062 + 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));
95063 + }
95064 +
95065 + printk("%s\n", buf);
95066 +
95067 + return;
95068 +}
95069 +
95070 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...)
95071 +{
95072 + int logtype;
95073 + char *result = (audit == GR_DO_AUDIT) ? "successful" : "denied";
95074 + char *str1 = NULL, *str2 = NULL, *str3 = NULL;
95075 + void *voidptr = NULL;
95076 + int num1 = 0, num2 = 0;
95077 + unsigned long ulong1 = 0, ulong2 = 0;
95078 + struct dentry *dentry = NULL;
95079 + struct vfsmount *mnt = NULL;
95080 + struct file *file = NULL;
95081 + struct task_struct *task = NULL;
95082 + struct vm_area_struct *vma = NULL;
95083 + const struct cred *cred, *pcred;
95084 + va_list ap;
95085 +
95086 + BEGIN_LOCKS(audit);
95087 + logtype = gr_log_start(audit);
95088 + if (logtype == FLOODING) {
95089 + END_LOCKS(audit);
95090 + return;
95091 + }
95092 + va_start(ap, argtypes);
95093 + switch (argtypes) {
95094 + case GR_TTYSNIFF:
95095 + task = va_arg(ap, struct task_struct *);
95096 + 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));
95097 + break;
95098 + case GR_SYSCTL_HIDDEN:
95099 + str1 = va_arg(ap, char *);
95100 + gr_log_middle_varargs(audit, msg, result, str1);
95101 + break;
95102 + case GR_RBAC:
95103 + dentry = va_arg(ap, struct dentry *);
95104 + mnt = va_arg(ap, struct vfsmount *);
95105 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt));
95106 + break;
95107 + case GR_RBAC_STR:
95108 + dentry = va_arg(ap, struct dentry *);
95109 + mnt = va_arg(ap, struct vfsmount *);
95110 + str1 = va_arg(ap, char *);
95111 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1);
95112 + break;
95113 + case GR_STR_RBAC:
95114 + str1 = va_arg(ap, char *);
95115 + dentry = va_arg(ap, struct dentry *);
95116 + mnt = va_arg(ap, struct vfsmount *);
95117 + gr_log_middle_varargs(audit, msg, result, str1, gr_to_filename(dentry, mnt));
95118 + break;
95119 + case GR_RBAC_MODE2:
95120 + dentry = va_arg(ap, struct dentry *);
95121 + mnt = va_arg(ap, struct vfsmount *);
95122 + str1 = va_arg(ap, char *);
95123 + str2 = va_arg(ap, char *);
95124 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2);
95125 + break;
95126 + case GR_RBAC_MODE3:
95127 + dentry = va_arg(ap, struct dentry *);
95128 + mnt = va_arg(ap, struct vfsmount *);
95129 + str1 = va_arg(ap, char *);
95130 + str2 = va_arg(ap, char *);
95131 + str3 = va_arg(ap, char *);
95132 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2, str3);
95133 + break;
95134 + case GR_FILENAME:
95135 + dentry = va_arg(ap, struct dentry *);
95136 + mnt = va_arg(ap, struct vfsmount *);
95137 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt));
95138 + break;
95139 + case GR_STR_FILENAME:
95140 + str1 = va_arg(ap, char *);
95141 + dentry = va_arg(ap, struct dentry *);
95142 + mnt = va_arg(ap, struct vfsmount *);
95143 + gr_log_middle_varargs(audit, msg, str1, gr_to_filename(dentry, mnt));
95144 + break;
95145 + case GR_FILENAME_STR:
95146 + dentry = va_arg(ap, struct dentry *);
95147 + mnt = va_arg(ap, struct vfsmount *);
95148 + str1 = va_arg(ap, char *);
95149 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), str1);
95150 + break;
95151 + case GR_FILENAME_TWO_INT:
95152 + dentry = va_arg(ap, struct dentry *);
95153 + mnt = va_arg(ap, struct vfsmount *);
95154 + num1 = va_arg(ap, int);
95155 + num2 = va_arg(ap, int);
95156 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2);
95157 + break;
95158 + case GR_FILENAME_TWO_INT_STR:
95159 + dentry = va_arg(ap, struct dentry *);
95160 + mnt = va_arg(ap, struct vfsmount *);
95161 + num1 = va_arg(ap, int);
95162 + num2 = va_arg(ap, int);
95163 + str1 = va_arg(ap, char *);
95164 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2, str1);
95165 + break;
95166 + case GR_TEXTREL:
95167 + str1 = va_arg(ap, char *);
95168 + file = va_arg(ap, struct file *);
95169 + ulong1 = va_arg(ap, unsigned long);
95170 + ulong2 = va_arg(ap, unsigned long);
95171 + gr_log_middle_varargs(audit, msg, str1, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>", ulong1, ulong2);
95172 + break;
95173 + case GR_PTRACE:
95174 + task = va_arg(ap, struct task_struct *);
95175 + 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));
95176 + break;
95177 + case GR_RESOURCE:
95178 + task = va_arg(ap, struct task_struct *);
95179 + cred = __task_cred(task);
95180 + pcred = __task_cred(task->real_parent);
95181 + ulong1 = va_arg(ap, unsigned long);
95182 + str1 = va_arg(ap, char *);
95183 + ulong2 = va_arg(ap, unsigned long);
95184 + 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));
95185 + break;
95186 + case GR_CAP:
95187 + task = va_arg(ap, struct task_struct *);
95188 + cred = __task_cred(task);
95189 + pcred = __task_cred(task->real_parent);
95190 + str1 = va_arg(ap, char *);
95191 + 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));
95192 + break;
95193 + case GR_SIG:
95194 + str1 = va_arg(ap, char *);
95195 + voidptr = va_arg(ap, void *);
95196 + gr_log_middle_varargs(audit, msg, str1, voidptr);
95197 + break;
95198 + case GR_SIG2:
95199 + task = va_arg(ap, struct task_struct *);
95200 + cred = __task_cred(task);
95201 + pcred = __task_cred(task->real_parent);
95202 + num1 = va_arg(ap, int);
95203 + 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));
95204 + break;
95205 + case GR_CRASH1:
95206 + task = va_arg(ap, struct task_struct *);
95207 + cred = __task_cred(task);
95208 + pcred = __task_cred(task->real_parent);
95209 + ulong1 = va_arg(ap, unsigned long);
95210 + 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);
95211 + break;
95212 + case GR_CRASH2:
95213 + task = va_arg(ap, struct task_struct *);
95214 + cred = __task_cred(task);
95215 + pcred = __task_cred(task->real_parent);
95216 + ulong1 = va_arg(ap, unsigned long);
95217 + 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);
95218 + break;
95219 + case GR_RWXMAP:
95220 + file = va_arg(ap, struct file *);
95221 + gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>");
95222 + break;
95223 + case GR_RWXMAPVMA:
95224 + vma = va_arg(ap, struct vm_area_struct *);
95225 + if (vma->vm_file)
95226 + str1 = gr_to_filename(vma->vm_file->f_path.dentry, vma->vm_file->f_path.mnt);
95227 + else if (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
95228 + str1 = "<stack>";
95229 + else if (vma->vm_start <= current->mm->brk &&
95230 + vma->vm_end >= current->mm->start_brk)
95231 + str1 = "<heap>";
95232 + else
95233 + str1 = "<anonymous mapping>";
95234 + gr_log_middle_varargs(audit, msg, str1);
95235 + break;
95236 + case GR_PSACCT:
95237 + {
95238 + unsigned int wday, cday;
95239 + __u8 whr, chr;
95240 + __u8 wmin, cmin;
95241 + __u8 wsec, csec;
95242 +
95243 + task = va_arg(ap, struct task_struct *);
95244 + wday = va_arg(ap, unsigned int);
95245 + cday = va_arg(ap, unsigned int);
95246 + whr = va_arg(ap, int);
95247 + chr = va_arg(ap, int);
95248 + wmin = va_arg(ap, int);
95249 + cmin = va_arg(ap, int);
95250 + wsec = va_arg(ap, int);
95251 + csec = va_arg(ap, int);
95252 + ulong1 = va_arg(ap, unsigned long);
95253 + cred = __task_cred(task);
95254 + pcred = __task_cred(task->real_parent);
95255 +
95256 + 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));
95257 + }
95258 + break;
95259 + default:
95260 + gr_log_middle(audit, msg, ap);
95261 + }
95262 + va_end(ap);
95263 + // these don't need DEFAULTSECARGS printed on the end
95264 + if (argtypes == GR_CRASH1 || argtypes == GR_CRASH2)
95265 + gr_log_end(audit, 0);
95266 + else
95267 + gr_log_end(audit, 1);
95268 + END_LOCKS(audit);
95269 +}
95270 diff --git a/grsecurity/grsec_mem.c b/grsecurity/grsec_mem.c
95271 new file mode 100644
95272 index 0000000..0e39d8c
95273 --- /dev/null
95274 +++ b/grsecurity/grsec_mem.c
95275 @@ -0,0 +1,48 @@
95276 +#include <linux/kernel.h>
95277 +#include <linux/sched.h>
95278 +#include <linux/mm.h>
95279 +#include <linux/mman.h>
95280 +#include <linux/module.h>
95281 +#include <linux/grinternal.h>
95282 +
95283 +void gr_handle_msr_write(void)
95284 +{
95285 + gr_log_noargs(GR_DONT_AUDIT, GR_MSRWRITE_MSG);
95286 + return;
95287 +}
95288 +EXPORT_SYMBOL_GPL(gr_handle_msr_write);
95289 +
95290 +void
95291 +gr_handle_ioperm(void)
95292 +{
95293 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPERM_MSG);
95294 + return;
95295 +}
95296 +
95297 +void
95298 +gr_handle_iopl(void)
95299 +{
95300 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPL_MSG);
95301 + return;
95302 +}
95303 +
95304 +void
95305 +gr_handle_mem_readwrite(u64 from, u64 to)
95306 +{
95307 + gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to);
95308 + return;
95309 +}
95310 +
95311 +void
95312 +gr_handle_vm86(void)
95313 +{
95314 + gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
95315 + return;
95316 +}
95317 +
95318 +void
95319 +gr_log_badprocpid(const char *entry)
95320 +{
95321 + gr_log_str(GR_DONT_AUDIT, GR_BADPROCPID_MSG, entry);
95322 + return;
95323 +}
95324 diff --git a/grsecurity/grsec_mount.c b/grsecurity/grsec_mount.c
95325 new file mode 100644
95326 index 0000000..fe02bf4
95327 --- /dev/null
95328 +++ b/grsecurity/grsec_mount.c
95329 @@ -0,0 +1,65 @@
95330 +#include <linux/kernel.h>
95331 +#include <linux/sched.h>
95332 +#include <linux/mount.h>
95333 +#include <linux/major.h>
95334 +#include <linux/grsecurity.h>
95335 +#include <linux/grinternal.h>
95336 +
95337 +void
95338 +gr_log_remount(const char *devname, const int retval)
95339 +{
95340 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95341 + if (grsec_enable_mount && (retval >= 0))
95342 + gr_log_str(GR_DO_AUDIT, GR_REMOUNT_AUDIT_MSG, devname ? devname : "none");
95343 +#endif
95344 + return;
95345 +}
95346 +
95347 +void
95348 +gr_log_unmount(const char *devname, const int retval)
95349 +{
95350 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95351 + if (grsec_enable_mount && (retval >= 0))
95352 + gr_log_str(GR_DO_AUDIT, GR_UNMOUNT_AUDIT_MSG, devname ? devname : "none");
95353 +#endif
95354 + return;
95355 +}
95356 +
95357 +void
95358 +gr_log_mount(const char *from, struct path *to, const int retval)
95359 +{
95360 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95361 + if (grsec_enable_mount && (retval >= 0))
95362 + gr_log_str_fs(GR_DO_AUDIT, GR_MOUNT_AUDIT_MSG, from ? from : "none", to->dentry, to->mnt);
95363 +#endif
95364 + return;
95365 +}
95366 +
95367 +int
95368 +gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags)
95369 +{
95370 +#ifdef CONFIG_GRKERNSEC_ROFS
95371 + if (grsec_enable_rofs && !(mnt_flags & MNT_READONLY)) {
95372 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_MOUNT_MSG, dentry, mnt);
95373 + return -EPERM;
95374 + } else
95375 + return 0;
95376 +#endif
95377 + return 0;
95378 +}
95379 +
95380 +int
95381 +gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode)
95382 +{
95383 +#ifdef CONFIG_GRKERNSEC_ROFS
95384 + struct inode *inode = d_backing_inode(dentry);
95385 +
95386 + if (grsec_enable_rofs && (acc_mode & MAY_WRITE) &&
95387 + inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR))) {
95388 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_BLOCKWRITE_MSG, dentry, mnt);
95389 + return -EPERM;
95390 + } else
95391 + return 0;
95392 +#endif
95393 + return 0;
95394 +}
95395 diff --git a/grsecurity/grsec_pax.c b/grsecurity/grsec_pax.c
95396 new file mode 100644
95397 index 0000000..2ad7b96
95398 --- /dev/null
95399 +++ b/grsecurity/grsec_pax.c
95400 @@ -0,0 +1,47 @@
95401 +#include <linux/kernel.h>
95402 +#include <linux/sched.h>
95403 +#include <linux/mm.h>
95404 +#include <linux/file.h>
95405 +#include <linux/grinternal.h>
95406 +#include <linux/grsecurity.h>
95407 +
95408 +void
95409 +gr_log_textrel(struct vm_area_struct * vma, bool is_textrel_rw)
95410 +{
95411 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95412 + if (grsec_enable_log_rwxmaps)
95413 + gr_log_textrel_ulong_ulong(GR_DONT_AUDIT, GR_TEXTREL_AUDIT_MSG,
95414 + is_textrel_rw ? "executable to writable" : "writable to executable",
95415 + vma->vm_file, vma->vm_start, vma->vm_pgoff);
95416 +#endif
95417 + return;
95418 +}
95419 +
95420 +void gr_log_ptgnustack(struct file *file)
95421 +{
95422 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95423 + if (grsec_enable_log_rwxmaps)
95424 + gr_log_rwxmap(GR_DONT_AUDIT, GR_PTGNUSTACK_MSG, file);
95425 +#endif
95426 + return;
95427 +}
95428 +
95429 +void
95430 +gr_log_rwxmmap(struct file *file)
95431 +{
95432 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95433 + if (grsec_enable_log_rwxmaps)
95434 + gr_log_rwxmap(GR_DONT_AUDIT, GR_RWXMMAP_MSG, file);
95435 +#endif
95436 + return;
95437 +}
95438 +
95439 +void
95440 +gr_log_rwxmprotect(struct vm_area_struct *vma)
95441 +{
95442 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95443 + if (grsec_enable_log_rwxmaps)
95444 + gr_log_rwxmap_vma(GR_DONT_AUDIT, GR_RWXMPROTECT_MSG, vma);
95445 +#endif
95446 + return;
95447 +}
95448 diff --git a/grsecurity/grsec_proc.c b/grsecurity/grsec_proc.c
95449 new file mode 100644
95450 index 0000000..2005a3a
95451 --- /dev/null
95452 +++ b/grsecurity/grsec_proc.c
95453 @@ -0,0 +1,20 @@
95454 +#include <linux/kernel.h>
95455 +#include <linux/sched.h>
95456 +#include <linux/grsecurity.h>
95457 +#include <linux/grinternal.h>
95458 +
95459 +int gr_proc_is_restricted(void)
95460 +{
95461 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
95462 + const struct cred *cred = current_cred();
95463 +#endif
95464 +
95465 +#ifdef CONFIG_GRKERNSEC_PROC_USER
95466 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID))
95467 + return -EACCES;
95468 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
95469 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID) && !in_group_p(grsec_proc_gid))
95470 + return -EACCES;
95471 +#endif
95472 + return 0;
95473 +}
95474 diff --git a/grsecurity/grsec_ptrace.c b/grsecurity/grsec_ptrace.c
95475 new file mode 100644
95476 index 0000000..304c518
95477 --- /dev/null
95478 +++ b/grsecurity/grsec_ptrace.c
95479 @@ -0,0 +1,30 @@
95480 +#include <linux/kernel.h>
95481 +#include <linux/sched.h>
95482 +#include <linux/grinternal.h>
95483 +#include <linux/security.h>
95484 +
95485 +void
95486 +gr_audit_ptrace(struct task_struct *task)
95487 +{
95488 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
95489 + if (grsec_enable_audit_ptrace)
95490 + gr_log_ptrace(GR_DO_AUDIT, GR_PTRACE_AUDIT_MSG, task);
95491 +#endif
95492 + return;
95493 +}
95494 +
95495 +int
95496 +gr_ptrace_readexec(struct file *file, int unsafe_flags)
95497 +{
95498 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
95499 + const struct dentry *dentry = file->f_path.dentry;
95500 + const struct vfsmount *mnt = file->f_path.mnt;
95501 +
95502 + if (grsec_enable_ptrace_readexec && (unsafe_flags & LSM_UNSAFE_PTRACE) &&
95503 + (inode_permission(d_backing_inode(dentry), MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
95504 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_READEXEC_MSG, dentry, mnt);
95505 + return -EACCES;
95506 + }
95507 +#endif
95508 + return 0;
95509 +}
95510 diff --git a/grsecurity/grsec_sig.c b/grsecurity/grsec_sig.c
95511 new file mode 100644
95512 index 0000000..3860c7e
95513 --- /dev/null
95514 +++ b/grsecurity/grsec_sig.c
95515 @@ -0,0 +1,236 @@
95516 +#include <linux/kernel.h>
95517 +#include <linux/sched.h>
95518 +#include <linux/fs.h>
95519 +#include <linux/delay.h>
95520 +#include <linux/grsecurity.h>
95521 +#include <linux/grinternal.h>
95522 +#include <linux/hardirq.h>
95523 +
95524 +char *signames[] = {
95525 + [SIGSEGV] = "Segmentation fault",
95526 + [SIGILL] = "Illegal instruction",
95527 + [SIGABRT] = "Abort",
95528 + [SIGBUS] = "Invalid alignment/Bus error"
95529 +};
95530 +
95531 +void
95532 +gr_log_signal(const int sig, const void *addr, const struct task_struct *t)
95533 +{
95534 +#ifdef CONFIG_GRKERNSEC_SIGNAL
95535 + if (grsec_enable_signal && ((sig == SIGSEGV) || (sig == SIGILL) ||
95536 + (sig == SIGABRT) || (sig == SIGBUS))) {
95537 + if (task_pid_nr(t) == task_pid_nr(current)) {
95538 + gr_log_sig_addr(GR_DONT_AUDIT_GOOD, GR_UNISIGLOG_MSG, signames[sig], addr);
95539 + } else {
95540 + gr_log_sig_task(GR_DONT_AUDIT_GOOD, GR_DUALSIGLOG_MSG, t, sig);
95541 + }
95542 + }
95543 +#endif
95544 + return;
95545 +}
95546 +
95547 +int
95548 +gr_handle_signal(const struct task_struct *p, const int sig)
95549 +{
95550 +#ifdef CONFIG_GRKERNSEC
95551 + /* ignore the 0 signal for protected task checks */
95552 + if (task_pid_nr(current) > 1 && sig && gr_check_protected_task(p)) {
95553 + gr_log_sig_task(GR_DONT_AUDIT, GR_SIG_ACL_MSG, p, sig);
95554 + return -EPERM;
95555 + } else if (gr_pid_is_chrooted((struct task_struct *)p)) {
95556 + return -EPERM;
95557 + }
95558 +#endif
95559 + return 0;
95560 +}
95561 +
95562 +#ifdef CONFIG_GRKERNSEC
95563 +extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
95564 +
95565 +int gr_fake_force_sig(int sig, struct task_struct *t)
95566 +{
95567 + unsigned long int flags;
95568 + int ret, blocked, ignored;
95569 + struct k_sigaction *action;
95570 +
95571 + spin_lock_irqsave(&t->sighand->siglock, flags);
95572 + action = &t->sighand->action[sig-1];
95573 + ignored = action->sa.sa_handler == SIG_IGN;
95574 + blocked = sigismember(&t->blocked, sig);
95575 + if (blocked || ignored) {
95576 + action->sa.sa_handler = SIG_DFL;
95577 + if (blocked) {
95578 + sigdelset(&t->blocked, sig);
95579 + recalc_sigpending_and_wake(t);
95580 + }
95581 + }
95582 + if (action->sa.sa_handler == SIG_DFL)
95583 + t->signal->flags &= ~SIGNAL_UNKILLABLE;
95584 + ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
95585 +
95586 + spin_unlock_irqrestore(&t->sighand->siglock, flags);
95587 +
95588 + return ret;
95589 +}
95590 +#endif
95591 +
95592 +#define GR_USER_BAN_TIME (15 * 60)
95593 +#define GR_DAEMON_BRUTE_TIME (30 * 60)
95594 +
95595 +void gr_handle_brute_attach(int dumpable)
95596 +{
95597 +#ifdef CONFIG_GRKERNSEC_BRUTE
95598 + struct task_struct *p = current;
95599 + kuid_t uid = GLOBAL_ROOT_UID;
95600 + int daemon = 0;
95601 +
95602 + if (!grsec_enable_brute)
95603 + return;
95604 +
95605 + rcu_read_lock();
95606 + read_lock(&tasklist_lock);
95607 + read_lock(&grsec_exec_file_lock);
95608 + if (p->real_parent && gr_is_same_file(p->real_parent->exec_file, p->exec_file)) {
95609 + p->real_parent->brute_expires = get_seconds() + GR_DAEMON_BRUTE_TIME;
95610 + p->real_parent->brute = 1;
95611 + daemon = 1;
95612 + } else {
95613 + const struct cred *cred = __task_cred(p), *cred2;
95614 + struct task_struct *tsk, *tsk2;
95615 +
95616 + if (dumpable != SUID_DUMP_USER && gr_is_global_nonroot(cred->uid)) {
95617 + struct user_struct *user;
95618 +
95619 + uid = cred->uid;
95620 +
95621 + /* this is put upon execution past expiration */
95622 + user = find_user(uid);
95623 + if (user == NULL)
95624 + goto unlock;
95625 + user->suid_banned = 1;
95626 + user->suid_ban_expires = get_seconds() + GR_USER_BAN_TIME;
95627 + if (user->suid_ban_expires == ~0UL)
95628 + user->suid_ban_expires--;
95629 +
95630 + /* only kill other threads of the same binary, from the same user */
95631 + do_each_thread(tsk2, tsk) {
95632 + cred2 = __task_cred(tsk);
95633 + if (tsk != p && uid_eq(cred2->uid, uid) && gr_is_same_file(tsk->exec_file, p->exec_file))
95634 + gr_fake_force_sig(SIGKILL, tsk);
95635 + } while_each_thread(tsk2, tsk);
95636 + }
95637 + }
95638 +unlock:
95639 + read_unlock(&grsec_exec_file_lock);
95640 + read_unlock(&tasklist_lock);
95641 + rcu_read_unlock();
95642 +
95643 + if (gr_is_global_nonroot(uid))
95644 + 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);
95645 + else if (daemon)
95646 + gr_log_noargs(GR_DONT_AUDIT, GR_BRUTE_DAEMON_MSG);
95647 +
95648 +#endif
95649 + return;
95650 +}
95651 +
95652 +void gr_handle_brute_check(void)
95653 +{
95654 +#ifdef CONFIG_GRKERNSEC_BRUTE
95655 + struct task_struct *p = current;
95656 +
95657 + if (unlikely(p->brute)) {
95658 + if (!grsec_enable_brute)
95659 + p->brute = 0;
95660 + else if (time_before(get_seconds(), p->brute_expires))
95661 + msleep(30 * 1000);
95662 + }
95663 +#endif
95664 + return;
95665 +}
95666 +
95667 +void gr_handle_kernel_exploit(void)
95668 +{
95669 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95670 + const struct cred *cred;
95671 + struct task_struct *tsk, *tsk2;
95672 + struct user_struct *user;
95673 + kuid_t uid;
95674 +
95675 + if (in_irq() || in_serving_softirq() || in_nmi())
95676 + panic("grsec: halting the system due to suspicious kernel crash caused in interrupt context");
95677 +
95678 + uid = current_uid();
95679 +
95680 + if (gr_is_global_root(uid))
95681 + panic("grsec: halting the system due to suspicious kernel crash caused by root");
95682 + else {
95683 + /* kill all the processes of this user, hold a reference
95684 + to their creds struct, and prevent them from creating
95685 + another process until system reset
95686 + */
95687 + printk(KERN_ALERT "grsec: banning user with uid %u until system restart for suspicious kernel crash\n",
95688 + GR_GLOBAL_UID(uid));
95689 + /* we intentionally leak this ref */
95690 + user = get_uid(current->cred->user);
95691 + if (user)
95692 + user->kernel_banned = 1;
95693 +
95694 + /* kill all processes of this user */
95695 + read_lock(&tasklist_lock);
95696 + do_each_thread(tsk2, tsk) {
95697 + cred = __task_cred(tsk);
95698 + if (uid_eq(cred->uid, uid))
95699 + gr_fake_force_sig(SIGKILL, tsk);
95700 + } while_each_thread(tsk2, tsk);
95701 + read_unlock(&tasklist_lock);
95702 + }
95703 +#endif
95704 +}
95705 +
95706 +#ifdef CONFIG_GRKERNSEC_BRUTE
95707 +static bool suid_ban_expired(struct user_struct *user)
95708 +{
95709 + if (user->suid_ban_expires != ~0UL && time_after_eq(get_seconds(), user->suid_ban_expires)) {
95710 + user->suid_banned = 0;
95711 + user->suid_ban_expires = 0;
95712 + free_uid(user);
95713 + return true;
95714 + }
95715 +
95716 + return false;
95717 +}
95718 +#endif
95719 +
95720 +int gr_process_kernel_exec_ban(void)
95721 +{
95722 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95723 + if (unlikely(current->cred->user->kernel_banned))
95724 + return -EPERM;
95725 +#endif
95726 + return 0;
95727 +}
95728 +
95729 +int gr_process_kernel_setuid_ban(struct user_struct *user)
95730 +{
95731 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95732 + if (unlikely(user->kernel_banned))
95733 + gr_fake_force_sig(SIGKILL, current);
95734 +#endif
95735 + return 0;
95736 +}
95737 +
95738 +int gr_process_suid_exec_ban(const struct linux_binprm *bprm)
95739 +{
95740 +#ifdef CONFIG_GRKERNSEC_BRUTE
95741 + struct user_struct *user = current->cred->user;
95742 + if (unlikely(user->suid_banned)) {
95743 + if (suid_ban_expired(user))
95744 + return 0;
95745 + /* disallow execution of suid binaries only */
95746 + else if (!uid_eq(bprm->cred->euid, current->cred->uid))
95747 + return -EPERM;
95748 + }
95749 +#endif
95750 + return 0;
95751 +}
95752 diff --git a/grsecurity/grsec_sock.c b/grsecurity/grsec_sock.c
95753 new file mode 100644
95754 index 0000000..a523bd2
95755 --- /dev/null
95756 +++ b/grsecurity/grsec_sock.c
95757 @@ -0,0 +1,244 @@
95758 +#include <linux/kernel.h>
95759 +#include <linux/module.h>
95760 +#include <linux/sched.h>
95761 +#include <linux/file.h>
95762 +#include <linux/net.h>
95763 +#include <linux/in.h>
95764 +#include <linux/ip.h>
95765 +#include <net/sock.h>
95766 +#include <net/inet_sock.h>
95767 +#include <linux/grsecurity.h>
95768 +#include <linux/grinternal.h>
95769 +#include <linux/gracl.h>
95770 +
95771 +extern int gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb);
95772 +extern int gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr);
95773 +
95774 +EXPORT_SYMBOL_GPL(gr_search_udp_recvmsg);
95775 +EXPORT_SYMBOL_GPL(gr_search_udp_sendmsg);
95776 +
95777 +#ifdef CONFIG_UNIX_MODULE
95778 +EXPORT_SYMBOL_GPL(gr_acl_handle_unix);
95779 +EXPORT_SYMBOL_GPL(gr_acl_handle_mknod);
95780 +EXPORT_SYMBOL_GPL(gr_handle_chroot_unix);
95781 +EXPORT_SYMBOL_GPL(gr_handle_create);
95782 +#endif
95783 +
95784 +#ifdef CONFIG_GRKERNSEC
95785 +#define gr_conn_table_size 32749
95786 +struct conn_table_entry {
95787 + struct conn_table_entry *next;
95788 + struct signal_struct *sig;
95789 +};
95790 +
95791 +struct conn_table_entry *gr_conn_table[gr_conn_table_size];
95792 +DEFINE_SPINLOCK(gr_conn_table_lock);
95793 +
95794 +extern const char * gr_socktype_to_name(unsigned char type);
95795 +extern const char * gr_proto_to_name(unsigned char proto);
95796 +extern const char * gr_sockfamily_to_name(unsigned char family);
95797 +
95798 +static int
95799 +conn_hash(__u32 saddr, __u32 daddr, __u16 sport, __u16 dport, unsigned int size)
95800 +{
95801 + return ((daddr + saddr + (sport << 8) + (dport << 16)) % size);
95802 +}
95803 +
95804 +static int
95805 +conn_match(const struct signal_struct *sig, __u32 saddr, __u32 daddr,
95806 + __u16 sport, __u16 dport)
95807 +{
95808 + if (unlikely(sig->gr_saddr == saddr && sig->gr_daddr == daddr &&
95809 + sig->gr_sport == sport && sig->gr_dport == dport))
95810 + return 1;
95811 + else
95812 + return 0;
95813 +}
95814 +
95815 +static void gr_add_to_task_ip_table_nolock(struct signal_struct *sig, struct conn_table_entry *newent)
95816 +{
95817 + struct conn_table_entry **match;
95818 + unsigned int index;
95819 +
95820 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
95821 + sig->gr_sport, sig->gr_dport,
95822 + gr_conn_table_size);
95823 +
95824 + newent->sig = sig;
95825 +
95826 + match = &gr_conn_table[index];
95827 + newent->next = *match;
95828 + *match = newent;
95829 +
95830 + return;
95831 +}
95832 +
95833 +static void gr_del_task_from_ip_table_nolock(struct signal_struct *sig)
95834 +{
95835 + struct conn_table_entry *match, *last = NULL;
95836 + unsigned int index;
95837 +
95838 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
95839 + sig->gr_sport, sig->gr_dport,
95840 + gr_conn_table_size);
95841 +
95842 + match = gr_conn_table[index];
95843 + while (match && !conn_match(match->sig,
95844 + sig->gr_saddr, sig->gr_daddr, sig->gr_sport,
95845 + sig->gr_dport)) {
95846 + last = match;
95847 + match = match->next;
95848 + }
95849 +
95850 + if (match) {
95851 + if (last)
95852 + last->next = match->next;
95853 + else
95854 + gr_conn_table[index] = NULL;
95855 + kfree(match);
95856 + }
95857 +
95858 + return;
95859 +}
95860 +
95861 +static struct signal_struct * gr_lookup_task_ip_table(__u32 saddr, __u32 daddr,
95862 + __u16 sport, __u16 dport)
95863 +{
95864 + struct conn_table_entry *match;
95865 + unsigned int index;
95866 +
95867 + index = conn_hash(saddr, daddr, sport, dport, gr_conn_table_size);
95868 +
95869 + match = gr_conn_table[index];
95870 + while (match && !conn_match(match->sig, saddr, daddr, sport, dport))
95871 + match = match->next;
95872 +
95873 + if (match)
95874 + return match->sig;
95875 + else
95876 + return NULL;
95877 +}
95878 +
95879 +#endif
95880 +
95881 +void gr_update_task_in_ip_table(const struct inet_sock *inet)
95882 +{
95883 +#ifdef CONFIG_GRKERNSEC
95884 + struct signal_struct *sig = current->signal;
95885 + struct conn_table_entry *newent;
95886 +
95887 + newent = kmalloc(sizeof(struct conn_table_entry), GFP_ATOMIC);
95888 + if (newent == NULL)
95889 + return;
95890 + /* no bh lock needed since we are called with bh disabled */
95891 + spin_lock(&gr_conn_table_lock);
95892 + gr_del_task_from_ip_table_nolock(sig);
95893 + sig->gr_saddr = inet->inet_rcv_saddr;
95894 + sig->gr_daddr = inet->inet_daddr;
95895 + sig->gr_sport = inet->inet_sport;
95896 + sig->gr_dport = inet->inet_dport;
95897 + gr_add_to_task_ip_table_nolock(sig, newent);
95898 + spin_unlock(&gr_conn_table_lock);
95899 +#endif
95900 + return;
95901 +}
95902 +
95903 +void gr_del_task_from_ip_table(struct task_struct *task)
95904 +{
95905 +#ifdef CONFIG_GRKERNSEC
95906 + spin_lock_bh(&gr_conn_table_lock);
95907 + gr_del_task_from_ip_table_nolock(task->signal);
95908 + spin_unlock_bh(&gr_conn_table_lock);
95909 +#endif
95910 + return;
95911 +}
95912 +
95913 +void
95914 +gr_attach_curr_ip(const struct sock *sk)
95915 +{
95916 +#ifdef CONFIG_GRKERNSEC
95917 + struct signal_struct *p, *set;
95918 + const struct inet_sock *inet = inet_sk(sk);
95919 +
95920 + if (unlikely(sk->sk_protocol != IPPROTO_TCP))
95921 + return;
95922 +
95923 + set = current->signal;
95924 +
95925 + spin_lock_bh(&gr_conn_table_lock);
95926 + p = gr_lookup_task_ip_table(inet->inet_daddr, inet->inet_rcv_saddr,
95927 + inet->inet_dport, inet->inet_sport);
95928 + if (unlikely(p != NULL)) {
95929 + set->curr_ip = p->curr_ip;
95930 + set->used_accept = 1;
95931 + gr_del_task_from_ip_table_nolock(p);
95932 + spin_unlock_bh(&gr_conn_table_lock);
95933 + return;
95934 + }
95935 + spin_unlock_bh(&gr_conn_table_lock);
95936 +
95937 + set->curr_ip = inet->inet_daddr;
95938 + set->used_accept = 1;
95939 +#endif
95940 + return;
95941 +}
95942 +
95943 +int
95944 +gr_handle_sock_all(const int family, const int type, const int protocol)
95945 +{
95946 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
95947 + if (grsec_enable_socket_all && in_group_p(grsec_socket_all_gid) &&
95948 + (family != AF_UNIX)) {
95949 + if (family == AF_INET)
95950 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), gr_proto_to_name(protocol));
95951 + else
95952 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), protocol);
95953 + return -EACCES;
95954 + }
95955 +#endif
95956 + return 0;
95957 +}
95958 +
95959 +int
95960 +gr_handle_sock_server(const struct sockaddr *sck)
95961 +{
95962 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95963 + if (grsec_enable_socket_server &&
95964 + in_group_p(grsec_socket_server_gid) &&
95965 + sck && (sck->sa_family != AF_UNIX) &&
95966 + (sck->sa_family != AF_LOCAL)) {
95967 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
95968 + return -EACCES;
95969 + }
95970 +#endif
95971 + return 0;
95972 +}
95973 +
95974 +int
95975 +gr_handle_sock_server_other(const struct sock *sck)
95976 +{
95977 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95978 + if (grsec_enable_socket_server &&
95979 + in_group_p(grsec_socket_server_gid) &&
95980 + sck && (sck->sk_family != AF_UNIX) &&
95981 + (sck->sk_family != AF_LOCAL)) {
95982 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
95983 + return -EACCES;
95984 + }
95985 +#endif
95986 + return 0;
95987 +}
95988 +
95989 +int
95990 +gr_handle_sock_client(const struct sockaddr *sck)
95991 +{
95992 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
95993 + if (grsec_enable_socket_client && in_group_p(grsec_socket_client_gid) &&
95994 + sck && (sck->sa_family != AF_UNIX) &&
95995 + (sck->sa_family != AF_LOCAL)) {
95996 + gr_log_noargs(GR_DONT_AUDIT, GR_CONNECT_MSG);
95997 + return -EACCES;
95998 + }
95999 +#endif
96000 + return 0;
96001 +}
96002 diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
96003 new file mode 100644
96004 index 0000000..aaec43c
96005 --- /dev/null
96006 +++ b/grsecurity/grsec_sysctl.c
96007 @@ -0,0 +1,488 @@
96008 +#include <linux/kernel.h>
96009 +#include <linux/sched.h>
96010 +#include <linux/sysctl.h>
96011 +#include <linux/grsecurity.h>
96012 +#include <linux/grinternal.h>
96013 +
96014 +int
96015 +gr_handle_sysctl_mod(const char *dirname, const char *name, const int op)
96016 +{
96017 +#ifdef CONFIG_GRKERNSEC_SYSCTL
96018 + if (dirname == NULL || name == NULL)
96019 + return 0;
96020 + if (!strcmp(dirname, "grsecurity") && grsec_lock && (op & MAY_WRITE)) {
96021 + gr_log_str(GR_DONT_AUDIT, GR_SYSCTL_MSG, name);
96022 + return -EACCES;
96023 + }
96024 +#endif
96025 + return 0;
96026 +}
96027 +
96028 +#if defined(CONFIG_GRKERNSEC_ROFS) || defined(CONFIG_GRKERNSEC_DENYUSB)
96029 +static int __maybe_unused __read_only one = 1;
96030 +#endif
96031 +
96032 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS) || \
96033 + defined(CONFIG_GRKERNSEC_DENYUSB)
96034 +struct ctl_table grsecurity_table[] = {
96035 +#ifdef CONFIG_GRKERNSEC_SYSCTL
96036 +#ifdef CONFIG_GRKERNSEC_SYSCTL_DISTRO
96037 +#ifdef CONFIG_GRKERNSEC_IO
96038 + {
96039 + .procname = "disable_priv_io",
96040 + .data = &grsec_disable_privio,
96041 + .maxlen = sizeof(int),
96042 + .mode = 0600,
96043 + .proc_handler = &proc_dointvec_secure,
96044 + },
96045 +#endif
96046 +#endif
96047 +#ifdef CONFIG_GRKERNSEC_LINK
96048 + {
96049 + .procname = "linking_restrictions",
96050 + .data = &grsec_enable_link,
96051 + .maxlen = sizeof(int),
96052 + .mode = 0600,
96053 + .proc_handler = &proc_dointvec_secure,
96054 + },
96055 +#endif
96056 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
96057 + {
96058 + .procname = "enforce_symlinksifowner",
96059 + .data = &grsec_enable_symlinkown,
96060 + .maxlen = sizeof(int),
96061 + .mode = 0600,
96062 + .proc_handler = &proc_dointvec_secure,
96063 + },
96064 + {
96065 + .procname = "symlinkown_gid",
96066 + .data = &grsec_symlinkown_gid,
96067 + .maxlen = sizeof(int),
96068 + .mode = 0600,
96069 + .proc_handler = &proc_dointvec_secure,
96070 + },
96071 +#endif
96072 +#ifdef CONFIG_GRKERNSEC_BRUTE
96073 + {
96074 + .procname = "deter_bruteforce",
96075 + .data = &grsec_enable_brute,
96076 + .maxlen = sizeof(int),
96077 + .mode = 0600,
96078 + .proc_handler = &proc_dointvec_secure,
96079 + },
96080 +#endif
96081 +#ifdef CONFIG_GRKERNSEC_FIFO
96082 + {
96083 + .procname = "fifo_restrictions",
96084 + .data = &grsec_enable_fifo,
96085 + .maxlen = sizeof(int),
96086 + .mode = 0600,
96087 + .proc_handler = &proc_dointvec_secure,
96088 + },
96089 +#endif
96090 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
96091 + {
96092 + .procname = "ptrace_readexec",
96093 + .data = &grsec_enable_ptrace_readexec,
96094 + .maxlen = sizeof(int),
96095 + .mode = 0600,
96096 + .proc_handler = &proc_dointvec_secure,
96097 + },
96098 +#endif
96099 +#ifdef CONFIG_GRKERNSEC_SETXID
96100 + {
96101 + .procname = "consistent_setxid",
96102 + .data = &grsec_enable_setxid,
96103 + .maxlen = sizeof(int),
96104 + .mode = 0600,
96105 + .proc_handler = &proc_dointvec_secure,
96106 + },
96107 +#endif
96108 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
96109 + {
96110 + .procname = "ip_blackhole",
96111 + .data = &grsec_enable_blackhole,
96112 + .maxlen = sizeof(int),
96113 + .mode = 0600,
96114 + .proc_handler = &proc_dointvec_secure,
96115 + },
96116 + {
96117 + .procname = "lastack_retries",
96118 + .data = &grsec_lastack_retries,
96119 + .maxlen = sizeof(int),
96120 + .mode = 0600,
96121 + .proc_handler = &proc_dointvec_secure,
96122 + },
96123 +#endif
96124 +#ifdef CONFIG_GRKERNSEC_EXECLOG
96125 + {
96126 + .procname = "exec_logging",
96127 + .data = &grsec_enable_execlog,
96128 + .maxlen = sizeof(int),
96129 + .mode = 0600,
96130 + .proc_handler = &proc_dointvec_secure,
96131 + },
96132 +#endif
96133 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
96134 + {
96135 + .procname = "rwxmap_logging",
96136 + .data = &grsec_enable_log_rwxmaps,
96137 + .maxlen = sizeof(int),
96138 + .mode = 0600,
96139 + .proc_handler = &proc_dointvec_secure,
96140 + },
96141 +#endif
96142 +#ifdef CONFIG_GRKERNSEC_SIGNAL
96143 + {
96144 + .procname = "signal_logging",
96145 + .data = &grsec_enable_signal,
96146 + .maxlen = sizeof(int),
96147 + .mode = 0600,
96148 + .proc_handler = &proc_dointvec_secure,
96149 + },
96150 +#endif
96151 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
96152 + {
96153 + .procname = "forkfail_logging",
96154 + .data = &grsec_enable_forkfail,
96155 + .maxlen = sizeof(int),
96156 + .mode = 0600,
96157 + .proc_handler = &proc_dointvec_secure,
96158 + },
96159 +#endif
96160 +#ifdef CONFIG_GRKERNSEC_TIME
96161 + {
96162 + .procname = "timechange_logging",
96163 + .data = &grsec_enable_time,
96164 + .maxlen = sizeof(int),
96165 + .mode = 0600,
96166 + .proc_handler = &proc_dointvec_secure,
96167 + },
96168 +#endif
96169 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
96170 + {
96171 + .procname = "chroot_deny_shmat",
96172 + .data = &grsec_enable_chroot_shmat,
96173 + .maxlen = sizeof(int),
96174 + .mode = 0600,
96175 + .proc_handler = &proc_dointvec_secure,
96176 + },
96177 +#endif
96178 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
96179 + {
96180 + .procname = "chroot_deny_unix",
96181 + .data = &grsec_enable_chroot_unix,
96182 + .maxlen = sizeof(int),
96183 + .mode = 0600,
96184 + .proc_handler = &proc_dointvec_secure,
96185 + },
96186 +#endif
96187 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
96188 + {
96189 + .procname = "chroot_deny_mount",
96190 + .data = &grsec_enable_chroot_mount,
96191 + .maxlen = sizeof(int),
96192 + .mode = 0600,
96193 + .proc_handler = &proc_dointvec_secure,
96194 + },
96195 +#endif
96196 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
96197 + {
96198 + .procname = "chroot_deny_fchdir",
96199 + .data = &grsec_enable_chroot_fchdir,
96200 + .maxlen = sizeof(int),
96201 + .mode = 0600,
96202 + .proc_handler = &proc_dointvec_secure,
96203 + },
96204 +#endif
96205 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
96206 + {
96207 + .procname = "chroot_deny_chroot",
96208 + .data = &grsec_enable_chroot_double,
96209 + .maxlen = sizeof(int),
96210 + .mode = 0600,
96211 + .proc_handler = &proc_dointvec_secure,
96212 + },
96213 +#endif
96214 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
96215 + {
96216 + .procname = "chroot_deny_pivot",
96217 + .data = &grsec_enable_chroot_pivot,
96218 + .maxlen = sizeof(int),
96219 + .mode = 0600,
96220 + .proc_handler = &proc_dointvec_secure,
96221 + },
96222 +#endif
96223 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
96224 + {
96225 + .procname = "chroot_enforce_chdir",
96226 + .data = &grsec_enable_chroot_chdir,
96227 + .maxlen = sizeof(int),
96228 + .mode = 0600,
96229 + .proc_handler = &proc_dointvec_secure,
96230 + },
96231 +#endif
96232 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
96233 + {
96234 + .procname = "chroot_deny_chmod",
96235 + .data = &grsec_enable_chroot_chmod,
96236 + .maxlen = sizeof(int),
96237 + .mode = 0600,
96238 + .proc_handler = &proc_dointvec_secure,
96239 + },
96240 +#endif
96241 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
96242 + {
96243 + .procname = "chroot_deny_mknod",
96244 + .data = &grsec_enable_chroot_mknod,
96245 + .maxlen = sizeof(int),
96246 + .mode = 0600,
96247 + .proc_handler = &proc_dointvec_secure,
96248 + },
96249 +#endif
96250 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
96251 + {
96252 + .procname = "chroot_restrict_nice",
96253 + .data = &grsec_enable_chroot_nice,
96254 + .maxlen = sizeof(int),
96255 + .mode = 0600,
96256 + .proc_handler = &proc_dointvec_secure,
96257 + },
96258 +#endif
96259 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
96260 + {
96261 + .procname = "chroot_execlog",
96262 + .data = &grsec_enable_chroot_execlog,
96263 + .maxlen = sizeof(int),
96264 + .mode = 0600,
96265 + .proc_handler = &proc_dointvec_secure,
96266 + },
96267 +#endif
96268 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
96269 + {
96270 + .procname = "chroot_caps",
96271 + .data = &grsec_enable_chroot_caps,
96272 + .maxlen = sizeof(int),
96273 + .mode = 0600,
96274 + .proc_handler = &proc_dointvec_secure,
96275 + },
96276 +#endif
96277 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
96278 + {
96279 + .procname = "chroot_deny_bad_rename",
96280 + .data = &grsec_enable_chroot_rename,
96281 + .maxlen = sizeof(int),
96282 + .mode = 0600,
96283 + .proc_handler = &proc_dointvec_secure,
96284 + },
96285 +#endif
96286 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
96287 + {
96288 + .procname = "chroot_deny_sysctl",
96289 + .data = &grsec_enable_chroot_sysctl,
96290 + .maxlen = sizeof(int),
96291 + .mode = 0600,
96292 + .proc_handler = &proc_dointvec_secure,
96293 + },
96294 +#endif
96295 +#ifdef CONFIG_GRKERNSEC_TPE
96296 + {
96297 + .procname = "tpe",
96298 + .data = &grsec_enable_tpe,
96299 + .maxlen = sizeof(int),
96300 + .mode = 0600,
96301 + .proc_handler = &proc_dointvec_secure,
96302 + },
96303 + {
96304 + .procname = "tpe_gid",
96305 + .data = &grsec_tpe_gid,
96306 + .maxlen = sizeof(int),
96307 + .mode = 0600,
96308 + .proc_handler = &proc_dointvec_secure,
96309 + },
96310 +#endif
96311 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
96312 + {
96313 + .procname = "tpe_invert",
96314 + .data = &grsec_enable_tpe_invert,
96315 + .maxlen = sizeof(int),
96316 + .mode = 0600,
96317 + .proc_handler = &proc_dointvec_secure,
96318 + },
96319 +#endif
96320 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
96321 + {
96322 + .procname = "tpe_restrict_all",
96323 + .data = &grsec_enable_tpe_all,
96324 + .maxlen = sizeof(int),
96325 + .mode = 0600,
96326 + .proc_handler = &proc_dointvec_secure,
96327 + },
96328 +#endif
96329 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
96330 + {
96331 + .procname = "socket_all",
96332 + .data = &grsec_enable_socket_all,
96333 + .maxlen = sizeof(int),
96334 + .mode = 0600,
96335 + .proc_handler = &proc_dointvec_secure,
96336 + },
96337 + {
96338 + .procname = "socket_all_gid",
96339 + .data = &grsec_socket_all_gid,
96340 + .maxlen = sizeof(int),
96341 + .mode = 0600,
96342 + .proc_handler = &proc_dointvec_secure,
96343 + },
96344 +#endif
96345 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
96346 + {
96347 + .procname = "socket_client",
96348 + .data = &grsec_enable_socket_client,
96349 + .maxlen = sizeof(int),
96350 + .mode = 0600,
96351 + .proc_handler = &proc_dointvec_secure,
96352 + },
96353 + {
96354 + .procname = "socket_client_gid",
96355 + .data = &grsec_socket_client_gid,
96356 + .maxlen = sizeof(int),
96357 + .mode = 0600,
96358 + .proc_handler = &proc_dointvec_secure,
96359 + },
96360 +#endif
96361 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
96362 + {
96363 + .procname = "socket_server",
96364 + .data = &grsec_enable_socket_server,
96365 + .maxlen = sizeof(int),
96366 + .mode = 0600,
96367 + .proc_handler = &proc_dointvec_secure,
96368 + },
96369 + {
96370 + .procname = "socket_server_gid",
96371 + .data = &grsec_socket_server_gid,
96372 + .maxlen = sizeof(int),
96373 + .mode = 0600,
96374 + .proc_handler = &proc_dointvec_secure,
96375 + },
96376 +#endif
96377 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
96378 + {
96379 + .procname = "audit_group",
96380 + .data = &grsec_enable_group,
96381 + .maxlen = sizeof(int),
96382 + .mode = 0600,
96383 + .proc_handler = &proc_dointvec_secure,
96384 + },
96385 + {
96386 + .procname = "audit_gid",
96387 + .data = &grsec_audit_gid,
96388 + .maxlen = sizeof(int),
96389 + .mode = 0600,
96390 + .proc_handler = &proc_dointvec_secure,
96391 + },
96392 +#endif
96393 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
96394 + {
96395 + .procname = "audit_chdir",
96396 + .data = &grsec_enable_chdir,
96397 + .maxlen = sizeof(int),
96398 + .mode = 0600,
96399 + .proc_handler = &proc_dointvec_secure,
96400 + },
96401 +#endif
96402 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
96403 + {
96404 + .procname = "audit_mount",
96405 + .data = &grsec_enable_mount,
96406 + .maxlen = sizeof(int),
96407 + .mode = 0600,
96408 + .proc_handler = &proc_dointvec_secure,
96409 + },
96410 +#endif
96411 +#ifdef CONFIG_GRKERNSEC_DMESG
96412 + {
96413 + .procname = "dmesg",
96414 + .data = &grsec_enable_dmesg,
96415 + .maxlen = sizeof(int),
96416 + .mode = 0600,
96417 + .proc_handler = &proc_dointvec_secure,
96418 + },
96419 +#endif
96420 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
96421 + {
96422 + .procname = "chroot_findtask",
96423 + .data = &grsec_enable_chroot_findtask,
96424 + .maxlen = sizeof(int),
96425 + .mode = 0600,
96426 + .proc_handler = &proc_dointvec_secure,
96427 + },
96428 +#endif
96429 +#ifdef CONFIG_GRKERNSEC_RESLOG
96430 + {
96431 + .procname = "resource_logging",
96432 + .data = &grsec_resource_logging,
96433 + .maxlen = sizeof(int),
96434 + .mode = 0600,
96435 + .proc_handler = &proc_dointvec_secure,
96436 + },
96437 +#endif
96438 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
96439 + {
96440 + .procname = "audit_ptrace",
96441 + .data = &grsec_enable_audit_ptrace,
96442 + .maxlen = sizeof(int),
96443 + .mode = 0600,
96444 + .proc_handler = &proc_dointvec_secure,
96445 + },
96446 +#endif
96447 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
96448 + {
96449 + .procname = "harden_ptrace",
96450 + .data = &grsec_enable_harden_ptrace,
96451 + .maxlen = sizeof(int),
96452 + .mode = 0600,
96453 + .proc_handler = &proc_dointvec_secure,
96454 + },
96455 +#endif
96456 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
96457 + {
96458 + .procname = "harden_ipc",
96459 + .data = &grsec_enable_harden_ipc,
96460 + .maxlen = sizeof(int),
96461 + .mode = 0600,
96462 + .proc_handler = &proc_dointvec_secure,
96463 + },
96464 +#endif
96465 + {
96466 + .procname = "grsec_lock",
96467 + .data = &grsec_lock,
96468 + .maxlen = sizeof(int),
96469 + .mode = 0600,
96470 + .proc_handler = &proc_dointvec_secure,
96471 + },
96472 +#endif
96473 +#ifdef CONFIG_GRKERNSEC_ROFS
96474 + {
96475 + .procname = "romount_protect",
96476 + .data = &grsec_enable_rofs,
96477 + .maxlen = sizeof(int),
96478 + .mode = 0600,
96479 + .proc_handler = &proc_dointvec_minmax_secure,
96480 + .extra1 = &one,
96481 + .extra2 = &one,
96482 + },
96483 +#endif
96484 +#if defined(CONFIG_GRKERNSEC_DENYUSB) && !defined(CONFIG_GRKERNSEC_DENYUSB_FORCE)
96485 + {
96486 + .procname = "deny_new_usb",
96487 + .data = &grsec_deny_new_usb,
96488 + .maxlen = sizeof(int),
96489 + .mode = 0600,
96490 + .proc_handler = &proc_dointvec_secure,
96491 + },
96492 +#endif
96493 + { }
96494 +};
96495 +#endif
96496 diff --git a/grsecurity/grsec_time.c b/grsecurity/grsec_time.c
96497 new file mode 100644
96498 index 0000000..61b514e
96499 --- /dev/null
96500 +++ b/grsecurity/grsec_time.c
96501 @@ -0,0 +1,16 @@
96502 +#include <linux/kernel.h>
96503 +#include <linux/sched.h>
96504 +#include <linux/grinternal.h>
96505 +#include <linux/module.h>
96506 +
96507 +void
96508 +gr_log_timechange(void)
96509 +{
96510 +#ifdef CONFIG_GRKERNSEC_TIME
96511 + if (grsec_enable_time)
96512 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_TIME_MSG);
96513 +#endif
96514 + return;
96515 +}
96516 +
96517 +EXPORT_SYMBOL_GPL(gr_log_timechange);
96518 diff --git a/grsecurity/grsec_tpe.c b/grsecurity/grsec_tpe.c
96519 new file mode 100644
96520 index 0000000..9786671
96521 --- /dev/null
96522 +++ b/grsecurity/grsec_tpe.c
96523 @@ -0,0 +1,78 @@
96524 +#include <linux/kernel.h>
96525 +#include <linux/sched.h>
96526 +#include <linux/file.h>
96527 +#include <linux/fs.h>
96528 +#include <linux/grinternal.h>
96529 +
96530 +extern int gr_acl_tpe_check(void);
96531 +
96532 +int
96533 +gr_tpe_allow(const struct file *file)
96534 +{
96535 +#ifdef CONFIG_GRKERNSEC
96536 + struct inode *inode = d_backing_inode(file->f_path.dentry->d_parent);
96537 + struct inode *file_inode = d_backing_inode(file->f_path.dentry);
96538 + const struct cred *cred = current_cred();
96539 + char *msg = NULL;
96540 + char *msg2 = NULL;
96541 +
96542 + // never restrict root
96543 + if (gr_is_global_root(cred->uid))
96544 + return 1;
96545 +
96546 + if (grsec_enable_tpe) {
96547 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
96548 + if (grsec_enable_tpe_invert && !in_group_p(grsec_tpe_gid))
96549 + msg = "not being in trusted group";
96550 + else if (!grsec_enable_tpe_invert && in_group_p(grsec_tpe_gid))
96551 + msg = "being in untrusted group";
96552 +#else
96553 + if (in_group_p(grsec_tpe_gid))
96554 + msg = "being in untrusted group";
96555 +#endif
96556 + }
96557 + if (!msg && gr_acl_tpe_check())
96558 + msg = "being in untrusted role";
96559 +
96560 + // not in any affected group/role
96561 + if (!msg)
96562 + goto next_check;
96563 +
96564 + if (gr_is_global_nonroot(inode->i_uid))
96565 + msg2 = "file in non-root-owned directory";
96566 + else if (inode->i_mode & S_IWOTH)
96567 + msg2 = "file in world-writable directory";
96568 + else if (inode->i_mode & S_IWGRP)
96569 + msg2 = "file in group-writable directory";
96570 + else if (file_inode->i_mode & S_IWOTH)
96571 + msg2 = "file is world-writable";
96572 +
96573 + if (msg && msg2) {
96574 + char fullmsg[70] = {0};
96575 + snprintf(fullmsg, sizeof(fullmsg)-1, "%s and %s", msg, msg2);
96576 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, fullmsg, file->f_path.dentry, file->f_path.mnt);
96577 + return 0;
96578 + }
96579 + msg = NULL;
96580 +next_check:
96581 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
96582 + if (!grsec_enable_tpe || !grsec_enable_tpe_all)
96583 + return 1;
96584 +
96585 + if (gr_is_global_nonroot(inode->i_uid) && !uid_eq(inode->i_uid, cred->uid))
96586 + msg = "directory not owned by user";
96587 + else if (inode->i_mode & S_IWOTH)
96588 + msg = "file in world-writable directory";
96589 + else if (inode->i_mode & S_IWGRP)
96590 + msg = "file in group-writable directory";
96591 + else if (file_inode->i_mode & S_IWOTH)
96592 + msg = "file is world-writable";
96593 +
96594 + if (msg) {
96595 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, msg, file->f_path.dentry, file->f_path.mnt);
96596 + return 0;
96597 + }
96598 +#endif
96599 +#endif
96600 + return 1;
96601 +}
96602 diff --git a/grsecurity/grsec_usb.c b/grsecurity/grsec_usb.c
96603 new file mode 100644
96604 index 0000000..ae02d8e
96605 --- /dev/null
96606 +++ b/grsecurity/grsec_usb.c
96607 @@ -0,0 +1,15 @@
96608 +#include <linux/kernel.h>
96609 +#include <linux/grinternal.h>
96610 +#include <linux/module.h>
96611 +
96612 +int gr_handle_new_usb(void)
96613 +{
96614 +#ifdef CONFIG_GRKERNSEC_DENYUSB
96615 + if (grsec_deny_new_usb) {
96616 + printk(KERN_ALERT "grsec: denied insert of new USB device\n");
96617 + return 1;
96618 + }
96619 +#endif
96620 + return 0;
96621 +}
96622 +EXPORT_SYMBOL_GPL(gr_handle_new_usb);
96623 diff --git a/grsecurity/grsum.c b/grsecurity/grsum.c
96624 new file mode 100644
96625 index 0000000..158b330
96626 --- /dev/null
96627 +++ b/grsecurity/grsum.c
96628 @@ -0,0 +1,64 @@
96629 +#include <linux/err.h>
96630 +#include <linux/kernel.h>
96631 +#include <linux/sched.h>
96632 +#include <linux/mm.h>
96633 +#include <linux/scatterlist.h>
96634 +#include <linux/crypto.h>
96635 +#include <linux/gracl.h>
96636 +
96637 +
96638 +#if !defined(CONFIG_CRYPTO) || defined(CONFIG_CRYPTO_MODULE) || !defined(CONFIG_CRYPTO_SHA256) || defined(CONFIG_CRYPTO_SHA256_MODULE)
96639 +#error "crypto and sha256 must be built into the kernel"
96640 +#endif
96641 +
96642 +int
96643 +chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum)
96644 +{
96645 + struct crypto_hash *tfm;
96646 + struct hash_desc desc;
96647 + struct scatterlist sg[2];
96648 + unsigned char temp_sum[GR_SHA_LEN] __attribute__((aligned(__alignof__(unsigned long))));
96649 + unsigned long *tmpsumptr = (unsigned long *)temp_sum;
96650 + unsigned long *sumptr = (unsigned long *)sum;
96651 + int cryptres;
96652 + int retval = 1;
96653 + volatile int mismatched = 0;
96654 + volatile int dummy = 0;
96655 + unsigned int i;
96656 +
96657 + tfm = crypto_alloc_hash("sha256", 0, CRYPTO_ALG_ASYNC);
96658 + if (IS_ERR(tfm)) {
96659 + /* should never happen, since sha256 should be built in */
96660 + memset(entry->pw, 0, GR_PW_LEN);
96661 + return 1;
96662 + }
96663 +
96664 + sg_init_table(sg, 2);
96665 + sg_set_buf(&sg[0], salt, GR_SALT_LEN);
96666 + sg_set_buf(&sg[1], entry->pw, strlen(entry->pw));
96667 +
96668 + desc.tfm = tfm;
96669 + desc.flags = 0;
96670 +
96671 + cryptres = crypto_hash_digest(&desc, sg, GR_SALT_LEN + strlen(entry->pw),
96672 + temp_sum);
96673 +
96674 + memset(entry->pw, 0, GR_PW_LEN);
96675 +
96676 + if (cryptres)
96677 + goto out;
96678 +
96679 + for (i = 0; i < GR_SHA_LEN/sizeof(tmpsumptr[0]); i++)
96680 + if (sumptr[i] != tmpsumptr[i])
96681 + mismatched = 1;
96682 + else
96683 + dummy = 1; // waste a cycle
96684 +
96685 + if (!mismatched)
96686 + retval = dummy - 1;
96687 +
96688 +out:
96689 + crypto_free_hash(tfm);
96690 +
96691 + return retval;
96692 +}
96693 diff --git a/include/asm-generic/4level-fixup.h b/include/asm-generic/4level-fixup.h
96694 index 5bdab6b..9ae82fe 100644
96695 --- a/include/asm-generic/4level-fixup.h
96696 +++ b/include/asm-generic/4level-fixup.h
96697 @@ -14,8 +14,10 @@
96698 #define pmd_alloc(mm, pud, address) \
96699 ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \
96700 NULL: pmd_offset(pud, address))
96701 +#define pmd_alloc_kernel(mm, pud, address) pmd_alloc((mm), (pud), (address))
96702
96703 #define pud_alloc(mm, pgd, address) (pgd)
96704 +#define pud_alloc_kernel(mm, pgd, address) pud_alloc((mm), (pgd), (address))
96705 #define pud_offset(pgd, start) (pgd)
96706 #define pud_none(pud) 0
96707 #define pud_bad(pud) 0
96708 diff --git a/include/asm-generic/atomic-long.h b/include/asm-generic/atomic-long.h
96709 index b7babf0..1e4b4f1 100644
96710 --- a/include/asm-generic/atomic-long.h
96711 +++ b/include/asm-generic/atomic-long.h
96712 @@ -22,6 +22,12 @@
96713
96714 typedef atomic64_t atomic_long_t;
96715
96716 +#ifdef CONFIG_PAX_REFCOUNT
96717 +typedef atomic64_unchecked_t atomic_long_unchecked_t;
96718 +#else
96719 +typedef atomic64_t atomic_long_unchecked_t;
96720 +#endif
96721 +
96722 #define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
96723
96724 static inline long atomic_long_read(atomic_long_t *l)
96725 @@ -31,6 +37,15 @@ static inline long atomic_long_read(atomic_long_t *l)
96726 return (long)atomic64_read(v);
96727 }
96728
96729 +#ifdef CONFIG_PAX_REFCOUNT
96730 +static inline long atomic_long_read_unchecked(atomic_long_unchecked_t *l)
96731 +{
96732 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96733 +
96734 + return (long)atomic64_read_unchecked(v);
96735 +}
96736 +#endif
96737 +
96738 static inline void atomic_long_set(atomic_long_t *l, long i)
96739 {
96740 atomic64_t *v = (atomic64_t *)l;
96741 @@ -38,6 +53,15 @@ static inline void atomic_long_set(atomic_long_t *l, long i)
96742 atomic64_set(v, i);
96743 }
96744
96745 +#ifdef CONFIG_PAX_REFCOUNT
96746 +static inline void atomic_long_set_unchecked(atomic_long_unchecked_t *l, long i)
96747 +{
96748 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96749 +
96750 + atomic64_set_unchecked(v, i);
96751 +}
96752 +#endif
96753 +
96754 static inline void atomic_long_inc(atomic_long_t *l)
96755 {
96756 atomic64_t *v = (atomic64_t *)l;
96757 @@ -45,6 +69,15 @@ static inline void atomic_long_inc(atomic_long_t *l)
96758 atomic64_inc(v);
96759 }
96760
96761 +#ifdef CONFIG_PAX_REFCOUNT
96762 +static inline void atomic_long_inc_unchecked(atomic_long_unchecked_t *l)
96763 +{
96764 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96765 +
96766 + atomic64_inc_unchecked(v);
96767 +}
96768 +#endif
96769 +
96770 static inline void atomic_long_dec(atomic_long_t *l)
96771 {
96772 atomic64_t *v = (atomic64_t *)l;
96773 @@ -52,6 +85,15 @@ static inline void atomic_long_dec(atomic_long_t *l)
96774 atomic64_dec(v);
96775 }
96776
96777 +#ifdef CONFIG_PAX_REFCOUNT
96778 +static inline void atomic_long_dec_unchecked(atomic_long_unchecked_t *l)
96779 +{
96780 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96781 +
96782 + atomic64_dec_unchecked(v);
96783 +}
96784 +#endif
96785 +
96786 static inline void atomic_long_add(long i, atomic_long_t *l)
96787 {
96788 atomic64_t *v = (atomic64_t *)l;
96789 @@ -59,6 +101,15 @@ static inline void atomic_long_add(long i, atomic_long_t *l)
96790 atomic64_add(i, v);
96791 }
96792
96793 +#ifdef CONFIG_PAX_REFCOUNT
96794 +static inline void atomic_long_add_unchecked(long i, atomic_long_unchecked_t *l)
96795 +{
96796 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96797 +
96798 + atomic64_add_unchecked(i, v);
96799 +}
96800 +#endif
96801 +
96802 static inline void atomic_long_sub(long i, atomic_long_t *l)
96803 {
96804 atomic64_t *v = (atomic64_t *)l;
96805 @@ -66,6 +117,15 @@ static inline void atomic_long_sub(long i, atomic_long_t *l)
96806 atomic64_sub(i, v);
96807 }
96808
96809 +#ifdef CONFIG_PAX_REFCOUNT
96810 +static inline void atomic_long_sub_unchecked(long i, atomic_long_unchecked_t *l)
96811 +{
96812 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96813 +
96814 + atomic64_sub_unchecked(i, v);
96815 +}
96816 +#endif
96817 +
96818 static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
96819 {
96820 atomic64_t *v = (atomic64_t *)l;
96821 @@ -94,13 +154,22 @@ static inline int atomic_long_add_negative(long i, atomic_long_t *l)
96822 return atomic64_add_negative(i, v);
96823 }
96824
96825 -static inline long atomic_long_add_return(long i, atomic_long_t *l)
96826 +static inline long __intentional_overflow(-1) atomic_long_add_return(long i, atomic_long_t *l)
96827 {
96828 atomic64_t *v = (atomic64_t *)l;
96829
96830 return (long)atomic64_add_return(i, v);
96831 }
96832
96833 +#ifdef CONFIG_PAX_REFCOUNT
96834 +static inline long atomic_long_add_return_unchecked(long i, atomic_long_unchecked_t *l)
96835 +{
96836 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96837 +
96838 + return (long)atomic64_add_return_unchecked(i, v);
96839 +}
96840 +#endif
96841 +
96842 static inline long atomic_long_sub_return(long i, atomic_long_t *l)
96843 {
96844 atomic64_t *v = (atomic64_t *)l;
96845 @@ -115,6 +184,15 @@ static inline long atomic_long_inc_return(atomic_long_t *l)
96846 return (long)atomic64_inc_return(v);
96847 }
96848
96849 +#ifdef CONFIG_PAX_REFCOUNT
96850 +static inline long atomic_long_inc_return_unchecked(atomic_long_unchecked_t *l)
96851 +{
96852 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96853 +
96854 + return (long)atomic64_inc_return_unchecked(v);
96855 +}
96856 +#endif
96857 +
96858 static inline long atomic_long_dec_return(atomic_long_t *l)
96859 {
96860 atomic64_t *v = (atomic64_t *)l;
96861 @@ -140,6 +218,12 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
96862
96863 typedef atomic_t atomic_long_t;
96864
96865 +#ifdef CONFIG_PAX_REFCOUNT
96866 +typedef atomic_unchecked_t atomic_long_unchecked_t;
96867 +#else
96868 +typedef atomic_t atomic_long_unchecked_t;
96869 +#endif
96870 +
96871 #define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
96872 static inline long atomic_long_read(atomic_long_t *l)
96873 {
96874 @@ -148,6 +232,15 @@ static inline long atomic_long_read(atomic_long_t *l)
96875 return (long)atomic_read(v);
96876 }
96877
96878 +#ifdef CONFIG_PAX_REFCOUNT
96879 +static inline long atomic_long_read_unchecked(atomic_long_unchecked_t *l)
96880 +{
96881 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96882 +
96883 + return (long)atomic_read_unchecked(v);
96884 +}
96885 +#endif
96886 +
96887 static inline void atomic_long_set(atomic_long_t *l, long i)
96888 {
96889 atomic_t *v = (atomic_t *)l;
96890 @@ -155,6 +248,15 @@ static inline void atomic_long_set(atomic_long_t *l, long i)
96891 atomic_set(v, i);
96892 }
96893
96894 +#ifdef CONFIG_PAX_REFCOUNT
96895 +static inline void atomic_long_set_unchecked(atomic_long_unchecked_t *l, long i)
96896 +{
96897 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96898 +
96899 + atomic_set_unchecked(v, i);
96900 +}
96901 +#endif
96902 +
96903 static inline void atomic_long_inc(atomic_long_t *l)
96904 {
96905 atomic_t *v = (atomic_t *)l;
96906 @@ -162,6 +264,15 @@ static inline void atomic_long_inc(atomic_long_t *l)
96907 atomic_inc(v);
96908 }
96909
96910 +#ifdef CONFIG_PAX_REFCOUNT
96911 +static inline void atomic_long_inc_unchecked(atomic_long_unchecked_t *l)
96912 +{
96913 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96914 +
96915 + atomic_inc_unchecked(v);
96916 +}
96917 +#endif
96918 +
96919 static inline void atomic_long_dec(atomic_long_t *l)
96920 {
96921 atomic_t *v = (atomic_t *)l;
96922 @@ -169,6 +280,15 @@ static inline void atomic_long_dec(atomic_long_t *l)
96923 atomic_dec(v);
96924 }
96925
96926 +#ifdef CONFIG_PAX_REFCOUNT
96927 +static inline void atomic_long_dec_unchecked(atomic_long_unchecked_t *l)
96928 +{
96929 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96930 +
96931 + atomic_dec_unchecked(v);
96932 +}
96933 +#endif
96934 +
96935 static inline void atomic_long_add(long i, atomic_long_t *l)
96936 {
96937 atomic_t *v = (atomic_t *)l;
96938 @@ -176,6 +296,15 @@ static inline void atomic_long_add(long i, atomic_long_t *l)
96939 atomic_add(i, v);
96940 }
96941
96942 +#ifdef CONFIG_PAX_REFCOUNT
96943 +static inline void atomic_long_add_unchecked(long i, atomic_long_unchecked_t *l)
96944 +{
96945 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96946 +
96947 + atomic_add_unchecked(i, v);
96948 +}
96949 +#endif
96950 +
96951 static inline void atomic_long_sub(long i, atomic_long_t *l)
96952 {
96953 atomic_t *v = (atomic_t *)l;
96954 @@ -183,6 +312,15 @@ static inline void atomic_long_sub(long i, atomic_long_t *l)
96955 atomic_sub(i, v);
96956 }
96957
96958 +#ifdef CONFIG_PAX_REFCOUNT
96959 +static inline void atomic_long_sub_unchecked(long i, atomic_long_unchecked_t *l)
96960 +{
96961 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96962 +
96963 + atomic_sub_unchecked(i, v);
96964 +}
96965 +#endif
96966 +
96967 static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
96968 {
96969 atomic_t *v = (atomic_t *)l;
96970 @@ -211,13 +349,23 @@ static inline int atomic_long_add_negative(long i, atomic_long_t *l)
96971 return atomic_add_negative(i, v);
96972 }
96973
96974 -static inline long atomic_long_add_return(long i, atomic_long_t *l)
96975 +static inline long __intentional_overflow(-1) atomic_long_add_return(long i, atomic_long_t *l)
96976 {
96977 atomic_t *v = (atomic_t *)l;
96978
96979 return (long)atomic_add_return(i, v);
96980 }
96981
96982 +#ifdef CONFIG_PAX_REFCOUNT
96983 +static inline long atomic_long_add_return_unchecked(long i, atomic_long_unchecked_t *l)
96984 +{
96985 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96986 +
96987 + return (long)atomic_add_return_unchecked(i, v);
96988 +}
96989 +
96990 +#endif
96991 +
96992 static inline long atomic_long_sub_return(long i, atomic_long_t *l)
96993 {
96994 atomic_t *v = (atomic_t *)l;
96995 @@ -232,6 +380,15 @@ static inline long atomic_long_inc_return(atomic_long_t *l)
96996 return (long)atomic_inc_return(v);
96997 }
96998
96999 +#ifdef CONFIG_PAX_REFCOUNT
97000 +static inline long atomic_long_inc_return_unchecked(atomic_long_unchecked_t *l)
97001 +{
97002 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
97003 +
97004 + return (long)atomic_inc_return_unchecked(v);
97005 +}
97006 +#endif
97007 +
97008 static inline long atomic_long_dec_return(atomic_long_t *l)
97009 {
97010 atomic_t *v = (atomic_t *)l;
97011 @@ -255,4 +412,57 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
97012
97013 #endif /* BITS_PER_LONG == 64 */
97014
97015 +#ifdef CONFIG_PAX_REFCOUNT
97016 +static inline void pax_refcount_needs_these_functions(void)
97017 +{
97018 + atomic_read_unchecked((atomic_unchecked_t *)NULL);
97019 + atomic_set_unchecked((atomic_unchecked_t *)NULL, 0);
97020 + atomic_add_unchecked(0, (atomic_unchecked_t *)NULL);
97021 + atomic_sub_unchecked(0, (atomic_unchecked_t *)NULL);
97022 + atomic_inc_unchecked((atomic_unchecked_t *)NULL);
97023 + (void)atomic_inc_and_test_unchecked((atomic_unchecked_t *)NULL);
97024 + atomic_inc_return_unchecked((atomic_unchecked_t *)NULL);
97025 + atomic_add_return_unchecked(0, (atomic_unchecked_t *)NULL);
97026 + atomic_dec_unchecked((atomic_unchecked_t *)NULL);
97027 + atomic_cmpxchg_unchecked((atomic_unchecked_t *)NULL, 0, 0);
97028 + (void)atomic_xchg_unchecked((atomic_unchecked_t *)NULL, 0);
97029 +#ifdef CONFIG_X86
97030 + atomic_clear_mask_unchecked(0, NULL);
97031 + atomic_set_mask_unchecked(0, NULL);
97032 +#endif
97033 +
97034 + atomic_long_read_unchecked((atomic_long_unchecked_t *)NULL);
97035 + atomic_long_set_unchecked((atomic_long_unchecked_t *)NULL, 0);
97036 + atomic_long_add_unchecked(0, (atomic_long_unchecked_t *)NULL);
97037 + atomic_long_sub_unchecked(0, (atomic_long_unchecked_t *)NULL);
97038 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)NULL);
97039 + atomic_long_add_return_unchecked(0, (atomic_long_unchecked_t *)NULL);
97040 + atomic_long_inc_return_unchecked((atomic_long_unchecked_t *)NULL);
97041 + atomic_long_dec_unchecked((atomic_long_unchecked_t *)NULL);
97042 +}
97043 +#else
97044 +#define atomic_read_unchecked(v) atomic_read(v)
97045 +#define atomic_set_unchecked(v, i) atomic_set((v), (i))
97046 +#define atomic_add_unchecked(i, v) atomic_add((i), (v))
97047 +#define atomic_sub_unchecked(i, v) atomic_sub((i), (v))
97048 +#define atomic_inc_unchecked(v) atomic_inc(v)
97049 +#define atomic_inc_and_test_unchecked(v) atomic_inc_and_test(v)
97050 +#define atomic_inc_return_unchecked(v) atomic_inc_return(v)
97051 +#define atomic_add_return_unchecked(i, v) atomic_add_return((i), (v))
97052 +#define atomic_dec_unchecked(v) atomic_dec(v)
97053 +#define atomic_cmpxchg_unchecked(v, o, n) atomic_cmpxchg((v), (o), (n))
97054 +#define atomic_xchg_unchecked(v, i) atomic_xchg((v), (i))
97055 +#define atomic_clear_mask_unchecked(mask, v) atomic_clear_mask((mask), (v))
97056 +#define atomic_set_mask_unchecked(mask, v) atomic_set_mask((mask), (v))
97057 +
97058 +#define atomic_long_read_unchecked(v) atomic_long_read(v)
97059 +#define atomic_long_set_unchecked(v, i) atomic_long_set((v), (i))
97060 +#define atomic_long_add_unchecked(i, v) atomic_long_add((i), (v))
97061 +#define atomic_long_sub_unchecked(i, v) atomic_long_sub((i), (v))
97062 +#define atomic_long_inc_unchecked(v) atomic_long_inc(v)
97063 +#define atomic_long_add_return_unchecked(i, v) atomic_long_add_return((i), (v))
97064 +#define atomic_long_inc_return_unchecked(v) atomic_long_inc_return(v)
97065 +#define atomic_long_dec_unchecked(v) atomic_long_dec(v)
97066 +#endif
97067 +
97068 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */
97069 diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h
97070 index 30ad9c8..c70c170 100644
97071 --- a/include/asm-generic/atomic64.h
97072 +++ b/include/asm-generic/atomic64.h
97073 @@ -16,6 +16,8 @@ typedef struct {
97074 long long counter;
97075 } atomic64_t;
97076
97077 +typedef atomic64_t atomic64_unchecked_t;
97078 +
97079 #define ATOMIC64_INIT(i) { (i) }
97080
97081 extern long long atomic64_read(const atomic64_t *v);
97082 @@ -51,4 +53,14 @@ extern int atomic64_add_unless(atomic64_t *v, long long a, long long u);
97083 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
97084 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
97085
97086 +#define atomic64_read_unchecked(v) atomic64_read(v)
97087 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
97088 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
97089 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
97090 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
97091 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
97092 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
97093 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
97094 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
97095 +
97096 #endif /* _ASM_GENERIC_ATOMIC64_H */
97097 diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h
97098 index 55e3abc..104e2a1 100644
97099 --- a/include/asm-generic/barrier.h
97100 +++ b/include/asm-generic/barrier.h
97101 @@ -108,7 +108,7 @@
97102 do { \
97103 compiletime_assert_atomic_type(*p); \
97104 smp_mb(); \
97105 - ACCESS_ONCE(*p) = (v); \
97106 + ACCESS_ONCE_RW(*p) = (v); \
97107 } while (0)
97108
97109 #define smp_load_acquire(p) \
97110 diff --git a/include/asm-generic/bitops/__fls.h b/include/asm-generic/bitops/__fls.h
97111 index a60a7cc..0fe12f2 100644
97112 --- a/include/asm-generic/bitops/__fls.h
97113 +++ b/include/asm-generic/bitops/__fls.h
97114 @@ -9,7 +9,7 @@
97115 *
97116 * Undefined if no set bit exists, so code should check against 0 first.
97117 */
97118 -static __always_inline unsigned long __fls(unsigned long word)
97119 +static __always_inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
97120 {
97121 int num = BITS_PER_LONG - 1;
97122
97123 diff --git a/include/asm-generic/bitops/fls.h b/include/asm-generic/bitops/fls.h
97124 index 0576d1f..dad6c71 100644
97125 --- a/include/asm-generic/bitops/fls.h
97126 +++ b/include/asm-generic/bitops/fls.h
97127 @@ -9,7 +9,7 @@
97128 * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
97129 */
97130
97131 -static __always_inline int fls(int x)
97132 +static __always_inline int __intentional_overflow(-1) fls(int x)
97133 {
97134 int r = 32;
97135
97136 diff --git a/include/asm-generic/bitops/fls64.h b/include/asm-generic/bitops/fls64.h
97137 index b097cf8..3d40e14 100644
97138 --- a/include/asm-generic/bitops/fls64.h
97139 +++ b/include/asm-generic/bitops/fls64.h
97140 @@ -15,7 +15,7 @@
97141 * at position 64.
97142 */
97143 #if BITS_PER_LONG == 32
97144 -static __always_inline int fls64(__u64 x)
97145 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
97146 {
97147 __u32 h = x >> 32;
97148 if (h)
97149 @@ -23,7 +23,7 @@ static __always_inline int fls64(__u64 x)
97150 return fls(x);
97151 }
97152 #elif BITS_PER_LONG == 64
97153 -static __always_inline int fls64(__u64 x)
97154 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
97155 {
97156 if (x == 0)
97157 return 0;
97158 diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
97159 index 630dd23..8c1dcb6b 100644
97160 --- a/include/asm-generic/bug.h
97161 +++ b/include/asm-generic/bug.h
97162 @@ -62,13 +62,13 @@ struct bug_entry {
97163 * to provide better diagnostics.
97164 */
97165 #ifndef __WARN_TAINT
97166 -extern __printf(3, 4)
97167 +extern __printf(3, 4) __nocapture(1, 3, 4)
97168 void warn_slowpath_fmt(const char *file, const int line,
97169 const char *fmt, ...);
97170 -extern __printf(4, 5)
97171 +extern __printf(4, 5) __nocapture(1, 4, 5)
97172 void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint,
97173 const char *fmt, ...);
97174 -extern void warn_slowpath_null(const char *file, const int line);
97175 +extern __nocapture(1) void warn_slowpath_null(const char *file, const int line);
97176 #define WANT_WARN_ON_SLOWPATH
97177 #define __WARN() warn_slowpath_null(__FILE__, __LINE__)
97178 #define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
97179 diff --git a/include/asm-generic/cache.h b/include/asm-generic/cache.h
97180 index 1bfcfe5..e04c5c9 100644
97181 --- a/include/asm-generic/cache.h
97182 +++ b/include/asm-generic/cache.h
97183 @@ -6,7 +6,7 @@
97184 * cache lines need to provide their own cache.h.
97185 */
97186
97187 -#define L1_CACHE_SHIFT 5
97188 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
97189 +#define L1_CACHE_SHIFT 5UL
97190 +#define L1_CACHE_BYTES (1UL << L1_CACHE_SHIFT)
97191
97192 #endif /* __ASM_GENERIC_CACHE_H */
97193 diff --git a/include/asm-generic/emergency-restart.h b/include/asm-generic/emergency-restart.h
97194 index 0d68a1e..b74a761 100644
97195 --- a/include/asm-generic/emergency-restart.h
97196 +++ b/include/asm-generic/emergency-restart.h
97197 @@ -1,7 +1,7 @@
97198 #ifndef _ASM_GENERIC_EMERGENCY_RESTART_H
97199 #define _ASM_GENERIC_EMERGENCY_RESTART_H
97200
97201 -static inline void machine_emergency_restart(void)
97202 +static inline __noreturn void machine_emergency_restart(void)
97203 {
97204 machine_restart(NULL);
97205 }
97206 diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h
97207 index 90f99c7..00ce236 100644
97208 --- a/include/asm-generic/kmap_types.h
97209 +++ b/include/asm-generic/kmap_types.h
97210 @@ -2,9 +2,9 @@
97211 #define _ASM_GENERIC_KMAP_TYPES_H
97212
97213 #ifdef __WITH_KM_FENCE
97214 -# define KM_TYPE_NR 41
97215 +# define KM_TYPE_NR 42
97216 #else
97217 -# define KM_TYPE_NR 20
97218 +# define KM_TYPE_NR 21
97219 #endif
97220
97221 #endif
97222 diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h
97223 index 9ceb03b..62b0b8f 100644
97224 --- a/include/asm-generic/local.h
97225 +++ b/include/asm-generic/local.h
97226 @@ -23,24 +23,37 @@ typedef struct
97227 atomic_long_t a;
97228 } local_t;
97229
97230 +typedef struct {
97231 + atomic_long_unchecked_t a;
97232 +} local_unchecked_t;
97233 +
97234 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
97235
97236 #define local_read(l) atomic_long_read(&(l)->a)
97237 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
97238 #define local_set(l,i) atomic_long_set((&(l)->a),(i))
97239 +#define local_set_unchecked(l,i) atomic_long_set_unchecked((&(l)->a),(i))
97240 #define local_inc(l) atomic_long_inc(&(l)->a)
97241 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
97242 #define local_dec(l) atomic_long_dec(&(l)->a)
97243 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
97244 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
97245 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
97246 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
97247 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
97248
97249 #define local_sub_and_test(i, l) atomic_long_sub_and_test((i), (&(l)->a))
97250 #define local_dec_and_test(l) atomic_long_dec_and_test(&(l)->a)
97251 #define local_inc_and_test(l) atomic_long_inc_and_test(&(l)->a)
97252 #define local_add_negative(i, l) atomic_long_add_negative((i), (&(l)->a))
97253 #define local_add_return(i, l) atomic_long_add_return((i), (&(l)->a))
97254 +#define local_add_return_unchecked(i, l) atomic_long_add_return_unchecked((i), (&(l)->a))
97255 #define local_sub_return(i, l) atomic_long_sub_return((i), (&(l)->a))
97256 #define local_inc_return(l) atomic_long_inc_return(&(l)->a)
97257 +#define local_dec_return(l) atomic_long_dec_return(&(l)->a)
97258
97259 #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
97260 +#define local_cmpxchg_unchecked(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
97261 #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
97262 #define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u))
97263 #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
97264 diff --git a/include/asm-generic/pgtable-nopmd.h b/include/asm-generic/pgtable-nopmd.h
97265 index 725612b..9cc513a 100644
97266 --- a/include/asm-generic/pgtable-nopmd.h
97267 +++ b/include/asm-generic/pgtable-nopmd.h
97268 @@ -1,14 +1,19 @@
97269 #ifndef _PGTABLE_NOPMD_H
97270 #define _PGTABLE_NOPMD_H
97271
97272 -#ifndef __ASSEMBLY__
97273 -
97274 #include <asm-generic/pgtable-nopud.h>
97275
97276 -struct mm_struct;
97277 -
97278 #define __PAGETABLE_PMD_FOLDED
97279
97280 +#define PMD_SHIFT PUD_SHIFT
97281 +#define PTRS_PER_PMD 1
97282 +#define PMD_SIZE (_AC(1,UL) << PMD_SHIFT)
97283 +#define PMD_MASK (~(PMD_SIZE-1))
97284 +
97285 +#ifndef __ASSEMBLY__
97286 +
97287 +struct mm_struct;
97288 +
97289 /*
97290 * Having the pmd type consist of a pud gets the size right, and allows
97291 * us to conceptually access the pud entry that this pmd is folded into
97292 @@ -16,11 +21,6 @@ struct mm_struct;
97293 */
97294 typedef struct { pud_t pud; } pmd_t;
97295
97296 -#define PMD_SHIFT PUD_SHIFT
97297 -#define PTRS_PER_PMD 1
97298 -#define PMD_SIZE (1UL << PMD_SHIFT)
97299 -#define PMD_MASK (~(PMD_SIZE-1))
97300 -
97301 /*
97302 * The "pud_xxx()" functions here are trivial for a folded two-level
97303 * setup: the pmd is never bad, and a pmd always exists (as it's folded
97304 diff --git a/include/asm-generic/pgtable-nopud.h b/include/asm-generic/pgtable-nopud.h
97305 index 810431d..0ec4804f 100644
97306 --- a/include/asm-generic/pgtable-nopud.h
97307 +++ b/include/asm-generic/pgtable-nopud.h
97308 @@ -1,10 +1,15 @@
97309 #ifndef _PGTABLE_NOPUD_H
97310 #define _PGTABLE_NOPUD_H
97311
97312 -#ifndef __ASSEMBLY__
97313 -
97314 #define __PAGETABLE_PUD_FOLDED
97315
97316 +#define PUD_SHIFT PGDIR_SHIFT
97317 +#define PTRS_PER_PUD 1
97318 +#define PUD_SIZE (_AC(1,UL) << PUD_SHIFT)
97319 +#define PUD_MASK (~(PUD_SIZE-1))
97320 +
97321 +#ifndef __ASSEMBLY__
97322 +
97323 /*
97324 * Having the pud type consist of a pgd gets the size right, and allows
97325 * us to conceptually access the pgd entry that this pud is folded into
97326 @@ -12,11 +17,6 @@
97327 */
97328 typedef struct { pgd_t pgd; } pud_t;
97329
97330 -#define PUD_SHIFT PGDIR_SHIFT
97331 -#define PTRS_PER_PUD 1
97332 -#define PUD_SIZE (1UL << PUD_SHIFT)
97333 -#define PUD_MASK (~(PUD_SIZE-1))
97334 -
97335 /*
97336 * The "pgd_xxx()" functions here are trivial for a folded two-level
97337 * setup: the pud is never bad, and a pud always exists (as it's folded
97338 @@ -29,6 +29,7 @@ static inline void pgd_clear(pgd_t *pgd) { }
97339 #define pud_ERROR(pud) (pgd_ERROR((pud).pgd))
97340
97341 #define pgd_populate(mm, pgd, pud) do { } while (0)
97342 +#define pgd_populate_kernel(mm, pgd, pud) do { } while (0)
97343 /*
97344 * (puds are folded into pgds so this doesn't get actually called,
97345 * but the define is needed for a generic inline function.)
97346 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
97347 index 29c57b2..da571a2 100644
97348 --- a/include/asm-generic/pgtable.h
97349 +++ b/include/asm-generic/pgtable.h
97350 @@ -715,6 +715,22 @@ static inline int pmd_protnone(pmd_t pmd)
97351 }
97352 #endif /* CONFIG_NUMA_BALANCING */
97353
97354 +#ifndef __HAVE_ARCH_PAX_OPEN_KERNEL
97355 +#ifdef CONFIG_PAX_KERNEXEC
97356 +#error KERNEXEC requires pax_open_kernel
97357 +#else
97358 +static inline unsigned long pax_open_kernel(void) { return 0; }
97359 +#endif
97360 +#endif
97361 +
97362 +#ifndef __HAVE_ARCH_PAX_CLOSE_KERNEL
97363 +#ifdef CONFIG_PAX_KERNEXEC
97364 +#error KERNEXEC requires pax_close_kernel
97365 +#else
97366 +static inline unsigned long pax_close_kernel(void) { return 0; }
97367 +#endif
97368 +#endif
97369 +
97370 #endif /* CONFIG_MMU */
97371
97372 #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
97373 diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
97374 index b58fd66..6cfae67 100644
97375 --- a/include/asm-generic/sections.h
97376 +++ b/include/asm-generic/sections.h
97377 @@ -30,6 +30,7 @@ extern char _data[], _sdata[], _edata[];
97378 extern char __bss_start[], __bss_stop[];
97379 extern char __init_begin[], __init_end[];
97380 extern char _sinittext[], _einittext[];
97381 +extern char _sinitdata[], _einitdata[];
97382 extern char _end[];
97383 extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
97384 extern char __kprobes_text_start[], __kprobes_text_end[];
97385 diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
97386 index 72d8803..cb9749c 100644
97387 --- a/include/asm-generic/uaccess.h
97388 +++ b/include/asm-generic/uaccess.h
97389 @@ -343,4 +343,20 @@ clear_user(void __user *to, unsigned long n)
97390 return __clear_user(to, n);
97391 }
97392
97393 +#ifndef __HAVE_ARCH_PAX_OPEN_USERLAND
97394 +#ifdef CONFIG_PAX_MEMORY_UDEREF
97395 +#error UDEREF requires pax_open_userland
97396 +#else
97397 +static inline unsigned long pax_open_userland(void) { return 0; }
97398 +#endif
97399 +#endif
97400 +
97401 +#ifndef __HAVE_ARCH_PAX_CLOSE_USERLAND
97402 +#ifdef CONFIG_PAX_MEMORY_UDEREF
97403 +#error UDEREF requires pax_close_userland
97404 +#else
97405 +static inline unsigned long pax_close_userland(void) { return 0; }
97406 +#endif
97407 +#endif
97408 +
97409 #endif /* __ASM_GENERIC_UACCESS_H */
97410 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
97411 index 8bd374d..2665ce3 100644
97412 --- a/include/asm-generic/vmlinux.lds.h
97413 +++ b/include/asm-generic/vmlinux.lds.h
97414 @@ -246,6 +246,7 @@
97415 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
97416 VMLINUX_SYMBOL(__start_rodata) = .; \
97417 *(.rodata) *(.rodata.*) \
97418 + *(.data..read_only) \
97419 *(__vermagic) /* Kernel version magic */ \
97420 . = ALIGN(8); \
97421 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
97422 @@ -504,6 +505,7 @@
97423 KERNEL_CTORS() \
97424 MCOUNT_REC() \
97425 *(.init.rodata) \
97426 + *(.init.rodata.*) \
97427 FTRACE_EVENTS() \
97428 TRACE_SYSCALLS() \
97429 KPROBE_BLACKLIST() \
97430 @@ -525,6 +527,8 @@
97431
97432 #define EXIT_DATA \
97433 *(.exit.data) \
97434 + *(.exit.rodata) \
97435 + *(.exit.rodata.*) \
97436 MEM_DISCARD(exit.data) \
97437 MEM_DISCARD(exit.rodata)
97438
97439 @@ -741,17 +745,18 @@
97440 * section in the linker script will go there too. @phdr should have
97441 * a leading colon.
97442 *
97443 - * Note that this macros defines __per_cpu_load as an absolute symbol.
97444 + * Note that this macros defines per_cpu_load as an absolute symbol.
97445 * If there is no need to put the percpu section at a predetermined
97446 * address, use PERCPU_SECTION.
97447 */
97448 #define PERCPU_VADDR(cacheline, vaddr, phdr) \
97449 - VMLINUX_SYMBOL(__per_cpu_load) = .; \
97450 - .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
97451 + per_cpu_load = .; \
97452 + .data..percpu vaddr : AT(VMLINUX_SYMBOL(per_cpu_load) \
97453 - LOAD_OFFSET) { \
97454 + VMLINUX_SYMBOL(__per_cpu_load) = . + per_cpu_load; \
97455 PERCPU_INPUT(cacheline) \
97456 } phdr \
97457 - . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu);
97458 + . = VMLINUX_SYMBOL(per_cpu_load) + SIZEOF(.data..percpu);
97459
97460 /**
97461 * PERCPU_SECTION - define output section for percpu area, simple version
97462 @@ -813,12 +818,14 @@
97463
97464 #define INIT_DATA_SECTION(initsetup_align) \
97465 .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
97466 + VMLINUX_SYMBOL(_sinitdata) = .; \
97467 INIT_DATA \
97468 INIT_SETUP(initsetup_align) \
97469 INIT_CALLS \
97470 CON_INITCALL \
97471 SECURITY_INITCALL \
97472 INIT_RAM_FS \
97473 + VMLINUX_SYMBOL(_einitdata) = .; \
97474 }
97475
97476 #define BSS_SECTION(sbss_align, bss_align, stop_align) \
97477 diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
97478 index d4ebf6e..ca4bd35 100644
97479 --- a/include/crypto/algapi.h
97480 +++ b/include/crypto/algapi.h
97481 @@ -35,7 +35,7 @@ struct crypto_type {
97482 unsigned int maskclear;
97483 unsigned int maskset;
97484 unsigned int tfmsize;
97485 -};
97486 +} __do_const;
97487
97488 struct crypto_instance {
97489 struct crypto_alg alg;
97490 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
97491 index 5aa5197..e4ca348 100644
97492 --- a/include/drm/drmP.h
97493 +++ b/include/drm/drmP.h
97494 @@ -59,6 +59,7 @@
97495
97496 #include <asm/mman.h>
97497 #include <asm/pgalloc.h>
97498 +#include <asm/local.h>
97499 #include <asm/uaccess.h>
97500
97501 #include <uapi/drm/drm.h>
97502 @@ -137,17 +138,18 @@ void drm_err(const char *format, ...);
97503 /*@{*/
97504
97505 /* driver capabilities and requirements mask */
97506 -#define DRIVER_USE_AGP 0x1
97507 -#define DRIVER_PCI_DMA 0x8
97508 -#define DRIVER_SG 0x10
97509 -#define DRIVER_HAVE_DMA 0x20
97510 -#define DRIVER_HAVE_IRQ 0x40
97511 -#define DRIVER_IRQ_SHARED 0x80
97512 -#define DRIVER_GEM 0x1000
97513 -#define DRIVER_MODESET 0x2000
97514 -#define DRIVER_PRIME 0x4000
97515 -#define DRIVER_RENDER 0x8000
97516 -#define DRIVER_ATOMIC 0x10000
97517 +#define DRIVER_USE_AGP 0x1
97518 +#define DRIVER_PCI_DMA 0x8
97519 +#define DRIVER_SG 0x10
97520 +#define DRIVER_HAVE_DMA 0x20
97521 +#define DRIVER_HAVE_IRQ 0x40
97522 +#define DRIVER_IRQ_SHARED 0x80
97523 +#define DRIVER_GEM 0x1000
97524 +#define DRIVER_MODESET 0x2000
97525 +#define DRIVER_PRIME 0x4000
97526 +#define DRIVER_RENDER 0x8000
97527 +#define DRIVER_ATOMIC 0x10000
97528 +#define DRIVER_KMS_LEGACY_CONTEXT 0x20000
97529
97530 /***********************************************************************/
97531 /** \name Macros to make printk easier */
97532 @@ -233,10 +235,12 @@ void drm_err(const char *format, ...);
97533 * \param cmd command.
97534 * \param arg argument.
97535 */
97536 -typedef int drm_ioctl_t(struct drm_device *dev, void *data,
97537 +typedef int (* const drm_ioctl_t)(struct drm_device *dev, void *data,
97538 + struct drm_file *file_priv);
97539 +typedef int (* drm_ioctl_no_const_t)(struct drm_device *dev, void *data,
97540 struct drm_file *file_priv);
97541
97542 -typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
97543 +typedef int (* const drm_ioctl_compat_t)(struct file *filp, unsigned int cmd,
97544 unsigned long arg);
97545
97546 #define DRM_IOCTL_NR(n) _IOC_NR(n)
97547 @@ -252,9 +256,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
97548 struct drm_ioctl_desc {
97549 unsigned int cmd;
97550 int flags;
97551 - drm_ioctl_t *func;
97552 + drm_ioctl_t func;
97553 const char *name;
97554 -};
97555 +} __do_const;
97556
97557 /**
97558 * Creates a driver or general drm_ioctl_desc array entry for the given
97559 @@ -647,7 +651,8 @@ struct drm_info_list {
97560 int (*show)(struct seq_file*, void*); /** show callback */
97561 u32 driver_features; /**< Required driver features for this entry */
97562 void *data;
97563 -};
97564 +} __do_const;
97565 +typedef struct drm_info_list __no_const drm_info_list_no_const;
97566
97567 /**
97568 * debugfs node structure. This structure represents a debugfs file.
97569 @@ -735,7 +740,7 @@ struct drm_device {
97570
97571 /** \name Usage Counters */
97572 /*@{ */
97573 - int open_count; /**< Outstanding files open, protected by drm_global_mutex. */
97574 + local_t open_count; /**< Outstanding files open, protected by drm_global_mutex. */
97575 spinlock_t buf_lock; /**< For drm_device::buf_use and a few other things. */
97576 int buf_use; /**< Buffers in use -- cannot alloc */
97577 atomic_t buf_alloc; /**< Buffer allocation in progress */
97578 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
97579 index 918aa68..f162a8a 100644
97580 --- a/include/drm/drm_crtc_helper.h
97581 +++ b/include/drm/drm_crtc_helper.h
97582 @@ -161,7 +161,7 @@ struct drm_encoder_helper_funcs {
97583 int (*atomic_check)(struct drm_encoder *encoder,
97584 struct drm_crtc_state *crtc_state,
97585 struct drm_connector_state *conn_state);
97586 -};
97587 +} __no_const;
97588
97589 /**
97590 * struct drm_connector_helper_funcs - helper operations for connectors
97591 diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
97592 index 0de6290..2a2c125 100644
97593 --- a/include/drm/drm_mm.h
97594 +++ b/include/drm/drm_mm.h
97595 @@ -297,7 +297,7 @@ void drm_mm_remove_node(struct drm_mm_node *node);
97596 void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
97597 void drm_mm_init(struct drm_mm *mm,
97598 u64 start,
97599 - u64 size);
97600 + u64 size) __intentional_overflow(3);
97601 void drm_mm_takedown(struct drm_mm *mm);
97602 bool drm_mm_clean(struct drm_mm *mm);
97603
97604 diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
97605 index 17c4456..da0c5eb 100644
97606 --- a/include/drm/i915_pciids.h
97607 +++ b/include/drm/i915_pciids.h
97608 @@ -37,7 +37,7 @@
97609 */
97610 #define INTEL_VGA_DEVICE(id, info) { \
97611 0x8086, id, \
97612 - ~0, ~0, \
97613 + PCI_ANY_ID, PCI_ANY_ID, \
97614 0x030000, 0xff0000, \
97615 (unsigned long) info }
97616
97617 diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
97618 index b08bdad..21e6054 100644
97619 --- a/include/drm/intel-gtt.h
97620 +++ b/include/drm/intel-gtt.h
97621 @@ -3,8 +3,8 @@
97622 #ifndef _DRM_INTEL_GTT_H
97623 #define _DRM_INTEL_GTT_H
97624
97625 -void intel_gtt_get(size_t *gtt_total, size_t *stolen_size,
97626 - phys_addr_t *mappable_base, unsigned long *mappable_end);
97627 +void intel_gtt_get(uint64_t *gtt_total, uint64_t *stolen_size,
97628 + uint64_t *mappable_base, uint64_t *mappable_end);
97629
97630 int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
97631 struct agp_bridge_data *bridge);
97632 diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
97633 index 72dcbe8..8db58d7 100644
97634 --- a/include/drm/ttm/ttm_memory.h
97635 +++ b/include/drm/ttm/ttm_memory.h
97636 @@ -48,7 +48,7 @@
97637
97638 struct ttm_mem_shrink {
97639 int (*do_shrink) (struct ttm_mem_shrink *);
97640 -};
97641 +} __no_const;
97642
97643 /**
97644 * struct ttm_mem_global - Global memory accounting structure.
97645 diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
97646 index 49a8284..9643967 100644
97647 --- a/include/drm/ttm/ttm_page_alloc.h
97648 +++ b/include/drm/ttm/ttm_page_alloc.h
97649 @@ -80,6 +80,7 @@ void ttm_dma_page_alloc_fini(void);
97650 */
97651 extern int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data);
97652
97653 +struct device;
97654 extern int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev);
97655 extern void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev);
97656
97657 diff --git a/include/keys/asymmetric-subtype.h b/include/keys/asymmetric-subtype.h
97658 index 4b840e8..155d235 100644
97659 --- a/include/keys/asymmetric-subtype.h
97660 +++ b/include/keys/asymmetric-subtype.h
97661 @@ -37,7 +37,7 @@ struct asymmetric_key_subtype {
97662 /* Verify the signature on a key of this subtype (optional) */
97663 int (*verify_signature)(const struct key *key,
97664 const struct public_key_signature *sig);
97665 -};
97666 +} __do_const;
97667
97668 /**
97669 * asymmetric_key_subtype - Get the subtype from an asymmetric key
97670 diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
97671 index c1da539..1dcec55 100644
97672 --- a/include/linux/atmdev.h
97673 +++ b/include/linux/atmdev.h
97674 @@ -28,7 +28,7 @@ struct compat_atm_iobuf {
97675 #endif
97676
97677 struct k_atm_aal_stats {
97678 -#define __HANDLE_ITEM(i) atomic_t i
97679 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
97680 __AAL_STAT_ITEMS
97681 #undef __HANDLE_ITEM
97682 };
97683 @@ -200,7 +200,7 @@ struct atmdev_ops { /* only send is required */
97684 int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
97685 int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
97686 struct module *owner;
97687 -};
97688 +} __do_const ;
97689
97690 struct atmphy_ops {
97691 int (*start)(struct atm_dev *dev);
97692 diff --git a/include/linux/atomic.h b/include/linux/atomic.h
97693 index 5b08a85..60922fb 100644
97694 --- a/include/linux/atomic.h
97695 +++ b/include/linux/atomic.h
97696 @@ -12,7 +12,7 @@
97697 * Atomically adds @a to @v, so long as @v was not already @u.
97698 * Returns non-zero if @v was not @u, and zero otherwise.
97699 */
97700 -static inline int atomic_add_unless(atomic_t *v, int a, int u)
97701 +static inline int __intentional_overflow(-1) atomic_add_unless(atomic_t *v, int a, int u)
97702 {
97703 return __atomic_add_unless(v, a, u) != u;
97704 }
97705 diff --git a/include/linux/audit.h b/include/linux/audit.h
97706 index c2e7e3a..8bfc0e1 100644
97707 --- a/include/linux/audit.h
97708 +++ b/include/linux/audit.h
97709 @@ -223,7 +223,7 @@ static inline void audit_ptrace(struct task_struct *t)
97710 extern unsigned int audit_serial(void);
97711 extern int auditsc_get_stamp(struct audit_context *ctx,
97712 struct timespec *t, unsigned int *serial);
97713 -extern int audit_set_loginuid(kuid_t loginuid);
97714 +extern int __intentional_overflow(-1) audit_set_loginuid(kuid_t loginuid);
97715
97716 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
97717 {
97718 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
97719 index 576e463..28fd926 100644
97720 --- a/include/linux/binfmts.h
97721 +++ b/include/linux/binfmts.h
97722 @@ -44,7 +44,7 @@ struct linux_binprm {
97723 unsigned interp_flags;
97724 unsigned interp_data;
97725 unsigned long loader, exec;
97726 -};
97727 +} __randomize_layout;
97728
97729 #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
97730 #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
97731 @@ -77,8 +77,10 @@ struct linux_binfmt {
97732 int (*load_binary)(struct linux_binprm *);
97733 int (*load_shlib)(struct file *);
97734 int (*core_dump)(struct coredump_params *cprm);
97735 + void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags);
97736 + void (*handle_mmap)(struct file *);
97737 unsigned long min_coredump; /* minimal dump size */
97738 -};
97739 +} __do_const __randomize_layout;
97740
97741 extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
97742
97743 diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
97744 index ea17cca..dd56e56 100644
97745 --- a/include/linux/bitmap.h
97746 +++ b/include/linux/bitmap.h
97747 @@ -295,7 +295,7 @@ static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
97748 return find_first_zero_bit(src, nbits) == nbits;
97749 }
97750
97751 -static inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
97752 +static inline int __intentional_overflow(-1) bitmap_weight(const unsigned long *src, unsigned int nbits)
97753 {
97754 if (small_const_nbits(nbits))
97755 return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
97756 diff --git a/include/linux/bitops.h b/include/linux/bitops.h
97757 index 297f5bd..5892caa 100644
97758 --- a/include/linux/bitops.h
97759 +++ b/include/linux/bitops.h
97760 @@ -75,7 +75,7 @@ static __inline__ int get_count_order(unsigned int count)
97761 return order;
97762 }
97763
97764 -static inline unsigned long hweight_long(unsigned long w)
97765 +static inline unsigned long __intentional_overflow(-1) hweight_long(unsigned long w)
97766 {
97767 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
97768 }
97769 @@ -105,7 +105,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
97770 * @word: value to rotate
97771 * @shift: bits to roll
97772 */
97773 -static inline __u32 rol32(__u32 word, unsigned int shift)
97774 +static inline __u32 __intentional_overflow(-1) rol32(__u32 word, unsigned int shift)
97775 {
97776 return (word << shift) | (word >> (32 - shift));
97777 }
97778 @@ -115,7 +115,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
97779 * @word: value to rotate
97780 * @shift: bits to roll
97781 */
97782 -static inline __u32 ror32(__u32 word, unsigned int shift)
97783 +static inline __u32 __intentional_overflow(-1) ror32(__u32 word, unsigned int shift)
97784 {
97785 return (word >> shift) | (word << (32 - shift));
97786 }
97787 @@ -171,7 +171,7 @@ static inline __s32 sign_extend32(__u32 value, int index)
97788 return (__s32)(value << shift) >> shift;
97789 }
97790
97791 -static inline unsigned fls_long(unsigned long l)
97792 +static inline unsigned __intentional_overflow(-1) fls_long(unsigned long l)
97793 {
97794 if (sizeof(l) == 4)
97795 return fls(l);
97796 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
97797 index d4068c1..77159a1 100644
97798 --- a/include/linux/blkdev.h
97799 +++ b/include/linux/blkdev.h
97800 @@ -1567,7 +1567,7 @@ struct block_device_operations {
97801 /* this callback is with swap_lock and sometimes page table lock held */
97802 void (*swap_slot_free_notify) (struct block_device *, unsigned long);
97803 struct module *owner;
97804 -};
97805 +} __do_const;
97806
97807 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
97808 unsigned long);
97809 diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
97810 index afc1343..9735539 100644
97811 --- a/include/linux/blktrace_api.h
97812 +++ b/include/linux/blktrace_api.h
97813 @@ -25,7 +25,7 @@ struct blk_trace {
97814 struct dentry *dropped_file;
97815 struct dentry *msg_file;
97816 struct list_head running_list;
97817 - atomic_t dropped;
97818 + atomic_unchecked_t dropped;
97819 };
97820
97821 extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
97822 diff --git a/include/linux/cache.h b/include/linux/cache.h
97823 index 17e7e82..1d7da26 100644
97824 --- a/include/linux/cache.h
97825 +++ b/include/linux/cache.h
97826 @@ -16,6 +16,14 @@
97827 #define __read_mostly
97828 #endif
97829
97830 +#ifndef __read_only
97831 +#ifdef CONFIG_PAX_KERNEXEC
97832 +#error KERNEXEC requires __read_only
97833 +#else
97834 +#define __read_only __read_mostly
97835 +#endif
97836 +#endif
97837 +
97838 #ifndef ____cacheline_aligned
97839 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
97840 #endif
97841 diff --git a/include/linux/capability.h b/include/linux/capability.h
97842 index af9f0b9..71a5e5c 100644
97843 --- a/include/linux/capability.h
97844 +++ b/include/linux/capability.h
97845 @@ -237,15 +237,28 @@ static inline bool capable(int cap)
97846 {
97847 return true;
97848 }
97849 +static inline bool capable_nolog(int cap)
97850 +{
97851 + return true;
97852 +}
97853 static inline bool ns_capable(struct user_namespace *ns, int cap)
97854 {
97855 return true;
97856 }
97857 +static inline bool ns_capable_nolog(struct user_namespace *ns, int cap)
97858 +{
97859 + return true;
97860 +}
97861 #endif /* CONFIG_MULTIUSER */
97862 extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
97863 +extern bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap);
97864 extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
97865 +extern bool capable_nolog(int cap);
97866 +extern bool ns_capable_nolog(struct user_namespace *ns, int cap);
97867
97868 /* audit system wants to get cap info from files as well */
97869 extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
97870
97871 +extern int is_privileged_binary(const struct dentry *dentry);
97872 +
97873 #endif /* !_LINUX_CAPABILITY_H */
97874 diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
97875 index 8609d57..86e4d79 100644
97876 --- a/include/linux/cdrom.h
97877 +++ b/include/linux/cdrom.h
97878 @@ -87,7 +87,6 @@ struct cdrom_device_ops {
97879
97880 /* driver specifications */
97881 const int capability; /* capability flags */
97882 - int n_minors; /* number of active minor devices */
97883 /* handle uniform packets for scsi type devices (scsi,atapi) */
97884 int (*generic_packet) (struct cdrom_device_info *,
97885 struct packet_command *);
97886 diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
97887 index bda5ec0b4..51d8ea1 100644
97888 --- a/include/linux/cleancache.h
97889 +++ b/include/linux/cleancache.h
97890 @@ -35,7 +35,7 @@ struct cleancache_ops {
97891 void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
97892 void (*invalidate_inode)(int, struct cleancache_filekey);
97893 void (*invalidate_fs)(int);
97894 -};
97895 +} __no_const;
97896
97897 extern int cleancache_register_ops(struct cleancache_ops *ops);
97898 extern void __cleancache_init_fs(struct super_block *);
97899 diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
97900 index 78842f4..7e7f81f 100644
97901 --- a/include/linux/clk-provider.h
97902 +++ b/include/linux/clk-provider.h
97903 @@ -196,6 +196,7 @@ struct clk_ops {
97904 void (*init)(struct clk_hw *hw);
97905 int (*debug_init)(struct clk_hw *hw, struct dentry *dentry);
97906 };
97907 +typedef struct clk_ops __no_const clk_ops_no_const;
97908
97909 /**
97910 * struct clk_init_data - holds init data that's common to all clocks and is
97911 diff --git a/include/linux/compat.h b/include/linux/compat.h
97912 index a76c917..63b52db 100644
97913 --- a/include/linux/compat.h
97914 +++ b/include/linux/compat.h
97915 @@ -316,7 +316,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
97916 compat_size_t __user *len_ptr);
97917
97918 asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
97919 -asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
97920 +asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg) __intentional_overflow(0);
97921 asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
97922 asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
97923 compat_ssize_t msgsz, int msgflg);
97924 @@ -325,7 +325,7 @@ asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp,
97925 long compat_sys_msgctl(int first, int second, void __user *uptr);
97926 long compat_sys_shmctl(int first, int second, void __user *uptr);
97927 long compat_sys_semtimedop(int semid, struct sembuf __user *tsems,
97928 - unsigned nsems, const struct compat_timespec __user *timeout);
97929 + compat_long_t nsems, const struct compat_timespec __user *timeout);
97930 asmlinkage long compat_sys_keyctl(u32 option,
97931 u32 arg2, u32 arg3, u32 arg4, u32 arg5);
97932 asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
97933 @@ -439,7 +439,7 @@ extern int compat_ptrace_request(struct task_struct *child,
97934 extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
97935 compat_ulong_t addr, compat_ulong_t data);
97936 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
97937 - compat_long_t addr, compat_long_t data);
97938 + compat_ulong_t addr, compat_ulong_t data);
97939
97940 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
97941 /*
97942 diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
97943 index dfaa7b3..58cebfb 100644
97944 --- a/include/linux/compiler-gcc.h
97945 +++ b/include/linux/compiler-gcc.h
97946 @@ -116,8 +116,8 @@
97947 */
97948 #define __pure __attribute__((pure))
97949 #define __aligned(x) __attribute__((aligned(x)))
97950 -#define __printf(a, b) __attribute__((format(printf, a, b)))
97951 -#define __scanf(a, b) __attribute__((format(scanf, a, b)))
97952 +#define __printf(a, b) __attribute__((format(printf, a, b))) __nocapture(a, b)
97953 +#define __scanf(a, b) __attribute__((format(scanf, a, b))) __nocapture(a, b)
97954 #define __attribute_const__ __attribute__((__const__))
97955 #define __maybe_unused __attribute__((unused))
97956 #define __always_unused __attribute__((unused))
97957 @@ -184,9 +184,38 @@
97958 # define __compiletime_warning(message) __attribute__((warning(message)))
97959 # define __compiletime_error(message) __attribute__((error(message)))
97960 #endif /* __CHECKER__ */
97961 +
97962 +#define __alloc_size(...) __attribute((alloc_size(__VA_ARGS__)))
97963 +#define __bos(ptr, arg) __builtin_object_size((ptr), (arg))
97964 +#define __bos0(ptr) __bos((ptr), 0)
97965 +#define __bos1(ptr) __bos((ptr), 1)
97966 #endif /* GCC_VERSION >= 40300 */
97967
97968 #if GCC_VERSION >= 40500
97969 +
97970 +#ifdef RANDSTRUCT_PLUGIN
97971 +#define __randomize_layout __attribute__((randomize_layout))
97972 +#define __no_randomize_layout __attribute__((no_randomize_layout))
97973 +#endif
97974 +
97975 +#ifdef CONSTIFY_PLUGIN
97976 +#define __no_const __attribute__((no_const))
97977 +#define __do_const __attribute__((do_const))
97978 +#endif
97979 +
97980 +#ifdef SIZE_OVERFLOW_PLUGIN
97981 +#define __size_overflow(...) __attribute__((size_overflow(__VA_ARGS__)))
97982 +#define __intentional_overflow(...) __attribute__((intentional_overflow(__VA_ARGS__)))
97983 +#endif
97984 +
97985 +#ifdef LATENT_ENTROPY_PLUGIN
97986 +#define __latent_entropy __attribute__((latent_entropy))
97987 +#endif
97988 +
97989 +#ifdef INITIFY_PLUGIN
97990 +#define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
97991 +#endif
97992 +
97993 /*
97994 * Mark a position in code as unreachable. This can be used to
97995 * suppress control flow warnings after asm blocks that transfer
97996 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
97997 index e08a6ae..8d965c5 100644
97998 --- a/include/linux/compiler.h
97999 +++ b/include/linux/compiler.h
98000 @@ -5,11 +5,14 @@
98001
98002 #ifdef __CHECKER__
98003 # define __user __attribute__((noderef, address_space(1)))
98004 +# define __force_user __force __user
98005 # define __kernel __attribute__((address_space(0)))
98006 +# define __force_kernel __force __kernel
98007 # define __safe __attribute__((safe))
98008 # define __force __attribute__((force))
98009 # define __nocast __attribute__((nocast))
98010 # define __iomem __attribute__((noderef, address_space(2)))
98011 +# define __force_iomem __force __iomem
98012 # define __must_hold(x) __attribute__((context(x,1,1)))
98013 # define __acquires(x) __attribute__((context(x,0,1)))
98014 # define __releases(x) __attribute__((context(x,1,0)))
98015 @@ -17,21 +20,39 @@
98016 # define __release(x) __context__(x,-1)
98017 # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
98018 # define __percpu __attribute__((noderef, address_space(3)))
98019 +# define __force_percpu __force __percpu
98020 # define __pmem __attribute__((noderef, address_space(5)))
98021 +# define __force_pmem __force __pmem
98022 #ifdef CONFIG_SPARSE_RCU_POINTER
98023 # define __rcu __attribute__((noderef, address_space(4)))
98024 +# define __force_rcu __force __rcu
98025 #else
98026 # define __rcu
98027 +# define __force_rcu
98028 #endif
98029 extern void __chk_user_ptr(const volatile void __user *);
98030 extern void __chk_io_ptr(const volatile void __iomem *);
98031 #else
98032 -# define __user
98033 -# define __kernel
98034 +# ifdef CHECKER_PLUGIN
98035 +//# define __user
98036 +//# define __force_user
98037 +//# define __kernel
98038 +//# define __force_kernel
98039 +# else
98040 +# ifdef STRUCTLEAK_PLUGIN
98041 +# define __user __attribute__((user))
98042 +# else
98043 +# define __user
98044 +# endif
98045 +# define __force_user
98046 +# define __kernel
98047 +# define __force_kernel
98048 +# endif
98049 # define __safe
98050 # define __force
98051 # define __nocast
98052 # define __iomem
98053 +# define __force_iomem
98054 # define __chk_user_ptr(x) (void)0
98055 # define __chk_io_ptr(x) (void)0
98056 # define __builtin_warning(x, y...) (1)
98057 @@ -42,8 +63,11 @@ extern void __chk_io_ptr(const volatile void __iomem *);
98058 # define __release(x) (void)0
98059 # define __cond_lock(x,c) (c)
98060 # define __percpu
98061 +# define __force_percpu
98062 # define __rcu
98063 +# define __force_rcu
98064 # define __pmem
98065 +# define __force_pmem
98066 #endif
98067
98068 /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
98069 @@ -198,34 +222,6 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
98070
98071 #include <uapi/linux/types.h>
98072
98073 -static __always_inline void __read_once_size(const volatile void *p, void *res, int size)
98074 -{
98075 - switch (size) {
98076 - case 1: *(__u8 *)res = *(volatile __u8 *)p; break;
98077 - case 2: *(__u16 *)res = *(volatile __u16 *)p; break;
98078 - case 4: *(__u32 *)res = *(volatile __u32 *)p; break;
98079 - case 8: *(__u64 *)res = *(volatile __u64 *)p; break;
98080 - default:
98081 - barrier();
98082 - __builtin_memcpy((void *)res, (const void *)p, size);
98083 - barrier();
98084 - }
98085 -}
98086 -
98087 -static __always_inline void __write_once_size(volatile void *p, void *res, int size)
98088 -{
98089 - switch (size) {
98090 - case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
98091 - case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
98092 - case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
98093 - case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
98094 - default:
98095 - barrier();
98096 - __builtin_memcpy((void *)p, (const void *)res, size);
98097 - barrier();
98098 - }
98099 -}
98100 -
98101 /*
98102 * Prevent the compiler from merging or refetching reads or writes. The
98103 * compiler is also forbidden from reordering successive instances of
98104 @@ -248,11 +244,16 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98105 * required ordering.
98106 */
98107
98108 -#define READ_ONCE(x) \
98109 - ({ union { typeof(x) __val; char __c[1]; } __u; __read_once_size(&(x), __u.__c, sizeof(x)); __u.__val; })
98110 +#define READ_ONCE(x) ({ \
98111 + typeof(x) __val = *(volatile typeof(x) *)&(x); \
98112 + __val; \
98113 +})
98114
98115 -#define WRITE_ONCE(x, val) \
98116 - ({ union { typeof(x) __val; char __c[1]; } __u = { .__val = (val) }; __write_once_size(&(x), __u.__c, sizeof(x)); __u.__val; })
98117 +#define WRITE_ONCE(x, val) ({ \
98118 + typeof(x) __val = (val); \
98119 + (x) = *(volatile typeof(x) *)&__val; \
98120 + __val; \
98121 +})
98122
98123 /**
98124 * READ_ONCE_CTRL - Read a value heading a control dependency
98125 @@ -370,6 +371,38 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98126 # define __attribute_const__ /* unimplemented */
98127 #endif
98128
98129 +#ifndef __randomize_layout
98130 +# define __randomize_layout
98131 +#endif
98132 +
98133 +#ifndef __no_randomize_layout
98134 +# define __no_randomize_layout
98135 +#endif
98136 +
98137 +#ifndef __no_const
98138 +# define __no_const
98139 +#endif
98140 +
98141 +#ifndef __do_const
98142 +# define __do_const
98143 +#endif
98144 +
98145 +#ifndef __size_overflow
98146 +# define __size_overflow(...)
98147 +#endif
98148 +
98149 +#ifndef __intentional_overflow
98150 +# define __intentional_overflow(...)
98151 +#endif
98152 +
98153 +#ifndef __latent_entropy
98154 +# define __latent_entropy
98155 +#endif
98156 +
98157 +#ifndef __nocapture
98158 +# define __nocapture(...)
98159 +#endif
98160 +
98161 /*
98162 * Tell gcc if a function is cold. The compiler will assume any path
98163 * directly leading to the call is unlikely.
98164 @@ -379,6 +412,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98165 #define __cold
98166 #endif
98167
98168 +#ifndef __alloc_size
98169 +#define __alloc_size(...)
98170 +#endif
98171 +
98172 +#ifndef __bos
98173 +#define __bos(ptr, arg)
98174 +#endif
98175 +
98176 +#ifndef __bos0
98177 +#define __bos0(ptr)
98178 +#endif
98179 +
98180 +#ifndef __bos1
98181 +#define __bos1(ptr)
98182 +#endif
98183 +
98184 /* Simple shorthand for a section definition */
98185 #ifndef __section
98186 # define __section(S) __attribute__ ((__section__(#S)))
98187 @@ -393,6 +442,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98188 # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
98189 #endif
98190
98191 +#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))
98192 +
98193 /* Is this type a native word size -- useful for atomic operations */
98194 #ifndef __native_word
98195 # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
98196 @@ -472,8 +523,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
98197 */
98198 #define __ACCESS_ONCE(x) ({ \
98199 __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
98200 - (volatile typeof(x) *)&(x); })
98201 + (volatile const typeof(x) *)&(x); })
98202 #define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
98203 +#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
98204
98205 /**
98206 * lockless_dereference() - safely load a pointer for later dereference
98207 diff --git a/include/linux/configfs.h b/include/linux/configfs.h
98208 index 63a36e8..26b0825 100644
98209 --- a/include/linux/configfs.h
98210 +++ b/include/linux/configfs.h
98211 @@ -125,7 +125,7 @@ struct configfs_attribute {
98212 const char *ca_name;
98213 struct module *ca_owner;
98214 umode_t ca_mode;
98215 -};
98216 +} __do_const;
98217
98218 /*
98219 * Users often need to create attribute structures for their configurable
98220 diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
98221 index bde1e56..168de74 100644
98222 --- a/include/linux/cpufreq.h
98223 +++ b/include/linux/cpufreq.h
98224 @@ -211,6 +211,7 @@ struct global_attr {
98225 ssize_t (*store)(struct kobject *a, struct attribute *b,
98226 const char *c, size_t count);
98227 };
98228 +typedef struct global_attr __no_const global_attr_no_const;
98229
98230 #define define_one_global_ro(_name) \
98231 static struct global_attr _name = \
98232 @@ -282,7 +283,7 @@ struct cpufreq_driver {
98233 bool boost_supported;
98234 bool boost_enabled;
98235 int (*set_boost)(int state);
98236 -};
98237 +} __do_const;
98238
98239 /* flags */
98240 #define CPUFREQ_STICKY (1 << 0) /* driver isn't removed even if
98241 diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
98242 index d075d34..3b6734a 100644
98243 --- a/include/linux/cpuidle.h
98244 +++ b/include/linux/cpuidle.h
98245 @@ -59,7 +59,8 @@ struct cpuidle_state {
98246 void (*enter_freeze) (struct cpuidle_device *dev,
98247 struct cpuidle_driver *drv,
98248 int index);
98249 -};
98250 +} __do_const;
98251 +typedef struct cpuidle_state __no_const cpuidle_state_no_const;
98252
98253 /* Idle State Flags */
98254 #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */
98255 @@ -235,7 +236,7 @@ struct cpuidle_governor {
98256 void (*reflect) (struct cpuidle_device *dev, int index);
98257
98258 struct module *owner;
98259 -};
98260 +} __do_const;
98261
98262 #ifdef CONFIG_CPU_IDLE
98263 extern int cpuidle_register_governor(struct cpuidle_governor *gov);
98264 diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
98265 index 59915ea..81ebec0 100644
98266 --- a/include/linux/cpumask.h
98267 +++ b/include/linux/cpumask.h
98268 @@ -127,17 +127,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
98269 }
98270
98271 /* Valid inputs for n are -1 and 0. */
98272 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
98273 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
98274 {
98275 return n+1;
98276 }
98277
98278 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
98279 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
98280 {
98281 return n+1;
98282 }
98283
98284 -static inline unsigned int cpumask_next_and(int n,
98285 +static inline unsigned int __intentional_overflow(-1) cpumask_next_and(int n,
98286 const struct cpumask *srcp,
98287 const struct cpumask *andp)
98288 {
98289 @@ -181,7 +181,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
98290 *
98291 * Returns >= nr_cpu_ids if no further cpus set.
98292 */
98293 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
98294 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
98295 {
98296 /* -1 is a legal arg here. */
98297 if (n != -1)
98298 @@ -196,7 +196,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
98299 *
98300 * Returns >= nr_cpu_ids if no further cpus unset.
98301 */
98302 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
98303 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
98304 {
98305 /* -1 is a legal arg here. */
98306 if (n != -1)
98307 @@ -204,7 +204,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
98308 return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
98309 }
98310
98311 -int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
98312 +int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *) __intentional_overflow(-1);
98313 int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
98314 unsigned int cpumask_local_spread(unsigned int i, int node);
98315
98316 @@ -471,7 +471,7 @@ static inline bool cpumask_full(const struct cpumask *srcp)
98317 * cpumask_weight - Count of bits in *srcp
98318 * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
98319 */
98320 -static inline unsigned int cpumask_weight(const struct cpumask *srcp)
98321 +static inline unsigned int __intentional_overflow(-1) cpumask_weight(const struct cpumask *srcp)
98322 {
98323 return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
98324 }
98325 diff --git a/include/linux/cred.h b/include/linux/cred.h
98326 index 8b6c083..51cb9f5 100644
98327 --- a/include/linux/cred.h
98328 +++ b/include/linux/cred.h
98329 @@ -35,7 +35,7 @@ struct group_info {
98330 int nblocks;
98331 kgid_t small_block[NGROUPS_SMALL];
98332 kgid_t *blocks[0];
98333 -};
98334 +} __randomize_layout;
98335
98336 /**
98337 * get_group_info - Get a reference to a group info structure
98338 @@ -152,7 +152,7 @@ struct cred {
98339 struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */
98340 struct group_info *group_info; /* supplementary groups for euid/fsgid */
98341 struct rcu_head rcu; /* RCU deletion hook */
98342 -};
98343 +} __randomize_layout;
98344
98345 extern void __put_cred(struct cred *);
98346 extern void exit_creds(struct task_struct *);
98347 @@ -210,6 +210,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
98348 static inline void validate_process_creds(void)
98349 {
98350 }
98351 +static inline void validate_task_creds(struct task_struct *task)
98352 +{
98353 +}
98354 #endif
98355
98356 /**
98357 @@ -347,6 +350,7 @@ static inline void put_cred(const struct cred *_cred)
98358
98359 #define task_uid(task) (task_cred_xxx((task), uid))
98360 #define task_euid(task) (task_cred_xxx((task), euid))
98361 +#define task_securebits(task) (task_cred_xxx((task), securebits))
98362
98363 #define current_cred_xxx(xxx) \
98364 ({ \
98365 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
98366 index 81ef938..9ec0fdb 100644
98367 --- a/include/linux/crypto.h
98368 +++ b/include/linux/crypto.h
98369 @@ -569,7 +569,7 @@ struct cipher_tfm {
98370 const u8 *key, unsigned int keylen);
98371 void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
98372 void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
98373 -};
98374 +} __no_const;
98375
98376 struct hash_tfm {
98377 int (*init)(struct hash_desc *desc);
98378 @@ -590,7 +590,7 @@ struct compress_tfm {
98379 int (*cot_decompress)(struct crypto_tfm *tfm,
98380 const u8 *src, unsigned int slen,
98381 u8 *dst, unsigned int *dlen);
98382 -};
98383 +} __no_const;
98384
98385 #define crt_ablkcipher crt_u.ablkcipher
98386 #define crt_blkcipher crt_u.blkcipher
98387 diff --git a/include/linux/ctype.h b/include/linux/ctype.h
98388 index 653589e..4ef254a 100644
98389 --- a/include/linux/ctype.h
98390 +++ b/include/linux/ctype.h
98391 @@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c)
98392 * Fast implementation of tolower() for internal usage. Do not use in your
98393 * code.
98394 */
98395 -static inline char _tolower(const char c)
98396 +static inline unsigned char _tolower(const unsigned char c)
98397 {
98398 return c | 0x20;
98399 }
98400 diff --git a/include/linux/dcache.h b/include/linux/dcache.h
98401 index d67ae11..9ec20d2 100644
98402 --- a/include/linux/dcache.h
98403 +++ b/include/linux/dcache.h
98404 @@ -123,6 +123,9 @@ struct dentry {
98405 unsigned long d_time; /* used by d_revalidate */
98406 void *d_fsdata; /* fs-specific data */
98407
98408 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
98409 + atomic_t chroot_refcnt; /* tracks use of directory in chroot */
98410 +#endif
98411 struct list_head d_lru; /* LRU list */
98412 struct list_head d_child; /* child of parent list */
98413 struct list_head d_subdirs; /* our children */
98414 @@ -133,7 +136,7 @@ struct dentry {
98415 struct hlist_node d_alias; /* inode alias list */
98416 struct rcu_head d_rcu;
98417 } d_u;
98418 -};
98419 +} __randomize_layout;
98420
98421 /*
98422 * dentry->d_lock spinlock nesting subclasses:
98423 @@ -321,7 +324,7 @@ extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
98424
98425 static inline unsigned d_count(const struct dentry *dentry)
98426 {
98427 - return dentry->d_lockref.count;
98428 + return __lockref_read(&dentry->d_lockref);
98429 }
98430
98431 /*
98432 @@ -350,7 +353,7 @@ extern char *dentry_path(struct dentry *, char *, int);
98433 static inline struct dentry *dget_dlock(struct dentry *dentry)
98434 {
98435 if (dentry)
98436 - dentry->d_lockref.count++;
98437 + __lockref_inc(&dentry->d_lockref);
98438 return dentry;
98439 }
98440
98441 diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
98442 index 7925bf0..d5143d2 100644
98443 --- a/include/linux/decompress/mm.h
98444 +++ b/include/linux/decompress/mm.h
98445 @@ -77,7 +77,7 @@ static void free(void *where)
98446 * warnings when not needed (indeed large_malloc / large_free are not
98447 * needed by inflate */
98448
98449 -#define malloc(a) kmalloc(a, GFP_KERNEL)
98450 +#define malloc(a) kmalloc((a), GFP_KERNEL)
98451 #define free(a) kfree(a)
98452
98453 #define large_malloc(a) vmalloc(a)
98454 diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
98455 index ce447f0..83c66bd 100644
98456 --- a/include/linux/devfreq.h
98457 +++ b/include/linux/devfreq.h
98458 @@ -114,7 +114,7 @@ struct devfreq_governor {
98459 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
98460 int (*event_handler)(struct devfreq *devfreq,
98461 unsigned int event, void *data);
98462 -};
98463 +} __do_const;
98464
98465 /**
98466 * struct devfreq - Device devfreq structure
98467 diff --git a/include/linux/device.h b/include/linux/device.h
98468 index a2b4ea7..b07dddd 100644
98469 --- a/include/linux/device.h
98470 +++ b/include/linux/device.h
98471 @@ -342,7 +342,7 @@ struct subsys_interface {
98472 struct list_head node;
98473 int (*add_dev)(struct device *dev, struct subsys_interface *sif);
98474 int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
98475 -};
98476 +} __do_const;
98477
98478 int subsys_interface_register(struct subsys_interface *sif);
98479 void subsys_interface_unregister(struct subsys_interface *sif);
98480 @@ -538,7 +538,7 @@ struct device_type {
98481 void (*release)(struct device *dev);
98482
98483 const struct dev_pm_ops *pm;
98484 -};
98485 +} __do_const;
98486
98487 /* interface for exporting device attributes */
98488 struct device_attribute {
98489 @@ -548,11 +548,12 @@ struct device_attribute {
98490 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
98491 const char *buf, size_t count);
98492 };
98493 +typedef struct device_attribute __no_const device_attribute_no_const;
98494
98495 struct dev_ext_attribute {
98496 struct device_attribute attr;
98497 void *var;
98498 -};
98499 +} __do_const;
98500
98501 ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
98502 char *buf);
98503 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
98504 index ac07ff0..edff186 100644
98505 --- a/include/linux/dma-mapping.h
98506 +++ b/include/linux/dma-mapping.h
98507 @@ -64,7 +64,7 @@ struct dma_map_ops {
98508 u64 (*get_required_mask)(struct device *dev);
98509 #endif
98510 int is_phys;
98511 -};
98512 +} __do_const;
98513
98514 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
98515
98516 diff --git a/include/linux/efi.h b/include/linux/efi.h
98517 index 85ef051..2714c3b 100644
98518 --- a/include/linux/efi.h
98519 +++ b/include/linux/efi.h
98520 @@ -1073,6 +1073,7 @@ struct efivar_operations {
98521 efi_set_variable_nonblocking_t *set_variable_nonblocking;
98522 efi_query_variable_store_t *query_variable_store;
98523 };
98524 +typedef struct efivar_operations __no_const efivar_operations_no_const;
98525
98526 struct efivars {
98527 /*
98528 diff --git a/include/linux/elf.h b/include/linux/elf.h
98529 index 20fa8d8..3d0dd18 100644
98530 --- a/include/linux/elf.h
98531 +++ b/include/linux/elf.h
98532 @@ -29,6 +29,7 @@ extern Elf32_Dyn _DYNAMIC [];
98533 #define elf_note elf32_note
98534 #define elf_addr_t Elf32_Off
98535 #define Elf_Half Elf32_Half
98536 +#define elf_dyn Elf32_Dyn
98537
98538 #else
98539
98540 @@ -39,6 +40,7 @@ extern Elf64_Dyn _DYNAMIC [];
98541 #define elf_note elf64_note
98542 #define elf_addr_t Elf64_Off
98543 #define Elf_Half Elf64_Half
98544 +#define elf_dyn Elf64_Dyn
98545
98546 #endif
98547
98548 diff --git a/include/linux/err.h b/include/linux/err.h
98549 index a729120..6ede2c9 100644
98550 --- a/include/linux/err.h
98551 +++ b/include/linux/err.h
98552 @@ -20,12 +20,12 @@
98553
98554 #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
98555
98556 -static inline void * __must_check ERR_PTR(long error)
98557 +static inline void * __must_check __intentional_overflow(-1) ERR_PTR(long error)
98558 {
98559 return (void *) error;
98560 }
98561
98562 -static inline long __must_check PTR_ERR(__force const void *ptr)
98563 +static inline long __must_check __intentional_overflow(-1) PTR_ERR(__force const void *ptr)
98564 {
98565 return (long) ptr;
98566 }
98567 diff --git a/include/linux/extcon.h b/include/linux/extcon.h
98568 index b16d929..d389bf1 100644
98569 --- a/include/linux/extcon.h
98570 +++ b/include/linux/extcon.h
98571 @@ -120,7 +120,7 @@ struct extcon_dev {
98572 /* /sys/class/extcon/.../mutually_exclusive/... */
98573 struct attribute_group attr_g_muex;
98574 struct attribute **attrs_muex;
98575 - struct device_attribute *d_attrs_muex;
98576 + device_attribute_no_const *d_attrs_muex;
98577 };
98578
98579 /**
98580 diff --git a/include/linux/fb.h b/include/linux/fb.h
98581 index 043f328..180ccbf 100644
98582 --- a/include/linux/fb.h
98583 +++ b/include/linux/fb.h
98584 @@ -305,7 +305,8 @@ struct fb_ops {
98585 /* called at KDB enter and leave time to prepare the console */
98586 int (*fb_debug_enter)(struct fb_info *info);
98587 int (*fb_debug_leave)(struct fb_info *info);
98588 -};
98589 +} __do_const;
98590 +typedef struct fb_ops __no_const fb_ops_no_const;
98591
98592 #ifdef CONFIG_FB_TILEBLITTING
98593 #define FB_TILE_CURSOR_NONE 0
98594 diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
98595 index fbb8874..15c61e7 100644
98596 --- a/include/linux/fdtable.h
98597 +++ b/include/linux/fdtable.h
98598 @@ -103,7 +103,7 @@ struct files_struct *get_files_struct(struct task_struct *);
98599 void put_files_struct(struct files_struct *fs);
98600 void reset_files_struct(struct files_struct *);
98601 int unshare_files(struct files_struct **);
98602 -struct files_struct *dup_fd(struct files_struct *, int *);
98603 +struct files_struct *dup_fd(struct files_struct *, int *) __latent_entropy;
98604 void do_close_on_exec(struct files_struct *);
98605 int iterate_fd(struct files_struct *, unsigned,
98606 int (*)(const void *, struct file *, unsigned),
98607 diff --git a/include/linux/fs.h b/include/linux/fs.h
98608 index 84b783f..b31767d 100644
98609 --- a/include/linux/fs.h
98610 +++ b/include/linux/fs.h
98611 @@ -439,7 +439,7 @@ struct address_space {
98612 spinlock_t private_lock; /* for use by the address_space */
98613 struct list_head private_list; /* ditto */
98614 void *private_data; /* ditto */
98615 -} __attribute__((aligned(sizeof(long))));
98616 +} __attribute__((aligned(sizeof(long)))) __randomize_layout;
98617 /*
98618 * On most architectures that alignment is already the case; but
98619 * must be enforced here for CRIS, to let the least significant bit
98620 @@ -482,7 +482,7 @@ struct block_device {
98621 int bd_fsfreeze_count;
98622 /* Mutex for freeze */
98623 struct mutex bd_fsfreeze_mutex;
98624 -};
98625 +} __randomize_layout;
98626
98627 /*
98628 * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
98629 @@ -677,7 +677,7 @@ struct inode {
98630 #endif
98631
98632 void *i_private; /* fs or device private pointer */
98633 -};
98634 +} __randomize_layout;
98635
98636 static inline int inode_unhashed(struct inode *inode)
98637 {
98638 @@ -872,7 +872,7 @@ struct file {
98639 struct list_head f_tfile_llink;
98640 #endif /* #ifdef CONFIG_EPOLL */
98641 struct address_space *f_mapping;
98642 -} __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */
98643 +} __attribute__((aligned(4))) __randomize_layout; /* lest something weird decides that 2 is OK */
98644
98645 struct file_handle {
98646 __u32 handle_bytes;
98647 @@ -1001,7 +1001,7 @@ struct file_lock {
98648 int state; /* state of grant or error if -ve */
98649 } afs;
98650 } fl_u;
98651 -};
98652 +} __randomize_layout;
98653
98654 struct file_lock_context {
98655 spinlock_t flc_lock;
98656 @@ -1380,7 +1380,7 @@ struct super_block {
98657 * Indicates how deep in a filesystem stack this SB is
98658 */
98659 int s_stack_depth;
98660 -};
98661 +} __randomize_layout;
98662
98663 extern struct timespec current_fs_time(struct super_block *sb);
98664
98665 @@ -1632,7 +1632,8 @@ struct file_operations {
98666 #ifndef CONFIG_MMU
98667 unsigned (*mmap_capabilities)(struct file *);
98668 #endif
98669 -};
98670 +} __do_const __randomize_layout;
98671 +typedef struct file_operations __no_const file_operations_no_const;
98672
98673 struct inode_operations {
98674 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
98675 @@ -2341,7 +2342,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
98676 extern int __register_chrdev(unsigned int major, unsigned int baseminor,
98677 unsigned int count, const char *name,
98678 const struct file_operations *fops);
98679 -extern void __unregister_chrdev(unsigned int major, unsigned int baseminor,
98680 +extern __nocapture(4) void __unregister_chrdev(unsigned int major, unsigned int baseminor,
98681 unsigned int count, const char *name);
98682 extern void unregister_chrdev_region(dev_t, unsigned);
98683 extern void chrdev_show(struct seq_file *,off_t);
98684 @@ -3041,4 +3042,14 @@ static inline bool dir_relax(struct inode *inode)
98685 return !IS_DEADDIR(inode);
98686 }
98687
98688 +static inline bool is_sidechannel_device(const struct inode *inode)
98689 +{
98690 +#ifdef CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL
98691 + umode_t mode = inode->i_mode;
98692 + return ((S_ISCHR(mode) || S_ISBLK(mode)) && (mode & (S_IROTH | S_IWOTH)));
98693 +#else
98694 + return false;
98695 +#endif
98696 +}
98697 +
98698 #endif /* _LINUX_FS_H */
98699 diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h
98700 index 0efc3e6..fd23610 100644
98701 --- a/include/linux/fs_struct.h
98702 +++ b/include/linux/fs_struct.h
98703 @@ -6,13 +6,13 @@
98704 #include <linux/seqlock.h>
98705
98706 struct fs_struct {
98707 - int users;
98708 + atomic_t users;
98709 spinlock_t lock;
98710 seqcount_t seq;
98711 int umask;
98712 int in_exec;
98713 struct path root, pwd;
98714 -};
98715 +} __randomize_layout;
98716
98717 extern struct kmem_cache *fs_cachep;
98718
98719 diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
98720 index 604e152..5954d0d 100644
98721 --- a/include/linux/fscache-cache.h
98722 +++ b/include/linux/fscache-cache.h
98723 @@ -117,7 +117,7 @@ struct fscache_operation {
98724 fscache_operation_release_t release;
98725 };
98726
98727 -extern atomic_t fscache_op_debug_id;
98728 +extern atomic_unchecked_t fscache_op_debug_id;
98729 extern void fscache_op_work_func(struct work_struct *work);
98730
98731 extern void fscache_enqueue_operation(struct fscache_operation *);
98732 diff --git a/include/linux/fscache.h b/include/linux/fscache.h
98733 index 115bb81..e7b812b 100644
98734 --- a/include/linux/fscache.h
98735 +++ b/include/linux/fscache.h
98736 @@ -152,7 +152,7 @@ struct fscache_cookie_def {
98737 * - this is mandatory for any object that may have data
98738 */
98739 void (*now_uncached)(void *cookie_netfs_data);
98740 -};
98741 +} __do_const;
98742
98743 /*
98744 * fscache cached network filesystem type
98745 diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
98746 index 7ee1774..72505b8 100644
98747 --- a/include/linux/fsnotify.h
98748 +++ b/include/linux/fsnotify.h
98749 @@ -197,6 +197,9 @@ static inline void fsnotify_access(struct file *file)
98750 struct inode *inode = file_inode(file);
98751 __u32 mask = FS_ACCESS;
98752
98753 + if (is_sidechannel_device(inode))
98754 + return;
98755 +
98756 if (S_ISDIR(inode->i_mode))
98757 mask |= FS_ISDIR;
98758
98759 @@ -215,6 +218,9 @@ static inline void fsnotify_modify(struct file *file)
98760 struct inode *inode = file_inode(file);
98761 __u32 mask = FS_MODIFY;
98762
98763 + if (is_sidechannel_device(inode))
98764 + return;
98765 +
98766 if (S_ISDIR(inode->i_mode))
98767 mask |= FS_ISDIR;
98768
98769 @@ -317,7 +323,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
98770 */
98771 static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name)
98772 {
98773 - return kstrdup(name, GFP_KERNEL);
98774 + return (const unsigned char *)kstrdup((const char *)name, GFP_KERNEL);
98775 }
98776
98777 /*
98778 diff --git a/include/linux/genhd.h b/include/linux/genhd.h
98779 index ec274e0..e678159 100644
98780 --- a/include/linux/genhd.h
98781 +++ b/include/linux/genhd.h
98782 @@ -194,7 +194,7 @@ struct gendisk {
98783 struct kobject *slave_dir;
98784
98785 struct timer_rand_state *random;
98786 - atomic_t sync_io; /* RAID */
98787 + atomic_unchecked_t sync_io; /* RAID */
98788 struct disk_events *ev;
98789 #ifdef CONFIG_BLK_DEV_INTEGRITY
98790 struct blk_integrity *integrity;
98791 @@ -435,7 +435,7 @@ extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
98792 extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask);
98793
98794 /* drivers/char/random.c */
98795 -extern void add_disk_randomness(struct gendisk *disk);
98796 +extern void add_disk_randomness(struct gendisk *disk) __latent_entropy;
98797 extern void rand_initialize_disk(struct gendisk *disk);
98798
98799 static inline sector_t get_start_sect(struct block_device *bdev)
98800 diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h
98801 index 667c311..abac2a7 100644
98802 --- a/include/linux/genl_magic_func.h
98803 +++ b/include/linux/genl_magic_func.h
98804 @@ -246,7 +246,7 @@ const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd)
98805 },
98806
98807 #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops)
98808 -static struct genl_ops ZZZ_genl_ops[] __read_mostly = {
98809 +static struct genl_ops ZZZ_genl_ops[] = {
98810 #include GENL_MAGIC_INCLUDE_FILE
98811 };
98812
98813 diff --git a/include/linux/gfp.h b/include/linux/gfp.h
98814 index ad35f30..30b1916 100644
98815 --- a/include/linux/gfp.h
98816 +++ b/include/linux/gfp.h
98817 @@ -35,6 +35,13 @@ struct vm_area_struct;
98818 #define ___GFP_NO_KSWAPD 0x400000u
98819 #define ___GFP_OTHER_NODE 0x800000u
98820 #define ___GFP_WRITE 0x1000000u
98821 +
98822 +#ifdef CONFIG_PAX_USERCOPY_SLABS
98823 +#define ___GFP_USERCOPY 0x2000000u
98824 +#else
98825 +#define ___GFP_USERCOPY 0
98826 +#endif
98827 +
98828 /* If the above are modified, __GFP_BITS_SHIFT may need updating */
98829
98830 /*
98831 @@ -94,6 +101,7 @@ struct vm_area_struct;
98832 #define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
98833 #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
98834 #define __GFP_WRITE ((__force gfp_t)___GFP_WRITE) /* Allocator intends to dirty page */
98835 +#define __GFP_USERCOPY ((__force gfp_t)___GFP_USERCOPY)/* Allocator intends to copy page to/from userland */
98836
98837 /*
98838 * This may seem redundant, but it's a way of annotating false positives vs.
98839 @@ -101,7 +109,7 @@ struct vm_area_struct;
98840 */
98841 #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
98842
98843 -#define __GFP_BITS_SHIFT 25 /* Room for N __GFP_FOO bits */
98844 +#define __GFP_BITS_SHIFT 26 /* Room for N __GFP_FOO bits */
98845 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
98846
98847 /* This equals 0, but use constants in case they ever change */
98848 @@ -146,6 +154,8 @@ struct vm_area_struct;
98849 /* 4GB DMA on some platforms */
98850 #define GFP_DMA32 __GFP_DMA32
98851
98852 +#define GFP_USERCOPY __GFP_USERCOPY
98853 +
98854 /* Convert GFP flags to their corresponding migrate type */
98855 static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
98856 {
98857 diff --git a/include/linux/gracl.h b/include/linux/gracl.h
98858 new file mode 100644
98859 index 0000000..91858e4
98860 --- /dev/null
98861 +++ b/include/linux/gracl.h
98862 @@ -0,0 +1,342 @@
98863 +#ifndef GR_ACL_H
98864 +#define GR_ACL_H
98865 +
98866 +#include <linux/grdefs.h>
98867 +#include <linux/resource.h>
98868 +#include <linux/capability.h>
98869 +#include <linux/dcache.h>
98870 +#include <asm/resource.h>
98871 +
98872 +/* Major status information */
98873 +
98874 +#define GR_VERSION "grsecurity 3.1"
98875 +#define GRSECURITY_VERSION 0x3100
98876 +
98877 +enum {
98878 + GR_SHUTDOWN = 0,
98879 + GR_ENABLE = 1,
98880 + GR_SPROLE = 2,
98881 + GR_OLDRELOAD = 3,
98882 + GR_SEGVMOD = 4,
98883 + GR_STATUS = 5,
98884 + GR_UNSPROLE = 6,
98885 + GR_PASSSET = 7,
98886 + GR_SPROLEPAM = 8,
98887 + GR_RELOAD = 9,
98888 +};
98889 +
98890 +/* Password setup definitions
98891 + * kernel/grhash.c */
98892 +enum {
98893 + GR_PW_LEN = 128,
98894 + GR_SALT_LEN = 16,
98895 + GR_SHA_LEN = 32,
98896 +};
98897 +
98898 +enum {
98899 + GR_SPROLE_LEN = 64,
98900 +};
98901 +
98902 +enum {
98903 + GR_NO_GLOB = 0,
98904 + GR_REG_GLOB,
98905 + GR_CREATE_GLOB
98906 +};
98907 +
98908 +#define GR_NLIMITS 32
98909 +
98910 +/* Begin Data Structures */
98911 +
98912 +struct sprole_pw {
98913 + unsigned char *rolename;
98914 + unsigned char salt[GR_SALT_LEN];
98915 + unsigned char sum[GR_SHA_LEN]; /* 256-bit SHA hash of the password */
98916 +};
98917 +
98918 +struct name_entry {
98919 + __u32 key;
98920 + u64 inode;
98921 + dev_t device;
98922 + char *name;
98923 + __u16 len;
98924 + __u8 deleted;
98925 + struct name_entry *prev;
98926 + struct name_entry *next;
98927 +};
98928 +
98929 +struct inodev_entry {
98930 + struct name_entry *nentry;
98931 + struct inodev_entry *prev;
98932 + struct inodev_entry *next;
98933 +};
98934 +
98935 +struct acl_role_db {
98936 + struct acl_role_label **r_hash;
98937 + __u32 r_size;
98938 +};
98939 +
98940 +struct inodev_db {
98941 + struct inodev_entry **i_hash;
98942 + __u32 i_size;
98943 +};
98944 +
98945 +struct name_db {
98946 + struct name_entry **n_hash;
98947 + __u32 n_size;
98948 +};
98949 +
98950 +struct crash_uid {
98951 + uid_t uid;
98952 + unsigned long expires;
98953 +};
98954 +
98955 +struct gr_hash_struct {
98956 + void **table;
98957 + void **nametable;
98958 + void *first;
98959 + __u32 table_size;
98960 + __u32 used_size;
98961 + int type;
98962 +};
98963 +
98964 +/* Userspace Grsecurity ACL data structures */
98965 +
98966 +struct acl_subject_label {
98967 + char *filename;
98968 + u64 inode;
98969 + dev_t device;
98970 + __u32 mode;
98971 + kernel_cap_t cap_mask;
98972 + kernel_cap_t cap_lower;
98973 + kernel_cap_t cap_invert_audit;
98974 +
98975 + struct rlimit res[GR_NLIMITS];
98976 + __u32 resmask;
98977 +
98978 + __u8 user_trans_type;
98979 + __u8 group_trans_type;
98980 + uid_t *user_transitions;
98981 + gid_t *group_transitions;
98982 + __u16 user_trans_num;
98983 + __u16 group_trans_num;
98984 +
98985 + __u32 sock_families[2];
98986 + __u32 ip_proto[8];
98987 + __u32 ip_type;
98988 + struct acl_ip_label **ips;
98989 + __u32 ip_num;
98990 + __u32 inaddr_any_override;
98991 +
98992 + __u32 crashes;
98993 + unsigned long expires;
98994 +
98995 + struct acl_subject_label *parent_subject;
98996 + struct gr_hash_struct *hash;
98997 + struct acl_subject_label *prev;
98998 + struct acl_subject_label *next;
98999 +
99000 + struct acl_object_label **obj_hash;
99001 + __u32 obj_hash_size;
99002 + __u16 pax_flags;
99003 +};
99004 +
99005 +struct role_allowed_ip {
99006 + __u32 addr;
99007 + __u32 netmask;
99008 +
99009 + struct role_allowed_ip *prev;
99010 + struct role_allowed_ip *next;
99011 +};
99012 +
99013 +struct role_transition {
99014 + char *rolename;
99015 +
99016 + struct role_transition *prev;
99017 + struct role_transition *next;
99018 +};
99019 +
99020 +struct acl_role_label {
99021 + char *rolename;
99022 + uid_t uidgid;
99023 + __u16 roletype;
99024 +
99025 + __u16 auth_attempts;
99026 + unsigned long expires;
99027 +
99028 + struct acl_subject_label *root_label;
99029 + struct gr_hash_struct *hash;
99030 +
99031 + struct acl_role_label *prev;
99032 + struct acl_role_label *next;
99033 +
99034 + struct role_transition *transitions;
99035 + struct role_allowed_ip *allowed_ips;
99036 + uid_t *domain_children;
99037 + __u16 domain_child_num;
99038 +
99039 + umode_t umask;
99040 +
99041 + struct acl_subject_label **subj_hash;
99042 + __u32 subj_hash_size;
99043 +};
99044 +
99045 +struct user_acl_role_db {
99046 + struct acl_role_label **r_table;
99047 + __u32 num_pointers; /* Number of allocations to track */
99048 + __u32 num_roles; /* Number of roles */
99049 + __u32 num_domain_children; /* Number of domain children */
99050 + __u32 num_subjects; /* Number of subjects */
99051 + __u32 num_objects; /* Number of objects */
99052 +};
99053 +
99054 +struct acl_object_label {
99055 + char *filename;
99056 + u64 inode;
99057 + dev_t device;
99058 + __u32 mode;
99059 +
99060 + struct acl_subject_label *nested;
99061 + struct acl_object_label *globbed;
99062 +
99063 + /* next two structures not used */
99064 +
99065 + struct acl_object_label *prev;
99066 + struct acl_object_label *next;
99067 +};
99068 +
99069 +struct acl_ip_label {
99070 + char *iface;
99071 + __u32 addr;
99072 + __u32 netmask;
99073 + __u16 low, high;
99074 + __u8 mode;
99075 + __u32 type;
99076 + __u32 proto[8];
99077 +
99078 + /* next two structures not used */
99079 +
99080 + struct acl_ip_label *prev;
99081 + struct acl_ip_label *next;
99082 +};
99083 +
99084 +struct gr_arg {
99085 + struct user_acl_role_db role_db;
99086 + unsigned char pw[GR_PW_LEN];
99087 + unsigned char salt[GR_SALT_LEN];
99088 + unsigned char sum[GR_SHA_LEN];
99089 + unsigned char sp_role[GR_SPROLE_LEN];
99090 + struct sprole_pw *sprole_pws;
99091 + dev_t segv_device;
99092 + u64 segv_inode;
99093 + uid_t segv_uid;
99094 + __u16 num_sprole_pws;
99095 + __u16 mode;
99096 +};
99097 +
99098 +struct gr_arg_wrapper {
99099 + struct gr_arg *arg;
99100 + __u32 version;
99101 + __u32 size;
99102 +};
99103 +
99104 +struct subject_map {
99105 + struct acl_subject_label *user;
99106 + struct acl_subject_label *kernel;
99107 + struct subject_map *prev;
99108 + struct subject_map *next;
99109 +};
99110 +
99111 +struct acl_subj_map_db {
99112 + struct subject_map **s_hash;
99113 + __u32 s_size;
99114 +};
99115 +
99116 +struct gr_policy_state {
99117 + struct sprole_pw **acl_special_roles;
99118 + __u16 num_sprole_pws;
99119 + struct acl_role_label *kernel_role;
99120 + struct acl_role_label *role_list;
99121 + struct acl_role_label *default_role;
99122 + struct acl_role_db acl_role_set;
99123 + struct acl_subj_map_db subj_map_set;
99124 + struct name_db name_set;
99125 + struct inodev_db inodev_set;
99126 +};
99127 +
99128 +struct gr_alloc_state {
99129 + unsigned long alloc_stack_next;
99130 + unsigned long alloc_stack_size;
99131 + void **alloc_stack;
99132 +};
99133 +
99134 +struct gr_reload_state {
99135 + struct gr_policy_state oldpolicy;
99136 + struct gr_alloc_state oldalloc;
99137 + struct gr_policy_state newpolicy;
99138 + struct gr_alloc_state newalloc;
99139 + struct gr_policy_state *oldpolicy_ptr;
99140 + struct gr_alloc_state *oldalloc_ptr;
99141 + unsigned char oldmode;
99142 +};
99143 +
99144 +/* End Data Structures Section */
99145 +
99146 +/* Hash functions generated by empirical testing by Brad Spengler
99147 + Makes good use of the low bits of the inode. Generally 0-1 times
99148 + in loop for successful match. 0-3 for unsuccessful match.
99149 + Shift/add algorithm with modulus of table size and an XOR*/
99150 +
99151 +static __inline__ unsigned int
99152 +gr_rhash(const uid_t uid, const __u16 type, const unsigned int sz)
99153 +{
99154 + return ((((uid + type) << (16 + type)) ^ uid) % sz);
99155 +}
99156 +
99157 + static __inline__ unsigned int
99158 +gr_shash(const struct acl_subject_label *userp, const unsigned int sz)
99159 +{
99160 + return ((const unsigned long)userp % sz);
99161 +}
99162 +
99163 +static __inline__ unsigned int
99164 +gr_fhash(const u64 ino, const dev_t dev, const unsigned int sz)
99165 +{
99166 + unsigned int rem;
99167 + div_u64_rem((ino + dev) ^ ((ino << 13) + (ino << 23) + (dev << 9)), sz, &rem);
99168 + return rem;
99169 +}
99170 +
99171 +static __inline__ unsigned int
99172 +gr_nhash(const char *name, const __u16 len, const unsigned int sz)
99173 +{
99174 + return full_name_hash((const unsigned char *)name, len) % sz;
99175 +}
99176 +
99177 +#define FOR_EACH_SUBJECT_START(role,subj,iter) \
99178 + subj = NULL; \
99179 + iter = 0; \
99180 + while (iter < role->subj_hash_size) { \
99181 + if (subj == NULL) \
99182 + subj = role->subj_hash[iter]; \
99183 + if (subj == NULL) { \
99184 + iter++; \
99185 + continue; \
99186 + }
99187 +
99188 +#define FOR_EACH_SUBJECT_END(subj,iter) \
99189 + subj = subj->next; \
99190 + if (subj == NULL) \
99191 + iter++; \
99192 + }
99193 +
99194 +
99195 +#define FOR_EACH_NESTED_SUBJECT_START(role,subj) \
99196 + subj = role->hash->first; \
99197 + while (subj != NULL) {
99198 +
99199 +#define FOR_EACH_NESTED_SUBJECT_END(subj) \
99200 + subj = subj->next; \
99201 + }
99202 +
99203 +#endif
99204 +
99205 diff --git a/include/linux/gracl_compat.h b/include/linux/gracl_compat.h
99206 new file mode 100644
99207 index 0000000..af64092
99208 --- /dev/null
99209 +++ b/include/linux/gracl_compat.h
99210 @@ -0,0 +1,156 @@
99211 +#ifndef GR_ACL_COMPAT_H
99212 +#define GR_ACL_COMPAT_H
99213 +
99214 +#include <linux/resource.h>
99215 +#include <asm/resource.h>
99216 +
99217 +struct sprole_pw_compat {
99218 + compat_uptr_t rolename;
99219 + unsigned char salt[GR_SALT_LEN];
99220 + unsigned char sum[GR_SHA_LEN];
99221 +};
99222 +
99223 +struct gr_hash_struct_compat {
99224 + compat_uptr_t table;
99225 + compat_uptr_t nametable;
99226 + compat_uptr_t first;
99227 + __u32 table_size;
99228 + __u32 used_size;
99229 + int type;
99230 +};
99231 +
99232 +struct acl_subject_label_compat {
99233 + compat_uptr_t filename;
99234 + compat_u64 inode;
99235 + __u32 device;
99236 + __u32 mode;
99237 + kernel_cap_t cap_mask;
99238 + kernel_cap_t cap_lower;
99239 + kernel_cap_t cap_invert_audit;
99240 +
99241 + struct compat_rlimit res[GR_NLIMITS];
99242 + __u32 resmask;
99243 +
99244 + __u8 user_trans_type;
99245 + __u8 group_trans_type;
99246 + compat_uptr_t user_transitions;
99247 + compat_uptr_t group_transitions;
99248 + __u16 user_trans_num;
99249 + __u16 group_trans_num;
99250 +
99251 + __u32 sock_families[2];
99252 + __u32 ip_proto[8];
99253 + __u32 ip_type;
99254 + compat_uptr_t ips;
99255 + __u32 ip_num;
99256 + __u32 inaddr_any_override;
99257 +
99258 + __u32 crashes;
99259 + compat_ulong_t expires;
99260 +
99261 + compat_uptr_t parent_subject;
99262 + compat_uptr_t hash;
99263 + compat_uptr_t prev;
99264 + compat_uptr_t next;
99265 +
99266 + compat_uptr_t obj_hash;
99267 + __u32 obj_hash_size;
99268 + __u16 pax_flags;
99269 +};
99270 +
99271 +struct role_allowed_ip_compat {
99272 + __u32 addr;
99273 + __u32 netmask;
99274 +
99275 + compat_uptr_t prev;
99276 + compat_uptr_t next;
99277 +};
99278 +
99279 +struct role_transition_compat {
99280 + compat_uptr_t rolename;
99281 +
99282 + compat_uptr_t prev;
99283 + compat_uptr_t next;
99284 +};
99285 +
99286 +struct acl_role_label_compat {
99287 + compat_uptr_t rolename;
99288 + uid_t uidgid;
99289 + __u16 roletype;
99290 +
99291 + __u16 auth_attempts;
99292 + compat_ulong_t expires;
99293 +
99294 + compat_uptr_t root_label;
99295 + compat_uptr_t hash;
99296 +
99297 + compat_uptr_t prev;
99298 + compat_uptr_t next;
99299 +
99300 + compat_uptr_t transitions;
99301 + compat_uptr_t allowed_ips;
99302 + compat_uptr_t domain_children;
99303 + __u16 domain_child_num;
99304 +
99305 + umode_t umask;
99306 +
99307 + compat_uptr_t subj_hash;
99308 + __u32 subj_hash_size;
99309 +};
99310 +
99311 +struct user_acl_role_db_compat {
99312 + compat_uptr_t r_table;
99313 + __u32 num_pointers;
99314 + __u32 num_roles;
99315 + __u32 num_domain_children;
99316 + __u32 num_subjects;
99317 + __u32 num_objects;
99318 +};
99319 +
99320 +struct acl_object_label_compat {
99321 + compat_uptr_t filename;
99322 + compat_u64 inode;
99323 + __u32 device;
99324 + __u32 mode;
99325 +
99326 + compat_uptr_t nested;
99327 + compat_uptr_t globbed;
99328 +
99329 + compat_uptr_t prev;
99330 + compat_uptr_t next;
99331 +};
99332 +
99333 +struct acl_ip_label_compat {
99334 + compat_uptr_t iface;
99335 + __u32 addr;
99336 + __u32 netmask;
99337 + __u16 low, high;
99338 + __u8 mode;
99339 + __u32 type;
99340 + __u32 proto[8];
99341 +
99342 + compat_uptr_t prev;
99343 + compat_uptr_t next;
99344 +};
99345 +
99346 +struct gr_arg_compat {
99347 + struct user_acl_role_db_compat role_db;
99348 + unsigned char pw[GR_PW_LEN];
99349 + unsigned char salt[GR_SALT_LEN];
99350 + unsigned char sum[GR_SHA_LEN];
99351 + unsigned char sp_role[GR_SPROLE_LEN];
99352 + compat_uptr_t sprole_pws;
99353 + __u32 segv_device;
99354 + compat_u64 segv_inode;
99355 + uid_t segv_uid;
99356 + __u16 num_sprole_pws;
99357 + __u16 mode;
99358 +};
99359 +
99360 +struct gr_arg_wrapper_compat {
99361 + compat_uptr_t arg;
99362 + __u32 version;
99363 + __u32 size;
99364 +};
99365 +
99366 +#endif
99367 diff --git a/include/linux/gralloc.h b/include/linux/gralloc.h
99368 new file mode 100644
99369 index 0000000..323ecf2
99370 --- /dev/null
99371 +++ b/include/linux/gralloc.h
99372 @@ -0,0 +1,9 @@
99373 +#ifndef __GRALLOC_H
99374 +#define __GRALLOC_H
99375 +
99376 +void acl_free_all(void);
99377 +int acl_alloc_stack_init(unsigned long size);
99378 +void *acl_alloc(unsigned long len);
99379 +void *acl_alloc_num(unsigned long num, unsigned long len);
99380 +
99381 +#endif
99382 diff --git a/include/linux/grdefs.h b/include/linux/grdefs.h
99383 new file mode 100644
99384 index 0000000..be66033
99385 --- /dev/null
99386 +++ b/include/linux/grdefs.h
99387 @@ -0,0 +1,140 @@
99388 +#ifndef GRDEFS_H
99389 +#define GRDEFS_H
99390 +
99391 +/* Begin grsecurity status declarations */
99392 +
99393 +enum {
99394 + GR_READY = 0x01,
99395 + GR_STATUS_INIT = 0x00 // disabled state
99396 +};
99397 +
99398 +/* Begin ACL declarations */
99399 +
99400 +/* Role flags */
99401 +
99402 +enum {
99403 + GR_ROLE_USER = 0x0001,
99404 + GR_ROLE_GROUP = 0x0002,
99405 + GR_ROLE_DEFAULT = 0x0004,
99406 + GR_ROLE_SPECIAL = 0x0008,
99407 + GR_ROLE_AUTH = 0x0010,
99408 + GR_ROLE_NOPW = 0x0020,
99409 + GR_ROLE_GOD = 0x0040,
99410 + GR_ROLE_LEARN = 0x0080,
99411 + GR_ROLE_TPE = 0x0100,
99412 + GR_ROLE_DOMAIN = 0x0200,
99413 + GR_ROLE_PAM = 0x0400,
99414 + GR_ROLE_PERSIST = 0x0800
99415 +};
99416 +
99417 +/* ACL Subject and Object mode flags */
99418 +enum {
99419 + GR_DELETED = 0x80000000
99420 +};
99421 +
99422 +/* ACL Object-only mode flags */
99423 +enum {
99424 + GR_READ = 0x00000001,
99425 + GR_APPEND = 0x00000002,
99426 + GR_WRITE = 0x00000004,
99427 + GR_EXEC = 0x00000008,
99428 + GR_FIND = 0x00000010,
99429 + GR_INHERIT = 0x00000020,
99430 + GR_SETID = 0x00000040,
99431 + GR_CREATE = 0x00000080,
99432 + GR_DELETE = 0x00000100,
99433 + GR_LINK = 0x00000200,
99434 + GR_AUDIT_READ = 0x00000400,
99435 + GR_AUDIT_APPEND = 0x00000800,
99436 + GR_AUDIT_WRITE = 0x00001000,
99437 + GR_AUDIT_EXEC = 0x00002000,
99438 + GR_AUDIT_FIND = 0x00004000,
99439 + GR_AUDIT_INHERIT= 0x00008000,
99440 + GR_AUDIT_SETID = 0x00010000,
99441 + GR_AUDIT_CREATE = 0x00020000,
99442 + GR_AUDIT_DELETE = 0x00040000,
99443 + GR_AUDIT_LINK = 0x00080000,
99444 + GR_PTRACERD = 0x00100000,
99445 + GR_NOPTRACE = 0x00200000,
99446 + GR_SUPPRESS = 0x00400000,
99447 + GR_NOLEARN = 0x00800000,
99448 + GR_INIT_TRANSFER= 0x01000000
99449 +};
99450 +
99451 +#define GR_AUDITS (GR_AUDIT_READ | GR_AUDIT_WRITE | GR_AUDIT_APPEND | GR_AUDIT_EXEC | \
99452 + GR_AUDIT_FIND | GR_AUDIT_INHERIT | GR_AUDIT_SETID | \
99453 + GR_AUDIT_CREATE | GR_AUDIT_DELETE | GR_AUDIT_LINK)
99454 +
99455 +/* ACL subject-only mode flags */
99456 +enum {
99457 + GR_KILL = 0x00000001,
99458 + GR_VIEW = 0x00000002,
99459 + GR_PROTECTED = 0x00000004,
99460 + GR_LEARN = 0x00000008,
99461 + GR_OVERRIDE = 0x00000010,
99462 + /* just a placeholder, this mode is only used in userspace */
99463 + GR_DUMMY = 0x00000020,
99464 + GR_PROTSHM = 0x00000040,
99465 + GR_KILLPROC = 0x00000080,
99466 + GR_KILLIPPROC = 0x00000100,
99467 + /* just a placeholder, this mode is only used in userspace */
99468 + GR_NOTROJAN = 0x00000200,
99469 + GR_PROTPROCFD = 0x00000400,
99470 + GR_PROCACCT = 0x00000800,
99471 + GR_RELAXPTRACE = 0x00001000,
99472 + //GR_NESTED = 0x00002000,
99473 + GR_INHERITLEARN = 0x00004000,
99474 + GR_PROCFIND = 0x00008000,
99475 + GR_POVERRIDE = 0x00010000,
99476 + GR_KERNELAUTH = 0x00020000,
99477 + GR_ATSECURE = 0x00040000,
99478 + GR_SHMEXEC = 0x00080000
99479 +};
99480 +
99481 +enum {
99482 + GR_PAX_ENABLE_SEGMEXEC = 0x0001,
99483 + GR_PAX_ENABLE_PAGEEXEC = 0x0002,
99484 + GR_PAX_ENABLE_MPROTECT = 0x0004,
99485 + GR_PAX_ENABLE_RANDMMAP = 0x0008,
99486 + GR_PAX_ENABLE_EMUTRAMP = 0x0010,
99487 + GR_PAX_DISABLE_SEGMEXEC = 0x0100,
99488 + GR_PAX_DISABLE_PAGEEXEC = 0x0200,
99489 + GR_PAX_DISABLE_MPROTECT = 0x0400,
99490 + GR_PAX_DISABLE_RANDMMAP = 0x0800,
99491 + GR_PAX_DISABLE_EMUTRAMP = 0x1000,
99492 +};
99493 +
99494 +enum {
99495 + GR_ID_USER = 0x01,
99496 + GR_ID_GROUP = 0x02,
99497 +};
99498 +
99499 +enum {
99500 + GR_ID_ALLOW = 0x01,
99501 + GR_ID_DENY = 0x02,
99502 +};
99503 +
99504 +#define GR_CRASH_RES 31
99505 +#define GR_UIDTABLE_MAX 500
99506 +
99507 +/* begin resource learning section */
99508 +enum {
99509 + GR_RLIM_CPU_BUMP = 60,
99510 + GR_RLIM_FSIZE_BUMP = 50000,
99511 + GR_RLIM_DATA_BUMP = 10000,
99512 + GR_RLIM_STACK_BUMP = 1000,
99513 + GR_RLIM_CORE_BUMP = 10000,
99514 + GR_RLIM_RSS_BUMP = 500000,
99515 + GR_RLIM_NPROC_BUMP = 1,
99516 + GR_RLIM_NOFILE_BUMP = 5,
99517 + GR_RLIM_MEMLOCK_BUMP = 50000,
99518 + GR_RLIM_AS_BUMP = 500000,
99519 + GR_RLIM_LOCKS_BUMP = 2,
99520 + GR_RLIM_SIGPENDING_BUMP = 5,
99521 + GR_RLIM_MSGQUEUE_BUMP = 10000,
99522 + GR_RLIM_NICE_BUMP = 1,
99523 + GR_RLIM_RTPRIO_BUMP = 1,
99524 + GR_RLIM_RTTIME_BUMP = 1000000
99525 +};
99526 +
99527 +#endif
99528 diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h
99529 new file mode 100644
99530 index 0000000..6245f9e
99531 --- /dev/null
99532 +++ b/include/linux/grinternal.h
99533 @@ -0,0 +1,230 @@
99534 +#ifndef __GRINTERNAL_H
99535 +#define __GRINTERNAL_H
99536 +
99537 +#ifdef CONFIG_GRKERNSEC
99538 +
99539 +#include <linux/fs.h>
99540 +#include <linux/mnt_namespace.h>
99541 +#include <linux/nsproxy.h>
99542 +#include <linux/gracl.h>
99543 +#include <linux/grdefs.h>
99544 +#include <linux/grmsg.h>
99545 +
99546 +void gr_add_learn_entry(const char *fmt, ...)
99547 + __attribute__ ((format (printf, 1, 2)));
99548 +__u32 gr_search_file(const struct dentry *dentry, const __u32 mode,
99549 + const struct vfsmount *mnt);
99550 +__u32 gr_check_create(const struct dentry *new_dentry,
99551 + const struct dentry *parent,
99552 + const struct vfsmount *mnt, const __u32 mode);
99553 +int gr_check_protected_task(const struct task_struct *task);
99554 +__u32 to_gr_audit(const __u32 reqmode);
99555 +int gr_set_acls(const int type);
99556 +int gr_acl_is_enabled(void);
99557 +char gr_roletype_to_char(void);
99558 +
99559 +void gr_handle_alertkill(struct task_struct *task);
99560 +char *gr_to_filename(const struct dentry *dentry,
99561 + const struct vfsmount *mnt);
99562 +char *gr_to_filename1(const struct dentry *dentry,
99563 + const struct vfsmount *mnt);
99564 +char *gr_to_filename2(const struct dentry *dentry,
99565 + const struct vfsmount *mnt);
99566 +char *gr_to_filename3(const struct dentry *dentry,
99567 + const struct vfsmount *mnt);
99568 +
99569 +extern int grsec_enable_ptrace_readexec;
99570 +extern int grsec_enable_harden_ptrace;
99571 +extern int grsec_enable_link;
99572 +extern int grsec_enable_fifo;
99573 +extern int grsec_enable_execve;
99574 +extern int grsec_enable_shm;
99575 +extern int grsec_enable_execlog;
99576 +extern int grsec_enable_signal;
99577 +extern int grsec_enable_audit_ptrace;
99578 +extern int grsec_enable_forkfail;
99579 +extern int grsec_enable_time;
99580 +extern int grsec_enable_rofs;
99581 +extern int grsec_deny_new_usb;
99582 +extern int grsec_enable_chroot_shmat;
99583 +extern int grsec_enable_chroot_mount;
99584 +extern int grsec_enable_chroot_double;
99585 +extern int grsec_enable_chroot_pivot;
99586 +extern int grsec_enable_chroot_chdir;
99587 +extern int grsec_enable_chroot_chmod;
99588 +extern int grsec_enable_chroot_mknod;
99589 +extern int grsec_enable_chroot_fchdir;
99590 +extern int grsec_enable_chroot_nice;
99591 +extern int grsec_enable_chroot_execlog;
99592 +extern int grsec_enable_chroot_caps;
99593 +extern int grsec_enable_chroot_rename;
99594 +extern int grsec_enable_chroot_sysctl;
99595 +extern int grsec_enable_chroot_unix;
99596 +extern int grsec_enable_symlinkown;
99597 +extern kgid_t grsec_symlinkown_gid;
99598 +extern int grsec_enable_tpe;
99599 +extern kgid_t grsec_tpe_gid;
99600 +extern int grsec_enable_tpe_all;
99601 +extern int grsec_enable_tpe_invert;
99602 +extern int grsec_enable_socket_all;
99603 +extern kgid_t grsec_socket_all_gid;
99604 +extern int grsec_enable_socket_client;
99605 +extern kgid_t grsec_socket_client_gid;
99606 +extern int grsec_enable_socket_server;
99607 +extern kgid_t grsec_socket_server_gid;
99608 +extern kgid_t grsec_audit_gid;
99609 +extern int grsec_enable_group;
99610 +extern int grsec_enable_log_rwxmaps;
99611 +extern int grsec_enable_mount;
99612 +extern int grsec_enable_chdir;
99613 +extern int grsec_resource_logging;
99614 +extern int grsec_enable_blackhole;
99615 +extern int grsec_lastack_retries;
99616 +extern int grsec_enable_brute;
99617 +extern int grsec_enable_harden_ipc;
99618 +extern int grsec_lock;
99619 +
99620 +extern spinlock_t grsec_alert_lock;
99621 +extern unsigned long grsec_alert_wtime;
99622 +extern unsigned long grsec_alert_fyet;
99623 +
99624 +extern spinlock_t grsec_audit_lock;
99625 +
99626 +extern rwlock_t grsec_exec_file_lock;
99627 +
99628 +#define gr_task_fullpath(tsk) ((tsk)->exec_file ? \
99629 + gr_to_filename2((tsk)->exec_file->f_path.dentry, \
99630 + (tsk)->exec_file->f_path.mnt) : "/")
99631 +
99632 +#define gr_parent_task_fullpath(tsk) ((tsk)->real_parent->exec_file ? \
99633 + gr_to_filename3((tsk)->real_parent->exec_file->f_path.dentry, \
99634 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
99635 +
99636 +#define gr_task_fullpath0(tsk) ((tsk)->exec_file ? \
99637 + gr_to_filename((tsk)->exec_file->f_path.dentry, \
99638 + (tsk)->exec_file->f_path.mnt) : "/")
99639 +
99640 +#define gr_parent_task_fullpath0(tsk) ((tsk)->real_parent->exec_file ? \
99641 + gr_to_filename1((tsk)->real_parent->exec_file->f_path.dentry, \
99642 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
99643 +
99644 +#define proc_is_chrooted(tsk_a) ((tsk_a)->gr_is_chrooted)
99645 +
99646 +#define have_same_root(tsk_a,tsk_b) ((tsk_a)->gr_chroot_dentry == (tsk_b)->gr_chroot_dentry)
99647 +
99648 +static inline bool gr_is_same_file(const struct file *file1, const struct file *file2)
99649 +{
99650 + if (file1 && file2) {
99651 + const struct inode *inode1 = file1->f_path.dentry->d_inode;
99652 + const struct inode *inode2 = file2->f_path.dentry->d_inode;
99653 + if (inode1->i_ino == inode2->i_ino && inode1->i_sb->s_dev == inode2->i_sb->s_dev)
99654 + return true;
99655 + }
99656 +
99657 + return false;
99658 +}
99659 +
99660 +#define GR_CHROOT_CAPS {{ \
99661 + CAP_TO_MASK(CAP_LINUX_IMMUTABLE) | CAP_TO_MASK(CAP_NET_ADMIN) | \
99662 + CAP_TO_MASK(CAP_SYS_MODULE) | CAP_TO_MASK(CAP_SYS_RAWIO) | \
99663 + CAP_TO_MASK(CAP_SYS_PACCT) | CAP_TO_MASK(CAP_SYS_ADMIN) | \
99664 + CAP_TO_MASK(CAP_SYS_BOOT) | CAP_TO_MASK(CAP_SYS_TIME) | \
99665 + CAP_TO_MASK(CAP_NET_RAW) | CAP_TO_MASK(CAP_SYS_TTY_CONFIG) | \
99666 + CAP_TO_MASK(CAP_IPC_OWNER) | CAP_TO_MASK(CAP_SETFCAP), \
99667 + CAP_TO_MASK(CAP_SYSLOG) | CAP_TO_MASK(CAP_MAC_ADMIN) }}
99668 +
99669 +#define security_learn(normal_msg,args...) \
99670 +({ \
99671 + read_lock(&grsec_exec_file_lock); \
99672 + gr_add_learn_entry(normal_msg "\n", ## args); \
99673 + read_unlock(&grsec_exec_file_lock); \
99674 +})
99675 +
99676 +enum {
99677 + GR_DO_AUDIT,
99678 + GR_DONT_AUDIT,
99679 + /* used for non-audit messages that we shouldn't kill the task on */
99680 + GR_DONT_AUDIT_GOOD
99681 +};
99682 +
99683 +enum {
99684 + GR_TTYSNIFF,
99685 + GR_RBAC,
99686 + GR_RBAC_STR,
99687 + GR_STR_RBAC,
99688 + GR_RBAC_MODE2,
99689 + GR_RBAC_MODE3,
99690 + GR_FILENAME,
99691 + GR_SYSCTL_HIDDEN,
99692 + GR_NOARGS,
99693 + GR_ONE_INT,
99694 + GR_ONE_INT_TWO_STR,
99695 + GR_ONE_STR,
99696 + GR_STR_INT,
99697 + GR_TWO_STR_INT,
99698 + GR_TWO_INT,
99699 + GR_TWO_U64,
99700 + GR_THREE_INT,
99701 + GR_FIVE_INT_TWO_STR,
99702 + GR_TWO_STR,
99703 + GR_THREE_STR,
99704 + GR_FOUR_STR,
99705 + GR_STR_FILENAME,
99706 + GR_FILENAME_STR,
99707 + GR_FILENAME_TWO_INT,
99708 + GR_FILENAME_TWO_INT_STR,
99709 + GR_TEXTREL,
99710 + GR_PTRACE,
99711 + GR_RESOURCE,
99712 + GR_CAP,
99713 + GR_SIG,
99714 + GR_SIG2,
99715 + GR_CRASH1,
99716 + GR_CRASH2,
99717 + GR_PSACCT,
99718 + GR_RWXMAP,
99719 + GR_RWXMAPVMA
99720 +};
99721 +
99722 +#define gr_log_hidden_sysctl(audit, msg, str) gr_log_varargs(audit, msg, GR_SYSCTL_HIDDEN, str)
99723 +#define gr_log_ttysniff(audit, msg, task) gr_log_varargs(audit, msg, GR_TTYSNIFF, task)
99724 +#define gr_log_fs_rbac_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_RBAC, dentry, mnt)
99725 +#define gr_log_fs_rbac_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_RBAC_STR, dentry, mnt, str)
99726 +#define gr_log_fs_str_rbac(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_RBAC, str, dentry, mnt)
99727 +#define gr_log_fs_rbac_mode2(audit, msg, dentry, mnt, str1, str2) gr_log_varargs(audit, msg, GR_RBAC_MODE2, dentry, mnt, str1, str2)
99728 +#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)
99729 +#define gr_log_fs_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_FILENAME, dentry, mnt)
99730 +#define gr_log_noargs(audit, msg) gr_log_varargs(audit, msg, GR_NOARGS)
99731 +#define gr_log_int(audit, msg, num) gr_log_varargs(audit, msg, GR_ONE_INT, num)
99732 +#define gr_log_int_str2(audit, msg, num, str1, str2) gr_log_varargs(audit, msg, GR_ONE_INT_TWO_STR, num, str1, str2)
99733 +#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
99734 +#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
99735 +#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
99736 +#define gr_log_two_u64(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_U64, num1, num2)
99737 +#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
99738 +#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)
99739 +#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
99740 +#define gr_log_str2_int(audit, msg, str1, str2, num) gr_log_varargs(audit, msg, GR_TWO_STR_INT, str1, str2, num)
99741 +#define gr_log_str3(audit, msg, str1, str2, str3) gr_log_varargs(audit, msg, GR_THREE_STR, str1, str2, str3)
99742 +#define gr_log_str4(audit, msg, str1, str2, str3, str4) gr_log_varargs(audit, msg, GR_FOUR_STR, str1, str2, str3, str4)
99743 +#define gr_log_str_fs(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_FILENAME, str, dentry, mnt)
99744 +#define gr_log_fs_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_FILENAME_STR, dentry, mnt, str)
99745 +#define gr_log_fs_int2(audit, msg, dentry, mnt, num1, num2) gr_log_varargs(audit, msg, GR_FILENAME_TWO_INT, dentry, mnt, num1, num2)
99746 +#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)
99747 +#define gr_log_textrel_ulong_ulong(audit, msg, str, file, ulong1, ulong2) gr_log_varargs(audit, msg, GR_TEXTREL, str, file, ulong1, ulong2)
99748 +#define gr_log_ptrace(audit, msg, task) gr_log_varargs(audit, msg, GR_PTRACE, task)
99749 +#define gr_log_res_ulong2_str(audit, msg, task, ulong1, str, ulong2) gr_log_varargs(audit, msg, GR_RESOURCE, task, ulong1, str, ulong2)
99750 +#define gr_log_cap(audit, msg, task, str) gr_log_varargs(audit, msg, GR_CAP, task, str)
99751 +#define gr_log_sig_addr(audit, msg, str, addr) gr_log_varargs(audit, msg, GR_SIG, str, addr)
99752 +#define gr_log_sig_task(audit, msg, task, num) gr_log_varargs(audit, msg, GR_SIG2, task, num)
99753 +#define gr_log_crash1(audit, msg, task, ulong) gr_log_varargs(audit, msg, GR_CRASH1, task, ulong)
99754 +#define gr_log_crash2(audit, msg, task, ulong1) gr_log_varargs(audit, msg, GR_CRASH2, task, ulong1)
99755 +#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)
99756 +#define gr_log_rwxmap(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAP, str)
99757 +#define gr_log_rwxmap_vma(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAPVMA, str)
99758 +
99759 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...);
99760 +
99761 +#endif
99762 +
99763 +#endif
99764 diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h
99765 new file mode 100644
99766 index 0000000..3092b3c
99767 --- /dev/null
99768 +++ b/include/linux/grmsg.h
99769 @@ -0,0 +1,118 @@
99770 +#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"
99771 +#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"
99772 +#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
99773 +#define GR_STOPMOD_MSG "denied modification of module state by "
99774 +#define GR_ROFS_BLOCKWRITE_MSG "denied write to block device %.950s by "
99775 +#define GR_ROFS_MOUNT_MSG "denied writable mount of %.950s by "
99776 +#define GR_IOPERM_MSG "denied use of ioperm() by "
99777 +#define GR_IOPL_MSG "denied use of iopl() by "
99778 +#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
99779 +#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
99780 +#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
99781 +#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem by "
99782 +#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
99783 +#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"
99784 +#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"
99785 +#define GR_HIDDEN_ACL_MSG "%s access to hidden file %.950s by "
99786 +#define GR_OPEN_ACL_MSG "%s open of %.950s for%s%s by "
99787 +#define GR_CREATE_ACL_MSG "%s create of %.950s for%s%s by "
99788 +#define GR_FIFO_MSG "denied writing FIFO %.950s of %d.%d by "
99789 +#define GR_MKNOD_CHROOT_MSG "denied mknod of %.950s from chroot by "
99790 +#define GR_MKNOD_ACL_MSG "%s mknod of %.950s by "
99791 +#define GR_UNIXCONNECT_ACL_MSG "%s connect() to the unix domain socket %.950s by "
99792 +#define GR_TTYSNIFF_ACL_MSG "terminal being sniffed by IP:%pI4 %.480s[%.16s:%d], parent %.480s[%.16s:%d] against "
99793 +#define GR_MKDIR_ACL_MSG "%s mkdir of %.950s by "
99794 +#define GR_RMDIR_ACL_MSG "%s rmdir of %.950s by "
99795 +#define GR_UNLINK_ACL_MSG "%s unlink of %.950s by "
99796 +#define GR_SYMLINK_ACL_MSG "%s symlink from %.480s to %.480s by "
99797 +#define GR_HARDLINK_MSG "denied hardlink of %.930s (owned by %d.%d) to %.30s for "
99798 +#define GR_LINK_ACL_MSG "%s link of %.480s to %.480s by "
99799 +#define GR_INHERIT_ACL_MSG "successful inherit of %.480s's ACL for %.480s by "
99800 +#define GR_RENAME_ACL_MSG "%s rename of %.480s to %.480s by "
99801 +#define GR_UNSAFESHARE_EXEC_ACL_MSG "denied exec with cloned fs of %.950s by "
99802 +#define GR_PTRACE_EXEC_ACL_MSG "denied ptrace of %.950s by "
99803 +#define GR_EXEC_ACL_MSG "%s execution of %.950s by "
99804 +#define GR_EXEC_TPE_MSG "denied untrusted exec (due to %.70s) of %.950s by "
99805 +#define GR_SEGVSTART_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning uid %u from login for %lu seconds"
99806 +#define GR_SEGVNOSUID_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning execution for %lu seconds"
99807 +#define GR_MOUNT_CHROOT_MSG "denied mount of %.256s as %.930s from chroot by "
99808 +#define GR_PIVOT_CHROOT_MSG "denied pivot_root from chroot by "
99809 +#define GR_TRUNCATE_ACL_MSG "%s truncate of %.950s by "
99810 +#define GR_ATIME_ACL_MSG "%s access time change of %.950s by "
99811 +#define GR_ACCESS_ACL_MSG "%s access of %.950s for%s%s%s by "
99812 +#define GR_CHROOT_CHROOT_MSG "denied double chroot to %.950s by "
99813 +#define GR_CHROOT_RENAME_MSG "denied bad rename of %.950s out of a chroot by "
99814 +#define GR_CHMOD_CHROOT_MSG "denied chmod +s of %.950s by "
99815 +#define GR_CHMOD_ACL_MSG "%s chmod of %.950s by "
99816 +#define GR_CHROOT_FCHDIR_MSG "denied fchdir outside of chroot to %.950s by "
99817 +#define GR_CHROOT_FHANDLE_MSG "denied use of file handles inside chroot by "
99818 +#define GR_CHOWN_ACL_MSG "%s chown of %.950s by "
99819 +#define GR_SETXATTR_ACL_MSG "%s setting extended attribute of %.950s by "
99820 +#define GR_REMOVEXATTR_ACL_MSG "%s removing extended attribute of %.950s by "
99821 +#define GR_WRITLIB_ACL_MSG "denied load of writable library %.950s by "
99822 +#define GR_INITF_ACL_MSG "init_variables() failed %s by "
99823 +#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"
99824 +#define GR_DEV_ACL_MSG "/dev/grsec: %d bytes sent %d required, being fed garbage by "
99825 +#define GR_SHUTS_ACL_MSG "shutdown auth success for "
99826 +#define GR_SHUTF_ACL_MSG "shutdown auth failure for "
99827 +#define GR_SHUTI_ACL_MSG "ignoring shutdown for disabled RBAC system for "
99828 +#define GR_SEGVMODS_ACL_MSG "segvmod auth success for "
99829 +#define GR_SEGVMODF_ACL_MSG "segvmod auth failure for "
99830 +#define GR_SEGVMODI_ACL_MSG "ignoring segvmod for disabled RBAC system for "
99831 +#define GR_ENABLE_ACL_MSG "%s RBAC system loaded by "
99832 +#define GR_ENABLEF_ACL_MSG "unable to load %s for "
99833 +#define GR_RELOADI_ACL_MSG "ignoring reload request for disabled RBAC system"
99834 +#define GR_RELOAD_ACL_MSG "%s RBAC system reloaded by "
99835 +#define GR_RELOADF_ACL_MSG "failed reload of %s for "
99836 +#define GR_SPROLEI_ACL_MSG "ignoring change to special role for disabled RBAC system for "
99837 +#define GR_SPROLES_ACL_MSG "successful change to special role %s (id %d) by "
99838 +#define GR_SPROLEL_ACL_MSG "special role %s (id %d) exited by "
99839 +#define GR_SPROLEF_ACL_MSG "special role %s failure for "
99840 +#define GR_UNSPROLEI_ACL_MSG "ignoring unauth of special role for disabled RBAC system for "
99841 +#define GR_UNSPROLES_ACL_MSG "successful unauth of special role %s (id %d) by "
99842 +#define GR_INVMODE_ACL_MSG "invalid mode %d by "
99843 +#define GR_PRIORITY_CHROOT_MSG "denied priority change of process (%.16s:%d) by "
99844 +#define GR_FAILFORK_MSG "failed fork with errno %s by "
99845 +#define GR_NICE_CHROOT_MSG "denied priority change by "
99846 +#define GR_UNISIGLOG_MSG "%.32s occurred at %p in "
99847 +#define GR_DUALSIGLOG_MSG "signal %d sent to " DEFAULTSECMSG " by "
99848 +#define GR_SIG_ACL_MSG "denied send of signal %d to protected task " DEFAULTSECMSG " by "
99849 +#define GR_SYSCTL_MSG "denied modification of grsecurity sysctl value : %.32s by "
99850 +#define GR_SYSCTL_ACL_MSG "%s sysctl of %.950s for%s%s by "
99851 +#define GR_TIME_MSG "time set by "
99852 +#define GR_DEFACL_MSG "fatal: unable to find subject for (%.16s:%d), loaded by "
99853 +#define GR_MMAP_ACL_MSG "%s executable mmap of %.950s by "
99854 +#define GR_MPROTECT_ACL_MSG "%s executable mprotect of %.950s by "
99855 +#define GR_SOCK_MSG "denied socket(%.16s,%.16s,%.16s) by "
99856 +#define GR_SOCK_NOINET_MSG "denied socket(%.16s,%.16s,%d) by "
99857 +#define GR_BIND_MSG "denied bind() by "
99858 +#define GR_CONNECT_MSG "denied connect() by "
99859 +#define GR_BIND_ACL_MSG "denied bind() to %pI4 port %u sock type %.16s protocol %.16s by "
99860 +#define GR_CONNECT_ACL_MSG "denied connect() to %pI4 port %u sock type %.16s protocol %.16s by "
99861 +#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"
99862 +#define GR_EXEC_CHROOT_MSG "exec of %.980s within chroot by process "
99863 +#define GR_CAP_ACL_MSG "use of %s denied for "
99864 +#define GR_CAP_CHROOT_MSG "use of %s in chroot denied for "
99865 +#define GR_CAP_ACL_MSG2 "use of %s permitted for "
99866 +#define GR_USRCHANGE_ACL_MSG "change to uid %u denied for "
99867 +#define GR_GRPCHANGE_ACL_MSG "change to gid %u denied for "
99868 +#define GR_REMOUNT_AUDIT_MSG "remount of %.256s by "
99869 +#define GR_UNMOUNT_AUDIT_MSG "unmount of %.256s by "
99870 +#define GR_MOUNT_AUDIT_MSG "mount of %.256s to %.256s by "
99871 +#define GR_CHDIR_AUDIT_MSG "chdir to %.980s by "
99872 +#define GR_EXEC_AUDIT_MSG "exec of %.930s (%.128s) by "
99873 +#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for "
99874 +#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
99875 +#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
99876 +#define GR_TEXTREL_AUDIT_MSG "allowed %s text relocation transition in %.950s, VMA:0x%08lx 0x%08lx by "
99877 +#define GR_PTGNUSTACK_MSG "denied marking stack executable as requested by PT_GNU_STACK marking in %.950s by "
99878 +#define GR_VM86_MSG "denied use of vm86 by "
99879 +#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
99880 +#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by "
99881 +#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
99882 +#define GR_BADPROCPID_MSG "denied read of sensitive /proc/pid/%s entry via fd passed across exec by "
99883 +#define GR_SYMLINKOWNER_MSG "denied following symlink %.950s since symlink owner %u does not match target owner %u, by "
99884 +#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 "
99885 +#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 "
99886 +#define GR_IPC_DENIED_MSG "denied %s of overly-permissive IPC object with creator uid %u by "
99887 +#define GR_MSRWRITE_MSG "denied write to CPU MSR by "
99888 diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
99889 new file mode 100644
99890 index 0000000..0ea4a82
99891 --- /dev/null
99892 +++ b/include/linux/grsecurity.h
99893 @@ -0,0 +1,255 @@
99894 +#ifndef GR_SECURITY_H
99895 +#define GR_SECURITY_H
99896 +#include <linux/fs.h>
99897 +#include <linux/fs_struct.h>
99898 +#include <linux/binfmts.h>
99899 +#include <linux/gracl.h>
99900 +
99901 +/* notify of brain-dead configs */
99902 +#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_GRKERNSEC_KMEM)
99903 +#error "CONFIG_DEBUG_FS being enabled is a security risk when CONFIG_GRKERNSEC_KMEM is enabled"
99904 +#endif
99905 +#if defined(CONFIG_PROC_PAGE_MONITOR) && defined(CONFIG_GRKERNSEC)
99906 +#error "CONFIG_PROC_PAGE_MONITOR is a security risk"
99907 +#endif
99908 +#if defined(CONFIG_GRKERNSEC_PROC_USER) && defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
99909 +#error "CONFIG_GRKERNSEC_PROC_USER and CONFIG_GRKERNSEC_PROC_USERGROUP cannot both be enabled."
99910 +#endif
99911 +#if defined(CONFIG_GRKERNSEC_PROC) && !defined(CONFIG_GRKERNSEC_PROC_USER) && !defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
99912 +#error "CONFIG_GRKERNSEC_PROC enabled, but neither CONFIG_GRKERNSEC_PROC_USER nor CONFIG_GRKERNSEC_PROC_USERGROUP enabled"
99913 +#endif
99914 +#if defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_PAGEEXEC) && !defined(CONFIG_PAX_SEGMEXEC) && !defined(CONFIG_PAX_KERNEXEC)
99915 +#error "CONFIG_PAX_NOEXEC enabled, but PAGEEXEC, SEGMEXEC, and KERNEXEC are disabled."
99916 +#endif
99917 +#if defined(CONFIG_PAX_ASLR) && !defined(CONFIG_PAX_RANDKSTACK) && !defined(CONFIG_PAX_RANDUSTACK) && !defined(CONFIG_PAX_RANDMMAP)
99918 +#error "CONFIG_PAX_ASLR enabled, but RANDKSTACK, RANDUSTACK, and RANDMMAP are disabled."
99919 +#endif
99920 +#if defined(CONFIG_PAX) && !defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_ASLR)
99921 +#error "CONFIG_PAX enabled, but no PaX options are enabled."
99922 +#endif
99923 +
99924 +int gr_handle_new_usb(void);
99925 +
99926 +void gr_handle_brute_attach(int dumpable);
99927 +void gr_handle_brute_check(void);
99928 +void gr_handle_kernel_exploit(void);
99929 +
99930 +char gr_roletype_to_char(void);
99931 +
99932 +int gr_proc_is_restricted(void);
99933 +
99934 +int gr_acl_enable_at_secure(void);
99935 +
99936 +int gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs);
99937 +int gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs);
99938 +
99939 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap);
99940 +
99941 +void gr_del_task_from_ip_table(struct task_struct *p);
99942 +
99943 +int gr_pid_is_chrooted(struct task_struct *p);
99944 +int gr_handle_chroot_fowner(struct pid *pid, enum pid_type type);
99945 +int gr_handle_chroot_nice(void);
99946 +int gr_handle_chroot_sysctl(const int op);
99947 +int gr_handle_chroot_setpriority(struct task_struct *p,
99948 + const int niceval);
99949 +int gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt);
99950 +int gr_chroot_fhandle(void);
99951 +int gr_handle_chroot_chroot(const struct dentry *dentry,
99952 + const struct vfsmount *mnt);
99953 +void gr_handle_chroot_chdir(const struct path *path);
99954 +int gr_handle_chroot_chmod(const struct dentry *dentry,
99955 + const struct vfsmount *mnt, const int mode);
99956 +int gr_handle_chroot_mknod(const struct dentry *dentry,
99957 + const struct vfsmount *mnt, const int mode);
99958 +int gr_handle_chroot_mount(const struct dentry *dentry,
99959 + const struct vfsmount *mnt,
99960 + const char *dev_name);
99961 +int gr_handle_chroot_pivot(void);
99962 +int gr_handle_chroot_unix(const pid_t pid);
99963 +
99964 +int gr_handle_rawio(const struct inode *inode);
99965 +
99966 +void gr_handle_ioperm(void);
99967 +void gr_handle_iopl(void);
99968 +void gr_handle_msr_write(void);
99969 +
99970 +umode_t gr_acl_umask(void);
99971 +
99972 +int gr_tpe_allow(const struct file *file);
99973 +
99974 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path);
99975 +void gr_clear_chroot_entries(struct task_struct *task);
99976 +
99977 +void gr_log_forkfail(const int retval);
99978 +void gr_log_timechange(void);
99979 +void gr_log_signal(const int sig, const void *addr, const struct task_struct *t);
99980 +void gr_log_chdir(const struct dentry *dentry,
99981 + const struct vfsmount *mnt);
99982 +void gr_log_chroot_exec(const struct dentry *dentry,
99983 + const struct vfsmount *mnt);
99984 +void gr_log_remount(const char *devname, const int retval);
99985 +void gr_log_unmount(const char *devname, const int retval);
99986 +void gr_log_mount(const char *from, struct path *to, const int retval);
99987 +void gr_log_textrel(struct vm_area_struct *vma, bool is_textrel_rw);
99988 +void gr_log_ptgnustack(struct file *file);
99989 +void gr_log_rwxmmap(struct file *file);
99990 +void gr_log_rwxmprotect(struct vm_area_struct *vma);
99991 +
99992 +int gr_handle_follow_link(const struct dentry *dentry,
99993 + const struct vfsmount *mnt);
99994 +int gr_handle_fifo(const struct dentry *dentry,
99995 + const struct vfsmount *mnt,
99996 + const struct dentry *dir, const int flag,
99997 + const int acc_mode);
99998 +int gr_handle_hardlink(const struct dentry *dentry,
99999 + const struct vfsmount *mnt,
100000 + const struct filename *to);
100001 +
100002 +int gr_is_capable(const int cap);
100003 +int gr_is_capable_nolog(const int cap);
100004 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
100005 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap);
100006 +
100007 +void gr_copy_label(struct task_struct *tsk);
100008 +void gr_handle_crash(struct task_struct *task, const int sig);
100009 +int gr_handle_signal(const struct task_struct *p, const int sig);
100010 +int gr_check_crash_uid(const kuid_t uid);
100011 +int gr_check_protected_task(const struct task_struct *task);
100012 +int gr_check_protected_task_fowner(struct pid *pid, enum pid_type type);
100013 +int gr_acl_handle_mmap(const struct file *file,
100014 + const unsigned long prot);
100015 +int gr_acl_handle_mprotect(const struct file *file,
100016 + const unsigned long prot);
100017 +int gr_check_hidden_task(const struct task_struct *tsk);
100018 +__u32 gr_acl_handle_truncate(const struct dentry *dentry,
100019 + const struct vfsmount *mnt);
100020 +__u32 gr_acl_handle_utime(const struct dentry *dentry,
100021 + const struct vfsmount *mnt);
100022 +__u32 gr_acl_handle_access(const struct dentry *dentry,
100023 + const struct vfsmount *mnt, const int fmode);
100024 +__u32 gr_acl_handle_chmod(const struct dentry *dentry,
100025 + const struct vfsmount *mnt, umode_t *mode);
100026 +__u32 gr_acl_handle_chown(const struct dentry *dentry,
100027 + const struct vfsmount *mnt);
100028 +__u32 gr_acl_handle_setxattr(const struct dentry *dentry,
100029 + const struct vfsmount *mnt);
100030 +__u32 gr_acl_handle_removexattr(const struct dentry *dentry,
100031 + const struct vfsmount *mnt);
100032 +int gr_handle_ptrace(struct task_struct *task, const long request);
100033 +int gr_handle_proc_ptrace(struct task_struct *task);
100034 +__u32 gr_acl_handle_execve(const struct dentry *dentry,
100035 + const struct vfsmount *mnt);
100036 +int gr_check_crash_exec(const struct file *filp);
100037 +int gr_acl_is_enabled(void);
100038 +void gr_set_role_label(struct task_struct *task, const kuid_t uid,
100039 + const kgid_t gid);
100040 +int gr_set_proc_label(const struct dentry *dentry,
100041 + const struct vfsmount *mnt,
100042 + const int unsafe_flags);
100043 +__u32 gr_acl_handle_hidden_file(const struct dentry *dentry,
100044 + const struct vfsmount *mnt);
100045 +__u32 gr_acl_handle_open(const struct dentry *dentry,
100046 + const struct vfsmount *mnt, int acc_mode);
100047 +__u32 gr_acl_handle_creat(const struct dentry *dentry,
100048 + const struct dentry *p_dentry,
100049 + const struct vfsmount *p_mnt,
100050 + int open_flags, int acc_mode, const int imode);
100051 +void gr_handle_create(const struct dentry *dentry,
100052 + const struct vfsmount *mnt);
100053 +void gr_handle_proc_create(const struct dentry *dentry,
100054 + const struct inode *inode);
100055 +__u32 gr_acl_handle_mknod(const struct dentry *new_dentry,
100056 + const struct dentry *parent_dentry,
100057 + const struct vfsmount *parent_mnt,
100058 + const int mode);
100059 +__u32 gr_acl_handle_mkdir(const struct dentry *new_dentry,
100060 + const struct dentry *parent_dentry,
100061 + const struct vfsmount *parent_mnt);
100062 +__u32 gr_acl_handle_rmdir(const struct dentry *dentry,
100063 + const struct vfsmount *mnt);
100064 +void gr_handle_delete(const u64 ino, const dev_t dev);
100065 +__u32 gr_acl_handle_unlink(const struct dentry *dentry,
100066 + const struct vfsmount *mnt);
100067 +__u32 gr_acl_handle_symlink(const struct dentry *new_dentry,
100068 + const struct dentry *parent_dentry,
100069 + const struct vfsmount *parent_mnt,
100070 + const struct filename *from);
100071 +__u32 gr_acl_handle_link(const struct dentry *new_dentry,
100072 + const struct dentry *parent_dentry,
100073 + const struct vfsmount *parent_mnt,
100074 + const struct dentry *old_dentry,
100075 + const struct vfsmount *old_mnt, const struct filename *to);
100076 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target);
100077 +int gr_acl_handle_rename(struct dentry *new_dentry,
100078 + struct dentry *parent_dentry,
100079 + const struct vfsmount *parent_mnt,
100080 + struct dentry *old_dentry,
100081 + struct inode *old_parent_inode,
100082 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags);
100083 +void gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
100084 + struct dentry *old_dentry,
100085 + struct dentry *new_dentry,
100086 + struct vfsmount *mnt, const __u8 replace, unsigned int flags);
100087 +__u32 gr_check_link(const struct dentry *new_dentry,
100088 + const struct dentry *parent_dentry,
100089 + const struct vfsmount *parent_mnt,
100090 + const struct dentry *old_dentry,
100091 + const struct vfsmount *old_mnt);
100092 +int gr_acl_handle_filldir(const struct file *file, const char *name,
100093 + const unsigned int namelen, const u64 ino);
100094 +
100095 +__u32 gr_acl_handle_unix(const struct dentry *dentry,
100096 + const struct vfsmount *mnt);
100097 +void gr_acl_handle_exit(void);
100098 +void gr_acl_handle_psacct(struct task_struct *task, const long code);
100099 +int gr_acl_handle_procpidmem(const struct task_struct *task);
100100 +int gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags);
100101 +int gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode);
100102 +void gr_audit_ptrace(struct task_struct *task);
100103 +dev_t gr_get_dev_from_dentry(struct dentry *dentry);
100104 +u64 gr_get_ino_from_dentry(struct dentry *dentry);
100105 +void gr_put_exec_file(struct task_struct *task);
100106 +
100107 +int gr_get_symlinkown_enabled(void);
100108 +
100109 +int gr_ptrace_readexec(struct file *file, int unsafe_flags);
100110 +
100111 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
100112 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
100113 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
100114 + struct dentry *newdentry, struct vfsmount *newmnt);
100115 +
100116 +#ifdef CONFIG_GRKERNSEC_RESLOG
100117 +extern void gr_log_resource(const struct task_struct *task, const int res,
100118 + const unsigned long wanted, const int gt);
100119 +#else
100120 +static inline void gr_log_resource(const struct task_struct *task, const int res,
100121 + const unsigned long wanted, const int gt)
100122 +{
100123 +}
100124 +#endif
100125 +
100126 +#ifdef CONFIG_GRKERNSEC
100127 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
100128 +void gr_handle_vm86(void);
100129 +void gr_handle_mem_readwrite(u64 from, u64 to);
100130 +
100131 +void gr_log_badprocpid(const char *entry);
100132 +
100133 +extern int grsec_enable_dmesg;
100134 +extern int grsec_disable_privio;
100135 +
100136 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
100137 +extern kgid_t grsec_proc_gid;
100138 +#endif
100139 +
100140 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
100141 +extern int grsec_enable_chroot_findtask;
100142 +#endif
100143 +#ifdef CONFIG_GRKERNSEC_SETXID
100144 +extern int grsec_enable_setxid;
100145 +#endif
100146 +#endif
100147 +
100148 +#endif
100149 diff --git a/include/linux/grsock.h b/include/linux/grsock.h
100150 new file mode 100644
100151 index 0000000..e7ffaaf
100152 --- /dev/null
100153 +++ b/include/linux/grsock.h
100154 @@ -0,0 +1,19 @@
100155 +#ifndef __GRSOCK_H
100156 +#define __GRSOCK_H
100157 +
100158 +extern void gr_attach_curr_ip(const struct sock *sk);
100159 +extern int gr_handle_sock_all(const int family, const int type,
100160 + const int protocol);
100161 +extern int gr_handle_sock_server(const struct sockaddr *sck);
100162 +extern int gr_handle_sock_server_other(const struct sock *sck);
100163 +extern int gr_handle_sock_client(const struct sockaddr *sck);
100164 +extern int gr_search_connect(struct socket * sock,
100165 + struct sockaddr_in * addr);
100166 +extern int gr_search_bind(struct socket * sock,
100167 + struct sockaddr_in * addr);
100168 +extern int gr_search_listen(struct socket * sock);
100169 +extern int gr_search_accept(struct socket * sock);
100170 +extern int gr_search_socket(const int domain, const int type,
100171 + const int protocol);
100172 +
100173 +#endif
100174 diff --git a/include/linux/highmem.h b/include/linux/highmem.h
100175 index 6aefcd0..98b81dc 100644
100176 --- a/include/linux/highmem.h
100177 +++ b/include/linux/highmem.h
100178 @@ -191,6 +191,18 @@ static inline void clear_highpage(struct page *page)
100179 kunmap_atomic(kaddr);
100180 }
100181
100182 +static inline void sanitize_highpage(struct page *page)
100183 +{
100184 + void *kaddr;
100185 + unsigned long flags;
100186 +
100187 + local_irq_save(flags);
100188 + kaddr = kmap_atomic(page);
100189 + clear_page(kaddr);
100190 + kunmap_atomic(kaddr);
100191 + local_irq_restore(flags);
100192 +}
100193 +
100194 static inline void zero_user_segments(struct page *page,
100195 unsigned start1, unsigned end1,
100196 unsigned start2, unsigned end2)
100197 diff --git a/include/linux/hwmon-sysfs.h b/include/linux/hwmon-sysfs.h
100198 index 1c7b89a..7dda400 100644
100199 --- a/include/linux/hwmon-sysfs.h
100200 +++ b/include/linux/hwmon-sysfs.h
100201 @@ -25,7 +25,8 @@
100202 struct sensor_device_attribute{
100203 struct device_attribute dev_attr;
100204 int index;
100205 -};
100206 +} __do_const;
100207 +typedef struct sensor_device_attribute __no_const sensor_device_attribute_no_const;
100208 #define to_sensor_dev_attr(_dev_attr) \
100209 container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
100210
100211 @@ -41,7 +42,8 @@ struct sensor_device_attribute_2 {
100212 struct device_attribute dev_attr;
100213 u8 index;
100214 u8 nr;
100215 -};
100216 +} __do_const;
100217 +typedef struct sensor_device_attribute_2 __no_const sensor_device_attribute_2_no_const;
100218 #define to_sensor_dev_attr_2(_dev_attr) \
100219 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
100220
100221 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
100222 index e83a738..8b323fa 100644
100223 --- a/include/linux/i2c.h
100224 +++ b/include/linux/i2c.h
100225 @@ -409,6 +409,7 @@ struct i2c_algorithm {
100226 int (*unreg_slave)(struct i2c_client *client);
100227 #endif
100228 };
100229 +typedef struct i2c_algorithm __no_const i2c_algorithm_no_const;
100230
100231 /**
100232 * struct i2c_bus_recovery_info - I2C bus recovery information
100233 diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
100234 index b49cf92..0c29072 100644
100235 --- a/include/linux/if_pppox.h
100236 +++ b/include/linux/if_pppox.h
100237 @@ -78,7 +78,7 @@ struct pppox_proto {
100238 int (*ioctl)(struct socket *sock, unsigned int cmd,
100239 unsigned long arg);
100240 struct module *owner;
100241 -};
100242 +} __do_const;
100243
100244 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
100245 extern void unregister_pppox_proto(int proto_num);
100246 diff --git a/include/linux/init.h b/include/linux/init.h
100247 index b449f37..61005b3 100644
100248 --- a/include/linux/init.h
100249 +++ b/include/linux/init.h
100250 @@ -37,9 +37,17 @@
100251 * section.
100252 */
100253
100254 +#define add_init_latent_entropy __latent_entropy
100255 +
100256 +#ifdef CONFIG_MEMORY_HOTPLUG
100257 +#define add_meminit_latent_entropy
100258 +#else
100259 +#define add_meminit_latent_entropy __latent_entropy
100260 +#endif
100261 +
100262 /* These are for everybody (although not all archs will actually
100263 discard it in modules) */
100264 -#define __init __section(.init.text) __cold notrace
100265 +#define __init __section(.init.text) __cold notrace add_init_latent_entropy
100266 #define __initdata __section(.init.data)
100267 #define __initconst __constsection(.init.rodata)
100268 #define __exitdata __section(.exit.data)
100269 @@ -92,7 +100,7 @@
100270 #define __exit __section(.exit.text) __exitused __cold notrace
100271
100272 /* Used for MEMORY_HOTPLUG */
100273 -#define __meminit __section(.meminit.text) __cold notrace
100274 +#define __meminit __section(.meminit.text) __cold notrace add_meminit_latent_entropy
100275 #define __meminitdata __section(.meminit.data)
100276 #define __meminitconst __constsection(.meminit.rodata)
100277 #define __memexit __section(.memexit.text) __exitused __cold notrace
100278 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
100279 index bb9b075..ecac42c 100644
100280 --- a/include/linux/init_task.h
100281 +++ b/include/linux/init_task.h
100282 @@ -157,6 +157,12 @@ extern struct task_group root_task_group;
100283
100284 #define INIT_TASK_COMM "swapper"
100285
100286 +#ifdef CONFIG_X86
100287 +#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
100288 +#else
100289 +#define INIT_TASK_THREAD_INFO
100290 +#endif
100291 +
100292 #ifdef CONFIG_RT_MUTEXES
100293 # define INIT_RT_MUTEXES(tsk) \
100294 .pi_waiters = RB_ROOT, \
100295 @@ -223,6 +229,7 @@ extern struct task_group root_task_group;
100296 RCU_POINTER_INITIALIZER(cred, &init_cred), \
100297 .comm = INIT_TASK_COMM, \
100298 .thread = INIT_THREAD, \
100299 + INIT_TASK_THREAD_INFO \
100300 .fs = &init_fs, \
100301 .files = &init_files, \
100302 .signal = &init_signals, \
100303 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
100304 index be7e75c..09bec77 100644
100305 --- a/include/linux/interrupt.h
100306 +++ b/include/linux/interrupt.h
100307 @@ -433,8 +433,8 @@ extern const char * const softirq_to_name[NR_SOFTIRQS];
100308
100309 struct softirq_action
100310 {
100311 - void (*action)(struct softirq_action *);
100312 -};
100313 + void (*action)(void);
100314 +} __no_const;
100315
100316 asmlinkage void do_softirq(void);
100317 asmlinkage void __do_softirq(void);
100318 @@ -448,7 +448,7 @@ static inline void do_softirq_own_stack(void)
100319 }
100320 #endif
100321
100322 -extern void open_softirq(int nr, void (*action)(struct softirq_action *));
100323 +extern void open_softirq(int nr, void (*action)(void));
100324 extern void softirq_init(void);
100325 extern void __raise_softirq_irqoff(unsigned int nr);
100326
100327 diff --git a/include/linux/iommu.h b/include/linux/iommu.h
100328 index f9c1b6d..db7d6f5 100644
100329 --- a/include/linux/iommu.h
100330 +++ b/include/linux/iommu.h
100331 @@ -192,7 +192,7 @@ struct iommu_ops {
100332
100333 unsigned long pgsize_bitmap;
100334 void *priv;
100335 -};
100336 +} __do_const;
100337
100338 #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */
100339 #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */
100340 diff --git a/include/linux/ioport.h b/include/linux/ioport.h
100341 index 388e3ae..d7e45a1 100644
100342 --- a/include/linux/ioport.h
100343 +++ b/include/linux/ioport.h
100344 @@ -161,7 +161,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start);
100345 int adjust_resource(struct resource *res, resource_size_t start,
100346 resource_size_t size);
100347 resource_size_t resource_alignment(struct resource *res);
100348 -static inline resource_size_t resource_size(const struct resource *res)
100349 +static inline resource_size_t __intentional_overflow(-1) resource_size(const struct resource *res)
100350 {
100351 return res->end - res->start + 1;
100352 }
100353 diff --git a/include/linux/ipc.h b/include/linux/ipc.h
100354 index 9d84942..12d5bdf 100644
100355 --- a/include/linux/ipc.h
100356 +++ b/include/linux/ipc.h
100357 @@ -19,8 +19,8 @@ struct kern_ipc_perm
100358 kuid_t cuid;
100359 kgid_t cgid;
100360 umode_t mode;
100361 - unsigned long seq;
100362 + unsigned long seq __intentional_overflow(-1);
100363 void *security;
100364 -};
100365 +} __randomize_layout;
100366
100367 #endif /* _LINUX_IPC_H */
100368 diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
100369 index 1eee6bc..9cf4912 100644
100370 --- a/include/linux/ipc_namespace.h
100371 +++ b/include/linux/ipc_namespace.h
100372 @@ -60,7 +60,7 @@ struct ipc_namespace {
100373 struct user_namespace *user_ns;
100374
100375 struct ns_common ns;
100376 -};
100377 +} __randomize_layout;
100378
100379 extern struct ipc_namespace init_ipc_ns;
100380 extern atomic_t nr_ipc_ns;
100381 diff --git a/include/linux/irq.h b/include/linux/irq.h
100382 index 51744bc..e902653 100644
100383 --- a/include/linux/irq.h
100384 +++ b/include/linux/irq.h
100385 @@ -383,7 +383,10 @@ struct irq_chip {
100386 int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info);
100387
100388 unsigned long flags;
100389 -};
100390 +} __do_const;
100391 +#ifndef _LINUX_IRQDOMAIN_H
100392 +typedef struct irq_chip __no_const irq_chip_no_const;
100393 +#endif
100394
100395 /*
100396 * irq_chip specific flags
100397 diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
100398 index fcea4e4..cff381d 100644
100399 --- a/include/linux/irqdesc.h
100400 +++ b/include/linux/irqdesc.h
100401 @@ -59,7 +59,7 @@ struct irq_desc {
100402 unsigned int irq_count; /* For detecting broken IRQs */
100403 unsigned long last_unhandled; /* Aging timer for unhandled count */
100404 unsigned int irqs_unhandled;
100405 - atomic_t threads_handled;
100406 + atomic_unchecked_t threads_handled;
100407 int threads_handled_last;
100408 raw_spinlock_t lock;
100409 struct cpumask *percpu_enabled;
100410 diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
100411 index 744ac0e..382b1a6 100644
100412 --- a/include/linux/irqdomain.h
100413 +++ b/include/linux/irqdomain.h
100414 @@ -40,6 +40,9 @@ struct device_node;
100415 struct irq_domain;
100416 struct of_device_id;
100417 struct irq_chip;
100418 +#ifndef _LINUX_IRQ_H
100419 +typedef struct irq_chip __no_const irq_chip_no_const;
100420 +#endif
100421 struct irq_data;
100422
100423 /* Number of irqs reserved for a legacy isa controller */
100424 diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
100425 index 535fd3b..e5c356e 100644
100426 --- a/include/linux/jiffies.h
100427 +++ b/include/linux/jiffies.h
100428 @@ -284,19 +284,19 @@ extern unsigned long preset_lpj;
100429 extern unsigned int jiffies_to_msecs(const unsigned long j);
100430 extern unsigned int jiffies_to_usecs(const unsigned long j);
100431
100432 -static inline u64 jiffies_to_nsecs(const unsigned long j)
100433 +static inline u64 __intentional_overflow(-1) jiffies_to_nsecs(const unsigned long j)
100434 {
100435 return (u64)jiffies_to_usecs(j) * NSEC_PER_USEC;
100436 }
100437
100438 -extern unsigned long __msecs_to_jiffies(const unsigned int m);
100439 +extern unsigned long __msecs_to_jiffies(const unsigned int m) __intentional_overflow(-1);
100440 #if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ)
100441 /*
100442 * HZ is equal to or smaller than 1000, and 1000 is a nice round
100443 * multiple of HZ, divide with the factor between them, but round
100444 * upwards:
100445 */
100446 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100447 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
100448 {
100449 return (m + (MSEC_PER_SEC / HZ) - 1) / (MSEC_PER_SEC / HZ);
100450 }
100451 @@ -307,7 +307,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100452 *
100453 * But first make sure the multiplication result cannot overflow:
100454 */
100455 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100456 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
100457 {
100458 if (m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
100459 return MAX_JIFFY_OFFSET;
100460 @@ -318,7 +318,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100461 * Generic case - multiply, round and divide. But first check that if
100462 * we are doing a net multiplication, that we wouldn't overflow:
100463 */
100464 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
100465 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
100466 {
100467 if (HZ > MSEC_PER_SEC && m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
100468 return MAX_JIFFY_OFFSET;
100469 @@ -362,21 +362,19 @@ static inline unsigned long msecs_to_jiffies(const unsigned int m)
100470 }
100471 }
100472
100473 -extern unsigned long __usecs_to_jiffies(const unsigned int u);
100474 +extern unsigned long __usecs_to_jiffies(const unsigned int u) __intentional_overflow(-1);
100475 #if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ)
100476 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
100477 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
100478 {
100479 return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
100480 }
100481 #elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
100482 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
100483 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
100484 {
100485 return u * (HZ / USEC_PER_SEC);
100486 }
100487 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
100488 -{
100489 #else
100490 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
100491 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
100492 {
100493 return (USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
100494 >> USEC_TO_HZ_SHR32;
100495 diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
100496 index 6883e19..e854fcb 100644
100497 --- a/include/linux/kallsyms.h
100498 +++ b/include/linux/kallsyms.h
100499 @@ -15,7 +15,8 @@
100500
100501 struct module;
100502
100503 -#ifdef CONFIG_KALLSYMS
100504 +#if !defined(__INCLUDED_BY_HIDESYM) || !defined(CONFIG_KALLSYMS)
100505 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
100506 /* Lookup the address for a symbol. Returns 0 if not found. */
100507 unsigned long kallsyms_lookup_name(const char *name);
100508
100509 @@ -106,6 +107,21 @@ static inline int lookup_symbol_attrs(unsigned long addr, unsigned long *size, u
100510 /* Stupid that this does nothing, but I didn't create this mess. */
100511 #define __print_symbol(fmt, addr)
100512 #endif /*CONFIG_KALLSYMS*/
100513 +#else /* when included by kallsyms.c, vsnprintf.c, kprobes.c, or
100514 + arch/x86/kernel/dumpstack.c, with HIDESYM enabled */
100515 +extern unsigned long kallsyms_lookup_name(const char *name);
100516 +extern void __print_symbol(const char *fmt, unsigned long address);
100517 +extern int sprint_backtrace(char *buffer, unsigned long address);
100518 +extern int sprint_symbol(char *buffer, unsigned long address);
100519 +extern int sprint_symbol_no_offset(char *buffer, unsigned long address);
100520 +const char *kallsyms_lookup(unsigned long addr,
100521 + unsigned long *symbolsize,
100522 + unsigned long *offset,
100523 + char **modname, char *namebuf);
100524 +extern int kallsyms_lookup_size_offset(unsigned long addr,
100525 + unsigned long *symbolsize,
100526 + unsigned long *offset);
100527 +#endif
100528
100529 /* This macro allows us to keep printk typechecking */
100530 static __printf(1, 2)
100531 diff --git a/include/linux/key-type.h b/include/linux/key-type.h
100532 index ff9f1d3..6712be5 100644
100533 --- a/include/linux/key-type.h
100534 +++ b/include/linux/key-type.h
100535 @@ -152,7 +152,7 @@ struct key_type {
100536 /* internal fields */
100537 struct list_head link; /* link in types list */
100538 struct lock_class_key lock_class; /* key->sem lock class */
100539 -};
100540 +} __do_const;
100541
100542 extern struct key_type key_type_keyring;
100543
100544 diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
100545 index e465bb1..19f605fd 100644
100546 --- a/include/linux/kgdb.h
100547 +++ b/include/linux/kgdb.h
100548 @@ -52,7 +52,7 @@ extern int kgdb_connected;
100549 extern int kgdb_io_module_registered;
100550
100551 extern atomic_t kgdb_setting_breakpoint;
100552 -extern atomic_t kgdb_cpu_doing_single_step;
100553 +extern atomic_unchecked_t kgdb_cpu_doing_single_step;
100554
100555 extern struct task_struct *kgdb_usethread;
100556 extern struct task_struct *kgdb_contthread;
100557 @@ -254,7 +254,7 @@ struct kgdb_arch {
100558 void (*correct_hw_break)(void);
100559
100560 void (*enable_nmi)(bool on);
100561 -};
100562 +} __do_const;
100563
100564 /**
100565 * struct kgdb_io - Describe the interface for an I/O driver to talk with KGDB.
100566 @@ -279,7 +279,7 @@ struct kgdb_io {
100567 void (*pre_exception) (void);
100568 void (*post_exception) (void);
100569 int is_console;
100570 -};
100571 +} __do_const;
100572
100573 extern struct kgdb_arch arch_kgdb_ops;
100574
100575 diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h
100576 index d0a1f99..0bd8b7c 100644
100577 --- a/include/linux/kmemleak.h
100578 +++ b/include/linux/kmemleak.h
100579 @@ -27,7 +27,7 @@
100580
100581 extern void kmemleak_init(void) __ref;
100582 extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
100583 - gfp_t gfp) __ref;
100584 + gfp_t gfp) __ref __size_overflow(2);
100585 extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
100586 gfp_t gfp) __ref;
100587 extern void kmemleak_free(const void *ptr) __ref;
100588 @@ -63,7 +63,7 @@ static inline void kmemleak_erase(void **ptr)
100589 static inline void kmemleak_init(void)
100590 {
100591 }
100592 -static inline void kmemleak_alloc(const void *ptr, size_t size, int min_count,
100593 +static inline void __size_overflow(2) kmemleak_alloc(const void *ptr, size_t size, int min_count,
100594 gfp_t gfp)
100595 {
100596 }
100597 diff --git a/include/linux/kmod.h b/include/linux/kmod.h
100598 index 0555cc6..40116ce 100644
100599 --- a/include/linux/kmod.h
100600 +++ b/include/linux/kmod.h
100601 @@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */
100602 * usually useless though. */
100603 extern __printf(2, 3)
100604 int __request_module(bool wait, const char *name, ...);
100605 +extern __printf(3, 4)
100606 +int ___request_module(bool wait, char *param_name, const char *name, ...);
100607 #define request_module(mod...) __request_module(true, mod)
100608 #define request_module_nowait(mod...) __request_module(false, mod)
100609 #define try_then_request_module(x, mod...) \
100610 @@ -57,6 +59,9 @@ struct subprocess_info {
100611 struct work_struct work;
100612 struct completion *complete;
100613 char *path;
100614 +#ifdef CONFIG_GRKERNSEC
100615 + char *origpath;
100616 +#endif
100617 char **argv;
100618 char **envp;
100619 int wait;
100620 diff --git a/include/linux/kobject.h b/include/linux/kobject.h
100621 index 637f670..3d69945 100644
100622 --- a/include/linux/kobject.h
100623 +++ b/include/linux/kobject.h
100624 @@ -119,7 +119,7 @@ struct kobj_type {
100625 struct attribute **default_attrs;
100626 const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
100627 const void *(*namespace)(struct kobject *kobj);
100628 -};
100629 +} __do_const;
100630
100631 struct kobj_uevent_env {
100632 char *argv[3];
100633 @@ -143,6 +143,7 @@ struct kobj_attribute {
100634 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
100635 const char *buf, size_t count);
100636 };
100637 +typedef struct kobj_attribute __no_const kobj_attribute_no_const;
100638
100639 extern const struct sysfs_ops kobj_sysfs_ops;
100640
100641 @@ -170,7 +171,7 @@ struct kset {
100642 spinlock_t list_lock;
100643 struct kobject kobj;
100644 const struct kset_uevent_ops *uevent_ops;
100645 -};
100646 +} __randomize_layout;
100647
100648 extern void kset_init(struct kset *kset);
100649 extern int __must_check kset_register(struct kset *kset);
100650 diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h
100651 index df32d25..fb52e27 100644
100652 --- a/include/linux/kobject_ns.h
100653 +++ b/include/linux/kobject_ns.h
100654 @@ -44,7 +44,7 @@ struct kobj_ns_type_operations {
100655 const void *(*netlink_ns)(struct sock *sk);
100656 const void *(*initial_ns)(void);
100657 void (*drop_ns)(void *);
100658 -};
100659 +} __do_const;
100660
100661 int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
100662 int kobj_ns_type_registered(enum kobj_ns_type type);
100663 diff --git a/include/linux/kref.h b/include/linux/kref.h
100664 index 484604d..0f6c5b6 100644
100665 --- a/include/linux/kref.h
100666 +++ b/include/linux/kref.h
100667 @@ -68,7 +68,7 @@ static inline void kref_get(struct kref *kref)
100668 static inline int kref_sub(struct kref *kref, unsigned int count,
100669 void (*release)(struct kref *kref))
100670 {
100671 - WARN_ON(release == NULL);
100672 + BUG_ON(release == NULL);
100673
100674 if (atomic_sub_and_test((int) count, &kref->refcount)) {
100675 release(kref);
100676 diff --git a/include/linux/libata.h b/include/linux/libata.h
100677 index c9cfbcd..46986db 100644
100678 --- a/include/linux/libata.h
100679 +++ b/include/linux/libata.h
100680 @@ -990,7 +990,7 @@ struct ata_port_operations {
100681 * fields must be pointers.
100682 */
100683 const struct ata_port_operations *inherits;
100684 -};
100685 +} __do_const;
100686
100687 struct ata_port_info {
100688 unsigned long flags;
100689 diff --git a/include/linux/linkage.h b/include/linux/linkage.h
100690 index a6a42dd..6c5ebce 100644
100691 --- a/include/linux/linkage.h
100692 +++ b/include/linux/linkage.h
100693 @@ -36,6 +36,7 @@
100694 #endif
100695
100696 #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)
100697 +#define __page_aligned_rodata __read_only __aligned(PAGE_SIZE)
100698 #define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE)
100699
100700 /*
100701 diff --git a/include/linux/list.h b/include/linux/list.h
100702 index feb773c..98f3075 100644
100703 --- a/include/linux/list.h
100704 +++ b/include/linux/list.h
100705 @@ -113,6 +113,19 @@ extern void __list_del_entry(struct list_head *entry);
100706 extern void list_del(struct list_head *entry);
100707 #endif
100708
100709 +extern void __pax_list_add(struct list_head *new,
100710 + struct list_head *prev,
100711 + struct list_head *next);
100712 +static inline void pax_list_add(struct list_head *new, struct list_head *head)
100713 +{
100714 + __pax_list_add(new, head, head->next);
100715 +}
100716 +static inline void pax_list_add_tail(struct list_head *new, struct list_head *head)
100717 +{
100718 + __pax_list_add(new, head->prev, head);
100719 +}
100720 +extern void pax_list_del(struct list_head *entry);
100721 +
100722 /**
100723 * list_replace - replace old entry by new one
100724 * @old : the element to be replaced
100725 @@ -146,6 +159,8 @@ static inline void list_del_init(struct list_head *entry)
100726 INIT_LIST_HEAD(entry);
100727 }
100728
100729 +extern void pax_list_del_init(struct list_head *entry);
100730 +
100731 /**
100732 * list_move - delete from one list and add as another's head
100733 * @list: the entry to move
100734 diff --git a/include/linux/lockref.h b/include/linux/lockref.h
100735 index b10b122..d37b3de 100644
100736 --- a/include/linux/lockref.h
100737 +++ b/include/linux/lockref.h
100738 @@ -28,7 +28,7 @@ struct lockref {
100739 #endif
100740 struct {
100741 spinlock_t lock;
100742 - int count;
100743 + atomic_t count;
100744 };
100745 };
100746 };
100747 @@ -43,9 +43,29 @@ extern void lockref_mark_dead(struct lockref *);
100748 extern int lockref_get_not_dead(struct lockref *);
100749
100750 /* Must be called under spinlock for reliable results */
100751 -static inline int __lockref_is_dead(const struct lockref *l)
100752 +static inline int __lockref_is_dead(const struct lockref *lockref)
100753 {
100754 - return ((int)l->count < 0);
100755 + return atomic_read(&lockref->count) < 0;
100756 +}
100757 +
100758 +static inline int __lockref_read(const struct lockref *lockref)
100759 +{
100760 + return atomic_read(&lockref->count);
100761 +}
100762 +
100763 +static inline void __lockref_set(struct lockref *lockref, int count)
100764 +{
100765 + atomic_set(&lockref->count, count);
100766 +}
100767 +
100768 +static inline void __lockref_inc(struct lockref *lockref)
100769 +{
100770 + atomic_inc(&lockref->count);
100771 +}
100772 +
100773 +static inline void __lockref_dec(struct lockref *lockref)
100774 +{
100775 + atomic_dec(&lockref->count);
100776 }
100777
100778 #endif /* __LINUX_LOCKREF_H */
100779 diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
100780 index 9429f05..a5d5425 100644
100781 --- a/include/linux/lsm_hooks.h
100782 +++ b/include/linux/lsm_hooks.h
100783 @@ -1824,7 +1824,7 @@ struct security_hook_heads {
100784 struct list_head audit_rule_match;
100785 struct list_head audit_rule_free;
100786 #endif /* CONFIG_AUDIT */
100787 -};
100788 +} __randomize_layout;
100789
100790 /*
100791 * Security module hook list structure.
100792 @@ -1834,7 +1834,7 @@ struct security_hook_list {
100793 struct list_head list;
100794 struct list_head *head;
100795 union security_list_options hook;
100796 -};
100797 +} __randomize_layout;
100798
100799 /*
100800 * Initializing a security_hook_list structure takes
100801 diff --git a/include/linux/math64.h b/include/linux/math64.h
100802 index c45c089..298841c 100644
100803 --- a/include/linux/math64.h
100804 +++ b/include/linux/math64.h
100805 @@ -15,7 +15,7 @@
100806 * This is commonly provided by 32bit archs to provide an optimized 64bit
100807 * divide.
100808 */
100809 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100810 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100811 {
100812 *remainder = dividend % divisor;
100813 return dividend / divisor;
100814 @@ -42,7 +42,7 @@ static inline u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder)
100815 /**
100816 * div64_u64 - unsigned 64bit divide with 64bit divisor
100817 */
100818 -static inline u64 div64_u64(u64 dividend, u64 divisor)
100819 +static inline u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
100820 {
100821 return dividend / divisor;
100822 }
100823 @@ -61,7 +61,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor)
100824 #define div64_ul(x, y) div_u64((x), (y))
100825
100826 #ifndef div_u64_rem
100827 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100828 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100829 {
100830 *remainder = do_div(dividend, divisor);
100831 return dividend;
100832 @@ -77,7 +77,7 @@ extern u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder);
100833 #endif
100834
100835 #ifndef div64_u64
100836 -extern u64 div64_u64(u64 dividend, u64 divisor);
100837 +extern u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor);
100838 #endif
100839
100840 #ifndef div64_s64
100841 @@ -94,7 +94,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor);
100842 * divide.
100843 */
100844 #ifndef div_u64
100845 -static inline u64 div_u64(u64 dividend, u32 divisor)
100846 +static inline u64 __intentional_overflow(-1) div_u64(u64 dividend, u32 divisor)
100847 {
100848 u32 remainder;
100849 return div_u64_rem(dividend, divisor, &remainder);
100850 diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
100851 index 3d385c8..deacb6a 100644
100852 --- a/include/linux/mempolicy.h
100853 +++ b/include/linux/mempolicy.h
100854 @@ -91,6 +91,10 @@ static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
100855 }
100856
100857 #define vma_policy(vma) ((vma)->vm_policy)
100858 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
100859 +{
100860 + vma->vm_policy = pol;
100861 +}
100862
100863 static inline void mpol_get(struct mempolicy *pol)
100864 {
100865 @@ -229,6 +233,9 @@ static inline void mpol_free_shared_policy(struct shared_policy *p)
100866 }
100867
100868 #define vma_policy(vma) NULL
100869 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
100870 +{
100871 +}
100872
100873 static inline int
100874 vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
100875 diff --git a/include/linux/mm.h b/include/linux/mm.h
100876 index 2b05068..c58989c 100644
100877 --- a/include/linux/mm.h
100878 +++ b/include/linux/mm.h
100879 @@ -136,6 +136,11 @@ extern unsigned int kobjsize(const void *objp);
100880
100881 #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */
100882 #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */
100883 +
100884 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
100885 +#define VM_PAGEEXEC 0x00080000 /* vma->vm_page_prot needs special handling */
100886 +#endif
100887 +
100888 #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
100889 #define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */
100890 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
100891 @@ -258,8 +263,8 @@ struct vm_operations_struct {
100892 /* called by access_process_vm when get_user_pages() fails, typically
100893 * for use by special VMAs that can switch between memory and hardware
100894 */
100895 - int (*access)(struct vm_area_struct *vma, unsigned long addr,
100896 - void *buf, int len, int write);
100897 + ssize_t (*access)(struct vm_area_struct *vma, unsigned long addr,
100898 + void *buf, size_t len, int write);
100899
100900 /* Called by the /proc/PID/maps code to ask the vma whether it
100901 * has a special name. Returning non-NULL will also cause this
100902 @@ -297,6 +302,7 @@ struct vm_operations_struct {
100903 struct page *(*find_special_page)(struct vm_area_struct *vma,
100904 unsigned long addr);
100905 };
100906 +typedef struct vm_operations_struct __no_const vm_operations_struct_no_const;
100907
100908 struct mmu_gather;
100909 struct inode;
100910 @@ -1181,8 +1187,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
100911 unsigned long *pfn);
100912 int follow_phys(struct vm_area_struct *vma, unsigned long address,
100913 unsigned int flags, unsigned long *prot, resource_size_t *phys);
100914 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
100915 - void *buf, int len, int write);
100916 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
100917 + void *buf, size_t len, int write);
100918
100919 static inline void unmap_shared_mapping_range(struct address_space *mapping,
100920 loff_t const holebegin, loff_t const holelen)
100921 @@ -1222,9 +1228,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
100922 }
100923 #endif
100924
100925 -extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
100926 -extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
100927 - void *buf, int len, int write);
100928 +extern ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write);
100929 +extern ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
100930 + void *buf, size_t len, int write);
100931
100932 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
100933 unsigned long start, unsigned long nr_pages,
100934 @@ -1272,34 +1278,6 @@ int clear_page_dirty_for_io(struct page *page);
100935
100936 int get_cmdline(struct task_struct *task, char *buffer, int buflen);
100937
100938 -/* Is the vma a continuation of the stack vma above it? */
100939 -static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr)
100940 -{
100941 - return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN);
100942 -}
100943 -
100944 -static inline int stack_guard_page_start(struct vm_area_struct *vma,
100945 - unsigned long addr)
100946 -{
100947 - return (vma->vm_flags & VM_GROWSDOWN) &&
100948 - (vma->vm_start == addr) &&
100949 - !vma_growsdown(vma->vm_prev, addr);
100950 -}
100951 -
100952 -/* Is the vma a continuation of the stack vma below it? */
100953 -static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr)
100954 -{
100955 - return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP);
100956 -}
100957 -
100958 -static inline int stack_guard_page_end(struct vm_area_struct *vma,
100959 - unsigned long addr)
100960 -{
100961 - return (vma->vm_flags & VM_GROWSUP) &&
100962 - (vma->vm_end == addr) &&
100963 - !vma_growsup(vma->vm_next, addr);
100964 -}
100965 -
100966 extern struct task_struct *task_of_stack(struct task_struct *task,
100967 struct vm_area_struct *vma, bool in_group);
100968
100969 @@ -1422,8 +1400,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
100970 {
100971 return 0;
100972 }
100973 +
100974 +static inline int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd,
100975 + unsigned long address)
100976 +{
100977 + return 0;
100978 +}
100979 #else
100980 int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
100981 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
100982 #endif
100983
100984 #if defined(__PAGETABLE_PMD_FOLDED) || !defined(CONFIG_MMU)
100985 @@ -1433,6 +1418,12 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
100986 return 0;
100987 }
100988
100989 +static inline int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud,
100990 + unsigned long address)
100991 +{
100992 + return 0;
100993 +}
100994 +
100995 static inline void mm_nr_pmds_init(struct mm_struct *mm) {}
100996
100997 static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
100998 @@ -1445,6 +1436,7 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
100999
101000 #else
101001 int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
101002 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address);
101003
101004 static inline void mm_nr_pmds_init(struct mm_struct *mm)
101005 {
101006 @@ -1482,11 +1474,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
101007 NULL: pud_offset(pgd, address);
101008 }
101009
101010 +static inline pud_t *pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
101011 +{
101012 + return (unlikely(pgd_none(*pgd)) && __pud_alloc_kernel(mm, pgd, address))?
101013 + NULL: pud_offset(pgd, address);
101014 +}
101015 +
101016 static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
101017 {
101018 return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
101019 NULL: pmd_offset(pud, address);
101020 }
101021 +
101022 +static inline pmd_t *pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
101023 +{
101024 + return (unlikely(pud_none(*pud)) && __pmd_alloc_kernel(mm, pud, address))?
101025 + NULL: pmd_offset(pud, address);
101026 +}
101027 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
101028
101029 #if USE_SPLIT_PTE_PTLOCKS
101030 @@ -1867,12 +1871,23 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
101031 bool *need_rmap_locks);
101032 extern void exit_mmap(struct mm_struct *);
101033
101034 +#if defined(CONFIG_GRKERNSEC) && (defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC))
101035 +extern void gr_learn_resource(const struct task_struct *task, const int res,
101036 + const unsigned long wanted, const int gt);
101037 +#else
101038 +static inline void gr_learn_resource(const struct task_struct *task, const int res,
101039 + const unsigned long wanted, const int gt)
101040 +{
101041 +}
101042 +#endif
101043 +
101044 static inline int check_data_rlimit(unsigned long rlim,
101045 unsigned long new,
101046 unsigned long start,
101047 unsigned long end_data,
101048 unsigned long start_data)
101049 {
101050 + gr_learn_resource(current, RLIMIT_DATA, (new - start) + (end_data - start_data), 1);
101051 if (rlim < RLIM_INFINITY) {
101052 if (((new - start) + (end_data - start_data)) > rlim)
101053 return -ENOSPC;
101054 @@ -1905,6 +1920,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
101055 unsigned long len, unsigned long prot, unsigned long flags,
101056 unsigned long pgoff, unsigned long *populate);
101057 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
101058 +extern int __do_munmap(struct mm_struct *, unsigned long, size_t);
101059
101060 #ifdef CONFIG_MMU
101061 extern int __mm_populate(unsigned long addr, unsigned long len,
101062 @@ -1933,10 +1949,11 @@ struct vm_unmapped_area_info {
101063 unsigned long high_limit;
101064 unsigned long align_mask;
101065 unsigned long align_offset;
101066 + unsigned long threadstack_offset;
101067 };
101068
101069 -extern unsigned long unmapped_area(struct vm_unmapped_area_info *info);
101070 -extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
101071 +extern unsigned long unmapped_area(const struct vm_unmapped_area_info *info);
101072 +extern unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info);
101073
101074 /*
101075 * Search for an unmapped address range.
101076 @@ -1948,7 +1965,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
101077 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
101078 */
101079 static inline unsigned long
101080 -vm_unmapped_area(struct vm_unmapped_area_info *info)
101081 +vm_unmapped_area(const struct vm_unmapped_area_info *info)
101082 {
101083 if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
101084 return unmapped_area_topdown(info);
101085 @@ -2010,6 +2027,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
101086 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
101087 struct vm_area_struct **pprev);
101088
101089 +extern struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma);
101090 +extern __must_check long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma);
101091 +extern void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl);
101092 +
101093 /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
101094 NULL if none. Assume start_addr < end_addr. */
101095 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
101096 @@ -2039,10 +2060,10 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
101097 }
101098
101099 #ifdef CONFIG_MMU
101100 -pgprot_t vm_get_page_prot(unsigned long vm_flags);
101101 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags);
101102 void vma_set_page_prot(struct vm_area_struct *vma);
101103 #else
101104 -static inline pgprot_t vm_get_page_prot(unsigned long vm_flags)
101105 +static inline pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
101106 {
101107 return __pgprot(0);
101108 }
101109 @@ -2104,6 +2125,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
101110 static inline void vm_stat_account(struct mm_struct *mm,
101111 unsigned long flags, struct file *file, long pages)
101112 {
101113 +
101114 +#ifdef CONFIG_PAX_RANDMMAP
101115 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
101116 +#endif
101117 +
101118 mm->total_vm += pages;
101119 }
101120 #endif /* CONFIG_PROC_FS */
101121 @@ -2207,7 +2233,7 @@ extern int get_hwpoison_page(struct page *page);
101122 extern int sysctl_memory_failure_early_kill;
101123 extern int sysctl_memory_failure_recovery;
101124 extern void shake_page(struct page *p, int access);
101125 -extern atomic_long_t num_poisoned_pages;
101126 +extern atomic_long_unchecked_t num_poisoned_pages;
101127 extern int soft_offline_page(struct page *page, int flags);
101128
101129
101130 @@ -2292,5 +2318,11 @@ void __init setup_nr_node_ids(void);
101131 static inline void setup_nr_node_ids(void) {}
101132 #endif
101133
101134 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
101135 +extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot);
101136 +#else
101137 +static inline void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot) {}
101138 +#endif
101139 +
101140 #endif /* __KERNEL__ */
101141 #endif /* _LINUX_MM_H */
101142 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
101143 index 1554957..0973bc5 100644
101144 --- a/include/linux/mm_types.h
101145 +++ b/include/linux/mm_types.h
101146 @@ -322,7 +322,9 @@ struct vm_area_struct {
101147 #ifdef CONFIG_NUMA
101148 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
101149 #endif
101150 -};
101151 +
101152 + struct vm_area_struct *vm_mirror;/* PaX: mirror vma or NULL */
101153 +} __randomize_layout;
101154
101155 struct core_thread {
101156 struct task_struct *task;
101157 @@ -475,7 +477,25 @@ struct mm_struct {
101158 /* address of the bounds directory */
101159 void __user *bd_addr;
101160 #endif
101161 -};
101162 +
101163 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
101164 + unsigned long pax_flags;
101165 +#endif
101166 +
101167 +#ifdef CONFIG_PAX_DLRESOLVE
101168 + unsigned long call_dl_resolve;
101169 +#endif
101170 +
101171 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
101172 + unsigned long call_syscall;
101173 +#endif
101174 +
101175 +#ifdef CONFIG_PAX_ASLR
101176 + unsigned long delta_mmap; /* randomized offset */
101177 + unsigned long delta_stack; /* randomized offset */
101178 +#endif
101179 +
101180 +} __randomize_layout;
101181
101182 static inline void mm_init_cpumask(struct mm_struct *mm)
101183 {
101184 diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h
101185 index 3ba327a..85cd5ce 100644
101186 --- a/include/linux/mmiotrace.h
101187 +++ b/include/linux/mmiotrace.h
101188 @@ -46,7 +46,7 @@ extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
101189 /* Called from ioremap.c */
101190 extern void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
101191 void __iomem *addr);
101192 -extern void mmiotrace_iounmap(volatile void __iomem *addr);
101193 +extern void mmiotrace_iounmap(const volatile void __iomem *addr);
101194
101195 /* For anyone to insert markers. Remember trailing newline. */
101196 extern __printf(1, 2) int mmiotrace_printk(const char *fmt, ...);
101197 @@ -66,7 +66,7 @@ static inline void mmiotrace_ioremap(resource_size_t offset,
101198 {
101199 }
101200
101201 -static inline void mmiotrace_iounmap(volatile void __iomem *addr)
101202 +static inline void mmiotrace_iounmap(const volatile void __iomem *addr)
101203 {
101204 }
101205
101206 diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
101207 index 754c259..7b65ac6 100644
101208 --- a/include/linux/mmzone.h
101209 +++ b/include/linux/mmzone.h
101210 @@ -526,7 +526,7 @@ struct zone {
101211
101212 ZONE_PADDING(_pad3_)
101213 /* Zone statistics */
101214 - atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
101215 + atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
101216 } ____cacheline_internodealigned_in_smp;
101217
101218 enum zone_flags {
101219 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
101220 index 34f25b7..0586069 100644
101221 --- a/include/linux/mod_devicetable.h
101222 +++ b/include/linux/mod_devicetable.h
101223 @@ -139,7 +139,7 @@ struct usb_device_id {
101224 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
101225 #define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
101226
101227 -#define HID_ANY_ID (~0)
101228 +#define HID_ANY_ID (~0U)
101229 #define HID_BUS_ANY 0xffff
101230 #define HID_GROUP_ANY 0x0000
101231
101232 @@ -472,7 +472,7 @@ struct dmi_system_id {
101233 const char *ident;
101234 struct dmi_strmatch matches[4];
101235 void *driver_data;
101236 -};
101237 +} __do_const;
101238 /*
101239 * struct dmi_device_id appears during expansion of
101240 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
101241 diff --git a/include/linux/module.h b/include/linux/module.h
101242 index 3a19c79..dea8c47 100644
101243 --- a/include/linux/module.h
101244 +++ b/include/linux/module.h
101245 @@ -19,9 +19,11 @@
101246 #include <linux/jump_label.h>
101247 #include <linux/export.h>
101248 #include <linux/rbtree_latch.h>
101249 +#include <linux/fs.h>
101250
101251 #include <linux/percpu.h>
101252 #include <asm/module.h>
101253 +#include <asm/pgtable.h>
101254
101255 /* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */
101256 #define MODULE_SIG_STRING "~Module signature appended~\n"
101257 @@ -44,7 +46,7 @@ struct module_kobject {
101258 struct kobject *drivers_dir;
101259 struct module_param_attrs *mp;
101260 struct completion *kobj_completion;
101261 -};
101262 +} __randomize_layout;
101263
101264 struct module_attribute {
101265 struct attribute attr;
101266 @@ -56,12 +58,13 @@ struct module_attribute {
101267 int (*test)(struct module *);
101268 void (*free)(struct module *);
101269 };
101270 +typedef struct module_attribute __no_const module_attribute_no_const;
101271
101272 struct module_version_attribute {
101273 struct module_attribute mattr;
101274 const char *module_name;
101275 const char *version;
101276 -} __attribute__ ((__aligned__(sizeof(void *))));
101277 +} __do_const __attribute__ ((__aligned__(sizeof(void *))));
101278
101279 extern ssize_t __modver_version_show(struct module_attribute *,
101280 struct module_kobject *, char *);
101281 @@ -313,7 +316,7 @@ struct module {
101282
101283 /* Sysfs stuff. */
101284 struct module_kobject mkobj;
101285 - struct module_attribute *modinfo_attrs;
101286 + module_attribute_no_const *modinfo_attrs;
101287 const char *version;
101288 const char *srcversion;
101289 struct kobject *holders_dir;
101290 @@ -370,20 +373,21 @@ struct module {
101291 * If this is non-NULL, vfree() after init() returns.
101292 *
101293 * Cacheline align here, such that:
101294 - * module_init, module_core, init_size, core_size,
101295 + * module_init_*, module_core_*, init_size_*, core_size_*,
101296 * init_text_size, core_text_size and mtn_core::{mod,node[0]}
101297 * are on the same cacheline.
101298 */
101299 - void *module_init ____cacheline_aligned;
101300 + void *module_init_rw ____cacheline_aligned;
101301 + void *module_init_rx;
101302
101303 /* Here is the actual code + data, vfree'd on unload. */
101304 - void *module_core;
101305 + void *module_core_rx, *module_core_rw;
101306
101307 /* Here are the sizes of the init and core sections */
101308 - unsigned int init_size, core_size;
101309 + unsigned int init_size_rw, core_size_rw;
101310
101311 /* The size of the executable code in each section. */
101312 - unsigned int init_text_size, core_text_size;
101313 + unsigned int init_size_rx, core_size_rx;
101314
101315 #ifdef CONFIG_MODULES_TREE_LOOKUP
101316 /*
101317 @@ -391,13 +395,12 @@ struct module {
101318 * above entries such that a regular lookup will only touch one
101319 * cacheline.
101320 */
101321 - struct mod_tree_node mtn_core;
101322 - struct mod_tree_node mtn_init;
101323 + struct mod_tree_node mtn_core_rw;
101324 + struct mod_tree_node mtn_core_rx;
101325 + struct mod_tree_node mtn_init_rw;
101326 + struct mod_tree_node mtn_init_rx;
101327 #endif
101328
101329 - /* Size of RO sections of the module (text+rodata) */
101330 - unsigned int init_ro_size, core_ro_size;
101331 -
101332 /* Arch-specific module values */
101333 struct mod_arch_specific arch;
101334
101335 @@ -454,6 +457,10 @@ struct module {
101336 unsigned int num_trace_events;
101337 struct trace_enum_map **trace_enums;
101338 unsigned int num_trace_enums;
101339 + struct file_operations trace_id;
101340 + struct file_operations trace_enable;
101341 + struct file_operations trace_format;
101342 + struct file_operations trace_filter;
101343 #endif
101344 #ifdef CONFIG_FTRACE_MCOUNT_RECORD
101345 unsigned int num_ftrace_callsites;
101346 @@ -481,7 +488,8 @@ struct module {
101347 ctor_fn_t *ctors;
101348 unsigned int num_ctors;
101349 #endif
101350 -} ____cacheline_aligned;
101351 +} ____cacheline_aligned __randomize_layout;
101352 +
101353 #ifndef MODULE_ARCH_INIT
101354 #define MODULE_ARCH_INIT {}
101355 #endif
101356 @@ -502,18 +510,48 @@ bool is_module_address(unsigned long addr);
101357 bool is_module_percpu_address(unsigned long addr);
101358 bool is_module_text_address(unsigned long addr);
101359
101360 +static inline int within_module_range(unsigned long addr, void *start, unsigned long size)
101361 +{
101362 +
101363 +#ifdef CONFIG_PAX_KERNEXEC
101364 + if (ktla_ktva(addr) >= (unsigned long)start &&
101365 + ktla_ktva(addr) < (unsigned long)start + size)
101366 + return 1;
101367 +#endif
101368 +
101369 + return ((void *)addr >= start && (void *)addr < start + size);
101370 +}
101371 +
101372 +static inline int within_module_core_rx(unsigned long addr, const struct module *mod)
101373 +{
101374 + return within_module_range(addr, mod->module_core_rx, mod->core_size_rx);
101375 +}
101376 +
101377 +static inline int within_module_core_rw(unsigned long addr, const struct module *mod)
101378 +{
101379 + return within_module_range(addr, mod->module_core_rw, mod->core_size_rw);
101380 +}
101381 +
101382 +static inline int within_module_init_rx(unsigned long addr, const struct module *mod)
101383 +{
101384 + return within_module_range(addr, mod->module_init_rx, mod->init_size_rx);
101385 +}
101386 +
101387 +static inline int within_module_init_rw(unsigned long addr, const struct module *mod)
101388 +{
101389 + return within_module_range(addr, mod->module_init_rw, mod->init_size_rw);
101390 +}
101391 +
101392 static inline bool within_module_core(unsigned long addr,
101393 const struct module *mod)
101394 {
101395 - return (unsigned long)mod->module_core <= addr &&
101396 - addr < (unsigned long)mod->module_core + mod->core_size;
101397 + return within_module_core_rx(addr, mod) || within_module_core_rw(addr, mod);
101398 }
101399
101400 static inline bool within_module_init(unsigned long addr,
101401 const struct module *mod)
101402 {
101403 - return (unsigned long)mod->module_init <= addr &&
101404 - addr < (unsigned long)mod->module_init + mod->init_size;
101405 + return within_module_init_rx(addr, mod) || within_module_init_rw(addr, mod);
101406 }
101407
101408 static inline bool within_module(unsigned long addr, const struct module *mod)
101409 diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
101410 index 4d0cb9b..3169ac7 100644
101411 --- a/include/linux/moduleloader.h
101412 +++ b/include/linux/moduleloader.h
101413 @@ -25,9 +25,21 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
101414 sections. Returns NULL on failure. */
101415 void *module_alloc(unsigned long size);
101416
101417 +#ifdef CONFIG_PAX_KERNEXEC
101418 +void *module_alloc_exec(unsigned long size);
101419 +#else
101420 +#define module_alloc_exec(x) module_alloc(x)
101421 +#endif
101422 +
101423 /* Free memory returned from module_alloc. */
101424 void module_memfree(void *module_region);
101425
101426 +#ifdef CONFIG_PAX_KERNEXEC
101427 +void module_memfree_exec(void *module_region);
101428 +#else
101429 +#define module_memfree_exec(x) module_memfree((x))
101430 +#endif
101431 +
101432 /*
101433 * Apply the given relocation to the (simplified) ELF. Return -error
101434 * or 0.
101435 @@ -45,8 +57,10 @@ static inline int apply_relocate(Elf_Shdr *sechdrs,
101436 unsigned int relsec,
101437 struct module *me)
101438 {
101439 +#ifdef CONFIG_MODULES
101440 printk(KERN_ERR "module %s: REL relocation unsupported\n",
101441 module_name(me));
101442 +#endif
101443 return -ENOEXEC;
101444 }
101445 #endif
101446 @@ -68,8 +82,10 @@ static inline int apply_relocate_add(Elf_Shdr *sechdrs,
101447 unsigned int relsec,
101448 struct module *me)
101449 {
101450 +#ifdef CONFIG_MODULES
101451 printk(KERN_ERR "module %s: REL relocation unsupported\n",
101452 module_name(me));
101453 +#endif
101454 return -ENOEXEC;
101455 }
101456 #endif
101457 diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
101458 index c12f214..3ef907f 100644
101459 --- a/include/linux/moduleparam.h
101460 +++ b/include/linux/moduleparam.h
101461 @@ -289,7 +289,7 @@ static inline void kernel_param_unlock(struct module *mod)
101462 * @len is usually just sizeof(string).
101463 */
101464 #define module_param_string(name, string, len, perm) \
101465 - static const struct kparam_string __param_string_##name \
101466 + static const struct kparam_string __param_string_##name __used \
101467 = { len, string }; \
101468 __module_param_call(MODULE_PARAM_PREFIX, name, \
101469 &param_ops_string, \
101470 @@ -440,7 +440,7 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp);
101471 */
101472 #define module_param_array_named(name, array, type, nump, perm) \
101473 param_check_##type(name, &(array)[0]); \
101474 - static const struct kparam_array __param_arr_##name \
101475 + static const struct kparam_array __param_arr_##name __used \
101476 = { .max = ARRAY_SIZE(array), .num = nump, \
101477 .ops = &param_ops_##type, \
101478 .elemsize = sizeof(array[0]), .elem = array }; \
101479 diff --git a/include/linux/mount.h b/include/linux/mount.h
101480 index f822c3c..958ca0a 100644
101481 --- a/include/linux/mount.h
101482 +++ b/include/linux/mount.h
101483 @@ -67,7 +67,7 @@ struct vfsmount {
101484 struct dentry *mnt_root; /* root of the mounted tree */
101485 struct super_block *mnt_sb; /* pointer to superblock */
101486 int mnt_flags;
101487 -};
101488 +} __randomize_layout;
101489
101490 struct file; /* forward dec */
101491 struct path;
101492 diff --git a/include/linux/msg.h b/include/linux/msg.h
101493 index f3f302f..a001305 100644
101494 --- a/include/linux/msg.h
101495 +++ b/include/linux/msg.h
101496 @@ -29,7 +29,7 @@ struct msg_queue {
101497 struct list_head q_messages;
101498 struct list_head q_receivers;
101499 struct list_head q_senders;
101500 -};
101501 +} __randomize_layout;
101502
101503 /* Helper routines for sys_msgsnd and sys_msgrcv */
101504 extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
101505 diff --git a/include/linux/net.h b/include/linux/net.h
101506 index 04aa068..8a24df5 100644
101507 --- a/include/linux/net.h
101508 +++ b/include/linux/net.h
101509 @@ -189,7 +189,7 @@ struct net_proto_family {
101510 int (*create)(struct net *net, struct socket *sock,
101511 int protocol, int kern);
101512 struct module *owner;
101513 -};
101514 +} __do_const;
101515
101516 struct iovec;
101517 struct kvec;
101518 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
101519 index e20979d..3c7827b 100644
101520 --- a/include/linux/netdevice.h
101521 +++ b/include/linux/netdevice.h
101522 @@ -1212,6 +1212,7 @@ struct net_device_ops {
101523 u32 maxrate);
101524 int (*ndo_get_iflink)(const struct net_device *dev);
101525 };
101526 +typedef struct net_device_ops __no_const net_device_ops_no_const;
101527
101528 /**
101529 * enum net_device_priv_flags - &struct net_device priv_flags
101530 @@ -1519,7 +1520,7 @@ struct net_device {
101531 unsigned long base_addr;
101532 int irq;
101533
101534 - atomic_t carrier_changes;
101535 + atomic_unchecked_t carrier_changes;
101536
101537 /*
101538 * Some hardware also needs these fields (state,dev_list,
101539 @@ -1558,8 +1559,8 @@ struct net_device {
101540
101541 struct net_device_stats stats;
101542
101543 - atomic_long_t rx_dropped;
101544 - atomic_long_t tx_dropped;
101545 + atomic_long_unchecked_t rx_dropped;
101546 + atomic_long_unchecked_t tx_dropped;
101547
101548 #ifdef CONFIG_WIRELESS_EXT
101549 const struct iw_handler_def * wireless_handlers;
101550 diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
101551 index 00050df..0bc7081 100644
101552 --- a/include/linux/netfilter.h
101553 +++ b/include/linux/netfilter.h
101554 @@ -115,7 +115,7 @@ struct nf_sockopt_ops {
101555 #endif
101556 /* Use the module struct to lock set/get code in place */
101557 struct module *owner;
101558 -};
101559 +} __do_const;
101560
101561 /* Function to register/unregister hook points. */
101562 int nf_register_hook(struct nf_hook_ops *reg);
101563 diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
101564 index e955d47..04a5338 100644
101565 --- a/include/linux/netfilter/nfnetlink.h
101566 +++ b/include/linux/netfilter/nfnetlink.h
101567 @@ -19,7 +19,7 @@ struct nfnl_callback {
101568 const struct nlattr * const cda[]);
101569 const struct nla_policy *policy; /* netlink attribute policy */
101570 const u_int16_t attr_count; /* number of nlattr's */
101571 -};
101572 +} __do_const;
101573
101574 struct nfnetlink_subsystem {
101575 const char *name;
101576 diff --git a/include/linux/netfilter/xt_gradm.h b/include/linux/netfilter/xt_gradm.h
101577 new file mode 100644
101578 index 0000000..33f4af8
101579 --- /dev/null
101580 +++ b/include/linux/netfilter/xt_gradm.h
101581 @@ -0,0 +1,9 @@
101582 +#ifndef _LINUX_NETFILTER_XT_GRADM_H
101583 +#define _LINUX_NETFILTER_XT_GRADM_H 1
101584 +
101585 +struct xt_gradm_mtinfo {
101586 + __u16 flags;
101587 + __u16 invflags;
101588 +};
101589 +
101590 +#endif
101591 diff --git a/include/linux/nls.h b/include/linux/nls.h
101592 index 520681b..2b7fabb 100644
101593 --- a/include/linux/nls.h
101594 +++ b/include/linux/nls.h
101595 @@ -31,7 +31,7 @@ struct nls_table {
101596 const unsigned char *charset2upper;
101597 struct module *owner;
101598 struct nls_table *next;
101599 -};
101600 +} __do_const;
101601
101602 /* this value hold the maximum octet of charset */
101603 #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */
101604 @@ -46,7 +46,7 @@ enum utf16_endian {
101605 /* nls_base.c */
101606 extern int __register_nls(struct nls_table *, struct module *);
101607 extern int unregister_nls(struct nls_table *);
101608 -extern struct nls_table *load_nls(char *);
101609 +extern struct nls_table *load_nls(const char *);
101610 extern void unload_nls(struct nls_table *);
101611 extern struct nls_table *load_nls_default(void);
101612 #define register_nls(nls) __register_nls((nls), THIS_MODULE)
101613 diff --git a/include/linux/notifier.h b/include/linux/notifier.h
101614 index d14a4c3..a078786 100644
101615 --- a/include/linux/notifier.h
101616 +++ b/include/linux/notifier.h
101617 @@ -54,7 +54,8 @@ struct notifier_block {
101618 notifier_fn_t notifier_call;
101619 struct notifier_block __rcu *next;
101620 int priority;
101621 -};
101622 +} __do_const;
101623 +typedef struct notifier_block __no_const notifier_block_no_const;
101624
101625 struct atomic_notifier_head {
101626 spinlock_t lock;
101627 diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
101628 index b2a0f15..4d7da32 100644
101629 --- a/include/linux/oprofile.h
101630 +++ b/include/linux/oprofile.h
101631 @@ -138,9 +138,9 @@ int oprofilefs_create_ulong(struct dentry * root,
101632 int oprofilefs_create_ro_ulong(struct dentry * root,
101633 char const * name, ulong * val);
101634
101635 -/** Create a file for read-only access to an atomic_t. */
101636 +/** Create a file for read-only access to an atomic_unchecked_t. */
101637 int oprofilefs_create_ro_atomic(struct dentry * root,
101638 - char const * name, atomic_t * val);
101639 + char const * name, atomic_unchecked_t * val);
101640
101641 /** create a directory */
101642 struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name);
101643 diff --git a/include/linux/padata.h b/include/linux/padata.h
101644 index 4386946..f50c615 100644
101645 --- a/include/linux/padata.h
101646 +++ b/include/linux/padata.h
101647 @@ -129,7 +129,7 @@ struct parallel_data {
101648 struct padata_serial_queue __percpu *squeue;
101649 atomic_t reorder_objects;
101650 atomic_t refcnt;
101651 - atomic_t seq_nr;
101652 + atomic_unchecked_t seq_nr;
101653 struct padata_cpumask cpumask;
101654 spinlock_t lock ____cacheline_aligned;
101655 unsigned int processed;
101656 diff --git a/include/linux/path.h b/include/linux/path.h
101657 index d137218..be0c176 100644
101658 --- a/include/linux/path.h
101659 +++ b/include/linux/path.h
101660 @@ -1,13 +1,15 @@
101661 #ifndef _LINUX_PATH_H
101662 #define _LINUX_PATH_H
101663
101664 +#include <linux/compiler.h>
101665 +
101666 struct dentry;
101667 struct vfsmount;
101668
101669 struct path {
101670 struct vfsmount *mnt;
101671 struct dentry *dentry;
101672 -};
101673 +} __randomize_layout;
101674
101675 extern void path_get(const struct path *);
101676 extern void path_put(const struct path *);
101677 diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
101678 index 8c78950..0d74ed9 100644
101679 --- a/include/linux/pci_hotplug.h
101680 +++ b/include/linux/pci_hotplug.h
101681 @@ -71,7 +71,8 @@ struct hotplug_slot_ops {
101682 int (*get_latch_status) (struct hotplug_slot *slot, u8 *value);
101683 int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value);
101684 int (*reset_slot) (struct hotplug_slot *slot, int probe);
101685 -};
101686 +} __do_const;
101687 +typedef struct hotplug_slot_ops __no_const hotplug_slot_ops_no_const;
101688
101689 /**
101690 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
101691 diff --git a/include/linux/percpu.h b/include/linux/percpu.h
101692 index caebf2a..4c3ae9d 100644
101693 --- a/include/linux/percpu.h
101694 +++ b/include/linux/percpu.h
101695 @@ -34,7 +34,7 @@
101696 * preallocate for this. Keep PERCPU_DYNAMIC_RESERVE equal to or
101697 * larger than PERCPU_DYNAMIC_EARLY_SIZE.
101698 */
101699 -#define PERCPU_DYNAMIC_EARLY_SLOTS 128
101700 +#define PERCPU_DYNAMIC_EARLY_SLOTS 256
101701 #define PERCPU_DYNAMIC_EARLY_SIZE (12 << 10)
101702
101703 /*
101704 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
101705 index 2027809..c9cd38e 100644
101706 --- a/include/linux/perf_event.h
101707 +++ b/include/linux/perf_event.h
101708 @@ -384,8 +384,8 @@ struct perf_event {
101709
101710 enum perf_event_active_state state;
101711 unsigned int attach_state;
101712 - local64_t count;
101713 - atomic64_t child_count;
101714 + local64_t count; /* PaX: fix it one day */
101715 + atomic64_unchecked_t child_count;
101716
101717 /*
101718 * These are the total time in nanoseconds that the event
101719 @@ -436,8 +436,8 @@ struct perf_event {
101720 * These accumulate total time (in nanoseconds) that children
101721 * events have been enabled and running, respectively.
101722 */
101723 - atomic64_t child_total_time_enabled;
101724 - atomic64_t child_total_time_running;
101725 + atomic64_unchecked_t child_total_time_enabled;
101726 + atomic64_unchecked_t child_total_time_running;
101727
101728 /*
101729 * Protect attach/detach and child_list:
101730 @@ -859,7 +859,7 @@ static inline void perf_event_task_sched_out(struct task_struct *prev,
101731
101732 static inline u64 __perf_event_count(struct perf_event *event)
101733 {
101734 - return local64_read(&event->count) + atomic64_read(&event->child_count);
101735 + return local64_read(&event->count) + atomic64_read_unchecked(&event->child_count);
101736 }
101737
101738 extern void perf_event_mmap(struct vm_area_struct *vma);
101739 @@ -883,7 +883,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
101740 entry->ip[entry->nr++] = ip;
101741 }
101742
101743 -extern int sysctl_perf_event_paranoid;
101744 +extern int sysctl_perf_event_legitimately_concerned;
101745 extern int sysctl_perf_event_mlock;
101746 extern int sysctl_perf_event_sample_rate;
101747 extern int sysctl_perf_cpu_time_max_percent;
101748 @@ -898,19 +898,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
101749 loff_t *ppos);
101750
101751
101752 +static inline bool perf_paranoid_any(void)
101753 +{
101754 + return sysctl_perf_event_legitimately_concerned > 2;
101755 +}
101756 +
101757 static inline bool perf_paranoid_tracepoint_raw(void)
101758 {
101759 - return sysctl_perf_event_paranoid > -1;
101760 + return sysctl_perf_event_legitimately_concerned > -1;
101761 }
101762
101763 static inline bool perf_paranoid_cpu(void)
101764 {
101765 - return sysctl_perf_event_paranoid > 0;
101766 + return sysctl_perf_event_legitimately_concerned > 0;
101767 }
101768
101769 static inline bool perf_paranoid_kernel(void)
101770 {
101771 - return sysctl_perf_event_paranoid > 1;
101772 + return sysctl_perf_event_legitimately_concerned > 1;
101773 }
101774
101775 extern void perf_event_init(void);
101776 @@ -1066,7 +1071,7 @@ struct perf_pmu_events_attr {
101777 struct device_attribute attr;
101778 u64 id;
101779 const char *event_str;
101780 -};
101781 +} __do_const;
101782
101783 ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr,
101784 char *page);
101785 diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
101786 index 918b117..7af374b7 100644
101787 --- a/include/linux/pid_namespace.h
101788 +++ b/include/linux/pid_namespace.h
101789 @@ -45,7 +45,7 @@ struct pid_namespace {
101790 int hide_pid;
101791 int reboot; /* group exit code if this pidns was rebooted */
101792 struct ns_common ns;
101793 -};
101794 +} __randomize_layout;
101795
101796 extern struct pid_namespace init_pid_ns;
101797
101798 diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
101799 index eb8b8ac..62649e1 100644
101800 --- a/include/linux/pipe_fs_i.h
101801 +++ b/include/linux/pipe_fs_i.h
101802 @@ -47,10 +47,10 @@ struct pipe_inode_info {
101803 struct mutex mutex;
101804 wait_queue_head_t wait;
101805 unsigned int nrbufs, curbuf, buffers;
101806 - unsigned int readers;
101807 - unsigned int writers;
101808 - unsigned int files;
101809 - unsigned int waiting_writers;
101810 + atomic_t readers;
101811 + atomic_t writers;
101812 + atomic_t files;
101813 + atomic_t waiting_writers;
101814 unsigned int r_counter;
101815 unsigned int w_counter;
101816 struct page *tmp_page;
101817 diff --git a/include/linux/pm.h b/include/linux/pm.h
101818 index 35d599e..c604209 100644
101819 --- a/include/linux/pm.h
101820 +++ b/include/linux/pm.h
101821 @@ -630,6 +630,7 @@ struct dev_pm_domain {
101822 void (*sync)(struct device *dev);
101823 void (*dismiss)(struct device *dev);
101824 };
101825 +typedef struct dev_pm_domain __no_const dev_pm_domain_no_const;
101826
101827 /*
101828 * The PM_EVENT_ messages are also used by drivers implementing the legacy
101829 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
101830 index 681ccb0..a90e0b7 100644
101831 --- a/include/linux/pm_domain.h
101832 +++ b/include/linux/pm_domain.h
101833 @@ -39,11 +39,11 @@ struct gpd_dev_ops {
101834 int (*save_state)(struct device *dev);
101835 int (*restore_state)(struct device *dev);
101836 bool (*active_wakeup)(struct device *dev);
101837 -};
101838 +} __no_const;
101839
101840 struct gpd_cpuidle_data {
101841 unsigned int saved_exit_latency;
101842 - struct cpuidle_state *idle_state;
101843 + cpuidle_state_no_const *idle_state;
101844 };
101845
101846 struct generic_pm_domain {
101847 diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
101848 index 30e84d4..22278b4 100644
101849 --- a/include/linux/pm_runtime.h
101850 +++ b/include/linux/pm_runtime.h
101851 @@ -115,7 +115,7 @@ static inline bool pm_runtime_callbacks_present(struct device *dev)
101852
101853 static inline void pm_runtime_mark_last_busy(struct device *dev)
101854 {
101855 - ACCESS_ONCE(dev->power.last_busy) = jiffies;
101856 + ACCESS_ONCE_RW(dev->power.last_busy) = jiffies;
101857 }
101858
101859 static inline bool pm_runtime_is_irq_safe(struct device *dev)
101860 diff --git a/include/linux/pnp.h b/include/linux/pnp.h
101861 index 5df733b..d55f252 100644
101862 --- a/include/linux/pnp.h
101863 +++ b/include/linux/pnp.h
101864 @@ -298,7 +298,7 @@ static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data)
101865 struct pnp_fixup {
101866 char id[7];
101867 void (*quirk_function) (struct pnp_dev * dev); /* fixup function */
101868 -};
101869 +} __do_const;
101870
101871 /* config parameters */
101872 #define PNP_CONFIG_NORMAL 0x0001
101873 diff --git a/include/linux/poison.h b/include/linux/poison.h
101874 index 2110a81..13a11bb 100644
101875 --- a/include/linux/poison.h
101876 +++ b/include/linux/poison.h
101877 @@ -19,8 +19,8 @@
101878 * under normal circumstances, used to verify that nobody uses
101879 * non-initialized list entries.
101880 */
101881 -#define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA)
101882 -#define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA)
101883 +#define LIST_POISON1 ((void *) (long)0xFFFFFF01)
101884 +#define LIST_POISON2 ((void *) (long)0xFFFFFF02)
101885
101886 /********** include/linux/timer.h **********/
101887 /*
101888 diff --git a/include/linux/power/smartreflex.h b/include/linux/power/smartreflex.h
101889 index d8b187c3..9a9257a 100644
101890 --- a/include/linux/power/smartreflex.h
101891 +++ b/include/linux/power/smartreflex.h
101892 @@ -238,7 +238,7 @@ struct omap_sr_class_data {
101893 int (*notify)(struct omap_sr *sr, u32 status);
101894 u8 notify_flags;
101895 u8 class_type;
101896 -};
101897 +} __do_const;
101898
101899 /**
101900 * struct omap_sr_nvalue_table - Smartreflex n-target value info
101901 diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h
101902 index 4ea1d37..80f4b33 100644
101903 --- a/include/linux/ppp-comp.h
101904 +++ b/include/linux/ppp-comp.h
101905 @@ -84,7 +84,7 @@ struct compressor {
101906 struct module *owner;
101907 /* Extra skb space needed by the compressor algorithm */
101908 unsigned int comp_extra;
101909 -};
101910 +} __do_const;
101911
101912 /*
101913 * The return value from decompress routine is the length of the
101914 diff --git a/include/linux/preempt.h b/include/linux/preempt.h
101915 index bea8dd8..534a23d 100644
101916 --- a/include/linux/preempt.h
101917 +++ b/include/linux/preempt.h
101918 @@ -140,11 +140,16 @@ extern void preempt_count_sub(int val);
101919 #define preempt_count_dec_and_test() __preempt_count_dec_and_test()
101920 #endif
101921
101922 +#define raw_preempt_count_add(val) __preempt_count_add(val)
101923 +#define raw_preempt_count_sub(val) __preempt_count_sub(val)
101924 +
101925 #define __preempt_count_inc() __preempt_count_add(1)
101926 #define __preempt_count_dec() __preempt_count_sub(1)
101927
101928 #define preempt_count_inc() preempt_count_add(1)
101929 +#define raw_preempt_count_inc() raw_preempt_count_add(1)
101930 #define preempt_count_dec() preempt_count_sub(1)
101931 +#define raw_preempt_count_dec() raw_preempt_count_sub(1)
101932
101933 #define preempt_active_enter() \
101934 do { \
101935 @@ -166,6 +171,12 @@ do { \
101936 barrier(); \
101937 } while (0)
101938
101939 +#define raw_preempt_disable() \
101940 +do { \
101941 + raw_preempt_count_inc(); \
101942 + barrier(); \
101943 +} while (0)
101944 +
101945 #define sched_preempt_enable_no_resched() \
101946 do { \
101947 barrier(); \
101948 @@ -174,6 +185,12 @@ do { \
101949
101950 #define preempt_enable_no_resched() sched_preempt_enable_no_resched()
101951
101952 +#define raw_preempt_enable_no_resched() \
101953 +do { \
101954 + barrier(); \
101955 + raw_preempt_count_dec(); \
101956 +} while (0)
101957 +
101958 #define preemptible() (preempt_count() == 0 && !irqs_disabled())
101959
101960 #ifdef CONFIG_PREEMPT
101961 @@ -234,8 +251,10 @@ do { \
101962 * region.
101963 */
101964 #define preempt_disable() barrier()
101965 +#define raw_preempt_disable() barrier()
101966 #define sched_preempt_enable_no_resched() barrier()
101967 #define preempt_enable_no_resched() barrier()
101968 +#define raw_preempt_enable_no_resched() barrier()
101969 #define preempt_enable() barrier()
101970 #define preempt_check_resched() do { } while (0)
101971
101972 @@ -250,11 +269,13 @@ do { \
101973 /*
101974 * Modules have no business playing preemption tricks.
101975 */
101976 +#ifndef CONFIG_PAX_KERNEXEC
101977 #undef sched_preempt_enable_no_resched
101978 #undef preempt_enable_no_resched
101979 #undef preempt_enable_no_resched_notrace
101980 #undef preempt_check_resched
101981 #endif
101982 +#endif
101983
101984 #define preempt_set_need_resched() \
101985 do { \
101986 diff --git a/include/linux/printk.h b/include/linux/printk.h
101987 index a6298b2..57fe982 100644
101988 --- a/include/linux/printk.h
101989 +++ b/include/linux/printk.h
101990 @@ -123,6 +123,7 @@ void early_printk(const char *s, ...) { }
101991 #endif
101992
101993 typedef __printf(1, 0) int (*printk_func_t)(const char *fmt, va_list args);
101994 +extern int kptr_restrict;
101995
101996 #ifdef CONFIG_PRINTK
101997 asmlinkage __printf(5, 0)
101998 @@ -158,7 +159,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
101999
102000 extern int printk_delay_msec;
102001 extern int dmesg_restrict;
102002 -extern int kptr_restrict;
102003
102004 extern void wake_up_klogd(void);
102005
102006 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
102007 index b97bf2e..f14c92d4 100644
102008 --- a/include/linux/proc_fs.h
102009 +++ b/include/linux/proc_fs.h
102010 @@ -17,8 +17,11 @@ extern void proc_flush_task(struct task_struct *);
102011 extern struct proc_dir_entry *proc_symlink(const char *,
102012 struct proc_dir_entry *, const char *);
102013 extern struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);
102014 +extern struct proc_dir_entry *proc_mkdir_restrict(const char *, struct proc_dir_entry *);
102015 extern struct proc_dir_entry *proc_mkdir_data(const char *, umode_t,
102016 struct proc_dir_entry *, void *);
102017 +extern struct proc_dir_entry *proc_mkdir_data_restrict(const char *, umode_t,
102018 + struct proc_dir_entry *, void *);
102019 extern struct proc_dir_entry *proc_mkdir_mode(const char *, umode_t,
102020 struct proc_dir_entry *);
102021
102022 @@ -34,6 +37,19 @@ static inline struct proc_dir_entry *proc_create(
102023 return proc_create_data(name, mode, parent, proc_fops, NULL);
102024 }
102025
102026 +static inline struct proc_dir_entry *proc_create_grsec(const char *name, umode_t mode,
102027 + struct proc_dir_entry *parent, const struct file_operations *proc_fops)
102028 +{
102029 +#ifdef CONFIG_GRKERNSEC_PROC_USER
102030 + return proc_create_data(name, S_IRUSR, parent, proc_fops, NULL);
102031 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
102032 + return proc_create_data(name, S_IRUSR | S_IRGRP, parent, proc_fops, NULL);
102033 +#else
102034 + return proc_create_data(name, mode, parent, proc_fops, NULL);
102035 +#endif
102036 +}
102037 +
102038 +
102039 extern void proc_set_size(struct proc_dir_entry *, loff_t);
102040 extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
102041 extern void *PDE_DATA(const struct inode *);
102042 @@ -56,8 +72,12 @@ static inline struct proc_dir_entry *proc_symlink(const char *name,
102043 struct proc_dir_entry *parent,const char *dest) { return NULL;}
102044 static inline struct proc_dir_entry *proc_mkdir(const char *name,
102045 struct proc_dir_entry *parent) {return NULL;}
102046 +static inline struct proc_dir_entry *proc_mkdir_restrict(const char *name,
102047 + struct proc_dir_entry *parent) { return NULL; }
102048 static inline struct proc_dir_entry *proc_mkdir_data(const char *name,
102049 umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
102050 +static inline struct proc_dir_entry *proc_mkdir_data_restrict(const char *name,
102051 + umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
102052 static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
102053 umode_t mode, struct proc_dir_entry *parent) { return NULL; }
102054 #define proc_create(name, mode, parent, proc_fops) ({NULL;})
102055 @@ -79,7 +99,7 @@ struct net;
102056 static inline struct proc_dir_entry *proc_net_mkdir(
102057 struct net *net, const char *name, struct proc_dir_entry *parent)
102058 {
102059 - return proc_mkdir_data(name, 0, parent, net);
102060 + return proc_mkdir_data_restrict(name, 0, parent, net);
102061 }
102062
102063 #endif /* _LINUX_PROC_FS_H */
102064 diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h
102065 index 42dfc61..8113a99 100644
102066 --- a/include/linux/proc_ns.h
102067 +++ b/include/linux/proc_ns.h
102068 @@ -16,7 +16,7 @@ struct proc_ns_operations {
102069 struct ns_common *(*get)(struct task_struct *task);
102070 void (*put)(struct ns_common *ns);
102071 int (*install)(struct nsproxy *nsproxy, struct ns_common *ns);
102072 -};
102073 +} __do_const __randomize_layout;
102074
102075 extern const struct proc_ns_operations netns_operations;
102076 extern const struct proc_ns_operations utsns_operations;
102077 diff --git a/include/linux/quota.h b/include/linux/quota.h
102078 index b2505ac..5f7ab55 100644
102079 --- a/include/linux/quota.h
102080 +++ b/include/linux/quota.h
102081 @@ -76,7 +76,7 @@ struct kqid { /* Type in which we store the quota identifier */
102082
102083 extern bool qid_eq(struct kqid left, struct kqid right);
102084 extern bool qid_lt(struct kqid left, struct kqid right);
102085 -extern qid_t from_kqid(struct user_namespace *to, struct kqid qid);
102086 +extern qid_t from_kqid(struct user_namespace *to, struct kqid qid) __intentional_overflow(-1);
102087 extern qid_t from_kqid_munged(struct user_namespace *to, struct kqid qid);
102088 extern bool qid_valid(struct kqid qid);
102089
102090 diff --git a/include/linux/random.h b/include/linux/random.h
102091 index e651874..a872186 100644
102092 --- a/include/linux/random.h
102093 +++ b/include/linux/random.h
102094 @@ -16,9 +16,19 @@ struct random_ready_callback {
102095 };
102096
102097 extern void add_device_randomness(const void *, unsigned int);
102098 +
102099 +static inline void add_latent_entropy(void)
102100 +{
102101 +
102102 +#ifdef LATENT_ENTROPY_PLUGIN
102103 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
102104 +#endif
102105 +
102106 +}
102107 +
102108 extern void add_input_randomness(unsigned int type, unsigned int code,
102109 - unsigned int value);
102110 -extern void add_interrupt_randomness(int irq, int irq_flags);
102111 + unsigned int value) __latent_entropy;
102112 +extern void add_interrupt_randomness(int irq, int irq_flags) __latent_entropy;
102113
102114 extern void get_random_bytes(void *buf, int nbytes);
102115 extern int add_random_ready_callback(struct random_ready_callback *rdy);
102116 @@ -46,6 +56,11 @@ struct rnd_state {
102117 u32 prandom_u32_state(struct rnd_state *state);
102118 void prandom_bytes_state(struct rnd_state *state, void *buf, size_t nbytes);
102119
102120 +static inline unsigned long __intentional_overflow(-1) pax_get_random_long(void)
102121 +{
102122 + return prandom_u32() + (sizeof(long) > 4 ? (unsigned long)prandom_u32() << 32 : 0);
102123 +}
102124 +
102125 /**
102126 * prandom_u32_max - returns a pseudo-random number in interval [0, ep_ro)
102127 * @ep_ro: right open interval endpoint
102128 @@ -58,7 +73,7 @@ void prandom_bytes_state(struct rnd_state *state, void *buf, size_t nbytes);
102129 *
102130 * Returns: pseudo-random number in interval [0, ep_ro)
102131 */
102132 -static inline u32 prandom_u32_max(u32 ep_ro)
102133 +static inline u32 __intentional_overflow(-1) prandom_u32_max(u32 ep_ro)
102134 {
102135 return (u32)(((u64) prandom_u32() * ep_ro) >> 32);
102136 }
102137 diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
102138 index 14d7b83..a1edf56 100644
102139 --- a/include/linux/rbtree_augmented.h
102140 +++ b/include/linux/rbtree_augmented.h
102141 @@ -90,7 +90,9 @@ rbname ## _rotate(struct rb_node *rb_old, struct rb_node *rb_new) \
102142 old->rbaugmented = rbcompute(old); \
102143 } \
102144 rbstatic const struct rb_augment_callbacks rbname = { \
102145 - rbname ## _propagate, rbname ## _copy, rbname ## _rotate \
102146 + .propagate = rbname ## _propagate, \
102147 + .copy = rbname ## _copy, \
102148 + .rotate = rbname ## _rotate \
102149 };
102150
102151
102152 diff --git a/include/linux/rculist.h b/include/linux/rculist.h
102153 index 17c6b1f..a65e3f8 100644
102154 --- a/include/linux/rculist.h
102155 +++ b/include/linux/rculist.h
102156 @@ -59,6 +59,9 @@ void __list_add_rcu(struct list_head *new,
102157 struct list_head *prev, struct list_head *next);
102158 #endif
102159
102160 +void __pax_list_add_rcu(struct list_head *new,
102161 + struct list_head *prev, struct list_head *next);
102162 +
102163 /**
102164 * list_add_rcu - add a new entry to rcu-protected list
102165 * @new: new entry to be added
102166 @@ -80,6 +83,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head)
102167 __list_add_rcu(new, head, head->next);
102168 }
102169
102170 +static inline void pax_list_add_rcu(struct list_head *new, struct list_head *head)
102171 +{
102172 + __pax_list_add_rcu(new, head, head->next);
102173 +}
102174 +
102175 /**
102176 * list_add_tail_rcu - add a new entry to rcu-protected list
102177 * @new: new entry to be added
102178 @@ -102,6 +110,12 @@ static inline void list_add_tail_rcu(struct list_head *new,
102179 __list_add_rcu(new, head->prev, head);
102180 }
102181
102182 +static inline void pax_list_add_tail_rcu(struct list_head *new,
102183 + struct list_head *head)
102184 +{
102185 + __pax_list_add_rcu(new, head->prev, head);
102186 +}
102187 +
102188 /**
102189 * list_del_rcu - deletes entry from list without re-initialization
102190 * @entry: the element to delete from the list.
102191 @@ -132,6 +146,8 @@ static inline void list_del_rcu(struct list_head *entry)
102192 entry->prev = LIST_POISON2;
102193 }
102194
102195 +extern void pax_list_del_rcu(struct list_head *entry);
102196 +
102197 /**
102198 * hlist_del_init_rcu - deletes entry from hash list with re-initialization
102199 * @n: the element to delete from the hash list.
102200 diff --git a/include/linux/reboot.h b/include/linux/reboot.h
102201 index a7ff409..03e2fa8 100644
102202 --- a/include/linux/reboot.h
102203 +++ b/include/linux/reboot.h
102204 @@ -47,9 +47,9 @@ extern void do_kernel_restart(char *cmd);
102205 */
102206
102207 extern void migrate_to_reboot_cpu(void);
102208 -extern void machine_restart(char *cmd);
102209 -extern void machine_halt(void);
102210 -extern void machine_power_off(void);
102211 +extern void machine_restart(char *cmd) __noreturn;
102212 +extern void machine_halt(void) __noreturn;
102213 +extern void machine_power_off(void) __noreturn;
102214
102215 extern void machine_shutdown(void);
102216 struct pt_regs;
102217 @@ -60,9 +60,9 @@ extern void machine_crash_shutdown(struct pt_regs *);
102218 */
102219
102220 extern void kernel_restart_prepare(char *cmd);
102221 -extern void kernel_restart(char *cmd);
102222 -extern void kernel_halt(void);
102223 -extern void kernel_power_off(void);
102224 +extern void kernel_restart(char *cmd) __noreturn;
102225 +extern void kernel_halt(void) __noreturn;
102226 +extern void kernel_power_off(void) __noreturn;
102227
102228 extern int C_A_D; /* for sysctl */
102229 void ctrl_alt_del(void);
102230 @@ -77,7 +77,7 @@ extern void orderly_reboot(void);
102231 * Emergency restart, callable from an interrupt handler.
102232 */
102233
102234 -extern void emergency_restart(void);
102235 +extern void emergency_restart(void) __noreturn;
102236 #include <asm/emergency-restart.h>
102237
102238 #endif /* _LINUX_REBOOT_H */
102239 diff --git a/include/linux/regset.h b/include/linux/regset.h
102240 index 8e0c9fe..ac4d221 100644
102241 --- a/include/linux/regset.h
102242 +++ b/include/linux/regset.h
102243 @@ -161,7 +161,8 @@ struct user_regset {
102244 unsigned int align;
102245 unsigned int bias;
102246 unsigned int core_note_type;
102247 -};
102248 +} __do_const;
102249 +typedef struct user_regset __no_const user_regset_no_const;
102250
102251 /**
102252 * struct user_regset_view - available regsets
102253 diff --git a/include/linux/relay.h b/include/linux/relay.h
102254 index d7c8359..818daf5 100644
102255 --- a/include/linux/relay.h
102256 +++ b/include/linux/relay.h
102257 @@ -157,7 +157,7 @@ struct rchan_callbacks
102258 * The callback should return 0 if successful, negative if not.
102259 */
102260 int (*remove_buf_file)(struct dentry *dentry);
102261 -};
102262 +} __no_const;
102263
102264 /*
102265 * CONFIG_RELAY kernel API, kernel/relay.c
102266 diff --git a/include/linux/rio.h b/include/linux/rio.h
102267 index cde976e..ebd6033 100644
102268 --- a/include/linux/rio.h
102269 +++ b/include/linux/rio.h
102270 @@ -358,7 +358,7 @@ struct rio_ops {
102271 int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart,
102272 u64 rstart, u32 size, u32 flags);
102273 void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart);
102274 -};
102275 +} __no_const;
102276
102277 #define RIO_RESOURCE_MEM 0x00000100
102278 #define RIO_RESOURCE_DOORBELL 0x00000200
102279 diff --git a/include/linux/rmap.h b/include/linux/rmap.h
102280 index c89c53a..aa0a65a 100644
102281 --- a/include/linux/rmap.h
102282 +++ b/include/linux/rmap.h
102283 @@ -146,8 +146,8 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
102284 void anon_vma_init(void); /* create anon_vma_cachep */
102285 int anon_vma_prepare(struct vm_area_struct *);
102286 void unlink_anon_vmas(struct vm_area_struct *);
102287 -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *);
102288 -int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
102289 +int anon_vma_clone(struct vm_area_struct *, const struct vm_area_struct *);
102290 +int anon_vma_fork(struct vm_area_struct *, const struct vm_area_struct *);
102291
102292 static inline void anon_vma_merge(struct vm_area_struct *vma,
102293 struct vm_area_struct *next)
102294 diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
102295 index 9b1ef0c..9fa3feb 100644
102296 --- a/include/linux/scatterlist.h
102297 +++ b/include/linux/scatterlist.h
102298 @@ -1,6 +1,7 @@
102299 #ifndef _LINUX_SCATTERLIST_H
102300 #define _LINUX_SCATTERLIST_H
102301
102302 +#include <linux/sched.h>
102303 #include <linux/string.h>
102304 #include <linux/types.h>
102305 #include <linux/bug.h>
102306 @@ -136,10 +137,17 @@ static inline struct page *sg_page(struct scatterlist *sg)
102307 static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
102308 unsigned int buflen)
102309 {
102310 + const void *realbuf = buf;
102311 +
102312 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
102313 + if (object_starts_on_stack(buf))
102314 + realbuf = buf - current->stack + current->lowmem_stack;
102315 +#endif
102316 +
102317 #ifdef CONFIG_DEBUG_SG
102318 - BUG_ON(!virt_addr_valid(buf));
102319 + BUG_ON(!virt_addr_valid(realbuf));
102320 #endif
102321 - sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
102322 + sg_set_page(sg, virt_to_page(realbuf), buflen, offset_in_page(realbuf));
102323 }
102324
102325 /*
102326 diff --git a/include/linux/sched.h b/include/linux/sched.h
102327 index bfca8aa..ac50d1b 100644
102328 --- a/include/linux/sched.h
102329 +++ b/include/linux/sched.h
102330 @@ -7,7 +7,7 @@
102331
102332
102333 struct sched_param {
102334 - int sched_priority;
102335 + unsigned int sched_priority;
102336 };
102337
102338 #include <asm/param.h> /* for HZ */
102339 @@ -134,6 +134,7 @@ struct perf_event_context;
102340 struct blk_plug;
102341 struct filename;
102342 struct nameidata;
102343 +struct linux_binprm;
102344
102345 #define VMACACHE_BITS 2
102346 #define VMACACHE_SIZE (1U << VMACACHE_BITS)
102347 @@ -436,6 +437,19 @@ struct nsproxy;
102348 struct user_namespace;
102349
102350 #ifdef CONFIG_MMU
102351 +
102352 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
102353 +extern unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags);
102354 +#else
102355 +static inline unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
102356 +{
102357 + return 0;
102358 +}
102359 +#endif
102360 +
102361 +extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset);
102362 +extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset);
102363 +
102364 extern void arch_pick_mmap_layout(struct mm_struct *mm);
102365 extern unsigned long
102366 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
102367 @@ -749,6 +763,17 @@ struct signal_struct {
102368 #ifdef CONFIG_TASKSTATS
102369 struct taskstats *stats;
102370 #endif
102371 +
102372 +#ifdef CONFIG_GRKERNSEC
102373 + u32 curr_ip;
102374 + u32 saved_ip;
102375 + u32 gr_saddr;
102376 + u32 gr_daddr;
102377 + u16 gr_sport;
102378 + u16 gr_dport;
102379 + u8 used_accept:1;
102380 +#endif
102381 +
102382 #ifdef CONFIG_AUDIT
102383 unsigned audit_tty;
102384 unsigned audit_tty_log_passwd;
102385 @@ -775,7 +800,7 @@ struct signal_struct {
102386 struct mutex cred_guard_mutex; /* guard against foreign influences on
102387 * credential calculations
102388 * (notably. ptrace) */
102389 -};
102390 +} __randomize_layout;
102391
102392 /*
102393 * Bits in flags field of signal_struct.
102394 @@ -828,6 +853,14 @@ struct user_struct {
102395 struct key *session_keyring; /* UID's default session keyring */
102396 #endif
102397
102398 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
102399 + unsigned char kernel_banned;
102400 +#endif
102401 +#ifdef CONFIG_GRKERNSEC_BRUTE
102402 + unsigned char suid_banned;
102403 + unsigned long suid_ban_expires;
102404 +#endif
102405 +
102406 /* Hash table maintenance information */
102407 struct hlist_node uidhash_node;
102408 kuid_t uid;
102409 @@ -835,7 +868,7 @@ struct user_struct {
102410 #ifdef CONFIG_PERF_EVENTS
102411 atomic_long_t locked_vm;
102412 #endif
102413 -};
102414 +} __randomize_layout;
102415
102416 extern int uids_sysfs_init(void);
102417
102418 @@ -1356,6 +1389,9 @@ enum perf_event_task_context {
102419 struct task_struct {
102420 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
102421 void *stack;
102422 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
102423 + void *lowmem_stack;
102424 +#endif
102425 atomic_t usage;
102426 unsigned int flags; /* per process flags, defined below */
102427 unsigned int ptrace;
102428 @@ -1488,8 +1524,8 @@ struct task_struct {
102429 struct list_head thread_node;
102430
102431 struct completion *vfork_done; /* for vfork() */
102432 - int __user *set_child_tid; /* CLONE_CHILD_SETTID */
102433 - int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
102434 + pid_t __user *set_child_tid; /* CLONE_CHILD_SETTID */
102435 + pid_t __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
102436
102437 cputime_t utime, stime, utimescaled, stimescaled;
102438 cputime_t gtime;
102439 @@ -1514,11 +1550,6 @@ struct task_struct {
102440 struct task_cputime cputime_expires;
102441 struct list_head cpu_timers[3];
102442
102443 -/* process credentials */
102444 - const struct cred __rcu *real_cred; /* objective and real subjective task
102445 - * credentials (COW) */
102446 - const struct cred __rcu *cred; /* effective (overridable) subjective task
102447 - * credentials (COW) */
102448 char comm[TASK_COMM_LEN]; /* executable name excluding path
102449 - access with [gs]et_task_comm (which lock
102450 it with task_lock())
102451 @@ -1534,6 +1565,8 @@ struct task_struct {
102452 /* hung task detection */
102453 unsigned long last_switch_count;
102454 #endif
102455 +/* CPU-specific state of this task */
102456 + struct thread_struct thread;
102457 /* filesystem information */
102458 struct fs_struct *fs;
102459 /* open file information */
102460 @@ -1610,6 +1643,10 @@ struct task_struct {
102461 gfp_t lockdep_reclaim_gfp;
102462 #endif
102463
102464 +/* process credentials */
102465 + const struct cred __rcu *real_cred; /* objective and real subjective task
102466 + * credentials (COW) */
102467 +
102468 /* journalling filesystem info */
102469 void *journal_info;
102470
102471 @@ -1648,6 +1685,10 @@ struct task_struct {
102472 /* cg_list protected by css_set_lock and tsk->alloc_lock */
102473 struct list_head cg_list;
102474 #endif
102475 +
102476 + const struct cred __rcu *cred; /* effective (overridable) subjective task
102477 + * credentials (COW) */
102478 +
102479 #ifdef CONFIG_FUTEX
102480 struct robust_list_head __user *robust_list;
102481 #ifdef CONFIG_COMPAT
102482 @@ -1759,7 +1800,7 @@ struct task_struct {
102483 * Number of functions that haven't been traced
102484 * because of depth overrun.
102485 */
102486 - atomic_t trace_overrun;
102487 + atomic_unchecked_t trace_overrun;
102488 /* Pause for the tracing */
102489 atomic_t tracing_graph_pause;
102490 #endif
102491 @@ -1788,22 +1829,89 @@ struct task_struct {
102492 unsigned long task_state_change;
102493 #endif
102494 int pagefault_disabled;
102495 -/* CPU-specific state of this task */
102496 - struct thread_struct thread;
102497 -/*
102498 - * WARNING: on x86, 'thread_struct' contains a variable-sized
102499 - * structure. It *MUST* be at the end of 'task_struct'.
102500 - *
102501 - * Do not put anything below here!
102502 - */
102503 -};
102504 +
102505 +#ifdef CONFIG_GRKERNSEC
102506 + /* grsecurity */
102507 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
102508 + u64 exec_id;
102509 +#endif
102510 +#ifdef CONFIG_GRKERNSEC_SETXID
102511 + const struct cred *delayed_cred;
102512 +#endif
102513 + struct dentry *gr_chroot_dentry;
102514 + struct acl_subject_label *acl;
102515 + struct acl_subject_label *tmpacl;
102516 + struct acl_role_label *role;
102517 + struct file *exec_file;
102518 + unsigned long brute_expires;
102519 + u16 acl_role_id;
102520 + u8 inherited;
102521 + /* is this the task that authenticated to the special role */
102522 + u8 acl_sp_role;
102523 + u8 is_writable;
102524 + u8 brute;
102525 + u8 gr_is_chrooted;
102526 +#endif
102527 +
102528 +/* thread_info moved to task_struct */
102529 +#ifdef CONFIG_X86
102530 + struct thread_info tinfo;
102531 +#endif
102532 +} __randomize_layout;
102533
102534 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
102535 -extern int arch_task_struct_size __read_mostly;
102536 +extern size_t arch_task_struct_size __read_mostly;
102537 #else
102538 # define arch_task_struct_size (sizeof(struct task_struct))
102539 #endif
102540
102541 +#define MF_PAX_PAGEEXEC 0x01000000 /* Paging based non-executable pages */
102542 +#define MF_PAX_EMUTRAMP 0x02000000 /* Emulate trampolines */
102543 +#define MF_PAX_MPROTECT 0x04000000 /* Restrict mprotect() */
102544 +#define MF_PAX_RANDMMAP 0x08000000 /* Randomize mmap() base */
102545 +/*#define MF_PAX_RANDEXEC 0x10000000*/ /* Randomize ET_EXEC base */
102546 +#define MF_PAX_SEGMEXEC 0x20000000 /* Segmentation based non-executable pages */
102547 +
102548 +#ifdef CONFIG_PAX_SOFTMODE
102549 +extern int pax_softmode;
102550 +#endif
102551 +
102552 +extern int pax_check_flags(unsigned long *);
102553 +#define PAX_PARSE_FLAGS_FALLBACK (~0UL)
102554 +
102555 +/* if tsk != current then task_lock must be held on it */
102556 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
102557 +static inline unsigned long pax_get_flags(struct task_struct *tsk)
102558 +{
102559 + if (likely(tsk->mm))
102560 + return tsk->mm->pax_flags;
102561 + else
102562 + return 0UL;
102563 +}
102564 +
102565 +/* if tsk != current then task_lock must be held on it */
102566 +static inline long pax_set_flags(struct task_struct *tsk, unsigned long flags)
102567 +{
102568 + if (likely(tsk->mm)) {
102569 + tsk->mm->pax_flags = flags;
102570 + return 0;
102571 + }
102572 + return -EINVAL;
102573 +}
102574 +#endif
102575 +
102576 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
102577 +extern void pax_set_initial_flags(struct linux_binprm *bprm);
102578 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
102579 +extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
102580 +#endif
102581 +
102582 +struct path;
102583 +extern char *pax_get_path(const struct path *path, char *buf, int buflen);
102584 +extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
102585 +extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
102586 +extern void pax_report_refcount_overflow(struct pt_regs *regs);
102587 +
102588 /* Future-safe accessor for struct task_struct's cpus_allowed. */
102589 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
102590
102591 @@ -1885,7 +1993,7 @@ struct pid_namespace;
102592 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
102593 struct pid_namespace *ns);
102594
102595 -static inline pid_t task_pid_nr(struct task_struct *tsk)
102596 +static inline pid_t task_pid_nr(const struct task_struct *tsk)
102597 {
102598 return tsk->pid;
102599 }
102600 @@ -2253,6 +2361,25 @@ extern u64 sched_clock_cpu(int cpu);
102601
102602 extern void sched_clock_init(void);
102603
102604 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
102605 +static inline void populate_stack(void)
102606 +{
102607 + struct task_struct *curtask = current;
102608 + int c;
102609 + int *ptr = curtask->stack;
102610 + int *end = curtask->stack + THREAD_SIZE;
102611 +
102612 + while (ptr < end) {
102613 + c = *(volatile int *)ptr;
102614 + ptr += PAGE_SIZE/sizeof(int);
102615 + }
102616 +}
102617 +#else
102618 +static inline void populate_stack(void)
102619 +{
102620 +}
102621 +#endif
102622 +
102623 #ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
102624 static inline void sched_clock_tick(void)
102625 {
102626 @@ -2381,7 +2508,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
102627 void yield(void);
102628
102629 union thread_union {
102630 +#ifndef CONFIG_X86
102631 struct thread_info thread_info;
102632 +#endif
102633 unsigned long stack[THREAD_SIZE/sizeof(long)];
102634 };
102635
102636 @@ -2414,6 +2543,7 @@ extern struct pid_namespace init_pid_ns;
102637 */
102638
102639 extern struct task_struct *find_task_by_vpid(pid_t nr);
102640 +extern struct task_struct *find_task_by_vpid_unrestricted(pid_t nr);
102641 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
102642 struct pid_namespace *ns);
102643
102644 @@ -2591,7 +2721,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
102645 extern void exit_itimers(struct signal_struct *);
102646 extern void flush_itimer_signals(void);
102647
102648 -extern void do_group_exit(int);
102649 +extern __noreturn void do_group_exit(int);
102650
102651 extern int do_execve(struct filename *,
102652 const char __user * const __user *,
102653 @@ -2796,9 +2926,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
102654 #define task_stack_end_corrupted(task) \
102655 (*(end_of_stack(task)) != STACK_END_MAGIC)
102656
102657 -static inline int object_is_on_stack(void *obj)
102658 +static inline int object_starts_on_stack(const void *obj)
102659 {
102660 - void *stack = task_stack_page(current);
102661 + const void *stack = task_stack_page(current);
102662
102663 return (obj >= stack) && (obj < (stack + THREAD_SIZE));
102664 }
102665 diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
102666 index c9e4731..c716293 100644
102667 --- a/include/linux/sched/sysctl.h
102668 +++ b/include/linux/sched/sysctl.h
102669 @@ -34,6 +34,7 @@ enum { sysctl_hung_task_timeout_secs = 0 };
102670 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
102671
102672 extern int sysctl_max_map_count;
102673 +extern unsigned long sysctl_heap_stack_gap;
102674
102675 extern unsigned int sysctl_sched_latency;
102676 extern unsigned int sysctl_sched_min_granularity;
102677 diff --git a/include/linux/security.h b/include/linux/security.h
102678 index 2f4c1f7..5bc05d7 100644
102679 --- a/include/linux/security.h
102680 +++ b/include/linux/security.h
102681 @@ -28,6 +28,7 @@
102682 #include <linux/err.h>
102683 #include <linux/string.h>
102684 #include <linux/mm.h>
102685 +#include <linux/grsecurity.h>
102686
102687 struct linux_binprm;
102688 struct cred;
102689 diff --git a/include/linux/sem.h b/include/linux/sem.h
102690 index 976ce3a..db62f3f 100644
102691 --- a/include/linux/sem.h
102692 +++ b/include/linux/sem.h
102693 @@ -21,7 +21,7 @@ struct sem_array {
102694 struct list_head list_id; /* undo requests on this array */
102695 int sem_nsems; /* no. of semaphores in array */
102696 int complex_count; /* pending complex operations */
102697 -};
102698 +} __randomize_layout;
102699
102700 #ifdef CONFIG_SYSVIPC
102701
102702 diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h
102703 index dc368b8..e895209 100644
102704 --- a/include/linux/semaphore.h
102705 +++ b/include/linux/semaphore.h
102706 @@ -37,7 +37,7 @@ static inline void sema_init(struct semaphore *sem, int val)
102707 }
102708
102709 extern void down(struct semaphore *sem);
102710 -extern int __must_check down_interruptible(struct semaphore *sem);
102711 +extern int __must_check down_interruptible(struct semaphore *sem) __intentional_overflow(-1);
102712 extern int __must_check down_killable(struct semaphore *sem);
102713 extern int __must_check down_trylock(struct semaphore *sem);
102714 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
102715 diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
102716 index d4c7271..abf5706 100644
102717 --- a/include/linux/seq_file.h
102718 +++ b/include/linux/seq_file.h
102719 @@ -27,6 +27,9 @@ struct seq_file {
102720 struct mutex lock;
102721 const struct seq_operations *op;
102722 int poll_event;
102723 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
102724 + u64 exec_id;
102725 +#endif
102726 #ifdef CONFIG_USER_NS
102727 struct user_namespace *user_ns;
102728 #endif
102729 @@ -39,6 +42,7 @@ struct seq_operations {
102730 void * (*next) (struct seq_file *m, void *v, loff_t *pos);
102731 int (*show) (struct seq_file *m, void *v);
102732 };
102733 +typedef struct seq_operations __no_const seq_operations_no_const;
102734
102735 #define SEQ_SKIP 1
102736
102737 @@ -111,6 +115,7 @@ void seq_pad(struct seq_file *m, char c);
102738
102739 char *mangle_path(char *s, const char *p, const char *esc);
102740 int seq_open(struct file *, const struct seq_operations *);
102741 +int seq_open_restrict(struct file *, const struct seq_operations *);
102742 ssize_t seq_read(struct file *, char __user *, size_t, loff_t *);
102743 loff_t seq_lseek(struct file *, loff_t, int);
102744 int seq_release(struct inode *, struct file *);
102745 @@ -129,6 +134,7 @@ int seq_path_root(struct seq_file *m, const struct path *path,
102746 const struct path *root, const char *esc);
102747
102748 int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
102749 +int single_open_restrict(struct file *, int (*)(struct seq_file *, void *), void *);
102750 int single_open_size(struct file *, int (*)(struct seq_file *, void *), void *, size_t);
102751 int single_release(struct inode *, struct file *);
102752 void *__seq_open_private(struct file *, const struct seq_operations *, int);
102753 diff --git a/include/linux/shm.h b/include/linux/shm.h
102754 index 6fb8016..2cf60e7 100644
102755 --- a/include/linux/shm.h
102756 +++ b/include/linux/shm.h
102757 @@ -22,7 +22,11 @@ struct shmid_kernel /* private to the kernel */
102758 /* The task created the shm object. NULL if the task is dead. */
102759 struct task_struct *shm_creator;
102760 struct list_head shm_clist; /* list by creator */
102761 -};
102762 +#ifdef CONFIG_GRKERNSEC
102763 + u64 shm_createtime;
102764 + pid_t shm_lapid;
102765 +#endif
102766 +} __randomize_layout;
102767
102768 /* shm_mode upper byte flags */
102769 #define SHM_DEST 01000 /* segment will be destroyed on last detach */
102770 diff --git a/include/linux/signal.h b/include/linux/signal.h
102771 index ab1e039..ad4229e 100644
102772 --- a/include/linux/signal.h
102773 +++ b/include/linux/signal.h
102774 @@ -289,7 +289,7 @@ static inline void allow_signal(int sig)
102775 * know it'll be handled, so that they don't get converted to
102776 * SIGKILL or just silently dropped.
102777 */
102778 - kernel_sigaction(sig, (__force __sighandler_t)2);
102779 + kernel_sigaction(sig, (__force_user __sighandler_t)2);
102780 }
102781
102782 static inline void disallow_signal(int sig)
102783 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
102784 index 2751588..dc96c12 100644
102785 --- a/include/linux/skbuff.h
102786 +++ b/include/linux/skbuff.h
102787 @@ -784,7 +784,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
102788 int node);
102789 struct sk_buff *__build_skb(void *data, unsigned int frag_size);
102790 struct sk_buff *build_skb(void *data, unsigned int frag_size);
102791 -static inline struct sk_buff *alloc_skb(unsigned int size,
102792 +static inline struct sk_buff * __intentional_overflow(0) alloc_skb(unsigned int size,
102793 gfp_t priority)
102794 {
102795 return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
102796 @@ -1964,7 +1964,7 @@ static inline int skb_checksum_start_offset(const struct sk_buff *skb)
102797 return skb->csum_start - skb_headroom(skb);
102798 }
102799
102800 -static inline int skb_transport_offset(const struct sk_buff *skb)
102801 +static inline int __intentional_overflow(0) skb_transport_offset(const struct sk_buff *skb)
102802 {
102803 return skb_transport_header(skb) - skb->data;
102804 }
102805 @@ -1979,7 +1979,7 @@ static inline u32 skb_inner_network_header_len(const struct sk_buff *skb)
102806 return skb->inner_transport_header - skb->inner_network_header;
102807 }
102808
102809 -static inline int skb_network_offset(const struct sk_buff *skb)
102810 +static inline int __intentional_overflow(0) skb_network_offset(const struct sk_buff *skb)
102811 {
102812 return skb_network_header(skb) - skb->data;
102813 }
102814 @@ -2039,7 +2039,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
102815 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
102816 */
102817 #ifndef NET_SKB_PAD
102818 -#define NET_SKB_PAD max(32, L1_CACHE_BYTES)
102819 +#define NET_SKB_PAD max(_AC(32,UL), L1_CACHE_BYTES)
102820 #endif
102821
102822 int ___pskb_trim(struct sk_buff *skb, unsigned int len);
102823 @@ -2685,9 +2685,9 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
102824 int *err);
102825 unsigned int datagram_poll(struct file *file, struct socket *sock,
102826 struct poll_table_struct *wait);
102827 -int skb_copy_datagram_iter(const struct sk_buff *from, int offset,
102828 +int __intentional_overflow(0) skb_copy_datagram_iter(const struct sk_buff *from, int offset,
102829 struct iov_iter *to, int size);
102830 -static inline int skb_copy_datagram_msg(const struct sk_buff *from, int offset,
102831 +static inline int __intentional_overflow(2,4) skb_copy_datagram_msg(const struct sk_buff *from, int offset,
102832 struct msghdr *msg, int size)
102833 {
102834 return skb_copy_datagram_iter(from, offset, &msg->msg_iter, size);
102835 @@ -3216,6 +3216,9 @@ static inline void nf_reset(struct sk_buff *skb)
102836 nf_bridge_put(skb->nf_bridge);
102837 skb->nf_bridge = NULL;
102838 #endif
102839 +#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE)
102840 + skb->nf_trace = 0;
102841 +#endif
102842 }
102843
102844 static inline void nf_reset_trace(struct sk_buff *skb)
102845 diff --git a/include/linux/slab.h b/include/linux/slab.h
102846 index a99f0e5..4efa730 100644
102847 --- a/include/linux/slab.h
102848 +++ b/include/linux/slab.h
102849 @@ -15,14 +15,29 @@
102850 #include <linux/types.h>
102851 #include <linux/workqueue.h>
102852
102853 +#include <linux/err.h>
102854
102855 /*
102856 * Flags to pass to kmem_cache_create().
102857 * The ones marked DEBUG are only valid if CONFIG_DEBUG_SLAB is set.
102858 */
102859 #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
102860 +
102861 +#ifdef CONFIG_PAX_USERCOPY_SLABS
102862 +#define SLAB_USERCOPY 0x00000200UL /* PaX: Allow copying objs to/from userland */
102863 +#else
102864 +#define SLAB_USERCOPY 0x00000000UL
102865 +#endif
102866 +
102867 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
102868 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
102869 +
102870 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
102871 +#define SLAB_NO_SANITIZE 0x00001000UL /* PaX: Do not sanitize objs on free */
102872 +#else
102873 +#define SLAB_NO_SANITIZE 0x00000000UL
102874 +#endif
102875 +
102876 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
102877 #define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
102878 #define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
102879 @@ -98,10 +113,13 @@
102880 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
102881 * Both make kfree a no-op.
102882 */
102883 -#define ZERO_SIZE_PTR ((void *)16)
102884 +#define ZERO_SIZE_PTR \
102885 +({ \
102886 + BUILD_BUG_ON(!(MAX_ERRNO & ~PAGE_MASK));\
102887 + (void *)(-MAX_ERRNO-1L); \
102888 +})
102889
102890 -#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \
102891 - (unsigned long)ZERO_SIZE_PTR)
102892 +#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) - 1 >= (unsigned long)ZERO_SIZE_PTR - 1)
102893
102894 #include <linux/kmemleak.h>
102895 #include <linux/kasan.h>
102896 @@ -143,6 +161,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
102897 void kfree(const void *);
102898 void kzfree(const void *);
102899 size_t ksize(const void *);
102900 +const char *check_heap_object(const void *ptr, unsigned long n);
102901 +bool is_usercopy_object(const void *ptr);
102902
102903 /*
102904 * Some archs want to perform DMA into kmalloc caches and need a guaranteed
102905 @@ -235,6 +255,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
102906 extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
102907 #endif
102908
102909 +#ifdef CONFIG_PAX_USERCOPY_SLABS
102910 +extern struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
102911 +#endif
102912 +
102913 /*
102914 * Figure out which kmalloc slab an allocation of a certain size
102915 * belongs to.
102916 @@ -243,7 +267,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
102917 * 2 = 129 .. 192 bytes
102918 * n = 2^(n-1)+1 .. 2^n
102919 */
102920 -static __always_inline int kmalloc_index(size_t size)
102921 +static __always_inline __size_overflow(1) int kmalloc_index(size_t size)
102922 {
102923 if (!size)
102924 return 0;
102925 @@ -286,15 +310,15 @@ static __always_inline int kmalloc_index(size_t size)
102926 }
102927 #endif /* !CONFIG_SLOB */
102928
102929 -void *__kmalloc(size_t size, gfp_t flags);
102930 +void *__kmalloc(size_t size, gfp_t flags) __alloc_size(1) __size_overflow(1);
102931 void *kmem_cache_alloc(struct kmem_cache *, gfp_t flags);
102932 void kmem_cache_free(struct kmem_cache *, void *);
102933
102934 #ifdef CONFIG_NUMA
102935 -void *__kmalloc_node(size_t size, gfp_t flags, int node);
102936 +void *__kmalloc_node(size_t size, gfp_t flags, int node) __alloc_size(1) __size_overflow(1);
102937 void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
102938 #else
102939 -static __always_inline void *__kmalloc_node(size_t size, gfp_t flags, int node)
102940 +static __always_inline void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
102941 {
102942 return __kmalloc(size, flags);
102943 }
102944 diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
102945 index 33d0490..70a6313 100644
102946 --- a/include/linux/slab_def.h
102947 +++ b/include/linux/slab_def.h
102948 @@ -40,7 +40,7 @@ struct kmem_cache {
102949 /* 4) cache creation/removal */
102950 const char *name;
102951 struct list_head list;
102952 - int refcount;
102953 + atomic_t refcount;
102954 int object_size;
102955 int align;
102956
102957 @@ -56,10 +56,14 @@ struct kmem_cache {
102958 unsigned long node_allocs;
102959 unsigned long node_frees;
102960 unsigned long node_overflow;
102961 - atomic_t allochit;
102962 - atomic_t allocmiss;
102963 - atomic_t freehit;
102964 - atomic_t freemiss;
102965 + atomic_unchecked_t allochit;
102966 + atomic_unchecked_t allocmiss;
102967 + atomic_unchecked_t freehit;
102968 + atomic_unchecked_t freemiss;
102969 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
102970 + atomic_unchecked_t sanitized;
102971 + atomic_unchecked_t not_sanitized;
102972 +#endif
102973
102974 /*
102975 * If debugging is enabled, then the allocator can add additional
102976 diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
102977 index 3388511..6252f90 100644
102978 --- a/include/linux/slub_def.h
102979 +++ b/include/linux/slub_def.h
102980 @@ -74,7 +74,7 @@ struct kmem_cache {
102981 struct kmem_cache_order_objects max;
102982 struct kmem_cache_order_objects min;
102983 gfp_t allocflags; /* gfp flags to use on each alloc */
102984 - int refcount; /* Refcount for slab cache destroy */
102985 + atomic_t refcount; /* Refcount for slab cache destroy */
102986 void (*ctor)(void *);
102987 int inuse; /* Offset to metadata */
102988 int align; /* Alignment */
102989 diff --git a/include/linux/smp.h b/include/linux/smp.h
102990 index c441407..f487b83 100644
102991 --- a/include/linux/smp.h
102992 +++ b/include/linux/smp.h
102993 @@ -183,7 +183,9 @@ static inline void smp_init(void) { }
102994 #endif
102995
102996 #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
102997 +#define raw_get_cpu() ({ raw_preempt_disable(); raw_smp_processor_id(); })
102998 #define put_cpu() preempt_enable()
102999 +#define raw_put_cpu_no_resched() raw_preempt_enable_no_resched()
103000
103001 /*
103002 * Callback to arch code if there's nosmp or maxcpus=0 on the
103003 diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
103004 index fddebc6..6f0ae39 100644
103005 --- a/include/linux/sock_diag.h
103006 +++ b/include/linux/sock_diag.h
103007 @@ -15,7 +15,7 @@ struct sock_diag_handler {
103008 __u8 family;
103009 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
103010 int (*get_info)(struct sk_buff *skb, struct sock *sk);
103011 -};
103012 +} __do_const;
103013
103014 int sock_diag_register(const struct sock_diag_handler *h);
103015 void sock_diag_unregister(const struct sock_diag_handler *h);
103016 diff --git a/include/linux/sonet.h b/include/linux/sonet.h
103017 index 680f9a3..f13aeb0 100644
103018 --- a/include/linux/sonet.h
103019 +++ b/include/linux/sonet.h
103020 @@ -7,7 +7,7 @@
103021 #include <uapi/linux/sonet.h>
103022
103023 struct k_sonet_stats {
103024 -#define __HANDLE_ITEM(i) atomic_t i
103025 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
103026 __SONET_ITEMS
103027 #undef __HANDLE_ITEM
103028 };
103029 diff --git a/include/linux/sunrpc/addr.h b/include/linux/sunrpc/addr.h
103030 index 07d8e53..dc934c9 100644
103031 --- a/include/linux/sunrpc/addr.h
103032 +++ b/include/linux/sunrpc/addr.h
103033 @@ -23,9 +23,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap)
103034 {
103035 switch (sap->sa_family) {
103036 case AF_INET:
103037 - return ntohs(((struct sockaddr_in *)sap)->sin_port);
103038 + return ntohs(((const struct sockaddr_in *)sap)->sin_port);
103039 case AF_INET6:
103040 - return ntohs(((struct sockaddr_in6 *)sap)->sin6_port);
103041 + return ntohs(((const struct sockaddr_in6 *)sap)->sin6_port);
103042 }
103043 return 0;
103044 }
103045 @@ -58,7 +58,7 @@ static inline bool __rpc_cmp_addr4(const struct sockaddr *sap1,
103046 static inline bool __rpc_copy_addr4(struct sockaddr *dst,
103047 const struct sockaddr *src)
103048 {
103049 - const struct sockaddr_in *ssin = (struct sockaddr_in *) src;
103050 + const struct sockaddr_in *ssin = (const struct sockaddr_in *) src;
103051 struct sockaddr_in *dsin = (struct sockaddr_in *) dst;
103052
103053 dsin->sin_family = ssin->sin_family;
103054 @@ -164,7 +164,7 @@ static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
103055 if (sa->sa_family != AF_INET6)
103056 return 0;
103057
103058 - return ((struct sockaddr_in6 *) sa)->sin6_scope_id;
103059 + return ((const struct sockaddr_in6 *) sa)->sin6_scope_id;
103060 }
103061
103062 #endif /* _LINUX_SUNRPC_ADDR_H */
103063 diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
103064 index 131032f..5f9378a 100644
103065 --- a/include/linux/sunrpc/clnt.h
103066 +++ b/include/linux/sunrpc/clnt.h
103067 @@ -101,7 +101,7 @@ struct rpc_procinfo {
103068 unsigned int p_timer; /* Which RTT timer to use */
103069 u32 p_statidx; /* Which procedure to account */
103070 const char * p_name; /* name of procedure */
103071 -};
103072 +} __do_const;
103073
103074 #ifdef __KERNEL__
103075
103076 diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
103077 index fae6fb9..023fbcd 100644
103078 --- a/include/linux/sunrpc/svc.h
103079 +++ b/include/linux/sunrpc/svc.h
103080 @@ -420,7 +420,7 @@ struct svc_procedure {
103081 unsigned int pc_count; /* call count */
103082 unsigned int pc_cachetype; /* cache info (NFS) */
103083 unsigned int pc_xdrressize; /* maximum size of XDR reply */
103084 -};
103085 +} __do_const;
103086
103087 /*
103088 * Function prototypes.
103089 diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
103090 index 4929a8a..b8f29e9 100644
103091 --- a/include/linux/sunrpc/svc_rdma.h
103092 +++ b/include/linux/sunrpc/svc_rdma.h
103093 @@ -53,15 +53,15 @@ extern unsigned int svcrdma_ord;
103094 extern unsigned int svcrdma_max_requests;
103095 extern unsigned int svcrdma_max_req_size;
103096
103097 -extern atomic_t rdma_stat_recv;
103098 -extern atomic_t rdma_stat_read;
103099 -extern atomic_t rdma_stat_write;
103100 -extern atomic_t rdma_stat_sq_starve;
103101 -extern atomic_t rdma_stat_rq_starve;
103102 -extern atomic_t rdma_stat_rq_poll;
103103 -extern atomic_t rdma_stat_rq_prod;
103104 -extern atomic_t rdma_stat_sq_poll;
103105 -extern atomic_t rdma_stat_sq_prod;
103106 +extern atomic_unchecked_t rdma_stat_recv;
103107 +extern atomic_unchecked_t rdma_stat_read;
103108 +extern atomic_unchecked_t rdma_stat_write;
103109 +extern atomic_unchecked_t rdma_stat_sq_starve;
103110 +extern atomic_unchecked_t rdma_stat_rq_starve;
103111 +extern atomic_unchecked_t rdma_stat_rq_poll;
103112 +extern atomic_unchecked_t rdma_stat_rq_prod;
103113 +extern atomic_unchecked_t rdma_stat_sq_poll;
103114 +extern atomic_unchecked_t rdma_stat_sq_prod;
103115
103116 /*
103117 * Contexts are built when an RDMA request is created and are a
103118 diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h
103119 index 8d71d65..f79586e 100644
103120 --- a/include/linux/sunrpc/svcauth.h
103121 +++ b/include/linux/sunrpc/svcauth.h
103122 @@ -120,7 +120,7 @@ struct auth_ops {
103123 int (*release)(struct svc_rqst *rq);
103124 void (*domain_release)(struct auth_domain *);
103125 int (*set_client)(struct svc_rqst *rq);
103126 -};
103127 +} __do_const;
103128
103129 #define SVC_GARBAGE 1
103130 #define SVC_SYSERR 2
103131 diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
103132 index e7a018e..49f8b17 100644
103133 --- a/include/linux/swiotlb.h
103134 +++ b/include/linux/swiotlb.h
103135 @@ -60,7 +60,8 @@ extern void
103136
103137 extern void
103138 swiotlb_free_coherent(struct device *hwdev, size_t size,
103139 - void *vaddr, dma_addr_t dma_handle);
103140 + void *vaddr, dma_addr_t dma_handle,
103141 + struct dma_attrs *attrs);
103142
103143 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
103144 unsigned long offset, size_t size,
103145 diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
103146 index b45c45b..a6ae64c 100644
103147 --- a/include/linux/syscalls.h
103148 +++ b/include/linux/syscalls.h
103149 @@ -102,7 +102,12 @@ union bpf_attr;
103150 #define __TYPE_IS_L(t) (__same_type((t)0, 0L))
103151 #define __TYPE_IS_UL(t) (__same_type((t)0, 0UL))
103152 #define __TYPE_IS_LL(t) (__same_type((t)0, 0LL) || __same_type((t)0, 0ULL))
103153 -#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a
103154 +#define __SC_LONG(t, a) __typeof__( \
103155 + __builtin_choose_expr( \
103156 + sizeof(t) > sizeof(int), \
103157 + (t) 0, \
103158 + __builtin_choose_expr(__type_is_unsigned(t), 0UL, 0L) \
103159 + )) a
103160 #define __SC_CAST(t, a) (t) a
103161 #define __SC_ARGS(t, a) a
103162 #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long))
103163 @@ -384,11 +389,11 @@ asmlinkage long sys_sync(void);
103164 asmlinkage long sys_fsync(unsigned int fd);
103165 asmlinkage long sys_fdatasync(unsigned int fd);
103166 asmlinkage long sys_bdflush(int func, long data);
103167 -asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
103168 - char __user *type, unsigned long flags,
103169 +asmlinkage long sys_mount(const char __user *dev_name, const char __user *dir_name,
103170 + const char __user *type, unsigned long flags,
103171 void __user *data);
103172 -asmlinkage long sys_umount(char __user *name, int flags);
103173 -asmlinkage long sys_oldumount(char __user *name);
103174 +asmlinkage long sys_umount(const char __user *name, int flags);
103175 +asmlinkage long sys_oldumount(const char __user *name);
103176 asmlinkage long sys_truncate(const char __user *path, long length);
103177 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
103178 asmlinkage long sys_stat(const char __user *filename,
103179 @@ -604,7 +609,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
103180 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
103181 asmlinkage long sys_send(int, void __user *, size_t, unsigned);
103182 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
103183 - struct sockaddr __user *, int);
103184 + struct sockaddr __user *, int) __intentional_overflow(0);
103185 asmlinkage long sys_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags);
103186 asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
103187 unsigned int vlen, unsigned flags);
103188 @@ -663,10 +668,10 @@ asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
103189
103190 asmlinkage long sys_semget(key_t key, int nsems, int semflg);
103191 asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
103192 - unsigned nsops);
103193 + long nsops);
103194 asmlinkage long sys_semctl(int semid, int semnum, int cmd, unsigned long arg);
103195 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
103196 - unsigned nsops,
103197 + long nsops,
103198 const struct timespec __user *timeout);
103199 asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
103200 asmlinkage long sys_shmget(key_t key, size_t size, int flag);
103201 diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h
103202 index 27b3b0b..e093dd9 100644
103203 --- a/include/linux/syscore_ops.h
103204 +++ b/include/linux/syscore_ops.h
103205 @@ -16,7 +16,7 @@ struct syscore_ops {
103206 int (*suspend)(void);
103207 void (*resume)(void);
103208 void (*shutdown)(void);
103209 -};
103210 +} __do_const;
103211
103212 extern void register_syscore_ops(struct syscore_ops *ops);
103213 extern void unregister_syscore_ops(struct syscore_ops *ops);
103214 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
103215 index fa7bc29..0d96561 100644
103216 --- a/include/linux/sysctl.h
103217 +++ b/include/linux/sysctl.h
103218 @@ -39,10 +39,16 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
103219
103220 extern int proc_dostring(struct ctl_table *, int,
103221 void __user *, size_t *, loff_t *);
103222 +extern int proc_dostring_modpriv(struct ctl_table *, int,
103223 + void __user *, size_t *, loff_t *);
103224 extern int proc_dointvec(struct ctl_table *, int,
103225 void __user *, size_t *, loff_t *);
103226 +extern int proc_dointvec_secure(struct ctl_table *, int,
103227 + void __user *, size_t *, loff_t *);
103228 extern int proc_dointvec_minmax(struct ctl_table *, int,
103229 void __user *, size_t *, loff_t *);
103230 +extern int proc_dointvec_minmax_secure(struct ctl_table *, int,
103231 + void __user *, size_t *, loff_t *);
103232 extern int proc_dointvec_jiffies(struct ctl_table *, int,
103233 void __user *, size_t *, loff_t *);
103234 extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
103235 @@ -113,7 +119,8 @@ struct ctl_table
103236 struct ctl_table_poll *poll;
103237 void *extra1;
103238 void *extra2;
103239 -};
103240 +} __do_const __randomize_layout;
103241 +typedef struct ctl_table __no_const ctl_table_no_const;
103242
103243 struct ctl_node {
103244 struct rb_node node;
103245 diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
103246 index 9f65758..487a6f1 100644
103247 --- a/include/linux/sysfs.h
103248 +++ b/include/linux/sysfs.h
103249 @@ -34,7 +34,8 @@ struct attribute {
103250 struct lock_class_key *key;
103251 struct lock_class_key skey;
103252 #endif
103253 -};
103254 +} __do_const;
103255 +typedef struct attribute __no_const attribute_no_const;
103256
103257 /**
103258 * sysfs_attr_init - initialize a dynamically allocated sysfs attribute
103259 @@ -78,7 +79,8 @@ struct attribute_group {
103260 struct attribute *, int);
103261 struct attribute **attrs;
103262 struct bin_attribute **bin_attrs;
103263 -};
103264 +} __do_const;
103265 +typedef struct attribute_group __no_const attribute_group_no_const;
103266
103267 /**
103268 * Use these macros to make defining attributes easier. See include/linux/device.h
103269 @@ -152,7 +154,8 @@ struct bin_attribute {
103270 char *, loff_t, size_t);
103271 int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
103272 struct vm_area_struct *vma);
103273 -};
103274 +} __do_const;
103275 +typedef struct bin_attribute __no_const bin_attribute_no_const;
103276
103277 /**
103278 * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
103279 diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
103280 index 387fa7d..3fcde6b 100644
103281 --- a/include/linux/sysrq.h
103282 +++ b/include/linux/sysrq.h
103283 @@ -16,6 +16,7 @@
103284
103285 #include <linux/errno.h>
103286 #include <linux/types.h>
103287 +#include <linux/compiler.h>
103288
103289 /* Possible values of bitmask for enabling sysrq functions */
103290 /* 0x0001 is reserved for enable everything */
103291 @@ -33,7 +34,7 @@ struct sysrq_key_op {
103292 char *help_msg;
103293 char *action_msg;
103294 int enable_mask;
103295 -};
103296 +} __do_const;
103297
103298 #ifdef CONFIG_MAGIC_SYSRQ
103299
103300 diff --git a/include/linux/tcp.h b/include/linux/tcp.h
103301 index 48c3696..e7a7ba6 100644
103302 --- a/include/linux/tcp.h
103303 +++ b/include/linux/tcp.h
103304 @@ -63,13 +63,13 @@ struct tcp_fastopen_cookie {
103305
103306 /* This defines a selective acknowledgement block. */
103307 struct tcp_sack_block_wire {
103308 - __be32 start_seq;
103309 - __be32 end_seq;
103310 + __be32 start_seq __intentional_overflow(-1);
103311 + __be32 end_seq __intentional_overflow(-1);
103312 };
103313
103314 struct tcp_sack_block {
103315 - u32 start_seq;
103316 - u32 end_seq;
103317 + u32 start_seq __intentional_overflow(-1);
103318 + u32 end_seq __intentional_overflow(-1);
103319 };
103320
103321 /*These are used to set the sack_ok field in struct tcp_options_received */
103322 @@ -153,7 +153,7 @@ struct tcp_sock {
103323 * total number of segments in.
103324 */
103325 u32 rcv_nxt; /* What we want to receive next */
103326 - u32 copied_seq; /* Head of yet unread data */
103327 + u32 copied_seq __intentional_overflow(-1); /* Head of yet unread data */
103328 u32 rcv_wup; /* rcv_nxt on last window update sent */
103329 u32 snd_nxt; /* Next sequence we send */
103330 u32 segs_out; /* RFC4898 tcpEStatsPerfSegsOut
103331 @@ -248,7 +248,7 @@ struct tcp_sock {
103332 u32 prr_out; /* Total number of pkts sent during Recovery. */
103333
103334 u32 rcv_wnd; /* Current receiver window */
103335 - u32 write_seq; /* Tail(+1) of data held in tcp send buffer */
103336 + u32 write_seq __intentional_overflow(-1); /* Tail(+1) of data held in tcp send buffer */
103337 u32 notsent_lowat; /* TCP_NOTSENT_LOWAT */
103338 u32 pushed_seq; /* Last pushed seq, required to talk to windows */
103339 u32 lost_out; /* Lost packets */
103340 @@ -291,7 +291,7 @@ struct tcp_sock {
103341 int undo_retrans; /* number of undoable retransmissions. */
103342 u32 total_retrans; /* Total retransmits for entire connection */
103343
103344 - u32 urg_seq; /* Seq of received urgent pointer */
103345 + u32 urg_seq __intentional_overflow(-1); /* Seq of received urgent pointer */
103346 unsigned int keepalive_time; /* time before keep alive takes place */
103347 unsigned int keepalive_intvl; /* time interval between keep alive probes */
103348
103349 diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
103350 index ff307b5..f1a4468 100644
103351 --- a/include/linux/thread_info.h
103352 +++ b/include/linux/thread_info.h
103353 @@ -145,6 +145,13 @@ static inline bool test_and_clear_restore_sigmask(void)
103354 #error "no set_restore_sigmask() provided and default one won't work"
103355 #endif
103356
103357 +extern void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size);
103358 +
103359 +static inline void check_object_size(const void *ptr, unsigned long n, bool to_user)
103360 +{
103361 + __check_object_size(ptr, n, to_user, __builtin_constant_p(n));
103362 +}
103363 +
103364 #endif /* __KERNEL__ */
103365
103366 #endif /* _LINUX_THREAD_INFO_H */
103367 diff --git a/include/linux/tty.h b/include/linux/tty.h
103368 index ad6c891..93a8f45 100644
103369 --- a/include/linux/tty.h
103370 +++ b/include/linux/tty.h
103371 @@ -225,7 +225,7 @@ struct tty_port {
103372 const struct tty_port_operations *ops; /* Port operations */
103373 spinlock_t lock; /* Lock protecting tty field */
103374 int blocked_open; /* Waiting to open */
103375 - int count; /* Usage count */
103376 + atomic_t count; /* Usage count */
103377 wait_queue_head_t open_wait; /* Open waiters */
103378 wait_queue_head_t close_wait; /* Close waiters */
103379 wait_queue_head_t delta_msr_wait; /* Modem status change */
103380 @@ -313,7 +313,7 @@ struct tty_struct {
103381 /* If the tty has a pending do_SAK, queue it here - akpm */
103382 struct work_struct SAK_work;
103383 struct tty_port *port;
103384 -};
103385 +} __randomize_layout;
103386
103387 /* Each of a tty's open files has private_data pointing to tty_file_private */
103388 struct tty_file_private {
103389 @@ -573,7 +573,7 @@ extern int tty_port_open(struct tty_port *port,
103390 struct tty_struct *tty, struct file *filp);
103391 static inline int tty_port_users(struct tty_port *port)
103392 {
103393 - return port->count + port->blocked_open;
103394 + return atomic_read(&port->count) + port->blocked_open;
103395 }
103396
103397 extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
103398 diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
103399 index 92e337c..f46757b 100644
103400 --- a/include/linux/tty_driver.h
103401 +++ b/include/linux/tty_driver.h
103402 @@ -291,7 +291,7 @@ struct tty_operations {
103403 void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
103404 #endif
103405 const struct file_operations *proc_fops;
103406 -};
103407 +} __do_const __randomize_layout;
103408
103409 struct tty_driver {
103410 int magic; /* magic number for this structure */
103411 @@ -325,7 +325,7 @@ struct tty_driver {
103412
103413 const struct tty_operations *ops;
103414 struct list_head tty_drivers;
103415 -};
103416 +} __randomize_layout;
103417
103418 extern struct list_head tty_drivers;
103419
103420 diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
103421 index 00c9d68..bc0188b 100644
103422 --- a/include/linux/tty_ldisc.h
103423 +++ b/include/linux/tty_ldisc.h
103424 @@ -215,7 +215,7 @@ struct tty_ldisc_ops {
103425
103426 struct module *owner;
103427
103428 - int refcount;
103429 + atomic_t refcount;
103430 };
103431
103432 struct tty_ldisc {
103433 diff --git a/include/linux/types.h b/include/linux/types.h
103434 index 8715287..1be77ee 100644
103435 --- a/include/linux/types.h
103436 +++ b/include/linux/types.h
103437 @@ -176,10 +176,26 @@ typedef struct {
103438 int counter;
103439 } atomic_t;
103440
103441 +#ifdef CONFIG_PAX_REFCOUNT
103442 +typedef struct {
103443 + int counter;
103444 +} atomic_unchecked_t;
103445 +#else
103446 +typedef atomic_t atomic_unchecked_t;
103447 +#endif
103448 +
103449 #ifdef CONFIG_64BIT
103450 typedef struct {
103451 long counter;
103452 } atomic64_t;
103453 +
103454 +#ifdef CONFIG_PAX_REFCOUNT
103455 +typedef struct {
103456 + long counter;
103457 +} atomic64_unchecked_t;
103458 +#else
103459 +typedef atomic64_t atomic64_unchecked_t;
103460 +#endif
103461 #endif
103462
103463 struct list_head {
103464 diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
103465 index ae572c1..73bd4ec 100644
103466 --- a/include/linux/uaccess.h
103467 +++ b/include/linux/uaccess.h
103468 @@ -97,11 +97,11 @@ static inline unsigned long __copy_from_user_nocache(void *to,
103469 long ret; \
103470 mm_segment_t old_fs = get_fs(); \
103471 \
103472 - set_fs(KERNEL_DS); \
103473 pagefault_disable(); \
103474 - ret = __copy_from_user_inatomic(&(retval), (__force typeof(retval) __user *)(addr), sizeof(retval)); \
103475 - pagefault_enable(); \
103476 + set_fs(KERNEL_DS); \
103477 + ret = __copy_from_user_inatomic(&(retval), (typeof(retval) __force_user *)(addr), sizeof(retval)); \
103478 set_fs(old_fs); \
103479 + pagefault_enable(); \
103480 ret; \
103481 })
103482
103483 diff --git a/include/linux/uidgid.h b/include/linux/uidgid.h
103484 index 0383552..a0125dd 100644
103485 --- a/include/linux/uidgid.h
103486 +++ b/include/linux/uidgid.h
103487 @@ -187,4 +187,9 @@ static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
103488
103489 #endif /* CONFIG_USER_NS */
103490
103491 +#define GR_GLOBAL_UID(x) from_kuid_munged(&init_user_ns, (x))
103492 +#define GR_GLOBAL_GID(x) from_kgid_munged(&init_user_ns, (x))
103493 +#define gr_is_global_root(x) uid_eq((x), GLOBAL_ROOT_UID)
103494 +#define gr_is_global_nonroot(x) (!uid_eq((x), GLOBAL_ROOT_UID))
103495 +
103496 #endif /* _LINUX_UIDGID_H */
103497 diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
103498 index 32c0e83..671eb35 100644
103499 --- a/include/linux/uio_driver.h
103500 +++ b/include/linux/uio_driver.h
103501 @@ -67,7 +67,7 @@ struct uio_device {
103502 struct module *owner;
103503 struct device *dev;
103504 int minor;
103505 - atomic_t event;
103506 + atomic_unchecked_t event;
103507 struct fasync_struct *async_queue;
103508 wait_queue_head_t wait;
103509 struct uio_info *info;
103510 diff --git a/include/linux/unaligned/access_ok.h b/include/linux/unaligned/access_ok.h
103511 index 99c1b4d..562e6f3 100644
103512 --- a/include/linux/unaligned/access_ok.h
103513 +++ b/include/linux/unaligned/access_ok.h
103514 @@ -4,34 +4,34 @@
103515 #include <linux/kernel.h>
103516 #include <asm/byteorder.h>
103517
103518 -static inline u16 get_unaligned_le16(const void *p)
103519 +static inline u16 __intentional_overflow(-1) get_unaligned_le16(const void *p)
103520 {
103521 - return le16_to_cpup((__le16 *)p);
103522 + return le16_to_cpup((const __le16 *)p);
103523 }
103524
103525 -static inline u32 get_unaligned_le32(const void *p)
103526 +static inline u32 __intentional_overflow(-1) get_unaligned_le32(const void *p)
103527 {
103528 - return le32_to_cpup((__le32 *)p);
103529 + return le32_to_cpup((const __le32 *)p);
103530 }
103531
103532 -static inline u64 get_unaligned_le64(const void *p)
103533 +static inline u64 __intentional_overflow(-1) get_unaligned_le64(const void *p)
103534 {
103535 - return le64_to_cpup((__le64 *)p);
103536 + return le64_to_cpup((const __le64 *)p);
103537 }
103538
103539 -static inline u16 get_unaligned_be16(const void *p)
103540 +static inline u16 __intentional_overflow(-1) get_unaligned_be16(const void *p)
103541 {
103542 - return be16_to_cpup((__be16 *)p);
103543 + return be16_to_cpup((const __be16 *)p);
103544 }
103545
103546 -static inline u32 get_unaligned_be32(const void *p)
103547 +static inline u32 __intentional_overflow(-1) get_unaligned_be32(const void *p)
103548 {
103549 - return be32_to_cpup((__be32 *)p);
103550 + return be32_to_cpup((const __be32 *)p);
103551 }
103552
103553 -static inline u64 get_unaligned_be64(const void *p)
103554 +static inline u64 __intentional_overflow(-1) get_unaligned_be64(const void *p)
103555 {
103556 - return be64_to_cpup((__be64 *)p);
103557 + return be64_to_cpup((const __be64 *)p);
103558 }
103559
103560 static inline void put_unaligned_le16(u16 val, void *p)
103561 diff --git a/include/linux/usb.h b/include/linux/usb.h
103562 index 447fe29..07a9cf0 100644
103563 --- a/include/linux/usb.h
103564 +++ b/include/linux/usb.h
103565 @@ -363,7 +363,7 @@ struct usb_bus {
103566 * with the URB_SHORT_NOT_OK flag set.
103567 */
103568 unsigned no_sg_constraint:1; /* no sg constraint */
103569 - unsigned sg_tablesize; /* 0 or largest number of sg list entries */
103570 + unsigned short sg_tablesize; /* 0 or largest number of sg list entries */
103571
103572 int devnum_next; /* Next open device number in
103573 * round-robin allocation */
103574 @@ -592,7 +592,7 @@ struct usb_device {
103575 int maxchild;
103576
103577 u32 quirks;
103578 - atomic_t urbnum;
103579 + atomic_unchecked_t urbnum;
103580
103581 unsigned long active_duration;
103582
103583 @@ -1785,10 +1785,10 @@ void usb_sg_wait(struct usb_sg_request *io);
103584
103585 /* NOTE: these are not the standard USB_ENDPOINT_XFER_* values!! */
103586 /* (yet ... they're the values used by usbfs) */
103587 -#define PIPE_ISOCHRONOUS 0
103588 -#define PIPE_INTERRUPT 1
103589 -#define PIPE_CONTROL 2
103590 -#define PIPE_BULK 3
103591 +#define PIPE_ISOCHRONOUS 0U
103592 +#define PIPE_INTERRUPT 1U
103593 +#define PIPE_CONTROL 2U
103594 +#define PIPE_BULK 3U
103595
103596 #define usb_pipein(pipe) ((pipe) & USB_DIR_IN)
103597 #define usb_pipeout(pipe) (!usb_pipein(pipe))
103598 diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
103599 index c9aa779..46d6f69 100644
103600 --- a/include/linux/usb/hcd.h
103601 +++ b/include/linux/usb/hcd.h
103602 @@ -23,6 +23,7 @@
103603
103604 #include <linux/rwsem.h>
103605 #include <linux/interrupt.h>
103606 +#include <scsi/scsi_host.h>
103607
103608 #define MAX_TOPO_LEVEL 6
103609
103610 diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
103611 index 3dd5a78..ed69d7b 100644
103612 --- a/include/linux/usb/renesas_usbhs.h
103613 +++ b/include/linux/usb/renesas_usbhs.h
103614 @@ -39,7 +39,7 @@ enum {
103615 */
103616 struct renesas_usbhs_driver_callback {
103617 int (*notify_hotplug)(struct platform_device *pdev);
103618 -};
103619 +} __no_const;
103620
103621 /*
103622 * callback functions for platform
103623 diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
103624 index 8297e5b..0dfae27 100644
103625 --- a/include/linux/user_namespace.h
103626 +++ b/include/linux/user_namespace.h
103627 @@ -39,7 +39,7 @@ struct user_namespace {
103628 struct key *persistent_keyring_register;
103629 struct rw_semaphore persistent_keyring_register_sem;
103630 #endif
103631 -};
103632 +} __randomize_layout;
103633
103634 extern struct user_namespace init_user_ns;
103635
103636 diff --git a/include/linux/utsname.h b/include/linux/utsname.h
103637 index 5093f58..c103e58 100644
103638 --- a/include/linux/utsname.h
103639 +++ b/include/linux/utsname.h
103640 @@ -25,7 +25,7 @@ struct uts_namespace {
103641 struct new_utsname name;
103642 struct user_namespace *user_ns;
103643 struct ns_common ns;
103644 -};
103645 +} __randomize_layout;
103646 extern struct uts_namespace init_uts_ns;
103647
103648 #ifdef CONFIG_UTS_NS
103649 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
103650 index 6f8fbcf..4efc177 100644
103651 --- a/include/linux/vermagic.h
103652 +++ b/include/linux/vermagic.h
103653 @@ -25,9 +25,42 @@
103654 #define MODULE_ARCH_VERMAGIC ""
103655 #endif
103656
103657 +#ifdef CONFIG_PAX_REFCOUNT
103658 +#define MODULE_PAX_REFCOUNT "REFCOUNT "
103659 +#else
103660 +#define MODULE_PAX_REFCOUNT ""
103661 +#endif
103662 +
103663 +#ifdef CONSTIFY_PLUGIN
103664 +#define MODULE_CONSTIFY_PLUGIN "CONSTIFY_PLUGIN "
103665 +#else
103666 +#define MODULE_CONSTIFY_PLUGIN ""
103667 +#endif
103668 +
103669 +#ifdef STACKLEAK_PLUGIN
103670 +#define MODULE_STACKLEAK_PLUGIN "STACKLEAK_PLUGIN "
103671 +#else
103672 +#define MODULE_STACKLEAK_PLUGIN ""
103673 +#endif
103674 +
103675 +#ifdef RANDSTRUCT_PLUGIN
103676 +#include <generated/randomize_layout_hash.h>
103677 +#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
103678 +#else
103679 +#define MODULE_RANDSTRUCT_PLUGIN
103680 +#endif
103681 +
103682 +#ifdef CONFIG_GRKERNSEC
103683 +#define MODULE_GRSEC "GRSEC "
103684 +#else
103685 +#define MODULE_GRSEC ""
103686 +#endif
103687 +
103688 #define VERMAGIC_STRING \
103689 UTS_RELEASE " " \
103690 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
103691 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
103692 - MODULE_ARCH_VERMAGIC
103693 + MODULE_ARCH_VERMAGIC \
103694 + MODULE_PAX_REFCOUNT MODULE_CONSTIFY_PLUGIN MODULE_STACKLEAK_PLUGIN \
103695 + MODULE_GRSEC MODULE_RANDSTRUCT_PLUGIN
103696
103697 diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
103698 index b483abd..af305ad 100644
103699 --- a/include/linux/vga_switcheroo.h
103700 +++ b/include/linux/vga_switcheroo.h
103701 @@ -63,9 +63,9 @@ int vga_switcheroo_get_client_state(struct pci_dev *dev);
103702
103703 void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic);
103704
103705 -int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain);
103706 +int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain);
103707 void vga_switcheroo_fini_domain_pm_ops(struct device *dev);
103708 -int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain);
103709 +int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain);
103710 #else
103711
103712 static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {}
103713 @@ -82,9 +82,9 @@ static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return
103714
103715 static inline void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic) {}
103716
103717 -static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
103718 +static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
103719 static inline void vga_switcheroo_fini_domain_pm_ops(struct device *dev) {}
103720 -static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
103721 +static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
103722
103723 #endif
103724 #endif /* _LINUX_VGA_SWITCHEROO_H_ */
103725 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
103726 index 0ec5983..66d8171 100644
103727 --- a/include/linux/vmalloc.h
103728 +++ b/include/linux/vmalloc.h
103729 @@ -18,6 +18,14 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */
103730 #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */
103731 #define VM_NO_GUARD 0x00000040 /* don't add guard page */
103732 #define VM_KASAN 0x00000080 /* has allocated kasan shadow memory */
103733 +
103734 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
103735 +#define VM_KERNEXEC 0x00000100 /* allocate from executable kernel memory range */
103736 +#endif
103737 +
103738 +#define VM_USERCOPY 0x00000200 /* allocation intended for copies to userland */
103739 +
103740 +
103741 /* bits [20..32] reserved for arch specific ioremap internals */
103742
103743 /*
103744 @@ -67,6 +75,7 @@ static inline void vmalloc_init(void)
103745 #endif
103746
103747 extern void *vmalloc(unsigned long size);
103748 +extern void *vmalloc_usercopy(unsigned long size);
103749 extern void *vzalloc(unsigned long size);
103750 extern void *vmalloc_user(unsigned long size);
103751 extern void *vmalloc_node(unsigned long size, int node);
103752 @@ -86,6 +95,10 @@ extern void *vmap(struct page **pages, unsigned int count,
103753 unsigned long flags, pgprot_t prot);
103754 extern void vunmap(const void *addr);
103755
103756 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
103757 +extern void unmap_process_stacks(struct task_struct *task);
103758 +#endif
103759 +
103760 extern int remap_vmalloc_range_partial(struct vm_area_struct *vma,
103761 unsigned long uaddr, void *kaddr,
103762 unsigned long size);
103763 @@ -150,7 +163,7 @@ extern void free_vm_area(struct vm_struct *area);
103764
103765 /* for /dev/kmem */
103766 extern long vread(char *buf, char *addr, unsigned long count);
103767 -extern long vwrite(char *buf, char *addr, unsigned long count);
103768 +extern long vwrite(char *buf, char *addr, unsigned long count) __size_overflow(3);
103769
103770 /*
103771 * Internals. Dont't use..
103772 @@ -182,22 +195,10 @@ pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
103773 # endif
103774 #endif
103775
103776 -struct vmalloc_info {
103777 - unsigned long used;
103778 - unsigned long largest_chunk;
103779 -};
103780 -
103781 #ifdef CONFIG_MMU
103782 #define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START)
103783 -extern void get_vmalloc_info(struct vmalloc_info *vmi);
103784 #else
103785 -
103786 #define VMALLOC_TOTAL 0UL
103787 -#define get_vmalloc_info(vmi) \
103788 -do { \
103789 - (vmi)->used = 0; \
103790 - (vmi)->largest_chunk = 0; \
103791 -} while (0)
103792 #endif
103793
103794 #endif /* _LINUX_VMALLOC_H */
103795 diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
103796 index 82e7db7..f8ce3d0 100644
103797 --- a/include/linux/vmstat.h
103798 +++ b/include/linux/vmstat.h
103799 @@ -108,18 +108,18 @@ static inline void vm_events_fold_cpu(int cpu)
103800 /*
103801 * Zone based page accounting with per cpu differentials.
103802 */
103803 -extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
103804 +extern atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
103805
103806 static inline void zone_page_state_add(long x, struct zone *zone,
103807 enum zone_stat_item item)
103808 {
103809 - atomic_long_add(x, &zone->vm_stat[item]);
103810 - atomic_long_add(x, &vm_stat[item]);
103811 + atomic_long_add_unchecked(x, &zone->vm_stat[item]);
103812 + atomic_long_add_unchecked(x, &vm_stat[item]);
103813 }
103814
103815 -static inline unsigned long global_page_state(enum zone_stat_item item)
103816 +static inline unsigned long __intentional_overflow(-1) global_page_state(enum zone_stat_item item)
103817 {
103818 - long x = atomic_long_read(&vm_stat[item]);
103819 + long x = atomic_long_read_unchecked(&vm_stat[item]);
103820 #ifdef CONFIG_SMP
103821 if (x < 0)
103822 x = 0;
103823 @@ -127,10 +127,10 @@ static inline unsigned long global_page_state(enum zone_stat_item item)
103824 return x;
103825 }
103826
103827 -static inline unsigned long zone_page_state(struct zone *zone,
103828 +static inline unsigned long __intentional_overflow(-1) zone_page_state(struct zone *zone,
103829 enum zone_stat_item item)
103830 {
103831 - long x = atomic_long_read(&zone->vm_stat[item]);
103832 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
103833 #ifdef CONFIG_SMP
103834 if (x < 0)
103835 x = 0;
103836 @@ -147,7 +147,7 @@ static inline unsigned long zone_page_state(struct zone *zone,
103837 static inline unsigned long zone_page_state_snapshot(struct zone *zone,
103838 enum zone_stat_item item)
103839 {
103840 - long x = atomic_long_read(&zone->vm_stat[item]);
103841 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
103842
103843 #ifdef CONFIG_SMP
103844 int cpu;
103845 @@ -234,14 +234,14 @@ static inline void __mod_zone_page_state(struct zone *zone,
103846
103847 static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
103848 {
103849 - atomic_long_inc(&zone->vm_stat[item]);
103850 - atomic_long_inc(&vm_stat[item]);
103851 + atomic_long_inc_unchecked(&zone->vm_stat[item]);
103852 + atomic_long_inc_unchecked(&vm_stat[item]);
103853 }
103854
103855 static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
103856 {
103857 - atomic_long_dec(&zone->vm_stat[item]);
103858 - atomic_long_dec(&vm_stat[item]);
103859 + atomic_long_dec_unchecked(&zone->vm_stat[item]);
103860 + atomic_long_dec_unchecked(&vm_stat[item]);
103861 }
103862
103863 static inline void __inc_zone_page_state(struct page *page,
103864 diff --git a/include/linux/xattr.h b/include/linux/xattr.h
103865 index 91b0a68..0e9adf6 100644
103866 --- a/include/linux/xattr.h
103867 +++ b/include/linux/xattr.h
103868 @@ -28,7 +28,7 @@ struct xattr_handler {
103869 size_t size, int handler_flags);
103870 int (*set)(struct dentry *dentry, const char *name, const void *buffer,
103871 size_t size, int flags, int handler_flags);
103872 -};
103873 +} __do_const;
103874
103875 struct xattr {
103876 const char *name;
103877 @@ -37,6 +37,9 @@ struct xattr {
103878 };
103879
103880 ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t);
103881 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
103882 +ssize_t pax_getxattr(struct dentry *, void *, size_t);
103883 +#endif
103884 ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t);
103885 ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
103886 int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
103887 diff --git a/include/linux/zlib.h b/include/linux/zlib.h
103888 index 92dbbd3..13ab0b3 100644
103889 --- a/include/linux/zlib.h
103890 +++ b/include/linux/zlib.h
103891 @@ -31,6 +31,7 @@
103892 #define _ZLIB_H
103893
103894 #include <linux/zconf.h>
103895 +#include <linux/compiler.h>
103896
103897 /* zlib deflate based on ZLIB_VERSION "1.1.3" */
103898 /* zlib inflate based on ZLIB_VERSION "1.2.3" */
103899 @@ -179,7 +180,7 @@ typedef z_stream *z_streamp;
103900
103901 /* basic functions */
103902
103903 -extern int zlib_deflate_workspacesize (int windowBits, int memLevel);
103904 +extern int zlib_deflate_workspacesize (int windowBits, int memLevel) __intentional_overflow(0);
103905 /*
103906 Returns the number of bytes that needs to be allocated for a per-
103907 stream workspace with the specified parameters. A pointer to this
103908 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
103909 index acbcd2f..c3abe84 100644
103910 --- a/include/media/v4l2-dev.h
103911 +++ b/include/media/v4l2-dev.h
103912 @@ -74,7 +74,7 @@ struct v4l2_file_operations {
103913 int (*mmap) (struct file *, struct vm_area_struct *);
103914 int (*open) (struct file *);
103915 int (*release) (struct file *);
103916 -};
103917 +} __do_const;
103918
103919 /*
103920 * Newer version of video_device, handled by videodev2.c
103921 diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
103922 index 9c58157..d86ebf5 100644
103923 --- a/include/media/v4l2-device.h
103924 +++ b/include/media/v4l2-device.h
103925 @@ -93,7 +93,7 @@ int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4
103926 this function returns 0. If the name ends with a digit (e.g. cx18),
103927 then the name will be set to cx18-0 since cx180 looks really odd. */
103928 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
103929 - atomic_t *instance);
103930 + atomic_unchecked_t *instance);
103931
103932 /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
103933 Since the parent disappears this ensures that v4l2_dev doesn't have an
103934 diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
103935 index 5122b5e..598b440 100644
103936 --- a/include/net/9p/transport.h
103937 +++ b/include/net/9p/transport.h
103938 @@ -62,7 +62,7 @@ struct p9_trans_module {
103939 int (*cancelled)(struct p9_client *, struct p9_req_t *req);
103940 int (*zc_request)(struct p9_client *, struct p9_req_t *,
103941 struct iov_iter *, struct iov_iter *, int , int, int);
103942 -};
103943 +} __do_const;
103944
103945 void v9fs_register_trans(struct p9_trans_module *m);
103946 void v9fs_unregister_trans(struct p9_trans_module *m);
103947 diff --git a/include/net/af_unix.h b/include/net/af_unix.h
103948 index cb1b9bb..deaf939 100644
103949 --- a/include/net/af_unix.h
103950 +++ b/include/net/af_unix.h
103951 @@ -36,7 +36,7 @@ struct unix_skb_parms {
103952 u32 secid; /* Security ID */
103953 #endif
103954 u32 consumed;
103955 -};
103956 +} __randomize_layout;
103957
103958 #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
103959
103960 @@ -62,6 +62,7 @@ struct unix_sock {
103961 #define UNIX_GC_CANDIDATE 0
103962 #define UNIX_GC_MAYBE_CYCLE 1
103963 struct socket_wq peer_wq;
103964 + wait_queue_t wait;
103965 };
103966
103967 static inline struct unix_sock *unix_sk(struct sock *sk)
103968 diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
103969 index 2239a37..a83461f 100644
103970 --- a/include/net/bluetooth/l2cap.h
103971 +++ b/include/net/bluetooth/l2cap.h
103972 @@ -609,7 +609,7 @@ struct l2cap_ops {
103973 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
103974 unsigned long hdr_len,
103975 unsigned long len, int nb);
103976 -};
103977 +} __do_const;
103978
103979 struct l2cap_conn {
103980 struct hci_conn *hcon;
103981 diff --git a/include/net/bonding.h b/include/net/bonding.h
103982 index 20defc0..3072903 100644
103983 --- a/include/net/bonding.h
103984 +++ b/include/net/bonding.h
103985 @@ -661,7 +661,7 @@ extern struct rtnl_link_ops bond_link_ops;
103986
103987 static inline void bond_tx_drop(struct net_device *dev, struct sk_buff *skb)
103988 {
103989 - atomic_long_inc(&dev->tx_dropped);
103990 + atomic_long_inc_unchecked(&dev->tx_dropped);
103991 dev_kfree_skb_any(skb);
103992 }
103993
103994 diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h
103995 index f2ae33d..c457cf0 100644
103996 --- a/include/net/caif/cfctrl.h
103997 +++ b/include/net/caif/cfctrl.h
103998 @@ -52,7 +52,7 @@ struct cfctrl_rsp {
103999 void (*radioset_rsp)(void);
104000 void (*reject_rsp)(struct cflayer *layer, u8 linkid,
104001 struct cflayer *client_layer);
104002 -};
104003 +} __no_const;
104004
104005 /* Link Setup Parameters for CAIF-Links. */
104006 struct cfctrl_link_param {
104007 @@ -101,8 +101,8 @@ struct cfctrl_request_info {
104008 struct cfctrl {
104009 struct cfsrvl serv;
104010 struct cfctrl_rsp res;
104011 - atomic_t req_seq_no;
104012 - atomic_t rsp_seq_no;
104013 + atomic_unchecked_t req_seq_no;
104014 + atomic_unchecked_t rsp_seq_no;
104015 struct list_head list;
104016 /* Protects from simultaneous access to first_req list */
104017 spinlock_t info_list_lock;
104018 diff --git a/include/net/flow.h b/include/net/flow.h
104019 index 8109a15..504466d 100644
104020 --- a/include/net/flow.h
104021 +++ b/include/net/flow.h
104022 @@ -231,6 +231,6 @@ void flow_cache_fini(struct net *net);
104023
104024 void flow_cache_flush(struct net *net);
104025 void flow_cache_flush_deferred(struct net *net);
104026 -extern atomic_t flow_cache_genid;
104027 +extern atomic_unchecked_t flow_cache_genid;
104028
104029 #endif
104030 diff --git a/include/net/genetlink.h b/include/net/genetlink.h
104031 index a9af1cc..1f3fa7b 100644
104032 --- a/include/net/genetlink.h
104033 +++ b/include/net/genetlink.h
104034 @@ -128,7 +128,7 @@ struct genl_ops {
104035 u8 cmd;
104036 u8 internal_flags;
104037 u8 flags;
104038 -};
104039 +} __do_const;
104040
104041 int __genl_register_family(struct genl_family *family);
104042
104043 diff --git a/include/net/gro_cells.h b/include/net/gro_cells.h
104044 index 0f712c0..cd762c4 100644
104045 --- a/include/net/gro_cells.h
104046 +++ b/include/net/gro_cells.h
104047 @@ -27,7 +27,7 @@ static inline void gro_cells_receive(struct gro_cells *gcells, struct sk_buff *s
104048 cell = this_cpu_ptr(gcells->cells);
104049
104050 if (skb_queue_len(&cell->napi_skbs) > netdev_max_backlog) {
104051 - atomic_long_inc(&dev->rx_dropped);
104052 + atomic_long_inc_unchecked(&dev->rx_dropped);
104053 kfree_skb(skb);
104054 return;
104055 }
104056 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
104057 index 0320bbb..938789c 100644
104058 --- a/include/net/inet_connection_sock.h
104059 +++ b/include/net/inet_connection_sock.h
104060 @@ -63,7 +63,7 @@ struct inet_connection_sock_af_ops {
104061 int (*bind_conflict)(const struct sock *sk,
104062 const struct inet_bind_bucket *tb, bool relax);
104063 void (*mtu_reduced)(struct sock *sk);
104064 -};
104065 +} __do_const;
104066
104067 /** inet_connection_sock - INET connection oriented sock
104068 *
104069 diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
104070 index 47eb67b..0e733b2 100644
104071 --- a/include/net/inet_sock.h
104072 +++ b/include/net/inet_sock.h
104073 @@ -43,7 +43,7 @@
104074 struct ip_options {
104075 __be32 faddr;
104076 __be32 nexthop;
104077 - unsigned char optlen;
104078 + unsigned char optlen __intentional_overflow(0);
104079 unsigned char srr;
104080 unsigned char rr;
104081 unsigned char ts;
104082 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
104083 index d5332dd..10a5c3c 100644
104084 --- a/include/net/inetpeer.h
104085 +++ b/include/net/inetpeer.h
104086 @@ -48,7 +48,7 @@ struct inet_peer {
104087 */
104088 union {
104089 struct {
104090 - atomic_t rid; /* Frag reception counter */
104091 + atomic_unchecked_t rid; /* Frag reception counter */
104092 };
104093 struct rcu_head rcu;
104094 struct inet_peer *gc_next;
104095 diff --git a/include/net/ip.h b/include/net/ip.h
104096 index d5fe9f2..8da10ed 100644
104097 --- a/include/net/ip.h
104098 +++ b/include/net/ip.h
104099 @@ -319,7 +319,7 @@ static inline unsigned int ip_skb_dst_mtu(const struct sk_buff *skb)
104100 }
104101 }
104102
104103 -u32 ip_idents_reserve(u32 hash, int segs);
104104 +u32 ip_idents_reserve(u32 hash, int segs) __intentional_overflow(-1);
104105 void __ip_select_ident(struct net *net, struct iphdr *iph, int segs);
104106
104107 static inline void ip_select_ident_segs(struct net *net, struct sk_buff *skb,
104108 diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h
104109 index b8529aa..b0f7445 100644
104110 --- a/include/net/ip6_tunnel.h
104111 +++ b/include/net/ip6_tunnel.h
104112 @@ -83,11 +83,12 @@ static inline void ip6tunnel_xmit(struct sock *sk, struct sk_buff *skb,
104113 err = ip6_local_out_sk(sk, skb);
104114
104115 if (net_xmit_eval(err) == 0) {
104116 - struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats);
104117 + struct pcpu_sw_netstats *tstats = get_cpu_ptr(dev->tstats);
104118 u64_stats_update_begin(&tstats->syncp);
104119 tstats->tx_bytes += pkt_len;
104120 tstats->tx_packets++;
104121 u64_stats_update_end(&tstats->syncp);
104122 + put_cpu_ptr(tstats);
104123 } else {
104124 stats->tx_errors++;
104125 stats->tx_aborted_errors++;
104126 diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
104127 index 5fa643b..d871e20 100644
104128 --- a/include/net/ip_fib.h
104129 +++ b/include/net/ip_fib.h
104130 @@ -170,7 +170,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
104131
104132 #define FIB_RES_SADDR(net, res) \
104133 ((FIB_RES_NH(res).nh_saddr_genid == \
104134 - atomic_read(&(net)->ipv4.dev_addr_genid)) ? \
104135 + atomic_read_unchecked(&(net)->ipv4.dev_addr_genid)) ? \
104136 FIB_RES_NH(res).nh_saddr : \
104137 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
104138 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
104139 diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
104140 index d8214cb..9c2897e 100644
104141 --- a/include/net/ip_tunnels.h
104142 +++ b/include/net/ip_tunnels.h
104143 @@ -207,12 +207,13 @@ static inline void iptunnel_xmit_stats(int err,
104144 struct pcpu_sw_netstats __percpu *stats)
104145 {
104146 if (err > 0) {
104147 - struct pcpu_sw_netstats *tstats = this_cpu_ptr(stats);
104148 + struct pcpu_sw_netstats *tstats = get_cpu_ptr(stats);
104149
104150 u64_stats_update_begin(&tstats->syncp);
104151 tstats->tx_bytes += err;
104152 tstats->tx_packets++;
104153 u64_stats_update_end(&tstats->syncp);
104154 + put_cpu_ptr(tstats);
104155 } else if (err < 0) {
104156 err_stats->tx_errors++;
104157 err_stats->tx_aborted_errors++;
104158 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
104159 index 4e3731e..a242e28 100644
104160 --- a/include/net/ip_vs.h
104161 +++ b/include/net/ip_vs.h
104162 @@ -551,7 +551,7 @@ struct ip_vs_conn {
104163 struct ip_vs_conn *control; /* Master control connection */
104164 atomic_t n_control; /* Number of controlled ones */
104165 struct ip_vs_dest *dest; /* real server */
104166 - atomic_t in_pkts; /* incoming packet counter */
104167 + atomic_unchecked_t in_pkts; /* incoming packet counter */
104168
104169 /* Packet transmitter for different forwarding methods. If it
104170 * mangles the packet, it must return NF_DROP or better NF_STOLEN,
104171 @@ -699,7 +699,7 @@ struct ip_vs_dest {
104172 __be16 port; /* port number of the server */
104173 union nf_inet_addr addr; /* IP address of the server */
104174 volatile unsigned int flags; /* dest status flags */
104175 - atomic_t conn_flags; /* flags to copy to conn */
104176 + atomic_unchecked_t conn_flags; /* flags to copy to conn */
104177 atomic_t weight; /* server weight */
104178
104179 atomic_t refcnt; /* reference counter */
104180 @@ -946,11 +946,11 @@ struct netns_ipvs {
104181 /* ip_vs_lblc */
104182 int sysctl_lblc_expiration;
104183 struct ctl_table_header *lblc_ctl_header;
104184 - struct ctl_table *lblc_ctl_table;
104185 + ctl_table_no_const *lblc_ctl_table;
104186 /* ip_vs_lblcr */
104187 int sysctl_lblcr_expiration;
104188 struct ctl_table_header *lblcr_ctl_header;
104189 - struct ctl_table *lblcr_ctl_table;
104190 + ctl_table_no_const *lblcr_ctl_table;
104191 /* ip_vs_est */
104192 struct list_head est_list; /* estimator list */
104193 spinlock_t est_lock;
104194 diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h
104195 index 8d4f588..2e37ad2 100644
104196 --- a/include/net/irda/ircomm_tty.h
104197 +++ b/include/net/irda/ircomm_tty.h
104198 @@ -33,6 +33,7 @@
104199 #include <linux/termios.h>
104200 #include <linux/timer.h>
104201 #include <linux/tty.h> /* struct tty_struct */
104202 +#include <asm/local.h>
104203
104204 #include <net/irda/irias_object.h>
104205 #include <net/irda/ircomm_core.h>
104206 diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
104207 index 714cc9a..ea05f3e 100644
104208 --- a/include/net/iucv/af_iucv.h
104209 +++ b/include/net/iucv/af_iucv.h
104210 @@ -149,7 +149,7 @@ struct iucv_skb_cb {
104211 struct iucv_sock_list {
104212 struct hlist_head head;
104213 rwlock_t lock;
104214 - atomic_t autobind_name;
104215 + atomic_unchecked_t autobind_name;
104216 };
104217
104218 unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
104219 diff --git a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h
104220 index f3be818..bf46196 100644
104221 --- a/include/net/llc_c_ac.h
104222 +++ b/include/net/llc_c_ac.h
104223 @@ -87,7 +87,7 @@
104224 #define LLC_CONN_AC_STOP_SENDACK_TMR 70
104225 #define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING 71
104226
104227 -typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
104228 +typedef int (* const llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
104229
104230 int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
104231 int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
104232 diff --git a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h
104233 index 3948cf1..83b28c4 100644
104234 --- a/include/net/llc_c_ev.h
104235 +++ b/include/net/llc_c_ev.h
104236 @@ -125,8 +125,8 @@ static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
104237 return (struct llc_conn_state_ev *)skb->cb;
104238 }
104239
104240 -typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
104241 -typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
104242 +typedef int (* const llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
104243 +typedef int (* const llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
104244
104245 int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
104246 int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
104247 diff --git a/include/net/llc_c_st.h b/include/net/llc_c_st.h
104248 index 48f3f89..0e92c50 100644
104249 --- a/include/net/llc_c_st.h
104250 +++ b/include/net/llc_c_st.h
104251 @@ -37,7 +37,7 @@ struct llc_conn_state_trans {
104252 u8 next_state;
104253 const llc_conn_ev_qfyr_t *ev_qualifiers;
104254 const llc_conn_action_t *ev_actions;
104255 -};
104256 +} __do_const;
104257
104258 struct llc_conn_state {
104259 u8 current_state;
104260 diff --git a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h
104261 index a61b98c..aade1eb 100644
104262 --- a/include/net/llc_s_ac.h
104263 +++ b/include/net/llc_s_ac.h
104264 @@ -23,7 +23,7 @@
104265 #define SAP_ACT_TEST_IND 9
104266
104267 /* All action functions must look like this */
104268 -typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
104269 +typedef int (* const llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
104270
104271 int llc_sap_action_unitdata_ind(struct llc_sap *sap, struct sk_buff *skb);
104272 int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
104273 diff --git a/include/net/llc_s_st.h b/include/net/llc_s_st.h
104274 index c4359e2..76dbc4a 100644
104275 --- a/include/net/llc_s_st.h
104276 +++ b/include/net/llc_s_st.h
104277 @@ -20,7 +20,7 @@ struct llc_sap_state_trans {
104278 llc_sap_ev_t ev;
104279 u8 next_state;
104280 const llc_sap_action_t *ev_actions;
104281 -};
104282 +} __do_const;
104283
104284 struct llc_sap_state {
104285 u8 curr_state;
104286 diff --git a/include/net/mac80211.h b/include/net/mac80211.h
104287 index 6b1077c..7b72f67 100644
104288 --- a/include/net/mac80211.h
104289 +++ b/include/net/mac80211.h
104290 @@ -5106,7 +5106,7 @@ struct ieee80211_tx_rate_control {
104291 struct sk_buff *skb;
104292 struct ieee80211_tx_rate reported_rate;
104293 bool rts, short_preamble;
104294 - u8 max_rate_idx;
104295 + s8 max_rate_idx;
104296 u32 rate_idx_mask;
104297 u8 *rate_idx_mcs_mask;
104298 bool bss;
104299 @@ -5143,7 +5143,7 @@ struct rate_control_ops {
104300 void (*remove_sta_debugfs)(void *priv, void *priv_sta);
104301
104302 u32 (*get_expected_throughput)(void *priv_sta);
104303 -};
104304 +} __do_const;
104305
104306 static inline int rate_supported(struct ieee80211_sta *sta,
104307 enum ieee80211_band band,
104308 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
104309 index bd33e66..6508d00 100644
104310 --- a/include/net/neighbour.h
104311 +++ b/include/net/neighbour.h
104312 @@ -162,7 +162,7 @@ struct neigh_ops {
104313 void (*error_report)(struct neighbour *, struct sk_buff *);
104314 int (*output)(struct neighbour *, struct sk_buff *);
104315 int (*connected_output)(struct neighbour *, struct sk_buff *);
104316 -};
104317 +} __do_const;
104318
104319 struct pneigh_entry {
104320 struct pneigh_entry *next;
104321 @@ -216,7 +216,7 @@ struct neigh_table {
104322 struct neigh_statistics __percpu *stats;
104323 struct neigh_hash_table __rcu *nht;
104324 struct pneigh_entry **phash_buckets;
104325 -};
104326 +} __randomize_layout;
104327
104328 enum {
104329 NEIGH_ARP_TABLE = 0,
104330 diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
104331 index e951453..0685f5b 100644
104332 --- a/include/net/net_namespace.h
104333 +++ b/include/net/net_namespace.h
104334 @@ -53,7 +53,7 @@ struct net {
104335 */
104336 spinlock_t rules_mod_lock;
104337
104338 - atomic64_t cookie_gen;
104339 + atomic64_unchecked_t cookie_gen;
104340
104341 struct list_head list; /* list of network namespaces */
104342 struct list_head cleanup_list; /* namespaces on death row */
104343 @@ -135,8 +135,8 @@ struct net {
104344 struct netns_mpls mpls;
104345 #endif
104346 struct sock *diag_nlsk;
104347 - atomic_t fnhe_genid;
104348 -};
104349 + atomic_unchecked_t fnhe_genid;
104350 +} __randomize_layout;
104351
104352 #include <linux/seq_file_net.h>
104353
104354 @@ -271,7 +271,11 @@ static inline struct net *read_pnet(const possible_net_t *pnet)
104355 #define __net_init __init
104356 #define __net_exit __exit_refok
104357 #define __net_initdata __initdata
104358 +#ifdef CONSTIFY_PLUGIN
104359 #define __net_initconst __initconst
104360 +#else
104361 +#define __net_initconst __initdata
104362 +#endif
104363 #endif
104364
104365 int peernet2id_alloc(struct net *net, struct net *peer);
104366 @@ -286,7 +290,7 @@ struct pernet_operations {
104367 void (*exit_batch)(struct list_head *net_exit_list);
104368 int *id;
104369 size_t size;
104370 -};
104371 +} __do_const;
104372
104373 /*
104374 * Use these carefully. If you implement a network device and it
104375 @@ -334,12 +338,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
104376
104377 static inline int rt_genid_ipv4(struct net *net)
104378 {
104379 - return atomic_read(&net->ipv4.rt_genid);
104380 + return atomic_read_unchecked(&net->ipv4.rt_genid);
104381 }
104382
104383 static inline void rt_genid_bump_ipv4(struct net *net)
104384 {
104385 - atomic_inc(&net->ipv4.rt_genid);
104386 + atomic_inc_unchecked(&net->ipv4.rt_genid);
104387 }
104388
104389 extern void (*__fib6_flush_trees)(struct net *net);
104390 @@ -366,12 +370,12 @@ static inline void rt_genid_bump_all(struct net *net)
104391
104392 static inline int fnhe_genid(struct net *net)
104393 {
104394 - return atomic_read(&net->fnhe_genid);
104395 + return atomic_read_unchecked(&net->fnhe_genid);
104396 }
104397
104398 static inline void fnhe_genid_bump(struct net *net)
104399 {
104400 - atomic_inc(&net->fnhe_genid);
104401 + atomic_inc_unchecked(&net->fnhe_genid);
104402 }
104403
104404 #endif /* __NET_NET_NAMESPACE_H */
104405 diff --git a/include/net/netlink.h b/include/net/netlink.h
104406 index 2a5dbcc..8243656 100644
104407 --- a/include/net/netlink.h
104408 +++ b/include/net/netlink.h
104409 @@ -521,7 +521,7 @@ static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
104410 {
104411 if (mark) {
104412 WARN_ON((unsigned char *) mark < skb->data);
104413 - skb_trim(skb, (unsigned char *) mark - skb->data);
104414 + skb_trim(skb, (const unsigned char *) mark - skb->data);
104415 }
104416 }
104417
104418 diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
104419 index 723b61c..4386367 100644
104420 --- a/include/net/netns/conntrack.h
104421 +++ b/include/net/netns/conntrack.h
104422 @@ -14,10 +14,10 @@ struct nf_conntrack_ecache;
104423 struct nf_proto_net {
104424 #ifdef CONFIG_SYSCTL
104425 struct ctl_table_header *ctl_table_header;
104426 - struct ctl_table *ctl_table;
104427 + ctl_table_no_const *ctl_table;
104428 #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
104429 struct ctl_table_header *ctl_compat_header;
104430 - struct ctl_table *ctl_compat_table;
104431 + ctl_table_no_const *ctl_compat_table;
104432 #endif
104433 #endif
104434 unsigned int users;
104435 @@ -60,7 +60,7 @@ struct nf_ip_net {
104436 struct nf_icmp_net icmpv6;
104437 #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT)
104438 struct ctl_table_header *ctl_table_header;
104439 - struct ctl_table *ctl_table;
104440 + ctl_table_no_const *ctl_table;
104441 #endif
104442 };
104443
104444 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
104445 index c68926b..106c147 100644
104446 --- a/include/net/netns/ipv4.h
104447 +++ b/include/net/netns/ipv4.h
104448 @@ -93,7 +93,7 @@ struct netns_ipv4 {
104449
104450 struct ping_group_range ping_group_range;
104451
104452 - atomic_t dev_addr_genid;
104453 + atomic_unchecked_t dev_addr_genid;
104454
104455 #ifdef CONFIG_SYSCTL
104456 unsigned long *sysctl_local_reserved_ports;
104457 @@ -107,6 +107,6 @@ struct netns_ipv4 {
104458 struct fib_rules_ops *mr_rules_ops;
104459 #endif
104460 #endif
104461 - atomic_t rt_genid;
104462 + atomic_unchecked_t rt_genid;
104463 };
104464 #endif
104465 diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
104466 index 8d93544..05c3e89 100644
104467 --- a/include/net/netns/ipv6.h
104468 +++ b/include/net/netns/ipv6.h
104469 @@ -79,8 +79,8 @@ struct netns_ipv6 {
104470 struct fib_rules_ops *mr6_rules_ops;
104471 #endif
104472 #endif
104473 - atomic_t dev_addr_genid;
104474 - atomic_t fib6_sernum;
104475 + atomic_unchecked_t dev_addr_genid;
104476 + atomic_unchecked_t fib6_sernum;
104477 };
104478
104479 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
104480 diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
104481 index 730d82a..045f2c4 100644
104482 --- a/include/net/netns/xfrm.h
104483 +++ b/include/net/netns/xfrm.h
104484 @@ -78,7 +78,7 @@ struct netns_xfrm {
104485
104486 /* flow cache part */
104487 struct flow_cache flow_cache_global;
104488 - atomic_t flow_cache_genid;
104489 + atomic_unchecked_t flow_cache_genid;
104490 struct list_head flow_cache_gc_list;
104491 spinlock_t flow_cache_gc_lock;
104492 struct work_struct flow_cache_gc_work;
104493 diff --git a/include/net/ping.h b/include/net/ping.h
104494 index ac80cb4..ec1ed09 100644
104495 --- a/include/net/ping.h
104496 +++ b/include/net/ping.h
104497 @@ -54,7 +54,7 @@ struct ping_iter_state {
104498
104499 extern struct proto ping_prot;
104500 #if IS_ENABLED(CONFIG_IPV6)
104501 -extern struct pingv6_ops pingv6_ops;
104502 +extern struct pingv6_ops *pingv6_ops;
104503 #endif
104504
104505 struct pingfakehdr {
104506 diff --git a/include/net/protocol.h b/include/net/protocol.h
104507 index d6fcc1f..ca277058 100644
104508 --- a/include/net/protocol.h
104509 +++ b/include/net/protocol.h
104510 @@ -49,7 +49,7 @@ struct net_protocol {
104511 * socket lookup?
104512 */
104513 icmp_strict_tag_validation:1;
104514 -};
104515 +} __do_const;
104516
104517 #if IS_ENABLED(CONFIG_IPV6)
104518 struct inet6_protocol {
104519 @@ -62,7 +62,7 @@ struct inet6_protocol {
104520 u8 type, u8 code, int offset,
104521 __be32 info);
104522 unsigned int flags; /* INET6_PROTO_xxx */
104523 -};
104524 +} __do_const;
104525
104526 #define INET6_PROTO_NOPOLICY 0x1
104527 #define INET6_PROTO_FINAL 0x2
104528 diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
104529 index 343d922..7959cde 100644
104530 --- a/include/net/rtnetlink.h
104531 +++ b/include/net/rtnetlink.h
104532 @@ -95,7 +95,7 @@ struct rtnl_link_ops {
104533 const struct net_device *dev,
104534 const struct net_device *slave_dev);
104535 struct net *(*get_link_net)(const struct net_device *dev);
104536 -};
104537 +} __do_const;
104538
104539 int __rtnl_link_register(struct rtnl_link_ops *ops);
104540 void __rtnl_link_unregister(struct rtnl_link_ops *ops);
104541 diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
104542 index 2738f6f..49dda38 100644
104543 --- a/include/net/sch_generic.h
104544 +++ b/include/net/sch_generic.h
104545 @@ -61,6 +61,9 @@ struct Qdisc {
104546 */
104547 #define TCQ_F_WARN_NONWC (1 << 16)
104548 #define TCQ_F_CPUSTATS 0x20 /* run using percpu statistics */
104549 +#define TCQ_F_NOPARENT 0x40 /* root of its hierarchy :
104550 + * qdisc_tree_decrease_qlen() should stop.
104551 + */
104552 u32 limit;
104553 const struct Qdisc_ops *ops;
104554 struct qdisc_size_table __rcu *stab;
104555 diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h
104556 index 4a5b9a3..ca27d73 100644
104557 --- a/include/net/sctp/checksum.h
104558 +++ b/include/net/sctp/checksum.h
104559 @@ -61,8 +61,8 @@ static inline __le32 sctp_compute_cksum(const struct sk_buff *skb,
104560 unsigned int offset)
104561 {
104562 struct sctphdr *sh = sctp_hdr(skb);
104563 - __le32 ret, old = sh->checksum;
104564 - const struct skb_checksum_ops ops = {
104565 + __le32 ret, old = sh->checksum;
104566 + static const struct skb_checksum_ops ops = {
104567 .update = sctp_csum_update,
104568 .combine = sctp_csum_combine,
104569 };
104570 diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
104571 index 487ef34..d457f98 100644
104572 --- a/include/net/sctp/sm.h
104573 +++ b/include/net/sctp/sm.h
104574 @@ -80,7 +80,7 @@ typedef void (sctp_timer_event_t) (unsigned long);
104575 typedef struct {
104576 sctp_state_fn_t *fn;
104577 const char *name;
104578 -} sctp_sm_table_entry_t;
104579 +} __do_const sctp_sm_table_entry_t;
104580
104581 /* A naming convention of "sctp_sf_xxx" applies to all the state functions
104582 * currently in use.
104583 @@ -292,7 +292,7 @@ __u32 sctp_generate_tag(const struct sctp_endpoint *);
104584 __u32 sctp_generate_tsn(const struct sctp_endpoint *);
104585
104586 /* Extern declarations for major data structures. */
104587 -extern sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
104588 +extern sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
104589
104590
104591 /* Get the size of a DATA chunk payload. */
104592 diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
104593 index 495c87e..5b327ff 100644
104594 --- a/include/net/sctp/structs.h
104595 +++ b/include/net/sctp/structs.h
104596 @@ -513,7 +513,7 @@ struct sctp_pf {
104597 void (*to_sk_saddr)(union sctp_addr *, struct sock *sk);
104598 void (*to_sk_daddr)(union sctp_addr *, struct sock *sk);
104599 struct sctp_af *af;
104600 -};
104601 +} __do_const;
104602
104603
104604 /* Structure to track chunk fragments that have been acked, but peer
104605 diff --git a/include/net/sock.h b/include/net/sock.h
104606 index 4ca4c3f..1573f47 100644
104607 --- a/include/net/sock.h
104608 +++ b/include/net/sock.h
104609 @@ -198,7 +198,7 @@ struct sock_common {
104610 struct in6_addr skc_v6_rcv_saddr;
104611 #endif
104612
104613 - atomic64_t skc_cookie;
104614 + atomic64_unchecked_t skc_cookie;
104615
104616 /*
104617 * fields between dontcopy_begin/dontcopy_end
104618 @@ -364,7 +364,7 @@ struct sock {
104619 unsigned int sk_napi_id;
104620 unsigned int sk_ll_usec;
104621 #endif
104622 - atomic_t sk_drops;
104623 + atomic_unchecked_t sk_drops;
104624 int sk_rcvbuf;
104625
104626 struct sk_filter __rcu *sk_filter;
104627 @@ -1046,7 +1046,7 @@ struct proto {
104628 void (*destroy_cgroup)(struct mem_cgroup *memcg);
104629 struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg);
104630 #endif
104631 -};
104632 +} __randomize_layout;
104633
104634 /*
104635 * Bits in struct cg_proto.flags
104636 @@ -1219,7 +1219,7 @@ static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
104637 page_counter_uncharge(&prot->memory_allocated, amt);
104638 }
104639
104640 -static inline long
104641 +static inline long __intentional_overflow(-1)
104642 sk_memory_allocated(const struct sock *sk)
104643 {
104644 struct proto *prot = sk->sk_prot;
104645 @@ -1784,7 +1784,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
104646 }
104647
104648 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
104649 - struct iov_iter *from, char *to,
104650 + struct iov_iter *from, unsigned char *to,
104651 int copy, int offset)
104652 {
104653 if (skb->ip_summed == CHECKSUM_NONE) {
104654 @@ -2031,7 +2031,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
104655 }
104656 }
104657
104658 -struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
104659 +struct sk_buff * __intentional_overflow(0) sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
104660 bool force_schedule);
104661
104662 /**
104663 @@ -2107,7 +2107,7 @@ struct sock_skb_cb {
104664 static inline void
104665 sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
104666 {
104667 - SOCK_SKB_CB(skb)->dropcount = atomic_read(&sk->sk_drops);
104668 + SOCK_SKB_CB(skb)->dropcount = atomic_read_unchecked(&sk->sk_drops);
104669 }
104670
104671 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
104672 diff --git a/include/net/tcp.h b/include/net/tcp.h
104673 index 950cfec..0bf9d85 100644
104674 --- a/include/net/tcp.h
104675 +++ b/include/net/tcp.h
104676 @@ -546,7 +546,7 @@ void tcp_retransmit_timer(struct sock *sk);
104677 void tcp_xmit_retransmit_queue(struct sock *);
104678 void tcp_simple_retransmit(struct sock *);
104679 int tcp_trim_head(struct sock *, struct sk_buff *, u32);
104680 -int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t);
104681 +int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t) __intentional_overflow(3);
104682
104683 void tcp_send_probe0(struct sock *);
104684 void tcp_send_partial(struct sock *);
104685 @@ -724,8 +724,8 @@ static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
104686 * If this grows please adjust skbuff.h:skbuff->cb[xxx] size appropriately.
104687 */
104688 struct tcp_skb_cb {
104689 - __u32 seq; /* Starting sequence number */
104690 - __u32 end_seq; /* SEQ + FIN + SYN + datalen */
104691 + __u32 seq __intentional_overflow(-1); /* Starting sequence number */
104692 + __u32 end_seq __intentional_overflow(-1); /* SEQ + FIN + SYN + datalen */
104693 union {
104694 /* Note : tcp_tw_isn is used in input path only
104695 * (isn chosen by tcp_timewait_state_process())
104696 @@ -753,7 +753,7 @@ struct tcp_skb_cb {
104697
104698 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
104699 /* 1 byte hole */
104700 - __u32 ack_seq; /* Sequence number ACK'd */
104701 + __u32 ack_seq __intentional_overflow(-1); /* Sequence number ACK'd */
104702 union {
104703 struct inet_skb_parm h4;
104704 #if IS_ENABLED(CONFIG_IPV6)
104705 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
104706 index f0ee97e..73e2b5a 100644
104707 --- a/include/net/xfrm.h
104708 +++ b/include/net/xfrm.h
104709 @@ -284,7 +284,6 @@ struct xfrm_dst;
104710 struct xfrm_policy_afinfo {
104711 unsigned short family;
104712 struct dst_ops *dst_ops;
104713 - void (*garbage_collect)(struct net *net);
104714 struct dst_entry *(*dst_lookup)(struct net *net, int tos,
104715 const xfrm_address_t *saddr,
104716 const xfrm_address_t *daddr);
104717 @@ -302,7 +301,7 @@ struct xfrm_policy_afinfo {
104718 struct net_device *dev,
104719 const struct flowi *fl);
104720 struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig);
104721 -};
104722 +} __do_const;
104723
104724 int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
104725 int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
104726 @@ -341,7 +340,7 @@ struct xfrm_state_afinfo {
104727 int (*transport_finish)(struct sk_buff *skb,
104728 int async);
104729 void (*local_error)(struct sk_buff *skb, u32 mtu);
104730 -};
104731 +} __do_const;
104732
104733 int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
104734 int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
104735 @@ -436,7 +435,7 @@ struct xfrm_mode {
104736 struct module *owner;
104737 unsigned int encap;
104738 int flags;
104739 -};
104740 +} __do_const;
104741
104742 /* Flags for xfrm_mode. */
104743 enum {
104744 @@ -531,7 +530,7 @@ struct xfrm_policy {
104745 struct timer_list timer;
104746
104747 struct flow_cache_object flo;
104748 - atomic_t genid;
104749 + atomic_unchecked_t genid;
104750 u32 priority;
104751 u32 index;
104752 struct xfrm_mark mark;
104753 @@ -1164,6 +1163,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
104754 }
104755
104756 void xfrm_garbage_collect(struct net *net);
104757 +void xfrm_garbage_collect_deferred(struct net *net);
104758
104759 #else
104760
104761 @@ -1202,6 +1202,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
104762 static inline void xfrm_garbage_collect(struct net *net)
104763 {
104764 }
104765 +static inline void xfrm_garbage_collect_deferred(struct net *net)
104766 +{
104767 +}
104768 #endif
104769
104770 static __inline__
104771 diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
104772 index 036bd27..c0d7f17 100644
104773 --- a/include/rdma/iw_cm.h
104774 +++ b/include/rdma/iw_cm.h
104775 @@ -123,7 +123,7 @@ struct iw_cm_verbs {
104776 int backlog);
104777
104778 int (*destroy_listen)(struct iw_cm_id *cm_id);
104779 -};
104780 +} __no_const;
104781
104782 /**
104783 * iw_create_cm_id - Create an IW CM identifier.
104784 diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
104785 index 93d14da..734b3d8 100644
104786 --- a/include/scsi/libfc.h
104787 +++ b/include/scsi/libfc.h
104788 @@ -771,6 +771,7 @@ struct libfc_function_template {
104789 */
104790 void (*disc_stop_final) (struct fc_lport *);
104791 };
104792 +typedef struct libfc_function_template __no_const libfc_function_template_no_const;
104793
104794 /**
104795 * struct fc_disc - Discovery context
104796 @@ -875,7 +876,7 @@ struct fc_lport {
104797 struct fc_vport *vport;
104798
104799 /* Operational Information */
104800 - struct libfc_function_template tt;
104801 + libfc_function_template_no_const tt;
104802 u8 link_up;
104803 u8 qfull;
104804 enum fc_lport_state state;
104805 diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
104806 index ae84b22..7954097 100644
104807 --- a/include/scsi/scsi_device.h
104808 +++ b/include/scsi/scsi_device.h
104809 @@ -185,9 +185,9 @@ struct scsi_device {
104810 unsigned int max_device_blocked; /* what device_blocked counts down from */
104811 #define SCSI_DEFAULT_DEVICE_BLOCKED 3
104812
104813 - atomic_t iorequest_cnt;
104814 - atomic_t iodone_cnt;
104815 - atomic_t ioerr_cnt;
104816 + atomic_unchecked_t iorequest_cnt;
104817 + atomic_unchecked_t iodone_cnt;
104818 + atomic_unchecked_t ioerr_cnt;
104819
104820 struct device sdev_gendev,
104821 sdev_dev;
104822 diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h
104823 index 891a658..fcd68df 100644
104824 --- a/include/scsi/scsi_driver.h
104825 +++ b/include/scsi/scsi_driver.h
104826 @@ -14,7 +14,7 @@ struct scsi_driver {
104827 void (*rescan)(struct device *);
104828 int (*init_command)(struct scsi_cmnd *);
104829 void (*uninit_command)(struct scsi_cmnd *);
104830 - int (*done)(struct scsi_cmnd *);
104831 + unsigned int (*done)(struct scsi_cmnd *);
104832 int (*eh_action)(struct scsi_cmnd *, int);
104833 };
104834 #define to_scsi_driver(drv) \
104835 diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
104836 index 784bc2c..855a04c 100644
104837 --- a/include/scsi/scsi_transport_fc.h
104838 +++ b/include/scsi/scsi_transport_fc.h
104839 @@ -757,7 +757,8 @@ struct fc_function_template {
104840 unsigned long show_host_system_hostname:1;
104841
104842 unsigned long disable_target_scan:1;
104843 -};
104844 +} __do_const;
104845 +typedef struct fc_function_template __no_const fc_function_template_no_const;
104846
104847
104848 /**
104849 diff --git a/include/scsi/sg.h b/include/scsi/sg.h
104850 index 3afec70..b196b43 100644
104851 --- a/include/scsi/sg.h
104852 +++ b/include/scsi/sg.h
104853 @@ -52,7 +52,7 @@ typedef struct sg_io_hdr
104854 or scatter gather list */
104855 unsigned char __user *cmdp; /* [i], [*i] points to command to perform */
104856 void __user *sbp; /* [i], [*o] points to sense_buffer memory */
104857 - unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
104858 + unsigned int timeout __intentional_overflow(-1); /* [i] MAX_UINT->no timeout (unit: millisec) */
104859 unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
104860 int pack_id; /* [i->o] unused internally (normally) */
104861 void __user * usr_ptr; /* [i->o] unused internally */
104862 diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
104863 index fa1d055..3647940 100644
104864 --- a/include/sound/compress_driver.h
104865 +++ b/include/sound/compress_driver.h
104866 @@ -130,7 +130,7 @@ struct snd_compr_ops {
104867 struct snd_compr_caps *caps);
104868 int (*get_codec_caps) (struct snd_compr_stream *stream,
104869 struct snd_compr_codec_caps *codec);
104870 -};
104871 +} __no_const;
104872
104873 /**
104874 * struct snd_compr: Compressed device
104875 diff --git a/include/sound/soc.h b/include/sound/soc.h
104876 index 334d0d2..a4327ba 100644
104877 --- a/include/sound/soc.h
104878 +++ b/include/sound/soc.h
104879 @@ -885,7 +885,7 @@ struct snd_soc_codec_driver {
104880 enum snd_soc_dapm_type, int);
104881
104882 bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
104883 -};
104884 +} __do_const;
104885
104886 /* SoC platform interface */
104887 struct snd_soc_platform_driver {
104888 @@ -912,7 +912,7 @@ struct snd_soc_platform_driver {
104889 const struct snd_compr_ops *compr_ops;
104890
104891 int (*bespoke_trigger)(struct snd_pcm_substream *, int);
104892 -};
104893 +} __do_const;
104894
104895 struct snd_soc_dai_link_component {
104896 const char *name;
104897 diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
104898 index 17ae2d6..24974e9 100644
104899 --- a/include/target/target_core_base.h
104900 +++ b/include/target/target_core_base.h
104901 @@ -480,7 +480,7 @@ struct se_cmd {
104902 struct kref cmd_kref;
104903 const struct target_core_fabric_ops *se_tfo;
104904 sense_reason_t (*execute_cmd)(struct se_cmd *);
104905 - sense_reason_t (*transport_complete_callback)(struct se_cmd *, bool);
104906 + sense_reason_t (*transport_complete_callback)(struct se_cmd *, bool, int *);
104907 void *protocol_data;
104908
104909 unsigned char *t_task_cdb;
104910 @@ -751,7 +751,7 @@ struct se_device {
104911 atomic_long_t write_bytes;
104912 /* Active commands on this virtual SE device */
104913 atomic_t simple_cmds;
104914 - atomic_t dev_ordered_id;
104915 + atomic_unchecked_t dev_ordered_id;
104916 atomic_t dev_ordered_sync;
104917 atomic_t dev_qf_count;
104918 u32 export_count;
104919 diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h
104920 new file mode 100644
104921 index 0000000..fb634b7
104922 --- /dev/null
104923 +++ b/include/trace/events/fs.h
104924 @@ -0,0 +1,53 @@
104925 +#undef TRACE_SYSTEM
104926 +#define TRACE_SYSTEM fs
104927 +
104928 +#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ)
104929 +#define _TRACE_FS_H
104930 +
104931 +#include <linux/fs.h>
104932 +#include <linux/tracepoint.h>
104933 +
104934 +TRACE_EVENT(do_sys_open,
104935 +
104936 + TP_PROTO(const char *filename, int flags, int mode),
104937 +
104938 + TP_ARGS(filename, flags, mode),
104939 +
104940 + TP_STRUCT__entry(
104941 + __string( filename, filename )
104942 + __field( int, flags )
104943 + __field( int, mode )
104944 + ),
104945 +
104946 + TP_fast_assign(
104947 + __assign_str(filename, filename);
104948 + __entry->flags = flags;
104949 + __entry->mode = mode;
104950 + ),
104951 +
104952 + TP_printk("\"%s\" %x %o",
104953 + __get_str(filename), __entry->flags, __entry->mode)
104954 +);
104955 +
104956 +TRACE_EVENT(open_exec,
104957 +
104958 + TP_PROTO(const char *filename),
104959 +
104960 + TP_ARGS(filename),
104961 +
104962 + TP_STRUCT__entry(
104963 + __string( filename, filename )
104964 + ),
104965 +
104966 + TP_fast_assign(
104967 + __assign_str(filename, filename);
104968 + ),
104969 +
104970 + TP_printk("\"%s\"",
104971 + __get_str(filename))
104972 +);
104973 +
104974 +#endif /* _TRACE_FS_H */
104975 +
104976 +/* This part must be outside protection */
104977 +#include <trace/define_trace.h>
104978 diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
104979 index ff8f6c0..6b6bae3 100644
104980 --- a/include/trace/events/irq.h
104981 +++ b/include/trace/events/irq.h
104982 @@ -51,7 +51,7 @@ SOFTIRQ_NAME_LIST
104983 */
104984 TRACE_EVENT(irq_handler_entry,
104985
104986 - TP_PROTO(int irq, struct irqaction *action),
104987 + TP_PROTO(int irq, const struct irqaction *action),
104988
104989 TP_ARGS(irq, action),
104990
104991 @@ -81,7 +81,7 @@ TRACE_EVENT(irq_handler_entry,
104992 */
104993 TRACE_EVENT(irq_handler_exit,
104994
104995 - TP_PROTO(int irq, struct irqaction *action, int ret),
104996 + TP_PROTO(int irq, const struct irqaction *action, int ret),
104997
104998 TP_ARGS(irq, action, ret),
104999
105000 diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
105001 index db809b7..05a44aa 100644
105002 --- a/include/uapi/drm/i915_drm.h
105003 +++ b/include/uapi/drm/i915_drm.h
105004 @@ -354,6 +354,7 @@ typedef struct drm_i915_irq_wait {
105005 #define I915_PARAM_REVISION 32
105006 #define I915_PARAM_SUBSLICE_TOTAL 33
105007 #define I915_PARAM_EU_TOTAL 34
105008 +#define I915_PARAM_HAS_LEGACY_CONTEXT 35
105009
105010 typedef struct drm_i915_getparam {
105011 int param;
105012 diff --git a/include/uapi/linux/a.out.h b/include/uapi/linux/a.out.h
105013 index 7caf44c..23c6f27 100644
105014 --- a/include/uapi/linux/a.out.h
105015 +++ b/include/uapi/linux/a.out.h
105016 @@ -39,6 +39,14 @@ enum machine_type {
105017 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
105018 };
105019
105020 +/* Constants for the N_FLAGS field */
105021 +#define F_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
105022 +#define F_PAX_EMUTRAMP 2 /* Emulate trampolines */
105023 +#define F_PAX_MPROTECT 4 /* Restrict mprotect() */
105024 +#define F_PAX_RANDMMAP 8 /* Randomize mmap() base */
105025 +/*#define F_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
105026 +#define F_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
105027 +
105028 #if !defined (N_MAGIC)
105029 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
105030 #endif
105031 diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h
105032 index 22b6ad3..aeba37e 100644
105033 --- a/include/uapi/linux/bcache.h
105034 +++ b/include/uapi/linux/bcache.h
105035 @@ -5,6 +5,7 @@
105036 * Bcache on disk data structures
105037 */
105038
105039 +#include <linux/compiler.h>
105040 #include <asm/types.h>
105041
105042 #define BITMASK(name, type, field, offset, size) \
105043 @@ -20,8 +21,8 @@ static inline void SET_##name(type *k, __u64 v) \
105044 /* Btree keys - all units are in sectors */
105045
105046 struct bkey {
105047 - __u64 high;
105048 - __u64 low;
105049 + __u64 high __intentional_overflow(-1);
105050 + __u64 low __intentional_overflow(-1);
105051 __u64 ptr[];
105052 };
105053
105054 diff --git a/include/uapi/linux/byteorder/little_endian.h b/include/uapi/linux/byteorder/little_endian.h
105055 index d876736..ccce5c0 100644
105056 --- a/include/uapi/linux/byteorder/little_endian.h
105057 +++ b/include/uapi/linux/byteorder/little_endian.h
105058 @@ -42,51 +42,51 @@
105059
105060 static inline __le64 __cpu_to_le64p(const __u64 *p)
105061 {
105062 - return (__force __le64)*p;
105063 + return (__force const __le64)*p;
105064 }
105065 -static inline __u64 __le64_to_cpup(const __le64 *p)
105066 +static inline __u64 __intentional_overflow(-1) __le64_to_cpup(const __le64 *p)
105067 {
105068 - return (__force __u64)*p;
105069 + return (__force const __u64)*p;
105070 }
105071 static inline __le32 __cpu_to_le32p(const __u32 *p)
105072 {
105073 - return (__force __le32)*p;
105074 + return (__force const __le32)*p;
105075 }
105076 static inline __u32 __le32_to_cpup(const __le32 *p)
105077 {
105078 - return (__force __u32)*p;
105079 + return (__force const __u32)*p;
105080 }
105081 static inline __le16 __cpu_to_le16p(const __u16 *p)
105082 {
105083 - return (__force __le16)*p;
105084 + return (__force const __le16)*p;
105085 }
105086 static inline __u16 __le16_to_cpup(const __le16 *p)
105087 {
105088 - return (__force __u16)*p;
105089 + return (__force const __u16)*p;
105090 }
105091 static inline __be64 __cpu_to_be64p(const __u64 *p)
105092 {
105093 - return (__force __be64)__swab64p(p);
105094 + return (__force const __be64)__swab64p(p);
105095 }
105096 static inline __u64 __be64_to_cpup(const __be64 *p)
105097 {
105098 - return __swab64p((__u64 *)p);
105099 + return __swab64p((const __u64 *)p);
105100 }
105101 static inline __be32 __cpu_to_be32p(const __u32 *p)
105102 {
105103 - return (__force __be32)__swab32p(p);
105104 + return (__force const __be32)__swab32p(p);
105105 }
105106 -static inline __u32 __be32_to_cpup(const __be32 *p)
105107 +static inline __u32 __intentional_overflow(-1) __be32_to_cpup(const __be32 *p)
105108 {
105109 - return __swab32p((__u32 *)p);
105110 + return __swab32p((const __u32 *)p);
105111 }
105112 static inline __be16 __cpu_to_be16p(const __u16 *p)
105113 {
105114 - return (__force __be16)__swab16p(p);
105115 + return (__force const __be16)__swab16p(p);
105116 }
105117 static inline __u16 __be16_to_cpup(const __be16 *p)
105118 {
105119 - return __swab16p((__u16 *)p);
105120 + return __swab16p((const __u16 *)p);
105121 }
105122 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
105123 #define __le64_to_cpus(x) do { (void)(x); } while (0)
105124 diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h
105125 index 4cb2835..cfbc4e2 100644
105126 --- a/include/uapi/linux/connector.h
105127 +++ b/include/uapi/linux/connector.h
105128 @@ -69,7 +69,7 @@ struct cb_id {
105129 struct cn_msg {
105130 struct cb_id id;
105131
105132 - __u32 seq;
105133 + __u32 seq __intentional_overflow(-1);
105134 __u32 ack;
105135
105136 __u16 len; /* Length of the following data */
105137 diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
105138 index 71e1d0e..6cc9caf 100644
105139 --- a/include/uapi/linux/elf.h
105140 +++ b/include/uapi/linux/elf.h
105141 @@ -37,6 +37,17 @@ typedef __s64 Elf64_Sxword;
105142 #define PT_GNU_EH_FRAME 0x6474e550
105143
105144 #define PT_GNU_STACK (PT_LOOS + 0x474e551)
105145 +#define PT_GNU_RELRO (PT_LOOS + 0x474e552)
105146 +
105147 +#define PT_PAX_FLAGS (PT_LOOS + 0x5041580)
105148 +
105149 +/* Constants for the e_flags field */
105150 +#define EF_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
105151 +#define EF_PAX_EMUTRAMP 2 /* Emulate trampolines */
105152 +#define EF_PAX_MPROTECT 4 /* Restrict mprotect() */
105153 +#define EF_PAX_RANDMMAP 8 /* Randomize mmap() base */
105154 +/*#define EF_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
105155 +#define EF_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
105156
105157 /*
105158 * Extended Numbering
105159 @@ -94,6 +105,8 @@ typedef __s64 Elf64_Sxword;
105160 #define DT_DEBUG 21
105161 #define DT_TEXTREL 22
105162 #define DT_JMPREL 23
105163 +#define DT_FLAGS 30
105164 + #define DF_TEXTREL 0x00000004
105165 #define DT_ENCODING 32
105166 #define OLD_DT_LOOS 0x60000000
105167 #define DT_LOOS 0x6000000d
105168 @@ -240,6 +253,19 @@ typedef struct elf64_hdr {
105169 #define PF_W 0x2
105170 #define PF_X 0x1
105171
105172 +#define PF_PAGEEXEC (1U << 4) /* Enable PAGEEXEC */
105173 +#define PF_NOPAGEEXEC (1U << 5) /* Disable PAGEEXEC */
105174 +#define PF_SEGMEXEC (1U << 6) /* Enable SEGMEXEC */
105175 +#define PF_NOSEGMEXEC (1U << 7) /* Disable SEGMEXEC */
105176 +#define PF_MPROTECT (1U << 8) /* Enable MPROTECT */
105177 +#define PF_NOMPROTECT (1U << 9) /* Disable MPROTECT */
105178 +/*#define PF_RANDEXEC (1U << 10)*/ /* Enable RANDEXEC */
105179 +/*#define PF_NORANDEXEC (1U << 11)*/ /* Disable RANDEXEC */
105180 +#define PF_EMUTRAMP (1U << 12) /* Enable EMUTRAMP */
105181 +#define PF_NOEMUTRAMP (1U << 13) /* Disable EMUTRAMP */
105182 +#define PF_RANDMMAP (1U << 14) /* Enable RANDMMAP */
105183 +#define PF_NORANDMMAP (1U << 15) /* Disable RANDMMAP */
105184 +
105185 typedef struct elf32_phdr{
105186 Elf32_Word p_type;
105187 Elf32_Off p_offset;
105188 @@ -332,6 +358,8 @@ typedef struct elf64_shdr {
105189 #define EI_OSABI 7
105190 #define EI_PAD 8
105191
105192 +#define EI_PAX 14
105193 +
105194 #define ELFMAG0 0x7f /* EI_MAG */
105195 #define ELFMAG1 'E'
105196 #define ELFMAG2 'L'
105197 diff --git a/include/uapi/linux/personality.h b/include/uapi/linux/personality.h
105198 index aa169c4..6a2771d 100644
105199 --- a/include/uapi/linux/personality.h
105200 +++ b/include/uapi/linux/personality.h
105201 @@ -30,6 +30,7 @@ enum {
105202 #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \
105203 ADDR_NO_RANDOMIZE | \
105204 ADDR_COMPAT_LAYOUT | \
105205 + ADDR_LIMIT_3GB | \
105206 MMAP_PAGE_ZERO)
105207
105208 /*
105209 diff --git a/include/uapi/linux/screen_info.h b/include/uapi/linux/screen_info.h
105210 index 7530e74..e714828 100644
105211 --- a/include/uapi/linux/screen_info.h
105212 +++ b/include/uapi/linux/screen_info.h
105213 @@ -43,7 +43,8 @@ struct screen_info {
105214 __u16 pages; /* 0x32 */
105215 __u16 vesa_attributes; /* 0x34 */
105216 __u32 capabilities; /* 0x36 */
105217 - __u8 _reserved[6]; /* 0x3a */
105218 + __u16 vesapm_size; /* 0x3a */
105219 + __u8 _reserved[4]; /* 0x3c */
105220 } __attribute__((packed));
105221
105222 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
105223 diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
105224 index 0e011eb..82681b1 100644
105225 --- a/include/uapi/linux/swab.h
105226 +++ b/include/uapi/linux/swab.h
105227 @@ -43,7 +43,7 @@
105228 * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
105229 */
105230
105231 -static inline __attribute_const__ __u16 __fswab16(__u16 val)
105232 +static inline __intentional_overflow(-1) __attribute_const__ __u16 __fswab16(__u16 val)
105233 {
105234 #ifdef __HAVE_BUILTIN_BSWAP16__
105235 return __builtin_bswap16(val);
105236 @@ -54,7 +54,7 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val)
105237 #endif
105238 }
105239
105240 -static inline __attribute_const__ __u32 __fswab32(__u32 val)
105241 +static inline __intentional_overflow(-1) __attribute_const__ __u32 __fswab32(__u32 val)
105242 {
105243 #ifdef __HAVE_BUILTIN_BSWAP32__
105244 return __builtin_bswap32(val);
105245 @@ -65,7 +65,7 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val)
105246 #endif
105247 }
105248
105249 -static inline __attribute_const__ __u64 __fswab64(__u64 val)
105250 +static inline __intentional_overflow(-1) __attribute_const__ __u64 __fswab64(__u64 val)
105251 {
105252 #ifdef __HAVE_BUILTIN_BSWAP64__
105253 return __builtin_bswap64(val);
105254 diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
105255 index 1590c49..5eab462 100644
105256 --- a/include/uapi/linux/xattr.h
105257 +++ b/include/uapi/linux/xattr.h
105258 @@ -73,5 +73,9 @@
105259 #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
105260 #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
105261
105262 +/* User namespace */
105263 +#define XATTR_PAX_PREFIX XATTR_USER_PREFIX "pax."
105264 +#define XATTR_PAX_FLAGS_SUFFIX "flags"
105265 +#define XATTR_NAME_PAX_FLAGS XATTR_PAX_PREFIX XATTR_PAX_FLAGS_SUFFIX
105266
105267 #endif /* _UAPI_LINUX_XATTR_H */
105268 diff --git a/include/video/udlfb.h b/include/video/udlfb.h
105269 index f9466fa..f4e2b81 100644
105270 --- a/include/video/udlfb.h
105271 +++ b/include/video/udlfb.h
105272 @@ -53,10 +53,10 @@ struct dlfb_data {
105273 u32 pseudo_palette[256];
105274 int blank_mode; /*one of FB_BLANK_ */
105275 /* blit-only rendering path metrics, exposed through sysfs */
105276 - atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */
105277 - atomic_t bytes_identical; /* saved effort with backbuffer comparison */
105278 - atomic_t bytes_sent; /* to usb, after compression including overhead */
105279 - atomic_t cpu_kcycles_used; /* transpired during pixel processing */
105280 + atomic_unchecked_t bytes_rendered; /* raw pixel-bytes driver asked to render */
105281 + atomic_unchecked_t bytes_identical; /* saved effort with backbuffer comparison */
105282 + atomic_unchecked_t bytes_sent; /* to usb, after compression including overhead */
105283 + atomic_unchecked_t cpu_kcycles_used; /* transpired during pixel processing */
105284 };
105285
105286 #define NR_USB_REQUEST_I2C_SUB_IO 0x02
105287 diff --git a/include/video/uvesafb.h b/include/video/uvesafb.h
105288 index 30f5362..8ed8ac9 100644
105289 --- a/include/video/uvesafb.h
105290 +++ b/include/video/uvesafb.h
105291 @@ -122,6 +122,7 @@ struct uvesafb_par {
105292 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
105293 u8 pmi_setpal; /* PMI for palette changes */
105294 u16 *pmi_base; /* protected mode interface location */
105295 + u8 *pmi_code; /* protected mode code location */
105296 void *pmi_start;
105297 void *pmi_pal;
105298 u8 *vbe_state_orig; /*
105299 diff --git a/init/Kconfig b/init/Kconfig
105300 index af09b4f..5ee6e6a 100644
105301 --- a/init/Kconfig
105302 +++ b/init/Kconfig
105303 @@ -642,6 +642,7 @@ config RCU_FAST_NO_HZ
105304 config TREE_RCU_TRACE
105305 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
105306 select DEBUG_FS
105307 + depends on !GRKERNSEC_KMEM
105308 help
105309 This option provides tracing for the TREE_RCU and
105310 PREEMPT_RCU implementations, permitting Makefile to
105311 @@ -1139,6 +1140,7 @@ endif # CGROUPS
105312 config CHECKPOINT_RESTORE
105313 bool "Checkpoint/restore support" if EXPERT
105314 select PROC_CHILDREN
105315 + depends on !GRKERNSEC
105316 default n
105317 help
105318 Enables additional kernel features in a sake of checkpoint/restore.
105319 @@ -1664,7 +1666,7 @@ config SLUB_DEBUG
105320
105321 config COMPAT_BRK
105322 bool "Disable heap randomization"
105323 - default y
105324 + default n
105325 help
105326 Randomizing heap placement makes heap exploits harder, but it
105327 also breaks ancient binaries (including anything libc5 based).
105328 @@ -1994,7 +1996,7 @@ config INIT_ALL_POSSIBLE
105329 config STOP_MACHINE
105330 bool
105331 default y
105332 - depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
105333 + depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU || GRKERNSEC
105334 help
105335 Need stop_machine() primitive.
105336
105337 diff --git a/init/Makefile b/init/Makefile
105338 index 7bc47ee..6da2dc7 100644
105339 --- a/init/Makefile
105340 +++ b/init/Makefile
105341 @@ -2,6 +2,9 @@
105342 # Makefile for the linux kernel.
105343 #
105344
105345 +ccflags-y := $(GCC_PLUGINS_CFLAGS)
105346 +asflags-y := $(GCC_PLUGINS_AFLAGS)
105347 +
105348 obj-y := main.o version.o mounts.o
105349 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
105350 obj-y += noinitramfs.o
105351 diff --git a/init/do_mounts.c b/init/do_mounts.c
105352 index dea5de9..bbdbb5f 100644
105353 --- a/init/do_mounts.c
105354 +++ b/init/do_mounts.c
105355 @@ -363,11 +363,11 @@ static void __init get_fs_names(char *page)
105356 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
105357 {
105358 struct super_block *s;
105359 - int err = sys_mount(name, "/root", fs, flags, data);
105360 + int err = sys_mount((char __force_user *)name, (char __force_user *)"/root", (char __force_user *)fs, flags, (void __force_user *)data);
105361 if (err)
105362 return err;
105363
105364 - sys_chdir("/root");
105365 + sys_chdir((const char __force_user *)"/root");
105366 s = current->fs->pwd.dentry->d_sb;
105367 ROOT_DEV = s->s_dev;
105368 printk(KERN_INFO
105369 @@ -490,18 +490,18 @@ void __init change_floppy(char *fmt, ...)
105370 va_start(args, fmt);
105371 vsprintf(buf, fmt, args);
105372 va_end(args);
105373 - fd = sys_open("/dev/root", O_RDWR | O_NDELAY, 0);
105374 + fd = sys_open((char __user *)"/dev/root", O_RDWR | O_NDELAY, 0);
105375 if (fd >= 0) {
105376 sys_ioctl(fd, FDEJECT, 0);
105377 sys_close(fd);
105378 }
105379 printk(KERN_NOTICE "VFS: Insert %s and press ENTER\n", buf);
105380 - fd = sys_open("/dev/console", O_RDWR, 0);
105381 + fd = sys_open((__force const char __user *)"/dev/console", O_RDWR, 0);
105382 if (fd >= 0) {
105383 sys_ioctl(fd, TCGETS, (long)&termios);
105384 termios.c_lflag &= ~ICANON;
105385 sys_ioctl(fd, TCSETSF, (long)&termios);
105386 - sys_read(fd, &c, 1);
105387 + sys_read(fd, (char __user *)&c, 1);
105388 termios.c_lflag |= ICANON;
105389 sys_ioctl(fd, TCSETSF, (long)&termios);
105390 sys_close(fd);
105391 @@ -600,8 +600,8 @@ void __init prepare_namespace(void)
105392 mount_root();
105393 out:
105394 devtmpfs_mount("dev");
105395 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
105396 - sys_chroot(".");
105397 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
105398 + sys_chroot((const char __force_user *)".");
105399 }
105400
105401 static bool is_tmpfs;
105402 diff --git a/init/do_mounts.h b/init/do_mounts.h
105403 index f5b978a..69dbfe8 100644
105404 --- a/init/do_mounts.h
105405 +++ b/init/do_mounts.h
105406 @@ -15,15 +15,15 @@ extern int root_mountflags;
105407
105408 static inline int create_dev(char *name, dev_t dev)
105409 {
105410 - sys_unlink(name);
105411 - return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
105412 + sys_unlink((char __force_user *)name);
105413 + return sys_mknod((char __force_user *)name, S_IFBLK|0600, new_encode_dev(dev));
105414 }
105415
105416 #if BITS_PER_LONG == 32
105417 static inline u32 bstat(char *name)
105418 {
105419 struct stat64 stat;
105420 - if (sys_stat64(name, &stat) != 0)
105421 + if (sys_stat64((char __force_user *)name, (struct stat64 __force_user *)&stat) != 0)
105422 return 0;
105423 if (!S_ISBLK(stat.st_mode))
105424 return 0;
105425 @@ -35,7 +35,7 @@ static inline u32 bstat(char *name)
105426 static inline u32 bstat(char *name)
105427 {
105428 struct stat stat;
105429 - if (sys_newstat(name, &stat) != 0)
105430 + if (sys_newstat((const char __force_user *)name, (struct stat __force_user *)&stat) != 0)
105431 return 0;
105432 if (!S_ISBLK(stat.st_mode))
105433 return 0;
105434 diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
105435 index 3e0878e..8a9d7a0 100644
105436 --- a/init/do_mounts_initrd.c
105437 +++ b/init/do_mounts_initrd.c
105438 @@ -37,13 +37,13 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
105439 {
105440 sys_unshare(CLONE_FS | CLONE_FILES);
105441 /* stdin/stdout/stderr for /linuxrc */
105442 - sys_open("/dev/console", O_RDWR, 0);
105443 + sys_open((const char __force_user *)"/dev/console", O_RDWR, 0);
105444 sys_dup(0);
105445 sys_dup(0);
105446 /* move initrd over / and chdir/chroot in initrd root */
105447 - sys_chdir("/root");
105448 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
105449 - sys_chroot(".");
105450 + sys_chdir((const char __force_user *)"/root");
105451 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
105452 + sys_chroot((const char __force_user *)".");
105453 sys_setsid();
105454 return 0;
105455 }
105456 @@ -59,8 +59,8 @@ static void __init handle_initrd(void)
105457 create_dev("/dev/root.old", Root_RAM0);
105458 /* mount initrd on rootfs' /root */
105459 mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
105460 - sys_mkdir("/old", 0700);
105461 - sys_chdir("/old");
105462 + sys_mkdir((const char __force_user *)"/old", 0700);
105463 + sys_chdir((const char __force_user *)"/old");
105464
105465 /* try loading default modules from initrd */
105466 load_default_modules();
105467 @@ -80,31 +80,31 @@ static void __init handle_initrd(void)
105468 current->flags &= ~PF_FREEZER_SKIP;
105469
105470 /* move initrd to rootfs' /old */
105471 - sys_mount("..", ".", NULL, MS_MOVE, NULL);
105472 + sys_mount((char __force_user *)"..", (char __force_user *)".", NULL, MS_MOVE, NULL);
105473 /* switch root and cwd back to / of rootfs */
105474 - sys_chroot("..");
105475 + sys_chroot((const char __force_user *)"..");
105476
105477 if (new_decode_dev(real_root_dev) == Root_RAM0) {
105478 - sys_chdir("/old");
105479 + sys_chdir((const char __force_user *)"/old");
105480 return;
105481 }
105482
105483 - sys_chdir("/");
105484 + sys_chdir((const char __force_user *)"/");
105485 ROOT_DEV = new_decode_dev(real_root_dev);
105486 mount_root();
105487
105488 printk(KERN_NOTICE "Trying to move old root to /initrd ... ");
105489 - error = sys_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);
105490 + error = sys_mount((char __force_user *)"/old", (char __force_user *)"/root/initrd", NULL, MS_MOVE, NULL);
105491 if (!error)
105492 printk("okay\n");
105493 else {
105494 - int fd = sys_open("/dev/root.old", O_RDWR, 0);
105495 + int fd = sys_open((const char __force_user *)"/dev/root.old", O_RDWR, 0);
105496 if (error == -ENOENT)
105497 printk("/initrd does not exist. Ignored.\n");
105498 else
105499 printk("failed\n");
105500 printk(KERN_NOTICE "Unmounting old root\n");
105501 - sys_umount("/old", MNT_DETACH);
105502 + sys_umount((char __force_user *)"/old", MNT_DETACH);
105503 printk(KERN_NOTICE "Trying to free ramdisk memory ... ");
105504 if (fd < 0) {
105505 error = fd;
105506 @@ -127,11 +127,11 @@ int __init initrd_load(void)
105507 * mounted in the normal path.
105508 */
105509 if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
105510 - sys_unlink("/initrd.image");
105511 + sys_unlink((const char __force_user *)"/initrd.image");
105512 handle_initrd();
105513 return 1;
105514 }
105515 }
105516 - sys_unlink("/initrd.image");
105517 + sys_unlink((const char __force_user *)"/initrd.image");
105518 return 0;
105519 }
105520 diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
105521 index 8cb6db5..d729f50 100644
105522 --- a/init/do_mounts_md.c
105523 +++ b/init/do_mounts_md.c
105524 @@ -180,7 +180,7 @@ static void __init md_setup_drive(void)
105525 partitioned ? "_d" : "", minor,
105526 md_setup_args[ent].device_names);
105527
105528 - fd = sys_open(name, 0, 0);
105529 + fd = sys_open((char __force_user *)name, 0, 0);
105530 if (fd < 0) {
105531 printk(KERN_ERR "md: open failed - cannot start "
105532 "array %s\n", name);
105533 @@ -243,7 +243,7 @@ static void __init md_setup_drive(void)
105534 * array without it
105535 */
105536 sys_close(fd);
105537 - fd = sys_open(name, 0, 0);
105538 + fd = sys_open((char __force_user *)name, 0, 0);
105539 sys_ioctl(fd, BLKRRPART, 0);
105540 }
105541 sys_close(fd);
105542 @@ -293,7 +293,7 @@ static void __init autodetect_raid(void)
105543
105544 wait_for_device_probe();
105545
105546 - fd = sys_open("/dev/md0", 0, 0);
105547 + fd = sys_open((const char __force_user *) "/dev/md0", 0, 0);
105548 if (fd >= 0) {
105549 sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
105550 sys_close(fd);
105551 diff --git a/init/init_task.c b/init/init_task.c
105552 index ba0a7f36..2bcf1d5 100644
105553 --- a/init/init_task.c
105554 +++ b/init/init_task.c
105555 @@ -22,5 +22,9 @@ EXPORT_SYMBOL(init_task);
105556 * Initial thread structure. Alignment of this is handled by a special
105557 * linker map entry.
105558 */
105559 +#ifdef CONFIG_X86
105560 +union thread_union init_thread_union __init_task_data;
105561 +#else
105562 union thread_union init_thread_union __init_task_data =
105563 { INIT_THREAD_INFO(init_task) };
105564 +#endif
105565 diff --git a/init/initramfs.c b/init/initramfs.c
105566 index ad1bd77..dca2c1b 100644
105567 --- a/init/initramfs.c
105568 +++ b/init/initramfs.c
105569 @@ -25,7 +25,7 @@ static ssize_t __init xwrite(int fd, const char *p, size_t count)
105570
105571 /* sys_write only can write MAX_RW_COUNT aka 2G-4K bytes at most */
105572 while (count) {
105573 - ssize_t rv = sys_write(fd, p, count);
105574 + ssize_t rv = sys_write(fd, (char __force_user *)p, count);
105575
105576 if (rv < 0) {
105577 if (rv == -EINTR || rv == -EAGAIN)
105578 @@ -107,7 +107,7 @@ static void __init free_hash(void)
105579 }
105580 }
105581
105582 -static long __init do_utime(char *filename, time_t mtime)
105583 +static long __init do_utime(char __force_user *filename, time_t mtime)
105584 {
105585 struct timespec t[2];
105586
105587 @@ -142,7 +142,7 @@ static void __init dir_utime(void)
105588 struct dir_entry *de, *tmp;
105589 list_for_each_entry_safe(de, tmp, &dir_list, list) {
105590 list_del(&de->list);
105591 - do_utime(de->name, de->mtime);
105592 + do_utime((char __force_user *)de->name, de->mtime);
105593 kfree(de->name);
105594 kfree(de);
105595 }
105596 @@ -304,7 +304,7 @@ static int __init maybe_link(void)
105597 if (nlink >= 2) {
105598 char *old = find_link(major, minor, ino, mode, collected);
105599 if (old)
105600 - return (sys_link(old, collected) < 0) ? -1 : 1;
105601 + return (sys_link((char __force_user *)old, (char __force_user *)collected) < 0) ? -1 : 1;
105602 }
105603 return 0;
105604 }
105605 @@ -313,11 +313,11 @@ static void __init clean_path(char *path, umode_t fmode)
105606 {
105607 struct stat st;
105608
105609 - if (!sys_newlstat(path, &st) && (st.st_mode ^ fmode) & S_IFMT) {
105610 + if (!sys_newlstat((char __force_user *)path, (struct stat __force_user *)&st) && (st.st_mode ^ fmode) & S_IFMT) {
105611 if (S_ISDIR(st.st_mode))
105612 - sys_rmdir(path);
105613 + sys_rmdir((char __force_user *)path);
105614 else
105615 - sys_unlink(path);
105616 + sys_unlink((char __force_user *)path);
105617 }
105618 }
105619
105620 @@ -338,7 +338,7 @@ static int __init do_name(void)
105621 int openflags = O_WRONLY|O_CREAT;
105622 if (ml != 1)
105623 openflags |= O_TRUNC;
105624 - wfd = sys_open(collected, openflags, mode);
105625 + wfd = sys_open((char __force_user *)collected, openflags, mode);
105626
105627 if (wfd >= 0) {
105628 sys_fchown(wfd, uid, gid);
105629 @@ -350,17 +350,17 @@ static int __init do_name(void)
105630 }
105631 }
105632 } else if (S_ISDIR(mode)) {
105633 - sys_mkdir(collected, mode);
105634 - sys_chown(collected, uid, gid);
105635 - sys_chmod(collected, mode);
105636 + sys_mkdir((char __force_user *)collected, mode);
105637 + sys_chown((char __force_user *)collected, uid, gid);
105638 + sys_chmod((char __force_user *)collected, mode);
105639 dir_add(collected, mtime);
105640 } else if (S_ISBLK(mode) || S_ISCHR(mode) ||
105641 S_ISFIFO(mode) || S_ISSOCK(mode)) {
105642 if (maybe_link() == 0) {
105643 - sys_mknod(collected, mode, rdev);
105644 - sys_chown(collected, uid, gid);
105645 - sys_chmod(collected, mode);
105646 - do_utime(collected, mtime);
105647 + sys_mknod((char __force_user *)collected, mode, rdev);
105648 + sys_chown((char __force_user *)collected, uid, gid);
105649 + sys_chmod((char __force_user *)collected, mode);
105650 + do_utime((char __force_user *)collected, mtime);
105651 }
105652 }
105653 return 0;
105654 @@ -372,7 +372,7 @@ static int __init do_copy(void)
105655 if (xwrite(wfd, victim, body_len) != body_len)
105656 error("write error");
105657 sys_close(wfd);
105658 - do_utime(vcollected, mtime);
105659 + do_utime((char __force_user *)vcollected, mtime);
105660 kfree(vcollected);
105661 eat(body_len);
105662 state = SkipIt;
105663 @@ -390,9 +390,9 @@ static int __init do_symlink(void)
105664 {
105665 collected[N_ALIGN(name_len) + body_len] = '\0';
105666 clean_path(collected, 0);
105667 - sys_symlink(collected + N_ALIGN(name_len), collected);
105668 - sys_lchown(collected, uid, gid);
105669 - do_utime(collected, mtime);
105670 + sys_symlink((char __force_user *)collected + N_ALIGN(name_len), (char __force_user *)collected);
105671 + sys_lchown((char __force_user *)collected, uid, gid);
105672 + do_utime((char __force_user *)collected, mtime);
105673 state = SkipIt;
105674 next_state = Reset;
105675 return 0;
105676 diff --git a/init/main.c b/init/main.c
105677 index 5650655..937d1b1 100644
105678 --- a/init/main.c
105679 +++ b/init/main.c
105680 @@ -97,6 +97,8 @@ extern void radix_tree_init(void);
105681 static inline void mark_rodata_ro(void) { }
105682 #endif
105683
105684 +extern void grsecurity_init(void);
105685 +
105686 /*
105687 * Debug helper: via this flag we know that we are in 'early bootup code'
105688 * where only the boot processor is running with IRQ disabled. This means
105689 @@ -158,6 +160,37 @@ static int __init set_reset_devices(char *str)
105690
105691 __setup("reset_devices", set_reset_devices);
105692
105693 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
105694 +kgid_t grsec_proc_gid = KGIDT_INIT(CONFIG_GRKERNSEC_PROC_GID);
105695 +static int __init setup_grsec_proc_gid(char *str)
105696 +{
105697 + grsec_proc_gid = KGIDT_INIT(simple_strtol(str, NULL, 0));
105698 + return 1;
105699 +}
105700 +__setup("grsec_proc_gid=", setup_grsec_proc_gid);
105701 +#endif
105702 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
105703 +int grsec_enable_sysfs_restrict = 1;
105704 +static int __init setup_grsec_sysfs_restrict(char *str)
105705 +{
105706 + if (!simple_strtol(str, NULL, 0))
105707 + grsec_enable_sysfs_restrict = 0;
105708 + return 1;
105709 +}
105710 +__setup("grsec_sysfs_restrict", setup_grsec_sysfs_restrict);
105711 +#endif
105712 +
105713 +#ifdef CONFIG_PAX_SOFTMODE
105714 +int pax_softmode;
105715 +
105716 +static int __init setup_pax_softmode(char *str)
105717 +{
105718 + get_option(&str, &pax_softmode);
105719 + return 1;
105720 +}
105721 +__setup("pax_softmode=", setup_pax_softmode);
105722 +#endif
105723 +
105724 static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
105725 const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
105726 static const char *panic_later, *panic_param;
105727 @@ -731,7 +764,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
105728 struct blacklist_entry *entry;
105729 char *fn_name;
105730
105731 - fn_name = kasprintf(GFP_KERNEL, "%pf", fn);
105732 + fn_name = kasprintf(GFP_KERNEL, "%pX", fn);
105733 if (!fn_name)
105734 return false;
105735
105736 @@ -783,7 +816,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
105737 {
105738 int count = preempt_count();
105739 int ret;
105740 - char msgbuf[64];
105741 + const char *msg1 = "", *msg2 = "";
105742
105743 if (initcall_blacklisted(fn))
105744 return -EPERM;
105745 @@ -793,18 +826,17 @@ int __init_or_module do_one_initcall(initcall_t fn)
105746 else
105747 ret = fn();
105748
105749 - msgbuf[0] = 0;
105750 -
105751 if (preempt_count() != count) {
105752 - sprintf(msgbuf, "preemption imbalance ");
105753 + msg1 = " preemption imbalance";
105754 preempt_count_set(count);
105755 }
105756 if (irqs_disabled()) {
105757 - strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
105758 + msg2 = " disabled interrupts";
105759 local_irq_enable();
105760 }
105761 - WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf);
105762 + WARN(*msg1 || *msg2, "initcall %pF returned with%s%s\n", fn, msg1, msg2);
105763
105764 + add_latent_entropy();
105765 return ret;
105766 }
105767
105768 @@ -910,8 +942,8 @@ static int run_init_process(const char *init_filename)
105769 {
105770 argv_init[0] = init_filename;
105771 return do_execve(getname_kernel(init_filename),
105772 - (const char __user *const __user *)argv_init,
105773 - (const char __user *const __user *)envp_init);
105774 + (const char __user *const __force_user *)argv_init,
105775 + (const char __user *const __force_user *)envp_init);
105776 }
105777
105778 static int try_to_run_init_process(const char *init_filename)
105779 @@ -928,6 +960,10 @@ static int try_to_run_init_process(const char *init_filename)
105780 return ret;
105781 }
105782
105783 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
105784 +extern int gr_init_ran;
105785 +#endif
105786 +
105787 static noinline void __init kernel_init_freeable(void);
105788
105789 static int __ref kernel_init(void *unused)
105790 @@ -952,6 +988,11 @@ static int __ref kernel_init(void *unused)
105791 ramdisk_execute_command, ret);
105792 }
105793
105794 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
105795 + /* if no initrd was used, be extra sure we enforce chroot restrictions */
105796 + gr_init_ran = 1;
105797 +#endif
105798 +
105799 /*
105800 * We try each of these until one succeeds.
105801 *
105802 @@ -1009,7 +1050,7 @@ static noinline void __init kernel_init_freeable(void)
105803 do_basic_setup();
105804
105805 /* Open the /dev/console on the rootfs, this should never fail */
105806 - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
105807 + if (sys_open((const char __force_user *) "/dev/console", O_RDWR, 0) < 0)
105808 pr_err("Warning: unable to open an initial console.\n");
105809
105810 (void) sys_dup(0);
105811 @@ -1022,11 +1063,13 @@ static noinline void __init kernel_init_freeable(void)
105812 if (!ramdisk_execute_command)
105813 ramdisk_execute_command = "/init";
105814
105815 - if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
105816 + if (sys_access((const char __force_user *) ramdisk_execute_command, 0) != 0) {
105817 ramdisk_execute_command = NULL;
105818 prepare_namespace();
105819 }
105820
105821 + grsecurity_init();
105822 +
105823 /*
105824 * Ok, we have completed the initial bootup, and
105825 * we're essentially up and running. Get rid of the
105826 diff --git a/ipc/compat.c b/ipc/compat.c
105827 index 9b3c85f..5266b0f 100644
105828 --- a/ipc/compat.c
105829 +++ b/ipc/compat.c
105830 @@ -396,7 +396,7 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
105831 COMPAT_SHMLBA);
105832 if (err < 0)
105833 return err;
105834 - return put_user(raddr, (compat_ulong_t *)compat_ptr(third));
105835 + return put_user(raddr, (compat_ulong_t __user *)compat_ptr(third));
105836 }
105837 case SHMDT:
105838 return sys_shmdt(compat_ptr(ptr));
105839 @@ -747,7 +747,7 @@ COMPAT_SYSCALL_DEFINE3(shmctl, int, first, int, second, void __user *, uptr)
105840 }
105841
105842 COMPAT_SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsems,
105843 - unsigned, nsops,
105844 + compat_long_t, nsops,
105845 const struct compat_timespec __user *, timeout)
105846 {
105847 struct timespec __user *ts64;
105848 diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
105849 index 8ad93c2..efd80f8 100644
105850 --- a/ipc/ipc_sysctl.c
105851 +++ b/ipc/ipc_sysctl.c
105852 @@ -30,7 +30,7 @@ static void *get_ipc(struct ctl_table *table)
105853 static int proc_ipc_dointvec(struct ctl_table *table, int write,
105854 void __user *buffer, size_t *lenp, loff_t *ppos)
105855 {
105856 - struct ctl_table ipc_table;
105857 + ctl_table_no_const ipc_table;
105858
105859 memcpy(&ipc_table, table, sizeof(ipc_table));
105860 ipc_table.data = get_ipc(table);
105861 @@ -41,7 +41,7 @@ static int proc_ipc_dointvec(struct ctl_table *table, int write,
105862 static int proc_ipc_dointvec_minmax(struct ctl_table *table, int write,
105863 void __user *buffer, size_t *lenp, loff_t *ppos)
105864 {
105865 - struct ctl_table ipc_table;
105866 + ctl_table_no_const ipc_table;
105867
105868 memcpy(&ipc_table, table, sizeof(ipc_table));
105869 ipc_table.data = get_ipc(table);
105870 @@ -65,7 +65,7 @@ static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write,
105871 static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
105872 void __user *buffer, size_t *lenp, loff_t *ppos)
105873 {
105874 - struct ctl_table ipc_table;
105875 + ctl_table_no_const ipc_table;
105876 memcpy(&ipc_table, table, sizeof(ipc_table));
105877 ipc_table.data = get_ipc(table);
105878
105879 @@ -76,7 +76,7 @@ static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
105880 static int proc_ipc_auto_msgmni(struct ctl_table *table, int write,
105881 void __user *buffer, size_t *lenp, loff_t *ppos)
105882 {
105883 - struct ctl_table ipc_table;
105884 + ctl_table_no_const ipc_table;
105885 int dummy = 0;
105886
105887 memcpy(&ipc_table, table, sizeof(ipc_table));
105888 diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c
105889 index 68d4e95..1477ded 100644
105890 --- a/ipc/mq_sysctl.c
105891 +++ b/ipc/mq_sysctl.c
105892 @@ -25,7 +25,7 @@ static void *get_mq(struct ctl_table *table)
105893 static int proc_mq_dointvec(struct ctl_table *table, int write,
105894 void __user *buffer, size_t *lenp, loff_t *ppos)
105895 {
105896 - struct ctl_table mq_table;
105897 + ctl_table_no_const mq_table;
105898 memcpy(&mq_table, table, sizeof(mq_table));
105899 mq_table.data = get_mq(table);
105900
105901 @@ -35,7 +35,7 @@ static int proc_mq_dointvec(struct ctl_table *table, int write,
105902 static int proc_mq_dointvec_minmax(struct ctl_table *table, int write,
105903 void __user *buffer, size_t *lenp, loff_t *ppos)
105904 {
105905 - struct ctl_table mq_table;
105906 + ctl_table_no_const mq_table;
105907 memcpy(&mq_table, table, sizeof(mq_table));
105908 mq_table.data = get_mq(table);
105909
105910 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
105911 index 161a180..be31d93 100644
105912 --- a/ipc/mqueue.c
105913 +++ b/ipc/mqueue.c
105914 @@ -274,6 +274,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
105915 mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
105916 info->attr.mq_msgsize);
105917
105918 + gr_learn_resource(current, RLIMIT_MSGQUEUE, u->mq_bytes + mq_bytes, 1);
105919 spin_lock(&mq_lock);
105920 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
105921 u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
105922 diff --git a/ipc/msg.c b/ipc/msg.c
105923 index 1471db9..dbdcf7f 100644
105924 --- a/ipc/msg.c
105925 +++ b/ipc/msg.c
105926 @@ -1041,7 +1041,8 @@ void msg_exit_ns(struct ipc_namespace *ns)
105927 static int sysvipc_msg_proc_show(struct seq_file *s, void *it)
105928 {
105929 struct user_namespace *user_ns = seq_user_ns(s);
105930 - struct msg_queue *msq = it;
105931 + struct kern_ipc_perm *perm = it;
105932 + struct msg_queue *msq = container_of(perm, struct msg_queue, q_perm);
105933
105934 seq_printf(s,
105935 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n",
105936 diff --git a/ipc/sem.c b/ipc/sem.c
105937 index b471e5a..cb0c603 100644
105938 --- a/ipc/sem.c
105939 +++ b/ipc/sem.c
105940 @@ -1790,7 +1790,7 @@ static int get_queue_result(struct sem_queue *q)
105941 }
105942
105943 SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
105944 - unsigned, nsops, const struct timespec __user *, timeout)
105945 + long, nsops, const struct timespec __user *, timeout)
105946 {
105947 int error = -EINVAL;
105948 struct sem_array *sma;
105949 @@ -2025,7 +2025,7 @@ out_free:
105950 }
105951
105952 SYSCALL_DEFINE3(semop, int, semid, struct sembuf __user *, tsops,
105953 - unsigned, nsops)
105954 + long, nsops)
105955 {
105956 return sys_semtimedop(semid, tsops, nsops, NULL);
105957 }
105958 @@ -2180,7 +2180,8 @@ void exit_sem(struct task_struct *tsk)
105959 static int sysvipc_sem_proc_show(struct seq_file *s, void *it)
105960 {
105961 struct user_namespace *user_ns = seq_user_ns(s);
105962 - struct sem_array *sma = it;
105963 + struct kern_ipc_perm *perm = it;
105964 + struct sem_array *sma = container_of(perm, struct sem_array, sem_perm);
105965 time_t sem_otime;
105966
105967 /*
105968 diff --git a/ipc/shm.c b/ipc/shm.c
105969 index 0e61fd4..38b0991 100644
105970 --- a/ipc/shm.c
105971 +++ b/ipc/shm.c
105972 @@ -72,6 +72,14 @@ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp);
105973 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
105974 #endif
105975
105976 +#ifdef CONFIG_GRKERNSEC
105977 +extern int gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
105978 + const u64 shm_createtime, const kuid_t cuid,
105979 + const int shmid);
105980 +extern int gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
105981 + const u64 shm_createtime);
105982 +#endif
105983 +
105984 void shm_init_ns(struct ipc_namespace *ns)
105985 {
105986 ns->shm_ctlmax = SHMMAX;
105987 @@ -555,6 +563,9 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
105988 shp->shm_lprid = 0;
105989 shp->shm_atim = shp->shm_dtim = 0;
105990 shp->shm_ctim = get_seconds();
105991 +#ifdef CONFIG_GRKERNSEC
105992 + shp->shm_createtime = ktime_get_ns();
105993 +#endif
105994 shp->shm_segsz = size;
105995 shp->shm_nattch = 0;
105996 shp->shm_file = file;
105997 @@ -1098,6 +1109,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
105998 f_mode = FMODE_READ | FMODE_WRITE;
105999 }
106000 if (shmflg & SHM_EXEC) {
106001 +
106002 +#ifdef CONFIG_PAX_MPROTECT
106003 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
106004 + goto out;
106005 +#endif
106006 +
106007 prot |= PROT_EXEC;
106008 acc_mode |= S_IXUGO;
106009 }
106010 @@ -1122,6 +1139,15 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
106011 if (err)
106012 goto out_unlock;
106013
106014 +#ifdef CONFIG_GRKERNSEC
106015 + if (!gr_handle_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime,
106016 + shp->shm_perm.cuid, shmid) ||
106017 + !gr_chroot_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime)) {
106018 + err = -EACCES;
106019 + goto out_unlock;
106020 + }
106021 +#endif
106022 +
106023 ipc_lock_object(&shp->shm_perm);
106024
106025 /* check if shm_destroy() is tearing down shp */
106026 @@ -1134,6 +1160,9 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
106027 path = shp->shm_file->f_path;
106028 path_get(&path);
106029 shp->shm_nattch++;
106030 +#ifdef CONFIG_GRKERNSEC
106031 + shp->shm_lapid = current->pid;
106032 +#endif
106033 size = i_size_read(d_inode(path.dentry));
106034 ipc_unlock_object(&shp->shm_perm);
106035 rcu_read_unlock();
106036 @@ -1332,7 +1361,8 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
106037 static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
106038 {
106039 struct user_namespace *user_ns = seq_user_ns(s);
106040 - struct shmid_kernel *shp = it;
106041 + struct kern_ipc_perm *perm = it;
106042 + struct shmid_kernel *shp = container_of(perm, struct shmid_kernel, shm_perm);
106043 unsigned long rss = 0, swp = 0;
106044
106045 shm_add_rss_swap(shp, &rss, &swp);
106046 diff --git a/ipc/util.c b/ipc/util.c
106047 index 0f401d9..049b0ff 100644
106048 --- a/ipc/util.c
106049 +++ b/ipc/util.c
106050 @@ -71,6 +71,8 @@ struct ipc_proc_iface {
106051 int (*show)(struct seq_file *, void *);
106052 };
106053
106054 +extern int gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode);
106055 +
106056 /**
106057 * ipc_init - initialise ipc subsystem
106058 *
106059 @@ -494,6 +496,10 @@ int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag)
106060 granted_mode >>= 6;
106061 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid))
106062 granted_mode >>= 3;
106063 +
106064 + if (!gr_ipc_permitted(ns, ipcp, requested_mode, granted_mode))
106065 + return -1;
106066 +
106067 /* is there some bit set in requested_mode but not in granted_mode? */
106068 if ((requested_mode & ~granted_mode & 0007) &&
106069 !ns_capable(ns->user_ns, CAP_IPC_OWNER))
106070 diff --git a/kernel/audit.c b/kernel/audit.c
106071 index f9e6065..3fcb6ab 100644
106072 --- a/kernel/audit.c
106073 +++ b/kernel/audit.c
106074 @@ -124,7 +124,7 @@ u32 audit_sig_sid = 0;
106075 3) suppressed due to audit_rate_limit
106076 4) suppressed due to audit_backlog_limit
106077 */
106078 -static atomic_t audit_lost = ATOMIC_INIT(0);
106079 +static atomic_unchecked_t audit_lost = ATOMIC_INIT(0);
106080
106081 /* The netlink socket. */
106082 static struct sock *audit_sock;
106083 @@ -258,7 +258,7 @@ void audit_log_lost(const char *message)
106084 unsigned long now;
106085 int print;
106086
106087 - atomic_inc(&audit_lost);
106088 + atomic_inc_unchecked(&audit_lost);
106089
106090 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
106091
106092 @@ -275,7 +275,7 @@ void audit_log_lost(const char *message)
106093 if (print) {
106094 if (printk_ratelimit())
106095 pr_warn("audit_lost=%u audit_rate_limit=%u audit_backlog_limit=%u\n",
106096 - atomic_read(&audit_lost),
106097 + atomic_read_unchecked(&audit_lost),
106098 audit_rate_limit,
106099 audit_backlog_limit);
106100 audit_panic(message);
106101 @@ -833,7 +833,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
106102 s.pid = audit_pid;
106103 s.rate_limit = audit_rate_limit;
106104 s.backlog_limit = audit_backlog_limit;
106105 - s.lost = atomic_read(&audit_lost);
106106 + s.lost = atomic_read_unchecked(&audit_lost);
106107 s.backlog = skb_queue_len(&audit_skb_queue);
106108 s.feature_bitmap = AUDIT_FEATURE_BITMAP_ALL;
106109 s.backlog_wait_time = audit_backlog_wait_time_master;
106110 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
106111 index e85bdfd..441a638 100644
106112 --- a/kernel/auditsc.c
106113 +++ b/kernel/auditsc.c
106114 @@ -1021,7 +1021,7 @@ static int audit_log_single_execve_arg(struct audit_context *context,
106115 * for strings that are too long, we should not have created
106116 * any.
106117 */
106118 - if (WARN_ON_ONCE(len < 0 || len > MAX_ARG_STRLEN - 1)) {
106119 + if (WARN_ON_ONCE(len > MAX_ARG_STRLEN - 1)) {
106120 send_sig(SIGKILL, current, 0);
106121 return -1;
106122 }
106123 @@ -1952,7 +1952,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
106124 }
106125
106126 /* global counter which is incremented every time something logs in */
106127 -static atomic_t session_id = ATOMIC_INIT(0);
106128 +static atomic_unchecked_t session_id = ATOMIC_INIT(0);
106129
106130 static int audit_set_loginuid_perm(kuid_t loginuid)
106131 {
106132 @@ -2019,7 +2019,7 @@ int audit_set_loginuid(kuid_t loginuid)
106133
106134 /* are we setting or clearing? */
106135 if (uid_valid(loginuid))
106136 - sessionid = (unsigned int)atomic_inc_return(&session_id);
106137 + sessionid = (unsigned int)atomic_inc_return_unchecked(&session_id);
106138
106139 task->sessionid = sessionid;
106140 task->loginuid = loginuid;
106141 diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
106142 index c5bedc8..6ec8715 100644
106143 --- a/kernel/bpf/core.c
106144 +++ b/kernel/bpf/core.c
106145 @@ -145,14 +145,17 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
106146 * random section of illegal instructions.
106147 */
106148 size = round_up(proglen + sizeof(*hdr) + 128, PAGE_SIZE);
106149 - hdr = module_alloc(size);
106150 + hdr = module_alloc_exec(size);
106151 if (hdr == NULL)
106152 return NULL;
106153
106154 /* Fill space with illegal/arch-dep instructions. */
106155 bpf_fill_ill_insns(hdr, size);
106156
106157 + pax_open_kernel();
106158 hdr->pages = size / PAGE_SIZE;
106159 + pax_close_kernel();
106160 +
106161 hole = min_t(unsigned int, size - (proglen + sizeof(*hdr)),
106162 PAGE_SIZE - sizeof(*hdr));
106163 start = (prandom_u32() % hole) & ~(alignment - 1);
106164 @@ -165,7 +168,7 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
106165
106166 void bpf_jit_binary_free(struct bpf_binary_header *hdr)
106167 {
106168 - module_memfree(hdr);
106169 + module_memfree_exec(hdr);
106170 }
106171 #endif /* CONFIG_BPF_JIT */
106172
106173 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
106174 index a1b14d1..7dce5d9 100644
106175 --- a/kernel/bpf/syscall.c
106176 +++ b/kernel/bpf/syscall.c
106177 @@ -592,11 +592,15 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
106178 int err;
106179
106180 /* the syscall is limited to root temporarily. This restriction will be
106181 - * lifted when security audit is clean. Note that eBPF+tracing must have
106182 - * this restriction, since it may pass kernel data to user space
106183 + * lifted by upstream when a half-assed security audit is clean. Note
106184 + * that eBPF+tracing must have this restriction, since it may pass
106185 + * kernel data to user space
106186 */
106187 if (!capable(CAP_SYS_ADMIN))
106188 return -EPERM;
106189 +#ifdef CONFIG_GRKERNSEC
106190 + return -EPERM;
106191 +#endif
106192
106193 if (!access_ok(VERIFY_READ, uattr, 1))
106194 return -EFAULT;
106195 diff --git a/kernel/capability.c b/kernel/capability.c
106196 index 45432b5..988f1e4 100644
106197 --- a/kernel/capability.c
106198 +++ b/kernel/capability.c
106199 @@ -193,6 +193,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
106200 * before modification is attempted and the application
106201 * fails.
106202 */
106203 + if (tocopy > ARRAY_SIZE(kdata))
106204 + return -EFAULT;
106205 +
106206 if (copy_to_user(dataptr, kdata, tocopy
106207 * sizeof(struct __user_cap_data_struct))) {
106208 return -EFAULT;
106209 @@ -298,10 +301,11 @@ bool has_ns_capability(struct task_struct *t,
106210 int ret;
106211
106212 rcu_read_lock();
106213 - ret = security_capable(__task_cred(t), ns, cap);
106214 + ret = security_capable(__task_cred(t), ns, cap) == 0 &&
106215 + gr_task_is_capable(t, __task_cred(t), cap);
106216 rcu_read_unlock();
106217
106218 - return (ret == 0);
106219 + return ret;
106220 }
106221
106222 /**
106223 @@ -338,10 +342,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
106224 int ret;
106225
106226 rcu_read_lock();
106227 - ret = security_capable_noaudit(__task_cred(t), ns, cap);
106228 + ret = security_capable_noaudit(__task_cred(t), ns, cap) == 0 && gr_task_is_capable_nolog(t, cap);
106229 rcu_read_unlock();
106230
106231 - return (ret == 0);
106232 + return ret;
106233 }
106234
106235 /**
106236 @@ -379,7 +383,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
106237 BUG();
106238 }
106239
106240 - if (security_capable(current_cred(), ns, cap) == 0) {
106241 + if (security_capable(current_cred(), ns, cap) == 0 && gr_is_capable(cap)) {
106242 current->flags |= PF_SUPERPRIV;
106243 return true;
106244 }
106245 @@ -387,6 +391,20 @@ bool ns_capable(struct user_namespace *ns, int cap)
106246 }
106247 EXPORT_SYMBOL(ns_capable);
106248
106249 +bool ns_capable_nolog(struct user_namespace *ns, int cap)
106250 +{
106251 + if (unlikely(!cap_valid(cap))) {
106252 + pr_crit("capable_nolog() called with invalid cap=%u\n", cap);
106253 + BUG();
106254 + }
106255 +
106256 + if (security_capable_noaudit(current_cred(), ns, cap) == 0 && gr_is_capable_nolog(cap)) {
106257 + current->flags |= PF_SUPERPRIV;
106258 + return true;
106259 + }
106260 + return false;
106261 +}
106262 +EXPORT_SYMBOL(ns_capable_nolog);
106263
106264 /**
106265 * capable - Determine if the current task has a superior capability in effect
106266 @@ -403,6 +421,13 @@ bool capable(int cap)
106267 return ns_capable(&init_user_ns, cap);
106268 }
106269 EXPORT_SYMBOL(capable);
106270 +
106271 +bool capable_nolog(int cap)
106272 +{
106273 + return ns_capable_nolog(&init_user_ns, cap);
106274 +}
106275 +EXPORT_SYMBOL(capable_nolog);
106276 +
106277 #endif /* CONFIG_MULTIUSER */
106278
106279 /**
106280 @@ -447,3 +472,12 @@ bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
106281 kgid_has_mapping(ns, inode->i_gid);
106282 }
106283 EXPORT_SYMBOL(capable_wrt_inode_uidgid);
106284 +
106285 +bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap)
106286 +{
106287 + struct user_namespace *ns = current_user_ns();
106288 +
106289 + return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid) &&
106290 + kgid_has_mapping(ns, inode->i_gid);
106291 +}
106292 +EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
106293 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
106294 index fe6f855..7dba913 100644
106295 --- a/kernel/cgroup.c
106296 +++ b/kernel/cgroup.c
106297 @@ -5425,6 +5425,9 @@ static void cgroup_release_agent(struct work_struct *work)
106298 if (!pathbuf || !agentbuf)
106299 goto out;
106300
106301 + if (agentbuf[0] == '\0')
106302 + goto out;
106303 +
106304 path = cgroup_path(cgrp, pathbuf, PATH_MAX);
106305 if (!path)
106306 goto out;
106307 @@ -5610,7 +5613,7 @@ static int cgroup_css_links_read(struct seq_file *seq, void *v)
106308 struct task_struct *task;
106309 int count = 0;
106310
106311 - seq_printf(seq, "css_set %p\n", cset);
106312 + seq_printf(seq, "css_set %pK\n", cset);
106313
106314 list_for_each_entry(task, &cset->tasks, cg_list) {
106315 if (count++ > MAX_TASKS_SHOWN_PER_CSS)
106316 diff --git a/kernel/compat.c b/kernel/compat.c
106317 index 333d364..762ec00 100644
106318 --- a/kernel/compat.c
106319 +++ b/kernel/compat.c
106320 @@ -13,6 +13,7 @@
106321
106322 #include <linux/linkage.h>
106323 #include <linux/compat.h>
106324 +#include <linux/module.h>
106325 #include <linux/errno.h>
106326 #include <linux/time.h>
106327 #include <linux/signal.h>
106328 @@ -220,7 +221,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
106329 mm_segment_t oldfs;
106330 long ret;
106331
106332 - restart->nanosleep.rmtp = (struct timespec __user *) &rmt;
106333 + restart->nanosleep.rmtp = (struct timespec __force_user *) &rmt;
106334 oldfs = get_fs();
106335 set_fs(KERNEL_DS);
106336 ret = hrtimer_nanosleep_restart(restart);
106337 @@ -252,7 +253,7 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
106338 oldfs = get_fs();
106339 set_fs(KERNEL_DS);
106340 ret = hrtimer_nanosleep(&tu,
106341 - rmtp ? (struct timespec __user *)&rmt : NULL,
106342 + rmtp ? (struct timespec __force_user *)&rmt : NULL,
106343 HRTIMER_MODE_REL, CLOCK_MONOTONIC);
106344 set_fs(oldfs);
106345
106346 @@ -378,7 +379,7 @@ COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set)
106347 mm_segment_t old_fs = get_fs();
106348
106349 set_fs(KERNEL_DS);
106350 - ret = sys_sigpending((old_sigset_t __user *) &s);
106351 + ret = sys_sigpending((old_sigset_t __force_user *) &s);
106352 set_fs(old_fs);
106353 if (ret == 0)
106354 ret = put_user(s, set);
106355 @@ -468,7 +469,7 @@ COMPAT_SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
106356 mm_segment_t old_fs = get_fs();
106357
106358 set_fs(KERNEL_DS);
106359 - ret = sys_old_getrlimit(resource, (struct rlimit __user *)&r);
106360 + ret = sys_old_getrlimit(resource, (struct rlimit __force_user *)&r);
106361 set_fs(old_fs);
106362
106363 if (!ret) {
106364 @@ -550,8 +551,8 @@ COMPAT_SYSCALL_DEFINE4(wait4,
106365 set_fs (KERNEL_DS);
106366 ret = sys_wait4(pid,
106367 (stat_addr ?
106368 - (unsigned int __user *) &status : NULL),
106369 - options, (struct rusage __user *) &r);
106370 + (unsigned int __force_user *) &status : NULL),
106371 + options, (struct rusage __force_user *) &r);
106372 set_fs (old_fs);
106373
106374 if (ret > 0) {
106375 @@ -577,8 +578,8 @@ COMPAT_SYSCALL_DEFINE5(waitid,
106376 memset(&info, 0, sizeof(info));
106377
106378 set_fs(KERNEL_DS);
106379 - ret = sys_waitid(which, pid, (siginfo_t __user *)&info, options,
106380 - uru ? (struct rusage __user *)&ru : NULL);
106381 + ret = sys_waitid(which, pid, (siginfo_t __force_user *)&info, options,
106382 + uru ? (struct rusage __force_user *)&ru : NULL);
106383 set_fs(old_fs);
106384
106385 if ((ret < 0) || (info.si_signo == 0))
106386 @@ -712,8 +713,8 @@ COMPAT_SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
106387 oldfs = get_fs();
106388 set_fs(KERNEL_DS);
106389 err = sys_timer_settime(timer_id, flags,
106390 - (struct itimerspec __user *) &newts,
106391 - (struct itimerspec __user *) &oldts);
106392 + (struct itimerspec __force_user *) &newts,
106393 + (struct itimerspec __force_user *) &oldts);
106394 set_fs(oldfs);
106395 if (!err && old && put_compat_itimerspec(old, &oldts))
106396 return -EFAULT;
106397 @@ -730,7 +731,7 @@ COMPAT_SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
106398 oldfs = get_fs();
106399 set_fs(KERNEL_DS);
106400 err = sys_timer_gettime(timer_id,
106401 - (struct itimerspec __user *) &ts);
106402 + (struct itimerspec __force_user *) &ts);
106403 set_fs(oldfs);
106404 if (!err && put_compat_itimerspec(setting, &ts))
106405 return -EFAULT;
106406 @@ -749,7 +750,7 @@ COMPAT_SYSCALL_DEFINE2(clock_settime, clockid_t, which_clock,
106407 oldfs = get_fs();
106408 set_fs(KERNEL_DS);
106409 err = sys_clock_settime(which_clock,
106410 - (struct timespec __user *) &ts);
106411 + (struct timespec __force_user *) &ts);
106412 set_fs(oldfs);
106413 return err;
106414 }
106415 @@ -764,7 +765,7 @@ COMPAT_SYSCALL_DEFINE2(clock_gettime, clockid_t, which_clock,
106416 oldfs = get_fs();
106417 set_fs(KERNEL_DS);
106418 err = sys_clock_gettime(which_clock,
106419 - (struct timespec __user *) &ts);
106420 + (struct timespec __force_user *) &ts);
106421 set_fs(oldfs);
106422 if (!err && compat_put_timespec(&ts, tp))
106423 return -EFAULT;
106424 @@ -784,7 +785,7 @@ COMPAT_SYSCALL_DEFINE2(clock_adjtime, clockid_t, which_clock,
106425
106426 oldfs = get_fs();
106427 set_fs(KERNEL_DS);
106428 - ret = sys_clock_adjtime(which_clock, (struct timex __user *) &txc);
106429 + ret = sys_clock_adjtime(which_clock, (struct timex __force_user *) &txc);
106430 set_fs(oldfs);
106431
106432 err = compat_put_timex(utp, &txc);
106433 @@ -804,7 +805,7 @@ COMPAT_SYSCALL_DEFINE2(clock_getres, clockid_t, which_clock,
106434 oldfs = get_fs();
106435 set_fs(KERNEL_DS);
106436 err = sys_clock_getres(which_clock,
106437 - (struct timespec __user *) &ts);
106438 + (struct timespec __force_user *) &ts);
106439 set_fs(oldfs);
106440 if (!err && tp && compat_put_timespec(&ts, tp))
106441 return -EFAULT;
106442 @@ -818,7 +819,7 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
106443 struct timespec tu;
106444 struct compat_timespec __user *rmtp = restart->nanosleep.compat_rmtp;
106445
106446 - restart->nanosleep.rmtp = (struct timespec __user *) &tu;
106447 + restart->nanosleep.rmtp = (struct timespec __force_user *) &tu;
106448 oldfs = get_fs();
106449 set_fs(KERNEL_DS);
106450 err = clock_nanosleep_restart(restart);
106451 @@ -850,8 +851,8 @@ COMPAT_SYSCALL_DEFINE4(clock_nanosleep, clockid_t, which_clock, int, flags,
106452 oldfs = get_fs();
106453 set_fs(KERNEL_DS);
106454 err = sys_clock_nanosleep(which_clock, flags,
106455 - (struct timespec __user *) &in,
106456 - (struct timespec __user *) &out);
106457 + (struct timespec __force_user *) &in,
106458 + (struct timespec __force_user *) &out);
106459 set_fs(oldfs);
106460
106461 if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
106462 @@ -1147,7 +1148,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
106463 mm_segment_t old_fs = get_fs();
106464
106465 set_fs(KERNEL_DS);
106466 - ret = sys_sched_rr_get_interval(pid, (struct timespec __user *)&t);
106467 + ret = sys_sched_rr_get_interval(pid, (struct timespec __force_user *)&t);
106468 set_fs(old_fs);
106469 if (compat_put_timespec(&t, interval))
106470 return -EFAULT;
106471 diff --git a/kernel/configs.c b/kernel/configs.c
106472 index c18b1f1..b9a0132 100644
106473 --- a/kernel/configs.c
106474 +++ b/kernel/configs.c
106475 @@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
106476 struct proc_dir_entry *entry;
106477
106478 /* create the current config file */
106479 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
106480 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_HIDESYM)
106481 + entry = proc_create("config.gz", S_IFREG | S_IRUSR, NULL,
106482 + &ikconfig_file_ops);
106483 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
106484 + entry = proc_create("config.gz", S_IFREG | S_IRUSR | S_IRGRP, NULL,
106485 + &ikconfig_file_ops);
106486 +#endif
106487 +#else
106488 entry = proc_create("config.gz", S_IFREG | S_IRUGO, NULL,
106489 &ikconfig_file_ops);
106490 +#endif
106491 +
106492 if (!entry)
106493 return -ENOMEM;
106494
106495 diff --git a/kernel/cred.c b/kernel/cred.c
106496 index ec1c076..7da8a0e 100644
106497 --- a/kernel/cred.c
106498 +++ b/kernel/cred.c
106499 @@ -167,6 +167,15 @@ void exit_creds(struct task_struct *tsk)
106500 validate_creds(cred);
106501 alter_cred_subscribers(cred, -1);
106502 put_cred(cred);
106503 +
106504 +#ifdef CONFIG_GRKERNSEC_SETXID
106505 + cred = (struct cred *) tsk->delayed_cred;
106506 + if (cred != NULL) {
106507 + tsk->delayed_cred = NULL;
106508 + validate_creds(cred);
106509 + put_cred(cred);
106510 + }
106511 +#endif
106512 }
106513
106514 /**
106515 @@ -414,7 +423,7 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset)
106516 * Always returns 0 thus allowing this function to be tail-called at the end
106517 * of, say, sys_setgid().
106518 */
106519 -int commit_creds(struct cred *new)
106520 +static int __commit_creds(struct cred *new)
106521 {
106522 struct task_struct *task = current;
106523 const struct cred *old = task->real_cred;
106524 @@ -433,6 +442,8 @@ int commit_creds(struct cred *new)
106525
106526 get_cred(new); /* we will require a ref for the subj creds too */
106527
106528 + gr_set_role_label(task, new->uid, new->gid);
106529 +
106530 /* dumpability changes */
106531 if (!uid_eq(old->euid, new->euid) ||
106532 !gid_eq(old->egid, new->egid) ||
106533 @@ -482,6 +493,105 @@ int commit_creds(struct cred *new)
106534 put_cred(old);
106535 return 0;
106536 }
106537 +#ifdef CONFIG_GRKERNSEC_SETXID
106538 +extern int set_user(struct cred *new);
106539 +
106540 +void gr_delayed_cred_worker(void)
106541 +{
106542 + const struct cred *new = current->delayed_cred;
106543 + struct cred *ncred;
106544 +
106545 + current->delayed_cred = NULL;
106546 +
106547 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID) && new != NULL) {
106548 + // from doing get_cred on it when queueing this
106549 + put_cred(new);
106550 + return;
106551 + } else if (new == NULL)
106552 + return;
106553 +
106554 + ncred = prepare_creds();
106555 + if (!ncred)
106556 + goto die;
106557 + // uids
106558 + ncred->uid = new->uid;
106559 + ncred->euid = new->euid;
106560 + ncred->suid = new->suid;
106561 + ncred->fsuid = new->fsuid;
106562 + // gids
106563 + ncred->gid = new->gid;
106564 + ncred->egid = new->egid;
106565 + ncred->sgid = new->sgid;
106566 + ncred->fsgid = new->fsgid;
106567 + // groups
106568 + set_groups(ncred, new->group_info);
106569 + // caps
106570 + ncred->securebits = new->securebits;
106571 + ncred->cap_inheritable = new->cap_inheritable;
106572 + ncred->cap_permitted = new->cap_permitted;
106573 + ncred->cap_effective = new->cap_effective;
106574 + ncred->cap_bset = new->cap_bset;
106575 +
106576 + if (set_user(ncred)) {
106577 + abort_creds(ncred);
106578 + goto die;
106579 + }
106580 +
106581 + // from doing get_cred on it when queueing this
106582 + put_cred(new);
106583 +
106584 + __commit_creds(ncred);
106585 + return;
106586 +die:
106587 + // from doing get_cred on it when queueing this
106588 + put_cred(new);
106589 + do_group_exit(SIGKILL);
106590 +}
106591 +#endif
106592 +
106593 +int commit_creds(struct cred *new)
106594 +{
106595 +#ifdef CONFIG_GRKERNSEC_SETXID
106596 + int ret;
106597 + int schedule_it = 0;
106598 + struct task_struct *t;
106599 + unsigned oldsecurebits = current_cred()->securebits;
106600 +
106601 + /* we won't get called with tasklist_lock held for writing
106602 + and interrupts disabled as the cred struct in that case is
106603 + init_cred
106604 + */
106605 + if (grsec_enable_setxid && !current_is_single_threaded() &&
106606 + uid_eq(current_uid(), GLOBAL_ROOT_UID) &&
106607 + !uid_eq(new->uid, GLOBAL_ROOT_UID)) {
106608 + schedule_it = 1;
106609 + }
106610 + ret = __commit_creds(new);
106611 + if (schedule_it) {
106612 + rcu_read_lock();
106613 + read_lock(&tasklist_lock);
106614 + for (t = next_thread(current); t != current;
106615 + t = next_thread(t)) {
106616 + /* we'll check if the thread has uid 0 in
106617 + * the delayed worker routine
106618 + */
106619 + if (task_securebits(t) == oldsecurebits &&
106620 + t->delayed_cred == NULL) {
106621 + t->delayed_cred = get_cred(new);
106622 + set_tsk_thread_flag(t, TIF_GRSEC_SETXID);
106623 + set_tsk_need_resched(t);
106624 + }
106625 + }
106626 + read_unlock(&tasklist_lock);
106627 + rcu_read_unlock();
106628 + }
106629 +
106630 + return ret;
106631 +#else
106632 + return __commit_creds(new);
106633 +#endif
106634 +}
106635 +
106636 EXPORT_SYMBOL(commit_creds);
106637
106638 /**
106639 diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
106640 index 0874e2e..5b32cc9 100644
106641 --- a/kernel/debug/debug_core.c
106642 +++ b/kernel/debug/debug_core.c
106643 @@ -127,7 +127,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
106644 */
106645 static atomic_t masters_in_kgdb;
106646 static atomic_t slaves_in_kgdb;
106647 -static atomic_t kgdb_break_tasklet_var;
106648 +static atomic_unchecked_t kgdb_break_tasklet_var;
106649 atomic_t kgdb_setting_breakpoint;
106650
106651 struct task_struct *kgdb_usethread;
106652 @@ -137,7 +137,7 @@ int kgdb_single_step;
106653 static pid_t kgdb_sstep_pid;
106654
106655 /* to keep track of the CPU which is doing the single stepping*/
106656 -atomic_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
106657 +atomic_unchecked_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
106658
106659 /*
106660 * If you are debugging a problem where roundup (the collection of
106661 @@ -552,7 +552,7 @@ return_normal:
106662 * kernel will only try for the value of sstep_tries before
106663 * giving up and continuing on.
106664 */
106665 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1 &&
106666 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1 &&
106667 (kgdb_info[cpu].task &&
106668 kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
106669 atomic_set(&kgdb_active, -1);
106670 @@ -654,8 +654,8 @@ cpu_master_loop:
106671 }
106672
106673 kgdb_restore:
106674 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
106675 - int sstep_cpu = atomic_read(&kgdb_cpu_doing_single_step);
106676 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
106677 + int sstep_cpu = atomic_read_unchecked(&kgdb_cpu_doing_single_step);
106678 if (kgdb_info[sstep_cpu].task)
106679 kgdb_sstep_pid = kgdb_info[sstep_cpu].task->pid;
106680 else
106681 @@ -949,18 +949,18 @@ static void kgdb_unregister_callbacks(void)
106682 static void kgdb_tasklet_bpt(unsigned long ing)
106683 {
106684 kgdb_breakpoint();
106685 - atomic_set(&kgdb_break_tasklet_var, 0);
106686 + atomic_set_unchecked(&kgdb_break_tasklet_var, 0);
106687 }
106688
106689 static DECLARE_TASKLET(kgdb_tasklet_breakpoint, kgdb_tasklet_bpt, 0);
106690
106691 void kgdb_schedule_breakpoint(void)
106692 {
106693 - if (atomic_read(&kgdb_break_tasklet_var) ||
106694 + if (atomic_read_unchecked(&kgdb_break_tasklet_var) ||
106695 atomic_read(&kgdb_active) != -1 ||
106696 atomic_read(&kgdb_setting_breakpoint))
106697 return;
106698 - atomic_inc(&kgdb_break_tasklet_var);
106699 + atomic_inc_unchecked(&kgdb_break_tasklet_var);
106700 tasklet_schedule(&kgdb_tasklet_breakpoint);
106701 }
106702 EXPORT_SYMBOL_GPL(kgdb_schedule_breakpoint);
106703 diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
106704 index 41213454..861e178 100644
106705 --- a/kernel/debug/kdb/kdb_main.c
106706 +++ b/kernel/debug/kdb/kdb_main.c
106707 @@ -2021,7 +2021,7 @@ static int kdb_lsmod(int argc, const char **argv)
106708 continue;
106709
106710 kdb_printf("%-20s%8u 0x%p ", mod->name,
106711 - mod->core_size, (void *)mod);
106712 + mod->core_size_rx + mod->core_size_rw, (void *)mod);
106713 #ifdef CONFIG_MODULE_UNLOAD
106714 kdb_printf("%4d ", module_refcount(mod));
106715 #endif
106716 @@ -2031,7 +2031,7 @@ static int kdb_lsmod(int argc, const char **argv)
106717 kdb_printf(" (Loading)");
106718 else
106719 kdb_printf(" (Live)");
106720 - kdb_printf(" 0x%p", mod->module_core);
106721 + kdb_printf(" 0x%p 0x%p", mod->module_core_rx, mod->module_core_rw);
106722
106723 #ifdef CONFIG_MODULE_UNLOAD
106724 {
106725 diff --git a/kernel/events/core.c b/kernel/events/core.c
106726 index e6feb51..470c853 100644
106727 --- a/kernel/events/core.c
106728 +++ b/kernel/events/core.c
106729 @@ -174,8 +174,15 @@ static struct srcu_struct pmus_srcu;
106730 * 0 - disallow raw tracepoint access for unpriv
106731 * 1 - disallow cpu events for unpriv
106732 * 2 - disallow kernel profiling for unpriv
106733 + * 3 - disallow all unpriv perf event use
106734 */
106735 -int sysctl_perf_event_paranoid __read_mostly = 1;
106736 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
106737 +int sysctl_perf_event_legitimately_concerned __read_only = 3;
106738 +#elif defined(CONFIG_GRKERNSEC_HIDESYM)
106739 +int sysctl_perf_event_legitimately_concerned __read_only = 2;
106740 +#else
106741 +int sysctl_perf_event_legitimately_concerned __read_only = 1;
106742 +#endif
106743
106744 /* Minimum for 512 kiB + 1 user control page */
106745 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
106746 @@ -201,7 +208,7 @@ void update_perf_cpu_limits(void)
106747
106748 tmp *= sysctl_perf_cpu_time_max_percent;
106749 do_div(tmp, 100);
106750 - ACCESS_ONCE(perf_sample_allowed_ns) = tmp;
106751 + ACCESS_ONCE_RW(perf_sample_allowed_ns) = tmp;
106752 }
106753
106754 static int perf_rotate_context(struct perf_cpu_context *cpuctx);
106755 @@ -307,7 +314,7 @@ void perf_sample_event_took(u64 sample_len_ns)
106756 }
106757 }
106758
106759 -static atomic64_t perf_event_id;
106760 +static atomic64_unchecked_t perf_event_id;
106761
106762 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
106763 enum event_type_t event_type);
106764 @@ -3753,9 +3760,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
106765 mutex_lock(&event->child_mutex);
106766 total += perf_event_read(event);
106767 *enabled += event->total_time_enabled +
106768 - atomic64_read(&event->child_total_time_enabled);
106769 + atomic64_read_unchecked(&event->child_total_time_enabled);
106770 *running += event->total_time_running +
106771 - atomic64_read(&event->child_total_time_running);
106772 + atomic64_read_unchecked(&event->child_total_time_running);
106773
106774 list_for_each_entry(child, &event->child_list, child_list) {
106775 total += perf_event_read(child);
106776 @@ -4285,10 +4292,10 @@ void perf_event_update_userpage(struct perf_event *event)
106777 userpg->offset -= local64_read(&event->hw.prev_count);
106778
106779 userpg->time_enabled = enabled +
106780 - atomic64_read(&event->child_total_time_enabled);
106781 + atomic64_read_unchecked(&event->child_total_time_enabled);
106782
106783 userpg->time_running = running +
106784 - atomic64_read(&event->child_total_time_running);
106785 + atomic64_read_unchecked(&event->child_total_time_running);
106786
106787 arch_perf_update_userpage(event, userpg, now);
106788
106789 @@ -4963,7 +4970,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
106790
106791 /* Data. */
106792 sp = perf_user_stack_pointer(regs);
106793 - rem = __output_copy_user(handle, (void *) sp, dump_size);
106794 + rem = __output_copy_user(handle, (void __user *) sp, dump_size);
106795 dyn_size = dump_size - rem;
106796
106797 perf_output_skip(handle, rem);
106798 @@ -5054,11 +5061,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
106799 values[n++] = perf_event_count(event);
106800 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
106801 values[n++] = enabled +
106802 - atomic64_read(&event->child_total_time_enabled);
106803 + atomic64_read_unchecked(&event->child_total_time_enabled);
106804 }
106805 if (read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) {
106806 values[n++] = running +
106807 - atomic64_read(&event->child_total_time_running);
106808 + atomic64_read_unchecked(&event->child_total_time_running);
106809 }
106810 if (read_format & PERF_FORMAT_ID)
106811 values[n++] = primary_event_id(event);
106812 @@ -7588,7 +7595,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
106813 event->parent = parent_event;
106814
106815 event->ns = get_pid_ns(task_active_pid_ns(current));
106816 - event->id = atomic64_inc_return(&perf_event_id);
106817 + event->id = atomic64_inc_return_unchecked(&perf_event_id);
106818
106819 event->state = PERF_EVENT_STATE_INACTIVE;
106820
106821 @@ -7947,6 +7954,11 @@ SYSCALL_DEFINE5(perf_event_open,
106822 if (flags & ~PERF_FLAG_ALL)
106823 return -EINVAL;
106824
106825 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
106826 + if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
106827 + return -EACCES;
106828 +#endif
106829 +
106830 err = perf_copy_attr(attr_uptr, &attr);
106831 if (err)
106832 return err;
106833 @@ -8395,10 +8407,10 @@ static void sync_child_event(struct perf_event *child_event,
106834 /*
106835 * Add back the child's count to the parent's count:
106836 */
106837 - atomic64_add(child_val, &parent_event->child_count);
106838 - atomic64_add(child_event->total_time_enabled,
106839 + atomic64_add_unchecked(child_val, &parent_event->child_count);
106840 + atomic64_add_unchecked(child_event->total_time_enabled,
106841 &parent_event->child_total_time_enabled);
106842 - atomic64_add(child_event->total_time_running,
106843 + atomic64_add_unchecked(child_event->total_time_running,
106844 &parent_event->child_total_time_running);
106845
106846 /*
106847 diff --git a/kernel/events/internal.h b/kernel/events/internal.h
106848 index 2bbad9c..056f20c 100644
106849 --- a/kernel/events/internal.h
106850 +++ b/kernel/events/internal.h
106851 @@ -115,10 +115,10 @@ static inline unsigned long perf_aux_size(struct ring_buffer *rb)
106852 return rb->aux_nr_pages << PAGE_SHIFT;
106853 }
106854
106855 -#define DEFINE_OUTPUT_COPY(func_name, memcpy_func) \
106856 +#define DEFINE_OUTPUT_COPY(func_name, memcpy_func, user) \
106857 static inline unsigned long \
106858 func_name(struct perf_output_handle *handle, \
106859 - const void *buf, unsigned long len) \
106860 + const void user *buf, unsigned long len) \
106861 { \
106862 unsigned long size, written; \
106863 \
106864 @@ -151,7 +151,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
106865 return 0;
106866 }
106867
106868 -DEFINE_OUTPUT_COPY(__output_copy, memcpy_common)
106869 +DEFINE_OUTPUT_COPY(__output_copy, memcpy_common, )
106870
106871 static inline unsigned long
106872 memcpy_skip(void *dst, const void *src, unsigned long n)
106873 @@ -159,7 +159,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
106874 return 0;
106875 }
106876
106877 -DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip)
106878 +DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip, )
106879
106880 #ifndef arch_perf_out_copy_user
106881 #define arch_perf_out_copy_user arch_perf_out_copy_user
106882 @@ -177,7 +177,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
106883 }
106884 #endif
106885
106886 -DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user)
106887 +DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user, __user)
106888
106889 /* Callchain handling */
106890 extern struct perf_callchain_entry *
106891 diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
106892 index cb346f2..e4dc317 100644
106893 --- a/kernel/events/uprobes.c
106894 +++ b/kernel/events/uprobes.c
106895 @@ -1670,7 +1670,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
106896 {
106897 struct page *page;
106898 uprobe_opcode_t opcode;
106899 - int result;
106900 + long result;
106901
106902 pagefault_disable();
106903 result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr,
106904 diff --git a/kernel/exit.c b/kernel/exit.c
106905 index 031325e..c6342c4 100644
106906 --- a/kernel/exit.c
106907 +++ b/kernel/exit.c
106908 @@ -171,6 +171,10 @@ void release_task(struct task_struct *p)
106909 struct task_struct *leader;
106910 int zap_leader;
106911 repeat:
106912 +#ifdef CONFIG_NET
106913 + gr_del_task_from_ip_table(p);
106914 +#endif
106915 +
106916 /* don't need to get the RCU readlock here - the process is dead and
106917 * can't be modifying its own credentials. But shut RCU-lockdep up */
106918 rcu_read_lock();
106919 @@ -656,6 +660,8 @@ void do_exit(long code)
106920 int group_dead;
106921 TASKS_RCU(int tasks_rcu_i);
106922
106923 + set_fs(USER_DS);
106924 +
106925 profile_task_exit(tsk);
106926
106927 WARN_ON(blk_needs_flush_plug(tsk));
106928 @@ -672,7 +678,6 @@ void do_exit(long code)
106929 * mm_release()->clear_child_tid() from writing to a user-controlled
106930 * kernel address.
106931 */
106932 - set_fs(USER_DS);
106933
106934 ptrace_event(PTRACE_EVENT_EXIT, code);
106935
106936 @@ -730,6 +735,9 @@ void do_exit(long code)
106937 tsk->exit_code = code;
106938 taskstats_exit(tsk, group_dead);
106939
106940 + gr_acl_handle_psacct(tsk, code);
106941 + gr_acl_handle_exit();
106942 +
106943 exit_mm(tsk);
106944
106945 if (group_dead)
106946 @@ -847,7 +855,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
106947 * Take down every thread in the group. This is called by fatal signals
106948 * as well as by sys_exit_group (below).
106949 */
106950 -void
106951 +__noreturn void
106952 do_group_exit(int exit_code)
106953 {
106954 struct signal_struct *sig = current->signal;
106955 diff --git a/kernel/fork.c b/kernel/fork.c
106956 index e769c8c..9fa1de5 100644
106957 --- a/kernel/fork.c
106958 +++ b/kernel/fork.c
106959 @@ -188,12 +188,54 @@ static void free_thread_info(struct thread_info *ti)
106960 void thread_info_cache_init(void)
106961 {
106962 thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE,
106963 - THREAD_SIZE, 0, NULL);
106964 + THREAD_SIZE, SLAB_USERCOPY, NULL);
106965 BUG_ON(thread_info_cache == NULL);
106966 }
106967 # endif
106968 #endif
106969
106970 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
106971 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
106972 + int node, void **lowmem_stack)
106973 +{
106974 + struct page *pages[THREAD_SIZE / PAGE_SIZE];
106975 + void *ret = NULL;
106976 + unsigned int i;
106977 +
106978 + *lowmem_stack = alloc_thread_info_node(tsk, node);
106979 + if (*lowmem_stack == NULL)
106980 + goto out;
106981 +
106982 + for (i = 0; i < THREAD_SIZE / PAGE_SIZE; i++)
106983 + pages[i] = virt_to_page(*lowmem_stack + (i * PAGE_SIZE));
106984 +
106985 + /* use VM_IOREMAP to gain THREAD_SIZE alignment */
106986 + ret = vmap(pages, THREAD_SIZE / PAGE_SIZE, VM_IOREMAP, PAGE_KERNEL);
106987 + if (ret == NULL) {
106988 + free_thread_info(*lowmem_stack);
106989 + *lowmem_stack = NULL;
106990 + }
106991 +
106992 +out:
106993 + return ret;
106994 +}
106995 +
106996 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
106997 +{
106998 + unmap_process_stacks(tsk);
106999 +}
107000 +#else
107001 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
107002 + int node, void **lowmem_stack)
107003 +{
107004 + return alloc_thread_info_node(tsk, node);
107005 +}
107006 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
107007 +{
107008 + free_thread_info(ti);
107009 +}
107010 +#endif
107011 +
107012 /* SLAB cache for signal_struct structures (tsk->signal) */
107013 static struct kmem_cache *signal_cachep;
107014
107015 @@ -212,18 +254,22 @@ struct kmem_cache *vm_area_cachep;
107016 /* SLAB cache for mm_struct structures (tsk->mm) */
107017 static struct kmem_cache *mm_cachep;
107018
107019 -static void account_kernel_stack(struct thread_info *ti, int account)
107020 +static void account_kernel_stack(struct task_struct *tsk, struct thread_info *ti, int account)
107021 {
107022 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
107023 + struct zone *zone = page_zone(virt_to_page(tsk->lowmem_stack));
107024 +#else
107025 struct zone *zone = page_zone(virt_to_page(ti));
107026 +#endif
107027
107028 mod_zone_page_state(zone, NR_KERNEL_STACK, account);
107029 }
107030
107031 void free_task(struct task_struct *tsk)
107032 {
107033 - account_kernel_stack(tsk->stack, -1);
107034 + account_kernel_stack(tsk, tsk->stack, -1);
107035 arch_release_thread_info(tsk->stack);
107036 - free_thread_info(tsk->stack);
107037 + gr_free_thread_info(tsk, tsk->stack);
107038 rt_mutex_debug_task_free(tsk);
107039 ftrace_graph_exit_task(tsk);
107040 put_seccomp_filter(tsk);
107041 @@ -289,7 +335,7 @@ static void set_max_threads(unsigned int max_threads_suggested)
107042
107043 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
107044 /* Initialized by the architecture: */
107045 -int arch_task_struct_size __read_mostly;
107046 +size_t arch_task_struct_size __read_mostly;
107047 #endif
107048
107049 void __init fork_init(void)
107050 @@ -334,6 +380,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107051 {
107052 struct task_struct *tsk;
107053 struct thread_info *ti;
107054 + void *lowmem_stack;
107055 int node = tsk_fork_get_node(orig);
107056 int err;
107057
107058 @@ -341,7 +388,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107059 if (!tsk)
107060 return NULL;
107061
107062 - ti = alloc_thread_info_node(tsk, node);
107063 + ti = gr_alloc_thread_info_node(tsk, node, &lowmem_stack);
107064 if (!ti)
107065 goto free_tsk;
107066
107067 @@ -350,6 +397,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107068 goto free_ti;
107069
107070 tsk->stack = ti;
107071 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
107072 + tsk->lowmem_stack = lowmem_stack;
107073 +#endif
107074 #ifdef CONFIG_SECCOMP
107075 /*
107076 * We must handle setting up seccomp filters once we're under
107077 @@ -366,7 +416,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107078 set_task_stack_end_magic(tsk);
107079
107080 #ifdef CONFIG_CC_STACKPROTECTOR
107081 - tsk->stack_canary = get_random_int();
107082 + tsk->stack_canary = pax_get_random_long();
107083 #endif
107084
107085 /*
107086 @@ -380,24 +430,89 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
107087 tsk->splice_pipe = NULL;
107088 tsk->task_frag.page = NULL;
107089
107090 - account_kernel_stack(ti, 1);
107091 + account_kernel_stack(tsk, ti, 1);
107092
107093 return tsk;
107094
107095 free_ti:
107096 - free_thread_info(ti);
107097 + gr_free_thread_info(tsk, ti);
107098 free_tsk:
107099 free_task_struct(tsk);
107100 return NULL;
107101 }
107102
107103 #ifdef CONFIG_MMU
107104 -static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107105 +static struct vm_area_struct *dup_vma(struct mm_struct *mm, struct mm_struct *oldmm, struct vm_area_struct *mpnt)
107106 +{
107107 + struct vm_area_struct *tmp;
107108 + unsigned long charge;
107109 + struct file *file;
107110 + int retval;
107111 +
107112 + charge = 0;
107113 + if (mpnt->vm_flags & VM_ACCOUNT) {
107114 + unsigned long len = vma_pages(mpnt);
107115 +
107116 + if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
107117 + goto fail_nomem;
107118 + charge = len;
107119 + }
107120 + tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
107121 + if (!tmp)
107122 + goto fail_nomem;
107123 + *tmp = *mpnt;
107124 + tmp->vm_mm = mm;
107125 + INIT_LIST_HEAD(&tmp->anon_vma_chain);
107126 + retval = vma_dup_policy(mpnt, tmp);
107127 + if (retval)
107128 + goto fail_nomem_policy;
107129 + if (anon_vma_fork(tmp, mpnt))
107130 + goto fail_nomem_anon_vma_fork;
107131 + tmp->vm_flags &= ~VM_LOCKED;
107132 + tmp->vm_next = tmp->vm_prev = NULL;
107133 + tmp->vm_mirror = NULL;
107134 + file = tmp->vm_file;
107135 + if (file) {
107136 + struct inode *inode = file_inode(file);
107137 + struct address_space *mapping = file->f_mapping;
107138 +
107139 + get_file(file);
107140 + if (tmp->vm_flags & VM_DENYWRITE)
107141 + atomic_dec(&inode->i_writecount);
107142 + i_mmap_lock_write(mapping);
107143 + if (tmp->vm_flags & VM_SHARED)
107144 + atomic_inc(&mapping->i_mmap_writable);
107145 + flush_dcache_mmap_lock(mapping);
107146 + /* insert tmp into the share list, just after mpnt */
107147 + vma_interval_tree_insert_after(tmp, mpnt, &mapping->i_mmap);
107148 + flush_dcache_mmap_unlock(mapping);
107149 + i_mmap_unlock_write(mapping);
107150 + }
107151 +
107152 + /*
107153 + * Clear hugetlb-related page reserves for children. This only
107154 + * affects MAP_PRIVATE mappings. Faults generated by the child
107155 + * are not guaranteed to succeed, even if read-only
107156 + */
107157 + if (is_vm_hugetlb_page(tmp))
107158 + reset_vma_resv_huge_pages(tmp);
107159 +
107160 + return tmp;
107161 +
107162 +fail_nomem_anon_vma_fork:
107163 + mpol_put(vma_policy(tmp));
107164 +fail_nomem_policy:
107165 + kmem_cache_free(vm_area_cachep, tmp);
107166 +fail_nomem:
107167 + vm_unacct_memory(charge);
107168 + return NULL;
107169 +}
107170 +
107171 +static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107172 {
107173 struct vm_area_struct *mpnt, *tmp, *prev, **pprev;
107174 struct rb_node **rb_link, *rb_parent;
107175 int retval;
107176 - unsigned long charge;
107177
107178 uprobe_start_dup_mmap();
107179 down_write(&oldmm->mmap_sem);
107180 @@ -428,51 +543,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107181
107182 prev = NULL;
107183 for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
107184 - struct file *file;
107185 -
107186 if (mpnt->vm_flags & VM_DONTCOPY) {
107187 vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
107188 -vma_pages(mpnt));
107189 continue;
107190 }
107191 - charge = 0;
107192 - if (mpnt->vm_flags & VM_ACCOUNT) {
107193 - unsigned long len = vma_pages(mpnt);
107194 -
107195 - if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
107196 - goto fail_nomem;
107197 - charge = len;
107198 - }
107199 - tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
107200 - if (!tmp)
107201 - goto fail_nomem;
107202 - *tmp = *mpnt;
107203 - INIT_LIST_HEAD(&tmp->anon_vma_chain);
107204 - retval = vma_dup_policy(mpnt, tmp);
107205 - if (retval)
107206 - goto fail_nomem_policy;
107207 - tmp->vm_mm = mm;
107208 - if (anon_vma_fork(tmp, mpnt))
107209 - goto fail_nomem_anon_vma_fork;
107210 - tmp->vm_flags &= ~VM_LOCKED;
107211 - tmp->vm_next = tmp->vm_prev = NULL;
107212 - file = tmp->vm_file;
107213 - if (file) {
107214 - struct inode *inode = file_inode(file);
107215 - struct address_space *mapping = file->f_mapping;
107216 -
107217 - get_file(file);
107218 - if (tmp->vm_flags & VM_DENYWRITE)
107219 - atomic_dec(&inode->i_writecount);
107220 - i_mmap_lock_write(mapping);
107221 - if (tmp->vm_flags & VM_SHARED)
107222 - atomic_inc(&mapping->i_mmap_writable);
107223 - flush_dcache_mmap_lock(mapping);
107224 - /* insert tmp into the share list, just after mpnt */
107225 - vma_interval_tree_insert_after(tmp, mpnt,
107226 - &mapping->i_mmap);
107227 - flush_dcache_mmap_unlock(mapping);
107228 - i_mmap_unlock_write(mapping);
107229 + tmp = dup_vma(mm, oldmm, mpnt);
107230 + if (!tmp) {
107231 + retval = -ENOMEM;
107232 + goto out;
107233 }
107234
107235 /*
107236 @@ -504,6 +583,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
107237 if (retval)
107238 goto out;
107239 }
107240 +
107241 +#ifdef CONFIG_PAX_SEGMEXEC
107242 + if (oldmm->pax_flags & MF_PAX_SEGMEXEC) {
107243 + struct vm_area_struct *mpnt_m;
107244 +
107245 + for (mpnt = oldmm->mmap, mpnt_m = mm->mmap; mpnt; mpnt = mpnt->vm_next, mpnt_m = mpnt_m->vm_next) {
107246 + BUG_ON(!mpnt_m || mpnt_m->vm_mirror || mpnt->vm_mm != oldmm || mpnt_m->vm_mm != mm);
107247 +
107248 + if (!mpnt->vm_mirror)
107249 + continue;
107250 +
107251 + if (mpnt->vm_end <= SEGMEXEC_TASK_SIZE) {
107252 + BUG_ON(mpnt->vm_mirror->vm_mirror != mpnt);
107253 + mpnt->vm_mirror = mpnt_m;
107254 + } else {
107255 + BUG_ON(mpnt->vm_mirror->vm_mirror == mpnt || mpnt->vm_mirror->vm_mirror->vm_mm != mm);
107256 + mpnt_m->vm_mirror = mpnt->vm_mirror->vm_mirror;
107257 + mpnt_m->vm_mirror->vm_mirror = mpnt_m;
107258 + mpnt->vm_mirror->vm_mirror = mpnt;
107259 + }
107260 + }
107261 + BUG_ON(mpnt_m);
107262 + }
107263 +#endif
107264 +
107265 /* a new mm has just been created */
107266 arch_dup_mmap(oldmm, mm);
107267 retval = 0;
107268 @@ -513,14 +617,6 @@ out:
107269 up_write(&oldmm->mmap_sem);
107270 uprobe_end_dup_mmap();
107271 return retval;
107272 -fail_nomem_anon_vma_fork:
107273 - mpol_put(vma_policy(tmp));
107274 -fail_nomem_policy:
107275 - kmem_cache_free(vm_area_cachep, tmp);
107276 -fail_nomem:
107277 - retval = -ENOMEM;
107278 - vm_unacct_memory(charge);
107279 - goto out;
107280 }
107281
107282 static inline int mm_alloc_pgd(struct mm_struct *mm)
107283 @@ -795,8 +891,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
107284 return ERR_PTR(err);
107285
107286 mm = get_task_mm(task);
107287 - if (mm && mm != current->mm &&
107288 - !ptrace_may_access(task, mode)) {
107289 + if (mm && ((mm != current->mm && !ptrace_may_access(task, mode)) ||
107290 + (mode == PTRACE_MODE_ATTACH && (gr_handle_proc_ptrace(task) || gr_acl_handle_procpidmem(task))))) {
107291 mmput(mm);
107292 mm = ERR_PTR(-EACCES);
107293 }
107294 @@ -997,13 +1093,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
107295 spin_unlock(&fs->lock);
107296 return -EAGAIN;
107297 }
107298 - fs->users++;
107299 + atomic_inc(&fs->users);
107300 spin_unlock(&fs->lock);
107301 return 0;
107302 }
107303 tsk->fs = copy_fs_struct(fs);
107304 if (!tsk->fs)
107305 return -ENOMEM;
107306 + /* Carry through gr_chroot_dentry and is_chrooted instead
107307 + of recomputing it here. Already copied when the task struct
107308 + is duplicated. This allows pivot_root to not be treated as
107309 + a chroot
107310 + */
107311 + //gr_set_chroot_entries(tsk, &tsk->fs->root);
107312 +
107313 return 0;
107314 }
107315
107316 @@ -1238,7 +1341,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
107317 * parts of the process environment (as per the clone
107318 * flags). The actual kick-off is left to the caller.
107319 */
107320 -static struct task_struct *copy_process(unsigned long clone_flags,
107321 +static __latent_entropy struct task_struct *copy_process(unsigned long clone_flags,
107322 unsigned long stack_start,
107323 unsigned long stack_size,
107324 int __user *child_tidptr,
107325 @@ -1310,6 +1413,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
107326 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
107327 #endif
107328 retval = -EAGAIN;
107329 +
107330 + gr_learn_resource(p, RLIMIT_NPROC, atomic_read(&p->real_cred->user->processes), 0);
107331 +
107332 if (atomic_read(&p->real_cred->user->processes) >=
107333 task_rlimit(p, RLIMIT_NPROC)) {
107334 if (p->real_cred->user != INIT_USER &&
107335 @@ -1560,6 +1666,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
107336 goto bad_fork_free_pid;
107337 }
107338
107339 + /* synchronizes with gr_set_acls()
107340 + we need to call this past the point of no return for fork()
107341 + */
107342 + gr_copy_label(p);
107343 +
107344 if (likely(p->pid)) {
107345 ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
107346
107347 @@ -1649,6 +1760,8 @@ bad_fork_cleanup_count:
107348 bad_fork_free:
107349 free_task(p);
107350 fork_out:
107351 + gr_log_forkfail(retval);
107352 +
107353 return ERR_PTR(retval);
107354 }
107355
107356 @@ -1711,6 +1824,7 @@ long _do_fork(unsigned long clone_flags,
107357
107358 p = copy_process(clone_flags, stack_start, stack_size,
107359 child_tidptr, NULL, trace, tls);
107360 + add_latent_entropy();
107361 /*
107362 * Do this prior waking up the new thread - the thread pointer
107363 * might get invalid after that point, if the thread exits quickly.
107364 @@ -1727,6 +1841,8 @@ long _do_fork(unsigned long clone_flags,
107365 if (clone_flags & CLONE_PARENT_SETTID)
107366 put_user(nr, parent_tidptr);
107367
107368 + gr_handle_brute_check();
107369 +
107370 if (clone_flags & CLONE_VFORK) {
107371 p->vfork_done = &vfork;
107372 init_completion(&vfork);
107373 @@ -1859,7 +1975,7 @@ void __init proc_caches_init(void)
107374 mm_cachep = kmem_cache_create("mm_struct",
107375 sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
107376 SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
107377 - vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC);
107378 + vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC | SLAB_NO_SANITIZE);
107379 mmap_init();
107380 nsproxy_cache_init();
107381 }
107382 @@ -1907,7 +2023,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
107383 return 0;
107384
107385 /* don't need lock here; in the worst case we'll do useless copy */
107386 - if (fs->users == 1)
107387 + if (atomic_read(&fs->users) == 1)
107388 return 0;
107389
107390 *new_fsp = copy_fs_struct(fs);
107391 @@ -2019,7 +2135,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
107392 fs = current->fs;
107393 spin_lock(&fs->lock);
107394 current->fs = new_fs;
107395 - if (--fs->users)
107396 + gr_set_chroot_entries(current, &current->fs->root);
107397 + if (atomic_dec_return(&fs->users))
107398 new_fs = NULL;
107399 else
107400 new_fs = fs;
107401 @@ -2083,7 +2200,7 @@ int unshare_files(struct files_struct **displaced)
107402 int sysctl_max_threads(struct ctl_table *table, int write,
107403 void __user *buffer, size_t *lenp, loff_t *ppos)
107404 {
107405 - struct ctl_table t;
107406 + ctl_table_no_const t;
107407 int ret;
107408 int threads = max_threads;
107409 int min = MIN_THREADS;
107410 diff --git a/kernel/futex.c b/kernel/futex.c
107411 index c4a182f..e789324 100644
107412 --- a/kernel/futex.c
107413 +++ b/kernel/futex.c
107414 @@ -201,7 +201,7 @@ struct futex_pi_state {
107415 atomic_t refcount;
107416
107417 union futex_key key;
107418 -};
107419 +} __randomize_layout;
107420
107421 /**
107422 * struct futex_q - The hashed futex queue entry, one per waiting task
107423 @@ -235,7 +235,7 @@ struct futex_q {
107424 struct rt_mutex_waiter *rt_waiter;
107425 union futex_key *requeue_pi_key;
107426 u32 bitset;
107427 -};
107428 +} __randomize_layout;
107429
107430 static const struct futex_q futex_q_init = {
107431 /* list gets initialized in queue_me()*/
107432 @@ -402,6 +402,11 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
107433 struct page *page, *page_head;
107434 int err, ro = 0;
107435
107436 +#ifdef CONFIG_PAX_SEGMEXEC
107437 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && address >= SEGMEXEC_TASK_SIZE)
107438 + return -EFAULT;
107439 +#endif
107440 +
107441 /*
107442 * The futex address must be "naturally" aligned.
107443 */
107444 @@ -601,7 +606,7 @@ static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
107445
107446 static int get_futex_value_locked(u32 *dest, u32 __user *from)
107447 {
107448 - int ret;
107449 + unsigned long ret;
107450
107451 pagefault_disable();
107452 ret = __copy_from_user_inatomic(dest, from, sizeof(u32));
107453 @@ -3030,6 +3035,7 @@ static void __init futex_detect_cmpxchg(void)
107454 {
107455 #ifndef CONFIG_HAVE_FUTEX_CMPXCHG
107456 u32 curval;
107457 + mm_segment_t oldfs;
107458
107459 /*
107460 * This will fail and we want it. Some arch implementations do
107461 @@ -3041,8 +3047,11 @@ static void __init futex_detect_cmpxchg(void)
107462 * implementation, the non-functional ones will return
107463 * -ENOSYS.
107464 */
107465 + oldfs = get_fs();
107466 + set_fs(USER_DS);
107467 if (cmpxchg_futex_value_locked(&curval, NULL, 0, 0) == -EFAULT)
107468 futex_cmpxchg_enabled = 1;
107469 + set_fs(oldfs);
107470 #endif
107471 }
107472
107473 diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
107474 index 55c8c93..9ba7ad6 100644
107475 --- a/kernel/futex_compat.c
107476 +++ b/kernel/futex_compat.c
107477 @@ -32,7 +32,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
107478 return 0;
107479 }
107480
107481 -static void __user *futex_uaddr(struct robust_list __user *entry,
107482 +static void __user __intentional_overflow(-1) *futex_uaddr(struct robust_list __user *entry,
107483 compat_long_t futex_offset)
107484 {
107485 compat_uptr_t base = ptr_to_compat(entry);
107486 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
107487 index 7080ae1..c9b3761 100644
107488 --- a/kernel/gcov/base.c
107489 +++ b/kernel/gcov/base.c
107490 @@ -123,11 +123,6 @@ void gcov_enable_events(void)
107491 }
107492
107493 #ifdef CONFIG_MODULES
107494 -static inline int within(void *addr, void *start, unsigned long size)
107495 -{
107496 - return ((addr >= start) && (addr < start + size));
107497 -}
107498 -
107499 /* Update list and generate events when modules are unloaded. */
107500 static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
107501 void *data)
107502 @@ -142,7 +137,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
107503
107504 /* Remove entries located in module from linked list. */
107505 while ((info = gcov_info_next(info))) {
107506 - if (within(info, mod->module_core, mod->core_size)) {
107507 + if (within_module_core_rw((unsigned long)info, mod)) {
107508 gcov_info_unlink(prev, info);
107509 if (gcov_events_enabled)
107510 gcov_event(GCOV_REMOVE, info);
107511 diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
107512 index f974485..c5b8afd 100644
107513 --- a/kernel/irq/manage.c
107514 +++ b/kernel/irq/manage.c
107515 @@ -937,7 +937,7 @@ static int irq_thread(void *data)
107516
107517 action_ret = handler_fn(desc, action);
107518 if (action_ret == IRQ_HANDLED)
107519 - atomic_inc(&desc->threads_handled);
107520 + atomic_inc_unchecked(&desc->threads_handled);
107521
107522 wake_threads_waitq(desc);
107523 }
107524 diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
107525 index 7bf1f1b..d73e508 100644
107526 --- a/kernel/irq/msi.c
107527 +++ b/kernel/irq/msi.c
107528 @@ -195,16 +195,18 @@ static void msi_domain_update_dom_ops(struct msi_domain_info *info)
107529 return;
107530 }
107531
107532 + pax_open_kernel();
107533 if (ops->get_hwirq == NULL)
107534 - ops->get_hwirq = msi_domain_ops_default.get_hwirq;
107535 + *(void **)&ops->get_hwirq = msi_domain_ops_default.get_hwirq;
107536 if (ops->msi_init == NULL)
107537 - ops->msi_init = msi_domain_ops_default.msi_init;
107538 + *(void **)&ops->msi_init = msi_domain_ops_default.msi_init;
107539 if (ops->msi_check == NULL)
107540 - ops->msi_check = msi_domain_ops_default.msi_check;
107541 + *(void **)&ops->msi_check = msi_domain_ops_default.msi_check;
107542 if (ops->msi_prepare == NULL)
107543 - ops->msi_prepare = msi_domain_ops_default.msi_prepare;
107544 + *(void **)&ops->msi_prepare = msi_domain_ops_default.msi_prepare;
107545 if (ops->set_desc == NULL)
107546 - ops->set_desc = msi_domain_ops_default.set_desc;
107547 + *(void **)&ops->set_desc = msi_domain_ops_default.set_desc;
107548 + pax_close_kernel();
107549 }
107550
107551 static void msi_domain_update_chip_ops(struct msi_domain_info *info)
107552 @@ -212,12 +214,14 @@ static void msi_domain_update_chip_ops(struct msi_domain_info *info)
107553 struct irq_chip *chip = info->chip;
107554
107555 BUG_ON(!chip);
107556 + pax_open_kernel();
107557 if (!chip->irq_mask)
107558 - chip->irq_mask = pci_msi_mask_irq;
107559 + *(void **)&chip->irq_mask = pci_msi_mask_irq;
107560 if (!chip->irq_unmask)
107561 - chip->irq_unmask = pci_msi_unmask_irq;
107562 + *(void **)&chip->irq_unmask = pci_msi_unmask_irq;
107563 if (!chip->irq_set_affinity)
107564 - chip->irq_set_affinity = msi_domain_set_affinity;
107565 + *(void **)&chip->irq_set_affinity = msi_domain_set_affinity;
107566 + pax_close_kernel();
107567 }
107568
107569 /**
107570 diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
107571 index e2514b0..de3dfe0 100644
107572 --- a/kernel/irq/spurious.c
107573 +++ b/kernel/irq/spurious.c
107574 @@ -337,7 +337,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
107575 * count. We just care about the count being
107576 * different than the one we saw before.
107577 */
107578 - handled = atomic_read(&desc->threads_handled);
107579 + handled = atomic_read_unchecked(&desc->threads_handled);
107580 handled |= SPURIOUS_DEFERRED;
107581 if (handled != desc->threads_handled_last) {
107582 action_ret = IRQ_HANDLED;
107583 diff --git a/kernel/jump_label.c b/kernel/jump_label.c
107584 index 52ebaca..ec6f5cb 100644
107585 --- a/kernel/jump_label.c
107586 +++ b/kernel/jump_label.c
107587 @@ -14,6 +14,7 @@
107588 #include <linux/err.h>
107589 #include <linux/static_key.h>
107590 #include <linux/jump_label_ratelimit.h>
107591 +#include <linux/mm.h>
107592
107593 #ifdef HAVE_JUMP_LABEL
107594
107595 @@ -51,7 +52,9 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
107596
107597 size = (((unsigned long)stop - (unsigned long)start)
107598 / sizeof(struct jump_entry));
107599 + pax_open_kernel();
107600 sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
107601 + pax_close_kernel();
107602 }
107603
107604 static void jump_label_update(struct static_key *key, int enable);
107605 @@ -363,10 +366,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
107606 struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
107607 struct jump_entry *iter;
107608
107609 + pax_open_kernel();
107610 for (iter = iter_start; iter < iter_stop; iter++) {
107611 if (within_module_init(iter->code, mod))
107612 iter->code = 0;
107613 }
107614 + pax_close_kernel();
107615 }
107616
107617 static int
107618 diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
107619 index 5c5987f..bc502b0 100644
107620 --- a/kernel/kallsyms.c
107621 +++ b/kernel/kallsyms.c
107622 @@ -11,6 +11,9 @@
107623 * Changed the compression method from stem compression to "table lookup"
107624 * compression (see scripts/kallsyms.c for a more complete description)
107625 */
107626 +#ifdef CONFIG_GRKERNSEC_HIDESYM
107627 +#define __INCLUDED_BY_HIDESYM 1
107628 +#endif
107629 #include <linux/kallsyms.h>
107630 #include <linux/module.h>
107631 #include <linux/init.h>
107632 @@ -54,12 +57,33 @@ extern const unsigned long kallsyms_markers[] __weak;
107633
107634 static inline int is_kernel_inittext(unsigned long addr)
107635 {
107636 + if (system_state != SYSTEM_BOOTING)
107637 + return 0;
107638 +
107639 if (addr >= (unsigned long)_sinittext
107640 && addr <= (unsigned long)_einittext)
107641 return 1;
107642 return 0;
107643 }
107644
107645 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
107646 +#ifdef CONFIG_MODULES
107647 +static inline int is_module_text(unsigned long addr)
107648 +{
107649 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END)
107650 + return 1;
107651 +
107652 + addr = ktla_ktva(addr);
107653 + return (unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END;
107654 +}
107655 +#else
107656 +static inline int is_module_text(unsigned long addr)
107657 +{
107658 + return 0;
107659 +}
107660 +#endif
107661 +#endif
107662 +
107663 static inline int is_kernel_text(unsigned long addr)
107664 {
107665 if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) ||
107666 @@ -70,13 +94,28 @@ static inline int is_kernel_text(unsigned long addr)
107667
107668 static inline int is_kernel(unsigned long addr)
107669 {
107670 +
107671 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
107672 + if (is_kernel_text(addr) || is_kernel_inittext(addr))
107673 + return 1;
107674 +
107675 + if (ktla_ktva((unsigned long)_text) <= addr && addr < (unsigned long)_end)
107676 +#else
107677 if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
107678 +#endif
107679 +
107680 return 1;
107681 return in_gate_area_no_mm(addr);
107682 }
107683
107684 static int is_ksym_addr(unsigned long addr)
107685 {
107686 +
107687 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
107688 + if (is_module_text(addr))
107689 + return 0;
107690 +#endif
107691 +
107692 if (all_var)
107693 return is_kernel(addr);
107694
107695 @@ -481,7 +520,6 @@ static unsigned long get_ksymbol_core(struct kallsym_iter *iter)
107696
107697 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos)
107698 {
107699 - iter->name[0] = '\0';
107700 iter->nameoff = get_symbol_offset(new_pos);
107701 iter->pos = new_pos;
107702 }
107703 @@ -529,6 +567,11 @@ static int s_show(struct seq_file *m, void *p)
107704 {
107705 struct kallsym_iter *iter = m->private;
107706
107707 +#ifdef CONFIG_GRKERNSEC_HIDESYM
107708 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID))
107709 + return 0;
107710 +#endif
107711 +
107712 /* Some debugging symbols have no name. Ignore them. */
107713 if (!iter->name[0])
107714 return 0;
107715 @@ -542,6 +585,7 @@ static int s_show(struct seq_file *m, void *p)
107716 */
107717 type = iter->exported ? toupper(iter->type) :
107718 tolower(iter->type);
107719 +
107720 seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value,
107721 type, iter->name, iter->module_name);
107722 } else
107723 diff --git a/kernel/kcmp.c b/kernel/kcmp.c
107724 index 0aa69ea..a7fcafb 100644
107725 --- a/kernel/kcmp.c
107726 +++ b/kernel/kcmp.c
107727 @@ -100,6 +100,10 @@ SYSCALL_DEFINE5(kcmp, pid_t, pid1, pid_t, pid2, int, type,
107728 struct task_struct *task1, *task2;
107729 int ret;
107730
107731 +#ifdef CONFIG_GRKERNSEC
107732 + return -ENOSYS;
107733 +#endif
107734 +
107735 rcu_read_lock();
107736
107737 /*
107738 diff --git a/kernel/kexec.c b/kernel/kexec.c
107739 index a785c10..6dbb06f 100644
107740 --- a/kernel/kexec.c
107741 +++ b/kernel/kexec.c
107742 @@ -1243,7 +1243,7 @@ static int kimage_load_segment(struct kimage *image,
107743 */
107744 struct kimage *kexec_image;
107745 struct kimage *kexec_crash_image;
107746 -int kexec_load_disabled;
107747 +int kexec_load_disabled __read_only;
107748
107749 static DEFINE_MUTEX(kexec_mutex);
107750
107751 @@ -1359,7 +1359,8 @@ COMPAT_SYSCALL_DEFINE4(kexec_load, compat_ulong_t, entry,
107752 compat_ulong_t, flags)
107753 {
107754 struct compat_kexec_segment in;
107755 - struct kexec_segment out, __user *ksegments;
107756 + struct kexec_segment out;
107757 + struct kexec_segment __user *ksegments;
107758 unsigned long i, result;
107759
107760 /* Don't allow clients that don't understand the native
107761 diff --git a/kernel/kmod.c b/kernel/kmod.c
107762 index 2777f40..a689506 100644
107763 --- a/kernel/kmod.c
107764 +++ b/kernel/kmod.c
107765 @@ -68,7 +68,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
107766 kfree(info->argv);
107767 }
107768
107769 -static int call_modprobe(char *module_name, int wait)
107770 +static int call_modprobe(char *module_name, char *module_param, int wait)
107771 {
107772 struct subprocess_info *info;
107773 static char *envp[] = {
107774 @@ -78,7 +78,7 @@ static int call_modprobe(char *module_name, int wait)
107775 NULL
107776 };
107777
107778 - char **argv = kmalloc(sizeof(char *[5]), GFP_KERNEL);
107779 + char **argv = kmalloc(sizeof(char *[6]), GFP_KERNEL);
107780 if (!argv)
107781 goto out;
107782
107783 @@ -90,7 +90,8 @@ static int call_modprobe(char *module_name, int wait)
107784 argv[1] = "-q";
107785 argv[2] = "--";
107786 argv[3] = module_name; /* check free_modprobe_argv() */
107787 - argv[4] = NULL;
107788 + argv[4] = module_param;
107789 + argv[5] = NULL;
107790
107791 info = call_usermodehelper_setup(modprobe_path, argv, envp, GFP_KERNEL,
107792 NULL, free_modprobe_argv, NULL);
107793 @@ -122,9 +123,8 @@ out:
107794 * If module auto-loading support is disabled then this function
107795 * becomes a no-operation.
107796 */
107797 -int __request_module(bool wait, const char *fmt, ...)
107798 +static int ____request_module(bool wait, char *module_param, const char *fmt, va_list ap)
107799 {
107800 - va_list args;
107801 char module_name[MODULE_NAME_LEN];
107802 unsigned int max_modprobes;
107803 int ret;
107804 @@ -143,9 +143,7 @@ int __request_module(bool wait, const char *fmt, ...)
107805 if (!modprobe_path[0])
107806 return 0;
107807
107808 - va_start(args, fmt);
107809 - ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
107810 - va_end(args);
107811 + ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, ap);
107812 if (ret >= MODULE_NAME_LEN)
107813 return -ENAMETOOLONG;
107814
107815 @@ -153,6 +151,20 @@ int __request_module(bool wait, const char *fmt, ...)
107816 if (ret)
107817 return ret;
107818
107819 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
107820 + if (uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
107821 + /* hack to workaround consolekit/udisks stupidity */
107822 + read_lock(&tasklist_lock);
107823 + if (!strcmp(current->comm, "mount") &&
107824 + current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) {
107825 + read_unlock(&tasklist_lock);
107826 + printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name);
107827 + return -EPERM;
107828 + }
107829 + read_unlock(&tasklist_lock);
107830 + }
107831 +#endif
107832 +
107833 /* If modprobe needs a service that is in a module, we get a recursive
107834 * loop. Limit the number of running kmod threads to max_threads/2 or
107835 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
107836 @@ -181,16 +193,61 @@ int __request_module(bool wait, const char *fmt, ...)
107837
107838 trace_module_request(module_name, wait, _RET_IP_);
107839
107840 - ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
107841 + ret = call_modprobe(module_name, module_param, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
107842
107843 atomic_dec(&kmod_concurrent);
107844 return ret;
107845 }
107846 +
107847 +int ___request_module(bool wait, char *module_param, const char *fmt, ...)
107848 +{
107849 + va_list args;
107850 + int ret;
107851 +
107852 + va_start(args, fmt);
107853 + ret = ____request_module(wait, module_param, fmt, args);
107854 + va_end(args);
107855 +
107856 + return ret;
107857 +}
107858 +
107859 +int __request_module(bool wait, const char *fmt, ...)
107860 +{
107861 + va_list args;
107862 + int ret;
107863 +
107864 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
107865 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
107866 + char module_param[MODULE_NAME_LEN];
107867 +
107868 + memset(module_param, 0, sizeof(module_param));
107869 +
107870 + snprintf(module_param, sizeof(module_param) - 1, "grsec_modharden_normal%u_", GR_GLOBAL_UID(current_uid()));
107871 +
107872 + va_start(args, fmt);
107873 + ret = ____request_module(wait, module_param, fmt, args);
107874 + va_end(args);
107875 +
107876 + return ret;
107877 + }
107878 +#endif
107879 +
107880 + va_start(args, fmt);
107881 + ret = ____request_module(wait, NULL, fmt, args);
107882 + va_end(args);
107883 +
107884 + return ret;
107885 +}
107886 +
107887 EXPORT_SYMBOL(__request_module);
107888 #endif /* CONFIG_MODULES */
107889
107890 static void call_usermodehelper_freeinfo(struct subprocess_info *info)
107891 {
107892 +#ifdef CONFIG_GRKERNSEC
107893 + kfree(info->path);
107894 + info->path = info->origpath;
107895 +#endif
107896 if (info->cleanup)
107897 (*info->cleanup)(info);
107898 kfree(info);
107899 @@ -232,6 +289,21 @@ static int ____call_usermodehelper(void *data)
107900 */
107901 set_user_nice(current, 0);
107902
107903 +#ifdef CONFIG_GRKERNSEC
107904 + /* this is race-free as far as userland is concerned as we copied
107905 + out the path to be used prior to this point and are now operating
107906 + on that copy
107907 + */
107908 + if ((strncmp(sub_info->path, "/sbin/", 6) && strncmp(sub_info->path, "/usr/lib/", 9) &&
107909 + strncmp(sub_info->path, "/lib/", 5) && strncmp(sub_info->path, "/lib64/", 7) &&
107910 + strncmp(sub_info->path, "/usr/libexec/", 13) && strncmp(sub_info->path, "/usr/bin/", 9) &&
107911 + strcmp(sub_info->path, "/usr/share/apport/apport")) || strstr(sub_info->path, "..")) {
107912 + printk(KERN_ALERT "grsec: denied exec of usermode helper binary %.950s located outside of permitted system paths\n", sub_info->path);
107913 + retval = -EPERM;
107914 + goto out;
107915 + }
107916 +#endif
107917 +
107918 retval = -ENOMEM;
107919 new = prepare_kernel_cred(current);
107920 if (!new)
107921 @@ -254,8 +326,8 @@ static int ____call_usermodehelper(void *data)
107922 commit_creds(new);
107923
107924 retval = do_execve(getname_kernel(sub_info->path),
107925 - (const char __user *const __user *)sub_info->argv,
107926 - (const char __user *const __user *)sub_info->envp);
107927 + (const char __user *const __force_user *)sub_info->argv,
107928 + (const char __user *const __force_user *)sub_info->envp);
107929 out:
107930 sub_info->retval = retval;
107931 /* wait_for_helper() will call umh_complete if UHM_WAIT_PROC. */
107932 @@ -288,7 +360,7 @@ static int wait_for_helper(void *data)
107933 *
107934 * Thus the __user pointer cast is valid here.
107935 */
107936 - sys_wait4(pid, (int __user *)&ret, 0, NULL);
107937 + sys_wait4(pid, (int __force_user *)&ret, 0, NULL);
107938
107939 /*
107940 * If ret is 0, either ____call_usermodehelper failed and the
107941 @@ -510,7 +582,12 @@ struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
107942 goto out;
107943
107944 INIT_WORK(&sub_info->work, __call_usermodehelper);
107945 +#ifdef CONFIG_GRKERNSEC
107946 + sub_info->origpath = path;
107947 + sub_info->path = kstrdup(path, gfp_mask);
107948 +#else
107949 sub_info->path = path;
107950 +#endif
107951 sub_info->argv = argv;
107952 sub_info->envp = envp;
107953
107954 @@ -612,7 +689,7 @@ EXPORT_SYMBOL(call_usermodehelper);
107955 static int proc_cap_handler(struct ctl_table *table, int write,
107956 void __user *buffer, size_t *lenp, loff_t *ppos)
107957 {
107958 - struct ctl_table t;
107959 + ctl_table_no_const t;
107960 unsigned long cap_array[_KERNEL_CAPABILITY_U32S];
107961 kernel_cap_t new_cap;
107962 int err, i;
107963 diff --git a/kernel/kprobes.c b/kernel/kprobes.c
107964 index c90e417..e6c515d 100644
107965 --- a/kernel/kprobes.c
107966 +++ b/kernel/kprobes.c
107967 @@ -31,6 +31,9 @@
107968 * <jkenisto@us.ibm.com> and Prasanna S Panchamukhi
107969 * <prasanna@in.ibm.com> added function-return probes.
107970 */
107971 +#ifdef CONFIG_GRKERNSEC_HIDESYM
107972 +#define __INCLUDED_BY_HIDESYM 1
107973 +#endif
107974 #include <linux/kprobes.h>
107975 #include <linux/hash.h>
107976 #include <linux/init.h>
107977 @@ -122,12 +125,12 @@ enum kprobe_slot_state {
107978
107979 static void *alloc_insn_page(void)
107980 {
107981 - return module_alloc(PAGE_SIZE);
107982 + return module_alloc_exec(PAGE_SIZE);
107983 }
107984
107985 static void free_insn_page(void *page)
107986 {
107987 - module_memfree(page);
107988 + module_memfree_exec(page);
107989 }
107990
107991 struct kprobe_insn_cache kprobe_insn_slots = {
107992 @@ -2198,11 +2201,11 @@ static void report_probe(struct seq_file *pi, struct kprobe *p,
107993 kprobe_type = "k";
107994
107995 if (sym)
107996 - seq_printf(pi, "%p %s %s+0x%x %s ",
107997 + seq_printf(pi, "%pK %s %s+0x%x %s ",
107998 p->addr, kprobe_type, sym, offset,
107999 (modname ? modname : " "));
108000 else
108001 - seq_printf(pi, "%p %s %p ",
108002 + seq_printf(pi, "%pK %s %pK ",
108003 p->addr, kprobe_type, p->addr);
108004
108005 if (!pp)
108006 diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
108007 index 6683cce..daf8999 100644
108008 --- a/kernel/ksysfs.c
108009 +++ b/kernel/ksysfs.c
108010 @@ -50,6 +50,8 @@ static ssize_t uevent_helper_store(struct kobject *kobj,
108011 {
108012 if (count+1 > UEVENT_HELPER_PATH_LEN)
108013 return -ENOENT;
108014 + if (!capable(CAP_SYS_ADMIN))
108015 + return -EPERM;
108016 memcpy(uevent_helper, buf, count);
108017 uevent_helper[count] = '\0';
108018 if (count && uevent_helper[count-1] == '\n')
108019 @@ -176,7 +178,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj,
108020 return count;
108021 }
108022
108023 -static struct bin_attribute notes_attr = {
108024 +static bin_attribute_no_const notes_attr __read_only = {
108025 .attr = {
108026 .name = "notes",
108027 .mode = S_IRUGO,
108028 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
108029 index 8acfbf7..0c5a34a 100644
108030 --- a/kernel/locking/lockdep.c
108031 +++ b/kernel/locking/lockdep.c
108032 @@ -613,6 +613,10 @@ static int static_obj(void *obj)
108033 end = (unsigned long) &_end,
108034 addr = (unsigned long) obj;
108035
108036 +#ifdef CONFIG_PAX_KERNEXEC
108037 + start = ktla_ktva(start);
108038 +#endif
108039 +
108040 /*
108041 * static variable?
108042 */
108043 @@ -757,6 +761,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
108044 if (!static_obj(lock->key)) {
108045 debug_locks_off();
108046 printk("INFO: trying to register non-static key.\n");
108047 + printk("lock:%pS key:%pS.\n", lock, lock->key);
108048 printk("the code is fine but needs lockdep annotation.\n");
108049 printk("turning off the locking correctness validator.\n");
108050 dump_stack();
108051 @@ -3102,7 +3107,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
108052 if (!class)
108053 return 0;
108054 }
108055 - atomic_inc((atomic_t *)&class->ops);
108056 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)&class->ops);
108057 if (very_verbose(class)) {
108058 printk("\nacquire class [%p] %s", class->key, class->name);
108059 if (class->name_version > 1)
108060 diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
108061 index d83d798..ea3120d 100644
108062 --- a/kernel/locking/lockdep_proc.c
108063 +++ b/kernel/locking/lockdep_proc.c
108064 @@ -65,7 +65,7 @@ static int l_show(struct seq_file *m, void *v)
108065 return 0;
108066 }
108067
108068 - seq_printf(m, "%p", class->key);
108069 + seq_printf(m, "%pK", class->key);
108070 #ifdef CONFIG_DEBUG_LOCKDEP
108071 seq_printf(m, " OPS:%8ld", class->ops);
108072 #endif
108073 @@ -83,7 +83,7 @@ static int l_show(struct seq_file *m, void *v)
108074
108075 list_for_each_entry(entry, &class->locks_after, entry) {
108076 if (entry->distance == 1) {
108077 - seq_printf(m, " -> [%p] ", entry->class->key);
108078 + seq_printf(m, " -> [%pK] ", entry->class->key);
108079 print_name(m, entry->class);
108080 seq_puts(m, "\n");
108081 }
108082 @@ -152,7 +152,7 @@ static int lc_show(struct seq_file *m, void *v)
108083 if (!class->key)
108084 continue;
108085
108086 - seq_printf(m, "[%p] ", class->key);
108087 + seq_printf(m, "[%pK] ", class->key);
108088 print_name(m, class);
108089 seq_puts(m, "\n");
108090 }
108091 @@ -508,7 +508,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
108092 if (!i)
108093 seq_line(m, '-', 40-namelen, namelen);
108094
108095 - snprintf(ip, sizeof(ip), "[<%p>]",
108096 + snprintf(ip, sizeof(ip), "[<%pK>]",
108097 (void *)class->contention_point[i]);
108098 seq_printf(m, "%40s %14lu %29s %pS\n",
108099 name, stats->contention_point[i],
108100 @@ -523,7 +523,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
108101 if (!i)
108102 seq_line(m, '-', 40-namelen, namelen);
108103
108104 - snprintf(ip, sizeof(ip), "[<%p>]",
108105 + snprintf(ip, sizeof(ip), "[<%pK>]",
108106 (void *)class->contending_point[i]);
108107 seq_printf(m, "%40s %14lu %29s %pS\n",
108108 name, stats->contending_point[i],
108109 diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
108110 index 3ef3736..9c951fa 100644
108111 --- a/kernel/locking/mutex-debug.c
108112 +++ b/kernel/locking/mutex-debug.c
108113 @@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
108114 }
108115
108116 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
108117 - struct thread_info *ti)
108118 + struct task_struct *task)
108119 {
108120 SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
108121
108122 /* Mark the current thread as blocked on the lock: */
108123 - ti->task->blocked_on = waiter;
108124 + task->blocked_on = waiter;
108125 }
108126
108127 void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
108128 - struct thread_info *ti)
108129 + struct task_struct *task)
108130 {
108131 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
108132 - DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
108133 - DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
108134 - ti->task->blocked_on = NULL;
108135 + DEBUG_LOCKS_WARN_ON(waiter->task != task);
108136 + DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter);
108137 + task->blocked_on = NULL;
108138
108139 list_del_init(&waiter->list);
108140 waiter->task = NULL;
108141 diff --git a/kernel/locking/mutex-debug.h b/kernel/locking/mutex-debug.h
108142 index 0799fd3..d06ae3b 100644
108143 --- a/kernel/locking/mutex-debug.h
108144 +++ b/kernel/locking/mutex-debug.h
108145 @@ -20,9 +20,9 @@ extern void debug_mutex_wake_waiter(struct mutex *lock,
108146 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
108147 extern void debug_mutex_add_waiter(struct mutex *lock,
108148 struct mutex_waiter *waiter,
108149 - struct thread_info *ti);
108150 + struct task_struct *task);
108151 extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
108152 - struct thread_info *ti);
108153 + struct task_struct *task);
108154 extern void debug_mutex_unlock(struct mutex *lock);
108155 extern void debug_mutex_init(struct mutex *lock, const char *name,
108156 struct lock_class_key *key);
108157 diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
108158 index 4cccea6..4382db9 100644
108159 --- a/kernel/locking/mutex.c
108160 +++ b/kernel/locking/mutex.c
108161 @@ -533,7 +533,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
108162 goto skip_wait;
108163
108164 debug_mutex_lock_common(lock, &waiter);
108165 - debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
108166 + debug_mutex_add_waiter(lock, &waiter, task);
108167
108168 /* add waiting tasks to the end of the waitqueue (FIFO): */
108169 list_add_tail(&waiter.list, &lock->wait_list);
108170 @@ -580,7 +580,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
108171 }
108172 __set_task_state(task, TASK_RUNNING);
108173
108174 - mutex_remove_waiter(lock, &waiter, current_thread_info());
108175 + mutex_remove_waiter(lock, &waiter, task);
108176 /* set it to 0 if there are no waiters left: */
108177 if (likely(list_empty(&lock->wait_list)))
108178 atomic_set(&lock->count, 0);
108179 @@ -601,7 +601,7 @@ skip_wait:
108180 return 0;
108181
108182 err:
108183 - mutex_remove_waiter(lock, &waiter, task_thread_info(task));
108184 + mutex_remove_waiter(lock, &waiter, task);
108185 spin_unlock_mutex(&lock->wait_lock, flags);
108186 debug_mutex_free_waiter(&waiter);
108187 mutex_release(&lock->dep_map, 1, ip);
108188 diff --git a/kernel/locking/rtmutex-tester.c b/kernel/locking/rtmutex-tester.c
108189 index 1d96dd0..994ff19 100644
108190 --- a/kernel/locking/rtmutex-tester.c
108191 +++ b/kernel/locking/rtmutex-tester.c
108192 @@ -22,7 +22,7 @@
108193 #define MAX_RT_TEST_MUTEXES 8
108194
108195 static spinlock_t rttest_lock;
108196 -static atomic_t rttest_event;
108197 +static atomic_unchecked_t rttest_event;
108198
108199 struct test_thread_data {
108200 int opcode;
108201 @@ -63,7 +63,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
108202
108203 case RTTEST_LOCKCONT:
108204 td->mutexes[td->opdata] = 1;
108205 - td->event = atomic_add_return(1, &rttest_event);
108206 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108207 return 0;
108208
108209 case RTTEST_RESET:
108210 @@ -76,7 +76,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
108211 return 0;
108212
108213 case RTTEST_RESETEVENT:
108214 - atomic_set(&rttest_event, 0);
108215 + atomic_set_unchecked(&rttest_event, 0);
108216 return 0;
108217
108218 default:
108219 @@ -93,9 +93,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
108220 return ret;
108221
108222 td->mutexes[id] = 1;
108223 - td->event = atomic_add_return(1, &rttest_event);
108224 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108225 rt_mutex_lock(&mutexes[id]);
108226 - td->event = atomic_add_return(1, &rttest_event);
108227 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108228 td->mutexes[id] = 4;
108229 return 0;
108230
108231 @@ -106,9 +106,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
108232 return ret;
108233
108234 td->mutexes[id] = 1;
108235 - td->event = atomic_add_return(1, &rttest_event);
108236 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108237 ret = rt_mutex_lock_interruptible(&mutexes[id], 0);
108238 - td->event = atomic_add_return(1, &rttest_event);
108239 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108240 td->mutexes[id] = ret ? 0 : 4;
108241 return ret ? -EINTR : 0;
108242
108243 @@ -117,9 +117,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
108244 if (id < 0 || id >= MAX_RT_TEST_MUTEXES || td->mutexes[id] != 4)
108245 return ret;
108246
108247 - td->event = atomic_add_return(1, &rttest_event);
108248 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108249 rt_mutex_unlock(&mutexes[id]);
108250 - td->event = atomic_add_return(1, &rttest_event);
108251 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108252 td->mutexes[id] = 0;
108253 return 0;
108254
108255 @@ -166,7 +166,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
108256 break;
108257
108258 td->mutexes[dat] = 2;
108259 - td->event = atomic_add_return(1, &rttest_event);
108260 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108261 break;
108262
108263 default:
108264 @@ -186,7 +186,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
108265 return;
108266
108267 td->mutexes[dat] = 3;
108268 - td->event = atomic_add_return(1, &rttest_event);
108269 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108270 break;
108271
108272 case RTTEST_LOCKNOWAIT:
108273 @@ -198,7 +198,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
108274 return;
108275
108276 td->mutexes[dat] = 1;
108277 - td->event = atomic_add_return(1, &rttest_event);
108278 + td->event = atomic_add_return_unchecked(1, &rttest_event);
108279 return;
108280
108281 default:
108282 diff --git a/kernel/module.c b/kernel/module.c
108283 index 8f051a1..07da01a 100644
108284 --- a/kernel/module.c
108285 +++ b/kernel/module.c
108286 @@ -59,6 +59,7 @@
108287 #include <linux/jump_label.h>
108288 #include <linux/pfn.h>
108289 #include <linux/bsearch.h>
108290 +#include <linux/grsecurity.h>
108291 #include <uapi/linux/module.h>
108292 #include "module-internal.h"
108293
108294 @@ -108,7 +109,7 @@ static LIST_HEAD(modules);
108295 * Use a latched RB-tree for __module_address(); this allows us to use
108296 * RCU-sched lookups of the address from any context.
108297 *
108298 - * Because modules have two address ranges: init and core, we need two
108299 + * Because modules have four address ranges: init_{rw,rx} and core_{rw,rx}, we need four
108300 * latch_tree_nodes entries. Therefore we need the back-pointer from
108301 * mod_tree_node.
108302 *
108303 @@ -125,10 +126,14 @@ static __always_inline unsigned long __mod_tree_val(struct latch_tree_node *n)
108304 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
108305 struct module *mod = mtn->mod;
108306
108307 - if (unlikely(mtn == &mod->mtn_init))
108308 - return (unsigned long)mod->module_init;
108309 + if (unlikely(mtn == &mod->mtn_init_rw))
108310 + return (unsigned long)mod->module_init_rw;
108311 + if (unlikely(mtn == &mod->mtn_init_rx))
108312 + return (unsigned long)mod->module_init_rx;
108313
108314 - return (unsigned long)mod->module_core;
108315 + if (unlikely(mtn == &mod->mtn_core_rw))
108316 + return (unsigned long)mod->module_core_rw;
108317 + return (unsigned long)mod->module_core_rx;
108318 }
108319
108320 static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
108321 @@ -136,10 +141,14 @@ static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
108322 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
108323 struct module *mod = mtn->mod;
108324
108325 - if (unlikely(mtn == &mod->mtn_init))
108326 - return (unsigned long)mod->init_size;
108327 + if (unlikely(mtn == &mod->mtn_init_rw))
108328 + return (unsigned long)mod->init_size_rw;
108329 + if (unlikely(mtn == &mod->mtn_init_rx))
108330 + return (unsigned long)mod->init_size_rx;
108331
108332 - return (unsigned long)mod->core_size;
108333 + if (unlikely(mtn == &mod->mtn_core_rw))
108334 + return (unsigned long)mod->core_size_rw;
108335 + return (unsigned long)mod->core_size_rx;
108336 }
108337
108338 static __always_inline bool
108339 @@ -172,14 +181,19 @@ static const struct latch_tree_ops mod_tree_ops = {
108340
108341 static struct mod_tree_root {
108342 struct latch_tree_root root;
108343 - unsigned long addr_min;
108344 - unsigned long addr_max;
108345 + unsigned long addr_min_rw;
108346 + unsigned long addr_min_rx;
108347 + unsigned long addr_max_rw;
108348 + unsigned long addr_max_rx;
108349 } mod_tree __cacheline_aligned = {
108350 - .addr_min = -1UL,
108351 + .addr_min_rw = -1UL,
108352 + .addr_min_rx = -1UL,
108353 };
108354
108355 -#define module_addr_min mod_tree.addr_min
108356 -#define module_addr_max mod_tree.addr_max
108357 +#define module_addr_min_rw mod_tree.addr_min_rw
108358 +#define module_addr_min_rx mod_tree.addr_min_rx
108359 +#define module_addr_max_rw mod_tree.addr_max_rw
108360 +#define module_addr_max_rx mod_tree.addr_max_rx
108361
108362 static noinline void __mod_tree_insert(struct mod_tree_node *node)
108363 {
108364 @@ -197,23 +211,31 @@ static void __mod_tree_remove(struct mod_tree_node *node)
108365 */
108366 static void mod_tree_insert(struct module *mod)
108367 {
108368 - mod->mtn_core.mod = mod;
108369 - mod->mtn_init.mod = mod;
108370 + mod->mtn_core_rw.mod = mod;
108371 + mod->mtn_core_rx.mod = mod;
108372 + mod->mtn_init_rw.mod = mod;
108373 + mod->mtn_init_rx.mod = mod;
108374
108375 - __mod_tree_insert(&mod->mtn_core);
108376 - if (mod->init_size)
108377 - __mod_tree_insert(&mod->mtn_init);
108378 + __mod_tree_insert(&mod->mtn_core_rw);
108379 + __mod_tree_insert(&mod->mtn_core_rx);
108380 + if (mod->init_size_rw)
108381 + __mod_tree_insert(&mod->mtn_init_rw);
108382 + if (mod->init_size_rx)
108383 + __mod_tree_insert(&mod->mtn_init_rx);
108384 }
108385
108386 static void mod_tree_remove_init(struct module *mod)
108387 {
108388 - if (mod->init_size)
108389 - __mod_tree_remove(&mod->mtn_init);
108390 + if (mod->init_size_rw)
108391 + __mod_tree_remove(&mod->mtn_init_rw);
108392 + if (mod->init_size_rx)
108393 + __mod_tree_remove(&mod->mtn_init_rx);
108394 }
108395
108396 static void mod_tree_remove(struct module *mod)
108397 {
108398 - __mod_tree_remove(&mod->mtn_core);
108399 + __mod_tree_remove(&mod->mtn_core_rw);
108400 + __mod_tree_remove(&mod->mtn_core_rx);
108401 mod_tree_remove_init(mod);
108402 }
108403
108404 @@ -230,7 +252,8 @@ static struct module *mod_find(unsigned long addr)
108405
108406 #else /* MODULES_TREE_LOOKUP */
108407
108408 -static unsigned long module_addr_min = -1UL, module_addr_max = 0;
108409 +static unsigned long module_addr_min_rw = -1UL, module_addr_max_rw = 0;
108410 +static unsigned long module_addr_min_rx = -1UL, module_addr_max_rx = 0;
108411
108412 static void mod_tree_insert(struct module *mod) { }
108413 static void mod_tree_remove_init(struct module *mod) { }
108414 @@ -254,22 +277,36 @@ static struct module *mod_find(unsigned long addr)
108415 * Bounds of module text, for speeding up __module_address.
108416 * Protected by module_mutex.
108417 */
108418 -static void __mod_update_bounds(void *base, unsigned int size)
108419 +static void __mod_update_bounds_rw(void *base, unsigned int size)
108420 {
108421 unsigned long min = (unsigned long)base;
108422 unsigned long max = min + size;
108423
108424 - if (min < module_addr_min)
108425 - module_addr_min = min;
108426 - if (max > module_addr_max)
108427 - module_addr_max = max;
108428 + if (min < module_addr_min_rw)
108429 + module_addr_min_rw = min;
108430 + if (max > module_addr_max_rw)
108431 + module_addr_max_rw = max;
108432 +}
108433 +
108434 +static void __mod_update_bounds_rx(void *base, unsigned int size)
108435 +{
108436 + unsigned long min = (unsigned long)base;
108437 + unsigned long max = min + size;
108438 +
108439 + if (min < module_addr_min_rx)
108440 + module_addr_min_rx = min;
108441 + if (max > module_addr_max_rx)
108442 + module_addr_max_rx = max;
108443 }
108444
108445 static void mod_update_bounds(struct module *mod)
108446 {
108447 - __mod_update_bounds(mod->module_core, mod->core_size);
108448 - if (mod->init_size)
108449 - __mod_update_bounds(mod->module_init, mod->init_size);
108450 + __mod_update_bounds_rw(mod->module_core_rw, mod->core_size_rw);
108451 + __mod_update_bounds_rx(mod->module_core_rx, mod->core_size_rx);
108452 + if (mod->init_size_rw)
108453 + __mod_update_bounds_rw(mod->module_init_rw, mod->init_size_rw);
108454 + if (mod->init_size_rx)
108455 + __mod_update_bounds_rx(mod->module_init_rx, mod->init_size_rx);
108456 }
108457
108458 #ifdef CONFIG_KGDB_KDB
108459 @@ -298,7 +335,7 @@ module_param(sig_enforce, bool_enable_only, 0644);
108460 #endif /* !CONFIG_MODULE_SIG_FORCE */
108461
108462 /* Block module loading/unloading? */
108463 -int modules_disabled = 0;
108464 +int modules_disabled __read_only = 0;
108465 core_param(nomodule, modules_disabled, bint, 0);
108466
108467 /* Waiting for a module to finish initializing? */
108468 @@ -473,7 +510,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
108469 return true;
108470
108471 list_for_each_entry_rcu(mod, &modules, list) {
108472 - struct symsearch arr[] = {
108473 + struct symsearch modarr[] = {
108474 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
108475 NOT_GPL_ONLY, false },
108476 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
108477 @@ -498,7 +535,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
108478 if (mod->state == MODULE_STATE_UNFORMED)
108479 continue;
108480
108481 - if (each_symbol_in_section(arr, ARRAY_SIZE(arr), mod, fn, data))
108482 + if (each_symbol_in_section(modarr, ARRAY_SIZE(modarr), mod, fn, data))
108483 return true;
108484 }
108485 return false;
108486 @@ -644,7 +681,7 @@ static int percpu_modalloc(struct module *mod, struct load_info *info)
108487 if (!pcpusec->sh_size)
108488 return 0;
108489
108490 - if (align > PAGE_SIZE) {
108491 + if (align-1 >= PAGE_SIZE) {
108492 pr_warn("%s: per-cpu alignment %li > %li\n",
108493 mod->name, align, PAGE_SIZE);
108494 align = PAGE_SIZE;
108495 @@ -1214,7 +1251,7 @@ struct module_attribute module_uevent =
108496 static ssize_t show_coresize(struct module_attribute *mattr,
108497 struct module_kobject *mk, char *buffer)
108498 {
108499 - return sprintf(buffer, "%u\n", mk->mod->core_size);
108500 + return sprintf(buffer, "%u\n", mk->mod->core_size_rx + mk->mod->core_size_rw);
108501 }
108502
108503 static struct module_attribute modinfo_coresize =
108504 @@ -1223,7 +1260,7 @@ static struct module_attribute modinfo_coresize =
108505 static ssize_t show_initsize(struct module_attribute *mattr,
108506 struct module_kobject *mk, char *buffer)
108507 {
108508 - return sprintf(buffer, "%u\n", mk->mod->init_size);
108509 + return sprintf(buffer, "%u\n", mk->mod->init_size_rx + mk->mod->init_size_rw);
108510 }
108511
108512 static struct module_attribute modinfo_initsize =
108513 @@ -1315,12 +1352,29 @@ static int check_version(Elf_Shdr *sechdrs,
108514 goto bad_version;
108515 }
108516
108517 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
108518 + /*
108519 + * avoid potentially printing jibberish on attempted load
108520 + * of a module randomized with a different seed
108521 + */
108522 + pr_warn("no symbol version for %s\n", symname);
108523 +#else
108524 pr_warn("%s: no symbol version for %s\n", mod->name, symname);
108525 +#endif
108526 return 0;
108527
108528 bad_version:
108529 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
108530 + /*
108531 + * avoid potentially printing jibberish on attempted load
108532 + * of a module randomized with a different seed
108533 + */
108534 + pr_warn("attempted module disagrees about version of symbol %s\n",
108535 + symname);
108536 +#else
108537 pr_warn("%s: disagrees about version of symbol %s\n",
108538 mod->name, symname);
108539 +#endif
108540 return 0;
108541 }
108542
108543 @@ -1448,7 +1502,7 @@ resolve_symbol_wait(struct module *mod,
108544 */
108545 #ifdef CONFIG_SYSFS
108546
108547 -#ifdef CONFIG_KALLSYMS
108548 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
108549 static inline bool sect_empty(const Elf_Shdr *sect)
108550 {
108551 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
108552 @@ -1586,7 +1640,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
108553 {
108554 unsigned int notes, loaded, i;
108555 struct module_notes_attrs *notes_attrs;
108556 - struct bin_attribute *nattr;
108557 + bin_attribute_no_const *nattr;
108558
108559 /* failed to create section attributes, so can't create notes */
108560 if (!mod->sect_attrs)
108561 @@ -1698,7 +1752,7 @@ static void del_usage_links(struct module *mod)
108562 static int module_add_modinfo_attrs(struct module *mod)
108563 {
108564 struct module_attribute *attr;
108565 - struct module_attribute *temp_attr;
108566 + module_attribute_no_const *temp_attr;
108567 int error = 0;
108568 int i;
108569
108570 @@ -1915,21 +1969,21 @@ static void set_section_ro_nx(void *base,
108571
108572 static void unset_module_core_ro_nx(struct module *mod)
108573 {
108574 - set_page_attributes(mod->module_core + mod->core_text_size,
108575 - mod->module_core + mod->core_size,
108576 + set_page_attributes(mod->module_core_rw,
108577 + mod->module_core_rw + mod->core_size_rw,
108578 set_memory_x);
108579 - set_page_attributes(mod->module_core,
108580 - mod->module_core + mod->core_ro_size,
108581 + set_page_attributes(mod->module_core_rx,
108582 + mod->module_core_rx + mod->core_size_rx,
108583 set_memory_rw);
108584 }
108585
108586 static void unset_module_init_ro_nx(struct module *mod)
108587 {
108588 - set_page_attributes(mod->module_init + mod->init_text_size,
108589 - mod->module_init + mod->init_size,
108590 + set_page_attributes(mod->module_init_rw,
108591 + mod->module_init_rw + mod->init_size_rw,
108592 set_memory_x);
108593 - set_page_attributes(mod->module_init,
108594 - mod->module_init + mod->init_ro_size,
108595 + set_page_attributes(mod->module_init_rx,
108596 + mod->module_init_rx + mod->init_size_rx,
108597 set_memory_rw);
108598 }
108599
108600 @@ -1942,14 +1996,14 @@ void set_all_modules_text_rw(void)
108601 list_for_each_entry_rcu(mod, &modules, list) {
108602 if (mod->state == MODULE_STATE_UNFORMED)
108603 continue;
108604 - if ((mod->module_core) && (mod->core_text_size)) {
108605 - set_page_attributes(mod->module_core,
108606 - mod->module_core + mod->core_text_size,
108607 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
108608 + set_page_attributes(mod->module_core_rx,
108609 + mod->module_core_rx + mod->core_size_rx,
108610 set_memory_rw);
108611 }
108612 - if ((mod->module_init) && (mod->init_text_size)) {
108613 - set_page_attributes(mod->module_init,
108614 - mod->module_init + mod->init_text_size,
108615 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
108616 + set_page_attributes(mod->module_init_rx,
108617 + mod->module_init_rx + mod->init_size_rx,
108618 set_memory_rw);
108619 }
108620 }
108621 @@ -1965,14 +2019,14 @@ void set_all_modules_text_ro(void)
108622 list_for_each_entry_rcu(mod, &modules, list) {
108623 if (mod->state == MODULE_STATE_UNFORMED)
108624 continue;
108625 - if ((mod->module_core) && (mod->core_text_size)) {
108626 - set_page_attributes(mod->module_core,
108627 - mod->module_core + mod->core_text_size,
108628 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
108629 + set_page_attributes(mod->module_core_rx,
108630 + mod->module_core_rx + mod->core_size_rx,
108631 set_memory_ro);
108632 }
108633 - if ((mod->module_init) && (mod->init_text_size)) {
108634 - set_page_attributes(mod->module_init,
108635 - mod->module_init + mod->init_text_size,
108636 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
108637 + set_page_attributes(mod->module_init_rx,
108638 + mod->module_init_rx + mod->init_size_rx,
108639 set_memory_ro);
108640 }
108641 }
108642 @@ -1981,7 +2035,15 @@ void set_all_modules_text_ro(void)
108643 #else
108644 static inline void set_section_ro_nx(void *base, unsigned long text_size, unsigned long ro_size, unsigned long total_size) { }
108645 static void unset_module_core_ro_nx(struct module *mod) { }
108646 -static void unset_module_init_ro_nx(struct module *mod) { }
108647 +static void unset_module_init_ro_nx(struct module *mod)
108648 +{
108649 +
108650 +#ifdef CONFIG_PAX_KERNEXEC
108651 + set_memory_nx((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
108652 + set_memory_rw((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
108653 +#endif
108654 +
108655 +}
108656 #endif
108657
108658 void __weak module_memfree(void *module_region)
108659 @@ -2036,16 +2098,19 @@ static void free_module(struct module *mod)
108660 /* This may be NULL, but that's OK */
108661 unset_module_init_ro_nx(mod);
108662 module_arch_freeing_init(mod);
108663 - module_memfree(mod->module_init);
108664 + module_memfree(mod->module_init_rw);
108665 + module_memfree_exec(mod->module_init_rx);
108666 kfree(mod->args);
108667 percpu_modfree(mod);
108668
108669 /* Free lock-classes; relies on the preceding sync_rcu(). */
108670 - lockdep_free_key_range(mod->module_core, mod->core_size);
108671 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
108672 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
108673
108674 /* Finally, free the core (containing the module structure) */
108675 unset_module_core_ro_nx(mod);
108676 - module_memfree(mod->module_core);
108677 + module_memfree_exec(mod->module_core_rx);
108678 + module_memfree(mod->module_core_rw);
108679
108680 #ifdef CONFIG_MPU
108681 update_protections(current->mm);
108682 @@ -2114,9 +2179,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
108683 int ret = 0;
108684 const struct kernel_symbol *ksym;
108685
108686 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108687 + int is_fs_load = 0;
108688 + int register_filesystem_found = 0;
108689 + char *p;
108690 +
108691 + p = strstr(mod->args, "grsec_modharden_fs");
108692 + if (p) {
108693 + char *endptr = p + sizeof("grsec_modharden_fs") - 1;
108694 + /* copy \0 as well */
108695 + memmove(p, endptr, strlen(mod->args) - (unsigned int)(endptr - mod->args) + 1);
108696 + is_fs_load = 1;
108697 + }
108698 +#endif
108699 +
108700 for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
108701 const char *name = info->strtab + sym[i].st_name;
108702
108703 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108704 + /* it's a real shame this will never get ripped and copied
108705 + upstream! ;(
108706 + */
108707 + if (is_fs_load && !strcmp(name, "register_filesystem"))
108708 + register_filesystem_found = 1;
108709 +#endif
108710 +
108711 switch (sym[i].st_shndx) {
108712 case SHN_COMMON:
108713 /* Ignore common symbols */
108714 @@ -2141,7 +2228,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
108715 ksym = resolve_symbol_wait(mod, info, name);
108716 /* Ok if resolved. */
108717 if (ksym && !IS_ERR(ksym)) {
108718 + pax_open_kernel();
108719 sym[i].st_value = ksym->value;
108720 + pax_close_kernel();
108721 break;
108722 }
108723
108724 @@ -2160,11 +2249,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
108725 secbase = (unsigned long)mod_percpu(mod);
108726 else
108727 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
108728 + pax_open_kernel();
108729 sym[i].st_value += secbase;
108730 + pax_close_kernel();
108731 break;
108732 }
108733 }
108734
108735 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108736 + if (is_fs_load && !register_filesystem_found) {
108737 + printk(KERN_ALERT "grsec: Denied attempt to load non-fs module %.64s through mount\n", mod->name);
108738 + ret = -EPERM;
108739 + }
108740 +#endif
108741 +
108742 return ret;
108743 }
108744
108745 @@ -2248,22 +2346,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
108746 || s->sh_entsize != ~0UL
108747 || strstarts(sname, ".init"))
108748 continue;
108749 - s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
108750 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
108751 + s->sh_entsize = get_offset(mod, &mod->core_size_rw, s, i);
108752 + else
108753 + s->sh_entsize = get_offset(mod, &mod->core_size_rx, s, i);
108754 pr_debug("\t%s\n", sname);
108755 }
108756 - switch (m) {
108757 - case 0: /* executable */
108758 - mod->core_size = debug_align(mod->core_size);
108759 - mod->core_text_size = mod->core_size;
108760 - break;
108761 - case 1: /* RO: text and ro-data */
108762 - mod->core_size = debug_align(mod->core_size);
108763 - mod->core_ro_size = mod->core_size;
108764 - break;
108765 - case 3: /* whole core */
108766 - mod->core_size = debug_align(mod->core_size);
108767 - break;
108768 - }
108769 }
108770
108771 pr_debug("Init section allocation order:\n");
108772 @@ -2277,23 +2365,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
108773 || s->sh_entsize != ~0UL
108774 || !strstarts(sname, ".init"))
108775 continue;
108776 - s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
108777 - | INIT_OFFSET_MASK);
108778 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
108779 + s->sh_entsize = get_offset(mod, &mod->init_size_rw, s, i);
108780 + else
108781 + s->sh_entsize = get_offset(mod, &mod->init_size_rx, s, i);
108782 + s->sh_entsize |= INIT_OFFSET_MASK;
108783 pr_debug("\t%s\n", sname);
108784 }
108785 - switch (m) {
108786 - case 0: /* executable */
108787 - mod->init_size = debug_align(mod->init_size);
108788 - mod->init_text_size = mod->init_size;
108789 - break;
108790 - case 1: /* RO: text and ro-data */
108791 - mod->init_size = debug_align(mod->init_size);
108792 - mod->init_ro_size = mod->init_size;
108793 - break;
108794 - case 3: /* whole init */
108795 - mod->init_size = debug_align(mod->init_size);
108796 - break;
108797 - }
108798 }
108799 }
108800
108801 @@ -2466,7 +2544,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
108802
108803 /* Put symbol section at end of init part of module. */
108804 symsect->sh_flags |= SHF_ALLOC;
108805 - symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
108806 + symsect->sh_entsize = get_offset(mod, &mod->init_size_rx, symsect,
108807 info->index.sym) | INIT_OFFSET_MASK;
108808 pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
108809
108810 @@ -2483,16 +2561,16 @@ static void layout_symtab(struct module *mod, struct load_info *info)
108811 }
108812
108813 /* Append room for core symbols at end of core part. */
108814 - info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
108815 - info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
108816 - mod->core_size += strtab_size;
108817 - mod->core_size = debug_align(mod->core_size);
108818 + info->symoffs = ALIGN(mod->core_size_rx, symsect->sh_addralign ?: 1);
108819 + info->stroffs = mod->core_size_rx = info->symoffs + ndst * sizeof(Elf_Sym);
108820 + mod->core_size_rx += strtab_size;
108821 + mod->core_size_rx = debug_align(mod->core_size_rx);
108822
108823 /* Put string table section at end of init part of module. */
108824 strsect->sh_flags |= SHF_ALLOC;
108825 - strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
108826 + strsect->sh_entsize = get_offset(mod, &mod->init_size_rx, strsect,
108827 info->index.str) | INIT_OFFSET_MASK;
108828 - mod->init_size = debug_align(mod->init_size);
108829 + mod->init_size_rx = debug_align(mod->init_size_rx);
108830 pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
108831 }
108832
108833 @@ -2509,12 +2587,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
108834 /* Make sure we get permanent strtab: don't use info->strtab. */
108835 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
108836
108837 + pax_open_kernel();
108838 +
108839 /* Set types up while we still have access to sections. */
108840 for (i = 0; i < mod->num_symtab; i++)
108841 mod->symtab[i].st_info = elf_type(&mod->symtab[i], info);
108842
108843 - mod->core_symtab = dst = mod->module_core + info->symoffs;
108844 - mod->core_strtab = s = mod->module_core + info->stroffs;
108845 + mod->core_symtab = dst = mod->module_core_rx + info->symoffs;
108846 + mod->core_strtab = s = mod->module_core_rx + info->stroffs;
108847 src = mod->symtab;
108848 for (ndst = i = 0; i < mod->num_symtab; i++) {
108849 if (i == 0 ||
108850 @@ -2526,6 +2606,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
108851 }
108852 }
108853 mod->core_num_syms = ndst;
108854 +
108855 + pax_close_kernel();
108856 }
108857 #else
108858 static inline void layout_symtab(struct module *mod, struct load_info *info)
108859 @@ -2825,7 +2907,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
108860 mod = (void *)info->sechdrs[info->index.mod].sh_addr;
108861
108862 if (info->index.sym == 0) {
108863 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
108864 + /*
108865 + * avoid potentially printing jibberish on attempted load
108866 + * of a module randomized with a different seed
108867 + */
108868 + pr_warn("module has no symbols (stripped?)\n");
108869 +#else
108870 pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
108871 +#endif
108872 return ERR_PTR(-ENOEXEC);
108873 }
108874
108875 @@ -2841,8 +2931,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
108876 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
108877 {
108878 const char *modmagic = get_modinfo(info, "vermagic");
108879 + const char *license = get_modinfo(info, "license");
108880 int err;
108881
108882 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
108883 + if (!license || !license_is_gpl_compatible(license))
108884 + return -ENOEXEC;
108885 +#endif
108886 +
108887 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
108888 modmagic = NULL;
108889
108890 @@ -2867,7 +2963,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
108891 }
108892
108893 /* Set up license info based on the info section */
108894 - set_license(mod, get_modinfo(info, "license"));
108895 + set_license(mod, license);
108896
108897 return 0;
108898 }
108899 @@ -2964,7 +3060,7 @@ static int move_module(struct module *mod, struct load_info *info)
108900 void *ptr;
108901
108902 /* Do the allocs. */
108903 - ptr = module_alloc(mod->core_size);
108904 + ptr = module_alloc(mod->core_size_rw);
108905 /*
108906 * The pointer to this block is stored in the module structure
108907 * which is inside the block. Just mark it as not being a
108908 @@ -2974,11 +3070,11 @@ static int move_module(struct module *mod, struct load_info *info)
108909 if (!ptr)
108910 return -ENOMEM;
108911
108912 - memset(ptr, 0, mod->core_size);
108913 - mod->module_core = ptr;
108914 + memset(ptr, 0, mod->core_size_rw);
108915 + mod->module_core_rw = ptr;
108916
108917 - if (mod->init_size) {
108918 - ptr = module_alloc(mod->init_size);
108919 + if (mod->init_size_rw) {
108920 + ptr = module_alloc(mod->init_size_rw);
108921 /*
108922 * The pointer to this block is stored in the module structure
108923 * which is inside the block. This block doesn't need to be
108924 @@ -2987,13 +3083,45 @@ static int move_module(struct module *mod, struct load_info *info)
108925 */
108926 kmemleak_ignore(ptr);
108927 if (!ptr) {
108928 - module_memfree(mod->module_core);
108929 + module_memfree(mod->module_core_rw);
108930 return -ENOMEM;
108931 }
108932 - memset(ptr, 0, mod->init_size);
108933 - mod->module_init = ptr;
108934 + memset(ptr, 0, mod->init_size_rw);
108935 + mod->module_init_rw = ptr;
108936 } else
108937 - mod->module_init = NULL;
108938 + mod->module_init_rw = NULL;
108939 +
108940 + ptr = module_alloc_exec(mod->core_size_rx);
108941 + kmemleak_not_leak(ptr);
108942 + if (!ptr) {
108943 + if (mod->module_init_rw)
108944 + module_memfree(mod->module_init_rw);
108945 + module_memfree(mod->module_core_rw);
108946 + return -ENOMEM;
108947 + }
108948 +
108949 + pax_open_kernel();
108950 + memset(ptr, 0, mod->core_size_rx);
108951 + pax_close_kernel();
108952 + mod->module_core_rx = ptr;
108953 +
108954 + if (mod->init_size_rx) {
108955 + ptr = module_alloc_exec(mod->init_size_rx);
108956 + kmemleak_ignore(ptr);
108957 + if (!ptr && mod->init_size_rx) {
108958 + module_memfree_exec(mod->module_core_rx);
108959 + if (mod->module_init_rw)
108960 + module_memfree(mod->module_init_rw);
108961 + module_memfree(mod->module_core_rw);
108962 + return -ENOMEM;
108963 + }
108964 +
108965 + pax_open_kernel();
108966 + memset(ptr, 0, mod->init_size_rx);
108967 + pax_close_kernel();
108968 + mod->module_init_rx = ptr;
108969 + } else
108970 + mod->module_init_rx = NULL;
108971
108972 /* Transfer each section which specifies SHF_ALLOC */
108973 pr_debug("final section addresses:\n");
108974 @@ -3004,16 +3132,45 @@ static int move_module(struct module *mod, struct load_info *info)
108975 if (!(shdr->sh_flags & SHF_ALLOC))
108976 continue;
108977
108978 - if (shdr->sh_entsize & INIT_OFFSET_MASK)
108979 - dest = mod->module_init
108980 - + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
108981 - else
108982 - dest = mod->module_core + shdr->sh_entsize;
108983 + if (shdr->sh_entsize & INIT_OFFSET_MASK) {
108984 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
108985 + dest = mod->module_init_rw
108986 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
108987 + else
108988 + dest = mod->module_init_rx
108989 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
108990 + } else {
108991 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
108992 + dest = mod->module_core_rw + shdr->sh_entsize;
108993 + else
108994 + dest = mod->module_core_rx + shdr->sh_entsize;
108995 + }
108996 +
108997 + if (shdr->sh_type != SHT_NOBITS) {
108998 +
108999 +#ifdef CONFIG_PAX_KERNEXEC
109000 +#ifdef CONFIG_X86_64
109001 + if ((shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_EXECINSTR))
109002 + set_memory_x((unsigned long)dest, (shdr->sh_size + PAGE_SIZE) >> PAGE_SHIFT);
109003 +#endif
109004 + if (!(shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_ALLOC)) {
109005 + pax_open_kernel();
109006 + memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
109007 + pax_close_kernel();
109008 + } else
109009 +#endif
109010
109011 - if (shdr->sh_type != SHT_NOBITS)
109012 memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
109013 + }
109014 /* Update sh_addr to point to copy in image. */
109015 - shdr->sh_addr = (unsigned long)dest;
109016 +
109017 +#ifdef CONFIG_PAX_KERNEXEC
109018 + if (shdr->sh_flags & SHF_EXECINSTR)
109019 + shdr->sh_addr = ktva_ktla((unsigned long)dest);
109020 + else
109021 +#endif
109022 +
109023 + shdr->sh_addr = (unsigned long)dest;
109024 pr_debug("\t0x%lx %s\n",
109025 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
109026 }
109027 @@ -3070,12 +3227,12 @@ static void flush_module_icache(const struct module *mod)
109028 * Do it before processing of module parameters, so the module
109029 * can provide parameter accessor functions of its own.
109030 */
109031 - if (mod->module_init)
109032 - flush_icache_range((unsigned long)mod->module_init,
109033 - (unsigned long)mod->module_init
109034 - + mod->init_size);
109035 - flush_icache_range((unsigned long)mod->module_core,
109036 - (unsigned long)mod->module_core + mod->core_size);
109037 + if (mod->module_init_rx)
109038 + flush_icache_range((unsigned long)mod->module_init_rx,
109039 + (unsigned long)mod->module_init_rx
109040 + + mod->init_size_rx);
109041 + flush_icache_range((unsigned long)mod->module_core_rx,
109042 + (unsigned long)mod->module_core_rx + mod->core_size_rx);
109043
109044 set_fs(old_fs);
109045 }
109046 @@ -3133,8 +3290,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
109047 {
109048 percpu_modfree(mod);
109049 module_arch_freeing_init(mod);
109050 - module_memfree(mod->module_init);
109051 - module_memfree(mod->module_core);
109052 + module_memfree_exec(mod->module_init_rx);
109053 + module_memfree_exec(mod->module_core_rx);
109054 + module_memfree(mod->module_init_rw);
109055 + module_memfree(mod->module_core_rw);
109056 }
109057
109058 int __weak module_finalize(const Elf_Ehdr *hdr,
109059 @@ -3147,7 +3306,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
109060 static int post_relocation(struct module *mod, const struct load_info *info)
109061 {
109062 /* Sort exception table now relocations are done. */
109063 + pax_open_kernel();
109064 sort_extable(mod->extable, mod->extable + mod->num_exentries);
109065 + pax_close_kernel();
109066
109067 /* Copy relocated percpu area over. */
109068 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
109069 @@ -3195,13 +3356,15 @@ static void do_mod_ctors(struct module *mod)
109070 /* For freeing module_init on success, in case kallsyms traversing */
109071 struct mod_initfree {
109072 struct rcu_head rcu;
109073 - void *module_init;
109074 + void *module_init_rw;
109075 + void *module_init_rx;
109076 };
109077
109078 static void do_free_init(struct rcu_head *head)
109079 {
109080 struct mod_initfree *m = container_of(head, struct mod_initfree, rcu);
109081 - module_memfree(m->module_init);
109082 + module_memfree(m->module_init_rw);
109083 + module_memfree_exec(m->module_init_rx);
109084 kfree(m);
109085 }
109086
109087 @@ -3221,7 +3384,8 @@ static noinline int do_init_module(struct module *mod)
109088 ret = -ENOMEM;
109089 goto fail;
109090 }
109091 - freeinit->module_init = mod->module_init;
109092 + freeinit->module_init_rw = mod->module_init_rw;
109093 + freeinit->module_init_rx = mod->module_init_rx;
109094
109095 /*
109096 * We want to find out whether @mod uses async during init. Clear
109097 @@ -3281,10 +3445,10 @@ static noinline int do_init_module(struct module *mod)
109098 mod_tree_remove_init(mod);
109099 unset_module_init_ro_nx(mod);
109100 module_arch_freeing_init(mod);
109101 - mod->module_init = NULL;
109102 - mod->init_size = 0;
109103 - mod->init_ro_size = 0;
109104 - mod->init_text_size = 0;
109105 + mod->module_init_rw = NULL;
109106 + mod->module_init_rx = NULL;
109107 + mod->init_size_rw = 0;
109108 + mod->init_size_rx = 0;
109109 /*
109110 * We want to free module_init, but be aware that kallsyms may be
109111 * walking this with preempt disabled. In all the failure paths, we
109112 @@ -3374,16 +3538,16 @@ static int complete_formation(struct module *mod, struct load_info *info)
109113 module_bug_finalize(info->hdr, info->sechdrs, mod);
109114
109115 /* Set RO and NX regions for core */
109116 - set_section_ro_nx(mod->module_core,
109117 - mod->core_text_size,
109118 - mod->core_ro_size,
109119 - mod->core_size);
109120 + set_section_ro_nx(mod->module_core_rx,
109121 + mod->core_size_rx,
109122 + mod->core_size_rx,
109123 + mod->core_size_rx);
109124
109125 /* Set RO and NX regions for init */
109126 - set_section_ro_nx(mod->module_init,
109127 - mod->init_text_size,
109128 - mod->init_ro_size,
109129 - mod->init_size);
109130 + set_section_ro_nx(mod->module_init_rx,
109131 + mod->init_size_rx,
109132 + mod->init_size_rx,
109133 + mod->init_size_rx);
109134
109135 /* Mark state as coming so strong_try_module_get() ignores us,
109136 * but kallsyms etc. can see us. */
109137 @@ -3478,9 +3642,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
109138 if (err)
109139 goto free_unload;
109140
109141 + /* Now copy in args */
109142 + mod->args = strndup_user(uargs, ~0UL >> 1);
109143 + if (IS_ERR(mod->args)) {
109144 + err = PTR_ERR(mod->args);
109145 + goto free_unload;
109146 + }
109147 +
109148 /* Set up MODINFO_ATTR fields */
109149 setup_modinfo(mod, info);
109150
109151 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
109152 + {
109153 + char *p, *p2;
109154 +
109155 + if (strstr(mod->args, "grsec_modharden_netdev")) {
109156 + 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);
109157 + err = -EPERM;
109158 + goto free_modinfo;
109159 + } else if ((p = strstr(mod->args, "grsec_modharden_normal"))) {
109160 + p += sizeof("grsec_modharden_normal") - 1;
109161 + p2 = strstr(p, "_");
109162 + if (p2) {
109163 + *p2 = '\0';
109164 + printk(KERN_ALERT "grsec: denied kernel module auto-load of %.64s by uid %.9s\n", mod->name, p);
109165 + *p2 = '_';
109166 + }
109167 + err = -EPERM;
109168 + goto free_modinfo;
109169 + }
109170 + }
109171 +#endif
109172 +
109173 /* Fix up syms, so that st_value is a pointer to location. */
109174 err = simplify_symbols(mod, info);
109175 if (err < 0)
109176 @@ -3496,13 +3689,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
109177
109178 flush_module_icache(mod);
109179
109180 - /* Now copy in args */
109181 - mod->args = strndup_user(uargs, ~0UL >> 1);
109182 - if (IS_ERR(mod->args)) {
109183 - err = PTR_ERR(mod->args);
109184 - goto free_arch_cleanup;
109185 - }
109186 -
109187 dynamic_debug_setup(info->debug, info->num_debug);
109188
109189 /* Ftrace init must be called in the MODULE_STATE_UNFORMED state */
109190 @@ -3554,11 +3740,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
109191 ddebug_cleanup:
109192 dynamic_debug_remove(info->debug);
109193 synchronize_sched();
109194 - kfree(mod->args);
109195 - free_arch_cleanup:
109196 module_arch_cleanup(mod);
109197 free_modinfo:
109198 free_modinfo(mod);
109199 + kfree(mod->args);
109200 free_unload:
109201 module_unload_free(mod);
109202 unlink_mod:
109203 @@ -3572,7 +3757,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
109204 mutex_unlock(&module_mutex);
109205 free_module:
109206 /* Free lock-classes; relies on the preceding sync_rcu() */
109207 - lockdep_free_key_range(mod->module_core, mod->core_size);
109208 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
109209 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
109210
109211 module_deallocate(mod, info);
109212 free_copy:
109213 @@ -3649,10 +3835,16 @@ static const char *get_ksymbol(struct module *mod,
109214 unsigned long nextval;
109215
109216 /* At worse, next value is at end of module */
109217 - if (within_module_init(addr, mod))
109218 - nextval = (unsigned long)mod->module_init+mod->init_text_size;
109219 + if (within_module_init_rx(addr, mod))
109220 + nextval = (unsigned long)mod->module_init_rx+mod->init_size_rx;
109221 + else if (within_module_init_rw(addr, mod))
109222 + nextval = (unsigned long)mod->module_init_rw+mod->init_size_rw;
109223 + else if (within_module_core_rx(addr, mod))
109224 + nextval = (unsigned long)mod->module_core_rx+mod->core_size_rx;
109225 + else if (within_module_core_rw(addr, mod))
109226 + nextval = (unsigned long)mod->module_core_rw+mod->core_size_rw;
109227 else
109228 - nextval = (unsigned long)mod->module_core+mod->core_text_size;
109229 + return NULL;
109230
109231 /* Scan for closest preceding symbol, and next symbol. (ELF
109232 starts real symbols at 1). */
109233 @@ -3899,7 +4091,7 @@ static int m_show(struct seq_file *m, void *p)
109234 return 0;
109235
109236 seq_printf(m, "%s %u",
109237 - mod->name, mod->init_size + mod->core_size);
109238 + mod->name, mod->init_size_rx + mod->init_size_rw + mod->core_size_rx + mod->core_size_rw);
109239 print_unload_info(m, mod);
109240
109241 /* Informative for users. */
109242 @@ -3908,7 +4100,7 @@ static int m_show(struct seq_file *m, void *p)
109243 mod->state == MODULE_STATE_COMING ? "Loading" :
109244 "Live");
109245 /* Used by oprofile and other similar tools. */
109246 - seq_printf(m, " 0x%pK", mod->module_core);
109247 + seq_printf(m, " 0x%pK 0x%pK", mod->module_core_rx, mod->module_core_rw);
109248
109249 /* Taints info */
109250 if (mod->taints)
109251 @@ -3944,7 +4136,17 @@ static const struct file_operations proc_modules_operations = {
109252
109253 static int __init proc_modules_init(void)
109254 {
109255 +#ifndef CONFIG_GRKERNSEC_HIDESYM
109256 +#ifdef CONFIG_GRKERNSEC_PROC_USER
109257 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
109258 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
109259 + proc_create("modules", S_IRUSR | S_IRGRP, NULL, &proc_modules_operations);
109260 +#else
109261 proc_create("modules", 0, NULL, &proc_modules_operations);
109262 +#endif
109263 +#else
109264 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
109265 +#endif
109266 return 0;
109267 }
109268 module_init(proc_modules_init);
109269 @@ -4005,7 +4207,8 @@ struct module *__module_address(unsigned long addr)
109270 {
109271 struct module *mod;
109272
109273 - if (addr < module_addr_min || addr > module_addr_max)
109274 + if ((addr < module_addr_min_rx || addr > module_addr_max_rx) &&
109275 + (addr < module_addr_min_rw || addr > module_addr_max_rw))
109276 return NULL;
109277
109278 module_assert_mutex_or_preempt();
109279 @@ -4048,11 +4251,20 @@ bool is_module_text_address(unsigned long addr)
109280 */
109281 struct module *__module_text_address(unsigned long addr)
109282 {
109283 - struct module *mod = __module_address(addr);
109284 + struct module *mod;
109285 +
109286 +#ifdef CONFIG_X86_32
109287 + addr = ktla_ktva(addr);
109288 +#endif
109289 +
109290 + if (addr < module_addr_min_rx || addr > module_addr_max_rx)
109291 + return NULL;
109292 +
109293 + mod = __module_address(addr);
109294 +
109295 if (mod) {
109296 /* Make sure it's within the text section. */
109297 - if (!within(addr, mod->module_init, mod->init_text_size)
109298 - && !within(addr, mod->module_core, mod->core_text_size))
109299 + if (!within_module_init_rx(addr, mod) && !within_module_core_rx(addr, mod))
109300 mod = NULL;
109301 }
109302 return mod;
109303 diff --git a/kernel/notifier.c b/kernel/notifier.c
109304 index ae9fc7c..5085fbf 100644
109305 --- a/kernel/notifier.c
109306 +++ b/kernel/notifier.c
109307 @@ -5,6 +5,7 @@
109308 #include <linux/rcupdate.h>
109309 #include <linux/vmalloc.h>
109310 #include <linux/reboot.h>
109311 +#include <linux/mm.h>
109312
109313 /*
109314 * Notifier list for kernel code which wants to be called
109315 @@ -24,10 +25,12 @@ static int notifier_chain_register(struct notifier_block **nl,
109316 while ((*nl) != NULL) {
109317 if (n->priority > (*nl)->priority)
109318 break;
109319 - nl = &((*nl)->next);
109320 + nl = (struct notifier_block **)&((*nl)->next);
109321 }
109322 - n->next = *nl;
109323 + pax_open_kernel();
109324 + *(const void **)&n->next = *nl;
109325 rcu_assign_pointer(*nl, n);
109326 + pax_close_kernel();
109327 return 0;
109328 }
109329
109330 @@ -39,10 +42,12 @@ static int notifier_chain_cond_register(struct notifier_block **nl,
109331 return 0;
109332 if (n->priority > (*nl)->priority)
109333 break;
109334 - nl = &((*nl)->next);
109335 + nl = (struct notifier_block **)&((*nl)->next);
109336 }
109337 - n->next = *nl;
109338 + pax_open_kernel();
109339 + *(const void **)&n->next = *nl;
109340 rcu_assign_pointer(*nl, n);
109341 + pax_close_kernel();
109342 return 0;
109343 }
109344
109345 @@ -51,10 +56,12 @@ static int notifier_chain_unregister(struct notifier_block **nl,
109346 {
109347 while ((*nl) != NULL) {
109348 if ((*nl) == n) {
109349 + pax_open_kernel();
109350 rcu_assign_pointer(*nl, n->next);
109351 + pax_close_kernel();
109352 return 0;
109353 }
109354 - nl = &((*nl)->next);
109355 + nl = (struct notifier_block **)&((*nl)->next);
109356 }
109357 return -ENOENT;
109358 }
109359 diff --git a/kernel/padata.c b/kernel/padata.c
109360 index b38bea9..91acfbe 100644
109361 --- a/kernel/padata.c
109362 +++ b/kernel/padata.c
109363 @@ -54,7 +54,7 @@ static int padata_cpu_hash(struct parallel_data *pd)
109364 * seq_nr mod. number of cpus in use.
109365 */
109366
109367 - seq_nr = atomic_inc_return(&pd->seq_nr);
109368 + seq_nr = atomic_inc_return_unchecked(&pd->seq_nr);
109369 cpu_index = seq_nr % cpumask_weight(pd->cpumask.pcpu);
109370
109371 return padata_index_to_cpu(pd, cpu_index);
109372 @@ -428,7 +428,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_instance *pinst,
109373 padata_init_pqueues(pd);
109374 padata_init_squeues(pd);
109375 setup_timer(&pd->timer, padata_reorder_timer, (unsigned long)pd);
109376 - atomic_set(&pd->seq_nr, -1);
109377 + atomic_set_unchecked(&pd->seq_nr, -1);
109378 atomic_set(&pd->reorder_objects, 0);
109379 atomic_set(&pd->refcnt, 0);
109380 pd->pinst = pinst;
109381 diff --git a/kernel/panic.c b/kernel/panic.c
109382 index 04e91ff..2419384 100644
109383 --- a/kernel/panic.c
109384 +++ b/kernel/panic.c
109385 @@ -54,7 +54,7 @@ EXPORT_SYMBOL(panic_blink);
109386 /*
109387 * Stop ourself in panic -- architecture code may override this
109388 */
109389 -void __weak panic_smp_self_stop(void)
109390 +void __weak __noreturn panic_smp_self_stop(void)
109391 {
109392 while (1)
109393 cpu_relax();
109394 @@ -426,7 +426,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
109395 disable_trace_on_warning();
109396
109397 pr_warn("------------[ cut here ]------------\n");
109398 - pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pS()\n",
109399 + pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pA()\n",
109400 raw_smp_processor_id(), current->pid, file, line, caller);
109401
109402 if (args)
109403 @@ -491,7 +491,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
109404 */
109405 __visible void __stack_chk_fail(void)
109406 {
109407 - panic("stack-protector: Kernel stack is corrupted in: %p\n",
109408 + dump_stack();
109409 + panic("stack-protector: Kernel stack is corrupted in: %pA\n",
109410 __builtin_return_address(0));
109411 }
109412 EXPORT_SYMBOL(__stack_chk_fail);
109413 diff --git a/kernel/pid.c b/kernel/pid.c
109414 index 4fd07d5..856f804 100644
109415 --- a/kernel/pid.c
109416 +++ b/kernel/pid.c
109417 @@ -33,6 +33,7 @@
109418 #include <linux/rculist.h>
109419 #include <linux/bootmem.h>
109420 #include <linux/hash.h>
109421 +#include <linux/security.h>
109422 #include <linux/pid_namespace.h>
109423 #include <linux/init_task.h>
109424 #include <linux/syscalls.h>
109425 @@ -47,7 +48,7 @@ struct pid init_struct_pid = INIT_STRUCT_PID;
109426
109427 int pid_max = PID_MAX_DEFAULT;
109428
109429 -#define RESERVED_PIDS 300
109430 +#define RESERVED_PIDS 500
109431
109432 int pid_max_min = RESERVED_PIDS + 1;
109433 int pid_max_max = PID_MAX_LIMIT;
109434 @@ -451,10 +452,18 @@ EXPORT_SYMBOL(pid_task);
109435 */
109436 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
109437 {
109438 + struct task_struct *task;
109439 +
109440 rcu_lockdep_assert(rcu_read_lock_held(),
109441 "find_task_by_pid_ns() needs rcu_read_lock()"
109442 " protection");
109443 - return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
109444 +
109445 + task = pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
109446 +
109447 + if (gr_pid_is_chrooted(task))
109448 + return NULL;
109449 +
109450 + return task;
109451 }
109452
109453 struct task_struct *find_task_by_vpid(pid_t vnr)
109454 @@ -462,13 +471,21 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
109455 return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
109456 }
109457
109458 +struct task_struct *find_task_by_vpid_unrestricted(pid_t vnr)
109459 +{
109460 + rcu_lockdep_assert(rcu_read_lock_held(),
109461 + "find_task_by_pid_ns() needs rcu_read_lock()"
109462 + " protection");
109463 + return pid_task(find_pid_ns(vnr, task_active_pid_ns(current)), PIDTYPE_PID);
109464 +}
109465 +
109466 struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
109467 {
109468 struct pid *pid;
109469 rcu_read_lock();
109470 if (type != PIDTYPE_PID)
109471 task = task->group_leader;
109472 - pid = get_pid(task->pids[type].pid);
109473 + pid = get_pid(rcu_dereference(task->pids[type].pid));
109474 rcu_read_unlock();
109475 return pid;
109476 }
109477 @@ -529,7 +546,7 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
109478 if (likely(pid_alive(task))) {
109479 if (type != PIDTYPE_PID)
109480 task = task->group_leader;
109481 - nr = pid_nr_ns(task->pids[type].pid, ns);
109482 + nr = pid_nr_ns(rcu_dereference(task->pids[type].pid), ns);
109483 }
109484 rcu_read_unlock();
109485
109486 diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
109487 index a65ba13..f600dbb 100644
109488 --- a/kernel/pid_namespace.c
109489 +++ b/kernel/pid_namespace.c
109490 @@ -274,7 +274,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
109491 void __user *buffer, size_t *lenp, loff_t *ppos)
109492 {
109493 struct pid_namespace *pid_ns = task_active_pid_ns(current);
109494 - struct ctl_table tmp = *table;
109495 + ctl_table_no_const tmp = *table;
109496
109497 if (write && !ns_capable(pid_ns->user_ns, CAP_SYS_ADMIN))
109498 return -EPERM;
109499 diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
109500 index 9e30231..75a6d97 100644
109501 --- a/kernel/power/Kconfig
109502 +++ b/kernel/power/Kconfig
109503 @@ -24,6 +24,8 @@ config HIBERNATE_CALLBACKS
109504 config HIBERNATION
109505 bool "Hibernation (aka 'suspend to disk')"
109506 depends on SWAP && ARCH_HIBERNATION_POSSIBLE
109507 + depends on !GRKERNSEC_KMEM
109508 + depends on !PAX_MEMORY_SANITIZE
109509 select HIBERNATE_CALLBACKS
109510 select LZO_COMPRESS
109511 select LZO_DECOMPRESS
109512 diff --git a/kernel/power/process.c b/kernel/power/process.c
109513 index 564f786..361a18e 100644
109514 --- a/kernel/power/process.c
109515 +++ b/kernel/power/process.c
109516 @@ -35,6 +35,7 @@ static int try_to_freeze_tasks(bool user_only)
109517 unsigned int elapsed_msecs;
109518 bool wakeup = false;
109519 int sleep_usecs = USEC_PER_MSEC;
109520 + bool timedout = false;
109521
109522 do_gettimeofday(&start);
109523
109524 @@ -45,13 +46,20 @@ static int try_to_freeze_tasks(bool user_only)
109525
109526 while (true) {
109527 todo = 0;
109528 + if (time_after(jiffies, end_time))
109529 + timedout = true;
109530 read_lock(&tasklist_lock);
109531 for_each_process_thread(g, p) {
109532 if (p == current || !freeze_task(p))
109533 continue;
109534
109535 - if (!freezer_should_skip(p))
109536 + if (!freezer_should_skip(p)) {
109537 todo++;
109538 + if (timedout) {
109539 + printk(KERN_ERR "Task refusing to freeze:\n");
109540 + sched_show_task(p);
109541 + }
109542 + }
109543 }
109544 read_unlock(&tasklist_lock);
109545
109546 @@ -60,7 +68,7 @@ static int try_to_freeze_tasks(bool user_only)
109547 todo += wq_busy;
109548 }
109549
109550 - if (!todo || time_after(jiffies, end_time))
109551 + if (!todo || timedout)
109552 break;
109553
109554 if (pm_wakeup_pending()) {
109555 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
109556 index cf8c242..16bca7e 100644
109557 --- a/kernel/printk/printk.c
109558 +++ b/kernel/printk/printk.c
109559 @@ -269,6 +269,9 @@ static u32 clear_idx;
109560 #define PREFIX_MAX 32
109561 #define LOG_LINE_MAX (1024 - PREFIX_MAX)
109562
109563 +#define LOG_LEVEL(v) ((v) & 0x07)
109564 +#define LOG_FACILITY(v) ((v) >> 3 & 0xff)
109565 +
109566 /* record buffer */
109567 #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
109568 #define LOG_ALIGN 4
109569 @@ -475,7 +478,7 @@ static int log_store(int facility, int level,
109570 return msg->text_len;
109571 }
109572
109573 -int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
109574 +int dmesg_restrict __read_only = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
109575
109576 static int syslog_action_restricted(int type)
109577 {
109578 @@ -498,6 +501,11 @@ int check_syslog_permissions(int type, int source)
109579 if (source == SYSLOG_FROM_PROC && type != SYSLOG_ACTION_OPEN)
109580 goto ok;
109581
109582 +#ifdef CONFIG_GRKERNSEC_DMESG
109583 + if (grsec_enable_dmesg && !capable(CAP_SYSLOG) && !capable_nolog(CAP_SYS_ADMIN))
109584 + return -EPERM;
109585 +#endif
109586 +
109587 if (syslog_action_restricted(type)) {
109588 if (capable(CAP_SYSLOG))
109589 goto ok;
109590 @@ -611,7 +619,6 @@ struct devkmsg_user {
109591 static ssize_t devkmsg_write(struct kiocb *iocb, struct iov_iter *from)
109592 {
109593 char *buf, *line;
109594 - int i;
109595 int level = default_message_loglevel;
109596 int facility = 1; /* LOG_USER */
109597 size_t len = iov_iter_count(from);
109598 @@ -641,12 +648,13 @@ static ssize_t devkmsg_write(struct kiocb *iocb, struct iov_iter *from)
109599 line = buf;
109600 if (line[0] == '<') {
109601 char *endp = NULL;
109602 + unsigned int u;
109603
109604 - i = simple_strtoul(line+1, &endp, 10);
109605 + u = simple_strtoul(line + 1, &endp, 10);
109606 if (endp && endp[0] == '>') {
109607 - level = i & 7;
109608 - if (i >> 3)
109609 - facility = i >> 3;
109610 + level = LOG_LEVEL(u);
109611 + if (LOG_FACILITY(u) != 0)
109612 + facility = LOG_FACILITY(u);
109613 endp++;
109614 len -= endp - line;
109615 line = endp;
109616 diff --git a/kernel/profile.c b/kernel/profile.c
109617 index a7bcd28..5b368fa 100644
109618 --- a/kernel/profile.c
109619 +++ b/kernel/profile.c
109620 @@ -37,7 +37,7 @@ struct profile_hit {
109621 #define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit))
109622 #define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ)
109623
109624 -static atomic_t *prof_buffer;
109625 +static atomic_unchecked_t *prof_buffer;
109626 static unsigned long prof_len, prof_shift;
109627
109628 int prof_on __read_mostly;
109629 @@ -256,7 +256,7 @@ static void profile_flip_buffers(void)
109630 hits[i].pc = 0;
109631 continue;
109632 }
109633 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
109634 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
109635 hits[i].hits = hits[i].pc = 0;
109636 }
109637 }
109638 @@ -317,9 +317,9 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
109639 * Add the current hit(s) and flush the write-queue out
109640 * to the global buffer:
109641 */
109642 - atomic_add(nr_hits, &prof_buffer[pc]);
109643 + atomic_add_unchecked(nr_hits, &prof_buffer[pc]);
109644 for (i = 0; i < NR_PROFILE_HIT; ++i) {
109645 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
109646 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
109647 hits[i].pc = hits[i].hits = 0;
109648 }
109649 out:
109650 @@ -394,7 +394,7 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
109651 {
109652 unsigned long pc;
109653 pc = ((unsigned long)__pc - (unsigned long)_stext) >> prof_shift;
109654 - atomic_add(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
109655 + atomic_add_unchecked(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
109656 }
109657 #endif /* !CONFIG_SMP */
109658
109659 @@ -489,7 +489,7 @@ read_profile(struct file *file, char __user *buf, size_t count, loff_t *ppos)
109660 return -EFAULT;
109661 buf++; p++; count--; read++;
109662 }
109663 - pnt = (char *)prof_buffer + p - sizeof(atomic_t);
109664 + pnt = (char *)prof_buffer + p - sizeof(atomic_unchecked_t);
109665 if (copy_to_user(buf, (void *)pnt, count))
109666 return -EFAULT;
109667 read += count;
109668 @@ -520,7 +520,7 @@ static ssize_t write_profile(struct file *file, const char __user *buf,
109669 }
109670 #endif
109671 profile_discard_flip_buffers();
109672 - memset(prof_buffer, 0, prof_len * sizeof(atomic_t));
109673 + memset(prof_buffer, 0, prof_len * sizeof(atomic_unchecked_t));
109674 return count;
109675 }
109676
109677 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
109678 index c8e0e05..2be5614 100644
109679 --- a/kernel/ptrace.c
109680 +++ b/kernel/ptrace.c
109681 @@ -321,7 +321,7 @@ static int ptrace_attach(struct task_struct *task, long request,
109682 if (seize)
109683 flags |= PT_SEIZED;
109684 rcu_read_lock();
109685 - if (ns_capable(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
109686 + if (ns_capable_nolog(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
109687 flags |= PT_PTRACE_CAP;
109688 rcu_read_unlock();
109689 task->ptrace = flags;
109690 @@ -514,7 +514,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
109691 break;
109692 return -EIO;
109693 }
109694 - if (copy_to_user(dst, buf, retval))
109695 + if (retval > sizeof(buf) || copy_to_user(dst, buf, retval))
109696 return -EFAULT;
109697 copied += retval;
109698 src += retval;
109699 @@ -802,7 +802,7 @@ int ptrace_request(struct task_struct *child, long request,
109700 bool seized = child->ptrace & PT_SEIZED;
109701 int ret = -EIO;
109702 siginfo_t siginfo, *si;
109703 - void __user *datavp = (void __user *) data;
109704 + void __user *datavp = (__force void __user *) data;
109705 unsigned long __user *datalp = datavp;
109706 unsigned long flags;
109707
109708 @@ -1048,14 +1048,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
109709 goto out;
109710 }
109711
109712 + if (gr_handle_ptrace(child, request)) {
109713 + ret = -EPERM;
109714 + goto out_put_task_struct;
109715 + }
109716 +
109717 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
109718 ret = ptrace_attach(child, request, addr, data);
109719 /*
109720 * Some architectures need to do book-keeping after
109721 * a ptrace attach.
109722 */
109723 - if (!ret)
109724 + if (!ret) {
109725 arch_ptrace_attach(child);
109726 + gr_audit_ptrace(child);
109727 + }
109728 goto out_put_task_struct;
109729 }
109730
109731 @@ -1083,7 +1090,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
109732 copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
109733 if (copied != sizeof(tmp))
109734 return -EIO;
109735 - return put_user(tmp, (unsigned long __user *)data);
109736 + return put_user(tmp, (__force unsigned long __user *)data);
109737 }
109738
109739 int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
109740 @@ -1176,7 +1183,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
109741 }
109742
109743 COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
109744 - compat_long_t, addr, compat_long_t, data)
109745 + compat_ulong_t, addr, compat_ulong_t, data)
109746 {
109747 struct task_struct *child;
109748 long ret;
109749 @@ -1192,14 +1199,21 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
109750 goto out;
109751 }
109752
109753 + if (gr_handle_ptrace(child, request)) {
109754 + ret = -EPERM;
109755 + goto out_put_task_struct;
109756 + }
109757 +
109758 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
109759 ret = ptrace_attach(child, request, addr, data);
109760 /*
109761 * Some architectures need to do book-keeping after
109762 * a ptrace attach.
109763 */
109764 - if (!ret)
109765 + if (!ret) {
109766 arch_ptrace_attach(child);
109767 + gr_audit_ptrace(child);
109768 + }
109769 goto out_put_task_struct;
109770 }
109771
109772 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
109773 index 59e32684..d2eb3d9 100644
109774 --- a/kernel/rcu/rcutorture.c
109775 +++ b/kernel/rcu/rcutorture.c
109776 @@ -134,12 +134,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
109777 rcu_torture_count) = { 0 };
109778 static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
109779 rcu_torture_batch) = { 0 };
109780 -static atomic_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
109781 -static atomic_t n_rcu_torture_alloc;
109782 -static atomic_t n_rcu_torture_alloc_fail;
109783 -static atomic_t n_rcu_torture_free;
109784 -static atomic_t n_rcu_torture_mberror;
109785 -static atomic_t n_rcu_torture_error;
109786 +static atomic_unchecked_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
109787 +static atomic_unchecked_t n_rcu_torture_alloc;
109788 +static atomic_unchecked_t n_rcu_torture_alloc_fail;
109789 +static atomic_unchecked_t n_rcu_torture_free;
109790 +static atomic_unchecked_t n_rcu_torture_mberror;
109791 +static atomic_unchecked_t n_rcu_torture_error;
109792 static long n_rcu_torture_barrier_error;
109793 static long n_rcu_torture_boost_ktrerror;
109794 static long n_rcu_torture_boost_rterror;
109795 @@ -148,7 +148,7 @@ static long n_rcu_torture_boosts;
109796 static long n_rcu_torture_timers;
109797 static long n_barrier_attempts;
109798 static long n_barrier_successes;
109799 -static atomic_long_t n_cbfloods;
109800 +static atomic_long_unchecked_t n_cbfloods;
109801 static struct list_head rcu_torture_removed;
109802
109803 static int rcu_torture_writer_state;
109804 @@ -211,11 +211,11 @@ rcu_torture_alloc(void)
109805
109806 spin_lock_bh(&rcu_torture_lock);
109807 if (list_empty(&rcu_torture_freelist)) {
109808 - atomic_inc(&n_rcu_torture_alloc_fail);
109809 + atomic_inc_unchecked(&n_rcu_torture_alloc_fail);
109810 spin_unlock_bh(&rcu_torture_lock);
109811 return NULL;
109812 }
109813 - atomic_inc(&n_rcu_torture_alloc);
109814 + atomic_inc_unchecked(&n_rcu_torture_alloc);
109815 p = rcu_torture_freelist.next;
109816 list_del_init(p);
109817 spin_unlock_bh(&rcu_torture_lock);
109818 @@ -228,7 +228,7 @@ rcu_torture_alloc(void)
109819 static void
109820 rcu_torture_free(struct rcu_torture *p)
109821 {
109822 - atomic_inc(&n_rcu_torture_free);
109823 + atomic_inc_unchecked(&n_rcu_torture_free);
109824 spin_lock_bh(&rcu_torture_lock);
109825 list_add_tail(&p->rtort_free, &rcu_torture_freelist);
109826 spin_unlock_bh(&rcu_torture_lock);
109827 @@ -309,7 +309,7 @@ rcu_torture_pipe_update_one(struct rcu_torture *rp)
109828 i = rp->rtort_pipe_count;
109829 if (i > RCU_TORTURE_PIPE_LEN)
109830 i = RCU_TORTURE_PIPE_LEN;
109831 - atomic_inc(&rcu_torture_wcount[i]);
109832 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
109833 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
109834 rp->rtort_mbtest = 0;
109835 return true;
109836 @@ -830,7 +830,7 @@ rcu_torture_cbflood(void *arg)
109837 VERBOSE_TOROUT_STRING("rcu_torture_cbflood task started");
109838 do {
109839 schedule_timeout_interruptible(cbflood_inter_holdoff);
109840 - atomic_long_inc(&n_cbfloods);
109841 + atomic_long_inc_unchecked(&n_cbfloods);
109842 WARN_ON(signal_pending(current));
109843 for (i = 0; i < cbflood_n_burst; i++) {
109844 for (j = 0; j < cbflood_n_per_burst; j++) {
109845 @@ -957,7 +957,7 @@ rcu_torture_writer(void *arg)
109846 i = old_rp->rtort_pipe_count;
109847 if (i > RCU_TORTURE_PIPE_LEN)
109848 i = RCU_TORTURE_PIPE_LEN;
109849 - atomic_inc(&rcu_torture_wcount[i]);
109850 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
109851 old_rp->rtort_pipe_count++;
109852 switch (synctype[torture_random(&rand) % nsynctypes]) {
109853 case RTWS_DEF_FREE:
109854 @@ -1095,7 +1095,7 @@ static void rcu_torture_timer(unsigned long unused)
109855 return;
109856 }
109857 if (p->rtort_mbtest == 0)
109858 - atomic_inc(&n_rcu_torture_mberror);
109859 + atomic_inc_unchecked(&n_rcu_torture_mberror);
109860 spin_lock(&rand_lock);
109861 cur_ops->read_delay(&rand);
109862 n_rcu_torture_timers++;
109863 @@ -1170,7 +1170,7 @@ rcu_torture_reader(void *arg)
109864 continue;
109865 }
109866 if (p->rtort_mbtest == 0)
109867 - atomic_inc(&n_rcu_torture_mberror);
109868 + atomic_inc_unchecked(&n_rcu_torture_mberror);
109869 cur_ops->read_delay(&rand);
109870 preempt_disable();
109871 pipe_count = p->rtort_pipe_count;
109872 @@ -1239,11 +1239,11 @@ rcu_torture_stats_print(void)
109873 rcu_torture_current,
109874 rcu_torture_current_version,
109875 list_empty(&rcu_torture_freelist),
109876 - atomic_read(&n_rcu_torture_alloc),
109877 - atomic_read(&n_rcu_torture_alloc_fail),
109878 - atomic_read(&n_rcu_torture_free));
109879 + atomic_read_unchecked(&n_rcu_torture_alloc),
109880 + atomic_read_unchecked(&n_rcu_torture_alloc_fail),
109881 + atomic_read_unchecked(&n_rcu_torture_free));
109882 pr_cont("rtmbe: %d rtbke: %ld rtbre: %ld ",
109883 - atomic_read(&n_rcu_torture_mberror),
109884 + atomic_read_unchecked(&n_rcu_torture_mberror),
109885 n_rcu_torture_boost_ktrerror,
109886 n_rcu_torture_boost_rterror);
109887 pr_cont("rtbf: %ld rtb: %ld nt: %ld ",
109888 @@ -1255,17 +1255,17 @@ rcu_torture_stats_print(void)
109889 n_barrier_successes,
109890 n_barrier_attempts,
109891 n_rcu_torture_barrier_error);
109892 - pr_cont("cbflood: %ld\n", atomic_long_read(&n_cbfloods));
109893 + pr_cont("cbflood: %ld\n", atomic_long_read_unchecked(&n_cbfloods));
109894
109895 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
109896 - if (atomic_read(&n_rcu_torture_mberror) != 0 ||
109897 + if (atomic_read_unchecked(&n_rcu_torture_mberror) != 0 ||
109898 n_rcu_torture_barrier_error != 0 ||
109899 n_rcu_torture_boost_ktrerror != 0 ||
109900 n_rcu_torture_boost_rterror != 0 ||
109901 n_rcu_torture_boost_failure != 0 ||
109902 i > 1) {
109903 pr_cont("%s", "!!! ");
109904 - atomic_inc(&n_rcu_torture_error);
109905 + atomic_inc_unchecked(&n_rcu_torture_error);
109906 WARN_ON_ONCE(1);
109907 }
109908 pr_cont("Reader Pipe: ");
109909 @@ -1282,7 +1282,7 @@ rcu_torture_stats_print(void)
109910 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
109911 pr_cont("Free-Block Circulation: ");
109912 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
109913 - pr_cont(" %d", atomic_read(&rcu_torture_wcount[i]));
109914 + pr_cont(" %d", atomic_read_unchecked(&rcu_torture_wcount[i]));
109915 }
109916 pr_cont("\n");
109917
109918 @@ -1636,7 +1636,7 @@ rcu_torture_cleanup(void)
109919
109920 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
109921
109922 - if (atomic_read(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
109923 + if (atomic_read_unchecked(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
109924 rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
109925 else if (torture_onoff_failures())
109926 rcu_torture_print_module_parms(cur_ops,
109927 @@ -1761,18 +1761,18 @@ rcu_torture_init(void)
109928
109929 rcu_torture_current = NULL;
109930 rcu_torture_current_version = 0;
109931 - atomic_set(&n_rcu_torture_alloc, 0);
109932 - atomic_set(&n_rcu_torture_alloc_fail, 0);
109933 - atomic_set(&n_rcu_torture_free, 0);
109934 - atomic_set(&n_rcu_torture_mberror, 0);
109935 - atomic_set(&n_rcu_torture_error, 0);
109936 + atomic_set_unchecked(&n_rcu_torture_alloc, 0);
109937 + atomic_set_unchecked(&n_rcu_torture_alloc_fail, 0);
109938 + atomic_set_unchecked(&n_rcu_torture_free, 0);
109939 + atomic_set_unchecked(&n_rcu_torture_mberror, 0);
109940 + atomic_set_unchecked(&n_rcu_torture_error, 0);
109941 n_rcu_torture_barrier_error = 0;
109942 n_rcu_torture_boost_ktrerror = 0;
109943 n_rcu_torture_boost_rterror = 0;
109944 n_rcu_torture_boost_failure = 0;
109945 n_rcu_torture_boosts = 0;
109946 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
109947 - atomic_set(&rcu_torture_wcount[i], 0);
109948 + atomic_set_unchecked(&rcu_torture_wcount[i], 0);
109949 for_each_possible_cpu(cpu) {
109950 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
109951 per_cpu(rcu_torture_count, cpu)[i] = 0;
109952 diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
109953 index c291bd6..8a01679 100644
109954 --- a/kernel/rcu/tiny.c
109955 +++ b/kernel/rcu/tiny.c
109956 @@ -42,7 +42,7 @@
109957 /* Forward declarations for tiny_plugin.h. */
109958 struct rcu_ctrlblk;
109959 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
109960 -static void rcu_process_callbacks(struct softirq_action *unused);
109961 +static void rcu_process_callbacks(void);
109962 static void __call_rcu(struct rcu_head *head,
109963 void (*func)(struct rcu_head *rcu),
109964 struct rcu_ctrlblk *rcp);
109965 @@ -170,7 +170,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
109966 false));
109967 }
109968
109969 -static void rcu_process_callbacks(struct softirq_action *unused)
109970 +static __latent_entropy void rcu_process_callbacks(void)
109971 {
109972 __rcu_process_callbacks(&rcu_sched_ctrlblk);
109973 __rcu_process_callbacks(&rcu_bh_ctrlblk);
109974 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
109975 index 65137bc..775d7ad 100644
109976 --- a/kernel/rcu/tree.c
109977 +++ b/kernel/rcu/tree.c
109978 @@ -326,7 +326,7 @@ static void rcu_momentary_dyntick_idle(void)
109979 */
109980 rdtp = this_cpu_ptr(&rcu_dynticks);
109981 smp_mb__before_atomic(); /* Earlier stuff before QS. */
109982 - atomic_add(2, &rdtp->dynticks); /* QS. */
109983 + atomic_add_unchecked(2, &rdtp->dynticks); /* QS. */
109984 smp_mb__after_atomic(); /* Later stuff after QS. */
109985 break;
109986 }
109987 @@ -639,10 +639,10 @@ static void rcu_eqs_enter_common(long long oldval, bool user)
109988 rcu_prepare_for_idle();
109989 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
109990 smp_mb__before_atomic(); /* See above. */
109991 - atomic_inc(&rdtp->dynticks);
109992 + atomic_inc_unchecked(&rdtp->dynticks);
109993 smp_mb__after_atomic(); /* Force ordering with next sojourn. */
109994 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
109995 - atomic_read(&rdtp->dynticks) & 0x1);
109996 + atomic_read_unchecked(&rdtp->dynticks) & 0x1);
109997 rcu_dynticks_task_enter();
109998
109999 /*
110000 @@ -765,11 +765,11 @@ static void rcu_eqs_exit_common(long long oldval, int user)
110001
110002 rcu_dynticks_task_exit();
110003 smp_mb__before_atomic(); /* Force ordering w/previous sojourn. */
110004 - atomic_inc(&rdtp->dynticks);
110005 + atomic_inc_unchecked(&rdtp->dynticks);
110006 /* CPUs seeing atomic_inc() must see later RCU read-side crit sects */
110007 smp_mb__after_atomic(); /* See above. */
110008 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
110009 - !(atomic_read(&rdtp->dynticks) & 0x1));
110010 + !(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
110011 rcu_cleanup_after_idle();
110012 trace_rcu_dyntick(TPS("End"), oldval, rdtp->dynticks_nesting);
110013 if (IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
110014 @@ -905,12 +905,12 @@ void rcu_nmi_enter(void)
110015 * to be in the outermost NMI handler that interrupted an RCU-idle
110016 * period (observation due to Andy Lutomirski).
110017 */
110018 - if (!(atomic_read(&rdtp->dynticks) & 0x1)) {
110019 + if (!(atomic_read_unchecked(&rdtp->dynticks) & 0x1)) {
110020 smp_mb__before_atomic(); /* Force delay from prior write. */
110021 - atomic_inc(&rdtp->dynticks);
110022 + atomic_inc_unchecked(&rdtp->dynticks);
110023 /* atomic_inc() before later RCU read-side crit sects */
110024 smp_mb__after_atomic(); /* See above. */
110025 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
110026 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
110027 incby = 1;
110028 }
110029 rdtp->dynticks_nmi_nesting += incby;
110030 @@ -935,7 +935,7 @@ void rcu_nmi_exit(void)
110031 * to us!)
110032 */
110033 WARN_ON_ONCE(rdtp->dynticks_nmi_nesting <= 0);
110034 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
110035 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
110036
110037 /*
110038 * If the nesting level is not 1, the CPU wasn't RCU-idle, so
110039 @@ -950,9 +950,9 @@ void rcu_nmi_exit(void)
110040 rdtp->dynticks_nmi_nesting = 0;
110041 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
110042 smp_mb__before_atomic(); /* See above. */
110043 - atomic_inc(&rdtp->dynticks);
110044 + atomic_inc_unchecked(&rdtp->dynticks);
110045 smp_mb__after_atomic(); /* Force delay to next write. */
110046 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks) & 0x1);
110047 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks) & 0x1);
110048 }
110049
110050 /**
110051 @@ -965,7 +965,7 @@ void rcu_nmi_exit(void)
110052 */
110053 bool notrace __rcu_is_watching(void)
110054 {
110055 - return atomic_read(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
110056 + return atomic_read_unchecked(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
110057 }
110058
110059 /**
110060 @@ -1048,7 +1048,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
110061 static int dyntick_save_progress_counter(struct rcu_data *rdp,
110062 bool *isidle, unsigned long *maxj)
110063 {
110064 - rdp->dynticks_snap = atomic_add_return(0, &rdp->dynticks->dynticks);
110065 + rdp->dynticks_snap = atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
110066 rcu_sysidle_check_cpu(rdp, isidle, maxj);
110067 if ((rdp->dynticks_snap & 0x1) == 0) {
110068 trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti"));
110069 @@ -1074,7 +1074,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
110070 int *rcrmp;
110071 unsigned int snap;
110072
110073 - curr = (unsigned int)atomic_add_return(0, &rdp->dynticks->dynticks);
110074 + curr = (unsigned int)atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
110075 snap = (unsigned int)rdp->dynticks_snap;
110076
110077 /*
110078 @@ -2895,7 +2895,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
110079 /*
110080 * Do RCU core processing for the current CPU.
110081 */
110082 -static void rcu_process_callbacks(struct softirq_action *unused)
110083 +static void rcu_process_callbacks(void)
110084 {
110085 struct rcu_state *rsp;
110086
110087 @@ -3319,11 +3319,11 @@ void synchronize_sched_expedited(void)
110088 * counter wrap on a 32-bit system. Quite a few more CPUs would of
110089 * course be required on a 64-bit system.
110090 */
110091 - if (ULONG_CMP_GE((ulong)atomic_long_read(&rsp->expedited_start),
110092 + if (ULONG_CMP_GE((ulong)atomic_long_read_unchecked(&rsp->expedited_start),
110093 (ulong)atomic_long_read(&rsp->expedited_done) +
110094 ULONG_MAX / 8)) {
110095 wait_rcu_gp(call_rcu_sched);
110096 - atomic_long_inc(&rsp->expedited_wrap);
110097 + atomic_long_inc_return_unchecked(&rsp->expedited_wrap);
110098 return;
110099 }
110100
110101 @@ -3331,12 +3331,12 @@ void synchronize_sched_expedited(void)
110102 * Take a ticket. Note that atomic_inc_return() implies a
110103 * full memory barrier.
110104 */
110105 - snap = atomic_long_inc_return(&rsp->expedited_start);
110106 + snap = atomic_long_inc_return_unchecked(&rsp->expedited_start);
110107 firstsnap = snap;
110108 if (!try_get_online_cpus()) {
110109 /* CPU hotplug operation in flight, fall back to normal GP. */
110110 wait_rcu_gp(call_rcu_sched);
110111 - atomic_long_inc(&rsp->expedited_normal);
110112 + atomic_long_inc_unchecked(&rsp->expedited_normal);
110113 return;
110114 }
110115 WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
110116 @@ -3349,7 +3349,7 @@ void synchronize_sched_expedited(void)
110117 for_each_cpu(cpu, cm) {
110118 struct rcu_dynticks *rdtp = &per_cpu(rcu_dynticks, cpu);
110119
110120 - if (!(atomic_add_return(0, &rdtp->dynticks) & 0x1))
110121 + if (!(atomic_add_return_unchecked(0, &rdtp->dynticks) & 0x1))
110122 cpumask_clear_cpu(cpu, cm);
110123 }
110124 if (cpumask_weight(cm) == 0)
110125 @@ -3364,14 +3364,14 @@ void synchronize_sched_expedited(void)
110126 synchronize_sched_expedited_cpu_stop,
110127 NULL) == -EAGAIN) {
110128 put_online_cpus();
110129 - atomic_long_inc(&rsp->expedited_tryfail);
110130 + atomic_long_inc_unchecked(&rsp->expedited_tryfail);
110131
110132 /* Check to see if someone else did our work for us. */
110133 s = atomic_long_read(&rsp->expedited_done);
110134 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
110135 /* ensure test happens before caller kfree */
110136 smp_mb__before_atomic(); /* ^^^ */
110137 - atomic_long_inc(&rsp->expedited_workdone1);
110138 + atomic_long_inc_unchecked(&rsp->expedited_workdone1);
110139 free_cpumask_var(cm);
110140 return;
110141 }
110142 @@ -3381,7 +3381,7 @@ void synchronize_sched_expedited(void)
110143 udelay(trycount * num_online_cpus());
110144 } else {
110145 wait_rcu_gp(call_rcu_sched);
110146 - atomic_long_inc(&rsp->expedited_normal);
110147 + atomic_long_inc_unchecked(&rsp->expedited_normal);
110148 free_cpumask_var(cm);
110149 return;
110150 }
110151 @@ -3391,7 +3391,7 @@ void synchronize_sched_expedited(void)
110152 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
110153 /* ensure test happens before caller kfree */
110154 smp_mb__before_atomic(); /* ^^^ */
110155 - atomic_long_inc(&rsp->expedited_workdone2);
110156 + atomic_long_inc_unchecked(&rsp->expedited_workdone2);
110157 free_cpumask_var(cm);
110158 return;
110159 }
110160 @@ -3406,14 +3406,14 @@ void synchronize_sched_expedited(void)
110161 if (!try_get_online_cpus()) {
110162 /* CPU hotplug operation in flight, use normal GP. */
110163 wait_rcu_gp(call_rcu_sched);
110164 - atomic_long_inc(&rsp->expedited_normal);
110165 + atomic_long_inc_unchecked(&rsp->expedited_normal);
110166 free_cpumask_var(cm);
110167 return;
110168 }
110169 - snap = atomic_long_read(&rsp->expedited_start);
110170 + snap = atomic_long_read_unchecked(&rsp->expedited_start);
110171 smp_mb(); /* ensure read is before try_stop_cpus(). */
110172 }
110173 - atomic_long_inc(&rsp->expedited_stoppedcpus);
110174 + atomic_long_inc_unchecked(&rsp->expedited_stoppedcpus);
110175
110176 all_cpus_idle:
110177 free_cpumask_var(cm);
110178 @@ -3425,16 +3425,16 @@ all_cpus_idle:
110179 * than we did already did their update.
110180 */
110181 do {
110182 - atomic_long_inc(&rsp->expedited_done_tries);
110183 + atomic_long_inc_unchecked(&rsp->expedited_done_tries);
110184 s = atomic_long_read(&rsp->expedited_done);
110185 if (ULONG_CMP_GE((ulong)s, (ulong)snap)) {
110186 /* ensure test happens before caller kfree */
110187 smp_mb__before_atomic(); /* ^^^ */
110188 - atomic_long_inc(&rsp->expedited_done_lost);
110189 + atomic_long_inc_unchecked(&rsp->expedited_done_lost);
110190 break;
110191 }
110192 } while (atomic_long_cmpxchg(&rsp->expedited_done, s, snap) != s);
110193 - atomic_long_inc(&rsp->expedited_done_exit);
110194 + atomic_long_inc_unchecked(&rsp->expedited_done_exit);
110195
110196 put_online_cpus();
110197 }
110198 @@ -3767,7 +3767,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
110199 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
110200 rdp->dynticks = &per_cpu(rcu_dynticks, cpu);
110201 WARN_ON_ONCE(rdp->dynticks->dynticks_nesting != DYNTICK_TASK_EXIT_IDLE);
110202 - WARN_ON_ONCE(atomic_read(&rdp->dynticks->dynticks) != 1);
110203 + WARN_ON_ONCE(atomic_read_unchecked(&rdp->dynticks->dynticks) != 1);
110204 rdp->cpu = cpu;
110205 rdp->rsp = rsp;
110206 rcu_boot_init_nocb_percpu_data(rdp);
110207 @@ -3798,8 +3798,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
110208 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */
110209 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
110210 rcu_sysidle_init_percpu_data(rdp->dynticks);
110211 - atomic_set(&rdp->dynticks->dynticks,
110212 - (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1);
110213 + atomic_set_unchecked(&rdp->dynticks->dynticks,
110214 + (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
110215 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */
110216
110217 /*
110218 diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
110219 index 4adb7ca..20910e6 100644
110220 --- a/kernel/rcu/tree.h
110221 +++ b/kernel/rcu/tree.h
110222 @@ -108,11 +108,11 @@ struct rcu_dynticks {
110223 long long dynticks_nesting; /* Track irq/process nesting level. */
110224 /* Process level is worth LLONG_MAX/2. */
110225 int dynticks_nmi_nesting; /* Track NMI nesting level. */
110226 - atomic_t dynticks; /* Even value for idle, else odd. */
110227 + atomic_unchecked_t dynticks;/* Even value for idle, else odd. */
110228 #ifdef CONFIG_NO_HZ_FULL_SYSIDLE
110229 long long dynticks_idle_nesting;
110230 /* irq/process nesting level from idle. */
110231 - atomic_t dynticks_idle; /* Even value for idle, else odd. */
110232 + atomic_unchecked_t dynticks_idle;/* Even value for idle, else odd. */
110233 /* "Idle" excludes userspace execution. */
110234 unsigned long dynticks_idle_jiffies;
110235 /* End of last non-NMI non-idle period. */
110236 @@ -483,17 +483,17 @@ struct rcu_state {
110237 /* _rcu_barrier(). */
110238 /* End of fields guarded by barrier_mutex. */
110239
110240 - atomic_long_t expedited_start; /* Starting ticket. */
110241 - atomic_long_t expedited_done; /* Done ticket. */
110242 - atomic_long_t expedited_wrap; /* # near-wrap incidents. */
110243 - atomic_long_t expedited_tryfail; /* # acquisition failures. */
110244 - atomic_long_t expedited_workdone1; /* # done by others #1. */
110245 - atomic_long_t expedited_workdone2; /* # done by others #2. */
110246 - atomic_long_t expedited_normal; /* # fallbacks to normal. */
110247 - atomic_long_t expedited_stoppedcpus; /* # successful stop_cpus. */
110248 - atomic_long_t expedited_done_tries; /* # tries to update _done. */
110249 - atomic_long_t expedited_done_lost; /* # times beaten to _done. */
110250 - atomic_long_t expedited_done_exit; /* # times exited _done loop. */
110251 + atomic_long_unchecked_t expedited_start; /* Starting ticket. */
110252 + atomic_long_t expedited_done; /* Done ticket. */
110253 + atomic_long_unchecked_t expedited_wrap; /* # near-wrap incidents. */
110254 + atomic_long_unchecked_t expedited_tryfail; /* # acquisition failures. */
110255 + atomic_long_unchecked_t expedited_workdone1; /* # done by others #1. */
110256 + atomic_long_unchecked_t expedited_workdone2; /* # done by others #2. */
110257 + atomic_long_unchecked_t expedited_normal; /* # fallbacks to normal. */
110258 + atomic_long_unchecked_t expedited_stoppedcpus; /* # successful stop_cpus. */
110259 + atomic_long_unchecked_t expedited_done_tries; /* # tries to update _done. */
110260 + atomic_long_unchecked_t expedited_done_lost; /* # times beaten to _done. */
110261 + atomic_long_unchecked_t expedited_done_exit; /* # times exited _done loop. */
110262
110263 unsigned long jiffies_force_qs; /* Time at which to invoke */
110264 /* force_quiescent_state(). */
110265 diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
110266 index 013485f..2e678db 100644
110267 --- a/kernel/rcu/tree_plugin.h
110268 +++ b/kernel/rcu/tree_plugin.h
110269 @@ -1294,7 +1294,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
110270 free_cpumask_var(cm);
110271 }
110272
110273 -static struct smp_hotplug_thread rcu_cpu_thread_spec = {
110274 +static struct smp_hotplug_thread rcu_cpu_thread_spec __read_only = {
110275 .store = &rcu_cpu_kthread_task,
110276 .thread_should_run = rcu_cpu_kthread_should_run,
110277 .thread_fn = rcu_cpu_kthread,
110278 @@ -1767,7 +1767,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
110279 print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
110280 pr_err("\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n",
110281 cpu, ticks_value, ticks_title,
110282 - atomic_read(&rdtp->dynticks) & 0xfff,
110283 + atomic_read_unchecked(&rdtp->dynticks) & 0xfff,
110284 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
110285 rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
110286 READ_ONCE(rsp->n_force_qs) - rsp->n_force_qs_gpstart,
110287 @@ -2675,9 +2675,9 @@ static void rcu_sysidle_enter(int irq)
110288 j = jiffies;
110289 WRITE_ONCE(rdtp->dynticks_idle_jiffies, j);
110290 smp_mb__before_atomic();
110291 - atomic_inc(&rdtp->dynticks_idle);
110292 + atomic_inc_unchecked(&rdtp->dynticks_idle);
110293 smp_mb__after_atomic();
110294 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks_idle) & 0x1);
110295 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1);
110296 }
110297
110298 /*
110299 @@ -2748,9 +2748,9 @@ static void rcu_sysidle_exit(int irq)
110300
110301 /* Record end of idle period. */
110302 smp_mb__before_atomic();
110303 - atomic_inc(&rdtp->dynticks_idle);
110304 + atomic_inc_unchecked(&rdtp->dynticks_idle);
110305 smp_mb__after_atomic();
110306 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks_idle) & 0x1));
110307 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1));
110308
110309 /*
110310 * If we are the timekeeping CPU, we are permitted to be non-idle
110311 @@ -2796,7 +2796,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
110312 WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
110313
110314 /* Pick up current idle and NMI-nesting counter and check. */
110315 - cur = atomic_read(&rdtp->dynticks_idle);
110316 + cur = atomic_read_unchecked(&rdtp->dynticks_idle);
110317 if (cur & 0x1) {
110318 *isidle = false; /* We are not idle! */
110319 return;
110320 diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
110321 index 3ea7ffc..cb06f2d 100644
110322 --- a/kernel/rcu/tree_trace.c
110323 +++ b/kernel/rcu/tree_trace.c
110324 @@ -125,7 +125,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
110325 rdp->rcu_qs_ctr_snap == per_cpu(rcu_qs_ctr, rdp->cpu),
110326 rdp->qs_pending);
110327 seq_printf(m, " dt=%d/%llx/%d df=%lu",
110328 - atomic_read(&rdp->dynticks->dynticks),
110329 + atomic_read_unchecked(&rdp->dynticks->dynticks),
110330 rdp->dynticks->dynticks_nesting,
110331 rdp->dynticks->dynticks_nmi_nesting,
110332 rdp->dynticks_fqs);
110333 @@ -186,17 +186,17 @@ static int show_rcuexp(struct seq_file *m, void *v)
110334 struct rcu_state *rsp = (struct rcu_state *)m->private;
110335
110336 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",
110337 - atomic_long_read(&rsp->expedited_start),
110338 + atomic_long_read_unchecked(&rsp->expedited_start),
110339 atomic_long_read(&rsp->expedited_done),
110340 - atomic_long_read(&rsp->expedited_wrap),
110341 - atomic_long_read(&rsp->expedited_tryfail),
110342 - atomic_long_read(&rsp->expedited_workdone1),
110343 - atomic_long_read(&rsp->expedited_workdone2),
110344 - atomic_long_read(&rsp->expedited_normal),
110345 - atomic_long_read(&rsp->expedited_stoppedcpus),
110346 - atomic_long_read(&rsp->expedited_done_tries),
110347 - atomic_long_read(&rsp->expedited_done_lost),
110348 - atomic_long_read(&rsp->expedited_done_exit));
110349 + atomic_long_read_unchecked(&rsp->expedited_wrap),
110350 + atomic_long_read_unchecked(&rsp->expedited_tryfail),
110351 + atomic_long_read_unchecked(&rsp->expedited_workdone1),
110352 + atomic_long_read_unchecked(&rsp->expedited_workdone2),
110353 + atomic_long_read_unchecked(&rsp->expedited_normal),
110354 + atomic_long_read_unchecked(&rsp->expedited_stoppedcpus),
110355 + atomic_long_read_unchecked(&rsp->expedited_done_tries),
110356 + atomic_long_read_unchecked(&rsp->expedited_done_lost),
110357 + atomic_long_read_unchecked(&rsp->expedited_done_exit));
110358 return 0;
110359 }
110360
110361 diff --git a/kernel/resource.c b/kernel/resource.c
110362 index fed052a..ad13346 100644
110363 --- a/kernel/resource.c
110364 +++ b/kernel/resource.c
110365 @@ -162,8 +162,18 @@ static const struct file_operations proc_iomem_operations = {
110366
110367 static int __init ioresources_init(void)
110368 {
110369 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
110370 +#ifdef CONFIG_GRKERNSEC_PROC_USER
110371 + proc_create("ioports", S_IRUSR, NULL, &proc_ioports_operations);
110372 + proc_create("iomem", S_IRUSR, NULL, &proc_iomem_operations);
110373 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
110374 + proc_create("ioports", S_IRUSR | S_IRGRP, NULL, &proc_ioports_operations);
110375 + proc_create("iomem", S_IRUSR | S_IRGRP, NULL, &proc_iomem_operations);
110376 +#endif
110377 +#else
110378 proc_create("ioports", 0, NULL, &proc_ioports_operations);
110379 proc_create("iomem", 0, NULL, &proc_iomem_operations);
110380 +#endif
110381 return 0;
110382 }
110383 __initcall(ioresources_init);
110384 diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
110385 index 750ed60..eb01466 100644
110386 --- a/kernel/sched/auto_group.c
110387 +++ b/kernel/sched/auto_group.c
110388 @@ -9,7 +9,7 @@
110389
110390 unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
110391 static struct autogroup autogroup_default;
110392 -static atomic_t autogroup_seq_nr;
110393 +static atomic_unchecked_t autogroup_seq_nr;
110394
110395 void __init autogroup_init(struct task_struct *init_task)
110396 {
110397 @@ -77,7 +77,7 @@ static inline struct autogroup *autogroup_create(void)
110398
110399 kref_init(&ag->kref);
110400 init_rwsem(&ag->lock);
110401 - ag->id = atomic_inc_return(&autogroup_seq_nr);
110402 + ag->id = atomic_inc_return_unchecked(&autogroup_seq_nr);
110403 ag->tg = tg;
110404 #ifdef CONFIG_RT_GROUP_SCHED
110405 /*
110406 diff --git a/kernel/sched/core.c b/kernel/sched/core.c
110407 index 6776631..45eb6ee 100644
110408 --- a/kernel/sched/core.c
110409 +++ b/kernel/sched/core.c
110410 @@ -2080,7 +2080,7 @@ void set_numabalancing_state(bool enabled)
110411 int sysctl_numa_balancing(struct ctl_table *table, int write,
110412 void __user *buffer, size_t *lenp, loff_t *ppos)
110413 {
110414 - struct ctl_table t;
110415 + ctl_table_no_const t;
110416 int err;
110417 int state = numabalancing_enabled;
110418
110419 @@ -2573,8 +2573,10 @@ context_switch(struct rq *rq, struct task_struct *prev,
110420 next->active_mm = oldmm;
110421 atomic_inc(&oldmm->mm_count);
110422 enter_lazy_tlb(oldmm, next);
110423 - } else
110424 + } else {
110425 switch_mm(oldmm, mm, next);
110426 + populate_stack();
110427 + }
110428
110429 if (!prev->mm) {
110430 prev->active_mm = NULL;
110431 @@ -3393,6 +3395,8 @@ int can_nice(const struct task_struct *p, const int nice)
110432 /* convert nice value [19,-20] to rlimit style value [1,40] */
110433 int nice_rlim = nice_to_rlimit(nice);
110434
110435 + gr_learn_resource(p, RLIMIT_NICE, nice_rlim, 1);
110436 +
110437 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
110438 capable(CAP_SYS_NICE));
110439 }
110440 @@ -3419,7 +3423,8 @@ SYSCALL_DEFINE1(nice, int, increment)
110441 nice = task_nice(current) + increment;
110442
110443 nice = clamp_val(nice, MIN_NICE, MAX_NICE);
110444 - if (increment < 0 && !can_nice(current, nice))
110445 + if (increment < 0 && (!can_nice(current, nice) ||
110446 + gr_handle_chroot_nice()))
110447 return -EPERM;
110448
110449 retval = security_task_setnice(current, nice);
110450 @@ -3731,6 +3736,7 @@ recheck:
110451 if (policy != p->policy && !rlim_rtprio)
110452 return -EPERM;
110453
110454 + gr_learn_resource(p, RLIMIT_RTPRIO, attr->sched_priority, 1);
110455 /* can't increase priority */
110456 if (attr->sched_priority > p->rt_priority &&
110457 attr->sched_priority > rlim_rtprio)
110458 @@ -5055,6 +5061,7 @@ void idle_task_exit(void)
110459
110460 if (mm != &init_mm) {
110461 switch_mm(mm, &init_mm, current);
110462 + populate_stack();
110463 finish_arch_post_lock_switch();
110464 }
110465 mmdrop(mm);
110466 @@ -5157,7 +5164,7 @@ static void migrate_tasks(struct rq *dead_rq)
110467
110468 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
110469
110470 -static struct ctl_table sd_ctl_dir[] = {
110471 +static ctl_table_no_const sd_ctl_dir[] __read_only = {
110472 {
110473 .procname = "sched_domain",
110474 .mode = 0555,
110475 @@ -5174,17 +5181,17 @@ static struct ctl_table sd_ctl_root[] = {
110476 {}
110477 };
110478
110479 -static struct ctl_table *sd_alloc_ctl_entry(int n)
110480 +static ctl_table_no_const *sd_alloc_ctl_entry(int n)
110481 {
110482 - struct ctl_table *entry =
110483 + ctl_table_no_const *entry =
110484 kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL);
110485
110486 return entry;
110487 }
110488
110489 -static void sd_free_ctl_entry(struct ctl_table **tablep)
110490 +static void sd_free_ctl_entry(ctl_table_no_const *tablep)
110491 {
110492 - struct ctl_table *entry;
110493 + ctl_table_no_const *entry;
110494
110495 /*
110496 * In the intermediate directories, both the child directory and
110497 @@ -5192,22 +5199,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
110498 * will always be set. In the lowest directory the names are
110499 * static strings and all have proc handlers.
110500 */
110501 - for (entry = *tablep; entry->mode; entry++) {
110502 - if (entry->child)
110503 - sd_free_ctl_entry(&entry->child);
110504 + for (entry = tablep; entry->mode; entry++) {
110505 + if (entry->child) {
110506 + sd_free_ctl_entry(entry->child);
110507 + pax_open_kernel();
110508 + entry->child = NULL;
110509 + pax_close_kernel();
110510 + }
110511 if (entry->proc_handler == NULL)
110512 kfree(entry->procname);
110513 }
110514
110515 - kfree(*tablep);
110516 - *tablep = NULL;
110517 + kfree(tablep);
110518 }
110519
110520 static int min_load_idx = 0;
110521 static int max_load_idx = CPU_LOAD_IDX_MAX-1;
110522
110523 static void
110524 -set_table_entry(struct ctl_table *entry,
110525 +set_table_entry(ctl_table_no_const *entry,
110526 const char *procname, void *data, int maxlen,
110527 umode_t mode, proc_handler *proc_handler,
110528 bool load_idx)
110529 @@ -5227,7 +5237,7 @@ set_table_entry(struct ctl_table *entry,
110530 static struct ctl_table *
110531 sd_alloc_ctl_domain_table(struct sched_domain *sd)
110532 {
110533 - struct ctl_table *table = sd_alloc_ctl_entry(14);
110534 + ctl_table_no_const *table = sd_alloc_ctl_entry(14);
110535
110536 if (table == NULL)
110537 return NULL;
110538 @@ -5265,9 +5275,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
110539 return table;
110540 }
110541
110542 -static struct ctl_table *sd_alloc_ctl_cpu_table(int cpu)
110543 +static ctl_table_no_const *sd_alloc_ctl_cpu_table(int cpu)
110544 {
110545 - struct ctl_table *entry, *table;
110546 + ctl_table_no_const *entry, *table;
110547 struct sched_domain *sd;
110548 int domain_num = 0, i;
110549 char buf[32];
110550 @@ -5294,11 +5304,13 @@ static struct ctl_table_header *sd_sysctl_header;
110551 static void register_sched_domain_sysctl(void)
110552 {
110553 int i, cpu_num = num_possible_cpus();
110554 - struct ctl_table *entry = sd_alloc_ctl_entry(cpu_num + 1);
110555 + ctl_table_no_const *entry = sd_alloc_ctl_entry(cpu_num + 1);
110556 char buf[32];
110557
110558 WARN_ON(sd_ctl_dir[0].child);
110559 + pax_open_kernel();
110560 sd_ctl_dir[0].child = entry;
110561 + pax_close_kernel();
110562
110563 if (entry == NULL)
110564 return;
110565 @@ -5321,8 +5333,12 @@ static void unregister_sched_domain_sysctl(void)
110566 if (sd_sysctl_header)
110567 unregister_sysctl_table(sd_sysctl_header);
110568 sd_sysctl_header = NULL;
110569 - if (sd_ctl_dir[0].child)
110570 - sd_free_ctl_entry(&sd_ctl_dir[0].child);
110571 + if (sd_ctl_dir[0].child) {
110572 + sd_free_ctl_entry(sd_ctl_dir[0].child);
110573 + pax_open_kernel();
110574 + sd_ctl_dir[0].child = NULL;
110575 + pax_close_kernel();
110576 + }
110577 }
110578 #else
110579 static void register_sched_domain_sysctl(void)
110580 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
110581 index d113c3b..91a6fcc 100644
110582 --- a/kernel/sched/fair.c
110583 +++ b/kernel/sched/fair.c
110584 @@ -7958,7 +7958,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
110585 * run_rebalance_domains is triggered when needed from the scheduler tick.
110586 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
110587 */
110588 -static void run_rebalance_domains(struct softirq_action *h)
110589 +static __latent_entropy void run_rebalance_domains(void)
110590 {
110591 struct rq *this_rq = this_rq();
110592 enum cpu_idle_type idle = this_rq->idle_balance ?
110593 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
110594 index 08ab96b..82ab34c 100644
110595 --- a/kernel/sched/sched.h
110596 +++ b/kernel/sched/sched.h
110597 @@ -1242,7 +1242,7 @@ struct sched_class {
110598 #ifdef CONFIG_FAIR_GROUP_SCHED
110599 void (*task_move_group) (struct task_struct *p, int on_rq);
110600 #endif
110601 -};
110602 +} __do_const;
110603
110604 static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
110605 {
110606 diff --git a/kernel/signal.c b/kernel/signal.c
110607 index 0f6bbbe..d77d2c3 100644
110608 --- a/kernel/signal.c
110609 +++ b/kernel/signal.c
110610 @@ -53,12 +53,12 @@ static struct kmem_cache *sigqueue_cachep;
110611
110612 int print_fatal_signals __read_mostly;
110613
110614 -static void __user *sig_handler(struct task_struct *t, int sig)
110615 +static __sighandler_t sig_handler(struct task_struct *t, int sig)
110616 {
110617 return t->sighand->action[sig - 1].sa.sa_handler;
110618 }
110619
110620 -static int sig_handler_ignored(void __user *handler, int sig)
110621 +static int sig_handler_ignored(__sighandler_t handler, int sig)
110622 {
110623 /* Is it explicitly or implicitly ignored? */
110624 return handler == SIG_IGN ||
110625 @@ -67,7 +67,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
110626
110627 static int sig_task_ignored(struct task_struct *t, int sig, bool force)
110628 {
110629 - void __user *handler;
110630 + __sighandler_t handler;
110631
110632 handler = sig_handler(t, sig);
110633
110634 @@ -372,6 +372,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
110635 atomic_inc(&user->sigpending);
110636 rcu_read_unlock();
110637
110638 + if (!override_rlimit)
110639 + gr_learn_resource(t, RLIMIT_SIGPENDING, atomic_read(&user->sigpending), 1);
110640 +
110641 if (override_rlimit ||
110642 atomic_read(&user->sigpending) <=
110643 task_rlimit(t, RLIMIT_SIGPENDING)) {
110644 @@ -494,7 +497,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
110645
110646 int unhandled_signal(struct task_struct *tsk, int sig)
110647 {
110648 - void __user *handler = tsk->sighand->action[sig-1].sa.sa_handler;
110649 + __sighandler_t handler = tsk->sighand->action[sig-1].sa.sa_handler;
110650 if (is_global_init(tsk))
110651 return 1;
110652 if (handler != SIG_IGN && handler != SIG_DFL)
110653 @@ -788,6 +791,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
110654 }
110655 }
110656
110657 + /* allow glibc communication via tgkill to other threads in our
110658 + thread group */
110659 + if ((info == SEND_SIG_NOINFO || info->si_code != SI_TKILL ||
110660 + sig != (SIGRTMIN+1) || task_tgid_vnr(t) != info->si_pid)
110661 + && gr_handle_signal(t, sig))
110662 + return -EPERM;
110663 +
110664 return security_task_kill(t, info, sig, 0);
110665 }
110666
110667 @@ -1171,7 +1181,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
110668 return send_signal(sig, info, p, 1);
110669 }
110670
110671 -static int
110672 +int
110673 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
110674 {
110675 return send_signal(sig, info, t, 0);
110676 @@ -1208,6 +1218,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
110677 unsigned long int flags;
110678 int ret, blocked, ignored;
110679 struct k_sigaction *action;
110680 + int is_unhandled = 0;
110681
110682 spin_lock_irqsave(&t->sighand->siglock, flags);
110683 action = &t->sighand->action[sig-1];
110684 @@ -1222,9 +1233,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
110685 }
110686 if (action->sa.sa_handler == SIG_DFL)
110687 t->signal->flags &= ~SIGNAL_UNKILLABLE;
110688 + if (action->sa.sa_handler == SIG_IGN || action->sa.sa_handler == SIG_DFL)
110689 + is_unhandled = 1;
110690 ret = specific_send_sig_info(sig, info, t);
110691 spin_unlock_irqrestore(&t->sighand->siglock, flags);
110692
110693 + /* only deal with unhandled signals, java etc trigger SIGSEGV during
110694 + normal operation */
110695 + if (is_unhandled) {
110696 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, t);
110697 + gr_handle_crash(t, sig);
110698 + }
110699 +
110700 return ret;
110701 }
110702
110703 @@ -1305,8 +1325,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
110704 ret = check_kill_permission(sig, info, p);
110705 rcu_read_unlock();
110706
110707 - if (!ret && sig)
110708 + if (!ret && sig) {
110709 ret = do_send_sig_info(sig, info, p, true);
110710 + if (!ret)
110711 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, p);
110712 + }
110713
110714 return ret;
110715 }
110716 @@ -2913,7 +2936,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
110717 int error = -ESRCH;
110718
110719 rcu_read_lock();
110720 - p = find_task_by_vpid(pid);
110721 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
110722 + /* allow glibc communication via tgkill to other threads in our
110723 + thread group */
110724 + if (grsec_enable_chroot_findtask && info->si_code == SI_TKILL &&
110725 + sig == (SIGRTMIN+1) && tgid == info->si_pid)
110726 + p = find_task_by_vpid_unrestricted(pid);
110727 + else
110728 +#endif
110729 + p = find_task_by_vpid(pid);
110730 if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) {
110731 error = check_kill_permission(sig, info, p);
110732 /*
110733 @@ -3242,8 +3273,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
110734 }
110735 seg = get_fs();
110736 set_fs(KERNEL_DS);
110737 - ret = do_sigaltstack((stack_t __force __user *) (uss_ptr ? &uss : NULL),
110738 - (stack_t __force __user *) &uoss,
110739 + ret = do_sigaltstack((stack_t __force_user *) (uss_ptr ? &uss : NULL),
110740 + (stack_t __force_user *) &uoss,
110741 compat_user_stack_pointer());
110742 set_fs(seg);
110743 if (ret >= 0 && uoss_ptr) {
110744 diff --git a/kernel/smpboot.c b/kernel/smpboot.c
110745 index 7c434c3..155d90a 100644
110746 --- a/kernel/smpboot.c
110747 +++ b/kernel/smpboot.c
110748 @@ -305,7 +305,7 @@ int smpboot_register_percpu_thread(struct smp_hotplug_thread *plug_thread)
110749 }
110750 smpboot_unpark_thread(plug_thread, cpu);
110751 }
110752 - list_add(&plug_thread->list, &hotplug_threads);
110753 + pax_list_add(&plug_thread->list, &hotplug_threads);
110754 out:
110755 mutex_unlock(&smpboot_threads_lock);
110756 put_online_cpus();
110757 @@ -323,7 +323,7 @@ void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)
110758 {
110759 get_online_cpus();
110760 mutex_lock(&smpboot_threads_lock);
110761 - list_del(&plug_thread->list);
110762 + pax_list_del(&plug_thread->list);
110763 smpboot_destroy_threads(plug_thread);
110764 mutex_unlock(&smpboot_threads_lock);
110765 put_online_cpus();
110766 diff --git a/kernel/softirq.c b/kernel/softirq.c
110767 index 479e443..66d845e1 100644
110768 --- a/kernel/softirq.c
110769 +++ b/kernel/softirq.c
110770 @@ -53,7 +53,7 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
110771 EXPORT_SYMBOL(irq_stat);
110772 #endif
110773
110774 -static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
110775 +static struct softirq_action softirq_vec[NR_SOFTIRQS] __read_only __aligned(PAGE_SIZE);
110776
110777 DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
110778
110779 @@ -270,7 +270,7 @@ restart:
110780 kstat_incr_softirqs_this_cpu(vec_nr);
110781
110782 trace_softirq_entry(vec_nr);
110783 - h->action(h);
110784 + h->action();
110785 trace_softirq_exit(vec_nr);
110786 if (unlikely(prev_count != preempt_count())) {
110787 pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
110788 @@ -430,7 +430,7 @@ void __raise_softirq_irqoff(unsigned int nr)
110789 or_softirq_pending(1UL << nr);
110790 }
110791
110792 -void open_softirq(int nr, void (*action)(struct softirq_action *))
110793 +void __init open_softirq(int nr, void (*action)(void))
110794 {
110795 softirq_vec[nr].action = action;
110796 }
110797 @@ -482,7 +482,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
110798 }
110799 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
110800
110801 -static void tasklet_action(struct softirq_action *a)
110802 +static void tasklet_action(void)
110803 {
110804 struct tasklet_struct *list;
110805
110806 @@ -518,7 +518,7 @@ static void tasklet_action(struct softirq_action *a)
110807 }
110808 }
110809
110810 -static void tasklet_hi_action(struct softirq_action *a)
110811 +static __latent_entropy void tasklet_hi_action(void)
110812 {
110813 struct tasklet_struct *list;
110814
110815 @@ -744,7 +744,7 @@ static struct notifier_block cpu_nfb = {
110816 .notifier_call = cpu_callback
110817 };
110818
110819 -static struct smp_hotplug_thread softirq_threads = {
110820 +static struct smp_hotplug_thread softirq_threads __read_only = {
110821 .store = &ksoftirqd,
110822 .thread_should_run = ksoftirqd_should_run,
110823 .thread_fn = run_ksoftirqd,
110824 diff --git a/kernel/sys.c b/kernel/sys.c
110825 index 259fda2..e824a93 100644
110826 --- a/kernel/sys.c
110827 +++ b/kernel/sys.c
110828 @@ -160,6 +160,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
110829 error = -EACCES;
110830 goto out;
110831 }
110832 +
110833 + if (gr_handle_chroot_setpriority(p, niceval)) {
110834 + error = -EACCES;
110835 + goto out;
110836 + }
110837 +
110838 no_nice = security_task_setnice(p, niceval);
110839 if (no_nice) {
110840 error = no_nice;
110841 @@ -366,6 +372,20 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
110842 goto error;
110843 }
110844
110845 + if (gr_check_group_change(new->gid, new->egid, INVALID_GID))
110846 + goto error;
110847 +
110848 + if (!gid_eq(new->gid, old->gid)) {
110849 + /* make sure we generate a learn log for what will
110850 + end up being a role transition after a full-learning
110851 + policy is generated
110852 + CAP_SETGID is required to perform a transition
110853 + we may not log a CAP_SETGID check above, e.g.
110854 + in the case where new rgid = old egid
110855 + */
110856 + gr_learn_cap(current, new, CAP_SETGID);
110857 + }
110858 +
110859 if (rgid != (gid_t) -1 ||
110860 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
110861 new->sgid = new->egid;
110862 @@ -401,6 +421,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
110863 old = current_cred();
110864
110865 retval = -EPERM;
110866 +
110867 + if (gr_check_group_change(kgid, kgid, kgid))
110868 + goto error;
110869 +
110870 if (ns_capable(old->user_ns, CAP_SETGID))
110871 new->gid = new->egid = new->sgid = new->fsgid = kgid;
110872 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
110873 @@ -418,7 +442,7 @@ error:
110874 /*
110875 * change the user struct in a credentials set to match the new UID
110876 */
110877 -static int set_user(struct cred *new)
110878 +int set_user(struct cred *new)
110879 {
110880 struct user_struct *new_user;
110881
110882 @@ -498,7 +522,18 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
110883 goto error;
110884 }
110885
110886 + if (gr_check_user_change(new->uid, new->euid, INVALID_UID))
110887 + goto error;
110888 +
110889 if (!uid_eq(new->uid, old->uid)) {
110890 + /* make sure we generate a learn log for what will
110891 + end up being a role transition after a full-learning
110892 + policy is generated
110893 + CAP_SETUID is required to perform a transition
110894 + we may not log a CAP_SETUID check above, e.g.
110895 + in the case where new ruid = old euid
110896 + */
110897 + gr_learn_cap(current, new, CAP_SETUID);
110898 retval = set_user(new);
110899 if (retval < 0)
110900 goto error;
110901 @@ -548,6 +583,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
110902 old = current_cred();
110903
110904 retval = -EPERM;
110905 +
110906 + if (gr_check_crash_uid(kuid))
110907 + goto error;
110908 + if (gr_check_user_change(kuid, kuid, kuid))
110909 + goto error;
110910 +
110911 if (ns_capable(old->user_ns, CAP_SETUID)) {
110912 new->suid = new->uid = kuid;
110913 if (!uid_eq(kuid, old->uid)) {
110914 @@ -617,6 +658,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
110915 goto error;
110916 }
110917
110918 + if (gr_check_user_change(kruid, keuid, INVALID_UID))
110919 + goto error;
110920 +
110921 if (ruid != (uid_t) -1) {
110922 new->uid = kruid;
110923 if (!uid_eq(kruid, old->uid)) {
110924 @@ -701,6 +745,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
110925 goto error;
110926 }
110927
110928 + if (gr_check_group_change(krgid, kegid, INVALID_GID))
110929 + goto error;
110930 +
110931 if (rgid != (gid_t) -1)
110932 new->gid = krgid;
110933 if (egid != (gid_t) -1)
110934 @@ -765,12 +812,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
110935 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
110936 ns_capable(old->user_ns, CAP_SETUID)) {
110937 if (!uid_eq(kuid, old->fsuid)) {
110938 + if (gr_check_user_change(INVALID_UID, INVALID_UID, kuid))
110939 + goto error;
110940 +
110941 new->fsuid = kuid;
110942 if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0)
110943 goto change_okay;
110944 }
110945 }
110946
110947 +error:
110948 abort_creds(new);
110949 return old_fsuid;
110950
110951 @@ -803,12 +854,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
110952 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) ||
110953 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
110954 ns_capable(old->user_ns, CAP_SETGID)) {
110955 + if (gr_check_group_change(INVALID_GID, INVALID_GID, kgid))
110956 + goto error;
110957 +
110958 if (!gid_eq(kgid, old->fsgid)) {
110959 new->fsgid = kgid;
110960 goto change_okay;
110961 }
110962 }
110963
110964 +error:
110965 abort_creds(new);
110966 return old_fsgid;
110967
110968 @@ -1187,19 +1242,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
110969 return -EFAULT;
110970
110971 down_read(&uts_sem);
110972 - error = __copy_to_user(&name->sysname, &utsname()->sysname,
110973 + error = __copy_to_user(name->sysname, &utsname()->sysname,
110974 __OLD_UTS_LEN);
110975 error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
110976 - error |= __copy_to_user(&name->nodename, &utsname()->nodename,
110977 + error |= __copy_to_user(name->nodename, &utsname()->nodename,
110978 __OLD_UTS_LEN);
110979 error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
110980 - error |= __copy_to_user(&name->release, &utsname()->release,
110981 + error |= __copy_to_user(name->release, &utsname()->release,
110982 __OLD_UTS_LEN);
110983 error |= __put_user(0, name->release + __OLD_UTS_LEN);
110984 - error |= __copy_to_user(&name->version, &utsname()->version,
110985 + error |= __copy_to_user(name->version, &utsname()->version,
110986 __OLD_UTS_LEN);
110987 error |= __put_user(0, name->version + __OLD_UTS_LEN);
110988 - error |= __copy_to_user(&name->machine, &utsname()->machine,
110989 + error |= __copy_to_user(name->machine, &utsname()->machine,
110990 __OLD_UTS_LEN);
110991 error |= __put_user(0, name->machine + __OLD_UTS_LEN);
110992 up_read(&uts_sem);
110993 @@ -1400,6 +1455,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
110994 */
110995 new_rlim->rlim_cur = 1;
110996 }
110997 + /* Handle the case where a fork and setuid occur and then RLIMIT_NPROC
110998 + is changed to a lower value. Since tasks can be created by the same
110999 + user in between this limit change and an execve by this task, force
111000 + a recheck only for this task by setting PF_NPROC_EXCEEDED
111001 + */
111002 + if (resource == RLIMIT_NPROC && tsk->real_cred->user != INIT_USER)
111003 + tsk->flags |= PF_NPROC_EXCEEDED;
111004 }
111005 if (!retval) {
111006 if (old_rlim)
111007 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
111008 index 19b62b5..74cc287 100644
111009 --- a/kernel/sysctl.c
111010 +++ b/kernel/sysctl.c
111011 @@ -94,7 +94,6 @@
111012 #endif
111013
111014 #if defined(CONFIG_SYSCTL)
111015 -
111016 /* External variables not in a header file. */
111017 extern int suid_dumpable;
111018 #ifdef CONFIG_COREDUMP
111019 @@ -111,22 +110,24 @@ extern int sysctl_nr_open_min, sysctl_nr_open_max;
111020 #ifndef CONFIG_MMU
111021 extern int sysctl_nr_trim_pages;
111022 #endif
111023 +extern int sysctl_modify_ldt;
111024
111025 /* Constants used for minimum and maximum */
111026 #ifdef CONFIG_LOCKUP_DETECTOR
111027 -static int sixty = 60;
111028 +static int sixty __read_only = 60;
111029 #endif
111030
111031 -static int __maybe_unused neg_one = -1;
111032 +static int __maybe_unused neg_one __read_only = -1;
111033
111034 -static int zero;
111035 -static int __maybe_unused one = 1;
111036 -static int __maybe_unused two = 2;
111037 -static int __maybe_unused four = 4;
111038 -static unsigned long one_ul = 1;
111039 -static int one_hundred = 100;
111040 +static int zero __read_only = 0;
111041 +static int __maybe_unused one __read_only = 1;
111042 +static int __maybe_unused two __read_only = 2;
111043 +static int __maybe_unused three __read_only = 3;
111044 +static int __maybe_unused four __read_only = 4;
111045 +static unsigned long one_ul __read_only = 1;
111046 +static int one_hundred __read_only = 100;
111047 #ifdef CONFIG_PRINTK
111048 -static int ten_thousand = 10000;
111049 +static int ten_thousand __read_only = 10000;
111050 #endif
111051
111052 /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
111053 @@ -180,10 +181,8 @@ static int proc_taint(struct ctl_table *table, int write,
111054 void __user *buffer, size_t *lenp, loff_t *ppos);
111055 #endif
111056
111057 -#ifdef CONFIG_PRINTK
111058 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
111059 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
111060 void __user *buffer, size_t *lenp, loff_t *ppos);
111061 -#endif
111062
111063 static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
111064 void __user *buffer, size_t *lenp, loff_t *ppos);
111065 @@ -214,6 +213,8 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
111066
111067 #endif
111068
111069 +extern struct ctl_table grsecurity_table[];
111070 +
111071 static struct ctl_table kern_table[];
111072 static struct ctl_table vm_table[];
111073 static struct ctl_table fs_table[];
111074 @@ -228,6 +229,20 @@ extern struct ctl_table epoll_table[];
111075 int sysctl_legacy_va_layout;
111076 #endif
111077
111078 +#ifdef CONFIG_PAX_SOFTMODE
111079 +static struct ctl_table pax_table[] = {
111080 + {
111081 + .procname = "softmode",
111082 + .data = &pax_softmode,
111083 + .maxlen = sizeof(unsigned int),
111084 + .mode = 0600,
111085 + .proc_handler = &proc_dointvec,
111086 + },
111087 +
111088 + { }
111089 +};
111090 +#endif
111091 +
111092 /* The default sysctl tables: */
111093
111094 static struct ctl_table sysctl_base_table[] = {
111095 @@ -276,6 +291,22 @@ static int max_extfrag_threshold = 1000;
111096 #endif
111097
111098 static struct ctl_table kern_table[] = {
111099 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS)
111100 + {
111101 + .procname = "grsecurity",
111102 + .mode = 0500,
111103 + .child = grsecurity_table,
111104 + },
111105 +#endif
111106 +
111107 +#ifdef CONFIG_PAX_SOFTMODE
111108 + {
111109 + .procname = "pax",
111110 + .mode = 0500,
111111 + .child = pax_table,
111112 + },
111113 +#endif
111114 +
111115 {
111116 .procname = "sched_child_runs_first",
111117 .data = &sysctl_sched_child_runs_first,
111118 @@ -628,7 +659,7 @@ static struct ctl_table kern_table[] = {
111119 .maxlen = sizeof(int),
111120 .mode = 0644,
111121 /* only handle a transition from default "0" to "1" */
111122 - .proc_handler = proc_dointvec_minmax,
111123 + .proc_handler = proc_dointvec_minmax_secure,
111124 .extra1 = &one,
111125 .extra2 = &one,
111126 },
111127 @@ -639,7 +670,7 @@ static struct ctl_table kern_table[] = {
111128 .data = &modprobe_path,
111129 .maxlen = KMOD_PATH_LEN,
111130 .mode = 0644,
111131 - .proc_handler = proc_dostring,
111132 + .proc_handler = proc_dostring_modpriv,
111133 },
111134 {
111135 .procname = "modules_disabled",
111136 @@ -647,7 +678,7 @@ static struct ctl_table kern_table[] = {
111137 .maxlen = sizeof(int),
111138 .mode = 0644,
111139 /* only handle a transition from default "0" to "1" */
111140 - .proc_handler = proc_dointvec_minmax,
111141 + .proc_handler = proc_dointvec_minmax_secure,
111142 .extra1 = &one,
111143 .extra2 = &one,
111144 },
111145 @@ -802,20 +833,24 @@ static struct ctl_table kern_table[] = {
111146 .data = &dmesg_restrict,
111147 .maxlen = sizeof(int),
111148 .mode = 0644,
111149 - .proc_handler = proc_dointvec_minmax_sysadmin,
111150 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111151 .extra1 = &zero,
111152 .extra2 = &one,
111153 },
111154 +#endif
111155 {
111156 .procname = "kptr_restrict",
111157 .data = &kptr_restrict,
111158 .maxlen = sizeof(int),
111159 .mode = 0644,
111160 - .proc_handler = proc_dointvec_minmax_sysadmin,
111161 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111162 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111163 + .extra1 = &two,
111164 +#else
111165 .extra1 = &zero,
111166 +#endif
111167 .extra2 = &two,
111168 },
111169 -#endif
111170 {
111171 .procname = "ngroups_max",
111172 .data = &ngroups_max,
111173 @@ -960,6 +995,15 @@ static struct ctl_table kern_table[] = {
111174 .mode = 0644,
111175 .proc_handler = proc_dointvec,
111176 },
111177 + {
111178 + .procname = "modify_ldt",
111179 + .data = &sysctl_modify_ldt,
111180 + .maxlen = sizeof(int),
111181 + .mode = 0644,
111182 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111183 + .extra1 = &zero,
111184 + .extra2 = &one,
111185 + },
111186 #endif
111187 #if defined(CONFIG_MMU)
111188 {
111189 @@ -1082,10 +1126,17 @@ static struct ctl_table kern_table[] = {
111190 */
111191 {
111192 .procname = "perf_event_paranoid",
111193 - .data = &sysctl_perf_event_paranoid,
111194 - .maxlen = sizeof(sysctl_perf_event_paranoid),
111195 + .data = &sysctl_perf_event_legitimately_concerned,
111196 + .maxlen = sizeof(sysctl_perf_event_legitimately_concerned),
111197 .mode = 0644,
111198 - .proc_handler = proc_dointvec,
111199 + /* go ahead, be a hero */
111200 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
111201 + .extra1 = &neg_one,
111202 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
111203 + .extra2 = &three,
111204 +#else
111205 + .extra2 = &two,
111206 +#endif
111207 },
111208 {
111209 .procname = "perf_event_mlock_kb",
111210 @@ -1376,6 +1427,13 @@ static struct ctl_table vm_table[] = {
111211 .proc_handler = proc_dointvec_minmax,
111212 .extra1 = &zero,
111213 },
111214 + {
111215 + .procname = "heap_stack_gap",
111216 + .data = &sysctl_heap_stack_gap,
111217 + .maxlen = sizeof(sysctl_heap_stack_gap),
111218 + .mode = 0644,
111219 + .proc_handler = proc_doulongvec_minmax,
111220 + },
111221 #else
111222 {
111223 .procname = "nr_trim_pages",
111224 @@ -1852,6 +1910,16 @@ int proc_dostring(struct ctl_table *table, int write,
111225 (char __user *)buffer, lenp, ppos);
111226 }
111227
111228 +int proc_dostring_modpriv(struct ctl_table *table, int write,
111229 + void __user *buffer, size_t *lenp, loff_t *ppos)
111230 +{
111231 + if (write && !capable(CAP_SYS_MODULE))
111232 + return -EPERM;
111233 +
111234 + return _proc_do_string(table->data, table->maxlen, write,
111235 + buffer, lenp, ppos);
111236 +}
111237 +
111238 static size_t proc_skip_spaces(char **buf)
111239 {
111240 size_t ret;
111241 @@ -1957,6 +2025,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
111242 len = strlen(tmp);
111243 if (len > *size)
111244 len = *size;
111245 + if (len > sizeof(tmp))
111246 + len = sizeof(tmp);
111247 if (copy_to_user(*buf, tmp, len))
111248 return -EFAULT;
111249 *size -= len;
111250 @@ -1995,7 +2065,7 @@ static int do_proc_dointvec_conv(bool *negp, unsigned long *lvalp,
111251 int val = *valp;
111252 if (val < 0) {
111253 *negp = true;
111254 - *lvalp = (unsigned long)-val;
111255 + *lvalp = -(unsigned long)val;
111256 } else {
111257 *negp = false;
111258 *lvalp = (unsigned long)val;
111259 @@ -2135,6 +2205,44 @@ int proc_dointvec(struct ctl_table *table, int write,
111260 NULL,NULL);
111261 }
111262
111263 +static int do_proc_dointvec_conv_secure(bool *negp, unsigned long *lvalp,
111264 + int *valp,
111265 + int write, void *data)
111266 +{
111267 + if (write) {
111268 + if (*negp) {
111269 + if (*lvalp > (unsigned long) INT_MAX + 1)
111270 + return -EINVAL;
111271 + pax_open_kernel();
111272 + *valp = -*lvalp;
111273 + pax_close_kernel();
111274 + } else {
111275 + if (*lvalp > (unsigned long) INT_MAX)
111276 + return -EINVAL;
111277 + pax_open_kernel();
111278 + *valp = *lvalp;
111279 + pax_close_kernel();
111280 + }
111281 + } else {
111282 + int val = *valp;
111283 + if (val < 0) {
111284 + *negp = true;
111285 + *lvalp = -(unsigned long)val;
111286 + } else {
111287 + *negp = false;
111288 + *lvalp = (unsigned long)val;
111289 + }
111290 + }
111291 + return 0;
111292 +}
111293 +
111294 +int proc_dointvec_secure(struct ctl_table *table, int write,
111295 + void __user *buffer, size_t *lenp, loff_t *ppos)
111296 +{
111297 + return do_proc_dointvec(table,write,buffer,lenp,ppos,
111298 + do_proc_dointvec_conv_secure,NULL);
111299 +}
111300 +
111301 /*
111302 * Taint values can only be increased
111303 * This means we can safely use a temporary.
111304 @@ -2142,7 +2250,7 @@ int proc_dointvec(struct ctl_table *table, int write,
111305 static int proc_taint(struct ctl_table *table, int write,
111306 void __user *buffer, size_t *lenp, loff_t *ppos)
111307 {
111308 - struct ctl_table t;
111309 + ctl_table_no_const t;
111310 unsigned long tmptaint = get_taint();
111311 int err;
111312
111313 @@ -2170,16 +2278,14 @@ static int proc_taint(struct ctl_table *table, int write,
111314 return err;
111315 }
111316
111317 -#ifdef CONFIG_PRINTK
111318 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
111319 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
111320 void __user *buffer, size_t *lenp, loff_t *ppos)
111321 {
111322 if (write && !capable(CAP_SYS_ADMIN))
111323 return -EPERM;
111324
111325 - return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
111326 + return proc_dointvec_minmax_secure(table, write, buffer, lenp, ppos);
111327 }
111328 -#endif
111329
111330 struct do_proc_dointvec_minmax_conv_param {
111331 int *min;
111332 @@ -2201,7 +2307,33 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
111333 int val = *valp;
111334 if (val < 0) {
111335 *negp = true;
111336 - *lvalp = (unsigned long)-val;
111337 + *lvalp = -(unsigned long)val;
111338 + } else {
111339 + *negp = false;
111340 + *lvalp = (unsigned long)val;
111341 + }
111342 + }
111343 + return 0;
111344 +}
111345 +
111346 +static int do_proc_dointvec_minmax_conv_secure(bool *negp, unsigned long *lvalp,
111347 + int *valp,
111348 + int write, void *data)
111349 +{
111350 + struct do_proc_dointvec_minmax_conv_param *param = data;
111351 + if (write) {
111352 + int val = *negp ? -*lvalp : *lvalp;
111353 + if ((param->min && *param->min > val) ||
111354 + (param->max && *param->max < val))
111355 + return -EINVAL;
111356 + pax_open_kernel();
111357 + *valp = val;
111358 + pax_close_kernel();
111359 + } else {
111360 + int val = *valp;
111361 + if (val < 0) {
111362 + *negp = true;
111363 + *lvalp = -(unsigned long)val;
111364 } else {
111365 *negp = false;
111366 *lvalp = (unsigned long)val;
111367 @@ -2237,6 +2369,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
111368 do_proc_dointvec_minmax_conv, &param);
111369 }
111370
111371 +int proc_dointvec_minmax_secure(struct ctl_table *table, int write,
111372 + void __user *buffer, size_t *lenp, loff_t *ppos)
111373 +{
111374 + struct do_proc_dointvec_minmax_conv_param param = {
111375 + .min = (int *) table->extra1,
111376 + .max = (int *) table->extra2,
111377 + };
111378 + return do_proc_dointvec(table, write, buffer, lenp, ppos,
111379 + do_proc_dointvec_minmax_conv_secure, &param);
111380 +}
111381 +
111382 static void validate_coredump_safety(void)
111383 {
111384 #ifdef CONFIG_COREDUMP
111385 @@ -2436,7 +2579,7 @@ static int do_proc_dointvec_jiffies_conv(bool *negp, unsigned long *lvalp,
111386 unsigned long lval;
111387 if (val < 0) {
111388 *negp = true;
111389 - lval = (unsigned long)-val;
111390 + lval = -(unsigned long)val;
111391 } else {
111392 *negp = false;
111393 lval = (unsigned long)val;
111394 @@ -2459,7 +2602,7 @@ static int do_proc_dointvec_userhz_jiffies_conv(bool *negp, unsigned long *lvalp
111395 unsigned long lval;
111396 if (val < 0) {
111397 *negp = true;
111398 - lval = (unsigned long)-val;
111399 + lval = -(unsigned long)val;
111400 } else {
111401 *negp = false;
111402 lval = (unsigned long)val;
111403 @@ -2484,7 +2627,7 @@ static int do_proc_dointvec_ms_jiffies_conv(bool *negp, unsigned long *lvalp,
111404 unsigned long lval;
111405 if (val < 0) {
111406 *negp = true;
111407 - lval = (unsigned long)-val;
111408 + lval = -(unsigned long)val;
111409 } else {
111410 *negp = false;
111411 lval = (unsigned long)val;
111412 @@ -2739,6 +2882,12 @@ int proc_dostring(struct ctl_table *table, int write,
111413 return -ENOSYS;
111414 }
111415
111416 +int proc_dostring_modpriv(struct ctl_table *table, int write,
111417 + void __user *buffer, size_t *lenp, loff_t *ppos)
111418 +{
111419 + return -ENOSYS;
111420 +}
111421 +
111422 int proc_dointvec(struct ctl_table *table, int write,
111423 void __user *buffer, size_t *lenp, loff_t *ppos)
111424 {
111425 @@ -2795,5 +2944,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
111426 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
111427 EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
111428 EXPORT_SYMBOL(proc_dostring);
111429 +EXPORT_SYMBOL(proc_dostring_modpriv);
111430 EXPORT_SYMBOL(proc_doulongvec_minmax);
111431 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
111432 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
111433 index 21f82c2..c1984e5 100644
111434 --- a/kernel/taskstats.c
111435 +++ b/kernel/taskstats.c
111436 @@ -28,9 +28,12 @@
111437 #include <linux/fs.h>
111438 #include <linux/file.h>
111439 #include <linux/pid_namespace.h>
111440 +#include <linux/grsecurity.h>
111441 #include <net/genetlink.h>
111442 #include <linux/atomic.h>
111443
111444 +extern int gr_is_taskstats_denied(int pid);
111445 +
111446 /*
111447 * Maximum length of a cpumask that can be specified in
111448 * the TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK attribute
111449 @@ -567,6 +570,9 @@ err:
111450
111451 static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
111452 {
111453 + if (gr_is_taskstats_denied(current->pid))
111454 + return -EACCES;
111455 +
111456 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
111457 return cmd_attr_register_cpumask(info);
111458 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
111459 diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
111460 index 7fbba635..7cc64ae 100644
111461 --- a/kernel/time/alarmtimer.c
111462 +++ b/kernel/time/alarmtimer.c
111463 @@ -820,7 +820,7 @@ static int __init alarmtimer_init(void)
111464 struct platform_device *pdev;
111465 int error = 0;
111466 int i;
111467 - struct k_clock alarm_clock = {
111468 + static struct k_clock alarm_clock = {
111469 .clock_getres = alarm_clock_getres,
111470 .clock_get = alarm_clock_get,
111471 .timer_create = alarm_timer_create,
111472 diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
111473 index 892e3da..cb71aa5 100644
111474 --- a/kernel/time/posix-cpu-timers.c
111475 +++ b/kernel/time/posix-cpu-timers.c
111476 @@ -1470,14 +1470,14 @@ struct k_clock clock_posix_cpu = {
111477
111478 static __init int init_posix_cpu_timers(void)
111479 {
111480 - struct k_clock process = {
111481 + static struct k_clock process = {
111482 .clock_getres = process_cpu_clock_getres,
111483 .clock_get = process_cpu_clock_get,
111484 .timer_create = process_cpu_timer_create,
111485 .nsleep = process_cpu_nsleep,
111486 .nsleep_restart = process_cpu_nsleep_restart,
111487 };
111488 - struct k_clock thread = {
111489 + static struct k_clock thread = {
111490 .clock_getres = thread_cpu_clock_getres,
111491 .clock_get = thread_cpu_clock_get,
111492 .timer_create = thread_cpu_timer_create,
111493 diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
111494 index 31d11ac..5a3bb13 100644
111495 --- a/kernel/time/posix-timers.c
111496 +++ b/kernel/time/posix-timers.c
111497 @@ -43,6 +43,7 @@
111498 #include <linux/hash.h>
111499 #include <linux/posix-clock.h>
111500 #include <linux/posix-timers.h>
111501 +#include <linux/grsecurity.h>
111502 #include <linux/syscalls.h>
111503 #include <linux/wait.h>
111504 #include <linux/workqueue.h>
111505 @@ -124,7 +125,7 @@ static DEFINE_SPINLOCK(hash_lock);
111506 * which we beg off on and pass to do_sys_settimeofday().
111507 */
111508
111509 -static struct k_clock posix_clocks[MAX_CLOCKS];
111510 +static struct k_clock *posix_clocks[MAX_CLOCKS];
111511
111512 /*
111513 * These ones are defined below.
111514 @@ -284,7 +285,7 @@ static int posix_get_hrtimer_res(clockid_t which_clock, struct timespec *tp)
111515 */
111516 static __init int init_posix_timers(void)
111517 {
111518 - struct k_clock clock_realtime = {
111519 + static struct k_clock clock_realtime = {
111520 .clock_getres = posix_get_hrtimer_res,
111521 .clock_get = posix_clock_realtime_get,
111522 .clock_set = posix_clock_realtime_set,
111523 @@ -296,7 +297,7 @@ static __init int init_posix_timers(void)
111524 .timer_get = common_timer_get,
111525 .timer_del = common_timer_del,
111526 };
111527 - struct k_clock clock_monotonic = {
111528 + static struct k_clock clock_monotonic = {
111529 .clock_getres = posix_get_hrtimer_res,
111530 .clock_get = posix_ktime_get_ts,
111531 .nsleep = common_nsleep,
111532 @@ -306,19 +307,19 @@ static __init int init_posix_timers(void)
111533 .timer_get = common_timer_get,
111534 .timer_del = common_timer_del,
111535 };
111536 - struct k_clock clock_monotonic_raw = {
111537 + static struct k_clock clock_monotonic_raw = {
111538 .clock_getres = posix_get_hrtimer_res,
111539 .clock_get = posix_get_monotonic_raw,
111540 };
111541 - struct k_clock clock_realtime_coarse = {
111542 + static struct k_clock clock_realtime_coarse = {
111543 .clock_getres = posix_get_coarse_res,
111544 .clock_get = posix_get_realtime_coarse,
111545 };
111546 - struct k_clock clock_monotonic_coarse = {
111547 + static struct k_clock clock_monotonic_coarse = {
111548 .clock_getres = posix_get_coarse_res,
111549 .clock_get = posix_get_monotonic_coarse,
111550 };
111551 - struct k_clock clock_tai = {
111552 + static struct k_clock clock_tai = {
111553 .clock_getres = posix_get_hrtimer_res,
111554 .clock_get = posix_get_tai,
111555 .nsleep = common_nsleep,
111556 @@ -328,7 +329,7 @@ static __init int init_posix_timers(void)
111557 .timer_get = common_timer_get,
111558 .timer_del = common_timer_del,
111559 };
111560 - struct k_clock clock_boottime = {
111561 + static struct k_clock clock_boottime = {
111562 .clock_getres = posix_get_hrtimer_res,
111563 .clock_get = posix_get_boottime,
111564 .nsleep = common_nsleep,
111565 @@ -540,7 +541,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
111566 return;
111567 }
111568
111569 - posix_clocks[clock_id] = *new_clock;
111570 + posix_clocks[clock_id] = new_clock;
111571 }
111572 EXPORT_SYMBOL_GPL(posix_timers_register_clock);
111573
111574 @@ -586,9 +587,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
111575 return (id & CLOCKFD_MASK) == CLOCKFD ?
111576 &clock_posix_dynamic : &clock_posix_cpu;
111577
111578 - if (id >= MAX_CLOCKS || !posix_clocks[id].clock_getres)
111579 + if (id >= MAX_CLOCKS || !posix_clocks[id] || !posix_clocks[id]->clock_getres)
111580 return NULL;
111581 - return &posix_clocks[id];
111582 + return posix_clocks[id];
111583 }
111584
111585 static int common_timer_create(struct k_itimer *new_timer)
111586 @@ -606,7 +607,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
111587 struct k_clock *kc = clockid_to_kclock(which_clock);
111588 struct k_itimer *new_timer;
111589 int error, new_timer_id;
111590 - sigevent_t event;
111591 + sigevent_t event = { };
111592 int it_id_set = IT_ID_NOT_SET;
111593
111594 if (!kc)
111595 @@ -1021,6 +1022,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
111596 if (copy_from_user(&new_tp, tp, sizeof (*tp)))
111597 return -EFAULT;
111598
111599 + /* only the CLOCK_REALTIME clock can be set, all other clocks
111600 + have their clock_set fptr set to a nosettime dummy function
111601 + CLOCK_REALTIME has a NULL clock_set fptr which causes it to
111602 + call common_clock_set, which calls do_sys_settimeofday, which
111603 + we hook
111604 + */
111605 +
111606 return kc->clock_set(which_clock, &new_tp);
111607 }
111608
111609 diff --git a/kernel/time/time.c b/kernel/time/time.c
111610 index 85d5bb1..aeca463 100644
111611 --- a/kernel/time/time.c
111612 +++ b/kernel/time/time.c
111613 @@ -177,6 +177,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
111614 if (tz->tz_minuteswest > 15*60 || tz->tz_minuteswest < -15*60)
111615 return -EINVAL;
111616
111617 + /* we log in do_settimeofday called below, so don't log twice
111618 + */
111619 + if (!tv)
111620 + gr_log_timechange();
111621 +
111622 sys_tz = *tz;
111623 update_vsyscall_tz();
111624 if (firsttime) {
111625 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
111626 index 3688f1e..3dfea48 100644
111627 --- a/kernel/time/timekeeping.c
111628 +++ b/kernel/time/timekeeping.c
111629 @@ -15,6 +15,7 @@
111630 #include <linux/init.h>
111631 #include <linux/mm.h>
111632 #include <linux/sched.h>
111633 +#include <linux/grsecurity.h>
111634 #include <linux/syscore_ops.h>
111635 #include <linux/clocksource.h>
111636 #include <linux/jiffies.h>
111637 @@ -915,6 +916,8 @@ int do_settimeofday64(const struct timespec64 *ts)
111638 if (!timespec64_valid_strict(ts))
111639 return -EINVAL;
111640
111641 + gr_log_timechange();
111642 +
111643 raw_spin_lock_irqsave(&timekeeper_lock, flags);
111644 write_seqcount_begin(&tk_core.seq);
111645
111646 diff --git a/kernel/time/timer.c b/kernel/time/timer.c
111647 index 84190f0..6f4ccad 100644
111648 --- a/kernel/time/timer.c
111649 +++ b/kernel/time/timer.c
111650 @@ -1406,7 +1406,7 @@ void update_process_times(int user_tick)
111651 /*
111652 * This function runs timers and the timer-tq in bottom half context.
111653 */
111654 -static void run_timer_softirq(struct softirq_action *h)
111655 +static __latent_entropy void run_timer_softirq(void)
111656 {
111657 struct tvec_base *base = this_cpu_ptr(&tvec_bases);
111658
111659 diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
111660 index a4536e1..5d8774c 100644
111661 --- a/kernel/time/timer_list.c
111662 +++ b/kernel/time/timer_list.c
111663 @@ -50,12 +50,16 @@ static void SEQ_printf(struct seq_file *m, const char *fmt, ...)
111664
111665 static void print_name_offset(struct seq_file *m, void *sym)
111666 {
111667 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111668 + SEQ_printf(m, "<%p>", NULL);
111669 +#else
111670 char symname[KSYM_NAME_LEN];
111671
111672 if (lookup_symbol_name((unsigned long)sym, symname) < 0)
111673 SEQ_printf(m, "<%pK>", sym);
111674 else
111675 SEQ_printf(m, "%s", symname);
111676 +#endif
111677 }
111678
111679 static void
111680 @@ -124,11 +128,14 @@ next_one:
111681 static void
111682 print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now)
111683 {
111684 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111685 + SEQ_printf(m, " .base: %p\n", NULL);
111686 +#else
111687 SEQ_printf(m, " .base: %pK\n", base);
111688 +#endif
111689 SEQ_printf(m, " .index: %d\n", base->index);
111690
111691 SEQ_printf(m, " .resolution: %u nsecs\n", (unsigned) hrtimer_resolution);
111692 -
111693 SEQ_printf(m, " .get_time: ");
111694 print_name_offset(m, base->get_time);
111695 SEQ_printf(m, "\n");
111696 @@ -399,7 +406,11 @@ static int __init init_timer_list_procfs(void)
111697 {
111698 struct proc_dir_entry *pe;
111699
111700 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
111701 + pe = proc_create("timer_list", 0400, NULL, &timer_list_fops);
111702 +#else
111703 pe = proc_create("timer_list", 0444, NULL, &timer_list_fops);
111704 +#endif
111705 if (!pe)
111706 return -ENOMEM;
111707 return 0;
111708 diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
111709 index 1adecb4..b4fb631 100644
111710 --- a/kernel/time/timer_stats.c
111711 +++ b/kernel/time/timer_stats.c
111712 @@ -116,7 +116,7 @@ static ktime_t time_start, time_stop;
111713 static unsigned long nr_entries;
111714 static struct entry entries[MAX_ENTRIES];
111715
111716 -static atomic_t overflow_count;
111717 +static atomic_unchecked_t overflow_count;
111718
111719 /*
111720 * The entries are in a hash-table, for fast lookup:
111721 @@ -140,7 +140,7 @@ static void reset_entries(void)
111722 nr_entries = 0;
111723 memset(entries, 0, sizeof(entries));
111724 memset(tstat_hash_table, 0, sizeof(tstat_hash_table));
111725 - atomic_set(&overflow_count, 0);
111726 + atomic_set_unchecked(&overflow_count, 0);
111727 }
111728
111729 static struct entry *alloc_entry(void)
111730 @@ -261,7 +261,7 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
111731 if (likely(entry))
111732 entry->count++;
111733 else
111734 - atomic_inc(&overflow_count);
111735 + atomic_inc_unchecked(&overflow_count);
111736
111737 out_unlock:
111738 raw_spin_unlock_irqrestore(lock, flags);
111739 @@ -269,12 +269,16 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
111740
111741 static void print_name_offset(struct seq_file *m, unsigned long addr)
111742 {
111743 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111744 + seq_printf(m, "<%p>", NULL);
111745 +#else
111746 char symname[KSYM_NAME_LEN];
111747
111748 if (lookup_symbol_name(addr, symname) < 0)
111749 - seq_printf(m, "<%p>", (void *)addr);
111750 + seq_printf(m, "<%pK>", (void *)addr);
111751 else
111752 seq_printf(m, "%s", symname);
111753 +#endif
111754 }
111755
111756 static int tstats_show(struct seq_file *m, void *v)
111757 @@ -300,8 +304,8 @@ static int tstats_show(struct seq_file *m, void *v)
111758
111759 seq_puts(m, "Timer Stats Version: v0.3\n");
111760 seq_printf(m, "Sample period: %ld.%03ld s\n", period.tv_sec, ms);
111761 - if (atomic_read(&overflow_count))
111762 - seq_printf(m, "Overflow: %d entries\n", atomic_read(&overflow_count));
111763 + if (atomic_read_unchecked(&overflow_count))
111764 + seq_printf(m, "Overflow: %d entries\n", atomic_read_unchecked(&overflow_count));
111765 seq_printf(m, "Collection: %s\n", timer_stats_active ? "active" : "inactive");
111766
111767 for (i = 0; i < nr_entries; i++) {
111768 @@ -417,7 +421,11 @@ static int __init init_tstats_procfs(void)
111769 {
111770 struct proc_dir_entry *pe;
111771
111772 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
111773 + pe = proc_create("timer_stats", 0600, NULL, &tstats_fops);
111774 +#else
111775 pe = proc_create("timer_stats", 0644, NULL, &tstats_fops);
111776 +#endif
111777 if (!pe)
111778 return -ENOMEM;
111779 return 0;
111780 diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
111781 index 3b9a48a..6125816 100644
111782 --- a/kernel/trace/Kconfig
111783 +++ b/kernel/trace/Kconfig
111784 @@ -120,6 +120,7 @@ config TRACING_SUPPORT
111785 # irqflags tracing for your architecture.
111786 depends on TRACE_IRQFLAGS_SUPPORT || PPC32
111787 depends on STACKTRACE_SUPPORT
111788 + depends on !GRKERNSEC_KMEM
111789 default y
111790
111791 if TRACING_SUPPORT
111792 @@ -378,6 +379,7 @@ config BLK_DEV_IO_TRACE
111793 depends on BLOCK
111794 select RELAY
111795 select DEBUG_FS
111796 + depends on !GRKERNSEC_KMEM
111797 select TRACEPOINTS
111798 select GENERIC_TRACER
111799 select STACKTRACE
111800 diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
111801 index b3e6b39..719099b 100644
111802 --- a/kernel/trace/blktrace.c
111803 +++ b/kernel/trace/blktrace.c
111804 @@ -328,7 +328,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
111805 struct blk_trace *bt = filp->private_data;
111806 char buf[16];
111807
111808 - snprintf(buf, sizeof(buf), "%u\n", atomic_read(&bt->dropped));
111809 + snprintf(buf, sizeof(buf), "%u\n", atomic_read_unchecked(&bt->dropped));
111810
111811 return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
111812 }
111813 @@ -386,7 +386,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
111814 return 1;
111815
111816 bt = buf->chan->private_data;
111817 - atomic_inc(&bt->dropped);
111818 + atomic_inc_unchecked(&bt->dropped);
111819 return 0;
111820 }
111821
111822 @@ -485,7 +485,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
111823
111824 bt->dir = dir;
111825 bt->dev = dev;
111826 - atomic_set(&bt->dropped, 0);
111827 + atomic_set_unchecked(&bt->dropped, 0);
111828 INIT_LIST_HEAD(&bt->running_list);
111829
111830 ret = -EIO;
111831 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
111832 index eb11011..43adc29 100644
111833 --- a/kernel/trace/ftrace.c
111834 +++ b/kernel/trace/ftrace.c
111835 @@ -2413,12 +2413,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
111836 if (unlikely(ftrace_disabled))
111837 return 0;
111838
111839 + ret = ftrace_arch_code_modify_prepare();
111840 + FTRACE_WARN_ON(ret);
111841 + if (ret)
111842 + return 0;
111843 +
111844 ret = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
111845 + FTRACE_WARN_ON(ftrace_arch_code_modify_post_process());
111846 if (ret) {
111847 ftrace_bug(ret, rec);
111848 - return 0;
111849 }
111850 - return 1;
111851 + return ret ? 0 : 1;
111852 }
111853
111854 /*
111855 @@ -4807,8 +4812,10 @@ static int ftrace_process_locs(struct module *mod,
111856 if (!count)
111857 return 0;
111858
111859 + pax_open_kernel();
111860 sort(start, count, sizeof(*start),
111861 ftrace_cmp_ips, ftrace_swap_ips);
111862 + pax_close_kernel();
111863
111864 start_pg = ftrace_allocate_pages(count);
111865 if (!start_pg)
111866 @@ -5675,7 +5682,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
111867
111868 if (t->ret_stack == NULL) {
111869 atomic_set(&t->tracing_graph_pause, 0);
111870 - atomic_set(&t->trace_overrun, 0);
111871 + atomic_set_unchecked(&t->trace_overrun, 0);
111872 t->curr_ret_stack = -1;
111873 /* Make sure the tasks see the -1 first: */
111874 smp_wmb();
111875 @@ -5898,7 +5905,7 @@ static void
111876 graph_init_task(struct task_struct *t, struct ftrace_ret_stack *ret_stack)
111877 {
111878 atomic_set(&t->tracing_graph_pause, 0);
111879 - atomic_set(&t->trace_overrun, 0);
111880 + atomic_set_unchecked(&t->trace_overrun, 0);
111881 t->ftrace_timestamp = 0;
111882 /* make curr_ret_stack visible before we add the ret_stack */
111883 smp_wmb();
111884 diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
111885 index 6260717..b9bd83c 100644
111886 --- a/kernel/trace/ring_buffer.c
111887 +++ b/kernel/trace/ring_buffer.c
111888 @@ -296,9 +296,9 @@ struct buffer_data_page {
111889 */
111890 struct buffer_page {
111891 struct list_head list; /* list of buffer pages */
111892 - local_t write; /* index for next write */
111893 + local_unchecked_t write; /* index for next write */
111894 unsigned read; /* index for next read */
111895 - local_t entries; /* entries on this page */
111896 + local_unchecked_t entries; /* entries on this page */
111897 unsigned long real_end; /* real end of data */
111898 struct buffer_data_page *page; /* Actual data page */
111899 };
111900 @@ -437,11 +437,11 @@ struct ring_buffer_per_cpu {
111901 unsigned long last_overrun;
111902 local_t entries_bytes;
111903 local_t entries;
111904 - local_t overrun;
111905 - local_t commit_overrun;
111906 - local_t dropped_events;
111907 + local_unchecked_t overrun;
111908 + local_unchecked_t commit_overrun;
111909 + local_unchecked_t dropped_events;
111910 local_t committing;
111911 - local_t commits;
111912 + local_unchecked_t commits;
111913 unsigned long read;
111914 unsigned long read_bytes;
111915 u64 write_stamp;
111916 @@ -1011,8 +1011,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
111917 *
111918 * We add a counter to the write field to denote this.
111919 */
111920 - old_write = local_add_return(RB_WRITE_INTCNT, &next_page->write);
111921 - old_entries = local_add_return(RB_WRITE_INTCNT, &next_page->entries);
111922 + old_write = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->write);
111923 + old_entries = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->entries);
111924
111925 /*
111926 * Just make sure we have seen our old_write and synchronize
111927 @@ -1040,8 +1040,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
111928 * cmpxchg to only update if an interrupt did not already
111929 * do it for us. If the cmpxchg fails, we don't care.
111930 */
111931 - (void)local_cmpxchg(&next_page->write, old_write, val);
111932 - (void)local_cmpxchg(&next_page->entries, old_entries, eval);
111933 + (void)local_cmpxchg_unchecked(&next_page->write, old_write, val);
111934 + (void)local_cmpxchg_unchecked(&next_page->entries, old_entries, eval);
111935
111936 /*
111937 * No need to worry about races with clearing out the commit.
111938 @@ -1409,12 +1409,12 @@ static void rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer);
111939
111940 static inline unsigned long rb_page_entries(struct buffer_page *bpage)
111941 {
111942 - return local_read(&bpage->entries) & RB_WRITE_MASK;
111943 + return local_read_unchecked(&bpage->entries) & RB_WRITE_MASK;
111944 }
111945
111946 static inline unsigned long rb_page_write(struct buffer_page *bpage)
111947 {
111948 - return local_read(&bpage->write) & RB_WRITE_MASK;
111949 + return local_read_unchecked(&bpage->write) & RB_WRITE_MASK;
111950 }
111951
111952 static int
111953 @@ -1509,7 +1509,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned int nr_pages)
111954 * bytes consumed in ring buffer from here.
111955 * Increment overrun to account for the lost events.
111956 */
111957 - local_add(page_entries, &cpu_buffer->overrun);
111958 + local_add_unchecked(page_entries, &cpu_buffer->overrun);
111959 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
111960 }
111961
111962 @@ -2071,7 +2071,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer,
111963 * it is our responsibility to update
111964 * the counters.
111965 */
111966 - local_add(entries, &cpu_buffer->overrun);
111967 + local_add_unchecked(entries, &cpu_buffer->overrun);
111968 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
111969
111970 /*
111971 @@ -2221,7 +2221,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
111972 if (tail == BUF_PAGE_SIZE)
111973 tail_page->real_end = 0;
111974
111975 - local_sub(length, &tail_page->write);
111976 + local_sub_unchecked(length, &tail_page->write);
111977 return;
111978 }
111979
111980 @@ -2256,7 +2256,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
111981 rb_event_set_padding(event);
111982
111983 /* Set the write back to the previous setting */
111984 - local_sub(length, &tail_page->write);
111985 + local_sub_unchecked(length, &tail_page->write);
111986 return;
111987 }
111988
111989 @@ -2268,7 +2268,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
111990
111991 /* Set write to end of buffer */
111992 length = (tail + length) - BUF_PAGE_SIZE;
111993 - local_sub(length, &tail_page->write);
111994 + local_sub_unchecked(length, &tail_page->write);
111995 }
111996
111997 /*
111998 @@ -2294,7 +2294,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
111999 * about it.
112000 */
112001 if (unlikely(next_page == commit_page)) {
112002 - local_inc(&cpu_buffer->commit_overrun);
112003 + local_inc_unchecked(&cpu_buffer->commit_overrun);
112004 goto out_reset;
112005 }
112006
112007 @@ -2324,7 +2324,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
112008 * this is easy, just stop here.
112009 */
112010 if (!(buffer->flags & RB_FL_OVERWRITE)) {
112011 - local_inc(&cpu_buffer->dropped_events);
112012 + local_inc_unchecked(&cpu_buffer->dropped_events);
112013 goto out_reset;
112014 }
112015
112016 @@ -2350,7 +2350,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
112017 cpu_buffer->tail_page) &&
112018 (cpu_buffer->commit_page ==
112019 cpu_buffer->reader_page))) {
112020 - local_inc(&cpu_buffer->commit_overrun);
112021 + local_inc_unchecked(&cpu_buffer->commit_overrun);
112022 goto out_reset;
112023 }
112024 }
112025 @@ -2398,7 +2398,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
112026 length += RB_LEN_TIME_EXTEND;
112027
112028 tail_page = cpu_buffer->tail_page;
112029 - write = local_add_return(length, &tail_page->write);
112030 + write = local_add_return_unchecked(length, &tail_page->write);
112031
112032 /* set write to only the index of the write */
112033 write &= RB_WRITE_MASK;
112034 @@ -2422,7 +2422,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
112035 kmemcheck_annotate_bitfield(event, bitfield);
112036 rb_update_event(cpu_buffer, event, length, add_timestamp, delta);
112037
112038 - local_inc(&tail_page->entries);
112039 + local_inc_unchecked(&tail_page->entries);
112040
112041 /*
112042 * If this is the first commit on the page, then update
112043 @@ -2455,7 +2455,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
112044
112045 if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) {
112046 unsigned long write_mask =
112047 - local_read(&bpage->write) & ~RB_WRITE_MASK;
112048 + local_read_unchecked(&bpage->write) & ~RB_WRITE_MASK;
112049 unsigned long event_length = rb_event_length(event);
112050 /*
112051 * This is on the tail page. It is possible that
112052 @@ -2465,7 +2465,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
112053 */
112054 old_index += write_mask;
112055 new_index += write_mask;
112056 - index = local_cmpxchg(&bpage->write, old_index, new_index);
112057 + index = local_cmpxchg_unchecked(&bpage->write, old_index, new_index);
112058 if (index == old_index) {
112059 /* update counters */
112060 local_sub(event_length, &cpu_buffer->entries_bytes);
112061 @@ -2480,7 +2480,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
112062 static void rb_start_commit(struct ring_buffer_per_cpu *cpu_buffer)
112063 {
112064 local_inc(&cpu_buffer->committing);
112065 - local_inc(&cpu_buffer->commits);
112066 + local_inc_unchecked(&cpu_buffer->commits);
112067 }
112068
112069 static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
112070 @@ -2492,7 +2492,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
112071 return;
112072
112073 again:
112074 - commits = local_read(&cpu_buffer->commits);
112075 + commits = local_read_unchecked(&cpu_buffer->commits);
112076 /* synchronize with interrupts */
112077 barrier();
112078 if (local_read(&cpu_buffer->committing) == 1)
112079 @@ -2508,7 +2508,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
112080 * updating of the commit page and the clearing of the
112081 * committing counter.
112082 */
112083 - if (unlikely(local_read(&cpu_buffer->commits) != commits) &&
112084 + if (unlikely(local_read_unchecked(&cpu_buffer->commits) != commits) &&
112085 !local_read(&cpu_buffer->committing)) {
112086 local_inc(&cpu_buffer->committing);
112087 goto again;
112088 @@ -2538,7 +2538,7 @@ rb_reserve_next_event(struct ring_buffer *buffer,
112089 barrier();
112090 if (unlikely(ACCESS_ONCE(cpu_buffer->buffer) != buffer)) {
112091 local_dec(&cpu_buffer->committing);
112092 - local_dec(&cpu_buffer->commits);
112093 + local_dec_unchecked(&cpu_buffer->commits);
112094 return NULL;
112095 }
112096 #endif
112097 @@ -2852,7 +2852,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
112098
112099 /* Do the likely case first */
112100 if (likely(bpage->page == (void *)addr)) {
112101 - local_dec(&bpage->entries);
112102 + local_dec_unchecked(&bpage->entries);
112103 return;
112104 }
112105
112106 @@ -2864,7 +2864,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
112107 start = bpage;
112108 do {
112109 if (bpage->page == (void *)addr) {
112110 - local_dec(&bpage->entries);
112111 + local_dec_unchecked(&bpage->entries);
112112 return;
112113 }
112114 rb_inc_page(cpu_buffer, &bpage);
112115 @@ -3152,7 +3152,7 @@ static inline unsigned long
112116 rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer)
112117 {
112118 return local_read(&cpu_buffer->entries) -
112119 - (local_read(&cpu_buffer->overrun) + cpu_buffer->read);
112120 + (local_read_unchecked(&cpu_buffer->overrun) + cpu_buffer->read);
112121 }
112122
112123 /**
112124 @@ -3241,7 +3241,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
112125 return 0;
112126
112127 cpu_buffer = buffer->buffers[cpu];
112128 - ret = local_read(&cpu_buffer->overrun);
112129 + ret = local_read_unchecked(&cpu_buffer->overrun);
112130
112131 return ret;
112132 }
112133 @@ -3264,7 +3264,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
112134 return 0;
112135
112136 cpu_buffer = buffer->buffers[cpu];
112137 - ret = local_read(&cpu_buffer->commit_overrun);
112138 + ret = local_read_unchecked(&cpu_buffer->commit_overrun);
112139
112140 return ret;
112141 }
112142 @@ -3286,7 +3286,7 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu)
112143 return 0;
112144
112145 cpu_buffer = buffer->buffers[cpu];
112146 - ret = local_read(&cpu_buffer->dropped_events);
112147 + ret = local_read_unchecked(&cpu_buffer->dropped_events);
112148
112149 return ret;
112150 }
112151 @@ -3349,7 +3349,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
112152 /* if you care about this being correct, lock the buffer */
112153 for_each_buffer_cpu(buffer, cpu) {
112154 cpu_buffer = buffer->buffers[cpu];
112155 - overruns += local_read(&cpu_buffer->overrun);
112156 + overruns += local_read_unchecked(&cpu_buffer->overrun);
112157 }
112158
112159 return overruns;
112160 @@ -3520,8 +3520,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
112161 /*
112162 * Reset the reader page to size zero.
112163 */
112164 - local_set(&cpu_buffer->reader_page->write, 0);
112165 - local_set(&cpu_buffer->reader_page->entries, 0);
112166 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
112167 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
112168 local_set(&cpu_buffer->reader_page->page->commit, 0);
112169 cpu_buffer->reader_page->real_end = 0;
112170
112171 @@ -3555,7 +3555,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
112172 * want to compare with the last_overrun.
112173 */
112174 smp_mb();
112175 - overwrite = local_read(&(cpu_buffer->overrun));
112176 + overwrite = local_read_unchecked(&(cpu_buffer->overrun));
112177
112178 /*
112179 * Here's the tricky part.
112180 @@ -4137,8 +4137,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
112181
112182 cpu_buffer->head_page
112183 = list_entry(cpu_buffer->pages, struct buffer_page, list);
112184 - local_set(&cpu_buffer->head_page->write, 0);
112185 - local_set(&cpu_buffer->head_page->entries, 0);
112186 + local_set_unchecked(&cpu_buffer->head_page->write, 0);
112187 + local_set_unchecked(&cpu_buffer->head_page->entries, 0);
112188 local_set(&cpu_buffer->head_page->page->commit, 0);
112189
112190 cpu_buffer->head_page->read = 0;
112191 @@ -4148,18 +4148,18 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
112192
112193 INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
112194 INIT_LIST_HEAD(&cpu_buffer->new_pages);
112195 - local_set(&cpu_buffer->reader_page->write, 0);
112196 - local_set(&cpu_buffer->reader_page->entries, 0);
112197 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
112198 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
112199 local_set(&cpu_buffer->reader_page->page->commit, 0);
112200 cpu_buffer->reader_page->read = 0;
112201
112202 local_set(&cpu_buffer->entries_bytes, 0);
112203 - local_set(&cpu_buffer->overrun, 0);
112204 - local_set(&cpu_buffer->commit_overrun, 0);
112205 - local_set(&cpu_buffer->dropped_events, 0);
112206 + local_set_unchecked(&cpu_buffer->overrun, 0);
112207 + local_set_unchecked(&cpu_buffer->commit_overrun, 0);
112208 + local_set_unchecked(&cpu_buffer->dropped_events, 0);
112209 local_set(&cpu_buffer->entries, 0);
112210 local_set(&cpu_buffer->committing, 0);
112211 - local_set(&cpu_buffer->commits, 0);
112212 + local_set_unchecked(&cpu_buffer->commits, 0);
112213 cpu_buffer->read = 0;
112214 cpu_buffer->read_bytes = 0;
112215
112216 @@ -4549,8 +4549,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
112217 rb_init_page(bpage);
112218 bpage = reader->page;
112219 reader->page = *data_page;
112220 - local_set(&reader->write, 0);
112221 - local_set(&reader->entries, 0);
112222 + local_set_unchecked(&reader->write, 0);
112223 + local_set_unchecked(&reader->entries, 0);
112224 reader->read = 0;
112225 *data_page = bpage;
112226
112227 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
112228 index abcbf7f..ef8b6fe 100644
112229 --- a/kernel/trace/trace.c
112230 +++ b/kernel/trace/trace.c
112231 @@ -3539,7 +3539,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
112232 return 0;
112233 }
112234
112235 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
112236 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled)
112237 {
112238 /* do nothing if flag is already set */
112239 if (!!(trace_flags & mask) == !!enabled)
112240 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
112241 index 74bde81..f9abfd4 100644
112242 --- a/kernel/trace/trace.h
112243 +++ b/kernel/trace/trace.h
112244 @@ -1272,7 +1272,7 @@ extern const char *__stop___tracepoint_str[];
112245 void trace_printk_init_buffers(void);
112246 void trace_printk_start_comm(void);
112247 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
112248 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled);
112249 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled);
112250
112251 /*
112252 * Normal trace_printk() and friends allocates special buffers
112253 diff --git a/kernel/trace/trace_clock.c b/kernel/trace/trace_clock.c
112254 index 0f06532..247c8e7 100644
112255 --- a/kernel/trace/trace_clock.c
112256 +++ b/kernel/trace/trace_clock.c
112257 @@ -127,7 +127,7 @@ u64 notrace trace_clock_global(void)
112258 }
112259 EXPORT_SYMBOL_GPL(trace_clock_global);
112260
112261 -static atomic64_t trace_counter;
112262 +static atomic64_unchecked_t trace_counter;
112263
112264 /*
112265 * trace_clock_counter(): simply an atomic counter.
112266 @@ -136,5 +136,5 @@ static atomic64_t trace_counter;
112267 */
112268 u64 notrace trace_clock_counter(void)
112269 {
112270 - return atomic64_add_return(1, &trace_counter);
112271 + return atomic64_inc_return_unchecked(&trace_counter);
112272 }
112273 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
112274 index 404a372..d9e5547 100644
112275 --- a/kernel/trace/trace_events.c
112276 +++ b/kernel/trace/trace_events.c
112277 @@ -1887,7 +1887,6 @@ __trace_early_add_new_event(struct trace_event_call *call,
112278 return 0;
112279 }
112280
112281 -struct ftrace_module_file_ops;
112282 static void __add_event_to_tracers(struct trace_event_call *call);
112283
112284 /* Add an additional event_call dynamically */
112285 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
112286 index 8968bf7..e6623fc 100644
112287 --- a/kernel/trace/trace_functions_graph.c
112288 +++ b/kernel/trace/trace_functions_graph.c
112289 @@ -132,7 +132,7 @@ ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
112290
112291 /* The return trace stack is full */
112292 if (current->curr_ret_stack == FTRACE_RETFUNC_DEPTH - 1) {
112293 - atomic_inc(&current->trace_overrun);
112294 + atomic_inc_unchecked(&current->trace_overrun);
112295 return -EBUSY;
112296 }
112297
112298 @@ -229,7 +229,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
112299 *ret = current->ret_stack[index].ret;
112300 trace->func = current->ret_stack[index].func;
112301 trace->calltime = current->ret_stack[index].calltime;
112302 - trace->overrun = atomic_read(&current->trace_overrun);
112303 + trace->overrun = atomic_read_unchecked(&current->trace_overrun);
112304 trace->depth = index;
112305 }
112306
112307 diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
112308 index 638e110..99b73b2 100644
112309 --- a/kernel/trace/trace_mmiotrace.c
112310 +++ b/kernel/trace/trace_mmiotrace.c
112311 @@ -24,7 +24,7 @@ struct header_iter {
112312 static struct trace_array *mmio_trace_array;
112313 static bool overrun_detected;
112314 static unsigned long prev_overruns;
112315 -static atomic_t dropped_count;
112316 +static atomic_unchecked_t dropped_count;
112317
112318 static void mmio_reset_data(struct trace_array *tr)
112319 {
112320 @@ -124,7 +124,7 @@ static void mmio_close(struct trace_iterator *iter)
112321
112322 static unsigned long count_overruns(struct trace_iterator *iter)
112323 {
112324 - unsigned long cnt = atomic_xchg(&dropped_count, 0);
112325 + unsigned long cnt = atomic_xchg_unchecked(&dropped_count, 0);
112326 unsigned long over = ring_buffer_overruns(iter->trace_buffer->buffer);
112327
112328 if (over > prev_overruns)
112329 @@ -307,7 +307,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr,
112330 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_RW,
112331 sizeof(*entry), 0, pc);
112332 if (!event) {
112333 - atomic_inc(&dropped_count);
112334 + atomic_inc_unchecked(&dropped_count);
112335 return;
112336 }
112337 entry = ring_buffer_event_data(event);
112338 @@ -337,7 +337,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr,
112339 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_MAP,
112340 sizeof(*entry), 0, pc);
112341 if (!event) {
112342 - atomic_inc(&dropped_count);
112343 + atomic_inc_unchecked(&dropped_count);
112344 return;
112345 }
112346 entry = ring_buffer_event_data(event);
112347 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
112348 index dfab253..8e9b477 100644
112349 --- a/kernel/trace/trace_output.c
112350 +++ b/kernel/trace/trace_output.c
112351 @@ -752,14 +752,16 @@ int register_trace_event(struct trace_event *event)
112352 goto out;
112353 }
112354
112355 + pax_open_kernel();
112356 if (event->funcs->trace == NULL)
112357 - event->funcs->trace = trace_nop_print;
112358 + *(void **)&event->funcs->trace = trace_nop_print;
112359 if (event->funcs->raw == NULL)
112360 - event->funcs->raw = trace_nop_print;
112361 + *(void **)&event->funcs->raw = trace_nop_print;
112362 if (event->funcs->hex == NULL)
112363 - event->funcs->hex = trace_nop_print;
112364 + *(void **)&event->funcs->hex = trace_nop_print;
112365 if (event->funcs->binary == NULL)
112366 - event->funcs->binary = trace_nop_print;
112367 + *(void **)&event->funcs->binary = trace_nop_print;
112368 + pax_close_kernel();
112369
112370 key = event->type & (EVENT_HASHSIZE - 1);
112371
112372 diff --git a/kernel/trace/trace_seq.c b/kernel/trace/trace_seq.c
112373 index e694c9f..6775a38 100644
112374 --- a/kernel/trace/trace_seq.c
112375 +++ b/kernel/trace/trace_seq.c
112376 @@ -337,7 +337,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
112377 return 0;
112378 }
112379
112380 - seq_buf_path(&s->seq, path, "\n");
112381 + seq_buf_path(&s->seq, path, "\n\\");
112382
112383 if (unlikely(seq_buf_has_overflowed(&s->seq))) {
112384 s->seq.len = save_len;
112385 diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
112386 index 9696901..e0b7372 100644
112387 --- a/kernel/trace/trace_stack.c
112388 +++ b/kernel/trace/trace_stack.c
112389 @@ -88,7 +88,7 @@ check_stack(unsigned long ip, unsigned long *stack)
112390 return;
112391
112392 /* we do not handle interrupt stacks yet */
112393 - if (!object_is_on_stack(stack))
112394 + if (!object_starts_on_stack(stack))
112395 return;
112396
112397 local_irq_save(flags);
112398 diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
112399 index 7d567a4..407a28d 100644
112400 --- a/kernel/trace/trace_syscalls.c
112401 +++ b/kernel/trace/trace_syscalls.c
112402 @@ -590,6 +590,8 @@ static int perf_sysenter_enable(struct trace_event_call *call)
112403 int num;
112404
112405 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112406 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112407 + return -EINVAL;
112408
112409 mutex_lock(&syscall_trace_lock);
112410 if (!sys_perf_refcount_enter)
112411 @@ -610,6 +612,8 @@ static void perf_sysenter_disable(struct trace_event_call *call)
112412 int num;
112413
112414 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112415 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112416 + return;
112417
112418 mutex_lock(&syscall_trace_lock);
112419 sys_perf_refcount_enter--;
112420 @@ -662,6 +666,8 @@ static int perf_sysexit_enable(struct trace_event_call *call)
112421 int num;
112422
112423 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112424 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112425 + return -EINVAL;
112426
112427 mutex_lock(&syscall_trace_lock);
112428 if (!sys_perf_refcount_exit)
112429 @@ -682,6 +688,8 @@ static void perf_sysexit_disable(struct trace_event_call *call)
112430 int num;
112431
112432 num = ((struct syscall_metadata *)call->data)->syscall_nr;
112433 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
112434 + return;
112435
112436 mutex_lock(&syscall_trace_lock);
112437 sys_perf_refcount_exit--;
112438 diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
112439 index 4109f83..fe1f830 100644
112440 --- a/kernel/user_namespace.c
112441 +++ b/kernel/user_namespace.c
112442 @@ -83,6 +83,21 @@ int create_user_ns(struct cred *new)
112443 !kgid_has_mapping(parent_ns, group))
112444 return -EPERM;
112445
112446 +#ifdef CONFIG_GRKERNSEC
112447 + /*
112448 + * This doesn't really inspire confidence:
112449 + * http://marc.info/?l=linux-kernel&m=135543612731939&w=2
112450 + * http://marc.info/?l=linux-kernel&m=135545831607095&w=2
112451 + * Increases kernel attack surface in areas developers
112452 + * previously cared little about ("low importance due
112453 + * to requiring "root" capability")
112454 + * To be removed when this code receives *proper* review
112455 + */
112456 + if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SETUID) ||
112457 + !capable(CAP_SETGID))
112458 + return -EPERM;
112459 +#endif
112460 +
112461 ns = kmem_cache_zalloc(user_ns_cachep, GFP_KERNEL);
112462 if (!ns)
112463 return -ENOMEM;
112464 @@ -980,7 +995,7 @@ static int userns_install(struct nsproxy *nsproxy, struct ns_common *ns)
112465 if (atomic_read(&current->mm->mm_users) > 1)
112466 return -EINVAL;
112467
112468 - if (current->fs->users != 1)
112469 + if (atomic_read(&current->fs->users) != 1)
112470 return -EINVAL;
112471
112472 if (!ns_capable(user_ns, CAP_SYS_ADMIN))
112473 diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
112474 index c8eac43..4b5f08f 100644
112475 --- a/kernel/utsname_sysctl.c
112476 +++ b/kernel/utsname_sysctl.c
112477 @@ -47,7 +47,7 @@ static void put_uts(struct ctl_table *table, int write, void *which)
112478 static int proc_do_uts_string(struct ctl_table *table, int write,
112479 void __user *buffer, size_t *lenp, loff_t *ppos)
112480 {
112481 - struct ctl_table uts_table;
112482 + ctl_table_no_const uts_table;
112483 int r;
112484 memcpy(&uts_table, table, sizeof(uts_table));
112485 uts_table.data = get_uts(table, write);
112486 diff --git a/kernel/watchdog.c b/kernel/watchdog.c
112487 index a6ffa43..e48103b 100644
112488 --- a/kernel/watchdog.c
112489 +++ b/kernel/watchdog.c
112490 @@ -655,7 +655,7 @@ void watchdog_nmi_enable_all(void) {}
112491 void watchdog_nmi_disable_all(void) {}
112492 #endif /* CONFIG_HARDLOCKUP_DETECTOR */
112493
112494 -static struct smp_hotplug_thread watchdog_threads = {
112495 +static struct smp_hotplug_thread watchdog_threads __read_only = {
112496 .store = &softlockup_watchdog,
112497 .thread_should_run = watchdog_should_run,
112498 .thread_fn = watchdog,
112499 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
112500 index 1de0f5fab..dbf1ec6 100644
112501 --- a/kernel/workqueue.c
112502 +++ b/kernel/workqueue.c
112503 @@ -4452,7 +4452,7 @@ static void rebind_workers(struct worker_pool *pool)
112504 WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
112505 worker_flags |= WORKER_REBOUND;
112506 worker_flags &= ~WORKER_UNBOUND;
112507 - ACCESS_ONCE(worker->flags) = worker_flags;
112508 + ACCESS_ONCE_RW(worker->flags) = worker_flags;
112509 }
112510
112511 spin_unlock_irq(&pool->lock);
112512 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
112513 index e2894b2..23751b3 100644
112514 --- a/lib/Kconfig.debug
112515 +++ b/lib/Kconfig.debug
112516 @@ -242,6 +242,7 @@ config PAGE_OWNER
112517 bool "Track page owner"
112518 depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
112519 select DEBUG_FS
112520 + depends on !GRKERNSEC_KMEM
112521 select STACKTRACE
112522 select PAGE_EXTENSION
112523 help
112524 @@ -256,6 +257,7 @@ config PAGE_OWNER
112525
112526 config DEBUG_FS
112527 bool "Debug Filesystem"
112528 + depends on !GRKERNSEC_KMEM
112529 help
112530 debugfs is a virtual file system that kernel developers use to put
112531 debugging files into. Enable this option to be able to read and
112532 @@ -488,6 +490,7 @@ config DEBUG_KMEMLEAK
112533 bool "Kernel memory leak detector"
112534 depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
112535 select DEBUG_FS
112536 + depends on !GRKERNSEC_KMEM
112537 select STACKTRACE if STACKTRACE_SUPPORT
112538 select KALLSYMS
112539 select CRC32
112540 @@ -941,7 +944,7 @@ config DEBUG_MUTEXES
112541
112542 config DEBUG_WW_MUTEX_SLOWPATH
112543 bool "Wait/wound mutex debugging: Slowpath testing"
112544 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112545 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112546 select DEBUG_LOCK_ALLOC
112547 select DEBUG_SPINLOCK
112548 select DEBUG_MUTEXES
112549 @@ -958,7 +961,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
112550
112551 config DEBUG_LOCK_ALLOC
112552 bool "Lock debugging: detect incorrect freeing of live locks"
112553 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112554 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112555 select DEBUG_SPINLOCK
112556 select DEBUG_MUTEXES
112557 select LOCKDEP
112558 @@ -972,7 +975,7 @@ config DEBUG_LOCK_ALLOC
112559
112560 config PROVE_LOCKING
112561 bool "Lock debugging: prove locking correctness"
112562 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112563 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112564 select LOCKDEP
112565 select DEBUG_SPINLOCK
112566 select DEBUG_MUTEXES
112567 @@ -1023,7 +1026,7 @@ config LOCKDEP
112568
112569 config LOCK_STAT
112570 bool "Lock usage statistics"
112571 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
112572 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
112573 select LOCKDEP
112574 select DEBUG_SPINLOCK
112575 select DEBUG_MUTEXES
112576 @@ -1422,6 +1425,7 @@ config NOTIFIER_ERROR_INJECTION
112577 tristate "Notifier error injection"
112578 depends on DEBUG_KERNEL
112579 select DEBUG_FS
112580 + depends on !GRKERNSEC_KMEM
112581 help
112582 This option provides the ability to inject artificial errors to
112583 specified notifier chain callbacks. It is useful to test the error
112584 @@ -1534,6 +1538,7 @@ config FAIL_IO_TIMEOUT
112585 config FAIL_MMC_REQUEST
112586 bool "Fault-injection capability for MMC IO"
112587 select DEBUG_FS
112588 + depends on !GRKERNSEC_KMEM
112589 depends on FAULT_INJECTION && MMC
112590 help
112591 Provide fault-injection capability for MMC IO.
112592 @@ -1563,6 +1568,7 @@ config LATENCYTOP
112593 depends on DEBUG_KERNEL
112594 depends on STACKTRACE_SUPPORT
112595 depends on PROC_FS
112596 + depends on !GRKERNSEC_HIDESYM
112597 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
112598 select KALLSYMS
112599 select KALLSYMS_ALL
112600 @@ -1579,7 +1585,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
112601 config DEBUG_STRICT_USER_COPY_CHECKS
112602 bool "Strict user copy size checks"
112603 depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
112604 - depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
112605 + depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
112606 help
112607 Enabling this option turns a certain set of sanity checks for user
112608 copy operations into compile time failures.
112609 @@ -1710,7 +1716,7 @@ endmenu # runtime tests
112610
112611 config PROVIDE_OHCI1394_DMA_INIT
112612 bool "Remote debugging over FireWire early on boot"
112613 - depends on PCI && X86
112614 + depends on PCI && X86 && !GRKERNSEC
112615 help
112616 If you want to debug problems which hang or crash the kernel early
112617 on boot and the crashing machine has a FireWire port, you can use
112618 diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
112619 index 39f24d6..cf80221 100644
112620 --- a/lib/Kconfig.kasan
112621 +++ b/lib/Kconfig.kasan
112622 @@ -5,7 +5,7 @@ if HAVE_ARCH_KASAN
112623
112624 config KASAN
112625 bool "KASan: runtime memory debugger"
112626 - depends on SLUB_DEBUG
112627 + depends on SLUB_DEBUG && !GRKERNSEC_KSTACKOVERFLOW
112628 select CONSTRUCTORS
112629 help
112630 Enables kernel address sanitizer - runtime memory debugger,
112631 diff --git a/lib/Makefile b/lib/Makefile
112632 index 6897b52..466bda9 100644
112633 --- a/lib/Makefile
112634 +++ b/lib/Makefile
112635 @@ -62,7 +62,7 @@ obj-$(CONFIG_BTREE) += btree.o
112636 obj-$(CONFIG_INTERVAL_TREE) += interval_tree.o
112637 obj-$(CONFIG_ASSOCIATIVE_ARRAY) += assoc_array.o
112638 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
112639 -obj-$(CONFIG_DEBUG_LIST) += list_debug.o
112640 +obj-y += list_debug.o
112641 obj-$(CONFIG_DEBUG_OBJECTS) += debugobjects.o
112642
112643 ifneq ($(CONFIG_HAVE_DEC_LOCK),y)
112644 diff --git a/lib/average.c b/lib/average.c
112645 index 114d1be..ab0350c 100644
112646 --- a/lib/average.c
112647 +++ b/lib/average.c
112648 @@ -55,7 +55,7 @@ struct ewma *ewma_add(struct ewma *avg, unsigned long val)
112649 {
112650 unsigned long internal = ACCESS_ONCE(avg->internal);
112651
112652 - ACCESS_ONCE(avg->internal) = internal ?
112653 + ACCESS_ONCE_RW(avg->internal) = internal ?
112654 (((internal << avg->weight) - internal) +
112655 (val << avg->factor)) >> avg->weight :
112656 (val << avg->factor);
112657 diff --git a/lib/bitmap.c b/lib/bitmap.c
112658 index a578a01..2198e50 100644
112659 --- a/lib/bitmap.c
112660 +++ b/lib/bitmap.c
112661 @@ -361,7 +361,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
112662 {
112663 int c, old_c, totaldigits, ndigits, nchunks, nbits;
112664 u32 chunk;
112665 - const char __user __force *ubuf = (const char __user __force *)buf;
112666 + const char __user *ubuf = (const char __force_user *)buf;
112667
112668 bitmap_zero(maskp, nmaskbits);
112669
112670 @@ -446,7 +446,7 @@ int bitmap_parse_user(const char __user *ubuf,
112671 {
112672 if (!access_ok(VERIFY_READ, ubuf, ulen))
112673 return -EFAULT;
112674 - return __bitmap_parse((const char __force *)ubuf,
112675 + return __bitmap_parse((const char __force_kernel *)ubuf,
112676 ulen, 1, maskp, nmaskbits);
112677
112678 }
112679 @@ -506,7 +506,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
112680 {
112681 unsigned a, b;
112682 int c, old_c, totaldigits;
112683 - const char __user __force *ubuf = (const char __user __force *)buf;
112684 + const char __user *ubuf = (const char __force_user *)buf;
112685 int at_start, in_range;
112686
112687 totaldigits = c = 0;
112688 @@ -602,7 +602,7 @@ int bitmap_parselist_user(const char __user *ubuf,
112689 {
112690 if (!access_ok(VERIFY_READ, ubuf, ulen))
112691 return -EFAULT;
112692 - return __bitmap_parselist((const char __force *)ubuf,
112693 + return __bitmap_parselist((const char __force_kernel *)ubuf,
112694 ulen, 1, maskp, nmaskbits);
112695 }
112696 EXPORT_SYMBOL(bitmap_parselist_user);
112697 diff --git a/lib/bug.c b/lib/bug.c
112698 index cff145f..724a0b8 100644
112699 --- a/lib/bug.c
112700 +++ b/lib/bug.c
112701 @@ -148,6 +148,8 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
112702 return BUG_TRAP_TYPE_NONE;
112703
112704 bug = find_bug(bugaddr);
112705 + if (!bug)
112706 + return BUG_TRAP_TYPE_NONE;
112707
112708 file = NULL;
112709 line = 0;
112710 diff --git a/lib/debugobjects.c b/lib/debugobjects.c
112711 index 547f7f9..a6d4ba0 100644
112712 --- a/lib/debugobjects.c
112713 +++ b/lib/debugobjects.c
112714 @@ -289,7 +289,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
112715 if (limit > 4)
112716 return;
112717
112718 - is_on_stack = object_is_on_stack(addr);
112719 + is_on_stack = object_starts_on_stack(addr);
112720 if (is_on_stack == onstack)
112721 return;
112722
112723 diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
112724 index 0234361..41a411c 100644
112725 --- a/lib/decompress_bunzip2.c
112726 +++ b/lib/decompress_bunzip2.c
112727 @@ -665,7 +665,8 @@ static int INIT start_bunzip(struct bunzip_data **bdp, void *inbuf, long len,
112728
112729 /* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of
112730 uncompressed data. Allocate intermediate buffer for block. */
112731 - bd->dbufSize = 100000*(i-BZh0);
112732 + i -= BZh0;
112733 + bd->dbufSize = 100000 * i;
112734
112735 bd->dbuf = large_malloc(bd->dbufSize * sizeof(int));
112736 if (!bd->dbuf)
112737 diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
112738 index decb646..8d6441a 100644
112739 --- a/lib/decompress_unlzma.c
112740 +++ b/lib/decompress_unlzma.c
112741 @@ -39,10 +39,10 @@
112742
112743 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
112744
112745 -static long long INIT read_int(unsigned char *ptr, int size)
112746 +static unsigned long long INIT read_int(unsigned char *ptr, int size)
112747 {
112748 int i;
112749 - long long ret = 0;
112750 + unsigned long long ret = 0;
112751
112752 for (i = 0; i < size; i++)
112753 ret = (ret << 8) | ptr[size-i-1];
112754 diff --git a/lib/div64.c b/lib/div64.c
112755 index 19ea7ed..20cac21 100644
112756 --- a/lib/div64.c
112757 +++ b/lib/div64.c
112758 @@ -59,7 +59,7 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base)
112759 EXPORT_SYMBOL(__div64_32);
112760
112761 #ifndef div_s64_rem
112762 -s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
112763 +s64 __intentional_overflow(-1) div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
112764 {
112765 u64 quotient;
112766
112767 @@ -130,7 +130,7 @@ EXPORT_SYMBOL(div64_u64_rem);
112768 * 'http://www.hackersdelight.org/hdcodetxt/divDouble.c.txt'
112769 */
112770 #ifndef div64_u64
112771 -u64 div64_u64(u64 dividend, u64 divisor)
112772 +u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
112773 {
112774 u32 high = divisor >> 32;
112775 u64 quot;
112776 diff --git a/lib/dma-debug.c b/lib/dma-debug.c
112777 index dace71f..13da37b 100644
112778 --- a/lib/dma-debug.c
112779 +++ b/lib/dma-debug.c
112780 @@ -982,7 +982,7 @@ static int dma_debug_device_change(struct notifier_block *nb, unsigned long acti
112781
112782 void dma_debug_add_bus(struct bus_type *bus)
112783 {
112784 - struct notifier_block *nb;
112785 + notifier_block_no_const *nb;
112786
112787 if (dma_debug_disabled())
112788 return;
112789 @@ -1164,7 +1164,7 @@ static void check_unmap(struct dma_debug_entry *ref)
112790
112791 static void check_for_stack(struct device *dev, void *addr)
112792 {
112793 - if (object_is_on_stack(addr))
112794 + if (object_starts_on_stack(addr))
112795 err_printk(dev, NULL, "DMA-API: device driver maps memory from "
112796 "stack [addr=%p]\n", addr);
112797 }
112798 diff --git a/lib/inflate.c b/lib/inflate.c
112799 index 013a761..c28f3fc 100644
112800 --- a/lib/inflate.c
112801 +++ b/lib/inflate.c
112802 @@ -269,7 +269,7 @@ static void free(void *where)
112803 malloc_ptr = free_mem_ptr;
112804 }
112805 #else
112806 -#define malloc(a) kmalloc(a, GFP_KERNEL)
112807 +#define malloc(a) kmalloc((a), GFP_KERNEL)
112808 #define free(a) kfree(a)
112809 #endif
112810
112811 diff --git a/lib/ioremap.c b/lib/ioremap.c
112812 index 86c8911..f5bfc34 100644
112813 --- a/lib/ioremap.c
112814 +++ b/lib/ioremap.c
112815 @@ -75,7 +75,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
112816 unsigned long next;
112817
112818 phys_addr -= addr;
112819 - pmd = pmd_alloc(&init_mm, pud, addr);
112820 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
112821 if (!pmd)
112822 return -ENOMEM;
112823 do {
112824 @@ -101,7 +101,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
112825 unsigned long next;
112826
112827 phys_addr -= addr;
112828 - pud = pud_alloc(&init_mm, pgd, addr);
112829 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
112830 if (!pud)
112831 return -ENOMEM;
112832 do {
112833 diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c
112834 index bd2bea9..6b3c95e 100644
112835 --- a/lib/is_single_threaded.c
112836 +++ b/lib/is_single_threaded.c
112837 @@ -22,6 +22,9 @@ bool current_is_single_threaded(void)
112838 struct task_struct *p, *t;
112839 bool ret;
112840
112841 + if (!mm)
112842 + return true;
112843 +
112844 if (atomic_read(&task->signal->live) != 1)
112845 return false;
112846
112847 diff --git a/lib/kobject.c b/lib/kobject.c
112848 index 3e3a5c3..4a12109 100644
112849 --- a/lib/kobject.c
112850 +++ b/lib/kobject.c
112851 @@ -935,9 +935,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
112852
112853
112854 static DEFINE_SPINLOCK(kobj_ns_type_lock);
112855 -static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES];
112856 +static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES] __read_only;
112857
112858 -int kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
112859 +int __init kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
112860 {
112861 enum kobj_ns_type type = ops->type;
112862 int error;
112863 diff --git a/lib/list_debug.c b/lib/list_debug.c
112864 index c24c2f7..f0296f4 100644
112865 --- a/lib/list_debug.c
112866 +++ b/lib/list_debug.c
112867 @@ -11,7 +11,9 @@
112868 #include <linux/bug.h>
112869 #include <linux/kernel.h>
112870 #include <linux/rculist.h>
112871 +#include <linux/mm.h>
112872
112873 +#ifdef CONFIG_DEBUG_LIST
112874 /*
112875 * Insert a new entry between two known consecutive entries.
112876 *
112877 @@ -19,21 +21,40 @@
112878 * the prev/next entries already!
112879 */
112880
112881 +static bool __list_add_debug(struct list_head *new,
112882 + struct list_head *prev,
112883 + struct list_head *next)
112884 +{
112885 + if (unlikely(next->prev != prev)) {
112886 + printk(KERN_ERR "list_add corruption. next->prev should be "
112887 + "prev (%p), but was %p. (next=%p).\n",
112888 + prev, next->prev, next);
112889 + BUG();
112890 + return false;
112891 + }
112892 + if (unlikely(prev->next != next)) {
112893 + printk(KERN_ERR "list_add corruption. prev->next should be "
112894 + "next (%p), but was %p. (prev=%p).\n",
112895 + next, prev->next, prev);
112896 + BUG();
112897 + return false;
112898 + }
112899 + if (unlikely(new == prev || new == next)) {
112900 + printk(KERN_ERR "list_add double add: new=%p, prev=%p, next=%p.\n",
112901 + new, prev, next);
112902 + BUG();
112903 + return false;
112904 + }
112905 + return true;
112906 +}
112907 +
112908 void __list_add(struct list_head *new,
112909 - struct list_head *prev,
112910 - struct list_head *next)
112911 + struct list_head *prev,
112912 + struct list_head *next)
112913 {
112914 - WARN(next->prev != prev,
112915 - "list_add corruption. next->prev should be "
112916 - "prev (%p), but was %p. (next=%p).\n",
112917 - prev, next->prev, next);
112918 - WARN(prev->next != next,
112919 - "list_add corruption. prev->next should be "
112920 - "next (%p), but was %p. (prev=%p).\n",
112921 - next, prev->next, prev);
112922 - WARN(new == prev || new == next,
112923 - "list_add double add: new=%p, prev=%p, next=%p.\n",
112924 - new, prev, next);
112925 + if (!__list_add_debug(new, prev, next))
112926 + return;
112927 +
112928 next->prev = new;
112929 new->next = next;
112930 new->prev = prev;
112931 @@ -41,28 +62,46 @@ void __list_add(struct list_head *new,
112932 }
112933 EXPORT_SYMBOL(__list_add);
112934
112935 -void __list_del_entry(struct list_head *entry)
112936 +static bool __list_del_entry_debug(struct list_head *entry)
112937 {
112938 struct list_head *prev, *next;
112939
112940 prev = entry->prev;
112941 next = entry->next;
112942
112943 - if (WARN(next == LIST_POISON1,
112944 - "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
112945 - entry, LIST_POISON1) ||
112946 - WARN(prev == LIST_POISON2,
112947 - "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
112948 - entry, LIST_POISON2) ||
112949 - WARN(prev->next != entry,
112950 - "list_del corruption. prev->next should be %p, "
112951 - "but was %p\n", entry, prev->next) ||
112952 - WARN(next->prev != entry,
112953 - "list_del corruption. next->prev should be %p, "
112954 - "but was %p\n", entry, next->prev))
112955 + if (unlikely(next == LIST_POISON1)) {
112956 + printk(KERN_ERR "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
112957 + entry, LIST_POISON1);
112958 + BUG();
112959 + return false;
112960 + }
112961 + if (unlikely(prev == LIST_POISON2)) {
112962 + printk(KERN_ERR "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
112963 + entry, LIST_POISON2);
112964 + BUG();
112965 + return false;
112966 + }
112967 + if (unlikely(entry->prev->next != entry)) {
112968 + printk(KERN_ERR "list_del corruption. prev->next should be %p, "
112969 + "but was %p\n", entry, prev->next);
112970 + BUG();
112971 + return false;
112972 + }
112973 + if (unlikely(entry->next->prev != entry)) {
112974 + printk(KERN_ERR "list_del corruption. next->prev should be %p, "
112975 + "but was %p\n", entry, next->prev);
112976 + BUG();
112977 + return false;
112978 + }
112979 + return true;
112980 +}
112981 +
112982 +void __list_del_entry(struct list_head *entry)
112983 +{
112984 + if (!__list_del_entry_debug(entry))
112985 return;
112986
112987 - __list_del(prev, next);
112988 + __list_del(entry->prev, entry->next);
112989 }
112990 EXPORT_SYMBOL(__list_del_entry);
112991
112992 @@ -86,15 +125,85 @@ EXPORT_SYMBOL(list_del);
112993 void __list_add_rcu(struct list_head *new,
112994 struct list_head *prev, struct list_head *next)
112995 {
112996 - WARN(next->prev != prev,
112997 - "list_add_rcu corruption. next->prev should be prev (%p), but was %p. (next=%p).\n",
112998 - prev, next->prev, next);
112999 - WARN(prev->next != next,
113000 - "list_add_rcu corruption. prev->next should be next (%p), but was %p. (prev=%p).\n",
113001 - next, prev->next, prev);
113002 + if (!__list_add_debug(new, prev, next))
113003 + return;
113004 +
113005 new->next = next;
113006 new->prev = prev;
113007 rcu_assign_pointer(list_next_rcu(prev), new);
113008 next->prev = new;
113009 }
113010 EXPORT_SYMBOL(__list_add_rcu);
113011 +#endif
113012 +
113013 +void __pax_list_add(struct list_head *new, struct list_head *prev, struct list_head *next)
113014 +{
113015 +#ifdef CONFIG_DEBUG_LIST
113016 + if (!__list_add_debug(new, prev, next))
113017 + return;
113018 +#endif
113019 +
113020 + pax_open_kernel();
113021 + next->prev = new;
113022 + new->next = next;
113023 + new->prev = prev;
113024 + prev->next = new;
113025 + pax_close_kernel();
113026 +}
113027 +EXPORT_SYMBOL(__pax_list_add);
113028 +
113029 +void pax_list_del(struct list_head *entry)
113030 +{
113031 +#ifdef CONFIG_DEBUG_LIST
113032 + if (!__list_del_entry_debug(entry))
113033 + return;
113034 +#endif
113035 +
113036 + pax_open_kernel();
113037 + __list_del(entry->prev, entry->next);
113038 + entry->next = LIST_POISON1;
113039 + entry->prev = LIST_POISON2;
113040 + pax_close_kernel();
113041 +}
113042 +EXPORT_SYMBOL(pax_list_del);
113043 +
113044 +void pax_list_del_init(struct list_head *entry)
113045 +{
113046 + pax_open_kernel();
113047 + __list_del(entry->prev, entry->next);
113048 + INIT_LIST_HEAD(entry);
113049 + pax_close_kernel();
113050 +}
113051 +EXPORT_SYMBOL(pax_list_del_init);
113052 +
113053 +void __pax_list_add_rcu(struct list_head *new,
113054 + struct list_head *prev, struct list_head *next)
113055 +{
113056 +#ifdef CONFIG_DEBUG_LIST
113057 + if (!__list_add_debug(new, prev, next))
113058 + return;
113059 +#endif
113060 +
113061 + pax_open_kernel();
113062 + new->next = next;
113063 + new->prev = prev;
113064 + rcu_assign_pointer(list_next_rcu(prev), new);
113065 + next->prev = new;
113066 + pax_close_kernel();
113067 +}
113068 +EXPORT_SYMBOL(__pax_list_add_rcu);
113069 +
113070 +void pax_list_del_rcu(struct list_head *entry)
113071 +{
113072 +#ifdef CONFIG_DEBUG_LIST
113073 + if (!__list_del_entry_debug(entry))
113074 + return;
113075 +#endif
113076 +
113077 + pax_open_kernel();
113078 + __list_del(entry->prev, entry->next);
113079 + entry->next = LIST_POISON1;
113080 + entry->prev = LIST_POISON2;
113081 + pax_close_kernel();
113082 +}
113083 +EXPORT_SYMBOL(pax_list_del_rcu);
113084 diff --git a/lib/lockref.c b/lib/lockref.c
113085 index 494994b..65caf94 100644
113086 --- a/lib/lockref.c
113087 +++ b/lib/lockref.c
113088 @@ -48,13 +48,13 @@
113089 void lockref_get(struct lockref *lockref)
113090 {
113091 CMPXCHG_LOOP(
113092 - new.count++;
113093 + __lockref_inc(&new);
113094 ,
113095 return;
113096 );
113097
113098 spin_lock(&lockref->lock);
113099 - lockref->count++;
113100 + __lockref_inc(lockref);
113101 spin_unlock(&lockref->lock);
113102 }
113103 EXPORT_SYMBOL(lockref_get);
113104 @@ -69,8 +69,8 @@ int lockref_get_not_zero(struct lockref *lockref)
113105 int retval;
113106
113107 CMPXCHG_LOOP(
113108 - new.count++;
113109 - if (old.count <= 0)
113110 + __lockref_inc(&new);
113111 + if (__lockref_read(&old) <= 0)
113112 return 0;
113113 ,
113114 return 1;
113115 @@ -78,8 +78,8 @@ int lockref_get_not_zero(struct lockref *lockref)
113116
113117 spin_lock(&lockref->lock);
113118 retval = 0;
113119 - if (lockref->count > 0) {
113120 - lockref->count++;
113121 + if (__lockref_read(lockref) > 0) {
113122 + __lockref_inc(lockref);
113123 retval = 1;
113124 }
113125 spin_unlock(&lockref->lock);
113126 @@ -96,17 +96,17 @@ EXPORT_SYMBOL(lockref_get_not_zero);
113127 int lockref_get_or_lock(struct lockref *lockref)
113128 {
113129 CMPXCHG_LOOP(
113130 - new.count++;
113131 - if (old.count <= 0)
113132 + __lockref_inc(&new);
113133 + if (__lockref_read(&old) <= 0)
113134 break;
113135 ,
113136 return 1;
113137 );
113138
113139 spin_lock(&lockref->lock);
113140 - if (lockref->count <= 0)
113141 + if (__lockref_read(lockref) <= 0)
113142 return 0;
113143 - lockref->count++;
113144 + __lockref_inc(lockref);
113145 spin_unlock(&lockref->lock);
113146 return 1;
113147 }
113148 @@ -122,11 +122,11 @@ EXPORT_SYMBOL(lockref_get_or_lock);
113149 int lockref_put_return(struct lockref *lockref)
113150 {
113151 CMPXCHG_LOOP(
113152 - new.count--;
113153 - if (old.count <= 0)
113154 + __lockref_dec(&new);
113155 + if (__lockref_read(&old) <= 0)
113156 return -1;
113157 ,
113158 - return new.count;
113159 + return __lockref_read(&new);
113160 );
113161 return -1;
113162 }
113163 @@ -140,17 +140,17 @@ EXPORT_SYMBOL(lockref_put_return);
113164 int lockref_put_or_lock(struct lockref *lockref)
113165 {
113166 CMPXCHG_LOOP(
113167 - new.count--;
113168 - if (old.count <= 1)
113169 + __lockref_dec(&new);
113170 + if (__lockref_read(&old) <= 1)
113171 break;
113172 ,
113173 return 1;
113174 );
113175
113176 spin_lock(&lockref->lock);
113177 - if (lockref->count <= 1)
113178 + if (__lockref_read(lockref) <= 1)
113179 return 0;
113180 - lockref->count--;
113181 + __lockref_dec(lockref);
113182 spin_unlock(&lockref->lock);
113183 return 1;
113184 }
113185 @@ -163,7 +163,7 @@ EXPORT_SYMBOL(lockref_put_or_lock);
113186 void lockref_mark_dead(struct lockref *lockref)
113187 {
113188 assert_spin_locked(&lockref->lock);
113189 - lockref->count = -128;
113190 + __lockref_set(lockref, -128);
113191 }
113192 EXPORT_SYMBOL(lockref_mark_dead);
113193
113194 @@ -177,8 +177,8 @@ int lockref_get_not_dead(struct lockref *lockref)
113195 int retval;
113196
113197 CMPXCHG_LOOP(
113198 - new.count++;
113199 - if (old.count < 0)
113200 + __lockref_inc(&new);
113201 + if (__lockref_read(&old) < 0)
113202 return 0;
113203 ,
113204 return 1;
113205 @@ -186,8 +186,8 @@ int lockref_get_not_dead(struct lockref *lockref)
113206
113207 spin_lock(&lockref->lock);
113208 retval = 0;
113209 - if (lockref->count >= 0) {
113210 - lockref->count++;
113211 + if (__lockref_read(lockref) >= 0) {
113212 + __lockref_inc(lockref);
113213 retval = 1;
113214 }
113215 spin_unlock(&lockref->lock);
113216 diff --git a/lib/nlattr.c b/lib/nlattr.c
113217 index f5907d2..36072be 100644
113218 --- a/lib/nlattr.c
113219 +++ b/lib/nlattr.c
113220 @@ -278,6 +278,8 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count)
113221 {
113222 int minlen = min_t(int, count, nla_len(src));
113223
113224 + BUG_ON(minlen < 0);
113225 +
113226 memcpy(dest, nla_data(src), minlen);
113227 if (count > minlen)
113228 memset(dest + minlen, 0, count - minlen);
113229 diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c
113230 index 6111bcb..02e816b 100644
113231 --- a/lib/percpu-refcount.c
113232 +++ b/lib/percpu-refcount.c
113233 @@ -31,7 +31,7 @@
113234 * atomic_long_t can't hit 0 before we've added up all the percpu refs.
113235 */
113236
113237 -#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 1))
113238 +#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 2))
113239
113240 static DECLARE_WAIT_QUEUE_HEAD(percpu_ref_switch_waitq);
113241
113242 diff --git a/lib/radix-tree.c b/lib/radix-tree.c
113243 index f9ebe1c..e985666 100644
113244 --- a/lib/radix-tree.c
113245 +++ b/lib/radix-tree.c
113246 @@ -68,7 +68,7 @@ struct radix_tree_preload {
113247 /* nodes->private_data points to next preallocated node */
113248 struct radix_tree_node *nodes;
113249 };
113250 -static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
113251 +static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads);
113252
113253 static inline void *ptr_to_indirect(void *ptr)
113254 {
113255 diff --git a/lib/random32.c b/lib/random32.c
113256 index 0bee183..526f12f 100644
113257 --- a/lib/random32.c
113258 +++ b/lib/random32.c
113259 @@ -47,7 +47,7 @@ static inline void prandom_state_selftest(void)
113260 }
113261 #endif
113262
113263 -static DEFINE_PER_CPU(struct rnd_state, net_rand_state);
113264 +static DEFINE_PER_CPU(struct rnd_state, net_rand_state) __latent_entropy;
113265
113266 /**
113267 * prandom_u32_state - seeded pseudo-random number generator.
113268 diff --git a/lib/rbtree.c b/lib/rbtree.c
113269 index 1356454..70ce6c6 100644
113270 --- a/lib/rbtree.c
113271 +++ b/lib/rbtree.c
113272 @@ -412,7 +412,9 @@ static inline void dummy_copy(struct rb_node *old, struct rb_node *new) {}
113273 static inline void dummy_rotate(struct rb_node *old, struct rb_node *new) {}
113274
113275 static const struct rb_augment_callbacks dummy_callbacks = {
113276 - dummy_propagate, dummy_copy, dummy_rotate
113277 + .propagate = dummy_propagate,
113278 + .copy = dummy_copy,
113279 + .rotate = dummy_rotate
113280 };
113281
113282 void rb_insert_color(struct rb_node *node, struct rb_root *root)
113283 diff --git a/lib/show_mem.c b/lib/show_mem.c
113284 index adc98e18..0ce83c2 100644
113285 --- a/lib/show_mem.c
113286 +++ b/lib/show_mem.c
113287 @@ -49,6 +49,6 @@ void show_mem(unsigned int filter)
113288 quicklist_total_size());
113289 #endif
113290 #ifdef CONFIG_MEMORY_FAILURE
113291 - printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
113292 + printk("%lu pages hwpoisoned\n", atomic_long_read_unchecked(&num_poisoned_pages));
113293 #endif
113294 }
113295 diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
113296 index e0af6ff..fcc9f15 100644
113297 --- a/lib/strncpy_from_user.c
113298 +++ b/lib/strncpy_from_user.c
113299 @@ -22,7 +22,7 @@
113300 */
113301 static inline long do_strncpy_from_user(char *dst, const char __user *src, long count, unsigned long max)
113302 {
113303 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113304 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113305 long res = 0;
113306
113307 /*
113308 diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c
113309 index 3a5f2b3..102f1ff 100644
113310 --- a/lib/strnlen_user.c
113311 +++ b/lib/strnlen_user.c
113312 @@ -26,7 +26,7 @@
113313 */
113314 static inline long do_strnlen_user(const char __user *src, unsigned long count, unsigned long max)
113315 {
113316 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113317 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
113318 long align, res = 0;
113319 unsigned long c;
113320
113321 diff --git a/lib/swiotlb.c b/lib/swiotlb.c
113322 index 76f29ec..1a5316f 100644
113323 --- a/lib/swiotlb.c
113324 +++ b/lib/swiotlb.c
113325 @@ -690,7 +690,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
113326
113327 void
113328 swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
113329 - dma_addr_t dev_addr)
113330 + dma_addr_t dev_addr, struct dma_attrs *attrs)
113331 {
113332 phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
113333
113334 diff --git a/lib/usercopy.c b/lib/usercopy.c
113335 index 4f5b1dd..7cab418 100644
113336 --- a/lib/usercopy.c
113337 +++ b/lib/usercopy.c
113338 @@ -7,3 +7,9 @@ void copy_from_user_overflow(void)
113339 WARN(1, "Buffer overflow detected!\n");
113340 }
113341 EXPORT_SYMBOL(copy_from_user_overflow);
113342 +
113343 +void copy_to_user_overflow(void)
113344 +{
113345 + WARN(1, "Buffer overflow detected!\n");
113346 +}
113347 +EXPORT_SYMBOL(copy_to_user_overflow);
113348 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
113349 index da39c60..ac91239 100644
113350 --- a/lib/vsprintf.c
113351 +++ b/lib/vsprintf.c
113352 @@ -16,6 +16,9 @@
113353 * - scnprintf and vscnprintf
113354 */
113355
113356 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113357 +#define __INCLUDED_BY_HIDESYM 1
113358 +#endif
113359 #include <stdarg.h>
113360 #include <linux/clk-provider.h>
113361 #include <linux/module.h> /* for KSYM_SYMBOL_LEN */
113362 @@ -628,7 +631,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
113363 #ifdef CONFIG_KALLSYMS
113364 if (*fmt == 'B')
113365 sprint_backtrace(sym, value);
113366 - else if (*fmt != 'f' && *fmt != 's')
113367 + else if (*fmt != 'f' && *fmt != 's' && *fmt != 'X')
113368 sprint_symbol(sym, value);
113369 else
113370 sprint_symbol_no_offset(sym, value);
113371 @@ -1360,7 +1363,11 @@ char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,
113372 }
113373 }
113374
113375 -int kptr_restrict __read_mostly;
113376 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113377 +int kptr_restrict __read_only = 2;
113378 +#else
113379 +int kptr_restrict __read_only;
113380 +#endif
113381
113382 /*
113383 * Show a '%p' thing. A kernel extension is that the '%p' is followed
113384 @@ -1371,8 +1378,10 @@ int kptr_restrict __read_mostly;
113385 *
113386 * - 'F' For symbolic function descriptor pointers with offset
113387 * - 'f' For simple symbolic function names without offset
113388 + * - 'X' For simple symbolic function names without offset approved for use with GRKERNSEC_HIDESYM
113389 * - 'S' For symbolic direct pointers with offset
113390 * - 's' For symbolic direct pointers without offset
113391 + * - 'A' For symbolic direct pointers with offset approved for use with GRKERNSEC_HIDESYM
113392 * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
113393 * - 'B' For backtraced symbolic direct pointers with offset
113394 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
113395 @@ -1460,12 +1469,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113396
113397 if (!ptr && *fmt != 'K') {
113398 /*
113399 - * Print (null) with the same width as a pointer so it makes
113400 + * Print (nil) with the same width as a pointer so it makes
113401 * tabular output look nice.
113402 */
113403 if (spec.field_width == -1)
113404 spec.field_width = default_width;
113405 - return string(buf, end, "(null)", spec);
113406 + return string(buf, end, "(nil)", spec);
113407 }
113408
113409 switch (*fmt) {
113410 @@ -1475,6 +1484,14 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113411 /* Fallthrough */
113412 case 'S':
113413 case 's':
113414 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113415 + break;
113416 +#else
113417 + return symbol_string(buf, end, ptr, spec, fmt);
113418 +#endif
113419 + case 'X':
113420 + ptr = dereference_function_descriptor(ptr);
113421 + case 'A':
113422 case 'B':
113423 return symbol_string(buf, end, ptr, spec, fmt);
113424 case 'R':
113425 @@ -1539,6 +1556,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113426 va_end(va);
113427 return buf;
113428 }
113429 + case 'P':
113430 + break;
113431 case 'K':
113432 /*
113433 * %pK cannot be used in IRQ context because its test
113434 @@ -1598,6 +1617,22 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
113435 ((const struct file *)ptr)->f_path.dentry,
113436 spec, fmt);
113437 }
113438 +
113439 +#ifdef CONFIG_GRKERNSEC_HIDESYM
113440 + /* 'P' = approved pointers to copy to userland,
113441 + as in the /proc/kallsyms case, as we make it display nothing
113442 + for non-root users, and the real contents for root users
113443 + 'X' = approved simple symbols
113444 + Also ignore 'K' pointers, since we force their NULLing for non-root users
113445 + above
113446 + */
113447 + if ((unsigned long)ptr > TASK_SIZE && *fmt != 'P' && *fmt != 'X' && *fmt != 'K' && is_usercopy_object(buf)) {
113448 + printk(KERN_ALERT "grsec: kernel infoleak detected! Please report this log to spender@grsecurity.net.\n");
113449 + dump_stack();
113450 + ptr = NULL;
113451 + }
113452 +#endif
113453 +
113454 spec.flags |= SMALL;
113455 if (spec.field_width == -1) {
113456 spec.field_width = default_width;
113457 @@ -2296,11 +2331,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
113458 typeof(type) value; \
113459 if (sizeof(type) == 8) { \
113460 args = PTR_ALIGN(args, sizeof(u32)); \
113461 - *(u32 *)&value = *(u32 *)args; \
113462 - *((u32 *)&value + 1) = *(u32 *)(args + 4); \
113463 + *(u32 *)&value = *(const u32 *)args; \
113464 + *((u32 *)&value + 1) = *(const u32 *)(args + 4); \
113465 } else { \
113466 args = PTR_ALIGN(args, sizeof(type)); \
113467 - value = *(typeof(type) *)args; \
113468 + value = *(const typeof(type) *)args; \
113469 } \
113470 args += sizeof(type); \
113471 value; \
113472 @@ -2363,7 +2398,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
113473 case FORMAT_TYPE_STR: {
113474 const char *str_arg = args;
113475 args += strlen(str_arg) + 1;
113476 - str = string(str, end, (char *)str_arg, spec);
113477 + str = string(str, end, str_arg, spec);
113478 break;
113479 }
113480
113481 diff --git a/localversion-grsec b/localversion-grsec
113482 new file mode 100644
113483 index 0000000..7cd6065
113484 --- /dev/null
113485 +++ b/localversion-grsec
113486 @@ -0,0 +1 @@
113487 +-grsec
113488 diff --git a/mm/Kconfig b/mm/Kconfig
113489 index e79de2b..fba3116 100644
113490 --- a/mm/Kconfig
113491 +++ b/mm/Kconfig
113492 @@ -342,10 +342,11 @@ config KSM
113493 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
113494
113495 config DEFAULT_MMAP_MIN_ADDR
113496 - int "Low address space to protect from user allocation"
113497 + int "Low address space to protect from user allocation"
113498 depends on MMU
113499 - default 4096
113500 - help
113501 + default 32768 if ALPHA || ARM || PARISC || SPARC32
113502 + default 65536
113503 + help
113504 This is the portion of low virtual memory which should be protected
113505 from userspace allocation. Keeping a user from writing to low pages
113506 can help reduce the impact of kernel NULL pointer bugs.
113507 @@ -377,8 +378,9 @@ config MEMORY_FAILURE
113508
113509 config HWPOISON_INJECT
113510 tristate "HWPoison pages injector"
113511 - depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS
113512 + depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS && !GRKERNSEC
113513 select PROC_PAGE_MONITOR
113514 + depends on !GRKERNSEC
113515
113516 config NOMMU_INITIAL_TRIM_EXCESS
113517 int "Turn on mmap() excess space trimming before booting"
113518 @@ -539,6 +541,7 @@ config MEM_SOFT_DIRTY
113519 bool "Track memory changes"
113520 depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY && PROC_FS
113521 select PROC_PAGE_MONITOR
113522 + depends on !GRKERNSEC
113523 help
113524 This option enables memory changes tracking by introducing a
113525 soft-dirty bit on pte-s. This bit it set when someone writes
113526 @@ -613,6 +616,7 @@ config ZSMALLOC_STAT
113527 bool "Export zsmalloc statistics"
113528 depends on ZSMALLOC
113529 select DEBUG_FS
113530 + depends on !GRKERNSEC_KMEM
113531 help
113532 This option enables code in the zsmalloc to collect various
113533 statistics about whats happening in zsmalloc and exports that
113534 diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
113535 index 957d3da..1d34e20 100644
113536 --- a/mm/Kconfig.debug
113537 +++ b/mm/Kconfig.debug
113538 @@ -10,6 +10,7 @@ config PAGE_EXTENSION
113539 config DEBUG_PAGEALLOC
113540 bool "Debug page memory allocations"
113541 depends on DEBUG_KERNEL
113542 + depends on !PAX_MEMORY_SANITIZE
113543 depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
113544 depends on !KMEMCHECK
113545 select PAGE_EXTENSION
113546 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
113547 index dc07d88..3929c29 100644
113548 --- a/mm/backing-dev.c
113549 +++ b/mm/backing-dev.c
113550 @@ -12,7 +12,7 @@
113551 #include <linux/device.h>
113552 #include <trace/events/writeback.h>
113553
113554 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
113555 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
113556
113557 struct backing_dev_info noop_backing_dev_info = {
113558 .name = "noop",
113559 @@ -865,7 +865,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
113560 return err;
113561
113562 err = bdi_register(bdi, NULL, "%.28s-%ld", name,
113563 - atomic_long_inc_return(&bdi_seq));
113564 + atomic_long_inc_return_unchecked(&bdi_seq));
113565 if (err) {
113566 bdi_destroy(bdi);
113567 return err;
113568 diff --git a/mm/debug.c b/mm/debug.c
113569 index 76089dd..dd37b9b 100644
113570 --- a/mm/debug.c
113571 +++ b/mm/debug.c
113572 @@ -127,6 +127,9 @@ static const struct trace_print_flags vmaflags_names[] = {
113573 {VM_RAND_READ, "randread" },
113574 {VM_DONTCOPY, "dontcopy" },
113575 {VM_DONTEXPAND, "dontexpand" },
113576 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
113577 + {VM_PAGEEXEC, "pageexec" },
113578 +#endif
113579 {VM_ACCOUNT, "account" },
113580 {VM_NORESERVE, "noreserve" },
113581 {VM_HUGETLB, "hugetlb" },
113582 diff --git a/mm/dmapool.c b/mm/dmapool.c
113583 index fd5fe43..39ea317 100644
113584 --- a/mm/dmapool.c
113585 +++ b/mm/dmapool.c
113586 @@ -386,7 +386,7 @@ static struct dma_page *pool_find_page(struct dma_pool *pool, dma_addr_t dma)
113587 list_for_each_entry(page, &pool->page_list, page_list) {
113588 if (dma < page->dma)
113589 continue;
113590 - if (dma < (page->dma + pool->allocation))
113591 + if ((dma - page->dma) < pool->allocation)
113592 return page;
113593 }
113594 return NULL;
113595 diff --git a/mm/filemap.c b/mm/filemap.c
113596 index 3fd68ee..3d8d6de 100644
113597 --- a/mm/filemap.c
113598 +++ b/mm/filemap.c
113599 @@ -2122,7 +2122,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
113600 struct address_space *mapping = file->f_mapping;
113601
113602 if (!mapping->a_ops->readpage)
113603 - return -ENOEXEC;
113604 + return -ENODEV;
113605 file_accessed(file);
113606 vma->vm_ops = &generic_file_vm_ops;
113607 return 0;
113608 @@ -2303,6 +2303,7 @@ inline ssize_t generic_write_checks(struct kiocb *iocb, struct iov_iter *from)
113609 pos = iocb->ki_pos;
113610
113611 if (limit != RLIM_INFINITY) {
113612 + gr_learn_resource(current, RLIMIT_FSIZE, iocb->ki_pos, 0);
113613 if (iocb->ki_pos >= limit) {
113614 send_sig(SIGXFSZ, current, 0);
113615 return -EFBIG;
113616 diff --git a/mm/gup.c b/mm/gup.c
113617 index 6297f6b..7652403 100644
113618 --- a/mm/gup.c
113619 +++ b/mm/gup.c
113620 @@ -265,11 +265,6 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
113621 unsigned int fault_flags = 0;
113622 int ret;
113623
113624 - /* For mm_populate(), just skip the stack guard page. */
113625 - if ((*flags & FOLL_POPULATE) &&
113626 - (stack_guard_page_start(vma, address) ||
113627 - stack_guard_page_end(vma, address + PAGE_SIZE)))
113628 - return -ENOENT;
113629 if (*flags & FOLL_WRITE)
113630 fault_flags |= FAULT_FLAG_WRITE;
113631 if (nonblocking)
113632 @@ -435,14 +430,14 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
113633 if (!(gup_flags & FOLL_FORCE))
113634 gup_flags |= FOLL_NUMA;
113635
113636 - do {
113637 + while (nr_pages) {
113638 struct page *page;
113639 unsigned int foll_flags = gup_flags;
113640 unsigned int page_increm;
113641
113642 /* first iteration or cross vma bound */
113643 if (!vma || start >= vma->vm_end) {
113644 - vma = find_extend_vma(mm, start);
113645 + vma = find_vma(mm, start);
113646 if (!vma && in_gate_area(mm, start)) {
113647 int ret;
113648 ret = get_gate_page(mm, start & PAGE_MASK,
113649 @@ -454,7 +449,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
113650 goto next_page;
113651 }
113652
113653 - if (!vma || check_vma_flags(vma, gup_flags))
113654 + if (!vma || start < vma->vm_start || check_vma_flags(vma, gup_flags))
113655 return i ? : -EFAULT;
113656 if (is_vm_hugetlb_page(vma)) {
113657 i = follow_hugetlb_page(mm, vma, pages, vmas,
113658 @@ -509,7 +504,7 @@ next_page:
113659 i += page_increm;
113660 start += page_increm * PAGE_SIZE;
113661 nr_pages -= page_increm;
113662 - } while (nr_pages);
113663 + }
113664 return i;
113665 }
113666 EXPORT_SYMBOL(__get_user_pages);
113667 diff --git a/mm/highmem.c b/mm/highmem.c
113668 index 123bcd3..c2c85db 100644
113669 --- a/mm/highmem.c
113670 +++ b/mm/highmem.c
113671 @@ -195,8 +195,9 @@ static void flush_all_zero_pkmaps(void)
113672 * So no dangers, even with speculative execution.
113673 */
113674 page = pte_page(pkmap_page_table[i]);
113675 + pax_open_kernel();
113676 pte_clear(&init_mm, PKMAP_ADDR(i), &pkmap_page_table[i]);
113677 -
113678 + pax_close_kernel();
113679 set_page_address(page, NULL);
113680 need_flush = 1;
113681 }
113682 @@ -259,8 +260,11 @@ start:
113683 }
113684 }
113685 vaddr = PKMAP_ADDR(last_pkmap_nr);
113686 +
113687 + pax_open_kernel();
113688 set_pte_at(&init_mm, vaddr,
113689 &(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot));
113690 + pax_close_kernel();
113691
113692 pkmap_count[last_pkmap_nr] = 1;
113693 set_page_address(page, (void *)vaddr);
113694 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
113695 index 62c1ec5..ec431dc 100644
113696 --- a/mm/hugetlb.c
113697 +++ b/mm/hugetlb.c
113698 @@ -2442,6 +2442,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
113699 struct ctl_table *table, int write,
113700 void __user *buffer, size_t *length, loff_t *ppos)
113701 {
113702 + ctl_table_no_const t;
113703 struct hstate *h = &default_hstate;
113704 unsigned long tmp = h->max_huge_pages;
113705 int ret;
113706 @@ -2449,9 +2450,10 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
113707 if (!hugepages_supported())
113708 return -ENOTSUPP;
113709
113710 - table->data = &tmp;
113711 - table->maxlen = sizeof(unsigned long);
113712 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
113713 + t = *table;
113714 + t.data = &tmp;
113715 + t.maxlen = sizeof(unsigned long);
113716 + ret = proc_doulongvec_minmax(&t, write, buffer, length, ppos);
113717 if (ret)
113718 goto out;
113719
113720 @@ -2486,6 +2488,7 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
113721 struct hstate *h = &default_hstate;
113722 unsigned long tmp;
113723 int ret;
113724 + ctl_table_no_const hugetlb_table;
113725
113726 if (!hugepages_supported())
113727 return -ENOTSUPP;
113728 @@ -2495,9 +2498,10 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
113729 if (write && hstate_is_gigantic(h))
113730 return -EINVAL;
113731
113732 - table->data = &tmp;
113733 - table->maxlen = sizeof(unsigned long);
113734 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
113735 + hugetlb_table = *table;
113736 + hugetlb_table.data = &tmp;
113737 + hugetlb_table.maxlen = sizeof(unsigned long);
113738 + ret = proc_doulongvec_minmax(&hugetlb_table, write, buffer, length, ppos);
113739 if (ret)
113740 goto out;
113741
113742 @@ -2995,6 +2999,27 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
113743 i_mmap_unlock_write(mapping);
113744 }
113745
113746 +#ifdef CONFIG_PAX_SEGMEXEC
113747 +static void pax_mirror_huge_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m)
113748 +{
113749 + struct mm_struct *mm = vma->vm_mm;
113750 + struct vm_area_struct *vma_m;
113751 + unsigned long address_m;
113752 + pte_t *ptep_m;
113753 +
113754 + vma_m = pax_find_mirror_vma(vma);
113755 + if (!vma_m)
113756 + return;
113757 +
113758 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
113759 + address_m = address + SEGMEXEC_TASK_SIZE;
113760 + ptep_m = huge_pte_offset(mm, address_m & HPAGE_MASK);
113761 + get_page(page_m);
113762 + hugepage_add_anon_rmap(page_m, vma_m, address_m);
113763 + set_huge_pte_at(mm, address_m, ptep_m, make_huge_pte(vma_m, page_m, 0));
113764 +}
113765 +#endif
113766 +
113767 /*
113768 * Hugetlb_cow() should be called with page lock of the original hugepage held.
113769 * Called with hugetlb_instantiation_mutex held and pte_page locked so we
113770 @@ -3108,6 +3133,11 @@ retry_avoidcopy:
113771 make_huge_pte(vma, new_page, 1));
113772 page_remove_rmap(old_page);
113773 hugepage_add_new_anon_rmap(new_page, vma, address);
113774 +
113775 +#ifdef CONFIG_PAX_SEGMEXEC
113776 + pax_mirror_huge_pte(vma, address, new_page);
113777 +#endif
113778 +
113779 /* Make the old page be freed below */
113780 new_page = old_page;
113781 }
113782 @@ -3269,6 +3299,10 @@ retry:
113783 && (vma->vm_flags & VM_SHARED)));
113784 set_huge_pte_at(mm, address, ptep, new_pte);
113785
113786 +#ifdef CONFIG_PAX_SEGMEXEC
113787 + pax_mirror_huge_pte(vma, address, page);
113788 +#endif
113789 +
113790 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
113791 /* Optimization, do the COW without a second fault */
113792 ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page, ptl);
113793 @@ -3336,6 +3370,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113794 struct address_space *mapping;
113795 int need_wait_lock = 0;
113796
113797 +#ifdef CONFIG_PAX_SEGMEXEC
113798 + struct vm_area_struct *vma_m;
113799 +#endif
113800 +
113801 address &= huge_page_mask(h);
113802
113803 ptep = huge_pte_offset(mm, address);
113804 @@ -3349,6 +3387,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113805 VM_FAULT_SET_HINDEX(hstate_index(h));
113806 }
113807
113808 +#ifdef CONFIG_PAX_SEGMEXEC
113809 + vma_m = pax_find_mirror_vma(vma);
113810 + if (vma_m) {
113811 + unsigned long address_m;
113812 +
113813 + if (vma->vm_start > vma_m->vm_start) {
113814 + address_m = address;
113815 + address -= SEGMEXEC_TASK_SIZE;
113816 + vma = vma_m;
113817 + h = hstate_vma(vma);
113818 + } else
113819 + address_m = address + SEGMEXEC_TASK_SIZE;
113820 +
113821 + if (!huge_pte_alloc(mm, address_m, huge_page_size(h)))
113822 + return VM_FAULT_OOM;
113823 + address_m &= HPAGE_MASK;
113824 + unmap_hugepage_range(vma, address_m, address_m + HPAGE_SIZE, NULL);
113825 + }
113826 +#endif
113827 +
113828 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
113829 if (!ptep)
113830 return VM_FAULT_OOM;
113831 diff --git a/mm/internal.h b/mm/internal.h
113832 index 36b23f1..673a6c7 100644
113833 --- a/mm/internal.h
113834 +++ b/mm/internal.h
113835 @@ -157,6 +157,7 @@ __find_buddy_index(unsigned long page_idx, unsigned int order)
113836 extern int __isolate_free_page(struct page *page, unsigned int order);
113837 extern void __free_pages_bootmem(struct page *page, unsigned long pfn,
113838 unsigned int order);
113839 +extern void free_compound_page(struct page *page);
113840 extern void prep_compound_page(struct page *page, unsigned long order);
113841 #ifdef CONFIG_MEMORY_FAILURE
113842 extern bool is_free_buddy_page(struct page *page);
113843 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
113844 index cf79f11..254224e 100644
113845 --- a/mm/kmemleak.c
113846 +++ b/mm/kmemleak.c
113847 @@ -375,7 +375,7 @@ static void print_unreferenced(struct seq_file *seq,
113848
113849 for (i = 0; i < object->trace_len; i++) {
113850 void *ptr = (void *)object->trace[i];
113851 - seq_printf(seq, " [<%p>] %pS\n", ptr, ptr);
113852 + seq_printf(seq, " [<%pP>] %pA\n", ptr, ptr);
113853 }
113854 }
113855
113856 @@ -1966,7 +1966,7 @@ static int __init kmemleak_late_init(void)
113857 return -ENOMEM;
113858 }
113859
113860 - dentry = debugfs_create_file("kmemleak", S_IRUGO, NULL, NULL,
113861 + dentry = debugfs_create_file("kmemleak", S_IRUSR, NULL, NULL,
113862 &kmemleak_fops);
113863 if (!dentry)
113864 pr_warning("Failed to create the debugfs kmemleak file\n");
113865 diff --git a/mm/maccess.c b/mm/maccess.c
113866 index d53adf9..03a24bf 100644
113867 --- a/mm/maccess.c
113868 +++ b/mm/maccess.c
113869 @@ -26,7 +26,7 @@ long __probe_kernel_read(void *dst, const void *src, size_t size)
113870 set_fs(KERNEL_DS);
113871 pagefault_disable();
113872 ret = __copy_from_user_inatomic(dst,
113873 - (__force const void __user *)src, size);
113874 + (const void __force_user *)src, size);
113875 pagefault_enable();
113876 set_fs(old_fs);
113877
113878 @@ -53,7 +53,7 @@ long __probe_kernel_write(void *dst, const void *src, size_t size)
113879
113880 set_fs(KERNEL_DS);
113881 pagefault_disable();
113882 - ret = __copy_to_user_inatomic((__force void __user *)dst, src, size);
113883 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
113884 pagefault_enable();
113885 set_fs(old_fs);
113886
113887 diff --git a/mm/madvise.c b/mm/madvise.c
113888 index 64bb8a2..68e4be5 100644
113889 --- a/mm/madvise.c
113890 +++ b/mm/madvise.c
113891 @@ -52,6 +52,10 @@ static long madvise_behavior(struct vm_area_struct *vma,
113892 pgoff_t pgoff;
113893 unsigned long new_flags = vma->vm_flags;
113894
113895 +#ifdef CONFIG_PAX_SEGMEXEC
113896 + struct vm_area_struct *vma_m;
113897 +#endif
113898 +
113899 switch (behavior) {
113900 case MADV_NORMAL:
113901 new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
113902 @@ -127,6 +131,13 @@ success:
113903 /*
113904 * vm_flags is protected by the mmap_sem held in write mode.
113905 */
113906 +
113907 +#ifdef CONFIG_PAX_SEGMEXEC
113908 + vma_m = pax_find_mirror_vma(vma);
113909 + if (vma_m)
113910 + vma_m->vm_flags = new_flags & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT);
113911 +#endif
113912 +
113913 vma->vm_flags = new_flags;
113914
113915 out:
113916 @@ -278,11 +289,27 @@ static long madvise_dontneed(struct vm_area_struct *vma,
113917 struct vm_area_struct **prev,
113918 unsigned long start, unsigned long end)
113919 {
113920 +
113921 +#ifdef CONFIG_PAX_SEGMEXEC
113922 + struct vm_area_struct *vma_m;
113923 +#endif
113924 +
113925 *prev = vma;
113926 if (vma->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
113927 return -EINVAL;
113928
113929 zap_page_range(vma, start, end - start, NULL);
113930 +
113931 +#ifdef CONFIG_PAX_SEGMEXEC
113932 + vma_m = pax_find_mirror_vma(vma);
113933 + if (vma_m) {
113934 + if (vma_m->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
113935 + return -EINVAL;
113936 +
113937 + zap_page_range(vma_m, start + SEGMEXEC_TASK_SIZE, end - start, NULL);
113938 + }
113939 +#endif
113940 +
113941 return 0;
113942 }
113943
113944 @@ -485,6 +512,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
113945 if (end < start)
113946 return error;
113947
113948 +#ifdef CONFIG_PAX_SEGMEXEC
113949 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
113950 + if (end > SEGMEXEC_TASK_SIZE)
113951 + return error;
113952 + } else
113953 +#endif
113954 +
113955 + if (end > TASK_SIZE)
113956 + return error;
113957 +
113958 error = 0;
113959 if (end == start)
113960 return error;
113961 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
113962 index 1f4446a..47abb4e 100644
113963 --- a/mm/memory-failure.c
113964 +++ b/mm/memory-failure.c
113965 @@ -63,7 +63,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
113966
113967 int sysctl_memory_failure_recovery __read_mostly = 1;
113968
113969 -atomic_long_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
113970 +atomic_long_unchecked_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
113971
113972 #if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE)
113973
113974 @@ -200,7 +200,7 @@ static int kill_proc(struct task_struct *t, unsigned long addr, int trapno,
113975 pfn, t->comm, t->pid);
113976 si.si_signo = SIGBUS;
113977 si.si_errno = 0;
113978 - si.si_addr = (void *)addr;
113979 + si.si_addr = (void __user *)addr;
113980 #ifdef __ARCH_SI_TRAPNO
113981 si.si_trapno = trapno;
113982 #endif
113983 @@ -797,7 +797,7 @@ static struct page_state {
113984 unsigned long res;
113985 enum mf_action_page_type type;
113986 int (*action)(struct page *p, unsigned long pfn);
113987 -} error_states[] = {
113988 +} __do_const error_states[] = {
113989 { reserved, reserved, MF_MSG_KERNEL, me_kernel },
113990 /*
113991 * free pages are specially detected outside this table:
113992 @@ -1100,7 +1100,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
113993 nr_pages = 1 << compound_order(hpage);
113994 else /* normal page or thp */
113995 nr_pages = 1;
113996 - atomic_long_add(nr_pages, &num_poisoned_pages);
113997 + atomic_long_add_unchecked(nr_pages, &num_poisoned_pages);
113998
113999 /*
114000 * We need/can do nothing about count=0 pages.
114001 @@ -1128,7 +1128,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
114002 if (PageHWPoison(hpage)) {
114003 if ((hwpoison_filter(p) && TestClearPageHWPoison(p))
114004 || (p != hpage && TestSetPageHWPoison(hpage))) {
114005 - atomic_long_sub(nr_pages, &num_poisoned_pages);
114006 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
114007 unlock_page(hpage);
114008 return 0;
114009 }
114010 @@ -1152,7 +1152,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
114011 else
114012 pr_err("MCE: %#lx: thp split failed\n", pfn);
114013 if (TestClearPageHWPoison(p))
114014 - atomic_long_sub(nr_pages, &num_poisoned_pages);
114015 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
114016 put_page(p);
114017 if (p != hpage)
114018 put_page(hpage);
114019 @@ -1214,14 +1214,14 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
114020 */
114021 if (!PageHWPoison(p)) {
114022 printk(KERN_ERR "MCE %#lx: just unpoisoned\n", pfn);
114023 - atomic_long_sub(nr_pages, &num_poisoned_pages);
114024 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
114025 unlock_page(hpage);
114026 put_page(hpage);
114027 return 0;
114028 }
114029 if (hwpoison_filter(p)) {
114030 if (TestClearPageHWPoison(p))
114031 - atomic_long_sub(nr_pages, &num_poisoned_pages);
114032 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
114033 unlock_page(hpage);
114034 put_page(hpage);
114035 return 0;
114036 @@ -1450,7 +1450,7 @@ int unpoison_memory(unsigned long pfn)
114037 return 0;
114038 }
114039 if (TestClearPageHWPoison(p))
114040 - atomic_long_dec(&num_poisoned_pages);
114041 + atomic_long_dec_unchecked(&num_poisoned_pages);
114042 pr_info("MCE: Software-unpoisoned free page %#lx\n", pfn);
114043 return 0;
114044 }
114045 @@ -1464,7 +1464,7 @@ int unpoison_memory(unsigned long pfn)
114046 */
114047 if (TestClearPageHWPoison(page)) {
114048 pr_info("MCE: Software-unpoisoned page %#lx\n", pfn);
114049 - atomic_long_sub(nr_pages, &num_poisoned_pages);
114050 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
114051 freeit = 1;
114052 if (PageHuge(page))
114053 clear_page_hwpoison_huge_page(page);
114054 @@ -1600,11 +1600,11 @@ static int soft_offline_huge_page(struct page *page, int flags)
114055 if (PageHuge(page)) {
114056 set_page_hwpoison_huge_page(hpage);
114057 dequeue_hwpoisoned_huge_page(hpage);
114058 - atomic_long_add(1 << compound_order(hpage),
114059 + atomic_long_add_unchecked(1 << compound_order(hpage),
114060 &num_poisoned_pages);
114061 } else {
114062 SetPageHWPoison(page);
114063 - atomic_long_inc(&num_poisoned_pages);
114064 + atomic_long_inc_unchecked(&num_poisoned_pages);
114065 }
114066 }
114067 return ret;
114068 @@ -1643,7 +1643,7 @@ static int __soft_offline_page(struct page *page, int flags)
114069 put_page(page);
114070 pr_info("soft_offline: %#lx: invalidated\n", pfn);
114071 SetPageHWPoison(page);
114072 - atomic_long_inc(&num_poisoned_pages);
114073 + atomic_long_inc_unchecked(&num_poisoned_pages);
114074 return 0;
114075 }
114076
114077 @@ -1664,7 +1664,7 @@ static int __soft_offline_page(struct page *page, int flags)
114078 page_is_file_cache(page));
114079 list_add(&page->lru, &pagelist);
114080 if (!TestSetPageHWPoison(page))
114081 - atomic_long_inc(&num_poisoned_pages);
114082 + atomic_long_inc_unchecked(&num_poisoned_pages);
114083 ret = migrate_pages(&pagelist, new_page, NULL, MPOL_MF_MOVE_ALL,
114084 MIGRATE_SYNC, MR_MEMORY_FAILURE);
114085 if (ret) {
114086 @@ -1680,7 +1680,7 @@ static int __soft_offline_page(struct page *page, int flags)
114087 if (ret > 0)
114088 ret = -EIO;
114089 if (TestClearPageHWPoison(page))
114090 - atomic_long_dec(&num_poisoned_pages);
114091 + atomic_long_dec_unchecked(&num_poisoned_pages);
114092 }
114093 } else {
114094 pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
114095 @@ -1742,11 +1742,11 @@ int soft_offline_page(struct page *page, int flags)
114096 if (PageHuge(page)) {
114097 set_page_hwpoison_huge_page(hpage);
114098 if (!dequeue_hwpoisoned_huge_page(hpage))
114099 - atomic_long_add(1 << compound_order(hpage),
114100 + atomic_long_add_unchecked(1 << compound_order(hpage),
114101 &num_poisoned_pages);
114102 } else {
114103 if (!TestSetPageHWPoison(page))
114104 - atomic_long_inc(&num_poisoned_pages);
114105 + atomic_long_inc_unchecked(&num_poisoned_pages);
114106 }
114107 }
114108 return ret;
114109 diff --git a/mm/memory.c b/mm/memory.c
114110 index 388dcf9..82aa351 100644
114111 --- a/mm/memory.c
114112 +++ b/mm/memory.c
114113 @@ -414,6 +414,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
114114 free_pte_range(tlb, pmd, addr);
114115 } while (pmd++, addr = next, addr != end);
114116
114117 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_PER_CPU_PGD)
114118 start &= PUD_MASK;
114119 if (start < floor)
114120 return;
114121 @@ -429,6 +430,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
114122 pud_clear(pud);
114123 pmd_free_tlb(tlb, pmd, start);
114124 mm_dec_nr_pmds(tlb->mm);
114125 +#endif
114126 }
114127
114128 static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
114129 @@ -448,6 +450,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
114130 free_pmd_range(tlb, pud, addr, next, floor, ceiling);
114131 } while (pud++, addr = next, addr != end);
114132
114133 +#if !defined(CONFIG_X86_64) || !defined(CONFIG_PAX_PER_CPU_PGD)
114134 start &= PGDIR_MASK;
114135 if (start < floor)
114136 return;
114137 @@ -462,6 +465,8 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
114138 pud = pud_offset(pgd, start);
114139 pgd_clear(pgd);
114140 pud_free_tlb(tlb, pud, start);
114141 +#endif
114142 +
114143 }
114144
114145 /*
114146 @@ -690,7 +695,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
114147 /*
114148 * Choose text because data symbols depend on CONFIG_KALLSYMS_ALL=y
114149 */
114150 - pr_alert("file:%pD fault:%pf mmap:%pf readpage:%pf\n",
114151 + pr_alert("file:%pD fault:%pX mmap:%pX readpage:%pX\n",
114152 vma->vm_file,
114153 vma->vm_ops ? vma->vm_ops->fault : NULL,
114154 vma->vm_file ? vma->vm_file->f_op->mmap : NULL,
114155 @@ -1463,6 +1468,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
114156 page_add_file_rmap(page);
114157 set_pte_at(mm, addr, pte, mk_pte(page, prot));
114158
114159 +#ifdef CONFIG_PAX_SEGMEXEC
114160 + pax_mirror_file_pte(vma, addr, page, ptl);
114161 +#endif
114162 +
114163 retval = 0;
114164 pte_unmap_unlock(pte, ptl);
114165 return retval;
114166 @@ -1507,9 +1516,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
114167 if (!page_count(page))
114168 return -EINVAL;
114169 if (!(vma->vm_flags & VM_MIXEDMAP)) {
114170 +
114171 +#ifdef CONFIG_PAX_SEGMEXEC
114172 + struct vm_area_struct *vma_m;
114173 +#endif
114174 +
114175 BUG_ON(down_read_trylock(&vma->vm_mm->mmap_sem));
114176 BUG_ON(vma->vm_flags & VM_PFNMAP);
114177 vma->vm_flags |= VM_MIXEDMAP;
114178 +
114179 +#ifdef CONFIG_PAX_SEGMEXEC
114180 + vma_m = pax_find_mirror_vma(vma);
114181 + if (vma_m)
114182 + vma_m->vm_flags |= VM_MIXEDMAP;
114183 +#endif
114184 +
114185 }
114186 return insert_page(vma, addr, page, vma->vm_page_prot);
114187 }
114188 @@ -1592,6 +1613,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
114189 unsigned long pfn)
114190 {
114191 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
114192 + BUG_ON(vma->vm_mirror);
114193
114194 if (addr < vma->vm_start || addr >= vma->vm_end)
114195 return -EFAULT;
114196 @@ -1839,7 +1861,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
114197
114198 BUG_ON(pud_huge(*pud));
114199
114200 - pmd = pmd_alloc(mm, pud, addr);
114201 + pmd = (mm == &init_mm) ?
114202 + pmd_alloc_kernel(mm, pud, addr) :
114203 + pmd_alloc(mm, pud, addr);
114204 if (!pmd)
114205 return -ENOMEM;
114206 do {
114207 @@ -1859,7 +1883,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
114208 unsigned long next;
114209 int err;
114210
114211 - pud = pud_alloc(mm, pgd, addr);
114212 + pud = (mm == &init_mm) ?
114213 + pud_alloc_kernel(mm, pgd, addr) :
114214 + pud_alloc(mm, pgd, addr);
114215 if (!pud)
114216 return -ENOMEM;
114217 do {
114218 @@ -2040,6 +2066,196 @@ static inline int wp_page_reuse(struct mm_struct *mm,
114219 return VM_FAULT_WRITE;
114220 }
114221
114222 +#ifdef CONFIG_PAX_SEGMEXEC
114223 +static void pax_unmap_mirror_pte(struct vm_area_struct *vma, unsigned long address, pmd_t *pmd)
114224 +{
114225 + struct mm_struct *mm = vma->vm_mm;
114226 + spinlock_t *ptl;
114227 + pte_t *pte, entry;
114228 +
114229 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
114230 + entry = *pte;
114231 + if (pte_none(entry))
114232 + ;
114233 + else if (!pte_present(entry)) {
114234 + swp_entry_t swapentry;
114235 +
114236 + swapentry = pte_to_swp_entry(entry);
114237 + if (!non_swap_entry(swapentry))
114238 + dec_mm_counter_fast(mm, MM_SWAPENTS);
114239 + else if (is_migration_entry(swapentry)) {
114240 + if (PageAnon(migration_entry_to_page(swapentry)))
114241 + dec_mm_counter_fast(mm, MM_ANONPAGES);
114242 + else
114243 + dec_mm_counter_fast(mm, MM_FILEPAGES);
114244 + }
114245 + free_swap_and_cache(swapentry);
114246 + pte_clear_not_present_full(mm, address, pte, 0);
114247 + } else {
114248 + struct page *page;
114249 +
114250 + flush_cache_page(vma, address, pte_pfn(entry));
114251 + entry = ptep_clear_flush(vma, address, pte);
114252 + BUG_ON(pte_dirty(entry));
114253 + page = vm_normal_page(vma, address, entry);
114254 + if (page) {
114255 + update_hiwater_rss(mm);
114256 + if (PageAnon(page))
114257 + dec_mm_counter_fast(mm, MM_ANONPAGES);
114258 + else
114259 + dec_mm_counter_fast(mm, MM_FILEPAGES);
114260 + page_remove_rmap(page);
114261 + page_cache_release(page);
114262 + }
114263 + }
114264 + pte_unmap_unlock(pte, ptl);
114265 +}
114266 +
114267 +/* PaX: if vma is mirrored, synchronize the mirror's PTE
114268 + *
114269 + * the ptl of the lower mapped page is held on entry and is not released on exit
114270 + * or inside to ensure atomic changes to the PTE states (swapout, mremap, munmap, etc)
114271 + */
114272 +static void pax_mirror_anon_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
114273 +{
114274 + struct mm_struct *mm = vma->vm_mm;
114275 + unsigned long address_m;
114276 + spinlock_t *ptl_m;
114277 + struct vm_area_struct *vma_m;
114278 + pmd_t *pmd_m;
114279 + pte_t *pte_m, entry_m;
114280 +
114281 + BUG_ON(!page_m || !PageAnon(page_m));
114282 +
114283 + vma_m = pax_find_mirror_vma(vma);
114284 + if (!vma_m)
114285 + return;
114286 +
114287 + BUG_ON(!PageLocked(page_m));
114288 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114289 + address_m = address + SEGMEXEC_TASK_SIZE;
114290 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
114291 + pte_m = pte_offset_map(pmd_m, address_m);
114292 + ptl_m = pte_lockptr(mm, pmd_m);
114293 + if (ptl != ptl_m) {
114294 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
114295 + if (!pte_none(*pte_m))
114296 + goto out;
114297 + }
114298 +
114299 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
114300 + page_cache_get(page_m);
114301 + page_add_anon_rmap(page_m, vma_m, address_m);
114302 + inc_mm_counter_fast(mm, MM_ANONPAGES);
114303 + set_pte_at(mm, address_m, pte_m, entry_m);
114304 + update_mmu_cache(vma_m, address_m, pte_m);
114305 +out:
114306 + if (ptl != ptl_m)
114307 + spin_unlock(ptl_m);
114308 + pte_unmap(pte_m);
114309 + unlock_page(page_m);
114310 +}
114311 +
114312 +void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
114313 +{
114314 + struct mm_struct *mm = vma->vm_mm;
114315 + unsigned long address_m;
114316 + spinlock_t *ptl_m;
114317 + struct vm_area_struct *vma_m;
114318 + pmd_t *pmd_m;
114319 + pte_t *pte_m, entry_m;
114320 +
114321 + BUG_ON(!page_m || PageAnon(page_m));
114322 +
114323 + vma_m = pax_find_mirror_vma(vma);
114324 + if (!vma_m)
114325 + return;
114326 +
114327 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114328 + address_m = address + SEGMEXEC_TASK_SIZE;
114329 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
114330 + pte_m = pte_offset_map(pmd_m, address_m);
114331 + ptl_m = pte_lockptr(mm, pmd_m);
114332 + if (ptl != ptl_m) {
114333 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
114334 + if (!pte_none(*pte_m))
114335 + goto out;
114336 + }
114337 +
114338 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
114339 + page_cache_get(page_m);
114340 + page_add_file_rmap(page_m);
114341 + inc_mm_counter_fast(mm, MM_FILEPAGES);
114342 + set_pte_at(mm, address_m, pte_m, entry_m);
114343 + update_mmu_cache(vma_m, address_m, pte_m);
114344 +out:
114345 + if (ptl != ptl_m)
114346 + spin_unlock(ptl_m);
114347 + pte_unmap(pte_m);
114348 +}
114349 +
114350 +static void pax_mirror_pfn_pte(struct vm_area_struct *vma, unsigned long address, unsigned long pfn_m, spinlock_t *ptl)
114351 +{
114352 + struct mm_struct *mm = vma->vm_mm;
114353 + unsigned long address_m;
114354 + spinlock_t *ptl_m;
114355 + struct vm_area_struct *vma_m;
114356 + pmd_t *pmd_m;
114357 + pte_t *pte_m, entry_m;
114358 +
114359 + vma_m = pax_find_mirror_vma(vma);
114360 + if (!vma_m)
114361 + return;
114362 +
114363 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
114364 + address_m = address + SEGMEXEC_TASK_SIZE;
114365 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
114366 + pte_m = pte_offset_map(pmd_m, address_m);
114367 + ptl_m = pte_lockptr(mm, pmd_m);
114368 + if (ptl != ptl_m) {
114369 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
114370 + if (!pte_none(*pte_m))
114371 + goto out;
114372 + }
114373 +
114374 + entry_m = pfn_pte(pfn_m, vma_m->vm_page_prot);
114375 + set_pte_at(mm, address_m, pte_m, entry_m);
114376 +out:
114377 + if (ptl != ptl_m)
114378 + spin_unlock(ptl_m);
114379 + pte_unmap(pte_m);
114380 +}
114381 +
114382 +static void pax_mirror_pte(struct vm_area_struct *vma, unsigned long address, pte_t *pte, pmd_t *pmd, spinlock_t *ptl)
114383 +{
114384 + struct page *page_m;
114385 + pte_t entry;
114386 +
114387 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC))
114388 + goto out;
114389 +
114390 + entry = *pte;
114391 + page_m = vm_normal_page(vma, address, entry);
114392 + if (!page_m)
114393 + pax_mirror_pfn_pte(vma, address, pte_pfn(entry), ptl);
114394 + else if (PageAnon(page_m)) {
114395 + if (pax_find_mirror_vma(vma)) {
114396 + pte_unmap_unlock(pte, ptl);
114397 + lock_page(page_m);
114398 + pte = pte_offset_map_lock(vma->vm_mm, pmd, address, &ptl);
114399 + if (pte_same(entry, *pte))
114400 + pax_mirror_anon_pte(vma, address, page_m, ptl);
114401 + else
114402 + unlock_page(page_m);
114403 + }
114404 + } else
114405 + pax_mirror_file_pte(vma, address, page_m, ptl);
114406 +
114407 +out:
114408 + pte_unmap_unlock(pte, ptl);
114409 +}
114410 +#endif
114411 +
114412 /*
114413 * Handle the case of a page which we actually need to copy to a new page.
114414 *
114415 @@ -2094,6 +2310,12 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
114416 */
114417 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
114418 if (likely(pte_same(*page_table, orig_pte))) {
114419 +
114420 +#ifdef CONFIG_PAX_SEGMEXEC
114421 + if (pax_find_mirror_vma(vma))
114422 + BUG_ON(!trylock_page(new_page));
114423 +#endif
114424 +
114425 if (old_page) {
114426 if (!PageAnon(old_page)) {
114427 dec_mm_counter_fast(mm, MM_FILEPAGES);
114428 @@ -2148,6 +2370,10 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
114429 page_remove_rmap(old_page);
114430 }
114431
114432 +#ifdef CONFIG_PAX_SEGMEXEC
114433 + pax_mirror_anon_pte(vma, address, new_page, ptl);
114434 +#endif
114435 +
114436 /* Free the old page.. */
114437 new_page = old_page;
114438 page_copied = 1;
114439 @@ -2579,6 +2805,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
114440 swap_free(entry);
114441 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
114442 try_to_free_swap(page);
114443 +
114444 +#ifdef CONFIG_PAX_SEGMEXEC
114445 + if ((flags & FAULT_FLAG_WRITE) || !pax_find_mirror_vma(vma))
114446 +#endif
114447 +
114448 unlock_page(page);
114449 if (page != swapcache) {
114450 /*
114451 @@ -2602,6 +2833,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
114452
114453 /* No need to invalidate - it was non-present before */
114454 update_mmu_cache(vma, address, page_table);
114455 +
114456 +#ifdef CONFIG_PAX_SEGMEXEC
114457 + pax_mirror_anon_pte(vma, address, page, ptl);
114458 +#endif
114459 +
114460 unlock:
114461 pte_unmap_unlock(page_table, ptl);
114462 out:
114463 @@ -2621,40 +2857,6 @@ out_release:
114464 }
114465
114466 /*
114467 - * This is like a special single-page "expand_{down|up}wards()",
114468 - * except we must first make sure that 'address{-|+}PAGE_SIZE'
114469 - * doesn't hit another vma.
114470 - */
114471 -static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address)
114472 -{
114473 - address &= PAGE_MASK;
114474 - if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) {
114475 - struct vm_area_struct *prev = vma->vm_prev;
114476 -
114477 - /*
114478 - * Is there a mapping abutting this one below?
114479 - *
114480 - * That's only ok if it's the same stack mapping
114481 - * that has gotten split..
114482 - */
114483 - if (prev && prev->vm_end == address)
114484 - return prev->vm_flags & VM_GROWSDOWN ? 0 : -ENOMEM;
114485 -
114486 - return expand_downwards(vma, address - PAGE_SIZE);
114487 - }
114488 - if ((vma->vm_flags & VM_GROWSUP) && address + PAGE_SIZE == vma->vm_end) {
114489 - struct vm_area_struct *next = vma->vm_next;
114490 -
114491 - /* As VM_GROWSDOWN but s/below/above/ */
114492 - if (next && next->vm_start == address + PAGE_SIZE)
114493 - return next->vm_flags & VM_GROWSUP ? 0 : -ENOMEM;
114494 -
114495 - return expand_upwards(vma, address + PAGE_SIZE);
114496 - }
114497 - return 0;
114498 -}
114499 -
114500 -/*
114501 * We enter with non-exclusive mmap_sem (to exclude vma changes,
114502 * but allow concurrent faults), and pte mapped but not yet locked.
114503 * We return with mmap_sem still held, but pte unmapped and unlocked.
114504 @@ -2664,31 +2866,29 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
114505 unsigned int flags)
114506 {
114507 struct mem_cgroup *memcg;
114508 - struct page *page;
114509 + struct page *page = NULL;
114510 spinlock_t *ptl;
114511 pte_t entry;
114512
114513 - pte_unmap(page_table);
114514 -
114515 /* File mapping without ->vm_ops ? */
114516 - if (vma->vm_flags & VM_SHARED)
114517 + if (vma->vm_flags & VM_SHARED) {
114518 + pte_unmap(page_table);
114519 return VM_FAULT_SIGBUS;
114520 + }
114521
114522 - /* Check if we need to add a guard page to the stack */
114523 - if (check_stack_guard_page(vma, address) < 0)
114524 - return VM_FAULT_SIGSEGV;
114525 -
114526 - /* Use the zero-page for reads */
114527 if (!(flags & FAULT_FLAG_WRITE) && !mm_forbids_zeropage(mm)) {
114528 entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
114529 vma->vm_page_prot));
114530 - page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
114531 + ptl = pte_lockptr(mm, pmd);
114532 + spin_lock(ptl);
114533 if (!pte_none(*page_table))
114534 goto unlock;
114535 goto setpte;
114536 }
114537
114538 /* Allocate our own private page. */
114539 + pte_unmap(page_table);
114540 +
114541 if (unlikely(anon_vma_prepare(vma)))
114542 goto oom;
114543 page = alloc_zeroed_user_highpage_movable(vma, address);
114544 @@ -2713,6 +2913,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
114545 if (!pte_none(*page_table))
114546 goto release;
114547
114548 +#ifdef CONFIG_PAX_SEGMEXEC
114549 + if (pax_find_mirror_vma(vma))
114550 + BUG_ON(!trylock_page(page));
114551 +#endif
114552 +
114553 inc_mm_counter_fast(mm, MM_ANONPAGES);
114554 page_add_new_anon_rmap(page, vma, address);
114555 mem_cgroup_commit_charge(page, memcg, false);
114556 @@ -2722,6 +2927,12 @@ setpte:
114557
114558 /* No need to invalidate - it was non-present before */
114559 update_mmu_cache(vma, address, page_table);
114560 +
114561 +#ifdef CONFIG_PAX_SEGMEXEC
114562 + if (page)
114563 + pax_mirror_anon_pte(vma, address, page, ptl);
114564 +#endif
114565 +
114566 unlock:
114567 pte_unmap_unlock(page_table, ptl);
114568 return 0;
114569 @@ -2954,6 +3165,11 @@ static int do_read_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114570 return ret;
114571 }
114572 do_set_pte(vma, address, fault_page, pte, false, false);
114573 +
114574 +#ifdef CONFIG_PAX_SEGMEXEC
114575 + pax_mirror_file_pte(vma, address, fault_page, ptl);
114576 +#endif
114577 +
114578 unlock_page(fault_page);
114579 unlock_out:
114580 pte_unmap_unlock(pte, ptl);
114581 @@ -3005,7 +3221,18 @@ static int do_cow_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114582 }
114583 goto uncharge_out;
114584 }
114585 +
114586 +#ifdef CONFIG_PAX_SEGMEXEC
114587 + if (pax_find_mirror_vma(vma))
114588 + BUG_ON(!trylock_page(new_page));
114589 +#endif
114590 +
114591 do_set_pte(vma, address, new_page, pte, true, true);
114592 +
114593 +#ifdef CONFIG_PAX_SEGMEXEC
114594 + pax_mirror_anon_pte(vma, address, new_page, ptl);
114595 +#endif
114596 +
114597 mem_cgroup_commit_charge(new_page, memcg, false);
114598 lru_cache_add_active_or_unevictable(new_page, vma);
114599 pte_unmap_unlock(pte, ptl);
114600 @@ -3063,6 +3290,11 @@ static int do_shared_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114601 return ret;
114602 }
114603 do_set_pte(vma, address, fault_page, pte, true, false);
114604 +
114605 +#ifdef CONFIG_PAX_SEGMEXEC
114606 + pax_mirror_file_pte(vma, address, fault_page, ptl);
114607 +#endif
114608 +
114609 pte_unmap_unlock(pte, ptl);
114610
114611 if (set_page_dirty(fault_page))
114612 @@ -3288,6 +3520,12 @@ static int handle_pte_fault(struct mm_struct *mm,
114613 if (flags & FAULT_FLAG_WRITE)
114614 flush_tlb_fix_spurious_fault(vma, address);
114615 }
114616 +
114617 +#ifdef CONFIG_PAX_SEGMEXEC
114618 + pax_mirror_pte(vma, address, pte, pmd, ptl);
114619 + return 0;
114620 +#endif
114621 +
114622 unlock:
114623 pte_unmap_unlock(pte, ptl);
114624 return 0;
114625 @@ -3307,9 +3545,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
114626 pmd_t *pmd;
114627 pte_t *pte;
114628
114629 +#ifdef CONFIG_PAX_SEGMEXEC
114630 + struct vm_area_struct *vma_m;
114631 +#endif
114632 +
114633 if (unlikely(is_vm_hugetlb_page(vma)))
114634 return hugetlb_fault(mm, vma, address, flags);
114635
114636 +#ifdef CONFIG_PAX_SEGMEXEC
114637 + vma_m = pax_find_mirror_vma(vma);
114638 + if (vma_m) {
114639 + unsigned long address_m;
114640 + pgd_t *pgd_m;
114641 + pud_t *pud_m;
114642 + pmd_t *pmd_m;
114643 +
114644 + if (vma->vm_start > vma_m->vm_start) {
114645 + address_m = address;
114646 + address -= SEGMEXEC_TASK_SIZE;
114647 + vma = vma_m;
114648 + } else
114649 + address_m = address + SEGMEXEC_TASK_SIZE;
114650 +
114651 + pgd_m = pgd_offset(mm, address_m);
114652 + pud_m = pud_alloc(mm, pgd_m, address_m);
114653 + if (!pud_m)
114654 + return VM_FAULT_OOM;
114655 + pmd_m = pmd_alloc(mm, pud_m, address_m);
114656 + if (!pmd_m)
114657 + return VM_FAULT_OOM;
114658 + if (!pmd_present(*pmd_m) && __pte_alloc(mm, vma_m, pmd_m, address_m))
114659 + return VM_FAULT_OOM;
114660 + pax_unmap_mirror_pte(vma_m, address_m, pmd_m);
114661 + }
114662 +#endif
114663 +
114664 pgd = pgd_offset(mm, address);
114665 pud = pud_alloc(mm, pgd, address);
114666 if (!pud)
114667 @@ -3444,6 +3714,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
114668 spin_unlock(&mm->page_table_lock);
114669 return 0;
114670 }
114671 +
114672 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
114673 +{
114674 + pud_t *new = pud_alloc_one(mm, address);
114675 + if (!new)
114676 + return -ENOMEM;
114677 +
114678 + smp_wmb(); /* See comment in __pte_alloc */
114679 +
114680 + spin_lock(&mm->page_table_lock);
114681 + if (pgd_present(*pgd)) /* Another has populated it */
114682 + pud_free(mm, new);
114683 + else
114684 + pgd_populate_kernel(mm, pgd, new);
114685 + spin_unlock(&mm->page_table_lock);
114686 + return 0;
114687 +}
114688 #endif /* __PAGETABLE_PUD_FOLDED */
114689
114690 #ifndef __PAGETABLE_PMD_FOLDED
114691 @@ -3476,6 +3763,32 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
114692 spin_unlock(&mm->page_table_lock);
114693 return 0;
114694 }
114695 +
114696 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
114697 +{
114698 + pmd_t *new = pmd_alloc_one(mm, address);
114699 + if (!new)
114700 + return -ENOMEM;
114701 +
114702 + smp_wmb(); /* See comment in __pte_alloc */
114703 +
114704 + spin_lock(&mm->page_table_lock);
114705 +#ifndef __ARCH_HAS_4LEVEL_HACK
114706 + if (!pud_present(*pud)) {
114707 + mm_inc_nr_pmds(mm);
114708 + pud_populate_kernel(mm, pud, new);
114709 + } else /* Another has populated it */
114710 + pmd_free(mm, new);
114711 +#else
114712 + if (!pgd_present(*pud)) {
114713 + mm_inc_nr_pmds(mm);
114714 + pgd_populate_kernel(mm, pud, new);
114715 + } else /* Another has populated it */
114716 + pmd_free(mm, new);
114717 +#endif /* __ARCH_HAS_4LEVEL_HACK */
114718 + spin_unlock(&mm->page_table_lock);
114719 + return 0;
114720 +}
114721 #endif /* __PAGETABLE_PMD_FOLDED */
114722
114723 static int __follow_pte(struct mm_struct *mm, unsigned long address,
114724 @@ -3585,8 +3898,8 @@ out:
114725 return ret;
114726 }
114727
114728 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
114729 - void *buf, int len, int write)
114730 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
114731 + void *buf, size_t len, int write)
114732 {
114733 resource_size_t phys_addr;
114734 unsigned long prot = 0;
114735 @@ -3612,8 +3925,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
114736 * Access another process' address space as given in mm. If non-NULL, use the
114737 * given task for page fault accounting.
114738 */
114739 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
114740 - unsigned long addr, void *buf, int len, int write)
114741 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
114742 + unsigned long addr, void *buf, size_t len, int write)
114743 {
114744 struct vm_area_struct *vma;
114745 void *old_buf = buf;
114746 @@ -3621,7 +3934,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
114747 down_read(&mm->mmap_sem);
114748 /* ignore errors, just check how much was successfully transferred */
114749 while (len) {
114750 - int bytes, ret, offset;
114751 + ssize_t bytes, ret, offset;
114752 void *maddr;
114753 struct page *page = NULL;
114754
114755 @@ -3682,8 +3995,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
114756 *
114757 * The caller must hold a reference on @mm.
114758 */
114759 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
114760 - void *buf, int len, int write)
114761 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
114762 + void *buf, size_t len, int write)
114763 {
114764 return __access_remote_vm(NULL, mm, addr, buf, len, write);
114765 }
114766 @@ -3693,11 +4006,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
114767 * Source/target buffer must be kernel space,
114768 * Do not walk the page table directly, use get_user_pages
114769 */
114770 -int access_process_vm(struct task_struct *tsk, unsigned long addr,
114771 - void *buf, int len, int write)
114772 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr,
114773 + void *buf, size_t len, int write)
114774 {
114775 struct mm_struct *mm;
114776 - int ret;
114777 + ssize_t ret;
114778
114779 mm = get_task_mm(tsk);
114780 if (!mm)
114781 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
114782 index 99d4c1d..a577817 100644
114783 --- a/mm/mempolicy.c
114784 +++ b/mm/mempolicy.c
114785 @@ -703,6 +703,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
114786 unsigned long vmstart;
114787 unsigned long vmend;
114788
114789 +#ifdef CONFIG_PAX_SEGMEXEC
114790 + struct vm_area_struct *vma_m;
114791 +#endif
114792 +
114793 vma = find_vma(mm, start);
114794 if (!vma || vma->vm_start > start)
114795 return -EFAULT;
114796 @@ -746,6 +750,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
114797 err = vma_replace_policy(vma, new_pol);
114798 if (err)
114799 goto out;
114800 +
114801 +#ifdef CONFIG_PAX_SEGMEXEC
114802 + vma_m = pax_find_mirror_vma(vma);
114803 + if (vma_m) {
114804 + err = vma_replace_policy(vma_m, new_pol);
114805 + if (err)
114806 + goto out;
114807 + }
114808 +#endif
114809 +
114810 }
114811
114812 out:
114813 @@ -1161,6 +1175,17 @@ static long do_mbind(unsigned long start, unsigned long len,
114814
114815 if (end < start)
114816 return -EINVAL;
114817 +
114818 +#ifdef CONFIG_PAX_SEGMEXEC
114819 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
114820 + if (end > SEGMEXEC_TASK_SIZE)
114821 + return -EINVAL;
114822 + } else
114823 +#endif
114824 +
114825 + if (end > TASK_SIZE)
114826 + return -EINVAL;
114827 +
114828 if (end == start)
114829 return 0;
114830
114831 @@ -1386,8 +1411,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
114832 */
114833 tcred = __task_cred(task);
114834 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
114835 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
114836 - !capable(CAP_SYS_NICE)) {
114837 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
114838 rcu_read_unlock();
114839 err = -EPERM;
114840 goto out_put;
114841 @@ -1418,6 +1442,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
114842 goto out;
114843 }
114844
114845 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
114846 + if (mm != current->mm &&
114847 + (mm->pax_flags & MF_PAX_RANDMMAP || mm->pax_flags & MF_PAX_SEGMEXEC)) {
114848 + mmput(mm);
114849 + err = -EPERM;
114850 + goto out;
114851 + }
114852 +#endif
114853 +
114854 err = do_migrate_pages(mm, old, new,
114855 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
114856
114857 diff --git a/mm/migrate.c b/mm/migrate.c
114858 index fcb6204..b3f1a44 100644
114859 --- a/mm/migrate.c
114860 +++ b/mm/migrate.c
114861 @@ -1501,8 +1501,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
114862 */
114863 tcred = __task_cred(task);
114864 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
114865 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
114866 - !capable(CAP_SYS_NICE)) {
114867 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
114868 rcu_read_unlock();
114869 err = -EPERM;
114870 goto out;
114871 diff --git a/mm/mlock.c b/mm/mlock.c
114872 index 6fd2cf1..cbae765 100644
114873 --- a/mm/mlock.c
114874 +++ b/mm/mlock.c
114875 @@ -14,6 +14,7 @@
114876 #include <linux/pagevec.h>
114877 #include <linux/mempolicy.h>
114878 #include <linux/syscalls.h>
114879 +#include <linux/security.h>
114880 #include <linux/sched.h>
114881 #include <linux/export.h>
114882 #include <linux/rmap.h>
114883 @@ -557,7 +558,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
114884 {
114885 unsigned long nstart, end, tmp;
114886 struct vm_area_struct * vma, * prev;
114887 - int error;
114888 + int error = 0;
114889
114890 VM_BUG_ON(start & ~PAGE_MASK);
114891 VM_BUG_ON(len != PAGE_ALIGN(len));
114892 @@ -566,6 +567,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
114893 return -EINVAL;
114894 if (end == start)
114895 return 0;
114896 + if (end > TASK_SIZE)
114897 + return -EINVAL;
114898 +
114899 vma = find_vma(current->mm, start);
114900 if (!vma || vma->vm_start > start)
114901 return -ENOMEM;
114902 @@ -577,6 +581,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
114903 for (nstart = start ; ; ) {
114904 vm_flags_t newflags;
114905
114906 +#ifdef CONFIG_PAX_SEGMEXEC
114907 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
114908 + break;
114909 +#endif
114910 +
114911 /* Here we know that vma->vm_start <= nstart < vma->vm_end. */
114912
114913 newflags = vma->vm_flags & ~VM_LOCKED;
114914 @@ -627,6 +636,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
114915 locked += current->mm->locked_vm;
114916
114917 /* check against resource limits */
114918 + gr_learn_resource(current, RLIMIT_MEMLOCK, (current->mm->locked_vm << PAGE_SHIFT) + len, 1);
114919 if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
114920 error = do_mlock(start, len, 1);
114921
114922 @@ -668,6 +678,11 @@ static int do_mlockall(int flags)
114923 for (vma = current->mm->mmap; vma ; vma = prev->vm_next) {
114924 vm_flags_t newflags;
114925
114926 +#ifdef CONFIG_PAX_SEGMEXEC
114927 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
114928 + break;
114929 +#endif
114930 +
114931 newflags = vma->vm_flags & ~VM_LOCKED;
114932 if (flags & MCL_CURRENT)
114933 newflags |= VM_LOCKED;
114934 @@ -699,8 +714,10 @@ SYSCALL_DEFINE1(mlockall, int, flags)
114935 lock_limit >>= PAGE_SHIFT;
114936
114937 ret = -ENOMEM;
114938 +
114939 + gr_learn_resource(current, RLIMIT_MEMLOCK, current->mm->total_vm << PAGE_SHIFT, 1);
114940 +
114941 down_write(&current->mm->mmap_sem);
114942 -
114943 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
114944 capable(CAP_IPC_LOCK))
114945 ret = do_mlockall(flags);
114946 diff --git a/mm/mm_init.c b/mm/mm_init.c
114947 index fdadf91..5f527d1 100644
114948 --- a/mm/mm_init.c
114949 +++ b/mm/mm_init.c
114950 @@ -170,7 +170,7 @@ static int __meminit mm_compute_batch_notifier(struct notifier_block *self,
114951 return NOTIFY_OK;
114952 }
114953
114954 -static struct notifier_block compute_batch_nb __meminitdata = {
114955 +static struct notifier_block compute_batch_nb __meminitconst = {
114956 .notifier_call = mm_compute_batch_notifier,
114957 .priority = IPC_CALLBACK_PRI, /* use lowest priority */
114958 };
114959 diff --git a/mm/mmap.c b/mm/mmap.c
114960 index aa632ad..13456342 100644
114961 --- a/mm/mmap.c
114962 +++ b/mm/mmap.c
114963 @@ -41,6 +41,7 @@
114964 #include <linux/notifier.h>
114965 #include <linux/memory.h>
114966 #include <linux/printk.h>
114967 +#include <linux/random.h>
114968
114969 #include <asm/uaccess.h>
114970 #include <asm/cacheflush.h>
114971 @@ -57,6 +58,16 @@
114972 #define arch_rebalance_pgtables(addr, len) (addr)
114973 #endif
114974
114975 +static inline void verify_mm_writelocked(struct mm_struct *mm)
114976 +{
114977 +#if defined(CONFIG_DEBUG_VM) || defined(CONFIG_PAX)
114978 + if (unlikely(down_read_trylock(&mm->mmap_sem))) {
114979 + up_read(&mm->mmap_sem);
114980 + BUG();
114981 + }
114982 +#endif
114983 +}
114984 +
114985 static void unmap_region(struct mm_struct *mm,
114986 struct vm_area_struct *vma, struct vm_area_struct *prev,
114987 unsigned long start, unsigned long end);
114988 @@ -76,16 +87,25 @@ static void unmap_region(struct mm_struct *mm,
114989 * x: (no) no x: (no) yes x: (no) yes x: (yes) yes
114990 *
114991 */
114992 -pgprot_t protection_map[16] = {
114993 +pgprot_t protection_map[16] __read_only = {
114994 __P000, __P001, __P010, __P011, __P100, __P101, __P110, __P111,
114995 __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
114996 };
114997
114998 -pgprot_t vm_get_page_prot(unsigned long vm_flags)
114999 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
115000 {
115001 - return __pgprot(pgprot_val(protection_map[vm_flags &
115002 + pgprot_t prot = __pgprot(pgprot_val(protection_map[vm_flags &
115003 (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
115004 pgprot_val(arch_vm_get_page_prot(vm_flags)));
115005 +
115006 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
115007 + if (!(__supported_pte_mask & _PAGE_NX) &&
115008 + (vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC &&
115009 + (vm_flags & (VM_READ | VM_WRITE)))
115010 + prot = __pgprot(pte_val(pte_exprotect(__pte(pgprot_val(prot)))));
115011 +#endif
115012 +
115013 + return prot;
115014 }
115015 EXPORT_SYMBOL(vm_get_page_prot);
115016
115017 @@ -114,6 +134,7 @@ unsigned long sysctl_overcommit_kbytes __read_mostly;
115018 int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
115019 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
115020 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
115021 +unsigned long sysctl_heap_stack_gap __read_mostly = 64*1024;
115022 /*
115023 * Make sure vm_committed_as in one cacheline and not cacheline shared with
115024 * other variables. It can be updated by several CPUs frequently.
115025 @@ -271,6 +292,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
115026 struct vm_area_struct *next = vma->vm_next;
115027
115028 might_sleep();
115029 + BUG_ON(vma->vm_mirror);
115030 if (vma->vm_ops && vma->vm_ops->close)
115031 vma->vm_ops->close(vma);
115032 if (vma->vm_file)
115033 @@ -284,6 +306,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len);
115034
115035 SYSCALL_DEFINE1(brk, unsigned long, brk)
115036 {
115037 + unsigned long rlim;
115038 unsigned long retval;
115039 unsigned long newbrk, oldbrk;
115040 struct mm_struct *mm = current->mm;
115041 @@ -314,7 +337,13 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
115042 * segment grow beyond its set limit the in case where the limit is
115043 * not page aligned -Ram Gupta
115044 */
115045 - if (check_data_rlimit(rlimit(RLIMIT_DATA), brk, mm->start_brk,
115046 + rlim = rlimit(RLIMIT_DATA);
115047 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
115048 + /* force a minimum 16MB brk heap on setuid/setgid binaries */
115049 + if (rlim < PAGE_SIZE && (get_dumpable(mm) != SUID_DUMP_USER) && gr_is_global_nonroot(current_uid()))
115050 + rlim = 4096 * PAGE_SIZE;
115051 +#endif
115052 + if (check_data_rlimit(rlim, brk, mm->start_brk,
115053 mm->end_data, mm->start_data))
115054 goto out;
115055
115056 @@ -967,6 +996,12 @@ static int
115057 can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
115058 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
115059 {
115060 +
115061 +#ifdef CONFIG_PAX_SEGMEXEC
115062 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_start == SEGMEXEC_TASK_SIZE)
115063 + return 0;
115064 +#endif
115065 +
115066 if (is_mergeable_vma(vma, file, vm_flags) &&
115067 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
115068 if (vma->vm_pgoff == vm_pgoff)
115069 @@ -986,6 +1021,12 @@ static int
115070 can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
115071 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
115072 {
115073 +
115074 +#ifdef CONFIG_PAX_SEGMEXEC
115075 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end == SEGMEXEC_TASK_SIZE)
115076 + return 0;
115077 +#endif
115078 +
115079 if (is_mergeable_vma(vma, file, vm_flags) &&
115080 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
115081 pgoff_t vm_pglen;
115082 @@ -1035,6 +1076,13 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115083 struct vm_area_struct *area, *next;
115084 int err;
115085
115086 +#ifdef CONFIG_PAX_SEGMEXEC
115087 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE, end_m = end + SEGMEXEC_TASK_SIZE;
115088 + struct vm_area_struct *area_m = NULL, *next_m = NULL, *prev_m = NULL;
115089 +
115090 + BUG_ON((mm->pax_flags & MF_PAX_SEGMEXEC) && SEGMEXEC_TASK_SIZE < end);
115091 +#endif
115092 +
115093 /*
115094 * We later require that vma->vm_flags == vm_flags,
115095 * so this tests vma->vm_flags & VM_SPECIAL, too.
115096 @@ -1050,6 +1098,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115097 if (next && next->vm_end == end) /* cases 6, 7, 8 */
115098 next = next->vm_next;
115099
115100 +#ifdef CONFIG_PAX_SEGMEXEC
115101 + if (prev)
115102 + prev_m = pax_find_mirror_vma(prev);
115103 + if (area)
115104 + area_m = pax_find_mirror_vma(area);
115105 + if (next)
115106 + next_m = pax_find_mirror_vma(next);
115107 +#endif
115108 +
115109 /*
115110 * Can it merge with the predecessor?
115111 */
115112 @@ -1069,9 +1126,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115113 /* cases 1, 6 */
115114 err = vma_adjust(prev, prev->vm_start,
115115 next->vm_end, prev->vm_pgoff, NULL);
115116 - } else /* cases 2, 5, 7 */
115117 +
115118 +#ifdef CONFIG_PAX_SEGMEXEC
115119 + if (!err && prev_m)
115120 + err = vma_adjust(prev_m, prev_m->vm_start,
115121 + next_m->vm_end, prev_m->vm_pgoff, NULL);
115122 +#endif
115123 +
115124 + } else { /* cases 2, 5, 7 */
115125 err = vma_adjust(prev, prev->vm_start,
115126 end, prev->vm_pgoff, NULL);
115127 +
115128 +#ifdef CONFIG_PAX_SEGMEXEC
115129 + if (!err && prev_m)
115130 + err = vma_adjust(prev_m, prev_m->vm_start,
115131 + end_m, prev_m->vm_pgoff, NULL);
115132 +#endif
115133 +
115134 + }
115135 if (err)
115136 return NULL;
115137 khugepaged_enter_vma_merge(prev, vm_flags);
115138 @@ -1085,12 +1157,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
115139 mpol_equal(policy, vma_policy(next)) &&
115140 can_vma_merge_before(next, vm_flags,
115141 anon_vma, file, pgoff+pglen)) {
115142 - if (prev && addr < prev->vm_end) /* case 4 */
115143 + if (prev && addr < prev->vm_end) { /* case 4 */
115144 err = vma_adjust(prev, prev->vm_start,
115145 addr, prev->vm_pgoff, NULL);
115146 - else /* cases 3, 8 */
115147 +
115148 +#ifdef CONFIG_PAX_SEGMEXEC
115149 + if (!err && prev_m)
115150 + err = vma_adjust(prev_m, prev_m->vm_start,
115151 + addr_m, prev_m->vm_pgoff, NULL);
115152 +#endif
115153 +
115154 + } else { /* cases 3, 8 */
115155 err = vma_adjust(area, addr, next->vm_end,
115156 next->vm_pgoff - pglen, NULL);
115157 +
115158 +#ifdef CONFIG_PAX_SEGMEXEC
115159 + if (!err && area_m)
115160 + err = vma_adjust(area_m, addr_m, next_m->vm_end,
115161 + next_m->vm_pgoff - pglen, NULL);
115162 +#endif
115163 +
115164 + }
115165 if (err)
115166 return NULL;
115167 khugepaged_enter_vma_merge(area, vm_flags);
115168 @@ -1199,8 +1286,10 @@ none:
115169 void vm_stat_account(struct mm_struct *mm, unsigned long flags,
115170 struct file *file, long pages)
115171 {
115172 - const unsigned long stack_flags
115173 - = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN);
115174 +
115175 +#ifdef CONFIG_PAX_RANDMMAP
115176 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
115177 +#endif
115178
115179 mm->total_vm += pages;
115180
115181 @@ -1208,7 +1297,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
115182 mm->shared_vm += pages;
115183 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC)
115184 mm->exec_vm += pages;
115185 - } else if (flags & stack_flags)
115186 + } else if (flags & (VM_GROWSUP|VM_GROWSDOWN))
115187 mm->stack_vm += pages;
115188 }
115189 #endif /* CONFIG_PROC_FS */
115190 @@ -1238,6 +1327,7 @@ static inline int mlock_future_check(struct mm_struct *mm,
115191 locked += mm->locked_vm;
115192 lock_limit = rlimit(RLIMIT_MEMLOCK);
115193 lock_limit >>= PAGE_SHIFT;
115194 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
115195 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
115196 return -EAGAIN;
115197 }
115198 @@ -1267,7 +1357,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
115199 * (the exception is when the underlying filesystem is noexec
115200 * mounted, in which case we dont add PROT_EXEC.)
115201 */
115202 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
115203 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
115204 if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC)))
115205 prot |= PROT_EXEC;
115206
115207 @@ -1290,7 +1380,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
115208 /* Obtain the address to map to. we verify (or select) it and ensure
115209 * that it represents a valid section of the address space.
115210 */
115211 - addr = get_unmapped_area(file, addr, len, pgoff, flags);
115212 + addr = get_unmapped_area(file, addr, len, pgoff, flags | ((prot & PROT_EXEC) ? MAP_EXECUTABLE : 0));
115213 if (addr & ~PAGE_MASK)
115214 return addr;
115215
115216 @@ -1301,6 +1391,43 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
115217 vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
115218 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
115219
115220 +#ifdef CONFIG_PAX_MPROTECT
115221 + if (mm->pax_flags & MF_PAX_MPROTECT) {
115222 +
115223 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
115224 + if (file && !pgoff && (vm_flags & VM_EXEC) && mm->binfmt &&
115225 + mm->binfmt->handle_mmap)
115226 + mm->binfmt->handle_mmap(file);
115227 +#endif
115228 +
115229 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
115230 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) {
115231 + gr_log_rwxmmap(file);
115232 +
115233 +#ifdef CONFIG_PAX_EMUPLT
115234 + vm_flags &= ~VM_EXEC;
115235 +#else
115236 + return -EPERM;
115237 +#endif
115238 +
115239 + }
115240 +
115241 + if (!(vm_flags & VM_EXEC))
115242 + vm_flags &= ~VM_MAYEXEC;
115243 +#else
115244 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
115245 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
115246 +#endif
115247 + else
115248 + vm_flags &= ~VM_MAYWRITE;
115249 + }
115250 +#endif
115251 +
115252 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
115253 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && file)
115254 + vm_flags &= ~VM_PAGEEXEC;
115255 +#endif
115256 +
115257 if (flags & MAP_LOCKED)
115258 if (!can_do_mlock())
115259 return -EPERM;
115260 @@ -1388,6 +1515,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
115261 vm_flags |= VM_NORESERVE;
115262 }
115263
115264 + if (!gr_acl_handle_mmap(file, prot))
115265 + return -EACCES;
115266 +
115267 addr = mmap_region(file, addr, len, vm_flags, pgoff);
115268 if (!IS_ERR_VALUE(addr) &&
115269 ((vm_flags & VM_LOCKED) ||
115270 @@ -1481,7 +1611,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
115271 vm_flags_t vm_flags = vma->vm_flags;
115272
115273 /* If it was private or non-writable, the write bit is already clear */
115274 - if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED)))
115275 + if ((vm_flags & (VM_WRITE|VM_SHARED)) != (VM_WRITE|VM_SHARED))
115276 return 0;
115277
115278 /* The backer wishes to know when pages are first written to? */
115279 @@ -1532,7 +1662,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115280 struct rb_node **rb_link, *rb_parent;
115281 unsigned long charged = 0;
115282
115283 +#ifdef CONFIG_PAX_SEGMEXEC
115284 + struct vm_area_struct *vma_m = NULL;
115285 +#endif
115286 +
115287 + /*
115288 + * mm->mmap_sem is required to protect against another thread
115289 + * changing the mappings in case we sleep.
115290 + */
115291 + verify_mm_writelocked(mm);
115292 +
115293 /* Check against address space limit. */
115294 +
115295 +#ifdef CONFIG_PAX_RANDMMAP
115296 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (vm_flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
115297 +#endif
115298 +
115299 if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
115300 unsigned long nr_pages;
115301
115302 @@ -1555,6 +1700,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115303 &rb_parent)) {
115304 if (do_munmap(mm, addr, len))
115305 return -ENOMEM;
115306 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
115307 }
115308
115309 /*
115310 @@ -1586,6 +1732,16 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115311 goto unacct_error;
115312 }
115313
115314 +#ifdef CONFIG_PAX_SEGMEXEC
115315 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vm_flags & VM_EXEC)) {
115316 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
115317 + if (!vma_m) {
115318 + error = -ENOMEM;
115319 + goto free_vma;
115320 + }
115321 + }
115322 +#endif
115323 +
115324 vma->vm_mm = mm;
115325 vma->vm_start = addr;
115326 vma->vm_end = addr + len;
115327 @@ -1616,6 +1772,13 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115328 if (error)
115329 goto unmap_and_free_vma;
115330
115331 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
115332 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && !(vma->vm_flags & VM_SPECIAL)) {
115333 + vma->vm_flags |= VM_PAGEEXEC;
115334 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
115335 + }
115336 +#endif
115337 +
115338 /* Can addr have changed??
115339 *
115340 * Answer: Yes, several device drivers can do it in their
115341 @@ -1634,6 +1797,12 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
115342 }
115343
115344 vma_link(mm, vma, prev, rb_link, rb_parent);
115345 +
115346 +#ifdef CONFIG_PAX_SEGMEXEC
115347 + if (vma_m)
115348 + BUG_ON(pax_mirror_vma(vma_m, vma));
115349 +#endif
115350 +
115351 /* Once vma denies write, undo our temporary denial count */
115352 if (file) {
115353 if (vm_flags & VM_SHARED)
115354 @@ -1646,6 +1815,7 @@ out:
115355 perf_event_mmap(vma);
115356
115357 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
115358 + track_exec_limit(mm, addr, addr + len, vm_flags);
115359 if (vm_flags & VM_LOCKED) {
115360 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
115361 vma == get_gate_vma(current->mm)))
115362 @@ -1683,6 +1853,12 @@ allow_write_and_free_vma:
115363 if (vm_flags & VM_DENYWRITE)
115364 allow_write_access(file);
115365 free_vma:
115366 +
115367 +#ifdef CONFIG_PAX_SEGMEXEC
115368 + if (vma_m)
115369 + kmem_cache_free(vm_area_cachep, vma_m);
115370 +#endif
115371 +
115372 kmem_cache_free(vm_area_cachep, vma);
115373 unacct_error:
115374 if (charged)
115375 @@ -1690,7 +1866,63 @@ unacct_error:
115376 return error;
115377 }
115378
115379 -unsigned long unmapped_area(struct vm_unmapped_area_info *info)
115380 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
115381 +unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
115382 +{
115383 + if ((mm->pax_flags & MF_PAX_RANDMMAP) && !filp && (flags & MAP_STACK))
115384 + return ((prandom_u32() & 0xFF) + 1) << PAGE_SHIFT;
115385 +
115386 + return 0;
115387 +}
115388 +#endif
115389 +
115390 +bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset)
115391 +{
115392 + if (!vma) {
115393 +#ifdef CONFIG_STACK_GROWSUP
115394 + if (addr > sysctl_heap_stack_gap)
115395 + vma = find_vma(current->mm, addr - sysctl_heap_stack_gap);
115396 + else
115397 + vma = find_vma(current->mm, 0);
115398 + if (vma && (vma->vm_flags & VM_GROWSUP))
115399 + return false;
115400 +#endif
115401 + return true;
115402 + }
115403 +
115404 + if (addr + len > vma->vm_start)
115405 + return false;
115406 +
115407 + if (vma->vm_flags & VM_GROWSDOWN)
115408 + return sysctl_heap_stack_gap <= vma->vm_start - addr - len;
115409 +#ifdef CONFIG_STACK_GROWSUP
115410 + else if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP))
115411 + return addr - vma->vm_prev->vm_end >= sysctl_heap_stack_gap;
115412 +#endif
115413 + else if (offset)
115414 + return offset <= vma->vm_start - addr - len;
115415 +
115416 + return true;
115417 +}
115418 +
115419 +unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset)
115420 +{
115421 + if (vma->vm_start < len)
115422 + return -ENOMEM;
115423 +
115424 + if (!(vma->vm_flags & VM_GROWSDOWN)) {
115425 + if (offset <= vma->vm_start - len)
115426 + return vma->vm_start - len - offset;
115427 + else
115428 + return -ENOMEM;
115429 + }
115430 +
115431 + if (sysctl_heap_stack_gap <= vma->vm_start - len)
115432 + return vma->vm_start - len - sysctl_heap_stack_gap;
115433 + return -ENOMEM;
115434 +}
115435 +
115436 +unsigned long unmapped_area(const struct vm_unmapped_area_info *info)
115437 {
115438 /*
115439 * We implement the search by looking for an rbtree node that
115440 @@ -1738,11 +1970,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
115441 }
115442 }
115443
115444 - gap_start = vma->vm_prev ? vma->vm_prev->vm_end : 0;
115445 + gap_start = vma->vm_prev ? vma->vm_prev->vm_end: 0;
115446 check_current:
115447 /* Check if current node has a suitable gap */
115448 if (gap_start > high_limit)
115449 return -ENOMEM;
115450 +
115451 + if (gap_end - gap_start > info->threadstack_offset)
115452 + gap_start += info->threadstack_offset;
115453 + else
115454 + gap_start = gap_end;
115455 +
115456 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
115457 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115458 + gap_start += sysctl_heap_stack_gap;
115459 + else
115460 + gap_start = gap_end;
115461 + }
115462 + if (vma->vm_flags & VM_GROWSDOWN) {
115463 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115464 + gap_end -= sysctl_heap_stack_gap;
115465 + else
115466 + gap_end = gap_start;
115467 + }
115468 if (gap_end >= low_limit && gap_end - gap_start >= length)
115469 goto found;
115470
115471 @@ -1792,7 +2042,7 @@ found:
115472 return gap_start;
115473 }
115474
115475 -unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info)
115476 +unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info)
115477 {
115478 struct mm_struct *mm = current->mm;
115479 struct vm_area_struct *vma;
115480 @@ -1846,6 +2096,24 @@ check_current:
115481 gap_end = vma->vm_start;
115482 if (gap_end < low_limit)
115483 return -ENOMEM;
115484 +
115485 + if (gap_end - gap_start > info->threadstack_offset)
115486 + gap_end -= info->threadstack_offset;
115487 + else
115488 + gap_end = gap_start;
115489 +
115490 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
115491 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115492 + gap_start += sysctl_heap_stack_gap;
115493 + else
115494 + gap_start = gap_end;
115495 + }
115496 + if (vma->vm_flags & VM_GROWSDOWN) {
115497 + if (gap_end - gap_start > sysctl_heap_stack_gap)
115498 + gap_end -= sysctl_heap_stack_gap;
115499 + else
115500 + gap_end = gap_start;
115501 + }
115502 if (gap_start <= high_limit && gap_end - gap_start >= length)
115503 goto found;
115504
115505 @@ -1909,6 +2177,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
115506 struct mm_struct *mm = current->mm;
115507 struct vm_area_struct *vma;
115508 struct vm_unmapped_area_info info;
115509 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
115510
115511 if (len > TASK_SIZE - mmap_min_addr)
115512 return -ENOMEM;
115513 @@ -1916,11 +2185,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
115514 if (flags & MAP_FIXED)
115515 return addr;
115516
115517 +#ifdef CONFIG_PAX_RANDMMAP
115518 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
115519 +#endif
115520 +
115521 if (addr) {
115522 addr = PAGE_ALIGN(addr);
115523 vma = find_vma(mm, addr);
115524 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
115525 - (!vma || addr + len <= vma->vm_start))
115526 + check_heap_stack_gap(vma, addr, len, offset))
115527 return addr;
115528 }
115529
115530 @@ -1929,6 +2202,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
115531 info.low_limit = mm->mmap_base;
115532 info.high_limit = TASK_SIZE;
115533 info.align_mask = 0;
115534 + info.threadstack_offset = offset;
115535 return vm_unmapped_area(&info);
115536 }
115537 #endif
115538 @@ -1947,6 +2221,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115539 struct mm_struct *mm = current->mm;
115540 unsigned long addr = addr0;
115541 struct vm_unmapped_area_info info;
115542 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
115543
115544 /* requested length too big for entire address space */
115545 if (len > TASK_SIZE - mmap_min_addr)
115546 @@ -1955,12 +2230,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115547 if (flags & MAP_FIXED)
115548 return addr;
115549
115550 +#ifdef CONFIG_PAX_RANDMMAP
115551 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
115552 +#endif
115553 +
115554 /* requesting a specific address */
115555 if (addr) {
115556 addr = PAGE_ALIGN(addr);
115557 vma = find_vma(mm, addr);
115558 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
115559 - (!vma || addr + len <= vma->vm_start))
115560 + check_heap_stack_gap(vma, addr, len, offset))
115561 return addr;
115562 }
115563
115564 @@ -1969,6 +2248,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115565 info.low_limit = max(PAGE_SIZE, mmap_min_addr);
115566 info.high_limit = mm->mmap_base;
115567 info.align_mask = 0;
115568 + info.threadstack_offset = offset;
115569 addr = vm_unmapped_area(&info);
115570
115571 /*
115572 @@ -1981,6 +2261,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
115573 VM_BUG_ON(addr != -ENOMEM);
115574 info.flags = 0;
115575 info.low_limit = TASK_UNMAPPED_BASE;
115576 +
115577 +#ifdef CONFIG_PAX_RANDMMAP
115578 + if (mm->pax_flags & MF_PAX_RANDMMAP)
115579 + info.low_limit += mm->delta_mmap;
115580 +#endif
115581 +
115582 info.high_limit = TASK_SIZE;
115583 addr = vm_unmapped_area(&info);
115584 }
115585 @@ -2081,6 +2367,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
115586 return vma;
115587 }
115588
115589 +#ifdef CONFIG_PAX_SEGMEXEC
115590 +struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma)
115591 +{
115592 + struct vm_area_struct *vma_m;
115593 +
115594 + BUG_ON(!vma || vma->vm_start >= vma->vm_end);
115595 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC)) {
115596 + BUG_ON(vma->vm_mirror);
115597 + return NULL;
115598 + }
115599 + BUG_ON(vma->vm_start < SEGMEXEC_TASK_SIZE && SEGMEXEC_TASK_SIZE < vma->vm_end);
115600 + vma_m = vma->vm_mirror;
115601 + BUG_ON(!vma_m || vma_m->vm_mirror != vma);
115602 + BUG_ON(vma->vm_file != vma_m->vm_file);
115603 + BUG_ON(vma->vm_end - vma->vm_start != vma_m->vm_end - vma_m->vm_start);
115604 + BUG_ON(vma->vm_pgoff != vma_m->vm_pgoff);
115605 + BUG_ON(vma->anon_vma != vma_m->anon_vma && vma->anon_vma->root != vma_m->anon_vma->root);
115606 + BUG_ON((vma->vm_flags ^ vma_m->vm_flags) & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED));
115607 + return vma_m;
115608 +}
115609 +#endif
115610 +
115611 /*
115612 * Verify that the stack growth is acceptable and
115613 * update accounting. This is shared with both the
115614 @@ -2098,8 +2406,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
115615
115616 /* Stack limit test */
115617 actual_size = size;
115618 - if (size && (vma->vm_flags & (VM_GROWSUP | VM_GROWSDOWN)))
115619 - actual_size -= PAGE_SIZE;
115620 + gr_learn_resource(current, RLIMIT_STACK, actual_size, 1);
115621 if (actual_size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur))
115622 return -ENOMEM;
115623
115624 @@ -2110,6 +2417,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
115625 locked = mm->locked_vm + grow;
115626 limit = READ_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
115627 limit >>= PAGE_SHIFT;
115628 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
115629 if (locked > limit && !capable(CAP_IPC_LOCK))
115630 return -ENOMEM;
115631 }
115632 @@ -2139,37 +2447,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
115633 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
115634 * vma is the last one with address > vma->vm_end. Have to extend vma.
115635 */
115636 +#ifndef CONFIG_IA64
115637 +static
115638 +#endif
115639 int expand_upwards(struct vm_area_struct *vma, unsigned long address)
115640 {
115641 int error;
115642 + bool locknext;
115643
115644 if (!(vma->vm_flags & VM_GROWSUP))
115645 return -EFAULT;
115646
115647 + /* Also guard against wrapping around to address 0. */
115648 + if (address < PAGE_ALIGN(address+1))
115649 + address = PAGE_ALIGN(address+1);
115650 + else
115651 + return -ENOMEM;
115652 +
115653 /*
115654 * We must make sure the anon_vma is allocated
115655 * so that the anon_vma locking is not a noop.
115656 */
115657 if (unlikely(anon_vma_prepare(vma)))
115658 return -ENOMEM;
115659 + locknext = vma->vm_next && (vma->vm_next->vm_flags & VM_GROWSDOWN);
115660 + if (locknext && anon_vma_prepare(vma->vm_next))
115661 + return -ENOMEM;
115662 vma_lock_anon_vma(vma);
115663 + if (locknext)
115664 + vma_lock_anon_vma(vma->vm_next);
115665
115666 /*
115667 * vma->vm_start/vm_end cannot change under us because the caller
115668 * is required to hold the mmap_sem in read mode. We need the
115669 - * anon_vma lock to serialize against concurrent expand_stacks.
115670 - * Also guard against wrapping around to address 0.
115671 + * anon_vma locks to serialize against concurrent expand_stacks
115672 + * and expand_upwards.
115673 */
115674 - if (address < PAGE_ALIGN(address+4))
115675 - address = PAGE_ALIGN(address+4);
115676 - else {
115677 - vma_unlock_anon_vma(vma);
115678 - return -ENOMEM;
115679 - }
115680 error = 0;
115681
115682 /* Somebody else might have raced and expanded it already */
115683 - if (address > vma->vm_end) {
115684 + 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)
115685 + error = -ENOMEM;
115686 + else if (address > vma->vm_end && (!locknext || vma->vm_next->vm_start >= address)) {
115687 unsigned long size, grow;
115688
115689 size = address - vma->vm_start;
115690 @@ -2204,6 +2523,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
115691 }
115692 }
115693 }
115694 + if (locknext)
115695 + vma_unlock_anon_vma(vma->vm_next);
115696 vma_unlock_anon_vma(vma);
115697 khugepaged_enter_vma_merge(vma, vma->vm_flags);
115698 validate_mm(vma->vm_mm);
115699 @@ -2218,6 +2539,8 @@ int expand_downwards(struct vm_area_struct *vma,
115700 unsigned long address)
115701 {
115702 int error;
115703 + bool lockprev = false;
115704 + struct vm_area_struct *prev;
115705
115706 /*
115707 * We must make sure the anon_vma is allocated
115708 @@ -2231,6 +2554,15 @@ int expand_downwards(struct vm_area_struct *vma,
115709 if (error)
115710 return error;
115711
115712 + prev = vma->vm_prev;
115713 +#if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64)
115714 + lockprev = prev && (prev->vm_flags & VM_GROWSUP);
115715 +#endif
115716 + if (lockprev && anon_vma_prepare(prev))
115717 + return -ENOMEM;
115718 + if (lockprev)
115719 + vma_lock_anon_vma(prev);
115720 +
115721 vma_lock_anon_vma(vma);
115722
115723 /*
115724 @@ -2240,9 +2572,17 @@ int expand_downwards(struct vm_area_struct *vma,
115725 */
115726
115727 /* Somebody else might have raced and expanded it already */
115728 - if (address < vma->vm_start) {
115729 + if (prev && (prev->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) && address - prev->vm_end < sysctl_heap_stack_gap)
115730 + error = -ENOMEM;
115731 + else if (address < vma->vm_start && (!lockprev || prev->vm_end <= address)) {
115732 unsigned long size, grow;
115733
115734 +#ifdef CONFIG_PAX_SEGMEXEC
115735 + struct vm_area_struct *vma_m;
115736 +
115737 + vma_m = pax_find_mirror_vma(vma);
115738 +#endif
115739 +
115740 size = vma->vm_end - address;
115741 grow = (vma->vm_start - address) >> PAGE_SHIFT;
115742
115743 @@ -2267,13 +2607,27 @@ int expand_downwards(struct vm_area_struct *vma,
115744 vma->vm_pgoff -= grow;
115745 anon_vma_interval_tree_post_update_vma(vma);
115746 vma_gap_update(vma);
115747 +
115748 +#ifdef CONFIG_PAX_SEGMEXEC
115749 + if (vma_m) {
115750 + anon_vma_interval_tree_pre_update_vma(vma_m);
115751 + vma_m->vm_start -= grow << PAGE_SHIFT;
115752 + vma_m->vm_pgoff -= grow;
115753 + anon_vma_interval_tree_post_update_vma(vma_m);
115754 + vma_gap_update(vma_m);
115755 + }
115756 +#endif
115757 +
115758 spin_unlock(&vma->vm_mm->page_table_lock);
115759
115760 + track_exec_limit(vma->vm_mm, vma->vm_start, vma->vm_end, vma->vm_flags);
115761 perf_event_mmap(vma);
115762 }
115763 }
115764 }
115765 vma_unlock_anon_vma(vma);
115766 + if (lockprev)
115767 + vma_unlock_anon_vma(prev);
115768 khugepaged_enter_vma_merge(vma, vma->vm_flags);
115769 validate_mm(vma->vm_mm);
115770 return error;
115771 @@ -2373,6 +2727,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
115772 do {
115773 long nrpages = vma_pages(vma);
115774
115775 +#ifdef CONFIG_PAX_SEGMEXEC
115776 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE)) {
115777 + vma = remove_vma(vma);
115778 + continue;
115779 + }
115780 +#endif
115781 +
115782 if (vma->vm_flags & VM_ACCOUNT)
115783 nr_accounted += nrpages;
115784 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
115785 @@ -2417,6 +2778,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
115786 insertion_point = (prev ? &prev->vm_next : &mm->mmap);
115787 vma->vm_prev = NULL;
115788 do {
115789 +
115790 +#ifdef CONFIG_PAX_SEGMEXEC
115791 + if (vma->vm_mirror) {
115792 + BUG_ON(!vma->vm_mirror->vm_mirror || vma->vm_mirror->vm_mirror != vma);
115793 + vma->vm_mirror->vm_mirror = NULL;
115794 + vma->vm_mirror->vm_flags &= ~VM_EXEC;
115795 + vma->vm_mirror = NULL;
115796 + }
115797 +#endif
115798 +
115799 vma_rb_erase(vma, &mm->mm_rb);
115800 mm->map_count--;
115801 tail_vma = vma;
115802 @@ -2444,14 +2815,33 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115803 struct vm_area_struct *new;
115804 int err = -ENOMEM;
115805
115806 +#ifdef CONFIG_PAX_SEGMEXEC
115807 + struct vm_area_struct *vma_m, *new_m = NULL;
115808 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE;
115809 +#endif
115810 +
115811 if (is_vm_hugetlb_page(vma) && (addr &
115812 ~(huge_page_mask(hstate_vma(vma)))))
115813 return -EINVAL;
115814
115815 +#ifdef CONFIG_PAX_SEGMEXEC
115816 + vma_m = pax_find_mirror_vma(vma);
115817 +#endif
115818 +
115819 new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
115820 if (!new)
115821 goto out_err;
115822
115823 +#ifdef CONFIG_PAX_SEGMEXEC
115824 + if (vma_m) {
115825 + new_m = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
115826 + if (!new_m) {
115827 + kmem_cache_free(vm_area_cachep, new);
115828 + goto out_err;
115829 + }
115830 + }
115831 +#endif
115832 +
115833 /* most fields are the same, copy all, and then fixup */
115834 *new = *vma;
115835
115836 @@ -2464,6 +2854,22 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115837 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
115838 }
115839
115840 +#ifdef CONFIG_PAX_SEGMEXEC
115841 + if (vma_m) {
115842 + *new_m = *vma_m;
115843 + INIT_LIST_HEAD(&new_m->anon_vma_chain);
115844 + new_m->vm_mirror = new;
115845 + new->vm_mirror = new_m;
115846 +
115847 + if (new_below)
115848 + new_m->vm_end = addr_m;
115849 + else {
115850 + new_m->vm_start = addr_m;
115851 + new_m->vm_pgoff += ((addr_m - vma_m->vm_start) >> PAGE_SHIFT);
115852 + }
115853 + }
115854 +#endif
115855 +
115856 err = vma_dup_policy(vma, new);
115857 if (err)
115858 goto out_free_vma;
115859 @@ -2484,6 +2890,38 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115860 else
115861 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
115862
115863 +#ifdef CONFIG_PAX_SEGMEXEC
115864 + if (!err && vma_m) {
115865 + struct mempolicy *pol = vma_policy(new);
115866 +
115867 + if (anon_vma_clone(new_m, vma_m))
115868 + goto out_free_mpol;
115869 +
115870 + mpol_get(pol);
115871 + set_vma_policy(new_m, pol);
115872 +
115873 + if (new_m->vm_file)
115874 + get_file(new_m->vm_file);
115875 +
115876 + if (new_m->vm_ops && new_m->vm_ops->open)
115877 + new_m->vm_ops->open(new_m);
115878 +
115879 + if (new_below)
115880 + err = vma_adjust(vma_m, addr_m, vma_m->vm_end, vma_m->vm_pgoff +
115881 + ((addr_m - new_m->vm_start) >> PAGE_SHIFT), new_m);
115882 + else
115883 + err = vma_adjust(vma_m, vma_m->vm_start, addr_m, vma_m->vm_pgoff, new_m);
115884 +
115885 + if (err) {
115886 + if (new_m->vm_ops && new_m->vm_ops->close)
115887 + new_m->vm_ops->close(new_m);
115888 + if (new_m->vm_file)
115889 + fput(new_m->vm_file);
115890 + mpol_put(pol);
115891 + }
115892 + }
115893 +#endif
115894 +
115895 /* Success. */
115896 if (!err)
115897 return 0;
115898 @@ -2493,10 +2931,18 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115899 new->vm_ops->close(new);
115900 if (new->vm_file)
115901 fput(new->vm_file);
115902 - unlink_anon_vmas(new);
115903 out_free_mpol:
115904 mpol_put(vma_policy(new));
115905 out_free_vma:
115906 +
115907 +#ifdef CONFIG_PAX_SEGMEXEC
115908 + if (new_m) {
115909 + unlink_anon_vmas(new_m);
115910 + kmem_cache_free(vm_area_cachep, new_m);
115911 + }
115912 +#endif
115913 +
115914 + unlink_anon_vmas(new);
115915 kmem_cache_free(vm_area_cachep, new);
115916 out_err:
115917 return err;
115918 @@ -2509,6 +2955,15 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115919 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115920 unsigned long addr, int new_below)
115921 {
115922 +
115923 +#ifdef CONFIG_PAX_SEGMEXEC
115924 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
115925 + BUG_ON(vma->vm_end > SEGMEXEC_TASK_SIZE);
115926 + if (mm->map_count >= sysctl_max_map_count-1)
115927 + return -ENOMEM;
115928 + } else
115929 +#endif
115930 +
115931 if (mm->map_count >= sysctl_max_map_count)
115932 return -ENOMEM;
115933
115934 @@ -2520,11 +2975,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115935 * work. This now handles partial unmappings.
115936 * Jeremy Fitzhardinge <jeremy@goop.org>
115937 */
115938 +#ifdef CONFIG_PAX_SEGMEXEC
115939 int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115940 {
115941 + int ret = __do_munmap(mm, start, len);
115942 + if (ret || !(mm->pax_flags & MF_PAX_SEGMEXEC))
115943 + return ret;
115944 +
115945 + return __do_munmap(mm, start + SEGMEXEC_TASK_SIZE, len);
115946 +}
115947 +
115948 +int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115949 +#else
115950 +int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115951 +#endif
115952 +{
115953 unsigned long end;
115954 struct vm_area_struct *vma, *prev, *last;
115955
115956 + /*
115957 + * mm->mmap_sem is required to protect against another thread
115958 + * changing the mappings in case we sleep.
115959 + */
115960 + verify_mm_writelocked(mm);
115961 +
115962 if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
115963 return -EINVAL;
115964
115965 @@ -2602,6 +3076,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115966 /* Fix up all other VM information */
115967 remove_vma_list(mm, vma);
115968
115969 + track_exec_limit(mm, start, end, 0UL);
115970 +
115971 return 0;
115972 }
115973
115974 @@ -2610,6 +3086,13 @@ int vm_munmap(unsigned long start, size_t len)
115975 int ret;
115976 struct mm_struct *mm = current->mm;
115977
115978 +
115979 +#ifdef CONFIG_PAX_SEGMEXEC
115980 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) &&
115981 + (len > SEGMEXEC_TASK_SIZE || start > SEGMEXEC_TASK_SIZE-len))
115982 + return -EINVAL;
115983 +#endif
115984 +
115985 down_write(&mm->mmap_sem);
115986 ret = do_munmap(mm, start, len);
115987 up_write(&mm->mmap_sem);
115988 @@ -2656,6 +3139,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
115989 down_write(&mm->mmap_sem);
115990 vma = find_vma(mm, start);
115991
115992 +#ifdef CONFIG_PAX_SEGMEXEC
115993 + if (vma && (mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_MAYEXEC))
115994 + goto out;
115995 +#endif
115996 +
115997 if (!vma || !(vma->vm_flags & VM_SHARED))
115998 goto out;
115999
116000 @@ -2692,16 +3180,6 @@ out:
116001 return ret;
116002 }
116003
116004 -static inline void verify_mm_writelocked(struct mm_struct *mm)
116005 -{
116006 -#ifdef CONFIG_DEBUG_VM
116007 - if (unlikely(down_read_trylock(&mm->mmap_sem))) {
116008 - WARN_ON(1);
116009 - up_read(&mm->mmap_sem);
116010 - }
116011 -#endif
116012 -}
116013 -
116014 /*
116015 * this is really a simplified "do_mmap". it only handles
116016 * anonymous maps. eventually we may be able to do some
116017 @@ -2715,6 +3193,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116018 struct rb_node **rb_link, *rb_parent;
116019 pgoff_t pgoff = addr >> PAGE_SHIFT;
116020 int error;
116021 + unsigned long charged;
116022
116023 len = PAGE_ALIGN(len);
116024 if (!len)
116025 @@ -2722,10 +3201,24 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116026
116027 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
116028
116029 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
116030 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
116031 + flags &= ~VM_EXEC;
116032 +
116033 +#ifdef CONFIG_PAX_MPROTECT
116034 + if (mm->pax_flags & MF_PAX_MPROTECT)
116035 + flags &= ~VM_MAYEXEC;
116036 +#endif
116037 +
116038 + }
116039 +#endif
116040 +
116041 error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
116042 if (error & ~PAGE_MASK)
116043 return error;
116044
116045 + charged = len >> PAGE_SHIFT;
116046 +
116047 error = mlock_future_check(mm, mm->def_flags, len);
116048 if (error)
116049 return error;
116050 @@ -2743,16 +3236,17 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116051 &rb_parent)) {
116052 if (do_munmap(mm, addr, len))
116053 return -ENOMEM;
116054 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
116055 }
116056
116057 /* Check against address space limits *after* clearing old maps... */
116058 - if (!may_expand_vm(mm, len >> PAGE_SHIFT))
116059 + if (!may_expand_vm(mm, charged))
116060 return -ENOMEM;
116061
116062 if (mm->map_count > sysctl_max_map_count)
116063 return -ENOMEM;
116064
116065 - if (security_vm_enough_memory_mm(mm, len >> PAGE_SHIFT))
116066 + if (security_vm_enough_memory_mm(mm, charged))
116067 return -ENOMEM;
116068
116069 /* Can we just expand an old private anonymous mapping? */
116070 @@ -2766,7 +3260,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116071 */
116072 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
116073 if (!vma) {
116074 - vm_unacct_memory(len >> PAGE_SHIFT);
116075 + vm_unacct_memory(charged);
116076 return -ENOMEM;
116077 }
116078
116079 @@ -2780,10 +3274,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
116080 vma_link(mm, vma, prev, rb_link, rb_parent);
116081 out:
116082 perf_event_mmap(vma);
116083 - mm->total_vm += len >> PAGE_SHIFT;
116084 + mm->total_vm += charged;
116085 if (flags & VM_LOCKED)
116086 - mm->locked_vm += (len >> PAGE_SHIFT);
116087 + mm->locked_vm += charged;
116088 vma->vm_flags |= VM_SOFTDIRTY;
116089 + track_exec_limit(mm, addr, addr + len, flags);
116090 return addr;
116091 }
116092
116093 @@ -2845,6 +3340,7 @@ void exit_mmap(struct mm_struct *mm)
116094 while (vma) {
116095 if (vma->vm_flags & VM_ACCOUNT)
116096 nr_accounted += vma_pages(vma);
116097 + vma->vm_mirror = NULL;
116098 vma = remove_vma(vma);
116099 }
116100 vm_unacct_memory(nr_accounted);
116101 @@ -2859,6 +3355,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
116102 struct vm_area_struct *prev;
116103 struct rb_node **rb_link, *rb_parent;
116104
116105 +#ifdef CONFIG_PAX_SEGMEXEC
116106 + struct vm_area_struct *vma_m = NULL;
116107 +#endif
116108 +
116109 + if (security_mmap_addr(vma->vm_start))
116110 + return -EPERM;
116111 +
116112 /*
116113 * The vm_pgoff of a purely anonymous vma should be irrelevant
116114 * until its first write fault, when page's anon_vma and index
116115 @@ -2882,7 +3385,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
116116 security_vm_enough_memory_mm(mm, vma_pages(vma)))
116117 return -ENOMEM;
116118
116119 +#ifdef CONFIG_PAX_SEGMEXEC
116120 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_EXEC)) {
116121 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
116122 + if (!vma_m)
116123 + return -ENOMEM;
116124 + }
116125 +#endif
116126 +
116127 vma_link(mm, vma, prev, rb_link, rb_parent);
116128 +
116129 +#ifdef CONFIG_PAX_SEGMEXEC
116130 + if (vma_m)
116131 + BUG_ON(pax_mirror_vma(vma_m, vma));
116132 +#endif
116133 +
116134 return 0;
116135 }
116136
116137 @@ -2901,6 +3418,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
116138 struct rb_node **rb_link, *rb_parent;
116139 bool faulted_in_anon_vma = true;
116140
116141 + BUG_ON(vma->vm_mirror);
116142 +
116143 /*
116144 * If anonymous vma has not yet been faulted, update new pgoff
116145 * to match new location, to increase its chance of merging.
116146 @@ -2965,6 +3484,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
116147 return NULL;
116148 }
116149
116150 +#ifdef CONFIG_PAX_SEGMEXEC
116151 +long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma)
116152 +{
116153 + struct vm_area_struct *prev_m;
116154 + struct rb_node **rb_link_m, *rb_parent_m;
116155 + struct mempolicy *pol_m;
116156 +
116157 + BUG_ON(!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC));
116158 + BUG_ON(vma->vm_mirror || vma_m->vm_mirror);
116159 + BUG_ON(!mpol_equal(vma_policy(vma), vma_policy(vma_m)));
116160 + *vma_m = *vma;
116161 + INIT_LIST_HEAD(&vma_m->anon_vma_chain);
116162 + if (anon_vma_clone(vma_m, vma))
116163 + return -ENOMEM;
116164 + pol_m = vma_policy(vma_m);
116165 + mpol_get(pol_m);
116166 + set_vma_policy(vma_m, pol_m);
116167 + vma_m->vm_start += SEGMEXEC_TASK_SIZE;
116168 + vma_m->vm_end += SEGMEXEC_TASK_SIZE;
116169 + vma_m->vm_flags &= ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED);
116170 + vma_m->vm_page_prot = vm_get_page_prot(vma_m->vm_flags);
116171 + if (vma_m->vm_file)
116172 + get_file(vma_m->vm_file);
116173 + if (vma_m->vm_ops && vma_m->vm_ops->open)
116174 + vma_m->vm_ops->open(vma_m);
116175 + BUG_ON(find_vma_links(vma->vm_mm, vma_m->vm_start, vma_m->vm_end, &prev_m, &rb_link_m, &rb_parent_m));
116176 + vma_link(vma->vm_mm, vma_m, prev_m, rb_link_m, rb_parent_m);
116177 + vma_m->vm_mirror = vma;
116178 + vma->vm_mirror = vma_m;
116179 + return 0;
116180 +}
116181 +#endif
116182 +
116183 /*
116184 * Return true if the calling process may expand its vm space by the passed
116185 * number of pages
116186 @@ -2976,6 +3528,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
116187
116188 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
116189
116190 + gr_learn_resource(current, RLIMIT_AS, (cur + npages) << PAGE_SHIFT, 1);
116191 if (cur + npages > lim)
116192 return 0;
116193 return 1;
116194 @@ -3058,6 +3611,22 @@ static struct vm_area_struct *__install_special_mapping(
116195 vma->vm_start = addr;
116196 vma->vm_end = addr + len;
116197
116198 +#ifdef CONFIG_PAX_MPROTECT
116199 + if (mm->pax_flags & MF_PAX_MPROTECT) {
116200 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
116201 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC))
116202 + return ERR_PTR(-EPERM);
116203 + if (!(vm_flags & VM_EXEC))
116204 + vm_flags &= ~VM_MAYEXEC;
116205 +#else
116206 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
116207 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
116208 +#endif
116209 + else
116210 + vm_flags &= ~VM_MAYWRITE;
116211 + }
116212 +#endif
116213 +
116214 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY;
116215 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
116216
116217 diff --git a/mm/mprotect.c b/mm/mprotect.c
116218 index e7d6f11..6116007 100644
116219 --- a/mm/mprotect.c
116220 +++ b/mm/mprotect.c
116221 @@ -24,10 +24,18 @@
116222 #include <linux/migrate.h>
116223 #include <linux/perf_event.h>
116224 #include <linux/ksm.h>
116225 +#include <linux/sched/sysctl.h>
116226 +
116227 +#ifdef CONFIG_PAX_MPROTECT
116228 +#include <linux/elf.h>
116229 +#include <linux/binfmts.h>
116230 +#endif
116231 +
116232 #include <asm/uaccess.h>
116233 #include <asm/pgtable.h>
116234 #include <asm/cacheflush.h>
116235 #include <asm/tlbflush.h>
116236 +#include <asm/mmu_context.h>
116237
116238 #include "internal.h"
116239
116240 @@ -254,6 +262,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
116241 return pages;
116242 }
116243
116244 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
116245 +/* called while holding the mmap semaphor for writing except stack expansion */
116246 +void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot)
116247 +{
116248 + unsigned long oldlimit, newlimit = 0UL;
116249 +
116250 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || (__supported_pte_mask & _PAGE_NX))
116251 + return;
116252 +
116253 + spin_lock(&mm->page_table_lock);
116254 + oldlimit = mm->context.user_cs_limit;
116255 + if ((prot & VM_EXEC) && oldlimit < end)
116256 + /* USER_CS limit moved up */
116257 + newlimit = end;
116258 + else if (!(prot & VM_EXEC) && start < oldlimit && oldlimit <= end)
116259 + /* USER_CS limit moved down */
116260 + newlimit = start;
116261 +
116262 + if (newlimit) {
116263 + mm->context.user_cs_limit = newlimit;
116264 +
116265 +#ifdef CONFIG_SMP
116266 + wmb();
116267 + cpumask_clear(&mm->context.cpu_user_cs_mask);
116268 + cpumask_set_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask);
116269 +#endif
116270 +
116271 + set_user_cs(mm->context.user_cs_base, mm->context.user_cs_limit, smp_processor_id());
116272 + }
116273 + spin_unlock(&mm->page_table_lock);
116274 + if (newlimit == end) {
116275 + struct vm_area_struct *vma = find_vma(mm, oldlimit);
116276 +
116277 + for (; vma && vma->vm_start < end; vma = vma->vm_next)
116278 + if (is_vm_hugetlb_page(vma))
116279 + hugetlb_change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot);
116280 + else
116281 + change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot, vma_wants_writenotify(vma), 0);
116282 + }
116283 +}
116284 +#endif
116285 +
116286 int
116287 mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
116288 unsigned long start, unsigned long end, unsigned long newflags)
116289 @@ -266,11 +316,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
116290 int error;
116291 int dirty_accountable = 0;
116292
116293 +#ifdef CONFIG_PAX_SEGMEXEC
116294 + struct vm_area_struct *vma_m = NULL;
116295 + unsigned long start_m, end_m;
116296 +
116297 + start_m = start + SEGMEXEC_TASK_SIZE;
116298 + end_m = end + SEGMEXEC_TASK_SIZE;
116299 +#endif
116300 +
116301 if (newflags == oldflags) {
116302 *pprev = vma;
116303 return 0;
116304 }
116305
116306 + if (newflags & (VM_READ | VM_WRITE | VM_EXEC)) {
116307 + struct vm_area_struct *prev = vma->vm_prev, *next = vma->vm_next;
116308 +
116309 + if (next && (next->vm_flags & VM_GROWSDOWN) && sysctl_heap_stack_gap > next->vm_start - end)
116310 + return -ENOMEM;
116311 +
116312 + if (prev && (prev->vm_flags & VM_GROWSUP) && sysctl_heap_stack_gap > start - prev->vm_end)
116313 + return -ENOMEM;
116314 + }
116315 +
116316 /*
116317 * If we make a private mapping writable we increase our commit;
116318 * but (without finer accounting) cannot reduce our commit if we
116319 @@ -287,6 +355,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
116320 }
116321 }
116322
116323 +#ifdef CONFIG_PAX_SEGMEXEC
116324 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && ((oldflags ^ newflags) & VM_EXEC)) {
116325 + if (start != vma->vm_start) {
116326 + error = split_vma(mm, vma, start, 1);
116327 + if (error)
116328 + goto fail;
116329 + BUG_ON(!*pprev || (*pprev)->vm_next == vma);
116330 + *pprev = (*pprev)->vm_next;
116331 + }
116332 +
116333 + if (end != vma->vm_end) {
116334 + error = split_vma(mm, vma, end, 0);
116335 + if (error)
116336 + goto fail;
116337 + }
116338 +
116339 + if (pax_find_mirror_vma(vma)) {
116340 + error = __do_munmap(mm, start_m, end_m - start_m);
116341 + if (error)
116342 + goto fail;
116343 + } else {
116344 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
116345 + if (!vma_m) {
116346 + error = -ENOMEM;
116347 + goto fail;
116348 + }
116349 + vma->vm_flags = newflags;
116350 + error = pax_mirror_vma(vma_m, vma);
116351 + if (error) {
116352 + vma->vm_flags = oldflags;
116353 + goto fail;
116354 + }
116355 + }
116356 + }
116357 +#endif
116358 +
116359 /*
116360 * First try to merge with previous and/or next vma.
116361 */
116362 @@ -317,7 +421,19 @@ success:
116363 * vm_flags and vm_page_prot are protected by the mmap_sem
116364 * held in write mode.
116365 */
116366 +
116367 +#ifdef CONFIG_PAX_SEGMEXEC
116368 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (newflags & VM_EXEC) && ((vma->vm_flags ^ newflags) & VM_READ))
116369 + pax_find_mirror_vma(vma)->vm_flags ^= VM_READ;
116370 +#endif
116371 +
116372 vma->vm_flags = newflags;
116373 +
116374 +#ifdef CONFIG_PAX_MPROTECT
116375 + if (mm->binfmt && mm->binfmt->handle_mprotect)
116376 + mm->binfmt->handle_mprotect(vma, newflags);
116377 +#endif
116378 +
116379 dirty_accountable = vma_wants_writenotify(vma);
116380 vma_set_page_prot(vma);
116381
116382 @@ -362,6 +478,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116383 end = start + len;
116384 if (end <= start)
116385 return -ENOMEM;
116386 +
116387 +#ifdef CONFIG_PAX_SEGMEXEC
116388 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
116389 + if (end > SEGMEXEC_TASK_SIZE)
116390 + return -EINVAL;
116391 + } else
116392 +#endif
116393 +
116394 + if (end > TASK_SIZE)
116395 + return -EINVAL;
116396 +
116397 if (!arch_validate_prot(prot))
116398 return -EINVAL;
116399
116400 @@ -369,7 +496,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116401 /*
116402 * Does the application expect PROT_READ to imply PROT_EXEC:
116403 */
116404 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
116405 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
116406 prot |= PROT_EXEC;
116407
116408 vm_flags = calc_vm_prot_bits(prot);
116409 @@ -401,6 +528,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116410 if (start > vma->vm_start)
116411 prev = vma;
116412
116413 +#ifdef CONFIG_PAX_MPROTECT
116414 + if (current->mm->binfmt && current->mm->binfmt->handle_mprotect)
116415 + current->mm->binfmt->handle_mprotect(vma, vm_flags);
116416 +#endif
116417 +
116418 for (nstart = start ; ; ) {
116419 unsigned long newflags;
116420
116421 @@ -411,6 +543,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116422
116423 /* newflags >> 4 shift VM_MAY% in place of VM_% */
116424 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
116425 + if (prot & (PROT_WRITE | PROT_EXEC))
116426 + gr_log_rwxmprotect(vma);
116427 +
116428 + error = -EACCES;
116429 + goto out;
116430 + }
116431 +
116432 + if (!gr_acl_handle_mprotect(vma->vm_file, prot)) {
116433 error = -EACCES;
116434 goto out;
116435 }
116436 @@ -425,6 +565,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
116437 error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
116438 if (error)
116439 goto out;
116440 +
116441 + track_exec_limit(current->mm, nstart, tmp, vm_flags);
116442 +
116443 nstart = tmp;
116444
116445 if (nstart < prev->vm_end)
116446 diff --git a/mm/mremap.c b/mm/mremap.c
116447 index a7c93ec..69c2949 100644
116448 --- a/mm/mremap.c
116449 +++ b/mm/mremap.c
116450 @@ -143,6 +143,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
116451 continue;
116452 pte = ptep_get_and_clear(mm, old_addr, old_pte);
116453 pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr);
116454 +
116455 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
116456 + if (!(__supported_pte_mask & _PAGE_NX) && pte_present(pte) && (new_vma->vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC)
116457 + pte = pte_exprotect(pte);
116458 +#endif
116459 +
116460 pte = move_soft_dirty_pte(pte);
116461 set_pte_at(mm, new_addr, new_pte, pte);
116462 }
116463 @@ -355,6 +361,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
116464 if (is_vm_hugetlb_page(vma))
116465 return ERR_PTR(-EINVAL);
116466
116467 +#ifdef CONFIG_PAX_SEGMEXEC
116468 + if (pax_find_mirror_vma(vma))
116469 + return ERR_PTR(-EINVAL);
116470 +#endif
116471 +
116472 /* We can't remap across vm area boundaries */
116473 if (old_len > vma->vm_end - addr)
116474 return ERR_PTR(-EFAULT);
116475 @@ -401,20 +412,25 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
116476 unsigned long ret = -EINVAL;
116477 unsigned long charged = 0;
116478 unsigned long map_flags;
116479 + unsigned long pax_task_size = TASK_SIZE;
116480
116481 if (new_addr & ~PAGE_MASK)
116482 goto out;
116483
116484 - if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
116485 +#ifdef CONFIG_PAX_SEGMEXEC
116486 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
116487 + pax_task_size = SEGMEXEC_TASK_SIZE;
116488 +#endif
116489 +
116490 + pax_task_size -= PAGE_SIZE;
116491 +
116492 + if (new_len > TASK_SIZE || new_addr > pax_task_size - new_len)
116493 goto out;
116494
116495 /* Check if the location we're moving into overlaps the
116496 * old location at all, and fail if it does.
116497 */
116498 - if ((new_addr <= addr) && (new_addr+new_len) > addr)
116499 - goto out;
116500 -
116501 - if ((addr <= new_addr) && (addr+old_len) > new_addr)
116502 + if (addr + old_len > new_addr && new_addr + new_len > addr)
116503 goto out;
116504
116505 ret = do_munmap(mm, new_addr, new_len);
116506 @@ -483,6 +499,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116507 unsigned long ret = -EINVAL;
116508 unsigned long charged = 0;
116509 bool locked = false;
116510 + unsigned long pax_task_size = TASK_SIZE;
116511
116512 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
116513 return ret;
116514 @@ -504,6 +521,17 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116515 if (!new_len)
116516 return ret;
116517
116518 +#ifdef CONFIG_PAX_SEGMEXEC
116519 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
116520 + pax_task_size = SEGMEXEC_TASK_SIZE;
116521 +#endif
116522 +
116523 + pax_task_size -= PAGE_SIZE;
116524 +
116525 + if (new_len > pax_task_size || addr > pax_task_size-new_len ||
116526 + old_len > pax_task_size || addr > pax_task_size-old_len)
116527 + return ret;
116528 +
116529 down_write(&current->mm->mmap_sem);
116530
116531 if (flags & MREMAP_FIXED) {
116532 @@ -554,6 +582,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116533 new_addr = addr;
116534 }
116535 ret = addr;
116536 + track_exec_limit(vma->vm_mm, vma->vm_start, addr + new_len, vma->vm_flags);
116537 goto out;
116538 }
116539 }
116540 @@ -577,7 +606,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
116541 goto out;
116542 }
116543
116544 + map_flags = vma->vm_flags;
116545 ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked);
116546 + if (!(ret & ~PAGE_MASK)) {
116547 + track_exec_limit(current->mm, addr, addr + old_len, 0UL);
116548 + track_exec_limit(current->mm, new_addr, new_addr + new_len, map_flags);
116549 + }
116550 }
116551 out:
116552 if (ret & ~PAGE_MASK)
116553 diff --git a/mm/nommu.c b/mm/nommu.c
116554 index 58ea364..7b01d28 100644
116555 --- a/mm/nommu.c
116556 +++ b/mm/nommu.c
116557 @@ -56,7 +56,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
116558 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
116559 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
116560 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
116561 -int heap_stack_gap = 0;
116562
116563 atomic_long_t mmap_pages_allocated;
116564
116565 @@ -863,15 +862,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
116566 EXPORT_SYMBOL(find_vma);
116567
116568 /*
116569 - * find a VMA
116570 - * - we don't extend stack VMAs under NOMMU conditions
116571 - */
116572 -struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr)
116573 -{
116574 - return find_vma(mm, addr);
116575 -}
116576 -
116577 -/*
116578 * expand a stack to a given address
116579 * - not supported under NOMMU conditions
116580 */
116581 @@ -1535,6 +1525,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
116582
116583 /* most fields are the same, copy all, and then fixup */
116584 *new = *vma;
116585 + INIT_LIST_HEAD(&new->anon_vma_chain);
116586 *region = *vma->vm_region;
116587 new->vm_region = region;
116588
116589 @@ -1935,8 +1926,8 @@ void filemap_map_pages(struct vm_area_struct *vma, struct vm_fault *vmf)
116590 }
116591 EXPORT_SYMBOL(filemap_map_pages);
116592
116593 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
116594 - unsigned long addr, void *buf, int len, int write)
116595 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
116596 + unsigned long addr, void *buf, size_t len, int write)
116597 {
116598 struct vm_area_struct *vma;
116599
116600 @@ -1977,8 +1968,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
116601 *
116602 * The caller must hold a reference on @mm.
116603 */
116604 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
116605 - void *buf, int len, int write)
116606 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
116607 + void *buf, size_t len, int write)
116608 {
116609 return __access_remote_vm(NULL, mm, addr, buf, len, write);
116610 }
116611 @@ -1987,7 +1978,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
116612 * Access another process' address space.
116613 * - source/target buffer must be kernel space
116614 */
116615 -int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write)
116616 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write)
116617 {
116618 struct mm_struct *mm;
116619
116620 diff --git a/mm/page-writeback.c b/mm/page-writeback.c
116621 index 5cccc12..1872e56 100644
116622 --- a/mm/page-writeback.c
116623 +++ b/mm/page-writeback.c
116624 @@ -852,7 +852,7 @@ static long long pos_ratio_polynom(unsigned long setpoint,
116625 * card's wb_dirty may rush to many times higher than wb_setpoint.
116626 * - the wb dirty thresh drops quickly due to change of JBOD workload
116627 */
116628 -static void wb_position_ratio(struct dirty_throttle_control *dtc)
116629 +static void __intentional_overflow(-1) wb_position_ratio(struct dirty_throttle_control *dtc)
116630 {
116631 struct bdi_writeback *wb = dtc->wb;
116632 unsigned long write_bw = wb->avg_write_bandwidth;
116633 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
116634 index 5b5240b..2bc0996 100644
116635 --- a/mm/page_alloc.c
116636 +++ b/mm/page_alloc.c
116637 @@ -62,6 +62,7 @@
116638 #include <linux/sched/rt.h>
116639 #include <linux/page_owner.h>
116640 #include <linux/kthread.h>
116641 +#include <linux/random.h>
116642
116643 #include <asm/sections.h>
116644 #include <asm/tlbflush.h>
116645 @@ -427,7 +428,7 @@ out:
116646 * This usage means that zero-order pages may not be compound.
116647 */
116648
116649 -static void free_compound_page(struct page *page)
116650 +void free_compound_page(struct page *page)
116651 {
116652 __free_pages_ok(page, compound_order(page));
116653 }
116654 @@ -536,7 +537,7 @@ static inline void clear_page_guard(struct zone *zone, struct page *page,
116655 __mod_zone_freepage_state(zone, (1 << order), migratetype);
116656 }
116657 #else
116658 -struct page_ext_operations debug_guardpage_ops = { NULL, };
116659 +struct page_ext_operations debug_guardpage_ops = { .need = NULL, .init = NULL };
116660 static inline void set_page_guard(struct zone *zone, struct page *page,
116661 unsigned int order, int migratetype) {}
116662 static inline void clear_page_guard(struct zone *zone, struct page *page,
116663 @@ -908,6 +909,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
116664 bool compound = PageCompound(page);
116665 int i, bad = 0;
116666
116667 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116668 + unsigned long index = 1UL << order;
116669 +#endif
116670 +
116671 VM_BUG_ON_PAGE(PageTail(page), page);
116672 VM_BUG_ON_PAGE(compound && compound_order(page) != order, page);
116673
116674 @@ -934,6 +939,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
116675 debug_check_no_obj_freed(page_address(page),
116676 PAGE_SIZE << order);
116677 }
116678 +
116679 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116680 + for (; index; --index)
116681 + sanitize_highpage(page + index - 1);
116682 +#endif
116683 +
116684 arch_free_page(page, order);
116685 kernel_map_pages(page, 1 << order, 0);
116686
116687 @@ -957,6 +968,20 @@ static void __free_pages_ok(struct page *page, unsigned int order)
116688 local_irq_restore(flags);
116689 }
116690
116691 +#ifdef CONFIG_PAX_LATENT_ENTROPY
116692 +bool __meminitdata extra_latent_entropy;
116693 +
116694 +static int __init setup_pax_extra_latent_entropy(char *str)
116695 +{
116696 + extra_latent_entropy = true;
116697 + return 0;
116698 +}
116699 +early_param("pax_extra_latent_entropy", setup_pax_extra_latent_entropy);
116700 +
116701 +volatile u64 latent_entropy __latent_entropy;
116702 +EXPORT_SYMBOL(latent_entropy);
116703 +#endif
116704 +
116705 static void __init __free_pages_boot_core(struct page *page,
116706 unsigned long pfn, unsigned int order)
116707 {
116708 @@ -973,6 +998,19 @@ static void __init __free_pages_boot_core(struct page *page,
116709 __ClearPageReserved(p);
116710 set_page_count(p, 0);
116711
116712 +#ifdef CONFIG_PAX_LATENT_ENTROPY
116713 + if (extra_latent_entropy && !PageHighMem(page) && page_to_pfn(page) < 0x100000) {
116714 + u64 hash = 0;
116715 + size_t index, end = PAGE_SIZE * nr_pages / sizeof hash;
116716 + const u64 *data = lowmem_page_address(page);
116717 +
116718 + for (index = 0; index < end; index++)
116719 + hash ^= hash + data[index];
116720 + latent_entropy ^= hash;
116721 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
116722 + }
116723 +#endif
116724 +
116725 page_zone(page)->managed_pages += nr_pages;
116726 set_page_refcounted(page);
116727 __free_pages(page, order);
116728 @@ -1029,7 +1067,6 @@ static inline bool __meminit meminit_pfn_in_nid(unsigned long pfn, int node,
116729 }
116730 #endif
116731
116732 -
116733 void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
116734 unsigned int order)
116735 {
116736 @@ -1333,9 +1370,11 @@ static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags,
116737 kernel_map_pages(page, 1 << order, 1);
116738 kasan_alloc_pages(page, order);
116739
116740 +#ifndef CONFIG_PAX_MEMORY_SANITIZE
116741 if (gfp_flags & __GFP_ZERO)
116742 for (i = 0; i < (1 << order); i++)
116743 clear_highpage(page + i);
116744 +#endif
116745
116746 if (order && (gfp_flags & __GFP_COMP))
116747 prep_compound_page(page, order);
116748 @@ -2116,7 +2155,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
116749 }
116750
116751 __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
116752 - if (atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
116753 + if (atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
116754 !test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
116755 set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
116756
116757 @@ -2435,7 +2474,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
116758 do {
116759 mod_zone_page_state(zone, NR_ALLOC_BATCH,
116760 high_wmark_pages(zone) - low_wmark_pages(zone) -
116761 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
116762 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
116763 clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
116764 } while (zone++ != preferred_zone);
116765 }
116766 @@ -6184,7 +6223,7 @@ static void __setup_per_zone_wmarks(void)
116767
116768 __mod_zone_page_state(zone, NR_ALLOC_BATCH,
116769 high_wmark_pages(zone) - low_wmark_pages(zone) -
116770 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
116771 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
116772
116773 setup_zone_migrate_reserve(zone);
116774 spin_unlock_irqrestore(&zone->lock, flags);
116775 diff --git a/mm/percpu.c b/mm/percpu.c
116776 index 2dd7448..9bb6305 100644
116777 --- a/mm/percpu.c
116778 +++ b/mm/percpu.c
116779 @@ -131,7 +131,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
116780 static unsigned int pcpu_high_unit_cpu __read_mostly;
116781
116782 /* the address of the first chunk which starts with the kernel static area */
116783 -void *pcpu_base_addr __read_mostly;
116784 +void *pcpu_base_addr __read_only;
116785 EXPORT_SYMBOL_GPL(pcpu_base_addr);
116786
116787 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
116788 diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c
116789 index e88d071..d80e01a 100644
116790 --- a/mm/process_vm_access.c
116791 +++ b/mm/process_vm_access.c
116792 @@ -13,6 +13,7 @@
116793 #include <linux/uio.h>
116794 #include <linux/sched.h>
116795 #include <linux/highmem.h>
116796 +#include <linux/security.h>
116797 #include <linux/ptrace.h>
116798 #include <linux/slab.h>
116799 #include <linux/syscalls.h>
116800 @@ -154,19 +155,19 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
116801 ssize_t iov_len;
116802 size_t total_len = iov_iter_count(iter);
116803
116804 + return -ENOSYS; // PaX: until properly audited
116805 +
116806 /*
116807 * Work out how many pages of struct pages we're going to need
116808 * when eventually calling get_user_pages
116809 */
116810 for (i = 0; i < riovcnt; i++) {
116811 iov_len = rvec[i].iov_len;
116812 - if (iov_len > 0) {
116813 - nr_pages_iov = ((unsigned long)rvec[i].iov_base
116814 - + iov_len)
116815 - / PAGE_SIZE - (unsigned long)rvec[i].iov_base
116816 - / PAGE_SIZE + 1;
116817 - nr_pages = max(nr_pages, nr_pages_iov);
116818 - }
116819 + if (iov_len <= 0)
116820 + continue;
116821 + nr_pages_iov = ((unsigned long)rvec[i].iov_base + iov_len) / PAGE_SIZE -
116822 + (unsigned long)rvec[i].iov_base / PAGE_SIZE + 1;
116823 + nr_pages = max(nr_pages, nr_pages_iov);
116824 }
116825
116826 if (nr_pages == 0)
116827 @@ -194,6 +195,11 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
116828 goto free_proc_pages;
116829 }
116830
116831 + if (gr_handle_ptrace(task, vm_write ? PTRACE_POKETEXT : PTRACE_ATTACH)) {
116832 + rc = -EPERM;
116833 + goto put_task_struct;
116834 + }
116835 +
116836 mm = mm_access(task, PTRACE_MODE_ATTACH);
116837 if (!mm || IS_ERR(mm)) {
116838 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
116839 diff --git a/mm/rmap.c b/mm/rmap.c
116840 index 171b687..1a4b7e8 100644
116841 --- a/mm/rmap.c
116842 +++ b/mm/rmap.c
116843 @@ -168,6 +168,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116844 struct anon_vma *anon_vma = vma->anon_vma;
116845 struct anon_vma_chain *avc;
116846
116847 +#ifdef CONFIG_PAX_SEGMEXEC
116848 + struct anon_vma_chain *avc_m = NULL;
116849 +#endif
116850 +
116851 might_sleep();
116852 if (unlikely(!anon_vma)) {
116853 struct mm_struct *mm = vma->vm_mm;
116854 @@ -177,6 +181,12 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116855 if (!avc)
116856 goto out_enomem;
116857
116858 +#ifdef CONFIG_PAX_SEGMEXEC
116859 + avc_m = anon_vma_chain_alloc(GFP_KERNEL);
116860 + if (!avc_m)
116861 + goto out_enomem_free_avc;
116862 +#endif
116863 +
116864 anon_vma = find_mergeable_anon_vma(vma);
116865 allocated = NULL;
116866 if (!anon_vma) {
116867 @@ -190,6 +200,19 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116868 /* page_table_lock to protect against threads */
116869 spin_lock(&mm->page_table_lock);
116870 if (likely(!vma->anon_vma)) {
116871 +
116872 +#ifdef CONFIG_PAX_SEGMEXEC
116873 + struct vm_area_struct *vma_m = pax_find_mirror_vma(vma);
116874 +
116875 + if (vma_m) {
116876 + BUG_ON(vma_m->anon_vma);
116877 + vma_m->anon_vma = anon_vma;
116878 + anon_vma_chain_link(vma_m, avc_m, anon_vma);
116879 + anon_vma->degree++;
116880 + avc_m = NULL;
116881 + }
116882 +#endif
116883 +
116884 vma->anon_vma = anon_vma;
116885 anon_vma_chain_link(vma, avc, anon_vma);
116886 /* vma reference or self-parent link for new root */
116887 @@ -202,12 +225,24 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116888
116889 if (unlikely(allocated))
116890 put_anon_vma(allocated);
116891 +
116892 +#ifdef CONFIG_PAX_SEGMEXEC
116893 + if (unlikely(avc_m))
116894 + anon_vma_chain_free(avc_m);
116895 +#endif
116896 +
116897 if (unlikely(avc))
116898 anon_vma_chain_free(avc);
116899 }
116900 return 0;
116901
116902 out_enomem_free_avc:
116903 +
116904 +#ifdef CONFIG_PAX_SEGMEXEC
116905 + if (avc_m)
116906 + anon_vma_chain_free(avc_m);
116907 +#endif
116908 +
116909 anon_vma_chain_free(avc);
116910 out_enomem:
116911 return -ENOMEM;
116912 @@ -251,7 +286,7 @@ static inline void unlock_anon_vma_root(struct anon_vma *root)
116913 * good chance of avoiding scanning the whole hierarchy when it searches where
116914 * page is mapped.
116915 */
116916 -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
116917 +int anon_vma_clone(struct vm_area_struct *dst, const struct vm_area_struct *src)
116918 {
116919 struct anon_vma_chain *avc, *pavc;
116920 struct anon_vma *root = NULL;
116921 @@ -305,7 +340,7 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
116922 * the corresponding VMA in the parent process is attached to.
116923 * Returns 0 on success, non-zero on failure.
116924 */
116925 -int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma)
116926 +int anon_vma_fork(struct vm_area_struct *vma, const struct vm_area_struct *pvma)
116927 {
116928 struct anon_vma_chain *avc;
116929 struct anon_vma *anon_vma;
116930 @@ -425,8 +460,10 @@ static void anon_vma_ctor(void *data)
116931 void __init anon_vma_init(void)
116932 {
116933 anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma),
116934 - 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC, anon_vma_ctor);
116935 - anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain, SLAB_PANIC);
116936 + 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_NO_SANITIZE,
116937 + anon_vma_ctor);
116938 + anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain,
116939 + SLAB_PANIC|SLAB_NO_SANITIZE);
116940 }
116941
116942 /*
116943 diff --git a/mm/shmem.c b/mm/shmem.c
116944 index dbe0c1e..22c16c7 100644
116945 --- a/mm/shmem.c
116946 +++ b/mm/shmem.c
116947 @@ -33,7 +33,7 @@
116948 #include <linux/swap.h>
116949 #include <linux/uio.h>
116950
116951 -static struct vfsmount *shm_mnt;
116952 +struct vfsmount *shm_mnt;
116953
116954 #ifdef CONFIG_SHMEM
116955 /*
116956 @@ -80,7 +80,7 @@ static struct vfsmount *shm_mnt;
116957 #define BOGO_DIRENT_SIZE 20
116958
116959 /* Symlink up to this size is kmalloc'ed instead of using a swappable page */
116960 -#define SHORT_SYMLINK_LEN 128
116961 +#define SHORT_SYMLINK_LEN 64
116962
116963 /*
116964 * shmem_fallocate communicates with shmem_fault or shmem_writepage via
116965 @@ -2549,6 +2549,11 @@ static const struct xattr_handler *shmem_xattr_handlers[] = {
116966 static int shmem_xattr_validate(const char *name)
116967 {
116968 struct { const char *prefix; size_t len; } arr[] = {
116969 +
116970 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
116971 + { XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN},
116972 +#endif
116973 +
116974 { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN },
116975 { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN }
116976 };
116977 @@ -2604,6 +2609,15 @@ static int shmem_setxattr(struct dentry *dentry, const char *name,
116978 if (err)
116979 return err;
116980
116981 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
116982 + if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
116983 + if (strcmp(name, XATTR_NAME_PAX_FLAGS))
116984 + return -EOPNOTSUPP;
116985 + if (size > 8)
116986 + return -EINVAL;
116987 + }
116988 +#endif
116989 +
116990 return simple_xattr_set(&info->xattrs, name, value, size, flags);
116991 }
116992
116993 @@ -2987,8 +3001,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
116994 int err = -ENOMEM;
116995
116996 /* Round up to L1_CACHE_BYTES to resist false sharing */
116997 - sbinfo = kzalloc(max((int)sizeof(struct shmem_sb_info),
116998 - L1_CACHE_BYTES), GFP_KERNEL);
116999 + sbinfo = kzalloc(max(sizeof(struct shmem_sb_info), L1_CACHE_BYTES), GFP_KERNEL);
117000 if (!sbinfo)
117001 return -ENOMEM;
117002
117003 diff --git a/mm/slab.c b/mm/slab.c
117004 index ae36028..eb6af9e 100644
117005 --- a/mm/slab.c
117006 +++ b/mm/slab.c
117007 @@ -116,6 +116,7 @@
117008 #include <linux/kmemcheck.h>
117009 #include <linux/memory.h>
117010 #include <linux/prefetch.h>
117011 +#include <linux/vmalloc.h>
117012
117013 #include <net/sock.h>
117014
117015 @@ -314,10 +315,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
117016 if ((x)->max_freeable < i) \
117017 (x)->max_freeable = i; \
117018 } while (0)
117019 -#define STATS_INC_ALLOCHIT(x) atomic_inc(&(x)->allochit)
117020 -#define STATS_INC_ALLOCMISS(x) atomic_inc(&(x)->allocmiss)
117021 -#define STATS_INC_FREEHIT(x) atomic_inc(&(x)->freehit)
117022 -#define STATS_INC_FREEMISS(x) atomic_inc(&(x)->freemiss)
117023 +#define STATS_INC_ALLOCHIT(x) atomic_inc_unchecked(&(x)->allochit)
117024 +#define STATS_INC_ALLOCMISS(x) atomic_inc_unchecked(&(x)->allocmiss)
117025 +#define STATS_INC_FREEHIT(x) atomic_inc_unchecked(&(x)->freehit)
117026 +#define STATS_INC_FREEMISS(x) atomic_inc_unchecked(&(x)->freemiss)
117027 +#define STATS_INC_SANITIZED(x) atomic_inc_unchecked(&(x)->sanitized)
117028 +#define STATS_INC_NOT_SANITIZED(x) atomic_inc_unchecked(&(x)->not_sanitized)
117029 #else
117030 #define STATS_INC_ACTIVE(x) do { } while (0)
117031 #define STATS_DEC_ACTIVE(x) do { } while (0)
117032 @@ -334,6 +337,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
117033 #define STATS_INC_ALLOCMISS(x) do { } while (0)
117034 #define STATS_INC_FREEHIT(x) do { } while (0)
117035 #define STATS_INC_FREEMISS(x) do { } while (0)
117036 +#define STATS_INC_SANITIZED(x) do { } while (0)
117037 +#define STATS_INC_NOT_SANITIZED(x) do { } while (0)
117038 #endif
117039
117040 #if DEBUG
117041 @@ -450,7 +455,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct page *page,
117042 * reciprocal_divide(offset, cache->reciprocal_buffer_size)
117043 */
117044 static inline unsigned int obj_to_index(const struct kmem_cache *cache,
117045 - const struct page *page, void *obj)
117046 + const struct page *page, const void *obj)
117047 {
117048 u32 offset = (obj - page->s_mem);
117049 return reciprocal_divide(offset, cache->reciprocal_buffer_size);
117050 @@ -1452,7 +1457,7 @@ void __init kmem_cache_init(void)
117051 * structures first. Without this, further allocations will bug.
117052 */
117053 kmalloc_caches[INDEX_NODE] = create_kmalloc_cache("kmalloc-node",
117054 - kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS);
117055 + kmalloc_size(INDEX_NODE), SLAB_USERCOPY | ARCH_KMALLOC_FLAGS);
117056 slab_state = PARTIAL_NODE;
117057 setup_kmalloc_cache_index_table();
117058
117059 @@ -2074,7 +2079,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
117060
117061 cachep = find_mergeable(size, align, flags, name, ctor);
117062 if (cachep) {
117063 - cachep->refcount++;
117064 + atomic_inc(&cachep->refcount);
117065
117066 /*
117067 * Adjust the object sizes so that we clear
117068 @@ -3379,6 +3384,20 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
117069 struct array_cache *ac = cpu_cache_get(cachep);
117070
117071 check_irq_off();
117072 +
117073 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117074 + if (cachep->flags & (SLAB_POISON | SLAB_NO_SANITIZE))
117075 + STATS_INC_NOT_SANITIZED(cachep);
117076 + else {
117077 + memset(objp, PAX_MEMORY_SANITIZE_VALUE, cachep->object_size);
117078 +
117079 + if (cachep->ctor)
117080 + cachep->ctor(objp);
117081 +
117082 + STATS_INC_SANITIZED(cachep);
117083 + }
117084 +#endif
117085 +
117086 kmemleak_free_recursive(objp, cachep->flags);
117087 objp = cache_free_debugcheck(cachep, objp, caller);
117088
117089 @@ -3491,7 +3510,7 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller)
117090 return kmem_cache_alloc_node_trace(cachep, flags, node, size);
117091 }
117092
117093 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
117094 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
117095 {
117096 return __do_kmalloc_node(size, flags, node, _RET_IP_);
117097 }
117098 @@ -3511,7 +3530,7 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
117099 * @flags: the type of memory to allocate (see kmalloc).
117100 * @caller: function caller for debug tracking of the caller
117101 */
117102 -static __always_inline void *__do_kmalloc(size_t size, gfp_t flags,
117103 +static __always_inline void * __size_overflow(1) __do_kmalloc(size_t size, gfp_t flags,
117104 unsigned long caller)
117105 {
117106 struct kmem_cache *cachep;
117107 @@ -3584,6 +3603,7 @@ void kfree(const void *objp)
117108
117109 if (unlikely(ZERO_OR_NULL_PTR(objp)))
117110 return;
117111 + VM_BUG_ON(!virt_addr_valid(objp));
117112 local_irq_save(flags);
117113 kfree_debugcheck(objp);
117114 c = virt_to_cache(objp);
117115 @@ -4003,14 +4023,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
117116 }
117117 /* cpu stats */
117118 {
117119 - unsigned long allochit = atomic_read(&cachep->allochit);
117120 - unsigned long allocmiss = atomic_read(&cachep->allocmiss);
117121 - unsigned long freehit = atomic_read(&cachep->freehit);
117122 - unsigned long freemiss = atomic_read(&cachep->freemiss);
117123 + unsigned long allochit = atomic_read_unchecked(&cachep->allochit);
117124 + unsigned long allocmiss = atomic_read_unchecked(&cachep->allocmiss);
117125 + unsigned long freehit = atomic_read_unchecked(&cachep->freehit);
117126 + unsigned long freemiss = atomic_read_unchecked(&cachep->freemiss);
117127
117128 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu",
117129 allochit, allocmiss, freehit, freemiss);
117130 }
117131 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117132 + {
117133 + unsigned long sanitized = atomic_read_unchecked(&cachep->sanitized);
117134 + unsigned long not_sanitized = atomic_read_unchecked(&cachep->not_sanitized);
117135 +
117136 + seq_printf(m, " : pax %6lu %6lu", sanitized, not_sanitized);
117137 + }
117138 +#endif
117139 #endif
117140 }
117141
117142 @@ -4218,13 +4246,80 @@ static const struct file_operations proc_slabstats_operations = {
117143 static int __init slab_proc_init(void)
117144 {
117145 #ifdef CONFIG_DEBUG_SLAB_LEAK
117146 - proc_create("slab_allocators", 0, NULL, &proc_slabstats_operations);
117147 + proc_create("slab_allocators", S_IRUSR, NULL, &proc_slabstats_operations);
117148 #endif
117149 return 0;
117150 }
117151 module_init(slab_proc_init);
117152 #endif
117153
117154 +bool is_usercopy_object(const void *ptr)
117155 +{
117156 + struct page *page;
117157 + struct kmem_cache *cachep;
117158 +
117159 + if (ZERO_OR_NULL_PTR(ptr))
117160 + return false;
117161 +
117162 + if (!slab_is_available())
117163 + return false;
117164 +
117165 + if (is_vmalloc_addr(ptr)
117166 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117167 + && !object_starts_on_stack(ptr)
117168 +#endif
117169 + ) {
117170 + struct vm_struct *vm = find_vm_area(ptr);
117171 + if (vm && (vm->flags & VM_USERCOPY))
117172 + return true;
117173 + return false;
117174 + }
117175 +
117176 + if (!virt_addr_valid(ptr))
117177 + return false;
117178 +
117179 + page = virt_to_head_page(ptr);
117180 +
117181 + if (!PageSlab(page))
117182 + return false;
117183 +
117184 + cachep = page->slab_cache;
117185 + return cachep->flags & SLAB_USERCOPY;
117186 +}
117187 +
117188 +#ifdef CONFIG_PAX_USERCOPY
117189 +const char *check_heap_object(const void *ptr, unsigned long n)
117190 +{
117191 + struct page *page;
117192 + struct kmem_cache *cachep;
117193 + unsigned int objnr;
117194 + unsigned long offset;
117195 +
117196 + if (ZERO_OR_NULL_PTR(ptr))
117197 + return "<null>";
117198 +
117199 + if (!virt_addr_valid(ptr))
117200 + return NULL;
117201 +
117202 + page = virt_to_head_page(ptr);
117203 +
117204 + if (!PageSlab(page))
117205 + return NULL;
117206 +
117207 + cachep = page->slab_cache;
117208 + if (!(cachep->flags & SLAB_USERCOPY))
117209 + return cachep->name;
117210 +
117211 + objnr = obj_to_index(cachep, page, ptr);
117212 + BUG_ON(objnr >= cachep->num);
117213 + offset = ptr - index_to_obj(cachep, page, objnr) - obj_offset(cachep);
117214 + if (offset <= cachep->object_size && n <= cachep->object_size - offset)
117215 + return NULL;
117216 +
117217 + return cachep->name;
117218 +}
117219 +#endif
117220 +
117221 /**
117222 * ksize - get the actual amount of memory allocated for a given object
117223 * @objp: Pointer to the object
117224 diff --git a/mm/slab.h b/mm/slab.h
117225 index 8da63e4..50c423b 100644
117226 --- a/mm/slab.h
117227 +++ b/mm/slab.h
117228 @@ -22,7 +22,7 @@ struct kmem_cache {
117229 unsigned int align; /* Alignment as calculated */
117230 unsigned long flags; /* Active flags on the slab */
117231 const char *name; /* Slab name for sysfs */
117232 - int refcount; /* Use counter */
117233 + atomic_t refcount; /* Use counter */
117234 void (*ctor)(void *); /* Called on object slot creation */
117235 struct list_head list; /* List of all slab caches on the system */
117236 };
117237 @@ -66,6 +66,20 @@ extern struct list_head slab_caches;
117238 /* The slab cache that manages slab cache information */
117239 extern struct kmem_cache *kmem_cache;
117240
117241 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117242 +#ifdef CONFIG_X86_64
117243 +#define PAX_MEMORY_SANITIZE_VALUE '\xfe'
117244 +#else
117245 +#define PAX_MEMORY_SANITIZE_VALUE '\xff'
117246 +#endif
117247 +enum pax_sanitize_mode {
117248 + PAX_SANITIZE_SLAB_OFF = 0,
117249 + PAX_SANITIZE_SLAB_FAST,
117250 + PAX_SANITIZE_SLAB_FULL,
117251 +};
117252 +extern enum pax_sanitize_mode pax_sanitize_slab;
117253 +#endif
117254 +
117255 unsigned long calculate_alignment(unsigned long flags,
117256 unsigned long align, unsigned long size);
117257
117258 @@ -115,7 +129,8 @@ static inline unsigned long kmem_cache_flags(unsigned long object_size,
117259
117260 /* Legal flag mask for kmem_cache_create(), for various configurations */
117261 #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \
117262 - SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS )
117263 + SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS | \
117264 + SLAB_USERCOPY | SLAB_NO_SANITIZE)
117265
117266 #if defined(CONFIG_DEBUG_SLAB)
117267 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
117268 @@ -316,6 +331,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
117269 return s;
117270
117271 page = virt_to_head_page(x);
117272 +
117273 + BUG_ON(!PageSlab(page));
117274 +
117275 cachep = page->slab_cache;
117276 if (slab_equal_or_root(cachep, s))
117277 return cachep;
117278 diff --git a/mm/slab_common.c b/mm/slab_common.c
117279 index 8683110..916e2c5 100644
117280 --- a/mm/slab_common.c
117281 +++ b/mm/slab_common.c
117282 @@ -25,11 +25,35 @@
117283
117284 #include "slab.h"
117285
117286 -enum slab_state slab_state;
117287 +enum slab_state slab_state __read_only;
117288 LIST_HEAD(slab_caches);
117289 DEFINE_MUTEX(slab_mutex);
117290 struct kmem_cache *kmem_cache;
117291
117292 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117293 +enum pax_sanitize_mode pax_sanitize_slab __read_only = PAX_SANITIZE_SLAB_FAST;
117294 +static int __init pax_sanitize_slab_setup(char *str)
117295 +{
117296 + if (!str)
117297 + return 0;
117298 +
117299 + if (!strcmp(str, "0") || !strcmp(str, "off")) {
117300 + pr_info("PaX slab sanitization: %s\n", "disabled");
117301 + pax_sanitize_slab = PAX_SANITIZE_SLAB_OFF;
117302 + } else if (!strcmp(str, "1") || !strcmp(str, "fast")) {
117303 + pr_info("PaX slab sanitization: %s\n", "fast");
117304 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FAST;
117305 + } else if (!strcmp(str, "full")) {
117306 + pr_info("PaX slab sanitization: %s\n", "full");
117307 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FULL;
117308 + } else
117309 + pr_err("PaX slab sanitization: unsupported option '%s'\n", str);
117310 +
117311 + return 0;
117312 +}
117313 +early_param("pax_sanitize_slab", pax_sanitize_slab_setup);
117314 +#endif
117315 +
117316 /*
117317 * Set of flags that will prevent slab merging
117318 */
117319 @@ -43,7 +67,7 @@ struct kmem_cache *kmem_cache;
117320 * Merge control. If this is set then no merging of slab caches will occur.
117321 * (Could be removed. This was introduced to pacify the merge skeptics.)
117322 */
117323 -static int slab_nomerge;
117324 +static int slab_nomerge = 1;
117325
117326 static int __init setup_slab_nomerge(char *str)
117327 {
117328 @@ -216,7 +240,7 @@ int slab_unmergeable(struct kmem_cache *s)
117329 /*
117330 * We may have set a slab to be unmergeable during bootstrap.
117331 */
117332 - if (s->refcount < 0)
117333 + if (atomic_read(&s->refcount) < 0)
117334 return 1;
117335
117336 return 0;
117337 @@ -320,7 +344,7 @@ do_kmem_cache_create(const char *name, size_t object_size, size_t size,
117338 if (err)
117339 goto out_free_cache;
117340
117341 - s->refcount = 1;
117342 + atomic_set(&s->refcount, 1);
117343 list_add(&s->list, &slab_caches);
117344 out:
117345 if (err)
117346 @@ -385,6 +409,13 @@ kmem_cache_create(const char *name, size_t size, size_t align,
117347 */
117348 flags &= CACHE_CREATE_MASK;
117349
117350 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117351 + if (pax_sanitize_slab == PAX_SANITIZE_SLAB_OFF || (flags & SLAB_DESTROY_BY_RCU))
117352 + flags |= SLAB_NO_SANITIZE;
117353 + else if (pax_sanitize_slab == PAX_SANITIZE_SLAB_FULL)
117354 + flags &= ~SLAB_NO_SANITIZE;
117355 +#endif
117356 +
117357 s = __kmem_cache_alias(name, size, align, flags, ctor);
117358 if (s)
117359 goto out_unlock;
117360 @@ -455,7 +486,7 @@ static void do_kmem_cache_release(struct list_head *release,
117361 rcu_barrier();
117362
117363 list_for_each_entry_safe(s, s2, release, list) {
117364 -#ifdef SLAB_SUPPORTS_SYSFS
117365 +#if defined(SLAB_SUPPORTS_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117366 sysfs_slab_remove(s);
117367 #else
117368 slab_kmem_cache_release(s);
117369 @@ -624,8 +655,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
117370
117371 mutex_lock(&slab_mutex);
117372
117373 - s->refcount--;
117374 - if (s->refcount)
117375 + if (!atomic_dec_and_test(&s->refcount))
117376 goto out_unlock;
117377
117378 for_each_memcg_cache_safe(c, c2, s) {
117379 @@ -690,7 +720,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz
117380 panic("Creation of kmalloc slab %s size=%zu failed. Reason %d\n",
117381 name, size, err);
117382
117383 - s->refcount = -1; /* Exempt from merging for now */
117384 + atomic_set(&s->refcount, -1); /* Exempt from merging for now */
117385 }
117386
117387 struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
117388 @@ -703,7 +733,7 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
117389
117390 create_boot_cache(s, name, size, flags);
117391 list_add(&s->list, &slab_caches);
117392 - s->refcount = 1;
117393 + atomic_set(&s->refcount, 1);
117394 return s;
117395 }
117396
117397 @@ -715,6 +745,11 @@ struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
117398 EXPORT_SYMBOL(kmalloc_dma_caches);
117399 #endif
117400
117401 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117402 +struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
117403 +EXPORT_SYMBOL(kmalloc_usercopy_caches);
117404 +#endif
117405 +
117406 /*
117407 * Conversion table for small slabs sizes / 8 to the index in the
117408 * kmalloc array. This is necessary for slabs < 192 since we have non power
117409 @@ -779,6 +814,13 @@ struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags)
117410 return kmalloc_dma_caches[index];
117411
117412 #endif
117413 +
117414 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117415 + if (unlikely((flags & GFP_USERCOPY)))
117416 + return kmalloc_usercopy_caches[index];
117417 +
117418 +#endif
117419 +
117420 return kmalloc_caches[index];
117421 }
117422
117423 @@ -871,7 +913,7 @@ void __init create_kmalloc_caches(unsigned long flags)
117424
117425 for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
117426 if (!kmalloc_caches[i])
117427 - new_kmalloc_cache(i, flags);
117428 + new_kmalloc_cache(i, SLAB_USERCOPY | flags);
117429
117430 /*
117431 * Caches that are not of the two-to-the-power-of size.
117432 @@ -879,9 +921,9 @@ void __init create_kmalloc_caches(unsigned long flags)
117433 * earlier power of two caches
117434 */
117435 if (KMALLOC_MIN_SIZE <= 32 && !kmalloc_caches[1] && i == 6)
117436 - new_kmalloc_cache(1, flags);
117437 + new_kmalloc_cache(1, SLAB_USERCOPY | flags);
117438 if (KMALLOC_MIN_SIZE <= 64 && !kmalloc_caches[2] && i == 7)
117439 - new_kmalloc_cache(2, flags);
117440 + new_kmalloc_cache(2, SLAB_USERCOPY | flags);
117441 }
117442
117443 /* Kmalloc array is now usable */
117444 @@ -902,6 +944,23 @@ void __init create_kmalloc_caches(unsigned long flags)
117445 }
117446 }
117447 #endif
117448 +
117449 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117450 + for (i = 0; i <= KMALLOC_SHIFT_HIGH; i++) {
117451 + struct kmem_cache *s = kmalloc_caches[i];
117452 +
117453 + if (s) {
117454 + int size = kmalloc_size(i);
117455 + char *n = kasprintf(GFP_NOWAIT,
117456 + "usercopy-kmalloc-%d", size);
117457 +
117458 + BUG_ON(!n);
117459 + kmalloc_usercopy_caches[i] = create_kmalloc_cache(n,
117460 + size, SLAB_USERCOPY | flags);
117461 + }
117462 + }
117463 +#endif
117464 +
117465 }
117466 #endif /* !CONFIG_SLOB */
117467
117468 @@ -961,6 +1020,9 @@ static void print_slabinfo_header(struct seq_file *m)
117469 seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
117470 "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
117471 seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
117472 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117473 + seq_puts(m, " : pax <sanitized> <not_sanitized>");
117474 +#endif
117475 #endif
117476 seq_putc(m, '\n');
117477 }
117478 @@ -1090,7 +1152,7 @@ static int __init slab_proc_init(void)
117479 module_init(slab_proc_init);
117480 #endif /* CONFIG_SLABINFO */
117481
117482 -static __always_inline void *__do_krealloc(const void *p, size_t new_size,
117483 +static __always_inline void * __size_overflow(2) __do_krealloc(const void *p, size_t new_size,
117484 gfp_t flags)
117485 {
117486 void *ret;
117487 diff --git a/mm/slob.c b/mm/slob.c
117488 index 4765f65..5dec45e 100644
117489 --- a/mm/slob.c
117490 +++ b/mm/slob.c
117491 @@ -67,6 +67,7 @@
117492 #include <linux/rcupdate.h>
117493 #include <linux/list.h>
117494 #include <linux/kmemleak.h>
117495 +#include <linux/vmalloc.h>
117496
117497 #include <trace/events/kmem.h>
117498
117499 @@ -157,7 +158,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next)
117500 /*
117501 * Return the size of a slob block.
117502 */
117503 -static slobidx_t slob_units(slob_t *s)
117504 +static slobidx_t slob_units(const slob_t *s)
117505 {
117506 if (s->units > 0)
117507 return s->units;
117508 @@ -167,7 +168,7 @@ static slobidx_t slob_units(slob_t *s)
117509 /*
117510 * Return the next free slob block pointer after this one.
117511 */
117512 -static slob_t *slob_next(slob_t *s)
117513 +static slob_t *slob_next(const slob_t *s)
117514 {
117515 slob_t *base = (slob_t *)((unsigned long)s & PAGE_MASK);
117516 slobidx_t next;
117517 @@ -182,14 +183,14 @@ static slob_t *slob_next(slob_t *s)
117518 /*
117519 * Returns true if s is the last free block in its page.
117520 */
117521 -static int slob_last(slob_t *s)
117522 +static int slob_last(const slob_t *s)
117523 {
117524 return !((unsigned long)slob_next(s) & ~PAGE_MASK);
117525 }
117526
117527 -static void *slob_new_pages(gfp_t gfp, int order, int node)
117528 +static struct page *slob_new_pages(gfp_t gfp, unsigned int order, int node)
117529 {
117530 - void *page;
117531 + struct page *page;
117532
117533 #ifdef CONFIG_NUMA
117534 if (node != NUMA_NO_NODE)
117535 @@ -201,14 +202,18 @@ static void *slob_new_pages(gfp_t gfp, int order, int node)
117536 if (!page)
117537 return NULL;
117538
117539 - return page_address(page);
117540 + __SetPageSlab(page);
117541 + return page;
117542 }
117543
117544 -static void slob_free_pages(void *b, int order)
117545 +static void slob_free_pages(struct page *sp, int order)
117546 {
117547 if (current->reclaim_state)
117548 current->reclaim_state->reclaimed_slab += 1 << order;
117549 - free_pages((unsigned long)b, order);
117550 + __ClearPageSlab(sp);
117551 + page_mapcount_reset(sp);
117552 + sp->private = 0;
117553 + __free_pages(sp, order);
117554 }
117555
117556 /*
117557 @@ -313,15 +318,15 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
117558
117559 /* Not enough space: must allocate a new page */
117560 if (!b) {
117561 - b = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
117562 - if (!b)
117563 + sp = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
117564 + if (!sp)
117565 return NULL;
117566 - sp = virt_to_page(b);
117567 - __SetPageSlab(sp);
117568 + b = page_address(sp);
117569
117570 spin_lock_irqsave(&slob_lock, flags);
117571 sp->units = SLOB_UNITS(PAGE_SIZE);
117572 sp->freelist = b;
117573 + sp->private = 0;
117574 INIT_LIST_HEAD(&sp->lru);
117575 set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE));
117576 set_slob_page_free(sp, slob_list);
117577 @@ -337,7 +342,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
117578 /*
117579 * slob_free: entry point into the slob allocator.
117580 */
117581 -static void slob_free(void *block, int size)
117582 +static void slob_free(struct kmem_cache *c, void *block, int size)
117583 {
117584 struct page *sp;
117585 slob_t *prev, *next, *b = (slob_t *)block;
117586 @@ -359,12 +364,15 @@ static void slob_free(void *block, int size)
117587 if (slob_page_free(sp))
117588 clear_slob_page_free(sp);
117589 spin_unlock_irqrestore(&slob_lock, flags);
117590 - __ClearPageSlab(sp);
117591 - page_mapcount_reset(sp);
117592 - slob_free_pages(b, 0);
117593 + slob_free_pages(sp, 0);
117594 return;
117595 }
117596
117597 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117598 + if (pax_sanitize_slab && !(c && (c->flags & SLAB_NO_SANITIZE)))
117599 + memset(block, PAX_MEMORY_SANITIZE_VALUE, size);
117600 +#endif
117601 +
117602 if (!slob_page_free(sp)) {
117603 /* This slob page is about to become partially free. Easy! */
117604 sp->units = units;
117605 @@ -424,11 +432,10 @@ out:
117606 */
117607
117608 static __always_inline void *
117609 -__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
117610 +__do_kmalloc_node_align(size_t size, gfp_t gfp, int node, unsigned long caller, int align)
117611 {
117612 - unsigned int *m;
117613 - int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
117614 - void *ret;
117615 + slob_t *m;
117616 + void *ret = NULL;
117617
117618 gfp &= gfp_allowed_mask;
117619
117620 @@ -442,27 +449,45 @@ __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
117621
117622 if (!m)
117623 return NULL;
117624 - *m = size;
117625 + BUILD_BUG_ON(ARCH_KMALLOC_MINALIGN < 2 * SLOB_UNIT);
117626 + BUILD_BUG_ON(ARCH_SLAB_MINALIGN < 2 * SLOB_UNIT);
117627 + m[0].units = size;
117628 + m[1].units = align;
117629 ret = (void *)m + align;
117630
117631 trace_kmalloc_node(caller, ret,
117632 size, size + align, gfp, node);
117633 } else {
117634 unsigned int order = get_order(size);
117635 + struct page *page;
117636
117637 if (likely(order))
117638 gfp |= __GFP_COMP;
117639 - ret = slob_new_pages(gfp, order, node);
117640 + page = slob_new_pages(gfp, order, node);
117641 + if (page) {
117642 + ret = page_address(page);
117643 + page->private = size;
117644 + }
117645
117646 trace_kmalloc_node(caller, ret,
117647 size, PAGE_SIZE << order, gfp, node);
117648 }
117649
117650 - kmemleak_alloc(ret, size, 1, gfp);
117651 return ret;
117652 }
117653
117654 -void *__kmalloc(size_t size, gfp_t gfp)
117655 +static __always_inline void *
117656 +__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
117657 +{
117658 + int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
117659 + void *ret = __do_kmalloc_node_align(size, gfp, node, caller, align);
117660 +
117661 + if (!ZERO_OR_NULL_PTR(ret))
117662 + kmemleak_alloc(ret, size, 1, gfp);
117663 + return ret;
117664 +}
117665 +
117666 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t gfp)
117667 {
117668 return __do_kmalloc_node(size, gfp, NUMA_NO_NODE, _RET_IP_);
117669 }
117670 @@ -491,34 +516,123 @@ void kfree(const void *block)
117671 return;
117672 kmemleak_free(block);
117673
117674 + VM_BUG_ON(!virt_addr_valid(block));
117675 sp = virt_to_page(block);
117676 - if (PageSlab(sp)) {
117677 + VM_BUG_ON(!PageSlab(sp));
117678 + if (!sp->private) {
117679 int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
117680 - unsigned int *m = (unsigned int *)(block - align);
117681 - slob_free(m, *m + align);
117682 - } else
117683 + slob_t *m = (slob_t *)(block - align);
117684 + slob_free(NULL, m, m[0].units + align);
117685 + } else {
117686 + __ClearPageSlab(sp);
117687 + page_mapcount_reset(sp);
117688 + sp->private = 0;
117689 __free_pages(sp, compound_order(sp));
117690 + }
117691 }
117692 EXPORT_SYMBOL(kfree);
117693
117694 +bool is_usercopy_object(const void *ptr)
117695 +{
117696 + if (!slab_is_available())
117697 + return false;
117698 +
117699 + if (is_vmalloc_addr(ptr)
117700 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117701 + && !object_starts_on_stack(ptr)
117702 +#endif
117703 + ) {
117704 + struct vm_struct *vm = find_vm_area(ptr);
117705 + if (vm && (vm->flags & VM_USERCOPY))
117706 + return true;
117707 + return false;
117708 + }
117709 +
117710 + // PAX: TODO
117711 +
117712 + return false;
117713 +}
117714 +
117715 +#ifdef CONFIG_PAX_USERCOPY
117716 +const char *check_heap_object(const void *ptr, unsigned long n)
117717 +{
117718 + struct page *page;
117719 + const slob_t *free;
117720 + const void *base;
117721 + unsigned long flags;
117722 +
117723 + if (ZERO_OR_NULL_PTR(ptr))
117724 + return "<null>";
117725 +
117726 + if (!virt_addr_valid(ptr))
117727 + return NULL;
117728 +
117729 + page = virt_to_head_page(ptr);
117730 + if (!PageSlab(page))
117731 + return NULL;
117732 +
117733 + if (page->private) {
117734 + base = page;
117735 + if (base <= ptr && n <= page->private - (ptr - base))
117736 + return NULL;
117737 + return "<slob>";
117738 + }
117739 +
117740 + /* some tricky double walking to find the chunk */
117741 + spin_lock_irqsave(&slob_lock, flags);
117742 + base = (void *)((unsigned long)ptr & PAGE_MASK);
117743 + free = page->freelist;
117744 +
117745 + while (!slob_last(free) && (void *)free <= ptr) {
117746 + base = free + slob_units(free);
117747 + free = slob_next(free);
117748 + }
117749 +
117750 + while (base < (void *)free) {
117751 + slobidx_t m = ((slob_t *)base)[0].units, align = ((slob_t *)base)[1].units;
117752 + int size = SLOB_UNIT * SLOB_UNITS(m + align);
117753 + int offset;
117754 +
117755 + if (ptr < base + align)
117756 + break;
117757 +
117758 + offset = ptr - base - align;
117759 + if (offset >= m) {
117760 + base += size;
117761 + continue;
117762 + }
117763 +
117764 + if (n > m - offset)
117765 + break;
117766 +
117767 + spin_unlock_irqrestore(&slob_lock, flags);
117768 + return NULL;
117769 + }
117770 +
117771 + spin_unlock_irqrestore(&slob_lock, flags);
117772 + return "<slob>";
117773 +}
117774 +#endif
117775 +
117776 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
117777 size_t ksize(const void *block)
117778 {
117779 struct page *sp;
117780 int align;
117781 - unsigned int *m;
117782 + slob_t *m;
117783
117784 BUG_ON(!block);
117785 if (unlikely(block == ZERO_SIZE_PTR))
117786 return 0;
117787
117788 sp = virt_to_page(block);
117789 - if (unlikely(!PageSlab(sp)))
117790 - return PAGE_SIZE << compound_order(sp);
117791 + VM_BUG_ON(!PageSlab(sp));
117792 + if (sp->private)
117793 + return sp->private;
117794
117795 align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
117796 - m = (unsigned int *)(block - align);
117797 - return SLOB_UNITS(*m) * SLOB_UNIT;
117798 + m = (slob_t *)(block - align);
117799 + return SLOB_UNITS(m[0].units) * SLOB_UNIT;
117800 }
117801 EXPORT_SYMBOL(ksize);
117802
117803 @@ -534,23 +648,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
117804
117805 static void *slob_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
117806 {
117807 - void *b;
117808 + void *b = NULL;
117809
117810 flags &= gfp_allowed_mask;
117811
117812 lockdep_trace_alloc(flags);
117813
117814 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117815 + b = __do_kmalloc_node_align(c->size, flags, node, _RET_IP_, c->align);
117816 +#else
117817 if (c->size < PAGE_SIZE) {
117818 b = slob_alloc(c->size, flags, c->align, node);
117819 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
117820 SLOB_UNITS(c->size) * SLOB_UNIT,
117821 flags, node);
117822 } else {
117823 - b = slob_new_pages(flags, get_order(c->size), node);
117824 + struct page *sp;
117825 +
117826 + sp = slob_new_pages(flags, get_order(c->size), node);
117827 + if (sp) {
117828 + b = page_address(sp);
117829 + sp->private = c->size;
117830 + }
117831 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
117832 PAGE_SIZE << get_order(c->size),
117833 flags, node);
117834 }
117835 +#endif
117836
117837 if (b && c->ctor)
117838 c->ctor(b);
117839 @@ -566,7 +690,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
117840 EXPORT_SYMBOL(kmem_cache_alloc);
117841
117842 #ifdef CONFIG_NUMA
117843 -void *__kmalloc_node(size_t size, gfp_t gfp, int node)
117844 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t gfp, int node)
117845 {
117846 return __do_kmalloc_node(size, gfp, node, _RET_IP_);
117847 }
117848 @@ -579,12 +703,16 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t gfp, int node)
117849 EXPORT_SYMBOL(kmem_cache_alloc_node);
117850 #endif
117851
117852 -static void __kmem_cache_free(void *b, int size)
117853 +static void __kmem_cache_free(struct kmem_cache *c, void *b, int size)
117854 {
117855 - if (size < PAGE_SIZE)
117856 - slob_free(b, size);
117857 + struct page *sp;
117858 +
117859 + sp = virt_to_page(b);
117860 + BUG_ON(!PageSlab(sp));
117861 + if (!sp->private)
117862 + slob_free(c, b, size);
117863 else
117864 - slob_free_pages(b, get_order(size));
117865 + slob_free_pages(sp, get_order(size));
117866 }
117867
117868 static void kmem_rcu_free(struct rcu_head *head)
117869 @@ -592,22 +720,36 @@ static void kmem_rcu_free(struct rcu_head *head)
117870 struct slob_rcu *slob_rcu = (struct slob_rcu *)head;
117871 void *b = (void *)slob_rcu - (slob_rcu->size - sizeof(struct slob_rcu));
117872
117873 - __kmem_cache_free(b, slob_rcu->size);
117874 + __kmem_cache_free(NULL, b, slob_rcu->size);
117875 }
117876
117877 void kmem_cache_free(struct kmem_cache *c, void *b)
117878 {
117879 + int size = c->size;
117880 +
117881 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117882 + if (size + c->align < PAGE_SIZE) {
117883 + size += c->align;
117884 + b -= c->align;
117885 + }
117886 +#endif
117887 +
117888 kmemleak_free_recursive(b, c->flags);
117889 if (unlikely(c->flags & SLAB_DESTROY_BY_RCU)) {
117890 struct slob_rcu *slob_rcu;
117891 - slob_rcu = b + (c->size - sizeof(struct slob_rcu));
117892 - slob_rcu->size = c->size;
117893 + slob_rcu = b + (size - sizeof(struct slob_rcu));
117894 + slob_rcu->size = size;
117895 call_rcu(&slob_rcu->head, kmem_rcu_free);
117896 } else {
117897 - __kmem_cache_free(b, c->size);
117898 + __kmem_cache_free(c, b, size);
117899 }
117900
117901 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117902 + trace_kfree(_RET_IP_, b);
117903 +#else
117904 trace_kmem_cache_free(_RET_IP_, b);
117905 +#endif
117906 +
117907 }
117908 EXPORT_SYMBOL(kmem_cache_free);
117909
117910 diff --git a/mm/slub.c b/mm/slub.c
117911 index f68c0e5..eb77178 100644
117912 --- a/mm/slub.c
117913 +++ b/mm/slub.c
117914 @@ -34,6 +34,7 @@
117915 #include <linux/stacktrace.h>
117916 #include <linux/prefetch.h>
117917 #include <linux/memcontrol.h>
117918 +#include <linux/vmalloc.h>
117919
117920 #include <trace/events/kmem.h>
117921
117922 @@ -198,7 +199,7 @@ struct track {
117923
117924 enum track_item { TRACK_ALLOC, TRACK_FREE };
117925
117926 -#ifdef CONFIG_SYSFS
117927 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117928 static int sysfs_slab_add(struct kmem_cache *);
117929 static int sysfs_slab_alias(struct kmem_cache *, const char *);
117930 static void memcg_propagate_slab_attrs(struct kmem_cache *s);
117931 @@ -556,7 +557,7 @@ static void print_track(const char *s, struct track *t)
117932 if (!t->addr)
117933 return;
117934
117935 - pr_err("INFO: %s in %pS age=%lu cpu=%u pid=%d\n",
117936 + pr_err("INFO: %s in %pA age=%lu cpu=%u pid=%d\n",
117937 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
117938 #ifdef CONFIG_STACKTRACE
117939 {
117940 @@ -2707,6 +2708,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
117941
117942 slab_free_hook(s, x);
117943
117944 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117945 + if (!(s->flags & SLAB_NO_SANITIZE)) {
117946 + memset(x, PAX_MEMORY_SANITIZE_VALUE, s->object_size);
117947 + if (s->ctor)
117948 + s->ctor(x);
117949 + }
117950 +#endif
117951 +
117952 redo:
117953 /*
117954 * Determine the currently cpus per cpu slab.
117955 @@ -3048,6 +3057,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
117956 s->inuse = size;
117957
117958 if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
117959 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117960 + (!(flags & SLAB_NO_SANITIZE)) ||
117961 +#endif
117962 s->ctor)) {
117963 /*
117964 * Relocate free pointer after the object if it is not
117965 @@ -3302,7 +3314,7 @@ static int __init setup_slub_min_objects(char *str)
117966
117967 __setup("slub_min_objects=", setup_slub_min_objects);
117968
117969 -void *__kmalloc(size_t size, gfp_t flags)
117970 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t flags)
117971 {
117972 struct kmem_cache *s;
117973 void *ret;
117974 @@ -3340,7 +3352,7 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node)
117975 return ptr;
117976 }
117977
117978 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
117979 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
117980 {
117981 struct kmem_cache *s;
117982 void *ret;
117983 @@ -3388,6 +3400,70 @@ static size_t __ksize(const void *object)
117984 return slab_ksize(page->slab_cache);
117985 }
117986
117987 +bool is_usercopy_object(const void *ptr)
117988 +{
117989 + struct page *page;
117990 + struct kmem_cache *s;
117991 +
117992 + if (ZERO_OR_NULL_PTR(ptr))
117993 + return false;
117994 +
117995 + if (!slab_is_available())
117996 + return false;
117997 +
117998 + if (is_vmalloc_addr(ptr)
117999 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118000 + && !object_starts_on_stack(ptr)
118001 +#endif
118002 + ) {
118003 + struct vm_struct *vm = find_vm_area(ptr);
118004 + if (vm && (vm->flags & VM_USERCOPY))
118005 + return true;
118006 + return false;
118007 + }
118008 +
118009 + if (!virt_addr_valid(ptr))
118010 + return false;
118011 +
118012 + page = virt_to_head_page(ptr);
118013 +
118014 + if (!PageSlab(page))
118015 + return false;
118016 +
118017 + s = page->slab_cache;
118018 + return s->flags & SLAB_USERCOPY;
118019 +}
118020 +
118021 +#ifdef CONFIG_PAX_USERCOPY
118022 +const char *check_heap_object(const void *ptr, unsigned long n)
118023 +{
118024 + struct page *page;
118025 + struct kmem_cache *s;
118026 + unsigned long offset;
118027 +
118028 + if (ZERO_OR_NULL_PTR(ptr))
118029 + return "<null>";
118030 +
118031 + if (!virt_addr_valid(ptr))
118032 + return NULL;
118033 +
118034 + page = virt_to_head_page(ptr);
118035 +
118036 + if (!PageSlab(page))
118037 + return NULL;
118038 +
118039 + s = page->slab_cache;
118040 + if (!(s->flags & SLAB_USERCOPY))
118041 + return s->name;
118042 +
118043 + offset = (ptr - page_address(page)) % s->size;
118044 + if (offset <= s->object_size && n <= s->object_size - offset)
118045 + return NULL;
118046 +
118047 + return s->name;
118048 +}
118049 +#endif
118050 +
118051 size_t ksize(const void *object)
118052 {
118053 size_t size = __ksize(object);
118054 @@ -3408,6 +3484,7 @@ void kfree(const void *x)
118055 if (unlikely(ZERO_OR_NULL_PTR(x)))
118056 return;
118057
118058 + VM_BUG_ON(!virt_addr_valid(x));
118059 page = virt_to_head_page(x);
118060 if (unlikely(!PageSlab(page))) {
118061 BUG_ON(!PageCompound(page));
118062 @@ -3725,7 +3802,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
118063
118064 s = find_mergeable(size, align, flags, name, ctor);
118065 if (s) {
118066 - s->refcount++;
118067 + atomic_inc(&s->refcount);
118068
118069 /*
118070 * Adjust the object sizes so that we clear
118071 @@ -3741,7 +3818,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
118072 }
118073
118074 if (sysfs_slab_alias(s, name)) {
118075 - s->refcount--;
118076 + atomic_dec(&s->refcount);
118077 s = NULL;
118078 }
118079 }
118080 @@ -3858,7 +3935,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
118081 }
118082 #endif
118083
118084 -#ifdef CONFIG_SYSFS
118085 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118086 static int count_inuse(struct page *page)
118087 {
118088 return page->inuse;
118089 @@ -4139,7 +4216,11 @@ static int list_locations(struct kmem_cache *s, char *buf,
118090 len += sprintf(buf + len, "%7ld ", l->count);
118091
118092 if (l->addr)
118093 +#ifdef CONFIG_GRKERNSEC_HIDESYM
118094 + len += sprintf(buf + len, "%pS", NULL);
118095 +#else
118096 len += sprintf(buf + len, "%pS", (void *)l->addr);
118097 +#endif
118098 else
118099 len += sprintf(buf + len, "<not-available>");
118100
118101 @@ -4237,12 +4318,12 @@ static void __init resiliency_test(void)
118102 validate_slab_cache(kmalloc_caches[9]);
118103 }
118104 #else
118105 -#ifdef CONFIG_SYSFS
118106 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118107 static void resiliency_test(void) {};
118108 #endif
118109 #endif
118110
118111 -#ifdef CONFIG_SYSFS
118112 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118113 enum slab_stat_type {
118114 SL_ALL, /* All slabs */
118115 SL_PARTIAL, /* Only partially allocated slabs */
118116 @@ -4479,13 +4560,17 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
118117 {
118118 if (!s->ctor)
118119 return 0;
118120 +#ifdef CONFIG_GRKERNSEC_HIDESYM
118121 + return sprintf(buf, "%pS\n", NULL);
118122 +#else
118123 return sprintf(buf, "%pS\n", s->ctor);
118124 +#endif
118125 }
118126 SLAB_ATTR_RO(ctor);
118127
118128 static ssize_t aliases_show(struct kmem_cache *s, char *buf)
118129 {
118130 - return sprintf(buf, "%d\n", s->refcount < 0 ? 0 : s->refcount - 1);
118131 + return sprintf(buf, "%d\n", atomic_read(&s->refcount) < 0 ? 0 : atomic_read(&s->refcount) - 1);
118132 }
118133 SLAB_ATTR_RO(aliases);
118134
118135 @@ -4573,6 +4658,22 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
118136 SLAB_ATTR_RO(cache_dma);
118137 #endif
118138
118139 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118140 +static ssize_t usercopy_show(struct kmem_cache *s, char *buf)
118141 +{
118142 + return sprintf(buf, "%d\n", !!(s->flags & SLAB_USERCOPY));
118143 +}
118144 +SLAB_ATTR_RO(usercopy);
118145 +#endif
118146 +
118147 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118148 +static ssize_t sanitize_show(struct kmem_cache *s, char *buf)
118149 +{
118150 + return sprintf(buf, "%d\n", !(s->flags & SLAB_NO_SANITIZE));
118151 +}
118152 +SLAB_ATTR_RO(sanitize);
118153 +#endif
118154 +
118155 static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
118156 {
118157 return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
118158 @@ -4628,7 +4729,7 @@ static ssize_t trace_store(struct kmem_cache *s, const char *buf,
118159 * as well as cause other issues like converting a mergeable
118160 * cache into an umergeable one.
118161 */
118162 - if (s->refcount > 1)
118163 + if (atomic_read(&s->refcount) > 1)
118164 return -EINVAL;
118165
118166 s->flags &= ~SLAB_TRACE;
118167 @@ -4748,7 +4849,7 @@ static ssize_t failslab_show(struct kmem_cache *s, char *buf)
118168 static ssize_t failslab_store(struct kmem_cache *s, const char *buf,
118169 size_t length)
118170 {
118171 - if (s->refcount > 1)
118172 + if (atomic_read(&s->refcount) > 1)
118173 return -EINVAL;
118174
118175 s->flags &= ~SLAB_FAILSLAB;
118176 @@ -4915,6 +5016,12 @@ static struct attribute *slab_attrs[] = {
118177 #ifdef CONFIG_ZONE_DMA
118178 &cache_dma_attr.attr,
118179 #endif
118180 +#ifdef CONFIG_PAX_USERCOPY_SLABS
118181 + &usercopy_attr.attr,
118182 +#endif
118183 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
118184 + &sanitize_attr.attr,
118185 +#endif
118186 #ifdef CONFIG_NUMA
118187 &remote_node_defrag_ratio_attr.attr,
118188 #endif
118189 @@ -5156,6 +5263,7 @@ static char *create_unique_id(struct kmem_cache *s)
118190 return name;
118191 }
118192
118193 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118194 static int sysfs_slab_add(struct kmem_cache *s)
118195 {
118196 int err;
118197 @@ -5229,6 +5337,7 @@ void sysfs_slab_remove(struct kmem_cache *s)
118198 kobject_del(&s->kobj);
118199 kobject_put(&s->kobj);
118200 }
118201 +#endif
118202
118203 /*
118204 * Need to buffer aliases during bootup until sysfs becomes
118205 @@ -5242,6 +5351,7 @@ struct saved_alias {
118206
118207 static struct saved_alias *alias_list;
118208
118209 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
118210 static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
118211 {
118212 struct saved_alias *al;
118213 @@ -5264,6 +5374,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
118214 alias_list = al;
118215 return 0;
118216 }
118217 +#endif
118218
118219 static int __init slab_sysfs_init(void)
118220 {
118221 diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
118222 index 4cba9c2..b4f9fcc 100644
118223 --- a/mm/sparse-vmemmap.c
118224 +++ b/mm/sparse-vmemmap.c
118225 @@ -131,7 +131,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
118226 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
118227 if (!p)
118228 return NULL;
118229 - pud_populate(&init_mm, pud, p);
118230 + pud_populate_kernel(&init_mm, pud, p);
118231 }
118232 return pud;
118233 }
118234 @@ -143,7 +143,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
118235 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
118236 if (!p)
118237 return NULL;
118238 - pgd_populate(&init_mm, pgd, p);
118239 + pgd_populate_kernel(&init_mm, pgd, p);
118240 }
118241 return pgd;
118242 }
118243 diff --git a/mm/sparse.c b/mm/sparse.c
118244 index d1b48b6..6e8590e 100644
118245 --- a/mm/sparse.c
118246 +++ b/mm/sparse.c
118247 @@ -750,7 +750,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
118248
118249 for (i = 0; i < PAGES_PER_SECTION; i++) {
118250 if (PageHWPoison(&memmap[i])) {
118251 - atomic_long_sub(1, &num_poisoned_pages);
118252 + atomic_long_sub_unchecked(1, &num_poisoned_pages);
118253 ClearPageHWPoison(&memmap[i]);
118254 }
118255 }
118256 diff --git a/mm/swap.c b/mm/swap.c
118257 index a3a0a2f..915d436 100644
118258 --- a/mm/swap.c
118259 +++ b/mm/swap.c
118260 @@ -85,6 +85,8 @@ static void __put_compound_page(struct page *page)
118261 if (!PageHuge(page))
118262 __page_cache_release(page);
118263 dtor = get_compound_page_dtor(page);
118264 + if (!PageHuge(page))
118265 + BUG_ON(dtor != free_compound_page);
118266 (*dtor)(page);
118267 }
118268
118269 diff --git a/mm/swapfile.c b/mm/swapfile.c
118270 index 41e4581..6c452c9 100644
118271 --- a/mm/swapfile.c
118272 +++ b/mm/swapfile.c
118273 @@ -84,7 +84,7 @@ static DEFINE_MUTEX(swapon_mutex);
118274
118275 static DECLARE_WAIT_QUEUE_HEAD(proc_poll_wait);
118276 /* Activity counter to indicate that a swapon or swapoff has occurred */
118277 -static atomic_t proc_poll_event = ATOMIC_INIT(0);
118278 +static atomic_unchecked_t proc_poll_event = ATOMIC_INIT(0);
118279
118280 static inline unsigned char swap_count(unsigned char ent)
118281 {
118282 @@ -1944,7 +1944,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
118283 spin_unlock(&swap_lock);
118284
118285 err = 0;
118286 - atomic_inc(&proc_poll_event);
118287 + atomic_inc_unchecked(&proc_poll_event);
118288 wake_up_interruptible(&proc_poll_wait);
118289
118290 out_dput:
118291 @@ -1961,8 +1961,8 @@ static unsigned swaps_poll(struct file *file, poll_table *wait)
118292
118293 poll_wait(file, &proc_poll_wait, wait);
118294
118295 - if (seq->poll_event != atomic_read(&proc_poll_event)) {
118296 - seq->poll_event = atomic_read(&proc_poll_event);
118297 + if (seq->poll_event != atomic_read_unchecked(&proc_poll_event)) {
118298 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
118299 return POLLIN | POLLRDNORM | POLLERR | POLLPRI;
118300 }
118301
118302 @@ -2060,7 +2060,7 @@ static int swaps_open(struct inode *inode, struct file *file)
118303 return ret;
118304
118305 seq = file->private_data;
118306 - seq->poll_event = atomic_read(&proc_poll_event);
118307 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
118308 return 0;
118309 }
118310
118311 @@ -2520,7 +2520,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
118312 (frontswap_map) ? "FS" : "");
118313
118314 mutex_unlock(&swapon_mutex);
118315 - atomic_inc(&proc_poll_event);
118316 + atomic_inc_unchecked(&proc_poll_event);
118317 wake_up_interruptible(&proc_poll_wait);
118318
118319 if (S_ISREG(inode->i_mode))
118320 diff --git a/mm/util.c b/mm/util.c
118321 index 68ff8a5..40c7a70 100644
118322 --- a/mm/util.c
118323 +++ b/mm/util.c
118324 @@ -233,6 +233,12 @@ struct task_struct *task_of_stack(struct task_struct *task,
118325 void arch_pick_mmap_layout(struct mm_struct *mm)
118326 {
118327 mm->mmap_base = TASK_UNMAPPED_BASE;
118328 +
118329 +#ifdef CONFIG_PAX_RANDMMAP
118330 + if (mm->pax_flags & MF_PAX_RANDMMAP)
118331 + mm->mmap_base += mm->delta_mmap;
118332 +#endif
118333 +
118334 mm->get_unmapped_area = arch_get_unmapped_area;
118335 }
118336 #endif
118337 @@ -434,6 +440,9 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen)
118338 if (!mm->arg_end)
118339 goto out_mm; /* Shh! No looking before we're done */
118340
118341 + if (gr_acl_handle_procpidmem(task))
118342 + goto out_mm;
118343 +
118344 len = mm->arg_end - mm->arg_start;
118345
118346 if (len > buflen)
118347 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
118348 index 2faaa29..b4893f8 100644
118349 --- a/mm/vmalloc.c
118350 +++ b/mm/vmalloc.c
118351 @@ -40,20 +40,65 @@ struct vfree_deferred {
118352 struct work_struct wq;
118353 };
118354 static DEFINE_PER_CPU(struct vfree_deferred, vfree_deferred);
118355 +static DEFINE_PER_CPU(struct vfree_deferred, vunmap_deferred);
118356 +
118357 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118358 +struct stack_deferred_llist {
118359 + struct llist_head list;
118360 + void *stack;
118361 + void *lowmem_stack;
118362 +};
118363 +
118364 +struct stack_deferred {
118365 + struct stack_deferred_llist list;
118366 + struct work_struct wq;
118367 +};
118368 +
118369 +static DEFINE_PER_CPU(struct stack_deferred, stack_deferred);
118370 +#endif
118371
118372 static void __vunmap(const void *, int);
118373
118374 -static void free_work(struct work_struct *w)
118375 +static void vfree_work(struct work_struct *w)
118376 {
118377 struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
118378 struct llist_node *llnode = llist_del_all(&p->list);
118379 while (llnode) {
118380 - void *p = llnode;
118381 + void *x = llnode;
118382 llnode = llist_next(llnode);
118383 - __vunmap(p, 1);
118384 + __vunmap(x, 1);
118385 }
118386 }
118387
118388 +static void vunmap_work(struct work_struct *w)
118389 +{
118390 + struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
118391 + struct llist_node *llnode = llist_del_all(&p->list);
118392 + while (llnode) {
118393 + void *x = llnode;
118394 + llnode = llist_next(llnode);
118395 + __vunmap(x, 0);
118396 + }
118397 +}
118398 +
118399 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118400 +static void unmap_work(struct work_struct *w)
118401 +{
118402 + struct stack_deferred *p = container_of(w, struct stack_deferred, wq);
118403 + struct llist_node *llnode = llist_del_all(&p->list.list);
118404 + while (llnode) {
118405 + struct stack_deferred_llist *x =
118406 + llist_entry((struct llist_head *)llnode,
118407 + struct stack_deferred_llist, list);
118408 + void *stack = ACCESS_ONCE(x->stack);
118409 + void *lowmem_stack = ACCESS_ONCE(x->lowmem_stack);
118410 + llnode = llist_next(llnode);
118411 + __vunmap(stack, 0);
118412 + free_kmem_pages((unsigned long)lowmem_stack, THREAD_SIZE_ORDER);
118413 + }
118414 +}
118415 +#endif
118416 +
118417 /*** Page table manipulation functions ***/
118418
118419 static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
118420 @@ -61,10 +106,23 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
118421 pte_t *pte;
118422
118423 pte = pte_offset_kernel(pmd, addr);
118424 + pax_open_kernel();
118425 do {
118426 - pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
118427 - WARN_ON(!pte_none(ptent) && !pte_present(ptent));
118428 +
118429 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
118430 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr < (unsigned long)MODULES_EXEC_END) {
118431 + BUG_ON(!pte_exec(*pte));
118432 + set_pte_at(&init_mm, addr, pte, pfn_pte(__pa(addr) >> PAGE_SHIFT, PAGE_KERNEL_EXEC));
118433 + continue;
118434 + }
118435 +#endif
118436 +
118437 + {
118438 + pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
118439 + WARN_ON(!pte_none(ptent) && !pte_present(ptent));
118440 + }
118441 } while (pte++, addr += PAGE_SIZE, addr != end);
118442 + pax_close_kernel();
118443 }
118444
118445 static void vunmap_pmd_range(pud_t *pud, unsigned long addr, unsigned long end)
118446 @@ -127,16 +185,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
118447 pte = pte_alloc_kernel(pmd, addr);
118448 if (!pte)
118449 return -ENOMEM;
118450 +
118451 + pax_open_kernel();
118452 do {
118453 struct page *page = pages[*nr];
118454
118455 - if (WARN_ON(!pte_none(*pte)))
118456 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
118457 + if (pgprot_val(prot) & _PAGE_NX)
118458 +#endif
118459 +
118460 + if (!pte_none(*pte)) {
118461 + pax_close_kernel();
118462 + WARN_ON(1);
118463 return -EBUSY;
118464 - if (WARN_ON(!page))
118465 + }
118466 + if (!page) {
118467 + pax_close_kernel();
118468 + WARN_ON(1);
118469 return -ENOMEM;
118470 + }
118471 set_pte_at(&init_mm, addr, pte, mk_pte(page, prot));
118472 (*nr)++;
118473 } while (pte++, addr += PAGE_SIZE, addr != end);
118474 + pax_close_kernel();
118475 return 0;
118476 }
118477
118478 @@ -146,7 +217,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
118479 pmd_t *pmd;
118480 unsigned long next;
118481
118482 - pmd = pmd_alloc(&init_mm, pud, addr);
118483 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
118484 if (!pmd)
118485 return -ENOMEM;
118486 do {
118487 @@ -163,7 +234,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
118488 pud_t *pud;
118489 unsigned long next;
118490
118491 - pud = pud_alloc(&init_mm, pgd, addr);
118492 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
118493 if (!pud)
118494 return -ENOMEM;
118495 do {
118496 @@ -223,6 +294,12 @@ int is_vmalloc_or_module_addr(const void *x)
118497 if (addr >= MODULES_VADDR && addr < MODULES_END)
118498 return 1;
118499 #endif
118500 +
118501 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
118502 + if (x >= (const void *)MODULES_EXEC_VADDR && x < (const void *)MODULES_EXEC_END)
118503 + return 1;
118504 +#endif
118505 +
118506 return is_vmalloc_addr(x);
118507 }
118508
118509 @@ -243,8 +320,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
118510
118511 if (!pgd_none(*pgd)) {
118512 pud_t *pud = pud_offset(pgd, addr);
118513 +#ifdef CONFIG_X86
118514 + if (!pud_large(*pud))
118515 +#endif
118516 if (!pud_none(*pud)) {
118517 pmd_t *pmd = pmd_offset(pud, addr);
118518 +#ifdef CONFIG_X86
118519 + if (!pmd_large(*pmd))
118520 +#endif
118521 if (!pmd_none(*pmd)) {
118522 pte_t *ptep, pte;
118523
118524 @@ -346,7 +429,7 @@ static void purge_vmap_area_lazy(void);
118525 * Allocate a region of KVA of the specified size and alignment, within the
118526 * vstart and vend.
118527 */
118528 -static struct vmap_area *alloc_vmap_area(unsigned long size,
118529 +static struct vmap_area * __size_overflow(1) alloc_vmap_area(unsigned long size,
118530 unsigned long align,
118531 unsigned long vstart, unsigned long vend,
118532 int node, gfp_t gfp_mask)
118533 @@ -1202,13 +1285,27 @@ void __init vmalloc_init(void)
118534 for_each_possible_cpu(i) {
118535 struct vmap_block_queue *vbq;
118536 struct vfree_deferred *p;
118537 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118538 + struct stack_deferred *p2;
118539 +#endif
118540
118541 vbq = &per_cpu(vmap_block_queue, i);
118542 spin_lock_init(&vbq->lock);
118543 INIT_LIST_HEAD(&vbq->free);
118544 +
118545 p = &per_cpu(vfree_deferred, i);
118546 init_llist_head(&p->list);
118547 - INIT_WORK(&p->wq, free_work);
118548 + INIT_WORK(&p->wq, vfree_work);
118549 +
118550 + p = &per_cpu(vunmap_deferred, i);
118551 + init_llist_head(&p->list);
118552 + INIT_WORK(&p->wq, vunmap_work);
118553 +
118554 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118555 + p2 = &per_cpu(stack_deferred, i);
118556 + init_llist_head(&p2->list.list);
118557 + INIT_WORK(&p2->wq, unmap_work);
118558 +#endif
118559 }
118560
118561 /* Import existing vmlist entries. */
118562 @@ -1333,6 +1430,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
118563 struct vm_struct *area;
118564
118565 BUG_ON(in_interrupt());
118566 +
118567 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
118568 + if (flags & VM_KERNEXEC) {
118569 + if (start != VMALLOC_START || end != VMALLOC_END)
118570 + return NULL;
118571 + start = (unsigned long)MODULES_EXEC_VADDR;
118572 + end = (unsigned long)MODULES_EXEC_END;
118573 + }
118574 +#endif
118575 +
118576 if (flags & VM_IOREMAP)
118577 align = 1ul << clamp_t(int, fls_long(size),
118578 PAGE_SHIFT, IOREMAP_MAX_ORDER);
118579 @@ -1345,7 +1452,9 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
118580 if (unlikely(!area))
118581 return NULL;
118582
118583 +#ifndef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118584 if (!(flags & VM_NO_GUARD))
118585 +#endif
118586 size += PAGE_SIZE;
118587
118588 va = alloc_vmap_area(size, align, start, end, node, gfp_mask);
118589 @@ -1531,13 +1640,36 @@ EXPORT_SYMBOL(vfree);
118590 */
118591 void vunmap(const void *addr)
118592 {
118593 - BUG_ON(in_interrupt());
118594 - might_sleep();
118595 - if (addr)
118596 + if (!addr)
118597 + return;
118598 + if (unlikely(in_interrupt())) {
118599 + struct vfree_deferred *p = this_cpu_ptr(&vunmap_deferred);
118600 + if (llist_add((struct llist_node *)addr, &p->list))
118601 + schedule_work(&p->wq);
118602 + } else {
118603 + might_sleep();
118604 __vunmap(addr, 0);
118605 + }
118606 }
118607 EXPORT_SYMBOL(vunmap);
118608
118609 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
118610 +void unmap_process_stacks(struct task_struct *task)
118611 +{
118612 + if (unlikely(in_interrupt())) {
118613 + struct stack_deferred *p = this_cpu_ptr(&stack_deferred);
118614 + struct stack_deferred_llist *list = task->stack;
118615 + list->stack = task->stack;
118616 + list->lowmem_stack = task->lowmem_stack;
118617 + if (llist_add((struct llist_node *)&list->list, &p->list.list))
118618 + schedule_work(&p->wq);
118619 + } else {
118620 + __vunmap(task->stack, 0);
118621 + free_kmem_pages((unsigned long)task->lowmem_stack, THREAD_SIZE_ORDER);
118622 + }
118623 +}
118624 +#endif
118625 +
118626 /**
118627 * vmap - map an array of pages into virtually contiguous space
118628 * @pages: array of page pointers
118629 @@ -1558,6 +1690,11 @@ void *vmap(struct page **pages, unsigned int count,
118630 if (count > totalram_pages)
118631 return NULL;
118632
118633 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
118634 + if (!(pgprot_val(prot) & _PAGE_NX))
118635 + flags |= VM_KERNEXEC;
118636 +#endif
118637 +
118638 area = get_vm_area_caller((count << PAGE_SHIFT), flags,
118639 __builtin_return_address(0));
118640 if (!area)
118641 @@ -1662,6 +1799,14 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
118642 if (!size || (size >> PAGE_SHIFT) > totalram_pages)
118643 goto fail;
118644
118645 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
118646 + if (!(pgprot_val(prot) & _PAGE_NX)) {
118647 + vm_flags |= VM_KERNEXEC;
118648 + start = VMALLOC_START;
118649 + end = VMALLOC_END;
118650 + }
118651 +#endif
118652 +
118653 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED |
118654 vm_flags, start, end, node, gfp_mask, caller);
118655 if (!area)
118656 @@ -1715,6 +1860,14 @@ static void *__vmalloc_node(unsigned long size, unsigned long align,
118657 gfp_mask, prot, 0, node, caller);
118658 }
118659
118660 +void *vmalloc_usercopy(unsigned long size)
118661 +{
118662 + return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
118663 + GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL,
118664 + VM_USERCOPY, NUMA_NO_NODE,
118665 + __builtin_return_address(0));
118666 +}
118667 +
118668 void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)
118669 {
118670 return __vmalloc_node(size, 1, gfp_mask, prot, NUMA_NO_NODE,
118671 @@ -1838,10 +1991,9 @@ EXPORT_SYMBOL(vzalloc_node);
118672 * For tight control over page level allocator and protection flags
118673 * use __vmalloc() instead.
118674 */
118675 -
118676 void *vmalloc_exec(unsigned long size)
118677 {
118678 - return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
118679 + return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL_EXEC,
118680 NUMA_NO_NODE, __builtin_return_address(0));
118681 }
118682
118683 @@ -2148,6 +2300,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
118684 {
118685 struct vm_struct *area;
118686
118687 + BUG_ON(vma->vm_mirror);
118688 +
118689 size = PAGE_ALIGN(size);
118690
118691 if (!PAGE_ALIGNED(uaddr) || !PAGE_ALIGNED(kaddr))
118692 @@ -2630,7 +2784,11 @@ static int s_show(struct seq_file *m, void *p)
118693 v->addr, v->addr + v->size, v->size);
118694
118695 if (v->caller)
118696 +#ifdef CONFIG_GRKERNSEC_HIDESYM
118697 + seq_printf(m, " %pK", v->caller);
118698 +#else
118699 seq_printf(m, " %pS", v->caller);
118700 +#endif
118701
118702 if (v->nr_pages)
118703 seq_printf(m, " pages=%d", v->nr_pages);
118704 @@ -2688,52 +2846,5 @@ static int __init proc_vmalloc_init(void)
118705 }
118706 module_init(proc_vmalloc_init);
118707
118708 -void get_vmalloc_info(struct vmalloc_info *vmi)
118709 -{
118710 - struct vmap_area *va;
118711 - unsigned long free_area_size;
118712 - unsigned long prev_end;
118713 -
118714 - vmi->used = 0;
118715 - vmi->largest_chunk = 0;
118716 -
118717 - prev_end = VMALLOC_START;
118718 -
118719 - rcu_read_lock();
118720 -
118721 - if (list_empty(&vmap_area_list)) {
118722 - vmi->largest_chunk = VMALLOC_TOTAL;
118723 - goto out;
118724 - }
118725 -
118726 - list_for_each_entry_rcu(va, &vmap_area_list, list) {
118727 - unsigned long addr = va->va_start;
118728 -
118729 - /*
118730 - * Some archs keep another range for modules in vmalloc space
118731 - */
118732 - if (addr < VMALLOC_START)
118733 - continue;
118734 - if (addr >= VMALLOC_END)
118735 - break;
118736 -
118737 - if (va->flags & (VM_LAZY_FREE | VM_LAZY_FREEING))
118738 - continue;
118739 -
118740 - vmi->used += (va->va_end - va->va_start);
118741 -
118742 - free_area_size = addr - prev_end;
118743 - if (vmi->largest_chunk < free_area_size)
118744 - vmi->largest_chunk = free_area_size;
118745 -
118746 - prev_end = va->va_end;
118747 - }
118748 -
118749 - if (VMALLOC_END - prev_end > vmi->largest_chunk)
118750 - vmi->largest_chunk = VMALLOC_END - prev_end;
118751 -
118752 -out:
118753 - rcu_read_unlock();
118754 -}
118755 #endif
118756
118757 diff --git a/mm/vmstat.c b/mm/vmstat.c
118758 index 4f5cd97..9fb715a 100644
118759 --- a/mm/vmstat.c
118760 +++ b/mm/vmstat.c
118761 @@ -27,6 +27,7 @@
118762 #include <linux/mm_inline.h>
118763 #include <linux/page_ext.h>
118764 #include <linux/page_owner.h>
118765 +#include <linux/grsecurity.h>
118766
118767 #include "internal.h"
118768
118769 @@ -86,7 +87,7 @@ void vm_events_fold_cpu(int cpu)
118770 *
118771 * vm_stat contains the global counters
118772 */
118773 -atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
118774 +atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
118775 EXPORT_SYMBOL(vm_stat);
118776
118777 #ifdef CONFIG_SMP
118778 @@ -438,7 +439,7 @@ static int fold_diff(int *diff)
118779
118780 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
118781 if (diff[i]) {
118782 - atomic_long_add(diff[i], &vm_stat[i]);
118783 + atomic_long_add_unchecked(diff[i], &vm_stat[i]);
118784 changes++;
118785 }
118786 return changes;
118787 @@ -476,7 +477,7 @@ static int refresh_cpu_vm_stats(void)
118788 v = this_cpu_xchg(p->vm_stat_diff[i], 0);
118789 if (v) {
118790
118791 - atomic_long_add(v, &zone->vm_stat[i]);
118792 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
118793 global_diff[i] += v;
118794 #ifdef CONFIG_NUMA
118795 /* 3 seconds idle till flush */
118796 @@ -540,7 +541,7 @@ void cpu_vm_stats_fold(int cpu)
118797
118798 v = p->vm_stat_diff[i];
118799 p->vm_stat_diff[i] = 0;
118800 - atomic_long_add(v, &zone->vm_stat[i]);
118801 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
118802 global_diff[i] += v;
118803 }
118804 }
118805 @@ -560,8 +561,8 @@ void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset)
118806 if (pset->vm_stat_diff[i]) {
118807 int v = pset->vm_stat_diff[i];
118808 pset->vm_stat_diff[i] = 0;
118809 - atomic_long_add(v, &zone->vm_stat[i]);
118810 - atomic_long_add(v, &vm_stat[i]);
118811 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
118812 + atomic_long_add_unchecked(v, &vm_stat[i]);
118813 }
118814 }
118815 #endif
118816 @@ -1293,10 +1294,22 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos)
118817 stat_items_size += sizeof(struct vm_event_state);
118818 #endif
118819
118820 - v = kmalloc(stat_items_size, GFP_KERNEL);
118821 + v = kzalloc(stat_items_size, GFP_KERNEL);
118822 m->private = v;
118823 if (!v)
118824 return ERR_PTR(-ENOMEM);
118825 +
118826 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
118827 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
118828 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
118829 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
118830 + && !in_group_p(grsec_proc_gid)
118831 +#endif
118832 + )
118833 + return (unsigned long *)m->private + *pos;
118834 +#endif
118835 +#endif
118836 +
118837 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
118838 v[i] = global_page_state(i);
118839 v += NR_VM_ZONE_STAT_ITEMS;
118840 @@ -1528,10 +1541,16 @@ static int __init setup_vmstat(void)
118841 cpu_notifier_register_done();
118842 #endif
118843 #ifdef CONFIG_PROC_FS
118844 - proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
118845 - proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops);
118846 - proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
118847 - proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
118848 + {
118849 + mode_t gr_mode = S_IRUGO;
118850 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
118851 + gr_mode = S_IRUSR;
118852 +#endif
118853 + proc_create("buddyinfo", gr_mode, NULL, &fragmentation_file_operations);
118854 + proc_create("pagetypeinfo", gr_mode, NULL, &pagetypeinfo_file_ops);
118855 + proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
118856 + proc_create("zoneinfo", gr_mode, NULL, &proc_zoneinfo_file_operations);
118857 + }
118858 #endif
118859 return 0;
118860 }
118861 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
118862 index d2cd9de..501c186 100644
118863 --- a/net/8021q/vlan.c
118864 +++ b/net/8021q/vlan.c
118865 @@ -491,7 +491,7 @@ out:
118866 return NOTIFY_DONE;
118867 }
118868
118869 -static struct notifier_block vlan_notifier_block __read_mostly = {
118870 +static struct notifier_block vlan_notifier_block = {
118871 .notifier_call = vlan_device_event,
118872 };
118873
118874 @@ -566,8 +566,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
118875 err = -EPERM;
118876 if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
118877 break;
118878 - if ((args.u.name_type >= 0) &&
118879 - (args.u.name_type < VLAN_NAME_TYPE_HIGHEST)) {
118880 + if (args.u.name_type < VLAN_NAME_TYPE_HIGHEST) {
118881 struct vlan_net *vn;
118882
118883 vn = net_generic(net, vlan_net_id);
118884 diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c
118885 index c92b52f..006c052 100644
118886 --- a/net/8021q/vlan_netlink.c
118887 +++ b/net/8021q/vlan_netlink.c
118888 @@ -245,7 +245,7 @@ static struct net *vlan_get_link_net(const struct net_device *dev)
118889 return dev_net(real_dev);
118890 }
118891
118892 -struct rtnl_link_ops vlan_link_ops __read_mostly = {
118893 +struct rtnl_link_ops vlan_link_ops = {
118894 .kind = "vlan",
118895 .maxtype = IFLA_VLAN_MAX,
118896 .policy = vlan_policy,
118897 diff --git a/net/9p/mod.c b/net/9p/mod.c
118898 index 6ab36ae..6f1841b 100644
118899 --- a/net/9p/mod.c
118900 +++ b/net/9p/mod.c
118901 @@ -84,7 +84,7 @@ static LIST_HEAD(v9fs_trans_list);
118902 void v9fs_register_trans(struct p9_trans_module *m)
118903 {
118904 spin_lock(&v9fs_trans_lock);
118905 - list_add_tail(&m->list, &v9fs_trans_list);
118906 + pax_list_add_tail((struct list_head *)&m->list, &v9fs_trans_list);
118907 spin_unlock(&v9fs_trans_lock);
118908 }
118909 EXPORT_SYMBOL(v9fs_register_trans);
118910 @@ -97,7 +97,7 @@ EXPORT_SYMBOL(v9fs_register_trans);
118911 void v9fs_unregister_trans(struct p9_trans_module *m)
118912 {
118913 spin_lock(&v9fs_trans_lock);
118914 - list_del_init(&m->list);
118915 + pax_list_del_init((struct list_head *)&m->list);
118916 spin_unlock(&v9fs_trans_lock);
118917 }
118918 EXPORT_SYMBOL(v9fs_unregister_trans);
118919 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
118920 index bced8c0..ef253b7 100644
118921 --- a/net/9p/trans_fd.c
118922 +++ b/net/9p/trans_fd.c
118923 @@ -428,7 +428,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
118924 oldfs = get_fs();
118925 set_fs(get_ds());
118926 /* The cast to a user pointer is valid due to the set_fs() */
118927 - ret = vfs_write(ts->wr, (__force void __user *)v, len, &ts->wr->f_pos);
118928 + ret = vfs_write(ts->wr, (void __force_user *)v, len, &ts->wr->f_pos);
118929 set_fs(oldfs);
118930
118931 if (ret <= 0 && ret != -ERESTARTSYS && ret != -EAGAIN)
118932 diff --git a/net/appletalk/atalk_proc.c b/net/appletalk/atalk_proc.c
118933 index af46bc4..f9adfcd 100644
118934 --- a/net/appletalk/atalk_proc.c
118935 +++ b/net/appletalk/atalk_proc.c
118936 @@ -256,7 +256,7 @@ int __init atalk_proc_init(void)
118937 struct proc_dir_entry *p;
118938 int rc = -ENOMEM;
118939
118940 - atalk_proc_dir = proc_mkdir("atalk", init_net.proc_net);
118941 + atalk_proc_dir = proc_mkdir_restrict("atalk", init_net.proc_net);
118942 if (!atalk_proc_dir)
118943 goto out;
118944
118945 diff --git a/net/atm/atm_misc.c b/net/atm/atm_misc.c
118946 index 876fbe8..8bbea9f 100644
118947 --- a/net/atm/atm_misc.c
118948 +++ b/net/atm/atm_misc.c
118949 @@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int truesize)
118950 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
118951 return 1;
118952 atm_return(vcc, truesize);
118953 - atomic_inc(&vcc->stats->rx_drop);
118954 + atomic_inc_unchecked(&vcc->stats->rx_drop);
118955 return 0;
118956 }
118957 EXPORT_SYMBOL(atm_charge);
118958 @@ -39,7 +39,7 @@ struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc, int pdu_size,
118959 }
118960 }
118961 atm_return(vcc, guess);
118962 - atomic_inc(&vcc->stats->rx_drop);
118963 + atomic_inc_unchecked(&vcc->stats->rx_drop);
118964 return NULL;
118965 }
118966 EXPORT_SYMBOL(atm_alloc_charge);
118967 @@ -86,7 +86,7 @@ EXPORT_SYMBOL(atm_pcr_goal);
118968
118969 void sonet_copy_stats(struct k_sonet_stats *from, struct sonet_stats *to)
118970 {
118971 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
118972 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
118973 __SONET_ITEMS
118974 #undef __HANDLE_ITEM
118975 }
118976 @@ -94,7 +94,7 @@ EXPORT_SYMBOL(sonet_copy_stats);
118977
118978 void sonet_subtract_stats(struct k_sonet_stats *from, struct sonet_stats *to)
118979 {
118980 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
118981 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i,&from->i)
118982 __SONET_ITEMS
118983 #undef __HANDLE_ITEM
118984 }
118985 diff --git a/net/atm/lec.c b/net/atm/lec.c
118986 index cd3b379..977a3c9 100644
118987 --- a/net/atm/lec.c
118988 +++ b/net/atm/lec.c
118989 @@ -111,9 +111,9 @@ static inline void lec_arp_put(struct lec_arp_table *entry)
118990 }
118991
118992 static struct lane2_ops lane2_ops = {
118993 - lane2_resolve, /* resolve, spec 3.1.3 */
118994 - lane2_associate_req, /* associate_req, spec 3.1.4 */
118995 - NULL /* associate indicator, spec 3.1.5 */
118996 + .resolve = lane2_resolve,
118997 + .associate_req = lane2_associate_req,
118998 + .associate_indicator = NULL
118999 };
119000
119001 static unsigned char bus_mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
119002 diff --git a/net/atm/lec.h b/net/atm/lec.h
119003 index 4149db1..f2ab682 100644
119004 --- a/net/atm/lec.h
119005 +++ b/net/atm/lec.h
119006 @@ -48,7 +48,7 @@ struct lane2_ops {
119007 const u8 *tlvs, u32 sizeoftlvs);
119008 void (*associate_indicator) (struct net_device *dev, const u8 *mac_addr,
119009 const u8 *tlvs, u32 sizeoftlvs);
119010 -};
119011 +} __no_const;
119012
119013 /*
119014 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType
119015 diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
119016 index d1b2d9a..d549f7f 100644
119017 --- a/net/atm/mpoa_caches.c
119018 +++ b/net/atm/mpoa_caches.c
119019 @@ -535,30 +535,30 @@ static void eg_destroy_cache(struct mpoa_client *mpc)
119020
119021
119022 static struct in_cache_ops ingress_ops = {
119023 - in_cache_add_entry, /* add_entry */
119024 - in_cache_get, /* get */
119025 - in_cache_get_with_mask, /* get_with_mask */
119026 - in_cache_get_by_vcc, /* get_by_vcc */
119027 - in_cache_put, /* put */
119028 - in_cache_remove_entry, /* remove_entry */
119029 - cache_hit, /* cache_hit */
119030 - clear_count_and_expired, /* clear_count */
119031 - check_resolving_entries, /* check_resolving */
119032 - refresh_entries, /* refresh */
119033 - in_destroy_cache /* destroy_cache */
119034 + .add_entry = in_cache_add_entry,
119035 + .get = in_cache_get,
119036 + .get_with_mask = in_cache_get_with_mask,
119037 + .get_by_vcc = in_cache_get_by_vcc,
119038 + .put = in_cache_put,
119039 + .remove_entry = in_cache_remove_entry,
119040 + .cache_hit = cache_hit,
119041 + .clear_count = clear_count_and_expired,
119042 + .check_resolving = check_resolving_entries,
119043 + .refresh = refresh_entries,
119044 + .destroy_cache = in_destroy_cache
119045 };
119046
119047 static struct eg_cache_ops egress_ops = {
119048 - eg_cache_add_entry, /* add_entry */
119049 - eg_cache_get_by_cache_id, /* get_by_cache_id */
119050 - eg_cache_get_by_tag, /* get_by_tag */
119051 - eg_cache_get_by_vcc, /* get_by_vcc */
119052 - eg_cache_get_by_src_ip, /* get_by_src_ip */
119053 - eg_cache_put, /* put */
119054 - eg_cache_remove_entry, /* remove_entry */
119055 - update_eg_cache_entry, /* update */
119056 - clear_expired, /* clear_expired */
119057 - eg_destroy_cache /* destroy_cache */
119058 + .add_entry = eg_cache_add_entry,
119059 + .get_by_cache_id = eg_cache_get_by_cache_id,
119060 + .get_by_tag = eg_cache_get_by_tag,
119061 + .get_by_vcc = eg_cache_get_by_vcc,
119062 + .get_by_src_ip = eg_cache_get_by_src_ip,
119063 + .put = eg_cache_put,
119064 + .remove_entry = eg_cache_remove_entry,
119065 + .update = update_eg_cache_entry,
119066 + .clear_expired = clear_expired,
119067 + .destroy_cache = eg_destroy_cache
119068 };
119069
119070
119071 diff --git a/net/atm/proc.c b/net/atm/proc.c
119072 index bbb6461..cf04016 100644
119073 --- a/net/atm/proc.c
119074 +++ b/net/atm/proc.c
119075 @@ -45,9 +45,9 @@ static void add_stats(struct seq_file *seq, const char *aal,
119076 const struct k_atm_aal_stats *stats)
119077 {
119078 seq_printf(seq, "%s ( %d %d %d %d %d )", aal,
119079 - atomic_read(&stats->tx), atomic_read(&stats->tx_err),
119080 - atomic_read(&stats->rx), atomic_read(&stats->rx_err),
119081 - atomic_read(&stats->rx_drop));
119082 + atomic_read_unchecked(&stats->tx),atomic_read_unchecked(&stats->tx_err),
119083 + atomic_read_unchecked(&stats->rx),atomic_read_unchecked(&stats->rx_err),
119084 + atomic_read_unchecked(&stats->rx_drop));
119085 }
119086
119087 static void atm_dev_info(struct seq_file *seq, const struct atm_dev *dev)
119088 diff --git a/net/atm/resources.c b/net/atm/resources.c
119089 index 0447d5d..3cf4728 100644
119090 --- a/net/atm/resources.c
119091 +++ b/net/atm/resources.c
119092 @@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
119093 static void copy_aal_stats(struct k_atm_aal_stats *from,
119094 struct atm_aal_stats *to)
119095 {
119096 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
119097 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
119098 __AAL_STAT_ITEMS
119099 #undef __HANDLE_ITEM
119100 }
119101 @@ -168,7 +168,7 @@ static void copy_aal_stats(struct k_atm_aal_stats *from,
119102 static void subtract_aal_stats(struct k_atm_aal_stats *from,
119103 struct atm_aal_stats *to)
119104 {
119105 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
119106 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i, &from->i)
119107 __AAL_STAT_ITEMS
119108 #undef __HANDLE_ITEM
119109 }
119110 diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
119111 index 919a5ce..cc6b444 100644
119112 --- a/net/ax25/sysctl_net_ax25.c
119113 +++ b/net/ax25/sysctl_net_ax25.c
119114 @@ -152,7 +152,7 @@ int ax25_register_dev_sysctl(ax25_dev *ax25_dev)
119115 {
119116 char path[sizeof("net/ax25/") + IFNAMSIZ];
119117 int k;
119118 - struct ctl_table *table;
119119 + ctl_table_no_const *table;
119120
119121 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL);
119122 if (!table)
119123 diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
119124 index 753383c..32d12d9 100644
119125 --- a/net/batman-adv/bat_iv_ogm.c
119126 +++ b/net/batman-adv/bat_iv_ogm.c
119127 @@ -343,7 +343,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
119128
119129 /* randomize initial seqno to avoid collision */
119130 get_random_bytes(&random_seqno, sizeof(random_seqno));
119131 - atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno);
119132 + atomic_set_unchecked(&hard_iface->bat_iv.ogm_seqno, random_seqno);
119133
119134 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN;
119135 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC);
119136 @@ -947,9 +947,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
119137 batadv_ogm_packet->tvlv_len = htons(tvlv_len);
119138
119139 /* change sequence number to network order */
119140 - seqno = (uint32_t)atomic_read(&hard_iface->bat_iv.ogm_seqno);
119141 + seqno = (uint32_t)atomic_read_unchecked(&hard_iface->bat_iv.ogm_seqno);
119142 batadv_ogm_packet->seqno = htonl(seqno);
119143 - atomic_inc(&hard_iface->bat_iv.ogm_seqno);
119144 + atomic_inc_unchecked(&hard_iface->bat_iv.ogm_seqno);
119145
119146 batadv_iv_ogm_slide_own_bcast_window(hard_iface);
119147
119148 @@ -1626,7 +1626,7 @@ static void batadv_iv_ogm_process(const struct sk_buff *skb, int ogm_offset,
119149 return;
119150
119151 /* could be changed by schedule_own_packet() */
119152 - if_incoming_seqno = atomic_read(&if_incoming->bat_iv.ogm_seqno);
119153 + if_incoming_seqno = atomic_read_unchecked(&if_incoming->bat_iv.ogm_seqno);
119154
119155 if (ogm_packet->flags & BATADV_DIRECTLINK)
119156 has_directlink_flag = true;
119157 diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
119158 index c0f0d01..725928a 100644
119159 --- a/net/batman-adv/fragmentation.c
119160 +++ b/net/batman-adv/fragmentation.c
119161 @@ -465,7 +465,7 @@ bool batadv_frag_send_packet(struct sk_buff *skb,
119162 frag_header.packet_type = BATADV_UNICAST_FRAG;
119163 frag_header.version = BATADV_COMPAT_VERSION;
119164 frag_header.ttl = BATADV_TTL;
119165 - frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno));
119166 + frag_header.seqno = htons(atomic_inc_return_unchecked(&bat_priv->frag_seqno));
119167 frag_header.reserved = 0;
119168 frag_header.no = 0;
119169 frag_header.total_size = htons(skb->len);
119170 diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
119171 index 51cda3a..a5db59e 100644
119172 --- a/net/batman-adv/soft-interface.c
119173 +++ b/net/batman-adv/soft-interface.c
119174 @@ -330,7 +330,7 @@ send:
119175 primary_if->net_dev->dev_addr);
119176
119177 /* set broadcast sequence number */
119178 - seqno = atomic_inc_return(&bat_priv->bcast_seqno);
119179 + seqno = atomic_inc_return_unchecked(&bat_priv->bcast_seqno);
119180 bcast_packet->seqno = htonl(seqno);
119181
119182 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay);
119183 @@ -798,7 +798,7 @@ static int batadv_softif_init_late(struct net_device *dev)
119184 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
119185
119186 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
119187 - atomic_set(&bat_priv->bcast_seqno, 1);
119188 + atomic_set_unchecked(&bat_priv->bcast_seqno, 1);
119189 atomic_set(&bat_priv->tt.vn, 0);
119190 atomic_set(&bat_priv->tt.local_changes, 0);
119191 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
119192 @@ -812,7 +812,7 @@ static int batadv_softif_init_late(struct net_device *dev)
119193
119194 /* randomize initial seqno to avoid collision */
119195 get_random_bytes(&random_seqno, sizeof(random_seqno));
119196 - atomic_set(&bat_priv->frag_seqno, random_seqno);
119197 + atomic_set_unchecked(&bat_priv->frag_seqno, random_seqno);
119198
119199 bat_priv->primary_if = NULL;
119200 bat_priv->num_ifaces = 0;
119201 @@ -1020,7 +1020,7 @@ int batadv_softif_is_valid(const struct net_device *net_dev)
119202 return 0;
119203 }
119204
119205 -struct rtnl_link_ops batadv_link_ops __read_mostly = {
119206 +struct rtnl_link_ops batadv_link_ops = {
119207 .kind = "batadv",
119208 .priv_size = sizeof(struct batadv_priv),
119209 .setup = batadv_softif_init_early,
119210 diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
119211 index 55610a8..aba2ae8 100644
119212 --- a/net/batman-adv/types.h
119213 +++ b/net/batman-adv/types.h
119214 @@ -81,7 +81,7 @@ enum batadv_dhcp_recipient {
119215 struct batadv_hard_iface_bat_iv {
119216 unsigned char *ogm_buff;
119217 int ogm_buff_len;
119218 - atomic_t ogm_seqno;
119219 + atomic_unchecked_t ogm_seqno;
119220 };
119221
119222 /**
119223 @@ -786,7 +786,7 @@ struct batadv_priv {
119224 atomic_t bonding;
119225 atomic_t fragmentation;
119226 atomic_t packet_size_max;
119227 - atomic_t frag_seqno;
119228 + atomic_unchecked_t frag_seqno;
119229 #ifdef CONFIG_BATMAN_ADV_BLA
119230 atomic_t bridge_loop_avoidance;
119231 #endif
119232 @@ -805,7 +805,7 @@ struct batadv_priv {
119233 #endif
119234 uint32_t isolation_mark;
119235 uint32_t isolation_mark_mask;
119236 - atomic_t bcast_seqno;
119237 + atomic_unchecked_t bcast_seqno;
119238 atomic_t bcast_queue_left;
119239 atomic_t batman_queue_left;
119240 char num_ifaces;
119241 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
119242 index f2d30d1..0573933 100644
119243 --- a/net/bluetooth/hci_sock.c
119244 +++ b/net/bluetooth/hci_sock.c
119245 @@ -1253,7 +1253,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
119246 uf.event_mask[1] = *((u32 *) f->event_mask + 1);
119247 }
119248
119249 - len = min_t(unsigned int, len, sizeof(uf));
119250 + len = min((size_t)len, sizeof(uf));
119251 if (copy_from_user(&uf, optval, len)) {
119252 err = -EFAULT;
119253 break;
119254 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
119255 index 45fffa4..c5ad848 100644
119256 --- a/net/bluetooth/l2cap_core.c
119257 +++ b/net/bluetooth/l2cap_core.c
119258 @@ -3537,8 +3537,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
119259 break;
119260
119261 case L2CAP_CONF_RFC:
119262 - if (olen == sizeof(rfc))
119263 - memcpy(&rfc, (void *)val, olen);
119264 + if (olen != sizeof(rfc))
119265 + break;
119266 +
119267 + memcpy(&rfc, (void *)val, olen);
119268
119269 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
119270 rfc.mode != chan->mode)
119271 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
119272 index 2442877..24ddcd1 100644
119273 --- a/net/bluetooth/l2cap_sock.c
119274 +++ b/net/bluetooth/l2cap_sock.c
119275 @@ -633,7 +633,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
119276 struct sock *sk = sock->sk;
119277 struct l2cap_chan *chan = l2cap_pi(sk)->chan;
119278 struct l2cap_options opts;
119279 - int len, err = 0;
119280 + int err = 0;
119281 + size_t len = optlen;
119282 u32 opt;
119283
119284 BT_DBG("sk %p", sk);
119285 @@ -660,7 +661,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
119286 opts.max_tx = chan->max_tx;
119287 opts.txwin_size = chan->tx_win;
119288
119289 - len = min_t(unsigned int, sizeof(opts), optlen);
119290 + len = min(sizeof(opts), len);
119291 if (copy_from_user((char *) &opts, optval, len)) {
119292 err = -EFAULT;
119293 break;
119294 @@ -747,7 +748,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
119295 struct bt_security sec;
119296 struct bt_power pwr;
119297 struct l2cap_conn *conn;
119298 - int len, err = 0;
119299 + int err = 0;
119300 + size_t len = optlen;
119301 u32 opt;
119302
119303 BT_DBG("sk %p", sk);
119304 @@ -771,7 +773,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
119305
119306 sec.level = BT_SECURITY_LOW;
119307
119308 - len = min_t(unsigned int, sizeof(sec), optlen);
119309 + len = min(sizeof(sec), len);
119310 if (copy_from_user((char *) &sec, optval, len)) {
119311 err = -EFAULT;
119312 break;
119313 @@ -867,7 +869,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
119314
119315 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
119316
119317 - len = min_t(unsigned int, sizeof(pwr), optlen);
119318 + len = min(sizeof(pwr), len);
119319 if (copy_from_user((char *) &pwr, optval, len)) {
119320 err = -EFAULT;
119321 break;
119322 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
119323 index 7511df7..a670df3 100644
119324 --- a/net/bluetooth/rfcomm/sock.c
119325 +++ b/net/bluetooth/rfcomm/sock.c
119326 @@ -690,7 +690,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
119327 struct sock *sk = sock->sk;
119328 struct bt_security sec;
119329 int err = 0;
119330 - size_t len;
119331 + size_t len = optlen;
119332 u32 opt;
119333
119334 BT_DBG("sk %p", sk);
119335 @@ -712,7 +712,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
119336
119337 sec.level = BT_SECURITY_LOW;
119338
119339 - len = min_t(unsigned int, sizeof(sec), optlen);
119340 + len = min(sizeof(sec), len);
119341 if (copy_from_user((char *) &sec, optval, len)) {
119342 err = -EFAULT;
119343 break;
119344 diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
119345 index 8e385a0..a5bdd8e 100644
119346 --- a/net/bluetooth/rfcomm/tty.c
119347 +++ b/net/bluetooth/rfcomm/tty.c
119348 @@ -752,7 +752,7 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
119349 BT_DBG("tty %p id %d", tty, tty->index);
119350
119351 BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst,
119352 - dev->channel, dev->port.count);
119353 + dev->channel, atomic_read(&dev->port.count));
119354
119355 err = tty_port_open(&dev->port, tty, filp);
119356 if (err)
119357 @@ -775,7 +775,7 @@ static void rfcomm_tty_close(struct tty_struct *tty, struct file *filp)
119358 struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data;
119359
119360 BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
119361 - dev->port.count);
119362 + atomic_read(&dev->port.count));
119363
119364 tty_port_close(&dev->port, tty, filp);
119365 }
119366 diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
119367 index 4d74a06..f37f9c2 100644
119368 --- a/net/bridge/br_netlink.c
119369 +++ b/net/bridge/br_netlink.c
119370 @@ -835,7 +835,7 @@ static struct rtnl_af_ops br_af_ops __read_mostly = {
119371 .get_link_af_size = br_get_link_af_size,
119372 };
119373
119374 -struct rtnl_link_ops br_link_ops __read_mostly = {
119375 +struct rtnl_link_ops br_link_ops = {
119376 .kind = "bridge",
119377 .priv_size = sizeof(struct net_bridge),
119378 .setup = br_dev_setup,
119379 diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
119380 index 18ca4b2..7e8d731 100644
119381 --- a/net/bridge/netfilter/ebtables.c
119382 +++ b/net/bridge/netfilter/ebtables.c
119383 @@ -1533,7 +1533,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
119384 tmp.valid_hooks = t->table->valid_hooks;
119385 }
119386 mutex_unlock(&ebt_mutex);
119387 - if (copy_to_user(user, &tmp, *len) != 0) {
119388 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
119389 BUGPRINT("c2u Didn't work\n");
119390 ret = -EFAULT;
119391 break;
119392 @@ -2339,7 +2339,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
119393 goto out;
119394 tmp.valid_hooks = t->valid_hooks;
119395
119396 - if (copy_to_user(user, &tmp, *len) != 0) {
119397 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
119398 ret = -EFAULT;
119399 break;
119400 }
119401 @@ -2350,7 +2350,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
119402 tmp.entries_size = t->table->entries_size;
119403 tmp.valid_hooks = t->table->valid_hooks;
119404
119405 - if (copy_to_user(user, &tmp, *len) != 0) {
119406 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
119407 ret = -EFAULT;
119408 break;
119409 }
119410 diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
119411 index f5afda1..dcf770a 100644
119412 --- a/net/caif/cfctrl.c
119413 +++ b/net/caif/cfctrl.c
119414 @@ -10,6 +10,7 @@
119415 #include <linux/spinlock.h>
119416 #include <linux/slab.h>
119417 #include <linux/pkt_sched.h>
119418 +#include <linux/sched.h>
119419 #include <net/caif/caif_layer.h>
119420 #include <net/caif/cfpkt.h>
119421 #include <net/caif/cfctrl.h>
119422 @@ -43,8 +44,8 @@ struct cflayer *cfctrl_create(void)
119423 memset(&dev_info, 0, sizeof(dev_info));
119424 dev_info.id = 0xff;
119425 cfsrvl_init(&this->serv, 0, &dev_info, false);
119426 - atomic_set(&this->req_seq_no, 1);
119427 - atomic_set(&this->rsp_seq_no, 1);
119428 + atomic_set_unchecked(&this->req_seq_no, 1);
119429 + atomic_set_unchecked(&this->rsp_seq_no, 1);
119430 this->serv.layer.receive = cfctrl_recv;
119431 sprintf(this->serv.layer.name, "ctrl");
119432 this->serv.layer.ctrlcmd = cfctrl_ctrlcmd;
119433 @@ -130,8 +131,8 @@ static void cfctrl_insert_req(struct cfctrl *ctrl,
119434 struct cfctrl_request_info *req)
119435 {
119436 spin_lock_bh(&ctrl->info_list_lock);
119437 - atomic_inc(&ctrl->req_seq_no);
119438 - req->sequence_no = atomic_read(&ctrl->req_seq_no);
119439 + atomic_inc_unchecked(&ctrl->req_seq_no);
119440 + req->sequence_no = atomic_read_unchecked(&ctrl->req_seq_no);
119441 list_add_tail(&req->list, &ctrl->list);
119442 spin_unlock_bh(&ctrl->info_list_lock);
119443 }
119444 @@ -149,7 +150,7 @@ static struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
119445 if (p != first)
119446 pr_warn("Requests are not received in order\n");
119447
119448 - atomic_set(&ctrl->rsp_seq_no,
119449 + atomic_set_unchecked(&ctrl->rsp_seq_no,
119450 p->sequence_no);
119451 list_del(&p->list);
119452 goto out;
119453 diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c
119454 index 67a4a36..8d28068 100644
119455 --- a/net/caif/chnl_net.c
119456 +++ b/net/caif/chnl_net.c
119457 @@ -515,7 +515,7 @@ static const struct nla_policy ipcaif_policy[IFLA_CAIF_MAX + 1] = {
119458 };
119459
119460
119461 -static struct rtnl_link_ops ipcaif_link_ops __read_mostly = {
119462 +static struct rtnl_link_ops ipcaif_link_ops = {
119463 .kind = "caif",
119464 .priv_size = sizeof(struct chnl_net),
119465 .setup = ipcaif_net_setup,
119466 diff --git a/net/can/af_can.c b/net/can/af_can.c
119467 index 166d436..2920816 100644
119468 --- a/net/can/af_can.c
119469 +++ b/net/can/af_can.c
119470 @@ -890,7 +890,7 @@ static const struct net_proto_family can_family_ops = {
119471 };
119472
119473 /* notifier block for netdevice event */
119474 -static struct notifier_block can_netdev_notifier __read_mostly = {
119475 +static struct notifier_block can_netdev_notifier = {
119476 .notifier_call = can_notifier,
119477 };
119478
119479 diff --git a/net/can/bcm.c b/net/can/bcm.c
119480 index a1ba687..aafaec5 100644
119481 --- a/net/can/bcm.c
119482 +++ b/net/can/bcm.c
119483 @@ -1620,7 +1620,7 @@ static int __init bcm_module_init(void)
119484 }
119485
119486 /* create /proc/net/can-bcm directory */
119487 - proc_dir = proc_mkdir("can-bcm", init_net.proc_net);
119488 + proc_dir = proc_mkdir_restrict("can-bcm", init_net.proc_net);
119489 return 0;
119490 }
119491
119492 diff --git a/net/can/gw.c b/net/can/gw.c
119493 index 4551687..4e82e9b 100644
119494 --- a/net/can/gw.c
119495 +++ b/net/can/gw.c
119496 @@ -80,7 +80,6 @@ MODULE_PARM_DESC(max_hops,
119497 "default: " __stringify(CGW_DEFAULT_HOPS) ")");
119498
119499 static HLIST_HEAD(cgw_list);
119500 -static struct notifier_block notifier;
119501
119502 static struct kmem_cache *cgw_cache __read_mostly;
119503
119504 @@ -992,6 +991,10 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh)
119505 return err;
119506 }
119507
119508 +static struct notifier_block notifier = {
119509 + .notifier_call = cgw_notifier
119510 +};
119511 +
119512 static __init int cgw_module_init(void)
119513 {
119514 /* sanitize given module parameter */
119515 @@ -1007,7 +1010,6 @@ static __init int cgw_module_init(void)
119516 return -ENOMEM;
119517
119518 /* set notifier */
119519 - notifier.notifier_call = cgw_notifier;
119520 register_netdevice_notifier(&notifier);
119521
119522 if (__rtnl_register(PF_CAN, RTM_GETROUTE, NULL, cgw_dump_jobs, NULL)) {
119523 diff --git a/net/can/proc.c b/net/can/proc.c
119524 index 1a19b98..df2b4ec 100644
119525 --- a/net/can/proc.c
119526 +++ b/net/can/proc.c
119527 @@ -514,7 +514,7 @@ static void can_remove_proc_readentry(const char *name)
119528 void can_init_proc(void)
119529 {
119530 /* create /proc/net/can directory */
119531 - can_dir = proc_mkdir("can", init_net.proc_net);
119532 + can_dir = proc_mkdir_restrict("can", init_net.proc_net);
119533
119534 if (!can_dir) {
119535 printk(KERN_INFO "can: failed to create /proc/net/can . "
119536 diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
119537 index e3be1d2..254c555 100644
119538 --- a/net/ceph/messenger.c
119539 +++ b/net/ceph/messenger.c
119540 @@ -189,7 +189,7 @@ static void con_fault(struct ceph_connection *con);
119541 #define MAX_ADDR_STR_LEN 64 /* 54 is enough */
119542
119543 static char addr_str[ADDR_STR_COUNT][MAX_ADDR_STR_LEN];
119544 -static atomic_t addr_str_seq = ATOMIC_INIT(0);
119545 +static atomic_unchecked_t addr_str_seq = ATOMIC_INIT(0);
119546
119547 static struct page *zero_page; /* used in certain error cases */
119548
119549 @@ -200,7 +200,7 @@ const char *ceph_pr_addr(const struct sockaddr_storage *ss)
119550 struct sockaddr_in *in4 = (struct sockaddr_in *) ss;
119551 struct sockaddr_in6 *in6 = (struct sockaddr_in6 *) ss;
119552
119553 - i = atomic_inc_return(&addr_str_seq) & ADDR_STR_COUNT_MASK;
119554 + i = atomic_inc_return_unchecked(&addr_str_seq) & ADDR_STR_COUNT_MASK;
119555 s = addr_str[i];
119556
119557 switch (ss->ss_family) {
119558 diff --git a/net/compat.c b/net/compat.c
119559 index 5cfd26a..7e43828 100644
119560 --- a/net/compat.c
119561 +++ b/net/compat.c
119562 @@ -98,20 +98,20 @@ int get_compat_msghdr(struct msghdr *kmsg,
119563
119564 #define CMSG_COMPAT_FIRSTHDR(msg) \
119565 (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ? \
119566 - (struct compat_cmsghdr __user *)((msg)->msg_control) : \
119567 + (struct compat_cmsghdr __force_user *)((msg)->msg_control) : \
119568 (struct compat_cmsghdr __user *)NULL)
119569
119570 #define CMSG_COMPAT_OK(ucmlen, ucmsg, mhdr) \
119571 ((ucmlen) >= sizeof(struct compat_cmsghdr) && \
119572 (ucmlen) <= (unsigned long) \
119573 ((mhdr)->msg_controllen - \
119574 - ((char *)(ucmsg) - (char *)(mhdr)->msg_control)))
119575 + ((char __force_kernel *)(ucmsg) - (char *)(mhdr)->msg_control)))
119576
119577 static inline struct compat_cmsghdr __user *cmsg_compat_nxthdr(struct msghdr *msg,
119578 struct compat_cmsghdr __user *cmsg, int cmsg_len)
119579 {
119580 char __user *ptr = (char __user *)cmsg + CMSG_COMPAT_ALIGN(cmsg_len);
119581 - if ((unsigned long)(ptr + 1 - (char __user *)msg->msg_control) >
119582 + if ((unsigned long)(ptr + 1 - (char __force_user *)msg->msg_control) >
119583 msg->msg_controllen)
119584 return NULL;
119585 return (struct compat_cmsghdr __user *)ptr;
119586 @@ -201,7 +201,7 @@ Efault:
119587
119588 int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
119589 {
119590 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
119591 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
119592 struct compat_cmsghdr cmhdr;
119593 struct compat_timeval ctv;
119594 struct compat_timespec cts[3];
119595 @@ -257,7 +257,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
119596
119597 void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
119598 {
119599 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
119600 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
119601 int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
119602 int fdnum = scm->fp->count;
119603 struct file **fp = scm->fp->fp;
119604 @@ -345,7 +345,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
119605 return -EFAULT;
119606 old_fs = get_fs();
119607 set_fs(KERNEL_DS);
119608 - err = sock_setsockopt(sock, level, optname, (char *)&ktime, sizeof(ktime));
119609 + err = sock_setsockopt(sock, level, optname, (char __force_user *)&ktime, sizeof(ktime));
119610 set_fs(old_fs);
119611
119612 return err;
119613 @@ -406,7 +406,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
119614 len = sizeof(ktime);
119615 old_fs = get_fs();
119616 set_fs(KERNEL_DS);
119617 - err = sock_getsockopt(sock, level, optname, (char *) &ktime, &len);
119618 + err = sock_getsockopt(sock, level, optname, (char __force_user *) &ktime, (int __force_user *)&len);
119619 set_fs(old_fs);
119620
119621 if (!err) {
119622 @@ -549,7 +549,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
119623 case MCAST_JOIN_GROUP:
119624 case MCAST_LEAVE_GROUP:
119625 {
119626 - struct compat_group_req __user *gr32 = (void *)optval;
119627 + struct compat_group_req __user *gr32 = (void __user *)optval;
119628 struct group_req __user *kgr =
119629 compat_alloc_user_space(sizeof(struct group_req));
119630 u32 interface;
119631 @@ -570,7 +570,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
119632 case MCAST_BLOCK_SOURCE:
119633 case MCAST_UNBLOCK_SOURCE:
119634 {
119635 - struct compat_group_source_req __user *gsr32 = (void *)optval;
119636 + struct compat_group_source_req __user *gsr32 = (void __user *)optval;
119637 struct group_source_req __user *kgsr = compat_alloc_user_space(
119638 sizeof(struct group_source_req));
119639 u32 interface;
119640 @@ -591,7 +591,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
119641 }
119642 case MCAST_MSFILTER:
119643 {
119644 - struct compat_group_filter __user *gf32 = (void *)optval;
119645 + struct compat_group_filter __user *gf32 = (void __user *)optval;
119646 struct group_filter __user *kgf;
119647 u32 interface, fmode, numsrc;
119648
119649 @@ -629,7 +629,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
119650 char __user *optval, int __user *optlen,
119651 int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
119652 {
119653 - struct compat_group_filter __user *gf32 = (void *)optval;
119654 + struct compat_group_filter __user *gf32 = (void __user *)optval;
119655 struct group_filter __user *kgf;
119656 int __user *koptlen;
119657 u32 interface, fmode, numsrc;
119658 @@ -773,7 +773,7 @@ COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args)
119659
119660 if (call < SYS_SOCKET || call > SYS_SENDMMSG)
119661 return -EINVAL;
119662 - if (copy_from_user(a, args, nas[call]))
119663 + if (nas[call] > sizeof a || copy_from_user(a, args, nas[call]))
119664 return -EFAULT;
119665 a0 = a[0];
119666 a1 = a[1];
119667 diff --git a/net/core/datagram.c b/net/core/datagram.c
119668 index 617088a..0364f4f 100644
119669 --- a/net/core/datagram.c
119670 +++ b/net/core/datagram.c
119671 @@ -338,7 +338,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
119672 }
119673
119674 kfree_skb(skb);
119675 - atomic_inc(&sk->sk_drops);
119676 + atomic_inc_unchecked(&sk->sk_drops);
119677 sk_mem_reclaim_partial(sk);
119678
119679 return err;
119680 diff --git a/net/core/dev.c b/net/core/dev.c
119681 index a8e4dd4..aab06f7 100644
119682 --- a/net/core/dev.c
119683 +++ b/net/core/dev.c
119684 @@ -1721,7 +1721,7 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
119685 {
119686 if (skb_orphan_frags(skb, GFP_ATOMIC) ||
119687 unlikely(!is_skb_forwardable(dev, skb))) {
119688 - atomic_long_inc(&dev->rx_dropped);
119689 + atomic_long_inc_unchecked(&dev->rx_dropped);
119690 kfree_skb(skb);
119691 return NET_RX_DROP;
119692 }
119693 @@ -3125,7 +3125,7 @@ recursion_alert:
119694 drop:
119695 rcu_read_unlock_bh();
119696
119697 - atomic_long_inc(&dev->tx_dropped);
119698 + atomic_long_inc_unchecked(&dev->tx_dropped);
119699 kfree_skb_list(skb);
119700 return rc;
119701 out:
119702 @@ -3477,7 +3477,7 @@ drop:
119703
119704 local_irq_restore(flags);
119705
119706 - atomic_long_inc(&skb->dev->rx_dropped);
119707 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
119708 kfree_skb(skb);
119709 return NET_RX_DROP;
119710 }
119711 @@ -3554,7 +3554,7 @@ int netif_rx_ni(struct sk_buff *skb)
119712 }
119713 EXPORT_SYMBOL(netif_rx_ni);
119714
119715 -static void net_tx_action(struct softirq_action *h)
119716 +static __latent_entropy void net_tx_action(void)
119717 {
119718 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
119719
119720 @@ -3892,7 +3892,7 @@ ncls:
119721 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
119722 } else {
119723 drop:
119724 - atomic_long_inc(&skb->dev->rx_dropped);
119725 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
119726 kfree_skb(skb);
119727 /* Jamal, now you will not able to escape explaining
119728 * me how you were going to use this. :-)
119729 @@ -4783,7 +4783,7 @@ out_unlock:
119730 return work;
119731 }
119732
119733 -static void net_rx_action(struct softirq_action *h)
119734 +static __latent_entropy void net_rx_action(void)
119735 {
119736 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
119737 unsigned long time_limit = jiffies + 2;
119738 @@ -6843,8 +6843,8 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
119739 } else {
119740 netdev_stats_to_stats64(storage, &dev->stats);
119741 }
119742 - storage->rx_dropped += atomic_long_read(&dev->rx_dropped);
119743 - storage->tx_dropped += atomic_long_read(&dev->tx_dropped);
119744 + storage->rx_dropped += atomic_long_read_unchecked(&dev->rx_dropped);
119745 + storage->tx_dropped += atomic_long_read_unchecked(&dev->tx_dropped);
119746 return storage;
119747 }
119748 EXPORT_SYMBOL(dev_get_stats);
119749 diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
119750 index b94b1d2..da3ed7c 100644
119751 --- a/net/core/dev_ioctl.c
119752 +++ b/net/core/dev_ioctl.c
119753 @@ -368,8 +368,13 @@ void dev_load(struct net *net, const char *name)
119754 no_module = !dev;
119755 if (no_module && capable(CAP_NET_ADMIN))
119756 no_module = request_module("netdev-%s", name);
119757 - if (no_module && capable(CAP_SYS_MODULE))
119758 + if (no_module && capable(CAP_SYS_MODULE)) {
119759 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
119760 + ___request_module(true, "grsec_modharden_netdev", "%s", name);
119761 +#else
119762 request_module("%s", name);
119763 +#endif
119764 + }
119765 }
119766 EXPORT_SYMBOL(dev_load);
119767
119768 diff --git a/net/core/filter.c b/net/core/filter.c
119769 index 8dcdd86..a809731 100644
119770 --- a/net/core/filter.c
119771 +++ b/net/core/filter.c
119772 @@ -582,7 +582,11 @@ do_pass:
119773
119774 /* Unknown instruction. */
119775 default:
119776 - goto err;
119777 + WARN(1, KERN_ALERT "Unknown sock filter code:%u jt:%u tf:%u k:%u\n",
119778 + fp->code, fp->jt, fp->jf, fp->k);
119779 + kfree(addrs);
119780 + BUG();
119781 + return -EINVAL;
119782 }
119783
119784 insn++;
119785 @@ -626,7 +630,7 @@ static int check_load_and_stores(const struct sock_filter *filter, int flen)
119786 u16 *masks, memvalid = 0; /* One bit per cell, 16 cells */
119787 int pc, ret = 0;
119788
119789 - BUILD_BUG_ON(BPF_MEMWORDS > 16);
119790 + BUILD_BUG_ON(BPF_MEMWORDS != 16);
119791
119792 masks = kmalloc_array(flen, sizeof(*masks), GFP_KERNEL);
119793 if (!masks)
119794 @@ -1055,7 +1059,7 @@ int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog)
119795 if (!fp)
119796 return -ENOMEM;
119797
119798 - memcpy(fp->insns, fprog->filter, fsize);
119799 + memcpy(fp->insns, (void __force_kernel *)fprog->filter, fsize);
119800
119801 fp->len = fprog->len;
119802 /* Since unattached filters are not copied back to user
119803 diff --git a/net/core/flow.c b/net/core/flow.c
119804 index 1033725..340f65d 100644
119805 --- a/net/core/flow.c
119806 +++ b/net/core/flow.c
119807 @@ -65,7 +65,7 @@ static void flow_cache_new_hashrnd(unsigned long arg)
119808 static int flow_entry_valid(struct flow_cache_entry *fle,
119809 struct netns_xfrm *xfrm)
119810 {
119811 - if (atomic_read(&xfrm->flow_cache_genid) != fle->genid)
119812 + if (atomic_read_unchecked(&xfrm->flow_cache_genid) != fle->genid)
119813 return 0;
119814 if (fle->object && !fle->object->ops->check(fle->object))
119815 return 0;
119816 @@ -242,7 +242,7 @@ flow_cache_lookup(struct net *net, const struct flowi *key, u16 family, u8 dir,
119817 hlist_add_head(&fle->u.hlist, &fcp->hash_table[hash]);
119818 fcp->hash_count++;
119819 }
119820 - } else if (likely(fle->genid == atomic_read(&net->xfrm.flow_cache_genid))) {
119821 + } else if (likely(fle->genid == atomic_read_unchecked(&net->xfrm.flow_cache_genid))) {
119822 flo = fle->object;
119823 if (!flo)
119824 goto ret_object;
119825 @@ -263,7 +263,7 @@ nocache:
119826 }
119827 flo = resolver(net, key, family, dir, flo, ctx);
119828 if (fle) {
119829 - fle->genid = atomic_read(&net->xfrm.flow_cache_genid);
119830 + fle->genid = atomic_read_unchecked(&net->xfrm.flow_cache_genid);
119831 if (!IS_ERR(flo))
119832 fle->object = flo;
119833 else
119834 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
119835 index 84195da..035c7a7 100644
119836 --- a/net/core/neighbour.c
119837 +++ b/net/core/neighbour.c
119838 @@ -2821,7 +2821,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
119839 void __user *buffer, size_t *lenp, loff_t *ppos)
119840 {
119841 int size, ret;
119842 - struct ctl_table tmp = *ctl;
119843 + ctl_table_no_const tmp = *ctl;
119844
119845 tmp.extra1 = &zero;
119846 tmp.extra2 = &unres_qlen_max;
119847 @@ -2883,7 +2883,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
119848 void __user *buffer,
119849 size_t *lenp, loff_t *ppos)
119850 {
119851 - struct ctl_table tmp = *ctl;
119852 + ctl_table_no_const tmp = *ctl;
119853 int ret;
119854
119855 tmp.extra1 = &zero;
119856 diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c
119857 index 2bf8329..2eb1423 100644
119858 --- a/net/core/net-procfs.c
119859 +++ b/net/core/net-procfs.c
119860 @@ -79,7 +79,13 @@ static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev)
119861 struct rtnl_link_stats64 temp;
119862 const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
119863
119864 - seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
119865 + if (gr_proc_is_restricted())
119866 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
119867 + "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
119868 + dev->name, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL,
119869 + 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL);
119870 + else
119871 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
119872 "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
119873 dev->name, stats->rx_bytes, stats->rx_packets,
119874 stats->rx_errors,
119875 @@ -166,7 +172,7 @@ static int softnet_seq_show(struct seq_file *seq, void *v)
119876 return 0;
119877 }
119878
119879 -static const struct seq_operations dev_seq_ops = {
119880 +const struct seq_operations dev_seq_ops = {
119881 .start = dev_seq_start,
119882 .next = dev_seq_next,
119883 .stop = dev_seq_stop,
119884 @@ -196,7 +202,7 @@ static const struct seq_operations softnet_seq_ops = {
119885
119886 static int softnet_seq_open(struct inode *inode, struct file *file)
119887 {
119888 - return seq_open(file, &softnet_seq_ops);
119889 + return seq_open_restrict(file, &softnet_seq_ops);
119890 }
119891
119892 static const struct file_operations softnet_seq_fops = {
119893 @@ -283,8 +289,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
119894 else
119895 seq_printf(seq, "%04x", ntohs(pt->type));
119896
119897 +#ifdef CONFIG_GRKERNSEC_HIDESYM
119898 + seq_printf(seq, " %-8s %pf\n",
119899 + pt->dev ? pt->dev->name : "", NULL);
119900 +#else
119901 seq_printf(seq, " %-8s %pf\n",
119902 pt->dev ? pt->dev->name : "", pt->func);
119903 +#endif
119904 }
119905
119906 return 0;
119907 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
119908 index 18b34d7..faecc1d 100644
119909 --- a/net/core/net-sysfs.c
119910 +++ b/net/core/net-sysfs.c
119911 @@ -288,7 +288,7 @@ static ssize_t carrier_changes_show(struct device *dev,
119912 {
119913 struct net_device *netdev = to_net_dev(dev);
119914 return sprintf(buf, fmt_dec,
119915 - atomic_read(&netdev->carrier_changes));
119916 + atomic_read_unchecked(&netdev->carrier_changes));
119917 }
119918 static DEVICE_ATTR_RO(carrier_changes);
119919
119920 diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
119921 index 2c2eb1b..a53be3e 100644
119922 --- a/net/core/net_namespace.c
119923 +++ b/net/core/net_namespace.c
119924 @@ -775,7 +775,7 @@ static int __register_pernet_operations(struct list_head *list,
119925 int error;
119926 LIST_HEAD(net_exit_list);
119927
119928 - list_add_tail(&ops->list, list);
119929 + pax_list_add_tail((struct list_head *)&ops->list, list);
119930 if (ops->init || (ops->id && ops->size)) {
119931 for_each_net(net) {
119932 error = ops_init(ops, net);
119933 @@ -788,7 +788,7 @@ static int __register_pernet_operations(struct list_head *list,
119934
119935 out_undo:
119936 /* If I have an error cleanup all namespaces I initialized */
119937 - list_del(&ops->list);
119938 + pax_list_del((struct list_head *)&ops->list);
119939 ops_exit_list(ops, &net_exit_list);
119940 ops_free_list(ops, &net_exit_list);
119941 return error;
119942 @@ -799,7 +799,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
119943 struct net *net;
119944 LIST_HEAD(net_exit_list);
119945
119946 - list_del(&ops->list);
119947 + pax_list_del((struct list_head *)&ops->list);
119948 for_each_net(net)
119949 list_add_tail(&net->exit_list, &net_exit_list);
119950 ops_exit_list(ops, &net_exit_list);
119951 @@ -933,7 +933,7 @@ int register_pernet_device(struct pernet_operations *ops)
119952 mutex_lock(&net_mutex);
119953 error = register_pernet_operations(&pernet_list, ops);
119954 if (!error && (first_device == &pernet_list))
119955 - first_device = &ops->list;
119956 + first_device = (struct list_head *)&ops->list;
119957 mutex_unlock(&net_mutex);
119958 return error;
119959 }
119960 diff --git a/net/core/netpoll.c b/net/core/netpoll.c
119961 index c126a87..10ad89d 100644
119962 --- a/net/core/netpoll.c
119963 +++ b/net/core/netpoll.c
119964 @@ -377,7 +377,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
119965 struct udphdr *udph;
119966 struct iphdr *iph;
119967 struct ethhdr *eth;
119968 - static atomic_t ip_ident;
119969 + static atomic_unchecked_t ip_ident;
119970 struct ipv6hdr *ip6h;
119971
119972 udp_len = len + sizeof(*udph);
119973 @@ -448,7 +448,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
119974 put_unaligned(0x45, (unsigned char *)iph);
119975 iph->tos = 0;
119976 put_unaligned(htons(ip_len), &(iph->tot_len));
119977 - iph->id = htons(atomic_inc_return(&ip_ident));
119978 + iph->id = htons(atomic_inc_return_unchecked(&ip_ident));
119979 iph->frag_off = 0;
119980 iph->ttl = 64;
119981 iph->protocol = IPPROTO_UDP;
119982 diff --git a/net/core/pktgen.c b/net/core/pktgen.c
119983 index 1cbd209..9553598 100644
119984 --- a/net/core/pktgen.c
119985 +++ b/net/core/pktgen.c
119986 @@ -3828,7 +3828,7 @@ static int __net_init pg_net_init(struct net *net)
119987 pn->net = net;
119988 INIT_LIST_HEAD(&pn->pktgen_threads);
119989 pn->pktgen_exiting = false;
119990 - pn->proc_dir = proc_mkdir(PG_PROC_DIR, pn->net->proc_net);
119991 + pn->proc_dir = proc_mkdir_restrict(PG_PROC_DIR, pn->net->proc_net);
119992 if (!pn->proc_dir) {
119993 pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
119994 return -ENODEV;
119995 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
119996 index 0861018..1fd388b 100644
119997 --- a/net/core/rtnetlink.c
119998 +++ b/net/core/rtnetlink.c
119999 @@ -61,7 +61,7 @@ struct rtnl_link {
120000 rtnl_doit_func doit;
120001 rtnl_dumpit_func dumpit;
120002 rtnl_calcit_func calcit;
120003 -};
120004 +} __no_const;
120005
120006 static DEFINE_MUTEX(rtnl_mutex);
120007
120008 @@ -307,10 +307,13 @@ int __rtnl_link_register(struct rtnl_link_ops *ops)
120009 * to use the ops for creating device. So do not
120010 * fill up dellink as well. That disables rtnl_dellink.
120011 */
120012 - if (ops->setup && !ops->dellink)
120013 - ops->dellink = unregister_netdevice_queue;
120014 + if (ops->setup && !ops->dellink) {
120015 + pax_open_kernel();
120016 + *(void **)&ops->dellink = unregister_netdevice_queue;
120017 + pax_close_kernel();
120018 + }
120019
120020 - list_add_tail(&ops->list, &link_ops);
120021 + pax_list_add_tail((struct list_head *)&ops->list, &link_ops);
120022 return 0;
120023 }
120024 EXPORT_SYMBOL_GPL(__rtnl_link_register);
120025 @@ -357,7 +360,7 @@ void __rtnl_link_unregister(struct rtnl_link_ops *ops)
120026 for_each_net(net) {
120027 __rtnl_kill_links(net, ops);
120028 }
120029 - list_del(&ops->list);
120030 + pax_list_del((struct list_head *)&ops->list);
120031 }
120032 EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
120033
120034 @@ -1082,7 +1085,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
120035 (dev->ifalias &&
120036 nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
120037 nla_put_u32(skb, IFLA_CARRIER_CHANGES,
120038 - atomic_read(&dev->carrier_changes)))
120039 + atomic_read_unchecked(&dev->carrier_changes)))
120040 goto nla_put_failure;
120041
120042 if (1) {
120043 diff --git a/net/core/scm.c b/net/core/scm.c
120044 index 3b6899b..20d20e7 100644
120045 --- a/net/core/scm.c
120046 +++ b/net/core/scm.c
120047 @@ -209,9 +209,9 @@ EXPORT_SYMBOL(__scm_send);
120048 int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
120049 {
120050 struct cmsghdr __user *cm
120051 - = (__force struct cmsghdr __user *)msg->msg_control;
120052 + = (struct cmsghdr __force_user *)msg->msg_control;
120053 struct cmsghdr cmhdr;
120054 - int cmlen = CMSG_LEN(len);
120055 + size_t cmlen = CMSG_LEN(len);
120056 int err;
120057
120058 if (MSG_CMSG_COMPAT & msg->msg_flags)
120059 @@ -232,7 +232,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
120060 err = -EFAULT;
120061 if (copy_to_user(cm, &cmhdr, sizeof cmhdr))
120062 goto out;
120063 - if (copy_to_user(CMSG_DATA(cm), data, cmlen - sizeof(struct cmsghdr)))
120064 + if (copy_to_user((void __force_user *)CMSG_DATA((void __force_kernel *)cm), data, cmlen - sizeof(struct cmsghdr)))
120065 goto out;
120066 cmlen = CMSG_SPACE(len);
120067 if (msg->msg_controllen < cmlen)
120068 @@ -248,7 +248,7 @@ EXPORT_SYMBOL(put_cmsg);
120069 void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120070 {
120071 struct cmsghdr __user *cm
120072 - = (__force struct cmsghdr __user*)msg->msg_control;
120073 + = (struct cmsghdr __force_user *)msg->msg_control;
120074
120075 int fdmax = 0;
120076 int fdnum = scm->fp->count;
120077 @@ -268,7 +268,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120078 if (fdnum < fdmax)
120079 fdmax = fdnum;
120080
120081 - for (i=0, cmfptr=(__force int __user *)CMSG_DATA(cm); i<fdmax;
120082 + for (i=0, cmfptr=(int __force_user *)CMSG_DATA((void __force_kernel *)cm); i<fdmax;
120083 i++, cmfptr++)
120084 {
120085 struct socket *sock;
120086 @@ -297,7 +297,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120087
120088 if (i > 0)
120089 {
120090 - int cmlen = CMSG_LEN(i*sizeof(int));
120091 + size_t cmlen = CMSG_LEN(i*sizeof(int));
120092 err = put_user(SOL_SOCKET, &cm->cmsg_level);
120093 if (!err)
120094 err = put_user(SCM_RIGHTS, &cm->cmsg_type);
120095 @@ -305,6 +305,8 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
120096 err = put_user(cmlen, &cm->cmsg_len);
120097 if (!err) {
120098 cmlen = CMSG_SPACE(i*sizeof(int));
120099 + if (msg->msg_controllen < cmlen)
120100 + cmlen = msg->msg_controllen;
120101 msg->msg_control += cmlen;
120102 msg->msg_controllen -= cmlen;
120103 }
120104 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
120105 index 7bfa187..032715a 100644
120106 --- a/net/core/skbuff.c
120107 +++ b/net/core/skbuff.c
120108 @@ -2103,7 +2103,7 @@ EXPORT_SYMBOL(__skb_checksum);
120109 __wsum skb_checksum(const struct sk_buff *skb, int offset,
120110 int len, __wsum csum)
120111 {
120112 - const struct skb_checksum_ops ops = {
120113 + static const struct skb_checksum_ops ops = {
120114 .update = csum_partial_ext,
120115 .combine = csum_block_add_ext,
120116 };
120117 @@ -3318,12 +3318,14 @@ void __init skb_init(void)
120118 skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
120119 sizeof(struct sk_buff),
120120 0,
120121 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
120122 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
120123 + SLAB_NO_SANITIZE,
120124 NULL);
120125 skbuff_fclone_cache = kmem_cache_create("skbuff_fclone_cache",
120126 sizeof(struct sk_buff_fclones),
120127 0,
120128 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
120129 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
120130 + SLAB_NO_SANITIZE,
120131 NULL);
120132 }
120133
120134 diff --git a/net/core/sock.c b/net/core/sock.c
120135 index 193901d..33094ab 100644
120136 --- a/net/core/sock.c
120137 +++ b/net/core/sock.c
120138 @@ -441,7 +441,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
120139 struct sk_buff_head *list = &sk->sk_receive_queue;
120140
120141 if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) {
120142 - atomic_inc(&sk->sk_drops);
120143 + atomic_inc_unchecked(&sk->sk_drops);
120144 trace_sock_rcvqueue_full(sk, skb);
120145 return -ENOMEM;
120146 }
120147 @@ -451,7 +451,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
120148 return err;
120149
120150 if (!sk_rmem_schedule(sk, skb, skb->truesize)) {
120151 - atomic_inc(&sk->sk_drops);
120152 + atomic_inc_unchecked(&sk->sk_drops);
120153 return -ENOBUFS;
120154 }
120155
120156 @@ -484,7 +484,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
120157 skb->dev = NULL;
120158
120159 if (sk_rcvqueues_full(sk, sk->sk_rcvbuf)) {
120160 - atomic_inc(&sk->sk_drops);
120161 + atomic_inc_unchecked(&sk->sk_drops);
120162 goto discard_and_relse;
120163 }
120164 if (nested)
120165 @@ -502,7 +502,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
120166 mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
120167 } else if (sk_add_backlog(sk, skb, sk->sk_rcvbuf)) {
120168 bh_unlock_sock(sk);
120169 - atomic_inc(&sk->sk_drops);
120170 + atomic_inc_unchecked(&sk->sk_drops);
120171 goto discard_and_relse;
120172 }
120173
120174 @@ -908,6 +908,7 @@ set_rcvbuf:
120175 }
120176 break;
120177
120178 +#ifndef GRKERNSEC_BPF_HARDEN
120179 case SO_ATTACH_BPF:
120180 ret = -EINVAL;
120181 if (optlen == sizeof(u32)) {
120182 @@ -920,7 +921,7 @@ set_rcvbuf:
120183 ret = sk_attach_bpf(ufd, sk);
120184 }
120185 break;
120186 -
120187 +#endif
120188 case SO_DETACH_FILTER:
120189 ret = sk_detach_filter(sk);
120190 break;
120191 @@ -1022,12 +1023,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
120192 struct timeval tm;
120193 } v;
120194
120195 - int lv = sizeof(int);
120196 - int len;
120197 + unsigned int lv = sizeof(int);
120198 + unsigned int len;
120199
120200 if (get_user(len, optlen))
120201 return -EFAULT;
120202 - if (len < 0)
120203 + if (len > INT_MAX)
120204 return -EINVAL;
120205
120206 memset(&v, 0, sizeof(v));
120207 @@ -1165,11 +1166,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
120208
120209 case SO_PEERNAME:
120210 {
120211 - char address[128];
120212 + char address[_K_SS_MAXSIZE];
120213
120214 if (sock->ops->getname(sock, (struct sockaddr *)address, &lv, 2))
120215 return -ENOTCONN;
120216 - if (lv < len)
120217 + if (lv < len || sizeof address < len)
120218 return -EINVAL;
120219 if (copy_to_user(optval, address, len))
120220 return -EFAULT;
120221 @@ -1257,7 +1258,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
120222
120223 if (len > lv)
120224 len = lv;
120225 - if (copy_to_user(optval, &v, len))
120226 + if (len > sizeof(v) || copy_to_user(optval, &v, len))
120227 return -EFAULT;
120228 lenout:
120229 if (put_user(len, optlen))
120230 @@ -1550,7 +1551,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
120231 newsk->sk_err = 0;
120232 newsk->sk_priority = 0;
120233 newsk->sk_incoming_cpu = raw_smp_processor_id();
120234 - atomic64_set(&newsk->sk_cookie, 0);
120235 + atomic64_set_unchecked(&newsk->sk_cookie, 0);
120236 /*
120237 * Before updating sk_refcnt, we must commit prior changes to memory
120238 * (Documentation/RCU/rculist_nulls.txt for details)
120239 @@ -2359,7 +2360,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
120240 */
120241 smp_wmb();
120242 atomic_set(&sk->sk_refcnt, 1);
120243 - atomic_set(&sk->sk_drops, 0);
120244 + atomic_set_unchecked(&sk->sk_drops, 0);
120245 }
120246 EXPORT_SYMBOL(sock_init_data);
120247
120248 @@ -2487,6 +2488,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
120249 int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
120250 int level, int type)
120251 {
120252 + struct sock_extended_err ee;
120253 struct sock_exterr_skb *serr;
120254 struct sk_buff *skb;
120255 int copied, err;
120256 @@ -2508,7 +2510,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
120257 sock_recv_timestamp(msg, sk, skb);
120258
120259 serr = SKB_EXT_ERR(skb);
120260 - put_cmsg(msg, level, type, sizeof(serr->ee), &serr->ee);
120261 + ee = serr->ee;
120262 + put_cmsg(msg, level, type, sizeof ee, &ee);
120263
120264 msg->msg_flags |= MSG_ERRQUEUE;
120265 err = copied;
120266 diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
120267 index 817622f..2577b26 100644
120268 --- a/net/core/sock_diag.c
120269 +++ b/net/core/sock_diag.c
120270 @@ -12,7 +12,7 @@
120271 #include <linux/inet_diag.h>
120272 #include <linux/sock_diag.h>
120273
120274 -static const struct sock_diag_handler *sock_diag_handlers[AF_MAX];
120275 +static const struct sock_diag_handler *sock_diag_handlers[AF_MAX] __read_only;
120276 static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
120277 static DEFINE_MUTEX(sock_diag_table_mutex);
120278 static struct workqueue_struct *broadcast_wq;
120279 @@ -20,12 +20,12 @@ static struct workqueue_struct *broadcast_wq;
120280 static u64 sock_gen_cookie(struct sock *sk)
120281 {
120282 while (1) {
120283 - u64 res = atomic64_read(&sk->sk_cookie);
120284 + u64 res = atomic64_read_unchecked(&sk->sk_cookie);
120285
120286 if (res)
120287 return res;
120288 - res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
120289 - atomic64_cmpxchg(&sk->sk_cookie, 0, res);
120290 + res = atomic64_inc_return_unchecked(&sock_net(sk)->cookie_gen);
120291 + atomic64_cmpxchg_unchecked(&sk->sk_cookie, 0, res);
120292 }
120293 }
120294
120295 @@ -190,8 +190,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
120296 mutex_lock(&sock_diag_table_mutex);
120297 if (sock_diag_handlers[hndl->family])
120298 err = -EBUSY;
120299 - else
120300 + else {
120301 + pax_open_kernel();
120302 sock_diag_handlers[hndl->family] = hndl;
120303 + pax_close_kernel();
120304 + }
120305 mutex_unlock(&sock_diag_table_mutex);
120306
120307 return err;
120308 @@ -207,7 +210,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
120309
120310 mutex_lock(&sock_diag_table_mutex);
120311 BUG_ON(sock_diag_handlers[family] != hnld);
120312 + pax_open_kernel();
120313 sock_diag_handlers[family] = NULL;
120314 + pax_close_kernel();
120315 mutex_unlock(&sock_diag_table_mutex);
120316 }
120317 EXPORT_SYMBOL_GPL(sock_diag_unregister);
120318 diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c
120319 index 95b6139..3048623 100644
120320 --- a/net/core/sysctl_net_core.c
120321 +++ b/net/core/sysctl_net_core.c
120322 @@ -35,7 +35,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
120323 {
120324 unsigned int orig_size, size;
120325 int ret, i;
120326 - struct ctl_table tmp = {
120327 + ctl_table_no_const tmp = {
120328 .data = &size,
120329 .maxlen = sizeof(size),
120330 .mode = table->mode
120331 @@ -203,7 +203,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
120332 void __user *buffer, size_t *lenp, loff_t *ppos)
120333 {
120334 char id[IFNAMSIZ];
120335 - struct ctl_table tbl = {
120336 + ctl_table_no_const tbl = {
120337 .data = id,
120338 .maxlen = IFNAMSIZ,
120339 };
120340 @@ -221,7 +221,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
120341 static int proc_do_rss_key(struct ctl_table *table, int write,
120342 void __user *buffer, size_t *lenp, loff_t *ppos)
120343 {
120344 - struct ctl_table fake_table;
120345 + ctl_table_no_const fake_table;
120346 char buf[NETDEV_RSS_KEY_LEN * 3];
120347
120348 snprintf(buf, sizeof(buf), "%*phC", NETDEV_RSS_KEY_LEN, netdev_rss_key);
120349 @@ -285,7 +285,7 @@ static struct ctl_table net_core_table[] = {
120350 .mode = 0444,
120351 .proc_handler = proc_do_rss_key,
120352 },
120353 -#ifdef CONFIG_BPF_JIT
120354 +#if defined(CONFIG_BPF_JIT) && !defined(CONFIG_GRKERNSEC_BPF_HARDEN)
120355 {
120356 .procname = "bpf_jit_enable",
120357 .data = &bpf_jit_enable,
120358 @@ -409,13 +409,12 @@ static struct ctl_table netns_core_table[] = {
120359
120360 static __net_init int sysctl_core_net_init(struct net *net)
120361 {
120362 - struct ctl_table *tbl;
120363 + ctl_table_no_const *tbl = NULL;
120364
120365 net->core.sysctl_somaxconn = SOMAXCONN;
120366
120367 - tbl = netns_core_table;
120368 if (!net_eq(net, &init_net)) {
120369 - tbl = kmemdup(tbl, sizeof(netns_core_table), GFP_KERNEL);
120370 + tbl = kmemdup(netns_core_table, sizeof(netns_core_table), GFP_KERNEL);
120371 if (tbl == NULL)
120372 goto err_dup;
120373
120374 @@ -425,17 +424,16 @@ static __net_init int sysctl_core_net_init(struct net *net)
120375 if (net->user_ns != &init_user_ns) {
120376 tbl[0].procname = NULL;
120377 }
120378 - }
120379 -
120380 - net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
120381 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
120382 + } else
120383 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", netns_core_table);
120384 if (net->core.sysctl_hdr == NULL)
120385 goto err_reg;
120386
120387 return 0;
120388
120389 err_reg:
120390 - if (tbl != netns_core_table)
120391 - kfree(tbl);
120392 + kfree(tbl);
120393 err_dup:
120394 return -ENOMEM;
120395 }
120396 @@ -450,7 +448,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net)
120397 kfree(tbl);
120398 }
120399
120400 -static __net_initdata struct pernet_operations sysctl_core_ops = {
120401 +static __net_initconst struct pernet_operations sysctl_core_ops = {
120402 .init = sysctl_core_net_init,
120403 .exit = sysctl_core_net_exit,
120404 };
120405 diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
120406 index 675cf94..9279a75 100644
120407 --- a/net/decnet/af_decnet.c
120408 +++ b/net/decnet/af_decnet.c
120409 @@ -466,6 +466,7 @@ static struct proto dn_proto = {
120410 .sysctl_rmem = sysctl_decnet_rmem,
120411 .max_header = DN_MAX_NSP_DATA_HEADER + 64,
120412 .obj_size = sizeof(struct dn_sock),
120413 + .slab_flags = SLAB_USERCOPY,
120414 };
120415
120416 static struct sock *dn_alloc_sock(struct net *net, struct socket *sock, gfp_t gfp, int kern)
120417 diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
120418 index b2c26b0..41f803e 100644
120419 --- a/net/decnet/dn_dev.c
120420 +++ b/net/decnet/dn_dev.c
120421 @@ -201,7 +201,7 @@ static struct dn_dev_sysctl_table {
120422 .extra1 = &min_t3,
120423 .extra2 = &max_t3
120424 },
120425 - {0}
120426 + { }
120427 },
120428 };
120429
120430 diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
120431 index 5325b54..a0d4d69 100644
120432 --- a/net/decnet/sysctl_net_decnet.c
120433 +++ b/net/decnet/sysctl_net_decnet.c
120434 @@ -174,7 +174,7 @@ static int dn_node_address_handler(struct ctl_table *table, int write,
120435
120436 if (len > *lenp) len = *lenp;
120437
120438 - if (copy_to_user(buffer, addr, len))
120439 + if (len > sizeof addr || copy_to_user(buffer, addr, len))
120440 return -EFAULT;
120441
120442 *lenp = len;
120443 @@ -237,7 +237,7 @@ static int dn_def_dev_handler(struct ctl_table *table, int write,
120444
120445 if (len > *lenp) len = *lenp;
120446
120447 - if (copy_to_user(buffer, devname, len))
120448 + if (len > sizeof devname || copy_to_user(buffer, devname, len))
120449 return -EFAULT;
120450
120451 *lenp = len;
120452 diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
120453 index b445d49..13e8538 100644
120454 --- a/net/dsa/dsa.c
120455 +++ b/net/dsa/dsa.c
120456 @@ -851,7 +851,7 @@ static struct packet_type dsa_pack_type __read_mostly = {
120457 .func = dsa_switch_rcv,
120458 };
120459
120460 -static struct notifier_block dsa_netdevice_nb __read_mostly = {
120461 +static struct notifier_block dsa_netdevice_nb = {
120462 .notifier_call = dsa_slave_netdevice_event,
120463 };
120464
120465 diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c
120466 index a2c7e4c..3dc9f67 100644
120467 --- a/net/hsr/hsr_netlink.c
120468 +++ b/net/hsr/hsr_netlink.c
120469 @@ -102,7 +102,7 @@ nla_put_failure:
120470 return -EMSGSIZE;
120471 }
120472
120473 -static struct rtnl_link_ops hsr_link_ops __read_mostly = {
120474 +static struct rtnl_link_ops hsr_link_ops = {
120475 .kind = "hsr",
120476 .maxtype = IFLA_HSR_MAX,
120477 .policy = hsr_policy,
120478 diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c
120479 index f20a387..2058892 100644
120480 --- a/net/ieee802154/6lowpan/core.c
120481 +++ b/net/ieee802154/6lowpan/core.c
120482 @@ -191,7 +191,7 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
120483 dev_put(real_dev);
120484 }
120485
120486 -static struct rtnl_link_ops lowpan_link_ops __read_mostly = {
120487 +static struct rtnl_link_ops lowpan_link_ops = {
120488 .kind = "lowpan",
120489 .priv_size = sizeof(struct lowpan_dev_info),
120490 .setup = lowpan_setup,
120491 diff --git a/net/ieee802154/6lowpan/reassembly.c b/net/ieee802154/6lowpan/reassembly.c
120492 index 214d44a..dcb7f86 100644
120493 --- a/net/ieee802154/6lowpan/reassembly.c
120494 +++ b/net/ieee802154/6lowpan/reassembly.c
120495 @@ -435,14 +435,13 @@ static struct ctl_table lowpan_frags_ctl_table[] = {
120496
120497 static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
120498 {
120499 - struct ctl_table *table;
120500 + ctl_table_no_const *table = NULL;
120501 struct ctl_table_header *hdr;
120502 struct netns_ieee802154_lowpan *ieee802154_lowpan =
120503 net_ieee802154_lowpan(net);
120504
120505 - table = lowpan_frags_ns_ctl_table;
120506 if (!net_eq(net, &init_net)) {
120507 - table = kmemdup(table, sizeof(lowpan_frags_ns_ctl_table),
120508 + table = kmemdup(lowpan_frags_ns_ctl_table, sizeof(lowpan_frags_ns_ctl_table),
120509 GFP_KERNEL);
120510 if (table == NULL)
120511 goto err_alloc;
120512 @@ -457,9 +456,9 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
120513 /* Don't export sysctls to unprivileged users */
120514 if (net->user_ns != &init_user_ns)
120515 table[0].procname = NULL;
120516 - }
120517 -
120518 - hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
120519 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
120520 + } else
120521 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", lowpan_frags_ns_ctl_table);
120522 if (hdr == NULL)
120523 goto err_reg;
120524
120525 @@ -467,8 +466,7 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
120526 return 0;
120527
120528 err_reg:
120529 - if (!net_eq(net, &init_net))
120530 - kfree(table);
120531 + kfree(table);
120532 err_alloc:
120533 return -ENOMEM;
120534 }
120535 diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
120536 index 9532ee8..020410a 100644
120537 --- a/net/ipv4/af_inet.c
120538 +++ b/net/ipv4/af_inet.c
120539 @@ -1392,7 +1392,7 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
120540 return ip_recv_error(sk, msg, len, addr_len);
120541 #if IS_ENABLED(CONFIG_IPV6)
120542 if (sk->sk_family == AF_INET6)
120543 - return pingv6_ops.ipv6_recv_error(sk, msg, len, addr_len);
120544 + return pingv6_ops->ipv6_recv_error(sk, msg, len, addr_len);
120545 #endif
120546 return -EINVAL;
120547 }
120548 diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
120549 index 2d9cb17..20ae904 100644
120550 --- a/net/ipv4/devinet.c
120551 +++ b/net/ipv4/devinet.c
120552 @@ -69,7 +69,8 @@
120553
120554 static struct ipv4_devconf ipv4_devconf = {
120555 .data = {
120556 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
120557 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
120558 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
120559 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
120560 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
120561 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
120562 @@ -80,7 +81,8 @@ static struct ipv4_devconf ipv4_devconf = {
120563
120564 static struct ipv4_devconf ipv4_devconf_dflt = {
120565 .data = {
120566 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
120567 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
120568 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
120569 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
120570 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
120571 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
120572 @@ -1579,7 +1581,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
120573 idx = 0;
120574 head = &net->dev_index_head[h];
120575 rcu_read_lock();
120576 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
120577 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
120578 net->dev_base_seq;
120579 hlist_for_each_entry_rcu(dev, head, index_hlist) {
120580 if (idx < s_idx)
120581 @@ -1905,7 +1907,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
120582 idx = 0;
120583 head = &net->dev_index_head[h];
120584 rcu_read_lock();
120585 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
120586 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
120587 net->dev_base_seq;
120588 hlist_for_each_entry_rcu(dev, head, index_hlist) {
120589 if (idx < s_idx)
120590 @@ -2146,7 +2148,7 @@ static int ipv4_doint_and_flush(struct ctl_table *ctl, int write,
120591 #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
120592 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
120593
120594 -static struct devinet_sysctl_table {
120595 +static const struct devinet_sysctl_table {
120596 struct ctl_table_header *sysctl_header;
120597 struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX];
120598 } devinet_sysctl = {
120599 @@ -2280,7 +2282,7 @@ static __net_init int devinet_init_net(struct net *net)
120600 int err;
120601 struct ipv4_devconf *all, *dflt;
120602 #ifdef CONFIG_SYSCTL
120603 - struct ctl_table *tbl = ctl_forward_entry;
120604 + ctl_table_no_const *tbl = NULL;
120605 struct ctl_table_header *forw_hdr;
120606 #endif
120607
120608 @@ -2298,7 +2300,7 @@ static __net_init int devinet_init_net(struct net *net)
120609 goto err_alloc_dflt;
120610
120611 #ifdef CONFIG_SYSCTL
120612 - tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
120613 + tbl = kmemdup(ctl_forward_entry, sizeof(ctl_forward_entry), GFP_KERNEL);
120614 if (!tbl)
120615 goto err_alloc_ctl;
120616
120617 @@ -2318,7 +2320,10 @@ static __net_init int devinet_init_net(struct net *net)
120618 goto err_reg_dflt;
120619
120620 err = -ENOMEM;
120621 - forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
120622 + if (!net_eq(net, &init_net))
120623 + forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
120624 + else
120625 + forw_hdr = register_net_sysctl(net, "net/ipv4", ctl_forward_entry);
120626 if (!forw_hdr)
120627 goto err_reg_ctl;
120628 net->ipv4.forw_hdr = forw_hdr;
120629 @@ -2334,8 +2339,7 @@ err_reg_ctl:
120630 err_reg_dflt:
120631 __devinet_sysctl_unregister(all);
120632 err_reg_all:
120633 - if (tbl != ctl_forward_entry)
120634 - kfree(tbl);
120635 + kfree(tbl);
120636 err_alloc_ctl:
120637 #endif
120638 if (dflt != &ipv4_devconf_dflt)
120639 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
120640 index 6bbc549..28d74951 100644
120641 --- a/net/ipv4/fib_frontend.c
120642 +++ b/net/ipv4/fib_frontend.c
120643 @@ -1083,12 +1083,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
120644 #ifdef CONFIG_IP_ROUTE_MULTIPATH
120645 fib_sync_up(dev, RTNH_F_DEAD);
120646 #endif
120647 - atomic_inc(&net->ipv4.dev_addr_genid);
120648 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
120649 rt_cache_flush(dev_net(dev));
120650 break;
120651 case NETDEV_DOWN:
120652 fib_del_ifaddr(ifa, NULL);
120653 - atomic_inc(&net->ipv4.dev_addr_genid);
120654 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
120655 if (!ifa->ifa_dev->ifa_list) {
120656 /* Last address was deleted from this interface.
120657 * Disable IP.
120658 @@ -1127,7 +1127,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
120659 #ifdef CONFIG_IP_ROUTE_MULTIPATH
120660 fib_sync_up(dev, RTNH_F_DEAD);
120661 #endif
120662 - atomic_inc(&net->ipv4.dev_addr_genid);
120663 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
120664 rt_cache_flush(net);
120665 break;
120666 case NETDEV_DOWN:
120667 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
120668 index 3a06586..1020c5b 100644
120669 --- a/net/ipv4/fib_semantics.c
120670 +++ b/net/ipv4/fib_semantics.c
120671 @@ -755,7 +755,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
120672 nh->nh_saddr = inet_select_addr(nh->nh_dev,
120673 nh->nh_gw,
120674 nh->nh_parent->fib_scope);
120675 - nh->nh_saddr_genid = atomic_read(&net->ipv4.dev_addr_genid);
120676 + nh->nh_saddr_genid = atomic_read_unchecked(&net->ipv4.dev_addr_genid);
120677
120678 return nh->nh_saddr;
120679 }
120680 diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
120681 index 61b45a1..2970363 100644
120682 --- a/net/ipv4/inet_connection_sock.c
120683 +++ b/net/ipv4/inet_connection_sock.c
120684 @@ -729,8 +729,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
120685 newsk->sk_write_space = sk_stream_write_space;
120686
120687 newsk->sk_mark = inet_rsk(req)->ir_mark;
120688 - atomic64_set(&newsk->sk_cookie,
120689 - atomic64_read(&inet_rsk(req)->ir_cookie));
120690 + atomic64_set_unchecked(&newsk->sk_cookie,
120691 + atomic64_read_unchecked(&inet_rsk(req)->ir_cookie));
120692
120693 newicsk->icsk_retransmits = 0;
120694 newicsk->icsk_backoff = 0;
120695 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
120696 index 0cb9165..8589720 100644
120697 --- a/net/ipv4/inet_hashtables.c
120698 +++ b/net/ipv4/inet_hashtables.c
120699 @@ -19,6 +19,7 @@
120700 #include <linux/slab.h>
120701 #include <linux/wait.h>
120702 #include <linux/vmalloc.h>
120703 +#include <linux/security.h>
120704
120705 #include <net/inet_connection_sock.h>
120706 #include <net/inet_hashtables.h>
120707 @@ -54,6 +55,8 @@ u32 sk_ehashfn(const struct sock *sk)
120708 sk->sk_daddr, sk->sk_dport);
120709 }
120710
120711 +extern void gr_update_task_in_ip_table(const struct inet_sock *inet);
120712 +
120713 /*
120714 * Allocate and initialize a new local port bind bucket.
120715 * The bindhash mutex for snum's hash chain must be held here.
120716 @@ -566,6 +569,8 @@ ok:
120717 twrefcnt += inet_twsk_bind_unhash(tw, hinfo);
120718 spin_unlock(&head->lock);
120719
120720 + gr_update_task_in_ip_table(inet_sk(sk));
120721 +
120722 if (tw) {
120723 inet_twsk_deschedule(tw);
120724 while (twrefcnt) {
120725 diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
120726 index 2ffbd16..6e94995 100644
120727 --- a/net/ipv4/inet_timewait_sock.c
120728 +++ b/net/ipv4/inet_timewait_sock.c
120729 @@ -214,7 +214,7 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
120730 tw->tw_ipv6only = 0;
120731 tw->tw_transparent = inet->transparent;
120732 tw->tw_prot = sk->sk_prot_creator;
120733 - atomic64_set(&tw->tw_cookie, atomic64_read(&sk->sk_cookie));
120734 + atomic64_set_unchecked(&tw->tw_cookie, atomic64_read_unchecked(&sk->sk_cookie));
120735 twsk_net_set(tw, sock_net(sk));
120736 setup_timer(&tw->tw_timer, tw_timer_handler, (unsigned long)tw);
120737 /*
120738 diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
120739 index 241afd7..31b95d5 100644
120740 --- a/net/ipv4/inetpeer.c
120741 +++ b/net/ipv4/inetpeer.c
120742 @@ -461,7 +461,7 @@ relookup:
120743 if (p) {
120744 p->daddr = *daddr;
120745 atomic_set(&p->refcnt, 1);
120746 - atomic_set(&p->rid, 0);
120747 + atomic_set_unchecked(&p->rid, 0);
120748 p->metrics[RTAX_LOCK-1] = INETPEER_METRICS_NEW;
120749 p->rate_tokens = 0;
120750 /* 60*HZ is arbitrary, but chosen enough high so that the first
120751 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
120752 index 921138f..1e011ff 100644
120753 --- a/net/ipv4/ip_fragment.c
120754 +++ b/net/ipv4/ip_fragment.c
120755 @@ -276,7 +276,7 @@ static int ip_frag_too_far(struct ipq *qp)
120756 return 0;
120757
120758 start = qp->rid;
120759 - end = atomic_inc_return(&peer->rid);
120760 + end = atomic_inc_return_unchecked(&peer->rid);
120761 qp->rid = end;
120762
120763 rc = qp->q.fragments && (end - start) > max;
120764 @@ -780,12 +780,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
120765
120766 static int __net_init ip4_frags_ns_ctl_register(struct net *net)
120767 {
120768 - struct ctl_table *table;
120769 + ctl_table_no_const *table = NULL;
120770 struct ctl_table_header *hdr;
120771
120772 - table = ip4_frags_ns_ctl_table;
120773 if (!net_eq(net, &init_net)) {
120774 - table = kmemdup(table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
120775 + table = kmemdup(ip4_frags_ns_ctl_table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
120776 if (!table)
120777 goto err_alloc;
120778
120779 @@ -799,9 +798,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
120780 /* Don't export sysctls to unprivileged users */
120781 if (net->user_ns != &init_user_ns)
120782 table[0].procname = NULL;
120783 - }
120784 + hdr = register_net_sysctl(net, "net/ipv4", table);
120785 + } else
120786 + hdr = register_net_sysctl(net, "net/ipv4", ip4_frags_ns_ctl_table);
120787
120788 - hdr = register_net_sysctl(net, "net/ipv4", table);
120789 if (!hdr)
120790 goto err_reg;
120791
120792 @@ -809,8 +809,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
120793 return 0;
120794
120795 err_reg:
120796 - if (!net_eq(net, &init_net))
120797 - kfree(table);
120798 + kfree(table);
120799 err_alloc:
120800 return -ENOMEM;
120801 }
120802 diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
120803 index 5fd7064..d13d75f 100644
120804 --- a/net/ipv4/ip_gre.c
120805 +++ b/net/ipv4/ip_gre.c
120806 @@ -115,7 +115,7 @@ static bool log_ecn_error = true;
120807 module_param(log_ecn_error, bool, 0644);
120808 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
120809
120810 -static struct rtnl_link_ops ipgre_link_ops __read_mostly;
120811 +static struct rtnl_link_ops ipgre_link_ops;
120812 static int ipgre_tunnel_init(struct net_device *dev);
120813
120814 static int ipgre_net_id __read_mostly;
120815 @@ -819,7 +819,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
120816 [IFLA_GRE_ENCAP_DPORT] = { .type = NLA_U16 },
120817 };
120818
120819 -static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
120820 +static struct rtnl_link_ops ipgre_link_ops = {
120821 .kind = "gre",
120822 .maxtype = IFLA_GRE_MAX,
120823 .policy = ipgre_policy,
120824 @@ -834,7 +834,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
120825 .get_link_net = ip_tunnel_get_link_net,
120826 };
120827
120828 -static struct rtnl_link_ops ipgre_tap_ops __read_mostly = {
120829 +static struct rtnl_link_ops ipgre_tap_ops = {
120830 .kind = "gretap",
120831 .maxtype = IFLA_GRE_MAX,
120832 .policy = ipgre_policy,
120833 diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
120834 index 2db4c87..4db9282 100644
120835 --- a/net/ipv4/ip_input.c
120836 +++ b/net/ipv4/ip_input.c
120837 @@ -147,6 +147,10 @@
120838 #include <linux/mroute.h>
120839 #include <linux/netlink.h>
120840
120841 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120842 +extern int grsec_enable_blackhole;
120843 +#endif
120844 +
120845 /*
120846 * Process Router Attention IP option (RFC 2113)
120847 */
120848 @@ -223,6 +227,9 @@ static int ip_local_deliver_finish(struct sock *sk, struct sk_buff *skb)
120849 if (!raw) {
120850 if (xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
120851 IP_INC_STATS_BH(net, IPSTATS_MIB_INUNKNOWNPROTOS);
120852 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120853 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
120854 +#endif
120855 icmp_send(skb, ICMP_DEST_UNREACH,
120856 ICMP_PROT_UNREACH, 0);
120857 }
120858 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
120859 index c3c359a..504edc6 100644
120860 --- a/net/ipv4/ip_sockglue.c
120861 +++ b/net/ipv4/ip_sockglue.c
120862 @@ -1295,7 +1295,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
120863 len = min_t(unsigned int, len, opt->optlen);
120864 if (put_user(len, optlen))
120865 return -EFAULT;
120866 - if (copy_to_user(optval, opt->__data, len))
120867 + if ((len > (sizeof(optbuf) - sizeof(struct ip_options))) ||
120868 + copy_to_user(optval, opt->__data, len))
120869 return -EFAULT;
120870 return 0;
120871 }
120872 @@ -1432,7 +1433,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
120873 if (sk->sk_type != SOCK_STREAM)
120874 return -ENOPROTOOPT;
120875
120876 - msg.msg_control = (__force void *) optval;
120877 + msg.msg_control = (__force_kernel void *) optval;
120878 msg.msg_controllen = len;
120879 msg.msg_flags = flags;
120880
120881 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
120882 index 0c15208..a3a76c5 100644
120883 --- a/net/ipv4/ip_vti.c
120884 +++ b/net/ipv4/ip_vti.c
120885 @@ -45,7 +45,7 @@
120886 #include <net/net_namespace.h>
120887 #include <net/netns/generic.h>
120888
120889 -static struct rtnl_link_ops vti_link_ops __read_mostly;
120890 +static struct rtnl_link_ops vti_link_ops;
120891
120892 static int vti_net_id __read_mostly;
120893 static int vti_tunnel_init(struct net_device *dev);
120894 @@ -525,7 +525,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
120895 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
120896 };
120897
120898 -static struct rtnl_link_ops vti_link_ops __read_mostly = {
120899 +static struct rtnl_link_ops vti_link_ops = {
120900 .kind = "vti",
120901 .maxtype = IFLA_VTI_MAX,
120902 .policy = vti_policy,
120903 diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
120904 index 8e7328c..9bd7ed3 100644
120905 --- a/net/ipv4/ipconfig.c
120906 +++ b/net/ipv4/ipconfig.c
120907 @@ -333,7 +333,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
120908
120909 mm_segment_t oldfs = get_fs();
120910 set_fs(get_ds());
120911 - res = devinet_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
120912 + res = devinet_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
120913 set_fs(oldfs);
120914 return res;
120915 }
120916 @@ -344,7 +344,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
120917
120918 mm_segment_t oldfs = get_fs();
120919 set_fs(get_ds());
120920 - res = dev_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
120921 + res = dev_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
120922 set_fs(oldfs);
120923 return res;
120924 }
120925 @@ -355,7 +355,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
120926
120927 mm_segment_t oldfs = get_fs();
120928 set_fs(get_ds());
120929 - res = ip_rt_ioctl(&init_net, cmd, (void __user *) arg);
120930 + res = ip_rt_ioctl(&init_net, cmd, (void __force_user *) arg);
120931 set_fs(oldfs);
120932 return res;
120933 }
120934 diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
120935 index 254238d..82c19a2 100644
120936 --- a/net/ipv4/ipip.c
120937 +++ b/net/ipv4/ipip.c
120938 @@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
120939 static int ipip_net_id __read_mostly;
120940
120941 static int ipip_tunnel_init(struct net_device *dev);
120942 -static struct rtnl_link_ops ipip_link_ops __read_mostly;
120943 +static struct rtnl_link_ops ipip_link_ops;
120944
120945 static int ipip_err(struct sk_buff *skb, u32 info)
120946 {
120947 @@ -488,7 +488,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
120948 [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
120949 };
120950
120951 -static struct rtnl_link_ops ipip_link_ops __read_mostly = {
120952 +static struct rtnl_link_ops ipip_link_ops = {
120953 .kind = "ipip",
120954 .maxtype = IFLA_IPTUN_MAX,
120955 .policy = ipip_policy,
120956 diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
120957 index 92305a1..0a5b349 100644
120958 --- a/net/ipv4/netfilter/arp_tables.c
120959 +++ b/net/ipv4/netfilter/arp_tables.c
120960 @@ -896,14 +896,14 @@ static int compat_table_info(const struct xt_table_info *info,
120961 #endif
120962
120963 static int get_info(struct net *net, void __user *user,
120964 - const int *len, int compat)
120965 + int len, int compat)
120966 {
120967 char name[XT_TABLE_MAXNAMELEN];
120968 struct xt_table *t;
120969 int ret;
120970
120971 - if (*len != sizeof(struct arpt_getinfo)) {
120972 - duprintf("length %u != %Zu\n", *len,
120973 + if (len != sizeof(struct arpt_getinfo)) {
120974 + duprintf("length %u != %Zu\n", len,
120975 sizeof(struct arpt_getinfo));
120976 return -EINVAL;
120977 }
120978 @@ -940,7 +940,7 @@ static int get_info(struct net *net, void __user *user,
120979 info.size = private->size;
120980 strcpy(info.name, name);
120981
120982 - if (copy_to_user(user, &info, *len) != 0)
120983 + if (copy_to_user(user, &info, len) != 0)
120984 ret = -EFAULT;
120985 else
120986 ret = 0;
120987 @@ -1705,7 +1705,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
120988
120989 switch (cmd) {
120990 case ARPT_SO_GET_INFO:
120991 - ret = get_info(sock_net(sk), user, len, 1);
120992 + ret = get_info(sock_net(sk), user, *len, 1);
120993 break;
120994 case ARPT_SO_GET_ENTRIES:
120995 ret = compat_get_entries(sock_net(sk), user, len);
120996 @@ -1750,7 +1750,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
120997
120998 switch (cmd) {
120999 case ARPT_SO_GET_INFO:
121000 - ret = get_info(sock_net(sk), user, len, 0);
121001 + ret = get_info(sock_net(sk), user, *len, 0);
121002 break;
121003
121004 case ARPT_SO_GET_ENTRIES:
121005 diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
121006 index 6c72fbb..ce47b05 100644
121007 --- a/net/ipv4/netfilter/ip_tables.c
121008 +++ b/net/ipv4/netfilter/ip_tables.c
121009 @@ -1073,14 +1073,14 @@ static int compat_table_info(const struct xt_table_info *info,
121010 #endif
121011
121012 static int get_info(struct net *net, void __user *user,
121013 - const int *len, int compat)
121014 + int len, int compat)
121015 {
121016 char name[XT_TABLE_MAXNAMELEN];
121017 struct xt_table *t;
121018 int ret;
121019
121020 - if (*len != sizeof(struct ipt_getinfo)) {
121021 - duprintf("length %u != %zu\n", *len,
121022 + if (len != sizeof(struct ipt_getinfo)) {
121023 + duprintf("length %u != %zu\n", len,
121024 sizeof(struct ipt_getinfo));
121025 return -EINVAL;
121026 }
121027 @@ -1117,7 +1117,7 @@ static int get_info(struct net *net, void __user *user,
121028 info.size = private->size;
121029 strcpy(info.name, name);
121030
121031 - if (copy_to_user(user, &info, *len) != 0)
121032 + if (copy_to_user(user, &info, len) != 0)
121033 ret = -EFAULT;
121034 else
121035 ret = 0;
121036 @@ -1968,7 +1968,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
121037
121038 switch (cmd) {
121039 case IPT_SO_GET_INFO:
121040 - ret = get_info(sock_net(sk), user, len, 1);
121041 + ret = get_info(sock_net(sk), user, *len, 1);
121042 break;
121043 case IPT_SO_GET_ENTRIES:
121044 ret = compat_get_entries(sock_net(sk), user, len);
121045 @@ -2015,7 +2015,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
121046
121047 switch (cmd) {
121048 case IPT_SO_GET_INFO:
121049 - ret = get_info(sock_net(sk), user, len, 0);
121050 + ret = get_info(sock_net(sk), user, *len, 0);
121051 break;
121052
121053 case IPT_SO_GET_ENTRIES:
121054 diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
121055 index 45cb16a..cef4ecd 100644
121056 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
121057 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
121058 @@ -730,7 +730,7 @@ static int clusterip_net_init(struct net *net)
121059 spin_lock_init(&cn->lock);
121060
121061 #ifdef CONFIG_PROC_FS
121062 - cn->procdir = proc_mkdir("ipt_CLUSTERIP", net->proc_net);
121063 + cn->procdir = proc_mkdir_restrict("ipt_CLUSTERIP", net->proc_net);
121064 if (!cn->procdir) {
121065 pr_err("Unable to proc dir entry\n");
121066 return -ENOMEM;
121067 diff --git a/net/ipv4/netfilter/nf_nat_pptp.c b/net/ipv4/netfilter/nf_nat_pptp.c
121068 index 657d230..b3ca21b 100644
121069 --- a/net/ipv4/netfilter/nf_nat_pptp.c
121070 +++ b/net/ipv4/netfilter/nf_nat_pptp.c
121071 @@ -45,7 +45,7 @@ static void pptp_nat_expected(struct nf_conn *ct,
121072 struct net *net = nf_ct_net(ct);
121073 const struct nf_conn *master = ct->master;
121074 struct nf_conntrack_expect *other_exp;
121075 - struct nf_conntrack_tuple t;
121076 + struct nf_conntrack_tuple t = {};
121077 const struct nf_ct_pptp_master *ct_pptp_info;
121078 const struct nf_nat_pptp *nat_pptp_info;
121079 struct nf_nat_range range;
121080 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
121081 index 05ff44b..da00000 100644
121082 --- a/net/ipv4/ping.c
121083 +++ b/net/ipv4/ping.c
121084 @@ -59,7 +59,7 @@ struct ping_table {
121085 };
121086
121087 static struct ping_table ping_table;
121088 -struct pingv6_ops pingv6_ops;
121089 +struct pingv6_ops *pingv6_ops;
121090 EXPORT_SYMBOL_GPL(pingv6_ops);
121091
121092 static u16 ping_port_rover;
121093 @@ -359,7 +359,7 @@ static int ping_check_bind_addr(struct sock *sk, struct inet_sock *isk,
121094 return -ENODEV;
121095 }
121096 }
121097 - has_addr = pingv6_ops.ipv6_chk_addr(net, &addr->sin6_addr, dev,
121098 + has_addr = pingv6_ops->ipv6_chk_addr(net, &addr->sin6_addr, dev,
121099 scoped);
121100 rcu_read_unlock();
121101
121102 @@ -567,7 +567,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
121103 }
121104 #if IS_ENABLED(CONFIG_IPV6)
121105 } else if (skb->protocol == htons(ETH_P_IPV6)) {
121106 - harderr = pingv6_ops.icmpv6_err_convert(type, code, &err);
121107 + harderr = pingv6_ops->icmpv6_err_convert(type, code, &err);
121108 #endif
121109 }
121110
121111 @@ -585,7 +585,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
121112 info, (u8 *)icmph);
121113 #if IS_ENABLED(CONFIG_IPV6)
121114 } else if (family == AF_INET6) {
121115 - pingv6_ops.ipv6_icmp_error(sk, skb, err, 0,
121116 + pingv6_ops->ipv6_icmp_error(sk, skb, err, 0,
121117 info, (u8 *)icmph);
121118 #endif
121119 }
121120 @@ -918,10 +918,10 @@ int ping_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int noblock,
121121 }
121122
121123 if (inet6_sk(sk)->rxopt.all)
121124 - pingv6_ops.ip6_datagram_recv_common_ctl(sk, msg, skb);
121125 + pingv6_ops->ip6_datagram_recv_common_ctl(sk, msg, skb);
121126 if (skb->protocol == htons(ETH_P_IPV6) &&
121127 inet6_sk(sk)->rxopt.all)
121128 - pingv6_ops.ip6_datagram_recv_specific_ctl(sk, msg, skb);
121129 + pingv6_ops->ip6_datagram_recv_specific_ctl(sk, msg, skb);
121130 else if (skb->protocol == htons(ETH_P_IP) && isk->cmsg_flags)
121131 ip_cmsg_recv(msg, skb);
121132 #endif
121133 @@ -1116,7 +1116,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
121134 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
121135 0, sock_i_ino(sp),
121136 atomic_read(&sp->sk_refcnt), sp,
121137 - atomic_read(&sp->sk_drops));
121138 + atomic_read_unchecked(&sp->sk_drops));
121139 }
121140
121141 static int ping_v4_seq_show(struct seq_file *seq, void *v)
121142 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
121143 index 561cd4b..a32a155 100644
121144 --- a/net/ipv4/raw.c
121145 +++ b/net/ipv4/raw.c
121146 @@ -323,7 +323,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
121147 int raw_rcv(struct sock *sk, struct sk_buff *skb)
121148 {
121149 if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
121150 - atomic_inc(&sk->sk_drops);
121151 + atomic_inc_unchecked(&sk->sk_drops);
121152 kfree_skb(skb);
121153 return NET_RX_DROP;
121154 }
121155 @@ -771,16 +771,20 @@ static int raw_init(struct sock *sk)
121156
121157 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
121158 {
121159 + struct icmp_filter filter;
121160 +
121161 if (optlen > sizeof(struct icmp_filter))
121162 optlen = sizeof(struct icmp_filter);
121163 - if (copy_from_user(&raw_sk(sk)->filter, optval, optlen))
121164 + if (copy_from_user(&filter, optval, optlen))
121165 return -EFAULT;
121166 + raw_sk(sk)->filter = filter;
121167 return 0;
121168 }
121169
121170 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen)
121171 {
121172 int len, ret = -EFAULT;
121173 + struct icmp_filter filter;
121174
121175 if (get_user(len, optlen))
121176 goto out;
121177 @@ -790,8 +794,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
121178 if (len > sizeof(struct icmp_filter))
121179 len = sizeof(struct icmp_filter);
121180 ret = -EFAULT;
121181 - if (put_user(len, optlen) ||
121182 - copy_to_user(optval, &raw_sk(sk)->filter, len))
121183 + filter = raw_sk(sk)->filter;
121184 + if (put_user(len, optlen) || len > sizeof filter || copy_to_user(optval, &filter, len))
121185 goto out;
121186 ret = 0;
121187 out: return ret;
121188 @@ -1020,7 +1024,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
121189 0, 0L, 0,
121190 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
121191 0, sock_i_ino(sp),
121192 - atomic_read(&sp->sk_refcnt), sp, atomic_read(&sp->sk_drops));
121193 + atomic_read(&sp->sk_refcnt), sp, atomic_read_unchecked(&sp->sk_drops));
121194 }
121195
121196 static int raw_seq_show(struct seq_file *seq, void *v)
121197 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
121198 index e681b85..8a43a65 100644
121199 --- a/net/ipv4/route.c
121200 +++ b/net/ipv4/route.c
121201 @@ -227,7 +227,7 @@ static const struct seq_operations rt_cache_seq_ops = {
121202
121203 static int rt_cache_seq_open(struct inode *inode, struct file *file)
121204 {
121205 - return seq_open(file, &rt_cache_seq_ops);
121206 + return seq_open_restrict(file, &rt_cache_seq_ops);
121207 }
121208
121209 static const struct file_operations rt_cache_seq_fops = {
121210 @@ -318,7 +318,7 @@ static const struct seq_operations rt_cpu_seq_ops = {
121211
121212 static int rt_cpu_seq_open(struct inode *inode, struct file *file)
121213 {
121214 - return seq_open(file, &rt_cpu_seq_ops);
121215 + return seq_open_restrict(file, &rt_cpu_seq_ops);
121216 }
121217
121218 static const struct file_operations rt_cpu_seq_fops = {
121219 @@ -356,7 +356,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
121220
121221 static int rt_acct_proc_open(struct inode *inode, struct file *file)
121222 {
121223 - return single_open(file, rt_acct_proc_show, NULL);
121224 + return single_open_restrict(file, rt_acct_proc_show, NULL);
121225 }
121226
121227 static const struct file_operations rt_acct_proc_fops = {
121228 @@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
121229
121230 #define IP_IDENTS_SZ 2048u
121231
121232 -static atomic_t *ip_idents __read_mostly;
121233 +static atomic_unchecked_t ip_idents[IP_IDENTS_SZ] __read_mostly;
121234 static u32 *ip_tstamps __read_mostly;
121235
121236 /* In order to protect privacy, we add a perturbation to identifiers
121237 @@ -468,7 +468,7 @@ static u32 *ip_tstamps __read_mostly;
121238 u32 ip_idents_reserve(u32 hash, int segs)
121239 {
121240 u32 *p_tstamp = ip_tstamps + hash % IP_IDENTS_SZ;
121241 - atomic_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
121242 + atomic_unchecked_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
121243 u32 old = ACCESS_ONCE(*p_tstamp);
121244 u32 now = (u32)jiffies;
121245 u32 delta = 0;
121246 @@ -476,7 +476,7 @@ u32 ip_idents_reserve(u32 hash, int segs)
121247 if (old != now && cmpxchg(p_tstamp, old, now) == old)
121248 delta = prandom_u32_max(now - old);
121249
121250 - return atomic_add_return(segs + delta, p_id) - segs;
121251 + return atomic_add_return_unchecked(segs + delta, p_id) - segs;
121252 }
121253 EXPORT_SYMBOL(ip_idents_reserve);
121254
121255 @@ -2640,34 +2640,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
121256 .maxlen = sizeof(int),
121257 .mode = 0200,
121258 .proc_handler = ipv4_sysctl_rtcache_flush,
121259 + .extra1 = &init_net,
121260 },
121261 { },
121262 };
121263
121264 static __net_init int sysctl_route_net_init(struct net *net)
121265 {
121266 - struct ctl_table *tbl;
121267 + ctl_table_no_const *tbl = NULL;
121268
121269 - tbl = ipv4_route_flush_table;
121270 if (!net_eq(net, &init_net)) {
121271 - tbl = kmemdup(tbl, sizeof(ipv4_route_flush_table), GFP_KERNEL);
121272 + tbl = kmemdup(ipv4_route_flush_table, sizeof(ipv4_route_flush_table), GFP_KERNEL);
121273 if (!tbl)
121274 goto err_dup;
121275
121276 /* Don't export sysctls to unprivileged users */
121277 if (net->user_ns != &init_user_ns)
121278 tbl[0].procname = NULL;
121279 - }
121280 - tbl[0].extra1 = net;
121281 + tbl[0].extra1 = net;
121282 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
121283 + } else
121284 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", ipv4_route_flush_table);
121285
121286 - net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
121287 if (!net->ipv4.route_hdr)
121288 goto err_reg;
121289 return 0;
121290
121291 err_reg:
121292 - if (tbl != ipv4_route_flush_table)
121293 - kfree(tbl);
121294 + kfree(tbl);
121295 err_dup:
121296 return -ENOMEM;
121297 }
121298 @@ -2690,8 +2690,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
121299
121300 static __net_init int rt_genid_init(struct net *net)
121301 {
121302 - atomic_set(&net->ipv4.rt_genid, 0);
121303 - atomic_set(&net->fnhe_genid, 0);
121304 + atomic_set_unchecked(&net->ipv4.rt_genid, 0);
121305 + atomic_set_unchecked(&net->fnhe_genid, 0);
121306 get_random_bytes(&net->ipv4.dev_addr_genid,
121307 sizeof(net->ipv4.dev_addr_genid));
121308 return 0;
121309 @@ -2735,11 +2735,7 @@ int __init ip_rt_init(void)
121310 int rc = 0;
121311 int cpu;
121312
121313 - ip_idents = kmalloc(IP_IDENTS_SZ * sizeof(*ip_idents), GFP_KERNEL);
121314 - if (!ip_idents)
121315 - panic("IP: failed to allocate ip_idents\n");
121316 -
121317 - prandom_bytes(ip_idents, IP_IDENTS_SZ * sizeof(*ip_idents));
121318 + prandom_bytes(ip_idents, sizeof(ip_idents));
121319
121320 ip_tstamps = kcalloc(IP_IDENTS_SZ, sizeof(*ip_tstamps), GFP_KERNEL);
121321 if (!ip_tstamps)
121322 diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
121323 index 0330ab2..4745d2c 100644
121324 --- a/net/ipv4/sysctl_net_ipv4.c
121325 +++ b/net/ipv4/sysctl_net_ipv4.c
121326 @@ -66,7 +66,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
121327 container_of(table->data, struct net, ipv4.ip_local_ports.range);
121328 int ret;
121329 int range[2];
121330 - struct ctl_table tmp = {
121331 + ctl_table_no_const tmp = {
121332 .data = &range,
121333 .maxlen = sizeof(range),
121334 .mode = table->mode,
121335 @@ -124,7 +124,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write,
121336 int ret;
121337 gid_t urange[2];
121338 kgid_t low, high;
121339 - struct ctl_table tmp = {
121340 + ctl_table_no_const tmp = {
121341 .data = &urange,
121342 .maxlen = sizeof(urange),
121343 .mode = table->mode,
121344 @@ -155,7 +155,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write,
121345 void __user *buffer, size_t *lenp, loff_t *ppos)
121346 {
121347 char val[TCP_CA_NAME_MAX];
121348 - struct ctl_table tbl = {
121349 + ctl_table_no_const tbl = {
121350 .data = val,
121351 .maxlen = TCP_CA_NAME_MAX,
121352 };
121353 @@ -174,7 +174,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl,
121354 void __user *buffer, size_t *lenp,
121355 loff_t *ppos)
121356 {
121357 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX, };
121358 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX, };
121359 int ret;
121360
121361 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
121362 @@ -191,7 +191,7 @@ static int proc_allowed_congestion_control(struct ctl_table *ctl,
121363 void __user *buffer, size_t *lenp,
121364 loff_t *ppos)
121365 {
121366 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX };
121367 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX };
121368 int ret;
121369
121370 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
121371 @@ -210,7 +210,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *ctl, int write,
121372 void __user *buffer, size_t *lenp,
121373 loff_t *ppos)
121374 {
121375 - struct ctl_table tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
121376 + ctl_table_no_const tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
121377 struct tcp_fastopen_context *ctxt;
121378 int ret;
121379 u32 user_key[4]; /* 16 bytes, matching TCP_FASTOPEN_KEY_LENGTH */
121380 @@ -915,13 +915,12 @@ static struct ctl_table ipv4_net_table[] = {
121381
121382 static __net_init int ipv4_sysctl_init_net(struct net *net)
121383 {
121384 - struct ctl_table *table;
121385 + ctl_table_no_const *table = NULL;
121386
121387 - table = ipv4_net_table;
121388 if (!net_eq(net, &init_net)) {
121389 int i;
121390
121391 - table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
121392 + table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL);
121393 if (!table)
121394 goto err_alloc;
121395
121396 @@ -930,7 +929,10 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
121397 table[i].data += (void *)net - (void *)&init_net;
121398 }
121399
121400 - net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
121401 + if (!net_eq(net, &init_net))
121402 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
121403 + else
121404 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", ipv4_net_table);
121405 if (!net->ipv4.ipv4_hdr)
121406 goto err_reg;
121407
121408 diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
121409 index 728f5b3..ab3c61c 100644
121410 --- a/net/ipv4/tcp_input.c
121411 +++ b/net/ipv4/tcp_input.c
121412 @@ -767,7 +767,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
121413 * without any lock. We want to make sure compiler wont store
121414 * intermediate values in this location.
121415 */
121416 - ACCESS_ONCE(sk->sk_pacing_rate) = min_t(u64, rate,
121417 + ACCESS_ONCE_RW(sk->sk_pacing_rate) = min_t(u64, rate,
121418 sk->sk_max_pacing_rate);
121419 }
121420
121421 @@ -4608,7 +4608,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
121422 * simplifies code)
121423 */
121424 static void
121425 -tcp_collapse(struct sock *sk, struct sk_buff_head *list,
121426 +__intentional_overflow(5,6) tcp_collapse(struct sock *sk, struct sk_buff_head *list,
121427 struct sk_buff *head, struct sk_buff *tail,
121428 u32 start, u32 end)
121429 {
121430 @@ -5603,6 +5603,7 @@ discard:
121431 tcp_paws_reject(&tp->rx_opt, 0))
121432 goto discard_and_undo;
121433
121434 +#ifndef CONFIG_GRKERNSEC_NO_SIMULT_CONNECT
121435 if (th->syn) {
121436 /* We see SYN without ACK. It is attempt of
121437 * simultaneous connect with crossed SYNs.
121438 @@ -5620,6 +5621,7 @@ discard:
121439 }
121440
121441 tp->rcv_nxt = TCP_SKB_CB(skb)->seq + 1;
121442 + tp->copied_seq = tp->rcv_nxt;
121443 tp->rcv_wup = TCP_SKB_CB(skb)->seq + 1;
121444
121445 /* RFC1323: The window in SYN & SYN/ACK segments is
121446 @@ -5653,6 +5655,7 @@ discard:
121447 goto discard;
121448 #endif
121449 }
121450 +#endif
121451 /* "fifth, if neither of the SYN or RST bits is set then
121452 * drop the segment and return."
121453 */
121454 @@ -5699,7 +5702,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
121455 goto discard;
121456
121457 if (th->syn) {
121458 - if (th->fin)
121459 + if (th->fin || th->urg || th->psh)
121460 goto discard;
121461 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
121462 return 1;
121463 @@ -6026,7 +6029,7 @@ struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops,
121464
121465 kmemcheck_annotate_bitfield(ireq, flags);
121466 ireq->opt = NULL;
121467 - atomic64_set(&ireq->ir_cookie, 0);
121468 + atomic64_set_unchecked(&ireq->ir_cookie, 0);
121469 ireq->ireq_state = TCP_NEW_SYN_RECV;
121470 write_pnet(&ireq->ireq_net, sock_net(sk_listener));
121471 ireq->ireq_family = sk_listener->sk_family;
121472 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
121473 index 0ea2e1c..a4d1c48 100644
121474 --- a/net/ipv4/tcp_ipv4.c
121475 +++ b/net/ipv4/tcp_ipv4.c
121476 @@ -89,6 +89,10 @@ int sysctl_tcp_tw_reuse __read_mostly;
121477 int sysctl_tcp_low_latency __read_mostly;
121478 EXPORT_SYMBOL(sysctl_tcp_low_latency);
121479
121480 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121481 +extern int grsec_enable_blackhole;
121482 +#endif
121483 +
121484 #ifdef CONFIG_TCP_MD5SIG
121485 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
121486 __be32 daddr, __be32 saddr, const struct tcphdr *th);
121487 @@ -1427,6 +1431,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
121488 return 0;
121489
121490 reset:
121491 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121492 + if (!grsec_enable_blackhole)
121493 +#endif
121494 tcp_v4_send_reset(rsk, skb);
121495 discard:
121496 kfree_skb(skb);
121497 @@ -1591,12 +1598,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
121498 TCP_SKB_CB(skb)->sacked = 0;
121499
121500 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
121501 - if (!sk)
121502 + if (!sk) {
121503 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121504 + ret = 1;
121505 +#endif
121506 goto no_tcp_socket;
121507 -
121508 + }
121509 process:
121510 - if (sk->sk_state == TCP_TIME_WAIT)
121511 + if (sk->sk_state == TCP_TIME_WAIT) {
121512 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121513 + ret = 2;
121514 +#endif
121515 goto do_time_wait;
121516 + }
121517
121518 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
121519 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
121520 @@ -1653,6 +1667,10 @@ csum_error:
121521 bad_packet:
121522 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
121523 } else {
121524 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121525 + if (!grsec_enable_blackhole || (ret == 1 &&
121526 + (skb->dev->flags & IFF_LOOPBACK)))
121527 +#endif
121528 tcp_v4_send_reset(NULL, skb);
121529 }
121530
121531 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
121532 index 4bc00cb..d024adf 100644
121533 --- a/net/ipv4/tcp_minisocks.c
121534 +++ b/net/ipv4/tcp_minisocks.c
121535 @@ -27,6 +27,10 @@
121536 #include <net/inet_common.h>
121537 #include <net/xfrm.h>
121538
121539 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121540 +extern int grsec_enable_blackhole;
121541 +#endif
121542 +
121543 int sysctl_tcp_syncookies __read_mostly = 1;
121544 EXPORT_SYMBOL(sysctl_tcp_syncookies);
121545
121546 @@ -782,7 +786,10 @@ embryonic_reset:
121547 * avoid becoming vulnerable to outside attack aiming at
121548 * resetting legit local connections.
121549 */
121550 - req->rsk_ops->send_reset(sk, skb);
121551 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121552 + if (!grsec_enable_blackhole)
121553 +#endif
121554 + req->rsk_ops->send_reset(sk, skb);
121555 } else if (fastopen) { /* received a valid RST pkt */
121556 reqsk_fastopen_remove(sk, req, true);
121557 tcp_reset(sk);
121558 diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
121559 index ebf5ff5..4d1ff32 100644
121560 --- a/net/ipv4/tcp_probe.c
121561 +++ b/net/ipv4/tcp_probe.c
121562 @@ -236,7 +236,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
121563 if (cnt + width >= len)
121564 break;
121565
121566 - if (copy_to_user(buf + cnt, tbuf, width))
121567 + if (width > sizeof tbuf || copy_to_user(buf + cnt, tbuf, width))
121568 return -EFAULT;
121569 cnt += width;
121570 }
121571 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
121572 index 5b752f5..9594bb2 100644
121573 --- a/net/ipv4/tcp_timer.c
121574 +++ b/net/ipv4/tcp_timer.c
121575 @@ -22,6 +22,10 @@
121576 #include <linux/gfp.h>
121577 #include <net/tcp.h>
121578
121579 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121580 +extern int grsec_lastack_retries;
121581 +#endif
121582 +
121583 int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
121584 int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
121585 int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
121586 @@ -195,6 +199,13 @@ static int tcp_write_timeout(struct sock *sk)
121587 }
121588 }
121589
121590 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121591 + if ((sk->sk_state == TCP_LAST_ACK) &&
121592 + (grsec_lastack_retries > 0) &&
121593 + (grsec_lastack_retries < retry_until))
121594 + retry_until = grsec_lastack_retries;
121595 +#endif
121596 +
121597 if (retransmits_timed_out(sk, retry_until,
121598 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
121599 /* Has it gone just too far? */
121600 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
121601 index 1b8c5ba..e1f0542 100644
121602 --- a/net/ipv4/udp.c
121603 +++ b/net/ipv4/udp.c
121604 @@ -87,6 +87,7 @@
121605 #include <linux/types.h>
121606 #include <linux/fcntl.h>
121607 #include <linux/module.h>
121608 +#include <linux/security.h>
121609 #include <linux/socket.h>
121610 #include <linux/sockios.h>
121611 #include <linux/igmp.h>
121612 @@ -115,6 +116,10 @@
121613 #include <net/busy_poll.h>
121614 #include "udp_impl.h"
121615
121616 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121617 +extern int grsec_enable_blackhole;
121618 +#endif
121619 +
121620 struct udp_table udp_table __read_mostly;
121621 EXPORT_SYMBOL(udp_table);
121622
121623 @@ -608,6 +613,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, struct sock *sk,
121624 return true;
121625 }
121626
121627 +extern int gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb);
121628 +extern int gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr);
121629 +
121630 /*
121631 * This routine is called by the ICMP module when it gets some
121632 * sort of error condition. If err < 0 then the socket should
121633 @@ -944,9 +952,18 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
121634 dport = usin->sin_port;
121635 if (dport == 0)
121636 return -EINVAL;
121637 +
121638 + err = gr_search_udp_sendmsg(sk, usin);
121639 + if (err)
121640 + return err;
121641 } else {
121642 if (sk->sk_state != TCP_ESTABLISHED)
121643 return -EDESTADDRREQ;
121644 +
121645 + err = gr_search_udp_sendmsg(sk, NULL);
121646 + if (err)
121647 + return err;
121648 +
121649 daddr = inet->inet_daddr;
121650 dport = inet->inet_dport;
121651 /* Open fast path for connected socket.
121652 @@ -1193,7 +1210,7 @@ static unsigned int first_packet_length(struct sock *sk)
121653 IS_UDPLITE(sk));
121654 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
121655 IS_UDPLITE(sk));
121656 - atomic_inc(&sk->sk_drops);
121657 + atomic_inc_unchecked(&sk->sk_drops);
121658 __skb_unlink(skb, rcvq);
121659 __skb_queue_tail(&list_kill, skb);
121660 }
121661 @@ -1273,6 +1290,10 @@ try_again:
121662 if (!skb)
121663 goto out;
121664
121665 + err = gr_search_udp_recvmsg(sk, skb);
121666 + if (err)
121667 + goto out_free;
121668 +
121669 ulen = skb->len - sizeof(struct udphdr);
121670 copied = len;
121671 if (copied > ulen)
121672 @@ -1305,7 +1326,7 @@ try_again:
121673 if (unlikely(err)) {
121674 trace_kfree_skb(skb, udp_recvmsg);
121675 if (!peeked) {
121676 - atomic_inc(&sk->sk_drops);
121677 + atomic_inc_unchecked(&sk->sk_drops);
121678 UDP_INC_STATS_USER(sock_net(sk),
121679 UDP_MIB_INERRORS, is_udplite);
121680 }
121681 @@ -1599,7 +1620,7 @@ csum_error:
121682 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
121683 drop:
121684 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
121685 - atomic_inc(&sk->sk_drops);
121686 + atomic_inc_unchecked(&sk->sk_drops);
121687 kfree_skb(skb);
121688 return -1;
121689 }
121690 @@ -1617,7 +1638,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
121691 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
121692
121693 if (!skb1) {
121694 - atomic_inc(&sk->sk_drops);
121695 + atomic_inc_unchecked(&sk->sk_drops);
121696 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
121697 IS_UDPLITE(sk));
121698 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
121699 @@ -1823,6 +1844,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
121700 goto csum_error;
121701
121702 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
121703 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121704 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
121705 +#endif
121706 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
121707
121708 /*
121709 @@ -2427,7 +2451,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
121710 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
121711 0, sock_i_ino(sp),
121712 atomic_read(&sp->sk_refcnt), sp,
121713 - atomic_read(&sp->sk_drops));
121714 + atomic_read_unchecked(&sp->sk_drops));
121715 }
121716
121717 int udp4_seq_show(struct seq_file *seq, void *v)
121718 diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
121719 index bff6974..c63736c 100644
121720 --- a/net/ipv4/xfrm4_policy.c
121721 +++ b/net/ipv4/xfrm4_policy.c
121722 @@ -186,11 +186,11 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
121723 fl4->flowi4_tos = iph->tos;
121724 }
121725
121726 -static inline int xfrm4_garbage_collect(struct dst_ops *ops)
121727 +static int xfrm4_garbage_collect(struct dst_ops *ops)
121728 {
121729 struct net *net = container_of(ops, struct net, xfrm.xfrm4_dst_ops);
121730
121731 - xfrm4_policy_afinfo.garbage_collect(net);
121732 + xfrm_garbage_collect_deferred(net);
121733 return (dst_entries_get_slow(ops) > ops->gc_thresh * 2);
121734 }
121735
121736 @@ -268,19 +268,18 @@ static struct ctl_table xfrm4_policy_table[] = {
121737
121738 static int __net_init xfrm4_net_init(struct net *net)
121739 {
121740 - struct ctl_table *table;
121741 + ctl_table_no_const *table = NULL;
121742 struct ctl_table_header *hdr;
121743
121744 - table = xfrm4_policy_table;
121745 if (!net_eq(net, &init_net)) {
121746 - table = kmemdup(table, sizeof(xfrm4_policy_table), GFP_KERNEL);
121747 + table = kmemdup(xfrm4_policy_table, sizeof(xfrm4_policy_table), GFP_KERNEL);
121748 if (!table)
121749 goto err_alloc;
121750
121751 table[0].data = &net->xfrm.xfrm4_dst_ops.gc_thresh;
121752 - }
121753 -
121754 - hdr = register_net_sysctl(net, "net/ipv4", table);
121755 + hdr = register_net_sysctl(net, "net/ipv4", table);
121756 + } else
121757 + hdr = register_net_sysctl(net, "net/ipv4", xfrm4_policy_table);
121758 if (!hdr)
121759 goto err_reg;
121760
121761 @@ -288,8 +287,7 @@ static int __net_init xfrm4_net_init(struct net *net)
121762 return 0;
121763
121764 err_reg:
121765 - if (!net_eq(net, &init_net))
121766 - kfree(table);
121767 + kfree(table);
121768 err_alloc:
121769 return -ENOMEM;
121770 }
121771 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
121772 index 21c2c81..373c1ba 100644
121773 --- a/net/ipv6/addrconf.c
121774 +++ b/net/ipv6/addrconf.c
121775 @@ -178,7 +178,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
121776 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
121777 .mtu6 = IPV6_MIN_MTU,
121778 .accept_ra = 1,
121779 - .accept_redirects = 1,
121780 + .accept_redirects = 0,
121781 .autoconf = 1,
121782 .force_mld_version = 0,
121783 .mldv1_unsolicited_report_interval = 10 * HZ,
121784 @@ -219,7 +219,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
121785 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
121786 .mtu6 = IPV6_MIN_MTU,
121787 .accept_ra = 1,
121788 - .accept_redirects = 1,
121789 + .accept_redirects = 0,
121790 .autoconf = 1,
121791 .force_mld_version = 0,
121792 .mldv1_unsolicited_report_interval = 10 * HZ,
121793 @@ -620,7 +620,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
121794 idx = 0;
121795 head = &net->dev_index_head[h];
121796 rcu_read_lock();
121797 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^
121798 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^
121799 net->dev_base_seq;
121800 hlist_for_each_entry_rcu(dev, head, index_hlist) {
121801 if (idx < s_idx)
121802 @@ -2508,7 +2508,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
121803 p.iph.ihl = 5;
121804 p.iph.protocol = IPPROTO_IPV6;
121805 p.iph.ttl = 64;
121806 - ifr.ifr_ifru.ifru_data = (__force void __user *)&p;
121807 + ifr.ifr_ifru.ifru_data = (void __force_user *)&p;
121808
121809 if (ops->ndo_do_ioctl) {
121810 mm_segment_t oldfs = get_fs();
121811 @@ -3774,16 +3774,23 @@ static const struct file_operations if6_fops = {
121812 .release = seq_release_net,
121813 };
121814
121815 +extern void register_ipv6_seq_ops_addr(struct seq_operations *addr);
121816 +extern void unregister_ipv6_seq_ops_addr(void);
121817 +
121818 static int __net_init if6_proc_net_init(struct net *net)
121819 {
121820 - if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops))
121821 + register_ipv6_seq_ops_addr(&if6_seq_ops);
121822 + if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops)) {
121823 + unregister_ipv6_seq_ops_addr();
121824 return -ENOMEM;
121825 + }
121826 return 0;
121827 }
121828
121829 static void __net_exit if6_proc_net_exit(struct net *net)
121830 {
121831 remove_proc_entry("if_inet6", net->proc_net);
121832 + unregister_ipv6_seq_ops_addr();
121833 }
121834
121835 static struct pernet_operations if6_proc_net_ops = {
121836 @@ -4402,7 +4409,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
121837 s_ip_idx = ip_idx = cb->args[2];
121838
121839 rcu_read_lock();
121840 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
121841 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
121842 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
121843 idx = 0;
121844 head = &net->dev_index_head[h];
121845 @@ -5059,7 +5066,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
121846 rt_genid_bump_ipv6(net);
121847 break;
121848 }
121849 - atomic_inc(&net->ipv6.dev_addr_genid);
121850 + atomic_inc_unchecked(&net->ipv6.dev_addr_genid);
121851 }
121852
121853 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
121854 @@ -5079,7 +5086,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
121855 int *valp = ctl->data;
121856 int val = *valp;
121857 loff_t pos = *ppos;
121858 - struct ctl_table lctl;
121859 + ctl_table_no_const lctl;
121860 int ret;
121861
121862 /*
121863 @@ -5104,7 +5111,7 @@ int addrconf_sysctl_mtu(struct ctl_table *ctl, int write,
121864 {
121865 struct inet6_dev *idev = ctl->extra1;
121866 int min_mtu = IPV6_MIN_MTU;
121867 - struct ctl_table lctl;
121868 + ctl_table_no_const lctl;
121869
121870 lctl = *ctl;
121871 lctl.extra1 = &min_mtu;
121872 @@ -5179,7 +5186,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
121873 int *valp = ctl->data;
121874 int val = *valp;
121875 loff_t pos = *ppos;
121876 - struct ctl_table lctl;
121877 + ctl_table_no_const lctl;
121878 int ret;
121879
121880 /*
121881 @@ -5244,7 +5251,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
121882 int err;
121883 struct in6_addr addr;
121884 char str[IPV6_MAX_STRLEN];
121885 - struct ctl_table lctl = *ctl;
121886 + ctl_table_no_const lctl = *ctl;
121887 struct net *net = ctl->extra2;
121888 struct ipv6_stable_secret *secret = ctl->data;
121889
121890 diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
121891 index 7de52b6..ce7fb94 100644
121892 --- a/net/ipv6/af_inet6.c
121893 +++ b/net/ipv6/af_inet6.c
121894 @@ -770,7 +770,7 @@ static int __net_init inet6_net_init(struct net *net)
121895 net->ipv6.sysctl.idgen_retries = 3;
121896 net->ipv6.sysctl.idgen_delay = 1 * HZ;
121897 net->ipv6.sysctl.flowlabel_state_ranges = 1;
121898 - atomic_set(&net->ipv6.fib6_sernum, 1);
121899 + atomic_set_unchecked(&net->ipv6.fib6_sernum, 1);
121900
121901 err = ipv6_init_mibs(net);
121902 if (err)
121903 diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
121904 index b10a889..e881e1f 100644
121905 --- a/net/ipv6/datagram.c
121906 +++ b/net/ipv6/datagram.c
121907 @@ -977,5 +977,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
121908 0,
121909 sock_i_ino(sp),
121910 atomic_read(&sp->sk_refcnt), sp,
121911 - atomic_read(&sp->sk_drops));
121912 + atomic_read_unchecked(&sp->sk_drops));
121913 }
121914 diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
121915 index 713d743..8eec687 100644
121916 --- a/net/ipv6/icmp.c
121917 +++ b/net/ipv6/icmp.c
121918 @@ -1004,7 +1004,7 @@ static struct ctl_table ipv6_icmp_table_template[] = {
121919
121920 struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net)
121921 {
121922 - struct ctl_table *table;
121923 + ctl_table_no_const *table;
121924
121925 table = kmemdup(ipv6_icmp_table_template,
121926 sizeof(ipv6_icmp_table_template),
121927 diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
121928 index 548c623..bc8ec4f 100644
121929 --- a/net/ipv6/ip6_fib.c
121930 +++ b/net/ipv6/ip6_fib.c
121931 @@ -99,9 +99,9 @@ static int fib6_new_sernum(struct net *net)
121932 int new, old;
121933
121934 do {
121935 - old = atomic_read(&net->ipv6.fib6_sernum);
121936 + old = atomic_read_unchecked(&net->ipv6.fib6_sernum);
121937 new = old < INT_MAX ? old + 1 : 1;
121938 - } while (atomic_cmpxchg(&net->ipv6.fib6_sernum,
121939 + } while (atomic_cmpxchg_unchecked(&net->ipv6.fib6_sernum,
121940 old, new) != old);
121941 return new;
121942 }
121943 diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
121944 index 69f4f68..1f97524 100644
121945 --- a/net/ipv6/ip6_gre.c
121946 +++ b/net/ipv6/ip6_gre.c
121947 @@ -71,8 +71,8 @@ struct ip6gre_net {
121948 struct net_device *fb_tunnel_dev;
121949 };
121950
121951 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly;
121952 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly;
121953 +static struct rtnl_link_ops ip6gre_link_ops;
121954 +static struct rtnl_link_ops ip6gre_tap_ops;
121955 static int ip6gre_tunnel_init(struct net_device *dev);
121956 static void ip6gre_tunnel_setup(struct net_device *dev);
121957 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
121958 @@ -1281,7 +1281,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
121959 }
121960
121961
121962 -static struct inet6_protocol ip6gre_protocol __read_mostly = {
121963 +static struct inet6_protocol ip6gre_protocol = {
121964 .handler = ip6gre_rcv,
121965 .err_handler = ip6gre_err,
121966 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
121967 @@ -1640,7 +1640,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
121968 [IFLA_GRE_FLAGS] = { .type = NLA_U32 },
121969 };
121970
121971 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
121972 +static struct rtnl_link_ops ip6gre_link_ops = {
121973 .kind = "ip6gre",
121974 .maxtype = IFLA_GRE_MAX,
121975 .policy = ip6gre_policy,
121976 @@ -1655,7 +1655,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
121977 .get_link_net = ip6_tnl_get_link_net,
121978 };
121979
121980 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly = {
121981 +static struct rtnl_link_ops ip6gre_tap_ops = {
121982 .kind = "ip6gretap",
121983 .maxtype = IFLA_GRE_MAX,
121984 .policy = ip6gre_policy,
121985 diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
121986 index d5f7716..7da025a 100644
121987 --- a/net/ipv6/ip6_output.c
121988 +++ b/net/ipv6/ip6_output.c
121989 @@ -581,6 +581,8 @@ int ip6_fragment(struct sock *sk, struct sk_buff *skb,
121990 if (np->frag_size)
121991 mtu = np->frag_size;
121992 }
121993 + if (mtu < hlen + sizeof(struct frag_hdr) + 8)
121994 + goto fail_toobig;
121995 mtu -= hlen + sizeof(struct frag_hdr);
121996
121997 frag_id = ipv6_select_ident(net, &ipv6_hdr(skb)->daddr,
121998 diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
121999 index 2e67b66..b816b34 100644
122000 --- a/net/ipv6/ip6_tunnel.c
122001 +++ b/net/ipv6/ip6_tunnel.c
122002 @@ -80,7 +80,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
122003
122004 static int ip6_tnl_dev_init(struct net_device *dev);
122005 static void ip6_tnl_dev_setup(struct net_device *dev);
122006 -static struct rtnl_link_ops ip6_link_ops __read_mostly;
122007 +static struct rtnl_link_ops ip6_link_ops;
122008
122009 static int ip6_tnl_net_id __read_mostly;
122010 struct ip6_tnl_net {
122011 @@ -1776,7 +1776,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
122012 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },
122013 };
122014
122015 -static struct rtnl_link_ops ip6_link_ops __read_mostly = {
122016 +static struct rtnl_link_ops ip6_link_ops = {
122017 .kind = "ip6tnl",
122018 .maxtype = IFLA_IPTUN_MAX,
122019 .policy = ip6_tnl_policy,
122020 diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
122021 index 0224c03..c5ec3d9 100644
122022 --- a/net/ipv6/ip6_vti.c
122023 +++ b/net/ipv6/ip6_vti.c
122024 @@ -62,7 +62,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
122025
122026 static int vti6_dev_init(struct net_device *dev);
122027 static void vti6_dev_setup(struct net_device *dev);
122028 -static struct rtnl_link_ops vti6_link_ops __read_mostly;
122029 +static struct rtnl_link_ops vti6_link_ops;
122030
122031 static int vti6_net_id __read_mostly;
122032 struct vti6_net {
122033 @@ -1019,7 +1019,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
122034 [IFLA_VTI_OKEY] = { .type = NLA_U32 },
122035 };
122036
122037 -static struct rtnl_link_ops vti6_link_ops __read_mostly = {
122038 +static struct rtnl_link_ops vti6_link_ops = {
122039 .kind = "vti6",
122040 .maxtype = IFLA_VTI_MAX,
122041 .policy = vti6_policy,
122042 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
122043 index 63e6956..ebbbcf6 100644
122044 --- a/net/ipv6/ipv6_sockglue.c
122045 +++ b/net/ipv6/ipv6_sockglue.c
122046 @@ -1015,7 +1015,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
122047 if (sk->sk_type != SOCK_STREAM)
122048 return -ENOPROTOOPT;
122049
122050 - msg.msg_control = optval;
122051 + msg.msg_control = (void __force_kernel *)optval;
122052 msg.msg_controllen = len;
122053 msg.msg_flags = flags;
122054
122055 diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
122056 index 3c35ced..2e6882f 100644
122057 --- a/net/ipv6/netfilter/ip6_tables.c
122058 +++ b/net/ipv6/netfilter/ip6_tables.c
122059 @@ -1086,14 +1086,14 @@ static int compat_table_info(const struct xt_table_info *info,
122060 #endif
122061
122062 static int get_info(struct net *net, void __user *user,
122063 - const int *len, int compat)
122064 + int len, int compat)
122065 {
122066 char name[XT_TABLE_MAXNAMELEN];
122067 struct xt_table *t;
122068 int ret;
122069
122070 - if (*len != sizeof(struct ip6t_getinfo)) {
122071 - duprintf("length %u != %zu\n", *len,
122072 + if (len != sizeof(struct ip6t_getinfo)) {
122073 + duprintf("length %u != %zu\n", len,
122074 sizeof(struct ip6t_getinfo));
122075 return -EINVAL;
122076 }
122077 @@ -1130,7 +1130,7 @@ static int get_info(struct net *net, void __user *user,
122078 info.size = private->size;
122079 strcpy(info.name, name);
122080
122081 - if (copy_to_user(user, &info, *len) != 0)
122082 + if (copy_to_user(user, &info, len) != 0)
122083 ret = -EFAULT;
122084 else
122085 ret = 0;
122086 @@ -1978,7 +1978,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
122087
122088 switch (cmd) {
122089 case IP6T_SO_GET_INFO:
122090 - ret = get_info(sock_net(sk), user, len, 1);
122091 + ret = get_info(sock_net(sk), user, *len, 1);
122092 break;
122093 case IP6T_SO_GET_ENTRIES:
122094 ret = compat_get_entries(sock_net(sk), user, len);
122095 @@ -2025,7 +2025,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
122096
122097 switch (cmd) {
122098 case IP6T_SO_GET_INFO:
122099 - ret = get_info(sock_net(sk), user, len, 0);
122100 + ret = get_info(sock_net(sk), user, *len, 0);
122101 break;
122102
122103 case IP6T_SO_GET_ENTRIES:
122104 diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
122105 index 6d02498..55e564f 100644
122106 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
122107 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
122108 @@ -96,12 +96,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
122109
122110 static int nf_ct_frag6_sysctl_register(struct net *net)
122111 {
122112 - struct ctl_table *table;
122113 + ctl_table_no_const *table = NULL;
122114 struct ctl_table_header *hdr;
122115
122116 - table = nf_ct_frag6_sysctl_table;
122117 if (!net_eq(net, &init_net)) {
122118 - table = kmemdup(table, sizeof(nf_ct_frag6_sysctl_table),
122119 + table = kmemdup(nf_ct_frag6_sysctl_table, sizeof(nf_ct_frag6_sysctl_table),
122120 GFP_KERNEL);
122121 if (table == NULL)
122122 goto err_alloc;
122123 @@ -112,9 +111,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
122124 table[2].data = &net->nf_frag.frags.high_thresh;
122125 table[2].extra1 = &net->nf_frag.frags.low_thresh;
122126 table[2].extra2 = &init_net.nf_frag.frags.high_thresh;
122127 - }
122128 -
122129 - hdr = register_net_sysctl(net, "net/netfilter", table);
122130 + hdr = register_net_sysctl(net, "net/netfilter", table);
122131 + } else
122132 + hdr = register_net_sysctl(net, "net/netfilter", nf_ct_frag6_sysctl_table);
122133 if (hdr == NULL)
122134 goto err_reg;
122135
122136 @@ -122,8 +121,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
122137 return 0;
122138
122139 err_reg:
122140 - if (!net_eq(net, &init_net))
122141 - kfree(table);
122142 + kfree(table);
122143 err_alloc:
122144 return -ENOMEM;
122145 }
122146 diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
122147 index 263a516..692f738 100644
122148 --- a/net/ipv6/ping.c
122149 +++ b/net/ipv6/ping.c
122150 @@ -240,6 +240,24 @@ static struct pernet_operations ping_v6_net_ops = {
122151 };
122152 #endif
122153
122154 +static struct pingv6_ops real_pingv6_ops = {
122155 + .ipv6_recv_error = ipv6_recv_error,
122156 + .ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl,
122157 + .ip6_datagram_recv_specific_ctl = ip6_datagram_recv_specific_ctl,
122158 + .icmpv6_err_convert = icmpv6_err_convert,
122159 + .ipv6_icmp_error = ipv6_icmp_error,
122160 + .ipv6_chk_addr = ipv6_chk_addr,
122161 +};
122162 +
122163 +static struct pingv6_ops dummy_pingv6_ops = {
122164 + .ipv6_recv_error = dummy_ipv6_recv_error,
122165 + .ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl,
122166 + .ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl,
122167 + .icmpv6_err_convert = dummy_icmpv6_err_convert,
122168 + .ipv6_icmp_error = dummy_ipv6_icmp_error,
122169 + .ipv6_chk_addr = dummy_ipv6_chk_addr,
122170 +};
122171 +
122172 int __init pingv6_init(void)
122173 {
122174 #ifdef CONFIG_PROC_FS
122175 @@ -247,13 +265,7 @@ int __init pingv6_init(void)
122176 if (ret)
122177 return ret;
122178 #endif
122179 - pingv6_ops.ipv6_recv_error = ipv6_recv_error;
122180 - pingv6_ops.ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl;
122181 - pingv6_ops.ip6_datagram_recv_specific_ctl =
122182 - ip6_datagram_recv_specific_ctl;
122183 - pingv6_ops.icmpv6_err_convert = icmpv6_err_convert;
122184 - pingv6_ops.ipv6_icmp_error = ipv6_icmp_error;
122185 - pingv6_ops.ipv6_chk_addr = ipv6_chk_addr;
122186 + pingv6_ops = &real_pingv6_ops;
122187 return inet6_register_protosw(&pingv6_protosw);
122188 }
122189
122190 @@ -262,14 +274,9 @@ int __init pingv6_init(void)
122191 */
122192 void pingv6_exit(void)
122193 {
122194 - pingv6_ops.ipv6_recv_error = dummy_ipv6_recv_error;
122195 - pingv6_ops.ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl;
122196 - pingv6_ops.ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl;
122197 - pingv6_ops.icmpv6_err_convert = dummy_icmpv6_err_convert;
122198 - pingv6_ops.ipv6_icmp_error = dummy_ipv6_icmp_error;
122199 - pingv6_ops.ipv6_chk_addr = dummy_ipv6_chk_addr;
122200 #ifdef CONFIG_PROC_FS
122201 unregister_pernet_subsys(&ping_v6_net_ops);
122202 #endif
122203 + pingv6_ops = &dummy_pingv6_ops;
122204 inet6_unregister_protosw(&pingv6_protosw);
122205 }
122206 diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
122207 index 679253d0..70b653c 100644
122208 --- a/net/ipv6/proc.c
122209 +++ b/net/ipv6/proc.c
122210 @@ -310,7 +310,7 @@ static int __net_init ipv6_proc_init_net(struct net *net)
122211 if (!proc_create("snmp6", S_IRUGO, net->proc_net, &snmp6_seq_fops))
122212 goto proc_snmp6_fail;
122213
122214 - net->mib.proc_net_devsnmp6 = proc_mkdir("dev_snmp6", net->proc_net);
122215 + net->mib.proc_net_devsnmp6 = proc_mkdir_restrict("dev_snmp6", net->proc_net);
122216 if (!net->mib.proc_net_devsnmp6)
122217 goto proc_dev_snmp6_fail;
122218 return 0;
122219 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
122220 index ca4700c..e44c0f9 100644
122221 --- a/net/ipv6/raw.c
122222 +++ b/net/ipv6/raw.c
122223 @@ -388,7 +388,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
122224 {
122225 if ((raw6_sk(sk)->checksum || rcu_access_pointer(sk->sk_filter)) &&
122226 skb_checksum_complete(skb)) {
122227 - atomic_inc(&sk->sk_drops);
122228 + atomic_inc_unchecked(&sk->sk_drops);
122229 kfree_skb(skb);
122230 return NET_RX_DROP;
122231 }
122232 @@ -416,7 +416,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
122233 struct raw6_sock *rp = raw6_sk(sk);
122234
122235 if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
122236 - atomic_inc(&sk->sk_drops);
122237 + atomic_inc_unchecked(&sk->sk_drops);
122238 kfree_skb(skb);
122239 return NET_RX_DROP;
122240 }
122241 @@ -440,7 +440,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
122242
122243 if (inet->hdrincl) {
122244 if (skb_checksum_complete(skb)) {
122245 - atomic_inc(&sk->sk_drops);
122246 + atomic_inc_unchecked(&sk->sk_drops);
122247 kfree_skb(skb);
122248 return NET_RX_DROP;
122249 }
122250 @@ -608,7 +608,7 @@ out:
122251 return err;
122252 }
122253
122254 -static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
122255 +static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, unsigned int length,
122256 struct flowi6 *fl6, struct dst_entry **dstp,
122257 unsigned int flags)
122258 {
122259 @@ -916,12 +916,15 @@ do_confirm:
122260 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
122261 char __user *optval, int optlen)
122262 {
122263 + struct icmp6_filter filter;
122264 +
122265 switch (optname) {
122266 case ICMPV6_FILTER:
122267 if (optlen > sizeof(struct icmp6_filter))
122268 optlen = sizeof(struct icmp6_filter);
122269 - if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen))
122270 + if (copy_from_user(&filter, optval, optlen))
122271 return -EFAULT;
122272 + raw6_sk(sk)->filter = filter;
122273 return 0;
122274 default:
122275 return -ENOPROTOOPT;
122276 @@ -934,6 +937,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
122277 char __user *optval, int __user *optlen)
122278 {
122279 int len;
122280 + struct icmp6_filter filter;
122281
122282 switch (optname) {
122283 case ICMPV6_FILTER:
122284 @@ -945,7 +949,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
122285 len = sizeof(struct icmp6_filter);
122286 if (put_user(len, optlen))
122287 return -EFAULT;
122288 - if (copy_to_user(optval, &raw6_sk(sk)->filter, len))
122289 + filter = raw6_sk(sk)->filter;
122290 + if (len > sizeof filter || copy_to_user(optval, &filter, len))
122291 return -EFAULT;
122292 return 0;
122293 default:
122294 diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
122295 index f1159bb..0db5dad 100644
122296 --- a/net/ipv6/reassembly.c
122297 +++ b/net/ipv6/reassembly.c
122298 @@ -626,12 +626,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
122299
122300 static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
122301 {
122302 - struct ctl_table *table;
122303 + ctl_table_no_const *table = NULL;
122304 struct ctl_table_header *hdr;
122305
122306 - table = ip6_frags_ns_ctl_table;
122307 if (!net_eq(net, &init_net)) {
122308 - table = kmemdup(table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
122309 + table = kmemdup(ip6_frags_ns_ctl_table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
122310 if (!table)
122311 goto err_alloc;
122312
122313 @@ -645,9 +644,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
122314 /* Don't export sysctls to unprivileged users */
122315 if (net->user_ns != &init_user_ns)
122316 table[0].procname = NULL;
122317 - }
122318 + hdr = register_net_sysctl(net, "net/ipv6", table);
122319 + } else
122320 + hdr = register_net_sysctl(net, "net/ipv6", ip6_frags_ns_ctl_table);
122321
122322 - hdr = register_net_sysctl(net, "net/ipv6", table);
122323 if (!hdr)
122324 goto err_reg;
122325
122326 @@ -655,8 +655,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
122327 return 0;
122328
122329 err_reg:
122330 - if (!net_eq(net, &init_net))
122331 - kfree(table);
122332 + kfree(table);
122333 err_alloc:
122334 return -ENOMEM;
122335 }
122336 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
122337 index dd6ebba..69d56e8 100644
122338 --- a/net/ipv6/route.c
122339 +++ b/net/ipv6/route.c
122340 @@ -3432,7 +3432,7 @@ struct ctl_table ipv6_route_table_template[] = {
122341
122342 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
122343 {
122344 - struct ctl_table *table;
122345 + ctl_table_no_const *table;
122346
122347 table = kmemdup(ipv6_route_table_template,
122348 sizeof(ipv6_route_table_template),
122349 diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
122350 index ac35a28..070cc8c 100644
122351 --- a/net/ipv6/sit.c
122352 +++ b/net/ipv6/sit.c
122353 @@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
122354 static void ipip6_dev_free(struct net_device *dev);
122355 static bool check_6rd(struct ip_tunnel *tunnel, const struct in6_addr *v6dst,
122356 __be32 *v4dst);
122357 -static struct rtnl_link_ops sit_link_ops __read_mostly;
122358 +static struct rtnl_link_ops sit_link_ops;
122359
122360 static int sit_net_id __read_mostly;
122361 struct sit_net {
122362 @@ -1749,7 +1749,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
122363 unregister_netdevice_queue(dev, head);
122364 }
122365
122366 -static struct rtnl_link_ops sit_link_ops __read_mostly = {
122367 +static struct rtnl_link_ops sit_link_ops = {
122368 .kind = "sit",
122369 .maxtype = IFLA_IPTUN_MAX,
122370 .policy = ipip6_policy,
122371 diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
122372 index 4e705ad..9ba8db8 100644
122373 --- a/net/ipv6/sysctl_net_ipv6.c
122374 +++ b/net/ipv6/sysctl_net_ipv6.c
122375 @@ -99,7 +99,7 @@ static struct ctl_table ipv6_rotable[] = {
122376
122377 static int __net_init ipv6_sysctl_net_init(struct net *net)
122378 {
122379 - struct ctl_table *ipv6_table;
122380 + ctl_table_no_const *ipv6_table;
122381 struct ctl_table *ipv6_route_table;
122382 struct ctl_table *ipv6_icmp_table;
122383 int err;
122384 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
122385 index 7a6cea5..1a99e26 100644
122386 --- a/net/ipv6/tcp_ipv6.c
122387 +++ b/net/ipv6/tcp_ipv6.c
122388 @@ -103,6 +103,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
122389 }
122390 }
122391
122392 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122393 +extern int grsec_enable_blackhole;
122394 +#endif
122395 +
122396 static __u32 tcp_v6_init_sequence(const struct sk_buff *skb)
122397 {
122398 return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32,
122399 @@ -1280,6 +1284,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
122400 return 0;
122401
122402 reset:
122403 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122404 + if (!grsec_enable_blackhole)
122405 +#endif
122406 tcp_v6_send_reset(sk, skb);
122407 discard:
122408 if (opt_skb)
122409 @@ -1389,12 +1396,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
122410
122411 sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest,
122412 inet6_iif(skb));
122413 - if (!sk)
122414 + if (!sk) {
122415 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122416 + ret = 1;
122417 +#endif
122418 goto no_tcp_socket;
122419 + }
122420
122421 process:
122422 - if (sk->sk_state == TCP_TIME_WAIT)
122423 + if (sk->sk_state == TCP_TIME_WAIT) {
122424 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122425 + ret = 2;
122426 +#endif
122427 goto do_time_wait;
122428 + }
122429
122430 if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) {
122431 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
122432 @@ -1446,6 +1461,10 @@ csum_error:
122433 bad_packet:
122434 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
122435 } else {
122436 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122437 + if (!grsec_enable_blackhole || (ret == 1 &&
122438 + (skb->dev->flags & IFF_LOOPBACK)))
122439 +#endif
122440 tcp_v6_send_reset(NULL, skb);
122441 }
122442
122443 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
122444 index e51fc3e..8f04229 100644
122445 --- a/net/ipv6/udp.c
122446 +++ b/net/ipv6/udp.c
122447 @@ -76,6 +76,10 @@ static u32 udp6_ehashfn(const struct net *net,
122448 udp_ipv6_hash_secret + net_hash_mix(net));
122449 }
122450
122451 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122452 +extern int grsec_enable_blackhole;
122453 +#endif
122454 +
122455 int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
122456 {
122457 const struct in6_addr *sk2_rcv_saddr6 = inet6_rcv_saddr(sk2);
122458 @@ -445,7 +449,7 @@ try_again:
122459 if (unlikely(err)) {
122460 trace_kfree_skb(skb, udpv6_recvmsg);
122461 if (!peeked) {
122462 - atomic_inc(&sk->sk_drops);
122463 + atomic_inc_unchecked(&sk->sk_drops);
122464 if (is_udp4)
122465 UDP_INC_STATS_USER(sock_net(sk),
122466 UDP_MIB_INERRORS,
122467 @@ -709,7 +713,7 @@ csum_error:
122468 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
122469 drop:
122470 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
122471 - atomic_inc(&sk->sk_drops);
122472 + atomic_inc_unchecked(&sk->sk_drops);
122473 kfree_skb(skb);
122474 return -1;
122475 }
122476 @@ -750,7 +754,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
122477 if (likely(!skb1))
122478 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
122479 if (!skb1) {
122480 - atomic_inc(&sk->sk_drops);
122481 + atomic_inc_unchecked(&sk->sk_drops);
122482 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
122483 IS_UDPLITE(sk));
122484 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
122485 @@ -934,6 +938,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
122486 goto csum_error;
122487
122488 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
122489 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
122490 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
122491 +#endif
122492 icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
122493
122494 kfree_skb(skb);
122495 diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
122496 index ed0583c..606962a 100644
122497 --- a/net/ipv6/xfrm6_policy.c
122498 +++ b/net/ipv6/xfrm6_policy.c
122499 @@ -174,7 +174,8 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
122500 return;
122501
122502 case IPPROTO_ICMPV6:
122503 - if (!onlyproto && pskb_may_pull(skb, nh + offset + 2 - skb->data)) {
122504 + if (!onlyproto && (nh + offset + 2 < skb->data ||
122505 + pskb_may_pull(skb, nh + offset + 2 - skb->data))) {
122506 u8 *icmp;
122507
122508 nh = skb_network_header(skb);
122509 @@ -188,7 +189,8 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
122510 #if IS_ENABLED(CONFIG_IPV6_MIP6)
122511 case IPPROTO_MH:
122512 offset += ipv6_optlen(exthdr);
122513 - if (!onlyproto && pskb_may_pull(skb, nh + offset + 3 - skb->data)) {
122514 + if (!onlyproto && (nh + offset + 3 < skb->data ||
122515 + pskb_may_pull(skb, nh + offset + 3 - skb->data))) {
122516 struct ip6_mh *mh;
122517
122518 nh = skb_network_header(skb);
122519 @@ -211,11 +213,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
122520 }
122521 }
122522
122523 -static inline int xfrm6_garbage_collect(struct dst_ops *ops)
122524 +static int xfrm6_garbage_collect(struct dst_ops *ops)
122525 {
122526 struct net *net = container_of(ops, struct net, xfrm.xfrm6_dst_ops);
122527
122528 - xfrm6_policy_afinfo.garbage_collect(net);
122529 + xfrm_garbage_collect_deferred(net);
122530 return dst_entries_get_fast(ops) > ops->gc_thresh * 2;
122531 }
122532
122533 @@ -322,19 +324,19 @@ static struct ctl_table xfrm6_policy_table[] = {
122534
122535 static int __net_init xfrm6_net_init(struct net *net)
122536 {
122537 - struct ctl_table *table;
122538 + ctl_table_no_const *table = NULL;
122539 struct ctl_table_header *hdr;
122540
122541 - table = xfrm6_policy_table;
122542 if (!net_eq(net, &init_net)) {
122543 - table = kmemdup(table, sizeof(xfrm6_policy_table), GFP_KERNEL);
122544 + table = kmemdup(xfrm6_policy_table, sizeof(xfrm6_policy_table), GFP_KERNEL);
122545 if (!table)
122546 goto err_alloc;
122547
122548 table[0].data = &net->xfrm.xfrm6_dst_ops.gc_thresh;
122549 - }
122550 + hdr = register_net_sysctl(net, "net/ipv6", table);
122551 + } else
122552 + hdr = register_net_sysctl(net, "net/ipv6", xfrm6_policy_table);
122553
122554 - hdr = register_net_sysctl(net, "net/ipv6", table);
122555 if (!hdr)
122556 goto err_reg;
122557
122558 @@ -342,8 +344,7 @@ static int __net_init xfrm6_net_init(struct net *net)
122559 return 0;
122560
122561 err_reg:
122562 - if (!net_eq(net, &init_net))
122563 - kfree(table);
122564 + kfree(table);
122565 err_alloc:
122566 return -ENOMEM;
122567 }
122568 diff --git a/net/ipx/ipx_proc.c b/net/ipx/ipx_proc.c
122569 index c1d247e..9e5949d 100644
122570 --- a/net/ipx/ipx_proc.c
122571 +++ b/net/ipx/ipx_proc.c
122572 @@ -289,7 +289,7 @@ int __init ipx_proc_init(void)
122573 struct proc_dir_entry *p;
122574 int rc = -ENOMEM;
122575
122576 - ipx_proc_dir = proc_mkdir("ipx", init_net.proc_net);
122577 + ipx_proc_dir = proc_mkdir_restrict("ipx", init_net.proc_net);
122578
122579 if (!ipx_proc_dir)
122580 goto out;
122581 diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c
122582 index 683346d..cb0e12d 100644
122583 --- a/net/irda/ircomm/ircomm_tty.c
122584 +++ b/net/irda/ircomm/ircomm_tty.c
122585 @@ -310,10 +310,10 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
122586 add_wait_queue(&port->open_wait, &wait);
122587
122588 pr_debug("%s(%d):block_til_ready before block on %s open_count=%d\n",
122589 - __FILE__, __LINE__, tty->driver->name, port->count);
122590 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
122591
122592 spin_lock_irqsave(&port->lock, flags);
122593 - port->count--;
122594 + atomic_dec(&port->count);
122595 port->blocked_open++;
122596 spin_unlock_irqrestore(&port->lock, flags);
122597
122598 @@ -348,7 +348,7 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
122599 }
122600
122601 pr_debug("%s(%d):block_til_ready blocking on %s open_count=%d\n",
122602 - __FILE__, __LINE__, tty->driver->name, port->count);
122603 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
122604
122605 schedule();
122606 }
122607 @@ -358,12 +358,12 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
122608
122609 spin_lock_irqsave(&port->lock, flags);
122610 if (!tty_hung_up_p(filp))
122611 - port->count++;
122612 + atomic_inc(&port->count);
122613 port->blocked_open--;
122614 spin_unlock_irqrestore(&port->lock, flags);
122615
122616 pr_debug("%s(%d):block_til_ready after blocking on %s open_count=%d\n",
122617 - __FILE__, __LINE__, tty->driver->name, port->count);
122618 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
122619
122620 if (!retval)
122621 port->flags |= ASYNC_NORMAL_ACTIVE;
122622 @@ -433,12 +433,12 @@ static int ircomm_tty_open(struct tty_struct *tty, struct file *filp)
122623
122624 /* ++ is not atomic, so this should be protected - Jean II */
122625 spin_lock_irqsave(&self->port.lock, flags);
122626 - self->port.count++;
122627 + atomic_inc(&self->port.count);
122628 spin_unlock_irqrestore(&self->port.lock, flags);
122629 tty_port_tty_set(&self->port, tty);
122630
122631 pr_debug("%s(), %s%d, count = %d\n", __func__ , tty->driver->name,
122632 - self->line, self->port.count);
122633 + self->line, atomic_read(&self->port.count));
122634
122635 /* Not really used by us, but lets do it anyway */
122636 self->port.low_latency = (self->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
122637 @@ -961,7 +961,7 @@ static void ircomm_tty_hangup(struct tty_struct *tty)
122638 tty_kref_put(port->tty);
122639 }
122640 port->tty = NULL;
122641 - port->count = 0;
122642 + atomic_set(&port->count, 0);
122643 spin_unlock_irqrestore(&port->lock, flags);
122644
122645 wake_up_interruptible(&port->open_wait);
122646 @@ -1308,7 +1308,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
122647 seq_putc(m, '\n');
122648
122649 seq_printf(m, "Role: %s\n", self->client ? "client" : "server");
122650 - seq_printf(m, "Open count: %d\n", self->port.count);
122651 + seq_printf(m, "Open count: %d\n", atomic_read(&self->port.count));
122652 seq_printf(m, "Max data size: %d\n", self->max_data_size);
122653 seq_printf(m, "Max header size: %d\n", self->max_header_size);
122654
122655 diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c
122656 index a26c401..4396459 100644
122657 --- a/net/irda/irlmp.c
122658 +++ b/net/irda/irlmp.c
122659 @@ -1839,7 +1839,7 @@ static void *irlmp_seq_hb_idx(struct irlmp_iter_state *iter, loff_t *off)
122660 for (element = hashbin_get_first(iter->hashbin);
122661 element != NULL;
122662 element = hashbin_get_next(iter->hashbin)) {
122663 - if (!off || *off-- == 0) {
122664 + if (!off || (*off)-- == 0) {
122665 /* NB: hashbin left locked */
122666 return element;
122667 }
122668 diff --git a/net/irda/irproc.c b/net/irda/irproc.c
122669 index b9ac598..f88cc56 100644
122670 --- a/net/irda/irproc.c
122671 +++ b/net/irda/irproc.c
122672 @@ -66,7 +66,7 @@ void __init irda_proc_register(void)
122673 {
122674 int i;
122675
122676 - proc_irda = proc_mkdir("irda", init_net.proc_net);
122677 + proc_irda = proc_mkdir_restrict("irda", init_net.proc_net);
122678 if (proc_irda == NULL)
122679 return;
122680
122681 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
122682 index 918151c..5bbe95a 100644
122683 --- a/net/iucv/af_iucv.c
122684 +++ b/net/iucv/af_iucv.c
122685 @@ -686,10 +686,10 @@ static void __iucv_auto_name(struct iucv_sock *iucv)
122686 {
122687 char name[12];
122688
122689 - sprintf(name, "%08x", atomic_inc_return(&iucv_sk_list.autobind_name));
122690 + sprintf(name, "%08x", atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
122691 while (__iucv_get_sock_by_name(name)) {
122692 sprintf(name, "%08x",
122693 - atomic_inc_return(&iucv_sk_list.autobind_name));
122694 + atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
122695 }
122696 memcpy(iucv->src_name, name, 8);
122697 }
122698 diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
122699 index 2a6a1fd..6c112b0 100644
122700 --- a/net/iucv/iucv.c
122701 +++ b/net/iucv/iucv.c
122702 @@ -702,7 +702,7 @@ static int iucv_cpu_notify(struct notifier_block *self,
122703 return NOTIFY_OK;
122704 }
122705
122706 -static struct notifier_block __refdata iucv_cpu_notifier = {
122707 +static struct notifier_block iucv_cpu_notifier = {
122708 .notifier_call = iucv_cpu_notify,
122709 };
122710
122711 diff --git a/net/key/af_key.c b/net/key/af_key.c
122712 index 83a7068..facf2f0 100644
122713 --- a/net/key/af_key.c
122714 +++ b/net/key/af_key.c
122715 @@ -3050,10 +3050,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
122716 static u32 get_acqseq(void)
122717 {
122718 u32 res;
122719 - static atomic_t acqseq;
122720 + static atomic_unchecked_t acqseq;
122721
122722 do {
122723 - res = atomic_inc_return(&acqseq);
122724 + res = atomic_inc_return_unchecked(&acqseq);
122725 } while (!res);
122726 return res;
122727 }
122728 diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
122729 index 4b55287..bd247f7 100644
122730 --- a/net/l2tp/l2tp_eth.c
122731 +++ b/net/l2tp/l2tp_eth.c
122732 @@ -42,12 +42,12 @@ struct l2tp_eth {
122733 struct sock *tunnel_sock;
122734 struct l2tp_session *session;
122735 struct list_head list;
122736 - atomic_long_t tx_bytes;
122737 - atomic_long_t tx_packets;
122738 - atomic_long_t tx_dropped;
122739 - atomic_long_t rx_bytes;
122740 - atomic_long_t rx_packets;
122741 - atomic_long_t rx_errors;
122742 + atomic_long_unchecked_t tx_bytes;
122743 + atomic_long_unchecked_t tx_packets;
122744 + atomic_long_unchecked_t tx_dropped;
122745 + atomic_long_unchecked_t rx_bytes;
122746 + atomic_long_unchecked_t rx_packets;
122747 + atomic_long_unchecked_t rx_errors;
122748 };
122749
122750 /* via l2tp_session_priv() */
122751 @@ -98,10 +98,10 @@ static int l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev)
122752 int ret = l2tp_xmit_skb(session, skb, session->hdr_len);
122753
122754 if (likely(ret == NET_XMIT_SUCCESS)) {
122755 - atomic_long_add(len, &priv->tx_bytes);
122756 - atomic_long_inc(&priv->tx_packets);
122757 + atomic_long_add_unchecked(len, &priv->tx_bytes);
122758 + atomic_long_inc_unchecked(&priv->tx_packets);
122759 } else {
122760 - atomic_long_inc(&priv->tx_dropped);
122761 + atomic_long_inc_unchecked(&priv->tx_dropped);
122762 }
122763 return NETDEV_TX_OK;
122764 }
122765 @@ -111,12 +111,12 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
122766 {
122767 struct l2tp_eth *priv = netdev_priv(dev);
122768
122769 - stats->tx_bytes = atomic_long_read(&priv->tx_bytes);
122770 - stats->tx_packets = atomic_long_read(&priv->tx_packets);
122771 - stats->tx_dropped = atomic_long_read(&priv->tx_dropped);
122772 - stats->rx_bytes = atomic_long_read(&priv->rx_bytes);
122773 - stats->rx_packets = atomic_long_read(&priv->rx_packets);
122774 - stats->rx_errors = atomic_long_read(&priv->rx_errors);
122775 + stats->tx_bytes = atomic_long_read_unchecked(&priv->tx_bytes);
122776 + stats->tx_packets = atomic_long_read_unchecked(&priv->tx_packets);
122777 + stats->tx_dropped = atomic_long_read_unchecked(&priv->tx_dropped);
122778 + stats->rx_bytes = atomic_long_read_unchecked(&priv->rx_bytes);
122779 + stats->rx_packets = atomic_long_read_unchecked(&priv->rx_packets);
122780 + stats->rx_errors = atomic_long_read_unchecked(&priv->rx_errors);
122781 return stats;
122782 }
122783
122784 @@ -167,15 +167,15 @@ static void l2tp_eth_dev_recv(struct l2tp_session *session, struct sk_buff *skb,
122785 nf_reset(skb);
122786
122787 if (dev_forward_skb(dev, skb) == NET_RX_SUCCESS) {
122788 - atomic_long_inc(&priv->rx_packets);
122789 - atomic_long_add(data_len, &priv->rx_bytes);
122790 + atomic_long_inc_unchecked(&priv->rx_packets);
122791 + atomic_long_add_unchecked(data_len, &priv->rx_bytes);
122792 } else {
122793 - atomic_long_inc(&priv->rx_errors);
122794 + atomic_long_inc_unchecked(&priv->rx_errors);
122795 }
122796 return;
122797
122798 error:
122799 - atomic_long_inc(&priv->rx_errors);
122800 + atomic_long_inc_unchecked(&priv->rx_errors);
122801 kfree_skb(skb);
122802 }
122803
122804 diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
122805 index 7964993..2c48a3a 100644
122806 --- a/net/l2tp/l2tp_ip.c
122807 +++ b/net/l2tp/l2tp_ip.c
122808 @@ -608,7 +608,7 @@ static struct inet_protosw l2tp_ip_protosw = {
122809 .ops = &l2tp_ip_ops,
122810 };
122811
122812 -static struct net_protocol l2tp_ip_protocol __read_mostly = {
122813 +static const struct net_protocol l2tp_ip_protocol = {
122814 .handler = l2tp_ip_recv,
122815 .netns_ok = 1,
122816 };
122817 diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
122818 index d1ded37..c0d1e49 100644
122819 --- a/net/l2tp/l2tp_ip6.c
122820 +++ b/net/l2tp/l2tp_ip6.c
122821 @@ -755,7 +755,7 @@ static struct inet_protosw l2tp_ip6_protosw = {
122822 .ops = &l2tp_ip6_ops,
122823 };
122824
122825 -static struct inet6_protocol l2tp_ip6_protocol __read_mostly = {
122826 +static const struct inet6_protocol l2tp_ip6_protocol = {
122827 .handler = l2tp_ip6_recv,
122828 };
122829
122830 diff --git a/net/llc/llc_proc.c b/net/llc/llc_proc.c
122831 index 1a3c7e0..80f8b0c 100644
122832 --- a/net/llc/llc_proc.c
122833 +++ b/net/llc/llc_proc.c
122834 @@ -247,7 +247,7 @@ int __init llc_proc_init(void)
122835 int rc = -ENOMEM;
122836 struct proc_dir_entry *p;
122837
122838 - llc_proc_dir = proc_mkdir("llc", init_net.proc_net);
122839 + llc_proc_dir = proc_mkdir_restrict("llc", init_net.proc_net);
122840 if (!llc_proc_dir)
122841 goto out;
122842
122843 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
122844 index bf7023f..86a5bc6 100644
122845 --- a/net/mac80211/cfg.c
122846 +++ b/net/mac80211/cfg.c
122847 @@ -580,7 +580,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
122848 ret = ieee80211_vif_use_channel(sdata, chandef,
122849 IEEE80211_CHANCTX_EXCLUSIVE);
122850 }
122851 - } else if (local->open_count == local->monitors) {
122852 + } else if (local_read(&local->open_count) == local->monitors) {
122853 local->_oper_chandef = *chandef;
122854 ieee80211_hw_config(local, 0);
122855 }
122856 @@ -3488,7 +3488,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
122857 else
122858 local->probe_req_reg--;
122859
122860 - if (!local->open_count)
122861 + if (!local_read(&local->open_count))
122862 break;
122863
122864 ieee80211_queue_work(&local->hw, &local->reconfig_filter);
122865 @@ -3637,8 +3637,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
122866 if (chanctx_conf) {
122867 *chandef = sdata->vif.bss_conf.chandef;
122868 ret = 0;
122869 - } else if (local->open_count > 0 &&
122870 - local->open_count == local->monitors &&
122871 + } else if (local_read(&local->open_count) > 0 &&
122872 + local_read(&local->open_count) == local->monitors &&
122873 sdata->vif.type == NL80211_IFTYPE_MONITOR) {
122874 if (local->use_chanctx)
122875 *chandef = local->monitor_chandef;
122876 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
122877 index b12f615..a264a60 100644
122878 --- a/net/mac80211/ieee80211_i.h
122879 +++ b/net/mac80211/ieee80211_i.h
122880 @@ -30,6 +30,7 @@
122881 #include <net/ieee80211_radiotap.h>
122882 #include <net/cfg80211.h>
122883 #include <net/mac80211.h>
122884 +#include <asm/local.h>
122885 #include "key.h"
122886 #include "sta_info.h"
122887 #include "debug.h"
122888 @@ -1112,7 +1113,7 @@ struct ieee80211_local {
122889 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
122890 spinlock_t queue_stop_reason_lock;
122891
122892 - int open_count;
122893 + local_t open_count;
122894 int monitors, cooked_mntrs;
122895 /* number of interfaces with corresponding FIF_ flags */
122896 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
122897 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
122898 index 553ac6d..d2480da 100644
122899 --- a/net/mac80211/iface.c
122900 +++ b/net/mac80211/iface.c
122901 @@ -550,7 +550,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122902 break;
122903 }
122904
122905 - if (local->open_count == 0) {
122906 + if (local_read(&local->open_count) == 0) {
122907 res = drv_start(local);
122908 if (res)
122909 goto err_del_bss;
122910 @@ -597,7 +597,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122911 res = drv_add_interface(local, sdata);
122912 if (res)
122913 goto err_stop;
122914 - } else if (local->monitors == 0 && local->open_count == 0) {
122915 + } else if (local->monitors == 0 && local_read(&local->open_count) == 0) {
122916 res = ieee80211_add_virtual_monitor(local);
122917 if (res)
122918 goto err_stop;
122919 @@ -704,7 +704,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122920 atomic_inc(&local->iff_allmultis);
122921
122922 if (coming_up)
122923 - local->open_count++;
122924 + local_inc(&local->open_count);
122925
122926 if (hw_reconf_flags)
122927 ieee80211_hw_config(local, hw_reconf_flags);
122928 @@ -742,7 +742,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122929 err_del_interface:
122930 drv_remove_interface(local, sdata);
122931 err_stop:
122932 - if (!local->open_count)
122933 + if (!local_read(&local->open_count))
122934 drv_stop(local);
122935 err_del_bss:
122936 sdata->bss = NULL;
122937 @@ -909,7 +909,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122938 }
122939
122940 if (going_down)
122941 - local->open_count--;
122942 + local_dec(&local->open_count);
122943
122944 switch (sdata->vif.type) {
122945 case NL80211_IFTYPE_AP_VLAN:
122946 @@ -978,7 +978,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122947 atomic_set(&sdata->txqs_len[txqi->txq.ac], 0);
122948 }
122949
122950 - if (local->open_count == 0)
122951 + if (local_read(&local->open_count) == 0)
122952 ieee80211_clear_tx_pending(local);
122953
122954 /*
122955 @@ -1021,7 +1021,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122956 if (cancel_scan)
122957 flush_delayed_work(&local->scan_work);
122958
122959 - if (local->open_count == 0) {
122960 + if (local_read(&local->open_count) == 0) {
122961 ieee80211_stop_device(local);
122962
122963 /* no reconfiguring after stop! */
122964 @@ -1032,7 +1032,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122965 ieee80211_configure_filter(local);
122966 ieee80211_hw_config(local, hw_reconf_flags);
122967
122968 - if (local->monitors == local->open_count)
122969 + if (local->monitors == local_read(&local->open_count))
122970 ieee80211_add_virtual_monitor(local);
122971 }
122972
122973 @@ -1884,8 +1884,8 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
122974 */
122975 cfg80211_shutdown_all_interfaces(local->hw.wiphy);
122976
122977 - WARN(local->open_count, "%s: open count remains %d\n",
122978 - wiphy_name(local->hw.wiphy), local->open_count);
122979 + WARN(local_read(&local->open_count), "%s: open count remains %ld\n",
122980 + wiphy_name(local->hw.wiphy), local_read(&local->open_count));
122981
122982 mutex_lock(&local->iflist_mtx);
122983 list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
122984 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
122985 index 3c63468..b5c285f 100644
122986 --- a/net/mac80211/main.c
122987 +++ b/net/mac80211/main.c
122988 @@ -172,7 +172,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
122989 changed &= ~(IEEE80211_CONF_CHANGE_CHANNEL |
122990 IEEE80211_CONF_CHANGE_POWER);
122991
122992 - if (changed && local->open_count) {
122993 + if (changed && local_read(&local->open_count)) {
122994 ret = drv_config(local, changed);
122995 /*
122996 * Goal:
122997 diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
122998 index b676b9f..395dd95 100644
122999 --- a/net/mac80211/pm.c
123000 +++ b/net/mac80211/pm.c
123001 @@ -12,7 +12,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
123002 struct ieee80211_sub_if_data *sdata;
123003 struct sta_info *sta;
123004
123005 - if (!local->open_count)
123006 + if (!local_read(&local->open_count))
123007 goto suspend;
123008
123009 ieee80211_scan_cancel(local);
123010 @@ -166,7 +166,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
123011 WARN_ON(!list_empty(&local->chanctx_list));
123012
123013 /* stop hardware - this must stop RX */
123014 - if (local->open_count)
123015 + if (local_read(&local->open_count))
123016 ieee80211_stop_device(local);
123017
123018 suspend:
123019 diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
123020 index fda33f9..0e7d4c0 100644
123021 --- a/net/mac80211/rate.c
123022 +++ b/net/mac80211/rate.c
123023 @@ -730,7 +730,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
123024
123025 ASSERT_RTNL();
123026
123027 - if (local->open_count)
123028 + if (local_read(&local->open_count))
123029 return -EBUSY;
123030
123031 if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL)) {
123032 diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
123033 index 666ddac..0cad93b 100644
123034 --- a/net/mac80211/sta_info.c
123035 +++ b/net/mac80211/sta_info.c
123036 @@ -341,7 +341,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
123037 int size = sizeof(struct txq_info) +
123038 ALIGN(hw->txq_data_size, sizeof(void *));
123039
123040 - txq_data = kcalloc(ARRAY_SIZE(sta->sta.txq), size, gfp);
123041 + txq_data = kcalloc(size, ARRAY_SIZE(sta->sta.txq), gfp);
123042 if (!txq_data)
123043 goto free;
123044
123045 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
123046 index 43e5aad..d117c3a 100644
123047 --- a/net/mac80211/util.c
123048 +++ b/net/mac80211/util.c
123049 @@ -1761,7 +1761,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123050 bool sched_scan_stopped = false;
123051
123052 /* nothing to do if HW shouldn't run */
123053 - if (!local->open_count)
123054 + if (!local_read(&local->open_count))
123055 goto wake_up;
123056
123057 #ifdef CONFIG_PM
123058 @@ -2033,7 +2033,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123059 local->in_reconfig = false;
123060 barrier();
123061
123062 - if (local->monitors == local->open_count && local->monitors > 0)
123063 + if (local->monitors == local_read(&local->open_count) && local->monitors > 0)
123064 ieee80211_add_virtual_monitor(local);
123065
123066 /*
123067 @@ -2088,7 +2088,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123068 * If this is for hw restart things are still running.
123069 * We may want to change that later, however.
123070 */
123071 - if (local->open_count && (!local->suspended || reconfig_due_to_wowlan))
123072 + if (local_read(&local->open_count) && (!local->suspended || reconfig_due_to_wowlan))
123073 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_RESTART);
123074
123075 if (!local->suspended)
123076 @@ -2112,7 +2112,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
123077 flush_delayed_work(&local->scan_work);
123078 }
123079
123080 - if (local->open_count && !reconfig_due_to_wowlan)
123081 + if (local_read(&local->open_count) && !reconfig_due_to_wowlan)
123082 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_SUSPEND);
123083
123084 list_for_each_entry(sdata, &local->interfaces, list) {
123085 diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
123086 index 1f93a59..96faa29 100644
123087 --- a/net/mpls/af_mpls.c
123088 +++ b/net/mpls/af_mpls.c
123089 @@ -456,7 +456,7 @@ static int mpls_dev_sysctl_register(struct net_device *dev,
123090 struct mpls_dev *mdev)
123091 {
123092 char path[sizeof("net/mpls/conf/") + IFNAMSIZ];
123093 - struct ctl_table *table;
123094 + ctl_table_no_const *table;
123095 int i;
123096
123097 table = kmemdup(&mpls_dev_table, sizeof(mpls_dev_table), GFP_KERNEL);
123098 @@ -1025,7 +1025,7 @@ static int mpls_platform_labels(struct ctl_table *table, int write,
123099 struct net *net = table->data;
123100 int platform_labels = net->mpls.platform_labels;
123101 int ret;
123102 - struct ctl_table tmp = {
123103 + ctl_table_no_const tmp = {
123104 .procname = table->procname,
123105 .data = &platform_labels,
123106 .maxlen = sizeof(int),
123107 @@ -1055,7 +1055,7 @@ static const struct ctl_table mpls_table[] = {
123108
123109 static int mpls_net_init(struct net *net)
123110 {
123111 - struct ctl_table *table;
123112 + ctl_table_no_const *table;
123113
123114 net->mpls.platform_labels = 0;
123115 net->mpls.platform_label = NULL;
123116 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
123117 index 6eae69a..ccccba8 100644
123118 --- a/net/netfilter/Kconfig
123119 +++ b/net/netfilter/Kconfig
123120 @@ -1125,6 +1125,16 @@ config NETFILTER_XT_MATCH_ESP
123121
123122 To compile it as a module, choose M here. If unsure, say N.
123123
123124 +config NETFILTER_XT_MATCH_GRADM
123125 + tristate '"gradm" match support'
123126 + depends on NETFILTER_XTABLES && NETFILTER_ADVANCED
123127 + depends on GRKERNSEC && !GRKERNSEC_NO_RBAC
123128 + ---help---
123129 + The gradm match allows to match on grsecurity RBAC being enabled.
123130 + It is useful when iptables rules are applied early on bootup to
123131 + prevent connections to the machine (except from a trusted host)
123132 + while the RBAC system is disabled.
123133 +
123134 config NETFILTER_XT_MATCH_HASHLIMIT
123135 tristate '"hashlimit" match support'
123136 depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
123137 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
123138 index 70d026d..c400590 100644
123139 --- a/net/netfilter/Makefile
123140 +++ b/net/netfilter/Makefile
123141 @@ -140,6 +140,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
123142 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
123143 obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
123144 obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
123145 +obj-$(CONFIG_NETFILTER_XT_MATCH_GRADM) += xt_gradm.o
123146 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
123147 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
123148 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
123149 diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
123150 index 338b404..839dcb0 100644
123151 --- a/net/netfilter/ipset/ip_set_core.c
123152 +++ b/net/netfilter/ipset/ip_set_core.c
123153 @@ -1998,7 +1998,7 @@ done:
123154 return ret;
123155 }
123156
123157 -static struct nf_sockopt_ops so_set __read_mostly = {
123158 +static struct nf_sockopt_ops so_set = {
123159 .pf = PF_INET,
123160 .get_optmin = SO_IP_SET,
123161 .get_optmax = SO_IP_SET + 1,
123162 diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
123163 index b0f7b62..0541842 100644
123164 --- a/net/netfilter/ipvs/ip_vs_conn.c
123165 +++ b/net/netfilter/ipvs/ip_vs_conn.c
123166 @@ -572,7 +572,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest)
123167 /* Increase the refcnt counter of the dest */
123168 ip_vs_dest_hold(dest);
123169
123170 - conn_flags = atomic_read(&dest->conn_flags);
123171 + conn_flags = atomic_read_unchecked(&dest->conn_flags);
123172 if (cp->protocol != IPPROTO_UDP)
123173 conn_flags &= ~IP_VS_CONN_F_ONE_PACKET;
123174 flags = cp->flags;
123175 @@ -922,7 +922,7 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p, int dest_af,
123176
123177 cp->control = NULL;
123178 atomic_set(&cp->n_control, 0);
123179 - atomic_set(&cp->in_pkts, 0);
123180 + atomic_set_unchecked(&cp->in_pkts, 0);
123181
123182 cp->packet_xmit = NULL;
123183 cp->app = NULL;
123184 @@ -1229,7 +1229,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
123185
123186 /* Don't drop the entry if its number of incoming packets is not
123187 located in [0, 8] */
123188 - i = atomic_read(&cp->in_pkts);
123189 + i = atomic_read_unchecked(&cp->in_pkts);
123190 if (i > 8 || i < 0) return 0;
123191
123192 if (!todrop_rate[i]) return 0;
123193 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
123194 index 38fbc19..4272cb4 100644
123195 --- a/net/netfilter/ipvs/ip_vs_core.c
123196 +++ b/net/netfilter/ipvs/ip_vs_core.c
123197 @@ -586,7 +586,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
123198 ret = cp->packet_xmit(skb, cp, pd->pp, iph);
123199 /* do not touch skb anymore */
123200
123201 - atomic_inc(&cp->in_pkts);
123202 + atomic_inc_unchecked(&cp->in_pkts);
123203 ip_vs_conn_put(cp);
123204 return ret;
123205 }
123206 @@ -1762,7 +1762,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
123207 if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
123208 pkts = sysctl_sync_threshold(ipvs);
123209 else
123210 - pkts = atomic_add_return(1, &cp->in_pkts);
123211 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
123212
123213 if (ipvs->sync_state & IP_VS_STATE_MASTER)
123214 ip_vs_sync_conn(net, cp, pkts);
123215 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
123216 index 24c5542..e9fd3e5 100644
123217 --- a/net/netfilter/ipvs/ip_vs_ctl.c
123218 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
123219 @@ -814,7 +814,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
123220 */
123221 ip_vs_rs_hash(ipvs, dest);
123222 }
123223 - atomic_set(&dest->conn_flags, conn_flags);
123224 + atomic_set_unchecked(&dest->conn_flags, conn_flags);
123225
123226 /* bind the service */
123227 old_svc = rcu_dereference_protected(dest->svc, 1);
123228 @@ -1694,7 +1694,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
123229 * align with netns init in ip_vs_control_net_init()
123230 */
123231
123232 -static struct ctl_table vs_vars[] = {
123233 +static ctl_table_no_const vs_vars[] __read_only = {
123234 {
123235 .procname = "amemthresh",
123236 .maxlen = sizeof(int),
123237 @@ -2036,7 +2036,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
123238 " %-7s %-6d %-10d %-10d\n",
123239 &dest->addr.in6,
123240 ntohs(dest->port),
123241 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
123242 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
123243 atomic_read(&dest->weight),
123244 atomic_read(&dest->activeconns),
123245 atomic_read(&dest->inactconns));
123246 @@ -2047,7 +2047,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
123247 "%-7s %-6d %-10d %-10d\n",
123248 ntohl(dest->addr.ip),
123249 ntohs(dest->port),
123250 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
123251 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
123252 atomic_read(&dest->weight),
123253 atomic_read(&dest->activeconns),
123254 atomic_read(&dest->inactconns));
123255 @@ -2546,7 +2546,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
123256
123257 entry.addr = dest->addr.ip;
123258 entry.port = dest->port;
123259 - entry.conn_flags = atomic_read(&dest->conn_flags);
123260 + entry.conn_flags = atomic_read_unchecked(&dest->conn_flags);
123261 entry.weight = atomic_read(&dest->weight);
123262 entry.u_threshold = dest->u_threshold;
123263 entry.l_threshold = dest->l_threshold;
123264 @@ -3121,7 +3121,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
123265 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
123266 nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
123267 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
123268 - (atomic_read(&dest->conn_flags) &
123269 + (atomic_read_unchecked(&dest->conn_flags) &
123270 IP_VS_CONN_F_FWD_MASK)) ||
123271 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
123272 atomic_read(&dest->weight)) ||
123273 @@ -3759,7 +3759,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
123274 {
123275 int idx;
123276 struct netns_ipvs *ipvs = net_ipvs(net);
123277 - struct ctl_table *tbl;
123278 + ctl_table_no_const *tbl;
123279
123280 atomic_set(&ipvs->dropentry, 0);
123281 spin_lock_init(&ipvs->dropentry_lock);
123282 diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
123283 index 127f140..553d652 100644
123284 --- a/net/netfilter/ipvs/ip_vs_lblc.c
123285 +++ b/net/netfilter/ipvs/ip_vs_lblc.c
123286 @@ -118,7 +118,7 @@ struct ip_vs_lblc_table {
123287 * IPVS LBLC sysctl table
123288 */
123289 #ifdef CONFIG_SYSCTL
123290 -static struct ctl_table vs_vars_table[] = {
123291 +static ctl_table_no_const vs_vars_table[] __read_only = {
123292 {
123293 .procname = "lblc_expiration",
123294 .data = NULL,
123295 diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
123296 index 2229d2d..b32b785 100644
123297 --- a/net/netfilter/ipvs/ip_vs_lblcr.c
123298 +++ b/net/netfilter/ipvs/ip_vs_lblcr.c
123299 @@ -289,7 +289,7 @@ struct ip_vs_lblcr_table {
123300 * IPVS LBLCR sysctl table
123301 */
123302
123303 -static struct ctl_table vs_vars_table[] = {
123304 +static ctl_table_no_const vs_vars_table[] __read_only = {
123305 {
123306 .procname = "lblcr_expiration",
123307 .data = NULL,
123308 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
123309 index d99ad93..09bd6dc 100644
123310 --- a/net/netfilter/ipvs/ip_vs_sync.c
123311 +++ b/net/netfilter/ipvs/ip_vs_sync.c
123312 @@ -609,7 +609,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp,
123313 cp = cp->control;
123314 if (cp) {
123315 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
123316 - pkts = atomic_add_return(1, &cp->in_pkts);
123317 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
123318 else
123319 pkts = sysctl_sync_threshold(ipvs);
123320 ip_vs_sync_conn(net, cp, pkts);
123321 @@ -771,7 +771,7 @@ control:
123322 if (!cp)
123323 return;
123324 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
123325 - pkts = atomic_add_return(1, &cp->in_pkts);
123326 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
123327 else
123328 pkts = sysctl_sync_threshold(ipvs);
123329 goto sloop;
123330 @@ -919,7 +919,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
123331
123332 if (opt)
123333 memcpy(&cp->in_seq, opt, sizeof(*opt));
123334 - atomic_set(&cp->in_pkts, sysctl_sync_threshold(ipvs));
123335 + atomic_set_unchecked(&cp->in_pkts, sysctl_sync_threshold(ipvs));
123336 cp->state = state;
123337 cp->old_state = cp->state;
123338 /*
123339 diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
123340 index 258a0b0..2082f50 100644
123341 --- a/net/netfilter/ipvs/ip_vs_xmit.c
123342 +++ b/net/netfilter/ipvs/ip_vs_xmit.c
123343 @@ -1259,7 +1259,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
123344 else
123345 rc = NF_ACCEPT;
123346 /* do not touch skb anymore */
123347 - atomic_inc(&cp->in_pkts);
123348 + atomic_inc_unchecked(&cp->in_pkts);
123349 goto out;
123350 }
123351
123352 @@ -1352,7 +1352,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
123353 else
123354 rc = NF_ACCEPT;
123355 /* do not touch skb anymore */
123356 - atomic_inc(&cp->in_pkts);
123357 + atomic_inc_unchecked(&cp->in_pkts);
123358 goto out;
123359 }
123360
123361 diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
123362 index 45da11a..ef3e5dc 100644
123363 --- a/net/netfilter/nf_conntrack_acct.c
123364 +++ b/net/netfilter/nf_conntrack_acct.c
123365 @@ -64,7 +64,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
123366 #ifdef CONFIG_SYSCTL
123367 static int nf_conntrack_acct_init_sysctl(struct net *net)
123368 {
123369 - struct ctl_table *table;
123370 + ctl_table_no_const *table;
123371
123372 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
123373 GFP_KERNEL);
123374 diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
123375 index 0625a42..b2c15f4 100644
123376 --- a/net/netfilter/nf_conntrack_core.c
123377 +++ b/net/netfilter/nf_conntrack_core.c
123378 @@ -1754,6 +1754,10 @@ void nf_conntrack_init_end(void)
123379 #define DYING_NULLS_VAL ((1<<30)+1)
123380 #define TEMPLATE_NULLS_VAL ((1<<30)+2)
123381
123382 +#ifdef CONFIG_GRKERNSEC_HIDESYM
123383 +static atomic_unchecked_t conntrack_cache_id = ATOMIC_INIT(0);
123384 +#endif
123385 +
123386 int nf_conntrack_init_net(struct net *net)
123387 {
123388 int ret = -ENOMEM;
123389 @@ -1778,7 +1782,11 @@ int nf_conntrack_init_net(struct net *net)
123390 if (!net->ct.stat)
123391 goto err_pcpu_lists;
123392
123393 +#ifdef CONFIG_GRKERNSEC_HIDESYM
123394 + net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%08x", atomic_inc_return_unchecked(&conntrack_cache_id));
123395 +#else
123396 net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net);
123397 +#endif
123398 if (!net->ct.slabname)
123399 goto err_slabname;
123400
123401 diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
123402 index 4e78c57..ec8fb74 100644
123403 --- a/net/netfilter/nf_conntrack_ecache.c
123404 +++ b/net/netfilter/nf_conntrack_ecache.c
123405 @@ -264,7 +264,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = {
123406 #ifdef CONFIG_SYSCTL
123407 static int nf_conntrack_event_init_sysctl(struct net *net)
123408 {
123409 - struct ctl_table *table;
123410 + ctl_table_no_const *table;
123411
123412 table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table),
123413 GFP_KERNEL);
123414 diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
123415 index bd9d315..989947e 100644
123416 --- a/net/netfilter/nf_conntrack_helper.c
123417 +++ b/net/netfilter/nf_conntrack_helper.c
123418 @@ -57,7 +57,7 @@ static struct ctl_table helper_sysctl_table[] = {
123419
123420 static int nf_conntrack_helper_init_sysctl(struct net *net)
123421 {
123422 - struct ctl_table *table;
123423 + ctl_table_no_const *table;
123424
123425 table = kmemdup(helper_sysctl_table, sizeof(helper_sysctl_table),
123426 GFP_KERNEL);
123427 diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
123428 index b65d586..beec902 100644
123429 --- a/net/netfilter/nf_conntrack_proto.c
123430 +++ b/net/netfilter/nf_conntrack_proto.c
123431 @@ -52,7 +52,7 @@ nf_ct_register_sysctl(struct net *net,
123432
123433 static void
123434 nf_ct_unregister_sysctl(struct ctl_table_header **header,
123435 - struct ctl_table **table,
123436 + ctl_table_no_const **table,
123437 unsigned int users)
123438 {
123439 if (users > 0)
123440 diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
123441 index fc823fa..8311af3 100644
123442 --- a/net/netfilter/nf_conntrack_standalone.c
123443 +++ b/net/netfilter/nf_conntrack_standalone.c
123444 @@ -468,7 +468,7 @@ static struct ctl_table nf_ct_netfilter_table[] = {
123445
123446 static int nf_conntrack_standalone_init_sysctl(struct net *net)
123447 {
123448 - struct ctl_table *table;
123449 + ctl_table_no_const *table;
123450
123451 table = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),
123452 GFP_KERNEL);
123453 diff --git a/net/netfilter/nf_conntrack_timestamp.c b/net/netfilter/nf_conntrack_timestamp.c
123454 index 7a394df..bd91a8a 100644
123455 --- a/net/netfilter/nf_conntrack_timestamp.c
123456 +++ b/net/netfilter/nf_conntrack_timestamp.c
123457 @@ -42,7 +42,7 @@ static struct nf_ct_ext_type tstamp_extend __read_mostly = {
123458 #ifdef CONFIG_SYSCTL
123459 static int nf_conntrack_tstamp_init_sysctl(struct net *net)
123460 {
123461 - struct ctl_table *table;
123462 + ctl_table_no_const *table;
123463
123464 table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table),
123465 GFP_KERNEL);
123466 diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
123467 index a5d41df..1ff49be 100644
123468 --- a/net/netfilter/nf_log.c
123469 +++ b/net/netfilter/nf_log.c
123470 @@ -391,7 +391,7 @@ static const struct file_operations nflog_file_ops = {
123471
123472 #ifdef CONFIG_SYSCTL
123473 static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3];
123474 -static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1];
123475 +static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only;
123476
123477 static int nf_log_proc_dostring(struct ctl_table *table, int write,
123478 void __user *buffer, size_t *lenp, loff_t *ppos)
123479 @@ -422,13 +422,15 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write,
123480 rcu_assign_pointer(net->nf.nf_loggers[tindex], logger);
123481 mutex_unlock(&nf_log_mutex);
123482 } else {
123483 + ctl_table_no_const nf_log_table = *table;
123484 +
123485 mutex_lock(&nf_log_mutex);
123486 logger = nft_log_dereference(net->nf.nf_loggers[tindex]);
123487 if (!logger)
123488 - table->data = "NONE";
123489 + nf_log_table.data = "NONE";
123490 else
123491 - table->data = logger->name;
123492 - r = proc_dostring(table, write, buffer, lenp, ppos);
123493 + nf_log_table.data = logger->name;
123494 + r = proc_dostring(&nf_log_table, write, buffer, lenp, ppos);
123495 mutex_unlock(&nf_log_mutex);
123496 }
123497
123498 diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c
123499 index c68c1e5..8b5d670 100644
123500 --- a/net/netfilter/nf_sockopt.c
123501 +++ b/net/netfilter/nf_sockopt.c
123502 @@ -43,7 +43,7 @@ int nf_register_sockopt(struct nf_sockopt_ops *reg)
123503 }
123504 }
123505
123506 - list_add(&reg->list, &nf_sockopts);
123507 + pax_list_add((struct list_head *)&reg->list, &nf_sockopts);
123508 out:
123509 mutex_unlock(&nf_sockopt_mutex);
123510 return ret;
123511 @@ -53,7 +53,7 @@ EXPORT_SYMBOL(nf_register_sockopt);
123512 void nf_unregister_sockopt(struct nf_sockopt_ops *reg)
123513 {
123514 mutex_lock(&nf_sockopt_mutex);
123515 - list_del(&reg->list);
123516 + pax_list_del((struct list_head *)&reg->list);
123517 mutex_unlock(&nf_sockopt_mutex);
123518 }
123519 EXPORT_SYMBOL(nf_unregister_sockopt);
123520 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
123521 index 4670821..a6c3c47d 100644
123522 --- a/net/netfilter/nfnetlink_log.c
123523 +++ b/net/netfilter/nfnetlink_log.c
123524 @@ -84,7 +84,7 @@ static int nfnl_log_net_id __read_mostly;
123525 struct nfnl_log_net {
123526 spinlock_t instances_lock;
123527 struct hlist_head instance_table[INSTANCE_BUCKETS];
123528 - atomic_t global_seq;
123529 + atomic_unchecked_t global_seq;
123530 };
123531
123532 static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
123533 @@ -572,7 +572,7 @@ __build_packet_message(struct nfnl_log_net *log,
123534 /* global sequence number */
123535 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
123536 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
123537 - htonl(atomic_inc_return(&log->global_seq))))
123538 + htonl(atomic_inc_return_unchecked(&log->global_seq))))
123539 goto nla_put_failure;
123540
123541 if (data_len) {
123542 diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
123543 index 9c8fab0..5080c7c 100644
123544 --- a/net/netfilter/nft_compat.c
123545 +++ b/net/netfilter/nft_compat.c
123546 @@ -322,14 +322,7 @@ static void nft_match_eval(const struct nft_expr *expr,
123547 return;
123548 }
123549
123550 - switch (ret ? 1 : 0) {
123551 - case 1:
123552 - regs->verdict.code = NFT_CONTINUE;
123553 - break;
123554 - case 0:
123555 - regs->verdict.code = NFT_BREAK;
123556 - break;
123557 - }
123558 + regs->verdict.code = ret ? NFT_CONTINUE : NFT_BREAK;
123559 }
123560
123561 static const struct nla_policy nft_match_policy[NFTA_MATCH_MAX + 1] = {
123562 diff --git a/net/netfilter/xt_gradm.c b/net/netfilter/xt_gradm.c
123563 new file mode 100644
123564 index 0000000..a7cb915
123565 --- /dev/null
123566 +++ b/net/netfilter/xt_gradm.c
123567 @@ -0,0 +1,51 @@
123568 +/*
123569 + * gradm match for netfilter
123570 + * Copyright (c) Zbigniew Krzystolik, 2010
123571 + *
123572 + * This program is free software; you can redistribute it and/or modify
123573 + * it under the terms of the GNU General Public License; either version
123574 + * 2 or 3 as published by the Free Software Foundation.
123575 + */
123576 +#include <linux/module.h>
123577 +#include <linux/moduleparam.h>
123578 +#include <linux/skbuff.h>
123579 +#include <linux/netfilter/x_tables.h>
123580 +#include <linux/grsecurity.h>
123581 +#include <linux/netfilter/xt_gradm.h>
123582 +
123583 +static bool
123584 +gradm_mt(const struct sk_buff *skb, struct xt_action_param *par)
123585 +{
123586 + const struct xt_gradm_mtinfo *info = par->matchinfo;
123587 + bool retval = false;
123588 + if (gr_acl_is_enabled())
123589 + retval = true;
123590 + return retval ^ info->invflags;
123591 +}
123592 +
123593 +static struct xt_match gradm_mt_reg __read_mostly = {
123594 + .name = "gradm",
123595 + .revision = 0,
123596 + .family = NFPROTO_UNSPEC,
123597 + .match = gradm_mt,
123598 + .matchsize = XT_ALIGN(sizeof(struct xt_gradm_mtinfo)),
123599 + .me = THIS_MODULE,
123600 +};
123601 +
123602 +static int __init gradm_mt_init(void)
123603 +{
123604 + return xt_register_match(&gradm_mt_reg);
123605 +}
123606 +
123607 +static void __exit gradm_mt_exit(void)
123608 +{
123609 + xt_unregister_match(&gradm_mt_reg);
123610 +}
123611 +
123612 +module_init(gradm_mt_init);
123613 +module_exit(gradm_mt_exit);
123614 +MODULE_AUTHOR("Zbigniew Krzystolik <zbyniu@destrukcja.pl>");
123615 +MODULE_DESCRIPTION("Xtables: Grsecurity RBAC match");
123616 +MODULE_LICENSE("GPL");
123617 +MODULE_ALIAS("ipt_gradm");
123618 +MODULE_ALIAS("ip6t_gradm");
123619 diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
123620 index 1786968..1ec6dac 100644
123621 --- a/net/netfilter/xt_hashlimit.c
123622 +++ b/net/netfilter/xt_hashlimit.c
123623 @@ -869,11 +869,11 @@ static int __net_init hashlimit_proc_net_init(struct net *net)
123624 {
123625 struct hashlimit_net *hashlimit_net = hashlimit_pernet(net);
123626
123627 - hashlimit_net->ipt_hashlimit = proc_mkdir("ipt_hashlimit", net->proc_net);
123628 + hashlimit_net->ipt_hashlimit = proc_mkdir_restrict("ipt_hashlimit", net->proc_net);
123629 if (!hashlimit_net->ipt_hashlimit)
123630 return -ENOMEM;
123631 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
123632 - hashlimit_net->ip6t_hashlimit = proc_mkdir("ip6t_hashlimit", net->proc_net);
123633 + hashlimit_net->ip6t_hashlimit = proc_mkdir_restrict("ip6t_hashlimit", net->proc_net);
123634 if (!hashlimit_net->ip6t_hashlimit) {
123635 remove_proc_entry("ipt_hashlimit", net->proc_net);
123636 return -ENOMEM;
123637 diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
123638 index 45e1b30..a764f94 100644
123639 --- a/net/netfilter/xt_recent.c
123640 +++ b/net/netfilter/xt_recent.c
123641 @@ -642,7 +642,7 @@ static int __net_init recent_proc_net_init(struct net *net)
123642 {
123643 struct recent_net *recent_net = recent_pernet(net);
123644
123645 - recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net);
123646 + recent_net->xt_recent = proc_mkdir_restrict("xt_recent", net->proc_net);
123647 if (!recent_net->xt_recent)
123648 return -ENOMEM;
123649 return 0;
123650 diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
123651 index 11de55e..f25e448 100644
123652 --- a/net/netfilter/xt_statistic.c
123653 +++ b/net/netfilter/xt_statistic.c
123654 @@ -19,7 +19,7 @@
123655 #include <linux/module.h>
123656
123657 struct xt_statistic_priv {
123658 - atomic_t count;
123659 + atomic_unchecked_t count;
123660 } ____cacheline_aligned_in_smp;
123661
123662 MODULE_LICENSE("GPL");
123663 @@ -42,9 +42,9 @@ statistic_mt(const struct sk_buff *skb, struct xt_action_param *par)
123664 break;
123665 case XT_STATISTIC_MODE_NTH:
123666 do {
123667 - oval = atomic_read(&info->master->count);
123668 + oval = atomic_read_unchecked(&info->master->count);
123669 nval = (oval == info->u.nth.every) ? 0 : oval + 1;
123670 - } while (atomic_cmpxchg(&info->master->count, oval, nval) != oval);
123671 + } while (atomic_cmpxchg_unchecked(&info->master->count, oval, nval) != oval);
123672 if (nval == 0)
123673 ret = !ret;
123674 break;
123675 @@ -64,7 +64,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
123676 info->master = kzalloc(sizeof(*info->master), GFP_KERNEL);
123677 if (info->master == NULL)
123678 return -ENOMEM;
123679 - atomic_set(&info->master->count, info->u.nth.count);
123680 + atomic_set_unchecked(&info->master->count, info->u.nth.count);
123681
123682 return 0;
123683 }
123684 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
123685 index a133d16..fafee70 100644
123686 --- a/net/netlink/af_netlink.c
123687 +++ b/net/netlink/af_netlink.c
123688 @@ -286,7 +286,7 @@ static void netlink_overrun(struct sock *sk)
123689 sk->sk_error_report(sk);
123690 }
123691 }
123692 - atomic_inc(&sk->sk_drops);
123693 + atomic_inc_unchecked(&sk->sk_drops);
123694 }
123695
123696 static void netlink_rcv_wake(struct sock *sk)
123697 @@ -3145,7 +3145,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
123698 sk_wmem_alloc_get(s),
123699 nlk->cb_running,
123700 atomic_read(&s->sk_refcnt),
123701 - atomic_read(&s->sk_drops),
123702 + atomic_read_unchecked(&s->sk_drops),
123703 sock_i_ino(s)
123704 );
123705
123706 diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
123707 index 6a55f71..e88c937 100644
123708 --- a/net/openvswitch/vport-internal_dev.c
123709 +++ b/net/openvswitch/vport-internal_dev.c
123710 @@ -124,7 +124,7 @@ static const struct net_device_ops internal_dev_netdev_ops = {
123711 .ndo_get_stats64 = internal_dev_get_stats,
123712 };
123713
123714 -static struct rtnl_link_ops internal_dev_link_ops __read_mostly = {
123715 +static struct rtnl_link_ops internal_dev_link_ops = {
123716 .kind = "openvswitch",
123717 };
123718
123719 diff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.c
123720 index 067a3ff..9ecc05c 100644
123721 --- a/net/openvswitch/vport.c
123722 +++ b/net/openvswitch/vport.c
123723 @@ -303,10 +303,10 @@ void ovs_vport_get_stats(struct vport *vport, struct ovs_vport_stats *stats)
123724 * netdev-stats can be directly read over netlink-ioctl.
123725 */
123726
123727 - stats->rx_errors = atomic_long_read(&vport->err_stats.rx_errors);
123728 - stats->tx_errors = atomic_long_read(&vport->err_stats.tx_errors);
123729 - stats->tx_dropped = atomic_long_read(&vport->err_stats.tx_dropped);
123730 - stats->rx_dropped = atomic_long_read(&vport->err_stats.rx_dropped);
123731 + stats->rx_errors = atomic_long_read_unchecked(&vport->err_stats.rx_errors);
123732 + stats->tx_errors = atomic_long_read_unchecked(&vport->err_stats.tx_errors);
123733 + stats->tx_dropped = atomic_long_read_unchecked(&vport->err_stats.tx_dropped);
123734 + stats->rx_dropped = atomic_long_read_unchecked(&vport->err_stats.rx_dropped);
123735
123736 for_each_possible_cpu(i) {
123737 const struct pcpu_sw_netstats *percpu_stats;
123738 @@ -538,19 +538,19 @@ static void ovs_vport_record_error(struct vport *vport,
123739 {
123740 switch (err_type) {
123741 case VPORT_E_RX_DROPPED:
123742 - atomic_long_inc(&vport->err_stats.rx_dropped);
123743 + atomic_long_inc_unchecked(&vport->err_stats.rx_dropped);
123744 break;
123745
123746 case VPORT_E_RX_ERROR:
123747 - atomic_long_inc(&vport->err_stats.rx_errors);
123748 + atomic_long_inc_unchecked(&vport->err_stats.rx_errors);
123749 break;
123750
123751 case VPORT_E_TX_DROPPED:
123752 - atomic_long_inc(&vport->err_stats.tx_dropped);
123753 + atomic_long_inc_unchecked(&vport->err_stats.tx_dropped);
123754 break;
123755
123756 case VPORT_E_TX_ERROR:
123757 - atomic_long_inc(&vport->err_stats.tx_errors);
123758 + atomic_long_inc_unchecked(&vport->err_stats.tx_errors);
123759 break;
123760 }
123761
123762 diff --git a/net/openvswitch/vport.h b/net/openvswitch/vport.h
123763 index bc85331..0d3dce0 100644
123764 --- a/net/openvswitch/vport.h
123765 +++ b/net/openvswitch/vport.h
123766 @@ -71,10 +71,10 @@ int ovs_vport_get_egress_tun_info(struct vport *vport, struct sk_buff *skb,
123767 /* The following definitions are for implementers of vport devices: */
123768
123769 struct vport_err_stats {
123770 - atomic_long_t rx_dropped;
123771 - atomic_long_t rx_errors;
123772 - atomic_long_t tx_dropped;
123773 - atomic_long_t tx_errors;
123774 + atomic_long_unchecked_t rx_dropped;
123775 + atomic_long_unchecked_t rx_errors;
123776 + atomic_long_unchecked_t tx_dropped;
123777 + atomic_long_unchecked_t tx_errors;
123778 };
123779 /**
123780 * struct vport_portids - array of netlink portids of a vport.
123781 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
123782 index 7851b12..b665c0c 100644
123783 --- a/net/packet/af_packet.c
123784 +++ b/net/packet/af_packet.c
123785 @@ -277,7 +277,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
123786
123787 return ret;
123788 drop:
123789 - atomic_long_inc(&dev->tx_dropped);
123790 + atomic_long_inc_unchecked(&dev->tx_dropped);
123791 kfree_skb(skb);
123792 return NET_XMIT_DROP;
123793 }
123794 @@ -1946,7 +1946,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
123795 drop_n_acct:
123796 spin_lock(&sk->sk_receive_queue.lock);
123797 po->stats.stats1.tp_drops++;
123798 - atomic_inc(&sk->sk_drops);
123799 + atomic_inc_unchecked(&sk->sk_drops);
123800 spin_unlock(&sk->sk_receive_queue.lock);
123801
123802 drop_n_restore:
123803 @@ -3616,7 +3616,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
123804 case PACKET_HDRLEN:
123805 if (len > sizeof(int))
123806 len = sizeof(int);
123807 - if (copy_from_user(&val, optval, len))
123808 + if (len > sizeof(val) || copy_from_user(&val, optval, len))
123809 return -EFAULT;
123810 switch (val) {
123811 case TPACKET_V1:
123812 @@ -3671,7 +3671,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
123813 len = lv;
123814 if (put_user(len, optlen))
123815 return -EFAULT;
123816 - if (copy_to_user(optval, data, len))
123817 + if (len > sizeof(st) || copy_to_user(optval, data, len))
123818 return -EFAULT;
123819 return 0;
123820 }
123821 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
123822 index 850a86c..8884a37 100644
123823 --- a/net/phonet/pep.c
123824 +++ b/net/phonet/pep.c
123825 @@ -388,7 +388,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
123826
123827 case PNS_PEP_CTRL_REQ:
123828 if (skb_queue_len(&pn->ctrlreq_queue) >= PNPIPE_CTRLREQ_MAX) {
123829 - atomic_inc(&sk->sk_drops);
123830 + atomic_inc_unchecked(&sk->sk_drops);
123831 break;
123832 }
123833 __skb_pull(skb, 4);
123834 @@ -409,7 +409,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
123835 }
123836
123837 if (pn->rx_credits == 0) {
123838 - atomic_inc(&sk->sk_drops);
123839 + atomic_inc_unchecked(&sk->sk_drops);
123840 err = -ENOBUFS;
123841 break;
123842 }
123843 @@ -579,7 +579,7 @@ static int pipe_handler_do_rcv(struct sock *sk, struct sk_buff *skb)
123844 }
123845
123846 if (pn->rx_credits == 0) {
123847 - atomic_inc(&sk->sk_drops);
123848 + atomic_inc_unchecked(&sk->sk_drops);
123849 err = NET_RX_DROP;
123850 break;
123851 }
123852 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
123853 index d575ef4..1dedc31 100644
123854 --- a/net/phonet/socket.c
123855 +++ b/net/phonet/socket.c
123856 @@ -611,7 +611,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
123857 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)),
123858 sock_i_ino(sk),
123859 atomic_read(&sk->sk_refcnt), sk,
123860 - atomic_read(&sk->sk_drops));
123861 + atomic_read_unchecked(&sk->sk_drops));
123862 }
123863 seq_pad(seq, '\n');
123864 return 0;
123865 diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c
123866 index c02a8c4..3c5b600 100644
123867 --- a/net/phonet/sysctl.c
123868 +++ b/net/phonet/sysctl.c
123869 @@ -67,7 +67,7 @@ static int proc_local_port_range(struct ctl_table *table, int write,
123870 {
123871 int ret;
123872 int range[2] = {local_port_range[0], local_port_range[1]};
123873 - struct ctl_table tmp = {
123874 + ctl_table_no_const tmp = {
123875 .data = &range,
123876 .maxlen = sizeof(range),
123877 .mode = table->mode,
123878 diff --git a/net/rds/cong.c b/net/rds/cong.c
123879 index e6144b8..4f9fda6 100644
123880 --- a/net/rds/cong.c
123881 +++ b/net/rds/cong.c
123882 @@ -78,7 +78,7 @@
123883 * finds that the saved generation number is smaller than the global generation
123884 * number, it wakes up the process.
123885 */
123886 -static atomic_t rds_cong_generation = ATOMIC_INIT(0);
123887 +static atomic_unchecked_t rds_cong_generation = ATOMIC_INIT(0);
123888
123889 /*
123890 * Congestion monitoring
123891 @@ -247,7 +247,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
123892 rdsdebug("waking map %p for %pI4\n",
123893 map, &map->m_addr);
123894 rds_stats_inc(s_cong_update_received);
123895 - atomic_inc(&rds_cong_generation);
123896 + atomic_inc_unchecked(&rds_cong_generation);
123897 if (waitqueue_active(&map->m_waitq))
123898 wake_up(&map->m_waitq);
123899 if (waitqueue_active(&rds_poll_waitq))
123900 @@ -273,7 +273,7 @@ EXPORT_SYMBOL_GPL(rds_cong_map_updated);
123901
123902 int rds_cong_updated_since(unsigned long *recent)
123903 {
123904 - unsigned long gen = atomic_read(&rds_cong_generation);
123905 + unsigned long gen = atomic_read_unchecked(&rds_cong_generation);
123906
123907 if (likely(*recent == gen))
123908 return 0;
123909 diff --git a/net/rds/ib.h b/net/rds/ib.h
123910 index 86d88ec..b5461c2 100644
123911 --- a/net/rds/ib.h
123912 +++ b/net/rds/ib.h
123913 @@ -128,7 +128,7 @@ struct rds_ib_connection {
123914 /* sending acks */
123915 unsigned long i_ack_flags;
123916 #ifdef KERNEL_HAS_ATOMIC64
123917 - atomic64_t i_ack_next; /* next ACK to send */
123918 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
123919 #else
123920 spinlock_t i_ack_lock; /* protect i_ack_next */
123921 u64 i_ack_next; /* next ACK to send */
123922 diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
123923 index 0da2a45..388ae0b 100644
123924 --- a/net/rds/ib_cm.c
123925 +++ b/net/rds/ib_cm.c
123926 @@ -699,7 +699,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
123927 /* Clear the ACK state */
123928 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
123929 #ifdef KERNEL_HAS_ATOMIC64
123930 - atomic64_set(&ic->i_ack_next, 0);
123931 + atomic64_set_unchecked(&ic->i_ack_next, 0);
123932 #else
123933 ic->i_ack_next = 0;
123934 #endif
123935 diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
123936 index cac5b45..9a6f263 100644
123937 --- a/net/rds/ib_recv.c
123938 +++ b/net/rds/ib_recv.c
123939 @@ -581,7 +581,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
123940 static void rds_ib_set_ack(struct rds_ib_connection *ic, u64 seq,
123941 int ack_required)
123942 {
123943 - atomic64_set(&ic->i_ack_next, seq);
123944 + atomic64_set_unchecked(&ic->i_ack_next, seq);
123945 if (ack_required) {
123946 smp_mb__before_atomic();
123947 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123948 @@ -593,7 +593,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
123949 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123950 smp_mb__after_atomic();
123951
123952 - return atomic64_read(&ic->i_ack_next);
123953 + return atomic64_read_unchecked(&ic->i_ack_next);
123954 }
123955 #endif
123956
123957 diff --git a/net/rds/iw.h b/net/rds/iw.h
123958 index cbe6674..dc9eb89 100644
123959 --- a/net/rds/iw.h
123960 +++ b/net/rds/iw.h
123961 @@ -134,7 +134,7 @@ struct rds_iw_connection {
123962 /* sending acks */
123963 unsigned long i_ack_flags;
123964 #ifdef KERNEL_HAS_ATOMIC64
123965 - atomic64_t i_ack_next; /* next ACK to send */
123966 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
123967 #else
123968 spinlock_t i_ack_lock; /* protect i_ack_next */
123969 u64 i_ack_next; /* next ACK to send */
123970 diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
123971 index 8f486fa..7849d8c 100644
123972 --- a/net/rds/iw_cm.c
123973 +++ b/net/rds/iw_cm.c
123974 @@ -666,7 +666,7 @@ void rds_iw_conn_shutdown(struct rds_connection *conn)
123975 /* Clear the ACK state */
123976 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
123977 #ifdef KERNEL_HAS_ATOMIC64
123978 - atomic64_set(&ic->i_ack_next, 0);
123979 + atomic64_set_unchecked(&ic->i_ack_next, 0);
123980 #else
123981 ic->i_ack_next = 0;
123982 #endif
123983 diff --git a/net/rds/iw_recv.c b/net/rds/iw_recv.c
123984 index a66d179..cf1e258 100644
123985 --- a/net/rds/iw_recv.c
123986 +++ b/net/rds/iw_recv.c
123987 @@ -412,7 +412,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
123988 static void rds_iw_set_ack(struct rds_iw_connection *ic, u64 seq,
123989 int ack_required)
123990 {
123991 - atomic64_set(&ic->i_ack_next, seq);
123992 + atomic64_set_unchecked(&ic->i_ack_next, seq);
123993 if (ack_required) {
123994 smp_mb__before_atomic();
123995 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123996 @@ -424,7 +424,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
123997 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123998 smp_mb__after_atomic();
123999
124000 - return atomic64_read(&ic->i_ack_next);
124001 + return atomic64_read_unchecked(&ic->i_ack_next);
124002 }
124003 #endif
124004
124005 diff --git a/net/rds/rds.h b/net/rds/rds.h
124006 index 2260c1e4..4ea4a57 100644
124007 --- a/net/rds/rds.h
124008 +++ b/net/rds/rds.h
124009 @@ -446,7 +446,7 @@ struct rds_transport {
124010 void (*sync_mr)(void *trans_private, int direction);
124011 void (*free_mr)(void *trans_private, int invalidate);
124012 void (*flush_mrs)(void);
124013 -};
124014 +} __do_const;
124015
124016 struct rds_sock {
124017 struct sock rs_sk;
124018 diff --git a/net/rds/tcp.c b/net/rds/tcp.c
124019 index edac9ef..16bcb98 100644
124020 --- a/net/rds/tcp.c
124021 +++ b/net/rds/tcp.c
124022 @@ -59,7 +59,7 @@ void rds_tcp_nonagle(struct socket *sock)
124023 int val = 1;
124024
124025 set_fs(KERNEL_DS);
124026 - sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __user *)&val,
124027 + sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __force_user *)&val,
124028 sizeof(val));
124029 set_fs(oldfs);
124030 }
124031 diff --git a/net/rds/tcp_send.c b/net/rds/tcp_send.c
124032 index 53b17ca..45463e7 100644
124033 --- a/net/rds/tcp_send.c
124034 +++ b/net/rds/tcp_send.c
124035 @@ -43,7 +43,7 @@ static void rds_tcp_cork(struct socket *sock, int val)
124036
124037 oldfs = get_fs();
124038 set_fs(KERNEL_DS);
124039 - sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __user *)&val,
124040 + sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __force_user *)&val,
124041 sizeof(val));
124042 set_fs(oldfs);
124043 }
124044 diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c
124045 index 25d60ed..ec9ae2c 100644
124046 --- a/net/rxrpc/af_rxrpc.c
124047 +++ b/net/rxrpc/af_rxrpc.c
124048 @@ -40,7 +40,7 @@ static const struct proto_ops rxrpc_rpc_ops;
124049 __be32 rxrpc_epoch;
124050
124051 /* current debugging ID */
124052 -atomic_t rxrpc_debug_id;
124053 +atomic_unchecked_t rxrpc_debug_id;
124054
124055 /* count of skbs currently in use */
124056 atomic_t rxrpc_n_skbs;
124057 diff --git a/net/rxrpc/ar-ack.c b/net/rxrpc/ar-ack.c
124058 index e0547f5..a171f7a 100644
124059 --- a/net/rxrpc/ar-ack.c
124060 +++ b/net/rxrpc/ar-ack.c
124061 @@ -224,7 +224,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
124062
124063 _enter("{%d,%d,%d,%d},",
124064 call->acks_hard, call->acks_unacked,
124065 - atomic_read(&call->sequence),
124066 + atomic_read_unchecked(&call->sequence),
124067 CIRC_CNT(call->acks_head, call->acks_tail, call->acks_winsz));
124068
124069 stop = false;
124070 @@ -248,7 +248,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
124071
124072 /* each Tx packet has a new serial number */
124073 sp->hdr.serial =
124074 - htonl(atomic_inc_return(&call->conn->serial));
124075 + htonl(atomic_inc_return_unchecked(&call->conn->serial));
124076
124077 hdr = (struct rxrpc_header *) txb->head;
124078 hdr->serial = sp->hdr.serial;
124079 @@ -452,7 +452,7 @@ static void rxrpc_rotate_tx_window(struct rxrpc_call *call, u32 hard)
124080 */
124081 static void rxrpc_clear_tx_window(struct rxrpc_call *call)
124082 {
124083 - rxrpc_rotate_tx_window(call, atomic_read(&call->sequence));
124084 + rxrpc_rotate_tx_window(call, atomic_read_unchecked(&call->sequence));
124085 }
124086
124087 /*
124088 @@ -678,7 +678,7 @@ process_further:
124089
124090 latest = ntohl(sp->hdr.serial);
124091 hard = ntohl(ack.firstPacket);
124092 - tx = atomic_read(&call->sequence);
124093 + tx = atomic_read_unchecked(&call->sequence);
124094
124095 _proto("Rx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
124096 latest,
124097 @@ -1210,7 +1210,7 @@ void rxrpc_process_call(struct work_struct *work)
124098 goto maybe_reschedule;
124099
124100 send_ACK_with_skew:
124101 - ack.maxSkew = htons(atomic_read(&call->conn->hi_serial) -
124102 + ack.maxSkew = htons(atomic_read_unchecked(&call->conn->hi_serial) -
124103 ntohl(ack.serial));
124104 send_ACK:
124105 mtu = call->conn->trans->peer->if_mtu;
124106 @@ -1222,7 +1222,7 @@ send_ACK:
124107 ackinfo.rxMTU = htonl(rxrpc_rx_mtu);
124108 ackinfo.jumbo_max = htonl(rxrpc_rx_jumbo_max);
124109
124110 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
124111 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
124112 _proto("Tx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
124113 ntohl(hdr.serial),
124114 ntohs(ack.maxSkew),
124115 @@ -1240,7 +1240,7 @@ send_ACK:
124116 send_message:
124117 _debug("send message");
124118
124119 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
124120 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
124121 _proto("Tx %s %%%u", rxrpc_pkts[hdr.type], ntohl(hdr.serial));
124122 send_message_2:
124123
124124 diff --git a/net/rxrpc/ar-call.c b/net/rxrpc/ar-call.c
124125 index a9e05db..194e793 100644
124126 --- a/net/rxrpc/ar-call.c
124127 +++ b/net/rxrpc/ar-call.c
124128 @@ -232,7 +232,7 @@ static struct rxrpc_call *rxrpc_alloc_call(gfp_t gfp)
124129 spin_lock_init(&call->lock);
124130 rwlock_init(&call->state_lock);
124131 atomic_set(&call->usage, 1);
124132 - call->debug_id = atomic_inc_return(&rxrpc_debug_id);
124133 + call->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124134 call->state = RXRPC_CALL_CLIENT_SEND_REQUEST;
124135
124136 memset(&call->sock_node, 0xed, sizeof(call->sock_node));
124137 diff --git a/net/rxrpc/ar-connection.c b/net/rxrpc/ar-connection.c
124138 index 6631f4f..bfdf056 100644
124139 --- a/net/rxrpc/ar-connection.c
124140 +++ b/net/rxrpc/ar-connection.c
124141 @@ -210,7 +210,7 @@ static struct rxrpc_connection *rxrpc_alloc_connection(gfp_t gfp)
124142 rwlock_init(&conn->lock);
124143 spin_lock_init(&conn->state_lock);
124144 atomic_set(&conn->usage, 1);
124145 - conn->debug_id = atomic_inc_return(&rxrpc_debug_id);
124146 + conn->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124147 conn->avail_calls = RXRPC_MAXCALLS;
124148 conn->size_align = 4;
124149 conn->header_size = sizeof(struct rxrpc_header);
124150 diff --git a/net/rxrpc/ar-connevent.c b/net/rxrpc/ar-connevent.c
124151 index e7ed43a..6afa140 100644
124152 --- a/net/rxrpc/ar-connevent.c
124153 +++ b/net/rxrpc/ar-connevent.c
124154 @@ -109,7 +109,7 @@ static int rxrpc_abort_connection(struct rxrpc_connection *conn,
124155
124156 len = iov[0].iov_len + iov[1].iov_len;
124157
124158 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
124159 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
124160 _proto("Tx CONN ABORT %%%u { %d }", ntohl(hdr.serial), abort_code);
124161
124162 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
124163 diff --git a/net/rxrpc/ar-input.c b/net/rxrpc/ar-input.c
124164 index 4505a69..fe73096 100644
124165 --- a/net/rxrpc/ar-input.c
124166 +++ b/net/rxrpc/ar-input.c
124167 @@ -331,9 +331,9 @@ void rxrpc_fast_process_packet(struct rxrpc_call *call, struct sk_buff *skb)
124168 /* track the latest serial number on this connection for ACK packet
124169 * information */
124170 serial = ntohl(sp->hdr.serial);
124171 - hi_serial = atomic_read(&call->conn->hi_serial);
124172 + hi_serial = atomic_read_unchecked(&call->conn->hi_serial);
124173 while (serial > hi_serial)
124174 - hi_serial = atomic_cmpxchg(&call->conn->hi_serial, hi_serial,
124175 + hi_serial = atomic_cmpxchg_unchecked(&call->conn->hi_serial, hi_serial,
124176 serial);
124177
124178 /* request ACK generation for any ACK or DATA packet that requests
124179 diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
124180 index aef1bd2..97736c3 100644
124181 --- a/net/rxrpc/ar-internal.h
124182 +++ b/net/rxrpc/ar-internal.h
124183 @@ -274,8 +274,8 @@ struct rxrpc_connection {
124184 int error; /* error code for local abort */
124185 int debug_id; /* debug ID for printks */
124186 unsigned int call_counter; /* call ID counter */
124187 - atomic_t serial; /* packet serial number counter */
124188 - atomic_t hi_serial; /* highest serial number received */
124189 + atomic_unchecked_t serial; /* packet serial number counter */
124190 + atomic_unchecked_t hi_serial; /* highest serial number received */
124191 u8 avail_calls; /* number of calls available */
124192 u8 size_align; /* data size alignment (for security) */
124193 u8 header_size; /* rxrpc + security header size */
124194 @@ -348,7 +348,7 @@ struct rxrpc_call {
124195 spinlock_t lock;
124196 rwlock_t state_lock; /* lock for state transition */
124197 atomic_t usage;
124198 - atomic_t sequence; /* Tx data packet sequence counter */
124199 + atomic_unchecked_t sequence; /* Tx data packet sequence counter */
124200 u32 abort_code; /* local/remote abort code */
124201 enum { /* current state of call */
124202 RXRPC_CALL_CLIENT_SEND_REQUEST, /* - client sending request phase */
124203 @@ -433,7 +433,7 @@ static inline void rxrpc_abort_call(struct rxrpc_call *call, u32 abort_code)
124204 */
124205 extern atomic_t rxrpc_n_skbs;
124206 extern __be32 rxrpc_epoch;
124207 -extern atomic_t rxrpc_debug_id;
124208 +extern atomic_unchecked_t rxrpc_debug_id;
124209 extern struct workqueue_struct *rxrpc_workqueue;
124210
124211 /*
124212 diff --git a/net/rxrpc/ar-local.c b/net/rxrpc/ar-local.c
124213 index 78483b4..b1c0e1e 100644
124214 --- a/net/rxrpc/ar-local.c
124215 +++ b/net/rxrpc/ar-local.c
124216 @@ -53,7 +53,7 @@ struct rxrpc_local *rxrpc_alloc_local(struct sockaddr_rxrpc *srx)
124217 spin_lock_init(&local->lock);
124218 rwlock_init(&local->services_lock);
124219 atomic_set(&local->usage, 1);
124220 - local->debug_id = atomic_inc_return(&rxrpc_debug_id);
124221 + local->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124222 memcpy(&local->srx, srx, sizeof(*srx));
124223 }
124224
124225 diff --git a/net/rxrpc/ar-output.c b/net/rxrpc/ar-output.c
124226 index c004280..ab1ed5a 100644
124227 --- a/net/rxrpc/ar-output.c
124228 +++ b/net/rxrpc/ar-output.c
124229 @@ -648,14 +648,14 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
124230 memset(skb_put(skb, pad), 0, pad);
124231 }
124232
124233 - seq = atomic_inc_return(&call->sequence);
124234 + seq = atomic_inc_return_unchecked(&call->sequence);
124235
124236 sp->hdr.epoch = conn->epoch;
124237 sp->hdr.cid = call->cid;
124238 sp->hdr.callNumber = call->call_id;
124239 sp->hdr.seq = htonl(seq);
124240 sp->hdr.serial =
124241 - htonl(atomic_inc_return(&conn->serial));
124242 + htonl(atomic_inc_return_unchecked(&conn->serial));
124243 sp->hdr.type = RXRPC_PACKET_TYPE_DATA;
124244 sp->hdr.userStatus = 0;
124245 sp->hdr.securityIndex = conn->security_ix;
124246 diff --git a/net/rxrpc/ar-peer.c b/net/rxrpc/ar-peer.c
124247 index bebaa43..2644591 100644
124248 --- a/net/rxrpc/ar-peer.c
124249 +++ b/net/rxrpc/ar-peer.c
124250 @@ -72,7 +72,7 @@ static struct rxrpc_peer *rxrpc_alloc_peer(struct sockaddr_rxrpc *srx,
124251 INIT_LIST_HEAD(&peer->error_targets);
124252 spin_lock_init(&peer->lock);
124253 atomic_set(&peer->usage, 1);
124254 - peer->debug_id = atomic_inc_return(&rxrpc_debug_id);
124255 + peer->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124256 memcpy(&peer->srx, srx, sizeof(*srx));
124257
124258 rxrpc_assess_MTU_size(peer);
124259 diff --git a/net/rxrpc/ar-proc.c b/net/rxrpc/ar-proc.c
124260 index 38047f7..9f48511 100644
124261 --- a/net/rxrpc/ar-proc.c
124262 +++ b/net/rxrpc/ar-proc.c
124263 @@ -164,8 +164,8 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
124264 atomic_read(&conn->usage),
124265 rxrpc_conn_states[conn->state],
124266 key_serial(conn->key),
124267 - atomic_read(&conn->serial),
124268 - atomic_read(&conn->hi_serial));
124269 + atomic_read_unchecked(&conn->serial),
124270 + atomic_read_unchecked(&conn->hi_serial));
124271
124272 return 0;
124273 }
124274 diff --git a/net/rxrpc/ar-transport.c b/net/rxrpc/ar-transport.c
124275 index 1976dec..aa70be5 100644
124276 --- a/net/rxrpc/ar-transport.c
124277 +++ b/net/rxrpc/ar-transport.c
124278 @@ -51,7 +51,7 @@ static struct rxrpc_transport *rxrpc_alloc_transport(struct rxrpc_local *local,
124279 spin_lock_init(&trans->client_lock);
124280 rwlock_init(&trans->conn_lock);
124281 atomic_set(&trans->usage, 1);
124282 - trans->debug_id = atomic_inc_return(&rxrpc_debug_id);
124283 + trans->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
124284
124285 if (peer->srx.transport.family == AF_INET) {
124286 switch (peer->srx.transport_type) {
124287 diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
124288 index f226709..0e735a8 100644
124289 --- a/net/rxrpc/rxkad.c
124290 +++ b/net/rxrpc/rxkad.c
124291 @@ -610,7 +610,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
124292
124293 len = iov[0].iov_len + iov[1].iov_len;
124294
124295 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
124296 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
124297 _proto("Tx CHALLENGE %%%u", ntohl(hdr.serial));
124298
124299 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
124300 @@ -660,7 +660,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
124301
124302 len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;
124303
124304 - hdr->serial = htonl(atomic_inc_return(&conn->serial));
124305 + hdr->serial = htonl(atomic_inc_return_unchecked(&conn->serial));
124306 _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
124307
124308 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
124309 diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
124310 index f06aa01..1a0aa2a 100644
124311 --- a/net/sched/sch_api.c
124312 +++ b/net/sched/sch_api.c
124313 @@ -253,7 +253,8 @@ int qdisc_set_default(const char *name)
124314 }
124315
124316 /* We know handle. Find qdisc among all qdisc's attached to device
124317 - (root qdisc, all its children, children of children etc.)
124318 + * (root qdisc, all its children, children of children etc.)
124319 + * Note: caller either uses rtnl or rcu_read_lock()
124320 */
124321
124322 static struct Qdisc *qdisc_match_from_root(struct Qdisc *root, u32 handle)
124323 @@ -264,7 +265,7 @@ static struct Qdisc *qdisc_match_from_root(struct Qdisc *root, u32 handle)
124324 root->handle == handle)
124325 return root;
124326
124327 - list_for_each_entry(q, &root->list, list) {
124328 + list_for_each_entry_rcu(q, &root->list, list) {
124329 if (q->handle == handle)
124330 return q;
124331 }
124332 @@ -277,15 +278,18 @@ void qdisc_list_add(struct Qdisc *q)
124333 struct Qdisc *root = qdisc_dev(q)->qdisc;
124334
124335 WARN_ON_ONCE(root == &noop_qdisc);
124336 - list_add_tail(&q->list, &root->list);
124337 + ASSERT_RTNL();
124338 + list_add_tail_rcu(&q->list, &root->list);
124339 }
124340 }
124341 EXPORT_SYMBOL(qdisc_list_add);
124342
124343 void qdisc_list_del(struct Qdisc *q)
124344 {
124345 - if ((q->parent != TC_H_ROOT) && !(q->flags & TCQ_F_INGRESS))
124346 - list_del(&q->list);
124347 + if ((q->parent != TC_H_ROOT) && !(q->flags & TCQ_F_INGRESS)) {
124348 + ASSERT_RTNL();
124349 + list_del_rcu(&q->list);
124350 + }
124351 }
124352 EXPORT_SYMBOL(qdisc_list_del);
124353
124354 @@ -750,14 +754,18 @@ void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
124355 if (n == 0)
124356 return;
124357 drops = max_t(int, n, 0);
124358 + rcu_read_lock();
124359 while ((parentid = sch->parent)) {
124360 if (TC_H_MAJ(parentid) == TC_H_MAJ(TC_H_INGRESS))
124361 - return;
124362 + break;
124363
124364 + if (sch->flags & TCQ_F_NOPARENT)
124365 + break;
124366 + /* TODO: perform the search on a per txq basis */
124367 sch = qdisc_lookup(qdisc_dev(sch), TC_H_MAJ(parentid));
124368 if (sch == NULL) {
124369 - WARN_ON(parentid != TC_H_ROOT);
124370 - return;
124371 + WARN_ON_ONCE(parentid != TC_H_ROOT);
124372 + break;
124373 }
124374 cops = sch->ops->cl_ops;
124375 if (cops->qlen_notify) {
124376 @@ -768,6 +776,7 @@ void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
124377 sch->q.qlen -= n;
124378 __qdisc_qstats_drop(sch, drops);
124379 }
124380 + rcu_read_unlock();
124381 }
124382 EXPORT_SYMBOL(qdisc_tree_decrease_qlen);
124383
124384 @@ -941,7 +950,7 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
124385 }
124386 lockdep_set_class(qdisc_lock(sch), &qdisc_tx_lock);
124387 if (!netif_is_multiqueue(dev))
124388 - sch->flags |= TCQ_F_ONETXQUEUE;
124389 + sch->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124390 }
124391
124392 sch->handle = handle;
124393 diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
124394 index 6efca30..166495a 100644
124395 --- a/net/sched/sch_generic.c
124396 +++ b/net/sched/sch_generic.c
124397 @@ -349,7 +349,7 @@ void netif_carrier_on(struct net_device *dev)
124398 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
124399 if (dev->reg_state == NETREG_UNINITIALIZED)
124400 return;
124401 - atomic_inc(&dev->carrier_changes);
124402 + atomic_inc_unchecked(&dev->carrier_changes);
124403 linkwatch_fire_event(dev);
124404 if (netif_running(dev))
124405 __netdev_watchdog_up(dev);
124406 @@ -368,7 +368,7 @@ void netif_carrier_off(struct net_device *dev)
124407 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
124408 if (dev->reg_state == NETREG_UNINITIALIZED)
124409 return;
124410 - atomic_inc(&dev->carrier_changes);
124411 + atomic_inc_unchecked(&dev->carrier_changes);
124412 linkwatch_fire_event(dev);
124413 }
124414 }
124415 @@ -743,7 +743,7 @@ static void attach_one_default_qdisc(struct net_device *dev,
124416 return;
124417 }
124418 if (!netif_is_multiqueue(dev))
124419 - qdisc->flags |= TCQ_F_ONETXQUEUE;
124420 + qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124421 }
124422 dev_queue->qdisc_sleeping = qdisc;
124423 }
124424 diff --git a/net/sched/sch_mq.c b/net/sched/sch_mq.c
124425 index f3cbaec..3e82f04 100644
124426 --- a/net/sched/sch_mq.c
124427 +++ b/net/sched/sch_mq.c
124428 @@ -63,7 +63,7 @@ static int mq_init(struct Qdisc *sch, struct nlattr *opt)
124429 if (qdisc == NULL)
124430 goto err;
124431 priv->qdiscs[ntx] = qdisc;
124432 - qdisc->flags |= TCQ_F_ONETXQUEUE;
124433 + qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124434 }
124435
124436 sch->flags |= TCQ_F_MQROOT;
124437 @@ -156,7 +156,7 @@ static int mq_graft(struct Qdisc *sch, unsigned long cl, struct Qdisc *new,
124438
124439 *old = dev_graft_qdisc(dev_queue, new);
124440 if (new)
124441 - new->flags |= TCQ_F_ONETXQUEUE;
124442 + new->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124443 if (dev->flags & IFF_UP)
124444 dev_activate(dev);
124445 return 0;
124446 diff --git a/net/sched/sch_mqprio.c b/net/sched/sch_mqprio.c
124447 index 3811a74..ad70ecf 100644
124448 --- a/net/sched/sch_mqprio.c
124449 +++ b/net/sched/sch_mqprio.c
124450 @@ -132,7 +132,7 @@ static int mqprio_init(struct Qdisc *sch, struct nlattr *opt)
124451 goto err;
124452 }
124453 priv->qdiscs[i] = qdisc;
124454 - qdisc->flags |= TCQ_F_ONETXQUEUE;
124455 + qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124456 }
124457
124458 /* If the mqprio options indicate that hardware should own
124459 @@ -209,7 +209,7 @@ static int mqprio_graft(struct Qdisc *sch, unsigned long cl, struct Qdisc *new,
124460 *old = dev_graft_qdisc(dev_queue, new);
124461
124462 if (new)
124463 - new->flags |= TCQ_F_ONETXQUEUE;
124464 + new->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
124465
124466 if (dev->flags & IFF_UP)
124467 dev_activate(dev);
124468 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
124469 index e917d27..13e2a4c 100644
124470 --- a/net/sctp/ipv6.c
124471 +++ b/net/sctp/ipv6.c
124472 @@ -973,7 +973,7 @@ static const struct inet6_protocol sctpv6_protocol = {
124473 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL,
124474 };
124475
124476 -static struct sctp_af sctp_af_inet6 = {
124477 +static struct sctp_af sctp_af_inet6 __read_only = {
124478 .sa_family = AF_INET6,
124479 .sctp_xmit = sctp_v6_xmit,
124480 .setsockopt = ipv6_setsockopt,
124481 @@ -1003,7 +1003,7 @@ static struct sctp_af sctp_af_inet6 = {
124482 #endif
124483 };
124484
124485 -static struct sctp_pf sctp_pf_inet6 = {
124486 +static struct sctp_pf sctp_pf_inet6 __read_only = {
124487 .event_msgname = sctp_inet6_event_msgname,
124488 .skb_msgname = sctp_inet6_skb_msgname,
124489 .af_supported = sctp_inet6_af_supported,
124490 @@ -1030,7 +1030,7 @@ void sctp_v6_pf_init(void)
124491
124492 void sctp_v6_pf_exit(void)
124493 {
124494 - list_del(&sctp_af_inet6.list);
124495 + pax_list_del(&sctp_af_inet6.list);
124496 }
124497
124498 /* Initialize IPv6 support and register with socket layer. */
124499 diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
124500 index 3ac604f..e1b6dec 100644
124501 --- a/net/sctp/protocol.c
124502 +++ b/net/sctp/protocol.c
124503 @@ -836,8 +836,10 @@ int sctp_register_af(struct sctp_af *af)
124504 return 0;
124505 }
124506
124507 + pax_open_kernel();
124508 INIT_LIST_HEAD(&af->list);
124509 - list_add_tail(&af->list, &sctp_address_families);
124510 + pax_close_kernel();
124511 + pax_list_add_tail(&af->list, &sctp_address_families);
124512 return 1;
124513 }
124514
124515 @@ -967,7 +969,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb,
124516
124517 static struct sctp_af sctp_af_inet;
124518
124519 -static struct sctp_pf sctp_pf_inet = {
124520 +static struct sctp_pf sctp_pf_inet __read_only = {
124521 .event_msgname = sctp_inet_event_msgname,
124522 .skb_msgname = sctp_inet_skb_msgname,
124523 .af_supported = sctp_inet_af_supported,
124524 @@ -1039,7 +1041,7 @@ static const struct net_protocol sctp_protocol = {
124525 };
124526
124527 /* IPv4 address related functions. */
124528 -static struct sctp_af sctp_af_inet = {
124529 +static struct sctp_af sctp_af_inet __read_only = {
124530 .sa_family = AF_INET,
124531 .sctp_xmit = sctp_v4_xmit,
124532 .setsockopt = ip_setsockopt,
124533 @@ -1123,7 +1125,7 @@ static void sctp_v4_pf_init(void)
124534
124535 static void sctp_v4_pf_exit(void)
124536 {
124537 - list_del(&sctp_af_inet.list);
124538 + pax_list_del(&sctp_af_inet.list);
124539 }
124540
124541 static int sctp_v4_protosw_init(void)
124542 diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
124543 index 85e6f03..d41c1ad 100644
124544 --- a/net/sctp/sm_sideeffect.c
124545 +++ b/net/sctp/sm_sideeffect.c
124546 @@ -439,7 +439,7 @@ static void sctp_generate_sack_event(unsigned long data)
124547 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK);
124548 }
124549
124550 -sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
124551 +sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
124552 NULL,
124553 sctp_generate_t1_cookie_event,
124554 sctp_generate_t1_init_event,
124555 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
124556 index 17bef01..eaadf73 100644
124557 --- a/net/sctp/socket.c
124558 +++ b/net/sctp/socket.c
124559 @@ -972,7 +972,7 @@ static int sctp_setsockopt_bindx(struct sock *sk,
124560 return -EFAULT;
124561
124562 /* Alloc space for the address array in kernel memory. */
124563 - kaddrs = kmalloc(addrs_size, GFP_KERNEL);
124564 + kaddrs = kmalloc(addrs_size, GFP_USER | __GFP_NOWARN);
124565 if (unlikely(!kaddrs))
124566 return -ENOMEM;
124567
124568 @@ -2194,11 +2194,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
124569 {
124570 struct sctp_association *asoc;
124571 struct sctp_ulpevent *event;
124572 + struct sctp_event_subscribe subscribe;
124573
124574 if (optlen > sizeof(struct sctp_event_subscribe))
124575 return -EINVAL;
124576 - if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen))
124577 + if (copy_from_user(&subscribe, optval, optlen))
124578 return -EFAULT;
124579 + sctp_sk(sk)->subscribe = subscribe;
124580
124581 /* At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
124582 * if there is no data to be sent or retransmit, the stack will
124583 @@ -4373,13 +4375,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
124584 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
124585 int __user *optlen)
124586 {
124587 + struct sctp_event_subscribe subscribe;
124588 +
124589 if (len <= 0)
124590 return -EINVAL;
124591 if (len > sizeof(struct sctp_event_subscribe))
124592 len = sizeof(struct sctp_event_subscribe);
124593 if (put_user(len, optlen))
124594 return -EFAULT;
124595 - if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len))
124596 + subscribe = sctp_sk(sk)->subscribe;
124597 + if (copy_to_user(optval, &subscribe, len))
124598 return -EFAULT;
124599 return 0;
124600 }
124601 @@ -4397,6 +4402,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
124602 */
124603 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
124604 {
124605 + __u32 autoclose;
124606 +
124607 /* Applicable to UDP-style socket only */
124608 if (sctp_style(sk, TCP))
124609 return -EOPNOTSUPP;
124610 @@ -4405,7 +4412,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
124611 len = sizeof(int);
124612 if (put_user(len, optlen))
124613 return -EFAULT;
124614 - if (copy_to_user(optval, &sctp_sk(sk)->autoclose, sizeof(int)))
124615 + autoclose = sctp_sk(sk)->autoclose;
124616 + if (copy_to_user(optval, &autoclose, sizeof(int)))
124617 return -EFAULT;
124618 return 0;
124619 }
124620 @@ -4779,12 +4787,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
124621 */
124622 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
124623 {
124624 + struct sctp_initmsg initmsg;
124625 +
124626 if (len < sizeof(struct sctp_initmsg))
124627 return -EINVAL;
124628 len = sizeof(struct sctp_initmsg);
124629 if (put_user(len, optlen))
124630 return -EFAULT;
124631 - if (copy_to_user(optval, &sctp_sk(sk)->initmsg, len))
124632 + initmsg = sctp_sk(sk)->initmsg;
124633 + if (copy_to_user(optval, &initmsg, len))
124634 return -EFAULT;
124635 return 0;
124636 }
124637 @@ -4825,6 +4836,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
124638 ->addr_to_user(sp, &temp);
124639 if (space_left < addrlen)
124640 return -ENOMEM;
124641 + if (addrlen > sizeof(temp) || addrlen < 0)
124642 + return -EFAULT;
124643 if (copy_to_user(to, &temp, addrlen))
124644 return -EFAULT;
124645 to += addrlen;
124646 @@ -4928,7 +4941,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,
124647 to = optval + offsetof(struct sctp_getaddrs, addrs);
124648 space_left = len - offsetof(struct sctp_getaddrs, addrs);
124649
124650 - addrs = kmalloc(space_left, GFP_KERNEL);
124651 + addrs = kmalloc(space_left, GFP_USER | __GFP_NOWARN);
124652 if (!addrs)
124653 return -ENOMEM;
124654
124655 @@ -7375,6 +7388,13 @@ struct proto sctp_prot = {
124656
124657 #if IS_ENABLED(CONFIG_IPV6)
124658
124659 +#include <net/transp_v6.h>
124660 +static void sctp_v6_destroy_sock(struct sock *sk)
124661 +{
124662 + sctp_destroy_sock(sk);
124663 + inet6_destroy_sock(sk);
124664 +}
124665 +
124666 struct proto sctpv6_prot = {
124667 .name = "SCTPv6",
124668 .owner = THIS_MODULE,
124669 @@ -7384,7 +7404,7 @@ struct proto sctpv6_prot = {
124670 .accept = sctp_accept,
124671 .ioctl = sctp_ioctl,
124672 .init = sctp_init_sock,
124673 - .destroy = sctp_destroy_sock,
124674 + .destroy = sctp_v6_destroy_sock,
124675 .shutdown = sctp_shutdown,
124676 .setsockopt = sctp_setsockopt,
124677 .getsockopt = sctp_getsockopt,
124678 diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
124679 index 26d50c5..dfae665 100644
124680 --- a/net/sctp/sysctl.c
124681 +++ b/net/sctp/sysctl.c
124682 @@ -317,7 +317,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
124683 loff_t *ppos)
124684 {
124685 struct net *net = current->nsproxy->net_ns;
124686 - struct ctl_table tbl;
124687 + ctl_table_no_const tbl;
124688 bool changed = false;
124689 char *none = "none";
124690 char tmp[8];
124691 @@ -365,7 +365,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
124692 struct net *net = current->nsproxy->net_ns;
124693 unsigned int min = *(unsigned int *) ctl->extra1;
124694 unsigned int max = *(unsigned int *) ctl->extra2;
124695 - struct ctl_table tbl;
124696 + ctl_table_no_const tbl;
124697 int ret, new_value;
124698
124699 memset(&tbl, 0, sizeof(struct ctl_table));
124700 @@ -394,7 +394,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
124701 struct net *net = current->nsproxy->net_ns;
124702 unsigned int min = *(unsigned int *) ctl->extra1;
124703 unsigned int max = *(unsigned int *) ctl->extra2;
124704 - struct ctl_table tbl;
124705 + ctl_table_no_const tbl;
124706 int ret, new_value;
124707
124708 memset(&tbl, 0, sizeof(struct ctl_table));
124709 @@ -432,7 +432,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
124710 loff_t *ppos)
124711 {
124712 struct net *net = current->nsproxy->net_ns;
124713 - struct ctl_table tbl;
124714 + ctl_table_no_const tbl;
124715 int new_value, ret;
124716
124717 memset(&tbl, 0, sizeof(struct ctl_table));
124718 @@ -459,7 +459,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
124719
124720 int sctp_sysctl_net_register(struct net *net)
124721 {
124722 - struct ctl_table *table;
124723 + ctl_table_no_const *table;
124724 int i;
124725
124726 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
124727 diff --git a/net/socket.c b/net/socket.c
124728 index 9963a0b..77c79d6 100644
124729 --- a/net/socket.c
124730 +++ b/net/socket.c
124731 @@ -89,6 +89,7 @@
124732 #include <linux/magic.h>
124733 #include <linux/slab.h>
124734 #include <linux/xattr.h>
124735 +#include <linux/in.h>
124736
124737 #include <asm/uaccess.h>
124738 #include <asm/unistd.h>
124739 @@ -107,6 +108,7 @@
124740 #include <linux/atalk.h>
124741 #include <net/busy_poll.h>
124742 #include <linux/errqueue.h>
124743 +#include <linux/grsock.h>
124744
124745 #ifdef CONFIG_NET_RX_BUSY_POLL
124746 unsigned int sysctl_net_busy_read __read_mostly;
124747 @@ -160,7 +162,7 @@ static const struct file_operations socket_file_ops = {
124748 */
124749
124750 static DEFINE_SPINLOCK(net_family_lock);
124751 -static const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
124752 +const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
124753
124754 /*
124755 * Statistics counters of the socket lists
124756 @@ -326,7 +328,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
124757 &sockfs_dentry_operations, SOCKFS_MAGIC);
124758 }
124759
124760 -static struct vfsmount *sock_mnt __read_mostly;
124761 +struct vfsmount *sock_mnt __read_mostly;
124762
124763 static struct file_system_type sock_fs_type = {
124764 .name = "sockfs",
124765 @@ -1105,6 +1107,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
124766 return -EAFNOSUPPORT;
124767 if (type < 0 || type >= SOCK_MAX)
124768 return -EINVAL;
124769 + if (protocol < 0)
124770 + return -EINVAL;
124771
124772 /* Compatibility.
124773
124774 @@ -1125,6 +1129,20 @@ int __sock_create(struct net *net, int family, int type, int protocol,
124775 if (err)
124776 return err;
124777
124778 + if(!kern && !gr_search_socket(family, type, protocol)) {
124779 + if (rcu_access_pointer(net_families[family]) == NULL)
124780 + return -EAFNOSUPPORT;
124781 + else
124782 + return -EACCES;
124783 + }
124784 +
124785 + if (!kern && gr_handle_sock_all(family, type, protocol)) {
124786 + if (rcu_access_pointer(net_families[family]) == NULL)
124787 + return -EAFNOSUPPORT;
124788 + else
124789 + return -EACCES;
124790 + }
124791 +
124792 /*
124793 * Allocate the socket and allow the family to set things up. if
124794 * the protocol is 0, the family is instructed to select an appropriate
124795 @@ -1376,6 +1394,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
124796 if (sock) {
124797 err = move_addr_to_kernel(umyaddr, addrlen, &address);
124798 if (err >= 0) {
124799 + if (gr_handle_sock_server((struct sockaddr *)&address)) {
124800 + err = -EACCES;
124801 + goto error;
124802 + }
124803 + err = gr_search_bind(sock, (struct sockaddr_in *)&address);
124804 + if (err)
124805 + goto error;
124806 +
124807 err = security_socket_bind(sock,
124808 (struct sockaddr *)&address,
124809 addrlen);
124810 @@ -1384,6 +1410,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
124811 (struct sockaddr *)
124812 &address, addrlen);
124813 }
124814 +error:
124815 fput_light(sock->file, fput_needed);
124816 }
124817 return err;
124818 @@ -1407,10 +1434,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
124819 if ((unsigned int)backlog > somaxconn)
124820 backlog = somaxconn;
124821
124822 + if (gr_handle_sock_server_other(sock->sk)) {
124823 + err = -EPERM;
124824 + goto error;
124825 + }
124826 +
124827 + err = gr_search_listen(sock);
124828 + if (err)
124829 + goto error;
124830 +
124831 err = security_socket_listen(sock, backlog);
124832 if (!err)
124833 err = sock->ops->listen(sock, backlog);
124834
124835 +error:
124836 fput_light(sock->file, fput_needed);
124837 }
124838 return err;
124839 @@ -1454,6 +1491,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
124840 newsock->type = sock->type;
124841 newsock->ops = sock->ops;
124842
124843 + if (gr_handle_sock_server_other(sock->sk)) {
124844 + err = -EPERM;
124845 + sock_release(newsock);
124846 + goto out_put;
124847 + }
124848 +
124849 + err = gr_search_accept(sock);
124850 + if (err) {
124851 + sock_release(newsock);
124852 + goto out_put;
124853 + }
124854 +
124855 /*
124856 * We don't need try_module_get here, as the listening socket (sock)
124857 * has the protocol module (sock->ops->owner) held.
124858 @@ -1499,6 +1548,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
124859 fd_install(newfd, newfile);
124860 err = newfd;
124861
124862 + gr_attach_curr_ip(newsock->sk);
124863 +
124864 out_put:
124865 fput_light(sock->file, fput_needed);
124866 out:
124867 @@ -1531,6 +1582,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
124868 int, addrlen)
124869 {
124870 struct socket *sock;
124871 + struct sockaddr *sck;
124872 struct sockaddr_storage address;
124873 int err, fput_needed;
124874
124875 @@ -1541,6 +1593,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
124876 if (err < 0)
124877 goto out_put;
124878
124879 + sck = (struct sockaddr *)&address;
124880 +
124881 + if (gr_handle_sock_client(sck)) {
124882 + err = -EACCES;
124883 + goto out_put;
124884 + }
124885 +
124886 + err = gr_search_connect(sock, (struct sockaddr_in *)sck);
124887 + if (err)
124888 + goto out_put;
124889 +
124890 err =
124891 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
124892 if (err)
124893 @@ -1622,6 +1685,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
124894 * the protocol.
124895 */
124896
124897 +asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, struct sockaddr __user *, int);
124898 +
124899 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
124900 unsigned int, flags, struct sockaddr __user *, addr,
124901 int, addr_len)
124902 @@ -1685,7 +1750,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
124903 struct socket *sock;
124904 struct iovec iov;
124905 struct msghdr msg;
124906 - struct sockaddr_storage address;
124907 + struct sockaddr_storage address = { };
124908 int err, err2;
124909 int fput_needed;
124910
124911 @@ -1927,7 +1992,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
124912 * checking falls down on this.
124913 */
124914 if (copy_from_user(ctl_buf,
124915 - (void __user __force *)msg_sys->msg_control,
124916 + (void __force_user *)msg_sys->msg_control,
124917 ctl_len))
124918 goto out_freectl;
124919 msg_sys->msg_control = ctl_buf;
124920 @@ -2077,7 +2142,7 @@ static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
124921 ssize_t err;
124922
124923 /* kernel mode address */
124924 - struct sockaddr_storage addr;
124925 + struct sockaddr_storage addr = { };
124926
124927 /* user mode address pointers */
124928 struct sockaddr __user *uaddr;
124929 @@ -2722,7 +2787,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
124930 ifr = compat_alloc_user_space(buf_size);
124931 rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
124932
124933 - if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
124934 + if (copy_in_user(ifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
124935 return -EFAULT;
124936
124937 if (put_user(convert_in ? rxnfc : compat_ptr(data),
124938 @@ -2833,7 +2898,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
124939 old_fs = get_fs();
124940 set_fs(KERNEL_DS);
124941 err = dev_ioctl(net, cmd,
124942 - (struct ifreq __user __force *) &kifr);
124943 + (struct ifreq __force_user *) &kifr);
124944 set_fs(old_fs);
124945
124946 return err;
124947 @@ -2926,7 +2991,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
124948
124949 old_fs = get_fs();
124950 set_fs(KERNEL_DS);
124951 - err = dev_ioctl(net, cmd, (void __user __force *)&ifr);
124952 + err = dev_ioctl(net, cmd, (void __force_user *)&ifr);
124953 set_fs(old_fs);
124954
124955 if (cmd == SIOCGIFMAP && !err) {
124956 @@ -3010,7 +3075,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
124957 ret |= get_user(rtdev, &(ur4->rt_dev));
124958 if (rtdev) {
124959 ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
124960 - r4.rt_dev = (char __user __force *)devname;
124961 + r4.rt_dev = (char __force_user *)devname;
124962 devname[15] = 0;
124963 } else
124964 r4.rt_dev = NULL;
124965 @@ -3237,8 +3302,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
124966 int __user *uoptlen;
124967 int err;
124968
124969 - uoptval = (char __user __force *) optval;
124970 - uoptlen = (int __user __force *) optlen;
124971 + uoptval = (char __force_user *) optval;
124972 + uoptlen = (int __force_user *) optlen;
124973
124974 set_fs(KERNEL_DS);
124975 if (level == SOL_SOCKET)
124976 @@ -3258,7 +3323,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
124977 char __user *uoptval;
124978 int err;
124979
124980 - uoptval = (char __user __force *) optval;
124981 + uoptval = (char __force_user *) optval;
124982
124983 set_fs(KERNEL_DS);
124984 if (level == SOL_SOCKET)
124985 diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
124986 index 04ce2c0..b1dd1bd 100644
124987 --- a/net/sunrpc/Kconfig
124988 +++ b/net/sunrpc/Kconfig
124989 @@ -38,6 +38,7 @@ config SUNRPC_DEBUG
124990 bool "RPC: Enable dprintk debugging"
124991 depends on SUNRPC && SYSCTL
124992 select DEBUG_FS
124993 + depends on !GRKERNSEC_KMEM
124994 help
124995 This option enables a sysctl-based debugging interface
124996 that is be used by the 'rpcdebug' utility to turn on or off
124997 diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
124998 index 1095be9..815d777 100644
124999 --- a/net/sunrpc/auth_gss/svcauth_gss.c
125000 +++ b/net/sunrpc/auth_gss/svcauth_gss.c
125001 @@ -1142,7 +1142,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
125002 uint64_t *handle)
125003 {
125004 struct rsc rsci, *rscp = NULL;
125005 - static atomic64_t ctxhctr;
125006 + static atomic64_unchecked_t ctxhctr = ATOMIC64_INIT(0);
125007 long long ctxh;
125008 struct gss_api_mech *gm = NULL;
125009 time_t expiry;
125010 @@ -1153,7 +1153,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
125011 status = -ENOMEM;
125012 /* the handle needs to be just a unique id,
125013 * use a static counter */
125014 - ctxh = atomic64_inc_return(&ctxhctr);
125015 + ctxh = atomic64_inc_return_unchecked(&ctxhctr);
125016
125017 /* make a copy for the caller */
125018 *handle = ctxh;
125019 diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
125020 index 2928aff..6f9efeb 100644
125021 --- a/net/sunrpc/cache.c
125022 +++ b/net/sunrpc/cache.c
125023 @@ -1597,7 +1597,7 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
125024 struct sunrpc_net *sn;
125025
125026 sn = net_generic(net, sunrpc_net_id);
125027 - cd->u.procfs.proc_ent = proc_mkdir(cd->name, sn->proc_net_rpc);
125028 + cd->u.procfs.proc_ent = proc_mkdir_restrict(cd->name, sn->proc_net_rpc);
125029 if (cd->u.procfs.proc_ent == NULL)
125030 goto out_nomem;
125031 cd->u.procfs.channel_ent = NULL;
125032 diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
125033 index 23608eb..f2b5208 100644
125034 --- a/net/sunrpc/clnt.c
125035 +++ b/net/sunrpc/clnt.c
125036 @@ -1428,7 +1428,9 @@ call_start(struct rpc_task *task)
125037 (RPC_IS_ASYNC(task) ? "async" : "sync"));
125038
125039 /* Increment call count */
125040 - task->tk_msg.rpc_proc->p_count++;
125041 + pax_open_kernel();
125042 + (*(unsigned int *)&task->tk_msg.rpc_proc->p_count)++;
125043 + pax_close_kernel();
125044 clnt->cl_stats->rpccnt++;
125045 task->tk_action = call_reserve;
125046 }
125047 diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
125048 index 337ca85..42feae8 100644
125049 --- a/net/sunrpc/sched.c
125050 +++ b/net/sunrpc/sched.c
125051 @@ -261,9 +261,9 @@ static int rpc_wait_bit_killable(struct wait_bit_key *key)
125052 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS)
125053 static void rpc_task_set_debuginfo(struct rpc_task *task)
125054 {
125055 - static atomic_t rpc_pid;
125056 + static atomic_unchecked_t rpc_pid;
125057
125058 - task->tk_pid = atomic_inc_return(&rpc_pid);
125059 + task->tk_pid = atomic_inc_return_unchecked(&rpc_pid);
125060 }
125061 #else
125062 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
125063 diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
125064 index 2ecb994..5afb49f 100644
125065 --- a/net/sunrpc/stats.c
125066 +++ b/net/sunrpc/stats.c
125067 @@ -290,7 +290,7 @@ int rpc_proc_init(struct net *net)
125068
125069 dprintk("RPC: registering /proc/net/rpc\n");
125070 sn = net_generic(net, sunrpc_net_id);
125071 - sn->proc_net_rpc = proc_mkdir("rpc", net->proc_net);
125072 + sn->proc_net_rpc = proc_mkdir_restrict("rpc", net->proc_net);
125073 if (sn->proc_net_rpc == NULL)
125074 return -ENOMEM;
125075
125076 diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
125077 index 5a16d8d..bafbc6f 100644
125078 --- a/net/sunrpc/svc.c
125079 +++ b/net/sunrpc/svc.c
125080 @@ -1169,7 +1169,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
125081 svc_putnl(resv, RPC_SUCCESS);
125082
125083 /* Bump per-procedure stats counter */
125084 - procp->pc_count++;
125085 + pax_open_kernel();
125086 + (*(unsigned int *)&procp->pc_count)++;
125087 + pax_close_kernel();
125088
125089 /* Initialize storage for argp and resp */
125090 memset(rqstp->rq_argp, 0, procp->pc_argsize);
125091 diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
125092 index 621ca7b..78bf76b 100644
125093 --- a/net/sunrpc/svcauth_unix.c
125094 +++ b/net/sunrpc/svcauth_unix.c
125095 @@ -470,7 +470,7 @@ static void unix_gid_request(struct cache_detail *cd,
125096 (*bpp)[-1] = '\n';
125097 }
125098
125099 -static struct unix_gid *unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
125100 +static struct unix_gid * __intentional_overflow(-1) unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
125101
125102 static int unix_gid_parse(struct cache_detail *cd,
125103 char *mesg, int mlen)
125104 diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
125105 index 2cd252f..eefac51 100644
125106 --- a/net/sunrpc/xprtrdma/svc_rdma.c
125107 +++ b/net/sunrpc/xprtrdma/svc_rdma.c
125108 @@ -61,15 +61,15 @@ unsigned int svcrdma_max_req_size = RPCRDMA_MAX_REQ_SIZE;
125109 static unsigned int min_max_inline = 4096;
125110 static unsigned int max_max_inline = 65536;
125111
125112 -atomic_t rdma_stat_recv;
125113 -atomic_t rdma_stat_read;
125114 -atomic_t rdma_stat_write;
125115 -atomic_t rdma_stat_sq_starve;
125116 -atomic_t rdma_stat_rq_starve;
125117 -atomic_t rdma_stat_rq_poll;
125118 -atomic_t rdma_stat_rq_prod;
125119 -atomic_t rdma_stat_sq_poll;
125120 -atomic_t rdma_stat_sq_prod;
125121 +atomic_unchecked_t rdma_stat_recv;
125122 +atomic_unchecked_t rdma_stat_read;
125123 +atomic_unchecked_t rdma_stat_write;
125124 +atomic_unchecked_t rdma_stat_sq_starve;
125125 +atomic_unchecked_t rdma_stat_rq_starve;
125126 +atomic_unchecked_t rdma_stat_rq_poll;
125127 +atomic_unchecked_t rdma_stat_rq_prod;
125128 +atomic_unchecked_t rdma_stat_sq_poll;
125129 +atomic_unchecked_t rdma_stat_sq_prod;
125130
125131 /* Temporary NFS request map and context caches */
125132 struct kmem_cache *svc_rdma_map_cachep;
125133 @@ -109,7 +109,7 @@ static int read_reset_stat(struct ctl_table *table, int write,
125134 len -= *ppos;
125135 if (len > *lenp)
125136 len = *lenp;
125137 - if (len && copy_to_user(buffer, str_buf, len))
125138 + if (len > sizeof str_buf || (len && copy_to_user(buffer, str_buf, len)))
125139 return -EFAULT;
125140 *lenp = len;
125141 *ppos += len;
125142 @@ -150,63 +150,63 @@ static struct ctl_table svcrdma_parm_table[] = {
125143 {
125144 .procname = "rdma_stat_read",
125145 .data = &rdma_stat_read,
125146 - .maxlen = sizeof(atomic_t),
125147 + .maxlen = sizeof(atomic_unchecked_t),
125148 .mode = 0644,
125149 .proc_handler = read_reset_stat,
125150 },
125151 {
125152 .procname = "rdma_stat_recv",
125153 .data = &rdma_stat_recv,
125154 - .maxlen = sizeof(atomic_t),
125155 + .maxlen = sizeof(atomic_unchecked_t),
125156 .mode = 0644,
125157 .proc_handler = read_reset_stat,
125158 },
125159 {
125160 .procname = "rdma_stat_write",
125161 .data = &rdma_stat_write,
125162 - .maxlen = sizeof(atomic_t),
125163 + .maxlen = sizeof(atomic_unchecked_t),
125164 .mode = 0644,
125165 .proc_handler = read_reset_stat,
125166 },
125167 {
125168 .procname = "rdma_stat_sq_starve",
125169 .data = &rdma_stat_sq_starve,
125170 - .maxlen = sizeof(atomic_t),
125171 + .maxlen = sizeof(atomic_unchecked_t),
125172 .mode = 0644,
125173 .proc_handler = read_reset_stat,
125174 },
125175 {
125176 .procname = "rdma_stat_rq_starve",
125177 .data = &rdma_stat_rq_starve,
125178 - .maxlen = sizeof(atomic_t),
125179 + .maxlen = sizeof(atomic_unchecked_t),
125180 .mode = 0644,
125181 .proc_handler = read_reset_stat,
125182 },
125183 {
125184 .procname = "rdma_stat_rq_poll",
125185 .data = &rdma_stat_rq_poll,
125186 - .maxlen = sizeof(atomic_t),
125187 + .maxlen = sizeof(atomic_unchecked_t),
125188 .mode = 0644,
125189 .proc_handler = read_reset_stat,
125190 },
125191 {
125192 .procname = "rdma_stat_rq_prod",
125193 .data = &rdma_stat_rq_prod,
125194 - .maxlen = sizeof(atomic_t),
125195 + .maxlen = sizeof(atomic_unchecked_t),
125196 .mode = 0644,
125197 .proc_handler = read_reset_stat,
125198 },
125199 {
125200 .procname = "rdma_stat_sq_poll",
125201 .data = &rdma_stat_sq_poll,
125202 - .maxlen = sizeof(atomic_t),
125203 + .maxlen = sizeof(atomic_unchecked_t),
125204 .mode = 0644,
125205 .proc_handler = read_reset_stat,
125206 },
125207 {
125208 .procname = "rdma_stat_sq_prod",
125209 .data = &rdma_stat_sq_prod,
125210 - .maxlen = sizeof(atomic_t),
125211 + .maxlen = sizeof(atomic_unchecked_t),
125212 .mode = 0644,
125213 .proc_handler = read_reset_stat,
125214 },
125215 diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
125216 index 96d886a..35a2137 100644
125217 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
125218 +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
125219 @@ -210,7 +210,7 @@ int rdma_read_chunk_lcl(struct svcxprt_rdma *xprt,
125220 *page_no = pg_no;
125221 *page_offset = pg_off;
125222 ret = read;
125223 - atomic_inc(&rdma_stat_read);
125224 + atomic_inc_unchecked(&rdma_stat_read);
125225 return ret;
125226 err:
125227 svc_rdma_unmap_dma(ctxt);
125228 @@ -347,7 +347,7 @@ int rdma_read_chunk_frmr(struct svcxprt_rdma *xprt,
125229 *page_no = pg_no;
125230 *page_offset = pg_off;
125231 ret = read;
125232 - atomic_inc(&rdma_stat_read);
125233 + atomic_inc_unchecked(&rdma_stat_read);
125234 return ret;
125235 err:
125236 svc_rdma_unmap_dma(ctxt);
125237 @@ -601,7 +601,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
125238 dto_q);
125239 list_del_init(&ctxt->dto_q);
125240 } else {
125241 - atomic_inc(&rdma_stat_rq_starve);
125242 + atomic_inc_unchecked(&rdma_stat_rq_starve);
125243 clear_bit(XPT_DATA, &xprt->xpt_flags);
125244 ctxt = NULL;
125245 }
125246 @@ -619,7 +619,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
125247 }
125248 dprintk("svcrdma: processing ctxt=%p on xprt=%p, rqstp=%p, status=%d\n",
125249 ctxt, rdma_xprt, rqstp, ctxt->wc_status);
125250 - atomic_inc(&rdma_stat_recv);
125251 + atomic_inc_unchecked(&rdma_stat_recv);
125252
125253 /* Build up the XDR from the receive buffers. */
125254 rdma_build_arg_xdr(rqstp, ctxt, ctxt->byte_len);
125255 diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
125256 index 95412ab..29e8f37 100644
125257 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
125258 +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
125259 @@ -218,7 +218,7 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp,
125260 write_wr.wr.rdma.remote_addr = to;
125261
125262 /* Post It */
125263 - atomic_inc(&rdma_stat_write);
125264 + atomic_inc_unchecked(&rdma_stat_write);
125265 if (svc_rdma_send(xprt, &write_wr))
125266 goto err;
125267 return write_len - bc;
125268 diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
125269 index 48f6de9..e89176b 100644
125270 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
125271 +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
125272 @@ -288,7 +288,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
125273 return;
125274
125275 ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP);
125276 - atomic_inc(&rdma_stat_rq_poll);
125277 + atomic_inc_unchecked(&rdma_stat_rq_poll);
125278
125279 while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) {
125280 ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id;
125281 @@ -310,7 +310,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
125282 }
125283
125284 if (ctxt)
125285 - atomic_inc(&rdma_stat_rq_prod);
125286 + atomic_inc_unchecked(&rdma_stat_rq_prod);
125287
125288 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
125289 /*
125290 @@ -389,7 +389,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
125291 return;
125292
125293 ib_req_notify_cq(xprt->sc_sq_cq, IB_CQ_NEXT_COMP);
125294 - atomic_inc(&rdma_stat_sq_poll);
125295 + atomic_inc_unchecked(&rdma_stat_sq_poll);
125296 while ((ret = ib_poll_cq(cq, ARRAY_SIZE(wc_a), wc_a)) > 0) {
125297 int i;
125298
125299 @@ -418,7 +418,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
125300 }
125301
125302 if (ctxt)
125303 - atomic_inc(&rdma_stat_sq_prod);
125304 + atomic_inc_unchecked(&rdma_stat_sq_prod);
125305 }
125306
125307 static void sq_comp_handler(struct ib_cq *cq, void *cq_context)
125308 @@ -1254,7 +1254,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
125309 spin_lock_bh(&xprt->sc_lock);
125310 if (xprt->sc_sq_depth < atomic_read(&xprt->sc_sq_count) + wr_count) {
125311 spin_unlock_bh(&xprt->sc_lock);
125312 - atomic_inc(&rdma_stat_sq_starve);
125313 + atomic_inc_unchecked(&rdma_stat_sq_starve);
125314
125315 /* See if we can opportunistically reap SQ WR to make room */
125316 sq_cq_reap(xprt);
125317 diff --git a/net/sysctl_net.c b/net/sysctl_net.c
125318 index e7000be..e3b0ba7 100644
125319 --- a/net/sysctl_net.c
125320 +++ b/net/sysctl_net.c
125321 @@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_header *head,
125322 kgid_t root_gid = make_kgid(net->user_ns, 0);
125323
125324 /* Allow network administrator to have same access as root. */
125325 - if (ns_capable(net->user_ns, CAP_NET_ADMIN) ||
125326 + if (ns_capable_nolog(net->user_ns, CAP_NET_ADMIN) ||
125327 uid_eq(root_uid, current_euid())) {
125328 int mode = (table->mode >> 6) & 7;
125329 return (mode << 6) | (mode << 3) | mode;
125330 diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
125331 index 53e0fee..ed24ca6 100644
125332 --- a/net/tipc/netlink_compat.c
125333 +++ b/net/tipc/netlink_compat.c
125334 @@ -65,13 +65,13 @@ struct tipc_nl_compat_cmd_dump {
125335 int (*header)(struct tipc_nl_compat_msg *);
125336 int (*dumpit)(struct sk_buff *, struct netlink_callback *);
125337 int (*format)(struct tipc_nl_compat_msg *msg, struct nlattr **attrs);
125338 -};
125339 +} __no_const;
125340
125341 struct tipc_nl_compat_cmd_doit {
125342 int (*doit)(struct sk_buff *skb, struct genl_info *info);
125343 int (*transcode)(struct tipc_nl_compat_cmd_doit *cmd,
125344 struct sk_buff *skb, struct tipc_nl_compat_msg *msg);
125345 -};
125346 +} __no_const;
125347
125348 static int tipc_skb_tailroom(struct sk_buff *skb)
125349 {
125350 @@ -836,7 +836,10 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
125351 void *hdr;
125352 struct nlattr *nest;
125353 struct sk_buff *args;
125354 - struct tipc_nl_compat_cmd_dump dump;
125355 + static struct tipc_nl_compat_cmd_dump dump = {
125356 + .dumpit = tipc_nl_publ_dump,
125357 + .format = __tipc_nl_compat_publ_dump,
125358 + };
125359
125360 args = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
125361 if (!args)
125362 @@ -859,9 +862,6 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
125363 nla_nest_end(args, nest);
125364 genlmsg_end(args, hdr);
125365
125366 - dump.dumpit = tipc_nl_publ_dump;
125367 - dump.format = __tipc_nl_compat_publ_dump;
125368 -
125369 err = __tipc_nl_compat_dumpit(&dump, msg, args);
125370
125371 kfree_skb(args);
125372 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
125373 index 350cca3..a108fc5 100644
125374 --- a/net/tipc/subscr.c
125375 +++ b/net/tipc/subscr.c
125376 @@ -75,7 +75,7 @@ static void tipc_subscrp_send_event(struct tipc_subscription *sub,
125377 struct tipc_subscriber *subscriber = sub->subscriber;
125378 struct kvec msg_sect;
125379
125380 - msg_sect.iov_base = (void *)&sub->evt;
125381 + msg_sect.iov_base = &sub->evt;
125382 msg_sect.iov_len = sizeof(struct tipc_event);
125383 sub->evt.event = htohl(event, sub->swap);
125384 sub->evt.found_lower = htohl(found_lower, sub->swap);
125385 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
125386 index 94f6582..5c2e78b 100644
125387 --- a/net/unix/af_unix.c
125388 +++ b/net/unix/af_unix.c
125389 @@ -420,6 +420,8 @@ static void unix_release_sock(struct sock *sk, int embrion)
125390 skpair = unix_peer(sk);
125391
125392 if (skpair != NULL) {
125393 + if (sk->sk_type != SOCK_STREAM)
125394 + remove_wait_queue(&unix_sk(skpair)->peer_wait, &u->wait);
125395 if (sk->sk_type == SOCK_STREAM || sk->sk_type == SOCK_SEQPACKET) {
125396 unix_state_lock(skpair);
125397 /* No more writes */
125398 @@ -440,6 +442,7 @@ static void unix_release_sock(struct sock *sk, int embrion)
125399 if (state == TCP_LISTEN)
125400 unix_release_sock(skb->sk, 1);
125401 /* passed fds are erased in the kfree_skb hook */
125402 + UNIXCB(skb).consumed = skb->len;
125403 kfree_skb(skb);
125404 }
125405
125406 @@ -636,6 +639,16 @@ static struct proto unix_proto = {
125407 */
125408 static struct lock_class_key af_unix_sk_receive_queue_lock_key;
125409
125410 +static int peer_wake(wait_queue_t *wait, unsigned mode, int sync, void *key)
125411 +{
125412 + struct unix_sock *u;
125413 +
125414 + u = container_of(wait, struct unix_sock, wait);
125415 + wake_up_interruptible_sync_poll(sk_sleep(&u->sk), key);
125416 +
125417 + return 0;
125418 +}
125419 +
125420 static struct sock *unix_create1(struct net *net, struct socket *sock, int kern)
125421 {
125422 struct sock *sk = NULL;
125423 @@ -664,6 +677,7 @@ static struct sock *unix_create1(struct net *net, struct socket *sock, int kern)
125424 INIT_LIST_HEAD(&u->link);
125425 mutex_init(&u->readlock); /* single task reading lock */
125426 init_waitqueue_head(&u->peer_wait);
125427 + init_waitqueue_func_entry(&u->wait, peer_wake);
125428 unix_insert_socket(unix_sockets_unbound(sk), sk);
125429 out:
125430 if (sk == NULL)
125431 @@ -802,6 +816,12 @@ static struct sock *unix_find_other(struct net *net,
125432 err = -ECONNREFUSED;
125433 if (!S_ISSOCK(inode->i_mode))
125434 goto put_fail;
125435 +
125436 + if (!gr_acl_handle_unix(path.dentry, path.mnt)) {
125437 + err = -EACCES;
125438 + goto put_fail;
125439 + }
125440 +
125441 u = unix_find_socket_byinode(inode);
125442 if (!u)
125443 goto put_fail;
125444 @@ -822,6 +842,13 @@ static struct sock *unix_find_other(struct net *net,
125445 if (u) {
125446 struct dentry *dentry;
125447 dentry = unix_sk(u)->path.dentry;
125448 +
125449 + if (!gr_handle_chroot_unix(pid_vnr(u->sk_peer_pid))) {
125450 + err = -EPERM;
125451 + sock_put(u);
125452 + goto fail;
125453 + }
125454 +
125455 if (dentry)
125456 touch_atime(&unix_sk(u)->path);
125457 } else
125458 @@ -855,12 +882,18 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
125459 */
125460 err = security_path_mknod(&path, dentry, mode, 0);
125461 if (!err) {
125462 + if (!gr_acl_handle_mknod(dentry, path.dentry, path.mnt, mode)) {
125463 + err = -EACCES;
125464 + goto out;
125465 + }
125466 err = vfs_mknod(d_inode(path.dentry), dentry, mode, 0);
125467 if (!err) {
125468 res->mnt = mntget(path.mnt);
125469 res->dentry = dget(dentry);
125470 + gr_handle_create(dentry, path.mnt);
125471 }
125472 }
125473 +out:
125474 done_path_create(&path, dentry);
125475 return err;
125476 }
125477 @@ -1030,7 +1063,10 @@ restart:
125478 */
125479 if (unix_peer(sk)) {
125480 struct sock *old_peer = unix_peer(sk);
125481 +
125482 + remove_wait_queue(&unix_sk(old_peer)->peer_wait, &unix_sk(sk)->wait);
125483 unix_peer(sk) = other;
125484 + add_wait_queue(&unix_sk(other)->peer_wait, &unix_sk(sk)->wait);
125485 unix_state_double_unlock(sk, other);
125486
125487 if (other != old_peer)
125488 @@ -1038,8 +1074,12 @@ restart:
125489 sock_put(old_peer);
125490 } else {
125491 unix_peer(sk) = other;
125492 + add_wait_queue(&unix_sk(other)->peer_wait, &unix_sk(sk)->wait);
125493 unix_state_double_unlock(sk, other);
125494 }
125495 + /* New remote may have created write space for us */
125496 + wake_up_interruptible_sync_poll(sk_sleep(sk),
125497 + POLLOUT | POLLWRNORM | POLLWRBAND);
125498 return 0;
125499
125500 out_unlock:
125501 @@ -1194,6 +1234,8 @@ restart:
125502
125503 sock_hold(sk);
125504 unix_peer(newsk) = sk;
125505 + if (sk->sk_type == SOCK_SEQPACKET)
125506 + add_wait_queue(&unix_sk(sk)->peer_wait, &unix_sk(newsk)->wait);
125507 newsk->sk_state = TCP_ESTABLISHED;
125508 newsk->sk_type = sk->sk_type;
125509 init_peercred(newsk);
125510 @@ -1220,6 +1262,8 @@ restart:
125511
125512 smp_mb__after_atomic(); /* sock_hold() does an atomic_inc() */
125513 unix_peer(sk) = newsk;
125514 + if (sk->sk_type == SOCK_SEQPACKET)
125515 + add_wait_queue(&unix_sk(newsk)->peer_wait, &unix_sk(sk)->wait);
125516
125517 unix_state_unlock(sk);
125518
125519 @@ -1254,6 +1298,10 @@ static int unix_socketpair(struct socket *socka, struct socket *sockb)
125520 sock_hold(skb);
125521 unix_peer(ska) = skb;
125522 unix_peer(skb) = ska;
125523 + if (ska->sk_type != SOCK_STREAM) {
125524 + add_wait_queue(&unix_sk(ska)->peer_wait, &unix_sk(skb)->wait);
125525 + add_wait_queue(&unix_sk(skb)->peer_wait, &unix_sk(ska)->wait);
125526 + }
125527 init_peercred(ska);
125528 init_peercred(skb);
125529
125530 @@ -1432,6 +1480,14 @@ static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool sen
125531 return err;
125532 }
125533
125534 +static bool unix_passcred_enabled(const struct socket *sock,
125535 + const struct sock *other)
125536 +{
125537 + return test_bit(SOCK_PASSCRED, &sock->flags) ||
125538 + !other->sk_socket ||
125539 + test_bit(SOCK_PASSCRED, &other->sk_socket->flags);
125540 +}
125541 +
125542 /*
125543 * Some apps rely on write() giving SCM_CREDENTIALS
125544 * We include credentials if source or destination socket
125545 @@ -1442,14 +1498,41 @@ static void maybe_add_creds(struct sk_buff *skb, const struct socket *sock,
125546 {
125547 if (UNIXCB(skb).pid)
125548 return;
125549 - if (test_bit(SOCK_PASSCRED, &sock->flags) ||
125550 - !other->sk_socket ||
125551 - test_bit(SOCK_PASSCRED, &other->sk_socket->flags)) {
125552 + if (unix_passcred_enabled(sock, other)) {
125553 UNIXCB(skb).pid = get_pid(task_tgid(current));
125554 current_uid_gid(&UNIXCB(skb).uid, &UNIXCB(skb).gid);
125555 }
125556 }
125557
125558 +static int maybe_init_creds(struct scm_cookie *scm,
125559 + struct socket *socket,
125560 + const struct sock *other)
125561 +{
125562 + int err;
125563 + struct msghdr msg = { .msg_controllen = 0 };
125564 +
125565 + err = scm_send(socket, &msg, scm, false);
125566 + if (err)
125567 + return err;
125568 +
125569 + if (unix_passcred_enabled(socket, other)) {
125570 + scm->pid = get_pid(task_tgid(current));
125571 + current_uid_gid(&scm->creds.uid, &scm->creds.gid);
125572 + }
125573 + return err;
125574 +}
125575 +
125576 +static bool unix_skb_scm_eq(struct sk_buff *skb,
125577 + struct scm_cookie *scm)
125578 +{
125579 + const struct unix_skb_parms *u = &UNIXCB(skb);
125580 +
125581 + return u->pid == scm->pid &&
125582 + uid_eq(u->uid, scm->creds.uid) &&
125583 + gid_eq(u->gid, scm->creds.gid) &&
125584 + unix_secdata_eq(scm, skb);
125585 +}
125586 +
125587 /*
125588 * Send AF_UNIX data.
125589 */
125590 @@ -1565,6 +1648,7 @@ restart:
125591 unix_state_lock(sk);
125592 if (unix_peer(sk) == other) {
125593 unix_peer(sk) = NULL;
125594 + remove_wait_queue(&unix_sk(other)->peer_wait, &u->wait);
125595 unix_state_unlock(sk);
125596
125597 unix_dgram_disconnected(sk, other);
125598 @@ -1739,8 +1823,10 @@ out_err:
125599 static ssize_t unix_stream_sendpage(struct socket *socket, struct page *page,
125600 int offset, size_t size, int flags)
125601 {
125602 - int err = 0;
125603 - bool send_sigpipe = true;
125604 + int err;
125605 + bool send_sigpipe = false;
125606 + bool init_scm = true;
125607 + struct scm_cookie scm;
125608 struct sock *other, *sk = socket->sk;
125609 struct sk_buff *skb, *newskb = NULL, *tail = NULL;
125610
125611 @@ -1758,7 +1844,7 @@ alloc_skb:
125612 newskb = sock_alloc_send_pskb(sk, 0, 0, flags & MSG_DONTWAIT,
125613 &err, 0);
125614 if (!newskb)
125615 - return err;
125616 + goto err;
125617 }
125618
125619 /* we must acquire readlock as we modify already present
125620 @@ -1767,12 +1853,12 @@ alloc_skb:
125621 err = mutex_lock_interruptible(&unix_sk(other)->readlock);
125622 if (err) {
125623 err = flags & MSG_DONTWAIT ? -EAGAIN : -ERESTARTSYS;
125624 - send_sigpipe = false;
125625 goto err;
125626 }
125627
125628 if (sk->sk_shutdown & SEND_SHUTDOWN) {
125629 err = -EPIPE;
125630 + send_sigpipe = true;
125631 goto err_unlock;
125632 }
125633
125634 @@ -1781,23 +1867,34 @@ alloc_skb:
125635 if (sock_flag(other, SOCK_DEAD) ||
125636 other->sk_shutdown & RCV_SHUTDOWN) {
125637 err = -EPIPE;
125638 + send_sigpipe = true;
125639 goto err_state_unlock;
125640 }
125641
125642 + if (init_scm) {
125643 + err = maybe_init_creds(&scm, socket, other);
125644 + if (err)
125645 + goto err_state_unlock;
125646 + init_scm = false;
125647 + }
125648 +
125649 skb = skb_peek_tail(&other->sk_receive_queue);
125650 if (tail && tail == skb) {
125651 skb = newskb;
125652 - } else if (!skb) {
125653 - if (newskb)
125654 + } else if (!skb || !unix_skb_scm_eq(skb, &scm)) {
125655 + if (newskb) {
125656 skb = newskb;
125657 - else
125658 + } else {
125659 + tail = skb;
125660 goto alloc_skb;
125661 + }
125662 } else if (newskb) {
125663 /* this is fast path, we don't necessarily need to
125664 * call to kfree_skb even though with newskb == NULL
125665 * this - does no harm
125666 */
125667 consume_skb(newskb);
125668 + newskb = NULL;
125669 }
125670
125671 if (skb_append_pagefrags(skb, page, offset, size)) {
125672 @@ -1810,14 +1907,20 @@ alloc_skb:
125673 skb->truesize += size;
125674 atomic_add(size, &sk->sk_wmem_alloc);
125675
125676 - if (newskb)
125677 + if (newskb) {
125678 + err = unix_scm_to_skb(&scm, skb, false);
125679 + if (err)
125680 + goto err_state_unlock;
125681 + spin_lock(&other->sk_receive_queue.lock);
125682 __skb_queue_tail(&other->sk_receive_queue, newskb);
125683 + spin_unlock(&other->sk_receive_queue.lock);
125684 + }
125685
125686 unix_state_unlock(other);
125687 mutex_unlock(&unix_sk(other)->readlock);
125688
125689 other->sk_data_ready(other);
125690 -
125691 + scm_destroy(&scm);
125692 return size;
125693
125694 err_state_unlock:
125695 @@ -1828,6 +1931,8 @@ err:
125696 kfree_skb(newskb);
125697 if (send_sigpipe && !(flags & MSG_NOSIGNAL))
125698 send_sig(SIGPIPE, current, 0);
125699 + if (!init_scm)
125700 + scm_destroy(&scm);
125701 return err;
125702 }
125703
125704 @@ -2071,6 +2176,7 @@ static int unix_stream_read_generic(struct unix_stream_read_state *state)
125705
125706 do {
125707 int chunk;
125708 + bool drop_skb;
125709 struct sk_buff *skb, *last;
125710
125711 unix_state_lock(sk);
125712 @@ -2130,10 +2236,7 @@ unlock:
125713
125714 if (check_creds) {
125715 /* Never glue messages from different writers */
125716 - if ((UNIXCB(skb).pid != scm.pid) ||
125717 - !uid_eq(UNIXCB(skb).uid, scm.creds.uid) ||
125718 - !gid_eq(UNIXCB(skb).gid, scm.creds.gid) ||
125719 - !unix_secdata_eq(&scm, skb))
125720 + if (!unix_skb_scm_eq(skb, &scm))
125721 break;
125722 } else if (test_bit(SOCK_PASSCRED, &sock->flags)) {
125723 /* Copy credentials */
125724 @@ -2151,7 +2254,11 @@ unlock:
125725 }
125726
125727 chunk = min_t(unsigned int, unix_skb_len(skb) - skip, size);
125728 + skb_get(skb);
125729 chunk = state->recv_actor(skb, skip, chunk, state);
125730 + drop_skb = !unix_skb_len(skb);
125731 + /* skb is only safe to use if !drop_skb */
125732 + consume_skb(skb);
125733 if (chunk < 0) {
125734 if (copied == 0)
125735 copied = -EFAULT;
125736 @@ -2160,6 +2267,18 @@ unlock:
125737 copied += chunk;
125738 size -= chunk;
125739
125740 + if (drop_skb) {
125741 + /* the skb was touched by a concurrent reader;
125742 + * we should not expect anything from this skb
125743 + * anymore and assume it invalid - we can be
125744 + * sure it was dropped from the socket queue
125745 + *
125746 + * let's report a short read
125747 + */
125748 + err = 0;
125749 + break;
125750 + }
125751 +
125752 /* Mark read part of skb as used */
125753 if (!(flags & MSG_PEEK)) {
125754 UNIXCB(skb).consumed += chunk;
125755 @@ -2456,7 +2575,6 @@ static unsigned int unix_dgram_poll(struct file *file, struct socket *sock,
125756 other = unix_peer_get(sk);
125757 if (other) {
125758 if (unix_peer(other) != sk) {
125759 - sock_poll_wait(file, &unix_sk(other)->peer_wait, wait);
125760 if (unix_recvq_full(other))
125761 writable = 0;
125762 }
125763 @@ -2556,9 +2674,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
125764 seq_puts(seq, "Num RefCount Protocol Flags Type St "
125765 "Inode Path\n");
125766 else {
125767 - struct sock *s = v;
125768 + struct sock *s = v, *peer;
125769 struct unix_sock *u = unix_sk(s);
125770 unix_state_lock(s);
125771 + peer = unix_peer(s);
125772 + unix_state_unlock(s);
125773 +
125774 + unix_state_double_lock(s, peer);
125775
125776 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
125777 s,
125778 @@ -2583,10 +2705,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
125779 seq_putc(seq, '@');
125780 i++;
125781 }
125782 - for ( ; i < len; i++)
125783 - seq_putc(seq, u->addr->name->sun_path[i]);
125784 - }
125785 - unix_state_unlock(s);
125786 + for ( ; i < len; i++) {
125787 + char c = u->addr->name->sun_path[i];
125788 + switch (c) {
125789 + case '\n':
125790 + seq_putc(seq, '\\');
125791 + seq_putc(seq, 'n');
125792 + break;
125793 + case '\t':
125794 + seq_putc(seq, '\\');
125795 + seq_putc(seq, 't');
125796 + break;
125797 + case '\\':
125798 + seq_putc(seq, '\\');
125799 + seq_putc(seq, '\\');
125800 + break;
125801 + default:
125802 + seq_putc(seq, c);
125803 + }
125804 + }
125805 + } else if (peer)
125806 + seq_printf(seq, " P%lu", sock_i_ino(peer));
125807 +
125808 + unix_state_double_unlock(s, peer);
125809 seq_putc(seq, '\n');
125810 }
125811
125812 diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c
125813 index b3d5150..ff3a837 100644
125814 --- a/net/unix/sysctl_net_unix.c
125815 +++ b/net/unix/sysctl_net_unix.c
125816 @@ -28,7 +28,7 @@ static struct ctl_table unix_table[] = {
125817
125818 int __net_init unix_sysctl_register(struct net *net)
125819 {
125820 - struct ctl_table *table;
125821 + ctl_table_no_const *table;
125822
125823 table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
125824 if (table == NULL)
125825 diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
125826 index 9b7f207..2596621 100644
125827 --- a/net/vmw_vsock/vmci_transport_notify.c
125828 +++ b/net/vmw_vsock/vmci_transport_notify.c
125829 @@ -662,19 +662,19 @@ static void vmci_transport_notify_pkt_process_negotiate(struct sock *sk)
125830
125831 /* Socket control packet based operations. */
125832 struct vmci_transport_notify_ops vmci_transport_notify_pkt_ops = {
125833 - vmci_transport_notify_pkt_socket_init,
125834 - vmci_transport_notify_pkt_socket_destruct,
125835 - vmci_transport_notify_pkt_poll_in,
125836 - vmci_transport_notify_pkt_poll_out,
125837 - vmci_transport_notify_pkt_handle_pkt,
125838 - vmci_transport_notify_pkt_recv_init,
125839 - vmci_transport_notify_pkt_recv_pre_block,
125840 - vmci_transport_notify_pkt_recv_pre_dequeue,
125841 - vmci_transport_notify_pkt_recv_post_dequeue,
125842 - vmci_transport_notify_pkt_send_init,
125843 - vmci_transport_notify_pkt_send_pre_block,
125844 - vmci_transport_notify_pkt_send_pre_enqueue,
125845 - vmci_transport_notify_pkt_send_post_enqueue,
125846 - vmci_transport_notify_pkt_process_request,
125847 - vmci_transport_notify_pkt_process_negotiate,
125848 + .socket_init = vmci_transport_notify_pkt_socket_init,
125849 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
125850 + .poll_in = vmci_transport_notify_pkt_poll_in,
125851 + .poll_out = vmci_transport_notify_pkt_poll_out,
125852 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
125853 + .recv_init = vmci_transport_notify_pkt_recv_init,
125854 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
125855 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
125856 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
125857 + .send_init = vmci_transport_notify_pkt_send_init,
125858 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
125859 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
125860 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
125861 + .process_request = vmci_transport_notify_pkt_process_request,
125862 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
125863 };
125864 diff --git a/net/vmw_vsock/vmci_transport_notify_qstate.c b/net/vmw_vsock/vmci_transport_notify_qstate.c
125865 index dc9c792..3089de0 100644
125866 --- a/net/vmw_vsock/vmci_transport_notify_qstate.c
125867 +++ b/net/vmw_vsock/vmci_transport_notify_qstate.c
125868 @@ -420,19 +420,19 @@ vmci_transport_notify_pkt_send_pre_enqueue(
125869
125870 /* Socket always on control packet based operations. */
125871 struct vmci_transport_notify_ops vmci_transport_notify_pkt_q_state_ops = {
125872 - vmci_transport_notify_pkt_socket_init,
125873 - vmci_transport_notify_pkt_socket_destruct,
125874 - vmci_transport_notify_pkt_poll_in,
125875 - vmci_transport_notify_pkt_poll_out,
125876 - vmci_transport_notify_pkt_handle_pkt,
125877 - vmci_transport_notify_pkt_recv_init,
125878 - vmci_transport_notify_pkt_recv_pre_block,
125879 - vmci_transport_notify_pkt_recv_pre_dequeue,
125880 - vmci_transport_notify_pkt_recv_post_dequeue,
125881 - vmci_transport_notify_pkt_send_init,
125882 - vmci_transport_notify_pkt_send_pre_block,
125883 - vmci_transport_notify_pkt_send_pre_enqueue,
125884 - vmci_transport_notify_pkt_send_post_enqueue,
125885 - vmci_transport_notify_pkt_process_request,
125886 - vmci_transport_notify_pkt_process_negotiate,
125887 + .socket_init = vmci_transport_notify_pkt_socket_init,
125888 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
125889 + .poll_in = vmci_transport_notify_pkt_poll_in,
125890 + .poll_out = vmci_transport_notify_pkt_poll_out,
125891 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
125892 + .recv_init = vmci_transport_notify_pkt_recv_init,
125893 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
125894 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
125895 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
125896 + .send_init = vmci_transport_notify_pkt_send_init,
125897 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
125898 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
125899 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
125900 + .process_request = vmci_transport_notify_pkt_process_request,
125901 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
125902 };
125903 diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
125904 index c8717c1..08539f5 100644
125905 --- a/net/wireless/wext-core.c
125906 +++ b/net/wireless/wext-core.c
125907 @@ -748,8 +748,7 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
125908 */
125909
125910 /* Support for very large requests */
125911 - if ((descr->flags & IW_DESCR_FLAG_NOMAX) &&
125912 - (user_length > descr->max_tokens)) {
125913 + if (user_length > descr->max_tokens) {
125914 /* Allow userspace to GET more than max so
125915 * we can support any size GET requests.
125916 * There is still a limit : -ENOMEM.
125917 @@ -788,22 +787,6 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
125918 }
125919 }
125920
125921 - if (IW_IS_GET(cmd) && !(descr->flags & IW_DESCR_FLAG_NOMAX)) {
125922 - /*
125923 - * If this is a GET, but not NOMAX, it means that the extra
125924 - * data is not bounded by userspace, but by max_tokens. Thus
125925 - * set the length to max_tokens. This matches the extra data
125926 - * allocation.
125927 - * The driver should fill it with the number of tokens it
125928 - * provided, and it may check iwp->length rather than having
125929 - * knowledge of max_tokens. If the driver doesn't change the
125930 - * iwp->length, this ioctl just copies back max_token tokens
125931 - * filled with zeroes. Hopefully the driver isn't claiming
125932 - * them to be valid data.
125933 - */
125934 - iwp->length = descr->max_tokens;
125935 - }
125936 -
125937 err = handler(dev, info, (union iwreq_data *) iwp, extra);
125938
125939 iwp->length += essid_compat;
125940 diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
125941 index 4323952..a06dfe1 100644
125942 --- a/net/x25/sysctl_net_x25.c
125943 +++ b/net/x25/sysctl_net_x25.c
125944 @@ -70,7 +70,7 @@ static struct ctl_table x25_table[] = {
125945 .mode = 0644,
125946 .proc_handler = proc_dointvec,
125947 },
125948 - { 0, },
125949 + { },
125950 };
125951
125952 void __init x25_register_sysctl(void)
125953 diff --git a/net/x25/x25_proc.c b/net/x25/x25_proc.c
125954 index 0917f04..f4e3d8c 100644
125955 --- a/net/x25/x25_proc.c
125956 +++ b/net/x25/x25_proc.c
125957 @@ -209,7 +209,7 @@ static const struct file_operations x25_seq_forward_fops = {
125958
125959 int __init x25_proc_init(void)
125960 {
125961 - if (!proc_mkdir("x25", init_net.proc_net))
125962 + if (!proc_mkdir_restrict("x25", init_net.proc_net))
125963 return -ENOMEM;
125964
125965 if (!proc_create("x25/route", S_IRUGO, init_net.proc_net,
125966 diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
125967 index 18cead7..1cf90dc 100644
125968 --- a/net/xfrm/xfrm_policy.c
125969 +++ b/net/xfrm/xfrm_policy.c
125970 @@ -323,7 +323,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
125971 {
125972 policy->walk.dead = 1;
125973
125974 - atomic_inc(&policy->genid);
125975 + atomic_inc_unchecked(&policy->genid);
125976
125977 if (del_timer(&policy->polq.hold_timer))
125978 xfrm_pol_put(policy);
125979 @@ -773,7 +773,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
125980 else
125981 hlist_add_head(&policy->bydst, chain);
125982 __xfrm_policy_link(policy, dir);
125983 - atomic_inc(&net->xfrm.flow_cache_genid);
125984 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
125985
125986 /* After previous checking, family can either be AF_INET or AF_INET6 */
125987 if (policy->family == AF_INET)
125988 @@ -1874,7 +1874,7 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols,
125989
125990 xdst->num_pols = num_pols;
125991 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy *) * num_pols);
125992 - xdst->policy_genid = atomic_read(&pols[0]->genid);
125993 + xdst->policy_genid = atomic_read_unchecked(&pols[0]->genid);
125994
125995 return xdst;
125996 }
125997 @@ -2687,10 +2687,11 @@ void xfrm_garbage_collect(struct net *net)
125998 }
125999 EXPORT_SYMBOL(xfrm_garbage_collect);
126000
126001 -static void xfrm_garbage_collect_deferred(struct net *net)
126002 +void xfrm_garbage_collect_deferred(struct net *net)
126003 {
126004 flow_cache_flush_deferred(net);
126005 }
126006 +EXPORT_SYMBOL(xfrm_garbage_collect_deferred);
126007
126008 static void xfrm_init_pmtu(struct dst_entry *dst)
126009 {
126010 @@ -2740,7 +2741,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
126011 if (xdst->xfrm_genid != dst->xfrm->genid)
126012 return 0;
126013 if (xdst->num_pols > 0 &&
126014 - xdst->policy_genid != atomic_read(&xdst->pols[0]->genid))
126015 + xdst->policy_genid != atomic_read_unchecked(&xdst->pols[0]->genid))
126016 return 0;
126017
126018 mtu = dst_mtu(dst->child);
126019 @@ -2828,8 +2829,6 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
126020 dst_ops->link_failure = xfrm_link_failure;
126021 if (likely(dst_ops->neigh_lookup == NULL))
126022 dst_ops->neigh_lookup = xfrm_neigh_lookup;
126023 - if (likely(afinfo->garbage_collect == NULL))
126024 - afinfo->garbage_collect = xfrm_garbage_collect_deferred;
126025 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo);
126026 }
126027 spin_unlock(&xfrm_policy_afinfo_lock);
126028 @@ -2883,7 +2882,6 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
126029 dst_ops->check = NULL;
126030 dst_ops->negative_advice = NULL;
126031 dst_ops->link_failure = NULL;
126032 - afinfo->garbage_collect = NULL;
126033 }
126034 return err;
126035 }
126036 @@ -3281,7 +3279,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
126037 sizeof(pol->xfrm_vec[i].saddr));
126038 pol->xfrm_vec[i].encap_family = mp->new_family;
126039 /* flush bundles */
126040 - atomic_inc(&pol->genid);
126041 + atomic_inc_unchecked(&pol->genid);
126042 }
126043 }
126044
126045 diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
126046 index 9895a8c..e1f3bfb 100644
126047 --- a/net/xfrm/xfrm_state.c
126048 +++ b/net/xfrm/xfrm_state.c
126049 @@ -166,12 +166,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
126050
126051 if (unlikely(afinfo == NULL))
126052 return -EAFNOSUPPORT;
126053 - typemap = afinfo->type_map;
126054 + typemap = (const struct xfrm_type **)afinfo->type_map;
126055 spin_lock_bh(&xfrm_type_lock);
126056
126057 - if (likely(typemap[type->proto] == NULL))
126058 + if (likely(typemap[type->proto] == NULL)) {
126059 + pax_open_kernel();
126060 typemap[type->proto] = type;
126061 - else
126062 + pax_close_kernel();
126063 + } else
126064 err = -EEXIST;
126065 spin_unlock_bh(&xfrm_type_lock);
126066 xfrm_state_put_afinfo(afinfo);
126067 @@ -187,13 +189,16 @@ int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family)
126068
126069 if (unlikely(afinfo == NULL))
126070 return -EAFNOSUPPORT;
126071 - typemap = afinfo->type_map;
126072 + typemap = (const struct xfrm_type **)afinfo->type_map;
126073 spin_lock_bh(&xfrm_type_lock);
126074
126075 if (unlikely(typemap[type->proto] != type))
126076 err = -ENOENT;
126077 - else
126078 + else {
126079 + pax_open_kernel();
126080 typemap[type->proto] = NULL;
126081 + pax_close_kernel();
126082 + }
126083 spin_unlock_bh(&xfrm_type_lock);
126084 xfrm_state_put_afinfo(afinfo);
126085 return err;
126086 @@ -203,7 +208,6 @@ EXPORT_SYMBOL(xfrm_unregister_type);
126087 static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family)
126088 {
126089 struct xfrm_state_afinfo *afinfo;
126090 - const struct xfrm_type **typemap;
126091 const struct xfrm_type *type;
126092 int modload_attempted = 0;
126093
126094 @@ -211,9 +215,8 @@ retry:
126095 afinfo = xfrm_state_get_afinfo(family);
126096 if (unlikely(afinfo == NULL))
126097 return NULL;
126098 - typemap = afinfo->type_map;
126099
126100 - type = typemap[proto];
126101 + type = afinfo->type_map[proto];
126102 if (unlikely(type && !try_module_get(type->owner)))
126103 type = NULL;
126104 if (!type && !modload_attempted) {
126105 @@ -247,7 +250,7 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
126106 return -EAFNOSUPPORT;
126107
126108 err = -EEXIST;
126109 - modemap = afinfo->mode_map;
126110 + modemap = (struct xfrm_mode **)afinfo->mode_map;
126111 spin_lock_bh(&xfrm_mode_lock);
126112 if (modemap[mode->encap])
126113 goto out;
126114 @@ -256,8 +259,10 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
126115 if (!try_module_get(afinfo->owner))
126116 goto out;
126117
126118 - mode->afinfo = afinfo;
126119 + pax_open_kernel();
126120 + *(const void **)&mode->afinfo = afinfo;
126121 modemap[mode->encap] = mode;
126122 + pax_close_kernel();
126123 err = 0;
126124
126125 out:
126126 @@ -281,10 +286,12 @@ int xfrm_unregister_mode(struct xfrm_mode *mode, int family)
126127 return -EAFNOSUPPORT;
126128
126129 err = -ENOENT;
126130 - modemap = afinfo->mode_map;
126131 + modemap = (struct xfrm_mode **)afinfo->mode_map;
126132 spin_lock_bh(&xfrm_mode_lock);
126133 if (likely(modemap[mode->encap] == mode)) {
126134 + pax_open_kernel();
126135 modemap[mode->encap] = NULL;
126136 + pax_close_kernel();
126137 module_put(mode->afinfo->owner);
126138 err = 0;
126139 }
126140 @@ -1505,10 +1512,10 @@ EXPORT_SYMBOL(xfrm_find_acq_byseq);
126141 u32 xfrm_get_acqseq(void)
126142 {
126143 u32 res;
126144 - static atomic_t acqseq;
126145 + static atomic_unchecked_t acqseq;
126146
126147 do {
126148 - res = atomic_inc_return(&acqseq);
126149 + res = atomic_inc_return_unchecked(&acqseq);
126150 } while (!res);
126151
126152 return res;
126153 diff --git a/net/xfrm/xfrm_sysctl.c b/net/xfrm/xfrm_sysctl.c
126154 index 05a6e3d..6716ec9 100644
126155 --- a/net/xfrm/xfrm_sysctl.c
126156 +++ b/net/xfrm/xfrm_sysctl.c
126157 @@ -42,7 +42,7 @@ static struct ctl_table xfrm_table[] = {
126158
126159 int __net_init xfrm_sysctl_init(struct net *net)
126160 {
126161 - struct ctl_table *table;
126162 + ctl_table_no_const *table;
126163
126164 __xfrm_sysctl_init(net);
126165
126166 diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
126167 index d3437b8..6c3becb 100644
126168 --- a/scripts/Kbuild.include
126169 +++ b/scripts/Kbuild.include
126170 @@ -142,7 +142,7 @@ cc-ifversion = $(shell [ $(cc-version) $(1) $(2) ] && echo $(3) || echo $(4))
126171 # cc-ldoption
126172 # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both)
126173 cc-ldoption = $(call try-run,\
126174 - $(CC) $(1) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
126175 + $(CC) $(1) -Wl,-r -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
126176
126177 # ld-option
126178 # Usage: LDFLAGS += $(call ld-option, -X)
126179 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
126180 index 01df30a..b687dbf 100644
126181 --- a/scripts/Makefile.build
126182 +++ b/scripts/Makefile.build
126183 @@ -60,7 +60,7 @@ endif
126184 endif
126185
126186 # Do not include host rules unless needed
126187 -ifneq ($(hostprogs-y)$(hostprogs-m),)
126188 +ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
126189 include scripts/Makefile.host
126190 endif
126191
126192 diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean
126193 index 55c96cb..e4e88ab 100644
126194 --- a/scripts/Makefile.clean
126195 +++ b/scripts/Makefile.clean
126196 @@ -38,7 +38,8 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
126197 __clean-files := $(extra-y) $(extra-m) $(extra-) \
126198 $(always) $(targets) $(clean-files) \
126199 $(host-progs) \
126200 - $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
126201 + $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
126202 + $(hostlibs-y) $(hostlibs-m) $(hostlibs-)
126203
126204 __clean-files := $(filter-out $(no-clean-files), $(__clean-files))
126205
126206 diff --git a/scripts/Makefile.host b/scripts/Makefile.host
126207 index 133edfa..4d180d9 100644
126208 --- a/scripts/Makefile.host
126209 +++ b/scripts/Makefile.host
126210 @@ -20,7 +20,25 @@
126211 # Will compile qconf as a C++ program, and menu as a C program.
126212 # They are linked as C++ code to the executable qconf
126213
126214 +# hostprogs-y := conf
126215 +# conf-objs := conf.o libkconfig.so
126216 +# libkconfig-objs := expr.o type.o
126217 +# Will create a shared library named libkconfig.so that consists of
126218 +# expr.o and type.o (they are both compiled as C code and the object files
126219 +# are made as position independent code).
126220 +# conf.c is compiled as a C program, and conf.o is linked together with
126221 +# libkconfig.so as the executable conf.
126222 +# Note: Shared libraries consisting of C++ files are not supported
126223 +
126224 +# hostcc-option
126225 +# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
126226 +
126227 +hostcc-option = $(call try-run,\
126228 + $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
126229 +
126230 __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
126231 +__hostlibs := $(sort $(hostlibs-y) $(hostlibs-m))
126232 +__hostcxxlibs := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m))
126233
126234 # C code
126235 # Executables compiled from a single .c file
126236 @@ -42,6 +60,19 @@ host-cxxmulti := $(foreach m,$(__hostprogs),$(if $($(m)-cxxobjs),$(m)))
126237 # C++ Object (.o) files compiled from .cc files
126238 host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
126239
126240 +# Shared libaries (only .c supported)
126241 +# Shared libraries (.so) - all .so files referenced in "xxx-objs"
126242 +host-cshlib := $(sort $(filter %.so, $(host-cobjs)))
126243 +host-cshlib += $(sort $(filter %.so, $(__hostlibs)))
126244 +host-cxxshlib := $(sort $(filter %.so, $(__hostcxxlibs)))
126245 +# Remove .so files from "xxx-objs"
126246 +host-cobjs := $(filter-out %.so,$(host-cobjs))
126247 +host-cxxobjs := $(filter-out %.so,$(host-cxxobjs))
126248 +
126249 +# Object (.o) files used by the shared libaries
126250 +host-cshobjs := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs))))
126251 +host-cxxshobjs := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs))))
126252 +
126253 # output directory for programs/.o files
126254 # hostprogs-y := tools/build may have been specified.
126255 # Retrieve also directory of .o files from prog-objs or prog-cxxobjs notation
126256 @@ -56,6 +87,10 @@ host-cmulti := $(addprefix $(obj)/,$(host-cmulti))
126257 host-cobjs := $(addprefix $(obj)/,$(host-cobjs))
126258 host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti))
126259 host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs))
126260 +host-cshlib := $(addprefix $(obj)/,$(host-cshlib))
126261 +host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib))
126262 +host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs))
126263 +host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
126264 host-objdirs := $(addprefix $(obj)/,$(host-objdirs))
126265
126266 obj-dirs += $(host-objdirs)
126267 @@ -124,5 +159,37 @@ quiet_cmd_host-cxxobjs = HOSTCXX $@
126268 $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
126269 $(call if_changed_dep,host-cxxobjs)
126270
126271 +# Compile .c file, create position independent .o file
126272 +# host-cshobjs -> .o
126273 +quiet_cmd_host-cshobjs = HOSTCC -fPIC $@
126274 + cmd_host-cshobjs = $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $<
126275 +$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
126276 + $(call if_changed_dep,host-cshobjs)
126277 +
126278 +# Compile .c file, create position independent .o file
126279 +# host-cxxshobjs -> .o
126280 +quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@
126281 + cmd_host-cxxshobjs = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $<
126282 +$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
126283 + $(call if_changed_dep,host-cxxshobjs)
126284 +
126285 +# Link a shared library, based on position independent .o files
126286 +# *.o -> .so shared library (host-cshlib)
126287 +quiet_cmd_host-cshlib = HOSTLLD -shared $@
126288 + cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
126289 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
126290 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
126291 +$(host-cshlib): $(obj)/%: $(host-cshobjs) FORCE
126292 + $(call if_changed,host-cshlib)
126293 +
126294 +# Link a shared library, based on position independent .o files
126295 +# *.o -> .so shared library (host-cxxshlib)
126296 +quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
126297 + cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
126298 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
126299 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
126300 +$(host-cxxshlib): $(obj)/%: $(host-cxxshobjs) FORCE
126301 + $(call if_changed,host-cxxshlib)
126302 +
126303 targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
126304 - $(host-cxxmulti) $(host-cxxobjs)
126305 + $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
126306 diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
126307 index b304068..462d24e 100644
126308 --- a/scripts/basic/fixdep.c
126309 +++ b/scripts/basic/fixdep.c
126310 @@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz)
126311 /*
126312 * Lookup a value in the configuration string.
126313 */
126314 -static int is_defined_config(const char *name, int len, unsigned int hash)
126315 +static int is_defined_config(const char *name, unsigned int len, unsigned int hash)
126316 {
126317 struct item *aux;
126318
126319 @@ -211,10 +211,10 @@ static void clear_config(void)
126320 /*
126321 * Record the use of a CONFIG_* word.
126322 */
126323 -static void use_config(const char *m, int slen)
126324 +static void use_config(const char *m, unsigned int slen)
126325 {
126326 unsigned int hash = strhash(m, slen);
126327 - int c, i;
126328 + unsigned int c, i;
126329
126330 if (is_defined_config(m, slen, hash))
126331 return;
126332 @@ -235,9 +235,9 @@ static void use_config(const char *m, int slen)
126333
126334 static void parse_config_file(const char *map, size_t len)
126335 {
126336 - const int *end = (const int *) (map + len);
126337 + const unsigned int *end = (const unsigned int *) (map + len);
126338 /* start at +1, so that p can never be < map */
126339 - const int *m = (const int *) map + 1;
126340 + const unsigned int *m = (const unsigned int *) map + 1;
126341 const char *p, *q;
126342
126343 for (; m < end; m++) {
126344 @@ -435,7 +435,7 @@ static void print_deps(void)
126345 static void traps(void)
126346 {
126347 static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
126348 - int *p = (int *)test;
126349 + unsigned int *p = (unsigned int *)test;
126350
126351 if (*p != INT_CONF) {
126352 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianness? %#x\n",
126353 diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
126354 index e81a8c74..a615ad7 100644
126355 --- a/scripts/dtc/checks.c
126356 +++ b/scripts/dtc/checks.c
126357 @@ -277,7 +277,7 @@ NODE_ERROR(duplicate_property_names, NULL);
126358 static void check_node_name_chars(struct check *c, struct node *dt,
126359 struct node *node)
126360 {
126361 - int n = strspn(node->name, c->data);
126362 + size_t n = strspn(node->name, c->data);
126363
126364 if (n < strlen(node->name))
126365 FAIL(c, "Bad character '%c' in node %s",
126366 @@ -297,7 +297,7 @@ NODE_ERROR(node_name_format, NULL, &node_name_chars);
126367 static void check_property_name_chars(struct check *c, struct node *dt,
126368 struct node *node, struct property *prop)
126369 {
126370 - int n = strspn(prop->name, c->data);
126371 + size_t n = strspn(prop->name, c->data);
126372
126373 if (n < strlen(prop->name))
126374 FAIL(c, "Bad character '%c' in property name \"%s\", node %s",
126375 @@ -399,7 +399,7 @@ static void check_explicit_phandles(struct check *c, struct node *root,
126376
126377 phandle = propval_cell(prop);
126378
126379 - if ((phandle == 0) || (phandle == -1)) {
126380 + if ((phandle == 0) || (phandle == ~0U)) {
126381 FAIL(c, "%s has bad value (0x%x) in %s property",
126382 node->fullpath, phandle, prop->name);
126383 return;
126384 @@ -462,7 +462,7 @@ static void fixup_phandle_references(struct check *c, struct node *dt,
126385 cell_t phandle;
126386
126387 for_each_marker_of_type(m, REF_PHANDLE) {
126388 - assert(m->offset + sizeof(cell_t) <= prop->val.len);
126389 + assert(m->offset + (int)sizeof(cell_t) <= prop->val.len);
126390
126391 refnode = get_node_by_ref(dt, m->ref);
126392 if (! refnode) {
126393 @@ -688,7 +688,7 @@ static void enable_warning_error(struct check *c, bool warn, bool error)
126394
126395 static void disable_warning_error(struct check *c, bool warn, bool error)
126396 {
126397 - int i;
126398 + size_t i;
126399
126400 /* Lowering level, also lower it for things this is the prereq
126401 * for */
126402 @@ -709,7 +709,7 @@ static void disable_warning_error(struct check *c, bool warn, bool error)
126403
126404 void parse_checks_option(bool warn, bool error, const char *arg)
126405 {
126406 - int i;
126407 + size_t i;
126408 const char *name = arg;
126409 bool enable = true;
126410
126411 @@ -737,7 +737,7 @@ void parse_checks_option(bool warn, bool error, const char *arg)
126412 void process_checks(bool force, struct boot_info *bi)
126413 {
126414 struct node *dt = bi->dt;
126415 - int i;
126416 + size_t i;
126417 int error = 0;
126418
126419 for (i = 0; i < ARRAY_SIZE(check_table); i++) {
126420 diff --git a/scripts/dtc/data.c b/scripts/dtc/data.c
126421 index 8cae237..dcdab66 100644
126422 --- a/scripts/dtc/data.c
126423 +++ b/scripts/dtc/data.c
126424 @@ -94,10 +94,10 @@ struct data data_copy_file(FILE *f, size_t maxlen)
126425 {
126426 struct data d = empty_data;
126427
126428 - while (!feof(f) && (d.len < maxlen)) {
126429 + while (!feof(f) && ((size_t)d.len < maxlen)) {
126430 size_t chunksize, ret;
126431
126432 - if (maxlen == -1)
126433 + if (maxlen == ~0UL)
126434 chunksize = 4096;
126435 else
126436 chunksize = maxlen - d.len;
126437 @@ -108,7 +108,7 @@ struct data data_copy_file(FILE *f, size_t maxlen)
126438 if (ferror(f))
126439 die("Error reading file into data: %s", strerror(errno));
126440
126441 - if (d.len + ret < d.len)
126442 + if (d.len + ret < (size_t)d.len)
126443 die("Overflow reading file into data\n");
126444
126445 d.len += ret;
126446 diff --git a/scripts/dtc/flattree.c b/scripts/dtc/flattree.c
126447 index bd99fa2..e04d08d 100644
126448 --- a/scripts/dtc/flattree.c
126449 +++ b/scripts/dtc/flattree.c
126450 @@ -178,7 +178,7 @@ static void asm_emit_data(void *e, struct data d)
126451 for_each_marker_of_type(m, LABEL)
126452 emit_offset_label(f, m->ref, m->offset);
126453
126454 - while ((d.len - off) >= sizeof(uint32_t)) {
126455 + while ((d.len - off) >= (int)sizeof(uint32_t)) {
126456 asm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));
126457 off += sizeof(uint32_t);
126458 }
126459 @@ -369,7 +369,7 @@ static void make_fdt_header(struct fdt_header *fdt,
126460 void dt_to_blob(FILE *f, struct boot_info *bi, int version)
126461 {
126462 struct version_info *vi = NULL;
126463 - int i;
126464 + size_t i;
126465 struct data blob = empty_data;
126466 struct data reservebuf = empty_data;
126467 struct data dtbuf = empty_data;
126468 @@ -463,7 +463,7 @@ static void dump_stringtable_asm(FILE *f, struct data strbuf)
126469 void dt_to_asm(FILE *f, struct boot_info *bi, int version)
126470 {
126471 struct version_info *vi = NULL;
126472 - int i;
126473 + size_t i;
126474 struct data strbuf = empty_data;
126475 struct reserve_info *re;
126476 const char *symprefix = "dt";
126477 @@ -543,7 +543,7 @@ void dt_to_asm(FILE *f, struct boot_info *bi, int version)
126478 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size >> 32));
126479 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size & 0xffffffff));
126480 }
126481 - for (i = 0; i < reservenum; i++) {
126482 + for (i = 0; i < (size_t)reservenum; i++) {
126483 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n");
126484 }
126485
126486 diff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c
126487 index e229b84..7141e8e 100644
126488 --- a/scripts/dtc/livetree.c
126489 +++ b/scripts/dtc/livetree.c
126490 @@ -492,7 +492,7 @@ struct node *get_node_by_phandle(struct node *tree, cell_t phandle)
126491 {
126492 struct node *child, *node;
126493
126494 - assert((phandle != 0) && (phandle != -1));
126495 + assert((phandle != 0) && (phandle != ~0U));
126496
126497 if (tree->phandle == phandle) {
126498 if (tree->deleted)
126499 @@ -523,7 +523,7 @@ cell_t get_node_phandle(struct node *root, struct node *node)
126500 {
126501 static cell_t phandle = 1; /* FIXME: ick, static local */
126502
126503 - if ((node->phandle != 0) && (node->phandle != -1))
126504 + if ((node->phandle != 0) && (node->phandle != ~0U))
126505 return node->phandle;
126506
126507 while (get_node_by_phandle(root, phandle))
126508 diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh
126509 new file mode 100644
126510 index 0000000..eaa4fce
126511 --- /dev/null
126512 +++ b/scripts/gcc-plugin.sh
126513 @@ -0,0 +1,51 @@
126514 +#!/bin/sh
126515 +srctree=$(dirname "$0")
126516 +gccplugins_dir=$($3 -print-file-name=plugin)
126517 +plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
126518 +#include "gcc-common.h"
126519 +#if BUILDING_GCC_VERSION >= 4008 || defined(ENABLE_BUILD_WITH_CXX)
126520 +#warning $2 CXX
126521 +#else
126522 +#warning $1 CC
126523 +#endif
126524 +EOF
126525 +)
126526 +
126527 +if [ $? -ne 0 ]
126528 +then
126529 + exit 1
126530 +fi
126531 +
126532 +case "$plugincc" in
126533 + *"$1 CC"*)
126534 + echo "$1"
126535 + exit 0
126536 + ;;
126537 +
126538 + *"$2 CXX"*)
126539 + # the c++ compiler needs another test, see below
126540 + ;;
126541 +
126542 + *)
126543 + exit 1
126544 + ;;
126545 +esac
126546 +
126547 +# we need a c++ compiler that supports the designated initializer GNU extension
126548 +plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
126549 +#include "gcc-common.h"
126550 +class test {
126551 +public:
126552 + int test;
126553 +} test = {
126554 + .test = 1
126555 +};
126556 +EOF
126557 +)
126558 +
126559 +if [ $? -eq 0 ]
126560 +then
126561 + echo "$2"
126562 + exit 0
126563 +fi
126564 +exit 1
126565 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
126566 index fdebd66..a349e33 100755
126567 --- a/scripts/headers_install.sh
126568 +++ b/scripts/headers_install.sh
126569 @@ -32,6 +32,7 @@ do
126570 FILE="$(basename "$i")"
126571 sed -r \
126572 -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
126573 + -e 's/__intentional_overflow\([- \t,0-9]*\)//g' \
126574 -e 's/__attribute_const__([ \t]|$)/\1/g' \
126575 -e 's@^#include <linux/compiler.h>@@' \
126576 -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
126577 diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
126578 index 8fa81e8..a9ac144 100644
126579 --- a/scripts/kallsyms.c
126580 +++ b/scripts/kallsyms.c
126581 @@ -89,7 +89,7 @@ static inline int is_arm_mapping_symbol(const char *str)
126582 }
126583
126584 static int check_symbol_range(const char *sym, unsigned long long addr,
126585 - struct addr_range *ranges, int entries)
126586 + struct addr_range *ranges, size_t entries)
126587 {
126588 size_t i;
126589 struct addr_range *ar;
126590 @@ -178,7 +178,7 @@ static int read_symbol(FILE *in, struct sym_entry *s)
126591 }
126592
126593 static int symbol_in_range(struct sym_entry *s, struct addr_range *ranges,
126594 - int entries)
126595 + size_t entries)
126596 {
126597 size_t i;
126598 struct addr_range *ar;
126599 diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
126600 index 91ca126..5f7cad6 100644
126601 --- a/scripts/kconfig/lkc.h
126602 +++ b/scripts/kconfig/lkc.h
126603 @@ -108,7 +108,8 @@ void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
126604 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
126605 void menu_add_option(int token, char *arg);
126606 void menu_finalize(struct menu *parent);
126607 -void menu_set_type(int type);
126608 +enum symbol_type;
126609 +void menu_set_type(enum symbol_type type);
126610
126611 /* util.c */
126612 struct file *file_lookup(const char *name);
126613 @@ -123,7 +124,7 @@ struct gstr {
126614 * when max_width is not zero long lines in string s (if any) get
126615 * wrapped not to exceed the max_width value
126616 */
126617 - int max_width;
126618 + size_t max_width;
126619 };
126620 struct gstr str_new(void);
126621 void str_free(struct gstr *gs);
126622 diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
126623 index b05cc3d..72fb2a8 100644
126624 --- a/scripts/kconfig/menu.c
126625 +++ b/scripts/kconfig/menu.c
126626 @@ -109,7 +109,7 @@ void menu_add_dep(struct expr *dep)
126627 current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
126628 }
126629
126630 -void menu_set_type(int type)
126631 +void menu_set_type(enum symbol_type type)
126632 {
126633 struct symbol *sym = current_entry->sym;
126634
126635 diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
126636 index 70c5ee1..3126ab6 100644
126637 --- a/scripts/kconfig/symbol.c
126638 +++ b/scripts/kconfig/symbol.c
126639 @@ -957,7 +957,7 @@ const char *sym_escape_string_value(const char *in)
126640
126641 struct sym_match {
126642 struct symbol *sym;
126643 - off_t so, eo;
126644 + regoff_t so, eo;
126645 };
126646
126647 /* Compare matched symbols as thus:
126648 @@ -979,8 +979,8 @@ static int sym_rel_comp(const void *sym1, const void *sym2)
126649 * exactly; if this is the case, we can't decide which comes first,
126650 * and we fallback to sorting alphabetically.
126651 */
126652 - exact1 = (s1->eo - s1->so) == strlen(s1->sym->name);
126653 - exact2 = (s2->eo - s2->so) == strlen(s2->sym->name);
126654 + exact1 = (s1->eo - s1->so) == (long)strlen(s1->sym->name);
126655 + exact2 = (s2->eo - s2->so) == (long)strlen(s2->sym->name);
126656 if (exact1 && !exact2)
126657 return -1;
126658 if (!exact1 && exact2)
126659 diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
126660 index 1a10d8a..843fdce 100755
126661 --- a/scripts/link-vmlinux.sh
126662 +++ b/scripts/link-vmlinux.sh
126663 @@ -179,7 +179,7 @@ else
126664 fi;
126665
126666 # final build of init/
126667 -${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init
126668 +${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init GCC_PLUGINS_CFLAGS="${GCC_PLUGINS_CFLAGS}" GCC_PLUGINS_AFLAGS="${GCC_PLUGINS_AFLAGS}"
126669
126670 kallsymso=""
126671 kallsyms_vmlinux=""
126672 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
126673 index 5f20882..d914642 100644
126674 --- a/scripts/mod/file2alias.c
126675 +++ b/scripts/mod/file2alias.c
126676 @@ -154,7 +154,7 @@ static void device_id_check(const char *modname, const char *device_id,
126677 unsigned long size, unsigned long id_size,
126678 void *symval)
126679 {
126680 - int i;
126681 + unsigned int i;
126682
126683 if (size % id_size || size < id_size) {
126684 fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
126685 @@ -183,7 +183,7 @@ static void device_id_check(const char *modname, const char *device_id,
126686 /* USB is special because the bcdDevice can be matched against a numeric range */
126687 /* Looks like "usb:vNpNdNdcNdscNdpNicNiscNipNinN" */
126688 static void do_usb_entry(void *symval,
126689 - unsigned int bcdDevice_initial, int bcdDevice_initial_digits,
126690 + unsigned int bcdDevice_initial, unsigned int bcdDevice_initial_digits,
126691 unsigned char range_lo, unsigned char range_hi,
126692 unsigned char max, struct module *mod)
126693 {
126694 @@ -293,7 +293,7 @@ static void do_usb_entry_multi(void *symval, struct module *mod)
126695 {
126696 unsigned int devlo, devhi;
126697 unsigned char chi, clo, max;
126698 - int ndigits;
126699 + unsigned int ndigits;
126700
126701 DEF_FIELD(symval, usb_device_id, match_flags);
126702 DEF_FIELD(symval, usb_device_id, idVendor);
126703 @@ -574,7 +574,7 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
126704 for (i = 0; i < count; i++) {
126705 DEF_FIELD_ADDR(symval + i*id_size, pnp_device_id, id);
126706 char acpi_id[sizeof(*id)];
126707 - int j;
126708 + unsigned int j;
126709
126710 buf_printf(&mod->dev_table_buf,
126711 "MODULE_ALIAS(\"pnp:d%s*\");\n", *id);
126712 @@ -603,7 +603,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
126713
126714 for (j = 0; j < PNP_MAX_DEVICES; j++) {
126715 const char *id = (char *)(*devs)[j].id;
126716 - int i2, j2;
126717 + unsigned int i2, j2;
126718 int dup = 0;
126719
126720 if (!id[0])
126721 @@ -629,7 +629,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
126722 /* add an individual alias for every device entry */
126723 if (!dup) {
126724 char acpi_id[PNP_ID_LEN];
126725 - int k;
126726 + unsigned int k;
126727
126728 buf_printf(&mod->dev_table_buf,
126729 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
126730 @@ -979,7 +979,7 @@ static void dmi_ascii_filter(char *d, const char *s)
126731 static int do_dmi_entry(const char *filename, void *symval,
126732 char *alias)
126733 {
126734 - int i, j;
126735 + unsigned int i, j;
126736 DEF_FIELD_ADDR(symval, dmi_system_id, matches);
126737 sprintf(alias, "dmi*");
126738
126739 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
126740 index 12d3db3..be51548 100644
126741 --- a/scripts/mod/modpost.c
126742 +++ b/scripts/mod/modpost.c
126743 @@ -943,6 +943,7 @@ enum mismatch {
126744 ANY_EXIT_TO_ANY_INIT,
126745 EXPORT_TO_INIT_EXIT,
126746 EXTABLE_TO_NON_TEXT,
126747 + DATA_TO_TEXT
126748 };
126749
126750 /**
126751 @@ -1069,6 +1070,12 @@ static const struct sectioncheck sectioncheck[] = {
126752 .good_tosec = {ALL_TEXT_SECTIONS , NULL},
126753 .mismatch = EXTABLE_TO_NON_TEXT,
126754 .handler = extable_mismatch_handler,
126755 +},
126756 +/* Do not reference code from writable data */
126757 +{
126758 + .fromsec = { DATA_SECTIONS, NULL },
126759 + .bad_tosec = { ALL_TEXT_SECTIONS, NULL },
126760 + .mismatch = DATA_TO_TEXT
126761 }
126762 };
126763
126764 @@ -1218,10 +1225,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
126765 continue;
126766 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
126767 continue;
126768 - if (sym->st_value == addr)
126769 - return sym;
126770 /* Find a symbol nearby - addr are maybe negative */
126771 d = sym->st_value - addr;
126772 + if (d == 0)
126773 + return sym;
126774 if (d < 0)
126775 d = addr - sym->st_value;
126776 if (d < distance) {
126777 @@ -1504,6 +1511,14 @@ static void report_sec_mismatch(const char *modname,
126778 fatal("There's a special handler for this mismatch type, "
126779 "we should never get here.");
126780 break;
126781 + case DATA_TO_TEXT:
126782 +#if 0
126783 + fprintf(stderr,
126784 + "The %s %s:%s references\n"
126785 + "the %s %s:%s%s\n",
126786 + from, fromsec, fromsym, to, tosec, tosym, to_p);
126787 +#endif
126788 + break;
126789 }
126790 fprintf(stderr, "\n");
126791 }
126792 @@ -1893,7 +1908,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
126793 static void check_sec_ref(struct module *mod, const char *modname,
126794 struct elf_info *elf)
126795 {
126796 - int i;
126797 + unsigned int i;
126798 Elf_Shdr *sechdrs = elf->sechdrs;
126799
126800 /* Walk through all sections */
126801 @@ -2024,7 +2039,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
126802 va_end(ap);
126803 }
126804
126805 -void buf_write(struct buffer *buf, const char *s, int len)
126806 +void buf_write(struct buffer *buf, const char *s, unsigned int len)
126807 {
126808 if (buf->size - buf->pos < len) {
126809 buf->size += len + SZ;
126810 @@ -2243,7 +2258,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
126811 if (fstat(fileno(file), &st) < 0)
126812 goto close_write;
126813
126814 - if (st.st_size != b->pos)
126815 + if (st.st_size != (off_t)b->pos)
126816 goto close_write;
126817
126818 tmp = NOFAIL(malloc(b->pos));
126819 diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
126820 index 168b43d..77914bf 100644
126821 --- a/scripts/mod/modpost.h
126822 +++ b/scripts/mod/modpost.h
126823 @@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *expr);
126824
126825 struct buffer {
126826 char *p;
126827 - int pos;
126828 - int size;
126829 + unsigned int pos;
126830 + unsigned int size;
126831 };
126832
126833 void __attribute__((format(printf, 2, 3)))
126834 buf_printf(struct buffer *buf, const char *fmt, ...);
126835
126836 void
126837 -buf_write(struct buffer *buf, const char *s, int len);
126838 +buf_write(struct buffer *buf, const char *s, unsigned int len);
126839
126840 struct module {
126841 struct module *next;
126842 diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
126843 index 944418d..15291e4 100644
126844 --- a/scripts/mod/sumversion.c
126845 +++ b/scripts/mod/sumversion.c
126846 @@ -470,7 +470,7 @@ static void write_version(const char *filename, const char *sum,
126847 goto out;
126848 }
126849
126850 - if (write(fd, sum, strlen(sum)+1) != strlen(sum)+1) {
126851 + if (write(fd, sum, strlen(sum)+1) != (ssize_t)strlen(sum)+1) {
126852 warn("writing sum in %s failed: %s\n",
126853 filename, strerror(errno));
126854 goto out;
126855 diff --git a/scripts/module-common.lds b/scripts/module-common.lds
126856 index 73a2c7d..df11b31 100644
126857 --- a/scripts/module-common.lds
126858 +++ b/scripts/module-common.lds
126859 @@ -6,6 +6,10 @@
126860 SECTIONS {
126861 /DISCARD/ : { *(.discard) }
126862
126863 + .rodata 0: {
126864 + *(.rodata) *(.rodata.*)
126865 + *(.data..read_only)
126866 + }
126867 __ksymtab 0 : { *(SORT(___ksymtab+*)) }
126868 __ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) }
126869 __ksymtab_unused 0 : { *(SORT(___ksymtab_unused+*)) }
126870 diff --git a/scripts/package/Makefile b/scripts/package/Makefile
126871 index 99ca6e7..3a1a1a1 100644
126872 --- a/scripts/package/Makefile
126873 +++ b/scripts/package/Makefile
126874 @@ -46,7 +46,7 @@ rpm-pkg rpm: FORCE
126875 ln -sf $(srctree) $(KERNELPATH)
126876 $(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
126877 $(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --save-scmversion
126878 - tar -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(TAR_CONTENT)
126879 + tar --owner=root --group=root -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(TAR_CONTENT)
126880 rm $(KERNELPATH)
126881 rm -f $(objtree)/.scmversion
126882 $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
126883 diff --git a/scripts/package/builddeb b/scripts/package/builddeb
126884 index 88dbf23..c8c6e81 100755
126885 --- a/scripts/package/builddeb
126886 +++ b/scripts/package/builddeb
126887 @@ -304,6 +304,7 @@ fi
126888 (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
126889 (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
126890 (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
126891 +(cd $objtree; find tools/gcc -name \*.so -o -name gcc-common.h >> "$objtree/debian/hdrobjfiles")
126892 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
126893 mkdir -p "$destdir"
126894 (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
126895 diff --git a/scripts/package/mkspec b/scripts/package/mkspec
126896 index d9ab94b..827332f 100755
126897 --- a/scripts/package/mkspec
126898 +++ b/scripts/package/mkspec
126899 @@ -122,30 +122,41 @@ echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
126900 echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
126901 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\""
126902 echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
126903 -echo 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
126904 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE build"
126905 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE source"
126906 fi
126907
126908 echo ""
126909 echo "%clean"
126910 echo 'rm -rf $RPM_BUILD_ROOT'
126911 echo ""
126912 +echo "%pre"
126913 +echo 'chmod -f 0500 /boot'
126914 +echo 'if [ -d /lib/modules ]; then'
126915 +echo 'chmod -f 0500 /lib/modules'
126916 +echo 'fi'
126917 +echo 'if [ -d /lib32/modules ]; then'
126918 +echo 'chmod -f 0500 /lib32/modules'
126919 +echo 'fi'
126920 +echo 'if [ -d /lib64/modules ]; then'
126921 +echo 'chmod -f 0500 /lib64/modules'
126922 +echo 'fi'
126923 +echo ""
126924 +echo "%post devel"
126925 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/build"
126926 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/source"
126927 +echo ""
126928 echo "%post"
126929 -echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
126930 -echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm"
126931 -echo "cp /boot/System.map-$KERNELRELEASE /boot/System.map-$KERNELRELEASE-rpm"
126932 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
126933 -echo "/sbin/installkernel $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
126934 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
126935 +echo "if [ -x /sbin/dracut ]; then"
126936 +echo '/sbin/new-kernel-pkg --dracut --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
126937 +echo "else"
126938 +echo '/sbin/new-kernel-pkg --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
126939 echo "fi"
126940 echo ""
126941 echo "%files"
126942 -echo '%defattr (-, root, root)'
126943 +echo '%defattr (400, root, root, 500)'
126944 echo "%dir /lib/modules"
126945 -echo "/lib/modules/$KERNELRELEASE"
126946 echo "%exclude /lib/modules/$KERNELRELEASE/build"
126947 echo "%exclude /lib/modules/$KERNELRELEASE/source"
126948 +echo "/lib/modules/$KERNELRELEASE"
126949 echo "/lib/firmware/$KERNELRELEASE"
126950 echo "/boot/*"
126951 echo ""
126952 @@ -155,9 +166,11 @@ echo "/usr/include"
126953 echo ""
126954 if ! $PREBUILT; then
126955 echo "%files devel"
126956 -echo '%defattr (-, root, root)'
126957 +echo '%defattr (400, root, root, 500)'
126958 +echo "%dir /lib/modules/$KERNELRELEASE"
126959 echo "/usr/src/kernels/$KERNELRELEASE"
126960 -echo "/lib/modules/$KERNELRELEASE/build"
126961 -echo "/lib/modules/$KERNELRELEASE/source"
126962 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/recordmcount"
126963 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/basic/fixdep"
126964 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/mod/modpost"
126965 echo ""
126966 fi
126967 diff --git a/scripts/pnmtologo.c b/scripts/pnmtologo.c
126968 index 4718d78..9220d58 100644
126969 --- a/scripts/pnmtologo.c
126970 +++ b/scripts/pnmtologo.c
126971 @@ -244,14 +244,14 @@ static void write_header(void)
126972 fprintf(out, " * Linux logo %s\n", logoname);
126973 fputs(" */\n\n", out);
126974 fputs("#include <linux/linux_logo.h>\n\n", out);
126975 - fprintf(out, "static unsigned char %s_data[] __initdata = {\n",
126976 + fprintf(out, "static unsigned char %s_data[] = {\n",
126977 logoname);
126978 }
126979
126980 static void write_footer(void)
126981 {
126982 fputs("\n};\n\n", out);
126983 - fprintf(out, "const struct linux_logo %s __initconst = {\n", logoname);
126984 + fprintf(out, "const struct linux_logo %s = {\n", logoname);
126985 fprintf(out, "\t.type\t\t= %s,\n", logo_types[logo_type]);
126986 fprintf(out, "\t.width\t\t= %d,\n", logo_width);
126987 fprintf(out, "\t.height\t\t= %d,\n", logo_height);
126988 @@ -381,7 +381,7 @@ static void write_logo_clut224(void)
126989 fputs("\n};\n\n", out);
126990
126991 /* write logo clut */
126992 - fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
126993 + fprintf(out, "static unsigned char %s_clut[] = {\n",
126994 logoname);
126995 write_hex_cnt = 0;
126996 for (i = 0; i < logo_clutsize; i++) {
126997 diff --git a/scripts/sortextable.h b/scripts/sortextable.h
126998 index ba87004..3f4852c 100644
126999 --- a/scripts/sortextable.h
127000 +++ b/scripts/sortextable.h
127001 @@ -108,9 +108,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
127002 const char *secstrtab;
127003 const char *strtab;
127004 char *extab_image;
127005 - int extab_index = 0;
127006 - int i;
127007 - int idx;
127008 + unsigned int extab_index = 0;
127009 + unsigned int i;
127010 + unsigned int idx;
127011 unsigned int num_sections;
127012 unsigned int secindex_strings;
127013
127014 diff --git a/scripts/tags.sh b/scripts/tags.sh
127015 index c0a932d..817c587 100755
127016 --- a/scripts/tags.sh
127017 +++ b/scripts/tags.sh
127018 @@ -26,7 +26,7 @@ else
127019 fi
127020
127021 # ignore userspace tools
127022 -ignore="$ignore ( -path ${tree}tools ) -prune -o"
127023 +ignore="$ignore ( -path \"${tree}tools/[^g]*\" ) -prune -o"
127024
127025 # Find all available archs
127026 find_all_archs()
127027 diff --git a/security/Kconfig b/security/Kconfig
127028 index bf4ec46..6748ce1 100644
127029 --- a/security/Kconfig
127030 +++ b/security/Kconfig
127031 @@ -4,6 +4,980 @@
127032
127033 menu "Security options"
127034
127035 +menu "Grsecurity"
127036 +
127037 + config ARCH_TRACK_EXEC_LIMIT
127038 + bool
127039 +
127040 + config PAX_KERNEXEC_PLUGIN
127041 + bool
127042 +
127043 + config PAX_PER_CPU_PGD
127044 + bool
127045 +
127046 + config TASK_SIZE_MAX_SHIFT
127047 + int
127048 + depends on X86_64
127049 + default 47 if !PAX_PER_CPU_PGD
127050 + default 42 if PAX_PER_CPU_PGD
127051 +
127052 + config PAX_ENABLE_PAE
127053 + bool
127054 + default y if (X86_32 && (MPENTIUM4 || MK8 || MPSC || MCORE2 || MATOM))
127055 +
127056 + config PAX_USERCOPY_SLABS
127057 + bool
127058 +
127059 +config GRKERNSEC
127060 + bool "Grsecurity"
127061 + select CRYPTO
127062 + select CRYPTO_SHA256
127063 + select PROC_FS
127064 + select STOP_MACHINE
127065 + select TTY
127066 + select DEBUG_KERNEL
127067 + select DEBUG_LIST
127068 + select MULTIUSER
127069 + help
127070 + If you say Y here, you will be able to configure many features
127071 + that will enhance the security of your system. It is highly
127072 + recommended that you say Y here and read through the help
127073 + for each option so that you fully understand the features and
127074 + can evaluate their usefulness for your machine.
127075 +
127076 +choice
127077 + prompt "Configuration Method"
127078 + depends on GRKERNSEC
127079 + default GRKERNSEC_CONFIG_CUSTOM
127080 + help
127081 +
127082 +config GRKERNSEC_CONFIG_AUTO
127083 + bool "Automatic"
127084 + help
127085 + If you choose this configuration method, you'll be able to answer a small
127086 + number of simple questions about how you plan to use this kernel.
127087 + The settings of grsecurity and PaX will be automatically configured for
127088 + the highest commonly-used settings within the provided constraints.
127089 +
127090 + If you require additional configuration, custom changes can still be made
127091 + from the "custom configuration" menu.
127092 +
127093 +config GRKERNSEC_CONFIG_CUSTOM
127094 + bool "Custom"
127095 + help
127096 + If you choose this configuration method, you'll be able to configure all
127097 + grsecurity and PaX settings manually. Via this method, no options are
127098 + automatically enabled.
127099 +
127100 + Take note that if menuconfig is exited with this configuration method
127101 + chosen, you will not be able to use the automatic configuration methods
127102 + without starting again with a kernel configuration with no grsecurity
127103 + or PaX options specified inside.
127104 +
127105 +endchoice
127106 +
127107 +choice
127108 + prompt "Usage Type"
127109 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
127110 + default GRKERNSEC_CONFIG_SERVER
127111 + help
127112 +
127113 +config GRKERNSEC_CONFIG_SERVER
127114 + bool "Server"
127115 + help
127116 + Choose this option if you plan to use this kernel on a server.
127117 +
127118 +config GRKERNSEC_CONFIG_DESKTOP
127119 + bool "Desktop"
127120 + help
127121 + Choose this option if you plan to use this kernel on a desktop.
127122 +
127123 +endchoice
127124 +
127125 +choice
127126 + prompt "Virtualization Type"
127127 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO)
127128 + default GRKERNSEC_CONFIG_VIRT_NONE
127129 + help
127130 +
127131 +config GRKERNSEC_CONFIG_VIRT_NONE
127132 + bool "None"
127133 + help
127134 + Choose this option if this kernel will be run on bare metal.
127135 +
127136 +config GRKERNSEC_CONFIG_VIRT_GUEST
127137 + bool "Guest"
127138 + help
127139 + Choose this option if this kernel will be run as a VM guest.
127140 +
127141 +config GRKERNSEC_CONFIG_VIRT_HOST
127142 + bool "Host"
127143 + help
127144 + Choose this option if this kernel will be run as a VM host.
127145 +
127146 +endchoice
127147 +
127148 +choice
127149 + prompt "Virtualization Hardware"
127150 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
127151 + help
127152 +
127153 +config GRKERNSEC_CONFIG_VIRT_EPT
127154 + bool "EPT/RVI Processor Support"
127155 + depends on X86
127156 + help
127157 + Choose this option if your CPU supports the EPT or RVI features of 2nd-gen
127158 + hardware virtualization. This allows for additional kernel hardening protections
127159 + to operate without additional performance impact.
127160 +
127161 + To see if your Intel processor supports EPT, see:
127162 + http://ark.intel.com/Products/VirtualizationTechnology
127163 + (Most Core i3/5/7 support EPT)
127164 +
127165 + To see if your AMD processor supports RVI, see:
127166 + http://support.amd.com/us/kbarticles/Pages/GPU120AMDRVICPUsHyperVWin8.aspx
127167 +
127168 +config GRKERNSEC_CONFIG_VIRT_SOFT
127169 + bool "First-gen/No Hardware Virtualization"
127170 + help
127171 + Choose this option if you use an Atom/Pentium/Core 2 processor that either doesn't
127172 + support hardware virtualization or doesn't support the EPT/RVI extensions.
127173 +
127174 +endchoice
127175 +
127176 +choice
127177 + prompt "Virtualization Software"
127178 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
127179 + help
127180 +
127181 +config GRKERNSEC_CONFIG_VIRT_XEN
127182 + bool "Xen"
127183 + help
127184 + Choose this option if this kernel is running as a Xen guest or host.
127185 +
127186 +config GRKERNSEC_CONFIG_VIRT_VMWARE
127187 + bool "VMWare"
127188 + help
127189 + Choose this option if this kernel is running as a VMWare guest or host.
127190 +
127191 +config GRKERNSEC_CONFIG_VIRT_KVM
127192 + bool "KVM"
127193 + help
127194 + Choose this option if this kernel is running as a KVM guest or host.
127195 +
127196 +config GRKERNSEC_CONFIG_VIRT_VIRTUALBOX
127197 + bool "VirtualBox"
127198 + help
127199 + Choose this option if this kernel is running as a VirtualBox guest or host.
127200 +
127201 +config GRKERNSEC_CONFIG_VIRT_HYPERV
127202 + bool "Hyper-V"
127203 + help
127204 + Choose this option if this kernel is running as a Hyper-V guest.
127205 +
127206 +endchoice
127207 +
127208 +choice
127209 + prompt "Required Priorities"
127210 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
127211 + default GRKERNSEC_CONFIG_PRIORITY_PERF
127212 + help
127213 +
127214 +config GRKERNSEC_CONFIG_PRIORITY_PERF
127215 + bool "Performance"
127216 + help
127217 + Choose this option if performance is of highest priority for this deployment
127218 + of grsecurity. Features like UDEREF on a 64bit kernel, kernel stack clearing,
127219 + clearing of structures intended for userland, and freed memory sanitizing will
127220 + be disabled.
127221 +
127222 +config GRKERNSEC_CONFIG_PRIORITY_SECURITY
127223 + bool "Security"
127224 + help
127225 + Choose this option if security is of highest priority for this deployment of
127226 + grsecurity. UDEREF, kernel stack clearing, clearing of structures intended
127227 + for userland, and freed memory sanitizing will be enabled for this kernel.
127228 + In a worst-case scenario, these features can introduce a 20% performance hit
127229 + (UDEREF on x64 contributing half of this hit).
127230 +
127231 +endchoice
127232 +
127233 +menu "Default Special Groups"
127234 +depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
127235 +
127236 +config GRKERNSEC_PROC_GID
127237 + int "GID exempted from /proc restrictions"
127238 + default 1001
127239 + help
127240 + Setting this GID determines which group will be exempted from
127241 + grsecurity's /proc restrictions, allowing users of the specified
127242 + group to view network statistics and the existence of other users'
127243 + processes on the system. This GID may also be chosen at boot time
127244 + via "grsec_proc_gid=" on the kernel commandline.
127245 +
127246 +config GRKERNSEC_TPE_UNTRUSTED_GID
127247 + int "GID for TPE-untrusted users"
127248 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
127249 + default 1005
127250 + help
127251 + Setting this GID determines which group untrusted users should
127252 + be added to. These users will be placed under grsecurity's Trusted Path
127253 + Execution mechanism, preventing them from executing their own binaries.
127254 + The users will only be able to execute binaries in directories owned and
127255 + writable only by the root user. If the sysctl option is enabled, a sysctl
127256 + option with name "tpe_gid" is created.
127257 +
127258 +config GRKERNSEC_TPE_TRUSTED_GID
127259 + int "GID for TPE-trusted users"
127260 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
127261 + default 1005
127262 + help
127263 + Setting this GID determines what group TPE restrictions will be
127264 + *disabled* for. If the sysctl option is enabled, a sysctl option
127265 + with name "tpe_gid" is created.
127266 +
127267 +config GRKERNSEC_SYMLINKOWN_GID
127268 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
127269 + depends on GRKERNSEC_CONFIG_SERVER
127270 + default 1006
127271 + help
127272 + Setting this GID determines what group kernel-enforced
127273 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
127274 + is enabled, a sysctl option with name "symlinkown_gid" is created.
127275 +
127276 +
127277 +endmenu
127278 +
127279 +menu "Customize Configuration"
127280 +depends on GRKERNSEC
127281 +
127282 +menu "PaX"
127283 +
127284 +config PAX
127285 + bool "Enable various PaX features"
127286 + default y if GRKERNSEC_CONFIG_AUTO
127287 + depends on GRKERNSEC && (ALPHA || ARM || AVR32 || IA64 || MIPS || PARISC || PPC || SPARC || X86)
127288 + help
127289 + This allows you to enable various PaX features. PaX adds
127290 + intrusion prevention mechanisms to the kernel that reduce
127291 + the risks posed by exploitable memory corruption bugs.
127292 +
127293 +menu "PaX Control"
127294 + depends on PAX
127295 +
127296 +config PAX_SOFTMODE
127297 + bool 'Support soft mode'
127298 + help
127299 + Enabling this option will allow you to run PaX in soft mode, that
127300 + is, PaX features will not be enforced by default, only on executables
127301 + marked explicitly. You must also enable PT_PAX_FLAGS or XATTR_PAX_FLAGS
127302 + support as they are the only way to mark executables for soft mode use.
127303 +
127304 + Soft mode can be activated by using the "pax_softmode=1" kernel command
127305 + line option on boot. Furthermore you can control various PaX features
127306 + at runtime via the entries in /proc/sys/kernel/pax.
127307 +
127308 +config PAX_EI_PAX
127309 + bool 'Use legacy ELF header marking'
127310 + default y if GRKERNSEC_CONFIG_AUTO
127311 + help
127312 + Enabling this option will allow you to control PaX features on
127313 + a per executable basis via the 'chpax' utility available at
127314 + http://pax.grsecurity.net/. The control flags will be read from
127315 + an otherwise reserved part of the ELF header. This marking has
127316 + numerous drawbacks (no support for soft-mode, toolchain does not
127317 + know about the non-standard use of the ELF header) therefore it
127318 + has been deprecated in favour of PT_PAX_FLAGS and XATTR_PAX_FLAGS
127319 + support.
127320 +
127321 + Note that if you enable PT_PAX_FLAGS or XATTR_PAX_FLAGS marking
127322 + support as well, they will override the legacy EI_PAX marks.
127323 +
127324 + If you enable none of the marking options then all applications
127325 + will run with PaX enabled on them by default.
127326 +
127327 +config PAX_PT_PAX_FLAGS
127328 + bool 'Use ELF program header marking'
127329 + default y if GRKERNSEC_CONFIG_AUTO
127330 + help
127331 + Enabling this option will allow you to control PaX features on
127332 + a per executable basis via the 'paxctl' utility available at
127333 + http://pax.grsecurity.net/. The control flags will be read from
127334 + a PaX specific ELF program header (PT_PAX_FLAGS). This marking
127335 + has the benefits of supporting both soft mode and being fully
127336 + integrated into the toolchain (the binutils patch is available
127337 + from http://pax.grsecurity.net).
127338 +
127339 + Note that if you enable the legacy EI_PAX marking support as well,
127340 + the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
127341 +
127342 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
127343 + must make sure that the marks are the same if a binary has both marks.
127344 +
127345 + If you enable none of the marking options then all applications
127346 + will run with PaX enabled on them by default.
127347 +
127348 +config PAX_XATTR_PAX_FLAGS
127349 + bool 'Use filesystem extended attributes marking'
127350 + default y if GRKERNSEC_CONFIG_AUTO
127351 + select CIFS_XATTR if CIFS
127352 + select EXT2_FS_XATTR if EXT2_FS
127353 + select EXT3_FS_XATTR if EXT3_FS
127354 + select F2FS_FS_XATTR if F2FS_FS
127355 + select JFFS2_FS_XATTR if JFFS2_FS
127356 + select REISERFS_FS_XATTR if REISERFS_FS
127357 + select SQUASHFS_XATTR if SQUASHFS
127358 + select TMPFS_XATTR if TMPFS
127359 + help
127360 + Enabling this option will allow you to control PaX features on
127361 + a per executable basis via the 'setfattr' utility. The control
127362 + flags will be read from the user.pax.flags extended attribute of
127363 + the file. This marking has the benefit of supporting binary-only
127364 + applications that self-check themselves (e.g., skype) and would
127365 + not tolerate chpax/paxctl changes. The main drawback is that
127366 + extended attributes are not supported by some filesystems (e.g.,
127367 + isofs, udf, vfat) so copying files through such filesystems will
127368 + lose the extended attributes and these PaX markings.
127369 +
127370 + Note that if you enable the legacy EI_PAX marking support as well,
127371 + the EI_PAX marks will be overridden by the XATTR_PAX_FLAGS marks.
127372 +
127373 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
127374 + must make sure that the marks are the same if a binary has both marks.
127375 +
127376 + If you enable none of the marking options then all applications
127377 + will run with PaX enabled on them by default.
127378 +
127379 +choice
127380 + prompt 'MAC system integration'
127381 + default PAX_HAVE_ACL_FLAGS
127382 + help
127383 + Mandatory Access Control systems have the option of controlling
127384 + PaX flags on a per executable basis, choose the method supported
127385 + by your particular system.
127386 +
127387 + - "none": if your MAC system does not interact with PaX,
127388 + - "direct": if your MAC system defines pax_set_initial_flags() itself,
127389 + - "hook": if your MAC system uses the pax_set_initial_flags_func callback.
127390 +
127391 + NOTE: this option is for developers/integrators only.
127392 +
127393 + config PAX_NO_ACL_FLAGS
127394 + bool 'none'
127395 +
127396 + config PAX_HAVE_ACL_FLAGS
127397 + bool 'direct'
127398 +
127399 + config PAX_HOOK_ACL_FLAGS
127400 + bool 'hook'
127401 +endchoice
127402 +
127403 +endmenu
127404 +
127405 +menu "Non-executable pages"
127406 + depends on PAX
127407 +
127408 +config PAX_NOEXEC
127409 + bool "Enforce non-executable pages"
127410 + default y if GRKERNSEC_CONFIG_AUTO
127411 + depends on ALPHA || (ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || IA64 || MIPS || PARISC || PPC || S390 || SPARC || X86
127412 + help
127413 + By design some architectures do not allow for protecting memory
127414 + pages against execution or even if they do, Linux does not make
127415 + use of this feature. In practice this means that if a page is
127416 + readable (such as the stack or heap) it is also executable.
127417 +
127418 + There is a well known exploit technique that makes use of this
127419 + fact and a common programming mistake where an attacker can
127420 + introduce code of his choice somewhere in the attacked program's
127421 + memory (typically the stack or the heap) and then execute it.
127422 +
127423 + If the attacked program was running with different (typically
127424 + higher) privileges than that of the attacker, then he can elevate
127425 + his own privilege level (e.g. get a root shell, write to files for
127426 + which he does not have write access to, etc).
127427 +
127428 + Enabling this option will let you choose from various features
127429 + that prevent the injection and execution of 'foreign' code in
127430 + a program.
127431 +
127432 + This will also break programs that rely on the old behaviour and
127433 + expect that dynamically allocated memory via the malloc() family
127434 + of functions is executable (which it is not). Notable examples
127435 + are the XFree86 4.x server, the java runtime and wine.
127436 +
127437 +config PAX_PAGEEXEC
127438 + bool "Paging based non-executable pages"
127439 + default y if GRKERNSEC_CONFIG_AUTO
127440 + 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)
127441 + select ARCH_TRACK_EXEC_LIMIT if X86_32
127442 + help
127443 + This implementation is based on the paging feature of the CPU.
127444 + On i386 without hardware non-executable bit support there is a
127445 + variable but usually low performance impact, however on Intel's
127446 + P4 core based CPUs it is very high so you should not enable this
127447 + for kernels meant to be used on such CPUs.
127448 +
127449 + On alpha, avr32, ia64, parisc, sparc, sparc64, x86_64 and i386
127450 + with hardware non-executable bit support there is no performance
127451 + impact, on ppc the impact is negligible.
127452 +
127453 + Note that several architectures require various emulations due to
127454 + badly designed userland ABIs, this will cause a performance impact
127455 + but will disappear as soon as userland is fixed. For example, ppc
127456 + userland MUST have been built with secure-plt by a recent toolchain.
127457 +
127458 +config PAX_SEGMEXEC
127459 + bool "Segmentation based non-executable pages"
127460 + default y if GRKERNSEC_CONFIG_AUTO
127461 + depends on PAX_NOEXEC && X86_32
127462 + help
127463 + This implementation is based on the segmentation feature of the
127464 + CPU and has a very small performance impact, however applications
127465 + will be limited to a 1.5 GB address space instead of the normal
127466 + 3 GB.
127467 +
127468 +config PAX_EMUTRAMP
127469 + bool "Emulate trampolines"
127470 + default y if PARISC || GRKERNSEC_CONFIG_AUTO
127471 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC) && (PARISC || X86)
127472 + help
127473 + There are some programs and libraries that for one reason or
127474 + another attempt to execute special small code snippets from
127475 + non-executable memory pages. Most notable examples are the
127476 + signal handler return code generated by the kernel itself and
127477 + the GCC trampolines.
127478 +
127479 + If you enabled CONFIG_PAX_PAGEEXEC or CONFIG_PAX_SEGMEXEC then
127480 + such programs will no longer work under your kernel.
127481 +
127482 + As a remedy you can say Y here and use the 'chpax' or 'paxctl'
127483 + utilities to enable trampoline emulation for the affected programs
127484 + yet still have the protection provided by the non-executable pages.
127485 +
127486 + On parisc you MUST enable this option and EMUSIGRT as well, otherwise
127487 + your system will not even boot.
127488 +
127489 + Alternatively you can say N here and use the 'chpax' or 'paxctl'
127490 + utilities to disable CONFIG_PAX_PAGEEXEC and CONFIG_PAX_SEGMEXEC
127491 + for the affected files.
127492 +
127493 + NOTE: enabling this feature *may* open up a loophole in the
127494 + protection provided by non-executable pages that an attacker
127495 + could abuse. Therefore the best solution is to not have any
127496 + files on your system that would require this option. This can
127497 + be achieved by not using libc5 (which relies on the kernel
127498 + signal handler return code) and not using or rewriting programs
127499 + that make use of the nested function implementation of GCC.
127500 + Skilled users can just fix GCC itself so that it implements
127501 + nested function calls in a way that does not interfere with PaX.
127502 +
127503 +config PAX_EMUSIGRT
127504 + bool "Automatically emulate sigreturn trampolines"
127505 + depends on PAX_EMUTRAMP && PARISC
127506 + default y
127507 + help
127508 + Enabling this option will have the kernel automatically detect
127509 + and emulate signal return trampolines executing on the stack
127510 + that would otherwise lead to task termination.
127511 +
127512 + This solution is intended as a temporary one for users with
127513 + legacy versions of libc (libc5, glibc 2.0, uClibc before 0.9.17,
127514 + Modula-3 runtime, etc) or executables linked to such, basically
127515 + everything that does not specify its own SA_RESTORER function in
127516 + normal executable memory like glibc 2.1+ does.
127517 +
127518 + On parisc you MUST enable this option, otherwise your system will
127519 + not even boot.
127520 +
127521 + NOTE: this feature cannot be disabled on a per executable basis
127522 + and since it *does* open up a loophole in the protection provided
127523 + by non-executable pages, the best solution is to not have any
127524 + files on your system that would require this option.
127525 +
127526 +config PAX_MPROTECT
127527 + bool "Restrict mprotect()"
127528 + default y if GRKERNSEC_CONFIG_AUTO
127529 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC)
127530 + help
127531 + Enabling this option will prevent programs from
127532 + - changing the executable status of memory pages that were
127533 + not originally created as executable,
127534 + - making read-only executable pages writable again,
127535 + - creating executable pages from anonymous memory,
127536 + - making read-only-after-relocations (RELRO) data pages writable again.
127537 +
127538 + You should say Y here to complete the protection provided by
127539 + the enforcement of non-executable pages.
127540 +
127541 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
127542 + this feature on a per file basis.
127543 +
127544 +config PAX_MPROTECT_COMPAT
127545 + bool "Use legacy/compat protection demoting (read help)"
127546 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
127547 + depends on PAX_MPROTECT
127548 + help
127549 + The current implementation of PAX_MPROTECT denies RWX allocations/mprotects
127550 + by sending the proper error code to the application. For some broken
127551 + userland, this can cause problems with Python or other applications. The
127552 + current implementation however allows for applications like clamav to
127553 + detect if JIT compilation/execution is allowed and to fall back gracefully
127554 + to an interpreter-based mode if it does not. While we encourage everyone
127555 + to use the current implementation as-is and push upstream to fix broken
127556 + userland (note that the RWX logging option can assist with this), in some
127557 + environments this may not be possible. Having to disable MPROTECT
127558 + completely on certain binaries reduces the security benefit of PaX,
127559 + so this option is provided for those environments to revert to the old
127560 + behavior.
127561 +
127562 +config PAX_ELFRELOCS
127563 + bool "Allow ELF text relocations (read help)"
127564 + depends on PAX_MPROTECT
127565 + default n
127566 + help
127567 + Non-executable pages and mprotect() restrictions are effective
127568 + in preventing the introduction of new executable code into an
127569 + attacked task's address space. There remain only two venues
127570 + for this kind of attack: if the attacker can execute already
127571 + existing code in the attacked task then he can either have it
127572 + create and mmap() a file containing his code or have it mmap()
127573 + an already existing ELF library that does not have position
127574 + independent code in it and use mprotect() on it to make it
127575 + writable and copy his code there. While protecting against
127576 + the former approach is beyond PaX, the latter can be prevented
127577 + by having only PIC ELF libraries on one's system (which do not
127578 + need to relocate their code). If you are sure this is your case,
127579 + as is the case with all modern Linux distributions, then leave
127580 + this option disabled. You should say 'n' here.
127581 +
127582 +config PAX_ETEXECRELOCS
127583 + bool "Allow ELF ET_EXEC text relocations"
127584 + depends on PAX_MPROTECT && (ALPHA || IA64 || PARISC)
127585 + select PAX_ELFRELOCS
127586 + default y
127587 + help
127588 + On some architectures there are incorrectly created applications
127589 + that require text relocations and would not work without enabling
127590 + this option. If you are an alpha, ia64 or parisc user, you should
127591 + enable this option and disable it once you have made sure that
127592 + none of your applications need it.
127593 +
127594 +config PAX_EMUPLT
127595 + bool "Automatically emulate ELF PLT"
127596 + depends on PAX_MPROTECT && (ALPHA || PARISC || SPARC)
127597 + default y
127598 + help
127599 + Enabling this option will have the kernel automatically detect
127600 + and emulate the Procedure Linkage Table entries in ELF files.
127601 + On some architectures such entries are in writable memory, and
127602 + become non-executable leading to task termination. Therefore
127603 + it is mandatory that you enable this option on alpha, parisc,
127604 + sparc and sparc64, otherwise your system would not even boot.
127605 +
127606 + NOTE: this feature *does* open up a loophole in the protection
127607 + provided by the non-executable pages, therefore the proper
127608 + solution is to modify the toolchain to produce a PLT that does
127609 + not need to be writable.
127610 +
127611 +config PAX_DLRESOLVE
127612 + bool 'Emulate old glibc resolver stub'
127613 + depends on PAX_EMUPLT && SPARC
127614 + default n
127615 + help
127616 + This option is needed if userland has an old glibc (before 2.4)
127617 + that puts a 'save' instruction into the runtime generated resolver
127618 + stub that needs special emulation.
127619 +
127620 +config PAX_KERNEXEC
127621 + bool "Enforce non-executable kernel pages"
127622 + 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))
127623 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !(ARM_LPAE && MODULES))) && !XEN
127624 + select PAX_PER_CPU_PGD if X86_64 || (X86_32 && X86_PAE)
127625 + select PAX_KERNEXEC_PLUGIN if X86_64
127626 + select ARM_KERNMEM_PERMS if ARM
127627 + help
127628 + This is the kernel land equivalent of PAGEEXEC and MPROTECT,
127629 + that is, enabling this option will make it harder to inject
127630 + and execute 'foreign' code in kernel memory itself.
127631 +
127632 + Note that on amd64, CONFIG_EFI enabled with "efi=old_map" on
127633 + the kernel command-line will result in an RWX physical map.
127634 +
127635 + Likewise, the EFI runtime services are necessarily mapped as
127636 + RWX. If CONFIG_EFI is enabled on an EFI-capable system, it
127637 + is recommended that you boot with "noefi" on the kernel
127638 + command-line if possible to eliminate the mapping.
127639 +
127640 +choice
127641 + prompt "Return Address Instrumentation Method"
127642 + default PAX_KERNEXEC_PLUGIN_METHOD_BTS
127643 + depends on PAX_KERNEXEC_PLUGIN
127644 + help
127645 + Select the method used to instrument function pointer dereferences.
127646 + Note that binary modules cannot be instrumented by this approach.
127647 +
127648 + Note that the implementation requires a gcc with plugin support,
127649 + i.e., gcc 4.5 or newer. You may need to install the supporting
127650 + headers explicitly in addition to the normal gcc package.
127651 +
127652 + config PAX_KERNEXEC_PLUGIN_METHOD_BTS
127653 + bool "bts"
127654 + help
127655 + This method is compatible with binary only modules but has
127656 + a higher runtime overhead.
127657 +
127658 + config PAX_KERNEXEC_PLUGIN_METHOD_OR
127659 + bool "or"
127660 + depends on !PARAVIRT
127661 + help
127662 + This method is incompatible with binary only modules but has
127663 + a lower runtime overhead.
127664 +endchoice
127665 +
127666 +config PAX_KERNEXEC_PLUGIN_METHOD
127667 + string
127668 + default "bts" if PAX_KERNEXEC_PLUGIN_METHOD_BTS
127669 + default "or" if PAX_KERNEXEC_PLUGIN_METHOD_OR
127670 + default ""
127671 +
127672 +config PAX_KERNEXEC_MODULE_TEXT
127673 + int "Minimum amount of memory reserved for module code"
127674 + default "8" if (!GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_SERVER)
127675 + default "12" if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
127676 + depends on PAX_KERNEXEC && X86_32
127677 + help
127678 + Due to implementation details the kernel must reserve a fixed
127679 + amount of memory for runtime allocated code (such as modules)
127680 + at compile time that cannot be changed at runtime. Here you
127681 + can specify the minimum amount in MB that will be reserved.
127682 + Due to the same implementation details this size will always
127683 + be rounded up to the next 2/4 MB boundary (depends on PAE) so
127684 + the actually available memory for runtime allocated code will
127685 + usually be more than this minimum.
127686 +
127687 + The default 4 MB should be enough for most users but if you have
127688 + an excessive number of modules (e.g., most distribution configs
127689 + compile many drivers as modules) or use huge modules such as
127690 + nvidia's kernel driver, you will need to adjust this amount.
127691 + A good rule of thumb is to look at your currently loaded kernel
127692 + modules and add up their sizes.
127693 +
127694 +endmenu
127695 +
127696 +menu "Address Space Layout Randomization"
127697 + depends on PAX
127698 +
127699 +config PAX_ASLR
127700 + bool "Address Space Layout Randomization"
127701 + default y if GRKERNSEC_CONFIG_AUTO
127702 + help
127703 + Many if not most exploit techniques rely on the knowledge of
127704 + certain addresses in the attacked program. The following options
127705 + will allow the kernel to apply a certain amount of randomization
127706 + to specific parts of the program thereby forcing an attacker to
127707 + guess them in most cases. Any failed guess will most likely crash
127708 + the attacked program which allows the kernel to detect such attempts
127709 + and react on them. PaX itself provides no reaction mechanisms,
127710 + instead it is strongly encouraged that you make use of grsecurity's
127711 + (http://www.grsecurity.net/) built-in crash detection features or
127712 + develop one yourself.
127713 +
127714 + By saying Y here you can choose to randomize the following areas:
127715 + - top of the task's kernel stack
127716 + - top of the task's userland stack
127717 + - base address for mmap() requests that do not specify one
127718 + (this includes all libraries)
127719 + - base address of the main executable
127720 +
127721 + It is strongly recommended to say Y here as address space layout
127722 + randomization has negligible impact on performance yet it provides
127723 + a very effective protection.
127724 +
127725 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
127726 + this feature on a per file basis.
127727 +
127728 +config PAX_RANDKSTACK
127729 + bool "Randomize kernel stack base"
127730 + default y if GRKERNSEC_CONFIG_AUTO && !(GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_VIRTUALBOX)
127731 + depends on X86_TSC && X86
127732 + help
127733 + By saying Y here the kernel will randomize every task's kernel
127734 + stack on every system call. This will not only force an attacker
127735 + to guess it but also prevent him from making use of possible
127736 + leaked information about it.
127737 +
127738 + Since the kernel stack is a rather scarce resource, randomization
127739 + may cause unexpected stack overflows, therefore you should very
127740 + carefully test your system. Note that once enabled in the kernel
127741 + configuration, this feature cannot be disabled on a per file basis.
127742 +
127743 +config PAX_RANDUSTACK
127744 + bool
127745 +
127746 +config PAX_RANDMMAP
127747 + bool "Randomize user stack and mmap() bases"
127748 + default y if GRKERNSEC_CONFIG_AUTO
127749 + depends on PAX_ASLR
127750 + select PAX_RANDUSTACK
127751 + help
127752 + By saying Y here the kernel will randomize every task's userland
127753 + stack and use a randomized base address for mmap() requests that
127754 + do not specify one themselves.
127755 +
127756 + The stack randomization is done in two steps where the second
127757 + one may apply a big amount of shift to the top of the stack and
127758 + cause problems for programs that want to use lots of memory (more
127759 + than 2.5 GB if SEGMEXEC is not active, or 1.25 GB when it is).
127760 +
127761 + As a result of mmap randomization all dynamically loaded libraries
127762 + will appear at random addresses and therefore be harder to exploit
127763 + by a technique where an attacker attempts to execute library code
127764 + for his purposes (e.g. spawn a shell from an exploited program that
127765 + is running at an elevated privilege level).
127766 +
127767 + Furthermore, if a program is relinked as a dynamic ELF file, its
127768 + base address will be randomized as well, completing the full
127769 + randomization of the address space layout. Attacking such programs
127770 + becomes a guess game. You can find an example of doing this at
127771 + http://pax.grsecurity.net/et_dyn.tar.gz and practical samples at
127772 + http://www.grsecurity.net/grsec-gcc-specs.tar.gz .
127773 +
127774 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control this
127775 + feature on a per file basis.
127776 +
127777 +endmenu
127778 +
127779 +menu "Miscellaneous hardening features"
127780 +
127781 +config PAX_MEMORY_SANITIZE
127782 + bool "Sanitize all freed memory"
127783 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
127784 + help
127785 + By saying Y here the kernel will erase memory pages and slab objects
127786 + as soon as they are freed. This in turn reduces the lifetime of data
127787 + stored in them, making it less likely that sensitive information such
127788 + as passwords, cryptographic secrets, etc stay in memory for too long.
127789 +
127790 + This is especially useful for programs whose runtime is short, long
127791 + lived processes and the kernel itself benefit from this as long as
127792 + they ensure timely freeing of memory that may hold sensitive
127793 + information.
127794 +
127795 + A nice side effect of the sanitization of slab objects is the
127796 + reduction of possible info leaks caused by padding bytes within the
127797 + leaky structures. Use-after-free bugs for structures containing
127798 + pointers can also be detected as dereferencing the sanitized pointer
127799 + will generate an access violation.
127800 +
127801 + The tradeoff is performance impact, on a single CPU system kernel
127802 + compilation sees a 3% slowdown, other systems and workloads may vary
127803 + and you are advised to test this feature on your expected workload
127804 + before deploying it.
127805 +
127806 + The slab sanitization feature excludes a few slab caches per default
127807 + for performance reasons. To extend the feature to cover those as
127808 + well, pass "pax_sanitize_slab=full" as kernel command line parameter.
127809 +
127810 + To reduce the performance penalty by sanitizing pages only, albeit
127811 + limiting the effectiveness of this feature at the same time, slab
127812 + sanitization can be disabled with the kernel command line parameter
127813 + "pax_sanitize_slab=off".
127814 +
127815 + Note that this feature does not protect data stored in live pages,
127816 + e.g., process memory swapped to disk may stay there for a long time.
127817 +
127818 +config PAX_MEMORY_STACKLEAK
127819 + bool "Sanitize kernel stack"
127820 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
127821 + depends on X86
127822 + help
127823 + By saying Y here the kernel will erase the kernel stack before it
127824 + returns from a system call. This in turn reduces the information
127825 + that a kernel stack leak bug can reveal.
127826 +
127827 + Note that such a bug can still leak information that was put on
127828 + the stack by the current system call (the one eventually triggering
127829 + the bug) but traces of earlier system calls on the kernel stack
127830 + cannot leak anymore.
127831 +
127832 + The tradeoff is performance impact: on a single CPU system kernel
127833 + compilation sees a 1% slowdown, other systems and workloads may vary
127834 + and you are advised to test this feature on your expected workload
127835 + before deploying it.
127836 +
127837 + Note that the full feature requires a gcc with plugin support,
127838 + i.e., gcc 4.5 or newer. You may need to install the supporting
127839 + headers explicitly in addition to the normal gcc package. Using
127840 + older gcc versions means that functions with large enough stack
127841 + frames may leave uninitialized memory behind that may be exposed
127842 + to a later syscall leaking the stack.
127843 +
127844 +config PAX_MEMORY_STRUCTLEAK
127845 + bool "Forcibly initialize local variables copied to userland"
127846 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
127847 + help
127848 + By saying Y here the kernel will zero initialize some local
127849 + variables that are going to be copied to userland. This in
127850 + turn prevents unintended information leakage from the kernel
127851 + stack should later code forget to explicitly set all parts of
127852 + the copied variable.
127853 +
127854 + The tradeoff is less performance impact than PAX_MEMORY_STACKLEAK
127855 + at a much smaller coverage.
127856 +
127857 + Note that the implementation requires a gcc with plugin support,
127858 + i.e., gcc 4.5 or newer. You may need to install the supporting
127859 + headers explicitly in addition to the normal gcc package.
127860 +
127861 +config PAX_MEMORY_UDEREF
127862 + bool "Prevent invalid userland pointer dereference"
127863 + 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)
127864 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !ARM_LPAE)) && !UML_X86 && !XEN
127865 + select PAX_PER_CPU_PGD if X86_64
127866 + help
127867 + By saying Y here the kernel will be prevented from dereferencing
127868 + userland pointers in contexts where the kernel expects only kernel
127869 + pointers. This is both a useful runtime debugging feature and a
127870 + security measure that prevents exploiting a class of kernel bugs.
127871 +
127872 + The tradeoff is that some virtualization solutions may experience
127873 + a huge slowdown and therefore you should not enable this feature
127874 + for kernels meant to run in such environments. Whether a given VM
127875 + solution is affected or not is best determined by simply trying it
127876 + out, the performance impact will be obvious right on boot as this
127877 + mechanism engages from very early on. A good rule of thumb is that
127878 + VMs running on CPUs without hardware virtualization support (i.e.,
127879 + the majority of IA-32 CPUs) will likely experience the slowdown.
127880 +
127881 + On X86_64 the kernel will make use of PCID support when available
127882 + (Intel's Westmere, Sandy Bridge, etc) for better security (default)
127883 + or performance impact. Pass pax_weakuderef on the kernel command
127884 + line to choose the latter.
127885 +
127886 +config PAX_REFCOUNT
127887 + bool "Prevent various kernel object reference counter overflows"
127888 + default y if GRKERNSEC_CONFIG_AUTO
127889 + depends on GRKERNSEC && ((ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || MIPS || PPC || SPARC64 || X86)
127890 + help
127891 + By saying Y here the kernel will detect and prevent overflowing
127892 + various (but not all) kinds of object reference counters. Such
127893 + overflows can normally occur due to bugs only and are often, if
127894 + not always, exploitable.
127895 +
127896 + The tradeoff is that data structures protected by an overflowed
127897 + refcount will never be freed and therefore will leak memory. Note
127898 + that this leak also happens even without this protection but in
127899 + that case the overflow can eventually trigger the freeing of the
127900 + data structure while it is still being used elsewhere, resulting
127901 + in the exploitable situation that this feature prevents.
127902 +
127903 + Since this has a negligible performance impact, you should enable
127904 + this feature.
127905 +
127906 +config PAX_CONSTIFY_PLUGIN
127907 + bool "Automatically constify eligible structures"
127908 + default y
127909 + depends on !UML && PAX_KERNEXEC
127910 + help
127911 + By saying Y here the compiler will automatically constify a class
127912 + of types that contain only function pointers. This reduces the
127913 + kernel's attack surface and also produces a better memory layout.
127914 +
127915 + Note that the implementation requires a gcc with plugin support,
127916 + i.e., gcc 4.5 or newer. You may need to install the supporting
127917 + headers explicitly in addition to the normal gcc package.
127918 +
127919 + Note that if some code really has to modify constified variables
127920 + then the source code will have to be patched to allow it. Examples
127921 + can be found in PaX itself (the no_const attribute) and for some
127922 + out-of-tree modules at http://www.grsecurity.net/~paxguy1/ .
127923 +
127924 +config PAX_USERCOPY
127925 + bool "Harden heap object copies between kernel and userland"
127926 + default y if GRKERNSEC_CONFIG_AUTO
127927 + depends on ARM || IA64 || PPC || SPARC || X86
127928 + depends on GRKERNSEC && (SLAB || SLUB || SLOB)
127929 + select PAX_USERCOPY_SLABS
127930 + help
127931 + By saying Y here the kernel will enforce the size of heap objects
127932 + when they are copied in either direction between the kernel and
127933 + userland, even if only a part of the heap object is copied.
127934 +
127935 + Specifically, this checking prevents information leaking from the
127936 + kernel heap during kernel to userland copies (if the kernel heap
127937 + object is otherwise fully initialized) and prevents kernel heap
127938 + overflows during userland to kernel copies.
127939 +
127940 + Note that the current implementation provides the strictest bounds
127941 + checks for the SLUB allocator.
127942 +
127943 + Enabling this option also enables per-slab cache protection against
127944 + data in a given cache being copied into/out of via userland
127945 + accessors. Though the whitelist of regions will be reduced over
127946 + time, it notably protects important data structures like task structs.
127947 +
127948 + If frame pointers are enabled on x86, this option will also restrict
127949 + copies into and out of the kernel stack to local variables within a
127950 + single frame.
127951 +
127952 + Since this has a negligible performance impact, you should enable
127953 + this feature.
127954 +
127955 +config PAX_USERCOPY_DEBUG
127956 + bool
127957 + depends on X86 && PAX_USERCOPY
127958 + default n
127959 +
127960 +config PAX_SIZE_OVERFLOW
127961 + bool "Prevent various integer overflows in function size parameters"
127962 + default y if GRKERNSEC_CONFIG_AUTO
127963 + help
127964 + By saying Y here the kernel recomputes expressions of function
127965 + arguments marked by a size_overflow attribute with double integer
127966 + precision (DImode/TImode for 32/64 bit integer types).
127967 +
127968 + The recomputed argument is checked against TYPE_MAX and an event
127969 + is logged on overflow and the triggering process is killed.
127970 +
127971 + Homepage: https://github.com/ephox-gcc-plugins
127972 +
127973 + Note that the implementation requires a gcc with plugin support,
127974 + i.e., gcc 4.5 or newer. You may need to install the supporting
127975 + headers explicitly in addition to the normal gcc package.
127976 +
127977 +config PAX_LATENT_ENTROPY
127978 + bool "Generate some entropy during boot and runtime"
127979 + default y if GRKERNSEC_CONFIG_AUTO
127980 + help
127981 + By saying Y here the kernel will instrument some kernel code to
127982 + extract some entropy from both original and artificially created
127983 + program state. This will help especially embedded systems where
127984 + there is little 'natural' source of entropy normally. The cost
127985 + is some slowdown of the boot process and fork and irq processing.
127986 +
127987 + When pax_extra_latent_entropy is passed on the kernel command line,
127988 + entropy will be extracted from up to the first 4GB of RAM while the
127989 + runtime memory allocator is being initialized. This costs even more
127990 + slowdown of the boot process.
127991 +
127992 + Note that the implementation requires a gcc with plugin support,
127993 + i.e., gcc 4.5 or newer. You may need to install the supporting
127994 + headers explicitly in addition to the normal gcc package.
127995 +
127996 + Note that entropy extracted this way is not cryptographically
127997 + secure!
127998 +
127999 +endmenu
128000 +
128001 +endmenu
128002 +
128003 +source grsecurity/Kconfig
128004 +
128005 +endmenu
128006 +
128007 +endmenu
128008 +
128009 source security/keys/Kconfig
128010
128011 config SECURITY_DMESG_RESTRICT
128012 @@ -104,7 +1078,7 @@ config INTEL_TXT
128013 config LSM_MMAP_MIN_ADDR
128014 int "Low address space for LSM to protect from user allocation"
128015 depends on SECURITY && SECURITY_SELINUX
128016 - default 32768 if ARM || (ARM64 && COMPAT)
128017 + default 32768 if ALPHA || ARM || (ARM64 && COMPAT) || PARISC || SPARC32
128018 default 65536
128019 help
128020 This is the portion of low virtual memory which should be protected
128021 diff --git a/security/apparmor/file.c b/security/apparmor/file.c
128022 index 913f377..6e392d5 100644
128023 --- a/security/apparmor/file.c
128024 +++ b/security/apparmor/file.c
128025 @@ -348,8 +348,8 @@ static inline bool xindex_is_subset(u32 link, u32 target)
128026 int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry,
128027 struct path *new_dir, struct dentry *new_dentry)
128028 {
128029 - struct path link = { new_dir->mnt, new_dentry };
128030 - struct path target = { new_dir->mnt, old_dentry };
128031 + struct path link = { .mnt = new_dir->mnt, .dentry = new_dentry };
128032 + struct path target = { .mnt = new_dir->mnt, .dentry = old_dentry };
128033 struct path_cond cond = {
128034 d_backing_inode(old_dentry)->i_uid,
128035 d_backing_inode(old_dentry)->i_mode
128036 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
128037 index dec607c..2f291ad9 100644
128038 --- a/security/apparmor/lsm.c
128039 +++ b/security/apparmor/lsm.c
128040 @@ -176,7 +176,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
128041 struct dentry *dentry, u32 mask,
128042 struct path_cond *cond)
128043 {
128044 - struct path path = { dir->mnt, dentry };
128045 + struct path path = { .mnt = dir->mnt, .dentry = dentry };
128046
128047 return common_perm(op, &path, mask, cond);
128048 }
128049 @@ -193,7 +193,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
128050 static int common_perm_mnt_dentry(int op, struct vfsmount *mnt,
128051 struct dentry *dentry, u32 mask)
128052 {
128053 - struct path path = { mnt, dentry };
128054 + struct path path = { .mnt = mnt, .dentry = dentry };
128055 struct path_cond cond = { d_backing_inode(dentry)->i_uid,
128056 d_backing_inode(dentry)->i_mode
128057 };
128058 @@ -315,8 +315,8 @@ static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry,
128059
128060 profile = aa_current_profile();
128061 if (!unconfined(profile)) {
128062 - struct path old_path = { old_dir->mnt, old_dentry };
128063 - struct path new_path = { new_dir->mnt, new_dentry };
128064 + struct path old_path = { .mnt = old_dir->mnt, .dentry = old_dentry };
128065 + struct path new_path = { .mnt = new_dir->mnt, .dentry = new_dentry };
128066 struct path_cond cond = { d_backing_inode(old_dentry)->i_uid,
128067 d_backing_inode(old_dentry)->i_mode
128068 };
128069 diff --git a/security/commoncap.c b/security/commoncap.c
128070 index d103f5a4..3f7369a 100644
128071 --- a/security/commoncap.c
128072 +++ b/security/commoncap.c
128073 @@ -422,6 +422,32 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
128074 return 0;
128075 }
128076
128077 +/* returns:
128078 + 1 for suid privilege
128079 + 2 for sgid privilege
128080 + 3 for fscap privilege
128081 +*/
128082 +int is_privileged_binary(const struct dentry *dentry)
128083 +{
128084 + struct cpu_vfs_cap_data capdata;
128085 + struct inode *inode = dentry->d_inode;
128086 +
128087 + if (!inode || S_ISDIR(inode->i_mode))
128088 + return 0;
128089 +
128090 + if (inode->i_mode & S_ISUID)
128091 + return 1;
128092 + if ((inode->i_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
128093 + return 2;
128094 +
128095 + if (!get_vfs_caps_from_disk(dentry, &capdata)) {
128096 + if (!cap_isclear(capdata.inheritable) || !cap_isclear(capdata.permitted))
128097 + return 3;
128098 + }
128099 +
128100 + return 0;
128101 +}
128102 +
128103 /*
128104 * Attempt to get the on-exec apply capability sets for an executable file from
128105 * its xattrs and, if present, apply them to the proposed credentials being
128106 @@ -586,6 +612,9 @@ int cap_bprm_secureexec(struct linux_binprm *bprm)
128107 const struct cred *cred = current_cred();
128108 kuid_t root_uid = make_kuid(cred->user_ns, 0);
128109
128110 + if (gr_acl_enable_at_secure())
128111 + return 1;
128112 +
128113 if (!uid_eq(cred->uid, root_uid)) {
128114 if (bprm->cap_effective)
128115 return 1;
128116 diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
128117 index e2a60c3..2e41dd3 100644
128118 --- a/security/integrity/ima/ima.h
128119 +++ b/security/integrity/ima/ima.h
128120 @@ -125,8 +125,8 @@ int ima_init_template(void);
128121 extern spinlock_t ima_queue_lock;
128122
128123 struct ima_h_table {
128124 - atomic_long_t len; /* number of stored measurements in the list */
128125 - atomic_long_t violations;
128126 + atomic_long_unchecked_t len; /* number of stored measurements in the list */
128127 + atomic_long_unchecked_t violations;
128128 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
128129 };
128130 extern struct ima_h_table ima_htable;
128131 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
128132 index 1d950fb..a8f4eab 100644
128133 --- a/security/integrity/ima/ima_api.c
128134 +++ b/security/integrity/ima/ima_api.c
128135 @@ -137,7 +137,7 @@ void ima_add_violation(struct file *file, const unsigned char *filename,
128136 int result;
128137
128138 /* can overflow, only indicator */
128139 - atomic_long_inc(&ima_htable.violations);
128140 + atomic_long_inc_unchecked(&ima_htable.violations);
128141
128142 result = ima_alloc_init_template(&event_data, &entry);
128143 if (result < 0) {
128144 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
128145 index 816d175..20079ae 100644
128146 --- a/security/integrity/ima/ima_fs.c
128147 +++ b/security/integrity/ima/ima_fs.c
128148 @@ -28,12 +28,12 @@
128149 static int valid_policy = 1;
128150 #define TMPBUFLEN 12
128151 static ssize_t ima_show_htable_value(char __user *buf, size_t count,
128152 - loff_t *ppos, atomic_long_t *val)
128153 + loff_t *ppos, atomic_long_unchecked_t *val)
128154 {
128155 char tmpbuf[TMPBUFLEN];
128156 ssize_t len;
128157
128158 - len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read(val));
128159 + len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read_unchecked(val));
128160 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
128161 }
128162
128163 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
128164 index 552705d..9920f4fb 100644
128165 --- a/security/integrity/ima/ima_queue.c
128166 +++ b/security/integrity/ima/ima_queue.c
128167 @@ -83,7 +83,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
128168 INIT_LIST_HEAD(&qe->later);
128169 list_add_tail_rcu(&qe->later, &ima_measurements);
128170
128171 - atomic_long_inc(&ima_htable.len);
128172 + atomic_long_inc_unchecked(&ima_htable.len);
128173 key = ima_hash_key(entry->digest);
128174 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
128175 return 0;
128176 diff --git a/security/keys/key.c b/security/keys/key.c
128177 index aee2ec5..c276071 100644
128178 --- a/security/keys/key.c
128179 +++ b/security/keys/key.c
128180 @@ -283,7 +283,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
128181
128182 atomic_set(&key->usage, 1);
128183 init_rwsem(&key->sem);
128184 - lockdep_set_class(&key->sem, &type->lock_class);
128185 + lockdep_set_class(&key->sem, (struct lock_class_key *)&type->lock_class);
128186 key->index_key.type = type;
128187 key->user = user;
128188 key->quotalen = quotalen;
128189 @@ -1073,7 +1073,9 @@ int register_key_type(struct key_type *ktype)
128190 struct key_type *p;
128191 int ret;
128192
128193 - memset(&ktype->lock_class, 0, sizeof(ktype->lock_class));
128194 + pax_open_kernel();
128195 + memset((void *)&ktype->lock_class, 0, sizeof(ktype->lock_class));
128196 + pax_close_kernel();
128197
128198 ret = -EEXIST;
128199 down_write(&key_types_sem);
128200 @@ -1085,7 +1087,7 @@ int register_key_type(struct key_type *ktype)
128201 }
128202
128203 /* store the type */
128204 - list_add(&ktype->link, &key_types_list);
128205 + pax_list_add((struct list_head *)&ktype->link, &key_types_list);
128206
128207 pr_notice("Key type %s registered\n", ktype->name);
128208 ret = 0;
128209 @@ -1107,7 +1109,7 @@ EXPORT_SYMBOL(register_key_type);
128210 void unregister_key_type(struct key_type *ktype)
128211 {
128212 down_write(&key_types_sem);
128213 - list_del_init(&ktype->link);
128214 + pax_list_del_init((struct list_head *)&ktype->link);
128215 downgrade_write(&key_types_sem);
128216 key_gc_keytype(ktype);
128217 pr_notice("Key type %s unregistered\n", ktype->name);
128218 @@ -1125,10 +1127,10 @@ void __init key_init(void)
128219 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
128220
128221 /* add the special key types */
128222 - list_add_tail(&key_type_keyring.link, &key_types_list);
128223 - list_add_tail(&key_type_dead.link, &key_types_list);
128224 - list_add_tail(&key_type_user.link, &key_types_list);
128225 - list_add_tail(&key_type_logon.link, &key_types_list);
128226 + pax_list_add_tail((struct list_head *)&key_type_keyring.link, &key_types_list);
128227 + pax_list_add_tail((struct list_head *)&key_type_dead.link, &key_types_list);
128228 + pax_list_add_tail((struct list_head *)&key_type_user.link, &key_types_list);
128229 + pax_list_add_tail((struct list_head *)&key_type_logon.link, &key_types_list);
128230
128231 /* record the root user tracking */
128232 rb_link_node(&root_key_user.node,
128233 diff --git a/security/keys/request_key.c b/security/keys/request_key.c
128234 index 486ef6f..0d62531 100644
128235 --- a/security/keys/request_key.c
128236 +++ b/security/keys/request_key.c
128237 @@ -440,6 +440,9 @@ static struct key *construct_key_and_link(struct keyring_search_context *ctx,
128238
128239 kenter("");
128240
128241 + if (ctx->index_key.type == &key_type_keyring)
128242 + return ERR_PTR(-EPERM);
128243 +
128244 user = key_user_lookup(current_fsuid());
128245 if (!user)
128246 return ERR_PTR(-ENOMEM);
128247 diff --git a/security/min_addr.c b/security/min_addr.c
128248 index f728728..6457a0c 100644
128249 --- a/security/min_addr.c
128250 +++ b/security/min_addr.c
128251 @@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR;
128252 */
128253 static void update_mmap_min_addr(void)
128254 {
128255 +#ifndef SPARC
128256 #ifdef CONFIG_LSM_MMAP_MIN_ADDR
128257 if (dac_mmap_min_addr > CONFIG_LSM_MMAP_MIN_ADDR)
128258 mmap_min_addr = dac_mmap_min_addr;
128259 @@ -22,6 +23,7 @@ static void update_mmap_min_addr(void)
128260 #else
128261 mmap_min_addr = dac_mmap_min_addr;
128262 #endif
128263 +#endif
128264 }
128265
128266 /*
128267 diff --git a/security/selinux/avc.c b/security/selinux/avc.c
128268 index 0b122b1..d9f9568 100644
128269 --- a/security/selinux/avc.c
128270 +++ b/security/selinux/avc.c
128271 @@ -59,7 +59,7 @@ struct avc_node {
128272 struct avc_cache {
128273 struct hlist_head slots[AVC_CACHE_SLOTS]; /* head for avc_node->list */
128274 spinlock_t slots_lock[AVC_CACHE_SLOTS]; /* lock for writes */
128275 - atomic_t lru_hint; /* LRU hint for reclaim scan */
128276 + atomic_unchecked_t lru_hint; /* LRU hint for reclaim scan */
128277 atomic_t active_nodes;
128278 u32 latest_notif; /* latest revocation notification */
128279 };
128280 @@ -167,7 +167,7 @@ void __init avc_init(void)
128281 spin_lock_init(&avc_cache.slots_lock[i]);
128282 }
128283 atomic_set(&avc_cache.active_nodes, 0);
128284 - atomic_set(&avc_cache.lru_hint, 0);
128285 + atomic_set_unchecked(&avc_cache.lru_hint, 0);
128286
128287 avc_node_cachep = kmem_cache_create("avc_node", sizeof(struct avc_node),
128288 0, SLAB_PANIC, NULL);
128289 @@ -242,7 +242,7 @@ static inline int avc_reclaim_node(void)
128290 spinlock_t *lock;
128291
128292 for (try = 0, ecx = 0; try < AVC_CACHE_SLOTS; try++) {
128293 - hvalue = atomic_inc_return(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
128294 + hvalue = atomic_inc_return_unchecked(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
128295 head = &avc_cache.slots[hvalue];
128296 lock = &avc_cache.slots_lock[hvalue];
128297
128298 diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
128299 index 1450f85..a91e0bc 100644
128300 --- a/security/selinux/include/xfrm.h
128301 +++ b/security/selinux/include/xfrm.h
128302 @@ -48,7 +48,7 @@ static inline void selinux_xfrm_notify_policyload(void)
128303
128304 rtnl_lock();
128305 for_each_net(net) {
128306 - atomic_inc(&net->xfrm.flow_cache_genid);
128307 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
128308 rt_genid_bump_all(net);
128309 }
128310 rtnl_unlock();
128311 diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
128312 index 2367b10..a0c3c51 100644
128313 --- a/security/tomoyo/file.c
128314 +++ b/security/tomoyo/file.c
128315 @@ -692,7 +692,7 @@ int tomoyo_path_number_perm(const u8 type, struct path *path,
128316 {
128317 struct tomoyo_request_info r;
128318 struct tomoyo_obj_info obj = {
128319 - .path1 = *path,
128320 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128321 };
128322 int error = -ENOMEM;
128323 struct tomoyo_path_info buf;
128324 @@ -740,7 +740,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
128325 struct tomoyo_path_info buf;
128326 struct tomoyo_request_info r;
128327 struct tomoyo_obj_info obj = {
128328 - .path1 = *path,
128329 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128330 };
128331 int idx;
128332
128333 @@ -786,7 +786,7 @@ int tomoyo_path_perm(const u8 operation, const struct path *path, const char *ta
128334 {
128335 struct tomoyo_request_info r;
128336 struct tomoyo_obj_info obj = {
128337 - .path1 = *path,
128338 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128339 };
128340 int error;
128341 struct tomoyo_path_info buf;
128342 @@ -843,7 +843,7 @@ int tomoyo_mkdev_perm(const u8 operation, struct path *path,
128343 {
128344 struct tomoyo_request_info r;
128345 struct tomoyo_obj_info obj = {
128346 - .path1 = *path,
128347 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
128348 };
128349 int error = -ENOMEM;
128350 struct tomoyo_path_info buf;
128351 @@ -890,8 +890,8 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
128352 struct tomoyo_path_info buf2;
128353 struct tomoyo_request_info r;
128354 struct tomoyo_obj_info obj = {
128355 - .path1 = *path1,
128356 - .path2 = *path2,
128357 + .path1 = { .mnt = path1->mnt, .dentry = path1->dentry },
128358 + .path2 = { .mnt = path2->mnt, .dentry = path2->dentry }
128359 };
128360 int idx;
128361
128362 diff --git a/security/tomoyo/mount.c b/security/tomoyo/mount.c
128363 index 390c646..f2f8db3 100644
128364 --- a/security/tomoyo/mount.c
128365 +++ b/security/tomoyo/mount.c
128366 @@ -118,6 +118,10 @@ static int tomoyo_mount_acl(struct tomoyo_request_info *r,
128367 type == tomoyo_mounts[TOMOYO_MOUNT_MOVE]) {
128368 need_dev = -1; /* dev_name is a directory */
128369 } else {
128370 + if (!capable(CAP_SYS_ADMIN)) {
128371 + error = -EPERM;
128372 + goto out;
128373 + }
128374 fstype = get_fs_type(type);
128375 if (!fstype) {
128376 error = -ENODEV;
128377 diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
128378 index cbf3df4..22b11df 100644
128379 --- a/security/tomoyo/tomoyo.c
128380 +++ b/security/tomoyo/tomoyo.c
128381 @@ -165,7 +165,7 @@ static int tomoyo_path_truncate(struct path *path)
128382 */
128383 static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
128384 {
128385 - struct path path = { parent->mnt, dentry };
128386 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128387 return tomoyo_path_perm(TOMOYO_TYPE_UNLINK, &path, NULL);
128388 }
128389
128390 @@ -181,7 +181,7 @@ static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
128391 static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
128392 umode_t mode)
128393 {
128394 - struct path path = { parent->mnt, dentry };
128395 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128396 return tomoyo_path_number_perm(TOMOYO_TYPE_MKDIR, &path,
128397 mode & S_IALLUGO);
128398 }
128399 @@ -196,7 +196,7 @@ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
128400 */
128401 static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
128402 {
128403 - struct path path = { parent->mnt, dentry };
128404 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128405 return tomoyo_path_perm(TOMOYO_TYPE_RMDIR, &path, NULL);
128406 }
128407
128408 @@ -212,7 +212,7 @@ static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
128409 static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
128410 const char *old_name)
128411 {
128412 - struct path path = { parent->mnt, dentry };
128413 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128414 return tomoyo_path_perm(TOMOYO_TYPE_SYMLINK, &path, old_name);
128415 }
128416
128417 @@ -229,7 +229,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
128418 static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
128419 umode_t mode, unsigned int dev)
128420 {
128421 - struct path path = { parent->mnt, dentry };
128422 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
128423 int type = TOMOYO_TYPE_CREATE;
128424 const unsigned int perm = mode & S_IALLUGO;
128425
128426 @@ -268,8 +268,8 @@ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
128427 static int tomoyo_path_link(struct dentry *old_dentry, struct path *new_dir,
128428 struct dentry *new_dentry)
128429 {
128430 - struct path path1 = { new_dir->mnt, old_dentry };
128431 - struct path path2 = { new_dir->mnt, new_dentry };
128432 + struct path path1 = { .mnt = new_dir->mnt, .dentry = old_dentry };
128433 + struct path path2 = { .mnt = new_dir->mnt, .dentry = new_dentry };
128434 return tomoyo_path2_perm(TOMOYO_TYPE_LINK, &path1, &path2);
128435 }
128436
128437 @@ -288,8 +288,8 @@ static int tomoyo_path_rename(struct path *old_parent,
128438 struct path *new_parent,
128439 struct dentry *new_dentry)
128440 {
128441 - struct path path1 = { old_parent->mnt, old_dentry };
128442 - struct path path2 = { new_parent->mnt, new_dentry };
128443 + struct path path1 = { .mnt = old_parent->mnt, .dentry = old_dentry };
128444 + struct path path2 = { .mnt = new_parent->mnt, .dentry = new_dentry };
128445 return tomoyo_path2_perm(TOMOYO_TYPE_RENAME, &path1, &path2);
128446 }
128447
128448 @@ -417,7 +417,7 @@ static int tomoyo_sb_mount(const char *dev_name, struct path *path,
128449 */
128450 static int tomoyo_sb_umount(struct vfsmount *mnt, int flags)
128451 {
128452 - struct path path = { mnt, mnt->mnt_root };
128453 + struct path path = { .mnt = mnt, .dentry = mnt->mnt_root };
128454 return tomoyo_path_perm(TOMOYO_TYPE_UMOUNT, &path, NULL);
128455 }
128456
128457 diff --git a/security/yama/Kconfig b/security/yama/Kconfig
128458 index 3123e1d..951f48d 100644
128459 --- a/security/yama/Kconfig
128460 +++ b/security/yama/Kconfig
128461 @@ -1,6 +1,6 @@
128462 config SECURITY_YAMA
128463 bool "Yama support"
128464 - depends on SECURITY
128465 + depends on SECURITY && !GRKERNSEC
128466 default n
128467 help
128468 This selects Yama, which extends DAC support with additional
128469 diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
128470 index 5ebb896..68147a2 100644
128471 --- a/security/yama/yama_lsm.c
128472 +++ b/security/yama/yama_lsm.c
128473 @@ -362,7 +362,7 @@ void __init yama_add_hooks(void)
128474 static int yama_dointvec_minmax(struct ctl_table *table, int write,
128475 void __user *buffer, size_t *lenp, loff_t *ppos)
128476 {
128477 - struct ctl_table table_copy;
128478 + ctl_table_no_const table_copy;
128479
128480 if (write && !capable(CAP_SYS_PTRACE))
128481 return -EPERM;
128482 diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
128483 index 23c371e..da7c25e 100644
128484 --- a/sound/aoa/codecs/onyx.c
128485 +++ b/sound/aoa/codecs/onyx.c
128486 @@ -54,7 +54,7 @@ struct onyx {
128487 spdif_locked:1,
128488 analog_locked:1,
128489 original_mute:2;
128490 - int open_count;
128491 + local_t open_count;
128492 struct codec_info *codec_info;
128493
128494 /* mutex serializes concurrent access to the device
128495 @@ -747,7 +747,7 @@ static int onyx_open(struct codec_info_item *cii,
128496 struct onyx *onyx = cii->codec_data;
128497
128498 mutex_lock(&onyx->mutex);
128499 - onyx->open_count++;
128500 + local_inc(&onyx->open_count);
128501 mutex_unlock(&onyx->mutex);
128502
128503 return 0;
128504 @@ -759,8 +759,7 @@ static int onyx_close(struct codec_info_item *cii,
128505 struct onyx *onyx = cii->codec_data;
128506
128507 mutex_lock(&onyx->mutex);
128508 - onyx->open_count--;
128509 - if (!onyx->open_count)
128510 + if (local_dec_and_test(&onyx->open_count))
128511 onyx->spdif_locked = onyx->analog_locked = 0;
128512 mutex_unlock(&onyx->mutex);
128513
128514 diff --git a/sound/aoa/codecs/onyx.h b/sound/aoa/codecs/onyx.h
128515 index ffd2025..df062c9 100644
128516 --- a/sound/aoa/codecs/onyx.h
128517 +++ b/sound/aoa/codecs/onyx.h
128518 @@ -11,6 +11,7 @@
128519 #include <linux/i2c.h>
128520 #include <asm/pmac_low_i2c.h>
128521 #include <asm/prom.h>
128522 +#include <asm/local.h>
128523
128524 /* PCM3052 register definitions */
128525
128526 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
128527 index 58550cc..4687a93 100644
128528 --- a/sound/core/oss/pcm_oss.c
128529 +++ b/sound/core/oss/pcm_oss.c
128530 @@ -1189,10 +1189,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
128531 if (in_kernel) {
128532 mm_segment_t fs;
128533 fs = snd_enter_user();
128534 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
128535 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
128536 snd_leave_user(fs);
128537 } else {
128538 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
128539 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
128540 }
128541 if (ret != -EPIPE && ret != -ESTRPIPE)
128542 break;
128543 @@ -1232,10 +1232,10 @@ snd_pcm_sframes_t snd_pcm_oss_read3(struct snd_pcm_substream *substream, char *p
128544 if (in_kernel) {
128545 mm_segment_t fs;
128546 fs = snd_enter_user();
128547 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
128548 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
128549 snd_leave_user(fs);
128550 } else {
128551 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
128552 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
128553 }
128554 if (ret == -EPIPE) {
128555 if (runtime->status->state == SNDRV_PCM_STATE_DRAINING) {
128556 @@ -1331,7 +1331,7 @@ static ssize_t snd_pcm_oss_write2(struct snd_pcm_substream *substream, const cha
128557 struct snd_pcm_plugin_channel *channels;
128558 size_t oss_frame_bytes = (runtime->oss.plugin_first->src_width * runtime->oss.plugin_first->src_format.channels) / 8;
128559 if (!in_kernel) {
128560 - if (copy_from_user(runtime->oss.buffer, (const char __force __user *)buf, bytes))
128561 + if (copy_from_user(runtime->oss.buffer, (const char __force_user *)buf, bytes))
128562 return -EFAULT;
128563 buf = runtime->oss.buffer;
128564 }
128565 @@ -1401,7 +1401,7 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
128566 }
128567 } else {
128568 tmp = snd_pcm_oss_write2(substream,
128569 - (const char __force *)buf,
128570 + (const char __force_kernel *)buf,
128571 runtime->oss.period_bytes, 0);
128572 if (tmp <= 0)
128573 goto err;
128574 @@ -1427,7 +1427,7 @@ static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf,
128575 struct snd_pcm_runtime *runtime = substream->runtime;
128576 snd_pcm_sframes_t frames, frames1;
128577 #ifdef CONFIG_SND_PCM_OSS_PLUGINS
128578 - char __user *final_dst = (char __force __user *)buf;
128579 + char __user *final_dst = (char __force_user *)buf;
128580 if (runtime->oss.plugin_first) {
128581 struct snd_pcm_plugin_channel *channels;
128582 size_t oss_frame_bytes = (runtime->oss.plugin_last->dst_width * runtime->oss.plugin_last->dst_format.channels) / 8;
128583 @@ -1489,7 +1489,7 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
128584 xfer += tmp;
128585 runtime->oss.buffer_used -= tmp;
128586 } else {
128587 - tmp = snd_pcm_oss_read2(substream, (char __force *)buf,
128588 + tmp = snd_pcm_oss_read2(substream, (char __force_kernel *)buf,
128589 runtime->oss.period_bytes, 0);
128590 if (tmp <= 0)
128591 goto err;
128592 @@ -1658,7 +1658,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
128593 size1);
128594 size1 /= runtime->channels; /* frames */
128595 fs = snd_enter_user();
128596 - snd_pcm_lib_write(substream, (void __force __user *)runtime->oss.buffer, size1);
128597 + snd_pcm_lib_write(substream, (void __force_user *)runtime->oss.buffer, size1);
128598 snd_leave_user(fs);
128599 }
128600 } else if (runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) {
128601 diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
128602 index b48b434..e2ba787 100644
128603 --- a/sound/core/pcm_compat.c
128604 +++ b/sound/core/pcm_compat.c
128605 @@ -31,7 +31,7 @@ static int snd_pcm_ioctl_delay_compat(struct snd_pcm_substream *substream,
128606 int err;
128607
128608 fs = snd_enter_user();
128609 - err = snd_pcm_delay(substream, &delay);
128610 + err = snd_pcm_delay(substream, (snd_pcm_sframes_t __force_user *)&delay);
128611 snd_leave_user(fs);
128612 if (err < 0)
128613 return err;
128614 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
128615 index 75888dd..c940854 100644
128616 --- a/sound/core/pcm_native.c
128617 +++ b/sound/core/pcm_native.c
128618 @@ -3004,11 +3004,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
128619 switch (substream->stream) {
128620 case SNDRV_PCM_STREAM_PLAYBACK:
128621 result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
128622 - (void __user *)arg);
128623 + (void __force_user *)arg);
128624 break;
128625 case SNDRV_PCM_STREAM_CAPTURE:
128626 result = snd_pcm_capture_ioctl1(NULL, substream, cmd,
128627 - (void __user *)arg);
128628 + (void __force_user *)arg);
128629 break;
128630 default:
128631 result = -EINVAL;
128632 diff --git a/sound/core/sound.c b/sound/core/sound.c
128633 index 175f9e4..3518d31 100644
128634 --- a/sound/core/sound.c
128635 +++ b/sound/core/sound.c
128636 @@ -86,7 +86,7 @@ static void snd_request_other(int minor)
128637 case SNDRV_MINOR_TIMER: str = "snd-timer"; break;
128638 default: return;
128639 }
128640 - request_module(str);
128641 + request_module("%s", str);
128642 }
128643
128644 #endif /* modular kernel */
128645 diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
128646 index 2a008a9..a1efb3f 100644
128647 --- a/sound/drivers/mts64.c
128648 +++ b/sound/drivers/mts64.c
128649 @@ -29,6 +29,7 @@
128650 #include <sound/initval.h>
128651 #include <sound/rawmidi.h>
128652 #include <sound/control.h>
128653 +#include <asm/local.h>
128654
128655 #define CARD_NAME "Miditerminal 4140"
128656 #define DRIVER_NAME "MTS64"
128657 @@ -67,7 +68,7 @@ struct mts64 {
128658 struct pardevice *pardev;
128659 int pardev_claimed;
128660
128661 - int open_count;
128662 + local_t open_count;
128663 int current_midi_output_port;
128664 int current_midi_input_port;
128665 u8 mode[MTS64_NUM_INPUT_PORTS];
128666 @@ -687,7 +688,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
128667 {
128668 struct mts64 *mts = substream->rmidi->private_data;
128669
128670 - if (mts->open_count == 0) {
128671 + if (local_read(&mts->open_count) == 0) {
128672 /* We don't need a spinlock here, because this is just called
128673 if the device has not been opened before.
128674 So there aren't any IRQs from the device */
128675 @@ -695,7 +696,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
128676
128677 msleep(50);
128678 }
128679 - ++(mts->open_count);
128680 + local_inc(&mts->open_count);
128681
128682 return 0;
128683 }
128684 @@ -705,8 +706,7 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
128685 struct mts64 *mts = substream->rmidi->private_data;
128686 unsigned long flags;
128687
128688 - --(mts->open_count);
128689 - if (mts->open_count == 0) {
128690 + if (local_dec_return(&mts->open_count) == 0) {
128691 /* We need the spinlock_irqsave here because we can still
128692 have IRQs at this point */
128693 spin_lock_irqsave(&mts->lock, flags);
128694 @@ -715,8 +715,8 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
128695
128696 msleep(500);
128697
128698 - } else if (mts->open_count < 0)
128699 - mts->open_count = 0;
128700 + } else if (local_read(&mts->open_count) < 0)
128701 + local_set(&mts->open_count, 0);
128702
128703 return 0;
128704 }
128705 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
128706 index 89c7aa0..6d75e49 100644
128707 --- a/sound/drivers/opl4/opl4_lib.c
128708 +++ b/sound/drivers/opl4/opl4_lib.c
128709 @@ -29,7 +29,7 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
128710 MODULE_DESCRIPTION("OPL4 driver");
128711 MODULE_LICENSE("GPL");
128712
128713 -static void inline snd_opl4_wait(struct snd_opl4 *opl4)
128714 +static inline void snd_opl4_wait(struct snd_opl4 *opl4)
128715 {
128716 int timeout = 10;
128717 while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
128718 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
128719 index 464385a..46ab3f6 100644
128720 --- a/sound/drivers/portman2x4.c
128721 +++ b/sound/drivers/portman2x4.c
128722 @@ -48,6 +48,7 @@
128723 #include <sound/initval.h>
128724 #include <sound/rawmidi.h>
128725 #include <sound/control.h>
128726 +#include <asm/local.h>
128727
128728 #define CARD_NAME "Portman 2x4"
128729 #define DRIVER_NAME "portman"
128730 @@ -85,7 +86,7 @@ struct portman {
128731 struct pardevice *pardev;
128732 int pardev_claimed;
128733
128734 - int open_count;
128735 + local_t open_count;
128736 int mode[PORTMAN_NUM_INPUT_PORTS];
128737 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
128738 };
128739 diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
128740 index 2a153d2..185af02 100644
128741 --- a/sound/firewire/amdtp.c
128742 +++ b/sound/firewire/amdtp.c
128743 @@ -591,7 +591,7 @@ static void update_pcm_pointers(struct amdtp_stream *s,
128744 ptr = s->pcm_buffer_pointer + frames;
128745 if (ptr >= pcm->runtime->buffer_size)
128746 ptr -= pcm->runtime->buffer_size;
128747 - ACCESS_ONCE(s->pcm_buffer_pointer) = ptr;
128748 + ACCESS_ONCE_RW(s->pcm_buffer_pointer) = ptr;
128749
128750 s->pcm_period_pointer += frames;
128751 if (s->pcm_period_pointer >= pcm->runtime->period_size) {
128752 @@ -1056,7 +1056,7 @@ EXPORT_SYMBOL(amdtp_stream_pcm_pointer);
128753 void amdtp_stream_update(struct amdtp_stream *s)
128754 {
128755 /* Precomputing. */
128756 - ACCESS_ONCE(s->source_node_id_field) =
128757 + ACCESS_ONCE_RW(s->source_node_id_field) =
128758 (fw_parent_device(s->unit)->card->node_id << CIP_SID_SHIFT) &
128759 CIP_SID_MASK;
128760 }
128761 diff --git a/sound/firewire/amdtp.h b/sound/firewire/amdtp.h
128762 index b2cf9e7..e11623a 100644
128763 --- a/sound/firewire/amdtp.h
128764 +++ b/sound/firewire/amdtp.h
128765 @@ -237,7 +237,7 @@ static inline bool amdtp_stream_pcm_running(struct amdtp_stream *s)
128766 static inline void amdtp_stream_pcm_trigger(struct amdtp_stream *s,
128767 struct snd_pcm_substream *pcm)
128768 {
128769 - ACCESS_ONCE(s->pcm) = pcm;
128770 + ACCESS_ONCE_RW(s->pcm) = pcm;
128771 }
128772
128773 /**
128774 @@ -255,7 +255,7 @@ static inline void amdtp_stream_midi_trigger(struct amdtp_stream *s,
128775 struct snd_rawmidi_substream *midi)
128776 {
128777 if (port < s->midi_ports)
128778 - ACCESS_ONCE(s->midi[port]) = midi;
128779 + ACCESS_ONCE_RW(s->midi[port]) = midi;
128780 }
128781
128782 static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc)
128783 diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
128784 index 48d6dca..a0266c23 100644
128785 --- a/sound/firewire/isight.c
128786 +++ b/sound/firewire/isight.c
128787 @@ -96,7 +96,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
128788 ptr += count;
128789 if (ptr >= runtime->buffer_size)
128790 ptr -= runtime->buffer_size;
128791 - ACCESS_ONCE(isight->buffer_pointer) = ptr;
128792 + ACCESS_ONCE_RW(isight->buffer_pointer) = ptr;
128793
128794 isight->period_counter += count;
128795 if (isight->period_counter >= runtime->period_size) {
128796 @@ -293,7 +293,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
128797 if (err < 0)
128798 return err;
128799
128800 - ACCESS_ONCE(isight->pcm_active) = true;
128801 + ACCESS_ONCE_RW(isight->pcm_active) = true;
128802
128803 return 0;
128804 }
128805 @@ -331,7 +331,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
128806 {
128807 struct isight *isight = substream->private_data;
128808
128809 - ACCESS_ONCE(isight->pcm_active) = false;
128810 + ACCESS_ONCE_RW(isight->pcm_active) = false;
128811
128812 mutex_lock(&isight->mutex);
128813 isight_stop_streaming(isight);
128814 @@ -424,10 +424,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
128815
128816 switch (cmd) {
128817 case SNDRV_PCM_TRIGGER_START:
128818 - ACCESS_ONCE(isight->pcm_running) = true;
128819 + ACCESS_ONCE_RW(isight->pcm_running) = true;
128820 break;
128821 case SNDRV_PCM_TRIGGER_STOP:
128822 - ACCESS_ONCE(isight->pcm_running) = false;
128823 + ACCESS_ONCE_RW(isight->pcm_running) = false;
128824 break;
128825 default:
128826 return -EINVAL;
128827 diff --git a/sound/firewire/scs1x.c b/sound/firewire/scs1x.c
128828 index 2dba848..c682aef 100644
128829 --- a/sound/firewire/scs1x.c
128830 +++ b/sound/firewire/scs1x.c
128831 @@ -74,7 +74,7 @@ static void scs_output_trigger(struct snd_rawmidi_substream *stream, int up)
128832 {
128833 struct scs *scs = stream->rmidi->private_data;
128834
128835 - ACCESS_ONCE(scs->output) = up ? stream : NULL;
128836 + ACCESS_ONCE_RW(scs->output) = up ? stream : NULL;
128837 if (up) {
128838 scs->output_idle = false;
128839 tasklet_schedule(&scs->tasklet);
128840 @@ -257,7 +257,7 @@ static void scs_input_trigger(struct snd_rawmidi_substream *stream, int up)
128841 {
128842 struct scs *scs = stream->rmidi->private_data;
128843
128844 - ACCESS_ONCE(scs->input) = up ? stream : NULL;
128845 + ACCESS_ONCE_RW(scs->input) = up ? stream : NULL;
128846 }
128847
128848 static void scs_input_escaped_byte(struct snd_rawmidi_substream *stream,
128849 @@ -473,8 +473,8 @@ static void scs_remove(struct fw_unit *unit)
128850
128851 snd_card_disconnect(scs->card);
128852
128853 - ACCESS_ONCE(scs->output) = NULL;
128854 - ACCESS_ONCE(scs->input) = NULL;
128855 + ACCESS_ONCE_RW(scs->output) = NULL;
128856 + ACCESS_ONCE_RW(scs->input) = NULL;
128857
128858 wait_event(scs->idle_wait, scs->output_idle);
128859
128860 diff --git a/sound/oss/sb_audio.c b/sound/oss/sb_audio.c
128861 index dc91072..d85a10a 100644
128862 --- a/sound/oss/sb_audio.c
128863 +++ b/sound/oss/sb_audio.c
128864 @@ -900,7 +900,7 @@ sb16_copy_from_user(int dev,
128865 buf16 = (signed short *)(localbuf + localoffs);
128866 while (c)
128867 {
128868 - locallen = (c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
128869 + locallen = ((unsigned)c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
128870 if (copy_from_user(lbuf8,
128871 userbuf+useroffs + p,
128872 locallen))
128873 diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
128874 index 213a416..aeab5c9 100644
128875 --- a/sound/oss/swarm_cs4297a.c
128876 +++ b/sound/oss/swarm_cs4297a.c
128877 @@ -2623,7 +2623,6 @@ static int __init cs4297a_init(void)
128878 {
128879 struct cs4297a_state *s;
128880 u32 pwr, id;
128881 - mm_segment_t fs;
128882 int rval;
128883 u64 cfg;
128884 int mdio_val;
128885 @@ -2709,22 +2708,23 @@ static int __init cs4297a_init(void)
128886 if (!rval) {
128887 char *sb1250_duart_present;
128888
128889 +#if 0
128890 + mm_segment_t fs;
128891 fs = get_fs();
128892 set_fs(KERNEL_DS);
128893 -#if 0
128894 val = SOUND_MASK_LINE;
128895 mixer_ioctl(s, SOUND_MIXER_WRITE_RECSRC, (unsigned long) &val);
128896 for (i = 0; i < ARRAY_SIZE(initvol); i++) {
128897 val = initvol[i].vol;
128898 mixer_ioctl(s, initvol[i].mixch, (unsigned long) &val);
128899 }
128900 + set_fs(fs);
128901 // cs4297a_write_ac97(s, 0x18, 0x0808);
128902 #else
128903 // cs4297a_write_ac97(s, 0x5e, 0x180);
128904 cs4297a_write_ac97(s, 0x02, 0x0808);
128905 cs4297a_write_ac97(s, 0x18, 0x0808);
128906 #endif
128907 - set_fs(fs);
128908
128909 list_add(&s->list, &cs4297a_devs);
128910
128911 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
128912 index ca37446..cb7fbcb 100644
128913 --- a/sound/pci/hda/hda_codec.c
128914 +++ b/sound/pci/hda/hda_codec.c
128915 @@ -1857,7 +1857,7 @@ static int get_kctl_0dB_offset(struct hda_codec *codec,
128916 /* FIXME: set_fs() hack for obtaining user-space TLV data */
128917 mm_segment_t fs = get_fs();
128918 set_fs(get_ds());
128919 - if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), _tlv))
128920 + if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), (unsigned int __force_user *)_tlv))
128921 tlv = _tlv;
128922 set_fs(fs);
128923 } else if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_READ)
128924 diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h
128925 index 149d4cb..7784769 100644
128926 --- a/sound/pci/ymfpci/ymfpci.h
128927 +++ b/sound/pci/ymfpci/ymfpci.h
128928 @@ -358,7 +358,7 @@ struct snd_ymfpci {
128929 spinlock_t reg_lock;
128930 spinlock_t voice_lock;
128931 wait_queue_head_t interrupt_sleep;
128932 - atomic_t interrupt_sleep_count;
128933 + atomic_unchecked_t interrupt_sleep_count;
128934 struct snd_info_entry *proc_entry;
128935 const struct firmware *dsp_microcode;
128936 const struct firmware *controller_microcode;
128937 diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
128938 index 4c26076..a13f370 100644
128939 --- a/sound/pci/ymfpci/ymfpci_main.c
128940 +++ b/sound/pci/ymfpci/ymfpci_main.c
128941 @@ -204,8 +204,8 @@ static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip)
128942 if ((snd_ymfpci_readl(chip, YDSXGR_STATUS) & 2) == 0)
128943 break;
128944 }
128945 - if (atomic_read(&chip->interrupt_sleep_count)) {
128946 - atomic_set(&chip->interrupt_sleep_count, 0);
128947 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
128948 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
128949 wake_up(&chip->interrupt_sleep);
128950 }
128951 __end:
128952 @@ -789,7 +789,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
128953 continue;
128954 init_waitqueue_entry(&wait, current);
128955 add_wait_queue(&chip->interrupt_sleep, &wait);
128956 - atomic_inc(&chip->interrupt_sleep_count);
128957 + atomic_inc_unchecked(&chip->interrupt_sleep_count);
128958 schedule_timeout_uninterruptible(msecs_to_jiffies(50));
128959 remove_wait_queue(&chip->interrupt_sleep, &wait);
128960 }
128961 @@ -827,8 +827,8 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
128962 snd_ymfpci_writel(chip, YDSXGR_MODE, mode);
128963 spin_unlock(&chip->reg_lock);
128964
128965 - if (atomic_read(&chip->interrupt_sleep_count)) {
128966 - atomic_set(&chip->interrupt_sleep_count, 0);
128967 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
128968 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
128969 wake_up(&chip->interrupt_sleep);
128970 }
128971 }
128972 @@ -2384,7 +2384,7 @@ int snd_ymfpci_create(struct snd_card *card,
128973 spin_lock_init(&chip->reg_lock);
128974 spin_lock_init(&chip->voice_lock);
128975 init_waitqueue_head(&chip->interrupt_sleep);
128976 - atomic_set(&chip->interrupt_sleep_count, 0);
128977 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
128978 chip->card = card;
128979 chip->pci = pci;
128980 chip->irq = -1;
128981 diff --git a/sound/soc/soc-ac97.c b/sound/soc/soc-ac97.c
128982 index 08d7259..0336224 100644
128983 --- a/sound/soc/soc-ac97.c
128984 +++ b/sound/soc/soc-ac97.c
128985 @@ -271,8 +271,10 @@ int snd_soc_set_ac97_ops_of_reset(struct snd_ac97_bus_ops *ops,
128986 if (ret)
128987 return ret;
128988
128989 - ops->warm_reset = snd_soc_ac97_warm_reset;
128990 - ops->reset = snd_soc_ac97_reset;
128991 + pax_open_kernel();
128992 + *(void **)&ops->warm_reset = snd_soc_ac97_warm_reset;
128993 + *(void **)&ops->reset = snd_soc_ac97_reset;
128994 + pax_close_kernel();
128995
128996 snd_ac97_rst_cfg = cfg;
128997 return 0;
128998 diff --git a/sound/soc/xtensa/xtfpga-i2s.c b/sound/soc/xtensa/xtfpga-i2s.c
128999 index 1cfb19e..6e5731a 100644
129000 --- a/sound/soc/xtensa/xtfpga-i2s.c
129001 +++ b/sound/soc/xtensa/xtfpga-i2s.c
129002 @@ -437,7 +437,7 @@ static int xtfpga_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
129003 case SNDRV_PCM_TRIGGER_START:
129004 case SNDRV_PCM_TRIGGER_RESUME:
129005 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
129006 - ACCESS_ONCE(i2s->tx_ptr) = 0;
129007 + ACCESS_ONCE_RW(i2s->tx_ptr) = 0;
129008 rcu_assign_pointer(i2s->tx_substream, substream);
129009 xtfpga_pcm_refill_fifo(i2s);
129010 break;
129011 diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
129012 index a020920..55579f6 100644
129013 --- a/sound/synth/emux/emux_seq.c
129014 +++ b/sound/synth/emux/emux_seq.c
129015 @@ -33,13 +33,13 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
129016 * MIDI emulation operators
129017 */
129018 static struct snd_midi_op emux_ops = {
129019 - snd_emux_note_on,
129020 - snd_emux_note_off,
129021 - snd_emux_key_press,
129022 - snd_emux_terminate_note,
129023 - snd_emux_control,
129024 - snd_emux_nrpn,
129025 - snd_emux_sysex,
129026 + .note_on = snd_emux_note_on,
129027 + .note_off = snd_emux_note_off,
129028 + .key_press = snd_emux_key_press,
129029 + .note_terminate = snd_emux_terminate_note,
129030 + .control = snd_emux_control,
129031 + .nrpn = snd_emux_nrpn,
129032 + .sysex = snd_emux_sysex,
129033 };
129034
129035
129036 diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c
129037 index 81b7da8..bb2676f 100644
129038 --- a/sound/usb/line6/driver.c
129039 +++ b/sound/usb/line6/driver.c
129040 @@ -307,7 +307,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
129041 {
129042 struct usb_device *usbdev = line6->usbdev;
129043 int ret;
129044 - unsigned char len;
129045 + unsigned char *plen;
129046 unsigned count;
129047
129048 if (address > 0xffff || datalen > 0xff)
129049 @@ -324,6 +324,10 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
129050 return ret;
129051 }
129052
129053 + plen = kmalloc(1, GFP_KERNEL);
129054 + if (plen == NULL)
129055 + return -ENOMEM;
129056 +
129057 /* Wait for data length. We'll get 0xff until length arrives. */
129058 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
129059 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
129060 @@ -331,30 +335,35 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
129061 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
129062 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
129063 USB_DIR_IN,
129064 - 0x0012, 0x0000, &len, 1,
129065 + 0x0012, 0x0000, plen, 1,
129066 LINE6_TIMEOUT * HZ);
129067 if (ret < 0) {
129068 dev_err(line6->ifcdev,
129069 "receive length failed (error %d)\n", ret);
129070 + kfree(plen);
129071 return ret;
129072 }
129073
129074 - if (len != 0xff)
129075 + if (*plen != 0xff)
129076 break;
129077 }
129078
129079 - if (len == 0xff) {
129080 + if (*plen == 0xff) {
129081 dev_err(line6->ifcdev, "read failed after %d retries\n",
129082 count);
129083 + kfree(plen);
129084 return -EIO;
129085 - } else if (len != datalen) {
129086 + } else if (*plen != datalen) {
129087 /* should be equal or something went wrong */
129088 dev_err(line6->ifcdev,
129089 "length mismatch (expected %d, got %d)\n",
129090 - (int)datalen, (int)len);
129091 + (int)datalen, (int)*plen);
129092 + kfree(plen);
129093 return -EIO;
129094 }
129095
129096 + kfree(plen);
129097 +
129098 /* receive the result: */
129099 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
129100 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
129101 @@ -378,7 +387,7 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
129102 {
129103 struct usb_device *usbdev = line6->usbdev;
129104 int ret;
129105 - unsigned char status;
129106 + unsigned char *status;
129107 int count;
129108
129109 if (address > 0xffff || datalen > 0xffff)
129110 @@ -395,6 +404,10 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
129111 return ret;
129112 }
129113
129114 + status = kmalloc(1, GFP_KERNEL);
129115 + if (status == NULL)
129116 + return -ENOMEM;
129117 +
129118 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
129119 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
129120
129121 @@ -403,27 +416,32 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
129122 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
129123 USB_DIR_IN,
129124 0x0012, 0x0000,
129125 - &status, 1, LINE6_TIMEOUT * HZ);
129126 + status, 1, LINE6_TIMEOUT * HZ);
129127
129128 if (ret < 0) {
129129 dev_err(line6->ifcdev,
129130 "receiving status failed (error %d)\n", ret);
129131 + kfree(status);
129132 return ret;
129133 }
129134
129135 - if (status != 0xff)
129136 + if (*status != 0xff)
129137 break;
129138 }
129139
129140 - if (status == 0xff) {
129141 + if (*status == 0xff) {
129142 dev_err(line6->ifcdev, "write failed after %d retries\n",
129143 count);
129144 + kfree(status);
129145 return -EIO;
129146 - } else if (status != 0) {
129147 + } else if (*status != 0) {
129148 dev_err(line6->ifcdev, "write failed (error %d)\n", ret);
129149 + kfree(status);
129150 return -EIO;
129151 }
129152
129153 + kfree(status);
129154 +
129155 return 0;
129156 }
129157 EXPORT_SYMBOL_GPL(line6_write_data);
129158 diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
129159 index 6d4c50c..aa658c8 100644
129160 --- a/sound/usb/line6/toneport.c
129161 +++ b/sound/usb/line6/toneport.c
129162 @@ -367,13 +367,19 @@ static bool toneport_has_source_select(struct usb_line6_toneport *toneport)
129163 */
129164 static void toneport_setup(struct usb_line6_toneport *toneport)
129165 {
129166 - int ticks;
129167 + int *ticks;
129168 struct usb_line6 *line6 = &toneport->line6;
129169 struct usb_device *usbdev = line6->usbdev;
129170
129171 + ticks = kmalloc(sizeof(int), GFP_KERNEL);
129172 + if (ticks == NULL)
129173 + return;
129174 +
129175 /* sync time on device with host: */
129176 - ticks = (int)get_seconds();
129177 - line6_write_data(line6, 0x80c6, &ticks, 4);
129178 + *ticks = (int)get_seconds();
129179 + line6_write_data(line6, 0x80c6, ticks, sizeof(int));
129180 +
129181 + kfree(ticks);
129182
129183 /* enable device: */
129184 toneport_send_cmd(usbdev, 0x0301, 0x0000);
129185 diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
129186 new file mode 100644
129187 index 0000000..de92ed9
129188 --- /dev/null
129189 +++ b/tools/gcc/.gitignore
129190 @@ -0,0 +1 @@
129191 +randomize_layout_seed.h
129192 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
129193 new file mode 100644
129194 index 0000000..4945d82
129195 --- /dev/null
129196 +++ b/tools/gcc/Makefile
129197 @@ -0,0 +1,54 @@
129198 +#CC := gcc
129199 +#PLUGIN_SOURCE_FILES := pax_plugin.c
129200 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
129201 +GCCPLUGINS_DIR := $(shell $(CC) -print-file-name=plugin)
129202 +#CFLAGS += -I$(GCCPLUGINS_DIR)/include -fPIC -O2 -Wall -W -std=gnu99
129203 +
129204 +ifeq ($(PLUGINCC),$(HOSTCC))
129205 +HOSTLIBS := hostlibs
129206 +HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(src) -std=gnu99 -ggdb
129207 +export HOST_EXTRACFLAGS
129208 +else
129209 +HOSTLIBS := hostcxxlibs
129210 +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
129211 +export HOST_EXTRACXXFLAGS
129212 +endif
129213 +
129214 +export GCCPLUGINS_DIR HOSTLIBS
129215 +
129216 +$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so
129217 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so
129218 +$(HOSTLIBS)-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so
129219 +$(HOSTLIBS)-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so
129220 +$(HOSTLIBS)-$(CONFIG_CHECKER_PLUGIN) += checker_plugin.so
129221 +$(HOSTLIBS)-y += colorize_plugin.so
129222 +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so
129223 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so
129224 +$(HOSTLIBS)-y += initify_plugin.so
129225 +$(HOSTLIBS)-$(CONFIG_GRKERNSEC_RANDSTRUCT) += randomize_layout_plugin.so
129226 +
129227 +subdir-$(CONFIG_PAX_SIZE_OVERFLOW) := size_overflow_plugin
129228 +subdir- += size_overflow_plugin
129229 +
129230 +always := $($(HOSTLIBS)-y)
129231 +
129232 +constify_plugin-objs := constify_plugin.o
129233 +stackleak_plugin-objs := stackleak_plugin.o
129234 +kallocstat_plugin-objs := kallocstat_plugin.o
129235 +kernexec_plugin-objs := kernexec_plugin.o
129236 +checker_plugin-objs := checker_plugin.o
129237 +colorize_plugin-objs := colorize_plugin.o
129238 +latent_entropy_plugin-objs := latent_entropy_plugin.o
129239 +structleak_plugin-objs := structleak_plugin.o
129240 +initify_plugin-objs := initify_plugin.o
129241 +randomize_layout_plugin-objs := randomize_layout_plugin.o
129242 +
129243 +$(obj)/randomize_layout_plugin.o: $(objtree)/$(obj)/randomize_layout_seed.h
129244 +
129245 +quiet_cmd_create_randomize_layout_seed = GENSEED $@
129246 + cmd_create_randomize_layout_seed = \
129247 + $(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
129248 +$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
129249 + $(call if_changed,create_randomize_layout_seed)
129250 +
129251 +targets += randomize_layout_seed.h randomize_layout_hash.h
129252 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
129253 new file mode 100644
129254 index 0000000..5452feea
129255 --- /dev/null
129256 +++ b/tools/gcc/checker_plugin.c
129257 @@ -0,0 +1,150 @@
129258 +/*
129259 + * Copyright 2011-2014 by the PaX Team <pageexec@freemail.hu>
129260 + * Licensed under the GPL v2
129261 + *
129262 + * Note: the choice of the license means that the compilation process is
129263 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
129264 + * but for the kernel it doesn't matter since it doesn't link against
129265 + * any of the gcc libraries
129266 + *
129267 + * gcc plugin to implement various sparse (source code checker) features
129268 + *
129269 + * TODO:
129270 + * - define separate __iomem, __percpu and __rcu address spaces (lots of code to patch)
129271 + *
129272 + * BUGS:
129273 + * - none known
129274 + */
129275 +
129276 +#include "gcc-common.h"
129277 +
129278 +extern void c_register_addr_space (const char *str, addr_space_t as);
129279 +extern enum machine_mode default_addr_space_pointer_mode (addr_space_t);
129280 +extern enum machine_mode default_addr_space_address_mode (addr_space_t);
129281 +extern bool default_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as);
129282 +extern bool default_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as);
129283 +extern rtx default_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as);
129284 +
129285 +int plugin_is_GPL_compatible;
129286 +
129287 +static struct plugin_info checker_plugin_info = {
129288 + .version = "201304082245",
129289 + .help = NULL,
129290 +};
129291 +
129292 +#define ADDR_SPACE_KERNEL 0
129293 +#define ADDR_SPACE_FORCE_KERNEL 1
129294 +#define ADDR_SPACE_USER 2
129295 +#define ADDR_SPACE_FORCE_USER 3
129296 +#define ADDR_SPACE_IOMEM 0
129297 +#define ADDR_SPACE_FORCE_IOMEM 0
129298 +#define ADDR_SPACE_PERCPU 0
129299 +#define ADDR_SPACE_FORCE_PERCPU 0
129300 +#define ADDR_SPACE_RCU 0
129301 +#define ADDR_SPACE_FORCE_RCU 0
129302 +
129303 +static enum machine_mode checker_addr_space_pointer_mode(addr_space_t addrspace)
129304 +{
129305 + return default_addr_space_pointer_mode(ADDR_SPACE_GENERIC);
129306 +}
129307 +
129308 +static enum machine_mode checker_addr_space_address_mode(addr_space_t addrspace)
129309 +{
129310 + return default_addr_space_address_mode(ADDR_SPACE_GENERIC);
129311 +}
129312 +
129313 +static bool checker_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as)
129314 +{
129315 + return default_addr_space_valid_pointer_mode(mode, as);
129316 +}
129317 +
129318 +static bool checker_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as)
129319 +{
129320 + return default_addr_space_legitimate_address_p(mode, mem, strict, ADDR_SPACE_GENERIC);
129321 +}
129322 +
129323 +static rtx checker_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as)
129324 +{
129325 + return default_addr_space_legitimize_address(x, oldx, mode, as);
129326 +}
129327 +
129328 +static bool checker_addr_space_subset_p(addr_space_t subset, addr_space_t superset)
129329 +{
129330 + if (subset == ADDR_SPACE_FORCE_KERNEL && superset == ADDR_SPACE_KERNEL)
129331 + return true;
129332 +
129333 + if (subset == ADDR_SPACE_FORCE_USER && superset == ADDR_SPACE_USER)
129334 + return true;
129335 +
129336 + if (subset == ADDR_SPACE_FORCE_IOMEM && superset == ADDR_SPACE_IOMEM)
129337 + return true;
129338 +
129339 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_USER)
129340 + return true;
129341 +
129342 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_IOMEM)
129343 + return true;
129344 +
129345 + if (subset == ADDR_SPACE_USER && superset == ADDR_SPACE_FORCE_KERNEL)
129346 + return true;
129347 +
129348 + if (subset == ADDR_SPACE_IOMEM && superset == ADDR_SPACE_FORCE_KERNEL)
129349 + return true;
129350 +
129351 + return subset == superset;
129352 +}
129353 +
129354 +static rtx checker_addr_space_convert(rtx op, tree from_type, tree to_type)
129355 +{
129356 +// addr_space_t from_as = TYPE_ADDR_SPACE(TREE_TYPE(from_type));
129357 +// addr_space_t to_as = TYPE_ADDR_SPACE(TREE_TYPE(to_type));
129358 +
129359 + return op;
129360 +}
129361 +
129362 +static void register_checker_address_spaces(void *event_data, void *data)
129363 +{
129364 + c_register_addr_space("__kernel", ADDR_SPACE_KERNEL);
129365 + c_register_addr_space("__force_kernel", ADDR_SPACE_FORCE_KERNEL);
129366 + c_register_addr_space("__user", ADDR_SPACE_USER);
129367 + c_register_addr_space("__force_user", ADDR_SPACE_FORCE_USER);
129368 +// c_register_addr_space("__iomem", ADDR_SPACE_IOMEM);
129369 +// c_register_addr_space("__force_iomem", ADDR_SPACE_FORCE_IOMEM);
129370 +// c_register_addr_space("__percpu", ADDR_SPACE_PERCPU);
129371 +// c_register_addr_space("__force_percpu", ADDR_SPACE_FORCE_PERCPU);
129372 +// c_register_addr_space("__rcu", ADDR_SPACE_RCU);
129373 +// c_register_addr_space("__force_rcu", ADDR_SPACE_FORCE_RCU);
129374 +
129375 + targetm.addr_space.pointer_mode = checker_addr_space_pointer_mode;
129376 + targetm.addr_space.address_mode = checker_addr_space_address_mode;
129377 + targetm.addr_space.valid_pointer_mode = checker_addr_space_valid_pointer_mode;
129378 + targetm.addr_space.legitimate_address_p = checker_addr_space_legitimate_address_p;
129379 +// targetm.addr_space.legitimize_address = checker_addr_space_legitimize_address;
129380 + targetm.addr_space.subset_p = checker_addr_space_subset_p;
129381 + targetm.addr_space.convert = checker_addr_space_convert;
129382 +}
129383 +
129384 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
129385 +{
129386 + const char * const plugin_name = plugin_info->base_name;
129387 + const int argc = plugin_info->argc;
129388 + const struct plugin_argument * const argv = plugin_info->argv;
129389 + int i;
129390 +
129391 + if (!plugin_default_version_check(version, &gcc_version)) {
129392 + error(G_("incompatible gcc/plugin versions"));
129393 + return 1;
129394 + }
129395 +
129396 + register_callback(plugin_name, PLUGIN_INFO, NULL, &checker_plugin_info);
129397 +
129398 + for (i = 0; i < argc; ++i)
129399 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
129400 +
129401 + if (TARGET_64BIT == 0)
129402 + return 0;
129403 +
129404 + register_callback(plugin_name, PLUGIN_PRAGMAS, register_checker_address_spaces, NULL);
129405 +
129406 + return 0;
129407 +}
129408 diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
129409 new file mode 100644
129410 index 0000000..0c96d8a
129411 --- /dev/null
129412 +++ b/tools/gcc/colorize_plugin.c
129413 @@ -0,0 +1,215 @@
129414 +/*
129415 + * Copyright 2012-2015 by PaX Team <pageexec@freemail.hu>
129416 + * Licensed under the GPL v2
129417 + *
129418 + * Note: the choice of the license means that the compilation process is
129419 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
129420 + * but for the kernel it doesn't matter since it doesn't link against
129421 + * any of the gcc libraries
129422 + *
129423 + * gcc plugin to colorize diagnostic output
129424 + *
129425 + */
129426 +
129427 +#include "gcc-common.h"
129428 +
129429 +int plugin_is_GPL_compatible;
129430 +
129431 +static struct plugin_info colorize_plugin_info = {
129432 + .version = "201404202350",
129433 + .help = "color=[never|always|auto]\tdetermine when to colorize\n",
129434 +};
129435 +
129436 +#define GREEN "\033[32m\033[K"
129437 +#define LIGHTGREEN "\033[1;32m\033[K"
129438 +#define YELLOW "\033[33m\033[K"
129439 +#define LIGHTYELLOW "\033[1;33m\033[K"
129440 +#define RED "\033[31m\033[K"
129441 +#define LIGHTRED "\033[1;31m\033[K"
129442 +#define BLUE "\033[34m\033[K"
129443 +#define LIGHTBLUE "\033[1;34m\033[K"
129444 +#define BRIGHT "\033[1;m\033[K"
129445 +#define NORMAL "\033[m\033[K"
129446 +
129447 +static diagnostic_starter_fn old_starter;
129448 +static diagnostic_finalizer_fn old_finalizer;
129449 +
129450 +static void start_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
129451 +{
129452 + const char *color;
129453 + char *newprefix;
129454 +
129455 + switch (diagnostic->kind) {
129456 + case DK_NOTE:
129457 + color = LIGHTBLUE;
129458 + break;
129459 +
129460 + case DK_PEDWARN:
129461 + case DK_WARNING:
129462 + color = LIGHTYELLOW;
129463 + break;
129464 +
129465 + case DK_ERROR:
129466 + case DK_FATAL:
129467 + case DK_ICE:
129468 + case DK_PERMERROR:
129469 + case DK_SORRY:
129470 + color = LIGHTRED;
129471 + break;
129472 +
129473 + default:
129474 + color = NORMAL;
129475 + }
129476 +
129477 + old_starter(context, diagnostic);
129478 + if (-1 == asprintf(&newprefix, "%s%s" NORMAL, color, context->printer->prefix))
129479 + return;
129480 + pp_destroy_prefix(context->printer);
129481 + pp_set_prefix(context->printer, newprefix);
129482 +}
129483 +
129484 +static void finalize_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
129485 +{
129486 + old_finalizer(context, diagnostic);
129487 +}
129488 +
129489 +static void colorize_arm(void)
129490 +{
129491 + old_starter = diagnostic_starter(global_dc);
129492 + old_finalizer = diagnostic_finalizer(global_dc);
129493 +
129494 + diagnostic_starter(global_dc) = start_colorize;
129495 + diagnostic_finalizer(global_dc) = finalize_colorize;
129496 +}
129497 +
129498 +static unsigned int execute_colorize_rearm(void)
129499 +{
129500 + if (diagnostic_starter(global_dc) == start_colorize)
129501 + return 0;
129502 +
129503 + colorize_arm();
129504 + return 0;
129505 +}
129506 +
129507 +#if BUILDING_GCC_VERSION >= 4009
129508 +namespace {
129509 +static const struct pass_data colorize_rearm_pass_data = {
129510 +#else
129511 +struct simple_ipa_opt_pass colorize_rearm_pass = {
129512 + .pass = {
129513 +#endif
129514 + .type = SIMPLE_IPA_PASS,
129515 + .name = "colorize_rearm",
129516 +#if BUILDING_GCC_VERSION >= 4008
129517 + .optinfo_flags = OPTGROUP_NONE,
129518 +#endif
129519 +#if BUILDING_GCC_VERSION >= 5000
129520 +#elif BUILDING_GCC_VERSION == 4009
129521 + .has_gate = false,
129522 + .has_execute = true,
129523 +#else
129524 + .gate = NULL,
129525 + .execute = execute_colorize_rearm,
129526 + .sub = NULL,
129527 + .next = NULL,
129528 + .static_pass_number = 0,
129529 +#endif
129530 + .tv_id = TV_NONE,
129531 + .properties_required = 0,
129532 + .properties_provided = 0,
129533 + .properties_destroyed = 0,
129534 + .todo_flags_start = 0,
129535 + .todo_flags_finish = 0
129536 +#if BUILDING_GCC_VERSION < 4009
129537 + }
129538 +#endif
129539 +};
129540 +
129541 +#if BUILDING_GCC_VERSION >= 4009
129542 +class colorize_rearm_pass : public simple_ipa_opt_pass {
129543 +public:
129544 + colorize_rearm_pass() : simple_ipa_opt_pass(colorize_rearm_pass_data, g) {}
129545 +#if BUILDING_GCC_VERSION >= 5000
129546 + virtual unsigned int execute(function *) { return execute_colorize_rearm(); }
129547 +#else
129548 + unsigned int execute() { return execute_colorize_rearm(); }
129549 +#endif
129550 +};
129551 +}
129552 +
129553 +static opt_pass *make_colorize_rearm_pass(void)
129554 +{
129555 + return new colorize_rearm_pass();
129556 +}
129557 +#else
129558 +static struct opt_pass *make_colorize_rearm_pass(void)
129559 +{
129560 + return &colorize_rearm_pass.pass;
129561 +}
129562 +#endif
129563 +
129564 +static void colorize_start_unit(void *gcc_data, void *user_data)
129565 +{
129566 + colorize_arm();
129567 +}
129568 +
129569 +static bool should_colorize(void)
129570 +{
129571 +#if BUILDING_GCC_VERSION >= 4009
129572 + return false;
129573 +#else
129574 + char const *t = getenv("TERM");
129575 +
129576 + return t && strcmp(t, "dumb") && isatty(STDERR_FILENO);
129577 +#endif
129578 +}
129579 +
129580 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
129581 +{
129582 + const char * const plugin_name = plugin_info->base_name;
129583 + const int argc = plugin_info->argc;
129584 + const struct plugin_argument * const argv = plugin_info->argv;
129585 + int i;
129586 + struct register_pass_info colorize_rearm_pass_info;
129587 + bool colorize;
129588 +
129589 + colorize_rearm_pass_info.pass = make_colorize_rearm_pass();
129590 + colorize_rearm_pass_info.reference_pass_name = "*free_lang_data";
129591 + colorize_rearm_pass_info.ref_pass_instance_number = 1;
129592 + colorize_rearm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
129593 +
129594 + if (!plugin_default_version_check(version, &gcc_version)) {
129595 + error(G_("incompatible gcc/plugin versions"));
129596 + return 1;
129597 + }
129598 +
129599 + register_callback(plugin_name, PLUGIN_INFO, NULL, &colorize_plugin_info);
129600 +
129601 + colorize = getenv("GCC_COLORS") ? should_colorize() : false;
129602 +
129603 + for (i = 0; i < argc; ++i) {
129604 + if (!strcmp(argv[i].key, "color")) {
129605 + if (!argv[i].value) {
129606 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
129607 + continue;
129608 + }
129609 + if (!strcmp(argv[i].value, "always"))
129610 + colorize = true;
129611 + else if (!strcmp(argv[i].value, "never"))
129612 + colorize = false;
129613 + else if (!strcmp(argv[i].value, "auto"))
129614 + colorize = should_colorize();
129615 + else
129616 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
129617 + continue;
129618 + }
129619 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
129620 + }
129621 +
129622 + if (colorize) {
129623 + // TODO: parse GCC_COLORS as used by gcc 4.9+
129624 + register_callback(plugin_name, PLUGIN_START_UNIT, &colorize_start_unit, NULL);
129625 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &colorize_rearm_pass_info);
129626 + }
129627 + return 0;
129628 +}
129629 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
129630 new file mode 100644
129631 index 0000000..0b98f34
129632 --- /dev/null
129633 +++ b/tools/gcc/constify_plugin.c
129634 @@ -0,0 +1,571 @@
129635 +/*
129636 + * Copyright 2011 by Emese Revfy <re.emese@gmail.com>
129637 + * Copyright 2011-2015 by PaX Team <pageexec@freemail.hu>
129638 + * Licensed under the GPL v2, or (at your option) v3
129639 + *
129640 + * This gcc plugin constifies all structures which contain only function pointers or are explicitly marked for constification.
129641 + *
129642 + * Homepage:
129643 + * http://www.grsecurity.net/~ephox/const_plugin/
129644 + *
129645 + * Usage:
129646 + * $ gcc -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -o constify_plugin.so constify_plugin.c
129647 + * $ gcc -fplugin=constify_plugin.so test.c -O2
129648 + */
129649 +
129650 +#include "gcc-common.h"
129651 +
129652 +// unused C type flag in all versions 4.5-6
129653 +#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE)
129654 +
129655 +int plugin_is_GPL_compatible;
129656 +
129657 +static bool constify = true;
129658 +
129659 +static struct plugin_info const_plugin_info = {
129660 + .version = "201511290250",
129661 + .help = "no-constify\tturn off constification\n",
129662 +};
129663 +
129664 +typedef struct {
129665 + bool has_fptr_field;
129666 + bool has_writable_field;
129667 + bool has_do_const_field;
129668 + bool has_no_const_field;
129669 +} constify_info;
129670 +
129671 +static const_tree get_field_type(const_tree field)
129672 +{
129673 + return strip_array_types(TREE_TYPE(field));
129674 +}
129675 +
129676 +static bool is_fptr(const_tree field)
129677 +{
129678 + const_tree ptr = get_field_type(field);
129679 +
129680 + if (TREE_CODE(ptr) != POINTER_TYPE)
129681 + return false;
129682 +
129683 + return TREE_CODE(TREE_TYPE(ptr)) == FUNCTION_TYPE;
129684 +}
129685 +
129686 +/*
129687 + * determine whether the given structure type meets the requirements for automatic constification,
129688 + * including the constification attributes on nested structure types
129689 + */
129690 +static void constifiable(const_tree node, constify_info *cinfo)
129691 +{
129692 + const_tree field;
129693 +
129694 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
129695 +
129696 + // e.g., pointer to structure fields while still constructing the structure type
129697 + if (TYPE_FIELDS(node) == NULL_TREE)
129698 + return;
129699 +
129700 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
129701 + const_tree type = get_field_type(field);
129702 + enum tree_code code = TREE_CODE(type);
129703 +
129704 + if (node == type)
129705 + continue;
129706 +
129707 + if (is_fptr(field))
129708 + cinfo->has_fptr_field = true;
129709 + else if (code == RECORD_TYPE || code == UNION_TYPE) {
129710 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
129711 + cinfo->has_do_const_field = true;
129712 + else if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type)))
129713 + cinfo->has_no_const_field = true;
129714 + else
129715 + constifiable(type, cinfo);
129716 + } else if (!TREE_READONLY(field))
129717 + cinfo->has_writable_field = true;
129718 + }
129719 +}
129720 +
129721 +static bool constified(const_tree node)
129722 +{
129723 + constify_info cinfo = {
129724 + .has_fptr_field = false,
129725 + .has_writable_field = false,
129726 + .has_do_const_field = false,
129727 + .has_no_const_field = false
129728 + };
129729 +
129730 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
129731 +
129732 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
129733 +// gcc_assert(!TYPE_READONLY(node));
129734 + return false;
129735 + }
129736 +
129737 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(node))) {
129738 + gcc_assert(TYPE_READONLY(node));
129739 + return true;
129740 + }
129741 +
129742 + constifiable(node, &cinfo);
129743 + if ((!cinfo.has_fptr_field || cinfo.has_writable_field || cinfo.has_no_const_field) && !cinfo.has_do_const_field)
129744 + return false;
129745 +
129746 + return TYPE_READONLY(node);
129747 +}
129748 +
129749 +static void deconstify_tree(tree node);
129750 +
129751 +static void deconstify_type(tree type)
129752 +{
129753 + tree field;
129754 +
129755 + gcc_assert(TREE_CODE(type) == RECORD_TYPE || TREE_CODE(type) == UNION_TYPE);
129756 +
129757 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
129758 + const_tree fieldtype = get_field_type(field);
129759 +
129760 + // special case handling of simple ptr-to-same-array-type members
129761 + if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) {
129762 + tree ptrtype = TREE_TYPE(TREE_TYPE(field));
129763 +
129764 + if (TREE_TYPE(TREE_TYPE(field)) == type)
129765 + continue;
129766 + if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE)
129767 + continue;
129768 + if (!constified(ptrtype))
129769 + continue;
129770 + if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) {
129771 + TREE_TYPE(field) = copy_node(TREE_TYPE(field));
129772 + TREE_TYPE(TREE_TYPE(field)) = build_qualified_type(type, TYPE_QUALS(ptrtype) & ~TYPE_QUAL_CONST);
129773 + }
129774 + continue;
129775 + }
129776 + if (TREE_CODE(fieldtype) != RECORD_TYPE && TREE_CODE(fieldtype) != UNION_TYPE)
129777 + continue;
129778 + if (!constified(fieldtype))
129779 + continue;
129780 +
129781 + deconstify_tree(field);
129782 + TREE_READONLY(field) = 0;
129783 + }
129784 + TYPE_READONLY(type) = 0;
129785 + C_TYPE_FIELDS_READONLY(type) = 0;
129786 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
129787 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
129788 + TYPE_ATTRIBUTES(type) = remove_attribute("do_const", TYPE_ATTRIBUTES(type));
129789 + }
129790 +}
129791 +
129792 +static void deconstify_tree(tree node)
129793 +{
129794 + tree old_type, new_type, field;
129795 +
129796 + old_type = TREE_TYPE(node);
129797 + while (TREE_CODE(old_type) == ARRAY_TYPE && TREE_CODE(TREE_TYPE(old_type)) != ARRAY_TYPE) {
129798 + node = TREE_TYPE(node) = copy_node(old_type);
129799 + old_type = TREE_TYPE(old_type);
129800 + }
129801 +
129802 + gcc_assert(TREE_CODE(old_type) == RECORD_TYPE || TREE_CODE(old_type) == UNION_TYPE);
129803 + gcc_assert(TYPE_READONLY(old_type) && (TYPE_QUALS(old_type) & TYPE_QUAL_CONST));
129804 +
129805 + new_type = build_qualified_type(old_type, TYPE_QUALS(old_type) & ~TYPE_QUAL_CONST);
129806 + TYPE_FIELDS(new_type) = copy_list(TYPE_FIELDS(new_type));
129807 + for (field = TYPE_FIELDS(new_type); field; field = TREE_CHAIN(field))
129808 + DECL_FIELD_CONTEXT(field) = new_type;
129809 +
129810 + deconstify_type(new_type);
129811 +
129812 + TREE_TYPE(node) = new_type;
129813 +}
129814 +
129815 +static tree handle_no_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
129816 +{
129817 + tree type;
129818 + constify_info cinfo = {
129819 + .has_fptr_field = false,
129820 + .has_writable_field = false,
129821 + .has_do_const_field = false,
129822 + .has_no_const_field = false
129823 + };
129824 +
129825 + *no_add_attrs = true;
129826 + if (TREE_CODE(*node) == FUNCTION_DECL) {
129827 + error("%qE attribute does not apply to functions (%qF)", name, *node);
129828 + return NULL_TREE;
129829 + }
129830 +
129831 + if (TREE_CODE(*node) == PARM_DECL) {
129832 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
129833 + return NULL_TREE;
129834 + }
129835 +
129836 + if (TREE_CODE(*node) == VAR_DECL) {
129837 + error("%qE attribute does not apply to variables (%qD)", name, *node);
129838 + return NULL_TREE;
129839 + }
129840 +
129841 + if (TYPE_P(*node)) {
129842 + type = *node;
129843 + } else {
129844 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
129845 + type = TREE_TYPE(*node);
129846 + }
129847 +
129848 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) {
129849 + error("%qE attribute used on %qT applies to struct and union types only", name, type);
129850 + return NULL_TREE;
129851 + }
129852 +
129853 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
129854 + error("%qE attribute is already applied to the type %qT", name, type);
129855 + return NULL_TREE;
129856 + }
129857 +
129858 + if (TYPE_P(*node)) {
129859 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
129860 + error("%qE attribute used on type %qT is incompatible with 'do_const'", name, type);
129861 + else
129862 + *no_add_attrs = false;
129863 + return NULL_TREE;
129864 + }
129865 +
129866 + constifiable(type, &cinfo);
129867 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) || lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
129868 + if (constify) {
129869 + if TYPE_P(*node)
129870 + deconstify_type(*node);
129871 + else
129872 + deconstify_tree(*node);
129873 + }
129874 + if (TYPE_P(*node))
129875 + TYPE_CONSTIFY_VISITED(*node) = 1;
129876 + else
129877 + TYPE_CONSTIFY_VISITED(TREE_TYPE(*node)) = 1;
129878 + return NULL_TREE;
129879 + }
129880 +
129881 + if (constify && TYPE_FIELDS(type))
129882 + error("%qE attribute used on type %qT that is not constified", name, type);
129883 + return NULL_TREE;
129884 +}
129885 +
129886 +static void constify_type(tree type)
129887 +{
129888 + TYPE_READONLY(type) = 1;
129889 + C_TYPE_FIELDS_READONLY(type) = 1;
129890 + TYPE_CONSTIFY_VISITED(type) = 1;
129891 +// TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
129892 +// TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("do_const"), NULL_TREE, TYPE_ATTRIBUTES(type));
129893 +}
129894 +
129895 +static tree handle_do_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
129896 +{
129897 + *no_add_attrs = true;
129898 + if (!TYPE_P(*node)) {
129899 + error("%qE attribute applies to types only (%qD)", name, *node);
129900 + return NULL_TREE;
129901 + }
129902 +
129903 + if (TREE_CODE(*node) != RECORD_TYPE && TREE_CODE(*node) != UNION_TYPE) {
129904 + error("%qE attribute used on %qT applies to struct and union types only", name, *node);
129905 + return NULL_TREE;
129906 + }
129907 +
129908 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(*node))) {
129909 + error("%qE attribute used on %qT is already applied to the type", name, *node);
129910 + return NULL_TREE;
129911 + }
129912 +
129913 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(*node))) {
129914 + error("%qE attribute used on %qT is incompatible with 'no_const'", name, *node);
129915 + return NULL_TREE;
129916 + }
129917 +
129918 + *no_add_attrs = false;
129919 + return NULL_TREE;
129920 +}
129921 +
129922 +static struct attribute_spec no_const_attr = {
129923 + .name = "no_const",
129924 + .min_length = 0,
129925 + .max_length = 0,
129926 + .decl_required = false,
129927 + .type_required = false,
129928 + .function_type_required = false,
129929 + .handler = handle_no_const_attribute,
129930 +#if BUILDING_GCC_VERSION >= 4007
129931 + .affects_type_identity = true
129932 +#endif
129933 +};
129934 +
129935 +static struct attribute_spec do_const_attr = {
129936 + .name = "do_const",
129937 + .min_length = 0,
129938 + .max_length = 0,
129939 + .decl_required = false,
129940 + .type_required = false,
129941 + .function_type_required = false,
129942 + .handler = handle_do_const_attribute,
129943 +#if BUILDING_GCC_VERSION >= 4007
129944 + .affects_type_identity = true
129945 +#endif
129946 +};
129947 +
129948 +static void register_attributes(void *event_data, void *data)
129949 +{
129950 + register_attribute(&no_const_attr);
129951 + register_attribute(&do_const_attr);
129952 +}
129953 +
129954 +static void finish_type(void *event_data, void *data)
129955 +{
129956 + tree type = (tree)event_data;
129957 + constify_info cinfo = {
129958 + .has_fptr_field = false,
129959 + .has_writable_field = false,
129960 + .has_do_const_field = false,
129961 + .has_no_const_field = false
129962 + };
129963 +
129964 + if (type == NULL_TREE || type == error_mark_node)
129965 + return;
129966 +
129967 +#if BUILDING_GCC_VERSION >= 5000
129968 + if (TREE_CODE(type) == ENUMERAL_TYPE)
129969 + return;
129970 +#endif
129971 +
129972 + if (TYPE_FIELDS(type) == NULL_TREE || TYPE_CONSTIFY_VISITED(type))
129973 + return;
129974 +
129975 + constifiable(type, &cinfo);
129976 +
129977 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) {
129978 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) || cinfo.has_do_const_field) {
129979 + deconstify_type(type);
129980 + TYPE_CONSTIFY_VISITED(type) = 1;
129981 + } else
129982 + error("'no_const' attribute used on type %qT that is not constified", type);
129983 + return;
129984 + }
129985 +
129986 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
129987 + if (!cinfo.has_writable_field && !cinfo.has_no_const_field) {
129988 + error("'do_const' attribute used on type %qT that is%sconstified", type, cinfo.has_fptr_field ? " " : " not ");
129989 + return;
129990 + }
129991 + constify_type(type);
129992 + return;
129993 + }
129994 +
129995 + if (cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) {
129996 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
129997 + error("'do_const' attribute used on type %qT that is constified", type);
129998 + return;
129999 + }
130000 + constify_type(type);
130001 + return;
130002 + }
130003 +
130004 + deconstify_type(type);
130005 + TYPE_CONSTIFY_VISITED(type) = 1;
130006 +}
130007 +
130008 +static void check_global_variables(void *event_data, void *data)
130009 +{
130010 + varpool_node_ptr node;
130011 +
130012 + FOR_EACH_VARIABLE(node) {
130013 + tree var = NODE_DECL(node);
130014 + tree type = TREE_TYPE(var);
130015 +
130016 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
130017 + continue;
130018 +
130019 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
130020 + continue;
130021 +
130022 + if (!TYPE_CONSTIFY_VISITED(type))
130023 + continue;
130024 +
130025 + if (DECL_EXTERNAL(var))
130026 + continue;
130027 +
130028 + if (DECL_INITIAL(var))
130029 + continue;
130030 +
130031 + // this works around a gcc bug/feature where uninitialized globals
130032 + // are moved into the .bss section regardless of any constification
130033 + DECL_INITIAL(var) = build_constructor(type, NULL);
130034 +// inform(DECL_SOURCE_LOCATION(var), "constified variable %qE moved into .rodata", var);
130035 + }
130036 +}
130037 +
130038 +static unsigned int check_local_variables(void)
130039 +{
130040 + unsigned int ret = 0;
130041 + tree var;
130042 +
130043 + unsigned int i;
130044 +
130045 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
130046 + tree type = TREE_TYPE(var);
130047 +
130048 + gcc_assert(DECL_P(var));
130049 + if (is_global_var(var))
130050 + continue;
130051 +
130052 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
130053 + continue;
130054 +
130055 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
130056 + continue;
130057 +
130058 + if (!TYPE_CONSTIFY_VISITED(type))
130059 + continue;
130060 +
130061 + error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var);
130062 + ret = 1;
130063 + }
130064 + return ret;
130065 +}
130066 +
130067 +#if BUILDING_GCC_VERSION >= 4009
130068 +namespace {
130069 +static const struct pass_data check_local_variables_pass_data = {
130070 +#else
130071 +static struct gimple_opt_pass check_local_variables_pass = {
130072 + .pass = {
130073 +#endif
130074 + .type = GIMPLE_PASS,
130075 + .name = "check_local_variables",
130076 +#if BUILDING_GCC_VERSION >= 4008
130077 + .optinfo_flags = OPTGROUP_NONE,
130078 +#endif
130079 +#if BUILDING_GCC_VERSION >= 5000
130080 +#elif BUILDING_GCC_VERSION == 4009
130081 + .has_gate = false,
130082 + .has_execute = true,
130083 +#else
130084 + .gate = NULL,
130085 + .execute = check_local_variables,
130086 + .sub = NULL,
130087 + .next = NULL,
130088 + .static_pass_number = 0,
130089 +#endif
130090 + .tv_id = TV_NONE,
130091 + .properties_required = 0,
130092 + .properties_provided = 0,
130093 + .properties_destroyed = 0,
130094 + .todo_flags_start = 0,
130095 + .todo_flags_finish = 0
130096 +#if BUILDING_GCC_VERSION < 4009
130097 + }
130098 +#endif
130099 +};
130100 +
130101 +#if BUILDING_GCC_VERSION >= 4009
130102 +class check_local_variables_pass : public gimple_opt_pass {
130103 +public:
130104 + check_local_variables_pass() : gimple_opt_pass(check_local_variables_pass_data, g) {}
130105 +#if BUILDING_GCC_VERSION >= 5000
130106 + virtual unsigned int execute(function *) { return check_local_variables(); }
130107 +#else
130108 + unsigned int execute() { return check_local_variables(); }
130109 +#endif
130110 +};
130111 +}
130112 +
130113 +static opt_pass *make_check_local_variables_pass(void)
130114 +{
130115 + return new check_local_variables_pass();
130116 +}
130117 +#else
130118 +static struct opt_pass *make_check_local_variables_pass(void)
130119 +{
130120 + return &check_local_variables_pass.pass;
130121 +}
130122 +#endif
130123 +
130124 +static struct {
130125 + const char *name;
130126 + const char *asm_op;
130127 +} sections[] = {
130128 + {".init.rodata", "\t.section\t.init.rodata,\"a\""},
130129 + {".ref.rodata", "\t.section\t.ref.rodata,\"a\""},
130130 + {".devinit.rodata", "\t.section\t.devinit.rodata,\"a\""},
130131 + {".devexit.rodata", "\t.section\t.devexit.rodata,\"a\""},
130132 + {".cpuinit.rodata", "\t.section\t.cpuinit.rodata,\"a\""},
130133 + {".cpuexit.rodata", "\t.section\t.cpuexit.rodata,\"a\""},
130134 + {".meminit.rodata", "\t.section\t.meminit.rodata,\"a\""},
130135 + {".memexit.rodata", "\t.section\t.memexit.rodata,\"a\""},
130136 + {".data..read_only", "\t.section\t.data..read_only,\"a\""},
130137 +};
130138 +
130139 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
130140 +
130141 +static unsigned int constify_section_type_flags(tree decl, const char *name, int reloc)
130142 +{
130143 + size_t i;
130144 +
130145 + for (i = 0; i < ARRAY_SIZE(sections); i++)
130146 + if (!strcmp(sections[i].name, name))
130147 + return 0;
130148 + return old_section_type_flags(decl, name, reloc);
130149 +}
130150 +
130151 +static void constify_start_unit(void *gcc_data, void *user_data)
130152 +{
130153 +// size_t i;
130154 +
130155 +// for (i = 0; i < ARRAY_SIZE(sections); i++)
130156 +// sections[i].section = get_unnamed_section(0, output_section_asm_op, sections[i].asm_op);
130157 +// sections[i].section = get_section(sections[i].name, 0, NULL);
130158 +
130159 + old_section_type_flags = targetm.section_type_flags;
130160 + targetm.section_type_flags = constify_section_type_flags;
130161 +}
130162 +
130163 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130164 +{
130165 + const char * const plugin_name = plugin_info->base_name;
130166 + const int argc = plugin_info->argc;
130167 + const struct plugin_argument * const argv = plugin_info->argv;
130168 + int i;
130169 +
130170 + struct register_pass_info check_local_variables_pass_info;
130171 +
130172 + check_local_variables_pass_info.pass = make_check_local_variables_pass();
130173 + check_local_variables_pass_info.reference_pass_name = "ssa";
130174 + check_local_variables_pass_info.ref_pass_instance_number = 1;
130175 + check_local_variables_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
130176 +
130177 + if (!plugin_default_version_check(version, &gcc_version)) {
130178 + error(G_("incompatible gcc/plugin versions"));
130179 + return 1;
130180 + }
130181 +
130182 + for (i = 0; i < argc; ++i) {
130183 + if (!(strcmp(argv[i].key, "no-constify"))) {
130184 + constify = false;
130185 + continue;
130186 + }
130187 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
130188 + }
130189 +
130190 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
130191 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
130192 + constify = false;
130193 + }
130194 +
130195 + register_callback(plugin_name, PLUGIN_INFO, NULL, &const_plugin_info);
130196 + if (constify) {
130197 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
130198 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
130199 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &check_local_variables_pass_info);
130200 + register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL);
130201 + }
130202 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
130203 +
130204 + return 0;
130205 +}
130206 diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
130207 new file mode 100644
130208 index 0000000..2ec0551
130209 --- /dev/null
130210 +++ b/tools/gcc/gcc-common.h
130211 @@ -0,0 +1,812 @@
130212 +#ifndef GCC_COMMON_H_INCLUDED
130213 +#define GCC_COMMON_H_INCLUDED
130214 +
130215 +#include "bversion.h"
130216 +#if BUILDING_GCC_VERSION >= 6000
130217 +#include "gcc-plugin.h"
130218 +#else
130219 +#include "plugin.h"
130220 +#endif
130221 +#include "plugin-version.h"
130222 +#include "config.h"
130223 +#include "system.h"
130224 +#include "coretypes.h"
130225 +#include "tm.h"
130226 +#include "line-map.h"
130227 +#include "input.h"
130228 +#include "tree.h"
130229 +
130230 +#include "tree-inline.h"
130231 +#include "version.h"
130232 +#include "rtl.h"
130233 +#include "tm_p.h"
130234 +#include "flags.h"
130235 +//#include "insn-attr.h"
130236 +//#include "insn-config.h"
130237 +//#include "insn-flags.h"
130238 +#include "hard-reg-set.h"
130239 +//#include "recog.h"
130240 +#include "output.h"
130241 +#include "except.h"
130242 +#include "function.h"
130243 +#include "toplev.h"
130244 +//#include "expr.h"
130245 +#include "basic-block.h"
130246 +#include "intl.h"
130247 +#include "ggc.h"
130248 +//#include "regs.h"
130249 +#include "timevar.h"
130250 +
130251 +#include "params.h"
130252 +
130253 +#if BUILDING_GCC_VERSION <= 4009
130254 +#include "pointer-set.h"
130255 +#else
130256 +#include "hash-map.h"
130257 +#endif
130258 +
130259 +#include "emit-rtl.h"
130260 +//#include "reload.h"
130261 +//#include "ira.h"
130262 +//#include "dwarf2asm.h"
130263 +#include "debug.h"
130264 +#include "target.h"
130265 +#include "langhooks.h"
130266 +#include "cfgloop.h"
130267 +//#include "hosthooks.h"
130268 +#include "cgraph.h"
130269 +#include "opts.h"
130270 +//#include "coverage.h"
130271 +//#include "value-prof.h"
130272 +
130273 +#if BUILDING_GCC_VERSION == 4005
130274 +#include <sys/mman.h>
130275 +#endif
130276 +
130277 +#if BUILDING_GCC_VERSION >= 4007
130278 +#include "tree-pretty-print.h"
130279 +#include "gimple-pretty-print.h"
130280 +#endif
130281 +
130282 +#if BUILDING_GCC_VERSION >= 4006
130283 +//#include "c-tree.h"
130284 +//#include "cp/cp-tree.h"
130285 +#include "c-family/c-common.h"
130286 +#else
130287 +#include "c-common.h"
130288 +#endif
130289 +
130290 +#if BUILDING_GCC_VERSION <= 4008
130291 +#include "tree-flow.h"
130292 +#else
130293 +#include "tree-cfgcleanup.h"
130294 +#include "tree-ssa-operands.h"
130295 +#include "tree-into-ssa.h"
130296 +#endif
130297 +
130298 +#if BUILDING_GCC_VERSION >= 4008
130299 +#include "is-a.h"
130300 +#endif
130301 +
130302 +#include "diagnostic.h"
130303 +//#include "tree-diagnostic.h"
130304 +#include "tree-dump.h"
130305 +#include "tree-pass.h"
130306 +//#include "df.h"
130307 +#include "predict.h"
130308 +#include "ipa-utils.h"
130309 +
130310 +#if BUILDING_GCC_VERSION >= 4009
130311 +#include "varasm.h"
130312 +#include "stor-layout.h"
130313 +#include "internal-fn.h"
130314 +#include "gimple-expr.h"
130315 +#include "gimple-fold.h"
130316 +//#include "diagnostic-color.h"
130317 +#include "context.h"
130318 +#include "tree-ssa-alias.h"
130319 +#include "tree-ssa.h"
130320 +#include "stringpool.h"
130321 +#include "tree-ssanames.h"
130322 +#include "print-tree.h"
130323 +#include "tree-eh.h"
130324 +#include "stmt.h"
130325 +#include "gimplify.h"
130326 +#endif
130327 +
130328 +#include "gimple.h"
130329 +
130330 +#if BUILDING_GCC_VERSION >= 4009
130331 +#include "tree-ssa-operands.h"
130332 +#include "tree-phinodes.h"
130333 +#include "tree-cfg.h"
130334 +#include "gimple-iterator.h"
130335 +#include "gimple-ssa.h"
130336 +#include "ssa-iterators.h"
130337 +#endif
130338 +
130339 +//#include "lto/lto.h"
130340 +#if BUILDING_GCC_VERSION >= 4007
130341 +//#include "data-streamer.h"
130342 +#else
130343 +//#include "lto-streamer.h"
130344 +#endif
130345 +//#include "lto-compress.h"
130346 +#if BUILDING_GCC_VERSION >= 5000
130347 +//#include "lto-section-names.h"
130348 +#include "builtins.h"
130349 +#endif
130350 +
130351 +//#include "expr.h" where are you...
130352 +extern rtx emit_move_insn(rtx x, rtx y);
130353 +
130354 +// missing from basic_block.h...
130355 +extern void debug_dominance_info(enum cdi_direction dir);
130356 +extern void debug_dominance_tree(enum cdi_direction dir, basic_block root);
130357 +
130358 +#ifdef __cplusplus
130359 +static inline void debug_tree(const_tree t)
130360 +{
130361 + debug_tree(CONST_CAST_TREE(t));
130362 +}
130363 +#else
130364 +#define debug_tree(t) debug_tree(CONST_CAST_TREE(t))
130365 +#endif
130366 +
130367 +#define __unused __attribute__((__unused__))
130368 +
130369 +#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
130370 +#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
130371 +#define TYPE_NAME_POINTER(node) IDENTIFIER_POINTER(TYPE_NAME(node))
130372 +#define TYPE_NAME_LENGTH(node) IDENTIFIER_LENGTH(TYPE_NAME(node))
130373 +
130374 +// should come from c-tree.h if only it were installed for gcc 4.5...
130375 +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
130376 +
130377 +#if BUILDING_GCC_VERSION == 4005
130378 +#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)++)
130379 +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
130380 +#define FOR_EACH_VEC_ELT(T, V, I, P) for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
130381 +#define TODO_rebuild_cgraph_edges 0
130382 +#define SCOPE_FILE_SCOPE_P(EXP) (!(EXP))
130383 +
130384 +#ifndef O_BINARY
130385 +#define O_BINARY 0
130386 +#endif
130387 +
130388 +typedef struct varpool_node *varpool_node_ptr;
130389 +
130390 +static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
130391 +{
130392 + tree fndecl;
130393 +
130394 + if (!is_gimple_call(stmt))
130395 + return false;
130396 + fndecl = gimple_call_fndecl(stmt);
130397 + if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
130398 + return false;
130399 +// print_node(stderr, "pax", fndecl, 4);
130400 + return DECL_FUNCTION_CODE(fndecl) == code;
130401 +}
130402 +
130403 +static inline bool is_simple_builtin(tree decl)
130404 +{
130405 + if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
130406 + return false;
130407 +
130408 + switch (DECL_FUNCTION_CODE(decl)) {
130409 + /* Builtins that expand to constants. */
130410 + case BUILT_IN_CONSTANT_P:
130411 + case BUILT_IN_EXPECT:
130412 + case BUILT_IN_OBJECT_SIZE:
130413 + case BUILT_IN_UNREACHABLE:
130414 + /* Simple register moves or loads from stack. */
130415 + case BUILT_IN_RETURN_ADDRESS:
130416 + case BUILT_IN_EXTRACT_RETURN_ADDR:
130417 + case BUILT_IN_FROB_RETURN_ADDR:
130418 + case BUILT_IN_RETURN:
130419 + case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
130420 + case BUILT_IN_FRAME_ADDRESS:
130421 + case BUILT_IN_VA_END:
130422 + case BUILT_IN_STACK_SAVE:
130423 + case BUILT_IN_STACK_RESTORE:
130424 + /* Exception state returns or moves registers around. */
130425 + case BUILT_IN_EH_FILTER:
130426 + case BUILT_IN_EH_POINTER:
130427 + case BUILT_IN_EH_COPY_VALUES:
130428 + return true;
130429 +
130430 + default:
130431 + return false;
130432 + }
130433 +}
130434 +
130435 +static inline void add_local_decl(struct function *fun, tree d)
130436 +{
130437 + gcc_assert(TREE_CODE(d) == VAR_DECL);
130438 + fun->local_decls = tree_cons(NULL_TREE, d, fun->local_decls);
130439 +}
130440 +#endif
130441 +
130442 +#if BUILDING_GCC_VERSION <= 4006
130443 +#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
130444 +#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
130445 +#define EDGE_PRESERVE 0ULL
130446 +#define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
130447 +#define flag_fat_lto_objects true
130448 +
130449 +#define get_random_seed(noinit) ({ \
130450 + unsigned HOST_WIDE_INT seed; \
130451 + sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \
130452 + seed * seed; })
130453 +
130454 +#define int_const_binop(code, arg1, arg2) int_const_binop((code), (arg1), (arg2), 0)
130455 +
130456 +static inline bool gimple_clobber_p(gimple s __unused)
130457 +{
130458 + return false;
130459 +}
130460 +
130461 +static inline bool gimple_asm_clobbers_memory_p(const_gimple stmt)
130462 +{
130463 + unsigned i;
130464 +
130465 + for (i = 0; i < gimple_asm_nclobbers(stmt); i++) {
130466 + tree op = gimple_asm_clobber_op(stmt, i);
130467 + if (!strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "memory"))
130468 + return true;
130469 + }
130470 +
130471 + return false;
130472 +}
130473 +
130474 +static inline tree builtin_decl_implicit(enum built_in_function fncode)
130475 +{
130476 + return implicit_built_in_decls[fncode];
130477 +}
130478 +
130479 +static inline int ipa_reverse_postorder(struct cgraph_node **order)
130480 +{
130481 + return cgraph_postorder(order);
130482 +}
130483 +
130484 +static inline struct cgraph_node *cgraph_get_create_node(tree decl)
130485 +{
130486 + struct cgraph_node *node = cgraph_get_node(decl);
130487 +
130488 + return node ? node : cgraph_node(decl);
130489 +}
130490 +
130491 +static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
130492 +{
130493 + return node->analyzed && !node->thunk.thunk_p && !node->alias;
130494 +}
130495 +
130496 +static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
130497 +{
130498 + struct cgraph_node *node;
130499 +
130500 + for (node = cgraph_nodes; node; node = node->next)
130501 + if (cgraph_function_with_gimple_body_p(node))
130502 + return node;
130503 + return NULL;
130504 +}
130505 +
130506 +static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
130507 +{
130508 + for (node = node->next; node; node = node->next)
130509 + if (cgraph_function_with_gimple_body_p(node))
130510 + return node;
130511 + return NULL;
130512 +}
130513 +
130514 +#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
130515 + for ((node) = cgraph_first_function_with_gimple_body(); (node); \
130516 + (node) = cgraph_next_function_with_gimple_body(node))
130517 +
130518 +static inline void varpool_add_new_variable(tree decl)
130519 +{
130520 + varpool_finalize_decl(decl);
130521 +}
130522 +#endif
130523 +
130524 +#if BUILDING_GCC_VERSION == 4006
130525 +extern void debug_gimple_stmt(gimple);
130526 +extern void debug_gimple_seq(gimple_seq);
130527 +extern void print_gimple_seq(FILE *, gimple_seq, int, int);
130528 +extern void print_gimple_stmt(FILE *, gimple, int, int);
130529 +extern void print_gimple_expr(FILE *, gimple, int, int);
130530 +extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
130531 +#endif
130532 +
130533 +#if BUILDING_GCC_VERSION <= 4007
130534 +#define FOR_EACH_FUNCTION(node) for (node = cgraph_nodes; node; node = node->next)
130535 +#define FOR_EACH_VARIABLE(node) for (node = varpool_nodes; node; node = node->next)
130536 +#define PROP_loops 0
130537 +#define NODE_SYMBOL(node) (node)
130538 +#define NODE_DECL(node) (node)->decl
130539 +#define INSN_LOCATION(INSN) RTL_LOCATION(INSN)
130540 +
130541 +static inline int bb_loop_depth(const_basic_block bb)
130542 +{
130543 + return bb->loop_father ? loop_depth(bb->loop_father) : 0;
130544 +}
130545 +
130546 +static inline bool gimple_store_p(gimple gs)
130547 +{
130548 + tree lhs = gimple_get_lhs(gs);
130549 + return lhs && !is_gimple_reg(lhs);
130550 +}
130551 +#endif
130552 +
130553 +#if BUILDING_GCC_VERSION == 4007 || BUILDING_GCC_VERSION == 4008
130554 +static inline struct cgraph_node *cgraph_alias_target(struct cgraph_node *n)
130555 +{
130556 + return cgraph_alias_aliased_node(n);
130557 +}
130558 +#endif
130559 +
130560 +#if BUILDING_GCC_VERSION >= 4007 && BUILDING_GCC_VERSION <= 4009
130561 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
130562 + cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq))
130563 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
130564 + cgraph_create_edge_including_clones((caller), (callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
130565 +#endif
130566 +
130567 +#if BUILDING_GCC_VERSION <= 4008
130568 +#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
130569 +#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
130570 +#define basic_block_info_for_fn(FN) ((FN)->cfg->x_basic_block_info)
130571 +#define n_basic_blocks_for_fn(FN) ((FN)->cfg->x_n_basic_blocks)
130572 +#define n_edges_for_fn(FN) ((FN)->cfg->x_n_edges)
130573 +#define last_basic_block_for_fn(FN) ((FN)->cfg->x_last_basic_block)
130574 +#define label_to_block_map_for_fn(FN) ((FN)->cfg->x_label_to_block_map)
130575 +#define profile_status_for_fn(FN) ((FN)->cfg->x_profile_status)
130576 +#define BASIC_BLOCK_FOR_FN(FN, N) BASIC_BLOCK_FOR_FUNCTION((FN), (N))
130577 +#define NODE_IMPLICIT_ALIAS(node) (node)->same_body_alias
130578 +#define VAR_P(NODE) (TREE_CODE(NODE) == VAR_DECL)
130579 +
130580 +static inline bool tree_fits_shwi_p(const_tree t)
130581 +{
130582 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
130583 + return false;
130584 +
130585 + if (TREE_INT_CST_HIGH(t) == 0 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) >= 0)
130586 + return true;
130587 +
130588 + if (TREE_INT_CST_HIGH(t) == -1 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) < 0 && !TYPE_UNSIGNED(TREE_TYPE(t)))
130589 + return true;
130590 +
130591 + return false;
130592 +}
130593 +
130594 +static inline bool tree_fits_uhwi_p(const_tree t)
130595 +{
130596 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
130597 + return false;
130598 +
130599 + return TREE_INT_CST_HIGH(t) == 0;
130600 +}
130601 +
130602 +static inline HOST_WIDE_INT tree_to_shwi(const_tree t)
130603 +{
130604 + gcc_assert(tree_fits_shwi_p(t));
130605 + return TREE_INT_CST_LOW(t);
130606 +}
130607 +
130608 +static inline unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
130609 +{
130610 + gcc_assert(tree_fits_uhwi_p(t));
130611 + return TREE_INT_CST_LOW(t);
130612 +}
130613 +
130614 +static inline const char *get_tree_code_name(enum tree_code code)
130615 +{
130616 + gcc_assert(code < MAX_TREE_CODES);
130617 + return tree_code_name[code];
130618 +}
130619 +
130620 +#define ipa_remove_stmt_references(cnode, stmt)
130621 +
130622 +typedef union gimple_statement_d gasm;
130623 +typedef union gimple_statement_d gassign;
130624 +typedef union gimple_statement_d gcall;
130625 +typedef union gimple_statement_d gcond;
130626 +typedef union gimple_statement_d gdebug;
130627 +typedef union gimple_statement_d gphi;
130628 +typedef union gimple_statement_d greturn;
130629 +
130630 +static inline gasm *as_a_gasm(gimple stmt)
130631 +{
130632 + return stmt;
130633 +}
130634 +
130635 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
130636 +{
130637 + return stmt;
130638 +}
130639 +
130640 +static inline gassign *as_a_gassign(gimple stmt)
130641 +{
130642 + return stmt;
130643 +}
130644 +
130645 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
130646 +{
130647 + return stmt;
130648 +}
130649 +
130650 +static inline gcall *as_a_gcall(gimple stmt)
130651 +{
130652 + return stmt;
130653 +}
130654 +
130655 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
130656 +{
130657 + return stmt;
130658 +}
130659 +
130660 +static inline gcond *as_a_gcond(gimple stmt)
130661 +{
130662 + return stmt;
130663 +}
130664 +
130665 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
130666 +{
130667 + return stmt;
130668 +}
130669 +
130670 +static inline gdebug *as_a_gdebug(gimple stmt)
130671 +{
130672 + return stmt;
130673 +}
130674 +
130675 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
130676 +{
130677 + return stmt;
130678 +}
130679 +
130680 +static inline gphi *as_a_gphi(gimple stmt)
130681 +{
130682 + return stmt;
130683 +}
130684 +
130685 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
130686 +{
130687 + return stmt;
130688 +}
130689 +
130690 +static inline greturn *as_a_greturn(gimple stmt)
130691 +{
130692 + return stmt;
130693 +}
130694 +
130695 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
130696 +{
130697 + return stmt;
130698 +}
130699 +#endif
130700 +
130701 +#if BUILDING_GCC_VERSION == 4008
130702 +#define NODE_SYMBOL(node) (&(node)->symbol)
130703 +#define NODE_DECL(node) (node)->symbol.decl
130704 +#endif
130705 +
130706 +#if BUILDING_GCC_VERSION >= 4008
130707 +#define add_referenced_var(var)
130708 +#define mark_sym_for_renaming(var)
130709 +#define varpool_mark_needed_node(node)
130710 +#define create_var_ann(var)
130711 +#define TODO_dump_func 0
130712 +#define TODO_dump_cgraph 0
130713 +#endif
130714 +
130715 +#if BUILDING_GCC_VERSION <= 4009
130716 +#define TODO_verify_il 0
130717 +#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE
130718 +
130719 +#define section_name_prefix LTO_SECTION_NAME_PREFIX
130720 +#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__)
130721 +
130722 +typedef struct rtx_def rtx_insn;
130723 +
130724 +static inline void set_decl_section_name(tree node, const char *value)
130725 +{
130726 + DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value);
130727 +}
130728 +#endif
130729 +
130730 +#if BUILDING_GCC_VERSION == 4009
130731 +typedef struct gimple_statement_asm gasm;
130732 +typedef struct gimple_statement_base gassign;
130733 +typedef struct gimple_statement_call gcall;
130734 +typedef struct gimple_statement_base gcond;
130735 +typedef struct gimple_statement_base gdebug;
130736 +typedef struct gimple_statement_phi gphi;
130737 +typedef struct gimple_statement_base greturn;
130738 +
130739 +static inline gasm *as_a_gasm(gimple stmt)
130740 +{
130741 + return as_a<gasm>(stmt);
130742 +}
130743 +
130744 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
130745 +{
130746 + return as_a<const gasm>(stmt);
130747 +}
130748 +
130749 +static inline gassign *as_a_gassign(gimple stmt)
130750 +{
130751 + return stmt;
130752 +}
130753 +
130754 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
130755 +{
130756 + return stmt;
130757 +}
130758 +
130759 +static inline gcall *as_a_gcall(gimple stmt)
130760 +{
130761 + return as_a<gcall>(stmt);
130762 +}
130763 +
130764 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
130765 +{
130766 + return as_a<const gcall>(stmt);
130767 +}
130768 +
130769 +static inline gcond *as_a_gcond(gimple stmt)
130770 +{
130771 + return stmt;
130772 +}
130773 +
130774 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
130775 +{
130776 + return stmt;
130777 +}
130778 +
130779 +static inline gdebug *as_a_gdebug(gimple stmt)
130780 +{
130781 + return stmt;
130782 +}
130783 +
130784 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
130785 +{
130786 + return stmt;
130787 +}
130788 +
130789 +static inline gphi *as_a_gphi(gimple stmt)
130790 +{
130791 + return as_a<gphi>(stmt);
130792 +}
130793 +
130794 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
130795 +{
130796 + return as_a<const gphi>(stmt);
130797 +}
130798 +
130799 +static inline greturn *as_a_greturn(gimple stmt)
130800 +{
130801 + return stmt;
130802 +}
130803 +
130804 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
130805 +{
130806 + return stmt;
130807 +}
130808 +#endif
130809 +
130810 +#if BUILDING_GCC_VERSION >= 4009
130811 +#define TODO_ggc_collect 0
130812 +#define NODE_SYMBOL(node) (node)
130813 +#define NODE_DECL(node) (node)->decl
130814 +#define cgraph_node_name(node) (node)->name()
130815 +#define NODE_IMPLICIT_ALIAS(node) (node)->cpp_implicit_alias
130816 +#endif
130817 +
130818 +#if BUILDING_GCC_VERSION >= 5000 && BUILDING_GCC_VERSION < 6000
130819 +// gimple related
130820 +template <>
130821 +template <>
130822 +inline bool is_a_helper<const gassign *>::test(const_gimple gs)
130823 +{
130824 + return gs->code == GIMPLE_ASSIGN;
130825 +}
130826 +#endif
130827 +
130828 +#if BUILDING_GCC_VERSION >= 5000
130829 +#define TODO_verify_ssa TODO_verify_il
130830 +#define TODO_verify_flow TODO_verify_il
130831 +#define TODO_verify_stmts TODO_verify_il
130832 +#define TODO_verify_rtl_sharing TODO_verify_il
130833 +
130834 +//#define TREE_INT_CST_HIGH(NODE) ({ TREE_INT_CST_EXT_NUNITS(NODE) > 1 ? (unsigned HOST_WIDE_INT)TREE_INT_CST_ELT(NODE, 1) : 0; })
130835 +
130836 +#define INSN_DELETED_P(insn) (insn)->deleted()
130837 +
130838 +// symtab/cgraph related
130839 +#define debug_cgraph_node(node) (node)->debug()
130840 +#define cgraph_get_node(decl) cgraph_node::get(decl)
130841 +#define cgraph_get_create_node(decl) cgraph_node::get_create(decl)
130842 +#define cgraph_n_nodes symtab->cgraph_count
130843 +#define cgraph_max_uid symtab->cgraph_max_uid
130844 +#define varpool_get_node(decl) varpool_node::get(decl)
130845 +
130846 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
130847 + (caller)->create_edge((callee), (call_stmt), (count), (freq))
130848 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
130849 + (caller)->create_edge_including_clones((callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
130850 +
130851 +typedef struct cgraph_node *cgraph_node_ptr;
130852 +typedef struct cgraph_edge *cgraph_edge_p;
130853 +typedef struct varpool_node *varpool_node_ptr;
130854 +
130855 +static inline void change_decl_assembler_name(tree decl, tree name)
130856 +{
130857 + symtab->change_decl_assembler_name(decl, name);
130858 +}
130859 +
130860 +static inline void varpool_finalize_decl(tree decl)
130861 +{
130862 + varpool_node::finalize_decl(decl);
130863 +}
130864 +
130865 +static inline void varpool_add_new_variable(tree decl)
130866 +{
130867 + varpool_node::add(decl);
130868 +}
130869 +
130870 +static inline unsigned int rebuild_cgraph_edges(void)
130871 +{
130872 + return cgraph_edge::rebuild_edges();
130873 +}
130874 +
130875 +static inline cgraph_node_ptr cgraph_function_node(cgraph_node_ptr node, enum availability *availability)
130876 +{
130877 + return node->function_symbol(availability);
130878 +}
130879 +
130880 +static inline cgraph_node_ptr cgraph_function_or_thunk_node(cgraph_node_ptr node, enum availability *availability = NULL)
130881 +{
130882 + return node->ultimate_alias_target(availability);
130883 +}
130884 +
130885 +static inline bool cgraph_only_called_directly_p(cgraph_node_ptr node)
130886 +{
130887 + return node->only_called_directly_p();
130888 +}
130889 +
130890 +static inline enum availability cgraph_function_body_availability(cgraph_node_ptr node)
130891 +{
130892 + return node->get_availability();
130893 +}
130894 +
130895 +static inline cgraph_node_ptr cgraph_alias_target(cgraph_node_ptr node)
130896 +{
130897 + return node->get_alias_target();
130898 +}
130899 +
130900 +static inline struct cgraph_node_hook_list *cgraph_add_function_insertion_hook(cgraph_node_hook hook, void *data)
130901 +{
130902 + return symtab->add_cgraph_insertion_hook(hook, data);
130903 +}
130904 +
130905 +static inline void cgraph_remove_function_insertion_hook(struct cgraph_node_hook_list *entry)
130906 +{
130907 + symtab->remove_cgraph_insertion_hook(entry);
130908 +}
130909 +
130910 +static inline struct cgraph_node_hook_list *cgraph_add_node_removal_hook(cgraph_node_hook hook, void *data)
130911 +{
130912 + return symtab->add_cgraph_removal_hook(hook, data);
130913 +}
130914 +
130915 +static inline void cgraph_remove_node_removal_hook(struct cgraph_node_hook_list *entry)
130916 +{
130917 + symtab->remove_cgraph_removal_hook(entry);
130918 +}
130919 +
130920 +static inline struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook(cgraph_2node_hook hook, void *data)
130921 +{
130922 + return symtab->add_cgraph_duplication_hook(hook, data);
130923 +}
130924 +
130925 +static inline void cgraph_remove_node_duplication_hook(struct cgraph_2node_hook_list *entry)
130926 +{
130927 + symtab->remove_cgraph_duplication_hook(entry);
130928 +}
130929 +
130930 +#if BUILDING_GCC_VERSION >= 6000
130931 +typedef gimple *gimple_ptr;
130932 +typedef const gimple *const_gimple;
130933 +#define gimple gimple_ptr
130934 +#endif
130935 +
130936 +// gimple related
130937 +static inline gimple gimple_build_assign_with_ops(enum tree_code subcode, tree lhs, tree op1, tree op2 MEM_STAT_DECL)
130938 +{
130939 + return gimple_build_assign(lhs, subcode, op1, op2 PASS_MEM_STAT);
130940 +}
130941 +
130942 +template <>
130943 +template <>
130944 +inline bool is_a_helper<const greturn *>::test(const_gimple gs)
130945 +{
130946 + return gs->code == GIMPLE_RETURN;
130947 +}
130948 +
130949 +static inline gasm *as_a_gasm(gimple stmt)
130950 +{
130951 + return as_a<gasm *>(stmt);
130952 +}
130953 +
130954 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
130955 +{
130956 + return as_a<const gasm *>(stmt);
130957 +}
130958 +
130959 +static inline gassign *as_a_gassign(gimple stmt)
130960 +{
130961 + return as_a<gassign *>(stmt);
130962 +}
130963 +
130964 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
130965 +{
130966 + return as_a<const gassign *>(stmt);
130967 +}
130968 +
130969 +static inline gcall *as_a_gcall(gimple stmt)
130970 +{
130971 + return as_a<gcall *>(stmt);
130972 +}
130973 +
130974 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
130975 +{
130976 + return as_a<const gcall *>(stmt);
130977 +}
130978 +
130979 +static inline gphi *as_a_gphi(gimple stmt)
130980 +{
130981 + return as_a<gphi *>(stmt);
130982 +}
130983 +
130984 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
130985 +{
130986 + return as_a<const gphi *>(stmt);
130987 +}
130988 +
130989 +static inline greturn *as_a_greturn(gimple stmt)
130990 +{
130991 + return as_a<greturn *>(stmt);
130992 +}
130993 +
130994 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
130995 +{
130996 + return as_a<const greturn *>(stmt);
130997 +}
130998 +
130999 +// IPA/LTO related
131000 +#define ipa_ref_list_referring_iterate(L,I,P) (L)->referring.iterate((I), &(P))
131001 +#define ipa_ref_list_reference_iterate(L,I,P) (L)->reference.iterate((I), &(P))
131002 +
131003 +static inline cgraph_node_ptr ipa_ref_referring_node(struct ipa_ref *ref)
131004 +{
131005 + return dyn_cast<cgraph_node_ptr>(ref->referring);
131006 +}
131007 +
131008 +static inline void ipa_remove_stmt_references(symtab_node *referring_node, gimple stmt)
131009 +{
131010 + referring_node->remove_stmt_references(stmt);
131011 +}
131012 +#endif
131013 +
131014 +#if BUILDING_GCC_VERSION < 6000
131015 +#define get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, preversep, pvolatilep, keep_aligning) get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, pvolatilep, keep_aligning)
131016 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET(VOIDmode, (ARG0), (ARG1))
131017 +#endif
131018 +
131019 +#if BUILDING_GCC_VERSION >= 6000
131020 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET((ARG0), (ARG1))
131021 +#endif
131022 +
131023 +#endif
131024 diff --git a/tools/gcc/gen-random-seed.sh b/tools/gcc/gen-random-seed.sh
131025 new file mode 100644
131026 index 0000000..7514850
131027 --- /dev/null
131028 +++ b/tools/gcc/gen-random-seed.sh
131029 @@ -0,0 +1,8 @@
131030 +#!/bin/sh
131031 +
131032 +if [ ! -f "$1" ]; then
131033 + SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
131034 + echo "const char *randstruct_seed = \"$SEED\";" > "$1"
131035 + HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'`
131036 + echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"
131037 +fi
131038 diff --git a/tools/gcc/initify_plugin.c b/tools/gcc/initify_plugin.c
131039 new file mode 100644
131040 index 0000000..39c0731
131041 --- /dev/null
131042 +++ b/tools/gcc/initify_plugin.c
131043 @@ -0,0 +1,552 @@
131044 +/*
131045 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
131046 + * Licensed under the GPL v2, or (at your option) v3
131047 + *
131048 + * Homepage:
131049 + * https://github.com/ephox-gcc-plugins/initify
131050 + *
131051 + * Move string constants (__func__ and function string arguments marked by the nocapture attribute)
131052 + * only referenced in __init/__exit functions to __initconst/__exitconst sections.
131053 + *
131054 + * Usage:
131055 + * $ make
131056 + * $ make run
131057 + */
131058 +
131059 +#include "gcc-common.h"
131060 +
131061 +int plugin_is_GPL_compatible;
131062 +
131063 +static struct plugin_info initify_plugin_info = {
131064 + .version = "20151128",
131065 + .help = "initify_plugin\n",
131066 +};
131067 +
131068 +/* nocapture attribute:
131069 + * * to mark nocapture function arguments. If used on a vararg argument it applies to all of them
131070 + * that have no other uses.
131071 + * * attribute value 0 is ignored to allow reusing print attribute arguments
131072 + */
131073 +static tree handle_nocapture_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
131074 +{
131075 + tree orig_attr, arg;
131076 +
131077 + *no_add_attrs = true;
131078 + switch (TREE_CODE(*node)) {
131079 + case FUNCTION_DECL:
131080 + case FUNCTION_TYPE:
131081 + case METHOD_TYPE:
131082 + break;
131083 + case TYPE_DECL: {
131084 + const_tree fntype = TREE_TYPE(*node);
131085 +
131086 + if (TREE_CODE(fntype) == POINTER_TYPE)
131087 + fntype = TREE_TYPE(fntype);
131088 + if (TREE_CODE(fntype) == FUNCTION_TYPE || TREE_CODE(fntype) == METHOD_TYPE)
131089 + break;
131090 + // FALLTHROUGH
131091 + }
131092 + default:
131093 + debug_tree(*node);
131094 + error("%s: %qE attribute only applies to functions", __func__, name);
131095 + return NULL_TREE;
131096 + }
131097 +
131098 + for (arg = args; arg; arg = TREE_CHAIN(arg)) {
131099 + tree position = TREE_VALUE(arg);
131100 +
131101 + if (TREE_CODE(position) != INTEGER_CST) {
131102 + error("%qE parameter of the %qE attribute isn't an integer (fn: %qE)", position, name, *node);
131103 + return NULL_TREE;
131104 + }
131105 +
131106 + if (tree_int_cst_lt(position, integer_minus_one_node)) {
131107 + error("%qE parameter of the %qE attribute less than 0 (fn: %qE)", position, name, *node);
131108 + return NULL_TREE;
131109 + }
131110 + }
131111 +
131112 + orig_attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(*node));
131113 + if (orig_attr)
131114 + chainon(TREE_VALUE(orig_attr), args);
131115 + else
131116 + *no_add_attrs = false;
131117 +
131118 + return NULL_TREE;
131119 +}
131120 +
131121 +static struct attribute_spec nocapture_attr = {
131122 + .name = "nocapture",
131123 + .min_length = 1,
131124 + .max_length = -1,
131125 + .decl_required = true,
131126 + .type_required = false,
131127 + .function_type_required = false,
131128 + .handler = handle_nocapture_attribute,
131129 +#if BUILDING_GCC_VERSION >= 4007
131130 + .affects_type_identity = false
131131 +#endif
131132 +};
131133 +
131134 +static void register_attributes(void __unused *event_data, void __unused *data)
131135 +{
131136 + register_attribute(&nocapture_attr);
131137 +}
131138 +
131139 +static const char *get_init_exit_section(const_tree decl)
131140 +{
131141 + const_tree section;
131142 + tree attr_value;
131143 +
131144 + section = lookup_attribute("section", DECL_ATTRIBUTES(decl));
131145 + if (!section)
131146 + return NULL;
131147 +
131148 + gcc_assert(TREE_VALUE(section));
131149 + for (attr_value = TREE_VALUE(section); attr_value; attr_value = TREE_CHAIN(attr_value)) {
131150 + const char *str = TREE_STRING_POINTER(TREE_VALUE(attr_value));
131151 +
131152 + if (!strncmp(str, ".init.", 6))
131153 + return str;
131154 + if (!strncmp(str, ".exit.", 6))
131155 + return str;
131156 + }
131157 +
131158 + return NULL;
131159 +}
131160 +
131161 +static tree get_string_cst(tree var)
131162 +{
131163 + if (var == NULL_TREE)
131164 + return NULL_TREE;
131165 +
131166 + if (TREE_CODE(var) == STRING_CST)
131167 + return var;
131168 +
131169 + switch (TREE_CODE_CLASS(TREE_CODE(var))) {
131170 + case tcc_expression:
131171 + case tcc_reference: {
131172 + int i;
131173 +
131174 + for (i = 0; i < TREE_OPERAND_LENGTH(var); i++) {
131175 + tree ret = get_string_cst(TREE_OPERAND(var, i));
131176 + if (ret != NULL_TREE)
131177 + return ret;
131178 + }
131179 + break;
131180 + }
131181 + default:
131182 + break;
131183 + }
131184 + return NULL_TREE;
131185 +}
131186 +
131187 +static bool set_init_exit_section(tree decl, bool initexit)
131188 +{
131189 + const char *str;
131190 +
131191 + gcc_assert(DECL_P(decl));
131192 +
131193 + str = get_init_exit_section(decl);
131194 + if (str)
131195 + return false;
131196 +
131197 + if (initexit)
131198 + set_decl_section_name(decl, ".init.rodata.str");
131199 + else
131200 + set_decl_section_name(decl, ".exit.rodata.str");
131201 + return true;
131202 +}
131203 +
131204 +static bool is_syscall(const_tree fn)
131205 +{
131206 + if (!strncmp(DECL_NAME_POINTER(fn), "sys_", 4))
131207 + return true;
131208 +
131209 + if (!strncmp(DECL_NAME_POINTER(fn), "sys32_", 6))
131210 + return true;
131211 +
131212 + if (!strncmp(DECL_NAME_POINTER(fn), "compat_sys_", 11))
131213 + return true;
131214 +
131215 + return false;
131216 +}
131217 +
131218 +static bool is_nocapture_param(const gcall *stmt, int fn_arg_count)
131219 +{
131220 + const_tree attr, attr_val;
131221 + int fntype_arg_len;
131222 + const_tree fndecl = gimple_call_fndecl(stmt);
131223 +
131224 + gcc_assert(DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE);
131225 +
131226 + if (is_syscall(fndecl))
131227 + return true;
131228 +
131229 + fntype_arg_len = type_num_arguments(TREE_TYPE(fndecl));
131230 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
131231 + if (attr == NULL_TREE)
131232 + return false;
131233 +
131234 + for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
131235 + int attr_arg_val = (int)tree_to_shwi(TREE_VALUE(attr_val));
131236 +
131237 + if (attr_arg_val == -1)
131238 + return true;
131239 + if (attr_arg_val == fn_arg_count)
131240 + return true;
131241 + if (attr_arg_val > fntype_arg_len && fn_arg_count >= attr_arg_val)
131242 + return true;
131243 + }
131244 +
131245 + return false;
131246 +}
131247 +
131248 +static bool compare_vardecls(const_tree vardecl, tree op)
131249 +{
131250 + tree decl, offset;
131251 + HOST_WIDE_INT bitsize, bitpos;
131252 + enum machine_mode mode;
131253 + int unsignedp, reversep, volatilep;
131254 + enum tree_code code = TREE_CODE(op);
131255 +
131256 + if (TREE_CODE_CLASS(code) == tcc_exceptional && code != SSA_NAME)
131257 + return false;
131258 +
131259 + if (code == ADDR_EXPR)
131260 + op = TREE_OPERAND(op, 0);
131261 +
131262 + if (TREE_CODE(op) == COMPONENT_REF)
131263 + return false;
131264 +
131265 + decl = get_inner_reference(op, &bitsize, &bitpos, &offset, &mode, &unsignedp, &reversep, &volatilep, true);
131266 +
131267 + switch (TREE_CODE_CLASS(TREE_CODE(decl))) {
131268 + case tcc_constant:
131269 + case tcc_statement:
131270 + return false;
131271 + default:
131272 + break;
131273 + }
131274 +
131275 + switch (TREE_CODE(decl)) {
131276 +#if BUILDING_GCC_VERSION >= 4006
131277 + case MEM_REF:
131278 +#endif
131279 + case TARGET_MEM_REF:
131280 + decl = TREE_OPERAND(decl, 0);
131281 + break;
131282 + default:
131283 + break;
131284 + }
131285 +
131286 + if (TREE_CODE(decl) == ADDR_EXPR)
131287 + decl = TREE_OPERAND(decl, 0);
131288 + if (TREE_CODE(decl) == SSA_NAME)
131289 + decl = SSA_NAME_VAR(decl);
131290 + if (decl == NULL_TREE)
131291 + return false;
131292 +
131293 + if (!DECL_P(decl)) {
131294 + debug_tree(op);
131295 + debug_tree(decl);
131296 + gcc_unreachable();
131297 + }
131298 +
131299 + if (!VAR_P(decl))
131300 + return false;
131301 + if (!DECL_NAME(decl))
131302 + return false;
131303 +
131304 + if (decl != vardecl && strcmp(DECL_NAME_POINTER(decl), DECL_NAME_POINTER(vardecl)))
131305 + return false;
131306 +
131307 + gcc_assert(TREE_CODE(op) != SSA_NAME);
131308 + return true;
131309 +}
131310 +
131311 +static bool search_capture_use(const_tree vardecl, gimple stmt)
131312 +{
131313 + unsigned int i;
131314 +
131315 + for (i = 0; i < gimple_num_ops(stmt); i++) {
131316 + unsigned int arg_count;
131317 + const_tree fndecl;
131318 + tree op = *(gimple_op_ptr(stmt, i));
131319 +
131320 + if (op == NULL_TREE)
131321 + continue;
131322 + if (is_gimple_constant(op))
131323 + continue;
131324 +
131325 + if (!compare_vardecls(vardecl, op))
131326 + continue;
131327 +
131328 + if (!is_gimple_call(stmt))
131329 + return true;
131330 +
131331 + // return, fndecl
131332 + gcc_assert(i >= 3);
131333 + arg_count = i - 2;
131334 + if (is_nocapture_param(as_a_const_gcall(stmt), (int)arg_count))
131335 + continue;
131336 +
131337 + fndecl = gimple_call_fndecl(stmt);
131338 + gcc_assert(fndecl != NULL_TREE);
131339 +// inform(gimple_location(stmt), "nocapture attribute is missing (fn: %E, arg: %u)\n", fndecl, arg_count);
131340 + return true;
131341 +
131342 + }
131343 + return false;
131344 +}
131345 +
131346 +static bool has_capture_use_local_var(const_tree vardecl)
131347 +{
131348 + basic_block bb;
131349 +
131350 + FOR_EACH_BB_FN(bb, cfun) {
131351 + gimple_stmt_iterator gsi;
131352 +
131353 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
131354 + if (search_capture_use(vardecl, gsi_stmt(gsi)))
131355 + return true;
131356 + }
131357 + }
131358 +
131359 + return false;
131360 +}
131361 +
131362 +static void search_local_strs(bool initexit)
131363 +{
131364 + unsigned int i;
131365 + tree var;
131366 +
131367 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
131368 + tree str, init_val = DECL_INITIAL(var);
131369 +
131370 + if (init_val == NULL_TREE || init_val == error_mark_node)
131371 + continue;
131372 + // !!! str local vars
131373 + if (strcmp(DECL_NAME_POINTER(var), "__func__"))
131374 + continue;
131375 +
131376 + if (has_capture_use_local_var(var))
131377 + continue;
131378 +
131379 + str = get_string_cst(init_val);
131380 + gcc_assert(str);
131381 +
131382 + if (set_init_exit_section(var, initexit)) {
131383 +// inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
131384 + }
131385 + }
131386 +}
131387 +
131388 +static tree create_tmp_assign(gcall *stmt, unsigned int num)
131389 +{
131390 + tree str, type, decl, arg = gimple_call_arg(stmt, num);
131391 +
131392 + str = get_string_cst(arg);
131393 + decl = build_decl(DECL_SOURCE_LOCATION(current_function_decl), VAR_DECL, create_tmp_var_name("cicus"), TREE_TYPE(str));
131394 +
131395 + type = TREE_TYPE(TREE_TYPE(decl));
131396 + type = build_qualified_type(type, TYPE_QUALS(type) | TYPE_QUAL_CONST);
131397 + TYPE_READONLY(type) = 1;
131398 + TREE_PUBLIC(type) = 0;
131399 +
131400 + DECL_INITIAL(decl) = str;
131401 + DECL_CONTEXT(decl) = current_function_decl;
131402 + DECL_ARTIFICIAL(decl) = 1;
131403 +
131404 + TREE_STATIC(decl) = 1;
131405 + TREE_READONLY(decl) = 1;
131406 + TREE_ADDRESSABLE(decl) = 1;
131407 + TREE_USED(decl) = 1;
131408 +
131409 + add_referenced_var(decl);
131410 + add_local_decl(cfun, decl);
131411 +
131412 + varpool_add_new_variable(decl);
131413 + varpool_mark_needed_node(varpool_node(decl));
131414 +
131415 + DECL_CHAIN(decl) = BLOCK_VARS(DECL_INITIAL(current_function_decl));
131416 + BLOCK_VARS(DECL_INITIAL (current_function_decl)) = decl;
131417 +
131418 + decl = build_fold_addr_expr_loc(DECL_SOURCE_LOCATION(current_function_decl), decl);
131419 + gimple_call_set_arg(stmt, num, decl);
131420 + update_stmt(stmt);
131421 +
131422 + return TREE_OPERAND(decl, 0);
131423 +}
131424 +
131425 +static void search_str_param(gcall *stmt, bool initexit)
131426 +{
131427 + unsigned int num;
131428 +
131429 + for (num = 0; num < gimple_call_num_args(stmt); num++) {
131430 + tree var, str, arg = gimple_call_arg(stmt, num);
131431 +
131432 + str = get_string_cst(arg);
131433 + if (str == NULL_TREE)
131434 + continue;
131435 +
131436 + if (!is_nocapture_param(stmt, num + 1))
131437 + continue;
131438 +
131439 + var = create_tmp_assign(stmt, num);
131440 + if (set_init_exit_section(var, initexit)) {
131441 +// inform(gimple_location(stmt), "initified function arg: %E: [%E]", current_function_decl, str);
131442 + }
131443 + }
131444 +}
131445 +
131446 +static bool has_nocapture_param(const gcall *stmt)
131447 +{
131448 + const_tree attr, fndecl = gimple_call_fndecl(stmt);
131449 +
131450 + if (fndecl == NULL_TREE)
131451 + return false;
131452 +
131453 + if (is_syscall(fndecl))
131454 + return true;
131455 +
131456 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
131457 + return attr != NULL_TREE;
131458 +}
131459 +
131460 +static void search_const_strs(bool initexit)
131461 +{
131462 + basic_block bb;
131463 +
131464 + FOR_EACH_BB_FN(bb, cfun) {
131465 + gimple_stmt_iterator gsi;
131466 +
131467 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
131468 + gcall *call_stmt;
131469 + gimple stmt = gsi_stmt(gsi);
131470 +
131471 + if (!is_gimple_call(stmt))
131472 + continue;
131473 +
131474 + call_stmt = as_a_gcall(stmt);
131475 + if (has_nocapture_param(call_stmt))
131476 + search_str_param(call_stmt, initexit);
131477 + }
131478 + }
131479 +}
131480 +
131481 +static unsigned int handle_function(void)
131482 +{
131483 + bool initexit;
131484 + const char *section = get_init_exit_section(current_function_decl);
131485 +
131486 + if (!section)
131487 + return 0;
131488 +
131489 + initexit = !strncmp(section, ".init.", 6);
131490 + search_local_strs(initexit);
131491 + search_const_strs(initexit);
131492 +
131493 + return 0;
131494 +}
131495 +
131496 +#if BUILDING_GCC_VERSION >= 4009
131497 +namespace {
131498 +static const struct pass_data initify_plugin_pass_data = {
131499 +#else
131500 +static struct gimple_opt_pass initify_plugin_pass = {
131501 + .pass = {
131502 +#endif
131503 + .type = GIMPLE_PASS,
131504 + .name = "initify_plugin",
131505 +#if BUILDING_GCC_VERSION >= 4008
131506 + .optinfo_flags = OPTGROUP_NONE,
131507 +#endif
131508 +#if BUILDING_GCC_VERSION >= 5000
131509 +#elif BUILDING_GCC_VERSION >= 4009
131510 + .has_gate = false,
131511 + .has_execute = true,
131512 +#else
131513 + .gate = NULL,
131514 + .execute = handle_function,
131515 + .sub = NULL,
131516 + .next = NULL,
131517 + .static_pass_number = 0,
131518 +#endif
131519 + .tv_id = TV_NONE,
131520 + .properties_required = 0,
131521 + .properties_provided = 0,
131522 + .properties_destroyed = 0,
131523 + .todo_flags_start = 0,
131524 + .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
131525 +#if BUILDING_GCC_VERSION < 4009
131526 + }
131527 +#endif
131528 +};
131529 +
131530 +#if BUILDING_GCC_VERSION >= 4009
131531 +class initify_plugin_pass : public gimple_opt_pass {
131532 +public:
131533 + initify_plugin_pass() : gimple_opt_pass(initify_plugin_pass_data, g) {}
131534 +#if BUILDING_GCC_VERSION >= 5000
131535 + virtual unsigned int execute(function *) { return handle_function(); }
131536 +#else
131537 + unsigned int execute() { return handle_function(); }
131538 +#endif
131539 +};
131540 +}
131541 +
131542 +static struct opt_pass *make_initify_plugin_pass(void)
131543 +{
131544 + return new initify_plugin_pass();
131545 +}
131546 +#else
131547 +static struct opt_pass *make_initify_plugin_pass(void)
131548 +{
131549 + return &initify_plugin_pass.pass;
131550 +}
131551 +#endif
131552 +
131553 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
131554 +
131555 +static unsigned int initify_section_type_flags(tree decl, const char *name, int reloc)
131556 +{
131557 + if (!strcmp(name, ".init.rodata.str") || !strcmp(name, ".exit.rodata.str")) {
131558 + gcc_assert(TREE_CODE(decl) == VAR_DECL);
131559 + gcc_assert(DECL_INITIAL(decl));
131560 + gcc_assert(TREE_CODE(DECL_INITIAL(decl)) == STRING_CST);
131561 +
131562 + return 1 | SECTION_MERGE | SECTION_STRINGS;
131563 + }
131564 +
131565 + return old_section_type_flags(decl, name, reloc);
131566 +}
131567 +
131568 +static void initify_start_unit(void __unused *gcc_data, void __unused *user_data)
131569 +{
131570 + old_section_type_flags = targetm.section_type_flags;
131571 + targetm.section_type_flags = initify_section_type_flags;
131572 +}
131573 +
131574 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
131575 +{
131576 + const char * const plugin_name = plugin_info->base_name;
131577 + struct register_pass_info initify_plugin_pass_info;
131578 +
131579 + initify_plugin_pass_info.pass = make_initify_plugin_pass();
131580 + initify_plugin_pass_info.reference_pass_name = "nrv";
131581 + initify_plugin_pass_info.ref_pass_instance_number = 1;
131582 + initify_plugin_pass_info.pos_op = PASS_POS_INSERT_AFTER;
131583 +
131584 + if (!plugin_default_version_check(version, &gcc_version)) {
131585 + error(G_("incompatible gcc/plugin versions"));
131586 + return 1;
131587 + }
131588 +
131589 + register_callback(plugin_name, PLUGIN_INFO, NULL, &initify_plugin_info);
131590 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &initify_plugin_pass_info);
131591 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
131592 + register_callback(plugin_name, PLUGIN_START_UNIT, initify_start_unit, NULL);
131593 +
131594 + return 0;
131595 +}
131596 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
131597 new file mode 100644
131598 index 0000000..457d54e
131599 --- /dev/null
131600 +++ b/tools/gcc/kallocstat_plugin.c
131601 @@ -0,0 +1,188 @@
131602 +/*
131603 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
131604 + * Licensed under the GPL v2
131605 + *
131606 + * Note: the choice of the license means that the compilation process is
131607 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
131608 + * but for the kernel it doesn't matter since it doesn't link against
131609 + * any of the gcc libraries
131610 + *
131611 + * gcc plugin to find the distribution of k*alloc sizes
131612 + *
131613 + * TODO:
131614 + *
131615 + * BUGS:
131616 + * - none known
131617 + */
131618 +
131619 +#include "gcc-common.h"
131620 +
131621 +int plugin_is_GPL_compatible;
131622 +
131623 +static struct plugin_info kallocstat_plugin_info = {
131624 + .version = "201401260140",
131625 + .help = NULL
131626 +};
131627 +
131628 +static const char * const kalloc_functions[] = {
131629 + "__kmalloc",
131630 + "kmalloc",
131631 + "kmalloc_large",
131632 + "kmalloc_node",
131633 + "kmalloc_order",
131634 + "kmalloc_order_trace",
131635 + "kmalloc_slab",
131636 + "kzalloc",
131637 + "kzalloc_node",
131638 +};
131639 +
131640 +static bool is_kalloc(const char *fnname)
131641 +{
131642 + size_t i;
131643 +
131644 + for (i = 0; i < ARRAY_SIZE(kalloc_functions); i++)
131645 + if (!strcmp(fnname, kalloc_functions[i]))
131646 + return true;
131647 + return false;
131648 +}
131649 +
131650 +static unsigned int execute_kallocstat(void)
131651 +{
131652 + basic_block bb;
131653 +
131654 + // 1. loop through BBs and GIMPLE statements
131655 + FOR_EACH_BB_FN(bb, cfun) {
131656 + gimple_stmt_iterator gsi;
131657 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
131658 + // gimple match:
131659 + tree fndecl, size;
131660 + gimple stmt;
131661 + const char *fnname;
131662 +
131663 + // is it a call
131664 + stmt = gsi_stmt(gsi);
131665 + if (!is_gimple_call(stmt))
131666 + continue;
131667 + fndecl = gimple_call_fndecl(stmt);
131668 + if (fndecl == NULL_TREE)
131669 + continue;
131670 + if (TREE_CODE(fndecl) != FUNCTION_DECL)
131671 + continue;
131672 +
131673 + // is it a call to k*alloc
131674 + fnname = DECL_NAME_POINTER(fndecl);
131675 + if (!is_kalloc(fnname))
131676 + continue;
131677 +
131678 + // is the size arg const or the result of a simple const assignment
131679 + size = gimple_call_arg(stmt, 0);
131680 + while (true) {
131681 + expanded_location xloc;
131682 + size_t size_val;
131683 +
131684 + if (TREE_CONSTANT(size)) {
131685 + xloc = expand_location(gimple_location(stmt));
131686 + if (!xloc.file)
131687 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
131688 + size_val = TREE_INT_CST_LOW(size);
131689 + fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
131690 + break;
131691 + }
131692 +
131693 + if (TREE_CODE(size) != SSA_NAME)
131694 + break;
131695 + stmt = SSA_NAME_DEF_STMT(size);
131696 +//debug_gimple_stmt(stmt);
131697 +//debug_tree(size);
131698 + if (!stmt || !is_gimple_assign(stmt))
131699 + break;
131700 + if (gimple_num_ops(stmt) != 2)
131701 + break;
131702 + size = gimple_assign_rhs1(stmt);
131703 + }
131704 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
131705 +//debug_tree(gimple_call_fn(call_stmt));
131706 +//print_node(stderr, "pax", fndecl, 4);
131707 + }
131708 + }
131709 +
131710 + return 0;
131711 +}
131712 +
131713 +#if BUILDING_GCC_VERSION >= 4009
131714 +namespace {
131715 +static const struct pass_data kallocstat_pass_data = {
131716 +#else
131717 +static struct gimple_opt_pass kallocstat_pass = {
131718 + .pass = {
131719 +#endif
131720 + .type = GIMPLE_PASS,
131721 + .name = "kallocstat",
131722 +#if BUILDING_GCC_VERSION >= 4008
131723 + .optinfo_flags = OPTGROUP_NONE,
131724 +#endif
131725 +#if BUILDING_GCC_VERSION >= 5000
131726 +#elif BUILDING_GCC_VERSION == 4009
131727 + .has_gate = false,
131728 + .has_execute = true,
131729 +#else
131730 + .gate = NULL,
131731 + .execute = execute_kallocstat,
131732 + .sub = NULL,
131733 + .next = NULL,
131734 + .static_pass_number = 0,
131735 +#endif
131736 + .tv_id = TV_NONE,
131737 + .properties_required = 0,
131738 + .properties_provided = 0,
131739 + .properties_destroyed = 0,
131740 + .todo_flags_start = 0,
131741 + .todo_flags_finish = 0
131742 +#if BUILDING_GCC_VERSION < 4009
131743 + }
131744 +#endif
131745 +};
131746 +
131747 +#if BUILDING_GCC_VERSION >= 4009
131748 +class kallocstat_pass : public gimple_opt_pass {
131749 +public:
131750 + kallocstat_pass() : gimple_opt_pass(kallocstat_pass_data, g) {}
131751 +#if BUILDING_GCC_VERSION >= 5000
131752 + virtual unsigned int execute(function *) { return execute_kallocstat(); }
131753 +#else
131754 + unsigned int execute() { return execute_kallocstat(); }
131755 +#endif
131756 +};
131757 +}
131758 +
131759 +static opt_pass *make_kallocstat_pass(void)
131760 +{
131761 + return new kallocstat_pass();
131762 +}
131763 +#else
131764 +static struct opt_pass *make_kallocstat_pass(void)
131765 +{
131766 + return &kallocstat_pass.pass;
131767 +}
131768 +#endif
131769 +
131770 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
131771 +{
131772 + const char * const plugin_name = plugin_info->base_name;
131773 + struct register_pass_info kallocstat_pass_info;
131774 +
131775 + kallocstat_pass_info.pass = make_kallocstat_pass();
131776 + kallocstat_pass_info.reference_pass_name = "ssa";
131777 + kallocstat_pass_info.ref_pass_instance_number = 1;
131778 + kallocstat_pass_info.pos_op = PASS_POS_INSERT_AFTER;
131779 +
131780 + if (!plugin_default_version_check(version, &gcc_version)) {
131781 + error(G_("incompatible gcc/plugin versions"));
131782 + return 1;
131783 + }
131784 +
131785 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kallocstat_plugin_info);
131786 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kallocstat_pass_info);
131787 +
131788 + return 0;
131789 +}
131790 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
131791 new file mode 100644
131792 index 0000000..6b8ef9a
131793 --- /dev/null
131794 +++ b/tools/gcc/kernexec_plugin.c
131795 @@ -0,0 +1,549 @@
131796 +/*
131797 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
131798 + * Licensed under the GPL v2
131799 + *
131800 + * Note: the choice of the license means that the compilation process is
131801 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
131802 + * but for the kernel it doesn't matter since it doesn't link against
131803 + * any of the gcc libraries
131804 + *
131805 + * gcc plugin to make KERNEXEC/amd64 almost as good as it is on i386
131806 + *
131807 + * TODO:
131808 + *
131809 + * BUGS:
131810 + * - none known
131811 + */
131812 +
131813 +#include "gcc-common.h"
131814 +
131815 +int plugin_is_GPL_compatible;
131816 +
131817 +static struct plugin_info kernexec_plugin_info = {
131818 + .version = "201401260140",
131819 + .help = "method=[bts|or]\tinstrumentation method\n"
131820 +};
131821 +
131822 +static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
131823 +static void (*kernexec_instrument_retaddr)(rtx);
131824 +
131825 +/*
131826 + * add special KERNEXEC instrumentation: reload %r12 after it has been clobbered
131827 + */
131828 +static void kernexec_reload_fptr_mask(gimple_stmt_iterator *gsi)
131829 +{
131830 + gimple stmt;
131831 + gasm *asm_movabs_stmt;
131832 +
131833 + // build asm volatile("movabs $0x8000000000000000, %%r12\n\t" : : : );
131834 + stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r12\n\t", NULL, NULL, NULL, NULL);
131835 + asm_movabs_stmt = as_a_gasm(stmt);
131836 + gimple_asm_set_volatile(asm_movabs_stmt, true);
131837 + gsi_insert_after(gsi, asm_movabs_stmt, GSI_CONTINUE_LINKING);
131838 + update_stmt(asm_movabs_stmt);
131839 +}
131840 +
131841 +/*
131842 + * find all asm() stmts that clobber r12 and add a reload of r12
131843 + */
131844 +static unsigned int execute_kernexec_reload(void)
131845 +{
131846 + basic_block bb;
131847 +
131848 + // 1. loop through BBs and GIMPLE statements
131849 + FOR_EACH_BB_FN(bb, cfun) {
131850 + gimple_stmt_iterator gsi;
131851 +
131852 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
131853 + // gimple match: __asm__ ("" : : : "r12");
131854 + gimple stmt;
131855 + gasm *asm_stmt;
131856 + size_t nclobbers;
131857 +
131858 + // is it an asm ...
131859 + stmt = gsi_stmt(gsi);
131860 + if (gimple_code(stmt) != GIMPLE_ASM)
131861 + continue;
131862 +
131863 + asm_stmt = as_a_gasm(stmt);
131864 +
131865 + // ... clobbering r12
131866 + nclobbers = gimple_asm_nclobbers(asm_stmt);
131867 + while (nclobbers--) {
131868 + tree op = gimple_asm_clobber_op(asm_stmt, nclobbers);
131869 + if (strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "r12"))
131870 + continue;
131871 + kernexec_reload_fptr_mask(&gsi);
131872 +//print_gimple_stmt(stderr, asm_stmt, 0, TDF_LINENO);
131873 + break;
131874 + }
131875 + }
131876 + }
131877 +
131878 + return 0;
131879 +}
131880 +
131881 +/*
131882 + * add special KERNEXEC instrumentation: force MSB of fptr to 1, which will produce
131883 + * a non-canonical address from a userland ptr and will just trigger a GPF on dereference
131884 + */
131885 +static void kernexec_instrument_fptr_bts(gimple_stmt_iterator *gsi)
131886 +{
131887 + gimple assign_intptr, assign_new_fptr;
131888 + gcall *call_stmt;
131889 + tree intptr, orptr, old_fptr, new_fptr, kernexec_mask;
131890 +
131891 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
131892 + old_fptr = gimple_call_fn(call_stmt);
131893 +
131894 + // create temporary unsigned long variable used for bitops and cast fptr to it
131895 + intptr = create_tmp_var(long_unsigned_type_node, "kernexec_bts");
131896 + add_referenced_var(intptr);
131897 + intptr = make_ssa_name(intptr, NULL);
131898 + assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
131899 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
131900 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
131901 + update_stmt(assign_intptr);
131902 +
131903 + // apply logical or to temporary unsigned long and bitmask
131904 + kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0x8000000000000000LL);
131905 +// kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0xffffffff80000000LL);
131906 + orptr = fold_build2(BIT_IOR_EXPR, long_long_unsigned_type_node, intptr, kernexec_mask);
131907 + intptr = make_ssa_name(SSA_NAME_VAR(intptr), NULL);
131908 + assign_intptr = gimple_build_assign(intptr, orptr);
131909 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
131910 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
131911 + update_stmt(assign_intptr);
131912 +
131913 + // cast temporary unsigned long back to a temporary fptr variable
131914 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
131915 + add_referenced_var(new_fptr);
131916 + new_fptr = make_ssa_name(new_fptr, NULL);
131917 + assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
131918 + SSA_NAME_DEF_STMT(new_fptr) = assign_new_fptr;
131919 + gsi_insert_before(gsi, assign_new_fptr, GSI_SAME_STMT);
131920 + update_stmt(assign_new_fptr);
131921 +
131922 + // replace call stmt fn with the new fptr
131923 + gimple_call_set_fn(call_stmt, new_fptr);
131924 + update_stmt(call_stmt);
131925 +}
131926 +
131927 +static void kernexec_instrument_fptr_or(gimple_stmt_iterator *gsi)
131928 +{
131929 + gimple stmt;
131930 + gasm *asm_or_stmt;
131931 + gcall *call_stmt;
131932 + tree old_fptr, new_fptr, input, output;
131933 +#if BUILDING_GCC_VERSION <= 4007
131934 + VEC(tree, gc) *inputs = NULL;
131935 + VEC(tree, gc) *outputs = NULL;
131936 +#else
131937 + vec<tree, va_gc> *inputs = NULL;
131938 + vec<tree, va_gc> *outputs = NULL;
131939 +#endif
131940 +
131941 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
131942 + old_fptr = gimple_call_fn(call_stmt);
131943 +
131944 + // create temporary fptr variable
131945 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_or");
131946 + add_referenced_var(new_fptr);
131947 + new_fptr = make_ssa_name(new_fptr, NULL);
131948 +
131949 + // build asm volatile("orq %%r12, %0\n\t" : "=r"(new_fptr) : "0"(old_fptr));
131950 + input = build_tree_list(NULL_TREE, build_string(2, "0"));
131951 + input = chainon(NULL_TREE, build_tree_list(input, old_fptr));
131952 + output = build_tree_list(NULL_TREE, build_string(3, "=r"));
131953 + output = chainon(NULL_TREE, build_tree_list(output, new_fptr));
131954 +#if BUILDING_GCC_VERSION <= 4007
131955 + VEC_safe_push(tree, gc, inputs, input);
131956 + VEC_safe_push(tree, gc, outputs, output);
131957 +#else
131958 + vec_safe_push(inputs, input);
131959 + vec_safe_push(outputs, output);
131960 +#endif
131961 + stmt = gimple_build_asm_vec("orq %%r12, %0\n\t", inputs, outputs, NULL, NULL);
131962 + asm_or_stmt = as_a_gasm(stmt);
131963 + SSA_NAME_DEF_STMT(new_fptr) = asm_or_stmt;
131964 + gimple_asm_set_volatile(asm_or_stmt, true);
131965 + gsi_insert_before(gsi, asm_or_stmt, GSI_SAME_STMT);
131966 + update_stmt(asm_or_stmt);
131967 +
131968 + // replace call stmt fn with the new fptr
131969 + gimple_call_set_fn(call_stmt, new_fptr);
131970 + update_stmt(call_stmt);
131971 +}
131972 +
131973 +/*
131974 + * find all C level function pointer dereferences and forcibly set the highest bit of the pointer
131975 + */
131976 +static unsigned int execute_kernexec_fptr(void)
131977 +{
131978 + basic_block bb;
131979 +
131980 + // 1. loop through BBs and GIMPLE statements
131981 + FOR_EACH_BB_FN(bb, cfun) {
131982 + gimple_stmt_iterator gsi;
131983 +
131984 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
131985 + // gimple match: h_1 = get_fptr (); D.2709_3 = h_1 (x_2(D));
131986 + tree fn;
131987 + gimple stmt;
131988 + gcall *call_stmt;
131989 +
131990 + // is it a call ...
131991 + stmt = gsi_stmt(gsi);
131992 + if (!is_gimple_call(stmt))
131993 + continue;
131994 + call_stmt = as_a_gcall(stmt);
131995 + fn = gimple_call_fn(call_stmt);
131996 + if (!fn)
131997 + continue;
131998 + if (TREE_CODE(fn) == ADDR_EXPR)
131999 + continue;
132000 + if (TREE_CODE(fn) != SSA_NAME)
132001 + gcc_unreachable();
132002 +
132003 + // ... through a function pointer
132004 + if (SSA_NAME_VAR(fn) != NULL_TREE) {
132005 + fn = SSA_NAME_VAR(fn);
132006 + if (TREE_CODE(fn) != VAR_DECL && TREE_CODE(fn) != PARM_DECL) {
132007 + debug_tree(fn);
132008 + gcc_unreachable();
132009 + }
132010 + }
132011 + fn = TREE_TYPE(fn);
132012 + if (TREE_CODE(fn) != POINTER_TYPE)
132013 + continue;
132014 + fn = TREE_TYPE(fn);
132015 + if (TREE_CODE(fn) != FUNCTION_TYPE)
132016 + continue;
132017 +
132018 + kernexec_instrument_fptr(&gsi);
132019 +
132020 +//debug_tree(gimple_call_fn(call_stmt));
132021 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
132022 + }
132023 + }
132024 +
132025 + return 0;
132026 +}
132027 +
132028 +// add special KERNEXEC instrumentation: btsq $63,(%rsp) just before retn
132029 +static void kernexec_instrument_retaddr_bts(rtx insn)
132030 +{
132031 + rtx btsq;
132032 + rtvec argvec, constraintvec, labelvec;
132033 +
132034 + // create asm volatile("btsq $63,(%%rsp)":::)
132035 + argvec = rtvec_alloc(0);
132036 + constraintvec = rtvec_alloc(0);
132037 + labelvec = rtvec_alloc(0);
132038 + btsq = gen_rtx_ASM_OPERANDS(VOIDmode, "btsq $63,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, RTL_LOCATION(insn));
132039 + MEM_VOLATILE_P(btsq) = 1;
132040 +// RTX_FRAME_RELATED_P(btsq) = 1; // not for ASM_OPERANDS
132041 + emit_insn_before(btsq, insn);
132042 +}
132043 +
132044 +// add special KERNEXEC instrumentation: orq %r12,(%rsp) just before retn
132045 +static void kernexec_instrument_retaddr_or(rtx insn)
132046 +{
132047 + rtx orq;
132048 + rtvec argvec, constraintvec, labelvec;
132049 +
132050 + // create asm volatile("orq %%r12,(%%rsp)":::)
132051 + argvec = rtvec_alloc(0);
132052 + constraintvec = rtvec_alloc(0);
132053 + labelvec = rtvec_alloc(0);
132054 + orq = gen_rtx_ASM_OPERANDS(VOIDmode, "orq %%r12,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, RTL_LOCATION(insn));
132055 + MEM_VOLATILE_P(orq) = 1;
132056 +// RTX_FRAME_RELATED_P(orq) = 1; // not for ASM_OPERANDS
132057 + emit_insn_before(orq, insn);
132058 +}
132059 +
132060 +/*
132061 + * find all asm level function returns and forcibly set the highest bit of the return address
132062 + */
132063 +static unsigned int execute_kernexec_retaddr(void)
132064 +{
132065 + rtx_insn *insn;
132066 +
132067 +// if (stack_realign_drap)
132068 +// inform(DECL_SOURCE_LOCATION(current_function_decl), "drap detected in %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
132069 +
132070 + // 1. find function returns
132071 + for (insn = get_insns(); insn; insn = NEXT_INSN(insn)) {
132072 + // rtl match: (jump_insn 41 40 42 2 (return) fptr.c:42 634 {return_internal} (nil))
132073 + // (jump_insn 12 9 11 2 (parallel [ (return) (unspec [ (0) ] UNSPEC_REP) ]) fptr.c:46 635 {return_internal_long} (nil))
132074 + // (jump_insn 97 96 98 6 (simple_return) fptr.c:50 -1 (nil) -> simple_return)
132075 + rtx body;
132076 +
132077 + // is it a retn
132078 + if (!JUMP_P(insn))
132079 + continue;
132080 + body = PATTERN(insn);
132081 + if (GET_CODE(body) == PARALLEL)
132082 + body = XVECEXP(body, 0, 0);
132083 + if (!ANY_RETURN_P(body))
132084 + continue;
132085 + kernexec_instrument_retaddr(insn);
132086 + }
132087 +
132088 +// print_simple_rtl(stderr, get_insns());
132089 +// print_rtl(stderr, get_insns());
132090 +
132091 + return 0;
132092 +}
132093 +
132094 +static bool kernexec_cmodel_check(void)
132095 +{
132096 + tree section;
132097 +
132098 + if (ix86_cmodel != CM_KERNEL)
132099 + return false;
132100 +
132101 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
132102 + if (!section || !TREE_VALUE(section))
132103 + return true;
132104 +
132105 + section = TREE_VALUE(TREE_VALUE(section));
132106 + if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
132107 + return true;
132108 +
132109 + return false;
132110 +}
132111 +
132112 +#if BUILDING_GCC_VERSION >= 4009
132113 +namespace {
132114 +static const struct pass_data kernexec_reload_pass_data = {
132115 +#else
132116 +static struct gimple_opt_pass kernexec_reload_pass = {
132117 + .pass = {
132118 +#endif
132119 + .type = GIMPLE_PASS,
132120 + .name = "kernexec_reload",
132121 +#if BUILDING_GCC_VERSION >= 4008
132122 + .optinfo_flags = OPTGROUP_NONE,
132123 +#endif
132124 +#if BUILDING_GCC_VERSION >= 5000
132125 +#elif BUILDING_GCC_VERSION == 4009
132126 + .has_gate = true,
132127 + .has_execute = true,
132128 +#else
132129 + .gate = kernexec_cmodel_check,
132130 + .execute = execute_kernexec_reload,
132131 + .sub = NULL,
132132 + .next = NULL,
132133 + .static_pass_number = 0,
132134 +#endif
132135 + .tv_id = TV_NONE,
132136 + .properties_required = 0,
132137 + .properties_provided = 0,
132138 + .properties_destroyed = 0,
132139 + .todo_flags_start = 0,
132140 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
132141 +#if BUILDING_GCC_VERSION < 4009
132142 + }
132143 +#endif
132144 +};
132145 +
132146 +#if BUILDING_GCC_VERSION >= 4009
132147 +static const struct pass_data kernexec_fptr_pass_data = {
132148 +#else
132149 +static struct gimple_opt_pass kernexec_fptr_pass = {
132150 + .pass = {
132151 +#endif
132152 + .type = GIMPLE_PASS,
132153 + .name = "kernexec_fptr",
132154 +#if BUILDING_GCC_VERSION >= 4008
132155 + .optinfo_flags = OPTGROUP_NONE,
132156 +#endif
132157 +#if BUILDING_GCC_VERSION >= 5000
132158 +#elif BUILDING_GCC_VERSION == 4009
132159 + .has_gate = true,
132160 + .has_execute = true,
132161 +#else
132162 + .gate = kernexec_cmodel_check,
132163 + .execute = execute_kernexec_fptr,
132164 + .sub = NULL,
132165 + .next = NULL,
132166 + .static_pass_number = 0,
132167 +#endif
132168 + .tv_id = TV_NONE,
132169 + .properties_required = 0,
132170 + .properties_provided = 0,
132171 + .properties_destroyed = 0,
132172 + .todo_flags_start = 0,
132173 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
132174 +#if BUILDING_GCC_VERSION < 4009
132175 + }
132176 +#endif
132177 +};
132178 +
132179 +#if BUILDING_GCC_VERSION >= 4009
132180 +static const struct pass_data kernexec_retaddr_pass_data = {
132181 +#else
132182 +static struct rtl_opt_pass kernexec_retaddr_pass = {
132183 + .pass = {
132184 +#endif
132185 + .type = RTL_PASS,
132186 + .name = "kernexec_retaddr",
132187 +#if BUILDING_GCC_VERSION >= 4008
132188 + .optinfo_flags = OPTGROUP_NONE,
132189 +#endif
132190 +#if BUILDING_GCC_VERSION >= 5000
132191 +#elif BUILDING_GCC_VERSION == 4009
132192 + .has_gate = true,
132193 + .has_execute = true,
132194 +#else
132195 + .gate = kernexec_cmodel_check,
132196 + .execute = execute_kernexec_retaddr,
132197 + .sub = NULL,
132198 + .next = NULL,
132199 + .static_pass_number = 0,
132200 +#endif
132201 + .tv_id = TV_NONE,
132202 + .properties_required = 0,
132203 + .properties_provided = 0,
132204 + .properties_destroyed = 0,
132205 + .todo_flags_start = 0,
132206 + .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
132207 +#if BUILDING_GCC_VERSION < 4009
132208 + }
132209 +#endif
132210 +};
132211 +
132212 +#if BUILDING_GCC_VERSION >= 4009
132213 +class kernexec_reload_pass : public gimple_opt_pass {
132214 +public:
132215 + kernexec_reload_pass() : gimple_opt_pass(kernexec_reload_pass_data, g) {}
132216 +#if BUILDING_GCC_VERSION >= 5000
132217 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
132218 + virtual unsigned int execute(function *) { return execute_kernexec_reload(); }
132219 +#else
132220 + bool gate() { return kernexec_cmodel_check(); }
132221 + unsigned int execute() { return execute_kernexec_reload(); }
132222 +#endif
132223 +};
132224 +
132225 +class kernexec_fptr_pass : public gimple_opt_pass {
132226 +public:
132227 + kernexec_fptr_pass() : gimple_opt_pass(kernexec_fptr_pass_data, g) {}
132228 +#if BUILDING_GCC_VERSION >= 5000
132229 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
132230 + virtual unsigned int execute(function *) { return execute_kernexec_fptr(); }
132231 +#else
132232 + bool gate() { return kernexec_cmodel_check(); }
132233 + unsigned int execute() { return execute_kernexec_fptr(); }
132234 +#endif
132235 +};
132236 +
132237 +class kernexec_retaddr_pass : public rtl_opt_pass {
132238 +public:
132239 + kernexec_retaddr_pass() : rtl_opt_pass(kernexec_retaddr_pass_data, g) {}
132240 +#if BUILDING_GCC_VERSION >= 5000
132241 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
132242 + virtual unsigned int execute(function *) { return execute_kernexec_retaddr(); }
132243 +#else
132244 + bool gate() { return kernexec_cmodel_check(); }
132245 + unsigned int execute() { return execute_kernexec_retaddr(); }
132246 +#endif
132247 +};
132248 +}
132249 +
132250 +static opt_pass *make_kernexec_reload_pass(void)
132251 +{
132252 + return new kernexec_reload_pass();
132253 +}
132254 +
132255 +static opt_pass *make_kernexec_fptr_pass(void)
132256 +{
132257 + return new kernexec_fptr_pass();
132258 +}
132259 +
132260 +static opt_pass *make_kernexec_retaddr_pass(void)
132261 +{
132262 + return new kernexec_retaddr_pass();
132263 +}
132264 +#else
132265 +static struct opt_pass *make_kernexec_reload_pass(void)
132266 +{
132267 + return &kernexec_reload_pass.pass;
132268 +}
132269 +
132270 +static struct opt_pass *make_kernexec_fptr_pass(void)
132271 +{
132272 + return &kernexec_fptr_pass.pass;
132273 +}
132274 +
132275 +static struct opt_pass *make_kernexec_retaddr_pass(void)
132276 +{
132277 + return &kernexec_retaddr_pass.pass;
132278 +}
132279 +#endif
132280 +
132281 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
132282 +{
132283 + const char * const plugin_name = plugin_info->base_name;
132284 + const int argc = plugin_info->argc;
132285 + const struct plugin_argument * const argv = plugin_info->argv;
132286 + int i;
132287 + struct register_pass_info kernexec_reload_pass_info;
132288 + struct register_pass_info kernexec_fptr_pass_info;
132289 + struct register_pass_info kernexec_retaddr_pass_info;
132290 +
132291 + kernexec_reload_pass_info.pass = make_kernexec_reload_pass();
132292 + kernexec_reload_pass_info.reference_pass_name = "ssa";
132293 + kernexec_reload_pass_info.ref_pass_instance_number = 1;
132294 + kernexec_reload_pass_info.pos_op = PASS_POS_INSERT_AFTER;
132295 +
132296 + kernexec_fptr_pass_info.pass = make_kernexec_fptr_pass();
132297 + kernexec_fptr_pass_info.reference_pass_name = "ssa";
132298 + kernexec_fptr_pass_info.ref_pass_instance_number = 1;
132299 + kernexec_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
132300 +
132301 + kernexec_retaddr_pass_info.pass = make_kernexec_retaddr_pass();
132302 + kernexec_retaddr_pass_info.reference_pass_name = "pro_and_epilogue";
132303 + kernexec_retaddr_pass_info.ref_pass_instance_number = 1;
132304 + kernexec_retaddr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
132305 +
132306 + if (!plugin_default_version_check(version, &gcc_version)) {
132307 + error(G_("incompatible gcc/plugin versions"));
132308 + return 1;
132309 + }
132310 +
132311 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kernexec_plugin_info);
132312 +
132313 + if (TARGET_64BIT == 0)
132314 + return 0;
132315 +
132316 + for (i = 0; i < argc; ++i) {
132317 + if (!strcmp(argv[i].key, "method")) {
132318 + if (!argv[i].value) {
132319 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
132320 + continue;
132321 + }
132322 + if (!strcmp(argv[i].value, "bts")) {
132323 + kernexec_instrument_fptr = kernexec_instrument_fptr_bts;
132324 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_bts;
132325 + } else if (!strcmp(argv[i].value, "or")) {
132326 + kernexec_instrument_fptr = kernexec_instrument_fptr_or;
132327 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_or;
132328 + fix_register("r12", 1, 1);
132329 + } else
132330 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
132331 + continue;
132332 + }
132333 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
132334 + }
132335 + if (!kernexec_instrument_fptr || !kernexec_instrument_retaddr)
132336 + error(G_("no instrumentation method was selected via '-fplugin-arg-%s-method'"), plugin_name);
132337 +
132338 + if (kernexec_instrument_fptr == kernexec_instrument_fptr_or)
132339 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_reload_pass_info);
132340 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_fptr_pass_info);
132341 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_retaddr_pass_info);
132342 +
132343 + return 0;
132344 +}
132345 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
132346 new file mode 100644
132347 index 0000000..f76c1c6
132348 --- /dev/null
132349 +++ b/tools/gcc/latent_entropy_plugin.c
132350 @@ -0,0 +1,470 @@
132351 +/*
132352 + * Copyright 2012-2015 by the PaX Team <pageexec@freemail.hu>
132353 + * Licensed under the GPL v2
132354 + *
132355 + * Note: the choice of the license means that the compilation process is
132356 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
132357 + * but for the kernel it doesn't matter since it doesn't link against
132358 + * any of the gcc libraries
132359 + *
132360 + * gcc plugin to help generate a little bit of entropy from program state,
132361 + * used throughout the uptime of the kernel
132362 + *
132363 + * TODO:
132364 + * - add ipa pass to identify not explicitly marked candidate functions
132365 + * - mix in more program state (function arguments/return values, loop variables, etc)
132366 + * - more instrumentation control via attribute parameters
132367 + *
132368 + * BUGS:
132369 + * - none known
132370 + */
132371 +
132372 +#include "gcc-common.h"
132373 +
132374 +int plugin_is_GPL_compatible;
132375 +
132376 +static GTY(()) tree latent_entropy_decl;
132377 +
132378 +static struct plugin_info latent_entropy_plugin_info = {
132379 + .version = "201504282240",
132380 + .help = NULL
132381 +};
132382 +
132383 +static unsigned HOST_WIDE_INT seed;
132384 +static unsigned HOST_WIDE_INT get_random_const(void)
132385 +{
132386 + unsigned int i;
132387 + unsigned HOST_WIDE_INT ret = 0;
132388 +
132389 + for (i = 0; i < 8 * sizeof ret; i++) {
132390 + ret = (ret << 1) | (seed & 1);
132391 + seed >>= 1;
132392 + if (ret & 1)
132393 + seed ^= 0xD800000000000000ULL;
132394 + }
132395 +
132396 + return ret;
132397 +}
132398 +
132399 +static tree handle_latent_entropy_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
132400 +{
132401 + tree type;
132402 + unsigned long long mask;
132403 +#if BUILDING_GCC_VERSION <= 4007
132404 + VEC(constructor_elt, gc) *vals;
132405 +#else
132406 + vec<constructor_elt, va_gc> *vals;
132407 +#endif
132408 +
132409 + switch (TREE_CODE(*node)) {
132410 + default:
132411 + *no_add_attrs = true;
132412 + error("%qE attribute only applies to functions and variables", name);
132413 + break;
132414 +
132415 + case VAR_DECL:
132416 + if (DECL_INITIAL(*node)) {
132417 + *no_add_attrs = true;
132418 + error("variable %qD with %qE attribute must not be initialized", *node, name);
132419 + break;
132420 + }
132421 +
132422 + if (!TREE_STATIC(*node)) {
132423 + *no_add_attrs = true;
132424 + error("variable %qD with %qE attribute must not be local", *node, name);
132425 + break;
132426 + }
132427 +
132428 + type = TREE_TYPE(*node);
132429 + switch (TREE_CODE(type)) {
132430 + default:
132431 + *no_add_attrs = true;
132432 + 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);
132433 + break;
132434 +
132435 + case RECORD_TYPE: {
132436 + tree field;
132437 + unsigned int nelt = 0;
132438 +
132439 + for (field = TYPE_FIELDS(type); field; nelt++, field = TREE_CHAIN(field)) {
132440 + tree fieldtype;
132441 +
132442 + fieldtype = TREE_TYPE(field);
132443 + if (TREE_CODE(fieldtype) != INTEGER_TYPE) {
132444 + *no_add_attrs = true;
132445 + error("structure variable %qD with %qE attribute has a non-integer field %qE", *node, name, field);
132446 + break;
132447 + }
132448 + }
132449 +
132450 + if (field)
132451 + break;
132452 +
132453 +#if BUILDING_GCC_VERSION <= 4007
132454 + vals = VEC_alloc(constructor_elt, gc, nelt);
132455 +#else
132456 + vec_alloc(vals, nelt);
132457 +#endif
132458 +
132459 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
132460 + tree fieldtype;
132461 +
132462 + fieldtype = TREE_TYPE(field);
132463 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(fieldtype)) - 1);
132464 + mask = 2 * (mask - 1) + 1;
132465 +
132466 + if (TYPE_UNSIGNED(fieldtype))
132467 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cstu(fieldtype, mask & get_random_const()));
132468 + else
132469 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cst(fieldtype, mask & get_random_const()));
132470 + }
132471 +
132472 + DECL_INITIAL(*node) = build_constructor(type, vals);
132473 +//debug_tree(DECL_INITIAL(*node));
132474 + break;
132475 + }
132476 +
132477 + case INTEGER_TYPE:
132478 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(type)) - 1);
132479 + mask = 2 * (mask - 1) + 1;
132480 +
132481 + if (TYPE_UNSIGNED(type))
132482 + DECL_INITIAL(*node) = build_int_cstu(type, mask & get_random_const());
132483 + else
132484 + DECL_INITIAL(*node) = build_int_cst(type, mask & get_random_const());
132485 + break;
132486 +
132487 + case ARRAY_TYPE: {
132488 + tree elt_type, array_size, elt_size;
132489 + unsigned int i, nelt;
132490 +
132491 + elt_type = TREE_TYPE(type);
132492 + elt_size = TYPE_SIZE_UNIT(TREE_TYPE(type));
132493 + array_size = TYPE_SIZE_UNIT(type);
132494 +
132495 + if (TREE_CODE(elt_type) != INTEGER_TYPE || !array_size || TREE_CODE(array_size) != INTEGER_CST) {
132496 + *no_add_attrs = true;
132497 + error("array variable %qD with %qE attribute must be a fixed length integer array type", *node, name);
132498 + break;
132499 + }
132500 +
132501 + nelt = TREE_INT_CST_LOW(array_size) / TREE_INT_CST_LOW(elt_size);
132502 +#if BUILDING_GCC_VERSION <= 4007
132503 + vals = VEC_alloc(constructor_elt, gc, nelt);
132504 +#else
132505 + vec_alloc(vals, nelt);
132506 +#endif
132507 +
132508 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(elt_type)) - 1);
132509 + mask = 2 * (mask - 1) + 1;
132510 +
132511 + for (i = 0; i < nelt; i++)
132512 + if (TYPE_UNSIGNED(elt_type))
132513 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cstu(elt_type, mask & get_random_const()));
132514 + else
132515 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cst(elt_type, mask & get_random_const()));
132516 +
132517 + DECL_INITIAL(*node) = build_constructor(type, vals);
132518 +//debug_tree(DECL_INITIAL(*node));
132519 + break;
132520 + }
132521 + }
132522 + break;
132523 +
132524 + case FUNCTION_DECL:
132525 + break;
132526 + }
132527 +
132528 + return NULL_TREE;
132529 +}
132530 +
132531 +static struct attribute_spec latent_entropy_attr = {
132532 + .name = "latent_entropy",
132533 + .min_length = 0,
132534 + .max_length = 0,
132535 + .decl_required = true,
132536 + .type_required = false,
132537 + .function_type_required = false,
132538 + .handler = handle_latent_entropy_attribute,
132539 +#if BUILDING_GCC_VERSION >= 4007
132540 + .affects_type_identity = false
132541 +#endif
132542 +};
132543 +
132544 +static void register_attributes(void *event_data, void *data)
132545 +{
132546 + register_attribute(&latent_entropy_attr);
132547 +}
132548 +
132549 +static bool gate_latent_entropy(void)
132550 +{
132551 + // don't bother with noreturn functions for now
132552 + if (TREE_THIS_VOLATILE(current_function_decl))
132553 + return false;
132554 +
132555 + // gcc-4.5 doesn't discover some trivial noreturn functions
132556 + if (EDGE_COUNT(EXIT_BLOCK_PTR_FOR_FN(cfun)->preds) == 0)
132557 + return false;
132558 +
132559 + return lookup_attribute("latent_entropy", DECL_ATTRIBUTES(current_function_decl)) != NULL_TREE;
132560 +}
132561 +
132562 +static enum tree_code get_op(tree *rhs)
132563 +{
132564 + static enum tree_code op;
132565 + unsigned HOST_WIDE_INT random_const;
132566 +
132567 + random_const = get_random_const();
132568 +
132569 + switch (op) {
132570 + case BIT_XOR_EXPR:
132571 + op = PLUS_EXPR;
132572 + break;
132573 +
132574 + case PLUS_EXPR:
132575 + if (rhs) {
132576 + op = LROTATE_EXPR;
132577 + random_const &= HOST_BITS_PER_WIDE_INT - 1;
132578 + break;
132579 + }
132580 +
132581 + case LROTATE_EXPR:
132582 + default:
132583 + op = BIT_XOR_EXPR;
132584 + break;
132585 + }
132586 + if (rhs)
132587 + *rhs = build_int_cstu(unsigned_intDI_type_node, random_const);
132588 + return op;
132589 +}
132590 +
132591 +static void perturb_local_entropy(basic_block bb, tree local_entropy)
132592 +{
132593 + gimple_stmt_iterator gsi;
132594 + gimple assign;
132595 + tree addxorrol, rhs;
132596 + enum tree_code op;
132597 +
132598 + op = get_op(&rhs);
132599 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, op, unsigned_intDI_type_node, local_entropy, rhs);
132600 + assign = gimple_build_assign(local_entropy, addxorrol);
132601 + gsi = gsi_after_labels(bb);
132602 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
132603 + update_stmt(assign);
132604 +//debug_bb(bb);
132605 +}
132606 +
132607 +static void perturb_latent_entropy(basic_block bb, tree rhs)
132608 +{
132609 + gimple_stmt_iterator gsi;
132610 + gimple assign;
132611 + tree addxorrol, temp;
132612 +
132613 + // 1. create temporary copy of latent_entropy
132614 + temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
132615 + add_referenced_var(temp);
132616 +
132617 + // 2. read...
132618 + temp = make_ssa_name(temp, NULL);
132619 + assign = gimple_build_assign(temp, latent_entropy_decl);
132620 + SSA_NAME_DEF_STMT(temp) = assign;
132621 + add_referenced_var(latent_entropy_decl);
132622 + gsi = gsi_after_labels(bb);
132623 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
132624 + update_stmt(assign);
132625 +
132626 + // 3. ...modify...
132627 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, get_op(NULL), unsigned_intDI_type_node, temp, rhs);
132628 + temp = make_ssa_name(SSA_NAME_VAR(temp), NULL);
132629 + assign = gimple_build_assign(temp, addxorrol);
132630 + SSA_NAME_DEF_STMT(temp) = assign;
132631 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
132632 + update_stmt(assign);
132633 +
132634 + // 4. ...write latent_entropy
132635 + assign = gimple_build_assign(latent_entropy_decl, temp);
132636 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
132637 + update_stmt(assign);
132638 +}
132639 +
132640 +static unsigned int execute_latent_entropy(void)
132641 +{
132642 + basic_block bb;
132643 + gimple assign;
132644 + gimple_stmt_iterator gsi;
132645 + tree local_entropy;
132646 +
132647 + if (!latent_entropy_decl) {
132648 + varpool_node_ptr node;
132649 +
132650 + FOR_EACH_VARIABLE(node) {
132651 + tree var = NODE_DECL(node);
132652 +
132653 + if (DECL_NAME_LENGTH(var) < sizeof("latent_entropy") - 1)
132654 + continue;
132655 + if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
132656 + continue;
132657 + latent_entropy_decl = var;
132658 +// debug_tree(var);
132659 + break;
132660 + }
132661 + if (!latent_entropy_decl) {
132662 +// debug_tree(current_function_decl);
132663 + return 0;
132664 + }
132665 + }
132666 +
132667 +//fprintf(stderr, "latent_entropy: %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
132668 +
132669 + // 1. create local entropy variable
132670 + local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
132671 + add_referenced_var(local_entropy);
132672 + mark_sym_for_renaming(local_entropy);
132673 +
132674 + // 2. initialize local entropy variable
132675 + bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
132676 + if (dom_info_available_p(CDI_DOMINATORS))
132677 + set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
132678 + gsi = gsi_start_bb(bb);
132679 +
132680 + assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
132681 +// gimple_set_location(assign, loc);
132682 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
132683 + update_stmt(assign);
132684 +//debug_bb(bb);
132685 + gcc_assert(single_succ_p(bb));
132686 + bb = single_succ(bb);
132687 +
132688 + // 3. instrument each BB with an operation on the local entropy variable
132689 + while (bb != EXIT_BLOCK_PTR_FOR_FN(cfun)) {
132690 + perturb_local_entropy(bb, local_entropy);
132691 +//debug_bb(bb);
132692 + bb = bb->next_bb;
132693 + };
132694 +
132695 + // 4. mix local entropy into the global entropy variable
132696 + gcc_assert(single_pred_p(EXIT_BLOCK_PTR_FOR_FN(cfun)));
132697 + perturb_latent_entropy(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)), local_entropy);
132698 +//debug_bb(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)));
132699 + return 0;
132700 +}
132701 +
132702 +static void latent_entropy_start_unit(void *gcc_data, void *user_data)
132703 +{
132704 + tree latent_entropy_type;
132705 +
132706 + seed = get_random_seed(false);
132707 +
132708 + if (in_lto_p)
132709 + return;
132710 +
132711 + // extern volatile u64 latent_entropy
132712 + gcc_assert(TYPE_PRECISION(long_long_unsigned_type_node) == 64);
132713 + latent_entropy_type = build_qualified_type(long_long_unsigned_type_node, TYPE_QUALS(long_long_unsigned_type_node) | TYPE_QUAL_VOLATILE);
132714 + latent_entropy_decl = build_decl(UNKNOWN_LOCATION, VAR_DECL, get_identifier("latent_entropy"), latent_entropy_type);
132715 +
132716 + TREE_STATIC(latent_entropy_decl) = 1;
132717 + TREE_PUBLIC(latent_entropy_decl) = 1;
132718 + TREE_USED(latent_entropy_decl) = 1;
132719 + DECL_PRESERVE_P(latent_entropy_decl) = 1;
132720 + TREE_THIS_VOLATILE(latent_entropy_decl) = 1;
132721 + DECL_EXTERNAL(latent_entropy_decl) = 1;
132722 + DECL_ARTIFICIAL(latent_entropy_decl) = 1;
132723 + lang_hooks.decls.pushdecl(latent_entropy_decl);
132724 +// DECL_ASSEMBLER_NAME(latent_entropy_decl);
132725 +// varpool_finalize_decl(latent_entropy_decl);
132726 +// varpool_mark_needed_node(latent_entropy_decl);
132727 +}
132728 +
132729 +#if BUILDING_GCC_VERSION >= 4009
132730 +namespace {
132731 +static const struct pass_data latent_entropy_pass_data = {
132732 +#else
132733 +static struct gimple_opt_pass latent_entropy_pass = {
132734 + .pass = {
132735 +#endif
132736 + .type = GIMPLE_PASS,
132737 + .name = "latent_entropy",
132738 +#if BUILDING_GCC_VERSION >= 4008
132739 + .optinfo_flags = OPTGROUP_NONE,
132740 +#endif
132741 +#if BUILDING_GCC_VERSION >= 5000
132742 +#elif BUILDING_GCC_VERSION == 4009
132743 + .has_gate = true,
132744 + .has_execute = true,
132745 +#else
132746 + .gate = gate_latent_entropy,
132747 + .execute = execute_latent_entropy,
132748 + .sub = NULL,
132749 + .next = NULL,
132750 + .static_pass_number = 0,
132751 +#endif
132752 + .tv_id = TV_NONE,
132753 + .properties_required = PROP_gimple_leh | PROP_cfg,
132754 + .properties_provided = 0,
132755 + .properties_destroyed = 0,
132756 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
132757 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
132758 +#if BUILDING_GCC_VERSION < 4009
132759 + }
132760 +#endif
132761 +};
132762 +
132763 +#if BUILDING_GCC_VERSION >= 4009
132764 +class latent_entropy_pass : public gimple_opt_pass {
132765 +public:
132766 + latent_entropy_pass() : gimple_opt_pass(latent_entropy_pass_data, g) {}
132767 +#if BUILDING_GCC_VERSION >= 5000
132768 + virtual bool gate(function *) { return gate_latent_entropy(); }
132769 + virtual unsigned int execute(function *) { return execute_latent_entropy(); }
132770 +#else
132771 + bool gate() { return gate_latent_entropy(); }
132772 + unsigned int execute() { return execute_latent_entropy(); }
132773 +#endif
132774 +};
132775 +}
132776 +
132777 +static opt_pass *make_latent_entropy_pass(void)
132778 +{
132779 + return new latent_entropy_pass();
132780 +}
132781 +#else
132782 +static struct opt_pass *make_latent_entropy_pass(void)
132783 +{
132784 + return &latent_entropy_pass.pass;
132785 +}
132786 +#endif
132787 +
132788 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
132789 +{
132790 + const char * const plugin_name = plugin_info->base_name;
132791 + struct register_pass_info latent_entropy_pass_info;
132792 +
132793 + latent_entropy_pass_info.pass = make_latent_entropy_pass();
132794 + latent_entropy_pass_info.reference_pass_name = "optimized";
132795 + latent_entropy_pass_info.ref_pass_instance_number = 1;
132796 + latent_entropy_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
132797 + static const struct ggc_root_tab gt_ggc_r_gt_latent_entropy[] = {
132798 + {
132799 + .base = &latent_entropy_decl,
132800 + .nelt = 1,
132801 + .stride = sizeof(latent_entropy_decl),
132802 + .cb = &gt_ggc_mx_tree_node,
132803 + .pchw = &gt_pch_nx_tree_node
132804 + },
132805 + LAST_GGC_ROOT_TAB
132806 + };
132807 +
132808 + if (!plugin_default_version_check(version, &gcc_version)) {
132809 + error(G_("incompatible gcc/plugin versions"));
132810 + return 1;
132811 + }
132812 +
132813 + register_callback(plugin_name, PLUGIN_INFO, NULL, &latent_entropy_plugin_info);
132814 + register_callback(plugin_name, PLUGIN_START_UNIT, &latent_entropy_start_unit, NULL);
132815 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_latent_entropy);
132816 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &latent_entropy_pass_info);
132817 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
132818 +
132819 + return 0;
132820 +}
132821 diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
132822 new file mode 100644
132823 index 0000000..444b8bd
132824 --- /dev/null
132825 +++ b/tools/gcc/randomize_layout_plugin.c
132826 @@ -0,0 +1,930 @@
132827 +/*
132828 + * Copyright 2014,2015 by Open Source Security, Inc., Brad Spengler <spender@grsecurity.net>
132829 + * and PaX Team <pageexec@freemail.hu>
132830 + * Licensed under the GPL v2
132831 + *
132832 + * Usage:
132833 + * $ # for 4.5/4.6/C based 4.7
132834 + * $ 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
132835 + * $ # for C++ based 4.7/4.8+
132836 + * $ 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
132837 + * $ gcc -fplugin=./randomize_layout_plugin.so test.c -O2
132838 + */
132839 +
132840 +#include "gcc-common.h"
132841 +#include "randomize_layout_seed.h"
132842 +
132843 +#if BUILDING_GCC_MAJOR < 4 || (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR < 6) || \
132844 + (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR == 6 && BUILDING_GCC_PATCHLEVEL < 4)
132845 +#error "The RANDSTRUCT plugin requires GCC 4.6.4 or newer."
132846 +#endif
132847 +
132848 +#define ORIG_TYPE_NAME(node) \
132849 + (TYPE_NAME(TYPE_MAIN_VARIANT(node)) != NULL_TREE ? ((const unsigned char *)IDENTIFIER_POINTER(TYPE_NAME(TYPE_MAIN_VARIANT(node)))) : (const unsigned char *)"anonymous")
132850 +
132851 +int plugin_is_GPL_compatible;
132852 +
132853 +static int performance_mode;
132854 +
132855 +static struct plugin_info randomize_layout_plugin_info = {
132856 + .version = "201402201816",
132857 + .help = "disable\t\t\tdo not activate plugin\n"
132858 + "performance-mode\tenable cacheline-aware layout randomization\n"
132859 +};
132860 +
132861 +/* from old Linux dcache.h */
132862 +static inline unsigned long
132863 +partial_name_hash(unsigned long c, unsigned long prevhash)
132864 +{
132865 + return (prevhash + (c << 4) + (c >> 4)) * 11;
132866 +}
132867 +static inline unsigned int
132868 +name_hash(const unsigned char *name)
132869 +{
132870 + unsigned long hash = 0;
132871 + unsigned int len = strlen((const char *)name);
132872 + while (len--)
132873 + hash = partial_name_hash(*name++, hash);
132874 + return (unsigned int)hash;
132875 +}
132876 +
132877 +static tree handle_randomize_layout_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
132878 +{
132879 + tree type;
132880 +
132881 + *no_add_attrs = true;
132882 + if (TREE_CODE(*node) == FUNCTION_DECL) {
132883 + error("%qE attribute does not apply to functions (%qF)", name, *node);
132884 + return NULL_TREE;
132885 + }
132886 +
132887 + if (TREE_CODE(*node) == PARM_DECL) {
132888 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
132889 + return NULL_TREE;
132890 + }
132891 +
132892 + if (TREE_CODE(*node) == VAR_DECL) {
132893 + error("%qE attribute does not apply to variables (%qD)", name, *node);
132894 + return NULL_TREE;
132895 + }
132896 +
132897 + if (TYPE_P(*node)) {
132898 + type = *node;
132899 + } else {
132900 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
132901 + type = TREE_TYPE(*node);
132902 + }
132903 +
132904 + if (TREE_CODE(type) != RECORD_TYPE) {
132905 + error("%qE attribute used on %qT applies to struct types only", name, type);
132906 + return NULL_TREE;
132907 + }
132908 +
132909 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
132910 + error("%qE attribute is already applied to the type %qT", name, type);
132911 + return NULL_TREE;
132912 + }
132913 +
132914 + *no_add_attrs = false;
132915 +
132916 + return NULL_TREE;
132917 +}
132918 +
132919 +/* set on complete types that we don't need to inspect further at all */
132920 +static tree handle_randomize_considered_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
132921 +{
132922 + *no_add_attrs = false;
132923 + return NULL_TREE;
132924 +}
132925 +
132926 +/*
132927 + * set on types that we've performed a shuffle on, to prevent re-shuffling
132928 + * this does not preclude us from inspecting its fields for potential shuffles
132929 + */
132930 +static tree handle_randomize_performed_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
132931 +{
132932 + *no_add_attrs = false;
132933 + return NULL_TREE;
132934 +}
132935 +
132936 +/*
132937 + * 64bit variant of Bob Jenkins' public domain PRNG
132938 + * 256 bits of internal state
132939 + */
132940 +
132941 +typedef unsigned long long u64;
132942 +
132943 +typedef struct ranctx { u64 a; u64 b; u64 c; u64 d; } ranctx;
132944 +
132945 +#define rot(x,k) (((x)<<(k))|((x)>>(64-(k))))
132946 +static u64 ranval(ranctx *x) {
132947 + u64 e = x->a - rot(x->b, 7);
132948 + x->a = x->b ^ rot(x->c, 13);
132949 + x->b = x->c + rot(x->d, 37);
132950 + x->c = x->d + e;
132951 + x->d = e + x->a;
132952 + return x->d;
132953 +}
132954 +
132955 +static void raninit(ranctx *x, u64 *seed) {
132956 + int i;
132957 +
132958 + x->a = seed[0];
132959 + x->b = seed[1];
132960 + x->c = seed[2];
132961 + x->d = seed[3];
132962 +
132963 + for (i=0; i < 30; ++i)
132964 + (void)ranval(x);
132965 +}
132966 +
132967 +static u64 shuffle_seed[4];
132968 +
132969 +struct partition_group {
132970 + tree tree_start;
132971 + unsigned long start;
132972 + unsigned long length;
132973 +};
132974 +
132975 +static void partition_struct(tree *fields, unsigned long length, struct partition_group *size_groups, unsigned long *num_groups)
132976 +{
132977 + unsigned long i;
132978 + unsigned long accum_size = 0;
132979 + unsigned long accum_length = 0;
132980 + unsigned long group_idx = 0;
132981 +
132982 + gcc_assert(length < INT_MAX);
132983 +
132984 + memset(size_groups, 0, sizeof(struct partition_group) * length);
132985 +
132986 + for (i = 0; i < length; i++) {
132987 + if (size_groups[group_idx].tree_start == NULL_TREE) {
132988 + size_groups[group_idx].tree_start = fields[i];
132989 + size_groups[group_idx].start = i;
132990 + accum_length = 0;
132991 + accum_size = 0;
132992 + }
132993 + accum_size += (unsigned long)int_size_in_bytes(TREE_TYPE(fields[i]));
132994 + accum_length++;
132995 + if (accum_size >= 64) {
132996 + size_groups[group_idx].length = accum_length;
132997 + accum_length = 0;
132998 + group_idx++;
132999 + }
133000 + }
133001 +
133002 + if (size_groups[group_idx].tree_start != NULL_TREE &&
133003 + !size_groups[group_idx].length) {
133004 + size_groups[group_idx].length = accum_length;
133005 + group_idx++;
133006 + }
133007 +
133008 + *num_groups = group_idx;
133009 +}
133010 +
133011 +static void performance_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
133012 +{
133013 + unsigned long i, x;
133014 + struct partition_group size_group[length];
133015 + unsigned long num_groups = 0;
133016 + unsigned long randnum;
133017 +
133018 + partition_struct(newtree, length, (struct partition_group *)&size_group, &num_groups);
133019 + for (i = num_groups - 1; i > 0; i--) {
133020 + struct partition_group tmp;
133021 + randnum = ranval(prng_state) % (i + 1);
133022 + tmp = size_group[i];
133023 + size_group[i] = size_group[randnum];
133024 + size_group[randnum] = tmp;
133025 + }
133026 +
133027 + for (x = 0; x < num_groups; x++) {
133028 + for (i = size_group[x].start + size_group[x].length - 1; i > size_group[x].start; i--) {
133029 + tree tmp;
133030 + if (DECL_BIT_FIELD_TYPE(newtree[i]))
133031 + continue;
133032 + randnum = ranval(prng_state) % (i + 1);
133033 + // we could handle this case differently if desired
133034 + if (DECL_BIT_FIELD_TYPE(newtree[randnum]))
133035 + continue;
133036 + tmp = newtree[i];
133037 + newtree[i] = newtree[randnum];
133038 + newtree[randnum] = tmp;
133039 + }
133040 + }
133041 +}
133042 +
133043 +static void full_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
133044 +{
133045 + unsigned long i, randnum;
133046 +
133047 + for (i = length - 1; i > 0; i--) {
133048 + tree tmp;
133049 + randnum = ranval(prng_state) % (i + 1);
133050 + tmp = newtree[i];
133051 + newtree[i] = newtree[randnum];
133052 + newtree[randnum] = tmp;
133053 + }
133054 +}
133055 +
133056 +/* modern in-place Fisher-Yates shuffle */
133057 +static void shuffle(const_tree type, tree *newtree, unsigned long length)
133058 +{
133059 + unsigned long i;
133060 + u64 seed[4];
133061 + ranctx prng_state;
133062 + const unsigned char *structname;
133063 +
133064 + if (length == 0)
133065 + return;
133066 +
133067 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
133068 +
133069 + structname = ORIG_TYPE_NAME(type);
133070 +
133071 +#ifdef __DEBUG_PLUGIN
133072 + fprintf(stderr, "Shuffling struct %s %p\n", (const char *)structname, type);
133073 +#ifdef __DEBUG_VERBOSE
133074 + debug_tree((tree)type);
133075 +#endif
133076 +#endif
133077 +
133078 + for (i = 0; i < 4; i++) {
133079 + seed[i] = shuffle_seed[i];
133080 + seed[i] ^= name_hash(structname);
133081 + }
133082 +
133083 + raninit(&prng_state, (u64 *)&seed);
133084 +
133085 + if (performance_mode)
133086 + performance_shuffle(newtree, length, &prng_state);
133087 + else
133088 + full_shuffle(newtree, length, &prng_state);
133089 +}
133090 +
133091 +static bool is_flexible_array(const_tree field)
133092 +{
133093 + const_tree fieldtype;
133094 + const_tree typesize;
133095 + const_tree elemtype;
133096 + const_tree elemsize;
133097 +
133098 + fieldtype = TREE_TYPE(field);
133099 + typesize = TYPE_SIZE(fieldtype);
133100 +
133101 + if (TREE_CODE(fieldtype) != ARRAY_TYPE)
133102 + return false;
133103 +
133104 + elemtype = TREE_TYPE(fieldtype);
133105 + elemsize = TYPE_SIZE(elemtype);
133106 +
133107 + /* size of type is represented in bits */
133108 +
133109 + if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE &&
133110 + TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE)
133111 + return true;
133112 +
133113 + if (typesize != NULL_TREE &&
133114 + (TREE_CONSTANT(typesize) && (!TREE_INT_CST_LOW(typesize) ||
133115 + TREE_INT_CST_LOW(typesize) == TREE_INT_CST_LOW(elemsize))))
133116 + return true;
133117 +
133118 + return false;
133119 +}
133120 +
133121 +static int relayout_struct(tree type)
133122 +{
133123 + unsigned long num_fields = (unsigned long)list_length(TYPE_FIELDS(type));
133124 + unsigned long shuffle_length = num_fields;
133125 + tree field;
133126 + tree newtree[num_fields];
133127 + unsigned long i;
133128 + tree list;
133129 + tree variant;
133130 + tree main_variant;
133131 + expanded_location xloc;
133132 +
133133 + if (TYPE_FIELDS(type) == NULL_TREE)
133134 + return 0;
133135 +
133136 + if (num_fields < 2)
133137 + return 0;
133138 +
133139 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
133140 +
133141 + gcc_assert(num_fields < INT_MAX);
133142 +
133143 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)) ||
133144 + lookup_attribute("no_randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))))
133145 + return 0;
133146 +
133147 + /* Workaround for 3rd-party VirtualBox source that we can't modify ourselves */
133148 + if (!strcmp((const char *)ORIG_TYPE_NAME(type), "INTNETTRUNKFACTORY") ||
133149 + !strcmp((const char *)ORIG_TYPE_NAME(type), "RAWPCIFACTORY"))
133150 + return 0;
133151 +
133152 + /* throw out any structs in uapi */
133153 + xloc = expand_location(DECL_SOURCE_LOCATION(TYPE_FIELDS(type)));
133154 +
133155 + if (strstr(xloc.file, "/uapi/"))
133156 + error(G_("attempted to randomize userland API struct %s"), ORIG_TYPE_NAME(type));
133157 +
133158 + for (field = TYPE_FIELDS(type), i = 0; field; field = TREE_CHAIN(field), i++) {
133159 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
133160 + newtree[i] = field;
133161 + }
133162 +
133163 + /*
133164 + * enforce that we don't randomize the layout of the last
133165 + * element of a struct if it's a 0 or 1-length array
133166 + * or a proper flexible array
133167 + */
133168 + if (is_flexible_array(newtree[num_fields - 1]))
133169 + shuffle_length--;
133170 +
133171 + shuffle(type, (tree *)newtree, shuffle_length);
133172 +
133173 + /*
133174 + * set up a bogus anonymous struct field designed to error out on unnamed struct initializers
133175 + * as gcc provides no other way to detect such code
133176 + */
133177 + list = make_node(FIELD_DECL);
133178 + TREE_CHAIN(list) = newtree[0];
133179 + TREE_TYPE(list) = void_type_node;
133180 + DECL_SIZE(list) = bitsize_zero_node;
133181 + DECL_NONADDRESSABLE_P(list) = 1;
133182 + DECL_FIELD_BIT_OFFSET(list) = bitsize_zero_node;
133183 + DECL_SIZE_UNIT(list) = size_zero_node;
133184 + DECL_FIELD_OFFSET(list) = size_zero_node;
133185 + DECL_CONTEXT(list) = type;
133186 + // to satisfy the constify plugin
133187 + TREE_READONLY(list) = 1;
133188 +
133189 + for (i = 0; i < num_fields - 1; i++)
133190 + TREE_CHAIN(newtree[i]) = newtree[i+1];
133191 + TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
133192 +
133193 + main_variant = TYPE_MAIN_VARIANT(type);
133194 + for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant)) {
133195 + TYPE_FIELDS(variant) = list;
133196 + TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
133197 + TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
133198 + }
133199 +
133200 + /*
133201 + * force a re-layout of the main variant
133202 + * the TYPE_SIZE for all variants will be recomputed
133203 + * by finalize_type_size()
133204 + */
133205 + TYPE_SIZE(main_variant) = NULL_TREE;
133206 + layout_type(main_variant);
133207 + gcc_assert(TYPE_SIZE(main_variant) != NULL_TREE);
133208 +
133209 + return 1;
133210 +}
133211 +
133212 +/* from constify plugin */
133213 +static const_tree get_field_type(const_tree field)
133214 +{
133215 + return strip_array_types(TREE_TYPE(field));
133216 +}
133217 +
133218 +/* from constify plugin */
133219 +static bool is_fptr(const_tree fieldtype)
133220 +{
133221 + if (TREE_CODE(fieldtype) != POINTER_TYPE)
133222 + return false;
133223 +
133224 + return TREE_CODE(TREE_TYPE(fieldtype)) == FUNCTION_TYPE;
133225 +}
133226 +
133227 +/* derived from constify plugin */
133228 +static int is_pure_ops_struct(const_tree node)
133229 +{
133230 + const_tree field;
133231 +
133232 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
133233 +
133234 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
133235 + const_tree fieldtype = get_field_type(field);
133236 + enum tree_code code = TREE_CODE(fieldtype);
133237 +
133238 + if (node == fieldtype)
133239 + continue;
133240 +
133241 + if (!is_fptr(fieldtype))
133242 + return 0;
133243 +
133244 + if (code != RECORD_TYPE && code != UNION_TYPE)
133245 + continue;
133246 +
133247 + if (!is_pure_ops_struct(fieldtype))
133248 + return 0;
133249 + }
133250 +
133251 + return 1;
133252 +}
133253 +
133254 +static void randomize_type(tree type)
133255 +{
133256 + tree variant;
133257 +
133258 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
133259 +
133260 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
133261 + return;
133262 +
133263 + if (lookup_attribute("randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))) || is_pure_ops_struct(type))
133264 + relayout_struct(type);
133265 +
133266 + for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
133267 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
133268 + TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("randomize_considered"), NULL_TREE, TYPE_ATTRIBUTES(type));
133269 + }
133270 +#ifdef __DEBUG_PLUGIN
133271 + fprintf(stderr, "Marking randomize_considered on struct %s\n", ORIG_TYPE_NAME(type));
133272 +#ifdef __DEBUG_VERBOSE
133273 + debug_tree(type);
133274 +#endif
133275 +#endif
133276 +}
133277 +
133278 +static void randomize_layout_finish_decl(void *event_data, void *data)
133279 +{
133280 + tree decl = (tree)event_data;
133281 + tree type;
133282 +
133283 + if (decl == NULL_TREE || decl == error_mark_node)
133284 + return;
133285 +
133286 + type = TREE_TYPE(decl);
133287 +
133288 + if (TREE_CODE(decl) != VAR_DECL)
133289 + return;
133290 +
133291 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
133292 + return;
133293 +
133294 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)))
133295 + return;
133296 +
133297 + relayout_decl(decl);
133298 +}
133299 +
133300 +static void finish_type(void *event_data, void *data)
133301 +{
133302 + tree type = (tree)event_data;
133303 +
133304 + if (type == NULL_TREE || type == error_mark_node)
133305 + return;
133306 +
133307 + if (TREE_CODE(type) != RECORD_TYPE)
133308 + return;
133309 +
133310 + if (TYPE_FIELDS(type) == NULL_TREE)
133311 + return;
133312 +
133313 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
133314 + return;
133315 +
133316 +#ifdef __DEBUG_PLUGIN
133317 + fprintf(stderr, "Calling randomize_type on %s\n", ORIG_TYPE_NAME(type));
133318 +#endif
133319 +#ifdef __DEBUG_VERBOSE
133320 + debug_tree(type);
133321 +#endif
133322 + randomize_type(type);
133323 +
133324 + return;
133325 +}
133326 +
133327 +static struct attribute_spec randomize_layout_attr = {
133328 + .name = "randomize_layout",
133329 + // related to args
133330 + .min_length = 0,
133331 + .max_length = 0,
133332 + .decl_required = false,
133333 + // need type declaration
133334 + .type_required = true,
133335 + .function_type_required = false,
133336 + .handler = handle_randomize_layout_attr,
133337 +#if BUILDING_GCC_VERSION >= 4007
133338 + .affects_type_identity = true
133339 +#endif
133340 +};
133341 +
133342 +static struct attribute_spec no_randomize_layout_attr = {
133343 + .name = "no_randomize_layout",
133344 + // related to args
133345 + .min_length = 0,
133346 + .max_length = 0,
133347 + .decl_required = false,
133348 + // need type declaration
133349 + .type_required = true,
133350 + .function_type_required = false,
133351 + .handler = handle_randomize_layout_attr,
133352 +#if BUILDING_GCC_VERSION >= 4007
133353 + .affects_type_identity = true
133354 +#endif
133355 +};
133356 +
133357 +static struct attribute_spec randomize_considered_attr = {
133358 + .name = "randomize_considered",
133359 + // related to args
133360 + .min_length = 0,
133361 + .max_length = 0,
133362 + .decl_required = false,
133363 + // need type declaration
133364 + .type_required = true,
133365 + .function_type_required = false,
133366 + .handler = handle_randomize_considered_attr,
133367 +#if BUILDING_GCC_VERSION >= 4007
133368 + .affects_type_identity = false
133369 +#endif
133370 +};
133371 +
133372 +static struct attribute_spec randomize_performed_attr = {
133373 + .name = "randomize_performed",
133374 + // related to args
133375 + .min_length = 0,
133376 + .max_length = 0,
133377 + .decl_required = false,
133378 + // need type declaration
133379 + .type_required = true,
133380 + .function_type_required = false,
133381 + .handler = handle_randomize_performed_attr,
133382 +#if BUILDING_GCC_VERSION >= 4007
133383 + .affects_type_identity = false
133384 +#endif
133385 +};
133386 +
133387 +static void register_attributes(void *event_data, void *data)
133388 +{
133389 + register_attribute(&randomize_layout_attr);
133390 + register_attribute(&no_randomize_layout_attr);
133391 + register_attribute(&randomize_considered_attr);
133392 + register_attribute(&randomize_performed_attr);
133393 +}
133394 +
133395 +static void check_bad_casts_in_constructor(tree var, tree init)
133396 +{
133397 + unsigned HOST_WIDE_INT idx;
133398 + tree field, val;
133399 + tree field_type, val_type;
133400 +
133401 + FOR_EACH_CONSTRUCTOR_ELT(CONSTRUCTOR_ELTS(init), idx, field, val) {
133402 + if (TREE_CODE(val) == CONSTRUCTOR) {
133403 + check_bad_casts_in_constructor(var, val);
133404 + continue;
133405 + }
133406 +
133407 + /* pipacs' plugin creates franken-arrays that differ from those produced by
133408 + normal code which all have valid 'field' trees. work around this */
133409 + if (field == NULL_TREE)
133410 + continue;
133411 + field_type = TREE_TYPE(field);
133412 + val_type = TREE_TYPE(val);
133413 +
133414 + if (TREE_CODE(field_type) != POINTER_TYPE || TREE_CODE(val_type) != POINTER_TYPE)
133415 + continue;
133416 +
133417 + if (field_type == val_type)
133418 + continue;
133419 +
133420 + field_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(field_type))));
133421 + val_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(val_type))));
133422 +
133423 + if (field_type == void_type_node)
133424 + continue;
133425 + if (field_type == val_type)
133426 + continue;
133427 + if (TREE_CODE(val_type) != RECORD_TYPE)
133428 + continue;
133429 +
133430 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(val_type)))
133431 + continue;
133432 + inform(DECL_SOURCE_LOCATION(var), "found mismatched struct pointer types: %qT and %qT\n", TYPE_MAIN_VARIANT(field_type), TYPE_MAIN_VARIANT(val_type));
133433 + }
133434 +}
133435 +
133436 +/* derived from the constify plugin */
133437 +static void check_global_variables(void *event_data, void *data)
133438 +{
133439 + struct varpool_node *node;
133440 + tree init;
133441 +
133442 + FOR_EACH_VARIABLE(node) {
133443 + tree var = NODE_DECL(node);
133444 + init = DECL_INITIAL(var);
133445 + if (init == NULL_TREE)
133446 + continue;
133447 +
133448 + if (TREE_CODE(init) != CONSTRUCTOR)
133449 + continue;
133450 +
133451 + check_bad_casts_in_constructor(var, init);
133452 + }
133453 +}
133454 +
133455 +static bool dominated_by_is_err(const_tree rhs, basic_block bb)
133456 +{
133457 + basic_block dom;
133458 + gimple dom_stmt;
133459 + gimple call_stmt;
133460 + const_tree dom_lhs;
133461 + const_tree poss_is_err_cond;
133462 + const_tree poss_is_err_func;
133463 + const_tree is_err_arg;
133464 +
133465 + dom = get_immediate_dominator(CDI_DOMINATORS, bb);
133466 + if (!dom)
133467 + return false;
133468 +
133469 + dom_stmt = last_stmt(dom);
133470 + if (!dom_stmt)
133471 + return false;
133472 +
133473 + if (gimple_code(dom_stmt) != GIMPLE_COND)
133474 + return false;
133475 +
133476 + if (gimple_cond_code(dom_stmt) != NE_EXPR)
133477 + return false;
133478 +
133479 + if (!integer_zerop(gimple_cond_rhs(dom_stmt)))
133480 + return false;
133481 +
133482 + poss_is_err_cond = gimple_cond_lhs(dom_stmt);
133483 +
133484 + if (TREE_CODE(poss_is_err_cond) != SSA_NAME)
133485 + return false;
133486 +
133487 + call_stmt = SSA_NAME_DEF_STMT(poss_is_err_cond);
133488 +
133489 + if (gimple_code(call_stmt) != GIMPLE_CALL)
133490 + return false;
133491 +
133492 + dom_lhs = gimple_get_lhs(call_stmt);
133493 + poss_is_err_func = gimple_call_fndecl(call_stmt);
133494 + if (!poss_is_err_func)
133495 + return false;
133496 + if (dom_lhs != poss_is_err_cond)
133497 + return false;
133498 + if (strcmp(DECL_NAME_POINTER(poss_is_err_func), "IS_ERR"))
133499 + return false;
133500 +
133501 + is_err_arg = gimple_call_arg(call_stmt, 0);
133502 + if (!is_err_arg)
133503 + return false;
133504 +
133505 + if (is_err_arg != rhs)
133506 + return false;
133507 +
133508 + return true;
133509 +}
133510 +
133511 +static void handle_local_var_initializers(void)
133512 +{
133513 + tree var;
133514 + unsigned int i;
133515 +
133516 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
133517 + tree init = DECL_INITIAL(var);
133518 + if (!init)
133519 + continue;
133520 + if (TREE_CODE(init) != CONSTRUCTOR)
133521 + continue;
133522 + check_bad_casts_in_constructor(var, init);
133523 + }
133524 +}
133525 +
133526 +/*
133527 + * iterate over all statements to find "bad" casts:
133528 + * those where the address of the start of a structure is cast
133529 + * to a pointer of a structure of a different type, or a
133530 + * structure pointer type is cast to a different structure pointer type
133531 + */
133532 +static unsigned int find_bad_casts(void)
133533 +{
133534 + basic_block bb;
133535 +
133536 + handle_local_var_initializers();
133537 +
133538 + FOR_EACH_BB_FN(bb, cfun) {
133539 + gimple_stmt_iterator gsi;
133540 +
133541 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
133542 + gimple stmt;
133543 + const_tree lhs;
133544 + const_tree lhs_type;
133545 + const_tree rhs1;
133546 + const_tree rhs_type;
133547 + const_tree ptr_lhs_type;
133548 + const_tree ptr_rhs_type;
133549 + const_tree op0;
133550 + const_tree op0_type;
133551 + enum tree_code rhs_code;
133552 +
133553 + stmt = gsi_stmt(gsi);
133554 +
133555 +#ifdef __DEBUG_PLUGIN
133556 +#ifdef __DEBUG_VERBOSE
133557 + debug_gimple_stmt(stmt);
133558 + debug_tree(gimple_get_lhs(stmt));
133559 +#endif
133560 +#endif
133561 +
133562 + if (gimple_code(stmt) != GIMPLE_ASSIGN)
133563 + continue;
133564 +
133565 +#ifdef __DEBUG_PLUGIN
133566 +#ifdef __DEBUG_VERBOSE
133567 + debug_tree(gimple_assign_rhs1(stmt));
133568 +#endif
133569 +#endif
133570 +
133571 + rhs_code = gimple_assign_rhs_code(stmt);
133572 +
133573 + if (rhs_code != ADDR_EXPR && rhs_code != SSA_NAME)
133574 + continue;
133575 +
133576 + lhs = gimple_get_lhs(stmt);
133577 + lhs_type = TREE_TYPE(lhs);
133578 + rhs1 = gimple_assign_rhs1(stmt);
133579 + rhs_type = TREE_TYPE(rhs1);
133580 +
133581 + if (TREE_CODE(rhs_type) != POINTER_TYPE ||
133582 + TREE_CODE(lhs_type) != POINTER_TYPE)
133583 + continue;
133584 +
133585 + ptr_lhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type))));
133586 + ptr_rhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type))));
133587 +
133588 + if (ptr_rhs_type == void_type_node)
133589 + continue;
133590 +
133591 + if (ptr_lhs_type == void_type_node)
133592 + continue;
133593 +
133594 + if (dominated_by_is_err(rhs1, bb))
133595 + continue;
133596 +
133597 + if (TREE_CODE(ptr_rhs_type) != RECORD_TYPE) {
133598 +#ifndef __DEBUG_PLUGIN
133599 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_lhs_type)))
133600 +#endif
133601 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
133602 + continue;
133603 + }
133604 +
133605 + if (rhs_code == SSA_NAME && ptr_lhs_type == ptr_rhs_type)
133606 + continue;
133607 +
133608 + if (rhs_code == ADDR_EXPR) {
133609 + op0 = TREE_OPERAND(rhs1, 0);
133610 +
133611 + if (op0 == NULL_TREE)
133612 + continue;
133613 +
133614 + if (TREE_CODE(op0) != VAR_DECL)
133615 + continue;
133616 +
133617 + op0_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0))));
133618 + if (op0_type == ptr_lhs_type)
133619 + continue;
133620 +
133621 +#ifndef __DEBUG_PLUGIN
133622 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(op0_type)))
133623 +#endif
133624 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, op0_type);
133625 + } else {
133626 + const_tree ssa_name_var = SSA_NAME_VAR(rhs1);
133627 + /* skip bogus type casts introduced by container_of */
133628 + if (ssa_name_var != NULL_TREE && DECL_NAME(ssa_name_var) &&
133629 + !strcmp((const char *)DECL_NAME_POINTER(ssa_name_var), "__mptr"))
133630 + continue;
133631 +#ifndef __DEBUG_PLUGIN
133632 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_rhs_type)))
133633 +#endif
133634 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
133635 + }
133636 +
133637 + }
133638 + }
133639 + return 0;
133640 +}
133641 +
133642 +#if BUILDING_GCC_VERSION >= 4009
133643 +static const struct pass_data randomize_layout_bad_cast_data = {
133644 +#else
133645 +static struct gimple_opt_pass randomize_layout_bad_cast = {
133646 + .pass = {
133647 +#endif
133648 + .type = GIMPLE_PASS,
133649 + .name = "randomize_layout_bad_cast",
133650 +#if BUILDING_GCC_VERSION >= 4008
133651 + .optinfo_flags = OPTGROUP_NONE,
133652 +#endif
133653 +#if BUILDING_GCC_VERSION >= 5000
133654 +#elif BUILDING_GCC_VERSION >= 4009
133655 + .has_gate = false,
133656 + .has_execute = true,
133657 +#else
133658 + .gate = NULL,
133659 + .execute = find_bad_casts,
133660 + .sub = NULL,
133661 + .next = NULL,
133662 + .static_pass_number = 0,
133663 +#endif
133664 + .tv_id = TV_NONE,
133665 + .properties_required = PROP_cfg,
133666 + .properties_provided = 0,
133667 + .properties_destroyed = 0,
133668 + .todo_flags_start = 0,
133669 + .todo_flags_finish = TODO_dump_func
133670 +#if BUILDING_GCC_VERSION < 4009
133671 + }
133672 +#endif
133673 +};
133674 +
133675 +#if BUILDING_GCC_VERSION >= 4009
133676 +namespace {
133677 +class randomize_layout_bad_cast : public gimple_opt_pass {
133678 +public:
133679 + randomize_layout_bad_cast() : gimple_opt_pass(randomize_layout_bad_cast_data, g) {}
133680 +#if BUILDING_GCC_VERSION >= 5000
133681 + virtual unsigned int execute(function *) { return find_bad_casts(); }
133682 +#else
133683 + unsigned int execute() { return find_bad_casts(); }
133684 +#endif
133685 +};
133686 +}
133687 +#endif
133688 +
133689 +static struct opt_pass *make_randomize_layout_bad_cast(void)
133690 +{
133691 +#if BUILDING_GCC_VERSION >= 4009
133692 + return new randomize_layout_bad_cast();
133693 +#else
133694 + return &randomize_layout_bad_cast.pass;
133695 +#endif
133696 +}
133697 +
133698 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
133699 +{
133700 + int i;
133701 + const char * const plugin_name = plugin_info->base_name;
133702 + const int argc = plugin_info->argc;
133703 + const struct plugin_argument * const argv = plugin_info->argv;
133704 + bool enable = true;
133705 + int obtained_seed = 0;
133706 + struct register_pass_info randomize_layout_bad_cast_info;
133707 +
133708 + randomize_layout_bad_cast_info.pass = make_randomize_layout_bad_cast();
133709 + randomize_layout_bad_cast_info.reference_pass_name = "ssa";
133710 + randomize_layout_bad_cast_info.ref_pass_instance_number = 1;
133711 + randomize_layout_bad_cast_info.pos_op = PASS_POS_INSERT_AFTER;
133712 +
133713 + if (!plugin_default_version_check(version, &gcc_version)) {
133714 + error(G_("incompatible gcc/plugin versions"));
133715 + return 1;
133716 + }
133717 +
133718 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
133719 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
133720 + enable = false;
133721 + }
133722 +
133723 + for (i = 0; i < argc; ++i) {
133724 + if (!strcmp(argv[i].key, "disable")) {
133725 + enable = false;
133726 + continue;
133727 + }
133728 + if (!strcmp(argv[i].key, "performance-mode")) {
133729 + performance_mode = 1;
133730 + continue;
133731 + }
133732 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
133733 + }
133734 +
133735 + if (strlen(randstruct_seed) != 64) {
133736 + error(G_("invalid seed value supplied for %s plugin"), plugin_name);
133737 + return 1;
133738 + }
133739 + obtained_seed = sscanf(randstruct_seed, "%016llx%016llx%016llx%016llx",
133740 + &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
133741 + if (obtained_seed != 4) {
133742 + error(G_("Invalid seed supplied for %s plugin"), plugin_name);
133743 + return 1;
133744 + }
133745 +
133746 + register_callback(plugin_name, PLUGIN_INFO, NULL, &randomize_layout_plugin_info);
133747 + if (enable) {
133748 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
133749 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &randomize_layout_bad_cast_info);
133750 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
133751 + register_callback(plugin_name, PLUGIN_FINISH_DECL, randomize_layout_finish_decl, NULL);
133752 + }
133753 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
133754 +
133755 + return 0;
133756 +}
133757 diff --git a/tools/gcc/size_overflow_plugin/.gitignore b/tools/gcc/size_overflow_plugin/.gitignore
133758 new file mode 100644
133759 index 0000000..c4b24b9
133760 --- /dev/null
133761 +++ b/tools/gcc/size_overflow_plugin/.gitignore
133762 @@ -0,0 +1,3 @@
133763 +disable_size_overflow_hash.h
133764 +size_overflow_hash.h
133765 +size_overflow_hash_aux.h
133766 diff --git a/tools/gcc/size_overflow_plugin/Makefile b/tools/gcc/size_overflow_plugin/Makefile
133767 new file mode 100644
133768 index 0000000..f74d85a
133769 --- /dev/null
133770 +++ b/tools/gcc/size_overflow_plugin/Makefile
133771 @@ -0,0 +1,28 @@
133772 +HOST_EXTRACXXFLAGS += $(call hostcc-option, -fno-ipa-icf)
133773 +
133774 +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
133775 +always := $($(HOSTLIBS)-y)
133776 +
133777 +size_overflow_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c))
133778 +
133779 +$(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
133780 +
133781 +quiet_cmd_build_size_overflow_hash = GENHASH $@
133782 + cmd_build_size_overflow_hash = \
133783 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash -d $< -o $@
133784 +$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
133785 + $(call if_changed,build_size_overflow_hash)
133786 +
133787 +quiet_cmd_build_size_overflow_hash_aux = GENHASH $@
133788 + cmd_build_size_overflow_hash_aux = \
133789 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash_aux -d $< -o $@
133790 +$(objtree)/$(obj)/size_overflow_hash_aux.h: $(src)/size_overflow_hash_aux.data FORCE
133791 + $(call if_changed,build_size_overflow_hash_aux)
133792 +
133793 +quiet_cmd_build_disable_size_overflow_hash = GENHASH $@
133794 + cmd_build_disable_size_overflow_hash = \
133795 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s disable_size_overflow_hash -d $< -o $@
133796 +$(objtree)/$(obj)/disable_size_overflow_hash.h: $(src)/disable_size_overflow_hash.data FORCE
133797 + $(call if_changed,build_disable_size_overflow_hash)
133798 +
133799 +targets += size_overflow_hash.h size_overflow_hash_aux.h disable_size_overflow_hash.h
133800 diff --git a/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
133801 new file mode 100644
133802 index 0000000..07f2628
133803 --- /dev/null
133804 +++ b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
133805 @@ -0,0 +1,12424 @@
133806 +disable_so_interrupt_pnode_gru_message_queue_desc_4 interrupt_pnode gru_message_queue_desc 0 4 NULL
133807 +disable_so_bch_btree_insert_fndecl_12 bch_btree_insert fndecl 0 12 NULL
133808 +disable_so_macvlan_sync_address_fndecl_22 macvlan_sync_address fndecl 0 22 NULL nohasharray
133809 +disable_so_sil_iowrite8_fndecl_22 sil_iowrite8 fndecl 3-2 22 &disable_so_macvlan_sync_address_fndecl_22
133810 +disable_so_addr_to_user_sctp_pf_23 addr_to_user sctp_pf 0 23 NULL nohasharray
133811 +disable_so_signalquality_rtl_stats_23 signalquality rtl_stats 0 23 &disable_so_addr_to_user_sctp_pf_23
133812 +disable_so_sem_otime_semid64_ds_29 sem_otime semid64_ds 0 29 NULL
133813 +disable_so_rec8b_ide_timing_33 rec8b ide_timing 0 33 NULL
133814 +disable_so_stime_task_struct_41 stime task_struct 0 41 NULL nohasharray
133815 +disable_so_ulist_rbtree_search_fndecl_41 ulist_rbtree_search fndecl 2 41 &disable_so_stime_task_struct_41
133816 +disable_so_pfuze100_set_ramp_delay_fndecl_52 pfuze100_set_ramp_delay fndecl 0-2 52 NULL
133817 +disable_so_make_sockaddr_fndecl_54 make_sockaddr fndecl 2 54 NULL
133818 +disable_so_mmap_min_addr_vardecl_56 mmap_min_addr vardecl 0 56 NULL nohasharray
133819 +disable_so_mwl8k_cmd_get_watchdog_bitmap_fndecl_56 mwl8k_cmd_get_watchdog_bitmap fndecl 0 56 &disable_so_mmap_min_addr_vardecl_56
133820 +disable_so_panel_power_down_delay_cdv_intel_dp_59 panel_power_down_delay cdv_intel_dp 0 59 NULL
133821 +disable_so_max_ref_div_radeon_pll_60 max_ref_div radeon_pll 0 60 NULL
133822 +disable_so_penirq_recheck_delay_usecs_ads7846_81 penirq_recheck_delay_usecs ads7846 0 81 NULL
133823 +disable_so_cobalt_query_dv_timings_fndecl_82 cobalt_query_dv_timings fndecl 0 82 NULL
133824 +disable_so_timeout_slgt_info_83 timeout slgt_info 0 83 NULL
133825 +disable_so_radio_syn_reserved_addr28_b43_nphy_channeltab_entry_rev3_92 radio_syn_reserved_addr28 b43_nphy_channeltab_entry_rev3 0 92 NULL
133826 +disable_so_vsc824x_ack_interrupt_fndecl_109 vsc824x_ack_interrupt fndecl 0 109 NULL
133827 +disable_so_scan_timing_sh_keysc_info_117 scan_timing sh_keysc_info 0 117 NULL
133828 +disable_so_cp_table_gpu_addr_radeon_rlc_124 cp_table_gpu_addr radeon_rlc 0 124 NULL
133829 +disable_so_mpihelp_mul_karatsuba_case_fndecl_125 mpihelp_mul_karatsuba_case fndecl 3-5 125 NULL nohasharray
133830 +disable_so_g84_cipher_object_ctor_fndecl_125 g84_cipher_object_ctor fndecl 0 125 &disable_so_mpihelp_mul_karatsuba_case_fndecl_125
133831 +disable_so_current_nat_addr_fndecl_130 current_nat_addr fndecl 0-2 130 NULL
133832 +disable_so_qla2x00_gid_pt_rsp_size_fndecl_134 qla2x00_gid_pt_rsp_size fndecl 0 134 NULL
133833 +disable_so_zd_check_signal_fndecl_139 zd_check_signal fndecl 0-2 139 NULL
133834 +disable_so_qlcnic_83xx_interrupt_test_fndecl_160 qlcnic_83xx_interrupt_test fndecl 0 160 NULL
133835 +disable_so_show_cpu_clock_sel_fndecl_161 show_cpu_clock_sel fndecl 0 161 NULL
133836 +disable_so_zd_usb_iowrite16v_async_fndecl_163 zd_usb_iowrite16v_async fndecl 3 163 NULL
133837 +disable_so_si_get_mclk_frequency_ratio_fndecl_169 si_get_mclk_frequency_ratio fndecl 0-1 169 NULL
133838 +disable_so_vactive_vblank_hi_detailed_pixel_timing_173 vactive_vblank_hi detailed_pixel_timing 0 173 NULL
133839 +disable_so_ecryptfs_hash_bits_vardecl_messaging_c_174 ecryptfs_hash_bits vardecl_messaging.c 0 174 NULL
133840 +disable_so_addr_efx_endpoint_page_189 addr efx_endpoint_page 0 189 NULL
133841 +disable_so_uptime_proc_open_fndecl_190 uptime_proc_open fndecl 0 190 NULL
133842 +disable_so_mtrr_tom2_vardecl_198 mtrr_tom2 vardecl 0 198 NULL
133843 +disable_so_addr_sh_eth_txdesc_201 addr sh_eth_txdesc 0 201 NULL
133844 +disable_so_ocfs2_info_handle_uuid_fndecl_202 ocfs2_info_handle_uuid fndecl 0 202 NULL
133845 +disable_so_nf_oaktrail_hdmi_clock_216 nf oaktrail_hdmi_clock 0 216 NULL
133846 +disable_so_cpufreq_p4_setdc_fndecl_226 cpufreq_p4_setdc fndecl 1-2 226 NULL
133847 +disable_so_ieee80211_aes_ccm_decrypt_fndecl_227 ieee80211_aes_ccm_decrypt fndecl 0-5-7 227 NULL
133848 +disable_so_l1oip_4bit_to_law_fndecl_247 l1oip_4bit_to_law fndecl 0-2 247 NULL
133849 +disable_so_tune_timeout_vardecl_radio_si470x_common_c_250 tune_timeout vardecl_radio-si470x-common.c 0 250 NULL
133850 +disable_so_ieee80211_aes_cmac_key_setup_fndecl_254 ieee80211_aes_cmac_key_setup fndecl 2 254 NULL
133851 +disable_so_padlock_sha1_finup_fndecl_258 padlock_sha1_finup fndecl 0 258 NULL
133852 +disable_so_iwl_dbgfs_interrupt_read_fndecl_261 iwl_dbgfs_interrupt_read fndecl 3-0 261 NULL
133853 +disable_so_c2_del_addr_fndecl_280 c2_del_addr fndecl 2-3 280 NULL
133854 +disable_so_get_systime_stmmac_hwtimestamp_281 get_systime stmmac_hwtimestamp 0 281 NULL
133855 +disable_so_xfrm_flowi_saddr_fndecl_287 xfrm_flowi_saddr fndecl 2 287 NULL
133856 +disable_so_lifetime_route_info_291 lifetime route_info 0 291 NULL
133857 +disable_so_mtime_cifs_unix_set_info_args_293 mtime cifs_unix_set_info_args 0 293 NULL
133858 +disable_so_sense_addr_mscp_296 sense_addr mscp 0 296 NULL
133859 +disable_so_module_addr_max_rx_vardecl_module_c_304 module_addr_max_rx vardecl_module.c 0 304 NULL
133860 +disable_so_cy8ctmg110_set_sleepmode_fndecl_309 cy8ctmg110_set_sleepmode fndecl 0 309 NULL
133861 +disable_so_signal_cck_phy_hdr_312 signal cck_phy_hdr 0 312 NULL
133862 +disable_so_i915_ring_freq_table_fndecl_313 i915_ring_freq_table fndecl 0 313 NULL
133863 +disable_so_vga16fb_clock_chip_fndecl_316 vga16fb_clock_chip fndecl 2 316 NULL
133864 +disable_so_abituguru_send_address_fndecl_319 abituguru_send_address fndecl 3 319 NULL
133865 +disable_so_err_hci_request_321 err hci_request 0 321 NULL
133866 +disable_so_timeout_sg_io_hdr_322 timeout sg_io_hdr 0 322 NULL
133867 +disable_so_crypto_aead_maxauthsize_fndecl_331 crypto_aead_maxauthsize fndecl 0 331 NULL
133868 +disable_so_gru_first_node_paddr_vardecl_x2apic_uv_x_c_335 gru_first_node_paddr vardecl_x2apic_uv_x.c 0 335 NULL
133869 +disable_so_bitmap_subset_fndecl_340 bitmap_subset fndecl 3 340 NULL
133870 +disable_so_intr_timer_vnic_fc_config_342 intr_timer vnic_fc_config 0 342 NULL
133871 +disable_so_abort_timeout_iscsi_session_343 abort_timeout iscsi_session 0 343 NULL
133872 +disable_so_crypto_authenc_esn_verify_fndecl_345 crypto_authenc_esn_verify fndecl 0 345 NULL
133873 +disable_so_dn_hash_dump_zone_fndecl_347 dn_hash_dump_zone fndecl 0 347 NULL
133874 +disable_so_new_center_freq_seg0_ieee80211_wide_bw_chansw_ie_350 new_center_freq_seg0 ieee80211_wide_bw_chansw_ie 0 350 NULL
133875 +disable_so_ata_probe_timeout_vardecl_libata_core_c_353 ata_probe_timeout vardecl_libata-core.c 0 353 NULL
133876 +disable_so_posix_cpu_clock_get_fndecl_354 posix_cpu_clock_get fndecl 1 354 NULL
133877 +disable_so_ivtv_msleep_timeout_fndecl_356 ivtv_msleep_timeout fndecl 1 356 NULL nohasharray
133878 +disable_so_wrmsrl_amd_safe_fndecl_356 wrmsrl_amd_safe fndecl 0 356 &disable_so_ivtv_msleep_timeout_fndecl_356
133879 +disable_so_bp_tss_segment_16_362 bp tss_segment_16 0 362 NULL
133880 +disable_so_btree_level_jset_372 btree_level jset 0 372 NULL
133881 +disable_so_addr_mlx5_wqe_data_seg_376 addr mlx5_wqe_data_seg 0 376 NULL
133882 +disable_so_pos_encryptor_desc_380 pos encryptor_desc 0 380 NULL
133883 +disable_so_des4_idmac_desc_64addr_382 des4 idmac_desc_64addr 0 382 NULL
133884 +disable_so_huptimer_isdn_net_local_s_386 huptimer isdn_net_local_s 0 386 NULL
133885 +disable_so_ali_settimer_fndecl_390 ali_settimer fndecl 1 390 NULL
133886 +disable_so_show_constraint_time_window_us_fndecl_393 show_constraint_time_window_us fndecl 0 393 NULL nohasharray
133887 +disable_so_queue_con_delay_fndecl_393 queue_con_delay fndecl 2 393 &disable_so_show_constraint_time_window_us_fndecl_393
133888 +disable_so_btrfs_insert_delayed_item_fndecl_394 btrfs_insert_delayed_item fndecl 0 394 NULL nohasharray
133889 +disable_so_reg_w_fndecl_394 reg_w fndecl 3 394 &disable_so_btrfs_insert_delayed_item_fndecl_394
133890 +disable_so_liquidio_ptp_adjfreq_fndecl_396 liquidio_ptp_adjfreq fndecl 2 396 NULL
133891 +disable_so_freq_dvbt_set_parameters_msg_404 freq dvbt_set_parameters_msg 0 404 NULL
133892 +disable_so_uid_btrfs_inode_item_419 uid btrfs_inode_item 0 419 NULL
133893 +disable_so_cuid_ipc64_perm_421 cuid ipc64_perm 0 421 NULL
133894 +disable_so_addr_nvkm_fb_tile_430 addr nvkm_fb_tile 0 430 NULL
133895 +disable_so_st_ctime_nsec_stat_435 st_ctime_nsec stat 0 435 NULL nohasharray
133896 +disable_so_end_seq_tcp_skb_cb_435 end_seq tcp_skb_cb 0 435 &disable_so_st_ctime_nsec_stat_435
133897 +disable_so_ttime_samples_cfq_ttime_442 ttime_samples cfq_ttime 0 442 NULL
133898 +disable_so_snd_timer_interrupt_fndecl_465 snd_timer_interrupt fndecl 2 465 NULL
133899 +disable_so_min_img_ir_timing_range_466 min img_ir_timing_range 0 466 NULL
133900 +disable_so_freq_wmi_cancel_remain_on_chnl_event_472 freq wmi_cancel_remain_on_chnl_event 0 472 NULL
133901 +disable_so_prism54_set_mac_address_fndecl_477 prism54_set_mac_address fndecl 0 477 NULL
133902 +disable_so_ccp_run_xts_aes_cmd_fndecl_481 ccp_run_xts_aes_cmd fndecl 0 481 NULL
133903 +disable_so_queue_time_cqm_rmid_entry_485 queue_time cqm_rmid_entry 0 485 NULL
133904 +disable_so_hpi_sample_clock_query_local_rate_fndecl_487 hpi_sample_clock_query_local_rate fndecl 1-0 487 NULL
133905 +disable_so_bcma_chipco_get_alp_clock_fndecl_488 bcma_chipco_get_alp_clock fndecl 0 488 NULL
133906 +disable_so_musb_read_txhubaddr_fndecl_495 musb_read_txhubaddr fndecl 2-0 495 NULL
133907 +disable_so_timestamp_discovery_state_508 timestamp discovery_state 0 508 NULL
133908 +disable_so_autosleep_show_fndecl_509 autosleep_show fndecl 0 509 NULL
133909 +disable_so_dx_major_hash_ocfs2_dx_entry_517 dx_major_hash ocfs2_dx_entry 0 517 NULL
133910 +disable_so_rhashtable_insert_slow_fndecl_525 rhashtable_insert_slow fndecl 0 525 NULL
133911 +disable_so_vaddr_page_fndecl_526 vaddr_page fndecl 0 526 NULL
133912 +disable_so_apei_check_mce_fndecl_561 apei_check_mce fndecl 0 561 NULL
133913 +disable_so_cifs_convert_address_fndecl_567 cifs_convert_address fndecl 3 567 NULL
133914 +disable_so_nla_put_be32_fndecl_572 nla_put_be32 fndecl 0-3 572 NULL
133915 +disable_so_dn_username2sockaddr_fndecl_573 dn_username2sockaddr fndecl 0-2 573 NULL
133916 +disable_so_compat_sys_timer_settime_fndecl_577 compat_sys_timer_settime fndecl 1 577 NULL
133917 +disable_so_hash_extent_data_ref_fndecl_581 hash_extent_data_ref fndecl 0-1-2-3 581 NULL
133918 +disable_so_addr_buffer1_cmd_desc_type0_591 addr_buffer1 cmd_desc_type0 0 591 NULL
133919 +disable_so_acpi_os_prepare_extended_sleep_fndecl_597 acpi_os_prepare_extended_sleep fndecl 0-2 597 NULL
133920 +disable_so_mdio_addr_port_info_608 mdio_addr port_info 0 608 NULL
133921 +disable_so_dl_runtime_dl_bandwidth_609 dl_runtime dl_bandwidth 0 609 NULL
133922 +disable_so_sense_addr_asc_scsiq_1_628 sense_addr asc_scsiq_1 0 628 NULL
133923 +disable_so_x86_cache_max_rmid_cpuinfo_x86_631 x86_cache_max_rmid cpuinfo_x86 0 631 NULL
133924 +disable_so_wm8978_set_dai_clkdiv_fndecl_638 wm8978_set_dai_clkdiv fndecl 3-0 638 NULL
133925 +disable_so_new_cpufreq_freqs_646 new cpufreq_freqs 0 646 NULL
133926 +disable_so_max_offchan_duration_iwl_tdls_channel_switch_timing_649 max_offchan_duration iwl_tdls_channel_switch_timing 0 649 NULL
133927 +disable_so_i_ctime_nsec_ocfs2_dinode_657 i_ctime_nsec ocfs2_dinode 0 657 NULL
133928 +disable_so_req_dma_addr_generic_pdu_resc_661 req_dma_addr generic_pdu_resc 0 661 NULL
133929 +disable_so_minor_hash_fname_673 minor_hash fname 0 673 NULL
133930 +disable_so_sprintf_temp_from_reg_fndecl_675 sprintf_temp_from_reg fndecl 0-3 675 NULL
133931 +disable_so_cpu_freq_to_power_fndecl_677 cpu_freq_to_power fndecl 0-2 677 NULL
133932 +disable_so_timbradio_vidioc_s_frequency_fndecl_688 timbradio_vidioc_s_frequency fndecl 0 688 NULL
133933 +disable_so_target_bfa_bsg_rport_scsi_addr_s_690 target bfa_bsg_rport_scsi_addr_s 0 690 NULL
133934 +disable_so_cs_addr_snd_ak4xxx_private_693 cs_addr snd_ak4xxx_private 0 693 NULL
133935 +disable_so_s3_set_pixclock_fndecl_694 s3_set_pixclock fndecl 2 694 NULL
133936 +disable_so_write_gracetime_fndecl_705 write_gracetime fndecl 0 705 NULL
133937 +disable_so_smack_task_getpgid_fndecl_708 smack_task_getpgid fndecl 0 708 NULL
133938 +disable_so_wl1251_acx_service_period_timeout_fndecl_709 wl1251_acx_service_period_timeout fndecl 0 709 NULL
133939 +disable_so_gid_ubifs_ino_node_712 gid ubifs_ino_node 0 712 NULL
133940 +disable_so___sony_nc_kbd_backlight_timeout_set_fndecl_713 __sony_nc_kbd_backlight_timeout_set fndecl 1 713 NULL
133941 +disable_so_watchdog_init_timeout_fndecl_721 watchdog_init_timeout fndecl 2 721 NULL
133942 +disable_so_led_on_time_adp8870_backlight_platform_data_723 led_on_time adp8870_backlight_platform_data 0 723 NULL
133943 +disable_so_txhubaddr_musb_csr_regs_727 txhubaddr musb_csr_regs 0 727 NULL
133944 +disable_so_flexonenand_addr_fndecl_731 flexonenand_addr fndecl 0-2 731 NULL
133945 +disable_so_scan_timestamp_local_info_733 scan_timestamp local_info 0 733 NULL
133946 +disable_so_brcmf_dongle_scantime_fndecl_735 brcmf_dongle_scantime fndecl 2-3-4-0 735 NULL
133947 +disable_so_pg_delay_d_vardecl_pktgen_c_748 pg_delay_d vardecl_pktgen.c 0 748 NULL
133948 +disable_so_current_sit_addr_fndecl_752 current_sit_addr fndecl 0-2 752 NULL
133949 +disable_so_mix_msr_src_node_conf_t_769 mix_msr src_node_conf_t 0 769 NULL
133950 +disable_so_sha1_mb_async_final_fndecl_780 sha1_mb_async_final fndecl 0 780 NULL
133951 +disable_so_dma_addr_ipw2100_rx_packet_785 dma_addr ipw2100_rx_packet 0 785 NULL
133952 +disable_so_addrHigh_lpfc_pde7_802 addrHigh lpfc_pde7 0 802 NULL
133953 +disable_so_frequency_cpufreq_frequency_table_805 frequency cpufreq_frequency_table 0 805 NULL
133954 +disable_so_timer_int_req_nes_device_806 timer_int_req nes_device 0 806 NULL
133955 +disable_so_if_freq_mxl5005s_config_819 if_freq mxl5005s_config 0 819 NULL
133956 +disable_so_radix_tree_lookup_fndecl_821 radix_tree_lookup fndecl 2 821 NULL
133957 +disable_so_subdivision_dma_buffparms_826 subdivision dma_buffparms 0 826 NULL
133958 +disable_so_HYPERVISOR_event_channel_op_fndecl_838 HYPERVISOR_event_channel_op fndecl 0 838 NULL
133959 +disable_so_dm_jiffies_to_msec64_fndecl_843 dm_jiffies_to_msec64 fndecl 1-0 843 NULL
133960 +disable_so_trim_bitmaps_fndecl_845 trim_bitmaps fndecl 0-3-4-5 845 NULL
133961 +disable_so_cg_spll_spread_spectrum_2_ni_clock_registers_846 cg_spll_spread_spectrum_2 ni_clock_registers 0 846 NULL
133962 +disable_so_xfs_btree_increment_fndecl_856 xfs_btree_increment fndecl 0 856 NULL nohasharray
133963 +disable_so_xfs_btree_ptr_offset_fndecl_856 xfs_btree_ptr_offset fndecl 0-2 856 &disable_so_xfs_btree_increment_fndecl_856
133964 +disable_so_put_unaligned_be32_fndecl_861 put_unaligned_be32 fndecl 1 861 NULL
133965 +disable_so_acpi_os_map_generic_address_fndecl_862 acpi_os_map_generic_address fndecl 0 862 NULL
133966 +disable_so_mpll_func_cntl_1_ci_clock_registers_864 mpll_func_cntl_1 ci_clock_registers 0 864 NULL
133967 +disable_so_buffer_warning_time_budget_870 buffer_warning_time budget 0 870 NULL
133968 +disable_so_imr_sourceaddr_ip_mreq_source_875 imr_sourceaddr ip_mreq_source 0 875 NULL
133969 +disable_so_msi2500_s_frequency_fndecl_879 msi2500_s_frequency fndecl 0 879 NULL
133970 +disable_so_tx_bd_haddr_hi_bnx2_tx_bd_881 tx_bd_haddr_hi bnx2_tx_bd 0 881 NULL
133971 +disable_so_wmi_addr_fndecl_882 wmi_addr fndecl 2 882 NULL
133972 +disable_so_rt6_info_hash_nhsfn_fndecl_886 rt6_info_hash_nhsfn fndecl 0-1 886 NULL
133973 +disable_so_snd_seq_oss_timer_stop_fndecl_904 snd_seq_oss_timer_stop fndecl 0 904 NULL
133974 +disable_so_addr_lo_rx_desc_909 addr_lo rx_desc 0 909 NULL
133975 +disable_so_bx_tss_segment_16_926 bx tss_segment_16 0 926 NULL
133976 +disable_so_inactive_time_station_info_927 inactive_time station_info 0 927 NULL
133977 +disable_so_last_reset_jiffies_iwl_rf_reset_931 last_reset_jiffies iwl_rf_reset 0 931 NULL
133978 +disable_so_shm_dtime_shmid64_ds_943 shm_dtime shmid64_ds 0 943 NULL
133979 +disable_so_autosleep_store_fndecl_949 autosleep_store fndecl 0-4 949 NULL nohasharray
133980 +disable_so_sit_base_addr_sit_info_949 sit_base_addr sit_info 0 949 &disable_so_autosleep_store_fndecl_949
133981 +disable_so_ageing_time_net_bridge_957 ageing_time net_bridge 0 957 NULL
133982 +disable_so_set_frequency_shifter_fndecl_959 set_frequency_shifter fndecl 0-2-3 959 NULL
133983 +disable_so_pci_bus_vardecl_bkm_a8_c_960 pci_bus vardecl_bkm_a8.c 0 960 NULL
133984 +disable_so_i_uid_ext2_inode_963 i_uid ext2_inode 0 963 NULL
133985 +disable_so_cpufreq_cpu_get_fndecl_965 cpufreq_cpu_get fndecl 1 965 NULL
133986 +disable_so_tsc_offset_vmcb_control_area_968 tsc_offset vmcb_control_area 0 968 NULL
133987 +disable_so_read_addr_qla8044_minidump_entry_rdmem_977 read_addr qla8044_minidump_entry_rdmem 0 977 NULL
133988 +disable_so_addr1_nphy_rf_control_override_rev2_978 addr1 nphy_rf_control_override_rev2 0 978 NULL
133989 +disable_so_qdisc_class_hash_fndecl_982 qdisc_class_hash fndecl 0-1-2 982 NULL
133990 +disable_so_crypto_register_ahash_fndecl_984 crypto_register_ahash fndecl 0 984 NULL
133991 +disable_so_addr_unlock2_cfi_private_989 addr_unlock2 cfi_private 0 989 NULL
133992 +disable_so_calc_baud_rate_divisor_fndecl_995 calc_baud_rate_divisor fndecl 2 995 NULL
133993 +disable_so_scsi_runtime_suspend_fndecl_1008 scsi_runtime_suspend fndecl 0 1008 NULL
133994 +disable_so_gran_sizek_var_mtrr_state_1012 gran_sizek var_mtrr_state 0 1012 NULL
133995 +disable_so_ax25_uid_info_open_fndecl_1028 ax25_uid_info_open fndecl 0 1028 NULL
133996 +disable_so_sh_mmcif_clock_control_fndecl_1029 sh_mmcif_clock_control fndecl 2 1029 NULL
133997 +disable_so_SYSC_setresgid_fndecl_1032 SYSC_setresgid fndecl 0 1032 NULL
133998 +disable_so_f1x_lookup_addr_in_dct_fndecl_1033 f1x_lookup_addr_in_dct fndecl 0-1-2-3 1033 NULL
133999 +disable_so_ufshcd_pci_runtime_suspend_fndecl_1044 ufshcd_pci_runtime_suspend fndecl 0 1044 NULL
134000 +disable_so_rme9652_set_interrupt_interval_fndecl_1049 rme9652_set_interrupt_interval fndecl 2 1049 NULL
134001 +disable_so_kgdb_validate_break_address_fndecl_1055 kgdb_validate_break_address fndecl 0 1055 NULL
134002 +disable_so_cp_mqd_base_addr_hi_hqd_registers_1058 cp_mqd_base_addr_hi hqd_registers 0 1058 NULL
134003 +disable_so_serial8250_get_divisor_fndecl_1063 serial8250_get_divisor fndecl 2-0 1063 NULL
134004 +disable_so_mpll_func_cntl_ci_clock_registers_1072 mpll_func_cntl ci_clock_registers 0 1072 NULL
134005 +disable_so_dma_addr_iser_tx_desc_1074 dma_addr iser_tx_desc 0 1074 NULL nohasharray
134006 +disable_so_fail_addr_erase_info_1074 fail_addr erase_info 0 1074 &disable_so_dma_addr_iser_tx_desc_1074
134007 +disable_so_timeout_static_key_deferred_1078 timeout static_key_deferred 0 1078 NULL
134008 +disable_so_uid_vardecl_initramfs_c_1083 uid vardecl_initramfs.c 0 1083 NULL
134009 +disable_so_amdgpu_mm_rreg_fndecl_1084 amdgpu_mm_rreg fndecl 0-2 1084 NULL
134010 +disable_so_hash_ip6_expire_fndecl_1088 hash_ip6_expire fndecl 4 1088 NULL
134011 +disable_so_addr_buffer4_cmd_desc_type0_1089 addr_buffer4 cmd_desc_type0 0 1089 NULL
134012 +disable_so__snd_hdac_read_parm_fndecl_1100 _snd_hdac_read_parm fndecl 3-2-0 1100 NULL
134013 +disable_so_mlx5_query_mad_ifc_gids_fndecl_1101 mlx5_query_mad_ifc_gids fndecl 0 1101 NULL
134014 +disable_so_dbgfs_prph_reg_addr_iwl_mvm_1102 dbgfs_prph_reg_addr iwl_mvm 0 1102 NULL
134015 +disable_so_cttimeout_default_fill_info_fndecl_1107 cttimeout_default_fill_info fndecl 4-3-6-0 1107 NULL
134016 +disable_so_expiry_time_cache_head_1108 expiry_time cache_head 0 1108 NULL
134017 +disable_so_dma_desc_set_addr_fndecl_1139 dma_desc_set_addr fndecl 3 1139 NULL
134018 +disable_so_addr_crb_addr_pair_1140 addr crb_addr_pair 0 1140 NULL
134019 +disable_so_sleep_dvb_tuner_ops_1155 sleep dvb_tuner_ops 0 1155 NULL
134020 +disable_so_info_for_irq_fndecl_1159 info_for_irq fndecl 1 1159 NULL
134021 +disable_so_mlx4_ib_find_real_gid_fndecl_1163 mlx4_ib_find_real_gid fndecl 2 1163 NULL
134022 +disable_so_timestamp_perf_cgroup_info_1168 timestamp perf_cgroup_info 0 1168 NULL
134023 +disable_so_mthca_QUERY_FW_fndecl_1176 mthca_QUERY_FW fndecl 0 1176 NULL
134024 +disable_so_fc_exch_set_addr_fndecl_1180 fc_exch_set_addr fndecl 2-3 1180 NULL
134025 +disable_so_rhashtable_rehash_chain_fndecl_1192 rhashtable_rehash_chain fndecl 2 1192 NULL
134026 +disable_so_own_addr_tipc_net_1206 own_addr tipc_net 0 1206 NULL
134027 +disable_so_ip6addrlbl_alloc_fndecl_1212 ip6addrlbl_alloc fndecl 4 1212 NULL
134028 +disable_so_nft_hash_init_fndecl_1216 nft_hash_init fndecl 0 1216 NULL
134029 +disable_so_max_freq_cpufreq_cpuinfo_1219 max_freq cpufreq_cpuinfo 0 1219 NULL
134030 +disable_so_spi_port_rcvhdr_tailaddr_ipath_base_info_1223 spi_port_rcvhdr_tailaddr ipath_base_info 0 1223 NULL
134031 +disable_so_ceph_vxattrcb_dir_rctime_fndecl_1240 ceph_vxattrcb_dir_rctime fndecl 3-0 1240 NULL
134032 +disable_so_cas_interrupt_fndecl_1242 cas_interrupt fndecl 1 1242 NULL nohasharray
134033 +disable_so_set_msr_hyperv_fndecl_1242 set_msr_hyperv fndecl 3 1242 &disable_so_cas_interrupt_fndecl_1242
134034 +disable_so_mmc_rescan_try_freq_fndecl_1249 mmc_rescan_try_freq fndecl 2 1249 NULL
134035 +disable_so_rtsx_pci_write_be32_fndecl_1251 rtsx_pci_write_be32 fndecl 2-3 1251 NULL
134036 +disable_so_sum_sleep_runtime_sched_statistics_1253 sum_sleep_runtime sched_statistics 0 1253 NULL
134037 +disable_so_flags_pt_regs_1254 flags pt_regs 0 1254 NULL
134038 +disable_so_bug10934_timer_txc43128_data_1290 bug10934_timer txc43128_data 0 1290 NULL nohasharray
134039 +disable_so_rq_size_log2_t3_wq_1290 rq_size_log2 t3_wq 0 1290 &disable_so_bug10934_timer_txc43128_data_1290
134040 +disable_so_do_sched_rt_period_timer_fndecl_1292 do_sched_rt_period_timer fndecl 2 1292 NULL
134041 +disable_so_db_dma_address_skd_special_context_1295 db_dma_address skd_special_context 0 1295 NULL
134042 +disable_so_time_stamp_hbq_dmabuf_1300 time_stamp hbq_dmabuf 0 1300 NULL
134043 +disable_so_print_vma_addr_fndecl_1312 print_vma_addr fndecl 2 1312 NULL
134044 +disable_so_max_acl_mac_addrs_wiphy_1316 max_acl_mac_addrs wiphy 0 1316 NULL
134045 +disable_so_shash_async_update_fndecl_1319 shash_async_update fndecl 0 1319 NULL
134046 +disable_so_programm_delay_vardecl_nandsim_c_1320 programm_delay vardecl_nandsim.c 0 1320 NULL
134047 +disable_so_stimescaled_task_struct_1330 stimescaled task_struct 0 1330 NULL nohasharray
134048 +disable_so_p_gma_clock_t_1330 p gma_clock_t 0 1330 &disable_so_stimescaled_task_struct_1330
134049 +disable_so_bitmap_bytes_fndecl_1338 bitmap_bytes fndecl 0-1-2 1338 NULL
134050 +disable_so_max8649_enable_time_fndecl_1340 max8649_enable_time fndecl 0 1340 NULL
134051 +disable_so_sg_set_timeout_fndecl_1360 sg_set_timeout fndecl 0 1360 NULL
134052 +disable_so_mrp_join_time_vardecl_mrp_c_1361 mrp_join_time vardecl_mrp.c 0 1361 NULL
134053 +disable_so_queue_address_queue_properties_1364 queue_address queue_properties 0 1364 NULL
134054 +disable_so_adfs_unix2adfs_time_fndecl_1365 adfs_unix2adfs_time fndecl 2 1365 NULL nohasharray
134055 +disable_so_start_rmt_timer2_fndecl_1365 start_rmt_timer2 fndecl 2 1365 &disable_so_adfs_unix2adfs_time_fndecl_1365
134056 +disable_so_qla2x00_gid_list_size_fndecl_1367 qla2x00_gid_list_size fndecl 0 1367 NULL nohasharray
134057 +disable_so_sr_get_phy_addr_fndecl_1367 sr_get_phy_addr fndecl 0 1367 &disable_so_qla2x00_gid_list_size_fndecl_1367
134058 +disable_so_rb_subtree_last_anon_vma_chain_1370 rb_subtree_last anon_vma_chain 0 1370 NULL
134059 +disable_so_snd_soc_runtime_activate_fndecl_1372 snd_soc_runtime_activate fndecl 2 1372 NULL nohasharray
134060 +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
134061 +disable_so_timer_elsa_hw_1375 timer elsa_hw 0 1375 NULL nohasharray
134062 +disable_so_sched_setscheduler_fndecl_1375 sched_setscheduler fndecl 2-0 1375 &disable_so_timer_elsa_hw_1375 nohasharray
134063 +disable_so_bitmap_check_fndecl_1375 bitmap_check fndecl 3 1375 &disable_so_sched_setscheduler_fndecl_1375
134064 +disable_so_pwr_wake_on_timer_exp_read_fndecl_1379 pwr_wake_on_timer_exp_read fndecl 3-0 1379 NULL
134065 +disable_so_prev_input_time_vardecl_sequencer_c_1380 prev_input_time vardecl_sequencer.c 0 1380 NULL
134066 +disable_so_mii_phy_addr_gem_1381 mii_phy_addr gem 0 1381 NULL
134067 +disable_so_snd_seq_queue_timer_set_tempo_fndecl_1388 snd_seq_queue_timer_set_tempo fndecl 1-2 1388 NULL
134068 +disable_so_efx_ef10_rx_enable_timestamping_fndecl_1394 efx_ef10_rx_enable_timestamping fndecl 0 1394 NULL
134069 +disable_so_xfrm_src_hash_fndecl_1398 xfrm_src_hash fndecl 0-4 1398 NULL
134070 +disable_so_set_pixclock_fndecl_1401 set_pixclock fndecl 2 1401 NULL
134071 +disable_so_start_dma_addr_vardecl_swiotlb_xen_c_1402 start_dma_addr vardecl_swiotlb-xen.c 0 1402 NULL
134072 +disable_so_pcm512x_set_dividers_fndecl_1412 pcm512x_set_dividers fndecl 0 1412 NULL
134073 +disable_so_frequency_tea5761_priv_1416 frequency tea5761_priv 0 1416 NULL
134074 +disable_so_ifa_flags_ifaddrmsg_1431 ifa_flags ifaddrmsg 0 1431 NULL
134075 +disable_so_last_queue_full_time_scsi_device_1432 last_queue_full_time scsi_device 0 1432 NULL
134076 +disable_so_dma_ops_reserve_addresses_fndecl_1438 dma_ops_reserve_addresses fndecl 2-3 1438 NULL
134077 +disable_so_reg_w_fndecl_1440 reg_w fndecl 4-0 1440 NULL
134078 +disable_so_tomoyo_check_inet_address_fndecl_1442 tomoyo_check_inet_address fndecl 0-2-3 1442 NULL
134079 +disable_so_is_oldclock_fndecl_1444 is_oldclock fndecl 1 1444 NULL
134080 +disable_so_width_latch_addr_flash_data_1448 width latch_addr_flash_data 0 1448 NULL
134081 +disable_so_tuner_address_ix2505v_config_1466 tuner_address ix2505v_config 0 1466 NULL
134082 +disable_so_alarm_setitimer_fndecl_1477 alarm_setitimer fndecl 1-0 1477 NULL
134083 +disable_so_enc28j60_rx_interrupt_fndecl_1478 enc28j60_rx_interrupt fndecl 0 1478 NULL
134084 +disable_so_i2c_address_xc4000_config_1488 i2c_address xc4000_config 0 1488 NULL
134085 +disable_so_dx_runtime_sc_1503 dx runtime_sc 0 1503 NULL
134086 +disable_so_tda827x_addr_tda8290_priv_1514 tda827x_addr tda8290_priv 0 1514 NULL
134087 +disable_so_addr_sym_tblmove_1540 addr sym_tblmove 0 1540 NULL
134088 +disable_so_cs_tss_segment_16_1560 cs tss_segment_16 0 1560 NULL
134089 +disable_so_demod_address_drxk_state_1562 demod_address drxk_state 0 1562 NULL
134090 +disable_so_enable_time_regulation_constraints_1573 enable_time regulation_constraints 0 1573 NULL nohasharray
134091 +disable_so_dma_addr_flexcop_usb_1573 dma_addr flexcop_usb 0 1573 &disable_so_enable_time_regulation_constraints_1573
134092 +disable_so_dma_addr_cas_page_1575 dma_addr cas_page 0 1575 NULL
134093 +disable_so_start_read_delay_c_1578 start_read delay_c 0 1578 NULL
134094 +disable_so_complete_crypto_async_request_1579 complete crypto_async_request 2 1579 NULL
134095 +disable_so_cycles_2_us_fndecl_1583 cycles_2_us fndecl 0-1 1583 NULL
134096 +disable_so_pd_timeout_vardecl_pd_c_1584 pd_timeout vardecl_pd.c 0 1584 NULL
134097 +disable_so_last_end_request_cfq_ttime_1591 last_end_request cfq_ttime 0 1591 NULL
134098 +disable_so_addr_sky2_rx_le_1593 addr sky2_rx_le 0 1593 NULL
134099 +disable_so_tick_raw_sched_clock_data_1597 tick_raw sched_clock_data 0 1597 NULL
134100 +disable_so_if_freq_khz_pll_tab_1599 if_freq_khz pll_tab 0 1599 NULL
134101 +disable_so_set_clock_info_fndecl_1600 set_clock_info fndecl 0 1600 NULL
134102 +disable_so_bs_delay_cx24113_state_1602 bs_delay cx24113_state 0 1602 NULL
134103 +disable_so_address_atto_physical_region_description_1608 address atto_physical_region_description 0 1608 NULL
134104 +disable_so_jiffies_force_qs_rcu_state_1611 jiffies_force_qs rcu_state 0 1611 NULL
134105 +disable_so_mpll_ad_func_cntl_si_clock_registers_1615 mpll_ad_func_cntl si_clock_registers 0 1615 NULL
134106 +disable_so___new_c_uuid_parms_from_attrs_fndecl_1628 __new_c_uuid_parms_from_attrs fndecl 0 1628 NULL
134107 +disable_so___btree_sort_fndecl_1629 __btree_sort fndecl 4 1629 NULL
134108 +disable_so_crypto_authenc_encrypt_done_fndecl_1634 crypto_authenc_encrypt_done fndecl 2 1634 NULL
134109 +disable_so_uhci_submit_interrupt_fndecl_1635 uhci_submit_interrupt fndecl 0 1635 NULL
134110 +disable_so_es_tss_segment_16_1639 es tss_segment_16 0 1639 NULL
134111 +disable_so_addrHigh_sge_ieee1212_1649 addrHigh sge_ieee1212 0 1649 NULL
134112 +disable_so_btree_insert_level_fndecl_1651 btree_insert_level fndecl 6 1651 NULL
134113 +disable_so_calc_gus_envelope_time_fndecl_1653 calc_gus_envelope_time fndecl 1-2-3-0 1653 NULL
134114 +disable_so_rhashtable_shrink_fndecl_1657 rhashtable_shrink fndecl 0 1657 NULL
134115 +disable_so_jiffies_next_msi2500_state_1659 jiffies_next msi2500_state 0 1659 NULL
134116 +disable_so_di_gid_dinode_1663 di_gid dinode 0 1663 NULL
134117 +disable_so_address_drm_radeon_surface_alloc_1665 address drm_radeon_surface_alloc 0 1665 NULL
134118 +disable_so_nsec_btrfs_ioctl_timespec_1668 nsec btrfs_ioctl_timespec 0 1668 NULL
134119 +disable_so_uptime_sysinfo_1669 uptime sysinfo 0 1669 NULL
134120 +disable_so_timeout_mgmt_cp_add_advertising_1685 timeout mgmt_cp_add_advertising 0 1685 NULL nohasharray
134121 +disable_so_systime_fndecl_1685 systime fndecl 0 1685 &disable_so_timeout_mgmt_cp_add_advertising_1685 nohasharray
134122 +disable_so_addr0_ulptx_sgl_1685 addr0 ulptx_sgl 0 1685 &disable_so_systime_fndecl_1685
134123 +disable_so_poll_timeout_irlap_cb_1688 poll_timeout irlap_cb 0 1688 NULL nohasharray
134124 +disable_so_tsc_irq_max8925_chip_1688 tsc_irq max8925_chip 0 1688 &disable_so_poll_timeout_irlap_cb_1688
134125 +disable_so_pbl_addr_t3_swrq_1691 pbl_addr t3_swrq 0 1691 NULL
134126 +disable_so_ar_addr_qlc_83xx_quad_entry_1699 ar_addr qlc_83xx_quad_entry 0 1699 NULL
134127 +disable_so_min_freq_softlimit_intel_gen6_power_mgmt_1704 min_freq_softlimit intel_gen6_power_mgmt 0 1704 NULL
134128 +disable_so_spkt_family_sockaddr_pkt_1712 spkt_family sockaddr_pkt 0 1712 NULL
134129 +disable_so_timeout_vardecl_w83877f_wdt_c_1721 timeout vardecl_w83877f_wdt.c 0 1721 NULL
134130 +disable_so_nfs_map_gid_to_group_fndecl_1724 nfs_map_gid_to_group fndecl 4-0 1724 NULL
134131 +disable_so_iram_offset_sst_addr_1727 iram_offset sst_addr 0 1727 NULL
134132 +disable_so_mp_lapic_addr_vardecl_1729 mp_lapic_addr vardecl 0 1729 NULL
134133 +disable_so_apei_write_mce_fndecl_1731 apei_write_mce fndecl 0 1731 NULL
134134 +disable_so_spectrum_stv0900_signal_info_1736 spectrum stv0900_signal_info 0 1736 NULL
134135 +disable_so_hash_ipmark6_expire_fndecl_1741 hash_ipmark6_expire fndecl 4 1741 NULL
134136 +disable_so_r100_mm_rreg_slow_fndecl_1751 r100_mm_rreg_slow fndecl 2-0 1751 NULL
134137 +disable_so_gntdev_ioctl_get_offset_for_vaddr_fndecl_1754 gntdev_ioctl_get_offset_for_vaddr fndecl 0 1754 NULL
134138 +disable_so_cm36651_write_int_time_fndecl_1774 cm36651_write_int_time fndecl 0 1774 NULL
134139 +disable_so_dp_clock_radeon_connector_atom_dig_1775 dp_clock radeon_connector_atom_dig 0 1775 NULL nohasharray
134140 +disable_so_am79c_ack_interrupt_fndecl_1775 am79c_ack_interrupt fndecl 0 1775 &disable_so_dp_clock_radeon_connector_atom_dig_1775
134141 +disable_so_phys_addr_qlcnic_host_tx_ring_1780 phys_addr qlcnic_host_tx_ring 0 1780 NULL nohasharray
134142 +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
134143 +disable_so_select_addr_1_qla83xx_minidump_entry_rdmux2_1790 select_addr_1 qla83xx_minidump_entry_rdmux2 0 1790 NULL
134144 +disable_so___padata_set_cpumasks_fndecl_1793 __padata_set_cpumasks fndecl 0 1793 NULL
134145 +disable_so_padlock_sha_init_fndecl_1815 padlock_sha_init fndecl 0 1815 NULL
134146 +disable_so_acpi_cpufreq_early_init_fndecl_1824 acpi_cpufreq_early_init fndecl 0 1824 NULL
134147 +disable_so_dst_addr_ioat_xor_descriptor_1835 dst_addr ioat_xor_descriptor 0 1835 NULL
134148 +disable_so_sadb_lifetime_bytes_sadb_lifetime_1836 sadb_lifetime_bytes sadb_lifetime 0 1836 NULL
134149 +disable_so_event_box_addr_wl1251_1839 event_box_addr wl1251 0 1839 NULL
134150 +disable_so_addr_ahci_sg_1848 addr ahci_sg 0 1848 NULL
134151 +disable_so_acct_timexpd_task_struct_1854 acct_timexpd task_struct 0 1854 NULL
134152 +disable_so_mkey_lease_timeout_ipath_ibdev_1856 mkey_lease_timeout ipath_ibdev 0 1856 NULL nohasharray
134153 +disable_so_paddr_idt77252_skb_prv_1856 paddr idt77252_skb_prv 0 1856 &disable_so_mkey_lease_timeout_ipath_ibdev_1856
134154 +disable_so_timeout_dmatest_params_1857 timeout dmatest_params 0 1857 NULL
134155 +disable_so_cipso_v4_bitmap_setbit_fndecl_1861 cipso_v4_bitmap_setbit fndecl 2 1861 NULL
134156 +disable_so_sun6i_spi_runtime_resume_fndecl_1869 sun6i_spi_runtime_resume fndecl 0 1869 NULL
134157 +disable_so_shash_ahash_update_fndecl_1877 shash_ahash_update fndecl 0 1877 NULL
134158 +disable_so_ss_family___kernel_sockaddr_storage_1886 ss_family __kernel_sockaddr_storage 0 1886 NULL
134159 +disable_so_swap_time_bloom_pair_1898 swap_time bloom_pair 0 1898 NULL nohasharray
134160 +disable_so_blank_time_dce6_wm_params_1898 blank_time dce6_wm_params 0 1898 &disable_so_swap_time_bloom_pair_1898
134161 +disable_so_btree_order_fndecl_1901 btree_order fndecl 0 1901 NULL
134162 +disable_so_sil_iowrite16_fndecl_1906 sil_iowrite16 fndecl 3-2 1906 NULL
134163 +disable_so_service_timer_period_i40e_pf_1923 service_timer_period i40e_pf 0 1923 NULL nohasharray
134164 +disable_so_address_acpi_resource_fixed_memory32_1923 address acpi_resource_fixed_memory32 0 1923 &disable_so_service_timer_period_i40e_pf_1923
134165 +disable_so_paddr_dw_spi_1926 paddr dw_spi 0 1926 NULL
134166 +disable_so___audit_sockaddr_fndecl_1929 __audit_sockaddr fndecl 1 1929 NULL
134167 +disable_so_ieee80211_aes_gcm_key_setup_encrypt_fndecl_1936 ieee80211_aes_gcm_key_setup_encrypt fndecl 2 1936 NULL
134168 +disable_so_mce_chrdev_open_fndecl_1937 mce_chrdev_open fndecl 0 1937 NULL
134169 +disable_so_shadow_reg_phy_addr_ql3_adapter_1940 shadow_reg_phy_addr ql3_adapter 0 1940 NULL
134170 +disable_so_dma_addr_t3_cq_1953 dma_addr t3_cq 0 1953 NULL
134171 +disable_so_crypto_pcbc_decrypt_inplace_fndecl_1957 crypto_pcbc_decrypt_inplace fndecl 0 1957 NULL
134172 +disable_so_sw_reset_and_clock_fndecl_1963 sw_reset_and_clock fndecl 0 1963 NULL
134173 +disable_so_wp_next_time_fndecl_1967 wp_next_time fndecl 0-1 1967 NULL
134174 +disable_so_timer_expires_dev_pm_info_1979 timer_expires dev_pm_info 0 1979 NULL
134175 +disable_so_dll_cntl_si_clock_registers_1988 dll_cntl si_clock_registers 0 1988 NULL
134176 +disable_so_sysctl_x25_clear_request_timeout_vardecl_2007 sysctl_x25_clear_request_timeout vardecl 0 2007 NULL
134177 +disable_so___skb_complete_tx_timestamp_fndecl_2011 __skb_complete_tx_timestamp fndecl 3 2011 NULL
134178 +disable_so_st_ctime_compat_stat_2020 st_ctime compat_stat 0 2020 NULL
134179 +disable_so_ns_nongc_ctime_the_nilfs_2021 ns_nongc_ctime the_nilfs 0 2021 NULL
134180 +disable_so_slave_address_cp2112_write_read_req_report_2022 slave_address cp2112_write_read_req_report 0 2022 NULL
134181 +disable_so_beacon_timeout_ms_show_fndecl_2029 beacon_timeout_ms_show fndecl 0 2029 NULL
134182 +disable_so_daddr_lap_cb_2033 daddr lap_cb 0 2033 NULL
134183 +disable_so_next_txd_phys_addr_mwl8k_tx_desc_2040 next_txd_phys_addr mwl8k_tx_desc 0 2040 NULL
134184 +disable_so_tps65910_rtc_set_time_fndecl_2042 tps65910_rtc_set_time fndecl 0 2042 NULL
134185 +disable_so_address_sg_list_2047 address sg_list 0 2047 NULL
134186 +disable_so_r62_val_fc2580_freq_regs_2052 r62_val fc2580_freq_regs 0 2052 NULL
134187 +disable_so_atomic64_cmpxchg_fndecl_2053 atomic64_cmpxchg fndecl 0-2-3 2053 NULL
134188 +disable_so_delay_cfg80211_coalesce_rules_2055 delay cfg80211_coalesce_rules 0 2055 NULL
134189 +disable_so_addrconf_sysctl_register_fndecl_2065 addrconf_sysctl_register fndecl 0 2065 NULL nohasharray
134190 +disable_so_max_timeout_watchdog_device_2065 max_timeout watchdog_device 0 2065 &disable_so_addrconf_sysctl_register_fndecl_2065
134191 +disable_so_gid_autofs_v5_packet_2071 gid autofs_v5_packet 0 2071 NULL
134192 +disable_so_ratio_t_rj54n1_clock_div_2081 ratio_t rj54n1_clock_div 0 2081 NULL
134193 +disable_so_compat_sys_signalfd4_fndecl_2082 compat_sys_signalfd4 fndecl 0-4 2082 NULL
134194 +disable_so_demod_address_ds3000_config_2084 demod_address ds3000_config 0 2084 NULL
134195 +disable_so_xfrm_flowi_addr_get_fndecl_2087 xfrm_flowi_addr_get fndecl 4 2087 NULL
134196 +disable_so_ts_delay_vardecl_ucb1400_ts_c_2088 ts_delay vardecl_ucb1400_ts.c 0 2088 NULL
134197 +disable_so_get_cpu_iowait_time_us_fndecl_2097 get_cpu_iowait_time_us fndecl 0-1 2097 NULL
134198 +disable_so_crypto_sha1_finup_fndecl_2101 crypto_sha1_finup fndecl 3 2101 NULL
134199 +disable_so_wlc_phy_chan2freq_nphy_fndecl_2103 wlc_phy_chan2freq_nphy fndecl 2 2103 NULL
134200 +disable_so_palmas_smps_set_ramp_delay_fndecl_2110 palmas_smps_set_ramp_delay fndecl 0 2110 NULL
134201 +disable_so_ncp_add_be32_fndecl_2114 ncp_add_be32 fndecl 2 2114 NULL
134202 +disable_so_fast_div_bias_ath_hw_antcomb_conf_2119 fast_div_bias ath_hw_antcomb_conf 0 2119 NULL
134203 +disable_so_memconsole_baseaddr_vardecl_memconsole_c_2130 memconsole_baseaddr vardecl_memconsole.c 0 2130 NULL
134204 +disable_so_max8907_rtc_read_time_fndecl_2134 max8907_rtc_read_time fndecl 0 2134 NULL
134205 +disable_so_cur_daddr_pktgen_dev_2141 cur_daddr pktgen_dev 0 2141 NULL
134206 +disable_so_mapped_loc_addr_nes_cm_listener_2153 mapped_loc_addr nes_cm_listener 0 2153 NULL
134207 +disable_so_index_ath_gen_timer_2154 index ath_gen_timer 0 2154 NULL
134208 +disable_so_brcms_c_duty_cycle_set_fndecl_2162 brcms_c_duty_cycle_set fndecl 2 2162 NULL
134209 +disable_so_rx_addr_happy_meal_rxd_2164 rx_addr happy_meal_rxd 0 2164 NULL
134210 +disable_so_cp_dma_addr_mscp_2187 cp_dma_addr mscp 0 2187 NULL
134211 +disable_so_address_hi_be_bus_address32_2192 address_hi be_bus_address32 0 2192 NULL nohasharray
134212 +disable_so_parse_sockaddr_pair_fndecl_2192 parse_sockaddr_pair fndecl 0-2 2192 &disable_so_address_hi_be_bus_address32_2192
134213 +disable_so_channel_sockaddr_mISDN_2193 channel sockaddr_mISDN 0 2193 NULL
134214 +disable_so_channel_time_mwl8k_priv_2196 channel_time mwl8k_priv 0 2196 NULL
134215 +disable_so_saddr_min_pktgen_dev_2198 saddr_min pktgen_dev 0 2198 NULL
134216 +disable_so_cirrus_set_start_address_fndecl_2201 cirrus_set_start_address fndecl 2 2201 NULL
134217 +disable_so_exp_time_rmc_entry_2203 exp_time rmc_entry 0 2203 NULL
134218 +disable_so_acpi_os_get_timer_fndecl_2213 acpi_os_get_timer fndecl 0 2213 NULL nohasharray
134219 +disable_so_to_addr_efx_memcpy_req_2213 to_addr efx_memcpy_req 0 2213 &disable_so_acpi_os_get_timer_fndecl_2213
134220 +disable_so_gather_bitmaps_fndecl_2219 gather_bitmaps fndecl 0 2219 NULL
134221 +disable_so_timeout_ms_rdma_ucm_resolve_ip_2231 timeout_ms rdma_ucm_resolve_ip 0 2231 NULL
134222 +disable_so_ui_birthtime_ufs2_inode_2238 ui_birthtime ufs2_inode 0 2238 NULL
134223 +disable_so_security_mmap_addr_fndecl_2241 security_mmap_addr fndecl 0-1 2241 NULL
134224 +disable_so_atl1c_hash_mc_addr_fndecl_2245 atl1c_hash_mc_addr fndecl 0 2245 NULL
134225 +disable_so_isl1208_i2c_read_time_fndecl_2247 isl1208_i2c_read_time fndecl 0 2247 NULL
134226 +disable_so_stats_reset_time_bfa_fcport_s_2251 stats_reset_time bfa_fcport_s 0 2251 NULL
134227 +disable_so_uid_mcontroller_2253 uid mcontroller 0 2253 NULL
134228 +disable_so_daddr_iriap_cb_2262 daddr iriap_cb 0 2262 NULL
134229 +disable_so_rtl2832_sdr_set_tuner_freq_fndecl_2267 rtl2832_sdr_set_tuner_freq fndecl 0 2267 NULL
134230 +disable_so_chipio_write_address_fndecl_2270 chipio_write_address fndecl 0-2 2270 NULL
134231 +disable_so_small_buf_q_phy_addr_ql3_adapter_2279 small_buf_q_phy_addr ql3_adapter 0 2279 NULL
134232 +disable_so_sys_utime_fndecl_2283 sys_utime fndecl 0 2283 NULL nohasharray
134233 +disable_so_muldiv32_fndecl_2283 muldiv32 fndecl 0-1-2-3 2283 &disable_so_sys_utime_fndecl_2283
134234 +disable_so_bd_list_addr_hi_bnx2i_nop_out_request_2284 bd_list_addr_hi bnx2i_nop_out_request 0 2284 NULL
134235 +disable_so_show_trans_timeout_fndecl_2286 show_trans_timeout fndecl 0 2286 NULL
134236 +disable_so_il4965_tx_queue_stop_scheduler_fndecl_2292 il4965_tx_queue_stop_scheduler fndecl 2 2292 NULL
134237 +disable_so_demod_address_ves1820_config_2298 demod_address ves1820_config 0 2298 NULL
134238 +disable_so_backlight_on_delay_cdv_intel_dp_2301 backlight_on_delay cdv_intel_dp 0 2301 NULL
134239 +disable_so_ip_vs_lblcr_hashkey_fndecl_2305 ip_vs_lblcr_hashkey fndecl 1 2305 NULL
134240 +disable_so_tulip_interrupt_fndecl_2323 tulip_interrupt fndecl 1 2323 NULL
134241 +disable_so_m_ts_clockk_strength_drxk_state_2324 m_ts_clockk_strength drxk_state 0 2324 NULL
134242 +disable_so_carl9170_debugfs_hw_iowrite32_write_fndecl_2330 carl9170_debugfs_hw_iowrite32_write fndecl 0-3 2330 NULL
134243 +disable_so_iclock_count_vardecl_clock_c_2334 iclock_count vardecl_clock.c 0 2334 NULL
134244 +disable_so_eop_gpu_addr_kernel_queue_2339 eop_gpu_addr kernel_queue 0 2339 NULL
134245 +disable_so___insert_inode_hash_fndecl_2341 __insert_inode_hash fndecl 2 2341 NULL
134246 +disable_so_lasttime_vardecl_serial_u16550_c_2348 lasttime vardecl_serial-u16550.c 0 2348 NULL
134247 +disable_so_custom_divisor_ftdi_private_2356 custom_divisor ftdi_private 0 2356 NULL nohasharray
134248 +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
134249 +disable_so_cdrom_get_random_writable_fndecl_2357 cdrom_get_random_writable fndecl 0 2357 NULL
134250 +disable_so_delay_vardecl_wm9713_c_2358 delay vardecl_wm9713.c 0 2358 NULL
134251 +disable_so_usc_enable_async_clock_fndecl_2361 usc_enable_async_clock fndecl 2 2361 NULL
134252 +disable_so___cpu_to_virtio64_fndecl_2365 __cpu_to_virtio64 fndecl 0-2 2365 NULL
134253 +disable_so_freq_offset_xc5000_priv_2385 freq_offset xc5000_priv 0 2385 NULL
134254 +disable_so_decompressed_size_regcache_lzo_ctx_2401 decompressed_size regcache_lzo_ctx 0 2401 NULL
134255 +disable_so_tps65910_sleepinit_fndecl_2406 tps65910_sleepinit fndecl 0 2406 NULL
134256 +disable_so_i2c_address_dib0090_config_2410 i2c_address dib0090_config 0 2410 NULL
134257 +disable_so_paddr_nes_fast_mr_wqe_pbl_2411 paddr nes_fast_mr_wqe_pbl 0 2411 NULL
134258 +disable_so_time_fcoe_fcf_2412 time fcoe_fcf 0 2412 NULL
134259 +disable_so_ndisc_addr_option_pad_fndecl_2413 ndisc_addr_option_pad fndecl 0 2413 NULL
134260 +disable_so_next_cpu_uv_rtc_timer_head_2424 next_cpu uv_rtc_timer_head 0 2424 NULL
134261 +disable_so_buffer_addr_fm10k_tx_desc_2425 buffer_addr fm10k_tx_desc 0 2425 NULL
134262 +disable_so_ahci_init_interrupts_fndecl_2426 ahci_init_interrupts fndecl 2-0 2426 NULL
134263 +disable_so_cp_interrupt_fndecl_2429 cp_interrupt fndecl 1 2429 NULL
134264 +disable_so_sha1_mb_update_fndecl_2431 sha1_mb_update fndecl 0 2431 NULL
134265 +disable_so_mii_bmsr1_bnx2_2432 mii_bmsr1 bnx2 0 2432 NULL
134266 +disable_so_i2c_addr_lnbp21_2433 i2c_addr lnbp21 0 2433 NULL
134267 +disable_so_dmadesc_set_addr_fndecl_2434 dmadesc_set_addr fndecl 3 2434 NULL
134268 +disable_so___irq_alloc_descs_fndecl_2452 __irq_alloc_descs fndecl 0-3-2-1-4 2452 NULL
134269 +disable_so_efx_ptp_process_times_fndecl_2453 efx_ptp_process_times fndecl 0 2453 NULL
134270 +disable_so_SiS_SetReg_fndecl_2455 SiS_SetReg fndecl 2-3-4 2455 NULL
134271 +disable_so_hashlimit_byte_cost_fndecl_2456 hashlimit_byte_cost fndecl 0-1 2456 NULL
134272 +disable_so_sd_mtime_stat_data_v1_2460 sd_mtime stat_data_v1 0 2460 NULL
134273 +disable_so_string_addr_inc_fndecl_2472 string_addr_inc fndecl 2 2472 NULL
134274 +disable_so_set_mc_hash_fndecl_2473 set_mc_hash fndecl 0 2473 NULL
134275 +disable_so_height_psb_intel_sdvo_preferred_input_timing_args_2479 height psb_intel_sdvo_preferred_input_timing_args 0 2479 NULL
134276 +disable_so_seq_netlbl_unlhsh_walk_arg_2483 seq netlbl_unlhsh_walk_arg 0 2483 NULL
134277 +disable_so_set_cpu_itimer_fndecl_2486 set_cpu_itimer fndecl 2 2486 NULL
134278 +disable_so_reqoff_crypto_authenc_ctx_2490 reqoff crypto_authenc_ctx 0 2490 NULL
134279 +disable_so_i_gid_ocfs2_dinode_2496 i_gid ocfs2_dinode 0 2496 NULL
134280 +disable_so_bind_mcastif_addr_fndecl_2497 bind_mcastif_addr fndecl 0 2497 NULL
134281 +disable_so_pm_runtime_put_autosuspend_fndecl_2498 pm_runtime_put_autosuspend fndecl 0 2498 NULL
134282 +disable_so_xfs_btree_insert_fndecl_2499 xfs_btree_insert fndecl 0 2499 NULL
134283 +disable_so_update_time_fndecl_2500 update_time fndecl 0 2500 NULL
134284 +disable_so_fill_mtrr_var_range_fndecl_2523 fill_mtrr_var_range fndecl 2-3-4-5 2523 NULL
134285 +disable_so_of_cpufreq_power_cooling_register_fndecl_2525 of_cpufreq_power_cooling_register fndecl 3 2525 NULL
134286 +disable_so_addr_genwqe_mem_2530 addr genwqe_mem 0 2530 NULL
134287 +disable_so_rtr_solicit_delay_ipv6_devconf_2532 rtr_solicit_delay ipv6_devconf 0 2532 NULL nohasharray
134288 +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
134289 +disable_so_vhost16_to_cpu_fndecl_2533 vhost16_to_cpu fndecl 0 2533 NULL
134290 +disable_so_clock_adj_k_clock_2534 clock_adj k_clock 1 2534 NULL
134291 +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
134292 +disable_so_clock_fc2580_config_2541 clock fc2580_config 0 2541 NULL
134293 +disable_so_sb_bitmaps_hpfs_sb_info_2542 sb_bitmaps hpfs_sb_info 0 2542 NULL
134294 +disable_so_devfreq_event_get_edev_by_phandle_fndecl_2550 devfreq_event_get_edev_by_phandle fndecl 2 2550 NULL
134295 +disable_so_reiserfs_allocate_list_bitmaps_fndecl_2551 reiserfs_allocate_list_bitmaps fndecl 3 2551 NULL
134296 +disable_so_nr_set_mac_address_fndecl_2555 nr_set_mac_address fndecl 0 2555 NULL
134297 +disable_so_SYSC_setuid_fndecl_2561 SYSC_setuid fndecl 0 2561 NULL
134298 +disable_so_shadow_ctx_time_perf_event_2574 shadow_ctx_time perf_event 0 2574 NULL nohasharray
134299 +disable_so_kernel_text_address_fndecl_2574 kernel_text_address fndecl 1 2574 &disable_so_shadow_ctx_time_perf_event_2574
134300 +disable_so_msb_bna_dma_addr_2580 msb bna_dma_addr 0 2580 NULL
134301 +disable_so_ipmi_get_my_address_fndecl_2581 ipmi_get_my_address fndecl 0 2581 NULL
134302 +disable_so_scan_sleep_millisecs_show_fndecl_2585 scan_sleep_millisecs_show fndecl 0 2585 NULL
134303 +disable_so_l2tp_scope_id_sockaddr_l2tpip6_2587 l2tp_scope_id sockaddr_l2tpip6 0 2587 NULL
134304 +disable_so_freq_to_idx_fndecl_2591 freq_to_idx fndecl 2 2591 NULL
134305 +disable_so_tps65910_set_ext_sleep_config_fndecl_2597 tps65910_set_ext_sleep_config fndecl 0-2 2597 NULL
134306 +disable_so_try_write_address_fndecl_2599 try_write_address fndecl 0 2599 NULL
134307 +disable_so_ifa_mask_in_ifaddr_2609 ifa_mask in_ifaddr 0 2609 NULL
134308 +disable_so_phys_addr_nx_host_tx_ring_2615 phys_addr nx_host_tx_ring 0 2615 NULL
134309 +disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 usb_wait_anchor_empty_timeout fndecl 2-0 2618 NULL nohasharray
134310 +disable_so_p2_gma_clock_t_2618 p2 gma_clock_t 0 2618 &disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 nohasharray
134311 +disable_so_cra_blocksize_crypto_alg_2618 cra_blocksize crypto_alg 0 2618 &disable_so_p2_gma_clock_t_2618
134312 +disable_so_b1_setinterrupt_fndecl_2626 b1_setinterrupt fndecl 1-2 2626 NULL
134313 +disable_so_flsh_addr_esas2r_flash_context_2628 flsh_addr esas2r_flash_context 0 2628 NULL
134314 +disable_so_bClockID_uac_clock_source_descriptor_2629 bClockID uac_clock_source_descriptor 0 2629 NULL
134315 +disable_so_free_dma_map_ops_2636 free dma_map_ops 4 2636 NULL
134316 +disable_so_apds990x_set_atime_fndecl_2647 apds990x_set_atime fndecl 2 2647 NULL
134317 +disable_so_jiffies_sdr_cap_vivid_dev_2650 jiffies_sdr_cap vivid_dev 0 2650 NULL
134318 +disable_so_rf_mux_ploy_r820t_freq_range_2652 rf_mux_ploy r820t_freq_range 0 2652 NULL nohasharray
134319 +disable_so_policy_hash_direct_fndecl_2652 policy_hash_direct fndecl 4 2652 &disable_so_rf_mux_ploy_r820t_freq_range_2652
134320 +disable_so_base_addr_sudmac_regs_2655 base_addr sudmac_regs 0 2655 NULL
134321 +disable_so_id_rdma_ucm_resolve_addr_2656 id rdma_ucm_resolve_addr 0 2656 NULL
134322 +disable_so_demod_address_stv0367_config_2659 demod_address stv0367_config 0 2659 NULL
134323 +disable_so_get_if_frequency_dvb_tuner_ops_2660 get_if_frequency dvb_tuner_ops 0 2660 NULL
134324 +disable_so_r_idx_addr_brcmf_pcie_ringbuf_2666 r_idx_addr brcmf_pcie_ringbuf 0 2666 NULL
134325 +disable_so_address_sisusb_packet_2668 address sisusb_packet 0 2668 NULL
134326 +disable_so_cia_min_keysize_cipher_alg_2682 cia_min_keysize cipher_alg 0 2682 NULL
134327 +disable_so_snd_timer_start_fndecl_2702 snd_timer_start fndecl 2-0 2702 NULL
134328 +disable_so_erst_exec_set_src_address_base_fndecl_2703 erst_exec_set_src_address_base fndecl 0 2703 NULL
134329 +disable_so_end_seq_tcp_sack_block_wire_2708 end_seq tcp_sack_block_wire 0 2708 NULL nohasharray
134330 +disable_so__abb5zes3_rtc_read_timer_fndecl_2708 _abb5zes3_rtc_read_timer fndecl 0 2708 &disable_so_end_seq_tcp_sack_block_wire_2708
134331 +disable_so_rn5t618_wdt_set_timeout_fndecl_2711 rn5t618_wdt_set_timeout fndecl 2-0 2711 NULL nohasharray
134332 +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
134333 +disable_so_hdelayx1_bttv_tvnorm_2714 hdelayx1 bttv_tvnorm 0 2714 NULL
134334 +disable_so_raw_interval_timekeeper_2728 raw_interval timekeeper 0 2728 NULL
134335 +disable_so___vxge_hw_ring_item_dma_addr_fndecl_2731 __vxge_hw_ring_item_dma_addr fndecl 0 2731 NULL
134336 +disable_so_mlx5_query_hca_vport_gid_fndecl_2744 mlx5_query_hca_vport_gid fndecl 0 2744 NULL
134337 +disable_so_period_ptr_atmel_runtime_data_2748 period_ptr atmel_runtime_data 0 2748 NULL
134338 +disable_so_buf_addr_lo_fcoe_bd_ctx_2755 buf_addr_lo fcoe_bd_ctx 0 2755 NULL nohasharray
134339 +disable_so_cycles_2_ns_fndecl_2755 cycles_2_ns fndecl 0-1 2755 &disable_so_buf_addr_lo_fcoe_bd_ctx_2755
134340 +disable_so_md5_parse_tcp_sock_af_ops_2765 md5_parse tcp_sock_af_ops 3-0 2765 NULL
134341 +disable_so_nbytes_ablkcipher_walk_2767 nbytes ablkcipher_walk 0 2767 NULL
134342 +disable_so_crypto_hash_setkey_fndecl_2770 crypto_hash_setkey fndecl 0-3 2770 NULL
134343 +disable_so_addr_gf100_gr_init_2776 addr gf100_gr_init 0 2776 NULL
134344 +disable_so_auth_hashbits_vardecl_auth_c_2783 auth_hashbits vardecl_auth.c 0 2783 NULL
134345 +disable_so_ipr_reset_start_timer_fndecl_2784 ipr_reset_start_timer fndecl 2 2784 NULL nohasharray
134346 +disable_so_tv_sec_compat_timeval_2784 tv_sec compat_timeval 0 2784 &disable_so_ipr_reset_start_timer_fndecl_2784 nohasharray
134347 +disable_so_addr_vring_desc_2784 addr vring_desc 0 2784 &disable_so_tv_sec_compat_timeval_2784
134348 +disable_so_addr_initio_host_2790 addr initio_host 0 2790 NULL
134349 +disable_so_i2c_addr_dib7000p_state_2791 i2c_addr dib7000p_state 0 2791 NULL
134350 +disable_so_trim_no_bitmap_fndecl_2799 trim_no_bitmap fndecl 0-3-4-5 2799 NULL nohasharray
134351 +disable_so_imp_msr_src_node_conf_t_2799 imp_msr src_node_conf_t 0 2799 &disable_so_trim_no_bitmap_fndecl_2799
134352 +disable_so_phys_addr_pch_udc_dev_2801 phys_addr pch_udc_dev 0 2801 NULL
134353 +disable_so_mpll_ss2_ci_clock_registers_2804 mpll_ss2 ci_clock_registers 0 2804 NULL
134354 +disable_so_mutex_lock_interruptible_fndecl_2810 mutex_lock_interruptible fndecl 0 2810 NULL
134355 +disable_so___btrfs_add_delayed_item_fndecl_2812 __btrfs_add_delayed_item fndecl 0 2812 NULL
134356 +disable_so_physaddr_map_node_2828 physaddr map_node 0 2828 NULL
134357 +disable_so_fault_mutex_hash_fndecl_2829 fault_mutex_hash fndecl 0-5-6 2829 NULL
134358 +disable_so_tsi721_imsg_interrupt_enable_fndecl_2832 tsi721_imsg_interrupt_enable fndecl 2-3 2832 NULL
134359 +disable_so_ocfs2_reserve_cluster_bitmap_bits_fndecl_2835 ocfs2_reserve_cluster_bitmap_bits fndecl 0 2835 NULL
134360 +disable_so_address_lcnphy_radio_regs_2840 address lcnphy_radio_regs 0 2840 NULL
134361 +disable_so_write_timeout_vardecl_at24_c_2843 write_timeout vardecl_at24.c 0 2843 NULL nohasharray
134362 +disable_so_rdma_bind_addr_fndecl_2843 rdma_bind_addr fndecl 0 2843 &disable_so_write_timeout_vardecl_at24_c_2843
134363 +disable_so_x86_schedule_events_fndecl_2848 x86_schedule_events fndecl 2 2848 NULL
134364 +disable_so_acpi_ut_status_exit_fndecl_2850 acpi_ut_status_exit fndecl 5 2850 NULL
134365 +disable_so_wlcore_read_hwaddr_fndecl_2853 wlcore_read_hwaddr fndecl 0-4 2853 NULL
134366 +disable_so_apicaddr_mpc_ioapic_2859 apicaddr mpc_ioapic 0 2859 NULL
134367 +disable_so_msec_dwell_time_host_cmd_ds_chan_rpt_req_2868 msec_dwell_time host_cmd_ds_chan_rpt_req 0 2868 NULL
134368 +disable_so_hpsa_find_cfg_addrs_fndecl_2876 hpsa_find_cfg_addrs fndecl 0 2876 NULL
134369 +disable_so_sched_clock_cpu_fndecl_2881 sched_clock_cpu fndecl 0-1 2881 NULL
134370 +disable_so_qs_itimelimit_fs_quota_stat_2888 qs_itimelimit fs_quota_stat 0 2888 NULL
134371 +disable_so_bitmap_set_pending_fndecl_2892 bitmap_set_pending fndecl 2 2892 NULL
134372 +disable_so_rt2x00debug_read_crypto_stats_fndecl_2894 rt2x00debug_read_crypto_stats fndecl 0-3 2894 NULL
134373 +disable_so_calibrate_tsc_x86_platform_ops_2895 calibrate_tsc x86_platform_ops 0 2895 NULL
134374 +disable_so_timeout_show_fndecl_2898 timeout_show fndecl 0 2898 NULL
134375 +disable_so_snd_hda_codec_read_fndecl_2913 snd_hda_codec_read fndecl 0-2-4-5 2913 NULL
134376 +disable_so___bitmap_size_fndecl_2921 __bitmap_size fndecl 0 2921 NULL
134377 +disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923 snd_pcm_ioctl_delay_compat fndecl 0 2923 NULL nohasharray
134378 +disable_so_addr_abituguru_data_2923 addr abituguru_data 0 2923 &disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923
134379 +disable_so_amdgpu_atombios_set_engine_dram_timings_fndecl_2927 amdgpu_atombios_set_engine_dram_timings fndecl 2-3 2927 NULL
134380 +disable_so_i2c_address_mt2060_config_2931 i2c_address mt2060_config 0 2931 NULL
134381 +disable_so_time_msdos_dir_entry_2939 time msdos_dir_entry 0 2939 NULL
134382 +disable_so_acpi_install_address_space_handler_fndecl_2940 acpi_install_address_space_handler fndecl 0-2 2940 NULL nohasharray
134383 +disable_so_addr_genwqe_reg_2940 addr genwqe_reg 0 2940 &disable_so_acpi_install_address_space_handler_fndecl_2940
134384 +disable_so_addr_max77693_reg_data_2945 addr max77693_reg_data 0 2945 NULL nohasharray
134385 +disable_so_addrconf_set_dstaddr_fndecl_2945 addrconf_set_dstaddr fndecl 0 2945 &disable_so_addr_max77693_reg_data_2945
134386 +disable_so_gcm_hash_init_done_fndecl_2957 gcm_hash_init_done fndecl 2 2957 NULL
134387 +disable_so_mwifiex_pcie_alloc_sleep_cookie_buf_fndecl_2961 mwifiex_pcie_alloc_sleep_cookie_buf fndecl 0 2961 NULL
134388 +disable_so_ip_list_gid_vardecl_xt_recent_c_2969 ip_list_gid vardecl_xt_recent.c 0 2969 NULL
134389 +disable_so_ieee80211_calculate_rx_timestamp_fndecl_2979 ieee80211_calculate_rx_timestamp fndecl 3-4-0 2979 NULL
134390 +disable_so_jiffies_at_last_reset_qla_statistics_2982 jiffies_at_last_reset qla_statistics 0 2982 NULL
134391 +disable_so_read_magic_time_fndecl_3002 read_magic_time fndecl 0 3002 NULL
134392 +disable_so_node_addr_mdc_hw_list_desc_3006 node_addr mdc_hw_list_desc 0 3006 NULL
134393 +disable_so_bitmap_clear_bits_fndecl_3008 bitmap_clear_bits fndecl 3-4 3008 NULL
134394 +disable_so_cipher_offset_icp_qat_fw_la_cipher_req_params_3009 cipher_offset icp_qat_fw_la_cipher_req_params 0 3009 NULL
134395 +disable_so_local_addr_c2wr_ep_listen_create_req_3021 local_addr c2wr_ep_listen_create_req 0 3021 NULL nohasharray
134396 +disable_so_bitmap_end_sync_fndecl_3021 bitmap_end_sync fndecl 2 3021 &disable_so_local_addr_c2wr_ep_listen_create_req_3021
134397 +disable_so___xfrm6_daddr_saddr_hash_fndecl_3024 __xfrm6_daddr_saddr_hash fndecl 0 3024 NULL
134398 +disable_so_port_name_fcgs_gidpn_req_s_3037 port_name fcgs_gidpn_req_s 0 3037 NULL
134399 +disable_so___pm_runtime_set_status_fndecl_3040 __pm_runtime_set_status fndecl 0 3040 NULL nohasharray
134400 +disable_so_inactivity_time_adxl34x_platform_data_3040 inactivity_time adxl34x_platform_data 0 3040 &disable_so___pm_runtime_set_status_fndecl_3040
134401 +disable_so_bm_dev_capacity_drbd_bitmap_3043 bm_dev_capacity drbd_bitmap 0 3043 NULL
134402 +disable_so_arp_hash_fndecl_3046 arp_hash fndecl 2 3046 NULL
134403 +disable_so_setkey_ablkcipher_alg_3056 setkey ablkcipher_alg 3 3056 NULL
134404 +disable_so_display_delay_s5p_mfc_ctx_3062 display_delay s5p_mfc_ctx 0 3062 NULL
134405 +disable_so_power_jiffies_hda_codec_3064 power_jiffies hda_codec 0 3064 NULL
134406 +disable_so_dw_mci_exynos_adjust_clock_fndecl_3069 dw_mci_exynos_adjust_clock fndecl 2 3069 NULL
134407 +disable_so_set_var_mtrr_msr_fndecl_3073 set_var_mtrr_msr fndecl 3 3073 NULL
134408 +disable_so_pm860x_rtc_read_time_fndecl_3079 pm860x_rtc_read_time fndecl 0 3079 NULL nohasharray
134409 +disable_so_buffer_haddr_rbd_3079 buffer_haddr rbd 0 3079 &disable_so_pm860x_rtc_read_time_fndecl_3079
134410 +disable_so_snd_usb_find_clock_source_fndecl_3080 snd_usb_find_clock_source fndecl 2 3080 NULL
134411 +disable_so_response_buffer_address_on_dsp_hpi_hw_obj_3083 response_buffer_address_on_dsp hpi_hw_obj 0 3083 NULL
134412 +disable_so_valid_mmap_phys_addr_range_fndecl_3090 valid_mmap_phys_addr_range fndecl 1-2 3090 NULL
134413 +disable_so_mc_addr_count_s2io_nic_3095 mc_addr_count s2io_nic 0 3095 NULL
134414 +disable_so_si4713_g_frequency_fndecl_3096 si4713_g_frequency fndecl 0 3096 NULL
134415 +disable_so_rtl_bb_delay_fndecl_3097 rtl_bb_delay fndecl 2-3 3097 NULL
134416 +disable_so_nla_put_u16_fndecl_3101 nla_put_u16 fndecl 3-0 3101 NULL
134417 +disable_so_enet_addr_rst_fndecl_3111 enet_addr_rst fndecl 1 3111 NULL
134418 +disable_so_xtime_interval_timekeeper_3116 xtime_interval timekeeper 0 3116 NULL
134419 +disable_so_atomic_set_prop_fndecl_3117 atomic_set_prop fndecl 4-0 3117 NULL
134420 +disable_so_read_timeout_vardecl_legousbtower_c_3118 read_timeout vardecl_legousbtower.c 0 3118 NULL nohasharray
134421 +disable_so_netmask_c2_netaddr_3118 netmask c2_netaddr 0 3118 &disable_so_read_timeout_vardecl_legousbtower_c_3118 nohasharray
134422 +disable_so_hashlo_smsc911x_data_3118 hashlo smsc911x_data 0 3118 &disable_so_netmask_c2_netaddr_3118 nohasharray
134423 +disable_so_q_hash_irda_queue_3118 q_hash irda_queue 0 3118 &disable_so_hashlo_smsc911x_data_3118
134424 +disable_so_rpc_get_timeout_fndecl_3124 rpc_get_timeout fndecl 0 3124 NULL
134425 +disable_so_ctime_fuse_attr_3128 ctime fuse_attr 0 3128 NULL
134426 +disable_so_dl_time_nfs4_delegation_3130 dl_time nfs4_delegation 0 3130 NULL
134427 +disable_so_tx_packet_ring_addr_acx_data_path_params_resp_3132 tx_packet_ring_addr acx_data_path_params_resp 0 3132 NULL
134428 +disable_so__div_round_fndecl_3134 _div_round fndecl 2-3-0 3134 NULL
134429 +disable_so_power_up_frequency_adf4350_platform_data_3140 power_up_frequency adf4350_platform_data 0 3140 NULL
134430 +disable_so_bytes_xfrm_lifetime_cur_3145 bytes xfrm_lifetime_cur 0 3145 NULL
134431 +disable_so_show_nguid_fndecl_3155 show_nguid fndecl 0 3155 NULL nohasharray
134432 +disable_so_svm_read_tsc_offset_fndecl_3155 svm_read_tsc_offset fndecl 0 3155 &disable_so_show_nguid_fndecl_3155
134433 +disable_so_shash_ahash_finup_fndecl_3156 shash_ahash_finup fndecl 0 3156 NULL
134434 +disable_so_adjtime_ptp_clock_info_3161 adjtime ptp_clock_info 2 3161 NULL
134435 +disable_so_read_addr___mux2_3162 read_addr __mux2 0 3162 NULL
134436 +disable_so_mem_type_mtrr_iter_3164 mem_type mtrr_iter 0 3164 NULL
134437 +disable_so_cg_spll_func_cntl_ni_clock_registers_3176 cg_spll_func_cntl ni_clock_registers 0 3176 NULL
134438 +disable_so_schedule_hrtimeout_range_clock_fndecl_3178 schedule_hrtimeout_range_clock fndecl 4-2 3178 NULL nohasharray
134439 +disable_so_bitmap_copy_fndecl_3178 bitmap_copy fndecl 3 3178 &disable_so_schedule_hrtimeout_range_clock_fndecl_3178
134440 +disable_so__is_valid_table_div_fndecl_3179 _is_valid_table_div fndecl 2 3179 NULL
134441 +disable_so_addr_2_qla83xx_minidump_entry_pollrdmwr_3183 addr_2 qla83xx_minidump_entry_pollrdmwr 0 3183 NULL
134442 +disable_so_via_clock_vardecl_via82cxxx_c_3195 via_clock vardecl_via82cxxx.c 0 3195 NULL
134443 +disable_so_timeout_reader_dev_3196 timeout reader_dev 0 3196 NULL
134444 +disable_so_delay_palmas_clk32k_desc_3198 delay palmas_clk32k_desc 0 3198 NULL nohasharray
134445 +disable_so_freq_if_hz_tda10048_state_3198 freq_if_hz tda10048_state 0 3198 &disable_so_delay_palmas_clk32k_desc_3198
134446 +disable_so_i2c_address_tda18218_config_3199 i2c_address tda18218_config 0 3199 NULL nohasharray
134447 +disable_so_bot_freq_region_info_3199 bot_freq region_info 0 3199 &disable_so_i2c_address_tda18218_config_3199
134448 +disable_so_sdr_adc_freq_vivid_dev_3202 sdr_adc_freq vivid_dev 0 3202 NULL
134449 +disable_so_wlc_phy_cal_perical_mphase_schedule_fndecl_3220 wlc_phy_cal_perical_mphase_schedule fndecl 2 3220 NULL
134450 +disable_so_uid_ceph_mds_reply_inode_3222 uid ceph_mds_reply_inode 0 3222 NULL nohasharray
134451 +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
134452 +disable_so_txq_addr_vf_pf_txq_params_3223 txq_addr vf_pf_txq_params 0 3223 NULL
134453 +disable_so_dma_addr_ksz_shared_mem_3226 dma_addr ksz_shared_mem 0 3226 NULL
134454 +disable_so_smb_timer_atl1_hw_3230 smb_timer atl1_hw 0 3230 NULL
134455 +disable_so_nilfs_btree_node_set_key_fndecl_3231 nilfs_btree_node_set_key fndecl 2-3 3231 NULL
134456 +disable_so_finish_output_interrupt_fndecl_3255 finish_output_interrupt fndecl 1 3255 NULL
134457 +disable_so_command_block_agent_address_sbp2_logical_unit_3261 command_block_agent_address sbp2_logical_unit 0 3261 NULL
134458 +disable_so_st21nfca_get_iso14443_3_uid_fndecl_3264 st21nfca_get_iso14443_3_uid fndecl 0 3264 NULL
134459 +disable_so_db_rec_addr_mlx5_qp_context_3265 db_rec_addr mlx5_qp_context 0 3265 NULL
134460 +disable_so_rssi_jiffies_mwifiex_auto_tdls_peer_3275 rssi_jiffies mwifiex_auto_tdls_peer 0 3275 NULL
134461 +disable_so_random_read_wakeup_bits_vardecl_random_c_3284 random_read_wakeup_bits vardecl_random.c 0 3284 NULL
134462 +disable_so_time_busy_survey_info_3291 time_busy survey_info 0 3291 NULL
134463 +disable_so_platform_pci_sleep_wake_fndecl_3293 platform_pci_sleep_wake fndecl 0 3293 NULL nohasharray
134464 +disable_so_walk_blocksize_blkcipher_walk_3293 walk_blocksize blkcipher_walk 0 3293 &disable_so_platform_pci_sleep_wake_fndecl_3293
134465 +disable_so_addr_kvm_shadow_walk_iterator_3297 addr kvm_shadow_walk_iterator 0 3297 NULL
134466 +disable_so_r6e_val_fc2580_freq_regs_3300 r6e_val fc2580_freq_regs 0 3300 NULL
134467 +disable_so_clock_speed_ov7670_info_3304 clock_speed ov7670_info 0 3304 NULL
134468 +disable_so_bank_base_effect_addr_snd_ymfpci_3311 bank_base_effect_addr snd_ymfpci 0 3311 NULL
134469 +disable_so_nfs_map_name_to_uid_fndecl_3313 nfs_map_name_to_uid fndecl 0-3 3313 NULL
134470 +disable_so_read_block_bitmap_fndecl_3319 read_block_bitmap fndecl 0-3-4 3319 NULL
134471 +disable_so_sis190_get_mac_addr_from_apc_fndecl_3325 sis190_get_mac_addr_from_apc fndecl 0 3325 NULL
134472 +disable_so_head_uvc_clock_3340 head uvc_clock 0 3340 NULL
134473 +disable_so_amd_clock_vardecl_amd74xx_c_3344 amd_clock vardecl_amd74xx.c 0 3344 NULL nohasharray
134474 +disable_so_host_cmds_addr_rtsx_pcr_3344 host_cmds_addr rtsx_pcr 0 3344 &disable_so_amd_clock_vardecl_amd74xx_c_3344
134475 +disable_so_xp_cpu_to_nasid_uv_fndecl_3353 xp_cpu_to_nasid_uv fndecl 0 3353 NULL
134476 +disable_so_last_join_time_local_info_3359 last_join_time local_info 0 3359 NULL
134477 +disable_so_tcf_hash_release_fndecl_3369 tcf_hash_release fndecl 0 3369 NULL
134478 +disable_so_carl9170_set_slot_time_fndecl_3372 carl9170_set_slot_time fndecl 0 3372 NULL
134479 +disable_so_mmc_schedule_delayed_work_fndecl_3376 mmc_schedule_delayed_work fndecl 2 3376 NULL
134480 +disable_so_m_mt9t112_pll_divider_3397 m mt9t112_pll_divider 0 3397 NULL nohasharray
134481 +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
134482 +disable_so_irlap_generate_rand_time_slot_fndecl_3415 irlap_generate_rand_time_slot fndecl 0-1-2 3415 NULL
134483 +disable_so_via_set_secondary_address_fndecl_3417 via_set_secondary_address fndecl 1 3417 NULL
134484 +disable_so___timekeeping_set_tai_offset_fndecl_3425 __timekeeping_set_tai_offset fndecl 2 3425 NULL
134485 +disable_so_apic_access_addr_vmcs12_3427 apic_access_addr vmcs12 0 3427 NULL
134486 +disable_so_prod_idx_addr_cqicb_3435 prod_idx_addr cqicb 0 3435 NULL
134487 +disable_so_uwb_rc_dev_addr_mgmt_fndecl_3445 uwb_rc_dev_addr_mgmt fndecl 0 3445 NULL
134488 +disable_so_sg_bus_addr_ScsiReqBlk_3447 sg_bus_addr ScsiReqBlk 0 3447 NULL
134489 +disable_so_i2c_addr_lgdt3306a_config_3452 i2c_addr lgdt3306a_config 0 3452 NULL
134490 +disable_so_sym_selectclock_fndecl_3453 sym_selectclock fndecl 2 3453 NULL
134491 +disable_so_timestamp_wl1251_rx_descriptor_3475 timestamp wl1251_rx_descriptor 0 3475 NULL
134492 +disable_so_hw_cons_phys_addr_qlcnic_host_tx_ring_3481 hw_cons_phys_addr qlcnic_host_tx_ring 0 3481 NULL
134493 +disable_so_last_jiffies_snd_timer_system_private_3482 last_jiffies snd_timer_system_private 0 3482 NULL
134494 +disable_so_r_min_rnr_timer_qib_qp_3487 r_min_rnr_timer qib_qp 0 3487 NULL
134495 +disable_so_ata_wait_register_fndecl_3494 ata_wait_register fndecl 0 3494 NULL
134496 +disable_so_time_adjust_vardecl_ntp_c_3504 time_adjust vardecl_ntp.c 0 3504 NULL
134497 +disable_so_cursor_addr_intel_crtc_3508 cursor_addr intel_crtc 0 3508 NULL
134498 +disable_so_trf7970a_pm_runtime_suspend_fndecl_3511 trf7970a_pm_runtime_suspend fndecl 0 3511 NULL
134499 +disable_so_oops_timestamp_vardecl_printk_c_3515 oops_timestamp vardecl_printk.c 0 3515 NULL
134500 +disable_so_data_blkaddr_dnode_of_data_3521 data_blkaddr dnode_of_data 0 3521 NULL
134501 +disable_so_SYSC_set_tid_address_fndecl_3523 SYSC_set_tid_address fndecl 0 3523 NULL
134502 +disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 ftdi_232am_baud_base_to_divisor fndecl 0-1-2 3525 NULL nohasharray
134503 +disable_so_fll_ratio__fll_div_3525 fll_ratio _fll_div 0 3525 &disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 nohasharray
134504 +disable_so_xpcs_reg_addr_write_fndecl_3525 xpcs_reg_addr_write fndecl 3-0 3525 &disable_so_fll_ratio__fll_div_3525
134505 +disable_so_init_crypto_ahash_3526 init crypto_ahash 0 3526 NULL
134506 +disable_so_sit_blkaddr_f2fs_super_block_3531 sit_blkaddr f2fs_super_block 0 3531 NULL
134507 +disable_so_uuid_io_fndecl_3533 uuid_io fndecl 2 3533 NULL
134508 +disable_so_bufs_dma_addr_slgt_info_3534 bufs_dma_addr slgt_info 0 3534 NULL
134509 +disable_so_cpumask_size_fndecl_3544 cpumask_size fndecl 0 3544 NULL
134510 +disable_so_ocfs2_load_local_quota_bitmaps_fndecl_3551 ocfs2_load_local_quota_bitmaps fndecl 0 3551 NULL
134511 +disable_so_ghash_mod_init_fndecl_3557 ghash_mod_init fndecl 0 3557 NULL
134512 +disable_so_ath5k_hw_init_beacon_timers_fndecl_3558 ath5k_hw_init_beacon_timers fndecl 2-3 3558 NULL
134513 +disable_so_addr_h_qla2xxx_fce_chain_3560 addr_h qla2xxx_fce_chain 0 3560 NULL
134514 +disable_so_acpi_pci_sleep_wake_fndecl_3562 acpi_pci_sleep_wake fndecl 0 3562 NULL
134515 +disable_so_sd_set_timing_fndecl_3566 sd_set_timing fndecl 0 3566 NULL
134516 +disable_so_hpt3x2n_pci_clock_fndecl_3568 hpt3x2n_pci_clock fndecl 0 3568 NULL
134517 +disable_so_ata_sff_busy_sleep_fndecl_3571 ata_sff_busy_sleep fndecl 2-3 3571 NULL
134518 +disable_so_min_freq_cpufreq_cpuinfo_3592 min_freq cpufreq_cpuinfo 0 3592 NULL
134519 +disable_so_ver_blank_start_via_display_timing_3593 ver_blank_start via_display_timing 0 3593 NULL
134520 +disable_so_last_tsc_khz_kvm_arch_3596 last_tsc_khz kvm_arch 0 3596 NULL
134521 +disable_so_addrconf_sysctl_stable_secret_fndecl_3602 addrconf_sysctl_stable_secret fndecl 0 3602 NULL
134522 +disable_so_rxq_addr_vf_pf_rxq_params_3624 rxq_addr vf_pf_rxq_params 0 3624 NULL
134523 +disable_so_go7007_usb_ezusb_write_interrupt_fndecl_3625 go7007_usb_ezusb_write_interrupt fndecl 3-2 3625 NULL
134524 +disable_so_zd_write_mac_addr_fndecl_3635 zd_write_mac_addr fndecl 0 3635 NULL
134525 +disable_so_rt2x00crypto_tx_insert_iv_fndecl_3640 rt2x00crypto_tx_insert_iv fndecl 2 3640 NULL
134526 +disable_so_lvb_imtime_packed_ocfs2_meta_lvb_3641 lvb_imtime_packed ocfs2_meta_lvb 0 3641 NULL
134527 +disable_so_base_address_acpi_srat_mem_affinity_3662 base_address acpi_srat_mem_affinity 0 3662 NULL
134528 +disable_so_time_ksz_counter_info_3667 time ksz_counter_info 0 3667 NULL
134529 +disable_so_phys_addr_qlcnic_host_sds_ring_3676 phys_addr qlcnic_host_sds_ring 0 3676 NULL
134530 +disable_so_addr_ipcm_cookie_3680 addr ipcm_cookie 0 3680 NULL
134531 +disable_so_timestamp_nfs4_renewdata_3698 timestamp nfs4_renewdata 0 3698 NULL
134532 +disable_so_ocfs2_find_subtree_root_fndecl_3700 ocfs2_find_subtree_root fndecl 0 3700 NULL
134533 +disable_so_azx_get_delay_from_lpib_fndecl_3703 azx_get_delay_from_lpib fndecl 0-3 3703 NULL
134534 +disable_so_ieee80211_frequency_to_channel_fndecl_3709 ieee80211_frequency_to_channel fndecl 0-1 3709 NULL
134535 +disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720 rx8025_sysfs_show_clock_adjust fndecl 0 3720 NULL nohasharray
134536 +disable_so_vtotal___fb_timings_3720 vtotal __fb_timings 0 3720 &disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720
134537 +disable_so_autofs4_compat_get_set_timeout_fndecl_3726 autofs4_compat_get_set_timeout fndecl 0 3726 NULL
134538 +disable_so_paddr_ath10k_mem_chunk_3729 paddr ath10k_mem_chunk 0 3729 NULL
134539 +disable_so_interrupt_serio_driver_3738 interrupt serio_driver 2 3738 NULL
134540 +disable_so_m2_gma_clock_t_3742 m2 gma_clock_t 0 3742 NULL
134541 +disable_so_n_mt9t112_pll_divider_3743 n mt9t112_pll_divider 0 3743 NULL
134542 +disable_so_gcm_hash_crypt_done_fndecl_3746 gcm_hash_crypt_done fndecl 2 3746 NULL
134543 +disable_so_addr_i915_wa_reg_3751 addr i915_wa_reg 0 3751 NULL
134544 +disable_so_r12_kvm_regs_3771 r12 kvm_regs 0 3771 NULL
134545 +disable_so_sw_addr_dsa_chip_data_3785 sw_addr dsa_chip_data 0 3785 NULL
134546 +disable_so_t_sec_xfs_ictimestamp_3790 t_sec xfs_ictimestamp 0 3790 NULL
134547 +disable_so_ext4_block_bitmap_csum_set_fndecl_3795 ext4_block_bitmap_csum_set fndecl 2 3795 NULL
134548 +disable_so_pud_page_vaddr_fndecl_3809 pud_page_vaddr fndecl 0 3809 NULL
134549 +disable_so_coalescing_timeout_bfi_enet_ib_cfg_3813 coalescing_timeout bfi_enet_ib_cfg 0 3813 NULL
134550 +disable_so_sg_list_dma_address_skd_command_header_3825 sg_list_dma_address skd_command_header 0 3825 NULL
134551 +disable_so_ax25_display_timer_fndecl_3831 ax25_display_timer fndecl 0 3831 NULL
134552 +disable_so_tsi721_imsg_interrupt_disable_fndecl_3835 tsi721_imsg_interrupt_disable fndecl 2-3 3835 NULL
134553 +disable_so_irlap_start_mbusy_timer_fndecl_3852 irlap_start_mbusy_timer fndecl 2 3852 NULL
134554 +disable_so_size_log2_iwch_create_cq_resp_3861 size_log2 iwch_create_cq_resp 0 3861 NULL
134555 +disable_so_cttimeout_get_timeout_fndecl_3867 cttimeout_get_timeout fndecl 0 3867 NULL
134556 +disable_so_ioadl_bus_addr_pmcraid_ioarcb_3871 ioadl_bus_addr pmcraid_ioarcb 0 3871 NULL
134557 +disable_so___clocksource_register_scale_fndecl_3879 __clocksource_register_scale fndecl 2-3-0 3879 NULL
134558 +disable_so_tx_lsndtime_ccid2_hc_tx_sock_3890 tx_lsndtime ccid2_hc_tx_sock 0 3890 NULL
134559 +disable_so_xfs_btree_new_root_fndecl_3895 xfs_btree_new_root fndecl 0 3895 NULL
134560 +disable_so_freq_p54_channel_entry_3897 freq p54_channel_entry 0 3897 NULL
134561 +disable_so_xen_poll_irq_timeout_fndecl_3900 xen_poll_irq_timeout fndecl 1-2 3900 NULL
134562 +disable_so_nilfs_btree_propagate_v_fndecl_3902 nilfs_btree_propagate_v fndecl 0 3902 NULL
134563 +disable_so_max8907_rtc_set_time_fndecl_3905 max8907_rtc_set_time fndecl 0 3905 NULL
134564 +disable_so_alps_command_mode_set_addr_fndecl_3910 alps_command_mode_set_addr fndecl 2 3910 NULL
134565 +disable_so_ltimer_val_vxge_hw_tim_intr_config_3911 ltimer_val vxge_hw_tim_intr_config 0 3911 NULL
134566 +disable_so_dqb_btime_v1_disk_dqblk_3914 dqb_btime v1_disk_dqblk 0 3914 NULL nohasharray
134567 +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
134568 +disable_so_ieee802154_hdr_push_addr_fndecl_3915 ieee802154_hdr_push_addr fndecl 0 3915 NULL
134569 +disable_so_blk_mq_init_bitmap_tags_fndecl_3929 blk_mq_init_bitmap_tags fndecl 2 3929 NULL
134570 +disable_so_mtimensec_fuse_attr_3937 mtimensec fuse_attr 0 3937 NULL
134571 +disable_so_cpu_clock_sample_group_fndecl_3939 cpu_clock_sample_group fndecl 1 3939 NULL
134572 +disable_so_min_bit_val_anatop_regulator_3947 min_bit_val anatop_regulator 0 3947 NULL
134573 +disable_so_warmup_time_sfb_sched_data_3959 warmup_time sfb_sched_data 0 3959 NULL
134574 +disable_so_zd_write_mac_addr_common_fndecl_3965 zd_write_mac_addr_common fndecl 0 3965 NULL
134575 +disable_so_ext2_valid_block_bitmap_fndecl_3966 ext2_valid_block_bitmap fndecl 3 3966 NULL
134576 +disable_so_ctnetlink_change_timeout_fndecl_3973 ctnetlink_change_timeout fndecl 0 3973 NULL
134577 +disable_so_root_nfs_parse_addr_fndecl_3974 root_nfs_parse_addr fndecl 0 3974 NULL
134578 +disable_so_zalloc_cpumask_var_fndecl_3979 zalloc_cpumask_var fndecl 2 3979 NULL
134579 +disable_so_sta_addr_hash_fndecl_3982 sta_addr_hash fndecl 0-3 3982 NULL
134580 +disable_so_address_ins_format3_3983 address ins_format3 0 3983 NULL
134581 +disable_so___nfsd4_write_time_fndecl_3999 __nfsd4_write_time fndecl 0 3999 NULL
134582 +disable_so_disc_start_time_esas2r_adapter_4010 disc_start_time esas2r_adapter 0 4010 NULL
134583 +disable_so_scroll_jiffies_magicmouse_sc_4034 scroll_jiffies magicmouse_sc 0 4034 NULL
134584 +disable_so_add_input_randomness_fndecl_4036 add_input_randomness fndecl 3-1-2 4036 NULL
134585 +disable_so_rc5t583_regulator_enable_time_fndecl_4047 rc5t583_regulator_enable_time fndecl 0 4047 NULL
134586 +disable_so_s_log2sharesize_adfs_sb_info_4052 s_log2sharesize adfs_sb_info 0 4052 NULL
134587 +disable_so___bitmap_or_fndecl_4055 __bitmap_or fndecl 4 4055 NULL
134588 +disable_so_clockevents_config_and_register_fndecl_4078 clockevents_config_and_register fndecl 2-3-4 4078 NULL
134589 +disable_so_db_addr_mlx5_ib_create_qp_4086 db_addr mlx5_ib_create_qp 0 4086 NULL
134590 +disable_so_t4_wr_mbox_meat_fndecl_4090 t4_wr_mbox_meat fndecl 0-2 4090 NULL
134591 +disable_so_debounce_time_lm8333_platform_data_4097 debounce_time lm8333_platform_data 0 4097 NULL
134592 +disable_so_di_atime_logfs_disk_inode_4115 di_atime logfs_disk_inode 0 4115 NULL
134593 +disable_so_slave_address_cp2112_read_req_report_4116 slave_address cp2112_read_req_report 0 4116 NULL
134594 +disable_so_sleep_functions_on_battery_store_fndecl_4126 sleep_functions_on_battery_store fndecl 0-4 4126 NULL
134595 +disable_so_neigh_rand_reach_time_fndecl_4142 neigh_rand_reach_time fndecl 0-1 4142 NULL
134596 +disable_so_fib_devindex_hashfn_fndecl_4150 fib_devindex_hashfn fndecl 0-1 4150 NULL
134597 +disable_so_compat_sys_clock_adjtime_fndecl_4152 compat_sys_clock_adjtime fndecl 1 4152 NULL nohasharray
134598 +disable_so_addr_sh_eth_rxdesc_4152 addr sh_eth_rxdesc 0 4152 &disable_so_compat_sys_clock_adjtime_fndecl_4152
134599 +disable_so_throttled_clock_task_time_cfs_rq_4161 throttled_clock_task_time cfs_rq 0 4161 NULL
134600 +disable_so_usb_set_lpm_timeout_fndecl_4163 usb_set_lpm_timeout fndecl 3 4163 NULL
134601 +disable_so_delay_multi_eq_delay_info_4167 delay_multi eq_delay_info 0 4167 NULL nohasharray
134602 +disable_so_reg_w_fndecl_4167 reg_w fndecl 2 4167 &disable_so_delay_multi_eq_delay_info_4167
134603 +disable_so_btree_migratepage_fndecl_4171 btree_migratepage fndecl 0 4171 NULL
134604 +disable_so_vpfe_set_sdr_addr_fndecl_4178 vpfe_set_sdr_addr fndecl 2 4178 NULL
134605 +disable_so_rx_beacon_signal_avg_station_info_4180 rx_beacon_signal_avg station_info 0 4180 NULL
134606 +disable_so_put_time_rxrpc_connection_4183 put_time rxrpc_connection 0 4183 NULL
134607 +disable_so_demod_address_nxt200x_config_4185 demod_address nxt200x_config 0 4185 NULL
134608 +disable_so_addr_lo_cmdQ_e_4186 addr_lo cmdQ_e 0 4186 NULL
134609 +disable_so_addr_lo_eth_tx_next_bd_4188 addr_lo eth_tx_next_bd 0 4188 NULL
134610 +disable_so_timeout_kbd_backlight_4193 timeout kbd_backlight 0 4193 NULL
134611 +disable_so_hw_ptr_buffer_jiffies_snd_pcm_runtime_4199 hw_ptr_buffer_jiffies snd_pcm_runtime 0 4199 NULL
134612 +disable_so_hash_walk_new_entry_fndecl_4203 hash_walk_new_entry fndecl 0 4203 NULL
134613 +disable_so_time_of_death_afs_server_4206 time_of_death afs_server 0 4206 NULL
134614 +disable_so_rtl2832_sdr_s_frequency_fndecl_4208 rtl2832_sdr_s_frequency fndecl 0 4208 NULL
134615 +disable_so_si476x_radio_g_frequency_fndecl_4218 si476x_radio_g_frequency fndecl 0 4218 NULL
134616 +disable_so_ahc_delay_fndecl_4220 ahc_delay fndecl 1 4220 NULL
134617 +disable_so_mounted_time_sit_info_4228 mounted_time sit_info 0 4228 NULL
134618 +disable_so_ahash_register_instance_fndecl_4229 ahash_register_instance fndecl 0 4229 NULL
134619 +disable_so_f_frequency_e4000_dev_4236 f_frequency e4000_dev 0 4236 NULL
134620 +disable_so_timekeeping_adjust_fndecl_4243 timekeeping_adjust fndecl 2 4243 NULL
134621 +disable_so_sis190_mac_addr_fndecl_4248 sis190_mac_addr fndecl 0 4248 NULL nohasharray
134622 +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
134623 +disable_so_xhci_enable_usb3_lpm_timeout_fndecl_4278 xhci_enable_usb3_lpm_timeout fndecl 0 4278 NULL
134624 +disable_so_address_be_bus_address64_4299 address be_bus_address64 0 4299 NULL
134625 +disable_so_freq_tef6862_state_4304 freq tef6862_state 0 4304 NULL
134626 +disable_so_aes_decrypt_interrupt_read_fndecl_4309 aes_decrypt_interrupt_read fndecl 3-0 4309 NULL
134627 +disable_so_lm3533_set_boost_freq_fndecl_4311 lm3533_set_boost_freq fndecl 0-2 4311 NULL
134628 +disable_so_adis16400_set_freq_fndecl_4314 adis16400_set_freq fndecl 0 4314 NULL
134629 +disable_so_vsync_offset_pulse_width_lo_detailed_pixel_timing_4318 vsync_offset_pulse_width_lo detailed_pixel_timing 0 4318 NULL
134630 +disable_so_time_atkbd_4320 time atkbd 0 4320 NULL nohasharray
134631 +disable_so_make_kuid_fndecl_4320 make_kuid fndecl 2 4320 &disable_so_time_atkbd_4320
134632 +disable_so_lookup_scsi3addr_fndecl_4332 lookup_scsi3addr fndecl 2-3-4 4332 NULL
134633 +disable_so_bf_buf_addr_ath_rxbuf_4337 bf_buf_addr ath_rxbuf 0 4337 NULL
134634 +disable_so_kbd_backlight_timeout_vardecl_sony_laptop_c_4340 kbd_backlight_timeout vardecl_sony-laptop.c 0 4340 NULL
134635 +disable_so_tomoyo_addprintf_fndecl_4352 tomoyo_addprintf fndecl 2 4352 NULL
134636 +disable_so_ab3100_get_register_interruptible_fndecl_4353 ab3100_get_register_interruptible fndecl 0 4353 NULL
134637 +disable_so_cpufreq_add_dev_interface_fndecl_4356 cpufreq_add_dev_interface fndecl 0 4356 NULL
134638 +disable_so_upper_addr_ufshcd_sg_entry_4364 upper_addr ufshcd_sg_entry 0 4364 NULL
134639 +disable_so_linear_address_kvm_translation_4366 linear_address kvm_translation 0 4366 NULL
134640 +disable_so_n_tty_receive_signal_char_fndecl_4373 n_tty_receive_signal_char fndecl 2 4373 NULL
134641 +disable_so_proc_uid_vardecl_airo_c_4387 proc_uid vardecl_airo.c 0 4387 NULL nohasharray
134642 +disable_so_dequeue_signal_fndecl_4387 dequeue_signal fndecl 0 4387 &disable_so_proc_uid_vardecl_airo_c_4387
134643 +disable_so_nilfs_btree_root_broken_fndecl_4403 nilfs_btree_root_broken fndecl 2 4403 NULL
134644 +disable_so_kstrtoll_from_user_fndecl_4415 kstrtoll_from_user fndecl 2 4415 NULL
134645 +disable_so_timestamp_fw_packet_4416 timestamp fw_packet 0 4416 NULL
134646 +disable_so_hhf_reset_timeout_hhf_sched_data_4417 hhf_reset_timeout hhf_sched_data 0 4417 NULL
134647 +disable_so_timeout_mpt3_ioctl_command_4422 timeout mpt3_ioctl_command 0 4422 NULL
134648 +disable_so_reg_write_fndecl_4433 reg_write fndecl 0-2-3 4433 NULL
134649 +disable_so_et0phyaddr_ssb_sprom_4448 et0phyaddr ssb_sprom 0 4448 NULL
134650 +disable_so_prev_steal_time_rq_4451 prev_steal_time rq 0 4451 NULL
134651 +disable_so_master_init_timer_mipi_config_4453 master_init_timer mipi_config 0 4453 NULL
134652 +disable_so_find_eth_addr_in_vpd_fndecl_4457 find_eth_addr_in_vpd fndecl 3 4457 NULL
134653 +disable_so_ccca_start_addr_snd_emu10k1_pcm_4459 ccca_start_addr snd_emu10k1_pcm 0 4459 NULL
134654 +disable_so_freq_offset_khz_vhf_dib0090_config_4461 freq_offset_khz_vhf dib0090_config 0 4461 NULL
134655 +disable_so_rxqueue_timer_velocity_opt_4470 rxqueue_timer velocity_opt 0 4470 NULL
134656 +disable_so_sysctl_rose_link_fail_timeout_vardecl_4477 sysctl_rose_link_fail_timeout vardecl 0 4477 NULL
134657 +disable_so_ablkcipher_walk_first_fndecl_4483 ablkcipher_walk_first fndecl 0 4483 NULL
134658 +disable_so_get_cached_alias_guid_fndecl_4490 get_cached_alias_guid fndecl 2-3 4490 NULL
134659 +disable_so_cfg80211_chandef_dfs_cac_time_fndecl_4493 cfg80211_chandef_dfs_cac_time fndecl 0 4493 NULL
134660 +disable_so_mclk_div2_cs42l56_private_4499 mclk_div2 cs42l56_private 0 4499 NULL
134661 +disable_so_snd_timer_user_ioctl_fndecl_4500 snd_timer_user_ioctl fndecl 0 4500 NULL nohasharray
134662 +disable_so_s5p_mfc_clock_on_fndecl_4500 s5p_mfc_clock_on fndecl 0 4500 &disable_so_snd_timer_user_ioctl_fndecl_4500
134663 +disable_so_boundary_snd_pcm_runtime_4504 boundary snd_pcm_runtime 0 4504 NULL nohasharray
134664 +disable_so_show_message_age_timer_fndecl_4504 show_message_age_timer fndecl 0 4504 &disable_so_boundary_snd_pcm_runtime_4504
134665 +disable_so_tn_smc_wreg_fndecl_4512 tn_smc_wreg fndecl 2-3 4512 NULL
134666 +disable_so_ip_perf_sample_data_4515 ip perf_sample_data 0 4515 NULL nohasharray
134667 +disable_so_intel_gpu_freq_fndecl_4515 intel_gpu_freq fndecl 0-2 4515 &disable_so_ip_perf_sample_data_4515
134668 +disable_so_clk_delay_mmc_host_4517 clk_delay mmc_host 0 4517 NULL
134669 +disable_so_addr_atiixp_modem_4521 addr atiixp_modem 0 4521 NULL
134670 +disable_so_rsp_dmaaddr_fw_scsi_write_wr_4522 rsp_dmaaddr fw_scsi_write_wr 0 4522 NULL
134671 +disable_so_last_sum_exec_runtime_task_struct_4531 last_sum_exec_runtime task_struct 0 4531 NULL
134672 +disable_so_buf_addr_mlx5_ib_create_qp_4533 buf_addr mlx5_ib_create_qp 0 4533 NULL
134673 +disable_so_set_h245_addr_fndecl_4538 set_h245_addr fndecl 2-4 4538 NULL
134674 +disable_so_sleep_reg_fan53555_device_info_4552 sleep_reg fan53555_device_info 0 4552 NULL
134675 +disable_so_freqmode__pll_div_4562 freqmode _pll_div 0 4562 NULL
134676 +disable_so_buffer_addr_i40e_tx_desc_4570 buffer_addr i40e_tx_desc 0 4570 NULL
134677 +disable_so_ctime_cifs_unix_set_info_args_4572 ctime cifs_unix_set_info_args 0 4572 NULL
134678 +disable_so_pci_bus_saa7164_dev_4576 pci_bus saa7164_dev 0 4576 NULL
134679 +disable_so_addr_vhost_log_4579 addr vhost_log 0 4579 NULL
134680 +disable_so_store_fan_div_fndecl_4585 store_fan_div fndecl 0-4 4585 NULL
134681 +disable_so_timeout__mgslpc_info_4586 timeout _mgslpc_info 0 4586 NULL
134682 +disable_so_posix_timer_add_fndecl_4591 posix_timer_add fndecl 0 4591 NULL
134683 +disable_so_system_timestamp_iwl_rx_phy_info_4592 system_timestamp iwl_rx_phy_info 0 4592 NULL
134684 +disable_so_guid_ib_dm_ioc_profile_4593 guid ib_dm_ioc_profile 0 4593 NULL
134685 +disable_so_qat_alg_ablkcipher_init_com_fndecl_4596 qat_alg_ablkcipher_init_com fndecl 5 4596 NULL
134686 +disable_so_irlan_client_start_kick_timer_fndecl_4618 irlan_client_start_kick_timer fndecl 2 4618 NULL
134687 +disable_so_kvm_apic_match_physical_addr_fndecl_4632 kvm_apic_match_physical_addr fndecl 2 4632 NULL
134688 +disable_so_task_fix_setuid_security_operations_4637 task_fix_setuid security_operations 0 4637 NULL
134689 +disable_so_nla_put_labels_fndecl_4639 nla_put_labels fndecl 3 4639 NULL
134690 +disable_so_xen_pcibk_guest_interrupt_fndecl_4644 xen_pcibk_guest_interrupt fndecl 1 4644 NULL
134691 +disable_so_phys_addr_qlcnic_fw_dump_4650 phys_addr qlcnic_fw_dump 0 4650 NULL
134692 +disable_so_daddr_ath5k_buf_4651 daddr ath5k_buf 0 4651 NULL
134693 +disable_so_phase_delay_atom_voltage_table_4655 phase_delay atom_voltage_table 0 4655 NULL
134694 +disable_so_nl80211_send_auth_timeout_fndecl_4657 nl80211_send_auth_timeout fndecl 4 4657 NULL
134695 +disable_so_af9013_statistics_signal_strength_fndecl_4658 af9013_statistics_signal_strength fndecl 0 4658 NULL
134696 +disable_so_kbd_led_timeout_store_fndecl_4659 kbd_led_timeout_store fndecl 0-4 4659 NULL
134697 +disable_so_byte_align_snd_pcm_runtime_4661 byte_align snd_pcm_runtime 0 4661 NULL
134698 +disable_so_stv0900_get_timing_offst_fndecl_4670 stv0900_get_timing_offst fndecl 0-2 4670 NULL
134699 +disable_so_clk_frequency_imx_sgtl5000_data_4671 clk_frequency imx_sgtl5000_data 0 4671 NULL
134700 +disable_so_sys_image_guid_ib_device_attr_4674 sys_image_guid ib_device_attr 0 4674 NULL
134701 +disable_so_timestamp_usec_rt2x00dump_hdr_4680 timestamp_usec rt2x00dump_hdr 0 4680 NULL
134702 +disable_so_ieee80211_aes_cmac_fndecl_4693 ieee80211_aes_cmac fndecl 4 4693 NULL
134703 +disable_so_hpi_handle_indexes_fndecl_4704 hpi_handle_indexes fndecl 1 4704 NULL
134704 +disable_so_runtime_suspend_mmc_bus_ops_4709 runtime_suspend mmc_bus_ops 0 4709 NULL
134705 +disable_so_i_atime_bfs_inode_4710 i_atime bfs_inode 0 4710 NULL
134706 +disable_so_tsf_timestamp_rx_ppdu_end_common_4717 tsf_timestamp rx_ppdu_end_common 0 4717 NULL
134707 +disable_so_register_blkdev_fndecl_4723 register_blkdev fndecl 0-1 4723 NULL
134708 +disable_so_clockevents_unbind_fndecl_4727 clockevents_unbind fndecl 2 4727 NULL
134709 +disable_so_dma_addr_vmxnet3_rx_buf_info_4730 dma_addr vmxnet3_rx_buf_info 0 4730 NULL
134710 +disable_so_ip_idents_reserve_fndecl_4731 ip_idents_reserve fndecl 0-1-2 4731 NULL
134711 +disable_so_atomic64_sub_and_test_fndecl_4733 atomic64_sub_and_test fndecl 1 4733 NULL nohasharray
134712 +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
134713 +disable_so_wakeup_total_time_show_fndecl_4745 wakeup_total_time_show fndecl 0 4745 NULL
134714 +disable_so_kv_get_sleep_divider_id_from_clock_fndecl_4756 kv_get_sleep_divider_id_from_clock fndecl 2 4756 NULL
134715 +disable_so_delay_fn_vardecl_delay_c_4772 delay_fn vardecl_delay.c 1 4772 NULL
134716 +disable_so_do_sched_cfs_period_timer_fndecl_4778 do_sched_cfs_period_timer fndecl 2 4778 NULL
134717 +disable_so_gid_index_mlx4_av_4786 gid_index mlx4_av 0 4786 NULL
134718 +disable_so_rq_addr_high_nes_qp_context_4796 rq_addr_high nes_qp_context 0 4796 NULL
134719 +disable_so_last_commit_jiffies_cache_4801 last_commit_jiffies cache 0 4801 NULL
134720 +disable_so_frequency_sst_hsw_audio_data_format_ipc_4811 frequency sst_hsw_audio_data_format_ipc 0 4811 NULL
134721 +disable_so_dev_sleep_time_cyapa_4825 dev_sleep_time cyapa 0 4825 NULL nohasharray
134722 +disable_so_si570_update_rfreq_fndecl_4825 si570_update_rfreq fndecl 0 4825 &disable_so_dev_sleep_time_cyapa_4825
134723 +disable_so_reply_dma_max_address_MPT2SAS_ADAPTER_4826 reply_dma_max_address MPT2SAS_ADAPTER 0 4826 NULL
134724 +disable_so_freq_nvkm_ram_data_4838 freq nvkm_ram_data 0 4838 NULL
134725 +disable_so_ata_timing_find_mode_fndecl_4841 ata_timing_find_mode fndecl 1 4841 NULL
134726 +disable_so_hci_bdaddr_list_del_fndecl_4856 hci_bdaddr_list_del fndecl 0 4856 NULL
134727 +disable_so_challenge_timestamp_vardecl_tcp_input_c_4859 challenge_timestamp vardecl_tcp_input.c 0 4859 NULL
134728 +disable_so_bar2_address_fndecl_4862 bar2_address fndecl 2 4862 NULL
134729 +disable_so_time_pardevice_4872 time pardevice 0 4872 NULL
134730 +disable_so_open_posix_clock_operations_4876 open posix_clock_operations 2 4876 NULL
134731 +disable_so_buf2_addr_xgmac_dma_desc_4877 buf2_addr xgmac_dma_desc 0 4877 NULL
134732 +disable_so_mixart_set_clock_fndecl_4878 mixart_set_clock fndecl 3 4878 NULL nohasharray
134733 +disable_so_adis16480_get_filter_freq_fndecl_4878 adis16480_get_filter_freq fndecl 0 4878 &disable_so_mixart_set_clock_fndecl_4878
134734 +disable_so_ssb_chipco_watchdog_get_max_timer_fndecl_4885 ssb_chipco_watchdog_get_max_timer fndecl 0 4885 NULL
134735 +disable_so_sys_timerfd_gettime_fndecl_4888 sys_timerfd_gettime fndecl 1 4888 NULL nohasharray
134736 +disable_so_regcache_rbtree_read_fndecl_4888 regcache_rbtree_read fndecl 2 4888 &disable_so_sys_timerfd_gettime_fndecl_4888
134737 +disable_so_reiserfs_read_bitmap_block_fndecl_4892 reiserfs_read_bitmap_block fndecl 2 4892 NULL
134738 +disable_so_mapaddr_bq_desc_4896 mapaddr bq_desc 0 4896 NULL
134739 +disable_so_sec_tomoyo_time_4898 sec tomoyo_time 0 4898 NULL
134740 +disable_so_nvkm_timer_wait_ne_fndecl_4904 nvkm_timer_wait_ne fndecl 3-5 4904 NULL
134741 +disable_so_ehash_locks_mask_inet_hashinfo_4906 ehash_locks_mask inet_hashinfo 0 4906 NULL
134742 +disable_so_split_scan_timeout_read_fndecl_4910 split_scan_timeout_read fndecl 3-0 4910 NULL
134743 +disable_so_rdmsr_safe_regs_on_cpu_fndecl_4918 rdmsr_safe_regs_on_cpu fndecl 0-1 4918 NULL
134744 +disable_so_data_addr_pmu_nvbios_pmuR_4930 data_addr_pmu nvbios_pmuR 0 4930 NULL
134745 +disable_so_fs_overflowgid_vardecl_4952 fs_overflowgid vardecl 0 4952 NULL
134746 +disable_so_crypto_authenc_esn_encrypt_done_fndecl_4953 crypto_authenc_esn_encrypt_done fndecl 2 4953 NULL
134747 +disable_so_addr_lo_sdhci_adma2_64_desc_4956 addr_lo sdhci_adma2_64_desc 0 4956 NULL
134748 +disable_so_hc_erase_timeout_mmc_ext_csd_4958 hc_erase_timeout mmc_ext_csd 0 4958 NULL nohasharray
134749 +disable_so_translation_offset_acpi_address64_attribute_4958 translation_offset acpi_address64_attribute 0 4958 &disable_so_hc_erase_timeout_mmc_ext_csd_4958
134750 +disable_so_address_acpi_object_region_4962 address acpi_object_region 0 4962 NULL
134751 +disable_so_nlmsvc_timeout_vardecl_4968 nlmsvc_timeout vardecl 0 4968 NULL
134752 +disable_so_icmpv6_time_netns_sysctl_ipv6_4971 icmpv6_time netns_sysctl_ipv6 0 4971 NULL
134753 +disable_so_rhashtable_walk_init_fndecl_4975 rhashtable_walk_init fndecl 0 4975 NULL
134754 +disable_so_tm_wday_rtc_time_4991 tm_wday rtc_time 0 4991 NULL
134755 +disable_so_pre_event_timeout_seq_oss_readq_4996 pre_event_timeout seq_oss_readq 0 4996 NULL
134756 +disable_so_m_sys_clock_freq_drxk_state_5005 m_sys_clock_freq drxk_state 0 5005 NULL
134757 +disable_so_btree_merge_fndecl_5007 btree_merge fndecl 4 5007 NULL
134758 +disable_so_addr_snd_dma_buffer_5022 addr snd_dma_buffer 0 5022 NULL
134759 +disable_so_mlx4_get_slave_num_gids_fndecl_5024 mlx4_get_slave_num_gids fndecl 0-2-3 5024 NULL
134760 +disable_so_time_nfc_llcp_sdp_tlv_5037 time nfc_llcp_sdp_tlv 0 5037 NULL
134761 +disable_so_hangcheck_tsc_margin_vardecl_hangcheck_timer_c_5043 hangcheck_tsc_margin vardecl_hangcheck-timer.c 0 5043 NULL
134762 +disable_so_fill_node_footer_blkaddr_fndecl_5053 fill_node_footer_blkaddr fndecl 2 5053 NULL
134763 +disable_so_sc_lseg_stime_nilfs_sc_info_5054 sc_lseg_stime nilfs_sc_info 0 5054 NULL
134764 +disable_so_kstrtou8_fndecl_5058 kstrtou8 fndecl 0 5058 NULL
134765 +disable_so_RF_SYN_pll_refdiv_chan_info_nphy_radio205x_5063 RF_SYN_pll_refdiv chan_info_nphy_radio205x 0 5063 NULL
134766 +disable_so_addr_lo_tx_desc_5065 addr_lo tx_desc 0 5065 NULL
134767 +disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067 mos7840_calc_baud_rate_divisor fndecl 2 5067 NULL nohasharray
134768 +disable_so_addr_iwch_mm_entry_5067 addr iwch_mm_entry 0 5067 &disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067
134769 +disable_so_freq_wmi_send_mgmt_cmd_5080 freq wmi_send_mgmt_cmd 0 5080 NULL
134770 +disable_so_wep_addr_key_count_read_fndecl_5085 wep_addr_key_count_read fndecl 3-0 5085 NULL
134771 +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
134772 +disable_so_udf_bitmap_new_block_fndecl_5093 udf_bitmap_new_block fndecl 0-4 5093 NULL
134773 +disable_so_ds1343_read_time_fndecl_5094 ds1343_read_time fndecl 0 5094 NULL nohasharray
134774 +disable_so_panel_blon_delay_radeon_encoder_lvds_5094 panel_blon_delay radeon_encoder_lvds 0 5094 &disable_so_ds1343_read_time_fndecl_5094
134775 +disable_so_hpi_cobranet_set_ip_address_fndecl_5106 hpi_cobranet_set_ip_address fndecl 1 5106 NULL
134776 +disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107 rx_bidx_addr bnx2_rx_ring_info 0 5107 NULL nohasharray
134777 +disable_so_bitmap_andnot_fndecl_5107 bitmap_andnot fndecl 4 5107 &disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107
134778 +disable_so_end_seq_illinois_5111 end_seq illinois 0 5111 NULL
134779 +disable_so_in_progress_block_addr_flchip_5114 in_progress_block_addr flchip 0 5114 NULL
134780 +disable_so_xmit_timestamp_cw1200_queue_item_5121 xmit_timestamp cw1200_queue_item 0 5121 NULL
134781 +disable_so_snd_ymfpci_timer_fndecl_5137 snd_ymfpci_timer fndecl 2-0 5137 NULL
134782 +disable_so_sysctl_rose_no_activity_timeout_vardecl_5143 sysctl_rose_no_activity_timeout vardecl 0 5143 NULL
134783 +disable_so_mtime_p9_wstat_5152 mtime p9_wstat 0 5152 NULL nohasharray
134784 +disable_so_addr_mvs_prd_5152 addr mvs_prd 0 5152 &disable_so_mtime_p9_wstat_5152
134785 +disable_so_pcan_usb_pro_set_bittiming_fndecl_5169 pcan_usb_pro_set_bittiming fndecl 0 5169 NULL
134786 +disable_so_phy_addr_e1000_hw_5196 phy_addr e1000_hw 0 5196 NULL
134787 +disable_so_cpufreq_p4_init_fndecl_5201 cpufreq_p4_init fndecl 0 5201 NULL
134788 +disable_so_iscsit_na_dataout_timeout_retries_fndecl_5205 iscsit_na_dataout_timeout_retries fndecl 0 5205 NULL
134789 +disable_so_ata_sff_queue_delayed_work_fndecl_5217 ata_sff_queue_delayed_work fndecl 2 5217 NULL
134790 +disable_so_post_div_atom_mpll_param_5225 post_div atom_mpll_param 0 5225 NULL
134791 +disable_so_cfg80211_wext_freq_fndecl_5229 cfg80211_wext_freq fndecl 0 5229 NULL
134792 +disable_so_poll_timer_vardecl_hfcmulti_c_5232 poll_timer vardecl_hfcmulti.c 0 5232 NULL
134793 +disable_so_antdiv_ctl1_modal_eep_4k_header_5248 antdiv_ctl1 modal_eep_4k_header 0 5248 NULL
134794 +disable_so_snd_efw_command_get_clock_source_fndecl_5253 snd_efw_command_get_clock_source fndecl 0 5253 NULL
134795 +disable_so_img_ir_free_timing_dynamic_fndecl_5255 img_ir_free_timing_dynamic fndecl 0-1 5255 NULL
134796 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_retries_fndecl_5267 iscsi_nacl_attrib_store_dataout_timeout_retries fndecl 0-3 5267 NULL
134797 +disable_so_st_mtime_nsec_compat_stat_5268 st_mtime_nsec compat_stat 0 5268 NULL nohasharray
134798 +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
134799 +disable_so_selinux_task_setpgid_fndecl_5275 selinux_task_setpgid fndecl 0 5275 NULL
134800 +disable_so_target_addr_sg_entry_5281 target_addr sg_entry 0 5281 NULL nohasharray
134801 +disable_so_range_start_fixed_mtrr_segment_5281 range_start fixed_mtrr_segment 0 5281 &disable_so_target_addr_sg_entry_5281
134802 +disable_so_interrupt_offset_vnic_cq_5300 interrupt_offset vnic_cq 0 5300 NULL
134803 +disable_so_usb_calc_bus_time_fndecl_5306 usb_calc_bus_time fndecl 0-4-2 5306 NULL
134804 +disable_so_cypress_calculate_burst_time_fndecl_5314 cypress_calculate_burst_time fndecl 2-3-0 5314 NULL nohasharray
134805 +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
134806 +disable_so_nilfs_btree_assign_v_fndecl_5317 nilfs_btree_assign_v fndecl 0-5 5317 NULL
134807 +disable_so_seq_tipc_nl_msg_5321 seq tipc_nl_msg 0 5321 NULL
134808 +disable_so_dr_addr_qlc_83xx_quad_entry_5328 dr_addr qlc_83xx_quad_entry 0 5328 NULL
134809 +disable_so_lzo_decompress_fndecl_5329 lzo_decompress fndecl 3 5329 NULL
134810 +disable_so_get_phys_addr_esas2r_sg_context_5331 get_phys_addr esas2r_sg_context 0 5331 NULL
134811 +disable_so_i2c_udelay_vardecl_bttv_i2c_c_5339 i2c_udelay vardecl_bttv-i2c.c 0 5339 NULL
134812 +disable_so_msr_src_desc_5345 msr src_desc 0 5345 NULL
134813 +disable_so_put_time_rxrpc_transport_5355 put_time rxrpc_transport 0 5355 NULL
134814 +disable_so_mtrr_del_fndecl_5356 mtrr_del fndecl 2-3 5356 NULL
134815 +disable_so_d_itimer_fs_disk_quota_5358 d_itimer fs_disk_quota 0 5358 NULL
134816 +disable_so_buf_phy_addr_high_ql_rcv_buf_cb_5366 buf_phy_addr_high ql_rcv_buf_cb 0 5366 NULL
134817 +disable_so_cpufreq_get_cur_state_fndecl_5369 cpufreq_get_cur_state fndecl 1 5369 NULL
134818 +disable_so_hi_cfg_bridge_delay_drxj_data_5374 hi_cfg_bridge_delay drxj_data 0 5374 NULL
134819 +disable_so_btrfs_uuid_tree_lookup_fndecl_5376 btrfs_uuid_tree_lookup fndecl 0-3-4 5376 NULL
134820 +disable_so_ds1347_read_time_fndecl_5383 ds1347_read_time fndecl 0 5383 NULL nohasharray
134821 +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
134822 +disable_so_nvm_start_addr_code_entry_5390 nvm_start_addr code_entry 0 5390 NULL
134823 +disable_so_bna_tx_coalescing_timeo_set_fndecl_5397 bna_tx_coalescing_timeo_set fndecl 2 5397 NULL
134824 +disable_so_ptp_pch_adjtime_fndecl_5406 ptp_pch_adjtime fndecl 2 5406 NULL nohasharray
134825 +disable_so_setkey_blkcipher_tfm_5406 setkey blkcipher_tfm 0-3 5406 &disable_so_ptp_pch_adjtime_fndecl_5406
134826 +disable_so_poll_time_plat_max3100_5416 poll_time plat_max3100 0 5416 NULL
134827 +disable_so_xfrm_hash_free_fndecl_5437 xfrm_hash_free fndecl 2 5437 NULL
134828 +disable_so_sh_cmt_register_clockevent_fndecl_5438 sh_cmt_register_clockevent fndecl 0 5438 NULL
134829 +disable_so_wake_cnt_blk_mq_bitmap_tags_5442 wake_cnt blk_mq_bitmap_tags 0 5442 NULL
134830 +disable_so_ping_clear_saddr_fndecl_5445 ping_clear_saddr fndecl 2 5445 NULL
134831 +disable_so_address_dummy_5460 address dummy 0 5460 NULL
134832 +disable_so_rtl_signal_scale_mapping_fndecl_5462 rtl_signal_scale_mapping fndecl 0-2 5462 NULL
134833 +disable_so_nfs_cache_getent_timeout_vardecl_cache_lib_c_5468 nfs_cache_getent_timeout vardecl_cache_lib.c 0 5468 NULL
134834 +disable_so_wmi_addr_remap_fndecl_5469 wmi_addr_remap fndecl 0-1 5469 NULL
134835 +disable_so_hash_mem_fndecl_5475 hash_mem fndecl 2 5475 NULL
134836 +disable_so_mpll_ss1_ni_clock_registers_5476 mpll_ss1 ni_clock_registers 0 5476 NULL
134837 +disable_so_cg_spll_spread_spectrum_rv730_clock_registers_5480 cg_spll_spread_spectrum rv730_clock_registers 0 5480 NULL
134838 +disable_so_data_shared_msr_entry_5484 data shared_msr_entry 0 5484 NULL
134839 +disable_so_bitmap_count_page_fndecl_5494 bitmap_count_page fndecl 2 5494 NULL
134840 +disable_so_write_radio_reg_fndecl_5497 write_radio_reg fndecl 2-3 5497 NULL nohasharray
134841 +disable_so_skcipher_recvmsg_async_fndecl_5497 skcipher_recvmsg_async fndecl 0 5497 &disable_so_write_radio_reg_fndecl_5497
134842 +disable_so_i2c_address_stv6110_priv_5499 i2c_address stv6110_priv 0 5499 NULL
134843 +disable_so_sh_cmt_clocksource_enable_fndecl_5501 sh_cmt_clocksource_enable fndecl 0 5501 NULL
134844 +disable_so_effhash_fndecl_5510 effhash fndecl 0-1 5510 NULL
134845 +disable_so_kswapd_try_to_sleep_fndecl_5521 kswapd_try_to_sleep fndecl 2 5521 NULL
134846 +disable_so_oublock_signal_struct_5525 oublock signal_struct 0 5525 NULL
134847 +disable_so_intel_bios_ssc_frequency_fndecl_5528 intel_bios_ssc_frequency fndecl 0 5528 NULL
134848 +disable_so_ioasa_bus_addr_pmcraid_ioarcb_5540 ioasa_bus_addr pmcraid_ioarcb 0 5540 NULL
134849 +disable_so_addr_req_t_5548 addr req_t 0 5548 NULL
134850 +disable_so_xfs_btree_read_bufl_fndecl_5558 xfs_btree_read_bufl fndecl 0-3 5558 NULL
134851 +disable_so_csa_expire_time_mwifiex_private_5561 csa_expire_time mwifiex_private 0 5561 NULL
134852 +disable_so_hpi_cobranet_set_static_ip_address_fndecl_5564 hpi_cobranet_set_static_ip_address fndecl 1 5564 NULL
134853 +disable_so_crypto_sha256_update_fndecl_5571 crypto_sha256_update fndecl 3 5571 NULL
134854 +disable_so_pixclock_vardecl_matroxfb_base_c_5573 pixclock vardecl_matroxfb_base.c 0 5573 NULL
134855 +disable_so_crypto_inc_byte_fndecl_5578 crypto_inc_byte fndecl 2 5578 NULL
134856 +disable_so_duration_iwl_time_event_cmd_5595 duration iwl_time_event_cmd 0 5595 NULL
134857 +disable_so_ddcb_daddr_ddcb_queue_5599 ddcb_daddr ddcb_queue 0 5599 NULL
134858 +disable_so_sst_handle_vb_timer_fndecl_5602 sst_handle_vb_timer fndecl 0 5602 NULL
134859 +disable_so_comp_resp_timeout_reg_pch_phub_reg_5604 comp_resp_timeout_reg pch_phub_reg 0 5604 NULL
134860 +disable_so_sys_getegid_fndecl_5608 sys_getegid fndecl 0 5608 NULL
134861 +disable_so_st_gid___old_kernel_stat_5613 st_gid __old_kernel_stat 0 5613 NULL
134862 +disable_so_daddr_iphdr_5614 daddr iphdr 0 5614 NULL
134863 +disable_so_desc_set_buf_addr_and_size_fndecl_5618 desc_set_buf_addr_and_size fndecl 2-3 5618 NULL
134864 +disable_so_pch_udc_enable_ep_interrupts_fndecl_5624 pch_udc_enable_ep_interrupts fndecl 2 5624 NULL
134865 +disable_so_physaddr_brcmf_msgbuf_pktid_5642 physaddr brcmf_msgbuf_pktid 0 5642 NULL
134866 +disable_so_usb_timeout_vardecl_radio_si470x_usb_c_5648 usb_timeout vardecl_radio-si470x-usb.c 0 5648 NULL
134867 +disable_so_show_sys_image_guid_fndecl_5652 show_sys_image_guid fndecl 0 5652 NULL
134868 +disable_so_mtask_addr_beiscsi_io_task_5654 mtask_addr beiscsi_io_task 0 5654 NULL
134869 +disable_so_no_addr_gfs2_inum_host_5660 no_addr gfs2_inum_host 0 5660 NULL
134870 +disable_so___sw_hweight64_fndecl_5663 __sw_hweight64 fndecl 1-0 5663 NULL
134871 +disable_so_aca_tstamp_ifacaddr6_5678 aca_tstamp ifacaddr6 0 5678 NULL
134872 +disable_so_fill_in_addresses_op_x86_model_spec_5684 fill_in_addresses op_x86_model_spec 0 5684 NULL
134873 +disable_so_root_hfs_btree_5692 root hfs_btree 0 5692 NULL
134874 +disable_so_update_time_saa7164_histogram_bucket_5697 update_time saa7164_histogram_bucket 0 5697 NULL
134875 +disable_so_hw_ptr_base_snd_pcm_runtime_5698 hw_ptr_base snd_pcm_runtime 0 5698 NULL
134876 +disable_so_snd_emu10k1_timer_fndecl_5702 snd_emu10k1_timer fndecl 2-0 5702 NULL
134877 +disable_so_bmap_hash_id_fndecl_5706 bmap_hash_id fndecl 0-2 5706 NULL
134878 +disable_so_timeout_abs_ns_vcpu_set_singleshot_timer_5711 timeout_abs_ns vcpu_set_singleshot_timer 0 5711 NULL
134879 +disable_so_timestamp_discovery_t_5725 timestamp discovery_t 0 5725 NULL nohasharray
134880 +disable_so_uid_fuse_setattr_in_5725 uid fuse_setattr_in 0 5725 &disable_so_timestamp_discovery_t_5725 nohasharray
134881 +disable_so_SYSC_setreuid_fndecl_5725 SYSC_setreuid fndecl 0 5725 &disable_so_uid_fuse_setattr_in_5725
134882 +disable_so_r10_kvm_regs_5730 r10 kvm_regs 0 5730 NULL
134883 +disable_so_bulk_in_epaddr_sur40_state_5741 bulk_in_epaddr sur40_state 0 5741 NULL
134884 +disable_so_rt2x00lib_rxdone_read_signal_fndecl_5747 rt2x00lib_rxdone_read_signal fndecl 0 5747 NULL
134885 +disable_so_ti_tscadc_driver_init_fndecl_5771 ti_tscadc_driver_init fndecl 0 5771 NULL
134886 +disable_so_iowrite8_fndecl_5781 iowrite8 fndecl 1 5781 NULL
134887 +disable_so_mthca_resize_cq_fndecl_5782 mthca_resize_cq fndecl 0 5782 NULL
134888 +disable_so_lbs_host_sleep_write_fndecl_5783 lbs_host_sleep_write fndecl 0-3 5783 NULL
134889 +disable_so_addr_tx_buf_desc_5787 addr tx_buf_desc 0 5787 NULL
134890 +disable_so_tcn_timer_value___bridge_info_5789 tcn_timer_value __bridge_info 0 5789 NULL
134891 +disable_so_old_jiffies_ati_remote_5798 old_jiffies ati_remote 0 5798 NULL
134892 +disable_so_timeout_sched_poll_5810 timeout sched_poll 0 5810 NULL
134893 +disable_so_addr_doit_fndecl_5813 addr_doit fndecl 0 5813 NULL
134894 +disable_so_enic_dev_del_addr_fndecl_5814 enic_dev_del_addr fndecl 0 5814 NULL
134895 +disable_so_start_addr_gen_pool_chunk_5822 start_addr gen_pool_chunk 0 5822 NULL
134896 +disable_so_smsc75xx_enable_phy_wakeup_interrupts_fndecl_5824 smsc75xx_enable_phy_wakeup_interrupts fndecl 2-0 5824 NULL
134897 +disable_so_ieee802154_hdr_peek_addrs_fndecl_5825 ieee802154_hdr_peek_addrs fndecl 0 5825 NULL
134898 +disable_so_dsp_dram_offset_sst_addr_5830 dsp_dram_offset sst_addr 0 5830 NULL
134899 +disable_so_mwifiex_read_reg_fndecl_5832 mwifiex_read_reg fndecl 2 5832 NULL
134900 +disable_so_process_tgid_comm_proc_event_5834 process_tgid comm_proc_event 0 5834 NULL
134901 +disable_so_idedisk_read_native_max_address_fndecl_5836 idedisk_read_native_max_address fndecl 0 5836 NULL
134902 +disable_so_bus_time_fw_ohci_5838 bus_time fw_ohci 0 5838 NULL
134903 +disable_so_demod_address_nxt6000_config_5841 demod_address nxt6000_config 0 5841 NULL
134904 +disable_so_recover_timer_write_fndecl_5848 recover_timer_write fndecl 3-0 5848 NULL
134905 +disable_so_next_jiffies_tick_sched_5856 next_jiffies tick_sched 0 5856 NULL
134906 +disable_so_addr_asc_sg_list_5863 addr asc_sg_list 0 5863 NULL
134907 +disable_so_schedule_delayed_work_fndecl_5873 schedule_delayed_work fndecl 2 5873 NULL
134908 +disable_so_allow_utime_fat_mount_options_5877 allow_utime fat_mount_options 0 5877 NULL
134909 +disable_so_irlap_start_query_timer_fndecl_5881 irlap_start_query_timer fndecl 3-2 5881 NULL
134910 +disable_so_nent_kvm_cpuid2_5883 nent kvm_cpuid2 0 5883 NULL
134911 +disable_so_delay_pcm_irq_snd_emu10k1_5885 delay_pcm_irq snd_emu10k1 0 5885 NULL
134912 +disable_so_DAC1064_calcclock_fndecl_5888 DAC1064_calcclock fndecl 2-3 5888 NULL
134913 +disable_so_ep_address_ath6kl_usb_pipe_5905 ep_address ath6kl_usb_pipe 0 5905 NULL nohasharray
134914 +disable_so_set_bit_le_fndecl_5905 set_bit_le fndecl 1 5905 &disable_so_ep_address_ath6kl_usb_pipe_5905
134915 +disable_so_last_force_reset_jiffies_il_force_reset_5911 last_force_reset_jiffies il_force_reset 0 5911 NULL
134916 +disable_so_evclk_radeon_vce_clock_voltage_dependency_entry_5913 evclk radeon_vce_clock_voltage_dependency_entry 0 5913 NULL
134917 +disable_so_status_address_card_5915 status_address card 0 5915 NULL
134918 +disable_so_ifal_index_ifaddrlblmsg_5916 ifal_index ifaddrlblmsg 0 5916 NULL
134919 +disable_so_validate_add_page_mtrr_ops_5922 validate_add_page mtrr_ops 1-2 5922 NULL
134920 +disable_so_fm10k_ptp_adjtime_fndecl_5923 fm10k_ptp_adjtime fndecl 2 5923 NULL
134921 +disable_so_addrtype_ip6addrlbl_entry_5927 addrtype ip6addrlbl_entry 0 5927 NULL
134922 +disable_so_packet_life_time_ib_sa_path_rec_5929 packet_life_time ib_sa_path_rec 0 5929 NULL
134923 +disable_so_open_time_local_info_5930 open_time local_info 0 5930 NULL
134924 +disable_so_apply_time_iwl_time_event_cmd_5933 apply_time iwl_time_event_cmd 0 5933 NULL
134925 +disable_so_default_address_sc520_par_table_5941 default_address sc520_par_table 0 5941 NULL
134926 +disable_so_btrfs_hash_init_fndecl_5945 btrfs_hash_init fndecl 0 5945 NULL
134927 +disable_so_tsc_khz_ref_vardecl_tsc_c_5951 tsc_khz_ref vardecl_tsc.c 0 5951 NULL
134928 +disable_so_init_hrtimers_cpu_fndecl_5954 init_hrtimers_cpu fndecl 1 5954 NULL
134929 +disable_so_dma_address_scatterlist_5955 dma_address scatterlist 0 5955 NULL
134930 +disable_so_vsi_id_i40e_virtchnl_ether_addr_list_5963 vsi_id i40e_virtchnl_ether_addr_list 0 5963 NULL
134931 +disable_so_i_mtime_sysv_inode_5967 i_mtime sysv_inode 0 5967 NULL
134932 +disable_so_mult_clock_event_device_5973 mult clock_event_device 0 5973 NULL nohasharray
134933 +disable_so_schedule_internal_copy_fndecl_5973 schedule_internal_copy fndecl 2-3-4 5973 &disable_so_mult_clock_event_device_5973
134934 +disable_so_hash_netport6_expire_fndecl_5974 hash_netport6_expire fndecl 4 5974 NULL
134935 +disable_so_tap_time_vardecl_mousedev_c_5990 tap_time vardecl_mousedev.c 0 5990 NULL
134936 +disable_so_write_reg_fndecl_5992 write_reg fndecl 3 5992 NULL
134937 +disable_so_clk_divider_round_rate_fndecl_6000 clk_divider_round_rate fndecl 2-0 6000 NULL
134938 +disable_so_hor_sync_end_via_display_timing_6001 hor_sync_end via_display_timing 0 6001 NULL
134939 +disable_so_xe_name_hash_ocfs2_xattr_entry_6006 xe_name_hash ocfs2_xattr_entry 0 6006 NULL
134940 +disable_so_blkcipher_next_fast_fndecl_6013 blkcipher_next_fast fndecl 0 6013 NULL
134941 +disable_so_gcm_dec_hash_continue_fndecl_6014 gcm_dec_hash_continue fndecl 0 6014 NULL
134942 +disable_so_x_qxl_bitmap_6015 x qxl_bitmap 0 6015 NULL
134943 +disable_so__rtl92s_phy_calculate_bit_shift_fndecl_6019 _rtl92s_phy_calculate_bit_shift fndecl 0-1 6019 NULL
134944 +disable_so_snd_pcm_oss_get_odelay_fndecl_6033 snd_pcm_oss_get_odelay fndecl 0 6033 NULL
134945 +disable_so_remote_addr_c2wr_qp_connect_req_6036 remote_addr c2wr_qp_connect_req 0 6036 NULL
134946 +disable_so_set_time_rtc_class_ops_6037 set_time rtc_class_ops 0 6037 NULL
134947 +disable_so_kvm_lapic_set_vapic_addr_fndecl_6040 kvm_lapic_set_vapic_addr fndecl 2 6040 NULL
134948 +disable_so_netlink_hash_fndecl_6041 netlink_hash fndecl 0 6041 NULL
134949 +disable_so_delay_edac_device_ctl_info_6043 delay edac_device_ctl_info 0 6043 NULL
134950 +disable_so_hash_src_fndecl_6045 hash_src fndecl 0 6045 NULL
134951 +disable_so_addrconf_add_ifaddr_fndecl_6046 addrconf_add_ifaddr fndecl 0 6046 NULL
134952 +disable_so_abx500_get_register_interruptible_fndecl_6047 abx500_get_register_interruptible fndecl 0 6047 NULL
134953 +disable_so_uac_clock_source_is_valid_fndecl_6049 uac_clock_source_is_valid fndecl 2 6049 NULL
134954 +disable_so_max_keysize_crypto_report_cipher_6050 max_keysize crypto_report_cipher 0 6050 NULL
134955 +disable_so_hit_timestamp_hh_flow_state_6053 hit_timestamp hh_flow_state 0 6053 NULL
134956 +disable_so_crypto_fpu_setkey_fndecl_6067 crypto_fpu_setkey fndecl 0-3 6067 NULL
134957 +disable_so_ticks_snd_timer_instance_6068 ticks snd_timer_instance 0 6068 NULL nohasharray
134958 +disable_so_dev_mem_address_mlx4_cable_info_6068 dev_mem_address mlx4_cable_info 0 6068 &disable_so_ticks_snd_timer_instance_6068
134959 +disable_so_start_time_ieee80211_measurement_params_6073 start_time ieee80211_measurement_params 0 6073 NULL
134960 +disable_so_i_ino_timelimit_qc_info_6082 i_ino_timelimit qc_info 0 6082 NULL
134961 +disable_so_sll_ifindex_sockaddr_ll_6083 sll_ifindex sockaddr_ll 0 6083 NULL
134962 +disable_so_sleep_auth_read_fndecl_6084 sleep_auth_read fndecl 3-0 6084 NULL
134963 +disable_so_btrfs_run_delayed_refs_fndecl_6098 btrfs_run_delayed_refs fndecl 0 6098 NULL
134964 +disable_so_blocksize_crypto_report_aead_6103 blocksize crypto_report_aead 0 6103 NULL
134965 +disable_so_periods_snd_pcm_runtime_6104 periods snd_pcm_runtime 0 6104 NULL
134966 +disable_so_wait_for_completion_io_timeout_fndecl_6120 wait_for_completion_io_timeout fndecl 2-0 6120 NULL
134967 +disable_so_rsi_cmd52readbyte_fndecl_6123 rsi_cmd52readbyte fndecl 0-2 6123 NULL
134968 +disable_so_jiffies_io_6127 jiffies io 0 6127 NULL
134969 +disable_so_ac97_clock_vardecl_atiixp_c_6132 ac97_clock vardecl_atiixp.c 0 6132 NULL
134970 +disable_so_vmap_block_vaddr_fndecl_6152 vmap_block_vaddr fndecl 1-2 6152 NULL
134971 +disable_so_depth_blk_mq_bitmap_tags_6153 depth blk_mq_bitmap_tags 0 6153 NULL
134972 +disable_so_mul_vnic_intr_coal_timer_info_6154 mul vnic_intr_coal_timer_info 0 6154 NULL
134973 +disable_so_ctrl_freq_au0828_dev_6155 ctrl_freq au0828_dev 0 6155 NULL
134974 +disable_so_hrtimer_get_res_fndecl_6170 hrtimer_get_res fndecl 1 6170 NULL
134975 +disable_so_nlm_hash_address_fndecl_6174 nlm_hash_address fndecl 0 6174 NULL
134976 +disable_so_vaddr_vfio_iommu_type1_dma_map_6175 vaddr vfio_iommu_type1_dma_map 0 6175 NULL
134977 +disable_so_cpuidle_register_device_fndecl_6179 cpuidle_register_device fndecl 0 6179 NULL
134978 +disable_so_wl18xx_set_host_cfg_bitmap_fndecl_6180 wl18xx_set_host_cfg_bitmap fndecl 0 6180 NULL
134979 +disable_so_daddr_ircomm_tty_cb_6187 daddr ircomm_tty_cb 0 6187 NULL
134980 +disable_so_address_iio_chan_spec_6188 address iio_chan_spec 0 6188 NULL
134981 +disable_so_gem_interrupt_fndecl_6193 gem_interrupt fndecl 1 6193 NULL
134982 +disable_so_test_steal_space_from_bitmap_to_extent_fndecl_6197 test_steal_space_from_bitmap_to_extent fndecl 0 6197 NULL
134983 +disable_so_write8_async_rtl_io_6212 write8_async rtl_io 2-3 6212 NULL
134984 +disable_so_gpio_request_fndecl_6213 gpio_request fndecl 0-1 6213 NULL
134985 +disable_so_max_cmds_mthca_cmd_6222 max_cmds mthca_cmd 0 6222 NULL
134986 +disable_so_rhashtable_rehash_one_fndecl_6224 rhashtable_rehash_one fndecl 2 6224 NULL
134987 +disable_so_addr_hi_sli4_sge_6229 addr_hi sli4_sge 0 6229 NULL
134988 +disable_so_bnx2x_set_iscsi_eth_mac_addr_fndecl_6234 bnx2x_set_iscsi_eth_mac_addr fndecl 0 6234 NULL
134989 +disable_so___ipv6_addr_label_fndecl_6235 __ipv6_addr_label fndecl 3-4 6235 NULL
134990 +disable_so_chnl_freq_wil6210_rtap_6236 chnl_freq wil6210_rtap 0 6236 NULL
134991 +disable_so_mv88e6xxx_port_to_phy_addr_fndecl_6239 mv88e6xxx_port_to_phy_addr fndecl 0-2 6239 NULL
134992 +disable_so_phy_pm_runtime_get_sync_fndecl_6245 phy_pm_runtime_get_sync fndecl 0 6245 NULL
134993 +disable_so_kempld_wdt_set_pretimeout_fndecl_6258 kempld_wdt_set_pretimeout fndecl 2 6258 NULL
134994 +disable_so_sq_page_table_addr_lo_iscsi_kwqe_conn_offload1_6259 sq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 6259 NULL
134995 +disable_so_async_chainiv_schedule_work_fndecl_6271 async_chainiv_schedule_work fndecl 0 6271 NULL
134996 +disable_so_bus_clock_khz_ocores_i2c_6290 bus_clock_khz ocores_i2c 0 6290 NULL
134997 +disable_so_cttimeout_default_get_fndecl_6297 cttimeout_default_get fndecl 0 6297 NULL
134998 +disable_so_show_pci_clock_sel_fndecl_6300 show_pci_clock_sel fndecl 0 6300 NULL nohasharray
134999 +disable_so_addr_w83627ehf_data_6300 addr w83627ehf_data 0 6300 &disable_so_show_pci_clock_sel_fndecl_6300
135000 +disable_so_base_addr_pmc_dev_6305 base_addr pmc_dev 0 6305 NULL
135001 +disable_so_max_post_div_radeon_pll_6315 max_post_div radeon_pll 0 6315 NULL
135002 +disable_so_mmc_sd_erase_timeout_fndecl_6317 mmc_sd_erase_timeout fndecl 0-3 6317 NULL
135003 +disable_so_get_time_sound_timer_operations_6318 get_time sound_timer_operations 0 6318 NULL
135004 +disable_so_runtime_reg_sch311x_pdev_data_6324 runtime_reg sch311x_pdev_data 0 6324 NULL
135005 +disable_so_hscx_interrupt_fndecl_6328 hscx_interrupt fndecl 2 6328 NULL
135006 +disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346 hangcheck_margin vardecl_hangcheck-timer.c 0 6346 NULL nohasharray
135007 +disable_so___hrtimer_start_range_ns_fndecl_6346 __hrtimer_start_range_ns fndecl 3 6346 &disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346
135008 +disable_so_force_addr_vardecl_i2c_ali15x3_c_6378 force_addr vardecl_i2c-ali15x3.c 0 6378 NULL
135009 +disable_so_usb_interrupt_msg_fndecl_6387 usb_interrupt_msg fndecl 4-2-6-0 6387 NULL
135010 +disable_so_bitmap_file_test_bit_fndecl_6390 bitmap_file_test_bit fndecl 2 6390 NULL
135011 +disable_so_access_delay_vardecl_nandsim_c_6394 access_delay vardecl_nandsim.c 0 6394 NULL
135012 +disable_so_snd_ice1712_interrupt_fndecl_6396 snd_ice1712_interrupt fndecl 1 6396 NULL
135013 +disable_so_i2c_addr_isl6421_6399 i2c_addr isl6421 0 6399 NULL
135014 +disable_so_sta_connected_time_read_fndecl_6408 sta_connected_time_read fndecl 3 6408 NULL
135015 +disable_so_dbg_uidn_show_fndecl_6415 dbg_uidn_show fndecl 3 6415 NULL
135016 +disable_so_timeout_fib6_gc_args_6417 timeout fib6_gc_args 0 6417 NULL
135017 +disable_so_max_pixelclock_v4l2_bt_timings_cap_6421 max_pixelclock v4l2_bt_timings_cap 0 6421 NULL nohasharray
135018 +disable_so_vlv_clock_fndecl_6421 vlv_clock fndecl 1 6421 &disable_so_max_pixelclock_v4l2_bt_timings_cap_6421
135019 +disable_so_hold_timer_value___port_info_6426 hold_timer_value __port_info 0 6426 NULL
135020 +disable_so_plllocktime_psb_s_6428 plllocktime psb_s 0 6428 NULL nohasharray
135021 +disable_so_channel2freq_lp_fndecl_6428 channel2freq_lp fndecl 0-1 6428 &disable_so_plllocktime_psb_s_6428
135022 +disable_so_base_addr_fpoint_info_6432 base_addr fpoint_info 0 6432 NULL
135023 +disable_so_paravirt_write_msr_fndecl_6445 paravirt_write_msr fndecl 0-1-2-3 6445 NULL
135024 +disable_so_bnx2x_eee_nvram_to_time_fndecl_6450 bnx2x_eee_nvram_to_time fndecl 1 6450 NULL
135025 +disable_so_dn_nl_deladdr_fndecl_6451 dn_nl_deladdr fndecl 0 6451 NULL
135026 +disable_so_mpll_ss_rv730_clock_registers_6456 mpll_ss rv730_clock_registers 0 6456 NULL nohasharray
135027 +disable_so_buffer_addr_atl1e_tpd_desc_6456 buffer_addr atl1e_tpd_desc 0 6456 &disable_so_mpll_ss_rv730_clock_registers_6456
135028 +disable_so_xfs_btree_lshift_fndecl_6459 xfs_btree_lshift fndecl 0 6459 NULL
135029 +disable_so_tomoyo_check_unix_address_fndecl_6464 tomoyo_check_unix_address fndecl 0-2 6464 NULL
135030 +disable_so_bitmap_pos_to_ord_fndecl_6476 bitmap_pos_to_ord fndecl 3-2 6476 NULL
135031 +disable_so_bql_set_hold_time_fndecl_6478 bql_set_hold_time fndecl 0-4 6478 NULL
135032 +disable_so_range_shift_fixed_mtrr_segment_6484 range_shift fixed_mtrr_segment 0 6484 NULL
135033 +disable_so___clocksource_update_freq_scale_fndecl_6485 __clocksource_update_freq_scale fndecl 2-3 6485 NULL
135034 +disable_so_freq_pmu1_plltab_entry_6497 freq pmu1_plltab_entry 0 6497 NULL
135035 +disable_so___btrfs_abort_transaction_fndecl_6516 __btrfs_abort_transaction fndecl 5 6516 NULL
135036 +disable_so_timeout_clks_mmc_data_6527 timeout_clks mmc_data 0 6527 NULL
135037 +disable_so_set_tss_addr_kvm_x86_ops_6529 set_tss_addr kvm_x86_ops 2 6529 NULL
135038 +disable_so_acpi_device_sleep_wake_fndecl_6537 acpi_device_sleep_wake fndecl 0-2-3 6537 NULL nohasharray
135039 +disable_so_rtsc_x2y_fndecl_6537 rtsc_x2y fndecl 0-2 6537 &disable_so_acpi_device_sleep_wake_fndecl_6537
135040 +disable_so_msr_saved_flags_uart_8250_port_6538 msr_saved_flags uart_8250_port 0 6538 NULL
135041 +disable_so_next_blk_mq_timeout_data_6556 next blk_mq_timeout_data 0 6556 NULL nohasharray
135042 +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
135043 +disable_so_ovs_flow_used_time_fndecl_6571 ovs_flow_used_time fndecl 1-0 6571 NULL
135044 +disable_so_orinoco_ioctl_setfreq_fndecl_6577 orinoco_ioctl_setfreq fndecl 0 6577 NULL
135045 +disable_so_hash_netport4_expire_fndecl_6582 hash_netport4_expire fndecl 4 6582 NULL
135046 +disable_so_rpwwn_bfa_bsg_rport_scsi_addr_s_6584 rpwwn bfa_bsg_rport_scsi_addr_s 0 6584 NULL
135047 +disable_so_gid_ncp_mount_data_v4_6586 gid ncp_mount_data_v4 0 6586 NULL
135048 +disable_so_set_input_clock_fndecl_6599 set_input_clock fndecl 0 6599 NULL
135049 +disable_so_mmap_bytes_snd_pcm_oss_runtime_6600 mmap_bytes snd_pcm_oss_runtime 0 6600 NULL
135050 +disable_so_do_sys_settimeofday_fndecl_6601 do_sys_settimeofday fndecl 0 6601 NULL
135051 +disable_so_tv_sec_ufs_timeval_6608 tv_sec ufs_timeval 0 6608 NULL
135052 +disable_so_tk_debug_sleep_time_open_fndecl_6625 tk_debug_sleep_time_open fndecl 0 6625 NULL
135053 +disable_so_bmg160_convert_freq_to_bit_fndecl_6628 bmg160_convert_freq_to_bit fndecl 0 6628 NULL
135054 +disable_so_sis_ata133_program_timings_fndecl_6633 sis_ata133_program_timings fndecl 2 6633 NULL
135055 +disable_so_timestamp_nvkm_alarm_6635 timestamp nvkm_alarm 0 6635 NULL nohasharray
135056 +disable_so_offset_crypto_hash_walk_6635 offset crypto_hash_walk 0 6635 &disable_so_timestamp_nvkm_alarm_6635
135057 +disable_so_ocfs2_rotate_subtree_left_fndecl_6641 ocfs2_rotate_subtree_left fndecl 0-5 6641 NULL
135058 +disable_so_vactive_lo_detailed_pixel_timing_6644 vactive_lo detailed_pixel_timing 0 6644 NULL
135059 +disable_so_givencrypt_ablkcipher_tfm_6647 givencrypt ablkcipher_tfm 0 6647 NULL
135060 +disable_so_fill_in_real_sgid_index_fndecl_6648 fill_in_real_sgid_index fndecl 2-3 6648 NULL
135061 +disable_so_i_gid_read_fndecl_6650 i_gid_read fndecl 0 6650 NULL
135062 +disable_so_uniq_time_smt_values_6653 uniq_time smt_values 0 6653 NULL nohasharray
135063 +disable_so_missvaddr_gru_tlb_fault_handle_6653 missvaddr gru_tlb_fault_handle 0 6653 &disable_so_uniq_time_smt_values_6653
135064 +disable_so_rq_timeout_request_queue_6657 rq_timeout request_queue 0 6657 NULL
135065 +disable_so_resp_bd_list_addr_hi_bnx2i_login_request_6658 resp_bd_list_addr_hi bnx2i_login_request 0 6658 NULL
135066 +disable_so_ebp_tss_segment_32_6659 ebp tss_segment_32 0 6659 NULL
135067 +disable_so_sha_complete_job_fndecl_6679 sha_complete_job fndecl 3 6679 NULL
135068 +disable_so_cursor_vram_addr_viafb_shared_6684 cursor_vram_addr viafb_shared 0 6684 NULL
135069 +disable_so_si_set_smc_sram_address_fndecl_6696 si_set_smc_sram_address fndecl 0-2 6696 NULL
135070 +disable_so_ocfs2_divide_leaf_refcount_block_fndecl_6709 ocfs2_divide_leaf_refcount_block fndecl 0 6709 NULL
135071 +disable_so_smp_base_set_mtrr_data_6722 smp_base set_mtrr_data 0 6722 NULL
135072 +disable_so_titsc_parse_dt_fndecl_6744 titsc_parse_dt fndecl 0 6744 NULL
135073 +disable_so_driver_timestamp_netxen_minidump_template_hdr_6745 driver_timestamp netxen_minidump_template_hdr 0 6745 NULL
135074 +disable_so_end_address_dmar_rmrr_unit_6748 end_address dmar_rmrr_unit 0 6748 NULL
135075 +disable_so_std_signal_mode_vivid_dev_6752 std_signal_mode vivid_dev 0 6752 NULL
135076 +disable_so_part_timeout_show_fndecl_6761 part_timeout_show fndecl 0 6761 NULL
135077 +disable_so_tx_coal_timer_stmmac_priv_6772 tx_coal_timer stmmac_priv 0 6772 NULL
135078 +disable_so_kvm_clock_read_fndecl_6779 kvm_clock_read fndecl 0 6779 NULL
135079 +disable_so_alarm_clock_get_fndecl_6780 alarm_clock_get fndecl 1 6780 NULL
135080 +disable_so_rcar_i2c_clock_calculate_fndecl_6789 rcar_i2c_clock_calculate fndecl 0 6789 NULL
135081 +disable_so_timeout_vardecl_sbc60xxwdt_c_6807 timeout vardecl_sbc60xxwdt.c 0 6807 NULL
135082 +disable_so_rp_uid_ubifs_sb_node_6810 rp_uid ubifs_sb_node 0 6810 NULL
135083 +disable_so_wm8940_set_dai_clkdiv_fndecl_6811 wm8940_set_dai_clkdiv fndecl 3-0 6811 NULL
135084 +disable_so_shift_clk_divider_6812 shift clk_divider 0 6812 NULL nohasharray
135085 +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
135086 +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
135087 +disable_so_io_profile_start_time_bfa_fcpim_s_6814 io_profile_start_time bfa_fcpim_s 0 6814 NULL
135088 +disable_so_tsc_timestamp_pvclock_vcpu_time_info_6819 tsc_timestamp pvclock_vcpu_time_info 0 6819 NULL
135089 +disable_so_paddr_ath10k_skb_rxcb_6820 paddr ath10k_skb_rxcb 0 6820 NULL
135090 +disable_so_src_addr_ioat_dma_descriptor_6823 src_addr ioat_dma_descriptor 0 6823 NULL
135091 +disable_so_ivsize_ablkcipher_tfm_6824 ivsize ablkcipher_tfm 0 6824 NULL
135092 +disable_so_p_val_aic32x4_rate_divs_6838 p_val aic32x4_rate_divs 0 6838 NULL nohasharray
135093 +disable_so_bit_putcs_unaligned_fndecl_6838 bit_putcs_unaligned fndecl 5-6-7-8 6838 &disable_so_p_val_aic32x4_rate_divs_6838
135094 +disable_so_iaddr2blockno_fndecl_6842 iaddr2blockno fndecl 0 6842 NULL nohasharray
135095 +disable_so_reserved_top_mlx4_bitmap_6842 reserved_top mlx4_bitmap 0 6842 &disable_so_iaddr2blockno_fndecl_6842
135096 +disable_so_address_acpi_object_processor_6844 address acpi_object_processor 0 6844 NULL nohasharray
135097 +disable_so_top_freq_region_info_6844 top_freq region_info 0 6844 &disable_so_address_acpi_object_processor_6844
135098 +disable_so_phys_addr_sge_txq_6851 phys_addr sge_txq 0 6851 NULL
135099 +disable_so_irq_find_mapping_fndecl_6855 irq_find_mapping fndecl 0-2 6855 NULL
135100 +disable_so_ipaddr_rds_ib_ipaddr_6865 ipaddr rds_ib_ipaddr 0 6865 NULL
135101 +disable_so_cdv_intel_clock_recovery_ok_fndecl_6866 cdv_intel_clock_recovery_ok fndecl 2 6866 NULL
135102 +disable_so_rmw_ath_ops_6869 rmw ath_ops 2-3-4 6869 NULL
135103 +disable_so_last_jiffies_ivtv_api_cache_6880 last_jiffies ivtv_api_cache 0 6880 NULL
135104 +disable_so_ui_atimensec_ufs2_inode_6881 ui_atimensec ufs2_inode 0 6881 NULL
135105 +disable_so_gether_get_host_addr_cdc_fndecl_6888 gether_get_host_addr_cdc fndecl 0 6888 NULL
135106 +disable_so_wmi_add_cipher_key_fndecl_6891 wmi_add_cipher_key fndecl 0-2-4 6891 NULL
135107 +disable_so_ppp_gidle_fndecl_6898 ppp_gidle fndecl 0-1 6898 NULL
135108 +disable_so_dialtimeout_isdn_net_local_s_6908 dialtimeout isdn_net_local_s 0 6908 NULL
135109 +disable_so_conf_printf2_fndecl_6910 conf_printf2 fndecl 2-4-5 6910 NULL
135110 +disable_so_pilot_stv0900_signal_info_6915 pilot stv0900_signal_info 0 6915 NULL
135111 +disable_so_size_log2_t3_wq_6928 size_log2 t3_wq 0 6928 NULL
135112 +disable_so_s35390a_set_datetime_fndecl_6935 s35390a_set_datetime fndecl 0 6935 NULL
135113 +disable_so_sys_setfsgid_fndecl_6945 sys_setfsgid fndecl 0-1 6945 NULL
135114 +disable_so_triflex_load_timing_fndecl_6946 triflex_load_timing fndecl 3 6946 NULL
135115 +disable_so_ps2mult_interrupt_fndecl_6951 ps2mult_interrupt fndecl 2 6951 NULL
135116 +disable_so_hpi_sample_clock_query_source_fndecl_6959 hpi_sample_clock_query_source fndecl 1-0 6959 NULL
135117 +disable_so_tseg2_max_can_bittiming_const_6963 tseg2_max can_bittiming_const 0 6963 NULL
135118 +disable_so_rec8b_ata_timing_6977 rec8b ata_timing 0 6977 NULL
135119 +disable_so_vactive___fb_timings_6978 vactive __fb_timings 0 6978 NULL
135120 +disable_so_mgid_index_mlx4_qp_path_6990 mgid_index mlx4_qp_path 0 6990 NULL
135121 +disable_so_log_start_addr_server_hdr_7000 log_start_addr server_hdr 0 7000 NULL
135122 +disable_so_t2timer_ax25_info_struct_7019 t2timer ax25_info_struct 0 7019 NULL
135123 +disable_so_start_address_mxt_object_7033 start_address mxt_object 0 7033 NULL
135124 +disable_so_cpufreq_add_dev_symlink_fndecl_7039 cpufreq_add_dev_symlink fndecl 0 7039 NULL
135125 +disable_so_fm10k_systime_read_fndecl_7040 fm10k_systime_read fndecl 0 7040 NULL
135126 +disable_so_dv_timings_signal_mode_vivid_dev_7046 dv_timings_signal_mode vivid_dev 0 7046 NULL
135127 +disable_so_set_expect_timeout_fndecl_7051 set_expect_timeout fndecl 2 7051 NULL
135128 +disable_so_ts_dev_2_peak_time_ref_7055 ts_dev_2 peak_time_ref 0 7055 NULL
135129 +disable_so_pci_lat_timer_tg3_7056 pci_lat_timer tg3 0 7056 NULL
135130 +disable_so_ioarcb_bus_addr_pmcraid_ioarcb_7057 ioarcb_bus_addr pmcraid_ioarcb 0 7057 NULL
135131 +disable_so_tbl_addr_ahci_cmd_hdr_7060 tbl_addr ahci_cmd_hdr 0 7060 NULL
135132 +disable_so_total_i915_address_space_7088 total i915_address_space 0 7088 NULL
135133 +disable_so_nfs_mountpoint_expiry_timeout_vardecl_7089 nfs_mountpoint_expiry_timeout vardecl 0 7089 NULL
135134 +disable_so_rx_control_addr_acx_data_path_params_resp_7090 rx_control_addr acx_data_path_params_resp 0 7090 NULL
135135 +disable_so_qs_btimelimit_fs_quota_stat_7091 qs_btimelimit fs_quota_stat 0 7091 NULL
135136 +disable_so_SYSC_semtimedop_fndecl_7096 SYSC_semtimedop fndecl 1-3 7096 NULL
135137 +disable_so_lm8323_pwm_show_time_fndecl_7100 lm8323_pwm_show_time fndecl 0 7100 NULL
135138 +disable_so_start_time_btrfs_transaction_7107 start_time btrfs_transaction 0 7107 NULL
135139 +disable_so_dma_bytes_snd_pcm_runtime_7108 dma_bytes snd_pcm_runtime 0 7108 NULL
135140 +disable_so_sr__coeff_div_7109 sr _coeff_div 0 7109 NULL
135141 +disable_so_assert_pio_clocks_7119 assert pio_clocks 0 7119 NULL
135142 +disable_so_sctp_bind_addr_copy_fndecl_7122 sctp_bind_addr_copy fndecl 0-5 7122 NULL
135143 +disable_so_irq_domain_get_irq_data_fndecl_7132 irq_domain_get_irq_data fndecl 2 7132 NULL
135144 +disable_so_cur_freq_intel_gen6_power_mgmt_7134 cur_freq intel_gen6_power_mgmt 0 7134 NULL nohasharray
135145 +disable_so_address_mask_fndecl_7134 address_mask fndecl 0-2 7134 &disable_so_cur_freq_intel_gen6_power_mgmt_7134
135146 +disable_so_timeout_md_thread_7138 timeout md_thread 0 7138 NULL
135147 +disable_so_nicvf_register_interrupts_fndecl_7143 nicvf_register_interrupts fndecl 0 7143 NULL
135148 +disable_so_logical_drive_info_dma_addr_ips_ha_7146 logical_drive_info_dma_addr ips_ha 0 7146 NULL
135149 +disable_so_ai_slowclk_freq_fndecl_7147 ai_slowclk_freq fndecl 0 7147 NULL
135150 +disable_so_addr_play_vals_7151 addr play_vals 0 7151 NULL
135151 +disable_so_enc_addr_low_ssp_ini_io_start_req_7153 enc_addr_low ssp_ini_io_start_req 0 7153 NULL
135152 +disable_so_dev_sockaddr_mISDN_7154 dev sockaddr_mISDN 0 7154 NULL
135153 +disable_so_scan_start_time_ath_ant_comb_7155 scan_start_time ath_ant_comb 0 7155 NULL nohasharray
135154 +disable_so_mcryptd_hash_final_fndecl_7155 mcryptd_hash_final fndecl 2 7155 &disable_so_scan_start_time_ath_ant_comb_7155
135155 +disable_so_ack_time_minstrel_rate_7156 ack_time minstrel_rate 0 7156 NULL
135156 +disable_so_start_time_fscache_retrieval_7166 start_time fscache_retrieval 0 7166 NULL
135157 +disable_so_timetosend_nes_timer_entry_7169 timetosend nes_timer_entry 0 7169 NULL
135158 +disable_so_autofs4_get_set_timeout_fndecl_7185 autofs4_get_set_timeout fndecl 0 7185 NULL
135159 +disable_so_list_voltage_regulator_ops_7194 list_voltage regulator_ops 0-2 7194 NULL
135160 +disable_so_round_jiffies_fndecl_7204 round_jiffies fndecl 0-1 7204 NULL nohasharray
135161 +disable_so_address_lo_be_bus_address32_7204 address_lo be_bus_address32 0 7204 &disable_so_round_jiffies_fndecl_7204
135162 +disable_so_efx_recycle_rx_pages_fndecl_7206 efx_recycle_rx_pages fndecl 3 7206 NULL
135163 +disable_so_ssb_chipco_watchdog_timer_set_fndecl_7210 ssb_chipco_watchdog_timer_set fndecl 2-0 7210 NULL
135164 +disable_so_ebitmap_netlbl_export_fndecl_7212 ebitmap_netlbl_export fndecl 0 7212 NULL
135165 +disable_so_charge_timeout_wm8350_charger_policy_7222 charge_timeout wm8350_charger_policy 0 7222 NULL
135166 +disable_so_tf_c_r820t_freq_range_7225 tf_c r820t_freq_range 0 7225 NULL
135167 +disable_so_hpi_read_words_le16_fndecl_7226 hpi_read_words_le16 fndecl 2-4 7226 NULL
135168 +disable_so_ip6addrlbl_newdel_fndecl_7230 ip6addrlbl_newdel fndecl 0 7230 NULL
135169 +disable_so_seq_default_timer_card_vardecl_7233 seq_default_timer_card vardecl 0 7233 NULL
135170 +disable_so_ip6_route_get_saddr_fndecl_7240 ip6_route_get_saddr fndecl 0 7240 NULL
135171 +disable_so_packet_timeout_vardecl_legousbtower_c_7247 packet_timeout vardecl_legousbtower.c 0 7247 NULL
135172 +disable_so_base_clockid_alarm_base_7253 base_clockid alarm_base 0 7253 NULL
135173 +disable_so_pll_time_modem_state_ser12_7269 pll_time modem_state_ser12 0 7269 NULL
135174 +disable_so_phyaddr_fe_priv_7272 phyaddr fe_priv 0 7272 NULL
135175 +disable_so_xfs_btree_copy_keys_fndecl_7274 xfs_btree_copy_keys fndecl 4 7274 NULL
135176 +disable_so_lzo_uncompress_fndecl_7276 lzo_uncompress fndecl 6 7276 NULL
135177 +disable_so_spc_assoc_id_sctp_paddr_change_7283 spc_assoc_id sctp_paddr_change 0 7283 NULL
135178 +disable_so_min_interrupt_out_interval_vardecl_ldusb_c_7293 min_interrupt_out_interval vardecl_ldusb.c 0 7293 NULL
135179 +disable_so_phys_addr_qlcnic_host_rds_ring_7298 phys_addr qlcnic_host_rds_ring 0 7298 NULL
135180 +disable_so_ethoc_interrupt_fndecl_7299 ethoc_interrupt fndecl 1 7299 NULL
135181 +disable_so_wintime_si_dyn_powertune_data_7305 wintime si_dyn_powertune_data 0 7305 NULL
135182 +disable_so_timestamp_cnic_context_7309 timestamp cnic_context 0 7309 NULL nohasharray
135183 +disable_so_rx8025_set_clock_adjust_fndecl_7309 rx8025_set_clock_adjust fndecl 2-0 7309 &disable_so_timestamp_cnic_context_7309
135184 +disable_so_read_mac_address_dvb_usb_device_properties_7321 read_mac_address dvb_usb_device_properties 0 7321 NULL
135185 +disable_so_pm_runtime_set_active_fndecl_7330 pm_runtime_set_active fndecl 0 7330 NULL
135186 +disable_so_snd_seq_oss_synth_addr_fndecl_7331 snd_seq_oss_synth_addr fndecl 0 7331 NULL
135187 +disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332 netlbl_unlabel_addrinfo_get fndecl 0 7332 NULL nohasharray
135188 +disable_so_transport_type_sockaddr_rxrpc_7332 transport_type sockaddr_rxrpc 0 7332 &disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332
135189 +disable_so_tx_control_addr_acx_data_path_params_resp_7345 tx_control_addr acx_data_path_params_resp 0 7345 NULL
135190 +disable_so_intel_runtime_suspend_fndecl_7354 intel_runtime_suspend fndecl 0 7354 NULL nohasharray
135191 +disable_so_arb_timeout_pca9541_7354 arb_timeout pca9541 0 7354 &disable_so_intel_runtime_suspend_fndecl_7354
135192 +disable_so_authenc_esn_geniv_ahash_done_fndecl_7357 authenc_esn_geniv_ahash_done fndecl 2 7357 NULL
135193 +disable_so_total_blkcipher_walk_7358 total blkcipher_walk 0 7358 NULL
135194 +disable_so_mtime_fuse_attr_7361 mtime fuse_attr 0 7361 NULL
135195 +disable_so_gtt_phys_addr__intel_private_7365 gtt_phys_addr _intel_private 0 7365 NULL
135196 +disable_so_btree_lookup_raw_fndecl_7367 btree_lookup_raw fndecl 0-2-7 7367 NULL
135197 +disable_so_show_imon_clock_fndecl_7376 show_imon_clock fndecl 0 7376 NULL
135198 +disable_so_acpi_cpufreq_guess_freq_fndecl_7383 acpi_cpufreq_guess_freq fndecl 0 7383 NULL
135199 +disable_so_pch_udc_ep_bit_set_fndecl_7386 pch_udc_ep_bit_set fndecl 3 7386 NULL
135200 +disable_so_tv_nsec_compat_timespec_7389 tv_nsec compat_timespec 0 7389 NULL
135201 +disable_so_try_msr_calibrate_tsc_fndecl_7392 try_msr_calibrate_tsc fndecl 0 7392 NULL
135202 +disable_so_msi001_s_frequency_fndecl_7396 msi001_s_frequency fndecl 0 7396 NULL
135203 +disable_so_lxt971_ack_interrupt_fndecl_7397 lxt971_ack_interrupt fndecl 0 7397 NULL nohasharray
135204 +disable_so_i40e_get_mac_addr_fndecl_7397 i40e_get_mac_addr fndecl 0 7397 &disable_so_lxt971_ack_interrupt_fndecl_7397
135205 +disable_so_conn_db_addr_lo_fcoe_kwqe_conn_offload2_7408 conn_db_addr_lo fcoe_kwqe_conn_offload2 0 7408 NULL
135206 +disable_so_spcp8x5_get_msr_fndecl_7409 spcp8x5_get_msr fndecl 0 7409 NULL
135207 +disable_so_signal_det_fndecl_7411 signal_det fndecl 2 7411 NULL
135208 +disable_so_vclk_fb_div_pll_ct_7423 vclk_fb_div pll_ct 0 7423 NULL
135209 +disable_so_crypto_ahash_final_fndecl_7433 crypto_ahash_final fndecl 0 7433 NULL
135210 +disable_so_vidioc_s_hw_freq_seek_fndecl_7439 vidioc_s_hw_freq_seek fndecl 0 7439 NULL
135211 +disable_so_aa_calc_profile_hash_fndecl_7443 aa_calc_profile_hash fndecl 0-4 7443 NULL
135212 +disable_so_count_sha1_state_7456 count sha1_state 0 7456 NULL
135213 +disable_so_full_name_hash_fndecl_7466 full_name_hash fndecl 0-2 7466 NULL
135214 +disable_so_serial8250_set_divisor_fndecl_7469 serial8250_set_divisor fndecl 4-3 7469 NULL
135215 +disable_so_add_hwgenerator_randomness_fndecl_7471 add_hwgenerator_randomness fndecl 2-3 7471 NULL
135216 +disable_so_xfs_btree_check_block_fndecl_7472 xfs_btree_check_block fndecl 0 7472 NULL
135217 +disable_so_f1x_get_norm_dct_addr_fndecl_7473 f1x_get_norm_dct_addr fndecl 0-3-5 7473 NULL
135218 +disable_so_timeout_tid_ampdu_rx_7484 timeout tid_ampdu_rx 0 7484 NULL
135219 +disable_so_uv_rtc_find_next_timer_fndecl_7494 uv_rtc_find_next_timer fndecl 2 7494 NULL
135220 +disable_so_mmc_erase_timeout_fndecl_7496 mmc_erase_timeout fndecl 0-3-2 7496 NULL
135221 +disable_so_interrupt_in_endpoint_edgeport_serial_7513 interrupt_in_endpoint edgeport_serial 0 7513 NULL
135222 +disable_so_start_asd_ha_addrspace_7515 start asd_ha_addrspace 0 7515 NULL
135223 +disable_so_ccp_register_aes_alg_fndecl_7517 ccp_register_aes_alg fndecl 0 7517 NULL
135224 +disable_so_addr_ptr_drm_i915_gem_mmap_7520 addr_ptr drm_i915_gem_mmap 0 7520 NULL
135225 +disable_so_ecryptfs_get_tfm_and_mutex_for_cipher_name_fndecl_7524 ecryptfs_get_tfm_and_mutex_for_cipher_name fndecl 0 7524 NULL
135226 +disable_so_async_schedule_fndecl_7528 async_schedule fndecl 0 7528 NULL nohasharray
135227 +disable_so_crypto_ctr_crypt_inplace_fndecl_7528 crypto_ctr_crypt_inplace fndecl 0 7528 &disable_so_async_schedule_fndecl_7528
135228 +disable_so_snd_mpu401_uart_interrupt_fndecl_7536 snd_mpu401_uart_interrupt fndecl 1 7536 NULL
135229 +disable_so_cfg_max_scsicmpl_time_lpfc_vport_7541 cfg_max_scsicmpl_time lpfc_vport 0 7541 NULL
135230 +disable_so_blkcipher_done_slow_fndecl_7555 blkcipher_done_slow fndecl 0-2 7555 NULL
135231 +disable_so_cg_spll_spread_spectrum_si_clock_registers_7557 cg_spll_spread_spectrum si_clock_registers 0 7557 NULL
135232 +disable_so_dev_addr_mv_udc_7559 dev_addr mv_udc 0 7559 NULL
135233 +disable_so___restart_timer_fndecl_7572 __restart_timer fndecl 2 7572 NULL
135234 +disable_so_phy_interrupt_fndecl_7576 phy_interrupt fndecl 1 7576 NULL
135235 +disable_so_pending_auth_reply_time_wl12xx_vif_7583 pending_auth_reply_time wl12xx_vif 0 7583 NULL
135236 +disable_so_kempld_wdt_set_stage_timeout_fndecl_7592 kempld_wdt_set_stage_timeout fndecl 3 7592 NULL
135237 +disable_so_mwifiex_ret_802_11_mac_address_fndecl_7598 mwifiex_ret_802_11_mac_address fndecl 0 7598 NULL
135238 +disable_so_ad799x_write_frequency_fndecl_7606 ad799x_write_frequency fndecl 0-4 7606 NULL
135239 +disable_so_htab_map_hash_fndecl_7622 htab_map_hash fndecl 0-2 7622 NULL
135240 +disable_so_smack_task_getscheduler_fndecl_7629 smack_task_getscheduler fndecl 0 7629 NULL
135241 +disable_so_atomic64_sub_fndecl_7638 atomic64_sub fndecl 1 7638 NULL
135242 +disable_so___mcheck_cpu_cap_init_fndecl_7640 __mcheck_cpu_cap_init fndecl 0 7640 NULL
135243 +disable_so_sq_dma_addr_nvme_queue_7641 sq_dma_addr nvme_queue 0 7641 NULL
135244 +disable_so_data_address_mscp_7645 data_address mscp 0 7645 NULL
135245 +disable_so_block_address_ms_param_register_7651 block_address ms_param_register 0 7651 NULL
135246 +disable_so___wait_on_bit_lock_fndecl_7653 __wait_on_bit_lock fndecl 0 7653 NULL
135247 +disable_so_dma_addr_qla2_sgx_7667 dma_addr qla2_sgx 0 7667 NULL
135248 +disable_so_ba1_addr_cs4281_7670 ba1_addr cs4281 0 7670 NULL
135249 +disable_so_addr_nv50_disp_mthd_list_7671 addr nv50_disp_mthd_list 0 7671 NULL
135250 +disable_so_address_stv090x_config_7672 address stv090x_config 0 7672 NULL
135251 +disable_so_addr_oxygen_7675 addr oxygen 0 7675 NULL
135252 +disable_so_mei_wd_ops_set_timeout_fndecl_7696 mei_wd_ops_set_timeout fndecl 2 7696 NULL
135253 +disable_so_clock_getres_k_clock_7708 clock_getres k_clock 1 7708 NULL
135254 +disable_so_hash_shift_neigh_hash_table_7714 hash_shift neigh_hash_table 0 7714 NULL
135255 +disable_so_pmu_fast_powerup_delay_fndecl_7721 pmu_fast_powerup_delay fndecl 0 7721 NULL
135256 +disable_so_dst_addr_rds_info_rdma_connection_7722 dst_addr rds_info_rdma_connection 0 7722 NULL
135257 +disable_so_period_timeriomem_rng_private_data_7730 period timeriomem_rng_private_data 0 7730 NULL
135258 +disable_so_ocfs2_flock_handle_signal_fndecl_7734 ocfs2_flock_handle_signal fndecl 0 7734 NULL
135259 +disable_so_seq_rds_info_message_7735 seq rds_info_message 0 7735 NULL
135260 +disable_so_base_addr_net_device_7745 base_addr net_device 0 7745 NULL
135261 +disable_so_sense_addr_fcpio_icmnd_16_7746 sense_addr fcpio_icmnd_16 0 7746 NULL
135262 +disable_so_clocks_calc_mult_shift_fndecl_7747 clocks_calc_mult_shift fndecl 3-4-5 7747 NULL
135263 +disable_so_monotonic_time_coarse_sec_vsyscall_gtod_data_7749 monotonic_time_coarse_sec vsyscall_gtod_data 0 7749 NULL
135264 +disable_so_remote_ca_guid_cm_timewait_info_7768 remote_ca_guid cm_timewait_info 0 7768 NULL
135265 +disable_so_tsf_timestamp_wmi_phyerr_7783 tsf_timestamp wmi_phyerr 0 7783 NULL
135266 +disable_so_fullbatt_vchk_jiffies_at_charger_manager_7786 fullbatt_vchk_jiffies_at charger_manager 0 7786 NULL
135267 +disable_so_st_mtime_nsec_p9_stat_dotl_7787 st_mtime_nsec p9_stat_dotl 0 7787 NULL
135268 +disable_so_hmac_sha256_fndecl_7789 hmac_sha256 fndecl 0-2-4 7789 NULL
135269 +disable_so_writeback_delay_fndecl_7808 writeback_delay fndecl 0-2 7808 NULL
135270 +disable_so_offset_ioctl_gntdev_get_offset_for_vaddr_7812 offset ioctl_gntdev_get_offset_for_vaddr 0 7812 NULL
135271 +disable_so_tuner_frequency_stv0288_state_7823 tuner_frequency stv0288_state 0 7823 NULL
135272 +disable_so_neigh_hash_grow_fndecl_7824 neigh_hash_grow fndecl 2 7824 NULL
135273 +disable_so_timeout_sh_mmcif_host_7836 timeout sh_mmcif_host 0 7836 NULL
135274 +disable_so_cpuid_eax_fndecl_7845 cpuid_eax fndecl 0 7845 NULL
135275 +disable_so_mclk_pwrmgt_cntl_si_clock_registers_7850 mclk_pwrmgt_cntl si_clock_registers 0 7850 NULL
135276 +disable_so_mgt_update_addr_fndecl_7857 mgt_update_addr fndecl 0 7857 NULL nohasharray
135277 +disable_so_regmap_bulk_read_fndecl_7857 regmap_bulk_read fndecl 4-0-2 7857 &disable_so_mgt_update_addr_fndecl_7857
135278 +disable_so_cpufreq_governor_init_fndecl_7864 cpufreq_governor_init fndecl 0 7864 NULL
135279 +disable_so_sync_freq_arizona_fll_7868 sync_freq arizona_fll 0 7868 NULL
135280 +disable_so_channel_switch_time_ath_chanctx_sched_7869 channel_switch_time ath_chanctx_sched 0 7869 NULL nohasharray
135281 +disable_so_isp1760_udc_set_address_fndecl_7869 isp1760_udc_set_address fndecl 2 7869 &disable_so_channel_switch_time_ath_chanctx_sched_7869
135282 +disable_so_n_hw_addrs_iwl_nvm_data_7872 n_hw_addrs iwl_nvm_data 0 7872 NULL
135283 +disable_so_rcu_jiffies_till_stall_check_fndecl_7874 rcu_jiffies_till_stall_check fndecl 0 7874 NULL
135284 +disable_so_seq_b43legacy_txstatus_7880 seq b43legacy_txstatus 0 7880 NULL
135285 +disable_so_hpi_tuner_query_frequency_fndecl_7881 hpi_tuner_query_frequency fndecl 0-1 7881 NULL
135286 +disable_so_data_address_descriptor_7886 data_address descriptor 0 7886 NULL
135287 +disable_so_mpll_dq_func_cntl_ci_clock_registers_7890 mpll_dq_func_cntl ci_clock_registers 0 7890 NULL
135288 +disable_so_hpfs_load_bitmap_directory_fndecl_7892 hpfs_load_bitmap_directory fndecl 2 7892 NULL
135289 +disable_so_hour_tomoyo_time_7893 hour tomoyo_time 0 7893 NULL
135290 +disable_so_dx_pt_regs_7894 dx pt_regs 0 7894 NULL
135291 +disable_so_mthca_SW2HW_EQ_fndecl_7906 mthca_SW2HW_EQ fndecl 3-0 7906 NULL
135292 +disable_so_megasas_start_timer_fndecl_7920 megasas_start_timer fndecl 4 7920 NULL
135293 +disable_so_Memhscx_interrupt_fndecl_7925 Memhscx_interrupt fndecl 2 7925 NULL
135294 +disable_so_ena_gpio_regulator_config_7927 ena_gpio regulator_config 0 7927 NULL
135295 +disable_so_tda827x_initial_sleep_fndecl_7929 tda827x_initial_sleep fndecl 0 7929 NULL
135296 +disable_so_hfrontporch_v4l2_bt_timings_7935 hfrontporch v4l2_bt_timings 0 7935 NULL
135297 +disable_so_xfrm_flowi_daddr_fndecl_7937 xfrm_flowi_daddr fndecl 2 7937 NULL
135298 +disable_so_fw_schedule_device_work_fndecl_7962 fw_schedule_device_work fndecl 2 7962 NULL
135299 +disable_so_xfs_btree_get_bufl_fndecl_7965 xfs_btree_get_bufl fndecl 3 7965 NULL
135300 +disable_so_cpu_to_macvtap16_fndecl_7976 cpu_to_macvtap16 fndecl 0-2 7976 NULL nohasharray
135301 +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
135302 +disable_so_first_port_bitmap_port_7981 first_port bitmap_port 0 7981 NULL
135303 +disable_so_compat_get_bitmap_fndecl_7984 compat_get_bitmap fndecl 0-3 7984 NULL
135304 +disable_so_dma_addr_iser_rx_desc_7996 dma_addr iser_rx_desc 0 7996 NULL
135305 +disable_so_channel2freq_a_fndecl_7997 channel2freq_a fndecl 0-1 7997 NULL
135306 +disable_so_card_snd_timer_info_8007 card snd_timer_info 0 8007 NULL nohasharray
135307 +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
135308 +disable_so_apanel_addr_vardecl_i2c_i801_c_8018 apanel_addr vardecl_i2c-i801.c 0 8018 NULL
135309 +disable_so_bcma_pmu_pll_clock_fndecl_8024 bcma_pmu_pll_clock fndecl 2-3-0 8024 NULL
135310 +disable_so_sha1_transform_asm_vardecl_sha1_ssse3_glue_c_8028 sha1_transform_asm vardecl_sha1_ssse3_glue.c 3 8028 NULL
135311 +disable_so_add_timer_randomness_fndecl_8030 add_timer_randomness fndecl 2 8030 NULL
135312 +disable_so_hash_mask_mesh_table_8031 hash_mask mesh_table 0 8031 NULL
135313 +disable_so_show_dgid_fndecl_8032 show_dgid fndecl 0 8032 NULL
135314 +disable_so_div_cfg_dib8000_config_8034 div_cfg dib8000_config 0 8034 NULL
135315 +disable_so_demod_address_l64781_config_8035 demod_address l64781_config 0 8035 NULL
135316 +disable_so_uid_cramfs_inode_8037 uid cramfs_inode 0 8037 NULL
135317 +disable_so_recover_timer_read_fndecl_8053 recover_timer_read fndecl 0 8053 NULL
135318 +disable_so_usb_sleep_music_show_fndecl_8055 usb_sleep_music_show fndecl 0 8055 NULL
135319 +disable_so_hw_ptr_interrupt_snd_pcm_runtime_8061 hw_ptr_interrupt snd_pcm_runtime 0 8061 NULL
135320 +disable_so_reset_delay_us_e1000_phy_info_8066 reset_delay_us e1000_phy_info 0 8066 NULL
135321 +disable_so_timeout_packet_command_8072 timeout packet_command 0 8072 NULL
135322 +disable_so_jiffies_a_sl811_8074 jiffies_a sl811 0 8074 NULL nohasharray
135323 +disable_so_idedisk_set_max_address_fndecl_8074 idedisk_set_max_address fndecl 0-2 8074 &disable_so_jiffies_a_sl811_8074
135324 +disable_so_base_addr_TAG_TW_Device_Extension_8076 base_addr TAG_TW_Device_Extension 0 8076 NULL
135325 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data4_8080 gateway_cmd_addr wil_fw_record_gateway_data4 0 8080 NULL
135326 +disable_so_snd_cmipci_interrupt_fndecl_8083 snd_cmipci_interrupt fndecl 1 8083 NULL
135327 +disable_so_ivsize_blkcipher_alg_8085 ivsize blkcipher_alg 0 8085 NULL
135328 +disable_so_mlx5e_add_eth_addr_rule_fndecl_8090 mlx5e_add_eth_addr_rule fndecl 0 8090 NULL
135329 +disable_so_sysctl_rose_call_request_timeout_vardecl_8095 sysctl_rose_call_request_timeout vardecl 0 8095 NULL nohasharray
135330 +disable_so_b43_phy_maskset_fndecl_8095 b43_phy_maskset fndecl 2-3-4 8095 &disable_so_sysctl_rose_call_request_timeout_vardecl_8095
135331 +disable_so_dma_addr_mraid_pci_blk_8116 dma_addr mraid_pci_blk 0 8116 NULL
135332 +disable_so___arch_hweight32_fndecl_8119 __arch_hweight32 fndecl 0-1 8119 NULL
135333 +disable_so_lvds_downclock_drm_i915_private_8128 lvds_downclock drm_i915_private 0 8128 NULL
135334 +disable_so_calgary_set_split_completion_timeout_fndecl_8129 calgary_set_split_completion_timeout fndecl 2 8129 NULL
135335 +disable_so_i_atime_minix2_inode_8131 i_atime minix2_inode 0 8131 NULL
135336 +disable_so_xclk_post_div_pll_ct_8137 xclk_post_div pll_ct 0 8137 NULL
135337 +disable_so_legacy_display_base_addr_radeon_crtc_8144 legacy_display_base_addr radeon_crtc 0 8144 NULL
135338 +disable_so_rv6xx_memory_clock_entry_set_reference_divider_fndecl_8149 rv6xx_memory_clock_entry_set_reference_divider fndecl 3 8149 NULL
135339 +disable_so_x86_phys_bits_cpuinfo_x86_8154 x86_phys_bits cpuinfo_x86 0 8154 NULL
135340 +disable_so_vmx_get_preemption_timer_value_fndecl_8155 vmx_get_preemption_timer_value fndecl 0 8155 NULL
135341 +disable_so_delayed_set_value_led_classdev_8162 delayed_set_value led_classdev 0 8162 NULL
135342 +disable_so_link_timeout_fe_priv_8170 link_timeout fe_priv 0 8170 NULL nohasharray
135343 +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
135344 +disable_so___jhash_nwords_fndecl_8180 __jhash_nwords fndecl 0-1-2-3 8180 NULL
135345 +disable_so_buffer_addr_e1000_rx_desc_8186 buffer_addr e1000_rx_desc 0 8186 NULL
135346 +disable_so_s_wtime_ext2_super_block_8189 s_wtime ext2_super_block 0 8189 NULL nohasharray
135347 +disable_so_sel_addr1___mux2_8189 sel_addr1 __mux2 0 8189 &disable_so_s_wtime_ext2_super_block_8189
135348 +disable_so_elan_smbus_sleep_control_fndecl_8190 elan_smbus_sleep_control fndecl 0 8190 NULL
135349 +disable_so_hscale_timing_8195 hscale timing 0 8195 NULL
135350 +disable_so_mem_addr_sms_data_download_8196 mem_addr sms_data_download 0 8196 NULL
135351 +disable_so_last_time2_intel_ilk_power_mgmt_8197 last_time2 intel_ilk_power_mgmt 0 8197 NULL
135352 +disable_so_end_point_addr_cx231xx_video_mode_8198 end_point_addr cx231xx_video_mode 0 8198 NULL
135353 +disable_so_cmx_delay_dsp_8202 cmx_delay dsp 0 8202 NULL
135354 +disable_so_inet6_rtm_deladdr_fndecl_8203 inet6_rtm_deladdr fndecl 0 8203 NULL
135355 +disable_so_local_ca_guid_cm_rep_msg_8210 local_ca_guid cm_rep_msg 0 8210 NULL
135356 +disable_so_address_r8a66597_device_8227 address r8a66597_device 0 8227 NULL
135357 +disable_so_idle_jiffies_tick_sched_8241 idle_jiffies tick_sched 0 8241 NULL nohasharray
135358 +disable_so_ver_addr_via_display_timing_8241 ver_addr via_display_timing 0 8241 &disable_so_idle_jiffies_tick_sched_8241
135359 +disable_so_addr_hamachi_desc_8244 addr hamachi_desc 0 8244 NULL nohasharray
135360 +disable_so_addr_snd_dmaengine_dai_dma_data_8244 addr snd_dmaengine_dai_dma_data 0 8244 &disable_so_addr_hamachi_desc_8244
135361 +disable_so_ip6addrlbl_add_fndecl_8251 ip6addrlbl_add fndecl 0-4 8251 NULL
135362 +disable_so_transtime_vim2m_ctx_8252 transtime vim2m_ctx 0 8252 NULL
135363 +disable_so_seq_prism2_frag_entry_8262 seq prism2_frag_entry 0 8262 NULL
135364 +disable_so_uid_args_requester_8263 uid args_requester 0 8263 NULL
135365 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_retry_fndecl_8264 bfa_fcs_lport_ns_sm_gid_ft_retry fndecl 2 8264 NULL
135366 +disable_so_jffs2_lzo_decompress_fndecl_8274 jffs2_lzo_decompress fndecl 3 8274 NULL
135367 +disable_so_fb_start_aligned_physaddr_osd_info_8300 fb_start_aligned_physaddr osd_info 0 8300 NULL
135368 +disable_so_latch_addr_flash_driver_init_fndecl_8304 latch_addr_flash_driver_init fndecl 0 8304 NULL
135369 +disable_so_ab3100_rtc_read_time_fndecl_8312 ab3100_rtc_read_time fndecl 0 8312 NULL
135370 +disable_so_set_addr_fndecl_8318 set_addr fndecl 2-4-5 8318 NULL
135371 +disable_so_bit_width_acpi_pct_register_8319 bit_width acpi_pct_register 0 8319 NULL
135372 +disable_so_cpu_core_id_cpuinfo_x86_8323 cpu_core_id cpuinfo_x86 0 8323 NULL
135373 +disable_so_hash_rem_ccp_aes_cmac_req_ctx_8330 hash_rem ccp_aes_cmac_req_ctx 0 8330 NULL
135374 +disable_so_ps_timeout_wireless_dev_8334 ps_timeout wireless_dev 0 8334 NULL
135375 +disable_so_next_address_dma_ops_domain_8335 next_address dma_ops_domain 0 8335 NULL
135376 +disable_so_skcipher_pull_sgl_fndecl_8337 skcipher_pull_sgl fndecl 2 8337 NULL
135377 +disable_so_create_impulse_test_signal_fndecl_8361 create_impulse_test_signal fndecl 3 8361 NULL
135378 +disable_so_mod_timer_pending_fndecl_8362 mod_timer_pending fndecl 2-0 8362 NULL nohasharray
135379 +disable_so_ep0_trb_addr_dwc3_8362 ep0_trb_addr dwc3 0 8362 &disable_so_mod_timer_pending_fndecl_8362
135380 +disable_so_mtt_base_addr_h_mlx4_cq_context_8364 mtt_base_addr_h mlx4_cq_context 0 8364 NULL
135381 +disable_so_i2c_smbus_write_byte_data_fndecl_8369 i2c_smbus_write_byte_data fndecl 0-2-3 8369 NULL
135382 +disable_so_tpg_hscale_div_fndecl_8382 tpg_hscale_div fndecl 0-3 8382 NULL
135383 +disable_so_timestamp_bnx2i_endpoint_8390 timestamp bnx2i_endpoint 0 8390 NULL
135384 +disable_so_audit_backlog_wait_time_vardecl_audit_c_8393 audit_backlog_wait_time vardecl_audit.c 0 8393 NULL
135385 +disable_so_compat_put_timeval_fndecl_8394 compat_put_timeval fndecl 0 8394 NULL
135386 +disable_so_btree_remove128_fndecl_8408 btree_remove128 fndecl 2 8408 NULL
135387 +disable_so_pcxhr_hardware_timer_fndecl_8413 pcxhr_hardware_timer fndecl 0 8413 NULL
135388 +disable_so_ixgbe_atr_compute_sig_hash_82599_fndecl_8416 ixgbe_atr_compute_sig_hash_82599 fndecl 0 8416 NULL
135389 +disable_so_space_id_acpi_generic_address_8425 space_id acpi_generic_address 0 8425 NULL
135390 +disable_so_befs_btree_read_fndecl_8444 befs_btree_read fndecl 3 8444 NULL
135391 +disable_so_cttimeout_default_set_fndecl_8445 cttimeout_default_set fndecl 0 8445 NULL
135392 +disable_so_set_bdaddr_hci_dev_8450 set_bdaddr hci_dev 0 8450 NULL
135393 +disable_so_select_addr_qla82xx_md_entry_queue_8457 select_addr qla82xx_md_entry_queue 0 8457 NULL
135394 +disable_so_crypto_register_alg_fndecl_8460 crypto_register_alg fndecl 0 8460 NULL
135395 +disable_so_inet6_fill_ifmcaddr_fndecl_8465 inet6_fill_ifmcaddr fndecl 0-3-5 8465 NULL
135396 +disable_so_image_address_acpi_table_bgrt_8468 image_address acpi_table_bgrt 0 8468 NULL
135397 +disable_so_cmd_lock_addr_ulp_mem_io_8484 cmd_lock_addr ulp_mem_io 0 8484 NULL
135398 +disable_so_r600_engine_clock_entry_set_step_time_fndecl_8486 r600_engine_clock_entry_set_step_time fndecl 3 8486 NULL
135399 +disable_so_cxd2820r_sleep_t2_fndecl_8488 cxd2820r_sleep_t2 fndecl 0 8488 NULL
135400 +disable_so_si_get_cu_active_bitmap_fndecl_8498 si_get_cu_active_bitmap fndecl 0-2-3 8498 NULL
135401 +disable_so_clock_drxd_config_8500 clock drxd_config 0 8500 NULL nohasharray
135402 +disable_so_i2c_addr_zl10039_state_8500 i2c_addr zl10039_state 0 8500 &disable_so_clock_drxd_config_8500 nohasharray
135403 +disable_so_map_sg_dma_map_ops_8500 map_sg dma_map_ops 0-3 8500 &disable_so_i2c_addr_zl10039_state_8500
135404 +disable_so_addr_vt1211_data_8504 addr vt1211_data 0 8504 NULL
135405 +disable_so_vsync_pulse_width_lvds_dvo_timing_8520 vsync_pulse_width lvds_dvo_timing 0 8520 NULL
135406 +disable_so_set_frequency_fndecl_8523 set_frequency fndecl 0-3 8523 NULL
135407 +disable_so_lola_enable_clock_events_fndecl_8528 lola_enable_clock_events fndecl 0 8528 NULL
135408 +disable_so_pci_prepare_to_sleep_fndecl_8531 pci_prepare_to_sleep fndecl 0 8531 NULL
135409 +disable_so_valleyview_rps_max_freq_fndecl_8541 valleyview_rps_max_freq fndecl 0 8541 NULL
135410 +disable_so_wm8350_set_clkdiv_fndecl_8547 wm8350_set_clkdiv fndecl 3 8547 NULL
135411 +disable_so_scope_inet6_ifaddr_8569 scope inet6_ifaddr 0 8569 NULL
135412 +disable_so_hci_update_random_address_fndecl_8570 hci_update_random_address fndecl 0 8570 NULL nohasharray
135413 +disable_so_level_btrfs_delayed_extent_op_8570 level btrfs_delayed_extent_op 0 8570 &disable_so_hci_update_random_address_fndecl_8570
135414 +disable_so_p5_mt9t112_pll_divider_8582 p5 mt9t112_pll_divider 0 8582 NULL
135415 +disable_so_period_frames_snd_pcm_oss_runtime_8583 period_frames snd_pcm_oss_runtime 0 8583 NULL nohasharray
135416 +disable_so_sgtl5000_set_clock_fndecl_8583 sgtl5000_set_clock fndecl 2 8583 &disable_so_period_frames_snd_pcm_oss_runtime_8583
135417 +disable_so_ns_to_timespec_fndecl_8584 ns_to_timespec fndecl 1 8584 NULL
135418 +disable_so_mmc_test_random_perf_fndecl_8591 mmc_test_random_perf fndecl 0 8591 NULL
135419 +disable_so_ac_sleep_before_get_state_ms_vardecl_ac_c_8592 ac_sleep_before_get_state_ms vardecl_ac.c 0 8592 NULL
135420 +disable_so_s5h1420_getfreqoffset_fndecl_8597 s5h1420_getfreqoffset fndecl 0 8597 NULL
135421 +disable_so_pll_j_aic32x4_rate_divs_8598 pll_j aic32x4_rate_divs 0 8598 NULL
135422 +disable_so_freq_stb0899_params_8606 freq stb0899_params 0 8606 NULL
135423 +disable_so_vblank_hi_oaktrail_timing_info_8607 vblank_hi oaktrail_timing_info 0 8607 NULL
135424 +disable_so_subnet_timeout_ipath_ibdev_8613 subnet_timeout ipath_ibdev 0 8613 NULL nohasharray
135425 +disable_so_demod_address_or51211_config_8613 demod_address or51211_config 0 8613 &disable_so_subnet_timeout_ipath_ibdev_8613
135426 +disable_so___compat_put_timespec_fndecl_8625 __compat_put_timespec fndecl 0 8625 NULL
135427 +disable_so_sq_addr_hi_fcoe_kwqe_conn_offload1_8631 sq_addr_hi fcoe_kwqe_conn_offload1 0 8631 NULL
135428 +disable_so_compat_sock_get_timestamp_fndecl_8635 compat_sock_get_timestamp fndecl 0 8635 NULL
135429 +disable_so_next_sit_addr_fndecl_8639 next_sit_addr fndecl 0-2 8639 NULL
135430 +disable_so_update_mc_addr_fm10k_mac_ops_8643 update_mc_addr fm10k_mac_ops 4 8643 NULL
135431 +disable_so_img_ir_timing_range_convert_fndecl_8648 img_ir_timing_range_convert fndecl 3-4-5 8648 NULL
135432 +disable_so_adc_clock_ratio_dib0090_io_config_8649 adc_clock_ratio dib0090_io_config 0 8649 NULL
135433 +disable_so_regcache_rbtree_sync_fndecl_8655 regcache_rbtree_sync fndecl 0-2-3 8655 NULL
135434 +disable_so_nilfs_btree_gather_data_fndecl_8666 nilfs_btree_gather_data fndecl 0-4 8666 NULL
135435 +disable_so__scsih_get_sas_address_fndecl_8674 _scsih_get_sas_address fndecl 2 8674 NULL
135436 +disable_so_mul_u64_u32_shr_fndecl_8675 mul_u64_u32_shr fndecl 0-1-2-3 8675 NULL
135437 +disable_so_find_next_zero_bit_fndecl_8677 find_next_zero_bit fndecl 0-2-3 8677 NULL
135438 +disable_so_generic_set_freq_fndecl_8678 generic_set_freq fndecl 0-2 8678 NULL
135439 +disable_so_time_in_irq_usb_usbvision_8687 time_in_irq usb_usbvision 0 8687 NULL
135440 +disable_so_data_addr_asc_scsiq_1_8688 data_addr asc_scsiq_1 0 8688 NULL
135441 +disable_so_nl80211_parse_random_mac_fndecl_8702 nl80211_parse_random_mac fndecl 0 8702 NULL
135442 +disable_so_hpi_compander_set_attack_time_constant_fndecl_8705 hpi_compander_set_attack_time_constant fndecl 1-0 8705 NULL
135443 +disable_so_qla2x00_sns_gid_pt_fndecl_8706 qla2x00_sns_gid_pt fndecl 0 8706 NULL
135444 +disable_so_tipc_own_addr_fndecl_8707 tipc_own_addr fndecl 0 8707 NULL
135445 +disable_so_da9055_rtc_read_time_fndecl_8709 da9055_rtc_read_time fndecl 0 8709 NULL
135446 +disable_so_theta__fll_div_8710 theta _fll_div 0 8710 NULL nohasharray
135447 +disable_so_size_genwqe_bitstream_8710 size genwqe_bitstream 0 8710 &disable_so_theta__fll_div_8710
135448 +disable_so_cpu_to_virtio64_fndecl_8714 cpu_to_virtio64 fndecl 0-2 8714 NULL
135449 +disable_so_sleep_reg_bma180_part_info_8720 sleep_reg bma180_part_info 0 8720 NULL
135450 +disable_so_via_clock_init_fndecl_8721 via_clock_init fndecl 2 8721 NULL
135451 +disable_so_time_reftime_vardecl_ntp_c_8722 time_reftime vardecl_ntp.c 0 8722 NULL
135452 +disable_so_sysfs_set_reg_fndecl_8723 sysfs_set_reg fndecl 5 8723 NULL
135453 +disable_so_rport_del_timeout_vardecl_8725 rport_del_timeout vardecl 0 8725 NULL
135454 +disable_so_rb_subtree_gap_vm_area_struct_8729 rb_subtree_gap vm_area_struct 0 8729 NULL
135455 +disable_so_mipi_dsi_dcs_set_column_address_fndecl_8732 mipi_dsi_dcs_set_column_address fndecl 0 8732 NULL
135456 +disable_so_aes_encrypt_fail_read_fndecl_8737 aes_encrypt_fail_read fndecl 0-3 8737 NULL
135457 +disable_so_sumo_set_uvd_clock_fndecl_8742 sumo_set_uvd_clock fndecl 0-2-3-4 8742 NULL
135458 +disable_so_daddr_irlap_cb_8752 daddr irlap_cb 0 8752 NULL
135459 +disable_so_skcipher_sendpage_fndecl_8759 skcipher_sendpage fndecl 0-3-4-5 8759 NULL
135460 +disable_so_bitmap_store_fndecl_8764 bitmap_store fndecl 0-3 8764 NULL
135461 +disable_so_outdiv_arizona_fll_cfg_8765 outdiv arizona_fll_cfg 0 8765 NULL
135462 +disable_so_mce_start_timer_fndecl_8772 mce_start_timer fndecl 1 8772 NULL nohasharray
135463 +disable_so_kxcjk1013_runtime_resume_fndecl_8772 kxcjk1013_runtime_resume fndecl 0 8772 &disable_so_mce_start_timer_fndecl_8772
135464 +disable_so_p_addr_fw_desc_8777 p_addr fw_desc 0 8777 NULL
135465 +disable_so_count_uid_gid_extent_8799 count uid_gid_extent 0 8799 NULL
135466 +disable_so_ring_base_address_kfd_ioctl_create_queue_args_8811 ring_base_address kfd_ioctl_create_queue_args 0 8811 NULL
135467 +disable_so_start_addr_mlx5_mkey_seg_8817 start_addr mlx5_mkey_seg 0 8817 NULL
135468 +disable_so_ui_gid_ufs2_inode_8825 ui_gid ufs2_inode 0 8825 NULL
135469 +disable_so_addr_idx_tx_sw_desc_8827 addr_idx tx_sw_desc 0 8827 NULL
135470 +disable_so_cookie_init_timestamp_fndecl_8835 cookie_init_timestamp fndecl 0 8835 NULL
135471 +disable_so_f2fs_crypto_initialize_fndecl_8839 f2fs_crypto_initialize fndecl 0 8839 NULL
135472 +disable_so_timeout_ib_mad_send_wr_private_8841 timeout ib_mad_send_wr_private 0 8841 NULL nohasharray
135473 +disable_so_ddiv_gf100_clk_info_8841 ddiv gf100_clk_info 0 8841 &disable_so_timeout_ib_mad_send_wr_private_8841
135474 +disable_so_start_time_ieee80211_p2p_noa_desc_8844 start_time ieee80211_p2p_noa_desc 0 8844 NULL
135475 +disable_so__isl12057_rtc_read_time_fndecl_8850 _isl12057_rtc_read_time fndecl 0 8850 NULL
135476 +disable_so_read_addr_qla8xxx_minidump_entry_cache_8859 read_addr qla8xxx_minidump_entry_cache 0 8859 NULL
135477 +disable_so_b43legacy_get_txgain_freq_power_amp_fndecl_8866 b43legacy_get_txgain_freq_power_amp fndecl 0-1 8866 NULL
135478 +disable_so_ldelay_codel_vars_8872 ldelay codel_vars 0 8872 NULL
135479 +disable_so_mode_addr_ath_gen_timer_configuration_8875 mode_addr ath_gen_timer_configuration 0 8875 NULL
135480 +disable_so_move_addr_to_kernel_fndecl_8882 move_addr_to_kernel fndecl 0-2 8882 NULL
135481 +disable_so_last_time_cpufreq_stats_8891 last_time cpufreq_stats 0 8891 NULL
135482 +disable_so_di_uid_xfs_icdinode_8897 di_uid xfs_icdinode 0 8897 NULL
135483 +disable_so_g84_cipher_init_fndecl_8909 g84_cipher_init fndecl 0 8909 NULL
135484 +disable_so_slave_addr_intel_dvo_device_8910 slave_addr intel_dvo_device 0 8910 NULL
135485 +disable_so_avg_time_ide_tape_obj_8917 avg_time ide_tape_obj 0 8917 NULL
135486 +disable_so_ticks_timerfd_ctx_8928 ticks timerfd_ctx 0 8928 NULL
135487 +disable_so_st_atime_compat_stat_8936 st_atime compat_stat 0 8936 NULL
135488 +disable_so_addrconf_init_net_fndecl_8938 addrconf_init_net fndecl 0 8938 NULL
135489 +disable_so_qla4xxx_start_timer_fndecl_8945 qla4xxx_start_timer fndecl 3 8945 NULL
135490 +disable_so_crypto_blkcipher_decrypt_fndecl_8955 crypto_blkcipher_decrypt fndecl 0-4 8955 NULL
135491 +disable_so_guest_physical_address_vmcs12_8957 guest_physical_address vmcs12 0 8957 NULL
135492 +disable_so_acpi_lpss_runtime_resume_fndecl_8958 acpi_lpss_runtime_resume fndecl 0 8958 NULL nohasharray
135493 +disable_so_tegra_spi_runtime_resume_fndecl_8958 tegra_spi_runtime_resume fndecl 0 8958 &disable_so_acpi_lpss_runtime_resume_fndecl_8958
135494 +disable_so_runtime_resume_fndecl_8969 runtime_resume fndecl 0 8969 NULL
135495 +disable_so_hpi_tuner_set_hd_radio_signal_blend_fndecl_8970 hpi_tuner_set_hd_radio_signal_blend fndecl 0-1 8970 NULL
135496 +disable_so_wait_isoch_resource_delay_after_bus_reset_fndecl_8971 wait_isoch_resource_delay_after_bus_reset fndecl 0 8971 NULL
135497 +disable_so_end_fw_address_region_8972 end fw_address_region 0 8972 NULL
135498 +disable_so_sel_time_fcoe_ctlr_8977 sel_time fcoe_ctlr 0 8977 NULL
135499 +disable_so_unmap_addr_tso_state_8980 unmap_addr tso_state 0 8980 NULL
135500 +disable_so_v_freq_adv76xx_video_standards_8995 v_freq adv76xx_video_standards 0 8995 NULL
135501 +disable_so_p3_mt9t112_pll_divider_8996 p3 mt9t112_pll_divider 0 8996 NULL
135502 +disable_so_si476x_cmd_tune_seek_freq_fndecl_8997 si476x_cmd_tune_seek_freq fndecl 0-4-6 8997 NULL
135503 +disable_so_lzo1x_1_do_compress_fndecl_9000 lzo1x_1_do_compress fndecl 2 9000 NULL
135504 +disable_so_data_ramfuc_reg_9003 data ramfuc_reg 0 9003 NULL
135505 +disable_so_uid_drm_client_9005 uid drm_client 0 9005 NULL nohasharray
135506 +disable_so_size_pfn_var_mtrr_range_state_9005 size_pfn var_mtrr_range_state 0 9005 &disable_so_uid_drm_client_9005
135507 +disable_so_decode_attr_time_modify_fndecl_9006 decode_attr_time_modify fndecl 0 9006 NULL nohasharray
135508 +disable_so_last_jiffies_debug_vals_9006 last_jiffies debug_vals 0 9006 &disable_so_decode_attr_time_modify_fndecl_9006
135509 +disable_so_i2c_address_tua6100_priv_9007 i2c_address tua6100_priv 0 9007 NULL nohasharray
135510 +disable_so_end_mtrr_iter_9007 end mtrr_iter 0 9007 &disable_so_i2c_address_tua6100_priv_9007
135511 +disable_so_sin6_flowinfo_sockaddr_in6_9019 sin6_flowinfo sockaddr_in6 0 9019 NULL nohasharray
135512 +disable_so_device_destroy_fndecl_9019 device_destroy fndecl 2 9019 &disable_so_sin6_flowinfo_sockaddr_in6_9019
135513 +disable_so_si_tss_segment_16_9021 si tss_segment_16 0 9021 NULL
135514 +disable_so_parport_ieee1284_epp_write_addr_fndecl_9024 parport_ieee1284_epp_write_addr fndecl 0 9024 NULL
135515 +disable_so_esi_user_regs_struct32_9028 esi user_regs_struct32 0 9028 NULL
135516 +disable_so_clockevents_unbind_device_fndecl_9035 clockevents_unbind_device fndecl 2 9035 NULL nohasharray
135517 +disable_so_t1_interrupt_fndecl_9035 t1_interrupt fndecl 1 9035 &disable_so_clockevents_unbind_device_fndecl_9035 nohasharray
135518 +disable_so_randomize_stack_top_fndecl_9035 randomize_stack_top fndecl 0-1 9035 &disable_so_t1_interrupt_fndecl_9035
135519 +disable_so_mv88e6xxx_set_addr_direct_fndecl_9045 mv88e6xxx_set_addr_direct fndecl 0 9045 NULL
135520 +disable_so_phy_addr_cas_9051 phy_addr cas 0 9051 NULL
135521 +disable_so_usnic_transport_sock_get_addr_fndecl_9083 usnic_transport_sock_get_addr fndecl 0 9083 NULL
135522 +disable_so_debug_dma_free_coherent_fndecl_9087 debug_dma_free_coherent fndecl 4 9087 NULL nohasharray
135523 +disable_so_hashtab_insert_fndecl_9087 hashtab_insert fndecl 0 9087 &disable_so_debug_dma_free_coherent_fndecl_9087
135524 +disable_so_kblockd_schedule_delayed_work_on_fndecl_9095 kblockd_schedule_delayed_work_on fndecl 3-1 9095 NULL nohasharray
135525 +disable_so_lbs_host_sleep_cfg_fndecl_9095 lbs_host_sleep_cfg fndecl 0 9095 &disable_so_kblockd_schedule_delayed_work_on_fndecl_9095
135526 +disable_so_q_ctime_msg_queue_9100 q_ctime msg_queue 0 9100 NULL
135527 +disable_so_start_time_il_spectrum_cmd_9104 start_time il_spectrum_cmd 0 9104 NULL
135528 +disable_so_local_clock_fndecl_9106 local_clock fndecl 0 9106 NULL
135529 +disable_so_addr_xtsplit_9109 addr xtsplit 0 9109 NULL
135530 +disable_so_runtime_suspend_fndecl_9118 runtime_suspend fndecl 0 9118 NULL
135531 +disable_so_pch_src_uuid_lo_read_fndecl_9120 pch_src_uuid_lo_read fndecl 0 9120 NULL nohasharray
135532 +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
135533 +disable_so_addr1___pollrdmwr_9145 addr1 __pollrdmwr 0 9145 NULL
135534 +disable_so_iowrite16_rep_fndecl_9149 iowrite16_rep fndecl 3 9149 NULL
135535 +disable_so_rss_hash_result_eth_fast_path_rx_cqe_9151 rss_hash_result eth_fast_path_rx_cqe 0 9151 NULL
135536 +disable_so_ieee80211_fill_mesh_addresses_fndecl_9154 ieee80211_fill_mesh_addresses fndecl 0 9154 NULL
135537 +disable_so_dequeue_signal_lock_fndecl_9161 dequeue_signal_lock fndecl 0 9161 NULL
135538 +disable_so_min_tomoyo_time_9165 min tomoyo_time 0 9165 NULL
135539 +disable_so_hash_kernfs_node_9177 hash kernfs_node 0 9177 NULL
135540 +disable_so_get_subaddr_fndecl_9183 get_subaddr fndecl 0-3 9183 NULL
135541 +disable_so_tms_stime_tms_9187 tms_stime tms 0 9187 NULL
135542 +disable_so_shash_async_final_fndecl_9193 shash_async_final fndecl 0 9193 NULL
135543 +disable_so_sksg_dma_address_skd_request_context_9194 sksg_dma_address skd_request_context 0 9194 NULL
135544 +disable_so_rss_hash_val_rss_header_9205 rss_hash_val rss_header 0 9205 NULL
135545 +disable_so_actual_clock_mmc_host_9217 actual_clock mmc_host 0 9217 NULL
135546 +disable_so_xt_cluster_is_multicast_addr_fndecl_9218 xt_cluster_is_multicast_addr fndecl 2 9218 NULL
135547 +disable_so_ww_mutex_lock_interruptible_fndecl_9222 ww_mutex_lock_interruptible fndecl 0 9222 NULL
135548 +disable_so_twake_snd_pcm_runtime_9229 twake snd_pcm_runtime 0 9229 NULL
135549 +disable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 0 9236 NULL
135550 +disable_so_tx_complete_addr_acx_data_path_params_resp_9246 tx_complete_addr acx_data_path_params_resp 0 9246 NULL
135551 +disable_so_pbn_div_drm_dp_mst_topology_mgr_9251 pbn_div drm_dp_mst_topology_mgr 0 9251 NULL
135552 +disable_so_num_address_p54_group_address_table_9258 num_address p54_group_address_table 0 9258 NULL
135553 +disable_so_ks108_set_xaddr_fndecl_9262 ks108_set_xaddr fndecl 2-3 9262 NULL
135554 +disable_so_xtal_freq_qm1d1c0042_config_9263 xtal_freq qm1d1c0042_config 0 9263 NULL
135555 +disable_so_lbs_host_sleep_read_fndecl_9270 lbs_host_sleep_read fndecl 3-0 9270 NULL
135556 +disable_so_fdiv_it913x_dev_9273 fdiv it913x_dev 0 9273 NULL nohasharray
135557 +disable_so_oom_score_adj_signal_struct_9273 oom_score_adj signal_struct 0 9273 &disable_so_fdiv_it913x_dev_9273
135558 +disable_so_compat_sys_mq_timedsend_fndecl_9287 compat_sys_mq_timedsend fndecl 3-1 9287 NULL
135559 +disable_so_snd_tea575x_val_to_freq_fndecl_9302 snd_tea575x_val_to_freq fndecl 0-2 9302 NULL
135560 +disable_so_addr_resolve_fndecl_9304 addr_resolve fndecl 0 9304 NULL
135561 +disable_so_address_mic_vqconfig_9306 address mic_vqconfig 0 9306 NULL nohasharray
135562 +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
135563 +disable_so_trace_clock_local_fndecl_9318 trace_clock_local fndecl 0 9318 NULL nohasharray
135564 +disable_so_proc_gid_map_write_fndecl_9318 proc_gid_map_write fndecl 0-3 9318 &disable_so_trace_clock_local_fndecl_9318
135565 +disable_so_discovery_timeout_mpath_info_9320 discovery_timeout mpath_info 0 9320 NULL
135566 +disable_so_xmit_timeout_nbd_device_9323 xmit_timeout nbd_device 0 9323 NULL
135567 +disable_so_timer_irq_vardecl_cs5535_clockevt_c_9326 timer_irq vardecl_cs5535-clockevt.c 0 9326 NULL
135568 +disable_so_kblockd_schedule_delayed_work_fndecl_9328 kblockd_schedule_delayed_work fndecl 2 9328 NULL
135569 +disable_so_utimes_common_fndecl_9330 utimes_common fndecl 0 9330 NULL
135570 +disable_so_di_gid_qnx4_inode_entry_9346 di_gid qnx4_inode_entry 0 9346 NULL nohasharray
135571 +disable_so_rpc_localaddr_fndecl_9346 rpc_localaddr fndecl 0 9346 &disable_so_di_gid_qnx4_inode_entry_9346
135572 +disable_so_ibits_pll_freq_tbl_9354 ibits pll_freq_tbl 0 9354 NULL
135573 +disable_so_addr_nct6683_data_9356 addr nct6683_data 0 9356 NULL
135574 +disable_so_l2_fhdr_hash_l2_fhdr_9360 l2_fhdr_hash l2_fhdr 0 9360 NULL
135575 +disable_so_hpfs_count_one_bitmap_fndecl_9362 hpfs_count_one_bitmap fndecl 0-2 9362 NULL
135576 +disable_so_ax25_uid_ioctl_fndecl_9367 ax25_uid_ioctl fndecl 0 9367 NULL
135577 +disable_so_last_rebuild_jiffies_inet_frags_9369 last_rebuild_jiffies inet_frags 0 9369 NULL
135578 +disable_so_hash_ipportnet6_expire_fndecl_9373 hash_ipportnet6_expire fndecl 4 9373 NULL
135579 +disable_so_uuid_count_mgmt_cp_start_service_discovery_9374 uuid_count mgmt_cp_start_service_discovery 0 9374 NULL
135580 +disable_so_ixgbe_set_vf_mac_addr_fndecl_9376 ixgbe_set_vf_mac_addr fndecl 3 9376 NULL
135581 +disable_so_addr_dma_desc_9383 addr dma_desc 0 9383 NULL
135582 +disable_so_ilk_get_aux_clock_divider_fndecl_9386 ilk_get_aux_clock_divider fndecl 0 9386 NULL
135583 +disable_so_host_bfa_bsg_rport_scsi_addr_s_9387 host bfa_bsg_rport_scsi_addr_s 0 9387 NULL
135584 +disable_so_xfs_btree_init_block_int_fndecl_9393 xfs_btree_init_block_int fndecl 3-7 9393 NULL
135585 +disable_so_dutycycle_pwm_voltages_9394 dutycycle pwm_voltages 0 9394 NULL
135586 +disable_so_max_timer_ms_ssb_chipcommon_9403 max_timer_ms ssb_chipcommon 0 9403 NULL
135587 +disable_so_demod_address_jdvbt90502_config_9412 demod_address jdvbt90502_config 0 9412 NULL nohasharray
135588 +disable_so_inet_dev_addr_type_fndecl_9412 inet_dev_addr_type fndecl 3 9412 &disable_so_demod_address_jdvbt90502_config_9412
135589 +disable_so_bit_offset_acpi_generic_address_9413 bit_offset acpi_generic_address 0 9413 NULL
135590 +disable_so_crypto_hash_update_fndecl_9415 crypto_hash_update fndecl 0-3 9415 NULL
135591 +disable_so_ftdi_2232h_baud_to_divisor_fndecl_9425 ftdi_2232h_baud_to_divisor fndecl 0-1 9425 NULL
135592 +disable_so_blk_post_runtime_resume_fndecl_9432 blk_post_runtime_resume fndecl 2 9432 NULL
135593 +disable_so_parent_btrfs_delayed_data_ref_9437 parent btrfs_delayed_data_ref 0 9437 NULL nohasharray
135594 +disable_so_netxen_get_interrupt_mode_fndecl_9437 netxen_get_interrupt_mode fndecl 0 9437 &disable_so_parent_btrfs_delayed_data_ref_9437
135595 +disable_so_entry_attr_timeout_fndecl_9441 entry_attr_timeout fndecl 0 9441 NULL
135596 +disable_so_wall_time_snsec_vsyscall_gtod_data_9445 wall_time_snsec vsyscall_gtod_data 0 9445 NULL
135597 +disable_so_atm_get_addr_fndecl_9446 atm_get_addr fndecl 3 9446 NULL
135598 +disable_so_address_efx_farch_register_test_9448 address efx_farch_register_test 0 9448 NULL
135599 +disable_so_rx_errors_net_device_stats_9453 rx_errors net_device_stats 0 9453 NULL
135600 +disable_so_crypto_sha1_update_fndecl_9455 crypto_sha1_update fndecl 3 9455 NULL
135601 +disable_so_bm_set_drbd_bitmap_9457 bm_set drbd_bitmap 0 9457 NULL
135602 +disable_so_mb86a16_write_fndecl_9462 mb86a16_write fndecl 3 9462 NULL
135603 +disable_so_cycle_delay_radeon_dpm_fan_9463 cycle_delay radeon_dpm_fan 0 9463 NULL
135604 +disable_so_value_vmx_msr_entry_9464 value vmx_msr_entry 0 9464 NULL
135605 +disable_so_io_bitmap_b_vmcs12_9472 io_bitmap_b vmcs12 0 9472 NULL
135606 +disable_so_brtime_id_seeprom_config_9474 brtime_id seeprom_config 0 9474 NULL
135607 +disable_so_frequency_stv0367ter_state_9481 frequency stv0367ter_state 0 9481 NULL
135608 +disable_so_ccp_aes_cmac_setkey_fndecl_9503 ccp_aes_cmac_setkey fndecl 0-3 9503 NULL
135609 +disable_so_tsc_ratio_vcpu_svm_9506 tsc_ratio vcpu_svm 0 9506 NULL
135610 +disable_so_crypto_cts_setkey_fndecl_9507 crypto_cts_setkey fndecl 0-3 9507 NULL
135611 +disable_so_clock_t_to_compat_clock_t_fndecl_9510 clock_t_to_compat_clock_t fndecl 1-0 9510 NULL
135612 +disable_so_xcan_err_interrupt_fndecl_9511 xcan_err_interrupt fndecl 2 9511 NULL nohasharray
135613 +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
135614 +disable_so_nilfs_btree_check_delete_fndecl_9514 nilfs_btree_check_delete fndecl 0 9514 NULL
135615 +disable_so_debug_dma_sync_single_for_device_fndecl_9517 debug_dma_sync_single_for_device fndecl 3-2 9517 NULL
135616 +disable_so_single_bit_error_correct_fndecl_9520 single_bit_error_correct fndecl 4 9520 NULL
135617 +disable_so_data_busaddr_ips_scb_9530 data_busaddr ips_scb 0 9530 NULL
135618 +disable_so_diversity_delay_dib8000_config_9533 diversity_delay dib8000_config 0 9533 NULL
135619 +disable_so_ems_usb_set_bittiming_fndecl_9537 ems_usb_set_bittiming fndecl 0 9537 NULL
135620 +disable_so_port_update_gid_work_9549 port update_gid_work 0 9549 NULL
135621 +disable_so_cryptomgr_schedule_test_fndecl_9550 cryptomgr_schedule_test fndecl 0 9550 NULL
135622 +disable_so_hpd_eop_gpu_addr_radeon_mec_9554 hpd_eop_gpu_addr radeon_mec 0 9554 NULL
135623 +disable_so_cluster_slot_bitmap_9571 cluster_slot bitmap 0 9571 NULL
135624 +disable_so_address_space_cmos_rtc_board_info_9586 address_space cmos_rtc_board_info 0 9586 NULL
135625 +disable_so_regcache_rbtree_set_register_fndecl_9588 regcache_rbtree_set_register fndecl 3-4 9588 NULL
135626 +disable_so_gen8_xcs_signal_fndecl_9591 gen8_xcs_signal fndecl 0-2 9591 NULL
135627 +disable_so_time_stamp_il_tx_queue_9592 time_stamp il_tx_queue 0 9592 NULL
135628 +disable_so_first_dev_address_fndecl_9599 first_dev_address fndecl 0-1 9599 NULL
135629 +disable_so_lpfc_max_scsicmpl_time_show_fndecl_9604 lpfc_max_scsicmpl_time_show fndecl 0 9604 NULL
135630 +disable_so_efx_ef10_get_sysclk_freq_fndecl_9605 efx_ef10_get_sysclk_freq fndecl 0 9605 NULL
135631 +disable_so_utime_signal_struct_9619 utime signal_struct 0 9619 NULL nohasharray
135632 +disable_so_connected_time_station_info_9619 connected_time station_info 0 9619 &disable_so_utime_signal_struct_9619
135633 +disable_so_elapsed_time_f2fs_checkpoint_9631 elapsed_time f2fs_checkpoint 0 9631 NULL
135634 +disable_so_read_addr_qla8044_minidump_entry_pollrd_9634 read_addr qla8044_minidump_entry_pollrd 0 9634 NULL
135635 +disable_so_time_stamp_sec_TAG_TW_Event_9639 time_stamp_sec TAG_TW_Event 0 9639 NULL
135636 +disable_so_blk_pre_runtime_suspend_fndecl_9640 blk_pre_runtime_suspend fndecl 0 9640 NULL
135637 +disable_so_ds_divider_index_sumo_pl_9644 ds_divider_index sumo_pl 0 9644 NULL
135638 +disable_so_out_of_line_wait_on_bit_timeout_fndecl_9648 out_of_line_wait_on_bit_timeout fndecl 5-0 9648 NULL
135639 +disable_so_sys_getuid16_fndecl_9653 sys_getuid16 fndecl 0 9653 NULL
135640 +disable_so_smc_interrupt_fndecl_9659 smc_interrupt fndecl 1 9659 NULL
135641 +disable_so_pld_clock_kempld_device_data_9670 pld_clock kempld_device_data 0 9670 NULL
135642 +disable_so_hello_time_show_fndecl_9675 hello_time_show fndecl 0 9675 NULL
135643 +disable_so_paddr_tsq_info_9680 paddr tsq_info 0 9680 NULL
135644 +disable_so_fifo_addr_fwnet_packet_task_9682 fifo_addr fwnet_packet_task 0 9682 NULL
135645 +disable_so_uaddr_ivtv_dma_page_info_9683 uaddr ivtv_dma_page_info 0 9683 NULL
135646 +disable_so_lp872x_regulator_enable_time_fndecl_9684 lp872x_regulator_enable_time fndecl 0 9684 NULL
135647 +disable_so_r67_val_fc2580_freq_regs_9685 r67_val fc2580_freq_regs 0 9685 NULL
135648 +disable_so_mclk_freq_rj54n1_pdata_9727 mclk_freq rj54n1_pdata 0 9727 NULL
135649 +disable_so_qdelay_pie_vars_9735 qdelay pie_vars 0 9735 NULL
135650 +disable_so_uncore_msr_fixed_ctl_fndecl_9740 uncore_msr_fixed_ctl fndecl 0 9740 NULL
135651 +disable_so_ifa_preferred_lft_in_ifaddr_9744 ifa_preferred_lft in_ifaddr 0 9744 NULL
135652 +disable_so_cpuid_device_create_fndecl_9746 cpuid_device_create fndecl 1 9746 NULL
135653 +disable_so_musb_write_rxhubaddr_fndecl_9750 musb_write_rxhubaddr fndecl 2-3 9750 NULL
135654 +disable_so_moddelay_soundfont_voice_parm_9752 moddelay soundfont_voice_parm 0 9752 NULL
135655 +disable_so_uwb_rc_mac_addr_setup_fndecl_9754 uwb_rc_mac_addr_setup fndecl 0 9754 NULL
135656 +disable_so_kv_convert_2bit_index_to_voltage_fndecl_9759 kv_convert_2bit_index_to_voltage fndecl 0-2 9759 NULL
135657 +disable_so_timeout_interval_bau_control_9762 timeout_interval bau_control 0 9762 NULL
135658 +disable_so_acpi_ut_check_address_range_fndecl_9782 acpi_ut_check_address_range fndecl 1-2-3 9782 NULL
135659 +disable_so_signal_rtl8187_priv_9785 signal rtl8187_priv 0 9785 NULL
135660 +disable_so_usb__coeff_div_9793 usb _coeff_div 0 9793 NULL
135661 +disable_so_dspaddr_offset_intel_crtc_9795 dspaddr_offset intel_crtc 0 9795 NULL
135662 +disable_so_demod_address_mt352_config_9806 demod_address mt352_config 0 9806 NULL
135663 +disable_so_ntfs_bitmap_set_bits_in_run_fndecl_9807 ntfs_bitmap_set_bits_in_run fndecl 2-3 9807 NULL
135664 +disable_so_vaddr_ioctl_gntdev_get_offset_for_vaddr_9810 vaddr ioctl_gntdev_get_offset_for_vaddr 0 9810 NULL
135665 +disable_so_mtime_fuse_setattr_in_9811 mtime fuse_setattr_in 0 9811 NULL nohasharray
135666 +disable_so_r10_pt_regs_9811 r10 pt_regs 0 9811 &disable_so_mtime_fuse_setattr_in_9811
135667 +disable_so_ath6kl_wmi_bmisstime_cmd_fndecl_9818 ath6kl_wmi_bmisstime_cmd fndecl 2-0 9818 NULL
135668 +disable_so_addr_lp55xx_reg_9819 addr lp55xx_reg 0 9819 NULL
135669 +disable_so_rq_pbl_addr_hi_fcoe_kwqe_conn_offload1_9838 rq_pbl_addr_hi fcoe_kwqe_conn_offload1 0 9838 NULL
135670 +disable_so___bitmap_shift_right_fndecl_9852 __bitmap_shift_right fndecl 3-4 9852 NULL
135671 +disable_so_set_ramp_delay_regulator_ops_9853 set_ramp_delay regulator_ops 0 9853 NULL
135672 +disable_so_delay_qla8044_reset_entry_hdr_9861 delay qla8044_reset_entry_hdr 0 9861 NULL
135673 +disable_so_dn_nl_dump_ifaddr_fndecl_9864 dn_nl_dump_ifaddr fndecl 0 9864 NULL
135674 +disable_so_cryptd_blkcipher_decrypt_enqueue_fndecl_9865 cryptd_blkcipher_decrypt_enqueue fndecl 0 9865 NULL
135675 +disable_so_dma_addr_vnic_rq_buf_9867 dma_addr vnic_rq_buf 0 9867 NULL
135676 +disable_so_atomic_pte_lookup_fndecl_9877 atomic_pte_lookup fndecl 2 9877 NULL
135677 +disable_so_init_freq_pt3_adap_config_9886 init_freq pt3_adap_config 0 9886 NULL nohasharray
135678 +disable_so_tq_can_bittiming_9886 tq can_bittiming 0 9886 &disable_so_init_freq_pt3_adap_config_9886
135679 +disable_so_base_addr_tg3_firmware_hdr_9887 base_addr tg3_firmware_hdr 0 9887 NULL
135680 +disable_so_execaddr_object_info_9888 execaddr object_info 0 9888 NULL
135681 +disable_so_freq_r3A_value_fndecl_9891 freq_r3A_value fndecl 0-1 9891 NULL
135682 +disable_so_xfs_btree_shift_ptrs_fndecl_9894 xfs_btree_shift_ptrs fndecl 4 9894 NULL
135683 +disable_so_rsp_producer_index_phy_addr_low_ql3_adapter_9895 rsp_producer_index_phy_addr_low ql3_adapter 0 9895 NULL
135684 +disable_so_n_voltages_regulator_desc_9911 n_voltages regulator_desc 0 9911 NULL
135685 +disable_so_reset_gid_table_fndecl_9912 reset_gid_table fndecl 2 9912 NULL
135686 +disable_so_dentist_vco_freq_trinity_sys_info_9922 dentist_vco_freq trinity_sys_info 0 9922 NULL
135687 +disable_so_mactime_linux_wlan_ng_cap_hdr_9926 mactime linux_wlan_ng_cap_hdr 0 9926 NULL nohasharray
135688 +disable_so_address_hi_ht_irq_msg_9926 address_hi ht_irq_msg 0 9926 &disable_so_mactime_linux_wlan_ng_cap_hdr_9926
135689 +disable_so_mdac_aic31xx_rate_divs_9931 mdac aic31xx_rate_divs 0 9931 NULL
135690 +disable_so_si2168_sleep_fndecl_9938 si2168_sleep fndecl 0 9938 NULL
135691 +disable_so_spp_assoc_id_sctp_paddrparams_9958 spp_assoc_id sctp_paddrparams 0 9958 NULL
135692 +disable_so_skcipher_wait_for_data_fndecl_9959 skcipher_wait_for_data fndecl 0 9959 NULL
135693 +disable_so_c_delay_target_disk_conf_9960 c_delay_target disk_conf 0 9960 NULL
135694 +disable_so_p1div_pmu1_plltab_entry_9962 p1div pmu1_plltab_entry 0 9962 NULL
135695 +disable_so_extract_clock_fndecl_9973 extract_clock fndecl 1-2-0 9973 NULL
135696 +disable_so_addr_hi_rx_desc_9978 addr_hi rx_desc 0 9978 NULL
135697 +disable_so_sin_family_sockaddr_in_9981 sin_family sockaddr_in 0 9981 NULL
135698 +disable_so_ticks_snd_timer_user_9987 ticks snd_timer_user 0 9987 NULL
135699 +disable_so_address_musb_9992 address musb 0 9992 NULL
135700 +disable_so_invalidate_guid_record_fndecl_9996 invalidate_guid_record fndecl 2 9996 NULL
135701 +disable_so_request_daddr_isci_request_10008 request_daddr isci_request 0 10008 NULL
135702 +disable_so_addr_sec_info_di_buf_entry_10016 addr_sec_info di_buf_entry 0 10016 NULL
135703 +disable_so_hash_netportnet4_expire_fndecl_10025 hash_netportnet4_expire fndecl 4 10025 NULL
135704 +disable_so_hid_time_value_fndecl_10028 hid_time_value fndecl 0 10028 NULL
135705 +disable_so_ts_jiffies_uwb_beca_e_10039 ts_jiffies uwb_beca_e 0 10039 NULL
135706 +disable_so_hpi_sample_clock_get_source_fndecl_10048 hpi_sample_clock_get_source fndecl 1-0 10048 NULL
135707 +disable_so_hfsplus_btree_open_fndecl_10055 hfsplus_btree_open fndecl 2 10055 NULL
135708 +disable_so_rx_drain_timeout_msecs_vardecl_10061 rx_drain_timeout_msecs vardecl 0 10061 NULL
135709 +disable_so_start_seq_tcp_sack_block_wire_10072 start_seq tcp_sack_block_wire 0 10072 NULL
135710 +disable_so_sha1_mb_finup_fndecl_10074 sha1_mb_finup fndecl 0 10074 NULL
135711 +disable_so_flow_get_skuid_fndecl_10095 flow_get_skuid fndecl 0 10095 NULL
135712 +disable_so_i_atime_ext4_inode_10096 i_atime ext4_inode 0 10096 NULL
135713 +disable_so_wd_timeout_iwl_txq_10106 wd_timeout iwl_txq 0 10106 NULL
135714 +disable_so_tx_lpi_timer_ethtool_eee_10108 tx_lpi_timer ethtool_eee 0 10108 NULL
135715 +disable_so_cpumask_clear_cpu_fndecl_10109 cpumask_clear_cpu fndecl 1 10109 NULL
135716 +disable_so_apply_time_iwl_hs20_roc_req_10117 apply_time iwl_hs20_roc_req 0 10117 NULL
135717 +disable_so_pos2min_hash_fndecl_10123 pos2min_hash fndecl 0-2 10123 NULL
135718 +disable_so_mode_mask_ath_gen_timer_configuration_10124 mode_mask ath_gen_timer_configuration 0 10124 NULL
135719 +disable_so_del_timer_sync_fndecl_10133 del_timer_sync fndecl 0 10133 NULL
135720 +disable_so_res_toss_time_dlm_rsb_10135 res_toss_time dlm_rsb 0 10135 NULL nohasharray
135721 +disable_so_vblank___fb_timings_10135 vblank __fb_timings 0 10135 &disable_so_res_toss_time_dlm_rsb_10135
135722 +disable_so_phase_seg1_can_bittiming_10141 phase_seg1 can_bittiming 0 10141 NULL
135723 +disable_so_fixed_mtrr_seg_end_range_index_fndecl_10143 fixed_mtrr_seg_end_range_index fndecl 0 10143 NULL
135724 +disable_so_xgene_enet_set_mac_address_fndecl_10148 xgene_enet_set_mac_address fndecl 0 10148 NULL
135725 +disable_so_rtl_rfreg_delay_fndecl_10149 rtl_rfreg_delay fndecl 3-5 10149 NULL
135726 +disable_so_channel_of_freq_fndecl_10152 channel_of_freq fndecl 0-1 10152 NULL nohasharray
135727 +disable_so_gpio_set_value_cansleep_fndecl_10152 gpio_set_value_cansleep fndecl 1-2 10152 &disable_so_channel_of_freq_fndecl_10152
135728 +disable_so_em_sti_clocksource_read_fndecl_10153 em_sti_clocksource_read fndecl 0 10153 NULL
135729 +disable_so_tc90522_sleep_fndecl_10162 tc90522_sleep fndecl 0 10162 NULL
135730 +disable_so_discovery_timeout_mesh_path_10170 discovery_timeout mesh_path 0 10170 NULL
135731 +disable_so_pcf8563_rtc_read_time_fndecl_10175 pcf8563_rtc_read_time fndecl 0 10175 NULL
135732 +disable_so_ixgb_mc_addr_list_update_fndecl_10187 ixgb_mc_addr_list_update fndecl 3 10187 NULL
135733 +disable_so_rng_gen_random_rng_tfm_10199 rng_gen_random rng_tfm 3-0 10199 NULL
135734 +disable_so_db_rec_addr_mlx4_qp_context_10204 db_rec_addr mlx4_qp_context 0 10204 NULL nohasharray
135735 +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
135736 +disable_so_pgid_coda_in_hdr_10212 pgid coda_in_hdr 0 10212 NULL
135737 +disable_so_xfs_btree_get_numrecs_fndecl_10214 xfs_btree_get_numrecs fndecl 0 10214 NULL
135738 +disable_so_txLifetime_ConfigRid_10224 txLifetime ConfigRid 0 10224 NULL
135739 +disable_so_active_time_dce8_wm_params_10231 active_time dce8_wm_params 0 10231 NULL
135740 +disable_so_spi_imx_clkdiv_1_fndecl_10237 spi_imx_clkdiv_1 fndecl 1-2 10237 NULL
135741 +disable_so_vlv_force_gfx_clock_fndecl_10238 vlv_force_gfx_clock fndecl 0 10238 NULL
135742 +disable_so_prism54_get_freq_fndecl_10256 prism54_get_freq fndecl 0 10256 NULL
135743 +disable_so_ath6kl_wmi_disctimeout_cmd_fndecl_10259 ath6kl_wmi_disctimeout_cmd fndecl 2-0 10259 NULL
135744 +disable_so_dma_addr_snd_pcm_runtime_10260 dma_addr snd_pcm_runtime 0 10260 NULL
135745 +disable_so_p7_mt9t112_pll_divider_10261 p7 mt9t112_pll_divider 0 10261 NULL
135746 +disable_so_start_pid_timer_list_10264 start_pid timer_list 0 10264 NULL
135747 +disable_so_gateway_ctrl_address_wil_fw_record_gateway_data_10268 gateway_ctrl_address wil_fw_record_gateway_data 0 10268 NULL
135748 +disable_so_btree_insert128_fndecl_10277 btree_insert128 fndecl 2-3-5 10277 NULL
135749 +disable_so_i_dtime_ext2_inode_info_10287 i_dtime ext2_inode_info 0 10287 NULL
135750 +disable_so_mcryptd_hash_init_fndecl_10290 mcryptd_hash_init fndecl 2 10290 NULL
135751 +disable_so_freq_bfa_diag_ledtest_s_10293 freq bfa_diag_ledtest_s 0 10293 NULL
135752 +disable_so_TSS_sha1_fndecl_10297 TSS_sha1 fndecl 2 10297 NULL
135753 +disable_so_ccp_aes_cmac_init_fndecl_10298 ccp_aes_cmac_init fndecl 0 10298 NULL
135754 +disable_so_fc_fcp_timer_set_fndecl_10312 fc_fcp_timer_set fndecl 2 10312 NULL
135755 +disable_so_blkcipher_walk_next_fndecl_10321 blkcipher_walk_next fndecl 0 10321 NULL
135756 +disable_so_pwm_clock_nvkm_therm_10336 pwm_clock nvkm_therm 2-0 10336 NULL nohasharray
135757 +disable_so_ecryptfs_code_for_cipher_string_fndecl_10336 ecryptfs_code_for_cipher_string fndecl 2 10336 &disable_so_pwm_clock_nvkm_therm_10336
135758 +disable_so_smc_wreg_amdgpu_device_10339 smc_wreg amdgpu_device 2-3 10339 NULL
135759 +disable_so_symlink_hash_fndecl_10341 symlink_hash fndecl 1 10341 NULL
135760 +disable_so_eax_smm_regs_10346 eax smm_regs 0 10346 NULL
135761 +disable_so_sctp_setsockopt_nodelay_fndecl_10349 sctp_setsockopt_nodelay fndecl 0-3 10349 NULL
135762 +disable_so_min_vdisktime_cfq_rb_root_10355 min_vdisktime cfq_rb_root 0 10355 NULL
135763 +disable_so_address_lo_msi_msg_10356 address_lo msi_msg 0 10356 NULL
135764 +disable_so_unmapped_addr_srp_map_state_10359 unmapped_addr srp_map_state 0 10359 NULL
135765 +disable_so_buff_addr_ixgb_tx_desc_10366 buff_addr ixgb_tx_desc 0 10366 NULL
135766 +disable_so_i_ctime_sysv_inode_10368 i_ctime sysv_inode 0 10368 NULL
135767 +disable_so_avg_signal_local_info_10389 avg_signal local_info 0 10389 NULL
135768 +disable_so_sctp_bind_addrs_to_raw_fndecl_10390 sctp_bind_addrs_to_raw fndecl 3 10390 NULL
135769 +disable_so_xfs_btree_reada_bufs_fndecl_10403 xfs_btree_reada_bufs fndecl 2-3-4 10403 NULL
135770 +disable_so_cx_tss_segment_16_10404 cx tss_segment_16 0 10404 NULL
135771 +disable_so_cryptd_hash_update_enqueue_fndecl_10406 cryptd_hash_update_enqueue fndecl 0 10406 NULL
135772 +disable_so_log2sharesize_adfs_discrecord_10408 log2sharesize adfs_discrecord 0 10408 NULL
135773 +disable_so_eqaddr_csio_eq_params_10412 eqaddr csio_eq_params 0 10412 NULL
135774 +disable_so_dad_probes_inet6_ifaddr_10417 dad_probes inet6_ifaddr 0 10417 NULL
135775 +disable_so_ath5k_iowrite32_fndecl_10429 ath5k_iowrite32 fndecl 2 10429 NULL
135776 +disable_so_timeout_proto_10448 timeout proto 0 10448 NULL
135777 +disable_so_recycle_rx_buf_fndecl_10456 recycle_rx_buf fndecl 3 10456 NULL
135778 +disable_so_zero_scatter_daddr_isci_request_10458 zero_scatter_daddr isci_request 0 10458 NULL nohasharray
135779 +disable_so_cryptd_hash_digest_enqueue_fndecl_10458 cryptd_hash_digest_enqueue fndecl 0 10458 &disable_so_zero_scatter_daddr_isci_request_10458
135780 +disable_so_snd_pcm_hw_rule_muldivk_fndecl_10469 snd_pcm_hw_rule_muldivk fndecl 0 10469 NULL
135781 +disable_so_nilfs_btree_assign_fndecl_10473 nilfs_btree_assign fndecl 0-3 10473 NULL
135782 +disable_so_base_addr_ce_space_unaligned_ath10k_ce_ring_10487 base_addr_ce_space_unaligned ath10k_ce_ring 0 10487 NULL
135783 +disable_so_bch_btree_map_leaf_nodes_fndecl_10499 bch_btree_map_leaf_nodes fndecl 0 10499 NULL
135784 +disable_so_periods_snd_pcm_oss_runtime_10500 periods snd_pcm_oss_runtime 0 10500 NULL
135785 +disable_so_uvc_video_clock_decode_fndecl_10502 uvc_video_clock_decode fndecl 4 10502 NULL
135786 +disable_so_t3timer_ax25_info_struct_10512 t3timer ax25_info_struct 0 10512 NULL
135787 +disable_so_sq_page_table_addr_hi_iscsi_kwqe_conn_offload1_10520 sq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 10520 NULL
135788 +disable_so_phys_addr_nx_host_sds_ring_10525 phys_addr nx_host_sds_ring 0 10525 NULL nohasharray
135789 +disable_so_current_pixclock_sis_video_info_10525 current_pixclock sis_video_info 0 10525 &disable_so_phys_addr_nx_host_sds_ring_10525
135790 +disable_so_ccp_aes_crypt_fndecl_10531 ccp_aes_crypt fndecl 0 10531 NULL
135791 +disable_so_clock_speed_MGSL_PARAMS32_10537 clock_speed MGSL_PARAMS32 0 10537 NULL
135792 +disable_so_sense_paddr_gdth_cmndinfo_10539 sense_paddr gdth_cmndinfo 0 10539 NULL
135793 +disable_so_lasttime_batadv_bla_claim_10544 lasttime batadv_bla_claim 0 10544 NULL
135794 +disable_so_tv_sec_timespec_10551 tv_sec timespec 0 10551 NULL
135795 +disable_so_cmb_tx_timer_atl1_hw_10553 cmb_tx_timer atl1_hw 0 10553 NULL nohasharray
135796 +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
135797 +disable_so_xfs_btree_read_buf_block_fndecl_10555 xfs_btree_read_buf_block fndecl 0 10555 NULL
135798 +disable_so_hash_dx_hash_info_10563 hash dx_hash_info 0 10563 NULL
135799 +disable_so_be16_to_cpu_n_fndecl_10566 be16_to_cpu_n fndecl 3 10566 NULL nohasharray
135800 +disable_so_ip_vs_bind_scheduler_fndecl_10566 ip_vs_bind_scheduler fndecl 0 10566 &disable_so_be16_to_cpu_n_fndecl_10566
135801 +disable_so_di_ctime_gfs2_dinode_10570 di_ctime gfs2_dinode 0 10570 NULL
135802 +disable_so_adjust_tsc_offset_kvm_x86_ops_10575 adjust_tsc_offset kvm_x86_ops 2 10575 NULL
135803 +disable_so_num_timeout_request_sock_10577 num_timeout request_sock 0 10577 NULL
135804 +disable_so___const_udelay_fndecl_10578 __const_udelay fndecl 1 10578 NULL
135805 +disable_so_wsm_ba_timeout_indication_fndecl_10580 wsm_ba_timeout_indication fndecl 0 10580 NULL
135806 +disable_so_tsc_connect_fndecl_10581 tsc_connect fndecl 0 10581 NULL
135807 +disable_so_recover_ata_timing_10582 recover ata_timing 0 10582 NULL
135808 +disable_so_addr_sch56xx_watchdog_data_10589 addr sch56xx_watchdog_data 0 10589 NULL
135809 +disable_so_phys_proc_id_cpuinfo_x86_10590 phys_proc_id cpuinfo_x86 0 10590 NULL
135810 +disable_so_gtime_signal_struct_10597 gtime signal_struct 0 10597 NULL
135811 +disable_so_clk_radeon_clock_voltage_dependency_entry_10605 clk radeon_clock_voltage_dependency_entry 0 10605 NULL
135812 +disable_so___oprofile_hrtimer_stop_fndecl_10609 __oprofile_hrtimer_stop fndecl 1 10609 NULL
135813 +disable_so_psched_get_time_fndecl_10619 psched_get_time fndecl 0 10619 NULL
135814 +disable_so_min_sleep_time_f2fs_gc_kthread_10623 min_sleep_time f2fs_gc_kthread 0 10623 NULL
135815 +disable_so_runtime_cfs_bandwidth_10624 runtime cfs_bandwidth 0 10624 NULL
135816 +disable_so_parse_timing_property_fndecl_10626 parse_timing_property fndecl 0 10626 NULL
135817 +disable_so_scan_bitmap_block_fndecl_10627 scan_bitmap_block fndecl 0-2-4-6 10627 NULL
135818 +disable_so_e1000e_pm_runtime_resume_fndecl_10638 e1000e_pm_runtime_resume fndecl 0 10638 NULL
135819 +disable_so_spi_nor_read_dummy_cycles_fndecl_10639 spi_nor_read_dummy_cycles fndecl 0 10639 NULL nohasharray
135820 +disable_so_sha_finish_walk_fndecl_10639 sha_finish_walk fndecl 0 10639 &disable_so_spi_nor_read_dummy_cycles_fndecl_10639
135821 +disable_so_address_gsm_mux_10640 address gsm_mux 0 10640 NULL
135822 +disable_so__rtl92ee_phy_calculate_bit_shift_fndecl_10643 _rtl92ee_phy_calculate_bit_shift fndecl 0-1 10643 NULL
135823 +disable_so_lasttime_batadv_bla_backbone_gw_10651 lasttime batadv_bla_backbone_gw 0 10651 NULL
135824 +disable_so_addr___crb_10654 addr __crb 0 10654 NULL
135825 +disable_so_stv0297_set_tv_freq_fndecl_10665 stv0297_set_tv_freq fndecl 2 10665 NULL
135826 +disable_so_txlo_dma_addr_typhoon_10667 txlo_dma_addr typhoon 0 10667 NULL
135827 +disable_so_ip_vs_dh_hashkey_fndecl_10670 ip_vs_dh_hashkey fndecl 1 10670 NULL
135828 +disable_so_setup_clocks_ufs_hba_variant_ops_10681 setup_clocks ufs_hba_variant_ops 0 10681 NULL
135829 +disable_so_decode_attr_time_access_fndecl_10682 decode_attr_time_access fndecl 0 10682 NULL
135830 +disable_so_pci_back_from_sleep_fndecl_10685 pci_back_from_sleep fndecl 0 10685 NULL
135831 +disable_so_ath9k_hw_init_macaddr_fndecl_10686 ath9k_hw_init_macaddr fndecl 0 10686 NULL nohasharray
135832 +disable_so_dma_buffer_atmel_runtime_data_10686 dma_buffer atmel_runtime_data 0 10686 &disable_so_ath9k_hw_init_macaddr_fndecl_10686
135833 +disable_so_timer_resolution_snd_pcm_runtime_10688 timer_resolution snd_pcm_runtime 0 10688 NULL
135834 +disable_so_snd_pcm_hw_rule_mul_fndecl_10689 snd_pcm_hw_rule_mul fndecl 0 10689 NULL
135835 +disable_so_subdivision_snd_pcm_oss_runtime_10697 subdivision snd_pcm_oss_runtime 0 10697 NULL
135836 +disable_so_split_huge_page_address_fndecl_10699 split_huge_page_address fndecl 2 10699 NULL
135837 +disable_so_bound_dev_if_rdma_dev_addr_10707 bound_dev_if rdma_dev_addr 0 10707 NULL
135838 +disable_so_gyro_3d_adjust_channel_bit_mask_fndecl_10717 gyro_3d_adjust_channel_bit_mask fndecl 3 10717 NULL
135839 +disable_so_ahash_prepare_alg_fndecl_10721 ahash_prepare_alg fndecl 0 10721 NULL
135840 +disable_so_st_mtime_sec_p9_stat_dotl_10725 st_mtime_sec p9_stat_dotl 0 10725 NULL
135841 +disable_so_num_timings_display_timings_10728 num_timings display_timings 0 10728 NULL
135842 +disable_so_clock_rq_10733 clock rq 0 10733 NULL
135843 +disable_so_sys_signalfd_fndecl_10740 sys_signalfd fndecl 0 10740 NULL
135844 +disable_so_last_tick_time_esas2r_adapter_10742 last_tick_time esas2r_adapter 0 10742 NULL
135845 +disable_so_low_addr_msgbuf_buf_addr_10746 low_addr msgbuf_buf_addr 0 10746 NULL
135846 +disable_so_mlx4_ib_invalidate_all_guid_record_fndecl_10755 mlx4_ib_invalidate_all_guid_record fndecl 2 10755 NULL
135847 +disable_so_crypto_gcm_verify_fndecl_10762 crypto_gcm_verify fndecl 0 10762 NULL
135848 +disable_so_devt_from_partuuid_fndecl_10763 devt_from_partuuid fndecl 0 10763 NULL nohasharray
135849 +disable_so_demod_address_or51132_config_10763 demod_address or51132_config 0 10763 &disable_so_devt_from_partuuid_fndecl_10763
135850 +disable_so_rv770_program_interrupt_vectors_fndecl_10768 rv770_program_interrupt_vectors fndecl 0 10768 NULL
135851 +disable_so_i915_mutex_lock_interruptible_fndecl_10777 i915_mutex_lock_interruptible fndecl 0 10777 NULL
135852 +disable_so_addr_il3945_tfd_tb_10790 addr il3945_tfd_tb 0 10790 NULL
135853 +disable_so_pr_gid_elf_prpsinfo_10803 pr_gid elf_prpsinfo 0 10803 NULL
135854 +disable_so_ism2_runtime_sc_10805 ism2 runtime_sc 0 10805 NULL
135855 +disable_so_sumo_get_sleep_divider_id_from_clock_fndecl_10823 sumo_get_sleep_divider_id_from_clock fndecl 2-0 10823 NULL nohasharray
135856 +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
135857 +disable_so__mv88e6xxx_reg_write_fndecl_10825 _mv88e6xxx_reg_write fndecl 0-2-3-4 10825 NULL
135858 +disable_so_flush_timeout_ath_chanctx_10828 flush_timeout ath_chanctx 0 10828 NULL nohasharray
135859 +disable_so_rxaddr_starfire_rx_desc_10828 rxaddr starfire_rx_desc 0 10828 &disable_so_flush_timeout_ath_chanctx_10828 nohasharray
135860 +disable_so_nla_get_u64_fndecl_10828 nla_get_u64 fndecl 0 10828 &disable_so_rxaddr_starfire_rx_desc_10828
135861 +disable_so_r600_get_gpu_clock_counter_fndecl_10836 r600_get_gpu_clock_counter fndecl 0 10836 NULL
135862 +disable_so_sys_timer_settime_fndecl_10837 sys_timer_settime fndecl 1 10837 NULL
135863 +disable_so_cmp_next_hrtimer_event_fndecl_10846 cmp_next_hrtimer_event fndecl 0-1-2 10846 NULL
135864 +disable_so_ac97_clock_via82xx_10850 ac97_clock via82xx 0 10850 NULL
135865 +disable_so_ageing_timer_value___fdb_entry_10853 ageing_timer_value __fdb_entry 0 10853 NULL
135866 +disable_so_dv_timings_cap_v4l2_subdev_pad_ops_10860 dv_timings_cap v4l2_subdev_pad_ops 0 10860 NULL
135867 +disable_so_cpufreq_get_global_kobject_fndecl_10881 cpufreq_get_global_kobject fndecl 0 10881 NULL
135868 +disable_so_freq_ath5k_rate_pcal_info_10883 freq ath5k_rate_pcal_info 0 10883 NULL
135869 +disable_so_shm_ctime_shmid64_ds_10884 shm_ctime shmid64_ds 0 10884 NULL nohasharray
135870 +disable_so_mt2050_set_if_freq_fndecl_10884 mt2050_set_if_freq fndecl 2 10884 &disable_so_shm_ctime_shmid64_ds_10884
135871 +disable_so_d_itimer_xfs_disk_dquot_10893 d_itimer xfs_disk_dquot 0 10893 NULL nohasharray
135872 +disable_so_saddr_irda_sock_10893 saddr irda_sock 0 10893 &disable_so_d_itimer_xfs_disk_dquot_10893
135873 +disable_so_doorbell_preserve_vardecl_pcc_cpufreq_c_10898 doorbell_preserve vardecl_pcc-cpufreq.c 0 10898 NULL
135874 +disable_so_signal_nr_nvkm_perfdom_10899 signal_nr nvkm_perfdom 0 10899 NULL
135875 +disable_so_cg_spll_func_cntl_2_ni_clock_registers_10900 cg_spll_func_cntl_2 ni_clock_registers 0 10900 NULL
135876 +disable_so_ac_utime_acct_v3_10901 ac_utime acct_v3 0 10901 NULL
135877 +disable_so_mclk_prediv_cs42l56_private_10907 mclk_prediv cs42l56_private 0 10907 NULL
135878 +disable_so_SYSC_mq_timedreceive_fndecl_10921 SYSC_mq_timedreceive fndecl 1-3 10921 NULL
135879 +disable_so_vpm_write_address_fndecl_10930 vpm_write_address fndecl 2 10930 NULL
135880 +disable_so_i_iw_freq_10939 i iw_freq 0 10939 NULL nohasharray
135881 +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
135882 +disable_so_rv3029c2_i2c_read_time_fndecl_10942 rv3029c2_i2c_read_time fndecl 0 10942 NULL nohasharray
135883 +disable_so_txok_interrupt_mask_ath_hw_10942 txok_interrupt_mask ath_hw 0 10942 &disable_so_rv3029c2_i2c_read_time_fndecl_10942
135884 +disable_so_err_time_ip6_tnl_10945 err_time ip6_tnl 0 10945 NULL
135885 +disable_so_free_nodes_hfs_btree_10954 free_nodes hfs_btree 0 10954 NULL
135886 +disable_so_dwell_time_delta_per_probe_conf_sched_scan_settings_10955 dwell_time_delta_per_probe conf_sched_scan_settings 0 10955 NULL
135887 +disable_so_blkcipher_walk_virt_block_fndecl_10958 blkcipher_walk_virt_block fndecl 0-3 10958 NULL
135888 +disable_so_bnx2x_change_mac_addr_fndecl_10964 bnx2x_change_mac_addr fndecl 0 10964 NULL
135889 +disable_so_sh_tmu_clocksource_enable_fndecl_10968 sh_tmu_clocksource_enable fndecl 0 10968 NULL
135890 +disable_so_pdiv_b43_phy_lp_10974 pdiv b43_phy_lp 0 10974 NULL
135891 +disable_so_br2684_mac_addr_fndecl_10977 br2684_mac_addr fndecl 0 10977 NULL
135892 +disable_so___hrtimer_init_fndecl_10979 __hrtimer_init fndecl 2 10979 NULL
135893 +disable_so_cisco_timer_fndecl_10984 cisco_timer fndecl 1 10984 NULL
135894 +disable_so_desc_address_fndecl_10998 desc_address fndecl 2-3 10998 NULL
135895 +disable_so_padlock_sha256_update_nano_fndecl_11008 padlock_sha256_update_nano fndecl 3 11008 NULL
135896 +disable_so_end_addr_gen_pool_chunk_11013 end_addr gen_pool_chunk 0 11013 NULL
135897 +disable_so_bitmap_file_set_bit_fndecl_11015 bitmap_file_set_bit fndecl 2 11015 NULL
135898 +disable_so_em28xx_write_reg_fndecl_11020 em28xx_write_reg fndecl 2-0-3 11020 NULL
135899 +disable_so_ocfs2_info_freefrag_scan_bitmap_fndecl_11032 ocfs2_info_freefrag_scan_bitmap fndecl 0-3 11032 NULL
135900 +disable_so_xen_teardown_timer_fndecl_11036 xen_teardown_timer fndecl 1 11036 NULL
135901 +disable_so_get_physaddr_fm_api_fndecl_11037 get_physaddr_fm_api fndecl 0 11037 NULL
135902 +disable_so_nfs_direct_read_schedule_iovec_fndecl_11039 nfs_direct_read_schedule_iovec fndecl 0-3 11039 NULL
135903 +disable_so_ocfs2_group_bitmap_size_fndecl_11043 ocfs2_group_bitmap_size fndecl 0 11043 NULL
135904 +disable_so_hsw_pcm_runtime_suspend_fndecl_11046 hsw_pcm_runtime_suspend fndecl 0 11046 NULL
135905 +disable_so_bi_start_gfs2_bitmap_11049 bi_start gfs2_bitmap 0 11049 NULL
135906 +disable_so_src_addr_hi_dmae_command_11052 src_addr_hi dmae_command 0 11052 NULL
135907 +disable_so_lsb_bna_dma_addr_11059 lsb bna_dma_addr 0 11059 NULL
135908 +disable_so_cb_s5p_jpeg_addr_11062 cb s5p_jpeg_addr 0 11062 NULL
135909 +disable_so_plink_timeout_sta_info_11094 plink_timeout sta_info 0 11094 NULL
135910 +disable_so_crypto_blkcipher_set_iv_fndecl_11098 crypto_blkcipher_set_iv fndecl 3 11098 NULL
135911 +disable_so_custom_divisor_mxser_port_11109 custom_divisor mxser_port 0 11109 NULL
135912 +disable_so_raw_cell_paddr_idt77252_dev_11112 raw_cell_paddr idt77252_dev 0 11112 NULL
135913 +disable_so_acpi_lpss_runtime_suspend_fndecl_11116 acpi_lpss_runtime_suspend fndecl 0 11116 NULL nohasharray
135914 +disable_so_addr_creg_cmd_11116 addr creg_cmd 0 11116 &disable_so_acpi_lpss_runtime_suspend_fndecl_11116
135915 +disable_so_dev_type_rdma_dev_addr_11123 dev_type rdma_dev_addr 0 11123 NULL
135916 +disable_so_signal_hermes_rx_descriptor_11147 signal hermes_rx_descriptor 0 11147 NULL
135917 +disable_so_phys_addr_nx_host_rds_ring_11168 phys_addr nx_host_rds_ring 0 11168 NULL
135918 +disable_so_addr1_de_desc_11170 addr1 de_desc 0 11170 NULL nohasharray
135919 +disable_so_ci_populate_mc_reg_addresses_fndecl_11170 ci_populate_mc_reg_addresses fndecl 0 11170 &disable_so_addr1_de_desc_11170
135920 +disable_so_addr__ioeventfd_11180 addr _ioeventfd 0 11180 NULL
135921 +disable_so_vx_change_frequency_fndecl_11184 vx_change_frequency fndecl 0 11184 NULL
135922 +disable_so_unbind_from_irq_fndecl_11196 unbind_from_irq fndecl 1 11196 NULL
135923 +disable_so_wext_cipher2level_fndecl_11197 wext_cipher2level fndecl 1 11197 NULL
135924 +disable_so_demod_address_cx24117_priv_11199 demod_address cx24117_priv 0 11199 NULL
135925 +disable_so_local_pkt_addr_dle_11206 local_pkt_addr dle 0 11206 NULL
135926 +disable_so_timewarn_cs_write_fndecl_11208 timewarn_cs_write fndecl 3-0 11208 NULL nohasharray
135927 +disable_so_prescale__pll_div_11208 prescale _pll_div 0 11208 &disable_so_timewarn_cs_write_fndecl_11208
135928 +disable_so_i2400m_read_mac_addr_fndecl_11209 i2400m_read_mac_addr fndecl 0 11209 NULL
135929 +disable_so__drbd_bm_find_next_zero_fndecl_11228 _drbd_bm_find_next_zero fndecl 0-2 11228 NULL
135930 +disable_so_printfbuf_aac_init_11236 printfbuf aac_init 0 11236 NULL nohasharray
135931 +disable_so_crypto_ablkcipher_ctxsize_fndecl_11236 crypto_ablkcipher_ctxsize fndecl 0 11236 &disable_so_printfbuf_aac_init_11236
135932 +disable_so_k__pll_div_11239 k _pll_div 0 11239 NULL
135933 +disable_so_qdiv_ratio_skl_wrpll_params_11242 qdiv_ratio skl_wrpll_params 0 11242 NULL
135934 +disable_so_dma_addr___vxge_hw_fifo_txdl_priv_11244 dma_addr __vxge_hw_fifo_txdl_priv 0 11244 NULL
135935 +disable_so_urandom_read_fndecl_11245 urandom_read fndecl 0-3 11245 NULL
135936 +disable_so_crypto_notify_fndecl_11249 crypto_notify fndecl 1 11249 NULL
135937 +disable_so_sd_gid_stat_data_v1_11250 sd_gid stat_data_v1 0 11250 NULL
135938 +disable_so_xlog_find_cycle_start_fndecl_11263 xlog_find_cycle_start fndecl 0-3 11263 NULL
135939 +disable_so_unbind_from_irqhandler_fndecl_11274 unbind_from_irqhandler fndecl 1 11274 NULL
135940 +disable_so_ref_divider_panel_info_11279 ref_divider panel_info 0 11279 NULL nohasharray
135941 +disable_so_nfs_wait_bit_killable_fndecl_11279 nfs_wait_bit_killable fndecl 0 11279 &disable_so_ref_divider_panel_info_11279
135942 +disable_so_freq_p54_scan_head_11280 freq p54_scan_head 0 11280 NULL
135943 +disable_so_it_overrun_k_itimer_11284 it_overrun k_itimer 0 11284 NULL
135944 +disable_so_txbd_addr_lo_host_cmd_ds_pcie_details_11288 txbd_addr_lo host_cmd_ds_pcie_details 0 11288 NULL
135945 +disable_so_calc_baud_divisor_fndecl_11290 calc_baud_divisor fndecl 0-1 11290 NULL
135946 +disable_so_hash_net6_expire_fndecl_11296 hash_net6_expire fndecl 4 11296 NULL
135947 +disable_so_ax25_addr_build_fndecl_11299 ax25_addr_build fndecl 0 11299 NULL
135948 +disable_so_vnic_dev_del_addr_fndecl_11303 vnic_dev_del_addr fndecl 0 11303 NULL
135949 +disable_so_wrmsrl_safe_fndecl_11305 wrmsrl_safe fndecl 0-2 11305 NULL
135950 +disable_so_jiffies_last_vardecl_intel_powerclamp_c_11307 jiffies_last vardecl_intel_powerclamp.c 0 11307 NULL
135951 +disable_so_mmc_select_timing_fndecl_11311 mmc_select_timing fndecl 0 11311 NULL
135952 +disable_so_crypto_cbc_encrypt_inplace_fndecl_11315 crypto_cbc_encrypt_inplace fndecl 0 11315 NULL
135953 +disable_so_cma_translate_addr_fndecl_11326 cma_translate_addr fndecl 0 11326 NULL
135954 +disable_so_period_bytes_snd_pcm_oss_runtime_11332 period_bytes snd_pcm_oss_runtime 0 11332 NULL
135955 +disable_so_board_addr_ath6kl_hw_11334 board_addr ath6kl_hw 0 11334 NULL
135956 +disable_so_shash_ahash_mcryptd_digest_fndecl_11335 shash_ahash_mcryptd_digest fndecl 0 11335 NULL
135957 +disable_so_crypto_gcm_encrypt_fndecl_11338 crypto_gcm_encrypt fndecl 0 11338 NULL
135958 +disable_so_btrfs_wq_run_delayed_node_fndecl_11342 btrfs_wq_run_delayed_node fndecl 0 11342 NULL
135959 +disable_so_pch_udc_ep_bit_clr_fndecl_11345 pch_udc_ep_bit_clr fndecl 3 11345 NULL
135960 +disable_so_bin_uuid_fndecl_11348 bin_uuid fndecl 3-0 11348 NULL
135961 +disable_so_offset_to_bitmap_fndecl_11359 offset_to_bitmap fndecl 0-2 11359 NULL
135962 +disable_so_default_tv_freq_vardecl_pvrusb2_hdw_c_11362 default_tv_freq vardecl_pvrusb2-hdw.c 0 11362 NULL
135963 +disable_so_SiS_SetReg_fndecl_11366 SiS_SetReg fndecl 1-3 11366 NULL
135964 +disable_so_sec_btrfs_ioctl_timespec_11375 sec btrfs_ioctl_timespec 0 11375 NULL
135965 +disable_so_dn_nl_newaddr_fndecl_11380 dn_nl_newaddr fndecl 0 11380 NULL
135966 +disable_so_DAC1064_calcclock_fndecl_11385 DAC1064_calcclock fndecl 1-2 11385 NULL
135967 +disable_so_trinity_set_divider_value_fndecl_11387 trinity_set_divider_value fndecl 3 11387 NULL
135968 +disable_so_ac_utime_taskstats_11391 ac_utime taskstats 0 11391 NULL nohasharray
135969 +disable_so_zd_iowrite32_locked_fndecl_11391 zd_iowrite32_locked fndecl 0-2 11391 &disable_so_ac_utime_taskstats_11391
135970 +disable_so_crypto_rfc4309_setkey_fndecl_11398 crypto_rfc4309_setkey fndecl 0-3 11398 NULL
135971 +disable_so_lvb_igid_ocfs2_meta_lvb_11400 lvb_igid ocfs2_meta_lvb 0 11400 NULL nohasharray
135972 +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
135973 +disable_so_si_pmu_fast_pwrup_delay_fndecl_11409 si_pmu_fast_pwrup_delay fndecl 0 11409 NULL
135974 +disable_so_tps6586x_rtc_read_time_fndecl_11415 tps6586x_rtc_read_time fndecl 0 11415 NULL
135975 +disable_so_hash_rem_ccp_sha_req_ctx_11427 hash_rem ccp_sha_req_ctx 0 11427 NULL
135976 +disable_so_phys_addr_udc_11429 phys_addr udc 0 11429 NULL
135977 +disable_so_center_freq2_cfg80211_chan_def_11433 center_freq2 cfg80211_chan_def 0 11433 NULL
135978 +disable_so_lock_btree_op_11443 lock btree_op 0 11443 NULL
135979 +disable_so_freq_mt7601u_freq_cal_11461 freq mt7601u_freq_cal 0 11461 NULL
135980 +disable_so_pm860x_reg_write_fndecl_11462 pm860x_reg_write fndecl 0-2-3 11462 NULL
135981 +disable_so_crypto_hash_walk_first_fndecl_11464 crypto_hash_walk_first fndecl 0 11464 NULL
135982 +disable_so_mlx4_ib_init_alias_guid_work_fndecl_11465 mlx4_ib_init_alias_guid_work fndecl 2 11465 NULL
135983 +disable_so_uid_fuse_attr_11471 uid fuse_attr 0 11471 NULL nohasharray
135984 +disable_so_l2addrsize_fndecl_11471 l2addrsize fndecl 0 11471 &disable_so_uid_fuse_attr_11471
135985 +disable_so_snprintf_fndecl_11478 snprintf fndecl 0-2 11478 NULL
135986 +disable_so_ath9k_hw_set_ack_timeout_fndecl_11491 ath9k_hw_set_ack_timeout fndecl 2 11491 NULL
135987 +disable_so_eq_delay_to_mult_fndecl_11493 eq_delay_to_mult fndecl 0-1 11493 NULL
135988 +disable_so_bit_length_acpi_object_field_common_11503 bit_length acpi_object_field_common 0 11503 NULL
135989 +disable_so_di_mtime_qnx6_inode_entry_11506 di_mtime qnx6_inode_entry 0 11506 NULL
135990 +disable_so_prism54_set_freq_fndecl_11509 prism54_set_freq fndecl 0 11509 NULL
135991 +disable_so_resp_bd_list_addr_lo_bnx2i_text_request_11511 resp_bd_list_addr_lo bnx2i_text_request 0 11511 NULL
135992 +disable_so_gid_ipc64_perm_11519 gid ipc64_perm 0 11519 NULL
135993 +disable_so_offset_delta_bnx2x_func_set_timesync_params_11542 offset_delta bnx2x_func_set_timesync_params 0 11542 NULL
135994 +disable_so_local_clock_us_fndecl_11549 local_clock_us fndecl 0 11549 NULL
135995 +disable_so_seq_tnl_ptk_info_11554 seq tnl_ptk_info 0 11554 NULL
135996 +disable_so_carl9170_set_freq_cal_data_fndecl_11578 carl9170_set_freq_cal_data fndecl 0 11578 NULL
135997 +disable_so_pmcraid_enable_interrupts_fndecl_11580 pmcraid_enable_interrupts fndecl 2 11580 NULL nohasharray
135998 +disable_so_get_free_region_mtrr_ops_11580 get_free_region mtrr_ops 1-2 11580 &disable_so_pmcraid_enable_interrupts_fndecl_11580
135999 +disable_so_mclkdiv2_cs42l52_clk_para_11588 mclkdiv2 cs42l52_clk_para 0 11588 NULL
136000 +disable_so_secid_netlbl_unlhsh_addr6_11595 secid netlbl_unlhsh_addr6 0 11595 NULL
136001 +disable_so_opaque_hashval_fndecl_11605 opaque_hashval fndecl 2 11605 NULL
136002 +disable_so_bcma_chipco_watchdog_get_max_timer_fndecl_11606 bcma_chipco_watchdog_get_max_timer fndecl 0 11606 NULL
136003 +disable_so_security_settime_fndecl_11608 security_settime fndecl 0 11608 NULL
136004 +disable_so_hash_tomoyo_path_info_11611 hash tomoyo_path_info 0 11611 NULL
136005 +disable_so_sllc_family_sockaddr_llc_11612 sllc_family sockaddr_llc 0 11612 NULL
136006 +disable_so_get_physaddr_from_sgc_fndecl_11613 get_physaddr_from_sgc fndecl 0 11613 NULL
136007 +disable_so_compat_sock_get_timestampns_fndecl_11614 compat_sock_get_timestampns fndecl 0 11614 NULL
136008 +disable_so_div2_pll_div_11630 div2 pll_div 0 11630 NULL
136009 +disable_so_dot_gma_clock_t_11632 dot gma_clock_t 0 11632 NULL
136010 +disable_so_addr_smsc47b397_data_11633 addr smsc47b397_data 0 11633 NULL nohasharray
136011 +disable_so_cpufreq_power2state_fndecl_11633 cpufreq_power2state fndecl 3 11633 &disable_so_addr_smsc47b397_data_11633 nohasharray
136012 +disable_so_cia_setkey_cipher_alg_11633 cia_setkey cipher_alg 0-3 11633 &disable_so_cpufreq_power2state_fndecl_11633
136013 +disable_so_log2P_nvkm_pll_vals_11639 log2P nvkm_pll_vals 0 11639 NULL
136014 +disable_so_timeout_tipc_subscription_11656 timeout tipc_subscription 0 11656 NULL
136015 +disable_so_sem_addr_mm_dma_desc_11658 sem_addr mm_dma_desc 0 11658 NULL
136016 +disable_so_adis16334_get_freq_fndecl_11667 adis16334_get_freq fndecl 0 11667 NULL
136017 +disable_so_register_address_dif_settings_11668 register_address dif_settings 0 11668 NULL
136018 +disable_so_cpufreq_p4_get_frequency_fndecl_11672 cpufreq_p4_get_frequency fndecl 0 11672 NULL
136019 +disable_so_sysctl_tcp_keepalive_time_vardecl_11678 sysctl_tcp_keepalive_time vardecl 0 11678 NULL nohasharray
136020 +disable_so_paddr_rsq_info_11678 paddr rsq_info 0 11678 &disable_so_sysctl_tcp_keepalive_time_vardecl_11678
136021 +disable_so_gc_timer_show_fndecl_11691 gc_timer_show fndecl 0 11691 NULL
136022 +disable_so_udp6_portaddr_hash_fndecl_11698 udp6_portaddr_hash fndecl 0-3 11698 NULL
136023 +disable_so_ablkcipher_walk_done_fndecl_11708 ablkcipher_walk_done fndecl 0-3 11708 NULL
136024 +disable_so_ahci_exec_polled_cmd_fndecl_11713 ahci_exec_polled_cmd fndecl 6-2-5 11713 NULL
136025 +disable_so_fb_addr_drm_via_dmablit_11717 fb_addr drm_via_dmablit 0 11717 NULL
136026 +disable_so_pci_bus_cx23885_dev_11720 pci_bus cx23885_dev 0 11720 NULL
136027 +disable_so_spacing_v4l2_hw_freq_seek_11726 spacing v4l2_hw_freq_seek 0 11726 NULL
136028 +disable_so_ncp_obtain_mtime_fndecl_11732 ncp_obtain_mtime fndecl 0 11732 NULL
136029 +disable_so_timer_index_at_state_t_11751 timer_index at_state_t 0 11751 NULL nohasharray
136030 +disable_so_sctp_copy_laddrs_fndecl_11751 sctp_copy_laddrs fndecl 2-4 11751 &disable_so_timer_index_at_state_t_11751
136031 +disable_so_max_freq_omap_hsmmc_platform_data_11755 max_freq omap_hsmmc_platform_data 0 11755 NULL nohasharray
136032 +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
136033 +disable_so_iio_interrupt_trigger_driver_init_fndecl_11758 iio_interrupt_trigger_driver_init fndecl 0 11758 NULL nohasharray
136034 +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
136035 +disable_so_ps_upsd_timeouts_read_fndecl_11759 ps_upsd_timeouts_read fndecl 3-0 11759 NULL nohasharray
136036 +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
136037 +disable_so_nm_uid_nl_mmap_hdr_11761 nm_uid nl_mmap_hdr 0 11761 NULL
136038 +disable_so_s_wtime_ext3_super_block_11765 s_wtime ext3_super_block 0 11765 NULL
136039 +disable_so_gr_fhash_fndecl_11768 gr_fhash fndecl 1-2 11768 NULL
136040 +disable_so_orig_ax_pt_regs_11775 orig_ax pt_regs 0 11775 NULL
136041 +disable_so_validate_scan_freqs_fndecl_11781 validate_scan_freqs fndecl 0 11781 NULL
136042 +disable_so_sbq_addr_cqicb_11782 sbq_addr cqicb 0 11782 NULL nohasharray
136043 +disable_so_irq_i2c_client_11782 irq i2c_client 0 11782 &disable_so_sbq_addr_cqicb_11782
136044 +disable_so_ip_addr_rocker_neigh_tbl_entry_11785 ip_addr rocker_neigh_tbl_entry 0 11785 NULL
136045 +disable_so_timestamp_mwifiex_bssdescriptor_11788 timestamp mwifiex_bssdescriptor 0 11788 NULL
136046 +disable_so_bg_block_bitmap_ext3_group_desc_11791 bg_block_bitmap ext3_group_desc 0 11791 NULL
136047 +disable_so_crystal_freq_saa711x_state_11797 crystal_freq saa711x_state 0 11797 NULL
136048 +disable_so_dqb_itime_mem_dqblk_11799 dqb_itime mem_dqblk 0 11799 NULL nohasharray
136049 +disable_so_get_journal_hash_dev_fndecl_11799 get_journal_hash_dev fndecl 3 11799 &disable_so_dqb_itime_mem_dqblk_11799
136050 +disable_so_addr_domain_fndecl_11807 addr_domain fndecl 2 11807 NULL
136051 +disable_so_get_time_window_fndecl_11808 get_time_window fndecl 0 11808 NULL
136052 +disable_so_chargetime_isdn_net_local_s_11812 chargetime isdn_net_local_s 0 11812 NULL
136053 +disable_so_sched_clock_local_fndecl_11817 sched_clock_local fndecl 0 11817 NULL
136054 +disable_so_address_ehci_iso_stream_11822 address ehci_iso_stream 0 11822 NULL
136055 +disable_so_simple_strtoul_fndecl_11835 simple_strtoul fndecl 0 11835 NULL
136056 +disable_so_i9xx_get_aux_clock_divider_fndecl_11841 i9xx_get_aux_clock_divider fndecl 0 11841 NULL
136057 +disable_so_emulator_set_msr_fndecl_11853 emulator_set_msr fndecl 3 11853 NULL
136058 +disable_so_sst_module_runtime_alloc_blocks_fndecl_11854 sst_module_runtime_alloc_blocks fndecl 2-0 11854 NULL
136059 +disable_so_msr_sum_desc_11862 msr sum_desc 0 11862 NULL
136060 +disable_so_rs780_set_engine_clock_scaling_fndecl_11864 rs780_set_engine_clock_scaling fndecl 0 11864 NULL
136061 +disable_so_write_file_regidx_fndecl_11870 write_file_regidx fndecl 3 11870 NULL
136062 +disable_so_task_sched_runtime_fndecl_11884 task_sched_runtime fndecl 0 11884 NULL
136063 +disable_so_hash_dst_fndecl_11898 hash_dst fndecl 0 11898 NULL
136064 +disable_so_xtal_cap10p_r820t_freq_range_11904 xtal_cap10p r820t_freq_range 0 11904 NULL
136065 +disable_so_ath6kl_cfg80211_deepsleep_resume_fndecl_11915 ath6kl_cfg80211_deepsleep_resume fndecl 0 11915 NULL
136066 +disable_so_count_qce_sha_reqctx_11921 count qce_sha_reqctx 0 11921 NULL
136067 +disable_so_hashlimit_mt_init_fndecl_11925 hashlimit_mt_init fndecl 0 11925 NULL
136068 +disable_so_time_remaining_msec_TAG_TW_Lock_11931 time_remaining_msec TAG_TW_Lock 0 11931 NULL
136069 +disable_so_extcpu_mce_11945 extcpu mce 0 11945 NULL
136070 +disable_so_hci_bdaddr_list_add_fndecl_11954 hci_bdaddr_list_add fndecl 0 11954 NULL
136071 +disable_so_task_list_pbl_addr_hi_fcoe_kwqe_init1_11965 task_list_pbl_addr_hi fcoe_kwqe_init1 0 11965 NULL
136072 +disable_so_time_blocked_kvm_spinlock_stats_11970 time_blocked kvm_spinlock_stats 0 11970 NULL
136073 +disable_so_mapaddr_c2_element_11974 mapaddr c2_element 0 11974 NULL
136074 +disable_so_uwb_rc_mac_addr_show_fndecl_11979 uwb_rc_mac_addr_show fndecl 0 11979 NULL
136075 +disable_so_ccp_run_rsa_cmd_fndecl_11983 ccp_run_rsa_cmd fndecl 0 11983 NULL
136076 +disable_so_cc770_rtr_interrupt_fndecl_11989 cc770_rtr_interrupt fndecl 2 11989 NULL
136077 +disable_so_bitmap_create_fndecl_12000 bitmap_create fndecl 2 12000 NULL
136078 +disable_so_maximum_acpi_address64_attribute_12007 maximum acpi_address64_attribute 0 12007 NULL
136079 +disable_so_i2c_addr_stv090x_internal_12008 i2c_addr stv090x_internal 0 12008 NULL
136080 +disable_so_s_time_ptc_stats_12018 s_time ptc_stats 0 12018 NULL
136081 +disable_so_disc_timeout_hci_conn_12021 disc_timeout hci_conn 0 12021 NULL
136082 +disable_so_proc_dointvec_jiffies_fndecl_12024 proc_dointvec_jiffies fndecl 0 12024 NULL
136083 +disable_so_wm8350_wdt_set_timeout_fndecl_12039 wm8350_wdt_set_timeout fndecl 2-0 12039 NULL
136084 +disable_so_sys_geteuid16_fndecl_12045 sys_geteuid16 fndecl 0 12045 NULL
136085 +disable_so_parse_strtoull_fndecl_12065 parse_strtoull fndecl 0 12065 NULL
136086 +disable_so_bp_index_nilfs_btree_path_12067 bp_index nilfs_btree_path 0 12067 NULL
136087 +disable_so_max_signal_ieee80211_hw_12078 max_signal ieee80211_hw 0 12078 NULL
136088 +disable_so_rx_timeout_vardecl_men_z135_uart_c_12080 rx_timeout vardecl_men_z135_uart.c 0 12080 NULL
136089 +disable_so_sws_timer_config_nes_adapter_12081 sws_timer_config nes_adapter 0 12081 NULL
136090 +disable_so_ic_myaddr_vardecl_12088 ic_myaddr vardecl 0 12088 NULL
136091 +disable_so_bitmap_ord_to_pos_fndecl_12108 bitmap_ord_to_pos fndecl 3-0 12108 NULL
136092 +disable_so_debounce_jiffies_lp8727_chg_12115 debounce_jiffies lp8727_chg 0 12115 NULL
136093 +disable_so_hashval1_2_rx_pkt_hdr1_12125 hashval1_2 rx_pkt_hdr1 0 12125 NULL
136094 +disable_so_acpi_ut_divide_fndecl_12126 acpi_ut_divide fndecl 0-1-2 12126 NULL
136095 +disable_so_irst_store_wakeup_time_fndecl_12127 irst_store_wakeup_time fndecl 0-4 12127 NULL
136096 +disable_so_xfs_bmap_btree_to_extents_fndecl_12130 xfs_bmap_btree_to_extents fndecl 0 12130 NULL
136097 +disable_so_addrconf_notify_fndecl_12132 addrconf_notify fndecl 0 12132 NULL
136098 +disable_so_ath5k_beacon_update_timers_fndecl_12135 ath5k_beacon_update_timers fndecl 2 12135 NULL
136099 +disable_so_pid_pppol2tpv3in6_addr_12136 pid pppol2tpv3in6_addr 0 12136 NULL
136100 +disable_so__abb5zes3_rtc_set_timer_fndecl_12149 _abb5zes3_rtc_set_timer fndecl 0 12149 NULL
136101 +disable_so_remote_ca_guid_ib_cm_req_event_param_12150 remote_ca_guid ib_cm_req_event_param 0 12150 NULL
136102 +disable_so_grcan_reset_timer_fndecl_12158 grcan_reset_timer fndecl 2 12158 NULL
136103 +disable_so_sctp_sockaddr_af_fndecl_12166 sctp_sockaddr_af fndecl 3 12166 NULL
136104 +disable_so_di_ctime_efs_dinode_12170 di_ctime efs_dinode 0 12170 NULL
136105 +disable_so_bitmap_fill_fndecl_12173 bitmap_fill fndecl 2 12173 NULL
136106 +disable_so_clock_mga_i2c_chan_12185 clock mga_i2c_chan 0 12185 NULL
136107 +disable_so_physaddr_pau_fpdu_frag_12193 physaddr pau_fpdu_frag 0 12193 NULL
136108 +disable_so_adm9240_write_fan_div_fndecl_12196 adm9240_write_fan_div fndecl 3-2 12196 NULL
136109 +disable_so_addr_privcmd_mmapbatch_v2_12199 addr privcmd_mmapbatch_v2 0 12199 NULL
136110 +disable_so_start_freq_khz_ieee80211_freq_range_12202 start_freq_khz ieee80211_freq_range 0 12202 NULL nohasharray
136111 +disable_so_total_ablkcipher_walk_12202 total ablkcipher_walk 0 12202 &disable_so_start_freq_khz_ieee80211_freq_range_12202
136112 +disable_so_ktime_us_delta_fndecl_12204 ktime_us_delta fndecl 0 12204 NULL
136113 +disable_so_hmark_addr_mask_fndecl_12206 hmark_addr_mask fndecl 1 12206 NULL
136114 +disable_so_force_addr_vardecl_i2c_viapro_c_12216 force_addr vardecl_i2c-viapro.c 0 12216 NULL nohasharray
136115 +disable_so_next_hash_dir_private_info_12216 next_hash dir_private_info 0 12216 &disable_so_force_addr_vardecl_i2c_viapro_c_12216
136116 +disable_so_i40e_aq_mac_address_write_fndecl_12217 i40e_aq_mac_address_write fndecl 0 12217 NULL
136117 +disable_so_sys_set_tid_address_fndecl_12219 sys_set_tid_address fndecl 0 12219 NULL
136118 +disable_so_ebitmap_contains_fndecl_12231 ebitmap_contains fndecl 3 12231 NULL
136119 +disable_so_bfa_timer_begin_fndecl_12232 bfa_timer_begin fndecl 5 12232 NULL
136120 +disable_so_sst_hsw_dsp_runtime_resume_fndecl_12234 sst_hsw_dsp_runtime_resume fndecl 0 12234 NULL
136121 +disable_so_crypto_rfc4543_encrypt_fndecl_12243 crypto_rfc4543_encrypt fndecl 0 12243 NULL
136122 +disable_so_addr_ib_phys_buf_12245 addr ib_phys_buf 0 12245 NULL
136123 +disable_so_rhashtable_jhash2_fndecl_12249 rhashtable_jhash2 fndecl 0 12249 NULL
136124 +disable_so_highbit_ebitmap_12260 highbit ebitmap 0 12260 NULL
136125 +disable_so_btrfs_run_delayed_items_fndecl_12263 btrfs_run_delayed_items fndecl 0 12263 NULL
136126 +disable_so_security_task_setscheduler_fndecl_12267 security_task_setscheduler fndecl 0 12267 NULL
136127 +disable_so_sense_phys_addr_megasas_cmd_fusion_12272 sense_phys_addr megasas_cmd_fusion 0 12272 NULL
136128 +disable_so_devid_ptp_clock_12277 devid ptp_clock 0 12277 NULL
136129 +disable_so_pwwn_bfa_bsg_rport_scsi_addr_s_12278 pwwn bfa_bsg_rport_scsi_addr_s 0 12278 NULL nohasharray
136130 +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
136131 +disable_so_gid_ncp_mount_data_12282 gid ncp_mount_data 0 12282 NULL
136132 +disable_so_qla2x00_zio_timer_show_fndecl_12290 qla2x00_zio_timer_show fndecl 0 12290 NULL
136133 +disable_so_mlx4_hca_core_clock_update_fndecl_12300 mlx4_hca_core_clock_update fndecl 0 12300 NULL
136134 +disable_so_accel_3d_adjust_channel_bit_mask_fndecl_12308 accel_3d_adjust_channel_bit_mask fndecl 3 12308 NULL
136135 +disable_so_dtt200u_fe_sleep_fndecl_12311 dtt200u_fe_sleep fndecl 0 12311 NULL
136136 +disable_so_asix_read_phy_addr_fndecl_12320 asix_read_phy_addr fndecl 0 12320 NULL
136137 +disable_so_viafb_load_reg_fndecl_12323 viafb_load_reg fndecl 1 12323 NULL nohasharray
136138 +disable_so_bm_bits_drbd_bitmap_12323 bm_bits drbd_bitmap 0 12323 &disable_so_viafb_load_reg_fndecl_12323
136139 +disable_so_ixgbe_write_mc_addr_list_fndecl_12325 ixgbe_write_mc_addr_list fndecl 0 12325 NULL
136140 +disable_so_gid_max_xt_owner_match_info_12332 gid_max xt_owner_match_info 0 12332 NULL
136141 +disable_so_duty_cycle_pwm_device_12334 duty_cycle pwm_device 0 12334 NULL
136142 +disable_so_get_nohz_timer_target_fndecl_12336 get_nohz_timer_target fndecl 0 12336 NULL
136143 +disable_so_pte_encode_i915_address_space_12340 pte_encode i915_address_space 0-1 12340 NULL
136144 +disable_so_mdac_aic32x4_rate_divs_12367 mdac aic32x4_rate_divs 0 12367 NULL
136145 +disable_so_tipc_media_addr_printf_fndecl_12368 tipc_media_addr_printf fndecl 2 12368 NULL
136146 +disable_so_i_atime_ext3_inode_12370 i_atime ext3_inode 0 12370 NULL
136147 +disable_so_bitmap_ip_gc_test_fndecl_12372 bitmap_ip_gc_test fndecl 3 12372 NULL
136148 +disable_so_vlv_gpu_freq_div_fndecl_12377 vlv_gpu_freq_div fndecl 0 12377 NULL nohasharray
136149 +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
136150 +disable_so_schedule_hrtimeout_range_fndecl_12390 schedule_hrtimeout_range fndecl 2 12390 NULL
136151 +disable_so_btrfs_init_delayed_node_fndecl_12401 btrfs_init_delayed_node fndecl 3 12401 NULL
136152 +disable_so_connect_time_stamp_skd_device_12406 connect_time_stamp skd_device 0 12406 NULL
136153 +disable_so_gcm_hash_remain_fndecl_12408 gcm_hash_remain fndecl 0-2 12408 NULL
136154 +disable_so_kasprintf_fndecl_12414 kasprintf fndecl 1 12414 NULL
136155 +disable_so_iTCO_wdt_set_timeout_fndecl_12423 iTCO_wdt_set_timeout fndecl 2 12423 NULL
136156 +disable_so_queue_ixgbe_mac_addr_12436 queue ixgbe_mac_addr 0 12436 NULL
136157 +disable_so_i_atime_extra_ext4_inode_12438 i_atime_extra ext4_inode 0 12438 NULL
136158 +disable_so_bts_interrupt_threshold_debug_store_12439 bts_interrupt_threshold debug_store 0 12439 NULL
136159 +disable_so_erase_delay_vardecl_nandsim_c_12453 erase_delay vardecl_nandsim.c 0 12453 NULL
136160 +disable_so__rx_page_addr_iwl_host_cmd_12457 _rx_page_addr iwl_host_cmd 0 12457 NULL
136161 +disable_so_fandiv1_w83627ehf_data_12459 fandiv1 w83627ehf_data 0 12459 NULL
136162 +disable_so_affs_hash_name_fndecl_12465 affs_hash_name fndecl 0-3 12465 NULL
136163 +disable_so_timeout_tipc_subscr_12467 timeout tipc_subscr 0 12467 NULL
136164 +disable_so_decrypt_msdu_lib80211_crypto_ops_12475 decrypt_msdu lib80211_crypto_ops 3 12475 NULL
136165 +disable_so_ext4_read_block_bitmap_nowait_fndecl_12477 ext4_read_block_bitmap_nowait fndecl 2 12477 NULL
136166 +disable_so_i40e_rx_hash_fndecl_12482 i40e_rx_hash fndecl 0 12482 NULL
136167 +disable_so_padata_set_cpumasks_fndecl_12492 padata_set_cpumasks fndecl 0 12492 NULL
136168 +disable_so_dm_btree_empty_fndecl_12493 dm_btree_empty fndecl 0 12493 NULL
136169 +disable_so_nv_do_interrupt_fndecl_12501 nv_do_interrupt fndecl 2 12501 NULL
136170 +disable_so_max8997_set_voltage_buck_time_sel_fndecl_12503 max8997_set_voltage_buck_time_sel fndecl 0-2-3 12503 NULL
136171 +disable_so_div_factor_fine_fndecl_12505 div_factor_fine fndecl 0-1 12505 NULL
136172 +disable_so_r820t_sysfreq_sel_fndecl_12506 r820t_sysfreq_sel fndecl 0-2 12506 NULL
136173 +disable_so_msleep_xc2028_ctrl_12512 msleep xc2028_ctrl 0 12512 NULL nohasharray
136174 +disable_so_get_maxrecs_xfs_btree_ops_12512 get_maxrecs xfs_btree_ops 0 12512 &disable_so_msleep_xc2028_ctrl_12512
136175 +disable_so_test_rhashtable_fndecl_12513 test_rhashtable fndecl 0 12513 NULL
136176 +disable_so_i2c_address_mt2131_config_12514 i2c_address mt2131_config 0 12514 NULL
136177 +disable_so_rapl_compute_time_window_core_fndecl_12519 rapl_compute_time_window_core fndecl 0-2 12519 NULL
136178 +disable_so_mi1_wr_addr_fndecl_12527 mi1_wr_addr fndecl 0 12527 NULL nohasharray
136179 +disable_so_write_reg_fndecl_12527 write_reg fndecl 1 12527 &disable_so_mi1_wr_addr_fndecl_12527
136180 +disable_so_mce_adjust_timer_default_fndecl_12530 mce_adjust_timer_default fndecl 0-1 12530 NULL
136181 +disable_so_low_bkey_12536 low bkey 0 12536 NULL
136182 +disable_so_arcmsr_alloc_sysfs_attr_fndecl_12547 arcmsr_alloc_sysfs_attr fndecl 0 12547 NULL
136183 +disable_so_data_qxl_bitmap_12551 data qxl_bitmap 0 12551 NULL
136184 +disable_so_imsf_multiaddr_ip_msfilter_12556 imsf_multiaddr ip_msfilter 0 12556 NULL
136185 +disable_so_qa_indx_sdebug_hrtimer_12577 qa_indx sdebug_hrtimer 0 12577 NULL
136186 +disable_so_shash_compat_digest_fndecl_12579 shash_compat_digest fndecl 0-3 12579 NULL
136187 +disable_so_max8998_rtc_set_time_fndecl_12607 max8998_rtc_set_time fndecl 0 12607 NULL
136188 +disable_so_dib7000m_write_word_fndecl_12610 dib7000m_write_word fndecl 3 12610 NULL
136189 +disable_so_real_start_time_task_struct_12612 real_start_time task_struct 0 12612 NULL
136190 +disable_so_rhashtable_expand_fndecl_12634 rhashtable_expand fndecl 0 12634 NULL
136191 +disable_so_seq_cxgbi_skb_cb_12636 seq cxgbi_skb_cb 0 12636 NULL
136192 +disable_so_daddr_irnet_log_12640 daddr irnet_log 0 12640 NULL
136193 +disable_so_r8a66597_clock_enable_fndecl_12645 r8a66597_clock_enable fndecl 0 12645 NULL
136194 +disable_so_rsa_get_d_fndecl_12646 rsa_get_d fndecl 5 12646 NULL
136195 +disable_so_compat_sys_timer_gettime_fndecl_12649 compat_sys_timer_gettime fndecl 1 12649 NULL
136196 +disable_so_daddr_tcp4_pseudohdr_12650 daddr tcp4_pseudohdr 0 12650 NULL
136197 +disable_so_ccp_crypto_enqueue_cmd_fndecl_12657 ccp_crypto_enqueue_cmd fndecl 0 12657 NULL
136198 +disable_so_gm107_fan_pwm_clock_fndecl_12663 gm107_fan_pwm_clock fndecl 0 12663 NULL
136199 +disable_so_em_sti_clock_event_next_fndecl_12667 em_sti_clock_event_next fndecl 1 12667 NULL
136200 +disable_so___hash_conntrack_fndecl_12675 __hash_conntrack fndecl 0-3 12675 NULL
136201 +disable_so_nr_of_adrs_cmd_ds_mac_multicast_addr_12679 nr_of_adrs cmd_ds_mac_multicast_addr 0 12679 NULL
136202 +disable_so_mpihelp_mul_fndecl_12686 mpihelp_mul fndecl 3-5 12686 NULL
136203 +disable_so_retry_delay_timer_fcoe_fcp_rsp_payload_12692 retry_delay_timer fcoe_fcp_rsp_payload 0 12692 NULL
136204 +disable_so_b43_phy_write_fndecl_12694 b43_phy_write fndecl 2-3 12694 NULL
136205 +disable_so_ageing_time_tun_struct_12716 ageing_time tun_struct 0 12716 NULL nohasharray
136206 +disable_so_rx_delay_rk_priv_data_12716 rx_delay rk_priv_data 0 12716 &disable_so_ageing_time_tun_struct_12716
136207 +disable_so_dma_addr_rxbuff_ent_12717 dma_addr rxbuff_ent 0 12717 NULL
136208 +disable_so_swb_base_asd_ha_addrspace_12726 swb_base asd_ha_addrspace 0 12726 NULL
136209 +disable_so_set_voltage_time_sel_regulator_ops_12737 set_voltage_time_sel regulator_ops 0-2 12737 NULL nohasharray
136210 +disable_so_crypto_ecb_setkey_fndecl_12737 crypto_ecb_setkey fndecl 0-3 12737 &disable_so_set_voltage_time_sel_regulator_ops_12737
136211 +disable_so_width_clk_divider_12738 width clk_divider 0 12738 NULL
136212 +disable_so_mga_set_start_address_fndecl_12745 mga_set_start_address fndecl 2 12745 NULL
136213 +disable_so_last_timer_vardecl_tusb6010_c_12750 last_timer vardecl_tusb6010.c 0 12750 NULL
136214 +disable_so_jiffies_at_free_qla_tgt_cmd_12753 jiffies_at_free qla_tgt_cmd 0 12753 NULL nohasharray
136215 +disable_so_ufs_set_inode_uid_fndecl_12753 ufs_set_inode_uid fndecl 3 12753 &disable_so_jiffies_at_free_qla_tgt_cmd_12753
136216 +disable_so_ipv6_get_saddr_eval_fndecl_12754 ipv6_get_saddr_eval fndecl 0 12754 NULL
136217 +disable_so_bond_xmit_hash_fndecl_12757 bond_xmit_hash fndecl 0 12757 NULL
136218 +disable_so_freqm_snd_usb_endpoint_12761 freqm snd_usb_endpoint 0 12761 NULL
136219 +disable_so_mclkdiv_cs42l73_mclkx_div_12771 mclkdiv cs42l73_mclkx_div 0 12771 NULL
136220 +disable_so_slot_time_rtl8187_priv_12775 slot_time rtl8187_priv 0 12775 NULL
136221 +disable_so_mwifiex_auto_tdls_update_peer_signal_fndecl_12781 mwifiex_auto_tdls_update_peer_signal fndecl 3-4 12781 NULL
136222 +disable_so_channel_mwifiex_chan_freq_power_12794 channel mwifiex_chan_freq_power 0 12794 NULL
136223 +disable_so_pll_loopdiv_dib0090_io_config_12799 pll_loopdiv dib0090_io_config 0 12799 NULL nohasharray
136224 +disable_so_branch_addr_yellowfin_desc_12799 branch_addr yellowfin_desc 0 12799 &disable_so_pll_loopdiv_dib0090_io_config_12799
136225 +disable_so__kstrtoul_fndecl_12800 _kstrtoul fndecl 0 12800 NULL
136226 +disable_so_ns_to_timeval_fndecl_12804 ns_to_timeval fndecl 1 12804 NULL nohasharray
136227 +disable_so_enc_addr_high_sata_start_req_12804 enc_addr_high sata_start_req 0 12804 &disable_so_ns_to_timeval_fndecl_12804
136228 +disable_so_ftdi_232bm_baud_to_divisor_fndecl_12815 ftdi_232bm_baud_to_divisor fndecl 0-1 12815 NULL
136229 +disable_so_crypto_aead_setkey_fndecl_12818 crypto_aead_setkey fndecl 0-3 12818 NULL
136230 +disable_so_ufs_cpu_to_data_ptr_fndecl_12819 ufs_cpu_to_data_ptr fndecl 3 12819 NULL
136231 +disable_so_s35390a_rtc_read_time_fndecl_12823 s35390a_rtc_read_time fndecl 0 12823 NULL
136232 +disable_so_orinoco_ioctl_getfreq_fndecl_12824 orinoco_ioctl_getfreq fndecl 0 12824 NULL
136233 +disable_so_be_get_temp_freq_be_adapter_12832 be_get_temp_freq be_adapter 0 12832 NULL
136234 +disable_so_sha256_transform_asm_vardecl_sha256_ssse3_glue_c_12837 sha256_transform_asm vardecl_sha256_ssse3_glue.c 3 12837 NULL
136235 +disable_so_ubifs_leb_unmap_fndecl_12841 ubifs_leb_unmap fndecl 0-2 12841 NULL
136236 +disable_so_telclk_interrupt_vardecl_tlclk_c_12842 telclk_interrupt vardecl_tlclk.c 0 12842 NULL
136237 +disable_so_eax_tss_segment_32_12853 eax tss_segment_32 0 12853 NULL
136238 +disable_so_recover_ide_timing_12854 recover ide_timing 0 12854 NULL
136239 +disable_so_ima_calc_file_hash_fndecl_12858 ima_calc_file_hash fndecl 0 12858 NULL
136240 +disable_so_timestamp_inquiry_entry_12867 timestamp inquiry_entry 0 12867 NULL
136241 +disable_so_blk_post_runtime_suspend_fndecl_12869 blk_post_runtime_suspend fndecl 2 12869 NULL
136242 +disable_so_clocksource_register_khz_fndecl_12871 clocksource_register_khz fndecl 2 12871 NULL
136243 +disable_so___xfrm4_daddr_saddr_hash_fndecl_12875 __xfrm4_daddr_saddr_hash fndecl 0 12875 NULL
136244 +disable_so_calibrate_delay_converge_fndecl_12881 calibrate_delay_converge fndecl 0 12881 NULL
136245 +disable_so_cgroup_kn_set_ugid_fndecl_12885 cgroup_kn_set_ugid fndecl 0 12885 NULL
136246 +disable_so_bm_number_of_pages_drbd_bitmap_12889 bm_number_of_pages drbd_bitmap 0 12889 NULL
136247 +disable_so_blck_N_aic32x4_rate_divs_12896 blck_N aic32x4_rate_divs 0 12896 NULL
136248 +disable_so_delayacct_blkio_ticks_fndecl_12901 delayacct_blkio_ticks fndecl 0 12901 NULL
136249 +disable_so_sh_irda_set_timeout_fndecl_12902 sh_irda_set_timeout fndecl 2 12902 NULL
136250 +disable_so_bch_next_delay_fndecl_12906 bch_next_delay fndecl 0-2 12906 NULL
136251 +disable_so_address_lo_ht_irq_msg_12914 address_lo ht_irq_msg 0 12914 NULL
136252 +disable_so_cr_gsc_addr_12917 cr gsc_addr 0 12917 NULL nohasharray
136253 +disable_so_fmc_set_freq_fndecl_12917 fmc_set_freq fndecl 0-2 12917 &disable_so_cr_gsc_addr_12917
136254 +disable_so_s_wtime_nilfs_super_block_12947 s_wtime nilfs_super_block 0 12947 NULL
136255 +disable_so___pm_runtime_idle_fndecl_12950 __pm_runtime_idle fndecl 0 12950 NULL
136256 +disable_so_timeout_dvb_ca_slot_12955 timeout dvb_ca_slot 0 12955 NULL
136257 +disable_so_ktime_get_real_ns_fndecl_12957 ktime_get_real_ns fndecl 0 12957 NULL nohasharray
136258 +disable_so_read_temp_msr_fndecl_12957 read_temp_msr fndecl 0 12957 &disable_so_ktime_get_real_ns_fndecl_12957
136259 +disable_so_clock_get_k_clock_12965 clock_get k_clock 1 12965 NULL
136260 +disable_so_addr___cache_12967 addr __cache 0 12967 NULL
136261 +disable_so_dev_addr_mv_u3d_12969 dev_addr mv_u3d 0 12969 NULL
136262 +disable_so_xfrm6_input_addr_fndecl_12971 xfrm6_input_addr fndecl 4 12971 NULL
136263 +disable_so_rfcomm_dlc_set_timer_fndecl_12983 rfcomm_dlc_set_timer fndecl 2 12983 NULL
136264 +disable_so_short_addr_ieee802154_hw_addr_filt_12985 short_addr ieee802154_hw_addr_filt 0 12985 NULL
136265 +disable_so_base_addr_rdma_cq_setup_12989 base_addr rdma_cq_setup 0 12989 NULL
136266 +disable_so_rsp_q_phy_addr_ql3_adapter_12990 rsp_q_phy_addr ql3_adapter 0 12990 NULL
136267 +disable_so_cc770_status_interrupt_fndecl_12992 cc770_status_interrupt fndecl 0 12992 NULL
136268 +disable_so_tx_addr_uart_8250_dma_12997 tx_addr uart_8250_dma 0 12997 NULL
136269 +disable_so_cur_delay_intel_ilk_power_mgmt_13003 cur_delay intel_ilk_power_mgmt 0 13003 NULL
136270 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data_13008 gateway_cmd_addr wil_fw_record_gateway_data 0 13008 NULL
136271 +disable_so_wq_cpumask_show_fndecl_13018 wq_cpumask_show fndecl 0 13018 NULL
136272 +disable_so_hash_index_fndecl_13050 hash_index fndecl 0-1-2 13050 NULL
136273 +disable_so_qs6612_ack_interrupt_fndecl_13054 qs6612_ack_interrupt fndecl 0 13054 NULL
136274 +disable_so_dst_addr_ioat_dma_descriptor_13055 dst_addr ioat_dma_descriptor 0 13055 NULL
136275 +disable_so_qce_ablkcipher_encrypt_fndecl_13064 qce_ablkcipher_encrypt fndecl 0 13064 NULL
136276 +disable_so_cra_alignmask_crypto_alg_13076 cra_alignmask crypto_alg 0 13076 NULL
136277 +disable_so_rx_busy_ath_cycle_counters_13078 rx_busy ath_cycle_counters 0 13078 NULL
136278 +disable_so_dummy_hrtimer_pointer_fndecl_13080 dummy_hrtimer_pointer fndecl 0 13080 NULL nohasharray
136279 +disable_so_freq_carl9170_rf_init_13080 freq carl9170_rf_init 0 13080 &disable_so_dummy_hrtimer_pointer_fndecl_13080
136280 +disable_so_host_addr_mei_hbm_cl_cmd_13107 host_addr mei_hbm_cl_cmd 0 13107 NULL nohasharray
136281 +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
136282 +disable_so_da9063_rtc_read_time_fndecl_13117 da9063_rtc_read_time fndecl 0 13117 NULL
136283 +disable_so_ext4_validate_block_bitmap_fndecl_13120 ext4_validate_block_bitmap fndecl 3 13120 NULL
136284 +disable_so_adp8870_write_fndecl_13121 adp8870_write fndecl 0-2-3 13121 NULL
136285 +disable_so_clock_set_k_clock_13122 clock_set k_clock 1 13122 NULL nohasharray
136286 +disable_so_check_clock_fndecl_13122 check_clock fndecl 1 13122 &disable_so_clock_set_k_clock_13122
136287 +disable_so_addr_wil6210_mbox_ring_desc_13127 addr wil6210_mbox_ring_desc 0 13127 NULL
136288 +disable_so_stats_time_fnic_13131 stats_time fnic 0 13131 NULL
136289 +disable_so_brcms_add_timer_fndecl_13133 brcms_add_timer fndecl 2 13133 NULL
136290 +disable_so_r6a_val_fc2580_freq_regs_13136 r6a_val fc2580_freq_regs 0 13136 NULL
136291 +disable_so_enabled_otg_timer_bits_ci_hdrc_13140 enabled_otg_timer_bits ci_hdrc 0 13140 NULL
136292 +disable_so_atp867x_get_recover_clocks_shifted_fndecl_13150 atp867x_get_recover_clocks_shifted fndecl 0-1 13150 NULL
136293 +disable_so_timeout_nf_ct_gre_13156 timeout nf_ct_gre 0 13156 NULL
136294 +disable_so_snd_fm801_interrupt_fndecl_13162 snd_fm801_interrupt fndecl 1 13162 NULL
136295 +disable_so_afs_server_timeout_vardecl_server_c_13168 afs_server_timeout vardecl_server.c 0 13168 NULL
136296 +disable_so_wm8974_set_dai_clkdiv_fndecl_13171 wm8974_set_dai_clkdiv fndecl 3 13171 NULL
136297 +disable_so_ipw_send_adapter_address_fndecl_13183 ipw_send_adapter_address fndecl 0 13183 NULL
136298 +disable_so_crypto_fpu_encrypt_fndecl_13188 crypto_fpu_encrypt fndecl 0-4 13188 NULL
136299 +disable_so_blockno2iaddr_fndecl_13194 blockno2iaddr fndecl 2 13194 NULL
136300 +disable_so_s_addr_per_block_bits_ext2_sb_info_13196 s_addr_per_block_bits ext2_sb_info 0 13196 NULL
136301 +disable_so_mac_time_rtl8187_rx_hdr_13204 mac_time rtl8187_rx_hdr 0 13204 NULL
136302 +disable_so_efx_phc_gettime_fndecl_13210 efx_phc_gettime fndecl 0 13210 NULL nohasharray
136303 +disable_so_freq_fm_rx_13210 freq fm_rx 0 13210 &disable_so_efx_phc_gettime_fndecl_13210
136304 +disable_so_set_fan1_div_fndecl_13214 set_fan1_div fndecl 0-4 13214 NULL
136305 +disable_so_kstrtos16_from_user_fndecl_13215 kstrtos16_from_user fndecl 2 13215 NULL
136306 +disable_so_timer_int_req_nes_adapter_13220 timer_int_req nes_adapter 0 13220 NULL nohasharray
136307 +disable_so_raddr_rdma_iu_13220 raddr rdma_iu 0 13220 &disable_so_timer_int_req_nes_adapter_13220
136308 +disable_so_calibrate_delay_direct_fndecl_13221 calibrate_delay_direct fndecl 0 13221 NULL
136309 +disable_so_il_scan_cancel_timeout_fndecl_13227 il_scan_cancel_timeout fndecl 2 13227 NULL
136310 +disable_so_di_uid_gfs2_dinode_13234 di_uid gfs2_dinode 0 13234 NULL
136311 +disable_so_globaltxtimeout_ath_hw_13238 globaltxtimeout ath_hw 0 13238 NULL
136312 +disable_so_handle_new_msr_fndecl_13247 handle_new_msr fndecl 2 13247 NULL
136313 +disable_so_efx_ef10_get_mac_address_fndecl_13249 efx_ef10_get_mac_address fndecl 0 13249 NULL
136314 +disable_so_i_atime_exofs_fcb_13250 i_atime exofs_fcb 0 13250 NULL
136315 +disable_so_dwell_time_active_wmi_start_scan_arg_13251 dwell_time_active wmi_start_scan_arg 0 13251 NULL
136316 +disable_so_SYSC_signalfd_fndecl_13255 SYSC_signalfd fndecl 0 13255 NULL
136317 +disable_so_ipv4addr_iscsi_ipv4addr_13263 ipv4addr iscsi_ipv4addr 0 13263 NULL
136318 +disable_so_nilfs_btree_prepare_update_v_fndecl_13265 nilfs_btree_prepare_update_v fndecl 0 13265 NULL
136319 +disable_so_timer_in_use_max_nes_hw_tune_timer_13266 timer_in_use_max nes_hw_tune_timer 0 13266 NULL nohasharray
136320 +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
136321 +disable_so_xgmac_interrupt_fndecl_13268 xgmac_interrupt fndecl 1 13268 NULL
136322 +disable_so_radio_s_hw_freq_seek_fndecl_13308 radio_s_hw_freq_seek fndecl 0 13308 NULL nohasharray
136323 +disable_so_apei_read_mce_fndecl_13308 apei_read_mce fndecl 0 13308 &disable_so_radio_s_hw_freq_seek_fndecl_13308
136324 +disable_so_clear_tasks_mm_cpumask_fndecl_13309 clear_tasks_mm_cpumask fndecl 1 13309 NULL
136325 +disable_so_bmsr_e1000_phy_regs_13313 bmsr e1000_phy_regs 0 13313 NULL
136326 +disable_so_mcryptd_hash_digest_fndecl_13325 mcryptd_hash_digest fndecl 2 13325 NULL
136327 +disable_so_cpumask_set_cpu_fndecl_13326 cpumask_set_cpu fndecl 1 13326 NULL
136328 +disable_so_ipath_unmasktime_ipath_devdata_13342 ipath_unmasktime ipath_devdata 0 13342 NULL
136329 +disable_so_interruptjiffies_vardecl_floppy_c_13345 interruptjiffies vardecl_floppy.c 0 13345 NULL
136330 +disable_so_remove_from_bitmap_fndecl_13352 remove_from_bitmap fndecl 0 13352 NULL
136331 +disable_so_sst_wait_timeout_fndecl_13353 sst_wait_timeout fndecl 0 13353 NULL nohasharray
136332 +disable_so_last_timeout_arcnet_local_13353 last_timeout arcnet_local 0 13353 &disable_so_sst_wait_timeout_fndecl_13353 nohasharray
136333 +disable_so_cfg_table_bus_addr_pmcraid_instance_13353 cfg_table_bus_addr pmcraid_instance 0 13353 &disable_so_last_timeout_arcnet_local_13353
136334 +disable_so_mtime_vardecl_initramfs_c_13365 mtime vardecl_initramfs.c 0 13365 NULL
136335 +disable_so_ds3232_read_time_fndecl_13366 ds3232_read_time fndecl 0 13366 NULL nohasharray
136336 +disable_so_addr_bcma_device_13366 addr bcma_device 0 13366 &disable_so_ds3232_read_time_fndecl_13366
136337 +disable_so_dma_addr_drv_ctl_io_13371 dma_addr drv_ctl_io 0 13371 NULL
136338 +disable_so_crypto_check_alg_fndecl_13376 crypto_check_alg fndecl 0 13376 NULL
136339 +disable_so_drbd_adm_get_timeout_type_fndecl_13391 drbd_adm_get_timeout_type fndecl 0 13391 NULL
136340 +disable_so_hpi_silence_detector_set_delay_fndecl_13393 hpi_silence_detector_set_delay fndecl 0-1 13393 NULL
136341 +disable_so__get_table_div_fndecl_13398 _get_table_div fndecl 0-2 13398 NULL
136342 +disable_so_backtrace_address_fndecl_13401 backtrace_address fndecl 2 13401 NULL
136343 +disable_so_ax25_addr_parse_fndecl_13402 ax25_addr_parse fndecl 2 13402 NULL
136344 +disable_so_ath5k_hw_ani_get_listen_time_fndecl_13417 ath5k_hw_ani_get_listen_time fndecl 0 13417 NULL nohasharray
136345 +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
136346 +disable_so_cpufreq_stats_free_table_fndecl_13437 cpufreq_stats_free_table fndecl 1 13437 NULL
136347 +disable_so_eft_addr_l_qla2xxx_fw_dump_13450 eft_addr_l qla2xxx_fw_dump 0 13450 NULL
136348 +disable_so_cit_write_reg_fndecl_13451 cit_write_reg fndecl 2 13451 NULL
136349 +disable_so_chash_f2fs_inode_info_13456 chash f2fs_inode_info 0 13456 NULL
136350 +disable_so_vblank_lo_oaktrail_timing_info_13463 vblank_lo oaktrail_timing_info 0 13463 NULL
136351 +disable_so_rtl8139_interrupt_fndecl_13468 rtl8139_interrupt fndecl 1 13468 NULL
136352 +disable_so_start_time_dm_io_13470 start_time dm_io 0 13470 NULL
136353 +disable_so_mt2032_set_if_freq_fndecl_13473 mt2032_set_if_freq fndecl 2-3-4 13473 NULL
136354 +disable_so_demod_address_cx24110_config_13476 demod_address cx24110_config 0 13476 NULL
136355 +disable_so_atime_tcs3472_data_13482 atime tcs3472_data 0 13482 NULL
136356 +disable_so_div_ratio_fndecl_13491 div_ratio fndecl 0-2-1 13491 NULL
136357 +disable_so_seq_xfrm_state_walk_13498 seq xfrm_state_walk 0 13498 NULL
136358 +disable_so_qdisc_class_hash_init_fndecl_13502 qdisc_class_hash_init fndecl 0 13502 NULL
136359 +disable_so_sha256_generic_block_fn_fndecl_13506 sha256_generic_block_fn fndecl 3 13506 NULL
136360 +disable_so_find_first_bit_fndecl_13507 find_first_bit fndecl 0-2 13507 NULL
136361 +disable_so_idle_timeout_clip_vcc_13512 idle_timeout clip_vcc 0 13512 NULL nohasharray
136362 +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
136363 +disable_so_bond_time_in_interval_fndecl_13516 bond_time_in_interval fndecl 2 13516 NULL nohasharray
136364 +disable_so_nv04_timer_init_fndecl_13516 nv04_timer_init fndecl 0 13516 &disable_so_bond_time_in_interval_fndecl_13516
136365 +disable_so_paravirt_read_msr_fndecl_13526 paravirt_read_msr fndecl 0-1 13526 NULL
136366 +disable_so_dram_offset_sst_addr_13528 dram_offset sst_addr 0 13528 NULL
136367 +disable_so_em_sti_clocksource_enable_fndecl_13530 em_sti_clocksource_enable fndecl 0 13530 NULL
136368 +disable_so_timestamp_ieee80211_tdls_ch_sw_params_13545 timestamp ieee80211_tdls_ch_sw_params 0 13545 NULL
136369 +disable_so_post_divider_rv6xx_sclk_stepping_13551 post_divider rv6xx_sclk_stepping 0 13551 NULL nohasharray
136370 +disable_so_center_freq_ieee80211_channel_13551 center_freq ieee80211_channel 0 13551 &disable_so_post_divider_rv6xx_sclk_stepping_13551
136371 +disable_so_port_rcvhdrqtailaddr_phys_ipath_portdata_13553 port_rcvhdrqtailaddr_phys ipath_portdata 0 13553 NULL
136372 +disable_so_acpi_check_address_range_fndecl_13569 acpi_check_address_range fndecl 1-2-3 13569 NULL
136373 +disable_so_time_mt_init_fndecl_13576 time_mt_init fndecl 0 13576 NULL
136374 +disable_so_blkcipher_done_fast_fndecl_13584 blkcipher_done_fast fndecl 0-2 13584 NULL
136375 +disable_so_phys_addr_mpi_mem_13591 phys_addr mpi_mem 0 13591 NULL nohasharray
136376 +disable_so_timeout_p9_trans_rdma_13591 timeout p9_trans_rdma 0 13591 &disable_so_phys_addr_mpi_mem_13591 nohasharray
136377 +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
136378 +disable_so_c_can_set_bittiming_fndecl_13601 c_can_set_bittiming fndecl 0 13601 NULL
136379 +disable_so_crypto_ccm_module_init_fndecl_13609 crypto_ccm_module_init fndecl 0 13609 NULL
136380 +disable_so_addr_hi_eth_tx_next_bd_13611 addr_hi eth_tx_next_bd 0 13611 NULL
136381 +disable_so_addr_hi_cmdQ_e_13613 addr_hi cmdQ_e 0 13613 NULL
136382 +disable_so_min_keysize_crypto_report_cipher_13617 min_keysize crypto_report_cipher 0 13617 NULL
136383 +disable_so_seq_printf_with_thousands_grouping_fndecl_13628 seq_printf_with_thousands_grouping fndecl 2 13628 NULL
136384 +disable_so_cpuidle_init_fndecl_13639 cpuidle_init fndecl 0 13639 NULL
136385 +disable_so_period_ksz_timer_info_13641 period ksz_timer_info 0 13641 NULL
136386 +disable_so_vx_modify_board_clock_fndecl_13669 vx_modify_board_clock fndecl 0 13669 NULL
136387 +disable_so_cmd_box_addr_wl1251_13673 cmd_box_addr wl1251 0 13673 NULL
136388 +disable_so_demod_address_va1j5jf8007s_config_13675 demod_address va1j5jf8007s_config 0 13675 NULL
136389 +disable_so_timestamp_unavailable_nfs4_deviceid_node_13676 timestamp_unavailable nfs4_deviceid_node 0 13676 NULL nohasharray
136390 +disable_so_len_in_mceusb_dev_13676 len_in mceusb_dev 0 13676 &disable_so_timestamp_unavailable_nfs4_deviceid_node_13676
136391 +disable_so_di_uid_efs_dinode_13682 di_uid efs_dinode 0 13682 NULL
136392 +disable_so_aty_ld_le32_fndecl_13683 aty_ld_le32 fndecl 0 13683 NULL
136393 +disable_so_freqValRadio_pvr2_hdw_13684 freqValRadio pvr2_hdw 0 13684 NULL
136394 +disable_so_fd_pppol2tp_addr_13691 fd pppol2tp_addr 0 13691 NULL
136395 +disable_so_ver_total_via_display_timing_13695 ver_total via_display_timing 0 13695 NULL
136396 +disable_so_wait_on_bit_action_fndecl_13700 wait_on_bit_action fndecl 0 13700 NULL
136397 +disable_so_prandom_seed_state_fndecl_13705 prandom_seed_state fndecl 2 13705 NULL
136398 +disable_so_br_set_hello_time_fndecl_13706 br_set_hello_time fndecl 2-0 13706 NULL
136399 +disable_so_servaddr_vardecl_nfsroot_c_13709 servaddr vardecl_nfsroot.c 0 13709 NULL
136400 +disable_so_pci_bus_read_config_byte_fndecl_13716 pci_bus_read_config_byte fndecl 0-2-3 13716 NULL
136401 +disable_so_cipher_blocksize_blkcipher_walk_13719 cipher_blocksize blkcipher_walk 0 13719 NULL
136402 +disable_so_isdn_divert_read_fndecl_13720 isdn_divert_read fndecl 0 13720 NULL
136403 +disable_so_sys_getegid16_fndecl_13732 sys_getegid16 fndecl 0 13732 NULL
136404 +disable_so_turnaround_delay_fndecl_13736 turnaround_delay fndecl 2 13736 NULL nohasharray
136405 +disable_so_ft_min_img_ir_free_timing_13736 ft_min img_ir_free_timing 0 13736 &disable_so_turnaround_delay_fndecl_13736
136406 +disable_so_addr_1_qla8044_minidump_entry_rdmdio_13738 addr_1 qla8044_minidump_entry_rdmdio 0 13738 NULL nohasharray
136407 +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
136408 +disable_so_ext4fs_dirhash_fndecl_13754 ext4fs_dirhash fndecl 2 13754 NULL
136409 +disable_so_mpll_func_cntl_2_ci_clock_registers_13768 mpll_func_cntl_2 ci_clock_registers 0 13768 NULL
136410 +disable_so_update_ts_time_stats_fndecl_13777 update_ts_time_stats fndecl 1 13777 NULL
136411 +disable_so_adv_smbus_write_byte_data_fndecl_13784 adv_smbus_write_byte_data fndecl 0-3-2-4 13784 NULL
136412 +disable_so_tg3_nvram_read_be32_fndecl_13791 tg3_nvram_read_be32 fndecl 0-2 13791 NULL
136413 +disable_so_ftdi_232bm_baud_base_to_divisor_fndecl_13805 ftdi_232bm_baud_base_to_divisor fndecl 0-1-2 13805 NULL nohasharray
136414 +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
136415 +disable_so_mtimensec_fuse_setattr_in_13811 mtimensec fuse_setattr_in 0 13811 NULL
136416 +disable_so_stime_task_cputime_13814 stime task_cputime 0 13814 NULL
136417 +disable_so_update_rq_clock_task_fndecl_13818 update_rq_clock_task fndecl 2 13818 NULL
136418 +disable_so_first_pending_disptime_throtl_service_queue_13825 first_pending_disptime throtl_service_queue 0 13825 NULL
136419 +disable_so_zalloc_cpumask_var_node_fndecl_13830 zalloc_cpumask_var_node fndecl 2-3 13830 NULL
136420 +disable_so_s_last_error_time_ext4_super_block_13833 s_last_error_time ext4_super_block 0 13833 NULL
136421 +disable_so_ksz_start_timer_fndecl_13834 ksz_start_timer fndecl 2 13834 NULL nohasharray
136422 +disable_so_uwb_rc_mac_addr_get_fndecl_13834 uwb_rc_mac_addr_get fndecl 0 13834 &disable_so_ksz_start_timer_fndecl_13834
136423 +disable_so_last_jiffies_loopback_pcm_13838 last_jiffies loopback_pcm 0 13838 NULL
136424 +disable_so_devm_free_irq_fndecl_13839 devm_free_irq fndecl 2 13839 NULL
136425 +disable_so_wlcore_irq_locked_fndecl_13846 wlcore_irq_locked fndecl 0 13846 NULL
136426 +disable_so_hpet_reserve_platform_timers_fndecl_13848 hpet_reserve_platform_timers fndecl 1 13848 NULL
136427 +disable_so_drm_legacy_ctxbitmap_next_fndecl_13853 drm_legacy_ctxbitmap_next fndecl 0 13853 NULL
136428 +disable_so_addr_hi_sdhci_adma2_64_desc_13867 addr_hi sdhci_adma2_64_desc 0 13867 NULL nohasharray
136429 +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
136430 +disable_so_ktime_to_us_fndecl_13868 ktime_to_us fndecl 0 13868 NULL nohasharray
136431 +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
136432 +disable_so_smack_task_setpgid_fndecl_13869 smack_task_setpgid fndecl 0 13869 NULL
136433 +disable_so_payload_addr_vpdma_cfd_13876 payload_addr vpdma_cfd 0 13876 NULL
136434 +disable_so_chgfreq_cs42l73_platform_data_13884 chgfreq cs42l73_platform_data 0 13884 NULL
136435 +disable_so_interrupt_page_vmbus_channel_initiate_contact_13895 interrupt_page vmbus_channel_initiate_contact 0 13895 NULL
136436 +disable_so_ptrace_set_breakpoint_addr_fndecl_13901 ptrace_set_breakpoint_addr fndecl 0-2-3 13901 NULL nohasharray
136437 +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
136438 +disable_so_mcryptd_hash_setkey_fndecl_13926 mcryptd_hash_setkey fndecl 0-3 13926 NULL
136439 +disable_so_put_unaligned_be64_fndecl_13929 put_unaligned_be64 fndecl 1 13929 NULL
136440 +disable_so_voldelay_soundfont_voice_parm_13931 voldelay soundfont_voice_parm 0 13931 NULL
136441 +disable_so_addr_high_lancer_cmd_req_read_object_13932 addr_high lancer_cmd_req_read_object 0 13932 NULL
136442 +disable_so_src_addr_rds_info_rdma_connection_13938 src_addr rds_info_rdma_connection 0 13938 NULL
136443 +disable_so_rs780_force_fbdiv_fndecl_13945 rs780_force_fbdiv fndecl 2 13945 NULL
136444 +disable_so_xfs_btree_key_offset_fndecl_13946 xfs_btree_key_offset fndecl 0-2 13946 NULL nohasharray
136445 +disable_so_cryptd_hash_init_enqueue_fndecl_13946 cryptd_hash_init_enqueue fndecl 0 13946 &disable_so_xfs_btree_key_offset_fndecl_13946
136446 +disable_so_from_addr_param_sctp_af_13948 from_addr_param sctp_af 3 13948 NULL
136447 +disable_so_ept_walk_addr_generic_fndecl_13950 ept_walk_addr_generic fndecl 4-5 13950 NULL
136448 +disable_so_cpu_timer_list_iter_13954 cpu timer_list_iter 0 13954 NULL nohasharray
136449 +disable_so_iowrite16_fndecl_13954 iowrite16 fndecl 1 13954 &disable_so_cpu_timer_list_iter_13954
136450 +disable_so_do_utime_fndecl_13972 do_utime fndecl 2-0 13972 NULL
136451 +disable_so_base_addr_cx18_13974 base_addr cx18 0 13974 NULL
136452 +disable_so_rtpm_suspended_time_show_fndecl_13986 rtpm_suspended_time_show fndecl 0 13986 NULL
136453 +disable_so_ctime_fuse_setattr_in_13994 ctime fuse_setattr_in 0 13994 NULL
136454 +disable_so__rtl92ce_signal_scale_mapping_fndecl_14005 _rtl92ce_signal_scale_mapping fndecl 0-2 14005 NULL
136455 +disable_so_base_address_kvm_ioapic_14007 base_address kvm_ioapic 0 14007 NULL
136456 +disable_so_addr_hi_tx_desc_14014 addr_hi tx_desc 0 14014 NULL
136457 +disable_so_db_page_addr_ocrdma_create_cq_uresp_14016 db_page_addr ocrdma_create_cq_uresp 0 14016 NULL
136458 +disable_so_cur_cpufreq_policy_14023 cur cpufreq_policy 0 14023 NULL
136459 +disable_so_iommu_context_addr_fndecl_14032 iommu_context_addr fndecl 2-3 14032 NULL
136460 +disable_so_pll_i2c_address_dvb_pll_priv_14036 pll_i2c_address dvb_pll_priv 0 14036 NULL
136461 +disable_so_eth_mac_addr_fndecl_14045 eth_mac_addr fndecl 0 14045 NULL
136462 +disable_so_dce_v8_0_crtc_set_base_atomic_fndecl_14048 dce_v8_0_crtc_set_base_atomic fndecl 0 14048 NULL
136463 +disable_so_irq_to_desc_fndecl_14051 irq_to_desc fndecl 1 14051 NULL
136464 +disable_so_ept_identity_map_addr_kvm_arch_14060 ept_identity_map_addr kvm_arch 0 14060 NULL
136465 +disable_so_t1timer_ax25_info_struct_14071 t1timer ax25_info_struct 0 14071 NULL
136466 +disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073 rxbd_addr_hi host_cmd_ds_pcie_details 0 14073 NULL nohasharray
136467 +disable_so_nfsd4_decode_bitmap_fndecl_14073 nfsd4_decode_bitmap fndecl 0 14073 &disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073
136468 +disable_so_xfs_vn_update_time_fndecl_14075 xfs_vn_update_time fndecl 0 14075 NULL
136469 +disable_so_cpufreq_frequency_table_target_fndecl_14082 cpufreq_frequency_table_target fndecl 3 14082 NULL
136470 +disable_so_pll_j_aic31xx_rate_divs_14098 pll_j aic31xx_rate_divs 0 14098 NULL
136471 +disable_so_pirq_from_irq_fndecl_14110 pirq_from_irq fndecl 1 14110 NULL
136472 +disable_so_zforce_scan_frequency_fndecl_14111 zforce_scan_frequency fndecl 0 14111 NULL
136473 +disable_so_uv_bios_freq_base_fndecl_14114 uv_bios_freq_base fndecl 1 14114 NULL
136474 +disable_so_si2165_set_if_freq_shift_fndecl_14123 si2165_set_if_freq_shift fndecl 0-2 14123 NULL
136475 +disable_so___hw_addr_sync_fndecl_14136 __hw_addr_sync fndecl 0-3 14136 NULL
136476 +disable_so_y_qxl_bitmap_14153 y qxl_bitmap 0 14153 NULL
136477 +disable_so_crypto_aead_setauthsize_fndecl_14158 crypto_aead_setauthsize fndecl 2 14158 NULL
136478 +disable_so_r600_engine_clock_entry_set_post_divider_fndecl_14159 r600_engine_clock_entry_set_post_divider fndecl 3 14159 NULL
136479 +disable_so_onenand_buffer_address_fndecl_14162 onenand_buffer_address fndecl 0-2-3 14162 NULL
136480 +disable_so___xfrm_state_lookup_byaddr_fndecl_14170 __xfrm_state_lookup_byaddr fndecl 2-5-6 14170 NULL
136481 +disable_so_uwbd_evt_handle_rc_dev_addr_conflict_fndecl_14177 uwbd_evt_handle_rc_dev_addr_conflict fndecl 0 14177 NULL
136482 +disable_so_mpt_add_sge_64bit_1078_fndecl_14179 mpt_add_sge_64bit_1078 fndecl 2-3 14179 NULL
136483 +disable_so_exynos4_jpeg_set_dec_bitstream_size_fndecl_14180 exynos4_jpeg_set_dec_bitstream_size fndecl 2 14180 NULL
136484 +disable_so_bg_block_bitmap_hi_ext4_group_desc_14201 bg_block_bitmap_hi ext4_group_desc 0 14201 NULL
136485 +disable_so_msecs_to_jiffies_fndecl_14205 msecs_to_jiffies fndecl 0-1 14205 NULL
136486 +disable_so_wait_on_page_bit_killable_timeout_fndecl_14212 wait_on_page_bit_killable_timeout fndecl 3-0 14212 NULL
136487 +disable_so_xfrm_state_addr_check_fndecl_14213 xfrm_state_addr_check fndecl 4 14213 NULL
136488 +disable_so_addr_sil24_sge_14214 addr sil24_sge 0 14214 NULL
136489 +disable_so_t2_hash_tbl_addr_lo_fcoe_kwqe_init2_14217 t2_hash_tbl_addr_lo fcoe_kwqe_init2 0 14217 NULL
136490 +disable_so_custom_divisor_uart_port_14227 custom_divisor uart_port 0 14227 NULL
136491 +disable_so_mclk_freq_s3fb_info_14228 mclk_freq s3fb_info 0 14228 NULL
136492 +disable_so_crypto_rfc4106_decrypt_fndecl_14233 crypto_rfc4106_decrypt fndecl 0 14233 NULL
136493 +disable_so_phy_addr_b44_14235 phy_addr b44 0 14235 NULL
136494 +disable_so_gpiochip_set_chained_irqchip_fndecl_14248 gpiochip_set_chained_irqchip fndecl 3 14248 NULL
136495 +disable_so_pci_bus_address_fndecl_14252 pci_bus_address fndecl 0 14252 NULL
136496 +disable_so_sleep_functions_on_battery_show_fndecl_14253 sleep_functions_on_battery_show fndecl 0 14253 NULL nohasharray
136497 +disable_so_to_hash_fndecl_14253 to_hash fndecl 0-1 14253 &disable_so_sleep_functions_on_battery_show_fndecl_14253
136498 +disable_so_ghash_async_init_fndecl_14257 ghash_async_init fndecl 0 14257 NULL
136499 +disable_so_port_down_timeout_vnic_fc_config_14262 port_down_timeout vnic_fc_config 0 14262 NULL
136500 +disable_so_master_timeout_vardecl_nf_conntrack_amanda_c_14266 master_timeout vardecl_nf_conntrack_amanda.c 0 14266 NULL
136501 +disable_so_register_address_increment_fndecl_14270 register_address_increment fndecl 2-3 14270 NULL
136502 +disable_so_ultra_settings_chipset_bus_clock_list_entry_14273 ultra_settings chipset_bus_clock_list_entry 0 14273 NULL
136503 +disable_so_do_timer_fndecl_14291 do_timer fndecl 1 14291 NULL nohasharray
136504 +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
136505 +disable_so_ndi_latency_timer_vardecl_ftdi_sio_c_14293 ndi_latency_timer vardecl_ftdi_sio.c 0 14293 NULL
136506 +disable_so_gateway_addr_addr_wil_fw_record_gateway_data4_14300 gateway_addr_addr wil_fw_record_gateway_data4 0 14300 NULL
136507 +disable_so_rxrpc_validate_address_fndecl_14303 rxrpc_validate_address fndecl 0-3 14303 NULL
136508 +disable_so_function_num_atto_csmi_get_pci_bus_addr_14307 function_num atto_csmi_get_pci_bus_addr 0 14307 NULL
136509 +disable_so_packet_timeout_jiffies_lego_usb_tower_14311 packet_timeout_jiffies lego_usb_tower 0 14311 NULL
136510 +disable_so_caller_uid_ceph_mds_request_head_14323 caller_uid ceph_mds_request_head 0 14323 NULL
136511 +disable_so_e1000_get_phy_addr_for_bm_page_fndecl_14324 e1000_get_phy_addr_for_bm_page fndecl 0-1-2 14324 NULL
136512 +disable_so_buf_base_addr_c67x00_hcd_14328 buf_base_addr c67x00_hcd 0 14328 NULL nohasharray
136513 +disable_so_hactive_hi_lvds_dvo_timing_14328 hactive_hi lvds_dvo_timing 0 14328 &disable_so_buf_base_addr_c67x00_hcd_14328
136514 +disable_so_addr_nv4e_i2c_port_14334 addr nv4e_i2c_port 0 14334 NULL
136515 +disable_so_ncp_add_be16_fndecl_14337 ncp_add_be16 fndecl 2 14337 NULL
136516 +disable_so_paddr_mm_dmapool_14345 paddr mm_dmapool 0 14345 NULL
136517 +disable_so_disc_wait_time_esas2r_adapter_14347 disc_wait_time esas2r_adapter 0 14347 NULL
136518 +disable_so_sgidx_scsi_ctrl_blk_14351 sgidx scsi_ctrl_blk 0 14351 NULL
136519 +disable_so_compute_split_timeout_timestamp_fndecl_14357 compute_split_timeout_timestamp fndecl 0-2 14357 NULL
136520 +disable_so_sin_port_sockaddr_in_14374 sin_port sockaddr_in 0 14374 NULL
136521 +disable_so_ci_get_mclk_frequency_ratio_fndecl_14375 ci_get_mclk_frequency_ratio fndecl 0-1 14375 NULL nohasharray
136522 +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
136523 +disable_so_stv0367cab_get_derot_freq_fndecl_14379 stv0367cab_get_derot_freq fndecl 0-2 14379 NULL
136524 +disable_so_line_time_radeon_crtc_14380 line_time radeon_crtc 0 14380 NULL
136525 +disable_so_src_data_addr_icp_qat_fw_comn_req_mid_14391 src_data_addr icp_qat_fw_comn_req_mid 0 14391 NULL
136526 +disable_so_dev_addr_cx231xx_i2c_xfer_data_14403 dev_addr cx231xx_i2c_xfer_data 0 14403 NULL
136527 +disable_so_card_snd_timer_info32_14407 card snd_timer_info32 0 14407 NULL nohasharray
136528 +disable_so_authenc_esn_verify_ahash_done_fndecl_14407 authenc_esn_verify_ahash_done fndecl 2 14407 &disable_so_card_snd_timer_info32_14407
136529 +disable_so_compat_put_timespec_fndecl_14416 compat_put_timespec fndecl 0 14416 NULL
136530 +disable_so_nct6775_write_fan_div_fndecl_14421 nct6775_write_fan_div fndecl 2 14421 NULL
136531 +disable_so_compat_sys_settimeofday_fndecl_14431 compat_sys_settimeofday fndecl 0 14431 NULL
136532 +disable_so_irlmp_start_idle_timer_fndecl_14433 irlmp_start_idle_timer fndecl 2 14433 NULL
136533 +disable_so_min_flt_signal_struct_14436 min_flt signal_struct 0 14436 NULL
136534 +disable_so___release_region_fndecl_14448 __release_region fndecl 2-3 14448 NULL
136535 +disable_so_dccp_time_wait_fndecl_14450 dccp_time_wait fndecl 3-2 14450 NULL nohasharray
136536 +disable_so_rt_mutex_timed_futex_lock_fndecl_14450 rt_mutex_timed_futex_lock fndecl 0 14450 &disable_so_dccp_time_wait_fndecl_14450
136537 +disable_so_div1_pll_div_14458 div1 pll_div 0 14458 NULL
136538 +disable_so_timestamp_ata_ering_entry_14485 timestamp ata_ering_entry 0 14485 NULL
136539 +disable_so_mod_delayed_work_on_fndecl_14497 mod_delayed_work_on fndecl 1-4 14497 NULL
136540 +disable_so_dma_addr_rx_14500 dma_addr rx 0 14500 NULL nohasharray
136541 +disable_so__rtl92de_signal_scale_mapping_fndecl_14500 _rtl92de_signal_scale_mapping fndecl 0-2 14500 &disable_so_dma_addr_rx_14500
136542 +disable_so_cp_hqd_pq_rptr_report_addr_hi_hqd_registers_14512 cp_hqd_pq_rptr_report_addr_hi hqd_registers 0 14512 NULL
136543 +disable_so_snd_emu1010_internal_clock_info_fndecl_14514 snd_emu1010_internal_clock_info fndecl 0 14514 NULL
136544 +disable_so_nicvf_queue_reg_write_fndecl_14519 nicvf_queue_reg_write fndecl 3-4 14519 NULL
136545 +disable_so_icsk_user_timeout_inet_connection_sock_14528 icsk_user_timeout inet_connection_sock 0 14528 NULL
136546 +disable_so_gcm_hash_assoc_remain_continue_fndecl_14530 gcm_hash_assoc_remain_continue fndecl 0 14530 NULL
136547 +disable_so_get_max_engine_clock_in_mhz_fndecl_14540 get_max_engine_clock_in_mhz fndecl 0 14540 NULL
136548 +disable_so_port_snd_seq_addr_14543 port snd_seq_addr 0 14543 NULL
136549 +disable_so_nouveau_pmops_runtime_resume_fndecl_14545 nouveau_pmops_runtime_resume fndecl 0 14545 NULL
136550 +disable_so_timeout_vardecl_nf_conntrack_netbios_ns_c_14547 timeout vardecl_nf_conntrack_netbios_ns.c 0 14547 NULL
136551 +disable_so_cik_get_gpu_clock_counter_fndecl_14557 cik_get_gpu_clock_counter fndecl 0 14557 NULL
136552 +disable_so_addrconf_fixup_forwarding_fndecl_14567 addrconf_fixup_forwarding fndecl 0-3 14567 NULL
136553 +disable_so_batadv_nc_hash_choose_fndecl_14575 batadv_nc_hash_choose fndecl 0-2 14575 NULL
136554 +disable_so_pbl_addr_iwch_reg_user_mr_resp_14576 pbl_addr iwch_reg_user_mr_resp 0 14576 NULL
136555 +disable_so_m48t59_rtc_read_time_fndecl_14585 m48t59_rtc_read_time fndecl 0 14585 NULL
136556 +disable_so_read_tsc_fndecl_14589 read_tsc fndecl 0 14589 NULL
136557 +disable_so_rtsc_min_fndecl_14591 rtsc_min fndecl 3-4 14591 NULL
136558 +disable_so_bank_addr_snd_ymfpci_voice_14595 bank_addr snd_ymfpci_voice 0 14595 NULL
136559 +disable_so_hpi_bitstream_get_activity_fndecl_14606 hpi_bitstream_get_activity fndecl 0 14606 NULL
136560 +disable_so_prandom_seed_early_fndecl_14613 prandom_seed_early fndecl 2 14613 NULL
136561 +disable_so_cmd_cons_dma_addr_qlcnic_hostrq_tx_ctx_14615 cmd_cons_dma_addr qlcnic_hostrq_tx_ctx 0 14615 NULL
136562 +disable_so_shash_async_import_fndecl_14618 shash_async_import fndecl 0 14618 NULL
136563 +disable_so_osc_clock_freq_drx_common_attr_14640 osc_clock_freq drx_common_attr 0 14640 NULL
136564 +disable_so_freq_ath5k_edge_power_14657 freq ath5k_edge_power 0 14657 NULL
136565 +disable_so_td_addr_c67x00_td_14658 td_addr c67x00_td 0 14658 NULL
136566 +disable_so_dma_addr_whc_std_14663 dma_addr whc_std 0 14663 NULL nohasharray
136567 +disable_so_elfcorehdr_addr_vardecl_14663 elfcorehdr_addr vardecl 0 14663 &disable_so_dma_addr_whc_std_14663
136568 +disable_so_ene_set_reg_addr_fndecl_14666 ene_set_reg_addr fndecl 2 14666 NULL
136569 +disable_so_fbk_divider_panel_info_14668 fbk_divider panel_info 0 14668 NULL
136570 +disable_so_bytes_snd_pcm_oss_runtime_14669 bytes snd_pcm_oss_runtime 0 14669 NULL
136571 +disable_so_vadc_hw_settle_time_from_dt_fndecl_14670 vadc_hw_settle_time_from_dt fndecl 0-1 14670 NULL
136572 +disable_so_crypto842_mod_init_fndecl_14677 crypto842_mod_init fndecl 0 14677 NULL
136573 +disable_so_max77693_set_timeout_fndecl_14678 max77693_set_timeout fndecl 2 14678 NULL
136574 +disable_so_mtt_base_addr_h_mlx4_qp_context_14690 mtt_base_addr_h mlx4_qp_context 0 14690 NULL
136575 +disable_so_mtt_base_addr_l_mlx4_srq_context_14691 mtt_base_addr_l mlx4_srq_context 0 14691 NULL
136576 +disable_so_fib_info_hash_size_vardecl_fib_semantics_c_14699 fib_info_hash_size vardecl_fib_semantics.c 0 14699 NULL
136577 +disable_so___addr_hash_fndecl_14702 __addr_hash fndecl 0-3-4 14702 NULL
136578 +disable_so_rise_time_lp8788_bl_config_14703 rise_time lp8788_bl_config 0 14703 NULL
136579 +disable_so_ebitmap_start_positive_fndecl_14708 ebitmap_start_positive fndecl 0 14708 NULL
136580 +disable_so_ssb_chipco_watchdog_timer_set_wdt_fndecl_14712 ssb_chipco_watchdog_timer_set_wdt fndecl 2-0 14712 NULL
136581 +disable_so_saddr_ipq_14715 saddr ipq 0 14715 NULL
136582 +disable_so_il4965_math_div_round_fndecl_14717 il4965_math_div_round fndecl 1-2 14717 NULL
136583 +disable_so_dac_mmap_min_addr_vardecl_14725 dac_mmap_min_addr vardecl 0 14725 NULL
136584 +disable_so_show_sas_end_dev_initiator_response_timeout_fndecl_14730 show_sas_end_dev_initiator_response_timeout fndecl 0 14730 NULL
136585 +disable_so_md5_mod_init_fndecl_14761 md5_mod_init fndecl 0 14761 NULL
136586 +disable_so_lasttime_htcp_14766 lasttime htcp 0 14766 NULL
136587 +disable_so_cac_time_ms_mwifiex_radar_params_14775 cac_time_ms mwifiex_radar_params 0 14775 NULL
136588 +disable_so_rs5c348_rtc_set_time_fndecl_14776 rs5c348_rtc_set_time fndecl 0 14776 NULL
136589 +disable_so_o2net_sc_queue_delayed_work_fndecl_14778 o2net_sc_queue_delayed_work fndecl 3 14778 NULL
136590 +disable_so_phonet_address_del_fndecl_14787 phonet_address_del fndecl 0 14787 NULL
136591 +disable_so_efx_phc_adjtime_fndecl_14790 efx_phc_adjtime fndecl 0 14790 NULL
136592 +disable_so_lzo_compress_pages_fndecl_14806 lzo_compress_pages fndecl 3-4 14806 NULL
136593 +disable_so_chv_gpu_freq_fndecl_14811 chv_gpu_freq fndecl 0-2 14811 NULL nohasharray
136594 +disable_so_nbytes_blkcipher_walk_14811 nbytes blkcipher_walk 0 14811 &disable_so_chv_gpu_freq_fndecl_14811
136595 +disable_so_addr___mem_14815 addr __mem 0 14815 NULL
136596 +disable_so___cpufreq_governor_fndecl_14821 __cpufreq_governor fndecl 0 14821 NULL nohasharray
136597 +disable_so_hash_lo_smsc95xx_priv_14821 hash_lo smsc95xx_priv 0 14821 &disable_so___cpufreq_governor_fndecl_14821
136598 +disable_so_naddr_ipath_user_sdma_pkt_14830 naddr ipath_user_sdma_pkt 0 14830 NULL
136599 +disable_so_address_pci_mmcfg_region_14831 address pci_mmcfg_region 0 14831 NULL
136600 +disable_so_crypto_ecb_module_init_fndecl_14834 crypto_ecb_module_init fndecl 0 14834 NULL
136601 +disable_so_last_host_tsc_kvm_vcpu_arch_14836 last_host_tsc kvm_vcpu_arch 0 14836 NULL
136602 +disable_so_eir_has_uuids_fndecl_14845 eir_has_uuids fndecl 2 14845 NULL
136603 +disable_so_b_addr_xfer_desc_buffer_14849 b_addr xfer_desc_buffer 0 14849 NULL
136604 +disable_so_xtal_freq_mxl5005s_config_14852 xtal_freq mxl5005s_config 0 14852 NULL
136605 +disable_so_pvclock_tsc_khz_fndecl_14859 pvclock_tsc_khz fndecl 0 14859 NULL
136606 +disable_so_isl1208_rtc_interrupt_fndecl_14861 isl1208_rtc_interrupt fndecl 0 14861 NULL
136607 +disable_so_dwell_time_passive_wmi_start_scan_arg_14866 dwell_time_passive wmi_start_scan_arg 0 14866 NULL
136608 +disable_so_writeout_period_time_vardecl_page_writeback_c_14870 writeout_period_time vardecl_page-writeback.c 0 14870 NULL
136609 +disable_so_valid_mtrr_type_fndecl_14883 valid_mtrr_type fndecl 1 14883 NULL
136610 +disable_so_dev_idx_sockaddr_nfc_llcp_14893 dev_idx sockaddr_nfc_llcp 0 14893 NULL
136611 +disable_so_addr_nv50_disp_mthd_chan_14896 addr nv50_disp_mthd_chan 0 14896 NULL
136612 +disable_so_ts_paddr_end_ath_hw_14898 ts_paddr_end ath_hw 0 14898 NULL
136613 +disable_so_get_urb_to_r8a66597_addr_fndecl_14901 get_urb_to_r8a66597_addr fndecl 0 14901 NULL
136614 +disable_so_remote_ref_time_lp_14915 remote_ref_time lp 0 14915 NULL
136615 +disable_so_bitmap_id_iscsi_conn_14920 bitmap_id iscsi_conn 0 14920 NULL
136616 +disable_so_root_btrfs_delayed_data_ref_14922 root btrfs_delayed_data_ref 0 14922 NULL
136617 +disable_so_c67x00_ll_read_mem_le16_fndecl_14937 c67x00_ll_read_mem_le16 fndecl 2-4 14937 NULL
136618 +disable_so_addr_sz_picolcd_data_14956 addr_sz picolcd_data 0 14956 NULL
136619 +disable_so_xhci_calculate_intel_u1_timeout_fndecl_14959 xhci_calculate_intel_u1_timeout fndecl 0 14959 NULL
136620 +disable_so_crypto_init_shash_ops_fndecl_14968 crypto_init_shash_ops fndecl 0 14968 NULL
136621 +disable_so_cputime_to_compat_timeval_fndecl_14969 cputime_to_compat_timeval fndecl 1 14969 NULL nohasharray
136622 +disable_so_cpufreq_set_cur_state_fndecl_14969 cpufreq_set_cur_state fndecl 1 14969 &disable_so_cputime_to_compat_timeval_fndecl_14969
136623 +disable_so_start_time_flakey_c_14970 start_time flakey_c 0 14970 NULL
136624 +disable_so_snd_asihpi_sampleclock_add_fndecl_14973 snd_asihpi_sampleclock_add fndecl 0 14973 NULL
136625 +disable_so_addr_sky2_tx_le_14974 addr sky2_tx_le 0 14974 NULL
136626 +disable_so_mcfg_addr_acpi_pci_root_14978 mcfg_addr acpi_pci_root 0 14978 NULL
136627 +disable_so_cryptd_hash_import_fndecl_14985 cryptd_hash_import fndecl 0 14985 NULL
136628 +disable_so_cac_start_time_wireless_dev_14998 cac_start_time wireless_dev 0 14998 NULL
136629 +disable_so_inaddr_any_override_acl_subject_label_15014 inaddr_any_override acl_subject_label 0 15014 NULL
136630 +disable_so_dma_addr_cmdQ_ce_15023 dma_addr cmdQ_ce 0 15023 NULL nohasharray
136631 +disable_so_affs_init_bitmap_fndecl_15023 affs_init_bitmap fndecl 0 15023 &disable_so_dma_addr_cmdQ_ce_15023
136632 +disable_so_select_addr_qla8xxx_minidump_entry_mux_15025 select_addr qla8xxx_minidump_entry_mux 0 15025 NULL
136633 +disable_so_frequency_cx24113_state_15031 frequency cx24113_state 0 15031 NULL
136634 +disable_so_port0_phy_addr_falcon_nvconfig_board_v2_15034 port0_phy_addr falcon_nvconfig_board_v2 0 15034 NULL
136635 +disable_so_snd_dice_transaction_get_clock_source_fndecl_15041 snd_dice_transaction_get_clock_source fndecl 0 15041 NULL
136636 +disable_so_valid_time_prefix_cacheinfo_15043 valid_time prefix_cacheinfo 0 15043 NULL
136637 +disable_so_acpi_get_cpuid_fndecl_15055 acpi_get_cpuid fndecl 0-3 15055 NULL
136638 +disable_so_faddr_rds_info_message_15057 faddr rds_info_message 0 15057 NULL
136639 +disable_so_hsync_pulse_width_lo_oaktrail_timing_info_15059 hsync_pulse_width_lo oaktrail_timing_info 0 15059 NULL
136640 +disable_so_mthca_WRITE_MTT_fndecl_15060 mthca_WRITE_MTT fndecl 0-3 15060 NULL
136641 +disable_so_ath9k_iowrite32_fndecl_15073 ath9k_iowrite32 fndecl 2 15073 NULL
136642 +disable_so_uid_max_xt_owner_match_info_15077 uid_max xt_owner_match_info 0 15077 NULL
136643 +disable_so_addr_low_mcp_kreq_ether_recv_15081 addr_low mcp_kreq_ether_recv 0 15081 NULL
136644 +disable_so_gem_get_device_address_fndecl_15093 gem_get_device_address fndecl 0 15093 NULL
136645 +disable_so_s5m8767_rtc_set_time_reg_fndecl_15094 s5m8767_rtc_set_time_reg fndecl 0 15094 NULL
136646 +disable_so_host_side_addr_fit_sg_descriptor_15098 host_side_addr fit_sg_descriptor 0 15098 NULL
136647 +disable_so_gtt_start_gpu_addr_kfd_dev_15100 gtt_start_gpu_addr kfd_dev 0 15100 NULL
136648 +disable_so_device_timestamp_ieee80211_rx_status_15103 device_timestamp ieee80211_rx_status 0 15103 NULL
136649 +disable_so_tcp_fastopen_reset_cipher_fndecl_15116 tcp_fastopen_reset_cipher fndecl 2 15116 NULL
136650 +disable_so_acpi_leave_sleep_state_prep_fndecl_15121 acpi_leave_sleep_state_prep fndecl 0-1 15121 NULL
136651 +disable_so_suspend_freq_cpufreq_policy_15133 suspend_freq cpufreq_policy 0 15133 NULL
136652 +disable_so___usb_control_msg_fndecl_15142 __usb_control_msg fndecl 8-2-9-5-0-4-6-3 15142 NULL
136653 +disable_so_sin6_scope_id_sockaddr_in6_15151 sin6_scope_id sockaddr_in6 0 15151 NULL
136654 +disable_so_ufshcd_devfreq_target_fndecl_15152 ufshcd_devfreq_target fndecl 0 15152 NULL
136655 +disable_so_dma_addr_wbsd_host_15158 dma_addr wbsd_host 0 15158 NULL
136656 +disable_so_timer_in_use_old_nes_hw_tune_timer_15174 timer_in_use_old nes_hw_tune_timer 0 15174 NULL
136657 +disable_so_mce_log_therm_throt_event_fndecl_15178 mce_log_therm_throt_event fndecl 1 15178 NULL nohasharray
136658 +disable_so_mce_write_fndecl_15178 mce_write fndecl 3-0 15178 &disable_so_mce_log_therm_throt_event_fndecl_15178
136659 +disable_so_expires_cpu_timer_list_15182 expires cpu_timer_list 0 15182 NULL
136660 +disable_so_address_drm_dp_aux_msg_15184 address drm_dp_aux_msg 0 15184 NULL
136661 +disable_so_eip_tss_segment_32_15186 eip tss_segment_32 0 15186 NULL
136662 +disable_so_snd_als4000_interrupt_fndecl_15191 snd_als4000_interrupt fndecl 1 15191 NULL nohasharray
136663 +disable_so_pcf2123_rtc_read_time_fndecl_15191 pcf2123_rtc_read_time fndecl 0 15191 &disable_so_snd_als4000_interrupt_fndecl_15191
136664 +disable_so_rcx_kvm_regs_15192 rcx kvm_regs 0 15192 NULL
136665 +disable_so_dma_addr_s_rxd_os_15193 dma_addr s_rxd_os 0 15193 NULL
136666 +disable_so_retrans_time_ifla_cacheinfo_15201 retrans_time ifla_cacheinfo 0 15201 NULL
136667 +disable_so_cxd2820r_sleep_t_fndecl_15204 cxd2820r_sleep_t fndecl 0 15204 NULL
136668 +disable_so_bcma_core_pcie2_war_delay_perst_enab_fndecl_15208 bcma_core_pcie2_war_delay_perst_enab fndecl 0 15208 NULL
136669 +disable_so_btrfs_delayed_inode_reserve_metadata_fndecl_15215 btrfs_delayed_inode_reserve_metadata fndecl 0 15215 NULL
136670 +disable_so___iowrite64_copy_fndecl_15216 __iowrite64_copy fndecl 3 15216 NULL nohasharray
136671 +disable_so_ext3fs_dirhash_fndecl_15216 ext3fs_dirhash fndecl 2 15216 &disable_so___iowrite64_copy_fndecl_15216
136672 +disable_so_nilfs_btree_propagate_fndecl_15225 nilfs_btree_propagate fndecl 0 15225 NULL
136673 +disable_so_sha256_ssse3_update_fndecl_15226 sha256_ssse3_update fndecl 3 15226 NULL
136674 +disable_so_target_addr_i2400m_bootrom_header_15227 target_addr i2400m_bootrom_header 0 15227 NULL
136675 +disable_so_ip_vs_addr_equal_fndecl_15229 ip_vs_addr_equal fndecl 1 15229 NULL
136676 +disable_so_matroxfb_PLL_calcclock_fndecl_15230 matroxfb_PLL_calcclock fndecl 2-3-0 15230 NULL
136677 +disable_so_int_timeout_msb_data_15245 int_timeout msb_data 0 15245 NULL nohasharray
136678 +disable_so_check_quotactl_permission_fndecl_15245 check_quotactl_permission fndecl 4-0-3-2 15245 &disable_so_int_timeout_msb_data_15245
136679 +disable_so_expires_crash_uid_15248 expires crash_uid 0 15248 NULL
136680 +disable_so_mul_n_basecase_fndecl_15258 mul_n_basecase fndecl 4 15258 NULL
136681 +disable_so_crypto_xcbc_digest_update_fndecl_15259 crypto_xcbc_digest_update fndecl 3 15259 NULL
136682 +disable_so_first_jiffies_ati_remote_15260 first_jiffies ati_remote 0 15260 NULL
136683 +disable_so___get_hash_thresh_fndecl_15268 __get_hash_thresh fndecl 2 15268 NULL
136684 +disable_so_isoc_in_endpointaddr_au0828_dev_15269 isoc_in_endpointaddr au0828_dev 0 15269 NULL
136685 +disable_so_crypto_ctxsize_fndecl_15285 crypto_ctxsize fndecl 0 15285 NULL
136686 +disable_so_max_rx_ip_addr_qlcnic_info_15295 max_rx_ip_addr qlcnic_info 0 15295 NULL nohasharray
136687 +disable_so_mtrr_add_fndecl_15295 mtrr_add fndecl 1-2 15295 &disable_so_max_rx_ip_addr_qlcnic_info_15295
136688 +disable_so_plugged_delay_bau_control_15298 plugged_delay bau_control 0 15298 NULL
136689 +disable_so_skcipher_async_cb_fndecl_15303 skcipher_async_cb fndecl 2 15303 NULL
136690 +disable_so_bytes_bitmap_storage_15310 bytes bitmap_storage 0 15310 NULL
136691 +disable_so_xhci_calculate_u1_timeout_fndecl_15314 xhci_calculate_u1_timeout fndecl 0 15314 NULL nohasharray
136692 +disable_so_sym_getpciclock_fndecl_15314 sym_getpciclock fndecl 0 15314 &disable_so_xhci_calculate_u1_timeout_fndecl_15314 nohasharray
136693 +disable_so_major_hash_ocfs2_dx_hinfo_15314 major_hash ocfs2_dx_hinfo 0 15314 &disable_so_sym_getpciclock_fndecl_15314
136694 +disable_so_ns_delay_scale_fndecl_15317 ns_delay_scale fndecl 4 15317 NULL
136695 +disable_so_addr_atiixp_dma_desc_15333 addr atiixp_dma_desc 0 15333 NULL
136696 +disable_so_logicalBlockNum_kernel_lb_addr_15336 logicalBlockNum kernel_lb_addr 0 15336 NULL
136697 +disable_so_last_rx_timestamp_i40e_ring_15342 last_rx_timestamp i40e_ring 0 15342 NULL
136698 +disable_so_ifa_index_ifaddrmsg_15348 ifa_index ifaddrmsg 0 15348 NULL
136699 +disable_so_timing_reg_mtk_i2c_15349 timing_reg mtk_i2c 0 15349 NULL
136700 +disable_so_msr_srcimp_desc_15353 msr srcimp_desc 0 15353 NULL
136701 +disable_so_r2c_val_fc2580_freq_regs_15359 r2c_val fc2580_freq_regs 0 15359 NULL
136702 +disable_so_xfer_udelay_nci_spi_15364 xfer_udelay nci_spi 0 15364 NULL
136703 +disable_so_hash_key_type_and_desc_fndecl_15370 hash_key_type_and_desc fndecl 0 15370 NULL
136704 +disable_so_set_window_latch_addr_flash_info_15372 set_window latch_addr_flash_info 1 15372 NULL
136705 +disable_so_host_addr_ipw2100_bd_15376 host_addr ipw2100_bd 0 15376 NULL
136706 +disable_so_eeprom_addr_state_15380 eeprom_addr state 0 15380 NULL
136707 +disable_so_sys_mq_timedreceive_fndecl_15392 sys_mq_timedreceive fndecl 1-3 15392 NULL
136708 +disable_so_ghash_async_update_fndecl_15422 ghash_async_update fndecl 0 15422 NULL
136709 +disable_so___send_signal_fndecl_15424 __send_signal fndecl 0-1 15424 NULL
136710 +disable_so_edi_user_regs_struct32_15430 edi user_regs_struct32 0 15430 NULL
136711 +disable_so_perf_cpu_time_max_percent_handler_fndecl_15448 perf_cpu_time_max_percent_handler fndecl 0 15448 NULL
136712 +disable_so_phy_register_fixup_for_uid_fndecl_15449 phy_register_fixup_for_uid fndecl 0 15449 NULL
136713 +disable_so_vpd_address_write_fndecl_15453 vpd_address_write fndecl 0-2-3 15453 NULL
136714 +disable_so_schedule_timeout_killable_fndecl_15458 schedule_timeout_killable fndecl 1-0 15458 NULL
136715 +disable_so_a21_wdt_set_timeout_fndecl_15463 a21_wdt_set_timeout fndecl 2 15463 NULL
136716 +disable_so_reg_val_pll_div_15464 reg_val pll_div 0 15464 NULL
136717 +disable_so_adjfreq_ptp_clock_info_15468 adjfreq ptp_clock_info 2 15468 NULL
136718 +disable_so___nlm_hash_addr6_fndecl_15486 __nlm_hash_addr6 fndecl 0 15486 NULL
136719 +disable_so_addr_sgentry_15489 addr sgentry 0 15489 NULL
136720 +disable_so_psb_sgx_interrupt_fndecl_15502 psb_sgx_interrupt fndecl 2-3 15502 NULL
136721 +disable_so_clk_divider_recalc_rate_fndecl_15503 clk_divider_recalc_rate fndecl 2-0 15503 NULL
136722 +disable_so_xferq_addr_hi_fcoe_kwqe_conn_offload2_15506 xferq_addr_hi fcoe_kwqe_conn_offload2 0 15506 NULL
136723 +disable_so_enable_usb3_lpm_timeout_hc_driver_15513 enable_usb3_lpm_timeout hc_driver 0 15513 NULL
136724 +disable_so_i2c_addr_lg2160_config_15521 i2c_addr lg2160_config 0 15521 NULL
136725 +disable_so_timeout_ms_nvme_passthru_cmd_15526 timeout_ms nvme_passthru_cmd 0 15526 NULL
136726 +disable_so_vm_cr_msr_nested_state_15529 vm_cr_msr nested_state 0 15529 NULL
136727 +disable_so_ocfs2_xattr_find_divide_pos_fndecl_15532 ocfs2_xattr_find_divide_pos fndecl 0 15532 NULL
136728 +disable_so_async_schedule_domain_fndecl_15534 async_schedule_domain fndecl 0 15534 NULL
136729 +disable_so_last_cqm_event_signal_ieee80211_if_managed_15539 last_cqm_event_signal ieee80211_if_managed 0 15539 NULL
136730 +disable_so_aic79xx_seltime_vardecl_aic79xx_osm_c_15542 aic79xx_seltime vardecl_aic79xx_osm.c 0 15542 NULL
136731 +disable_so_hrtimer_interval_ms_pmu_15546 hrtimer_interval_ms pmu 0 15546 NULL
136732 +disable_so_address_hi_msi_msg_15552 address_hi msi_msg 0 15552 NULL
136733 +disable_so_test_and_clear_bit_le_fndecl_15554 test_and_clear_bit_le fndecl 1 15554 NULL
136734 +disable_so_snd_echo_clock_source_put_fndecl_15557 snd_echo_clock_source_put fndecl 0 15557 NULL
136735 +disable_so_wait_for_completion_interruptible_timeout_fndecl_15561 wait_for_completion_interruptible_timeout fndecl 0-2 15561 NULL
136736 +disable_so_recover_width_atiixp_ide_timing_15562 recover_width atiixp_ide_timing 0 15562 NULL
136737 +disable_so_start_int_poll_timer_fndecl_15566 start_int_poll_timer fndecl 2 15566 NULL
136738 +disable_so_runtime_error_dev_pm_info_15567 runtime_error dev_pm_info 0 15567 NULL
136739 +disable_so_rdmsrl_on_cpu_fndecl_15568 rdmsrl_on_cpu fndecl 0-1 15568 NULL
136740 +disable_so_test_ahash_cycles_fndecl_15585 test_ahash_cycles fndecl 0-3 15585 NULL
136741 +disable_so_freq_hz_xc5000_priv_15586 freq_hz xc5000_priv 0 15586 NULL
136742 +disable_so_timeout_d_tpm_vendor_specific_15591 timeout_d tpm_vendor_specific 0 15591 NULL nohasharray
136743 +disable_so_laddr_rds_info_connection_15591 laddr rds_info_connection 0 15591 &disable_so_timeout_d_tpm_vendor_specific_15591
136744 +disable_so_be_get_rss_hash_opts_fndecl_15601 be_get_rss_hash_opts fndecl 0 15601 NULL
136745 +disable_so_shadow_addr_kvm_shadow_walk_iterator_15604 shadow_addr kvm_shadow_walk_iterator 0 15604 NULL
136746 +disable_so_hactive_lo_detailed_pixel_timing_15606 hactive_lo detailed_pixel_timing 0 15606 NULL
136747 +disable_so_SYSC_getpgid_fndecl_15618 SYSC_getpgid fndecl 0-1 15618 NULL
136748 +disable_so_inet_dump_ifaddr_fndecl_15621 inet_dump_ifaddr fndecl 0 15621 NULL
136749 +disable_so_sjw_t_pucan_timing_slow_15625 sjw_t pucan_timing_slow 0 15625 NULL
136750 +disable_so_slave_id_snd_timer_instance_15628 slave_id snd_timer_instance 0 15628 NULL nohasharray
136751 +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
136752 +disable_so_cmin_flt_signal_struct_15630 cmin_flt signal_struct 0 15630 NULL
136753 +disable_so_sg_busaddr_ips_scb_15639 sg_busaddr ips_scb 0 15639 NULL
136754 +disable_so_rq_timeout_rpc_rqst_15640 rq_timeout rpc_rqst 0 15640 NULL
136755 +disable_so_hpi_bitstream_set_data_polarity_fndecl_15646 hpi_bitstream_set_data_polarity fndecl 0-1 15646 NULL
136756 +disable_so_bs_rdiv_cx24113_state_15647 bs_rdiv cx24113_state 0 15647 NULL
136757 +disable_so_addr_lo_sli4_sge_15650 addr_lo sli4_sge 0 15650 NULL
136758 +disable_so_sctp_getsockopt_primary_addr_fndecl_15660 sctp_getsockopt_primary_addr fndecl 0 15660 NULL
136759 +disable_so_chip_uptime_esas2r_adapter_15661 chip_uptime esas2r_adapter 0 15661 NULL
136760 +disable_so_rx_statistics_jiffies_iwl_priv_15670 rx_statistics_jiffies iwl_priv 0 15670 NULL
136761 +disable_so_ablkcipher_walk_phys_fndecl_15671 ablkcipher_walk_phys fndecl 0 15671 NULL
136762 +disable_so_test_bitmaps_and_extents_fndecl_15676 test_bitmaps_and_extents fndecl 0 15676 NULL
136763 +disable_so_cur_rx_coal_timeval_vnic_cq_15695 cur_rx_coal_timeval vnic_cq 0 15695 NULL
136764 +disable_so_ds_addr_bus_dma_segment_15697 ds_addr bus_dma_segment 0 15697 NULL
136765 +disable_so_hrtimer_forward_fndecl_15719 hrtimer_forward fndecl 0 15719 NULL
136766 +disable_so_pmc_sleep_tmr_open_fndecl_15722 pmc_sleep_tmr_open fndecl 0 15722 NULL
136767 +disable_so_ovol_updated_control_runtime_15730 ovol_updated control_runtime 0 15730 NULL
136768 +disable_so___btrfs_run_delayed_refs_fndecl_15751 __btrfs_run_delayed_refs fndecl 0 15751 NULL
136769 +disable_so_at803x_ack_interrupt_fndecl_15758 at803x_ack_interrupt fndecl 0 15758 NULL
136770 +disable_so_phy_addr_bnx2_15762 phy_addr bnx2 0 15762 NULL
136771 +disable_so_acpi_os_sleep_fndecl_15766 acpi_os_sleep fndecl 1 15766 NULL
136772 +disable_so_mceusb_dev_driver_init_fndecl_15775 mceusb_dev_driver_init fndecl 0 15775 NULL
136773 +disable_so_iowrite32be_fndecl_15786 iowrite32be fndecl 1 15786 NULL
136774 +disable_so_rp1_freq_intel_gen6_power_mgmt_15787 rp1_freq intel_gen6_power_mgmt 0 15787 NULL
136775 +disable_so_mapped_rem_addr_nes_cm_info_15788 mapped_rem_addr nes_cm_info 0 15788 NULL
136776 +disable_so_bulkin_endpoint_addr_rsi_91x_usbdev_15790 bulkin_endpoint_addr rsi_91x_usbdev 0 15790 NULL
136777 +disable_so_connected_addr_rds_info_socket_15792 connected_addr rds_info_socket 0 15792 NULL
136778 +disable_so_usc_enable_aux_clock_fndecl_15795 usc_enable_aux_clock fndecl 2 15795 NULL
136779 +disable_so_add_delayed_tree_ref_fndecl_15797 add_delayed_tree_ref fndecl 11-5-6-7-8-9 15797 NULL
136780 +disable_so_wow_intr_before_sleep_ath_softc_15802 wow_intr_before_sleep ath_softc 0 15802 NULL
136781 +disable_so_rgb_time_bd2802_led_platform_data_15808 rgb_time bd2802_led_platform_data 0 15808 NULL
136782 +disable_so_intel_sdvo_get_slave_addr_fndecl_15818 intel_sdvo_get_slave_addr fndecl 0 15818 NULL
136783 +disable_so_tsc_start_vardecl_tsc_c_15853 tsc_start vardecl_tsc.c 0 15853 NULL
136784 +disable_so_get_cycle_time_fndecl_15861 get_cycle_time fndecl 0 15861 NULL
136785 +disable_so_cookie_dmaengine_pcm_runtime_data_15862 cookie dmaengine_pcm_runtime_data 0 15862 NULL nohasharray
136786 +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
136787 +disable_so_vactive_timing_15863 vactive timing 0 15863 NULL
136788 +disable_so_management_agent_address_sbp2_target_15871 management_agent_address sbp2_target 0 15871 NULL
136789 +disable_so_i2c_check_addr_busy_fndecl_15889 i2c_check_addr_busy fndecl 2 15889 NULL
136790 +disable_so_db_rec_addr_mlx4_cq_context_15890 db_rec_addr mlx4_cq_context 0 15890 NULL
136791 +disable_so_addr_wil_memio_block_15893 addr wil_memio_block 0 15893 NULL
136792 +disable_so_interrupt_out_size_usb_serial_port_15896 interrupt_out_size usb_serial_port 0 15896 NULL
136793 +disable_so_wait_for_completion_killable_fndecl_15899 wait_for_completion_killable fndecl 0 15899 NULL
136794 +disable_so_m48t35_read_time_fndecl_15900 m48t35_read_time fndecl 0 15900 NULL
136795 +disable_so_ath9k_btcoex_handle_interrupt_fndecl_15912 ath9k_btcoex_handle_interrupt fndecl 2 15912 NULL
136796 +disable_so_get_key_lib80211_crypto_ops_15916 get_key lib80211_crypto_ops 0-2 15916 NULL
136797 +disable_so_tw_sport_inet_timewait_sock_15928 tw_sport inet_timewait_sock 0 15928 NULL
136798 +disable_so_crypto_xor_byte_fndecl_15934 crypto_xor_byte fndecl 3 15934 NULL
136799 +disable_so_nilfs_btree_promote_key_fndecl_15935 nilfs_btree_promote_key fndecl 4 15935 NULL
136800 +disable_so_irq_set_chip_data_fndecl_15945 irq_set_chip_data fndecl 1 15945 NULL
136801 +disable_so_retransmits_timed_out_fndecl_15952 retransmits_timed_out fndecl 3 15952 NULL
136802 +disable_so_titsc_config_wires_fndecl_15953 titsc_config_wires fndecl 0 15953 NULL
136803 +disable_so_cpufreq_quick_get_max_fndecl_15956 cpufreq_quick_get_max fndecl 0-1 15956 NULL
136804 +disable_so_verify_ptp_clock_info_15963 verify ptp_clock_info 4 15963 NULL
136805 +disable_so_gid_ceph_mds_caps_15966 gid ceph_mds_caps 0 15966 NULL
136806 +disable_so_mlx4_ib_update_cache_on_guid_change_fndecl_15969 mlx4_ib_update_cache_on_guid_change fndecl 2-3 15969 NULL
136807 +disable_so_musb_write_txfunaddr_fndecl_15974 musb_write_txfunaddr fndecl 2-3 15974 NULL
136808 +disable_so_acpi_ut_add_address_range_fndecl_16007 acpi_ut_add_address_range fndecl 1-2-3-0 16007 NULL
136809 +disable_so_dma_addr_rsxx_dma_16020 dma_addr rsxx_dma 0 16020 NULL
136810 +disable_so_setup_acpi_object_addr_handler_16031 setup acpi_object_addr_handler 0 16031 NULL
136811 +disable_so_idletimer_tg_init_fndecl_16041 idletimer_tg_init fndecl 0 16041 NULL
136812 +disable_so_msdu_paddr_htt_mgmt_tx_desc_16042 msdu_paddr htt_mgmt_tx_desc 0 16042 NULL
136813 +disable_so_radeon_atombios_parse_pplib_non_clock_info_fndecl_16044 radeon_atombios_parse_pplib_non_clock_info fndecl 2 16044 NULL
136814 +disable_so_scale_stime_fndecl_16047 scale_stime fndecl 1-2-3-0 16047 NULL
136815 +disable_so_wl12xx_enable_interrupts_fndecl_16057 wl12xx_enable_interrupts fndecl 0 16057 NULL
136816 +disable_so_paddr_persistent_ram_zone_16058 paddr persistent_ram_zone 0 16058 NULL
136817 +disable_so_get_dst_timing_fndecl_16070 get_dst_timing fndecl 0 16070 NULL
136818 +disable_so_max_init_timeo_sctp_association_16072 max_init_timeo sctp_association 0 16072 NULL
136819 +disable_so_update_gid_table_fndecl_16082 update_gid_table fndecl 2 16082 NULL
136820 +disable_so_dma_addr_xilly_mapping_16083 dma_addr xilly_mapping 0 16083 NULL
136821 +disable_so_bt_wait_time_ath_btcoex_16086 bt_wait_time ath_btcoex 0 16086 NULL
136822 +disable_so_cfg80211_rx_unexpected_4addr_frame_fndecl_16088 cfg80211_rx_unexpected_4addr_frame fndecl 3 16088 NULL
136823 +disable_so_ip6_rt_gc_timeout_netns_sysctl_ipv6_16090 ip6_rt_gc_timeout netns_sysctl_ipv6 0 16090 NULL nohasharray
136824 +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
136825 +disable_so_wimax_addr_scnprint_fndecl_16095 wimax_addr_scnprint fndecl 4 16095 NULL
136826 +disable_so_airspy_s_frequency_fndecl_16098 airspy_s_frequency fndecl 0 16098 NULL
136827 +disable_so_crypto_blkcipher_ctxsize_fndecl_16105 crypto_blkcipher_ctxsize fndecl 0 16105 NULL
136828 +disable_so_blk_addr_f2fs_io_info_16107 blk_addr f2fs_io_info 0 16107 NULL
136829 +disable_so_div_r0_pll_values_16109 div_r0 pll_values 0 16109 NULL
136830 +disable_so_slack_hold_time_dql_16111 slack_hold_time dql 0 16111 NULL
136831 +disable_so_iscsi_tpg_attrib_show_netif_timeout_fndecl_16119 iscsi_tpg_attrib_show_netif_timeout fndecl 0 16119 NULL
136832 +disable_so_crypto_inc_fndecl_16125 crypto_inc fndecl 2 16125 NULL
136833 +disable_so_dualwatch_jiffies_ivtv_16137 dualwatch_jiffies ivtv 0 16137 NULL nohasharray
136834 +disable_so_enable_irq_fndecl_16137 enable_irq fndecl 1 16137 &disable_so_dualwatch_jiffies_ivtv_16137
136835 +disable_so_alb_set_mac_address_fndecl_16150 alb_set_mac_address fndecl 0 16150 NULL
136836 +disable_so_do_sigtimedwait_fndecl_16152 do_sigtimedwait fndecl 0 16152 NULL
136837 +disable_so_sys_timerfd_create_fndecl_16155 sys_timerfd_create fndecl 2-1 16155 NULL
136838 +disable_so_xen_smp_send_reschedule_fndecl_16161 xen_smp_send_reschedule fndecl 1 16161 NULL nohasharray
136839 +disable_so_addrHigh_ulp_bde64_16161 addrHigh ulp_bde64 0 16161 &disable_so_xen_smp_send_reschedule_fndecl_16161
136840 +disable_so_storm_memset_spq_addr_fndecl_16172 storm_memset_spq_addr fndecl 2-3 16172 NULL
136841 +disable_so_inactivity_timeout_cfhsi_config_16173 inactivity_timeout cfhsi_config 0 16173 NULL nohasharray
136842 +disable_so_iwl_eeprom_query_addr_fndecl_16173 iwl_eeprom_query_addr fndecl 2-3 16173 &disable_so_inactivity_timeout_cfhsi_config_16173
136843 +disable_so_nmsrs_kvm_msr_list_16175 nmsrs kvm_msr_list 0 16175 NULL
136844 +disable_so_count_radeon_vce_clock_voltage_dependency_table_16180 count radeon_vce_clock_voltage_dependency_table 0 16180 NULL
136845 +disable_so_qla4_83xx_wr_reg_indirect_fndecl_16184 qla4_83xx_wr_reg_indirect fndecl 2-3 16184 NULL
136846 +disable_so_show_src_clock_fndecl_16195 show_src_clock fndecl 0 16195 NULL
136847 +disable_so_timeout_ncp_lock_ioctl_16196 timeout ncp_lock_ioctl 0 16196 NULL
136848 +disable_so_sctp_getsockopt_local_addrs_fndecl_16201 sctp_getsockopt_local_addrs fndecl 2 16201 NULL nohasharray
136849 +disable_so_wusb_set_dev_addr_fndecl_16201 wusb_set_dev_addr fndecl 3 16201 &disable_so_sctp_getsockopt_local_addrs_fndecl_16201
136850 +disable_so_ageing_time___bridge_info_16213 ageing_time __bridge_info 0 16213 NULL
136851 +disable_so_bd_list_addr_hi_bnx2i_login_request_16219 bd_list_addr_hi bnx2i_login_request 0 16219 NULL
136852 +disable_so_btrfs_delete_delayed_items_fndecl_16220 btrfs_delete_delayed_items fndecl 0 16220 NULL nohasharray
136853 +disable_so_sethdraddr_fndecl_16220 sethdraddr fndecl 0 16220 &disable_so_btrfs_delete_delayed_items_fndecl_16220
136854 +disable_so_ci_i2c_addr_netup_ci_state_16240 ci_i2c_addr netup_ci_state 0 16240 NULL
136855 +disable_so_hi_phys_addr_16280 hi phys_addr 0 16280 NULL
136856 +disable_so___chk_range_not_ok_fndecl_16282 __chk_range_not_ok fndecl 1-2 16282 NULL
136857 +disable_so_ocfs2_add_clusters_in_btree_fndecl_16283 ocfs2_add_clusters_in_btree fndecl 0-4 16283 NULL
136858 +disable_so_prev_task_link_tss_segment_32_16296 prev_task_link tss_segment_32 0 16296 NULL
136859 +disable_so_ad1889_load_adc_interrupt_count_fndecl_16303 ad1889_load_adc_interrupt_count fndecl 2 16303 NULL
136860 +disable_so_cp_mqd_base_addr_lo_cik_mqd_16307 cp_mqd_base_addr_lo cik_mqd 0 16307 NULL
136861 +disable_so_led_on_time_adp5520_leds_platform_data_16308 led_on_time adp5520_leds_platform_data 0 16308 NULL
136862 +disable_so_dma_addr_adf_etr_ring_data_16309 dma_addr adf_etr_ring_data 0 16309 NULL
136863 +disable_so_demod_address_s921_config_16312 demod_address s921_config 0 16312 NULL
136864 +disable_so_valid_lft_inet6_ifaddr_16318 valid_lft inet6_ifaddr 0 16318 NULL
136865 +disable_so_addr_boom_rx_desc_16324 addr boom_rx_desc 0 16324 NULL
136866 +disable_so_ghash_async_digest_fndecl_16326 ghash_async_digest fndecl 0 16326 NULL
136867 +disable_so_i_atime_f2fs_inode_16339 i_atime f2fs_inode 0 16339 NULL
136868 +disable_so_update_bus_time_fndecl_16343 update_bus_time fndecl 0 16343 NULL
136869 +disable_so_addr_st_register_16344 addr st_register 0 16344 NULL nohasharray
136870 +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
136871 +disable_so_pll_prediv_dibx000_bandwidth_config_16345 pll_prediv dibx000_bandwidth_config 0 16345 NULL
136872 +disable_so_delay_kbd_repeat_16363 delay kbd_repeat 0 16363 NULL
136873 +disable_so_rproc_elf_get_boot_addr_fndecl_16372 rproc_elf_get_boot_addr fndecl 0 16372 NULL
136874 +disable_so_f2fs_dentry_hash_fndecl_16378 f2fs_dentry_hash fndecl 0 16378 NULL
136875 +disable_so_alarm_nvkm_timer_16388 alarm nvkm_timer 2 16388 NULL
136876 +disable_so_snd_seq_oss_timer_continue_fndecl_16406 snd_seq_oss_timer_continue fndecl 0 16406 NULL
136877 +disable_so_p1_mt9t112_pll_divider_16434 p1 mt9t112_pll_divider 0 16434 NULL
136878 +disable_so_unmap_sg_dma_map_ops_16437 unmap_sg dma_map_ops 3 16437 NULL
136879 +disable_so_ccp_aes_rfc3686_encrypt_fndecl_16455 ccp_aes_rfc3686_encrypt fndecl 0 16455 NULL
136880 +disable_so_bad_dma_addr_vardecl_amd_gart_64_c_16460 bad_dma_addr vardecl_amd_gart_64.c 0 16460 NULL
136881 +disable_so_ath6kl_sdio_set_cmd53_arg_fndecl_16468 ath6kl_sdio_set_cmd53_arg fndecl 3-7 16468 NULL
136882 +disable_so_list_phy_addr_list_info_hold_16469 list_phy_addr list_info_hold 0 16469 NULL
136883 +disable_so_jack_detect_delay_max98095_pdata_16483 jack_detect_delay max98095_pdata 0 16483 NULL
136884 +disable_so_bcma_erom_get_addr_desc_fndecl_16484 bcma_erom_get_addr_desc fndecl 0 16484 NULL nohasharray
136885 +disable_so_fib_info_hash_free_fndecl_16484 fib_info_hash_free fndecl 2 16484 &disable_so_bcma_erom_get_addr_desc_fndecl_16484
136886 +disable_so_frequency_xc2028_data_16487 frequency xc2028_data 0 16487 NULL
136887 +disable_so_acpi_hw_extended_sleep_fndecl_16503 acpi_hw_extended_sleep fndecl 0 16503 NULL
136888 +disable_so_lxt970_ack_interrupt_fndecl_16507 lxt970_ack_interrupt fndecl 0 16507 NULL nohasharray
136889 +disable_so_debug_dma_map_page_fndecl_16507 debug_dma_map_page fndecl 3-6-4 16507 &disable_so_lxt970_ack_interrupt_fndecl_16507
136890 +disable_so_freq_hi_jiffies_od_cpu_dbs_info_s_16514 freq_hi_jiffies od_cpu_dbs_info_s 0 16514 NULL
136891 +disable_so_address_u132_respond_16518 address u132_respond 0 16518 NULL
136892 +disable_so_tegra_spi_transfer_delay_fndecl_16528 tegra_spi_transfer_delay fndecl 1 16528 NULL
136893 +disable_so_cdb_phyaddr_hi32_AdapterControlBlock_16537 cdb_phyaddr_hi32 AdapterControlBlock 0 16537 NULL
136894 +disable_so_copied_seq_cxgbi_sock_16540 copied_seq cxgbi_sock 0 16540 NULL
136895 +disable_so_src_addr_lo_dmae_command_16542 src_addr_lo dmae_command 0 16542 NULL
136896 +disable_so_addr_lo_eth_tx_bd_16543 addr_lo eth_tx_bd 0 16543 NULL
136897 +disable_so_ccp_aes_cmac_digest_fndecl_16547 ccp_aes_cmac_digest fndecl 0 16547 NULL
136898 +disable_so_ip_pt_regs_16548 ip pt_regs 0 16548 NULL
136899 +disable_so_sleep_vol_cache_fan53555_device_info_16553 sleep_vol_cache fan53555_device_info 0 16553 NULL
136900 +disable_so_hblank_hi_oaktrail_timing_info_16559 hblank_hi oaktrail_timing_info 0 16559 NULL
136901 +disable_so_qla2x00_get_async_timeout_fndecl_16577 qla2x00_get_async_timeout fndecl 0 16577 NULL
136902 +disable_so___bitmap_andnot_fndecl_16578 __bitmap_andnot fndecl 4 16578 NULL
136903 +disable_so_hfreq_fb_cvt_data_16579 hfreq fb_cvt_data 0 16579 NULL
136904 +disable_so_tseg1_pucan_timing_slow_16580 tseg1 pucan_timing_slow 0 16580 NULL
136905 +disable_so_freq_rfmon_header_16593 freq rfmon_header 0 16593 NULL
136906 +disable_so_load_block_bitmap_fndecl_16597 load_block_bitmap fndecl 0-3 16597 NULL
136907 +disable_so_flush_timer_il_lq_sta_16606 flush_timer il_lq_sta 0 16606 NULL
136908 +disable_so_ieee80211_channel_to_frequency_fndecl_16619 ieee80211_channel_to_frequency fndecl 0-1 16619 NULL
136909 +disable_so_log_guest_addr_vhost_vring_addr_16627 log_guest_addr vhost_vring_addr 0 16627 NULL nohasharray
136910 +disable_so_cpumask_first_fndecl_16627 cpumask_first fndecl 0 16627 &disable_so_log_guest_addr_vhost_vring_addr_16627
136911 +disable_so_sctp_addr_id2transport_fndecl_16639 sctp_addr_id2transport fndecl 3 16639 NULL
136912 +disable_so_dx_context_paddr_sst_hsw_16656 dx_context_paddr sst_hsw 0 16656 NULL
136913 +disable_so_demod_address_au8522_config_16665 demod_address au8522_config 0 16665 NULL
136914 +disable_so_acpi_device_uid_show_fndecl_16681 acpi_device_uid_show fndecl 0 16681 NULL nohasharray
136915 +disable_so_sys_setresuid16_fndecl_16681 sys_setresuid16 fndecl 0-1-2-3 16681 &disable_so_acpi_device_uid_show_fndecl_16681
136916 +disable_so_crypto_rfc4106_encrypt_fndecl_16683 crypto_rfc4106_encrypt fndecl 0 16683 NULL
136917 +disable_so_field_bit_length_acpi_create_field_info_16693 field_bit_length acpi_create_field_info 0 16693 NULL nohasharray
136918 +disable_so_insert_revoke_hash_fndecl_16693 insert_revoke_hash fndecl 0-2 16693 &disable_so_field_bit_length_acpi_create_field_info_16693
136919 +disable_so_target_cpufreq_driver_16704 target cpufreq_driver 2 16704 NULL
136920 +disable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 0-2-4-5-6 16712 NULL
136921 +disable_so_time_kvm_vcpu_arch_16718 time kvm_vcpu_arch 0 16718 NULL
136922 +disable_so_mark_bitmap_end_fndecl_16723 mark_bitmap_end fndecl 1-2 16723 NULL
136923 +disable_so_edi_tss_segment_32_16727 edi tss_segment_32 0 16727 NULL
136924 +disable_so_native_calibrate_tsc_fndecl_16735 native_calibrate_tsc fndecl 0 16735 NULL
136925 +disable_so_buf_phy_addr_low_ql_rcv_buf_cb_16742 buf_phy_addr_low ql_rcv_buf_cb 0 16742 NULL
136926 +disable_so_mv88e6131_port_to_phy_addr_fndecl_16751 mv88e6131_port_to_phy_addr fndecl 0-2 16751 NULL
136927 +disable_so_vpd_cap_addr_pci_params_16752 vpd_cap_addr pci_params 0 16752 NULL nohasharray
136928 +disable_so_qce_ablkcipher_decrypt_fndecl_16752 qce_ablkcipher_decrypt fndecl 0 16752 &disable_so_vpd_cap_addr_pci_params_16752
136929 +disable_so_guest_interruptibility_info_vmcs12_16754 guest_interruptibility_info vmcs12 0 16754 NULL
136930 +disable_so_dma_ops_alloc_addresses_fndecl_16763 dma_ops_alloc_addresses fndecl 0-3-4-5 16763 NULL
136931 +disable_so_base_io_addr_cx25821_dev_16770 base_io_addr cx25821_dev 0 16770 NULL
136932 +disable_so_w1_delay_parm_vardecl_w1_io_c_16771 w1_delay_parm vardecl_w1_io.c 0 16771 NULL
136933 +disable_so_devm_kasprintf_fndecl_16792 devm_kasprintf fndecl 2 16792 NULL nohasharray
136934 +disable_so_crypto_rfc4309_setauthsize_fndecl_16792 crypto_rfc4309_setauthsize fndecl 2 16792 &disable_so_devm_kasprintf_fndecl_16792
136935 +disable_so_blp_qat_crypto_request_buffs_16801 blp qat_crypto_request_buffs 0 16801 NULL
136936 +disable_so_crypto_enqueue_request_fndecl_16802 crypto_enqueue_request fndecl 0 16802 NULL
136937 +disable_so_si2165_sleep_fndecl_16803 si2165_sleep fndecl 0 16803 NULL
136938 +disable_so_count_radeon_uvd_clock_voltage_dependency_table_16804 count radeon_uvd_clock_voltage_dependency_table 0 16804 NULL
136939 +disable_so_addr_low_viafb_vx855_dma_descr_16813 addr_low viafb_vx855_dma_descr 0 16813 NULL
136940 +disable_so_shash_async_digest_fndecl_16817 shash_async_digest fndecl 0 16817 NULL
136941 +disable_so_ip_apei_exec_context_16824 ip apei_exec_context 0 16824 NULL nohasharray
136942 +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
136943 +disable_so_xfs_btree_delete_fndecl_16843 xfs_btree_delete fndecl 0 16843 NULL
136944 +disable_so_round_jiffies_up_fndecl_16844 round_jiffies_up fndecl 1-0 16844 NULL
136945 +disable_so___add_delayed_refs_fndecl_16846 __add_delayed_refs fndecl 0-5 16846 NULL
136946 +disable_so_tv_sec_xfs_bstime_16848 tv_sec xfs_bstime 0 16848 NULL
136947 +disable_so_lsize_mtrr_value_16850 lsize mtrr_value 0 16850 NULL
136948 +disable_so_demod_address_stv0288_config_16852 demod_address stv0288_config 0 16852 NULL
136949 +disable_so_efi_lookup_mapped_addr_fndecl_16854 efi_lookup_mapped_addr fndecl 1 16854 NULL
136950 +disable_so_schedule_timeout_fndecl_16856 schedule_timeout fndecl 0-1 16856 NULL
136951 +disable_so_ceph_aes_decrypt2_fndecl_16857 ceph_aes_decrypt2 fndecl 2-8 16857 NULL
136952 +disable_so_da9055_wdt_set_timeout_fndecl_16860 da9055_wdt_set_timeout fndecl 2-0 16860 NULL
136953 +disable_so_erst_dma_addr_xhci_erst_16864 erst_dma_addr xhci_erst 0 16864 NULL
136954 +disable_so_prefered_lft_inet6_ifaddr_16873 prefered_lft inet6_ifaddr 0 16873 NULL
136955 +disable_so_ti_tsc_driver_init_fndecl_16883 ti_tsc_driver_init fndecl 0 16883 NULL
136956 +disable_so_dataout_timeout_iscsi_node_attrib_16884 dataout_timeout iscsi_node_attrib 0 16884 NULL
136957 +disable_so___rtc_read_time_fndecl_16890 __rtc_read_time fndecl 0 16890 NULL nohasharray
136958 +disable_so_tn_smc_rreg_fndecl_16890 tn_smc_rreg fndecl 0-2 16890 &disable_so___rtc_read_time_fndecl_16890
136959 +disable_so_lpage_dma_addr_genwqe_sgl_16893 lpage_dma_addr genwqe_sgl 0 16893 NULL
136960 +disable_so_schedule_on_each_cpu_fndecl_16903 schedule_on_each_cpu fndecl 0 16903 NULL nohasharray
136961 +disable_so_print_dropped_signal_fndecl_16903 print_dropped_signal fndecl 1 16903 &disable_so_schedule_on_each_cpu_fndecl_16903
136962 +disable_so_pctv452e_read_mac_address_fndecl_16904 pctv452e_read_mac_address fndecl 0 16904 NULL
136963 +disable_so_regcache_lzo_get_blkindex_fndecl_16910 regcache_lzo_get_blkindex fndecl 0-2 16910 NULL
136964 +disable_so_login_timeout_qla_hw_data_16911 login_timeout qla_hw_data 0 16911 NULL
136965 +disable_so_bitmap_find_free_region_fndecl_16912 bitmap_find_free_region fndecl 0-2-3 16912 NULL
136966 +disable_so_bit_reverse_mpeg_output_fndecl_16915 bit_reverse_mpeg_output fndecl 0 16915 NULL
136967 +disable_so_da9063_wdt_set_timeout_fndecl_16916 da9063_wdt_set_timeout fndecl 2-0 16916 NULL
136968 +disable_so_pci_bus_insert_busn_res_fndecl_16923 pci_bus_insert_busn_res fndecl 3-2 16923 NULL
136969 +disable_so_port_mlx4_next_alias_guid_work_16924 port mlx4_next_alias_guid_work 0 16924 NULL
136970 +disable_so_port_guid_nodeinfo_16928 port_guid nodeinfo 0 16928 NULL
136971 +disable_so_transition_latency_cpufreq_cpuinfo_16939 transition_latency cpufreq_cpuinfo 0 16939 NULL
136972 +disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940 si476x_core_cmd_fm_phase_div_status fndecl 0 16940 NULL nohasharray
136973 +disable_so_convert_hwaddr_wlcore_ops_16940 convert_hwaddr wlcore_ops 0 16940 &disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940
136974 +disable_so_tps80031_rtc_set_time_fndecl_16950 tps80031_rtc_set_time fndecl 0 16950 NULL
136975 +disable_so_select_addr_qla8044_minidump_entry_mux_16956 select_addr qla8044_minidump_entry_mux 0 16956 NULL
136976 +disable_so_hr222_get_external_clock_fndecl_16966 hr222_get_external_clock fndecl 0 16966 NULL
136977 +disable_so_evm_calc_hash_fndecl_16971 evm_calc_hash fndecl 0-4 16971 NULL
136978 +disable_so_ima_maxorder_vardecl_ima_crypto_c_16973 ima_maxorder vardecl_ima_crypto.c 0 16973 NULL
136979 +disable_so_delay_sh_keysc_info_16974 delay sh_keysc_info 0 16974 NULL
136980 +disable_so_sample_point_can_bittiming_16980 sample_point can_bittiming 0 16980 NULL
136981 +disable_so_ipmi_set_timeout_fndecl_16982 ipmi_set_timeout fndecl 0 16982 NULL
136982 +disable_so_address_SG32ENTRY_16984 address SG32ENTRY 0 16984 NULL
136983 +disable_so_mlx4_ib_guid_port_init_fndecl_16985 mlx4_ib_guid_port_init fndecl 2 16985 NULL
136984 +disable_so_ma901radio_set_freq_fndecl_16989 ma901radio_set_freq fndecl 0-2 16989 NULL
136985 +disable_so_i_ctime_f2fs_inode_17005 i_ctime f2fs_inode 0 17005 NULL
136986 +disable_so_pa_rxrf_lna2_freq_tune_chan_info_2064_lcnphy_17009 pa_rxrf_lna2_freq_tune chan_info_2064_lcnphy 0 17009 NULL
136987 +disable_so_vhost_add_used_and_signal_n_fndecl_17013 vhost_add_used_and_signal_n fndecl 4 17013 NULL
136988 +disable_so_fragshift_snd_pcm_oss_runtime_17015 fragshift snd_pcm_oss_runtime 0 17015 NULL
136989 +disable_so_sci_rx_interrupt_fndecl_17016 sci_rx_interrupt fndecl 1 17016 NULL
136990 +disable_so_wakeup_last_time_show_fndecl_17020 wakeup_last_time_show fndecl 0 17020 NULL
136991 +disable_so_from_addr_efx_memcpy_req_17021 from_addr efx_memcpy_req 0 17021 NULL
136992 +disable_so_tcp_timer_core_clk_divisor_nes_adapter_17033 tcp_timer_core_clk_divisor nes_adapter 0 17033 NULL
136993 +disable_so_reconnect_delay_srp_rport_17034 reconnect_delay srp_rport 0 17034 NULL
136994 +disable_so_clock_frequency_s3c_camif_sensor_info_17035 clock_frequency s3c_camif_sensor_info 0 17035 NULL
136995 +disable_so_copy_to_user_kmaddress_fndecl_17049 copy_to_user_kmaddress fndecl 0 17049 NULL
136996 +disable_so_il_send_rxon_timing_fndecl_17051 il_send_rxon_timing fndecl 0 17051 NULL
136997 +disable_so_system_time_pvclock_vcpu_time_info_17061 system_time pvclock_vcpu_time_info 0 17061 NULL
136998 +disable_so_ds3234_read_time_fndecl_17062 ds3234_read_time fndecl 0 17062 NULL
136999 +disable_so_dat_addr_batadv_orig_node_17063 dat_addr batadv_orig_node 0 17063 NULL
137000 +disable_so_master_cycle_now_kvm_arch_17072 master_cycle_now kvm_arch 0 17072 NULL
137001 +disable_so_netxen_decode_crb_addr_fndecl_17076 netxen_decode_crb_addr fndecl 0-1 17076 NULL
137002 +disable_so_pwm1_freq_lm63_data_17083 pwm1_freq lm63_data 0 17083 NULL
137003 +disable_so_leddc_on_time_ssb_sprom_17089 leddc_on_time ssb_sprom 0 17089 NULL
137004 +disable_so_timer_offset_tg3_17106 timer_offset tg3 0 17106 NULL
137005 +disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108 rcvhdrqtailaddr_phys qib_ctxtdata 0 17108 NULL nohasharray
137006 +disable_so_next_signal_fndecl_17108 next_signal fndecl 0 17108 &disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108
137007 +disable_so_ptp_write_host_time_efx_nic_type_17118 ptp_write_host_time efx_nic_type 2 17118 NULL
137008 +disable_so_isl12057_rtc_set_time_fndecl_17119 isl12057_rtc_set_time fndecl 0 17119 NULL
137009 +disable_so_p4_mt9t112_pll_divider_17123 p4 mt9t112_pll_divider 0 17123 NULL
137010 +disable_so___sk_mem_schedule_fndecl_17130 __sk_mem_schedule fndecl 2 17130 NULL
137011 +disable_so_do_sched_setscheduler_fndecl_17133 do_sched_setscheduler fndecl 2-1-0 17133 NULL
137012 +disable_so_demod_address_s5h1420_config_17152 demod_address s5h1420_config 0 17152 NULL
137013 +disable_so_stats_reset_time_fnic_17155 stats_reset_time fnic 0 17155 NULL nohasharray
137014 +disable_so_buffer_addr_hi_iscsi_bd_17155 buffer_addr_hi iscsi_bd 0 17155 &disable_so_stats_reset_time_fnic_17155 nohasharray
137015 +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
137016 +disable_so_bit_cursor_fndecl_17158 bit_cursor fndecl 4-5-6 17158 NULL
137017 +disable_so_nv50_fan_pwm_clock_fndecl_17168 nv50_fan_pwm_clock fndecl 0 17168 NULL
137018 +disable_so_s_def_resuid_ext2_super_block_17174 s_def_resuid ext2_super_block 0 17174 NULL
137019 +disable_so_delay_until_ipoib_mcast_17176 delay_until ipoib_mcast 0 17176 NULL
137020 +disable_so_command_addr_acpi_ec_17177 command_addr acpi_ec 0 17177 NULL
137021 +disable_so_set_freq_adis16400_chip_info_17183 set_freq adis16400_chip_info 0 17183 NULL
137022 +disable_so_fd_pppol2tpin6_addr_17186 fd pppol2tpin6_addr 0 17186 NULL
137023 +disable_so_genwqe_set_interrupt_capability_fndecl_17191 genwqe_set_interrupt_capability fndecl 2-0 17191 NULL
137024 +disable_so_random_frame_ehci_hcd_17194 random_frame ehci_hcd 0 17194 NULL nohasharray
137025 +disable_so_ctrl_req_addr_dwc3_17194 ctrl_req_addr dwc3 0 17194 &disable_so_random_frame_ehci_hcd_17194
137026 +disable_so_xhci_disable_usb3_lpm_timeout_fndecl_17199 xhci_disable_usb3_lpm_timeout fndecl 0 17199 NULL
137027 +disable_so_sp_dma_addr_hostdata_17202 sp_dma_addr hostdata 0 17202 NULL nohasharray
137028 +disable_so_drbg_hash_hashgen_fndecl_17202 drbg_hash_hashgen fndecl 0-3 17202 &disable_so_sp_dma_addr_hostdata_17202
137029 +disable_so_demod_address_mt312_config_17203 demod_address mt312_config 0 17203 NULL
137030 +disable_so_buf_count_ccp_sha_req_ctx_17205 buf_count ccp_sha_req_ctx 0 17205 NULL
137031 +disable_so_atiixp_set_pio_timing_fndecl_17209 atiixp_set_pio_timing fndecl 3 17209 NULL
137032 +disable_so_tpm2_get_random_fndecl_17212 tpm2_get_random fndecl 0-3 17212 NULL
137033 +disable_so_offset_btrfs_key_17213 offset btrfs_key 0 17213 NULL
137034 +disable_so_dccps_timestamp_time_dccp_sock_17214 dccps_timestamp_time dccp_sock 0 17214 NULL
137035 +disable_so_this_tsc_write_kvm_vcpu_arch_17221 this_tsc_write kvm_vcpu_arch 0 17221 NULL
137036 +disable_so_cpufreq_driver_target_fndecl_17222 cpufreq_driver_target fndecl 2 17222 NULL
137037 +disable_so_prev_task_link_tss_segment_16_17224 prev_task_link tss_segment_16 0 17224 NULL
137038 +disable_so_sc92031_interrupt_fndecl_17226 sc92031_interrupt fndecl 1 17226 NULL nohasharray
137039 +disable_so_daddr_irnet_socket_17226 daddr irnet_socket 0 17226 &disable_so_sc92031_interrupt_fndecl_17226 nohasharray
137040 +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
137041 +disable_so_iffreq_tuner_params_17241 iffreq tuner_params 0 17241 NULL
137042 +disable_so_erase_time_flchip_17257 erase_time flchip 0 17257 NULL
137043 +disable_so_lp8788_is_valid_buck_addr_fndecl_17271 lp8788_is_valid_buck_addr fndecl 1 17271 NULL nohasharray
137044 +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
137045 +disable_so_pci_timedia_setup_fndecl_17276 pci_timedia_setup fndecl 4 17276 NULL
137046 +disable_so_security_task_setpgid_fndecl_17277 security_task_setpgid fndecl 2 17277 NULL
137047 +disable_so_ref_div_pll_info_17279 ref_div pll_info 0 17279 NULL nohasharray
137048 +disable_so_ifr6_ifindex_in6_ifreq_17279 ifr6_ifindex in6_ifreq 0 17279 &disable_so_ref_div_pll_info_17279
137049 +disable_so_nm_gid_nl_mmap_hdr_17280 nm_gid nl_mmap_hdr 0 17280 NULL
137050 +disable_so_account_system_time_fndecl_17285 account_system_time fndecl 3-4 17285 NULL nohasharray
137051 +disable_so_ptrace_signal_fndecl_17285 ptrace_signal fndecl 0-1 17285 &disable_so_account_system_time_fndecl_17285
137052 +disable_so_cm36651_read_int_time_fndecl_17287 cm36651_read_int_time fndecl 0 17287 NULL
137053 +disable_so_calculate_destination_timeout_fndecl_17288 calculate_destination_timeout fndecl 0 17288 NULL
137054 +disable_so_hsync_pulse_width_lo_detailed_pixel_timing_17297 hsync_pulse_width_lo detailed_pixel_timing 0 17297 NULL
137055 +disable_so_pci_pm_runtime_suspend_fndecl_17299 pci_pm_runtime_suspend fndecl 0 17299 NULL
137056 +disable_so_ifindex_ip6addrlbl_entry_17305 ifindex ip6addrlbl_entry 0 17305 NULL
137057 +disable_so_lookup_enclosing_address_handler_fndecl_17312 lookup_enclosing_address_handler fndecl 3 17312 NULL
137058 +disable_so_addrconf_mod_rs_timer_fndecl_17333 addrconf_mod_rs_timer fndecl 2 17333 NULL nohasharray
137059 +disable_so_dma_addr_tse_buffer_17333 dma_addr tse_buffer 0 17333 &disable_so_addrconf_mod_rs_timer_fndecl_17333
137060 +disable_so_mod_timer_pinned_fndecl_17334 mod_timer_pinned fndecl 2-0 17334 NULL
137061 +disable_so_cpufreq_power_cooling_register_fndecl_17338 cpufreq_power_cooling_register fndecl 2 17338 NULL
137062 +disable_so_bytenr_btrfs_delayed_ref_node_17344 bytenr btrfs_delayed_ref_node 0 17344 NULL
137063 +disable_so_genwqe_debugfs_queue_working_time_open_fndecl_17354 genwqe_debugfs_queue_working_time_open fndecl 0 17354 NULL
137064 +disable_so_poll_select_set_timeout_fndecl_17361 poll_select_set_timeout fndecl 2-3 17361 NULL nohasharray
137065 +disable_so_dma_addr_efx_buffer_17361 dma_addr efx_buffer 0 17361 &disable_so_poll_select_set_timeout_fndecl_17361
137066 +disable_so_loc_addr_nes_cm_node_17375 loc_addr nes_cm_node 0 17375 NULL
137067 +disable_so_sdev_show_eh_timeout_fndecl_17386 sdev_show_eh_timeout fndecl 0 17386 NULL
137068 +disable_so_isl1208_i2c_set_time_fndecl_17398 isl1208_i2c_set_time fndecl 0 17398 NULL
137069 +disable_so_lx_interrupt_handle_async_events_fndecl_17400 lx_interrupt_handle_async_events fndecl 0 17400 NULL
137070 +disable_so_phys_addr_pmem_device_17405 phys_addr pmem_device 0 17405 NULL
137071 +disable_so___cpufreq_remove_dev_prepare_fndecl_17414 __cpufreq_remove_dev_prepare fndecl 0 17414 NULL
137072 +disable_so_readpage_address_space_operations_17426 readpage address_space_operations 0 17426 NULL
137073 +disable_so_last_tdls_pkt_time_sta_info_17439 last_tdls_pkt_time sta_info 0 17439 NULL
137074 +disable_so_bfa_fcs_rport_set_del_timeout_fndecl_17442 bfa_fcs_rport_set_del_timeout fndecl 1 17442 NULL nohasharray
137075 +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
137076 +disable_so_clockevents_update_freq_fndecl_17446 clockevents_update_freq fndecl 2 17446 NULL
137077 +disable_so_dev_addr_init_fndecl_17450 dev_addr_init fndecl 0 17450 NULL
137078 +disable_so_div_clk_fixed_factor_17451 div clk_fixed_factor 0 17451 NULL
137079 +disable_so_t2_ptr_hash_tbl_addr_hi_fcoe_kwqe_init2_17457 t2_ptr_hash_tbl_addr_hi fcoe_kwqe_init2 0 17457 NULL
137080 +disable_so_i_unsignaled_bytes_rds_iw_connection_17462 i_unsignaled_bytes rds_iw_connection 0 17462 NULL
137081 +disable_so_calc_pmtimer_ref_fndecl_17467 calc_pmtimer_ref fndecl 0-2-3-1 17467 NULL
137082 +disable_so_mb_dma_address_skd_fitmsg_context_17468 mb_dma_address skd_fitmsg_context 0 17468 NULL
137083 +disable_so_bd_list_addr_hi_bnx2i_cmd_request_17469 bd_list_addr_hi bnx2i_cmd_request 0 17469 NULL
137084 +disable_so_schedule_iso_resource_fndecl_17474 schedule_iso_resource fndecl 2 17474 NULL
137085 +disable_so_select_addr_qla83xx_minidump_entry_pollrd_17476 select_addr qla83xx_minidump_entry_pollrd 0 17476 NULL
137086 +disable_so_ipv4_daddr_nf_bridge_info_17490 ipv4_daddr nf_bridge_info 0 17490 NULL
137087 +disable_so_fifo_delay_map_brcmf_fws_info_17499 fifo_delay_map brcmf_fws_info 0 17499 NULL
137088 +disable_so_cpumask_next_and_fndecl_17511 cpumask_next_and fndecl 1-0 17511 NULL
137089 +disable_so_crypto_ctr_crypt_fndecl_17512 crypto_ctr_crypt fndecl 0-4 17512 NULL
137090 +disable_so_current_frequency_or51132_state_17519 current_frequency or51132_state 0 17519 NULL
137091 +disable_so_clocks_calc_max_nsecs_fndecl_17521 clocks_calc_max_nsecs fndecl 1-2-3-4-0 17521 NULL
137092 +disable_so_brcmf_get_next_free_bsscfgidx_fndecl_17528 brcmf_get_next_free_bsscfgidx fndecl 0 17528 NULL
137093 +disable_so_ide_dma_timeout_retry_fndecl_17531 ide_dma_timeout_retry fndecl 2 17531 NULL
137094 +disable_so_radeon_legacy_get_engine_clock_fndecl_17536 radeon_legacy_get_engine_clock fndecl 0 17536 NULL
137095 +disable_so_longcal_timer_ath_ani_17540 longcal_timer ath_ani 0 17540 NULL
137096 +disable_so_beacon_init_val_il_rxon_time_cmd_17543 beacon_init_val il_rxon_time_cmd 0 17543 NULL
137097 +disable_so_bcma_pmu_xtalfreq_fndecl_17556 bcma_pmu_xtalfreq fndecl 0 17556 NULL
137098 +disable_so_hdelay_timing_17557 hdelay timing 0 17557 NULL
137099 +disable_so_ticks_snd_seq_timer_17559 ticks snd_seq_timer 0 17559 NULL nohasharray
137100 +disable_so_coublock_signal_struct_17559 coublock signal_struct 0 17559 &disable_so_ticks_snd_seq_timer_17559
137101 +disable_so_snd_timer_dev_register_fndecl_17565 snd_timer_dev_register fndecl 0 17565 NULL
137102 +disable_so_wait_on_bit_lock_action_fndecl_17576 wait_on_bit_lock_action fndecl 0 17576 NULL
137103 +disable_so_node_guid_nodeinfo_17589 node_guid nodeinfo 0 17589 NULL
137104 +disable_so_packet_filter_bitmap_kaweth_device_17590 packet_filter_bitmap kaweth_device 0 17590 NULL
137105 +disable_so_erase_timeout_sd_ssr_17594 erase_timeout sd_ssr 0 17594 NULL
137106 +disable_so_ratio_r_rj54n1_clock_div_17609 ratio_r rj54n1_clock_div 0 17609 NULL
137107 +disable_so_clock_info_cmd_complete_fndecl_17616 clock_info_cmd_complete fndecl 0 17616 NULL
137108 +disable_so_cir_addr_nvt_dev_17619 cir_addr nvt_dev 0 17619 NULL
137109 +disable_so_plink_timeout_mesh_config_17621 plink_timeout mesh_config 0 17621 NULL
137110 +disable_so_numaddr_mwl8k_cmd_mac_multicast_adr_17633 numaddr mwl8k_cmd_mac_multicast_adr 0 17633 NULL
137111 +enable_so_last_used_idx_vringh_17635 last_used_idx vringh 0 17635 NULL nohasharray
137112 +disable_so_addr_nvbios_extdev_func_17635 addr nvbios_extdev_func 0 17635 &enable_so_last_used_idx_vringh_17635 nohasharray
137113 +disable_so_xfs_btree_set_numrecs_fndecl_17635 xfs_btree_set_numrecs fndecl 2 17635 &disable_so_addr_nvbios_extdev_func_17635
137114 +disable_so_pll_clkdiv_adau1701_17652 pll_clkdiv adau1701 0 17652 NULL
137115 +disable_so_btree_insert_raw_fndecl_17655 btree_insert_raw fndecl 0-2 17655 NULL
137116 +disable_so_svm_adjust_tsc_offset_fndecl_17663 svm_adjust_tsc_offset fndecl 2 17663 NULL
137117 +disable_so_mpll_ss2_ni_clock_registers_17677 mpll_ss2 ni_clock_registers 0 17677 NULL
137118 +disable_so_seq_zoran_sync_17679 seq zoran_sync 0 17679 NULL
137119 +disable_so_frequency_drv2667_data_17686 frequency drv2667_data 0 17686 NULL
137120 +disable_so_ieee80211_if_fmt_beacon_timeout_fndecl_17690 ieee80211_if_fmt_beacon_timeout fndecl 0-3 17690 NULL
137121 +disable_so_switch_time_iwl5000_channel_switch_cmd_17709 switch_time iwl5000_channel_switch_cmd 0 17709 NULL
137122 +disable_so_paging64_walk_addr_generic_fndecl_17719 paging64_walk_addr_generic fndecl 4-5 17719 NULL
137123 +disable_so_hw_usb_set_address_fndecl_17723 hw_usb_set_address fndecl 2 17723 NULL
137124 +disable_so_sysrq_reset_downtime_ms_vardecl_sysrq_c_17734 sysrq_reset_downtime_ms vardecl_sysrq.c 0 17734 NULL
137125 +disable_so_ttime_mean_cfq_ttime_17742 ttime_mean cfq_ttime 0 17742 NULL nohasharray
137126 +disable_so_cpufreq_add_dev_fndecl_17742 cpufreq_add_dev fndecl 0 17742 &disable_so_ttime_mean_cfq_ttime_17742
137127 +disable_so_int_poll_timeout_fndecl_17745 int_poll_timeout fndecl 1 17745 NULL
137128 +disable_so_pmdown_time_snd_soc_pcm_runtime_17753 pmdown_time snd_soc_pcm_runtime 0 17753 NULL
137129 +disable_so_i_dtime_ocfs2_dinode_17762 i_dtime ocfs2_dinode 0 17762 NULL
137130 +disable_so_stk1160_write_reg_fndecl_17777 stk1160_write_reg fndecl 0-2-3 17777 NULL
137131 +disable_so_wlcore_save_freed_pkts_addr_fndecl_17778 wlcore_save_freed_pkts_addr fndecl 3 17778 NULL
137132 +disable_so_sys_getuid_fndecl_17783 sys_getuid fndecl 0 17783 NULL
137133 +disable_so_ath5k_hw_set_ack_timeout_fndecl_17785 ath5k_hw_set_ack_timeout fndecl 2 17785 NULL
137134 +disable_so_vfio_intx_set_signal_fndecl_17806 vfio_intx_set_signal fndecl 0 17806 NULL
137135 +disable_so_hash_dst_fndecl_17815 hash_dst fndecl 0-2-3 17815 NULL
137136 +disable_so_ci_set_smc_sram_address_fndecl_17817 ci_set_smc_sram_address fndecl 0-2 17817 NULL
137137 +disable_so_ax_pt_regs_17818 ax pt_regs 0 17818 NULL
137138 +disable_so_gf110_fan_pwm_clock_fndecl_17824 gf110_fan_pwm_clock fndecl 0 17824 NULL nohasharray
137139 +disable_so_txdescmem_busaddr_altera_tse_private_17824 txdescmem_busaddr altera_tse_private 0 17824 &disable_so_gf110_fan_pwm_clock_fndecl_17824
137140 +disable_so_shash_digest_unaligned_fndecl_17828 shash_digest_unaligned fndecl 0-3 17828 NULL
137141 +disable_so_crypto_user_rcv_msg_fndecl_17830 crypto_user_rcv_msg fndecl 0 17830 NULL
137142 +disable_so_hfsplus_bnode_findhash_fndecl_17834 hfsplus_bnode_findhash fndecl 2 17834 NULL
137143 +disable_so_hactive_lo_oaktrail_timing_info_17844 hactive_lo oaktrail_timing_info 0 17844 NULL
137144 +disable_so_paddr_eni_skb_prv_17847 paddr eni_skb_prv 0 17847 NULL nohasharray
137145 +disable_so_proc_disconnectsignal_fndecl_17847 proc_disconnectsignal fndecl 0 17847 &disable_so_paddr_eni_skb_prv_17847
137146 +disable_so_msec_bts_action_delay_17848 msec bts_action_delay 0 17848 NULL
137147 +disable_so_start_fixed_mtrr_segment_17854 start fixed_mtrr_segment 0 17854 NULL
137148 +disable_so_addr_mlx4_wqe_data_seg_17863 addr mlx4_wqe_data_seg 0 17863 NULL
137149 +disable_so_vhost32_to_cpu_fndecl_17870 vhost32_to_cpu fndecl 0-2 17870 NULL
137150 +disable_so_wl1273_fm_get_freq_fndecl_17876 wl1273_fm_get_freq fndecl 0 17876 NULL
137151 +disable_so_sumo_set_divider_value_fndecl_17879 sumo_set_divider_value fndecl 3-2 17879 NULL
137152 +disable_so_dev_stc_uvc_clock_sample_17886 dev_stc uvc_clock_sample 0 17886 NULL
137153 +disable_so_xfs_bmap_extents_to_btree_fndecl_17888 xfs_bmap_extents_to_btree fndecl 0 17888 NULL nohasharray
137154 +disable_so_sha1_ssse3_finup_fndecl_17888 sha1_ssse3_finup fndecl 3 17888 &disable_so_xfs_bmap_extents_to_btree_fndecl_17888
137155 +disable_so_address_threshold_block_17898 address threshold_block 0 17898 NULL
137156 +disable_so_timeout_vardecl_w83793_c_17902 timeout vardecl_w83793.c 0 17902 NULL
137157 +disable_so_bitmap_port_gc_test_fndecl_17905 bitmap_port_gc_test fndecl 3 17905 NULL
137158 +disable_so_efx_ef10_filter_hash_fndecl_17915 efx_ef10_filter_hash fndecl 0 17915 NULL
137159 +disable_so_i40evf_init_interrupt_scheme_fndecl_17922 i40evf_init_interrupt_scheme fndecl 0 17922 NULL
137160 +disable_so_get_descriptor_addr_fndecl_17925 get_descriptor_addr fndecl 0 17925 NULL
137161 +disable_so_fll_loop_gain__fll_div_17926 fll_loop_gain _fll_div 0 17926 NULL
137162 +disable_so_timestamp_nfs_pgio_header_17936 timestamp nfs_pgio_header 0 17936 NULL
137163 +disable_so_axp20x_set_dcdc_freq_fndecl_17938 axp20x_set_dcdc_freq fndecl 0-2 17938 NULL
137164 +disable_so_fc2580_s_frequency_fndecl_17946 fc2580_s_frequency fndecl 0 17946 NULL
137165 +disable_so_cxd2820r_sleep_fndecl_17948 cxd2820r_sleep fndecl 0 17948 NULL
137166 +disable_so_shash_update_unaligned_fndecl_17955 shash_update_unaligned fndecl 0-3 17955 NULL
137167 +disable_so_queue_snd_seq_queue_timer_17961 queue snd_seq_queue_timer 0 17961 NULL nohasharray
137168 +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
137169 +disable_so_pcc_cpufreq_probe_fndecl_17966 pcc_cpufreq_probe fndecl 0 17966 NULL nohasharray
137170 +disable_so_rsa_extract_mpi_fndecl_17966 rsa_extract_mpi fndecl 5 17966 &disable_so_pcc_cpufreq_probe_fndecl_17966
137171 +disable_so_rxrpc_resend_timeout_vardecl_17967 rxrpc_resend_timeout vardecl 0 17967 NULL nohasharray
137172 +disable_so_cxd2820r_sleep_c_fndecl_17967 cxd2820r_sleep_c fndecl 0 17967 &disable_so_rxrpc_resend_timeout_vardecl_17967
137173 +disable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 0 17972 NULL
137174 +disable_so_perf_event_time_fndecl_17980 perf_event_time fndecl 0 17980 NULL nohasharray
137175 +disable_so_crypto_ahash_update_fndecl_17980 crypto_ahash_update fndecl 0 17980 &disable_so_perf_event_time_fndecl_17980
137176 +disable_so_palmas_clear_interrupts_fndecl_17987 palmas_clear_interrupts fndecl 0 17987 NULL
137177 +disable_so_timeout_vardecl_nf_conntrack_snmp_c_17991 timeout vardecl_nf_conntrack_snmp.c 0 17991 NULL
137178 +disable_so_addr_lo_eth_rx_sge_17992 addr_lo eth_rx_sge 0 17992 NULL
137179 +disable_so_cryptd_hash_update_fndecl_17997 cryptd_hash_update fndecl 2 17997 NULL
137180 +disable_so_crypto_authenc_esn_setkey_fndecl_18010 crypto_authenc_esn_setkey fndecl 0 18010 NULL
137181 +disable_so_uwb_rc_mac_addr_store_fndecl_18016 uwb_rc_mac_addr_store fndecl 0-4 18016 NULL
137182 +disable_so_netlbl_unlhsh_hash_fndecl_18024 netlbl_unlhsh_hash fndecl 0-1 18024 NULL
137183 +disable_so_min_delta_ns_clock_event_device_18031 min_delta_ns clock_event_device 0 18031 NULL
137184 +disable_so_ali_timeout_bits_vardecl_alim1535_wdt_c_18033 ali_timeout_bits vardecl_alim1535_wdt.c 0 18033 NULL
137185 +disable_so_sci_mpxed_interrupt_fndecl_18035 sci_mpxed_interrupt fndecl 1 18035 NULL
137186 +disable_so_time_freq_vardecl_ntp_c_18036 time_freq vardecl_ntp.c 0 18036 NULL
137187 +disable_so_be_cmd_page_addrs_prepare_fndecl_18059 be_cmd_page_addrs_prepare fndecl 2 18059 NULL
137188 +disable_so_base_addr_brcmf_pcie_console_18075 base_addr brcmf_pcie_console 0 18075 NULL
137189 +disable_so_seq_cn_msg_18076 seq cn_msg 0 18076 NULL
137190 +disable_so_packet_time_ipw_ibss_seq_18079 packet_time ipw_ibss_seq 0 18079 NULL
137191 +disable_so_atomic_set_property_drm_connector_funcs_18088 atomic_set_property drm_connector_funcs 0-4 18088 NULL
137192 +disable_so_ts_jiffies_uwb_event_18092 ts_jiffies uwb_event 0 18092 NULL nohasharray
137193 +disable_so_xc_set_rf_frequency_fndecl_18092 xc_set_rf_frequency fndecl 0-2 18092 &disable_so_ts_jiffies_uwb_event_18092
137194 +disable_so_beacon_time_tsf_bits_il_hw_params_18095 beacon_time_tsf_bits il_hw_params 0 18095 NULL
137195 +disable_so_restore_freq_cpufreq_policy_18098 restore_freq cpufreq_policy 0 18098 NULL
137196 +disable_so_link_check_timeout_ixgbe_adapter_18101 link_check_timeout ixgbe_adapter 0 18101 NULL
137197 +disable_so_zd_iowrite32_fndecl_18117 zd_iowrite32 fndecl 0-3 18117 NULL nohasharray
137198 +disable_so_block_bitmap_ext3_new_group_data_18117 block_bitmap ext3_new_group_data 0 18117 &disable_so_zd_iowrite32_fndecl_18117
137199 +disable_so_radeon_fence_schedule_check_fndecl_18136 radeon_fence_schedule_check fndecl 2 18136 NULL
137200 +disable_so_ed_schedule_fndecl_18142 ed_schedule fndecl 0 18142 NULL
137201 +disable_so_pci_clock_ctrl_tg3_18144 pci_clock_ctrl tg3 0 18144 NULL
137202 +disable_so_start_i915_address_space_18152 start i915_address_space 0 18152 NULL
137203 +disable_so_reg_w_fndecl_18159 reg_w fndecl 2 18159 NULL
137204 +disable_so_xfrm_get_saddr_fndecl_18161 xfrm_get_saddr fndecl 4 18161 NULL
137205 +disable_so_src_addr_rcar_dmac_xfer_chunk_18165 src_addr rcar_dmac_xfer_chunk 0 18165 NULL
137206 +disable_so_chip_init_time_esas2r_adapter_18169 chip_init_time esas2r_adapter 0 18169 NULL
137207 +disable_so___btree_submit_bio_done_fndecl_18170 __btree_submit_bio_done fndecl 0-2 18170 NULL
137208 +disable_so_pick_local_ipaddrs_fndecl_18171 pick_local_ipaddrs fndecl 0 18171 NULL
137209 +disable_so_host_sof_uvc_clock_sample_18177 host_sof uvc_clock_sample 0 18177 NULL
137210 +disable_so_ratio_op_rj54n1_clock_div_18180 ratio_op rj54n1_clock_div 0 18180 NULL
137211 +disable_so_dm_btree_remove_leaves_fndecl_18182 dm_btree_remove_leaves fndecl 0-2-4 18182 NULL
137212 +disable_so_rfcomm_session_set_timer_fndecl_18183 rfcomm_session_set_timer fndecl 2 18183 NULL
137213 +disable_so_i_gid_ext2_inode_18187 i_gid ext2_inode 0 18187 NULL
137214 +disable_so_tipc_tlv_sprintf_fndecl_18203 tipc_tlv_sprintf fndecl 0 18203 NULL
137215 +disable_so_usbnet_get_ethernet_addr_fndecl_18204 usbnet_get_ethernet_addr fndecl 0 18204 NULL
137216 +disable_so_faddr_drm_i915_error_ring_18209 faddr drm_i915_error_ring 0 18209 NULL
137217 +disable_so_nla_put_ipaddr4_fndecl_18214 nla_put_ipaddr4 fndecl 0 18214 NULL
137218 +disable_so_ring_dma_addr_netdev_private_18216 ring_dma_addr netdev_private 0 18216 NULL
137219 +disable_so_fc_gid_ft_build_fndecl_18221 fc_gid_ft_build fndecl 0-3 18221 NULL
137220 +disable_so_base_hi_mtrr_var_range_18224 base_hi mtrr_var_range 0 18224 NULL nohasharray
137221 +disable_so_mISDNisac_irq_fndecl_18224 mISDNisac_irq fndecl 2 18224 &disable_so_base_hi_mtrr_var_range_18224
137222 +disable_so_no_bit_error_verify_fndecl_18225 no_bit_error_verify fndecl 4 18225 NULL
137223 +disable_so_account_guest_time_fndecl_18233 account_guest_time fndecl 2-3 18233 NULL
137224 +disable_so_show_port_gid_idx_fndecl_18237 show_port_gid_idx fndecl 0 18237 NULL
137225 +disable_so_ath9k_hw_set_cts_timeout_fndecl_18239 ath9k_hw_set_cts_timeout fndecl 2 18239 NULL
137226 +disable_so_sctp_raw_to_bind_addrs_fndecl_18240 sctp_raw_to_bind_addrs fndecl 0-3-4-5 18240 NULL
137227 +disable_so_format_snd_pcm_oss_runtime_18246 format snd_pcm_oss_runtime 0 18246 NULL
137228 +disable_so_ring_base_address_kfd_ioctl_update_queue_args_18252 ring_base_address kfd_ioctl_update_queue_args 0 18252 NULL
137229 +disable_so_best_dsc_rw_freq_ide_tape_obj_18253 best_dsc_rw_freq ide_tape_obj 0 18253 NULL
137230 +disable_so_mlx4_ib_set_default_gid_fndecl_18263 mlx4_ib_set_default_gid fndecl 3 18263 NULL
137231 +disable_so_msrpm_base_pa_vmcb_control_area_18266 msrpm_base_pa vmcb_control_area 0 18266 NULL
137232 +disable_so_macb_reg_writel_macb_18287 macb_reg_writel macb 3 18287 NULL
137233 +disable_so_btrfs_inode_delayed_dir_index_count_fndecl_18292 btrfs_inode_delayed_dir_index_count fndecl 0 18292 NULL
137234 +disable_so_rounded_hashtable_size_fndecl_18305 rounded_hashtable_size fndecl 0 18305 NULL
137235 +disable_so_kv_calculate_ds_divider_fndecl_18314 kv_calculate_ds_divider fndecl 0 18314 NULL
137236 +disable_so_srom_address_fndecl_18316 srom_address fndecl 2 18316 NULL
137237 +disable_so_min_keysize_blkcipher_alg_18320 min_keysize blkcipher_alg 0 18320 NULL
137238 +disable_so_sd_atime_stat_data_v1_18328 sd_atime stat_data_v1 0 18328 NULL nohasharray
137239 +disable_so_last_valid_interrupt_tsc2005_18328 last_valid_interrupt tsc2005 0 18328 &disable_so_sd_atime_stat_data_v1_18328
137240 +disable_so_divider_sm501_clock_18331 divider sm501_clock 0 18331 NULL
137241 +disable_so_dwell_time_dfs_conf_sched_scan_settings_18333 dwell_time_dfs conf_sched_scan_settings 0 18333 NULL
137242 +disable_so_synaptics_i2c_reschedule_work_fndecl_18336 synaptics_i2c_reschedule_work fndecl 2 18336 NULL
137243 +disable_so_active_time_dce6_wm_params_18344 active_time dce6_wm_params 0 18344 NULL
137244 +disable_so_shpchp_poll_time_vardecl_18356 shpchp_poll_time vardecl 0 18356 NULL
137245 +disable_so_qat_alg_ablkcipher_init_sessions_fndecl_18359 qat_alg_ablkcipher_init_sessions fndecl 3 18359 NULL
137246 +disable_so_next_blkaddr_node_footer_18360 next_blkaddr node_footer 0 18360 NULL
137247 +disable_so_r9701_set_datetime_fndecl_18365 r9701_set_datetime fndecl 0 18365 NULL
137248 +disable_so_global_default_cipher_key_size_ecryptfs_mount_crypt_stat_18369 global_default_cipher_key_size ecryptfs_mount_crypt_stat 0 18369 NULL
137249 +disable_so_read_tsc_offset_kvm_x86_ops_18374 read_tsc_offset kvm_x86_ops 0 18374 NULL
137250 +disable_so_chunkshift_bitmap_counts_18388 chunkshift bitmap_counts 0 18388 NULL
137251 +disable_so_daddr_i915_page_table_entry_18391 daddr i915_page_table_entry 0 18391 NULL
137252 +disable_so_set_addr_filters_fndecl_18395 set_addr_filters fndecl 0 18395 NULL nohasharray
137253 +disable_so_writepages_address_space_operations_18395 writepages address_space_operations 0 18395 &disable_so_set_addr_filters_fndecl_18395
137254 +disable_so_ablkcipher_next_fast_fndecl_18397 ablkcipher_next_fast fndecl 0 18397 NULL
137255 +disable_so_local_ref_time_lp_18398 local_ref_time lp 0 18398 NULL
137256 +disable_so_size__cpuid4_info_regs_18403 size _cpuid4_info_regs 0 18403 NULL
137257 +disable_so_st_atime_sec_p9_stat_dotl_18404 st_atime_sec p9_stat_dotl 0 18404 NULL nohasharray
137258 +disable_so_hackrf_s_frequency_fndecl_18404 hackrf_s_frequency fndecl 0 18404 &disable_so_st_atime_sec_p9_stat_dotl_18404
137259 +disable_so_ext4_inode_bitmap_fndecl_18405 ext4_inode_bitmap fndecl 0 18405 NULL
137260 +disable_so_crypto_sha256_finup_fndecl_18406 crypto_sha256_finup fndecl 3 18406 NULL
137261 +disable_so_timeout_ip_vs_sync_v4_18416 timeout ip_vs_sync_v4 0 18416 NULL nohasharray
137262 +disable_so_nla_put_hwaddr_fndecl_18416 nla_put_hwaddr fndecl 0 18416 &disable_so_timeout_ip_vs_sync_v4_18416
137263 +disable_so_tasklet_hrtimer_init_fndecl_18423 tasklet_hrtimer_init fndecl 3 18423 NULL
137264 +disable_so_ieee80211_if_fmt_path_refresh_time_fndecl_18427 ieee80211_if_fmt_path_refresh_time fndecl 0-3 18427 NULL
137265 +disable_so_address_high_b43_dmadesc64_18431 address_high b43_dmadesc64 0 18431 NULL
137266 +disable_so_wd_timeout_mei_device_18432 wd_timeout mei_device 0 18432 NULL
137267 +disable_so_bitmap_fold_fndecl_18439 bitmap_fold fndecl 4 18439 NULL
137268 +disable_so_dma_addr_freelQ_ce_18441 dma_addr freelQ_ce 0 18441 NULL
137269 +disable_so_demod_address_cx24117_config_18444 demod_address cx24117_config 0 18444 NULL
137270 +disable_so_rs5c372_get_datetime_fndecl_18451 rs5c372_get_datetime fndecl 0 18451 NULL
137271 +disable_so_diolan_set_clock_synch_fndecl_18461 diolan_set_clock_synch fndecl 0 18461 NULL nohasharray
137272 +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
137273 +disable_so_mac_addr_low_nes_adapter_18465 mac_addr_low nes_adapter 0 18465 NULL
137274 +disable_so_sci_interrupt_acpi_table_fadt_18467 sci_interrupt acpi_table_fadt 0 18467 NULL
137275 +disable_so_mii_bmsr_bnx2_18468 mii_bmsr bnx2 0 18468 NULL
137276 +disable_so_qla4xxx_fw_timestamp_show_fndecl_18474 qla4xxx_fw_timestamp_show fndecl 0 18474 NULL
137277 +disable_so_viafb_fill_crtc_timing_fndecl_18476 viafb_fill_crtc_timing fndecl 2-3 18476 NULL
137278 +disable_so_sysctl_max_tw_buckets_inet_timewait_death_row_18487 sysctl_max_tw_buckets inet_timewait_death_row 0 18487 NULL
137279 +disable_so_hfdiv_dib0090_pll_18489 hfdiv dib0090_pll 0 18489 NULL
137280 +disable_so_demod_address_si21xx_config_18490 demod_address si21xx_config 0 18490 NULL
137281 +disable_so_sbp_tpg_attrib_show_max_reconnect_timeout_fndecl_18494 sbp_tpg_attrib_show_max_reconnect_timeout fndecl 0 18494 NULL
137282 +disable_so_cciss_find_cfg_addrs_fndecl_18500 cciss_find_cfg_addrs fndecl 0 18500 NULL
137283 +disable_so_sdo_runtime_resume_fndecl_18516 sdo_runtime_resume fndecl 0 18516 NULL
137284 +disable_so_available_uuids_show_fndecl_18518 available_uuids_show fndecl 0 18518 NULL
137285 +disable_so_mtrr_open_fndecl_18521 mtrr_open fndecl 0 18521 NULL
137286 +disable_so_r_min_rnr_timer_ipath_qp_18527 r_min_rnr_timer ipath_qp 0 18527 NULL
137287 +disable_so_fixed_mtrr_addr_seg_to_range_index_fndecl_18537 fixed_mtrr_addr_seg_to_range_index fndecl 1-0 18537 NULL
137288 +disable_so_timeout_floppy_drive_params_18540 timeout floppy_drive_params 0 18540 NULL
137289 +disable_so_show_cpu_clock_fndecl_18546 show_cpu_clock fndecl 0 18546 NULL
137290 +disable_so_inet6_fill_ifacaddr_fndecl_18549 inet6_fill_ifacaddr fndecl 0-3-5 18549 NULL
137291 +disable_so_physical_address_kvm_translation_18550 physical_address kvm_translation 0 18550 NULL
137292 +disable_so_kvm_mtrr_set_msr_fndecl_18553 kvm_mtrr_set_msr fndecl 3 18553 NULL
137293 +disable_so_dccp_timestamp_fndecl_18560 dccp_timestamp fndecl 0 18560 NULL
137294 +disable_so_frequency_analog_parameters_18561 frequency analog_parameters 0 18561 NULL
137295 +disable_so_resp_bd_list_addr_lo_bnx2i_login_request_18562 resp_bd_list_addr_lo bnx2i_login_request 0 18562 NULL
137296 +disable_so_pixels_1_gpu_addr_mga_cursor_18572 pixels_1_gpu_addr mga_cursor 0 18572 NULL
137297 +disable_so_compat_sys_stime_fndecl_18574 compat_sys_stime fndecl 0 18574 NULL
137298 +disable_so_timestamp_fwd_flush_batadv_priv_nc_18585 timestamp_fwd_flush batadv_priv_nc 0 18585 NULL nohasharray
137299 +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
137300 +disable_so_sleep_cookie_pbase_pcie_service_card_18597 sleep_cookie_pbase pcie_service_card 0 18597 NULL
137301 +disable_so_sm_set_bitmap_fndecl_18598 sm_set_bitmap fndecl 2 18598 NULL
137302 +disable_so_lr_timeout_ext4_li_request_18599 lr_timeout ext4_li_request 0 18599 NULL
137303 +disable_so_start_time_bfa_diag_dport_subtest_result_s_18621 start_time bfa_diag_dport_subtest_result_s 0 18621 NULL
137304 +disable_so_ieee80211_aes_gmac_key_setup_fndecl_18626 ieee80211_aes_gmac_key_setup fndecl 2 18626 NULL
137305 +disable_so_code_addr_pmu_nvbios_pmuR_18630 code_addr_pmu nvbios_pmuR 0 18630 NULL
137306 +disable_so_btree_write_alias_fndecl_18631 btree_write_alias fndecl 0 18631 NULL
137307 +disable_so_level_btrfs_delayed_tree_ref_18632 level btrfs_delayed_tree_ref 0 18632 NULL
137308 +disable_so_bch_strtoull_h_fndecl_18633 bch_strtoull_h fndecl 0 18633 NULL
137309 +disable_so_resolution_snd_timer_status_18636 resolution snd_timer_status 0 18636 NULL
137310 +disable_so_crypto_module_init_fndecl_18640 crypto_module_init fndecl 0 18640 NULL
137311 +disable_so_mic_to_dma_addr_fndecl_18642 mic_to_dma_addr fndecl 0-2 18642 NULL
137312 +disable_so_nonblocking_wait_time_shtc1_data_18656 nonblocking_wait_time shtc1_data 0 18656 NULL
137313 +disable_so___remove_suid_fndecl_18657 __remove_suid fndecl 0 18657 NULL
137314 +disable_so_bootime_st_sensor_settings_18658 bootime st_sensor_settings 0 18658 NULL
137315 +disable_so_total_ref_mod_btrfs_delayed_ref_head_18666 total_ref_mod btrfs_delayed_ref_head 0 18666 NULL
137316 +disable_so_is_noncanonical_address_fndecl_18677 is_noncanonical_address fndecl 1 18677 NULL
137317 +disable_so_xcan_set_bittiming_fndecl_18678 xcan_set_bittiming fndecl 0 18678 NULL
137318 +disable_so_ipmi_set_my_address_fndecl_18680 ipmi_set_my_address fndecl 0 18680 NULL
137319 +disable_so_pixels_2_gpu_addr_mga_cursor_18686 pixels_2_gpu_addr mga_cursor 0 18686 NULL
137320 +disable_so_adjust_tsc_offset_guest_fndecl_18708 adjust_tsc_offset_guest fndecl 2 18708 NULL
137321 +disable_so_meson_spifc_runtime_resume_fndecl_18709 meson_spifc_runtime_resume fndecl 0 18709 NULL
137322 +disable_so_mclk_pwrmgt_cntl_rv770_clock_registers_18711 mclk_pwrmgt_cntl rv770_clock_registers 0 18711 NULL
137323 +disable_so_avgidle_cbq_class_18722 avgidle cbq_class 0 18722 NULL
137324 +disable_so_nla_nest_end_fndecl_18729 nla_nest_end fndecl 0 18729 NULL
137325 +disable_so_suspend_time_il_scan_cmd_18736 suspend_time il_scan_cmd 0 18736 NULL
137326 +disable_so_jiffies_to_timespec_fndecl_18737 jiffies_to_timespec fndecl 1 18737 NULL
137327 +disable_so___uwb_addr_print_fndecl_18746 __uwb_addr_print fndecl 0 18746 NULL
137328 +disable_so_apicid_set_error_type_with_address_18747 apicid set_error_type_with_address 0 18747 NULL
137329 +disable_so_reachable_time_ifla_cacheinfo_18748 reachable_time ifla_cacheinfo 0 18748 NULL
137330 +disable_so_mxl111sf_write_reg_fndecl_18752 mxl111sf_write_reg fndecl 0 18752 NULL
137331 +disable_so_img_ir_timing_preprocess_fndecl_18766 img_ir_timing_preprocess fndecl 2 18766 NULL
137332 +disable_so_aosr_aic31xx_rate_divs_18787 aosr aic31xx_rate_divs 0 18787 NULL
137333 +disable_so_led_set_flash_timeout_fndecl_18793 led_set_flash_timeout fndecl 2 18793 NULL
137334 +disable_so_proc_dointvec_userhz_jiffies_fndecl_18794 proc_dointvec_userhz_jiffies fndecl 0 18794 NULL
137335 +disable_so_return_address_stack_frame_18797 return_address stack_frame 0 18797 NULL
137336 +disable_so_perf_set_shadow_time_fndecl_18814 perf_set_shadow_time fndecl 3 18814 NULL nohasharray
137337 +disable_so_start_time_mem_ctl_info_18814 start_time mem_ctl_info 0 18814 &disable_so_perf_set_shadow_time_fndecl_18814
137338 +disable_so_out_of_int_time_mmc_ext_csd_18824 out_of_int_time mmc_ext_csd 0 18824 NULL
137339 +disable_so_tmr_subdevice_snd_timer_18828 tmr_subdevice snd_timer 0 18828 NULL
137340 +disable_so_xgmac_reg_addr_read_fndecl_18829 xgmac_reg_addr_read fndecl 3-0 18829 NULL
137341 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_retries_fndecl_18834 iscsi_nacl_attrib_show_dataout_timeout_retries fndecl 0 18834 NULL
137342 +disable_so_ip_hash_net4_elem_18835 ip hash_net4_elem 0 18835 NULL
137343 +disable_so_gid_ucred_18846 gid ucred 0 18846 NULL
137344 +disable_so_r44_val_fc2580_freq_regs_18847 r44_val fc2580_freq_regs 0 18847 NULL
137345 +disable_so_fotg210_set_dev_addr_fndecl_18854 fotg210_set_dev_addr fndecl 2 18854 NULL
137346 +disable_so_mac_time_hostap_80211_rx_status_18865 mac_time hostap_80211_rx_status 0 18865 NULL
137347 +disable_so___smsc95xx_write_reg_fndecl_18876 __smsc95xx_write_reg fndecl 0-2-3 18876 NULL
137348 +disable_so_svm_write_tsc_offset_fndecl_18879 svm_write_tsc_offset fndecl 2 18879 NULL
137349 +disable_so_max8997_rtc_read_time_fndecl_18881 max8997_rtc_read_time fndecl 0 18881 NULL nohasharray
137350 +disable_so_prev_tsc_cpudata_18881 prev_tsc cpudata 0 18881 &disable_so_max8997_rtc_read_time_fndecl_18881
137351 +disable_so_padlock_sha1_update_nano_fndecl_18884 padlock_sha1_update_nano fndecl 3 18884 NULL
137352 +disable_so_sysctl_rose_restart_request_timeout_vardecl_18885 sysctl_rose_restart_request_timeout vardecl 0 18885 NULL
137353 +disable_so_sysctl_aarp_expiry_time_vardecl_18891 sysctl_aarp_expiry_time vardecl 0 18891 NULL
137354 +disable_so_crypto_register_pcomp_fndecl_18915 crypto_register_pcomp fndecl 0 18915 NULL
137355 +disable_so_ata_timing_cycle2mode_fndecl_18918 ata_timing_cycle2mode fndecl 0 18918 NULL
137356 +disable_so_proc_dointvec_ms_jiffies_fndecl_18925 proc_dointvec_ms_jiffies fndecl 0 18925 NULL
137357 +disable_so_busaddr_vlsi_irda_dev_18931 busaddr vlsi_irda_dev 0 18931 NULL
137358 +disable_so_rx_coalescing_timeo_bna_ccb_18934 rx_coalescing_timeo bna_ccb 0 18934 NULL
137359 +disable_so_tx_ring_dma_addr_pcnet32_private_18936 tx_ring_dma_addr pcnet32_private 0 18936 NULL
137360 +disable_so_netlbl_unlhsh_add_addr6_fndecl_18945 netlbl_unlhsh_add_addr6 fndecl 4-0 18945 NULL nohasharray
137361 +disable_so_libipw_channel_to_freq_fndecl_18945 libipw_channel_to_freq fndecl 0-2 18945 &disable_so_netlbl_unlhsh_add_addr6_fndecl_18945
137362 +disable_so_oo_time_nfs4_openowner_18954 oo_time nfs4_openowner 0 18954 NULL
137363 +disable_so_rht_key_hashfn_fndecl_18957 rht_key_hashfn fndecl 0 18957 NULL
137364 +disable_so_query_id_mlx4_alias_guid_work_context_18958 query_id mlx4_alias_guid_work_context 0 18958 NULL nohasharray
137365 +disable_so_address_rq_enet_desc_18958 address rq_enet_desc 0 18958 &disable_so_query_id_mlx4_alias_guid_work_context_18958
137366 +disable_so_scan_bitmap_fndecl_18963 scan_bitmap fndecl 0-3-5-7 18963 NULL
137367 +disable_so_btrfs_item_key_to_cpu_fndecl_18966 btrfs_item_key_to_cpu fndecl 3 18966 NULL
137368 +disable_so_store_fan_time_fndecl_18972 store_fan_time fndecl 0-4 18972 NULL
137369 +disable_so_hash_conntrack_fndecl_18974 hash_conntrack fndecl 0 18974 NULL
137370 +disable_so_lsndtime_tcp_sock_18975 lsndtime tcp_sock 0 18975 NULL
137371 +disable_so_ratio_tg_rj54n1_clock_div_18979 ratio_tg rj54n1_clock_div 0 18979 NULL
137372 +disable_so_freq_lo_od_cpu_dbs_info_s_18987 freq_lo od_cpu_dbs_info_s 0 18987 NULL
137373 +disable_so_usnic_uiom_interval_tree_compute_subtree_last_fndecl_18989 usnic_uiom_interval_tree_compute_subtree_last fndecl 0 18989 NULL
137374 +disable_so_cg_spll_spread_spectrum_rv770_clock_registers_19000 cg_spll_spread_spectrum rv770_clock_registers 0 19000 NULL
137375 +disable_so_ps_poll_ps_poll_timeouts_read_fndecl_19005 ps_poll_ps_poll_timeouts_read fndecl 3 19005 NULL
137376 +disable_so_addr_low_sata_start_req_19006 addr_low sata_start_req 0 19006 NULL
137377 +disable_so_seq_rxrpc_header_19018 seq rxrpc_header 0 19018 NULL
137378 +disable_so_bs_uid_xfs_bstat_19023 bs_uid xfs_bstat 0 19023 NULL
137379 +disable_so_cmb_rx_timer_atl1_hw_19025 cmb_rx_timer atl1_hw 0 19025 NULL
137380 +disable_so_timestamp_batadv_nc_packet_19027 timestamp batadv_nc_packet 0 19027 NULL
137381 +disable_so_addr_high_ssp_ini_io_start_req_19029 addr_high ssp_ini_io_start_req 0 19029 NULL
137382 +disable_so_n_addresses_rxk5_key_19030 n_addresses rxk5_key 0 19030 NULL
137383 +disable_so_ccp_crypto_enqueue_request_fndecl_19035 ccp_crypto_enqueue_request fndecl 0 19035 NULL
137384 +disable_so_timeout_mxser_port_19037 timeout mxser_port 0 19037 NULL
137385 +disable_so_xfs_btree_rec_addr_fndecl_19048 xfs_btree_rec_addr fndecl 2 19048 NULL
137386 +disable_so_sz_qat_crypto_request_buffs_19050 sz qat_crypto_request_buffs 0 19050 NULL
137387 +disable_so_start_field_bit_offset_acpi_object_field_common_19052 start_field_bit_offset acpi_object_field_common 0 19052 NULL
137388 +disable_so_compat_sys_timer_create_fndecl_19053 compat_sys_timer_create fndecl 1 19053 NULL
137389 +disable_so_ioctl_busaddr_ips_ha_19067 ioctl_busaddr ips_ha 0 19067 NULL
137390 +disable_so_crypto_rng_reset_fndecl_19075 crypto_rng_reset fndecl 3 19075 NULL
137391 +disable_so_alignmask_crypto_hash_walk_19078 alignmask crypto_hash_walk 0 19078 NULL
137392 +disable_so_dst_addr_hi_dmae_command_19086 dst_addr_hi dmae_command 0 19086 NULL
137393 +disable_so_tx_time_us_qlcnic_nic_intr_coalesce_19089 tx_time_us qlcnic_nic_intr_coalesce 0 19089 NULL
137394 +disable_so_sctp_getsockopt_peer_addr_info_fndecl_19099 sctp_getsockopt_peer_addr_info fndecl 0 19099 NULL
137395 +disable_so_ack_interrupt_mbus_hw_ops_19100 ack_interrupt mbus_hw_ops 2 19100 NULL
137396 +disable_so_fm_tx_set_freq_fndecl_19116 fm_tx_set_freq fndecl 0-2 19116 NULL
137397 +disable_so_time_stabiliz_dibx000_agc_config_19117 time_stabiliz dibx000_agc_config 0 19117 NULL
137398 +disable_so_m_session_timeout_ceph_mdsmap_19122 m_session_timeout ceph_mdsmap 0 19122 NULL nohasharray
137399 +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
137400 +disable_so_cfg80211_set_cipher_pairwise_fndecl_19124 cfg80211_set_cipher_pairwise fndecl 2 19124 NULL
137401 +disable_so_addr_low_bufq_addr_element_19128 addr_low bufq_addr_element 0 19128 NULL
137402 +disable_so__random_read_fndecl_19137 _random_read fndecl 0-1-3 19137 NULL
137403 +disable_so_data_timeout_ns_mmc_ioc_cmd_19142 data_timeout_ns mmc_ioc_cmd 0 19142 NULL
137404 +disable_so_sys_timer_getoverrun_fndecl_19145 sys_timer_getoverrun fndecl 1-0 19145 NULL
137405 +disable_so_force_static_address_read_fndecl_19149 force_static_address_read fndecl 3-0 19149 NULL
137406 +disable_so_timeout_vardecl_alim7101_wdt_c_19153 timeout vardecl_alim7101_wdt.c 0 19153 NULL
137407 +disable_so_get_msr_x86_emulate_ops_19170 get_msr x86_emulate_ops 2 19170 NULL
137408 +disable_so_freeze_timeout_msecs_vardecl_19173 freeze_timeout_msecs vardecl 0 19173 NULL
137409 +disable_so_time_mid_afs_uuid_19174 time_mid afs_uuid 0 19174 NULL
137410 +disable_so_do_signal_stop_fndecl_19193 do_signal_stop fndecl 1 19193 NULL
137411 +disable_so_xtime_update_fndecl_19206 xtime_update fndecl 1 19206 NULL
137412 +disable_so_sd_uid_stat_data_19209 sd_uid stat_data 0 19209 NULL
137413 +disable_so_conn_schedule_ip_vs_protocol_19210 conn_schedule ip_vs_protocol 1 19210 NULL
137414 +disable_so_ocfs2_dx_dir_name_hash_fndecl_19211 ocfs2_dx_dir_name_hash fndecl 3 19211 NULL
137415 +disable_so_posix_clock_register_fndecl_19213 posix_clock_register fndecl 2-0 19213 NULL
137416 +disable_so_ctnl_timeout_parse_policy_fndecl_19218 ctnl_timeout_parse_policy fndecl 0 19218 NULL
137417 +disable_so_get_parent_r8a66597_address_fndecl_19219 get_parent_r8a66597_address fndecl 0 19219 NULL
137418 +disable_so_ath5k_hw_htoclock_fndecl_19227 ath5k_hw_htoclock fndecl 2-0 19227 NULL
137419 +disable_so_cport_addr_nm256_19228 cport_addr nm256 0 19228 NULL
137420 +disable_so_mt2032_compute_freq_fndecl_19230 mt2032_compute_freq fndecl 2-3-4 19230 NULL
137421 +disable_so_prox_adjust_channel_bit_mask_fndecl_19253 prox_adjust_channel_bit_mask fndecl 3 19253 NULL
137422 +disable_so_base_addr_vnic_dev_ring_19264 base_addr vnic_dev_ring 0 19264 NULL
137423 +disable_so_authenc_geniv_ahash_update_done_fndecl_19273 authenc_geniv_ahash_update_done fndecl 2 19273 NULL
137424 +disable_so_ath6kl_cfg80211_host_sleep_fndecl_19284 ath6kl_cfg80211_host_sleep fndecl 0 19284 NULL
137425 +disable_so_keyring_detect_cycle_fndecl_19294 keyring_detect_cycle fndecl 0 19294 NULL
137426 +disable_so_bus_addr_img_hash_dev_19301 bus_addr img_hash_dev 0 19301 NULL
137427 +disable_so_nv04_timer_fini_fndecl_19314 nv04_timer_fini fndecl 0 19314 NULL
137428 +disable_so_sysctl_x25_restart_request_timeout_vardecl_19317 sysctl_x25_restart_request_timeout vardecl 0 19317 NULL
137429 +disable_so_timer_in_use_nes_hw_tune_timer_19327 timer_in_use nes_hw_tune_timer 0 19327 NULL
137430 +disable_so_misdn_add_timer_fndecl_19332 misdn_add_timer fndecl 2-0 19332 NULL
137431 +disable_so_timeout_vardecl_rn5t618_wdt_c_19337 timeout vardecl_rn5t618_wdt.c 0 19337 NULL
137432 +disable_so_err_addr_bfa_diag_memtest_result_19350 err_addr bfa_diag_memtest_result 0 19350 NULL
137433 +disable_so_jfs_strtoUCS_fndecl_19357 jfs_strtoUCS fndecl 3-0 19357 NULL
137434 +disable_so_addr_to_vsyscall_nr_fndecl_19368 addr_to_vsyscall_nr fndecl 0-1 19368 NULL
137435 +disable_so_small_buf_phy_addr_high_ql3_adapter_19371 small_buf_phy_addr_high ql3_adapter 0 19371 NULL
137436 +disable_so_micd_bias_start_time_arizona_pdata_19379 micd_bias_start_time arizona_pdata 0 19379 NULL
137437 +disable_so_current_frequency_s5h1411_state_19382 current_frequency s5h1411_state 0 19382 NULL
137438 +disable_so_silence_threshold_snd_pcm_runtime_19384 silence_threshold snd_pcm_runtime 0 19384 NULL
137439 +disable_so_pid_pppol2tpv3_addr_19385 pid pppol2tpv3_addr 0 19385 NULL
137440 +disable_so_wm8960_set_dai_clkdiv_fndecl_19392 wm8960_set_dai_clkdiv fndecl 3 19392 NULL
137441 +disable_so_drm_modeset_lock_interruptible_fndecl_19397 drm_modeset_lock_interruptible fndecl 0 19397 NULL
137442 +disable_so_isdn_divert_open_fndecl_19417 isdn_divert_open fndecl 0 19417 NULL
137443 +disable_so_uwb_rc_dev_addr_set_fndecl_19418 uwb_rc_dev_addr_set fndecl 0 19418 NULL
137444 +disable_so_frames_v4l2_timecode_19427 frames v4l2_timecode 0 19427 NULL
137445 +disable_so_bw_time_stamp_backing_dev_info_19428 bw_time_stamp backing_dev_info 0 19428 NULL
137446 +disable_so_nes_create_sockaddr_fndecl_19431 nes_create_sockaddr fndecl 1-2 19431 NULL
137447 +disable_so_s_uuid_hash_ocfs2_super_block_19432 s_uuid_hash ocfs2_super_block 0 19432 NULL
137448 +disable_so_paging64_walk_addr_fndecl_19436 paging64_walk_addr fndecl 3-4 19436 NULL
137449 +disable_so_snd_sonicvibes_interrupt_fndecl_19437 snd_sonicvibes_interrupt fndecl 1 19437 NULL
137450 +disable_so_width_psb_intel_sdvo_preferred_input_timing_args_19438 width psb_intel_sdvo_preferred_input_timing_args 0 19438 NULL
137451 +disable_so_padlock_sha256_final_fndecl_19450 padlock_sha256_final fndecl 0 19450 NULL
137452 +disable_so_period_time_bau_control_19451 period_time bau_control 0 19451 NULL
137453 +disable_so_timestamp_nfs4_closedata_19455 timestamp nfs4_closedata 0 19455 NULL
137454 +disable_so_crypto_fpu_init_fndecl_19461 crypto_fpu_init fndecl 0 19461 NULL
137455 +disable_so_sysctl_x25_reset_request_timeout_vardecl_19463 sysctl_x25_reset_request_timeout vardecl 0 19463 NULL nohasharray
137456 +disable_so_start_write_delay_c_19463 start_write delay_c 0 19463 &disable_so_sysctl_x25_reset_request_timeout_vardecl_19463
137457 +disable_so_calc_div_fndecl_19469 calc_div fndecl 0-4-3 19469 NULL
137458 +disable_so_log2bpmb_adfs_discrecord_19475 log2bpmb adfs_discrecord 0 19475 NULL
137459 +disable_so_sys_pkt_addr_dle_19487 sys_pkt_addr dle 0 19487 NULL
137460 +disable_so_igb_set_vf_mac_addr_fndecl_19490 igb_set_vf_mac_addr fndecl 3 19490 NULL
137461 +disable_so_ipaddr_atm_mpoa_qos_19492 ipaddr atm_mpoa_qos 0 19492 NULL
137462 +disable_so_start_addr_ms_system_item_19495 start_addr ms_system_item 0 19495 NULL
137463 +disable_so_nmi_timer_start_cpu_fndecl_19509 nmi_timer_start_cpu fndecl 1-0 19509 NULL
137464 +disable_so_rv3029c2_i2c_set_time_fndecl_19511 rv3029c2_i2c_set_time fndecl 0 19511 NULL
137465 +disable_so_trinity_get_valid_engine_clock_fndecl_19516 trinity_get_valid_engine_clock fndecl 0 19516 NULL
137466 +disable_so_add_addr_fndecl_19518 add_addr fndecl 3-4 19518 NULL nohasharray
137467 +disable_so_hash_extent_data_ref_item_fndecl_19518 hash_extent_data_ref_item fndecl 0 19518 &disable_so_add_addr_fndecl_19518
137468 +disable_so_prev_hw_ptr_period_snd_pcm_oss_runtime_19519 prev_hw_ptr_period snd_pcm_oss_runtime 0 19519 NULL
137469 +disable_so_eqaddr_fw_ri_res_sqrq_19526 eqaddr fw_ri_res_sqrq 0 19526 NULL
137470 +disable_so_tms_stime_compat_tms_19527 tms_stime compat_tms 0 19527 NULL
137471 +disable_so_period_addr_ath_gen_timer_configuration_19529 period_addr ath_gen_timer_configuration 0 19529 NULL
137472 +disable_so_sp_tss_segment_16_19536 sp tss_segment_16 0 19536 NULL nohasharray
137473 +disable_so_nrpages_address_space_19536 nrpages address_space 0 19536 &disable_so_sp_tss_segment_16_19536
137474 +disable_so_fb_cvt_pixclock_fndecl_19545 fb_cvt_pixclock fndecl 0 19545 NULL
137475 +disable_so_ipv6_addr_hash_fndecl_19554 ipv6_addr_hash fndecl 0 19554 NULL
137476 +disable_so_fnhe_daddr_fib_nh_exception_19556 fnhe_daddr fib_nh_exception 0 19556 NULL
137477 +disable_so_cir_addr_fintek_dev_19561 cir_addr fintek_dev 0 19561 NULL
137478 +disable_so_saddr_max_pktgen_dev_19567 saddr_max pktgen_dev 0 19567 NULL
137479 +disable_so_check_nnp_nosuid_fndecl_19568 check_nnp_nosuid fndecl 0 19568 NULL
137480 +disable_so_write_phy_reg_fndecl_19585 write_phy_reg fndecl 0-2-3 19585 NULL
137481 +disable_so_garp_join_time_vardecl_garp_c_19597 garp_join_time vardecl_garp.c 0 19597 NULL
137482 +disable_so_signalfd_dequeue_fndecl_19602 signalfd_dequeue fndecl 0-3 19602 NULL
137483 +disable_so_write8_comm_runtime_19603 write8 comm_runtime 4 19603 NULL
137484 +disable_so_sys_semtimedop_fndecl_19605 sys_semtimedop fndecl 1-3-0 19605 NULL
137485 +disable_so_xenvif_rx_queue_timeout_fndecl_19613 xenvif_rx_queue_timeout fndecl 0 19613 NULL
137486 +disable_so_local_cm_response_timeout_ib_cm_req_param_19614 local_cm_response_timeout ib_cm_req_param 0 19614 NULL nohasharray
137487 +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
137488 +disable_so_xtal_cap0p_r820t_freq_range_19614 xtal_cap0p r820t_freq_range 0 19614 &disable_so_ath9k_hw_gen_timer_start_fndecl_19614
137489 +disable_so_time_fmeter_19622 time fmeter 0 19622 NULL
137490 +disable_so_mce_timer_kick_fndecl_19627 mce_timer_kick fndecl 1 19627 NULL
137491 +disable_so_freqn_usb_stream_kernel_19628 freqn usb_stream_kernel 0 19628 NULL
137492 +disable_so_cg_spll_spread_spectrum_2_ci_clock_registers_19639 cg_spll_spread_spectrum_2 ci_clock_registers 0 19639 NULL
137493 +disable_so_ltr501_als_read_samp_freq_fndecl_19642 ltr501_als_read_samp_freq fndecl 0 19642 NULL
137494 +disable_so_addr_snd_sg_page_19645 addr snd_sg_page 0 19645 NULL nohasharray
137495 +disable_so_xfs_btree_kill_root_fndecl_19645 xfs_btree_kill_root fndecl 0 19645 &disable_so_addr_snd_sg_page_19645
137496 +disable_so_xc_get_signal_level_fndecl_19649 xc_get_signal_level fndecl 0 19649 NULL
137497 +disable_so_rx8581_get_datetime_fndecl_19650 rx8581_get_datetime fndecl 0 19650 NULL
137498 +disable_so_mdiv_gk104_clk_info_19653 mdiv gk104_clk_info 0 19653 NULL
137499 +disable_so_c_faddr_rds_connection_19664 c_faddr rds_connection 0 19664 NULL
137500 +disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666 afs_mntpt_expiry_timeout vardecl_mntpt.c 0 19666 NULL nohasharray
137501 +disable_so___queue_delayed_work_fndecl_19666 __queue_delayed_work fndecl 1-4 19666 &disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666
137502 +disable_so_store_risetime_fndecl_19668 store_risetime fndecl 4-0 19668 NULL
137503 +disable_so_div_r1_pll_values_19670 div_r1 pll_values 0 19670 NULL
137504 +disable_so_tstamp_inet6_ifaddr_19680 tstamp inet6_ifaddr 0 19680 NULL
137505 +disable_so_get_bt_addr_fndecl_19687 get_bt_addr fndecl 0 19687 NULL
137506 +disable_so_clocksource_register_hz_fndecl_19688 clocksource_register_hz fndecl 2 19688 NULL
137507 +disable_so_ceph_mdsmap_get_random_mds_fndecl_19695 ceph_mdsmap_get_random_mds fndecl 0 19695 NULL
137508 +disable_so_addr_qla82xx_md_entry_crb_19696 addr qla82xx_md_entry_crb 0 19696 NULL
137509 +disable_so_frequency_itd1000_state_19704 frequency itd1000_state 0 19704 NULL
137510 +disable_so_parent_tgid_fork_proc_event_19713 parent_tgid fork_proc_event 0 19713 NULL
137511 +disable_so_i_uid_ocfs2_dinode_19720 i_uid ocfs2_dinode 0 19720 NULL
137512 +disable_so_mx2_camera_clock_start_fndecl_19722 mx2_camera_clock_start fndecl 0 19722 NULL
137513 +disable_so_crypto_ccm_decrypt_fndecl_19728 crypto_ccm_decrypt fndecl 0 19728 NULL
137514 +disable_so_seq_put_decimal_ull_fndecl_19739 seq_put_decimal_ull fndecl 3 19739 NULL
137515 +disable_so_capture_source_addr_snd_card_saa7134_19740 capture_source_addr snd_card_saa7134 0 19740 NULL
137516 +disable_so_write_reg_fndecl_19743 write_reg fndecl 0-3 19743 NULL
137517 +disable_so_ndac_aic32x4_rate_divs_19748 ndac aic32x4_rate_divs 0 19748 NULL
137518 +disable_so_hpi_sample_clock_set_source_fndecl_19753 hpi_sample_clock_set_source fndecl 1-0 19753 NULL
137519 +disable_so_address_ipr_ioadl_desc_19756 address ipr_ioadl_desc 0 19756 NULL
137520 +disable_so_curr_hash_dir_private_info_19760 curr_hash dir_private_info 0 19760 NULL
137521 +disable_so_ccp_register_sha_alg_fndecl_19771 ccp_register_sha_alg fndecl 0 19771 NULL
137522 +disable_so_addr_set_port_fndecl_19776 addr_set_port fndecl 2 19776 NULL
137523 +disable_so_gpu_id_kfd_ioctl_get_clock_counters_args_19784 gpu_id kfd_ioctl_get_clock_counters_args 0 19784 NULL
137524 +disable_so_seq_cpl_rx_data_ddp_norss_19788 seq cpl_rx_data_ddp_norss 0 19788 NULL nohasharray
137525 +disable_so_cherryview_rps_max_freq_fndecl_19788 cherryview_rps_max_freq fndecl 0 19788 &disable_so_seq_cpl_rx_data_ddp_norss_19788
137526 +disable_so_inet6_dump_addr_fndecl_19792 inet6_dump_addr fndecl 0 19792 NULL
137527 +disable_so_pixelclock_videomode_19794 pixelclock videomode 0 19794 NULL
137528 +disable_so_hbackporch_v4l2_bt_timings_19806 hbackporch v4l2_bt_timings 0 19806 NULL
137529 +disable_so_dy_runtime_sc_19824 dy runtime_sc 0 19824 NULL nohasharray
137530 +disable_so_dm_btree_insert_fndecl_19824 dm_btree_insert fndecl 0-2 19824 &disable_so_dy_runtime_sc_19824
137531 +disable_so_cpufreq_generic_get_fndecl_19829 cpufreq_generic_get fndecl 0-1 19829 NULL
137532 +disable_so_outdiv_fll_factors_19836 outdiv fll_factors 0 19836 NULL
137533 +disable_so_scd_base_addr_il_priv_19840 scd_base_addr il_priv 0 19840 NULL
137534 +disable_so_acpi_ut_short_divide_fndecl_19845 acpi_ut_short_divide fndecl 1 19845 NULL
137535 +disable_so_timewarn_cs_read_fndecl_19849 timewarn_cs_read fndecl 0 19849 NULL
137536 +disable_so_freq_wmi_rx_action_event_19864 freq wmi_rx_action_event 0 19864 NULL
137537 +disable_so_eeprom_indirect_address_fndecl_19868 eeprom_indirect_address fndecl 0-2-3 19868 NULL
137538 +disable_so_core_clock_nes_adapter_19875 core_clock nes_adapter 0 19875 NULL
137539 +disable_so_ecx_v86_regs_19877 ecx v86_regs 0 19877 NULL
137540 +disable_so_base_clock_show_fndecl_19894 base_clock_show fndecl 0 19894 NULL
137541 +disable_so_jiffies_next_rtl2832_sdr_dev_19897 jiffies_next rtl2832_sdr_dev 0 19897 NULL
137542 +disable_so_process_tgid_exit_proc_event_19898 process_tgid exit_proc_event 0 19898 NULL
137543 +disable_so_n_cipher_suites_wiphy_19902 n_cipher_suites wiphy 0 19902 NULL
137544 +disable_so_fsl_asrc_cal_asrck_divisor_fndecl_19905 fsl_asrc_cal_asrck_divisor fndecl 0-2 19905 NULL
137545 +disable_so_ntimer_qs_tp_params_19910 ntimer_qs tp_params 0 19910 NULL
137546 +disable_so_rf_freq_off_mt7601u_eeprom_params_19920 rf_freq_off mt7601u_eeprom_params 0 19920 NULL
137547 +disable_so_ip_hash_netport4_elem_19921 ip hash_netport4_elem 0 19921 NULL
137548 +disable_so_cnid_hfs_btree_19924 cnid hfs_btree 0 19924 NULL
137549 +disable_so_vblank_lo_detailed_pixel_timing_19925 vblank_lo detailed_pixel_timing 0 19925 NULL
137550 +disable_so_addr_i2c_client_19929 addr i2c_client 0 19929 NULL
137551 +disable_so_addr_nv50_i2c_port_19931 addr nv50_i2c_port 0 19931 NULL
137552 +disable_so_epp_write_addr_parport_operations_19935 epp_write_addr parport_operations 0-3 19935 NULL
137553 +disable_so_ds_last_time_o2hb_disk_slot_19938 ds_last_time o2hb_disk_slot 0 19938 NULL
137554 +disable_so_local_addr_rds_info_tcp_socket_19943 local_addr rds_info_tcp_socket 0 19943 NULL
137555 +disable_so_i_ctime_ext3_inode_19948 i_ctime ext3_inode 0 19948 NULL
137556 +disable_so_maven_set_reg_fndecl_19961 maven_set_reg fndecl 3 19961 NULL
137557 +disable_so_maven_find_exact_clocks_fndecl_19977 maven_find_exact_clocks fndecl 1-2 19977 NULL
137558 +disable_so_tda826x_sleep_fndecl_19981 tda826x_sleep fndecl 0 19981 NULL
137559 +disable_so_rate_snd_pcm_runtime_19986 rate snd_pcm_runtime 0 19986 NULL
137560 +disable_so___pm_runtime_suspend_fndecl_19989 __pm_runtime_suspend fndecl 0 19989 NULL
137561 +disable_so_time_tx_survey_info_19997 time_tx survey_info 0 19997 NULL
137562 +disable_so_rt_time_rt_rq_20001 rt_time rt_rq 0 20001 NULL
137563 +disable_so_message_buffer_address_on_dsp_hpi_hw_obj_20007 message_buffer_address_on_dsp hpi_hw_obj 0 20007 NULL nohasharray
137564 +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
137565 +disable_so_xfs_btree_init_block_fndecl_20025 xfs_btree_init_block fndecl 6 20025 NULL
137566 +disable_so_ds1347_set_time_fndecl_20026 ds1347_set_time fndecl 0 20026 NULL
137567 +disable_so_cyapa_start_runtime_fndecl_20033 cyapa_start_runtime fndecl 0 20033 NULL
137568 +disable_so_mvumi_map_pci_addr_fndecl_20039 mvumi_map_pci_addr fndecl 0 20039 NULL
137569 +disable_so_vpd_paddr_low_lpfc_mbx_read_rev_20047 vpd_paddr_low lpfc_mbx_read_rev 0 20047 NULL
137570 +disable_so_di_atime_qnx4_inode_entry_20056 di_atime qnx4_inode_entry 0 20056 NULL nohasharray
137571 +disable_so_cgid_ipc64_perm_20056 cgid ipc64_perm 0 20056 &disable_so_di_atime_qnx4_inode_entry_20056
137572 +disable_so_bb_watchdog_timeout_ms_ath_hw_20060 bb_watchdog_timeout_ms ath_hw 0 20060 NULL
137573 +disable_so_des5_idmac_desc_64addr_20062 des5 idmac_desc_64addr 0 20062 NULL
137574 +disable_so_buf_addr_mlx5_ib_resize_cq_20068 buf_addr mlx5_ib_resize_cq 0 20068 NULL
137575 +disable_so_is_partially_uptodate_address_space_operations_20075 is_partially_uptodate address_space_operations 2-3 20075 NULL
137576 +disable_so_mask_kvm_mtrr_range_20079 mask kvm_mtrr_range 0 20079 NULL
137577 +disable_so_st_ctime___old_kernel_stat_20080 st_ctime __old_kernel_stat 0 20080 NULL
137578 +disable_so_i_ctime_exofs_fcb_20092 i_ctime exofs_fcb 0 20092 NULL
137579 +disable_so_drbg_kcapi_random_fndecl_20112 drbg_kcapi_random fndecl 3-0 20112 NULL
137580 +disable_so_gid_fuse_in_header_20113 gid fuse_in_header 0 20113 NULL
137581 +disable_so_proto_xfrm_usersa_id_20137 proto xfrm_usersa_id 0 20137 NULL
137582 +disable_so_nsec_timecounter_20144 nsec timecounter 0 20144 NULL nohasharray
137583 +disable_so_kvm_set_shared_msr_fndecl_20144 kvm_set_shared_msr fndecl 2 20144 &disable_so_nsec_timecounter_20144
137584 +disable_so___xfrm4_addr_hash_fndecl_20148 __xfrm4_addr_hash fndecl 0 20148 NULL
137585 +disable_so_hpet_address_vardecl_20150 hpet_address vardecl 0 20150 NULL
137586 +disable_so_next_buf_addr_c67x00_hcd_20169 next_buf_addr c67x00_hcd 0 20169 NULL
137587 +disable_so_urg_seq_tcp_sock_20171 urg_seq tcp_sock 0 20171 NULL
137588 +disable_so_uid_crash_uid_20189 uid crash_uid 0 20189 NULL
137589 +disable_so_force_addr_vardecl_i2c_sis5595_c_20194 force_addr vardecl_i2c-sis5595.c 0 20194 NULL
137590 +disable_so_get_random_bytes_fndecl_20208 get_random_bytes fndecl 2 20208 NULL
137591 +disable_so_end_pci_bus_region_20220 end pci_bus_region 0 20220 NULL
137592 +disable_so_ptp_devt_vardecl_ptp_clock_c_20222 ptp_devt vardecl_ptp_clock.c 0 20222 NULL
137593 +disable_so_rp5c01_read_time_fndecl_20225 rp5c01_read_time fndecl 0 20225 NULL
137594 +disable_so_scsi_inq_timeout_vardecl_scsi_scan_c_20228 scsi_inq_timeout vardecl_scsi_scan.c 0 20228 NULL
137595 +disable_so_crypto_report_alg_fndecl_20233 crypto_report_alg fndecl 0 20233 NULL
137596 +disable_so_cache_flush_timeout_vardecl_ms_block_c_20240 cache_flush_timeout vardecl_ms_block.c 0 20240 NULL nohasharray
137597 +disable_so_freq_to_note_fndecl_20240 freq_to_note fndecl 0-1 20240 &disable_so_cache_flush_timeout_vardecl_ms_block_c_20240
137598 +disable_so_sdhci_runtime_pm_put_fndecl_20243 sdhci_runtime_pm_put fndecl 0 20243 NULL nohasharray
137599 +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
137600 +disable_so_blkaddr_fsync_inode_entry_20244 blkaddr fsync_inode_entry 0 20244 NULL
137601 +disable_so_refb_r_div_ad9523_platform_data_20245 refb_r_div ad9523_platform_data 0 20245 NULL nohasharray
137602 +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
137603 +disable_so_buf_count_ccp_aes_cmac_req_ctx_20252 buf_count ccp_aes_cmac_req_ctx 0 20252 NULL
137604 +disable_so_nfs4_proc_get_lease_time_fndecl_20254 nfs4_proc_get_lease_time fndecl 0 20254 NULL nohasharray
137605 +disable_so_dma_addr_enet_cb_20254 dma_addr enet_cb 0 20254 &disable_so_nfs4_proc_get_lease_time_fndecl_20254
137606 +disable_so_eax_user_regs_struct32_20260 eax user_regs_struct32 0 20260 NULL
137607 +disable_so_freq_wmi_remain_on_chnl_cmd_20271 freq wmi_remain_on_chnl_cmd 0 20271 NULL
137608 +disable_so_esp_tss_segment_32_20300 esp tss_segment_32 0 20300 NULL
137609 +disable_so_hash_netportnet6_expire_fndecl_20301 hash_netportnet6_expire fndecl 4 20301 NULL
137610 +disable_so_dma_buffer_sst_module_runtime_context_20307 dma_buffer sst_module_runtime_context 0 20307 NULL nohasharray
137611 +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
137612 +disable_so_nosnoop_pbladdr_fw_ri_tpte_20317 nosnoop_pbladdr fw_ri_tpte 0 20317 NULL
137613 +disable_so_sir_addr_sockaddr_irda_20319 sir_addr sockaddr_irda 0 20319 NULL
137614 +disable_so_iter_div_u64_rem_fndecl_20326 iter_div_u64_rem fndecl 0 20326 NULL
137615 +disable_so_ps2_adjust_timeout_fndecl_20329 ps2_adjust_timeout fndecl 0-3-2 20329 NULL nohasharray
137616 +disable_so_ztime_trackpoint_data_20329 ztime trackpoint_data 0 20329 &disable_so_ps2_adjust_timeout_fndecl_20329
137617 +disable_so_ui_uid_ufs2_inode_20330 ui_uid ufs2_inode 0 20330 NULL nohasharray
137618 +disable_so_stb6000_sleep_fndecl_20330 stb6000_sleep fndecl 0 20330 &disable_so_ui_uid_ufs2_inode_20330
137619 +disable_so_gfs2_bit_search_fndecl_20331 gfs2_bit_search fndecl 0-2 20331 NULL
137620 +disable_so_ccp_run_aes_cmac_cmd_fndecl_20335 ccp_run_aes_cmac_cmd fndecl 0 20335 NULL
137621 +disable_so_compat_sys_clock_gettime_fndecl_20336 compat_sys_clock_gettime fndecl 1 20336 NULL
137622 +disable_so_div_fc2580_pll_20347 div fc2580_pll 0 20347 NULL
137623 +disable_so_xfrm_spi_hash_fndecl_20353 xfrm_spi_hash fndecl 0-3-4-5 20353 NULL
137624 +disable_so_compute_duty_cycle_fndecl_20356 compute_duty_cycle fndecl 0-2 20356 NULL
137625 +disable_so_pmcraid_read_interrupts_fndecl_20362 pmcraid_read_interrupts fndecl 0 20362 NULL
137626 +disable_so_receive_bitmap_fndecl_20365 receive_bitmap fndecl 0 20365 NULL
137627 +disable_so_ccycle_esp_20366 ccycle esp 0 20366 NULL
137628 +disable_so_rspi_wait_for_interrupt_fndecl_20368 rspi_wait_for_interrupt fndecl 3-0 20368 NULL
137629 +disable_so_bitmap_startwrite_fndecl_20371 bitmap_startwrite fndecl 2-3 20371 NULL
137630 +disable_so_crypto_rfc4543_decrypt_fndecl_20376 crypto_rfc4543_decrypt fndecl 0 20376 NULL
137631 +disable_so_acpi_os_signal_fndecl_20378 acpi_os_signal fndecl 0 20378 NULL
137632 +disable_so_interrupt_type___vxge_hw_fifo_20379 interrupt_type __vxge_hw_fifo 0 20379 NULL
137633 +disable_so_address_lo_lpfc_rqe_20386 address_lo lpfc_rqe 0 20386 NULL
137634 +disable_so_addr_rsxx_reg_access_20389 addr rsxx_reg_access 0 20389 NULL
137635 +disable_so_vpm_read_address_fndecl_20399 vpm_read_address fndecl 0 20399 NULL
137636 +disable_so_block_addr_f2fs_nat_entry_20409 block_addr f2fs_nat_entry 0 20409 NULL
137637 +disable_so_backlight_duty_cycle_psb_intel_mode_device_20421 backlight_duty_cycle psb_intel_mode_device 0 20421 NULL
137638 +disable_so_skd_start_timer_fndecl_20432 skd_start_timer fndecl 0 20432 NULL
137639 +disable_so_cmd64x_program_timings_fndecl_20435 cmd64x_program_timings fndecl 2 20435 NULL
137640 +disable_so_chgfreq_cs42l52_platform_data_20448 chgfreq cs42l52_platform_data 0 20448 NULL
137641 +disable_so_tvaudio_sleep_fndecl_20455 tvaudio_sleep fndecl 2 20455 NULL
137642 +disable_so_simplefb_clocks_init_fndecl_20466 simplefb_clocks_init fndecl 0 20466 NULL
137643 +disable_so_last_time_stats_20477 last time_stats 0 20477 NULL
137644 +disable_so_min_freq_intel_gen6_power_mgmt_20480 min_freq intel_gen6_power_mgmt 0 20480 NULL
137645 +disable_so_il_dbgfs_interrupt_read_fndecl_20484 il_dbgfs_interrupt_read fndecl 3-0 20484 NULL
137646 +disable_so_final_timeout_irlap_cb_20486 final_timeout irlap_cb 0 20486 NULL
137647 +disable_so_sec_btrfs_timespec_20492 sec btrfs_timespec 0 20492 NULL
137648 +disable_so_bitmap_prepare_for_write_fndecl_20495 bitmap_prepare_for_write fndecl 3 20495 NULL
137649 +disable_so_cg_spll_func_cntl_3_ni_clock_registers_20497 cg_spll_func_cntl_3 ni_clock_registers 0 20497 NULL
137650 +disable_so_pch_udc_disable_interrupts_fndecl_20502 pch_udc_disable_interrupts fndecl 2 20502 NULL
137651 +disable_so_i_mtime_bfs_inode_20503 i_mtime bfs_inode 0 20503 NULL
137652 +disable_so_timeout_nft_dynset_20509 timeout nft_dynset 0 20509 NULL
137653 +disable_so_ni_populate_memory_timing_parameters_fndecl_20513 ni_populate_memory_timing_parameters fndecl 0 20513 NULL
137654 +disable_so_scnprintf_fndecl_20531 scnprintf fndecl 0-2 20531 NULL nohasharray
137655 +disable_so_select_addr_qla8xxx_minidump_entry_queue_20531 select_addr qla8xxx_minidump_entry_queue 0 20531 &disable_so_scnprintf_fndecl_20531
137656 +disable_so___ww_mutex_lock_interruptible_slowpath_fndecl_20533 __ww_mutex_lock_interruptible_slowpath fndecl 0 20533 NULL
137657 +disable_so_compute_subtree_max_end_fndecl_20536 compute_subtree_max_end fndecl 0 20536 NULL
137658 +disable_so_wlc_lcnphy_qdiv_roundup_fndecl_20539 wlc_lcnphy_qdiv_roundup fndecl 0-2-1 20539 NULL
137659 +disable_so_value_ieee80211_timeout_interval_ie_20540 value ieee80211_timeout_interval_ie 0 20540 NULL
137660 +disable_so_skb_put_le32_fndecl_20551 skb_put_le32 fndecl 2 20551 NULL
137661 +disable_so_get_setup_data_paddr_fndecl_20558 get_setup_data_paddr fndecl 0 20558 NULL
137662 +disable_so_i_mtime_nilfs_inode_20563 i_mtime nilfs_inode 0 20563 NULL
137663 +disable_so_cipher_key_params_20564 cipher key_params 0 20564 NULL
137664 +disable_so_iscsit_na_random_datain_pdu_offsets_fndecl_20565 iscsit_na_random_datain_pdu_offsets fndecl 0 20565 NULL
137665 +disable_so_delay_mult_qib_pportdata_20567 delay_mult qib_pportdata 0 20567 NULL
137666 +disable_so_pm_timer_block_acpi_table_fadt_20569 pm_timer_block acpi_table_fadt 0 20569 NULL
137667 +disable_so_addr_data_si_sm_io_20586 addr_data si_sm_io 0 20586 NULL nohasharray
137668 +disable_so_sib_flowinfo_sockaddr_ib_20586 sib_flowinfo sockaddr_ib 0 20586 &disable_so_addr_data_si_sm_io_20586
137669 +disable_so_dll_cntl_rv770_clock_registers_20601 dll_cntl rv770_clock_registers 0 20601 NULL nohasharray
137670 +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
137671 +disable_so_ndtc_hash_mask_ndt_config_20603 ndtc_hash_mask ndt_config 0 20603 NULL
137672 +disable_so_borrow_defer_timestamp_brcmf_fws_info_20615 borrow_defer_timestamp brcmf_fws_info 0 20615 NULL
137673 +disable_so_wakeup_max_time_show_fndecl_20622 wakeup_max_time_show fndecl 0 20622 NULL
137674 +disable_so_tw_flowlabel_inet_timewait_sock_20634 tw_flowlabel inet_timewait_sock 0 20634 NULL
137675 +disable_so_ib_baseaddr_l_mvumi_hs_page4_20645 ib_baseaddr_l mvumi_hs_page4 0 20645 NULL
137676 +disable_so_shash_register_instance_fndecl_20652 shash_register_instance fndecl 0 20652 NULL
137677 +disable_so_snd_usb_clock_find_source_fndecl_20655 snd_usb_clock_find_source fndecl 0-2 20655 NULL
137678 +disable_so_g_dv_timings_v4l2_subdev_video_ops_20656 g_dv_timings v4l2_subdev_video_ops 0 20656 NULL
137679 +disable_so_radio_addr_em28xx_board_20659 radio_addr em28xx_board 0 20659 NULL
137680 +disable_so_cx24117_sleep_fndecl_20661 cx24117_sleep fndecl 0 20661 NULL
137681 +disable_so_run_one_delayed_ref_fndecl_20668 run_one_delayed_ref fndecl 0 20668 NULL nohasharray
137682 +disable_so_saddr_ircomm_info_20668 saddr ircomm_info 0 20668 &disable_so_run_one_delayed_ref_fndecl_20668
137683 +disable_so_i2c_addr_req_t_20671 i2c_addr req_t 0 20671 NULL
137684 +disable_so_mcryptd_hash_import_fndecl_20673 mcryptd_hash_import fndecl 0 20673 NULL
137685 +disable_so_ath10k_reg_addr_read_fndecl_20675 ath10k_reg_addr_read fndecl 3-0 20675 NULL nohasharray
137686 +disable_so_frequency_stepsize_dvb_frontend_info_20675 frequency_stepsize dvb_frontend_info 0 20675 &disable_so_ath10k_reg_addr_read_fndecl_20675
137687 +disable_so_latency_timer_show_fndecl_20676 latency_timer_show fndecl 0 20676 NULL nohasharray
137688 +disable_so_total_bytes_transferred_snd_compr_runtime_20676 total_bytes_transferred snd_compr_runtime 0 20676 &disable_so_latency_timer_show_fndecl_20676
137689 +disable_so_control_addr_qla8xxx_minidump_entry_cache_20678 control_addr qla8xxx_minidump_entry_cache 0 20678 NULL
137690 +disable_so_timeout_i2c_algo_bit_data_20687 timeout i2c_algo_bit_data 0 20687 NULL
137691 +disable_so_lookup_address_fndecl_20689 lookup_address fndecl 1 20689 NULL
137692 +disable_so_pcf8523_rtc_read_time_fndecl_20690 pcf8523_rtc_read_time fndecl 0 20690 NULL
137693 +disable_so_freq_nvbios_cstepX_20695 freq nvbios_cstepX 0 20695 NULL
137694 +disable_so_seq_virtio_gpu_fence_20701 seq virtio_gpu_fence 0 20701 NULL
137695 +disable_so_ftime_qlcnic_filter_20707 ftime qlcnic_filter 0 20707 NULL nohasharray
137696 +disable_so_myri10ge_rss_hash_vardecl_myri10ge_c_20707 myri10ge_rss_hash vardecl_myri10ge.c 0 20707 &disable_so_ftime_qlcnic_filter_20707
137697 +disable_so_mwifiex_cmd_802_11_mac_address_fndecl_20714 mwifiex_cmd_802_11_mac_address fndecl 0 20714 NULL
137698 +disable_so_typeAndTimezone_timestamp_20722 typeAndTimezone timestamp 0 20722 NULL
137699 +disable_so_btrfs_delayed_update_inode_fndecl_20726 btrfs_delayed_update_inode fndecl 0 20726 NULL
137700 +disable_so_dsc_timeout_ide_tape_obj_20727 dsc_timeout ide_tape_obj 0 20727 NULL
137701 +disable_so_stb0899_dvbs2_set_carr_freq_fndecl_20730 stb0899_dvbs2_set_carr_freq fndecl 2-3 20730 NULL
137702 +disable_so_wl1271_acx_service_period_timeout_fndecl_20736 wl1271_acx_service_period_timeout fndecl 0 20736 NULL
137703 +disable_so_am335x_tsc_se_clr_fndecl_20745 am335x_tsc_se_clr fndecl 2 20745 NULL
137704 +disable_so_node_guid_ib_node_info_20750 node_guid ib_node_info 0 20750 NULL nohasharray
137705 +disable_so_rsxx_addr8_to_laddr_fndecl_20750 rsxx_addr8_to_laddr fndecl 0-1 20750 &disable_so_node_guid_ib_node_info_20750
137706 +disable_so_nilfs_btree_propagate_p_fndecl_20757 nilfs_btree_propagate_p fndecl 0 20757 NULL
137707 +disable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 0 20758 NULL
137708 +disable_so_dev_pm_opp_find_freq_exact_fndecl_20768 dev_pm_opp_find_freq_exact fndecl 2 20768 NULL
137709 +disable_so_mpll_dq_func_cntl_ni_clock_registers_20779 mpll_dq_func_cntl ni_clock_registers 0 20779 NULL
137710 +disable_so_print_time_fndecl_20783 print_time fndecl 1-0 20783 NULL
137711 +disable_so_store_fan_stop_time_fndecl_20785 store_fan_stop_time fndecl 0-4 20785 NULL nohasharray
137712 +disable_so_gpu_addr_r600_vram_scratch_20785 gpu_addr r600_vram_scratch 0 20785 &disable_so_store_fan_stop_time_fndecl_20785
137713 +disable_so_s5m8767_set_voltage_time_sel_fndecl_20788 s5m8767_set_voltage_time_sel fndecl 0-2-3 20788 NULL nohasharray
137714 +disable_so_addr_kvm_async_pf_20788 addr kvm_async_pf 0 20788 &disable_so_s5m8767_set_voltage_time_sel_fndecl_20788
137715 +disable_so_rxLifetime_ConfigRid_20793 rxLifetime ConfigRid 0 20793 NULL
137716 +disable_so_downdelay_bond_params_20794 downdelay bond_params 0 20794 NULL
137717 +disable_so_dma_address_info_20796 dma address_info 0 20796 NULL
137718 +disable_so_write16_async_rtl_io_20799 write16_async rtl_io 2-3 20799 NULL
137719 +disable_so_sec_2_cycles_fndecl_20803 sec_2_cycles fndecl 0-1 20803 NULL
137720 +disable_so_nsec_base_pvclock_gtod_data_20804 nsec_base pvclock_gtod_data 0 20804 NULL
137721 +disable_so_ndo_set_mac_address_net_device_ops_20806 ndo_set_mac_address net_device_ops 0 20806 NULL
137722 +disable_so_crypto_dump_report_fndecl_20811 crypto_dump_report fndecl 0 20811 NULL
137723 +disable_so_ttime_total_cfq_ttime_20813 ttime_total cfq_ttime 0 20813 NULL
137724 +disable_so_freq_chan_info_2064_lcnphy_20814 freq chan_info_2064_lcnphy 0 20814 NULL
137725 +disable_so_msleep_fndecl_20815 msleep fndecl 1 20815 NULL nohasharray
137726 +disable_so_freq_hz_xc4000_priv_20815 freq_hz xc4000_priv 0 20815 &disable_so_msleep_fndecl_20815
137727 +disable_so_t4_set_params_nosleep_fndecl_20819 t4_set_params_nosleep fndecl 0-2-3-4 20819 NULL
137728 +disable_so_get_next_timer_interrupt_fndecl_20832 get_next_timer_interrupt fndecl 0-1 20832 NULL
137729 +disable_so_vol_bit_width_anatop_regulator_20852 vol_bit_width anatop_regulator 0 20852 NULL
137730 +disable_so_VSyncStart_xtimings_20858 VSyncStart xtimings 0 20858 NULL
137731 +disable_so_calibrate_delay_is_known_fndecl_20859 calibrate_delay_is_known fndecl 0 20859 NULL
137732 +disable_so_handling_delay_adc_jack_data_20874 handling_delay adc_jack_data 0 20874 NULL
137733 +disable_so_fm3130_get_time_fndecl_20875 fm3130_get_time fndecl 0 20875 NULL
137734 +disable_so_addr_hi_mv_sg_20880 addr_hi mv_sg 0 20880 NULL
137735 +disable_so_print_time_fndecl_20896 print_time fndecl 1 20896 NULL nohasharray
137736 +disable_so_ini_jiffies_tm6000_dmaqueue_20896 ini_jiffies tm6000_dmaqueue 0 20896 &disable_so_print_time_fndecl_20896
137737 +disable_so_timeout_carl9170_tx_info_20900 timeout carl9170_tx_info 0 20900 NULL
137738 +disable_so_phys_addr_t4_sq_20908 phys_addr t4_sq 0 20908 NULL
137739 +disable_so_ns_2_cycles_fndecl_20913 ns_2_cycles fndecl 0-1 20913 NULL
137740 +disable_so_number_fndecl_20920 number fndecl 3 20920 NULL
137741 +disable_so_n_wm8978_pll_div_20930 n wm8978_pll_div 0 20930 NULL
137742 +disable_so_snd_es1938_interrupt_fndecl_20934 snd_es1938_interrupt fndecl 1 20934 NULL
137743 +disable_so___ilog2_u64_fndecl_20935 __ilog2_u64 fndecl 0-1 20935 NULL
137744 +disable_so_acpi_target_sleep_state_vardecl_sleep_c_20940 acpi_target_sleep_state vardecl_sleep.c 0 20940 NULL
137745 +disable_so_wq_cpumask_store_fndecl_20950 wq_cpumask_store fndecl 0-4 20950 NULL
137746 +disable_so_bmc150_accel_get_startup_times_fndecl_20957 bmc150_accel_get_startup_times fndecl 0 20957 NULL
137747 +disable_so_antdiv_ctl2_modal_eep_4k_header_20958 antdiv_ctl2 modal_eep_4k_header 0 20958 NULL
137748 +disable_so_rc_keydown_notimeout_fndecl_20964 rc_keydown_notimeout fndecl 4-3 20964 NULL
137749 +disable_so_inet6_fill_ifaddr_fndecl_20965 inet6_fill_ifaddr fndecl 0-3-5 20965 NULL
137750 +disable_so_hca_core_clock_mlx4_caps_20972 hca_core_clock mlx4_caps 0 20972 NULL
137751 +disable_so_netxen_set_interrupt_mode_fndecl_20973 netxen_set_interrupt_mode fndecl 2 20973 NULL
137752 +disable_so_slottime_sixpack_20976 slottime sixpack 0 20976 NULL
137753 +disable_so_mpll_ad_func_cntl_rv770_clock_registers_20978 mpll_ad_func_cntl rv770_clock_registers 0 20978 NULL
137754 +disable_so_uhash_entries_vardecl_udp_c_20980 uhash_entries vardecl_udp.c 0 20980 NULL
137755 +disable_so_s2mps11_regulator_set_voltage_time_sel_fndecl_20983 s2mps11_regulator_set_voltage_time_sel fndecl 0-2-3 20983 NULL
137756 +disable_so_mlx4_ib_query_gid_fndecl_20997 mlx4_ib_query_gid fndecl 0-2-3 20997 NULL
137757 +disable_so_ep_timeout_secs_vardecl_iwch_cm_c_20999 ep_timeout_secs vardecl_iwch_cm.c 0 20999 NULL nohasharray
137758 +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
137759 +disable_so_vddc_radeon_clock_and_voltage_limits_21012 vddc radeon_clock_and_voltage_limits 0 21012 NULL
137760 +disable_so_spu_sleep_ds_device_21015 spu_sleep ds_device 0 21015 NULL
137761 +disable_so_dqb_btime_if_dqblk_21019 dqb_btime if_dqblk 0 21019 NULL
137762 +disable_so_sg_frame_phys_addr_megasas_cmd_fusion_21025 sg_frame_phys_addr megasas_cmd_fusion 0 21025 NULL
137763 +disable_so_radeon_crtc_set_base_atomic_fndecl_21027 radeon_crtc_set_base_atomic fndecl 0-3-4 21027 NULL
137764 +disable_so_i40e_get_san_mac_addr_fndecl_21029 i40e_get_san_mac_addr fndecl 0 21029 NULL
137765 +disable_so_regmap_del_irq_chip_fndecl_21031 regmap_del_irq_chip fndecl 1 21031 NULL
137766 +disable_so_res_hash_dlm_rsb_21034 res_hash dlm_rsb 0 21034 NULL
137767 +disable_so_early_acpi_parse_madt_lapic_addr_ovr_fndecl_21041 early_acpi_parse_madt_lapic_addr_ovr fndecl 0 21041 NULL
137768 +disable_so_tw_tos_inet_timewait_sock_21047 tw_tos inet_timewait_sock 0 21047 NULL
137769 +disable_so_cfg80211_get_chans_dfs_cac_time_fndecl_21052 cfg80211_get_chans_dfs_cac_time fndecl 0-2-3 21052 NULL
137770 +disable_so_random_tipc_net_21055 random tipc_net 0 21055 NULL
137771 +disable_so_tag_reg_addr_qla8xxx_minidump_entry_cache_21058 tag_reg_addr qla8xxx_minidump_entry_cache 0 21058 NULL
137772 +disable_so_m1_gma_clock_t_21062 m1 gma_clock_t 0 21062 NULL
137773 +disable_so_cutime_signal_struct_21069 cutime signal_struct 0 21069 NULL
137774 +disable_so_frac_pos_dummy_systimer_pcm_21070 frac_pos dummy_systimer_pcm 0 21070 NULL
137775 +disable_so_mmc_sdio_runtime_resume_fndecl_21078 mmc_sdio_runtime_resume fndecl 0 21078 NULL
137776 +disable_so_last_write_time_smb_com_query_information_rsp_21093 last_write_time smb_com_query_information_rsp 0 21093 NULL
137777 +disable_so_ssb_sdio_set_sbaddr_window_fndecl_21116 ssb_sdio_set_sbaddr_window fndecl 0-2 21116 NULL
137778 +disable_so_apei_clear_mce_fndecl_21119 apei_clear_mce fndecl 0 21119 NULL
137779 +disable_so_pnfs_layoutget_retry_bit_wait_fndecl_21127 pnfs_layoutget_retry_bit_wait fndecl 0 21127 NULL
137780 +disable_so_rq_page_table_addr_lo_iscsi_kwqe_conn_offload2_21144 rq_page_table_addr_lo iscsi_kwqe_conn_offload2 0 21144 NULL
137781 +disable_so_addrconf_sysctl_forward_fndecl_21146 addrconf_sysctl_forward fndecl 0 21146 NULL
137782 +disable_so_bcma_pmu_get_bus_clock_fndecl_21147 bcma_pmu_get_bus_clock fndecl 0 21147 NULL nohasharray
137783 +disable_so_address_acpi_generic_address_21147 address acpi_generic_address 0 21147 &disable_so_bcma_pmu_get_bus_clock_fndecl_21147
137784 +disable_so_phys_addr__DMABUFFERENTRY_21149 phys_addr _DMABUFFERENTRY 0 21149 NULL
137785 +disable_so_phy_addr_bnx2x_port_21152 phy_addr bnx2x_port 0 21152 NULL
137786 +disable_so_demod_address_va1j5jf8007t_config_21154 demod_address va1j5jf8007t_config 0 21154 NULL
137787 +disable_so_mgt_orb_timeout_sbp2_target_21164 mgt_orb_timeout sbp2_target 0 21164 NULL
137788 +disable_so_io_addr_blogic_probeinfo_21171 io_addr blogic_probeinfo 0 21171 NULL
137789 +disable_so_stag_c2_data_addr_21185 stag c2_data_addr 0 21185 NULL
137790 +disable_so_idle_timeout_set_fndecl_21189 idle_timeout_set fndecl 2 21189 NULL nohasharray
137791 +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
137792 +disable_so_poll_schedule_timeout_fndecl_21195 poll_schedule_timeout fndecl 4 21195 NULL
137793 +disable_so_fb_cvt_ideal_duty_cycle_fndecl_21197 fb_cvt_ideal_duty_cycle fndecl 0 21197 NULL
137794 +disable_so_dwell_time_brcmf_fil_af_params_le_21198 dwell_time brcmf_fil_af_params_le 0 21198 NULL
137795 +disable_so_pciehp_poll_time_vardecl_21204 pciehp_poll_time vardecl 0 21204 NULL
137796 +disable_so_sha1_base_do_update_fndecl_21207 sha1_base_do_update fndecl 3 21207 NULL
137797 +disable_so_arizona_runtime_suspend_fndecl_21209 arizona_runtime_suspend fndecl 0 21209 NULL nohasharray
137798 +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
137799 +disable_so_xc_get_frequency_error_fndecl_21217 xc_get_frequency_error fndecl 0 21217 NULL
137800 +disable_so_phys_addr_megasas_sge_skinny_21220 phys_addr megasas_sge_skinny 0 21220 NULL
137801 +disable_so_i2c_addr_radeon_router_21224 i2c_addr radeon_router 0 21224 NULL
137802 +disable_so_invalidatepage_address_space_operations_21227 invalidatepage address_space_operations 2-3 21227 NULL
137803 +disable_so_usb_free_coherent_fndecl_21239 usb_free_coherent fndecl 2-4 21239 NULL
137804 +disable_so_ci_populate_memory_timing_parameters_fndecl_21251 ci_populate_memory_timing_parameters fndecl 0-2-3 21251 NULL
137805 +disable_so_compat_sys_semtimedop_fndecl_21253 compat_sys_semtimedop fndecl 3-1-0 21253 NULL
137806 +disable_so_blkcipher_walk_done_fndecl_21256 blkcipher_walk_done fndecl 0-3 21256 NULL
137807 +disable_so_iscsi_tpg_attrib_store_login_timeout_fndecl_21278 iscsi_tpg_attrib_store_login_timeout fndecl 0-3 21278 NULL
137808 +disable_so_tuner_address_mt2063_config_21279 tuner_address mt2063_config 0 21279 NULL
137809 +disable_so_register_refined_jiffies_fndecl_21283 register_refined_jiffies fndecl 1 21283 NULL
137810 +disable_so_debug_dma_unmap_sg_fndecl_21286 debug_dma_unmap_sg fndecl 3 21286 NULL
137811 +disable_so_of_do_get_timings_fndecl_21294 of_do_get_timings fndecl 0 21294 NULL
137812 +disable_so_mtrr_file_del_fndecl_21306 mtrr_file_del fndecl 1-2 21306 NULL
137813 +disable_so_set_timeout_watchdog_ops_21311 set_timeout watchdog_ops 2-0 21311 NULL
137814 +disable_so_ipv6_addr_prefix_fndecl_21318 ipv6_addr_prefix fndecl 3 21318 NULL
137815 +disable_so_ath6kl_disconnect_timeout_read_fndecl_21329 ath6kl_disconnect_timeout_read fndecl 3-0 21329 NULL
137816 +disable_so_tx_duty_cycle_cck_brcms_c_info_21336 tx_duty_cycle_cck brcms_c_info 0 21336 NULL
137817 +disable_so_pentium3_get_frequency_fndecl_21339 pentium3_get_frequency fndecl 0 21339 NULL
137818 +disable_so_ldr_img_ir_timing_regvals_21340 ldr img_ir_timing_regvals 0 21340 NULL
137819 +disable_so_extended_cpuid_level_cpuinfo_x86_21354 extended_cpuid_level cpuinfo_x86 0 21354 NULL
137820 +disable_so_btrfs_dev_replace_time_started_fndecl_21355 btrfs_dev_replace_time_started fndecl 0 21355 NULL
137821 +disable_so_sys_getrandom_fndecl_21357 sys_getrandom fndecl 3-0-2 21357 NULL
137822 +disable_so_bit_offset_bm_xfer_ctx_21370 bit_offset bm_xfer_ctx 0 21370 NULL
137823 +disable_so_dtime_inet_peer_21374 dtime inet_peer 0 21374 NULL
137824 +disable_so_ac_btime_acct_v3_21378 ac_btime acct_v3 0 21378 NULL nohasharray
137825 +disable_so_ccp_aes_cmac_final_fndecl_21378 ccp_aes_cmac_final fndecl 0 21378 &disable_so_ac_btime_acct_v3_21378
137826 +disable_so_clock_sdhci_host_21381 clock sdhci_host 0 21381 NULL
137827 +disable_so_check_delayed_ref_fndecl_21388 check_delayed_ref fndecl 0-4-5-6 21388 NULL
137828 +disable_so_ath_gen_timer_alloc_fndecl_21393 ath_gen_timer_alloc fndecl 5 21393 NULL
137829 +disable_so_irq_address_info_21405 irq address_info 0 21405 NULL
137830 +disable_so_mpll_ad_func_cntl_2_rv770_clock_registers_21412 mpll_ad_func_cntl_2 rv770_clock_registers 0 21412 NULL
137831 +disable_so_sctp_copy_one_addr_fndecl_21416 sctp_copy_one_addr fndecl 0-5 21416 NULL
137832 +disable_so_high_mcp_dma_addr_21433 high mcp_dma_addr 0 21433 NULL
137833 +disable_so_volt_change_delay_si_ulv_param_21442 volt_change_delay si_ulv_param 0 21442 NULL
137834 +disable_so_msr_bitmap_vmcs12_21445 msr_bitmap vmcs12 0 21445 NULL
137835 +disable_so_setauthsize_crypto_aead_21450 setauthsize crypto_aead 2 21450 NULL
137836 +disable_so_next_txpwr_check_time_b43_phy_21453 next_txpwr_check_time b43_phy 0 21453 NULL
137837 +disable_so_nl80211_send_assoc_timeout_fndecl_21464 nl80211_send_assoc_timeout fndecl 4 21464 NULL nohasharray
137838 +disable_so_i_no_addr_gfs2_inode_21464 i_no_addr gfs2_inode 0 21464 &disable_so_nl80211_send_assoc_timeout_fndecl_21464
137839 +disable_so_indirect_dma_addr_srp_request_21474 indirect_dma_addr srp_request 0 21474 NULL
137840 +disable_so_btrfs_uuid_iter_rem_fndecl_21476 btrfs_uuid_iter_rem fndecl 0-3-4 21476 NULL
137841 +disable_so_addr_op_msr_21481 addr op_msr 0 21481 NULL
137842 +disable_so_sysctl_x25_call_request_timeout_vardecl_21486 sysctl_x25_call_request_timeout vardecl 0 21486 NULL
137843 +disable_so_guard_time_trf7970a_21487 guard_time trf7970a 0 21487 NULL
137844 +disable_so_mclk_div_mcam_camera_21501 mclk_div mcam_camera 0 21501 NULL
137845 +disable_so_cpu_to_fs16_fndecl_21502 cpu_to_fs16 fndecl 0-2 21502 NULL
137846 +disable_so_dma_addr_dma_mapping_21503 dma_addr dma_mapping 0 21503 NULL
137847 +disable_so_extra_buf1_address_ene_device_21504 extra_buf1_address ene_device 0 21504 NULL
137848 +disable_so_last_completion_time_lpfc_hba_21515 last_completion_time lpfc_hba 0 21515 NULL
137849 +disable_so_il_add_beacon_time_fndecl_21519 il_add_beacon_time fndecl 0-4-3-2 21519 NULL
137850 +disable_so_stats_reset_time_bfa_port_s_21525 stats_reset_time bfa_port_s 0 21525 NULL
137851 +disable_so_rptr_gpu_addr_kernel_queue_21535 rptr_gpu_addr kernel_queue 0 21535 NULL nohasharray
137852 +disable_so_ceph_crypto_init_fndecl_21535 ceph_crypto_init fndecl 0 21535 &disable_so_rptr_gpu_addr_kernel_queue_21535
137853 +disable_so_out_of_line_wait_on_bit_lock_fndecl_21538 out_of_line_wait_on_bit_lock fndecl 0 21538 NULL
137854 +disable_so_demod_address_s5h1409_config_21550 demod_address s5h1409_config 0 21550 NULL
137855 +disable_so_bmsr_cphy_21556 bmsr cphy 0 21556 NULL
137856 +disable_so_small_buf_phy_addr_low_ql3_adapter_21561 small_buf_phy_addr_low ql3_adapter 0 21561 NULL
137857 +disable_so_bitmap_start_sync_fndecl_21564 bitmap_start_sync fndecl 2-4 21564 NULL
137858 +disable_so_last_frequency_mb86a20s_state_21569 last_frequency mb86a20s_state 0 21569 NULL
137859 +disable_so_addr_hi_st_ss_sgitem_21571 addr_hi st_ss_sgitem 0 21571 NULL
137860 +disable_so_last_dev_address_fndecl_21603 last_dev_address fndecl 0-1 21603 NULL
137861 +disable_so_account_user_time_fndecl_21611 account_user_time fndecl 2-3 21611 NULL
137862 +disable_so_mdiv_nvkm_domain_21612 mdiv nvkm_domain 0 21612 NULL
137863 +disable_so_mclk_div_wm8804_priv_21616 mclk_div wm8804_priv 0 21616 NULL
137864 +disable_so_dclk___fb_timings_21625 dclk __fb_timings 0 21625 NULL
137865 +disable_so_ts_jiffies_xpc_rsvd_page_21630 ts_jiffies xpc_rsvd_page 0 21630 NULL
137866 +disable_so_wlcore_translate_addr_fndecl_21631 wlcore_translate_addr fndecl 0-2 21631 NULL
137867 +disable_so_clock_mult_par_info_21633 clock_mult par_info 0 21633 NULL
137868 +disable_so_timeout_mgmt_cp_set_discoverable_21656 timeout mgmt_cp_set_discoverable 0 21656 NULL
137869 +disable_so_timeout_jiffies_jmb38x_ms_host_21666 timeout_jiffies jmb38x_ms_host 0 21666 NULL
137870 +disable_so_ax88179_set_mac_addr_fndecl_21668 ax88179_set_mac_addr fndecl 0 21668 NULL
137871 +disable_so_signalfd_copyinfo_fndecl_21691 signalfd_copyinfo fndecl 0 21691 NULL
137872 +disable_so_crypto_cbc_setkey_fndecl_21695 crypto_cbc_setkey fndecl 0-3 21695 NULL
137873 +disable_so_pm_freeze_timeout_show_fndecl_21696 pm_freeze_timeout_show fndecl 0 21696 NULL
137874 +disable_so_ip_clock_khz_ocores_i2c_21700 ip_clock_khz ocores_i2c 0 21700 NULL
137875 +disable_so_HDSPM_bit2freq_fndecl_21701 HDSPM_bit2freq fndecl 0 21701 NULL
137876 +disable_so_qdelay_old_pie_vars_21717 qdelay_old pie_vars 0 21717 NULL
137877 +disable_so_pixel_clock_max_soc_camera_sense_21728 pixel_clock_max soc_camera_sense 0 21728 NULL
137878 +disable_so_hash_max_net_bridge_21732 hash_max net_bridge 0 21732 NULL
137879 +disable_so_hashfn_fndecl_21739 hashfn fndecl 0 21739 NULL
137880 +disable_so_default_gfx_clock_sst_spec_21741 default_gfx_clock sst_spec 0 21741 NULL
137881 +disable_so_snd_seq_oss_timer_ioctl_fndecl_21751 snd_seq_oss_timer_ioctl fndecl 0 21751 NULL
137882 +disable_so_addr1_dir_table_slot_21753 addr1 dir_table_slot 0 21753 NULL
137883 +disable_so_ieee80211_extend_absent_time_fndecl_21756 ieee80211_extend_absent_time fndecl 2 21756 NULL
137884 +disable_so_sumo_set_ds_dividers_fndecl_21757 sumo_set_ds_dividers fndecl 2-3 21757 NULL
137885 +disable_so_fm_rx_set_freq_fndecl_21763 fm_rx_set_freq fndecl 0-2 21763 NULL
137886 +disable_so_end_phys_addr_qxl_memslot_21767 end_phys_addr qxl_memslot 0 21767 NULL
137887 +disable_so_phys_addr_megasas_sge64_21771 phys_addr megasas_sge64 0 21771 NULL
137888 +disable_so_evtchn_from_irq_fndecl_21772 evtchn_from_irq fndecl 1-0 21772 NULL
137889 +disable_so_addr_pch_gbe_phy_info_21776 addr pch_gbe_phy_info 0 21776 NULL
137890 +disable_so_jiffies_vid_out_vivid_dev_21777 jiffies_vid_out vivid_dev 0 21777 NULL
137891 +disable_so_slottime_ath_hw_21784 slottime ath_hw 0 21784 NULL
137892 +disable_so_ath6kl_wmi_set_host_sleep_mode_cmd_fndecl_21804 ath6kl_wmi_set_host_sleep_mode_cmd fndecl 0-2 21804 NULL
137893 +disable_so_iwl_dbgfs_current_sleep_command_read_fndecl_21810 iwl_dbgfs_current_sleep_command_read fndecl 3-0 21810 NULL
137894 +disable_so_ioctl_sound_timer_operations_21820 ioctl sound_timer_operations 0 21820 NULL
137895 +disable_so_i_atime_sysv_inode_21822 i_atime sysv_inode 0 21822 NULL
137896 +disable_so_rx_ring_dma_addr_amd8111e_priv_21826 rx_ring_dma_addr amd8111e_priv 0 21826 NULL
137897 +disable_so_hundredsOfMicroseconds_timestamp_21834 hundredsOfMicroseconds timestamp 0 21834 NULL
137898 +disable_so_ei_interrupt_fndecl_21846 ei_interrupt fndecl 1 21846 NULL
137899 +disable_so_address_wq_enet_desc_21854 address wq_enet_desc 0 21854 NULL
137900 +disable_so_avivo_get_fb_ref_div_fndecl_21857 avivo_get_fb_ref_div fndecl 3-5 21857 NULL
137901 +disable_so_ac_btime_taskstats_21864 ac_btime taskstats 0 21864 NULL
137902 +disable_so_reg_base_addr_dmar_drhd_unit_21865 reg_base_addr dmar_drhd_unit 0 21865 NULL
137903 +disable_so_svm_scale_tsc_fndecl_21868 svm_scale_tsc fndecl 0-2 21868 NULL
137904 +disable_so_m88rs6000t_sleep_fndecl_21874 m88rs6000t_sleep fndecl 0 21874 NULL
137905 +disable_so_bt_priority_time_ath_btcoex_21878 bt_priority_time ath_btcoex 0 21878 NULL
137906 +disable_so_radeon_legacy_get_memory_clock_fndecl_21881 radeon_legacy_get_memory_clock fndecl 0 21881 NULL
137907 +disable_so_drbg_cpu_to_be32_fndecl_21882 drbg_cpu_to_be32 fndecl 1 21882 NULL
137908 +disable_so_hpi_sample_clock_get_sample_rate_fndecl_21888 hpi_sample_clock_get_sample_rate fndecl 1-0 21888 NULL
137909 +disable_so_refdiv_radeon_atom_ss_21889 refdiv radeon_atom_ss 0 21889 NULL
137910 +disable_so_e_d_tov_timer_val_fcoe_kwqe_conn_offload4_21894 e_d_tov_timer_val fcoe_kwqe_conn_offload4 0 21894 NULL
137911 +disable_so_efx_ef10_rx_disable_timestamping_fndecl_21895 efx_ef10_rx_disable_timestamping fndecl 0 21895 NULL
137912 +disable_so_microseconds_timestamp_21897 microseconds timestamp 0 21897 NULL nohasharray
137913 +disable_so_hashbin_find_fndecl_21897 hashbin_find fndecl 2 21897 &disable_so_microseconds_timestamp_21897
137914 +disable_so_uid_audit_sig_info_21901 uid audit_sig_info 0 21901 NULL
137915 +disable_so_scb_busaddr_ips_scb_21906 scb_busaddr ips_scb 0 21906 NULL
137916 +disable_so_uvc_clock_param_get_fndecl_21908 uvc_clock_param_get fndecl 0 21908 NULL
137917 +disable_so_ali_program_timings_fndecl_21912 ali_program_timings fndecl 4 21912 NULL
137918 +disable_so_rx8025_get_time_fndecl_21924 rx8025_get_time fndecl 0 21924 NULL
137919 +disable_so_rx_addr_uart_8250_dma_21929 rx_addr uart_8250_dma 0 21929 NULL
137920 +disable_so_i2c_addr_sensor_s_21935 i2c_addr sensor_s 0 21935 NULL
137921 +disable_so_interrupt_m66592_21937 interrupt m66592 0 21937 NULL
137922 +disable_so_btintel_check_bdaddr_fndecl_21945 btintel_check_bdaddr fndecl 0 21945 NULL
137923 +disable_so_re_timeout_dummy_hcd_21947 re_timeout dummy_hcd 0 21947 NULL nohasharray
137924 +disable_so_mmc_runtime_suspend_fndecl_21947 mmc_runtime_suspend fndecl 0 21947 &disable_so_re_timeout_dummy_hcd_21947
137925 +disable_so_prb_resp_timeout_brcms_c_info_21953 prb_resp_timeout brcms_c_info 0 21953 NULL
137926 +disable_so_pcf8563_set_datetime_fndecl_21960 pcf8563_set_datetime fndecl 0 21960 NULL nohasharray
137927 +disable_so_addr_low_vring_dma_addr_21960 addr_low vring_dma_addr 0 21960 &disable_so_pcf8563_set_datetime_fndecl_21960
137928 +disable_so_key_schedule_gc_fndecl_21977 key_schedule_gc fndecl 1 21977 NULL
137929 +disable_so_max_freq_softlimit_intel_gen6_power_mgmt_21980 max_freq_softlimit intel_gen6_power_mgmt 0 21980 NULL
137930 +disable_so_sctp_v6_inaddr_any_fndecl_21991 sctp_v6_inaddr_any fndecl 2 21991 NULL
137931 +disable_so_bitmap_get_counter_fndecl_22004 bitmap_get_counter fndecl 2 22004 NULL
137932 +disable_so_id_cpufreq_cooling_device_22010 id cpufreq_cooling_device 0 22010 NULL
137933 +disable_so_efx_phc_adjfreq_fndecl_22013 efx_phc_adjfreq fndecl 0 22013 NULL
137934 +disable_so_i9xx_clock_fndecl_22015 i9xx_clock fndecl 1 22015 NULL
137935 +disable_so_backlight_off_delay_intel_dp_22022 backlight_off_delay intel_dp 0 22022 NULL
137936 +disable_so_adjust_tsc_offset_host_fndecl_22031 adjust_tsc_offset_host fndecl 2 22031 NULL
137937 +disable_so_ocfs2_inode_lock_atime_fndecl_22032 ocfs2_inode_lock_atime fndecl 0 22032 NULL
137938 +disable_so_last_timeout_jiffies_smi_info_22035 last_timeout_jiffies smi_info 0 22035 NULL
137939 +disable_so_dnet_addr_type_fndecl_22038 dnet_addr_type fndecl 1 22038 NULL
137940 +disable_so_qce_ablkcipher_crypt_fndecl_22054 qce_ablkcipher_crypt fndecl 0 22054 NULL
137941 +disable_so_move_addr_to_user_fndecl_22055 move_addr_to_user fndecl 2-0 22055 NULL
137942 +disable_so_qce_cpu_to_be32p_array_fndecl_22057 qce_cpu_to_be32p_array fndecl 3 22057 NULL
137943 +disable_so_rsp_kvm_regs_22061 rsp kvm_regs 0 22061 NULL
137944 +disable_so_sst_hsw_runtime_module_create_fndecl_22070 sst_hsw_runtime_module_create fndecl 3-2 22070 NULL
137945 +disable_so_paddr_ctlr_info_22072 paddr ctlr_info 0 22072 NULL
137946 +disable_so_net2272_get_ep_by_addr_fndecl_22073 net2272_get_ep_by_addr fndecl 2 22073 NULL
137947 +disable_so_nilfs_btree_node_get_ptr_fndecl_22076 nilfs_btree_node_get_ptr fndecl 0-2 22076 NULL
137948 +disable_so_signal_avg_station_info_22078 signal_avg station_info 0 22078 NULL
137949 +disable_so_hdmi_runtime_resume_fndecl_22080 hdmi_runtime_resume fndecl 0 22080 NULL
137950 +disable_so_nla_padlen_fndecl_22096 nla_padlen fndecl 1-0 22096 NULL
137951 +disable_so_sof_offset_uvc_clock_22104 sof_offset uvc_clock 0 22104 NULL
137952 +disable_so_current_frequency_au8522_state_22105 current_frequency au8522_state 0 22105 NULL
137953 +disable_so_vdelay_timing_22106 vdelay timing 0 22106 NULL
137954 +disable_so_abx500_get_register_page_interruptible_fndecl_22107 abx500_get_register_page_interruptible fndecl 0 22107 NULL
137955 +disable_so_xc_set_IF_frequency_fndecl_22111 xc_set_IF_frequency fndecl 0-2 22111 NULL
137956 +disable_so_curr_minor_hash_dir_private_info_22113 curr_minor_hash dir_private_info 0 22113 NULL
137957 +disable_so_ipg_find_phyaddr_fndecl_22117 ipg_find_phyaddr fndecl 0 22117 NULL
137958 +disable_so_dwell_time_passive_conf_sched_scan_settings_22127 dwell_time_passive conf_sched_scan_settings 0 22127 NULL
137959 +disable_so_ontime_snd_emux_voice_22136 ontime snd_emux_voice 0 22136 NULL
137960 +disable_so_queue_info_new_phys_addr_hi_megasas_init_frame_22147 queue_info_new_phys_addr_hi megasas_init_frame 0 22147 NULL
137961 +disable_so_demod_address_tda10048_config_22153 demod_address tda10048_config 0 22153 NULL
137962 +disable_so_timestamp_data_baddr_pmcraid_instance_22154 timestamp_data_baddr pmcraid_instance 0 22154 NULL
137963 +disable_so_qce_setup_regs_ablkcipher_fndecl_22163 qce_setup_regs_ablkcipher fndecl 0-2 22163 NULL
137964 +disable_so_cpu_index_cpuinfo_x86_22166 cpu_index cpuinfo_x86 0 22166 NULL nohasharray
137965 +disable_so_cache_timeout_vardecl_sm_ftl_c_22166 cache_timeout vardecl_sm_ftl.c 0 22166 &disable_so_cpu_index_cpuinfo_x86_22166
137966 +disable_so_ls_scan_time_dlm_ls_22170 ls_scan_time dlm_ls 0 22170 NULL
137967 +disable_so_overflowgid_vardecl_22177 overflowgid vardecl 0 22177 NULL
137968 +disable_so_timeout_uart_port_22187 timeout uart_port 0 22187 NULL
137969 +disable_so_ctime_nilfs_segsum_info_22193 ctime nilfs_segsum_info 0 22193 NULL
137970 +disable_so___cpu_to_virtio32_fndecl_22198 __cpu_to_virtio32 fndecl 0-2 22198 NULL
137971 +disable_so___page_check_address_fndecl_22199 __page_check_address fndecl 3 22199 NULL
137972 +disable_so_frequency_khz_m88rs6000t_dev_22206 frequency_khz m88rs6000t_dev 0 22206 NULL
137973 +disable_so_fm10k_update_mc_addr_vf_fndecl_22212 fm10k_update_mc_addr_vf fndecl 4 22212 NULL
137974 +disable_so_xfs_daddr_to_agno_fndecl_22214 xfs_daddr_to_agno fndecl 0-2 22214 NULL
137975 +disable_so_addr_radeon_bo_va_22216 addr radeon_bo_va 0 22216 NULL
137976 +disable_so_iwl_dbgfs_sleep_level_override_read_fndecl_22221 iwl_dbgfs_sleep_level_override_read fndecl 3-0 22221 NULL
137977 +disable_so_write_seq_cxgbi_sock_22223 write_seq cxgbi_sock 0 22223 NULL
137978 +disable_so_jiffies_init_s_stats_22227 jiffies_init s_stats 0 22227 NULL
137979 +disable_so_addr_1_qla83xx_minidump_entry_pollrdmwr_22235 addr_1 qla83xx_minidump_entry_pollrdmwr 0 22235 NULL
137980 +disable_so_boomerang_interrupt_fndecl_22238 boomerang_interrupt fndecl 1 22238 NULL
137981 +disable_so_start_addr_prism2_download_data_22240 start_addr prism2_download_data 0 22240 NULL
137982 +disable_so_addr_fixed_phy_22243 addr fixed_phy 0 22243 NULL
137983 +disable_so_parenttime_ictimesync_data_22250 parenttime ictimesync_data 0 22250 NULL
137984 +disable_so_tidvaddr_ipath_tid_info_22251 tidvaddr ipath_tid_info 0 22251 NULL
137985 +disable_so_ip_vs_sh_hashkey_fndecl_22252 ip_vs_sh_hashkey fndecl 1 22252 NULL
137986 +disable_so_m41t94_set_time_fndecl_22256 m41t94_set_time fndecl 0 22256 NULL
137987 +disable_so___bitmap_and_fndecl_22259 __bitmap_and fndecl 4 22259 NULL
137988 +disable_so_read_addr_qla82xx_md_entry_rdrom_22262 read_addr qla82xx_md_entry_rdrom 0 22262 NULL
137989 +disable_so_crypto_authenc_esn_iverify_fndecl_22263 crypto_authenc_esn_iverify fndecl 0-3 22263 NULL
137990 +disable_so_udelay_ixgbe_mbx_info_22275 udelay ixgbe_mbx_info 0 22275 NULL
137991 +disable_so_addr_init_tab_22277 addr init_tab 0 22277 NULL nohasharray
137992 +disable_so_cpufreq_cpu_get_raw_fndecl_22277 cpufreq_cpu_get_raw fndecl 1 22277 &disable_so_addr_init_tab_22277
137993 +disable_so_show_orig_dgid_fndecl_22281 show_orig_dgid fndecl 0 22281 NULL
137994 +disable_so_tua6100_sleep_fndecl_22289 tua6100_sleep fndecl 0 22289 NULL
137995 +disable_so_crypto_memneq_fndecl_22293 crypto_memneq fndecl 3 22293 NULL
137996 +disable_so_next_gid_index_mthca_mgm_22295 next_gid_index mthca_mgm 0 22295 NULL
137997 +disable_so__abb5zes3_rtc_read_time_fndecl_22302 _abb5zes3_rtc_read_time fndecl 0 22302 NULL nohasharray
137998 +disable_so_free_block_xfs_btree_ops_22302 free_block xfs_btree_ops 0 22302 &disable_so__abb5zes3_rtc_read_time_fndecl_22302
137999 +disable_so_cn_vprintf_fndecl_22303 cn_vprintf fndecl 0 22303 NULL nohasharray
138000 +disable_so_ixgbe_read_reg_fndecl_22303 ixgbe_read_reg fndecl 0-2 22303 &disable_so_cn_vprintf_fndecl_22303
138001 +disable_so_utime_mddev_22314 utime mddev 0 22314 NULL
138002 +disable_so_set_node_addr_fndecl_22329 set_node_addr fndecl 3 22329 NULL
138003 +disable_so_start_group_wait_time_cfqg_stats_22330 start_group_wait_time cfqg_stats 0 22330 NULL
138004 +disable_so_addrLow_ulp_bde64_22341 addrLow ulp_bde64 0 22341 NULL
138005 +disable_so_mr_get_mtt_addr_fndecl_22342 mr_get_mtt_addr fndecl 0 22342 NULL
138006 +disable_so_auto_deep_sleep_timeout_lbs_private_22358 auto_deep_sleep_timeout lbs_private 0 22358 NULL
138007 +disable_so_daddr_min_pktgen_dev_22362 daddr_min pktgen_dev 0 22362 NULL
138008 +disable_so_tusb_set_clock_source_fndecl_22365 tusb_set_clock_source fndecl 2 22365 NULL
138009 +disable_so_ocfs2_rotate_subtree_right_fndecl_22369 ocfs2_rotate_subtree_right fndecl 0-5 22369 NULL
138010 +disable_so_timestamp_nfs4_unlockdata_22375 timestamp nfs4_unlockdata 0 22375 NULL
138011 +disable_so_time_perf_event_context_22379 time perf_event_context 0 22379 NULL
138012 +disable_so_max8998_set_voltage_buck_time_sel_fndecl_22384 max8998_set_voltage_buck_time_sel fndecl 0-2-3 22384 NULL
138013 +disable_so_to_increment_rpc_timeout_22408 to_increment rpc_timeout 0 22408 NULL
138014 +disable_so_pci_addr_islpci_membuf_22412 pci_addr islpci_membuf 0 22412 NULL
138015 +disable_so_gf_div_fndecl_22416 gf_div fndecl 0-2-3 22416 NULL
138016 +disable_so_timeout_us_drm_vmw_fence_wait_arg_22421 timeout_us drm_vmw_fence_wait_arg 0 22421 NULL
138017 +disable_so_sd_ctime_stat_data_22425 sd_ctime stat_data 0 22425 NULL nohasharray
138018 +disable_so_runtime_reg_sch311x_gpio_block_22425 runtime_reg sch311x_gpio_block 0 22425 &disable_so_sd_ctime_stat_data_22425 nohasharray
138019 +disable_so_crypto_authenc_iverify_fndecl_22425 crypto_authenc_iverify fndecl 0-3 22425 &disable_so_runtime_reg_sch311x_gpio_block_22425
138020 +disable_so_port_guid_ib_node_info_22427 port_guid ib_node_info 0 22427 NULL
138021 +disable_so_ring_iowrite32options_fndecl_22428 ring_iowrite32options fndecl 2 22428 NULL
138022 +disable_so_period_ptr_snd_pcm_oss_runtime_22430 period_ptr snd_pcm_oss_runtime 0 22430 NULL
138023 +disable_so_ac_stimescaled_taskstats_22436 ac_stimescaled taskstats 0 22436 NULL
138024 +disable_so_slave_address_acpi_resource_i2c_serialbus_22453 slave_address acpi_resource_i2c_serialbus 0 22453 NULL
138025 +disable_so_dma_addr1_flexcop_dma_22481 dma_addr1 flexcop_dma 0 22481 NULL
138026 +disable_so_r11_kvm_regs_22488 r11 kvm_regs 0 22488 NULL
138027 +disable_so_lookup_overlapping_address_handler_fndecl_22494 lookup_overlapping_address_handler fndecl 2-3 22494 NULL
138028 +disable_so_throttled_clock_task_cfs_rq_22505 throttled_clock_task cfs_rq 0 22505 NULL
138029 +disable_so_bulletin_addr_vfpf_acquire_tlv_22506 bulletin_addr vfpf_acquire_tlv 0 22506 NULL
138030 +disable_so_buffer_bytes_snd_pcm_oss_runtime_22509 buffer_bytes snd_pcm_oss_runtime 0 22509 NULL
138031 +disable_so_cryptd_hash_enqueue_fndecl_22511 cryptd_hash_enqueue fndecl 0 22511 NULL
138032 +disable_so_set_msr_hyperv_pw_fndecl_22514 set_msr_hyperv_pw fndecl 3 22514 NULL
138033 +disable_so_am335x_tsc_se_set_cache_fndecl_22522 am335x_tsc_se_set_cache fndecl 2 22522 NULL
138034 +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
138035 +disable_so_stride_qxl_bitmap_22527 stride qxl_bitmap 0 22527 NULL
138036 +disable_so_enable_time_regulator_ops_22541 enable_time regulator_ops 0 22541 NULL
138037 +disable_so_usb_port_runtime_resume_fndecl_22542 usb_port_runtime_resume fndecl 0 22542 NULL
138038 +disable_so_i_time_minix_inode_22559 i_time minix_inode 0 22559 NULL
138039 +disable_so_rpc_uaddr2sockaddr_fndecl_22573 rpc_uaddr2sockaddr fndecl 0-3 22573 NULL
138040 +disable_so_runtime_show_fndecl_22581 runtime_show fndecl 0 22581 NULL
138041 +disable_so__sched_setscheduler_fndecl_22589 _sched_setscheduler fndecl 0-2 22589 NULL
138042 +disable_so_ahc_outb_fndecl_22592 ahc_outb fndecl 2-3 22592 NULL
138043 +disable_so_tcp_fin_timeout_ip_vs_timeout_user_22596 tcp_fin_timeout ip_vs_timeout_user 0 22596 NULL
138044 +disable_so_channels_snd_pcm_oss_runtime_22629 channels snd_pcm_oss_runtime 0 22629 NULL
138045 +disable_so_ivsize_blkcipher_walk_22638 ivsize blkcipher_walk 0 22638 NULL
138046 +disable_so_xpcs_reg_addr_read_fndecl_22646 xpcs_reg_addr_read fndecl 3-0 22646 NULL
138047 +disable_so_ea_segmented_address_22657 ea segmented_address 0 22657 NULL
138048 +disable_so_rxhash_bnx2x_agg_info_22658 rxhash bnx2x_agg_info 0 22658 NULL
138049 +disable_so_get_timer_interval_fndecl_22661 get_timer_interval fndecl 0-2 22661 NULL
138050 +disable_so_clock_psb_intel_sdvo_preferred_input_timing_args_22671 clock psb_intel_sdvo_preferred_input_timing_args 0 22671 NULL
138051 +disable_so_nft_hash_obj_fndecl_22673 nft_hash_obj fndecl 0-2 22673 NULL
138052 +disable_so_ber_jiffies_stats_dib8000_state_22674 ber_jiffies_stats dib8000_state 0 22674 NULL
138053 +disable_so_sleep_ms_rtl_ps_ctl_22681 sleep_ms rtl_ps_ctl 0 22681 NULL
138054 +disable_so_addr_hi_eth_tx_start_bd_22685 addr_hi eth_tx_start_bd 0 22685 NULL
138055 +disable_so_lasttime_sym_shcb_22688 lasttime sym_shcb 0 22688 NULL
138056 +disable_so_cttimeout_init_fndecl_22691 cttimeout_init fndecl 0 22691 NULL
138057 +disable_so_crypto_authenc_encrypt_fndecl_22693 crypto_authenc_encrypt fndecl 0 22693 NULL
138058 +disable_so_kernfs_name_hash_fndecl_22704 kernfs_name_hash fndecl 0 22704 NULL
138059 +disable_so_msleep_interruptible_fndecl_22713 msleep_interruptible fndecl 1-0 22713 NULL
138060 +disable_so_compq_addr_lo_addr_ctrl_blk_22728 compq_addr_lo addr_ctrl_blk 0 22728 NULL
138061 +disable_so_dib7000p_get_time_us_fndecl_22737 dib7000p_get_time_us fndecl 0 22737 NULL
138062 +disable_so_src_addr_dma_slave_config_22748 src_addr dma_slave_config 0 22748 NULL
138063 +disable_so_userspace_addr_kvm_memory_slot_22749 userspace_addr kvm_memory_slot 0 22749 NULL
138064 +disable_so_addr6_resolve_fndecl_22753 addr6_resolve fndecl 0 22753 NULL
138065 +disable_so_sst_pm_runtime_put_fndecl_22759 sst_pm_runtime_put fndecl 0 22759 NULL
138066 +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
138067 +disable_so_d_time_dentry_22767 d_time dentry 0 22767 NULL
138068 +disable_so_mtd_to_docg4_address_fndecl_22769 mtd_to_docg4_address fndecl 0-1-2 22769 NULL
138069 +disable_so_cycle_counter_tag_capidtmf_recv_state_22771 cycle_counter tag_capidtmf_recv_state 0 22771 NULL
138070 +disable_so_lp872x_select_buck_vout_addr_fndecl_22790 lp872x_select_buck_vout_addr fndecl 0-2 22790 NULL
138071 +disable_so_base_mbox_addr_blogic_extmbox_req_22802 base_mbox_addr blogic_extmbox_req 0 22802 NULL nohasharray
138072 +disable_so_no_addr_gfs2_inum_22802 no_addr gfs2_inum 0 22802 &disable_so_base_mbox_addr_blogic_extmbox_req_22802
138073 +disable_so_debug_dma_map_sg_fndecl_22804 debug_dma_map_sg fndecl 3-4 22804 NULL
138074 +disable_so___cpuidle_register_driver_fndecl_22806 __cpuidle_register_driver fndecl 0 22806 NULL
138075 +disable_so_vhost64_to_cpu_fndecl_22807 vhost64_to_cpu fndecl 0 22807 NULL
138076 +disable_so_start_address_acpi_address_range_22816 start_address acpi_address_range 0 22816 NULL
138077 +disable_so_mce_request_packet_fndecl_22818 mce_request_packet fndecl 3 22818 NULL
138078 +disable_so_bad_std_timing_fndecl_22827 bad_std_timing fndecl 1 22827 NULL
138079 +disable_so_swap_cluster_schedule_discard_fndecl_22833 swap_cluster_schedule_discard fndecl 2 22833 NULL
138080 +disable_so_palmas_rtc_set_time_fndecl_22849 palmas_rtc_set_time fndecl 0 22849 NULL
138081 +disable_so___arch_hweight8_fndecl_22850 __arch_hweight8 fndecl 0-1 22850 NULL
138082 +disable_so_store_risefalltime_fndecl_22854 store_risefalltime fndecl 5-0-4 22854 NULL
138083 +disable_so_qlcnic_83xx_get_mac_address_fndecl_22858 qlcnic_83xx_get_mac_address fndecl 0 22858 NULL
138084 +disable_so_vnic_dev_get_mac_addr_fndecl_22860 vnic_dev_get_mac_addr fndecl 0 22860 NULL
138085 +disable_so_hash_id_hh_flow_state_22864 hash_id hh_flow_state 0 22864 NULL
138086 +disable_so_runtime_suspend_dev_pm_ops_22871 runtime_suspend dev_pm_ops 0 22871 NULL nohasharray
138087 +disable_so_objectid_btrfs_key_22871 objectid btrfs_key 0 22871 &disable_so_runtime_suspend_dev_pm_ops_22871
138088 +disable_so_bitmap_parse_fndecl_22876 bitmap_parse fndecl 0-2-4 22876 NULL
138089 +disable_so_avg_delay_fndecl_22883 avg_delay fndecl 0 22883 NULL nohasharray
138090 +disable_so_mce_threshold_block_init_fndecl_22883 mce_threshold_block_init fndecl 2 22883 &disable_so_avg_delay_fndecl_22883
138091 +disable_so_pdeath_signal_task_struct_22884 pdeath_signal task_struct 0 22884 NULL
138092 +disable_so_bits_per_word_blk_mq_bitmap_tags_22896 bits_per_word blk_mq_bitmap_tags 0 22896 NULL
138093 +disable_so_saddr_irda_device_info_22915 saddr irda_device_info 0 22915 NULL
138094 +disable_so_frm_extra_delay_vardecl_isar_c_22927 frm_extra_delay vardecl_isar.c 0 22927 NULL
138095 +disable_so_lbs_set_host_sleep_fndecl_22932 lbs_set_host_sleep fndecl 0 22932 NULL
138096 +disable_so_orinoco_ioctl_setfreq_fndecl_22934 orinoco_ioctl_setfreq fndecl 0 22934 NULL
138097 +disable_so_bit_bitstream_cursor_22959 bit bitstream_cursor 0 22959 NULL
138098 +disable_so_cifs_strtoUTF16_fndecl_22967 cifs_strtoUTF16 fndecl 0-3 22967 NULL
138099 +disable_so_rbx_kvm_regs_22975 rbx kvm_regs 0 22975 NULL
138100 +disable_so_runtime_resume_dev_pm_ops_22976 runtime_resume dev_pm_ops 0 22976 NULL
138101 +disable_so_address_ioaccel2_sg_element_22986 address ioaccel2_sg_element 0 22986 NULL
138102 +disable_so_frags_paddr_htt_data_tx_desc_22993 frags_paddr htt_data_tx_desc 0 22993 NULL
138103 +disable_so_ss_ctime_nilfs_sustat_23015 ss_ctime nilfs_sustat 0 23015 NULL
138104 +disable_so_radeon_atom_set_ac_timing_fndecl_23020 radeon_atom_set_ac_timing fndecl 2 23020 NULL
138105 +disable_so_b43legacy_interrupt_ack_fndecl_23025 b43legacy_interrupt_ack fndecl 2 23025 NULL
138106 +disable_so_i_atime_nsec_f2fs_inode_23028 i_atime_nsec f2fs_inode 0 23028 NULL
138107 +disable_so_addr_wil_fw_record_fill_23039 addr wil_fw_record_fill 0 23039 NULL
138108 +disable_so_cyc2ns_offset_cyc2ns_data_23042 cyc2ns_offset cyc2ns_data 0 23042 NULL
138109 +disable_so_panel_power_cycle_delay_cdv_intel_dp_23045 panel_power_cycle_delay cdv_intel_dp 0 23045 NULL
138110 +disable_so_crypto_rfc4543_copy_src_to_dst_fndecl_23047 crypto_rfc4543_copy_src_to_dst fndecl 0 23047 NULL
138111 +disable_so_pte_pfn_to_mfn_fndecl_23066 pte_pfn_to_mfn fndecl 1-0 23066 NULL
138112 +disable_so_hpll_freq_drm_i915_private_23074 hpll_freq drm_i915_private 0 23074 NULL
138113 +disable_so_ly_base_addr_c67x00_td_23082 ly_base_addr c67x00_td 0 23082 NULL
138114 +disable_so_num_bits_alps_bitmap_point_23084 num_bits alps_bitmap_point 0 23084 NULL
138115 +disable_so_ip6addrlbl_dump_fndecl_23085 ip6addrlbl_dump fndecl 0 23085 NULL
138116 +disable_so_sc_seg_ctime_nilfs_sc_info_23088 sc_seg_ctime nilfs_sc_info 0 23088 NULL
138117 +disable_so_rxbd_addr_lo_host_cmd_ds_pcie_details_23092 rxbd_addr_lo host_cmd_ds_pcie_details 0 23092 NULL
138118 +disable_so_addrconf_init_fndecl_23107 addrconf_init fndecl 0 23107 NULL
138119 +disable_so_regcache_lzo_read_fndecl_23109 regcache_lzo_read fndecl 0-2 23109 NULL
138120 +disable_so_mac_addr_high_nes_adapter_23110 mac_addr_high nes_adapter 0 23110 NULL nohasharray
138121 +disable_so_gf100_fifo_engidx_fndecl_23110 gf100_fifo_engidx fndecl 0 23110 &disable_so_mac_addr_high_nes_adapter_23110
138122 +disable_so_busy_timeout_mmc_command_23112 busy_timeout mmc_command 0 23112 NULL
138123 +disable_so_expired_tscdeadline_kvm_timer_23113 expired_tscdeadline kvm_timer 0 23113 NULL nohasharray
138124 +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
138125 +disable_so_mmc_mmc_erase_timeout_fndecl_23122 mmc_mmc_erase_timeout fndecl 0-3-2 23122 NULL
138126 +disable_so_bq32k_rtc_read_time_fndecl_23124 bq32k_rtc_read_time fndecl 0 23124 NULL
138127 +disable_so_mtt_base_addr_h_mlx4_eq_context_23127 mtt_base_addr_h mlx4_eq_context 0 23127 NULL
138128 +disable_so_sack_timeout_netns_sctp_23134 sack_timeout netns_sctp 0 23134 NULL
138129 +disable_so_addr_hw_breakpoint_23137 addr hw_breakpoint 0 23137 NULL
138130 +disable_so_port_sctp_bind_addr_23142 port sctp_bind_addr 0 23142 NULL
138131 +disable_so_rpa_timeout_set_fndecl_23145 rpa_timeout_set fndecl 2 23145 NULL nohasharray
138132 +disable_so_mthca_SW2HW_MPT_fndecl_23145 mthca_SW2HW_MPT fndecl 0-3 23145 &disable_so_rpa_timeout_set_fndecl_23145 nohasharray
138133 +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
138134 +disable_so_eof_gid_xfs_fs_eofblocks_23146 eof_gid xfs_fs_eofblocks 0 23146 NULL
138135 +disable_so_ccp_aes_decrypt_fndecl_23149 ccp_aes_decrypt fndecl 0 23149 NULL
138136 +disable_so_idle_timeout_hci_dev_23160 idle_timeout hci_dev 0 23160 NULL
138137 +disable_so_radeon_atom_set_memory_clock_fndecl_23164 radeon_atom_set_memory_clock fndecl 2 23164 NULL
138138 +disable_so_k_pll_div_23168 k pll_div 0 23168 NULL
138139 +disable_so_ebitmap_node_clr_bit_fndecl_23171 ebitmap_node_clr_bit fndecl 2 23171 NULL
138140 +disable_so_rt_runtime_rt_schedulable_data_23172 rt_runtime rt_schedulable_data 0 23172 NULL
138141 +disable_so_reply_dma_min_address_MPT2SAS_ADAPTER_23181 reply_dma_min_address MPT2SAS_ADAPTER 0 23181 NULL
138142 +disable_so_tsc_shift_pvclock_vcpu_time_info_23184 tsc_shift pvclock_vcpu_time_info 0 23184 NULL
138143 +disable_so_vlan_dev_set_mac_address_fndecl_23188 vlan_dev_set_mac_address fndecl 0 23188 NULL
138144 +disable_so_mpll_ss1_ci_clock_registers_23197 mpll_ss1 ci_clock_registers 0 23197 NULL
138145 +disable_so_addr_cmd_complete_fndecl_23200 addr_cmd_complete fndecl 0 23200 NULL
138146 +disable_so_cpu_clock_fndecl_23205 cpu_clock fndecl 1-0 23205 NULL
138147 +disable_so_prescale_pll_div_23215 prescale pll_div 0 23215 NULL
138148 +disable_so_sel_addr2___mux2_23216 sel_addr2 __mux2 0 23216 NULL
138149 +disable_so_usb_sleep_charge_store_fndecl_23232 usb_sleep_charge_store fndecl 0-4 23232 NULL
138150 +disable_so_bmc150_accel_set_interrupt_fndecl_23235 bmc150_accel_set_interrupt fndecl 0 23235 NULL
138151 +disable_so_netlbl_af4list_audit_addr_fndecl_23240 netlbl_af4list_audit_addr fndecl 4-5 23240 NULL
138152 +disable_so_max_freq_intel_gen6_power_mgmt_23243 max_freq intel_gen6_power_mgmt 0 23243 NULL
138153 +disable_so_i_ctime_ext4_inode_23246 i_ctime ext4_inode 0 23246 NULL
138154 +disable_so_sel_read_avc_hash_stats_fndecl_23251 sel_read_avc_hash_stats fndecl 0-3 23251 NULL
138155 +disable_so_wlc_phy_get_chan_freq_range_nphy_fndecl_23253 wlc_phy_get_chan_freq_range_nphy fndecl 2 23253 NULL
138156 +disable_so_trinity_convert_did_to_freq_fndecl_23254 trinity_convert_did_to_freq fndecl 0-2 23254 NULL
138157 +disable_so_nopin_timeout_iscsi_node_attrib_23262 nopin_timeout iscsi_node_attrib 0 23262 NULL
138158 +disable_so_blk_rq_timeout_fndecl_23263 blk_rq_timeout fndecl 0-1 23263 NULL
138159 +disable_so_dmfe_interrupt_fndecl_23265 dmfe_interrupt fndecl 1 23265 NULL
138160 +disable_so_crypto_rng_generate_fndecl_23266 crypto_rng_generate fndecl 0-5 23266 NULL
138161 +disable_so_ebitmap_read_fndecl_23268 ebitmap_read fndecl 0 23268 NULL
138162 +disable_so_loops_per_jiffy_cpuinfo_x86_23277 loops_per_jiffy cpuinfo_x86 0 23277 NULL
138163 +disable_so_T7_address_mxt_data_23282 T7_address mxt_data 0 23282 NULL
138164 +disable_so_turn_around_timeout_mipi_config_23283 turn_around_timeout mipi_config 0 23283 NULL
138165 +disable_so_crypto_report_one_fndecl_23300 crypto_report_one fndecl 0 23300 NULL
138166 +disable_so_io_base_addr_pch_spi_data_23302 io_base_addr pch_spi_data 0 23302 NULL
138167 +disable_so___ww_mutex_lock_interruptible_fndecl_23308 __ww_mutex_lock_interruptible fndecl 0 23308 NULL
138168 +disable_so_get_bitmap_file_fndecl_23317 get_bitmap_file fndecl 0 23317 NULL
138169 +disable_so_address_hi_lpfc_rqe_23318 address_hi lpfc_rqe 0 23318 NULL
138170 +disable_so_iscsit_na_nopin_response_timeout_fndecl_23323 iscsit_na_nopin_response_timeout fndecl 2-0 23323 NULL
138171 +disable_so_omap1_spi100k_runtime_resume_fndecl_23325 omap1_spi100k_runtime_resume fndecl 0 23325 NULL
138172 +disable_so_snd_timer_global_register_fndecl_23326 snd_timer_global_register fndecl 0 23326 NULL
138173 +disable_so_to_initval_rpc_timeout_23329 to_initval rpc_timeout 0 23329 NULL
138174 +disable_so_bd_list_addr_hi_bnx2i_text_request_23342 bd_list_addr_hi bnx2i_text_request 0 23342 NULL
138175 +disable_so_i2c_addr_a8293_config_23348 i2c_addr a8293_config 0 23348 NULL
138176 +disable_so_range_sizek_var_mtrr_state_23353 range_sizek var_mtrr_state 0 23353 NULL
138177 +disable_so_total_time_running_perf_event_23362 total_time_running perf_event 0 23362 NULL
138178 +disable_so_vdi_gid_vxfs_inode_info_23369 vdi_gid vxfs_inode_info 0 23369 NULL
138179 +disable_so_attrtimeo_timestamp_nfs_inode_23391 attrtimeo_timestamp nfs_inode 0 23391 NULL
138180 +disable_so_si476x_core_cmd_fm_tune_freq_a10_fndecl_23406 si476x_core_cmd_fm_tune_freq_a10 fndecl 0 23406 NULL
138181 +disable_so_sensor_addr_sd_23409 sensor_addr sd 0 23409 NULL
138182 +disable_so_run_delayed_extent_op_fndecl_23414 run_delayed_extent_op fndecl 0 23414 NULL
138183 +disable_so_PXDaddress_fndecl_23420 PXDaddress fndecl 2 23420 NULL
138184 +disable_so_timeout_addr_req_23421 timeout addr_req 0 23421 NULL
138185 +disable_so_tx_pwr_last_recalc_freq_b43_phy_n_23433 tx_pwr_last_recalc_freq b43_phy_n 0 23433 NULL
138186 +disable_so_iscsit_na_nopin_timeout_fndecl_23436 iscsit_na_nopin_timeout fndecl 2-0 23436 NULL
138187 +disable_so_set_tsc_khz_kvm_x86_ops_23439 set_tsc_khz kvm_x86_ops 2 23439 NULL
138188 +disable_so_eee_timer_vardecl_stmmac_main_c_23447 eee_timer vardecl_stmmac_main.c 0 23447 NULL
138189 +disable_so_ndac_aic31xx_rate_divs_23456 ndac aic31xx_rate_divs 0 23456 NULL nohasharray
138190 +disable_so_r27_val_fc2580_freq_regs_23456 r27_val fc2580_freq_regs 0 23456 &disable_so_ndac_aic31xx_rate_divs_23456
138191 +disable_so_ports_timeout_uhci_hcd_23457 ports_timeout uhci_hcd 0 23457 NULL
138192 +disable_so_fw_load_addr_cas_23459 fw_load_addr cas 0 23459 NULL
138193 +disable_so_enic_dev_add_addr_fndecl_23465 enic_dev_add_addr fndecl 0 23465 NULL
138194 +disable_so_hpet_num_timers_vardecl_hpet_c_23468 hpet_num_timers vardecl_hpet.c 0 23468 NULL
138195 +disable_so_protocol_tomoyo_addr_info_23473 protocol tomoyo_addr_info 0 23473 NULL
138196 +disable_so_sys_clock_settime_fndecl_23475 sys_clock_settime fndecl 1 23475 NULL
138197 +disable_so_pch_uart_hal_enable_interrupt_fndecl_23482 pch_uart_hal_enable_interrupt fndecl 2 23482 NULL
138198 +disable_so_start_addr_snd_emu10k1_pcm_23487 start_addr snd_emu10k1_pcm 0 23487 NULL
138199 +disable_so___bitmap_xor_fndecl_23490 __bitmap_xor fndecl 4 23490 NULL
138200 +disable_so_dst_addr_beiscsi_endpoint_23495 dst_addr beiscsi_endpoint 0 23495 NULL
138201 +disable_so_mask_hi_mtrr_var_range_23508 mask_hi mtrr_var_range 0 23508 NULL
138202 +disable_so_max_mlx4_bitmap_23521 max mlx4_bitmap 0 23521 NULL
138203 +disable_so_bitmap_ip_do_list_fndecl_23527 bitmap_ip_do_list fndecl 0 23527 NULL
138204 +disable_so_radio_freq_tuner_23529 radio_freq tuner 0 23529 NULL
138205 +disable_so_timeout_idletimer_tg_info_23534 timeout idletimer_tg_info 0 23534 NULL
138206 +disable_so_end_jiffies_iwl_mvm_time_event_data_23536 end_jiffies iwl_mvm_time_event_data 0 23536 NULL
138207 +disable_so_try_read_address_fndecl_23550 try_read_address fndecl 0-2 23550 NULL
138208 +disable_so_cpufreq_stats_create_table_fndecl_23554 cpufreq_stats_create_table fndecl 1 23554 NULL
138209 +disable_so_div2__pll_div_23561 div2 _pll_div 0 23561 NULL
138210 +disable_so_hpi_sample_clock_set_local_rate_fndecl_23570 hpi_sample_clock_set_local_rate fndecl 1-0 23570 NULL
138211 +disable_so_sctp_assoc_set_bind_addr_from_ep_fndecl_23572 sctp_assoc_set_bind_addr_from_ep fndecl 0-3 23572 NULL
138212 +disable_so_hscb_busaddr_scb_data_23574 hscb_busaddr scb_data 0 23574 NULL
138213 +disable_so_shadow_msr_edgeport_port_23577 shadow_msr edgeport_port 0 23577 NULL
138214 +disable_so_gcm_hash_fndecl_23580 gcm_hash fndecl 0 23580 NULL
138215 +disable_so_kvm_send_hwpoison_signal_fndecl_23581 kvm_send_hwpoison_signal fndecl 1 23581 NULL
138216 +disable_so_spu_reg_delay_if_spi_card_23584 spu_reg_delay if_spi_card 0 23584 NULL
138217 +disable_so_inet_rtm_deladdr_fndecl_23589 inet_rtm_deladdr fndecl 0 23589 NULL
138218 +disable_so_sm2_runtime_sc_23590 sm2 runtime_sc 0 23590 NULL
138219 +disable_so_cpumask_parselist_user_fndecl_23592 cpumask_parselist_user fndecl 0-2 23592 NULL
138220 +disable_so_clock_cooling_get_frequency_fndecl_23598 clock_cooling_get_frequency fndecl 0 23598 NULL
138221 +disable_so_nilfs_btree_last_key_fndecl_23599 nilfs_btree_last_key fndecl 0 23599 NULL
138222 +disable_so_address_map_r8a66597_23613 address_map r8a66597 0 23613 NULL
138223 +disable_so_closest_timer_fndecl_23617 closest_timer fndecl 2 23617 NULL
138224 +disable_so_delay_radeon_atom_ss_23618 delay radeon_atom_ss 0 23618 NULL
138225 +disable_so_no_addr_gfs2_skip_data_23619 no_addr gfs2_skip_data 0 23619 NULL nohasharray
138226 +disable_so_bloutp_qat_crypto_request_buffs_23619 bloutp qat_crypto_request_buffs 0 23619 &disable_so_no_addr_gfs2_skip_data_23619
138227 +disable_so_i2s_runtime_resume_fndecl_23625 i2s_runtime_resume fndecl 0 23625 NULL nohasharray
138228 +disable_so_mtime_seg_entry_23625 mtime seg_entry 0 23625 &disable_so_i2s_runtime_resume_fndecl_23625
138229 +disable_so_atime_apds990x_chip_23626 atime apds990x_chip 0 23626 NULL
138230 +disable_so_irq_domain_free_irqs_fndecl_23634 irq_domain_free_irqs fndecl 1-2 23634 NULL
138231 +disable_so_gru_last_node_paddr_vardecl_x2apic_uv_x_c_23641 gru_last_node_paddr vardecl_x2apic_uv_x.c 0 23641 NULL
138232 +disable_so_tss_addr_kvm_arch_23642 tss_addr kvm_arch 0 23642 NULL
138233 +disable_so_rv3029c2_rtc_read_time_fndecl_23644 rv3029c2_rtc_read_time fndecl 0 23644 NULL
138234 +disable_so___round_jiffies_fndecl_23650 __round_jiffies fndecl 2-1-0 23650 NULL
138235 +disable_so_fixed_mtrr_seg_unit_range_index_fndecl_23657 fixed_mtrr_seg_unit_range_index fndecl 2-0 23657 NULL
138236 +disable_so_timeriomem_rng_driver_init_fndecl_23666 timeriomem_rng_driver_init fndecl 0 23666 NULL
138237 +disable_so_read_status_jiffies_af9013_state_23669 read_status_jiffies af9013_state 0 23669 NULL
138238 +disable_so_st_gid_compat_stat_23673 st_gid compat_stat 0 23673 NULL nohasharray
138239 +disable_so_addr_snic_sg_desc_23673 addr snic_sg_desc 0 23673 &disable_so_st_gid_compat_stat_23673
138240 +disable_so_boottime_get_fndecl_23679 boottime_get fndecl 0 23679 NULL
138241 +disable_so_sctp_v4_inaddr_any_fndecl_23681 sctp_v4_inaddr_any fndecl 2 23681 NULL
138242 +disable_so_posix_cpu_clock_get_task_fndecl_23683 posix_cpu_clock_get_task fndecl 2 23683 NULL nohasharray
138243 +disable_so_gpio_free_fndecl_23683 gpio_free fndecl 1 23683 &disable_so_posix_cpu_clock_get_task_fndecl_23683
138244 +disable_so_ebitmap_cpy_fndecl_23688 ebitmap_cpy fndecl 0 23688 NULL
138245 +disable_so___bitmap_parselist_fndecl_23689 __bitmap_parselist fndecl 0-2-5 23689 NULL
138246 +disable_so_wlcore_hw_interrupt_notify_fndecl_23695 wlcore_hw_interrupt_notify fndecl 0 23695 NULL
138247 +disable_so_schedule_zero_fndecl_23702 schedule_zero fndecl 2-3 23702 NULL nohasharray
138248 +disable_so_mtt_addr_mlx4_mpt_entry_23702 mtt_addr mlx4_mpt_entry 0 23702 &disable_so_schedule_zero_fndecl_23702
138249 +disable_so_adis16400_get_freq_fndecl_23703 adis16400_get_freq fndecl 0 23703 NULL
138250 +disable_so_interrupt_out_endpoint_size_ld_usb_23705 interrupt_out_endpoint_size ld_usb 0 23705 NULL
138251 +disable_so_mac_time_libipw_rx_stats_23706 mac_time libipw_rx_stats 0 23706 NULL nohasharray
138252 +disable_so___ipv6_addr_diff_fndecl_23706 __ipv6_addr_diff fndecl 0 23706 &disable_so_mac_time_libipw_rx_stats_23706
138253 +disable_so_delay_snd_pcm_status_23708 delay snd_pcm_status 0 23708 NULL
138254 +disable_so_oprofile_set_timeout_fndecl_23715 oprofile_set_timeout fndecl 1-0 23715 NULL
138255 +disable_so_fll_fratio__fll_div_23723 fll_fratio _fll_div 0 23723 NULL
138256 +disable_so___uac_clock_find_source_fndecl_23728 __uac_clock_find_source fndecl 0-2 23728 NULL
138257 +disable_so_acpi_pci_root_get_mcfg_addr_fndecl_23731 acpi_pci_root_get_mcfg_addr fndecl 0 23731 NULL
138258 +disable_so_snd_hda_codec_write_fndecl_23746 snd_hda_codec_write fndecl 0-5-4-2 23746 NULL
138259 +disable_so_local_ipaddr_nes_vnic_23747 local_ipaddr nes_vnic 0 23747 NULL
138260 +disable_so_frequency_stv0900_signal_info_23753 frequency stv0900_signal_info 0 23753 NULL
138261 +disable_so_ic_addrservaddr_vardecl_23754 ic_addrservaddr vardecl 0 23754 NULL
138262 +disable_so_next_hrtimer_event_fusbh200_hcd_23756 next_hrtimer_event fusbh200_hcd 0 23756 NULL
138263 +disable_so_speedstep_get_frequency_fndecl_23758 speedstep_get_frequency fndecl 0 23758 NULL
138264 +disable_so_lpe_base_sst_addr_23776 lpe_base sst_addr 0 23776 NULL
138265 +disable_so_saddr_flowidn_23780 saddr flowidn 0 23780 NULL
138266 +disable_so_uwb_rc_dev_addr_get_fndecl_23783 uwb_rc_dev_addr_get fndecl 0 23783 NULL
138267 +disable_so_qla2x00_start_timer_fndecl_23784 qla2x00_start_timer fndecl 3 23784 NULL
138268 +disable_so_pcan_usb_fd_set_bittiming_slow_fndecl_23790 pcan_usb_fd_set_bittiming_slow fndecl 0 23790 NULL
138269 +disable_so_crypto_rfc4543_setauthsize_fndecl_23801 crypto_rfc4543_setauthsize fndecl 2 23801 NULL
138270 +disable_so_drbd_send_uuids_skip_initial_sync_fndecl_23802 drbd_send_uuids_skip_initial_sync fndecl 0 23802 NULL
138271 +disable_so_si476x_phase_diversity_mode_to_idx_fndecl_23804 si476x_phase_diversity_mode_to_idx fndecl 0 23804 NULL
138272 +disable_so_ci_program_memory_timing_parameters_fndecl_23805 ci_program_memory_timing_parameters fndecl 0 23805 NULL
138273 +disable_so_show_ioc_guid_fndecl_23810 show_ioc_guid fndecl 0 23810 NULL
138274 +disable_so_gpiod_get_raw_value_cansleep_fndecl_23812 gpiod_get_raw_value_cansleep fndecl 0 23812 NULL
138275 +disable_so_cpu_to_fs64_fndecl_23816 cpu_to_fs64 fndecl 0-2 23816 NULL
138276 +disable_so_tomoyo_convert_time_fndecl_23823 tomoyo_convert_time fndecl 1 23823 NULL
138277 +disable_so_ufshcd_runtime_resume_fndecl_23824 ufshcd_runtime_resume fndecl 0 23824 NULL
138278 +disable_so_ext4_block_bitmap_csum_verify_fndecl_23826 ext4_block_bitmap_csum_verify fndecl 2 23826 NULL
138279 +disable_so_hash_hi_smsc95xx_priv_23835 hash_hi smsc95xx_priv 0 23835 NULL
138280 +disable_so_pm_autosleep_init_fndecl_23847 pm_autosleep_init fndecl 0 23847 NULL
138281 +disable_so_mpu_timer_init_fndecl_23854 mpu_timer_init fndecl 1 23854 NULL
138282 +disable_so_bg_block_bitmap_ext2_group_desc_23861 bg_block_bitmap ext2_group_desc 0 23861 NULL
138283 +disable_so_mlx4_en_config_port_scheduler_fndecl_23868 mlx4_en_config_port_scheduler fndecl 0 23868 NULL
138284 +disable_so_pixelclock_for_modeset_radeon_connector_23870 pixelclock_for_modeset radeon_connector 0 23870 NULL
138285 +disable_so_ocfs2_remove_btree_range_fndecl_23874 ocfs2_remove_btree_range fndecl 0-3-4-5-8 23874 NULL
138286 +disable_so_crypto_authenc_setkey_fndecl_23875 crypto_authenc_setkey fndecl 0 23875 NULL
138287 +disable_so_vdiv_mcp77_clk_priv_23881 vdiv mcp77_clk_priv 0 23881 NULL
138288 +disable_so_xfs_da_hashname_fndecl_23895 xfs_da_hashname fndecl 2 23895 NULL
138289 +disable_so_sky2_rx_hash_fndecl_23905 sky2_rx_hash fndecl 2 23905 NULL
138290 +disable_so_pci_revert_fw_address_fndecl_23911 pci_revert_fw_address fndecl 3-4 23911 NULL
138291 +disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914 gru_chiplet_cpu_to_mmr fndecl 2 23914 NULL nohasharray
138292 +disable_so_htotal___fb_timings_23914 htotal __fb_timings 0 23914 &disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914
138293 +disable_so_coalescing_timeo_bna_tx_config_23917 coalescing_timeo bna_tx_config 0 23917 NULL
138294 +disable_so_block_size_ccp_sha_def_23920 block_size ccp_sha_def 0 23920 NULL
138295 +disable_so_chunk_sizek_mtrr_cleanup_result_23928 chunk_sizek mtrr_cleanup_result 0 23928 NULL
138296 +disable_so_cpufreq_register_driver_fndecl_23933 cpufreq_register_driver fndecl 0 23933 NULL
138297 +disable_so_requested_freq_cs_cpu_dbs_info_s_23941 requested_freq cs_cpu_dbs_info_s 0 23941 NULL
138298 +disable_so_ath9k_hw_setslottime_fndecl_23946 ath9k_hw_setslottime fndecl 2 23946 NULL
138299 +disable_so_clock_man_fndecl_23950 clock_man fndecl 2 23950 NULL
138300 +disable_so_dma2_address_info_23953 dma2 address_info 0 23953 NULL
138301 +disable_so_crypto_ctr_crypt_segment_fndecl_23955 crypto_ctr_crypt_segment fndecl 0 23955 NULL
138302 +disable_so_be_set_rss_hash_opts_fndecl_23960 be_set_rss_hash_opts fndecl 0 23960 NULL
138303 +disable_so_src_low_addr_mvumi_dyn_list_entry_23961 src_low_addr mvumi_dyn_list_entry 0 23961 NULL
138304 +disable_so_fm_v4l2_vidioc_s_hw_freq_seek_fndecl_23963 fm_v4l2_vidioc_s_hw_freq_seek fndecl 0 23963 NULL
138305 +disable_so_tmr_start_sound_lowlev_timer_23966 tmr_start sound_lowlev_timer 1 23966 NULL
138306 +disable_so_task_clock_event_update_fndecl_23968 task_clock_event_update fndecl 2 23968 NULL
138307 +disable_so_i_mtime_minix2_inode_23986 i_mtime minix2_inode 0 23986 NULL
138308 +disable_so_time_offset_wl1271_23987 time_offset wl1271 0 23987 NULL
138309 +disable_so_src_nents_qce_sha_reqctx_24004 src_nents qce_sha_reqctx 0 24004 NULL
138310 +disable_so_elements_bitmap_ipmac_24013 elements bitmap_ipmac 0 24013 NULL
138311 +disable_so_aggregation_timeout_cfhsi_config_24023 aggregation_timeout cfhsi_config 0 24023 NULL
138312 +disable_so_write_interrupt_go7007_hpi_ops_24025 write_interrupt go7007_hpi_ops 3 24025 NULL
138313 +disable_so_data_timer_list_24031 data timer_list 0 24031 NULL
138314 +disable_so_reference_freq_radeon_pll_24034 reference_freq radeon_pll 0 24034 NULL
138315 +disable_so_smi_mod_timer_fndecl_24037 smi_mod_timer fndecl 2 24037 NULL
138316 +disable_so_sha1_mb_async_digest_fndecl_24067 sha1_mb_async_digest fndecl 0 24067 NULL
138317 +disable_so_drv2667_set_waveform_freq_fndecl_24071 drv2667_set_waveform_freq fndecl 0 24071 NULL
138318 +disable_so_ath6kl_disconnect_timeout_write_fndecl_24073 ath6kl_disconnect_timeout_write fndecl 3-0 24073 NULL nohasharray
138319 +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
138320 +disable_so_hi_cfg_timing_div_drxd_state_24076 hi_cfg_timing_div drxd_state 0 24076 NULL nohasharray
138321 +disable_so_addr_gf100_grctx_24076 addr gf100_grctx 0 24076 &disable_so_hi_cfg_timing_div_drxd_state_24076
138322 +disable_so_expected_sys_clock_freq_drxd_state_24078 expected_sys_clock_freq drxd_state 0 24078 NULL
138323 +disable_so_img_ir_symbol_timing_fndecl_24080 img_ir_symbol_timing fndecl 0-2-3-4-5 24080 NULL
138324 +disable_so_nr_uuids_cache_set_24084 nr_uuids cache_set 0 24084 NULL nohasharray
138325 +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
138326 +disable_so_radeon_atom_get_clock_dividers_fndecl_24091 radeon_atom_get_clock_dividers fndecl 2-0-3 24091 NULL
138327 +disable_so_rx_pg_bidx_addr_bnx2_rx_ring_info_24100 rx_pg_bidx_addr bnx2_rx_ring_info 0 24100 NULL
138328 +disable_so_pty_signal_fndecl_24107 pty_signal fndecl 2 24107 NULL
138329 +disable_so_laddr_rsxx_dma_24112 laddr rsxx_dma 0 24112 NULL
138330 +disable_so_position_ct_timer_instance_24114 position ct_timer_instance 0 24114 NULL
138331 +disable_so_btrfs_create_uuid_tree_fndecl_24124 btrfs_create_uuid_tree fndecl 0 24124 NULL
138332 +disable_so_version_ethtool_regs_24128 version ethtool_regs 0 24128 NULL
138333 +disable_so_usleep_range_fndecl_24129 usleep_range fndecl 1-2 24129 NULL
138334 +disable_so_pdc_detect_pll_input_clock_fndecl_24132 pdc_detect_pll_input_clock fndecl 0 24132 NULL
138335 +disable_so_dn_ifaddr_notify_fndecl_24133 dn_ifaddr_notify fndecl 1 24133 NULL
138336 +disable_so_sis_ata133_program_udma_timings_fndecl_24137 sis_ata133_program_udma_timings fndecl 2 24137 NULL
138337 +disable_so_fll_fratio_fll_div_24138 fll_fratio fll_div 0 24138 NULL
138338 +disable_so_switch_addr_tda827x_config_24144 switch_addr tda827x_config 0 24144 NULL
138339 +disable_so_scan_timeout_airo_info_24146 scan_timeout airo_info 0 24146 NULL nohasharray
138340 +disable_so_tps6586x_rtc_set_time_fndecl_24146 tps6586x_rtc_set_time fndecl 0 24146 &disable_so_scan_timeout_airo_info_24146
138341 +disable_so_ip101a_g_ack_interrupt_fndecl_24147 ip101a_g_ack_interrupt fndecl 0 24147 NULL
138342 +disable_so_clock_speed__MGSL_PARAMS_24149 clock_speed _MGSL_PARAMS 0 24149 NULL nohasharray
138343 +disable_so_esi_tss_segment_32_24149 esi tss_segment_32 0 24149 &disable_so_clock_speed__MGSL_PARAMS_24149
138344 +disable_so_sync_size_bitmap_super_s_24170 sync_size bitmap_super_s 0 24170 NULL
138345 +disable_so_hwirq_irq_data_24172 hwirq irq_data 0 24172 NULL
138346 +disable_so_brcm_fet_ack_interrupt_fndecl_24181 brcm_fet_ack_interrupt fndecl 0 24181 NULL
138347 +disable_so_min_delta_ticks_clock_event_device_24191 min_delta_ticks clock_event_device 0 24191 NULL
138348 +disable_so_device_snd_timer_id_24197 device snd_timer_id 0 24197 NULL
138349 +disable_so_xcan_tx_interrupt_fndecl_24200 xcan_tx_interrupt fndecl 2 24200 NULL
138350 +disable_so_dmabuf_timeout_fndecl_24205 dmabuf_timeout fndecl 0 24205 NULL
138351 +disable_so_pm_runtime_get_sync_fndecl_24206 pm_runtime_get_sync fndecl 0 24206 NULL
138352 +disable_so_vdso_addr_fndecl_24212 vdso_addr fndecl 1-2 24212 NULL
138353 +disable_so___subtree_last_usnic_uiom_interval_node_24213 __subtree_last usnic_uiom_interval_node 0 24213 NULL
138354 +disable_so_read_mac_addr_pch_gbe_functions_24216 read_mac_addr pch_gbe_functions 0 24216 NULL
138355 +disable_so_get_option_gid_fndecl_24218 get_option_gid fndecl 0 24218 NULL
138356 +disable_so_decode_freq_dst_state_24221 decode_freq dst_state 0 24221 NULL
138357 +disable_so_nilfs_btree_prepare_delete_fndecl_24237 nilfs_btree_prepare_delete fndecl 0 24237 NULL
138358 +disable_so_start_time_s2io_nic_24242 start_time s2io_nic 0 24242 NULL
138359 +disable_so_tv_vsync_delay_nv04_crtc_reg_24261 tv_vsync_delay nv04_crtc_reg 0 24261 NULL
138360 +disable_so_sq_addr_low_nes_qp_context_24263 sq_addr_low nes_qp_context 0 24263 NULL
138361 +disable_so_jiffies_next_airspy_24265 jiffies_next airspy 0 24265 NULL
138362 +disable_so_show_node_guid_fndecl_24266 show_node_guid fndecl 0 24266 NULL
138363 +disable_so_new_addr_tcf_nat_24272 new_addr tcf_nat 0 24272 NULL nohasharray
138364 +disable_so_dt_cpufreq_probe_fndecl_24272 dt_cpufreq_probe fndecl 0 24272 &disable_so_new_addr_tcf_nat_24272
138365 +disable_so_src_freq_tbl_24280 src freq_tbl 0 24280 NULL
138366 +disable_so_tps51632_dcdc_set_ramp_delay_fndecl_24291 tps51632_dcdc_set_ramp_delay fndecl 0-2 24291 NULL
138367 +disable_so_resolution_num_snd_timer_gstatus_24293 resolution_num snd_timer_gstatus 0 24293 NULL
138368 +disable_so_delay_usecs_spi_transfer_24301 delay_usecs spi_transfer 0 24301 NULL
138369 +disable_so_curfreq_dsbr100_device_24314 curfreq dsbr100_device 0 24314 NULL
138370 +disable_so_mlx4_set_admin_guid_fndecl_24342 mlx4_set_admin_guid fndecl 3-4 24342 NULL
138371 +disable_so__get_table_maxdiv_fndecl_24353 _get_table_maxdiv fndecl 0 24353 NULL
138372 +disable_so_fb_div_scale_rv6xx_power_info_24360 fb_div_scale rv6xx_power_info 0 24360 NULL
138373 +disable_so_fb_get_hfreq_fndecl_24369 fb_get_hfreq fndecl 0-1-2 24369 NULL
138374 +disable_so_mmp_time_mmp_struct_24373 mmp_time mmp_struct 0 24373 NULL
138375 +disable_so_timestamp_mwifiex_fixed_bcn_param_24375 timestamp mwifiex_fixed_bcn_param 0 24375 NULL
138376 +disable_so_s2mpu02_set_ramp_delay_fndecl_24379 s2mpu02_set_ramp_delay fndecl 0 24379 NULL
138377 +disable_so_last_fail_time_iscsi_login_stats_24381 last_fail_time iscsi_login_stats 0 24381 NULL
138378 +disable_so_bus_addr_vnic_res_24386 bus_addr vnic_res 0 24386 NULL
138379 +disable_so_i40e_ptp_adjtime_fndecl_24400 i40e_ptp_adjtime fndecl 2 24400 NULL
138380 +disable_so_msr_ct_atc_24401 msr ct_atc 0 24401 NULL
138381 +disable_so_pvr2_hdw_get_cur_freq_fndecl_24402 pvr2_hdw_get_cur_freq fndecl 0 24402 NULL
138382 +disable_so_time_ubifs_znode_24419 time ubifs_znode 0 24419 NULL
138383 +disable_so_ssp_get_clk_div_fndecl_24428 ssp_get_clk_div fndecl 0-2 24428 NULL
138384 +disable_so_sem_otime_sem_24429 sem_otime sem 0 24429 NULL
138385 +disable_so_mrst_lvds_clock_fndecl_24433 mrst_lvds_clock fndecl 1 24433 NULL
138386 +disable_so_ccp_aes_setkey_fndecl_24438 ccp_aes_setkey fndecl 3 24438 NULL
138387 +disable_so_log2_page_size_mlx5_mkey_seg_24441 log2_page_size mlx5_mkey_seg 0 24441 NULL
138388 +disable_so_qtimer_val_fndecl_24449 qtimer_val fndecl 0 24449 NULL
138389 +disable_so_sum_exec_runtime_sched_entity_24453 sum_exec_runtime sched_entity 0 24453 NULL
138390 +disable_so_ehash_mask_inet_hashinfo_24457 ehash_mask inet_hashinfo 0 24457 NULL
138391 +disable_so_bd_list_addr_hi_bnx2i_tmf_request_24461 bd_list_addr_hi bnx2i_tmf_request 0 24461 NULL
138392 +disable_so_qce_ahash_register_fndecl_24475 qce_ahash_register fndecl 0 24475 NULL
138393 +disable_so_acpi_leave_sleep_state_fndecl_24476 acpi_leave_sleep_state fndecl 0-1 24476 NULL
138394 +disable_so_last_can_queue_ramp_up_time_fc_fcp_internal_24477 last_can_queue_ramp_up_time fc_fcp_internal 0 24477 NULL
138395 +disable_so_mtrr_gran_size_vardecl_cleanup_c_24487 mtrr_gran_size vardecl_cleanup.c 0 24487 NULL
138396 +disable_so_tef6862_s_frequency_fndecl_24490 tef6862_s_frequency fndecl 0 24490 NULL
138397 +disable_so_update_uc_addr_fm10k_mac_ops_24492 update_uc_addr fm10k_mac_ops 4 24492 NULL
138398 +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
138399 +disable_so_read_div_fndecl_24524 read_div fndecl 0-2-3-4 24524 NULL
138400 +disable_so_sctp_setsockopt_peer_addr_params_fndecl_24525 sctp_setsockopt_peer_addr_params fndecl 3-0 24525 NULL
138401 +disable_so_dev_addr_dma_debug_entry_24528 dev_addr dma_debug_entry 0 24528 NULL
138402 +disable_so_txurn_interrupt_mask_ath_hw_24529 txurn_interrupt_mask ath_hw 0 24529 NULL
138403 +disable_so_reg_w_fndecl_24535 reg_w fndecl 2-3 24535 NULL
138404 +disable_so_fs_csaddr_ufs_super_block_first_24537 fs_csaddr ufs_super_block_first 0 24537 NULL nohasharray
138405 +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
138406 +disable_so_af_tx_sent_jiffies_brcmf_p2p_info_24540 af_tx_sent_jiffies brcmf_p2p_info 0 24540 NULL
138407 +disable_so_timekeeping_max_deferment_fndecl_24546 timekeeping_max_deferment fndecl 0 24546 NULL
138408 +disable_so_poly_cipherpad_fndecl_24550 poly_cipherpad fndecl 0 24550 NULL
138409 +disable_so_aosr_aic32x4_rate_divs_24551 aosr aic32x4_rate_divs 0 24551 NULL
138410 +disable_so_dir_band_bitmap_hpfs_super_block_24552 dir_band_bitmap hpfs_super_block 0 24552 NULL
138411 +disable_so_confq_first_pbe_addr_hi_fcoe_kwqe_conn_offload3_24566 confq_first_pbe_addr_hi fcoe_kwqe_conn_offload3 0 24566 NULL
138412 +disable_so_console_addr_brcmf_sdio_24567 console_addr brcmf_sdio 0 24567 NULL
138413 +disable_so_cis820x_ack_interrupt_fndecl_24585 cis820x_ack_interrupt fndecl 0 24585 NULL
138414 +disable_so_proc_loginuid_read_fndecl_24604 proc_loginuid_read fndecl 3-0 24604 NULL
138415 +disable_so_schedule_nes_timer_fndecl_24613 schedule_nes_timer fndecl 0 24613 NULL
138416 +disable_so_base_freq_patch_info_24622 base_freq patch_info 0 24622 NULL
138417 +disable_so_acpi_hw_sleep_dispatch_fndecl_24627 acpi_hw_sleep_dispatch fndecl 0-1 24627 NULL
138418 +disable_so_busaddr_cciss_scsi_cmd_stack_elem_t_24629 busaddr cciss_scsi_cmd_stack_elem_t 0 24629 NULL
138419 +disable_so_hscb_busaddr_hardware_scb_24633 hscb_busaddr hardware_scb 0 24633 NULL
138420 +disable_so_scsi_reset_delay_adveep_38C0800_config_24634 scsi_reset_delay adveep_38C0800_config 0 24634 NULL
138421 +disable_so_mclk_fb_div_pll_ct_24641 mclk_fb_div pll_ct 0 24641 NULL
138422 +disable_so_writeback_index_address_space_24643 writeback_index address_space 0 24643 NULL
138423 +disable_so_ieee80211_aes_cmac_256_fndecl_24647 ieee80211_aes_cmac_256 fndecl 4 24647 NULL
138424 +disable_so_i915_gem_object_set_to_cpu_domain_fndecl_24650 i915_gem_object_set_to_cpu_domain fndecl 0 24650 NULL
138425 +disable_so_i2c_addr_sd_24651 i2c_addr sd 0 24651 NULL
138426 +disable_so_next_jiffies_vardecl_ksz884x_c_24672 next_jiffies vardecl_ksz884x.c 0 24672 NULL
138427 +disable_so_sclk_frequency_sumo_sclk_voltage_mapping_entry_24676 sclk_frequency sumo_sclk_voltage_mapping_entry 0 24676 NULL
138428 +disable_so_eop_buffer_address_kfd_ioctl_create_queue_args_24677 eop_buffer_address kfd_ioctl_create_queue_args 0 24677 NULL
138429 +disable_so_cyc2ns_mul_cyc2ns_data_24698 cyc2ns_mul cyc2ns_data 0 24698 NULL
138430 +disable_so_task_getscheduler_security_operations_24701 task_getscheduler security_operations 0 24701 NULL
138431 +disable_so_bitmap_search_next_usable_block_fndecl_24705 bitmap_search_next_usable_block fndecl 0-1-3 24705 NULL
138432 +disable_so_gfn_to_memslot_dirty_bitmap_fndecl_24710 gfn_to_memslot_dirty_bitmap fndecl 2 24710 NULL
138433 +disable_so_type_acpi_signal_fatal_info_24717 type acpi_signal_fatal_info 0 24717 NULL
138434 +disable_so_interrupt_mod_interval_vardecl_24721 interrupt_mod_interval vardecl 0 24721 NULL
138435 +disable_so_crypto_authenc_esn_givencrypt_fndecl_24722 crypto_authenc_esn_givencrypt fndecl 0 24722 NULL
138436 +disable_so_atl1e_hash_mc_addr_fndecl_24728 atl1e_hash_mc_addr fndecl 0 24728 NULL
138437 +disable_so_digest_size_ccp_sha_def_24730 digest_size ccp_sha_def 0 24730 NULL
138438 +disable_so_sysfs_show_current_clocksources_fndecl_24748 sysfs_show_current_clocksources fndecl 0 24748 NULL
138439 +disable_so_timeout_ip_set_ext_24754 timeout ip_set_ext 0 24754 NULL
138440 +disable_so_freqmode_pll_div_24757 freqmode pll_div 0 24757 NULL
138441 +disable_so_mvs_write_port_cfg_addr_fndecl_24758 mvs_write_port_cfg_addr fndecl 3 24758 NULL nohasharray
138442 +disable_so_vactive_lo_oaktrail_timing_info_24758 vactive_lo oaktrail_timing_info 0 24758 &disable_so_mvs_write_port_cfg_addr_fndecl_24758
138443 +disable_so_cs42xx8_runtime_resume_fndecl_24764 cs42xx8_runtime_resume fndecl 0 24764 NULL
138444 +disable_so_snd_pcm_hw_rule_div_fndecl_24768 snd_pcm_hw_rule_div fndecl 0 24768 NULL
138445 +disable_so_drbg_hash_process_addtl_fndecl_24773 drbg_hash_process_addtl fndecl 0 24773 NULL
138446 +disable_so__lookup_address_cpa_fndecl_24780 _lookup_address_cpa fndecl 2 24780 NULL
138447 +disable_so_time_stamp_iwl_traffic_load_24795 time_stamp iwl_traffic_load 0 24795 NULL
138448 +disable_so_remote_cm_response_timeout_ib_cm_req_event_param_24800 remote_cm_response_timeout ib_cm_req_event_param 0 24800 NULL
138449 +disable_so_busaddr_nes_rskb_cb_24803 busaddr nes_rskb_cb 0 24803 NULL nohasharray
138450 +disable_so_setkey_ablkcipher_tfm_24803 setkey ablkcipher_tfm 0-3 24803 &disable_so_busaddr_nes_rskb_cb_24803
138451 +disable_so_acpi_sleep_prepare_fndecl_24809 acpi_sleep_prepare fndecl 1 24809 NULL
138452 +disable_so_max98090_find_divisor_fndecl_24832 max98090_find_divisor fndecl 0-2 24832 NULL
138453 +disable_so_panel_digon_delay_radeon_encoder_lvds_24833 panel_digon_delay radeon_encoder_lvds 0 24833 NULL
138454 +disable_so_qp_dma_addr_t3_rdma_init_attr_24843 qp_dma_addr t3_rdma_init_attr 0 24843 NULL
138455 +disable_so_interval_tree_compute_subtree_last_fndecl_24849 interval_tree_compute_subtree_last fndecl 0 24849 NULL
138456 +disable_so_queue_info_new_phys_addr_lo_megasas_init_frame_24856 queue_info_new_phys_addr_lo megasas_init_frame 0 24856 NULL
138457 +disable_so_mipi_dsi_dcs_enter_sleep_mode_fndecl_24857 mipi_dsi_dcs_enter_sleep_mode fndecl 0 24857 NULL
138458 +disable_so_ring_iowrite64desc_fndecl_24858 ring_iowrite64desc fndecl 2 24858 NULL nohasharray
138459 +disable_so_regcache_rbtree_lookup_fndecl_24858 regcache_rbtree_lookup fndecl 2 24858 &disable_so_ring_iowrite64desc_fndecl_24858
138460 +disable_so_rx_timeout_sci_port_24883 rx_timeout sci_port 0 24883 NULL nohasharray
138461 +disable_so_add_atomic_switch_msr_fndecl_24883 add_atomic_switch_msr fndecl 3-4 24883 &disable_so_rx_timeout_sci_port_24883
138462 +disable_so_xfs_btree_del_cursor_fndecl_24886 xfs_btree_del_cursor fndecl 2 24886 NULL
138463 +disable_so_dsp_time_last_pcxhr_mgr_24894 dsp_time_last pcxhr_mgr 0 24894 NULL
138464 +disable_so_addr_carm_msg_allocbuf_24908 addr carm_msg_allocbuf 0 24908 NULL
138465 +disable_so_max_gids_mthca_dev_lim_24911 max_gids mthca_dev_lim 0 24911 NULL nohasharray
138466 +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
138467 +disable_so_last_jiffies_vardecl_isdn_net_c_24918 last_jiffies vardecl_isdn_net.c 0 24918 NULL
138468 +disable_so_pci_bus_cx88_core_24932 pci_bus cx88_core 0 24932 NULL
138469 +disable_so_devm_gpio_request_one_fndecl_24938 devm_gpio_request_one fndecl 0-2 24938 NULL
138470 +disable_so_launder_page_address_space_operations_24942 launder_page address_space_operations 0 24942 NULL
138471 +disable_so_enh_desc_get_timestamp_fndecl_24946 enh_desc_get_timestamp fndecl 0 24946 NULL
138472 +disable_so___pci_bus_find_cap_start_fndecl_24949 __pci_bus_find_cap_start fndecl 0-2 24949 NULL
138473 +disable_so_prepare_signal_fndecl_24954 prepare_signal fndecl 1 24954 NULL
138474 +disable_so_il_vfrontporch_v4l2_bt_timings_24960 il_vfrontporch v4l2_bt_timings 0 24960 NULL
138475 +disable_so_ide_pio_cycle_time_fndecl_24963 ide_pio_cycle_time fndecl 2-0 24963 NULL
138476 +disable_so_demod_address_tda10086_config_24966 demod_address tda10086_config 0 24966 NULL nohasharray
138477 +disable_so_ath5k_check_timer_win_fndecl_24966 ath5k_check_timer_win fndecl 1-2 24966 &disable_so_demod_address_tda10086_config_24966
138478 +disable_so_pentium_core_get_frequency_fndecl_24968 pentium_core_get_frequency fndecl 0 24968 NULL
138479 +disable_so_freqerr_chk_fndecl_24974 freqerr_chk fndecl 0-2-3 24974 NULL
138480 +disable_so_tgt_reset_timeout_iscsi_session_24977 tgt_reset_timeout iscsi_session 0 24977 NULL
138481 +disable_so_gpiod_set_raw_value_cansleep_fndecl_24979 gpiod_set_raw_value_cansleep fndecl 2 24979 NULL
138482 +disable_so_write_addr_fndecl_24985 write_addr fndecl 2 24985 NULL
138483 +disable_so_mcs7830_set_mac_address_fndecl_24986 mcs7830_set_mac_address fndecl 0 24986 NULL
138484 +disable_so_multiaddr_ip_mc_list_24989 multiaddr ip_mc_list 0 24989 NULL
138485 +disable_so_shash_ahash_digest_fndecl_24990 shash_ahash_digest fndecl 0 24990 NULL
138486 +disable_so_unlock_timer_adp5589_kpad_platform_data_24993 unlock_timer adp5589_kpad_platform_data 0 24993 NULL
138487 +disable_so_connect_timeout_vsock_sock_25001 connect_timeout vsock_sock 0 25001 NULL
138488 +disable_so_m_addr_rds_cong_map_25013 m_addr rds_cong_map 0 25013 NULL
138489 +disable_so_flash_addr_esas2r_ioctlfs_command_25014 flash_addr esas2r_ioctlfs_command 0 25014 NULL
138490 +disable_so_da9052_rtc_read_time_fndecl_25015 da9052_rtc_read_time fndecl 0 25015 NULL
138491 +disable_so_cpu_to_vhost32_fndecl_25031 cpu_to_vhost32 fndecl 0-2 25031 NULL
138492 +disable_so_vxlan_nla_put_addr_fndecl_25037 vxlan_nla_put_addr fndecl 0 25037 NULL
138493 +disable_so_hello_timer_value___bridge_info_25048 hello_timer_value __bridge_info 0 25048 NULL
138494 +disable_so_steer_res_gid_25050 steer res_gid 0 25050 NULL
138495 +disable_so_average_frequency_time_stats_25055 average_frequency time_stats 0 25055 NULL
138496 +disable_so_sense_busaddr_scb_data_25056 sense_busaddr scb_data 0 25056 NULL
138497 +disable_so_rx_stall_timeout_msecs_vardecl_25059 rx_stall_timeout_msecs vardecl 0 25059 NULL
138498 +disable_so_bypclk_div_dibx000_bandwidth_config_25065 bypclk_div dibx000_bandwidth_config 0 25065 NULL
138499 +disable_so_drm_dp_clock_recovery_ok_fndecl_25083 drm_dp_clock_recovery_ok fndecl 2 25083 NULL
138500 +disable_so_get_min_clock_sdhci_ops_25084 get_min_clock sdhci_ops 0 25084 NULL
138501 +disable_so_port_ka_time_fcoe_ctlr_25085 port_ka_time fcoe_ctlr 0 25085 NULL
138502 +disable_so_btrfs_set_token_timespec_nsec_fndecl_25090 btrfs_set_token_timespec_nsec fndecl 3 25090 NULL
138503 +disable_so_tx_bd_haddr_lo_bnx2_tx_bd_25100 tx_bd_haddr_lo bnx2_tx_bd 0 25100 NULL
138504 +disable_so_pwm_freq_div_dib7000p_config_25102 pwm_freq_div dib7000p_config 0 25102 NULL
138505 +disable_so_x86_pmu_config_addr_fndecl_25103 x86_pmu_config_addr fndecl 0-1 25103 NULL
138506 +disable_so_address_TAG_TW_SG_Entry_25109 address TAG_TW_SG_Entry 0 25109 NULL
138507 +disable_so_cfg_base_smsc_chip_address_25125 cfg_base smsc_chip_address 0 25125 NULL
138508 +disable_so_snd_iprintf_fndecl_25126 snd_iprintf fndecl 0 25126 NULL
138509 +disable_so_sony_nc_kbd_backlight_timeout_show_fndecl_25134 sony_nc_kbd_backlight_timeout_show fndecl 0 25134 NULL
138510 +disable_so___hw_addr_create_ex_fndecl_25138 __hw_addr_create_ex fndecl 3 25138 NULL
138511 +disable_so_sdev_show_timeout_fndecl_25140 sdev_show_timeout fndecl 0 25140 NULL
138512 +disable_so_valleyview_rps_guar_freq_fndecl_25141 valleyview_rps_guar_freq fndecl 0 25141 NULL
138513 +disable_so_msg_addr_lo_vf_pf_event_data_25142 msg_addr_lo vf_pf_event_data 0 25142 NULL nohasharray
138514 +disable_so_hfreq___fb_timings_25142 hfreq __fb_timings 0 25142 &disable_so_msg_addr_lo_vf_pf_event_data_25142
138515 +disable_so_select_addr_2_qla83xx_minidump_entry_rdmux2_25145 select_addr_2 qla83xx_minidump_entry_rdmux2 0 25145 NULL
138516 +disable_so_ctrl_addr_palmas_regs_info_25149 ctrl_addr palmas_regs_info 0 25149 NULL
138517 +disable_so_gid_affs_tail_25153 gid affs_tail 0 25153 NULL
138518 +disable_so_recv_timeout_iscsi_conn_25159 recv_timeout iscsi_conn 0 25159 NULL
138519 +disable_so_decode_attr_lease_time_fndecl_25160 decode_attr_lease_time fndecl 0 25160 NULL
138520 +disable_so_log10times100_fndecl_25175 log10times100 fndecl 0-1 25175 NULL
138521 +disable_so_crypto_register_shashes_fndecl_25178 crypto_register_shashes fndecl 0 25178 NULL
138522 +disable_so_sh_cmt_clock_event_next_fndecl_25183 sh_cmt_clock_event_next fndecl 1 25183 NULL
138523 +disable_so_update_mctime_fndecl_25185 update_mctime fndecl 0 25185 NULL
138524 +disable_so_snd_hdspm_info_clock_source_fndecl_25189 snd_hdspm_info_clock_source fndecl 0 25189 NULL
138525 +disable_so_ds1390_read_time_fndecl_25191 ds1390_read_time fndecl 0 25191 NULL
138526 +disable_so_crypto_gcm_setkey_fndecl_25197 crypto_gcm_setkey fndecl 0-3 25197 NULL
138527 +disable_so_atomic_read_file_fndecl_25200 atomic_read_file fndecl 3-0 25200 NULL
138528 +disable_so_i_ctime_minix2_inode_25213 i_ctime minix2_inode 0 25213 NULL
138529 +disable_so_account_fndecl_25224 account fndecl 0-4-2 25224 NULL
138530 +disable_so_bestclock_fndecl_25226 bestclock fndecl 1 25226 NULL
138531 +disable_so_regcache_rbtree_insert_to_block_fndecl_25230 regcache_rbtree_insert_to_block fndecl 3-4-5-6 25230 NULL
138532 +disable_so_pentiumM_get_frequency_fndecl_25231 pentiumM_get_frequency fndecl 0 25231 NULL
138533 +disable_so_model_mceusb_dev_25234 model mceusb_dev 0 25234 NULL
138534 +disable_so_sk_rcvtimeo_sock_25235 sk_rcvtimeo sock 0 25235 NULL
138535 +disable_so_atomic_long_add_fndecl_25245 atomic_long_add fndecl 1 25245 NULL
138536 +disable_so_tw_rcv_wnd_tcp_timewait_sock_25247 tw_rcv_wnd tcp_timewait_sock 0 25247 NULL
138537 +disable_so_vga_switcheroo_runtime_resume_fndecl_25258 vga_switcheroo_runtime_resume fndecl 0 25258 NULL nohasharray
138538 +disable_so_swp_freq_calcuation_fndecl_25258 swp_freq_calcuation fndecl 0-10-8-9 25258 &disable_so_vga_switcheroo_runtime_resume_fndecl_25258
138539 +disable_so_sys_setresuid_fndecl_25263 sys_setresuid fndecl 0-1-2-3 25263 NULL
138540 +disable_so_va_gid_coda_vattr_25267 va_gid coda_vattr 0 25267 NULL
138541 +disable_so_adis16136_set_freq_fndecl_25268 adis16136_set_freq fndecl 0 25268 NULL
138542 +disable_so_sha1_ssse3_update_fndecl_25270 sha1_ssse3_update fndecl 3 25270 NULL
138543 +disable_so_data_addr_rx_ring_info_25277 data_addr rx_ring_info 0 25277 NULL
138544 +disable_so_in_n_analog_pcm_runtime_25285 in_n_analog pcm_runtime 0 25285 NULL
138545 +disable_so_active_ide_timing_25290 active ide_timing 0 25290 NULL
138546 +disable_so_max_img_ir_timing_range_25312 max img_ir_timing_range 0 25312 NULL
138547 +disable_so_sisusb_setidxreg_fndecl_25313 sisusb_setidxreg fndecl 0-2-3-4 25313 NULL
138548 +disable_so_rss_hash_cq_enet_rq_desc_25315 rss_hash cq_enet_rq_desc 0 25315 NULL
138549 +disable_so_sdhci_pltfm_clk_get_max_clock_fndecl_25319 sdhci_pltfm_clk_get_max_clock fndecl 0 25319 NULL
138550 +disable_so_be_cmd_mac_addr_query_fndecl_25342 be_cmd_mac_addr_query fndecl 0 25342 NULL
138551 +disable_so_st_atime_nsec_compat_stat_25348 st_atime_nsec compat_stat 0 25348 NULL
138552 +disable_so_blkcipher_walk_virt_fndecl_25350 blkcipher_walk_virt fndecl 0 25350 NULL
138553 +disable_so_ata_sff_interrupt_fndecl_25352 ata_sff_interrupt fndecl 1 25352 NULL
138554 +disable_so_vdisktime_cfq_group_25353 vdisktime cfq_group 0 25353 NULL
138555 +disable_so_sctp_apply_peer_addr_params_fndecl_25357 sctp_apply_peer_addr_params fndecl 0 25357 NULL
138556 +disable_so_hpi_sample_clock_get_local_rate_lock_fndecl_25364 hpi_sample_clock_get_local_rate_lock fndecl 1-0 25364 NULL
138557 +disable_so_sticks_snd_timer_25366 sticks snd_timer 0 25366 NULL
138558 +disable_so_segv_uid_gr_arg_25373 segv_uid gr_arg 0 25373 NULL
138559 +disable_so_signal_rate_plcp_signal_rate_lookup_25377 signal_rate plcp_signal_rate_lookup 0 25377 NULL
138560 +disable_so_timeout_jiffies_tifm_sd_25387 timeout_jiffies tifm_sd 0 25387 NULL
138561 +disable_so_fence_gpu_addr_kernel_queue_25394 fence_gpu_addr kernel_queue 0 25394 NULL
138562 +disable_so_pch_udc_enable_interrupts_fndecl_25405 pch_udc_enable_interrupts fndecl 2 25405 NULL
138563 +disable_so_addr_hi_eth_rx_sge_25407 addr_hi eth_rx_sge 0 25407 NULL
138564 +disable_so_flushtimeout_nfulnl_instance_25409 flushtimeout nfulnl_instance 0 25409 NULL
138565 +disable_so_ti12xx_untie_interrupts_fndecl_25411 ti12xx_untie_interrupts fndecl 2 25411 NULL
138566 +disable_so_dma_addr_t4_cq_25412 dma_addr t4_cq 0 25412 NULL
138567 +disable_so_task_list_pbl_addr_lo_fcoe_kwqe_init1_25414 task_list_pbl_addr_lo fcoe_kwqe_init1 0 25414 NULL
138568 +disable_so_conntrack_addrcmp_fndecl_25418 conntrack_addrcmp fndecl 4 25418 NULL
138569 +disable_so_datablock_addr_fndecl_25424 datablock_addr fndecl 0-2 25424 NULL
138570 +disable_so_intel_sdvo_create_preferred_input_timing_fndecl_25428 intel_sdvo_create_preferred_input_timing fndecl 3-4 25428 NULL
138571 +disable_so_return_address_stack_frame_ia32_25439 return_address stack_frame_ia32 0 25439 NULL
138572 +disable_so_tmds_chip_slave_addr_tmds_chip_information_25446 tmds_chip_slave_addr tmds_chip_information 0 25446 NULL
138573 +disable_so_releasepage_address_space_operations_25450 releasepage address_space_operations 2 25450 NULL
138574 +disable_so_sys_setgid_fndecl_25470 sys_setgid fndecl 0-1 25470 NULL nohasharray
138575 +disable_so_random_address_open_fndecl_25470 random_address_open fndecl 0 25470 &disable_so_sys_setgid_fndecl_25470
138576 +disable_so_creation_time_se_device_25474 creation_time se_device 0 25474 NULL
138577 +disable_so_addr_qla8xxx_minidump_entry_crb_25475 addr qla8xxx_minidump_entry_crb 0 25475 NULL
138578 +disable_so_wrmsr_safe_on_cpu_fndecl_25481 wrmsr_safe_on_cpu fndecl 0-1 25481 NULL
138579 +disable_so_htc_addr_ath6kl_mbox_info_25495 htc_addr ath6kl_mbox_info 0 25495 NULL
138580 +disable_so_crypto_shash_export_fndecl_25501 crypto_shash_export fndecl 0 25501 NULL
138581 +disable_so_pm_runtime_autosuspend_expiration_fndecl_25503 pm_runtime_autosuspend_expiration fndecl 0 25503 NULL
138582 +disable_so_fib_info_update_nh_saddr_fndecl_25504 fib_info_update_nh_saddr fndecl 0 25504 NULL
138583 +disable_so_ac_uid_taskstats_25506 ac_uid taskstats 0 25506 NULL
138584 +disable_so_bufaddr_epic_rx_desc_25507 bufaddr epic_rx_desc 0 25507 NULL
138585 +disable_so_process_tgid_id_proc_event_25512 process_tgid id_proc_event 0 25512 NULL
138586 +disable_so_si5351_msynth_params_address_fndecl_25517 si5351_msynth_params_address fndecl 0-1 25517 NULL
138587 +disable_so_btrfs_dev_replace_time_stopped_fndecl_25538 btrfs_dev_replace_time_stopped fndecl 0 25538 NULL
138588 +disable_so___irq_set_handler_fndecl_25547 __irq_set_handler fndecl 1 25547 NULL
138589 +disable_so_next_addr_ath_gen_timer_configuration_25559 next_addr ath_gen_timer_configuration 0 25559 NULL
138590 +disable_so_timeout_request_25561 timeout request 0 25561 NULL
138591 +disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562 rx_bd_haddr_hi bnx2_rx_bd 0 25562 NULL nohasharray
138592 +disable_so_jhash_1word_fndecl_25562 jhash_1word fndecl 0-1 25562 &disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562
138593 +disable_so_freq_ref_fll_factors_25565 freq_ref fll_factors 0 25565 NULL
138594 +disable_so_compat_sys_mq_timedreceive_fndecl_25566 compat_sys_mq_timedreceive fndecl 1-3 25566 NULL
138595 +disable_so_scl_falling_time_dw_i2c_dev_25576 scl_falling_time dw_i2c_dev 0 25576 NULL
138596 +disable_so_maj_flt_signal_struct_25583 maj_flt signal_struct 0 25583 NULL
138597 +disable_so_irq_set_chip_and_handler_name_fndecl_25596 irq_set_chip_and_handler_name fndecl 1 25596 NULL
138598 +disable_so_timeout_ms_ib_mad_send_buf_25607 timeout_ms ib_mad_send_buf 0 25607 NULL
138599 +disable_so_qs_itimelimit_fs_quota_statv_25612 qs_itimelimit fs_quota_statv 0 25612 NULL nohasharray
138600 +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
138601 +disable_so_o2hb_heartbeat_timeout_ms_o2net_handshake_25614 o2hb_heartbeat_timeout_ms o2net_handshake 0 25614 NULL
138602 +disable_so_sampling_time_acpi_power_meter_capabilities_25620 sampling_time acpi_power_meter_capabilities 0 25620 NULL
138603 +disable_so_C_SYSC_signalfd_fndecl_25641 C_SYSC_signalfd fndecl 0 25641 NULL
138604 +disable_so_dpp_page_addr_lo_ocrdma_alloc_pd_uresp_25645 dpp_page_addr_lo ocrdma_alloc_pd_uresp 0 25645 NULL
138605 +disable_so_memclock_pm2fb_par_25648 memclock pm2fb_par 0 25648 NULL
138606 +disable_so_hca_core_clock_mlx4_init_hca_param_25649 hca_core_clock mlx4_init_hca_param 0 25649 NULL
138607 +disable_so_hash_fndecl_25655 hash fndecl 0-2 25655 NULL
138608 +disable_so_get_scr_cfg_addr_fndecl_25659 get_scr_cfg_addr fndecl 0-2 25659 NULL
138609 +disable_so_brp_can_bittiming_25672 brp can_bittiming 0 25672 NULL
138610 +disable_so_hash_tcindex_data_25674 hash tcindex_data 0 25674 NULL
138611 +disable_so_store_pwm_auto_spinup_time_fndecl_25686 store_pwm_auto_spinup_time fndecl 0-4 25686 NULL nohasharray
138612 +disable_so_wm5100_runtime_resume_fndecl_25686 wm5100_runtime_resume fndecl 0 25686 &disable_so_store_pwm_auto_spinup_time_fndecl_25686
138613 +disable_so_cbc_aes_decrypt_fndecl_25690 cbc_aes_decrypt fndecl 0-4 25690 NULL
138614 +disable_so_find_vma_fndecl_25710 find_vma fndecl 2 25710 NULL
138615 +disable_so_set_register_interruptible_fndecl_25711 set_register_interruptible fndecl 0 25711 NULL
138616 +disable_so_last_beacon_timestamp_atmel_private_25714 last_beacon_timestamp atmel_private 0 25714 NULL
138617 +disable_so_print_uuid_item_fndecl_25720 print_uuid_item fndecl 2-3 25720 NULL nohasharray
138618 +disable_so_intel_pxfreq_fndecl_25720 intel_pxfreq fndecl 0-1 25720 &disable_so_print_uuid_item_fndecl_25720
138619 +disable_so___mlx4_ib_query_gid_fndecl_25733 __mlx4_ib_query_gid fndecl 0-2-3 25733 NULL
138620 +disable_so_crypto_pcbc_setkey_fndecl_25734 crypto_pcbc_setkey fndecl 0-3 25734 NULL
138621 +disable_so_iClockSource_uac_clock_source_descriptor_25741 iClockSource uac_clock_source_descriptor 0 25741 NULL
138622 +disable_so_madc_aic32x4_rate_divs_25746 madc aic32x4_rate_divs 0 25746 NULL nohasharray
138623 +disable_so_test_and_set_bit_le_fndecl_25746 test_and_set_bit_le fndecl 1 25746 &disable_so_madc_aic32x4_rate_divs_25746
138624 +disable_so_init_acpi_pm_clocksource_fndecl_25751 init_acpi_pm_clocksource fndecl 0 25751 NULL
138625 +disable_so_bit_width_io_addr_25761 bit_width io_addr 0 25761 NULL nohasharray
138626 +disable_so_shash_async_finup_fndecl_25761 shash_async_finup fndecl 0 25761 &disable_so_bit_width_io_addr_25761
138627 +disable_so_i_mtime_extra_ext4_inode_25766 i_mtime_extra ext4_inode 0 25766 NULL
138628 +disable_so_suid_ban_expires_user_struct_25778 suid_ban_expires user_struct 0 25778 NULL
138629 +disable_so_sys_timer_delete_fndecl_25781 sys_timer_delete fndecl 1 25781 NULL
138630 +disable_so_write16_b43_bus_dev_25800 write16 b43_bus_dev 3 25800 NULL
138631 +disable_so_pci_bus_clock_list_fndecl_25811 pci_bus_clock_list fndecl 0-1 25811 NULL
138632 +disable_so_pll_freq_adau_25818 pll_freq adau 0 25818 NULL
138633 +disable_so_kvm_get_lapic_tscdeadline_msr_fndecl_25821 kvm_get_lapic_tscdeadline_msr fndecl 0 25821 NULL
138634 +disable_so_power_off_longtime_mmc_ext_csd_25827 power_off_longtime mmc_ext_csd 0 25827 NULL
138635 +disable_so_mcryptd_hash_digest_enqueue_fndecl_25830 mcryptd_hash_digest_enqueue fndecl 0 25830 NULL
138636 +disable_so_bch_btree_node_get_fndecl_25837 bch_btree_node_get fndecl 4 25837 NULL
138637 +disable_so_sa_timeout_mmc_ext_csd_25842 sa_timeout mmc_ext_csd 0 25842 NULL
138638 +disable_so_rc5t583_rtc_set_time_fndecl_25844 rc5t583_rtc_set_time fndecl 0 25844 NULL
138639 +disable_so_pll2_ndiv_b_cnt_ad9523_platform_data_25849 pll2_ndiv_b_cnt ad9523_platform_data 0 25849 NULL
138640 +disable_so_xfs_btree_kill_iroot_fndecl_25851 xfs_btree_kill_iroot fndecl 0 25851 NULL
138641 +disable_so_freq_offset_xc4000_priv_25852 freq_offset xc4000_priv 0 25852 NULL
138642 +disable_so_orig_eax_user_regs_struct32_25853 orig_eax user_regs_struct32 0 25853 NULL
138643 +disable_so_i_mtime_ext4_inode_25857 i_mtime ext4_inode 0 25857 NULL nohasharray
138644 +disable_so_hash_ipportnet4_expire_fndecl_25857 hash_ipportnet4_expire fndecl 4 25857 &disable_so_i_mtime_ext4_inode_25857
138645 +disable_so_max_keysize_blkcipher_alg_25859 max_keysize blkcipher_alg 0 25859 NULL
138646 +disable_so__kstrtol_fndecl_25860 _kstrtol fndecl 0 25860 NULL nohasharray
138647 +disable_so_reqsize_crypto_aead_25860 reqsize crypto_aead 0 25860 &disable_so__kstrtol_fndecl_25860
138648 +disable_so_group_exit_code_signal_struct_25863 group_exit_code signal_struct 0 25863 NULL
138649 +disable_so_i2c_address_qt1010_config_25866 i2c_address qt1010_config 0 25866 NULL
138650 +disable_so_musb_bulk_nak_timeout_fndecl_25876 musb_bulk_nak_timeout fndecl 3 25876 NULL
138651 +disable_so_rangehigh_v4l2_hw_freq_seek_25892 rangehigh v4l2_hw_freq_seek 0 25892 NULL
138652 +disable_so_xferaddr_mbox_out_25904 xferaddr mbox_out 0 25904 NULL
138653 +disable_so_address_mode_snd_emu10k1_25917 address_mode snd_emu10k1 0 25917 NULL
138654 +disable_so_ac_uid_acct_v3_25928 ac_uid acct_v3 0 25928 NULL
138655 +disable_so_show_cpumask_fndecl_25949 show_cpumask fndecl 0 25949 NULL
138656 +disable_so_x86_max_cores_cpuinfo_x86_25950 x86_max_cores cpuinfo_x86 0 25950 NULL
138657 +disable_so_nr_mtrr_spare_reg_vardecl_cleanup_c_25954 nr_mtrr_spare_reg vardecl_cleanup.c 0 25954 NULL
138658 +disable_so_fib_info_hash_move_fndecl_25959 fib_info_hash_move fndecl 3 25959 NULL
138659 +disable_so_rst_timer_val_intel_dsi_25967 rst_timer_val intel_dsi 0 25967 NULL
138660 +disable_so_backlog_wait_time_audit_status_25971 backlog_wait_time audit_status 0 25971 NULL
138661 +disable_so_gid_h_misc_25975 gid h_misc 0 25975 NULL
138662 +disable_so_wm8962_runtime_resume_fndecl_25981 wm8962_runtime_resume fndecl 0 25981 NULL
138663 +disable_so_ip_vs_rs_hashkey_fndecl_25992 ip_vs_rs_hashkey fndecl 1 25992 NULL
138664 +disable_so_sbp_tpg_attrib_store_max_reconnect_timeout_fndecl_25997 sbp_tpg_attrib_store_max_reconnect_timeout fndecl 0-3 25997 NULL
138665 +disable_so_hpwdt_time_left_fndecl_25998 hpwdt_time_left fndecl 0 25998 NULL
138666 +disable_so_mtrr_calc_range_state_fndecl_26002 mtrr_calc_range_state fndecl 3-4-2-1 26002 NULL
138667 +disable_so_tipc_addr_scope_fndecl_26006 tipc_addr_scope fndecl 0 26006 NULL
138668 +disable_so_rdmsr_safe_regs_fndecl_26012 rdmsr_safe_regs fndecl 0 26012 NULL
138669 +disable_so_kvm_inject_realmode_interrupt_fndecl_26018 kvm_inject_realmode_interrupt fndecl 2 26018 NULL
138670 +disable_so_addr_ethoc_bd_26021 addr ethoc_bd 0 26021 NULL
138671 +disable_so_marvell_ack_interrupt_fndecl_26036 marvell_ack_interrupt fndecl 0 26036 NULL
138672 +disable_so_link_check_timeout_igb_adapter_26037 link_check_timeout igb_adapter 0 26037 NULL nohasharray
138673 +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
138674 +disable_so_t2_ptr_hash_tbl_addr_lo_fcoe_kwqe_init2_26039 t2_ptr_hash_tbl_addr_lo fcoe_kwqe_init2 0 26039 NULL
138675 +disable_so_interrupt_out_interval_ld_usb_26046 interrupt_out_interval ld_usb 0 26046 NULL
138676 +disable_so_bs_gid_xfs_bstat_26053 bs_gid xfs_bstat 0 26053 NULL
138677 +disable_so_wm8900_set_dai_clkdiv_fndecl_26074 wm8900_set_dai_clkdiv fndecl 3 26074 NULL
138678 +disable_so_setkey_blkcipher_alg_26078 setkey blkcipher_alg 3 26078 NULL
138679 +disable_so_ixgbevf_init_interrupt_scheme_fndecl_26085 ixgbevf_init_interrupt_scheme fndecl 0 26085 NULL
138680 +disable_so___sw_hweight32_fndecl_26088 __sw_hweight32 fndecl 1-0 26088 NULL nohasharray
138681 +disable_so_addr_hi_eth_tx_bd_26088 addr_hi eth_tx_bd 0 26088 &disable_so___sw_hweight32_fndecl_26088 nohasharray
138682 +disable_so_hashval2_1_rx_pkt_hdr1_26088 hashval2_1 rx_pkt_hdr1 0 26088 &disable_so_addr_hi_eth_tx_bd_26088
138683 +disable_so_debounce_time_snd_soc_jack_gpio_26097 debounce_time snd_soc_jack_gpio 0 26097 NULL
138684 +disable_so_ath6kl_wmi_pstream_timeout_event_rx_fndecl_26100 ath6kl_wmi_pstream_timeout_event_rx fndecl 3 26100 NULL
138685 +disable_so_fl0addr_fw_iq_cmd_26103 fl0addr fw_iq_cmd 0 26103 NULL
138686 +disable_so___acpi_os_prepare_extended_sleep_vardecl_osl_c_26106 __acpi_os_prepare_extended_sleep vardecl_osl.c 2 26106 NULL
138687 +disable_so_atomic_check_drm_mode_config_funcs_26109 atomic_check drm_mode_config_funcs 0 26109 NULL
138688 +disable_so_st_mtime_stat_26114 st_mtime stat 0 26114 NULL
138689 +disable_so_cx23885_set_freq_fndecl_26129 cx23885_set_freq fndecl 0 26129 NULL
138690 +disable_so_img_ir_timings_convert_fndecl_26132 img_ir_timings_convert fndecl 3-4 26132 NULL
138691 +disable_so_generic_update_time_fndecl_26133 generic_update_time fndecl 0 26133 NULL
138692 +disable_so_cpu_to_virtio32_fndecl_26151 cpu_to_virtio32 fndecl 0-2 26151 NULL
138693 +disable_so_dp_dma_addr_mic_device_26153 dp_dma_addr mic_device 0 26153 NULL
138694 +disable_so_mask_clocksource_26154 mask clocksource 0 26154 NULL
138695 +disable_so_bit_rate_hpi_msg_format_26167 bit_rate hpi_msg_format 0 26167 NULL
138696 +disable_so_set_bitmap_file_fndecl_26171 set_bitmap_file fndecl 0-2 26171 NULL
138697 +disable_so_show_fast_charge_timer_fndecl_26172 show_fast_charge_timer fndecl 0 26172 NULL
138698 +disable_so_rt_spc_timelimit_qc_type_state_26186 rt_spc_timelimit qc_type_state 0 26186 NULL
138699 +disable_so_HYPERVISOR_physdev_op_fndecl_26192 HYPERVISOR_physdev_op fndecl 0 26192 NULL
138700 +disable_so_sci_br_interrupt_fndecl_26202 sci_br_interrupt fndecl 1 26202 NULL
138701 +disable_so_bitmap_ipmac_do_list_fndecl_26203 bitmap_ipmac_do_list fndecl 4 26203 NULL
138702 +disable_so_kxcjk1013_setup_any_motion_interrupt_fndecl_26214 kxcjk1013_setup_any_motion_interrupt fndecl 0 26214 NULL
138703 +disable_so_io_request_phys_addr_megasas_cmd_fusion_26240 io_request_phys_addr megasas_cmd_fusion 0 26240 NULL
138704 +disable_so_compute_unit_id_cpuinfo_x86_26241 compute_unit_id cpuinfo_x86 0 26241 NULL
138705 +disable_so_dynpm_action_timeout_radeon_pm_26257 dynpm_action_timeout radeon_pm 0 26257 NULL
138706 +disable_so_lookup_address_in_pgd_fndecl_26268 lookup_address_in_pgd fndecl 2 26268 NULL
138707 +disable_so_addr_prism2_download_data_area_26275 addr prism2_download_data_area 0 26275 NULL
138708 +disable_so_channels_snd_pcm_runtime_26297 channels snd_pcm_runtime 0 26297 NULL
138709 +disable_so_iamthif_timer_mei_device_26298 iamthif_timer mei_device 0 26298 NULL nohasharray
138710 +disable_so_simple_strtol_fndecl_26298 simple_strtol fndecl 0 26298 &disable_so_iamthif_timer_mei_device_26298
138711 +disable_so_rose_set_mac_address_fndecl_26302 rose_set_mac_address fndecl 0 26302 NULL
138712 +disable_so_sq_addr_lo_fcoe_kwqe_conn_offload1_26303 sq_addr_lo fcoe_kwqe_conn_offload1 0 26303 NULL
138713 +disable_so_m88ds3103_sleep_fndecl_26315 m88ds3103_sleep fndecl 0 26315 NULL
138714 +disable_so_ping_timeo_net_conf_26316 ping_timeo net_conf 0 26316 NULL nohasharray
138715 +disable_so_parent_btrfs_delayed_tree_ref_26316 parent btrfs_delayed_tree_ref 0 26316 &disable_so_ping_timeo_net_conf_26316
138716 +disable_so_esd_timeout_ms_tsc2005_platform_data_26333 esd_timeout_ms tsc2005_platform_data 0 26333 NULL
138717 +disable_so_addr_change_member_26339 addr change_member 0 26339 NULL
138718 +disable_so_mvs_show_interrupt_coalescing_fndecl_26346 mvs_show_interrupt_coalescing fndecl 0 26346 NULL
138719 +disable_so_hashkey_raw_ip_vs_pe_26355 hashkey_raw ip_vs_pe 0 26355 NULL
138720 +disable_so_skl_compute_linetime_wm_fndecl_26358 skl_compute_linetime_wm fndecl 0 26358 NULL
138721 +disable_so_radeon_pmops_runtime_resume_fndecl_26363 radeon_pmops_runtime_resume fndecl 0 26363 NULL
138722 +disable_so_op_remote_addr_rm_rdma_op_26364 op_remote_addr rm_rdma_op 0 26364 NULL
138723 +disable_so_yura_hash_fndecl_26368 yura_hash fndecl 2 26368 NULL
138724 +disable_so_blocksize_qce_ablkcipher_def_26370 blocksize qce_ablkcipher_def 0 26370 NULL
138725 +disable_so_phys_efi_set_virtual_address_map_fndecl_26380 phys_efi_set_virtual_address_map fndecl 1-2 26380 NULL
138726 +disable_so_sfi_lapic_addr_vardecl_sfi_c_26384 sfi_lapic_addr vardecl_sfi.c 0 26384 NULL
138727 +disable_so_ebp_user_regs_struct32_26386 ebp user_regs_struct32 0 26386 NULL
138728 +disable_so_total_time_enabled_perf_event_26387 total_time_enabled perf_event 0 26387 NULL nohasharray
138729 +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
138730 +disable_so_write32_b43_bus_dev_26402 write32 b43_bus_dev 3 26402 NULL
138731 +disable_so_seq_default_timer_device_vardecl_26404 seq_default_timer_device vardecl 0 26404 NULL
138732 +disable_so_address_xfs_dir2_leaf_entry_26411 address xfs_dir2_leaf_entry 0 26411 NULL
138733 +disable_so_regmap_irq_get_virq_fndecl_26413 regmap_irq_get_virq fndecl 2-0 26413 NULL
138734 +disable_so_msr_ia32_feature_control_nested_vmx_26415 msr_ia32_feature_control nested_vmx 0 26415 NULL
138735 +disable_so_last_load_cpufreq_cooling_device_26418 last_load cpufreq_cooling_device 0 26418 NULL
138736 +disable_so_blank_time_dce8_wm_params_26421 blank_time dce8_wm_params 0 26421 NULL
138737 +disable_so_start_time_rsxx_bio_meta_26424 start_time rsxx_bio_meta 0 26424 NULL
138738 +disable_so_ima_calc_file_hash_atfm_fndecl_26437 ima_calc_file_hash_atfm fndecl 0 26437 NULL
138739 +disable_so_range_to_mtrr_fndecl_26447 range_to_mtrr fndecl 2-3 26447 NULL
138740 +disable_so_sm_addr_ns_dev_26449 sm_addr ns_dev 0 26449 NULL
138741 +disable_so_uartlite_outle32_fndecl_26455 uartlite_outle32 fndecl 1 26455 NULL
138742 +disable_so___arch_hweight64_fndecl_26456 __arch_hweight64 fndecl 0-1 26456 NULL nohasharray
138743 +disable_so_rsa_parse_key_fndecl_26456 rsa_parse_key fndecl 3 26456 &disable_so___arch_hweight64_fndecl_26456
138744 +disable_so_data_addr_ide_io_ports_26461 data_addr ide_io_ports 0 26461 NULL
138745 +disable_so_mce_adjust_timer_vardecl_mce_c_26462 mce_adjust_timer vardecl_mce.c 0-1 26462 NULL
138746 +disable_so_tv_sec_ceph_timespec_26463 tv_sec ceph_timespec 0 26463 NULL
138747 +disable_so_val_v4l2_dbg_register_26470 val v4l2_dbg_register 0 26470 NULL
138748 +disable_so_jiffies_read_fndecl_26480 jiffies_read fndecl 0 26480 NULL
138749 +disable_so_compat_sys_clock_settime_fndecl_26491 compat_sys_clock_settime fndecl 1 26491 NULL
138750 +disable_so_i2c_addr_tda827x_priv_26495 i2c_addr tda827x_priv 0 26495 NULL
138751 +disable_so_snd_trident_interrupt_fndecl_26498 snd_trident_interrupt fndecl 1 26498 NULL
138752 +disable_so_mce_flush_rx_buffer_fndecl_26515 mce_flush_rx_buffer fndecl 2 26515 NULL
138753 +disable_so_ufshcd_runtime_suspend_fndecl_26519 ufshcd_runtime_suspend fndecl 0 26519 NULL
138754 +disable_so___down_timeout_fndecl_26530 __down_timeout fndecl 2-0 26530 NULL nohasharray
138755 +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
138756 +disable_so_ppll_ref_div_radeon_regs_26531 ppll_ref_div radeon_regs 0 26531 NULL
138757 +disable_so_fs_overflowuid_vardecl_26541 fs_overflowuid vardecl 0 26541 NULL
138758 +disable_so_ceph_str_hash_rjenkins_fndecl_26542 ceph_str_hash_rjenkins fndecl 0-2 26542 NULL
138759 +disable_so_threshold_low_nes_hw_tune_timer_26544 threshold_low nes_hw_tune_timer 0 26544 NULL
138760 +disable_so_addressPXD_fndecl_26546 addressPXD fndecl 0 26546 NULL
138761 +disable_so_get_cpu_idle_time_us_fndecl_26547 get_cpu_idle_time_us fndecl 0-1 26547 NULL
138762 +disable_so_x86_pmu_event_addr_fndecl_26551 x86_pmu_event_addr fndecl 0-1 26551 NULL
138763 +disable_so_da9055_rtc_set_time_fndecl_26553 da9055_rtc_set_time fndecl 0 26553 NULL nohasharray
138764 +disable_so_address_hi_ips_enh_sglist_26553 address_hi ips_enh_sglist 0 26553 &disable_so_da9055_rtc_set_time_fndecl_26553
138765 +disable_so_cpufreq_quick_get_fndecl_26559 cpufreq_quick_get fndecl 0-1 26559 NULL nohasharray
138766 +disable_so_ieee80211_aes_gcm_encrypt_fndecl_26559 ieee80211_aes_gcm_encrypt fndecl 5 26559 &disable_so_cpufreq_quick_get_fndecl_26559
138767 +disable_so_bug17190_timer_qt202x_phy_data_26561 bug17190_timer qt202x_phy_data 0 26561 NULL nohasharray
138768 +disable_so_efx_farch_filter_hash_fndecl_26561 efx_farch_filter_hash fndecl 0-1 26561 &disable_so_bug17190_timer_qt202x_phy_data_26561
138769 +disable_so_timestamp_beacon_format_26566 timestamp beacon_format 0 26566 NULL
138770 +disable_so_postscale__pll_div_26568 postscale _pll_div 0 26568 NULL
138771 +disable_so_next_nat_addr_fndecl_26576 next_nat_addr fndecl 0-2 26576 NULL
138772 +disable_so_shdwreg_addr_hi_addr_ctrl_blk_26592 shdwreg_addr_hi addr_ctrl_blk 0 26592 NULL
138773 +disable_so_xfs_btree_insrec_fndecl_26593 xfs_btree_insrec fndecl 0 26593 NULL
138774 +disable_so_sci_tx_interrupt_fndecl_26595 sci_tx_interrupt fndecl 1 26595 NULL nohasharray
138775 +disable_so_add_delayed_ref_head_fndecl_26595 add_delayed_ref_head fndecl 4-5 26595 &disable_so_sci_tx_interrupt_fndecl_26595
138776 +disable_so_tegra_wdt_set_timeout_fndecl_26597 tegra_wdt_set_timeout fndecl 2 26597 NULL
138777 +disable_so_base_addr_dmi_ipmi_data_26600 base_addr dmi_ipmi_data 0 26600 NULL nohasharray
138778 +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
138779 +disable_so_pll_post_div_radeon_crtc_26608 pll_post_div radeon_crtc 0 26608 NULL
138780 +disable_so_sdio_enable_4bit_bus_fndecl_26617 sdio_enable_4bit_bus fndecl 0 26617 NULL
138781 +disable_so_jiffies_to_usecs_fndecl_26625 jiffies_to_usecs fndecl 0-1 26625 NULL
138782 +disable_so_i_mtime_nsec_ocfs2_dinode_26627 i_mtime_nsec ocfs2_dinode 0 26627 NULL
138783 +disable_so_set_var_mtrr_fndecl_26628 set_var_mtrr fndecl 2-3 26628 NULL
138784 +disable_so_usec_2_cycles_fndecl_26641 usec_2_cycles fndecl 0-1 26641 NULL
138785 +disable_so_inq_data_baddr_pmcraid_instance_26646 inq_data_baddr pmcraid_instance 0 26646 NULL
138786 +disable_so_re_timeout_vhci_hcd_26649 re_timeout vhci_hcd 0 26649 NULL
138787 +disable_so_timer_buf_periods_pcxhr_stream_26650 timer_buf_periods pcxhr_stream 0 26650 NULL
138788 +disable_so_lease_break_time_vardecl_26659 lease_break_time vardecl 0 26659 NULL
138789 +disable_so_first_frag_time_libipw_frag_entry_26673 first_frag_time libipw_frag_entry 0 26673 NULL
138790 +disable_so_send_timer_event_fndecl_26675 send_timer_event fndecl 0 26675 NULL
138791 +disable_so_timestamp_lo_mlx4_ts_cqe_26678 timestamp_lo mlx4_ts_cqe 0 26678 NULL nohasharray
138792 +disable_so_twl_rtc_read_time_fndecl_26678 twl_rtc_read_time fndecl 0 26678 &disable_so_timestamp_lo_mlx4_ts_cqe_26678
138793 +disable_so_prism54_get_freq_fndecl_26679 prism54_get_freq fndecl 0 26679 NULL
138794 +disable_so_signal_quality_wireless_stats_26683 signal_quality wireless_stats 0 26683 NULL
138795 +disable_so_serial8250_request_rsa_resource_fndecl_26695 serial8250_request_rsa_resource fndecl 0 26695 NULL
138796 +disable_so_crypto_ahash_init_fndecl_26697 crypto_ahash_init fndecl 0 26697 NULL
138797 +disable_so_i8xx_clock_fndecl_26699 i8xx_clock fndecl 1 26699 NULL
138798 +disable_so_crypto_alg_extsize_fndecl_26720 crypto_alg_extsize fndecl 0 26720 NULL
138799 +disable_so_get_iowait_time_fndecl_26723 get_iowait_time fndecl 1-0 26723 NULL
138800 +disable_so_wl1271_acx_init_rx_interrupt_fndecl_26727 wl1271_acx_init_rx_interrupt fndecl 0 26727 NULL
138801 +disable_so_check_intr_schedule_fndecl_26728 check_intr_schedule fndecl 2-3 26728 NULL
138802 +disable_so_cobalt_s_dv_timings_fndecl_26730 cobalt_s_dv_timings fndecl 0 26730 NULL
138803 +disable_so_resolution_snd_timer_instance_26747 resolution snd_timer_instance 0 26747 NULL
138804 +disable_so_gf100_vm_addr_fndecl_26753 gf100_vm_addr fndecl 0-2-3-4 26753 NULL
138805 +disable_so_nilfs_btree_convert_and_insert_fndecl_26755 nilfs_btree_convert_and_insert fndecl 0-2-6 26755 NULL
138806 +disable_so_xlog_find_verify_cycle_fndecl_26760 xlog_find_verify_cycle fndecl 0-2-3 26760 NULL
138807 +disable_so_base_address_kvm_lapic_26767 base_address kvm_lapic 0 26767 NULL
138808 +disable_so_unmap_page_dma_map_ops_26774 unmap_page dma_map_ops 2-3 26774 NULL nohasharray
138809 +disable_so_modcode_stv0900_signal_info_26774 modcode stv0900_signal_info 0 26774 &disable_so_unmap_page_dma_map_ops_26774
138810 +disable_so_mthca_cmd_wait_fndecl_26776 mthca_cmd_wait fndecl 0-2 26776 NULL nohasharray
138811 +disable_so_tun2_maddress_stv0900_init_params_26776 tun2_maddress stv0900_init_params 0 26776 &disable_so_mthca_cmd_wait_fndecl_26776
138812 +disable_so_simple_sleep_fndecl_26802 simple_sleep fndecl 0 26802 NULL
138813 +disable_so_tv_sec_timestruc_t_26805 tv_sec timestruc_t 0 26805 NULL
138814 +disable_so_get_vblank_timestamp_drm_driver_26807 get_vblank_timestamp drm_driver 2 26807 NULL
138815 +disable_so_dsbr100_setfreq_fndecl_26808 dsbr100_setfreq fndecl 0-2 26808 NULL
138816 +disable_so_base_addr_unaligned_vnic_dev_ring_26813 base_addr_unaligned vnic_dev_ring 0 26813 NULL
138817 +disable_so_addr_ib_mw_bind_info_26826 addr ib_mw_bind_info 0 26826 NULL
138818 +disable_so_cpuidle_add_interface_fndecl_26838 cpuidle_add_interface fndecl 0 26838 NULL nohasharray
138819 +disable_so_addr4_resolve_fndecl_26838 addr4_resolve fndecl 0 26838 &disable_so_cpuidle_add_interface_fndecl_26838
138820 +disable_so_rdmsrl_safe_on_cpu_fndecl_26843 rdmsrl_safe_on_cpu fndecl 0-1 26843 NULL
138821 +disable_so_random_read_fndecl_26852 random_read fndecl 0-3 26852 NULL
138822 +disable_so_reachable_time_ra_msg_26853 reachable_time ra_msg 0 26853 NULL
138823 +disable_so_mutex_lock_interruptible_nested_fndecl_26858 mutex_lock_interruptible_nested fndecl 0 26858 NULL
138824 +disable_so_erase_time_max_flchip_26863 erase_time_max flchip 0 26863 NULL
138825 +disable_so_cpufreq_frequency_table_get_index_fndecl_26865 cpufreq_frequency_table_get_index fndecl 2 26865 NULL
138826 +disable_so_efficient_freq_intel_gen6_power_mgmt_26867 efficient_freq intel_gen6_power_mgmt 0 26867 NULL
138827 +disable_so_sysctl_sched_rt_runtime_vardecl_26872 sysctl_sched_rt_runtime vardecl 0 26872 NULL
138828 +disable_so_time_ncp_cache_head_26879 time ncp_cache_head 0 26879 NULL
138829 +disable_so_qdisc_class_hash_free_fndecl_26882 qdisc_class_hash_free fndecl 2 26882 NULL
138830 +disable_so_cpu_cpuidle_device_26895 cpu cpuidle_device 0 26895 NULL
138831 +disable_so_mod_phy_reg_fndecl_26899 mod_phy_reg fndecl 2-3-4 26899 NULL
138832 +disable_so_vb2_dma_contig_plane_dma_addr_fndecl_26900 vb2_dma_contig_plane_dma_addr fndecl 0 26900 NULL
138833 +disable_so_btree_split_beneath_fndecl_26901 btree_split_beneath fndecl 0 26901 NULL
138834 +disable_so_timestamp_desc_tbl_t_26905 timestamp desc_tbl_t 0 26905 NULL
138835 +disable_so_addr_bit_set_fndecl_26910 addr_bit_set fndecl 0-2 26910 NULL nohasharray
138836 +disable_so_snd_soc_write_fndecl_26910 snd_soc_write fndecl 0-2-3 26910 &disable_so_addr_bit_set_fndecl_26910 nohasharray
138837 +disable_so_timing_legacy_data_26910 timing legacy_data 0 26910 &disable_so_snd_soc_write_fndecl_26910
138838 +disable_so_nsleep_k_clock_26913 nsleep k_clock 1 26913 NULL
138839 +disable_so_sys_stime_fndecl_26915 sys_stime fndecl 0 26915 NULL
138840 +disable_so_sjw_max_can_bittiming_const_26917 sjw_max can_bittiming_const 0 26917 NULL nohasharray
138841 +disable_so_cbc_aes_encrypt_fndecl_26917 cbc_aes_encrypt fndecl 0-4 26917 &disable_so_sjw_max_can_bittiming_const_26917
138842 +disable_so_get_debugctlmsr_fndecl_26918 get_debugctlmsr fndecl 0 26918 NULL
138843 +disable_so_xfs_btree_delrec_fndecl_26919 xfs_btree_delrec fndecl 0 26919 NULL
138844 +disable_so_hr222_sub_set_clock_fndecl_26925 hr222_sub_set_clock fndecl 2-0 26925 NULL
138845 +disable_so_dd_desc_paddr_ath_descdma_26927 dd_desc_paddr ath_descdma 0 26927 NULL
138846 +disable_so_shift_clock_event_device_26934 shift clock_event_device 0 26934 NULL
138847 +disable_so_rx_bseq_addr_bnx2_rx_ring_info_26936 rx_bseq_addr bnx2_rx_ring_info 0 26936 NULL
138848 +disable_so_brcms_c_calc_ba_time_fndecl_26948 brcms_c_calc_ba_time fndecl 0-2 26948 NULL
138849 +disable_so_rcv_buffer_time_stamp_lpfc_vport_26952 rcv_buffer_time_stamp lpfc_vport 0 26952 NULL
138850 +disable_so_min_post_div_radeon_pll_26958 min_post_div radeon_pll 0 26958 NULL
138851 +disable_so_mcryptd_hash_finup_enqueue_fndecl_26959 mcryptd_hash_finup_enqueue fndecl 0 26959 NULL
138852 +disable_so_ip_TransportAddress_ipAddress_26969 ip TransportAddress_ipAddress 0 26969 NULL
138853 +disable_so_addr_fritzcard_26973 addr fritzcard 0 26973 NULL nohasharray
138854 +disable_so_ata_read_native_max_address_fndecl_26973 ata_read_native_max_address fndecl 0 26973 &disable_so_addr_fritzcard_26973
138855 +disable_so_ktime_get_real_seconds_fndecl_26974 ktime_get_real_seconds fndecl 0 26974 NULL nohasharray
138856 +disable_so_i_crtime_extra_ext4_inode_26974 i_crtime_extra ext4_inode 0 26974 &disable_so_ktime_get_real_seconds_fndecl_26974
138857 +disable_so_kern_addr_valid_fndecl_26978 kern_addr_valid fndecl 1 26978 NULL
138858 +disable_so_rtimer_val_vxge_hw_tim_intr_config_26991 rtimer_val vxge_hw_tim_intr_config 0 26991 NULL
138859 +disable_so_timestamp_agere_ext_scan_info_26993 timestamp agere_ext_scan_info 0 26993 NULL
138860 +disable_so_ps_ring_physaddr_rx_ring_26997 ps_ring_physaddr rx_ring 0 26997 NULL
138861 +disable_so_set_bit_in_list_bitmap_fndecl_26998 set_bit_in_list_bitmap fndecl 2 26998 NULL
138862 +disable_so_gid_index_mlx4_eth_av_27005 gid_index mlx4_eth_av 0 27005 NULL
138863 +disable_so_sender_euid_binder_transaction_data_27019 sender_euid binder_transaction_data 0 27019 NULL
138864 +disable_so_sctp_setsockopt_peer_primary_addr_fndecl_27027 sctp_setsockopt_peer_primary_addr fndecl 3-0 27027 NULL
138865 +disable_so_sysctl_x25_ack_holdback_timeout_vardecl_27031 sysctl_x25_ack_holdback_timeout vardecl 0 27031 NULL
138866 +disable_so_blkcipher_next_copy_fndecl_27033 blkcipher_next_copy fndecl 0 27033 NULL
138867 +disable_so_cg_spll_func_cntl_4_si_clock_registers_27036 cg_spll_func_cntl_4 si_clock_registers 0 27036 NULL
138868 +disable_so_mthca_buddy_alloc_fndecl_27037 mthca_buddy_alloc fndecl 2-0 27037 NULL
138869 +disable_so_seq_tcp_skb_cb_27054 seq tcp_skb_cb 0 27054 NULL
138870 +disable_so_s_bitmap_maxbytes_ext4_sb_info_27055 s_bitmap_maxbytes ext4_sb_info 0 27055 NULL
138871 +disable_so_addr_off_bfa_fru_s_27061 addr_off bfa_fru_s 0 27061 NULL
138872 +disable_so_dataserver_timeo_vardecl_filelayoutdev_c_27062 dataserver_timeo vardecl_filelayoutdev.c 0 27062 NULL
138873 +disable_so_demod_address_stv0900_config_27065 demod_address stv0900_config 0 27065 NULL
138874 +disable_so_kvm_apic_match_logical_addr_fndecl_27077 kvm_apic_match_logical_addr fndecl 2 27077 NULL
138875 +disable_so_expires_cpu_itimer_27081 expires cpu_itimer 0 27081 NULL nohasharray
138876 +disable_so_request_any_context_irq_fndecl_27081 request_any_context_irq fndecl 0-1 27081 &disable_so_expires_cpu_itimer_27081
138877 +disable_so_timeout_vardecl_kempld_wdt_c_27085 timeout vardecl_kempld_wdt.c 0 27085 NULL
138878 +disable_so_buffer_addr_rx_free_desc_27090 buffer_addr rx_free_desc 0 27090 NULL
138879 +disable_so_vx_set_clock_fndecl_27093 vx_set_clock fndecl 2 27093 NULL
138880 +disable_so_br_set_forward_delay_fndecl_27097 br_set_forward_delay fndecl 0 27097 NULL
138881 +disable_so_hash_net4_expire_fndecl_27108 hash_net4_expire fndecl 4 27108 NULL
138882 +disable_so_stv0900_get_freq_auto_fndecl_27111 stv0900_get_freq_auto fndecl 0 27111 NULL
138883 +disable_so_wait_for_common_fndecl_27112 wait_for_common fndecl 3 27112 NULL
138884 +disable_so_nfs4_schedule_migration_recovery_fndecl_27114 nfs4_schedule_migration_recovery fndecl 0 27114 NULL
138885 +disable_so_d_rt_spc_timer_qc_dqblk_27117 d_rt_spc_timer qc_dqblk 0 27117 NULL
138886 +disable_so_btree_insert64_fndecl_27118 btree_insert64 fndecl 2-4 27118 NULL
138887 +disable_so_addrconf_mod_dad_work_fndecl_27128 addrconf_mod_dad_work fndecl 2 27128 NULL
138888 +disable_so_coalescing_timeo_bna_rx_config_27130 coalescing_timeo bna_rx_config 0 27130 NULL nohasharray
138889 +disable_so_addr_page_to_node_27130 addr page_to_node 0 27130 &disable_so_coalescing_timeo_bna_rx_config_27130
138890 +disable_so_st_atime_nsec_p9_stat_dotl_27131 st_atime_nsec p9_stat_dotl 0 27131 NULL
138891 +disable_so_myri10ge_intr_coal_delay_vardecl_myri10ge_c_27141 myri10ge_intr_coal_delay vardecl_myri10ge.c 0 27141 NULL
138892 +disable_so_hash_shift_deflate_state_27146 hash_shift deflate_state 0 27146 NULL
138893 +disable_so_palmas_rtc_read_time_fndecl_27149 palmas_rtc_read_time fndecl 0 27149 NULL
138894 +disable_so___atomic_add_ifless_fndecl_27155 __atomic_add_ifless fndecl 3 27155 NULL
138895 +disable_so_iscsi_conn_get_addr_param_fndecl_27170 iscsi_conn_get_addr_param fndecl 0 27170 NULL
138896 +disable_so___clocksource_update_freq_hz_fndecl_27171 __clocksource_update_freq_hz fndecl 2 27171 NULL
138897 +disable_so_id_sst_module_runtime_27177 id sst_module_runtime 0 27177 NULL
138898 +disable_so_crypto_xcbc_digest_setkey_fndecl_27185 crypto_xcbc_digest_setkey fndecl 0-3 27185 NULL
138899 +disable_so_enic_set_mac_addr_fndecl_27188 enic_set_mac_addr fndecl 0 27188 NULL
138900 +disable_so_expires_timer_list_27202 expires timer_list 0 27202 NULL
138901 +disable_so_compute_subtree_last_fndecl_27204 compute_subtree_last fndecl 0 27204 NULL
138902 +disable_so_qla4_82xx_decode_crb_addr_fndecl_27209 qla4_82xx_decode_crb_addr fndecl 0-1 27209 NULL
138903 +disable_so_debugtimer_vardecl_floppy_c_27217 debugtimer vardecl_floppy.c 0 27217 NULL
138904 +disable_so_time_offset_perf_event_mmap_page_27223 time_offset perf_event_mmap_page 0 27223 NULL
138905 +disable_so___ufshcd_setup_clocks_fndecl_27227 __ufshcd_setup_clocks fndecl 0 27227 NULL
138906 +disable_so_ccallback_snd_timer_instance_27233 ccallback snd_timer_instance 4 27233 NULL
138907 +disable_so_cpufreq_p4_get_fndecl_27237 cpufreq_p4_get fndecl 1 27237 NULL
138908 +disable_so_bd_phy_addr_wcn36xx_dxe_ctl_27253 bd_phy_addr wcn36xx_dxe_ctl 0 27253 NULL
138909 +disable_so___xfrm_dst_hash_fndecl_27263 __xfrm_dst_hash fndecl 0-3-4-5 27263 NULL
138910 +disable_so_mcp795_read_time_fndecl_27267 mcp795_read_time fndecl 0 27267 NULL
138911 +disable_so_base_mtrr_sentry_27271 base mtrr_sentry 0 27271 NULL
138912 +disable_so_proc_do_large_bitmap_fndecl_27272 proc_do_large_bitmap fndecl 0 27272 NULL
138913 +disable_so_stv0367cab_get_adc_freq_fndecl_27274 stv0367cab_get_adc_freq fndecl 0-2 27274 NULL
138914 +disable_so_gpadc_page_addr_pm80x_subchip_27284 gpadc_page_addr pm80x_subchip 0 27284 NULL
138915 +disable_so_udf_count_free_bitmap_fndecl_27294 udf_count_free_bitmap fndecl 0 27294 NULL
138916 +disable_so_timestamp_ieee80211_channel_switch_27297 timestamp ieee80211_channel_switch 0 27297 NULL
138917 +disable_so_fd_flush_timestamp_i40e_pf_27298 fd_flush_timestamp i40e_pf 0 27298 NULL nohasharray
138918 +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
138919 +disable_so_past_time_fndecl_27299 past_time fndecl 1 27299 NULL
138920 +disable_so_status_hci_rp_read_bd_addr_27307 status hci_rp_read_bd_addr 0 27307 NULL
138921 +disable_so_demod_address_lgs8gxx_config_27311 demod_address lgs8gxx_config 0 27311 NULL
138922 +disable_so_clock_offset_mlx4_fw_27318 clock_offset mlx4_fw 0 27318 NULL
138923 +disable_so_native_sched_clock_fndecl_27322 native_sched_clock fndecl 0 27322 NULL
138924 +disable_so_preferred_time_prefix_cacheinfo_27329 preferred_time prefix_cacheinfo 0 27329 NULL nohasharray
138925 +disable_so_srq_get_mtt_addr_fndecl_27329 srq_get_mtt_addr fndecl 0 27329 &disable_so_preferred_time_prefix_cacheinfo_27329
138926 +disable_so_di_pt_regs_27336 di pt_regs 0 27336 NULL
138927 +disable_so_buf1_addr_xgmac_dma_desc_27344 buf1_addr xgmac_dma_desc 0 27344 NULL
138928 +disable_so_timer_mask_ath_gen_timer_table_27351 timer_mask ath_gen_timer_table 0 27351 NULL
138929 +disable_so_max_frags_iwl_time_event_cmd_27357 max_frags iwl_time_event_cmd 0 27357 NULL nohasharray
138930 +disable_so_wd_last_clocksource_27357 wd_last clocksource 0 27357 &disable_so_max_frags_iwl_time_event_cmd_27357
138931 +disable_so_sermouse_interrupt_fndecl_27361 sermouse_interrupt fndecl 2 27361 NULL
138932 +disable_so_tm_mday_rtc_time_27369 tm_mday rtc_time 0 27369 NULL
138933 +disable_so_opad_count_ccp_sha_ctx_27374 opad_count ccp_sha_ctx 0 27374 NULL
138934 +disable_so_keyed_hash_fndecl_27379 keyed_hash fndecl 0-2 27379 NULL
138935 +disable_so_addr_d11init_27383 addr d11init 0 27383 NULL
138936 +disable_so_test_bit_le_fndecl_27392 test_bit_le fndecl 1 27392 NULL
138937 +disable_so_i2c_bit_add_bus_fndecl_27395 i2c_bit_add_bus fndecl 0 27395 NULL
138938 +disable_so_xhci_calculate_u2_timeout_fndecl_27406 xhci_calculate_u2_timeout fndecl 0 27406 NULL
138939 +disable_so_sym_getclock_fndecl_27414 sym_getclock fndecl 2 27414 NULL
138940 +disable_so_pat_x_mtrr_type_fndecl_27415 pat_x_mtrr_type fndecl 1-2 27415 NULL
138941 +disable_so_val_addr_core1_nphy_rf_control_override_rev7_27422 val_addr_core1 nphy_rf_control_override_rev7 0 27422 NULL nohasharray
138942 +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
138943 +disable_so_ratio_o_rj54n1_clock_div_27431 ratio_o rj54n1_clock_div 0 27431 NULL nohasharray
138944 +disable_so_pr_uid_elf_prpsinfo_27431 pr_uid elf_prpsinfo 0 27431 &disable_so_ratio_o_rj54n1_clock_div_27431
138945 +disable_so_nla_get_be64_fndecl_27433 nla_get_be64 fndecl 0 27433 NULL
138946 +disable_so_encryptor_fndecl_27450 encryptor fndecl 0 27450 NULL
138947 +disable_so_hsync_offset_lo_oaktrail_timing_info_27455 hsync_offset_lo oaktrail_timing_info 0 27455 NULL
138948 +disable_so_store_scaling_max_freq_fndecl_27459 store_scaling_max_freq fndecl 0-3 27459 NULL
138949 +disable_so_addrLow_lpfc_pde7_27462 addrLow lpfc_pde7 0 27462 NULL
138950 +disable_so_ql_get_mac_addr_reg_fndecl_27466 ql_get_mac_addr_reg fndecl 0 27466 NULL
138951 +disable_so_r600_engine_clock_entry_set_feedback_divider_fndecl_27467 r600_engine_clock_entry_set_feedback_divider fndecl 3 27467 NULL
138952 +disable_so_queue_timestamp_cw1200_queue_item_27470 queue_timestamp cw1200_queue_item 0 27470 NULL nohasharray
138953 +disable_so_timing_event_fndecl_27470 timing_event fndecl 0 27470 &disable_so_queue_timestamp_cw1200_queue_item_27470
138954 +disable_so_seg0_blkaddr_f2fs_sm_info_27483 seg0_blkaddr f2fs_sm_info 0 27483 NULL nohasharray
138955 +disable_so_shash_async_init_fndecl_27483 shash_async_init fndecl 0 27483 &disable_so_seg0_blkaddr_f2fs_sm_info_27483
138956 +disable_so_esas2r_buffered_ioctl_addr_vardecl_27487 esas2r_buffered_ioctl_addr vardecl 0 27487 NULL
138957 +disable_so_buffer_write_time_max_flchip_27491 buffer_write_time_max flchip 0 27491 NULL
138958 +disable_so_reg_data_clock_eeprom_93cx6_27496 reg_data_clock eeprom_93cx6 0 27496 NULL
138959 +disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497 ieee80211_if_read_min_discovery_timeout fndecl 3-0 27497 NULL nohasharray
138960 +disable_so_address_pmcraid_ioadl_desc_27497 address pmcraid_ioadl_desc 0 27497 &disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497
138961 +disable_so_host_perf_guest_switch_msr_27498 host perf_guest_switch_msr 0 27498 NULL
138962 +disable_so_dummy_buffer_addr_hi_iscsi_kwqe_init1_27499 dummy_buffer_addr_hi iscsi_kwqe_init1 0 27499 NULL
138963 +disable_so__rtl88e_phy_calculate_bit_shift_fndecl_27500 _rtl88e_phy_calculate_bit_shift fndecl 0-1 27500 NULL
138964 +disable_so_mceusb_dev_printdata_fndecl_27502 mceusb_dev_printdata fndecl 4 27502 NULL
138965 +disable_so_sk_sndtimeo_sock_27506 sk_sndtimeo sock 0 27506 NULL
138966 +disable_so_oprofile_timer_init_fndecl_27514 oprofile_timer_init fndecl 0 27514 NULL
138967 +disable_so_st_atime___old_kernel_stat_27516 st_atime __old_kernel_stat 0 27516 NULL
138968 +disable_so_hpi_sample_clock_set_local_rate_lock_fndecl_27517 hpi_sample_clock_set_local_rate_lock fndecl 1-0 27517 NULL
138969 +disable_so_addr_perf_sample_data_27520 addr perf_sample_data 0 27520 NULL
138970 +disable_so_curr_dbg_uidn_show_fndecl_27524 curr_dbg_uidn_show fndecl 3 27524 NULL
138971 +disable_so_crypto_register_template_fndecl_27525 crypto_register_template fndecl 0 27525 NULL
138972 +disable_so_process_tgid_sid_proc_event_27544 process_tgid sid_proc_event 0 27544 NULL
138973 +disable_so_fandiv2_nct6775_data_27558 fandiv2 nct6775_data 0 27558 NULL
138974 +disable_so_delay_time_bridge_mcast_other_query_27560 delay_time bridge_mcast_other_query 0 27560 NULL
138975 +disable_so_addr_hi_acard_sg_27563 addr_hi acard_sg 0 27563 NULL
138976 +disable_so_address_tlan_buffer_27580 address tlan_buffer 0 27580 NULL
138977 +disable_so_rdma_addr_find_smac_by_sgid_fndecl_27591 rdma_addr_find_smac_by_sgid fndecl 0 27591 NULL
138978 +disable_so_addrconf_add_linklocal_fndecl_27592 addrconf_add_linklocal fndecl 3 27592 NULL
138979 +disable_so_fb_delay_gt215_clk_info_27603 fb_delay gt215_clk_info 0 27603 NULL
138980 +disable_so_ss_nongc_ctime_nilfs_sustat_27619 ss_nongc_ctime nilfs_sustat 0 27619 NULL
138981 +disable_so_shash_ahash_mcryptd_final_fndecl_27624 shash_ahash_mcryptd_final fndecl 0 27624 NULL
138982 +disable_so_iwl_set_hw_address_family_8000_fndecl_27628 iwl_set_hw_address_family_8000 fndecl 6-7 27628 NULL
138983 +disable_so_dm_delay_init_fndecl_27635 dm_delay_init fndecl 0 27635 NULL
138984 +disable_so_seq_tcphdr_27638 seq tcphdr 0 27638 NULL
138985 +disable_so_cbq_undelay_prio_fndecl_27641 cbq_undelay_prio fndecl 0-3 27641 NULL
138986 +disable_so_sst_module_runtime_save_fndecl_27642 sst_module_runtime_save fndecl 0 27642 NULL
138987 +disable_so_crypto_pcbc_module_init_fndecl_27648 crypto_pcbc_module_init fndecl 0 27648 NULL
138988 +disable_so_freq_prev_cpu_data_t_27649 freq_prev cpu_data_t 0 27649 NULL
138989 +disable_so_status_mce_27652 status mce 0 27652 NULL
138990 +disable_so_buff_addr_ixgb_rx_desc_27660 buff_addr ixgb_rx_desc 0 27660 NULL
138991 +disable_so_phy_addr_mii_phy_27664 phy_addr mii_phy 0 27664 NULL
138992 +disable_so_demod_address_lgdt330x_config_27668 demod_address lgdt330x_config 0 27668 NULL
138993 +disable_so__next_div_fndecl_27679 _next_div fndecl 0-2 27679 NULL
138994 +disable_so_rtc_timer_enqueue_fndecl_27693 rtc_timer_enqueue fndecl 0 27693 NULL nohasharray
138995 +disable_so_addr_phy_device_27693 addr phy_device 0 27693 &disable_so_rtc_timer_enqueue_fndecl_27693
138996 +disable_so_timer_multiplier_tg3_27703 timer_multiplier tg3 0 27703 NULL
138997 +disable_so_address_acpi_table_madt_27705 address acpi_table_madt 0 27705 NULL
138998 +disable_so_saddr_flowi4_27709 saddr flowi4 0 27709 NULL
138999 +disable_so_acpi_tb_select_address_fndecl_27710 acpi_tb_select_address fndecl 0-2-3 27710 NULL
139000 +disable_so_wl18xx_acx_ap_sleep_fndecl_27719 wl18xx_acx_ap_sleep fndecl 0 27719 NULL
139001 +disable_so_sleep_start_sched_statistics_27721 sleep_start sched_statistics 0 27721 NULL nohasharray
139002 +disable_so_inj_addr_set_fndecl_27721 inj_addr_set fndecl 2 27721 &disable_so_sleep_start_sched_statistics_27721
139003 +disable_so_addr_fw_page_27728 addr fw_page 0 27728 NULL
139004 +disable_so_time_stamp_e1000_tx_buffer_27729 time_stamp e1000_tx_buffer 0 27729 NULL
139005 +disable_so_ata_internal_cmd_timed_out_fndecl_27734 ata_internal_cmd_timed_out fndecl 2 27734 NULL
139006 +disable_so_sleep_ide_drive_s_27745 sleep ide_drive_s 0 27745 NULL
139007 +disable_so_platform_clock_control_fndecl_27752 platform_clock_control fndecl 0 27752 NULL
139008 +disable_so_tick_timex_27769 tick timex 0 27769 NULL
139009 +disable_so__is_best_div_fndecl_27772 _is_best_div fndecl 1-2-3 27772 NULL
139010 +disable_so_update_cpumask_fndecl_27776 update_cpumask fndecl 0 27776 NULL
139011 +disable_so_mxser_get_msr_fndecl_27778 mxser_get_msr fndecl 3 27778 NULL
139012 +disable_so_btree_insert32_fndecl_27786 btree_insert32 fndecl 2-4 27786 NULL
139013 +disable_so_ccp_do_sha_update_fndecl_27787 ccp_do_sha_update fndecl 0-2 27787 NULL
139014 +disable_so_complete_crypto_gcm_ghash_ctx_27789 complete crypto_gcm_ghash_ctx 0 27789 NULL
139015 +disable_so_cryptoloop_transfer_fndecl_27794 cryptoloop_transfer fndecl 0-4-6-7 27794 NULL
139016 +disable_so_max_reconnect_timeout_sbp_tport_27795 max_reconnect_timeout sbp_tport 0 27795 NULL
139017 +disable_so_drxj_dap_write_reg16_fndecl_27796 drxj_dap_write_reg16 fndecl 0-3 27796 NULL
139018 +disable_so_i_crtime_ext4_inode_27803 i_crtime ext4_inode 0 27803 NULL
139019 +disable_so_bridge_ctl_pci_bus_27806 bridge_ctl pci_bus 0 27806 NULL
139020 +disable_so_sas_unregister_devs_sas_addr_fndecl_27808 sas_unregister_devs_sas_addr fndecl 2 27808 NULL
139021 +disable_so_move_to_next_stateful_cpuid_entry_fndecl_27817 move_to_next_stateful_cpuid_entry fndecl 0-2 27817 NULL
139022 +disable_so_delay_pktgen_dev_27827 delay pktgen_dev 0 27827 NULL
139023 +disable_so_ipath_physaddr_ipath_devdata_27830 ipath_physaddr ipath_devdata 0 27830 NULL
139024 +disable_so_rh_timer_musb_27835 rh_timer musb 0 27835 NULL
139025 +disable_so_spinfo_cwnd_sctp_paddrinfo_27841 spinfo_cwnd sctp_paddrinfo 0 27841 NULL
139026 +disable_so_prism54_set_freq_fndecl_27858 prism54_set_freq fndecl 0 27858 NULL
139027 +disable_so_host_addr_mei_msg_hdr_27859 host_addr mei_msg_hdr 0 27859 NULL
139028 +disable_so_xr17v35x_get_divisor_fndecl_27860 xr17v35x_get_divisor fndecl 0-2 27860 NULL
139029 +disable_so_run_delayed_data_ref_fndecl_27870 run_delayed_data_ref fndecl 0 27870 NULL
139030 +disable_so_args_addr_pmu_nvbios_pmuR_27871 args_addr_pmu nvbios_pmuR 0 27871 NULL
139031 +disable_so_nr_of_multicastmacaddr_lbtf_private_27872 nr_of_multicastmacaddr lbtf_private 0 27872 NULL
139032 +disable_so_cfg80211_mgd_wext_siwfreq_fndecl_27873 cfg80211_mgd_wext_siwfreq fndecl 0 27873 NULL
139033 +disable_so_get_ftdi_divisor_fndecl_27883 get_ftdi_divisor fndecl 0 27883 NULL nohasharray
139034 +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
139035 +disable_so_acpi_gbl_sleep_type_a_vardecl_27893 acpi_gbl_sleep_type_a vardecl 0 27893 NULL
139036 +disable_so_addr_ahc_dma_seg_27896 addr ahc_dma_seg 0 27896 NULL
139037 +disable_so_est_timer_fndecl_27898 est_timer fndecl 1 27898 NULL
139038 +disable_so_phonet_address_add_fndecl_27900 phonet_address_add fndecl 0-2 27900 NULL
139039 +disable_so_uhci_sprint_schedule_fndecl_27905 uhci_sprint_schedule fndecl 0 27905 NULL
139040 +disable_so_cpufreq_generic_init_fndecl_27911 cpufreq_generic_init fndecl 3 27911 NULL
139041 +disable_so_brcms_c_calc_frame_time_fndecl_27915 brcms_c_calc_frame_time fndecl 0-4-2 27915 NULL
139042 +disable_so_max_pixel_clock_matrox_fb_info_27917 max_pixel_clock matrox_fb_info 0 27917 NULL
139043 +disable_so_cfg80211_get_end_freq_fndecl_27923 cfg80211_get_end_freq fndecl 0-1-2 27923 NULL
139044 +disable_so_tv_usec_timeval_27924 tv_usec timeval 0 27924 NULL nohasharray
139045 +disable_so_bootloader_addr_mxt_data_27924 bootloader_addr mxt_data 0 27924 &disable_so_tv_usec_timeval_27924
139046 +disable_so_scope_ipv6_saddr_dst_27930 scope ipv6_saddr_dst 0 27930 NULL
139047 +disable_so_skcipher_recvmsg_sync_fndecl_27933 skcipher_recvmsg_sync fndecl 0 27933 NULL
139048 +disable_so_nf_ct_free_hashtable_fndecl_27936 nf_ct_free_hashtable fndecl 2 27936 NULL
139049 +disable_so_addr_netlbl_af4list_27939 addr netlbl_af4list 0 27939 NULL
139050 +disable_so_idgen_delay_netns_sysctl_ipv6_27941 idgen_delay netns_sysctl_ipv6 0 27941 NULL
139051 +disable_so_time_low_afs_uuid_27956 time_low afs_uuid 0 27956 NULL
139052 +disable_so_set_tv_freq_fndecl_27970 set_tv_freq fndecl 2 27970 NULL
139053 +disable_so_average_duration_time_stats_27971 average_duration time_stats 0 27971 NULL
139054 +disable_so_multicast_num_addrs__mace_private_27974 multicast_num_addrs _mace_private 0 27974 NULL
139055 +disable_so_ghash_pclmulqdqni_mod_init_fndecl_27975 ghash_pclmulqdqni_mod_init fndecl 0 27975 NULL
139056 +disable_so_gs_gru_base_paddr_gru_state_27988 gs_gru_base_paddr gru_state 0 27988 NULL nohasharray
139057 +disable_so_paging32_walk_addr_fndecl_27988 paging32_walk_addr fndecl 3-4 27988 &disable_so_gs_gru_base_paddr_gru_state_27988
139058 +disable_so_musb_read_rxfunaddr_fndecl_27990 musb_read_rxfunaddr fndecl 2-0 27990 NULL
139059 +disable_so_kstrtoint_fndecl_27993 kstrtoint fndecl 0 27993 NULL
139060 +disable_so_rv770_encode_yclk_post_div_fndecl_27996 rv770_encode_yclk_post_div fndecl 0-1 27996 NULL
139061 +disable_so_di_uid_qnx6_inode_entry_28014 di_uid qnx6_inode_entry 0 28014 NULL
139062 +disable_so_sctp_verify_addr_fndecl_28018 sctp_verify_addr fndecl 0-3 28018 NULL
139063 +disable_so_timeout_ieee80211_mgd_assoc_data_28022 timeout ieee80211_mgd_assoc_data 0 28022 NULL
139064 +disable_so_nadc_aic31xx_rate_divs_28025 nadc aic31xx_rate_divs 0 28025 NULL
139065 +disable_so_address_end_unity_map_entry_28028 address_end unity_map_entry 0 28028 NULL
139066 +disable_so_ring_pt_address_sst_hsw_ipc_stream_ring_28034 ring_pt_address sst_hsw_ipc_stream_ring 0 28034 NULL
139067 +disable_so_rx_hashtbl_used_head_alb_bond_info_28035 rx_hashtbl_used_head alb_bond_info 0 28035 NULL
139068 +disable_so_reset_time_vardecl_cs_c_28036 reset_time vardecl_cs.c 0 28036 NULL
139069 +disable_so_slicer_line_delay_cx18_av_state_28042 slicer_line_delay cx18_av_state 0 28042 NULL
139070 +disable_so_addr1_unlock_addr_28045 addr1 unlock_addr 0 28045 NULL
139071 +disable_so_timestamp_ath6kl_fwlog_slot_28050 timestamp ath6kl_fwlog_slot 0 28050 NULL
139072 +disable_so_max8925_rtc_set_time_fndecl_28052 max8925_rtc_set_time fndecl 0 28052 NULL
139073 +disable_so_hblank_lo_lvds_dvo_timing_28054 hblank_lo lvds_dvo_timing 0 28054 NULL
139074 +disable_so_total_bytes_available_snd_compr_runtime_28061 total_bytes_available snd_compr_runtime 0 28061 NULL
139075 +disable_so_start_jiffies_dm_cache_migration_28062 start_jiffies dm_cache_migration 0 28062 NULL
139076 +disable_so_fm10k_read_systime_pf_fndecl_28063 fm10k_read_systime_pf fndecl 0 28063 NULL
139077 +disable_so_time_stopped_btrfs_dev_replace_28065 time_stopped btrfs_dev_replace 0 28065 NULL
139078 +disable_so_total_time_devfreq_dev_status_28070 total_time devfreq_dev_status 0 28070 NULL
139079 +disable_so_congested_cycles_vardecl_tlb_uv_c_28074 congested_cycles vardecl_tlb_uv.c 0 28074 NULL
139080 +disable_so_db_addr_mlx4_ib_create_cq_28077 db_addr mlx4_ib_create_cq 0 28077 NULL
139081 +disable_so_ipaddr_atmmpc_ioc_28080 ipaddr atmmpc_ioc 0 28080 NULL
139082 +disable_so_drm_modeset_backoff_interruptible_fndecl_28087 drm_modeset_backoff_interruptible fndecl 0 28087 NULL
139083 +disable_so_pcr_address_fndecl_28088 pcr_address fndecl 0 28088 NULL
139084 +disable_so_fill_stats_for_tgid_fndecl_28092 fill_stats_for_tgid fndecl 0-1 28092 NULL
139085 +disable_so_ep0_set_address_fndecl_28094 ep0_set_address fndecl 0 28094 NULL
139086 +disable_so_vdi_uid_vxfs_inode_info_28097 vdi_uid vxfs_inode_info 0 28097 NULL
139087 +disable_so_cryptd_hash_final_fndecl_28098 cryptd_hash_final fndecl 2 28098 NULL
139088 +disable_so_sysctl_aevent_etime_netns_xfrm_28099 sysctl_aevent_etime netns_xfrm 0 28099 NULL
139089 +disable_so_nilfs_segctor_last_seg_write_time_secs_show_fndecl_28103 nilfs_segctor_last_seg_write_time_secs_show fndecl 0 28103 NULL
139090 +disable_so_toshiba_usb_sleep_charge_set_fndecl_28108 toshiba_usb_sleep_charge_set fndecl 0 28108 NULL
139091 +disable_so_r63_val_fc2580_freq_regs_28120 r63_val fc2580_freq_regs 0 28120 NULL
139092 +disable_so_myri10ge_read_mac_addr_fndecl_28129 myri10ge_read_mac_addr fndecl 0 28129 NULL
139093 +disable_so_stv090x_get_feclock_fndecl_28130 stv090x_get_feclock fndecl 0 28130 NULL
139094 +disable_so_m_blkbit_log_xfs_mount_28131 m_blkbit_log xfs_mount 0 28131 NULL
139095 +disable_so_duration_iwl_mvm_time_event_data_28140 duration iwl_mvm_time_event_data 0 28140 NULL
139096 +disable_so_compute_tsc_offset_kvm_x86_ops_28149 compute_tsc_offset kvm_x86_ops 0-2 28149 NULL
139097 +disable_so_sys_clock_freq_drxd_state_28176 sys_clock_freq drxd_state 0 28176 NULL
139098 +disable_so_addrLow_sge_ieee1212_28181 addrLow sge_ieee1212 0 28181 NULL
139099 +disable_so_ctnetlink_timestamp_size_fndecl_28183 ctnetlink_timestamp_size fndecl 0 28183 NULL
139100 +disable_so_ahash_def_finup_fndecl_28189 ahash_def_finup fndecl 0 28189 NULL
139101 +disable_so_hw_ptr_jiffies_snd_pcm_runtime_28200 hw_ptr_jiffies snd_pcm_runtime 0 28200 NULL
139102 +disable_so_tmr_device_snd_timer_28205 tmr_device snd_timer 0 28205 NULL
139103 +disable_so_kycr2_delay_sh_keysc_info_28217 kycr2_delay sh_keysc_info 0 28217 NULL
139104 +disable_so_timestamp_nfs4_opendata_28221 timestamp nfs4_opendata 0 28221 NULL
139105 +disable_so_mb_find_next_zero_bit_fndecl_28223 mb_find_next_zero_bit fndecl 0-2-3 28223 NULL
139106 +disable_so_nbytes_orig_qce_sha_reqctx_28228 nbytes_orig qce_sha_reqctx 0 28228 NULL
139107 +disable_so_code_addr_nvbios_pmuR_28229 code_addr nvbios_pmuR 0 28229 NULL
139108 +disable_so_clock_pad_drive_dib0070_config_28232 clock_pad_drive dib0070_config 0 28232 NULL nohasharray
139109 +disable_so_ringid_wmi_bcast_vring_cfg_28232 ringid wmi_bcast_vring_cfg 0 28232 &disable_so_clock_pad_drive_dib0070_config_28232
139110 +disable_so_centiseconds_timestamp_28239 centiseconds timestamp 0 28239 NULL nohasharray
139111 +disable_so_psb_vdc_interrupt_fndecl_28239 psb_vdc_interrupt fndecl 2 28239 &disable_so_centiseconds_timestamp_28239
139112 +disable_so_freqshift_snd_usb_endpoint_28255 freqshift snd_usb_endpoint 0 28255 NULL
139113 +disable_so_drm_vblank_count_and_time_fndecl_28263 drm_vblank_count_and_time fndecl 2 28263 NULL
139114 +disable_so_cr_s5p_jpeg_addr_28264 cr s5p_jpeg_addr 0 28264 NULL
139115 +disable_so_adis16136_get_freq_fndecl_28268 adis16136_get_freq fndecl 0 28268 NULL nohasharray
139116 +disable_so_cpu_to_tun16_fndecl_28268 cpu_to_tun16 fndecl 0-2 28268 &disable_so_adis16136_get_freq_fndecl_28268
139117 +disable_so_index_msr_data_28269 index msr_data 0 28269 NULL
139118 +disable_so_clock_realtek_pci_sdmmc_28276 clock realtek_pci_sdmmc 0 28276 NULL
139119 +disable_so_div_q0_pll_values_28280 div_q0 pll_values 0 28280 NULL
139120 +disable_so_fall_time_lp8788_bl_config_28282 fall_time lp8788_bl_config 0 28282 NULL
139121 +disable_so_producer_index_phys_addr_lo_megasas_init_queue_info_28289 producer_index_phys_addr_lo megasas_init_queue_info 0 28289 NULL
139122 +disable_so_hash_ipport4_expire_fndecl_28290 hash_ipport4_expire fndecl 4 28290 NULL
139123 +disable_so_ifa_valid_lft_in_ifaddr_28292 ifa_valid_lft in_ifaddr 0 28292 NULL nohasharray
139124 +disable_so_test_ahash_jiffies_digest_fndecl_28292 test_ahash_jiffies_digest fndecl 0 28292 &disable_so_ifa_valid_lft_in_ifaddr_28292
139125 +disable_so_bitmap_parselist_fndecl_28296 bitmap_parselist fndecl 0-3 28296 NULL
139126 +disable_so_st_uid_stat_28301 st_uid stat 0 28301 NULL
139127 +disable_so_default_powersave_bias_vardecl_cpufreq_ondemand_c_28302 default_powersave_bias vardecl_cpufreq_ondemand.c 0 28302 NULL
139128 +disable_so__simple_hash_fndecl_28307 _simple_hash fndecl 0 28307 NULL
139129 +disable_so_sys_setfsuid_fndecl_28311 sys_setfsuid fndecl 0-1 28311 NULL
139130 +disable_so_buf_addr_mlx4_ib_resize_cq_28313 buf_addr mlx4_ib_resize_cq 0 28313 NULL nohasharray
139131 +disable_so_netxen_config_ipaddr_fndecl_28313 netxen_config_ipaddr fndecl 2 28313 &disable_so_buf_addr_mlx4_ib_resize_cq_28313 nohasharray
139132 +disable_so_set_32bit_tls_fndecl_28313 set_32bit_tls fndecl 3 28313 &disable_so_netxen_config_ipaddr_fndecl_28313
139133 +disable_so_init_systime_stmmac_hwtimestamp_28315 init_systime stmmac_hwtimestamp 2-3 28315 NULL
139134 +disable_so_bf_daddr_ath_buf_28317 bf_daddr ath_buf 0 28317 NULL nohasharray
139135 +disable_so_xfs_btree_readahead_ptr_fndecl_28317 xfs_btree_readahead_ptr fndecl 3 28317 &disable_so_bf_daddr_ath_buf_28317
139136 +disable_so__is_valid_div_fndecl_28320 _is_valid_div fndecl 2 28320 NULL
139137 +disable_so_loop_id_2100_gid_list_info_28327 loop_id_2100 gid_list_info 0 28327 NULL nohasharray
139138 +disable_so_hi_regpair_28327 hi regpair 0 28327 &disable_so_loop_id_2100_gid_list_info_28327
139139 +disable_so_dst_addr_rcar_dmac_xfer_chunk_28333 dst_addr rcar_dmac_xfer_chunk 0 28333 NULL
139140 +disable_so_svm_msrpm_offset_fndecl_28343 svm_msrpm_offset fndecl 0-1 28343 NULL
139141 +disable_so_dma_free_attrs_fndecl_28349 dma_free_attrs fndecl 2-4 28349 NULL
139142 +disable_so_gc_psx_delay_vardecl_gamecon_c_28354 gc_psx_delay vardecl_gamecon.c 0 28354 NULL
139143 +disable_so_di_mtime_nsec_gfs2_dinode_28356 di_mtime_nsec gfs2_dinode 0 28356 NULL
139144 +disable_so_panel_post_divider_radeon_encoder_lvds_28360 panel_post_divider radeon_encoder_lvds 0 28360 NULL
139145 +disable_so_cpu_rt_runtime_write_fndecl_28375 cpu_rt_runtime_write fndecl 3-0 28375 NULL nohasharray
139146 +disable_so_hrtimer_nanosleep_fndecl_28375 hrtimer_nanosleep fndecl 4 28375 &disable_so_cpu_rt_runtime_write_fndecl_28375
139147 +disable_so_addr_yellowfin_desc_28380 addr yellowfin_desc 0 28380 NULL
139148 +disable_so_time_count_mptsas_target_reset_event_28383 time_count mptsas_target_reset_event 0 28383 NULL nohasharray
139149 +disable_so_pos2maj_hash_fndecl_28383 pos2maj_hash fndecl 0-2 28383 &disable_so_time_count_mptsas_target_reset_event_28383
139150 +disable_so_chv_freq_opcode_fndecl_28386 chv_freq_opcode fndecl 0-2 28386 NULL
139151 +disable_so_nsecs_to_jiffies_fndecl_28394 nsecs_to_jiffies fndecl 0-1 28394 NULL
139152 +disable_so_qpn_hash_fndecl_28400 qpn_hash fndecl 0-2 28400 NULL
139153 +disable_so_seltime_b_ahc_softc_28409 seltime_b ahc_softc 0 28409 NULL
139154 +disable_so_ast_set_start_address_crt1_fndecl_28414 ast_set_start_address_crt1 fndecl 2 28414 NULL
139155 +disable_so_tseg2_pucan_timing_fast_28420 tseg2 pucan_timing_fast 0 28420 NULL
139156 +disable_so_tlv_put_uuid_fndecl_28427 tlv_put_uuid fndecl 0 28427 NULL
139157 +disable_so_cur_tsc_write_kvm_arch_28444 cur_tsc_write kvm_arch 0 28444 NULL
139158 +disable_so_addr_2_qla8044_minidump_entry_rdmdio_28446 addr_2 qla8044_minidump_entry_rdmdio 0 28446 NULL
139159 +disable_so_ft_img_ir_timing_regvals_28448 ft img_ir_timing_regvals 0 28448 NULL
139160 +disable_so_blk_queue_rq_timeout_fndecl_28452 blk_queue_rq_timeout fndecl 2 28452 NULL
139161 +disable_so_pch_udc_read_device_interrupts_fndecl_28463 pch_udc_read_device_interrupts fndecl 0 28463 NULL
139162 +disable_so_spidev_sync_fndecl_28473 spidev_sync fndecl 0 28473 NULL
139163 +disable_so_mvs_store_interrupt_coalescing_fndecl_28474 mvs_store_interrupt_coalescing fndecl 0-4 28474 NULL
139164 +disable_so_div_up_fndecl_28477 div_up fndecl 0-1-2 28477 NULL
139165 +disable_so_iwlagn_hw_valid_rtc_data_addr_fndecl_28480 iwlagn_hw_valid_rtc_data_addr fndecl 1 28480 NULL
139166 +disable_so_ixgbe_init_interrupt_scheme_fndecl_28488 ixgbe_init_interrupt_scheme fndecl 0 28488 NULL
139167 +disable_so_next_hrtimer_event_ehci_hcd_28494 next_hrtimer_event ehci_hcd 0 28494 NULL
139168 +disable_so_show_hold_timer_fndecl_28495 show_hold_timer fndecl 0 28495 NULL
139169 +disable_so_linetime_intel_pipe_wm_28496 linetime intel_pipe_wm 0 28496 NULL
139170 +disable_so_rcq_addr_vf_pf_rxq_params_28504 rcq_addr vf_pf_rxq_params 0 28504 NULL
139171 +disable_so_paddr_ath10k_hif_sg_item_28509 paddr ath10k_hif_sg_item 0 28509 NULL
139172 +disable_so_ocfs2_clear_bit_unaligned_fndecl_28520 ocfs2_clear_bit_unaligned fndecl 1 28520 NULL
139173 +disable_so_interrupt_notify_wlcore_ops_28523 interrupt_notify wlcore_ops 0 28523 NULL
139174 +disable_so_r_direct_hash_ceph_mds_request_28525 r_direct_hash ceph_mds_request 0 28525 NULL
139175 +disable_so_i_ctime_omfs_inode_28528 i_ctime omfs_inode 0 28528 NULL
139176 +disable_so_sas_request_addr_fndecl_28536 sas_request_addr fndecl 0 28536 NULL
139177 +disable_so_bnx2x_send_reset_timesync_ramrod_fndecl_28537 bnx2x_send_reset_timesync_ramrod fndecl 0 28537 NULL
139178 +disable_so_prev_sum_exec_runtime_sched_entity_28542 prev_sum_exec_runtime sched_entity 0 28542 NULL nohasharray
139179 +disable_so_reg_w1_fndecl_28542 reg_w1 fndecl 2-3 28542 &disable_so_prev_sum_exec_runtime_sched_entity_28542
139180 +disable_so_addr_wil_memio_28545 addr wil_memio 0 28545 NULL
139181 +disable_so_drm_get_last_vbltimestamp_fndecl_28555 drm_get_last_vbltimestamp fndecl 2 28555 NULL nohasharray
139182 +disable_so_decryptor_fndecl_28555 decryptor fndecl 0 28555 &disable_so_drm_get_last_vbltimestamp_fndecl_28555
139183 +disable_so_mcryptd_hash_enqueue_fndecl_28559 mcryptd_hash_enqueue fndecl 0 28559 NULL
139184 +disable_so_i_ctime_nilfs_inode_28572 i_ctime nilfs_inode 0 28572 NULL
139185 +disable_so_ablkcipher_request_complete_fndecl_28578 ablkcipher_request_complete fndecl 2 28578 NULL
139186 +disable_so_quark_x1000_get_clk_div_fndecl_28592 quark_x1000_get_clk_div fndecl 0-1 28592 NULL
139187 +disable_so_myri10ge_update_mac_address_fndecl_28593 myri10ge_update_mac_address fndecl 0 28593 NULL
139188 +disable_so_crypto_authenc_decrypt_fndecl_28596 crypto_authenc_decrypt fndecl 0 28596 NULL
139189 +disable_so_addr_starfire_tx_desc_2_28603 addr starfire_tx_desc_2 0 28603 NULL
139190 +disable_so___rhashtable_insert_fast_fndecl_28605 __rhashtable_insert_fast fndecl 0 28605 NULL
139191 +disable_so_addr_cp_desc_28611 addr cp_desc 0 28611 NULL
139192 +disable_so_ic_pause_timer_mtip_port_28612 ic_pause_timer mtip_port 0 28612 NULL nohasharray
139193 +disable_so_bitmap_checkfree_fndecl_28612 bitmap_checkfree fndecl 2 28612 &disable_so_ic_pause_timer_mtip_port_28612
139194 +disable_so_ac_utimescaled_taskstats_28613 ac_utimescaled taskstats 0 28613 NULL
139195 +disable_so___subtree_last_umem_odp_node_28630 __subtree_last umem_odp_node 0 28630 NULL
139196 +disable_so_i_ctime_bfs_inode_28632 i_ctime bfs_inode 0 28632 NULL
139197 +disable_so_s_def_resgid_ext4_super_block_28638 s_def_resgid ext4_super_block 0 28638 NULL
139198 +disable_so_addr_alert_data_28639 addr alert_data 0 28639 NULL
139199 +disable_so_p_vaddr_elf32_phdr_28641 p_vaddr elf32_phdr 0 28641 NULL
139200 +disable_so_kv_set_divider_value_fndecl_28644 kv_set_divider_value fndecl 3-0 28644 NULL
139201 +disable_so_bitmap_clear_fndecl_28646 bitmap_clear fndecl 2-3 28646 NULL
139202 +disable_so_uartlite_inle32_fndecl_28652 uartlite_inle32 fndecl 0 28652 NULL
139203 +disable_so_kvm_hv_vapic_msr_write_fndecl_28670 kvm_hv_vapic_msr_write fndecl 3 28670 NULL
139204 +disable_so_sgl_addr_fcpio_icmnd_16_28672 sgl_addr fcpio_icmnd_16 0 28672 NULL
139205 +disable_so_timestamp_bfa_trc_s_28675 timestamp bfa_trc_s 0 28675 NULL
139206 +disable_so_xbofs_delay_irda_skb_cb_28676 xbofs_delay irda_skb_cb 0 28676 NULL
139207 +disable_so_hpfs_map_bitmap_fndecl_28681 hpfs_map_bitmap fndecl 2 28681 NULL
139208 +disable_so_tz_minuteswest_timezone_28688 tz_minuteswest timezone 0 28688 NULL
139209 +disable_so_pc_clock_settime_fndecl_28698 pc_clock_settime fndecl 1 28698 NULL
139210 +disable_so_orinoco_hw_get_freq_fndecl_28700 orinoco_hw_get_freq fndecl 0 28700 NULL
139211 +disable_so_phys_addr_megasas_sge32_28701 phys_addr megasas_sge32 0 28701 NULL
139212 +disable_so_tusb_otg_ints_fndecl_28728 tusb_otg_ints fndecl 2 28728 NULL
139213 +disable_so_dynamic_ps_forced_timeout_ieee80211_local_28729 dynamic_ps_forced_timeout ieee80211_local 0 28729 NULL
139214 +disable_so_atomic_notifier_call_chain_fndecl_28732 atomic_notifier_call_chain fndecl 0-2 28732 NULL
139215 +disable_so_time_ext_busy_survey_info_28734 time_ext_busy survey_info 0 28734 NULL
139216 +disable_so___audit_signal_info_fndecl_28736 __audit_signal_info fndecl 0-1 28736 NULL
139217 +disable_so_SYSC_mq_timedsend_fndecl_28740 SYSC_mq_timedsend fndecl 1-3 28740 NULL
139218 +disable_so_gss_krb5_aes_decrypt_fndecl_28742 gss_krb5_aes_decrypt fndecl 0-2 28742 NULL
139219 +disable_so_sys_clock_getres_fndecl_28754 sys_clock_getres fndecl 1 28754 NULL
139220 +disable_so_addr_max8997_muic_reg_data_28757 addr max8997_muic_reg_data 0 28757 NULL
139221 +disable_so_address_floppy_fdc_state_28762 address floppy_fdc_state 0 28762 NULL
139222 +disable_so_btrfs_uuid_tree_add_fndecl_28765 btrfs_uuid_tree_add fndecl 0-4-5 28765 NULL
139223 +disable_so_default_radio_freq_vardecl_pvrusb2_hdw_c_28767 default_radio_freq vardecl_pvrusb2-hdw.c 0 28767 NULL
139224 +disable_so_ac_stime_pacct_struct_28773 ac_stime pacct_struct 0 28773 NULL
139225 +disable_so___btree_submit_bio_start_fndecl_28775 __btree_submit_bio_start fndecl 0 28775 NULL
139226 +disable_so_add_new_bitmap_fndecl_28783 add_new_bitmap fndecl 3 28783 NULL
139227 +disable_so_cinblock_signal_struct_28789 cinblock signal_struct 0 28789 NULL
139228 +disable_so_bd_list_addr_hi_bnx2i_logout_request_28791 bd_list_addr_hi bnx2i_logout_request 0 28791 NULL
139229 +disable_so_tv_freq_bttv_28796 tv_freq bttv 0 28796 NULL
139230 +disable_so___btrfs_run_delayed_items_fndecl_28804 __btrfs_run_delayed_items fndecl 0-3 28804 NULL nohasharray
139231 +disable_so_dst_addr_dma_slave_config_28804 dst_addr dma_slave_config 0 28804 &disable_so___btrfs_run_delayed_items_fndecl_28804
139232 +disable_so_xfs_bitmap_empty_fndecl_28805 xfs_bitmap_empty fndecl 2 28805 NULL
139233 +disable_so_btrfs_alloc_delayed_item_fndecl_28813 btrfs_alloc_delayed_item fndecl 1 28813 NULL
139234 +disable_so_virtio32_to_cpu_fndecl_28839 virtio32_to_cpu fndecl 0-2 28839 NULL
139235 +disable_so_random_frame_fusbh200_hcd_28840 random_frame fusbh200_hcd 0 28840 NULL
139236 +disable_so_wl1273_fm_set_tx_freq_fndecl_28841 wl1273_fm_set_tx_freq fndecl 2 28841 NULL nohasharray
139237 +disable_so_rip_kvm_regs_28841 rip kvm_regs 0 28841 &disable_so_wl1273_fm_set_tx_freq_fndecl_28841
139238 +disable_so_last_capture_dmaaddr_es1938_28843 last_capture_dmaaddr es1938 0 28843 NULL
139239 +disable_so_mic_is_system_addr_fndecl_28851 mic_is_system_addr fndecl 2 28851 NULL
139240 +disable_so_sst_module_runtime_new_fndecl_28861 sst_module_runtime_new fndecl 2 28861 NULL
139241 +disable_so_nat_blkaddr_f2fs_nm_info_28862 nat_blkaddr f2fs_nm_info 0 28862 NULL
139242 +disable_so_ustrtoul_fndecl_28866 ustrtoul fndecl 0 28866 NULL
139243 +disable_so_tomoyo_write_log2_fndecl_28871 tomoyo_write_log2 fndecl 2 28871 NULL
139244 +disable_so_rate_snd_pcm_oss_runtime_28878 rate snd_pcm_oss_runtime 0 28878 NULL
139245 +disable_so_cl_idle_timeout_ms_o2nm_cluster_28885 cl_idle_timeout_ms o2nm_cluster 0 28885 NULL
139246 +disable_so_pc_clock_adjtime_fndecl_28892 pc_clock_adjtime fndecl 1 28892 NULL
139247 +disable_so_mmc_power_cycle_fndecl_28894 mmc_power_cycle fndecl 2 28894 NULL
139248 +disable_so_cpufreq_get_fndecl_28896 cpufreq_get fndecl 0-1 28896 NULL
139249 +disable_so_ci_get_sleep_divider_id_from_clock_fndecl_28898 ci_get_sleep_divider_id_from_clock fndecl 2 28898 NULL
139250 +disable_so_mmio_writel_intel_uncore_funcs_28903 mmio_writel intel_uncore_funcs 2-3 28903 NULL
139251 +disable_so_cpufreq_stats_init_fndecl_28912 cpufreq_stats_init fndecl 0 28912 NULL
139252 +disable_so_sbp_tpg_attrib_store_mgt_orb_timeout_fndecl_28914 sbp_tpg_attrib_store_mgt_orb_timeout fndecl 0-3 28914 NULL
139253 +disable_so___virtio16_to_cpu_fndecl_28917 __virtio16_to_cpu fndecl 0-2 28917 NULL
139254 +disable_so___pm_runtime_resume_fndecl_28918 __pm_runtime_resume fndecl 0 28918 NULL
139255 +disable_so_task_setpgid_security_operations_28939 task_setpgid security_operations 2 28939 NULL
139256 +disable_so_perf_event_set_clock_fndecl_28941 perf_event_set_clock fndecl 0 28941 NULL
139257 +disable_so_sci_er_interrupt_fndecl_28944 sci_er_interrupt fndecl 1 28944 NULL
139258 +disable_so_mmc_sdio_get_max_clock_fndecl_28945 mmc_sdio_get_max_clock fndecl 0 28945 NULL
139259 +disable_so_dma_addr_cmdQ_28949 dma_addr cmdQ 0 28949 NULL
139260 +disable_so_s_def_resuid_ext3_super_block_28958 s_def_resuid ext3_super_block 0 28958 NULL
139261 +disable_so_init_timer_cpu_fndecl_28961 init_timer_cpu fndecl 2 28961 NULL
139262 +disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962 sst_hsw_dsp_runtime_suspend fndecl 0 28962 NULL nohasharray
139263 +disable_so_mem_busaddr_ahd_platform_data_28962 mem_busaddr ahd_platform_data 0 28962 &disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962
139264 +disable_so_xen_setup_timer_fndecl_28968 xen_setup_timer fndecl 1 28968 NULL
139265 +disable_so_vx_clock_mode_info_fndecl_28969 vx_clock_mode_info fndecl 0 28969 NULL
139266 +disable_so_clk_frequency_csis_state_28987 clk_frequency csis_state 0 28987 NULL
139267 +disable_so_cma_clear_bitmap_fndecl_28991 cma_clear_bitmap fndecl 2-3 28991 NULL
139268 +disable_so_tg3_nvram_phys_addr_fndecl_28993 tg3_nvram_phys_addr fndecl 0-2 28993 NULL
139269 +disable_so_ufshcd_init_clocks_fndecl_28995 ufshcd_init_clocks fndecl 0 28995 NULL nohasharray
139270 +disable_so_ima_init_crypto_fndecl_28995 ima_init_crypto fndecl 0 28995 &disable_so_ufshcd_init_clocks_fndecl_28995
139271 +disable_so_i2c_address_ts2020_priv_29002 i2c_address ts2020_priv 0 29002 NULL
139272 +disable_so_gf_mul_fndecl_29007 gf_mul fndecl 0-3 29007 NULL
139273 +disable_so_sys_geteuid_fndecl_29013 sys_geteuid fndecl 0 29013 NULL
139274 +disable_so_do_one_acipher_op_fndecl_29014 do_one_acipher_op fndecl 0-2 29014 NULL
139275 +disable_so_ssb_pmu_get_alp_clock_clk0_fndecl_29019 ssb_pmu_get_alp_clock_clk0 fndecl 0 29019 NULL
139276 +disable_so_addr_ib_sge_29021 addr ib_sge 0 29021 NULL
139277 +disable_so_rdi_kvm_regs_29022 rdi kvm_regs 0 29022 NULL
139278 +disable_so_dma_subdivide_fndecl_29027 dma_subdivide fndecl 3-0 29027 NULL
139279 +disable_so_nilfs_superblock_sb_write_time_secs_show_fndecl_29044 nilfs_superblock_sb_write_time_secs_show fndecl 0 29044 NULL
139280 +disable_so_mlx4_ib_init_gid_table_fndecl_29049 mlx4_ib_init_gid_table fndecl 0 29049 NULL
139281 +disable_so_xfs_bmap_add_attrfork_btree_fndecl_29052 xfs_bmap_add_attrfork_btree fndecl 0 29052 NULL
139282 +disable_so_pcf2123_rtc_set_time_fndecl_29057 pcf2123_rtc_set_time fndecl 0 29057 NULL
139283 +disable_so_vactive_hi_oaktrail_timing_info_29063 vactive_hi oaktrail_timing_info 0 29063 NULL
139284 +disable_so_xfs_btree_lookup_fndecl_29066 xfs_btree_lookup fndecl 0 29066 NULL
139285 +disable_so_si476x_core_cmd_fm_tune_freq_a20_fndecl_29072 si476x_core_cmd_fm_tune_freq_a20 fndecl 0 29072 NULL
139286 +disable_so_hcd_pci_runtime_resume_fndecl_29073 hcd_pci_runtime_resume fndecl 0 29073 NULL
139287 +disable_so_switch_time_wl12xx_cmd_channel_switch_29074 switch_time wl12xx_cmd_channel_switch 0 29074 NULL
139288 +disable_so_ata_internal_cmd_timeout_fndecl_29075 ata_internal_cmd_timeout fndecl 0-2 29075 NULL nohasharray
139289 +disable_so_hash_shift_flow_cache_29075 hash_shift flow_cache 0 29075 &disable_so_ata_internal_cmd_timeout_fndecl_29075
139290 +disable_so_timeout_sg_io_v4_29079 timeout sg_io_v4 0 29079 NULL
139291 +disable_so___btrfs_add_delayed_insertion_item_fndecl_29083 __btrfs_add_delayed_insertion_item fndecl 0 29083 NULL
139292 +disable_so_bn_nchildren_nilfs_btree_node_29084 bn_nchildren nilfs_btree_node 0 29084 NULL
139293 +disable_so_jiffies_vardecl_29085 jiffies vardecl 0 29085 NULL
139294 +disable_so_frag_count_ct_timer_instance_29091 frag_count ct_timer_instance 0 29091 NULL
139295 +disable_so_ref_start_vardecl_tsc_c_29097 ref_start vardecl_tsc.c 0 29097 NULL
139296 +disable_so_timeout_ms_cm_id_private_29104 timeout_ms cm_id_private 0 29104 NULL
139297 +disable_so_nfulnl_set_timeout_fndecl_29106 nfulnl_set_timeout fndecl 2 29106 NULL nohasharray
139298 +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
139299 +disable_so_i_mtime_exofs_fcb_29107 i_mtime exofs_fcb 0 29107 NULL
139300 +disable_so_ss_pt_regs_29109 ss pt_regs 0 29109 NULL
139301 +disable_so_ivsize_ablkcipher_alg_29115 ivsize ablkcipher_alg 0 29115 NULL
139302 +disable_so_signal_strength_rx_status_29125 signal_strength rx_status 0 29125 NULL
139303 +disable_so_radio_rx_freq_vivid_dev_29126 radio_rx_freq vivid_dev 0 29126 NULL
139304 +disable_so_io_virtual_address_ib_pool_fmr_29135 io_virtual_address ib_pool_fmr 0 29135 NULL
139305 +disable_so_addr_low_mcp_kreq_ether_send_29138 addr_low mcp_kreq_ether_send 0 29138 NULL
139306 +disable_so_pad_bits_bitstream_29149 pad_bits bitstream 0 29149 NULL
139307 +disable_so_clockdiv_sd_29154 clockdiv sd 0 29154 NULL
139308 +disable_so_retu_wdt_set_timeout_fndecl_29155 retu_wdt_set_timeout fndecl 2-0 29155 NULL nohasharray
139309 +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
139310 +disable_so_set_ip_addr_fndecl_29159 set_ip_addr fndecl 4 29159 NULL nohasharray
139311 +disable_so_hsync_offset_hi_oaktrail_timing_info_29159 hsync_offset_hi oaktrail_timing_info 0 29159 &disable_so_set_ip_addr_fndecl_29159
139312 +disable_so_valid_phys_addr_range_fndecl_29163 valid_phys_addr_range fndecl 2 29163 NULL
139313 +disable_so_hsw_compute_linetime_wm_fndecl_29166 hsw_compute_linetime_wm fndecl 0 29166 NULL
139314 +disable_so_set_frontend_jiffies_af9013_state_29174 set_frontend_jiffies af9013_state 0 29174 NULL
139315 +disable_so_max_schedule_delay_balloon_stats_29176 max_schedule_delay balloon_stats 0 29176 NULL
139316 +disable_so_matroxfb_mavenclock_fndecl_29182 matroxfb_mavenclock fndecl 2-3 29182 NULL
139317 +disable_so_rrq_stop_time_lpfc_node_rrq_29187 rrq_stop_time lpfc_node_rrq 0 29187 NULL
139318 +disable_so_can_ifindex_sockaddr_can_29188 can_ifindex sockaddr_can 0 29188 NULL
139319 +disable_so_time_hi_and_version_afs_uuid_29192 time_hi_and_version afs_uuid 0 29192 NULL
139320 +disable_so_inode_bitmap_ext4_new_group_data_29195 inode_bitmap ext4_new_group_data 0 29195 NULL
139321 +disable_so_madc_aic31xx_rate_divs_29206 madc aic31xx_rate_divs 0 29206 NULL
139322 +disable_so_i_mtime_ext3_inode_29219 i_mtime ext3_inode 0 29219 NULL
139323 +disable_so_ccp_aes_cmac_finup_fndecl_29220 ccp_aes_cmac_finup fndecl 0 29220 NULL
139324 +disable_so_listen_time_ath5k_ani_state_29228 listen_time ath5k_ani_state 0 29228 NULL
139325 +disable_so_di_mtime_gfs2_dinode_29230 di_mtime gfs2_dinode 0 29230 NULL nohasharray
139326 +disable_so_snd_pcm_hw_rule_mulkdiv_fndecl_29230 snd_pcm_hw_rule_mulkdiv fndecl 0 29230 &disable_so_di_mtime_gfs2_dinode_29230
139327 +disable_so_qlcnic_get_ioaddr_fndecl_29235 qlcnic_get_ioaddr fndecl 2 29235 NULL
139328 +disable_so_si476x_radio_s_hw_freq_seek_fndecl_29237 si476x_radio_s_hw_freq_seek fndecl 0 29237 NULL
139329 +disable_so_SiS_SetRegANDOR_fndecl_29240 SiS_SetRegANDOR fndecl 2-3-5-4 29240 NULL
139330 +disable_so_dev_wait_time_esas2r_sas_nvram_29244 dev_wait_time esas2r_sas_nvram 0 29244 NULL
139331 +disable_so_b44_recycle_rx_fndecl_29255 b44_recycle_rx fndecl 2-3 29255 NULL
139332 +disable_so_max_state_devfreq_dev_profile_29257 max_state devfreq_dev_profile 0 29257 NULL
139333 +disable_so_freq_std_sccnxp_chip_29265 freq_std sccnxp_chip 0 29265 NULL nohasharray
139334 +disable_so___ipv6_addr_diff32_fndecl_29265 __ipv6_addr_diff32 fndecl 0 29265 &disable_so_freq_std_sccnxp_chip_29265
139335 +disable_so_kvm_max_guest_tsc_khz_vardecl_29276 kvm_max_guest_tsc_khz vardecl 0 29276 NULL
139336 +disable_so_ioaddr_velocity_info_29278 ioaddr velocity_info 0 29278 NULL
139337 +disable_so_last_rx_time_xenvif_queue_29307 last_rx_time xenvif_queue 0 29307 NULL
139338 +disable_so_expires_timeriomem_rng_private_data_29310 expires timeriomem_rng_private_data 0 29310 NULL nohasharray
139339 +disable_so_dev_sound_lowlev_timer_29310 dev sound_lowlev_timer 0 29310 &disable_so_expires_timeriomem_rng_private_data_29310
139340 +disable_so_btrfs_set_inode_gid_fndecl_29338 btrfs_set_inode_gid fndecl 3 29338 NULL
139341 +disable_so_i2c_clock_speed_i2c_pca9564_pf_platform_data_29345 i2c_clock_speed i2c_pca9564_pf_platform_data 0 29345 NULL nohasharray
139342 +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
139343 +disable_so_adav80x_set_adc_clock_fndecl_29348 adav80x_set_adc_clock fndecl 2 29348 NULL
139344 +disable_so_mod_size_ccp_rsa_op_29350 mod_size ccp_rsa_op 0 29350 NULL
139345 +disable_so_iscsit_na_random_r2t_offsets_fndecl_29363 iscsit_na_random_r2t_offsets fndecl 0 29363 NULL nohasharray
139346 +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
139347 +disable_so_smsc75xx_set_mac_address_fndecl_29364 smsc75xx_set_mac_address fndecl 0 29364 NULL
139348 +disable_so_m88rs6000t_set_pll_freq_fndecl_29365 m88rs6000t_set_pll_freq fndecl 0-2 29365 NULL
139349 +disable_so_scaled_div_fndecl_29370 scaled_div fndecl 0-1-2 29370 NULL
139350 +disable_so_rtsc_y2x_fndecl_29372 rtsc_y2x fndecl 0-2 29372 NULL
139351 +disable_so_uart_update_timeout_fndecl_29380 uart_update_timeout fndecl 3-2 29380 NULL
139352 +disable_so_dbuf_addr_ath6kl_dbglog_hdr_29381 dbuf_addr ath6kl_dbglog_hdr 0 29381 NULL
139353 +disable_so_sample_rate_div_inv_mpu6050_reg_map_29386 sample_rate_div inv_mpu6050_reg_map 0 29386 NULL nohasharray
139354 +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
139355 +disable_so_nla_parse_nested_fndecl_29395 nla_parse_nested fndecl 2-0 29395 NULL
139356 +disable_so___sched_setscheduler_fndecl_29397 __sched_setscheduler fndecl 0 29397 NULL
139357 +disable_so_add_atomic_switch_msr_special_fndecl_29400 add_atomic_switch_msr_special fndecl 6-7 29400 NULL
139358 +disable_so___xfrm_spi_hash_fndecl_29403 __xfrm_spi_hash fndecl 0-2-3-4-5 29403 NULL
139359 +disable_so_ceph_decode_pgid_fndecl_29407 ceph_decode_pgid fndecl 0 29407 NULL
139360 +disable_so_loc_addr_nes_cm_info_29413 loc_addr nes_cm_info 0 29413 NULL
139361 +disable_so_kxcjk1013_convert_freq_to_bit_fndecl_29417 kxcjk1013_convert_freq_to_bit fndecl 0 29417 NULL
139362 +disable_so_exec_clock_cfs_rq_29423 exec_clock cfs_rq 0 29423 NULL
139363 +disable_so_irst_show_wakeup_time_fndecl_29431 irst_show_wakeup_time fndecl 0 29431 NULL nohasharray
139364 +disable_so_macb_interrupt_fndecl_29431 macb_interrupt fndecl 1 29431 &disable_so_irst_show_wakeup_time_fndecl_29431
139365 +disable_so_crypto_register_notifier_fndecl_29432 crypto_register_notifier fndecl 0 29432 NULL nohasharray
139366 +disable_so_shash_compat_setkey_fndecl_29432 shash_compat_setkey fndecl 0-3 29432 &disable_so_crypto_register_notifier_fndecl_29432
139367 +disable_so_pwm_freq_div_dib8000_config_29434 pwm_freq_div dib8000_config 0 29434 NULL
139368 +disable_so_ds1305_set_time_fndecl_29436 ds1305_set_time fndecl 0 29436 NULL
139369 +disable_so_add_sctp_bind_addr_fndecl_29438 add_sctp_bind_addr fndecl 0-3 29438 NULL
139370 +disable_so___virtio32_to_cpu_fndecl_29440 __virtio32_to_cpu fndecl 0-2 29440 NULL
139371 +disable_so_phonet_address_lookup_fndecl_29442 phonet_address_lookup fndecl 2 29442 NULL
139372 +disable_so_max_timeout_rc_dev_29444 max_timeout rc_dev 0 29444 NULL
139373 +disable_so_address_lo_ips_enh_sglist_29453 address_lo ips_enh_sglist 0 29453 NULL
139374 +disable_so_cdrom_is_random_writable_fndecl_29454 cdrom_is_random_writable fndecl 0 29454 NULL
139375 +disable_so_devblksize_log2_squashfs_sb_info_29455 devblksize_log2 squashfs_sb_info 0 29455 NULL
139376 +disable_so_ps_pspoll_timeouts_read_fndecl_29459 ps_pspoll_timeouts_read fndecl 3-0 29459 NULL
139377 +disable_so_kvm_apic_has_interrupt_fndecl_29462 kvm_apic_has_interrupt fndecl 0 29462 NULL
139378 +disable_so_max6902_read_time_fndecl_29464 max6902_read_time fndecl 0 29464 NULL
139379 +disable_so_get_bit_address_fndecl_29473 get_bit_address fndecl 2 29473 NULL
139380 +disable_so_last_sample_time_vardecl_smscoreapi_c_29477 last_sample_time vardecl_smscoreapi.c 0 29477 NULL nohasharray
139381 +disable_so_btree_readahead_hook_fndecl_29477 btree_readahead_hook fndecl 3-4 29477 &disable_so_last_sample_time_vardecl_smscoreapi_c_29477
139382 +disable_so_final_crypto_ahash_29478 final crypto_ahash 0 29478 NULL
139383 +disable_so_sum_sched_runtime_signal_struct_29480 sum_sched_runtime signal_struct 0 29480 NULL
139384 +disable_so_status_addr_req_29482 status addr_req 0 29482 NULL
139385 +disable_so_micd_dbtime_arizona_pdata_29495 micd_dbtime arizona_pdata 0 29495 NULL
139386 +disable_so_tqi_burst_time_ath5k_txq_info_29499 tqi_burst_time ath5k_txq_info 0 29499 NULL
139387 +disable_so_rs5c372_rtc_read_time_fndecl_29505 rs5c372_rtc_read_time fndecl 0 29505 NULL
139388 +disable_so_pi_write_regr_fndecl_29517 pi_write_regr fndecl 4 29517 NULL
139389 +disable_so_used_cells_ti_tscadc_dev_29522 used_cells ti_tscadc_dev 0 29522 NULL
139390 +disable_so_delay_to_eeprom_index_fndecl_29523 delay_to_eeprom_index fndecl 1 29523 NULL
139391 +disable_so_devfreq_event_get_edev_count_fndecl_29524 devfreq_event_get_edev_count fndecl 0 29524 NULL
139392 +disable_so_pci_enable_msix_range_fndecl_29535 pci_enable_msix_range fndecl 0-4-3 29535 NULL
139393 +disable_so_last_stats_time_ocrdma_dev_29544 last_stats_time ocrdma_dev 0 29544 NULL
139394 +disable_so_sb_c_bitmap_hpfs_sb_info_29558 sb_c_bitmap hpfs_sb_info 0 29558 NULL
139395 +disable_so_submit_time_us_bbio_29575 submit_time_us bbio 0 29575 NULL
139396 +disable_so_bitmap_remap_fndecl_29578 bitmap_remap fndecl 5 29578 NULL
139397 +disable_so_ath_force_no_ir_freq_fndecl_29580 ath_force_no_ir_freq fndecl 2 29580 NULL
139398 +disable_so_time_slice_start_ieee80211_sta_tx_tspec_29586 time_slice_start ieee80211_sta_tx_tspec 0 29586 NULL
139399 +disable_so_mlx4_get_roce_gid_from_slave_fndecl_29587 mlx4_get_roce_gid_from_slave fndecl 2-3 29587 NULL
139400 +disable_so_signalfd_read_fndecl_29589 signalfd_read fndecl 0 29589 NULL
139401 +disable_so_iscsi_nacl_attrib_show_random_datain_seq_offsets_fndecl_29602 iscsi_nacl_attrib_show_random_datain_seq_offsets fndecl 0 29602 NULL
139402 +disable_so_it913x_sleep_fndecl_29615 it913x_sleep fndecl 0 29615 NULL
139403 +disable_so_phy_addr_external_netdev_private_29618 phy_addr_external netdev_private 0 29618 NULL
139404 +disable_so_ssb_clockspeed_fndecl_29627 ssb_clockspeed fndecl 0 29627 NULL
139405 +disable_so_tx_int_delay_e1000_adapter_29628 tx_int_delay e1000_adapter 0 29628 NULL
139406 +disable_so_qlcnic_83xx_idc_check_timeout_fndecl_29633 qlcnic_83xx_idc_check_timeout fndecl 0 29633 NULL
139407 +disable_so_tegra_wdt_get_timeleft_fndecl_29649 tegra_wdt_get_timeleft fndecl 0 29649 NULL
139408 +disable_so_get_intermediate_cpufreq_driver_29653 get_intermediate cpufreq_driver 0 29653 NULL
139409 +disable_so_lpfc_debugfs_start_time_vardecl_lpfc_debugfs_c_29655 lpfc_debugfs_start_time vardecl_lpfc_debugfs.c 0 29655 NULL
139410 +disable_so_check_addr_fndecl_29658 check_addr fndecl 3-4 29658 NULL
139411 +disable_so_irlap_start_poll_timer_fndecl_29663 irlap_start_poll_timer fndecl 2 29663 NULL nohasharray
139412 +disable_so_mlx5_query_node_guid_fndecl_29663 mlx5_query_node_guid fndecl 0 29663 &disable_so_irlap_start_poll_timer_fndecl_29663
139413 +disable_so_read_addr_qla8044_minidump_entry_rdrom_29676 read_addr qla8044_minidump_entry_rdrom 0 29676 NULL nohasharray
139414 +disable_so_to_addr_param_sctp_af_29676 to_addr_param sctp_af 0 29676 &disable_so_read_addr_qla8044_minidump_entry_rdrom_29676
139415 +disable_so_buf_addr_mlx4_ib_create_cq_29678 buf_addr mlx4_ib_create_cq 0 29678 NULL
139416 +disable_so_forward_delay_timer_value___port_info_29680 forward_delay_timer_value __port_info 0 29680 NULL
139417 +disable_so_packet_life_time_ib_sa_mcmember_rec_29682 packet_life_time ib_sa_mcmember_rec 0 29682 NULL
139418 +disable_so_batadv_hash_dat_fndecl_29684 batadv_hash_dat fndecl 0-2 29684 NULL
139419 +disable_so_qxl_bo_physical_address_fndecl_29696 qxl_bo_physical_address fndecl 0-3 29696 NULL
139420 +disable_so_hspi_status_check_timeout_fndecl_29712 hspi_status_check_timeout fndecl 0 29712 NULL
139421 +disable_so_nes_addr_resolve_neigh_fndecl_29717 nes_addr_resolve_neigh fndecl 0-2-3 29717 NULL
139422 +disable_so_hash2pos_fndecl_29725 hash2pos fndecl 0-2-3 29725 NULL
139423 +disable_so_bcma_chipco_watchdog_timer_set_fndecl_29730 bcma_chipco_watchdog_timer_set fndecl 2-0 29730 NULL
139424 +disable_so_hor_addr_via_display_timing_29736 hor_addr via_display_timing 0 29736 NULL
139425 +disable_so_ceph_str_hash_fndecl_29742 ceph_str_hash fndecl 0-3 29742 NULL
139426 +disable_so_qla2x00_gid_pt_fndecl_29752 qla2x00_gid_pt fndecl 0 29752 NULL nohasharray
139427 +disable_so_ocfs2_xattr_name_hash_fndecl_29752 ocfs2_xattr_name_hash fndecl 0-3 29752 &disable_so_qla2x00_gid_pt_fndecl_29752
139428 +disable_so_kstrtouint_from_user_fndecl_29755 kstrtouint_from_user fndecl 0-2 29755 NULL
139429 +disable_so_get_timeout_clock_sdhci_ops_29760 get_timeout_clock sdhci_ops 0 29760 NULL nohasharray
139430 +disable_so_curfreq_raremono_device_29760 curfreq raremono_device 0 29760 &disable_so_get_timeout_clock_sdhci_ops_29760
139431 +disable_so_send_time_batadv_forw_packet_29762 send_time batadv_forw_packet 0 29762 NULL
139432 +disable_so_ms_brcms_timer_29763 ms brcms_timer 0 29763 NULL nohasharray
139433 +disable_so_lp872x_get_timestep_usec_fndecl_29763 lp872x_get_timestep_usec fndecl 0 29763 &disable_so_ms_brcms_timer_29763
139434 +disable_so_bmap_address_space_operations_29766 bmap address_space_operations 2 29766 NULL
139435 +disable_so_ds1390_set_time_fndecl_29768 ds1390_set_time fndecl 0 29768 NULL
139436 +disable_so_release_jiffies_dvb_frontend_private_29775 release_jiffies dvb_frontend_private 0 29775 NULL
139437 +disable_so_hsw_pcm_runtime_resume_fndecl_29777 hsw_pcm_runtime_resume fndecl 0 29777 NULL
139438 +disable_so_pcan_usb_set_bittiming_fndecl_29781 pcan_usb_set_bittiming fndecl 0 29781 NULL
139439 +disable_so_pmcraid_disable_interrupts_fndecl_29788 pmcraid_disable_interrupts fndecl 2 29788 NULL
139440 +disable_so_bit_line_usb_fifo_29792 bit_line usb_fifo 0 29792 NULL
139441 +disable_so_hash_name_fndecl_29814 hash_name fndecl 0 29814 NULL
139442 +disable_so_t4vf_set_addr_hash_fndecl_29821 t4vf_set_addr_hash fndecl 0-2 29821 NULL
139443 +disable_so_bit_length_acpi_object_region_field_29824 bit_length acpi_object_region_field 0 29824 NULL
139444 +disable_so_native_read_tsc_fndecl_29825 native_read_tsc fndecl 0 29825 NULL
139445 +disable_so_sha256_base_do_update_fndecl_29849 sha256_base_do_update fndecl 3 29849 NULL
139446 +disable_so_timeout_ip_vs_conn_29852 timeout ip_vs_conn 0 29852 NULL
139447 +disable_so_conn_db_addr_hi_fcoe_kwqe_conn_offload2_29864 conn_db_addr_hi fcoe_kwqe_conn_offload2 0 29864 NULL
139448 +disable_so_timeout_type_timeout_parms_29877 timeout_type timeout_parms 0 29877 NULL
139449 +disable_so_arch_apei_filter_addr_vardecl_29884 arch_apei_filter_addr vardecl 0 29884 NULL
139450 +disable_so_crypto_shash_import_fndecl_29885 crypto_shash_import fndecl 0 29885 NULL
139451 +disable_so_ktime_get_ns_fndecl_29890 ktime_get_ns fndecl 0 29890 NULL
139452 +disable_so_store_scaling_min_freq_fndecl_29892 store_scaling_min_freq fndecl 0-3 29892 NULL
139453 +disable_so_nfsd_map_name_to_uid_fndecl_29920 nfsd_map_name_to_uid fndecl 0 29920 NULL
139454 +disable_so_min_interrupt_in_interval_vardecl_ldusb_c_29924 min_interrupt_in_interval vardecl_ldusb.c 0 29924 NULL
139455 +disable_so_cdv_intel_clock_fndecl_29931 cdv_intel_clock fndecl 1 29931 NULL
139456 +disable_so_di_mtime_efs_dinode_29934 di_mtime efs_dinode 0 29934 NULL nohasharray
139457 +disable_so_hpet_freq_vardecl_hpet_c_29934 hpet_freq vardecl_hpet.c 0 29934 &disable_so_di_mtime_efs_dinode_29934
139458 +disable_so_shash_async_setkey_fndecl_29939 shash_async_setkey fndecl 0-3 29939 NULL
139459 +disable_so_qs_btimelimit_fs_quota_statv_29943 qs_btimelimit fs_quota_statv 0 29943 NULL
139460 +disable_so_addr_mpr121_init_register_29945 addr mpr121_init_register 0 29945 NULL
139461 +disable_so_pixelclock_v4l2_bt_timings_29967 pixelclock v4l2_bt_timings 0 29967 NULL
139462 +disable_so_spi_imx_clkdiv_2_fndecl_29968 spi_imx_clkdiv_2 fndecl 1-2 29968 NULL
139463 +disable_so_ed_uuid_drbd_device_29970 ed_uuid drbd_device 0 29970 NULL
139464 +disable_so_timestamp_nfs_release_lockowner_data_29972 timestamp nfs_release_lockowner_data 0 29972 NULL
139465 +disable_so_smp_send_reschedule_smp_ops_29981 smp_send_reschedule smp_ops 1 29981 NULL
139466 +disable_so_lm3533_led_delay_set_fndecl_29984 lm3533_led_delay_set fndecl 0-2 29984 NULL
139467 +disable_so_rx_errors_rtnl_link_stats64_29988 rx_errors rtnl_link_stats64 0 29988 NULL
139468 +disable_so_fm10k_read_reg_fndecl_29989 fm10k_read_reg fndecl 0-2 29989 NULL
139469 +disable_so_timeout_jiffies_tifm_ms_29995 timeout_jiffies tifm_ms 0 29995 NULL nohasharray
139470 +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
139471 +disable_so_wait_on_bit_lock_fndecl_30009 wait_on_bit_lock fndecl 0 30009 NULL
139472 +disable_so_rx8025_get_clock_adjust_fndecl_30011 rx8025_get_clock_adjust fndecl 0 30011 NULL
139473 +disable_so_sem_ctime_sem_array_30014 sem_ctime sem_array 0 30014 NULL
139474 +disable_so_sleep_mask_bma180_part_info_30016 sleep_mask bma180_part_info 0 30016 NULL
139475 +disable_so_demod_address_zl10353_config_30017 demod_address zl10353_config 0 30017 NULL
139476 +disable_so_msr_amixer_desc_30027 msr amixer_desc 0 30027 NULL
139477 +disable_so_diolan_usb_transfer_fndecl_30033 diolan_usb_transfer fndecl 0 30033 NULL
139478 +disable_so_mlx4_get_slave_from_roce_gid_fndecl_30035 mlx4_get_slave_from_roce_gid fndecl 2 30035 NULL
139479 +disable_so_or51211_read_signal_strength_fndecl_30044 or51211_read_signal_strength fndecl 0 30044 NULL
139480 +disable_so_panel_power_up_delay_intel_dp_30048 panel_power_up_delay intel_dp 0 30048 NULL
139481 +disable_so_bit_bmove_fndecl_30057 bit_bmove fndecl 3-4-5-6-7-8 30057 NULL
139482 +disable_so_posix_cpu_clock_getres_fndecl_30065 posix_cpu_clock_getres fndecl 1 30065 NULL
139483 +disable_so_ktime_divns_fndecl_30067 ktime_divns fndecl 0-2 30067 NULL
139484 +disable_so_vsync_offset_hi_oaktrail_timing_info_30079 vsync_offset_hi oaktrail_timing_info 0 30079 NULL
139485 +disable_so_msr_host_kernel_gs_base_vcpu_vmx_30082 msr_host_kernel_gs_base vcpu_vmx 0 30082 NULL
139486 +disable_so_r6d_val_fc2580_freq_regs_30084 r6d_val fc2580_freq_regs 0 30084 NULL
139487 +disable_so_qlcnic_pci_get_crb_addr_2M_fndecl_30093 qlcnic_pci_get_crb_addr_2M fndecl 2 30093 NULL
139488 +disable_so_btrfs_commit_inode_delayed_items_fndecl_30109 btrfs_commit_inode_delayed_items fndecl 0 30109 NULL
139489 +disable_so_usec_delay_e1000_mbx_info_30132 usec_delay e1000_mbx_info 0 30132 NULL
139490 +disable_so_inet6_rtm_getaddr_fndecl_30136 inet6_rtm_getaddr fndecl 0 30136 NULL
139491 +disable_so_busaddr_reply_queue_buffer_30140 busaddr reply_queue_buffer 0 30140 NULL
139492 +disable_so_show_pwm_auto_spinup_time_fndecl_30149 show_pwm_auto_spinup_time fndecl 0 30149 NULL
139493 +disable_so_addr_rds_iovec_30161 addr rds_iovec 0 30161 NULL
139494 +disable_so___nlm_hash_addr4_fndecl_30164 __nlm_hash_addr4 fndecl 0 30164 NULL
139495 +disable_so_ctime_cs_msdos_dir_entry_30167 ctime_cs msdos_dir_entry 0 30167 NULL
139496 +disable_so_next_otg_timer_ci_hdrc_30174 next_otg_timer ci_hdrc 0 30174 NULL
139497 +disable_so_select_addr_qla82xx_md_entry_mux_30183 select_addr qla82xx_md_entry_mux 0 30183 NULL
139498 +disable_so_qi_itimelimit_xfs_quotainfo_30196 qi_itimelimit xfs_quotainfo 0 30196 NULL
139499 +disable_so_iowrite32_fndecl_30197 iowrite32 fndecl 1 30197 NULL
139500 +disable_so_hash_ipportip6_expire_fndecl_30205 hash_ipportip6_expire fndecl 4 30205 NULL
139501 +disable_so_argument_acpi_signal_fatal_info_30208 argument acpi_signal_fatal_info 0 30208 NULL
139502 +disable_so_btree_write_cache_pages_fndecl_30231 btree_write_cache_pages fndecl 0 30231 NULL
139503 +disable_so_clock_audioformat_30236 clock audioformat 0 30236 NULL
139504 +disable_so_to_retries_rpc_timeout_30265 to_retries rpc_timeout 0 30265 NULL
139505 +disable_so_last_moder_jiffies_mlx4_en_priv_30269 last_moder_jiffies mlx4_en_priv 0 30269 NULL nohasharray
139506 +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
139507 +disable_so_start_empty_time_cfqg_stats_30276 start_empty_time cfqg_stats 0 30276 NULL nohasharray
139508 +disable_so_i2c_addr_dib7000m_state_30276 i2c_addr dib7000m_state 0 30276 &disable_so_start_empty_time_cfqg_stats_30276
139509 +disable_so_ext_phy_addr_amd8111e_priv_30286 ext_phy_addr amd8111e_priv 0 30286 NULL
139510 +disable_so___account_cfs_rq_runtime_fndecl_30291 __account_cfs_rq_runtime fndecl 2 30291 NULL
139511 +disable_so_snd_pcm_delay_fndecl_30298 snd_pcm_delay fndecl 0 30298 NULL
139512 +disable_so_lpfc_cr_delay_store_fndecl_30310 lpfc_cr_delay_store fndecl 0 30310 NULL
139513 +disable_so_uartlite_outbe32_fndecl_30324 uartlite_outbe32 fndecl 1 30324 NULL
139514 +disable_so_intel_runtime_resume_fndecl_30334 intel_runtime_resume fndecl 0 30334 NULL
139515 +disable_so_hv_tsc_page_kvm_arch_30336 hv_tsc_page kvm_arch 0 30336 NULL
139516 +disable_so_snprintf_int_array_fndecl_30344 snprintf_int_array fndecl 2 30344 NULL
139517 +disable_so___hw_addr_sync_one_fndecl_30350 __hw_addr_sync_one fndecl 0-3 30350 NULL
139518 +disable_so_tuner_addr_em28xx_board_30367 tuner_addr em28xx_board 0 30367 NULL
139519 +disable_so_stat_params_addr_hi_fcoe_kwqe_stat_30370 stat_params_addr_hi fcoe_kwqe_stat 0 30370 NULL
139520 +disable_so_tv_hsync_delay2_nv04_crtc_reg_30375 tv_hsync_delay2 nv04_crtc_reg 0 30375 NULL
139521 +disable_so_wlc_phy_table_addr_fndecl_30378 wlc_phy_table_addr fndecl 2-3-4-5-6 30378 NULL
139522 +disable_so_rsa_setkey_fndecl_30386 rsa_setkey fndecl 3 30386 NULL
139523 +disable_so_bcma_pmu_get_alp_clock_fndecl_30397 bcma_pmu_get_alp_clock fndecl 0 30397 NULL
139524 +disable_so_timeout_nft_set_30398 timeout nft_set 0 30398 NULL
139525 +disable_so_cm_create_timewait_info_fndecl_30403 cm_create_timewait_info fndecl 1 30403 NULL
139526 +disable_so_start_time_bfa_diag_dport_result_s_30404 start_time bfa_diag_dport_result_s 0 30404 NULL
139527 +disable_so_fw_schedule_bm_work_fndecl_30422 fw_schedule_bm_work fndecl 2 30422 NULL
139528 +disable_so_xs_get_random_port_fndecl_30424 xs_get_random_port fndecl 0 30424 NULL
139529 +disable_so_ba0_addr_snd_cs46xx_30426 ba0_addr snd_cs46xx 0 30426 NULL
139530 +disable_so_rx_interframe_timeout_wil6210_priv_30430 rx_interframe_timeout wil6210_priv 0 30430 NULL
139531 +disable_so_xfs_uuid_mount_fndecl_30439 xfs_uuid_mount fndecl 0 30439 NULL nohasharray
139532 +disable_so_avtab_hash_fndecl_30439 avtab_hash fndecl 0-2 30439 &disable_so_xfs_uuid_mount_fndecl_30439
139533 +disable_so_snd_seq_queue_timer_close_fndecl_30450 snd_seq_queue_timer_close fndecl 1 30450 NULL nohasharray
139534 +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
139535 +disable_so_powerdown_delay_divider_sta350_platform_data_30459 powerdown_delay_divider sta350_platform_data 0 30459 NULL nohasharray
139536 +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
139537 +disable_so__regulator_get_enable_time_fndecl_30467 _regulator_get_enable_time fndecl 0 30467 NULL
139538 +disable_so_hpet_set_alarm_time_fndecl_30469 hpet_set_alarm_time fndecl 3-2-1 30469 NULL
139539 +disable_so_ctime_nsec_ubifs_ino_node_30480 ctime_nsec ubifs_ino_node 0 30480 NULL
139540 +disable_so_ocfb_writereg_fndecl_30484 ocfb_writereg fndecl 3 30484 NULL
139541 +disable_so_i2c_smbus_read_word_data_fndecl_30505 i2c_smbus_read_word_data fndecl 0-2 30505 NULL nohasharray
139542 +disable_so_r13_kvm_regs_30505 r13 kvm_regs 0 30505 &disable_so_i2c_smbus_read_word_data_fndecl_30505
139543 +disable_so_cb_gsc_addr_30507 cb gsc_addr 0 30507 NULL
139544 +disable_so_freq_mwifiex_chan_freq_power_30518 freq mwifiex_chan_freq_power 0 30518 NULL
139545 +disable_so_fflp_hash_clear_fndecl_30528 fflp_hash_clear fndecl 0 30528 NULL
139546 +disable_so_time_stamp_ixgb_buffer_30530 time_stamp ixgb_buffer 0 30530 NULL
139547 +disable_so_lbs_sleepparams_read_fndecl_30539 lbs_sleepparams_read fndecl 3-0 30539 NULL
139548 +disable_so_extract_freq_fndecl_30555 extract_freq fndecl 0-1 30555 NULL
139549 +disable_so_ndiv_int_pmu1_plltab_entry_30559 ndiv_int pmu1_plltab_entry 0 30559 NULL
139550 +disable_so_u1_timeout_store_fndecl_30569 u1_timeout_store fndecl 0-4 30569 NULL
139551 +disable_so_queue_working_time_show_fndecl_30574 queue_working_time_show fndecl 0 30574 NULL
139552 +disable_so_addr_atiixp_30579 addr atiixp 0 30579 NULL
139553 +disable_so_c67x00_ll_write_mem_le16_fndecl_30584 c67x00_ll_write_mem_le16 fndecl 2-4 30584 NULL
139554 +disable_so_demod_address_atbm8830_config_30586 demod_address atbm8830_config 0 30586 NULL
139555 +disable_so_crypto_hash_digest_fndecl_30590 crypto_hash_digest fndecl 0-3 30590 NULL
139556 +disable_so_addr_filter__MGSL_PARAMS_30592 addr_filter _MGSL_PARAMS 0 30592 NULL
139557 +disable_so_clock_khz_dib0070_config_30609 clock_khz dib0070_config 0 30609 NULL
139558 +disable_so_sha1_mb_final_fndecl_30610 sha1_mb_final fndecl 0 30610 NULL
139559 +disable_so_tw_rcv_nxt_tcp_timewait_sock_30612 tw_rcv_nxt tcp_timewait_sock 0 30612 NULL
139560 +disable_so_xtal_freq_stb0899_config_30613 xtal_freq stb0899_config 0 30613 NULL
139561 +disable_so_di_ctime_qnx6_inode_entry_30614 di_ctime qnx6_inode_entry 0 30614 NULL
139562 +disable_so_start_time_lpfc_scsi_buf_30621 start_time lpfc_scsi_buf 0 30621 NULL
139563 +disable_so_xfs_btree_log_keys_fndecl_30625 xfs_btree_log_keys fndecl 3-4 30625 NULL
139564 +disable_so_pcpu_chunk_addr_fndecl_30628 pcpu_chunk_addr fndecl 0-2-3 30628 NULL
139565 +disable_so_day_timestamp_30633 day timestamp 0 30633 NULL
139566 +disable_so_rds_cong_from_addr_fndecl_30634 rds_cong_from_addr fndecl 1 30634 NULL
139567 +disable_so_tx_dma_addr_smsc9420_pdata_30649 tx_dma_addr smsc9420_pdata 0 30649 NULL
139568 +disable_so_xact_addr_filt_port_info_30664 xact_addr_filt port_info 0 30664 NULL
139569 +disable_so_slot_time_rtl8180_priv_30669 slot_time rtl8180_priv 0 30669 NULL
139570 +disable_so_store_guid_fndecl_30675 store_guid fndecl 0 30675 NULL
139571 +disable_so_input_addr_to_csrow_fndecl_30677 input_addr_to_csrow fndecl 0-2 30677 NULL
139572 +disable_so_sq_read_base_addr_a1_btmrvl_sdio_card_reg_30692 sq_read_base_addr_a1 btmrvl_sdio_card_reg 0 30692 NULL
139573 +disable_so_fq_codel_hash_fndecl_30698 fq_codel_hash fndecl 0 30698 NULL
139574 +disable_so_btrfs_add_delayed_extent_op_fndecl_30699 btrfs_add_delayed_extent_op fndecl 0-3-4 30699 NULL
139575 +disable_so_enabled_hrtimer_events_fotg210_hcd_30705 enabled_hrtimer_events fotg210_hcd 0 30705 NULL
139576 +disable_so_shift_sm501_clock_30710 shift sm501_clock 0 30710 NULL
139577 +disable_so_tov_in_jiffies_tpacket_kbdq_core_30716 tov_in_jiffies tpacket_kbdq_core 0 30716 NULL nohasharray
139578 +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
139579 +disable_so_fill_addr_fndecl_30730 fill_addr fndecl 0-3-4-6 30730 NULL
139580 +disable_so_policy_hash_bysel_fndecl_30767 policy_hash_bysel fndecl 3 30767 NULL
139581 +disable_so_flags_to_set_btrfs_delayed_extent_op_30771 flags_to_set btrfs_delayed_extent_op 0 30771 NULL
139582 +disable_so_blk_mq_alloc_bitmap_fndecl_30774 blk_mq_alloc_bitmap fndecl 2 30774 NULL
139583 +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
139584 +disable_so_pm_runtime_get_fndecl_30787 pm_runtime_get fndecl 0 30787 NULL
139585 +disable_so_dln2_spi_runtime_suspend_fndecl_30789 dln2_spi_runtime_suspend fndecl 0 30789 NULL
139586 +disable_so_rq_page_table_addr_hi_iscsi_kwqe_conn_offload2_30790 rq_page_table_addr_hi iscsi_kwqe_conn_offload2 0 30790 NULL
139587 +disable_so_crypto_authenc_esn_decrypt_fndecl_30793 crypto_authenc_esn_decrypt fndecl 0 30793 NULL
139588 +disable_so_brcmf_cfg80211_wait_vif_event_timeout_fndecl_30794 brcmf_cfg80211_wait_vif_event_timeout fndecl 3-0 30794 NULL
139589 +disable_so_sctp_getsockopt_nodelay_fndecl_30795 sctp_getsockopt_nodelay fndecl 0 30795 NULL nohasharray
139590 +disable_so_sll_pkttype_sockaddr_ll_30795 sll_pkttype sockaddr_ll 0 30795 &disable_so_sctp_getsockopt_nodelay_fndecl_30795
139591 +disable_so_txfunaddr_musb_csr_regs_30797 txfunaddr musb_csr_regs 0 30797 NULL
139592 +disable_so_hash_phys_wd719x_30798 hash_phys wd719x 0 30798 NULL
139593 +disable_so_io_base_address_info_30800 io_base address_info 0 30800 NULL
139594 +disable_so_dummy_buffer_addr_lo_iscsi_kwqe_init1_30804 dummy_buffer_addr_lo iscsi_kwqe_init1 0 30804 NULL
139595 +disable_so_root_btrfs_delayed_tree_ref_30811 root btrfs_delayed_tree_ref 0 30811 NULL nohasharray
139596 +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
139597 +disable_so_mmc_test_random_write_perf_fndecl_30814 mmc_test_random_write_perf fndecl 0 30814 NULL
139598 +disable_so_block_num_ib_sa_guidinfo_rec_30816 block_num ib_sa_guidinfo_rec 0 30816 NULL
139599 +disable_so_decode_attr_time_metadata_fndecl_30823 decode_attr_time_metadata fndecl 0 30823 NULL nohasharray
139600 +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
139601 +disable_so_first_frag_time_ieee80211_fragment_entry_30835 first_frag_time ieee80211_fragment_entry 0 30835 NULL nohasharray
139602 +disable_so_ccp_crypto_success_fndecl_30835 ccp_crypto_success fndecl 1 30835 &disable_so_first_frag_time_ieee80211_fragment_entry_30835 nohasharray
139603 +disable_so_recent_entry_hash4_fndecl_30835 recent_entry_hash4 fndecl 0 30835 &disable_so_ccp_crypto_success_fndecl_30835
139604 +disable_so_rp0_freq_intel_gen6_power_mgmt_30837 rp0_freq intel_gen6_power_mgmt 0 30837 NULL
139605 +disable_so_dm_btree_walk_fndecl_30840 dm_btree_walk fndecl 0-2 30840 NULL
139606 +disable_so_hid_descriptor_address_i2c_hid_platform_data_30846 hid_descriptor_address i2c_hid_platform_data 0 30846 NULL
139607 +disable_so_address_acpi_mcfg_allocation_30855 address acpi_mcfg_allocation 0 30855 NULL
139608 +disable_so_hpfs_truncate_btree_fndecl_30857 hpfs_truncate_btree fndecl 2-4 30857 NULL
139609 +disable_so_timestamp_transaction_30860 timestamp transaction 0 30860 NULL
139610 +disable_so_crypto_pcbc_encrypt_inplace_fndecl_30862 crypto_pcbc_encrypt_inplace fndecl 0 30862 NULL
139611 +disable_so_part_time_mmc_ext_csd_30871 part_time mmc_ext_csd 0 30871 NULL
139612 +disable_so_vpd_paddr_high_lpfc_mbx_read_rev_30896 vpd_paddr_high lpfc_mbx_read_rev 0 30896 NULL
139613 +disable_so_addr_nvkm_fifo_chan_30902 addr nvkm_fifo_chan 0 30902 NULL
139614 +disable_so_crypto_register_algs_fndecl_30905 crypto_register_algs fndecl 0 30905 NULL nohasharray
139615 +disable_so_dhash_entries_vardecl_dcache_c_30905 dhash_entries vardecl_dcache.c 0 30905 &disable_so_crypto_register_algs_fndecl_30905
139616 +disable_so_bank_base_capture_addr_snd_ymfpci_30915 bank_base_capture_addr snd_ymfpci 0 30915 NULL
139617 +disable_so_t2_hash_tbl_addr_hi_fcoe_kwqe_init2_30918 t2_hash_tbl_addr_hi fcoe_kwqe_init2 0 30918 NULL nohasharray
139618 +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
139619 +disable_so_cpufreq_set_fndecl_30921 cpufreq_set fndecl 2 30921 NULL
139620 +disable_so_phys_addr_sge_fl_30927 phys_addr sge_fl 0 30927 NULL
139621 +disable_so_brcms_c_calc_ack_time_fndecl_30936 brcms_c_calc_ack_time fndecl 0-2 30936 NULL
139622 +disable_so_limit_gma_clock_funcs_30938 limit gma_clock_funcs 2 30938 NULL nohasharray
139623 +disable_so_xenbus_printf_fndecl_30938 xenbus_printf fndecl 0 30938 &disable_so_limit_gma_clock_funcs_30938
139624 +disable_so_qlcnic_decode_crb_addr_fndecl_30939 qlcnic_decode_crb_addr fndecl 0-1 30939 NULL
139625 +disable_so_last_sleep_jiffies_rtl_ps_ctl_30947 last_sleep_jiffies rtl_ps_ctl 0 30947 NULL nohasharray
139626 +disable_so___virtio64_to_cpu_fndecl_30947 __virtio64_to_cpu fndecl 0 30947 &disable_so_last_sleep_jiffies_rtl_ps_ctl_30947
139627 +disable_so_do_one_ahash_op_fndecl_30974 do_one_ahash_op fndecl 0-2 30974 NULL
139628 +disable_so_dev_bus_addr_gnttab_map_grant_ref_30975 dev_bus_addr gnttab_map_grant_ref 0 30975 NULL
139629 +disable_so_sctp_getsockopt_delayed_ack_fndecl_30979 sctp_getsockopt_delayed_ack fndecl 2-0 30979 NULL
139630 +disable_so_mclk_div_cfb_info_30983 mclk_div cfb_info 0 30983 NULL
139631 +disable_so_HYPERVISOR_update_va_mapping_fndecl_30985 HYPERVISOR_update_va_mapping fndecl 1 30985 NULL
139632 +disable_so_xfrm_addr_any_fndecl_30992 xfrm_addr_any fndecl 2 30992 NULL
139633 +disable_so_cyapa_gen5_deep_sleep_fndecl_30993 cyapa_gen5_deep_sleep fndecl 0 30993 NULL
139634 +disable_so_addr_unlock1_cfi_private_30996 addr_unlock1 cfi_private 0 30996 NULL
139635 +disable_so_adc_cell_ti_tscadc_dev_31010 adc_cell ti_tscadc_dev 0 31010 NULL
139636 +disable_so_vpe_runtime_get_fndecl_31015 vpe_runtime_get fndecl 0 31015 NULL
139637 +disable_so_crypto_cts_module_init_fndecl_31019 crypto_cts_module_init fndecl 0 31019 NULL
139638 +disable_so_show_fan_stop_time_fndecl_31023 show_fan_stop_time fndecl 0 31023 NULL
139639 +disable_so_addr_bnx2_fw_file_section_31025 addr bnx2_fw_file_section 0 31025 NULL
139640 +disable_so_seg_addr_xhci_erst_entry_31037 seg_addr xhci_erst_entry 0 31037 NULL
139641 +disable_so_fb_get_hblank_by_hfreq_fndecl_31039 fb_get_hblank_by_hfreq fndecl 0-1-2 31039 NULL
139642 +disable_so_addr_hif_scatter_req_31042 addr hif_scatter_req 0 31042 NULL
139643 +disable_so_sg_page_iter_dma_address_fndecl_31047 sg_page_iter_dma_address fndecl 0 31047 NULL
139644 +disable_so_btrfsic_block_hashtable_lookup_fndecl_31074 btrfsic_block_hashtable_lookup fndecl 2 31074 NULL
139645 +disable_so_tm6000_set_reg_fndecl_31090 tm6000_set_reg fndecl 0-3-4 31090 NULL
139646 +disable_so_sense_buf_phys_addr_lo_megasas_io_frame_31098 sense_buf_phys_addr_lo megasas_io_frame 0 31098 NULL
139647 +disable_so_batadv_iv_ogm_emit_send_time_fndecl_31100 batadv_iv_ogm_emit_send_time fndecl 0 31100 NULL
139648 +disable_so_pcf8563_rtc_set_time_fndecl_31101 pcf8563_rtc_set_time fndecl 0 31101 NULL
139649 +disable_so_s_extPosition_udf_bitmap_31104 s_extPosition udf_bitmap 0 31104 NULL
139650 +disable_so_base_io_addr__hp_host_info_31105 base_io_addr _hp_host_info 0 31105 NULL
139651 +disable_so_tsi721_omsg_interrupt_disable_fndecl_31108 tsi721_omsg_interrupt_disable fndecl 3-2 31108 NULL
139652 +disable_so_ac_etime_acct_v3_31115 ac_etime acct_v3 0 31115 NULL
139653 +disable_so_io_bitmap_a_vmcs12_31120 io_bitmap_a vmcs12 0 31120 NULL
139654 +disable_so_vddci_radeon_clock_and_voltage_limits_31124 vddci radeon_clock_and_voltage_limits 0 31124 NULL
139655 +disable_so_format_snd_pcm_runtime_31130 format snd_pcm_runtime 0 31130 NULL
139656 +disable_so_ds3232_set_time_fndecl_31132 ds3232_set_time fndecl 0 31132 NULL
139657 +disable_so_mlx4_bitmap_init_fndecl_31138 mlx4_bitmap_init fndecl 0-2-3-4-5 31138 NULL
139658 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_31141 nfs4_xdr_dec_get_lease_time fndecl 0 31141 NULL
139659 +disable_so_active_ata_timing_31146 active ata_timing 0 31146 NULL
139660 +disable_so_cpuidle_register_driver_fndecl_31155 cpuidle_register_driver fndecl 0 31155 NULL
139661 +disable_so_sha1_ssse3_mod_init_fndecl_31158 sha1_ssse3_mod_init fndecl 0 31158 NULL
139662 +disable_so_trust_timeout_wusbhc_31165 trust_timeout wusbhc 0 31165 NULL
139663 +disable_so___crypto_memneq_generic_fndecl_31174 __crypto_memneq_generic fndecl 3 31174 NULL
139664 +disable_so_hash_ipportip4_expire_fndecl_31188 hash_ipportip4_expire fndecl 4 31188 NULL
139665 +disable_so_timestamp_sniffed_purge_batadv_priv_nc_31190 timestamp_sniffed_purge batadv_priv_nc 0 31190 NULL
139666 +disable_so_i915_min_freq_get_fndecl_31193 i915_min_freq_get fndecl 0 31193 NULL
139667 +disable_so_max_scan_time_wmi_start_scan_arg_31206 max_scan_time wmi_start_scan_arg 0 31206 NULL nohasharray
139668 +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
139669 +disable_so_adis16136_read_frequency_fndecl_31213 adis16136_read_frequency fndecl 0 31213 NULL
139670 +disable_so_dce_v11_0_crtc_set_base_atomic_fndecl_31215 dce_v11_0_crtc_set_base_atomic fndecl 0 31215 NULL
139671 +disable_so_clock2alarm_fndecl_31223 clock2alarm fndecl 1 31223 NULL
139672 +disable_so_timeout_wait_bit_key_31247 timeout wait_bit_key 0 31247 NULL
139673 +disable_so_time_offset_fat_mount_options_31254 time_offset fat_mount_options 0 31254 NULL
139674 +disable_so_max3421_set_address_fndecl_31258 max3421_set_address fndecl 3 31258 NULL
139675 +disable_so_tick_gtod_sched_clock_data_31262 tick_gtod sched_clock_data 0 31262 NULL
139676 +disable_so_freq_usb_usbvision_31263 freq usb_usbvision 0 31263 NULL
139677 +disable_so_address_high_sbp2_target_31266 address_high sbp2_target 0 31266 NULL nohasharray
139678 +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
139679 +disable_so_rx8581_rtc_read_time_fndecl_31271 rx8581_rtc_read_time fndecl 0 31271 NULL
139680 +disable_so_address_acpi_madt_io_apic_31284 address acpi_madt_io_apic 0 31284 NULL
139681 +disable_so_qce_setup_regs_ahash_fndecl_31290 qce_setup_regs_ahash fndecl 0 31290 NULL
139682 +disable_so_freq_offset_khz_uhf_dib0070_config_31304 freq_offset_khz_uhf dib0070_config 0 31304 NULL
139683 +disable_so_dmaaddr_lanai_buffer_31308 dmaaddr lanai_buffer 0 31308 NULL
139684 +disable_so_selinux_mmap_addr_fndecl_31313 selinux_mmap_addr fndecl 0 31313 NULL
139685 +disable_so_wt_timeout_st21nfcb_se_info_31334 wt_timeout st21nfcb_se_info 0 31334 NULL
139686 +disable_so_baseaddr_h_mvumi_sgl_31335 baseaddr_h mvumi_sgl 0 31335 NULL
139687 +disable_so_mmc_send_relative_addr_fndecl_31338 mmc_send_relative_addr fndecl 0 31338 NULL nohasharray
139688 +disable_so_ufs_bitmap_search_fndecl_31338 ufs_bitmap_search fndecl 0-3-4 31338 &disable_so_mmc_send_relative_addr_fndecl_31338 nohasharray
139689 +disable_so_cur_tsc_offset_kvm_arch_31338 cur_tsc_offset kvm_arch 0 31338 &disable_so_ufs_bitmap_search_fndecl_31338
139690 +disable_so_xfs_btree_check_lptr_fndecl_31339 xfs_btree_check_lptr fndecl 0 31339 NULL
139691 +disable_so_dynamic_ps_timeout_read_fndecl_31341 dynamic_ps_timeout_read fndecl 3-0 31341 NULL
139692 +disable_so_ret_ccp_crypto_cmd_31344 ret ccp_crypto_cmd 0 31344 NULL
139693 +disable_so_physical_mem_addr_wl1251_31345 physical_mem_addr wl1251 0 31345 NULL
139694 +disable_so_schedule_work_on_fndecl_31361 schedule_work_on fndecl 1 31361 NULL
139695 +disable_so_es_tss_segment_32_31367 es tss_segment_32 0 31367 NULL
139696 +disable_so_link_schedule_user_fndecl_31379 link_schedule_user fndecl 0 31379 NULL
139697 +disable_so_vsock_addr_cast_fndecl_31386 vsock_addr_cast fndecl 2 31386 NULL
139698 +disable_so_debug_dma_sync_single_for_cpu_fndecl_31387 debug_dma_sync_single_for_cpu fndecl 3-2 31387 NULL
139699 +disable_so_num_bytes_btrfs_delayed_ref_node_31390 num_bytes btrfs_delayed_ref_node 0 31390 NULL
139700 +disable_so_clockevents_config_fndecl_31391 clockevents_config fndecl 2 31391 NULL nohasharray
139701 +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
139702 +disable_so_kstrtol_from_user_fndecl_31403 kstrtol_from_user fndecl 0-2 31403 NULL
139703 +disable_so_req_timeout_ppp_31406 req_timeout ppp 0 31406 NULL
139704 +disable_so_recvsignalpower_rtl_stats_31407 recvsignalpower rtl_stats 0 31407 NULL
139705 +disable_so_gr_log_signal_fndecl_31408 gr_log_signal fndecl 1 31408 NULL
139706 +disable_so_round_jiffies_up_relative_fndecl_31409 round_jiffies_up_relative fndecl 1-0 31409 NULL
139707 +disable_so_nr_cs5535_mfgpt_timer_31410 nr cs5535_mfgpt_timer 0 31410 NULL
139708 +disable_so_af9005_fe_read_signal_strength_fndecl_31416 af9005_fe_read_signal_strength fndecl 0 31416 NULL nohasharray
139709 +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
139710 +disable_so_usnic_uiom_interval_tree_subtree_search_fndecl_31422 usnic_uiom_interval_tree_subtree_search fndecl 2-3 31422 NULL nohasharray
139711 +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
139712 +disable_so_rxrpc_max_call_lifetime_vardecl_31433 rxrpc_max_call_lifetime vardecl 0 31433 NULL nohasharray
139713 +disable_so_di_gid_logfs_disk_inode_31433 di_gid logfs_disk_inode 0 31433 &disable_so_rxrpc_max_call_lifetime_vardecl_31433
139714 +disable_so_ds1374_wdt_settimeout_fndecl_31434 ds1374_wdt_settimeout fndecl 1-0 31434 NULL
139715 +disable_so_tei_sockaddr_mISDN_31438 tei sockaddr_mISDN 0 31438 NULL
139716 +disable_so_bs_sleepduration_ath9k_beacon_state_31443 bs_sleepduration ath9k_beacon_state 0 31443 NULL
139717 +disable_so_pci_bus_write_config_word_fndecl_31447 pci_bus_write_config_word fndecl 0-2-3-4 31447 NULL
139718 +disable_so_cra_ctxsize_crypto_alg_31451 cra_ctxsize crypto_alg 0 31451 NULL
139719 +disable_so_dmable_fw_paddr_sst_fw_31454 dmable_fw_paddr sst_fw 0 31454 NULL
139720 +disable_so_nsec_btrfs_timespec_31463 nsec btrfs_timespec 0 31463 NULL nohasharray
139721 +disable_so_set_timeout_fndecl_31463 set_timeout fndecl 2-0 31463 &disable_so_nsec_btrfs_timespec_31463
139722 +disable_so_ima_calc_field_array_hash_tfm_fndecl_31467 ima_calc_field_array_hash_tfm fndecl 0-3 31467 NULL
139723 +disable_so_bond_eth_hash_fndecl_31472 bond_eth_hash fndecl 0 31472 NULL
139724 +disable_so_task_setscheduler_security_operations_31479 task_setscheduler security_operations 0 31479 NULL
139725 +disable_so_cs_tss_segment_32_31480 cs tss_segment_32 0 31480 NULL
139726 +disable_so_intr_gen_timer_thresh_ath_hw_31491 intr_gen_timer_thresh ath_hw 0 31491 NULL nohasharray
139727 +disable_so_nilfs_btree_find_near_fndecl_31491 nilfs_btree_find_near fndecl 0 31491 &disable_so_intr_gen_timer_thresh_ath_hw_31491
139728 +disable_so_sta_last_ack_signal_read_fndecl_31492 sta_last_ack_signal_read fndecl 3 31492 NULL
139729 +disable_so___uwb_dev_addr_assigned_fndecl_31493 __uwb_dev_addr_assigned fndecl 0 31493 NULL
139730 +disable_so_uuid_show_fndecl_31494 uuid_show fndecl 0 31494 NULL
139731 +disable_so_elan_sleep_fndecl_31502 elan_sleep fndecl 0 31502 NULL
139732 +disable_so_setkey_crypto_aead_31507 setkey crypto_aead 0-3 31507 NULL
139733 +disable_so_ebitmap_netlbl_import_fndecl_31508 ebitmap_netlbl_import fndecl 0 31508 NULL
139734 +disable_so_ccp_aes_rfc3686_decrypt_fndecl_31513 ccp_aes_rfc3686_decrypt fndecl 0 31513 NULL
139735 +disable_so_timeout_map_r8a66597_31517 timeout_map r8a66597 0 31517 NULL
139736 +disable_so_vga_switcheroo_runtime_resume_hdmi_audio_fndecl_31521 vga_switcheroo_runtime_resume_hdmi_audio fndecl 0 31521 NULL nohasharray
139737 +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
139738 +disable_so_hashbin_insert_fndecl_31527 hashbin_insert fndecl 3 31527 NULL
139739 +disable_so_reset_jiffies_fw_card_31535 reset_jiffies fw_card 0 31535 NULL
139740 +disable_so_addr_gk20a_instmem_priv_31544 addr gk20a_instmem_priv 0 31544 NULL
139741 +disable_so_vringh32_to_cpu_fndecl_31546 vringh32_to_cpu fndecl 0-2 31546 NULL
139742 +disable_so_qat_hash_alg_qat_alg_aead_ctx_31550 qat_hash_alg qat_alg_aead_ctx 0 31550 NULL
139743 +disable_so_timeout_move_vardecl_ch_c_31551 timeout_move vardecl_ch.c 0 31551 NULL
139744 +disable_so_iowrite8_rep_fndecl_31565 iowrite8_rep fndecl 3 31565 NULL
139745 +disable_so_omfs_hash_fndecl_31572 omfs_hash fndecl 0-3 31572 NULL
139746 +disable_so_ltc3589_set_ramp_delay_fndecl_31580 ltc3589_set_ramp_delay fndecl 0 31580 NULL
139747 +disable_so_wants_signal_fndecl_31583 wants_signal fndecl 1 31583 NULL
139748 +disable_so_set_sig_addr_fndecl_31588 set_sig_addr fndecl 4 31588 NULL
139749 +disable_so_udelay_i2c_algo_bit_data_31597 udelay i2c_algo_bit_data 0 31597 NULL
139750 +disable_so_wlapi_add_timer_fndecl_31598 wlapi_add_timer fndecl 2 31598 NULL
139751 +disable_so_gid_min_xt_owner_match_info_31604 gid_min xt_owner_match_info 0 31604 NULL
139752 +disable_so_mmap_addr_security_operations_31609 mmap_addr security_operations 0-1 31609 NULL
139753 +disable_so_cache_time_vardecl_battery_c_31620 cache_time vardecl_battery.c 0 31620 NULL
139754 +disable_so_idletimer_tg_checkentry_fndecl_31633 idletimer_tg_checkentry fndecl 0 31633 NULL
139755 +disable_so_sha256_ssse3_finup_fndecl_31637 sha256_ssse3_finup fndecl 3 31637 NULL
139756 +disable_so_f1x_translate_sysaddr_to_cs_fndecl_31647 f1x_translate_sysaddr_to_cs fndecl 0-2 31647 NULL
139757 +disable_so_partial_name_hash_fndecl_31651 partial_name_hash fndecl 0-1-2 31651 NULL
139758 +disable_so_edx_v86_regs_31655 edx v86_regs 0 31655 NULL
139759 +disable_so_kdb_printf_fndecl_31658 kdb_printf fndecl 0 31658 NULL
139760 +disable_so_voltage_response_time_radeon_dpm_31671 voltage_response_time radeon_dpm 0 31671 NULL
139761 +disable_so_ufshcd_pci_runtime_resume_fndecl_31682 ufshcd_pci_runtime_resume fndecl 0 31682 NULL
139762 +disable_so_trace_clock_jiffies_fndecl_31684 trace_clock_jiffies fndecl 0 31684 NULL
139763 +disable_so_crypto_rfc4543_crypt_fndecl_31691 crypto_rfc4543_crypt fndecl 0 31691 NULL
139764 +disable_so_qp_bitmap_ntb_transport_ctx_31692 qp_bitmap ntb_transport_ctx 0 31692 NULL
139765 +disable_so_mclk_radeon_clock_and_voltage_limits_31701 mclk radeon_clock_and_voltage_limits 0 31701 NULL
139766 +disable_so_hash_dev_block_bits_dm_verity_31709 hash_dev_block_bits dm_verity 0 31709 NULL
139767 +disable_so_crypto_gcm_init_crypt_fndecl_31718 crypto_gcm_init_crypt fndecl 2 31718 NULL
139768 +disable_so_addr_ahd_dma_seg_31719 addr ahd_dma_seg 0 31719 NULL
139769 +disable_so_rx_frame_ath_cycle_counters_31739 rx_frame ath_cycle_counters 0 31739 NULL
139770 +disable_so_nadc_aic32x4_rate_divs_31741 nadc aic32x4_rate_divs 0 31741 NULL
139771 +disable_so_gpu_addr_r600_ih_31749 gpu_addr r600_ih 0 31749 NULL
139772 +disable_so_acpi_ex_system_do_sleep_fndecl_31750 acpi_ex_system_do_sleep fndecl 0-1 31750 NULL
139773 +disable_so_bigdirindaddr_adfs_bigdirentry_31757 bigdirindaddr adfs_bigdirentry 0 31757 NULL
139774 +disable_so_vm_entry_msr_load_addr_vmcs12_31781 vm_entry_msr_load_addr vmcs12 0 31781 NULL
139775 +disable_so_qce_ahash_async_req_handle_fndecl_31785 qce_ahash_async_req_handle fndecl 0 31785 NULL
139776 +disable_so_ecryptfs_calculate_md5_fndecl_31787 ecryptfs_calculate_md5 fndecl 0-4 31787 NULL
139777 +disable_so_pixclock_fb_var_screeninfo_31790 pixclock fb_var_screeninfo 0 31790 NULL
139778 +disable_so_from_kgid_munged_fndecl_31791 from_kgid_munged fndecl 0 31791 NULL
139779 +disable_so_memsize_bitmap_ipmac_31792 memsize bitmap_ipmac 0 31792 NULL
139780 +disable_so_ctxsize_crypto_type_31795 ctxsize crypto_type 0 31795 NULL
139781 +disable_so_fpage_dma_addr_genwqe_sgl_31796 fpage_dma_addr genwqe_sgl 0 31796 NULL
139782 +disable_so_qib_hol_timeout_ms_vardecl_qib_tx_c_31801 qib_hol_timeout_ms vardecl_qib_tx.c 0 31801 NULL
139783 +disable_so_ping_timeout_iscsi_conn_31802 ping_timeout iscsi_conn 0 31802 NULL
139784 +disable_so_rpcauth_key_timeout_notify_fndecl_31805 rpcauth_key_timeout_notify fndecl 0 31805 NULL
139785 +disable_so_snd_timer_open_fndecl_31807 snd_timer_open fndecl 4 31807 NULL
139786 +disable_so_it_overrun_last_k_itimer_31814 it_overrun_last k_itimer 0 31814 NULL
139787 +disable_so_mapaddr_rocker_dma_ring_info_31819 mapaddr rocker_dma_ring_info 0 31819 NULL
139788 +disable_so_disarm_req_delay_fndecl_31821 disarm_req_delay fndecl 0 31821 NULL
139789 +disable_so_bus_addr_mvumi_res_31827 bus_addr mvumi_res 0 31827 NULL nohasharray
139790 +disable_so_dev_sas_addr_mvs_phy_31827 dev_sas_addr mvs_phy 0 31827 &disable_so_bus_addr_mvumi_res_31827 nohasharray
139791 +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
139792 +disable_so_lzo1x_decompress_safe_fndecl_31834 lzo1x_decompress_safe fndecl 2 31834 NULL
139793 +disable_so_spte_is_bit_cleared_fndecl_31843 spte_is_bit_cleared fndecl 2-3 31843 NULL
139794 +disable_so_mclk_radeon_pm_clock_info_31848 mclk radeon_pm_clock_info 0 31848 NULL
139795 +disable_so_timer_expires_wakeup_source_31849 timer_expires wakeup_source 0 31849 NULL
139796 +disable_so_si_populate_memory_timing_parameters_fndecl_31852 si_populate_memory_timing_parameters fndecl 0 31852 NULL
139797 +disable_so_offset_timex_31854 offset timex 0 31854 NULL
139798 +disable_so_tuner_addr_tvcard_31862 tuner_addr tvcard 0 31862 NULL
139799 +disable_so_mask_and_set_register_interruptible_fndecl_31871 mask_and_set_register_interruptible fndecl 0 31871 NULL
139800 +disable_so_generic_set_freq_fndecl_31881 generic_set_freq fndecl 0-2-3 31881 NULL
139801 +disable_so_quota_iwl_time_quota_data_31890 quota iwl_time_quota_data 0 31890 NULL
139802 +disable_so_timer_set_at_tlan_priv_31902 timer_set_at tlan_priv 0 31902 NULL
139803 +disable_so_update_time_ds2760_device_info_31906 update_time ds2760_device_info 0 31906 NULL
139804 +disable_so_qlcnic_83xx_wrt_reg_indirect_fndecl_31907 qlcnic_83xx_wrt_reg_indirect fndecl 2-3 31907 NULL
139805 +disable_so_nmi_timer_setup_fndecl_31908 nmi_timer_setup fndecl 0 31908 NULL
139806 +disable_so_period_size_atmel_runtime_data_31909 period_size atmel_runtime_data 0 31909 NULL
139807 +disable_so_spi_pioavailaddr_qib_base_info_31911 spi_pioavailaddr qib_base_info 0 31911 NULL
139808 +disable_so_err_msr_info_31913 err msr_info 0 31913 NULL
139809 +disable_so_pcan_usb_fd_set_clock_domain_fndecl_31920 pcan_usb_fd_set_clock_domain fndecl 0 31920 NULL
139810 +disable_so_i_ipmi_set_timeout_fndecl_31922 i_ipmi_set_timeout fndecl 0 31922 NULL
139811 +disable_so_tw_ts_offset_tcp_timewait_sock_31933 tw_ts_offset tcp_timewait_sock 0 31933 NULL
139812 +disable_so_shash_setkey_unaligned_fndecl_31935 shash_setkey_unaligned fndecl 3 31935 NULL
139813 +disable_so_kempld_wdt_get_timeout_fndecl_31937 kempld_wdt_get_timeout fndecl 0 31937 NULL
139814 +disable_so_addr___mux_31940 addr __mux 0 31940 NULL
139815 +disable_so_clk_divider_bestdiv_fndecl_31941 clk_divider_bestdiv fndecl 2-0-5 31941 NULL
139816 +disable_so_bm_words_drbd_bitmap_31943 bm_words drbd_bitmap 0 31943 NULL
139817 +disable_so_timeout_show_fndecl_31957 timeout_show fndecl 0 31957 NULL
139818 +disable_so_snd_hdsp_info_system_clock_mode_fndecl_31974 snd_hdsp_info_system_clock_mode fndecl 0 31974 NULL
139819 +disable_so_time_wrap_offset_vivid_dev_31985 time_wrap_offset vivid_dev 0 31985 NULL
139820 +disable_so_addr_iwl_fw_dbg_reg_op_31986 addr iwl_fw_dbg_reg_op 0 31986 NULL
139821 +disable_so_xclk_ref_div_pll_ct_31987 xclk_ref_div pll_ct 0 31987 NULL
139822 +disable_so_rd32_nvkm_ofuncs_31990 rd32 nvkm_ofuncs 0-2 31990 NULL
139823 +disable_so_addr_sis5595_data_32006 addr sis5595_data 0 32006 NULL
139824 +disable_so_demod_address_cx22702_config_32010 demod_address cx22702_config 0 32010 NULL
139825 +disable_so_hashlimit_init_dst_fndecl_32011 hashlimit_init_dst fndecl 4 32011 NULL
139826 +disable_so_cx24113_set_frequency_fndecl_32013 cx24113_set_frequency fndecl 2 32013 NULL
139827 +disable_so_bq2415x_sysfs_set_timer_fndecl_32020 bq2415x_sysfs_set_timer fndecl 0-4 32020 NULL
139828 +disable_so___find_rev_next_zero_bit_fndecl_32028 __find_rev_next_zero_bit fndecl 0-2-3 32028 NULL
139829 +disable_so_ahd_outb_fndecl_32029 ahd_outb fndecl 2-3 32029 NULL
139830 +disable_so_pfn_to_mfn_frame_list_list_arch_shared_info_32030 pfn_to_mfn_frame_list_list arch_shared_info 0 32030 NULL
139831 +disable_so_viafb_set_vclock_fndecl_32033 viafb_set_vclock fndecl 1 32033 NULL
139832 +disable_so_paddr_csio_dma_buf_32035 paddr csio_dma_buf 0 32035 NULL
139833 +disable_so_tw_ts_recent_stamp_tcp_timewait_sock_32042 tw_ts_recent_stamp tcp_timewait_sock 0 32042 NULL
139834 +disable_so_rangetr_hash_fndecl_32045 rangetr_hash fndecl 0 32045 NULL
139835 +disable_so_vsyn_off_hdmi_timings_32055 vsyn_off hdmi_timings 0 32055 NULL
139836 +disable_so_fnic_dev_mac_addr_fndecl_32057 fnic_dev_mac_addr fndecl 0 32057 NULL nohasharray
139837 +disable_so_s921_read_signal_strength_fndecl_32057 s921_read_signal_strength fndecl 0 32057 &disable_so_fnic_dev_mac_addr_fndecl_32057
139838 +disable_so_iscsit_ta_login_timeout_fndecl_32061 iscsit_ta_login_timeout fndecl 0 32061 NULL
139839 +disable_so_btrfs_delayed_ref_init_fndecl_32064 btrfs_delayed_ref_init fndecl 0 32064 NULL
139840 +disable_so_clk_register_divider_fndecl_32066 clk_register_divider fndecl 7-6 32066 NULL
139841 +disable_so_compat_sys_timerfd_settime_fndecl_32068 compat_sys_timerfd_settime fndecl 1 32068 NULL
139842 +disable_so_last_tsc_write_kvm_arch_32069 last_tsc_write kvm_arch 0 32069 NULL
139843 +disable_so_timeout_mraid_mmadp_32081 timeout mraid_mmadp 0 32081 NULL
139844 +disable_so_selinux_task_getscheduler_fndecl_32087 selinux_task_getscheduler fndecl 0 32087 NULL
139845 +disable_so_handle_slaves_guid_change_fndecl_32090 handle_slaves_guid_change fndecl 2-3 32090 NULL
139846 +disable_so_r68_val_fc2580_freq_regs_32091 r68_val fc2580_freq_regs 0 32091 NULL
139847 +disable_so_cx23885_set_frequency_fndecl_32119 cx23885_set_frequency fndecl 0 32119 NULL
139848 +disable_so_freqn_snd_usb_endpoint_32123 freqn snd_usb_endpoint 0 32123 NULL
139849 +disable_so_prandom_bytes_fndecl_32129 prandom_bytes fndecl 2 32129 NULL nohasharray
139850 +disable_so_tfmsize_crypto_type_32129 tfmsize crypto_type 0 32129 &disable_so_prandom_bytes_fndecl_32129
139851 +disable_so_freq_ar9170_calibration_target_power_legacy_32133 freq ar9170_calibration_target_power_legacy 0 32133 NULL nohasharray
139852 +disable_so_addr_buffer_state_32133 addr buffer_state 0 32133 &disable_so_freq_ar9170_calibration_target_power_legacy_32133
139853 +enable_so_max_rate_idx_ieee80211_tx_rate_control_32134 max_rate_idx ieee80211_tx_rate_control 0 32134 NULL nohasharray
139854 +disable_so_btree_invalidatepage_fndecl_32134 btree_invalidatepage fndecl 2 32134 &enable_so_max_rate_idx_ieee80211_tx_rate_control_32134
139855 +disable_so_hfs_bnode_findhash_fndecl_32138 hfs_bnode_findhash fndecl 2 32138 NULL
139856 +disable_so_symhash_fndecl_32144 symhash fndecl 0 32144 NULL
139857 +disable_so_ahc_print_register_fndecl_32148 ahc_print_register fndecl 5 32148 NULL
139858 +disable_so_rq_majortimeo_rpc_rqst_32158 rq_majortimeo rpc_rqst 0 32158 NULL
139859 +disable_so_ber_jiffies_stats_dib7000p_state_32159 ber_jiffies_stats dib7000p_state 0 32159 NULL
139860 +disable_so_i_mtime_f2fs_inode_32162 i_mtime f2fs_inode 0 32162 NULL
139861 +disable_so_addr_cistpl_checksum_t_32163 addr cistpl_checksum_t 0 32163 NULL
139862 +disable_so_n_fll_div_32168 n fll_div 0 32168 NULL
139863 +disable_so_advance_jiffies_uhci_qh_32179 advance_jiffies uhci_qh 0 32179 NULL
139864 +disable_so_query_dv_timings_last_vivid_dev_32182 query_dv_timings_last vivid_dev 0 32182 NULL
139865 +disable_so_mlx4_reset_roce_gids_fndecl_32207 mlx4_reset_roce_gids fndecl 2 32207 NULL
139866 +disable_so_addr_rec_vals_32208 addr rec_vals 0 32208 NULL
139867 +disable_so_chunks_bitmap_counts_32213 chunks bitmap_counts 0 32213 NULL
139868 +disable_so_irq_create_mapping_fndecl_32230 irq_create_mapping fndecl 0-2 32230 NULL
139869 +disable_so_addr_lo_eth_tx_start_bd_32234 addr_lo eth_tx_start_bd 0 32234 NULL
139870 +disable_so_radeon_irq_kms_sw_irq_get_delayed_fndecl_32235 radeon_irq_kms_sw_irq_get_delayed fndecl 2 32235 NULL
139871 +disable_so_irlap_start_slot_timer_fndecl_32236 irlap_start_slot_timer fndecl 2 32236 NULL
139872 +disable_so_get_timeout_fndecl_32254 get_timeout fndecl 0 32254 NULL
139873 +disable_so_smk_open_netlbladdr_fndecl_32279 smk_open_netlbladdr fndecl 0 32279 NULL
139874 +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
139875 +disable_so_freq_stb0899_internal_32287 freq stb0899_internal 0 32287 NULL
139876 +disable_so_crypto_cmac_digest_update_fndecl_32293 crypto_cmac_digest_update fndecl 3 32293 NULL
139877 +disable_so_sirf_usp_pcm_runtime_resume_fndecl_32303 sirf_usp_pcm_runtime_resume fndecl 0 32303 NULL
139878 +disable_so_show_state_time_fndecl_32307 show_state_time fndecl 0 32307 NULL
139879 +disable_so_max_freq_dw_spi_32310 max_freq dw_spi 0 32310 NULL
139880 +disable_so_msg_stime_msqid64_ds_32312 msg_stime msqid64_ds 0 32312 NULL
139881 +disable_so_xtalfreq_brcms_phy_32317 xtalfreq brcms_phy 0 32317 NULL
139882 +disable_so_cpu_to_be32_array_fndecl_32318 cpu_to_be32_array fndecl 3 32318 NULL
139883 +disable_so_addr_tuner_setup_32321 addr tuner_setup 0 32321 NULL
139884 +disable_so_schedule_timeout_interruptible_fndecl_32331 schedule_timeout_interruptible fndecl 0-1 32331 NULL
139885 +disable_so_shm16read_addr_next_b43_dfsentry_32334 shm16read_addr_next b43_dfsentry 0 32334 NULL
139886 +disable_so_ver_sync_start_via_display_timing_32337 ver_sync_start via_display_timing 0 32337 NULL
139887 +disable_so_ath9k_hw_synth_delay_fndecl_32339 ath9k_hw_synth_delay fndecl 3 32339 NULL
139888 +disable_so_sys_setpgid_fndecl_32340 sys_setpgid fndecl 1-2 32340 NULL
139889 +disable_so_mmc_test_random_read_perf_fndecl_32342 mmc_test_random_read_perf fndecl 0 32342 NULL nohasharray
139890 +disable_so_addrmax_vxlan_dev_32342 addrmax vxlan_dev 0 32342 &disable_so_mmc_test_random_read_perf_fndecl_32342
139891 +disable_so_interrupt_in_interval_ld_usb_32353 interrupt_in_interval ld_usb 0 32353 NULL
139892 +disable_so_mlx4_ib_slave_alias_guid_event_fndecl_32363 mlx4_ib_slave_alias_guid_event fndecl 2-3 32363 NULL
139893 +disable_so_usb_addr_u132_udev_32366 usb_addr u132_udev 0 32366 NULL
139894 +disable_so_account_shared_subtree_fndecl_32369 account_shared_subtree fndecl 4-5 32369 NULL
139895 +disable_so_process_tgid_exec_proc_event_32371 process_tgid exec_proc_event 0 32371 NULL
139896 +disable_so_resp_bd_list_addr_hi_bnx2i_text_request_32375 resp_bd_list_addr_hi bnx2i_text_request 0 32375 NULL nohasharray
139897 +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
139898 +disable_so_last_ave_beacon_signal_ieee80211_if_managed_32405 last_ave_beacon_signal ieee80211_if_managed 0 32405 NULL
139899 +disable_so_vml_nearest_clock_fndecl_32407 vml_nearest_clock fndecl 1-0 32407 NULL
139900 +disable_so_silence_start_snd_pcm_runtime_32410 silence_start snd_pcm_runtime 0 32410 NULL
139901 +disable_so_setfreq_fndecl_32411 setfreq fndecl 2 32411 NULL
139902 +disable_so_nent_kvm_cpuid_32413 nent kvm_cpuid 0 32413 NULL
139903 +disable_so_try_to_del_timer_sync_fndecl_32416 try_to_del_timer_sync fndecl 0 32416 NULL
139904 +disable_so_rtc_timer_start_fndecl_32417 rtc_timer_start fndecl 0 32417 NULL nohasharray
139905 +disable_so_get_cur_freq_fndecl_32417 get_cur_freq fndecl 1 32417 &disable_so_rtc_timer_start_fndecl_32417
139906 +disable_so_rf_set_freq_ath_hw_private_ops_32419 rf_set_freq ath_hw_private_ops 0 32419 NULL
139907 +disable_so_buffer_addr_pch_gbe_rx_desc_32427 buffer_addr pch_gbe_rx_desc 0 32427 NULL
139908 +disable_so_ath_chanctx_setup_timer_fndecl_32434 ath_chanctx_setup_timer fndecl 2 32434 NULL nohasharray
139909 +disable_so_top_mlx4_bitmap_32434 top mlx4_bitmap 0 32434 &disable_so_ath_chanctx_setup_timer_fndecl_32434
139910 +disable_so_addr_acl_ip_label_32438 addr acl_ip_label 0 32438 NULL nohasharray
139911 +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
139912 +disable_so_dn_sockaddr2username_fndecl_32446 dn_sockaddr2username fndecl 0 32446 NULL
139913 +disable_so_lasttime_vardecl_xfs_buf_item_c_32457 lasttime vardecl_xfs_buf_item.c 0 32457 NULL
139914 +disable_so___btrfs_add_delayed_deletion_item_fndecl_32458 __btrfs_add_delayed_deletion_item fndecl 0 32458 NULL
139915 +disable_so_pm_autosleep_lock_fndecl_32459 pm_autosleep_lock fndecl 0 32459 NULL
139916 +disable_so_bitmap_storage_alloc_fndecl_32460 bitmap_storage_alloc fndecl 2-4 32460 NULL nohasharray
139917 +disable_so_num_emulated_msrs_vardecl_x86_c_32460 num_emulated_msrs vardecl_x86.c 0 32460 &disable_so_bitmap_storage_alloc_fndecl_32460
139918 +disable_so_C_SYSC_signalfd4_fndecl_32461 C_SYSC_signalfd4 fndecl 0-4 32461 NULL nohasharray
139919 +disable_so_io_ctl_read_bitmap_fndecl_32461 io_ctl_read_bitmap fndecl 0 32461 &disable_so_C_SYSC_signalfd4_fndecl_32461
139920 +disable_so_address_u132_addr_32463 address u132_addr 0 32463 NULL
139921 +disable_so_att_dev_sas_addr_mvs_phy_32465 att_dev_sas_addr mvs_phy 0 32465 NULL
139922 +disable_so_next_status_checked_time_sp2_32472 next_status_checked_time sp2 0 32472 NULL
139923 +disable_so_address_i2400m_poke_table_32473 address i2400m_poke_table 0 32473 NULL
139924 +disable_so_time_slice_sched_rt_entity_32475 time_slice sched_rt_entity 0 32475 NULL nohasharray
139925 +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
139926 +disable_so_br_multicast_update_query_timer_fndecl_32479 br_multicast_update_query_timer fndecl 3 32479 NULL
139927 +disable_so_rpa_timeout_hci_dev_32482 rpa_timeout hci_dev 0 32482 NULL
139928 +disable_so_retry_delay_timestamp_bnx2fc_rport_32484 retry_delay_timestamp bnx2fc_rport 0 32484 NULL
139929 +disable_so_ext4_mark_bitmap_end_fndecl_32489 ext4_mark_bitmap_end fndecl 1-2 32489 NULL
139930 +disable_so_hw_start_time_ieee80211_roc_work_32492 hw_start_time ieee80211_roc_work 0 32492 NULL
139931 +disable_so_enq_busaddr_ips_ha_32493 enq_busaddr ips_ha 0 32493 NULL
139932 +disable_so_xfs_btree_rshift_fndecl_32496 xfs_btree_rshift fndecl 0 32496 NULL
139933 +disable_so_reqsize_ablkcipher_tfm_32500 reqsize ablkcipher_tfm 0 32500 NULL
139934 +disable_so_checkani_timer_ath_ani_32510 checkani_timer ath_ani 0 32510 NULL
139935 +disable_so_refdiv_cx24113_state_32517 refdiv cx24113_state 0 32517 NULL
139936 +disable_so_clock_divn_sym_hcb_32524 clock_divn sym_hcb 0 32524 NULL nohasharray
139937 +disable_so_delay_qla4_83xx_reset_entry_hdr_32524 delay qla4_83xx_reset_entry_hdr 0 32524 &disable_so_clock_divn_sym_hcb_32524
139938 +disable_so_write_bitmap_entries_fndecl_32527 write_bitmap_entries fndecl 0 32527 NULL
139939 +disable_so_next_timer_tvec_base_32537 next_timer tvec_base 0 32537 NULL nohasharray
139940 +disable_so_daddr_irlan_cb_32537 daddr irlan_cb 0 32537 &disable_so_next_timer_tvec_base_32537
139941 +disable_so_demod_address_dib3000_config_32538 demod_address dib3000_config 0 32538 NULL
139942 +disable_so_bc_blocklog_xfs_btree_cur_32544 bc_blocklog xfs_btree_cur 0 32544 NULL
139943 +disable_so_delay_rts_before_send_serial_rs485_32545 delay_rts_before_send serial_rs485 0 32545 NULL
139944 +disable_so___skb_tx_hash_fndecl_32547 __skb_tx_hash fndecl 0-3 32547 NULL
139945 +disable_so_get_mac_address_qlcnic_hardware_ops_32567 get_mac_address qlcnic_hardware_ops 3 32567 NULL
139946 +disable_so_cpu_clock_sample_fndecl_32583 cpu_clock_sample fndecl 1 32583 NULL
139947 +disable_so_n__fll_div_32585 n _fll_div 0 32585 NULL
139948 +disable_so_addr_l_qla2xxx_fce_chain_32589 addr_l qla2xxx_fce_chain 0 32589 NULL
139949 +disable_so___bitmap_weight_fndecl_32591 __bitmap_weight fndecl 0-2 32591 NULL
139950 +disable_so_cac_time_ms_wireless_dev_32596 cac_time_ms wireless_dev 0 32596 NULL
139951 +disable_so_spi_pioavailaddr_ipath_base_info_32598 spi_pioavailaddr ipath_base_info 0 32598 NULL
139952 +disable_so_timestamp_carm_msg_sync_time_32600 timestamp carm_msg_sync_time 0 32600 NULL
139953 +disable_so_kstrtoint_from_user_fndecl_32601 kstrtoint_from_user fndecl 2-0 32601 NULL
139954 +disable_so_rtc_read_time_fndecl_32605 rtc_read_time fndecl 0 32605 NULL
139955 +disable_so_intel_fuzzy_clock_check_fndecl_32608 intel_fuzzy_clock_check fndecl 1-2 32608 NULL
139956 +disable_so_beacon_interval_iwl_rxon_time_cmd_32609 beacon_interval iwl_rxon_time_cmd 0 32609 NULL nohasharray
139957 +disable_so_ac_etime_taskstats_32609 ac_etime taskstats 0 32609 &disable_so_beacon_interval_iwl_rxon_time_cmd_32609
139958 +disable_so_pcie_sbdf_set_error_type_with_address_32610 pcie_sbdf set_error_type_with_address 0 32610 NULL nohasharray
139959 +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
139960 +disable_so_table_instance_rehash_fndecl_32621 table_instance_rehash fndecl 2 32621 NULL
139961 +disable_so_btrfs_timespec_nsec_fndecl_32628 btrfs_timespec_nsec fndecl 0 32628 NULL
139962 +disable_so_pll2_r2_div_ad9523_platform_data_32641 pll2_r2_div ad9523_platform_data 0 32641 NULL
139963 +disable_so_ahash_op_unaligned_fndecl_32645 ahash_op_unaligned fndecl 0 32645 NULL
139964 +disable_so_pm3fb_calculate_clock_fndecl_32653 pm3fb_calculate_clock fndecl 1 32653 NULL
139965 +disable_so___load_block_bitmap_fndecl_32655 __load_block_bitmap fndecl 0-3 32655 NULL
139966 +disable_so_timeout_blk_mq_tag_set_32657 timeout blk_mq_tag_set 0 32657 NULL
139967 +disable_so_rangelow_v4l2_frequency_band_32670 rangelow v4l2_frequency_band 0 32670 NULL
139968 +disable_so_crypto_rng_get_bytes_fndecl_32675 crypto_rng_get_bytes fndecl 0-3 32675 NULL
139969 +disable_so_ns_ctime_the_nilfs_32681 ns_ctime the_nilfs 0 32681 NULL
139970 +disable_so_m41t80_sysfs_show_sqwfreq_fndecl_32683 m41t80_sysfs_show_sqwfreq fndecl 0 32683 NULL
139971 +disable_so_level_irq_udelay_cyttsp4_core_platform_data_32688 level_irq_udelay cyttsp4_core_platform_data 0 32688 NULL nohasharray
139972 +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
139973 +disable_so_e4000_sleep_fndecl_32694 e4000_sleep fndecl 0 32694 NULL
139974 +disable_so_snd_riptide_interrupt_fndecl_32696 snd_riptide_interrupt fndecl 1 32696 NULL nohasharray
139975 +disable_so_max_spi_freq_wm0010_priv_32696 max_spi_freq wm0010_priv 0 32696 &disable_so_snd_riptide_interrupt_fndecl_32696
139976 +disable_so_s_mtime_ext4_super_block_32699 s_mtime ext4_super_block 0 32699 NULL
139977 +disable_so_dma_addr_dm1105_dev_32704 dma_addr dm1105_dev 0 32704 NULL
139978 +disable_so_vmx_preemption_timer_value_vmcs12_32707 vmx_preemption_timer_value vmcs12 0 32707 NULL nohasharray
139979 +disable_so_uid_fileEntry_32707 uid fileEntry 0 32707 &disable_so_vmx_preemption_timer_value_vmcs12_32707
139980 +disable_so_saffirepro_both_clk_freq_get_fndecl_32709 saffirepro_both_clk_freq_get fndecl 0 32709 NULL
139981 +disable_so_cx231xx_s_frequency_fndecl_32713 cx231xx_s_frequency fndecl 0 32713 NULL
139982 +disable_so_sys_getgid_fndecl_32720 sys_getgid fndecl 0 32720 NULL
139983 +disable_so_tuner_address_zl10036_config_32733 tuner_address zl10036_config 0 32733 NULL
139984 +disable_so_max_medium_access_timeouts_store_fndecl_32735 max_medium_access_timeouts_store fndecl 0-4 32735 NULL
139985 +disable_so_cyapa_sleep_time_to_pwr_cmd_fndecl_32740 cyapa_sleep_time_to_pwr_cmd fndecl 0-1 32740 NULL
139986 +disable_so_s5m_rtc_read_time_fndecl_32755 s5m_rtc_read_time fndecl 0 32755 NULL
139987 +disable_so_i2c_read_le16_fndecl_32758 i2c_read_le16 fndecl 0 32758 NULL
139988 +disable_so_sysctl_rose_ack_hold_back_timeout_vardecl_32768 sysctl_rose_ack_hold_back_timeout vardecl 0 32768 NULL
139989 +disable_so_pentium4_get_frequency_fndecl_32777 pentium4_get_frequency fndecl 0 32777 NULL
139990 +disable_so_divider_phase_ad9523_channel_spec_32779 divider_phase ad9523_channel_spec 0 32779 NULL
139991 +disable_so_s_nr_groups_udf_bitmap_32784 s_nr_groups udf_bitmap 0 32784 NULL
139992 +disable_so_acpi_dev_runtime_resume_fndecl_32787 acpi_dev_runtime_resume fndecl 0 32787 NULL
139993 +disable_so_posted_intr_desc_addr_vmcs12_32788 posted_intr_desc_addr vmcs12 0 32788 NULL
139994 +disable_so_acpi_enter_sleep_state_fndecl_32791 acpi_enter_sleep_state fndecl 0-1 32791 NULL
139995 +disable_so_lola_init_clock_widget_fndecl_32800 lola_init_clock_widget fndecl 0 32800 NULL
139996 +disable_so_blocksize_ablkcipher_walk_32810 blocksize ablkcipher_walk 0 32810 NULL
139997 +disable_so_ctime_msdos_dir_entry_32811 ctime msdos_dir_entry 0 32811 NULL
139998 +disable_so_hpi_tuner_get_frequency_fndecl_32813 hpi_tuner_get_frequency fndecl 0-1 32813 NULL
139999 +disable_so_rhashtable_lookup_insert_fast_fndecl_32820 rhashtable_lookup_insert_fast fndecl 0 32820 NULL
140000 +disable_so_sync_freq_max8952_platform_data_32822 sync_freq max8952_platform_data 0 32822 NULL
140001 +disable_so_timeout_rc_dev_32826 timeout rc_dev 0 32826 NULL
140002 +disable_so_to_c2_data_addr_32827 to c2_data_addr 0 32827 NULL
140003 +disable_so_il4965_tfd_tb_get_addr_fndecl_32833 il4965_tfd_tb_get_addr fndecl 0 32833 NULL
140004 +disable_so_ctnl_timeout_dump_fndecl_32835 ctnl_timeout_dump fndecl 0 32835 NULL nohasharray
140005 +disable_so_nouveau_pmops_runtime_suspend_fndecl_32835 nouveau_pmops_runtime_suspend fndecl 0 32835 &disable_so_ctnl_timeout_dump_fndecl_32835
140006 +disable_so_kvm_get_apic_interrupt_fndecl_32843 kvm_get_apic_interrupt fndecl 0 32843 NULL
140007 +disable_so_do_bit_flips_fndecl_32848 do_bit_flips fndecl 2 32848 NULL
140008 +disable_so_bitmap_xor_fndecl_32858 bitmap_xor fndecl 4 32858 NULL
140009 +disable_so_vdelay_bttv_tvnorm_32863 vdelay bttv_tvnorm 0 32863 NULL
140010 +disable_so_rt_dbmsignal_ipw_rt_hdr_32871 rt_dbmsignal ipw_rt_hdr 0 32871 NULL
140011 +disable_so_rtc_set_ntp_time_fndecl_32881 rtc_set_ntp_time fndecl 0 32881 NULL
140012 +disable_so_hash_conntrack_raw_fndecl_32882 hash_conntrack_raw fndecl 0 32882 NULL
140013 +disable_so_find_mc_by_sys_addr_fndecl_32888 find_mc_by_sys_addr fndecl 2 32888 NULL
140014 +disable_so_low_mcp_dma_addr_32890 low mcp_dma_addr 0 32890 NULL
140015 +disable_so_rds_cmsg_atomic_fndecl_32895 rds_cmsg_atomic fndecl 0 32895 NULL
140016 +disable_so___hw_addr_add_ex_fndecl_32899 __hw_addr_add_ex fndecl 0-3 32899 NULL
140017 +disable_so_xfs_btree_decrement_fndecl_32925 xfs_btree_decrement fndecl 0 32925 NULL
140018 +disable_so_nilfs_btree_prepare_propagate_v_fndecl_32937 nilfs_btree_prepare_propagate_v fndecl 0 32937 NULL
140019 +disable_so_m41t80_rtc_read_time_fndecl_32947 m41t80_rtc_read_time fndecl 0 32947 NULL
140020 +disable_so_address_ci_hdrc_32962 address ci_hdrc 0 32962 NULL
140021 +disable_so_tua9001_sleep_fndecl_32966 tua9001_sleep fndecl 0 32966 NULL
140022 +disable_so_pm_generic_runtime_resume_fndecl_32968 pm_generic_runtime_resume fndecl 0 32968 NULL
140023 +disable_so_dma_addr_chunk_32969 dma_addr chunk 0 32969 NULL
140024 +disable_so_dm_attr_uuid_show_fndecl_32981 dm_attr_uuid_show fndecl 0 32981 NULL
140025 +disable_so_ac_stime_acct_v3_32985 ac_stime acct_v3 0 32985 NULL
140026 +disable_so_int_freq_r820t_priv_32987 int_freq r820t_priv 0 32987 NULL
140027 +disable_so_r8_pt_regs_32990 r8 pt_regs 0 32990 NULL
140028 +disable_so_address_TAG_TW_SG_Entry_ISO_32992 address TAG_TW_SG_Entry_ISO 0 32992 NULL
140029 +disable_so_segment0_blkaddr_f2fs_super_block_32995 segment0_blkaddr f2fs_super_block 0 32995 NULL
140030 +disable_so_time_of_death_afs_vlocation_32996 time_of_death afs_vlocation 0 32996 NULL
140031 +disable_so_addrm_unknown_feature_attrs_fndecl_33000 addrm_unknown_feature_attrs fndecl 0 33000 NULL
140032 +disable_so_monotonic_time_sec_vsyscall_gtod_data_33004 monotonic_time_sec vsyscall_gtod_data 0 33004 NULL
140033 +disable_so_tv_hsync_delay_nv04_crtc_reg_33012 tv_hsync_delay nv04_crtc_reg 0 33012 NULL
140034 +disable_so_neigh_proc_base_reachable_time_fndecl_33013 neigh_proc_base_reachable_time fndecl 0 33013 NULL
140035 +disable_so_ocfs2_unlink_subtree_fndecl_33022 ocfs2_unlink_subtree fndecl 5 33022 NULL
140036 +disable_so_poll_time_max3100_port_33028 poll_time max3100_port 0 33028 NULL
140037 +disable_so_compat_sys_time_fndecl_33034 compat_sys_time fndecl 0 33034 NULL nohasharray
140038 +disable_so_m_osc_clock_freq_drxk_state_33034 m_osc_clock_freq drxk_state 0 33034 &disable_so_compat_sys_time_fndecl_33034
140039 +disable_so_dev_addr_mmc_test_area_33044 dev_addr mmc_test_area 0 33044 NULL
140040 +disable_so_ntp_tick_timekeeper_33046 ntp_tick timekeeper 0 33046 NULL
140041 +disable_so_day_tomoyo_time_33064 day tomoyo_time 0 33064 NULL
140042 +disable_so_wait_time_stamp_lpfc_bsg_event_33070 wait_time_stamp lpfc_bsg_event 0 33070 NULL
140043 +disable_so_vblank_hi_lvds_dvo_timing_33077 vblank_hi lvds_dvo_timing 0 33077 NULL
140044 +disable_so_cycle_last_timecounter_33078 cycle_last timecounter 0 33078 NULL
140045 +disable_so_ql_write_page0_reg_fndecl_33082 ql_write_page0_reg fndecl 3 33082 NULL
140046 +disable_so_dma_addr_mic_smpt_33090 dma_addr mic_smpt 0 33090 NULL
140047 +disable_so_torture_random_fndecl_33096 torture_random fndecl 0 33096 NULL
140048 +disable_so_collect_signal_fndecl_33097 collect_signal fndecl 1 33097 NULL
140049 +disable_so_free_count_reiserfs_bitmap_info_33099 free_count reiserfs_bitmap_info 0 33099 NULL
140050 +disable_so_sys_clock_gettime_fndecl_33100 sys_clock_gettime fndecl 1 33100 NULL
140051 +disable_so_word_write_time_max_flchip_33105 word_write_time_max flchip 0 33105 NULL nohasharray
140052 +disable_so_y_gsc_addr_33105 y gsc_addr 0 33105 &disable_so_word_write_time_max_flchip_33105
140053 +disable_so_prdaddr_atp_id_33111 prdaddr atp_id 0 33111 NULL nohasharray
140054 +disable_so_intel_fdi_link_freq_fndecl_33111 intel_fdi_link_freq fndecl 0 33111 &disable_so_prdaddr_atp_id_33111
140055 +disable_so_soft_use_expires_seconds_xfrm_lifetime_cfg_33115 soft_use_expires_seconds xfrm_lifetime_cfg 0 33115 NULL
140056 +disable_so_strtobool_fndecl_33116 strtobool fndecl 0 33116 NULL
140057 +disable_so_smsc95xx_hash_fndecl_33122 smsc95xx_hash fndecl 0 33122 NULL
140058 +disable_so_mce_device_create_fndecl_33128 mce_device_create fndecl 1-0 33128 NULL
140059 +disable_so_ip6addrlbl_net_init_fndecl_33129 ip6addrlbl_net_init fndecl 0 33129 NULL
140060 +disable_so_brcms_b_set_addrmatch_fndecl_33130 brcms_b_set_addrmatch fndecl 2 33130 NULL
140061 +disable_so_tracer_tgid_ptrace_proc_event_33131 tracer_tgid ptrace_proc_event 0 33131 NULL
140062 +disable_so_pretimeout_vardecl_kempld_wdt_c_33137 pretimeout vardecl_kempld_wdt.c 0 33137 NULL
140063 +disable_so_o2net_set_usertimeout_fndecl_33145 o2net_set_usertimeout fndecl 0 33145 NULL nohasharray
140064 +disable_so_cryptd_blkcipher_encrypt_enqueue_fndecl_33145 cryptd_blkcipher_encrypt_enqueue fndecl 0 33145 &disable_so_o2net_set_usertimeout_fndecl_33145
140065 +disable_so_q_stime_msg_queue_33150 q_stime msg_queue 0 33150 NULL
140066 +disable_so_cursor_cache_gpu_addr_ast_private_33160 cursor_cache_gpu_addr ast_private 0 33160 NULL
140067 +disable_so_clockid_to_kclock_fndecl_33163 clockid_to_kclock fndecl 1 33163 NULL
140068 +disable_so_address_ipr_ioadl64_desc_33170 address ipr_ioadl64_desc 0 33170 NULL
140069 +disable_so_wl1271_acx_sleep_auth_fndecl_33172 wl1271_acx_sleep_auth fndecl 0 33172 NULL nohasharray
140070 +disable_so_addr_mii_phy_33172 addr mii_phy 0 33172 &disable_so_wl1271_acx_sleep_auth_fndecl_33172
140071 +disable_so_cr_camif_addr_33181 cr camif_addr 0 33181 NULL
140072 +disable_so___bch_btree_mark_key_fndecl_33194 __bch_btree_mark_key fndecl 2 33194 NULL
140073 +disable_so_mem_addr_m3_list_33199 mem_addr m3_list 0 33199 NULL
140074 +disable_so_start_time_tx_traffic_info_33206 start_time tx_traffic_info 0 33206 NULL
140075 +disable_so_crypto_aead_decrypt_fndecl_33207 crypto_aead_decrypt fndecl 0 33207 NULL
140076 +disable_so_i_mtime_ext2_inode_33209 i_mtime ext2_inode 0 33209 NULL
140077 +disable_so_mei_me_pm_runtime_resume_fndecl_33216 mei_me_pm_runtime_resume fndecl 0 33216 NULL
140078 +disable_so_irq_free_descs_fndecl_33218 irq_free_descs fndecl 1-2 33218 NULL
140079 +disable_so_tune_freq_si476x_radio_ops_33229 tune_freq si476x_radio_ops 0 33229 NULL
140080 +disable_so_increase_address_space_fndecl_33247 increase_address_space fndecl 2 33247 NULL
140081 +disable_so_ps_timeout_vardecl_pseudo_h_33252 ps_timeout vardecl_pseudo.h 0 33252 NULL
140082 +disable_so_init_jiffies_clocksource_fndecl_33253 init_jiffies_clocksource fndecl 0 33253 NULL
140083 +disable_so_do_cpu_nanosleep_fndecl_33255 do_cpu_nanosleep fndecl 1 33255 NULL
140084 +disable_so_efi_thunk_set_virtual_address_map_fndecl_33273 efi_thunk_set_virtual_address_map fndecl 2-3 33273 NULL
140085 +disable_so_ring_physaddr_fbr_lookup_33275 ring_physaddr fbr_lookup 0 33275 NULL
140086 +disable_so_wakeup_prevent_sleep_time_show_fndecl_33280 wakeup_prevent_sleep_time_show fndecl 0 33280 NULL nohasharray
140087 +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
140088 +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
140089 +disable_so_ccp_aes_rfc3686_setkey_fndecl_33280 ccp_aes_rfc3686_setkey fndecl 3 33280 &disable_so_rsdt_physical_address_acpi_table_rsdp_33280
140090 +disable_so_jiffies_to_clock_t_fndecl_33285 jiffies_to_clock_t fndecl 0-1 33285 NULL
140091 +disable_so_gpu_addr_radeon_ib_33291 gpu_addr radeon_ib 0 33291 NULL
140092 +disable_so_crypto_rfc4106_setkey_fndecl_33297 crypto_rfc4106_setkey fndecl 0-3 33297 NULL
140093 +disable_so_crypto_rfc4309_encrypt_fndecl_33306 crypto_rfc4309_encrypt fndecl 0 33306 NULL
140094 +disable_so_xhci_calculate_lpm_timeout_fndecl_33310 xhci_calculate_lpm_timeout fndecl 0 33310 NULL
140095 +disable_so_addr_high_mcp_kreq_ether_send_33319 addr_high mcp_kreq_ether_send 0 33319 NULL
140096 +disable_so_calc_divisor_fndecl_33333 calc_divisor fndecl 0 33333 NULL
140097 +disable_so_i2c_address_dib0070_config_33334 i2c_address dib0070_config 0 33334 NULL
140098 +disable_so_alloc_sleep_millisecs_show_fndecl_33339 alloc_sleep_millisecs_show fndecl 0 33339 NULL nohasharray
140099 +disable_so_hpi_tuner_set_frequency_fndecl_33339 hpi_tuner_set_frequency fndecl 0-1 33339 &disable_so_alloc_sleep_millisecs_show_fndecl_33339
140100 +disable_so_sysctl_aarp_tick_time_vardecl_33343 sysctl_aarp_tick_time vardecl 0 33343 NULL
140101 +disable_so_stv0367cab_set_derot_freq_fndecl_33348 stv0367cab_set_derot_freq fndecl 0-2-3 33348 NULL
140102 +disable_so_pkt_phys_addr_mwl8k_tx_desc_33350 pkt_phys_addr mwl8k_tx_desc 0 33350 NULL
140103 +disable_so_addr_low_lancer_cmd_req_write_object_33351 addr_low lancer_cmd_req_write_object 0 33351 NULL
140104 +disable_so_posix_timer_id_signal_struct_33352 posix_timer_id signal_struct 0 33352 NULL
140105 +disable_so_s_mtime_ext2_super_block_33353 s_mtime ext2_super_block 0 33353 NULL
140106 +disable_so_freq_wmi_remain_on_chnl_event_33368 freq wmi_remain_on_chnl_event 0 33368 NULL
140107 +disable_so_token_time_sfb_sched_data_33369 token_time sfb_sched_data 0 33369 NULL nohasharray
140108 +disable_so_kvmclock_offset_kvm_arch_33369 kvmclock_offset kvm_arch 0 33369 &disable_so_token_time_sfb_sched_data_33369
140109 +disable_so_pipelines_addr_device_queue_manager_33373 pipelines_addr device_queue_manager 0 33373 NULL
140110 +disable_so_nilfs_btree_prepare_convert_and_insert_fndecl_33375 nilfs_btree_prepare_convert_and_insert fndecl 0-2 33375 NULL
140111 +disable_so_hash_netnet6_expire_fndecl_33396 hash_netnet6_expire fndecl 4 33396 NULL
140112 +disable_so_ticks_snd_timer_hardware_33398 ticks snd_timer_hardware 0 33398 NULL nohasharray
140113 +disable_so_pci_bus_max_busnr_fndecl_33398 pci_bus_max_busnr fndecl 0 33398 &disable_so_ticks_snd_timer_hardware_33398
140114 +disable_so_start_time_search_33410 start_time search 0 33410 NULL
140115 +disable_so_flip_addr_intel_overlay_33431 flip_addr intel_overlay 0 33431 NULL
140116 +disable_so_sync_single_for_cpu_dma_map_ops_33433 sync_single_for_cpu dma_map_ops 2-3 33433 NULL
140117 +disable_so_di_ctime_logfs_disk_inode_33435 di_ctime logfs_disk_inode 0 33435 NULL
140118 +disable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 0 33455 NULL
140119 +disable_so_sbp_tpg_attrib_show_mgt_orb_timeout_fndecl_33467 sbp_tpg_attrib_show_mgt_orb_timeout fndecl 0 33467 NULL
140120 +disable_so_btrfs_set_free_space_bitmaps_fndecl_33481 btrfs_set_free_space_bitmaps fndecl 3 33481 NULL
140121 +disable_so_demod_address_stv0299_config_33483 demod_address stv0299_config 0 33483 NULL
140122 +disable_so_lbs_sleepparams_write_fndecl_33488 lbs_sleepparams_write fndecl 0-3 33488 NULL
140123 +disable_so_start_time_edac_device_ctl_info_33489 start_time edac_device_ctl_info 0 33489 NULL
140124 +disable_so_addr_f71805f_data_33493 addr f71805f_data 0 33493 NULL
140125 +disable_so_mcgcap_mce_33500 mcgcap mce 0 33500 NULL
140126 +disable_so___smp_spurious_interrupt_fndecl_33501 __smp_spurious_interrupt fndecl 1 33501 NULL
140127 +disable_so_acpi_pad_rrtime_show_fndecl_33511 acpi_pad_rrtime_show fndecl 0 33511 NULL
140128 +disable_so_crypto_ctr_module_init_fndecl_33512 crypto_ctr_module_init fndecl 0 33512 NULL
140129 +disable_so_dtim_time_iwl_mac_data_sta_33519 dtim_time iwl_mac_data_sta 0 33519 NULL
140130 +disable_so_start_signal_voltage_switch_mmc_host_ops_33520 start_signal_voltage_switch mmc_host_ops 0 33520 NULL
140131 +disable_so_ui_atime_ufs2_inode_33541 ui_atime ufs2_inode 0 33541 NULL nohasharray
140132 +disable_so_pll_prediv_dib0090_io_config_33541 pll_prediv dib0090_io_config 0 33541 &disable_so_ui_atime_ufs2_inode_33541
140133 +disable_so_synchronize_irq_fndecl_33551 synchronize_irq fndecl 1 33551 NULL
140134 +disable_so_addrconf_disable_ipv6_fndecl_33555 addrconf_disable_ipv6 fndecl 0 33555 NULL
140135 +disable_so_addr_RxDesc_33558 addr RxDesc 0 33558 NULL
140136 +disable_so_rtc_irq_set_freq_fndecl_33559 rtc_irq_set_freq fndecl 0 33559 NULL
140137 +disable_so_md4_mod_init_fndecl_33560 md4_mod_init fndecl 0 33560 NULL
140138 +disable_so_addr_1_qla8044_minidump_entry_pollwr_33561 addr_1 qla8044_minidump_entry_pollwr 0 33561 NULL
140139 +disable_so_decnet_address_vardecl_33562 decnet_address vardecl 0 33562 NULL
140140 +disable_so_tx_bseq_addr_bnx2_tx_ring_info_33563 tx_bseq_addr bnx2_tx_ring_info 0 33563 NULL
140141 +disable_so_clock_sched_clock_data_33565 clock sched_clock_data 0 33565 NULL
140142 +disable_so_va_uid_coda_vattr_33569 va_uid coda_vattr 0 33569 NULL
140143 +disable_so_timeout_RioCommand_33570 timeout RioCommand 0 33570 NULL
140144 +disable_so_ramp_time_pcf50633_bl_platform_data_33574 ramp_time pcf50633_bl_platform_data 0 33574 NULL
140145 +disable_so_bitmap_init_from_disk_fndecl_33575 bitmap_init_from_disk fndecl 2 33575 NULL
140146 +disable_so_startaddr_banshee_reg_33580 startaddr banshee_reg 0 33580 NULL
140147 +disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581 intel_pipe_to_cpu_transcoder fndecl 0-2 33581 NULL nohasharray
140148 +disable_so_ctl_addr_ide_io_ports_33581 ctl_addr ide_io_ports 0 33581 &disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581
140149 +disable_so_ext4_read_inode_bitmap_fndecl_33583 ext4_read_inode_bitmap fndecl 2 33583 NULL
140150 +disable_so_ims_pcu_ofn_bit_store_fndecl_33597 ims_pcu_ofn_bit_store fndecl 0-4 33597 NULL
140151 +disable_so___bitmap_clear_bits_fndecl_33603 __bitmap_clear_bits fndecl 3-4 33603 NULL
140152 +disable_so_cg_spll_spread_spectrum_2_rv730_clock_registers_33607 cg_spll_spread_spectrum_2 rv730_clock_registers 0 33607 NULL
140153 +disable_so_cs5535_mfgpt_alloc_timer_fndecl_33609 cs5535_mfgpt_alloc_timer fndecl 1 33609 NULL
140154 +disable_so_to_maxval_rpc_timeout_33618 to_maxval rpc_timeout 0 33618 NULL nohasharray
140155 +disable_so_freq_freq_tbl_33618 freq freq_tbl 0 33618 &disable_so_to_maxval_rpc_timeout_33618
140156 +disable_so_hpi_sample_clock_set_auto_fndecl_33619 hpi_sample_clock_set_auto fndecl 1-0 33619 NULL
140157 +disable_so_addr_lo_freelQ_e_33620 addr_lo freelQ_e 0 33620 NULL
140158 +disable_so_addr_via686a_data_33627 addr via686a_data 0 33627 NULL
140159 +disable_so_seq_time_vardecl_33630 seq_time vardecl 0 33630 NULL
140160 +disable_so_tgid_task_struct_33635 tgid task_struct 0 33635 NULL nohasharray
140161 +disable_so_index_addr_read_data_fndecl_33635 index_addr_read_data fndecl 2 33635 &disable_so_tgid_task_struct_33635
140162 +disable_so_random_fasync_fndecl_33642 random_fasync fndecl 1 33642 NULL
140163 +disable_so_snd_usb_mixer_interrupt_v2_fndecl_33643 snd_usb_mixer_interrupt_v2 fndecl 3 33643 NULL
140164 +disable_so_vq_vram_addr_viafb_shared_33653 vq_vram_addr viafb_shared 0 33653 NULL
140165 +disable_so_key_index_wmi_add_cipher_key_cmd_33662 key_index wmi_add_cipher_key_cmd 0 33662 NULL
140166 +disable_so_tpu_pwm_timer_start_fndecl_33663 tpu_pwm_timer_start fndecl 0 33663 NULL
140167 +disable_so_interrupt_in_interval_lego_usb_tower_33664 interrupt_in_interval lego_usb_tower 0 33664 NULL
140168 +disable_so_pr_gid_compat_elf_prpsinfo_33667 pr_gid compat_elf_prpsinfo 0 33667 NULL
140169 +disable_so_sinit_max_init_timeo_sctp_initmsg_33681 sinit_max_init_timeo sctp_initmsg 0 33681 NULL
140170 +disable_so_sdev_store_eh_timeout_fndecl_33688 sdev_store_eh_timeout fndecl 0-4 33688 NULL
140171 +disable_so_uid_ceph_mds_caps_33696 uid ceph_mds_caps 0 33696 NULL
140172 +disable_so_min_timeout_rc_dev_33699 min_timeout rc_dev 0 33699 NULL
140173 +disable_so_addr_alx_rfd_33711 addr alx_rfd 0 33711 NULL
140174 +disable_so_pwm_divisor_max77693_haptic_33724 pwm_divisor max77693_haptic 0 33724 NULL
140175 +disable_so_cb710_mmc_select_clock_divider_fndecl_33732 cb710_mmc_select_clock_divider fndecl 2 33732 NULL
140176 +disable_so_service_timer_previous_i40e_pf_33743 service_timer_previous i40e_pf 0 33743 NULL
140177 +disable_so_btree_gc_count_keys_fndecl_33745 btree_gc_count_keys fndecl 0 33745 NULL
140178 +disable_so_max_usec_vnic_intr_coal_timer_info_33753 max_usec vnic_intr_coal_timer_info 0 33753 NULL
140179 +disable_so_force_hpet_address_vardecl_33758 force_hpet_address vardecl 0 33758 NULL
140180 +disable_so_fl_addr_fib_result_nl_33759 fl_addr fib_result_nl 0 33759 NULL
140181 +disable_so_cx231xx_i2c_recv_bytes_with_saddr_fndecl_33773 cx231xx_i2c_recv_bytes_with_saddr fndecl 0 33773 NULL
140182 +disable_so_cursor_addr_radeon_crtc_33776 cursor_addr radeon_crtc 0 33776 NULL
140183 +disable_so_btrfs_update_time_fndecl_33780 btrfs_update_time fndecl 0 33780 NULL
140184 +disable_so_from_kuid_munged_fndecl_33783 from_kuid_munged fndecl 0 33783 NULL
140185 +disable_so_irda_discover_daddr_and_lsap_sel_fndecl_33786 irda_discover_daddr_and_lsap_sel fndecl 0 33786 NULL
140186 +disable_so_efx_probe_interrupts_fndecl_33793 efx_probe_interrupts fndecl 0 33793 NULL
140187 +disable_so_custom_divisor_cyclades_port_33795 custom_divisor cyclades_port 0 33795 NULL
140188 +disable_so_uli526x_interrupt_fndecl_33800 uli526x_interrupt fndecl 1 33800 NULL
140189 +disable_so_ocrdma_add_stat_fndecl_33807 ocrdma_add_stat fndecl 0 33807 NULL
140190 +disable_so_btrfs_set_token_inode_uid_fndecl_33810 btrfs_set_token_inode_uid fndecl 3 33810 NULL
140191 +disable_so_iowrite32_rep_fndecl_33813 iowrite32_rep fndecl 3 33813 NULL
140192 +disable_so_sys_setresgid_fndecl_33818 sys_setresgid fndecl 0-1-2-3 33818 NULL
140193 +disable_so_radeon_dp_get_dp_link_clock_fndecl_33823 radeon_dp_get_dp_link_clock fndecl 0-3 33823 NULL
140194 +disable_so_timeout__synclinkmp_info_33838 timeout _synclinkmp_info 0 33838 NULL
140195 +disable_so_phys_addr_esas2r_mem_desc_33844 phys_addr esas2r_mem_desc 0 33844 NULL
140196 +disable_so_cpufreq_register_notifier_fndecl_33845 cpufreq_register_notifier fndecl 0 33845 NULL
140197 +disable_so_ufx_reg_write_fndecl_33849 ufx_reg_write fndecl 3 33849 NULL
140198 +disable_so_kstrtou8_from_user_fndecl_33852 kstrtou8_from_user fndecl 0-2 33852 NULL
140199 +disable_so_hpi_sample_clock_get_local_rate_fndecl_33857 hpi_sample_clock_get_local_rate fndecl 1-0 33857 NULL
140200 +disable_so_hor_sync_start_via_display_timing_33861 hor_sync_start via_display_timing 0 33861 NULL
140201 +disable_so_seq_netlbl_domhsh_walk_arg_33872 seq netlbl_domhsh_walk_arg 0 33872 NULL
140202 +disable_so_wrmsrl_on_cpu_fndecl_33873 wrmsrl_on_cpu fndecl 0-1 33873 NULL
140203 +disable_so_cpu_to_vringh32_fndecl_33880 cpu_to_vringh32 fndecl 0-2 33880 NULL
140204 +disable_so_ni_do_program_memory_timing_parameters_fndecl_33886 ni_do_program_memory_timing_parameters fndecl 0 33886 NULL
140205 +disable_so_comp_addr_hi_dmae_command_33889 comp_addr_hi dmae_command 0 33889 NULL
140206 +disable_so_wl18xx_acx_interrupt_notify_config_fndecl_33899 wl18xx_acx_interrupt_notify_config fndecl 0 33899 NULL
140207 +disable_so_creation_time_iscsi_session_33906 creation_time iscsi_session 0 33906 NULL nohasharray
140208 +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
140209 +disable_so_bnx2x_get_rxhash_fndecl_33906 bnx2x_get_rxhash fndecl 0 33906 &disable_so_via_clock_vardecl_pata_via_c_33906
140210 +disable_so_mmio_readl_intel_uncore_funcs_33910 mmio_readl intel_uncore_funcs 0-2 33910 NULL
140211 +disable_so_refresh_time_e1000_fc_info_33911 refresh_time e1000_fc_info 0 33911 NULL
140212 +disable_so_hash_fname_33923 hash fname 0 33923 NULL
140213 +disable_so_sysctl_netrom_transport_timeout_vardecl_33929 sysctl_netrom_transport_timeout vardecl 0 33929 NULL
140214 +disable_so_cg_spll_func_cntl_si_clock_registers_33932 cg_spll_func_cntl si_clock_registers 0 33932 NULL
140215 +disable_so_img_ir_free_timing_fndecl_33939 img_ir_free_timing fndecl 0-2 33939 NULL
140216 +disable_so_max_tsc_khz_vardecl_x86_c_33942 max_tsc_khz vardecl_x86.c 0 33942 NULL
140217 +disable_so_timeout_a_tpm_vendor_specific_33951 timeout_a tpm_vendor_specific 0 33951 NULL
140218 +disable_so_generic_cmd6_time_mmc_ext_csd_33957 generic_cmd6_time mmc_ext_csd 0 33957 NULL
140219 +disable_so_subnet_timeout_qib_ibport_33973 subnet_timeout qib_ibport 0 33973 NULL nohasharray
140220 +disable_so_ring_iowrite16desc_fndecl_33973 ring_iowrite16desc fndecl 2 33973 &disable_so_subnet_timeout_qib_ibport_33973 nohasharray
140221 +disable_so_freq_tiny_spi_33973 freq tiny_spi 0 33973 &disable_so_ring_iowrite16desc_fndecl_33973
140222 +disable_so_ip6addrlbl_del_fndecl_33977 ip6addrlbl_del fndecl 0-4 33977 NULL
140223 +disable_so_btree_readpage_fndecl_33979 btree_readpage fndecl 0 33979 NULL
140224 +disable_so_ifa_broadcast_in_ifaddr_33999 ifa_broadcast in_ifaddr 0 33999 NULL
140225 +disable_so___cpuidle_register_device_fndecl_34012 __cpuidle_register_device fndecl 0 34012 NULL
140226 +disable_so_hpfs_prefetch_bitmap_fndecl_34014 hpfs_prefetch_bitmap fndecl 2 34014 NULL
140227 +disable_so_cur_freq_lbtf_private_34017 cur_freq lbtf_private 0 34017 NULL
140228 +disable_so_pxa2xx_ssp_get_clk_div_fndecl_34021 pxa2xx_ssp_get_clk_div fndecl 0-3 34021 NULL
140229 +disable_so_data_addr_acpi_ec_34022 data_addr acpi_ec 0 34022 NULL
140230 +disable_so_sdev_runtime_resume_fndecl_34033 sdev_runtime_resume fndecl 0 34033 NULL nohasharray
140231 +disable_so_get_aux_clock_divider_intel_dp_34033 get_aux_clock_divider intel_dp 0 34033 &disable_so_sdev_runtime_resume_fndecl_34033
140232 +disable_so_proc_tgid_io_accounting_fndecl_34034 proc_tgid_io_accounting fndecl 0 34034 NULL
140233 +disable_so_long_timeout_scsi_tape_34043 long_timeout scsi_tape 0 34043 NULL
140234 +disable_so_crypto_authenc_esn_givencrypt_done_fndecl_34047 crypto_authenc_esn_givencrypt_done fndecl 2 34047 NULL
140235 +disable_so_addr_wil_fw_data_dwrite_34059 addr wil_fw_data_dwrite 0 34059 NULL
140236 +disable_so_shash_prepare_alg_fndecl_34073 shash_prepare_alg fndecl 0 34073 NULL
140237 +disable_so_ccp_register_aes_algs_fndecl_34079 ccp_register_aes_algs fndecl 0 34079 NULL
140238 +disable_so_addr_mwifiex_dma_mapping_34088 addr mwifiex_dma_mapping 0 34088 NULL
140239 +disable_so_signal_level_hfa384x_comms_quality_34089 signal_level hfa384x_comms_quality 0 34089 NULL
140240 +disable_so_per_jiffies_stats_dib7000p_state_34090 per_jiffies_stats dib7000p_state 0 34090 NULL nohasharray
140241 +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
140242 +disable_so_rt_mutex_timed_lock_fndecl_34096 rt_mutex_timed_lock fndecl 0 34096 NULL
140243 +disable_so_addr_i2c_device_34103 addr i2c_device 0 34103 NULL
140244 +disable_so_run_nmi_sleep_test_fndecl_34107 run_nmi_sleep_test fndecl 1 34107 NULL
140245 +disable_so_distribute_cfs_runtime_fndecl_34121 distribute_cfs_runtime fndecl 0-2-3 34121 NULL
140246 +disable_so_iscsi_nacl_attrib_store_nopin_response_timeout_fndecl_34124 iscsi_nacl_attrib_store_nopin_response_timeout fndecl 0-3 34124 NULL
140247 +disable_so_bi_len_gfs2_bitmap_34126 bi_len gfs2_bitmap 0 34126 NULL
140248 +disable_so_qdiv_mode_skl_wrpll_params_34127 qdiv_mode skl_wrpll_params 0 34127 NULL
140249 +disable_so_cpuidle_enable_device_fndecl_34132 cpuidle_enable_device fndecl 0 34132 NULL
140250 +disable_so_timer_slack_ns_task_struct_34139 timer_slack_ns task_struct 0 34139 NULL
140251 +disable_so_mic_max_system_addr_fndecl_34141 mic_max_system_addr fndecl 0 34141 NULL nohasharray
140252 +disable_so_ima_calc_file_shash_fndecl_34141 ima_calc_file_shash fndecl 0 34141 &disable_so_mic_max_system_addr_fndecl_34141
140253 +disable_so_lm3533_led_get_hw_delay_fndecl_34142 lm3533_led_get_hw_delay fndecl 0 34142 NULL
140254 +disable_so_nd_ipv4_address_o2nm_node_34144 nd_ipv4_address o2nm_node 0 34144 NULL
140255 +disable_so_r28_val_fc2580_freq_regs_34150 r28_val fc2580_freq_regs 0 34150 NULL
140256 +disable_so_musb_read_txfunaddr_fndecl_34175 musb_read_txfunaddr fndecl 2-0 34175 NULL
140257 +disable_so_offset_addr_pch_udc_ep_34177 offset_addr pch_udc_ep 0 34177 NULL
140258 +disable_so_stv0900_get_carr_freq_fndecl_34190 stv0900_get_carr_freq fndecl 0-2 34190 NULL
140259 +disable_so_base_addr_user_desc_34191 base_addr user_desc 0 34191 NULL
140260 +disable_so_hi_cfg_timing_div_drxj_data_34197 hi_cfg_timing_div drxj_data 0 34197 NULL
140261 +disable_so_sha1_mb_async_finup_fndecl_34207 sha1_mb_async_finup fndecl 0 34207 NULL
140262 +disable_so_hpi_outstream_set_time_scale_fndecl_34210 hpi_outstream_set_time_scale fndecl 1-0 34210 NULL
140263 +disable_so_keyup_jiffies_rc_dev_34213 keyup_jiffies rc_dev 0 34213 NULL
140264 +disable_so_inet_sk_reselect_saddr_fndecl_34214 inet_sk_reselect_saddr fndecl 0 34214 NULL
140265 +disable_so_cm_ack_timeout_fndecl_34216 cm_ack_timeout fndecl 0-1-2 34216 NULL nohasharray
140266 +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
140267 +disable_so_nsec_to_clock_t_fndecl_34222 nsec_to_clock_t fndecl 0-1 34222 NULL
140268 +disable_so_pch_systime_write_fndecl_34223 pch_systime_write fndecl 2 34223 NULL
140269 +disable_so_addr_uio_mem_34242 addr uio_mem 0 34242 NULL
140270 +disable_so_xfs_btree_split_fndecl_34248 xfs_btree_split fndecl 0 34248 NULL
140271 +disable_so_address_acpi_pct_register_34258 address acpi_pct_register 0 34258 NULL
140272 +disable_so_ci_otg_fsm_add_timer_fndecl_34261 ci_otg_fsm_add_timer fndecl 2 34261 NULL
140273 +disable_so_snd_timer_resolution_fndecl_34272 snd_timer_resolution fndecl 0 34272 NULL
140274 +disable_so_delay_rts_after_send_serial_rs485_34273 delay_rts_after_send serial_rs485 0 34273 NULL nohasharray
140275 +disable_so_set_msr_interception_fndecl_34273 set_msr_interception fndecl 2 34273 &disable_so_delay_rts_after_send_serial_rs485_34273
140276 +disable_so_qla4xxx_fw_ext_timestamp_show_fndecl_34274 qla4xxx_fw_ext_timestamp_show fndecl 0 34274 NULL
140277 +disable_so_hash_ipport6_expire_fndecl_34286 hash_ipport6_expire fndecl 4 34286 NULL
140278 +disable_so_da9063_rtc_set_time_fndecl_34291 da9063_rtc_set_time fndecl 0 34291 NULL nohasharray
140279 +disable_so_early_cpu_to_node_fndecl_34291 early_cpu_to_node fndecl 0 34291 &disable_so_da9063_rtc_set_time_fndecl_34291
140280 +disable_so_port_io_addr_34293 port io_addr 0 34293 NULL
140281 +disable_so_nilfs_palloc_bitmap_blkoff_fndecl_34306 nilfs_palloc_bitmap_blkoff fndecl 0-2 34306 NULL
140282 +disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320 last_delaylps_stamp_jiffies rtl_ps_ctl 0 34320 NULL nohasharray
140283 +disable_so_tunedfreq_s5h1420_state_34320 tunedfreq s5h1420_state 0 34320 &disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320
140284 +disable_so_rd16_nvkm_ofuncs_34339 rd16 nvkm_ofuncs 0-2 34339 NULL
140285 +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
140286 +disable_so_eeprom_delay_ipw_priv_34346 eeprom_delay ipw_priv 0 34346 NULL nohasharray
140287 +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
140288 +disable_so_intr_timer_type_vnic_fc_config_34351 intr_timer_type vnic_fc_config 0 34351 NULL
140289 +disable_so_skcipher_null_crypt_fndecl_34354 skcipher_null_crypt fndecl 0-4 34354 NULL
140290 +disable_so_ac_stime_taskstats_34355 ac_stime taskstats 0 34355 NULL
140291 +disable_so_set_bit_to_user_fndecl_34358 set_bit_to_user fndecl 0 34358 NULL
140292 +disable_so_sip_timeout_vardecl_nf_conntrack_sip_c_34365 sip_timeout vardecl_nf_conntrack_sip.c 0 34365 NULL
140293 +disable_so_map_addr_fndecl_34371 map_addr fndecl 2-3-6-7 34371 NULL
140294 +disable_so_rds_sysctl_reconnect_min_jiffies_vardecl_34380 rds_sysctl_reconnect_min_jiffies vardecl 0 34380 NULL
140295 +disable_so_note_interrupt_fndecl_34381 note_interrupt fndecl 1 34381 NULL
140296 +disable_so_addr_nv50_sync_34383 addr nv50_sync 0 34383 NULL
140297 +disable_so_clock_gate_dis2_vlv_s0ix_state_34384 clock_gate_dis2 vlv_s0ix_state 0 34384 NULL
140298 +disable_so_sctp_add_bind_addr_fndecl_34385 sctp_add_bind_addr fndecl 4 34385 NULL nohasharray
140299 +disable_so_crypto_comp_decompress_fndecl_34385 crypto_comp_decompress fndecl 3 34385 &disable_so_sctp_add_bind_addr_fndecl_34385
140300 +disable_so_s5h1409_sleep_fndecl_34392 s5h1409_sleep fndecl 2 34392 NULL
140301 +disable_so_i2c_address_mt2266_config_34394 i2c_address mt2266_config 0 34394 NULL
140302 +disable_so_ext4_inode_bitmap_csum_verify_fndecl_34396 ext4_inode_bitmap_csum_verify fndecl 2-5 34396 NULL
140303 +disable_so_blocksize_crypto_report_cipher_34404 blocksize crypto_report_cipher 0 34404 NULL
140304 +disable_so_min_dwell_time_active_conf_scan_settings_34406 min_dwell_time_active conf_scan_settings 0 34406 NULL
140305 +disable_so_sec_ptp_clock_time_34411 sec ptp_clock_time 0 34411 NULL nohasharray
140306 +disable_so_vxlan_nla_get_addr_fndecl_34411 vxlan_nla_get_addr fndecl 0 34411 &disable_so_sec_ptp_clock_time_34411
140307 +disable_so_psb_intel_sdvo_create_preferred_input_timing_fndecl_34416 psb_intel_sdvo_create_preferred_input_timing fndecl 3-4 34416 NULL
140308 +disable_so_decode_attr_bitmap_fndecl_34420 decode_attr_bitmap fndecl 0 34420 NULL
140309 +disable_so_address_acpi_mem_space_context_34426 address acpi_mem_space_context 0 34426 NULL
140310 +disable_so_netlbl_domhsh_hash_fndecl_34442 netlbl_domhsh_hash fndecl 0 34442 NULL
140311 +disable_so_bdbar_addr_ichdev_34446 bdbar_addr ichdev 0 34446 NULL
140312 +disable_so_ksm_thread_sleep_millisecs_vardecl_ksm_c_34451 ksm_thread_sleep_millisecs vardecl_ksm.c 0 34451 NULL
140313 +disable_so_signal_ieee80211_rx_status_34458 signal ieee80211_rx_status 0 34458 NULL
140314 +disable_so_dma_addr_cxio_hal_ctrl_qp_34469 dma_addr cxio_hal_ctrl_qp 0 34469 NULL
140315 +disable_so_ata_lookup_timeout_table_fndecl_34470 ata_lookup_timeout_table fndecl 1 34470 NULL
140316 +disable_so_sk_rmem_schedule_fndecl_34476 sk_rmem_schedule fndecl 3 34476 NULL
140317 +disable_so_end_seq_tcp_sack_block_34486 end_seq tcp_sack_block 0 34486 NULL
140318 +disable_so_min_delay_intel_ilk_power_mgmt_34505 min_delay intel_ilk_power_mgmt 0 34505 NULL
140319 +disable_so_sol_time_fcoe_ctlr_34513 sol_time fcoe_ctlr 0 34513 NULL
140320 +disable_so_spu_set_interrupt_mode_fndecl_34518 spu_set_interrupt_mode fndecl 0 34518 NULL
140321 +disable_so_stmmac_interrupt_fndecl_34535 stmmac_interrupt fndecl 1 34535 NULL
140322 +disable_so_sin6_family_sockaddr_in6_34544 sin6_family sockaddr_in6 0 34544 NULL
140323 +disable_so_mem_addr__drm_via_descriptor_34550 mem_addr _drm_via_descriptor 0 34550 NULL
140324 +disable_so_root_server_addr_vardecl_34556 root_server_addr vardecl 0 34556 NULL
140325 +disable_so_pfkey_sadb_addr2xfrm_addr_fndecl_34565 pfkey_sadb_addr2xfrm_addr fndecl 0 34565 NULL
140326 +disable_so_map_sip_addr_fndecl_34566 map_sip_addr fndecl 2-3 34566 NULL
140327 +disable_so_path_refresh_time_mesh_config_34567 path_refresh_time mesh_config 0 34567 NULL nohasharray
140328 +disable_so_ccp_register_sha_algs_fndecl_34567 ccp_register_sha_algs fndecl 0 34567 &disable_so_path_refresh_time_mesh_config_34567
140329 +disable_so_max_tx_power_mwifiex_chan_freq_power_34571 max_tx_power mwifiex_chan_freq_power 0 34571 NULL
140330 +disable_so_last_mlx4_bitmap_34590 last mlx4_bitmap 0 34590 NULL
140331 +disable_so_alloc_cpumask_var_fndecl_34599 alloc_cpumask_var fndecl 2 34599 NULL
140332 +disable_so_addr_macb_dma_desc_34600 addr macb_dma_desc 0 34600 NULL
140333 +disable_so_eee_timer_vardecl_sxgbe_main_c_34602 eee_timer vardecl_sxgbe_main.c 0 34602 NULL nohasharray
140334 +disable_so_rdx_kvm_regs_34602 rdx kvm_regs 0 34602 &disable_so_eee_timer_vardecl_sxgbe_main_c_34602
140335 +disable_so_rsi_kvm_regs_34605 rsi kvm_regs 0 34605 NULL
140336 +disable_so_task_tgid_nr_ns_fndecl_34623 task_tgid_nr_ns fndecl 0 34623 NULL
140337 +disable_so_saddr_irnet_log_34630 saddr irnet_log 0 34630 NULL
140338 +disable_so_timestart_edc_34631 timestart edc 0 34631 NULL
140339 +disable_so_saddr_tcp4_pseudohdr_34636 saddr tcp4_pseudohdr 0 34636 NULL
140340 +disable_so_ab3100_mask_and_set_register_interruptible_fndecl_34643 ab3100_mask_and_set_register_interruptible fndecl 0 34643 NULL
140341 +disable_so_hsave_msr_nested_state_34651 hsave_msr nested_state 0 34651 NULL
140342 +disable_so_schedule_timeout_uninterruptible_fndecl_34670 schedule_timeout_uninterruptible fndecl 1-0 34670 NULL
140343 +disable_so_addr_tuner_i2c_props_34671 addr tuner_i2c_props 0 34671 NULL
140344 +disable_so_hash_ip4_expire_fndecl_34676 hash_ip4_expire fndecl 4 34676 NULL
140345 +disable_so_rxfunaddr_musb_csr_regs_34678 rxfunaddr musb_csr_regs 0 34678 NULL
140346 +disable_so_timer_intv_tipc_link_req_34680 timer_intv tipc_link_req 0 34680 NULL
140347 +disable_so_mounted_uid_ncp_fs_info_34684 mounted_uid ncp_fs_info 0 34684 NULL
140348 +disable_so_crypto_ablkcipher_setkey_fndecl_34685 crypto_ablkcipher_setkey fndecl 0-3 34685 NULL
140349 +disable_so_pm_qos_update_request_timeout_fndecl_34688 pm_qos_update_request_timeout fndecl 3-2 34688 NULL
140350 +disable_so_max_interrupt_work_vardecl_starfire_c_34691 max_interrupt_work vardecl_starfire.c 0 34691 NULL nohasharray
140351 +disable_so_register_dnaddr_notifier_fndecl_34691 register_dnaddr_notifier fndecl 0 34691 &disable_so_max_interrupt_work_vardecl_starfire_c_34691
140352 +disable_so_incr_cpu_timer_list_34693 incr cpu_timer_list 0 34693 NULL
140353 +disable_so_crypto_pcbc_decrypt_segment_fndecl_34695 crypto_pcbc_decrypt_segment fndecl 0 34695 NULL
140354 +disable_so_sgid_index_ib_global_route_34700 sgid_index ib_global_route 0 34700 NULL
140355 +disable_so_min_mtime_sit_info_34717 min_mtime sit_info 0 34717 NULL nohasharray
140356 +disable_so_panel_power_down_delay_intel_dp_34717 panel_power_down_delay intel_dp 0 34717 &disable_so_min_mtime_sit_info_34717
140357 +disable_so_i_hash_shift_vardecl_inode_c_34719 i_hash_shift vardecl_inode.c 0 34719 NULL
140358 +disable_so_wusb_trust_timeout_show_fndecl_34721 wusb_trust_timeout_show fndecl 0 34721 NULL nohasharray
140359 +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
140360 +disable_so_time_ntlmv2_resp_34723 time ntlmv2_resp 0 34723 NULL
140361 +disable_so_cache_time_vardecl_sbs_c_34731 cache_time vardecl_sbs.c 0 34731 NULL
140362 +disable_so_calc_eng_mem_clock_fndecl_34737 calc_eng_mem_clock fndecl 2-0 34737 NULL
140363 +disable_so_rx_time_us_qlcnic_nic_intr_coalesce_34739 rx_time_us qlcnic_nic_intr_coalesce 0 34739 NULL
140364 +disable_so_di_mtime_qnx4_inode_entry_34740 di_mtime qnx4_inode_entry 0 34740 NULL
140365 +disable_so_ts_paddr_start_ath_hw_34743 ts_paddr_start ath_hw 0 34743 NULL
140366 +disable_so_smsc95xx_enable_phy_wakeup_interrupts_fndecl_34747 smsc95xx_enable_phy_wakeup_interrupts fndecl 0-2 34747 NULL
140367 +disable_so_ccp_sha_finup_fndecl_34752 ccp_sha_finup fndecl 0 34752 NULL
140368 +disable_so_sdr_fm_freq_vivid_dev_34755 sdr_fm_freq vivid_dev 0 34755 NULL
140369 +disable_so_out_n_analog_pcm_runtime_34756 out_n_analog pcm_runtime 0 34756 NULL
140370 +disable_so_dmaaddr_net2280_dma_34761 dmaaddr net2280_dma 0 34761 NULL
140371 +disable_so_wl12xx_tx_delayed_compl_fndecl_34763 wl12xx_tx_delayed_compl fndecl 0 34763 NULL
140372 +disable_so_uv_rtc_set_timer_fndecl_34765 uv_rtc_set_timer fndecl 1 34765 NULL
140373 +disable_so_switch_start_time_ath_chanctx_sched_34766 switch_start_time ath_chanctx_sched 0 34766 NULL
140374 +disable_so_xhci_calculate_intel_u2_timeout_fndecl_34769 xhci_calculate_intel_u2_timeout fndecl 0 34769 NULL
140375 +disable_so_addrconf_get_prefix_route_fndecl_34770 addrconf_get_prefix_route fndecl 2 34770 NULL nohasharray
140376 +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
140377 +disable_so_ts_total_peak_time_ref_34800 ts_total peak_time_ref 0 34800 NULL nohasharray
140378 +disable_so_airtime_link_metric_get_fndecl_34800 airtime_link_metric_get fndecl 0 34800 &disable_so_ts_total_peak_time_ref_34800
140379 +disable_so_btrfsic_block_link_hashtable_lookup_fndecl_34807 btrfsic_block_link_hashtable_lookup fndecl 2-4 34807 NULL
140380 +disable_so_posix_cpu_nsleep_fndecl_34821 posix_cpu_nsleep fndecl 1 34821 NULL
140381 +disable_so_phys_addr_kvm_coalesced_mmio_34828 phys_addr kvm_coalesced_mmio 0 34828 NULL
140382 +disable_so_baddr_sym_m_vtob_34832 baddr sym_m_vtob 0 34832 NULL
140383 +disable_so_tp_set_timers_fndecl_34836 tp_set_timers fndecl 2 34836 NULL nohasharray
140384 +disable_so_clock_t_to_jiffies_fndecl_34836 clock_t_to_jiffies fndecl 0-1 34836 &disable_so_tp_set_timers_fndecl_34836
140385 +disable_so_bq2415x_sysfs_show_timer_fndecl_34838 bq2415x_sysfs_show_timer fndecl 0 34838 NULL
140386 +disable_so_compat_sys_utimensat_fndecl_34845 compat_sys_utimensat fndecl 1-0 34845 NULL
140387 +disable_so_be64_to_timespec_fndecl_34857 be64_to_timespec fndecl 1 34857 NULL
140388 +disable_so_bus_addr_drm_ati_pcigart_info_34860 bus_addr drm_ati_pcigart_info 0 34860 NULL
140389 +disable_so_rt2x00crypto_rx_insert_iv_fndecl_34864 rt2x00crypto_rx_insert_iv fndecl 2 34864 NULL
140390 +disable_so___mmc_set_clock_fndecl_34870 __mmc_set_clock fndecl 2 34870 NULL
140391 +disable_so_node_random_fndecl_34871 node_random fndecl 0 34871 NULL
140392 +disable_so_timer_endnode_hello_message_34875 timer endnode_hello_message 0 34875 NULL
140393 +disable_so_drbg_hash_df_fndecl_34876 drbg_hash_df fndecl 0-3 34876 NULL
140394 +disable_so_xfs_btree_shift_keys_fndecl_34880 xfs_btree_shift_keys fndecl 4 34880 NULL
140395 +disable_so_check_freqs_fndecl_34886 check_freqs fndecl 2 34886 NULL
140396 +disable_so_zd_iowrite16_fndecl_34890 zd_iowrite16 fndecl 0 34890 NULL
140397 +disable_so_timespec_to_be64_fndecl_34898 timespec_to_be64 fndecl 0 34898 NULL
140398 +disable_so_random_frame_fotg210_hcd_34908 random_frame fotg210_hcd 0 34908 NULL
140399 +disable_so___addrconf_sysctl_register_fndecl_34918 __addrconf_sysctl_register fndecl 0 34918 NULL
140400 +disable_so_addr_sge_fl_34923 addr sge_fl 0 34923 NULL
140401 +disable_so_irq_timeout_read_fndecl_34926 irq_timeout_read fndecl 3-0 34926 NULL
140402 +disable_so_show_interrupt_enable_fndecl_34935 show_interrupt_enable fndecl 0 34935 NULL
140403 +disable_so_sctp_getsockopt_paddr_thresholds_fndecl_34938 sctp_getsockopt_paddr_thresholds fndecl 0 34938 NULL
140404 +disable_so_nilfs_superblock_sb_write_time_show_fndecl_34943 nilfs_superblock_sb_write_time_show fndecl 0 34943 NULL
140405 +disable_so_emac_addr_bnx2x_mac_vals_34948 emac_addr bnx2x_mac_vals 0 34948 NULL
140406 +disable_so_fs_tss_segment_32_34954 fs tss_segment_32 0 34954 NULL
140407 +disable_so_twl6030_interrupt_mask_fndecl_34960 twl6030_interrupt_mask fndecl 2-0 34960 NULL
140408 +disable_so_tda18271_sleep_fndecl_34961 tda18271_sleep fndecl 0 34961 NULL
140409 +disable_so_smack_task_setscheduler_fndecl_34976 smack_task_setscheduler fndecl 0 34976 NULL
140410 +disable_so_rp_ts_jiffies_xpc_activate_mq_msghdr_uv_34992 rp_ts_jiffies xpc_activate_mq_msghdr_uv 0 34992 NULL
140411 +disable_so_p_vaddr_elf64_phdr_34996 p_vaddr elf64_phdr 0 34996 NULL
140412 +disable_so_ath9k_hw_rf_set_freq_fndecl_35000 ath9k_hw_rf_set_freq fndecl 0 35000 NULL
140413 +disable_so_regulator_set_voltage_time_sel_fndecl_35005 regulator_set_voltage_time_sel fndecl 2-3-0 35005 NULL
140414 +disable_so_read_addr_stride___cache_35010 read_addr_stride __cache 0 35010 NULL
140415 +disable_so_get_slave_base_gid_ix_fndecl_35011 get_slave_base_gid_ix fndecl 0-2-3 35011 NULL
140416 +disable_so_sccb_reg_write_fndecl_35015 sccb_reg_write fndecl 2-3 35015 NULL
140417 +disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019 fsl_pwm_calculate_period_cycles fndecl 0-2 35019 NULL nohasharray
140418 +disable_so_dn_hash_sock_fndecl_35019 dn_hash_sock fndecl 0 35019 &disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019
140419 +disable_so_lp8788_rtc_set_time_fndecl_35021 lp8788_rtc_set_time fndecl 0 35021 NULL
140420 +disable_so_qos_ctl_libipw_hdr_3addrqos_35024 qos_ctl libipw_hdr_3addrqos 0 35024 NULL
140421 +disable_so_clk_divider_set_rate_fndecl_35029 clk_divider_set_rate fndecl 2-3 35029 NULL
140422 +disable_so_et1phyaddr_ssb_sprom_35034 et1phyaddr ssb_sprom 0 35034 NULL
140423 +disable_so_tg3_hwclock_to_timestamp_fndecl_35038 tg3_hwclock_to_timestamp fndecl 2 35038 NULL
140424 +disable_so_cipso_v4_bitmap_walk_fndecl_35041 cipso_v4_bitmap_walk fndecl 0-3 35041 NULL
140425 +disable_so_wmi_set_mac_address_fndecl_35043 wmi_set_mac_address fndecl 0 35043 NULL
140426 +disable_so_hpi_cobranet_get_macaddress_fndecl_35048 hpi_cobranet_get_macaddress fndecl 1 35048 NULL
140427 +disable_so_rds_sysctl_reconnect_max_jiffies_vardecl_35052 rds_sysctl_reconnect_max_jiffies vardecl 0 35052 NULL
140428 +disable_so_bg_inode_bitmap_ext2_group_desc_35053 bg_inode_bitmap ext2_group_desc 0 35053 NULL
140429 +disable_so_jiffies_u132_endp_35057 jiffies u132_endp 0 35057 NULL
140430 +disable_so_vivid_sdr_s_frequency_fndecl_35060 vivid_sdr_s_frequency fndecl 0 35060 NULL nohasharray
140431 +disable_so_bnx2x_rearm_latch_signal_fndecl_35060 bnx2x_rearm_latch_signal fndecl 2 35060 &disable_so_vivid_sdr_s_frequency_fndecl_35060
140432 +disable_so_SYSC_signalfd4_fndecl_35061 SYSC_signalfd4 fndecl 4 35061 NULL
140433 +disable_so_qp_get_mtt_addr_fndecl_35062 qp_get_mtt_addr fndecl 0 35062 NULL nohasharray
140434 +disable_so_put_dec_fndecl_35062 put_dec fndecl 2 35062 &disable_so_qp_get_mtt_addr_fndecl_35062
140435 +disable_so_time_perf_cgroup_info_35063 time perf_cgroup_info 0 35063 NULL
140436 +disable_so_xattr_datum_hashkey_fndecl_35065 xattr_datum_hashkey fndecl 4 35065 NULL
140437 +disable_so_fandiv1_nct6775_data_35066 fandiv1 nct6775_data 0 35066 NULL
140438 +disable_so_backbias_response_time_radeon_dpm_35069 backbias_response_time radeon_dpm 0 35069 NULL
140439 +disable_so_wrmsrl_safe_on_cpu_fndecl_35071 wrmsrl_safe_on_cpu fndecl 0-1 35071 NULL
140440 +disable_so_update_time_vardecl_page_writeback_c_35083 update_time vardecl_page-writeback.c 0 35083 NULL
140441 +disable_so_fifo_copy_timeout_rtl8139_private_35085 fifo_copy_timeout rtl8139_private 0 35085 NULL
140442 +disable_so_kstrtou16_from_user_fndecl_35089 kstrtou16_from_user fndecl 2 35089 NULL
140443 +disable_so_atomic_check_drm_crtc_helper_funcs_35115 atomic_check drm_crtc_helper_funcs 0 35115 NULL
140444 +disable_so_sprintf_fndecl_35121 sprintf fndecl 0 35121 NULL
140445 +disable_so_ipv6_add_addr_fndecl_35131 ipv6_add_addr fndecl 4-5-7-8-6 35131 NULL
140446 +disable_so_free_irq_fndecl_35135 free_irq fndecl 1 35135 NULL
140447 +disable_so_inet_addr_onlink_fndecl_35142 inet_addr_onlink fndecl 2-3 35142 NULL
140448 +disable_so_dbg_snprintf_key_fndecl_35144 dbg_snprintf_key fndecl 4 35144 NULL
140449 +disable_so_compute_guest_tsc_fndecl_35147 compute_guest_tsc fndecl 0 35147 NULL
140450 +disable_so_ieee80211_crypto_ccmp_decrypt_fndecl_35154 ieee80211_crypto_ccmp_decrypt fndecl 2 35154 NULL
140451 +disable_so_start_time_task_struct_35158 start_time task_struct 0 35158 NULL
140452 +disable_so__da9063_wdt_set_timeout_fndecl_35161 _da9063_wdt_set_timeout fndecl 2-0 35161 NULL
140453 +disable_so_hard_add_expires_seconds_xfrm_lifetime_cfg_35162 hard_add_expires_seconds xfrm_lifetime_cfg 0 35162 NULL
140454 +disable_so_page_address_ms_param_register_35167 page_address ms_param_register 0 35167 NULL nohasharray
140455 +disable_so_rsaddr_irnet_socket_35167 rsaddr irnet_socket 0 35167 &disable_so_page_address_ms_param_register_35167
140456 +disable_so_acpi_os_remove_interrupt_handler_fndecl_35171 acpi_os_remove_interrupt_handler fndecl 1 35171 NULL
140457 +disable_so_hash_mac4_expire_fndecl_35179 hash_mac4_expire fndecl 4 35179 NULL
140458 +disable_so_wd_timeout_irlap_cb_35189 wd_timeout irlap_cb 0 35189 NULL
140459 +disable_so_bitmap_set_memory_bits_fndecl_35200 bitmap_set_memory_bits fndecl 2 35200 NULL
140460 +disable_so_o2nm_cluster_attr_idle_timeout_ms_read_fndecl_35219 o2nm_cluster_attr_idle_timeout_ms_read fndecl 0 35219 NULL
140461 +disable_so_set_clock_sdhci_ops_35233 set_clock sdhci_ops 2 35233 NULL
140462 +disable_so_dib3000mc_set_timing_fndecl_35234 dib3000mc_set_timing fndecl 2-3 35234 NULL
140463 +disable_so_ui_ctimensec_ufs2_inode_35235 ui_ctimensec ufs2_inode 0 35235 NULL nohasharray
140464 +disable_so_timerfd_fget_fndecl_35235 timerfd_fget fndecl 1 35235 &disable_so_ui_ctimensec_ufs2_inode_35235
140465 +disable_so_fat_time_fat2unix_fndecl_35238 fat_time_fat2unix fndecl 5-4-3 35238 NULL nohasharray
140466 +disable_so_c_reconnect_jiffies_rds_connection_35238 c_reconnect_jiffies rds_connection 0 35238 &disable_so_fat_time_fat2unix_fndecl_35238
140467 +disable_so_link_transition_jiffies_cas_35242 link_transition_jiffies cas 0 35242 NULL
140468 +disable_so_nested_vmx_load_msr_fndecl_35245 nested_vmx_load_msr fndecl 2 35245 NULL
140469 +disable_so_freqmax_snd_usb_endpoint_35248 freqmax snd_usb_endpoint 0 35248 NULL
140470 +disable_so___ocfs2_write_remove_suid_fndecl_35250 __ocfs2_write_remove_suid fndecl 0 35250 NULL
140471 +disable_so_si_parse_pplib_clock_info_fndecl_35257 si_parse_pplib_clock_info fndecl 3 35257 NULL
140472 +disable_so_nfs_init_timeout_values_fndecl_35265 nfs_init_timeout_values fndecl 3-4-2 35265 NULL
140473 +disable_so_pm_generic_runtime_suspend_fndecl_35268 pm_generic_runtime_suspend fndecl 0 35268 NULL
140474 +disable_so_err_time_ip_tunnel_35271 err_time ip_tunnel 0 35271 NULL
140475 +disable_so_addr_1_qla8044_minidump_entry_pollrdmwr_35274 addr_1 qla8044_minidump_entry_pollrdmwr 0 35274 NULL
140476 +disable_so_simple_strtoull_fndecl_35278 simple_strtoull fndecl 0 35278 NULL
140477 +disable_so_jiffies_to_wait_irctl_35279 jiffies_to_wait irctl 0 35279 NULL
140478 +disable_so_delay_loop_fndecl_35280 delay_loop fndecl 1 35280 NULL
140479 +disable_so_lbs_set_deep_sleep_fndecl_35287 lbs_set_deep_sleep fndecl 0 35287 NULL nohasharray
140480 +disable_so_log_start_addr_client_hdr_35287 log_start_addr client_hdr 0 35287 &disable_so_lbs_set_deep_sleep_fndecl_35287
140481 +disable_so_max_sleep_period_ieee80211_conf_35289 max_sleep_period ieee80211_conf 0 35289 NULL
140482 +disable_so_default_mclk_radeon_clock_35306 default_mclk radeon_clock 0 35306 NULL nohasharray
140483 +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
140484 +disable_so_sctp_setsockopt_primary_addr_fndecl_35330 sctp_setsockopt_primary_addr fndecl 3-0 35330 NULL
140485 +disable_so_sys_setreuid_fndecl_35338 sys_setreuid fndecl 0-1-2 35338 NULL
140486 +disable_so_tailbuf_paddr_gr_ep_35341 tailbuf_paddr gr_ep 0 35341 NULL
140487 +disable_so_hpi_write_words_le16_fndecl_35350 hpi_write_words_le16 fndecl 2-4 35350 NULL
140488 +disable_so_kvm_set_irq_fndecl_35352 kvm_set_irq fndecl 3-2 35352 NULL
140489 +disable_so_rq_pbl_addr_lo_fcoe_kwqe_conn_offload1_35353 rq_pbl_addr_lo fcoe_kwqe_conn_offload1 0 35353 NULL
140490 +disable_so_trim_timeout_mmc_ext_csd_35357 trim_timeout mmc_ext_csd 0 35357 NULL
140491 +disable_so_alps_get_bitmap_points_fndecl_35358 alps_get_bitmap_points fndecl 1 35358 NULL nohasharray
140492 +disable_so_nilfs_btree_node_init_fndecl_35358 nilfs_btree_node_init fndecl 4 35358 &disable_so_alps_get_bitmap_points_fndecl_35358
140493 +disable_so_fl_break_time_file_lock_35359 fl_break_time file_lock 0 35359 NULL
140494 +disable_so_read_addr_qla82xx_md_entry_cache_35362 read_addr qla82xx_md_entry_cache 0 35362 NULL
140495 +disable_so_maddr_xmaddr_35364 maddr xmaddr 0 35364 NULL
140496 +disable_so_timeout_per_command_vscsiif_request_35368 timeout_per_command vscsiif_request 0 35368 NULL
140497 +disable_so_fuse_read_interrupt_fndecl_35386 fuse_read_interrupt fndecl 3-0 35386 NULL
140498 +disable_so_vsock_addr_init_fndecl_35395 vsock_addr_init fndecl 2 35395 NULL
140499 +disable_so_khugepaged_alloc_sleep_millisecs_vardecl_huge_memory_c_35404 khugepaged_alloc_sleep_millisecs vardecl_huge_memory.c 0 35404 NULL
140500 +disable_so_crypto_ahash_setkey_fndecl_35405 crypto_ahash_setkey fndecl 0-3 35405 NULL
140501 +disable_so_en_addr1_nphy_rf_control_override_rev3_35419 en_addr1 nphy_rf_control_override_rev3 0 35419 NULL
140502 +disable_so_rds_ib_update_ipaddr_fndecl_35431 rds_ib_update_ipaddr fndecl 0-2 35431 NULL
140503 +disable_so_address_atto_vda_sge_35432 address atto_vda_sge 0 35432 NULL
140504 +disable_so_w1_process_command_addremove_fndecl_35438 w1_process_command_addremove fndecl 0 35438 NULL
140505 +disable_so_smp_cmd_pairing_random_fndecl_35441 smp_cmd_pairing_random fndecl 0 35441 NULL
140506 +disable_so_crypto_gcm_module_init_fndecl_35446 crypto_gcm_module_init fndecl 0 35446 NULL
140507 +disable_so_ath5k_hw_get_default_slottime_fndecl_35448 ath5k_hw_get_default_slottime fndecl 0 35448 NULL
140508 +disable_so_ac_gid_acct_v3_35461 ac_gid acct_v3 0 35461 NULL nohasharray
140509 +disable_so_bitmap_checkpage_fndecl_35461 bitmap_checkpage fndecl 2 35461 &disable_so_ac_gid_acct_v3_35461
140510 +disable_so_bitmap_blkno_ocfs2_super_35475 bitmap_blkno ocfs2_super 0 35475 NULL
140511 +disable_so_rate_dummy_systimer_pcm_35487 rate dummy_systimer_pcm 0 35487 NULL
140512 +disable_so_moder_time_mlx4_en_cq_35496 moder_time mlx4_en_cq 0 35496 NULL
140513 +disable_so_orion_spi_runtime_resume_fndecl_35506 orion_spi_runtime_resume fndecl 0 35506 NULL
140514 +disable_so_monotonic_time_snsec_vsyscall_gtod_data_35513 monotonic_time_snsec vsyscall_gtod_data 0 35513 NULL
140515 +disable_so_mceusb_process_ir_data_fndecl_35515 mceusb_process_ir_data fndecl 2 35515 NULL
140516 +disable_so_dst_set_freq_fndecl_35516 dst_set_freq fndecl 2 35516 NULL
140517 +disable_so_rtl8139_weird_interrupt_fndecl_35523 rtl8139_weird_interrupt fndecl 4-5 35523 NULL
140518 +disable_so_irlmp_start_discovery_timer_fndecl_35529 irlmp_start_discovery_timer fndecl 2 35529 NULL
140519 +disable_so_address_SGentry_35534 address SGentry 0 35534 NULL
140520 +disable_so_src_clk_freq_msdc_host_35541 src_clk_freq msdc_host 0 35541 NULL
140521 +disable_so_SYSC_signal_fndecl_35543 SYSC_signal fndecl 1 35543 NULL
140522 +disable_so_current_frequency_lgdt3306a_state_35547 current_frequency lgdt3306a_state 0 35547 NULL
140523 +disable_so_i_rt_spc_timelimit_qc_info_35555 i_rt_spc_timelimit qc_info 0 35555 NULL
140524 +disable_so_host_kvm_shared_msr_values_35560 host kvm_shared_msr_values 0 35560 NULL
140525 +disable_so_mapped_loc_addr_nes_cm_info_35561 mapped_loc_addr nes_cm_info 0 35561 NULL
140526 +disable_so_ath6kl_set_addrwin_reg_fndecl_35566 ath6kl_set_addrwin_reg fndecl 0-2 35566 NULL
140527 +disable_so_output_sleep_fndecl_35570 output_sleep fndecl 1 35570 NULL
140528 +disable_so_aes_decrypt_fail_read_fndecl_35596 aes_decrypt_fail_read fndecl 0-3 35596 NULL
140529 +disable_so_hw_timeout_redrat3_dev_35597 hw_timeout redrat3_dev 0 35597 NULL
140530 +disable_so_cx231xx_set_analog_freq_fndecl_35598 cx231xx_set_analog_freq fndecl 2 35598 NULL
140531 +disable_so_sctp_conn_schedule_fndecl_35608 sctp_conn_schedule fndecl 1 35608 NULL
140532 +disable_so_runtime_suspend_sleep_time_cyapa_35610 runtime_suspend_sleep_time cyapa 0 35610 NULL
140533 +disable_so_debug_dma_unmap_page_fndecl_35623 debug_dma_unmap_page fndecl 3-2 35623 NULL
140534 +disable_so_timecounter_read_fndecl_35625 timecounter_read fndecl 0 35625 NULL
140535 +disable_so_clock_mmc_ios_35630 clock mmc_ios 0 35630 NULL
140536 +disable_so_pretimeout_kempld_wdt_data_35641 pretimeout kempld_wdt_data 0 35641 NULL
140537 +disable_so_time_show_fndecl_35660 time_show fndecl 0 35660 NULL
140538 +disable_so_div3_pll_div_35668 div3 pll_div 0 35668 NULL
140539 +disable_so_btree_get_extent_fndecl_35670 btree_get_extent fndecl 4-5 35670 NULL
140540 +disable_so_paddr_ath10k_skb_cb_35676 paddr ath10k_skb_cb 0 35676 NULL
140541 +disable_so_pci_bus_mraid_hba_info_35677 pci_bus mraid_hba_info 0 35677 NULL
140542 +disable_so_m41t80_get_datetime_fndecl_35678 m41t80_get_datetime fndecl 0 35678 NULL
140543 +disable_so_sh_tmu_clock_event_next_fndecl_35683 sh_tmu_clock_event_next fndecl 1 35683 NULL
140544 +disable_so_randomize_range_fndecl_35684 randomize_range fndecl 1-2-3-0 35684 NULL
140545 +disable_so_complete_signal_fndecl_35696 complete_signal fndecl 1 35696 NULL
140546 +disable_so_nft_hash_insert_fndecl_35701 nft_hash_insert fndecl 0 35701 NULL
140547 +disable_so_kvm_vm_ioctl_set_tss_addr_fndecl_35702 kvm_vm_ioctl_set_tss_addr fndecl 2 35702 NULL
140548 +disable_so_si2165_adjust_pll_divl_fndecl_35704 si2165_adjust_pll_divl fndecl 0 35704 NULL
140549 +disable_so_addr_l_xfer_desc_35720 addr_l xfer_desc 0 35720 NULL
140550 +disable_so_m_hash_dlm_message_35721 m_hash dlm_message 0 35721 NULL
140551 +disable_so_end_freq_khz_ieee80211_freq_range_35730 end_freq_khz ieee80211_freq_range 0 35730 NULL
140552 +disable_so_start_addr_vpdma_dtd_35734 start_addr vpdma_dtd 0 35734 NULL
140553 +disable_so_red_calc_qavg_from_idle_time_fndecl_35745 red_calc_qavg_from_idle_time fndecl 0 35745 NULL
140554 +disable_so_cg_spll_spread_spectrum_2_si_clock_registers_35754 cg_spll_spread_spectrum_2 si_clock_registers 0 35754 NULL
140555 +disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758 l2tp_flowinfo sockaddr_l2tpip6 0 35758 NULL nohasharray
140556 +disable_so_sk_txhash_sock_35758 sk_txhash sock 0 35758 &disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758
140557 +disable_so_get_mac_address_efx_nic_type_35761 get_mac_address efx_nic_type 0 35761 NULL
140558 +disable_so_crypto_aead_alg_ivsize_fndecl_35777 crypto_aead_alg_ivsize fndecl 0 35777 NULL
140559 +disable_so_vga_switcheroo_runtime_suspend_fndecl_35778 vga_switcheroo_runtime_suspend fndecl 0 35778 NULL
140560 +disable_so_sm_lookup_bitmap_fndecl_35780 sm_lookup_bitmap fndecl 2 35780 NULL
140561 +disable_so_r6040_interrupt_fndecl_35784 r6040_interrupt fndecl 1 35784 NULL
140562 +disable_so_timer_installed_vardecl_ad1848_c_35808 timer_installed vardecl_ad1848.c 0 35808 NULL
140563 +disable_so_addr_to_kill_35815 addr to_kill 0 35815 NULL
140564 +disable_so_postsleep_max_us_mmc_ioc_cmd_35817 postsleep_max_us mmc_ioc_cmd 0 35817 NULL
140565 +disable_so_calc_hash_fndecl_35821 calc_hash fndecl 0-3 35821 NULL
140566 +disable_so_testscript_addr_ath6kl_hw_35825 testscript_addr ath6kl_hw 0 35825 NULL
140567 +disable_so_dma_addr_cpcs_trailer_desc_35826 dma_addr cpcs_trailer_desc 0 35826 NULL nohasharray
140568 +disable_so_nr_threads_signal_struct_35826 nr_threads signal_struct 0 35826 &disable_so_dma_addr_cpcs_trailer_desc_35826
140569 +disable_so_iwl_mvm_schedule_csa_period_fndecl_35828 iwl_mvm_schedule_csa_period fndecl 3-4-0 35828 NULL
140570 +disable_so_nfs4_schedule_stateid_recovery_fndecl_35861 nfs4_schedule_stateid_recovery fndecl 0 35861 NULL
140571 +disable_so_timeout_last_ncp_server_35864 timeout_last ncp_server 0 35864 NULL
140572 +disable_so_send_utimes_fndecl_35871 send_utimes fndecl 3-0-2 35871 NULL nohasharray
140573 +disable_so_remote_rp_ts_jiffies_xpc_partition_35871 remote_rp_ts_jiffies xpc_partition 0 35871 &disable_so_send_utimes_fndecl_35871
140574 +disable_so_current_frequency_lgdt3305_state_35902 current_frequency lgdt3305_state 0 35902 NULL
140575 +disable_so_dram_addr_to_input_addr_fndecl_35905 dram_addr_to_input_addr fndecl 0-2 35905 NULL nohasharray
140576 +disable_so_ifa_local_dn_ifaddr_35905 ifa_local dn_ifaddr 0 35905 &disable_so_dram_addr_to_input_addr_fndecl_35905
140577 +disable_so_proc_uid_map_write_fndecl_35919 proc_uid_map_write fndecl 0-3 35919 NULL
140578 +disable_so_snd_timer_user_fasync_fndecl_35926 snd_timer_user_fasync fndecl 1 35926 NULL nohasharray
140579 +disable_so_ecb_aes_encrypt_fndecl_35926 ecb_aes_encrypt fndecl 0-4 35926 &disable_so_snd_timer_user_fasync_fndecl_35926
140580 +disable_so_st_ctime_sec_p9_stat_dotl_35932 st_ctime_sec p9_stat_dotl 0 35932 NULL
140581 +disable_so_cg_spll_func_cntl_rv730_clock_registers_35937 cg_spll_func_cntl rv730_clock_registers 0 35937 NULL
140582 +disable_so_phy_addr_niu_35946 phy_addr niu 0 35946 NULL
140583 +disable_so_curr_freq_ufs_clk_info_35949 curr_freq ufs_clk_info 0 35949 NULL
140584 +disable_so_ac_gid_taskstats_35951 ac_gid taskstats 0 35951 NULL
140585 +disable_so_addr_hi_eth_rx_bd_35955 addr_hi eth_rx_bd 0 35955 NULL nohasharray
140586 +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
140587 +disable_so_crypto_cmac_digest_setkey_fndecl_35967 crypto_cmac_digest_setkey fndecl 0-3 35967 NULL
140588 +disable_so_abort_mfi_phys_addr_hi_megasas_abort_frame_35969 abort_mfi_phys_addr_hi megasas_abort_frame 0 35969 NULL
140589 +disable_so_pch_can_bit_set_fndecl_35970 pch_can_bit_set fndecl 2 35970 NULL
140590 +disable_so_kvasprintf_fndecl_35976 kvasprintf fndecl 1 35976 NULL
140591 +disable_so___bitmap_parse_fndecl_35977 __bitmap_parse fndecl 0-2-5 35977 NULL
140592 +disable_so_nct6775_select_fan_div_fndecl_35983 nct6775_select_fan_div fndecl 3-4 35983 NULL
140593 +disable_so_ip_hash_ip4_elem_35987 ip hash_ip4_elem 0 35987 NULL
140594 +disable_so_nct6775_write_fan_div_common_fndecl_35989 nct6775_write_fan_div_common fndecl 2 35989 NULL nohasharray
140595 +disable_so_get_mtime_fndecl_35989 get_mtime fndecl 0 35989 &disable_so_nct6775_write_fan_div_common_fndecl_35989
140596 +disable_so_sctp_getsockopt_peer_addr_params_fndecl_35998 sctp_getsockopt_peer_addr_params fndecl 0 35998 NULL
140597 +disable_so_tuner_frequency_stv0299_state_35999 tuner_frequency stv0299_state 0 35999 NULL
140598 +disable_so_sinfo_timetolive_sctp_sndrcvinfo_36000 sinfo_timetolive sctp_sndrcvinfo 0 36000 NULL
140599 +disable_so_h_start_jiffies_jbd2_journal_handle_36008 h_start_jiffies jbd2_journal_handle 0 36008 NULL nohasharray
140600 +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
140601 +disable_so_uv_local_mmr_address_fndecl_36009 uv_local_mmr_address fndecl 1 36009 NULL
140602 +disable_so_adxl34x_autosleep_show_fndecl_36014 adxl34x_autosleep_show fndecl 0 36014 NULL
140603 +disable_so_tst_addr_ns_dev_36023 tst_addr ns_dev 0 36023 NULL
140604 +disable_so_addr_acard_sg_36025 addr acard_sg 0 36025 NULL
140605 +disable_so_pcxhr_sub_get_external_clock_fndecl_36041 pcxhr_sub_get_external_clock fndecl 0 36041 NULL
140606 +disable_so_address_fault_36043 address fault 0 36043 NULL
140607 +disable_so_s35390a_rtc_set_time_fndecl_36048 s35390a_rtc_set_time fndecl 0 36048 NULL nohasharray
140608 +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
140609 +disable_so_mmd_addr_reg_val_36052 mmd_addr reg_val 0 36052 NULL
140610 +disable_so_ips_flashbusaddr_vardecl_ips_c_36053 ips_flashbusaddr vardecl_ips.c 0 36053 NULL
140611 +disable_so_i_spc_timelimit_qc_info_36081 i_spc_timelimit qc_info 0 36081 NULL
140612 +disable_so_st_gid_stat_36085 st_gid stat 0 36085 NULL
140613 +disable_so_acpi_ev_address_space_dispatch_fndecl_36089 acpi_ev_address_space_dispatch fndecl 0-4-5 36089 NULL
140614 +disable_so_mpll_ad_func_cntl_2_ni_clock_registers_36093 mpll_ad_func_cntl_2 ni_clock_registers 0 36093 NULL
140615 +disable_so_i_atime_ocfs2_dinode_36099 i_atime ocfs2_dinode 0 36099 NULL
140616 +disable_so_setup_timer_IRQ0_pin_fndecl_36100 setup_timer_IRQ0_pin fndecl 3-2 36100 NULL
140617 +disable_so_error_info_addr_mvm_alive_resp_36103 error_info_addr mvm_alive_resp 0 36103 NULL nohasharray
140618 +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
140619 +disable_so_kstrtoull_fndecl_36106 kstrtoull fndecl 0 36106 NULL
140620 +disable_so_fax_head_line_time_fndecl_36108 fax_head_line_time fndecl 0 36108 NULL
140621 +disable_so_rtl8152_set_mac_address_fndecl_36112 rtl8152_set_mac_address fndecl 0 36112 NULL
140622 +disable_so_t_sleep_cycle_at86rf2xx_chip_data_36118 t_sleep_cycle at86rf2xx_chip_data 0 36118 NULL
140623 +disable_so_no_quota_btrfs_delayed_ref_node_36121 no_quota btrfs_delayed_ref_node 0 36121 NULL nohasharray
140624 +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
140625 +disable_so_shutdown_time_vardecl_torture_c_36136 shutdown_time vardecl_torture.c 0 36136 NULL nohasharray
140626 +disable_so_i40e_init_interrupt_scheme_fndecl_36136 i40e_init_interrupt_scheme fndecl 0 36136 &disable_so_shutdown_time_vardecl_torture_c_36136
140627 +disable_so_ath5k_hw_clocktoh_fndecl_36137 ath5k_hw_clocktoh fndecl 0-2 36137 NULL
140628 +disable_so_addr_off_bfa_flash_s_36155 addr_off bfa_flash_s 0 36155 NULL
140629 +disable_so_mlx4_bitmap_free_fndecl_36158 mlx4_bitmap_free fndecl 2 36158 NULL
140630 +disable_so_setup_cluster_no_bitmap_fndecl_36163 setup_cluster_no_bitmap fndecl 4-5-6-7 36163 NULL
140631 +disable_so_last_queue_full_time_bfad_itnim_s_36172 last_queue_full_time bfad_itnim_s 0 36172 NULL
140632 +disable_so_do_cpuid_ent_fndecl_36174 do_cpuid_ent fndecl 5 36174 NULL
140633 +disable_so_lzo_compress_fndecl_36177 lzo_compress fndecl 3 36177 NULL
140634 +disable_so_set_radio_freq_fndecl_36200 set_radio_freq fndecl 2 36200 NULL
140635 +disable_so_get_random_bytes_arch_fndecl_36201 get_random_bytes_arch fndecl 2 36201 NULL
140636 +disable_so_netlbl_unlhsh_add_addr4_fndecl_36206 netlbl_unlhsh_add_addr4 fndecl 4-0 36206 NULL
140637 +disable_so_assert_file_addr_sdpcm_shared_36210 assert_file_addr sdpcm_shared 0 36210 NULL
140638 +disable_so_timestamp_rxdone_entry_desc_36213 timestamp rxdone_entry_desc 0 36213 NULL
140639 +disable_so_interrupts_open_fndecl_36230 interrupts_open fndecl 0 36230 NULL
140640 +disable_so_nhash_jffs2_full_dirent_36231 nhash jffs2_full_dirent 0 36231 NULL
140641 +disable_so_max_level_cpufreq_cooling_device_36241 max_level cpufreq_cooling_device 0 36241 NULL
140642 +disable_so_ovl_set_timestamps_fndecl_36245 ovl_set_timestamps fndecl 0 36245 NULL
140643 +disable_so_evtchn_interrupt_fndecl_36255 evtchn_interrupt fndecl 1 36255 NULL
140644 +disable_so_timeout_ip_vs_service_36264 timeout ip_vs_service 0 36264 NULL
140645 +disable_so_dwell_time_dfs_conf_scan_settings_36271 dwell_time_dfs conf_scan_settings 0 36271 NULL
140646 +disable_so_drbd_send_uuids_fndecl_36274 drbd_send_uuids fndecl 0 36274 NULL
140647 +disable_so_bd_list_addr_lo_bnx2i_logout_request_36277 bd_list_addr_lo bnx2i_logout_request 0 36277 NULL
140648 +disable_so_rds_ib_add_ipaddr_fndecl_36278 rds_ib_add_ipaddr fndecl 2 36278 NULL nohasharray
140649 +disable_so_nilfs_btree_assign_gc_fndecl_36278 nilfs_btree_assign_gc fndecl 0-3 36278 &disable_so_rds_ib_add_ipaddr_fndecl_36278
140650 +disable_so_last_post_time_vardecl_hv_balloon_c_36289 last_post_time vardecl_hv_balloon.c 0 36289 NULL
140651 +disable_so_skb_physaddr_macb_36295 skb_physaddr macb 0 36295 NULL
140652 +disable_so_dq_hash_bits_vardecl_dquot_c_36296 dq_hash_bits vardecl_dquot.c 0 36296 NULL
140653 +disable_so_rpfilter_get_saddr_fndecl_36300 rpfilter_get_saddr fndecl 0-1 36300 NULL
140654 +disable_so_sys_setregid16_fndecl_36302 sys_setregid16 fndecl 0-1-2 36302 NULL
140655 +disable_so_f_frequency_fc2580_dev_36307 f_frequency fc2580_dev 0 36307 NULL
140656 +disable_so_address_r8a66597_td_36315 address r8a66597_td 0 36315 NULL
140657 +disable_so_address_acpi_madt_local_apic_override_36325 address acpi_madt_local_apic_override 0 36325 NULL nohasharray
140658 +disable_so_num_addresses_i40e_aqc_macvlan_36325 num_addresses i40e_aqc_macvlan 0 36325 &disable_so_address_acpi_madt_local_apic_override_36325
140659 +disable_so_cache_time_vardecl_ds2760_battery_c_36329 cache_time vardecl_ds2760_battery.c 0 36329 NULL
140660 +disable_so_ext_start_addr_hi_i740fb_par_36335 ext_start_addr_hi i740fb_par 0 36335 NULL
140661 +disable_so_mlx4_get_slave_node_guid_fndecl_36336 mlx4_get_slave_node_guid fndecl 2 36336 NULL
140662 +disable_so_reg_delay_fndecl_36338 reg_delay fndecl 5 36338 NULL
140663 +disable_so_dev_addr_del_fndecl_36356 dev_addr_del fndecl 0 36356 NULL
140664 +disable_so_address_low_b43_dmadesc64_36370 address_low b43_dmadesc64 0 36370 NULL
140665 +disable_so_cpuid_seek_fndecl_36372 cpuid_seek fndecl 0-2 36372 NULL
140666 +disable_so_mhash_entries_vardecl_namespace_c_36377 mhash_entries vardecl_namespace.c 0 36377 NULL
140667 +disable_so_btree_grow_fndecl_36388 btree_grow fndecl 3 36388 NULL
140668 +disable_so_ie6xx_wdt_set_timeout_fndecl_36389 ie6xx_wdt_set_timeout fndecl 2 36389 NULL
140669 +disable_so_cq_page_table_addr_hi_iscsi_kwqe_conn_offload1_36403 cq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 36403 NULL
140670 +disable_so_phys_addr_ntb_mw_36409 phys_addr ntb_mw 0 36409 NULL
140671 +disable_so_tsl2563_write_interrupt_config_fndecl_36415 tsl2563_write_interrupt_config fndecl 0 36415 NULL
140672 +disable_so_bitmap_bitremap_fndecl_36419 bitmap_bitremap fndecl 4-0-1 36419 NULL
140673 +disable_so_cryptd_hash_final_enqueue_fndecl_36420 cryptd_hash_final_enqueue fndecl 0 36420 NULL
140674 +disable_so_addr_azx_rb_36425 addr azx_rb 0 36425 NULL
140675 +disable_so_discov_timeout_hci_dev_36432 discov_timeout hci_dev 0 36432 NULL
140676 +disable_so_interrupt_event_ixgbe_adapter_36433 interrupt_event ixgbe_adapter 0 36433 NULL
140677 +disable_so_hpi_bitstream_set_clock_edge_fndecl_36438 hpi_bitstream_set_clock_edge fndecl 1-0 36438 NULL
140678 +disable_so_atime_fuse_setattr_in_36441 atime fuse_setattr_in 0 36441 NULL
140679 +disable_so_family_xfrm_usersa_info_36443 family xfrm_usersa_info 0 36443 NULL
140680 +disable_so_wlc_phy_channel2freq_fndecl_36444 wlc_phy_channel2freq fndecl 1 36444 NULL
140681 +disable_so_max_delay_intel_ilk_power_mgmt_36447 max_delay intel_ilk_power_mgmt 0 36447 NULL
140682 +disable_so_sys_setregid_fndecl_36457 sys_setregid fndecl 0-1-2 36457 NULL
140683 +disable_so_mpll_dq_func_cntl_rv770_clock_registers_36466 mpll_dq_func_cntl rv770_clock_registers 0 36466 NULL
140684 +disable_so_shortcal_timer_ath_ani_36468 shortcal_timer ath_ani 0 36468 NULL
140685 +disable_so_check_config_address_fndecl_36471 check_config_address fndecl 4 36471 NULL nohasharray
140686 +disable_so_db_addr_mlx5_ib_create_srq_36471 db_addr mlx5_ib_create_srq 0 36471 &disable_so_check_config_address_fndecl_36471
140687 +disable_so_sysctl_rose_reset_request_timeout_vardecl_36479 sysctl_rose_reset_request_timeout vardecl 0 36479 NULL
140688 +disable_so_address_mspro_attr_entry_36482 address mspro_attr_entry 0 36482 NULL
140689 +disable_so_min_discovery_timeout_mesh_config_36485 min_discovery_timeout mesh_config 0 36485 NULL
140690 +disable_so_bitmap_il_ht_agg_36487 bitmap il_ht_agg 0 36487 NULL
140691 +disable_so_crypto_ecb_crypt_fndecl_36489 crypto_ecb_crypt fndecl 0 36489 NULL
140692 +disable_so_address_arch_hw_breakpoint_36491 address arch_hw_breakpoint 0 36491 NULL
140693 +disable_so_flush_timer_iwl_lq_sta_36505 flush_timer iwl_lq_sta 0 36505 NULL
140694 +disable_so_demod_address_sp8870_config_36507 demod_address sp8870_config 0 36507 NULL
140695 +disable_so_hashbin_remove_fndecl_36512 hashbin_remove fndecl 2 36512 NULL
140696 +disable_so_mpll_ad_func_cntl_ni_clock_registers_36523 mpll_ad_func_cntl ni_clock_registers 0 36523 NULL
140697 +disable_so_timeout_usbdevfs_bulktransfer_36525 timeout usbdevfs_bulktransfer 0 36525 NULL
140698 +disable_so_ctl_freq_cx231xx_36526 ctl_freq cx231xx 0 36526 NULL
140699 +disable_so_last_isr_time_misc_stats_36527 last_isr_time misc_stats 0 36527 NULL
140700 +disable_so_mlx4_gen_guid_change_eqe_fndecl_36529 mlx4_gen_guid_change_eqe fndecl 0-2-3 36529 NULL
140701 +disable_so_addr_e1000_phy_info_36530 addr e1000_phy_info 0 36530 NULL nohasharray
140702 +disable_so_misc_mce_36530 misc mce 0 36530 &disable_so_addr_e1000_phy_info_36530
140703 +disable_so_align_addr_sdhci_host_36535 align_addr sdhci_host 0 36535 NULL
140704 +disable_so_gran_sizek_mtrr_cleanup_result_36538 gran_sizek mtrr_cleanup_result 0 36538 NULL
140705 +disable_so_mcryptd_hash_export_fndecl_36554 mcryptd_hash_export fndecl 0 36554 NULL
140706 +disable_so_snd_opl3_timer_new_fndecl_36558 snd_opl3_timer_new fndecl 0-3-2 36558 NULL
140707 +disable_so_alarmtimer_rtc_interface_setup_fndecl_36561 alarmtimer_rtc_interface_setup fndecl 0 36561 NULL
140708 +disable_so_mb86a20s_read_signal_strength_fndecl_36562 mb86a20s_read_signal_strength fndecl 0 36562 NULL
140709 +disable_so_devm_request_threaded_irq_fndecl_36564 devm_request_threaded_irq fndecl 0-2-5 36564 NULL
140710 +disable_so_VDisplay_xtimings_36585 VDisplay xtimings 0 36585 NULL
140711 +disable_so_delay_usec_e1000_eeprom_info_36611 delay_usec e1000_eeprom_info 0 36611 NULL
140712 +disable_so_enabled_hrtimer_events_fusbh200_hcd_36613 enabled_hrtimer_events fusbh200_hcd 0 36613 NULL nohasharray
140713 +disable_so_myaddr_sym_hcb_36613 myaddr sym_hcb 0 36613 &disable_so_enabled_hrtimer_events_fusbh200_hcd_36613
140714 +disable_so_bmc150_accel_runtime_resume_fndecl_36616 bmc150_accel_runtime_resume fndecl 0 36616 NULL nohasharray
140715 +disable_so_frequency_tuner_simple_priv_36616 frequency tuner_simple_priv 0 36616 &disable_so_bmc150_accel_runtime_resume_fndecl_36616
140716 +disable_so_dll_cntl_ni_clock_registers_36640 dll_cntl ni_clock_registers 0 36640 NULL
140717 +disable_so_phys_addr_high_qlcnic_tx_mbx_36646 phys_addr_high qlcnic_tx_mbx 0 36646 NULL
140718 +disable_so_ntfs_bitmap_set_run_fndecl_36647 ntfs_bitmap_set_run fndecl 2-3 36647 NULL
140719 +disable_so_hfs_btree_open_fndecl_36648 hfs_btree_open fndecl 2 36648 NULL
140720 +disable_so_radio_tea5777_set_freq_fndecl_36650 radio_tea5777_set_freq fndecl 0 36650 NULL
140721 +disable_so_default_timeout_cyclades_port_36652 default_timeout cyclades_port 0 36652 NULL
140722 +disable_so_trinity_get_sleep_divider_id_from_clock_fndecl_36654 trinity_get_sleep_divider_id_from_clock fndecl 2 36654 NULL
140723 +disable_so_timeout_osst_tape_36656 timeout osst_tape 0 36656 NULL
140724 +disable_so_sda_falling_time_dw_i2c_dev_36665 sda_falling_time dw_i2c_dev 0 36665 NULL
140725 +disable_so_libipw_freq_to_channel_fndecl_36675 libipw_freq_to_channel fndecl 0-2 36675 NULL
140726 +disable_so_el3_interrupt_fndecl_36679 el3_interrupt fndecl 1 36679 NULL
140727 +disable_so_cg_spll_func_cntl_3_rv770_clock_registers_36680 cg_spll_func_cntl_3 rv770_clock_registers 0 36680 NULL
140728 +disable_so_resp_dma_addr_generic_pdu_resc_36683 resp_dma_addr generic_pdu_resc 0 36683 NULL
140729 +disable_so_store_imon_clock_fndecl_36685 store_imon_clock fndecl 0-4 36685 NULL
140730 +disable_so_kdbgetaddrarg_fndecl_36689 kdbgetaddrarg fndecl 0 36689 NULL
140731 +disable_so_ahash_def_finup_done1_fndecl_36695 ahash_def_finup_done1 fndecl 2 36695 NULL
140732 +disable_so_backlight_on_delay_intel_dp_36699 backlight_on_delay intel_dp 0 36699 NULL
140733 +disable_so_daddr_ipq_36701 daddr ipq 0 36701 NULL
140734 +disable_so_sha512_generic_mod_init_fndecl_36702 sha512_generic_mod_init fndecl 0 36702 NULL
140735 +disable_so_HYPERVISOR_dom0_op_fndecl_36705 HYPERVISOR_dom0_op fndecl 0 36705 NULL
140736 +disable_so_pll_ref_div_pll_ct_36716 pll_ref_div pll_ct 0 36716 NULL
140737 +disable_so_timecounter_cyc2time_fndecl_36723 timecounter_cyc2time fndecl 0-2 36723 NULL
140738 +disable_so_hello_time___bridge_info_36726 hello_time __bridge_info 0 36726 NULL
140739 +disable_so___clockevents_update_freq_fndecl_36730 __clockevents_update_freq fndecl 2 36730 NULL
140740 +disable_so_lvds_ssc_freq_intel_vbt_data_36732 lvds_ssc_freq intel_vbt_data 0 36732 NULL
140741 +disable_so_mlx4_bitmap_alloc_range_fndecl_36733 mlx4_bitmap_alloc_range fndecl 0-2-3 36733 NULL
140742 +disable_so_hmark_hash_fndecl_36743 hmark_hash fndecl 0 36743 NULL
140743 +disable_so_atimensec_fuse_attr_36765 atimensec fuse_attr 0 36765 NULL
140744 +disable_so_sys_getgid16_fndecl_36779 sys_getgid16 fndecl 0 36779 NULL
140745 +disable_so_hash_32_fndecl_36780 hash_32 fndecl 0-3 36780 NULL
140746 +disable_so_di_gid_qnx6_inode_entry_36804 di_gid qnx6_inode_entry 0 36804 NULL nohasharray
140747 +disable_so_jhash_fndecl_36804 jhash fndecl 0-2-3 36804 &disable_so_di_gid_qnx6_inode_entry_36804
140748 +disable_so_last_time1_intel_ilk_power_mgmt_36819 last_time1 intel_ilk_power_mgmt 0 36819 NULL
140749 +disable_so_xen_clocksource_get_cycles_fndecl_36821 xen_clocksource_get_cycles fndecl 0 36821 NULL
140750 +disable_so_address_show_fndecl_36822 address_show fndecl 0 36822 NULL
140751 +disable_so_next_desc_addr_mm_dma_desc_36825 next_desc_addr mm_dma_desc 0 36825 NULL
140752 +disable_so_update_time_acpi_battery_36827 update_time acpi_battery 0 36827 NULL
140753 +disable_so_nla_put_le16_fndecl_36829 nla_put_le16 fndecl 0-3 36829 NULL
140754 +disable_so_sense_buf_phys_addr_hi_megasas_pthru_frame_36842 sense_buf_phys_addr_hi megasas_pthru_frame 0 36842 NULL
140755 +disable_so_vkdb_printf_fndecl_36847 vkdb_printf fndecl 0 36847 NULL
140756 +disable_so_cpu_to_fs32_fndecl_36849 cpu_to_fs32 fndecl 0-2 36849 NULL
140757 +disable_so_mxl301rf_sleep_fndecl_36864 mxl301rf_sleep fndecl 0 36864 NULL
140758 +disable_so_nfqueue_hash_fndecl_36865 nfqueue_hash fndecl 0-2-3-4 36865 NULL
140759 +disable_so_irq_set_irq_wake_fndecl_36876 irq_set_irq_wake fndecl 0-1 36876 NULL
140760 +disable_so_topology_change_timer_value___bridge_info_36878 topology_change_timer_value __bridge_info 0 36878 NULL
140761 +disable_so_settle_time_sym_shcb_36880 settle_time sym_shcb 0 36880 NULL
140762 +disable_so_mei_wd_set_start_timeout_fndecl_36890 mei_wd_set_start_timeout fndecl 2 36890 NULL
140763 +disable_so_inet6_dump_ifaddr_fndecl_36895 inet6_dump_ifaddr fndecl 0 36895 NULL
140764 +disable_so_sh_msiof_get_delay_bit_fndecl_36896 sh_msiof_get_delay_bit fndecl 0-1 36896 NULL
140765 +disable_so_pwm_uptime_w83793_data_36909 pwm_uptime w83793_data 0 36909 NULL nohasharray
140766 +disable_so_zd_iowrite32a_locked_fndecl_36909 zd_iowrite32a_locked fndecl 0-3 36909 &disable_so_pwm_uptime_w83793_data_36909
140767 +disable_so_usb_runtime_suspend_fndecl_36911 usb_runtime_suspend fndecl 0 36911 NULL
140768 +disable_so_buf_addr_mlx5_ib_create_srq_36916 buf_addr mlx5_ib_create_srq 0 36916 NULL
140769 +disable_so_sbp2_pointer_to_addr_fndecl_36918 sbp2_pointer_to_addr fndecl 0 36918 NULL
140770 +disable_so_start_pcm_timer0_fndecl_36921 start_pcm_timer0 fndecl 2 36921 NULL
140771 +disable_so_timestamp_il3945_rx_frame_end_36930 timestamp il3945_rx_frame_end 0 36930 NULL
140772 +disable_so_nilfs_btree_node_broken_fndecl_36936 nilfs_btree_node_broken fndecl 2-3 36936 NULL
140773 +disable_so_wm8991_set_dai_clkdiv_fndecl_36938 wm8991_set_dai_clkdiv fndecl 3 36938 NULL
140774 +disable_so_timeout_ieee80211_mgd_auth_data_36943 timeout ieee80211_mgd_auth_data 0 36943 NULL
140775 +disable_so_i2c_address_itd1000_config_36949 i2c_address itd1000_config 0 36949 NULL
140776 +disable_so_nla_put_be16_fndecl_36955 nla_put_be16 fndecl 0-3 36955 NULL
140777 +disable_so_dma_addr_bcm_sysport_cb_36958 dma_addr bcm_sysport_cb 0 36958 NULL
140778 +disable_so_timeout_trf7970a_36959 timeout trf7970a 0 36959 NULL nohasharray
140779 +disable_so_s35390a_get_datetime_fndecl_36959 s35390a_get_datetime fndecl 0 36959 &disable_so_timeout_trf7970a_36959
140780 +disable_so_spn_dev_sockaddr_pn_36960 spn_dev sockaddr_pn 0 36960 NULL
140781 +disable_so_dpp_page_addr_hi_ocrdma_alloc_pd_uresp_36964 dpp_page_addr_hi ocrdma_alloc_pd_uresp 0 36964 NULL
140782 +disable_so_tv_sec_compat_timespec_36965 tv_sec compat_timespec 0 36965 NULL
140783 +disable_so_get_dclk_freq_fndecl_36970 get_dclk_freq fndecl 0 36970 NULL
140784 +disable_so_intlog2_fndecl_36975 intlog2 fndecl 0-1 36975 NULL
140785 +disable_so_psb_intel_clock_fndecl_36993 psb_intel_clock fndecl 1 36993 NULL
140786 +disable_so_i_uid_write_fndecl_36996 i_uid_write fndecl 2 36996 NULL
140787 +disable_so_addr_st_sgitem_37005 addr st_sgitem 0 37005 NULL
140788 +disable_so_do_usleep_range_fndecl_37008 do_usleep_range fndecl 1-2 37008 NULL
140789 +disable_so_insert_entries_i915_address_space_37011 insert_entries i915_address_space 3 37011 NULL
140790 +disable_so_ext4_init_inode_bitmap_fndecl_37017 ext4_init_inode_bitmap fndecl 0-3 37017 NULL
140791 +disable_so_sp_pt_regs_37018 sp pt_regs 0 37018 NULL
140792 +disable_so_addr_gsm_dlci_37020 addr gsm_dlci 0 37020 NULL
140793 +disable_so_lbq_addr_cqicb_37033 lbq_addr cqicb 0 37033 NULL
140794 +disable_so_stv090x_get_car_freq_fndecl_37041 stv090x_get_car_freq fndecl 0-2 37041 NULL
140795 +disable_so_resp_sas_sha_m_spg_fndecl_37046 resp_sas_sha_m_spg fndecl 0 37046 NULL
140796 +disable_so_cyc2ns_shift_cyc2ns_data_37055 cyc2ns_shift cyc2ns_data 0 37055 NULL
140797 +disable_so_max8997_muic_set_debounce_time_fndecl_37057 max8997_muic_set_debounce_time fndecl 2-0 37057 NULL
140798 +disable_so_tms_cutime_compat_tms_37072 tms_cutime compat_tms 0 37072 NULL
140799 +disable_so_u2_timeout_store_fndecl_37082 u2_timeout_store fndecl 0-4 37082 NULL
140800 +disable_so_addr2_unlock_addr_37100 addr2 unlock_addr 0 37100 NULL
140801 +disable_so_pch_gbe_hal_read_mac_addr_fndecl_37101 pch_gbe_hal_read_mac_addr fndecl 0 37101 NULL
140802 +disable_so_blkcipher_next_slow_fndecl_37102 blkcipher_next_slow fndecl 3-4 37102 NULL
140803 +disable_so_addr_ata_bmdma_prd_37108 addr ata_bmdma_prd 0 37108 NULL
140804 +disable_so_nl80211_valid_4addr_fndecl_37115 nl80211_valid_4addr fndecl 0-4 37115 NULL
140805 +disable_so_dlm_lockres_hash_fndecl_37119 dlm_lockres_hash fndecl 2 37119 NULL
140806 +disable_so_uid_ipc64_perm_37121 uid ipc64_perm 0 37121 NULL
140807 +disable_so_paddr_gr_dma_desc_37127 paddr gr_dma_desc 0 37127 NULL
140808 +disable_so_max_cb_time_fndecl_37133 max_cb_time fndecl 0 37133 NULL
140809 +disable_so_smt_get_time_fndecl_37135 smt_get_time fndecl 0 37135 NULL
140810 +disable_so_div_q1_pll_values_37147 div_q1 pll_values 0 37147 NULL
140811 +disable_so_ufshcd_setup_clocks_fndecl_37162 ufshcd_setup_clocks fndecl 0 37162 NULL
140812 +disable_so_gid_fuse_attr_37169 gid fuse_attr 0 37169 NULL
140813 +disable_so_smsc75xx_hash_fndecl_37173 smsc75xx_hash fndecl 0 37173 NULL
140814 +disable_so_crypto_skcipher_givencrypt_fndecl_37175 crypto_skcipher_givencrypt fndecl 0 37175 NULL
140815 +disable_so_ip_vs_set_timeout_fndecl_37183 ip_vs_set_timeout fndecl 0 37183 NULL
140816 +disable_so_pci_bus_cx25821_dev_37185 pci_bus cx25821_dev 0 37185 NULL
140817 +disable_so_b43_set_slot_time_fndecl_37196 b43_set_slot_time fndecl 2 37196 NULL
140818 +disable_so_af9013_sleep_fndecl_37201 af9013_sleep fndecl 0 37201 NULL
140819 +disable_so_sock_check_timeo_net_conf_37210 sock_check_timeo net_conf 0 37210 NULL
140820 +disable_so_tms_utime_tms_37217 tms_utime tms 0 37217 NULL
140821 +disable_so_lx_interrupt_request_new_buffer_fndecl_37218 lx_interrupt_request_new_buffer fndecl 0 37218 NULL
140822 +disable_so_cryptomgr_notify_fndecl_37232 cryptomgr_notify fndecl 0 37232 NULL
140823 +disable_so_wm831x_wdt_set_timeout_fndecl_37238 wm831x_wdt_set_timeout fndecl 2-0 37238 NULL
140824 +disable_so_qh_schedule_fndecl_37247 qh_schedule fndecl 0 37247 NULL
140825 +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
140826 +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
140827 +disable_so_fq_rehash_fndecl_37274 fq_rehash fndecl 3-5 37274 NULL
140828 +disable_so_set_addr_dsa_switch_driver_37276 set_addr dsa_switch_driver 0 37276 NULL
140829 +disable_so_tv_sec_timeval_37284 tv_sec timeval 0 37284 NULL
140830 +disable_so_timestamp_nfs4_lockdata_37285 timestamp nfs4_lockdata 0 37285 NULL
140831 +disable_so_ccp_register_aes_xts_alg_fndecl_37292 ccp_register_aes_xts_alg fndecl 0 37292 NULL
140832 +disable_so_ssb_chipco_timing_init_fndecl_37295 ssb_chipco_timing_init fndecl 2 37295 NULL
140833 +disable_so_atime_sec_ubifs_ino_node_37298 atime_sec ubifs_ino_node 0 37298 NULL
140834 +disable_so_sel_addr___queue_37305 sel_addr __queue 0 37305 NULL
140835 +disable_so_nla_put_shortaddr_fndecl_37306 nla_put_shortaddr fndecl 0 37306 NULL
140836 +disable_so_snd_pcm_sgbuf_get_addr_fndecl_37310 snd_pcm_sgbuf_get_addr fndecl 0-2 37310 NULL
140837 +disable_so_qla2x00_program_flash_address_fndecl_37312 qla2x00_program_flash_address fndecl 2 37312 NULL
140838 +disable_so_linetime_skl_pipe_wm_37317 linetime skl_pipe_wm 0 37317 NULL
140839 +disable_so_d_time_ptc_stats_37320 d_time ptc_stats 0 37320 NULL nohasharray
140840 +disable_so_dst_slave_addr_rcar_dmac_chan_37320 dst_slave_addr rcar_dmac_chan 0 37320 &disable_so_d_time_ptc_stats_37320
140841 +disable_so_edx_tss_segment_32_37322 edx tss_segment_32 0 37322 NULL
140842 +disable_so_time_stamp_ixgbevf_tx_buffer_37332 time_stamp ixgbevf_tx_buffer 0 37332 NULL
140843 +disable_so_dccpor_elapsed_time_dccp_options_received_37349 dccpor_elapsed_time dccp_options_received 0 37349 NULL nohasharray
140844 +disable_so_rhine_interrupt_fndecl_37349 rhine_interrupt fndecl 1 37349 &disable_so_dccpor_elapsed_time_dccp_options_received_37349
140845 +disable_so_cpufreq_get_policy_fndecl_37351 cpufreq_get_policy fndecl 0-2 37351 NULL
140846 +disable_so_blocksize_ccp_aes_def_37352 blocksize ccp_aes_def 0 37352 NULL
140847 +disable_so_disengage_timeout_xpc_partition_37353 disengage_timeout xpc_partition 0 37353 NULL
140848 +disable_so_nilfs_btree_lookup_contig_fndecl_37360 nilfs_btree_lookup_contig fndecl 0-2 37360 NULL
140849 +disable_so_timeo_rpc_rtt_37368 timeo rpc_rtt 0 37368 NULL
140850 +disable_so_calc_divisor_fndecl_37379 calc_divisor fndecl 0-1 37379 NULL
140851 +disable_so_uid_ncp_mount_data_37380 uid ncp_mount_data 0 37380 NULL nohasharray
140852 +disable_so_ip_vs_conn_hashkey_conn_fndecl_37380 ip_vs_conn_hashkey_conn fndecl 0 37380 &disable_so_uid_ncp_mount_data_37380
140853 +disable_so_clock_delay_adv7511_link_config_37390 clock_delay adv7511_link_config 0 37390 NULL nohasharray
140854 +disable_so_mtrr_check_fndecl_37390 mtrr_check fndecl 1-2 37390 &disable_so_clock_delay_adv7511_link_config_37390
140855 +disable_so_tuner_addr_cx231xx_37393 tuner_addr cx231xx 0 37393 NULL
140856 +disable_so_minute_timestamp_37395 minute timestamp 0 37395 NULL
140857 +disable_so_mthca_mr_alloc_fndecl_37397 mthca_mr_alloc fndecl 5-0-2-3 37397 NULL
140858 +disable_so_cx24123_int_log2_fndecl_37405 cx24123_int_log2 fndecl 0-2 37405 NULL
140859 +disable_so_s_def_resgid_ext2_super_block_37420 s_def_resgid ext2_super_block 0 37420 NULL nohasharray
140860 +disable_so_fast_pwrup_delay_ssb_chipcommon_37420 fast_pwrup_delay ssb_chipcommon 0 37420 &disable_so_s_def_resgid_ext2_super_block_37420
140861 +disable_so_nfs_key_timeout_notify_fndecl_37423 nfs_key_timeout_notify fndecl 0 37423 NULL nohasharray
140862 +disable_so_netxen_schedule_work_fndecl_37423 netxen_schedule_work fndecl 3 37423 &disable_so_nfs_key_timeout_notify_fndecl_37423
140863 +disable_so_rx8025_sysfs_store_clock_adjust_fndecl_37426 rx8025_sysfs_store_clock_adjust fndecl 0-4 37426 NULL
140864 +disable_so_port_mlx4_alias_guid_work_context_37428 port mlx4_alias_guid_work_context 0 37428 NULL
140865 +disable_so_lpfc_max_scsicmpl_time_set_fndecl_37433 lpfc_max_scsicmpl_time_set fndecl 2 37433 NULL
140866 +disable_so_mld_ifc_start_timer_fndecl_37436 mld_ifc_start_timer fndecl 2 37436 NULL
140867 +disable_so_guest_phys_addr_vhost_memory_region_37438 guest_phys_addr vhost_memory_region 0 37438 NULL nohasharray
140868 +disable_so_tun1_maddress_stv0900_init_params_37438 tun1_maddress stv0900_init_params 0 37438 &disable_so_guest_phys_addr_vhost_memory_region_37438
140869 +disable_so_i2c_addr_m88ds3103_config_37446 i2c_addr m88ds3103_config 0 37446 NULL
140870 +disable_so_hd_phys_address_hpet_data_37448 hd_phys_address hpet_data 0 37448 NULL
140871 +disable_so_ip_addr_c2_netaddr_37452 ip_addr c2_netaddr 0 37452 NULL
140872 +disable_so_acpi_map_cpuid_fndecl_37455 acpi_map_cpuid fndecl 0-1-2 37455 NULL
140873 +disable_so_regcache_lzo_block_count_fndecl_37459 regcache_lzo_block_count fndecl 0 37459 NULL
140874 +disable_so_iwl_dbgfs_interrupt_write_fndecl_37470 iwl_dbgfs_interrupt_write fndecl 0-3 37470 NULL
140875 +disable_so_freq_timex_37471 freq timex 0 37471 NULL
140876 +disable_so_gk104_fifo_engidx_fndecl_37472 gk104_fifo_engidx fndecl 0 37472 NULL
140877 +disable_so_ocfs2_write_remove_suid_fndecl_37473 ocfs2_write_remove_suid fndecl 0 37473 NULL
140878 +disable_so_zd_iowrite16a_locked_fndecl_37478 zd_iowrite16a_locked fndecl 0 37478 NULL
140879 +disable_so_base_clock_slgt_info_37486 base_clock slgt_info 0 37486 NULL
140880 +disable_so_onenand_addr_fndecl_37493 onenand_addr fndecl 0-2 37493 NULL
140881 +disable_so_bitmap_shift_right_fndecl_37507 bitmap_shift_right fndecl 3-4 37507 NULL
140882 +disable_so_phys_addr_netxen_recv_context_37520 phys_addr netxen_recv_context 0 37520 NULL
140883 +disable_so_dma_addr_vmxnet3_tx_buf_info_37524 dma_addr vmxnet3_tx_buf_info 0 37524 NULL
140884 +disable_so_start_time_fnic_io_req_37530 start_time fnic_io_req 0 37530 NULL
140885 +disable_so_hash_val_rss_header_37536 hash_val rss_header 0 37536 NULL
140886 +disable_so_dev_addr_bdc_37537 dev_addr bdc 0 37537 NULL
140887 +disable_so_cobalt_enum_dv_timings_fndecl_37539 cobalt_enum_dv_timings fndecl 0 37539 NULL
140888 +disable_so_timestamp_cw1200_link_entry_37549 timestamp cw1200_link_entry 0 37549 NULL
140889 +disable_so_c_resolution_snd_timer_hardware_37556 c_resolution snd_timer_hardware 0 37556 NULL
140890 +disable_so_dummy_systimer_pointer_fndecl_37562 dummy_systimer_pointer fndecl 0 37562 NULL
140891 +disable_so_cir_wake_addr_nvt_dev_37577 cir_wake_addr nvt_dev 0 37577 NULL
140892 +disable_so_clients_bit_vector_mac_configuration_entry_37582 clients_bit_vector mac_configuration_entry 0 37582 NULL
140893 +disable_so___round_jiffies_up_fndecl_37586 __round_jiffies_up fndecl 2-1-0 37586 NULL
140894 +disable_so_xfs_btree_updkey_fndecl_37592 xfs_btree_updkey fndecl 0 37592 NULL
140895 +disable_so_r6b_val_fc2580_freq_regs_37593 r6b_val fc2580_freq_regs 0 37593 NULL
140896 +disable_so_audit_backlog_wait_time_master_vardecl_audit_c_37596 audit_backlog_wait_time_master vardecl_audit.c 0 37596 NULL
140897 +disable_so_hhf_arrays_reset_timestamp_hhf_sched_data_37598 hhf_arrays_reset_timestamp hhf_sched_data 0 37598 NULL
140898 +disable_so_rate_den_snd_pcm_runtime_37607 rate_den snd_pcm_runtime 0 37607 NULL
140899 +disable_so_vdi_mtime_vxfs_inode_info_37613 vdi_mtime vxfs_inode_info 0 37613 NULL
140900 +disable_so_tx_bufs_dma_addr_sc92031_priv_37616 tx_bufs_dma_addr sc92031_priv 0 37616 NULL
140901 +disable_so_brcmf_msgbuf_schedule_txdata_fndecl_37619 brcmf_msgbuf_schedule_txdata fndecl 2 37619 NULL
140902 +disable_so_pvr2_hdw_set_cur_freq_fndecl_37630 pvr2_hdw_set_cur_freq fndecl 2 37630 NULL
140903 +disable_so_pixclock_fb_cvt_data_37637 pixclock fb_cvt_data 0 37637 NULL
140904 +disable_so_ieee80211_if_read_beacon_timeout_fndecl_37639 ieee80211_if_read_beacon_timeout fndecl 3-0 37639 NULL
140905 +disable_so_ds1374_read_time_fndecl_37640 ds1374_read_time fndecl 0 37640 NULL
140906 +disable_so_addr_handler_fndecl_37652 addr_handler fndecl 1 37652 NULL
140907 +disable_so_v_radeon_clock_voltage_dependency_entry_37656 v radeon_clock_voltage_dependency_entry 0 37656 NULL
140908 +disable_so_bma150_set_high_g_interrupt_fndecl_37662 bma150_set_high_g_interrupt fndecl 4-5-3-0 37662 NULL
140909 +disable_so_SYSC_setresuid_fndecl_37663 SYSC_setresuid fndecl 0 37663 NULL
140910 +disable_so_sht15_interrupt_fired_fndecl_37668 sht15_interrupt_fired fndecl 1 37668 NULL
140911 +disable_so_munge_address_falcon_spi_device_37671 munge_address falcon_spi_device 0 37671 NULL
140912 +disable_so___hw_addr_unsync_fndecl_37673 __hw_addr_unsync fndecl 3 37673 NULL
140913 +disable_so_uv_mmtimer_femtoperiod_vardecl_uv_mmtimer_c_37680 uv_mmtimer_femtoperiod vardecl_uv_mmtimer.c 0 37680 NULL
140914 +disable_so_phy_addr_pxa168_eth_private_37687 phy_addr pxa168_eth_private 0 37687 NULL
140915 +disable_so_pch_udc_read_ep_interrupts_fndecl_37692 pch_udc_read_ep_interrupts fndecl 0 37692 NULL
140916 +disable_so_en_addr0_nphy_rf_control_override_rev3_37699 en_addr0 nphy_rf_control_override_rev3 0 37699 NULL
140917 +disable_so_sense_phys_addr_megasas_cmd_37718 sense_phys_addr megasas_cmd 0 37718 NULL
140918 +disable_so_dsc_poll_freq_ide_tape_obj_37730 dsc_poll_freq ide_tape_obj 0 37730 NULL
140919 +disable_so_no_gc_sleep_time_f2fs_gc_kthread_37736 no_gc_sleep_time f2fs_gc_kthread 0 37736 NULL
140920 +disable_so_b_addr_dma_data_buffer_37749 b_addr dma_data_buffer 0 37749 NULL
140921 +disable_so_test_hash_jiffies_fndecl_37757 test_hash_jiffies fndecl 4 37757 NULL
140922 +disable_so_bufptr_addr_nm256_stream_37759 bufptr_addr nm256_stream 0 37759 NULL nohasharray
140923 +disable_so_gcm_hash_crypt_continue_fndecl_37759 gcm_hash_crypt_continue fndecl 0 37759 &disable_so_bufptr_addr_nm256_stream_37759
140924 +disable_so_get_semotime_fndecl_37761 get_semotime fndecl 0 37761 NULL
140925 +disable_so_ds_tss_segment_32_37770 ds tss_segment_32 0 37770 NULL nohasharray
140926 +disable_so_ccp_run_aes_cmd_fndecl_37770 ccp_run_aes_cmd fndecl 0 37770 &disable_so_ds_tss_segment_32_37770
140927 +disable_so_sys_signal_fndecl_37776 sys_signal fndecl 1 37776 NULL
140928 +disable_so_jiffies_till_next_fqs_vardecl_tree_c_37778 jiffies_till_next_fqs vardecl_tree.c 0 37778 NULL
140929 +disable_so_col_scan_delay_us_matrix_keypad_platform_data_37789 col_scan_delay_us matrix_keypad_platform_data 0 37789 NULL
140930 +disable_so_small_buf_phy_addr_ql3_adapter_37791 small_buf_phy_addr ql3_adapter 0 37791 NULL
140931 +disable_so_bitmap_intersects_fndecl_37795 bitmap_intersects fndecl 3 37795 NULL
140932 +disable_so_clock_panel_info_37807 clock panel_info 0 37807 NULL
140933 +disable_so_unix_gid_hash_fndecl_37822 unix_gid_hash fndecl 0 37822 NULL
140934 +disable_so_btrfs_inode_uid_fndecl_37823 btrfs_inode_uid fndecl 0 37823 NULL
140935 +disable_so_snd_usb_find_clock_multiplier_fndecl_37825 snd_usb_find_clock_multiplier fndecl 2 37825 NULL nohasharray
140936 +disable_so_queue_show_random_fndecl_37825 queue_show_random fndecl 0 37825 &disable_so_snd_usb_find_clock_multiplier_fndecl_37825
140937 +disable_so_intr_gen_timer_trigger_ath_hw_37826 intr_gen_timer_trigger ath_hw 0 37826 NULL
140938 +disable_so_mvs_interrupt_fndecl_37840 mvs_interrupt fndecl 1 37840 NULL
140939 +disable_so_aic7xxx_seltime_vardecl_aic7xxx_osm_c_37841 aic7xxx_seltime vardecl_aic7xxx_osm.c 0 37841 NULL
140940 +disable_so_baud_uartdiv_baycom_state_37846 baud_uartdiv baycom_state 0 37846 NULL
140941 +disable_so_ac97_clock_vardecl_intel8x0m_c_37848 ac97_clock vardecl_intel8x0m.c 0 37848 NULL nohasharray
140942 +disable_so_rtl818x_iowrite8_idx_fndecl_37848 rtl818x_iowrite8_idx fndecl 3 37848 &disable_so_ac97_clock_vardecl_intel8x0m_c_37848
140943 +disable_so_io_addr_kcq_info_37850 io_addr kcq_info 0 37850 NULL
140944 +disable_so_last_signal_sta_info_37865 last_signal sta_info 0 37865 NULL
140945 +disable_so_dccpor_timestamp_echo_dccp_options_received_37875 dccpor_timestamp_echo dccp_options_received 0 37875 NULL
140946 +disable_so_ccp_aes_cmac_update_fndecl_37894 ccp_aes_cmac_update fndecl 0 37894 NULL
140947 +disable_so_chip_delay_nand_chip_37901 chip_delay nand_chip 0 37901 NULL
140948 +disable_so_saddr_irlap_cb_37910 saddr irlap_cb 0 37910 NULL
140949 +disable_so_disk_timeout_disk_conf_37918 disk_timeout disk_conf 0 37918 NULL
140950 +disable_so_show_time_in_state_fndecl_37923 show_time_in_state fndecl 0 37923 NULL
140951 +disable_so_snd_timer_user_pause_fndecl_37928 snd_timer_user_pause fndecl 0 37928 NULL
140952 +disable_so_is_valid_rtc_data_addr_il_ops_37930 is_valid_rtc_data_addr il_ops 1 37930 NULL
140953 +disable_so_wl18xx_enable_interrupts_fndecl_37937 wl18xx_enable_interrupts fndecl 0 37937 NULL nohasharray
140954 +disable_so_nested_vmx_store_msr_fndecl_37937 nested_vmx_store_msr fndecl 2 37937 &disable_so_wl18xx_enable_interrupts_fndecl_37937
140955 +disable_so_last_ack_time_misc_stats_37946 last_ack_time misc_stats 0 37946 NULL
140956 +disable_so_vblank_lo_lvds_dvo_timing_37949 vblank_lo lvds_dvo_timing 0 37949 NULL
140957 +disable_so_ath6kl_get_hi_item_addr_fndecl_37951 ath6kl_get_hi_item_addr fndecl 0-2 37951 NULL
140958 +disable_so_bitmap_word_used_fndecl_37955 bitmap_word_used fndecl 2 37955 NULL
140959 +disable_so_process_tgid_coredump_proc_event_37962 process_tgid coredump_proc_event 0 37962 NULL
140960 +disable_so_device_addr_net2280_tx_hdr_37967 device_addr net2280_tx_hdr 0 37967 NULL nohasharray
140961 +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
140962 +disable_so_read_l1_tsc_kvm_x86_ops_37977 read_l1_tsc kvm_x86_ops 0-2 37977 NULL
140963 +disable_so_ipqhashfn_fndecl_37983 ipqhashfn fndecl 1-4 37983 NULL
140964 +disable_so_divider_get_val_fndecl_37994 divider_get_val fndecl 1-2-4-0 37994 NULL
140965 +disable_so_rfc4106_set_hash_subkey_fndecl_37995 rfc4106_set_hash_subkey fndecl 3 37995 NULL
140966 +disable_so_intel_overlay_recover_from_interrupt_fndecl_37996 intel_overlay_recover_from_interrupt fndecl 0 37996 NULL
140967 +disable_so_demod_address_tda10023_config_37998 demod_address tda10023_config 0 37998 NULL nohasharray
140968 +disable_so_addrconf_del_ifaddr_fndecl_37998 addrconf_del_ifaddr fndecl 0 37998 &disable_so_demod_address_tda10023_config_37998
140969 +disable_so_clear_bit_unlock_fndecl_38002 clear_bit_unlock fndecl 1 38002 NULL
140970 +disable_so_mactime_ieee80211_rx_status_38004 mactime ieee80211_rx_status 0 38004 NULL
140971 +disable_so_conn_info_timestamp_hci_conn_38005 conn_info_timestamp hci_conn 0 38005 NULL
140972 +disable_so_il_vsync_v4l2_bt_timings_38013 il_vsync v4l2_bt_timings 0 38013 NULL
140973 +disable_so_bch_strtouint_h_fndecl_38016 bch_strtouint_h fndecl 0 38016 NULL
140974 +disable_so_crypto_ccm_encrypt_fndecl_38019 crypto_ccm_encrypt fndecl 0 38019 NULL
140975 +disable_so_beacon_timeout_ms_vardecl_38026 beacon_timeout_ms vardecl 0 38026 NULL
140976 +disable_so_ima_calc_field_array_hash_fndecl_38044 ima_calc_field_array_hash fndecl 0-3 38044 NULL
140977 +disable_so_mISDN_clock_update_fndecl_38046 mISDN_clock_update fndecl 2 38046 NULL
140978 +disable_so_rv6xx_memory_clock_entry_set_post_divider_fndecl_38049 rv6xx_memory_clock_entry_set_post_divider fndecl 3 38049 NULL nohasharray
140979 +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
140980 +disable_so_bcma_pmu_get_cpu_clock_fndecl_38056 bcma_pmu_get_cpu_clock fndecl 0 38056 NULL
140981 +disable_so_mei_irq_write_handler_fndecl_38063 mei_irq_write_handler fndecl 0 38063 NULL
140982 +disable_so_follow_huge_addr_fndecl_38066 follow_huge_addr fndecl 2 38066 NULL
140983 +disable_so_wait_for_completion_timeout_fndecl_38078 wait_for_completion_timeout fndecl 0-2 38078 NULL
140984 +disable_so_wm8961_set_clkdiv_fndecl_38080 wm8961_set_clkdiv fndecl 3 38080 NULL
140985 +disable_so_process_tgid_ptrace_proc_event_38081 process_tgid ptrace_proc_event 0 38081 NULL
140986 +disable_so_blocknr_disk_bitmap_header_38088 blocknr disk_bitmap_header 0 38088 NULL
140987 +disable_so_index_cnt_btrfs_delayed_node_38090 index_cnt btrfs_delayed_node 0 38090 NULL
140988 +disable_so_bq32k_rtc_set_time_fndecl_38091 bq32k_rtc_set_time fndecl 0 38091 NULL nohasharray
140989 +disable_so_apei_map_generic_address_fndecl_38091 apei_map_generic_address fndecl 0 38091 &disable_so_bq32k_rtc_set_time_fndecl_38091
140990 +disable_so_xfs_iformat_btree_fndecl_38096 xfs_iformat_btree fndecl 0 38096 NULL
140991 +disable_so_inet6_rtm_newaddr_fndecl_38099 inet6_rtm_newaddr fndecl 0 38099 NULL
140992 +disable_so_tuner_set_frequency_stv090x_config_38105 tuner_set_frequency stv090x_config 2 38105 NULL
140993 +disable_so_atomic_notifier_chain_register_fndecl_38114 atomic_notifier_chain_register fndecl 0 38114 NULL
140994 +disable_so_timeout_parms_to_skb_fndecl_38116 timeout_parms_to_skb fndecl 0 38116 NULL
140995 +disable_so_key_idx_off_ieee80211_cipher_scheme_38117 key_idx_off ieee80211_cipher_scheme 0 38117 NULL
140996 +disable_so_qla2x00_zio_timer_store_fndecl_38118 qla2x00_zio_timer_store fndecl 0 38118 NULL
140997 +disable_so_pch_udc_write_ep_interrupts_fndecl_38129 pch_udc_write_ep_interrupts fndecl 2 38129 NULL
140998 +disable_so_ipv4addr_cxgbi_hba_38131 ipv4addr cxgbi_hba 0 38131 NULL
140999 +disable_so_ep0_bounce_addr_dwc3_38133 ep0_bounce_addr dwc3 0 38133 NULL
141000 +disable_so_br_ip_hash_fndecl_38135 br_ip_hash fndecl 0 38135 NULL
141001 +disable_so_signal_to_av_fndecl_38146 signal_to_av fndecl 0 38146 NULL nohasharray
141002 +disable_so_ext4_init_block_bitmap_fndecl_38146 ext4_init_block_bitmap fndecl 3 38146 &disable_so_signal_to_av_fndecl_38146
141003 +disable_so_mapped_physical_address_acpi_mem_space_context_38147 mapped_physical_address acpi_mem_space_context 0 38147 NULL
141004 +disable_so_uptime_dn_dev_38149 uptime dn_dev 0 38149 NULL nohasharray
141005 +disable_so_btrfs_name_hash_fndecl_38149 btrfs_name_hash fndecl 0-2 38149 &disable_so_uptime_dn_dev_38149
141006 +disable_so_snd_timer_pause_fndecl_38159 snd_timer_pause fndecl 0 38159 NULL
141007 +disable_so_flash_addr_atto_vda_flash_req_38165 flash_addr atto_vda_flash_req 0 38165 NULL
141008 +disable_so_bfa_fcs_lport_ns_sm_sending_gid_ft_fndecl_38173 bfa_fcs_lport_ns_sm_sending_gid_ft fndecl 2 38173 NULL
141009 +disable_so_nla_put_flag_fndecl_38183 nla_put_flag fndecl 0 38183 NULL
141010 +disable_so_fll_freq_in_wm8350_data_38185 fll_freq_in wm8350_data 0 38185 NULL
141011 +disable_so_softdog_set_timeout_fndecl_38187 softdog_set_timeout fndecl 2 38187 NULL
141012 +disable_so_i_uid_sysv_inode_38197 i_uid sysv_inode 0 38197 NULL
141013 +disable_so_start_time_wl1271_tx_hw_descr_38213 start_time wl1271_tx_hw_descr 0 38213 NULL
141014 +disable_so_address_callback_fw_address_handler_38224 address_callback fw_address_handler 6-9 38224 NULL
141015 +disable_so_last_rsrc_error_time_lpfc_hba_38225 last_rsrc_error_time lpfc_hba 0 38225 NULL
141016 +disable_so_val_addr1_nphy_rf_control_override_rev3_38228 val_addr1 nphy_rf_control_override_rev3 0 38228 NULL
141017 +disable_so_ipr_transop_timeout_vardecl_ipr_c_38231 ipr_transop_timeout vardecl_ipr.c 0 38231 NULL
141018 +disable_so_disk_events_poll_jiffies_fndecl_38233 disk_events_poll_jiffies fndecl 0 38233 NULL
141019 +disable_so_s2mps11_set_ramp_delay_fndecl_38236 s2mps11_set_ramp_delay fndecl 0 38236 NULL
141020 +disable_so_rdb_BlockBytes_RigidDiskBlock_38238 rdb_BlockBytes RigidDiskBlock 0 38238 NULL
141021 +disable_so_bitmap_equal_fndecl_38239 bitmap_equal fndecl 3 38239 NULL
141022 +disable_so_drm_mm_init_fndecl_38240 drm_mm_init fndecl 2-3 38240 NULL nohasharray
141023 +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
141024 +disable_so_cg_spll_spread_spectrum_ni_clock_registers_38241 cg_spll_spread_spectrum ni_clock_registers 0 38241 NULL
141025 +disable_so_byt_gpu_freq_fndecl_38243 byt_gpu_freq fndecl 0-2 38243 NULL
141026 +disable_so_hhf_evict_timeout_hhf_sched_data_38244 hhf_evict_timeout hhf_sched_data 0 38244 NULL
141027 +disable_so_addr_unmap_notify_38247 addr unmap_notify 0 38247 NULL
141028 +disable_so_xfs_btree_reada_bufl_fndecl_38248 xfs_btree_reada_bufl fndecl 2-3 38248 NULL
141029 +disable_so_ip_vs_conn_hashkey_param_fndecl_38257 ip_vs_conn_hashkey_param fndecl 0 38257 NULL
141030 +disable_so_prev_steal_time_rq_rq_38260 prev_steal_time_rq rq 0 38260 NULL
141031 +disable_so_mapaddr_map_list_38266 mapaddr map_list 0 38266 NULL
141032 +disable_so_reqoff_crypto_authenc_esn_ctx_38268 reqoff crypto_authenc_esn_ctx 0 38268 NULL
141033 +disable_so_ui_mtimensec_ufs2_inode_38278 ui_mtimensec ufs2_inode 0 38278 NULL
141034 +disable_so_scbbaddr_ahc_pci_softc_38281 scbbaddr ahc_pci_softc 0 38281 NULL
141035 +disable_so_demod_address_dst_config_38283 demod_address dst_config 0 38283 NULL
141036 +disable_so_pcc_cpufreq_init_fndecl_38287 pcc_cpufreq_init fndecl 0 38287 NULL
141037 +disable_so_channel_divider_ad9523_channel_spec_38291 channel_divider ad9523_channel_spec 0 38291 NULL
141038 +disable_so_time_in_ghes_estatus_cache_38306 time_in ghes_estatus_cache 0 38306 NULL
141039 +disable_so_time_stamp_i40e_tx_buffer_38313 time_stamp i40e_tx_buffer 0 38313 NULL
141040 +disable_so_show_signal_msg_fndecl_38336 show_signal_msg fndecl 3 38336 NULL
141041 +disable_so_cma_bitmap_aligned_offset_fndecl_38343 cma_bitmap_aligned_offset fndecl 0-2 38343 NULL
141042 +disable_so_digi_set_modem_signals_fndecl_38348 digi_set_modem_signals fndecl 0 38348 NULL
141043 +disable_so_sum_blk_addr_fndecl_38356 sum_blk_addr fndecl 0-2-3 38356 NULL
141044 +disable_so_gcm_hash_assoc_done_fndecl_38360 gcm_hash_assoc_done fndecl 2 38360 NULL
141045 +disable_so_dma_headwb_addr_i40e_virtchnl_txq_info_38365 dma_headwb_addr i40e_virtchnl_txq_info 0 38365 NULL
141046 +disable_so_cpu_cpufreq_policy_38366 cpu cpufreq_policy 0 38366 NULL nohasharray
141047 +disable_so_shash_descsize_dm_verity_38366 shash_descsize dm_verity 0 38366 &disable_so_cpu_cpufreq_policy_38366
141048 +disable_so_sleep_cookie_addr_lo_host_cmd_ds_pcie_details_38370 sleep_cookie_addr_lo host_cmd_ds_pcie_details 0 38370 NULL
141049 +disable_so_bch_btree_keys_u64s_remaining_fndecl_38373 bch_btree_keys_u64s_remaining fndecl 0 38373 NULL
141050 +disable_so_timeout_lp_struct_38387 timeout lp_struct 0 38387 NULL
141051 +disable_so_x1205_set_datetime_fndecl_38391 x1205_set_datetime fndecl 4 38391 NULL
141052 +disable_so_dma_addr_rxd_info_38410 dma_addr rxd_info 0 38410 NULL
141053 +disable_so_copy_signaled_event_data_fndecl_38425 copy_signaled_event_data fndecl 1 38425 NULL
141054 +disable_so_bcn_addr_carl9170_bcn_ctrl_cmd_38429 bcn_addr carl9170_bcn_ctrl_cmd 0 38429 NULL
141055 +disable_so_rproc_vq_interrupt_fndecl_38432 rproc_vq_interrupt fndecl 2 38432 NULL
141056 +disable_so_div_clk_div_table_38447 div clk_div_table 0 38447 NULL
141057 +disable_so_seq_default_timer_resolution_vardecl_38451 seq_default_timer_resolution vardecl 0 38451 NULL
141058 +disable_so_dma_ops_free_addresses_fndecl_38461 dma_ops_free_addresses fndecl 2-3 38461 NULL
141059 +disable_so_time_zero_xfs_mru_cache_38463 time_zero xfs_mru_cache 0 38463 NULL
141060 +disable_so_timeAdj_TCP_Server_Info_38464 timeAdj TCP_Server_Info 0 38464 NULL
141061 +disable_so_curr_kvm_shared_msr_values_38468 curr kvm_shared_msr_values 0 38468 NULL
141062 +disable_so_vhost_add_used_and_signal_fndecl_38469 vhost_add_used_and_signal fndecl 4-3 38469 NULL
141063 +disable_so_mclk_pwrmgt_cntl_ni_clock_registers_38478 mclk_pwrmgt_cntl ni_clock_registers 0 38478 NULL
141064 +disable_so_srp_reconnect_delay_vardecl_ib_srp_c_38484 srp_reconnect_delay vardecl_ib_srp.c 0 38484 NULL
141065 +disable_so_i2c_clk_divider_au0828_board_38485 i2c_clk_divider au0828_board 0 38485 NULL
141066 +disable_so_ark_set_pixclock_fndecl_38501 ark_set_pixclock fndecl 2 38501 NULL
141067 +disable_so_use_time_xfrm_lifetime_cur_38505 use_time xfrm_lifetime_cur 0 38505 NULL nohasharray
141068 +disable_so_musb_advance_schedule_fndecl_38505 musb_advance_schedule fndecl 4 38505 &disable_so_use_time_xfrm_lifetime_cur_38505
141069 +disable_so_spinfo_mtu_sctp_paddrinfo_38516 spinfo_mtu sctp_paddrinfo 0 38516 NULL
141070 +disable_so_sample_freq_tda10048_state_38521 sample_freq tda10048_state 0 38521 NULL
141071 +disable_so_mapping_level_dirty_bitmap_fndecl_38527 mapping_level_dirty_bitmap fndecl 2 38527 NULL
141072 +disable_so_rx_ring_dma_addr_sc92031_priv_38536 rx_ring_dma_addr sc92031_priv 0 38536 NULL
141073 +disable_so___ipv6_addr_type_fndecl_38537 __ipv6_addr_type fndecl 0 38537 NULL
141074 +disable_so_cstamp_inet6_ifaddr_38541 cstamp inet6_ifaddr 0 38541 NULL
141075 +disable_so_arch_randomize_brk_fndecl_38542 arch_randomize_brk fndecl 0 38542 NULL
141076 +disable_so_imon_mce_key_lookup_fndecl_38543 imon_mce_key_lookup fndecl 0-2 38543 NULL
141077 +disable_so_amdgpu_mm_wreg_fndecl_38550 amdgpu_mm_wreg fndecl 2-3 38550 NULL
141078 +disable_so_mgid_index_mthca_qp_path_38553 mgid_index mthca_qp_path 0 38553 NULL
141079 +disable_so_i_gid_bfs_inode_38565 i_gid bfs_inode 0 38565 NULL
141080 +disable_so_tx_delayed_compl_wlcore_ops_38572 tx_delayed_compl wlcore_ops 0 38572 NULL
141081 +disable_so_split_scan_timeout_write_fndecl_38579 split_scan_timeout_write fndecl 3-0 38579 NULL
141082 +disable_so_xfs_btree_change_owner_fndecl_38586 xfs_btree_change_owner fndecl 0-2 38586 NULL
141083 +disable_so_hash_sendmsg_fndecl_38588 hash_sendmsg fndecl 0 38588 NULL
141084 +disable_so_read_inode_bitmap_fndecl_38589 read_inode_bitmap fndecl 2 38589 NULL
141085 +disable_so_before_ctime_sec_nfsd4_change_info_38591 before_ctime_sec nfsd4_change_info 0 38591 NULL
141086 +disable_so_sys_clock_freq_drx_common_attr_38599 sys_clock_freq drx_common_attr 0 38599 NULL
141087 +disable_so_kvm_x2apic_msr_write_fndecl_38601 kvm_x2apic_msr_write fndecl 3 38601 NULL
141088 +disable_so_stored_addr_lo_amd_iommu_38609 stored_addr_lo amd_iommu 0 38609 NULL
141089 +disable_so_udp_port_udp_media_addr_38613 udp_port udp_media_addr 0 38613 NULL
141090 +disable_so_hashmask_Qdisc_class_hash_38621 hashmask Qdisc_class_hash 0 38621 NULL
141091 +disable_so_i_gid_nilfs_inode_38625 i_gid nilfs_inode 0 38625 NULL
141092 +disable_so__freq_tbl_determine_rate_fndecl_38627 _freq_tbl_determine_rate fndecl 0 38627 NULL
141093 +disable_so_n__pll_div_38634 n _pll_div 0 38634 NULL
141094 +disable_so_security_task_getpgid_fndecl_38635 security_task_getpgid fndecl 0 38635 NULL
141095 +disable_so_dmsr_eg20t_port_38638 dmsr eg20t_port 0 38638 NULL
141096 +disable_so_e4000_s_frequency_fndecl_38648 e4000_s_frequency fndecl 0 38648 NULL
141097 +disable_so_timestamp_iwl_rx_phy_res_38650 timestamp iwl_rx_phy_res 0 38650 NULL
141098 +disable_so_set_freq_fndecl_38651 set_freq fndecl 2 38651 NULL
141099 +disable_so_technisat_usb2_set_led_timer_fndecl_38654 technisat_usb2_set_led_timer fndecl 3-2 38654 NULL
141100 +disable_so_mthca_query_gid_fndecl_38656 mthca_query_gid fndecl 2-3 38656 NULL
141101 +disable_so_mpihelp_addmul_1_fndecl_38658 mpihelp_addmul_1 fndecl 3 38658 NULL
141102 +disable_so_press_adjust_channel_bit_mask_fndecl_38661 press_adjust_channel_bit_mask fndecl 3 38661 NULL
141103 +disable_so_vdi_ctime_vxfs_inode_info_38664 vdi_ctime vxfs_inode_info 0 38664 NULL
141104 +disable_so_afs_vlocation_update_timeout_vardecl_vlocation_c_38669 afs_vlocation_update_timeout vardecl_vlocation.c 0 38669 NULL nohasharray
141105 +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
141106 +disable_so_rhashtable_check_elasticity_fndecl_38676 rhashtable_check_elasticity fndecl 3 38676 NULL
141107 +disable_so_addr_bus_sg_simple_element_38677 addr_bus sg_simple_element 0 38677 NULL
141108 +disable_so_pcxhr_get_external_clock_fndecl_38682 pcxhr_get_external_clock fndecl 0 38682 NULL
141109 +disable_so_ahd_timer_reset_fndecl_38702 ahd_timer_reset fndecl 2 38702 NULL nohasharray
141110 +disable_so_nr_uninterruptible_rq_38702 nr_uninterruptible rq 0 38702 &disable_so_ahd_timer_reset_fndecl_38702
141111 +disable_so_dp_saddr_rds_ib_connect_private_38707 dp_saddr rds_ib_connect_private 0 38707 NULL
141112 +disable_so_dsp_spl_jiffies_vardecl_38710 dsp_spl_jiffies vardecl 0 38710 NULL
141113 +disable_so_mtrr_lookup_init_fndecl_38724 mtrr_lookup_init fndecl 4-3 38724 NULL
141114 +disable_so_qdisc_watchdog_schedule_fndecl_38729 qdisc_watchdog_schedule fndecl 2 38729 NULL
141115 +disable_so_authenc_esn_verify_ahash_update_done_fndecl_38734 authenc_esn_verify_ahash_update_done fndecl 2 38734 NULL
141116 +disable_so_hactive_hi_oaktrail_timing_info_38738 hactive_hi oaktrail_timing_info 0 38738 NULL
141117 +disable_so_i2c_address_xc5000_config_38739 i2c_address xc5000_config 0 38739 NULL
141118 +disable_so_address_fw_hdr_38754 address fw_hdr 0 38754 NULL
141119 +disable_so_radio_addr_saa7134_dev_38765 radio_addr saa7134_dev 0 38765 NULL
141120 +disable_so_i2c_address_max2165_config_38766 i2c_address max2165_config 0 38766 NULL nohasharray
141121 +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
141122 +disable_so_fan1_div_amc6821_data_38770 fan1_div amc6821_data 0 38770 NULL
141123 +disable_so_sd_blocks_per_bitmap_gfs2_sbd_38771 sd_blocks_per_bitmap gfs2_sbd 0 38771 NULL
141124 +disable_so_cryptd_hash_finup_fndecl_38778 cryptd_hash_finup fndecl 2 38778 NULL
141125 +disable_so_mnamehash_dlm_master_list_entry_38791 mnamehash dlm_master_list_entry 0 38791 NULL
141126 +disable_so_compat_sys_clock_nanosleep_fndecl_38793 compat_sys_clock_nanosleep fndecl 1 38793 NULL
141127 +disable_so_minutes_v4l2_timecode_38804 minutes v4l2_timecode 0 38804 NULL
141128 +disable_so_mtrr_type_lookup_variable_fndecl_38806 mtrr_type_lookup_variable fndecl 1-2 38806 NULL
141129 +disable_so_pch_uart_hal_disable_interrupt_fndecl_38820 pch_uart_hal_disable_interrupt fndecl 2 38820 NULL nohasharray
141130 +disable_so_addr_azx_38820 addr azx 0 38820 &disable_so_pch_uart_hal_disable_interrupt_fndecl_38820
141131 +disable_so_num_addresses_at24_data_38822 num_addresses at24_data 0 38822 NULL
141132 +disable_so_delay_reg_anatop_regulator_38823 delay_reg anatop_regulator 0 38823 NULL
141133 +disable_so_table_addr_radeon_gart_38825 table_addr radeon_gart 0 38825 NULL
141134 +disable_so_random_ioctl_fndecl_38846 random_ioctl fndecl 0 38846 NULL
141135 +disable_so_iwl_count_chain_bitmap_fndecl_38847 iwl_count_chain_bitmap fndecl 0-1 38847 NULL
141136 +disable_so_phy_pm_runtime_get_fndecl_38865 phy_pm_runtime_get fndecl 0 38865 NULL
141137 +disable_so_interrupt_level_mask_kszphy_type_38870 interrupt_level_mask kszphy_type 0 38870 NULL nohasharray
141138 +disable_so_r25_val_fc2580_freq_regs_38870 r25_val fc2580_freq_regs 0 38870 &disable_so_interrupt_level_mask_kszphy_type_38870
141139 +disable_so_cc770_tx_interrupt_fndecl_38879 cc770_tx_interrupt fndecl 2 38879 NULL
141140 +disable_so_rq_first_pbe_addr_lo_fcoe_kwqe_conn_offload1_38880 rq_first_pbe_addr_lo fcoe_kwqe_conn_offload1 0 38880 NULL
141141 +disable_so_hpi_compander_get_attack_time_constant_fndecl_38881 hpi_compander_get_attack_time_constant fndecl 1-0 38881 NULL
141142 +disable_so_get_clock_info_fndecl_38883 get_clock_info fndecl 4-0 38883 NULL
141143 +disable_so_ieee80211_aes_gmac_fndecl_38891 ieee80211_aes_gmac fndecl 5 38891 NULL
141144 +disable_so_port_mlx4_sriov_alias_guid_port_rec_det_38897 port mlx4_sriov_alias_guid_port_rec_det 0 38897 NULL
141145 +disable_so_fd_pppol2tpv3_addr_38898 fd pppol2tpv3_addr 0 38898 NULL nohasharray
141146 +disable_so_bcm3510_set_freq_fndecl_38898 bcm3510_set_freq fndecl 2 38898 &disable_so_fd_pppol2tpv3_addr_38898
141147 +disable_so_irq_dispose_mapping_fndecl_38902 irq_dispose_mapping fndecl 1 38902 NULL
141148 +disable_so_crypto_ccm_decrypt_done_fndecl_38904 crypto_ccm_decrypt_done fndecl 2 38904 NULL
141149 +disable_so_cw1200_queue_get_xmit_timestamp_fndecl_38907 cw1200_queue_get_xmit_timestamp fndecl 3 38907 NULL nohasharray
141150 +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
141151 +disable_so_check_num_extents_and_bitmaps_fndecl_38927 check_num_extents_and_bitmaps fndecl 0 38927 NULL
141152 +disable_so_timekeeping_get_tai_offset_fndecl_38933 timekeeping_get_tai_offset fndecl 0 38933 NULL nohasharray
141153 +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
141154 +disable_so_mlx4_get_base_gid_ix_fndecl_38938 mlx4_get_base_gid_ix fndecl 0-2-3 38938 NULL
141155 +disable_so_default_i2c_addr_dib7000p_config_38941 default_i2c_addr dib7000p_config 0 38941 NULL
141156 +disable_so_nilfs_btree_get_next_key_fndecl_38942 nilfs_btree_get_next_key fndecl 0 38942 NULL
141157 +disable_so_eoc_delay_ns_cc10001_adc_device_38943 eoc_delay_ns cc10001_adc_device 0 38943 NULL
141158 +disable_so_get_clock_desc_fndecl_38944 get_clock_desc fndecl 1 38944 NULL
141159 +disable_so_hdsp_set_interrupt_interval_fndecl_38947 hdsp_set_interrupt_interval fndecl 2 38947 NULL
141160 +disable_so_sysctl_sched_time_avg_vardecl_38969 sysctl_sched_time_avg vardecl 0 38969 NULL
141161 +disable_so_vivid_radio_s_frequency_fndecl_38975 vivid_radio_s_frequency fndecl 0 38975 NULL
141162 +disable_so_sha1_pad_fndecl_38979 sha1_pad fndecl 0-2 38979 NULL
141163 +disable_so_hash_mask_deflate_state_38981 hash_mask deflate_state 0 38981 NULL
141164 +disable_so_pos_dmaengine_pcm_runtime_data_38984 pos dmaengine_pcm_runtime_data 0 38984 NULL
141165 +disable_so_set_dma_addr_fndecl_38989 set_dma_addr fndecl 1-2 38989 NULL
141166 +disable_so_caller_gid_ceph_mds_request_head_38991 caller_gid ceph_mds_request_head 0 38991 NULL
141167 +disable_so_bf_paddr_ath_mci_buf_38995 bf_paddr ath_mci_buf 0 38995 NULL
141168 +disable_so_x86_setup_var_mtrrs_fndecl_39006 x86_setup_var_mtrrs fndecl 4-3-2 39006 NULL nohasharray
141169 +disable_so_uv_global_mmr64_address_fndecl_39006 uv_global_mmr64_address fndecl 1 39006 &disable_so_x86_setup_var_mtrrs_fndecl_39006
141170 +disable_so_interrupt_out_interval_lego_usb_tower_39007 interrupt_out_interval lego_usb_tower 0 39007 NULL
141171 +disable_so_di_uid_logfs_disk_inode_39011 di_uid logfs_disk_inode 0 39011 NULL
141172 +disable_so_cfag12864b_address_fndecl_39018 cfag12864b_address fndecl 1 39018 NULL
141173 +disable_so_dmaaddr_b43legacy_dmadesc_meta_39023 dmaaddr b43legacy_dmadesc_meta 0 39023 NULL
141174 +disable_so_dce_v10_0_crtc_set_base_atomic_fndecl_39025 dce_v10_0_crtc_set_base_atomic fndecl 0 39025 NULL
141175 +disable_so_dst_addr_l_wcn36xx_dxe_desc_39037 dst_addr_l wcn36xx_dxe_desc 0 39037 NULL
141176 +disable_so_show_fan_div_fndecl_39039 show_fan_div fndecl 0 39039 NULL
141177 +disable_so_set_timer_slack_fndecl_39051 set_timer_slack fndecl 2 39051 NULL
141178 +disable_so_seq_xfrm_usersa_info_39054 seq xfrm_usersa_info 0 39054 NULL
141179 +disable_so_freq_wmi_send_action_cmd_39065 freq wmi_send_action_cmd 0 39065 NULL
141180 +disable_so_addr_ksz_hw_desc_39069 addr ksz_hw_desc 0 39069 NULL
141181 +disable_so_fll_refclk_div__fll_div_39071 fll_refclk_div _fll_div 0 39071 NULL
141182 +disable_so_atime_nsec_ubifs_ino_node_39079 atime_nsec ubifs_ino_node 0 39079 NULL
141183 +disable_so_p2m_jiffies_solo_dev_39094 p2m_jiffies solo_dev 0 39094 NULL
141184 +disable_so_cl_time_nfs4_client_39095 cl_time nfs4_client 0 39095 NULL
141185 +disable_so_addr_inet_cork_39099 addr inet_cork 0 39099 NULL nohasharray
141186 +disable_so_get_cur_freq_on_cpu_fndecl_39099 get_cur_freq_on_cpu fndecl 0 39099 &disable_so_addr_inet_cork_39099
141187 +disable_so_addr_radeon_dummy_page_39105 addr radeon_dummy_page 0 39105 NULL
141188 +disable_so_dmar_set_interrupt_fndecl_39106 dmar_set_interrupt fndecl 0 39106 NULL
141189 +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
141190 +disable_so_atomic_set_property_drm_plane_funcs_39123 atomic_set_property drm_plane_funcs 0-4 39123 NULL nohasharray
141191 +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
141192 +disable_so_div_sync_wait_dib7000p_state_39125 div_sync_wait dib7000p_state 0 39125 NULL nohasharray
141193 +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
141194 +disable_so_regcache_rbtree_write_fndecl_39126 regcache_rbtree_write fndecl 2-3 39126 NULL
141195 +disable_so_boot_addr_nvbios_pmuR_39136 boot_addr nvbios_pmuR 0 39136 NULL
141196 +disable_so_slack_timer_list_39142 slack timer_list 0 39142 NULL
141197 +disable_so_qat_alg_ablkcipher_decrypt_fndecl_39147 qat_alg_ablkcipher_decrypt fndecl 0 39147 NULL
141198 +disable_so_security_task_fix_setuid_fndecl_39149 security_task_fix_setuid fndecl 0 39149 NULL
141199 +disable_so_result_xfs_btree_split_args_39161 result xfs_btree_split_args 0 39161 NULL
141200 +disable_so_max_medium_access_timeouts_show_fndecl_39174 max_medium_access_timeouts_show fndecl 0 39174 NULL
141201 +disable_so_rx_rx_timeout_wa_read_fndecl_39183 rx_rx_timeout_wa_read fndecl 3 39183 NULL nohasharray
141202 +disable_so_store_falltime_fndecl_39183 store_falltime fndecl 4-0 39183 &disable_so_rx_rx_timeout_wa_read_fndecl_39183
141203 +disable_so_n_gma_clock_t_39192 n gma_clock_t 0 39192 NULL
141204 +disable_so_phy_addr_wcn36xx_dxe_mem_pool_39193 phy_addr wcn36xx_dxe_mem_pool 0 39193 NULL
141205 +disable_so_r6c_val_fc2580_freq_regs_39202 r6c_val fc2580_freq_regs 0 39202 NULL
141206 +disable_so_adis16480_get_freq_fndecl_39205 adis16480_get_freq fndecl 0 39205 NULL
141207 +disable_so_stv0367_get_tuner_freq_fndecl_39210 stv0367_get_tuner_freq fndecl 0 39210 NULL
141208 +disable_so_loadtime_init_fndecl_39230 loadtime_init fndecl 0 39230 NULL
141209 +disable_so_vcc_timeout_period_lec_priv_39232 vcc_timeout_period lec_priv 0 39232 NULL nohasharray
141210 +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
141211 +disable_so_rxhubaddr_musb_csr_regs_39234 rxhubaddr musb_csr_regs 0 39234 NULL
141212 +disable_so_igb_init_interrupt_scheme_fndecl_39237 igb_init_interrupt_scheme fndecl 0 39237 NULL
141213 +disable_so_decrypt_mpdu_lib80211_crypto_ops_39245 decrypt_mpdu lib80211_crypto_ops 2 39245 NULL
141214 +disable_so_enc_cd_paddr_qat_alg_ablkcipher_ctx_39246 enc_cd_paddr qat_alg_ablkcipher_ctx 0 39246 NULL
141215 +disable_so_ax_tss_segment_16_39248 ax tss_segment_16 0 39248 NULL
141216 +disable_so___crypto_memneq_fndecl_39251 __crypto_memneq fndecl 3 39251 NULL
141217 +disable_so_core_freq_drm_psb_private_39252 core_freq drm_psb_private 0 39252 NULL
141218 +disable_so_i_gid_minix_inode_39253 i_gid minix_inode 0 39253 NULL
141219 +disable_so_sllc_arphrd_sockaddr_llc_39261 sllc_arphrd sockaddr_llc 0 39261 NULL
141220 +disable_so_bind_virq_for_mce_fndecl_39266 bind_virq_for_mce fndecl 0 39266 NULL
141221 +disable_so_poll_timeout_hwif_s_39267 poll_timeout hwif_s 0 39267 NULL
141222 +disable_so_cik_set_uvd_clock_fndecl_39276 cik_set_uvd_clock fndecl 2-0 39276 NULL
141223 +disable_so_watchdog_get_timeleft_fndecl_39280 watchdog_get_timeleft fndecl 0 39280 NULL
141224 +disable_so_pti_addr_pti_dev_39288 pti_addr pti_dev 0 39288 NULL
141225 +disable_so_last_guest_tsc_kvm_vcpu_arch_39290 last_guest_tsc kvm_vcpu_arch 0 39290 NULL
141226 +disable_so_crypto_cts_encrypt_fndecl_39299 crypto_cts_encrypt fndecl 0-4 39299 NULL
141227 +disable_so_set_timer_mode_fndecl_39306 set_timer_mode fndecl 1 39306 NULL
141228 +disable_so_vref_delay_usecs_ads7846_39307 vref_delay_usecs ads7846 0 39307 NULL nohasharray
141229 +disable_so_signal_rxdone_entry_desc_39307 signal rxdone_entry_desc 0 39307 &disable_so_vref_delay_usecs_ads7846_39307
141230 +disable_so_kr_rcvhdrtailaddr_ipath_kregs_39311 kr_rcvhdrtailaddr ipath_kregs 0 39311 NULL
141231 +disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 cyapa_pwr_cmd_to_sleep_time fndecl 0-1 39315 NULL nohasharray
141232 +disable_so_sleep_time_packet_data_39315 sleep_time packet_data 0 39315 &disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 nohasharray
141233 +disable_so_sdhci_runtime_pm_get_fndecl_39315 sdhci_runtime_pm_get fndecl 0 39315 &disable_so_sleep_time_packet_data_39315
141234 +disable_so___request_region_fndecl_39330 __request_region fndecl 3-2-5 39330 NULL
141235 +disable_so_hash_next_entry_39332 hash_next entry 0 39332 NULL
141236 +disable_so_timeout_dmx_sct_filter_params_39333 timeout dmx_sct_filter_params 0 39333 NULL
141237 +disable_so_dma_in_mceusb_dev_39335 dma_in mceusb_dev 0 39335 NULL
141238 +disable_so_address_acpi_resource_fixed_io_39338 address acpi_resource_fixed_io 0 39338 NULL
141239 +disable_so_adjusted_clock_radeon_crtc_39340 adjusted_clock radeon_crtc 0 39340 NULL
141240 +disable_so_busaddr_drm_dma_handle_39348 busaddr drm_dma_handle 0 39348 NULL
141241 +disable_so_gid_ok_fndecl_39349 gid_ok fndecl 3 39349 NULL
141242 +disable_so_sched_clock_remote_fndecl_39352 sched_clock_remote fndecl 0 39352 NULL
141243 +disable_so_i_ctime_extra_ext4_inode_39365 i_ctime_extra ext4_inode 0 39365 NULL
141244 +disable_so_mISDN_inittimer_fndecl_39396 mISDN_inittimer fndecl 0 39396 NULL
141245 +disable_so_status_addr_efx_vf_39401 status_addr efx_vf 0 39401 NULL nohasharray
141246 +disable_so_freq_ieee80211_rx_status_39401 freq ieee80211_rx_status 0 39401 &disable_so_status_addr_efx_vf_39401
141247 +disable_so_validate_acl_mac_addrs_fndecl_39406 validate_acl_mac_addrs fndecl 0 39406 NULL nohasharray
141248 +disable_so_encrypt_mpdu_lib80211_crypto_ops_39406 encrypt_mpdu lib80211_crypto_ops 2 39406 &disable_so_validate_acl_mac_addrs_fndecl_39406
141249 +disable_so_max_idle_ns_clocksource_39415 max_idle_ns clocksource 0 39415 NULL
141250 +disable_so_sys_setreuid16_fndecl_39425 sys_setreuid16 fndecl 0-1-2 39425 NULL
141251 +disable_so_typhoon_start_runtime_fndecl_39437 typhoon_start_runtime fndecl 0 39437 NULL nohasharray
141252 +disable_so_frequency_dtv_frontend_properties_39437 frequency dtv_frontend_properties 0 39437 &disable_so_typhoon_start_runtime_fndecl_39437
141253 +disable_so_addr_init_table_39442 addr init_table 0 39442 NULL
141254 +disable_so_gru_end_paddr_vardecl_x2apic_uv_x_c_39443 gru_end_paddr vardecl_x2apic_uv_x.c 0 39443 NULL
141255 +disable_so_irq_timeout_write_fndecl_39445 irq_timeout_write fndecl 3-0 39445 NULL
141256 +disable_so_uwb_rc_mac_addr_set_fndecl_39450 uwb_rc_mac_addr_set fndecl 0 39450 NULL
141257 +disable_so_ext4_es_find_delayed_extent_range_fndecl_39461 ext4_es_find_delayed_extent_range fndecl 2-3 39461 NULL
141258 +disable_so_conn_timeout_hci_conn_39470 conn_timeout hci_conn 0 39470 NULL nohasharray
141259 +disable_so_compat_sys_rt_sigtimedwait_fndecl_39470 compat_sys_rt_sigtimedwait fndecl 0 39470 &disable_so_conn_timeout_hci_conn_39470
141260 +disable_so_snd_usb_pcm_delay_fndecl_39473 snd_usb_pcm_delay fndecl 0-2 39473 NULL nohasharray
141261 +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
141262 +disable_so_sz_out_qat_crypto_request_buffs_39477 sz_out qat_crypto_request_buffs 0 39477 NULL
141263 +disable_so_tx_abs_int_delay_e1000_adapter_39481 tx_abs_int_delay e1000_adapter 0 39481 NULL
141264 +disable_so_nilfs_btree_node_delete_fndecl_39483 nilfs_btree_node_delete fndecl 2 39483 NULL
141265 +disable_so_timeout_write_fndecl_39484 timeout_write fndecl 3-0 39484 NULL
141266 +disable_so_ac97_clock_vardecl_intel8x0_c_39489 ac97_clock vardecl_intel8x0.c 0 39489 NULL
141267 +disable_so_get_clock_info_fndecl_39492 get_clock_info fndecl 0 39492 NULL
141268 +disable_so_buf_paddr_uioc_39504 buf_paddr uioc 0 39504 NULL
141269 +disable_so_mpll_ss2_rv770_clock_registers_39508 mpll_ss2 rv770_clock_registers 0 39508 NULL
141270 +disable_so_fc_exch_timer_set_fndecl_39511 fc_exch_timer_set fndecl 2 39511 NULL
141271 +disable_so_stv0900_write_reg_fndecl_39517 stv0900_write_reg fndecl 2-3 39517 NULL
141272 +disable_so_divf_ide_proc_devset_39528 divf ide_proc_devset 0 39528 NULL
141273 +disable_so_wm_adsp_create_region_fndecl_39536 wm_adsp_create_region fndecl 2 39536 NULL
141274 +disable_so_pl2303_encode_baud_rate_divisor_fndecl_39544 pl2303_encode_baud_rate_divisor fndecl 0-2 39544 NULL
141275 +disable_so_mlx4_put_slave_node_guid_fndecl_39546 mlx4_put_slave_node_guid fndecl 3 39546 NULL
141276 +disable_so_sgl_addr_lo_fw_flash_Update_req_39547 sgl_addr_lo fw_flash_Update_req 0 39547 NULL
141277 +disable_so_m41t93_set_time_fndecl_39562 m41t93_set_time fndecl 0 39562 NULL
141278 +disable_so_width_intel_sdvo_preferred_input_timing_args_39563 width intel_sdvo_preferred_input_timing_args 0 39563 NULL
141279 +disable_so_RF_SYN_reserved_addr29_chan_info_nphy_radio205x_39569 RF_SYN_reserved_addr29 chan_info_nphy_radio205x 0 39569 NULL
141280 +disable_so_delay_vardecl_wm9712_c_39574 delay vardecl_wm9712.c 0 39574 NULL
141281 +disable_so_usb_sleep_charge_show_fndecl_39578 usb_sleep_charge_show fndecl 0 39578 NULL
141282 +disable_so_cpu_to_virtio16_fndecl_39582 cpu_to_virtio16 fndecl 0-2 39582 NULL
141283 +disable_so_e1000e_init_rx_addrs_fndecl_39608 e1000e_init_rx_addrs fndecl 2 39608 NULL
141284 +disable_so_wss_random_offset_tpg_draw_params_39616 wss_random_offset tpg_draw_params 0 39616 NULL
141285 +disable_so_ib_qib_sys_image_guid_vardecl_39617 ib_qib_sys_image_guid vardecl 0 39617 NULL
141286 +disable_so_m_gma_clock_t_39618 m gma_clock_t 0 39618 NULL
141287 +disable_so_nilfs_btree_node_move_right_fndecl_39627 nilfs_btree_node_move_right fndecl 3 39627 NULL
141288 +disable_so_max14577_muic_set_debounce_time_fndecl_39632 max14577_muic_set_debounce_time fndecl 2-0 39632 NULL nohasharray
141289 +disable_so_shash_compat_final_fndecl_39632 shash_compat_final fndecl 0 39632 &disable_so_max14577_muic_set_debounce_time_fndecl_39632
141290 +disable_so_tx_coal_timer_sxgbe_tx_queue_39639 tx_coal_timer sxgbe_tx_queue 0 39639 NULL
141291 +disable_so_antsignal_rx_radiotap_hdr_39653 antsignal rx_radiotap_hdr 0 39653 NULL
141292 +disable_so_vaddr_gru_dump_context_header_39663 vaddr gru_dump_context_header 0 39663 NULL
141293 +disable_so_cap_task_setscheduler_fndecl_39664 cap_task_setscheduler fndecl 0 39664 NULL
141294 +disable_so_bt_inq_page_start_time_bt_coexist_8723_39665 bt_inq_page_start_time bt_coexist_8723 0 39665 NULL
141295 +disable_so_last_beacon_signal_ieee80211_if_managed_39670 last_beacon_signal ieee80211_if_managed 0 39670 NULL
141296 +disable_so_ni_ipv4_address_dlm_node_info_39675 ni_ipv4_address dlm_node_info 0 39675 NULL
141297 +disable_so_i_gid_minix2_inode_39680 i_gid minix2_inode 0 39680 NULL
141298 +disable_so_mx51_ecspi_clkdiv_fndecl_39681 mx51_ecspi_clkdiv fndecl 1-2-0 39681 NULL
141299 +disable_so_mld_dad_start_timer_fndecl_39685 mld_dad_start_timer fndecl 2 39685 NULL
141300 +disable_so_fm10k_read_systime_vf_fndecl_39687 fm10k_read_systime_vf fndecl 0 39687 NULL
141301 +disable_so_cp_hqd_pq_wptr_poll_addr_hi_hqd_registers_39692 cp_hqd_pq_wptr_poll_addr_hi hqd_registers 0 39692 NULL
141302 +disable_so_i2c_smbus_read_byte_data_fndecl_39698 i2c_smbus_read_byte_data fndecl 0-2 39698 NULL
141303 +disable_so_abort_mfi_phys_addr_lo_megasas_abort_frame_39699 abort_mfi_phys_addr_lo megasas_abort_frame 0 39699 NULL
141304 +disable_so_sclk_radeon_pm_clock_info_39706 sclk radeon_pm_clock_info 0 39706 NULL
141305 +disable_so_dma_addr_pch_udc_dev_39708 dma_addr pch_udc_dev 0 39708 NULL
141306 +disable_so_word_write_time_flchip_39711 word_write_time flchip 0 39711 NULL nohasharray
141307 +disable_so_acpi_dev_runtime_suspend_fndecl_39711 acpi_dev_runtime_suspend fndecl 0 39711 &disable_so_word_write_time_flchip_39711
141308 +disable_so_poll_time_us_sccnxp_pdata_39712 poll_time_us sccnxp_pdata 0 39712 NULL
141309 +disable_so_div2_wm8978_pll_div_39713 div2 wm8978_pll_div 0 39713 NULL nohasharray
141310 +disable_so_ssb_chipco_alp_clock_fndecl_39713 ssb_chipco_alp_clock fndecl 0 39713 &disable_so_div2_wm8978_pll_div_39713
141311 +disable_so_chan_get_sndtimeo_cb_fndecl_39717 chan_get_sndtimeo_cb fndecl 0 39717 NULL nohasharray
141312 +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
141313 +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
141314 +disable_so___ew32_fndecl_39722 __ew32 fndecl 2-3 39722 NULL
141315 +disable_so_schedule_sequence_fndecl_39726 schedule_sequence fndecl 3 39726 NULL
141316 +disable_so_bitmap_cond_end_sync_fndecl_39734 bitmap_cond_end_sync fndecl 2 39734 NULL
141317 +disable_so_mc13xxx_rtc_read_time_fndecl_39742 mc13xxx_rtc_read_time fndecl 0 39742 NULL
141318 +disable_so_time_out_ncp_mount_data_kernel_39747 time_out ncp_mount_data_kernel 0 39747 NULL
141319 +disable_so_address_khugepaged_scan_39752 address khugepaged_scan 0 39752 NULL
141320 +disable_so_ab3100_set_register_interruptible_fndecl_39767 ab3100_set_register_interruptible fndecl 0 39767 NULL
141321 +disable_so_ixgbe_write_uc_addr_list_fndecl_39773 ixgbe_write_uc_addr_list fndecl 2 39773 NULL
141322 +disable_so_i2c_udelay_vardecl_cx88_i2c_c_39777 i2c_udelay vardecl_cx88-i2c.c 0 39777 NULL
141323 +disable_so_pm_test_delay_vardecl_suspend_c_39779 pm_test_delay vardecl_suspend.c 0 39779 NULL
141324 +disable_so___mt7601u_phy_freq_cal_fndecl_39782 __mt7601u_phy_freq_cal fndecl 3 39782 NULL
141325 +disable_so_s2mpa01_regulator_set_voltage_time_sel_fndecl_39788 s2mpa01_regulator_set_voltage_time_sel fndecl 0-2-3 39788 NULL
141326 +disable_so_mlx4_get_admin_guid_fndecl_39797 mlx4_get_admin_guid fndecl 2-3 39797 NULL
141327 +disable_so_enic_dev_intr_coal_timer_info_fndecl_39803 enic_dev_intr_coal_timer_info fndecl 0 39803 NULL
141328 +disable_so_freq_can_clock_39804 freq can_clock 0 39804 NULL
141329 +disable_so_ktime_set_fndecl_39816 ktime_set fndecl 1-2 39816 NULL
141330 +disable_so_bitmap_set_fndecl_39820 bitmap_set fndecl 2-3 39820 NULL
141331 +disable_so_ttm_bo_delayed_delete_fndecl_39822 ttm_bo_delayed_delete fndecl 0 39822 NULL nohasharray
141332 +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
141333 +disable_so_ipw_set_random_seed_fndecl_39834 ipw_set_random_seed fndecl 0 39834 NULL
141334 +disable_so_tpm2_gen_interrupt_fndecl_39854 tpm2_gen_interrupt fndecl 0 39854 NULL
141335 +disable_so_addr_sch5627_data_39866 addr sch5627_data 0 39866 NULL
141336 +disable_so_governor_cpufreq_governor_39867 governor cpufreq_governor 0 39867 NULL
141337 +disable_so_jhash_3words_fndecl_39870 jhash_3words fndecl 0-1-3 39870 NULL
141338 +disable_so_lvb_iatime_packed_ocfs2_meta_lvb_39885 lvb_iatime_packed ocfs2_meta_lvb 0 39885 NULL
141339 +disable_so_delay_zl6100_data_39886 delay zl6100_data 0 39886 NULL
141340 +disable_so_nla_put_string_fndecl_39892 nla_put_string fndecl 0 39892 NULL
141341 +disable_so_ctime_mddev_39904 ctime mddev 0 39904 NULL
141342 +disable_so_set_output_clock_fndecl_39910 set_output_clock fndecl 0 39910 NULL
141343 +disable_so_clear_bit_le_fndecl_39918 clear_bit_le fndecl 1 39918 NULL
141344 +disable_so_target_burst_mode_freq_mipi_config_39926 target_burst_mode_freq mipi_config 0 39926 NULL
141345 +disable_so_host_addr_gnttab_map_grant_ref_39935 host_addr gnttab_map_grant_ref 0 39935 NULL
141346 +disable_so_esd_timeout_tsc2005_39938 esd_timeout tsc2005 0 39938 NULL
141347 +disable_so_nr_parts_latch_addr_flash_data_39945 nr_parts latch_addr_flash_data 0 39945 NULL
141348 +disable_so_efx_test_interrupts_fndecl_39946 efx_test_interrupts fndecl 0 39946 NULL
141349 +disable_so_ds1685_rtc_read_time_fndecl_39947 ds1685_rtc_read_time fndecl 0 39947 NULL nohasharray
141350 +disable_so_ctxbitmap_gru_tlb_global_handle_39947 ctxbitmap gru_tlb_global_handle 0 39947 &disable_so_ds1685_rtc_read_time_fndecl_39947
141351 +disable_so_si_program_memory_timing_parameters_fndecl_39954 si_program_memory_timing_parameters fndecl 0 39954 NULL
141352 +disable_so___mce_read_apei_fndecl_39956 __mce_read_apei fndecl 0 39956 NULL
141353 +disable_so_xtime_nsec_tk_read_base_39961 xtime_nsec tk_read_base 0 39961 NULL
141354 +disable_so_plldiv_clk_coeff_39962 plldiv clk_coeff 0 39962 NULL
141355 +disable_so_iscsi_nacl_attrib_show_random_r2t_offsets_fndecl_39965 iscsi_nacl_attrib_show_random_r2t_offsets fndecl 0 39965 NULL
141356 +disable_so_crtc_clock_drm_display_mode_39969 crtc_clock drm_display_mode 0 39969 NULL
141357 +disable_so_qat_alg_ablkcipher_encrypt_fndecl_40005 qat_alg_ablkcipher_encrypt fndecl 0 40005 NULL
141358 +disable_so_dib7000p_write_word_fndecl_40007 dib7000p_write_word fndecl 2-3 40007 NULL
141359 +disable_so_crypto_register_shash_fndecl_40011 crypto_register_shash fndecl 0 40011 NULL
141360 +disable_so_acpi_os_signal_semaphore_fndecl_40013 acpi_os_signal_semaphore fndecl 0 40013 NULL
141361 +disable_so_w1_delay_fndecl_40014 w1_delay fndecl 1 40014 NULL
141362 +disable_so_tda10071_sleep_fndecl_40017 tda10071_sleep fndecl 0 40017 NULL
141363 +disable_so_blkcipher_walk_phys_fndecl_40019 blkcipher_walk_phys fndecl 0 40019 NULL
141364 +disable_so_aes_cmac_fndecl_40025 aes_cmac fndecl 0-4 40025 NULL
141365 +disable_so_dwell_time_passive_conf_scan_settings_40029 dwell_time_passive conf_scan_settings 0 40029 NULL nohasharray
141366 +disable_so_freq_wmi_channel_arg_40029 freq wmi_channel_arg 0 40029 &disable_so_dwell_time_passive_conf_scan_settings_40029
141367 +disable_so_ip_tss_segment_16_40046 ip tss_segment_16 0 40046 NULL
141368 +disable_so_recent_entry_hash6_fndecl_40053 recent_entry_hash6 fndecl 0 40053 NULL
141369 +disable_so_pci_addr_mm_dma_desc_40056 pci_addr mm_dma_desc 0 40056 NULL
141370 +disable_so_mwifiex_get_random_ba_threshold_fndecl_40074 mwifiex_get_random_ba_threshold fndecl 0 40074 NULL nohasharray
141371 +disable_so_ccp_aes_xts_decrypt_fndecl_40074 ccp_aes_xts_decrypt fndecl 0 40074 &disable_so_mwifiex_get_random_ba_threshold_fndecl_40074
141372 +disable_so_nilfs_btree_delete_fndecl_40077 nilfs_btree_delete fndecl 0-2 40077 NULL
141373 +disable_so_db_page_addr_ocrdma_create_qp_uresp_40086 db_page_addr ocrdma_create_qp_uresp 0 40086 NULL
141374 +disable_so_bitmap_empty_fndecl_40098 bitmap_empty fndecl 2 40098 NULL
141375 +disable_so_crypto_aes_expand_key_fndecl_40101 crypto_aes_expand_key fndecl 0-3 40101 NULL
141376 +disable_so_sclk_radeon_clock_and_voltage_limits_40103 sclk radeon_clock_and_voltage_limits 0 40103 NULL
141377 +disable_so_daddr_irda_sock_40107 daddr irda_sock 0 40107 NULL
141378 +disable_so_efx_phc_settime_fndecl_40110 efx_phc_settime fndecl 0 40110 NULL nohasharray
141379 +disable_so_w1_gpio_write_bit_val_fndecl_40110 w1_gpio_write_bit_val fndecl 2 40110 &disable_so_efx_phc_settime_fndecl_40110
141380 +disable_so_memsize_bitmap_port_40111 memsize bitmap_port 0 40111 NULL
141381 +disable_so_freq_channel_detector_40125 freq channel_detector 0 40125 NULL
141382 +disable_so_bitmap_port_do_list_fndecl_40145 bitmap_port_do_list fndecl 0 40145 NULL
141383 +disable_so_mcs7830_hif_set_mac_address_fndecl_40149 mcs7830_hif_set_mac_address fndecl 0 40149 NULL
141384 +disable_so_musb_write_rxfunaddr_fndecl_40150 musb_write_rxfunaddr fndecl 2-3 40150 NULL
141385 +disable_so_ioaddr_set_address_info_40154 ioaddr set_address_info 0 40154 NULL nohasharray
141386 +disable_so_mmap_kvaddr_fndecl_40154 mmap_kvaddr fndecl 0-2-4 40154 &disable_so_ioaddr_set_address_info_40154
141387 +disable_so_hr_timeout_ms_o2hb_region_40157 hr_timeout_ms o2hb_region 0 40157 NULL
141388 +disable_so_startbit_ebitmap_node_40162 startbit ebitmap_node 0 40162 NULL
141389 +disable_so_phys_addr_sfi_apic_table_entry_40169 phys_addr sfi_apic_table_entry 0 40169 NULL
141390 +disable_so_hw_settle_time_vadc_channel_prop_40184 hw_settle_time vadc_channel_prop 0 40184 NULL
141391 +disable_so_pio_address_scsi_qla_host_40189 pio_address scsi_qla_host 0 40189 NULL
141392 +disable_so_iffreq_dvb_pll_desc_40199 iffreq dvb_pll_desc 0 40199 NULL nohasharray
141393 +disable_so_cobalt_g_dv_timings_fndecl_40199 cobalt_g_dv_timings fndecl 0 40199 &disable_so_iffreq_dvb_pll_desc_40199
141394 +disable_so_to_addr_conv_fndecl_40204 to_addr_conv fndecl 3 40204 NULL
141395 +disable_so_fm10k_update_uc_addr_vf_fndecl_40219 fm10k_update_uc_addr_vf fndecl 4 40219 NULL
141396 +disable_so_empress_addr_saa7134_board_40236 empress_addr saa7134_board 0 40236 NULL
141397 +disable_so_lm3533_led_delay_on_set_fndecl_40245 lm3533_led_delay_on_set fndecl 0 40245 NULL
141398 +disable_so_cryptd_hash_digest_fndecl_40277 cryptd_hash_digest fndecl 2 40277 NULL
141399 +disable_so_p2m_timeouts_show_fndecl_40284 p2m_timeouts_show fndecl 0 40284 NULL
141400 +disable_so_decrypt_blkcipher_tfm_40300 decrypt blkcipher_tfm 0-4 40300 NULL
141401 +disable_so_freq_radio_tea5777_40301 freq radio_tea5777 0 40301 NULL
141402 +disable_so_height_v4l2_bt_timings_40304 height v4l2_bt_timings 0 40304 NULL
141403 +disable_so_set_channels_control_runtime_40305 set_channels control_runtime 0 40305 NULL
141404 +disable_so_mpll_ss1_si_clock_registers_40320 mpll_ss1 si_clock_registers 0 40320 NULL
141405 +disable_so_address_drm_radeon_surface_free_40326 address drm_radeon_surface_free 0 40326 NULL
141406 +disable_so_scopedist_ipv6_saddr_score_40339 scopedist ipv6_saddr_score 0 40339 NULL
141407 +disable_so_eeprom_addr_pvr2_hdw_40343 eeprom_addr pvr2_hdw 0 40343 NULL
141408 +disable_so_phys_addr_low_qlcnic_tx_mbx_40351 phys_addr_low qlcnic_tx_mbx 0 40351 NULL
141409 +disable_so_i_ctime_nsec_nilfs_inode_40368 i_ctime_nsec nilfs_inode 0 40368 NULL
141410 +disable_so_crypto_set_driver_name_fndecl_40369 crypto_set_driver_name fndecl 0 40369 NULL
141411 +disable_so_gid_args_requester_40377 gid args_requester 0 40377 NULL
141412 +disable_so_ds1343_set_time_fndecl_40381 ds1343_set_time fndecl 0 40381 NULL nohasharray
141413 +disable_so_p2_mt9t112_pll_divider_40381 p2 mt9t112_pll_divider 0 40381 &disable_so_ds1343_set_time_fndecl_40381
141414 +disable_so_get_phys_to_machine_fndecl_40384 get_phys_to_machine fndecl 0-1 40384 NULL
141415 +disable_so_irlmp_start_watchdog_timer_fndecl_40386 irlmp_start_watchdog_timer fndecl 2 40386 NULL
141416 +disable_so_it_id_k_itimer_40394 it_id k_itimer 0 40394 NULL
141417 +disable_so_proc_gid_vardecl_airo_c_40395 proc_gid vardecl_airo.c 0 40395 NULL
141418 +disable_so_vf_addr_lo_bnx2x_vf_mbx_40423 vf_addr_lo bnx2x_vf_mbx 0 40423 NULL
141419 +disable_so_hsw_get_aux_clock_divider_fndecl_40428 hsw_get_aux_clock_divider fndecl 0 40428 NULL
141420 +disable_so_uid_coda_in_hdr_40430 uid coda_in_hdr 0 40430 NULL
141421 +disable_so_il4965_sta_modify_sleep_tx_count_fndecl_40431 il4965_sta_modify_sleep_tx_count fndecl 2 40431 NULL
141422 +disable_so_op_nmi_timer_init_fndecl_40444 op_nmi_timer_init fndecl 0 40444 NULL
141423 +disable_so_reply_dma_min_address_MPT3SAS_ADAPTER_40450 reply_dma_min_address MPT3SAS_ADAPTER 0 40450 NULL
141424 +disable_so_clock_elmer0_board_info_40451 clock_elmer0 board_info 0 40451 NULL
141425 +disable_so_drift_time_trackpoint_data_40460 drift_time trackpoint_data 0 40460 NULL
141426 +disable_so_tpm_get_random_fndecl_40461 tpm_get_random fndecl 0-3 40461 NULL
141427 +disable_so_HDisplay_xtimings_40462 HDisplay xtimings 0 40462 NULL
141428 +disable_so_addr_desc_frag_40463 addr desc_frag 0 40463 NULL
141429 +disable_so___scrub_mark_bitmap_fndecl_40465 __scrub_mark_bitmap fndecl 3-4 40465 NULL
141430 +disable_so_da9063_wdt_timeout_to_sel_fndecl_40469 da9063_wdt_timeout_to_sel fndecl 0-1 40469 NULL
141431 +disable_so_hactive___fb_timings_40471 hactive __fb_timings 0 40471 NULL
141432 +disable_so_next_blkaddr_of_node_fndecl_40477 next_blkaddr_of_node fndecl 0 40477 NULL
141433 +disable_so_gk20a_timer_init_fndecl_40478 gk20a_timer_init fndecl 0 40478 NULL
141434 +disable_so_saa7164_i2caddr_to_unitid_fndecl_40486 saa7164_i2caddr_to_unitid fndecl 2 40486 NULL
141435 +disable_so___hw_addr_unsync_one_fndecl_40488 __hw_addr_unsync_one fndecl 4 40488 NULL
141436 +disable_so_uncore_msr_box_offset_fndecl_40489 uncore_msr_box_offset fndecl 0 40489 NULL
141437 +disable_so_kgdbdbgp_wait_time_vardecl_ehci_dbgp_c_40510 kgdbdbgp_wait_time vardecl_ehci-dbgp.c 0 40510 NULL
141438 +disable_so_sys_time_fndecl_40516 sys_time fndecl 0 40516 NULL
141439 +disable_so_addrconf_sysctl_proxy_ndp_fndecl_40521 addrconf_sysctl_proxy_ndp fndecl 0 40521 NULL
141440 +disable_so_jiffies_64_vardecl_40530 jiffies_64 vardecl 0 40530 NULL
141441 +disable_so_time_fcoe_rport_40540 time fcoe_rport 0 40540 NULL nohasharray
141442 +disable_so_i_time_fuse_inode_40540 i_time fuse_inode 0 40540 &disable_so_time_fcoe_rport_40540
141443 +disable_so_fllclk_div__fll_div_40542 fllclk_div _fll_div 0 40542 NULL
141444 +disable_so_mmc_sleep_fndecl_40550 mmc_sleep fndecl 0 40550 NULL
141445 +disable_so_swap_activate_address_space_operations_40556 swap_activate address_space_operations 0 40556 NULL
141446 +disable_so_snd_timer_reschedule_fndecl_40558 snd_timer_reschedule fndecl 2 40558 NULL
141447 +disable_so_register_inetaddr_notifier_fndecl_40563 register_inetaddr_notifier fndecl 0 40563 NULL nohasharray
141448 +disable_so_shash_async_export_fndecl_40563 shash_async_export fndecl 0 40563 &disable_so_register_inetaddr_notifier_fndecl_40563
141449 +disable_so_tx_duty_cycle_ene_device_40568 tx_duty_cycle ene_device 0 40568 NULL
141450 +disable_so_delay_cfg80211_sched_scan_request_40582 delay cfg80211_sched_scan_request 0 40582 NULL
141451 +disable_so_sctp_copy_local_addr_list_fndecl_40597 sctp_copy_local_addr_list fndecl 0-4 40597 NULL
141452 +disable_so_can_clock_plx_pci_card_info_40599 can_clock plx_pci_card_info 0 40599 NULL
141453 +disable_so_last_semaphore_signal_addr_amdgpu_ring_40601 last_semaphore_signal_addr amdgpu_ring 0 40601 NULL
141454 +disable_so_slave_addr_radeon_encoder_ext_tmds_40618 slave_addr radeon_encoder_ext_tmds 0 40618 NULL
141455 +disable_so_lrg_buf_q_phy_addr_ql3_adapter_40620 lrg_buf_q_phy_addr ql3_adapter 0 40620 NULL
141456 +disable_so_slave_addr_sdvo_device_mapping_40627 slave_addr sdvo_device_mapping 0 40627 NULL
141457 +disable_so_raddr_fw_ldst_mdio_40629 raddr fw_ldst_mdio 0 40629 NULL
141458 +disable_so_soc_dpcm_runtime_update_fndecl_40639 soc_dpcm_runtime_update fndecl 0 40639 NULL
141459 +disable_so_md_timestamp_netxen_minidump_40640 md_timestamp netxen_minidump 0 40640 NULL
141460 +disable_so_freq_magnitude_fndecl_40641 freq_magnitude fndecl 0-2-3 40641 NULL
141461 +disable_so_asd_write_reg_addr_fndecl_40648 asd_write_reg_addr fndecl 2-3 40648 NULL
141462 +disable_so_ndiv_frac_pmu1_plltab_entry_40664 ndiv_frac pmu1_plltab_entry 0 40664 NULL
141463 +disable_so___percpu_counter_add_fndecl_40667 __percpu_counter_add fndecl 2 40667 NULL
141464 +disable_so_r600_set_mpll_lock_time_fndecl_40677 r600_set_mpll_lock_time fndecl 2 40677 NULL
141465 +disable_so_m_daddr_rds_message_40687 m_daddr rds_message 0 40687 NULL
141466 +disable_so_tbl_addr_hi_ahci_cmd_hdr_40697 tbl_addr_hi ahci_cmd_hdr 0 40697 NULL
141467 +disable_so___cfq_update_io_thinktime_fndecl_40698 __cfq_update_io_thinktime fndecl 2 40698 NULL
141468 +disable_so_sense_addr_snic_icmnd_40701 sense_addr snic_icmnd 0 40701 NULL
141469 +disable_so_addr_mlx5e_sq_dma_40707 addr mlx5e_sq_dma 0 40707 NULL
141470 +disable_so_lp872x_is_valid_buck_addr_fndecl_40709 lp872x_is_valid_buck_addr fndecl 1 40709 NULL
141471 +disable_so_dma_addr_respQ_40711 dma_addr respQ 0 40711 NULL
141472 +disable_so_mclkdiv_cs4265_clk_para_40714 mclkdiv cs4265_clk_para 0 40714 NULL
141473 +disable_so_sh_tmu_clocksource_read_fndecl_40723 sh_tmu_clocksource_read fndecl 0 40723 NULL nohasharray
141474 +disable_so_mthca_cmd_poll_fndecl_40723 mthca_cmd_poll fndecl 0-2 40723 &disable_so_sh_tmu_clocksource_read_fndecl_40723
141475 +disable_so_radio_si4713_s_frequency_fndecl_40725 radio_si4713_s_frequency fndecl 0 40725 NULL
141476 +disable_so_onecputick_vardecl_posix_cpu_timers_c_40726 onecputick vardecl_posix-cpu-timers.c 0 40726 NULL
141477 +disable_so_v_freq_adv7842_video_standards_40728 v_freq adv7842_video_standards 0 40728 NULL
141478 +disable_so___ip6addrlbl_del_fndecl_40742 __ip6addrlbl_del fndecl 0-4 40742 NULL
141479 +disable_so_encrypt_msdu_lib80211_crypto_ops_40743 encrypt_msdu lib80211_crypto_ops 2 40743 NULL
141480 +disable_so_rolloff_stv0900_signal_info_40745 rolloff stv0900_signal_info 0 40745 NULL
141481 +disable_so_pci_finish_runtime_suspend_fndecl_40755 pci_finish_runtime_suspend fndecl 0 40755 NULL
141482 +disable_so_tcp_sacktag_walk_fndecl_40756 tcp_sacktag_walk fndecl 6-5 40756 NULL
141483 +disable_so_vnic_dev_add_addr_fndecl_40765 vnic_dev_add_addr fndecl 0 40765 NULL
141484 +disable_so_zd_usb_iowrite16v_fndecl_40771 zd_usb_iowrite16v fndecl 3-0 40771 NULL nohasharray
141485 +disable_so_frequency_mb86a16_state_40771 frequency mb86a16_state 0 40771 &disable_so_zd_usb_iowrite16v_fndecl_40771
141486 +disable_so_clk_ref_div_fll_div_40776 clk_ref_div fll_div 0 40776 NULL
141487 +disable_so_lifetime_write_kbytes_show_fndecl_40777 lifetime_write_kbytes_show fndecl 0 40777 NULL nohasharray
141488 +disable_so_smp_send_reschedule_fndecl_40777 smp_send_reschedule fndecl 1 40777 &disable_so_lifetime_write_kbytes_show_fndecl_40777
141489 +disable_so_crypto_ccm_auth_fndecl_40795 crypto_ccm_auth fndecl 0-3 40795 NULL
141490 +disable_so_get_option_uid_fndecl_40799 get_option_uid fndecl 0 40799 NULL
141491 +disable_so_be_mac_addr_set_fndecl_40804 be_mac_addr_set fndecl 0 40804 NULL
141492 +disable_so_frac_timecounter_40806 frac timecounter 0 40806 NULL
141493 +disable_so_pid_pppol2tpin6_addr_40809 pid pppol2tpin6_addr 0 40809 NULL
141494 +disable_so_i40e_vc_del_mac_addr_msg_fndecl_40824 i40e_vc_del_mac_addr_msg fndecl 0-3 40824 NULL nohasharray
141495 +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
141496 +disable_so_ahd_delay_fndecl_40826 ahd_delay fndecl 1 40826 NULL
141497 +disable_so_read_addr___queue_40832 read_addr __queue 0 40832 NULL
141498 +disable_so_ring_iowrite32desc_fndecl_40836 ring_iowrite32desc fndecl 2 40836 NULL
141499 +disable_so_mma8452_get_samp_freq_index_fndecl_40841 mma8452_get_samp_freq_index fndecl 0-2-3 40841 NULL
141500 +disable_so_nouveau_bo_wr32_fndecl_40847 nouveau_bo_wr32 fndecl 2-3 40847 NULL
141501 +disable_so_drm_object_attach_property_fndecl_40853 drm_object_attach_property fndecl 3 40853 NULL
141502 +disable_so_sched_rr_timeslice_vardecl_40858 sched_rr_timeslice vardecl 0 40858 NULL
141503 +disable_so_hash_recvmsg_fndecl_40871 hash_recvmsg fndecl 0-3 40871 NULL
141504 +disable_so_timeradd_entry_fndecl_40873 timeradd_entry fndecl 0-3 40873 NULL
141505 +disable_so_pages_per_bnode_hfs_btree_40875 pages_per_bnode hfs_btree 0 40875 NULL
141506 +disable_so_ubifs_destroy_tnc_subtree_fndecl_40878 ubifs_destroy_tnc_subtree fndecl 0 40878 NULL
141507 +disable_so_add_uuid_fndecl_40884 add_uuid fndecl 4 40884 NULL nohasharray
141508 +disable_so_make_checksum_hmac_md5_fndecl_40884 make_checksum_hmac_md5 fndecl 3-5 40884 &disable_so_add_uuid_fndecl_40884
141509 +disable_so_sync_bmp_nbits_regcache_lzo_ctx_40890 sync_bmp_nbits regcache_lzo_ctx 0 40890 NULL
141510 +disable_so_crypto_fpu_decrypt_fndecl_40907 crypto_fpu_decrypt fndecl 0-4 40907 NULL
141511 +disable_so_qce_ahash_final_fndecl_40916 qce_ahash_final fndecl 0 40916 NULL
141512 +disable_so_auto_stop_time_uhci_hcd_40917 auto_stop_time uhci_hcd 0 40917 NULL
141513 +disable_so_sys_rt_sigtimedwait_fndecl_40920 sys_rt_sigtimedwait fndecl 0 40920 NULL
141514 +disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923 dec_cd_paddr qat_alg_ablkcipher_ctx 0 40923 NULL nohasharray
141515 +disable_so_i2cdev_check_addr_fndecl_40923 i2cdev_check_addr fndecl 2 40923 &disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923
141516 +disable_so_inode_bitmap_ext3_new_group_data_40928 inode_bitmap ext3_new_group_data 0 40928 NULL
141517 +disable_so_inet_select_addr_fndecl_40940 inet_select_addr fndecl 0-2-3 40940 NULL nohasharray
141518 +disable_so_curfreq_keene_device_40940 curfreq keene_device 0 40940 &disable_so_inet_select_addr_fndecl_40940
141519 +disable_so_w83627ehf_write_fan_div_common_fndecl_40945 w83627ehf_write_fan_div_common fndecl 3 40945 NULL
141520 +disable_so_req_addr_efx_vf_40947 req_addr efx_vf 0 40947 NULL
141521 +disable_so_get_crandom_fndecl_40951 get_crandom fndecl 0 40951 NULL
141522 +disable_so_authenc_esn_geniv_ahash_update_done2_fndecl_40965 authenc_esn_geniv_ahash_update_done2 fndecl 2 40965 NULL
141523 +disable_so_bt3c_address_fndecl_40975 bt3c_address fndecl 1 40975 NULL
141524 +disable_so_tx_bidx_addr_bnx2_tx_ring_info_40977 tx_bidx_addr bnx2_tx_ring_info 0 40977 NULL
141525 +disable_so_cs5520_set_timings_fndecl_40978 cs5520_set_timings fndecl 3 40978 NULL
141526 +disable_so_addrLow_ULP_BDL_40980 addrLow ULP_BDL 0 40980 NULL
141527 +disable_so_last_wakeup_time_rtl_ps_ctl_40987 last_wakeup_time rtl_ps_ctl 0 40987 NULL
141528 +disable_so_kstrtos8_fndecl_40989 kstrtos8 fndecl 0 40989 NULL nohasharray
141529 +disable_so_drbg_hash_generate_fndecl_40989 drbg_hash_generate fndecl 0-3 40989 &disable_so_kstrtos8_fndecl_40989
141530 +disable_so_vaddr_get_pfn_fndecl_40993 vaddr_get_pfn fndecl 0-1 40993 NULL
141531 +disable_so_s_def_resgid_ext3_super_block_40996 s_def_resgid ext3_super_block 0 40996 NULL
141532 +disable_so_sr_nongc_ctime_nilfs_super_root_40997 sr_nongc_ctime nilfs_super_root 0 40997 NULL
141533 +disable_so_rsp_producer_index_phy_addr_high_ql3_adapter_40998 rsp_producer_index_phy_addr_high ql3_adapter 0 40998 NULL
141534 +disable_so_per_jiffies_stats_dib8000_state_40999 per_jiffies_stats dib8000_state 0 40999 NULL
141535 +disable_so_cobalt_dv_timings_cap_fndecl_41001 cobalt_dv_timings_cap fndecl 0 41001 NULL
141536 +disable_so_encrypt_blkcipher_tfm_41013 encrypt blkcipher_tfm 0-4 41013 NULL
141537 +disable_so_max_dwell_time_active_conf_scan_settings_41024 max_dwell_time_active conf_scan_settings 0 41024 NULL
141538 +disable_so_gpu_addr_radeon_fence_driver_41046 gpu_addr radeon_fence_driver 0 41046 NULL
141539 +disable_so_read_cache_jiffies_nfs_inode_41071 read_cache_jiffies nfs_inode 0 41071 NULL
141540 +disable_so_curfreq_ma901radio_device_41079 curfreq ma901radio_device 0 41079 NULL
141541 +disable_so_show_constraint_max_time_window_us_fndecl_41080 show_constraint_max_time_window_us fndecl 0 41080 NULL
141542 +disable_so_acpi_tables_addr_vardecl_osl_c_41081 acpi_tables_addr vardecl_osl.c 0 41081 NULL
141543 +disable_so_gdth_delay_fndecl_41096 gdth_delay fndecl 1 41096 NULL
141544 +disable_so_wq_calc_node_cpumask_fndecl_41102 wq_calc_node_cpumask fndecl 2 41102 NULL
141545 +disable_so_qp_bitmap_free_ntb_transport_ctx_41105 qp_bitmap_free ntb_transport_ctx 0 41105 NULL
141546 +disable_so_show_admin_alias_guid_fndecl_41106 show_admin_alias_guid fndecl 0 41106 NULL
141547 +disable_so_freq_vardecl_mxb_c_41108 freq vardecl_mxb.c 0 41108 NULL
141548 +disable_so_vx_set_internal_clock_fndecl_41114 vx_set_internal_clock fndecl 2 41114 NULL
141549 +disable_so_jiffies_at_alloc_qla_tgt_cmd_41119 jiffies_at_alloc qla_tgt_cmd 0 41119 NULL
141550 +disable_so_timestamp_ath9k_htc_tx_ctl_41124 timestamp ath9k_htc_tx_ctl 0 41124 NULL
141551 +disable_so_ib_baseaddr_h_mvumi_hs_page4_41130 ib_baseaddr_h mvumi_hs_page4 0 41130 NULL
141552 +disable_so_cherryview_rps_guar_freq_fndecl_41132 cherryview_rps_guar_freq fndecl 0 41132 NULL
141553 +disable_so_time_survey_info_41134 time survey_info 0 41134 NULL
141554 +disable_so_child_tgid_fork_proc_event_41148 child_tgid fork_proc_event 0 41148 NULL
141555 +disable_so_companion_addr_pm860x_platform_data_41156 companion_addr pm860x_platform_data 0 41156 NULL
141556 +disable_so_lgdt330x_read_signal_strength_fndecl_41159 lgdt330x_read_signal_strength fndecl 0 41159 NULL
141557 +disable_so_genwqe_curr_dbg_uid1_show_fndecl_41164 genwqe_curr_dbg_uid1_show fndecl 0 41164 NULL
141558 +disable_so_addr_nct6775_data_41165 addr nct6775_data 0 41165 NULL
141559 +disable_so_assoc_id_sctp_getaddrs_41169 assoc_id sctp_getaddrs 0 41169 NULL
141560 +disable_so_set_addr_fndecl_41173 set_addr fndecl 2 41173 NULL
141561 +disable_so_fairness_timeout_fairness_vars_per_port_41174 fairness_timeout fairness_vars_per_port 0 41174 NULL
141562 +disable_so_acpi_os_install_interrupt_handler_fndecl_41179 acpi_os_install_interrupt_handler fndecl 1 41179 NULL
141563 +disable_so_ref_freq_vardecl_tsc_c_41183 ref_freq vardecl_tsc.c 0 41183 NULL
141564 +disable_so_latest_ip_addr_eg_cache_entry_41198 latest_ip_addr eg_cache_entry 0 41198 NULL
141565 +disable_so_long_timeout_osst_tape_41205 long_timeout osst_tape 0 41205 NULL
141566 +disable_so_dma_addr_mcam_dma_desc_41206 dma_addr mcam_dma_desc 0 41206 NULL
141567 +disable_so_address_lower_scu_sgl_element_41221 address_lower scu_sgl_element 0 41221 NULL
141568 +disable_so_paravirt_read_tsc_fndecl_41239 paravirt_read_tsc fndecl 0 41239 NULL
141569 +disable_so_posix_clock_realtime_set_fndecl_41245 posix_clock_realtime_set fndecl 0 41245 NULL
141570 +disable_so_phys_addr_netxen_dummy_dma_41248 phys_addr netxen_dummy_dma 0 41248 NULL
141571 +disable_so_addr_port_fndecl_41249 addr_port fndecl 0 41249 NULL nohasharray
141572 +disable_so_ip_vs_svc_hashkey_fndecl_41249 ip_vs_svc_hashkey fndecl 2-3 41249 &disable_so_addr_port_fndecl_41249
141573 +disable_so_kstrtoul_from_user_fndecl_41258 kstrtoul_from_user fndecl 0-2 41258 NULL
141574 +disable_so_xfrm_state_lookup_byaddr_fndecl_41260 xfrm_state_lookup_byaddr fndecl 2-5-6 41260 NULL
141575 +disable_so_ns_sbwtime_the_nilfs_41268 ns_sbwtime the_nilfs 0 41268 NULL
141576 +disable_so_max_delta_ns_clock_event_device_41269 max_delta_ns clock_event_device 0 41269 NULL
141577 +disable_so_mcryptd_hash_init_enqueue_fndecl_41273 mcryptd_hash_init_enqueue fndecl 0 41273 NULL
141578 +disable_so_enic_set_mac_address_dynamic_fndecl_41279 enic_set_mac_address_dynamic fndecl 0 41279 NULL
141579 +disable_so_igb_ptp_adjtime_i210_fndecl_41280 igb_ptp_adjtime_i210 fndecl 2 41280 NULL
141580 +disable_so_timestamp_cper_record_header_41286 timestamp cper_record_header 0 41286 NULL
141581 +disable_so_mtt_base_addr_l_mlx4_cq_context_41294 mtt_base_addr_l mlx4_cq_context 0 41294 NULL
141582 +disable_so_base_lo_mtrr_var_range_41296 base_lo mtrr_var_range 0 41296 NULL
141583 +disable_so_ucma_query_gid_fndecl_41299 ucma_query_gid fndecl 3 41299 NULL
141584 +disable_so_ioat_dma_setup_interrupts_fndecl_41304 ioat_dma_setup_interrupts fndecl 0 41304 NULL
141585 +disable_so_cmaj_flt_signal_struct_41306 cmaj_flt signal_struct 0 41306 NULL
141586 +disable_so_wlc_phy_ant_rxdiv_set_fndecl_41312 wlc_phy_ant_rxdiv_set fndecl 2 41312 NULL
141587 +disable_so_ata_timing_compute_fndecl_41314 ata_timing_compute fndecl 2 41314 NULL
141588 +disable_so_jiffies_resched_rcu_state_41320 jiffies_resched rcu_state 0 41320 NULL
141589 +disable_so_cc770_rx_interrupt_fndecl_41322 cc770_rx_interrupt fndecl 2 41322 NULL
141590 +disable_so_configure_clock_fndecl_41329 configure_clock fndecl 0 41329 NULL
141591 +disable_so_timeout_ip_set_41331 timeout ip_set 0 41331 NULL
141592 +disable_so_dcbnl_getperm_hwaddr_fndecl_41338 dcbnl_getperm_hwaddr fndecl 0 41338 NULL
141593 +disable_so_cfg80211_set_cipher_group_fndecl_41343 cfg80211_set_cipher_group fndecl 2 41343 NULL
141594 +disable_so_time_ipr_trace_entry_41350 time ipr_trace_entry 0 41350 NULL
141595 +disable_so_csize_lattime_ahc_pci_softc_41352 csize_lattime ahc_pci_softc 0 41352 NULL
141596 +disable_so_bind_to_cpu_evtchn_ops_41358 bind_to_cpu evtchn_ops 2 41358 NULL
141597 +disable_so_init_lib80211_crypto_ops_41363 init lib80211_crypto_ops 1 41363 NULL
141598 +disable_so_xhci_get_timeout_no_hub_lpm_fndecl_41382 xhci_get_timeout_no_hub_lpm fndecl 0 41382 NULL
141599 +disable_so_ast_set_index_reg_mask_fndecl_41386 ast_set_index_reg_mask fndecl 5 41386 NULL nohasharray
141600 +disable_so_iwl_send_rxon_timing_fndecl_41386 iwl_send_rxon_timing fndecl 0 41386 &disable_so_ast_set_index_reg_mask_fndecl_41386
141601 +disable_so_last_can_queue_ramp_down_time_fc_fcp_internal_41400 last_can_queue_ramp_down_time fc_fcp_internal 0 41400 NULL
141602 +disable_so_bClockID_uac_clock_selector_descriptor_41403 bClockID uac_clock_selector_descriptor 0 41403 NULL
141603 +disable_so_sys_setuid_fndecl_41415 sys_setuid fndecl 0-1 41415 NULL
141604 +disable_so_i2c_address_tda826x_priv_41421 i2c_address tda826x_priv 0 41421 NULL
141605 +disable_so_dma_addr_efx_rx_buffer_41422 dma_addr efx_rx_buffer 0 41422 NULL
141606 +disable_so_retrans_timeout_l2cap_chan_41431 retrans_timeout l2cap_chan 0 41431 NULL
141607 +disable_so_musb_read_rxhubaddr_fndecl_41435 musb_read_rxhubaddr fndecl 2-0 41435 NULL
141608 +disable_so_pll_reference_div_radeon_crtc_41437 pll_reference_div radeon_crtc 0 41437 NULL
141609 +disable_so_macvlan_set_mac_address_fndecl_41439 macvlan_set_mac_address fndecl 0 41439 NULL
141610 +disable_so_i_uid_read_fndecl_41443 i_uid_read fndecl 0 41443 NULL
141611 +disable_so_hpi_silence_detector_get_delay_fndecl_41450 hpi_silence_detector_get_delay fndecl 0-1 41450 NULL
141612 +disable_so__div_round_up_fndecl_41453 _div_round_up fndecl 0-3-2 41453 NULL
141613 +disable_so_br_timer_value_fndecl_41454 br_timer_value fndecl 0 41454 NULL
141614 +disable_so_compat_sys_utimes_fndecl_41459 compat_sys_utimes fndecl 0 41459 NULL
141615 +disable_so_tx_duty_cycle_ofdm_brcms_c_info_41464 tx_duty_cycle_ofdm brcms_c_info 0 41464 NULL
141616 +disable_so_crypto_authenc_verify_fndecl_41468 crypto_authenc_verify fndecl 0 41468 NULL
141617 +disable_so_signalQuality_StatusRid_41475 signalQuality StatusRid 0 41475 NULL
141618 +disable_so_storvsc_timeout_vardecl_storvsc_drv_c_41479 storvsc_timeout vardecl_storvsc_drv.c 0 41479 NULL
141619 +disable_so_sctp_v6_from_addr_param_fndecl_41480 sctp_v6_from_addr_param fndecl 3-4 41480 NULL
141620 +disable_so_xfs_btree_check_ptr_fndecl_41490 xfs_btree_check_ptr fndecl 3-0 41490 NULL
141621 +disable_so___anon_vma_interval_tree_compute_subtree_last_fndecl_41494 __anon_vma_interval_tree_compute_subtree_last fndecl 0 41494 NULL
141622 +disable_so_drive_jiffies_skd_device_41506 drive_jiffies skd_device 0 41506 NULL
141623 +disable_so_last_dock_time_dock_station_41508 last_dock_time dock_station 0 41508 NULL
141624 +disable_so_common_nsleep_fndecl_41534 common_nsleep fndecl 1 41534 NULL
141625 +disable_so_sun4i_spi_runtime_resume_fndecl_41538 sun4i_spi_runtime_resume fndecl 0 41538 NULL
141626 +disable_so_src_nents_qce_cipher_reqctx_41541 src_nents qce_cipher_reqctx 0 41541 NULL
141627 +disable_so_daddr_irda_ias_set_41547 daddr irda_ias_set 0 41547 NULL
141628 +disable_so_cpufreq_frequency_get_table_fndecl_41548 cpufreq_frequency_get_table fndecl 1 41548 NULL
141629 +disable_so_bd_list_addr_lo_bnx2i_tmf_request_41551 bd_list_addr_lo bnx2i_tmf_request 0 41551 NULL
141630 +disable_so_mkey_lease_timeout_qib_ibport_41552 mkey_lease_timeout qib_ibport 0 41552 NULL
141631 +disable_so_dma_addr_efx_rx_page_state_41558 dma_addr efx_rx_page_state 0 41558 NULL
141632 +disable_so_igb_runtime_resume_fndecl_41565 igb_runtime_resume fndecl 0 41565 NULL
141633 +disable_so_wait_on_page_bit_killable_fndecl_41573 wait_on_page_bit_killable fndecl 0 41573 NULL
141634 +disable_so_time_js_event_41583 time js_event 0 41583 NULL nohasharray
141635 +disable_so_lzo_mod_init_fndecl_41583 lzo_mod_init fndecl 0 41583 &disable_so_time_js_event_41583
141636 +disable_so_cg_spll_func_cntl_2_si_clock_registers_41584 cg_spll_func_cntl_2 si_clock_registers 0 41584 NULL
141637 +disable_so_swa_base_asd_ha_addrspace_41593 swa_base asd_ha_addrspace 0 41593 NULL
141638 +disable_so_flow_get_skgid_fndecl_41594 flow_get_skgid fndecl 0 41594 NULL nohasharray
141639 +disable_so_fib_sync_down_addr_fndecl_41594 fib_sync_down_addr fndecl 2 41594 &disable_so_flow_get_skgid_fndecl_41594
141640 +disable_so_fl0addr_csio_iq_params_41595 fl0addr csio_iq_params 0 41595 NULL
141641 +disable_so_cpufreq_stat_notifier_policy_fndecl_41604 cpufreq_stat_notifier_policy fndecl 0 41604 NULL nohasharray
141642 +disable_so_hash_by_src_fndecl_41604 hash_by_src fndecl 0 41604 &disable_so_cpufreq_stat_notifier_policy_fndecl_41604
141643 +disable_so_read_nvkm_timer_41609 read nvkm_timer 0 41609 NULL
141644 +disable_so_shm32read_addr_next_b43_dfsentry_41611 shm32read_addr_next b43_dfsentry 0 41611 NULL
141645 +disable_so_lo_regpair_41616 lo regpair 0 41616 NULL
141646 +disable_so_addr_netdev_desc_41619 addr netdev_desc 0 41619 NULL
141647 +disable_so_ndesc_get_timestamp_fndecl_41626 ndesc_get_timestamp fndecl 0 41626 NULL
141648 +disable_so_gid_cramfs_inode_41627 gid cramfs_inode 0 41627 NULL
141649 +disable_so___sw_hweight8_fndecl_41629 __sw_hweight8 fndecl 1-0 41629 NULL
141650 +disable_so_kvm_mtrr_get_guest_memory_type_fndecl_41633 kvm_mtrr_get_guest_memory_type fndecl 2-0 41633 NULL
141651 +disable_so___xfrm6_addr_hash_fndecl_41637 __xfrm6_addr_hash fndecl 0 41637 NULL
141652 +disable_so_phys_reg_addr_slgt_info_41642 phys_reg_addr slgt_info 0 41642 NULL
141653 +disable_so_il_dbgfs_wd_timeout_write_fndecl_41643 il_dbgfs_wd_timeout_write fndecl 3 41643 NULL
141654 +disable_so_count_sha256_state_41648 count sha256_state 0 41648 NULL
141655 +disable_so_ironlake_check_encoder_dotclock_fndecl_41660 ironlake_check_encoder_dotclock fndecl 2 41660 NULL
141656 +disable_so_af9015_eeprom_hash_fndecl_41666 af9015_eeprom_hash fndecl 0 41666 NULL
141657 +disable_so_intel_dotclock_calculate_fndecl_41668 intel_dotclock_calculate fndecl 1-0 41668 NULL
141658 +disable_so_rdmsrl_amd_safe_fndecl_41672 rdmsrl_amd_safe fndecl 0 41672 NULL
141659 +disable_so_crypto_ablkcipher_encrypt_fndecl_41682 crypto_ablkcipher_encrypt fndecl 0 41682 NULL
141660 +disable_so_bcma_pmu_pll_clock_bcm4706_fndecl_41683 bcma_pmu_pll_clock_bcm4706 fndecl 0-2 41683 NULL
141661 +disable_so_regmap_write_fndecl_41685 regmap_write fndecl 0-2-3 41685 NULL
141662 +disable_so_setup_APIC_mce_threshold_fndecl_41686 setup_APIC_mce_threshold fndecl 0-1-2 41686 NULL
141663 +disable_so_copy_signal_fndecl_41687 copy_signal fndecl 1 41687 NULL
141664 +disable_so_dma_addr_dw_spi_41693 dma_addr dw_spi 0 41693 NULL
141665 +disable_so_leave_oper_channel_time_ieee80211_local_41701 leave_oper_channel_time ieee80211_local 0 41701 NULL
141666 +disable_so_bit_putcs_fndecl_41704 bit_putcs fndecl 4-5-6-7-8 41704 NULL
141667 +disable_so_nbpf_runtime_resume_fndecl_41706 nbpf_runtime_resume fndecl 0 41706 NULL
141668 +disable_so_force_addr_vardecl_vt8231_c_41714 force_addr vardecl_vt8231.c 0 41714 NULL
141669 +disable_so_radio_syn_pll_refdiv_b43_nphy_channeltab_entry_rev3_41738 radio_syn_pll_refdiv b43_nphy_channeltab_entry_rev3 0 41738 NULL
141670 +disable_so_epoch_time_atto_vda_cfg_init_41739 epoch_time atto_vda_cfg_init 0 41739 NULL
141671 +disable_so_node_size_shift_hfs_btree_41753 node_size_shift hfs_btree 0 41753 NULL
141672 +disable_so_gfx_addr_intel_hw_status_page_41756 gfx_addr intel_hw_status_page 0 41756 NULL
141673 +disable_so_mtrr_trim_uncached_memory_fndecl_41757 mtrr_trim_uncached_memory fndecl 1 41757 NULL
141674 +disable_so_start_idle_time_cfqg_stats_41767 start_idle_time cfqg_stats 0 41767 NULL
141675 +disable_so_receive_bitmap_plain_fndecl_41772 receive_bitmap_plain fndecl 0-2 41772 NULL
141676 +disable_so___set_port_dev_addr_fndecl_41787 __set_port_dev_addr fndecl 0 41787 NULL
141677 +disable_so_max_delta_ticks_clock_event_device_41796 max_delta_ticks clock_event_device 0 41796 NULL
141678 +disable_so_register_ip_vs_scheduler_fndecl_41797 register_ip_vs_scheduler fndecl 0 41797 NULL
141679 +disable_so_lcd_pixclock_atyfb_par_41804 lcd_pixclock atyfb_par 0 41804 NULL
141680 +disable_so_mwl8k_cmd_set_mac_addr_fndecl_41809 mwl8k_cmd_set_mac_addr fndecl 0 41809 NULL
141681 +disable_so_mktime64_fndecl_41810 mktime64 fndecl 0-6-5-4-3-2-1 41810 NULL
141682 +disable_so_brcmf_pcie_buscore_prep_addr_fndecl_41821 brcmf_pcie_buscore_prep_addr fndecl 0-2 41821 NULL
141683 +disable_so_s_bitmap_ino_omfs_sb_info_41835 s_bitmap_ino omfs_sb_info 0 41835 NULL
141684 +disable_so_tlan_handle_interrupt_fndecl_41866 tlan_handle_interrupt fndecl 1 41866 NULL
141685 +disable_so_crypto_authenc_esn_genicv_fndecl_41873 crypto_authenc_esn_genicv fndecl 0 41873 NULL
141686 +disable_so_bfad_iocmd_rport_get_addr_fndecl_41879 bfad_iocmd_rport_get_addr fndecl 0 41879 NULL
141687 +disable_so_xhci_del_comp_mod_timer_fndecl_41881 xhci_del_comp_mod_timer fndecl 3 41881 NULL
141688 +disable_so_raddr_c2wr_ae_connection_request_41889 raddr c2wr_ae_connection_request 0 41889 NULL
141689 +disable_so_btrfs_run_delayed_items_nr_fndecl_41895 btrfs_run_delayed_items_nr fndecl 0-3 41895 NULL nohasharray
141690 +disable_so_isac_interrupt_fndecl_41895 isac_interrupt fndecl 2 41895 &disable_so_btrfs_run_delayed_items_nr_fndecl_41895
141691 +disable_so_address_b43_dmadesc32_41900 address b43_dmadesc32 0 41900 NULL
141692 +disable_so_i_gid_ext4_inode_41907 i_gid ext4_inode 0 41907 NULL
141693 +disable_so_sil24_exec_polled_cmd_fndecl_41911 sil24_exec_polled_cmd fndecl 2 41911 NULL
141694 +disable_so_cp_hqd_pq_rptr_report_addr_hqd_registers_41912 cp_hqd_pq_rptr_report_addr hqd_registers 0 41912 NULL
141695 +disable_so_uuid_hash_ocfs2_super_41922 uuid_hash ocfs2_super 0 41922 NULL
141696 +disable_so_connect_time_usb_device_41926 connect_time usb_device 0 41926 NULL
141697 +disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 hard_byte_limit xfrm_lifetime_cfg 0 41928 NULL nohasharray
141698 +disable_so_q_rtime_msg_queue_41928 q_rtime msg_queue 0 41928 &disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 nohasharray
141699 +disable_so_saddr_iphdr_41928 saddr iphdr 0 41928 &disable_so_q_rtime_msg_queue_41928
141700 +disable_so_nfs4_schedule_session_recovery_fndecl_41930 nfs4_schedule_session_recovery fndecl 2 41930 NULL
141701 +disable_so_desc_card_addr_qla8044_minidump_entry_rdmem_pex_dma_41937 desc_card_addr qla8044_minidump_entry_rdmem_pex_dma 0 41937 NULL
141702 +disable_so_freq_ar9170_calibration_target_power_ht_41939 freq ar9170_calibration_target_power_ht 0 41939 NULL
141703 +disable_so_ino_timelimit_qc_type_state_41942 ino_timelimit qc_type_state 0 41942 NULL
141704 +disable_so_ifa_local_in_ifaddr_41951 ifa_local in_ifaddr 0 41951 NULL
141705 +disable_so_seq_radeon_fence_41952 seq radeon_fence 0 41952 NULL
141706 +disable_so_mmc_interrupt_hpi_fndecl_41967 mmc_interrupt_hpi fndecl 0 41967 NULL
141707 +disable_so_addr_nvbios_xpio_41977 addr nvbios_xpio 0 41977 NULL
141708 +disable_so_mlx4_test_interrupts_fndecl_41979 mlx4_test_interrupts fndecl 0 41979 NULL
141709 +disable_so_alps_process_bitmap_fndecl_41983 alps_process_bitmap fndecl 0 41983 NULL
141710 +disable_so_enter_deep_sleep_lbs_private_41984 enter_deep_sleep lbs_private 0 41984 NULL
141711 +disable_so_freq_detected_vx_core_41987 freq_detected vx_core 0 41987 NULL
141712 +disable_so_sig_ksignal_41988 sig ksignal 0 41988 NULL
141713 +disable_so_kvm_clock_get_cycles_fndecl_41992 kvm_clock_get_cycles fndecl 0 41992 NULL
141714 +disable_so_mthca_setup_hca_fndecl_41999 mthca_setup_hca fndecl 0 41999 NULL
141715 +disable_so_ipath_led_override_timeoff_ipath_devdata_42003 ipath_led_override_timeoff ipath_devdata 0 42003 NULL nohasharray
141716 +disable_so_authenc_geniv_ahash_done_fndecl_42003 authenc_geniv_ahash_done fndecl 2 42003 &disable_so_ipath_led_override_timeoff_ipath_devdata_42003
141717 +disable_so_cxgb4vf_set_mac_addr_fndecl_42004 cxgb4vf_set_mac_addr fndecl 0 42004 NULL
141718 +disable_so_poly_cipher_fndecl_42005 poly_cipher fndecl 0 42005 NULL
141719 +disable_so_lfo2delay_soundfont_voice_parm_42007 lfo2delay soundfont_voice_parm 0 42007 NULL
141720 +disable_so_cik_get_cu_active_bitmap_fndecl_42010 cik_get_cu_active_bitmap fndecl 0-2-3 42010 NULL
141721 +disable_so_get_max_clock_sdhci_ops_42015 get_max_clock sdhci_ops 0 42015 NULL
141722 +disable_so_svm_read_l1_tsc_fndecl_42018 svm_read_l1_tsc fndecl 0-2 42018 NULL
141723 +disable_so_dccp_feat_signal_nn_change_fndecl_42022 dccp_feat_signal_nn_change fndecl 3 42022 NULL
141724 +disable_so_e1000_test_msi_interrupt_fndecl_42028 e1000_test_msi_interrupt fndecl 0 42028 NULL
141725 +disable_so_uv_rtc_setup_clock_fndecl_42030 uv_rtc_setup_clock fndecl 0 42030 NULL
141726 +disable_so_rsa_get_e_fndecl_42032 rsa_get_e fndecl 5 42032 NULL
141727 +disable_so_set_h225_addr_fndecl_42039 set_h225_addr fndecl 2-4 42039 NULL
141728 +disable_so_next_hrtimer_event_fotg210_hcd_42040 next_hrtimer_event fotg210_hcd 0 42040 NULL
141729 +disable_so_baseaddr_m48t35_priv_42042 baseaddr m48t35_priv 0 42042 NULL
141730 +disable_so_src_high_addr_mvumi_dyn_list_entry_42046 src_high_addr mvumi_dyn_list_entry 0 42046 NULL
141731 +disable_so_address_x86_exception_42048 address x86_exception 0 42048 NULL nohasharray
141732 +disable_so_adis16480_set_freq_fndecl_42048 adis16480_set_freq fndecl 0 42048 &disable_so_address_x86_exception_42048
141733 +disable_so_skcipher_recvmsg_fndecl_42050 skcipher_recvmsg fndecl 0 42050 NULL
141734 +disable_so_uid_ncp_mount_data_v4_42052 uid ncp_mount_data_v4 0 42052 NULL
141735 +disable_so_guid_qib_pportdata_42064 guid qib_pportdata 0 42064 NULL
141736 +disable_so_usb_find_address_fndecl_42069 usb_find_address fndecl 0 42069 NULL
141737 +disable_so_crypto_comp_compress_fndecl_42075 crypto_comp_compress fndecl 3 42075 NULL
141738 +disable_so_xcan_state_interrupt_fndecl_42076 xcan_state_interrupt fndecl 2 42076 NULL
141739 +disable_so_xfs_dir2_leaf_search_hash_fndecl_42097 xfs_dir2_leaf_search_hash fndecl 0 42097 NULL
141740 +disable_so_rtl8169_interrupt_fndecl_42115 rtl8169_interrupt fndecl 1 42115 NULL
141741 +disable_so_ip_list_uid_vardecl_xt_recent_c_42144 ip_list_uid vardecl_xt_recent.c 0 42144 NULL
141742 +disable_so_request_sound_timer_fndecl_42149 request_sound_timer fndecl 1 42149 NULL nohasharray
141743 +disable_so_sof_search_timeout_stb0899_config_42149 sof_search_timeout stb0899_config 0 42149 &disable_so_request_sound_timer_fndecl_42149
141744 +disable_so_uvc_timeout_param_vardecl_42158 uvc_timeout_param vardecl 0 42158 NULL
141745 +disable_so_stv0900_get_mclk_freq_fndecl_42161 stv0900_get_mclk_freq fndecl 0-2 42161 NULL
141746 +disable_so_pch_systime_read_fndecl_42169 pch_systime_read fndecl 0 42169 NULL
141747 +disable_so_accumulate_16bit_val_fndecl_42178 accumulate_16bit_val fndecl 2 42178 NULL
141748 +disable_so_cryptd_blkcipher_enqueue_fndecl_42182 cryptd_blkcipher_enqueue fndecl 0 42182 NULL
141749 +disable_so_sjw_can_bittiming_42187 sjw can_bittiming 0 42187 NULL
141750 +disable_so_vortex_interrupt_fndecl_42189 vortex_interrupt fndecl 1 42189 NULL
141751 +disable_so_ar_addr_qla4_83xx_quad_entry_42190 ar_addr qla4_83xx_quad_entry 0 42190 NULL
141752 +disable_so_sctp_v4_from_addr_param_fndecl_42197 sctp_v4_from_addr_param fndecl 3 42197 NULL
141753 +disable_so_sda_hold_time_dw_i2c_dev_42198 sda_hold_time dw_i2c_dev 0 42198 NULL
141754 +disable_so_proc_doulongvec_ms_jiffies_minmax_fndecl_42211 proc_doulongvec_ms_jiffies_minmax fndecl 0 42211 NULL
141755 +disable_so_monitor_timeout_l2cap_chan_42212 monitor_timeout l2cap_chan 0 42212 NULL
141756 +disable_so_sys_setfsuid16_fndecl_42222 sys_setfsuid16 fndecl 0-1 42222 NULL
141757 +disable_so_rrd_ret_timer_atl1_hw_42226 rrd_ret_timer atl1_hw 0 42226 NULL nohasharray
141758 +disable_so__get_table_mindiv_fndecl_42226 _get_table_mindiv fndecl 0 42226 &disable_so_rrd_ret_timer_atl1_hw_42226
141759 +disable_so_ext4_block_bitmap_set_fndecl_42228 ext4_block_bitmap_set fndecl 3 42228 NULL
141760 +disable_so_select_timeout_pca9541_42231 select_timeout pca9541 0 42231 NULL
141761 +disable_so_id_and_color_iwl_time_event_cmd_42237 id_and_color iwl_time_event_cmd 0 42237 NULL
141762 +disable_so_map_id_down_fndecl_42241 map_id_down fndecl 0-2 42241 NULL
141763 +disable_so_usb_sleep_music_store_fndecl_42245 usb_sleep_music_store fndecl 0-4 42245 NULL
141764 +disable_so_ath6kl_sdio_func0_cmd52_wr_byte_fndecl_42251 ath6kl_sdio_func0_cmd52_wr_byte fndecl 0 42251 NULL
141765 +disable_so_bitmap_and_fndecl_42267 bitmap_and fndecl 4 42267 NULL
141766 +disable_so_tx_frame_ath_cycle_counters_42275 tx_frame ath_cycle_counters 0 42275 NULL
141767 +disable_so_hasht_dcb_output_42279 hasht dcb_output 0 42279 NULL
141768 +disable_so_xfs_btree_key_addr_fndecl_42282 xfs_btree_key_addr fndecl 2 42282 NULL
141769 +disable_so_lpfc_max_scsicmpl_time_store_fndecl_42289 lpfc_max_scsicmpl_time_store fndecl 0 42289 NULL
141770 +disable_so_ltr501_ps_write_samp_freq_fndecl_42298 ltr501_ps_write_samp_freq fndecl 0 42298 NULL
141771 +disable_so_time_zero_perf_event_mmap_page_42309 time_zero perf_event_mmap_page 0 42309 NULL nohasharray
141772 +disable_so_dmatest_random_fndecl_42309 dmatest_random fndecl 0 42309 &disable_so_time_zero_perf_event_mmap_page_42309
141773 +disable_so_sm_addr_sm501_mem_42315 sm_addr sm501_mem 0 42315 NULL
141774 +disable_so_snd_rme32_info_clockmode_control_fndecl_42323 snd_rme32_info_clockmode_control fndecl 0 42323 NULL
141775 +disable_so_max8997_rtc_set_time_fndecl_42326 max8997_rtc_set_time fndecl 0 42326 NULL nohasharray
141776 +disable_so_freq_ath6kl_mgmt_buff_42326 freq ath6kl_mgmt_buff 0 42326 &disable_so_max8997_rtc_set_time_fndecl_42326
141777 +disable_so_clk_register_divider_table_fndecl_42329 clk_register_divider_table fndecl 7-6 42329 NULL
141778 +disable_so_guid_indexes_mlx4_sriov_alias_guid_info_rec_det_42332 guid_indexes mlx4_sriov_alias_guid_info_rec_det 0 42332 NULL
141779 +disable_so_addr_cis_cache_entry_42335 addr cis_cache_entry 0 42335 NULL
141780 +disable_so_dma_addr_bnad_tx_vector_42337 dma_addr bnad_tx_vector 0 42337 NULL
141781 +disable_so_mgid_index_mlx5_qp_path_42339 mgid_index mlx5_qp_path 0 42339 NULL
141782 +disable_so_tcm_base_address_brcmf_pcie_shared_info_42357 tcm_base_address brcmf_pcie_shared_info 0 42357 NULL
141783 +disable_so_mod_timer_fndecl_42361 mod_timer fndecl 2-0 42361 NULL
141784 +disable_so_srpt_service_guid_vardecl_ib_srpt_c_42363 srpt_service_guid vardecl_ib_srpt.c 0 42363 NULL
141785 +disable_so_qat_alg_ablkcipher_init_enc_fndecl_42373 qat_alg_ablkcipher_init_enc fndecl 4 42373 NULL
141786 +disable_so_mdiv_gf100_clk_info_42375 mdiv gf100_clk_info 0 42375 NULL
141787 +disable_so__ubh_find_next_zero_bit__fndecl_42379 _ubh_find_next_zero_bit_ fndecl 0-3-4-5 42379 NULL
141788 +disable_so_tv_nsec_timespec_42383 tv_nsec timespec 0 42383 NULL
141789 +disable_so_last_timestamp_iso_context_42389 last_timestamp iso_context 0 42389 NULL
141790 +disable_so_iqaddr_fw_ri_res_cq_42408 iqaddr fw_ri_res_cq 0 42408 NULL
141791 +disable_so_proc_loginuid_write_fndecl_42419 proc_loginuid_write fndecl 3 42419 NULL
141792 +disable_so_mpeg_output_clock_rate_drxj_data_42421 mpeg_output_clock_rate drxj_data 0 42421 NULL
141793 +disable_so_fref_clock_ratio_dib0090_config_42426 fref_clock_ratio dib0090_config 0 42426 NULL
141794 +disable_so_virtnet_set_mac_address_fndecl_42429 virtnet_set_mac_address fndecl 0 42429 NULL
141795 +disable_so_panel_pwr_delay_radeon_encoder_atom_dig_42430 panel_pwr_delay radeon_encoder_atom_dig 0 42430 NULL
141796 +disable_so_timeo_nfs_parsed_mount_data_42431 timeo nfs_parsed_mount_data 0 42431 NULL
141797 +disable_so_correction_snd_timer_system_private_42446 correction snd_timer_system_private 0 42446 NULL
141798 +disable_so_intr_timer_usec_vnic_enet_config_42448 intr_timer_usec vnic_enet_config 0 42448 NULL
141799 +disable_so_id_mISDNtimer_42453 id mISDNtimer 0 42453 NULL
141800 +disable_so_i2c_algo_dp_aux_address_fndecl_42460 i2c_algo_dp_aux_address fndecl 2 42460 NULL
141801 +disable_so__register_divider_fndecl_42464 _register_divider fndecl 7-6 42464 NULL
141802 +disable_so_max8998_rtc_read_time_fndecl_42466 max8998_rtc_read_time fndecl 0 42466 NULL
141803 +disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474 sctp_setsockopt_paddr_thresholds fndecl 3-0 42474 NULL nohasharray
141804 +disable_so_stv0900_get_tuner_freq_fndecl_42474 stv0900_get_tuner_freq fndecl 0 42474 &disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474
141805 +disable_so_rt2x00crypto_tx_overhead_fndecl_42475 rt2x00crypto_tx_overhead fndecl 0 42475 NULL
141806 +disable_so_lm3533_led_delay_off_set_fndecl_42481 lm3533_led_delay_off_set fndecl 0 42481 NULL
141807 +disable_so_time_blocked_xen_spinlock_stats_42482 time_blocked xen_spinlock_stats 0 42482 NULL
141808 +disable_so_nat_ver_bitmap_bytesize_f2fs_checkpoint_42483 nat_ver_bitmap_bytesize f2fs_checkpoint 0 42483 NULL
141809 +disable_so_reg_write_fndecl_42487 reg_write fndecl 0 42487 NULL
141810 +disable_so_btrfs_insert_delayed_dir_index_fndecl_42491 btrfs_insert_delayed_dir_index fndecl 0-4-7-8 42491 NULL
141811 +disable_so_r53_val_fc2580_freq_regs_42497 r53_val fc2580_freq_regs 0 42497 NULL
141812 +disable_so_txerr_interrupt_mask_ath_hw_42499 txerr_interrupt_mask ath_hw 0 42499 NULL
141813 +disable_so_avail_max_snd_pcm_runtime_42523 avail_max snd_pcm_runtime 0 42523 NULL nohasharray
141814 +disable_so_ibx_display_interrupt_update_fndecl_42523 ibx_display_interrupt_update fndecl 3-2 42523 &disable_so_avail_max_snd_pcm_runtime_42523
141815 +disable_so_addr_hi_freelQ_e_42531 addr_hi freelQ_e 0 42531 NULL
141816 +disable_so_wrmsr_safe_regs_on_cpu_fndecl_42539 wrmsr_safe_regs_on_cpu fndecl 0-1 42539 NULL
141817 +disable_so_initial_apicid_cpuinfo_x86_42542 initial_apicid cpuinfo_x86 0 42542 NULL
141818 +disable_so_rx_ring_dma_addr_pcnet32_private_42551 rx_ring_dma_addr pcnet32_private 0 42551 NULL
141819 +disable_so_max_sleep_time_f2fs_gc_kthread_42557 max_sleep_time f2fs_gc_kthread 0 42557 NULL nohasharray
141820 +disable_so_addr_high_vring_dma_addr_42557 addr_high vring_dma_addr 0 42557 &disable_so_max_sleep_time_f2fs_gc_kthread_42557
141821 +disable_so_db_rec_addr_mlx4_srq_context_42559 db_rec_addr mlx4_srq_context 0 42559 NULL
141822 +disable_so_mmc_clock_opt_set_fndecl_42561 mmc_clock_opt_set fndecl 2 42561 NULL
141823 +disable_so_sys_setgid16_fndecl_42562 sys_setgid16 fndecl 0-1 42562 NULL
141824 +disable_so_command_width_atiixp_ide_timing_42566 command_width atiixp_ide_timing 0 42566 NULL
141825 +disable_so_cgroup_addrm_files_fndecl_42568 cgroup_addrm_files fndecl 0 42568 NULL
141826 +disable_so_nla_put_via_fndecl_42571 nla_put_via fndecl 4 42571 NULL
141827 +disable_so_flow_get_rxhash_fndecl_42572 flow_get_rxhash fndecl 0 42572 NULL
141828 +disable_so_ves1820_set_tv_freq_fndecl_42581 ves1820_set_tv_freq fndecl 2 42581 NULL
141829 +disable_so_clk_calc_subtree_fndecl_42586 clk_calc_subtree fndecl 2-4 42586 NULL
141830 +disable_so_demod_address_stb0899_config_42587 demod_address stb0899_config 0 42587 NULL
141831 +disable_so_thash_entries_vardecl_tcp_c_42589 thash_entries vardecl_tcp.c 0 42589 NULL
141832 +disable_so_clock_freq_ushc_data_42599 clock_freq ushc_data 0 42599 NULL
141833 +disable_so_VSyncEnd_xtimings_42606 VSyncEnd xtimings 0 42606 NULL
141834 +disable_so_hv_need_to_signal_fndecl_42615 hv_need_to_signal fndecl 1 42615 NULL
141835 +disable_so_rsa_get_n_fndecl_42620 rsa_get_n fndecl 5 42620 NULL
141836 +disable_so_pci_bus_write_config_dword_fndecl_42624 pci_bus_write_config_dword fndecl 0-2-3-4 42624 NULL
141837 +disable_so_gen_pool_virt_to_phys_fndecl_42628 gen_pool_virt_to_phys fndecl 2-0 42628 NULL
141838 +disable_so_brcmf_sdiod_addrprep_fndecl_42643 brcmf_sdiod_addrprep fndecl 0 42643 NULL
141839 +disable_so_mpt_loadtime_max_sectors_vardecl_mptsas_c_42653 mpt_loadtime_max_sectors vardecl_mptsas.c 0 42653 NULL
141840 +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
141841 +disable_so_rx_antdiv_shared_phy_42665 rx_antdiv shared_phy 0 42665 NULL
141842 +disable_so_uart_get_attr_custom_divisor_fndecl_42667 uart_get_attr_custom_divisor fndecl 0 42667 NULL nohasharray
141843 +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
141844 +disable_so_dib0090_write_reg_fndecl_42668 dib0090_write_reg fndecl 3 42668 NULL nohasharray
141845 +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
141846 +disable_so_bs_freqcnt_cx24113_state_42672 bs_freqcnt cx24113_state 0 42672 NULL
141847 +disable_so_netlbl_unlhsh_remove_addr6_fndecl_42673 netlbl_unlhsh_remove_addr6 fndecl 0 42673 NULL
141848 +disable_so_authenc_esn_verify_ahash_update_done2_fndecl_42674 authenc_esn_verify_ahash_update_done2 fndecl 2 42674 NULL
141849 +disable_so_last_time_megasas_instance_42679 last_time megasas_instance 0 42679 NULL
141850 +disable_so_hashval1_1_rx_pkt_hdr1_42687 hashval1_1 rx_pkt_hdr1 0 42687 NULL
141851 +disable_so_nilfs_btree_do_lookup_fndecl_42696 nilfs_btree_do_lookup fndecl 0-3 42696 NULL
141852 +disable_so_ip_vs_create_timeout_table_fndecl_42701 ip_vs_create_timeout_table fndecl 2 42701 NULL
141853 +disable_so_mesh_table_hash_fndecl_42703 mesh_table_hash fndecl 0 42703 NULL
141854 +disable_so_divide_fndecl_42710 divide fndecl 1 42710 NULL
141855 +disable_so_nilfs_btree_node_insert_fndecl_42712 nilfs_btree_node_insert fndecl 2-3 42712 NULL
141856 +disable_so_set_div_fndecl_42720 set_div fndecl 0-4 42720 NULL
141857 +disable_so_current_uuid_show_fndecl_42727 current_uuid_show fndecl 0 42727 NULL nohasharray
141858 +disable_so_nfs4_decode_mp_ds_addr_fndecl_42727 nfs4_decode_mp_ds_addr fndecl 3 42727 &disable_so_current_uuid_show_fndecl_42727
141859 +disable_so_remove_uuid_fndecl_42730 remove_uuid fndecl 0-4 42730 NULL
141860 +disable_so_bd_list_addr_lo_bnx2i_text_request_42732 bd_list_addr_lo bnx2i_text_request 0 42732 NULL
141861 +disable_so_pch_gbe_mac_mc_addr_list_update_fndecl_42738 pch_gbe_mac_mc_addr_list_update fndecl 4 42738 NULL
141862 +disable_so_tbl_addr_brcms_phy_42754 tbl_addr brcms_phy 0 42754 NULL
141863 +disable_so_addr_sch5636_data_42756 addr sch5636_data 0 42756 NULL
141864 +disable_so_hpfa_freq_cs42l56_platform_data_42759 hpfa_freq cs42l56_platform_data 0 42759 NULL
141865 +disable_so_fanout_demux_hash_fndecl_42764 fanout_demux_hash fndecl 0-3 42764 NULL
141866 +disable_so_cxgb_set_mac_addr_fndecl_42780 cxgb_set_mac_addr fndecl 0 42780 NULL
141867 +disable_so_dn_addr2asc_fndecl_42781 dn_addr2asc fndecl 1 42781 NULL
141868 +disable_so_mt9t031_runtime_resume_fndecl_42782 mt9t031_runtime_resume fndecl 0 42782 NULL
141869 +disable_so_nla_put_le64_fndecl_42786 nla_put_le64 fndecl 0 42786 NULL
141870 +disable_so_dell_rbu_dmaaddr_vardecl_dell_rbu_c_42794 dell_rbu_dmaaddr vardecl_dell_rbu.c 0 42794 NULL
141871 +disable_so_ocfs2_update_inode_atime_fndecl_42799 ocfs2_update_inode_atime fndecl 0 42799 NULL nohasharray
141872 +disable_so_pfkey_sockaddr_fill_fndecl_42799 pfkey_sockaddr_fill fndecl 2-4 42799 &disable_so_ocfs2_update_inode_atime_fndecl_42799
141873 +disable_so_vga_get_interruptible_fndecl_42803 vga_get_interruptible fndecl 0 42803 NULL
141874 +disable_so_lookup_pmd_address_fndecl_42804 lookup_pmd_address fndecl 1 42804 NULL
141875 +disable_so_i40e_set_rss_hash_opt_fndecl_42810 i40e_set_rss_hash_opt fndecl 0 42810 NULL
141876 +disable_so_from_kuid_fndecl_42812 from_kuid fndecl 0 42812 NULL
141877 +disable_so_resolution_snd_timer_gstatus_42814 resolution snd_timer_gstatus 0 42814 NULL
141878 +disable_so_demod_address_cx22700_config_42828 demod_address cx22700_config 0 42828 NULL
141879 +disable_so_mpu_start_timer_fndecl_42840 mpu_start_timer fndecl 1 42840 NULL nohasharray
141880 +disable_so_end_point_addr_cx231xx_audio_42840 end_point_addr cx231xx_audio 0 42840 &disable_so_mpu_start_timer_fndecl_42840
141881 +disable_so_hpwdt_change_timer_fndecl_42850 hpwdt_change_timer fndecl 1 42850 NULL nohasharray
141882 +disable_so_host_addr_hw_cmd_42850 host_addr hw_cmd 0 42850 &disable_so_hpwdt_change_timer_fndecl_42850
141883 +disable_so_update_gid_fndecl_42874 update_gid fndecl 3 42874 NULL
141884 +disable_so_read_div_fndecl_42880 read_div fndecl 0 42880 NULL nohasharray
141885 +disable_so_SYSC_setpgid_fndecl_42880 SYSC_setpgid fndecl 1-2 42880 &disable_so_read_div_fndecl_42880
141886 +disable_so_exptime_mpath_info_42881 exptime mpath_info 0 42881 NULL
141887 +disable_so_count_netdev_hw_addr_list_42886 count netdev_hw_addr_list 0 42886 NULL
141888 +disable_so___sel_hash_fndecl_42890 __sel_hash fndecl 0-2-3 42890 NULL
141889 +disable_so_cipher_rt2x00lib_crypto_42894 cipher rt2x00lib_crypto 0 42894 NULL
141890 +disable_so___dequeue_signal_fndecl_42904 __dequeue_signal fndecl 0 42904 NULL
141891 +disable_so_uid_dpot_data_42905 uid dpot_data 0 42905 NULL
141892 +disable_so_tc_index_bitmap_bits_asd_seq_data_42910 tc_index_bitmap_bits asd_seq_data 0 42910 NULL
141893 +disable_so_ablkcipher_copy_iv_fndecl_42911 ablkcipher_copy_iv fndecl 3 42911 NULL
141894 +disable_so_pci_pm_runtime_resume_fndecl_42917 pci_pm_runtime_resume fndecl 0 42917 NULL
141895 +disable_so_default_sclk_radeon_clock_42919 default_sclk radeon_clock 0 42919 NULL
141896 +disable_so_register_inet6addr_notifier_fndecl_42932 register_inet6addr_notifier fndecl 0 42932 NULL nohasharray
141897 +disable_so_e1000_rx_hash_fndecl_42932 e1000_rx_hash fndecl 2 42932 &disable_so_register_inet6addr_notifier_fndecl_42932
141898 +disable_so_isl1208_rtc_set_time_fndecl_42933 isl1208_rtc_set_time fndecl 0 42933 NULL nohasharray
141899 +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
141900 +disable_so_host_addr_io_accel1_cmd_42933 host_addr io_accel1_cmd 0 42933 &disable_so_ringid_wmi_vring_ba_en_cmd_42933
141901 +disable_so_uwb_rc_dev_addr_assign_fndecl_42936 uwb_rc_dev_addr_assign fndecl 0 42936 NULL
141902 +disable_so_address_vme_bus_error_42937 address vme_bus_error 0 42937 NULL nohasharray
141903 +disable_so_cma_bind_addr_fndecl_42937 cma_bind_addr fndecl 0 42937 &disable_so_address_vme_bus_error_42937
141904 +disable_so_cyapa_gen5_set_interval_time_fndecl_42941 cyapa_gen5_set_interval_time fndecl 0-3 42941 NULL
141905 +disable_so_ecx_tss_segment_32_42952 ecx tss_segment_32 0 42952 NULL
141906 +disable_so_percentage_divider_radeon_atom_ss_42955 percentage_divider radeon_atom_ss 0 42955 NULL
141907 +disable_so_timeout_sg_fd_42956 timeout sg_fd 0 42956 NULL
141908 +disable_so_ftdi_2232h_baud_base_to_divisor_fndecl_42957 ftdi_2232h_baud_base_to_divisor fndecl 0-1-2 42957 NULL
141909 +disable_so_mcryptd_hash_update_fndecl_42959 mcryptd_hash_update fndecl 2 42959 NULL
141910 +disable_so_iqaddr_csio_iq_params_42960 iqaddr csio_iq_params 0 42960 NULL
141911 +disable_so_head_wb_addr_i40e_hmc_obj_txq_42977 head_wb_addr i40e_hmc_obj_txq 0 42977 NULL nohasharray
141912 +disable_so_written_btree_42977 written btree 0 42977 &disable_so_head_wb_addr_i40e_hmc_obj_txq_42977
141913 +disable_so___btrfs_update_delayed_inode_fndecl_42987 __btrfs_update_delayed_inode fndecl 0 42987 NULL
141914 +disable_so_af9005_fe_sleep_fndecl_42988 af9005_fe_sleep fndecl 0 42988 NULL nohasharray
141915 +disable_so_counter_address_p4_counter_binding_42988 counter_address p4_counter_binding 0 42988 &disable_so_af9005_fe_sleep_fndecl_42988
141916 +disable_so_alt_timeout_ib_qp_attr_42989 alt_timeout ib_qp_attr 0 42989 NULL
141917 +disable_so_db_record_addr_mlx5_cq_context_43002 db_record_addr mlx5_cq_context 0 43002 NULL nohasharray
141918 +disable_so_rhashtable_insert_rehash_fndecl_43002 rhashtable_insert_rehash fndecl 0 43002 &disable_so_db_record_addr_mlx5_cq_context_43002
141919 +disable_so_zd1201_set_mac_address_fndecl_43003 zd1201_set_mac_address fndecl 0 43003 NULL
141920 +disable_so_scs_init_hss_address_fndecl_43016 scs_init_hss_address fndecl 0 43016 NULL
141921 +disable_so_hash_fndecl_43020 hash fndecl 0 43020 NULL
141922 +disable_so_hpi_tuner_get_hd_radio_signal_blend_fndecl_43025 hpi_tuner_get_hd_radio_signal_blend fndecl 0-1 43025 NULL
141923 +disable_so_rt_runtime_rt_rq_43033 rt_runtime rt_rq 0 43033 NULL
141924 +disable_so_dbi_bw_timer_mipi_config_43043 dbi_bw_timer mipi_config 0 43043 NULL
141925 +disable_so_bch_btree_op_init_fndecl_43045 bch_btree_op_init fndecl 2 43045 NULL
141926 +disable_so_ctl_mce_bank_43048 ctl mce_bank 0 43048 NULL
141927 +disable_so_io_addr_ips_ha_43051 io_addr ips_ha 0 43051 NULL
141928 +disable_so_ucode_beacon_time_iwl_priv_43063 ucode_beacon_time iwl_priv 0 43063 NULL
141929 +disable_so_fast_clip_ctrl_delay_s_cfg_agc_43064 fast_clip_ctrl_delay s_cfg_agc 0 43064 NULL
141930 +disable_so_read_interrupt_status_fndecl_43075 read_interrupt_status fndecl 0 43075 NULL
141931 +disable_so_suspend_time_nv04_timer_priv_43078 suspend_time nv04_timer_priv 0 43078 NULL
141932 +disable_so_nl80211_send_mlme_timeout_fndecl_43081 nl80211_send_mlme_timeout fndecl 5 43081 NULL
141933 +disable_so_xfs_uuid_table_size_vardecl_xfs_mount_c_43090 xfs_uuid_table_size vardecl_xfs_mount.c 0 43090 NULL
141934 +disable_so_bitmap_allocate_region_fndecl_43093 bitmap_allocate_region fndecl 2-3 43093 NULL
141935 +disable_so_timeouts_show_fndecl_43114 timeouts_show fndecl 0 43114 NULL
141936 +disable_so_lm8323_pwm_store_time_fndecl_43123 lm8323_pwm_store_time fndecl 0 43123 NULL nohasharray
141937 +disable_so_crypto_register_instance_fndecl_43123 crypto_register_instance fndecl 0 43123 &disable_so_lm8323_pwm_store_time_fndecl_43123
141938 +disable_so_acpi_map_vaddr_lookup_fndecl_43126 acpi_map_vaddr_lookup fndecl 1-2 43126 NULL nohasharray
141939 +disable_so_bitclk_freq_fsl_ssi_private_43126 bitclk_freq fsl_ssi_private 0 43126 &disable_so_acpi_map_vaddr_lookup_fndecl_43126
141940 +disable_so_retranscount_nes_timer_entry_43129 retranscount nes_timer_entry 0 43129 NULL
141941 +disable_so_driver_timestamp_qla8044_minidump_template_hdr_43138 driver_timestamp qla8044_minidump_template_hdr 0 43138 NULL
141942 +disable_so_rtl8187_iowrite_async_fndecl_43147 rtl8187_iowrite_async fndecl 4-2 43147 NULL
141943 +disable_so_gcm_hash_crypt_remain_continue_fndecl_43164 gcm_hash_crypt_remain_continue fndecl 0 43164 NULL
141944 +disable_so_timeout_usbdevfs_ctrltransfer_43171 timeout usbdevfs_ctrltransfer 0 43171 NULL
141945 +disable_so_addr_snd_ac97_43179 addr snd_ac97 0 43179 NULL
141946 +disable_so_snd_timer_user_start_fndecl_43188 snd_timer_user_start fndecl 0 43188 NULL
141947 +disable_so_div_f0_pll_values_43197 div_f0 pll_values 0 43197 NULL
141948 +disable_so_tx_watchdog_timeout_conf_tx_settings_43198 tx_watchdog_timeout conf_tx_settings 0 43198 NULL
141949 +disable_so_demod_address_stv0297_config_43206 demod_address stv0297_config 0 43206 NULL nohasharray
141950 +disable_so_stv090x_write_reg_fndecl_43206 stv090x_write_reg fndecl 3-0 43206 &disable_so_demod_address_stv0297_config_43206
141951 +disable_so_atomic64_sub_return_fndecl_43214 atomic64_sub_return fndecl 0-1 43214 NULL
141952 +disable_so_select_addr_2_qla8044_minidump_entry_rdmux2_43220 select_addr_2 qla8044_minidump_entry_rdmux2 0 43220 NULL
141953 +disable_so_pixel_clock_radeon_encoder_43221 pixel_clock radeon_encoder 0 43221 NULL
141954 +disable_so_rdmsr_safe_on_cpu_fndecl_43222 rdmsr_safe_on_cpu fndecl 0-1 43222 NULL
141955 +disable_so_adav80x_set_dac_clock_fndecl_43226 adav80x_set_dac_clock fndecl 2 43226 NULL
141956 +disable_so_rc5t583_rtc_read_time_fndecl_43238 rc5t583_rtc_read_time fndecl 0 43238 NULL nohasharray
141957 +disable_so_bitmap_zero_fndecl_43238 bitmap_zero fndecl 2 43238 &disable_so_rc5t583_rtc_read_time_fndecl_43238
141958 +disable_so_vid_from_reg_fndecl_43258 vid_from_reg fndecl 0-1 43258 NULL
141959 +disable_so_page_dp83640_clock_43262 page dp83640_clock 0 43262 NULL
141960 +disable_so_mthca_SW2HW_SRQ_fndecl_43263 mthca_SW2HW_SRQ fndecl 0-3 43263 NULL
141961 +disable_so_tea5777_freq_to_v4l2_freq_fndecl_43267 tea5777_freq_to_v4l2_freq fndecl 0-2 43267 NULL
141962 +disable_so_addr_lo_eth_rx_bd_43268 addr_lo eth_rx_bd 0 43268 NULL
141963 +disable_so_timeout_nf_conntrack_expect_policy_43269 timeout nf_conntrack_expect_policy 0 43269 NULL
141964 +disable_so_read_addr___mux_43284 read_addr __mux 0 43284 NULL
141965 +disable_so_start_address___osdv2_cdb_addr_len_43285 start_address __osdv2_cdb_addr_len 0 43285 NULL
141966 +disable_so_frac_bot_pll_div_43287 frac_bot pll_div 0 43287 NULL
141967 +disable_so_batadv_bitmap_shift_left_fndecl_43296 batadv_bitmap_shift_left fndecl 2 43296 NULL
141968 +disable_so_btrfs_timespec_sec_fndecl_43304 btrfs_timespec_sec fndecl 0 43304 NULL
141969 +disable_so_atime_cifs_unix_set_info_args_43311 atime cifs_unix_set_info_args 0 43311 NULL
141970 +disable_so_id_bitmap_port_adt_elem_43312 id bitmap_port_adt_elem 0 43312 NULL
141971 +disable_so_hsize_std_timing_43315 hsize std_timing 0 43315 NULL
141972 +disable_so_addr_wusb_dev_43323 addr wusb_dev 0 43323 NULL
141973 +disable_so_dma_addr_zynqmp_qspi_43329 dma_addr zynqmp_qspi 0 43329 NULL
141974 +disable_so_flash_timeout_max77693_sub_led_43338 flash_timeout max77693_sub_led 0 43338 NULL nohasharray
141975 +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
141976 +disable_so_cypress_get_mclk_frequency_ratio_fndecl_43339 cypress_get_mclk_frequency_ratio fndecl 0-2 43339 NULL
141977 +disable_so_running_clock_fndecl_43341 running_clock fndecl 0 43341 NULL
141978 +disable_so_snd_echo_clock_source_info_fndecl_43348 snd_echo_clock_source_info fndecl 0 43348 NULL
141979 +disable_so_random_id_operand_ib_cm_43350 random_id_operand ib_cm 0 43350 NULL
141980 +disable_so_il3945_build_tx_cmd_hwcrypto_fndecl_43368 il3945_build_tx_cmd_hwcrypto fndecl 5 43368 NULL
141981 +disable_so_regcache_lzo_decompress_cache_block_fndecl_43370 regcache_lzo_decompress_cache_block fndecl 0 43370 NULL
141982 +disable_so_rv6xx_memory_clock_entry_set_feedback_divider_fndecl_43374 rv6xx_memory_clock_entry_set_feedback_divider fndecl 3 43374 NULL
141983 +disable_so_timer_expires_rts51x_chip_43381 timer_expires rts51x_chip 0 43381 NULL
141984 +disable_so_bond_alb_set_mac_address_fndecl_43392 bond_alb_set_mac_address fndecl 0 43392 NULL
141985 +disable_so_write_leasetime_fndecl_43394 write_leasetime fndecl 0 43394 NULL
141986 +disable_so_ftdi_232am_baud_to_divisor_fndecl_43399 ftdi_232am_baud_to_divisor fndecl 0-1 43399 NULL
141987 +disable_so_jiffies_be_aic_obj_43400 jiffies be_aic_obj 0 43400 NULL
141988 +disable_so_timer_jiffies_tvec_base_43403 timer_jiffies tvec_base 0 43403 NULL
141989 +disable_so___ip6addrlbl_add_fndecl_43404 __ip6addrlbl_add fndecl 0 43404 NULL
141990 +disable_so_sd_ctime_stat_data_v1_43407 sd_ctime stat_data_v1 0 43407 NULL
141991 +disable_so_check_timers_list_fndecl_43411 check_timers_list fndecl 0-3 43411 NULL
141992 +disable_so_addr2_dir_table_slot_43416 addr2 dir_table_slot 0 43416 NULL
141993 +disable_so_bch_btree_map_nodes_fndecl_43426 bch_btree_map_nodes fndecl 0 43426 NULL
141994 +disable_so_burst_bclkdiv_tlv320dac33_priv_43428 burst_bclkdiv tlv320dac33_priv 0 43428 NULL
141995 +disable_so_cx24116_read_signal_strength_fndecl_43436 cx24116_read_signal_strength fndecl 0 43436 NULL
141996 +disable_so_xferq_addr_lo_fcoe_kwqe_conn_offload2_43439 xferq_addr_lo fcoe_kwqe_conn_offload2 0 43439 NULL
141997 +disable_so_timeout_bfa_timer_s_43448 timeout bfa_timer_s 0 43448 NULL
141998 +disable_so_ocfs2_wait_for_mask_interruptible_fndecl_43456 ocfs2_wait_for_mask_interruptible fndecl 0 43456 NULL
141999 +disable_so_stream_timeout_nf_ct_gre_43468 stream_timeout nf_ct_gre 0 43468 NULL
142000 +disable_so_sample_div_st_rc_device_43474 sample_div st_rc_device 0 43474 NULL
142001 +disable_so_crypto_shash_finup_fndecl_43475 crypto_shash_finup fndecl 0-3 43475 NULL
142002 +disable_so_current_frequency_lg216x_state_43480 current_frequency lg216x_state 0 43480 NULL
142003 +disable_so_error_sha1_hash_ctx_43486 error sha1_hash_ctx 0 43486 NULL
142004 +disable_so_link_up_time_swStat_43487 link_up_time swStat 0 43487 NULL
142005 +disable_so_qce_ablkcipher_setkey_fndecl_43494 qce_ablkcipher_setkey fndecl 0-3 43494 NULL
142006 +disable_so_timeout_msec_TAG_TW_Lock_43496 timeout_msec TAG_TW_Lock 0 43496 NULL
142007 +disable_so_mcs7830_hif_get_mac_address_fndecl_43507 mcs7830_hif_get_mac_address fndecl 0 43507 NULL
142008 +disable_so_show_fan_time_fndecl_43512 show_fan_time fndecl 0 43512 NULL
142009 +disable_so_x25_display_timer_fndecl_43519 x25_display_timer fndecl 0 43519 NULL
142010 +disable_so_address_m920x_inits_43524 address m920x_inits 0 43524 NULL
142011 +disable_so_msr_extra_reg_43525 msr extra_reg 0 43525 NULL
142012 +disable_so_hashm_nv50_disp_mthd_v1_43528 hashm nv50_disp_mthd_v1 0 43528 NULL
142013 +disable_so_get_dvbt_signal_to_noise_fndecl_43531 get_dvbt_signal_to_noise fndecl 0 43531 NULL
142014 +disable_so_snd_seq_oss_timer_start_fndecl_43533 snd_seq_oss_timer_start fndecl 0 43533 NULL
142015 +disable_so_ath5k_hw_register_timeout_fndecl_43537 ath5k_hw_register_timeout fndecl 0-3-4 43537 NULL
142016 +disable_so_slave_addr_intel_sdvo_43549 slave_addr intel_sdvo 0 43549 NULL
142017 +disable_so_buf_addr_rocker_desc_43555 buf_addr rocker_desc 0 43555 NULL
142018 +disable_so_bCSourceID_uac_clock_multiplier_descriptor_43558 bCSourceID uac_clock_multiplier_descriptor 0 43558 NULL nohasharray
142019 +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
142020 +disable_so_nla_put_u8_fndecl_43558 nla_put_u8 fndecl 0-3 43558 &disable_so_scsi_reset_delay_adveep_38C1600_config_43558
142021 +disable_so_udp4_portaddr_hash_fndecl_43560 udp4_portaddr_hash fndecl 0-2-3 43560 NULL
142022 +disable_so_port_clock_intel_crtc_state_43564 port_clock intel_crtc_state 0 43564 NULL
142023 +disable_so_cpufreq_update_policy_fndecl_43580 cpufreq_update_policy fndecl 0-1 43580 NULL nohasharray
142024 +disable_so_crypto_rfc4106_setauthsize_fndecl_43580 crypto_rfc4106_setauthsize fndecl 2 43580 &disable_so_cpufreq_update_policy_fndecl_43580
142025 +disable_so_pm_schedule_suspend_fndecl_43585 pm_schedule_suspend fndecl 2-0 43585 NULL
142026 +disable_so_HSyncStart_xtimings_43588 HSyncStart xtimings 0 43588 NULL
142027 +disable_so_write_seq_tcp_sock_43590 write_seq tcp_sock 0 43590 NULL
142028 +disable_so_orion_spi_50mhz_ac_timing_erratum_fndecl_43600 orion_spi_50mhz_ac_timing_erratum fndecl 2 43600 NULL
142029 +disable_so_set_clock_vml_sys_43602 set_clock vml_sys 2 43602 NULL
142030 +disable_so_sample_to_timespec_fndecl_43603 sample_to_timespec fndecl 2-1 43603 NULL
142031 +disable_so_ib_find_gid_fndecl_43614 ib_find_gid fndecl 0 43614 NULL
142032 +disable_so_ath9k_hw_set_sifs_time_fndecl_43616 ath9k_hw_set_sifs_time fndecl 2 43616 NULL
142033 +disable_so_snd_als4000_set_addr_fndecl_43620 snd_als4000_set_addr fndecl 1 43620 NULL
142034 +disable_so_dma_addr_as102_dev_t_43627 dma_addr as102_dev_t 0 43627 NULL
142035 +disable_so_gcm_hash_crypt_remain_done_fndecl_43636 gcm_hash_crypt_remain_done fndecl 2 43636 NULL
142036 +disable_so_msm6242_read_time_fndecl_43640 msm6242_read_time fndecl 0 43640 NULL
142037 +disable_so_last_tick_timer_local_info_43641 last_tick_timer local_info 0 43641 NULL
142038 +disable_so_guid_show_fndecl_43648 guid_show fndecl 0 43648 NULL
142039 +disable_so_key_set_timeout_fndecl_43649 key_set_timeout fndecl 2 43649 NULL
142040 +disable_so_abx80x_rtc_read_time_fndecl_43656 abx80x_rtc_read_time fndecl 0 43656 NULL
142041 +disable_so_freq_wmi_ch_info_ev_arg_43659 freq wmi_ch_info_ev_arg 0 43659 NULL
142042 +disable_so___delayacct_blkio_ticks_fndecl_43660 __delayacct_blkio_ticks fndecl 0 43660 NULL
142043 +disable_so_base_dwell_time_conf_sched_scan_settings_43662 base_dwell_time conf_sched_scan_settings 0 43662 NULL
142044 +disable_so_ps_upsd_max_sptime_read_fndecl_43665 ps_upsd_max_sptime_read fndecl 3-0 43665 NULL
142045 +disable_so_sis190_get_mac_addr_fndecl_43671 sis190_get_mac_addr fndecl 0 43671 NULL
142046 +disable_so_pll_loopdiv_dibx090p_best_adc_43673 pll_loopdiv dibx090p_best_adc 0 43673 NULL
142047 +disable_so_first_uid_gid_extent_43687 first uid_gid_extent 0 43687 NULL
142048 +disable_so_des2_idmac_desc_64addr_43704 des2 idmac_desc_64addr 0 43704 NULL
142049 +disable_so_irq_get_irq_data_fndecl_43708 irq_get_irq_data fndecl 1 43708 NULL
142050 +disable_so_mask_mlx4_bitmap_43716 mask mlx4_bitmap 0 43716 NULL
142051 +disable_so_time_stamp_ixgbe_tx_buffer_43717 time_stamp ixgbe_tx_buffer 0 43717 NULL
142052 +disable_so_tx_frequency_wl1273_device_43727 tx_frequency wl1273_device 0 43727 NULL
142053 +disable_so_divider_round_rate_fndecl_43731 divider_round_rate fndecl 2-0-5 43731 NULL
142054 +disable_so_delay_bfa_iocfc_intr_attr_s_43734 delay bfa_iocfc_intr_attr_s 0 43734 NULL
142055 +disable_so_dccp_elapsed_time_len_fndecl_43735 dccp_elapsed_time_len fndecl 0 43735 NULL
142056 +disable_so_uwb_rc_addr_set_fndecl_43736 uwb_rc_addr_set fndecl 0 43736 NULL
142057 +disable_so_add_delayed_data_ref_fndecl_43738 add_delayed_data_ref fndecl 10-12-5-6-7-8-9 43738 NULL
142058 +disable_so_double_bit_error_detect_fndecl_43740 double_bit_error_detect fndecl 4 43740 NULL
142059 +disable_so_pc_clock_gettime_fndecl_43750 pc_clock_gettime fndecl 1 43750 NULL
142060 +disable_so_ts_tgid_owner_gru_thread_state_43760 ts_tgid_owner gru_thread_state 0 43760 NULL
142061 +disable_so_hpet_set_periodic_freq_fndecl_43764 hpet_set_periodic_freq fndecl 1 43764 NULL
142062 +disable_so___vmw_piter_sg_addr_fndecl_43770 __vmw_piter_sg_addr fndecl 0 43770 NULL
142063 +disable_so_ipmi_validate_addr_fndecl_43771 ipmi_validate_addr fndecl 2 43771 NULL
142064 +disable_so_delay_fb_deferred_io_43773 delay fb_deferred_io 0 43773 NULL
142065 +disable_so_fixed_mtrr_addr_to_seg_fndecl_43774 fixed_mtrr_addr_to_seg fndecl 1 43774 NULL nohasharray
142066 +disable_so___bitmap_equal_fndecl_43774 __bitmap_equal fndecl 3 43774 &disable_so_fixed_mtrr_addr_to_seg_fndecl_43774
142067 +disable_so_igb_check_for_bit_pf_fndecl_43775 igb_check_for_bit_pf fndecl 2 43775 NULL
142068 +disable_so_led_override_timeoff_qib_pportdata_43779 led_override_timeoff qib_pportdata 0 43779 NULL
142069 +disable_so_wd_timeout_il_cfg_43781 wd_timeout il_cfg 0 43781 NULL
142070 +disable_so_addr_kvm_io_range_43786 addr kvm_io_range 0 43786 NULL
142071 +disable_so_sleep_millisecs_show_fndecl_43792 sleep_millisecs_show fndecl 0 43792 NULL
142072 +disable_so_rpc_set_queue_timer_fndecl_43797 rpc_set_queue_timer fndecl 2 43797 NULL
142073 +disable_so_ksz9031_center_flp_timing_fndecl_43804 ksz9031_center_flp_timing fndecl 0 43804 NULL
142074 +disable_so_kstrtoull_from_user_fndecl_43809 kstrtoull_from_user fndecl 2 43809 NULL
142075 +disable_so_numa_get_avg_runtime_fndecl_43810 numa_get_avg_runtime fndecl 0 43810 NULL
142076 +disable_so_max77693_led_flash_timeout_set_fndecl_43811 max77693_led_flash_timeout_set fndecl 2 43811 NULL
142077 +disable_so_mlx4_reset_roce_port_gids_fndecl_43816 mlx4_reset_roce_port_gids fndecl 0-2-3 43816 NULL
142078 +disable_so_interrupt_level_vardecl_fdomain_c_43820 interrupt_level vardecl_fdomain.c 0 43820 NULL nohasharray
142079 +disable_so_crypto_ahash_finup_fndecl_43820 crypto_ahash_finup fndecl 0 43820 &disable_so_interrupt_level_vardecl_fdomain_c_43820
142080 +disable_so_block_bitmap_ext4_new_group_data_43822 block_bitmap ext4_new_group_data 0 43822 NULL
142081 +disable_so_timer_stats_update_stats_fndecl_43829 timer_stats_update_stats fndecl 2 43829 NULL
142082 +disable_so___nilfs_btree_get_block_fndecl_43845 __nilfs_btree_get_block fndecl 0-2 43845 NULL
142083 +disable_so_wait_on_bit_lock_io_fndecl_43852 wait_on_bit_lock_io fndecl 0 43852 NULL
142084 +disable_so_authenc_esn_geniv_ahash_update_done_fndecl_43855 authenc_esn_geniv_ahash_update_done fndecl 2 43855 NULL
142085 +disable_so_pre_event_timeout_vardecl_sequencer_c_43856 pre_event_timeout vardecl_sequencer.c 0 43856 NULL nohasharray
142086 +disable_so_last_rx_time_net_local_43856 last_rx_time net_local 0 43856 &disable_so_pre_event_timeout_vardecl_sequencer_c_43856
142087 +disable_so_run_delayed_tree_ref_fndecl_43857 run_delayed_tree_ref fndecl 0 43857 NULL
142088 +disable_so_radio_addr_saa7134_board_43862 radio_addr saa7134_board 0 43862 NULL
142089 +disable_so_hor_total_via_display_timing_43866 hor_total via_display_timing 0 43866 NULL
142090 +disable_so_mem_addr_pch_dma_desc_regs_43867 mem_addr pch_dma_desc_regs 0 43867 NULL
142091 +disable_so_addr_Vmxnet3_TxDesc_43868 addr Vmxnet3_TxDesc 0 43868 NULL
142092 +disable_so_set_ras_addr_fndecl_43869 set_ras_addr fndecl 4 43869 NULL
142093 +disable_so_cpuidle_register_fndecl_43887 cpuidle_register fndecl 0 43887 NULL
142094 +disable_so_start_seq_tcp_sack_block_43898 start_seq tcp_sack_block 0 43898 NULL
142095 +disable_so_seq_default_timer_subdevice_vardecl_43912 seq_default_timer_subdevice vardecl 0 43912 NULL
142096 +disable_so_pci_bus_update_busn_res_end_fndecl_43918 pci_bus_update_busn_res_end fndecl 2-0 43918 NULL
142097 +disable_so_qdisc_watchdog_schedule_ns_fndecl_43926 qdisc_watchdog_schedule_ns fndecl 2 43926 NULL
142098 +disable_so_sys_timer_create_fndecl_43937 sys_timer_create fndecl 1 43937 NULL
142099 +disable_so_atmel_spi_runtime_resume_fndecl_43938 atmel_spi_runtime_resume fndecl 0 43938 NULL nohasharray
142100 +disable_so_zd1201_set_freq_fndecl_43938 zd1201_set_freq fndecl 0 43938 &disable_so_atmel_spi_runtime_resume_fndecl_43938
142101 +disable_so_gid_fuse_setattr_in_43939 gid fuse_setattr_in 0 43939 NULL
142102 +disable_so_bit_putcs_aligned_fndecl_43966 bit_putcs_aligned fndecl 5-6-7-8 43966 NULL
142103 +disable_so_log_mc_hash_sz_mlx4_init_hca_param_43973 log_mc_hash_sz mlx4_init_hca_param 0 43973 NULL
142104 +disable_so_igb_write_8bit_ctrl_reg_fndecl_43984 igb_write_8bit_ctrl_reg fndecl 2 43984 NULL
142105 +disable_so_r50_val_fc2580_freq_regs_43992 r50_val fc2580_freq_regs 0 43992 NULL
142106 +disable_so_ccp_aes_xts_encrypt_fndecl_43996 ccp_aes_xts_encrypt fndecl 0 43996 NULL
142107 +disable_so_tty_unregister_device_fndecl_44000 tty_unregister_device fndecl 2 44000 NULL
142108 +disable_so_bus_addr_vnic_dev_bar_44006 bus_addr vnic_dev_bar 0 44006 NULL
142109 +disable_so_pcf8523_rtc_set_time_fndecl_44007 pcf8523_rtc_set_time fndecl 0 44007 NULL
142110 +disable_so_dq_hash_mask_vardecl_dquot_c_44015 dq_hash_mask vardecl_dquot.c 0 44015 NULL
142111 +disable_so_device_addr_lm87_tx_hdr_44016 device_addr lm87_tx_hdr 0 44016 NULL
142112 +disable_so__kstrtoull_fndecl_44018 _kstrtoull fndecl 0 44018 NULL
142113 +disable_so_brcmf_sdiod_set_sbaddr_window_fndecl_44019 brcmf_sdiod_set_sbaddr_window fndecl 0-2 44019 NULL
142114 +disable_so_drbd_adm_new_c_uuid_fndecl_44035 drbd_adm_new_c_uuid fndecl 0 44035 NULL
142115 +disable_so_signal_hostap_80211_rx_status_44041 signal hostap_80211_rx_status 0 44041 NULL
142116 +disable_so_enqueue_time_codel_skb_cb_44046 enqueue_time codel_skb_cb 0 44046 NULL
142117 +disable_so_conv_clk_and_div_n_pcr_ops_44049 conv_clk_and_div_n pcr_ops 0-1 44049 NULL
142118 +disable_so_ep93xx_spi_calc_divisors_fndecl_44051 ep93xx_spi_calc_divisors fndecl 0-2 44051 NULL
142119 +disable_so_j_trans_start_time_reiserfs_journal_44058 j_trans_start_time reiserfs_journal 0 44058 NULL
142120 +disable_so_cvt_kvaddr_fndecl_44079 cvt_kvaddr fndecl 0 44079 NULL
142121 +disable_so_tm_mon_rtc_time_44080 tm_mon rtc_time 0 44080 NULL
142122 +disable_so_uart_get_divisor_fndecl_44085 uart_get_divisor fndecl 0-2 44085 NULL
142123 +disable_so_spn_obj_sockaddr_pn_44086 spn_obj sockaddr_pn 0 44086 NULL
142124 +disable_so_cur_start_addr_sisusb_usb_data_44091 cur_start_addr sisusb_usb_data 0 44091 NULL nohasharray
142125 +disable_so___vma_address_fndecl_44091 __vma_address fndecl 0 44091 &disable_so_cur_start_addr_sisusb_usb_data_44091
142126 +disable_so_read_systime_fm10k_mac_ops_44092 read_systime fm10k_mac_ops 0 44092 NULL
142127 +disable_so_nfsd_map_name_to_gid_fndecl_44096 nfsd_map_name_to_gid fndecl 0 44096 NULL
142128 +disable_so_mthca_cmd_box_fndecl_44108 mthca_cmd_box fndecl 7-0-2-4-3 44108 NULL nohasharray
142129 +disable_so_chv_clock_fndecl_44108 chv_clock fndecl 1 44108 &disable_so_mthca_cmd_box_fndecl_44108
142130 +disable_so_ironlake_pch_transcoder_set_timings_fndecl_44115 ironlake_pch_transcoder_set_timings fndecl 2 44115 NULL
142131 +disable_so___br_ip4_hash_fndecl_44134 __br_ip4_hash fndecl 0 44134 NULL
142132 +disable_so_divider_recalc_rate_fndecl_44140 divider_recalc_rate fndecl 3-0-2 44140 NULL nohasharray
142133 +disable_so_reg_id_res_gid_44140 reg_id res_gid 0 44140 &disable_so_divider_recalc_rate_fndecl_44140
142134 +disable_so_dev_rst_time_qlcnic_adapter_44150 dev_rst_time qlcnic_adapter 0 44150 NULL
142135 +disable_so_nsec_ptp_clock_time_44160 nsec ptp_clock_time 0 44160 NULL
142136 +disable_so_node_count_hfs_btree_44162 node_count hfs_btree 0 44162 NULL
142137 +disable_so_iscsit_na_dataout_timeout_fndecl_44167 iscsit_na_dataout_timeout fndecl 2-0 44167 NULL nohasharray
142138 +disable_so_idletimer_ax25_info_struct_44167 idletimer ax25_info_struct 0 44167 &disable_so_iscsit_na_dataout_timeout_fndecl_44167
142139 +disable_so_btrfs_delayed_qgroup_accounting_fndecl_44171 btrfs_delayed_qgroup_accounting fndecl 0 44171 NULL
142140 +disable_so_t4_wr_mbox_timeout_fndecl_44177 t4_wr_mbox_timeout fndecl 2 44177 NULL
142141 +disable_so_db_addr_mlx4_ib_create_qp_44182 db_addr mlx4_ib_create_qp 0 44182 NULL nohasharray
142142 +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
142143 +disable_so_ipath_pkt_delay_fndecl_44185 ipath_pkt_delay fndecl 0-1-2-3 44185 NULL nohasharray
142144 +disable_so_cycle_state_xhci_ring_44185 cycle_state xhci_ring 0 44185 &disable_so_ipath_pkt_delay_fndecl_44185
142145 +disable_so_phys_dma_addr_r852_device_44187 phys_dma_addr r852_device 0 44187 NULL
142146 +disable_so_nopin_response_timeout_iscsi_node_attrib_44188 nopin_response_timeout iscsi_node_attrib 0 44188 NULL
142147 +disable_so_lkey_mthca_resize_cq_44197 lkey mthca_resize_cq 0 44197 NULL
142148 +disable_so_rx_timeout_netdev_private_44200 rx_timeout netdev_private 0 44200 NULL
142149 +disable_so_naddr_qib_user_sdma_pkt_44203 naddr qib_user_sdma_pkt 0 44203 NULL
142150 +disable_so_block_to_cpu_fndecl_44212 block_to_cpu fndecl 0 44212 NULL
142151 +disable_so_read_tail_n_tty_data_44226 read_tail n_tty_data 0 44226 NULL
142152 +disable_so_bssidx_rt2x00lib_crypto_44239 bssidx rt2x00lib_crypto 0 44239 NULL
142153 +disable_so_number_pci_bus_44243 number pci_bus 0 44243 NULL
142154 +disable_so_watchdog_timeout_w83793_data_44253 watchdog_timeout w83793_data 0 44253 NULL
142155 +disable_so_cz_clock_intel_rps_ei_44276 cz_clock intel_rps_ei 0 44276 NULL
142156 +disable_so_proc_gid_map_open_fndecl_44293 proc_gid_map_open fndecl 0 44293 NULL
142157 +disable_so_r2d_val_fc2580_freq_regs_44295 r2d_val fc2580_freq_regs 0 44295 NULL
142158 +disable_so_wm8510_set_dai_clkdiv_fndecl_44299 wm8510_set_dai_clkdiv fndecl 3 44299 NULL
142159 +disable_so_otime_jfs_inode_info_44300 otime jfs_inode_info 0 44300 NULL
142160 +disable_so_rss_hash_be_rx_compl_info_44306 rss_hash be_rx_compl_info 0 44306 NULL
142161 +disable_so_radio_tx_freq_vivid_dev_44308 radio_tx_freq vivid_dev 0 44308 NULL
142162 +disable_so_smbhash_fndecl_44311 smbhash fndecl 0 44311 NULL
142163 +disable_so_nla_put_in6_addr_fndecl_44317 nla_put_in6_addr fndecl 0 44317 NULL
142164 +disable_so_fll_ref_freq__fll_div_44318 fll_ref_freq _fll_div 0 44318 NULL
142165 +disable_so_prandom_bytes_state_fndecl_44332 prandom_bytes_state fndecl 3 44332 NULL
142166 +disable_so_base_dma_addr_srp_map_state_44343 base_dma_addr srp_map_state 0 44343 NULL
142167 +disable_so_addr_intel_plane_error_state_44366 addr intel_plane_error_state 0 44366 NULL
142168 +disable_so_start_addr_acpi_memory_info_44372 start_addr acpi_memory_info 0 44372 NULL
142169 +disable_so_bitmap_cpg_ocfs2_super_44373 bitmap_cpg ocfs2_super 0 44373 NULL
142170 +disable_so_interval_zd_usb_interrupt_44381 interval zd_usb_interrupt 0 44381 NULL
142171 +disable_so_neigh_proc_dointvec_ms_jiffies_fndecl_44384 neigh_proc_dointvec_ms_jiffies fndecl 0 44384 NULL
142172 +disable_so_fsl_esai_divisor_cal_fndecl_44386 fsl_esai_divisor_cal fndecl 5-3 44386 NULL
142173 +disable_so_sync_single_for_device_dma_map_ops_44393 sync_single_for_device dma_map_ops 2-3 44393 NULL
142174 +disable_so_cl_lease_time_nfs_client_44400 cl_lease_time nfs_client 0 44400 NULL
142175 +disable_so_asd_get_user_sas_addr_fndecl_44401 asd_get_user_sas_addr fndecl 0 44401 NULL
142176 +disable_so_ss_tss_segment_16_44415 ss tss_segment_16 0 44415 NULL
142177 +disable_so_ave_beacon_signal_ieee80211_if_managed_44440 ave_beacon_signal ieee80211_if_managed 0 44440 NULL
142178 +disable_so_smsc911x_hash_fndecl_44443 smsc911x_hash fndecl 0 44443 NULL
142179 +disable_so_flow_hash_from_keys_fndecl_44444 flow_hash_from_keys fndecl 0 44444 NULL
142180 +disable_so_addr_vt8231_data_44455 addr vt8231_data 0 44455 NULL
142181 +disable_so_drm_fixp_mul_fndecl_44461 drm_fixp_mul fndecl 0-1-2 44461 NULL
142182 +disable_so_bind_evtchn_to_cpu_fndecl_44464 bind_evtchn_to_cpu fndecl 2-1 44464 NULL
142183 +disable_so_rdma_set_reuseaddr_fndecl_44469 rdma_set_reuseaddr fndecl 0 44469 NULL
142184 +disable_so_vx_calc_clock_from_freq_fndecl_44479 vx_calc_clock_from_freq fndecl 0-2 44479 NULL
142185 +disable_so_rs_conn_addr_rds_sock_44482 rs_conn_addr rds_sock 0 44482 NULL
142186 +disable_so_decode_attr_time_delta_fndecl_44484 decode_attr_time_delta fndecl 0 44484 NULL nohasharray
142187 +disable_so_xfs_btree_get_bufs_fndecl_44484 xfs_btree_get_bufs fndecl 3-4 44484 &disable_so_decode_attr_time_delta_fndecl_44484
142188 +disable_so_zd_chip_set_multicast_hash_fndecl_44491 zd_chip_set_multicast_hash fndecl 0 44491 NULL
142189 +disable_so_write32_async_rtl_io_44499 write32_async rtl_io 2-3 44499 NULL
142190 +disable_so_tcf_hashinfo_init_fndecl_44504 tcf_hashinfo_init fndecl 2 44504 NULL
142191 +disable_so_buffer_addr_atl1c_rx_free_desc_44505 buffer_addr atl1c_rx_free_desc 0 44505 NULL
142192 +disable_so_rqq_addr_hi_addr_ctrl_blk_44511 rqq_addr_hi addr_ctrl_blk 0 44511 NULL
142193 +disable_so_max_pll_spi_speed_pll_clock_map_44513 max_pll_spi_speed pll_clock_map 0 44513 NULL
142194 +disable_so_read_addr_qla8xxx_minidump_entry_mux_44516 read_addr qla8xxx_minidump_entry_mux 0 44516 NULL
142195 +disable_so_abx500_set_register_interruptible_fndecl_44521 abx500_set_register_interruptible fndecl 0-4 44521 NULL
142196 +disable_so_range_startk_var_mtrr_state_44530 range_startk var_mtrr_state 0 44530 NULL
142197 +disable_so_dev_idx_sockaddr_nfc_44533 dev_idx sockaddr_nfc 0 44533 NULL
142198 +disable_so_query_dv_timings_vivid_dev_44543 query_dv_timings vivid_dev 0 44543 NULL
142199 +disable_so_saddr_ircomm_tty_cb_44557 saddr ircomm_tty_cb 0 44557 NULL
142200 +disable_so_schedule_delay_balloon_stats_44561 schedule_delay balloon_stats 0 44561 NULL
142201 +disable_so___start_cp_addr_fndecl_44569 __start_cp_addr fndecl 0 44569 NULL
142202 +disable_so_m41t94_read_time_fndecl_44577 m41t94_read_time fndecl 0 44577 NULL
142203 +disable_so_set_pte_vaddr_fndecl_44586 set_pte_vaddr fndecl 1 44586 NULL
142204 +disable_so_sctp_getsockopt_peer_addrs_fndecl_44593 sctp_getsockopt_peer_addrs fndecl 0 44593 NULL
142205 +disable_so_lu_reset_timeout_iscsi_session_44595 lu_reset_timeout iscsi_session 0 44595 NULL
142206 +disable_so_jade_interrupt_fndecl_44602 jade_interrupt fndecl 2 44602 NULL nohasharray
142207 +disable_so_ebx_smm_regs_44602 ebx smm_regs 0 44602 &disable_so_jade_interrupt_fndecl_44602 nohasharray
142208 +disable_so_nilfs_btree_prepare_insert_fndecl_44602 nilfs_btree_prepare_insert fndecl 0-4 44602 &disable_so_ebx_smm_regs_44602
142209 +disable_so_pcf50633_rtc_read_time_fndecl_44606 pcf50633_rtc_read_time fndecl 0 44606 NULL
142210 +disable_so_active_time_evergreen_wm_params_44608 active_time evergreen_wm_params 0 44608 NULL
142211 +disable_so_flags_inet6_ifaddr_44611 flags inet6_ifaddr 0 44611 NULL
142212 +disable_so_sioaddr_watchdog_data_44614 sioaddr watchdog_data 0 44614 NULL
142213 +disable_so_sense_addr_adv_scsi_req_q_44624 sense_addr adv_scsi_req_q 0 44624 NULL
142214 +disable_so_maxfrags_snd_pcm_oss_runtime_44625 maxfrags snd_pcm_oss_runtime 0 44625 NULL
142215 +disable_so_settle_delay_usecs_ads7846_platform_data_44627 settle_delay_usecs ads7846_platform_data 0 44627 NULL
142216 +disable_so_get_random_int_fndecl_44628 get_random_int fndecl 0 44628 NULL
142217 +disable_so_ahash_def_finup_finish1_fndecl_44631 ahash_def_finup_finish1 fndecl 0-2 44631 NULL
142218 +disable_so_calib_time_b43_lo_calib_44633 calib_time b43_lo_calib 0 44633 NULL
142219 +disable_so_timespec_to_jiffies_fndecl_44642 timespec_to_jiffies fndecl 0 44642 NULL
142220 +disable_so_secid_netlbl_unlhsh_addr4_44654 secid netlbl_unlhsh_addr4 0 44654 NULL
142221 +disable_so_tcp_init_nondata_skb_fndecl_44656 tcp_init_nondata_skb fndecl 2 44656 NULL
142222 +disable_so_time_start_nfs_fattr_44666 time_start nfs_fattr 0 44666 NULL
142223 +disable_so_nilfs_dev_uuid_show_fndecl_44683 nilfs_dev_uuid_show fndecl 0 44683 NULL
142224 +disable_so_prctl_get_tid_address_fndecl_44684 prctl_get_tid_address fndecl 0 44684 NULL
142225 +disable_so_rq_addr_t3_wq_44688 rq_addr t3_wq 0 44688 NULL
142226 +disable_so_lpfc_max_scsicmpl_time_vardecl_lpfc_attr_c_44694 lpfc_max_scsicmpl_time vardecl_lpfc_attr.c 0 44694 NULL
142227 +disable_so_show_guid_fndecl_44695 show_guid fndecl 0 44695 NULL
142228 +disable_so_rsi_cmd52writebyte_fndecl_44700 rsi_cmd52writebyte fndecl 0-2-3 44700 NULL
142229 +disable_so_rx_rx_timeout_read_fndecl_44710 rx_rx_timeout_read fndecl 3 44710 NULL
142230 +disable_so_fw_localtime_wl_fw_status_44711 fw_localtime wl_fw_status 0 44711 NULL
142231 +disable_so_sm501_calc_clock_fndecl_44717 sm501_calc_clock fndecl 1-4 44717 NULL
142232 +disable_so_address_radio_20xx_regs_44719 address radio_20xx_regs 0 44719 NULL
142233 +disable_so_round_jiffies_common_fndecl_44723 round_jiffies_common fndecl 0-2-1 44723 NULL
142234 +disable_so_offtime_cbq_class_44730 offtime cbq_class 0 44730 NULL
142235 +disable_so_cur_clock_rtsx_pcr_44731 cur_clock rtsx_pcr 0 44731 NULL
142236 +disable_so_cik_set_uvd_clocks_fndecl_44739 cik_set_uvd_clocks fndecl 3-2-0 44739 NULL
142237 +disable_so_write_reg_sja1000_priv_44741 write_reg sja1000_priv 3 44741 NULL
142238 +disable_so_leaf_tail_hfs_btree_44745 leaf_tail hfs_btree 0 44745 NULL
142239 +disable_so_ui_ctime_ufs2_inode_44748 ui_ctime ufs2_inode 0 44748 NULL nohasharray
142240 +disable_so_addr_it87_data_44748 addr it87_data 0 44748 &disable_so_ui_ctime_ufs2_inode_44748
142241 +disable_so_add_time_xfrm_lifetime_cur_44766 add_time xfrm_lifetime_cur 0 44766 NULL
142242 +disable_so_genwqe_debugfs_curr_dbg_uid1_open_fndecl_44769 genwqe_debugfs_curr_dbg_uid1_open fndecl 0 44769 NULL
142243 +disable_so_espibug_timeout_sge_44778 espibug_timeout sge 0 44778 NULL
142244 +disable_so_buffer_addr_pch_gbe_tx_desc_44790 buffer_addr pch_gbe_tx_desc 0 44790 NULL
142245 +disable_so_crypto_shash_init_fndecl_44815 crypto_shash_init fndecl 0 44815 NULL
142246 +disable_so_get_evtchn_to_irq_fndecl_44824 get_evtchn_to_irq fndecl 0-1 44824 NULL nohasharray
142247 +disable_so_jhash2_fndecl_44824 jhash2 fndecl 0-2-3 44824 &disable_so_get_evtchn_to_irq_fndecl_44824
142248 +disable_so_s_mtime_nilfs_super_block_44839 s_mtime nilfs_super_block 0 44839 NULL
142249 +disable_so_nilfs_segctor_last_nongc_write_time_show_fndecl_44843 nilfs_segctor_last_nongc_write_time_show fndecl 0 44843 NULL
142250 +disable_so_usec_delay_ixgbe_mbx_info_44850 usec_delay ixgbe_mbx_info 0 44850 NULL
142251 +disable_so_ecryptfs_cipher_code_to_string_fndecl_44859 ecryptfs_cipher_code_to_string fndecl 0 44859 NULL
142252 +disable_so_ieee802154_hdr_get_addr_fndecl_44863 ieee802154_hdr_get_addr fndecl 0 44863 NULL
142253 +disable_so_ecp_write_addr_parport_operations_44867 ecp_write_addr parport_operations 0 44867 NULL
142254 +disable_so_mtrr_add_page_fndecl_44881 mtrr_add_page fndecl 1-2 44881 NULL
142255 +disable_so_snd_via686_interrupt_fndecl_44897 snd_via686_interrupt fndecl 1 44897 NULL nohasharray
142256 +disable_so_minor_hash_dx_hash_info_44897 minor_hash dx_hash_info 0 44897 &disable_so_snd_via686_interrupt_fndecl_44897
142257 +disable_so_i2c_addr_dmi_onboard_device_info_44901 i2c_addr dmi_onboard_device_info 0 44901 NULL
142258 +disable_so_tcp_conn_schedule_fndecl_44909 tcp_conn_schedule fndecl 1 44909 NULL nohasharray
142259 +disable_so_udelay_fm10k_mbx_info_44909 udelay fm10k_mbx_info 0 44909 &disable_so_tcp_conn_schedule_fndecl_44909
142260 +disable_so_c_timestamp_svc_cacherep_44918 c_timestamp svc_cacherep 0 44918 NULL
142261 +disable_so_timeout_mpt2_ioctl_command_44920 timeout mpt2_ioctl_command 0 44920 NULL
142262 +disable_so_sk_lingertime_sock_44923 sk_lingertime sock 0 44923 NULL
142263 +disable_so_latency_timer_hpp_type0_44929 latency_timer hpp_type0 0 44929 NULL
142264 +disable_so_mtime_squashfs_base_inode_44930 mtime squashfs_base_inode 0 44930 NULL
142265 +disable_so_rpc_peeraddr_fndecl_44940 rpc_peeraddr fndecl 0-3 44940 NULL
142266 +disable_so_dsap_sockaddr_nfc_llcp_44945 dsap sockaddr_nfc_llcp 0 44945 NULL
142267 +disable_so_shash_ahash_mcryptd_finup_fndecl_44946 shash_ahash_mcryptd_finup fndecl 0 44946 NULL
142268 +disable_so_SiS_SetRegANDOR_fndecl_44947 SiS_SetRegANDOR fndecl 1-2-3-4 44947 NULL
142269 +disable_so_cpu_timer_sample_group_fndecl_44962 cpu_timer_sample_group fndecl 1 44962 NULL
142270 +disable_so_key_timeout_rpc_authops_44963 key_timeout rpc_authops 0 44963 NULL
142271 +disable_so_proc_uid_map_open_fndecl_44967 proc_uid_map_open fndecl 0 44967 NULL
142272 +disable_so_spp_pathmtu_sctp_paddrparams_44974 spp_pathmtu sctp_paddrparams 0 44974 NULL
142273 +disable_so_b43_radio_write_fndecl_44980 b43_radio_write fndecl 3 44980 NULL
142274 +disable_so_level_btree_44981 level btree 0 44981 NULL
142275 +disable_so_shift_clocksource_44992 shift clocksource 0 44992 NULL
142276 +disable_so_mount_timeout_ceph_options_44999 mount_timeout ceph_options 0 44999 NULL
142277 +disable_so_igmp_start_timer_fndecl_45000 igmp_start_timer fndecl 2 45000 NULL
142278 +disable_so_force_addr_vardecl_via686a_c_45006 force_addr vardecl_via686a.c 0 45006 NULL
142279 +disable_so_ahash_wait_fndecl_45017 ahash_wait fndecl 0-1 45017 NULL
142280 +disable_so_acpi_pm_device_sleep_wake_fndecl_45036 acpi_pm_device_sleep_wake fndecl 0 45036 NULL
142281 +disable_so_palette_qxl_bitmap_45040 palette qxl_bitmap 0 45040 NULL
142282 +disable_so_subdevice_snd_timer_id_45046 subdevice snd_timer_id 0 45046 NULL
142283 +disable_so_demod_address_sp887x_config_45051 demod_address sp887x_config 0 45051 NULL
142284 +disable_so_end_address_acpi_address_range_45053 end_address acpi_address_range 0 45053 NULL
142285 +disable_so_fm_rx_get_band_freq_range_fndecl_45055 fm_rx_get_band_freq_range fndecl 0 45055 NULL
142286 +disable_so_tcp_time_wait_fndecl_45056 tcp_time_wait fndecl 3-2 45056 NULL nohasharray
142287 +disable_so_mlx4_ib_gen_node_guid_fndecl_45056 mlx4_ib_gen_node_guid fndecl 0 45056 &disable_so_tcp_time_wait_fndecl_45056
142288 +disable_so_gpio_get_value_cansleep_fndecl_45065 gpio_get_value_cansleep fndecl 0-1 45065 NULL
142289 +disable_so_max6900_i2c_read_time_fndecl_45069 max6900_i2c_read_time fndecl 0 45069 NULL
142290 +disable_so_sys_futimesat_fndecl_45070 sys_futimesat fndecl 1 45070 NULL
142291 +disable_so_genwqe_debugfs_prev_dbg_uid2_open_fndecl_45072 genwqe_debugfs_prev_dbg_uid2_open fndecl 0 45072 NULL
142292 +disable_so_cmd_attr_register_cpumask_fndecl_45074 cmd_attr_register_cpumask fndecl 0 45074 NULL
142293 +disable_so_hdspm_get_aes_sample_rate_fndecl_45076 hdspm_get_aes_sample_rate fndecl 2 45076 NULL
142294 +disable_so_set_magic_time_fndecl_45079 set_magic_time fndecl 3-2-1 45079 NULL
142295 +disable_so_pci_bus_alloc_from_region_fndecl_45084 pci_bus_alloc_from_region fndecl 5-3-4 45084 NULL
142296 +disable_so_set_pending_timer_val_fndecl_45111 set_pending_timer_val fndecl 2 45111 NULL
142297 +disable_so_i_ctime_nsec_f2fs_inode_45121 i_ctime_nsec f2fs_inode 0 45121 NULL nohasharray
142298 +disable_so_s_mtime_ext3_super_block_45121 s_mtime ext3_super_block 0 45121 &disable_so_i_ctime_nsec_f2fs_inode_45121
142299 +disable_so_inet_csk_reset_keepalive_timer_fndecl_45127 inet_csk_reset_keepalive_timer fndecl 2 45127 NULL
142300 +disable_so_x25_addr_ntoa_fndecl_45136 x25_addr_ntoa fndecl 0 45136 NULL
142301 +disable_so_ltimeout_ia_vcc_45137 ltimeout ia_vcc 0 45137 NULL
142302 +disable_so_high_addr_msgbuf_buf_addr_45142 high_addr msgbuf_buf_addr 0 45142 NULL
142303 +disable_so_pit_calibrate_tsc_fndecl_45149 pit_calibrate_tsc fndecl 0-2 45149 NULL
142304 +disable_so_fw_dma_addr_sproc_45154 fw_dma_addr sproc 0 45154 NULL
142305 +disable_so_addr_lola_bar_45160 addr lola_bar 0 45160 NULL
142306 +disable_so_set_normalized_timespec_fndecl_45161 set_normalized_timespec fndecl 2-3 45161 NULL
142307 +disable_so_lp8788_show_eoc_time_fndecl_45162 lp8788_show_eoc_time fndecl 0 45162 NULL
142308 +disable_so_set_ageing_time_fndecl_45172 set_ageing_time fndecl 2 45172 NULL
142309 +disable_so_address_radio_regs_45181 address radio_regs 0 45181 NULL
142310 +disable_so_do_set_sock_timeout_fndecl_45197 do_set_sock_timeout fndecl 0-5 45197 NULL
142311 +disable_so_bootaddr_mic_device_45198 bootaddr mic_device 0 45198 NULL
142312 +disable_so_ext4_max_bitmap_size_fndecl_45201 ext4_max_bitmap_size fndecl 0-1 45201 NULL
142313 +disable_so_rapl_compute_time_window_atom_fndecl_45202 rapl_compute_time_window_atom fndecl 0-2 45202 NULL
142314 +disable_so_di_atime_nsec_gfs2_dinode_45214 di_atime_nsec gfs2_dinode 0 45214 NULL
142315 +disable_so_watchdog_get_timeout_fndecl_45215 watchdog_get_timeout fndecl 0 45215 NULL
142316 +disable_so_undertime_tc_cbq_xstats_45217 undertime tc_cbq_xstats 0 45217 NULL
142317 +disable_so_trace_clock_fndecl_45219 trace_clock fndecl 0 45219 NULL
142318 +disable_so_usb_bulk_msg_fndecl_45230 usb_bulk_msg fndecl 0-4-2-6 45230 NULL
142319 +disable_so_clock_es1968_45231 clock es1968 0 45231 NULL
142320 +disable_so_fillvaddr_gru_tlb_fault_handle_45245 fillvaddr gru_tlb_fault_handle 0 45245 NULL
142321 +disable_so_blocksize_crypto_report_blkcipher_45248 blocksize crypto_report_blkcipher 0 45248 NULL
142322 +disable_so_cdc_ncm_store_tx_timer_usecs_fndecl_45252 cdc_ncm_store_tx_timer_usecs fndecl 0-4 45252 NULL
142323 +disable_so_uv_nmi_loop_delay_vardecl_uv_nmi_c_45253 uv_nmi_loop_delay vardecl_uv_nmi.c 0 45253 NULL
142324 +disable_so_default_timer_slack_ns_task_struct_45261 default_timer_slack_ns task_struct 0 45261 NULL
142325 +disable_so_tsc_offset_adjustment_kvm_vcpu_arch_45263 tsc_offset_adjustment kvm_vcpu_arch 0 45263 NULL
142326 +disable_so_bf_buf_addr_ath_buf_45279 bf_buf_addr ath_buf 0 45279 NULL
142327 +disable_so_xen_clocksource_read_fndecl_45285 xen_clocksource_read fndecl 0 45285 NULL
142328 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_fndecl_45292 iscsi_nacl_attrib_store_dataout_timeout fndecl 0-3 45292 NULL
142329 +disable_so_r8_kvm_regs_45295 r8 kvm_regs 0 45295 NULL
142330 +disable_so_w1_master_attribute_show_timeout_fndecl_45297 w1_master_attribute_show_timeout fndecl 0 45297 NULL
142331 +disable_so_uuid_show_fallback_fndecl_45299 uuid_show_fallback fndecl 0 45299 NULL
142332 +disable_so_nv04_timer_read_fndecl_45300 nv04_timer_read fndecl 0 45300 NULL
142333 +disable_so_write_port_cfg_addr_mvs_dispatch_45302 write_port_cfg_addr mvs_dispatch 2 45302 NULL
142334 +disable_so_ixgbevf_check_for_bit_vf_fndecl_45303 ixgbevf_check_for_bit_vf fndecl 2 45303 NULL
142335 +disable_so_radio_syn_reserved_addr29_b43_nphy_channeltab_entry_rev3_45310 radio_syn_reserved_addr29 b43_nphy_channeltab_entry_rev3 0 45310 NULL
142336 +disable_so_blkcipher_walk_first_fndecl_45312 blkcipher_walk_first fndecl 0 45312 NULL
142337 +disable_so_add_interrupt_randomness_fndecl_45315 add_interrupt_randomness fndecl 1-2 45315 NULL
142338 +disable_so_lg2160_set_spi_clock_fndecl_45319 lg2160_set_spi_clock fndecl 0 45319 NULL
142339 +disable_so_scaled_div32_fndecl_45321 scaled_div32 fndecl 0-1-2 45321 NULL
142340 +disable_so_spkt_protocol_sockaddr_pkt_45330 spkt_protocol sockaddr_pkt 0 45330 NULL
142341 +disable_so_drain_timeout_xenvif_45332 drain_timeout xenvif 0 45332 NULL
142342 +disable_so_sysctl_tcp_fin_timeout_vardecl_45335 sysctl_tcp_fin_timeout vardecl 0 45335 NULL
142343 +disable_so_dlm_dump_rsb_hash_fndecl_45352 dlm_dump_rsb_hash fndecl 2 45352 NULL
142344 +disable_so_get_idle_time_fndecl_45358 get_idle_time fndecl 1-0 45358 NULL
142345 +disable_so_demod_address_ves1x93_config_45359 demod_address ves1x93_config 0 45359 NULL
142346 +disable_so_hid_sensor_write_samp_freq_value_fndecl_45374 hid_sensor_write_samp_freq_value fndecl 2-3 45374 NULL
142347 +disable_so_tuner_addr_saa7134_dev_45377 tuner_addr saa7134_dev 0 45377 NULL
142348 +disable_so_index_ptp_clock_45382 index ptp_clock 0 45382 NULL
142349 +disable_so_rbd_dev_v2_header_onetime_fndecl_45386 rbd_dev_v2_header_onetime fndecl 0 45386 NULL
142350 +disable_so_xfs_btree_make_block_unfull_fndecl_45388 xfs_btree_make_block_unfull fndecl 3-0 45388 NULL
142351 +disable_so_crypto_shash_setkey_fndecl_45392 crypto_shash_setkey fndecl 0-3 45392 NULL
142352 +disable_so_seq_devkmsg_user_45410 seq devkmsg_user 0 45410 NULL
142353 +disable_so_ad799x_read_frequency_fndecl_45414 ad799x_read_frequency fndecl 0 45414 NULL
142354 +disable_so_gid_ceph_mds_reply_inode_45416 gid ceph_mds_reply_inode 0 45416 NULL
142355 +disable_so_zl10036_set_frequency_fndecl_45420 zl10036_set_frequency fndecl 2 45420 NULL
142356 +disable_so_backlight_duty_cycle_drm_psb_private_45424 backlight_duty_cycle drm_psb_private 0 45424 NULL
142357 +disable_so_devm_kvasprintf_fndecl_45431 devm_kvasprintf fndecl 2 45431 NULL
142358 +disable_so_nvif_object_wr_fndecl_45438 nvif_object_wr fndecl 4-3 45438 NULL
142359 +disable_so_expires_rpc_timer_45444 expires rpc_timer 0 45444 NULL
142360 +disable_so_resource_address_pmcraid_config_table_entry_45452 resource_address pmcraid_config_table_entry 0 45452 NULL nohasharray
142361 +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
142362 +disable_so_dev_addr_c67x00_td_45452 dev_addr c67x00_td 0 45452 &disable_so_timer_active_bfa_fcdiag_qtest_s_45452
142363 +disable_so_asd_write_reg_word_fndecl_45465 asd_write_reg_word fndecl 2-3 45465 NULL
142364 +disable_so_time_started_btrfs_dev_replace_45480 time_started btrfs_dev_replace 0 45480 NULL
142365 +disable_so_btrfs_add_delayed_tree_ref_fndecl_45481 btrfs_add_delayed_tree_ref fndecl 0-10-3-4-5-6-7 45481 NULL
142366 +disable_so_i2c_addr_fc2580_config_45482 i2c_addr fc2580_config 0 45482 NULL
142367 +disable_so_device_missing_delay__MPT_ADAPTER_45485 device_missing_delay _MPT_ADAPTER 0 45485 NULL
142368 +disable_so_pdiv_skl_wrpll_params_45498 pdiv skl_wrpll_params 0 45498 NULL
142369 +disable_so_fast_RR_timeout_irlap_cb_45499 fast_RR_timeout irlap_cb 0 45499 NULL
142370 +disable_so_usb_control_msg_fndecl_45507 usb_control_msg fndecl 8-0-2-9-5-4-6-3 45507 NULL
142371 +disable_so_cpu_to_vhost16_fndecl_45510 cpu_to_vhost16 fndecl 2 45510 NULL
142372 +disable_so_vma_interval_tree_compute_subtree_last_fndecl_45515 vma_interval_tree_compute_subtree_last fndecl 0 45515 NULL
142373 +disable_so_paddr_mwifiex_evt_buf_desc_45527 paddr mwifiex_evt_buf_desc 0 45527 NULL nohasharray
142374 +disable_so_saddr_lap_cb_45527 saddr lap_cb 0 45527 &disable_so_paddr_mwifiex_evt_buf_desc_45527
142375 +disable_so_nilfs_btree_find_target_v_fndecl_45528 nilfs_btree_find_target_v fndecl 0-3 45528 NULL
142376 +disable_so_pagf_btreeblks_xfs_perag_45534 pagf_btreeblks xfs_perag 0 45534 NULL
142377 +disable_so_reestablish_timeout_rpc_xprt_45538 reestablish_timeout rpc_xprt 0 45538 NULL
142378 +disable_so_show_falltime_fndecl_45545 show_falltime fndecl 0 45545 NULL
142379 +disable_so_tl_time_tcon_link_45553 tl_time tcon_link 0 45553 NULL nohasharray
142380 +disable_so_address_ips_sglist_45553 address ips_sglist 0 45553 &disable_so_tl_time_tcon_link_45553
142381 +disable_so_phy_address_bcmgenet_platform_data_45558 phy_address bcmgenet_platform_data 0 45558 NULL
142382 +disable_so_seq_kern_ipc_perm_45559 seq kern_ipc_perm 0 45559 NULL
142383 +disable_so_verify_cpufreq_driver_45564 verify cpufreq_driver 0 45564 NULL
142384 +disable_so_mcp795_set_time_fndecl_45573 mcp795_set_time fndecl 0 45573 NULL
142385 +disable_so_sw_beacon_response_time_ath9k_ops_config_45576 sw_beacon_response_time ath9k_ops_config 0 45576 NULL
142386 +disable_so_postsleep_min_us_mmc_ioc_cmd_45584 postsleep_min_us mmc_ioc_cmd 0 45584 NULL
142387 +disable_so_write_reg_c_can_priv_45594 write_reg c_can_priv 3 45594 NULL
142388 +disable_so_first_frag_time_prism2_frag_entry_45596 first_frag_time prism2_frag_entry 0 45596 NULL
142389 +disable_so_rsa_init_fndecl_45605 rsa_init fndecl 0 45605 NULL
142390 +disable_so_laddr_c2wr_ae_active_connect_results_45607 laddr c2wr_ae_active_connect_results 0 45607 NULL nohasharray
142391 +disable_so_base_kvm_mtrr_range_45607 base kvm_mtrr_range 0 45607 &disable_so_laddr_c2wr_ae_active_connect_results_45607
142392 +disable_so_readfreq_si476x_rsq_status_report_45610 readfreq si476x_rsq_status_report 0 45610 NULL
142393 +disable_so_gss_krb5_aes_encrypt_fndecl_45613 gss_krb5_aes_encrypt fndecl 0-2 45613 NULL
142394 +disable_so_igmp_ifc_start_timer_fndecl_45616 igmp_ifc_start_timer fndecl 2 45616 NULL
142395 +disable_so_usb_addr_u132_endp_45622 usb_addr u132_endp 0 45622 NULL
142396 +disable_so_manage_tempaddrs_fndecl_45628 manage_tempaddrs fndecl 3-4-6 45628 NULL
142397 +disable_so_win_mask_latch_addr_flash_info_45634 win_mask latch_addr_flash_info 0 45634 NULL
142398 +disable_so_tx_delay_rk_priv_data_45645 tx_delay rk_priv_data 0 45645 NULL
142399 +disable_so_addr_high_viafb_vx855_dma_descr_45656 addr_high viafb_vx855_dma_descr 0 45656 NULL
142400 +disable_so_snd_asihpi_tuner_freq_info_fndecl_45664 snd_asihpi_tuner_freq_info fndecl 0 45664 NULL
142401 +disable_so_spt_assoc_id_sctp_paddrthlds_45665 spt_assoc_id sctp_paddrthlds 0 45665 NULL
142402 +disable_so_xtfpga_i2s_runtime_resume_fndecl_45670 xtfpga_i2s_runtime_resume fndecl 0 45670 NULL
142403 +disable_so_T44_address_mxt_data_45677 T44_address mxt_data 0 45677 NULL
142404 +disable_so_crypto_cbc_encrypt_fndecl_45683 crypto_cbc_encrypt fndecl 0-4 45683 NULL
142405 +disable_so_clockrate_ath_common_45695 clockrate ath_common 0 45695 NULL
142406 +disable_so_wakeup_timer_p54_common_45703 wakeup_timer p54_common 0 45703 NULL
142407 +disable_so_regulator_set_voltage_time_fndecl_45707 regulator_set_voltage_time fndecl 0 45707 NULL
142408 +disable_so_i2c_addr_isl6405_45720 i2c_addr isl6405 0 45720 NULL
142409 +disable_so_allocate_va_range_i915_address_space_45728 allocate_va_range i915_address_space 2-3 45728 NULL
142410 +disable_so_lx_interrupt_test_ack_fndecl_45736 lx_interrupt_test_ack fndecl 0 45736 NULL
142411 +disable_so_set_msr_mce_fndecl_45738 set_msr_mce fndecl 3 45738 NULL
142412 +disable_so_ircomm_tty_start_watchdog_timer_fndecl_45741 ircomm_tty_start_watchdog_timer fndecl 2 45741 NULL
142413 +disable_so_mount_time_nfs_server_45742 mount_time nfs_server 0 45742 NULL
142414 +disable_so_padata_cpu_hash_fndecl_45743 padata_cpu_hash fndecl 0 45743 NULL
142415 +disable_so_mtime_sec_ubifs_ino_node_45747 mtime_sec ubifs_ino_node 0 45747 NULL nohasharray
142416 +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
142417 +disable_so_set_static_address_fndecl_45752 set_static_address fndecl 0 45752 NULL
142418 +disable_so_cmos_interrupt_fndecl_45753 cmos_interrupt fndecl 1 45753 NULL
142419 +disable_so_addr_buffer_rcv_desc_45761 addr_buffer rcv_desc 0 45761 NULL
142420 +disable_so_leddc_off_time_ssb_sprom_45764 leddc_off_time ssb_sprom 0 45764 NULL
142421 +disable_so_ext4_page_crypto_fndecl_45770 ext4_page_crypto fndecl 4 45770 NULL
142422 +disable_so_dqb_itime_if_dqblk_45773 dqb_itime if_dqblk 0 45773 NULL
142423 +disable_so_addr_nvme_user_io_45777 addr nvme_user_io 0 45777 NULL
142424 +disable_so_split_timeout_jiffies_fw_card_45779 split_timeout_jiffies fw_card 0 45779 NULL
142425 +disable_so_buf_addr_mlx4_ib_create_qp_45781 buf_addr mlx4_ib_create_qp 0 45781 NULL
142426 +disable_so_dax_get_addr_fndecl_45788 dax_get_addr fndecl 0-3 45788 NULL
142427 +disable_so_select_addr_qla8044_minidump_entry_pollrd_45815 select_addr qla8044_minidump_entry_pollrd 0 45815 NULL nohasharray
142428 +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
142429 +disable_so_hwt_wait_time_fndecl_45826 hwt_wait_time fndecl 2 45826 NULL
142430 +disable_so_j_timestamp_reiserfs_journal_list_45839 j_timestamp reiserfs_journal_list 0 45839 NULL
142431 +disable_so_kxcjk1013_setup_new_data_interrupt_fndecl_45841 kxcjk1013_setup_new_data_interrupt fndecl 0 45841 NULL
142432 +disable_so_c2_add_addr_fndecl_45842 c2_add_addr fndecl 2-3 45842 NULL
142433 +disable_so_saddr_ip_tunnel_dst_45850 saddr ip_tunnel_dst 0 45850 NULL
142434 +disable_so_timeout_cdrom_generic_command_45854 timeout cdrom_generic_command 0 45854 NULL
142435 +disable_so_tdm_delay_aic3x_priv_45859 tdm_delay aic3x_priv 0 45859 NULL
142436 +disable_so_toshiba_usb_sleep_charge_get_fndecl_45863 toshiba_usb_sleep_charge_get fndecl 0 45863 NULL
142437 +disable_so_acpi_subsys_runtime_resume_fndecl_45871 acpi_subsys_runtime_resume fndecl 0 45871 NULL
142438 +disable_so_azx_command_addr_fndecl_45877 azx_command_addr fndecl 0-1 45877 NULL
142439 +disable_so_node_guid_ib_device_45878 node_guid ib_device 0 45878 NULL
142440 +disable_so_time_unit_rapl_package_45880 time_unit rapl_package 0 45880 NULL
142441 +disable_so_bw_timer_intel_dsi_45883 bw_timer intel_dsi 0 45883 NULL nohasharray
142442 +disable_so_sys_signalfd4_fndecl_45883 sys_signalfd4 fndecl 4 45883 &disable_so_bw_timer_intel_dsi_45883
142443 +disable_so_addr_st_ss_sgitem_45905 addr st_ss_sgitem 0 45905 NULL
142444 +disable_so_setlightfreq_fndecl_45914 setlightfreq fndecl 2 45914 NULL
142445 +disable_so_sis_ata33_program_udma_timings_fndecl_45916 sis_ata33_program_udma_timings fndecl 2 45916 NULL nohasharray
142446 +disable_so_str2hashbuf_fndecl_45916 str2hashbuf fndecl 2 45916 &disable_so_sis_ata33_program_udma_timings_fndecl_45916
142447 +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
142448 +disable_so_dbm_antsignal_hostap_radiotap_rx_45933 dbm_antsignal hostap_radiotap_rx 0 45933 NULL
142449 +disable_so_time_s5m_rtc_reg_config_45934 time s5m_rtc_reg_config 0 45934 NULL
142450 +disable_so_gro_flush_timeout_show_fndecl_45944 gro_flush_timeout_show fndecl 0 45944 NULL
142451 +disable_so_suid_dumpable_vardecl_45948 suid_dumpable vardecl 0 45948 NULL
142452 +disable_so_sel_addr___pollrd_45957 sel_addr __pollrd 0 45957 NULL
142453 +disable_so_st_atime_nsec_stat_45960 st_atime_nsec stat 0 45960 NULL
142454 +disable_so_mb862xx_i2c_do_address_fndecl_45962 mb862xx_i2c_do_address fndecl 2 45962 NULL nohasharray
142455 +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
142456 +disable_so_last_rx_signal_sta_info_45967 last_rx_signal sta_info 0 45967 NULL
142457 +disable_so_current_frequency_lgdt330x_state_45968 current_frequency lgdt330x_state 0 45968 NULL
142458 +disable_so_gpu_addr_radeon_semaphore_45975 gpu_addr radeon_semaphore 0 45975 NULL
142459 +disable_so_hello_time_net_bridge_45982 hello_time net_bridge 0 45982 NULL
142460 +disable_so_suspend_time_ipw2100_priv_45995 suspend_time ipw2100_priv 0 45995 NULL
142461 +disable_so_mtime_nsec_ubifs_ino_node_46001 mtime_nsec ubifs_ino_node 0 46001 NULL
142462 +disable_so_group_cipher_suite_atmel_private_46009 group_cipher_suite atmel_private 0 46009 NULL
142463 +disable_so_fw_hash_fndecl_46017 fw_hash fndecl 0-1 46017 NULL
142464 +disable_so_dualwatch_jiffies_cx18_46022 dualwatch_jiffies cx18 0 46022 NULL nohasharray
142465 +disable_so_ufs_set_inode_gid_fndecl_46022 ufs_set_inode_gid fndecl 3 46022 &disable_so_dualwatch_jiffies_cx18_46022
142466 +disable_so_hw_ptr_snd_rawmidi_runtime_46024 hw_ptr snd_rawmidi_runtime 0 46024 NULL
142467 +disable_so_erst_exec_set_dst_address_base_fndecl_46025 erst_exec_set_dst_address_base fndecl 0 46025 NULL
142468 +disable_so_port_expander_addr_mxl111sf_state_46026 port_expander_addr mxl111sf_state 0 46026 NULL
142469 +disable_so_tea5764_set_freq_fndecl_46030 tea5764_set_freq fndecl 2 46030 NULL
142470 +disable_so_timestamp_nfs4_delegreturndata_46035 timestamp nfs4_delegreturndata 0 46035 NULL
142471 +disable_so_crypto_blkcipher_encrypt_fndecl_46038 crypto_blkcipher_encrypt fndecl 0-4 46038 NULL
142472 +disable_so_sd_set_timing_fndecl_46047 sd_set_timing fndecl 0 46047 NULL
142473 +disable_so_eflags_user_regs_struct32_46056 eflags user_regs_struct32 0 46056 NULL nohasharray
142474 +disable_so_set_wqe_64bit_value_fndecl_46056 set_wqe_64bit_value fndecl 3 46056 &disable_so_eflags_user_regs_struct32_46056
142475 +disable_so_crypto_cbc_encrypt_segment_fndecl_46064 crypto_cbc_encrypt_segment fndecl 0 46064 NULL
142476 +disable_so_f_bavail_kstatfs_46066 f_bavail kstatfs 0 46066 NULL
142477 +disable_so_inet6_dump_ifacaddr_fndecl_46071 inet6_dump_ifacaddr fndecl 0 46071 NULL
142478 +disable_so_dma_addr_ipw_rx_mem_buffer_46073 dma_addr ipw_rx_mem_buffer 0 46073 NULL
142479 +disable_so_rfkill_last_scheduled_vardecl_input_c_46074 rfkill_last_scheduled vardecl_input.c 0 46074 NULL
142480 +disable_so_dma_addr_ntb_transport_mw_46085 dma_addr ntb_transport_mw 0 46085 NULL
142481 +disable_so_qce_ahash_init_fndecl_46087 qce_ahash_init fndecl 0 46087 NULL
142482 +disable_so_lambda_fll_div_46091 lambda fll_div 0 46091 NULL
142483 +disable_so_amd_iommu_enable_interrupts_fndecl_46110 amd_iommu_enable_interrupts fndecl 0 46110 NULL
142484 +disable_so_pineview_clock_fndecl_46122 pineview_clock fndecl 1 46122 NULL
142485 +disable_so_aes_set_key_common_fndecl_46123 aes_set_key_common fndecl 0-4 46123 NULL
142486 +disable_so_max_dwell_time_active_long_conf_scan_settings_46124 max_dwell_time_active_long conf_scan_settings 0 46124 NULL nohasharray
142487 +disable_so_clock_khz_sym_hcb_46124 clock_khz sym_hcb 0 46124 &disable_so_max_dwell_time_active_long_conf_scan_settings_46124
142488 +disable_so_mrp_periodic_time_vardecl_mrp_c_46127 mrp_periodic_time vardecl_mrp.c 0 46127 NULL
142489 +disable_so_mlx5_query_hca_vport_node_guid_fndecl_46128 mlx5_query_hca_vport_node_guid fndecl 0 46128 NULL
142490 +disable_so_xfs_kgid_to_gid_fndecl_46136 xfs_kgid_to_gid fndecl 0 46136 NULL
142491 +disable_so_ata_msleep_fndecl_46137 ata_msleep fndecl 2 46137 NULL
142492 +disable_so_ccp_sha_init_fndecl_46144 ccp_sha_init fndecl 0 46144 NULL
142493 +disable_so___mv88e6xxx_write_addr_fndecl_46145 __mv88e6xxx_write_addr fndecl 0 46145 NULL
142494 +disable_so_wdt_set_time_fndecl_46151 wdt_set_time fndecl 1-0 46151 NULL
142495 +disable_so_first_above_time_codel_vars_46152 first_above_time codel_vars 0 46152 NULL
142496 +disable_so_extclk_freq_max8649_platform_data_46157 extclk_freq max8649_platform_data 0 46157 NULL
142497 +disable_so_init_clocksource_sysfs_fndecl_46161 init_clocksource_sysfs fndecl 0 46161 NULL
142498 +disable_so_escape_clk_div_intel_dsi_46167 escape_clk_div intel_dsi 0 46167 NULL
142499 +disable_so_l2cap_sock_get_sndtimeo_cb_fndecl_46168 l2cap_sock_get_sndtimeo_cb fndecl 0 46168 NULL
142500 +disable_so_ebx_tss_segment_32_46181 ebx tss_segment_32 0 46181 NULL
142501 +disable_so_freq_in_rule_band_fndecl_46182 freq_in_rule_band fndecl 2 46182 NULL
142502 +disable_so_get_signal_to_noise_fndecl_46189 get_signal_to_noise fndecl 0 46189 NULL
142503 +disable_so_bitmap_parse_user_fndecl_46193 bitmap_parse_user fndecl 0-2-4 46193 NULL
142504 +disable_so_queue_delayed_work_fndecl_46205 queue_delayed_work fndecl 3 46205 NULL
142505 +disable_so_phy_addr_adf_admin_comms_46206 phy_addr adf_admin_comms 0 46206 NULL nohasharray
142506 +disable_so_hblank_lo_detailed_pixel_timing_46206 hblank_lo detailed_pixel_timing 0 46206 &disable_so_phy_addr_adf_admin_comms_46206
142507 +disable_so_delay_time_NvRamType_46210 delay_time NvRamType 0 46210 NULL
142508 +disable_so_subtree_max_end_memtype_46217 subtree_max_end memtype 0 46217 NULL
142509 +disable_so_i_gid_ext3_inode_46225 i_gid ext3_inode 0 46225 NULL
142510 +disable_so_dma_addr_rx_sw_desc_46234 dma_addr rx_sw_desc 0 46234 NULL
142511 +disable_so_smsc_phy_ack_interrupt_fndecl_46236 smsc_phy_ack_interrupt fndecl 0 46236 NULL
142512 +disable_so_crypto_ctr_setkey_fndecl_46238 crypto_ctr_setkey fndecl 0-3 46238 NULL
142513 +disable_so_ap_beacon_time_iwl_mvm_vif_46241 ap_beacon_time iwl_mvm_vif 0 46241 NULL
142514 +disable_so_phy_addr_base_niu_phy_template_46243 phy_addr_base niu_phy_template 0 46243 NULL
142515 +disable_so_dev_getbyhwaddr_rcu_fndecl_46248 dev_getbyhwaddr_rcu fndecl 2 46248 NULL
142516 +disable_so_delay_time_vardecl_pcnet_cs_c_46250 delay_time vardecl_pcnet_cs.c 0 46250 NULL
142517 +disable_so_from_hash_fndecl_46264 from_hash fndecl 0-1 46264 NULL
142518 +disable_so_lapic_timer_frequency_vardecl_46265 lapic_timer_frequency vardecl 0 46265 NULL
142519 +disable_so_cs35l32_runtime_resume_fndecl_46274 cs35l32_runtime_resume fndecl 0 46274 NULL
142520 +disable_so_clock_high_l3_pins_46276 clock_high l3_pins 0 46276 NULL
142521 +disable_so_snd_opl3_timer2_init_fndecl_46281 snd_opl3_timer2_init fndecl 0-2 46281 NULL
142522 +disable_so_demod_address_mb86a16_config_46282 demod_address mb86a16_config 0 46282 NULL
142523 +disable_so_atime_fuse_attr_46283 atime fuse_attr 0 46283 NULL
142524 +disable_so_blink_time_wm831x_status_46292 blink_time wm831x_status 0 46292 NULL
142525 +disable_so_dm_btree_insert_notify_fndecl_46297 dm_btree_insert_notify fndecl 0-2 46297 NULL
142526 +disable_so__rtl92c_signal_scale_mapping_fndecl_46298 _rtl92c_signal_scale_mapping fndecl 0-2 46298 NULL
142527 +disable_so_usb_port_runtime_suspend_fndecl_46299 usb_port_runtime_suspend fndecl 0 46299 NULL
142528 +disable_so___bitmap_start_sync_fndecl_46300 __bitmap_start_sync fndecl 2-4 46300 NULL
142529 +disable_so_ep_timeout_secs_vardecl_cm_c_46302 ep_timeout_secs vardecl_cm.c 0 46302 NULL
142530 +disable_so_prop_seg_can_bittiming_46312 prop_seg can_bittiming 0 46312 NULL
142531 +disable_so_signalstrength_rtl_stats_46320 signalstrength rtl_stats 0 46320 NULL
142532 +disable_so_xpc_hb_check_timeout_vardecl_xpc_main_c_46327 xpc_hb_check_timeout vardecl_xpc_main.c 0 46327 NULL
142533 +disable_so_creation_time_se_dev_entry_46338 creation_time se_dev_entry 0 46338 NULL
142534 +disable_so_ene_set_tx_duty_cycle_fndecl_46344 ene_set_tx_duty_cycle fndecl 2 46344 NULL
142535 +disable_so_atimensec_fuse_setattr_in_46351 atimensec fuse_setattr_in 0 46351 NULL
142536 +disable_so_ip_mce_46362 ip mce 0 46362 NULL
142537 +disable_so_ntfs_bitmap_clear_run_fndecl_46364 ntfs_bitmap_clear_run fndecl 2-3 46364 NULL
142538 +disable_so_ds1286_read_time_fndecl_46365 ds1286_read_time fndecl 0 46365 NULL
142539 +disable_so_sd_uid_stat_data_v1_46367 sd_uid stat_data_v1 0 46367 NULL
142540 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_fndecl_46369 bfa_fcs_lport_ns_sm_gid_ft fndecl 2 46369 NULL
142541 +disable_so_address_usb_ep_46374 address usb_ep 0 46374 NULL
142542 +disable_so_txctl_measured_time_b43_txpower_lo_control_46377 txctl_measured_time b43_txpower_lo_control 0 46377 NULL
142543 +disable_so_gru_start_paddr_vardecl_46378 gru_start_paddr vardecl 0 46378 NULL
142544 +disable_so_second_timestamp_46379 second timestamp 0 46379 NULL
142545 +disable_so_code_acpi_signal_fatal_info_46389 code acpi_signal_fatal_info 0 46389 NULL
142546 +disable_so_cpu_hrtimer_cpu_base_46390 cpu hrtimer_cpu_base 0 46390 NULL
142547 +disable_so_bcma_chipco_watchdog_timer_set_wdt_fndecl_46396 bcma_chipco_watchdog_timer_set_wdt fndecl 2-0 46396 NULL
142548 +disable_so_check_intr_schedule_fndecl_46403 check_intr_schedule fndecl 2-3-0 46403 NULL
142549 +disable_so_start_mtrr_iter_46427 start mtrr_iter 0 46427 NULL
142550 +disable_so_cp_hqd_pq_wptr_poll_addr_hqd_registers_46430 cp_hqd_pq_wptr_poll_addr hqd_registers 0 46430 NULL
142551 +disable_so_irlap_start_final_timer_fndecl_46431 irlap_start_final_timer fndecl 2 46431 NULL
142552 +disable_so_tuner_pll_address_budget_ci_46436 tuner_pll_address budget_ci 0 46436 NULL
142553 +disable_so_mmc35240_get_samp_freq_index_fndecl_46439 mmc35240_get_samp_freq_index fndecl 0 46439 NULL
142554 +disable_so_addr_qat_alg_buf_46445 addr qat_alg_buf 0 46445 NULL
142555 +disable_so_set_ifa_lifetime_fndecl_46447 set_ifa_lifetime fndecl 3-2 46447 NULL
142556 +disable_so_crypto_authenc_module_init_fndecl_46455 crypto_authenc_module_init fndecl 0 46455 NULL
142557 +disable_so_start_fw_address_region_46456 start fw_address_region 0 46456 NULL
142558 +disable_so_snd_seq_queue_timer_open_fndecl_46460 snd_seq_queue_timer_open fndecl 1 46460 NULL
142559 +disable_so_rt_mutex_lock_interruptible_fndecl_46473 rt_mutex_lock_interruptible fndecl 0 46473 NULL
142560 +disable_so_link_set_timer_fndecl_46475 link_set_timer fndecl 2 46475 NULL
142561 +disable_so_pci_bus_check_dev_fndecl_46486 pci_bus_check_dev fndecl 2 46486 NULL
142562 +disable_so_header_dma_addr_tso_state_46489 header_dma_addr tso_state 0 46489 NULL
142563 +disable_so_get_frequency_dvb_tuner_ops_46496 get_frequency dvb_tuner_ops 0 46496 NULL
142564 +disable_so_eth_prepare_mac_addr_change_fndecl_46501 eth_prepare_mac_addr_change fndecl 0 46501 NULL
142565 +disable_so_nfs_direct_write_schedule_iovec_fndecl_46504 nfs_direct_write_schedule_iovec fndecl 0-3 46504 NULL
142566 +disable_so_sib_sid_mask_sockaddr_ib_46511 sib_sid_mask sockaddr_ib 0 46511 NULL
142567 +disable_so_gc_upcall_timestamp_gss_cred_46522 gc_upcall_timestamp gss_cred 0 46522 NULL
142568 +disable_so_zd_iowrite32a_fndecl_46529 zd_iowrite32a fndecl 0-3 46529 NULL
142569 +disable_so_btrfs_delayed_item_reserve_metadata_fndecl_46535 btrfs_delayed_item_reserve_metadata fndecl 0 46535 NULL
142570 +disable_so_qi_btimelimit_xfs_quotainfo_46536 qi_btimelimit xfs_quotainfo 0 46536 NULL
142571 +disable_so_tick_do_timer_cpu_vardecl_46549 tick_do_timer_cpu vardecl 0 46549 NULL
142572 +disable_so_dma_addr_rsxx_cs_buffer_46558 dma_addr rsxx_cs_buffer 0 46558 NULL
142573 +disable_so_niu_set_hash_opts_fndecl_46560 niu_set_hash_opts fndecl 0 46560 NULL
142574 +disable_so_ext_start_addr_i740fb_par_46564 ext_start_addr i740fb_par 0 46564 NULL nohasharray
142575 +disable_so_s5h1420_setfreqoffset_fndecl_46564 s5h1420_setfreqoffset fndecl 2 46564 &disable_so_ext_start_addr_i740fb_par_46564
142576 +disable_so_find_first_zero_bit_fndecl_46567 find_first_zero_bit fndecl 0-2 46567 NULL
142577 +disable_so_ahd_print_register_fndecl_46568 ahd_print_register fndecl 5 46568 NULL
142578 +disable_so_uid_autofs_v5_packet_46569 uid autofs_v5_packet 0 46569 NULL nohasharray
142579 +disable_so_btrfs_find_delayed_ref_head_fndecl_46569 btrfs_find_delayed_ref_head fndecl 2 46569 &disable_so_uid_autofs_v5_packet_46569
142580 +disable_so_beacon_time_stamp_iwl_rx_phy_res_46571 beacon_time_stamp iwl_rx_phy_res 0 46571 NULL
142581 +disable_so_file_update_time_fndecl_46572 file_update_time fndecl 0 46572 NULL nohasharray
142582 +disable_so_mlx4_bitmap_avail_fndecl_46572 mlx4_bitmap_avail fndecl 0 46572 &disable_so_file_update_time_fndecl_46572
142583 +disable_so_lbase_mtrr_value_46577 lbase mtrr_value 0 46577 NULL
142584 +disable_so_frame_bits_snd_pcm_runtime_46580 frame_bits snd_pcm_runtime 0 46580 NULL
142585 +disable_so_mtrr_write_fndecl_46581 mtrr_write fndecl 3 46581 NULL
142586 +disable_so_dm_btree_find_key_fndecl_46584 dm_btree_find_key fndecl 0-2 46584 NULL
142587 +disable_so_timekeeping_set_tai_offset_fndecl_46587 timekeeping_set_tai_offset fndecl 1 46587 NULL
142588 +disable_so_di_tss_segment_16_46594 di tss_segment_16 0 46594 NULL
142589 +disable_so_tda10071_read_signal_strength_fndecl_46598 tda10071_read_signal_strength fndecl 0 46598 NULL
142590 +disable_so___ipv6_addr_diff64_fndecl_46599 __ipv6_addr_diff64 fndecl 0 46599 NULL
142591 +disable_so_ieee80211_runtime_change_iftype_fndecl_46603 ieee80211_runtime_change_iftype fndecl 0 46603 NULL
142592 +disable_so_get_cpu_idle_time_fndecl_46620 get_cpu_idle_time fndecl 1-0 46620 NULL
142593 +disable_so_max6900_i2c_set_time_fndecl_46626 max6900_i2c_set_time fndecl 0 46626 NULL nohasharray
142594 +disable_so_sha1_ctx_mgr_submit_fndecl_46626 sha1_ctx_mgr_submit fndecl 4 46626 &disable_so_max6900_i2c_set_time_fndecl_46626
142595 +disable_so_effective_len_mlx4_bitmap_46628 effective_len mlx4_bitmap 0 46628 NULL
142596 +disable_so_hours_v4l2_timecode_46630 hours v4l2_timecode 0 46630 NULL
142597 +disable_so_vivid_video_s_frequency_fndecl_46635 vivid_video_s_frequency fndecl 0 46635 NULL
142598 +disable_so_rtpm_active_time_show_fndecl_46638 rtpm_active_time_show fndecl 0 46638 NULL
142599 +disable_so___hw_addr_del_fndecl_46652 __hw_addr_del fndecl 0-3 46652 NULL
142600 +disable_so_lp8788_select_buck_vout_addr_fndecl_46658 lp8788_select_buck_vout_addr fndecl 0-2 46658 NULL
142601 +disable_so___flow_hash_from_keys_fndecl_46659 __flow_hash_from_keys fndecl 0 46659 NULL
142602 +disable_so_addrconf_prefix_route_fndecl_46665 addrconf_prefix_route fndecl 2 46665 NULL
142603 +disable_so_bmg160_runtime_resume_fndecl_46671 bmg160_runtime_resume fndecl 0 46671 NULL
142604 +disable_so_msg_ctime_msqid64_ds_46672 msg_ctime msqid64_ds 0 46672 NULL
142605 +disable_so_pvclock_scale_delta_fndecl_46676 pvclock_scale_delta fndecl 0 46676 NULL
142606 +disable_so_rtsx_usb_switch_clock_fndecl_46677 rtsx_usb_switch_clock fndecl 3-2-0 46677 NULL
142607 +disable_so_kstrtouint_fndecl_46682 kstrtouint fndecl 0 46682 NULL
142608 +disable_so_read_addr_qla82xx_md_entry_queue_46684 read_addr qla82xx_md_entry_queue 0 46684 NULL
142609 +disable_so_depth_blk_align_bitmap_46713 depth blk_align_bitmap 0 46713 NULL
142610 +disable_so_sysctl_aarp_resolve_time_vardecl_46714 sysctl_aarp_resolve_time vardecl 0 46714 NULL nohasharray
142611 +disable_so_zd_iowrite16_locked_fndecl_46714 zd_iowrite16_locked fndecl 0 46714 &disable_so_sysctl_aarp_resolve_time_vardecl_46714
142612 +disable_so_rio_addr_tsi721_tx_desc_46721 rio_addr tsi721_tx_desc 0 46721 NULL
142613 +disable_so_addr_mv_sg_46722 addr mv_sg 0 46722 NULL
142614 +disable_so_plat_get_static_power_cpufreq_cooling_device_46723 plat_get_static_power cpufreq_cooling_device 3 46723 NULL
142615 +disable_so_ebitmap_get_bit_fndecl_46726 ebitmap_get_bit fndecl 2 46726 NULL
142616 +disable_so_st_mtime_compat_stat_46734 st_mtime compat_stat 0 46734 NULL
142617 +disable_so_fw_core_add_address_handler_fndecl_46736 fw_core_add_address_handler fndecl 0 46736 NULL
142618 +disable_so_spc_timelimit_qc_type_state_46739 spc_timelimit qc_type_state 0 46739 NULL
142619 +disable_so_tcp_v4_md5_hash_pseudoheader_fndecl_46749 tcp_v4_md5_hash_pseudoheader fndecl 4 46749 NULL
142620 +disable_so_bfa_get_log_time_fndecl_46750 bfa_get_log_time fndecl 0 46750 NULL
142621 +disable_so_ghash_async_final_fndecl_46752 ghash_async_final fndecl 0 46752 NULL
142622 +disable_so_sadb_address_proto_sadb_address_46755 sadb_address_proto sadb_address 0 46755 NULL
142623 +disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763 hard_use_expires_seconds xfrm_lifetime_cfg 0 46763 NULL nohasharray
142624 +disable_so_addrtype_mt_init_fndecl_46763 addrtype_mt_init fndecl 0 46763 &disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763
142625 +disable_so_ipv6_addr_label_init_fndecl_46770 ipv6_addr_label_init fndecl 0 46770 NULL
142626 +disable_so_nbytes_ccp_sha_req_ctx_46772 nbytes ccp_sha_req_ctx 0 46772 NULL
142627 +disable_so_dr_addr_qla4_83xx_quad_entry_46781 dr_addr qla4_83xx_quad_entry 0 46781 NULL
142628 +disable_so_s_csaddr_ufs_sb_private_info_46789 s_csaddr ufs_sb_private_info 0 46789 NULL
142629 +disable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 0 46792 NULL
142630 +disable_so_qce_crypto_driver_init_fndecl_46810 qce_crypto_driver_init fndecl 0 46810 NULL
142631 +disable_so_uuid_tree_generation_btrfs_super_block_46815 uuid_tree_generation btrfs_super_block 0 46815 NULL
142632 +disable_so_panel_pwr_delay_radeon_encoder_lvds_46816 panel_pwr_delay radeon_encoder_lvds 0 46816 NULL
142633 +disable_so_lambda__fll_div_46826 lambda _fll_div 0 46826 NULL
142634 +disable_so_pre_div__pll_div_46827 pre_div _pll_div 0 46827 NULL
142635 +disable_so_paging32_walk_addr_generic_fndecl_46828 paging32_walk_addr_generic fndecl 4-5 46828 NULL
142636 +disable_so_timeout_brcmf_btcoex_info_46840 timeout brcmf_btcoex_info 0 46840 NULL
142637 +disable_so_toshiba_sleep_functions_status_set_fndecl_46848 toshiba_sleep_functions_status_set fndecl 0 46848 NULL
142638 +disable_so_i_gid_exofs_fcb_46849 i_gid exofs_fcb 0 46849 NULL
142639 +disable_so_mounted_uid_compat_ncp_fs_info_v2_46851 mounted_uid compat_ncp_fs_info_v2 0 46851 NULL
142640 +disable_so_ecryptfs_process_key_cipher_fndecl_46863 ecryptfs_process_key_cipher fndecl 0 46863 NULL
142641 +disable_so_tuner_address_stb6100_config_46865 tuner_address stb6100_config 0 46865 NULL
142642 +disable_so_clk_div_ti_tscadc_dev_46872 clk_div ti_tscadc_dev 0 46872 NULL
142643 +disable_so_last_change_time_lpfc_nodelist_46878 last_change_time lpfc_nodelist 0 46878 NULL
142644 +disable_so_addr_mthca_catas_err_46893 addr mthca_catas_err 0 46893 NULL
142645 +disable_so_card_snd_timer_ginfo_46895 card snd_timer_ginfo 0 46895 NULL
142646 +disable_so_svm_set_tsc_khz_fndecl_46900 svm_set_tsc_khz fndecl 2 46900 NULL
142647 +disable_so_buffer_addr_atl1c_tpd_desc_46908 buffer_addr atl1c_tpd_desc 0 46908 NULL
142648 +disable_so_last_expires_snd_timer_system_private_46917 last_expires snd_timer_system_private 0 46917 NULL
142649 +disable_so___arch_hweight16_fndecl_46932 __arch_hweight16 fndecl 0-1 46932 NULL
142650 +disable_so_clockevent_delta2ns_fndecl_46934 clockevent_delta2ns fndecl 1-0 46934 NULL
142651 +disable_so_addr_PVSCSISGElement_46942 addr PVSCSISGElement 0 46942 NULL nohasharray
142652 +disable_so_bg_inode_bitmap_hi_ext4_group_desc_46942 bg_inode_bitmap_hi ext4_group_desc 0 46942 &disable_so_addr_PVSCSISGElement_46942
142653 +disable_so_ai_clkctl_fast_pwrup_delay_fndecl_46950 ai_clkctl_fast_pwrup_delay fndecl 0 46950 NULL
142654 +disable_so_demod_address_mb86a20s_config_46954 demod_address mb86a20s_config 0 46954 NULL
142655 +disable_so_ebitmap_set_bit_fndecl_46955 ebitmap_set_bit fndecl 0-2 46955 NULL
142656 +disable_so_set_eth_addr_fndecl_46958 set_eth_addr fndecl 0 46958 NULL
142657 +disable_so_ghash_async_setkey_fndecl_46962 ghash_async_setkey fndecl 0-3 46962 NULL
142658 +disable_so_hid_time_platform_driver_init_fndecl_46963 hid_time_platform_driver_init fndecl 0 46963 NULL
142659 +disable_so_ad9523_set_clock_provider_fndecl_46979 ad9523_set_clock_provider fndecl 2-0-3 46979 NULL
142660 +disable_so_pbl_addr_tpt_attributes_46980 pbl_addr tpt_attributes 0 46980 NULL
142661 +disable_so_ts_dev_1_peak_time_ref_46981 ts_dev_1 peak_time_ref 0 46981 NULL
142662 +disable_so_buff_phy_addr_amd8111e_rx_dr_46984 buff_phy_addr amd8111e_rx_dr 0 46984 NULL
142663 +disable_so_scan_index_timestamp_iio_dev_46989 scan_index_timestamp iio_dev 0 46989 NULL
142664 +disable_so_ceph_str_hash_linux_fndecl_46991 ceph_str_hash_linux fndecl 0-2 46991 NULL
142665 +disable_so_compq_addr_hi_addr_ctrl_blk_46993 compq_addr_hi addr_ctrl_blk 0 46993 NULL
142666 +disable_so_ctime_sec_ubifs_ino_node_46994 ctime_sec ubifs_ino_node 0 46994 NULL
142667 +disable_so_ring_addr_fe_priv_46998 ring_addr fe_priv 0 46998 NULL
142668 +disable_so_scratch_addr_dwc3_47001 scratch_addr dwc3 0 47001 NULL
142669 +disable_so_be_vf_eth_addr_config_fndecl_47005 be_vf_eth_addr_config fndecl 0 47005 NULL
142670 +disable_so_timeout_pardevice_47010 timeout pardevice 0 47010 NULL
142671 +disable_so_crypto_aes_set_key_fndecl_47018 crypto_aes_set_key fndecl 3 47018 NULL
142672 +disable_so_esp_cur_dma_addr_fndecl_47025 esp_cur_dma_addr fndecl 0 47025 NULL
142673 +disable_so_ba1_addr_snd_cs46xx_47035 ba1_addr snd_cs46xx 0 47035 NULL
142674 +disable_so_decode_bitmap_c_fndecl_47038 decode_bitmap_c fndecl 0-4 47038 NULL
142675 +disable_so_NCR5380_set_timer_fndecl_47039 NCR5380_set_timer fndecl 2 47039 NULL
142676 +disable_so_schedule_copy_fndecl_47040 schedule_copy fndecl 2-4-5-8 47040 NULL
142677 +disable_so_ipath_sdma_abort_jiffies_ipath_devdata_47057 ipath_sdma_abort_jiffies ipath_devdata 0 47057 NULL nohasharray
142678 +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
142679 +disable_so_address_acpi_dmar_hardware_unit_47065 address acpi_dmar_hardware_unit 0 47065 NULL
142680 +disable_so_try_address_fndecl_47083 try_address fndecl 2-3 47083 NULL
142681 +disable_so_mclk_freq_codec_priv_47084 mclk_freq codec_priv 0 47084 NULL
142682 +disable_so_diva_os_get_pci_bus_fndecl_47095 diva_os_get_pci_bus fndecl 0 47095 NULL
142683 +disable_so_shm_atime_shmid64_ds_47100 shm_atime shmid64_ds 0 47100 NULL
142684 +disable_so_tag_reg_addr_qla8044_minidump_entry_cache_47106 tag_reg_addr qla8044_minidump_entry_cache 0 47106 NULL
142685 +disable_so_timestamp_hi_mlx4_ts_cqe_47113 timestamp_hi mlx4_ts_cqe 0 47113 NULL nohasharray
142686 +disable_so_pcap_rtc_read_time_fndecl_47113 pcap_rtc_read_time fndecl 0 47113 &disable_so_timestamp_hi_mlx4_ts_cqe_47113
142687 +disable_so_xircom_interrupt_fndecl_47114 xircom_interrupt fndecl 1 47114 NULL
142688 +disable_so_atombios_crtc_set_base_atomic_fndecl_47122 atombios_crtc_set_base_atomic fndecl 0-3-4 47122 NULL
142689 +disable_so_ath5k_eeprom_init_11a_pcal_freq_fndecl_47134 ath5k_eeprom_init_11a_pcal_freq fndecl 0 47134 NULL
142690 +disable_so_tcs3472_show_int_time_available_fndecl_47135 tcs3472_show_int_time_available fndecl 0 47135 NULL
142691 +disable_so_freq_cx88_core_47137 freq cx88_core 0 47137 NULL
142692 +disable_so_gen6_signal_fndecl_47138 gen6_signal fndecl 0-2 47138 NULL
142693 +disable_so_wlc_lcnphy_rx_signal_power_fndecl_47140 wlc_lcnphy_rx_signal_power fndecl 0 47140 NULL
142694 +disable_so_sq_size_log2_t3_wq_47146 sq_size_log2 t3_wq 0 47146 NULL
142695 +disable_so_rht_head_hashfn_fndecl_47148 rht_head_hashfn fndecl 0 47148 NULL
142696 +disable_so_core_frequency_acpi_processor_px_47149 core_frequency acpi_processor_px 0 47149 NULL
142697 +disable_so_nilfs_btree_do_lookup_last_fndecl_47151 nilfs_btree_do_lookup_last fndecl 0 47151 NULL
142698 +disable_so_last_intr_timestamp_ctlr_info_47154 last_intr_timestamp ctlr_info 0 47154 NULL
142699 +disable_so_curr_freq_rt2x00_dev_47156 curr_freq rt2x00_dev 0 47156 NULL
142700 +disable_so_uid_cf_mod_47160 uid cf_mod 0 47160 NULL
142701 +disable_so_rem_mceusb_dev_47168 rem mceusb_dev 0 47168 NULL
142702 +disable_so_lpphy_qdiv_roundup_fndecl_47185 lpphy_qdiv_roundup fndecl 0-2-1 47185 NULL
142703 +disable_so_start_phys_addr_qxl_memslot_47196 start_phys_addr qxl_memslot 0 47196 NULL
142704 +disable_so_update_ia32_tsc_adjust_msr_fndecl_47211 update_ia32_tsc_adjust_msr fndecl 2 47211 NULL
142705 +disable_so_radeon_atom_set_engine_clock_fndecl_47215 radeon_atom_set_engine_clock fndecl 2 47215 NULL
142706 +disable_so_mtt_base_addr_l_mlx4_qp_context_47232 mtt_base_addr_l mlx4_qp_context 0 47232 NULL
142707 +disable_so_mtt_base_addr_h_mlx4_srq_context_47233 mtt_base_addr_h mlx4_srq_context 0 47233 NULL
142708 +disable_so_init_cpufreq_driver_47242 init cpufreq_driver 0 47242 NULL
142709 +disable_so_gpio_nsleep_auok190x_board_47243 gpio_nsleep auok190x_board 0 47243 NULL
142710 +disable_so_il4965_count_chain_bitmap_fndecl_47252 il4965_count_chain_bitmap fndecl 0-1 47252 NULL
142711 +disable_so_fl_downgrade_time_file_lock_47257 fl_downgrade_time file_lock 0 47257 NULL
142712 +disable_so_get_low_record_time_index_fndecl_47259 get_low_record_time_index fndecl 2 47259 NULL
142713 +disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266 efx_ptp_get_timestamp_corrections fndecl 0 47266 NULL nohasharray
142714 +disable_so_hactive_timing_47266 hactive timing 0 47266 &disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266
142715 +disable_so_feedback_divider_aty128_pll_47275 feedback_divider aty128_pll 0 47275 NULL
142716 +disable_so_daddr_max_pktgen_dev_47293 daddr_max pktgen_dev 0 47293 NULL
142717 +disable_so_addr_ce_desc_47294 addr ce_desc 0 47294 NULL
142718 +disable_so_val_addr0_nphy_rf_control_override_rev3_47315 val_addr0 nphy_rf_control_override_rev3 0 47315 NULL
142719 +disable_so_SYSC_time_fndecl_47318 SYSC_time fndecl 0 47318 NULL
142720 +disable_so_device_addr_hw_cmd_47322 device_addr hw_cmd 0 47322 NULL
142721 +disable_so_cryptd_hash_init_fndecl_47329 cryptd_hash_init fndecl 2 47329 NULL
142722 +disable_so_hpfs_add_sector_to_btree_fndecl_47344 hpfs_add_sector_to_btree fndecl 0-2-4 47344 NULL
142723 +disable_so_vref_delay_usecs_ad7877_47346 vref_delay_usecs ad7877 0 47346 NULL
142724 +disable_so_jiftime_fndecl_47359 jiftime fndecl 2 47359 NULL
142725 +disable_so_year_timestamp_47377 year timestamp 0 47377 NULL
142726 +disable_so_rt_runtime_rt_bandwidth_47380 rt_runtime rt_bandwidth 0 47380 NULL
142727 +disable_so_team_port_set_orig_dev_addr_fndecl_47381 team_port_set_orig_dev_addr fndecl 0 47381 NULL
142728 +disable_so_ldt_selector_tss_segment_32_47382 ldt_selector tss_segment_32 0 47382 NULL
142729 +disable_so_atomic_check_drm_plane_helper_funcs_47383 atomic_check drm_plane_helper_funcs 0 47383 NULL
142730 +disable_so_ath9k_hw_set_global_txtimeout_fndecl_47387 ath9k_hw_set_global_txtimeout fndecl 2 47387 NULL
142731 +disable_so_crypto_blkcipher_setkey_fndecl_47393 crypto_blkcipher_setkey fndecl 0-3 47393 NULL
142732 +disable_so_signal_libipw_rx_stats_47394 signal libipw_rx_stats 0 47394 NULL
142733 +disable_so_wm831x_rtc_readtime_fndecl_47406 wm831x_rtc_readtime fndecl 0 47406 NULL nohasharray
142734 +disable_so_reg_write_fndecl_47406 reg_write fndecl 2 47406 &disable_so_wm831x_rtc_readtime_fndecl_47406
142735 +disable_so_rx_int_delay_e1000_adapter_47412 rx_int_delay e1000_adapter 0 47412 NULL
142736 +disable_so_watchdog_timeo_net_device_47415 watchdog_timeo net_device 0 47415 NULL
142737 +disable_so_m_hi_cfg_bridge_delay_drxk_state_47416 m_hi_cfg_bridge_delay drxk_state 0 47416 NULL
142738 +disable_so_xfs_btree_get_rec_fndecl_47417 xfs_btree_get_rec fndecl 0 47417 NULL
142739 +disable_so_del_timer_fndecl_47421 del_timer fndecl 0 47421 NULL
142740 +disable_so_cq_dma_addr_nvme_queue_47424 cq_dma_addr nvme_queue 0 47424 NULL nohasharray
142741 +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
142742 +disable_so_printk_timed_ratelimit_fndecl_47432 printk_timed_ratelimit fndecl 2 47432 NULL
142743 +disable_so_addr_high_bufq_addr_element_47437 addr_high bufq_addr_element 0 47437 NULL
142744 +disable_so_snd_seq_oss_timer_tempo_fndecl_47444 snd_seq_oss_timer_tempo fndecl 0 47444 NULL
142745 +disable_so_radeon_atom_get_memory_pll_dividers_fndecl_47447 radeon_atom_get_memory_pll_dividers fndecl 0-2 47447 NULL
142746 +disable_so_vdi_atime_vxfs_inode_info_47463 vdi_atime vxfs_inode_info 0 47463 NULL nohasharray
142747 +disable_so_timestamp_iwl_priv_47463 timestamp iwl_priv 0 47463 &disable_so_vdi_atime_vxfs_inode_info_47463
142748 +disable_so_ts_steal_jiffies_gru_thread_state_47477 ts_steal_jiffies gru_thread_state 0 47477 NULL
142749 +disable_so_brcms_c_set_addrmatch_fndecl_47479 brcms_c_set_addrmatch fndecl 2 47479 NULL
142750 +disable_so_cia_max_keysize_cipher_alg_47480 cia_max_keysize cipher_alg 0 47480 NULL
142751 +disable_so_inet_addr_type_fndecl_47499 inet_addr_type fndecl 2 47499 NULL
142752 +disable_so_sd_atime_stat_data_47502 sd_atime stat_data 0 47502 NULL
142753 +disable_so_tcf_hash_create_fndecl_47512 tcf_hash_create fndecl 0-4 47512 NULL
142754 +disable_so_addr_low_ssp_ini_io_start_req_47520 addr_low ssp_ini_io_start_req 0 47520 NULL nohasharray
142755 +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
142756 +disable_so___xfrm4_dpref_spref_hash_fndecl_47524 __xfrm4_dpref_spref_hash fndecl 0 47524 NULL
142757 +disable_so_error_info_addr_mvm_alive_resp_ver2_47529 error_info_addr mvm_alive_resp_ver2 0 47529 NULL
142758 +disable_so_idle_freq_intel_gen6_power_mgmt_47531 idle_freq intel_gen6_power_mgmt 0 47531 NULL
142759 +disable_so_regidx_ath9k_debug_47533 regidx ath9k_debug 0 47533 NULL
142760 +disable_so___delay_fndecl_47535 __delay fndecl 1 47535 NULL
142761 +disable_so_gid_vardecl_initramfs_c_47557 gid vardecl_initramfs.c 0 47557 NULL
142762 +disable_so_channel_freq_wmi_scan_ev_arg_47561 channel_freq wmi_scan_ev_arg 0 47561 NULL nohasharray
142763 +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
142764 +disable_so_addr_high_sata_start_req_47563 addr_high sata_start_req 0 47563 NULL nohasharray
142765 +disable_so_addr_pages_devres_47563 addr pages_devres 0 47563 &disable_so_addr_high_sata_start_req_47563
142766 +disable_so_min_align_snd_pcm_runtime_47579 min_align snd_pcm_runtime 0 47579 NULL nohasharray
142767 +disable_so_dev_set_mac_address_fndecl_47579 dev_set_mac_address fndecl 0 47579 &disable_so_min_align_snd_pcm_runtime_47579
142768 +disable_so_sip_sprintf_addr_port_fndecl_47581 sip_sprintf_addr_port fndecl 0-4 47581 NULL
142769 +disable_so_physical_addr_cper_sec_mem_err_47582 physical_addr cper_sec_mem_err 0 47582 NULL nohasharray
142770 +disable_so_log2taps_oslec_state_47582 log2taps oslec_state 0 47582 &disable_so_physical_addr_cper_sec_mem_err_47582
142771 +disable_so_rehash_time_sfb_sched_data_47586 rehash_time sfb_sched_data 0 47586 NULL nohasharray
142772 +disable_so_x25_parse_address_block_fndecl_47586 x25_parse_address_block fndecl 0 47586 &disable_so_rehash_time_sfb_sched_data_47586
142773 +disable_so_write_reg_fndecl_47589 write_reg fndecl 3-2 47589 NULL
142774 +disable_so_buffer_addr_tx_packet_desc_47592 buffer_addr tx_packet_desc 0 47592 NULL
142775 +disable_so_xfs_iomap_write_delay_fndecl_47595 xfs_iomap_write_delay fndecl 0-2-3 47595 NULL
142776 +disable_so_valleyview_rps_min_freq_fndecl_47598 valleyview_rps_min_freq fndecl 0 47598 NULL
142777 +disable_so_eft_addr_h_qla2xxx_fw_dump_47600 eft_addr_h qla2xxx_fw_dump 0 47600 NULL
142778 +disable_so_tms_cstime_tms_47604 tms_cstime tms 0 47604 NULL nohasharray
142779 +disable_so_btrfs_node_key_to_cpu_fndecl_47604 btrfs_node_key_to_cpu fndecl 3 47604 &disable_so_tms_cstime_tms_47604
142780 +disable_so_base_reg_regcache_rbtree_node_47612 base_reg regcache_rbtree_node 0 47612 NULL
142781 +disable_so_bd_list_addr_lo_bnx2i_cmd_request_47615 bd_list_addr_lo bnx2i_cmd_request 0 47615 NULL
142782 +disable_so_ltr501_ps_read_samp_freq_fndecl_47616 ltr501_ps_read_samp_freq fndecl 0 47616 NULL
142783 +disable_so_freq_pulse_event_47630 freq pulse_event 0 47630 NULL
142784 +disable_so_ixgbe_set_rss_hash_opt_fndecl_47632 ixgbe_set_rss_hash_opt fndecl 0 47632 NULL
142785 +disable_so_timeout_vardecl_hvc_console_c_47646 timeout vardecl_hvc_console.c 0 47646 NULL
142786 +disable_so_buffer_addr_e1000_tx_desc_47648 buffer_addr e1000_tx_desc 0 47648 NULL
142787 +disable_so_keyctl_set_timeout_fndecl_47649 keyctl_set_timeout fndecl 2-1-0 47649 NULL
142788 +disable_so_cfg80211_wext_siwfreq_fndecl_47653 cfg80211_wext_siwfreq fndecl 0 47653 NULL
142789 +disable_so_dw_wdt_time_left_fndecl_47654 dw_wdt_time_left fndecl 0 47654 NULL
142790 +disable_so_tstep_addr_palmas_regs_info_47657 tstep_addr palmas_regs_info 0 47657 NULL
142791 +disable_so_frac_period_rest_dummy_systimer_pcm_47674 frac_period_rest dummy_systimer_pcm 0 47674 NULL
142792 +disable_so_fill_bitmap_rle_bits_fndecl_47678 fill_bitmap_rle_bits fndecl 0 47678 NULL
142793 +disable_so_set_timebase_fndecl_47679 set_timebase fndecl 1 47679 NULL
142794 +disable_so_i2c_addr_tua9001_config_47682 i2c_addr tua9001_config 0 47682 NULL
142795 +disable_so_time_scan_survey_info_47684 time_scan survey_info 0 47684 NULL
142796 +disable_so_lzo_decompress_fndecl_47694 lzo_decompress fndecl 2 47694 NULL
142797 +disable_so_hsync_pulse_width_lvds_dvo_timing_47698 hsync_pulse_width lvds_dvo_timing 0 47698 NULL
142798 +disable_so_bdc_address_device_fndecl_47704 bdc_address_device fndecl 0-2 47704 NULL
142799 +disable_so_base_addr_ivtv_47705 base_addr ivtv 0 47705 NULL
142800 +disable_so_clock_start_soc_camera_host_ops_47707 clock_start soc_camera_host_ops 0 47707 NULL
142801 +disable_so_enum_dv_timings_v4l2_subdev_pad_ops_47708 enum_dv_timings v4l2_subdev_pad_ops 0 47708 NULL nohasharray
142802 +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
142803 +disable_so_rv740_get_mclk_frequency_ratio_fndecl_47715 rv740_get_mclk_frequency_ratio fndecl 0-1 47715 NULL
142804 +disable_so_lola_set_clock_fndecl_47716 lola_set_clock fndecl 0 47716 NULL
142805 +disable_so_hid_rtc_read_time_fndecl_47725 hid_rtc_read_time fndecl 0 47725 NULL
142806 +disable_so_ext4_update_other_inodes_time_fndecl_47730 ext4_update_other_inodes_time fndecl 2 47730 NULL
142807 +disable_so_uartlite_inbe32_fndecl_47739 uartlite_inbe32 fndecl 0 47739 NULL
142808 +disable_so_tm_yday_rtc_time_47740 tm_yday rtc_time 0 47740 NULL
142809 +disable_so_snd_azf3328_timer_fndecl_47746 snd_azf3328_timer fndecl 0-2 47746 NULL
142810 +disable_so_pci_bus_atto_channel_info_47747 pci_bus atto_channel_info 0 47747 NULL
142811 +disable_so_control_addr_qla8044_minidump_entry_cache_47750 control_addr qla8044_minidump_entry_cache 0 47750 NULL
142812 +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
142813 +disable_so_tx_ring_dma_addr_amd8111e_priv_47757 tx_ring_dma_addr amd8111e_priv 0 47757 NULL
142814 +disable_so_frac_period_size_dummy_systimer_pcm_47758 frac_period_size dummy_systimer_pcm 0 47758 NULL
142815 +disable_so_inet6_addr_add_fndecl_47759 inet6_addr_add fndecl 0-2-5-7-8-6 47759 NULL
142816 +disable_so_initial_descriptor_timeout_vardecl_hub_c_47763 initial_descriptor_timeout vardecl_hub.c 0 47763 NULL
142817 +disable_so_nbytes_ccp_aes_cmac_req_ctx_47773 nbytes ccp_aes_cmac_req_ctx 0 47773 NULL
142818 +disable_so_account_idle_time_fndecl_47777 account_idle_time fndecl 1 47777 NULL
142819 +disable_so_ip_addr_nes_arp_entry_47790 ip_addr nes_arp_entry 0 47790 NULL
142820 +disable_so_sha1_generic_mod_init_fndecl_47800 sha1_generic_mod_init fndecl 0 47800 NULL
142821 +disable_so_nla_validate_nested_fndecl_47801 nla_validate_nested fndecl 2-0 47801 NULL
142822 +disable_so_enable_refdiv_dibx000_bandwidth_config_47815 enable_refdiv dibx000_bandwidth_config 0 47815 NULL
142823 +disable_so_demod_address_cx24123_config_47819 demod_address cx24123_config 0 47819 NULL
142824 +disable_so_alloc_usb_address_fndecl_47822 alloc_usb_address fndecl 0 47822 NULL
142825 +disable_so_compat_sys_signalfd_fndecl_47830 compat_sys_signalfd fndecl 0 47830 NULL
142826 +disable_so_silence_filled_snd_pcm_runtime_47852 silence_filled snd_pcm_runtime 0 47852 NULL nohasharray
142827 +disable_so_demod_addr_tm6000_core_47852 demod_addr tm6000_core 0 47852 &disable_so_silence_filled_snd_pcm_runtime_47852
142828 +disable_so___net_get_random_once_fndecl_47854 __net_get_random_once fndecl 2 47854 NULL
142829 +disable_so_add_device_randomness_fndecl_47860 add_device_randomness fndecl 2 47860 NULL nohasharray
142830 +disable_so_put_dec_trunc8_fndecl_47860 put_dec_trunc8 fndecl 2 47860 &disable_so_add_device_randomness_fndecl_47860
142831 +disable_so___ntfs_bitmap_set_bits_in_run_fndecl_47864 __ntfs_bitmap_set_bits_in_run fndecl 2-3 47864 NULL
142832 +disable_so_qce_ahash_digest_fndecl_47873 qce_ahash_digest fndecl 0 47873 NULL
142833 +disable_so_i_gid_f2fs_inode_47888 i_gid f2fs_inode 0 47888 NULL
142834 +disable_so_currentfreq_s921_state_47895 currentfreq s921_state 0 47895 NULL
142835 +disable_so_dma_ring_addr_i40e_virtchnl_rxq_info_47897 dma_ring_addr i40e_virtchnl_rxq_info 0 47897 NULL
142836 +disable_so_qla82xx_decode_crb_addr_fndecl_47901 qla82xx_decode_crb_addr fndecl 0-1 47901 NULL
142837 +disable_so_xtal_cap20p_r820t_freq_range_47903 xtal_cap20p r820t_freq_range 0 47903 NULL
142838 +disable_so_drbd_uuid_dump_fndecl_47904 drbd_uuid_dump fndecl 4 47904 NULL
142839 +disable_so_host_addr_gnttab_unmap_grant_ref_47911 host_addr gnttab_unmap_grant_ref 0 47911 NULL
142840 +disable_so_crypto_ccm_setkey_fndecl_47913 crypto_ccm_setkey fndecl 0-3 47913 NULL
142841 +disable_so_ipath_sdma_abort_intr_timeout_ipath_devdata_47922 ipath_sdma_abort_intr_timeout ipath_devdata 0 47922 NULL
142842 +disable_so_think_time_usb_tt_47928 think_time usb_tt 0 47928 NULL
142843 +disable_so_vaddr_ib_reth_47929 vaddr ib_reth 0 47929 NULL
142844 +disable_so_num_clock_sources_echoaudio_47930 num_clock_sources echoaudio 0 47930 NULL nohasharray
142845 +disable_so_shutdwn_delay_cs42l73_private_47930 shutdwn_delay cs42l73_private 0 47930 &disable_so_num_clock_sources_echoaudio_47930
142846 +disable_so_count_bitmaps_fndecl_47942 count_bitmaps fndecl 0 47942 NULL
142847 +disable_so_crypto_aead_ivsize_fndecl_47945 crypto_aead_ivsize fndecl 0 47945 NULL
142848 +disable_so_rs5c348_rtc_read_time_fndecl_47948 rs5c348_rtc_read_time fndecl 0 47948 NULL
142849 +disable_so_kvm_set_lapic_tscdeadline_msr_fndecl_47952 kvm_set_lapic_tscdeadline_msr fndecl 2 47952 NULL
142850 +disable_so_ext4_inode_bitmap_set_fndecl_47957 ext4_inode_bitmap_set fndecl 3 47957 NULL
142851 +disable_so_sysctl_llc2_busy_timeout_vardecl_47965 sysctl_llc2_busy_timeout vardecl 0 47965 NULL
142852 +disable_so_atl2_hash_mc_addr_fndecl_47966 atl2_hash_mc_addr fndecl 0 47966 NULL
142853 +disable_so_wm97xx_reg_write_fndecl_47973 wm97xx_reg_write fndecl 3-2 47973 NULL
142854 +disable_so_isci_setup_interrupts_fndecl_47977 isci_setup_interrupts fndecl 0 47977 NULL
142855 +disable_so_hdmi_mode_alternate_clock_fndecl_47981 hdmi_mode_alternate_clock fndecl 0 47981 NULL
142856 +disable_so_xhci_address_device_fndecl_47987 xhci_address_device fndecl 0 47987 NULL
142857 +disable_so_snd_timer_start1_fndecl_47992 snd_timer_start1 fndecl 3-0 47992 NULL
142858 +disable_so_timing_setup_fndecl_48002 timing_setup fndecl 3-4 48002 NULL
142859 +disable_so_clk_freq_g762_platform_data_48004 clk_freq g762_platform_data 0 48004 NULL
142860 +disable_so_sh_addralign_elf64_shdr_48012 sh_addralign elf64_shdr 0 48012 NULL nohasharray
142861 +disable_so_crypto_aead_reqsize_fndecl_48012 crypto_aead_reqsize fndecl 0 48012 &disable_so_sh_addralign_elf64_shdr_48012
142862 +disable_so_qlcnic_82xx_get_mac_address_fndecl_48015 qlcnic_82xx_get_mac_address fndecl 0 48015 NULL
142863 +disable_so_frequency_dvb_pll_priv_48016 frequency dvb_pll_priv 0 48016 NULL
142864 +disable_so_i915_min_freq_set_fndecl_48019 i915_min_freq_set fndecl 2-0 48019 NULL
142865 +disable_so_slave_addr_psb_intel_sdvo_48022 slave_addr psb_intel_sdvo 0 48022 NULL
142866 +disable_so_si_get_ddr3_mclk_frequency_ratio_fndecl_48025 si_get_ddr3_mclk_frequency_ratio fndecl 0-1 48025 NULL
142867 +disable_so_lgdt3306a_fe_sleep_fndecl_48026 lgdt3306a_fe_sleep fndecl 0 48026 NULL
142868 +disable_so_ctnl_timeout_fill_info_fndecl_48030 ctnl_timeout_fill_info fndecl 3-5-0-2 48030 NULL
142869 +disable_so_r69_val_fc2580_freq_regs_48037 r69_val fc2580_freq_regs 0 48037 NULL nohasharray
142870 +disable_so_btree_lookup32_fndecl_48037 btree_lookup32 fndecl 2 48037 &disable_so_r69_val_fc2580_freq_regs_48037
142871 +disable_so_reservation_object_wait_timeout_rcu_fndecl_48039 reservation_object_wait_timeout_rcu fndecl 0-4 48039 NULL
142872 +disable_so_utimescaled_task_struct_48041 utimescaled task_struct 0 48041 NULL
142873 +disable_so_hrtimer_init_fndecl_48048 hrtimer_init fndecl 2 48048 NULL
142874 +disable_so_regmap_bulk_write_fndecl_48058 regmap_bulk_write fndecl 0-2-4 48058 NULL
142875 +disable_so_rt_saddr_dn_route_48062 rt_saddr dn_route 0 48062 NULL
142876 +disable_so_ring_interrupt_index_fndecl_48065 ring_interrupt_index fndecl 0 48065 NULL nohasharray
142877 +disable_so_dclk_freq_i7core_pvt_48065 dclk_freq i7core_pvt 0 48065 &disable_so_ring_interrupt_index_fndecl_48065
142878 +disable_so_di_atime_gfs2_dinode_48066 di_atime gfs2_dinode 0 48066 NULL
142879 +disable_so_be32_add_cpu_fndecl_48069 be32_add_cpu fndecl 2 48069 NULL
142880 +disable_so_keepalive_time_tcp_sock_48076 keepalive_time tcp_sock 0 48076 NULL nohasharray
142881 +disable_so_mptscsih_get_tm_timeout_fndecl_48076 mptscsih_get_tm_timeout fndecl 0 48076 &disable_so_keepalive_time_tcp_sock_48076
142882 +disable_so_set_channel_address_fndecl_48079 set_channel_address fndecl 2-3 48079 NULL
142883 +disable_so_clock_vardecl_max6650_c_48080 clock vardecl_max6650.c 0 48080 NULL
142884 +disable_so_mapped_loc_addr_nes_cm_node_48083 mapped_loc_addr nes_cm_node 0 48083 NULL
142885 +disable_so___br_ip6_hash_fndecl_48084 __br_ip6_hash fndecl 0 48084 NULL
142886 +disable_so_si4713_tx_tune_freq_fndecl_48092 si4713_tx_tune_freq fndecl 0-2 48092 NULL
142887 +disable_so_wait_for_completion_killable_timeout_fndecl_48103 wait_for_completion_killable_timeout fndecl 2-0 48103 NULL
142888 +disable_so_lpfc_max_scsicmpl_time_init_fndecl_48110 lpfc_max_scsicmpl_time_init fndecl 2 48110 NULL
142889 +disable_so_lib80211_register_crypto_ops_fndecl_48112 lib80211_register_crypto_ops fndecl 0 48112 NULL
142890 +disable_so_get_error_address_fndecl_48129 get_error_address fndecl 0 48129 NULL nohasharray
142891 +disable_so_sfreq_sst_byt_pcm_params_48129 sfreq sst_byt_pcm_params 0 48129 &disable_so_get_error_address_fndecl_48129
142892 +disable_so_vsync_off_lvds_dvo_timing_48134 vsync_off lvds_dvo_timing 0 48134 NULL
142893 +disable_so_transop_timeout_ipr_ioa_cfg_48141 transop_timeout ipr_ioa_cfg 0 48141 NULL
142894 +disable_so_addrconf_prefix_rcv_fndecl_48148 addrconf_prefix_rcv fndecl 3 48148 NULL
142895 +disable_so_copied_seq_tcp_sock_48149 copied_seq tcp_sock 0 48149 NULL
142896 +disable_so_pm_autosleep_set_state_fndecl_48154 pm_autosleep_set_state fndecl 0 48154 NULL
142897 +disable_so_mlx4_en_read_clock_fndecl_48159 mlx4_en_read_clock fndecl 0 48159 NULL
142898 +disable_so_ipmi_request_settime_fndecl_48166 ipmi_request_settime fndecl 0 48166 NULL
142899 +disable_so_atime_p9_wstat_48170 atime p9_wstat 0 48170 NULL
142900 +disable_so_sys_mq_timedsend_fndecl_48174 sys_mq_timedsend fndecl 3-1 48174 NULL
142901 +disable_so_td_base_addr_c67x00_hcd_48184 td_base_addr c67x00_hcd 0 48184 NULL
142902 +disable_so_mca_tstamp_ifmcaddr6_48186 mca_tstamp ifmcaddr6 0 48186 NULL
142903 +disable_so_tobe_rx_coal_timeval_vnic_cq_48199 tobe_rx_coal_timeval vnic_cq 0 48199 NULL nohasharray
142904 +disable_so_read_msr_fndecl_48199 read_msr fndecl 0 48199 &disable_so_tobe_rx_coal_timeval_vnic_cq_48199
142905 +disable_so_main_blkaddr_f2fs_sm_info_48201 main_blkaddr f2fs_sm_info 0 48201 NULL
142906 +disable_so_doorbell_physical_address_kgd2kfd_shared_resources_48202 doorbell_physical_address kgd2kfd_shared_resources 0 48202 NULL
142907 +disable_so_aa_fs_seq_hash_open_fndecl_48204 aa_fs_seq_hash_open fndecl 0 48204 NULL
142908 +disable_so_skcipher_all_sg_nents_fndecl_48207 skcipher_all_sg_nents fndecl 0 48207 NULL
142909 +disable_so_addr_r10dev_48214 addr r10dev 0 48214 NULL
142910 +disable_so_btc_set_ulv_dram_timing_fndecl_48216 btc_set_ulv_dram_timing fndecl 0 48216 NULL
142911 +disable_so_gid_btrfs_inode_item_48221 gid btrfs_inode_item 0 48221 NULL
142912 +disable_so_time_offset_vardecl_ntp_c_48224 time_offset vardecl_ntp.c 0 48224 NULL
142913 +disable_so_bitmaps_hpfs_super_block_48227 bitmaps hpfs_super_block 0 48227 NULL
142914 +disable_so_tpg_hdiv_fndecl_48235 tpg_hdiv fndecl 0-3 48235 NULL
142915 +disable_so_nextmsg_time_vardecl_ipath_intr_c_48236 nextmsg_time vardecl_ipath_intr.c 0 48236 NULL
142916 +disable_so_src_bitmap_qxl_copy_48243 src_bitmap qxl_copy 0 48243 NULL nohasharray
142917 +disable_so_btree_split_sibling_fndecl_48243 btree_split_sibling fndecl 0-3 48243 &disable_so_src_bitmap_qxl_copy_48243
142918 +disable_so_sm1_runtime_sc_48251 sm1 runtime_sc 0 48251 NULL nohasharray
142919 +disable_so_r6f_val_fc2580_freq_regs_48251 r6f_val fc2580_freq_regs 0 48251 &disable_so_sm1_runtime_sc_48251
142920 +disable_so_dp_daddr_rds_iw_connect_private_48258 dp_daddr rds_iw_connect_private 0 48258 NULL nohasharray
142921 +disable_so_ceph_dentry_hash_fndecl_48258 ceph_dentry_hash fndecl 0 48258 &disable_so_dp_daddr_rds_iw_connect_private_48258
142922 +disable_so_tm_delta_smt_timer_48263 tm_delta smt_timer 0 48263 NULL nohasharray
142923 +disable_so_enabled_hrtimer_events_ehci_hcd_48263 enabled_hrtimer_events ehci_hcd 0 48263 &disable_so_tm_delta_smt_timer_48263
142924 +disable_so_clock_task_rq_48277 clock_task rq 0 48277 NULL
142925 +disable_so_ui_mtime_ufs2_inode_48286 ui_mtime ufs2_inode 0 48286 NULL
142926 +disable_so_sumo_parse_pplib_clock_info_fndecl_48288 sumo_parse_pplib_clock_info fndecl 3 48288 NULL
142927 +disable_so_crypto_shash_final_fndecl_48296 crypto_shash_final fndecl 0 48296 NULL
142928 +disable_so_tproxy_handle_time_wait4_fndecl_48305 tproxy_handle_time_wait4 fndecl 2-3 48305 NULL
142929 +disable_so_timeout_pg_48333 timeout pg 0 48333 NULL
142930 +disable_so_set_next_event_clock_event_device_48353 set_next_event clock_event_device 1 48353 NULL
142931 +disable_so_VCOdivider_cx24123_bandselect_val_48358 VCOdivider cx24123_bandselect_val 0 48358 NULL
142932 +disable_so_pch_mac_start_address_pch_phub_reg_48361 pch_mac_start_address pch_phub_reg 0 48361 NULL nohasharray
142933 +disable_so_dib8000_write_word_fndecl_48361 dib8000_write_word fndecl 2-3 48361 &disable_so_pch_mac_start_address_pch_phub_reg_48361
142934 +disable_so_skcipher_wait_for_wmem_fndecl_48362 skcipher_wait_for_wmem fndecl 0-2 48362 NULL
142935 +disable_so_num_mc_addrs_ixgb_hw_48363 num_mc_addrs ixgb_hw 0 48363 NULL
142936 +disable_so_timeout_net_conf_48365 timeout net_conf 0 48365 NULL
142937 +disable_so_last_awake_jiffies_rtl_ps_ctl_48378 last_awake_jiffies rtl_ps_ctl 0 48378 NULL
142938 +disable_so_mphash_entries_vardecl_namespace_c_48379 mphash_entries vardecl_namespace.c 0 48379 NULL
142939 +disable_so_dbs_freq_increase_fndecl_48380 dbs_freq_increase fndecl 2 48380 NULL nohasharray
142940 +disable_so_crypto_register_rngs_fndecl_48380 crypto_register_rngs fndecl 0 48380 &disable_so_dbs_freq_increase_fndecl_48380
142941 +disable_so_lgdt3306a_read_signal_strength_fndecl_48382 lgdt3306a_read_signal_strength fndecl 0 48382 NULL
142942 +disable_so_di_atime_efs_dinode_48386 di_atime efs_dinode 0 48386 NULL
142943 +disable_so_iscsi_nacl_attrib_show_nopin_timeout_fndecl_48391 iscsi_nacl_attrib_show_nopin_timeout fndecl 0 48391 NULL
142944 +disable_so_update_streaming_control_runtime_48422 update_streaming control_runtime 0 48422 NULL
142945 +disable_so_setpolicy_cpufreq_driver_48433 setpolicy cpufreq_driver 0 48433 NULL
142946 +disable_so_clockid_timerfd_ctx_48442 clockid timerfd_ctx 0 48442 NULL
142947 +disable_so_set_bau_on_time_bau_control_48444 set_bau_on_time bau_control 0 48444 NULL nohasharray
142948 +disable_so_vclk_post_div_pll_ct_48444 vclk_post_div pll_ct 0 48444 &disable_so_set_bau_on_time_bau_control_48444
142949 +disable_so_test_acipher_jiffies_fndecl_48452 test_acipher_jiffies fndecl 0 48452 NULL
142950 +disable_so_radio_syn_reserved_addr27_b43_nphy_channeltab_entry_rev3_48453 radio_syn_reserved_addr27 b43_nphy_channeltab_entry_rev3 0 48453 NULL
142951 +disable_so_fan_timer_f75375_data_48461 fan_timer f75375_data 0 48461 NULL nohasharray
142952 +disable_so_address_ksm_scan_48461 address ksm_scan 0 48461 &disable_so_fan_timer_f75375_data_48461
142953 +disable_so_elements_bitmap_port_48466 elements bitmap_port 0 48466 NULL
142954 +disable_so_zd_chip_read_mac_addr_fw_fndecl_48469 zd_chip_read_mac_addr_fw fndecl 0 48469 NULL
142955 +disable_so___round_jiffies_up_relative_fndecl_48487 __round_jiffies_up_relative fndecl 2-1-0 48487 NULL
142956 +disable_so_gfs2_disk_hash_fndecl_48491 gfs2_disk_hash fndecl 2 48491 NULL
142957 +disable_so_max6900_rtc_read_time_fndecl_48493 max6900_rtc_read_time fndecl 0 48493 NULL nohasharray
142958 +disable_so_bsscfgidx_brcmf_mbss_ssid_le_48493 bsscfgidx brcmf_mbss_ssid_le 0 48493 &disable_so_max6900_rtc_read_time_fndecl_48493
142959 +disable_so_kvm_set_tsc_khz_fndecl_48520 kvm_set_tsc_khz fndecl 2 48520 NULL
142960 +disable_so_rx8025_set_time_fndecl_48524 rx8025_set_time fndecl 0 48524 NULL
142961 +disable_so_usbvision_stream_interrupt_fndecl_48527 usbvision_stream_interrupt fndecl 0 48527 NULL nohasharray
142962 +disable_so_ip_vs_lblc_hashkey_fndecl_48527 ip_vs_lblc_hashkey fndecl 1 48527 &disable_so_usbvision_stream_interrupt_fndecl_48527
142963 +disable_so_timeout_cm_av_48528 timeout cm_av 0 48528 NULL nohasharray
142964 +disable_so_ww_mutex_lock_slow_interruptible_fndecl_48528 ww_mutex_lock_slow_interruptible fndecl 0 48528 &disable_so_timeout_cm_av_48528
142965 +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
142966 +disable_so_blk_addr_node_info_48545 blk_addr node_info 0 48545 NULL
142967 +disable_so_SYSC_sched_getscheduler_fndecl_48547 SYSC_sched_getscheduler fndecl 0-1 48547 NULL
142968 +disable_so_i915_max_freq_get_fndecl_48551 i915_max_freq_get fndecl 0 48551 NULL
142969 +disable_so_min_dwell_time_active_long_conf_scan_settings_48560 min_dwell_time_active_long conf_scan_settings 0 48560 NULL nohasharray
142970 +disable_so_set_memclock_fndecl_48560 set_memclock fndecl 2 48560 &disable_so_min_dwell_time_active_long_conf_scan_settings_48560
142971 +disable_so_ext4_get_bitmap_fndecl_48566 ext4_get_bitmap fndecl 2 48566 NULL
142972 +disable_so_read_addr___pollrd_48572 read_addr __pollrd 0 48572 NULL
142973 +disable_so_cn_esc_printf_fndecl_48573 cn_esc_printf fndecl 0 48573 NULL
142974 +disable_so_osd_keepalive_timeout_ceph_options_48576 osd_keepalive_timeout ceph_options 0 48576 NULL nohasharray
142975 +disable_so_freq_cea_sad_48576 freq cea_sad 0 48576 &disable_so_osd_keepalive_timeout_ceph_options_48576
142976 +disable_so_rp_down_timeout_vlv_s0ix_state_48583 rp_down_timeout vlv_s0ix_state 0 48583 NULL
142977 +disable_so_x86_coreid_bits_cpuinfo_x86_48589 x86_coreid_bits cpuinfo_x86 0 48589 NULL nohasharray
142978 +disable_so_radeon_fence_seq_signaled_fndecl_48589 radeon_fence_seq_signaled fndecl 3 48589 &disable_so_x86_coreid_bits_cpuinfo_x86_48589
142979 +disable_so_timeval_to_jiffies_fndecl_48593 timeval_to_jiffies fndecl 0 48593 NULL
142980 +disable_so_addr_hash_fndecl_48596 addr_hash fndecl 0-2-3 48596 NULL
142981 +disable_so_frame_timestamp_iwl_tdls_channel_switch_timing_48601 frame_timestamp iwl_tdls_channel_switch_timing 0 48601 NULL
142982 +disable_so_post_divider_pll_18818_48604 post_divider pll_18818 0 48604 NULL
142983 +disable_so_mapaddr_ql_rcv_buf_cb_48606 mapaddr ql_rcv_buf_cb 0 48606 NULL
142984 +disable_so_get_tsc_mode_fndecl_48608 get_tsc_mode fndecl 0-1 48608 NULL
142985 +disable_so_parse_nl_saddr_fndecl_48609 parse_nl_saddr fndecl 0 48609 NULL
142986 +disable_so_il_dbgfs_interrupt_write_fndecl_48612 il_dbgfs_interrupt_write fndecl 0-3 48612 NULL
142987 +disable_so_timer_ticks_snd_ymfpci_48615 timer_ticks snd_ymfpci 0 48615 NULL
142988 +disable_so_pause_time_e1000_fc_info_48619 pause_time e1000_fc_info 0 48619 NULL
142989 +disable_so_curspataddr_banshee_reg_48622 curspataddr banshee_reg 0 48622 NULL
142990 +disable_so_sysctl_discovery_timeout_vardecl_48636 sysctl_discovery_timeout vardecl 0 48636 NULL
142991 +disable_so_pch_opt_rom_start_address_pch_phub_reg_48637 pch_opt_rom_start_address pch_phub_reg 0 48637 NULL
142992 +disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640 ocfs2_test_bg_bit_allocatable fndecl 2 48640 NULL nohasharray
142993 +disable_so_bit_count_syscon_gpio_data_48640 bit_count syscon_gpio_data 0 48640 &disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640
142994 +disable_so_st_uid_compat_stat_48641 st_uid compat_stat 0 48641 NULL
142995 +disable_so_zd1201_get_freq_fndecl_48656 zd1201_get_freq fndecl 0 48656 NULL nohasharray
142996 +disable_so_set_key_lib80211_crypto_ops_48656 set_key lib80211_crypto_ops 2 48656 &disable_so_zd1201_get_freq_fndecl_48656
142997 +disable_so_padata_set_cpumask_fndecl_48659 padata_set_cpumask fndecl 0 48659 NULL
142998 +disable_so_addrconf_sysctl_mtu_fndecl_48662 addrconf_sysctl_mtu fndecl 0 48662 NULL
142999 +disable_so_elapsed_time_sit_info_48663 elapsed_time sit_info 0 48663 NULL
143000 +disable_so_irq_uart_port_48670 irq uart_port 0 48670 NULL
143001 +disable_so_timeout_ib_qp_attr_48674 timeout ib_qp_attr 0 48674 NULL
143002 +disable_so_read_addr_mdc_hw_list_desc_48675 read_addr mdc_hw_list_desc 0 48675 NULL
143003 +disable_so_xfs_btree_update_fndecl_48676 xfs_btree_update fndecl 0 48676 NULL
143004 +disable_so_phy_pm_runtime_put_sync_fndecl_48680 phy_pm_runtime_put_sync fndecl 0 48680 NULL
143005 +disable_so_pcc_cpufreq_target_fndecl_48684 pcc_cpufreq_target fndecl 2 48684 NULL
143006 +disable_so_call_timer_fn_fndecl_48686 call_timer_fn fndecl 3 48686 NULL
143007 +disable_so_xfs_bmap_add_extent_delay_real_fndecl_48692 xfs_bmap_add_extent_delay_real fndecl 0 48692 NULL
143008 +disable_so_bdi_position_ratio_fndecl_48698 bdi_position_ratio fndecl 0-2-3-4-5-6 48698 NULL
143009 +disable_so_rcq_np_addr_vf_pf_rxq_params_48718 rcq_np_addr vf_pf_rxq_params 0 48718 NULL
143010 +disable_so_rp_gid_ubifs_sb_node_48723 rp_gid ubifs_sb_node 0 48723 NULL
143011 +disable_so_phys_addr_gen_pool_chunk_48730 phys_addr gen_pool_chunk 0 48730 NULL
143012 +disable_so_addr_qla8044_minidump_entry_crb_48734 addr qla8044_minidump_entry_crb 0 48734 NULL
143013 +disable_so_mt7601u_wr_fndecl_48735 mt7601u_wr fndecl 3-2 48735 NULL nohasharray
143014 +disable_so_cpufreq_policy_restore_fndecl_48735 cpufreq_policy_restore fndecl 1 48735 &disable_so_mt7601u_wr_fndecl_48735
143015 +disable_so_cpuid_read_fndecl_48739 cpuid_read fndecl 0 48739 NULL
143016 +disable_so_be_cmd_modify_eq_delay_fndecl_48751 be_cmd_modify_eq_delay fndecl 0 48751 NULL
143017 +disable_so_time_shift_perf_event_mmap_page_48757 time_shift perf_event_mmap_page 0 48757 NULL
143018 +disable_so_i_ctime_ext2_inode_48758 i_ctime ext2_inode 0 48758 NULL nohasharray
143019 +disable_so_ide_timing_find_mode_fndecl_48758 ide_timing_find_mode fndecl 1 48758 &disable_so_i_ctime_ext2_inode_48758
143020 +disable_so_err_crypto_gcm_setkey_result_48768 err crypto_gcm_setkey_result 0 48768 NULL
143021 +disable_so_baddr_videobuf_buffer_48769 baddr videobuf_buffer 0 48769 NULL
143022 +disable_so_sys_utimes_fndecl_48778 sys_utimes fndecl 0 48778 NULL
143023 +disable_so_kstrtos8_from_user_fndecl_48783 kstrtos8_from_user fndecl 2 48783 NULL
143024 +disable_so_regmap_raw_read_fndecl_48789 regmap_raw_read fndecl 4-0-2 48789 NULL
143025 +disable_so_map_sysaddr_to_csrow_low_ops_48803 map_sysaddr_to_csrow low_ops 2 48803 NULL
143026 +disable_so_tg3_get_device_address_fndecl_48809 tg3_get_device_address fndecl 0 48809 NULL
143027 +disable_so_mfgid_sz_cyttsp4_cydata_48812 mfgid_sz cyttsp4_cydata 0 48812 NULL
143028 +disable_so_mceusb_cmd_datasize_fndecl_48817 mceusb_cmd_datasize fndecl 0 48817 NULL
143029 +disable_so_tv_freq_vivid_dev_48830 tv_freq vivid_dev 0 48830 NULL
143030 +disable_so_timecounter_init_fndecl_48837 timecounter_init fndecl 3 48837 NULL
143031 +disable_so_udf_bitmap_free_blocks_fndecl_48841 udf_bitmap_free_blocks fndecl 4-5 48841 NULL
143032 +disable_so__snd_timer_stop_fndecl_48842 _snd_timer_stop fndecl 0 48842 NULL
143033 +disable_so_hash_bits_deflate_state_48850 hash_bits deflate_state 0 48850 NULL
143034 +disable_so_if_freq_mb86a20s_state_48853 if_freq mb86a20s_state 0 48853 NULL
143035 +disable_so_ieee80211_aes_ccm_encrypt_fndecl_48857 ieee80211_aes_ccm_encrypt fndecl 5-7 48857 NULL
143036 +disable_so_msec20_to_jiffies_vardecl_enc28j60_c_48860 msec20_to_jiffies vardecl_enc28j60.c 0 48860 NULL
143037 +disable_so_mmc_sd_get_max_clock_fndecl_48866 mmc_sd_get_max_clock fndecl 0 48866 NULL
143038 +disable_so_s_def_resuid_ext4_super_block_48868 s_def_resuid ext4_super_block 0 48868 NULL
143039 +disable_so_get_physaddr_fs_api_fndecl_48871 get_physaddr_fs_api fndecl 0 48871 NULL
143040 +disable_so_selinux_task_setscheduler_fndecl_48872 selinux_task_setscheduler fndecl 0 48872 NULL
143041 +disable_so_snd_timer_new_fndecl_48873 snd_timer_new fndecl 0 48873 NULL
143042 +disable_so_register_write_rt2800_ops_48876 register_write rt2800_ops 2-3 48876 NULL
143043 +disable_so_client_snd_seq_addr_48879 client snd_seq_addr 0 48879 NULL
143044 +disable_so_saddr_iriap_cb_48880 saddr iriap_cb 0 48880 NULL
143045 +disable_so_error_cpu_itimer_48884 error cpu_itimer 0 48884 NULL
143046 +disable_so_buffer_write_time_flchip_48888 buffer_write_time flchip 0 48888 NULL
143047 +disable_so_valleyview_rps_rpe_freq_fndecl_48901 valleyview_rps_rpe_freq fndecl 0 48901 NULL
143048 +disable_so_bmg160_setup_any_motion_interrupt_fndecl_48906 bmg160_setup_any_motion_interrupt fndecl 0 48906 NULL
143049 +disable_so_min_timing_entry_48911 min timing_entry 0 48911 NULL
143050 +disable_so_tx_coalescing_timeo_bnad_48916 tx_coalescing_timeo bnad 0 48916 NULL
143051 +disable_so___clockevents_try_unbind_fndecl_48918 __clockevents_try_unbind fndecl 2 48918 NULL
143052 +disable_so_cyapa_get_wait_time_for_pwr_cmd_fndecl_48920 cyapa_get_wait_time_for_pwr_cmd fndecl 0-1 48920 NULL
143053 +disable_so_uid_ubifs_ino_node_48950 uid ubifs_ino_node 0 48950 NULL nohasharray
143054 +disable_so_missing_pages_bitmap_counts_48950 missing_pages bitmap_counts 0 48950 &disable_so_uid_ubifs_ino_node_48950
143055 +disable_so_snd_es1968_interrupt_fndecl_48965 snd_es1968_interrupt fndecl 1 48965 NULL
143056 +disable_so_img_ir_symbol_timing_preprocess_fndecl_48967 img_ir_symbol_timing_preprocess fndecl 2 48967 NULL
143057 +disable_so_cryptomgr_init_fndecl_48976 cryptomgr_init fndecl 0 48976 NULL
143058 +disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977 sync_offset_clockdrift_max ieee80211_if_mesh 0 48977 NULL nohasharray
143059 +disable_so_br_mac_hash_fndecl_48977 br_mac_hash fndecl 2 48977 &disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977
143060 +disable_so_rt_daddr_dn_route_48981 rt_daddr dn_route 0 48981 NULL
143061 +disable_so_acpi_get_sleep_type_data_fndecl_48985 acpi_get_sleep_type_data fndecl 0-1 48985 NULL nohasharray
143062 +disable_so_nilfs_btree_mark_fndecl_48985 nilfs_btree_mark fndecl 0-2 48985 &disable_so_acpi_get_sleep_type_data_fndecl_48985
143063 +disable_so_led_on_time_adp8860_backlight_platform_data_48994 led_on_time adp8860_backlight_platform_data 0 48994 NULL nohasharray
143064 +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
143065 +disable_so_max_duration_time_stats_48998 max_duration time_stats 0 48998 NULL
143066 +disable_so_update_debugctlmsr_fndecl_49008 update_debugctlmsr fndecl 1 49008 NULL
143067 +disable_so_default_dclk_div_ssd1307fb_deviceinfo_49014 default_dclk_div ssd1307fb_deviceinfo 0 49014 NULL
143068 +disable_so_bound_addr_rds_info_socket_49019 bound_addr rds_info_socket 0 49019 NULL
143069 +disable_so_output_mute_control_runtime_49021 output_mute control_runtime 0 49021 NULL
143070 +disable_so_btree_csum_one_bio_fndecl_49026 btree_csum_one_bio fndecl 0 49026 NULL
143071 +disable_so_xfs_btree_ptr_addr_fndecl_49031 xfs_btree_ptr_addr fndecl 2 49031 NULL
143072 +disable_so_qs_rtbtimelimit_fs_quota_statv_49033 qs_rtbtimelimit fs_quota_statv 0 49033 NULL
143073 +disable_so_min_cpufreq_policy_49035 min cpufreq_policy 0 49035 NULL nohasharray
143074 +disable_so_semaphore_wait_to_signaller_ring_fndecl_49035 semaphore_wait_to_signaller_ring fndecl 3 49035 &disable_so_min_cpufreq_policy_49035
143075 +disable_so_intr_coal_delay_myri10ge_priv_49037 intr_coal_delay myri10ge_priv 0 49037 NULL
143076 +disable_so_set_public_address_fndecl_49049 set_public_address fndecl 0 49049 NULL
143077 +disable_so_rtc_tm_to_time64_fndecl_49056 rtc_tm_to_time64 fndecl 0 49056 NULL
143078 +disable_so_ext4_block_bitmap_fndecl_49058 ext4_block_bitmap fndecl 0 49058 NULL
143079 +disable_so_nft_hash_key_fndecl_49062 nft_hash_key fndecl 0-2 49062 NULL
143080 +disable_so_dma_addr_cb_49079 dma_addr cb 0 49079 NULL nohasharray
143081 +disable_so_inet6_addr_modify_fndecl_49079 inet6_addr_modify fndecl 0-3-4-2 49079 &disable_so_dma_addr_cb_49079
143082 +disable_so_rhashtable_walk_start_fndecl_49080 rhashtable_walk_start fndecl 0 49080 NULL
143083 +disable_so_sctp_transport_timeout_fndecl_49094 sctp_transport_timeout fndecl 0 49094 NULL
143084 +disable_so_hfdiv_dib0070_tuning_49097 hfdiv dib0070_tuning 0 49097 NULL
143085 +disable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 5 49098 NULL
143086 +disable_so_test_ahash_jiffies_fndecl_49109 test_ahash_jiffies fndecl 0-3 49109 NULL
143087 +disable_so_result_scsi_cmnd_49113 result scsi_cmnd 0 49113 NULL nohasharray
143088 +disable_so_codel_get_time_fndecl_49113 codel_get_time fndecl 0 49113 &disable_so_result_scsi_cmnd_49113
143089 +disable_so_mce_async_out_fndecl_49115 mce_async_out fndecl 3 49115 NULL
143090 +disable_so_reg_write_fndecl_49116 reg_write fndecl 2-3 49116 NULL nohasharray
143091 +disable_so_hash_htab_elem_49116 hash htab_elem 0 49116 &disable_so_reg_write_fndecl_49116
143092 +disable_so_interrupt_r8a66597_49118 interrupt r8a66597 0 49118 NULL
143093 +disable_so_start_threshold_snd_pcm_runtime_49130 start_threshold snd_pcm_runtime 0 49130 NULL
143094 +disable_so_mt9m111_reg_write_fndecl_49148 mt9m111_reg_write fndecl 0-2-3 49148 NULL
143095 +disable_so_ci_otg_add_timer_fndecl_49151 ci_otg_add_timer fndecl 2 49151 NULL
143096 +disable_so_refa_r_div_ad9523_platform_data_49157 refa_r_div ad9523_platform_data 0 49157 NULL
143097 +disable_so_paddr_setup_data_node_49166 paddr setup_data_node 0 49166 NULL
143098 +disable_so_vactive_lo_lvds_dvo_timing_49180 vactive_lo lvds_dvo_timing 0 49180 NULL
143099 +disable_so_init_dma_addr_pcnet32_private_49182 init_dma_addr pcnet32_private 0 49182 NULL
143100 +disable_so_sh_dmae_runtime_resume_fndecl_49185 sh_dmae_runtime_resume fndecl 0 49185 NULL
143101 +disable_so_timeout_tid_ampdu_tx_49186 timeout tid_ampdu_tx 0 49186 NULL nohasharray
143102 +disable_so_read_peer_guid_fndecl_49186 read_peer_guid fndecl 0 49186 &disable_so_timeout_tid_ampdu_tx_49186
143103 +disable_so_if_freq_tda18271_std_map_item_49207 if_freq tda18271_std_map_item 0 49207 NULL nohasharray
143104 +disable_so_sd_hash_ptrs_gfs2_sbd_49207 sd_hash_ptrs gfs2_sbd 0 49207 &disable_so_if_freq_tda18271_std_map_item_49207
143105 +disable_so_dma_addr_t4_sq_49217 dma_addr t4_sq 0 49217 NULL
143106 +disable_so_suspend_sleep_time_cyapa_49219 suspend_sleep_time cyapa 0 49219 NULL
143107 +disable_so_mtime_nsec_p9_iattr_dotl_49224 mtime_nsec p9_iattr_dotl 0 49224 NULL nohasharray
143108 +disable_so_schedule_external_copy_fndecl_49224 schedule_external_copy fndecl 2-3 49224 &disable_so_mtime_nsec_p9_iattr_dotl_49224
143109 +disable_so_clockevents_init_sysfs_fndecl_49238 clockevents_init_sysfs fndecl 0 49238 NULL
143110 +disable_so_bus_settle_time_blogic_drvr_options_49241 bus_settle_time blogic_drvr_options 0 49241 NULL
143111 +disable_so_nf_ct_timeout_ext_add_fndecl_49245 nf_ct_timeout_ext_add fndecl 3 49245 NULL
143112 +disable_so_wm8350_rtc_readtime_fndecl_49258 wm8350_rtc_readtime fndecl 0 49258 NULL
143113 +disable_so_wm8753_set_dai_clkdiv_fndecl_49259 wm8753_set_dai_clkdiv fndecl 3 49259 NULL nohasharray
143114 +disable_so_di_gid_xfs_icdinode_49259 di_gid xfs_icdinode 0 49259 &disable_so_wm8753_set_dai_clkdiv_fndecl_49259
143115 +disable_so_acpi_lapic_addr_vardecl_boot_c_49264 acpi_lapic_addr vardecl_boot.c 0 49264 NULL
143116 +disable_so_ifa_tstamp_in_ifaddr_49266 ifa_tstamp in_ifaddr 0 49266 NULL
143117 +disable_so_tboot_addr_boot_params_49267 tboot_addr boot_params 0 49267 NULL
143118 +disable_so_rt5677_dsp_mode_i2c_write_addr_fndecl_49301 rt5677_dsp_mode_i2c_write_addr fndecl 0-2-3-4 49301 NULL
143119 +disable_so_il_vbackporch_v4l2_bt_timings_49302 il_vbackporch v4l2_bt_timings 0 49302 NULL
143120 +disable_so_jiffies_64_to_clock_t_fndecl_49307 jiffies_64_to_clock_t fndecl 0-1 49307 NULL nohasharray
143121 +disable_so_crypto_ahash_extsize_fndecl_49307 crypto_ahash_extsize fndecl 0 49307 &disable_so_jiffies_64_to_clock_t_fndecl_49307
143122 +disable_so_disptime_throtl_grp_49308 disptime throtl_grp 0 49308 NULL
143123 +disable_so_k_fll_div_49317 k fll_div 0 49317 NULL
143124 +disable_so_last_time_bictcp_49322 last_time bictcp 0 49322 NULL
143125 +disable_so_qm1d1c0042_sleep_fndecl_49326 qm1d1c0042_sleep fndecl 0 49326 NULL
143126 +disable_so_crypto_register_aeads_fndecl_49338 crypto_register_aeads fndecl 0 49338 NULL nohasharray
143127 +disable_so_gcm_hash_init_continue_fndecl_49338 gcm_hash_init_continue fndecl 0 49338 &disable_so_crypto_register_aeads_fndecl_49338
143128 +disable_so_rds_ib_laddr_check_fndecl_49343 rds_ib_laddr_check fndecl 0-1 49343 NULL
143129 +disable_so_rv6xx_convert_clock_to_stepping_fndecl_49345 rv6xx_convert_clock_to_stepping fndecl 2-0 49345 NULL
143130 +disable_so_io_addr_uhci_hcd_49351 io_addr uhci_hcd 0 49351 NULL
143131 +disable_so_mcryptd_hash_update_enqueue_fndecl_49367 mcryptd_hash_update_enqueue fndecl 0 49367 NULL
143132 +disable_so_dll_cntl_ci_clock_registers_49369 dll_cntl ci_clock_registers 0 49369 NULL
143133 +disable_so_d_btimer_fs_disk_quota_49376 d_btimer fs_disk_quota 0 49376 NULL nohasharray
143134 +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
143135 +disable_so_s_addr_in_addr_49376 s_addr in_addr 0 49376 &disable_so_uv_nmi_initial_delay_vardecl_uv_nmi_c_49376
143136 +disable_so_addrlow_dma64desc_49384 addrlow dma64desc 0 49384 NULL
143137 +disable_so_tcn_timer_show_fndecl_49401 tcn_timer_show fndecl 0 49401 NULL
143138 +disable_so_query_gid_ib_device_49415 query_gid ib_device 0-2-3 49415 NULL nohasharray
143139 +disable_so_physaddr_qib_devdata_49415 physaddr qib_devdata 0 49415 &disable_so_query_gid_ib_device_49415
143140 +disable_so_descsize_crypto_shash_49421 descsize crypto_shash 0 49421 NULL
143141 +disable_so_gatt_bus_addr_agp_bridge_data_49422 gatt_bus_addr agp_bridge_data 0 49422 NULL
143142 +disable_so_confq_pbl_base_addr_lo_fcoe_kwqe_conn_offload4_49427 confq_pbl_base_addr_lo fcoe_kwqe_conn_offload4 0 49427 NULL
143143 +disable_so_fm_v4l2_vidioc_s_freq_fndecl_49444 fm_v4l2_vidioc_s_freq fndecl 0 49444 NULL
143144 +disable_so_tidvaddr_qib_tid_info_49445 tidvaddr qib_tid_info 0 49445 NULL
143145 +disable_so_hpi_cobranet_get_ip_address_fndecl_49449 hpi_cobranet_get_ip_address fndecl 1 49449 NULL
143146 +disable_so_nla_put_s32_fndecl_49455 nla_put_s32 fndecl 0-3 49455 NULL
143147 +disable_so_saa711x_s_clock_freq_fndecl_49457 saa711x_s_clock_freq fndecl 2 49457 NULL
143148 +disable_so_timestamp_mwl8k_tx_desc_49459 timestamp mwl8k_tx_desc 0 49459 NULL
143149 +disable_so___xfrm6_dpref_spref_hash_fndecl_49463 __xfrm6_dpref_spref_hash fndecl 0 49463 NULL
143150 +disable_so_dn_hash_fndecl_49465 dn_hash fndecl 0-1-2 49465 NULL
143151 +disable_so_x_runtime_sc_49473 x runtime_sc 0 49473 NULL
143152 +disable_so_sgl_pg1_addr_hi_sgl_page_pairs_49474 sgl_pg1_addr_hi sgl_page_pairs 0 49474 NULL
143153 +disable_so_mtime_sec_p9_iattr_dotl_49482 mtime_sec p9_iattr_dotl 0 49482 NULL
143154 +disable_so_mpll_ad_func_cntl_ci_clock_registers_49490 mpll_ad_func_cntl ci_clock_registers 0 49490 NULL nohasharray
143155 +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
143156 +disable_so_i2c_write_le16_fndecl_49491 i2c_write_le16 fndecl 0 49491 NULL nohasharray
143157 +disable_so_svm_compute_tsc_offset_fndecl_49491 svm_compute_tsc_offset fndecl 0-2 49491 &disable_so_i2c_write_le16_fndecl_49491
143158 +disable_so_d_rtbtimer_xfs_disk_dquot_49495 d_rtbtimer xfs_disk_dquot 0 49495 NULL
143159 +disable_so_parport_set_timeout_fndecl_49497 parport_set_timeout fndecl 2-0 49497 NULL
143160 +disable_so_radelay_esp_49498 radelay esp 0 49498 NULL
143161 +disable_so_addr_i2c_board_info_49507 addr i2c_board_info 0 49507 NULL
143162 +disable_so_adma_addr_sdhci_host_49508 adma_addr sdhci_host 0 49508 NULL
143163 +disable_so_rq_addr_t3_rdma_init_wr_49515 rq_addr t3_rdma_init_wr 0 49515 NULL
143164 +disable_so_runtime_remaining_cfs_rq_49516 runtime_remaining cfs_rq 0 49516 NULL
143165 +disable_so_dreq_timestamp_time_dccp_request_sock_49520 dreq_timestamp_time dccp_request_sock 0 49520 NULL
143166 +disable_so_regmap_add_irq_chip_fndecl_49529 regmap_add_irq_chip fndecl 4-0-2-3 49529 NULL
143167 +disable_so_drm_fixp_div_fndecl_49535 drm_fixp_div fndecl 0-1-2 49535 NULL
143168 +disable_so_ar_addr_qla8044_quad_entry_49543 ar_addr qla8044_quad_entry 0 49543 NULL
143169 +disable_so_regcache_lzo_compress_cache_block_fndecl_49544 regcache_lzo_compress_cache_block fndecl 0 49544 NULL
143170 +disable_so___subtree_last_interval_tree_node_49547 __subtree_last interval_tree_node 0 49547 NULL
143171 +disable_so_pll1_feedback_div_ad9523_platform_data_49550 pll1_feedback_div ad9523_platform_data 0 49550 NULL nohasharray
143172 +disable_so_uncore_get_attr_cpumask_fndecl_49550 uncore_get_attr_cpumask fndecl 0 49550 &disable_so_pll1_feedback_div_ad9523_platform_data_49550
143173 +disable_so_read_clocksource_49555 read clocksource 0 49555 NULL
143174 +disable_so_hash_sk_buff_49561 hash sk_buff 0 49561 NULL
143175 +disable_so_I_T_nexus_loss_timeout_sas_end_device_49562 I_T_nexus_loss_timeout sas_end_device 0 49562 NULL nohasharray
143176 +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
143177 +disable_so_alarm_clock_getres_fndecl_49575 alarm_clock_getres fndecl 1 49575 NULL
143178 +disable_so_regcache_lzo_get_blkpos_fndecl_49577 regcache_lzo_get_blkpos fndecl 0-2 49577 NULL
143179 +disable_so_atyfb_get_pixclock_fndecl_49582 atyfb_get_pixclock fndecl 0 49582 NULL
143180 +disable_so_mclkdiv_pll_div_49594 mclkdiv pll_div 0 49594 NULL
143181 +disable_so_frame_phys_addr_megasas_cmd_49601 frame_phys_addr megasas_cmd 0 49601 NULL nohasharray
143182 +disable_so_ccp_sha_digest_fndecl_49601 ccp_sha_digest fndecl 0 49601 &disable_so_frame_phys_addr_megasas_cmd_49601
143183 +disable_so_si476x_core_cmd_am_tune_freq_a10_fndecl_49610 si476x_core_cmd_am_tune_freq_a10 fndecl 0 49610 NULL
143184 +disable_so_sctp_setsockopt_delayed_ack_fndecl_49618 sctp_setsockopt_delayed_ack fndecl 3-0 49618 NULL
143185 +disable_so_gpu_addr_radeon_ring_49632 gpu_addr radeon_ring 0 49632 NULL
143186 +disable_so_uac_clock_selector_get_val_fndecl_49639 uac_clock_selector_get_val fndecl 0-2 49639 NULL nohasharray
143187 +disable_so_osc_clock_freq_drxd_state_49639 osc_clock_freq drxd_state 0 49639 &disable_so_uac_clock_selector_get_val_fndecl_49639
143188 +disable_so_addr_rx_desc_49640 addr rx_desc 0 49640 NULL
143189 +disable_so_r600_engine_clock_entry_set_reference_divider_fndecl_49644 r600_engine_clock_entry_set_reference_divider fndecl 3 49644 NULL
143190 +disable_so_set_fan_div_fndecl_49645 set_fan_div fndecl 0-4 49645 NULL nohasharray
143191 +disable_so_intermediate_freq_drx_common_attr_49645 intermediate_freq drx_common_attr 0 49645 &disable_so_set_fan_div_fndecl_49645
143192 +disable_so_wr32_nvkm_ofuncs_49648 wr32 nvkm_ofuncs 2-3 49648 NULL
143193 +disable_so__rtl8821ae_phy_calculate_bit_shift_fndecl_49649 _rtl8821ae_phy_calculate_bit_shift fndecl 0-1 49649 NULL
143194 +disable_so_cpufreq_governor_start_fndecl_49658 cpufreq_governor_start fndecl 0 49658 NULL
143195 +disable_so_mcgstatus_mce_49682 mcgstatus mce 0 49682 NULL
143196 +disable_so_bitmap_size_f2fs_nm_info_49684 bitmap_size f2fs_nm_info 0 49684 NULL
143197 +disable_so_SYSC_setgid_fndecl_49688 SYSC_setgid fndecl 0 49688 NULL
143198 +disable_so_dx_tss_segment_16_49692 dx tss_segment_16 0 49692 NULL
143199 +disable_so_tg3_test_interrupt_fndecl_49694 tg3_test_interrupt fndecl 0 49694 NULL
143200 +disable_so_rv6xx_compute_count_for_delay_fndecl_49697 rv6xx_compute_count_for_delay fndecl 0-2-3 49697 NULL
143201 +disable_so_read_time_mei_cl_cb_49706 read_time mei_cl_cb 0 49706 NULL
143202 +disable_so_addrconf_forward_change_fndecl_49711 addrconf_forward_change fndecl 2 49711 NULL
143203 +disable_so_cx24113_writereg_fndecl_49714 cx24113_writereg fndecl 0-3 49714 NULL
143204 +disable_so_demod_address_tda1004x_config_49721 demod_address tda1004x_config 0 49721 NULL
143205 +disable_so_device_timestamp_ieee80211_channel_switch_49722 device_timestamp ieee80211_channel_switch 0 49722 NULL
143206 +disable_so_gid_fileEntry_49725 gid fileEntry 0 49725 NULL
143207 +disable_so_dma_addr_clx2_queue_49729 dma_addr clx2_queue 0 49729 NULL
143208 +disable_so_extsize_crypto_type_49730 extsize crypto_type 0 49730 NULL
143209 +disable_so_k__fll_div_49732 k _fll_div 0 49732 NULL
143210 +disable_so_sumo_set_ss_dividers_fndecl_49747 sumo_set_ss_dividers fndecl 2-3 49747 NULL
143211 +disable_so_i2c_clock_i2c_algo_pca_data_49751 i2c_clock i2c_algo_pca_data 0 49751 NULL nohasharray
143212 +disable_so_skb_get_hash_perturb_fndecl_49751 skb_get_hash_perturb fndecl 0 49751 &disable_so_i2c_clock_i2c_algo_pca_data_49751
143213 +disable_so_expire_llc_timer_49752 expire llc_timer 0 49752 NULL
143214 +disable_so_rdma_copy_addr_fndecl_49754 rdma_copy_addr fndecl 0 49754 NULL
143215 +disable_so_hblank___fb_timings_49755 hblank __fb_timings 0 49755 NULL
143216 +disable_so_stripe_count_nfs4_file_layout_dsaddr_49758 stripe_count nfs4_file_layout_dsaddr 0 49758 NULL
143217 +disable_so_inet_rtm_newaddr_fndecl_49766 inet_rtm_newaddr fndecl 0 49766 NULL nohasharray
143218 +disable_so_generic_handle_irq_fndecl_49766 generic_handle_irq fndecl 1 49766 &disable_so_inet_rtm_newaddr_fndecl_49766
143219 +disable_so_parport_ieee1284_ecp_write_addr_fndecl_49769 parport_ieee1284_ecp_write_addr fndecl 0 49769 NULL
143220 +disable_so_dl_runtime_sched_dl_entity_49775 dl_runtime sched_dl_entity 0 49775 NULL
143221 +disable_so_cur_saddr_pktgen_dev_49776 cur_saddr pktgen_dev 0 49776 NULL
143222 +disable_so_nf_ct_expect_dst_hash_fndecl_49778 nf_ct_expect_dst_hash fndecl 0 49778 NULL
143223 +disable_so_compat_sys_times_fndecl_49783 compat_sys_times fndecl 0 49783 NULL nohasharray
143224 +disable_so___bitmap_shift_left_fndecl_49783 __bitmap_shift_left fndecl 3-4 49783 &disable_so_compat_sys_times_fndecl_49783
143225 +disable_so_sq_addr_high_nes_qp_context_49784 sq_addr_high nes_qp_context 0 49784 NULL
143226 +disable_so_phy_address_ethtool_cmd_49790 phy_address ethtool_cmd 0 49790 NULL
143227 +disable_so_intr_timer_type_vnic_enet_config_49793 intr_timer_type vnic_enet_config 0 49793 NULL
143228 +disable_so_end_time_bfa_diag_dport_result_s_49798 end_time bfa_diag_dport_result_s 0 49798 NULL
143229 +disable_so_prot_addr_saa7146_video_dma_49808 prot_addr saa7146_video_dma 0 49808 NULL
143230 +disable_so_p2m_timeout_show_fndecl_49814 p2m_timeout_show fndecl 0 49814 NULL
143231 +disable_so_pr_uid_compat_elf_prpsinfo_49815 pr_uid compat_elf_prpsinfo 0 49815 NULL
143232 +disable_so_pch_udc_disable_ep_interrupts_fndecl_49816 pch_udc_disable_ep_interrupts fndecl 2 49816 NULL
143233 +disable_so_bd_list_addr_lo_bnx2i_login_request_49817 bd_list_addr_lo bnx2i_login_request 0 49817 NULL
143234 +disable_so_nsec_pvclock_wall_clock_49833 nsec pvclock_wall_clock 0 49833 NULL
143235 +disable_so_bss_lose_timeout_conf_conn_settings_49850 bss_lose_timeout conf_conn_settings 0 49850 NULL
143236 +disable_so_snd_opl3_timer1_init_fndecl_49852 snd_opl3_timer1_init fndecl 0-2 49852 NULL
143237 +disable_so_data_crb_addr_pair_49859 data crb_addr_pair 0 49859 NULL
143238 +disable_so_txeol_interrupt_mask_ath_hw_49864 txeol_interrupt_mask ath_hw 0 49864 NULL
143239 +disable_so_ctrl_freq_set_fndecl_49865 ctrl_freq_set fndecl 3 49865 NULL
143240 +disable_so_freq_pda_iq_autocal_entry_49869 freq pda_iq_autocal_entry 0 49869 NULL
143241 +disable_so_kempld_wdt_set_timeout_fndecl_49893 kempld_wdt_set_timeout fndecl 2 49893 NULL
143242 +disable_so_nilfs_btree_node_set_ptr_fndecl_49897 nilfs_btree_node_set_ptr fndecl 2-3 49897 NULL
143243 +disable_so_time_to_val_fndecl_49902 time_to_val fndecl 0-4-2-3 49902 NULL
143244 +disable_so_capture_timestamp_qla27xx_fwdt_template_49904 capture_timestamp qla27xx_fwdt_template 0 49904 NULL nohasharray
143245 +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
143246 +disable_so_set_spdif_clock_snd_ice1712_49905 set_spdif_clock snd_ice1712 2 49905 NULL
143247 +disable_so_nmi_evntsel_msr_to_bit_fndecl_49906 nmi_evntsel_msr_to_bit fndecl 0-1 49906 NULL
143248 +disable_so_get_ipv6_addr_fndecl_49909 get_ipv6_addr fndecl 2 49909 NULL
143249 +disable_so_bitstream_cursor_advance_fndecl_49911 bitstream_cursor_advance fndecl 2 49911 NULL
143250 +disable_so_trap_addr_sdpcm_shared_49924 trap_addr sdpcm_shared 0 49924 NULL
143251 +disable_so_show_port_gid_fndecl_49927 show_port_gid fndecl 0 49927 NULL
143252 +disable_so_ib_sa_guid_info_rec_query_fndecl_49928 ib_sa_guid_info_rec_query fndecl 0-3-5-7-8 49928 NULL
143253 +disable_so_mtrr_type_lookup_fndecl_49929 mtrr_type_lookup fndecl 1-2 49929 NULL
143254 +disable_so_persistent_offset_sst_module_runtime_49933 persistent_offset sst_module_runtime 0 49933 NULL
143255 +disable_so_lvb_ictime_packed_ocfs2_meta_lvb_49940 lvb_ictime_packed ocfs2_meta_lvb 0 49940 NULL
143256 +disable_so_boost_freq_lm3533_platform_data_49943 boost_freq lm3533_platform_data 0 49943 NULL
143257 +disable_so_inet_twsk_schedule_fndecl_49946 inet_twsk_schedule fndecl 2 49946 NULL
143258 +disable_so_host_time_adj_time_work_49952 host_time adj_time_work 0 49952 NULL
143259 +disable_so_b43_dma_address_fndecl_49953 b43_dma_address fndecl 0-2 49953 NULL
143260 +disable_so_max_delay_iwl_time_event_cmd_49957 max_delay iwl_time_event_cmd 0 49957 NULL
143261 +disable_so_shash_final_unaligned_fndecl_49961 shash_final_unaligned fndecl 0 49961 NULL
143262 +disable_so_mpll_func_cntl_si_clock_registers_49965 mpll_func_cntl si_clock_registers 0 49965 NULL
143263 +disable_so_nfsd4_write_time_fndecl_49969 nfsd4_write_time fndecl 0 49969 NULL
143264 +disable_so_ds1374_set_time_fndecl_49975 ds1374_set_time fndecl 0 49975 NULL
143265 +disable_so_batadv_hash_new_fndecl_49976 batadv_hash_new fndecl 1 49976 NULL
143266 +disable_so_timeout_i2c_adapter_49981 timeout i2c_adapter 0 49981 NULL nohasharray
143267 +disable_so_delay_radeon_voltage_49981 delay radeon_voltage 0 49981 &disable_so_timeout_i2c_adapter_49981 nohasharray
143268 +disable_so___cpufreq_stats_create_table_fndecl_49981 __cpufreq_stats_create_table fndecl 0 49981 &disable_so_delay_radeon_voltage_49981
143269 +disable_so_op_x86_virt_to_phys_fndecl_49986 op_x86_virt_to_phys fndecl 0-1 49986 NULL nohasharray
143270 +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
143271 +disable_so_dib7000p_get_internal_freq_fndecl_49987 dib7000p_get_internal_freq fndecl 0 49987 NULL nohasharray
143272 +disable_so_msr_daio_desc_49987 msr daio_desc 0 49987 &disable_so_dib7000p_get_internal_freq_fndecl_49987
143273 +disable_so_RF_SYN_reserved_addr28_chan_info_nphy_radio205x_49990 RF_SYN_reserved_addr28 chan_info_nphy_radio205x 0 49990 NULL
143274 +disable_so_timer_vardecl_iphase_c_49991 timer vardecl_iphase.c 0 49991 NULL
143275 +disable_so_typhoon_sleep_fndecl_49999 typhoon_sleep fndecl 0-2 49999 NULL
143276 +disable_so_confq_first_pbe_addr_lo_fcoe_kwqe_conn_offload3_50012 confq_first_pbe_addr_lo fcoe_kwqe_conn_offload3 0 50012 NULL
143277 +disable_so__rtl92d_phy_calculate_bit_shift_fndecl_50016 _rtl92d_phy_calculate_bit_shift fndecl 0-1 50016 NULL
143278 +disable_so_ds1307_set_time_fndecl_50017 ds1307_set_time fndecl 0 50017 NULL
143279 +disable_so_dma_addr__DMABUFFERENTRY_50032 dma_addr _DMABUFFERENTRY 0 50032 NULL
143280 +disable_so_payload_addr_isp1760_qtd_50045 payload_addr isp1760_qtd 0 50045 NULL
143281 +disable_so_crypto_pcbc_encrypt_fndecl_50054 crypto_pcbc_encrypt fndecl 0-4 50054 NULL
143282 +disable_so_tcp_shift_skb_data_fndecl_50056 tcp_shift_skb_data fndecl 5-4 50056 NULL
143283 +disable_so_reference_div_radeon_pll_50062 reference_div radeon_pll 0 50062 NULL
143284 +disable_so_io_addr_blogic_adapter_50066 io_addr blogic_adapter 0 50066 NULL
143285 +disable_so_bfs_paprd_timestamp_ath_buf_state_50090 bfs_paprd_timestamp ath_buf_state 0 50090 NULL
143286 +disable_so_address_bau_msg_payload_50110 address bau_msg_payload 0 50110 NULL
143287 +disable_so_scsi_reset_delay_adveep_3550_config_50118 scsi_reset_delay adveep_3550_config 0 50118 NULL
143288 +disable_so_start_bit_alps_bitmap_point_50119 start_bit alps_bitmap_point 0 50119 NULL
143289 +disable_so_i_atime_ext2_inode_50120 i_atime ext2_inode 0 50120 NULL nohasharray
143290 +disable_so_link_down_time_swStat_50120 link_down_time swStat 0 50120 &disable_so_i_atime_ext2_inode_50120
143291 +disable_so_sys_timerfd_settime_fndecl_50127 sys_timerfd_settime fndecl 1 50127 NULL nohasharray
143292 +disable_so_t1timer_lapb_parms_struct_50127 t1timer lapb_parms_struct 0 50127 &disable_so_sys_timerfd_settime_fndecl_50127
143293 +disable_so_lp8755_buck_enable_time_fndecl_50128 lp8755_buck_enable_time fndecl 0 50128 NULL
143294 +disable_so_hash_v4_fndecl_50129 hash_v4 fndecl 0 50129 NULL
143295 +disable_so_btree_lookup128_fndecl_50132 btree_lookup128 fndecl 3 50132 NULL
143296 +disable_so_data_msr_data_50133 data msr_data 0 50133 NULL
143297 +disable_so_max_freq_ufs_clk_info_50134 max_freq ufs_clk_info 0 50134 NULL
143298 +disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136 carl9170_debugfs_tx_ampdu_scheduler_read fndecl 3 50136 NULL nohasharray
143299 +disable_so_write32_tg3_50136 write32 tg3 3 50136 &disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136
143300 +disable_so_vm_addr_fndecl_50143 vm_addr fndecl 0-2-3-4 50143 NULL
143301 +disable_so_mmc_sd_runtime_suspend_fndecl_50164 mmc_sd_runtime_suspend fndecl 0 50164 NULL
143302 +disable_so_msr_pcap_chip_50171 msr pcap_chip 0 50171 NULL
143303 +disable_so_ptp_clock_index_fndecl_50179 ptp_clock_index fndecl 0 50179 NULL nohasharray
143304 +disable_so_str2hashbuf_signed_fndecl_50179 str2hashbuf_signed fndecl 2 50179 &disable_so_ptp_clock_index_fndecl_50179
143305 +disable_so_dapm_clock_event_fndecl_50184 dapm_clock_event fndecl 0 50184 NULL nohasharray
143306 +disable_so_skcipher_null_givdecrypt_fndecl_50184 skcipher_null_givdecrypt fndecl 0 50184 &disable_so_dapm_clock_event_fndecl_50184
143307 +disable_so_nlm_timeout_vardecl_svc_c_50197 nlm_timeout vardecl_svc.c 0 50197 NULL
143308 +disable_so_st_mtime_nsec_stat_50200 st_mtime_nsec stat 0 50200 NULL
143309 +disable_so_haddr_tpd_haddr_50202 haddr tpd_haddr 0 50202 NULL
143310 +disable_so_cx24116_sleep_fndecl_50204 cx24116_sleep fndecl 0 50204 NULL
143311 +disable_so_printframe_fndecl_50210 printframe fndecl 3 50210 NULL nohasharray
143312 +disable_so_pch_udc_write_device_interrupts_fndecl_50210 pch_udc_write_device_interrupts fndecl 2 50210 &disable_so_printframe_fndecl_50210
143313 +disable_so_measure_12bit_voltage_fndecl_50211 measure_12bit_voltage fndecl 0-2 50211 NULL
143314 +disable_so_mcheck_init_device_fndecl_50223 mcheck_init_device fndecl 0 50223 NULL
143315 +disable_so_igb_init_rx_addrs_fndecl_50228 igb_init_rx_addrs fndecl 2 50228 NULL
143316 +disable_so_s11_img_ir_timing_regvals_50232 s11 img_ir_timing_regvals 0 50232 NULL
143317 +disable_so_paddr_mwifiex_pcie_buf_desc_50236 paddr mwifiex_pcie_buf_desc 0 50236 NULL
143318 +disable_so_rdma_resolve_addr_fndecl_50240 rdma_resolve_addr fndecl 0 50240 NULL
143319 +disable_so_mlx4_ib_notify_slaves_on_guid_change_fndecl_50248 mlx4_ib_notify_slaves_on_guid_change fndecl 2-3 50248 NULL
143320 +disable_so_si476x_core_cmd_am_tune_freq_a20_fndecl_50250 si476x_core_cmd_am_tune_freq_a20 fndecl 0 50250 NULL
143321 +disable_so_addr_lo_dma_address_50252 addr_lo dma_address 0 50252 NULL
143322 +disable_so_scsi_runtime_resume_fndecl_50254 scsi_runtime_resume fndecl 0 50254 NULL
143323 +disable_so_pkt_rbtree_find_fndecl_50259 pkt_rbtree_find fndecl 2 50259 NULL
143324 +disable_so_p_div_aic31xx_priv_50261 p_div aic31xx_priv 0 50261 NULL
143325 +disable_so_da9052_rtc_set_time_fndecl_50269 da9052_rtc_set_time fndecl 0 50269 NULL
143326 +disable_so_read_addr_qla4_83xx_minidump_entry_rdmem_pex_dma_50271 read_addr qla4_83xx_minidump_entry_rdmem_pex_dma 0 50271 NULL
143327 +disable_so_timeout_jiffies_qib_qp_50276 timeout_jiffies qib_qp 0 50276 NULL
143328 +disable_so_tmr_restart_sound_lowlev_timer_50278 tmr_restart sound_lowlev_timer 1 50278 NULL
143329 +disable_so_irq_domain_free_irqs_common_fndecl_50279 irq_domain_free_irqs_common fndecl 2-3 50279 NULL nohasharray
143330 +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
143331 +disable_so_eop_ring_buffer_address_queue_properties_50280 eop_ring_buffer_address queue_properties 0 50280 NULL
143332 +disable_so_bna_rx_coalescing_timeo_set_fndecl_50282 bna_rx_coalescing_timeo_set fndecl 2 50282 NULL
143333 +disable_so_shash_compat_update_fndecl_50285 shash_compat_update fndecl 0-3 50285 NULL
143334 +disable_so_get_physaddr_buffered_ioctl_fndecl_50286 get_physaddr_buffered_ioctl fndecl 0 50286 NULL
143335 +disable_so_snd_hrtimer_init_fndecl_50291 snd_hrtimer_init fndecl 0 50291 NULL
143336 +disable_so_cpuidle_add_state_sysfs_fndecl_50292 cpuidle_add_state_sysfs fndecl 0 50292 NULL
143337 +disable_so_bitmap_set_bits_fndecl_50299 bitmap_set_bits fndecl 3-4 50299 NULL
143338 +disable_so_cur_sge_off_fcoe_mul_sges_ctx_50300 cur_sge_off fcoe_mul_sges_ctx 0 50300 NULL
143339 +disable_so_mpll_func_cntl_1_si_clock_registers_50301 mpll_func_cntl_1 si_clock_registers 0 50301 NULL
143340 +disable_so_genwqe_debugfs_curr_dbg_uid0_open_fndecl_50304 genwqe_debugfs_curr_dbg_uid0_open fndecl 0 50304 NULL
143341 +disable_so_tx_interframe_timeout_wil6210_priv_50305 tx_interframe_timeout wil6210_priv 0 50305 NULL
143342 +disable_so_pending_csums_btrfs_delayed_ref_root_50311 pending_csums btrfs_delayed_ref_root 0 50311 NULL
143343 +disable_so_addr_count_blogic_adapter_50326 addr_count blogic_adapter 0 50326 NULL
143344 +disable_so_cpufreq_out_of_sync_fndecl_50327 cpufreq_out_of_sync fndecl 2 50327 NULL nohasharray
143345 +disable_so_typ_timing_entry_50327 typ timing_entry 0 50327 &disable_so_cpufreq_out_of_sync_fndecl_50327
143346 +disable_so_used_skcipher_ctx_50342 used skcipher_ctx 0 50342 NULL
143347 +disable_so_iscsit_create_random_array_fndecl_50360 iscsit_create_random_array fndecl 2 50360 NULL
143348 +disable_so_current_frequency_s5h1409_state_50366 current_frequency s5h1409_state 0 50366 NULL
143349 +disable_so_cb_camif_addr_50371 cb camif_addr 0 50371 NULL
143350 +disable_so_prepare_kswapd_sleep_fndecl_50377 prepare_kswapd_sleep fndecl 2-3 50377 NULL
143351 +disable_so___tcf_hash_release_fndecl_50380 __tcf_hash_release fndecl 0 50380 NULL
143352 +disable_so_ntfs_bitmap_clear_bit_fndecl_50382 ntfs_bitmap_clear_bit fndecl 2 50382 NULL
143353 +disable_so_tg3_ptp_adjtime_fndecl_50384 tg3_ptp_adjtime fndecl 2 50384 NULL
143354 +disable_so_xfs_btree_copy_recs_fndecl_50385 xfs_btree_copy_recs fndecl 4 50385 NULL
143355 +disable_so___cpufreq_get_fndecl_50397 __cpufreq_get fndecl 0 50397 NULL
143356 +disable_so_rtl821x_ack_interrupt_fndecl_50399 rtl821x_ack_interrupt fndecl 0 50399 NULL
143357 +disable_so_ss_divider_index_sumo_pl_50401 ss_divider_index sumo_pl 0 50401 NULL
143358 +disable_so_igb_runtime_suspend_fndecl_50408 igb_runtime_suspend fndecl 0 50408 NULL nohasharray
143359 +disable_so_hash_ipmark4_expire_fndecl_50408 hash_ipmark4_expire fndecl 4 50408 &disable_so_igb_runtime_suspend_fndecl_50408
143360 +disable_so_addr_TxDesc_50413 addr TxDesc 0 50413 NULL
143361 +disable_so_xfs_btree_dup_cursor_fndecl_50417 xfs_btree_dup_cursor fndecl 0 50417 NULL
143362 +disable_so_channel2freq_bg_fndecl_50421 channel2freq_bg fndecl 0-1 50421 NULL
143363 +disable_so_freq_lo_jiffies_od_cpu_dbs_info_s_50424 freq_lo_jiffies od_cpu_dbs_info_s 0 50424 NULL
143364 +disable_so_time_cifsInodeInfo_50431 time cifsInodeInfo 0 50431 NULL
143365 +disable_so_tps65910_rtc_read_time_fndecl_50446 tps65910_rtc_read_time fndecl 0 50446 NULL
143366 +disable_so_freq_wmi_p2p_rx_probe_req_event_50455 freq wmi_p2p_rx_probe_req_event 0 50455 NULL
143367 +disable_so_ifa_cstamp_in_ifaddr_50464 ifa_cstamp in_ifaddr 0 50464 NULL
143368 +disable_so_reg_ds1685_rtc_time_regs_50466 reg ds1685_rtc_time_regs 0 50466 NULL
143369 +disable_so_n_freq_tbl_50468 n freq_tbl 0 50468 NULL
143370 +disable_so_hash_code_f2fs_dir_entry_50474 hash_code f2fs_dir_entry 0 50474 NULL
143371 +disable_so_link_check_timeout_i40e_pf_50476 link_check_timeout i40e_pf 0 50476 NULL
143372 +disable_so_addr_lo_eth_rx_cqe_next_page_50479 addr_lo eth_rx_cqe_next_page 0 50479 NULL
143373 +disable_so_sr_timestamp_nfs4_sequence_res_50481 sr_timestamp nfs4_sequence_res 0 50481 NULL nohasharray
143374 +disable_so_cpumask_parse_fndecl_50481 cpumask_parse fndecl 0 50481 &disable_so_sr_timestamp_nfs4_sequence_res_50481
143375 +disable_so_set_pte_vaddr_pud_fndecl_50497 set_pte_vaddr_pud fndecl 2 50497 NULL
143376 +disable_so_pa_rxrf_lna1_freq_tune_chan_info_2064_lcnphy_50502 pa_rxrf_lna1_freq_tune chan_info_2064_lcnphy 0 50502 NULL
143377 +disable_so_uv_global_gru_mmr_address_fndecl_50507 uv_global_gru_mmr_address fndecl 0-1-2 50507 NULL
143378 +disable_so_address_desc_ptr_50509 address desc_ptr 0 50509 NULL
143379 +disable_so_crypto_aead_alg_maxauthsize_fndecl_50510 crypto_aead_alg_maxauthsize fndecl 0 50510 NULL
143380 +disable_so_pci_get_interrupt_pin_fndecl_50512 pci_get_interrupt_pin fndecl 0 50512 NULL
143381 +disable_so_addr_assign_type_show_fndecl_50513 addr_assign_type_show fndecl 0 50513 NULL
143382 +disable_so_frequency_si4713_device_50518 frequency si4713_device 0 50518 NULL
143383 +disable_so__iommu_cpumask_show_fndecl_50522 _iommu_cpumask_show fndecl 0 50522 NULL
143384 +disable_so_mma9551_runtime_resume_fndecl_50531 mma9551_runtime_resume fndecl 0 50531 NULL
143385 +disable_so_mvs_set_sas_addr_fndecl_50535 mvs_set_sas_addr fndecl 2-5 50535 NULL
143386 +disable_so_rv3029c2_rtc_set_time_fndecl_50537 rv3029c2_rtc_set_time fndecl 0 50537 NULL nohasharray
143387 +disable_so__zd_iowrite32v_async_locked_fndecl_50537 _zd_iowrite32v_async_locked fndecl 3-0 50537 &disable_so_rv3029c2_rtc_set_time_fndecl_50537
143388 +disable_so_demod_addr_m88rs2000_config_50543 demod_addr m88rs2000_config 0 50543 NULL
143389 +disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547 mv88e6xxx_set_addr_indirect fndecl 0 50547 NULL nohasharray
143390 +disable_so_bind_evtchn_to_irqhandler_fndecl_50547 bind_evtchn_to_irqhandler fndecl 0-1 50547 &disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547
143391 +disable_so_twl6030_interrupt_unmask_fndecl_50550 twl6030_interrupt_unmask fndecl 2-0 50550 NULL
143392 +disable_so_recovery_pio_clocks_50551 recovery pio_clocks 0 50551 NULL
143393 +disable_so_lp8788_rtc_read_time_fndecl_50573 lp8788_rtc_read_time fndecl 0 50573 NULL nohasharray
143394 +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
143395 +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
143396 +disable_so_beacon_timeout_ieee80211_if_managed_50580 beacon_timeout ieee80211_if_managed 0 50580 NULL
143397 +disable_so_mag3110_get_samp_freq_index_fndecl_50581 mag3110_get_samp_freq_index fndecl 0 50581 NULL
143398 +disable_so_sock_get_timestamp_fndecl_50582 sock_get_timestamp fndecl 0 50582 NULL
143399 +disable_so_addr_low_lancer_cmd_req_read_object_50585 addr_low lancer_cmd_req_read_object 0 50585 NULL
143400 +disable_so_regcache_lzo_write_fndecl_50595 regcache_lzo_write fndecl 0-2-3 50595 NULL
143401 +disable_so_enable_time_regulator_desc_50604 enable_time regulator_desc 0 50604 NULL
143402 +disable_so___cpufreq_driver_target_fndecl_50610 __cpufreq_driver_target fndecl 2 50610 NULL
143403 +disable_so_mt_ctxbitmap_gru_mm_tracker_50612 mt_ctxbitmap gru_mm_tracker 0 50612 NULL
143404 +disable_so_compat_sys_futimesat_fndecl_50617 compat_sys_futimesat fndecl 1-0 50617 NULL
143405 +disable_so_bind_timeout_rpc_xprt_50622 bind_timeout rpc_xprt 0 50622 NULL
143406 +disable_so_wait_conversion_complete_interrupt_fndecl_50628 wait_conversion_complete_interrupt fndecl 0 50628 NULL
143407 +disable_so_minimum_acpi_address64_attribute_50631 minimum acpi_address64_attribute 0 50631 NULL
143408 +disable_so_radix_tree_delete_fndecl_50632 radix_tree_delete fndecl 2 50632 NULL
143409 +disable_so_snd_timer_user_stop_fndecl_50656 snd_timer_user_stop fndecl 0 50656 NULL
143410 +disable_so_m_hi_cfg_timing_div_drxk_state_50665 m_hi_cfg_timing_div drxk_state 0 50665 NULL
143411 +disable_so_r_timeout_ceph_mds_request_50669 r_timeout ceph_mds_request 0 50669 NULL
143412 +disable_so_snd_timer_continue_fndecl_50670 snd_timer_continue fndecl 0 50670 NULL
143413 +disable_so_dwc3_ep0_set_isoch_delay_fndecl_50672 dwc3_ep0_set_isoch_delay fndecl 0 50672 NULL
143414 +disable_so_btree_submit_bio_hook_fndecl_50677 btree_submit_bio_hook fndecl 0-2-6 50677 NULL
143415 +disable_so_start_pid_hrtimer_50687 start_pid hrtimer 0 50687 NULL
143416 +disable_so_deliver_posted_interrupt_kvm_x86_ops_50698 deliver_posted_interrupt kvm_x86_ops 2 50698 NULL
143417 +disable_so_pwm_divisor_max8997_haptic_50704 pwm_divisor max8997_haptic 0 50704 NULL
143418 +disable_so_dma_addr_iwl_queue_50725 dma_addr iwl_queue 0 50725 NULL
143419 +disable_so_di_uid_qnx4_inode_entry_50728 di_uid qnx4_inode_entry 0 50728 NULL
143420 +disable_so_nfs_idmap_cache_timeout_vardecl_50733 nfs_idmap_cache_timeout vardecl 0 50733 NULL
143421 +disable_so_carl9170_set_beacon_timers_fndecl_50741 carl9170_set_beacon_timers fndecl 0 50741 NULL
143422 +disable_so_msg_addr_hi_vf_pf_event_data_50756 msg_addr_hi vf_pf_event_data 0 50756 NULL
143423 +disable_so_jiffies_vid_cap_vivid_dev_50760 jiffies_vid_cap vivid_dev 0 50760 NULL
143424 +disable_so_addr_amdgpu_dummy_page_50765 addr amdgpu_dummy_page 0 50765 NULL
143425 +disable_so_img_i2c_raw_atomic_delay_handler_fndecl_50779 img_i2c_raw_atomic_delay_handler fndecl 0 50779 NULL
143426 +disable_so_dst_addr_filter_ipv4_5tuple_50793 dst_addr filter_ipv4_5tuple 0 50793 NULL
143427 +disable_so_remote_ca_guid_ib_cm_rep_event_param_50795 remote_ca_guid ib_cm_rep_event_param 0 50795 NULL nohasharray
143428 +disable_so_ioaddr_physical_voice_info_50795 ioaddr physical_voice_info 0 50795 &disable_so_remote_ca_guid_ib_cm_rep_event_param_50795
143429 +disable_so_xfs_btree_log_recs_fndecl_50800 xfs_btree_log_recs fndecl 3-4 50800 NULL
143430 +disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811 iwl_sta_modify_sleep_tx_count fndecl 2 50811 NULL nohasharray
143431 +disable_so_ldt_tss_segment_16_50811 ldt tss_segment_16 0 50811 &disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811
143432 +disable_so_adxl34x_autosleep_store_fndecl_50816 adxl34x_autosleep_store fndecl 0-4 50816 NULL
143433 +disable_so_io_schedule_timeout_fndecl_50822 io_schedule_timeout fndecl 1-0 50822 NULL
143434 +disable_so_addr_pm8001_prd_50827 addr pm8001_prd 0 50827 NULL
143435 +disable_so_hfsplus_btree_write_fndecl_50829 hfsplus_btree_write fndecl 0 50829 NULL
143436 +disable_so_jfs_strfromUCS_le_fndecl_50830 jfs_strfromUCS_le fndecl 0-3 50830 NULL
143437 +disable_so_dmaaddr_b43_dmadesc_meta_50842 dmaaddr b43_dmadesc_meta 0 50842 NULL
143438 +disable_so_eh_timeout_scsi_device_50843 eh_timeout scsi_device 0 50843 NULL
143439 +disable_so_max_buffer_time_batadv_priv_nc_50848 max_buffer_time batadv_priv_nc 0 50848 NULL
143440 +disable_so_mask_timecounter_50851 mask timecounter 0 50851 NULL
143441 +disable_so_i2c_addr_cx24113_config_50855 i2c_addr cx24113_config 0 50855 NULL
143442 +disable_so_clock_khz_ocores_i2c_platform_data_50856 clock_khz ocores_i2c_platform_data 0 50856 NULL nohasharray
143443 +disable_so_i2c_addr_i2c_device_addr_50856 i2c_addr i2c_device_addr 0 50856 &disable_so_clock_khz_ocores_i2c_platform_data_50856
143444 +disable_so_lp_rx_timeout_intel_dsi_50859 lp_rx_timeout intel_dsi 0 50859 NULL nohasharray
143445 +disable_so_crypto_authenc_givencrypt_done_fndecl_50859 crypto_authenc_givencrypt_done fndecl 2 50859 &disable_so_lp_rx_timeout_intel_dsi_50859
143446 +disable_so_origninator_host_cmd_ds_11n_batimeout_50866 origninator host_cmd_ds_11n_batimeout 0 50866 NULL
143447 +disable_so_ip_vs_conn_hashkey_fndecl_50872 ip_vs_conn_hashkey fndecl 0-2-3 50872 NULL
143448 +disable_so_twa_aen_sync_time_fndecl_50875 twa_aen_sync_time fndecl 2 50875 NULL
143449 +disable_so_cachedaddr_irda_sock_50876 cachedaddr irda_sock 0 50876 NULL
143450 +disable_so_carl9170_find_freq_idx_fndecl_50881 carl9170_find_freq_idx fndecl 3 50881 NULL
143451 +disable_so___next_timer_interrupt_fndecl_50887 __next_timer_interrupt fndecl 0 50887 NULL
143452 +disable_so_reg_addr_reg_val_50891 reg_addr reg_val 0 50891 NULL
143453 +disable_so_dma_ring_addr_i40e_virtchnl_txq_info_50900 dma_ring_addr i40e_virtchnl_txq_info 0 50900 NULL
143454 +disable_so_interval_tree_subtree_search_fndecl_50901 interval_tree_subtree_search fndecl 2-3 50901 NULL
143455 +disable_so_xfs_btree_log_ptrs_fndecl_50906 xfs_btree_log_ptrs fndecl 3-4 50906 NULL
143456 +disable_so_dib8000_get_time_us_fndecl_50908 dib8000_get_time_us fndecl 0 50908 NULL
143457 +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
143458 +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
143459 +disable_so_v_radeon_vce_clock_voltage_dependency_entry_50914 v radeon_vce_clock_voltage_dependency_entry 0 50914 NULL
143460 +disable_so_authenc_verify_ahash_update_done_fndecl_50918 authenc_verify_ahash_update_done fndecl 2 50918 NULL
143461 +disable_so___get_order_fndecl_50924 __get_order fndecl 0-1 50924 NULL
143462 +disable_so_ahash_complete_fndecl_50926 ahash_complete fndecl 2 50926 NULL
143463 +disable_so_aes_encrypt_interrupt_read_fndecl_50940 aes_encrypt_interrupt_read fndecl 3-0 50940 NULL
143464 +disable_so_m_freq_tbl_50942 m freq_tbl 0 50942 NULL
143465 +disable_so_faddr_ptd_50953 faddr ptd 0 50953 NULL
143466 +disable_so_ceph_mdsmap_get_addr_fndecl_50967 ceph_mdsmap_get_addr fndecl 2 50967 NULL
143467 +disable_so_cma_bitmap_aligned_mask_fndecl_50977 cma_bitmap_aligned_mask fndecl 0-2 50977 NULL
143468 +disable_so_iscsi_tpg_attrib_show_login_timeout_fndecl_50979 iscsi_tpg_attrib_show_login_timeout fndecl 0 50979 NULL
143469 +disable_so_send_set_imon_clock_fndecl_50982 send_set_imon_clock fndecl 0 50982 NULL
143470 +disable_so_inet_saddr_inet_sock_50990 inet_saddr inet_sock 0 50990 NULL
143471 +disable_so_qlcnic_get_mac_address_fndecl_50991 qlcnic_get_mac_address fndecl 3 50991 NULL
143472 +disable_so_afs_get_MAC_address_fndecl_50999 afs_get_MAC_address fndecl 0 50999 NULL
143473 +disable_so_timestamp_batadv_frag_table_entry_51002 timestamp batadv_frag_table_entry 0 51002 NULL nohasharray
143474 +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
143475 +disable_so_phy_addr_tg3_51010 phy_addr tg3 0 51010 NULL
143476 +disable_so_vmx_set_tss_addr_fndecl_51020 vmx_set_tss_addr fndecl 0-2 51020 NULL
143477 +disable_so_dialed_frequency_ptp_clock_51022 dialed_frequency ptp_clock 0 51022 NULL nohasharray
143478 +disable_so_get_std_timing_fndecl_51022 get_std_timing fndecl 0 51022 &disable_so_dialed_frequency_ptp_clock_51022
143479 +disable_so_hdspm_get_pll_freq_fndecl_51023 hdspm_get_pll_freq fndecl 0 51023 NULL
143480 +disable_so_sb_timeshift_hpfs_sb_info_51027 sb_timeshift hpfs_sb_info 0 51027 NULL
143481 +disable_so_ob_baseaddr_l_mvumi_hs_page4_51028 ob_baseaddr_l mvumi_hs_page4 0 51028 NULL
143482 +disable_so_tw_snd_nxt_tcp_timewait_sock_51035 tw_snd_nxt tcp_timewait_sock 0 51035 NULL
143483 +disable_so_buffer_used_snd_pcm_oss_runtime_51041 buffer_used snd_pcm_oss_runtime 0 51041 NULL
143484 +disable_so_read_addr_qla8xxx_minidump_entry_queue_51046 read_addr qla8xxx_minidump_entry_queue 0 51046 NULL
143485 +disable_so_address_vardecl_it8712f_wdt_c_51057 address vardecl_it8712f_wdt.c 0 51057 NULL
143486 +disable_so_kr_rcvhdraddr_ipath_kregs_51063 kr_rcvhdraddr ipath_kregs 0 51063 NULL
143487 +disable_so_wlcore_hw_ap_sleep_fndecl_51069 wlcore_hw_ap_sleep fndecl 0 51069 NULL
143488 +disable_so_vnic_dev_intr_coal_timer_info_fndecl_51076 vnic_dev_intr_coal_timer_info fndecl 0 51076 NULL
143489 +disable_so_table2_addr_ipw2100_ordinals_51081 table2_addr ipw2100_ordinals 0 51081 NULL
143490 +disable_so_addr_bnx2x_phy_51087 addr bnx2x_phy 0 51087 NULL
143491 +disable_so_xfs_btree_copy_ptrs_fndecl_51093 xfs_btree_copy_ptrs fndecl 4 51093 NULL
143492 +disable_so_core_frequency_transition_fndecl_51097 core_frequency_transition fndecl 2 51097 NULL
143493 +disable_so_msr_ioctl_fndecl_51103 msr_ioctl fndecl 0 51103 NULL
143494 +disable_so_split_timeout_hi_fw_card_51105 split_timeout_hi fw_card 0 51105 NULL
143495 +disable_so_msg_bits_ccp_sha_req_ctx_51106 msg_bits ccp_sha_req_ctx 0 51106 NULL
143496 +disable_so_page_order_btree_keys_51110 page_order btree_keys 0 51110 NULL
143497 +disable_so_pvclock_gtod_register_notifier_fndecl_51113 pvclock_gtod_register_notifier fndecl 0 51113 NULL
143498 +disable_so_cfg80211_ibss_wext_siwfreq_fndecl_51119 cfg80211_ibss_wext_siwfreq fndecl 0 51119 NULL
143499 +disable_so_pan_id_ieee802154_hw_addr_filt_51121 pan_id ieee802154_hw_addr_filt 0 51121 NULL
143500 +disable_so_alignmask_blkcipher_walk_51130 alignmask blkcipher_walk 0 51130 NULL
143501 +disable_so_i2c_master_send_fndecl_51152 i2c_master_send fndecl 3-0 51152 NULL
143502 +disable_so_skcipher_null_givencrypt_fndecl_51153 skcipher_null_givencrypt fndecl 0 51153 NULL
143503 +disable_so_hr_last_timeout_start_o2hb_region_51155 hr_last_timeout_start o2hb_region 0 51155 NULL
143504 +disable_so_cycles_ath_cycle_counters_51156 cycles ath_cycle_counters 0 51156 NULL
143505 +disable_so_notify_remote_via_irq_fndecl_51164 notify_remote_via_irq fndecl 1 51164 NULL
143506 +disable_so_onenand_block_address_fndecl_51167 onenand_block_address fndecl 0-2 51167 NULL
143507 +disable_so_ctimensec_fuse_setattr_in_51177 ctimensec fuse_setattr_in 0 51177 NULL
143508 +disable_so_exp_time_mesh_path_51180 exp_time mesh_path 0 51180 NULL
143509 +disable_so_tcp_try_rmem_schedule_fndecl_51194 tcp_try_rmem_schedule fndecl 3 51194 NULL
143510 +disable_so_avail_mlx4_bitmap_51198 avail mlx4_bitmap 0 51198 NULL
143511 +disable_so_s2mpa01_set_ramp_delay_fndecl_51200 s2mpa01_set_ramp_delay fndecl 0 51200 NULL
143512 +disable_so_addr_e820entry_51224 addr e820entry 0 51224 NULL
143513 +disable_so_rx_dma_addr_smsc9420_pdata_51225 rx_dma_addr smsc9420_pdata 0 51225 NULL
143514 +disable_so_trf7970a_pm_runtime_resume_fndecl_51233 trf7970a_pm_runtime_resume fndecl 0 51233 NULL
143515 +disable_so_pfkey_sockaddr_extract_fndecl_51238 pfkey_sockaddr_extract fndecl 0 51238 NULL
143516 +disable_so_clock_snd_ac97_bus_51245 clock snd_ac97_bus 0 51245 NULL
143517 +disable_so_mtime_dir_entry_51261 mtime dir_entry 0 51261 NULL
143518 +disable_so_address_upper_scu_sgl_element_51271 address_upper scu_sgl_element 0 51271 NULL
143519 +disable_so_resolution_vardecl_hrtimer_c_51279 resolution vardecl_hrtimer.c 0 51279 NULL nohasharray
143520 +disable_so_r600_dpm_get_vblank_time_fndecl_51279 r600_dpm_get_vblank_time fndecl 0 51279 &disable_so_resolution_vardecl_hrtimer_c_51279
143521 +disable_so___ndelay_fndecl_51287 __ndelay fndecl 1 51287 NULL
143522 +disable_so_hashbin_lock_find_fndecl_51294 hashbin_lock_find fndecl 2 51294 NULL
143523 +disable_so_snd_es1968_apu_set_freq_fndecl_51295 snd_es1968_apu_set_freq fndecl 3 51295 NULL
143524 +disable_so_lvb_iuid_ocfs2_meta_lvb_51297 lvb_iuid ocfs2_meta_lvb 0 51297 NULL
143525 +disable_so_usb2_lpm_l1_timeout_show_fndecl_51308 usb2_lpm_l1_timeout_show fndecl 0 51308 NULL
143526 +disable_so_addrHigh_ULP_BDL_51312 addrHigh ULP_BDL 0 51312 NULL
143527 +disable_so_alarm_timer_nsleep_fndecl_51313 alarm_timer_nsleep fndecl 1 51313 NULL nohasharray
143528 +disable_so_cpufreq_get_max_state_fndecl_51313 cpufreq_get_max_state fndecl 1 51313 &disable_so_alarm_timer_nsleep_fndecl_51313
143529 +disable_so_addr_buffer2_cmd_desc_type0_51316 addr_buffer2 cmd_desc_type0 0 51316 NULL
143530 +disable_so___mlx4_cmd_fndecl_51319 __mlx4_cmd fndecl 0-2-5 51319 NULL
143531 +disable_so_addr_nvif_ioctl_rd_v0_51321 addr nvif_ioctl_rd_v0 0 51321 NULL
143532 +disable_so_register_write_lock_rt2800_ops_51323 register_write_lock rt2800_ops 3 51323 NULL
143533 +disable_so_addr_host_sg_desc_51324 addr host_sg_desc 0 51324 NULL
143534 +disable_so_swc_base_addr_vardecl_pc87413_wdt_c_51328 swc_base_addr vardecl_pc87413_wdt.c 0 51328 NULL
143535 +disable_so_myri10ge_set_mac_address_fndecl_51332 myri10ge_set_mac_address fndecl 0 51332 NULL
143536 +disable_so_xt_ct_set_timeout_fndecl_51333 xt_ct_set_timeout fndecl 0 51333 NULL
143537 +disable_so_crypto_ahash_digest_fndecl_51343 crypto_ahash_digest fndecl 0 51343 NULL
143538 +disable_so_calculate_next_time_fndecl_51345 calculate_next_time fndecl 0 51345 NULL
143539 +disable_so_from_kgid_fndecl_51359 from_kgid fndecl 0 51359 NULL
143540 +disable_so_dm9161_ack_interrupt_fndecl_51361 dm9161_ack_interrupt fndecl 0 51361 NULL nohasharray
143541 +disable_so_write_addr_mdc_hw_list_desc_51361 write_addr mdc_hw_list_desc 0 51361 &disable_so_dm9161_ack_interrupt_fndecl_51361
143542 +disable_so_clock_kvm_clock_data_51363 clock kvm_clock_data 0 51363 NULL
143543 +disable_so_sapi_sockaddr_mISDN_51369 sapi sockaddr_mISDN 0 51369 NULL
143544 +disable_so_act8b_ide_timing_51373 act8b ide_timing 0 51373 NULL
143545 +disable_so_driver_data_cpufreq_frequency_table_51376 driver_data cpufreq_frequency_table 0 51376 NULL
143546 +disable_so_timeout_clk_sdhci_host_51378 timeout_clk sdhci_host 0 51378 NULL
143547 +disable_so_ref_div_rv7xx_power_info_51381 ref_div rv7xx_power_info 0 51381 NULL
143548 +disable_so_event_jiffies_atkbd_51387 event_jiffies atkbd 0 51387 NULL
143549 +disable_so_addr_kvm_coalesced_mmio_zone_51392 addr kvm_coalesced_mmio_zone 0 51392 NULL
143550 +disable_so_print_fatal_signal_fndecl_51397 print_fatal_signal fndecl 1 51397 NULL
143551 +disable_so_de_media_interrupt_fndecl_51410 de_media_interrupt fndecl 2 51410 NULL nohasharray
143552 +disable_so_cryptomgr_schedule_probe_fndecl_51410 cryptomgr_schedule_probe fndecl 0 51410 &disable_so_de_media_interrupt_fndecl_51410
143553 +disable_so_ql_set_mac_addr_reg_fndecl_51414 ql_set_mac_addr_reg fndecl 0-4 51414 NULL
143554 +disable_so_iscsi_stat_sess_show_attr_conn_timeout_errors_fndecl_51417 iscsi_stat_sess_show_attr_conn_timeout_errors fndecl 0 51417 NULL
143555 +disable_so_read_addr_qla8044_minidump_entry_cache_51419 read_addr qla8044_minidump_entry_cache 0 51419 NULL
143556 +disable_so_clk_freq_khz_pll_tab_51420 clk_freq_khz pll_tab 0 51420 NULL
143557 +disable_so_pll_d_aic32x4_rate_divs_51425 pll_d aic32x4_rate_divs 0 51425 NULL
143558 +disable_so_T6_address_mxt_data_51429 T6_address mxt_data 0 51429 NULL
143559 +disable_so_q_addr_ioat_pq_descriptor_51439 q_addr ioat_pq_descriptor 0 51439 NULL
143560 +disable_so_imx_phy_crbit_assert_fndecl_51461 imx_phy_crbit_assert fndecl 0 51461 NULL
143561 +disable_so_soc_camera_clock_start_fndecl_51464 soc_camera_clock_start fndecl 0 51464 NULL
143562 +disable_so_after_ctime_nsec_nfsd4_change_info_51470 after_ctime_nsec nfsd4_change_info 0 51470 NULL
143563 +disable_so_free_fall_time_adxl34x_platform_data_51477 free_fall_time adxl34x_platform_data 0 51477 NULL
143564 +disable_so_new_c_uuid_parms_from_attrs_fndecl_51480 new_c_uuid_parms_from_attrs fndecl 0 51480 NULL
143565 +disable_so_addr_high_mcp_kreq_ether_recv_51484 addr_high mcp_kreq_ether_recv 0 51484 NULL
143566 +disable_so_min_freq_ufs_clk_info_51485 min_freq ufs_clk_info 0 51485 NULL
143567 +disable_so_force_addr_vardecl_sis5595_c_51490 force_addr vardecl_sis5595.c 0 51490 NULL
143568 +disable_so_byt_freq_opcode_fndecl_51497 byt_freq_opcode fndecl 0-2 51497 NULL
143569 +disable_so_vco_gma_clock_t_51506 vco gma_clock_t 0 51506 NULL
143570 +disable_so_saddr_irlan_cb_51519 saddr irlan_cb 0 51519 NULL
143571 +disable_so_r14_kvm_regs_51526 r14 kvm_regs 0 51526 NULL
143572 +disable_so_sys_image_guid_ib_device_modify_51537 sys_image_guid ib_device_modify 0 51537 NULL
143573 +disable_so_abx500_mask_and_set_register_interruptible_fndecl_51542 abx500_mask_and_set_register_interruptible fndecl 0-5 51542 NULL
143574 +disable_so_show_constraint_min_time_window_us_fndecl_51544 show_constraint_min_time_window_us fndecl 0 51544 NULL
143575 +disable_so_phys_addr_sge_rspq_51550 phys_addr sge_rspq 0 51550 NULL
143576 +disable_so_tw_substate_inet_timewait_sock_51564 tw_substate inet_timewait_sock 0 51564 NULL
143577 +disable_so_ebx_user_regs_struct32_51572 ebx user_regs_struct32 0 51572 NULL
143578 +disable_so_snd_azf3328_interrupt_fndecl_51583 snd_azf3328_interrupt fndecl 1 51583 NULL
143579 +disable_so_wl1251_acx_rx_msdu_life_time_fndecl_51591 wl1251_acx_rx_msdu_life_time fndecl 0 51591 NULL
143580 +disable_so_grh_gid_fl_mlx5_av_51610 grh_gid_fl mlx5_av 0 51610 NULL
143581 +disable_so_space_id_acpi_object_addr_handler_51611 space_id acpi_object_addr_handler 0 51611 NULL
143582 +disable_so_pick_local_ip6addrs_fndecl_51615 pick_local_ip6addrs fndecl 0 51615 NULL
143583 +disable_so_nmi_perfctr_msr_to_bit_fndecl_51618 nmi_perfctr_msr_to_bit fndecl 0-1 51618 NULL
143584 +disable_so_dcc_timeout_vardecl_nf_conntrack_irc_c_51622 dcc_timeout vardecl_nf_conntrack_irc.c 0 51622 NULL
143585 +disable_so_ath9k_hw_fbin2freq_fndecl_51628 ath9k_hw_fbin2freq fndecl 0-1 51628 NULL
143586 +disable_so_audit_signal_info_fndecl_51630 audit_signal_info fndecl 0-1 51630 NULL
143587 +disable_so_sirdev_schedule_request_fndecl_51632 sirdev_schedule_request fndecl 3-0 51632 NULL
143588 +disable_so_stb0899_write_s2reg_fndecl_51642 stb0899_write_s2reg fndecl 5-0 51642 NULL nohasharray
143589 +disable_so_sha512_ssse3_mod_init_fndecl_51642 sha512_ssse3_mod_init fndecl 0 51642 &disable_so_stb0899_write_s2reg_fndecl_51642
143590 +disable_so_get_bitmap_fndecl_51645 get_bitmap fndecl 0-2 51645 NULL
143591 +disable_so_total_bitmaps_btrfs_free_space_ctl_51648 total_bitmaps btrfs_free_space_ctl 0 51648 NULL
143592 +disable_so_sk_wmem_schedule_fndecl_51651 sk_wmem_schedule fndecl 2 51651 NULL
143593 +disable_so_btree_readpage_end_io_hook_fndecl_51654 btree_readpage_end_io_hook fndecl 0 51654 NULL
143594 +disable_so_delay_pi_adapter_51655 delay pi_adapter 0 51655 NULL
143595 +disable_so_snd_pcm_new_fndecl_51660 snd_pcm_new fndecl 0-3-4-5 51660 NULL
143596 +disable_so_soft_add_expires_seconds_xfrm_lifetime_cfg_51674 soft_add_expires_seconds xfrm_lifetime_cfg 0 51674 NULL
143597 +disable_so_ib_query_gid_fndecl_51677 ib_query_gid fndecl 0-2-3 51677 NULL
143598 +disable_so_m_hi_cfg_timeout_drxk_state_51689 m_hi_cfg_timeout drxk_state 0 51689 NULL
143599 +disable_so_mma9553_runtime_resume_fndecl_51690 mma9553_runtime_resume fndecl 0 51690 NULL
143600 +disable_so_phy_pm_runtime_put_fndecl_51692 phy_pm_runtime_put fndecl 0 51692 NULL
143601 +disable_so_cdclk_freq_drm_i915_private_51693 cdclk_freq drm_i915_private 0 51693 NULL
143602 +disable_so__get_div_fndecl_51696 _get_div fndecl 2-0 51696 NULL
143603 +disable_so_sit_ver_bitmap_bytesize_f2fs_checkpoint_51697 sit_ver_bitmap_bytesize f2fs_checkpoint 0 51697 NULL
143604 +disable_so_seq_framebuf_51700 seq framebuf 0 51700 NULL nohasharray
143605 +disable_so_tsc_drv_init_fndecl_51700 tsc_drv_init fndecl 0 51700 &disable_so_seq_framebuf_51700
143606 +disable_so_lower_first_uid_gid_extent_51714 lower_first uid_gid_extent 0 51714 NULL
143607 +disable_so_acpi_enter_sleep_state_prep_fndecl_51716 acpi_enter_sleep_state_prep fndecl 0-1 51716 NULL
143608 +disable_so_set_data_timeout_fndecl_51718 set_data_timeout fndecl 2-3 51718 NULL
143609 +disable_so_suspend_test_start_time_vardecl_suspend_test_c_51720 suspend_test_start_time vardecl_suspend_test.c 0 51720 NULL
143610 +disable_so_phy_addr_uli526x_board_info_51722 phy_addr uli526x_board_info 0 51722 NULL
143611 +disable_so_vdelay_bttv_geometry_51725 vdelay bttv_geometry 0 51725 NULL
143612 +disable_so_rv6xx_find_memory_clock_with_highest_vco_fndecl_51726 rv6xx_find_memory_clock_with_highest_vco fndecl 2-3 51726 NULL
143613 +disable_so_blocksize_crypto_report_hash_51730 blocksize crypto_report_hash 0 51730 NULL
143614 +disable_so_set_param_timeout_fndecl_51735 set_param_timeout fndecl 0 51735 NULL
143615 +disable_so_iowrite16be_fndecl_51739 iowrite16be fndecl 1 51739 NULL
143616 +disable_so_lvds_chip_slave_addr_lvds_chip_information_51750 lvds_chip_slave_addr lvds_chip_information 0 51750 NULL
143617 +disable_so_xhci_queue_address_device_fndecl_51755 xhci_queue_address_device fndecl 0-3-4 51755 NULL
143618 +disable_so_rx_abs_int_delay_e1000_adapter_51763 rx_abs_int_delay e1000_adapter 0 51763 NULL
143619 +disable_so_ext4_wait_block_bitmap_fndecl_51764 ext4_wait_block_bitmap fndecl 2 51764 NULL
143620 +disable_so_tid_host_cmd_ds_11n_batimeout_51772 tid host_cmd_ds_11n_batimeout 0 51772 NULL
143621 +disable_so_mpll_ss1_rv770_clock_registers_51773 mpll_ss1 rv770_clock_registers 0 51773 NULL
143622 +disable_so_xpc_disengage_timelimit_vardecl_51789 xpc_disengage_timelimit vardecl 0 51789 NULL
143623 +disable_so_current_dispclk_radeon_clock_51795 current_dispclk radeon_clock 0 51795 NULL
143624 +disable_so_mclk_sm501_clock_51799 mclk sm501_clock 0 51799 NULL
143625 +disable_so_frequency_mixart_clock_properties_51800 frequency mixart_clock_properties 0 51800 NULL nohasharray
143626 +disable_so_freq_p54_rssi_db_entry_51800 freq p54_rssi_db_entry 0 51800 &disable_so_frequency_mixart_clock_properties_51800
143627 +disable_so_display_delay_enable_s5p_mfc_ctx_51814 display_delay_enable s5p_mfc_ctx 0 51814 NULL
143628 +disable_so_phys_to_virt_fndecl_51830 phys_to_virt fndecl 1 51830 NULL
143629 +disable_so___lock_timer_fndecl_51836 __lock_timer fndecl 1 51836 NULL
143630 +disable_so_gid_index_mthca_av_51840 gid_index mthca_av 0 51840 NULL
143631 +disable_so_physical_address_smbios_cru64_info_51854 physical_address smbios_cru64_info 0 51854 NULL
143632 +disable_so_sleep_em28xx_reg_seq_51857 sleep em28xx_reg_seq 0 51857 NULL
143633 +disable_so_current_frequency_or51211_state_51860 current_frequency or51211_state 0 51860 NULL
143634 +disable_so_timer_trig_init_fndecl_51865 timer_trig_init fndecl 0 51865 NULL
143635 +disable_so___posix_timers_find_fndecl_51867 __posix_timers_find fndecl 3 51867 NULL
143636 +disable_so_xattr_hash_fndecl_51881 xattr_hash fndecl 2 51881 NULL
143637 +disable_so_ntfs_bitmap_set_bit_fndecl_51888 ntfs_bitmap_set_bit fndecl 2 51888 NULL
143638 +disable_so_hp_ntimer_hpets_51897 hp_ntimer hpets 0 51897 NULL
143639 +disable_so_crypto_blkcipher_decrypt_iv_fndecl_51901 crypto_blkcipher_decrypt_iv fndecl 0-4 51901 NULL
143640 +disable_so_emitted_jiffies_drm_i915_gem_request_51929 emitted_jiffies drm_i915_gem_request 0 51929 NULL
143641 +disable_so_PageAddress__MPI2_CONFIG_REQUEST_51930 PageAddress _MPI2_CONFIG_REQUEST 0 51930 NULL
143642 +disable_so_mlx4_read_clock_fndecl_51933 mlx4_read_clock fndecl 0 51933 NULL
143643 +disable_so_plh_retry_timestamp_pnfs_layout_hdr_51936 plh_retry_timestamp pnfs_layout_hdr 0 51936 NULL nohasharray
143644 +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
143645 +disable_so_padlock_sha256_finup_fndecl_51938 padlock_sha256_finup fndecl 0 51938 NULL
143646 +disable_so_delay_usec_e1000_nvm_info_51943 delay_usec e1000_nvm_info 0 51943 NULL
143647 +disable_so_guest_phys_addr_kvm_userspace_memory_region_51947 guest_phys_addr kvm_userspace_memory_region 0 51947 NULL
143648 +disable_so_addr_drm_radeon_gem_userptr_51948 addr drm_radeon_gem_userptr 0 51948 NULL
143649 +disable_so__regulator_enable_delay_fndecl_51949 _regulator_enable_delay fndecl 1 51949 NULL
143650 +disable_so_grp_time_xfs_mru_cache_51952 grp_time xfs_mru_cache 0 51952 NULL
143651 +disable_so_clock_realtek_pci_ms_51953 clock realtek_pci_ms 0 51953 NULL
143652 +disable_so_sm_ll_lookup_bitmap_fndecl_51973 sm_ll_lookup_bitmap fndecl 0-2 51973 NULL
143653 +disable_so_sa_family_sockaddr_51986 sa_family sockaddr 0 51986 NULL
143654 +disable_so_i_dtime_ext3_inode_info_51992 i_dtime ext3_inode_info 0 51992 NULL
143655 +disable_so_bitmap_ipmac_gc_test_fndecl_51993 bitmap_ipmac_gc_test fndecl 3 51993 NULL
143656 +disable_so_ocfs2_change_ctime_fndecl_52000 ocfs2_change_ctime fndecl 0 52000 NULL
143657 +disable_so_sadb_lifetime_usetime_sadb_lifetime_52005 sadb_lifetime_usetime sadb_lifetime 0 52005 NULL
143658 +disable_so_sysctl_lap_keepalive_time_vardecl_52006 sysctl_lap_keepalive_time vardecl 0 52006 NULL nohasharray
143659 +disable_so_address_u132_command_52006 address u132_command 0 52006 &disable_so_sysctl_lap_keepalive_time_vardecl_52006
143660 +disable_so_txdesc_interrupt_mask_ath_hw_52011 txdesc_interrupt_mask ath_hw 0 52011 NULL
143661 +disable_so_rebind_irq_to_cpu_fndecl_52013 rebind_irq_to_cpu fndecl 1-2 52013 NULL
143662 +disable_so_gid_numa_group_52023 gid numa_group 0 52023 NULL
143663 +disable_so_cpuidle_add_sysfs_fndecl_52026 cpuidle_add_sysfs fndecl 0 52026 NULL
143664 +disable_so_selinux_task_getpgid_fndecl_52032 selinux_task_getpgid fndecl 0 52032 NULL
143665 +disable_so_demod_address_cx24116_config_52035 demod_address cx24116_config 0 52035 NULL
143666 +disable_so_sched_group_set_rt_runtime_fndecl_52036 sched_group_set_rt_runtime fndecl 2-0 52036 NULL
143667 +disable_so_ntp_error_timekeeper_52044 ntp_error timekeeper 0 52044 NULL
143668 +disable_so_sys_addr_to_dram_addr_fndecl_52052 sys_addr_to_dram_addr fndecl 0-2 52052 NULL
143669 +disable_so_shared_data_busaddr_ahc_softc_52059 shared_data_busaddr ahc_softc 0 52059 NULL
143670 +disable_so_gl_demote_time_gfs2_glock_52068 gl_demote_time gfs2_glock 0 52068 NULL
143671 +disable_so_m41t93_get_time_fndecl_52075 m41t93_get_time fndecl 0 52075 NULL
143672 +disable_so_reg_val_coeff_clk_div_52082 reg_val coeff_clk_div 0 52082 NULL
143673 +disable_so_dap_fcgs_gidpn_resp_s_52084 dap fcgs_gidpn_resp_s 0 52084 NULL
143674 +disable_so_kbd_backlight_timeout_show_fndecl_52086 kbd_backlight_timeout_show fndecl 0 52086 NULL
143675 +disable_so_ifa_address_in_ifaddr_52095 ifa_address in_ifaddr 0 52095 NULL
143676 +disable_so_mmc_set_clock_fndecl_52096 mmc_set_clock fndecl 2 52096 NULL
143677 +disable_so_constant_timex_52100 constant timex 0 52100 NULL
143678 +disable_so_rds_ib_remove_ipaddr_fndecl_52103 rds_ib_remove_ipaddr fndecl 2 52103 NULL
143679 +disable_so_adf4350_set_freq_fndecl_52106 adf4350_set_freq fndecl 0-2 52106 NULL
143680 +disable_so_max_mtime_sit_info_52107 max_mtime sit_info 0 52107 NULL
143681 +disable_so_retry_delay_timestamp_fc_port_52109 retry_delay_timestamp fc_port 0 52109 NULL
143682 +disable_so_sha256_ssse3_mod_init_fndecl_52112 sha256_ssse3_mod_init fndecl 0 52112 NULL
143683 +disable_so_nilfs_btree_init_fndecl_52115 nilfs_btree_init fndecl 0 52115 NULL
143684 +disable_so_baseaddr_ds1685_priv_52117 baseaddr ds1685_priv 0 52117 NULL
143685 +disable_so_vga_get_uninterruptible_fndecl_52134 vga_get_uninterruptible fndecl 0 52134 NULL
143686 +disable_so_gr_handle_signal_fndecl_52137 gr_handle_signal fndecl 2 52137 NULL
143687 +disable_so_sample_bits_snd_pcm_runtime_52138 sample_bits snd_pcm_runtime 0 52138 NULL
143688 +disable_so_make_kgid_fndecl_52149 make_kgid fndecl 2 52149 NULL
143689 +disable_so_skcipher_sendmsg_fndecl_52153 skcipher_sendmsg fndecl 0-3 52153 NULL
143690 +disable_so_base_addr_ce_space_ath10k_ce_ring_52154 base_addr_ce_space ath10k_ce_ring 0 52154 NULL
143691 +disable_so_msr_guest_kernel_gs_base_vcpu_vmx_52157 msr_guest_kernel_gs_base vcpu_vmx 0 52157 NULL
143692 +disable_so_mpll_func_cntl_rv730_clock_registers_52160 mpll_func_cntl rv730_clock_registers 0 52160 NULL
143693 +disable_so_system_time_xenpf_settime_52164 system_time xenpf_settime 0 52164 NULL
143694 +disable_so_ddiv_gk104_clk_info_52171 ddiv gk104_clk_info 0 52171 NULL
143695 +disable_so_detect_pll_input_clock_fndecl_52172 detect_pll_input_clock fndecl 1-0 52172 NULL
143696 +disable_so_mpll_dq_func_cntl_2_ni_clock_registers_52173 mpll_dq_func_cntl_2 ni_clock_registers 0 52173 NULL
143697 +disable_so_opmode_delay_picolcd_data_52176 opmode_delay picolcd_data 0 52176 NULL
143698 +disable_so_get_display_clock_speed_drm_i915_display_funcs_52177 get_display_clock_speed drm_i915_display_funcs 0 52177 NULL
143699 +disable_so_addr_lp8788_chg_param_52185 addr lp8788_chg_param 0 52185 NULL
143700 +disable_so_beacon_interval_il_rxon_time_cmd_52191 beacon_interval il_rxon_time_cmd 0 52191 NULL
143701 +disable_so_threshold_high_nes_hw_tune_timer_52193 threshold_high nes_hw_tune_timer 0 52193 NULL
143702 +disable_so_timeout_ms_rdma_ucm_resolve_route_52203 timeout_ms rdma_ucm_resolve_route 0 52203 NULL
143703 +disable_so___mmc_set_signal_voltage_fndecl_52208 __mmc_set_signal_voltage fndecl 0 52208 NULL
143704 +disable_so_jhash_2words_fndecl_52211 jhash_2words fndecl 0-1-2 52211 NULL
143705 +disable_so_suspend_time_iwl_scan_cmd_52218 suspend_time iwl_scan_cmd 0 52218 NULL
143706 +disable_so_sha1_mb_async_update_fndecl_52220 sha1_mb_async_update fndecl 0 52220 NULL
143707 +disable_so_sleep_cx231xx_reg_seq_52228 sleep cx231xx_reg_seq 0 52228 NULL
143708 +disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243 select_addr_1 qla8044_minidump_entry_rdmux2 0 52243 NULL nohasharray
143709 +disable_so_SYSC_setregid_fndecl_52243 SYSC_setregid fndecl 0 52243 &disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243
143710 +disable_so_snd_pcm_timer_resolution_fndecl_52247 snd_pcm_timer_resolution fndecl 0 52247 NULL
143711 +disable_so_s_hash_function_reiserfs_sb_info_52248 s_hash_function reiserfs_sb_info 0-2 52248 NULL
143712 +disable_so_read_addr_qla8044_minidump_entry_rdmux2_52249 read_addr qla8044_minidump_entry_rdmux2 0 52249 NULL
143713 +disable_so_comp_addr_lo_dmae_command_52260 comp_addr_lo dmae_command 0 52260 NULL
143714 +disable_so_tsl2563_read_interrupt_config_fndecl_52267 tsl2563_read_interrupt_config fndecl 0 52267 NULL
143715 +disable_so_mlx4_ib_init_alias_guid_service_fndecl_52269 mlx4_ib_init_alias_guid_service fndecl 0 52269 NULL
143716 +disable_so_pvr2_hdw_get_eeprom_addr_fndecl_52271 pvr2_hdw_get_eeprom_addr fndecl 0 52271 NULL
143717 +disable_so_coalescing_timeo_bna_ib_52276 coalescing_timeo bna_ib 0 52276 NULL
143718 +disable_so_sll_protocol_sockaddr_ll_52284 sll_protocol sockaddr_ll 0 52284 NULL nohasharray
143719 +disable_so_cmd64x_set_timing_fndecl_52284 cmd64x_set_timing fndecl 3 52284 &disable_so_sll_protocol_sockaddr_ll_52284
143720 +disable_so_entrytime_batadv_bcast_duplist_entry_52297 entrytime batadv_bcast_duplist_entry 0 52297 NULL
143721 +disable_so_cumul_ack_westwood_52298 cumul_ack westwood 0 52298 NULL
143722 +disable_so_r2b_val_fc2580_freq_regs_52299 r2b_val fc2580_freq_regs 0 52299 NULL
143723 +disable_so_btree_remove32_fndecl_52302 btree_remove32 fndecl 2 52302 NULL
143724 +disable_so_btrfs_insert_delayed_items_fndecl_52308 btrfs_insert_delayed_items fndecl 0 52308 NULL
143725 +disable_so_bios_limit_cpufreq_driver_52312 bios_limit cpufreq_driver 1 52312 NULL
143726 +disable_so___nf_conntrack_hash_insert_fndecl_52323 __nf_conntrack_hash_insert fndecl 2-3 52323 NULL
143727 +disable_so_rapl_get_attr_cpumask_fndecl_52324 rapl_get_attr_cpumask fndecl 0 52324 NULL
143728 +disable_so_frequency_dst_state_52328 frequency dst_state 0 52328 NULL
143729 +disable_so_status_fifo_addr_sbp_login_descriptor_52353 status_fifo_addr sbp_login_descriptor 0 52353 NULL
143730 +disable_so_musb_write_txhubaddr_fndecl_52354 musb_write_txhubaddr fndecl 2-3 52354 NULL
143731 +disable_so_cx18_msleep_timeout_fndecl_52356 cx18_msleep_timeout fndecl 1 52356 NULL
143732 +disable_so_input_event_fndecl_52364 input_event fndecl 3-4 52364 NULL
143733 +disable_so_timeout_ip_vs_sync_v6_52374 timeout ip_vs_sync_v6 0 52374 NULL
143734 +disable_so_wait_on_bit_io_fndecl_52381 wait_on_bit_io fndecl 0 52381 NULL
143735 +disable_so_mthca_mr_alloc_notrans_fndecl_52385 mthca_mr_alloc_notrans fndecl 0-2 52385 NULL
143736 +disable_so_pwm_divisor_nvbios_perf_fan_52386 pwm_divisor nvbios_perf_fan 0 52386 NULL nohasharray
143737 +disable_so_iscsi_ipv4addr_port_info_52386 iscsi_ipv4addr port_info 0 52386 &disable_so_pwm_divisor_nvbios_perf_fan_52386
143738 +disable_so_dpp_unmapped_addr_be_dev_info_52388 dpp_unmapped_addr be_dev_info 0 52388 NULL nohasharray
143739 +disable_so_request_threaded_irq_fndecl_52388 request_threaded_irq fndecl 0-1-4 52388 &disable_so_dpp_unmapped_addr_be_dev_info_52388
143740 +disable_so_g84_cipher_ctor_fndecl_52389 g84_cipher_ctor fndecl 0 52389 NULL
143741 +disable_so_time_constant_vardecl_ntp_c_52392 time_constant vardecl_ntp.c 0 52392 NULL nohasharray
143742 +disable_so_sis_ata100_program_timings_fndecl_52392 sis_ata100_program_timings fndecl 2 52392 &disable_so_time_constant_vardecl_ntp_c_52392
143743 +disable_so_hbqaddrHigh_config_hbq_var_52395 hbqaddrHigh config_hbq_var 0 52395 NULL
143744 +disable_so_objectid_btrfs_delayed_data_ref_52398 objectid btrfs_delayed_data_ref 0 52398 NULL
143745 +disable_so_btrfs_schedule_bio_fndecl_52412 btrfs_schedule_bio fndecl 3 52412 NULL
143746 +disable_so_wm8804_set_clkdiv_fndecl_52423 wm8804_set_clkdiv fndecl 3 52423 NULL
143747 +disable_so_tm_year_rtc_time_52437 tm_year rtc_time 0 52437 NULL
143748 +disable_so_message_age_timer_value___port_info_52442 message_age_timer_value __port_info 0 52442 NULL nohasharray
143749 +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
143750 +disable_so_time_stamp_pch_gbe_buffer_52453 time_stamp pch_gbe_buffer 0 52453 NULL
143751 +disable_so_fsl_pwm_calculate_cycles_fndecl_52454 fsl_pwm_calculate_cycles fndecl 0-2 52454 NULL
143752 +disable_so_default_timetolive_sctp_association_52455 default_timetolive sctp_association 0 52455 NULL
143753 +disable_so_xc2028_sleep_fndecl_52469 xc2028_sleep fndecl 0 52469 NULL
143754 +disable_so_regulator_map_voltage_linear_fndecl_52488 regulator_map_voltage_linear fndecl 0-2-3 52488 NULL
143755 +disable_so_nsecs_to_jiffies64_fndecl_52497 nsecs_to_jiffies64 fndecl 0-1 52497 NULL
143756 +disable_so_pm_runtime_resume_fndecl_52501 pm_runtime_resume fndecl 0 52501 NULL
143757 +disable_so_stop_threshold_snd_pcm_runtime_52503 stop_threshold snd_pcm_runtime 0 52503 NULL
143758 +disable_so_il_get_passive_dwell_time_fndecl_52511 il_get_passive_dwell_time fndecl 0 52511 NULL nohasharray
143759 +disable_so_show_src_clock_sel_fndecl_52511 show_src_clock_sel fndecl 0 52511 &disable_so_il_get_passive_dwell_time_fndecl_52511
143760 +disable_so_mxl111sf_frontend_attach_atsc_mh_fndecl_52518 mxl111sf_frontend_attach_atsc_mh fndecl 0 52518 NULL
143761 +disable_so_gcm_hash_assoc_continue_fndecl_52527 gcm_hash_assoc_continue fndecl 0 52527 NULL
143762 +disable_so_time_next_packet_fq_flow_52535 time_next_packet fq_flow 0 52535 NULL nohasharray
143763 +disable_so_exit_deep_sleep_lbs_private_52535 exit_deep_sleep lbs_private 0 52535 &disable_so_time_next_packet_fq_flow_52535
143764 +disable_so_page_check_address_pmd_fndecl_52537 page_check_address_pmd fndecl 3 52537 NULL
143765 +disable_so_stime_signal_struct_52540 stime signal_struct 0 52540 NULL nohasharray
143766 +disable_so_hblank_lo_oaktrail_timing_info_52540 hblank_lo oaktrail_timing_info 0 52540 &disable_so_stime_signal_struct_52540
143767 +disable_so_sgl_pg1_addr_lo_sgl_page_pairs_52550 sgl_pg1_addr_lo sgl_page_pairs 0 52550 NULL
143768 +disable_so_tx_timeout_last_recovery_i40e_pf_52564 tx_timeout_last_recovery i40e_pf 0 52564 NULL nohasharray
143769 +disable_so_clock_name_show_fndecl_52564 clock_name_show fndecl 0 52564 &disable_so_tx_timeout_last_recovery_i40e_pf_52564
143770 +disable_so_c67x00_sched_start_scheduler_fndecl_52570 c67x00_sched_start_scheduler fndecl 0 52570 NULL
143771 +disable_so_acpi_sleep_tts_switch_fndecl_52575 acpi_sleep_tts_switch fndecl 1 52575 NULL
143772 +disable_so_addr0_nphy_rf_control_override_rev2_52577 addr0 nphy_rf_control_override_rev2 0 52577 NULL
143773 +disable_so_tv_nsec_xfs_bstime_52584 tv_nsec xfs_bstime 0 52584 NULL
143774 +disable_so_xfs_btree_check_sptr_fndecl_52587 xfs_btree_check_sptr fndecl 0 52587 NULL
143775 +disable_so_get_vmx_mem_address_fndecl_52590 get_vmx_mem_address fndecl 3 52590 NULL
143776 +disable_so_suspend_time_il3945_scan_cmd_52601 suspend_time il3945_scan_cmd 0 52601 NULL nohasharray
143777 +disable_so_ahash_def_finup_finish2_fndecl_52601 ahash_def_finup_finish2 fndecl 2 52601 &disable_so_suspend_time_il3945_scan_cmd_52601
143778 +disable_so_si4713_s_frequency_fndecl_52608 si4713_s_frequency fndecl 0 52608 NULL
143779 +disable_so_icsk_timeout_inet_connection_sock_52623 icsk_timeout inet_connection_sock 0 52623 NULL
143780 +disable_so____skb_get_hash_fndecl_52630 ___skb_get_hash fndecl 0 52630 NULL
143781 +disable_so_dn_nl_fill_ifaddr_fndecl_52641 dn_nl_fill_ifaddr fndecl 0-3-5 52641 NULL
143782 +disable_so_physical_reg_addr_wl1251_52646 physical_reg_addr wl1251 0 52646 NULL
143783 +disable_so_setup_ata_timing_52661 setup ata_timing 0 52661 NULL
143784 +disable_so_delay_tc_pie_xstats_52665 delay tc_pie_xstats 0 52665 NULL
143785 +disable_so_sys_utimensat_fndecl_52666 sys_utimensat fndecl 1 52666 NULL
143786 +disable_so_ringid_wmi_vring_cfg_52670 ringid wmi_vring_cfg 0 52670 NULL
143787 +disable_so_cmd_timeout_ms_mmc_ioc_cmd_52681 cmd_timeout_ms mmc_ioc_cmd 0 52681 NULL
143788 +disable_so_fr_timer_fndecl_52687 fr_timer fndecl 1 52687 NULL
143789 +disable_so_if_sdio_enter_deep_sleep_fndecl_52688 if_sdio_enter_deep_sleep fndecl 0 52688 NULL
143790 +disable_so_set_rate_control_runtime_52697 set_rate control_runtime 0 52697 NULL
143791 +disable_so_req_consumer_index_phy_addr_low_ql3_adapter_52703 req_consumer_index_phy_addr_low ql3_adapter 0 52703 NULL
143792 +disable_so_addr_max17042_reg_data_52712 addr max17042_reg_data 0 52712 NULL
143793 +disable_so_cit_get_clock_div_fndecl_52713 cit_get_clock_div fndecl 0 52713 NULL nohasharray
143794 +disable_so_mpll_ss2_si_clock_registers_52713 mpll_ss2 si_clock_registers 0 52713 &disable_so_cit_get_clock_div_fndecl_52713
143795 +disable_so_addr_pt1_table_52714 addr pt1_table 0 52714 NULL
143796 +disable_so_ds1742_rtc_read_time_fndecl_52716 ds1742_rtc_read_time fndecl 0 52716 NULL nohasharray
143797 +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
143798 +disable_so_ide_get_lba_addr_fndecl_52722 ide_get_lba_addr fndecl 0 52722 NULL
143799 +disable_so_msi_addr_drm_psb_private_52725 msi_addr drm_psb_private 0 52725 NULL
143800 +disable_so_migratepage_address_space_operations_52735 migratepage address_space_operations 0 52735 NULL
143801 +disable_so_apicid_cpuinfo_x86_52743 apicid cpuinfo_x86 0 52743 NULL
143802 +disable_so_ageing_time_show_fndecl_52746 ageing_time_show fndecl 0 52746 NULL
143803 +disable_so___hw_addr_add_fndecl_52752 __hw_addr_add fndecl 0-3 52752 NULL
143804 +disable_so_addr_end_vardecl_init_64_c_52755 addr_end vardecl_init_64.c 0 52755 NULL
143805 +disable_so_cmd_box_addr_wl1271_52756 cmd_box_addr wl1271 0 52756 NULL
143806 +disable_so_crypto_cipher_setkey_fndecl_52762 crypto_cipher_setkey fndecl 0-3 52762 NULL
143807 +disable_so_wmi_del_cipher_key_fndecl_52767 wmi_del_cipher_key fndecl 0 52767 NULL
143808 +disable_so_ptp_dp83640_adjtime_fndecl_52770 ptp_dp83640_adjtime fndecl 2 52770 NULL nohasharray
143809 +disable_so___hw_addr_del_ex_fndecl_52770 __hw_addr_del_ex fndecl 0-3 52770 &disable_so_ptp_dp83640_adjtime_fndecl_52770
143810 +disable_so_reiserfs_init_bitmap_cache_fndecl_52773 reiserfs_init_bitmap_cache fndecl 0 52773 NULL
143811 +disable_so_time_to_jiffies_fndecl_52778 time_to_jiffies fndecl 1-2-0 52778 NULL nohasharray
143812 +disable_so_cleanup_addr_jit_context_52778 cleanup_addr jit_context 0 52778 &disable_so_time_to_jiffies_fndecl_52778 nohasharray
143813 +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
143814 +disable_so_sxgbe_rx_interrupt_fndecl_52784 sxgbe_rx_interrupt fndecl 1 52784 NULL
143815 +disable_so_twl_rtc_set_time_fndecl_52785 twl_rtc_set_time fndecl 0 52785 NULL
143816 +disable_so_mwifiex_set_aes_key_v2_fndecl_52787 mwifiex_set_aes_key_v2 fndecl 0 52787 NULL
143817 +disable_so_start_address_rtl2832_reg_entry_52792 start_address rtl2832_reg_entry 0 52792 NULL nohasharray
143818 +disable_so_encrypt_crypto_aead_52792 encrypt crypto_aead 0 52792 &disable_so_start_address_rtl2832_reg_entry_52792
143819 +disable_so_dynamic_ps_timeout_write_fndecl_52802 dynamic_ps_timeout_write fndecl 3-0 52802 NULL
143820 +disable_so_sge_addr_vf_pf_rxq_params_52803 sge_addr vf_pf_rxq_params 0 52803 NULL
143821 +disable_so_rtc_time64_to_tm_fndecl_52820 rtc_time64_to_tm fndecl 1 52820 NULL
143822 +disable_so_fwnet_hwaddr_fifo_fndecl_52824 fwnet_hwaddr_fifo fndecl 0 52824 NULL
143823 +disable_so_clock_khz_dib0090_io_config_52827 clock_khz dib0090_io_config 0 52827 NULL
143824 +disable_so_tuner_frequency_m88rs2000_state_52828 tuner_frequency m88rs2000_state 0 52828 NULL
143825 +disable_so_twl4030_wdt_set_timeout_fndecl_52829 twl4030_wdt_set_timeout fndecl 2 52829 NULL
143826 +disable_so_min_vruntime_cfs_rq_52838 min_vruntime cfs_rq 0 52838 NULL
143827 +disable_so_nv04_timer_alarm_fndecl_52840 nv04_timer_alarm fndecl 2 52840 NULL
143828 +disable_so_sched_runtime_sched_attr_52849 sched_runtime sched_attr 0 52849 NULL
143829 +disable_so_seq_netlink_callback_52857 seq netlink_callback 0 52857 NULL
143830 +disable_so_addr_hi_tg3_tx_buffer_desc_52858 addr_hi tg3_tx_buffer_desc 0 52858 NULL
143831 +disable_so_dev_addr_add_fndecl_52865 dev_addr_add fndecl 0 52865 NULL
143832 +disable_so_mxt_lookup_bootloader_address_fndecl_52874 mxt_lookup_bootloader_address fndecl 0 52874 NULL
143833 +disable_so_rhashtable_init_fndecl_52886 rhashtable_init fndecl 0 52886 NULL
143834 +disable_so_log_unit_to_scsi3addr_fndecl_52888 log_unit_to_scsi3addr fndecl 3 52888 NULL
143835 +disable_so_warmup_time_tc_sfb_qopt_52893 warmup_time tc_sfb_qopt 0 52893 NULL
143836 +disable_so_acpi_ex_system_signal_event_fndecl_52910 acpi_ex_system_signal_event fndecl 0 52910 NULL
143837 +disable_so_ccp_aes_rfc3686_crypt_fndecl_52911 ccp_aes_rfc3686_crypt fndecl 0 52911 NULL
143838 +disable_so_bf_daddr_ath_rxbuf_52915 bf_daddr ath_rxbuf 0 52915 NULL
143839 +disable_so_addr_aac_entry_52921 addr aac_entry 0 52921 NULL
143840 +disable_so_slack_start_time_dql_52922 slack_start_time dql 0 52922 NULL
143841 +disable_so_mma8452_set_hp_filter_frequency_fndecl_52927 mma8452_set_hp_filter_frequency fndecl 0-2-3 52927 NULL
143842 +disable_so_dqb_btime_mem_dqblk_52929 dqb_btime mem_dqblk 0 52929 NULL
143843 +disable_so_mthca_cmd_fndecl_52930 mthca_cmd fndecl 0-2-3 52930 NULL
143844 +disable_so_signal_nr_nvkm_specdom_52941 signal_nr nvkm_specdom 0 52941 NULL
143845 +disable_so_bitmap_find_next_zero_area_fndecl_52944 bitmap_find_next_zero_area fndecl 0-2-3-4-5 52944 NULL
143846 +disable_so_host_addr_p54p_desc_52948 host_addr p54p_desc 0 52948 NULL
143847 +disable_so_signal_strength_wireless_stats_52949 signal_strength wireless_stats 0 52949 NULL
143848 +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
143849 +disable_so_base_time_dummy_systimer_pcm_52952 base_time dummy_systimer_pcm 0 52952 NULL
143850 +disable_so_setkey_crypto_ahash_52959 setkey crypto_ahash 0-3 52959 NULL
143851 +disable_so_sll_hatype_sockaddr_ll_52974 sll_hatype sockaddr_ll 0 52974 NULL
143852 +disable_so_ktime_get_raw_fast_ns_fndecl_52986 ktime_get_raw_fast_ns fndecl 0 52986 NULL
143853 +disable_so_tv_freq_tuner_52988 tv_freq tuner 0 52988 NULL
143854 +disable_so_cifs_ci_hash_fndecl_52999 cifs_ci_hash fndecl 0 52999 NULL
143855 +disable_so_last_jiffies_rtc_plat_data_53004 last_jiffies rtc_plat_data 0 53004 NULL
143856 +disable_so_base_addr_eisa_device_53008 base_addr eisa_device 0 53008 NULL
143857 +disable_so_vbaddr_drm_savage_common_state_53015 vbaddr drm_savage_common_state 0 53015 NULL
143858 +disable_so_cal_timeout_at86rf230_local_53017 cal_timeout at86rf230_local 0 53017 NULL
143859 +disable_so_alarmtimer_init_fndecl_53028 alarmtimer_init fndecl 0 53028 NULL
143860 +disable_so_compat_sys_timerfd_gettime_fndecl_53031 compat_sys_timerfd_gettime fndecl 1 53031 NULL
143861 +disable_so_gpu_addr_radeon_vce_53033 gpu_addr radeon_vce 0 53033 NULL
143862 +disable_so_valleyview_get_display_clock_speed_fndecl_53041 valleyview_get_display_clock_speed fndecl 0 53041 NULL
143863 +disable_so__base_interrupt_fndecl_53046 _base_interrupt fndecl 1 53046 NULL
143864 +disable_so_qtail_snd_timer_user_53048 qtail snd_timer_user 0 53048 NULL
143865 +disable_so_max14577_set_fast_charge_timer_fndecl_53049 max14577_set_fast_charge_timer fndecl 2-0 53049 NULL nohasharray
143866 +disable_so_addr_mce_53049 addr mce 0 53049 &disable_so_max14577_set_fast_charge_timer_fndecl_53049
143867 +disable_so_find_next_bit_fndecl_53053 find_next_bit fndecl 0-2-3 53053 NULL
143868 +disable_so_sci_apc_agent_start_timer_fndecl_53055 sci_apc_agent_start_timer fndecl 2 53055 NULL
143869 +disable_so_padlock_sha_update_fndecl_53061 padlock_sha_update fndecl 0-3 53061 NULL
143870 +disable_so_soft_byte_limit_xfrm_lifetime_cfg_53071 soft_byte_limit xfrm_lifetime_cfg 0 53071 NULL
143871 +disable_so_addr_ahd_dma64_seg_53072 addr ahd_dma64_seg 0 53072 NULL
143872 +disable_so_address_bus_request_53084 address bus_request 0 53084 NULL
143873 +disable_so_xfs_btree_dec_cursor_fndecl_53087 xfs_btree_dec_cursor fndecl 0 53087 NULL
143874 +disable_so_gro_flush_timeout_store_fndecl_53088 gro_flush_timeout_store fndecl 4-0 53088 NULL
143875 +disable_so_handle_nested_irq_fndecl_53092 handle_nested_irq fndecl 1 53092 NULL
143876 +disable_so_hi_cfg_bridge_delay_drxd_state_53095 hi_cfg_bridge_delay drxd_state 0 53095 NULL nohasharray
143877 +disable_so___scale_tsc_fndecl_53095 __scale_tsc fndecl 0-1-2 53095 &disable_so_hi_cfg_bridge_delay_drxd_state_53095
143878 +disable_so_bitmap_dirty_bits_fndecl_53100 bitmap_dirty_bits fndecl 2 53100 NULL
143879 +disable_so_ufs_data_ptr_to_cpu_fndecl_53104 ufs_data_ptr_to_cpu fndecl 0 53104 NULL
143880 +disable_so_i_mtime_ocfs2_dinode_53106 i_mtime ocfs2_dinode 0 53106 NULL
143881 +disable_so_raddr_c2wr_ae_active_connect_results_53114 raddr c2wr_ae_active_connect_results 0 53114 NULL
143882 +disable_so_freerunning_timer_show_fndecl_53117 freerunning_timer_show fndecl 0 53117 NULL
143883 +disable_so_get_est_timing_fndecl_53119 get_est_timing fndecl 0 53119 NULL
143884 +disable_so_irq_clock_event_device_53122 irq clock_event_device 0 53122 NULL nohasharray
143885 +disable_so_address_iio_dev_attr_53122 address iio_dev_attr 0 53122 &disable_so_irq_clock_event_device_53122
143886 +disable_so__get_maxdiv_fndecl_53128 _get_maxdiv fndecl 0-2 53128 NULL
143887 +disable_so_boot_time_nfsd_net_53147 boot_time nfsd_net 0 53147 NULL
143888 +disable_so_fl_init_hashtable_fndecl_53150 fl_init_hashtable fndecl 0 53150 NULL
143889 +disable_so_nh_saddr_fib_nh_53152 nh_saddr fib_nh 0 53152 NULL
143890 +disable_so_direct_IO_address_space_operations_53153 direct_IO address_space_operations 0-3 53153 NULL
143891 +disable_so_db_addr_mlx5_ib_create_cq_53177 db_addr mlx5_ib_create_cq 0 53177 NULL nohasharray
143892 +disable_so_page_address_in_vma_fndecl_53177 page_address_in_vma fndecl 0 53177 &disable_so_db_addr_mlx5_ib_create_cq_53177
143893 +disable_so_current_freq_av7110_53182 current_freq av7110 0 53182 NULL
143894 +disable_so_wdt_set_timeout_fndecl_53183 wdt_set_timeout fndecl 2 53183 NULL
143895 +disable_so_uid_min_xt_owner_match_info_53195 uid_min xt_owner_match_info 0 53195 NULL
143896 +disable_so_clear_range_i915_address_space_53198 clear_range i915_address_space 2-3 53198 NULL nohasharray
143897 +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
143898 +disable_so_timestamp_il_priv_53208 timestamp il_priv 0 53208 NULL
143899 +disable_so_nbytes_ablkcipher_request_53222 nbytes ablkcipher_request 0 53222 NULL
143900 +disable_so_bitmap_size_sit_info_53224 bitmap_size sit_info 0 53224 NULL
143901 +disable_so_minlen_img_ir_free_timing_53227 minlen img_ir_free_timing 0 53227 NULL
143902 +disable_so_btrfs_alloc_from_bitmap_fndecl_53249 btrfs_alloc_from_bitmap fndecl 0-4-5 53249 NULL
143903 +disable_so_micd_timeout_arizona_extcon_info_53253 micd_timeout arizona_extcon_info 0 53253 NULL
143904 +disable_so_mipi_dsi_dcs_exit_sleep_mode_fndecl_53255 mipi_dsi_dcs_exit_sleep_mode fndecl 0 53255 NULL
143905 +disable_so_btc_find_valid_clock_fndecl_53267 btc_find_valid_clock fndecl 0-3-2 53267 NULL nohasharray
143906 +disable_so_cnsmr_idx_addr_wqicb_53267 cnsmr_idx_addr wqicb 0 53267 &disable_so_btc_find_valid_clock_fndecl_53267
143907 +disable_so_cg_spll_func_cntl_3_rv730_clock_registers_53272 cg_spll_func_cntl_3 rv730_clock_registers 0 53272 NULL
143908 +disable_so_switch_time_il4965_channel_switch_cmd_53281 switch_time il4965_channel_switch_cmd 0 53281 NULL
143909 +disable_so_mic_x100_ack_interrupt_fndecl_53283 mic_x100_ack_interrupt fndecl 0 53283 NULL nohasharray
143910 +disable_so_bitmap_set_ll_fndecl_53283 bitmap_set_ll fndecl 0-2-3 53283 &disable_so_mic_x100_ack_interrupt_fndecl_53283
143911 +disable_so_ci_otg_del_timer_fndecl_53284 ci_otg_del_timer fndecl 2 53284 NULL
143912 +disable_so_elapsed_jiffies_msecs_fndecl_53288 elapsed_jiffies_msecs fndecl 0 53288 NULL
143913 +disable_so_neigh_add_timer_fndecl_53296 neigh_add_timer fndecl 2 53296 NULL
143914 +disable_so_chunk_sizek_var_mtrr_state_53302 chunk_sizek var_mtrr_state 0 53302 NULL
143915 +disable_so_set_flexbg_block_bitmap_fndecl_53307 set_flexbg_block_bitmap fndecl 0-4-5 53307 NULL
143916 +disable_so_tw_rcv_wscale_inet_timewait_sock_53312 tw_rcv_wscale inet_timewait_sock 0 53312 NULL
143917 +disable_so_ablkcipher_walk_next_fndecl_53328 ablkcipher_walk_next fndecl 0 53328 NULL
143918 +disable_so_xen_mce_chrdev_open_fndecl_53331 xen_mce_chrdev_open fndecl 0 53331 NULL
143919 +disable_so_be16_add_cpu_fndecl_53336 be16_add_cpu fndecl 2 53336 NULL
143920 +disable_so_write_end_address_space_operations_53339 write_end address_space_operations 0-3-4-5 53339 NULL
143921 +disable_so_kobj_cpu_cpufreq_policy_53349 kobj_cpu cpufreq_policy 0 53349 NULL
143922 +disable_so_cticks_snd_timer_instance_53353 cticks snd_timer_instance 0 53353 NULL
143923 +disable_so_bus_num_atto_csmi_get_pci_bus_addr_53363 bus_num atto_csmi_get_pci_bus_addr 0 53363 NULL
143924 +disable_so_wall_time_sec_vsyscall_gtod_data_53364 wall_time_sec vsyscall_gtod_data 0 53364 NULL
143925 +disable_so_vfrontporch_v4l2_bt_timings_53369 vfrontporch v4l2_bt_timings 0 53369 NULL
143926 +disable_so_dataset_patch_addr_ath6kl_hw_53371 dataset_patch_addr ath6kl_hw 0 53371 NULL
143927 +disable_so___bitmap_subset_fndecl_53372 __bitmap_subset fndecl 3 53372 NULL
143928 +disable_so_sii9234_runtime_resume_fndecl_53375 sii9234_runtime_resume fndecl 0 53375 NULL
143929 +disable_so_ccp_crypto_init_fndecl_53377 ccp_crypto_init fndecl 0 53377 NULL
143930 +disable_so_inaddr_usnic_fwd_dev_53382 inaddr usnic_fwd_dev 0 53382 NULL
143931 +disable_so_ndo_validate_addr_net_device_ops_53392 ndo_validate_addr net_device_ops 0 53392 NULL nohasharray
143932 +disable_so_valid_msr_intercept_fndecl_53392 valid_msr_intercept fndecl 1 53392 &disable_so_ndo_validate_addr_net_device_ops_53392
143933 +disable_so_ept_walk_addr_fndecl_53393 ept_walk_addr fndecl 3-4 53393 NULL
143934 +disable_so_dma_alloc_attrs_fndecl_53394 dma_alloc_attrs fndecl 2-4 53394 NULL
143935 +disable_so_btrfs_delayed_inode_init_fndecl_53395 btrfs_delayed_inode_init fndecl 0 53395 NULL
143936 +disable_so_atomic_stats_read_fndecl_53399 atomic_stats_read fndecl 3-0 53399 NULL
143937 +disable_so_src_slave_addr_rcar_dmac_chan_53400 src_slave_addr rcar_dmac_chan 0 53400 NULL
143938 +disable_so_sys_guid_ib_node_info_53401 sys_guid ib_node_info 0 53401 NULL
143939 +disable_so_freqValTelevision_pvr2_hdw_53403 freqValTelevision pvr2_hdw 0 53403 NULL
143940 +disable_so_quotad_check_timeo_fndecl_53409 quotad_check_timeo fndecl 4 53409 NULL
143941 +disable_so_smp_size_set_mtrr_data_53411 smp_size set_mtrr_data 0 53411 NULL
143942 +disable_so_addr_wil_fw_data_gw_53417 addr wil_fw_data_gw 0 53417 NULL
143943 +disable_so_irlap_start_wd_timer_fndecl_53423 irlap_start_wd_timer fndecl 2 53423 NULL
143944 +disable_so_nla_put_u32_fndecl_53424 nla_put_u32 fndecl 0-3 53424 NULL
143945 +disable_so_ucode_start_addr_smc_firmware_header_v1_0_53438 ucode_start_addr smc_firmware_header_v1_0 0 53438 NULL
143946 +disable_so_dma_addr_tso_state_53442 dma_addr tso_state 0 53442 NULL
143947 +disable_so___down_common_fndecl_53444 __down_common fndecl 2 53444 NULL
143948 +disable_so_bma180_set_sleep_state_fndecl_53447 bma180_set_sleep_state fndecl 0 53447 NULL
143949 +disable_so_reqsize_crypto_ahash_53448 reqsize crypto_ahash 0 53448 NULL
143950 +disable_so_qs_rtbtimelimit_fs_quota_stat_53453 qs_rtbtimelimit fs_quota_stat 0 53453 NULL
143951 +disable_so_mmc_set_relative_addr_fndecl_53454 mmc_set_relative_addr fndecl 0 53454 NULL
143952 +disable_so_genwqe_debugfs_jtimer_open_fndecl_53455 genwqe_debugfs_jtimer_open fndecl 0 53455 NULL
143953 +disable_so_xruns_snd_rawmidi_runtime_53458 xruns snd_rawmidi_runtime 0 53458 NULL
143954 +disable_so_cpumask_local_spread_fndecl_53460 cpumask_local_spread fndecl 0-1-2 53460 NULL
143955 +disable_so_peer_addr_rds_info_tcp_socket_53463 peer_addr rds_info_tcp_socket 0 53463 NULL
143956 +disable_so_do_set_fan_div_fndecl_53464 do_set_fan_div fndecl 0 53464 NULL
143957 +disable_so_nfs_map_uid_to_name_fndecl_53467 nfs_map_uid_to_name fndecl 4-0 53467 NULL
143958 +disable_so_handle_drm_vmw_fence_signaled_arg_53472 handle drm_vmw_fence_signaled_arg 0 53472 NULL
143959 +disable_so_guest_perf_guest_switch_msr_53477 guest perf_guest_switch_msr 0 53477 NULL
143960 +disable_so_encrypt_blkcipher_alg_53493 encrypt blkcipher_alg 4 53493 NULL
143961 +disable_so_tmr_disable_sound_lowlev_timer_53495 tmr_disable sound_lowlev_timer 1 53495 NULL nohasharray
143962 +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
143963 +disable_so_conversion_time_smm665_data_53516 conversion_time smm665_data 0 53516 NULL
143964 +disable_so_iscsi_tpg_attrib_store_netif_timeout_fndecl_53517 iscsi_tpg_attrib_store_netif_timeout fndecl 0-3 53517 NULL
143965 +disable_so_address_ib_umem_53524 address ib_umem 0 53524 NULL
143966 +disable_so_di_gid_gfs2_dinode_53528 di_gid gfs2_dinode 0 53528 NULL
143967 +disable_so_mem_busaddr_ahc_platform_data_53533 mem_busaddr ahc_platform_data 0 53533 NULL nohasharray
143968 +disable_so_sg_list_busaddr_scb_53533 sg_list_busaddr scb 0 53533 &disable_so_mem_busaddr_ahc_platform_data_53533
143969 +disable_so_vactive_hi_lvds_dvo_timing_53549 vactive_hi lvds_dvo_timing 0 53549 NULL
143970 +disable_so_block_dma_addr_rx_block_info_53550 block_dma_addr rx_block_info 0 53550 NULL
143971 +disable_so_st_ctime_nsec_compat_stat_53567 st_ctime_nsec compat_stat 0 53567 NULL
143972 +disable_so_storm_memset_hc_timeout_fndecl_53596 storm_memset_hc_timeout fndecl 2-3-5 53596 NULL
143973 +disable_so_vapic_addr_kvm_lapic_53599 vapic_addr kvm_lapic 0 53599 NULL
143974 +disable_so_schedule_irq_fndecl_53600 schedule_irq fndecl 2 53600 NULL
143975 +disable_so_smp_cmd_ident_addr_info_fndecl_53602 smp_cmd_ident_addr_info fndecl 0 53602 NULL
143976 +disable_so_rsp_dmaaddr_fw_scsi_cmd_wr_53609 rsp_dmaaddr fw_scsi_cmd_wr 0 53609 NULL
143977 +disable_so_device_addr_p54p_desc_53612 device_addr p54p_desc 0 53612 NULL nohasharray
143978 +disable_so_wm8350_reg_write_fndecl_53612 wm8350_reg_write fndecl 2-3-0 53612 &disable_so_device_addr_p54p_desc_53612
143979 +disable_so_ringid_wil_back_tx_53620 ringid wil_back_tx 0 53620 NULL nohasharray
143980 +disable_so_ahd_resolve_seqaddr_fndecl_53620 ahd_resolve_seqaddr fndecl 0-2 53620 &disable_so_ringid_wil_back_tx_53620
143981 +disable_so_sleep_control_elan_transport_ops_53622 sleep_control elan_transport_ops 0 53622 NULL
143982 +disable_so_btrfs_set_token_inode_gid_fndecl_53628 btrfs_set_token_inode_gid fndecl 3 53628 NULL
143983 +disable_so_format_gro_flush_timeout_fndecl_53638 format_gro_flush_timeout fndecl 0 53638 NULL
143984 +disable_so_one_bits_word_at_a_time_53641 one_bits word_at_a_time 0 53641 NULL
143985 +disable_so_i2c_addr_xc2028_config_53658 i2c_addr xc2028_config 0 53658 NULL
143986 +disable_so_ss_tss_segment_32_53663 ss tss_segment_32 0 53663 NULL
143987 +disable_so_backlight_off_delay_cdv_intel_dp_53664 backlight_off_delay cdv_intel_dp 0 53664 NULL
143988 +disable_so_genwqe_debugfs_prev_dbg_uid1_open_fndecl_53665 genwqe_debugfs_prev_dbg_uid1_open fndecl 0 53665 NULL
143989 +disable_so_mult_clocksource_53667 mult clocksource 0 53667 NULL nohasharray
143990 +disable_so_parse_nl_addr_fndecl_53667 parse_nl_addr fndecl 0 53667 &disable_so_mult_clocksource_53667
143991 +disable_so_irq_parport_53669 irq parport 0 53669 NULL
143992 +disable_so_apparmor_hash_size_vardecl_crypto_c_53670 apparmor_hash_size vardecl_crypto.c 0 53670 NULL
143993 +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
143994 +disable_so_si_do_program_memory_timing_parameters_fndecl_53672 si_do_program_memory_timing_parameters fndecl 0 53672 NULL
143995 +disable_so_addr_tx_desc_53676 addr tx_desc 0 53676 NULL
143996 +disable_so_put_unaligned_be16_fndecl_53677 put_unaligned_be16 fndecl 1 53677 NULL
143997 +disable_so_family_xfrm_usersa_id_53678 family xfrm_usersa_id 0 53678 NULL
143998 +disable_so_bcm54xx_ack_interrupt_fndecl_53685 bcm54xx_ack_interrupt fndecl 0 53685 NULL nohasharray
143999 +disable_so_svga_check_timings_fndecl_53685 svga_check_timings fndecl 3 53685 &disable_so_bcm54xx_ack_interrupt_fndecl_53685
144000 +disable_so_i40e_vc_add_mac_addr_msg_fndecl_53688 i40e_vc_add_mac_addr_msg fndecl 0-3 53688 NULL
144001 +disable_so_addr_mvfrey_inlist_entry_53690 addr mvfrey_inlist_entry 0 53690 NULL
144002 +disable_so_pch_src_uuid_hi_read_fndecl_53692 pch_src_uuid_hi_read fndecl 0 53692 NULL
144003 +disable_so___bitmap_intersects_fndecl_53698 __bitmap_intersects fndecl 3 53698 NULL
144004 +disable_so_atomic_open_fndecl_53702 atomic_open fndecl 0 53702 NULL
144005 +disable_so_address_dsp_scb_descriptor_53708 address dsp_scb_descriptor 0 53708 NULL
144006 +disable_so_timestamp_il_rx_phy_res_53714 timestamp il_rx_phy_res 0 53714 NULL
144007 +disable_so_start_time_edac_pci_ctl_info_53715 start_time edac_pci_ctl_info 0 53715 NULL
144008 +disable_so_show_forward_delay_timer_fndecl_53717 show_forward_delay_timer fndecl 0 53717 NULL nohasharray
144009 +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
144010 +disable_so_memory_address_range_set_error_type_with_address_53722 memory_address_range set_error_type_with_address 0 53722 NULL
144011 +disable_so_sm501_find_clock_fndecl_53729 sm501_find_clock fndecl 3-0 53729 NULL
144012 +disable_so___round_jiffies_relative_fndecl_53743 __round_jiffies_relative fndecl 2-0-1 53743 NULL
144013 +disable_so_ccp_aes_xts_crypt_fndecl_53745 ccp_aes_xts_crypt fndecl 0 53745 NULL
144014 +disable_so_buf_addr_mlx5_ib_create_cq_53754 buf_addr mlx5_ib_create_cq 0 53754 NULL
144015 +disable_so_i_gid_sysv_inode_53757 i_gid sysv_inode 0 53757 NULL
144016 +disable_so_address_fm10k_fault_53764 address fm10k_fault 0 53764 NULL
144017 +disable_so_ntb_set_mw_addr_fndecl_53775 ntb_set_mw_addr fndecl 3 53775 NULL
144018 +disable_so_rx_bd_haddr_lo_bnx2_rx_bd_53781 rx_bd_haddr_lo bnx2_rx_bd 0 53781 NULL
144019 +disable_so_set_rfreg_rtl_hal_ops_53782 set_rfreg rtl_hal_ops 3-5 53782 NULL
144020 +disable_so_kstrtoll_fndecl_53783 kstrtoll fndecl 0 53783 NULL
144021 +disable_so_btrfs_set_token_64_fndecl_53792 btrfs_set_token_64 fndecl 3-4 53792 NULL
144022 +disable_so_clock_dw_mci_slot_53801 clock dw_mci_slot 0 53801 NULL nohasharray
144023 +disable_so_i_uid_nilfs_inode_53801 i_uid nilfs_inode 0 53801 &disable_so_clock_dw_mci_slot_53801
144024 +disable_so_packet_len_2_sched_time_fndecl_53809 packet_len_2_sched_time fndecl 0-1 53809 NULL
144025 +disable_so_calc_div_fndecl_53821 calc_div fndecl 0-1 53821 NULL
144026 +disable_so_rsvd_pbl_addr_tpt_entry_53834 rsvd_pbl_addr tpt_entry 0 53834 NULL nohasharray
144027 +disable_so_dsc_rw_frequency_idetape_config_53834 dsc_rw_frequency idetape_config 0 53834 &disable_so_rsvd_pbl_addr_tpt_entry_53834
144028 +disable_so_ahc_get_sense_bufaddr_fndecl_53837 ahc_get_sense_bufaddr fndecl 0 53837 NULL
144029 +disable_so_jiffies_at_alloc_scsi_cmnd_53839 jiffies_at_alloc scsi_cmnd 0 53839 NULL
144030 +disable_so_sense_addr_orc_scb_53841 sense_addr orc_scb 0 53841 NULL
144031 +disable_so_stall_timeout_xenvif_53851 stall_timeout xenvif 0 53851 NULL
144032 +disable_so_tlv_put_btrfs_timespec_fndecl_53854 tlv_put_btrfs_timespec fndecl 0 53854 NULL
144033 +disable_so_nfsd4_decode_time_fndecl_53864 nfsd4_decode_time fndecl 0 53864 NULL
144034 +disable_so_threshold_target_nes_hw_tune_timer_53868 threshold_target nes_hw_tune_timer 0 53868 NULL
144035 +disable_so_i_uid_bfs_inode_53869 i_uid bfs_inode 0 53869 NULL
144036 +disable_so_vidioc_query_dv_timings_fndecl_53872 vidioc_query_dv_timings fndecl 0 53872 NULL
144037 +disable_so_rtl2832_sleep_fndecl_53873 rtl2832_sleep fndecl 0 53873 NULL
144038 +disable_so_snd_soc_update_bits_fndecl_53881 snd_soc_update_bits fndecl 0-2-4-3 53881 NULL
144039 +disable_so_sched_clock_fndecl_53886 sched_clock fndecl 0 53886 NULL
144040 +disable_so_ps_poll_upsd_timeouts_read_fndecl_53888 ps_poll_upsd_timeouts_read fndecl 3 53888 NULL
144041 +disable_so_pmdown_time_set_fndecl_53891 pmdown_time_set fndecl 0-4 53891 NULL
144042 +disable_so_sync_endtime_ip_vs_conn_53903 sync_endtime ip_vs_conn 0 53903 NULL
144043 +disable_so_timeout_c_tpm_vendor_specific_53905 timeout_c tpm_vendor_specific 0 53905 NULL
144044 +disable_so_i2c_address_mxl5005s_config_53906 i2c_address mxl5005s_config 0 53906 NULL
144045 +disable_so_bin_dn_node_address_fndecl_53909 bin_dn_node_address fndecl 0 53909 NULL
144046 +disable_so_i2c_addr_dib3000mc_state_53912 i2c_addr dib3000mc_state 0 53912 NULL
144047 +disable_so_musb_schedule_fndecl_53920 musb_schedule fndecl 3-0 53920 NULL
144048 +disable_so_card_addr_pcmcia_device_53921 card_addr pcmcia_device 0 53921 NULL
144049 +disable_so_freq_si476x_tune_freq_args_53927 freq si476x_tune_freq_args 0 53927 NULL
144050 +disable_so_xfrm_dst_hash_transfer_fndecl_53935 xfrm_dst_hash_transfer fndecl 4 53935 NULL
144051 +disable_so_fs_time_ufs_super_block_first_53936 fs_time ufs_super_block_first 0 53936 NULL
144052 +disable_so_buffer_addr_ath6kl_dbglog_buf_53947 buffer_addr ath6kl_dbglog_buf 0 53947 NULL
144053 +disable_so_drbd_send_bitmap_fndecl_53952 drbd_send_bitmap fndecl 0 53952 NULL
144054 +disable_so_xfs_kuid_to_uid_fndecl_53958 xfs_kuid_to_uid fndecl 0 53958 NULL
144055 +disable_so_addr_off_bfa_flash_53970 addr_off bfa_flash 0 53970 NULL
144056 +disable_so_string_langid_usb_device_53974 string_langid usb_device 0 53974 NULL
144057 +disable_so_src_addr_qla4_83xx_pex_dma_descriptor_53995 src_addr qla4_83xx_pex_dma_descriptor 0 53995 NULL
144058 +disable_so_crc32_pclmul_mod_init_fndecl_53996 crc32_pclmul_mod_init fndecl 0 53996 NULL
144059 +disable_so_range_to_mtrr_with_hole_fndecl_53998 range_to_mtrr_with_hole fndecl 0-2-3 53998 NULL
144060 +disable_so_cpu_cpufreq_freqs_54025 cpu cpufreq_freqs 0 54025 NULL
144061 +disable_so_read_addr_qla83xx_minidump_entry_pollrd_54033 read_addr qla83xx_minidump_entry_pollrd 0 54033 NULL
144062 +disable_so_wall_time_coarse_nsec_vsyscall_gtod_data_54044 wall_time_coarse_nsec vsyscall_gtod_data 0 54044 NULL
144063 +disable_so_HTotal_xtimings_54045 HTotal xtimings 0 54045 NULL
144064 +disable_so_hpi_cobranet_get_static_ip_address_fndecl_54046 hpi_cobranet_get_static_ip_address fndecl 1 54046 NULL
144065 +disable_so_device_reset_timer_mipi_config_54052 device_reset_timer mipi_config 0 54052 NULL
144066 +disable_so_myri10ge_watchdog_timeout_vardecl_myri10ge_c_54061 myri10ge_watchdog_timeout vardecl_myri10ge.c 0 54061 NULL
144067 +disable_so_slope_div_nvbios_therm_sensor_54063 slope_div nvbios_therm_sensor 0 54063 NULL
144068 +disable_so_cg_spll_func_cntl_rv770_clock_registers_54065 cg_spll_func_cntl rv770_clock_registers 0 54065 NULL
144069 +disable_so_custom_divisor_serial_struct_54066 custom_divisor serial_struct 0 54066 NULL
144070 +disable_so_cq_get_mtt_addr_fndecl_54071 cq_get_mtt_addr fndecl 0 54071 NULL
144071 +disable_so_stack_maxrandom_size_fndecl_54078 stack_maxrandom_size fndecl 0 54078 NULL
144072 +disable_so_ktime_get_mono_fast_ns_fndecl_54083 ktime_get_mono_fast_ns fndecl 0 54083 NULL
144073 +disable_so_reachable_time_neigh_parms_54094 reachable_time neigh_parms 0 54094 NULL
144074 +disable_so_hid_time_parse_report_fndecl_54114 hid_time_parse_report fndecl 0 54114 NULL
144075 +disable_so_baddr0_gru_instruction_54117 baddr0 gru_instruction 0 54117 NULL
144076 +disable_so_time_in_queue_disk_stats_54131 time_in_queue disk_stats 0 54131 NULL
144077 +disable_so_smsc95xx_set_mac_address_fndecl_54135 smsc95xx_set_mac_address fndecl 0 54135 NULL
144078 +disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140 sysctl_numa_balancing_scan_delay vardecl 0 54140 NULL nohasharray
144079 +disable_so_tun16_to_cpu_fndecl_54140 tun16_to_cpu fndecl 0-2 54140 &disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140
144080 +disable_so_addr_2_qla8044_minidump_entry_pollrdmwr_54142 addr_2 qla8044_minidump_entry_pollrdmwr 0 54142 NULL
144081 +disable_so___xfrm6_pref_hash_fndecl_54144 __xfrm6_pref_hash fndecl 0 54144 NULL
144082 +disable_so_sm501_select_clock_fndecl_54146 sm501_select_clock fndecl 1-0 54146 NULL
144083 +disable_so_x86_acpi_enter_sleep_state_fndecl_54149 x86_acpi_enter_sleep_state fndecl 0-1 54149 NULL
144084 +disable_so_ips_fix_ffdc_time_fndecl_54151 ips_fix_ffdc_time fndecl 3 54151 NULL
144085 +disable_so_set_var_mtrr_range_fndecl_54160 set_var_mtrr_range fndecl 2-3 54160 NULL nohasharray
144086 +disable_so_bi_blocks_gfs2_bitmap_54160 bi_blocks gfs2_bitmap 0 54160 &disable_so_set_var_mtrr_range_fndecl_54160
144087 +disable_so_ath10k_recalc_rtscts_prot_fndecl_54161 ath10k_recalc_rtscts_prot fndecl 0 54161 NULL
144088 +disable_so_i915_frequency_info_fndecl_54168 i915_frequency_info fndecl 0 54168 NULL
144089 +disable_so_store_fast_charge_timer_fndecl_54173 store_fast_charge_timer fndecl 0-4 54173 NULL
144090 +disable_so_compat_put_bitmap_fndecl_54182 compat_put_bitmap fndecl 0-3 54182 NULL
144091 +disable_so_cccr_address_p4_counter_binding_54184 cccr_address p4_counter_binding 0 54184 NULL
144092 +disable_so_extra_buf2_address_ene_device_54188 extra_buf2_address ene_device 0 54188 NULL
144093 +disable_so_gr_insert_uid_fndecl_54189 gr_insert_uid fndecl 2 54189 NULL
144094 +disable_so_addr_wil_fw_record_data_54198 addr wil_fw_record_data 0 54198 NULL
144095 +disable_so_hash_mask_dm_exception_table_54212 hash_mask dm_exception_table 0 54212 NULL
144096 +disable_so_cir_addr_ite_dev_54217 cir_addr ite_dev 0 54217 NULL
144097 +disable_so_end_fixed_mtrr_segment_54218 end fixed_mtrr_segment 0 54218 NULL
144098 +disable_so_timer_in_use_min_nes_hw_tune_timer_54220 timer_in_use_min nes_hw_tune_timer 0 54220 NULL
144099 +disable_so_act8b_ata_timing_54221 act8b ata_timing 0 54221 NULL
144100 +disable_so_psmouse_interrupt_fndecl_54222 psmouse_interrupt fndecl 2 54222 NULL
144101 +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
144102 +disable_so__freq_tbl_determine_rate_fndecl_54245 _freq_tbl_determine_rate fndecl 0 54245 NULL
144103 +disable_so_tm_hour_rtc_time_54254 tm_hour rtc_time 0 54254 NULL
144104 +disable_so_efx_nic_init_interrupt_fndecl_54259 efx_nic_init_interrupt fndecl 0 54259 NULL
144105 +disable_so_dr_addr_qla8044_quad_entry_54260 dr_addr qla8044_quad_entry 0 54260 NULL
144106 +disable_so_integer_pll_div_54261 integer pll_div 0 54261 NULL nohasharray
144107 +disable_so_buf_addr_brcmf_pcie_console_54261 buf_addr brcmf_pcie_console 0 54261 &disable_so_integer_pll_div_54261
144108 +disable_so_fandiv2_w83627ehf_data_54263 fandiv2 w83627ehf_data 0 54263 NULL
144109 +disable_so_gf_numsrc_group_filter_54274 gf_numsrc group_filter 0 54274 NULL
144110 +disable_so_adis_write_reg_fndecl_54282 adis_write_reg fndecl 0 54282 NULL
144111 +disable_so_last_commit_jiffies_pool_54290 last_commit_jiffies pool 0 54290 NULL nohasharray
144112 +disable_so_btree_cache_used_cache_set_54290 btree_cache_used cache_set 0 54290 &disable_so_last_commit_jiffies_pool_54290
144113 +disable_so_hid_time_probe_fndecl_54292 hid_time_probe fndecl 0 54292 NULL
144114 +disable_so_cgroup_subtree_control_write_fndecl_54294 cgroup_subtree_control_write fndecl 0-3 54294 NULL
144115 +disable_so_hpt3x2n_set_clock_fndecl_54295 hpt3x2n_set_clock fndecl 2 54295 NULL
144116 +disable_so_timestamp_nfs4_layoutget_args_54296 timestamp nfs4_layoutget_args 0 54296 NULL
144117 +disable_so_mic_setup_interrupts_fndecl_54300 mic_setup_interrupts fndecl 0 54300 NULL
144118 +disable_so_imsf_numsrc_ip_msfilter_54312 imsf_numsrc ip_msfilter 0 54312 NULL
144119 +disable_so_dma_addr_solos_skb_cb_54324 dma_addr solos_skb_cb 0 54324 NULL
144120 +disable_so_irq_domain_set_info_fndecl_54334 irq_domain_set_info fndecl 3-2 54334 NULL
144121 +disable_so_ks108_set_yaddr_fndecl_54335 ks108_set_yaddr fndecl 2-3 54335 NULL
144122 +disable_so_lfo1delay_soundfont_voice_parm_54350 lfo1delay soundfont_voice_parm 0 54350 NULL
144123 +disable_so_netxen_get_ioaddr_fndecl_54354 netxen_get_ioaddr fndecl 2 54354 NULL
144124 +disable_so_addrs_per_inode_fndecl_54364 addrs_per_inode fndecl 0 54364 NULL
144125 +disable_so_msr_rsc_54369 msr rsc 0 54369 NULL
144126 +disable_so_busaddr_CommandList_54370 busaddr CommandList 0 54370 NULL
144127 +disable_so_paddr_mwifiex_pfu_buf_desc_54374 paddr mwifiex_pfu_buf_desc 0 54374 NULL
144128 +disable_so_ieee80211_aes_key_setup_encrypt_fndecl_54383 ieee80211_aes_key_setup_encrypt fndecl 2-3 54383 NULL
144129 +disable_so_cpumask_parse_user_fndecl_54390 cpumask_parse_user fndecl 0-2 54390 NULL
144130 +disable_so_ack_signal_zd_mac_54391 ack_signal zd_mac 0 54391 NULL
144131 +disable_so_addr_lp855x_rom_data_54408 addr lp855x_rom_data 0 54408 NULL
144132 +disable_so_ar9003_mci_wait_for_interrupt_fndecl_54411 ar9003_mci_wait_for_interrupt fndecl 2-3 54411 NULL
144133 +disable_so_enable_timeout_sdio_func_54417 enable_timeout sdio_func 0 54417 NULL
144134 +disable_so_overrun_time_n_tty_data_54426 overrun_time n_tty_data 0 54426 NULL
144135 +disable_so_seq_netlbl_cipsov4_doiwalk_arg_54427 seq netlbl_cipsov4_doiwalk_arg 0 54427 NULL
144136 +disable_so_addr_hi_ocrdma_sge_54434 addr_hi ocrdma_sge 0 54434 NULL
144137 +disable_so_lcq_addr_hi_fcoe_kwqe_conn_offload4_54436 lcq_addr_hi fcoe_kwqe_conn_offload4 0 54436 NULL
144138 +disable_so_avc_ca_get_time_date_fndecl_54437 avc_ca_get_time_date fndecl 0 54437 NULL
144139 +disable_so_msg_rtime_msqid64_ds_54442 msg_rtime msqid64_ds 0 54442 NULL
144140 +disable_so_delay_vardecl_wm9705_c_54454 delay vardecl_wm9705.c 0 54454 NULL
144141 +disable_so_hpi_set_address_fndecl_54461 hpi_set_address fndecl 2 54461 NULL
144142 +disable_so_seq_nft_ctx_54462 seq nft_ctx 0 54462 NULL
144143 +disable_so_dm_btree_remove_fndecl_54463 dm_btree_remove fndecl 0-2 54463 NULL
144144 +disable_so_stv0297_set_initialdemodfreq_fndecl_54465 stv0297_set_initialdemodfreq fndecl 2 54465 NULL
144145 +disable_so_shdwreg_addr_lo_addr_ctrl_blk_54466 shdwreg_addr_lo addr_ctrl_blk 0 54466 NULL
144146 +disable_so_i2c_dev_addr_au0828_rc_54470 i2c_dev_addr au0828_rc 0 54470 NULL
144147 +disable_so_sha256_generic_mod_init_fndecl_54474 sha256_generic_mod_init fndecl 0 54474 NULL
144148 +disable_so_kdiv_skl_wrpll_params_54475 kdiv skl_wrpll_params 0 54475 NULL
144149 +disable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 0 54477 NULL
144150 +disable_so_addr_gsm_msg_54481 addr gsm_msg 0 54481 NULL
144151 +disable_so_select_delay_floppy_drive_params_54487 select_delay floppy_drive_params 0 54487 NULL
144152 +disable_so_dm_btree_find_highest_key_fndecl_54489 dm_btree_find_highest_key fndecl 0-2 54489 NULL
144153 +disable_so_last_retry_addr_kvm_vcpu_arch_54492 last_retry_addr kvm_vcpu_arch 0 54492 NULL
144154 +disable_so_default_delay_pi_protocol_54493 default_delay pi_protocol 0 54493 NULL
144155 +disable_so_dummy_dma_page_physical_address_r592_device_54497 dummy_dma_page_physical_address r592_device 0 54497 NULL
144156 +disable_so_drbg_hash_update_fndecl_54501 drbg_hash_update fndecl 0 54501 NULL
144157 +disable_so_cryptd_blkcipher_setkey_fndecl_54506 cryptd_blkcipher_setkey fndecl 0-3 54506 NULL
144158 +disable_so_mounted_uid_ncp_fs_info_v2_54511 mounted_uid ncp_fs_info_v2 0 54511 NULL
144159 +disable_so_htc_ext_addr_ath6kl_mbox_info_54517 htc_ext_addr ath6kl_mbox_info 0 54517 NULL
144160 +disable_so_xen_pmd_val_fndecl_54519 xen_pmd_val fndecl 0 54519 NULL
144161 +disable_so_incr_cpu_itimer_54530 incr cpu_itimer 0 54530 NULL
144162 +disable_so_fw_blob_dest_addr_pn544_i2c_phy_54532 fw_blob_dest_addr pn544_i2c_phy 0 54532 NULL
144163 +disable_so_ip_addr_nx_ip_list_54540 ip_addr nx_ip_list 0 54540 NULL
144164 +disable_so_test_ahash_cycles_digest_fndecl_54541 test_ahash_cycles_digest fndecl 0 54541 NULL
144165 +disable_so_tegra_sflash_runtime_resume_fndecl_54543 tegra_sflash_runtime_resume fndecl 0 54543 NULL
144166 +disable_so_start_addr_qlcnic_flt_entry_54564 start_addr qlcnic_flt_entry 0 54564 NULL
144167 +disable_so_addr_lo_tg3_rx_buffer_desc_54565 addr_lo tg3_rx_buffer_desc 0 54565 NULL
144168 +disable_so_btrfs_free_space_bitmaps_fndecl_54566 btrfs_free_space_bitmaps fndecl 0 54566 NULL nohasharray
144169 +disable_so_crypto_rfc4309_decrypt_fndecl_54566 crypto_rfc4309_decrypt fndecl 0 54566 &disable_so_btrfs_free_space_bitmaps_fndecl_54566
144170 +disable_so_crypto_ahash_op_fndecl_54569 crypto_ahash_op fndecl 0 54569 NULL
144171 +disable_so_rbt_ib_umem_compute_subtree_last_fndecl_54589 rbt_ib_umem_compute_subtree_last fndecl 0 54589 NULL
144172 +disable_so_ap_sleep_wlcore_ops_54591 ap_sleep wlcore_ops 0 54591 NULL
144173 +disable_so_get_freq_adis16400_chip_info_54596 get_freq adis16400_chip_info 0 54596 NULL
144174 +disable_so_entries_dmaaddr_snd_trident_tlb_54601 entries_dmaaddr snd_trident_tlb 0 54601 NULL
144175 +disable_so_hwrqaddr_fw_ri_init_54619 hwrqaddr fw_ri_init 0 54619 NULL
144176 +disable_so_rs_user_addr_rds_sock_54620 rs_user_addr rds_sock 0 54620 NULL
144177 +disable_so_snd_timer_global_new_fndecl_54623 snd_timer_global_new fndecl 2-0 54623 NULL
144178 +disable_so_rsi_setclock_fndecl_54628 rsi_setclock fndecl 2 54628 NULL
144179 +disable_so_addr_ct_vm_block_54632 addr ct_vm_block 0 54632 NULL
144180 +disable_so_read_addr_qla8044_minidump_entry_mux_54633 read_addr qla8044_minidump_entry_mux 0 54633 NULL
144181 +disable_so_queue_delayed_work_on_fndecl_54644 queue_delayed_work_on fndecl 1-4 54644 NULL
144182 +disable_so_arcmsr_adjust_disk_queue_depth_fndecl_54647 arcmsr_adjust_disk_queue_depth fndecl 0-2 54647 NULL
144183 +disable_so_mpihelp_mul_1_fndecl_54658 mpihelp_mul_1 fndecl 3 54658 NULL
144184 +disable_so_bitmap_ipmac_do_add_fndecl_54672 bitmap_ipmac_do_add fndecl 4 54672 NULL
144185 +disable_so_paddr_fsl_asrc_54677 paddr fsl_asrc 0 54677 NULL
144186 +disable_so_sil_iowrite32_fndecl_54679 sil_iowrite32 fndecl 3-2 54679 NULL
144187 +disable_so_adv_smbus_write_byte_data_fndecl_54684 adv_smbus_write_byte_data fndecl 2-3-0 54684 NULL
144188 +disable_so_delay_snd_pcm_runtime_54685 delay snd_pcm_runtime 0 54685 NULL
144189 +disable_so_cp_blkaddr_f2fs_super_block_54690 cp_blkaddr f2fs_super_block 0 54690 NULL
144190 +disable_so_schedule_erase_fndecl_54695 schedule_erase fndecl 4-3 54695 NULL
144191 +disable_so_mesh_set_short_slot_time_fndecl_54696 mesh_set_short_slot_time fndecl 0 54696 NULL
144192 +disable_so_pll2_ndiv_a_cnt_ad9523_platform_data_54701 pll2_ndiv_a_cnt ad9523_platform_data 0 54701 NULL
144193 +disable_so_dirtytime_expire_interval_vardecl_54714 dirtytime_expire_interval vardecl 0 54714 NULL nohasharray
144194 +disable_so_cdv_intel_crtc_clock_get_fndecl_54714 cdv_intel_crtc_clock_get fndecl 0 54714 &disable_so_dirtytime_expire_interval_vardecl_54714
144195 +disable_so_timeout_vardecl_w83627hf_wdt_c_54716 timeout vardecl_w83627hf_wdt.c 0 54716 NULL
144196 +disable_so_ccp_addr_hi_fndecl_54724 ccp_addr_hi fndecl 0 54724 NULL nohasharray
144197 +disable_so_usnic_fwd_add_ipaddr_fndecl_54724 usnic_fwd_add_ipaddr fndecl 2 54724 &disable_so_ccp_addr_hi_fndecl_54724
144198 +disable_so_encrypt_ablkcipher_tfm_54728 encrypt ablkcipher_tfm 0 54728 NULL
144199 +disable_so_dp83640_ack_interrupt_fndecl_54729 dp83640_ack_interrupt fndecl 0 54729 NULL
144200 +disable_so_crypto_pcbc_decrypt_fndecl_54732 crypto_pcbc_decrypt fndecl 0-4 54732 NULL
144201 +disable_so_jackdetect_debounce_time_adau1761_platform_data_54736 jackdetect_debounce_time adau1761_platform_data 0 54736 NULL
144202 +disable_so_ism1_runtime_sc_54739 ism1 runtime_sc 0 54739 NULL
144203 +disable_so___hw_addr_sync_multiple_fndecl_54744 __hw_addr_sync_multiple fndecl 0-3 54744 NULL nohasharray
144204 +disable_so_irq_modify_status_fndecl_54744 irq_modify_status fndecl 1 54744 &disable_so___hw_addr_sync_multiple_fndecl_54744
144205 +disable_so_vfreq_aspect_std_timing_54751 vfreq_aspect std_timing 0 54751 NULL
144206 +disable_so_sd_gid_stat_data_54756 sd_gid stat_data 0 54756 NULL
144207 +disable_so_buffer_addr_m3_dma_54757 buffer_addr m3_dma 0 54757 NULL
144208 +disable_so_driver_timestamp_qla4_8xxx_minidump_template_hdr_54761 driver_timestamp qla4_8xxx_minidump_template_hdr 0 54761 NULL
144209 +disable_so_bitmap_root_ll_disk_54791 bitmap_root ll_disk 0 54791 NULL
144210 +disable_so_addr_to_sbp2_pointer_fndecl_54805 addr_to_sbp2_pointer fndecl 1 54805 NULL
144211 +disable_so_i2c_addr_af9013_config_54806 i2c_addr af9013_config 0 54806 NULL
144212 +disable_so_runtime_sched_dl_entity_54815 runtime sched_dl_entity 0 54815 NULL
144213 +disable_so_signal_rtl8187_rx_hdr_54828 signal rtl8187_rx_hdr 0 54828 NULL
144214 +disable_so_gid_list_dma_qla_hw_data_54829 gid_list_dma qla_hw_data 0 54829 NULL
144215 +disable_so_tsi721_omsg_interrupt_enable_fndecl_54831 tsi721_omsg_interrupt_enable fndecl 3-2 54831 NULL
144216 +disable_so_nsec_pps_ktime_54835 nsec pps_ktime 0 54835 NULL
144217 +disable_so_timeout_xfrm_policy_queue_54847 timeout xfrm_policy_queue 0 54847 NULL
144218 +disable_so_uid_used_vardecl_gracl_segv_c_54850 uid_used vardecl_gracl_segv.c 0 54850 NULL
144219 +disable_so_regmap_update_bits_fndecl_54855 regmap_update_bits fndecl 0-2-4-3 54855 NULL
144220 +disable_so_next_status_checked_time_netup_ci_state_54858 next_status_checked_time netup_ci_state 0 54858 NULL
144221 +disable_so_dma_addr_s_txd_os_54860 dma_addr s_txd_os 0 54860 NULL
144222 +disable_so_tms_cstime_compat_tms_54864 tms_cstime compat_tms 0 54864 NULL
144223 +disable_so_reply_dma_max_address_MPT3SAS_ADAPTER_54869 reply_dma_max_address MPT3SAS_ADAPTER 0 54869 NULL
144224 +disable_so_tsc_read_refs_fndecl_54873 tsc_read_refs fndecl 0 54873 NULL
144225 +disable_so_tpm_get_timeouts_fndecl_54878 tpm_get_timeouts fndecl 0 54878 NULL
144226 +disable_so_dn_hash_dump_bucket_fndecl_54884 dn_hash_dump_bucket fndecl 0 54884 NULL
144227 +disable_so_queue_timeout_fndecl_54887 queue_timeout fndecl 2 54887 NULL
144228 +disable_so_T5_address_mxt_data_54888 T5_address mxt_data 0 54888 NULL
144229 +disable_so_arizona_runtime_resume_fndecl_54897 arizona_runtime_resume fndecl 0 54897 NULL
144230 +disable_so_udp_timeout_ip_vs_timeout_user_54908 udp_timeout ip_vs_timeout_user 0 54908 NULL
144231 +disable_so_idiag_uid_inet_diag_msg_54913 idiag_uid inet_diag_msg 0 54913 NULL nohasharray
144232 +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
144233 +disable_so_aty_st_le32_fndecl_54925 aty_st_le32 fndecl 2 54925 NULL
144234 +disable_so_saffirepro_both_clk_freq_set_fndecl_54935 saffirepro_both_clk_freq_set fndecl 0 54935 NULL
144235 +disable_so_mcryptd_hash_finup_fndecl_54940 mcryptd_hash_finup fndecl 2 54940 NULL
144236 +disable_so_nla_put_be64_fndecl_54942 nla_put_be64 fndecl 0 54942 NULL
144237 +disable_so_delay_qlc_83xx_entry_hdr_54949 delay qlc_83xx_entry_hdr 0 54949 NULL
144238 +disable_so_dac33_dai_delay_fndecl_54952 dac33_dai_delay fndecl 0 54952 NULL nohasharray
144239 +disable_so_dmaaddr_cafe_priv_54952 dmaaddr cafe_priv 0 54952 &disable_so_dac33_dai_delay_fndecl_54952
144240 +disable_so_addr_hda_codec_54956 addr hda_codec 0 54956 NULL
144241 +disable_so_dummy_buffer_addr_lo_fcoe_kwqe_init1_54962 dummy_buffer_addr_lo fcoe_kwqe_init1 0 54962 NULL nohasharray
144242 +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
144243 +disable_so_default_timetolive_sctp_sock_54963 default_timetolive sctp_sock 0 54963 NULL
144244 +disable_so_test_acipher_cycles_fndecl_54972 test_acipher_cycles fndecl 0 54972 NULL
144245 +disable_so_last_jiffies_tick_sched_54974 last_jiffies tick_sched 0 54974 NULL
144246 +disable_so_offset_btrfs_delayed_data_ref_54980 offset btrfs_delayed_data_ref 0 54980 NULL
144247 +disable_so_toshiba_usb_sleep_music_set_fndecl_54986 toshiba_usb_sleep_music_set fndecl 0 54986 NULL
144248 +disable_so_addr_start_vardecl_init_64_c_54989 addr_start vardecl_init_64.c 0 54989 NULL
144249 +disable_so_seq_xfrm_user_acquire_54990 seq xfrm_user_acquire 0 54990 NULL
144250 +disable_so_setup_ide_timing_54997 setup ide_timing 0 54997 NULL
144251 +disable_so_dirtytime_interval_handler_fndecl_54998 dirtytime_interval_handler fndecl 0 54998 NULL
144252 +disable_so_last_heartbeat_timestamp_ctlr_info_55000 last_heartbeat_timestamp ctlr_info 0 55000 NULL
144253 +disable_so_bond_set_mac_address_fndecl_55006 bond_set_mac_address fndecl 0 55006 NULL
144254 +disable_so_curfreq_amradio_device_55017 curfreq amradio_device 0 55017 NULL
144255 +disable_so_time_mult_perf_event_mmap_page_55031 time_mult perf_event_mmap_page 0 55031 NULL nohasharray
144256 +disable_so___i2c_bit_add_bus_fndecl_55031 __i2c_bit_add_bus fndecl 0 55031 &disable_so_time_mult_perf_event_mmap_page_55031
144257 +disable_so_addr_f71882fg_data_55035 addr f71882fg_data 0 55035 NULL
144258 +disable_so_time_stamp_igb_tx_buffer_55041 time_stamp igb_tx_buffer 0 55041 NULL
144259 +disable_so_fsl_spdif_txclk_caldiv_fndecl_55042 fsl_spdif_txclk_caldiv fndecl 3-0 55042 NULL
144260 +disable_so_wall_time_coarse_sec_vsyscall_gtod_data_55048 wall_time_coarse_sec vsyscall_gtod_data 0 55048 NULL nohasharray
144261 +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
144262 +disable_so_enic_set_mac_address_fndecl_55049 enic_set_mac_address fndecl 0 55049 NULL
144263 +disable_so_bitmap_shift_left_fndecl_55055 bitmap_shift_left fndecl 3-4 55055 NULL
144264 +disable_so_uea_set_bulk_timeout_fndecl_55059 uea_set_bulk_timeout fndecl 2 55059 NULL
144265 +disable_so_xfs_btree_check_lblock_fndecl_55062 xfs_btree_check_lblock fndecl 0 55062 NULL
144266 +disable_so_addr_num_sctp_getaddrs_old_55065 addr_num sctp_getaddrs_old 0 55065 NULL
144267 +disable_so_random_ri_fndecl_55094 random_ri fndecl 0 55094 NULL
144268 +disable_so_rhashtable_insert_fast_fndecl_55105 rhashtable_insert_fast fndecl 0 55105 NULL
144269 +disable_so_val_nla_map_55108 val nla_map 0 55108 NULL
144270 +disable_so_sis_program_timings_fndecl_55111 sis_program_timings fndecl 2 55111 NULL
144271 +disable_so_crypto_authenc_esn_module_init_fndecl_55112 crypto_authenc_esn_module_init fndecl 0 55112 NULL
144272 +disable_so_open_d_r820t_freq_range_55124 open_d r820t_freq_range 0 55124 NULL
144273 +disable_so_b43legacy_set_slot_time_fndecl_55128 b43legacy_set_slot_time fndecl 2 55128 NULL nohasharray
144274 +disable_so_rowaddr_fndecl_55128 rowaddr fndecl 2 55128 &disable_so_b43legacy_set_slot_time_fndecl_55128 nohasharray
144275 +disable_so_iscsit_do_crypto_hash_sg_fndecl_55128 iscsit_do_crypto_hash_sg fndecl 4-5 55128 &disable_so_rowaddr_fndecl_55128 nohasharray
144276 +disable_so_padlock_sha1_final_fndecl_55128 padlock_sha1_final fndecl 0 55128 &disable_so_iscsit_do_crypto_hash_sg_fndecl_55128
144277 +disable_so_st_ctime_stat_55144 st_ctime stat 0 55144 NULL
144278 +disable_so_bma150_set_low_g_interrupt_fndecl_55166 bma150_set_low_g_interrupt fndecl 4-5-3-0 55166 NULL
144279 +disable_so_atomic_commit_drm_mode_config_funcs_55169 atomic_commit drm_mode_config_funcs 0 55169 NULL
144280 +disable_so_timeout_ns_mmc_data_55170 timeout_ns mmc_data 0 55170 NULL
144281 +disable_so_rq_addr_low_nes_qp_context_55197 rq_addr_low nes_qp_context 0 55197 NULL
144282 +disable_so_gaintime_tsl2563_gainlevel_coeff_55201 gaintime tsl2563_gainlevel_coeff 0 55201 NULL
144283 +disable_so_attr_timeout_fndecl_55204 attr_timeout fndecl 0 55204 NULL
144284 +disable_so_tx_addr_happy_meal_txd_55205 tx_addr happy_meal_txd 0 55205 NULL nohasharray
144285 +disable_so_hsync_v4l2_bt_timings_55205 hsync v4l2_bt_timings 0 55205 &disable_so_tx_addr_happy_meal_txd_55205
144286 +disable_so_decode_bitmap_fndecl_55218 decode_bitmap fndecl 0 55218 NULL
144287 +disable_so_p1_gma_clock_t_55221 p1 gma_clock_t 0 55221 NULL
144288 +disable_so_bitrate_can_bittiming_55225 bitrate can_bittiming 0 55225 NULL
144289 +disable_so_tqi_ready_time_ath5k_txq_info_55226 tqi_ready_time ath5k_txq_info 0 55226 NULL
144290 +disable_so_msr_seek_fndecl_55235 msr_seek fndecl 0-2 55235 NULL
144291 +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
144292 +disable_so_ac97_clock_vardecl_via82xx_c_55242 ac97_clock vardecl_via82xx.c 0 55242 NULL
144293 +disable_so_si2157_sleep_fndecl_55246 si2157_sleep fndecl 0 55246 NULL
144294 +disable_so_max8925_rtc_read_time_fndecl_55254 max8925_rtc_read_time fndecl 0 55254 NULL
144295 +disable_so_di_gid_efs_dinode_55256 di_gid efs_dinode 0 55256 NULL
144296 +disable_so_elan_i2c_sleep_control_fndecl_55264 elan_i2c_sleep_control fndecl 0 55264 NULL
144297 +disable_so_freq_reg_info_regd_fndecl_55266 freq_reg_info_regd fndecl 2 55266 NULL
144298 +disable_so_int_coalescing_timer_ahd_softc_55267 int_coalescing_timer ahd_softc 0 55267 NULL
144299 +disable_so_grsec_alert_wtime_vardecl_55279 grsec_alert_wtime vardecl 0 55279 NULL
144300 +disable_so_btrfs_inode_gid_fndecl_55281 btrfs_inode_gid fndecl 0 55281 NULL
144301 +disable_so_ebitmap_node_set_bit_fndecl_55285 ebitmap_node_set_bit fndecl 2 55285 NULL
144302 +disable_so_gpu_addr_kfd_mem_obj_55286 gpu_addr kfd_mem_obj 0 55286 NULL
144303 +disable_so_smp_random_fndecl_55288 smp_random fndecl 0 55288 NULL
144304 +disable_so_start_rmt_timer1_fndecl_55290 start_rmt_timer1 fndecl 2 55290 NULL
144305 +disable_so_cit_setkey_cipher_tfm_55304 cit_setkey cipher_tfm 0-3 55304 NULL
144306 +disable_so_grpfreq_pca963x_chipdef_55310 grpfreq pca963x_chipdef 0 55310 NULL
144307 +disable_so_mb_dma_address_skd_special_context_55312 mb_dma_address skd_special_context 0 55312 NULL
144308 +disable_so_t4_fwaddrspace_write_fndecl_55313 t4_fwaddrspace_write fndecl 0-2 55313 NULL
144309 +disable_so_num_msrs_to_save_vardecl_x86_c_55317 num_msrs_to_save vardecl_x86.c 0 55317 NULL
144310 +disable_so_cdc_ncm_show_tx_timer_usecs_fndecl_55319 cdc_ncm_show_tx_timer_usecs fndecl 0 55319 NULL
144311 +disable_so_sum_exec_runtime_task_cputime_55320 sum_exec_runtime task_cputime 0 55320 NULL
144312 +disable_so_crypto_hash_final_fndecl_55327 crypto_hash_final fndecl 0 55327 NULL
144313 +disable_so___irq_domain_add_fndecl_55334 __irq_domain_add fndecl 2-3 55334 NULL
144314 +disable_so_end_addr_p54_tx_info_55335 end_addr p54_tx_info 0 55335 NULL
144315 +disable_so_pre_div_pll__55336 pre_div pll_ 0 55336 NULL nohasharray
144316 +disable_so_als_adjust_channel_bit_mask_fndecl_55336 als_adjust_channel_bit_mask fndecl 3 55336 &disable_so_pre_div_pll__55336
144317 +disable_so_write_timeout_cdrom_info_55346 write_timeout cdrom_info 0 55346 NULL nohasharray
144318 +disable_so_crypto_ecb_decrypt_fndecl_55346 crypto_ecb_decrypt fndecl 0-4 55346 &disable_so_write_timeout_cdrom_info_55346
144319 +disable_so_audit_set_backlog_wait_time_fndecl_55349 audit_set_backlog_wait_time fndecl 1-0 55349 NULL
144320 +disable_so_show_risefalltime_fndecl_55351 show_risefalltime fndecl 4-0 55351 NULL
144321 +disable_so_ahash_def_finup_done2_fndecl_55353 ahash_def_finup_done2 fndecl 2 55353 NULL
144322 +disable_so_dm_btree_lookup_fndecl_55361 dm_btree_lookup fndecl 0-2 55361 NULL
144323 +disable_so_drm_prime_sg_to_page_addr_arrays_fndecl_55369 drm_prime_sg_to_page_addr_arrays fndecl 4 55369 NULL
144324 +disable_so_real_clock_atom_clock_dividers_55377 real_clock atom_clock_dividers 0 55377 NULL
144325 +disable_so_div_f1_pll_values_55378 div_f1 pll_values 0 55378 NULL
144326 +disable_so_pci_address_hpt_iopsg_55384 pci_address hpt_iopsg 0 55384 NULL
144327 +disable_so_inode_id_btrfs_delayed_node_55390 inode_id btrfs_delayed_node 0 55390 NULL
144328 +disable_so_write32_bcma_host_ops_55392 write32 bcma_host_ops 3 55392 NULL
144329 +disable_so_freq_libipw_channel_55395 freq libipw_channel 0 55395 NULL nohasharray
144330 +disable_so_maxlen_img_ir_free_timing_55395 maxlen img_ir_free_timing 0 55395 &disable_so_freq_libipw_channel_55395
144331 +disable_so_tgid_autofs_wait_queue_55396 tgid autofs_wait_queue 0 55396 NULL
144332 +disable_so_init_latch_addr_flash_data_55405 init latch_addr_flash_data 2 55405 NULL
144333 +disable_so_di_ctime_nsec_gfs2_dinode_55408 di_ctime_nsec gfs2_dinode 0 55408 NULL nohasharray
144334 +disable_so_hdspm_round_frequency_fndecl_55408 hdspm_round_frequency fndecl 0-1 55408 &disable_so_di_ctime_nsec_gfs2_dinode_55408
144335 +disable_so_time_expires_NCR5380_hostdata_55415 time_expires NCR5380_hostdata 0 55415 NULL
144336 +disable_so___cpu_to_virtio16_fndecl_55418 __cpu_to_virtio16 fndecl 0-2 55418 NULL
144337 +disable_so_ktime_get_seconds_fndecl_55426 ktime_get_seconds fndecl 0 55426 NULL
144338 +disable_so_start_pci_bus_region_55432 start pci_bus_region 0 55432 NULL
144339 +disable_so_uid_h_misc_55433 uid h_misc 0 55433 NULL
144340 +disable_so_clock_drm_display_mode_55440 clock drm_display_mode 0 55440 NULL
144341 +disable_so_show_pci_clock_fndecl_55445 show_pci_clock fndecl 0 55445 NULL
144342 +disable_so_locks_mul_rhashtable_params_55448 locks_mul rhashtable_params 0 55448 NULL
144343 +disable_so_ds2404_read_time_fndecl_55458 ds2404_read_time fndecl 0 55458 NULL
144344 +disable_so_freq_reg_info_fndecl_55465 freq_reg_info fndecl 2 55465 NULL
144345 +disable_so_buffer_addr_nm256_55469 buffer_addr nm256 0 55469 NULL
144346 +disable_so_gr_find_uid_fndecl_55479 gr_find_uid fndecl 0-1 55479 NULL
144347 +disable_so_crypto_report_fndecl_55482 crypto_report fndecl 0 55482 NULL
144348 +disable_so_si470x_set_freq_fndecl_55487 si470x_set_freq fndecl 2 55487 NULL
144349 +disable_so_addr_nvif_ioctl_wr_v0_55489 addr nvif_ioctl_wr_v0 0 55489 NULL
144350 +disable_so_vruntime_sched_entity_55490 vruntime sched_entity 0 55490 NULL nohasharray
144351 +disable_so_hdelay_bttv_geometry_55490 hdelay bttv_geometry 0 55490 &disable_so_vruntime_sched_entity_55490 nohasharray
144352 +disable_so_btrfs_bitmap_cluster_fndecl_55490 btrfs_bitmap_cluster fndecl 4-5-6-7 55490 &disable_so_hdelay_bttv_geometry_55490
144353 +disable_so_height_intel_sdvo_preferred_input_timing_args_55498 height intel_sdvo_preferred_input_timing_args 0 55498 NULL
144354 +disable_so_bosr__coeff_div_55501 bosr _coeff_div 0 55501 NULL
144355 +disable_so_logical_address_ms_extra_data_register_55503 logical_address ms_extra_data_register 0 55503 NULL
144356 +disable_so_last_timeout_iscsi_task_55509 last_timeout iscsi_task 0 55509 NULL
144357 +disable_so_ip_vs_addr_set_fndecl_55530 ip_vs_addr_set fndecl 1 55530 NULL
144358 +disable_so_cg_spll_func_cntl_3_si_clock_registers_55541 cg_spll_func_cntl_3 si_clock_registers 0 55541 NULL nohasharray
144359 +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
144360 +disable_so_desc_card_addr___mem_55541 desc_card_addr __mem 0 55541 &disable_so_pwr_delay_panel_info_55541
144361 +disable_so_read_addr_qla8xxx_minidump_entry_rdmem_55551 read_addr qla8xxx_minidump_entry_rdmem 0 55551 NULL nohasharray
144362 +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
144363 +disable_so_timing_hpt_clock_55565 timing hpt_clock 0 55565 NULL
144364 +disable_so_kvm_get_tsc_khz_fndecl_55570 kvm_get_tsc_khz fndecl 0 55570 NULL
144365 +disable_so_demod_address_tda8083_config_55572 demod_address tda8083_config 0 55572 NULL
144366 +disable_so_ql_set_mac_addr_fndecl_55574 ql_set_mac_addr fndecl 0 55574 NULL
144367 +disable_so_lzo1x_1_compress_fndecl_55575 lzo1x_1_compress fndecl 2 55575 NULL
144368 +disable_so_psb_intel_sdvo_get_slave_addr_fndecl_55586 psb_intel_sdvo_get_slave_addr fndecl 0 55586 NULL
144369 +disable_so_tseg1_max_can_bittiming_const_55596 tseg1_max can_bittiming_const 0 55596 NULL
144370 +disable_so_cap_mmap_addr_fndecl_55598 cap_mmap_addr fndecl 0 55598 NULL nohasharray
144371 +disable_so_i_saddr_rds_incoming_55598 i_saddr rds_incoming 0 55598 &disable_so_cap_mmap_addr_fndecl_55598
144372 +disable_so_scan_cycle_time_adp5589_kpad_platform_data_55611 scan_cycle_time adp5589_kpad_platform_data 0 55611 NULL
144373 +disable_so_timeout_usb3_lpm_parameters_55617 timeout usb3_lpm_parameters 0 55617 NULL
144374 +disable_so_dma_addr0_flexcop_dma_55619 dma_addr0 flexcop_dma 0 55619 NULL nohasharray
144375 +disable_so_pci_bus_alloc_resource_fndecl_55619 pci_bus_alloc_resource fndecl 5-3-4 55619 &disable_so_dma_addr0_flexcop_dma_55619
144376 +disable_so_drm_legacy_ctxbitmap_free_fndecl_55620 drm_legacy_ctxbitmap_free fndecl 2 55620 NULL
144377 +disable_so_dp_saddr_rds_iw_connect_private_55621 dp_saddr rds_iw_connect_private 0 55621 NULL
144378 +disable_so_get_fan1_div_fndecl_55629 get_fan1_div fndecl 0 55629 NULL
144379 +disable_so_cfg_rrq_xri_bitmap_sz_lpfc_hba_55637 cfg_rrq_xri_bitmap_sz lpfc_hba 0 55637 NULL
144380 +disable_so_timeout_ms_rdma_ucm_resolve_addr_55643 timeout_ms rdma_ucm_resolve_addr 0 55643 NULL
144381 +disable_so_elv_rqhash_find_fndecl_55656 elv_rqhash_find fndecl 2 55656 NULL
144382 +disable_so_addrconf_sysctl_disable_fndecl_55663 addrconf_sysctl_disable fndecl 0 55663 NULL
144383 +disable_so_cx24117_read_signal_strength_fndecl_55668 cx24117_read_signal_strength fndecl 0 55668 NULL
144384 +disable_so_table2_addr_ipw_priv_55672 table2_addr ipw_priv 0 55672 NULL
144385 +disable_so_lock_time_drm_lock_data_55680 lock_time drm_lock_data 0 55680 NULL
144386 +disable_so_timeout_init_vardecl_ch_c_55683 timeout_init vardecl_ch.c 0 55683 NULL
144387 +disable_so_btrfs_uuid_tree_rem_fndecl_55691 btrfs_uuid_tree_rem fndecl 0-4-5 55691 NULL
144388 +disable_so_n_cipher_schemes_ieee80211_hw_55692 n_cipher_schemes ieee80211_hw 0 55692 NULL
144389 +disable_so_wcid_rt2x00lib_crypto_55695 wcid rt2x00lib_crypto 0 55695 NULL
144390 +disable_so_beiscsi_get_macaddr_fndecl_55699 beiscsi_get_macaddr fndecl 0 55699 NULL
144391 +disable_so_fdb_delete_by_addr_fndecl_55704 fdb_delete_by_addr fndecl 3 55704 NULL
144392 +disable_so_hpi_compander_get_decay_time_constant_fndecl_55715 hpi_compander_get_decay_time_constant fndecl 1-0 55715 NULL
144393 +disable_so_pcc_get_freq_fndecl_55717 pcc_get_freq fndecl 0 55717 NULL
144394 +disable_so_mca_cstamp_ifmcaddr6_55724 mca_cstamp ifmcaddr6 0 55724 NULL
144395 +disable_so_seltime_ahd_softc_55725 seltime ahd_softc 0 55725 NULL nohasharray
144396 +disable_so_addr_2_qla8044_minidump_entry_pollwr_55725 addr_2 qla8044_minidump_entry_pollwr 0 55725 &disable_so_seltime_ahd_softc_55725
144397 +disable_so_vm_exit_msr_load_addr_vmcs12_55733 vm_exit_msr_load_addr vmcs12 0 55733 NULL
144398 +disable_so_mclk_pwrmgt_cntl_ci_clock_registers_55735 mclk_pwrmgt_cntl ci_clock_registers 0 55735 NULL
144399 +disable_so_gcm_hash_update_fndecl_55740 gcm_hash_update fndecl 0-4 55740 NULL
144400 +disable_so_ab3100_set_test_register_interruptible_fndecl_55741 ab3100_set_test_register_interruptible fndecl 0 55741 NULL
144401 +disable_so_ieee802154_hdr_get_addrs_fndecl_55743 ieee802154_hdr_get_addrs fndecl 0 55743 NULL
144402 +disable_so_devfreq_userspace_handler_fndecl_55748 devfreq_userspace_handler fndecl 0 55748 NULL
144403 +disable_so_host_sg_tbl_addr_rtsx_pcr_55750 host_sg_tbl_addr rtsx_pcr 0 55750 NULL
144404 +disable_so_crypto_hash_walk_first_compat_fndecl_55757 crypto_hash_walk_first_compat fndecl 0-4 55757 NULL
144405 +disable_so_mpll_dq_func_cntl_si_clock_registers_55759 mpll_dq_func_cntl si_clock_registers 0 55759 NULL
144406 +disable_so_check_gran_clock_compatibility_fndecl_55761 check_gran_clock_compatibility fndecl 2 55761 NULL
144407 +disable_so_watchdog_set_timeout_fndecl_55765 watchdog_set_timeout fndecl 2-0 55765 NULL
144408 +disable_so_c_laddr_rds_connection_55766 c_laddr rds_connection 0 55766 NULL
144409 +disable_so_slot_timeout_irlap_cb_55778 slot_timeout irlap_cb 0 55778 NULL
144410 +disable_so_timer_quantum_ns_efx_nic_55779 timer_quantum_ns efx_nic 0 55779 NULL
144411 +disable_so_me_addr_hbm_props_request_55786 me_addr hbm_props_request 0 55786 NULL
144412 +disable_so_snd_timer_user_continue_fndecl_55796 snd_timer_user_continue fndecl 0 55796 NULL
144413 +disable_so_last_rx_timestamp_ixgbe_adapter_55801 last_rx_timestamp ixgbe_adapter 0 55801 NULL
144414 +disable_so_di_mtime_logfs_disk_inode_55807 di_mtime logfs_disk_inode 0 55807 NULL
144415 +disable_so_mxr_runtime_resume_fndecl_55814 mxr_runtime_resume fndecl 0 55814 NULL
144416 +disable_so_write_tsc_offset_kvm_x86_ops_55825 write_tsc_offset kvm_x86_ops 2 55825 NULL
144417 +disable_so_suspended_jiffies_dev_pm_info_55833 suspended_jiffies dev_pm_info 0 55833 NULL
144418 +disable_so_daddr_flowi4_55835 daddr flowi4 0 55835 NULL
144419 +disable_so_arcmsr_Read_iop_rqbuffer_data_fndecl_55838 arcmsr_Read_iop_rqbuffer_data fndecl 0 55838 NULL
144420 +disable_so_ac_utime_pacct_struct_55849 ac_utime pacct_struct 0 55849 NULL
144421 +disable_so_si476x_radio_s_frequency_fndecl_55854 si476x_radio_s_frequency fndecl 0 55854 NULL
144422 +disable_so_tg3_nvram_logical_addr_fndecl_55858 tg3_nvram_logical_addr fndecl 0-2 55858 NULL
144423 +disable_so_last_delay_mult_qib_chippport_specific_55859 last_delay_mult qib_chippport_specific 0 55859 NULL nohasharray
144424 +disable_so_addr_offset_x86_pmu_55859 addr_offset x86_pmu 0-1 55859 &disable_so_last_delay_mult_qib_chippport_specific_55859
144425 +disable_so_nvkm_timer_alarm_fndecl_55870 nvkm_timer_alarm fndecl 2 55870 NULL
144426 +disable_so_num_mc_addrs_ixgbe_addr_filter_info_55888 num_mc_addrs ixgbe_addr_filter_info 0 55888 NULL
144427 +disable_so_snd_interval_muldivk_fndecl_55894 snd_interval_muldivk fndecl 3 55894 NULL
144428 +disable_so_read_time_rtc_class_ops_55898 read_time rtc_class_ops 0 55898 NULL
144429 +disable_so_timeouts_size_ip_vs_app_55902 timeouts_size ip_vs_app 0 55902 NULL
144430 +disable_so_mwifiex_process_sleep_confirm_resp_fndecl_55909 mwifiex_process_sleep_confirm_resp fndecl 3 55909 NULL
144431 +disable_so_sleep_auth_write_fndecl_55911 sleep_auth_write fndecl 0-3 55911 NULL
144432 +disable_so_addr_hi_pm4_query_status_55924 addr_hi pm4_query_status 0 55924 NULL
144433 +disable_so_rpc_anyaddr_fndecl_55925 rpc_anyaddr fndecl 0-1 55925 NULL
144434 +disable_so_fence_gpu_addr_device_queue_manager_55932 fence_gpu_addr device_queue_manager 0 55932 NULL
144435 +disable_so_send_guid_cmd_fndecl_55933 send_guid_cmd fndecl 0 55933 NULL
144436 +disable_so_next_id_mISDNtimerdev_55935 next_id mISDNtimerdev 0 55935 NULL
144437 +disable_so_ref_freq_arizona_fll_55939 ref_freq arizona_fll 0 55939 NULL
144438 +disable_so_find_prop_handlers_by_hash_fndecl_55957 find_prop_handlers_by_hash fndecl 1 55957 NULL
144439 +disable_so_cg_spll_spread_spectrum_ci_clock_registers_55960 cg_spll_spread_spectrum ci_clock_registers 0 55960 NULL
144440 +disable_so___xfrm_src_hash_fndecl_55965 __xfrm_src_hash fndecl 0-3-4 55965 NULL
144441 +disable_so_tps80031_rtc_read_time_fndecl_55978 tps80031_rtc_read_time fndecl 0 55978 NULL
144442 +disable_so_dvb_pll_sleep_fndecl_55979 dvb_pll_sleep fndecl 0 55979 NULL
144443 +disable_so_lose_cover_sizek_mtrr_cleanup_result_55990 lose_cover_sizek mtrr_cleanup_result 0 55990 NULL
144444 +disable_so_wil_ioc_addr_fndecl_55992 wil_ioc_addr fndecl 2-3 55992 NULL
144445 +disable_so_ste10Xp_ack_interrupt_fndecl_55999 ste10Xp_ack_interrupt fndecl 0 55999 NULL
144446 +disable_so_btc_skip_blacklist_clocks_fndecl_56010 btc_skip_blacklist_clocks fndecl 2-3 56010 NULL
144447 +disable_so_sleep_mask_palmas_clk32k_desc_56015 sleep_mask palmas_clk32k_desc 0 56015 NULL
144448 +disable_so_cs_pt_regs_56018 cs pt_regs 0 56018 NULL nohasharray
144449 +disable_so_vmcs_writel_fndecl_56018 vmcs_writel fndecl 2 56018 &disable_so_cs_pt_regs_56018
144450 +disable_so_i_mtime_nsec_f2fs_inode_56019 i_mtime_nsec f2fs_inode 0 56019 NULL
144451 +disable_so_ecx_user_regs_struct32_56025 ecx user_regs_struct32 0 56025 NULL
144452 +disable_so_k8_map_sysaddr_to_csrow_fndecl_56032 k8_map_sysaddr_to_csrow fndecl 2 56032 NULL
144453 +disable_so_max_busy_timeout_mmc_host_56037 max_busy_timeout mmc_host 0 56037 NULL
144454 +disable_so_snd_tea575x_get_freq_fndecl_56045 snd_tea575x_get_freq fndecl 0 56045 NULL
144455 +disable_so_timer_interval_r8a66597_pipe_info_56047 timer_interval r8a66597_pipe_info 0 56047 NULL nohasharray
144456 +disable_so_wc_ct_timer_56047 wc ct_timer 0 56047 &disable_so_timer_interval_r8a66597_pipe_info_56047
144457 +disable_so_gs_tss_segment_32_56052 gs tss_segment_32 0 56052 NULL
144458 +disable_so_bg_inode_bitmap_lo_ext4_group_desc_56060 bg_inode_bitmap_lo ext4_group_desc 0 56060 NULL
144459 +disable_so_debounce_jiffies_gpio_extcon_data_56062 debounce_jiffies gpio_extcon_data 0 56062 NULL
144460 +disable_so_timestamp_perf_event_context_56076 timestamp perf_event_context 0 56076 NULL
144461 +disable_so_s10_img_ir_timing_regvals_56082 s10 img_ir_timing_regvals 0 56082 NULL
144462 +disable_so_addr_nv50_instmem_priv_56092 addr nv50_instmem_priv 0 56092 NULL
144463 +disable_so_stock_freq_vardecl_p4_clockmod_c_56103 stock_freq vardecl_p4-clockmod.c 0 56103 NULL
144464 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_56110 nfs4_xdr_dec_get_lease_time fndecl 0 56110 NULL
144465 +disable_so_dclk_div_ssd1307fb_par_56111 dclk_div ssd1307fb_par 0 56111 NULL
144466 +disable_so_ad1889_load_wave_interrupt_count_fndecl_56114 ad1889_load_wave_interrupt_count fndecl 2 56114 NULL
144467 +disable_so_tm_sec_rtc_time_56120 tm_sec rtc_time 0 56120 NULL
144468 +disable_so_setsck_fndecl_56125 setsck fndecl 2 56125 NULL
144469 +disable_so_acpi_ut_remove_address_range_fndecl_56141 acpi_ut_remove_address_range fndecl 1 56141 NULL
144470 +disable_so_ssa_blkaddr_f2fs_sm_info_56145 ssa_blkaddr f2fs_sm_info 0 56145 NULL
144471 +disable_so_ack_time_rtl8180_priv_56151 ack_time rtl8180_priv 0 56151 NULL
144472 +disable_so_updelay_bond_params_56155 updelay bond_params 0 56155 NULL
144473 +disable_so_pch_can_bit_clear_fndecl_56156 pch_can_bit_clear fndecl 2 56156 NULL
144474 +disable_so_i2c_addr_si2165_config_56160 i2c_addr si2165_config 0 56160 NULL
144475 +disable_so_gen8_rcs_signal_fndecl_56195 gen8_rcs_signal fndecl 0-2 56195 NULL
144476 +disable_so_bmg160_setup_new_data_interrupt_fndecl_56196 bmg160_setup_new_data_interrupt fndecl 0 56196 NULL
144477 +disable_so_addrhigh_dma64desc_56199 addrhigh dma64desc 0 56199 NULL
144478 +disable_so_kvm_get_time_scale_fndecl_56201 kvm_get_time_scale fndecl 1 56201 NULL
144479 +disable_so_post_divider_atom_clock_dividers_56220 post_divider atom_clock_dividers 0 56220 NULL
144480 +disable_so_max6900_rtc_set_time_fndecl_56236 max6900_rtc_set_time fndecl 0 56236 NULL
144481 +disable_so_crypto_rfc3686_setkey_fndecl_56237 crypto_rfc3686_setkey fndecl 0-3 56237 NULL
144482 +disable_so_mtt_base_addr_l_mlx4_eq_context_56245 mtt_base_addr_l mlx4_eq_context 0 56245 NULL nohasharray
144483 +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
144484 +disable_so_lbs_cmd_802_11_sleep_params_fndecl_56246 lbs_cmd_802_11_sleep_params fndecl 0 56246 NULL
144485 +disable_so_verity_hash_at_level_fndecl_56248 verity_hash_at_level fndecl 2 56248 NULL
144486 +disable_so_sk_reset_timer_fndecl_56251 sk_reset_timer fndecl 3 56251 NULL
144487 +disable_so_skcipher_sndbuf_fndecl_56255 skcipher_sndbuf fndecl 0 56255 NULL
144488 +disable_so_st_ctime_nsec_p9_stat_dotl_56256 st_ctime_nsec p9_stat_dotl 0 56256 NULL nohasharray
144489 +disable_so_r29_val_fc2580_freq_regs_56256 r29_val fc2580_freq_regs 0 56256 &disable_so_st_ctime_nsec_p9_stat_dotl_56256
144490 +disable_so_qmi_wwan_mac_addr_fndecl_56258 qmi_wwan_mac_addr fndecl 0 56258 NULL
144491 +disable_so_cik_set_vce_clocks_fndecl_56266 cik_set_vce_clocks fndecl 3-0 56266 NULL nohasharray
144492 +disable_so_bitmap_copy_from_slot_fndecl_56266 bitmap_copy_from_slot fndecl 0-2 56266 &disable_so_cik_set_vce_clocks_fndecl_56266
144493 +disable_so_delay_mult_ipath_devdata_56277 delay_mult ipath_devdata 0 56277 NULL
144494 +disable_so_esas2r_disc_get_phys_addr_fndecl_56278 esas2r_disc_get_phys_addr fndecl 0 56278 NULL
144495 +disable_so_sst_module_runtime_get_from_id_fndecl_56286 sst_module_runtime_get_from_id fndecl 2 56286 NULL
144496 +disable_so_freq_req_adf4350_state_56294 freq_req adf4350_state 0 56294 NULL
144497 +disable_so_max_bandwidth_khz_ieee80211_freq_range_56300 max_bandwidth_khz ieee80211_freq_range 0 56300 NULL
144498 +disable_so_faddr_rds_info_connection_56313 faddr rds_info_connection 0 56313 NULL
144499 +disable_so_pcm_delay_pcm_stream_info_56329 pcm_delay pcm_stream_info 0 56329 NULL nohasharray
144500 +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
144501 +disable_so_show_sgid_fndecl_56331 show_sgid fndecl 0 56331 NULL
144502 +disable_so_sumo_get_valid_engine_clock_fndecl_56332 sumo_get_valid_engine_clock fndecl 0 56332 NULL
144503 +disable_so_bitmap_resize_fndecl_56333 bitmap_resize fndecl 0-2 56333 NULL
144504 +disable_so_get_cpufreq_driver_56334 get cpufreq_driver 0-1 56334 NULL
144505 +disable_so_cg_spll_spread_spectrum_2_rv770_clock_registers_56343 cg_spll_spread_spectrum_2 rv770_clock_registers 0 56343 NULL
144506 +disable_so_dsa_slave_set_mac_address_fndecl_56363 dsa_slave_set_mac_address fndecl 0 56363 NULL nohasharray
144507 +disable_so_log2secsize_adfs_discrecord_56363 log2secsize adfs_discrecord 0 56363 &disable_so_dsa_slave_set_mac_address_fndecl_56363
144508 +disable_so_offset_bit_entry_56370 offset bit_entry 0 56370 NULL
144509 +disable_so_serio_interrupt_fndecl_56371 serio_interrupt fndecl 2 56371 NULL
144510 +disable_so_nla_put_s8_fndecl_56378 nla_put_s8 fndecl 0 56378 NULL
144511 +disable_so_max_timing_entry_56381 max timing_entry 0 56381 NULL
144512 +disable_so_clk_div_chip_data_56404 clk_div chip_data 0 56404 NULL
144513 +disable_so_index_addr_fndecl_56405 index_addr fndecl 2-3 56405 NULL
144514 +disable_so_sysctl_tipc_named_timeout_vardecl_56406 sysctl_tipc_named_timeout vardecl 0 56406 NULL nohasharray
144515 +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
144516 +disable_so_pwm_freq_to_reg_fndecl_56419 pwm_freq_to_reg fndecl 0-1 56419 NULL
144517 +disable_so_compaq_ioaddr_vardecl_3c59x_c_56423 compaq_ioaddr vardecl_3c59x.c 0 56423 NULL
144518 +disable_so_nv04_timer_ctor_fndecl_56428 nv04_timer_ctor fndecl 0 56428 NULL
144519 +disable_so_last_jiffies_dm_kcopyd_throttle_56429 last_jiffies dm_kcopyd_throttle 0 56429 NULL
144520 +disable_so_prev_xfer_time_if_spi_card_56430 prev_xfer_time if_spi_card 0 56430 NULL
144521 +disable_so_cpufreq_governor_dbs_fndecl_56433 cpufreq_governor_dbs fndecl 0 56433 NULL
144522 +disable_so_align_vdso_addr_fndecl_56438 align_vdso_addr fndecl 0-1 56438 NULL
144523 +disable_so_addresshigh_SG64ENTRY_56440 addresshigh SG64ENTRY 0 56440 NULL
144524 +disable_so_freq_nvbios_M0205T_56458 freq nvbios_M0205T 0 56458 NULL
144525 +disable_so_hfs_bnode_hash_fndecl_56462 hfs_bnode_hash fndecl 0-1 56462 NULL
144526 +disable_so_address_rmap_item_56465 address rmap_item 0 56465 NULL
144527 +disable_so_tseg1_pucan_timing_fast_56466 tseg1 pucan_timing_fast 0 56466 NULL
144528 +disable_so_read_reg_qlcnic_hardware_ops_56470 read_reg qlcnic_hardware_ops 0-2 56470 NULL
144529 +disable_so_ba0_addr_cs4281_56471 ba0_addr cs4281 0 56471 NULL
144530 +disable_so_seltime_ahc_softc_56482 seltime ahc_softc 0 56482 NULL
144531 +disable_so_preferred_resolution_snd_seq_timer_56486 preferred_resolution snd_seq_timer 0 56486 NULL
144532 +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
144533 +disable_so_compat_sys_utime_fndecl_56499 compat_sys_utime fndecl 0 56499 NULL
144534 +disable_so_max_cpufreq_policy_56505 max cpufreq_policy 0 56505 NULL
144535 +disable_so_gpm_addr_ath9k_hw_mci_56507 gpm_addr ath9k_hw_mci 0 56507 NULL
144536 +disable_so_local_cm_response_timeout_ib_cm_req_event_param_56527 local_cm_response_timeout ib_cm_req_event_param 0 56527 NULL
144537 +disable_so_di_ctime_qnx4_inode_entry_56528 di_ctime qnx4_inode_entry 0 56528 NULL
144538 +disable_so_check_object_size_fndecl_56537 check_object_size fndecl 2 56537 NULL
144539 +disable_so_netlbl_unlhsh_remove_addr4_fndecl_56540 netlbl_unlhsh_remove_addr4 fndecl 0 56540 NULL
144540 +disable_so_pio_address_qla_hw_data_56550 pio_address qla_hw_data 0 56550 NULL
144541 +disable_so_clockdelay_te_vardecl_hfcmulti_c_56569 clockdelay_te vardecl_hfcmulti.c 0 56569 NULL
144542 +disable_so_cfg80211_get_start_freq_fndecl_56579 cfg80211_get_start_freq fndecl 0-1-2 56579 NULL
144543 +disable_so_crypto_info_open_fndecl_56585 crypto_info_open fndecl 0 56585 NULL
144544 +disable_so_iio_interrupt_trigger_probe_fndecl_56586 iio_interrupt_trigger_probe fndecl 0 56586 NULL
144545 +disable_so_csize_lattime_ahd_suspend_pci_state_56599 csize_lattime ahd_suspend_pci_state 0 56599 NULL
144546 +disable_so_pcxhr_get_clock_reg_fndecl_56600 pcxhr_get_clock_reg fndecl 2-0 56600 NULL
144547 +disable_so_ib_find_cached_gid_fndecl_56608 ib_find_cached_gid fndecl 0 56608 NULL
144548 +disable_so_btree_node_write_endio_fndecl_56609 btree_node_write_endio fndecl 2 56609 NULL
144549 +disable_so_rxdescmem_busaddr_altera_tse_private_56610 rxdescmem_busaddr altera_tse_private 0 56610 NULL
144550 +disable_so_pwm_downtime_w83793_data_56624 pwm_downtime w83793_data 0 56624 NULL
144551 +disable_so_nl80211_crypto_settings_fndecl_56625 nl80211_crypto_settings fndecl 0 56625 NULL
144552 +disable_so_freq_pmu0_plltab_entry_56630 freq pmu0_plltab_entry 0 56630 NULL
144553 +disable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 0 56634 NULL
144554 +disable_so_time_rx_survey_info_56644 time_rx survey_info 0 56644 NULL
144555 +disable_so_isp1362_write_diraddr_fndecl_56658 isp1362_write_diraddr fndecl 2-3 56658 NULL
144556 +disable_so_utime_task_cputime_56665 utime task_cputime 0 56665 NULL
144557 +disable_so_blogic_add_probeaddr_isa_fndecl_56669 blogic_add_probeaddr_isa fndecl 1 56669 NULL
144558 +disable_so_memsize_bitmap_ip_56671 memsize bitmap_ip 0 56671 NULL
144559 +disable_so_ssb_pmu_get_alp_clock_fndecl_56673 ssb_pmu_get_alp_clock fndecl 0 56673 NULL nohasharray
144560 +disable_so_crypto_xor_fndecl_56673 crypto_xor fndecl 3 56673 &disable_so_ssb_pmu_get_alp_clock_fndecl_56673
144561 +disable_so_addr_wqicb_56680 addr wqicb 0 56680 NULL
144562 +disable_so_post_div_atom_clock_dividers_56686 post_div atom_clock_dividers 0 56686 NULL
144563 +disable_so_local_ca_guid_cm_req_msg_56691 local_ca_guid cm_req_msg 0 56691 NULL
144564 +disable_so_ath5k_hw_check_beacon_timers_fndecl_56701 ath5k_hw_check_beacon_timers fndecl 2 56701 NULL
144565 +disable_so_resultjiffies_vardecl_floppy_c_56702 resultjiffies vardecl_floppy.c 0 56702 NULL
144566 +disable_so_snd_tea575x_s_hw_freq_seek_fndecl_56703 snd_tea575x_s_hw_freq_seek fndecl 0 56703 NULL
144567 +disable_so_ir_clock_mhz_vardecl_tm6000_input_c_56706 ir_clock_mhz vardecl_tm6000-input.c 0 56706 NULL
144568 +disable_so_mei_me_pm_runtime_suspend_fndecl_56711 mei_me_pm_runtime_suspend fndecl 0 56711 NULL
144569 +disable_so_deftype_kvm_mtrr_56712 deftype kvm_mtrr 0 56712 NULL
144570 +disable_so_base_addr_phys__adpt_hba_56713 base_addr_phys _adpt_hba 0 56713 NULL
144571 +disable_so_addr_nvkm_instobj_56715 addr nvkm_instobj 0 56715 NULL
144572 +disable_so_do_wait_for_common_fndecl_56721 do_wait_for_common fndecl 4 56721 NULL
144573 +disable_so_i_uid_minix_inode_56733 i_uid minix_inode 0 56733 NULL
144574 +disable_so_addr_nvkm_engctx_56734 addr nvkm_engctx 0 56734 NULL nohasharray
144575 +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
144576 +disable_so_bp_pt_regs_56736 bp pt_regs 0 56736 NULL
144577 +disable_so_hor_blank_end_via_display_timing_56738 hor_blank_end via_display_timing 0 56738 NULL
144578 +disable_so_panel_power_cycle_delay_intel_dp_56739 panel_power_cycle_delay intel_dp 0 56739 NULL
144579 +disable_so_dib8000_sleep_fndecl_56740 dib8000_sleep fndecl 0 56740 NULL
144580 +disable_so_ext4_valid_block_bitmap_fndecl_56749 ext4_valid_block_bitmap fndecl 0-3 56749 NULL
144581 +disable_so_func_bit_map_vif_list_event_data_56753 func_bit_map vif_list_event_data 0 56753 NULL
144582 +disable_so_netxen_nic_set_mcast_addr_fndecl_56754 netxen_nic_set_mcast_addr fndecl 2 56754 NULL
144583 +disable_so_wrmsr_on_cpu_fndecl_56757 wrmsr_on_cpu fndecl 0-1-3-4 56757 NULL
144584 +disable_so_rmap_recycle_fndecl_56761 rmap_recycle fndecl 3 56761 NULL
144585 +disable_so_cyapa_gen5_get_interval_time_fndecl_56783 cyapa_gen5_get_interval_time fndecl 0 56783 NULL nohasharray
144586 +disable_so_laddr_rds_info_message_56783 laddr rds_info_message 0 56783 &disable_so_cyapa_gen5_get_interval_time_fndecl_56783
144587 +disable_so_btrfs_set_inode_uid_fndecl_56785 btrfs_set_inode_uid fndecl 3 56785 NULL
144588 +disable_so_wl1251_acx_group_address_tbl_fndecl_56786 wl1251_acx_group_address_tbl fndecl 0 56786 NULL
144589 +disable_so_idletimer_tg_show_fndecl_56792 idletimer_tg_show fndecl 0 56792 NULL
144590 +disable_so_ofdmtab_addr_b43_phy_g_56793 ofdmtab_addr b43_phy_g 0 56793 NULL
144591 +disable_so_count_radeon_clock_voltage_dependency_table_56794 count radeon_clock_voltage_dependency_table 0 56794 NULL
144592 +disable_so_nla_put_in_addr_fndecl_56802 nla_put_in_addr fndecl 0 56802 NULL
144593 +disable_so_br_multicast_set_hash_max_fndecl_56807 br_multicast_set_hash_max fndecl 0-2 56807 NULL
144594 +disable_so_runtime_expires_cfs_rq_56808 runtime_expires cfs_rq 0 56808 NULL nohasharray
144595 +disable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 0 56808 &disable_so_runtime_expires_cfs_rq_56808
144596 +disable_so_sisfb_post_xgi_setclocks_fndecl_56821 sisfb_post_xgi_setclocks fndecl 2 56821 NULL
144597 +disable_so_ipath_signal_procs_fndecl_56823 ipath_signal_procs fndecl 2 56823 NULL
144598 +disable_so_seqtimer_scaling_vardecl_azt3328_c_56829 seqtimer_scaling vardecl_azt3328.c 0 56829 NULL
144599 +disable_so_bar_bus_addr_usnic_ib_create_qp_resp_56831 bar_bus_addr usnic_ib_create_qp_resp 0 56831 NULL
144600 +disable_so_fib_laddr_hashfn_fndecl_56832 fib_laddr_hashfn fndecl 0-1 56832 NULL
144601 +disable_so_qlcnic_82xx_sre_macaddr_change_fndecl_56836 qlcnic_82xx_sre_macaddr_change fndecl 0 56836 NULL
144602 +disable_so_dm_btree_find_lowest_key_fndecl_56845 dm_btree_find_lowest_key fndecl 0-2 56845 NULL
144603 +disable_so_get_fan_div_fndecl_56857 get_fan_div fndecl 0 56857 NULL
144604 +disable_so_neigh_proc_dointvec_jiffies_fndecl_56860 neigh_proc_dointvec_jiffies fndecl 0 56860 NULL
144605 +disable_so_last_delay_snd_usb_substream_56861 last_delay snd_usb_substream 0 56861 NULL
144606 +disable_so_memory_address_set_error_type_with_address_56863 memory_address set_error_type_with_address 0 56863 NULL
144607 +disable_so_seq_b43_txstatus_56873 seq b43_txstatus 0 56873 NULL
144608 +disable_so_phonet_address_notify_fndecl_56877 phonet_address_notify fndecl 1-3 56877 NULL
144609 +disable_so_msp_sleep_fndecl_56878 msp_sleep fndecl 2 56878 NULL nohasharray
144610 +disable_so_ltr501_match_samp_freq_fndecl_56878 ltr501_match_samp_freq fndecl 0 56878 &disable_so_msp_sleep_fndecl_56878
144611 +disable_so_signalled_used_vhost_virtqueue_56881 signalled_used vhost_virtqueue 0 56881 NULL
144612 +disable_so_titsc_probe_fndecl_56883 titsc_probe fndecl 0 56883 NULL
144613 +disable_so_xfs_btree_check_sblock_fndecl_56897 xfs_btree_check_sblock fndecl 0 56897 NULL
144614 +disable_so_jiffies_next_hackrf_dev_56900 jiffies_next hackrf_dev 0 56900 NULL
144615 +disable_so_bpf_get_prandom_u32_fndecl_56904 bpf_get_prandom_u32 fndecl 0 56904 NULL
144616 +disable_so_rt_lifetime_icmpv6_nd_ra_56907 rt_lifetime icmpv6_nd_ra 0 56907 NULL
144617 +disable_so_base_addr_ufshcd_sg_entry_56924 base_addr ufshcd_sg_entry 0 56924 NULL
144618 +disable_so_crypto_gcm_decrypt_fndecl_56932 crypto_gcm_decrypt fndecl 0 56932 NULL
144619 +disable_so_pll_d_aic31xx_rate_divs_56933 pll_d aic31xx_rate_divs 0 56933 NULL
144620 +disable_so_mc_arb_burst_time_SMC_SIslands_MCArbDramTimingRegisterSet_56938 mc_arb_burst_time SMC_SIslands_MCArbDramTimingRegisterSet 0 56938 NULL
144621 +disable_so_hfc_jiffies_vardecl_hfcpci_c_56949 hfc_jiffies vardecl_hfcpci.c 0 56949 NULL
144622 +disable_so_pm_timeout_orinoco_private_56953 pm_timeout orinoco_private 0 56953 NULL
144623 +disable_so_cpu_delayed_work_56959 cpu delayed_work 0 56959 NULL
144624 +disable_so_sys_sched_setscheduler_fndecl_56964 sys_sched_setscheduler fndecl 2-1-0 56964 NULL
144625 +disable_so_ucode_beacon_time_il_priv_56968 ucode_beacon_time il_priv 0 56968 NULL
144626 +disable_so_ntsc_tvdac_adj_radeon_encoder_tv_dac_56984 ntsc_tvdac_adj radeon_encoder_tv_dac 0 56984 NULL
144627 +disable_so_hbqaddrLow_config_hbq_var_56996 hbqaddrLow config_hbq_var 0 56996 NULL
144628 +disable_so_hpios_delay_micro_seconds_fndecl_57000 hpios_delay_micro_seconds fndecl 1 57000 NULL
144629 +disable_so_pwm_freq_nvbios_therm_fan_57021 pwm_freq nvbios_therm_fan 0 57021 NULL
144630 +disable_so_cycle_interval_timekeeper_57030 cycle_interval timekeeper 0 57030 NULL
144631 +disable_so_qce_ablkcipher_register_fndecl_57031 qce_ablkcipher_register fndecl 0 57031 NULL
144632 +disable_so_posix_cpu_clock_set_fndecl_57033 posix_cpu_clock_set fndecl 1 57033 NULL
144633 +disable_so_ac97_clock_via82xx_modem_57034 ac97_clock via82xx_modem 0 57034 NULL
144634 +disable_so_ip_set_get_ipaddr4_fndecl_57035 ip_set_get_ipaddr4 fndecl 0 57035 NULL
144635 +disable_so_mmap_min_addr_handler_fndecl_57042 mmap_min_addr_handler fndecl 0 57042 NULL
144636 +disable_so___mutex_lock_interruptible_slowpath_fndecl_57044 __mutex_lock_interruptible_slowpath fndecl 0 57044 NULL
144637 +disable_so_round_jiffies_relative_fndecl_57045 round_jiffies_relative fndecl 0-1 57045 NULL
144638 +disable_so_addr2___pollrdmwr_57048 addr2 __pollrdmwr 0 57048 NULL
144639 +disable_so_opmode_ioaddr_mxser_port_57052 opmode_ioaddr mxser_port 0 57052 NULL nohasharray
144640 +disable_so_xfrm_hash_transfer_fndecl_57052 xfrm_hash_transfer fndecl 5 57052 &disable_so_opmode_ioaddr_mxser_port_57052
144641 +disable_so_hpi_sample_clock_query_source_index_fndecl_57055 hpi_sample_clock_query_source_index fndecl 1-0 57055 NULL
144642 +disable_so_bitmap_full_fndecl_57072 bitmap_full fndecl 2 57072 NULL
144643 +disable_so_cmd_attr_deregister_cpumask_fndecl_57077 cmd_attr_deregister_cpumask fndecl 0 57077 NULL
144644 +disable_so_hashtab_create_fndecl_57082 hashtab_create fndecl 3 57082 NULL
144645 +disable_so_laddr_c2wr_ae_connection_request_57084 laddr c2wr_ae_connection_request 0 57084 NULL
144646 +disable_so_alarmtimer_suspend_fndecl_57099 alarmtimer_suspend fndecl 0 57099 NULL
144647 +disable_so___cpufreq_cooling_register_fndecl_57101 __cpufreq_cooling_register fndecl 3 57101 NULL
144648 +disable_so_fll_clk_ref_div__fll_div_57104 fll_clk_ref_div _fll_div 0 57104 NULL
144649 +disable_so_tsc_to_system_mul_pvclock_vcpu_time_info_57110 tsc_to_system_mul pvclock_vcpu_time_info 0 57110 NULL nohasharray
144650 +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
144651 +disable_so_d_spc_timer_qc_dqblk_57112 d_spc_timer qc_dqblk 0 57112 NULL
144652 +disable_so_ntp_error_shift_timekeeper_57130 ntp_error_shift timekeeper 0 57130 NULL
144653 +disable_so_tuner_addr_cx88_board_57133 tuner_addr cx88_board 0 57133 NULL
144654 +disable_so_width_v4l2_bt_timings_57137 width v4l2_bt_timings 0 57137 NULL
144655 +disable_so_function_timer_list_57140 function timer_list 1 57140 NULL
144656 +disable_so_tuner_address_ts2020_config_57154 tuner_address ts2020_config 0 57154 NULL
144657 +disable_so_sm501_set_clock_fndecl_57155 sm501_set_clock fndecl 3-0 57155 NULL
144658 +disable_so_addrlimit_qib_user_sdma_pkt_57160 addrlimit qib_user_sdma_pkt 0 57160 NULL
144659 +disable_so_read_file_regidx_fndecl_57161 read_file_regidx fndecl 3-0 57161 NULL
144660 +disable_so_slot_time_rt2x00lib_erp_57170 slot_time rt2x00lib_erp 0 57170 NULL
144661 +disable_so_bx_pt_regs_57172 bx pt_regs 0 57172 NULL
144662 +disable_so_ssb_pmu_get_controlclock_fndecl_57187 ssb_pmu_get_controlclock fndecl 0 57187 NULL
144663 +disable_so_inet_fill_ifaddr_fndecl_57209 inet_fill_ifaddr fndecl 0-3-5 57209 NULL
144664 +disable_so_mem_addr_vardecl_debugfs_c_57210 mem_addr vardecl_debugfs.c 0 57210 NULL
144665 +disable_so_iwl_static_sleep_cmd_fndecl_57211 iwl_static_sleep_cmd fndecl 4 57211 NULL
144666 +disable_so_frequency_khz_ts2020_priv_57218 frequency_khz ts2020_priv 0 57218 NULL
144667 +disable_so_hashm_dcb_output_57225 hashm dcb_output 0 57225 NULL
144668 +disable_so_show_risetime_fndecl_57236 show_risetime fndecl 0 57236 NULL
144669 +disable_so_iscsi_nacl_attrib_store_random_r2t_offsets_fndecl_57241 iscsi_nacl_attrib_store_random_r2t_offsets fndecl 0-3 57241 NULL
144670 +disable_so_hash_netiface6_expire_fndecl_57246 hash_netiface6_expire fndecl 4 57246 NULL
144671 +disable_so_delayed_ack_bictcp_57249 delayed_ack bictcp 0 57249 NULL
144672 +disable_so_addr_he_ioctl_reg_57251 addr he_ioctl_reg 0 57251 NULL
144673 +disable_so_crystalfreq_ssb_chipcommon_pmu_57260 crystalfreq ssb_chipcommon_pmu 0 57260 NULL
144674 +disable_so_i_dtime_ext4_inode_info_57265 i_dtime ext4_inode_info 0 57265 NULL
144675 +disable_so_qlcnic_schedule_work_fndecl_57272 qlcnic_schedule_work fndecl 3 57272 NULL
144676 +disable_so_uid_affs_tail_57279 uid affs_tail 0 57279 NULL nohasharray
144677 +disable_so_delay_slave_57279 delay slave 0 57279 &disable_so_uid_affs_tail_57279 nohasharray
144678 +disable_so_pwm_freq_to_reg_627hf_fndecl_57279 pwm_freq_to_reg_627hf fndecl 0 57279 &disable_so_delay_slave_57279
144679 +disable_so_sock_set_timeout_fndecl_57281 sock_set_timeout fndecl 0-3 57281 NULL
144680 +disable_so_phys_addr_fndecl_57284 phys_addr fndecl 0 57284 NULL
144681 +disable_so_i_uid_minix2_inode_57288 i_uid minix2_inode 0 57288 NULL
144682 +disable_so_hash_netnet4_expire_fndecl_57295 hash_netnet4_expire fndecl 4 57295 NULL
144683 +disable_so_mtrr_file_add_fndecl_57296 mtrr_file_add fndecl 1-2 57296 NULL
144684 +disable_so_rd_addr_gfs2_rgrpd_57301 rd_addr gfs2_rgrpd 0 57301 NULL
144685 +disable_so_elf_map_fndecl_57308 elf_map fndecl 0-2-4-5 57308 NULL
144686 +disable_so_frame_len_stv0900_signal_info_57310 frame_len stv0900_signal_info 0 57310 NULL nohasharray
144687 +disable_so_crypto_pcbc_encrypt_segment_fndecl_57310 crypto_pcbc_encrypt_segment fndecl 0 57310 &disable_so_frame_len_stv0900_signal_info_57310
144688 +disable_so_xs_init_anyaddr_fndecl_57311 xs_init_anyaddr fndecl 1 57311 NULL
144689 +disable_so_ahash_setkey_unaligned_fndecl_57314 ahash_setkey_unaligned fndecl 3 57314 NULL
144690 +disable_so_active_time_lm8333_platform_data_57318 active_time lm8333_platform_data 0 57318 NULL
144691 +disable_so_snd_timer_start_slave_fndecl_57320 snd_timer_start_slave fndecl 0 57320 NULL
144692 +disable_so_dma_addr_pluto_57323 dma_addr pluto 0 57323 NULL nohasharray
144693 +disable_so_bitmap_print_to_pagebuf_fndecl_57323 bitmap_print_to_pagebuf fndecl 4 57323 &disable_so_dma_addr_pluto_57323
144694 +disable_so_sgl_pg0_addr_hi_sgl_page_pairs_57333 sgl_pg0_addr_hi sgl_page_pairs 0 57333 NULL
144695 +disable_so_scd_base_addr_iwl_trans_pcie_57336 scd_base_addr iwl_trans_pcie 0 57336 NULL
144696 +disable_so_vfio_msi_set_vector_signal_fndecl_57339 vfio_msi_set_vector_signal fndecl 0-2 57339 NULL
144697 +disable_so_sfq_hash_fndecl_57343 sfq_hash fndecl 0 57343 NULL
144698 +disable_so_security_task_getscheduler_fndecl_57345 security_task_getscheduler fndecl 0 57345 NULL
144699 +disable_so_xfrm_idx_hash_transfer_fndecl_57346 xfrm_idx_hash_transfer fndecl 3 57346 NULL
144700 +disable_so_hblank_hi_lvds_dvo_timing_57349 hblank_hi lvds_dvo_timing 0 57349 NULL
144701 +disable_so_try_cancel_split_timeout_fndecl_57358 try_cancel_split_timeout fndecl 0 57358 NULL
144702 +disable_so_node_read_cpumask_fndecl_57363 node_read_cpumask fndecl 0 57363 NULL
144703 +disable_so_module_addr_max_rw_vardecl_module_c_57377 module_addr_max_rw vardecl_module.c 0 57377 NULL
144704 +disable_so_timecounter_read_delta_fndecl_57378 timecounter_read_delta fndecl 0 57378 NULL
144705 +disable_so_addr_hi_ahci_sg_57386 addr_hi ahci_sg 0 57386 NULL
144706 +disable_so_rpi_paddr_lo_lpfc_mbx_post_hdr_tmpl_57387 rpi_paddr_lo lpfc_mbx_post_hdr_tmpl 0 57387 NULL
144707 +disable_so_read_signal_strength_dvb_frontend_ops_57393 read_signal_strength dvb_frontend_ops 0 57393 NULL nohasharray
144708 +disable_so_aes_init_fndecl_57393 aes_init fndecl 0 57393 &disable_so_read_signal_strength_dvb_frontend_ops_57393
144709 +disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397 iscsi_stat_instance_show_attr_disc_time fndecl 0 57397 NULL nohasharray
144710 +disable_so_inblock_signal_struct_57397 inblock signal_struct 0 57397 &disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397
144711 +disable_so_ks0108_address_fndecl_57399 ks0108_address fndecl 1 57399 NULL
144712 +disable_so_set_mtrr_fndecl_57402 set_mtrr fndecl 2-3 57402 NULL
144713 +disable_so___hw_addr_del_entry_fndecl_57405 __hw_addr_del_entry fndecl 0 57405 NULL
144714 +disable_so_adis16136_write_frequency_fndecl_57414 adis16136_write_frequency fndecl 0-4 57414 NULL
144715 +disable_so_addr_hi_eth_rx_cqe_next_page_57432 addr_hi eth_rx_cqe_next_page 0 57432 NULL
144716 +disable_so_vp_iowrite64_twopart_fndecl_57440 vp_iowrite64_twopart fndecl 1 57440 NULL
144717 +disable_so_demod_i2c_addr_tda10071_config_57445 demod_i2c_addr tda10071_config 0 57445 NULL
144718 +disable_so___mcheck_cpu_mce_banks_init_fndecl_57446 __mcheck_cpu_mce_banks_init fndecl 0 57446 NULL
144719 +disable_so_reference_freq_amdgpu_pll_57451 reference_freq amdgpu_pll 0 57451 NULL
144720 +disable_so_default_dispclk_radeon_clock_57469 default_dispclk radeon_clock 0 57469 NULL
144721 +disable_so_dma_pool_free_fndecl_57472 dma_pool_free fndecl 3 57472 NULL
144722 +disable_so_ds1307_get_time_fndecl_57477 ds1307_get_time fndecl 0 57477 NULL
144723 +disable_so_addr_ch_mem_range_57497 addr ch_mem_range 0 57497 NULL
144724 +disable_so_ip_hash_netiface4_elem_57501 ip hash_netiface4_elem 0 57501 NULL
144725 +disable_so_dt_cpufreq_platdrv_init_fndecl_57502 dt_cpufreq_platdrv_init fndecl 0 57502 NULL
144726 +disable_so_fuse_flush_times_fndecl_57514 fuse_flush_times fndecl 0 57514 NULL
144727 +disable_so_nl_pid_sockaddr_nl_57515 nl_pid sockaddr_nl 0 57515 NULL
144728 +disable_so_plane_vaddr_fndecl_57531 plane_vaddr fndecl 5 57531 NULL
144729 +disable_so_addr_nv_adma_prd_57534 addr nv_adma_prd 0 57534 NULL
144730 +disable_so_task_tgid_vnr_fndecl_57539 task_tgid_vnr fndecl 0 57539 NULL
144731 +disable_so_get_register_interruptible_fndecl_57541 get_register_interruptible fndecl 0 57541 NULL
144732 +disable_so_spi_rcvhdr_tailaddr_ipath_base_info_57542 spi_rcvhdr_tailaddr ipath_base_info 0 57542 NULL
144733 +disable_so_ath9k_hw_clear_queue_interrupts_fndecl_57543 ath9k_hw_clear_queue_interrupts fndecl 2 57543 NULL
144734 +disable_so_cl_recover_timer_dlm_cluster_57553 cl_recover_timer dlm_cluster 0 57553 NULL nohasharray
144735 +disable_so_boot_addr_pmu_nvbios_pmuR_57553 boot_addr_pmu nvbios_pmuR 0 57553 &disable_so_cl_recover_timer_dlm_cluster_57553 nohasharray
144736 +disable_so___mod_timer_fndecl_57553 __mod_timer fndecl 2 57553 &disable_so_boot_addr_pmu_nvbios_pmuR_57553
144737 +disable_so_hpfb_freq_cs42l56_platform_data_57565 hpfb_freq cs42l56_platform_data 0 57565 NULL nohasharray
144738 +disable_so_i915_max_freq_set_fndecl_57565 i915_max_freq_set fndecl 2-0 57565 &disable_so_hpfb_freq_cs42l56_platform_data_57565
144739 +disable_so_frequency_v4l2_frequency_57580 frequency v4l2_frequency 0 57580 NULL
144740 +disable_so_time_mce_57593 time mce 0 57593 NULL
144741 +disable_so_addr_abituguru3_data_57605 addr abituguru3_data 0 57605 NULL
144742 +disable_so_bitmap_onto_fndecl_57611 bitmap_onto fndecl 4 57611 NULL
144743 +disable_so_rx4581_get_datetime_fndecl_57612 rx4581_get_datetime fndecl 0 57612 NULL
144744 +disable_so_rem_addr_nes_cm_info_57615 rem_addr nes_cm_info 0 57615 NULL
144745 +disable_so_lease_time_nfs_fsinfo_57627 lease_time nfs_fsinfo 0 57627 NULL
144746 +disable_so_hash_tbl_pbl_addr_hi_fcoe_kwqe_init2_57631 hash_tbl_pbl_addr_hi fcoe_kwqe_init2 0 57631 NULL
144747 +disable_so_pci_addr_blogic_probeinfo_57646 pci_addr blogic_probeinfo 0 57646 NULL
144748 +disable_so_intel_gpio_runtime_idle_fndecl_57650 intel_gpio_runtime_idle fndecl 0 57650 NULL
144749 +disable_so_clock_div_par_info_57652 clock_div par_info 0 57652 NULL
144750 +disable_so_overflowuid_vardecl_57653 overflowuid vardecl 0 57653 NULL
144751 +disable_so_start_time_request_57657 start_time request 0 57657 NULL nohasharray
144752 +disable_so_wil_freq_seq_open_fndecl_57657 wil_freq_seq_open fndecl 0 57657 &disable_so_start_time_request_57657 nohasharray
144753 +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
144754 +disable_so_addr_hi_dma_address_57659 addr_hi dma_address 0 57659 NULL
144755 +disable_so_wm2200_runtime_resume_fndecl_57661 wm2200_runtime_resume fndecl 0 57661 NULL nohasharray
144756 +disable_so_w_idx_addr_brcmf_pcie_ringbuf_57661 w_idx_addr brcmf_pcie_ringbuf 0 57661 &disable_so_wm2200_runtime_resume_fndecl_57661
144757 +disable_so_timeout_us_vardecl_tlb_uv_c_57666 timeout_us vardecl_tlb_uv.c 0 57666 NULL
144758 +disable_so_fence_wait_timeout_fndecl_57667 fence_wait_timeout fndecl 0-3 57667 NULL nohasharray
144759 +disable_so_signal_cfg80211_bss_57667 signal cfg80211_bss 0 57667 &disable_so_fence_wait_timeout_fndecl_57667
144760 +disable_so_admin_timeout_vardecl_nvme_core_c_57668 admin_timeout vardecl_nvme-core.c 0 57668 NULL
144761 +disable_so_next_gid_index_mlx4_mgm_57670 next_gid_index mlx4_mgm 0 57670 NULL
144762 +disable_so_sdn_objnamel_sockaddr_dn_57674 sdn_objnamel sockaddr_dn 0 57674 NULL
144763 +disable_so_diolan_set_clock_synch_timeout_fndecl_57678 diolan_set_clock_synch_timeout fndecl 0 57678 NULL
144764 +disable_so_pioaddr_rhine_private_57682 pioaddr rhine_private 0 57682 NULL nohasharray
144765 +disable_so_or51132_read_signal_strength_fndecl_57682 or51132_read_signal_strength fndecl 0 57682 &disable_so_pioaddr_rhine_private_57682
144766 +disable_so_np_oaktrail_hdmi_clock_57683 np oaktrail_hdmi_clock 0 57683 NULL
144767 +disable_so_laddr_check_rds_transport_57695 laddr_check rds_transport 1 57695 NULL
144768 +disable_so_pause_time_ixgbe_fc_info_57702 pause_time ixgbe_fc_info 0 57702 NULL
144769 +disable_so_img_spfi_runtime_resume_fndecl_57703 img_spfi_runtime_resume fndecl 0 57703 NULL
144770 +disable_so_y_runtime_sc_57719 y runtime_sc 0 57719 NULL nohasharray
144771 +disable_so_tscdeadline_kvm_timer_57719 tscdeadline kvm_timer 0 57719 &disable_so_y_runtime_sc_57719
144772 +disable_so_dmaaddr_avmcard_dmabuf_57720 dmaaddr avmcard_dmabuf 0 57720 NULL nohasharray
144773 +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
144774 +disable_so_xgene_rtc_read_time_fndecl_57728 xgene_rtc_read_time fndecl 0 57728 NULL
144775 +disable_so_dma_addr_vnic_wq_buf_57732 dma_addr vnic_wq_buf 0 57732 NULL
144776 +disable_so_E_md4hash_fndecl_57735 E_md4hash fndecl 0 57735 NULL
144777 +disable_so_azx_timecounter_init_fndecl_57762 azx_timecounter_init fndecl 3 57762 NULL
144778 +disable_so_pcibios_save_fw_addr_fndecl_57765 pcibios_save_fw_addr fndecl 3 57765 NULL nohasharray
144779 +disable_so_hash_setkey_fndecl_57765 hash_setkey fndecl 0-3 57765 &disable_so_pcibios_save_fw_addr_fndecl_57765
144780 +disable_so_dlm_master_hash_fndecl_57794 dlm_master_hash fndecl 2 57794 NULL
144781 +disable_so_bitmap_or_fndecl_57806 bitmap_or fndecl 4 57806 NULL
144782 +disable_so_iso_stream_schedule_fndecl_57815 iso_stream_schedule fndecl 0 57815 NULL nohasharray
144783 +disable_so_crypto_register_rng_fndecl_57815 crypto_register_rng fndecl 0 57815 &disable_so_iso_stream_schedule_fndecl_57815
144784 +disable_so_authenc_verify_ahash_done_fndecl_57820 authenc_verify_ahash_done fndecl 2 57820 NULL
144785 +disable_so___timespec_to_jiffies_fndecl_57822 __timespec_to_jiffies fndecl 0-2-1 57822 NULL
144786 +disable_so_sys_addr_to_csrow_fndecl_57824 sys_addr_to_csrow fndecl 0-2 57824 NULL
144787 +disable_so_req_q_phy_addr_ql3_adapter_57830 req_q_phy_addr ql3_adapter 0 57830 NULL
144788 +disable_so_htod_mb_data_addr_brcmf_pcie_shared_info_57843 htod_mb_data_addr brcmf_pcie_shared_info 0 57843 NULL
144789 +disable_so_xfs_btree_rec_offset_fndecl_57864 xfs_btree_rec_offset fndecl 0-2 57864 NULL
144790 +disable_so_write_phy_reg_fndecl_57868 write_phy_reg fndecl 3-2 57868 NULL
144791 +disable_so_bg_block_bitmap_lo_ext4_group_desc_57870 bg_block_bitmap_lo ext4_group_desc 0 57870 NULL
144792 +disable_so_s_wtime_ext4_super_block_57871 s_wtime ext4_super_block 0 57871 NULL
144793 +disable_so_bridge_hello_time_net_bridge_57884 bridge_hello_time net_bridge 0 57884 NULL
144794 +disable_so_gpu_addr_radeon_wb_57894 gpu_addr radeon_wb 0 57894 NULL
144795 +disable_so_addr_vxge_hw_mempool_dma_57895 addr vxge_hw_mempool_dma 0 57895 NULL nohasharray
144796 +disable_so_command_setecptiming_fndecl_57895 command_setecptiming fndecl 0 57895 &disable_so_addr_vxge_hw_mempool_dma_57895
144797 +disable_so_kbd_led_timeout_show_fndecl_57896 kbd_led_timeout_show fndecl 0 57896 NULL
144798 +disable_so_ceph_aes_encrypt2_fndecl_57897 ceph_aes_encrypt2 fndecl 2-6-8 57897 NULL
144799 +disable_so_mask_lo_mtrr_var_range_57901 mask_lo mtrr_var_range 0 57901 NULL
144800 +disable_so_family_xfrm_kmaddress_57907 family xfrm_kmaddress 0 57907 NULL
144801 +disable_so_ks0108_delay_vardecl_ks0108_c_57914 ks0108_delay vardecl_ks0108.c 0 57914 NULL
144802 +disable_so_mtime_server_afs_file_status_57920 mtime_server afs_file_status 0 57920 NULL
144803 +disable_so_base_guid_qib_devdata_57924 base_guid qib_devdata 0 57924 NULL
144804 +disable_so_btrfs_delete_delayed_insertion_item_fndecl_57926 btrfs_delete_delayed_insertion_item fndecl 0 57926 NULL
144805 +disable_so_atime_sec_p9_iattr_dotl_57931 atime_sec p9_iattr_dotl 0 57931 NULL
144806 +disable_so_io_bitmap_max_thread_struct_57932 io_bitmap_max thread_struct 0 57932 NULL
144807 +disable_so_cpu_has_cpufreq_fndecl_57939 cpu_has_cpufreq fndecl 1 57939 NULL
144808 +disable_so_discov_interleaved_timeout_hci_dev_57944 discov_interleaved_timeout hci_dev 0 57944 NULL
144809 +disable_so_batadv_orig_hash_del_if_fndecl_57951 batadv_orig_hash_del_if fndecl 2 57951 NULL
144810 +disable_so_vapic_addr_kvm_vapic_addr_57958 vapic_addr kvm_vapic_addr 0 57958 NULL
144811 +disable_so_qce_ahash_update_fndecl_57959 qce_ahash_update fndecl 0 57959 NULL
144812 +disable_so_work_base_addr_snd_ymfpci_57965 work_base_addr snd_ymfpci 0 57965 NULL
144813 +disable_so_enable_cpuidle_governor_57967 enable cpuidle_governor 0 57967 NULL
144814 +disable_so_hash_write_fndecl_57980 hash_write fndecl 0 57980 NULL
144815 +disable_so_addr_cs5535audio_dma_desc_57981 addr cs5535audio_dma_desc 0 57981 NULL nohasharray
144816 +disable_so_wdt_set_timeout_fndecl_57981 wdt_set_timeout fndecl 0 57981 &disable_so_addr_cs5535audio_dma_desc_57981
144817 +disable_so_memaddr_velocity_info_57982 memaddr velocity_info 0 57982 NULL
144818 +disable_so_uuids_open_fndecl_57986 uuids_open fndecl 0 57986 NULL
144819 +disable_so_p6_mt9t112_pll_divider_58006 p6 mt9t112_pll_divider 0 58006 NULL
144820 +disable_so_buffer_addr_lo_iscsi_bd_58012 buffer_addr_lo iscsi_bd 0 58012 NULL
144821 +disable_so_piix_set_timings_fndecl_58017 piix_set_timings fndecl 3 58017 NULL
144822 +disable_so_rqt_hwaddr_t4_rq_58021 rqt_hwaddr t4_rq 0 58021 NULL
144823 +disable_so_fc_gidpn_build_fndecl_58022 fc_gidpn_build fndecl 0-3-5 58022 NULL nohasharray
144824 +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
144825 +disable_so_sdev_runtime_suspend_fndecl_58023 sdev_runtime_suspend fndecl 0 58023 NULL
144826 +disable_so_check_msr_fndecl_58027 check_msr fndecl 2 58027 NULL
144827 +disable_so_init_addr_pmu_nvbios_pmuR_58030 init_addr_pmu nvbios_pmuR 0 58030 NULL
144828 +disable_so_read_addr_qla82xx_md_entry_mux_58034 read_addr qla82xx_md_entry_mux 0 58034 NULL
144829 +disable_so_vclk_post_div_real_pll_ct_58036 vclk_post_div_real pll_ct 0 58036 NULL
144830 +disable_so_mv88e6060_set_addr_fndecl_58039 mv88e6060_set_addr fndecl 0 58039 NULL
144831 +disable_so_skb_tx_hash_fndecl_58044 skb_tx_hash fndecl 0 58044 NULL
144832 +disable_so_kvm_mtrr_valid_fndecl_58049 kvm_mtrr_valid fndecl 3 58049 NULL
144833 +disable_so_enic_dev_del_station_addr_fndecl_58050 enic_dev_del_station_addr fndecl 0 58050 NULL
144834 +disable_so_divisor_flow_filter_58055 divisor flow_filter 0 58055 NULL nohasharray
144835 +disable_so_sg_addr_orc_scb_58055 sg_addr orc_scb 0 58055 &disable_so_divisor_flow_filter_58055
144836 +disable_so_read_addr_qla8xxx_minidump_entry_rdrom_58060 read_addr qla8xxx_minidump_entry_rdrom 0 58060 NULL
144837 +disable_so_op2_value_baddr1_gru_instruction_58062 op2_value_baddr1 gru_instruction 0 58062 NULL
144838 +disable_so_wait_table_hash_nr_entries_zone_58067 wait_table_hash_nr_entries zone 0 58067 NULL
144839 +disable_so_write_delay_adis_data_58068 write_delay adis_data 0 58068 NULL
144840 +disable_so_paging64_walk_addr_nested_fndecl_58079 paging64_walk_addr_nested fndecl 3-4 58079 NULL
144841 +disable_so_pm860x_rtc_set_time_fndecl_58084 pm860x_rtc_set_time fndecl 0 58084 NULL nohasharray
144842 +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
144843 +disable_so_regvalue__coeff_div_58086 regvalue _coeff_div 0 58086 NULL
144844 +disable_so_ext_addr_solo_p2m_desc_58103 ext_addr solo_p2m_desc 0 58103 NULL
144845 +disable_so_vclk_radeon_uvd_clock_voltage_dependency_entry_58107 vclk radeon_uvd_clock_voltage_dependency_entry 0 58107 NULL
144846 +disable_so_freq_ath5k_chan_pcal_info_58109 freq ath5k_chan_pcal_info 0 58109 NULL
144847 +disable_so_d_ino_timer_qc_dqblk_58112 d_ino_timer qc_dqblk 0 58112 NULL nohasharray
144848 +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
144849 +disable_so_src_addr_low_qlcnic_pex_dma_descriptor_58115 src_addr_low qlcnic_pex_dma_descriptor 0 58115 NULL
144850 +disable_so_dvb_buf_tscnt_vardecl_cx88_dvb_c_58119 dvb_buf_tscnt vardecl_cx88-dvb.c 0 58119 NULL
144851 +disable_so_aes_encrypt_packets_read_fndecl_58121 aes_encrypt_packets_read fndecl 0-3 58121 NULL
144852 +disable_so_cq_dma_address_skd_device_58128 cq_dma_address skd_device 0 58128 NULL
144853 +disable_so_mtrr_type_lookup_fixed_fndecl_58157 mtrr_type_lookup_fixed fndecl 1 58157 NULL
144854 +disable_so_start_rmt_timer0_fndecl_58158 start_rmt_timer0 fndecl 2 58158 NULL nohasharray
144855 +disable_so_pneigh_hash_fndecl_58158 pneigh_hash fndecl 2 58158 &disable_so_start_rmt_timer0_fndecl_58158
144856 +disable_so_spi_rcvhdr_tailaddr_qib_base_info_58167 spi_rcvhdr_tailaddr qib_base_info 0 58167 NULL
144857 +disable_so_high_bkey_58171 high bkey 0 58171 NULL
144858 +disable_so_remove_journal_hash_fndecl_58179 remove_journal_hash fndecl 4 58179 NULL
144859 +disable_so_snd_sgbuf_get_addr_fndecl_58188 snd_sgbuf_get_addr fndecl 0-2 58188 NULL
144860 +disable_so_get_cpu_topology_fndecl_58189 get_cpu_topology fndecl 1 58189 NULL
144861 +disable_so_mwl8k_cmd_update_mac_addr_fndecl_58193 mwl8k_cmd_update_mac_addr fndecl 0 58193 NULL
144862 +disable_so_i_mode_inode_58204 i_mode inode 0 58204 NULL
144863 +disable_so_qla4xxx_fw_uptime_show_fndecl_58212 qla4xxx_fw_uptime_show fndecl 0 58212 NULL
144864 +disable_so_ct_xfitimer_irq_rearm_fndecl_58216 ct_xfitimer_irq_rearm fndecl 2 58216 NULL
144865 +disable_so_r820t_set_analog_freq_fndecl_58223 r820t_set_analog_freq fndecl 0 58223 NULL
144866 +disable_so_devlink_sound_timer_operations_58261 devlink sound_timer_operations 0 58261 NULL
144867 +disable_so_lx_dsp_get_clock_frequency_fndecl_58263 lx_dsp_get_clock_frequency fndecl 0 58263 NULL
144868 +disable_so_qdr_dfe_time_qib_chippport_specific_58265 qdr_dfe_time qib_chippport_specific 0 58265 NULL
144869 +disable_so_boottime_set_fndecl_58270 boottime_set fndecl 0 58270 NULL
144870 +disable_so_unhandled_signal_fndecl_58272 unhandled_signal fndecl 2 58272 NULL
144871 +disable_so_nested_vmx_check_msr_switch_fndecl_58274 nested_vmx_check_msr_switch fndecl 2-3 58274 NULL
144872 +disable_so_atomic_counters_read_fndecl_58280 atomic_counters_read fndecl 3-0 58280 NULL
144873 +disable_so_read_delay_adis_data_58281 read_delay adis_data 0 58281 NULL
144874 +disable_so_rsi_sdio_set_cmd52_arg_fndecl_58288 rsi_sdio_set_cmd52_arg fndecl 0-2-3-4-5 58288 NULL
144875 +disable_so_ipv6_dev_get_saddr_fndecl_58290 ipv6_dev_get_saddr fndecl 0 58290 NULL
144876 +disable_so_futex_atomic_cmpxchg_inatomic_fndecl_58294 futex_atomic_cmpxchg_inatomic fndecl 4 58294 NULL
144877 +disable_so_gcm_hash_assoc_remain_done_fndecl_58296 gcm_hash_assoc_remain_done fndecl 2 58296 NULL
144878 +disable_so_regmap_update_bits_async_fndecl_58298 regmap_update_bits_async fndecl 2-4-3-0 58298 NULL
144879 +disable_so_dialwait_timer_isdn_net_local_s_58300 dialwait_timer isdn_net_local_s 0 58300 NULL
144880 +disable_so_addr_mISDNchannel_58316 addr mISDNchannel 0 58316 NULL
144881 +disable_so_incr_error_cpu_itimer_58327 incr_error cpu_itimer 0 58327 NULL
144882 +disable_so_tai_offset_timekeeper_58331 tai_offset timekeeper 0 58331 NULL
144883 +disable_so_mce_rdmsrl_fndecl_58332 mce_rdmsrl fndecl 0 58332 NULL
144884 +disable_so_start_ecm_timer_fndecl_58359 start_ecm_timer fndecl 2 58359 NULL
144885 +disable_so_autoconfig_read_divisor_id_fndecl_58367 autoconfig_read_divisor_id fndecl 0 58367 NULL
144886 +disable_so_x86_get_mtrr_mem_range_fndecl_58379 x86_get_mtrr_mem_range fndecl 3-4-2-0 58379 NULL
144887 +disable_so_mpc_ioapic_addr_fndecl_58384 mpc_ioapic_addr fndecl 0 58384 NULL
144888 +disable_so_addr_type_ipv6_saddr_score_58395 addr_type ipv6_saddr_score 0 58395 NULL
144889 +disable_so_setfreq_i_fndecl_58400 setfreq_i fndecl 2 58400 NULL
144890 +disable_so_tcp_md5_hash_skb_data_fndecl_58401 tcp_md5_hash_skb_data fndecl 3 58401 NULL
144891 +disable_so_aca_cstamp_ifacaddr6_58402 aca_cstamp ifacaddr6 0 58402 NULL
144892 +disable_so_old_cpufreq_freqs_58403 old cpufreq_freqs 0 58403 NULL
144893 +disable_so_jiffies_to_timeval_fndecl_58407 jiffies_to_timeval fndecl 1 58407 NULL
144894 +disable_so_vnic_dev_set_mac_addr_fndecl_58408 vnic_dev_set_mac_addr fndecl 0 58408 NULL
144895 +disable_so_sadb_lifetime_addtime_sadb_lifetime_58416 sadb_lifetime_addtime sadb_lifetime 0 58416 NULL
144896 +disable_so_addr_smsc47m1_data_58419 addr smsc47m1_data 0 58419 NULL
144897 +disable_so_clk_freq_g762_data_58420 clk_freq g762_data 0 58420 NULL
144898 +disable_so_khugepaged_scan_sleep_millisecs_vardecl_huge_memory_c_58427 khugepaged_scan_sleep_millisecs vardecl_huge_memory.c 0 58427 NULL nohasharray
144899 +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
144900 +disable_so_max_addr_dmar_domain_58431 max_addr dmar_domain 0 58431 NULL
144901 +disable_so_snd_ice1712_pro_internal_clock_default_info_fndecl_58437 snd_ice1712_pro_internal_clock_default_info fndecl 0 58437 NULL nohasharray
144902 +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
144903 +disable_so_bnx2fc_cmd_timer_set_fndecl_58441 bnx2fc_cmd_timer_set fndecl 2 58441 NULL
144904 +disable_so_do_settimeofday64_fndecl_58445 do_settimeofday64 fndecl 0 58445 NULL
144905 +disable_so_uv_mmtimer_ioctl_fndecl_58452 uv_mmtimer_ioctl fndecl 0 58452 NULL
144906 +disable_so_r61_val_fc2580_freq_regs_58455 r61_val fc2580_freq_regs 0 58455 NULL
144907 +disable_so_epp_read_addr_parport_operations_58468 epp_read_addr parport_operations 0-3 58468 NULL
144908 +disable_so_audio_config_hdmi_pixel_clock_fndecl_58471 audio_config_hdmi_pixel_clock fndecl 0 58471 NULL
144909 +disable_so_bufaddr_epic_tx_desc_58478 bufaddr epic_tx_desc 0 58478 NULL nohasharray
144910 +disable_so_qlcnic_sre_macaddr_change_fndecl_58478 qlcnic_sre_macaddr_change fndecl 0 58478 &disable_so_bufaddr_epic_tx_desc_58478
144911 +disable_so_gtime_task_struct_58480 gtime task_struct 0 58480 NULL nohasharray
144912 +disable_so_dma_addr_vpdma_buf_58480 dma_addr vpdma_buf 0 58480 &disable_so_gtime_task_struct_58480
144913 +disable_so_div_sync_wait_dib7000m_state_58486 div_sync_wait dib7000m_state 0 58486 NULL
144914 +disable_so_long_press_time_val_palmas_pwron_config_58497 long_press_time_val palmas_pwron_config 0 58497 NULL
144915 +disable_so_primary_pci_bus_58515 primary pci_bus 0 58515 NULL
144916 +disable_so_clk_frequency_imx_wm8962_data_58525 clk_frequency imx_wm8962_data 0 58525 NULL
144917 +disable_so_ieee80211_if_fmt_min_discovery_timeout_fndecl_58528 ieee80211_if_fmt_min_discovery_timeout fndecl 0-3 58528 NULL
144918 +disable_so_vidioc_s_frequency_fndecl_58543 vidioc_s_frequency fndecl 0 58543 NULL
144919 +disable_so_bitstream_put_bits_fndecl_58552 bitstream_put_bits fndecl 0-3 58552 NULL
144920 +disable_so_rbp_kvm_regs_58553 rbp kvm_regs 0 58553 NULL
144921 +disable_so_dosr_aic32x4_rate_divs_58555 dosr aic32x4_rate_divs 0 58555 NULL
144922 +disable_so_vscnprintf_fndecl_58558 vscnprintf fndecl 0-2 58558 NULL
144923 +disable_so_static_address_open_fndecl_58572 static_address_open fndecl 0 58572 NULL
144924 +disable_so_sysctl_rose_clear_request_timeout_vardecl_58580 sysctl_rose_clear_request_timeout vardecl 0 58580 NULL
144925 +disable_so_di_uid_dinode_58581 di_uid dinode 0 58581 NULL
144926 +disable_so_crypto_cts_decrypt_fndecl_58584 crypto_cts_decrypt fndecl 0-4 58584 NULL
144927 +disable_so_igu_base_addr_bnx2x_58589 igu_base_addr bnx2x 0 58589 NULL
144928 +disable_so_ifa_address_dn_ifaddr_58593 ifa_address dn_ifaddr 0 58593 NULL
144929 +disable_so_p54_get_band_from_freq_fndecl_58594 p54_get_band_from_freq fndecl 1 58594 NULL
144930 +disable_so_csk_ddp_setup_pgidx_cxgbi_device_58611 csk_ddp_setup_pgidx cxgbi_device 2 58611 NULL
144931 +disable_so_ref_mod_btrfs_delayed_ref_node_58614 ref_mod btrfs_delayed_ref_node 0 58614 NULL
144932 +disable_so_gr_remove_uid_fndecl_58619 gr_remove_uid fndecl 1 58619 NULL
144933 +disable_so_i2c_address_fc0012_config_58626 i2c_address fc0012_config 0 58626 NULL nohasharray
144934 +disable_so_ablkcipher_done_slow_fndecl_58626 ablkcipher_done_slow fndecl 0-2 58626 &disable_so_i2c_address_fc0012_config_58626
144935 +disable_so_address_b43legacy_dmadesc32_58627 address b43legacy_dmadesc32 0 58627 NULL
144936 +disable_so_di_atime_qnx6_inode_entry_58654 di_atime qnx6_inode_entry 0 58654 NULL nohasharray
144937 +disable_so_hactive_lo_lvds_dvo_timing_58654 hactive_lo lvds_dvo_timing 0 58654 &disable_so_di_atime_qnx6_inode_entry_58654
144938 +disable_so_ack_seq_tcp_skb_cb_58657 ack_seq tcp_skb_cb 0 58657 NULL
144939 +disable_so_matroxfb_PLL_mavenclock_fndecl_58658 matroxfb_PLL_mavenclock fndecl 3-4 58658 NULL nohasharray
144940 +disable_so_assert_exp_addr_sdpcm_shared_58658 assert_exp_addr sdpcm_shared 0 58658 &disable_so_matroxfb_PLL_mavenclock_fndecl_58658
144941 +disable_so_pre_div_freq_tbl_58661 pre_div freq_tbl 0 58661 NULL
144942 +disable_so_alsa_timer_init_fndecl_58667 alsa_timer_init fndecl 0 58667 NULL
144943 +disable_so_alloc_cpumask_var_node_fndecl_58668 alloc_cpumask_var_node fndecl 2-3 58668 NULL
144944 +disable_so_genwqe_debugfs_curr_dbg_uid2_open_fndecl_58673 genwqe_debugfs_curr_dbg_uid2_open fndecl 0 58673 NULL
144945 +disable_so_pixclock_fb_videomode_58678 pixclock fb_videomode 0 58678 NULL
144946 +disable_so_h_addr_reg_musb_qh_58681 h_addr_reg musb_qh 0 58681 NULL
144947 +disable_so_timeout_cyclades_port_58683 timeout cyclades_port 0 58683 NULL
144948 +disable_so_cxio_init_resource_fifo_random_fndecl_58684 cxio_init_resource_fifo_random fndecl 3 58684 NULL
144949 +disable_so_dib8000_get_timeout_fndecl_58702 dib8000_get_timeout fndecl 2-0 58702 NULL nohasharray
144950 +disable_so_xfs_btree_get_buf_block_fndecl_58702 xfs_btree_get_buf_block fndecl 0 58702 &disable_so_dib8000_get_timeout_fndecl_58702
144951 +disable_so_apds9300_write_interrupt_config_fndecl_58703 apds9300_write_interrupt_config fndecl 0 58703 NULL
144952 +disable_so_ath9k_hw_computetxtime_fndecl_58711 ath9k_hw_computetxtime fndecl 0-3-4-5 58711 NULL
144953 +disable_so_bus_address_drm_buf_58716 bus_address drm_buf 0 58716 NULL
144954 +disable_so_nr_irqs_vardecl_58723 nr_irqs vardecl 0 58723 NULL nohasharray
144955 +disable_so_hashbin_find_next_fndecl_58723 hashbin_find_next fndecl 2 58723 &disable_so_nr_irqs_vardecl_58723
144956 +disable_so_snd_usb_find_clock_selector_fndecl_58728 snd_usb_find_clock_selector fndecl 2 58728 NULL
144957 +disable_so_radio_freq_bttv_58729 radio_freq bttv 0 58729 NULL
144958 +disable_so_xc_set_signal_source_fndecl_58733 xc_set_signal_source fndecl 0 58733 NULL
144959 +disable_so_doorbell_write_vardecl_pcc_cpufreq_c_58745 doorbell_write vardecl_pcc-cpufreq.c 0 58745 NULL
144960 +disable_so_cpu_clock_counter_kfd_ioctl_get_clock_counters_args_58758 cpu_clock_counter kfd_ioctl_get_clock_counters_args 0 58758 NULL
144961 +disable_so_btrfs_set_dev_replace_time_started_fndecl_58761 btrfs_set_dev_replace_time_started fndecl 3 58761 NULL
144962 +disable_so_i_hash_mask_vardecl_inode_c_58762 i_hash_mask vardecl_inode.c 0 58762 NULL
144963 +disable_so_gr_set_address_fndecl_58765 gr_set_address fndecl 2 58765 NULL
144964 +disable_so_perfect_tx_time_minstrel_rate_58766 perfect_tx_time minstrel_rate 0 58766 NULL
144965 +disable_so_min_ref_div_radeon_pll_58768 min_ref_div radeon_pll 0 58768 NULL
144966 +disable_so_demod_address_ec100_config_58771 demod_address ec100_config 0 58771 NULL
144967 +disable_so_phys_addr_vm_struct_58777 phys_addr vm_struct 0 58777 NULL
144968 +disable_so_addr_ramfuc_reg_58780 addr ramfuc_reg 0 58780 NULL nohasharray
144969 +disable_so_start_addr_p54_tx_info_58780 start_addr p54_tx_info 0 58780 &disable_so_addr_ramfuc_reg_58780
144970 +disable_so_interrupt_mask_oxygen_58792 interrupt_mask oxygen 0 58792 NULL
144971 +disable_so_time_to_tm_fndecl_58793 time_to_tm fndecl 2-1 58793 NULL
144972 +disable_so_irq_pci_dev_58794 irq pci_dev 0 58794 NULL
144973 +disable_so_reg_write_fndecl_58795 reg_write fndecl 0-2-3-4 58795 NULL
144974 +disable_so_eof_uid_xfs_fs_eofblocks_58796 eof_uid xfs_fs_eofblocks 0 58796 NULL
144975 +disable_so_s_dv_timings_v4l2_subdev_video_ops_58798 s_dv_timings v4l2_subdev_video_ops 0 58798 NULL
144976 +disable_so_iscsit_do_crypto_hash_buf_fndecl_58805 iscsit_do_crypto_hash_buf fndecl 3-4 58805 NULL
144977 +disable_so_ablkcipher_next_slow_fndecl_58809 ablkcipher_next_slow fndecl 3-4 58809 NULL
144978 +disable_so_set_process_cpu_timer_fndecl_58820 set_process_cpu_timer fndecl 2 58820 NULL
144979 +disable_so_btbcm_check_bdaddr_fndecl_58825 btbcm_check_bdaddr fndecl 0 58825 NULL
144980 +disable_so_seek_timeout_vardecl_radio_si470x_common_c_58832 seek_timeout vardecl_radio-si470x-common.c 0 58832 NULL
144981 +disable_so_rhashtable_rehash_attach_fndecl_58833 rhashtable_rehash_attach fndecl 0 58833 NULL
144982 +disable_so_read_posix_clock_operations_58837 read posix_clock_operations 2 58837 NULL
144983 +disable_so_atomic_open_inode_operations_58838 atomic_open inode_operations 4-5 58838 NULL nohasharray
144984 +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
144985 +disable_so_timeout_cmd_bidir_58846 timeout cmd_bidir 0 58846 NULL
144986 +disable_so_bank_mce_58847 bank mce 0 58847 NULL
144987 +disable_so_hw_ptr_wrap_snd_pcm_runtime_58849 hw_ptr_wrap snd_pcm_runtime 0 58849 NULL
144988 +disable_so_batadv_iv_ogm_fwd_send_time_fndecl_58851 batadv_iv_ogm_fwd_send_time fndecl 0 58851 NULL
144989 +disable_so_lrg_buf_q_alloc_phy_addr_ql3_adapter_58856 lrg_buf_q_alloc_phy_addr ql3_adapter 0 58856 NULL
144990 +disable_so_avc_get_hash_stats_fndecl_58860 avc_get_hash_stats fndecl 0 58860 NULL
144991 +disable_so_do_utimes_fndecl_58870 do_utimes fndecl 0-1 58870 NULL
144992 +disable_so_get_max_timeout_count_sdhci_ops_58875 get_max_timeout_count sdhci_ops 0 58875 NULL
144993 +disable_so_sys_setuid16_fndecl_58881 sys_setuid16 fndecl 0-1 58881 NULL
144994 +disable_so_pq_gpu_addr_kernel_queue_58891 pq_gpu_addr kernel_queue 0 58891 NULL
144995 +disable_so_suspend_time_ipw_priv_58911 suspend_time ipw_priv 0 58911 NULL
144996 +disable_so_Ti3026_calcclock_fndecl_58917 Ti3026_calcclock fndecl 2-3-0 58917 NULL
144997 +disable_so_virtual_reg_addr_wl1251_58918 virtual_reg_addr wl1251 0 58918 NULL
144998 +disable_so_timeout_read_fndecl_58936 timeout_read fndecl 3 58936 NULL
144999 +disable_so_bank_base_playback_addr_snd_ymfpci_58940 bank_base_playback_addr snd_ymfpci 0 58940 NULL
145000 +disable_so_sunkbd_interrupt_fndecl_58943 sunkbd_interrupt fndecl 2 58943 NULL
145001 +disable_so_cpufreq_add_policy_cpu_fndecl_58948 cpufreq_add_policy_cpu fndecl 0-2 58948 NULL
145002 +disable_so_vfreq___fb_timings_58967 vfreq __fb_timings 0 58967 NULL
145003 +disable_so___fdget_fndecl_58975 __fdget fndecl 1 58975 NULL
145004 +disable_so_log_addr_vhost_virtqueue_58983 log_addr vhost_virtqueue 0 58983 NULL
145005 +disable_so_start_addr_bnx2_mips_fw_file_entry_58985 start_addr bnx2_mips_fw_file_entry 0 58985 NULL
145006 +disable_so_wt_timeout_st21nfca_se_info_58988 wt_timeout st21nfca_se_info 0 58988 NULL
145007 +disable_so_sg_physaddr_sg_map_node_59010 sg_physaddr sg_map_node 0 59010 NULL
145008 +disable_so_hsync_pulse_width_hi_oaktrail_timing_info_59019 hsync_pulse_width_hi oaktrail_timing_info 0 59019 NULL
145009 +disable_so_cx88_set_freq_fndecl_59030 cx88_set_freq fndecl 0 59030 NULL
145010 +disable_so_daddr_ircomm_info_59034 daddr ircomm_info 0 59034 NULL
145011 +disable_so_iscsit_ta_netif_timeout_fndecl_59038 iscsit_ta_netif_timeout fndecl 0 59038 NULL
145012 +disable_so_frequency_stv090x_state_59044 frequency stv090x_state 0 59044 NULL
145013 +disable_so_slave_address_cp2112_write_req_report_59049 slave_address cp2112_write_req_report 0 59049 NULL
145014 +disable_so_ipath_hol_timeout_ms_vardecl_ipath_driver_c_59051 ipath_hol_timeout_ms vardecl_ipath_driver.c 0 59051 NULL
145015 +disable_so_acpi_throttling_wrmsr_fndecl_59058 acpi_throttling_wrmsr fndecl 1 59058 NULL
145016 +disable_so_acpi_cpufreq_init_fndecl_59061 acpi_cpufreq_init fndecl 0 59061 NULL
145017 +disable_so_evtbd_addr_hi_host_cmd_ds_pcie_details_59067 evtbd_addr_hi host_cmd_ds_pcie_details 0 59067 NULL
145018 +disable_so_addr_lo_dma_desc_59074 addr_lo dma_desc 0 59074 NULL
145019 +disable_so_xen_mce_chrdev_read_fndecl_59076 xen_mce_chrdev_read fndecl 0 59076 NULL
145020 +disable_so_addr_max8998_reg_dump_59086 addr max8998_reg_dump 0 59086 NULL
145021 +disable_so_card_snd_timer_id_59096 card snd_timer_id 0 59096 NULL
145022 +disable_so_addr_qib_sdma_txreq_59099 addr qib_sdma_txreq 0 59099 NULL
145023 +disable_so_rx_coalescing_timeo_bnad_59109 rx_coalescing_timeo bnad 0 59109 NULL
145024 +disable_so_dm_btree_del_fndecl_59119 dm_btree_del fndecl 0-2 59119 NULL
145025 +disable_so_topology_change_timer_show_fndecl_59122 topology_change_timer_show fndecl 0 59122 NULL
145026 +disable_so_ip_vs_addr_copy_fndecl_59129 ip_vs_addr_copy fndecl 1 59129 NULL
145027 +disable_so_i2c_address_cxd2820r_config_59130 i2c_address cxd2820r_config 0 59130 NULL
145028 +disable_so_panel_ref_divider_radeon_encoder_lvds_59134 panel_ref_divider radeon_encoder_lvds 0 59134 NULL nohasharray
145029 +disable_so_clock_lvds_dvo_timing_59134 clock lvds_dvo_timing 0 59134 &disable_so_panel_ref_divider_radeon_encoder_lvds_59134
145030 +disable_so_skcipher_setkey_fndecl_59135 skcipher_setkey fndecl 0-3 59135 NULL
145031 +disable_so_pcxhr_clock_type_info_fndecl_59137 pcxhr_clock_type_info fndecl 0 59137 NULL
145032 +disable_so_ccp_sha_setkey_fndecl_59138 ccp_sha_setkey fndecl 3 59138 NULL
145033 +disable_so_xfs_btree_shift_recs_fndecl_59139 xfs_btree_shift_recs fndecl 4 59139 NULL
145034 +disable_so_irq_set_chip_fndecl_59141 irq_set_chip fndecl 1 59141 NULL
145035 +disable_so_prech_timeout_midi_parms_59145 prech_timeout midi_parms 0 59145 NULL
145036 +disable_so_ecryptfs_message_wait_timeout_vardecl_59150 ecryptfs_message_wait_timeout vardecl 0 59150 NULL
145037 +disable_so_max_time_dib3000mc_config_59165 max_time dib3000mc_config 0 59165 NULL
145038 +disable_so_freq_snd_tea575x_59172 freq snd_tea575x 0 59172 NULL nohasharray
145039 +disable_so_hactive_hblank_hi_detailed_pixel_timing_59172 hactive_hblank_hi detailed_pixel_timing 0 59172 &disable_so_freq_snd_tea575x_59172
145040 +disable_so_last_port_bitmap_port_59176 last_port bitmap_port 0 59176 NULL
145041 +disable_so_svm_cid_sockaddr_vm_59186 svm_cid sockaddr_vm 0 59186 NULL
145042 +disable_so_divisor_tc_u_hnode_59196 divisor tc_u_hnode 0 59196 NULL
145043 +disable_so_address_r8a66597_pipe_info_59198 address r8a66597_pipe_info 0 59198 NULL
145044 +disable_so_val_addr_core0_nphy_rf_control_override_rev7_59213 val_addr_core0 nphy_rf_control_override_rev7 0 59213 NULL
145045 +disable_so_hv_signal_event_fndecl_59215 hv_signal_event fndecl 0 59215 NULL
145046 +disable_so_rv740_get_decoded_reference_divider_fndecl_59216 rv740_get_decoded_reference_divider fndecl 0-1 59216 NULL
145047 +disable_so_ecb_aes_decrypt_fndecl_59224 ecb_aes_decrypt fndecl 0-4 59224 NULL
145048 +disable_so_b44_interrupt_fndecl_59225 b44_interrupt fndecl 1 59225 NULL
145049 +disable_so_cpufreq_sysfs_create_file_fndecl_59228 cpufreq_sysfs_create_file fndecl 0 59228 NULL
145050 +disable_so_err_msr_regs_info_59233 err msr_regs_info 0 59233 NULL
145051 +disable_so_hci_dev_sockaddr_hci_59237 hci_dev sockaddr_hci 0 59237 NULL
145052 +disable_so_paddr_scq_info_59242 paddr scq_info 0 59242 NULL
145053 +disable_so_saddr_dat_cx231xx_i2c_xfer_data_59247 saddr_dat cx231xx_i2c_xfer_data 0 59247 NULL
145054 +disable_so_hash_cnt_ccp_aes_cmac_req_ctx_59249 hash_cnt ccp_aes_cmac_req_ctx 0 59249 NULL
145055 +disable_so_read_addr___cache_59255 read_addr __cache 0 59255 NULL
145056 +disable_so_freq_wmi_p2p_probe_response_cmd_59256 freq wmi_p2p_probe_response_cmd 0 59256 NULL
145057 +disable_so_ack_seq_tcphdr_59257 ack_seq tcphdr 0 59257 NULL
145058 +disable_so_i_uid_ext4_inode_59259 i_uid ext4_inode 0 59259 NULL
145059 +disable_so_prandom_seed_fndecl_59265 prandom_seed fndecl 1 59265 NULL nohasharray
145060 +disable_so_table1_addr_ipw_priv_59265 table1_addr ipw_priv 0 59265 &disable_so_prandom_seed_fndecl_59265
145061 +disable_so_set_mtrr_ops_59267 set mtrr_ops 2-3 59267 NULL
145062 +disable_so_signal_adm8211_tx_hdr_59276 signal adm8211_tx_hdr 0 59276 NULL
145063 +disable_so_n_pll_div_59277 n pll_div 0 59277 NULL
145064 +disable_so_burst_time_pie_vars_59278 burst_time pie_vars 0 59278 NULL
145065 +disable_so_atp867x_get_active_clocks_shifted_fndecl_59292 atp867x_get_active_clocks_shifted fndecl 0-2 59292 NULL
145066 +disable_so_hello_timer_show_fndecl_59304 hello_timer_show fndecl 0 59304 NULL
145067 +disable_so_pc_timeout_ubifs_debug_info_59317 pc_timeout ubifs_debug_info 0 59317 NULL
145068 +disable_so_reg_se_cache_ti_tscadc_dev_59318 reg_se_cache ti_tscadc_dev 0 59318 NULL
145069 +disable_so_hv_init_clockevent_device_fndecl_59324 hv_init_clockevent_device fndecl 2 59324 NULL nohasharray
145070 +disable_so_error_async_delayed_refs_59324 error async_delayed_refs 0 59324 &disable_so_hv_init_clockevent_device_fndecl_59324
145071 +disable_so_query_dv_timings_v4l2_subdev_video_ops_59327 query_dv_timings v4l2_subdev_video_ops 0 59327 NULL
145072 +disable_so_pwr_vec_read_time_b43_txpower_lo_control_59329 pwr_vec_read_time b43_txpower_lo_control 0 59329 NULL
145073 +disable_so_proc_do_uuid_fndecl_59345 proc_do_uuid fndecl 0 59345 NULL
145074 +disable_so_nilfs_segctor_last_seg_write_time_show_fndecl_59356 nilfs_segctor_last_seg_write_time_show fndecl 0 59356 NULL nohasharray
145075 +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
145076 +disable_so_usb_start_wait_urb_fndecl_59365 usb_start_wait_urb fndecl 0 59365 NULL
145077 +disable_so_cpuid_xenpf_cpu_ol_59386 cpuid xenpf_cpu_ol 0 59386 NULL
145078 +disable_so_mem_addr_ips_ha_59397 mem_addr ips_ha 0 59397 NULL
145079 +disable_so_ip6addrlbl_fill_fndecl_59401 ip6addrlbl_fill fndecl 0-4-6 59401 NULL
145080 +disable_so_cq_addr_lo_fcoe_kwqe_conn_offload2_59405 cq_addr_lo fcoe_kwqe_conn_offload2 0 59405 NULL
145081 +disable_so_l_pll_freq_tbl_59406 l pll_freq_tbl 0 59406 NULL
145082 +disable_so_sgid_idx_ocrdma_qp_59415 sgid_idx ocrdma_qp 0 59415 NULL
145083 +disable_so_i2c_bit_add_numbered_bus_fndecl_59416 i2c_bit_add_numbered_bus fndecl 0 59416 NULL
145084 +disable_so_trb_addr_lo_mv_u3d_ep_context_59424 trb_addr_lo mv_u3d_ep_context 0 59424 NULL
145085 +disable_so_shash_compat_init_fndecl_59445 shash_compat_init fndecl 0 59445 NULL
145086 +disable_so_currentfreq_cx24123_state_59448 currentfreq cx24123_state 0 59448 NULL
145087 +disable_so_neigh_proc_dointvec_userhz_jiffies_fndecl_59453 neigh_proc_dointvec_userhz_jiffies fndecl 0 59453 NULL
145088 +disable_so_panel_fb_divider_radeon_encoder_lvds_59458 panel_fb_divider radeon_encoder_lvds 0 59458 NULL nohasharray
145089 +disable_so_sec_pvclock_wall_clock_59458 sec pvclock_wall_clock 0 59458 &disable_so_panel_fb_divider_radeon_encoder_lvds_59458
145090 +disable_so_wl18xx_acx_host_if_cfg_bitmap_fndecl_59465 wl18xx_acx_host_if_cfg_bitmap fndecl 0 59465 NULL
145091 +disable_so_addr_erase_info_59472 addr erase_info 0 59472 NULL nohasharray
145092 +disable_so_ath9k_hw_addrxbuf_edma_fndecl_59472 ath9k_hw_addrxbuf_edma fndecl 2 59472 &disable_so_addr_erase_info_59472
145093 +disable_so_hour_timestamp_59476 hour timestamp 0 59476 NULL
145094 +disable_so_check_cpu_itimer_fndecl_59478 check_cpu_itimer fndecl 5-4 59478 NULL
145095 +disable_so_flush_time_cache_detail_59492 flush_time cache_detail 0 59492 NULL
145096 +disable_so_error0_timeout_si_sm_data_59495 error0_timeout si_sm_data 0 59495 NULL
145097 +disable_so_sampling_freq_mixart_stream_param_desc_59502 sampling_freq mixart_stream_param_desc 0 59502 NULL
145098 +disable_so_enc_addr_low_sata_start_req_59503 enc_addr_low sata_start_req 0 59503 NULL
145099 +disable_so_hash_unix_address_59504 hash unix_address 0 59504 NULL nohasharray
145100 +disable_so_ufs_get_inode_uid_fndecl_59504 ufs_get_inode_uid fndecl 0 59504 &disable_so_hash_unix_address_59504
145101 +disable_so_demod_address_tda1002x_config_59516 demod_address tda1002x_config 0 59516 NULL
145102 +disable_so_getaddr_dumpit_fndecl_59518 getaddr_dumpit fndecl 0 59518 NULL
145103 +disable_so_tg3_interrupt_fndecl_59519 tg3_interrupt fndecl 1 59519 NULL
145104 +disable_so_utime_task_struct_59526 utime task_struct 0 59526 NULL
145105 +disable_so_decrypt_ablkcipher_tfm_59537 decrypt ablkcipher_tfm 0 59537 NULL
145106 +disable_so_dma_addr_bnad_rx_vector_59551 dma_addr bnad_rx_vector 0 59551 NULL
145107 +disable_so_vram_addr_viafb_par_59552 vram_addr viafb_par 0 59552 NULL
145108 +disable_so_s00_img_ir_timing_regvals_59579 s00 img_ir_timing_regvals 0 59579 NULL
145109 +disable_so_pci_swizzle_interrupt_pin_fndecl_59580 pci_swizzle_interrupt_pin fndecl 0-2 59580 NULL
145110 +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
145111 +disable_so_time_next_delayed_flow_fq_sched_data_59598 time_next_delayed_flow fq_sched_data 0 59598 NULL
145112 +disable_so_signal_ttm_lock_59613 signal ttm_lock 0 59613 NULL
145113 +disable_so_trap_timeout_qib_ibport_59624 trap_timeout qib_ibport 0 59624 NULL
145114 +disable_so_hash_sendpage_fndecl_59633 hash_sendpage fndecl 0-3-4 59633 NULL
145115 +disable_so_address_i2c_algo_dp_aux_data_59643 address i2c_algo_dp_aux_data 0 59643 NULL
145116 +disable_so_baddr_pmcraid_hostrcb_59651 baddr pmcraid_hostrcb 0 59651 NULL
145117 +disable_so_jiffies_drm_i915_error_request_59653 jiffies drm_i915_error_request 0 59653 NULL
145118 +disable_so_niu_enable_interrupts_fndecl_59655 niu_enable_interrupts fndecl 0 59655 NULL nohasharray
145119 +disable_so_addr_nvkm_gpuobj_59655 addr nvkm_gpuobj 0 59655 &disable_so_niu_enable_interrupts_fndecl_59655
145120 +disable_so_irlap_start_backoff_timer_fndecl_59668 irlap_start_backoff_timer fndecl 2 59668 NULL
145121 +disable_so_cs_chp_time_transaction_chp_stats_s_59671 cs_chp_time transaction_chp_stats_s 0 59671 NULL nohasharray
145122 +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
145123 +disable_so_start_time_bfa_ioim_s_59693 start_time bfa_ioim_s 0 59693 NULL nohasharray
145124 +disable_so_nilfs_btree_assign_p_fndecl_59693 nilfs_btree_assign_p fndecl 0-5 59693 &disable_so_start_time_bfa_ioim_s_59693
145125 +disable_so_pid_pppol2tp_addr_59696 pid pppol2tp_addr 0 59696 NULL
145126 +disable_so_paging32_walk_addr_nested_fndecl_59706 paging32_walk_addr_nested fndecl 3-4 59706 NULL
145127 +disable_so_set_timer_tick_hw_59707 set_timer_tick hw 2 59707 NULL
145128 +disable_so_irq_domain_alloc_irqs_parent_fndecl_59718 irq_domain_alloc_irqs_parent fndecl 2-3-0 59718 NULL
145129 +disable_so_pcf8583_rtc_read_time_fndecl_59722 pcf8583_rtc_read_time fndecl 0 59722 NULL
145130 +disable_so_i_rx_jiffies_rds_incoming_59727 i_rx_jiffies rds_incoming 0 59727 NULL
145131 +disable_so_addr_pt1_buffer_59731 addr pt1_buffer 0 59731 NULL
145132 +disable_so_od_cpufreq_governor_dbs_fndecl_59745 od_cpufreq_governor_dbs fndecl 0 59745 NULL
145133 +disable_so_atmel_set_mac_address_fndecl_59747 atmel_set_mac_address fndecl 0 59747 NULL nohasharray
145134 +disable_so_ioaddr_mxser_port_59747 ioaddr mxser_port 0 59747 &disable_so_atmel_set_mac_address_fndecl_59747
145135 +disable_so_kvm_mtrr_check_gfn_range_consistency_fndecl_59759 kvm_mtrr_check_gfn_range_consistency fndecl 3-2 59759 NULL
145136 +disable_so_mul_n_fndecl_59766 mul_n fndecl 4 59766 NULL
145137 +disable_so_mlx4_bitmap_alloc_fndecl_59767 mlx4_bitmap_alloc fndecl 0 59767 NULL
145138 +disable_so_device_num_atto_csmi_get_pci_bus_addr_59770 device_num atto_csmi_get_pci_bus_addr 0 59770 NULL
145139 +disable_so_ksz_init_timer_fndecl_59771 ksz_init_timer fndecl 2 59771 NULL
145140 +disable_so_signr_usbdevfs_disconnectsignal_59774 signr usbdevfs_disconnectsignal 0 59774 NULL
145141 +disable_so_hash_netiface4_expire_fndecl_59777 hash_netiface4_expire fndecl 4 59777 NULL
145142 +disable_so_timeoutValue_RAID_CONTEXT_59780 timeoutValue RAID_CONTEXT 0 59780 NULL
145143 +disable_so_vsync_pulse_width_hi_oaktrail_timing_info_59785 vsync_pulse_width_hi oaktrail_timing_info 0 59785 NULL
145144 +disable_so_macvtap16_to_cpu_fndecl_59790 macvtap16_to_cpu fndecl 0-2 59790 NULL
145145 +disable_so_ns_ack_interrupt_fndecl_59791 ns_ack_interrupt fndecl 0 59791 NULL
145146 +disable_so_btrfs_commit_inode_delayed_inode_fndecl_59792 btrfs_commit_inode_delayed_inode fndecl 0 59792 NULL
145147 +disable_so_lg_addr_ns_dev_59797 lg_addr ns_dev 0 59797 NULL
145148 +disable_so_nr_divisor_sym_chip_59803 nr_divisor sym_chip 0 59803 NULL
145149 +disable_so_cpu_power_to_freq_fndecl_59806 cpu_power_to_freq fndecl 2 59806 NULL nohasharray
145150 +disable_so_hash_sfq_slot_59806 hash sfq_slot 0 59806 &disable_so_cpu_power_to_freq_fndecl_59806
145151 +disable_so_netvsc_set_mac_addr_fndecl_59822 netvsc_set_mac_addr fndecl 0 59822 NULL
145152 +disable_so_kxcjk1013_get_startup_times_fndecl_59827 kxcjk1013_get_startup_times fndecl 0 59827 NULL nohasharray
145153 +disable_so_bitmap_ipmac_do_test_fndecl_59827 bitmap_ipmac_do_test fndecl 3 59827 &disable_so_kxcjk1013_get_startup_times_fndecl_59827
145154 +disable_so_decnet_time_wait_vardecl_59833 decnet_time_wait vardecl 0 59833 NULL
145155 +disable_so_delay_multiplier_be_set_eqd_59834 delay_multiplier be_set_eqd 0 59834 NULL
145156 +disable_so_asr_get_base_address_fndecl_59835 asr_get_base_address fndecl 0 59835 NULL
145157 +disable_so_timeout_nouveau_fence_59837 timeout nouveau_fence 0 59837 NULL
145158 +disable_so_m_pll_freq_tbl_59838 m pll_freq_tbl 0 59838 NULL
145159 +disable_so_tea5764_get_freq_fndecl_59848 tea5764_get_freq fndecl 0 59848 NULL
145160 +disable_so_seq_km_event_59849 seq km_event 0 59849 NULL nohasharray
145161 +disable_so_dst_addr_lo_dmae_command_59849 dst_addr_lo dmae_command 0 59849 &disable_so_seq_km_event_59849
145162 +disable_so_get_ep_by_addr_fndecl_59856 get_ep_by_addr fndecl 2 59856 NULL
145163 +disable_so_txbd_addr_hi_host_cmd_ds_pcie_details_59885 txbd_addr_hi host_cmd_ds_pcie_details 0 59885 NULL
145164 +disable_so_hash_v6_fndecl_59887 hash_v6 fndecl 0 59887 NULL
145165 +disable_so_sst_module_runtime_restore_fndecl_59893 sst_module_runtime_restore fndecl 0 59893 NULL
145166 +disable_so_pvclock_clocksource_read_fndecl_59895 pvclock_clocksource_read fndecl 0 59895 NULL nohasharray
145167 +disable_so_hdspm_set_interrupt_interval_fndecl_59895 hdspm_set_interrupt_interval fndecl 2-0 59895 &disable_so_pvclock_clocksource_read_fndecl_59895
145168 +disable_so_i2c_addr_r820t_config_59896 i2c_addr r820t_config 0 59896 NULL
145169 +disable_so_i2400m_check_mac_addr_fndecl_59899 i2400m_check_mac_addr fndecl 0 59899 NULL
145170 +disable_so_get_uuid_export_operations_59904 get_uuid export_operations 0 59904 NULL
145171 +disable_so_last_tx_jiffies_fmdev_59908 last_tx_jiffies fmdev 0 59908 NULL nohasharray
145172 +disable_so_delay_use_vardecl_usb_c_59908 delay_use vardecl_usb.c 0 59908 &disable_so_last_tx_jiffies_fmdev_59908
145173 +disable_so_show_telclock_version_fndecl_59913 show_telclock_version fndecl 0 59913 NULL
145174 +disable_so_flush_time_il3945_rs_sta_59914 flush_time il3945_rs_sta 0 59914 NULL
145175 +disable_so_sip_sprintf_addr_fndecl_59915 sip_sprintf_addr fndecl 0 59915 NULL
145176 +disable_so_lola_set_clock_index_fndecl_59921 lola_set_clock_index fndecl 0 59921 NULL nohasharray
145177 +disable_so_addr_stv0900_reg_59921 addr stv0900_reg 0 59921 &disable_so_lola_set_clock_index_fndecl_59921
145178 +disable_so_vsnprintf_fndecl_59932 vsnprintf fndecl 0-2 59932 NULL
145179 +disable_so_nfs4_delay_fndecl_59938 nfs4_delay fndecl 0 59938 NULL nohasharray
145180 +disable_so___bch_btree_map_nodes_fndecl_59938 __bch_btree_map_nodes fndecl 0 59938 &disable_so_nfs4_delay_fndecl_59938
145181 +disable_so_freq_before_jump_fm_rx_59940 freq_before_jump fm_rx 0 59940 NULL
145182 +disable_so_vt8623_set_pixclock_fndecl_59944 vt8623_set_pixclock fndecl 2 59944 NULL
145183 +disable_so_seq_ieee80211_fragment_entry_59945 seq ieee80211_fragment_entry 0 59945 NULL
145184 +disable_so_map_nr_blk_mq_bitmap_tags_59947 map_nr blk_mq_bitmap_tags 0 59947 NULL nohasharray
145185 +disable_so_r5_hash_fndecl_59947 r5_hash fndecl 2 59947 &disable_so_map_nr_blk_mq_bitmap_tags_59947
145186 +disable_so_s_first_error_time_ext4_super_block_59952 s_first_error_time ext4_super_block 0 59952 NULL
145187 +disable_so_crypto_ablkcipher_decrypt_fndecl_59964 crypto_ablkcipher_decrypt fndecl 0 59964 NULL
145188 +disable_so_i_gid_write_fndecl_59978 i_gid_write fndecl 2 59978 NULL
145189 +disable_so_dst_nents_qce_cipher_reqctx_59989 dst_nents qce_cipher_reqctx 0 59989 NULL
145190 +disable_so_addr_nvme_passthru_cmd_59990 addr nvme_passthru_cmd 0 59990 NULL
145191 +disable_so_vsprintf_fndecl_59994 vsprintf fndecl 0 59994 NULL
145192 +disable_so_desc_daddr_ath5k_hw_59995 desc_daddr ath5k_hw 0 59995 NULL
145193 +disable_so_n_pll_freq_tbl_60004 n pll_freq_tbl 0 60004 NULL
145194 +disable_so_ufshcd_parse_clock_info_fndecl_60006 ufshcd_parse_clock_info fndecl 0 60006 NULL
145195 +disable_so_max_timer_ms_bcm47xx_wdt_60015 max_timer_ms bcm47xx_wdt 0 60015 NULL
145196 +disable_so_add_monitor_signal_fndecl_60038 add_monitor_signal fndecl 4 60038 NULL
145197 +disable_so_check_matrix_bitmap_fndecl_60054 check_matrix_bitmap fndecl 0-2-3-4 60054 NULL
145198 +disable_so_bitmap_file_clear_bit_fndecl_60061 bitmap_file_clear_bit fndecl 2 60061 NULL nohasharray
145199 +disable_so_nvkm_ramht_hash_fndecl_60061 nvkm_ramht_hash fndecl 0-2-3 60061 &disable_so_bitmap_file_clear_bit_fndecl_60061
145200 +disable_so_radeon_ib_schedule_fndecl_60075 radeon_ib_schedule fndecl 0 60075 NULL
145201 +disable_so_sleep_cookie_addr_hi_host_cmd_ds_pcie_details_60083 sleep_cookie_addr_hi host_cmd_ds_pcie_details 0 60083 NULL
145202 +disable_so_crypto_cbc_decrypt_fndecl_60087 crypto_cbc_decrypt fndecl 0-4 60087 NULL
145203 +disable_so_calc_mode_timings_fndecl_60088 calc_mode_timings fndecl 1-2-3 60088 NULL
145204 +disable_so_jiffies_till_first_fqs_vardecl_tree_c_60090 jiffies_till_first_fqs vardecl_tree.c 0 60090 NULL
145205 +disable_so_reorder_timeout_l2tp_session_60091 reorder_timeout l2tp_session 0 60091 NULL
145206 +disable_so_ieee80211_get_noa_absent_time_fndecl_60093 ieee80211_get_noa_absent_time fndecl 0-2 60093 NULL
145207 +disable_so_vsync_offset_lo_oaktrail_timing_info_60096 vsync_offset_lo oaktrail_timing_info 0 60096 NULL
145208 +disable_so_daddr_flowidn_60098 daddr flowidn 0 60098 NULL
145209 +disable_so_mwifiex_set_mac_address_fndecl_60110 mwifiex_set_mac_address fndecl 0 60110 NULL
145210 +disable_so_xgbe_get_tstamp_time_fndecl_60114 xgbe_get_tstamp_time fndecl 0 60114 NULL
145211 +disable_so_end_seq_bictcp_60116 end_seq bictcp 0 60116 NULL
145212 +disable_so_rv770_calculate_fractional_mpll_feedback_divider_fndecl_60119 rv770_calculate_fractional_mpll_feedback_divider fndecl 1-2 60119 NULL nohasharray
145213 +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
145214 +disable_so_radeon_vm_bo_set_addr_fndecl_60122 radeon_vm_bo_set_addr fndecl 3-0 60122 NULL
145215 +disable_so_reload_jiffies_iwl_priv_60123 reload_jiffies iwl_priv 0 60123 NULL
145216 +disable_so_shdntimer_max17042_config_data_60124 shdntimer max17042_config_data 0 60124 NULL nohasharray
145217 +disable_so_timestamp_lec_arp_table_60124 timestamp lec_arp_table 0 60124 &disable_so_shdntimer_max17042_config_data_60124
145218 +disable_so_reg_duty_cycle_pm860x_backlight_data_60125 reg_duty_cycle pm860x_backlight_data 0 60125 NULL
145219 +disable_so_buff_phy_addr_amd8111e_tx_dr_60126 buff_phy_addr amd8111e_tx_dr 0 60126 NULL
145220 +disable_so_nilfs_btree_seek_key_fndecl_60131 nilfs_btree_seek_key fndecl 0-2 60131 NULL
145221 +disable_so_local_addr_mm_dma_desc_60141 local_addr mm_dma_desc 0 60141 NULL
145222 +disable_so_cmd_attr_tgid_fndecl_60158 cmd_attr_tgid fndecl 0 60158 NULL
145223 +disable_so_read_addr_qla8044_minidump_entry_queue_60166 read_addr qla8044_minidump_entry_queue 0 60166 NULL
145224 +disable_so_snd_soc_runtime_deactivate_fndecl_60170 snd_soc_runtime_deactivate fndecl 2 60170 NULL
145225 +disable_so_addr_lo_tg3_tx_buffer_desc_60173 addr_lo tg3_tx_buffer_desc 0 60173 NULL
145226 +disable_so_addr_c4iw_mm_entry_60182 addr c4iw_mm_entry 0 60182 NULL
145227 +disable_so_gid_index_ib_user_mad_hdr_60188 gid_index ib_user_mad_hdr 0 60188 NULL
145228 +disable_so_div_vnic_intr_coal_timer_info_60192 div vnic_intr_coal_timer_info 0 60192 NULL
145229 +disable_so_udf_bitmap_prealloc_blocks_fndecl_60195 udf_bitmap_prealloc_blocks fndecl 0-4-5 60195 NULL
145230 +disable_so_i_atime_nsec_ocfs2_dinode_60196 i_atime_nsec ocfs2_dinode 0 60196 NULL
145231 +disable_so_addr_buffer3_cmd_desc_type0_60201 addr_buffer3 cmd_desc_type0 0 60201 NULL
145232 +disable_so_mac_time_rtl8187b_rx_hdr_60213 mac_time rtl8187b_rx_hdr 0 60213 NULL
145233 +disable_so_regmap_read_fndecl_60217 regmap_read fndecl 0-2 60217 NULL
145234 +disable_so_oprofile_time_slice_vardecl_60220 oprofile_time_slice vardecl 0 60220 NULL
145235 +disable_so_monotonic_time_coarse_nsec_vsyscall_gtod_data_60224 monotonic_time_coarse_nsec vsyscall_gtod_data 0 60224 NULL
145236 +disable_so_toshiba_usb_sleep_music_get_fndecl_60227 toshiba_usb_sleep_music_get fndecl 0 60227 NULL
145237 +disable_so_msr_read_fndecl_60228 msr_read fndecl 0 60228 NULL
145238 +disable_so_via_set_primary_address_fndecl_60230 via_set_primary_address fndecl 1 60230 NULL
145239 +disable_so_hpfs_stop_cycles_fndecl_60236 hpfs_stop_cycles fndecl 2 60236 NULL
145240 +disable_so_cpumask_any_but_fndecl_60246 cpumask_any_but fndecl 0-2 60246 NULL
145241 +disable_so_hash_cnt_ccp_sha_req_ctx_60248 hash_cnt ccp_sha_req_ctx 0 60248 NULL
145242 +disable_so_atime_nsec_p9_iattr_dotl_60254 atime_nsec p9_iattr_dotl 0 60254 NULL
145243 +disable_so___ilog2_u32_fndecl_60257 __ilog2_u32 fndecl 0-1 60257 NULL
145244 +disable_so_it_clock_k_itimer_60276 it_clock k_itimer 0 60276 NULL
145245 +disable_so_stats_addr_vfpf_init_tlv_60282 stats_addr vfpf_init_tlv 0 60282 NULL
145246 +disable_so_zd1201_set_freq_fndecl_60293 zd1201_set_freq fndecl 0 60293 NULL
145247 +disable_so_freq_sc18is602_60297 freq sc18is602 0 60297 NULL
145248 +disable_so_imr_multiaddr_ip_mreq_source_60300 imr_multiaddr ip_mreq_source 0 60300 NULL
145249 +disable_so_skbaddr_ath5k_buf_60306 skbaddr ath5k_buf 0 60306 NULL
145250 +disable_so_bus_addr_sg_el_60307 bus_addr sg_el 0 60307 NULL
145251 +disable_so_iwl_add_beacon_time_fndecl_60324 iwl_add_beacon_time fndecl 0-4-3-2 60324 NULL
145252 +disable_so_regcache_lzo_sync_fndecl_60330 regcache_lzo_sync fndecl 0 60330 NULL
145253 +disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331 __mlx4_find_zone_by_uid_unique fndecl 2 60331 NULL nohasharray
145254 +disable_so_ucma_query_addr_fndecl_60331 ucma_query_addr fndecl 3 60331 &disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331
145255 +disable_so_nilfs_btree_commit_insert_fndecl_60335 nilfs_btree_commit_insert fndecl 4 60335 NULL
145256 +disable_so_rbtree_open_fndecl_60337 rbtree_open fndecl 0 60337 NULL
145257 +disable_so_addr_off_bfa_phy_s_60341 addr_off bfa_phy_s 0 60341 NULL
145258 +disable_so_rj54n1_set_clock_fndecl_60342 rj54n1_set_clock fndecl 0 60342 NULL nohasharray
145259 +disable_so___udelay_fndecl_60342 __udelay fndecl 1 60342 &disable_so_rj54n1_set_clock_fndecl_60342
145260 +disable_so_sysctl_llc2_p_timeout_vardecl_60348 sysctl_llc2_p_timeout vardecl 0 60348 NULL
145261 +disable_so_dwc3_ep0_set_address_fndecl_60355 dwc3_ep0_set_address fndecl 0 60355 NULL
145262 +disable_so_nla_put_msecs_fndecl_60358 nla_put_msecs fndecl 0 60358 NULL
145263 +disable_so_div_factor_fndecl_60362 div_factor fndecl 0-1 60362 NULL
145264 +disable_so_sense_busaddr_scb_60364 sense_busaddr scb 0 60364 NULL
145265 +disable_so_ufshcd_pltfrm_runtime_resume_fndecl_60367 ufshcd_pltfrm_runtime_resume fndecl 0 60367 NULL
145266 +disable_so_pixel_clock_vbe_crtc_ib_60373 pixel_clock vbe_crtc_ib 0 60373 NULL
145267 +disable_so_erst_timedout_fndecl_60378 erst_timedout fndecl 2 60378 NULL
145268 +disable_so_crypto_ecb_encrypt_fndecl_60388 crypto_ecb_encrypt fndecl 0-4 60388 NULL
145269 +disable_so_rtsx_resv_buf_addr_rtsx_pcr_60399 rtsx_resv_buf_addr rtsx_pcr 0 60399 NULL
145270 +disable_so_i2c_address_mc44s803_config_60409 i2c_address mc44s803_config 0 60409 NULL
145271 +disable_so_ath_hw_get_listen_time_fndecl_60410 ath_hw_get_listen_time fndecl 0 60410 NULL
145272 +disable_so_rpc_sockaddr2uaddr_fndecl_60418 rpc_sockaddr2uaddr fndecl 2 60418 NULL
145273 +disable_so_sys_setresgid16_fndecl_60419 sys_setresgid16 fndecl 0-1-2-3 60419 NULL
145274 +disable_so_mc_addr_inet_sock_60425 mc_addr inet_sock 0 60425 NULL
145275 +disable_so_txqueue_timer_velocity_opt_60430 txqueue_timer velocity_opt 0 60430 NULL
145276 +disable_so_set_mtrr_from_inactive_cpu_fndecl_60437 set_mtrr_from_inactive_cpu fndecl 2-3 60437 NULL
145277 +disable_so_i915_interrupt_info_fndecl_60441 i915_interrupt_info fndecl 0 60441 NULL
145278 +disable_so_bmiss_timeout_ath_beacon_config_60451 bmiss_timeout ath_beacon_config 0 60451 NULL
145279 +disable_so_callback_addr_req_60459 callback addr_req 1 60459 NULL
145280 +disable_so_vmx_compute_tsc_offset_fndecl_60461 vmx_compute_tsc_offset fndecl 0-2 60461 NULL
145281 +disable_so_ncpus_uv_rtc_timer_head_60462 ncpus uv_rtc_timer_head 0 60462 NULL
145282 +disable_so_passed_seqno_drm_vmw_fence_signaled_arg_60464 passed_seqno drm_vmw_fence_signaled_arg 0 60464 NULL
145283 +disable_so_send_signal_fndecl_60468 send_signal fndecl 0-1 60468 NULL
145284 +disable_so_isl1208_rtc_read_time_fndecl_60479 isl1208_rtc_read_time fndecl 0 60479 NULL
145285 +disable_so_cbs_dma_addr_nic_60500 cbs_dma_addr nic 0 60500 NULL
145286 +disable_so_mpihelp_divrem_fndecl_60501 mpihelp_divrem fndecl 6-0-4 60501 NULL
145287 +disable_so_branch_address_descriptor_60510 branch_address descriptor 0 60510 NULL
145288 +disable_so_hash_lock_index_stripe_head_60512 hash_lock_index stripe_head 0 60512 NULL
145289 +disable_so_brl_timeout_vardecl_keyboard_c_60524 brl_timeout vardecl_keyboard.c 0 60524 NULL
145290 +disable_so_chip_addr_dsp_image_seg_60530 chip_addr dsp_image_seg 0 60530 NULL
145291 +disable_so_test_hash_cycles_fndecl_60535 test_hash_cycles fndecl 4 60535 NULL
145292 +disable_so_dma_addr_srr_60537 dma_addr srr 0 60537 NULL
145293 +disable_so_spinfo_assoc_id_sctp_paddrinfo_60539 spinfo_assoc_id sctp_paddrinfo 0 60539 NULL
145294 +disable_so_nvkm_timer_wait_eq_fndecl_60542 nvkm_timer_wait_eq fndecl 3-4-5 60542 NULL
145295 +disable_so_eq_get_mtt_addr_fndecl_60544 eq_get_mtt_addr fndecl 0 60544 NULL
145296 +disable_so_cq_page_table_addr_lo_iscsi_kwqe_conn_offload1_60567 cq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 60567 NULL
145297 +disable_so_tk_timeout_rpc_task_60572 tk_timeout rpc_task 0 60572 NULL
145298 +disable_so_cn_printf_fndecl_60575 cn_printf fndecl 0 60575 NULL nohasharray
145299 +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
145300 +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
145301 +disable_so___xfs_btree_split_fndecl_60576 __xfs_btree_split fndecl 0 60576 NULL
145302 +disable_so_lun_atto_csmi_get_dev_addr_60579 lun atto_csmi_get_dev_addr 0 60579 NULL
145303 +disable_so_xfs_btree_block_change_owner_fndecl_60599 xfs_btree_block_change_owner fndecl 0-3 60599 NULL
145304 +disable_so_k_wm8978_pll_div_60623 k wm8978_pll_div 0 60623 NULL
145305 +disable_so_saved_clock_vardecl_cr_pll_c_60624 saved_clock vardecl_cr_pll.c 0 60624 NULL
145306 +disable_so_mapaddr_tx_ring_info_60630 mapaddr tx_ring_info 0 60630 NULL nohasharray
145307 +disable_so_derot_freq_stb0899_internal_60630 derot_freq stb0899_internal 0 60630 &disable_so_mapaddr_tx_ring_info_60630
145308 +disable_so_edx_user_regs_struct32_60635 edx user_regs_struct32 0 60635 NULL
145309 +disable_so_cgtime_signal_struct_60641 cgtime signal_struct 0 60641 NULL
145310 +disable_so_ide_timing_compute_fndecl_60642 ide_timing_compute fndecl 2 60642 NULL
145311 +disable_so_btree_read_extent_buffer_pages_fndecl_60645 btree_read_extent_buffer_pages fndecl 0-4 60645 NULL
145312 +disable_so_sys_sched_getscheduler_fndecl_60650 sys_sched_getscheduler fndecl 1-0 60650 NULL
145313 +disable_so_hpi_compander_set_decay_time_constant_fndecl_60651 hpi_compander_set_decay_time_constant fndecl 1-0 60651 NULL
145314 +disable_so_uwb_rc_addr_get_fndecl_60653 uwb_rc_addr_get fndecl 0 60653 NULL
145315 +disable_so_max_chan_time_wsm_scan_ch_60669 max_chan_time wsm_scan_ch 0 60669 NULL
145316 +disable_so_ci_otg_fsm_del_timer_fndecl_60676 ci_otg_fsm_del_timer fndecl 2 60676 NULL
145317 +disable_so_clockdelay_nt_vardecl_hfcmulti_c_60678 clockdelay_nt vardecl_hfcmulti.c 0 60678 NULL
145318 +disable_so_hsync_off_lo_lvds_dvo_timing_60681 hsync_off_lo lvds_dvo_timing 0 60681 NULL
145319 +disable_so_leaf_head_hfs_btree_60686 leaf_head hfs_btree 0 60686 NULL
145320 +disable_so_signal_user32_60695 signal user32 0 60695 NULL
145321 +disable_so_timeout_netns_frags_60708 timeout netns_frags 0 60708 NULL
145322 +disable_so_time_to_send_netem_skb_cb_60711 time_to_send netem_skb_cb 0 60711 NULL nohasharray
145323 +disable_so_ref_div_atom_clock_dividers_60711 ref_div atom_clock_dividers 0 60711 &disable_so_time_to_send_netem_skb_cb_60711
145324 +disable_so_dev_sof_uvc_clock_sample_60716 dev_sof uvc_clock_sample 0 60716 NULL
145325 +disable_so_addr_reg_musb_qh_60718 addr_reg musb_qh 0 60718 NULL nohasharray
145326 +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
145327 +disable_so_reg_clock_sx150x_789_pri_60721 reg_clock sx150x_789_pri 0 60721 NULL
145328 +disable_so___parse_nl_addr_fndecl_60734 __parse_nl_addr fndecl 0 60734 NULL
145329 +disable_so_frequency_zl10036_state_60737 frequency zl10036_state 0 60737 NULL
145330 +disable_so_acpi_sleep_state_supported_fndecl_60743 acpi_sleep_state_supported fndecl 1 60743 NULL
145331 +disable_so_put_dec_full8_fndecl_60744 put_dec_full8 fndecl 2 60744 NULL
145332 +disable_so_atkbd_interrupt_fndecl_60746 atkbd_interrupt fndecl 2 60746 NULL
145333 +disable_so_signal_station_info_60755 signal station_info 0 60755 NULL
145334 +disable_so_r15_kvm_regs_60757 r15 kvm_regs 0 60757 NULL
145335 +disable_so_tx_dma_addr_sh_msiof_spi_priv_60773 tx_dma_addr sh_msiof_spi_priv 0 60773 NULL
145336 +disable_so_handler_acpi_object_addr_handler_60775 handler acpi_object_addr_handler 0-2-3 60775 NULL nohasharray
145337 +disable_so_sctp_bind_addr_init_fndecl_60775 sctp_bind_addr_init fndecl 2 60775 &disable_so_handler_acpi_object_addr_handler_60775
145338 +disable_so_hfsplus_calc_btree_clump_size_fndecl_60777 hfsplus_calc_btree_clump_size fndecl 0-1-2-3 60777 NULL
145339 +disable_so_xc2028_set_analog_freq_fndecl_60787 xc2028_set_analog_freq fndecl 0 60787 NULL
145340 +disable_so_reg_w_val_fndecl_60792 reg_w_val fndecl 2-3 60792 NULL
145341 +disable_so_mlx4_mtt_addr_fndecl_60804 mlx4_mtt_addr fndecl 0 60804 NULL
145342 +disable_so_kstrtos16_fndecl_60808 kstrtos16 fndecl 0 60808 NULL
145343 +disable_so_demod_address_bcm3510_config_60810 demod_address bcm3510_config 0 60810 NULL
145344 +disable_so_xt_addr_cmp_fndecl_60817 xt_addr_cmp fndecl 4 60817 NULL
145345 +disable_so_kstrtou16_fndecl_60828 kstrtou16 fndecl 0 60828 NULL
145346 +disable_so_crypto_cbc_decrypt_segment_fndecl_60829 crypto_cbc_decrypt_segment fndecl 0 60829 NULL
145347 +disable_so_cs_last_clocksource_60836 cs_last clocksource 0 60836 NULL
145348 +disable_so_decrypt_blkcipher_alg_60844 decrypt blkcipher_alg 4 60844 NULL
145349 +disable_so_demod_address_drxd_config_60850 demod_address drxd_config 0 60850 NULL
145350 +disable_so_rs_bound_addr_rds_sock_60851 rs_bound_addr rds_sock 0 60851 NULL
145351 +disable_so_pcxhr_sub_set_clock_fndecl_60853 pcxhr_sub_set_clock fndecl 2-0 60853 NULL nohasharray
145352 +disable_so_inet6_dump_ifmcaddr_fndecl_60853 inet6_dump_ifmcaddr fndecl 0 60853 &disable_so_pcxhr_sub_set_clock_fndecl_60853
145353 +disable_so_mpll_ref_div_rv6xx_power_info_60865 mpll_ref_div rv6xx_power_info 0 60865 NULL
145354 +disable_so_clk_mul_sdhci_host_60866 clk_mul sdhci_host 0 60866 NULL
145355 +disable_so_cryptd_hash_finup_enqueue_fndecl_60873 cryptd_hash_finup_enqueue fndecl 0 60873 NULL
145356 +disable_so_pc87360_autodiv_fndecl_60877 pc87360_autodiv fndecl 2 60877 NULL nohasharray
145357 +disable_so_si_get_gpu_clock_counter_fndecl_60877 si_get_gpu_clock_counter fndecl 0 60877 &disable_so_pc87360_autodiv_fndecl_60877
145358 +disable_so_dma_addr___vxge_hw_blockpool_entry_60895 dma_addr __vxge_hw_blockpool_entry 0 60895 NULL
145359 +disable_so_write32_ssb_bus_ops_60906 write32 ssb_bus_ops 3 60906 NULL
145360 +disable_so_bfa_fcs_lport_ns_process_gidft_pids_fndecl_60914 bfa_fcs_lport_ns_process_gidft_pids fndecl 3 60914 NULL
145361 +disable_so_hash_walk_next_fndecl_60955 hash_walk_next fndecl 0 60955 NULL
145362 +disable_so_tm_min_rtc_time_60965 tm_min rtc_time 0 60965 NULL
145363 +disable_so_m48t86_rtc_read_time_fndecl_60966 m48t86_rtc_read_time fndecl 0 60966 NULL
145364 +disable_so_alloc_gen8_temp_bitmaps_fndecl_60972 alloc_gen8_temp_bitmaps fndecl 0 60972 NULL
145365 +disable_so_max_dwell_time_delta_conf_sched_scan_settings_60976 max_dwell_time_delta conf_sched_scan_settings 0 60976 NULL
145366 +disable_so_src_addr_filter_ipv4_5tuple_60977 src_addr filter_ipv4_5tuple 0 60977 NULL nohasharray
145367 +disable_so_intel_freq_opcode_fndecl_60977 intel_freq_opcode fndecl 0-2 60977 &disable_so_src_addr_filter_ipv4_5tuple_60977
145368 +disable_so_btree_pages_cache_set_60979 btree_pages cache_set 0 60979 NULL
145369 +disable_so_pop_time_snd_soc_card_60984 pop_time snd_soc_card 0 60984 NULL
145370 +disable_so_v4l2_i2c_subdev_addr_fndecl_60994 v4l2_i2c_subdev_addr fndecl 0 60994 NULL
145371 +disable_so_find_and_set_predefined_video_timings_fndecl_61004 find_and_set_predefined_video_timings fndecl 2 61004 NULL
145372 +disable_so_bus_ipr_res_addr_61007 bus ipr_res_addr 0 61007 NULL
145373 +disable_so_t2timer_lapb_parms_struct_61011 t2timer lapb_parms_struct 0 61011 NULL nohasharray
145374 +disable_so_size_log2_t3_cq_61011 size_log2 t3_cq 0 61011 &disable_so_t2timer_lapb_parms_struct_61011
145375 +disable_so_virtual_apic_page_addr_vmcs12_61020 virtual_apic_page_addr vmcs12 0 61020 NULL
145376 +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
145377 +disable_so_first_time_batadv_tt_roam_node_61055 first_time batadv_tt_roam_node 0 61055 NULL
145378 +disable_so_blank_time_evergreen_wm_params_61058 blank_time evergreen_wm_params 0 61058 NULL
145379 +disable_so_crypto_hash_walk_done_fndecl_61061 crypto_hash_walk_done fndecl 0-2 61061 NULL
145380 +disable_so_qi_rtbtimelimit_xfs_quotainfo_61067 qi_rtbtimelimit xfs_quotainfo 0 61067 NULL
145381 +disable_so_dma_addr_freelQ_61069 dma_addr freelQ 0 61069 NULL
145382 +disable_so_gateway_value_addr_wil_fw_record_gateway_data_61071 gateway_value_addr wil_fw_record_gateway_data 0 61071 NULL
145383 +disable_so_ndisc_opt_addr_space_fndecl_61076 ndisc_opt_addr_space fndecl 0 61076 NULL nohasharray
145384 +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
145385 +disable_so_wl1251_translate_reg_addr_fndecl_61077 wl1251_translate_reg_addr fndecl 0-2 61077 NULL
145386 +disable_so_irq_set_handler_data_fndecl_61096 irq_set_handler_data fndecl 1 61096 NULL nohasharray
145387 +disable_so_be64_add_cpu_fndecl_61096 be64_add_cpu fndecl 2 61096 &disable_so_irq_set_handler_data_fndecl_61096
145388 +disable_so_find_first_extent_bit_state_fndecl_61098 find_first_extent_bit_state fndecl 2 61098 NULL
145389 +disable_so_confirm_addr_indev_fndecl_61106 confirm_addr_indev fndecl 0 61106 NULL
145390 +disable_so_ci_otg_init_timers_fndecl_61122 ci_otg_init_timers fndecl 0 61122 NULL
145391 +disable_so_rangehigh_v4l2_frequency_band_61125 rangehigh v4l2_frequency_band 0 61125 NULL
145392 +disable_so_rdb_PartitionList_RigidDiskBlock_61126 rdb_PartitionList RigidDiskBlock 0 61126 NULL
145393 +disable_so_qat_alg_ablkcipher_setkey_fndecl_61127 qat_alg_ablkcipher_setkey fndecl 3 61127 NULL
145394 +disable_so_ath6kl_cfg80211_deepsleep_suspend_fndecl_61128 ath6kl_cfg80211_deepsleep_suspend fndecl 0 61128 NULL
145395 +disable_so_phase_seg2_can_bittiming_61132 phase_seg2 can_bittiming 0 61132 NULL
145396 +disable_so_mii_address_fndecl_61157 mii_address fndecl 1-2 61157 NULL
145397 +disable_so_dent_key_init_hash_fndecl_61159 dent_key_init_hash fndecl 3-4 61159 NULL
145398 +disable_so__drbd_send_uuids_fndecl_61164 _drbd_send_uuids fndecl 0 61164 NULL
145399 +disable_so_addr_gf100_gr_mmio_61167 addr gf100_gr_mmio 0 61167 NULL
145400 +disable_so_xfrm_dst_hash_fndecl_61174 xfrm_dst_hash fndecl 0-4-5 61174 NULL
145401 +disable_so_i2c_smbus_read_i2c_block_data_fndecl_61176 i2c_smbus_read_i2c_block_data fndecl 0-2-3 61176 NULL
145402 +disable_so_mthca_HW2SW_SRQ_fndecl_61199 mthca_HW2SW_SRQ fndecl 0-3 61199 NULL
145403 +disable_so_bit_fields_len_ocrdma_srq_61200 bit_fields_len ocrdma_srq 0 61200 NULL
145404 +disable_so_cpuidle_add_device_sysfs_fndecl_61204 cpuidle_add_device_sysfs fndecl 0 61204 NULL
145405 +disable_so_avail_snd_rawmidi_runtime_61205 avail snd_rawmidi_runtime 0 61205 NULL
145406 +disable_so_fib_info_hashfn_fndecl_61213 fib_info_hashfn fndecl 0 61213 NULL
145407 +disable_so_zd_usb_iowrite16v_async_end_fndecl_61215 zd_usb_iowrite16v_async_end fndecl 0 61215 NULL nohasharray
145408 +disable_so_shash_ahash_mcryptd_update_fndecl_61215 shash_ahash_mcryptd_update fndecl 0 61215 &disable_so_zd_usb_iowrite16v_async_end_fndecl_61215
145409 +disable_so_buf_addr_mlx4_ib_create_srq_61216 buf_addr mlx4_ib_create_srq 0 61216 NULL
145410 +disable_so_post_divider_panel_info_61220 post_divider panel_info 0 61220 NULL
145411 +disable_so_wrmsr_safe_regs_fndecl_61235 wrmsr_safe_regs fndecl 0 61235 NULL
145412 +disable_so_get_stats_jiffies_smsdvb_client_t_61240 get_stats_jiffies smsdvb_client_t 0 61240 NULL
145413 +disable_so_ebitmap_next_positive_fndecl_61248 ebitmap_next_positive fndecl 0-3 61248 NULL
145414 +disable_so_ieee80211_aes_gcm_decrypt_fndecl_61254 ieee80211_aes_gcm_decrypt fndecl 0-5 61254 NULL
145415 +disable_so_sprintf_string_fndecl_61260 sprintf_string fndecl 0 61260 NULL nohasharray
145416 +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
145417 +disable_so_be32_to_cpu_array_fndecl_61277 be32_to_cpu_array fndecl 3 61277 NULL
145418 +disable_so_ds_tss_segment_16_61290 ds tss_segment_16 0 61290 NULL
145419 +disable_so_start_delay_ns_cc10001_adc_device_61303 start_delay_ns cc10001_adc_device 0 61303 NULL
145420 +disable_so_data_addr_nvbios_pmuR_61307 data_addr nvbios_pmuR 0 61307 NULL
145421 +disable_so_time_stamp_il_traffic_load_61308 time_stamp il_traffic_load 0 61308 NULL nohasharray
145422 +disable_so_crypto_ccm_encrypt_done_fndecl_61308 crypto_ccm_encrypt_done fndecl 2 61308 &disable_so_time_stamp_il_traffic_load_61308
145423 +disable_so_max_pixclock_tdfx_par_61310 max_pixclock tdfx_par 0 61310 NULL
145424 +disable_so_nilfs_btree_node_get_key_fndecl_61317 nilfs_btree_node_get_key fndecl 0-2 61317 NULL
145425 +disable_so_sk_forced_wmem_schedule_fndecl_61322 sk_forced_wmem_schedule fndecl 2 61322 NULL
145426 +disable_so_rxhash_tun_flow_entry_61325 rxhash tun_flow_entry 0 61325 NULL
145427 +disable_so___spin_time_accum_fndecl_61328 __spin_time_accum fndecl 1 61328 NULL
145428 +disable_so_iscsi_nacl_attrib_store_nopin_timeout_fndecl_61329 iscsi_nacl_attrib_store_nopin_timeout fndecl 0-3 61329 NULL
145429 +disable_so_dqb_itime_v1_disk_dqblk_61340 dqb_itime v1_disk_dqblk 0 61340 NULL nohasharray
145430 +disable_so_rds_iw_laddr_check_fndecl_61340 rds_iw_laddr_check fndecl 0-1 61340 &disable_so_dqb_itime_v1_disk_dqblk_61340
145431 +disable_so_pcibios_retrieve_fw_addr_fndecl_61341 pcibios_retrieve_fw_addr fndecl 0-2 61341 NULL
145432 +disable_so_iwl_scan_cancel_timeout_fndecl_61342 iwl_scan_cancel_timeout fndecl 2 61342 NULL
145433 +disable_so_m41t80_sysfs_set_sqwfreq_fndecl_61345 m41t80_sysfs_set_sqwfreq fndecl 0-4 61345 NULL
145434 +disable_so_atl1_hash_mc_addr_fndecl_61348 atl1_hash_mc_addr fndecl 0 61348 NULL
145435 +disable_so_daddr_irda_device_info_61349 daddr irda_device_info 0 61349 NULL
145436 +disable_so_read_addr_qla82xx_md_entry_rdmem_61354 read_addr qla82xx_md_entry_rdmem 0 61354 NULL
145437 +disable_so_wm8990_set_dai_clkdiv_fndecl_61357 wm8990_set_dai_clkdiv fndecl 3 61357 NULL
145438 +disable_so_btrfs_delete_delayed_dir_index_fndecl_61358 btrfs_delete_delayed_dir_index fndecl 0-4 61358 NULL
145439 +disable_so_disable_irq_fndecl_61372 disable_irq fndecl 1 61372 NULL
145440 +disable_so_parport_ieee1284_epp_read_addr_fndecl_61382 parport_ieee1284_epp_read_addr fndecl 0 61382 NULL nohasharray
145441 +disable_so_num_to_str_fndecl_61382 num_to_str fndecl 0-3-2 61382 &disable_so_parport_ieee1284_epp_read_addr_fndecl_61382
145442 +disable_so_period_timeriomem_rng_data_61395 period timeriomem_rng_data 0 61395 NULL
145443 +disable_so_crypto_gcm_setkey_done_fndecl_61396 crypto_gcm_setkey_done fndecl 2 61396 NULL
145444 +disable_so_ocfs2_journal_addressable_fndecl_61399 ocfs2_journal_addressable fndecl 0 61399 NULL
145445 +disable_so_smsdvb_read_signal_strength_fndecl_61408 smsdvb_read_signal_strength fndecl 0 61408 NULL
145446 +disable_so_flash_busaddr_ips_ha_61415 flash_busaddr ips_ha 0 61415 NULL
145447 +disable_so_enable_time_us_tps_info_61417 enable_time_us tps_info 0 61417 NULL
145448 +disable_so_mtrr_chunk_size_vardecl_cleanup_c_61418 mtrr_chunk_size vardecl_cleanup.c 0 61418 NULL
145449 +disable_so_show_dock_uid_fndecl_61419 show_dock_uid fndecl 0 61419 NULL
145450 +disable_so_get_pageblock_bitmap_fndecl_61435 get_pageblock_bitmap fndecl 2 61435 NULL
145451 +disable_so_s5p_jpeg_runtime_resume_fndecl_61449 s5p_jpeg_runtime_resume fndecl 0 61449 NULL nohasharray
145452 +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
145453 +disable_so_rsp_dmaaddr_fw_fcoe_els_ct_wr_61457 rsp_dmaaddr fw_fcoe_els_ct_wr 0 61457 NULL
145454 +disable_so_pcsp_timer_update_fndecl_61473 pcsp_timer_update fndecl 0 61473 NULL
145455 +disable_so_i8042_start_time_vardecl_i8042_h_61479 i8042_start_time vardecl_i8042.h 0 61479 NULL nohasharray
145456 +disable_so_insert_into_bitmap_fndecl_61479 insert_into_bitmap fndecl 0 61479 &disable_so_i8042_start_time_vardecl_i8042_h_61479
145457 +disable_so_xclkmaxrasdelay_pll_ct_61489 xclkmaxrasdelay pll_ct 0 61489 NULL
145458 +disable_so_ioa_cb_bus_addr_pmcraid_cmd_61490 ioa_cb_bus_addr pmcraid_cmd 0 61490 NULL
145459 +disable_so_sis_ata16_program_timings_fndecl_61491 sis_ata16_program_timings fndecl 2 61491 NULL
145460 +disable_so_read_addr_stride___queue_61493 read_addr_stride __queue 0 61493 NULL
145461 +disable_so_w1_timeout_vardecl_w1_c_61497 w1_timeout vardecl_w1.c 0 61497 NULL nohasharray
145462 +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
145463 +disable_so_split_timeout_lo_fw_card_61499 split_timeout_lo fw_card 0 61499 NULL
145464 +disable_so_nla_find_fndecl_61508 nla_find fndecl 2 61508 NULL
145465 +disable_so_timer_period_frag_pcxhr_stream_61512 timer_period_frag pcxhr_stream 0 61512 NULL
145466 +disable_so_addr_hi_tg3_rx_buffer_desc_61522 addr_hi tg3_rx_buffer_desc 0 61522 NULL
145467 +disable_so_i_uid_ext3_inode_61529 i_uid ext3_inode 0 61529 NULL nohasharray
145468 +disable_so_r30_val_fc2580_freq_regs_61529 r30_val fc2580_freq_regs 0 61529 &disable_so_i_uid_ext3_inode_61529
145469 +disable_so_i_delayed_blks_xfs_inode_61540 i_delayed_blks xfs_inode 0 61540 NULL nohasharray
145470 +disable_so_aes_set_key_fndecl_61540 aes_set_key fndecl 0-3 61540 &disable_so_i_delayed_blks_xfs_inode_61540
145471 +disable_so_loc_addr_nes_cm_listener_61541 loc_addr nes_cm_listener 0 61541 NULL
145472 +disable_so_addr_w6692_hw_61546 addr w6692_hw 0 61546 NULL
145473 +disable_so_mvs_write_port_vsr_addr_fndecl_61549 mvs_write_port_vsr_addr fndecl 3 61549 NULL
145474 +disable_so_s_addr_per_block_bits_ext3_sb_info_61550 s_addr_per_block_bits ext3_sb_info 0 61550 NULL
145475 +disable_so_o2net_set_nodelay_fndecl_61551 o2net_set_nodelay fndecl 0 61551 NULL
145476 +disable_so_mlx5_ib_query_gid_fndecl_61553 mlx5_ib_query_gid fndecl 2-3 61553 NULL
145477 +disable_so_pdl_paddr_hp100_ring_61561 pdl_paddr hp100_ring 0 61561 NULL
145478 +disable_so_pci_bus_read_dev_vendor_id_fndecl_61562 pci_bus_read_dev_vendor_id fndecl 2 61562 NULL
145479 +disable_so_fs16_to_cpu_fndecl_61568 fs16_to_cpu fndecl 0-2 61568 NULL
145480 +disable_so_prandom_u32_state_fndecl_61582 prandom_u32_state fndecl 0 61582 NULL
145481 +disable_so_high_bits_word_at_a_time_61595 high_bits word_at_a_time 0 61595 NULL
145482 +disable_so_broadsheet_spiflash_op_on_address_fndecl_61596 broadsheet_spiflash_op_on_address fndecl 0-2-3 61596 NULL
145483 +disable_so_device_create_fndecl_61600 device_create fndecl 3 61600 NULL
145484 +disable_so_mce_wrmsrl_fndecl_61602 mce_wrmsrl fndecl 2 61602 NULL
145485 +disable_so_jiffies_to_msecs_fndecl_61603 jiffies_to_msecs fndecl 0-1 61603 NULL
145486 +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
145487 +disable_so_remote_cm_response_timeout_ib_cm_req_param_61617 remote_cm_response_timeout ib_cm_req_param 0 61617 NULL
145488 +disable_so_i_ctime_ocfs2_dinode_61629 i_ctime ocfs2_dinode 0 61629 NULL
145489 +disable_so_uac_clock_selector_set_val_fndecl_61640 uac_clock_selector_set_val fndecl 2-0 61640 NULL
145490 +disable_so_throtl_schedule_pending_timer_fndecl_61645 throtl_schedule_pending_timer fndecl 2 61645 NULL
145491 +disable_so_t_nsec_xfs_ictimestamp_61648 t_nsec xfs_ictimestamp 0 61648 NULL
145492 +disable_so_hashbits_rpc_cred_cache_61651 hashbits rpc_cred_cache 0 61651 NULL
145493 +disable_so_iscsi_nacl_attrib_show_nopin_response_timeout_fndecl_61655 iscsi_nacl_attrib_show_nopin_response_timeout fndecl 0 61655 NULL
145494 +disable_so_address_SG64ENTRY_61656 address SG64ENTRY 0 61656 NULL
145495 +disable_so_cputime_advance_fndecl_61661 cputime_advance fndecl 2 61661 NULL
145496 +disable_so_ts_delay_pressure_vardecl_ucb1400_ts_c_61663 ts_delay_pressure vardecl_ucb1400_ts.c 0 61663 NULL
145497 +disable_so_mapaddr_skge_element_61673 mapaddr skge_element 0 61673 NULL
145498 +disable_so_resetcal_timer_ath_ani_61692 resetcal_timer ath_ani 0 61692 NULL
145499 +disable_so_btrfs_check_uuid_tree_entry_fndecl_61694 btrfs_check_uuid_tree_entry fndecl 4 61694 NULL
145500 +disable_so_tuner_addr_tm6000_core_61695 tuner_addr tm6000_core 0 61695 NULL
145501 +disable_so_last_msgtime_vardecl_ide_io_c_61702 last_msgtime vardecl_ide-io.c 0 61702 NULL
145502 +disable_so_hpi_sample_clock_get_auto_fndecl_61704 hpi_sample_clock_get_auto fndecl 1-0 61704 NULL
145503 +disable_so_ext4_find_delayed_extent_fndecl_61709 ext4_find_delayed_extent fndecl 0 61709 NULL
145504 +disable_so_freq_offset_khz_uhf_dib0090_config_61716 freq_offset_khz_uhf dib0090_config 0 61716 NULL
145505 +disable_so_sha1_generic_block_fn_fndecl_61724 sha1_generic_block_fn fndecl 3 61724 NULL
145506 +disable_so_xc4000_get_signal_fndecl_61727 xc4000_get_signal fndecl 0 61727 NULL
145507 +disable_so_vf_addr_hi_bnx2x_vf_mbx_61734 vf_addr_hi bnx2x_vf_mbx 0 61734 NULL nohasharray
145508 +enable_so_exit_info_2_vmcb_control_area_61734 exit_info_2 vmcb_control_area 0 61734 &disable_so_vf_addr_hi_bnx2x_vf_mbx_61734
145509 +disable_so_pcxhr_update_timer_pos_fndecl_61736 pcxhr_update_timer_pos fndecl 3 61736 NULL nohasharray
145510 +disable_so_adis16480_set_filter_freq_fndecl_61736 adis16480_set_filter_freq fndecl 0 61736 &disable_so_pcxhr_update_timer_pos_fndecl_61736 nohasharray
145511 +disable_so_xfs_daddr_to_agbno_fndecl_61736 xfs_daddr_to_agbno fndecl 0-2 61736 &disable_so_adis16480_set_filter_freq_fndecl_61736
145512 +disable_so_stb0899_calc_derot_time_fndecl_61753 stb0899_calc_derot_time fndecl 0-1 61753 NULL nohasharray
145513 +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
145514 +disable_so_ssb_calc_clock_rate_fndecl_61754 ssb_calc_clock_rate fndecl 0-3-2 61754 NULL nohasharray
145515 +disable_so_seq_amdgpu_fence_61754 seq amdgpu_fence 0 61754 &disable_so_ssb_calc_clock_rate_fndecl_61754
145516 +disable_so_disable_irq_nosync_fndecl_61758 disable_irq_nosync fndecl 1 61758 NULL
145517 +disable_so_nft_dump_register_fndecl_61766 nft_dump_register fndecl 0 61766 NULL
145518 +disable_so_file_remove_suid_fndecl_61769 file_remove_suid fndecl 0 61769 NULL
145519 +disable_so_ltr501_als_write_samp_freq_fndecl_61771 ltr501_als_write_samp_freq fndecl 0 61771 NULL
145520 +disable_so_pixclock_my_timming_61772 pixclock my_timming 0 61772 NULL
145521 +disable_so_rtl818x_iowrite8_fndecl_61778 rtl818x_iowrite8 fndecl 3 61778 NULL
145522 +disable_so_bql_show_hold_time_fndecl_61783 bql_show_hold_time fndecl 0 61783 NULL
145523 +disable_so_db_addr_mlx4_ib_create_srq_61795 db_addr mlx4_ib_create_srq 0 61795 NULL
145524 +disable_so_lgdt3306a_sleep_fndecl_61796 lgdt3306a_sleep fndecl 0 61796 NULL
145525 +disable_so_cpuid_nent_kvm_vcpu_arch_61798 cpuid_nent kvm_vcpu_arch 0 61798 NULL
145526 +disable_so_addr_hdac_device_61804 addr hdac_device 0 61804 NULL
145527 +disable_so_center_freq_stb0899_internal_61821 center_freq stb0899_internal 0 61821 NULL
145528 +disable_so_addr_cqicb_61823 addr cqicb 0 61823 NULL
145529 +disable_so_oprofile_hrtimer_setup_fndecl_61824 oprofile_hrtimer_setup fndecl 0 61824 NULL
145530 +disable_so_tvaudio_addr_em28xx_board_61828 tvaudio_addr em28xx_board 0 61828 NULL
145531 +disable_so__ocrdma_pd_mgr_get_bitmap_fndecl_61833 _ocrdma_pd_mgr_get_bitmap fndecl 0 61833 NULL
145532 +disable_so_rd08_nvkm_ofuncs_61836 rd08 nvkm_ofuncs 0-2 61836 NULL
145533 +disable_so_clipped_freq_cpufreq_cooling_device_61837 clipped_freq cpufreq_cooling_device 0 61837 NULL
145534 +disable_so_config_addend_stmmac_hwtimestamp_61840 config_addend stmmac_hwtimestamp 2 61840 NULL
145535 +disable_so_crypto_authenc_givencrypt_fndecl_61841 crypto_authenc_givencrypt fndecl 0 61841 NULL
145536 +disable_so_freq_table_get_index_fndecl_61842 freq_table_get_index fndecl 2 61842 NULL
145537 +disable_so_qla2x00_issue_iocb_timeout_fndecl_61848 qla2x00_issue_iocb_timeout fndecl 0-3-5 61848 NULL
145538 +disable_so_afs_vlocation_timeout_vardecl_vlocation_c_61850 afs_vlocation_timeout vardecl_vlocation.c 0 61850 NULL
145539 +disable_so_dev_addr__drm_via_descriptor_61860 dev_addr _drm_via_descriptor 0 61860 NULL
145540 +disable_so_inet_confirm_addr_fndecl_61869 inet_confirm_addr fndecl 0 61869 NULL nohasharray
145541 +enable_so__eip_x86_emulate_ctxt_61869 _eip x86_emulate_ctxt 0 61869 &disable_so_inet_confirm_addr_fndecl_61869
145542 +disable_so_ethtool_get_perm_addr_fndecl_61870 ethtool_get_perm_addr fndecl 0 61870 NULL
145543 +disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876 sctp_ulpevent_make_peer_addr_change fndecl 6 61876 NULL nohasharray
145544 +disable_so_calc_lanman_hash_fndecl_61876 calc_lanman_hash fndecl 0 61876 &disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876
145545 +disable_so_init_blkcipher_desc_fndecl_61877 init_blkcipher_desc fndecl 0-3-5 61877 NULL
145546 +disable_so_address_acpi_pci_routing_table_61886 address acpi_pci_routing_table 0 61886 NULL
145547 +disable_so_tx_tone_freq_b43_phy_lp_61888 tx_tone_freq b43_phy_lp 0 61888 NULL
145548 +disable_so___ip6addrlbl_match_fndecl_61894 __ip6addrlbl_match fndecl 4-5 61894 NULL
145549 +disable_so_irq_domain_free_irqs_top_fndecl_61898 irq_domain_free_irqs_top fndecl 2-3 61898 NULL
145550 +disable_so_freq_tm6000_core_61902 freq tm6000_core 0 61902 NULL
145551 +disable_so_addr_lo_ocrdma_sge_61909 addr_lo ocrdma_sge 0 61909 NULL
145552 +disable_so_ctlr_ka_time_fcoe_ctlr_61922 ctlr_ka_time fcoe_ctlr 0 61922 NULL
145553 +disable_so_mcryptd_hash_final_enqueue_fndecl_61941 mcryptd_hash_final_enqueue fndecl 0 61941 NULL
145554 +disable_so_dn_match_addr_fndecl_61944 dn_match_addr fndecl 1 61944 NULL
145555 +disable_so_mac_time_b43legacy_rxhdr_fw3_61952 mac_time b43legacy_rxhdr_fw3 0 61952 NULL nohasharray
145556 +disable_so_force_static_address_write_fndecl_61952 force_static_address_write fndecl 3 61952 &disable_so_mac_time_b43legacy_rxhdr_fw3_61952
145557 +disable_so_delay_adp5588_kpad_61963 delay adp5588_kpad 0 61963 NULL
145558 +disable_so_cg_time_ufs_cylinder_group_61969 cg_time ufs_cylinder_group 0 61969 NULL
145559 +disable_so_pll_freq_ene_device_61971 pll_freq ene_device 0 61971 NULL
145560 +disable_so_iscsit_na_random_datain_seq_offsets_fndecl_61975 iscsit_na_random_datain_seq_offsets fndecl 0 61975 NULL
145561 +disable_so_addr_dme1737_data_61978 addr dme1737_data 0 61978 NULL
145562 +disable_so_crypto_probing_notify_fndecl_61991 crypto_probing_notify fndecl 0-1 61991 NULL
145563 +disable_so_offset_fw_address_handler_61992 offset fw_address_handler 0 61992 NULL
145564 +disable_so_vsel_addr_palmas_regs_info_61997 vsel_addr palmas_regs_info 0 61997 NULL
145565 +disable_so_last_time_ecne_reduced_sctp_transport_61998 last_time_ecne_reduced sctp_transport 0 61998 NULL
145566 +disable_so_units_sprintf_fndecl_62002 units_sprintf fndecl 0 62002 NULL
145567 +disable_so_gpu_addr_radeon_uvd_62004 gpu_addr radeon_uvd 0 62004 NULL
145568 +disable_so_adc_freq_stmpe_touch_62006 adc_freq stmpe_touch 0 62006 NULL
145569 +disable_so_dosr_aic31xx_rate_divs_62015 dosr aic31xx_rate_divs 0 62015 NULL
145570 +disable_so_tsc_khz_vardecl_62031 tsc_khz vardecl 0 62031 NULL
145571 +disable_so_accounting_timestamp_dev_pm_info_62040 accounting_timestamp dev_pm_info 0 62040 NULL nohasharray
145572 +disable_so_sensor_addr_mcam_camera_62040 sensor_addr mcam_camera 0 62040 &disable_so_accounting_timestamp_dev_pm_info_62040
145573 +disable_so___sw_hweight16_fndecl_62046 __sw_hweight16 fndecl 1-0 62046 NULL
145574 +disable_so_st_atime_stat_62052 st_atime stat 0 62052 NULL nohasharray
145575 +disable_so_dsi_pll_div_dsi_mnp_62052 dsi_pll_div dsi_mnp 0 62052 &disable_so_st_atime_stat_62052
145576 +disable_so_ath5k_hw_write_ofdm_timings_fndecl_62063 ath5k_hw_write_ofdm_timings fndecl 0 62063 NULL
145577 +disable_so_addr_dn_neigh_62067 addr dn_neigh 0 62067 NULL
145578 +disable_so_small_buf_q_alloc_phy_addr_ql3_adapter_62071 small_buf_q_alloc_phy_addr ql3_adapter 0 62071 NULL
145579 +disable_so_in6_dump_addrs_fndecl_62073 in6_dump_addrs fndecl 0 62073 NULL nohasharray
145580 +disable_so_toggle_hw_mce_inject_fndecl_62073 toggle_hw_mce_inject fndecl 0-1 62073 &disable_so_in6_dump_addrs_fndecl_62073
145581 +disable_so_addr_mthca_data_seg_62083 addr mthca_data_seg 0 62083 NULL
145582 +disable_so_err_interrupt_orion_mdio_dev_62099 err_interrupt orion_mdio_dev 0 62099 NULL
145583 +disable_so_callback_snd_timer_instance_62100 callback snd_timer_instance 2-3 62100 NULL
145584 +disable_so_acc_jiffies_ati_remote_62109 acc_jiffies ati_remote 0 62109 NULL
145585 +disable_so_regcache_rbtree_drop_fndecl_62111 regcache_rbtree_drop fndecl 2-3 62111 NULL
145586 +disable_so_post_div_radeon_pll_62120 post_div radeon_pll 0 62120 NULL
145587 +disable_so_local_addr_rds_atomic_args_62123 local_addr rds_atomic_args 0 62123 NULL
145588 +disable_so_rds_tcp_laddr_check_fndecl_62131 rds_tcp_laddr_check fndecl 1 62131 NULL
145589 +disable_so_sock_get_timestampns_fndecl_62145 sock_get_timestampns fndecl 0 62145 NULL
145590 +disable_so_beacon_time_stamp_il_rx_phy_res_62147 beacon_time_stamp il_rx_phy_res 0 62147 NULL
145591 +disable_so_panel_power_up_delay_cdv_intel_dp_62150 panel_power_up_delay cdv_intel_dp 0 62150 NULL
145592 +disable_so_dma_addr_solo_p2m_desc_62151 dma_addr solo_p2m_desc 0 62151 NULL
145593 +disable_so_hangcheck_tick_vardecl_hangcheck_timer_c_62154 hangcheck_tick vardecl_hangcheck-timer.c 0 62154 NULL nohasharray
145594 +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
145595 +disable_so_xhci_call_host_update_timeout_for_endpoint_fndecl_62155 xhci_call_host_update_timeout_for_endpoint fndecl 0 62155 NULL
145596 +disable_so_read_block_bitmap_fndecl_62158 read_block_bitmap fndecl 2 62158 NULL
145597 +disable_so_ceph_aes_decrypt_fndecl_62159 ceph_aes_decrypt fndecl 2-6 62159 NULL
145598 +disable_so_mpll_func_cntl_2_si_clock_registers_62165 mpll_func_cntl_2 si_clock_registers 0 62165 NULL
145599 +disable_so_s01_img_ir_timing_regvals_62168 s01 img_ir_timing_regvals 0 62168 NULL
145600 +disable_so_xmit_hashtype_vardecl_bond_main_c_62175 xmit_hashtype vardecl_bond_main.c 0 62175 NULL
145601 +disable_so_seconds_v4l2_timecode_62177 seconds v4l2_timecode 0 62177 NULL
145602 +disable_so_dma_addr_t3_wq_62178 dma_addr t3_wq 0 62178 NULL
145603 +disable_so_cryptd_hash_export_fndecl_62185 cryptd_hash_export fndecl 0 62185 NULL
145604 +disable_so_get_qam_signal_to_noise_fndecl_62191 get_qam_signal_to_noise fndecl 0 62191 NULL
145605 +disable_so_dp_daddr_rds_ib_connect_private_62196 dp_daddr rds_ib_connect_private 0 62196 NULL
145606 +disable_so_max77693_muic_set_debounce_time_fndecl_62200 max77693_muic_set_debounce_time fndecl 0-2 62200 NULL
145607 +disable_so_bch_time_stats_update_fndecl_62214 bch_time_stats_update fndecl 2 62214 NULL
145608 +disable_so_t4_set_addr_hash_fndecl_62216 t4_set_addr_hash fndecl 0-2-3 62216 NULL
145609 +disable_so_proc_disconnectsignal_compat_fndecl_62217 proc_disconnectsignal_compat fndecl 0 62217 NULL
145610 +disable_so_rtsx_pci_switch_clock_fndecl_62219 rtsx_pci_switch_clock fndecl 2-0 62219 NULL
145611 +disable_so_addr_chip_data_62229 addr chip_data 0 62229 NULL
145612 +disable_so_timer_abs_periods_pcxhr_stream_62230 timer_abs_periods pcxhr_stream 0 62230 NULL
145613 +disable_so_tty_ldisc_lock_pair_timeout_fndecl_62232 tty_ldisc_lock_pair_timeout fndecl 3 62232 NULL
145614 +disable_so_fd_pppol2tpv3in6_addr_62243 fd pppol2tpv3in6_addr 0 62243 NULL
145615 +disable_so_hrtimer_start_range_ns_fndecl_62253 hrtimer_start_range_ns fndecl 3 62253 NULL
145616 +disable_so_r9_kvm_regs_62259 r9 kvm_regs 0 62259 NULL
145617 +disable_so_supported_addrs_sctp_pf_62261 supported_addrs sctp_pf 0 62261 NULL
145618 +disable_so_xfs_bmapi_delay_fndecl_62277 xfs_bmapi_delay fndecl 0-2-3 62277 NULL
145619 +disable_so_tseg2_pucan_timing_slow_62290 tseg2 pucan_timing_slow 0 62290 NULL
145620 +disable_so_mtime_ncp_cache_head_62294 mtime ncp_cache_head 0 62294 NULL
145621 +disable_so_get_ramp_delay_fndecl_62302 get_ramp_delay fndecl 0 62302 NULL
145622 +disable_so_decrypt_crypto_aead_62305 decrypt crypto_aead 0 62305 NULL
145623 +disable_so_paddr_mmd_fw_ldst_mdio_62306 paddr_mmd fw_ldst_mdio 0 62306 NULL
145624 +disable_so_start_address___osdv1_cdb_addr_len_62309 start_address __osdv1_cdb_addr_len 0 62309 NULL
145625 +disable_so_freq_as10x_tune_args_62312 freq as10x_tune_args 0 62312 NULL
145626 +disable_so_timestamp_low_rtl_stats_62314 timestamp_low rtl_stats 0 62314 NULL
145627 +disable_so_uid_fuse_in_header_62319 uid fuse_in_header 0 62319 NULL
145628 +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
145629 +disable_so_argidx_mc_buffer_62320 argidx mc_buffer 0 62320 &disable_so_bfa_fcs_rport_del_timeout_vardecl_bfa_fcs_rport_c_62320
145630 +disable_so_ci_recover_timer_dlm_config_info_62321 ci_recover_timer dlm_config_info 0 62321 NULL nohasharray
145631 +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
145632 +disable_so_ci_get_ddr3_mclk_frequency_ratio_fndecl_62335 ci_get_ddr3_mclk_frequency_ratio fndecl 0-1 62335 NULL
145633 +disable_so_addr_flags_ec_params_i2c_passthru_msg_62337 addr_flags ec_params_i2c_passthru_msg 0 62337 NULL
145634 +disable_so_mISDN_clock_get_fndecl_62339 mISDN_clock_get fndecl 0 62339 NULL nohasharray
145635 +disable_so_beacon_paddr_ath10k_vif_62339 beacon_paddr ath10k_vif 0 62339 &disable_so_mISDN_clock_get_fndecl_62339 nohasharray
145636 +disable_so_tda10023_writereg_fndecl_62339 tda10023_writereg fndecl 3 62339 &disable_so_beacon_paddr_ath10k_vif_62339
145637 +disable_so___iowrite32_copy_fndecl_62342 __iowrite32_copy fndecl 3 62342 NULL
145638 +disable_so_bit_offset_acpi_pct_register_62348 bit_offset acpi_pct_register 0 62348 NULL
145639 +disable_so_ccp_aes_encrypt_fndecl_62350 ccp_aes_encrypt fndecl 0 62350 NULL
145640 +disable_so_crypto_cbc_module_init_fndecl_62352 crypto_cbc_module_init fndecl 0 62352 NULL
145641 +disable_so_decode_attr_time_fndecl_62359 decode_attr_time fndecl 0 62359 NULL
145642 +disable_so_btrfs_set_dev_replace_time_stopped_fndecl_62364 btrfs_set_dev_replace_time_stopped fndecl 3 62364 NULL
145643 +disable_so_i2c_addr_stv0900_internal_62365 i2c_addr stv0900_internal 0 62365 NULL
145644 +disable_so_sys_setfsgid16_fndecl_62369 sys_setfsgid16 fndecl 0-1 62369 NULL
145645 +disable_so__zd_iowrite32v_locked_fndecl_62374 _zd_iowrite32v_locked fndecl 3-0 62374 NULL nohasharray
145646 +disable_so_C_SYSC_semtimedop_fndecl_62374 C_SYSC_semtimedop fndecl 0-1-3 62374 &disable_so__zd_iowrite32v_locked_fndecl_62374
145647 +disable_so_native_mode_display_timings_62375 native_mode display_timings 0 62375 NULL
145648 +disable_so_wm8400_set_dai_clkdiv_fndecl_62376 wm8400_set_dai_clkdiv fndecl 3 62376 NULL
145649 +disable_so_phy_fixed_addr_vardecl_fixed_phy_c_62380 phy_fixed_addr vardecl_fixed_phy.c 0 62380 NULL
145650 +disable_so_lo_phys_addr_62383 lo phys_addr 0 62383 NULL
145651 +disable_so_schedule_resp_fndecl_62394 schedule_resp fndecl 4-3 62394 NULL
145652 +disable_so_tw_ts_recent_tcp_timewait_sock_62395 tw_ts_recent tcp_timewait_sock 0 62395 NULL
145653 +disable_so_bus_addr_videobuf_dmabuf_62402 bus_addr videobuf_dmabuf 0 62402 NULL
145654 +disable_so_i_uid_exofs_fcb_62409 i_uid exofs_fcb 0 62409 NULL
145655 +disable_so_pc_clock_getres_fndecl_62422 pc_clock_getres fndecl 1 62422 NULL
145656 +disable_so_lock_addr_ulp_mem_io_62424 lock_addr ulp_mem_io 0 62424 NULL
145657 +disable_so___set_radio_freq_fndecl_62425 __set_radio_freq fndecl 2 62425 NULL
145658 +disable_so_ath5k_hw_set_cts_timeout_fndecl_62429 ath5k_hw_set_cts_timeout fndecl 2 62429 NULL
145659 +disable_so_ni_program_memory_timing_parameters_fndecl_62435 ni_program_memory_timing_parameters fndecl 0 62435 NULL
145660 +disable_so_stv6110_set_frequency_fndecl_62438 stv6110_set_frequency fndecl 2 62438 NULL
145661 +disable_so_padata_index_to_cpu_fndecl_62451 padata_index_to_cpu fndecl 0-2 62451 NULL
145662 +disable_so_btree_insert_fndecl_62456 btree_insert fndecl 5 62456 NULL
145663 +disable_so_time_hfa384x_rx_frame_62462 time hfa384x_rx_frame 0 62462 NULL
145664 +disable_so_qat_alg_ablkcipher_init_dec_fndecl_62464 qat_alg_ablkcipher_init_dec fndecl 4 62464 NULL
145665 +disable_so_addr_mcp23s08_62465 addr mcp23s08 0 62465 NULL
145666 +disable_so_faddr_ip_options_62466 faddr ip_options 0 62466 NULL nohasharray
145667 +disable_so_ufs_get_inode_gid_fndecl_62466 ufs_get_inode_gid fndecl 0 62466 &disable_so_faddr_ip_options_62466
145668 +disable_so_min_rnr_timer_ib_qp_attr_62467 min_rnr_timer ib_qp_attr 0 62467 NULL
145669 +disable_so_update_timestamp_of_queue_fndecl_62482 update_timestamp_of_queue fndecl 2 62482 NULL
145670 +disable_so_center_freq1_cfg80211_chan_def_62486 center_freq1 cfg80211_chan_def 0 62486 NULL
145671 +disable_so_watchdog_set_timeout_fndecl_62487 watchdog_set_timeout fndecl 0 62487 NULL
145672 +disable_so_bitmap_parselist_user_fndecl_62492 bitmap_parselist_user fndecl 0-2-4 62492 NULL
145673 +disable_so_tuner_address_tda1004x_config_62514 tuner_address tda1004x_config 0 62514 NULL
145674 +disable_so_src_addr_l_wcn36xx_dxe_desc_62516 src_addr_l wcn36xx_dxe_desc 0 62516 NULL
145675 +disable_so_loadaddr_object_info_62521 loadaddr object_info 0 62521 NULL
145676 +disable_so_store_cpumask_fndecl_62525 store_cpumask fndecl 4-0 62525 NULL
145677 +disable_so_sysctl_llc2_rej_timeout_vardecl_62533 sysctl_llc2_rej_timeout vardecl 0 62533 NULL nohasharray
145678 +disable_so_symbol_rate_stv0900_signal_info_62533 symbol_rate stv0900_signal_info 0 62533 &disable_so_sysctl_llc2_rej_timeout_vardecl_62533
145679 +disable_so_get_pending_timer_val_fndecl_62535 get_pending_timer_val fndecl 0-1 62535 NULL
145680 +disable_so_acpi_tb_init_generic_address_fndecl_62545 acpi_tb_init_generic_address fndecl 2-3-4 62545 NULL
145681 +disable_so_laddr_xt_tproxy_target_info_62546 laddr xt_tproxy_target_info 0 62546 NULL
145682 +disable_so_bitmaps_btrfs_io_ctl_62547 bitmaps btrfs_io_ctl 0 62547 NULL
145683 +disable_so_phy_tx_tone_freq_brcms_phy_62552 phy_tx_tone_freq brcms_phy 0 62552 NULL
145684 +disable_so_rdaddr_irnet_socket_62558 rdaddr irnet_socket 0 62558 NULL
145685 +disable_so_uid_ucred_62560 uid ucred 0 62560 NULL
145686 +disable_so_mod_delayed_work_fndecl_62563 mod_delayed_work fndecl 3 62563 NULL
145687 +disable_so_base_pfn_var_mtrr_range_state_62564 base_pfn var_mtrr_range_state 0 62564 NULL
145688 +disable_so_cx_pt_regs_62574 cx pt_regs 0 62574 NULL
145689 +disable_so_cpuid_device_destroy_fndecl_62575 cpuid_device_destroy fndecl 1 62575 NULL
145690 +disable_so_pm_print_times_show_fndecl_62583 pm_print_times_show fndecl 0 62583 NULL
145691 +disable_so_blkaddr_discard_entry_62585 blkaddr discard_entry 0 62585 NULL
145692 +disable_so_wl1271_acx_group_address_tbl_fndecl_62591 wl1271_acx_group_address_tbl fndecl 0 62591 NULL nohasharray
145693 +disable_so_rangelow_v4l2_hw_freq_seek_62591 rangelow v4l2_hw_freq_seek 0 62591 &disable_so_wl1271_acx_group_address_tbl_fndecl_62591
145694 +disable_so_crc32_le_fndecl_62601 crc32_le fndecl 0-1-3 62601 NULL
145695 +disable_so_freq_cx23885_dev_62605 freq cx23885_dev 0 62605 NULL
145696 +disable_so_sysctl_netrom_transport_no_activity_timeout_vardecl_62608 sysctl_netrom_transport_no_activity_timeout vardecl 0 62608 NULL
145697 +disable_so_xfs_btree_new_iroot_fndecl_62611 xfs_btree_new_iroot fndecl 0 62611 NULL
145698 +disable_so_tproxy_handle_time_wait6_fndecl_62612 tproxy_handle_time_wait6 fndecl 3-2 62612 NULL
145699 +disable_so_sys_getpgid_fndecl_62613 sys_getpgid fndecl 0-1 62613 NULL
145700 +disable_so_next_td_addr_c67x00_hcd_62615 next_td_addr c67x00_hcd 0 62615 NULL
145701 +disable_so_hdspm_aes_sync_check_fndecl_62629 hdspm_aes_sync_check fndecl 2 62629 NULL
145702 +disable_so_ebitmap_node_get_bit_fndecl_62633 ebitmap_node_get_bit fndecl 2 62633 NULL
145703 +disable_so_nilfs_palloc_get_bitmap_block_fndecl_62635 nilfs_palloc_get_bitmap_block fndecl 0-2 62635 NULL
145704 +disable_so_spll_ref_div_rv6xx_power_info_62638 spll_ref_div rv6xx_power_info 0 62638 NULL nohasharray
145705 +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
145706 +disable_so_swc_base_asd_ha_addrspace_62642 swc_base asd_ha_addrspace 0 62642 NULL nohasharray
145707 +disable_so__abb5zes3_rtc_update_timer_fndecl_62642 _abb5zes3_rtc_update_timer fndecl 0 62642 &disable_so_swc_base_asd_ha_addrspace_62642
145708 +disable_so_cgcdiv_saa711x_state_62643 cgcdiv saa711x_state 0 62643 NULL
145709 +disable_so_igmp_mod_timer_fndecl_62656 igmp_mod_timer fndecl 2 62656 NULL
145710 +disable_so_write16_comm_runtime_62657 write16 comm_runtime 0 62657 NULL
145711 +disable_so_sib_sid_sockaddr_ib_62658 sib_sid sockaddr_ib 0 62658 NULL
145712 +disable_so_srx_service_sockaddr_rxrpc_62661 srx_service sockaddr_rxrpc 0 62661 NULL
145713 +disable_so_sh_cmt_clocksource_read_fndecl_62671 sh_cmt_clocksource_read fndecl 0 62671 NULL
145714 +disable_so_freq_saa7164_port_62674 freq saa7164_port 0 62674 NULL
145715 +disable_so_nilfs_btree_node_lookup_fndecl_62675 nilfs_btree_node_lookup fndecl 2 62675 NULL
145716 +disable_so_addr_1_qla8044_minidump_entry_rddfe_62676 addr_1 qla8044_minidump_entry_rddfe 0 62676 NULL
145717 +disable_so_rtl_udelay_fndecl_62677 rtl_udelay fndecl 1 62677 NULL nohasharray
145718 +disable_so_VTotal_xtimings_62677 VTotal xtimings 0 62677 &disable_so_rtl_udelay_fndecl_62677
145719 +disable_so_ib_get_cached_gid_fndecl_62698 ib_get_cached_gid fndecl 2-3 62698 NULL
145720 +disable_so_dvb_frontend_sleep_until_fndecl_62701 dvb_frontend_sleep_until fndecl 2 62701 NULL
145721 +disable_so_i2c_address_stv6110_config_62706 i2c_address stv6110_config 0 62706 NULL
145722 +disable_so_address_ihex_record_62713 address ihex_record 0 62713 NULL
145723 +disable_so_next_rptr_gpu_addr_radeon_ring_62716 next_rptr_gpu_addr radeon_ring 0 62716 NULL
145724 +disable_so_wusb_trust_timeout_store_fndecl_62719 wusb_trust_timeout_store fndecl 0-4 62719 NULL
145725 +disable_so_add_bytes_to_bitmap_fndecl_62721 add_bytes_to_bitmap fndecl 0-3-4 62721 NULL
145726 +disable_so_set_ethernet_addr_fndecl_62733 set_ethernet_addr fndecl 0 62733 NULL
145727 +disable_so_nmsrs_kvm_msrs_62744 nmsrs kvm_msrs 0 62744 NULL
145728 +disable_so_ant_div_control_ar9300_BaseExtension_1_62759 ant_div_control ar9300_BaseExtension_1 0 62759 NULL
145729 +disable_so_padlock_sha_import_fndecl_62760 padlock_sha_import fndecl 0 62760 NULL
145730 +disable_so_do_timerfd_settime_fndecl_62764 do_timerfd_settime fndecl 1 62764 NULL nohasharray
145731 +disable_so_phy_addr_netdev_private_62764 phy_addr netdev_private 0 62764 &disable_so_do_timerfd_settime_fndecl_62764
145732 +disable_so_bd_list_addr_lo_bnx2i_nop_out_request_62766 bd_list_addr_lo bnx2i_nop_out_request 0 62766 NULL
145733 +disable_so_get_sndtimeo_l2cap_ops_62767 get_sndtimeo l2cap_ops 0 62767 NULL
145734 +disable_so_active_jiffies_dev_pm_info_62774 active_jiffies dev_pm_info 0 62774 NULL
145735 +disable_so_r5f_val_fc2580_freq_regs_62778 r5f_val fc2580_freq_regs 0 62778 NULL
145736 +disable_so_ac97_clock_vardecl_via82xx_modem_c_62781 ac97_clock vardecl_via82xx_modem.c 0 62781 NULL
145737 +disable_so_after_ctime_sec_nfsd4_change_info_62785 after_ctime_sec nfsd4_change_info 0 62785 NULL
145738 +disable_so_vma_compute_subtree_gap_fndecl_62794 vma_compute_subtree_gap fndecl 0 62794 NULL
145739 +disable_so_fll_freq_out_wm8350_data_62801 fll_freq_out wm8350_data 0 62801 NULL
145740 +disable_so_nfs_map_group_to_gid_fndecl_62809 nfs_map_group_to_gid fndecl 0-3 62809 NULL
145741 +disable_so_saddr_irnet_socket_62828 saddr irnet_socket 0 62828 NULL
145742 +disable_so_fixed_mtrr_range_end_addr_fndecl_62835 fixed_mtrr_range_end_addr fndecl 2-0 62835 NULL
145743 +disable_so_sis_program_udma_timings_fndecl_62837 sis_program_udma_timings fndecl 2 62837 NULL
145744 +disable_so_timeout_lpfc_scsi_buf_62845 timeout lpfc_scsi_buf 0 62845 NULL
145745 +disable_so_brp_inc_can_bittiming_const_62858 brp_inc can_bittiming_const 0 62858 NULL
145746 +disable_so_timer_counter_tg3_62864 timer_counter tg3 0 62864 NULL
145747 +disable_so_slave_addr_psb_intel_i2c_chan_62869 slave_addr psb_intel_i2c_chan 0 62869 NULL
145748 +disable_so_mapaddr_rocker_desc_info_62870 mapaddr rocker_desc_info 0 62870 NULL
145749 +disable_so_cid_addr_drv_ctl_io_62879 cid_addr drv_ctl_io 0 62879 NULL
145750 +disable_so_ifreq_dibx000_bandwidth_config_62891 ifreq dibx000_bandwidth_config 0 62891 NULL
145751 +disable_so_m_iw_freq_62894 m iw_freq 0 62894 NULL
145752 +disable_so___nci_request_fndecl_62899 __nci_request fndecl 0 62899 NULL
145753 +disable_so_tuner_addr_cx23885_dev_62908 tuner_addr cx23885_dev 0 62908 NULL
145754 +disable_so_acpi_remove_address_space_handler_fndecl_62916 acpi_remove_address_space_handler fndecl 0-2 62916 NULL
145755 +disable_so_vma_address_fndecl_62917 vma_address fndecl 0 62917 NULL
145756 +disable_so_cg_spll_func_cntl_2_rv770_clock_registers_62925 cg_spll_func_cntl_2 rv770_clock_registers 0 62925 NULL
145757 +disable_so_clear_state_gpu_addr_radeon_rlc_62934 clear_state_gpu_addr radeon_rlc 0 62934 NULL
145758 +disable_so_timeout__x_config_parms_62944 timeout _x_config_parms 0 62944 NULL
145759 +disable_so_vbackporch_v4l2_bt_timings_62951 vbackporch v4l2_bt_timings 0 62951 NULL
145760 +disable_so_crypto_rfc4543_setkey_fndecl_62960 crypto_rfc4543_setkey fndecl 0-3 62960 NULL
145761 +disable_so_xc_get_hsync_freq_fndecl_62961 xc_get_hsync_freq fndecl 0 62961 NULL
145762 +disable_so_run_delayed_start_btrfs_delayed_ref_root_62962 run_delayed_start btrfs_delayed_ref_root 0 62962 NULL nohasharray
145763 +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
145764 +disable_so_frac_top_pll_div_62988 frac_top pll_div 0 62988 NULL nohasharray
145765 +disable_so_busaddr__CommandList_struct_62988 busaddr _CommandList_struct 0 62988 &disable_so_frac_top_pll_div_62988
145766 +disable_so_buffer_paddr_ghes_62992 buffer_paddr ghes 0 62992 NULL
145767 +disable_so_be32_to_cpu_n_fndecl_62994 be32_to_cpu_n fndecl 3 62994 NULL
145768 +disable_so_ccp_sha_update_fndecl_63000 ccp_sha_update fndecl 0 63000 NULL
145769 +disable_so_chipco_pctl_clockfreqlimit_fndecl_63008 chipco_pctl_clockfreqlimit fndecl 0 63008 NULL
145770 +disable_so_sys_gettimeofday_fndecl_63009 sys_gettimeofday fndecl 0 63009 NULL
145771 +disable_so_ext4_read_block_bitmap_fndecl_63029 ext4_read_block_bitmap fndecl 2 63029 NULL
145772 +disable_so_sis900_interrupt_fndecl_63044 sis900_interrupt fndecl 1 63044 NULL
145773 +disable_so_tv_usec_compat_timeval_63056 tv_usec compat_timeval 0 63056 NULL
145774 +disable_so_timeout_ct_entry_24xx_63060 timeout ct_entry_24xx 0 63060 NULL
145775 +disable_so_ib_reset_mad_timeout_fndecl_63061 ib_reset_mad_timeout fndecl 2 63061 NULL
145776 +disable_so_register_lapic_address_fndecl_63066 register_lapic_address fndecl 1 63066 NULL
145777 +disable_so_sgl_dma_addr_genwqe_sgl_63082 sgl_dma_addr genwqe_sgl 0 63082 NULL
145778 +disable_so_nf_conntrack_hash_rnd_vardecl_63088 nf_conntrack_hash_rnd vardecl 0 63088 NULL
145779 +disable_so_snd_emu10k1_ptr_write_fndecl_63094 snd_emu10k1_ptr_write fndecl 2-3-4 63094 NULL
145780 +disable_so_index_svm_direct_access_msrs_63098 index svm_direct_access_msrs 0 63098 NULL
145781 +disable_so_crypto_authenc_genicv_fndecl_63111 crypto_authenc_genicv fndecl 0 63111 NULL
145782 +disable_so_pcf50633_rtc_set_time_fndecl_63123 pcf50633_rtc_set_time fndecl 0 63123 NULL
145783 +disable_so_hsyn_pol_hdmi_timings_63136 hsyn_pol hdmi_timings 0 63136 NULL
145784 +disable_so_ri_addr_gfs2_rindex_63138 ri_addr gfs2_rindex 0 63138 NULL
145785 +disable_so_nr_oaktrail_hdmi_clock_63155 nr oaktrail_hdmi_clock 0 63155 NULL nohasharray
145786 +disable_so_dma_addr_nic_63155 dma_addr nic 0 63155 &disable_so_nr_oaktrail_hdmi_clock_63155
145787 +disable_so_dlm_hash2nodeid_fndecl_63162 dlm_hash2nodeid fndecl 2 63162 NULL
145788 +disable_so_efx_enable_interrupts_fndecl_63163 efx_enable_interrupts fndecl 0 63163 NULL nohasharray
145789 +disable_so_freq_offset_rt2x00_dev_63163 freq_offset rt2x00_dev 0 63163 &disable_so_efx_enable_interrupts_fndecl_63163
145790 +disable_so_dma_addr_il_queue_63172 dma_addr il_queue 0 63172 NULL
145791 +disable_so_buf_addr_hi_fcoe_bd_ctx_63176 buf_addr_hi fcoe_bd_ctx 0 63176 NULL
145792 +disable_so_i2c_addr_lgdt3305_config_63179 i2c_addr lgdt3305_config 0 63179 NULL nohasharray
145793 +disable_so_sched_addr_ath9k_hw_mci_63179 sched_addr ath9k_hw_mci 0 63179 &disable_so_i2c_addr_lgdt3305_config_63179
145794 +disable_so_mic_x100_get_boot_addr_fndecl_63190 mic_x100_get_boot_addr fndecl 0 63190 NULL
145795 +disable_so_i2c_clock_period_ivtv_options_63202 i2c_clock_period ivtv_options 0 63202 NULL
145796 +disable_so_f2fs_init_crypto_fndecl_63218 f2fs_init_crypto fndecl 0 63218 NULL
145797 +disable_so_snd_ymfpci_interrupt_fndecl_63224 snd_ymfpci_interrupt fndecl 1 63224 NULL
145798 +disable_so_set_tsc_mode_fndecl_63231 set_tsc_mode fndecl 0-1 63231 NULL
145799 +disable_so_update_crypto_ahash_63235 update crypto_ahash 0 63235 NULL
145800 +disable_so_base_freq_stv0297_state_63242 base_freq stv0297_state 0 63242 NULL
145801 +disable_so_mounted_uid_ncp_mount_data_63250 mounted_uid ncp_mount_data 0 63250 NULL
145802 +disable_so_wall_clock_kvm_arch_63252 wall_clock kvm_arch 0 63252 NULL nohasharray
145803 +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
145804 +disable_so_r100_mm_wreg_slow_fndecl_63255 r100_mm_wreg_slow fndecl 2-3 63255 NULL
145805 +disable_so_ocrdma_query_gid_fndecl_63259 ocrdma_query_gid fndecl 0-3 63259 NULL
145806 +disable_so_sha1_mb_async_init_fndecl_63263 sha1_mb_async_init fndecl 0 63263 NULL
145807 +disable_so_i_mtime_nsec_nilfs_inode_63266 i_mtime_nsec nilfs_inode 0 63266 NULL
145808 +disable_so_s_pkt_delay_ipath_qp_63270 s_pkt_delay ipath_qp 0 63270 NULL
145809 +disable_so_ecryptfs_read_update_atime_fndecl_63272 ecryptfs_read_update_atime fndecl 0 63272 NULL
145810 +disable_so_seq_auto_out_pin_63274 seq auto_out_pin 0 63274 NULL
145811 +disable_so_pmdown_time_show_fndecl_63283 pmdown_time_show fndecl 0 63283 NULL
145812 +disable_so_pwm_freq_div_dib7000m_config_63285 pwm_freq_div dib7000m_config 0 63285 NULL
145813 +disable_so_bit_width_acpi_generic_address_63286 bit_width acpi_generic_address 0 63286 NULL
145814 +disable_so_addr_sg_entry_63287 addr sg_entry 0 63287 NULL
145815 +disable_so_ocfs2_pack_timespec_fndecl_63293 ocfs2_pack_timespec fndecl 0 63293 NULL
145816 +disable_so_ipv6_addr_label_fndecl_63298 ipv6_addr_label fndecl 3-4 63298 NULL
145817 +disable_so_chgfreq_cs42l56_platform_data_63299 chgfreq cs42l56_platform_data 0 63299 NULL
145818 +disable_so_sco_sock_set_timer_fndecl_63304 sco_sock_set_timer fndecl 2 63304 NULL nohasharray
145819 +disable_so_skb_get_hash_fndecl_63304 skb_get_hash fndecl 0 63304 &disable_so_sco_sock_set_timer_fndecl_63304
145820 +disable_so_timeout_tsk_mgmt_entry_63307 timeout tsk_mgmt_entry 0 63307 NULL
145821 +disable_so_sysctl_slot_timeout_vardecl_63317 sysctl_slot_timeout vardecl 0 63317 NULL
145822 +disable_so_set_sadb_address_fndecl_63320 set_sadb_address fndecl 2 63320 NULL
145823 +disable_so_handle_frequent_errors_fndecl_63324 handle_frequent_errors fndecl 4 63324 NULL
145824 +disable_so_last_ramp_up_time_bfad_itnim_s_63328 last_ramp_up_time bfad_itnim_s 0 63328 NULL
145825 +disable_so_timeout_vardecl_xen_wdt_c_63339 timeout vardecl_xen_wdt.c 0 63339 NULL nohasharray
145826 +disable_so_padlock_sha_export_fndecl_63339 padlock_sha_export fndecl 0 63339 &disable_so_timeout_vardecl_xen_wdt_c_63339
145827 +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
145828 +disable_so_uv_cpu_to_pnode_fndecl_63343 uv_cpu_to_pnode fndecl 0 63343 NULL
145829 +disable_so_gsc_runtime_resume_fndecl_63355 gsc_runtime_resume fndecl 0 63355 NULL
145830 +disable_so_pci_bus_find_capability_fndecl_63357 pci_bus_find_capability fndecl 0-2 63357 NULL
145831 +disable_so_addr_af9013_reg_bit_63363 addr af9013_reg_bit 0 63363 NULL
145832 +disable_so_ath5k_eeprom_bin2freq_fndecl_63364 ath5k_eeprom_bin2freq fndecl 0-2 63364 NULL
145833 +disable_so_sd_mtime_stat_data_63370 sd_mtime stat_data 0 63370 NULL
145834 +disable_so_next_hscb_busaddr_hardware_scb_63375 next_hscb_busaddr hardware_scb 0 63375 NULL nohasharray
145835 +disable_so_cpufreq_set_policy_fndecl_63375 cpufreq_set_policy fndecl 0 63375 &disable_so_next_hscb_busaddr_hardware_scb_63375
145836 +disable_so_cache_tsc_vardecl_max8925_core_c_63377 cache_tsc vardecl_max8925-core.c 0 63377 NULL
145837 +disable_so_xtime_remainder_timekeeper_63380 xtime_remainder timekeeper 0 63380 NULL
145838 +disable_so_st_uid___old_kernel_stat_63381 st_uid __old_kernel_stat 0 63381 NULL
145839 +disable_so_timeout_b_tpm_vendor_specific_63382 timeout_b tpm_vendor_specific 0 63382 NULL
145840 +disable_so_vol_bit_shift_anatop_regulator_63384 vol_bit_shift anatop_regulator 0 63384 NULL
145841 +disable_so_msr_offset_intel_uncore_type_63385 msr_offset intel_uncore_type 0 63385 NULL
145842 +disable_so_random_write_fndecl_63387 random_write fndecl 0-3 63387 NULL
145843 +disable_so_bcma_chipco_watchdog_timer_set_ms_wdt_fndecl_63389 bcma_chipco_watchdog_timer_set_ms_wdt fndecl 2-0 63389 NULL
145844 +disable_so__div_round_closest_fndecl_63400 _div_round_closest fndecl 0-3-2 63400 NULL
145845 +disable_so_acpi_ut_strtoul64_fndecl_63410 acpi_ut_strtoul64 fndecl 0 63410 NULL
145846 +disable_so_alarm_time_xgene_rtc_dev_63411 alarm_time xgene_rtc_dev 0 63411 NULL nohasharray
145847 +disable_so_dynamic_ps_timeout_ieee80211_conf_63411 dynamic_ps_timeout ieee80211_conf 0 63411 &disable_so_alarm_time_xgene_rtc_dev_63411 nohasharray
145848 +disable_so_split_timeout_cycles_fw_card_63411 split_timeout_cycles fw_card 0 63411 &disable_so_dynamic_ps_timeout_ieee80211_conf_63411
145849 +disable_so_bitstream_get_bits_fndecl_63423 bitstream_get_bits fndecl 0-3 63423 NULL
145850 +disable_so_tw_timeout_inet_timewait_sock_63424 tw_timeout inet_timewait_sock 0 63424 NULL
145851 +disable_so_drbg_kcapi_hash_fndecl_63433 drbg_kcapi_hash fndecl 0 63433 NULL
145852 +disable_so_wait_for_completion_interruptible_fndecl_63448 wait_for_completion_interruptible fndecl 0 63448 NULL
145853 +disable_so_sys_clock_nanosleep_fndecl_63449 sys_clock_nanosleep fndecl 1 63449 NULL
145854 +disable_so_nouveau_hw_get_clock_fndecl_63456 nouveau_hw_get_clock fndecl 0-2 63456 NULL
145855 +disable_so_nilfs_btree_propagate_gc_fndecl_63460 nilfs_btree_propagate_gc fndecl 0 63460 NULL
145856 +disable_so_crypto_xcbc_module_init_fndecl_63471 crypto_xcbc_module_init fndecl 0 63471 NULL
145857 +disable_so_amradio_set_freq_fndecl_63479 amradio_set_freq fndecl 0-2 63479 NULL
145858 +disable_so_task_getpgid_security_operations_63489 task_getpgid security_operations 0 63489 NULL nohasharray
145859 +disable_so_crypto_register_akcipher_fndecl_63489 crypto_register_akcipher fndecl 0 63489 &disable_so_task_getpgid_security_operations_63489
145860 +disable_so_netxen_nic_map_indirect_address_128M_fndecl_63490 netxen_nic_map_indirect_address_128M fndecl 2 63490 NULL
145861 +disable_so_vnic_intr_coalescing_timer_set_fndecl_63494 vnic_intr_coalescing_timer_set fndecl 2 63494 NULL
145862 +disable_so_chipset_settings_chipset_bus_clock_list_entry_63497 chipset_settings chipset_bus_clock_list_entry 0 63497 NULL
145863 +disable_so_new_cycle_state_xhci_dequeue_state_63499 new_cycle_state xhci_dequeue_state 0 63499 NULL
145864 +disable_so_radeon_legacy_set_engine_clock_fndecl_63512 radeon_legacy_set_engine_clock fndecl 2 63512 NULL
145865 +disable_so_addr___ctrl_63513 addr __ctrl 0 63513 NULL
145866 +disable_so_asix_get_phy_addr_fndecl_63534 asix_get_phy_addr fndecl 0 63534 NULL
145867 +disable_so_time_in_queue_dm_stat_percpu_63541 time_in_queue dm_stat_percpu 0 63541 NULL
145868 +disable_so_ufshcd_pltfrm_runtime_suspend_fndecl_63543 ufshcd_pltfrm_runtime_suspend fndecl 0 63543 NULL
145869 +disable_so_spu_port_delay_if_spi_card_63548 spu_port_delay if_spi_card 0 63548 NULL nohasharray
145870 +disable_so_cs_cpufreq_governor_dbs_fndecl_63548 cs_cpufreq_governor_dbs fndecl 0 63548 &disable_so_spu_port_delay_if_spi_card_63548
145871 +disable_so_type_ceph_crypto_key_63565 type ceph_crypto_key 0 63565 NULL
145872 +disable_so_bus_settle_time_blogic_adapter_63575 bus_settle_time blogic_adapter 0 63575 NULL
145873 +disable_so_ref_divider_aty128_constants_63576 ref_divider aty128_constants 0 63576 NULL
145874 +disable_so_remote_qpn_cm_timewait_info_63581 remote_qpn cm_timewait_info 0 63581 NULL
145875 +disable_so_boot_time_fc_lport_63585 boot_time fc_lport 0 63585 NULL
145876 +disable_so_imx_phy_reg_addressing_fndecl_63588 imx_phy_reg_addressing fndecl 0 63588 NULL
145877 +disable_so_irq_set_irq_type_fndecl_63590 irq_set_irq_type fndecl 2-1 63590 NULL
145878 +disable_so_appl_ptr_snd_rawmidi_runtime_63609 appl_ptr snd_rawmidi_runtime 0 63609 NULL
145879 +disable_so_snd_hdac_regmap_write_raw_fndecl_63613 snd_hdac_regmap_write_raw fndecl 0-3-2 63613 NULL
145880 +disable_so_control_addr_qla82xx_md_entry_cache_63615 control_addr qla82xx_md_entry_cache 0 63615 NULL
145881 +disable_so_nla_put_ipaddr6_fndecl_63618 nla_put_ipaddr6 fndecl 0 63618 NULL
145882 +disable_so_da9052_wdt_set_timeout_fndecl_63621 da9052_wdt_set_timeout fndecl 2-0 63621 NULL
145883 +disable_so_cstime_signal_struct_63629 cstime signal_struct 0 63629 NULL
145884 +disable_so_dm_region_hash_create_fndecl_63649 dm_region_hash_create fndecl 5-8-9 63649 NULL
145885 +disable_so_krng_get_random_fndecl_63655 krng_get_random fndecl 3 63655 NULL
145886 +disable_so_r9701_get_datetime_fndecl_63665 r9701_get_datetime fndecl 0 63665 NULL
145887 +disable_so_crypto_rfc3686_crypt_fndecl_63668 crypto_rfc3686_crypt fndecl 0 63668 NULL
145888 +disable_so_xen_late_init_mcelog_fndecl_63669 xen_late_init_mcelog fndecl 0 63669 NULL
145889 +disable_so_prot_res_gid_63673 prot res_gid 0 63673 NULL
145890 +disable_so_ext3_valid_block_bitmap_fndecl_63688 ext3_valid_block_bitmap fndecl 3 63688 NULL
145891 +disable_so_smt_timer_start_fndecl_63691 smt_timer_start fndecl 3 63691 NULL nohasharray
145892 +disable_so_port_tomoyo_inet_addr_info_63691 port tomoyo_inet_addr_info 0 63691 &disable_so_smt_timer_start_fndecl_63691
145893 +disable_so_generic_check_addressable_fndecl_63696 generic_check_addressable fndecl 1-2 63696 NULL nohasharray
145894 +disable_so___check_object_size_fndecl_63696 __check_object_size fndecl 2 63696 &disable_so_generic_check_addressable_fndecl_63696
145895 +disable_so_r820t_sleep_fndecl_63717 r820t_sleep fndecl 0 63717 NULL
145896 +disable_so_lgdt3305_read_signal_strength_fndecl_63720 lgdt3305_read_signal_strength fndecl 0 63720 NULL
145897 +disable_so_wl1251_acx_sleep_auth_fndecl_63727 wl1251_acx_sleep_auth fndecl 0 63727 NULL
145898 +disable_so_clk_out_div_ts2020_priv_63728 clk_out_div ts2020_priv 0 63728 NULL
145899 +disable_so_sys_clock_adjtime_fndecl_63736 sys_clock_adjtime fndecl 1 63736 NULL
145900 +disable_so_radio_addr_cx88_board_63745 radio_addr cx88_board 0 63745 NULL
145901 +disable_so_input_print_bitmap_fndecl_63755 input_print_bitmap fndecl 0-2 63755 NULL
145902 +disable_so_memstick_set_rw_addr_fndecl_63757 memstick_set_rw_addr fndecl 0 63757 NULL
145903 +disable_so_simple_strtoll_fndecl_63758 simple_strtoll fndecl 0 63758 NULL
145904 +disable_so___mv88e6xxx_read_addr_fndecl_63766 __mv88e6xxx_read_addr fndecl 0 63766 NULL
145905 +disable_so_nf_conntrack_timeout_init_fndecl_63771 nf_conntrack_timeout_init fndecl 0 63771 NULL
145906 +disable_so_ob_baseaddr_h_mvumi_hs_page4_63775 ob_baseaddr_h mvumi_hs_page4 0 63775 NULL
145907 +disable_so_stored_addr_hi_amd_iommu_63784 stored_addr_hi amd_iommu 0 63784 NULL
145908 +disable_so_HSyncEnd_xtimings_63785 HSyncEnd xtimings 0 63785 NULL
145909 +disable_so_addr_h_xfer_desc_63789 addr_h xfer_desc 0 63789 NULL
145910 +disable_so_i2c_address_stb6000_priv_63790 i2c_address stb6000_priv 0 63790 NULL
145911 +disable_so_runtime_expires_cfs_bandwidth_63800 runtime_expires cfs_bandwidth 0 63800 NULL
145912 +disable_so_account_steal_time_fndecl_63806 account_steal_time fndecl 1 63806 NULL
145913 +disable_so_sleep_max_sched_statistics_63826 sleep_max sched_statistics 0 63826 NULL
145914 +disable_so_usecs_to_jiffies_fndecl_63832 usecs_to_jiffies fndecl 0-1 63832 NULL
145915 +disable_so_dsp_iram_offset_sst_addr_63833 dsp_iram_offset sst_addr 0 63833 NULL
145916 +disable_so_central_freq_skl_wrpll_params_63836 central_freq skl_wrpll_params 0 63836 NULL
145917 +disable_so_bitmap_release_region_fndecl_63837 bitmap_release_region fndecl 2-3 63837 NULL
145918 +disable_so_dx_hack_hash_signed_fndecl_63847 dx_hack_hash_signed fndecl 0-2 63847 NULL
145919 +disable_so_qhead_snd_timer_user_63855 qhead snd_timer_user 0 63855 NULL
145920 +disable_so_table1_addr_ipw2100_ordinals_63856 table1_addr ipw2100_ordinals 0 63856 NULL
145921 +disable_so_dec_cd_paddr_qat_alg_aead_ctx_63860 dec_cd_paddr qat_alg_aead_ctx 0 63860 NULL
145922 +disable_so_ppll_div_3_radeon_regs_63862 ppll_div_3 radeon_regs 0 63862 NULL
145923 +disable_so_sys_addr_to_input_addr_fndecl_63863 sys_addr_to_input_addr fndecl 0-2 63863 NULL
145924 +disable_so_dma_rx_timeout_lpuart_port_63878 dma_rx_timeout lpuart_port 0 63878 NULL
145925 +disable_so_dma_addr_t4_rq_63886 dma_addr t4_rq 0 63886 NULL
145926 +disable_so_radeon_semaphore_emit_signal_fndecl_63895 radeon_semaphore_emit_signal fndecl 2 63895 NULL
145927 +disable_so_probe_timeout_ieee80211_if_managed_63910 probe_timeout ieee80211_if_managed 0 63910 NULL
145928 +disable_so_mthca_MAD_IFC_fndecl_63923 mthca_MAD_IFC fndecl 4-0 63923 NULL
145929 +disable_so_get_strength_time_mb86a20s_state_63926 get_strength_time mb86a20s_state 0 63926 NULL
145930 +disable_so_rx_frequency_wl1273_device_63933 rx_frequency wl1273_device 0 63933 NULL nohasharray
145931 +disable_so_arcmsr_module_init_fndecl_63933 arcmsr_module_init fndecl 0 63933 &disable_so_rx_frequency_wl1273_device_63933
145932 +disable_so_timeout_vardecl_alim1535_wdt_c_63935 timeout vardecl_alim1535_wdt.c 0 63935 NULL
145933 +disable_so_query_dv_timings_size_vivid_dev_63943 query_dv_timings_size vivid_dev 0 63943 NULL
145934 +disable_so_nf_nat_sdp_addr_fndecl_63949 nf_nat_sdp_addr fndecl 2-3 63949 NULL
145935 +disable_so_shash_finup_unaligned_fndecl_63955 shash_finup_unaligned fndecl 0-3 63955 NULL
145936 +disable_so_rdmsr_on_cpu_fndecl_63956 rdmsr_on_cpu fndecl 0-1 63956 NULL
145937 +disable_so_qlge_set_mac_address_fndecl_63968 qlge_set_mac_address fndecl 0 63968 NULL
145938 +disable_so_config_ipaddr_qlcnic_nic_template_63973 config_ipaddr qlcnic_nic_template 2 63973 NULL
145939 +disable_so_timer_enable_snd_opl3_63986 timer_enable snd_opl3 0 63986 NULL
145940 +disable_so_virtio16_to_cpu_fndecl_63994 virtio16_to_cpu fndecl 0-2 63994 NULL
145941 +disable_so_ecryptfs_init_crypto_fndecl_63995 ecryptfs_init_crypto fndecl 0 63995 NULL
145942 +disable_so_address_ccp_dma_info_64001 address ccp_dma_info 0 64001 NULL
145943 +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
145944 +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
145945 +disable_so_settime_security_operations_64006 settime security_operations 0 64006 NULL nohasharray
145946 +disable_so_SYSC_timerfd_create_fndecl_64006 SYSC_timerfd_create fndecl 2 64006 &disable_so_settime_security_operations_64006
145947 +disable_so_cryptd_hash_setkey_fndecl_64014 cryptd_hash_setkey fndecl 0-3 64014 NULL
145948 +disable_so_irq_net_device_64015 irq net_device 0 64015 NULL
145949 +disable_so_sysfs_show_available_clocksources_fndecl_64024 sysfs_show_available_clocksources fndecl 0 64024 NULL
145950 +disable_so_s_frequency_v4l2_subdev_tuner_ops_64037 s_frequency v4l2_subdev_tuner_ops 0 64037 NULL
145951 +disable_so_tcp_v6_md5_hash_pseudoheader_fndecl_64051 tcp_v6_md5_hash_pseudoheader fndecl 4 64051 NULL
145952 +disable_so_ieee80211_queue_delayed_work_fndecl_64056 ieee80211_queue_delayed_work fndecl 3 64056 NULL
145953 +disable_so_rtc_set_time_fndecl_64057 rtc_set_time fndecl 0 64057 NULL
145954 +disable_so_addr_i2c_msg_64074 addr i2c_msg 0 64074 NULL
145955 +disable_so_cea_mode_alternate_clock_fndecl_64078 cea_mode_alternate_clock fndecl 0 64078 NULL
145956 +disable_so_cfreq_esp_64080 cfreq esp 0 64080 NULL
145957 +disable_so___irq_get_desc_lock_fndecl_64081 __irq_get_desc_lock fndecl 1 64081 NULL
145958 +disable_so_pticks_snd_timer_instance_64084 pticks snd_timer_instance 0 64084 NULL
145959 +disable_so_ip6addrlbl_get_fndecl_64092 ip6addrlbl_get fndecl 0 64092 NULL nohasharray
145960 +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
145961 +disable_so_nilfs_btree_commit_convert_and_insert_fndecl_64095 nilfs_btree_commit_convert_and_insert fndecl 2-6 64095 NULL
145962 +disable_so_prandom_u32_fndecl_64118 prandom_u32 fndecl 0 64118 NULL
145963 +disable_so_mask_ds1685_rtc_time_regs_64121 mask ds1685_rtc_time_regs 0 64121 NULL
145964 +disable_so_ic_servaddr_vardecl_64122 ic_servaddr vardecl 0 64122 NULL
145965 +disable_so_hashval2_0_rx_pkt_hdr1_64124 hashval2_0 rx_pkt_hdr1 0 64124 NULL
145966 +disable_so_xfrm_addr_equal_fndecl_64155 xfrm_addr_equal fndecl 3 64155 NULL
145967 +disable_so_cq_addr_hi_fcoe_kwqe_conn_offload2_64157 cq_addr_hi fcoe_kwqe_conn_offload2 0 64157 NULL
145968 +disable_so_rq_tmo_jiffies_srp_target_port_64158 rq_tmo_jiffies srp_target_port 0 64158 NULL
145969 +disable_so_xen_sysfs_uuid_init_fndecl_64160 xen_sysfs_uuid_init fndecl 0 64160 NULL
145970 +disable_so___dm_stat_init_temporary_percpu_totals_fndecl_64162 __dm_stat_init_temporary_percpu_totals fndecl 3 64162 NULL
145971 +disable_so_pcxhr_set_clock_fndecl_64184 pcxhr_set_clock fndecl 2-0 64184 NULL
145972 +disable_so_bitmap_endwrite_fndecl_64188 bitmap_endwrite fndecl 2-3 64188 NULL
145973 +disable_so_pages_bitmap_counts_64197 pages bitmap_counts 0 64197 NULL
145974 +disable_so_base_address_dmar_rmrr_unit_64199 base_address dmar_rmrr_unit 0 64199 NULL
145975 +disable_so_udp_conn_schedule_fndecl_64203 udp_conn_schedule fndecl 1 64203 NULL
145976 +disable_so_max_timebase_img_pwm_soc_data_64210 max_timebase img_pwm_soc_data 0 64210 NULL
145977 +disable_so_cycles_at_suspend_vardecl_timekeeping_c_64211 cycles_at_suspend vardecl_timekeeping.c 0 64211 NULL nohasharray
145978 +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
145979 +disable_so_addr_psb_pipe_64215 addr psb_pipe 0 64215 NULL
145980 +disable_so_acpi_subsys_runtime_suspend_fndecl_64232 acpi_subsys_runtime_suspend fndecl 0 64232 NULL
145981 +disable_so_pci_bus_read_config_word_fndecl_64248 pci_bus_read_config_word fndecl 0-2-3 64248 NULL
145982 +disable_so_last_rx_timestamp_igb_adapter_64249 last_rx_timestamp igb_adapter 0 64249 NULL
145983 +disable_so_snd_timer_user_ioctl_compat_fndecl_64250 snd_timer_user_ioctl_compat fndecl 0 64250 NULL
145984 +disable_so_tag_reg_addr_qla82xx_md_entry_cache_64251 tag_reg_addr qla82xx_md_entry_cache 0 64251 NULL
145985 +disable_so_cond_wait_interruptible_timeout_irqrestore_fndecl_64253 cond_wait_interruptible_timeout_irqrestore fndecl 2-0 64253 NULL
145986 +disable_so_signr_usbdevfs_disconnectsignal32_64254 signr usbdevfs_disconnectsignal32 0 64254 NULL
145987 +disable_so_inet6_addr_del_fndecl_64255 inet6_addr_del fndecl 0-2-5-3 64255 NULL
145988 +disable_so_pci_quatech_clock_fndecl_64264 pci_quatech_clock fndecl 0 64264 NULL nohasharray
145989 +disable_so_crypto_null_mod_init_fndecl_64264 crypto_null_mod_init fndecl 0 64264 &disable_so_pci_quatech_clock_fndecl_64264
145990 +disable_so_kvm_write_wall_clock_fndecl_64267 kvm_write_wall_clock fndecl 2 64267 NULL
145991 +disable_so_smk_write_netlbladdr_fndecl_64270 smk_write_netlbladdr fndecl 3 64270 NULL
145992 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_fndecl_64272 iscsi_nacl_attrib_show_dataout_timeout fndecl 0 64272 NULL
145993 +disable_so_sched_setscheduler_nocheck_fndecl_64274 sched_setscheduler_nocheck fndecl 2-0 64274 NULL
145994 +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
145995 +disable_so_dx_hack_hash_unsigned_fndecl_64277 dx_hack_hash_unsigned fndecl 0-2 64277 NULL
145996 +disable_so_xsdt_physical_address_acpi_table_rsdp_64302 xsdt_physical_address acpi_table_rsdp 0 64302 NULL
145997 +disable_so_timeout_watchdog_device_64303 timeout watchdog_device 0 64303 NULL
145998 +disable_so_crypto_shash_digest_fndecl_64307 crypto_shash_digest fndecl 0-3 64307 NULL
145999 +disable_so_jiffies_ati_remote2_64334 jiffies ati_remote2 0 64334 NULL
146000 +disable_so_target_stat_scsi_lu_show_attr_creation_time_fndecl_64336 target_stat_scsi_lu_show_attr_creation_time fndecl 0 64336 NULL
146001 +disable_so_intel_increase_pllclock_fndecl_64342 intel_increase_pllclock fndecl 2 64342 NULL
146002 +disable_so_wm8350_rtc_settime_fndecl_64353 wm8350_rtc_settime fndecl 0 64353 NULL
146003 +disable_so_saa711x_s_crystal_freq_fndecl_64358 saa711x_s_crystal_freq fndecl 2 64358 NULL
146004 +disable_so_get_div_fndecl_64359 get_div fndecl 0 64359 NULL
146005 +disable_so_dln2_spi_runtime_resume_fndecl_64364 dln2_spi_runtime_resume fndecl 0 64364 NULL
146006 +disable_so_register_address_fndecl_64366 register_address fndecl 0-2 64366 NULL
146007 +disable_so_ipath_guid_ipath_devdata_64367 ipath_guid ipath_devdata 0 64367 NULL
146008 +disable_so_dma_address_edgeport_port_64376 dma_address edgeport_port 0 64376 NULL
146009 +disable_so_tlb_rd_addr_vlv_s0ix_state_64377 tlb_rd_addr vlv_s0ix_state 0 64377 NULL
146010 +disable_so_br_mdb_rehash_fndecl_64384 br_mdb_rehash fndecl 2 64384 NULL
146011 +disable_so_irq_ti_tscadc_dev_64390 irq ti_tscadc_dev 0 64390 NULL
146012 +disable_so_rh_hash_fndecl_64392 rh_hash fndecl 0-2 64392 NULL
146013 +disable_so_addr_Vmxnet3_RxDesc_64395 addr Vmxnet3_RxDesc 0 64395 NULL
146014 +disable_so_wptr_gpu_addr_kernel_queue_64396 wptr_gpu_addr kernel_queue 0 64396 NULL
146015 +disable_so__regmap_raw_write_fndecl_64399 _regmap_raw_write fndecl 2-4-0 64399 NULL
146016 +disable_so_crypto_ahash_walk_first_fndecl_64405 crypto_ahash_walk_first fndecl 0 64405 NULL
146017 +disable_so_host_start_efx_ptp_timeset_64407 host_start efx_ptp_timeset 0 64407 NULL
146018 +disable_so___compat_put_timeval_fndecl_64422 __compat_put_timeval fndecl 0 64422 NULL nohasharray
146019 +disable_so_img_ir_timings_preprocess_fndecl_64422 img_ir_timings_preprocess fndecl 2 64422 &disable_so___compat_put_timeval_fndecl_64422
146020 +disable_so_addr_sst_byt_address_info_64439 addr sst_byt_address_info 0 64439 NULL nohasharray
146021 +disable_so_hashhi_smsc911x_data_64439 hashhi smsc911x_data 0 64439 &disable_so_addr_sst_byt_address_info_64439
146022 +disable_so_do_set_clk_freq_fndecl_64447 do_set_clk_freq fndecl 2 64447 NULL
146023 +disable_so_sctp_bind_addr_dup_fndecl_64448 sctp_bind_addr_dup fndecl 3 64448 NULL
146024 +disable_so_rtsc_init_fndecl_64458 rtsc_init fndecl 3-4 64458 NULL
146025 +disable_so_bg_inode_bitmap_ext3_group_desc_64471 bg_inode_bitmap ext3_group_desc 0 64471 NULL
146026 +disable_so_qla8044_wr_reg_indirect_fndecl_64475 qla8044_wr_reg_indirect fndecl 2-3 64475 NULL
146027 +disable_so_switch_time_wl18xx_cmd_channel_switch_64491 switch_time wl18xx_cmd_channel_switch 0 64491 NULL
146028 +disable_so_address_acpi_table_desc_64497 address acpi_table_desc 0 64497 NULL
146029 +disable_so_loading_timeout_vardecl_firmware_class_c_64498 loading_timeout vardecl_firmware_class.c 0 64498 NULL nohasharray
146030 +disable_so_ceph_aes_encrypt_fndecl_64498 ceph_aes_encrypt fndecl 2-6 64498 &disable_so_loading_timeout_vardecl_firmware_class_c_64498
146031 +disable_so_xfrm_state_addr_cmp_fndecl_64504 xfrm_state_addr_cmp fndecl 3 64504 NULL
146032 +disable_so_gc_timer_value___bridge_info_64506 gc_timer_value __bridge_info 0 64506 NULL
146033 +disable_so_x25_addr_aton_fndecl_64507 x25_addr_aton fndecl 0 64507 NULL
146034 +disable_so_nci_request_fndecl_64508 nci_request fndecl 0-4 64508 NULL
146035 +disable_so_ufs_get_de_namlen_fndecl_64510 ufs_get_de_namlen fndecl 0 64510 NULL
146036 +disable_so_crypto_blkcipher_encrypt_iv_fndecl_64517 crypto_blkcipher_encrypt_iv fndecl 0-4 64517 NULL
146037 +disable_so_bfa_fcs_lport_ns_gid_ft_response_fndecl_64527 bfa_fcs_lport_ns_gid_ft_response fndecl 4-5-6 64527 NULL
146038 +disable_so_memtype_devlog_memaddr16_devlog_fw_devlog_cmd_64529 memtype_devlog_memaddr16_devlog fw_devlog_cmd 0 64529 NULL
146039 +disable_so_osc_clock_deviation_drxd_state_64533 osc_clock_deviation drxd_state 0 64533 NULL
146040 +disable_so_mwl8k_cmd_del_mac_addr_fndecl_64540 mwl8k_cmd_del_mac_addr fndecl 0 64540 NULL
146041 +disable_so_sysctl_llc2_ack_timeout_vardecl_64541 sysctl_llc2_ack_timeout vardecl 0 64541 NULL
146042 +disable_so_dm_hash_init_fndecl_64547 dm_hash_init fndecl 0 64547 NULL
146043 +disable_so_setup_cluster_bitmap_fndecl_64549 setup_cluster_bitmap fndecl 4-5-6-7 64549 NULL
146044 +disable_so_regcache_rbtree_get_register_fndecl_64551 regcache_rbtree_get_register fndecl 0-3 64551 NULL
146045 +disable_so_seq_put_decimal_ll_fndecl_64554 seq_put_decimal_ll fndecl 3 64554 NULL
146046 +disable_so_do_timerfd_gettime_fndecl_64594 do_timerfd_gettime fndecl 1 64594 NULL
146047 +disable_so_ctrl_addr___cache_64596 ctrl_addr __cache 0 64596 NULL
146048 +disable_so_writepage_address_space_operations_64597 writepage address_space_operations 0 64597 NULL
146049 +disable_so_hcd_pci_runtime_suspend_fndecl_64602 hcd_pci_runtime_suspend fndecl 0 64602 NULL
146050 +disable_so_maxadj_clocksource_64615 maxadj clocksource 0 64615 NULL nohasharray
146051 +disable_so_delay_lms283gf05_seq_64615 delay lms283gf05_seq 0 64615 &disable_so_maxadj_clocksource_64615
146052 +disable_so_stv0900_get_lock_timeout_fndecl_64620 stv0900_get_lock_timeout fndecl 3 64620 NULL
146053 +disable_so_clk_div_tifm_sd_64621 clk_div tifm_sd 0 64621 NULL
146054 +disable_so_sleep_dvb_frontend_ops_64644 sleep dvb_frontend_ops 0 64644 NULL
146055 +disable_so_tuner_addr_au0828_board_64647 tuner_addr au0828_board 0 64647 NULL
146056 +disable_so_ds1305_get_time_fndecl_64652 ds1305_get_time fndecl 0 64652 NULL
146057 +disable_so_efx_soft_enable_interrupts_fndecl_64659 efx_soft_enable_interrupts fndecl 0 64659 NULL
146058 +disable_so_elements_bitmap_ip_64674 elements bitmap_ip 0 64674 NULL
146059 +disable_so_pcf8563_get_datetime_fndecl_64678 pcf8563_get_datetime fndecl 0 64678 NULL
146060 +disable_so_buf_dma_addr_slgt_desc_64694 buf_dma_addr slgt_desc 0 64694 NULL
146061 +disable_so_twl_aen_sync_time_fndecl_64703 twl_aen_sync_time fndecl 2 64703 NULL
146062 +disable_so_exit_signal_task_struct_64705 exit_signal task_struct 0 64705 NULL
146063 +disable_so_wm8804_runtime_resume_fndecl_64707 wm8804_runtime_resume fndecl 0 64707 NULL
146064 +disable_so_adis16334_set_freq_fndecl_64712 adis16334_set_freq fndecl 0 64712 NULL
146065 +disable_so_menf21bmc_wdt_settimeout_fndecl_64721 menf21bmc_wdt_settimeout fndecl 2-0 64721 NULL
146066 +disable_so_sec_pps_ktime_64728 sec pps_ktime 0 64728 NULL nohasharray
146067 +disable_so_virtual_tsc_khz_kvm_vcpu_arch_64728 virtual_tsc_khz kvm_vcpu_arch 0 64728 &disable_so_sec_pps_ktime_64728
146068 +disable_so_set_timeout_fndecl_64741 set_timeout fndecl 1 64741 NULL
146069 +disable_so_posix_timer_by_id_fndecl_64744 posix_timer_by_id fndecl 1 64744 NULL
146070 +disable_so_sclk_fb_div_pll_ct_64751 sclk_fb_div pll_ct 0 64751 NULL nohasharray
146071 +disable_so_add_msr_offset_fndecl_64751 add_msr_offset fndecl 1 64751 &disable_so_sclk_fb_div_pll_ct_64751
146072 +disable_so_il_get_active_dwell_time_fndecl_64753 il_get_active_dwell_time fndecl 0-3 64753 NULL
146073 +disable_so_crypto_cbc_decrypt_inplace_fndecl_64755 crypto_cbc_decrypt_inplace fndecl 0 64755 NULL
146074 +disable_so_undertime_cbq_class_64773 undertime cbq_class 0 64773 NULL nohasharray
146075 +disable_so_beacon_time_iwl_mac_data_ap_64773 beacon_time iwl_mac_data_ap 0 64773 &disable_so_undertime_cbq_class_64773
146076 +disable_so_gpio_to_desc_fndecl_64785 gpio_to_desc fndecl 1 64785 NULL nohasharray
146077 +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
146078 +disable_so_cherryview_rps_rpe_freq_fndecl_64792 cherryview_rps_rpe_freq fndecl 0 64792 NULL
146079 +disable_so_phys_addr_matrox_device_64795 phys_addr matrox_device 0 64795 NULL
146080 +disable_so_iwl_mvm_time_event_send_add_fndecl_64805 iwl_mvm_time_event_send_add fndecl 0 64805 NULL nohasharray
146081 +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
146082 +disable_so_hub_set_address_fndecl_64806 hub_set_address fndecl 2 64806 NULL
146083 +disable_so_tegra_slink_runtime_resume_fndecl_64822 tegra_slink_runtime_resume fndecl 0 64822 NULL
146084 +disable_so_head_hashfn_fndecl_64825 head_hashfn fndecl 0 64825 NULL
146085 +disable_so_time_queue_snd_seq_client_port_64827 time_queue snd_seq_client_port 0 64827 NULL
146086 +disable_so_bitmap_clear_ll_fndecl_64837 bitmap_clear_ll fndecl 0-2-3 64837 NULL
146087 +disable_so_dma_beacon_response_time_ath9k_ops_config_64844 dma_beacon_response_time ath9k_ops_config 0 64844 NULL
146088 +disable_so_aic_cal_start_time_ath9k_hw_aic_64848 aic_cal_start_time ath9k_hw_aic 0 64848 NULL
146089 +disable_so_dram_freq_ast2300_dram_param_64872 dram_freq ast2300_dram_param 0 64872 NULL
146090 +disable_so_uv_rtc_unset_timer_fndecl_64879 uv_rtc_unset_timer fndecl 1 64879 NULL
146091 +disable_so_xclkpagefaultdelay_pll_ct_64883 xclkpagefaultdelay pll_ct 0 64883 NULL
146092 +disable_so_ipvs_mt_addrcmp_fndecl_64884 ipvs_mt_addrcmp fndecl 4 64884 NULL
146093 +disable_so_base_addr_adf_bar_64885 base_addr adf_bar 0 64885 NULL
146094 +disable_so_ctimensec_fuse_attr_64891 ctimensec fuse_attr 0 64891 NULL
146095 +disable_so_ims_pcu_ofn_bit_show_fndecl_64893 ims_pcu_ofn_bit_show fndecl 0 64893 NULL
146096 +disable_so_regvalue__pll_div_64897 regvalue _pll_div 0 64897 NULL
146097 +disable_so_mode_ata_timing_64902 mode ata_timing 0 64902 NULL
146098 +disable_so_size_mtrr_sentry_64908 size mtrr_sentry 0 64908 NULL
146099 +disable_so_i2c_addr_dibx000_i2c_master_64923 i2c_addr dibx000_i2c_master 0 64923 NULL
146100 +disable_so_go7007_usb_read_interrupt_fndecl_64943 go7007_usb_read_interrupt fndecl 0 64943 NULL
146101 +disable_so_db_page_addr_ocrdma_create_srq_uresp_64946 db_page_addr ocrdma_create_srq_uresp 0 64946 NULL
146102 +disable_so_resolution_snd_timer_hardware_64953 resolution snd_timer_hardware 0 64953 NULL
146103 +disable_so___virt_addr_valid_fndecl_64955 __virt_addr_valid fndecl 1 64955 NULL
146104 +disable_so_nilfs_btree_insert_fndecl_64974 nilfs_btree_insert fndecl 0-2 64974 NULL
146105 +disable_so_nearest_clock_vml_sys_64980 nearest_clock vml_sys 2-0 64980 NULL
146106 +disable_so_crypto_cmac_module_init_fndecl_64981 crypto_cmac_module_init fndecl 0 64981 NULL
146107 +disable_so_cx23885_set_freq_via_ops_fndecl_64991 cx23885_set_freq_via_ops fndecl 0 64991 NULL
146108 +disable_so_hfdiv_code_dib0090_pll_64992 hfdiv_code dib0090_pll 0 64992 NULL
146109 +disable_so_phonet_address_get_fndecl_65002 phonet_address_get fndecl 0-2 65002 NULL
146110 +disable_so_xtime_sec_timekeeper_65003 xtime_sec timekeeper 0 65003 NULL
146111 +disable_so_fll_outdiv__fll_div_65007 fll_outdiv _fll_div 0 65007 NULL
146112 +disable_so_spi_max_frequency_ti_qspi_65008 spi_max_frequency ti_qspi 0 65008 NULL
146113 +disable_so_switch_time_iwl6000_channel_switch_cmd_65010 switch_time iwl6000_channel_switch_cmd 0 65010 NULL
146114 +disable_so_timeout_usdhi6_host_65012 timeout usdhi6_host 0 65012 NULL nohasharray
146115 +disable_so_dirtied_time_when_inode_65012 dirtied_time_when inode 0 65012 &disable_so_timeout_usdhi6_host_65012
146116 +disable_so_sys_settimeofday_fndecl_65021 sys_settimeofday fndecl 0 65021 NULL
146117 +disable_so_dummy_clock_read_fndecl_65029 dummy_clock_read fndecl 0 65029 NULL
146118 +disable_so_bitmap_load_fndecl_65032 bitmap_load fndecl 0 65032 NULL
146119 +disable_so_crypto_register_aead_fndecl_65065 crypto_register_aead fndecl 0 65065 NULL
146120 +disable_so_clock_frequency_sc18is602_platform_data_65066 clock_frequency sc18is602_platform_data 0 65066 NULL
146121 +disable_so_zd1201_get_freq_fndecl_65079 zd1201_get_freq fndecl 0 65079 NULL
146122 +disable_so_test_bitmaps_fndecl_65080 test_bitmaps fndecl 0 65080 NULL
146123 +disable_so_before_ctime_nsec_nfsd4_change_info_65085 before_ctime_nsec nfsd4_change_info 0 65085 NULL
146124 +disable_so_evtbd_addr_lo_host_cmd_ds_pcie_details_65086 evtbd_addr_lo host_cmd_ds_pcie_details 0 65086 NULL
146125 +disable_so_cursor_addr_gma_crtc_65091 cursor_addr gma_crtc 0 65091 NULL
146126 +disable_so_atomic_set_property_drm_crtc_funcs_65096 atomic_set_property drm_crtc_funcs 0-4 65096 NULL
146127 +disable_so_add_timer_on_fndecl_65097 add_timer_on fndecl 2 65097 NULL
146128 +disable_so_ccp_sha_final_fndecl_65104 ccp_sha_final fndecl 0 65104 NULL
146129 +disable_so_ip_vs_dbg_addr_fndecl_65105 ip_vs_dbg_addr fndecl 1 65105 NULL
146130 +disable_so_gl_hold_time_gfs2_glock_65107 gl_hold_time gfs2_glock 0 65107 NULL
146131 +disable_so_crypto_shash_update_fndecl_65113 crypto_shash_update fndecl 0-3 65113 NULL
146132 +disable_so_sleep_wake_pci_platform_pm_ops_65121 sleep_wake pci_platform_pm_ops 0 65121 NULL
146133 +disable_so_snd_hdsp_info_clock_source_fndecl_65123 snd_hdsp_info_clock_source fndecl 0 65123 NULL
146134 +disable_so_trace_clock_global_fndecl_65145 trace_clock_global fndecl 0 65145 NULL
146135 +disable_so_timestamp_iwl_rx_phy_info_65153 timestamp iwl_rx_phy_info 0 65153 NULL
146136 +disable_so_d_btimer_xfs_disk_dquot_65155 d_btimer xfs_disk_dquot 0 65155 NULL
146137 +disable_so_mthca_mr_alloc_phys_fndecl_65161 mthca_mr_alloc_phys fndecl 7-5-2-4-0 65161 NULL
146138 +disable_so_var_to_timing_fndecl_65170 var_to_timing fndecl 2-3 65170 NULL
146139 +disable_so_p2div_pmu1_plltab_entry_65173 p2div pmu1_plltab_entry 0 65173 NULL nohasharray
146140 +disable_so_kszphy_ack_interrupt_fndecl_65173 kszphy_ack_interrupt fndecl 0 65173 &disable_so_p2div_pmu1_plltab_entry_65173
146141 +disable_so_timeout_mgsl_struct_65176 timeout mgsl_struct 0 65176 NULL nohasharray
146142 +disable_so_amd_uncore_attr_show_cpumask_fndecl_65176 amd_uncore_attr_show_cpumask fndecl 0 65176 &disable_so_timeout_mgsl_struct_65176
146143 +disable_so_padata_register_cpumask_notifier_fndecl_65178 padata_register_cpumask_notifier fndecl 0 65178 NULL
146144 +disable_so_bit_clear_fndecl_65181 bit_clear fndecl 3-4-5-6 65181 NULL
146145 +disable_so_addr_wil_fw_data_gw4_65184 addr wil_fw_data_gw4 0 65184 NULL
146146 +disable_so_phy_addr_skge_hw_65197 phy_addr skge_hw 0 65197 NULL
146147 +disable_so_xen_cpuid_xenpf_pcpuinfo_65200 xen_cpuid xenpf_pcpuinfo 0 65200 NULL
146148 +disable_so_vsync_v4l2_bt_timings_65208 vsync v4l2_bt_timings 0 65208 NULL nohasharray
146149 +disable_so_vmcb_msrpm_nested_state_65208 vmcb_msrpm nested_state 0 65208 &disable_so_vsync_v4l2_bt_timings_65208
146150 +disable_so_determine_event_timeout_rsi_hw_65216 determine_event_timeout rsi_hw 0 65216 NULL
146151 +disable_so_rax_kvm_regs_65218 rax kvm_regs 0 65218 NULL
146152 +disable_so_tms_utime_compat_tms_65221 tms_utime compat_tms 0 65221 NULL
146153 +disable_so_ip_vs_ftp_get_addrport_fndecl_65224 ip_vs_ftp_get_addrport fndecl 4 65224 NULL
146154 +disable_so_dclk_radeon_uvd_clock_voltage_dependency_entry_65235 dclk radeon_uvd_clock_voltage_dependency_entry 0 65235 NULL
146155 +disable_so_sin6_port_sockaddr_in6_65238 sin6_port sockaddr_in6 0 65238 NULL
146156 +disable_so_mtrr_del_page_fndecl_65239 mtrr_del_page fndecl 2-3 65239 NULL
146157 +disable_so_timestamp_sec_rt2x00dump_hdr_65245 timestamp_sec rt2x00dump_hdr 0 65245 NULL
146158 +disable_so_snd_interval_mulkdiv_fndecl_65264 snd_interval_mulkdiv fndecl 2 65264 NULL
146159 +disable_so_ktime_sec_timekeeper_65270 ktime_sec timekeeper 0 65270 NULL nohasharray
146160 +disable_so_pid_fcgs_gidft_resp_s_65270 pid fcgs_gidft_resp_s 0 65270 &disable_so_ktime_sec_timekeeper_65270
146161 +disable_so_mmc_set_signal_voltage_fndecl_65277 mmc_set_signal_voltage fndecl 0-3 65277 NULL
146162 +disable_so_addr_lo_pm4_query_status_65283 addr_lo pm4_query_status 0 65283 NULL
146163 +disable_so_wep_interrupt_read_fndecl_65287 wep_interrupt_read fndecl 3-0 65287 NULL
146164 +disable_so_timeout_qib_qp_65289 timeout qib_qp 0 65289 NULL
146165 +disable_so_cpuid_edx_fndecl_65291 cpuid_edx fndecl 0 65291 NULL
146166 +disable_so_q2_addr_high_nes_qp_context_65298 q2_addr_high nes_qp_context 0 65298 NULL
146167 +disable_so_addr_f7188x_sio_65304 addr f7188x_sio 0 65304 NULL
146168 +disable_so_st_mtime___old_kernel_stat_65306 st_mtime __old_kernel_stat 0 65306 NULL
146169 +disable_so_radeon_fence_wait_seq_timeout_fndecl_65307 radeon_fence_wait_seq_timeout fndecl 4-0 65307 NULL
146170 +disable_so_runtime_suspend_power_mode_cyapa_65317 runtime_suspend_power_mode cyapa 0 65317 NULL
146171 +disable_so_ieee80211_crypto_ccmp_encrypt_fndecl_65319 ieee80211_crypto_ccmp_encrypt fndecl 2 65319 NULL
146172 +disable_so_bbaddr_drm_i915_error_ring_65323 bbaddr drm_i915_error_ring 0 65323 NULL
146173 +disable_so_nmi_timer_stop_cpu_fndecl_65325 nmi_timer_stop_cpu fndecl 1 65325 NULL
146174 +disable_so_crypto_aead_encrypt_fndecl_65326 crypto_aead_encrypt fndecl 0 65326 NULL
146175 +disable_so_d_rtbtimer_fs_disk_quota_65332 d_rtbtimer fs_disk_quota 0 65332 NULL
146176 +disable_so_si_calculate_cac_wintime_fndecl_65336 si_calculate_cac_wintime fndecl 0 65336 NULL
146177 +disable_so_baseaddr_l_mvumi_sgl_65375 baseaddr_l mvumi_sgl 0 65375 NULL
146178 +disable_so_current_flash_timeout_max77693_led_device_65379 current_flash_timeout max77693_led_device 0 65379 NULL
146179 +disable_so_shunt_div_ina2xx_config_65385 shunt_div ina2xx_config 0 65385 NULL
146180 +disable_so_waiting_set_timer_fndecl_65387 waiting_set_timer fndecl 2 65387 NULL
146181 +disable_so_tms_cutime_tms_65396 tms_cutime tms 0 65396 NULL
146182 +disable_so_wl1271_acx_rx_msdu_life_time_fndecl_65398 wl1271_acx_rx_msdu_life_time fndecl 0 65398 NULL
146183 +disable_so_phy_addr_ax88172a_private_65403 phy_addr ax88172a_private 0 65403 NULL
146184 +disable_so_vm_exit_msr_store_addr_vmcs12_65409 vm_exit_msr_store_addr vmcs12 0 65409 NULL
146185 +disable_so_reorder_timeout_l2tp_session_cfg_65412 reorder_timeout l2tp_session_cfg 0 65412 NULL nohasharray
146186 +disable_so_bit_spin_lock_fndecl_65412 bit_spin_lock fndecl 1 65412 &disable_so_reorder_timeout_l2tp_session_cfg_65412
146187 +disable_so_data_address_mspro_param_register_65413 data_address mspro_param_register 0 65413 NULL
146188 +disable_so_addr_hwsq_reg_65417 addr hwsq_reg 0 65417 NULL
146189 +disable_so_nla_put_u64_fndecl_65419 nla_put_u64 fndecl 3-0 65419 NULL
146190 +disable_so_dma_addr_vb2_dc_buf_65420 dma_addr vb2_dc_buf 0 65420 NULL
146191 +disable_so_snd_timer_stop_fndecl_65441 snd_timer_stop fndecl 0 65441 NULL
146192 +disable_so_down_timeout_fndecl_65445 down_timeout fndecl 2-0 65445 NULL
146193 +disable_so_sys_timer_gettime_fndecl_65465 sys_timer_gettime fndecl 1 65465 NULL
146194 +disable_so_pnp_printf_fndecl_65468 pnp_printf fndecl 0 65468 NULL
146195 +disable_so_write_reg_cc770_priv_65479 write_reg cc770_priv 3 65479 NULL
146196 +disable_so_create_time_stateowner_id_65480 create_time stateowner_id 0 65480 NULL
146197 +disable_so_q2_addr_low_nes_qp_context_65481 q2_addr_low nes_qp_context 0 65481 NULL
146198 +disable_so_nvme_io_timeout_vardecl_65489 nvme_io_timeout vardecl 0 65489 NULL nohasharray
146199 +disable_so_index_nilfs_btree_readahead_info_65489 index nilfs_btree_readahead_info 0 65489 &disable_so_nvme_io_timeout_vardecl_65489
146200 +disable_so_i_uid_f2fs_inode_65496 i_uid f2fs_inode 0 65496 NULL
146201 +disable_so_enc_cd_paddr_qat_alg_aead_ctx_65505 enc_cd_paddr qat_alg_aead_ctx 0 65505 NULL
146202 +disable_so_s5m_rtc_set_time_fndecl_65518 s5m_rtc_set_time fndecl 0 65518 NULL
146203 +disable_so_addr_w83627hf_data_65526 addr w83627hf_data 0 65526 NULL
146204 +disable_so_si_pt_regs_65527 si pt_regs 0 65527 NULL
146205 +enable_so_rts_threshold_wiphy_15170 rts_threshold wiphy 0 15170 NULL
146206 +enable_so_value_iw_param_65472 value iw_param 0 65472 NULL
146207 +enable_so_value_acpi_object_integer_44755 value acpi_object_integer 0 44755 NULL
146208 +enable_so_idx_ieee80211_tx_rate_64646 idx ieee80211_tx_rate 0 64646 NULL
146209 +enable_so_rs_get_adjacent_rate_fndecl_28334 rs_get_adjacent_rate fndecl 0-2 28334 NULL
146210 +enable_so_index_rs_rate_53 index rs_rate 0 53 NULL
146211 +enable_so_l1_xfs_bmbt_rec_host_22094 l1 xfs_bmbt_rec_host 0 22094 NULL
146212 +enable_so_l0_xfs_bmbt_rec_host_34805 l0 xfs_bmbt_rec_host 0 34805 NULL
146213 +enable_so_max_scsi_cmds_megasas_instance_35835 max_scsi_cmds megasas_instance 0 35835 NULL
146214 +enable_so_throttlequeuedepth_megasas_instance_42316 throttlequeuedepth megasas_instance 0 42316 NULL
146215 +enable_so_max_fw_cmds_megasas_instance_53309 max_fw_cmds megasas_instance 0 53309 NULL
146216 +enable_so_max_num_sge_megasas_instance_55755 max_num_sge megasas_instance 0 55755 NULL
146217 +enable_so_max_sectors_per_req_megasas_instance_56408 max_sectors_per_req megasas_instance 0 56408 NULL
146218 +enable_so_max_mfi_cmds_megasas_instance_19731 max_mfi_cmds megasas_instance 0 19731 NULL
146219 +enable_so_read_fw_status_reg_megasas_instance_template_13572 read_fw_status_reg megasas_instance_template 0 13572 NULL
146220 +enable_so_eip_x86_emulate_ctxt_12354 eip x86_emulate_ctxt 0 12354 NULL
146221 +enable_so_next_rip_x86_instruction_info_56868 next_rip x86_instruction_info 0 56868 NULL
146222 +enable_so_exit_int_info_vmcb_control_area_18357 exit_int_info vmcb_control_area 0 18357 NULL
146223 +enable_so_exit_info_1_vmcb_control_area_20200 exit_info_1 vmcb_control_area 0 20200 NULL
146224 +enable_so_event_inj_vmcb_control_area_23434 event_inj vmcb_control_area 0 23434 NULL
146225 +enable_so_iopm_base_pa_vmcb_control_area_57998 iopm_base_pa vmcb_control_area 0 57998 NULL
146226 +enable_so_i_size_lo_ext4_inode_40153 i_size_lo ext4_inode 0 40153 NULL
146227 +enable_so_i_size_high_ext4_inode_18545 i_size_high ext4_inode 0 18545 NULL
146228 +enable_so_nr_kvm_queued_interrupt_34927 nr kvm_queued_interrupt 0 34927 NULL
146229 +enable_so_last_used_idx_vhost_virtqueue_40059 last_used_idx vhost_virtqueue 0 40059 NULL
146230 diff --git a/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
146231 new file mode 100644
146232 index 0000000..be9724d
146233 --- /dev/null
146234 +++ b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
146235 @@ -0,0 +1,103 @@
146236 +#!/bin/bash
146237 +
146238 +# This script generates the hash table (size_overflow_hash.h) for the size_overflow gcc plugin (size_overflow_plugin.c).
146239 +
146240 +header1="size_overflow_hash.h"
146241 +database="size_overflow_hash.data"
146242 +n=65536
146243 +hashtable_name="size_overflow_hash"
146244 +
146245 +usage() {
146246 +cat <<EOF
146247 +usage: $0 options
146248 +OPTIONS:
146249 + -h|--help help
146250 + -o header file
146251 + -d database file
146252 + -n hash array size
146253 + -s name of the hash table
146254 +EOF
146255 + return 0
146256 +}
146257 +
146258 +while true
146259 +do
146260 + case "$1" in
146261 + -h|--help) usage && exit 0;;
146262 + -n) n=$2; shift 2;;
146263 + -o) header1="$2"; shift 2;;
146264 + -d) database="$2"; shift 2;;
146265 + -s) hashtable_name="$2"; shift 2;;
146266 + --) shift 1; break ;;
146267 + *) break ;;
146268 + esac
146269 +done
146270 +
146271 +create_defines() {
146272 + for i in `seq 0 31`
146273 + do
146274 + echo -e "#define PARAM"$i" (1U << "$i")" >> "$header1"
146275 + done
146276 + echo >> "$header1"
146277 +}
146278 +
146279 +create_structs() {
146280 + rm -f "$header1"
146281 +
146282 + create_defines
146283 +
146284 + cat "$database" | while read data
146285 + do
146286 + data_array=($data)
146287 + struct_hash_name="${data_array[0]}"
146288 + funcn="${data_array[1]}"
146289 + context="${data_array[2]}"
146290 + params="${data_array[3]}"
146291 + next="${data_array[5]}"
146292 +
146293 + echo "const struct size_overflow_hash $struct_hash_name = {" >> "$header1"
146294 +
146295 + echo -e "\t.next\t= $next,\n\t.name\t= \"$funcn\",\n\t.context\t= \"$context\"," >> "$header1"
146296 + echo -en "\t.param\t= " >> "$header1"
146297 + line=
146298 + for param_num in ${params//-/ };
146299 + do
146300 + line="${line}PARAM"$param_num"|"
146301 + done
146302 +
146303 + echo -e "${line%?},\n};\n" >> "$header1"
146304 + done
146305 +}
146306 +
146307 +create_headers() {
146308 + echo "const struct size_overflow_hash * const $hashtable_name[$n] = {" >> "$header1"
146309 +}
146310 +
146311 +create_array_elements() {
146312 + index=0
146313 + grep -v "nohasharray" $database | sort -n -k 5 | while read data
146314 + do
146315 + data_array=($data)
146316 + i="${data_array[4]}"
146317 + hash="${data_array[0]}"
146318 + while [[ $index -lt $i ]]
146319 + do
146320 + echo -e "\t["$index"]\t= NULL," >> "$header1"
146321 + index=$(($index + 1))
146322 + done
146323 + index=$(($index + 1))
146324 + echo -e "\t["$i"]\t= &"$hash"," >> "$header1"
146325 + done
146326 + echo '};' >> $header1
146327 +}
146328 +
146329 +size_overflow_plugin_dir=`dirname $header1`
146330 +if [ "$size_overflow_plugin_dir" != '.' ]; then
146331 + mkdir -p "$size_overflow_plugin_dir" 2> /dev/null
146332 +fi
146333 +
146334 +create_structs
146335 +create_headers
146336 +create_array_elements
146337 +
146338 +exit 0
146339 diff --git a/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
146340 new file mode 100644
146341 index 0000000..cc20d48
146342 --- /dev/null
146343 +++ b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
146344 @@ -0,0 +1,416 @@
146345 +/*
146346 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
146347 + * Licensed under the GPL v2, or (at your option) v3
146348 + *
146349 + * Homepage:
146350 + * https://github.com/ephox-gcc-plugins/size_overflow
146351 + *
146352 + * Documentation:
146353 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
146354 + *
146355 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
146356 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
146357 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
146358 + *
146359 + * Usage:
146360 + * $ make
146361 + * $ make run
146362 + */
146363 +
146364 +#include "size_overflow.h"
146365 +
146366 +// Data for the size_overflow asm stmt
146367 +struct asm_data {
146368 + // call or return stmt with our attributes
146369 + gimple target_stmt;
146370 + // def_stmt of the marked arg
146371 + gimple def_stmt;
146372 + // size_overflow asm rhs
146373 + tree input;
146374 + // the output (lhs) of the size_overflow asm is the marked arg
146375 + tree output;
146376 + // marked arg number (0 for return values)
146377 + unsigned int argnum;
146378 + // intentional mark type
146379 + enum intentional_mark intentional_mark;
146380 +};
146381 +
146382 +static void __unused print_asm_data(struct asm_data *asm_data)
146383 +{
146384 + fprintf(stderr, "-----------------------\nprint_asm_data:\n");
146385 +
146386 + fprintf(stderr, "def_stmt\n");
146387 + debug_gimple_stmt(asm_data->def_stmt);
146388 + fprintf(stderr, "target_stmt\n");
146389 + debug_gimple_stmt(asm_data->target_stmt);
146390 + fprintf(stderr, "output\n");
146391 + debug_tree(asm_data->output);
146392 + fprintf(stderr, "input\n");
146393 + debug_tree(asm_data->input);
146394 +}
146395 +
146396 +static const char *convert_mark_to_str(enum intentional_mark mark)
146397 +{
146398 + switch (mark) {
146399 + case MARK_NO:
146400 + return OK_ASM_STR;
146401 + case MARK_YES:
146402 + return YES_ASM_STR;
146403 + case MARK_END_INTENTIONAL:
146404 + return END_INTENTIONAL_ASM_STR;
146405 + case MARK_TURN_OFF:
146406 + return TURN_OFF_ASM_STR;
146407 + }
146408 + gcc_unreachable();
146409 +}
146410 +
146411 +static char *create_asm_comment(struct asm_data *asm_data, const char *mark_str)
146412 +{
146413 + const char *fn_name;
146414 + char *asm_comment;
146415 + unsigned int len;
146416 +
146417 + if (gimple_code(asm_data->target_stmt) == GIMPLE_RETURN)
146418 + fn_name = DECL_NAME_POINTER(current_function_decl);
146419 + else
146420 + fn_name = DECL_NAME_POINTER(gimple_call_fndecl(asm_data->target_stmt));
146421 +
146422 + len = asprintf(&asm_comment, "%s %s %u", mark_str, fn_name, asm_data->argnum);
146423 + gcc_assert(len > 0);
146424 +
146425 + return asm_comment;
146426 +}
146427 +
146428 +#if BUILDING_GCC_VERSION <= 4007
146429 +static VEC(tree, gc) *create_asm_io_list(tree string, tree io)
146430 +#else
146431 +static vec<tree, va_gc> *create_asm_io_list(tree string, tree io)
146432 +#endif
146433 +{
146434 + tree list;
146435 +#if BUILDING_GCC_VERSION <= 4007
146436 + VEC(tree, gc) *vec_list = NULL;
146437 +#else
146438 + vec<tree, va_gc> *vec_list = NULL;
146439 +#endif
146440 +
146441 + list = build_tree_list(NULL_TREE, string);
146442 + list = chainon(NULL_TREE, build_tree_list(list, io));
146443 +#if BUILDING_GCC_VERSION <= 4007
146444 + VEC_safe_push(tree, gc, vec_list, list);
146445 +#else
146446 + vec_safe_push(vec_list, list);
146447 +#endif
146448 + return vec_list;
146449 +}
146450 +
146451 +static void create_so_asm_stmt(struct asm_data *asm_data)
146452 +{
146453 + char *asm_comment;
146454 + const char *mark_str;
146455 + gasm *asm_stmt;
146456 + gimple_stmt_iterator gsi;
146457 + tree str_input, str_output;
146458 +#if BUILDING_GCC_VERSION <= 4007
146459 + VEC(tree, gc) *input = NULL, *output = NULL;
146460 +#else
146461 + vec<tree, va_gc> *input = NULL, *output = NULL;
146462 +#endif
146463 +
146464 + mark_str = convert_mark_to_str(asm_data->intentional_mark);
146465 + asm_comment = create_asm_comment(asm_data, mark_str);
146466 +
146467 + str_input = build_string(2, "0");
146468 + input = create_asm_io_list(str_input, asm_data->input);
146469 + str_output = build_string(4, "=rm");
146470 + output = create_asm_io_list(str_output, asm_data->output);
146471 +
146472 + asm_stmt = as_a_gasm(gimple_build_asm_vec(asm_comment, input, output, NULL, NULL));
146473 + gimple_asm_set_volatile(asm_stmt, true);
146474 +
146475 + gsi = gsi_for_stmt(asm_data->def_stmt);
146476 + gsi_insert_after(&gsi, asm_stmt, GSI_NEW_STMT);
146477 +
146478 + SSA_NAME_DEF_STMT(asm_data->output) = asm_stmt;
146479 +
146480 + free(asm_comment);
146481 +}
146482 +
146483 +static void check_size_overflow_asm(struct asm_data *asm_data)
146484 +{
146485 + enum intentional_mark old_intentional_mark = get_so_asm_type(asm_data->def_stmt);
146486 +
146487 + if (old_intentional_mark == asm_data->intentional_mark)
146488 + return;
146489 + if (asm_data->intentional_mark == MARK_NO)
146490 + return;
146491 +
146492 + print_intentional_mark(old_intentional_mark);
146493 + print_intentional_mark(asm_data->intentional_mark);
146494 + gcc_unreachable();
146495 +}
146496 +
146497 +static tree get_so_asm_output(struct asm_data *asm_data)
146498 +{
146499 + gimple stmt = asm_data->target_stmt;
146500 + unsigned int argnum = asm_data->argnum;
146501 +
146502 + switch (gimple_code(stmt)) {
146503 + case GIMPLE_RETURN:
146504 + gcc_assert(argnum == 0);
146505 + return gimple_return_retval(as_a_greturn(stmt));
146506 + case GIMPLE_CALL:
146507 + gcc_assert(argnum != 0);
146508 + gcc_assert(gimple_call_num_args(stmt) >= argnum);
146509 + return gimple_call_arg(stmt, argnum - 1);
146510 + default:
146511 + debug_gimple_stmt(stmt);
146512 + gcc_unreachable();
146513 + }
146514 +}
146515 +
146516 +static tree get_so_asm_input(struct asm_data *asm_data)
146517 +{
146518 + gassign *assign;
146519 + tree output_type, new_var;
146520 + gimple_stmt_iterator gsi;
146521 +
146522 + output_type = TREE_TYPE(asm_data->output);
146523 + new_var = create_new_var(output_type);
146524 +
146525 + assign = gimple_build_assign(new_var, asm_data->output);
146526 + gimple_assign_set_lhs(assign, make_ssa_name(new_var, assign));
146527 +
146528 + gsi = gsi_for_stmt(asm_data->target_stmt);
146529 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
146530 +
146531 + asm_data->def_stmt = assign;
146532 +
146533 + new_var = create_new_var(output_type);
146534 + asm_data->output = make_ssa_name(new_var, asm_data->target_stmt);
146535 +
146536 + return gimple_assign_lhs(assign);
146537 +}
146538 +
146539 +static void set_so_asm_input_target_stmt(struct asm_data *asm_data)
146540 +{
146541 + switch (gimple_code(asm_data->target_stmt)) {
146542 + case GIMPLE_CALL:
146543 + gimple_call_set_arg(asm_data->target_stmt, asm_data->argnum - 1, asm_data->output);
146544 + break;
146545 + case GIMPLE_RETURN:
146546 + gimple_return_set_retval(as_a_greturn(asm_data->target_stmt), asm_data->output);
146547 + break;
146548 + default:
146549 + debug_gimple_stmt(asm_data->target_stmt);
146550 + gcc_unreachable();
146551 + }
146552 +
146553 + update_stmt(asm_data->def_stmt);
146554 +}
146555 +
146556 +/* This is the gimple part of searching for a missing size_overflow attribute. If the intentional_overflow attribute type
146557 + * is of the right kind create the appropriate size_overflow asm stmts:
146558 + * __asm__("# size_overflow MARK_END_INTENTIONAL" : =rm" D.3344_8 : "0" cicus.4_16);
146559 + * __asm__("# size_overflow MARK_NO" : =rm" cicus.4_16 : "0" size_1(D));
146560 + */
146561 +static void insert_size_overflow_asm(gimple stmt, unsigned int argnum, enum intentional_mark intentional_mark)
146562 +{
146563 + struct asm_data asm_data;
146564 +
146565 + asm_data.target_stmt = stmt;
146566 + asm_data.argnum = argnum;
146567 + asm_data.intentional_mark = intentional_mark;
146568 +
146569 + asm_data.output = get_so_asm_output(&asm_data);
146570 + if (asm_data.output == NULL_TREE)
146571 + return;
146572 + if (is_gimple_constant(asm_data.output))
146573 + return;
146574 + if (skip_types(asm_data.output))
146575 + return;
146576 +
146577 + asm_data.def_stmt = get_def_stmt(asm_data.output);
146578 + if (is_size_overflow_asm(asm_data.def_stmt)) {
146579 + check_size_overflow_asm(&asm_data);
146580 + return;
146581 + }
146582 +
146583 + asm_data.input = get_so_asm_input(&asm_data);
146584 +
146585 + create_so_asm_stmt(&asm_data);
146586 + set_so_asm_input_target_stmt(&asm_data);
146587 +
146588 + update_stmt(asm_data.def_stmt);
146589 + update_stmt(asm_data.target_stmt);
146590 +}
146591 +
146592 +// Determine the correct arg index and arg and insert the asm stmt to mark the stmt.
146593 +static void insert_so_asm_by_so_attr(gimple stmt, unsigned int orig_argnum)
146594 +{
146595 + if (orig_argnum == 0 && gimple_code(stmt) == GIMPLE_RETURN) {
146596 + insert_size_overflow_asm(stmt, 0, MARK_NO);
146597 + return;
146598 + }
146599 +
146600 + if (orig_argnum != 0 && gimple_code(stmt) == GIMPLE_CALL)
146601 + insert_size_overflow_asm(stmt, orig_argnum, MARK_NO);
146602 +}
146603 +
146604 +// If a function arg or the return value is marked by the size_overflow attribute then set its index in the array.
146605 +static void set_argnum_attribute(const_tree attr, bool *argnums)
146606 +{
146607 + unsigned int argnum;
146608 + tree attr_value;
146609 +
146610 + gcc_assert(attr);
146611 + for (attr_value = TREE_VALUE(attr); attr_value; attr_value = TREE_CHAIN(attr_value)) {
146612 + argnum = (unsigned int)tree_to_uhwi(TREE_VALUE(attr_value));
146613 + argnums[argnum] = true;
146614 + }
146615 +}
146616 +
146617 +// Check whether the arguments are marked by the size_overflow attribute.
146618 +static void search_interesting_so_args(tree fndecl, bool *argnums)
146619 +{
146620 + const_tree attr;
146621 +
146622 + attr = get_attribute("size_overflow", fndecl);
146623 + if (attr)
146624 + set_argnum_attribute(attr, argnums);
146625 +}
146626 +
146627 +static enum intentional_mark handle_intentional_attr(gimple stmt, unsigned int argnum)
146628 +{
146629 + const_tree fndecl;
146630 + enum intentional_mark mark;
146631 +
146632 + mark = check_intentional_attribute(stmt, argnum);
146633 + if (mark == MARK_NO)
146634 + return MARK_NO;
146635 + if (gimple_code(stmt) == GIMPLE_RETURN)
146636 + fndecl = current_function_decl;
146637 + else
146638 + fndecl = gimple_call_fndecl(stmt);
146639 + if (fndecl == NULL_TREE && !get_size_overflow_hash_entry_tree(fndecl, argnum, DISABLE_SIZE_OVERFLOW))
146640 + return MARK_NO;
146641 + insert_size_overflow_asm(stmt, argnum, mark);
146642 + return mark;
146643 +}
146644 +
146645 +static void handle_size_overflow_attr_ret(greturn *stmt)
146646 +{
146647 + enum intentional_mark mark;
146648 + bool orig_argnums[MAX_PARAM + 1] = {false};
146649 +
146650 + search_interesting_so_args(get_orig_fndecl(current_function_decl), (bool *) &orig_argnums);
146651 +
146652 + mark = handle_intentional_attr(stmt, 0);
146653 + if (mark == MARK_NO && orig_argnums[0])
146654 + insert_so_asm_by_so_attr(stmt, 0);
146655 +}
146656 +
146657 +// If the argument(s) of the callee function are marked by an attribute then mark the call stmt with an asm stmt
146658 +static void handle_size_overflow_attr_call(gcall *stmt)
146659 +{
146660 + tree fndecl;
146661 + unsigned int argnum;
146662 + bool orig_argnums[MAX_PARAM + 1] = {false};
146663 +
146664 + fndecl = get_interesting_orig_fndecl_from_stmt(stmt);
146665 + if (fndecl == NULL_TREE)
146666 + return;
146667 + if (DECL_BUILT_IN(fndecl))
146668 + return;
146669 +
146670 + search_interesting_so_args(fndecl, (bool *) &orig_argnums);
146671 +
146672 + for (argnum = 1; argnum <= gimple_call_num_args(stmt); argnum++) {
146673 + enum intentional_mark mark = handle_intentional_attr(stmt, argnum);
146674 +
146675 + if (mark == MARK_NO && !is_vararg(fndecl, argnum) && orig_argnums[argnum])
146676 + insert_so_asm_by_so_attr(stmt, argnum);
146677 + }
146678 +}
146679 +
146680 +// Iterate over all the stmts and search for call stmts and mark them if they have size_overflow attribute
146681 +static unsigned int search_interesting_functions(void)
146682 +{
146683 + basic_block bb;
146684 +
146685 + FOR_EACH_BB_FN(bb, cfun) {
146686 + gimple_stmt_iterator gsi;
146687 +
146688 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
146689 + gimple stmt = gsi_stmt(gsi);
146690 +
146691 + if (is_gimple_call(stmt))
146692 + handle_size_overflow_attr_call(as_a_gcall(stmt));
146693 + else if (gimple_code(stmt) == GIMPLE_RETURN)
146694 + handle_size_overflow_attr_ret(as_a_greturn(stmt));
146695 + }
146696 + }
146697 + return 0;
146698 +}
146699 +
146700 +/*
146701 + * A lot of functions get inlined before the ipa passes so after the build_ssa gimple pass
146702 + * this pass inserts asm stmts to mark the interesting args
146703 + * that the ipa pass will detect and insert the size overflow checks for.
146704 + */
146705 +#if BUILDING_GCC_VERSION >= 4009
146706 +static const struct pass_data insert_size_overflow_asm_pass_data = {
146707 +#else
146708 +static struct gimple_opt_pass insert_size_overflow_asm_pass = {
146709 + .pass = {
146710 +#endif
146711 + .type = GIMPLE_PASS,
146712 + .name = "insert_size_overflow_asm",
146713 +#if BUILDING_GCC_VERSION >= 4008
146714 + .optinfo_flags = OPTGROUP_NONE,
146715 +#endif
146716 +#if BUILDING_GCC_VERSION >= 5000
146717 +#elif BUILDING_GCC_VERSION >= 4009
146718 + .has_gate = false,
146719 + .has_execute = true,
146720 +#else
146721 + .gate = NULL,
146722 + .execute = search_interesting_functions,
146723 + .sub = NULL,
146724 + .next = NULL,
146725 + .static_pass_number = 0,
146726 +#endif
146727 + .tv_id = TV_NONE,
146728 + .properties_required = PROP_cfg,
146729 + .properties_provided = 0,
146730 + .properties_destroyed = 0,
146731 + .todo_flags_start = 0,
146732 + .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
146733 +#if BUILDING_GCC_VERSION < 4009
146734 + }
146735 +#endif
146736 +};
146737 +
146738 +#if BUILDING_GCC_VERSION >= 4009
146739 +namespace {
146740 +class insert_size_overflow_asm_pass : public gimple_opt_pass {
146741 +public:
146742 + insert_size_overflow_asm_pass() : gimple_opt_pass(insert_size_overflow_asm_pass_data, g) {}
146743 +#if BUILDING_GCC_VERSION >= 5000
146744 + virtual unsigned int execute(function *) { return search_interesting_functions(); }
146745 +#else
146746 + unsigned int execute() { return search_interesting_functions(); }
146747 +#endif
146748 +};
146749 +}
146750 +
146751 +opt_pass *make_insert_size_overflow_asm_pass(void)
146752 +{
146753 + return new insert_size_overflow_asm_pass();
146754 +}
146755 +#else
146756 +struct opt_pass *make_insert_size_overflow_asm_pass(void)
146757 +{
146758 + return &insert_size_overflow_asm_pass.pass;
146759 +}
146760 +#endif
146761 diff --git a/tools/gcc/size_overflow_plugin/intentional_overflow.c b/tools/gcc/size_overflow_plugin/intentional_overflow.c
146762 new file mode 100644
146763 index 0000000..7d9135d
146764 --- /dev/null
146765 +++ b/tools/gcc/size_overflow_plugin/intentional_overflow.c
146766 @@ -0,0 +1,1032 @@
146767 +/*
146768 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
146769 + * Licensed under the GPL v2, or (at your option) v3
146770 + *
146771 + * Homepage:
146772 + * https://github.com/ephox-gcc-plugins/size_overflow
146773 + *
146774 + * Documentation:
146775 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
146776 + *
146777 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
146778 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
146779 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
146780 + *
146781 + * Usage:
146782 + * $ make
146783 + * $ make run
146784 + */
146785 +
146786 +#include "size_overflow.h"
146787 +
146788 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs);
146789 +
146790 +static const char *get_asm_string(const gasm *stmt)
146791 +{
146792 + if (stmt)
146793 + return gimple_asm_string(stmt);
146794 + return NULL;
146795 +}
146796 +
146797 +tree get_size_overflow_asm_input(const gasm *stmt)
146798 +{
146799 + gcc_assert(gimple_asm_ninputs(stmt) != 0);
146800 + return TREE_VALUE(gimple_asm_input_op(stmt, 0));
146801 +}
146802 +
146803 +bool is_size_overflow_insert_check_asm(const gasm *stmt)
146804 +{
146805 + const char *str;
146806 +
146807 + if (!is_size_overflow_asm(stmt))
146808 + return false;
146809 +
146810 + str = get_asm_string(stmt);
146811 + if (!str)
146812 + return false;
146813 + return !strncmp(str, OK_ASM_STR, sizeof(OK_ASM_STR) - 1);
146814 +}
146815 +
146816 +bool is_size_overflow_asm(const_gimple stmt)
146817 +{
146818 + const char *str;
146819 +
146820 + if (!stmt)
146821 + return false;
146822 + if (gimple_code(stmt) != GIMPLE_ASM)
146823 + return false;
146824 +
146825 + str = get_asm_string(as_a_const_gasm(stmt));
146826 + if (!str)
146827 + return false;
146828 + return !strncmp(str, SO_ASM_STR, sizeof(SO_ASM_STR) - 1);
146829 +}
146830 +
146831 +static bool is_size_overflow_intentional_asm_turn_off(const gasm *stmt)
146832 +{
146833 + const char *str;
146834 +
146835 + if (!is_size_overflow_asm(stmt))
146836 + return false;
146837 +
146838 + str = get_asm_string(stmt);
146839 + if (!str)
146840 + return false;
146841 + return !strncmp(str, TURN_OFF_ASM_STR, sizeof(TURN_OFF_ASM_STR) - 1);
146842 +}
146843 +
146844 +static bool is_size_overflow_intentional_asm_end(const gasm *stmt)
146845 +{
146846 + const char *str;
146847 +
146848 + if (!is_size_overflow_asm(stmt))
146849 + return false;
146850 +
146851 + str = get_asm_string(stmt);
146852 + if (!str)
146853 + return false;
146854 + return !strncmp(str, END_INTENTIONAL_ASM_STR, sizeof(END_INTENTIONAL_ASM_STR) - 1);
146855 +}
146856 +
146857 +/* Get the param of the intentional_overflow attribute.
146858 + * * 0: MARK_END_INTENTIONAL
146859 + * * 1..MAX_PARAM: MARK_YES
146860 + * * -1: MARK_TURN_OFF
146861 + */
146862 +static tree get_attribute_param(const_tree decl)
146863 +{
146864 + const_tree attr;
146865 +
146866 + if (decl == NULL_TREE)
146867 + return NULL_TREE;
146868 +
146869 + attr = get_attribute("intentional_overflow", decl);
146870 + if (attr)
146871 + return TREE_VALUE(attr);
146872 + return NULL_TREE;
146873 +}
146874 +
146875 +// MARK_TURN_OFF
146876 +static bool is_turn_off_intentional_attr(const_tree decl)
146877 +{
146878 + const_tree param_head;
146879 +
146880 + param_head = get_attribute_param(decl);
146881 + if (param_head == NULL_TREE)
146882 + return false;
146883 +
146884 + if (tree_to_shwi(TREE_VALUE(param_head)) == -1)
146885 + return true;
146886 + return false;
146887 +}
146888 +
146889 +// MARK_END_INTENTIONAL
146890 +static bool is_end_intentional_intentional_attr(const_tree decl)
146891 +{
146892 + const_tree param_head;
146893 +
146894 + param_head = get_attribute_param(decl);
146895 + if (param_head == NULL_TREE)
146896 + return false;
146897 +
146898 + if (tree_to_shwi(TREE_VALUE(param_head)) == 0)
146899 + return true;
146900 + return false;
146901 +}
146902 +
146903 +// MARK_YES
146904 +static bool is_yes_intentional_attr(const_tree decl, unsigned int argnum)
146905 +{
146906 + tree param, param_head;
146907 +
146908 + if (argnum == 0)
146909 + return false;
146910 +
146911 + param_head = get_attribute_param(decl);
146912 + for (param = param_head; param; param = TREE_CHAIN(param)) {
146913 + int argval = tree_to_shwi(TREE_VALUE(param));
146914 +
146915 + if (argval <= 0)
146916 + continue;
146917 + if (argnum == (unsigned int)argval)
146918 + return true;
146919 + }
146920 + return false;
146921 +}
146922 +
146923 +static void print_missing_intentional(enum intentional_mark callee_attr, enum intentional_mark caller_attr, const_tree decl, unsigned int argnum)
146924 +{
146925 + const struct size_overflow_hash *hash;
146926 +// location_t loc;
146927 +
146928 + if (caller_attr == MARK_NO || caller_attr == MARK_END_INTENTIONAL || caller_attr == MARK_TURN_OFF)
146929 + return;
146930 +
146931 + if (callee_attr == MARK_END_INTENTIONAL || callee_attr == MARK_YES)
146932 + return;
146933 +
146934 + hash = get_size_overflow_hash_entry_tree(decl, argnum, SIZE_OVERFLOW);
146935 + if (!hash)
146936 + return;
146937 +
146938 +// !!!
146939 +// loc = DECL_SOURCE_LOCATION(decl);
146940 +// inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", DECL_NAME_POINTER(decl), argnum);
146941 +}
146942 +
146943 +// Get the field decl of a component ref for intentional_overflow checking
146944 +static const_tree search_field_decl(const_tree comp_ref)
146945 +{
146946 + const_tree field = NULL_TREE;
146947 + unsigned int i, len = TREE_OPERAND_LENGTH(comp_ref);
146948 +
146949 + for (i = 0; i < len; i++) {
146950 + field = TREE_OPERAND(comp_ref, i);
146951 + if (TREE_CODE(field) == FIELD_DECL)
146952 + break;
146953 + }
146954 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
146955 + return field;
146956 +}
146957 +
146958 +/* Get the type of the intentional_overflow attribute of a node
146959 + * * MARK_TURN_OFF
146960 + * * MARK_YES
146961 + * * MARK_NO
146962 + * * MARK_END_INTENTIONAL
146963 + */
146964 +enum intentional_mark get_intentional_attr_type(const_tree node)
146965 +{
146966 + const_tree cur_decl;
146967 +
146968 + if (node == NULL_TREE)
146969 + return MARK_NO;
146970 +
146971 + switch (TREE_CODE(node)) {
146972 + case COMPONENT_REF:
146973 + cur_decl = search_field_decl(node);
146974 + // !!! temporarily ignore bitfield types
146975 + if (DECL_BIT_FIELD_TYPE(cur_decl))
146976 + return MARK_YES;
146977 + if (is_turn_off_intentional_attr(cur_decl))
146978 + return MARK_TURN_OFF;
146979 + if (is_end_intentional_intentional_attr(cur_decl))
146980 + return MARK_YES;
146981 + break;
146982 + case PARM_DECL: {
146983 + unsigned int argnum;
146984 +
146985 + cur_decl = get_orig_fndecl(current_function_decl);
146986 + argnum = find_arg_number_tree(node, cur_decl);
146987 + if (argnum == CANNOT_FIND_ARG)
146988 + return MARK_NO;
146989 + if (is_yes_intentional_attr(cur_decl, argnum))
146990 + return MARK_YES;
146991 + if (is_end_intentional_intentional_attr(cur_decl))
146992 + return MARK_END_INTENTIONAL;
146993 + break;
146994 + }
146995 + case FUNCTION_DECL: {
146996 + const_tree fndecl = get_orig_fndecl(node);
146997 +
146998 + if (is_turn_off_intentional_attr(fndecl))
146999 + return MARK_TURN_OFF;
147000 + if (is_end_intentional_intentional_attr(fndecl))
147001 + return MARK_END_INTENTIONAL;
147002 + break;
147003 + }
147004 + case FIELD_DECL:
147005 + // !!! temporarily ignore bitfield types
147006 + if (DECL_BIT_FIELD_TYPE(node))
147007 + return MARK_YES;
147008 + case VAR_DECL:
147009 + if (is_end_intentional_intentional_attr(node))
147010 + return MARK_END_INTENTIONAL;
147011 + if (is_turn_off_intentional_attr(node))
147012 + return MARK_TURN_OFF;
147013 + default:
147014 + break;
147015 + }
147016 + return MARK_NO;
147017 +}
147018 +
147019 +static enum intentional_mark walk_use_def_phi(gimple_set *visited, const_tree result)
147020 +{
147021 + enum intentional_mark mark = MARK_NO;
147022 + gphi *phi = as_a_gphi(get_def_stmt(result));
147023 + unsigned int i, n = gimple_phi_num_args(phi);
147024 +
147025 + pointer_set_insert(visited, phi);
147026 + for (i = 0; i < n; i++) {
147027 + tree arg = gimple_phi_arg_def(phi, i);
147028 +
147029 + mark = walk_use_def(visited, arg);
147030 + if (mark != MARK_NO)
147031 + return mark;
147032 + }
147033 +
147034 + return mark;
147035 +}
147036 +
147037 +static enum intentional_mark walk_use_def_binary(gimple_set *visited, const_tree lhs)
147038 +{
147039 + enum intentional_mark mark;
147040 + tree rhs1, rhs2;
147041 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
147042 +
147043 + rhs1 = gimple_assign_rhs1(def_stmt);
147044 + rhs2 = gimple_assign_rhs2(def_stmt);
147045 +
147046 + mark = walk_use_def(visited, rhs1);
147047 + if (mark == MARK_NO)
147048 + return walk_use_def(visited, rhs2);
147049 + return mark;
147050 +}
147051 +
147052 +enum intentional_mark get_so_asm_type(const_gimple stmt)
147053 +{
147054 + const gasm *asm_stmt;
147055 +
147056 + if (!stmt)
147057 + return MARK_NO;
147058 + if (!is_size_overflow_asm(stmt))
147059 + return MARK_NO;
147060 +
147061 + asm_stmt = as_a_const_gasm(stmt);
147062 + if (is_size_overflow_insert_check_asm(asm_stmt))
147063 + return MARK_NO;
147064 + if (is_size_overflow_intentional_asm_turn_off(asm_stmt))
147065 + return MARK_TURN_OFF;
147066 + if (is_size_overflow_intentional_asm_end(asm_stmt))
147067 + return MARK_END_INTENTIONAL;
147068 + return MARK_YES;
147069 +}
147070 +
147071 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs)
147072 +{
147073 + const_gimple def_stmt;
147074 +
147075 + if (TREE_CODE(lhs) != SSA_NAME)
147076 + return get_intentional_attr_type(lhs);
147077 +
147078 + def_stmt = get_def_stmt(lhs);
147079 + gcc_assert(def_stmt);
147080 +
147081 + if (pointer_set_insert(visited, def_stmt))
147082 + return MARK_NO;
147083 +
147084 + switch (gimple_code(def_stmt)) {
147085 + case GIMPLE_CALL:
147086 + case GIMPLE_RETURN:
147087 + return MARK_NO;
147088 + case GIMPLE_NOP:
147089 + return walk_use_def(visited, SSA_NAME_VAR(lhs));
147090 + case GIMPLE_ASM:
147091 + return get_so_asm_type(as_a_const_gasm(def_stmt));
147092 + case GIMPLE_PHI:
147093 + return walk_use_def_phi(visited, lhs);
147094 + case GIMPLE_ASSIGN:
147095 + switch (gimple_num_ops(def_stmt)) {
147096 + case 2:
147097 + return walk_use_def(visited, gimple_assign_rhs1(def_stmt));
147098 + case 3:
147099 + return walk_use_def_binary(visited, lhs);
147100 + }
147101 + default:
147102 + debug_gimple_stmt((gimple)def_stmt);
147103 + error("%s: unknown gimple code", __func__);
147104 + gcc_unreachable();
147105 + }
147106 +}
147107 +
147108 +enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var)
147109 +{
147110 + enum intentional_mark mark;
147111 + gimple_set *visited;
147112 +
147113 + if (is_turn_off_intentional_attr(get_orig_fndecl(current_function_decl)))
147114 + return MARK_TURN_OFF;
147115 +
147116 + visited = pointer_set_create();
147117 + mark = walk_use_def(visited, var);
147118 + pointer_set_destroy(visited);
147119 +
147120 + return mark;
147121 +}
147122 +
147123 +/* Search intentional_overflow attribute on caller and on callee too.
147124 + * -1 / MARK_TURN_OFF: means that overflow checking is turned off inside the function and
147125 + * parameters aren't tracked backwards.
147126 + * 1..31 / MARK_YES: e.g., 4 means that overflow checking is turned off on the fourth parameter inside
147127 + * the function.
147128 + * 0 / MARK_END_INTENTIONAL: means that overflow checking is turned off on all the parameters of the function
147129 + * in all callers (on a structure field means that overflow checking is turned off
147130 + * in all expressions involving the given field).
147131 + */
147132 +enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum)
147133 +{
147134 + enum intentional_mark caller_mark, callee_mark;
147135 + const_tree fndecl, orig_cur_fndecl, arg;
147136 +
147137 + orig_cur_fndecl = get_orig_fndecl(current_function_decl);
147138 +
147139 + // handle MARK_TURN_OFF early on the caller
147140 + if (is_turn_off_intentional_attr(orig_cur_fndecl))
147141 + return MARK_TURN_OFF;
147142 + // handle MARK_END_INTENTIONAL on the caller
147143 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
147144 + return MARK_END_INTENTIONAL;
147145 +
147146 + switch (gimple_code(stmt)) {
147147 + case GIMPLE_RETURN:
147148 + gcc_assert(argnum == 0);
147149 + // for now ignore other intentional attribute types on returns
147150 + return MARK_NO;
147151 + case GIMPLE_CALL:
147152 + gcc_assert(argnum != 0);
147153 + gcc_assert(argnum <= gimple_call_num_args(stmt));
147154 + arg = gimple_call_arg(stmt, argnum - 1);
147155 + break;
147156 + default:
147157 + debug_gimple_stmt((gimple)stmt);
147158 + gcc_unreachable();
147159 + }
147160 +
147161 + // XXX ideiglenesen 0-nal a fuggvenyen belul is ki van kapcsolva a dupolas, eddig igy mukodott a doksi ellenere
147162 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
147163 + return MARK_END_INTENTIONAL;
147164 +
147165 + fndecl = get_interesting_orig_fndecl_from_stmt(as_a_const_gcall(stmt));
147166 + // handle MARK_TURN_OFF on the callee
147167 + if (is_turn_off_intentional_attr(fndecl))
147168 + return MARK_TURN_OFF;
147169 + // find a defining marked caller argument or struct field for arg
147170 + caller_mark = check_intentional_size_overflow_asm_and_attribute(arg);
147171 +
147172 + // did we find a marked struct field?
147173 + if (caller_mark == MARK_TURN_OFF)
147174 + return MARK_TURN_OFF;
147175 +
147176 + // handle MARK_END_INTENTIONAL on the callee
147177 + if (is_end_intentional_intentional_attr(fndecl))
147178 + callee_mark = MARK_END_INTENTIONAL;
147179 + // is it a marked callee parameter?
147180 + else if (is_yes_intentional_attr(fndecl, argnum))
147181 + callee_mark = MARK_YES;
147182 + else
147183 + callee_mark = MARK_NO;
147184 +
147185 + // no intentional attribute found
147186 + if (callee_mark == MARK_NO && caller_mark == MARK_NO)
147187 + return MARK_NO;
147188 +
147189 + // MARK_YES is meaningful only on the caller
147190 + if (caller_mark == MARK_NO && callee_mark == MARK_YES)
147191 + return MARK_NO;
147192 +
147193 + // we found a code region where we don't want to duplicate
147194 + if (caller_mark == MARK_YES && callee_mark == MARK_END_INTENTIONAL)
147195 + return MARK_END_INTENTIONAL;
147196 +
147197 + // ignore the intentional attribute on the callee if we didn't find a marked defining argument or struct field
147198 + if (caller_mark == MARK_NO && callee_mark == MARK_END_INTENTIONAL)
147199 + return MARK_NO;
147200 +
147201 + // the callee is missing the intentional attribute (MARK_YES or MARK_END_INTENTIONAL)
147202 + if (caller_mark == MARK_YES) {
147203 + print_missing_intentional(callee_mark, caller_mark, fndecl, argnum);
147204 + return MARK_YES;
147205 + }
147206 +
147207 + fprintf(stderr, "caller: %s callee: %s\n", DECL_NAME_POINTER(orig_cur_fndecl), DECL_NAME_POINTER(fndecl));
147208 + debug_gimple_stmt((gimple)stmt);
147209 + print_intentional_mark(caller_mark);
147210 + print_intentional_mark(callee_mark);
147211 + gcc_unreachable();
147212 +}
147213 +
147214 +bool is_a_cast_and_const_overflow(const_tree no_const_rhs)
147215 +{
147216 + const_tree rhs1, lhs, rhs1_type, lhs_type;
147217 + enum machine_mode lhs_mode, rhs_mode;
147218 + gimple def_stmt = get_def_stmt(no_const_rhs);
147219 +
147220 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
147221 + return false;
147222 +
147223 + rhs1 = gimple_assign_rhs1(def_stmt);
147224 + lhs = gimple_assign_lhs(def_stmt);
147225 + rhs1_type = TREE_TYPE(rhs1);
147226 + lhs_type = TREE_TYPE(lhs);
147227 + rhs_mode = TYPE_MODE(rhs1_type);
147228 + lhs_mode = TYPE_MODE(lhs_type);
147229 + if (TYPE_UNSIGNED(lhs_type) == TYPE_UNSIGNED(rhs1_type) || lhs_mode != rhs_mode)
147230 + return false;
147231 +
147232 + return true;
147233 +}
147234 +
147235 +static unsigned int uses_num(tree node)
147236 +{
147237 + imm_use_iterator imm_iter;
147238 + use_operand_p use_p;
147239 + unsigned int num = 0;
147240 +
147241 + FOR_EACH_IMM_USE_FAST(use_p, imm_iter, node) {
147242 + gimple use_stmt = USE_STMT(use_p);
147243 +
147244 + if (use_stmt == NULL)
147245 + return num;
147246 + if (is_gimple_debug(use_stmt))
147247 + continue;
147248 + if (gimple_assign_cast_p(use_stmt) && is_size_overflow_type(gimple_assign_lhs(use_stmt)))
147249 + continue;
147250 + num++;
147251 + }
147252 + return num;
147253 +}
147254 +
147255 +static bool no_uses(tree node)
147256 +{
147257 + return !uses_num(node);
147258 +}
147259 +
147260 +// 3.8.5 mm/page-writeback.c __ilog2_u64(): ret, uint + uintmax; uint -> int; int max
147261 +bool is_const_plus_unsigned_signed_truncation(const_tree lhs)
147262 +{
147263 + tree rhs1, lhs_type, rhs_type, rhs2, not_const_rhs;
147264 + gimple def_stmt = get_def_stmt(lhs);
147265 +
147266 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
147267 + return false;
147268 +
147269 + rhs1 = gimple_assign_rhs1(def_stmt);
147270 + rhs_type = TREE_TYPE(rhs1);
147271 + lhs_type = TREE_TYPE(lhs);
147272 + if (TYPE_UNSIGNED(lhs_type) || !TYPE_UNSIGNED(rhs_type))
147273 + return false;
147274 + if (TYPE_MODE(lhs_type) != TYPE_MODE(rhs_type))
147275 + return false;
147276 +
147277 + def_stmt = get_def_stmt(rhs1);
147278 + if (!def_stmt || !is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 3)
147279 + return false;
147280 +
147281 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR)
147282 + return false;
147283 +
147284 + rhs1 = gimple_assign_rhs1(def_stmt);
147285 + rhs2 = gimple_assign_rhs2(def_stmt);
147286 + if (!is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
147287 + return false;
147288 +
147289 + if (is_gimple_constant(rhs2))
147290 + not_const_rhs = rhs1;
147291 + else
147292 + not_const_rhs = rhs2;
147293 +
147294 + return no_uses(not_const_rhs);
147295 +}
147296 +
147297 +static bool is_lt_signed_type_max(const_tree rhs)
147298 +{
147299 + const_tree new_type, type_max, type = TREE_TYPE(rhs);
147300 +
147301 + if (!TYPE_UNSIGNED(type))
147302 + return true;
147303 +
147304 + switch (TYPE_MODE(type)) {
147305 + case QImode:
147306 + new_type = intQI_type_node;
147307 + break;
147308 + case HImode:
147309 + new_type = intHI_type_node;
147310 + break;
147311 + case SImode:
147312 + new_type = intSI_type_node;
147313 + break;
147314 + case DImode:
147315 + new_type = intDI_type_node;
147316 + break;
147317 + default:
147318 + debug_tree((tree)type);
147319 + gcc_unreachable();
147320 + }
147321 +
147322 + type_max = TYPE_MAX_VALUE(new_type);
147323 + if (!tree_int_cst_lt(type_max, rhs))
147324 + return true;
147325 +
147326 + return false;
147327 +}
147328 +
147329 +static bool is_gt_zero(const_tree rhs)
147330 +{
147331 + const_tree type = TREE_TYPE(rhs);
147332 +
147333 + if (TYPE_UNSIGNED(type))
147334 + return true;
147335 +
147336 + if (!tree_int_cst_lt(rhs, integer_zero_node))
147337 + return true;
147338 +
147339 + return false;
147340 +}
147341 +
147342 +bool is_a_constant_overflow(const gassign *stmt, const_tree rhs)
147343 +{
147344 + if (gimple_assign_rhs_code(stmt) == MIN_EXPR)
147345 + return false;
147346 + if (!is_gimple_constant(rhs))
147347 + return false;
147348 +
147349 + // if the const is between 0 and the max value of the signed type of the same bitsize then there is no intentional overflow
147350 + if (is_lt_signed_type_max(rhs) && is_gt_zero(rhs))
147351 + return false;
147352 +
147353 + return true;
147354 +}
147355 +
147356 +static tree change_assign_rhs(struct visited *visited, gassign *stmt, const_tree orig_rhs, tree new_rhs)
147357 +{
147358 + const_gimple assign;
147359 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
147360 + tree origtype = TREE_TYPE(orig_rhs);
147361 +
147362 + assign = build_cast_stmt(visited, origtype, new_rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
147363 + pointer_set_insert(visited->my_stmts, assign);
147364 + return get_lhs(assign);
147365 +}
147366 +
147367 +tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2)
147368 +{
147369 + tree new_rhs, orig_rhs;
147370 + void (*gimple_assign_set_rhs)(gimple, tree);
147371 + tree rhs1 = gimple_assign_rhs1(stmt);
147372 + tree rhs2 = gimple_assign_rhs2(stmt);
147373 + tree lhs = gimple_assign_lhs(stmt);
147374 +
147375 + if (!check_overflow)
147376 + return create_assign(visited, stmt, lhs, AFTER_STMT);
147377 +
147378 + if (change_rhs == NULL_TREE)
147379 + return create_assign(visited, stmt, lhs, AFTER_STMT);
147380 +
147381 + if (new_rhs2 == NULL_TREE) {
147382 + orig_rhs = rhs1;
147383 + gimple_assign_set_rhs = &gimple_assign_set_rhs1;
147384 + } else {
147385 + orig_rhs = rhs2;
147386 + gimple_assign_set_rhs = &gimple_assign_set_rhs2;
147387 + }
147388 +
147389 + check_size_overflow(expand_from, stmt, TREE_TYPE(change_rhs), change_rhs, orig_rhs, BEFORE_STMT);
147390 +
147391 + new_rhs = change_assign_rhs(visited, stmt, orig_rhs, change_rhs);
147392 + gimple_assign_set_rhs(stmt, new_rhs);
147393 + update_stmt(stmt);
147394 +
147395 + return create_assign(visited, stmt, lhs, AFTER_STMT);
147396 +}
147397 +
147398 +static bool is_subtraction_special(struct visited *visited, const gassign *stmt)
147399 +{
147400 + gimple rhs1_def_stmt, rhs2_def_stmt;
147401 + const_tree rhs1_def_stmt_rhs1, rhs2_def_stmt_rhs1, rhs1_def_stmt_lhs, rhs2_def_stmt_lhs;
147402 + enum machine_mode rhs1_def_stmt_rhs1_mode, rhs2_def_stmt_rhs1_mode, rhs1_def_stmt_lhs_mode, rhs2_def_stmt_lhs_mode;
147403 + const_tree rhs1 = gimple_assign_rhs1(stmt);
147404 + const_tree rhs2 = gimple_assign_rhs2(stmt);
147405 +
147406 + if (is_gimple_constant(rhs1) || is_gimple_constant(rhs2))
147407 + return false;
147408 +
147409 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
147410 + return false;
147411 +
147412 + gcc_assert(TREE_CODE(rhs1) == SSA_NAME && TREE_CODE(rhs2) == SSA_NAME);
147413 +
147414 + rhs1_def_stmt = get_def_stmt(rhs1);
147415 + rhs2_def_stmt = get_def_stmt(rhs2);
147416 + if (!gimple_assign_cast_p(rhs1_def_stmt) || !gimple_assign_cast_p(rhs2_def_stmt))
147417 + return false;
147418 +
147419 + rhs1_def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
147420 + rhs2_def_stmt_rhs1 = gimple_assign_rhs1(rhs2_def_stmt);
147421 + rhs1_def_stmt_lhs = gimple_assign_lhs(rhs1_def_stmt);
147422 + rhs2_def_stmt_lhs = gimple_assign_lhs(rhs2_def_stmt);
147423 + rhs1_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_rhs1));
147424 + rhs2_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_rhs1));
147425 + rhs1_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_lhs));
147426 + rhs2_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_lhs));
147427 + if (GET_MODE_BITSIZE(rhs1_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs1_def_stmt_lhs_mode))
147428 + return false;
147429 + if (GET_MODE_BITSIZE(rhs2_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs2_def_stmt_lhs_mode))
147430 + return false;
147431 +
147432 + pointer_set_insert(visited->no_cast_check, rhs1_def_stmt);
147433 + pointer_set_insert(visited->no_cast_check, rhs2_def_stmt);
147434 + return true;
147435 +}
147436 +
147437 +static gassign *create_binary_assign(struct visited *visited, enum tree_code code, gassign *stmt, tree rhs1, tree rhs2)
147438 +{
147439 + gassign *assign;
147440 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
147441 + tree type = TREE_TYPE(rhs1);
147442 + tree lhs = create_new_var(type);
147443 +
147444 + gcc_assert(types_compatible_p(type, TREE_TYPE(rhs2)));
147445 + assign = as_a_gassign(gimple_build_assign_with_ops(code, lhs, rhs1, rhs2));
147446 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
147447 +
147448 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
147449 + update_stmt(assign);
147450 + pointer_set_insert(visited->my_stmts, assign);
147451 + return assign;
147452 +}
147453 +
147454 +static tree cast_to_TI_type(struct visited *visited, gassign *stmt, tree node)
147455 +{
147456 + gimple_stmt_iterator gsi;
147457 + const_gimple cast_stmt;
147458 + tree type = TREE_TYPE(node);
147459 +
147460 + if (types_compatible_p(type, intTI_type_node))
147461 + return node;
147462 +
147463 + gsi = gsi_for_stmt(stmt);
147464 + cast_stmt = build_cast_stmt(visited, intTI_type_node, node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
147465 + pointer_set_insert(visited->my_stmts, cast_stmt);
147466 + return get_lhs(cast_stmt);
147467 +}
147468 +
147469 +static tree get_def_stmt_rhs(struct visited *visited, const_tree var)
147470 +{
147471 + tree rhs1, def_stmt_rhs1;
147472 + gimple rhs1_def_stmt, def_stmt_rhs1_def_stmt, def_stmt;
147473 +
147474 + def_stmt = get_def_stmt(var);
147475 + if (!gimple_assign_cast_p(def_stmt))
147476 + return NULL_TREE;
147477 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP && pointer_set_contains(visited->my_stmts, def_stmt) && gimple_assign_cast_p(def_stmt));
147478 +
147479 + rhs1 = gimple_assign_rhs1(def_stmt);
147480 + rhs1_def_stmt = get_def_stmt(rhs1);
147481 + if (!gimple_assign_cast_p(rhs1_def_stmt))
147482 + return rhs1;
147483 +
147484 + def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
147485 + def_stmt_rhs1_def_stmt = get_def_stmt(def_stmt_rhs1);
147486 +
147487 + switch (gimple_code(def_stmt_rhs1_def_stmt)) {
147488 + case GIMPLE_CALL:
147489 + case GIMPLE_NOP:
147490 + case GIMPLE_ASM:
147491 + case GIMPLE_PHI:
147492 + return def_stmt_rhs1;
147493 + case GIMPLE_ASSIGN:
147494 + return rhs1;
147495 + default:
147496 + debug_gimple_stmt(def_stmt_rhs1_def_stmt);
147497 + gcc_unreachable();
147498 + }
147499 +}
147500 +
147501 +tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs)
147502 +{
147503 + tree new_rhs1, new_rhs2;
147504 + tree new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1, new_lhs;
147505 + gassign *assign, *stmt = as_a_gassign(get_def_stmt(lhs));
147506 + tree rhs1 = gimple_assign_rhs1(stmt);
147507 + tree rhs2 = gimple_assign_rhs2(stmt);
147508 +
147509 + if (!is_subtraction_special(visited, stmt))
147510 + return NULL_TREE;
147511 +
147512 + new_rhs1 = expand(visited, expand_from, rhs1);
147513 + new_rhs2 = expand(visited, expand_from, rhs2);
147514 +
147515 + new_rhs1_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs1);
147516 + new_rhs2_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs2);
147517 +
147518 + if (new_rhs1_def_stmt_rhs1 == NULL_TREE || new_rhs2_def_stmt_rhs1 == NULL_TREE)
147519 + return NULL_TREE;
147520 +
147521 + if (!types_compatible_p(TREE_TYPE(new_rhs1_def_stmt_rhs1), TREE_TYPE(new_rhs2_def_stmt_rhs1))) {
147522 + new_rhs1_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs1_def_stmt_rhs1);
147523 + new_rhs2_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs2_def_stmt_rhs1);
147524 + }
147525 +
147526 + assign = create_binary_assign(visited, MINUS_EXPR, stmt, new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1);
147527 + new_lhs = gimple_assign_lhs(assign);
147528 + check_size_overflow(expand_from, assign, TREE_TYPE(new_lhs), new_lhs, rhs1, AFTER_STMT);
147529 +
147530 + return dup_assign(visited, stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
147531 +}
147532 +
147533 +bool is_a_neg_overflow(const gassign *stmt, const_tree rhs)
147534 +{
147535 + const_gimple def_stmt;
147536 +
147537 + if (TREE_CODE(rhs) != SSA_NAME)
147538 + return false;
147539 +
147540 + if (gimple_assign_rhs_code(stmt) != PLUS_EXPR)
147541 + return false;
147542 +
147543 + def_stmt = get_def_stmt(rhs);
147544 + if (!is_gimple_assign(def_stmt) || gimple_assign_rhs_code(def_stmt) != BIT_NOT_EXPR)
147545 + return false;
147546 +
147547 + return true;
147548 +}
147549 +
147550 +/* e.g., drivers/acpi/acpica/utids.c acpi_ut_execute_CID()
147551 + * ((count - 1) * sizeof(struct acpi_pnp_dee_id_list) -> (count + fffffff) * 16
147552 + * fffffff * 16 > signed max -> truncate
147553 + */
147554 +static bool look_for_mult_and_add(const_gimple stmt)
147555 +{
147556 + const_tree res;
147557 + tree rhs1, rhs2, def_rhs1, def_rhs2, const_rhs, def_const_rhs;
147558 + const_gimple def_stmt;
147559 +
147560 + if (!stmt || gimple_code(stmt) == GIMPLE_NOP)
147561 + return false;
147562 + if (!is_gimple_assign(stmt))
147563 + return false;
147564 + if (gimple_assign_rhs_code(stmt) != MULT_EXPR)
147565 + return false;
147566 +
147567 + rhs1 = gimple_assign_rhs1(stmt);
147568 + rhs2 = gimple_assign_rhs2(stmt);
147569 + if (is_gimple_constant(rhs1)) {
147570 + const_rhs = rhs1;
147571 + def_stmt = get_def_stmt(rhs2);
147572 + } else if (is_gimple_constant(rhs2)) {
147573 + const_rhs = rhs2;
147574 + def_stmt = get_def_stmt(rhs1);
147575 + } else
147576 + return false;
147577 +
147578 + if (!is_gimple_assign(def_stmt))
147579 + return false;
147580 +
147581 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR && gimple_assign_rhs_code(def_stmt) != MINUS_EXPR)
147582 + return false;
147583 +
147584 + def_rhs1 = gimple_assign_rhs1(def_stmt);
147585 + def_rhs2 = gimple_assign_rhs2(def_stmt);
147586 + if (is_gimple_constant(def_rhs1))
147587 + def_const_rhs = def_rhs1;
147588 + else if (is_gimple_constant(def_rhs2))
147589 + def_const_rhs = def_rhs2;
147590 + else
147591 + return false;
147592 +
147593 + res = fold_binary_loc(gimple_location(def_stmt), MULT_EXPR, TREE_TYPE(const_rhs), const_rhs, def_const_rhs);
147594 + if (is_lt_signed_type_max(res) && is_gt_zero(res))
147595 + return false;
147596 + return true;
147597 +}
147598 +
147599 +enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt)
147600 +{
147601 + const_gimple def_stmt_1, def_stmt_2;
147602 + const_tree rhs1, rhs2;
147603 + bool add_mul_rhs1, add_mul_rhs2;
147604 +
147605 + rhs1 = gimple_assign_rhs1(stmt);
147606 + def_stmt_1 = get_def_stmt(rhs1);
147607 + add_mul_rhs1 = look_for_mult_and_add(def_stmt_1);
147608 +
147609 + rhs2 = gimple_assign_rhs2(stmt);
147610 + def_stmt_2 = get_def_stmt(rhs2);
147611 + add_mul_rhs2 = look_for_mult_and_add(def_stmt_2);
147612 +
147613 + if (add_mul_rhs1)
147614 + return RHS1_INTENTIONAL_OVERFLOW;
147615 + if (add_mul_rhs2)
147616 + return RHS2_INTENTIONAL_OVERFLOW;
147617 + return NO_INTENTIONAL_OVERFLOW;
147618 +}
147619 +
147620 +static gassign *get_dup_stmt(struct visited *visited, gassign *stmt)
147621 +{
147622 + gassign *my_stmt;
147623 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
147624 +
147625 + gsi_next(&gsi);
147626 + my_stmt = as_a_gassign(gsi_stmt(gsi));
147627 +
147628 + gcc_assert(pointer_set_contains(visited->my_stmts, my_stmt));
147629 + if (gimple_assign_cast_p(stmt) && gimple_assign_cast_p(my_stmt))
147630 + return my_stmt;
147631 +
147632 + if (gimple_assign_rhs_code(stmt) != gimple_assign_rhs_code(my_stmt)) {
147633 + fprintf(stderr, "%s != %s\n", get_tree_code_name(gimple_assign_rhs_code(stmt)), get_tree_code_name(gimple_assign_rhs_code(my_stmt)));
147634 + debug_gimple_stmt(stmt);
147635 + debug_gimple_stmt(my_stmt);
147636 + gcc_unreachable();
147637 + }
147638 +
147639 + return my_stmt;
147640 +}
147641 +
147642 +/* unsigned type -> unary or binary assign (rhs1 or rhs2 is constant)
147643 + * unsigned type cast to signed type, unsigned type: no more uses
147644 + * e.g., lib/vsprintf.c:simple_strtol()
147645 + * _10 = (unsigned long int) _9
147646 + * _11 = -_10;
147647 + * _12 = (long int) _11; (_11_ no more uses)
147648 + */
147649 +static bool is_call_or_cast(gimple stmt)
147650 +{
147651 + return gimple_assign_cast_p(stmt) || is_gimple_call(stmt);
147652 +}
147653 +
147654 +static bool is_unsigned_cast_or_call_def_stmt(const_tree node)
147655 +{
147656 + const_tree rhs;
147657 + gimple def_stmt;
147658 +
147659 + if (node == NULL_TREE)
147660 + return true;
147661 + if (is_gimple_constant(node))
147662 + return true;
147663 +
147664 + def_stmt = get_def_stmt(node);
147665 + if (!def_stmt)
147666 + return false;
147667 +
147668 + if (is_call_or_cast(def_stmt))
147669 + return true;
147670 +
147671 + if (!is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 2)
147672 + return false;
147673 + rhs = gimple_assign_rhs1(def_stmt);
147674 + def_stmt = get_def_stmt(rhs);
147675 + if (!def_stmt)
147676 + return false;
147677 + return is_call_or_cast(def_stmt);
147678 +}
147679 +
147680 +void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt)
147681 +{
147682 + unsigned int use_num;
147683 + gassign *so_stmt;
147684 + const_gimple def_stmt;
147685 + const_tree rhs1, rhs2;
147686 + tree rhs = gimple_assign_rhs1(stmt);
147687 + tree lhs_type = TREE_TYPE(gimple_assign_lhs(stmt));
147688 + const_tree rhs_type = TREE_TYPE(rhs);
147689 +
147690 + if (!(TYPE_UNSIGNED(rhs_type) && !TYPE_UNSIGNED(lhs_type)))
147691 + return;
147692 + if (GET_MODE_BITSIZE(TYPE_MODE(rhs_type)) != GET_MODE_BITSIZE(TYPE_MODE(lhs_type)))
147693 + return;
147694 + use_num = uses_num(rhs);
147695 + if (use_num != 1)
147696 + return;
147697 +
147698 + def_stmt = get_def_stmt(rhs);
147699 + if (!def_stmt)
147700 + return;
147701 + if (!is_gimple_assign(def_stmt))
147702 + return;
147703 +
147704 + rhs1 = gimple_assign_rhs1(def_stmt);
147705 + if (!is_unsigned_cast_or_call_def_stmt(rhs1))
147706 + return;
147707 +
147708 + rhs2 = gimple_assign_rhs2(def_stmt);
147709 + if (!is_unsigned_cast_or_call_def_stmt(rhs2))
147710 + return;
147711 + if (gimple_num_ops(def_stmt) == 3 && !is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
147712 + return;
147713 +
147714 + so_stmt = get_dup_stmt(visited, stmt);
147715 + create_up_and_down_cast(visited, so_stmt, lhs_type, gimple_assign_rhs1(so_stmt));
147716 +}
147717 +
147718 +/* gcc intentional overflow
147719 + * e.g., skb_set_network_header(), skb_set_mac_header()
147720 + * -, int offset + u16 network_header
147721 + * offset = -x->props.header_len
147722 + * skb->network_header += offset;
147723 + *
147724 + * SSA
147725 + * _141 = -_140;
147726 + * _154 = (short unsigned int) _141;
147727 + * _155 = (size_overflow_type_SI) _154;
147728 + * _156 = _154 + _155; // 2x
147729 + * _157 = (short unsigned int) _156;
147730 + */
147731 +static bool is_short_cast_neg(const_tree rhs)
147732 +{
147733 + const_tree cast_rhs;
147734 + const_gimple neg_stmt;
147735 + gimple neg_cast_stmt, cast_stmt = get_def_stmt(rhs);
147736 +
147737 + if (!cast_stmt || !gimple_assign_cast_p(cast_stmt))
147738 + return false;
147739 +
147740 + cast_rhs = gimple_assign_rhs1(cast_stmt);
147741 + if (GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(cast_rhs))) >= GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(rhs))))
147742 + return false;
147743 +
147744 + neg_cast_stmt = get_def_stmt(cast_rhs);
147745 + if (!neg_cast_stmt || !gimple_assign_cast_p(neg_cast_stmt))
147746 + return false;
147747 +
147748 + neg_stmt = get_def_stmt(gimple_assign_rhs1(neg_cast_stmt));
147749 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
147750 + return false;
147751 + return gimple_assign_rhs_code(neg_stmt) == NEGATE_EXPR;
147752 +}
147753 +
147754 +static bool check_add_stmt(const_tree node)
147755 +{
147756 + const_gimple add_stmt;
147757 + const_tree add_rhs1, add_rhs2;
147758 +
147759 + if (node == NULL_TREE)
147760 + return false;
147761 +
147762 + add_stmt = get_def_stmt(node);
147763 + if (!add_stmt || !is_gimple_assign(add_stmt) || gimple_assign_rhs_code(add_stmt) != PLUS_EXPR)
147764 + return false;
147765 +
147766 + add_rhs1 = gimple_assign_rhs1(add_stmt);
147767 + add_rhs2 = gimple_assign_rhs2(add_stmt);
147768 + return is_short_cast_neg(add_rhs1) || is_short_cast_neg(add_rhs2);
147769 +}
147770 +
147771 +bool neg_short_add_intentional_overflow(gassign *unary_stmt)
147772 +{
147773 + const_tree rhs1, add_rhs1, add_rhs2, cast_rhs;
147774 + gimple cast_stmt;
147775 + const_gimple add_stmt;
147776 +
147777 + rhs1 = gimple_assign_rhs1(unary_stmt);
147778 +
147779 + cast_stmt = get_def_stmt(rhs1);
147780 + if (!cast_stmt || !gimple_assign_cast_p(cast_stmt))
147781 + return false;
147782 + cast_rhs = gimple_assign_rhs1(cast_stmt);
147783 + if (GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(cast_rhs))) <= GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(rhs1))))
147784 + return false;
147785 +
147786 + // one or two plus expressions
147787 + if (check_add_stmt(cast_rhs))
147788 + return true;
147789 +
147790 + add_stmt = get_def_stmt(cast_rhs);
147791 + if (!add_stmt || !is_gimple_assign(add_stmt))
147792 + return false;
147793 + add_rhs1 = gimple_assign_rhs1(add_stmt);
147794 + if (check_add_stmt(add_rhs1))
147795 + return true;
147796 + add_rhs2 = gimple_assign_rhs2(add_stmt);
147797 + return check_add_stmt(add_rhs2);
147798 +}
147799 diff --git a/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
147800 new file mode 100644
147801 index 0000000..5622b51
147802 --- /dev/null
147803 +++ b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
147804 @@ -0,0 +1,137 @@
147805 +/*
147806 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
147807 + * Licensed under the GPL v2, or (at your option) v3
147808 + *
147809 + * Homepage:
147810 + * https://github.com/ephox-gcc-plugins/size_overflow
147811 + *
147812 + * Documentation:
147813 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
147814 + *
147815 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
147816 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
147817 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
147818 + *
147819 + * Usage:
147820 + * $ make
147821 + * $ make run
147822 + */
147823 +
147824 +#include "size_overflow.h"
147825 +
147826 +bool skip_expr_on_double_type(const gassign *stmt)
147827 +{
147828 + enum tree_code code = gimple_assign_rhs_code(stmt);
147829 +
147830 + switch (code) {
147831 + case RSHIFT_EXPR:
147832 + case TRUNC_DIV_EXPR:
147833 + case CEIL_DIV_EXPR:
147834 + case FLOOR_DIV_EXPR:
147835 + case ROUND_DIV_EXPR:
147836 + case EXACT_DIV_EXPR:
147837 + case RDIV_EXPR:
147838 + case TRUNC_MOD_EXPR:
147839 + case CEIL_MOD_EXPR:
147840 + case FLOOR_MOD_EXPR:
147841 + case ROUND_MOD_EXPR:
147842 + return true;
147843 + default:
147844 + return false;
147845 + }
147846 +}
147847 +
147848 +void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs)
147849 +{
147850 + const_tree orig_rhs1;
147851 + tree down_lhs, new_lhs, dup_type = TREE_TYPE(rhs);
147852 + const_gimple down_cast, up_cast;
147853 + gimple_stmt_iterator gsi = gsi_for_stmt(use_stmt);
147854 +
147855 + down_cast = build_cast_stmt(visited, orig_type, rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
147856 + down_lhs = get_lhs(down_cast);
147857 +
147858 + gsi = gsi_for_stmt(use_stmt);
147859 + up_cast = build_cast_stmt(visited, dup_type, down_lhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
147860 + new_lhs = get_lhs(up_cast);
147861 +
147862 + orig_rhs1 = gimple_assign_rhs1(use_stmt);
147863 + if (operand_equal_p(orig_rhs1, rhs, 0))
147864 + gimple_assign_set_rhs1(use_stmt, new_lhs);
147865 + else
147866 + gimple_assign_set_rhs2(use_stmt, new_lhs);
147867 + update_stmt(use_stmt);
147868 +
147869 + pointer_set_insert(visited->my_stmts, up_cast);
147870 + pointer_set_insert(visited->my_stmts, down_cast);
147871 + pointer_set_insert(visited->skip_expr_casts, up_cast);
147872 + pointer_set_insert(visited->skip_expr_casts, down_cast);
147873 +}
147874 +
147875 +static tree get_proper_unsigned_half_type(const_tree node)
147876 +{
147877 + tree new_type, type;
147878 +
147879 + gcc_assert(is_size_overflow_type(node));
147880 +
147881 + type = TREE_TYPE(node);
147882 + switch (TYPE_MODE(type)) {
147883 + case HImode:
147884 + new_type = unsigned_intQI_type_node;
147885 + break;
147886 + case SImode:
147887 + new_type = unsigned_intHI_type_node;
147888 + break;
147889 + case DImode:
147890 + new_type = unsigned_intSI_type_node;
147891 + break;
147892 + case TImode:
147893 + new_type = unsigned_intDI_type_node;
147894 + break;
147895 + default:
147896 + gcc_unreachable();
147897 + }
147898 +
147899 + if (TYPE_QUALS(type) != 0)
147900 + return build_qualified_type(new_type, TYPE_QUALS(type));
147901 + return new_type;
147902 +}
147903 +
147904 +static void insert_cast_rhs(struct visited *visited, gassign *stmt, tree rhs)
147905 +{
147906 + tree type;
147907 +
147908 + if (rhs == NULL_TREE)
147909 + return;
147910 + if (!is_size_overflow_type(rhs))
147911 + return;
147912 +
147913 + type = get_proper_unsigned_half_type(rhs);
147914 + if (is_gimple_constant(rhs))
147915 + return;
147916 + create_up_and_down_cast(visited, stmt, type, rhs);
147917 +}
147918 +
147919 +static void insert_cast(struct visited *visited, gassign *stmt, tree rhs)
147920 +{
147921 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && !is_size_overflow_type(rhs))
147922 + return;
147923 + gcc_assert(is_size_overflow_type(rhs));
147924 + insert_cast_rhs(visited, stmt, rhs);
147925 +}
147926 +
147927 +void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type)
147928 +{
147929 + tree rhs1, rhs2;
147930 +
147931 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS1_INTENTIONAL_OVERFLOW) {
147932 + rhs1 = gimple_assign_rhs1(stmt);
147933 + insert_cast(visited, stmt, rhs1);
147934 + }
147935 +
147936 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS2_INTENTIONAL_OVERFLOW) {
147937 + rhs2 = gimple_assign_rhs2(stmt);
147938 + insert_cast(visited, stmt, rhs2);
147939 + }
147940 +}
147941 +
147942 diff --git a/tools/gcc/size_overflow_plugin/size_overflow.h b/tools/gcc/size_overflow_plugin/size_overflow.h
147943 new file mode 100644
147944 index 0000000..5fd6c28
147945 --- /dev/null
147946 +++ b/tools/gcc/size_overflow_plugin/size_overflow.h
147947 @@ -0,0 +1,323 @@
147948 +#ifndef SIZE_OVERFLOW_H
147949 +#define SIZE_OVERFLOW_H
147950 +
147951 +#define CREATE_NEW_VAR NULL_TREE
147952 +#define MAX_PARAM 31
147953 +#define CANNOT_FIND_ARG 32
147954 +#define NONE_ARGNUM 32
147955 +
147956 +#define BEFORE_STMT true
147957 +#define AFTER_STMT false
147958 +
147959 +#define TURN_OFF_ASM_STR "# size_overflow MARK_TURN_OFF "
147960 +#define YES_ASM_STR "# size_overflow MARK_YES "
147961 +#define END_INTENTIONAL_ASM_STR "# size_overflow MARK_END_INTENTIONAL "
147962 +#define SO_ASM_STR "# size_overflow "
147963 +#define OK_ASM_STR "# size_overflow MARK_NO"
147964 +
147965 +#define FUNCTION_PTR_P(node) \
147966 + (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))
147967 +
147968 +#define CODES_LIMIT 32
147969 +
147970 +#define GLOBAL_NIFN_LEN 65536
147971 +#define NO_HASH 65537
147972 +
147973 +#define SIZE_OVERFLOW true
147974 +#define DISABLE_SIZE_OVERFLOW false
147975 +
147976 +#include "gcc-common.h"
147977 +
147978 +#include <string.h>
147979 +#include <limits.h>
147980 +
147981 +enum intentional_mark {
147982 + MARK_NO, MARK_YES, MARK_END_INTENTIONAL, MARK_TURN_OFF
147983 +};
147984 +
147985 +enum intentional_overflow_type {
147986 + NO_INTENTIONAL_OVERFLOW, RHS1_INTENTIONAL_OVERFLOW, RHS2_INTENTIONAL_OVERFLOW
147987 +};
147988 +
147989 +enum size_overflow_mark {
147990 + NO_SO_MARK, YES_SO_MARK, ASM_STMT_SO_MARK
147991 +};
147992 +
147993 +struct decl_hash {
147994 + size_t tree_codes_len;
147995 + unsigned char tree_codes[CODES_LIMIT];
147996 + const_tree decl;
147997 + const char *context;
147998 + unsigned int hash;
147999 + const char *fn_name;
148000 +};
148001 +
148002 +struct next_interesting_function;
148003 +typedef struct next_interesting_function * next_interesting_function_t;
148004 +
148005 +struct interesting_stmts;
148006 +typedef struct interesting_stmts * interesting_stmts_t;
148007 +
148008 +// Store data associated with the next_interesting_function_t entry
148009 +struct fn_raw_data
148010 +{
148011 + const char *decl_str;
148012 + tree decl;
148013 + const char *context;
148014 + unsigned int hash;
148015 + unsigned int num;
148016 + enum size_overflow_mark marked;
148017 +};
148018 +
148019 +#if BUILDING_GCC_VERSION <= 4007
148020 +DEF_VEC_P(next_interesting_function_t);
148021 +DEF_VEC_ALLOC_P(next_interesting_function_t, heap);
148022 +#endif
148023 +
148024 +#if BUILDING_GCC_VERSION >= 5000
148025 +typedef struct hash_set<const_gimple> gimple_set;
148026 +
148027 +static inline bool pointer_set_insert(gimple_set *visited, const_gimple stmt)
148028 +{
148029 + return visited->add(stmt);
148030 +}
148031 +
148032 +static inline bool pointer_set_contains(gimple_set *visited, const_gimple stmt)
148033 +{
148034 + return visited->contains(stmt);
148035 +}
148036 +
148037 +static inline gimple_set* pointer_set_create(void)
148038 +{
148039 + return new hash_set<const_gimple>;
148040 +}
148041 +
148042 +static inline void pointer_set_destroy(gimple_set *visited)
148043 +{
148044 + delete visited;
148045 +}
148046 +
148047 +typedef struct hash_set<next_interesting_function_t> next_interesting_function_set;
148048 +
148049 +static inline bool pointer_set_insert(next_interesting_function_set *visited, next_interesting_function_t node)
148050 +{
148051 + return visited->add(node);
148052 +}
148053 +
148054 +static inline bool pointer_set_contains(next_interesting_function_set *visited, next_interesting_function_t node)
148055 +{
148056 + return visited->contains(node);
148057 +}
148058 +
148059 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
148060 +{
148061 + return new hash_set<next_interesting_function_t>;
148062 +}
148063 +
148064 +static inline void pointer_set_destroy(next_interesting_function_set *visited)
148065 +{
148066 + delete visited;
148067 +}
148068 +#else
148069 +typedef struct pointer_set_t gimple_set;
148070 +typedef struct pointer_set_t next_interesting_function_set;
148071 +
148072 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
148073 +{
148074 + return pointer_set_create();
148075 +}
148076 +#endif
148077 +
148078 +struct visited {
148079 + gimple_set *stmts;
148080 + gimple_set *my_stmts;
148081 + gimple_set *skip_expr_casts;
148082 + gimple_set *no_cast_check;
148083 +};
148084 +
148085 +/*
148086 + * * children: callers with data flow into the integer parameter of decl
148087 + * * decl_name: name of the function or the field
148088 + * * context: the containing type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
148089 + * * hash: hash num of the function
148090 + * * num: parameter number (1-31) or return value (0)
148091 + * * marked: determines whether to duplicate stmts and/or look for missing hashtable entries
148092 + * * orig_next_node: pointer to the originally cloned function
148093 + */
148094 +
148095 +struct next_interesting_function {
148096 + next_interesting_function_t next;
148097 +#if BUILDING_GCC_VERSION <= 4007
148098 + VEC(next_interesting_function_t, heap) *children;
148099 +#else
148100 + vec<next_interesting_function_t, va_heap, vl_embed> *children;
148101 +#endif
148102 + const char *decl_name;
148103 + const char *context;
148104 + unsigned int hash;
148105 + unsigned int num;
148106 + enum size_overflow_mark marked;
148107 + next_interesting_function_t orig_next_node;
148108 +};
148109 +
148110 +// size_overflow_plugin.c
148111 +extern tree report_size_overflow_decl;
148112 +extern tree size_overflow_type_HI;
148113 +extern tree size_overflow_type_SI;
148114 +extern tree size_overflow_type_DI;
148115 +extern tree size_overflow_type_TI;
148116 +
148117 +
148118 +// size_overflow_plugin_hash.c
148119 +struct size_overflow_hash {
148120 + const struct size_overflow_hash * const next;
148121 + const char * const name;
148122 + const char * const context;
148123 + const unsigned int param;
148124 +};
148125 +
148126 +extern const char *get_orig_decl_name(const_tree decl);
148127 +extern bool is_size_overflow_asm(const_gimple stmt);
148128 +extern void print_missing_function(next_interesting_function_t node);
148129 +extern const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table);
148130 +extern unsigned int find_arg_number_tree(const_tree arg, const_tree func);
148131 +extern unsigned int get_decl_hash(const_tree decl, const char *decl_name);
148132 +extern const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum);
148133 +
148134 +
148135 +// intentional_overflow.c
148136 +extern enum intentional_mark get_intentional_attr_type(const_tree node);
148137 +extern tree get_size_overflow_asm_input(const gasm *stmt);
148138 +extern enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var);
148139 +extern bool is_size_overflow_insert_check_asm(const gasm *stmt);
148140 +extern enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum);
148141 +extern enum intentional_mark get_so_asm_type(const_gimple stmt);
148142 +extern const_tree get_attribute(const char* attr_name, const_tree decl);
148143 +extern bool is_a_cast_and_const_overflow(const_tree no_const_rhs);
148144 +extern bool is_const_plus_unsigned_signed_truncation(const_tree lhs);
148145 +extern bool is_a_constant_overflow(const gassign *stmt, const_tree rhs);
148146 +extern tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2);
148147 +extern tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs);
148148 +extern bool is_a_neg_overflow(const gassign *stmt, const_tree rhs);
148149 +extern enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt);
148150 +extern void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt);
148151 +extern bool neg_short_add_intentional_overflow(gassign *stmt);
148152 +
148153 +
148154 +// insert_size_overflow_asm.c
148155 +#if BUILDING_GCC_VERSION >= 4009
148156 +extern opt_pass *make_insert_size_overflow_asm_pass(void);
148157 +#else
148158 +extern struct opt_pass *make_insert_size_overflow_asm_pass(void);
148159 +#endif
148160 +extern bool search_interesting_args(tree fndecl, bool *argnums);
148161 +
148162 +
148163 +// size_overflow_misc.c
148164 +extern bool is_vararg(const_tree fn, unsigned int num);
148165 +extern tree get_ref_field(const_tree ref);
148166 +extern unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num);
148167 +extern const char *get_type_name_from_field(const_tree field_decl);
148168 +extern void set_dominance_info(void);
148169 +extern void unset_dominance_info(void);
148170 +extern tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt);
148171 +extern tree get_orig_fndecl(const_tree clone_fndecl);
148172 +extern unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum);
148173 +extern bool is_valid_cgraph_node(struct cgraph_node *node);
148174 +extern void set_current_function_decl(tree fndecl);
148175 +extern void unset_current_function_decl(void);
148176 +extern gimple get_def_stmt(const_tree node);
148177 +extern tree create_new_var(tree type);
148178 +extern gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force);
148179 +extern bool skip_types(const_tree var);
148180 +extern tree cast_a_tree(tree type, tree var);
148181 +extern bool is_size_overflow_type(const_tree var);
148182 +extern bool made_by_compiler(const_tree decl);
148183 +extern gimple get_fnptr_def_stmt(const_tree fn_ptr);
148184 +extern tree get_lhs(const_gimple stmt);
148185 +
148186 +
148187 +// size_overflow_transform.c
148188 +struct interesting_stmts {
148189 + struct interesting_stmts *next;
148190 + next_interesting_function_t next_node;
148191 + gimple first_stmt;
148192 + tree orig_node;
148193 + unsigned int num;
148194 +};
148195 +
148196 +extern unsigned int size_overflow_transform(struct cgraph_node *node);
148197 +extern tree handle_fnptr_assign(const_gimple stmt);
148198 +
148199 +
148200 +// size_overflow_transform_core.c
148201 +extern tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before);
148202 +extern tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node);
148203 +extern tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs);
148204 +extern void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before);
148205 +extern tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3);
148206 +extern tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before);
148207 +
148208 +
148209 +// remove_unnecessary_dup.c
148210 +extern struct opt_pass *make_remove_unnecessary_dup_pass(void);
148211 +extern void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type);
148212 +extern bool skip_expr_on_double_type(const gassign *stmt);
148213 +extern void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs);
148214 +
148215 +
148216 +// size_overflow_ipa.c
148217 +struct walk_use_def_data {
148218 + next_interesting_function_t parent;
148219 + next_interesting_function_t next_cnodes_head;
148220 + gimple_set *visited;
148221 +};
148222 +
148223 +extern const char* get_decl_context(const_tree decl);
148224 +extern void add_to_global_next_interesting_function(next_interesting_function_t new_entry);
148225 +extern bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node);
148226 +extern void push_child(next_interesting_function_t parent, next_interesting_function_t child);
148227 +extern struct cgraph_node *get_cnode(const_tree fndecl);
148228 +extern next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
148229 +extern next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data);
148230 +extern next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data);
148231 +extern void size_overflow_register_hooks(void);
148232 +#if BUILDING_GCC_VERSION >= 4009
148233 +extern opt_pass *make_size_overflow_functions_pass(void);
148234 +#else
148235 +extern struct opt_pass *make_size_overflow_functions_pass(void);
148236 +#endif
148237 +extern void size_overflow_node_removal_hook(struct cgraph_node *node, void *data);
148238 +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);
148239 +extern next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
148240 +extern next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
148241 +
148242 +
148243 +// size_overflow_lto.c
148244 +extern void size_overflow_read_summary_lto(void);
148245 +#if BUILDING_GCC_VERSION >= 4008
148246 +extern void size_overflow_write_summary_lto(void);
148247 +#elif BUILDING_GCC_VERSION >= 4006
148248 +extern void size_overflow_write_summary_lto(cgraph_node_set set, varpool_node_set vset);
148249 +#else
148250 +extern void size_overflow_write_summary_lto(cgraph_node_set set);
148251 +#endif
148252 +
148253 +// size_overflow_fnptrs.c
148254 +extern void handle_function_ptr_ret(struct walk_use_def_data *use_def_data, const_tree fn_ptr);
148255 +extern void check_local_variables(next_interesting_function_t next_node);
148256 +extern void check_global_variables(next_interesting_function_t cur_global);
148257 +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);
148258 +
148259 +
148260 +// size_overflow_debug.c
148261 +extern void __unused print_intentional_mark(enum intentional_mark mark);
148262 +extern unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node);
148263 +extern void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this);
148264 +extern void __unused print_global_next_interesting_functions(void);
148265 +extern void __unused print_children_chain_list(next_interesting_function_t next_node);
148266 +extern void __unused print_all_next_node_children_chain_list(next_interesting_function_t next_node);
148267 +extern const char * __unused print_so_mark_name(enum size_overflow_mark mark);
148268 +extern const char * __unused print_intentional_mark_name(enum intentional_mark mark);
148269 +
148270 +#endif
148271 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_debug.c b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
148272 new file mode 100644
148273 index 0000000..fc58e16
148274 --- /dev/null
148275 +++ b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
148276 @@ -0,0 +1,194 @@
148277 +/*
148278 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
148279 + * Licensed under the GPL v2, or (at your option) v3
148280 + *
148281 + * Homepage:
148282 + * https://github.com/ephox-gcc-plugins/size_overflow
148283 + *
148284 + * Documentation:
148285 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
148286 + *
148287 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
148288 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
148289 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
148290 + *
148291 + * Usage:
148292 + * $ make
148293 + * $ make run
148294 + */
148295 +
148296 +#include "size_overflow.h"
148297 +
148298 +void __unused print_intentional_mark(enum intentional_mark mark)
148299 +{
148300 + fprintf(stderr, "intentional mark: ");
148301 + switch (mark) {
148302 + case MARK_NO:
148303 + fprintf(stderr, "mark_no\n");
148304 + break;
148305 + case MARK_YES:
148306 + fprintf(stderr, "mark_yes\n");
148307 + break;
148308 + case MARK_TURN_OFF:
148309 + fprintf(stderr, "mark_turn_off\n");
148310 + break;
148311 + case MARK_END_INTENTIONAL:
148312 + fprintf(stderr, "mark_end_intentional\n");
148313 + break;
148314 + }
148315 +}
148316 +
148317 +unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node)
148318 +{
148319 + basic_block bb;
148320 +
148321 + fprintf(file, "dump_function function_name: %s\n", cgraph_node_name(node));
148322 +
148323 + fprintf(file, "\nstmts:\n");
148324 + FOR_EACH_BB_FN(bb, DECL_STRUCT_FUNCTION(NODE_DECL(node))) {
148325 + gimple_stmt_iterator si;
148326 +
148327 + fprintf(file, "<bb %u>:\n", bb->index);
148328 + for (si = gsi_start_phis(bb); !gsi_end_p(si); gsi_next(&si))
148329 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
148330 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
148331 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
148332 + fprintf(file, "\n");
148333 + }
148334 +
148335 + fprintf(file, "---------------------------------\n");
148336 +
148337 + return 0;
148338 +}
148339 +
148340 +static void __unused print_next_interesting_function(next_interesting_function_t node)
148341 +{
148342 + unsigned int i, children_len;
148343 + next_interesting_function_t cur;
148344 +
148345 + if (!node)
148346 + return;
148347 +
148348 +#if BUILDING_GCC_VERSION <= 4007
148349 + if (VEC_empty(next_interesting_function_t, node->children))
148350 + children_len = 0;
148351 + else
148352 + children_len = VEC_length(next_interesting_function_t, node->children);
148353 +#else
148354 + children_len = vec_safe_length(node->children);
148355 +#endif
148356 +
148357 + fprintf(stderr, "print_next_interesting_function: ptr: %p, ", node);
148358 + fprintf(stderr, "decl_name: %s, ", node->decl_name);
148359 +
148360 + fprintf(stderr, "num: %u marked: %s context: %s children len: %u\n", node->num, print_so_mark_name(node->marked), node->context, children_len);
148361 +#if BUILDING_GCC_VERSION <= 4007
148362 + if (VEC_empty(next_interesting_function_t, node->children))
148363 + return;
148364 + FOR_EACH_VEC_ELT(next_interesting_function_t, node->children, i, cur) {
148365 +#else
148366 + FOR_EACH_VEC_SAFE_ELT(node->children, i, cur) {
148367 +#endif
148368 + 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);
148369 + }
148370 +}
148371 +
148372 +// Dump the full next_interesting_function_t list for parsing by print_dependecy.py
148373 +void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this)
148374 +{
148375 + next_interesting_function_t cur;
148376 + unsigned int len;
148377 +
148378 + fprintf(stderr, "----------------------\nnext_interesting_function_t head: %p\n", head);
148379 + for (cur = head, len = 0; cur; cur = cur->next, len++) {
148380 + fprintf(stderr, "%u. ", len + 1);
148381 + print_next_interesting_function(cur);
148382 +
148383 + fprintf(stderr, "+++++ has orig node: %p +++++\n", cur->orig_next_node);
148384 + print_next_interesting_function(cur->orig_next_node);
148385 +
148386 + if (only_this)
148387 + break;
148388 + }
148389 +
148390 + fprintf(stderr, "len: %u\n----------------------\n\n\n", len + 1);
148391 +}
148392 +
148393 +void __unused print_global_next_interesting_functions(void)
148394 +{
148395 + unsigned int i;
148396 +
148397 + fprintf(stderr, "----------------------\nprint_global_next_interesting_functions:\n----------------------\n");
148398 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
148399 + if (!global_next_interesting_function[i])
148400 + continue;
148401 + fprintf(stderr, "hash: %u\n", i);
148402 + print_next_interesting_functions_chain(global_next_interesting_function[i], false);
148403 + }
148404 + fprintf(stderr, "----------------------\n\n");
148405 +}
148406 +
148407 +// Dump the information related to the specified next_interesting_function_t for parsing by print_dependecy.py
148408 +void __unused print_children_chain_list(next_interesting_function_t next_node)
148409 +{
148410 + next_interesting_function_t cur;
148411 + unsigned int i;
148412 +
148413 +#if BUILDING_GCC_VERSION <= 4007
148414 + if (VEC_empty(next_interesting_function_t, next_node->children))
148415 + return;
148416 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, cur) {
148417 +#else
148418 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, cur) {
148419 +#endif
148420 + 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);
148421 + print_children_chain_list(cur);
148422 + }
148423 +}
148424 +
148425 +void __unused print_all_next_node_children_chain_list(next_interesting_function_t head)
148426 +{
148427 + next_interesting_function_t cur;
148428 +
148429 + for (cur = head; cur; cur = cur->next) {
148430 +#if BUILDING_GCC_VERSION <= 4007
148431 + if (VEC_empty(next_interesting_function_t, cur->children))
148432 +#else
148433 + if (vec_safe_length(cur->children) == 0)
148434 +#endif
148435 + continue;
148436 + fprintf(stderr, "############ START ############\n");
148437 + print_children_chain_list(cur);
148438 + fprintf(stderr, "############ END ############\n");
148439 + }
148440 +}
148441 +
148442 +const char * __unused print_intentional_mark_name(enum intentional_mark mark)
148443 +{
148444 + switch(mark) {
148445 + case MARK_NO:
148446 + return "mark no";
148447 + case MARK_YES:
148448 + return "mark yes";
148449 + case MARK_END_INTENTIONAL:
148450 + return "mark end intetional";
148451 + case MARK_TURN_OFF:
148452 + return "mark turn off";
148453 + }
148454 +
148455 + gcc_unreachable();
148456 +}
148457 +
148458 +const char * __unused print_so_mark_name(enum size_overflow_mark mark)
148459 +{
148460 + switch(mark) {
148461 + case ASM_STMT_SO_MARK:
148462 + return "asm_stmt_so_mark";
148463 + case YES_SO_MARK:
148464 + return "yes_so_mark";
148465 + case NO_SO_MARK:
148466 + return "no_so_mark";
148467 + }
148468 +
148469 + gcc_unreachable();
148470 +}
148471 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
148472 new file mode 100644
148473 index 0000000..a907202
148474 --- /dev/null
148475 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
148476 @@ -0,0 +1,20733 @@
148477 +enable_so_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
148478 +enable_so___earlyonly_bootmem_alloc_fndecl_3 __earlyonly_bootmem_alloc fndecl 2-3-4 3 NULL
148479 +enable_so_size_ttm_mem_reg_8 size ttm_mem_reg 0 8 NULL
148480 +enable_so_char2uni_nls_table_12 char2uni nls_table 0 12 NULL
148481 +enable_so_nrbufs_pipe_inode_info_13 nrbufs pipe_inode_info 0 13 NULL nohasharray
148482 +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
148483 +enable_so_NumPhys__EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE_17 NumPhys _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE 0 17 NULL
148484 +enable_so_max_name_len_fndecl_19 max_name_len fndecl 0 19 NULL nohasharray
148485 +enable_so_kfd_wait_on_events_fndecl_19 kfd_wait_on_events fndecl 2 19 &enable_so_max_name_len_fndecl_19
148486 +enable_so_ext4_seek_data_fndecl_21 ext4_seek_data fndecl 2 21 NULL
148487 +enable_so_dma_buf_sz_sxgbe_priv_data_24 dma_buf_sz sxgbe_priv_data 0 24 NULL nohasharray
148488 +enable_so_max_cache_pages_snd_emu10k1_24 max_cache_pages snd_emu10k1 0 24 &enable_so_dma_buf_sz_sxgbe_priv_data_24
148489 +enable_so_T9_reportid_max_mxt_data_25 T9_reportid_max mxt_data 0 25 NULL
148490 +enable_so_max_frags_vxge_hw_fifo_config_26 max_frags vxge_hw_fifo_config 0 26 NULL
148491 +enable_so_snic_reset_stats_write_fndecl_30 snic_reset_stats_write fndecl 3 30 NULL
148492 +enable_so_ocfs2_xattr_get_clusters_fndecl_34 ocfs2_xattr_get_clusters fndecl 0 34 NULL nohasharray
148493 +enable_so_ath10k_core_create_fndecl_34 ath10k_core_create fndecl 1 34 &enable_so_ocfs2_xattr_get_clusters_fndecl_34
148494 +enable_so_total_drm_buf_35 total drm_buf 0 35 NULL
148495 +enable_so_sis5595_device_add_fndecl_39 sis5595_device_add fndecl 1 39 NULL
148496 +enable_so_mc_vram_size_amdgpu_mc_45 mc_vram_size amdgpu_mc 0 45 NULL
148497 +enable_so_iwl_dbgfs_nvm_read_fndecl_54 iwl_dbgfs_nvm_read fndecl 3 54 NULL
148498 +enable_so_pattern_len_tcf_em_text_57 pattern_len tcf_em_text 0 57 NULL nohasharray
148499 +enable_so_p54_init_common_fndecl_57 p54_init_common fndecl 1 57 &enable_so_pattern_len_tcf_em_text_57
148500 +enable_so_rx_desc_count_i40evf_adapter_62 rx_desc_count i40evf_adapter 0 62 NULL nohasharray
148501 +enable_so_bin_to_hex_dup_fndecl_62 bin_to_hex_dup fndecl 2 62 &enable_so_rx_desc_count_i40evf_adapter_62
148502 +enable_so_len_nf_ct_ext_63 len nf_ct_ext 0 63 NULL
148503 +enable_so_sl811_hc_init_fndecl_66 sl811_hc_init fndecl 2-3 66 NULL
148504 +enable_so_cipso_v4_delopt_fndecl_67 cipso_v4_delopt fndecl 0 67 NULL
148505 +enable_so_npages_mlx5_pages_req_70 npages mlx5_pages_req 0 70 NULL
148506 +enable_so_mtt_seg_size_mthca_limits_72 mtt_seg_size mthca_limits 0 72 NULL
148507 +enable_so_iov_iter_get_pages_alloc_fndecl_76 iov_iter_get_pages_alloc fndecl 0-3 76 NULL
148508 +enable_so_iwch_reject_cr_fndecl_78 iwch_reject_cr fndecl 3 78 NULL
148509 +enable_so_data_size_data_queue_85 data_size data_queue 0 85 NULL nohasharray
148510 +enable_so_ieee80211_if_read_dot11MeshMaxPeerLinks_fndecl_85 ieee80211_if_read_dot11MeshMaxPeerLinks fndecl 3 85 &enable_so_data_size_data_queue_85
148511 +enable_so_alpha_nr_max_gf100_grctx_oclass_87 alpha_nr_max gf100_grctx_oclass 0 87 NULL
148512 +enable_so_ceph_dir_llseek_fndecl_99 ceph_dir_llseek fndecl 2 99 NULL
148513 +enable_so_erase_size_flash_info_100 erase_size flash_info 0 100 NULL
148514 +enable_so_ncp_do_request_fndecl_102 ncp_do_request fndecl 2-4-0 102 NULL
148515 +enable_so_fi_blkno_ocfs2_find_inode_args_104 fi_blkno ocfs2_find_inode_args 0 104 NULL
148516 +enable_so_phase_snd_usb_endpoint_106 phase snd_usb_endpoint 0 106 NULL
148517 +enable_so_kvm_read_guest_fndecl_107 kvm_read_guest fndecl 2-4 107 NULL
148518 +enable_so_add_new_gdb_meta_bg_fndecl_116 add_new_gdb_meta_bg fndecl 3 116 NULL nohasharray
148519 +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
148520 +enable_so_buffer_min_vardecl_floppy_c_117 buffer_min vardecl_floppy.c 0 117 NULL
148521 +enable_so_needed_tailroom_net_device_118 needed_tailroom net_device 0 118 NULL
148522 +enable_so_send_remove_xattr_fndecl_122 send_remove_xattr fndecl 4 122 NULL
148523 +enable_so_ipath_reg_phys_mr_fndecl_125 ipath_reg_phys_mr fndecl 3 125 NULL
148524 +enable_so_in_ep_rtl_usb_128 in_ep rtl_usb 0 128 NULL nohasharray
148525 +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
148526 +enable_so_cifs_setxattr_fndecl_134 cifs_setxattr fndecl 4 134 NULL
148527 +enable_so_nr_pages_dma_mapping_136 nr_pages dma_mapping 0 136 NULL
148528 +enable_so_len_io_failure_record_139 len io_failure_record 0 139 NULL
148529 +enable_so_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142 n_mac_vlan_filters vfpf_set_q_filters_tlv 0 142 NULL
148530 +enable_so_leaf_move_items_fndecl_145 leaf_move_items fndecl 4 145 NULL
148531 +enable_so_ir_context_support_fw_ohci_147 ir_context_support fw_ohci 0 147 NULL
148532 +enable_so_jffs2_nfs_get_inode_fndecl_152 jffs2_nfs_get_inode fndecl 2 152 NULL
148533 +enable_so_uvc_endpoint_max_bpi_fndecl_155 uvc_endpoint_max_bpi fndecl 0 155 NULL
148534 +enable_so_ext4_ext_remove_space_fndecl_170 ext4_ext_remove_space fndecl 2-3 170 NULL
148535 +enable_so_acl_len_nfs_getaclres_171 acl_len nfs_getaclres 0 171 NULL
148536 +enable_so_vfs_write_fndecl_176 vfs_write fndecl 3-0 176 NULL
148537 +enable_so_ufx_read_edid_fndecl_184 ufx_read_edid fndecl 0 184 NULL
148538 +enable_so_ci_get_data_fndecl_185 ci_get_data fndecl 3 185 NULL
148539 +enable_so_length_sl811h_ep_186 length sl811h_ep 0 186 NULL
148540 +enable_so_sddr55_write_data_fndecl_188 sddr55_write_data fndecl 4-3 188 NULL
148541 +enable_so_mptctl_do_fw_download_fndecl_190 mptctl_do_fw_download fndecl 3 190 NULL
148542 +enable_so_give_pages_fndecl_198 give_pages fndecl 3 198 NULL
148543 +enable_so_sys_pwrite64_fndecl_206 sys_pwrite64 fndecl 3 206 NULL
148544 +enable_so_xfs_zero_file_space_fndecl_211 xfs_zero_file_space fndecl 3-2 211 NULL nohasharray
148545 +enable_so_bn_shadow_fndecl_211 bn_shadow fndecl 2 211 &enable_so_xfs_zero_file_space_fndecl_211
148546 +enable_so_cxgb_alloc_mem_fndecl_212 cxgb_alloc_mem fndecl 1 212 NULL
148547 +enable_so_copies_r10conf_216 copies r10conf 0 216 NULL
148548 +enable_so_optrom_size_qla_hw_data_230 optrom_size qla_hw_data 0 230 NULL
148549 +enable_so_afs_cell_alloc_fndecl_231 afs_cell_alloc fndecl 2 231 NULL
148550 +enable_so_ad9523_write_fndecl_233 ad9523_write fndecl 2 233 NULL
148551 +enable_so_iwl_dbgfs_low_latency_read_fndecl_237 iwl_dbgfs_low_latency_read fndecl 3 237 NULL
148552 +enable_so_ocfs2_mark_extent_refcounted_fndecl_240 ocfs2_mark_extent_refcounted fndecl 6-4 240 NULL
148553 +enable_so_musb_readw_vardecl_241 musb_readw vardecl 0 241 NULL
148554 +enable_so_sysv_inode_by_name_fndecl_242 sysv_inode_by_name fndecl 0 242 NULL
148555 +enable_so_adis16400_show_serial_number_fndecl_246 adis16400_show_serial_number fndecl 3 246 NULL
148556 +enable_so_offset_nvkm_vma_248 offset nvkm_vma 0 248 NULL
148557 +enable_so_amdgpu_vm_directory_size_fndecl_249 amdgpu_vm_directory_size fndecl 0 249 NULL
148558 +enable_so_ipw_get_current_rate_fndecl_250 ipw_get_current_rate fndecl 0 250 NULL
148559 +enable_so_ixgbevf_change_mtu_fndecl_251 ixgbevf_change_mtu fndecl 2 251 NULL nohasharray
148560 +enable_so_pclk_limit_ov6650_251 pclk_limit ov6650 0 251 &enable_so_ixgbevf_change_mtu_fndecl_251 nohasharray
148561 +enable_so_saved_skb_len_nfc_digital_dev_251 saved_skb_len nfc_digital_dev 0 251 &enable_so_pclk_limit_ov6650_251
148562 +enable_so_venus_symlink_fndecl_257 venus_symlink fndecl 6-4 257 NULL
148563 +enable_so_l2cap_parse_conf_req_fndecl_260 l2cap_parse_conf_req fndecl 0 260 NULL
148564 +enable_so_lf_entries_gfs2_leaf_263 lf_entries gfs2_leaf 0 263 NULL
148565 +enable_so_max_can_queue_fc_fcp_internal_270 max_can_queue fc_fcp_internal 0 270 NULL
148566 +enable_so_dbg_leb_change_fndecl_272 dbg_leb_change fndecl 4 272 NULL
148567 +enable_so_tcp_current_mss_fndecl_275 tcp_current_mss fndecl 0 275 NULL
148568 +enable_so_vmbus_sendpacket_multipagebuffer_fndecl_276 vmbus_sendpacket_multipagebuffer fndecl 4 276 NULL
148569 +enable_so_es_lblk_extent_status_280 es_lblk extent_status 0 280 NULL
148570 +enable_so_read_snd_midi_event_282 read snd_midi_event 0 282 NULL
148571 +enable_so_bytesperline_sh_veu_vfmt_288 bytesperline sh_veu_vfmt 0 288 NULL nohasharray
148572 +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
148573 +enable_so_do_mmap_pgoff_fndecl_291 do_mmap_pgoff fndecl 3-0-6 291 NULL
148574 +enable_so_islpci_mgt_transaction_fndecl_297 islpci_mgt_transaction fndecl 5 297 NULL
148575 +enable_so__alloc_cdb_cont_fndecl_298 _alloc_cdb_cont fndecl 2 298 NULL
148576 +enable_so_num_targets_dm_table_302 num_targets dm_table 0 302 NULL
148577 +enable_so_xfpregs_get_fndecl_305 xfpregs_get fndecl 4 305 NULL
148578 +enable_so_tx_ring_size_mvneta_port_307 tx_ring_size mvneta_port 0 307 NULL
148579 +enable_so_omapdss_update_prop_fndecl_309 omapdss_update_prop fndecl 3 309 NULL
148580 +enable_so_cfpkt_create_pfx_fndecl_313 cfpkt_create_pfx fndecl 2 313 NULL
148581 +enable_so_MaxBufferSize_negotiate_rsp_314 MaxBufferSize negotiate_rsp 0 314 NULL nohasharray
148582 +enable_so_ip_num_acl_subject_label_314 ip_num acl_subject_label 0 314 &enable_so_MaxBufferSize_negotiate_rsp_314
148583 +enable_so_name_len_jffs2_raw_xattr_318 name_len jffs2_raw_xattr 0 318 NULL
148584 +enable_so_num_alt_usb_usbvision_328 num_alt usb_usbvision 0 328 NULL
148585 +enable_so_start_fb_cmap_user_333 start fb_cmap_user 0 333 NULL
148586 +enable_so_block_size_se_dev_attrib_334 block_size se_dev_attrib 0 334 NULL
148587 +enable_so_done_status_atmel_spi_338 done_status atmel_spi 0 338 NULL
148588 +enable_so_udl_submit_urb_fndecl_353 udl_submit_urb fndecl 3 353 NULL
148589 +enable_so_tx_idx_bchannel_355 tx_idx bchannel 0 355 NULL
148590 +enable_so_bNumConfigurations_usb_device_descriptor_360 bNumConfigurations usb_device_descriptor 0 360 NULL
148591 +enable_so_link_buf_size_dvb_ca_slot_365 link_buf_size dvb_ca_slot 0 365 NULL
148592 +enable_so_length_st21nfca_atr_req_366 length st21nfca_atr_req 0 366 NULL
148593 +enable_so_fusbh200_urb_done_fndecl_371 fusbh200_urb_done fndecl 3 371 NULL
148594 +enable_so_setup_ctxt_fndecl_374 setup_ctxt fndecl 2 374 NULL nohasharray
148595 +enable_so_intel_soc_dts_iosf_init_fndecl_374 intel_soc_dts_iosf_init fndecl 2 374 &enable_so_setup_ctxt_fndecl_374
148596 +enable_so___i2400mu_send_barker_fndecl_375 __i2400mu_send_barker fndecl 3 375 NULL
148597 +enable_so_cx18_read_fndecl_384 cx18_read fndecl 3 384 NULL
148598 +enable_so_duplex_tg3_link_config_395 duplex tg3_link_config 0 395 NULL
148599 +enable_so_keyspan_pda_write_fndecl_398 keyspan_pda_write fndecl 4 398 NULL
148600 +enable_so_cyberjack_write_fndecl_399 cyberjack_write fndecl 4 399 NULL
148601 +enable_so_fcp_resid_bnx2fc_cmd_412 fcp_resid bnx2fc_cmd 0 412 NULL
148602 +enable_so_base_cbuf_417 base cbuf 0 417 NULL
148603 +enable_so_mp_config_acpi_gsi_fndecl_419 mp_config_acpi_gsi fndecl 2 419 NULL
148604 +enable_so_fat_short2uni_fndecl_423 fat_short2uni fndecl 0 423 NULL
148605 +enable_so_vol_reg_size_tas571x_chip_426 vol_reg_size tas571x_chip 0 426 NULL
148606 +enable_so_status_netdev_desc_430 status netdev_desc 0 430 NULL
148607 +enable_so_twsk_obj_size_timewait_sock_ops_433 twsk_obj_size timewait_sock_ops 0 433 NULL
148608 +enable_so_hfs_file_fsync_fndecl_434 hfs_file_fsync fndecl 2-3 434 NULL
148609 +enable_so_rx_buf_sz_rhine_private_435 rx_buf_sz rhine_private 0 435 NULL
148610 +enable_so_id_alias_prop_438 id alias_prop 0 438 NULL
148611 +enable_so_get_conn_info_fndecl_440 get_conn_info fndecl 4 440 NULL
148612 +enable_so_intr_count_ql_adapter_442 intr_count ql_adapter 0 442 NULL
148613 +enable_so_challenge_len_ieee802_11_elems_444 challenge_len ieee802_11_elems 0 444 NULL
148614 +enable_so_cem_build_path_fndecl_451 cem_build_path fndecl 0 451 NULL nohasharray
148615 +enable_so_k3_dma_prep_memcpy_fndecl_451 k3_dma_prep_memcpy fndecl 4 451 &enable_so_cem_build_path_fndecl_451
148616 +enable_so_width_g2d_frame_453 width g2d_frame 0 453 NULL
148617 +enable_so___kfifo_max_r_fndecl_459 __kfifo_max_r fndecl 0-1-2 459 NULL nohasharray
148618 +enable_so_root_entry_lctp_fndecl_459 root_entry_lctp fndecl 0 459 &enable_so___kfifo_max_r_fndecl_459
148619 +enable_so_ssp_debug_mode_read_fndecl_463 ssp_debug_mode_read fndecl 3 463 NULL
148620 +enable_so_page_size_nvme_dev_465 page_size nvme_dev 0 465 NULL
148621 +enable_so_udf_load_logicalvol_fndecl_471 udf_load_logicalvol fndecl 2 471 NULL nohasharray
148622 +enable_so_rx_rx_dropped_frame_read_fndecl_471 rx_rx_dropped_frame_read fndecl 3 471 &enable_so_udf_load_logicalvol_fndecl_471
148623 +enable_so_make_checksum_v2_fndecl_475 make_checksum_v2 fndecl 3-5 475 NULL
148624 +enable_so_map_write_fndecl_480 map_write fndecl 3 480 NULL
148625 +enable_so_diva_alloc_dma_map_fndecl_485 diva_alloc_dma_map fndecl 2 485 NULL
148626 +enable_so_ext_start_xfs_extent_486 ext_start xfs_extent 0 486 NULL
148627 +enable_so_consumed_sg_mapping_iter_487 consumed sg_mapping_iter 0 487 NULL
148628 +enable_so_nr_local_rds_rdma_args_488 nr_local rds_rdma_args 0 488 NULL
148629 +enable_so_sp2_read_i2c_fndecl_489 sp2_read_i2c fndecl 4 489 NULL
148630 +enable_so_rx_path_reset_read_fndecl_490 rx_path_reset_read fndecl 3 490 NULL
148631 +enable_so_edid_store_fndecl_491 edid_store fndecl 6 491 NULL
148632 +enable_so_sndbuf_size_net_conf_498 sndbuf_size net_conf 0 498 NULL
148633 +enable_so_cfg80211_inform_bss_width_frame_fndecl_501 cfg80211_inform_bss_width_frame fndecl 5 501 NULL
148634 +enable_so_max_seg_sz_mmc_test_area_502 max_seg_sz mmc_test_area 0 502 NULL nohasharray
148635 +enable_so_security_inode_getxattr_fndecl_502 security_inode_getxattr fndecl 0 502 &enable_so_max_seg_sz_mmc_test_area_502
148636 +enable_so_num_virtio_mmio_vq_info_503 num virtio_mmio_vq_info 0 503 NULL
148637 +enable_so_wa_xfer_status_to_errno_fndecl_506 wa_xfer_status_to_errno fndecl 0 506 NULL
148638 +enable_so_hlen_ip6_tnl_510 hlen ip6_tnl 0 510 NULL
148639 +enable_so_si476x_radio_read_acf_blob_fndecl_515 si476x_radio_read_acf_blob fndecl 3 515 NULL
148640 +enable_so_length_qib_sge_516 length qib_sge 0 516 NULL
148641 +enable_so_gfn_guest_walkerEPT_517 gfn guest_walkerEPT 0 517 NULL
148642 +enable_so_dig_rate_snd_bt87x_board_522 dig_rate snd_bt87x_board 0 522 NULL
148643 +enable_so_grow_gnttab_list_fndecl_523 grow_gnttab_list fndecl 1 523 NULL
148644 +enable_so_videobuf_read_zerocopy_fndecl_546 videobuf_read_zerocopy fndecl 3 546 NULL
148645 +enable_so_iscsi_add_hdr_fndecl_551 iscsi_add_hdr fndecl 2 551 NULL
148646 +enable_so_leaf_paste_in_buffer_fndecl_552 leaf_paste_in_buffer fndecl 4 552 NULL nohasharray
148647 +enable_so_names_count_tomoyo_condition_552 names_count tomoyo_condition 0 552 &enable_so_leaf_paste_in_buffer_fndecl_552
148648 +enable_so_try_alloc_port_fndecl_557 try_alloc_port fndecl 2 557 NULL nohasharray
148649 +enable_so_behind_page_count_r1bio_557 behind_page_count r1bio 0 557 &enable_so_try_alloc_port_fndecl_557
148650 +enable_so_cmd_amdkfd_ioctl_desc_560 cmd amdkfd_ioctl_desc 0 560 NULL
148651 +enable_so_kzalloc_node_fndecl_563 kzalloc_node fndecl 1 563 NULL
148652 +enable_so_btrfs_item_size_nr_fndecl_572 btrfs_item_size_nr fndecl 0 572 NULL
148653 +enable_so_cfi_read_pri_fndecl_573 cfi_read_pri fndecl 3 573 NULL
148654 +enable_so_disk_secno_bplus_leaf_node_574 disk_secno bplus_leaf_node 0 574 NULL
148655 +enable_so_paging64_init_context_common_fndecl_577 paging64_init_context_common fndecl 3 577 NULL nohasharray
148656 +enable_so_ext4_swap_extents_fndecl_577 ext4_swap_extents fndecl 6-0-5-4 577 &enable_so_paging64_init_context_common_fndecl_577
148657 +enable_so_blk_update_bidi_request_fndecl_588 blk_update_bidi_request fndecl 3-4 588 NULL
148658 +enable_so_drm_property_create_bitmask_fndecl_591 drm_property_create_bitmask fndecl 6 591 NULL
148659 +enable_so_log_mc_entry_sz_mlx4_init_hca_param_595 log_mc_entry_sz mlx4_init_hca_param 0 595 NULL
148660 +enable_so_xmit_head_mgsl_struct_596 xmit_head mgsl_struct 0 596 NULL
148661 +enable_so_max_send_sge_ib_qp_cap_601 max_send_sge ib_qp_cap 0 601 NULL
148662 +enable_so_nr_groups_pcpu_alloc_info_602 nr_groups pcpu_alloc_info 0 602 NULL
148663 +enable_so_lcm_not_zero_fndecl_603 lcm_not_zero fndecl 2-0-1 603 NULL nohasharray
148664 +enable_so_xfs_bmapi_read_fndecl_603 xfs_bmapi_read fndecl 3-2 603 &enable_so_lcm_not_zero_fndecl_603 nohasharray
148665 +enable_so_sock_xmit_fndecl_603 sock_xmit fndecl 4 603 &enable_so_xfs_bmapi_read_fndecl_603
148666 +enable_so_FormattedSize_erase_unit_header_t_604 FormattedSize erase_unit_header_t 0 604 NULL
148667 +enable_so_getxattr_fndecl_605 getxattr fndecl 4 605 NULL nohasharray
148668 +enable_so_pvr2_v4l2_ioctl_fndecl_605 pvr2_v4l2_ioctl fndecl 2 605 &enable_so_getxattr_fndecl_605
148669 +enable_so_copy_and_ioctl_fndecl_609 copy_and_ioctl fndecl 4 609 NULL
148670 +enable_so_ftrace_size_ramoops_context_610 ftrace_size ramoops_context 0 610 NULL
148671 +enable_so_ixgbe_alloc_q_vector_fndecl_612 ixgbe_alloc_q_vector fndecl 4-6 612 NULL
148672 +enable_so_num_queue_pairs_i40e_virtchnl_vf_resource_613 num_queue_pairs i40e_virtchnl_vf_resource 0 613 NULL
148673 +enable_so_virt_end_dm_thin_new_mapping_616 virt_end dm_thin_new_mapping 0 616 NULL
148674 +enable_so_maxsize_tm6000_endpoint_618 maxsize tm6000_endpoint 0 618 NULL
148675 +enable_so_smk_user_access_fndecl_619 smk_user_access fndecl 3 619 NULL
148676 +enable_so_nvme_trans_log_supp_pages_fndecl_625 nvme_trans_log_supp_pages fndecl 3 625 NULL
148677 +enable_so_xenbus_file_read_fndecl_632 xenbus_file_read fndecl 3 632 NULL
148678 +enable_so_b43_debugfs_read_fndecl_634 b43_debugfs_read fndecl 3 634 NULL
148679 +enable_so_ieee80211_rx_mgmt_beacon_fndecl_637 ieee80211_rx_mgmt_beacon fndecl 3 637 NULL
148680 +enable_so_msg_len_dvb_diseqc_master_cmd_643 msg_len dvb_diseqc_master_cmd 0 643 NULL nohasharray
148681 +enable_so_d1_vring_rx_mac_643 d1 vring_rx_mac 0 643 &enable_so_msg_len_dvb_diseqc_master_cmd_643
148682 +enable_so_ocrdma_get_pbl_info_fndecl_644 ocrdma_get_pbl_info fndecl 3 644 NULL
148683 +enable_so_size_si_sm_handlers_648 size si_sm_handlers 0 648 NULL
148684 +enable_so_fat_sync_bhs_fndecl_655 fat_sync_bhs fndecl 0 655 NULL
148685 +enable_so_header_length_irda_usb_cb_657 header_length irda_usb_cb 0 657 NULL
148686 +enable_so_rtsx_usb_read_ppbuf_fndecl_659 rtsx_usb_read_ppbuf fndecl 3 659 NULL nohasharray
148687 +enable_so_nchannels_fs_dev_659 nchannels fs_dev 0 659 &enable_so_rtsx_usb_read_ppbuf_fndecl_659
148688 +enable_so_vmx_hwapic_irr_update_fndecl_662 vmx_hwapic_irr_update fndecl 2 662 NULL
148689 +enable_so_start_async_extent_663 start async_extent 0 663 NULL
148690 +enable_so_tx_max_size_cxgbi_device_664 tx_max_size cxgbi_device 0 664 NULL nohasharray
148691 +enable_so_evdev_do_ioctl_fndecl_664 evdev_do_ioctl fndecl 2-0 664 &enable_so_tx_max_size_cxgbi_device_664
148692 +enable_so_cw_cursor_fndecl_666 cw_cursor fndecl 4 666 NULL
148693 +enable_so___push_leaf_left_fndecl_667 __push_leaf_left fndecl 8 667 NULL
148694 +enable_so_lbs_highsnr_write_fndecl_671 lbs_highsnr_write fndecl 3 671 NULL
148695 +enable_so_skb_size_nx_host_rds_ring_672 skb_size nx_host_rds_ring 0 672 NULL
148696 +enable_so_bond_change_mtu_fndecl_674 bond_change_mtu fndecl 2 674 NULL
148697 +enable_so_mac_len_sk_buff_676 mac_len sk_buff 0 676 NULL
148698 +enable_so_mbox_offset_sst_res_info_678 mbox_offset sst_res_info 0 678 NULL
148699 +enable_so_page_order_sg_scatter_hold_679 page_order sg_scatter_hold 0 679 NULL
148700 +enable_so_stats_count_smsdvb_debugfs_683 stats_count smsdvb_debugfs 0 683 NULL
148701 +enable_so_get_eeprom_len_ethtool_ops_686 get_eeprom_len ethtool_ops 0 686 NULL
148702 +enable_so_follow_page_pte_fndecl_687 follow_page_pte fndecl 2 687 NULL
148703 +enable_so_mchip_get_frame_fndecl_692 mchip_get_frame fndecl 0 692 NULL
148704 +enable_so_ttm_page_pool_free_fndecl_693 ttm_page_pool_free fndecl 2 693 NULL
148705 +enable_so_handle_pte_fault_fndecl_694 handle_pte_fault fndecl 3 694 NULL
148706 +enable_so_size_pstore_private_696 size pstore_private 0 696 NULL nohasharray
148707 +enable_so_read_file_spec_scan_ctl_fndecl_696 read_file_spec_scan_ctl fndecl 3 696 &enable_so_size_pstore_private_696
148708 +enable_so_dut_mode_read_fndecl_698 dut_mode_read fndecl 3 698 NULL
148709 +enable_so_fragThresh_ConfigRid_700 fragThresh ConfigRid 0 700 NULL nohasharray
148710 +enable_so_ipath_copy_from_sge_fndecl_700 ipath_copy_from_sge fndecl 3 700 &enable_so_fragThresh_ConfigRid_700
148711 +enable_so_do_mpage_readpage_fndecl_715 do_mpage_readpage fndecl 3 715 NULL
148712 +enable_so_request_key_with_auxdata_fndecl_720 request_key_with_auxdata fndecl 4 720 NULL
148713 +enable_so_xfs_buf_get_map_fndecl_729 xfs_buf_get_map fndecl 3 729 NULL
148714 +enable_so_tsi148_alloc_resource_fndecl_736 tsi148_alloc_resource fndecl 2 736 NULL
148715 +enable_so_write_cache_pages_fndecl_737 write_cache_pages fndecl 0 737 NULL
148716 +enable_so_count_TxFifo_750 count TxFifo 0 750 NULL
148717 +enable_so_DataBufsSize_snd_korg1212_758 DataBufsSize snd_korg1212 0 758 NULL
148718 +enable_so_ilf_len_xfs_inode_log_format_759 ilf_len xfs_inode_log_format 0 759 NULL
148719 +enable_so_tda8083_readregs_fndecl_764 tda8083_readregs fndecl 4 764 NULL
148720 +enable_so_iwl_trans_alloc_fndecl_767 iwl_trans_alloc fndecl 5-1 767 NULL
148721 +enable_so_len_vnic_dev_bar_768 len vnic_dev_bar 0 768 NULL
148722 +enable_so_vb2_fop_read_fndecl_771 vb2_fop_read fndecl 3 771 NULL
148723 +enable_so_truncate_one_csum_fndecl_777 truncate_one_csum fndecl 4-5 777 NULL
148724 +enable_so_num_virtio_pci_vq_info_778 num virtio_pci_vq_info 0 778 NULL
148725 +enable_so_gem_change_mtu_fndecl_785 gem_change_mtu fndecl 2 785 NULL
148726 +enable_so_nv_device_resource_start_fndecl_792 nv_device_resource_start fndecl 0 792 NULL
148727 +enable_so_prepare_reply_buffer_fndecl_793 prepare_reply_buffer fndecl 4-3-5 793 NULL
148728 +enable_so_extent_direct_795 extent direct 0 795 NULL
148729 +enable_so_height_qxl_head_799 height qxl_head 0 799 NULL
148730 +enable_so_pci_iomap_range_fndecl_809 pci_iomap_range fndecl 4-3 809 NULL
148731 +enable_so_sdp1length__SpiCfgData_813 sdp1length _SpiCfgData 0 813 NULL
148732 +enable_so_request_key_auth_read_fndecl_830 request_key_auth_read fndecl 3 830 NULL
148733 +enable_so_pipeline_post_proc_swi_read_fndecl_831 pipeline_post_proc_swi_read fndecl 3 831 NULL
148734 +enable_so_SyS_sethostname_fndecl_837 SyS_sethostname fndecl 2 837 NULL
148735 +enable_so_mdata_ofsh_cyttsp4_sysinfo_data_844 mdata_ofsh cyttsp4_sysinfo_data 0 844 NULL
148736 +enable_so_s_inopb_ufs_sb_private_info_849 s_inopb ufs_sb_private_info 0 849 NULL
148737 +enable_so__picolcd_flash_write_fndecl_853 _picolcd_flash_write fndecl 4 853 NULL
148738 +enable_so_irnet_ctrl_write_fndecl_856 irnet_ctrl_write fndecl 3 856 NULL
148739 +enable_so_rsi_copy_to_card_fndecl_858 rsi_copy_to_card fndecl 3 858 NULL nohasharray
148740 +enable_so_nilfs_inode_by_name_fndecl_858 nilfs_inode_by_name fndecl 0 858 &enable_so_rsi_copy_to_card_fndecl_858
148741 +enable_so_unix_seqpacket_recvmsg_fndecl_861 unix_seqpacket_recvmsg fndecl 3 861 NULL
148742 +enable_so_adu_read_fndecl_866 adu_read fndecl 3 866 NULL
148743 +enable_so_safe_prepare_write_buffer_fndecl_872 safe_prepare_write_buffer fndecl 3 872 NULL
148744 +enable_so_field_count_audit_rule_data_886 field_count audit_rule_data 0 886 NULL
148745 +enable_so_il3945_get_adjacent_rate_fndecl_892 il3945_get_adjacent_rate fndecl 0-2 892 NULL nohasharray
148746 +enable_so_octeon_read_device_mem64_fndecl_892 octeon_read_device_mem64 fndecl 0 892 &enable_so_il3945_get_adjacent_rate_fndecl_892
148747 +enable_so_orinoco_change_mtu_fndecl_895 orinoco_change_mtu fndecl 2 895 NULL nohasharray
148748 +enable_so_forw_xfs_attr3_icleaf_hdr_895 forw xfs_attr3_icleaf_hdr 0 895 &enable_so_orinoco_change_mtu_fndecl_895
148749 +enable_so_p_srate_f_uac2_opts_896 p_srate f_uac2_opts 0 896 NULL
148750 +enable_so_vm_normal_page_fndecl_897 vm_normal_page fndecl 2 897 NULL
148751 +enable_so_rdma_copy_tail_fndecl_898 rdma_copy_tail fndecl 3 898 NULL nohasharray
148752 +enable_so_cpu_mask_len_res_opts_898 cpu_mask_len res_opts 0 898 &enable_so_rdma_copy_tail_fndecl_898
148753 +enable_so_ieee80211_if_read_dot11MeshHWMPpreqMinInterval_fndecl_899 ieee80211_if_read_dot11MeshHWMPpreqMinInterval fndecl 3 899 NULL
148754 +enable_so_user_bs_factor_ide_tape_obj_906 user_bs_factor ide_tape_obj 0 906 NULL
148755 +enable_so_good_bytes_nfs_pgio_header_909 good_bytes nfs_pgio_header 0 909 NULL nohasharray
148756 +enable_so_tcpprobe_sprint_fndecl_909 tcpprobe_sprint fndecl 0 909 &enable_so_good_bytes_nfs_pgio_header_909
148757 +enable_so_num_channels_wmi_start_scan_cmd_915 num_channels wmi_start_scan_cmd 0 915 NULL
148758 +enable_so_set_args_iw_priv_args_916 set_args iw_priv_args 0 916 NULL
148759 +enable_so_max_reply_bytes_mpt3_ioctl_command_918 max_reply_bytes mpt3_ioctl_command 0 918 NULL
148760 +enable_so_post_fifo_size__adpt_hba_919 post_fifo_size _adpt_hba 0 919 NULL
148761 +enable_so_status_word_gem_rxd_925 status_word gem_rxd 0 925 NULL nohasharray
148762 +enable_so_video_hsize_solo_dev_925 video_hsize solo_dev 0 925 &enable_so_status_word_gem_rxd_925
148763 +enable_so_isofs_bread_fndecl_929 isofs_bread fndecl 2 929 NULL
148764 +enable_so_xpnet_dev_change_mtu_fndecl_932 xpnet_dev_change_mtu fndecl 2 932 NULL
148765 +enable_so_nfrags_pkt_gl_937 nfrags pkt_gl 0 937 NULL
148766 +enable_so_max_sense_bytes_mpt2_ioctl_command_942 max_sense_bytes mpt2_ioctl_command 0 942 NULL
148767 +enable_so_icmp_len_batadv_socket_packet_944 icmp_len batadv_socket_packet 0 944 NULL
148768 +enable_so_pcpu_embed_first_chunk_fndecl_947 pcpu_embed_first_chunk fndecl 3-2-1 947 NULL nohasharray
148769 +enable_so_mei_amthif_read_fndecl_947 mei_amthif_read fndecl 4 947 &enable_so_pcpu_embed_first_chunk_fndecl_947
148770 +enable_so_lprocfs_alloc_obd_stats_fndecl_950 lprocfs_alloc_obd_stats fndecl 2 950 NULL
148771 +enable_so_pci_num_vf_fndecl_952 pci_num_vf fndecl 0 952 NULL
148772 +enable_so_ssid_len_wireless_dev_954 ssid_len wireless_dev 0 954 NULL
148773 +enable_so_length_ndis_80211_bssid_ex_955 length ndis_80211_bssid_ex 0 955 NULL
148774 +enable_so_sel_read_bool_fndecl_959 sel_read_bool fndecl 3 959 NULL
148775 +enable_so_size_wl3501_md_ind_961 size wl3501_md_ind 0 961 NULL
148776 +enable_so_compat_sys_preadv64_fndecl_968 compat_sys_preadv64 fndecl 3 968 NULL
148777 +enable_so_tx_ring_size_tx_queue_982 tx_ring_size tx_queue 0 982 NULL
148778 +enable_so_em28xx_alloc_urbs_fndecl_983 em28xx_alloc_urbs fndecl 5-6-4 983 NULL nohasharray
148779 +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
148780 +enable_so_sm501_create_subio_fndecl_985 sm501_create_subio fndecl 4-3 985 NULL
148781 +enable_so_esp6_get_mtu_fndecl_987 esp6_get_mtu fndecl 0-2 987 NULL
148782 +enable_so_acc_userl_accessdata_dn_989 acc_userl accessdata_dn 0 989 NULL
148783 +enable_so_unlock_extent_fndecl_990 unlock_extent fndecl 2-3 990 NULL
148784 +enable_so_gtt_size_amdgpu_mc_994 gtt_size amdgpu_mc 0 994 NULL
148785 +enable_so_btmrvl_pscmd_read_fndecl_999 btmrvl_pscmd_read fndecl 3 999 NULL
148786 +enable_so_ContainerSwitchEntries_aac_get_container_count_resp_1001 ContainerSwitchEntries aac_get_container_count_resp 0 1001 NULL
148787 +enable_so_reserve_metadata_bytes_fndecl_1002 reserve_metadata_bytes fndecl 0 1002 NULL
148788 +enable_so_cpu_count_MPT3SAS_ADAPTER_1003 cpu_count MPT3SAS_ADAPTER 0 1003 NULL
148789 +enable_so_xfs_dir3_leafn_read_fndecl_1004 xfs_dir3_leafn_read fndecl 3 1004 NULL
148790 +enable_so_ath6kl_add_bss_if_needed_fndecl_1006 ath6kl_add_bss_if_needed fndecl 6 1006 NULL
148791 +enable_so___dm_get_module_param_fndecl_1008 __dm_get_module_param fndecl 2-3-0 1008 NULL
148792 +enable_so_assoc_req_len_wmi_connect_event_1014 assoc_req_len wmi_connect_event 0 1014 NULL
148793 +enable_so_s_last_cno_nilfs_super_block_1016 s_last_cno nilfs_super_block 0 1016 NULL
148794 +enable_so_nvram_size_chip_desc_1022 nvram_size chip_desc 0 1022 NULL
148795 +enable_so_dlm_len_mt76_fw_header_1030 dlm_len mt76_fw_header 0 1030 NULL
148796 +enable_so_pci_scan_single_device_fndecl_1034 pci_scan_single_device fndecl 2 1034 NULL
148797 +enable_so_wq_ecount_lpfc_sli4_hba_1039 wq_ecount lpfc_sli4_hba 0 1039 NULL
148798 +enable_so_jffs2_iget_fndecl_1041 jffs2_iget fndecl 2 1041 NULL nohasharray
148799 +enable_so_page_shift_mlx5_buf_1041 page_shift mlx5_buf 0 1041 &enable_so_jffs2_iget_fndecl_1041 nohasharray
148800 +enable_so_ssb_admatch_size_fndecl_1041 ssb_admatch_size fndecl 0-1 1041 &enable_so_page_shift_mlx5_buf_1041
148801 +enable_so_iv_len_txentry_desc_1042 iv_len txentry_desc 0 1042 NULL nohasharray
148802 +enable_so_address_length_acpi_resource_fixed_io_1042 address_length acpi_resource_fixed_io 0 1042 &enable_so_iv_len_txentry_desc_1042
148803 +enable_so_vnic_dev_get_res_count_fndecl_1044 vnic_dev_get_res_count fndecl 0 1044 NULL
148804 +enable_so_tx_power_ipw_priv_1046 tx_power ipw_priv 0 1046 NULL
148805 +enable_so_read_data_done_iscsi_datain_req_1049 read_data_done iscsi_datain_req 0 1049 NULL nohasharray
148806 +enable_so_registers_gen_74x164_chip_1049 registers gen_74x164_chip 0 1049 &enable_so_read_data_done_iscsi_datain_req_1049
148807 +enable_so_m5602_urb_complete_fndecl_1052 m5602_urb_complete fndecl 3 1052 NULL
148808 +enable_so_rocker_dma_test_offset_fndecl_1055 rocker_dma_test_offset fndecl 3 1055 NULL
148809 +enable_so_nentries_ebt_replace_1059 nentries ebt_replace 0 1059 NULL
148810 +enable_so_ch_r_tail_jsm_channel_1063 ch_r_tail jsm_channel 0 1063 NULL
148811 +enable_so_data_ep_set_params_fndecl_1064 data_ep_set_params fndecl 3-4 1064 NULL
148812 +enable_so_cw_clear_fndecl_1066 cw_clear fndecl 5-3-4-6 1066 NULL
148813 +enable_so_len_left_brcmf_sdio_hdrinfo_1067 len_left brcmf_sdio_hdrinfo 0 1067 NULL
148814 +enable_so_i_dno_hpfs_inode_info_1070 i_dno hpfs_inode_info 0 1070 NULL nohasharray
148815 +enable_so_line__mgslpc_info_1070 line _mgslpc_info 0 1070 &enable_so_i_dno_hpfs_inode_info_1070
148816 +enable_so_num_min_snd_ratden_1071 num_min snd_ratden 0 1071 NULL
148817 +enable_so_private_data_len_iw_cm_conn_param_1076 private_data_len iw_cm_conn_param 0 1076 NULL
148818 +enable_so_enable_clk_ops_1078 enable clk_ops 0 1078 NULL
148819 +enable_so_rq_wqe_count_mlx5_ib_create_qp_1079 rq_wqe_count mlx5_ib_create_qp 0 1079 NULL
148820 +enable_so_ReadEEProm_fndecl_1081 ReadEEProm fndecl 3 1081 NULL
148821 +enable_so_inum_ns_common_1087 inum ns_common 0 1087 NULL
148822 +enable_so_max_srq_sz_mthca_dev_lim_1088 max_srq_sz mthca_dev_lim 0 1088 NULL
148823 +enable_so_libipw_classify_fndecl_1089 libipw_classify fndecl 0 1089 NULL
148824 +enable_so_data_start_msdos_sb_info_1100 data_start msdos_sb_info 0 1100 NULL
148825 +enable_so_num_counters_compat_ebt_replace_1102 num_counters compat_ebt_replace 0 1102 NULL
148826 +enable_so_b_cnt_mon_reader_bin_1106 b_cnt mon_reader_bin 0 1106 NULL
148827 +enable_so_rx_ring_count_e1000_adapter_1107 rx_ring_count e1000_adapter 0 1107 NULL
148828 +enable_so_cmd_sg_entries_vardecl_ib_srp_c_1108 cmd_sg_entries vardecl_ib_srp.c 0 1108 NULL
148829 +enable_so_ResponseDataLength__MPI2_SMP_PASSTHROUGH_REPLY_1113 ResponseDataLength _MPI2_SMP_PASSTHROUGH_REPLY 0 1113 NULL
148830 +enable_so_io_free_memtype_fndecl_1116 io_free_memtype fndecl 1-2 1116 NULL
148831 +enable_so_create_attr_set_fndecl_1118 create_attr_set fndecl 1 1118 NULL
148832 +enable_so_slave_cnt_bonding_1119 slave_cnt bonding 0 1119 NULL
148833 +enable_so_rxkad_decrypt_ticket_fndecl_1120 rxkad_decrypt_ticket fndecl 3 1120 NULL
148834 +enable_so_mdc800_device_read_fndecl_1123 mdc800_device_read fndecl 3 1123 NULL
148835 +enable_so_ctl_in_pipe_brcmf_usbdev_info_1124 ctl_in_pipe brcmf_usbdev_info 0 1124 NULL
148836 +enable_so_ion_handle_test_kernel_fndecl_1127 ion_handle_test_kernel fndecl 3-4 1127 NULL
148837 +enable_so_forw_xfs_dir3_icleaf_hdr_1136 forw xfs_dir3_icleaf_hdr 0 1136 NULL
148838 +enable_so_log_num_mlx4_resource_1137 log_num mlx4_resource 0 1137 NULL
148839 +enable_so_vmw_execbuf_process_fndecl_1142 vmw_execbuf_process fndecl 5 1142 NULL
148840 +enable_so_usblp_new_writeurb_fndecl_1149 usblp_new_writeurb fndecl 2 1149 NULL nohasharray
148841 +enable_so_p54spi_spi_read_fndecl_1149 p54spi_spi_read fndecl 4 1149 &enable_so_usblp_new_writeurb_fndecl_1149
148842 +enable_so_offset_mirror_1150 offset mirror 0 1150 NULL
148843 +enable_so_hw_max_sectors_se_dev_attrib_1152 hw_max_sectors se_dev_attrib 0 1152 NULL
148844 +enable_so_ntfs_rl_vcn_to_lcn_fndecl_1155 ntfs_rl_vcn_to_lcn fndecl 0-2 1155 NULL
148845 +enable_so_cbuf_data_fndecl_1158 cbuf_data fndecl 0 1158 NULL
148846 +enable_so_xstateregs_set_fndecl_1159 xstateregs_set fndecl 4 1159 NULL
148847 +enable_so_sysctl_tcp_max_reordering_vardecl_1161 sysctl_tcp_max_reordering vardecl 0 1161 NULL
148848 +enable_so_rtsx_usb_write_ppbuf_fndecl_1165 rtsx_usb_write_ppbuf fndecl 3 1165 NULL
148849 +enable_so_region_head_fndecl_1168 region_head fndecl 3 1168 NULL nohasharray
148850 +enable_so_nfs4_acl_bytes_fndecl_1168 nfs4_acl_bytes fndecl 0-1 1168 &enable_so_region_head_fndecl_1168 nohasharray
148851 +enable_so_sg_len_mmc_data_1168 sg_len mmc_data 0 1168 &enable_so_nfs4_acl_bytes_fndecl_1168
148852 +enable_so___set_xattr_fndecl_1176 __set_xattr fndecl 5-3 1176 NULL
148853 +enable_so_br_vlan_add_fndecl_1177 br_vlan_add fndecl 2 1177 NULL
148854 +enable_so_resp_disconnect_pg_fndecl_1178 resp_disconnect_pg fndecl 0 1178 NULL
148855 +enable_so_nr_push_drm_nouveau_gem_pushbuf_1184 nr_push drm_nouveau_gem_pushbuf 0 1184 NULL
148856 +enable_so_alloc_sglist_fndecl_1187 alloc_sglist fndecl 3-2-1 1187 NULL
148857 +enable_so_mxr_mplane_fill_fndecl_1189 mxr_mplane_fill fndecl 3-4 1189 NULL
148858 +enable_so_il4965_rs_move_mimo2_to_other_fndecl_1191 il4965_rs_move_mimo2_to_other fndecl 5 1191 NULL nohasharray
148859 +enable_so_vme_get_size_fndecl_1191 vme_get_size fndecl 0 1191 &enable_so_il4965_rs_move_mimo2_to_other_fndecl_1191
148860 +enable_so_tx_frag_key_not_found_read_fndecl_1192 tx_frag_key_not_found_read fndecl 3 1192 NULL
148861 +enable_so_probe_resp_len_cfg80211_beacon_data_1195 probe_resp_len cfg80211_beacon_data 0 1195 NULL
148862 +enable_so_rdmarc_per_qp_mlx4_profile_1197 rdmarc_per_qp mlx4_profile 0 1197 NULL
148863 +enable_so_nfs4_get_security_label_fndecl_1201 nfs4_get_security_label fndecl 3 1201 NULL nohasharray
148864 +enable_so_rx_sdu_size_tsap_cb_1201 rx_sdu_size tsap_cb 0 1201 &enable_so_nfs4_get_security_label_fndecl_1201
148865 +enable_so_pvscsi_ring_pages_vardecl_vmw_pvscsi_c_1202 pvscsi_ring_pages vardecl_vmw_pvscsi.c 0 1202 NULL
148866 +enable_so_pcpu_mem_zalloc_fndecl_1207 pcpu_mem_zalloc fndecl 1 1207 NULL
148867 +enable_so_max_sge_mvumi_hba_1213 max_sge mvumi_hba 0 1213 NULL
148868 +enable_so_logfs_segment_write_compress_fndecl_1214 logfs_segment_write_compress fndecl 5 1214 NULL
148869 +enable_so_max_transfer_bytes_storvsc_device_1221 max_transfer_bytes storvsc_device 0 1221 NULL
148870 +enable_so_max_pkt_size_au0828_dev_1222 max_pkt_size au0828_dev 0 1222 NULL
148871 +enable_so_segno_curseg_info_1223 segno curseg_info 0 1223 NULL
148872 +enable_so_pfkey_sendmsg_fndecl_1225 pfkey_sendmsg fndecl 3 1225 NULL
148873 +enable_so_i_sblock_bfs_inode_info_1228 i_sblock bfs_inode_info 0 1228 NULL
148874 +enable_so_cached_dev_cache_miss_fndecl_1232 cached_dev_cache_miss fndecl 4 1232 NULL
148875 +enable_so_pte_hole_mm_walk_1233 pte_hole mm_walk 0 1233 NULL
148876 +enable_so_prev_chunk_sectors_r5conf_1237 prev_chunk_sectors r5conf 0 1237 NULL
148877 +enable_so_buffer_dma_zd_usb_interrupt_1239 buffer_dma zd_usb_interrupt 0 1239 NULL
148878 +enable_so_remote_settings_file_write_fndecl_1240 remote_settings_file_write fndecl 3 1240 NULL
148879 +enable_so_dlc_leaf_msg_log_message_1244 dlc leaf_msg_log_message 0 1244 NULL
148880 +enable_so_get_tdp_level_kvm_x86_ops_1250 get_tdp_level kvm_x86_ops 0 1250 NULL nohasharray
148881 +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
148882 +enable_so_max_vports_lpfc_hba_1253 max_vports lpfc_hba 0 1253 NULL
148883 +enable_so_find_highest_prio_tid_fndecl_1254 find_highest_prio_tid fndecl 0 1254 NULL
148884 +enable_so_num_slaves_mlx4_dev_1258 num_slaves mlx4_dev 0 1258 NULL
148885 +enable_so_alloc32_mon_bin_get32_1260 alloc32 mon_bin_get32 0 1260 NULL
148886 +enable_so_nfs_readdir_xdr_filler_fndecl_1265 nfs_readdir_xdr_filler fndecl 0 1265 NULL
148887 +enable_so_nlmsg_len_nlmsghdr_1272 nlmsg_len nlmsghdr 0 1272 NULL
148888 +enable_so_viafb_dvp0_proc_write_fndecl_1276 viafb_dvp0_proc_write fndecl 3 1276 NULL
148889 +enable_so___lbtf_cmd_async_fndecl_1280 __lbtf_cmd_async fndecl 4 1280 NULL
148890 +enable_so_ocfs2_read_extent_block_fndecl_1285 ocfs2_read_extent_block fndecl 0-2 1285 NULL
148891 +enable_so_agp_alloc_page_array_fndecl_1289 agp_alloc_page_array fndecl 1 1289 NULL
148892 +enable_so_fw_epd_frame_1293 fw epd_frame 0 1293 NULL
148893 +enable_so_prv_size_override_lpss_device_desc_1301 prv_size_override lpss_device_desc 0 1301 NULL
148894 +enable_so_wMaxControlMessage_usb_cdc_mbim_desc_1308 wMaxControlMessage usb_cdc_mbim_desc 0 1308 NULL nohasharray
148895 +enable_so_size_nvkm_ram_1308 size nvkm_ram 0 1308 &enable_so_wMaxControlMessage_usb_cdc_mbim_desc_1308
148896 +enable_so_number_snd_pcm_substream_1313 number snd_pcm_substream 0 1313 NULL nohasharray
148897 +enable_so_curr_resync_mddev_1313 curr_resync mddev 0 1313 &enable_so_number_snd_pcm_substream_1313
148898 +enable_so_vd_cbr_au_count_gru_vma_data_1314 vd_cbr_au_count gru_vma_data 0 1314 NULL
148899 +enable_so_read_kernfs_ops_1325 read kernfs_ops 0 1325 NULL
148900 +enable_so_win_size_async_state_1326 win_size async_state 0 1326 NULL
148901 +enable_so_flctl_cmdfunc_fndecl_1333 flctl_cmdfunc fndecl 3 1333 NULL
148902 +enable_so_fat_parse_short_fndecl_1348 fat_parse_short fndecl 0 1348 NULL
148903 +enable_so_current_limit_memblock_1350 current_limit memblock 0 1350 NULL
148904 +enable_so_ccp_set_dm_area_fndecl_1351 ccp_set_dm_area fndecl 4 1351 NULL
148905 +enable_so_btrfs_delalloc_reserve_space_fndecl_1354 btrfs_delalloc_reserve_space fndecl 0 1354 NULL
148906 +enable_so_MemReadHSCX_fndecl_1364 MemReadHSCX fndecl 0 1364 NULL
148907 +enable_so_max_num_of_queues_per_device_vardecl_1365 max_num_of_queues_per_device vardecl 0 1365 NULL
148908 +enable_so_tx_ring_count_xgbe_prv_data_1366 tx_ring_count xgbe_prv_data 0 1366 NULL
148909 +enable_so_len_orinoco_scan_data_1370 len orinoco_scan_data 0 1370 NULL nohasharray
148910 +enable_so_dlen_hci_sco_hdr_1370 dlen hci_sco_hdr 0 1370 &enable_so_len_orinoco_scan_data_1370
148911 +enable_so_v_total_aty128_crtc_1375 v_total aty128_crtc 0 1375 NULL
148912 +enable_so_reiserfs_get_block_fndecl_1379 reiserfs_get_block fndecl 2 1379 NULL
148913 +enable_so_w_drm_vmw_rect_1383 w drm_vmw_rect 0 1383 NULL
148914 +enable_so_ieee80211_probereq_get_fndecl_1384 ieee80211_probereq_get fndecl 5-4 1384 NULL
148915 +enable_so_iwl_dbgfs_calib_disabled_read_fndecl_1386 iwl_dbgfs_calib_disabled_read fndecl 3 1386 NULL
148916 +enable_so_vlen_nfsd3_writeargs_1388 vlen nfsd3_writeargs 0 1388 NULL
148917 +enable_so_smsc911x_rx_get_rxstatus_fndecl_1389 smsc911x_rx_get_rxstatus fndecl 0 1389 NULL
148918 +enable_so_iwl_dbgfs_rx_phyinfo_read_fndecl_1394 iwl_dbgfs_rx_phyinfo_read fndecl 3 1394 NULL
148919 +enable_so_stepped_offset_skb_seq_state_1395 stepped_offset skb_seq_state 0 1395 NULL
148920 +enable_so_sctp_setsockopt_connectx_old_fndecl_1396 sctp_setsockopt_connectx_old fndecl 3 1396 NULL
148921 +enable_so_len_wsm_hdr_1398 len wsm_hdr 0 1398 NULL
148922 +enable_so_dev_size_amd_flash_info_1399 dev_size amd_flash_info 0 1399 NULL
148923 +enable_so_cmd_size_scsi_host_template_1404 cmd_size scsi_host_template 0 1404 NULL
148924 +enable_so_wl1271_rx_filter_get_fields_size_fndecl_1405 wl1271_rx_filter_get_fields_size fndecl 0 1405 NULL
148925 +enable_so_num_hsi_port_1406 num hsi_port 0 1406 NULL
148926 +enable_so_ide_core_cp_entry_fndecl_1407 ide_core_cp_entry fndecl 3 1407 NULL
148927 +enable_so_ec_hdr_alsize_ubi_device_1411 ec_hdr_alsize ubi_device 0 1411 NULL
148928 +enable_so_ubifs_leb_write_fndecl_1412 ubifs_leb_write fndecl 5-4 1412 NULL nohasharray
148929 +enable_so_num_rx_bds_bcmgenet_priv_1412 num_rx_bds bcmgenet_priv 0 1412 &enable_so_ubifs_leb_write_fndecl_1412
148930 +enable_so_copy_pages_to_kvecs_fndecl_1417 copy_pages_to_kvecs fndecl 0 1417 NULL
148931 +enable_so_fill_gap_fndecl_1418 fill_gap fndecl 4-3 1418 NULL
148932 +enable_so_qlcnic_83xx_sysfs_flash_write_handler_fndecl_1419 qlcnic_83xx_sysfs_flash_write_handler fndecl 6 1419 NULL
148933 +enable_so_ocfs2_get_block_fndecl_1420 ocfs2_get_block fndecl 2 1420 NULL
148934 +enable_so_wpa_ie_len_orinoco_private_1421 wpa_ie_len orinoco_private 0 1421 NULL nohasharray
148935 +enable_so_reg_umr_fndecl_1421 reg_umr fndecl 3-5 1421 &enable_so_wpa_ie_len_orinoco_private_1421
148936 +enable_so_bch_dump_read_fndecl_1422 bch_dump_read fndecl 3 1422 NULL
148937 +enable_so_tnc_insert_fndecl_1431 tnc_insert fndecl 4 1431 NULL
148938 +enable_so_relocation_count_drm_i915_gem_exec_object2_1435 relocation_count drm_i915_gem_exec_object2 0 1435 NULL
148939 +enable_so_rdev_num_s2mps11_info_1439 rdev_num s2mps11_info 0 1439 NULL
148940 +enable_so_alloc_libipw_fndecl_1447 alloc_libipw fndecl 1 1447 NULL
148941 +enable_so_memcg_update_list_lru_node_fndecl_1454 memcg_update_list_lru_node fndecl 3 1454 NULL
148942 +enable_so_sys_ppoll_fndecl_1459 sys_ppoll fndecl 2 1459 NULL
148943 +enable_so_size_fw_sec_1464 size fw_sec 0 1464 NULL
148944 +enable_so_net_header_len_sctp_af_1467 net_header_len sctp_af 0 1467 NULL
148945 +enable_so_btrfs_del_inode_ref_in_log_fndecl_1471 btrfs_del_inode_ref_in_log fndecl 4 1471 NULL
148946 +enable_so_ceph_decode_32_fndecl_1473 ceph_decode_32 fndecl 0 1473 NULL
148947 +enable_so_xenbus_map_ring_valloc_pv_fndecl_1474 xenbus_map_ring_valloc_pv fndecl 3 1474 NULL
148948 +enable_so_ax25_output_fndecl_1475 ax25_output fndecl 2 1475 NULL
148949 +enable_so_iio_debugfs_write_reg_fndecl_1477 iio_debugfs_write_reg fndecl 3 1477 NULL
148950 +enable_so_pbus_size_io_fndecl_1478 pbus_size_io fndecl 2 1478 NULL
148951 +enable_so_nfs3_proc_symlink_fndecl_1479 nfs3_proc_symlink fndecl 4 1479 NULL
148952 +enable_so_iscsi_sw_tcp_send_data_prep_fndecl_1485 iscsi_sw_tcp_send_data_prep fndecl 5-4 1485 NULL
148953 +enable_so_irq_base_max8925_chip_1487 irq_base max8925_chip 0 1487 NULL
148954 +enable_so_ecryptfs_write_metadata_to_contents_fndecl_1490 ecryptfs_write_metadata_to_contents fndecl 3 1490 NULL
148955 +enable_so_de4x5_alloc_rx_buff_fndecl_1491 de4x5_alloc_rx_buff fndecl 3 1491 NULL
148956 +enable_so_n_channels_ieee80211_supported_band_1494 n_channels ieee80211_supported_band 0 1494 NULL
148957 +enable_so_blocks_count_ext4_new_group_data_1496 blocks_count ext4_new_group_data 0 1496 NULL
148958 +enable_so_ezusb_program_fndecl_1497 ezusb_program fndecl 3-4 1497 NULL
148959 +enable_so_ext4_mpage_readpages_fndecl_1499 ext4_mpage_readpages fndecl 4 1499 NULL
148960 +enable_so_num_step_snd_ratden_1500 num_step snd_ratden 0 1500 NULL nohasharray
148961 +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
148962 +enable_so_uvc_video_decode_start_fndecl_1505 uvc_video_decode_start fndecl 0 1505 NULL
148963 +enable_so_print_frame_fndecl_1506 print_frame fndecl 0 1506 NULL
148964 +enable_so_bo_info_size_drm_amdgpu_bo_list_in_1510 bo_info_size drm_amdgpu_bo_list_in 0 1510 NULL
148965 +enable_so_dma_data_req_size_ivtv_1512 dma_data_req_size ivtv 0 1512 NULL
148966 +enable_so_initiate_new_session_fndecl_1514 initiate_new_session fndecl 6 1514 NULL nohasharray
148967 +enable_so___break_lease_fndecl_1514 __break_lease fndecl 0 1514 &enable_so_initiate_new_session_fndecl_1514
148968 +enable_so_sk_sndbuf_sock_1516 sk_sndbuf sock 0 1516 NULL
148969 +enable_so_shmem_file_setup_fndecl_1517 shmem_file_setup fndecl 2 1517 NULL
148970 +enable_so_buf_size_mlx4_ib_qp_1529 buf_size mlx4_ib_qp 0 1529 NULL nohasharray
148971 +enable_so_qlcnic_sriov_init_fndecl_1529 qlcnic_sriov_init fndecl 2 1529 &enable_so_buf_size_mlx4_ib_qp_1529
148972 +enable_so_max_rqe_ocrdma_dev_attr_1534 max_rqe ocrdma_dev_attr 0 1534 NULL
148973 +enable_so_grcan_allocate_dma_buffers_fndecl_1535 grcan_allocate_dma_buffers fndecl 2-3 1535 NULL
148974 +enable_so_readlink_inode_operations_1540 readlink inode_operations 0 1540 NULL
148975 +enable_so___es_remove_extent_fndecl_1544 __es_remove_extent fndecl 0-3-2 1544 NULL
148976 +enable_so___aa_kvmalloc_fndecl_1547 __aa_kvmalloc fndecl 1 1547 NULL
148977 +enable_so_max_gs_mlx4_srq_1550 max_gs mlx4_srq 0 1550 NULL
148978 +enable_so_beg_hdmi_pulse_1552 beg hdmi_pulse 0 1552 NULL nohasharray
148979 +enable_so_rix_minstrel_rate_1552 rix minstrel_rate 0 1552 &enable_so_beg_hdmi_pulse_1552
148980 +enable_so_gru_preload_tlb_fndecl_1562 gru_preload_tlb fndecl 7-4 1562 NULL
148981 +enable_so_prio_read_fndecl_1564 prio_read fndecl 2 1564 NULL
148982 +enable_so_i2cdev_write_fndecl_1565 i2cdev_write fndecl 3 1565 NULL
148983 +enable_so_libcfs_kvzalloc_fndecl_1568 libcfs_kvzalloc fndecl 1 1568 NULL
148984 +enable_so_alignment_acpi_resource_io_1569 alignment acpi_resource_io 0 1569 NULL nohasharray
148985 +enable_so_page_readlink_fndecl_1569 page_readlink fndecl 3 1569 &enable_so_alignment_acpi_resource_io_1569
148986 +enable_so_kmem_zalloc_large_fndecl_1572 kmem_zalloc_large fndecl 1 1572 NULL
148987 +enable_so_size_drm_qxl_alloc_1578 size drm_qxl_alloc 0 1578 NULL
148988 +enable_so_ndesc_srp_map_state_1582 ndesc srp_map_state 0 1582 NULL
148989 +enable_so_vb2_dvb_register_adapter_fndecl_1588 vb2_dvb_register_adapter fndecl 0 1588 NULL
148990 +enable_so_process_hot_add_fndecl_1590 process_hot_add fndecl 3 1590 NULL
148991 +enable_so_sector_clone_info_1593 sector clone_info 0 1593 NULL
148992 +enable_so_length_cpc_can_msg_1600 length cpc_can_msg 0 1600 NULL nohasharray
148993 +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
148994 +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
148995 +enable_so_block_size_c2port_ops_1610 block_size c2port_ops 0 1610 NULL
148996 +enable_so_pppoe_sendmsg_fndecl_1612 pppoe_sendmsg fndecl 3 1612 NULL
148997 +enable_so_tsout_exchange_fndecl_1621 tsout_exchange fndecl 3 1621 NULL
148998 +enable_so_rawv6_send_hdrinc_fndecl_1625 rawv6_send_hdrinc fndecl 3 1625 NULL nohasharray
148999 +enable_so_max_frame_size_usb_usbvision_1625 max_frame_size usb_usbvision 0 1625 &enable_so_rawv6_send_hdrinc_fndecl_1625
149000 +enable_so_dt_num_devices_exofs_device_table_1626 dt_num_devices exofs_device_table 0 1626 NULL
149001 +enable_so_size_bin_attribute_1632 size bin_attribute 0 1632 NULL
149002 +enable_so_num_fw_rsc_vdev_vring_1645 num fw_rsc_vdev_vring 0 1645 NULL
149003 +enable_so_cblock_policy_result_1648 cblock policy_result 0 1648 NULL
149004 +enable_so_kobil_write_fndecl_1651 kobil_write fndecl 4 1651 NULL
149005 +enable_so_load_segment_descriptor_fndecl_1654 load_segment_descriptor fndecl 2 1654 NULL
149006 +enable_so_st_set_pages_fndecl_1655 st_set_pages fndecl 3 1655 NULL
149007 +enable_so_copied_rpc_pipe_msg_1658 copied rpc_pipe_msg 0 1658 NULL
149008 +enable_so_rds_tcp_sendmsg_fndecl_1668 rds_tcp_sendmsg fndecl 3 1668 NULL
149009 +enable_so_pci_brcm_trumanage_setup_fndecl_1671 pci_brcm_trumanage_setup fndecl 4 1671 NULL nohasharray
149010 +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
149011 +enable_so_hidraw_send_report_fndecl_1674 hidraw_send_report fndecl 3 1674 NULL
149012 +enable_so_vzalloc_node_fndecl_1683 vzalloc_node fndecl 1 1683 NULL
149013 +enable_so_rsrc_len_usb_hcd_1686 rsrc_len usb_hcd 0 1686 NULL
149014 +enable_so_file_size_squashfs_ldir_inode_1687 file_size squashfs_ldir_inode 0 1687 NULL
149015 +enable_so_remain_bytes_asc_q_done_info_1696 remain_bytes asc_q_done_info 0 1696 NULL
149016 +enable_so_size_grcan_dma_buffer_1702 size grcan_dma_buffer 0 1702 NULL
149017 +enable_so_ib_uverbs_alloc_pd_fndecl_1708 ib_uverbs_alloc_pd fndecl 3 1708 NULL
149018 +enable_so_divasa_remap_pci_bar_fndecl_1710 divasa_remap_pci_bar fndecl 4-3 1710 NULL nohasharray
149019 +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
149020 +enable_so_linear_conf_fndecl_1710 linear_conf fndecl 2 1710 &enable_so_get_cap_size_qlcnic_hardware_ops_1710
149021 +enable_so_ext4_getblk_fndecl_1720 ext4_getblk fndecl 3 1720 NULL
149022 +enable_so_yres_drm_cmdline_mode_1722 yres drm_cmdline_mode 0 1722 NULL
149023 +enable_so_qtd_fill_fndecl_1725 qtd_fill fndecl 4-5-2-0-3 1725 NULL
149024 +enable_so_submit_io_fndecl_1726 submit_io fndecl 3 1726 NULL
149025 +enable_so_ts_num_ids_nfsd4_test_stateid_1732 ts_num_ids nfsd4_test_stateid 0 1732 NULL nohasharray
149026 +enable_so_devm_iio_device_alloc_fndecl_1732 devm_iio_device_alloc fndecl 2 1732 &enable_so_ts_num_ids_nfsd4_test_stateid_1732
149027 +enable_so_state_hmask_netns_xfrm_1733 state_hmask netns_xfrm 0 1733 NULL
149028 +enable_so___gfn_to_hva_many_fndecl_1735 __gfn_to_hva_many fndecl 0-2 1735 NULL
149029 +enable_so_l4_hdr_size_vmxnet3_tx_ctx_1737 l4_hdr_size vmxnet3_tx_ctx 0 1737 NULL
149030 +enable_so_userspace_do_request_fndecl_1738 userspace_do_request fndecl 5 1738 NULL
149031 +enable_so_pci_omegapci_setup_fndecl_1740 pci_omegapci_setup fndecl 4 1740 NULL
149032 +enable_so_ad_sd_write_reg_fndecl_1743 ad_sd_write_reg fndecl 3 1743 NULL nohasharray
149033 +enable_so_nr_packets_saa7134_ts_1743 nr_packets saa7134_ts 0 1743 &enable_so_ad_sd_write_reg_fndecl_1743
149034 +enable_so_compat_filldir_fndecl_1746 compat_filldir fndecl 3 1746 NULL
149035 +enable_so_sectorsize_btrfs_root_1747 sectorsize btrfs_root 0 1747 NULL
149036 +enable_so_si4713_send_command_fndecl_1750 si4713_send_command fndecl 6 1750 NULL
149037 +enable_so_copy_module_from_user_fndecl_1751 copy_module_from_user fndecl 2 1751 NULL
149038 +enable_so_it_context_mask_fw_ohci_1753 it_context_mask fw_ohci 0 1753 NULL
149039 +enable_so_ext4_remove_blocks_fndecl_1754 ext4_remove_blocks fndecl 5 1754 NULL
149040 +enable_so_len_pda_custom_wrapper_1757 len pda_custom_wrapper 0 1757 NULL nohasharray
149041 +enable_so_lustre_acl_xattr_merge2ext_fndecl_1757 lustre_acl_xattr_merge2ext fndecl 2 1757 &enable_so_len_pda_custom_wrapper_1757
149042 +enable_so_offset_scrub_nocow_inode_1762 offset scrub_nocow_inode 0 1762 NULL
149043 +enable_so_ima_show_measurements_count_fndecl_1763 ima_show_measurements_count fndecl 3 1763 NULL
149044 +enable_so___es_insert_extent_fndecl_1764 __es_insert_extent fndecl 0 1764 NULL
149045 +enable_so_eqe_size_mlx4_caps_1775 eqe_size mlx4_caps 0 1775 NULL
149046 +enable_so_key_length_mwifiex_wep_key_1784 key_length mwifiex_wep_key 0 1784 NULL
149047 +enable_so___of_translate_address_fndecl_1786 __of_translate_address fndecl 0 1786 NULL
149048 +enable_so_pitch_radeonfb_info_1792 pitch radeonfb_info 0 1792 NULL
149049 +enable_so_nv50_disp_chan_create__fndecl_1795 nv50_disp_chan_create_ fndecl 5 1795 NULL
149050 +enable_so_reiserfs_add_entry_fndecl_1797 reiserfs_add_entry fndecl 4 1797 NULL
149051 +enable_so_vub300_usb_bulk_msg_fndecl_1799 vub300_usb_bulk_msg fndecl 4-2 1799 NULL nohasharray
149052 +enable_so_security_inode_killpriv_fndecl_1799 security_inode_killpriv fndecl 0 1799 &enable_so_vub300_usb_bulk_msg_fndecl_1799
149053 +enable_so_wl1273_fm_write_data_fndecl_1803 wl1273_fm_write_data fndecl 3 1803 NULL
149054 +enable_so_num_mtt_segs_mthca_limits_1806 num_mtt_segs mthca_limits 0 1806 NULL
149055 +enable_so_mei_cl_send_fndecl_1807 mei_cl_send fndecl 3 1807 NULL
149056 +enable_so_dataInSize_mpt_ioctl_command_1808 dataInSize mpt_ioctl_command 0 1808 NULL
149057 +enable_so_udl_gem_alloc_object_fndecl_1811 udl_gem_alloc_object fndecl 2 1811 NULL
149058 +enable_so___hugepage_set_anon_rmap_fndecl_1814 __hugepage_set_anon_rmap fndecl 3 1814 NULL nohasharray
149059 +enable_so_sv_nrpools_svc_serv_1814 sv_nrpools svc_serv 0 1814 &enable_so___hugepage_set_anon_rmap_fndecl_1814
149060 +enable_so_fuse_dir_ioctl_fndecl_1818 fuse_dir_ioctl fndecl 2 1818 NULL
149061 +enable_so_bufsize_saa7134_dmasound_1821 bufsize saa7134_dmasound 0 1821 NULL
149062 +enable_so_lleft_ext4_allocation_request_1823 lleft ext4_allocation_request 0 1823 NULL nohasharray
149063 +enable_so_s_size_qib_qp_1823 s_size qib_qp 0 1823 &enable_so_lleft_ext4_allocation_request_1823
149064 +enable_so_rt2x00debug_write_eeprom_fndecl_1824 rt2x00debug_write_eeprom fndecl 3 1824 NULL
149065 +enable_so_num_vectors_e1000_adapter_1827 num_vectors e1000_adapter 0 1827 NULL
149066 +enable_so___add_prelim_ref_fndecl_1828 __add_prelim_ref fndecl 6-5-2 1828 NULL
149067 +enable_so_ntfs_ucstonls_fndecl_1834 ntfs_ucstonls fndecl 3-5 1834 NULL
149068 +enable_so_kvm_mmu_gva_to_gpa_write_fndecl_1840 kvm_mmu_gva_to_gpa_write fndecl 0 1840 NULL
149069 +enable_so_walk_system_ram_range_fndecl_1842 walk_system_ram_range fndecl 2-1 1842 NULL
149070 +enable_so_check_free_sectors_fndecl_1843 check_free_sectors fndecl 2 1843 NULL
149071 +enable_so_vm_map_ram_fndecl_1845 vm_map_ram fndecl 2 1845 NULL
149072 +enable_so_device_slot_1847 device slot 0 1847 NULL
149073 +enable_so_ncpus_xen_mc_physcpuinfo_1849 ncpus xen_mc_physcpuinfo 0 1849 NULL
149074 +enable_so_qla4_82xx_pci_mem_read_2M_fndecl_1850 qla4_82xx_pci_mem_read_2M fndecl 2 1850 NULL
149075 +enable_so_maximum_cx88_ctrl_1852 maximum cx88_ctrl 0 1852 NULL
149076 +enable_so_isr_tx_procs_read_fndecl_1855 isr_tx_procs_read fndecl 3 1855 NULL
149077 +enable_so_drm_mode_create_tv_properties_fndecl_1857 drm_mode_create_tv_properties fndecl 2 1857 NULL
149078 +enable_so_dm_write_async_fndecl_1859 dm_write_async fndecl 3 1859 NULL
149079 +enable_so_read_file_wow_fndecl_1861 read_file_wow fndecl 3 1861 NULL
149080 +enable_so_rxq_req_tg3_1873 rxq_req tg3 0 1873 NULL
149081 +enable_so_nl80211_send_rx_auth_fndecl_1876 nl80211_send_rx_auth fndecl 4 1876 NULL nohasharray
149082 +enable_so_bset_tree_bytes_fndecl_1876 bset_tree_bytes fndecl 0 1876 &enable_so_nl80211_send_rx_auth_fndecl_1876
149083 +enable_so_mwl8k_cmd_set_beacon_fndecl_1877 mwl8k_cmd_set_beacon fndecl 4 1877 NULL
149084 +enable_so_sisusb_bulkin_msg_fndecl_1878 sisusb_bulkin_msg fndecl 4-2 1878 NULL nohasharray
149085 +enable_so_buf_size_cx18_stream_1878 buf_size cx18_stream 0 1878 &enable_so_sisusb_bulkin_msg_fndecl_1878
149086 +enable_so_num_vmdq_vsis_i40e_pf_1882 num_vmdq_vsis i40e_pf 0 1882 NULL
149087 +enable_so___clear_user_fndecl_1885 __clear_user fndecl 0 1885 NULL
149088 +enable_so_partial_shdma_desc_1886 partial shdma_desc 0 1886 NULL
149089 +enable_so__iwl_dbgfs_fw_dbg_collect_write_fndecl_1890 _iwl_dbgfs_fw_dbg_collect_write fndecl 3 1890 NULL
149090 +enable_so_vmxnet3_get_hdr_len_fndecl_1891 vmxnet3_get_hdr_len fndecl 0 1891 NULL
149091 +enable_so_read_file_ani_fndecl_1898 read_file_ani fndecl 3 1898 NULL
149092 +enable_so_cq_ecount_lpfc_sli4_hba_1907 cq_ecount lpfc_sli4_hba 0 1907 NULL
149093 +enable_so_ca91cx42_master_set_fndecl_1913 ca91cx42_master_set fndecl 4 1913 NULL
149094 +enable_so_mpi_alloc_limb_space_fndecl_1925 mpi_alloc_limb_space fndecl 1 1925 NULL
149095 +enable_so_fix_unclean_leb_fndecl_1927 fix_unclean_leb fndecl 3 1927 NULL
149096 +enable_so_convert_ip_to_linear_fndecl_1933 convert_ip_to_linear fndecl 0 1933 NULL
149097 +enable_so_send_cap_msg_fndecl_1934 send_cap_msg fndecl 13 1934 NULL
149098 +enable_so_length_usnic_uiom_reg_1937 length usnic_uiom_reg 0 1937 NULL
149099 +enable_so_usblp_write_fndecl_1945 usblp_write fndecl 3 1945 NULL
149100 +enable_so_sd_init_fndecl_1946 sd_init fndecl 0 1946 NULL
149101 +enable_so_sv_resid_sym_ccb_1947 sv_resid sym_ccb 0 1947 NULL
149102 +enable_so_ieee80211_get_mesh_hdrlen_fndecl_1948 ieee80211_get_mesh_hdrlen fndecl 0 1948 NULL
149103 +enable_so_gss_pipe_downcall_fndecl_1949 gss_pipe_downcall fndecl 3 1949 NULL
149104 +enable_so_num_adcs_cs42xx8_driver_data_1953 num_adcs cs42xx8_driver_data 0 1953 NULL
149105 +enable_so_mcryptd_alloc_instance_fndecl_1958 mcryptd_alloc_instance fndecl 2-3 1958 NULL
149106 +enable_so___kmalloc_fndecl_1964 __kmalloc fndecl 1 1964 NULL
149107 +enable_so_xlog_get_bp_fndecl_1966 xlog_get_bp fndecl 2 1966 NULL
149108 +enable_so_tty_buffer_request_room_fndecl_1967 tty_buffer_request_room fndecl 0-2 1967 NULL
149109 +enable_so_to_dio_submit_1977 to dio_submit 0 1977 NULL nohasharray
149110 +enable_so_partitionLength_partitionDesc_1977 partitionLength partitionDesc 0 1977 &enable_so_to_dio_submit_1977
149111 +enable_so_tipc_sendmcast_fndecl_1981 tipc_sendmcast fndecl 4 1981 NULL nohasharray
149112 +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
149113 +enable_so_i5k_find_amb_registers_fndecl_1986 i5k_find_amb_registers fndecl 2 1986 NULL
149114 +enable_so_lpsn_ipath_swqe_1995 lpsn ipath_swqe 0 1995 NULL
149115 +enable_so_mwifiex_memrw_read_fndecl_1997 mwifiex_memrw_read fndecl 3 1997 NULL
149116 +enable_so_total_memory_vbe_ib_1999 total_memory vbe_ib 0 1999 NULL
149117 +enable_so_idx_len_tg3_rx_buffer_desc_2006 idx_len tg3_rx_buffer_desc 0 2006 NULL
149118 +enable_so_alauda_read_block_fndecl_2008 alauda_read_block fndecl 4 2008 NULL
149119 +enable_so_nv50_ram_create__fndecl_2010 nv50_ram_create_ fndecl 4 2010 NULL
149120 +enable_so_ipv6_skip_exthdr_fndecl_2016 ipv6_skip_exthdr fndecl 0-2 2016 NULL
149121 +enable_so_madvise_vma_fndecl_2019 madvise_vma fndecl 4-3 2019 NULL
149122 +enable_so_ec_i2c_count_message_fndecl_2022 ec_i2c_count_message fndecl 0-2 2022 NULL nohasharray
149123 +enable_so_doc_probe_fndecl_2022 doc_probe fndecl 1 2022 &enable_so_ec_i2c_count_message_fndecl_2022
149124 +enable_so_vga_vram_base_vardecl_vgacon_c_2024 vga_vram_base vardecl_vgacon.c 0 2024 NULL
149125 +enable_so_max_write_fuse_conn_2028 max_write fuse_conn 0 2028 NULL
149126 +enable_so_process_adv_report_fndecl_2030 process_adv_report fndecl 9 2030 NULL
149127 +enable_so_ib_umem_odp_map_dma_single_page_fndecl_2040 ib_umem_odp_map_dma_single_page fndecl 0 2040 NULL
149128 +enable_so_num_phy_chans_d40_base_2049 num_phy_chans d40_base 0 2049 NULL
149129 +enable_so_gss_encrypt_xdr_buf_fndecl_2050 gss_encrypt_xdr_buf fndecl 3 2050 NULL
149130 +enable_so_set_sock_size_fndecl_2051 set_sock_size fndecl 3 2051 NULL
149131 +enable_so_xfs_da_grow_inode_int_fndecl_2058 xfs_da_grow_inode_int fndecl 3 2058 NULL
149132 +enable_so_wdt87xx_i2c_xfer_fndecl_2059 wdt87xx_i2c_xfer fndecl 3-5 2059 NULL nohasharray
149133 +enable_so_rt2x00queue_remove_l2pad_fndecl_2059 rt2x00queue_remove_l2pad fndecl 2 2059 &enable_so_wdt87xx_i2c_xfer_fndecl_2059 nohasharray
149134 +enable_so_getgain_fndecl_2059 getgain fndecl 0 2059 &enable_so_rt2x00queue_remove_l2pad_fndecl_2059
149135 +enable_so_receive_n_bytes_fndecl_2063 receive_n_bytes fndecl 3 2063 NULL nohasharray
149136 +enable_so_kmalloc_order_trace_fndecl_2063 kmalloc_order_trace fndecl 1 2063 &enable_so_receive_n_bytes_fndecl_2063
149137 +enable_so_val_bytes_regmap_format_2064 val_bytes regmap_format 0 2064 NULL
149138 +enable_so_usbat_flash_read_data_fndecl_2065 usbat_flash_read_data fndecl 4 2065 NULL
149139 +enable_so_total_copied_iscsi_segment_2071 total_copied iscsi_segment 0 2071 NULL
149140 +enable_so_dvb_generic_ioctl_fndecl_2081 dvb_generic_ioctl fndecl 2 2081 NULL
149141 +enable_so_mei_io_cb_alloc_buf_fndecl_2088 mei_io_cb_alloc_buf fndecl 2-0 2088 NULL
149142 +enable_so___kernel_write_fndecl_2090 __kernel_write fndecl 3-0 2090 NULL
149143 +enable_so_rxd_size_bdx_priv_2091 rxd_size bdx_priv 0 2091 NULL
149144 +enable_so_sensor_xres_em28xx_v4l2_2095 sensor_xres em28xx_v4l2 0 2095 NULL
149145 +enable_so_size_nfs_fattr_2101 size nfs_fattr 0 2101 NULL
149146 +enable_so_min_odd_fndecl_2105 min_odd fndecl 0-1-2 2105 NULL
149147 +enable_so_namelen_extended_attribute_2109 namelen extended_attribute 0 2109 NULL
149148 +enable_so_dlen_nft_immediate_expr_2110 dlen nft_immediate_expr 0 2110 NULL
149149 +enable_so_max_pkt_payload_len_nci_conn_info_2111 max_pkt_payload_len nci_conn_info 0 2111 NULL
149150 +enable_so_s_inode_size_ext3_sb_info_2116 s_inode_size ext3_sb_info 0 2116 NULL nohasharray
149151 +enable_so_oom_adj_read_fndecl_2116 oom_adj_read fndecl 3 2116 &enable_so_s_inode_size_ext3_sb_info_2116
149152 +enable_so_ecryptfs_truncate_fndecl_2118 ecryptfs_truncate fndecl 2 2118 NULL
149153 +enable_so_rxfrag_size_ipg_nic_private_2119 rxfrag_size ipg_nic_private 0 2119 NULL
149154 +enable_so_untrack_pfn_fndecl_2124 untrack_pfn fndecl 3 2124 NULL
149155 +enable_so_gen_unique_name_fndecl_2127 gen_unique_name fndecl 0 2127 NULL
149156 +enable_so_sector_size_nd_blk_device_2130 sector_size nd_blk_device 0 2130 NULL
149157 +enable_so_ipath_ports_extrabuf_ipath_devdata_2132 ipath_ports_extrabuf ipath_devdata 0 2132 NULL
149158 +enable_so_dce_v10_0_afmt_update_ACR_fndecl_2133 dce_v10_0_afmt_update_ACR fndecl 2 2133 NULL
149159 +enable_so_hdrs_min_io_size_ubi_device_2134 hdrs_min_io_size ubi_device 0 2134 NULL
149160 +enable_so_offset_resp_ies_ndis_80211_assoc_info_2135 offset_resp_ies ndis_80211_assoc_info 0 2135 NULL
149161 +enable_so_req_lim_srp_rdma_ch_2136 req_lim srp_rdma_ch 0 2136 NULL
149162 +enable_so_count_skge_ring_2140 count skge_ring 0 2140 NULL
149163 +enable_so_connection_length_spar_controlvm_parameters_header_2141 connection_length spar_controlvm_parameters_header 0 2141 NULL
149164 +enable_so__iwl_dbgfs_sta_drain_write_fndecl_2142 _iwl_dbgfs_sta_drain_write fndecl 3 2142 NULL
149165 +enable_so_capacity_p9_fcall_2144 capacity p9_fcall 0 2144 NULL
149166 +enable_so_sisusbcon_bmove_fndecl_2146 sisusbcon_bmove fndecl 7-5-6 2146 NULL
149167 +enable_so_multi_ios_hda_gen_spec_2147 multi_ios hda_gen_spec 0 2147 NULL
149168 +enable_so_ioc_len_obd_ioctl_hdr_2148 ioc_len obd_ioctl_hdr 0 2148 NULL
149169 +enable_so_mpc_new_length_vardecl_mpparse_c_2163 mpc_new_length vardecl_mpparse.c 0 2163 NULL nohasharray
149170 +enable_so_block_size__drive_info_struct_2163 block_size _drive_info_struct 0 2163 &enable_so_mpc_new_length_vardecl_mpparse_c_2163
149171 +enable_so___kfifo_dma_out_prepare_fndecl_2165 __kfifo_dma_out_prepare fndecl 4 2165 NULL
149172 +enable_so_lpfc_idiag_extacc_avail_get_fndecl_2170 lpfc_idiag_extacc_avail_get fndecl 3-0 2170 NULL
149173 +enable_so_read_size_perf_event_2173 read_size perf_event 0 2173 NULL
149174 +enable_so_ext4_setup_next_flex_gd_fndecl_2174 ext4_setup_next_flex_gd fndecl 4 2174 NULL
149175 +enable_so_qsfp_1_read_fndecl_2184 qsfp_1_read fndecl 3 2184 NULL
149176 +enable_so_rate_max_audioformat_2186 rate_max audioformat 0 2186 NULL nohasharray
149177 +enable_so_max_txsz_ulp_iscsi_info_2186 max_txsz ulp_iscsi_info 0 2186 &enable_so_rate_max_audioformat_2186
149178 +enable_so_ast_ttm_tt_create_fndecl_2190 ast_ttm_tt_create fndecl 2 2190 NULL
149179 +enable_so_qp_handle_buf_size_vmci_ctx_notify_recv_info_2191 qp_handle_buf_size vmci_ctx_notify_recv_info 0 2191 NULL
149180 +enable_so_ldlm_lock_create_fndecl_2195 ldlm_lock_create fndecl 7 2195 NULL
149181 +enable_so___btrfs_direct_write_fndecl_2197 __btrfs_direct_write fndecl 3 2197 NULL
149182 +enable_so_max_header_size_irlan_provider_cb_2198 max_header_size irlan_provider_cb 0 2198 NULL
149183 +enable_so_s_blocks_per_group_ext4_sb_info_2201 s_blocks_per_group ext4_sb_info 0 2201 NULL
149184 +enable_so_offs_v_fimc_frame_2215 offs_v fimc_frame 0 2215 NULL
149185 +enable_so_valuelen_xfs_attr_inactive_list_2216 valuelen xfs_attr_inactive_list 0 2216 NULL
149186 +enable_so_DH_length_eg_ctrl_info_2234 DH_length eg_ctrl_info 0 2234 NULL
149187 +enable_so_read_saa7146_use_ops_2236 read saa7146_use_ops 0 2236 NULL
149188 +enable_so_nfs_proc_readdir_fndecl_2240 nfs_proc_readdir fndecl 5 2240 NULL
149189 +enable_so_lpsn_qib_swqe_2241 lpsn qib_swqe 0 2241 NULL
149190 +enable_so_macb_change_mtu_fndecl_2242 macb_change_mtu fndecl 2 2242 NULL
149191 +enable_so_s_mb_group_prealloc_ext4_sb_info_2246 s_mb_group_prealloc ext4_sb_info 0 2246 NULL
149192 +enable_so_SYSC_prctl_fndecl_2255 SYSC_prctl fndecl 4 2255 NULL
149193 +enable_so_big_oops_buf_sz_vardecl_platform_c_2265 big_oops_buf_sz vardecl_platform.c 0 2265 NULL
149194 +enable_so_compat_rw_copy_check_uvector_fndecl_2274 compat_rw_copy_check_uvector fndecl 0-3 2274 NULL nohasharray
149195 +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
149196 +enable_so_transport_init_se_cmd_fndecl_2277 transport_init_se_cmd fndecl 4 2277 NULL
149197 +enable_so_num_touchids_mxt_data_2284 num_touchids mxt_data 0 2284 NULL
149198 +enable_so_write_phy_fndecl_2290 write_phy fndecl 3 2290 NULL
149199 +enable_so_scrub_extent_fndecl_2293 scrub_extent fndecl 3-2-9-4 2293 NULL
149200 +enable_so_proc_sched_autogroup_set_nice_fndecl_2296 proc_sched_autogroup_set_nice fndecl 2 2296 NULL
149201 +enable_so_bulk_out_endpointAddr_usb_lcd_2303 bulk_out_endpointAddr usb_lcd 0 2303 NULL
149202 +enable_so_sensf_res_len_nfc_target_2304 sensf_res_len nfc_target 0 2304 NULL
149203 +enable_so_af9033_wr_regs_fndecl_2314 af9033_wr_regs fndecl 4 2314 NULL nohasharray
149204 +enable_so_read_pointer_st_buffer_2314 read_pointer st_buffer 0 2314 &enable_so_af9033_wr_regs_fndecl_2314
149205 +enable_so_clipcount_v4l2_window_2316 clipcount v4l2_window 0 2316 NULL
149206 +enable_so_il_dbgfs_stations_read_fndecl_2319 il_dbgfs_stations_read fndecl 3 2319 NULL
149207 +enable_so_ieee80211_tdls_prep_mgmt_packet_fndecl_2320 ieee80211_tdls_prep_mgmt_packet fndecl 10 2320 NULL
149208 +enable_so_mmc_alloc_sg_fndecl_2323 mmc_alloc_sg fndecl 1 2323 NULL
149209 +enable_so_ib_qib_max_pds_vardecl_qib_verbs_c_2326 ib_qib_max_pds vardecl_qib_verbs.c 0 2326 NULL
149210 +enable_so_sendmsg_proto_ops_2329 sendmsg proto_ops 0 2329 NULL
149211 +enable_so_size_debugfs_blob_wrapper_2338 size debugfs_blob_wrapper 0 2338 NULL
149212 +enable_so_gfx_partition_size_amdgpu_gds_asic_info_2339 gfx_partition_size amdgpu_gds_asic_info 0 2339 NULL
149213 +enable_so_rx_rx_beacon_early_term_read_fndecl_2340 rx_rx_beacon_early_term_read fndecl 3 2340 NULL nohasharray
149214 +enable_so_memsz_kexec_segment_2340 memsz kexec_segment 0 2340 &enable_so_rx_rx_beacon_early_term_read_fndecl_2340
149215 +enable_so_sg_copy_to_buffer_fndecl_2349 sg_copy_to_buffer fndecl 4 2349 NULL
149216 +enable_so_ipath_piobcnt4k_ipath_devdata_2352 ipath_piobcnt4k ipath_devdata 0 2352 NULL nohasharray
149217 +enable_so_dvb_dmxdev_section_callback_fndecl_2352 dvb_dmxdev_section_callback fndecl 2-4 2352 &enable_so_ipath_piobcnt4k_ipath_devdata_2352
149218 +enable_so_cipso_v4_map_cat_enum_hton_fndecl_2359 cipso_v4_map_cat_enum_hton fndecl 0 2359 NULL
149219 +enable_so_fat_ioctl_filldir_fndecl_2360 fat_ioctl_filldir fndecl 3 2360 NULL
149220 +enable_so_ReplUnitNum_nftl_uci0_2366 ReplUnitNum nftl_uci0 0 2366 NULL
149221 +enable_so_count_brcmf_pno_scanresults_le_2373 count brcmf_pno_scanresults_le 0 2373 NULL nohasharray
149222 +enable_so_packet_size_st5481_in_2373 packet_size st5481_in 0 2373 &enable_so_count_brcmf_pno_scanresults_le_2373
149223 +enable_so_tx_buffer_size_peak_usb_adapter_2386 tx_buffer_size peak_usb_adapter 0 2386 NULL
149224 +enable_so_va_address_drm_amdgpu_gem_va_2389 va_address drm_amdgpu_gem_va 0 2389 NULL nohasharray
149225 +enable_so_pcifront_rescan_root_fndecl_2389 pcifront_rescan_root fndecl 3 2389 &enable_so_va_address_drm_amdgpu_gem_va_2389
149226 +enable_so_check_and_mark_free_block_fndecl_2391 check_and_mark_free_block fndecl 2 2391 NULL
149227 +enable_so_xlog_do_recovery_pass_fndecl_2401 xlog_do_recovery_pass fndecl 3 2401 NULL
149228 +enable_so_asd_get_cmdctx_size_fndecl_2408 asd_get_cmdctx_size fndecl 0 2408 NULL
149229 +enable_so_pci_cardbus_resource_alignment_fndecl_2410 pci_cardbus_resource_alignment fndecl 0 2410 NULL
149230 +enable_so___jfs_getxattr_fndecl_2412 __jfs_getxattr fndecl 0 2412 NULL
149231 +enable_so_status1_ar9003_rxs_2417 status1 ar9003_rxs 0 2417 NULL nohasharray
149232 +enable_so_cfi_intelext_write_buffers_fndecl_2417 cfi_intelext_write_buffers fndecl 3 2417 &enable_so_status1_ar9003_rxs_2417 nohasharray
149233 +enable_so_rspq_size_qset_params_2417 rspq_size qset_params 0 2417 &enable_so_cfi_intelext_write_buffers_fndecl_2417
149234 +enable_so_ocfs2_acl_from_xattr_fndecl_2423 ocfs2_acl_from_xattr fndecl 2 2423 NULL
149235 +enable_so_omtu_l2cap_chan_2424 omtu l2cap_chan 0 2424 NULL
149236 +enable_so_ib_umem_copy_from_fndecl_2435 ib_umem_copy_from fndecl 3-4 2435 NULL
149237 +enable_so_bcm3510_writebytes_fndecl_2436 bcm3510_writebytes fndecl 4 2436 NULL
149238 +enable_so_init_asiliant_fndecl_2438 init_asiliant fndecl 2 2438 NULL
149239 +enable_so_carl9170_rx_copy_data_fndecl_2443 carl9170_rx_copy_data fndecl 2 2443 NULL
149240 +enable_so_key_len_key_params_2447 key_len key_params 0 2447 NULL
149241 +enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 ocfs2_lock_refcount_allocators fndecl 3-2 2461 NULL nohasharray
149242 +enable_so_fb_base_bochs_device_2461 fb_base bochs_device 0 2461 &enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 nohasharray
149243 +enable_so_rsize_p9_conn_2461 rsize p9_conn 0 2461 &enable_so_fb_base_bochs_device_2461
149244 +enable_so_tomoyo_read_control_fndecl_2465 tomoyo_read_control fndecl 3 2465 NULL
149245 +enable_so_regmap_register_patch_fndecl_2466 regmap_register_patch fndecl 3 2466 NULL
149246 +enable_so_proc_maps_open_fndecl_2468 proc_maps_open fndecl 4 2468 NULL nohasharray
149247 +enable_so_rtllib_alloc_txb_fndecl_2468 rtllib_alloc_txb fndecl 1 2468 &enable_so_proc_maps_open_fndecl_2468
149248 +enable_so_maxpacket_usb_ep_2473 maxpacket usb_ep 0 2473 NULL
149249 +enable_so_ixgb_change_mtu_fndecl_2482 ixgb_change_mtu fndecl 2 2482 NULL
149250 +enable_so_num_vf_en_nicpf_2486 num_vf_en nicpf 0 2486 NULL
149251 +enable_so_tcp_sacktag_one_fndecl_2487 tcp_sacktag_one fndecl 7 2487 NULL
149252 +enable_so_ocfs2_xattr_get_nolock_fndecl_2493 ocfs2_xattr_get_nolock fndecl 0 2493 NULL
149253 +enable_so_btrfs_find_all_leafs_fndecl_2499 btrfs_find_all_leafs fndecl 3 2499 NULL
149254 +enable_so_size_arpt_replace_2509 size arpt_replace 0 2509 NULL
149255 +enable_so_unmap_alignment_scsi_disk_2514 unmap_alignment scsi_disk 0 2514 NULL
149256 +enable_so_evdev_ioctl_handler_fndecl_2522 evdev_ioctl_handler fndecl 2 2522 NULL
149257 +enable_so_usbpn_set_mtu_fndecl_2527 usbpn_set_mtu fndecl 2 2527 NULL
149258 +enable_so_vfio_unpin_pages_fndecl_2528 vfio_unpin_pages fndecl 0 2528 NULL
149259 +enable_so___nf_nat_mangle_tcp_packet_fndecl_2531 __nf_nat_mangle_tcp_packet fndecl 6-8 2531 NULL
149260 +enable_so_should_remove_suid_fndecl_2532 should_remove_suid fndecl 0 2532 NULL
149261 +enable_so_ocfs2_direct_IO_extend_no_holes_fndecl_2534 ocfs2_direct_IO_extend_no_holes fndecl 3 2534 NULL
149262 +enable_so_l2down_create_fndecl_2536 l2down_create fndecl 4 2536 NULL
149263 +enable_so_rs_switch_to_mimo2_fndecl_2537 rs_switch_to_mimo2 fndecl 6 2537 NULL nohasharray
149264 +enable_so_mthca_alloc_init_fndecl_2537 mthca_alloc_init fndecl 3-2 2537 &enable_so_rs_switch_to_mimo2_fndecl_2537
149265 +enable_so_tcp_shifted_skb_fndecl_2543 tcp_shifted_skb fndecl 4 2543 NULL
149266 +enable_so___wa_seg_submit_fndecl_2547 __wa_seg_submit fndecl 0 2547 NULL nohasharray
149267 +enable_so_lprocfs_wr_import_fndecl_2547 lprocfs_wr_import fndecl 3 2547 &enable_so___wa_seg_submit_fndecl_2547
149268 +enable_so___kmem_cache_alias_fndecl_2551 __kmem_cache_alias fndecl 3-2 2551 NULL
149269 +enable_so_vm_brk_fndecl_2552 vm_brk fndecl 1-2 2552 NULL
149270 +enable_so_dma_maxpq_fndecl_2555 dma_maxpq fndecl 0 2555 NULL
149271 +enable_so_off_fuse_dirent_2561 off fuse_dirent 0 2561 NULL
149272 +enable_so_active_duplex_niu_link_config_2566 active_duplex niu_link_config 0 2566 NULL
149273 +enable_so_hdsp_external_sample_rate_fndecl_2568 hdsp_external_sample_rate fndecl 0 2568 NULL
149274 +enable_so_extend_brk_fndecl_2574 extend_brk fndecl 2-1 2574 NULL
149275 +enable_so___tun_chr_ioctl_fndecl_2575 __tun_chr_ioctl fndecl 4 2575 NULL
149276 +enable_so_aio_offset_iocb_2576 aio_offset iocb 0 2576 NULL nohasharray
149277 +enable_so_skb_checksum_trimmed_fndecl_2576 skb_checksum_trimmed fndecl 2 2576 &enable_so_aio_offset_iocb_2576
149278 +enable_so_len_patch_info_2583 len patch_info 0 2583 NULL
149279 +enable_so_get_memory_block_size_fndecl_2600 get_memory_block_size fndecl 0 2600 NULL nohasharray
149280 +enable_so_page_cache_tree_insert_fndecl_2600 page_cache_tree_insert fndecl 0 2600 &enable_so_get_memory_block_size_fndecl_2600
149281 +enable_so_maxfrsize_bfa_fcs_rport_s_2601 maxfrsize bfa_fcs_rport_s 0 2601 NULL
149282 +enable_so_mesh_table_alloc_fndecl_2610 mesh_table_alloc fndecl 1 2610 NULL
149283 +enable_so_ld_active_tgt_count_lov_desc_2613 ld_active_tgt_count lov_desc 0 2613 NULL
149284 +enable_so_dst_maxburst_dma_slave_config_2619 dst_maxburst dma_slave_config 0 2619 NULL nohasharray
149285 +enable_so_priority_add_kvm_kpic_state_2619 priority_add kvm_kpic_state 0 2619 &enable_so_dst_maxburst_dma_slave_config_2619
149286 +enable_so_crc_size_vardecl_pm_check_c_2624 crc_size vardecl_pm-check.c 0 2624 NULL
149287 +enable_so_len_whc_std_2626 len whc_std 0 2626 NULL
149288 +enable_so_ptn3460_read_bytes_fndecl_2627 ptn3460_read_bytes fndecl 4 2627 NULL
149289 +enable_so_snd_soc_params_to_frame_size_fndecl_2630 snd_soc_params_to_frame_size fndecl 0 2630 NULL nohasharray
149290 +enable_so_total_vm_mm_struct_2630 total_vm mm_struct 0 2630 &enable_so_snd_soc_params_to_frame_size_fndecl_2630
149291 +enable_so_radeon_vram_location_fndecl_2634 radeon_vram_location fndecl 3 2634 NULL
149292 +enable_so_bop_lookup_contig_nilfs_bmap_operations_2637 bop_lookup_contig nilfs_bmap_operations 0 2637 NULL
149293 +enable_so_regmap_spi_gather_write_fndecl_2639 regmap_spi_gather_write fndecl 3-5 2639 NULL nohasharray
149294 +enable_so_cryptlen_authenc_request_ctx_2639 cryptlen authenc_request_ctx 0 2639 &enable_so_regmap_spi_gather_write_fndecl_2639
149295 +enable_so_num_cpu_pages_amdgpu_gart_2640 num_cpu_pages amdgpu_gart 0 2640 NULL
149296 +enable_so_rx_bufshift_rtl_stats_2641 rx_bufshift rtl_stats 0 2641 NULL
149297 +enable_so_sys_read_fndecl_2644 sys_read fndecl 3 2644 NULL
149298 +enable_so_max_low_pfn_mapped_vardecl_2650 max_low_pfn_mapped vardecl 0 2650 NULL
149299 +enable_so_pktgen_alloc_skb_fndecl_2658 pktgen_alloc_skb fndecl 3 2658 NULL nohasharray
149300 +enable_so_resync_max_mddev_2658 resync_max mddev 0 2658 &enable_so_pktgen_alloc_skb_fndecl_2658
149301 +enable_so_ath10k_debug_fw_reset_stats_read_fndecl_2660 ath10k_debug_fw_reset_stats_read fndecl 3 2660 NULL nohasharray
149302 +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
149303 +enable_so_dlen_hci_acl_hdr_2672 dlen hci_acl_hdr 0 2672 NULL nohasharray
149304 +enable_so_evdev_ioctl_fndecl_2672 evdev_ioctl fndecl 2 2672 &enable_so_dlen_hci_acl_hdr_2672
149305 +enable_so_ee_block_ext4_extent_2673 ee_block ext4_extent 0 2673 NULL
149306 +enable_so_ext3_bg_num_gdb_nometa_fndecl_2674 ext3_bg_num_gdb_nometa fndecl 0 2674 NULL
149307 +enable_so_scif_user_recv_fndecl_2675 scif_user_recv fndecl 3 2675 NULL nohasharray
149308 +enable_so_bbt_erase_shift_bbm_info_2675 bbt_erase_shift bbm_info 0 2675 &enable_so_scif_user_recv_fndecl_2675
149309 +enable_so_TmpDcm_zoran_jpg_settings_2679 TmpDcm zoran_jpg_settings 0 2679 NULL
149310 +enable_so_mad_len_ib_mad_recv_wc_2683 mad_len ib_mad_recv_wc 0 2683 NULL
149311 +enable_so_logo_lines_vardecl_fbcon_c_2685 logo_lines vardecl_fbcon.c 0 2685 NULL
149312 +enable_so_ipw2100_set_long_retry_fndecl_2686 ipw2100_set_long_retry fndecl 2 2686 NULL
149313 +enable_so_queue_reply_fndecl_2691 queue_reply fndecl 3 2691 NULL
149314 +enable_so___set_enter_print_fmt_fndecl_2700 __set_enter_print_fmt fndecl 0 2700 NULL
149315 +enable_so_s5h1420_readreg_fndecl_2707 s5h1420_readreg fndecl 0 2707 NULL
149316 +enable_so_src_len_ccp_sha_engine_2711 src_len ccp_sha_engine 0 2711 NULL nohasharray
149317 +enable_so_zoran_write_fndecl_2711 zoran_write fndecl 3 2711 &enable_so_src_len_ccp_sha_engine_2711
149318 +enable_so_u132_hcd_bulk_output_sent_fndecl_2715 u132_hcd_bulk_output_sent fndecl 4 2715 NULL
149319 +enable_so_mt7601u_usb_alloc_buf_fndecl_2716 mt7601u_usb_alloc_buf fndecl 2 2716 NULL
149320 +enable_so_bytesused_v4l2_buffer_2717 bytesused v4l2_buffer 0 2717 NULL
149321 +enable_so_handle_received_packet_fndecl_2730 handle_received_packet fndecl 3 2730 NULL
149322 +enable_so_get_res_add_size_fndecl_2740 get_res_add_size fndecl 0 2740 NULL
149323 +enable_so_iov_iter_get_pages_fndecl_2747 iov_iter_get_pages fndecl 0-4-3 2747 NULL
149324 +enable_so_mem_vardecl_applicom_c_2753 mem vardecl_applicom.c 0 2753 NULL
149325 +enable_so_rfcomm_send_test_fndecl_2760 rfcomm_send_test fndecl 4 2760 NULL nohasharray
149326 +enable_so_cache_write_procfs_fndecl_2760 cache_write_procfs fndecl 3 2760 &enable_so_rfcomm_send_test_fndecl_2760
149327 +enable_so_qib_user_sdma_alloc_header_fndecl_2761 qib_user_sdma_alloc_header fndecl 2 2761 NULL
149328 +enable_so_ecryptfs_write_fndecl_2763 ecryptfs_write fndecl 4-3 2763 NULL
149329 +enable_so_qnx6_match_fndecl_2766 qnx6_match fndecl 0 2766 NULL
149330 +enable_so_u_ssize_user32_2770 u_ssize user32 0 2770 NULL
149331 +enable_so_ieee80211_alloc_hw_nm_fndecl_2774 ieee80211_alloc_hw_nm fndecl 1 2774 NULL
149332 +enable_so_batadv_check_unicast_packet_fndecl_2775 batadv_check_unicast_packet fndecl 3 2775 NULL nohasharray
149333 +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
149334 +enable_so_uhci_result_common_fndecl_2788 uhci_result_common fndecl 0 2788 NULL
149335 +enable_so_iobase_vardecl_l440gx_c_2797 iobase vardecl_l440gx.c 0 2797 NULL
149336 +enable_so_sb_inodelog_xfs_sb_2799 sb_inodelog xfs_sb 0 2799 NULL
149337 +enable_so_st21nfca_hci_se_io_fndecl_2800 st21nfca_hci_se_io fndecl 4 2800 NULL nohasharray
149338 +enable_so_mp_find_ioapic_pin_fndecl_2800 mp_find_ioapic_pin fndecl 0-2 2800 &enable_so_st21nfca_hci_se_io_fndecl_2800
149339 +enable_so_put_chars_fndecl_2801 put_chars fndecl 3 2801 NULL
149340 +enable_so_usb_stor_set_xfer_buf_fndecl_2809 usb_stor_set_xfer_buf fndecl 2 2809 NULL
149341 +enable_so_num_active_queues_i40evf_adapter_2813 num_active_queues i40evf_adapter 0 2813 NULL
149342 +enable_so_num_cnic_queues_bnx2x_2816 num_cnic_queues bnx2x 0 2816 NULL
149343 +enable_so__sp2d_min_pg_fndecl_2819 _sp2d_min_pg fndecl 0 2819 NULL
149344 +enable_so_VerDcm_zoran_jpg_settings_2823 VerDcm zoran_jpg_settings 0 2823 NULL
149345 +enable_so_gf100_grctx_mmio_data_fndecl_2831 gf100_grctx_mmio_data fndecl 3-2 2831 NULL
149346 +enable_so_btrfs_get_16_fndecl_2836 btrfs_get_16 fndecl 0 2836 NULL
149347 +enable_so_ureg_align_qib_devdata_2841 ureg_align qib_devdata 0 2841 NULL
149348 +enable_so_max_data_size_ath6kl_bmi_2842 max_data_size ath6kl_bmi 0 2842 NULL
149349 +enable_so_dccm2_len_iwl_cfg_2852 dccm2_len iwl_cfg 0 2852 NULL
149350 +enable_so_phys_size_hfs_inode_info_2856 phys_size hfs_inode_info 0 2856 NULL
149351 +enable_so_btrfs_reloc_clone_csums_fndecl_2862 btrfs_reloc_clone_csums fndecl 2-3 2862 NULL
149352 +enable_so_q_depth_nvme_dev_2866 q_depth nvme_dev 0 2866 NULL nohasharray
149353 +enable_so_zd_usb_read_fw_fndecl_2866 zd_usb_read_fw fndecl 4 2866 &enable_so_q_depth_nvme_dev_2866
149354 +enable_so_max_sst_algo_control_2868 max sst_algo_control 0 2868 NULL
149355 +enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869 secondary_bin_size drm_mga_dma_bootstrap 0 2869 NULL nohasharray
149356 +enable_so_sys_recvfrom_fndecl_2869 sys_recvfrom fndecl 3 2869 &enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869
149357 +enable_so_cmodio_id_vardecl_janz_cmodio_c_2872 cmodio_id vardecl_janz-cmodio.c 0 2872 NULL
149358 +enable_so_drm_gem_object_init_fndecl_2882 drm_gem_object_init fndecl 3 2882 NULL nohasharray
149359 +enable_so_sg_init_one_fndecl_2882 sg_init_one fndecl 3 2882 &enable_so_drm_gem_object_init_fndecl_2882
149360 +enable_so_qlcnic_sriov_pf_enable_fndecl_2884 qlcnic_sriov_pf_enable fndecl 2 2884 NULL
149361 +enable_so_n_notifiers_vmci_ctx_2889 n_notifiers vmci_ctx 0 2889 NULL
149362 +enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892 ieee80211_tdls_add_chan_switch_resp_ies fndecl 7 2892 NULL nohasharray
149363 +enable_so_pca953x_setup_gpio_fndecl_2892 pca953x_setup_gpio fndecl 2 2892 &enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892
149364 +enable_so_set_max_cos_est_fndecl_2893 set_max_cos_est fndecl 0 2893 NULL
149365 +enable_so_prl_count_ip_tunnel_2900 prl_count ip_tunnel 0 2900 NULL
149366 +enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901 xfs_bmapi_reserve_delalloc fndecl 2 2901 NULL nohasharray
149367 +enable_so_nf_ct_seq_adjust_fndecl_2901 nf_ct_seq_adjust fndecl 4 2901 &enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901
149368 +enable_so_mem_rw_fndecl_2902 mem_rw fndecl 3 2902 NULL
149369 +enable_so_ipath_piobcnt2k_ipath_devdata_2904 ipath_piobcnt2k ipath_devdata 0 2904 NULL
149370 +enable_so_tx_max_out_p_vardecl_mptlan_c_2906 tx_max_out_p vardecl_mptlan.c 0 2906 NULL
149371 +enable_so_chroma_size_s5p_mfc_ctx_2911 chroma_size s5p_mfc_ctx 0 2911 NULL
149372 +enable_so_length_usbhs_pkt_2912 length usbhs_pkt 0 2912 NULL
149373 +enable_so_tda1004x_do_upload_fndecl_2916 tda1004x_do_upload fndecl 3 2916 NULL
149374 +enable_so_discard_swap_cluster_fndecl_2926 discard_swap_cluster fndecl 3-2 2926 NULL
149375 +enable_so_rx_buf_size_octeon_nic_if_config_2928 rx_buf_size octeon_nic_if_config 0 2928 NULL nohasharray
149376 +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
149377 +enable_so_rx_num_pgs_tp_params_2929 rx_num_pgs tp_params 0 2929 NULL
149378 +enable_so_tx_cnt_isac_2931 tx_cnt isac 0 2931 NULL nohasharray
149379 +enable_so_pno_blkpg_partition_2931 pno blkpg_partition 0 2931 &enable_so_tx_cnt_isac_2931
149380 +enable_so_fnic_fc_trace_max_pages_vardecl_2932 fnic_fc_trace_max_pages vardecl 0 2932 NULL
149381 +enable_so_tx_ring_count_ixgbevf_adapter_2933 tx_ring_count ixgbevf_adapter 0 2933 NULL
149382 +enable_so_max_ndp_size_cdc_ncm_ctx_2942 max_ndp_size cdc_ncm_ctx 0 2942 NULL
149383 +enable_so_sys_remap_file_pages_fndecl_2943 sys_remap_file_pages fndecl 2-4-1 2943 NULL
149384 +enable_so_devm_ioremap_wc_fndecl_2945 devm_ioremap_wc fndecl 3-2 2945 NULL
149385 +enable_so_HorDcm_zoran_jpg_settings_2947 HorDcm zoran_jpg_settings 0 2947 NULL nohasharray
149386 +enable_so_tx_idx_dchannel_2947 tx_idx dchannel 0 2947 &enable_so_HorDcm_zoran_jpg_settings_2947
149387 +enable_so_cydata_ofs_cyttsp4_sysinfo_ofs_2952 cydata_ofs cyttsp4_sysinfo_ofs 0 2952 NULL
149388 +enable_so_alloc_blksz_hfsplus_sb_info_2955 alloc_blksz hfsplus_sb_info 0 2955 NULL
149389 +enable_so___kfifo_alloc_fndecl_2958 __kfifo_alloc fndecl 3 2958 NULL
149390 +enable_so_info_len_ib_ucm_event_2963 info_len ib_ucm_event 0 2963 NULL
149391 +enable_so_s_ipg_ufs_sb_private_info_2965 s_ipg ufs_sb_private_info 0 2965 NULL
149392 +enable_so_SyS_sched_setaffinity_fndecl_2967 SyS_sched_setaffinity fndecl 2 2967 NULL
149393 +enable_so_do_tcp_sendpages_fndecl_2968 do_tcp_sendpages fndecl 4-3 2968 NULL
149394 +enable_so_pn533_dep_link_up_fndecl_2969 pn533_dep_link_up fndecl 5 2969 NULL
149395 +enable_so_qp_table_size_qib_ibdev_2970 qp_table_size qib_ibdev 0 2970 NULL
149396 +enable_so_align_ip_set_ext_type_2975 align ip_set_ext_type 0 2975 NULL
149397 +enable_so_wpa_enabled_orinoco_private_2980 wpa_enabled orinoco_private 0 2980 NULL
149398 +enable_so_mrp_pdu_append_vecattr_hdr_fndecl_2982 mrp_pdu_append_vecattr_hdr fndecl 3 2982 NULL
149399 +enable_so_origin_write_extent_fndecl_2983 origin_write_extent fndecl 2 2983 NULL
149400 +enable_so_h_align_bdisp_fmt_2988 h_align bdisp_fmt 0 2988 NULL nohasharray
149401 +enable_so_reiserfs_cut_from_item_fndecl_2988 reiserfs_cut_from_item fndecl 6 2988 &enable_so_h_align_bdisp_fmt_2988
149402 +enable_so_iscsi_start_cid_cnic_local_2995 iscsi_start_cid cnic_local 0 2995 NULL
149403 +enable_so_offset_fuse_notify_retrieve_out_2999 offset fuse_notify_retrieve_out 0 2999 NULL
149404 +enable_so_hdr_len_iscsi_task_3003 hdr_len iscsi_task 0 3003 NULL
149405 +enable_so_do_sync_mmap_readahead_fndecl_3008 do_sync_mmap_readahead fndecl 4 3008 NULL
149406 +enable_so_rdma_build_arg_xdr_fndecl_3012 rdma_build_arg_xdr fndecl 3 3012 NULL
149407 +enable_so_mem_write_fndecl_3019 mem_write fndecl 3 3019 NULL
149408 +enable_so_bpw_len_pch_spi_data_3026 bpw_len pch_spi_data 0 3026 NULL
149409 +enable_so_dual_channel_active_fndecl_3033 dual_channel_active fndecl 0 3033 NULL
149410 +enable_so_fat_compat_ioctl_filldir_fndecl_3037 fat_compat_ioctl_filldir fndecl 3 3037 NULL
149411 +enable_so_xfs_bulkstat_grab_ichunk_fndecl_3041 xfs_bulkstat_grab_ichunk fndecl 2 3041 NULL
149412 +enable_so_add_res_tree_fndecl_3044 add_res_tree fndecl 7 3044 NULL
149413 +enable_so_ping_common_sendmsg_fndecl_3046 ping_common_sendmsg fndecl 5 3046 NULL
149414 +enable_so_at25_ee_write_fndecl_3050 at25_ee_write fndecl 4-3 3050 NULL
149415 +enable_so_skb_seq_read_fndecl_3054 skb_seq_read fndecl 0-1 3054 NULL
149416 +enable_so_size_ecryptfs_cache_info_3056 size ecryptfs_cache_info 0 3056 NULL
149417 +enable_so_prepare_to_wait_event_fndecl_3060 prepare_to_wait_event fndecl 0 3060 NULL
149418 +enable_so_dst_addr_width_dma_slave_config_3068 dst_addr_width dma_slave_config 0 3068 NULL nohasharray
149419 +enable_so_ntfs_map_runlist_fndecl_3068 ntfs_map_runlist fndecl 2 3068 &enable_so_dst_addr_width_dma_slave_config_3068
149420 +enable_so_compat_process_vm_rw_fndecl_3069 compat_process_vm_rw fndecl 5-3 3069 NULL
149421 +enable_so_security_setxattr_fndecl_3070 security_setxattr fndecl 4 3070 NULL
149422 +enable_so_hbuf_max_len_mei_hw_ops_3071 hbuf_max_len mei_hw_ops 0 3071 NULL
149423 +enable_so_height_au0828_dev_3073 height au0828_dev 0 3073 NULL
149424 +enable_so_sg_addr_size__MPT_ADAPTER_3079 sg_addr_size _MPT_ADAPTER 0 3079 NULL
149425 +enable_so_brcmf_p2p_escan_fndecl_3080 brcmf_p2p_escan fndecl 2 3080 NULL
149426 +enable_so_cluster_next_swap_info_struct_3087 cluster_next swap_info_struct 0 3087 NULL
149427 +enable_so_total_h_mt9t031_3088 total_h mt9t031 0 3088 NULL
149428 +enable_so_npages_mthca_db_table_3090 npages mthca_db_table 0 3090 NULL nohasharray
149429 +enable_so_ad7280_write_fndecl_3090 ad7280_write fndecl 0 3090 &enable_so_npages_mthca_db_table_3090
149430 +enable_so_fb_prepare_logo_fndecl_3092 fb_prepare_logo fndecl 0 3092 NULL
149431 +enable_so_loopstart_soundfont_sample_info_3093 loopstart soundfont_sample_info 0 3093 NULL
149432 +enable_so_gtt_mappable_entries__intel_private_3099 gtt_mappable_entries _intel_private 0 3099 NULL
149433 +enable_so_vol_cdev_direct_write_fndecl_3100 vol_cdev_direct_write fndecl 3 3100 NULL
149434 +enable_so_rx_pkt_map_sz_tg3_3106 rx_pkt_map_sz tg3 0 3106 NULL
149435 +enable_so_mt76_init_sband_fndecl_3112 mt76_init_sband fndecl 6-4 3112 NULL nohasharray
149436 +enable_so_iwl_dbgfs_rxon_flags_read_fndecl_3112 iwl_dbgfs_rxon_flags_read fndecl 3 3112 &enable_so_mt76_init_sband_fndecl_3112
149437 +enable_so_fb_alloc_cmap_gfp_fndecl_3115 fb_alloc_cmap_gfp fndecl 2 3115 NULL
149438 +enable_so_edid_write_fndecl_3118 edid_write fndecl 3 3118 NULL
149439 +enable_so_ipip6_tunnel_change_mtu_fndecl_3119 ipip6_tunnel_change_mtu fndecl 2 3119 NULL nohasharray
149440 +enable_so_blk_rq_map_user_fndecl_3119 blk_rq_map_user fndecl 5 3119 &enable_so_ipip6_tunnel_change_mtu_fndecl_3119 nohasharray
149441 +enable_so_compat_filldir64_fndecl_3119 compat_filldir64 fndecl 3 3119 &enable_so_blk_rq_map_user_fndecl_3119
149442 +enable_so_emulator_do_task_switch_fndecl_3122 emulator_do_task_switch fndecl 2-3 3122 NULL
149443 +enable_so_status_whc_qhead_3133 status whc_qhead 0 3133 NULL
149444 +enable_so_ext4_block_zero_page_range_fndecl_3135 ext4_block_zero_page_range fndecl 3 3135 NULL
149445 +enable_so_strndup_user_fndecl_3136 strndup_user fndecl 2 3136 NULL
149446 +enable_so_brcmf_usb_dlstart_fndecl_3138 brcmf_usb_dlstart fndecl 3 3138 NULL
149447 +enable_so_fotg210_urb_done_fndecl_3144 fotg210_urb_done fndecl 3 3144 NULL
149448 +enable_so_tx_room_keyspan_pda_private_3146 tx_room keyspan_pda_private 0 3146 NULL
149449 +enable_so_usbhs_read_fndecl_3148 usbhs_read fndecl 0 3148 NULL nohasharray
149450 +enable_so_fragment_length_zd_usb_rx_3148 fragment_length zd_usb_rx 0 3148 &enable_so_usbhs_read_fndecl_3148 nohasharray
149451 +enable_so_nilfs_scan_dsync_log_fndecl_3148 nilfs_scan_dsync_log fndecl 2 3148 &enable_so_fragment_length_zd_usb_rx_3148
149452 +enable_so_iseg_base_mlx5_core_dev_3151 iseg_base mlx5_core_dev 0 3151 NULL
149453 +enable_so_udf_get_last_session_fndecl_3152 udf_get_last_session fndecl 0 3152 NULL
149454 +enable_so_mmio_size_drm_mga_private_3160 mmio_size drm_mga_private 0 3160 NULL
149455 +enable_so_prealloc_size_ich_pcm_table_3162 prealloc_size ich_pcm_table 0 3162 NULL nohasharray
149456 +enable_so_sys_sendto_fndecl_3162 sys_sendto fndecl 6-3 3162 &enable_so_prealloc_size_ich_pcm_table_3162
149457 +enable_so_send_ext_msg_udp_fndecl_3163 send_ext_msg_udp fndecl 3 3163 NULL
149458 +enable_so_cfv_alloc_and_copy_skb_fndecl_3167 cfv_alloc_and_copy_skb fndecl 4 3167 NULL nohasharray
149459 +enable_so_logfs_is_valid_block_fndecl_3167 logfs_is_valid_block fndecl 3 3167 &enable_so_cfv_alloc_and_copy_skb_fndecl_3167
149460 +enable_so_bytes_per_pixel_vivid_dev_3174 bytes_per_pixel vivid_dev 0 3174 NULL
149461 +enable_so_fill_elf_header_fndecl_3182 fill_elf_header fndecl 2 3182 NULL
149462 +enable_so_wl1271_format_buffer_fndecl_3185 wl1271_format_buffer fndecl 2 3185 NULL
149463 +enable_so_keyspan_write_fndecl_3189 keyspan_write fndecl 4 3189 NULL
149464 +enable_so_min_io_size_ubi_device_3191 min_io_size ubi_device 0 3191 NULL nohasharray
149465 +enable_so_uvc_alloc_entity_fndecl_3191 uvc_alloc_entity fndecl 3-4 3191 &enable_so_min_io_size_ubi_device_3191
149466 +enable_so_nvme_trans_supported_vpd_pages_fndecl_3196 nvme_trans_supported_vpd_pages fndecl 4 3196 NULL
149467 +enable_so_mspi_apply_cpu_mode_quirks_fndecl_3197 mspi_apply_cpu_mode_quirks fndecl 0-4 3197 NULL
149468 +enable_so_lcd_hblank_len_atyfb_par_3198 lcd_hblank_len atyfb_par 0 3198 NULL nohasharray
149469 +enable_so_p9_tag_alloc_fndecl_3198 p9_tag_alloc fndecl 3 3198 &enable_so_lcd_hblank_len_atyfb_par_3198
149470 +enable_so_import_iovec_fndecl_3201 import_iovec fndecl 3 3201 NULL
149471 +enable_so_chunk_size_mdu_array_info_s_3205 chunk_size mdu_array_info_s 0 3205 NULL
149472 +enable_so_cfs_cpt_table_create_fndecl_3207 cfs_cpt_table_create fndecl 1 3207 NULL
149473 +enable_so_sisusb_send_packet_fndecl_3208 sisusb_send_packet fndecl 2 3208 NULL
149474 +enable_so_key_icverrors_read_fndecl_3212 key_icverrors_read fndecl 3 3212 NULL
149475 +enable_so_usbvision_set_output_fndecl_3216 usbvision_set_output fndecl 2-3 3216 NULL
149476 +enable_so_rx_buffer_len_ixgb_adapter_3217 rx_buffer_len ixgb_adapter 0 3217 NULL nohasharray
149477 +enable_so_cw1200_sdio_memcpy_fromio_fndecl_3217 cw1200_sdio_memcpy_fromio fndecl 4 3217 &enable_so_rx_buffer_len_ixgb_adapter_3217 nohasharray
149478 +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
149479 +enable_so_mad_size_ib_mad_private_3230 mad_size ib_mad_private 0 3230 NULL
149480 +enable_so_command_setexposure_fndecl_3231 command_setexposure fndecl 0 3231 NULL
149481 +enable_so_sq_num_entries_c4iw_qp_attributes_3234 sq_num_entries c4iw_qp_attributes 0 3234 NULL
149482 +enable_so_lbs_rdbbp_write_fndecl_3237 lbs_rdbbp_write fndecl 3 3237 NULL
149483 +enable_so_inlen_ib_udata_3242 inlen ib_udata 0 3242 NULL nohasharray
149484 +enable_so_expect_class_max_nf_conntrack_helper_3242 expect_class_max nf_conntrack_helper 0 3242 &enable_so_inlen_ib_udata_3242
149485 +enable_so_max_wqe_ocrdma_dev_attr_3246 max_wqe ocrdma_dev_attr 0 3246 NULL
149486 +enable_so_of_property_match_string_fndecl_3250 of_property_match_string fndecl 0 3250 NULL
149487 +enable_so_shmem_kernel_file_setup_fndecl_3251 shmem_kernel_file_setup fndecl 2 3251 NULL
149488 +enable_so_vfio_msi_enable_fndecl_3257 vfio_msi_enable fndecl 2 3257 NULL
149489 +enable_so_sbc_check_prot_fndecl_3258 sbc_check_prot fndecl 4 3258 NULL
149490 +enable_so_taglen_cb_compound_hdr_res_3259 taglen cb_compound_hdr_res 0 3259 NULL
149491 +enable_so_compat_sys_readv_fndecl_3260 compat_sys_readv fndecl 3 3260 NULL
149492 +enable_so_rx_rx_phy_hdr_read_fndecl_3269 rx_rx_phy_hdr_read fndecl 3 3269 NULL
149493 +enable_so_altera_set_ir_post_fndecl_3271 altera_set_ir_post fndecl 2 3271 NULL
149494 +enable_so_rsxx_cram_read_fndecl_3278 rsxx_cram_read fndecl 3 3278 NULL
149495 +enable_so_doff_tcphdr_3280 doff tcphdr 0 3280 NULL nohasharray
149496 +enable_so_ds1305_nvram_read_fndecl_3280 ds1305_nvram_read fndecl 5-6 3280 &enable_so_doff_tcphdr_3280
149497 +enable_so_stolen_base_drm_psb_private_3285 stolen_base drm_psb_private 0 3285 NULL nohasharray
149498 +enable_so_cfg80211_rx_assoc_resp_fndecl_3285 cfg80211_rx_assoc_resp fndecl 4 3285 &enable_so_stolen_base_drm_psb_private_3285
149499 +enable_so_htable_bits_fndecl_3286 htable_bits fndecl 0 3286 NULL
149500 +enable_so_check_eofblocks_fl_fndecl_3293 check_eofblocks_fl fndecl 0 3293 NULL
149501 +enable_so_e_value_size_ext3_xattr_entry_3294 e_value_size ext3_xattr_entry 0 3294 NULL
149502 +enable_so_iov_count_iscsi_data_count_3301 iov_count iscsi_data_count 0 3301 NULL
149503 +enable_so_rds_page_remainder_alloc_fndecl_3303 rds_page_remainder_alloc fndecl 2 3303 NULL
149504 +enable_so_alg_setsockopt_fndecl_3306 alg_setsockopt fndecl 5 3306 NULL
149505 +enable_so_transfer_size_zr364xx_pipeinfo_3312 transfer_size zr364xx_pipeinfo 0 3312 NULL
149506 +enable_so_sdmabufcnt_qib_chip_specific_3319 sdmabufcnt qib_chip_specific 0 3319 NULL
149507 +enable_so_snd_rme9652_playback_copy_fndecl_3321 snd_rme9652_playback_copy fndecl 5 3321 NULL
149508 +enable_so_bulk_out_ep_irda_usb_cb_3322 bulk_out_ep irda_usb_cb 0 3322 NULL
149509 +enable_so_lock_extent_bits_fndecl_3328 lock_extent_bits fndecl 3-2 3328 NULL
149510 +enable_so_length_ima_digest_data_3329 length ima_digest_data 0 3329 NULL
149511 +enable_so_hidraw_report_event_fndecl_3332 hidraw_report_event fndecl 3 3332 NULL
149512 +enable_so_i_xattr_loc_ocfs2_dinode_3335 i_xattr_loc ocfs2_dinode 0 3335 NULL
149513 +enable_so_add_desc_fndecl_3339 add_desc fndecl 3 3339 NULL
149514 +enable_so_base_drm_agp_head_3348 base drm_agp_head 0 3348 NULL
149515 +enable_so_memcg_update_list_lru_fndecl_3349 memcg_update_list_lru fndecl 3 3349 NULL
149516 +enable_so_ext4_finish_convert_inline_dir_fndecl_3350 ext4_finish_convert_inline_dir fndecl 5 3350 NULL
149517 +enable_so_max_bands_multiq_sched_data_3353 max_bands multiq_sched_data 0 3353 NULL
149518 +enable_so_sysctl_nr_open_vardecl_3355 sysctl_nr_open vardecl 0 3355 NULL
149519 +enable_so_logfs_uncompress_fndecl_3359 logfs_uncompress fndecl 3-4 3359 NULL
149520 +enable_so___process_changed_new_xattr_fndecl_3360 __process_changed_new_xattr fndecl 6-4 3360 NULL
149521 +enable_so_essidlen_zd1201_3366 essidlen zd1201 0 3366 NULL
149522 +enable_so_frame_size_stk_camera_3367 frame_size stk_camera 0 3367 NULL
149523 +enable_so_amd_create_gatt_pages_fndecl_3370 amd_create_gatt_pages fndecl 1 3370 NULL
149524 +enable_so_xfs_dir3_leaf_get_buf_fndecl_3380 xfs_dir3_leaf_get_buf fndecl 2 3380 NULL
149525 +enable_so_phys_hw_bank_3381 phys hw_bank 0 3381 NULL
149526 +enable_so_blk_add_request_payload_fndecl_3382 blk_add_request_payload fndecl 3 3382 NULL
149527 +enable_so_nvdimm_set_config_data_fndecl_3384 nvdimm_set_config_data fndecl 4 3384 NULL
149528 +enable_so_pgoff_vm_fault_3385 pgoff vm_fault 0 3385 NULL nohasharray
149529 +enable_so_drbd_bm_resize_fndecl_3385 drbd_bm_resize fndecl 2 3385 &enable_so_pgoff_vm_fault_3385
149530 +enable_so_xfs_iext_realloc_direct_fndecl_3386 xfs_iext_realloc_direct fndecl 2 3386 NULL
149531 +enable_so_beacon_ie_len_wmi_connect_event_3388 beacon_ie_len wmi_connect_event 0 3388 NULL nohasharray
149532 +enable_so_rport_priv_size_fc_lport_3388 rport_priv_size fc_lport 0 3388 &enable_so_beacon_ie_len_wmi_connect_event_3388
149533 +enable_so_xz_dec_lzma2_reset_fndecl_3390 xz_dec_lzma2_reset fndecl 2 3390 NULL
149534 +enable_so_max_frame_size_nes_vnic_3395 max_frame_size nes_vnic 0 3395 NULL
149535 +enable_so_num_paths_rdma_route_3407 num_paths rdma_route 0 3407 NULL
149536 +enable_so_pos_in_item_treepath_3409 pos_in_item treepath 0 3409 NULL
149537 +enable_so_minLen_group_data_3411 minLen group_data 0 3411 NULL
149538 +enable_so_scsi_report_opcode_fndecl_3412 scsi_report_opcode fndecl 3 3412 NULL
149539 +enable_so_venus_create_fndecl_3416 venus_create fndecl 4 3416 NULL
149540 +enable_so_opts1_RxDesc_3421 opts1 RxDesc 0 3421 NULL
149541 +enable_so___gunzip_fndecl_3422 __gunzip fndecl 2-6 3422 NULL
149542 +enable_so_rlim_cur_rlimit_3431 rlim_cur rlimit 0 3431 NULL nohasharray
149543 +enable_so_set_secure_conn_fndecl_3431 set_secure_conn fndecl 4 3431 &enable_so_rlim_cur_rlimit_3431
149544 +enable_so_max_request_size_megasas_ctrl_info_3434 max_request_size megasas_ctrl_info 0 3434 NULL nohasharray
149545 +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
149546 +enable_so_sync_timeline_create_fndecl_3434 sync_timeline_create fndecl 2 3434 &enable_so_drv_cp_harray_to_user_fndecl_3434
149547 +enable_so_udf_getblk_fndecl_3436 udf_getblk fndecl 2 3436 NULL
149548 +enable_so_len_nft_bitwise_3441 len nft_bitwise 0 3441 NULL nohasharray
149549 +enable_so_command_setcolourbalance_fndecl_3441 command_setcolourbalance fndecl 0 3441 &enable_so_len_nft_bitwise_3441
149550 +enable_so_uc_inSize_upc_req_3444 uc_inSize upc_req 0 3444 NULL
149551 +enable_so_rpipe_check_aim_fndecl_3456 rpipe_check_aim fndecl 0 3456 NULL nohasharray
149552 +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
149553 +enable_so_s_itb_per_group_ext4_sb_info_3459 s_itb_per_group ext4_sb_info 0 3459 NULL
149554 +enable_so_adfs_dir_read_fndecl_3464 adfs_dir_read fndecl 2 3464 NULL
149555 +enable_so_vm_stat_account_fndecl_3465 vm_stat_account fndecl 4 3465 NULL
149556 +enable_so_ngpios_chv_community_3476 ngpios chv_community 0 3476 NULL
149557 +enable_so_qib_qsfp_write_fndecl_3477 qib_qsfp_write fndecl 2-4-0 3477 NULL
149558 +enable_so_namelen_xfs_dir2_sf_entry_3481 namelen xfs_dir2_sf_entry 0 3481 NULL
149559 +enable_so_zlib_tr_flush_block_fndecl_3485 zlib_tr_flush_block fndecl 3 3485 NULL
149560 +enable_so_xfer_len_nvme_trans_io_cdb_3486 xfer_len nvme_trans_io_cdb 0 3486 NULL
149561 +enable_so_oz_cdev_read_fndecl_3488 oz_cdev_read fndecl 3 3488 NULL
149562 +enable_so_rx_buf_size__mgslpc_info_3490 rx_buf_size _mgslpc_info 0 3490 NULL
149563 +enable_so_from_dio_submit_3494 from dio_submit 0 3494 NULL
149564 +enable_so_snd_pcm_oss_prepare_fndecl_3506 snd_pcm_oss_prepare fndecl 0 3506 NULL
149565 +enable_so_kfifo_copy_to_user_fndecl_3509 kfifo_copy_to_user fndecl 3-4-0 3509 NULL nohasharray
149566 +enable_so_hs_bkt_bits_cfs_hash_3509 hs_bkt_bits cfs_hash 0 3509 &enable_so_kfifo_copy_to_user_fndecl_3509
149567 +enable_so_oz_add_farewell_fndecl_3519 oz_add_farewell fndecl 5 3519 NULL
149568 +enable_so_gru_vtop_fndecl_3522 gru_vtop fndecl 2 3522 NULL
149569 +enable_so_nvme_char_major_vardecl_nvme_core_c_3526 nvme_char_major vardecl_nvme-core.c 0 3526 NULL
149570 +enable_so_read_file_tgt_int_stats_fndecl_3530 read_file_tgt_int_stats fndecl 3 3530 NULL
149571 +enable_so_cipso_v4_gentag_rng_fndecl_3532 cipso_v4_gentag_rng fndecl 0 3532 NULL
149572 +enable_so_cl_out_max_entry_size_mvumi_hs_page1_3540 cl_out_max_entry_size mvumi_hs_page1 0 3540 NULL
149573 +enable_so_btrfs_qgroup_reserve_fndecl_3543 btrfs_qgroup_reserve fndecl 0 3543 NULL nohasharray
149574 +enable_so_snd_hdsp_playback_copy_fndecl_3543 snd_hdsp_playback_copy fndecl 5 3543 &enable_so_btrfs_qgroup_reserve_fndecl_3543
149575 +enable_so_get_user_page_nowait_fndecl_3545 get_user_page_nowait fndecl 3 3545 NULL nohasharray
149576 +enable_so_dvb_dmxdev_buffer_read_fndecl_3545 dvb_dmxdev_buffer_read fndecl 4-0 3545 &enable_so_get_user_page_nowait_fndecl_3545
149577 +enable_so_window_size_deflate_state_3549 window_size deflate_state 0 3549 NULL
149578 +enable_so_mult_count_ide_drive_s_3550 mult_count ide_drive_s 0 3550 NULL
149579 +enable_so_ocfs2_read_xattr_bucket_fndecl_3553 ocfs2_read_xattr_bucket fndecl 0-2 3553 NULL
149580 +enable_so_sg_copy_from_buffer_fndecl_3557 sg_copy_from_buffer fndecl 0-4 3557 NULL
149581 +enable_so_security_context_to_sid_force_fndecl_3559 security_context_to_sid_force fndecl 2 3559 NULL
149582 +enable_so_mt2063_write_fndecl_3567 mt2063_write fndecl 4 3567 NULL
149583 +enable_so_page_cache_sync_readahead_fndecl_3569 page_cache_sync_readahead fndecl 4 3569 NULL nohasharray
149584 +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
149585 +enable_so_encode_diropargs3_fndecl_3574 encode_diropargs3 fndecl 4 3574 NULL
149586 +enable_so__snd_pcm_new_fndecl_3575 _snd_pcm_new fndecl 4-5 3575 NULL
149587 +enable_so_template_size_qla27xx_fwdt_template_3576 template_size qla27xx_fwdt_template 0 3576 NULL
149588 +enable_so_len_capiloaddatapart_3577 len capiloaddatapart 0 3577 NULL
149589 +enable_so_pcpu_page_first_chunk_fndecl_3579 pcpu_page_first_chunk fndecl 1 3579 NULL
149590 +enable_so_asq_buf_size_i40e_adminq_info_3582 asq_buf_size i40e_adminq_info 0 3582 NULL
149591 +enable_so_ddr_av_base_mthca_av_table_3589 ddr_av_base mthca_av_table 0 3589 NULL
149592 +enable_so_ip_vs_icmp_xmit_fndecl_3590 ip_vs_icmp_xmit fndecl 4 3590 NULL nohasharray
149593 +enable_so_npads_xtpg_device_3590 npads xtpg_device 0 3590 &enable_so_ip_vs_icmp_xmit_fndecl_3590
149594 +enable_so_buf_size_i1480_3593 buf_size i1480 0 3593 NULL
149595 +enable_so_brcmf_chip_tcm_rambase_fndecl_3599 brcmf_chip_tcm_rambase fndecl 0 3599 NULL
149596 +enable_so_e820_update_range_fndecl_3600 e820_update_range fndecl 1-2 3600 NULL nohasharray
149597 +enable_so_use_debug_keys_read_fndecl_3600 use_debug_keys_read fndecl 3 3600 &enable_so_e820_update_range_fndecl_3600
149598 +enable_so_cdns_uart_get_port_fndecl_3601 cdns_uart_get_port fndecl 1 3601 NULL
149599 +enable_so_xdr_extend_head_fndecl_3606 xdr_extend_head fndecl 3 3606 NULL
149600 +enable_so_engine_len_viafb_dev_3608 engine_len viafb_dev 0 3608 NULL
149601 +enable_so_ss_out_channels_hdsp_3619 ss_out_channels hdsp 0 3619 NULL nohasharray
149602 +enable_so_drm_universal_plane_init_fndecl_3619 drm_universal_plane_init fndecl 6 3619 &enable_so_ss_out_channels_hdsp_3619
149603 +enable_so_ns_blocksize_the_nilfs_3624 ns_blocksize the_nilfs 0 3624 NULL nohasharray
149604 +enable_so_bytes_btrfs_dio_private_3624 bytes btrfs_dio_private 0 3624 &enable_so_ns_blocksize_the_nilfs_3624 nohasharray
149605 +enable_so_do_msg_fill_fndecl_3624 do_msg_fill fndecl 3 3624 &enable_so_bytes_btrfs_dio_private_3624
149606 +enable_so_offline_pages_fndecl_3625 offline_pages fndecl 1-2 3625 NULL
149607 +enable_so_tail_timestamp_event_queue_3626 tail timestamp_event_queue 0 3626 NULL
149608 +enable_so_add_res_range_fndecl_3629 add_res_range fndecl 4 3629 NULL
149609 +enable_so_cbuf_eat_fndecl_3631 cbuf_eat fndecl 2 3631 NULL
149610 +enable_so_vmci_transport_queue_pair_alloc_fndecl_3639 vmci_transport_queue_pair_alloc fndecl 4-3 3639 NULL nohasharray
149611 +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
149612 +enable_so_s_desc_size_ext4_sb_info_3652 s_desc_size ext4_sb_info 0 3652 NULL
149613 +enable_so_pci_id_imc_uncore_pci_dev_3656 pci_id imc_uncore_pci_dev 0 3656 NULL
149614 +enable_so_parport_ieee1284_ecp_read_data_fndecl_3660 parport_ieee1284_ecp_read_data fndecl 0 3660 NULL nohasharray
149615 +enable_so_c_plan_ahead_disk_conf_3660 c_plan_ahead disk_conf 0 3660 &enable_so_parport_ieee1284_ecp_read_data_fndecl_3660
149616 +enable_so_ext2_get_blocks_fndecl_3661 ext2_get_blocks fndecl 0 3661 NULL nohasharray
149617 +enable_so_im_len_xfs_imap_3661 im_len xfs_imap 0 3661 &enable_so_ext2_get_blocks_fndecl_3661
149618 +enable_so_arch_reserve_mem_area_fndecl_3662 arch_reserve_mem_area fndecl 2 3662 NULL
149619 +enable_so_aper_base_amdgpu_mc_3664 aper_base amdgpu_mc 0 3664 NULL
149620 +enable_so_child_cnt_ubifs_znode_3667 child_cnt ubifs_znode 0 3667 NULL
149621 +enable_so_i_block_group_ext3_inode_info_3668 i_block_group ext3_inode_info 0 3668 NULL
149622 +enable_so_bio_find_or_create_slab_fndecl_3671 bio_find_or_create_slab fndecl 1 3671 NULL
149623 +enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673 pcpu_chunk_struct_size vardecl_percpu.c 0 3673 NULL nohasharray
149624 +enable_so_get_zeroed_page_fndecl_3673 get_zeroed_page fndecl 0 3673 &enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673
149625 +enable_so_interfaces_count_ffs_data_3677 interfaces_count ffs_data 0 3677 NULL
149626 +enable_so_alloc_orinocodev_fndecl_3688 alloc_orinocodev fndecl 1 3688 NULL
149627 +enable_so_len_mic_mw_3689 len mic_mw 0 3689 NULL
149628 +enable_so_ath10k_wmi_tlv_op_gen_vdev_sta_uapsd_fndecl_3692 ath10k_wmi_tlv_op_gen_vdev_sta_uapsd fndecl 5 3692 NULL
149629 +enable_so_read_file_bool_bmps_fndecl_3699 read_file_bool_bmps fndecl 3 3699 NULL
149630 +enable_so_srp_max_rsp_size_srpt_port_attrib_3700 srp_max_rsp_size srpt_port_attrib 0 3700 NULL
149631 +enable_so_get_urb_error_fndecl_3702 get_urb_error fndecl 0 3702 NULL
149632 +enable_so_allocate_cmdlines_buffer_fndecl_3704 allocate_cmdlines_buffer fndecl 1 3704 NULL
149633 +enable_so_vlan_netdev_private_3705 vlan netdev_private 0 3705 NULL
149634 +enable_so_gfs2_ea_get_copy_fndecl_3706 gfs2_ea_get_copy fndecl 0 3706 NULL
149635 +enable_so_ip_getsockopt_fndecl_3711 ip_getsockopt fndecl 0 3711 NULL
149636 +enable_so_len_sctp_auth_bytes_3715 len sctp_auth_bytes 0 3715 NULL
149637 +enable_so_byte_len_ib_wc_3716 byte_len ib_wc 0 3716 NULL
149638 +enable_so_len_amp_assoc_3724 len amp_assoc 0 3724 NULL
149639 +enable_so___v4l2_ctrl_modify_range_fndecl_3726 __v4l2_ctrl_modify_range fndecl 2-3-5 3726 NULL
149640 +enable_so_SYSC_rt_sigpending_fndecl_3728 SYSC_rt_sigpending fndecl 2 3728 NULL
149641 +enable_so_mcs_wrap_fir_skb_fndecl_3729 mcs_wrap_fir_skb fndecl 0 3729 NULL nohasharray
149642 +enable_so_split_leaf_fndecl_3729 split_leaf fndecl 0 3729 &enable_so_mcs_wrap_fir_skb_fndecl_3729
149643 +enable_so_video_ioctl2_fndecl_3735 video_ioctl2 fndecl 2 3735 NULL
149644 +enable_so_ecryptfs_message_buf_len_vardecl_3736 ecryptfs_message_buf_len vardecl 0 3736 NULL nohasharray
149645 +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
149646 +enable_so_insert_ptr_fndecl_3737 insert_ptr fndecl 6 3737 NULL
149647 +enable_so_entries_p54_cal_database_3741 entries p54_cal_database 0 3741 NULL
149648 +enable_so_nr_reserved_tags_blk_mq_tags_3751 nr_reserved_tags blk_mq_tags 0 3751 NULL
149649 +enable_so_e_value_size_f2fs_xattr_entry_3755 e_value_size f2fs_xattr_entry 0 3755 NULL
149650 +enable_so_aggr_size_tx_agg_vs_rate_read_fndecl_3757 aggr_size_tx_agg_vs_rate_read fndecl 3 3757 NULL
149651 +enable_so_private_value_sbmix_elem_3773 private_value sbmix_elem 0 3773 NULL
149652 +enable_so_size_m48t35_priv_3775 size m48t35_priv 0 3775 NULL
149653 +enable_so_tblsize_snd_sg_buf_3776 tblsize snd_sg_buf 0 3776 NULL
149654 +enable_so_ag_shift_befs_sb_info_3778 ag_shift befs_sb_info 0 3778 NULL
149655 +enable_so_fl_starve_thres_sge_3779 fl_starve_thres sge 0 3779 NULL
149656 +enable_so_next_fn_fndecl_3785 next_fn fndecl 0-3 3785 NULL
149657 +enable_so_rx_status_len_ath9k_hw_capabilities_3793 rx_status_len ath9k_hw_capabilities 0 3793 NULL
149658 +enable_so_buflen_audit_krule_3796 buflen audit_krule 0 3796 NULL
149659 +enable_so_concat_writev_fndecl_3800 concat_writev fndecl 4 3800 NULL
149660 +enable_so_nfc_hci_send_event_fndecl_3807 nfc_hci_send_event fndecl 5 3807 NULL
149661 +enable_so_nextLineNumber_vardecl_rocket_c_3809 nextLineNumber vardecl_rocket.c 0 3809 NULL
149662 +enable_so_ip_last_used_group_ocfs2_inode_info_3814 ip_last_used_group ocfs2_inode_info 0 3814 NULL
149663 +enable_so_e_cpos_ocfs2_extent_rec_3815 e_cpos ocfs2_extent_rec 0 3815 NULL
149664 +enable_so_dccp_recvmsg_fndecl_3819 dccp_recvmsg fndecl 3 3819 NULL nohasharray
149665 +enable_so_fnic_trace_debugfs_lseek_fndecl_3819 fnic_trace_debugfs_lseek fndecl 2 3819 &enable_so_dccp_recvmsg_fndecl_3819
149666 +enable_so_force_bredr_smp_write_fndecl_3821 force_bredr_smp_write fndecl 3 3821 NULL
149667 +enable_so_bits_per_word_spi_device_3828 bits_per_word spi_device 0 3828 NULL
149668 +enable_so_mei_nfc_send_fndecl_3830 mei_nfc_send fndecl 3 3830 NULL
149669 +enable_so_read_file_xmit_fndecl_3836 read_file_xmit fndecl 3 3836 NULL
149670 +enable_so_num_counters_ipt_replace_3837 num_counters ipt_replace 0 3837 NULL
149671 +enable_so_b43_plcp_get_bitrate_idx_cck_fndecl_3842 b43_plcp_get_bitrate_idx_cck fndecl 0 3842 NULL
149672 +enable_so_find_end_of_node_fndecl_3843 find_end_of_node fndecl 0-3-1-2 3843 NULL
149673 +enable_so_bg_inode_table_hi_ext4_group_desc_3844 bg_inode_table_hi ext4_group_desc 0 3844 NULL
149674 +enable_so_bg_inode_table_ext3_group_desc_3847 bg_inode_table ext3_group_desc 0 3847 NULL
149675 +enable_so_btrfs_dirty_pages_fndecl_3848 btrfs_dirty_pages fndecl 6-5 3848 NULL
149676 +enable_so_qib_verbs_send_fndecl_3860 qib_verbs_send fndecl 5-3 3860 NULL
149677 +enable_so_ocfs2_free_clusters_fndecl_3866 ocfs2_free_clusters fndecl 4 3866 NULL
149678 +enable_so_minlen_fstrim_range_3870 minlen fstrim_range 0 3870 NULL
149679 +enable_so_size_of_priv_dvb_usb_adapter_fe_properties_3875 size_of_priv dvb_usb_adapter_fe_properties 0 3875 NULL
149680 +enable_so_lbs_threshold_read_fndecl_3877 lbs_threshold_read fndecl 5 3877 NULL
149681 +enable_so_tags_nvkm_ram_3878 tags nvkm_ram 0 3878 NULL
149682 +enable_so_console_size_ramoops_context_3884 console_size ramoops_context 0 3884 NULL
149683 +enable_so_s_num_blocks_omfs_sb_info_3888 s_num_blocks omfs_sb_info 0 3888 NULL nohasharray
149684 +enable_so_dbgfs_sram_len_il_priv_3888 dbgfs_sram_len il_priv 0 3888 &enable_so_s_num_blocks_omfs_sb_info_3888
149685 +enable_so_fs_div_hfs_sb_info_3890 fs_div hfs_sb_info 0 3890 NULL
149686 +enable_so_btrfs_inode_ref_name_len_fndecl_3891 btrfs_inode_ref_name_len fndecl 0 3891 NULL
149687 +enable_so_snd_pcm_lib_preallocate_pages_fndecl_3892 snd_pcm_lib_preallocate_pages fndecl 4 3892 NULL nohasharray
149688 +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
149689 +enable_so_arch_gnttab_init_fndecl_3893 arch_gnttab_init fndecl 1 3893 NULL
149690 +enable_so_rootdir_empty_fndecl_3895 rootdir_empty fndecl 2 3895 NULL
149691 +enable_so_xfs_extent_busy_trim_fndecl_3898 xfs_extent_busy_trim fndecl 3-2 3898 NULL
149692 +enable_so_gfs2_meta_wipe_fndecl_3900 gfs2_meta_wipe fndecl 2 3900 NULL
149693 +enable_so_get_enc_strm_size_s5p_mfc_hw_ops_3906 get_enc_strm_size s5p_mfc_hw_ops 0 3906 NULL
149694 +enable_so_endpoint_usb_data_stream_properties_3909 endpoint usb_data_stream_properties 0 3909 NULL
149695 +enable_so_event_calibration_read_fndecl_3912 event_calibration_read fndecl 3 3912 NULL
149696 +enable_so_proc_fault_inject_write_fndecl_3921 proc_fault_inject_write fndecl 3 3921 NULL
149697 +enable_so_mp_map_gsi_to_irq_fndecl_3923 mp_map_gsi_to_irq fndecl 1 3923 NULL
149698 +enable_so_cfpkt_set_prio_fndecl_3935 cfpkt_set_prio fndecl 2 3935 NULL
149699 +enable_so_unix_dgram_sendmsg_fndecl_3944 unix_dgram_sendmsg fndecl 3 3944 NULL
149700 +enable_so_ath6kl_send_go_probe_resp_fndecl_3946 ath6kl_send_go_probe_resp fndecl 3 3946 NULL
149701 +enable_so__efx_mcdi_rpc_async_fndecl_3948 _efx_mcdi_rpc_async fndecl 4-5 3948 NULL
149702 +enable_so_atalk_recvmsg_fndecl_3950 atalk_recvmsg fndecl 3 3950 NULL
149703 +enable_so_resync_min_mddev_3957 resync_min mddev 0 3957 NULL
149704 +enable_so_make_le_item_head_fndecl_3961 make_le_item_head fndecl 6-4-5 3961 NULL
149705 +enable_so_parse_header_ops_3963 parse header_ops 0 3963 NULL
149706 +enable_so_hpfs_de_as_down_as_possible_fndecl_3967 hpfs_de_as_down_as_possible fndecl 0-2 3967 NULL
149707 +enable_so_dgram_sendmsg_fndecl_3972 dgram_sendmsg fndecl 3 3972 NULL
149708 +enable_so_wrbs_per_cxn_hba_parameters_3974 wrbs_per_cxn hba_parameters 0 3974 NULL
149709 +enable_so_num_entries_aper_size_info_lvl2_3983 num_entries aper_size_info_lvl2 0 3983 NULL
149710 +enable_so_max_ti_iu_len_srp_rdma_ch_3984 max_ti_iu_len srp_rdma_ch 0 3984 NULL
149711 +enable_so_num_pages_ttm_mem_reg_3986 num_pages ttm_mem_reg 0 3986 NULL
149712 +enable_so_i2400m_rx_trace_fndecl_3988 i2400m_rx_trace fndecl 3 3988 NULL
149713 +enable_so_tp_len_tpacket2_hdr_3990 tp_len tpacket2_hdr 0 3990 NULL nohasharray
149714 +enable_so___acpi_register_gsi_vardecl_3990 __acpi_register_gsi vardecl 0 3990 &enable_so_tp_len_tpacket2_hdr_3990
149715 +enable_so_rfcomm_sock_recvmsg_fndecl_3992 rfcomm_sock_recvmsg fndecl 3 3992 NULL
149716 +enable_so_iwl_dbgfs_uapsd_misbehaving_read_fndecl_3994 iwl_dbgfs_uapsd_misbehaving_read fndecl 3 3994 NULL
149717 +enable_so_opt_nflen_ipv6_txoptions_3998 opt_nflen ipv6_txoptions 0 3998 NULL nohasharray
149718 +enable_so_len_be_queue_info_3998 len be_queue_info 0 3998 &enable_so_opt_nflen_ipv6_txoptions_3998
149719 +enable_so_buffer_bytes_max_snd_pcm_hardware_4001 buffer_bytes_max snd_pcm_hardware 0 4001 NULL
149720 +enable_so_t4_init_clip_tbl_fndecl_4007 t4_init_clip_tbl fndecl 1-2 4007 NULL nohasharray
149721 +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
149722 +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
149723 +enable_so_rx_data_max_size_sst_generic_ipc_4011 rx_data_max_size sst_generic_ipc 0 4011 NULL
149724 +enable_so_bioset_create_nobvec_fndecl_4015 bioset_create_nobvec fndecl 2-1 4015 NULL
149725 +enable_so_f1_id_amd64_family_type_4017 f1_id amd64_family_type 0 4017 NULL
149726 +enable_so_rtl2830_regmap_gather_write_fndecl_4018 rtl2830_regmap_gather_write fndecl 5 4018 NULL
149727 +enable_so_alloc_pg_vec_fndecl_4020 alloc_pg_vec fndecl 3 4020 NULL
149728 +enable_so_b_size_mon_reader_bin_4021 b_size mon_reader_bin 0 4021 NULL
149729 +enable_so_j_start_reiserfs_journal_list_4030 j_start reiserfs_journal_list 0 4030 NULL
149730 +enable_so_length_usb_request_4031 length usb_request 0 4031 NULL
149731 +enable_so_rx_buf_sz_netdev_private_4035 rx_buf_sz netdev_private 0 4035 NULL
149732 +enable_so_MsgLength__MSG_EVENT_NOTIFY_REPLY_4038 MsgLength _MSG_EVENT_NOTIFY_REPLY 0 4038 NULL
149733 +enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040 brcmf_sdio_txpkt_hdalign fndecl 0 4040 NULL nohasharray
149734 +enable_so_do_cow_fault_fndecl_4040 do_cow_fault fndecl 3-5 4040 &enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040
149735 +enable_so_user_mss_tcp_options_received_4043 user_mss tcp_options_received 0 4043 NULL nohasharray
149736 +enable_so_ipc_rcu_alloc_fndecl_4043 ipc_rcu_alloc fndecl 1 4043 &enable_so_user_mss_tcp_options_received_4043
149737 +enable_so_scsi_execute_req_flags_fndecl_4044 scsi_execute_req_flags fndecl 5 4044 NULL
149738 +enable_so_tx_data_count_hso_serial_4046 tx_data_count hso_serial 0 4046 NULL
149739 +enable_so_prepare_header_fndecl_4047 prepare_header fndecl 0 4047 NULL
149740 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt2sas_facts_4050 MaxReplyDescriptorPostQueueDepth mpt2sas_facts 0 4050 NULL
149741 +enable_so_ssid_len_cfg80211_connect_params_4052 ssid_len cfg80211_connect_params 0 4052 NULL
149742 +enable_so_cx18_v4l2_read_fndecl_4063 cx18_v4l2_read fndecl 3 4063 NULL
149743 +enable_so_isoc_packet_size_usb_usbvision_4066 isoc_packet_size usb_usbvision 0 4066 NULL
149744 +enable_so_cfg80211_notify_new_peer_candidate_fndecl_4073 cfg80211_notify_new_peer_candidate fndecl 4 4073 NULL
149745 +enable_so_iscsi_max_snd_data_seg_len_dev_db_entry_4074 iscsi_max_snd_data_seg_len dev_db_entry 0 4074 NULL
149746 +enable_so_do_validate_mem_fndecl_4075 do_validate_mem fndecl 3-2 4075 NULL nohasharray
149747 +enable_so_input_ff_create_fndecl_4075 input_ff_create fndecl 2 4075 &enable_so_do_validate_mem_fndecl_4075
149748 +enable_so_ring_overflow_per_user_data_4076 ring_overflow per_user_data 0 4076 NULL
149749 +enable_so_mlx4_en_get_num_flows_fndecl_4078 mlx4_en_get_num_flows fndecl 0 4078 NULL
149750 +enable_so_IOCRequestFrameSize_mpt3sas_facts_4079 IOCRequestFrameSize mpt3sas_facts 0 4079 NULL
149751 +enable_so_read_ftrace_buffer_info_4082 read ftrace_buffer_info 0 4082 NULL
149752 +enable_so_kvm_vcpu_read_guest_page_fndecl_4083 kvm_vcpu_read_guest_page fndecl 2-5 4083 NULL
149753 +enable_so_event_exit_inst_len_kvm_vcpu_arch_4085 event_exit_inst_len kvm_vcpu_arch 0 4085 NULL nohasharray
149754 +enable_so_n_drm_r128_depth_4085 n drm_r128_depth 0 4085 &enable_so_event_exit_inst_len_kvm_vcpu_arch_4085
149755 +enable_so_skb_copy_and_csum_datagram_fndecl_4086 skb_copy_and_csum_datagram fndecl 4-2 4086 NULL
149756 +enable_so__ocfs2_free_clusters_fndecl_4087 _ocfs2_free_clusters fndecl 4 4087 NULL
149757 +enable_so_base_intel_initial_plane_config_4088 base intel_initial_plane_config 0 4088 NULL
149758 +enable_so_num_pipes_intel_device_info_4092 num_pipes intel_device_info 0 4092 NULL
149759 +enable_so_sca_keylength_sctp_authkey_4095 sca_keylength sctp_authkey 0 4095 NULL
149760 +enable_so_m1_xgene_enet_raw_desc_4097 m1 xgene_enet_raw_desc 0 4097 NULL
149761 +enable_so_ae_res_sd_4099 ae_res sd 0 4099 NULL
149762 +enable_so_ext4_fname_encrypted_size_fndecl_4100 ext4_fname_encrypted_size fndecl 0-2 4100 NULL
149763 +enable_so_special_ixgb_rx_desc_4107 special ixgb_rx_desc 0 4107 NULL nohasharray
149764 +enable_so_nbuttons_tca6416_keys_platform_data_4107 nbuttons tca6416_keys_platform_data 0 4107 &enable_so_special_ixgb_rx_desc_4107
149765 +enable_so_blkno_xfs_da_args_4112 blkno xfs_da_args 0 4112 NULL
149766 +enable_so_vringh_iov_pull_kern_fndecl_4115 vringh_iov_pull_kern fndecl 3 4115 NULL
149767 +enable_so_read_reg_fndecl_4120 read_reg fndecl 0 4120 NULL
149768 +enable_so_jffs2_acl_from_medium_fndecl_4129 jffs2_acl_from_medium fndecl 2 4129 NULL
149769 +enable_so_ocfs2_read_group_descriptor_fndecl_4136 ocfs2_read_group_descriptor fndecl 3 4136 NULL
149770 +enable_so_ssid_len_mwifiex_802_11_ssid_4139 ssid_len mwifiex_802_11_ssid 0 4139 NULL
149771 +enable_so_size_badblocks_4142 size badblocks 0 4142 NULL
149772 +enable_so_interleave_cfi_private_4153 interleave cfi_private 0 4153 NULL
149773 +enable_so_ocfs2_readpages_fndecl_4156 ocfs2_readpages fndecl 4 4156 NULL nohasharray
149774 +enable_so_num_msix_vec_be_adapter_4156 num_msix_vec be_adapter 0 4156 &enable_so_ocfs2_readpages_fndecl_4156
149775 +enable_so_tool_spadfn_read_fndecl_4176 tool_spadfn_read fndecl 3 4176 NULL nohasharray
149776 +enable_so_epp_write_data_parport_operations_4176 epp_write_data parport_operations 0 4176 &enable_so_tool_spadfn_read_fndecl_4176
149777 +enable_so_max_rx_urb_irda_usb_cb_4182 max_rx_urb irda_usb_cb 0 4182 NULL
149778 +enable_so_saa7146_vmalloc_build_pgtable_fndecl_4183 saa7146_vmalloc_build_pgtable fndecl 2 4183 NULL
149779 +enable_so_update_file_sizes_fndecl_4184 update_file_sizes fndecl 3-2 4184 NULL
149780 +enable_so_team_change_mtu_fndecl_4186 team_change_mtu fndecl 2 4186 NULL
149781 +enable_so_irda_setsockopt_fndecl_4195 irda_setsockopt fndecl 5 4195 NULL
149782 +enable_so_wBeaconInfoLength_uwb_rc_evt_beacon_WUSB_0100_4200 wBeaconInfoLength uwb_rc_evt_beacon_WUSB_0100 0 4200 NULL
149783 +enable_so_bd_dev_block_device_4202 bd_dev block_device 0 4202 NULL
149784 +enable_so_vfs_getxattr_fndecl_4203 vfs_getxattr fndecl 0 4203 NULL
149785 +enable_so_sample_bits_snd_soc_dai_4206 sample_bits snd_soc_dai 0 4206 NULL nohasharray
149786 +enable_so_parent___prelim_ref_4206 parent __prelim_ref 0 4206 &enable_so_sample_bits_snd_soc_dai_4206
149787 +enable_so_rx_page_order_il_hw_params_4208 rx_page_order il_hw_params 0 4208 NULL
149788 +enable_so_rx_pkt_offset_rxpd_4210 rx_pkt_offset rxpd 0 4210 NULL
149789 +enable_so_max_vectors_i40e_virtchnl_vf_resource_4213 max_vectors i40e_virtchnl_vf_resource 0 4213 NULL
149790 +enable_so_ext2_setsize_fndecl_4215 ext2_setsize fndecl 2 4215 NULL nohasharray
149791 +enable_so_nci_hci_set_param_fndecl_4215 nci_hci_set_param fndecl 5 4215 &enable_so_ext2_setsize_fndecl_4215
149792 +enable_so_proc_stats_rid_open_fndecl_4219 proc_stats_rid_open fndecl 0 4219 NULL
149793 +enable_so_store_pending_adv_report_fndecl_4222 store_pending_adv_report fndecl 7 4222 NULL
149794 +enable_so_ath10k_write_htt_max_amsdu_ampdu_fndecl_4223 ath10k_write_htt_max_amsdu_ampdu fndecl 3 4223 NULL
149795 +enable_so_dlm_lock_fndecl_4225 dlm_lock fndecl 6 4225 NULL nohasharray
149796 +enable_so_nilfs_segbuf_map_fndecl_4225 nilfs_segbuf_map fndecl 3-2 4225 &enable_so_dlm_lock_fndecl_4225
149797 +enable_so___nla_put_fndecl_4226 __nla_put fndecl 3 4226 NULL
149798 +enable_so_num_lut_dmm_4228 num_lut dmm 0 4228 NULL
149799 +enable_so_len_bpf_prog_4232 len bpf_prog 0 4232 NULL
149800 +enable_so_data_len_nci_data_4237 data_len nci_data 0 4237 NULL
149801 +enable_so_ext3_xattr_user_set_fndecl_4238 ext3_xattr_user_set fndecl 4 4238 NULL nohasharray
149802 +enable_so_ip6gre_err_fndecl_4238 ip6gre_err fndecl 5 4238 &enable_so_ext3_xattr_user_set_fndecl_4238
149803 +enable_so_alloc_size_debug_buffer_4240 alloc_size debug_buffer 0 4240 NULL
149804 +enable_so_subpage_sft_mtd_info_4249 subpage_sft mtd_info 0 4249 NULL
149805 +enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250 ieee80211_mesh_rx_mgmt_action fndecl 3 4250 NULL nohasharray
149806 +enable_so_duplex_ethtool_cmd_4250 duplex ethtool_cmd 0 4250 &enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250
149807 +enable_so_roaming_threshold_ipw_priv_4252 roaming_threshold ipw_priv 0 4252 NULL
149808 +enable_so_cfg80211_mlme_register_mgmt_fndecl_4255 cfg80211_mlme_register_mgmt fndecl 5 4255 NULL
149809 +enable_so_user_width_soc_camera_device_4262 user_width soc_camera_device 0 4262 NULL
149810 +enable_so_ntids_tid_info_4263 ntids tid_info 0 4263 NULL
149811 +enable_so_nilfs_gccache_submit_read_node_fndecl_4267 nilfs_gccache_submit_read_node fndecl 2-3 4267 NULL
149812 +enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270 qlcnic_sysfs_read_pci_config fndecl 6 4270 NULL nohasharray
149813 +enable_so_xgbe_init_ring_fndecl_4270 xgbe_init_ring fndecl 3 4270 &enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270
149814 +enable_so_ide_set_pio_fndecl_4272 ide_set_pio fndecl 2 4272 NULL
149815 +enable_so_mp_map_pin_to_irq_fndecl_4276 mp_map_pin_to_irq fndecl 1 4276 NULL
149816 +enable_so_fuse_ioctl_copy_user_fndecl_4279 fuse_ioctl_copy_user fndecl 4-3 4279 NULL
149817 +enable_so_rx_packet_len_nci_uart_4280 rx_packet_len nci_uart 0 4280 NULL
149818 +enable_so_mrp_request_join_fndecl_4281 mrp_request_join fndecl 4 4281 NULL
149819 +enable_so_ib_qib_lkey_table_size_vardecl_4282 ib_qib_lkey_table_size vardecl 0 4282 NULL
149820 +enable_so_gfs2_getbuf_fndecl_4283 gfs2_getbuf fndecl 2 4283 NULL
149821 +enable_so_route_mtu_cached_xfrm_dst_4288 route_mtu_cached xfrm_dst 0 4288 NULL nohasharray
149822 +enable_so_mangle_name_fndecl_4288 mangle_name fndecl 0 4288 &enable_so_route_mtu_cached_xfrm_dst_4288
149823 +enable_so_connector_count_drm_fb_helper_4290 connector_count drm_fb_helper 0 4290 NULL
149824 +enable_so_h_next_leaf_blk_ocfs2_extent_block_4292 h_next_leaf_blk ocfs2_extent_block 0 4292 NULL
149825 +enable_so___add_section_fndecl_4296 __add_section fndecl 3 4296 NULL
149826 +enable_so_cgroup_task_count_fndecl_4297 cgroup_task_count fndecl 0 4297 NULL
149827 +enable_so_maxpacket_musb_qh_4303 maxpacket musb_qh 0 4303 NULL nohasharray
149828 +enable_so____copy_to_user_fndecl_4303 ___copy_to_user fndecl 0 4303 &enable_so_maxpacket_musb_qh_4303
149829 +enable_so_rx_frm_len_mask_macb_4310 rx_frm_len_mask macb 0 4310 NULL nohasharray
149830 +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
149831 +enable_so_ps_upsd_max_apturn_read_fndecl_4317 ps_upsd_max_apturn_read fndecl 3 4317 NULL
149832 +enable_so_bufsize_i2c_hid_4318 bufsize i2c_hid 0 4318 NULL
149833 +enable_so_old_chunk_dm_exception_4333 old_chunk dm_exception 0 4333 NULL
149834 +enable_so_ax25_send_frame_fndecl_4335 ax25_send_frame fndecl 2 4335 NULL
149835 +enable_so_length_rbd_obj_request_4337 length rbd_obj_request 0 4337 NULL
149836 +enable_so_stripe_len_btrfs_raid_bio_4340 stripe_len btrfs_raid_bio 0 4340 NULL nohasharray
149837 +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
149838 +enable_so_v4l2_ctrl_new_fndecl_4341 v4l2_ctrl_new fndecl 8-7-10-12 4341 NULL
149839 +enable_so_key_len_neigh_table_4347 key_len neigh_table 0 4347 NULL
149840 +enable_so_scrbuf_size_sisusb_usb_data_4350 scrbuf_size sisusb_usb_data 0 4350 NULL
149841 +enable_so_len_mwifiex_ds_misc_gen_ie_4351 len mwifiex_ds_misc_gen_ie 0 4351 NULL
149842 +enable_so_musb_giveback_fndecl_4352 musb_giveback fndecl 3 4352 NULL
149843 +enable_so_o_size_x509_parse_context_4358 o_size x509_parse_context 0 4358 NULL
149844 +enable_so_max_sg_segs_vardecl_osst_c_4365 max_sg_segs vardecl_osst.c 0 4365 NULL
149845 +enable_so_snd_emu10k1_synth_alloc_fndecl_4366 snd_emu10k1_synth_alloc fndecl 2 4366 NULL
149846 +enable_so_isdn_tty_edit_at_fndecl_4376 isdn_tty_edit_at fndecl 0 4376 NULL nohasharray
149847 +enable_so_nilfs_sufile_resize_fndecl_4376 nilfs_sufile_resize fndecl 2 4376 &enable_so_isdn_tty_edit_at_fndecl_4376
149848 +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
149849 +enable_so_ts_packet_size_cx8802_dev_4383 ts_packet_size cx8802_dev 0 4383 NULL nohasharray
149850 +enable_so_dir_entries_msdos_sb_info_4383 dir_entries msdos_sb_info 0 4383 &enable_so_ts_packet_size_cx8802_dev_4383
149851 +enable_so_ext4_add_new_descs_fndecl_4390 ext4_add_new_descs fndecl 3 4390 NULL
149852 +enable_so_err_vlan_tg3_rx_buffer_desc_4391 err_vlan tg3_rx_buffer_desc 0 4391 NULL
149853 +enable_so_diReadSpecial_fndecl_4393 diReadSpecial fndecl 2 4393 NULL
149854 +enable_so_ivtv_udma_setup_fndecl_4395 ivtv_udma_setup fndecl 4 4395 NULL
149855 +enable_so_mgag200_bo_create_fndecl_4398 mgag200_bo_create fndecl 2 4398 NULL
149856 +enable_so_skb_realloc_headroom_fndecl_4399 skb_realloc_headroom fndecl 2 4399 NULL nohasharray
149857 +enable_so_ath10k_mem_value_write_fndecl_4399 ath10k_mem_value_write fndecl 3 4399 &enable_so_skb_realloc_headroom_fndecl_4399
149858 +enable_so_leadin_ignore_xpnet_message_4402 leadin_ignore xpnet_message 0 4402 NULL
149859 +enable_so_page_ofs__ntfs_inode_4407 page_ofs _ntfs_inode 0 4407 NULL
149860 +enable_so_new_bytenr_backref_node_4416 new_bytenr backref_node 0 4416 NULL
149861 +enable_so___alloc_block_fndecl_4419 __alloc_block fndecl 2 4419 NULL nohasharray
149862 +enable_so_nfc_llcp_build_tlv_fndecl_4419 nfc_llcp_build_tlv fndecl 3 4419 &enable_so___alloc_block_fndecl_4419
149863 +enable_so_bl_idle_driver_init_fndecl_4432 bl_idle_driver_init fndecl 0 4432 NULL
149864 +enable_so_batadv_tvlv_container_register_fndecl_4435 batadv_tvlv_container_register fndecl 5 4435 NULL
149865 +enable_so_jfs_fsync_fndecl_4436 jfs_fsync fndecl 2-3 4436 NULL
149866 +enable_so_f2fs_add_inline_entry_fndecl_4438 f2fs_add_inline_entry fndecl 4 4438 NULL
149867 +enable_so_bRefresh_usb_endpoint_descriptor_4444 bRefresh usb_endpoint_descriptor 0 4444 NULL
149868 +enable_so_number_mdu_disk_info_s_4445 number mdu_disk_info_s 0 4445 NULL
149869 +enable_so_width_simplefb_params_4449 width simplefb_params 0 4449 NULL
149870 +enable_so_nfsd_read_fndecl_4451 nfsd_read fndecl 3-5 4451 NULL
149871 +enable_so_ieee80211_key_alloc_fndecl_4452 ieee80211_key_alloc fndecl 3 4452 NULL
149872 +enable_so_compress_raw_buf_fndecl_4453 compress_raw_buf fndecl 0 4453 NULL
149873 +enable_so_n_comedi_insn_4458 n comedi_insn 0 4458 NULL
149874 +enable_so_bm_status_read_fndecl_4460 bm_status_read fndecl 3 4460 NULL
149875 +enable_so_sftid_base_tid_info_4462 sftid_base tid_info 0 4462 NULL
149876 +enable_so_fifo_size_fritz_bcs_4463 fifo_size fritz_bcs 0 4463 NULL
149877 +enable_so_gunzip_fndecl_4465 gunzip fndecl 2 4465 NULL
149878 +enable_so_kernel_read_fndecl_4468 kernel_read fndecl 4-0 4468 NULL
149879 +enable_so_rx_ring_size_altera_tse_private_4470 rx_ring_size altera_tse_private 0 4470 NULL
149880 +enable_so_sddr09_read22_fndecl_4476 sddr09_read22 fndecl 4-3-6 4476 NULL
149881 +enable_so_ocfs2_control_message_fndecl_4479 ocfs2_control_message fndecl 3 4479 NULL
149882 +enable_so_hdmi_create_eld_ctl_fndecl_4485 hdmi_create_eld_ctl fndecl 2 4485 NULL
149883 +enable_so_hdr_len_l2tp_session_4486 hdr_len l2tp_session 0 4486 NULL nohasharray
149884 +enable_so_fragments_squashfs_super_block_4486 fragments squashfs_super_block 0 4486 &enable_so_hdr_len_l2tp_session_4486
149885 +enable_so_fw_size_amdgpu_firmware_4488 fw_size amdgpu_firmware 0 4488 NULL
149886 +enable_so_fallocate_chunk_fndecl_4489 fallocate_chunk fndecl 3 4489 NULL
149887 +enable_so_load_xattr_datum_fndecl_4505 load_xattr_datum fndecl 0 4505 NULL
149888 +enable_so___mei_cl_recv_fndecl_4519 __mei_cl_recv fndecl 0-3 4519 NULL
149889 +enable_so_nfs3_proc_readdir_fndecl_4544 nfs3_proc_readdir fndecl 5 4544 NULL nohasharray
149890 +enable_so_ath10k_read_pktlog_filter_fndecl_4544 ath10k_read_pktlog_filter fndecl 3 4544 &enable_so_nfs3_proc_readdir_fndecl_4544
149891 +enable_so_BlocksPerUnit_partition_t_4545 BlocksPerUnit partition_t 0 4545 NULL
149892 +enable_so_uhci_giveback_urb_fndecl_4547 uhci_giveback_urb fndecl 4 4547 NULL
149893 +enable_so_data_size_cz_buffer_entry_4548 data_size cz_buffer_entry 0 4548 NULL
149894 +enable_so_qdepth_uas_dev_info_4551 qdepth uas_dev_info 0 4551 NULL
149895 +enable_so_nr_chans_solo_dev_4552 nr_chans solo_dev 0 4552 NULL
149896 +enable_so_data_len_o2net_msg_4553 data_len o2net_msg 0 4553 NULL
149897 +enable_so_acpi_read_slow_fndecl_4554 acpi_read_slow fndecl 3-2 4554 NULL
149898 +enable_so_hwcursor_size_sis_video_info_4560 hwcursor_size sis_video_info 0 4560 NULL
149899 +enable_so_channels_snd_korg1212_4562 channels snd_korg1212 0 4562 NULL
149900 +enable_so_usbvision_rvmalloc_fndecl_4564 usbvision_rvmalloc fndecl 1 4564 NULL
149901 +enable_so_word1_pkt_stat_desc_4565 word1 pkt_stat_desc 0 4565 NULL
149902 +enable_so_LoadBitmap_fndecl_4569 LoadBitmap fndecl 2 4569 NULL
149903 +enable_so_far_copies_geom_4570 far_copies geom 0 4570 NULL
149904 +enable_so_dlen_nft_set_4577 dlen nft_set 0 4577 NULL
149905 +enable_so_rx_buf_sz_gem_4593 rx_buf_sz gem 0 4593 NULL
149906 +enable_so_bio_detain_fndecl_4601 bio_detain fndecl 2 4601 NULL
149907 +enable_so_header_size_partition_4606 header_size partition 0 4606 NULL
149908 +enable_so_btrfs_del_inode_extref_fndecl_4607 btrfs_del_inode_extref fndecl 4 4607 NULL
149909 +enable_so_max_event_log_size_iwl_base_params_4612 max_event_log_size iwl_base_params 0 4612 NULL
149910 +enable_so_sxgbe_change_mtu_fndecl_4613 sxgbe_change_mtu fndecl 2 4613 NULL
149911 +enable_so_tm6000_i2c_send_regs_fndecl_4617 tm6000_i2c_send_regs fndecl 5 4617 NULL
149912 +enable_so_cksumlength_gss_krb5_enctype_4630 cksumlength gss_krb5_enctype 0 4630 NULL
149913 +enable_so_tcam_size_mc5_4631 tcam_size mc5 0 4631 NULL nohasharray
149914 +enable_so_size_minus_one_mxt_object_4631 size_minus_one mxt_object 0 4631 &enable_so_tcam_size_mc5_4631
149915 +enable_so_total_bytes__osd_req_data_segment_4634 total_bytes _osd_req_data_segment 0 4634 NULL
149916 +enable_so_irq_nvecs_bnx2_4644 irq_nvecs bnx2 0 4644 NULL
149917 +enable_so_read_eeprom_bytes_fndecl_4649 read_eeprom_bytes fndecl 4 4649 NULL
149918 +enable_so_size_simple_transaction_argresp_4650 size simple_transaction_argresp 0 4650 NULL
149919 +enable_so_buffer_size_smsusb_device_t_4667 buffer_size smsusb_device_t 0 4667 NULL
149920 +enable_so_overridesize_vardecl_nandsim_c_4668 overridesize vardecl_nandsim.c 0 4668 NULL
149921 +enable_so_r10_sync_page_io_fndecl_4672 r10_sync_page_io fndecl 3-2 4672 NULL
149922 +enable_so_bcache_major_vardecl_super_c_4677 bcache_major vardecl_super.c 0 4677 NULL
149923 +enable_so_dm_get_reserved_bio_based_ios_fndecl_4680 dm_get_reserved_bio_based_ios fndecl 0 4680 NULL
149924 +enable_so_l1_dirbase_vardecl_acpi_extlog_c_4681 l1_dirbase vardecl_acpi_extlog.c 0 4681 NULL
149925 +enable_so__rtl92s_get_h2c_cmdlen_fndecl_4683 _rtl92s_get_h2c_cmdlen fndecl 0 4683 NULL
149926 +enable_so_snd_pcm_hw_param_near_fndecl_4691 snd_pcm_hw_param_near fndecl 4 4691 NULL
149927 +enable_so_optlen_ip_options_4698 optlen ip_options 0 4698 NULL nohasharray
149928 +enable_so_send_section_cnt_netvsc_device_4698 send_section_cnt netvsc_device 0 4698 &enable_so_optlen_ip_options_4698
149929 +enable_so_btrfs_header_nritems_fndecl_4699 btrfs_header_nritems fndecl 0 4699 NULL
149930 +enable_so_bpf_func_bpf_prog_4701 bpf_func bpf_prog 0 4701 NULL
149931 +enable_so_iwl_parse_nvm_mcc_info_fndecl_4702 iwl_parse_nvm_mcc_info fndecl 3 4702 NULL nohasharray
149932 +enable_so_single_open_fndecl_4702 single_open fndecl 0 4702 &enable_so_iwl_parse_nvm_mcc_info_fndecl_4702
149933 +enable_so_xdr_decode_word_fndecl_4707 xdr_decode_word fndecl 2 4707 NULL
149934 +enable_so_gfs2_glock_nq_m_fndecl_4712 gfs2_glock_nq_m fndecl 1 4712 NULL
149935 +enable_so_nr_hw_queues_blk_mq_tag_set_4713 nr_hw_queues blk_mq_tag_set 0 4713 NULL
149936 +enable_so_count_user_sgentry64_4714 count user_sgentry64 0 4714 NULL
149937 +enable_so_hpfs_ea_remove_fndecl_4717 hpfs_ea_remove fndecl 4-2 4717 NULL
149938 +enable_so_snd_cs4281_BA1_read_fndecl_4720 snd_cs4281_BA1_read fndecl 5 4720 NULL
149939 +enable_so_tx_tx_burst_programmed_read_fndecl_4723 tx_tx_burst_programmed_read fndecl 3 4723 NULL
149940 +enable_so_next_page_mpage_da_data_4726 next_page mpage_da_data 0 4726 NULL
149941 +enable_so_displacement_bts_phys_4728 displacement bts_phys 0 4728 NULL
149942 +enable_so_net2272_read_packet_fndecl_4735 net2272_read_packet fndecl 4 4735 NULL
149943 +enable_so_qla82xx_pci_mem_read_direct_fndecl_4739 qla82xx_pci_mem_read_direct fndecl 2 4739 NULL
149944 +enable_so_smk_set_cipso_fndecl_4744 smk_set_cipso fndecl 3 4744 NULL
149945 +enable_so_num_srq_mthca_profile_4747 num_srq mthca_profile 0 4747 NULL
149946 +enable_so_netlbl_catmap_setrng_fndecl_4749 netlbl_catmap_setrng fndecl 2 4749 NULL
149947 +enable_so_offline_isolated_pages_fndecl_4750 offline_isolated_pages fndecl 1-2 4750 NULL
149948 +enable_so_format_count_drm_plane_4754 format_count drm_plane 0 4754 NULL
149949 +enable_so_maxpacket_sl811h_ep_4755 maxpacket sl811h_ep 0 4755 NULL
149950 +enable_so_read_reg_cc770_priv_4760 read_reg cc770_priv 0 4760 NULL
149951 +enable_so_map_sz_cyttsp4_sysinfo_ofs_4769 map_sz cyttsp4_sysinfo_ofs 0 4769 NULL
149952 +enable_so_acpi_rs_set_resource_source_fndecl_4776 acpi_rs_set_resource_source fndecl 0-2 4776 NULL
149953 +enable_so_length_property_4777 length property 0 4777 NULL
149954 +enable_so_stride_snd_usb_endpoint_4779 stride snd_usb_endpoint 0 4779 NULL
149955 +enable_so_max_tfr_mmc_test_area_4780 max_tfr mmc_test_area 0 4780 NULL
149956 +enable_so_crtc_vsync_start_drm_display_mode_4785 crtc_vsync_start drm_display_mode 0 4785 NULL nohasharray
149957 +enable_so_n_channels_cfg80211_scan_request_4785 n_channels cfg80211_scan_request 0 4785 &enable_so_crtc_vsync_start_drm_display_mode_4785
149958 +enable_so_img_height_s5p_mfc_ctx_4793 img_height s5p_mfc_ctx 0 4793 NULL
149959 +enable_so___kfifo_from_user_fndecl_4796 __kfifo_from_user fndecl 3 4796 NULL nohasharray
149960 +enable_so_SyS_get_mempolicy_fndecl_4796 SyS_get_mempolicy fndecl 3 4796 &enable_so___kfifo_from_user_fndecl_4796
149961 +enable_so_fmc_send_cmd_fndecl_4800 fmc_send_cmd fndecl 5 4800 NULL
149962 +enable_so_set_indirect_ea_fndecl_4810 set_indirect_ea fndecl 5-3 4810 NULL
149963 +enable_so_INFTL_deleteblock_fndecl_4811 INFTL_deleteblock fndecl 2 4811 NULL
149964 +enable_so_length_reiserfs_security_handle_4813 length reiserfs_security_handle 0 4813 NULL
149965 +enable_so_buffer_size_ide_tape_obj_4815 buffer_size ide_tape_obj 0 4815 NULL
149966 +enable_so_drm_mode_vrefresh_fndecl_4817 drm_mode_vrefresh fndecl 0 4817 NULL
149967 +enable_so_ov534_reg_read_fndecl_4820 ov534_reg_read fndecl 0 4820 NULL
149968 +enable_so_ext4_dir_llseek_fndecl_4826 ext4_dir_llseek fndecl 2 4826 NULL
149969 +enable_so_new_orphans_ubifs_info_4827 new_orphans ubifs_info 0 4827 NULL
149970 +enable_so_i2c_read_fndecl_4828 i2c_read fndecl 4-6 4828 NULL nohasharray
149971 +enable_so_find_skb_fndecl_4828 find_skb fndecl 3 4828 &enable_so_i2c_read_fndecl_4828 nohasharray
149972 +enable_so_period_bytes_snd_card_asihpi_pcm_4828 period_bytes snd_card_asihpi_pcm 0 4828 &enable_so_find_skb_fndecl_4828
149973 +enable_so_nelems_cciss_scsi_cmd_stack_t_4829 nelems cciss_scsi_cmd_stack_t 0 4829 NULL
149974 +enable_so_alloc_dummy_extent_buffer_fndecl_4832 alloc_dummy_extent_buffer fndecl 2 4832 NULL
149975 +enable_so_read_buf_fndecl_4838 read_buf fndecl 2 4838 NULL
149976 +enable_so_compat_ipv6_setsockopt_fndecl_4839 compat_ipv6_setsockopt fndecl 5 4839 NULL
149977 +enable_so_bio_trim_fndecl_4843 bio_trim fndecl 2-3 4843 NULL
149978 +enable_so_start_service_discovery_fndecl_4846 start_service_discovery fndecl 4 4846 NULL
149979 +enable_so_btrfs_get_32_fndecl_4847 btrfs_get_32 fndecl 0 4847 NULL
149980 +enable_so_hash_size_cache_detail_4852 hash_size cache_detail 0 4852 NULL
149981 +enable_so_start__iohandle_4857 start _iohandle 0 4857 NULL
149982 +enable_so_do_ipv6_getsockopt_fndecl_4859 do_ipv6_getsockopt fndecl 0 4859 NULL
149983 +enable_so_max_tgts_snic_fw_info_4861 max_tgts snic_fw_info 0 4861 NULL
149984 +enable_so_encode_path_fndecl_4865 encode_path fndecl 3 4865 NULL nohasharray
149985 +enable_so_attach_hdlc_protocol_fndecl_4865 attach_hdlc_protocol fndecl 3 4865 &enable_so_encode_path_fndecl_4865
149986 +enable_so_s_desc_per_block_ext4_sb_info_4867 s_desc_per_block ext4_sb_info 0 4867 NULL nohasharray
149987 +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
149988 +enable_so_i40e_reserve_msix_vectors_fndecl_4870 i40e_reserve_msix_vectors fndecl 0 4870 NULL
149989 +enable_so_i_lenEAttr_udf_inode_info_4872 i_lenEAttr udf_inode_info 0 4872 NULL nohasharray
149990 +enable_so_find_overflow_devnum_fndecl_4872 find_overflow_devnum fndecl 0 4872 &enable_so_i_lenEAttr_udf_inode_info_4872
149991 +enable_so_out_args_qlcnic_mailbox_metadata_4881 out_args qlcnic_mailbox_metadata 0 4881 NULL
149992 +enable_so_mlx4_get_eqs_per_port_fndecl_4892 mlx4_get_eqs_per_port fndecl 0 4892 NULL
149993 +enable_so_snd_interval_refine_min_fndecl_4894 snd_interval_refine_min fndecl 2 4894 NULL nohasharray
149994 +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
149995 +enable_so_tng_serial_setup_fndecl_4896 tng_serial_setup fndecl 4 4896 NULL
149996 +enable_so_head_circ_buf_4897 head circ_buf 0 4897 NULL
149997 +enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898 wMaxSegmentSize usb_cdc_ether_desc 0 4898 NULL nohasharray
149998 +enable_so_refdiv_arizona_fll_cfg_4898 refdiv arizona_fll_cfg 0 4898 &enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898
149999 +enable_so_upper_size_to_lower_size_fndecl_4899 upper_size_to_lower_size fndecl 0-2 4899 NULL
150000 +enable_so_need_tx_headroom_prism2_helper_functions_4902 need_tx_headroom prism2_helper_functions 0 4902 NULL
150001 +enable_so_SYSC_fgetxattr_fndecl_4904 SYSC_fgetxattr fndecl 4 4904 NULL
150002 +enable_so_diva_um_idi_read_fndecl_4912 diva_um_idi_read fndecl 0 4912 NULL
150003 +enable_so_tree_mod_log_eb_move_fndecl_4920 tree_mod_log_eb_move fndecl 5 4920 NULL
150004 +enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
150005 +enable_so_event_trigger_write_fndecl_4922 event_trigger_write fndecl 3 4922 NULL
150006 +enable_so_leaf_copy_items_fndecl_4923 leaf_copy_items fndecl 5 4923 NULL
150007 +enable_so_ui_size_ubifs_inode_4934 ui_size ubifs_inode 0 4934 NULL
150008 +enable_so_bpp_drm_mode_fb_cmd_4936 bpp drm_mode_fb_cmd 0 4936 NULL
150009 +enable_so_clear_extent_bits_fndecl_4939 clear_extent_bits fndecl 2-3 4939 NULL
150010 +enable_so_ocfs2_xattr_security_set_fndecl_4947 ocfs2_xattr_security_set fndecl 4 4947 NULL
150011 +enable_so_update_tind_extent_range_fndecl_4950 update_tind_extent_range fndecl 3 4950 NULL nohasharray
150012 +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
150013 +enable_so_read_tape_fndecl_4950 read_tape fndecl 2 4950 &enable_so_mlx5_ib_db_map_user_fndecl_4950
150014 +enable_so_clear_extent_uptodate_fndecl_4952 clear_extent_uptodate fndecl 2-3 4952 NULL
150015 +enable_so_myri10ge_get_txrx_fndecl_4953 myri10ge_get_txrx fndecl 2 4953 NULL
150016 +enable_so_nvkm_disp_create__fndecl_4955 nvkm_disp_create_ fndecl 7-4 4955 NULL
150017 +enable_so_aat2870_reg_write_file_fndecl_4965 aat2870_reg_write_file fndecl 3 4965 NULL
150018 +enable_so_fuse_conn_limit_read_fndecl_4967 fuse_conn_limit_read fndecl 3 4967 NULL
150019 +enable_so_team_options_register_fndecl_4968 team_options_register fndecl 3 4968 NULL
150020 +enable_so_radeon_align_pitch_fndecl_4969 radeon_align_pitch fndecl 0-2 4969 NULL
150021 +enable_so_reiserfs_dir_fsync_fndecl_4971 reiserfs_dir_fsync fndecl 2-3 4971 NULL
150022 +enable_so_iwl_mvm_power_mac_dbgfs_read_fndecl_4976 iwl_mvm_power_mac_dbgfs_read fndecl 0 4976 NULL
150023 +enable_so_t_data_nents_se_cmd_4981 t_data_nents se_cmd 0 4981 NULL nohasharray
150024 +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
150025 +enable_so_btrfs_pin_extent_for_log_replay_fndecl_4982 btrfs_pin_extent_for_log_replay fndecl 3-2 4982 NULL
150026 +enable_so_scif_send_fndecl_4988 scif_send fndecl 3 4988 NULL
150027 +enable_so_phy_duplex_pxa168_eth_private_4990 phy_duplex pxa168_eth_private 0 4990 NULL
150028 +enable_so_stripe_unit_ore_layout_4991 stripe_unit ore_layout 0 4991 NULL
150029 +enable_so___mt7601u_dma_fw_fndecl_4994 __mt7601u_dma_fw fndecl 4 4994 NULL
150030 +enable_so_kmem_cache_create_fndecl_5007 kmem_cache_create fndecl 2-3 5007 NULL
150031 +enable_so_read_int_fndecl_5009 read_int fndecl 0 5009 NULL
150032 +enable_so_numEntries__ATOM_PPLIB_SAMClk_Voltage_Limit_Table_5010 numEntries _ATOM_PPLIB_SAMClk_Voltage_Limit_Table 0 5010 NULL
150033 +enable_so_o2net_send_message_fndecl_5012 o2net_send_message fndecl 4 5012 NULL nohasharray
150034 +enable_so_mgmt_limited_event_fndecl_5012 mgmt_limited_event fndecl 4 5012 &enable_so_o2net_send_message_fndecl_5012
150035 +enable_so_xenvif_gop_skb_fndecl_5015 xenvif_gop_skb fndecl 0 5015 NULL
150036 +enable_so_bulk_in_size_usb_idmouse_5017 bulk_in_size usb_idmouse 0 5017 NULL
150037 +enable_so_hard_header_len_net_device_5025 hard_header_len net_device 0 5025 NULL
150038 +enable_so_size_drm_nouveau_notifierobj_alloc_5028 size drm_nouveau_notifierobj_alloc 0 5028 NULL
150039 +enable_so_ubifs_unpack_bits_fndecl_5033 ubifs_unpack_bits fndecl 0-3 5033 NULL
150040 +enable_so_nr_pages_firmware_buf_5039 nr_pages firmware_buf 0 5039 NULL
150041 +enable_so_device_tg3_dev_id_5042 device tg3_dev_id 0 5042 NULL nohasharray
150042 +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
150043 +enable_so_ldebugfs_fid_write_common_fndecl_5049 ldebugfs_fid_write_common fndecl 2 5049 NULL
150044 +enable_so_jffs2_fsync_fndecl_5052 jffs2_fsync fndecl 2-3 5052 NULL
150045 +enable_so_index_squashfs_dir_index_5053 index squashfs_dir_index 0 5053 NULL
150046 +enable_so_rcvidx_IsdnCardState_5055 rcvidx IsdnCardState 0 5055 NULL nohasharray
150047 +enable_so_compress_raw_buf_fndecl_5055 compress_raw_buf fndecl 0 5055 &enable_so_rcvidx_IsdnCardState_5055
150048 +enable_so_offset_SVGAGuestPtr_5056 offset SVGAGuestPtr 0 5056 NULL
150049 +enable_so_ext4_llseek_fndecl_5060 ext4_llseek fndecl 2 5060 NULL
150050 +enable_so_kvm_vcpu_gfn_to_pfn_atomic_fndecl_5062 kvm_vcpu_gfn_to_pfn_atomic fndecl 2 5062 NULL
150051 +enable_so_len_BufferControl_5068 len BufferControl 0 5068 NULL
150052 +enable_so_size_compat_arpt_replace_5071 size compat_arpt_replace 0 5071 NULL
150053 +enable_so_ie_len_cfg80211_scan_request_5073 ie_len cfg80211_scan_request 0 5073 NULL
150054 +enable_so_tomoyo_commit_ok_fndecl_5076 tomoyo_commit_ok fndecl 2 5076 NULL
150055 +enable_so_read_flush_pipefs_fndecl_5080 read_flush_pipefs fndecl 3 5080 NULL
150056 +enable_so_num_slots_input_mt_5088 num_slots input_mt 0 5088 NULL
150057 +enable_so_domain_a_len_ccp_ecc_point_math_5093 domain_a_len ccp_ecc_point_math 0 5093 NULL
150058 +enable_so___radix_tree_create_fndecl_5102 __radix_tree_create fndecl 0 5102 NULL
150059 +enable_so_default_file_splice_write_fndecl_5103 default_file_splice_write fndecl 4 5103 NULL
150060 +enable_so_trusted_set_fndecl_5111 trusted_set fndecl 4 5111 NULL
150061 +enable_so_mem_eni_dev_5112 mem eni_dev 0 5112 NULL
150062 +enable_so_num_banks_adf_hw_device_data_5115 num_banks adf_hw_device_data 0 5115 NULL
150063 +enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117 spi_bits_per_word cw1200_platform_data_spi 0 5117 NULL nohasharray
150064 +enable_so___link_buffer_fndecl_5117 __link_buffer fndecl 2 5117 &enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117
150065 +enable_so_num_gpio_tc3589x_5118 num_gpio tc3589x 0 5118 NULL
150066 +enable_so_replay_log_leb_fndecl_5123 replay_log_leb fndecl 3 5123 NULL
150067 +enable_so_ocfs2_trim_extent_fndecl_5124 ocfs2_trim_extent fndecl 0-3-4 5124 NULL
150068 +enable_so_ceph_alloc_page_vector_fndecl_5125 ceph_alloc_page_vector fndecl 1 5125 NULL
150069 +enable_so_iwl_dbgfs_rx_handlers_read_fndecl_5127 iwl_dbgfs_rx_handlers_read fndecl 3 5127 NULL
150070 +enable_so_ccp_init_sg_workarea_fndecl_5128 ccp_init_sg_workarea fndecl 4 5128 NULL
150071 +enable_so_fuse_dev_splice_write_fndecl_5131 fuse_dev_splice_write fndecl 4 5131 NULL
150072 +enable_so_nfs4_init_callback_netid_fndecl_5134 nfs4_init_callback_netid fndecl 0 5134 NULL
150073 +enable_so_rate_num_snd_pcm_hw_params_5135 rate_num snd_pcm_hw_params 0 5135 NULL
150074 +enable_so_rlen_si2157_cmd_5138 rlen si2157_cmd 0 5138 NULL nohasharray
150075 +enable_so_channel_count_il_priv_5138 channel_count il_priv 0 5138 &enable_so_rlen_si2157_cmd_5138
150076 +enable_so_fnic_stats_debugfs_read_fndecl_5139 fnic_stats_debugfs_read fndecl 3 5139 NULL
150077 +enable_so_echo_client_prep_commit_fndecl_5142 echo_client_prep_commit fndecl 8 5142 NULL
150078 +enable_so_csio_scsi_eqsize_vardecl_5146 csio_scsi_eqsize vardecl 0 5146 NULL
150079 +enable_so_gfar_hwtstamp_get_fndecl_5152 gfar_hwtstamp_get fndecl 0 5152 NULL
150080 +enable_so_ocfs2_iget_fndecl_5154 ocfs2_iget fndecl 2 5154 NULL
150081 +enable_so_total_in_z_stream_s_5155 total_in z_stream_s 0 5155 NULL
150082 +enable_so_stv0297_readregs_fndecl_5156 stv0297_readregs fndecl 4 5156 NULL
150083 +enable_so_o2hb_debug_create_fndecl_5163 o2hb_debug_create fndecl 4 5163 NULL
150084 +enable_so_tx_hdr_len_p54_common_5164 tx_hdr_len p54_common 0 5164 NULL nohasharray
150085 +enable_so_wep_packets_read_fndecl_5164 wep_packets_read fndecl 3 5164 &enable_so_tx_hdr_len_p54_common_5164
150086 +enable_so_indices_ixgbe_ring_feature_5170 indices ixgbe_ring_feature 0 5170 NULL
150087 +enable_so_ext4_es_insert_extent_fndecl_5178 ext4_es_insert_extent fndecl 0-3-2 5178 NULL nohasharray
150088 +enable_so_len_bts_file_action_5178 len bts_file_action 0 5178 &enable_so_ext4_es_insert_extent_fndecl_5178
150089 +enable_so_lpfc_issue_ct_rsp_fndecl_5182 lpfc_issue_ct_rsp fndecl 6 5182 NULL
150090 +enable_so_inofree_iagctl_5194 inofree iagctl 0 5194 NULL
150091 +enable_so_SyS_lsetxattr_fndecl_5195 SyS_lsetxattr fndecl 4 5195 NULL
150092 +enable_so_size_drm_amdgpu_gem_userptr_5196 size drm_amdgpu_gem_userptr 0 5196 NULL
150093 +enable_so_hidp_raw_request_fndecl_5198 hidp_raw_request fndecl 4 5198 NULL
150094 +enable_so_alloc_fcdev_fndecl_5199 alloc_fcdev fndecl 1 5199 NULL
150095 +enable_so_vtbl_size_ubi_device_5209 vtbl_size ubi_device 0 5209 NULL
150096 +enable_so_snd_midi_event_encode_fndecl_5210 snd_midi_event_encode fndecl 0 5210 NULL
150097 +enable_so_hugetlb_entry_mm_walk_5211 hugetlb_entry mm_walk 0 5211 NULL
150098 +enable_so_drm_gem_private_object_init_fndecl_5217 drm_gem_private_object_init fndecl 3 5217 NULL
150099 +enable_so_phys_ichxrom_window_5221 phys ichxrom_window 0 5221 NULL
150100 +enable_so_mmc_test_broken_transfer_fndecl_5224 mmc_test_broken_transfer fndecl 3-2 5224 NULL
150101 +enable_so_sq905_read_data_fndecl_5229 sq905_read_data fndecl 0 5229 NULL
150102 +enable_so_madvise_hwpoison_fndecl_5231 madvise_hwpoison fndecl 2 5231 NULL
150103 +enable_so_nr_extents__ntfs_inode_5242 nr_extents _ntfs_inode 0 5242 NULL
150104 +enable_so_feednum_dvb_demux_5252 feednum dvb_demux 0 5252 NULL
150105 +enable_so_emulate_ss_fndecl_5254 emulate_ss fndecl 2 5254 NULL
150106 +enable_so_len_fstrim_range_5265 len fstrim_range 0 5265 NULL
150107 +enable_so_h_total_aty128_crtc_5275 h_total aty128_crtc 0 5275 NULL nohasharray
150108 +enable_so_sys_modify_ldt_fndecl_5275 sys_modify_ldt fndecl 3 5275 &enable_so_h_total_aty128_crtc_5275
150109 +enable_so_upload_data_fndecl_5277 upload_data fndecl 2 5277 NULL nohasharray
150110 +enable_so_fi_extents_max_fiemap_extent_info_5277 fi_extents_max fiemap_extent_info 0 5277 &enable_so_upload_data_fndecl_5277
150111 +enable_so_xlog_find_verify_log_record_fndecl_5285 xlog_find_verify_log_record fndecl 2 5285 NULL
150112 +enable_so_ieee80211_if_read_element_ttl_fndecl_5286 ieee80211_if_read_element_ttl fndecl 3 5286 NULL
150113 +enable_so_count_mpc8xxx_spi_5287 count mpc8xxx_spi 0 5287 NULL
150114 +enable_so_dma_offset_freelQ_5299 dma_offset freelQ 0 5299 NULL nohasharray
150115 +enable_so_lpt_hght_ubifs_info_5299 lpt_hght ubifs_info 0 5299 &enable_so_dma_offset_freelQ_5299
150116 +enable_so_drm_ht_create_fndecl_5302 drm_ht_create fndecl 2 5302 NULL
150117 +enable_so_sctp_setsockopt_events_fndecl_5309 sctp_setsockopt_events fndecl 3 5309 NULL
150118 +enable_so_beep_amp_alc_spec_5315 beep_amp alc_spec 0 5315 NULL
150119 +enable_so_devm_mdiobus_alloc_size_fndecl_5317 devm_mdiobus_alloc_size fndecl 2 5317 NULL
150120 +enable_so_matchsize_xt_match_5320 matchsize xt_match 0 5320 NULL
150121 +enable_so____alloc_bootmem_node_fndecl_5329 ___alloc_bootmem_node fndecl 3-2-4-5 5329 NULL nohasharray
150122 +enable_so_tcp_try_undo_partial_fndecl_5329 tcp_try_undo_partial fndecl 2 5329 &enable_so____alloc_bootmem_node_fndecl_5329
150123 +enable_so_scsi_change_queue_depth_fndecl_5330 scsi_change_queue_depth fndecl 2 5330 NULL
150124 +enable_so_get_cramfs_inode_fndecl_5332 get_cramfs_inode fndecl 3 5332 NULL
150125 +enable_so_jfs_quota_read_fndecl_5341 jfs_quota_read fndecl 5 5341 NULL
150126 +enable_so_comedi_isadma_alloc_fndecl_5342 comedi_isadma_alloc fndecl 2 5342 NULL
150127 +enable_so_get_cr3_kvm_mmu_5347 get_cr3 kvm_mmu 0 5347 NULL
150128 +enable_so_data_count_iscsi_task_5350 data_count iscsi_task 0 5350 NULL
150129 +enable_so_brcmf_usb_send_ctl_fndecl_5357 brcmf_usb_send_ctl fndecl 3 5357 NULL
150130 +enable_so_compute_blocknr_fndecl_5361 compute_blocknr fndecl 0-2 5361 NULL nohasharray
150131 +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
150132 +enable_so_ceph_setxattr_fndecl_5362 ceph_setxattr fndecl 4 5362 NULL
150133 +enable_so_michael_mic_fndecl_5363 michael_mic fndecl 5 5363 NULL
150134 +enable_so_nfs4_proc_readdir_fndecl_5367 nfs4_proc_readdir fndecl 5 5367 NULL
150135 +enable_so_xfs_buf_read_uncached_fndecl_5369 xfs_buf_read_uncached fndecl 3-2 5369 NULL
150136 +enable_so_mangle_packet_fndecl_5371 mangle_packet fndecl 7-9 5371 NULL
150137 +enable_so_ieee80211_rx_mgmt_disassoc_fndecl_5372 ieee80211_rx_mgmt_disassoc fndecl 3 5372 NULL
150138 +enable_so_mwifiex_write_data_to_card_fndecl_5375 mwifiex_write_data_to_card fndecl 3 5375 NULL
150139 +enable_so_max_header_size_irlan_client_cb_5378 max_header_size irlan_client_cb 0 5378 NULL nohasharray
150140 +enable_so_block_size_squashfs_sb_info_5378 block_size squashfs_sb_info 0 5378 &enable_so_max_header_size_irlan_client_cb_5378
150141 +enable_so_skbprio_ip_set_ext_5381 skbprio ip_set_ext 0 5381 NULL nohasharray
150142 +enable_so_flash_dev_cache_miss_fndecl_5381 flash_dev_cache_miss fndecl 4 5381 &enable_so_skbprio_ip_set_ext_5381
150143 +enable_so_regset_tls_set_fndecl_5384 regset_tls_set fndecl 4 5384 NULL
150144 +enable_so_fuse_perform_write_fndecl_5386 fuse_perform_write fndecl 4-0 5386 NULL
150145 +enable_so_check_iommu_size_fndecl_5390 check_iommu_size fndecl 0-2-1 5390 NULL
150146 +enable_so_pcibios_window_alignment_fndecl_5391 pcibios_window_alignment fndecl 0 5391 NULL
150147 +enable_so_iscsi_create_flashnode_sess_fndecl_5394 iscsi_create_flashnode_sess fndecl 4 5394 NULL
150148 +enable_so_snd_hda_get_connections_fndecl_5398 snd_hda_get_connections fndecl 0 5398 NULL
150149 +enable_so_len_iw_mgmt_info_element_5411 len iw_mgmt_info_element 0 5411 NULL
150150 +enable_so_udpv6_setsockopt_fndecl_5412 udpv6_setsockopt fndecl 5 5412 NULL
150151 +enable_so_session_key_encryption_key_bytes_ecryptfs_password_5413 session_key_encryption_key_bytes ecryptfs_password 0 5413 NULL
150152 +enable_so_value_xen_pci_op_5416 value xen_pci_op 0 5416 NULL
150153 +enable_so_allocmin_nilfs_sufile_info_5418 allocmin nilfs_sufile_info 0 5418 NULL
150154 +enable_so_reg_size_intel_iommu_5423 reg_size intel_iommu 0 5423 NULL nohasharray
150155 +enable_so_ino_ncp_entry_info_5423 ino ncp_entry_info 0 5423 &enable_so_reg_size_intel_iommu_5423 nohasharray
150156 +enable_so_nilfs_sufile_truncate_range_fndecl_5423 nilfs_sufile_truncate_range fndecl 3-2 5423 &enable_so_ino_ncp_entry_info_5423
150157 +enable_so_port_mad_size_fndecl_5434 port_mad_size fndecl 0 5434 NULL
150158 +enable_so_sigmadsp_read_i2c_fndecl_5435 sigmadsp_read_i2c fndecl 4 5435 NULL
150159 +enable_so_size_drm_radeon_gem_create_5440 size drm_radeon_gem_create 0 5440 NULL
150160 +enable_so_vlen_nfsd_writeargs_5461 vlen nfsd_writeargs 0 5461 NULL
150161 +enable_so_btrfs_fiemap_fndecl_5462 btrfs_fiemap fndecl 4-3 5462 NULL
150162 +enable_so_num_stations_il_priv_5465 num_stations il_priv 0 5465 NULL
150163 +enable_so_acpi_register_gsi_ioapic_fndecl_5477 acpi_register_gsi_ioapic fndecl 2 5477 NULL
150164 +enable_so_y_drm_vmw_rect_5478 y drm_vmw_rect 0 5478 NULL
150165 +enable_so_max_pkeys_mthca_dev_lim_5481 max_pkeys mthca_dev_lim 0 5481 NULL
150166 +enable_so_efs_find_entry_fndecl_5485 efs_find_entry fndecl 0 5485 NULL
150167 +enable_so_valuelen_xfs_attr_sf_entry_5490 valuelen xfs_attr_sf_entry 0 5490 NULL
150168 +enable_so_block_isofs_fid_5500 block isofs_fid 0 5500 NULL nohasharray
150169 +enable_so_seq_copy_in_user_fndecl_5500 seq_copy_in_user fndecl 3 5500 &enable_so_block_isofs_fid_5500
150170 +enable_so_s_fpb_ufs_sb_private_info_5504 s_fpb ufs_sb_private_info 0 5504 NULL
150171 +enable_so_f_width_camif_frame_5509 f_width camif_frame 0 5509 NULL
150172 +enable_so___tipc_sendmsg_fndecl_5510 __tipc_sendmsg fndecl 3 5510 NULL
150173 +enable_so_wiidebug_eeprom_read_fndecl_5523 wiidebug_eeprom_read fndecl 3 5523 NULL
150174 +enable_so_smk_write_rules_list_fndecl_5526 smk_write_rules_list fndecl 3 5526 NULL
150175 +enable_so_line_slgt_info_5527 line slgt_info 0 5527 NULL
150176 +enable_so_ceph_tcp_sendpage_fndecl_5531 ceph_tcp_sendpage fndecl 0-4 5531 NULL
150177 +enable_so_debug_output_fndecl_5532 debug_output fndecl 3 5532 NULL nohasharray
150178 +enable_so_tool_dbfn_read_fndecl_5532 tool_dbfn_read fndecl 3 5532 &enable_so_debug_output_fndecl_5532
150179 +enable_so_batadv_arp_get_type_fndecl_5538 batadv_arp_get_type fndecl 3 5538 NULL nohasharray
150180 +enable_so_sq_cnt_queue_set_5538 sq_cnt queue_set 0 5538 &enable_so_batadv_arp_get_type_fndecl_5538 nohasharray
150181 +enable_so___vmalloc_node_range_fndecl_5538 __vmalloc_node_range fndecl 1-3 5538 &enable_so_sq_cnt_queue_set_5538
150182 +enable_so_vector_acpi_hest_notify_5540 vector acpi_hest_notify 0 5540 NULL
150183 +enable_so_logical_ext4_allocation_request_5548 logical ext4_allocation_request 0 5548 NULL nohasharray
150184 +enable_so_mlx5_create_flow_table_fndecl_5548 mlx5_create_flow_table fndecl 4 5548 &enable_so_logical_ext4_allocation_request_5548
150185 +enable_so___netdev_alloc_skb_fndecl_5552 __netdev_alloc_skb fndecl 2 5552 NULL
150186 +enable_so_filemap_fdatawait_range_fndecl_5563 filemap_fdatawait_range fndecl 0 5563 NULL nohasharray
150187 +enable_so_slabinfo_write_fndecl_5563 slabinfo_write fndecl 3 5563 &enable_so_filemap_fdatawait_range_fndecl_5563
150188 +enable_so_nfs41_maxread_overhead_vardecl_5564 nfs41_maxread_overhead vardecl 0 5564 NULL
150189 +enable_so_iowarrior_write_fndecl_5567 iowarrior_write fndecl 3 5567 NULL
150190 +enable_so_ihl_xfrm_mode_skb_cb_5571 ihl xfrm_mode_skb_cb 0 5571 NULL nohasharray
150191 +enable_so_session_udf_options_5571 session udf_options 0 5571 &enable_so_ihl_xfrm_mode_skb_cb_5571
150192 +enable_so___dev_set_mtu_fndecl_5572 __dev_set_mtu fndecl 2 5572 NULL
150193 +enable_so_nblocks_range2trim_5574 nblocks range2trim 0 5574 NULL
150194 +enable_so_i2c_read_eeprom_fndecl_5583 i2c_read_eeprom fndecl 5 5583 NULL
150195 +enable_so_nfqnl_get_sk_secctx_fndecl_5586 nfqnl_get_sk_secctx fndecl 0 5586 NULL nohasharray
150196 +enable_so_from_buffer_fndecl_5586 from_buffer fndecl 3 5586 &enable_so_nfqnl_get_sk_secctx_fndecl_5586
150197 +enable_so_ext4_xattr_security_set_fndecl_5594 ext4_xattr_security_set fndecl 4 5594 NULL nohasharray
150198 +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
150199 +enable_so_num_scanouts_virtio_gpu_device_5598 num_scanouts virtio_gpu_device 0 5598 NULL
150200 +enable_so_memory_map_bottom_up_fndecl_5599 memory_map_bottom_up fndecl 1-2 5599 NULL nohasharray
150201 +enable_so_size_sched_attr_5599 size sched_attr 0 5599 &enable_so_memory_map_bottom_up_fndecl_5599
150202 +enable_so_nftl_write_fndecl_5605 nftl_write fndecl 2 5605 NULL
150203 +enable_so_pbl_base_rdma_info_5607 pbl_base rdma_info 0 5607 NULL
150204 +enable_so_snd_pcm_oss_write3_fndecl_5618 snd_pcm_oss_write3 fndecl 0 5618 NULL
150205 +enable_so_odata_dma_usb_xpad_5619 odata_dma usb_xpad 0 5619 NULL
150206 +enable_so_shmem_fallocate_fndecl_5621 shmem_fallocate fndecl 3-4 5621 NULL
150207 +enable_so_xfs_iext_insert_fndecl_5624 xfs_iext_insert fndecl 3 5624 NULL
150208 +enable_so_c_irotor_ufs_cg_private_info_5628 c_irotor ufs_cg_private_info 0 5628 NULL nohasharray
150209 +enable_so_gtt_end_radeon_mc_5628 gtt_end radeon_mc 0 5628 &enable_so_c_irotor_ufs_cg_private_info_5628
150210 +enable_so_max_sectors_ide_port_info_5629 max_sectors ide_port_info 0 5629 NULL
150211 +enable_so_id_iio_dev_5631 id iio_dev 0 5631 NULL
150212 +enable_so_wbcir_tx_fndecl_5632 wbcir_tx fndecl 3 5632 NULL
150213 +enable_so_screen_width_vardecl_hyperv_fb_c_5635 screen_width vardecl_hyperv_fb.c 0 5635 NULL nohasharray
150214 +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
150215 +enable_so_dev_counters_read_fndecl_5635 dev_counters_read fndecl 3 5635 &enable_so_platform_mmio_alloc_vardecl_platform_pci_c_5635
150216 +enable_so_num_counters_compat_ip6t_replace_5636 num_counters compat_ip6t_replace 0 5636 NULL
150217 +enable_so_udpv6_recvmsg_fndecl_5638 udpv6_recvmsg fndecl 3 5638 NULL
150218 +enable_so_ring_buffer_size_vardecl_ldusb_c_5645 ring_buffer_size vardecl_ldusb.c 0 5645 NULL
150219 +enable_so_efi_memdesc_size_efi_info_5654 efi_memdesc_size efi_info 0 5654 NULL nohasharray
150220 +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
150221 +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
150222 +enable_so___spi_map_msg_fndecl_5657 __spi_map_msg fndecl 0 5657 NULL nohasharray
150223 +enable_so_dev_id_pci_id_descr_5657 dev_id pci_id_descr 0 5657 &enable_so___spi_map_msg_fndecl_5657
150224 +enable_so_isert_put_login_tx_fndecl_5660 isert_put_login_tx fndecl 3 5660 NULL
150225 +enable_so_block_mask_htc_target_5671 block_mask htc_target 0 5671 NULL
150226 +enable_so_sgl_read_to_frags_fndecl_5672 sgl_read_to_frags fndecl 3-2 5672 NULL
150227 +enable_so_mtu_ppp_channel_5679 mtu ppp_channel 0 5679 NULL nohasharray
150228 +enable_so_blklen_regcache_rbtree_node_5679 blklen regcache_rbtree_node 0 5679 &enable_so_mtu_ppp_channel_5679 nohasharray
150229 +enable_so_ucma_query_fndecl_5679 ucma_query fndecl 4 5679 &enable_so_blklen_regcache_rbtree_node_5679
150230 +enable_so_ext4_es_alloc_extent_fndecl_5681 ext4_es_alloc_extent fndecl 2-3 5681 NULL
150231 +enable_so_bio_alloc_mddev_fndecl_5685 bio_alloc_mddev fndecl 2 5685 NULL
150232 +enable_so_lbtf_cmd_async_fndecl_5691 lbtf_cmd_async fndecl 4 5691 NULL
150233 +enable_so_s_blocks_count_ext2_super_block_5695 s_blocks_count ext2_super_block 0 5695 NULL
150234 +enable_so_il_dbgfs_rxon_filter_flags_read_fndecl_5698 il_dbgfs_rxon_filter_flags_read fndecl 3 5698 NULL
150235 +enable_so_write_bytes_to_xdr_buf_fndecl_5702 write_bytes_to_xdr_buf fndecl 4-2 5702 NULL
150236 +enable_so_cfg80211_rx_unprot_mlme_mgmt_fndecl_5707 cfg80211_rx_unprot_mlme_mgmt fndecl 3 5707 NULL nohasharray
150237 +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
150238 +enable_so_virtnet_change_mtu_fndecl_5709 virtnet_change_mtu fndecl 2 5709 NULL
150239 +enable_so_zm_wmfw_adsp1_alg_hdr_5710 zm wmfw_adsp1_alg_hdr 0 5710 NULL
150240 +enable_so_raw_send_hdrinc_fndecl_5711 raw_send_hdrinc fndecl 4 5711 NULL
150241 +enable_so_sys_fcntl_fndecl_5712 sys_fcntl fndecl 3 5712 NULL
150242 +enable_so_in_attr_len_ore_io_state_5713 in_attr_len ore_io_state 0 5713 NULL
150243 +enable_so_vt_hdr_vxfs_typed_5715 vt_hdr vxfs_typed 0 5715 NULL
150244 +enable_so_hfsplus_get_block_fndecl_5725 hfsplus_get_block fndecl 2 5725 NULL
150245 +enable_so_debug_read_fndecl_5737 debug_read fndecl 3 5737 NULL
150246 +enable_so_max_order_mlx4_buddy_5738 max_order mlx4_buddy 0 5738 NULL
150247 +enable_so_scrbuf_sisusb_usb_data_5749 scrbuf sisusb_usb_data 0 5749 NULL
150248 +enable_so_event_tx_stuck_read_fndecl_5754 event_tx_stuck_read fndecl 3 5754 NULL
150249 +enable_so_skb_checksum_maybe_trim_fndecl_5755 skb_checksum_maybe_trim fndecl 2 5755 NULL
150250 +enable_so_nci_prop_cmd_fndecl_5756 nci_prop_cmd fndecl 3 5756 NULL
150251 +enable_so_s_journal_inum_ext4_super_block_5759 s_journal_inum ext4_super_block 0 5759 NULL
150252 +enable_so_setup_extent_mapping_fndecl_5768 setup_extent_mapping fndecl 3-2-4 5768 NULL
150253 +enable_so_copy_align_dma_device_5783 copy_align dma_device 0 5783 NULL
150254 +enable_so_xfs_map_at_offset_fndecl_5785 xfs_map_at_offset fndecl 4 5785 NULL
150255 +enable_so_console_size_ramoops_platform_data_5786 console_size ramoops_platform_data 0 5786 NULL
150256 +enable_so_mc_handle_file_pte_fndecl_5787 mc_handle_file_pte fndecl 2 5787 NULL
150257 +enable_so_bq32k_read_fndecl_5789 bq32k_read fndecl 4 5789 NULL
150258 +enable_so_pci_mem_start_vardecl_5790 pci_mem_start vardecl 0 5790 NULL
150259 +enable_so_p9_check_zc_errors_fndecl_5806 p9_check_zc_errors fndecl 4 5806 NULL
150260 +enable_so_usb_ftdi_elan_edset_output_fndecl_5808 usb_ftdi_elan_edset_output fndecl 0 5808 NULL
150261 +enable_so_ubifs_recover_size_accum_fndecl_5809 ubifs_recover_size_accum fndecl 4 5809 NULL nohasharray
150262 +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
150263 +enable_so_length_uwb_ie_hdr_5811 length uwb_ie_hdr 0 5811 NULL nohasharray
150264 +enable_so_firmware_data_write_fndecl_5811 firmware_data_write fndecl 6-5 5811 &enable_so_length_uwb_ie_hdr_5811
150265 +enable_so_ncp_read_bounce_fndecl_5812 ncp_read_bounce fndecl 8 5812 NULL
150266 +enable_so_compr_flush_fndecl_5826 compr_flush fndecl 2 5826 NULL
150267 +enable_so_hid_hw_raw_request_fndecl_5827 hid_hw_raw_request fndecl 0 5827 NULL
150268 +enable_so_zlib_decompress_biovec_fndecl_5829 zlib_decompress_biovec fndecl 6 5829 NULL
150269 +enable_so_dvbdmx_write_fndecl_5836 dvbdmx_write fndecl 3 5836 NULL
150270 +enable_so_synproxy_options_size_fndecl_5837 synproxy_options_size fndecl 0 5837 NULL
150271 +enable_so_interpret_user_input_fndecl_5842 interpret_user_input fndecl 2 5842 NULL
150272 +enable_so_transferred_vardecl_shuttle_usbat_c_5845 transferred vardecl_shuttle_usbat.c 0 5845 NULL
150273 +enable_so_sync_fill_pt_info_fndecl_5846 sync_fill_pt_info fndecl 0 5846 NULL
150274 +enable_so_v9fs_xattr_security_set_fndecl_5847 v9fs_xattr_security_set fndecl 4 5847 NULL
150275 +enable_so_get_n_events_by_type_fndecl_5850 get_n_events_by_type fndecl 0 5850 NULL
150276 +enable_so_sound_insert_unit_fndecl_5861 sound_insert_unit fndecl 3-4 5861 NULL
150277 +enable_so_SyS_sched_getaffinity_fndecl_5863 SyS_sched_getaffinity fndecl 2 5863 NULL
150278 +enable_so_len_hv_mpb_array_5864 len hv_mpb_array 0 5864 NULL
150279 +enable_so_um_size_bcm5974_config_5867 um_size bcm5974_config 0 5867 NULL
150280 +enable_so_e1000_receive_skb_fndecl_5875 e1000_receive_skb fndecl 5 5875 NULL
150281 +enable_so_sq_db_page_mthca_create_qp_5878 sq_db_page mthca_create_qp 0 5878 NULL nohasharray
150282 +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
150283 +enable_so_rb_page_offset_nicvf_5878 rb_page_offset nicvf 0 5878 &enable_so_get_rx_status_altera_dmaops_5878
150284 +enable_so_cydata_ofsh_cyttsp4_sysinfo_data_5887 cydata_ofsh cyttsp4_sysinfo_data 0 5887 NULL
150285 +enable_so_max_sg_count_hpt_iop_request_get_config_5890 max_sg_count hpt_iop_request_get_config 0 5890 NULL
150286 +enable_so_force_max_req_size_vardecl_vub300_c_5891 force_max_req_size vardecl_vub300.c 0 5891 NULL
150287 +enable_so_dma_common_pages_remap_fndecl_5893 dma_common_pages_remap fndecl 2 5893 NULL
150288 +enable_so_size_squashfs_dir_entry_5896 size squashfs_dir_entry 0 5896 NULL
150289 +enable_so___nla_reserve_fndecl_5901 __nla_reserve fndecl 3 5901 NULL
150290 +enable_so_iproc_asiu_setup_fndecl_5902 iproc_asiu_setup fndecl 4 5902 NULL
150291 +enable_so_priv_size_dsa_switch_driver_5905 priv_size dsa_switch_driver 0 5905 NULL
150292 +enable_so_alloc_rx_slot_fndecl_5908 alloc_rx_slot fndecl 0 5908 NULL
150293 +enable_so_bytes_drm_i915_error_state_buf_5909 bytes drm_i915_error_state_buf 0 5909 NULL
150294 +enable_so_sctp_tsnmap_num_gabs_fndecl_5915 sctp_tsnmap_num_gabs fndecl 0 5915 NULL
150295 +enable_so_buffer_len_async_pdu_handle_5928 buffer_len async_pdu_handle 0 5928 NULL
150296 +enable_so_resp_caching_pg_fndecl_5930 resp_caching_pg fndecl 0 5930 NULL
150297 +enable_so_ocfs2_reflink_xattr_buckets_fndecl_5931 ocfs2_reflink_xattr_buckets fndecl 7 5931 NULL
150298 +enable_so_layout_in_gaps_fndecl_5933 layout_in_gaps fndecl 2 5933 NULL
150299 +enable_so_intel_gtt_unmap_memory_fndecl_5935 intel_gtt_unmap_memory fndecl 2 5935 NULL
150300 +enable_so_max_attributes_pmbus_data_5939 max_attributes pmbus_data 0 5939 NULL
150301 +enable_so_ide_config_drive_speed_fndecl_5940 ide_config_drive_speed fndecl 2 5940 NULL
150302 +enable_so_gfn_to_pfn_atomic_fndecl_5942 gfn_to_pfn_atomic fndecl 2 5942 NULL
150303 +enable_so_buffer_blocks_osst_buffer_5944 buffer_blocks osst_buffer 0 5944 NULL
150304 +enable_so_max_header_size_irda_sock_5950 max_header_size irda_sock 0 5950 NULL
150305 +enable_so_height_tm6000_fh_5952 height tm6000_fh 0 5952 NULL
150306 +enable_so_count_w6692B_hw_5953 count w6692B_hw 0 5953 NULL
150307 +enable_so_len_ias_value_5959 len ias_value 0 5959 NULL
150308 +enable_so_tx_hdrlen_brcmf_sdio_5961 tx_hdrlen brcmf_sdio 0 5961 NULL
150309 +enable_so_viafb_second_size_vardecl_viafbdev_c_5965 viafb_second_size vardecl_viafbdev.c 0 5965 NULL
150310 +enable_so_allocmax_nilfs_sufile_info_5969 allocmax nilfs_sufile_info 0 5969 NULL
150311 +enable_so_f2fs_setxattr_fndecl_5975 f2fs_setxattr fndecl 5 5975 NULL
150312 +enable_so_nfsd4_encode_dirent_fndecl_5983 nfsd4_encode_dirent fndecl 3 5983 NULL nohasharray
150313 +enable_so_do_rc_ack_fndecl_5983 do_rc_ack fndecl 3 5983 &enable_so_nfsd4_encode_dirent_fndecl_5983
150314 +enable_so_create_gpadl_header_fndecl_5995 create_gpadl_header fndecl 2 5995 NULL
150315 +enable_so_acpi_install_table_fndecl_6000 acpi_install_table fndecl 1 6000 NULL nohasharray
150316 +enable_so_revalidate_fndecl_6000 revalidate fndecl 2 6000 &enable_so_acpi_install_table_fndecl_6000 nohasharray
150317 +enable_so_snd_hdac_read_parm_uncached_fndecl_6000 snd_hdac_read_parm_uncached fndecl 0 6000 &enable_so_revalidate_fndecl_6000
150318 +enable_so_clk_recalc_fndecl_6001 clk_recalc fndecl 0-2 6001 NULL
150319 +enable_so_drm_fb_helper_init_fndecl_6007 drm_fb_helper_init fndecl 3-4 6007 NULL nohasharray
150320 +enable_so_map_words_netvsc_device_6007 map_words netvsc_device 0 6007 &enable_so_drm_fb_helper_init_fndecl_6007
150321 +enable_so_afs_vnode_store_data_fndecl_6011 afs_vnode_store_data fndecl 4-5 6011 NULL
150322 +enable_so_orig_sg_segs_osst_buffer_6013 orig_sg_segs osst_buffer 0 6013 NULL
150323 +enable_so_sys_process_vm_readv_fndecl_6017 sys_process_vm_readv fndecl 3-5 6017 NULL nohasharray
150324 +enable_so_brcmf_usbdev_qinit_fndecl_6017 brcmf_usbdev_qinit fndecl 2 6017 &enable_so_sys_process_vm_readv_fndecl_6017
150325 +enable_so_max_discard_sectors_queue_limits_6023 max_discard_sectors queue_limits 0 6023 NULL
150326 +enable_so_wqe_cnt_mlx5_ib_wq_6024 wqe_cnt mlx5_ib_wq 0 6024 NULL
150327 +enable_so_flags_rtl8180_rx_desc_6025 flags rtl8180_rx_desc 0 6025 NULL nohasharray
150328 +enable_so_icv_trunc_len_ah_data_6025 icv_trunc_len ah_data 0 6025 &enable_so_flags_rtl8180_rx_desc_6025
150329 +enable_so_xlog_bwrite_fndecl_6028 xlog_bwrite fndecl 2 6028 NULL
150330 +enable_so_msix_map_region_fndecl_6035 msix_map_region fndecl 2 6035 NULL
150331 +enable_so_ceph_create_snap_context_fndecl_6041 ceph_create_snap_context fndecl 1 6041 NULL
150332 +enable_so_cmipci_sb_reg_decode_fndecl_6048 cmipci_sb_reg_decode fndecl 2 6048 NULL
150333 +enable_so_n_ssids_cfg80211_scan_request_6049 n_ssids cfg80211_scan_request 0 6049 NULL
150334 +enable_so_scif_rb_space_fndecl_6052 scif_rb_space fndecl 0 6052 NULL
150335 +enable_so_dmi_len_vardecl_dmi_scan_c_6054 dmi_len vardecl_dmi_scan.c 0 6054 NULL nohasharray
150336 +enable_so_ext4_inode_table_fndecl_6054 ext4_inode_table fndecl 0 6054 &enable_so_dmi_len_vardecl_dmi_scan_c_6054
150337 +enable_so_map_base_tpm_inf_dev_6056 map_base tpm_inf_dev 0 6056 NULL
150338 +enable_so_spu_base_info_size_ipath_user_info_6059 spu_base_info_size ipath_user_info 0 6059 NULL
150339 +enable_so_scsi_debug_dev_size_mb_vardecl_scsi_debug_c_6060 scsi_debug_dev_size_mb vardecl_scsi_debug.c 0 6060 NULL
150340 +enable_so_sta_last_seq_ctrl_read_fndecl_6065 sta_last_seq_ctrl_read fndecl 3 6065 NULL
150341 +enable_so_count_vardecl_speedtest_c_6069 count vardecl_speedtest.c 0 6069 NULL
150342 +enable_so_cifs_readv_from_socket_fndecl_6070 cifs_readv_from_socket fndecl 0-4-3 6070 NULL
150343 +enable_so_length_hci_ev_le_advertising_info_6074 length hci_ev_le_advertising_info 0 6074 NULL
150344 +enable_so_elog_len_extlog_l1_head_6075 elog_len extlog_l1_head 0 6075 NULL
150345 +enable_so_ioctx_alloc_fndecl_6081 ioctx_alloc fndecl 1 6081 NULL
150346 +enable_so_remote_miu_nfc_llcp_sock_6088 remote_miu nfc_llcp_sock 0 6088 NULL nohasharray
150347 +enable_so_pcifront_scan_root_fndecl_6088 pcifront_scan_root fndecl 3 6088 &enable_so_remote_miu_nfc_llcp_sock_6088
150348 +enable_so_channel_num_ad9523_channel_spec_6095 channel_num ad9523_channel_spec 0 6095 NULL
150349 +enable_so___gfs2_xattr_set_fndecl_6098 __gfs2_xattr_set fndecl 4 6098 NULL
150350 +enable_so_alloc_irdadev_fndecl_6103 alloc_irdadev fndecl 1 6103 NULL
150351 +enable_so_rate_min_snd_pcm_hardware_6109 rate_min snd_pcm_hardware 0 6109 NULL nohasharray
150352 +enable_so_blkdev_issue_discard_fndecl_6109 blkdev_issue_discard fndecl 0-2-3 6109 &enable_so_rate_min_snd_pcm_hardware_6109
150353 +enable_so_resid_scsi_data_buffer_6113 resid scsi_data_buffer 0 6113 NULL
150354 +enable_so_ilf_blkno_xfs_inode_log_format_6118 ilf_blkno xfs_inode_log_format 0 6118 NULL nohasharray
150355 +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
150356 +enable_so_hblank_panel_info_6122 hblank panel_info 0 6122 NULL
150357 +enable_so_vmw_user_dmabuf_alloc_fndecl_6126 vmw_user_dmabuf_alloc fndecl 3 6126 NULL
150358 +enable_so_pwc_get_fps_Kiara_fndecl_6127 pwc_get_fps_Kiara fndecl 0 6127 NULL
150359 +enable_so_smk_write_access2_fndecl_6129 smk_write_access2 fndecl 3 6129 NULL
150360 +enable_so_buf_count_slgt_desc_6140 buf_count slgt_desc 0 6140 NULL
150361 +enable_so_max_gs_mlx5_ib_wq_6148 max_gs mlx5_ib_wq 0 6148 NULL
150362 +enable_so_pwr_enable_ps_read_fndecl_6149 pwr_enable_ps_read fndecl 3 6149 NULL
150363 +enable_so_fts_ieee80211_device_6153 fts ieee80211_device 0 6153 NULL
150364 +enable_so_name_len_f2fs_dir_entry_6154 name_len f2fs_dir_entry 0 6154 NULL
150365 +enable_so_gfn_to_pfn_memslot_fndecl_6158 gfn_to_pfn_memslot fndecl 2 6158 NULL
150366 +enable_so_buf_size_rte_log_le_6160 buf_size rte_log_le 0 6160 NULL nohasharray
150367 +enable_so_udf_read_tagged_fndecl_6160 udf_read_tagged fndecl 2 6160 &enable_so_buf_size_rte_log_le_6160
150368 +enable_so_kernel_write_fndecl_6162 kernel_write fndecl 3-0 6162 NULL
150369 +enable_so_rcl_nrefcalls_referring_call_list_6169 rcl_nrefcalls referring_call_list 0 6169 NULL
150370 +enable_so_dsp_tone_hw_message_fndecl_6173 dsp_tone_hw_message fndecl 3 6173 NULL
150371 +enable_so_m_agirotor_xfs_mount_6177 m_agirotor xfs_mount 0 6177 NULL
150372 +enable_so_fs_descs_count_ffs_data_6179 fs_descs_count ffs_data 0 6179 NULL
150373 +enable_so_sensor_write_regs_fndecl_6181 sensor_write_regs fndecl 0 6181 NULL
150374 +enable_so_arizona_calc_fratio_fndecl_6185 arizona_calc_fratio fndecl 0 6185 NULL
150375 +enable_so_start_mtd_oob_buf64_6198 start mtd_oob_buf64 0 6198 NULL
150376 +enable_so___einj_error_trigger_fndecl_6200 __einj_error_trigger fndecl 1 6200 NULL nohasharray
150377 +enable_so_venus_rename_fndecl_6200 venus_rename fndecl 4-5 6200 &enable_so___einj_error_trigger_fndecl_6200
150378 +enable_so_height_linux_logo_6207 height linux_logo 0 6207 NULL nohasharray
150379 +enable_so_digi_write_oob_command_fndecl_6207 digi_write_oob_command fndecl 3 6207 &enable_so_height_linux_logo_6207
150380 +enable_so_index_lola_stream_6210 index lola_stream 0 6210 NULL nohasharray
150381 +enable_so_dac_channels_pcm_oxygen_model_6210 dac_channels_pcm oxygen_model 0 6210 &enable_so_index_lola_stream_6210
150382 +enable_so_val_bits_regmap_config_6218 val_bits regmap_config 0 6218 NULL
150383 +enable_so_sc_ssid_len_wl18xx_event_mailbox_6223 sc_ssid_len wl18xx_event_mailbox 0 6223 NULL
150384 +enable_so___vlan_vid_del_fndecl_6228 __vlan_vid_del fndecl 3 6228 NULL
150385 +enable_so_exofs_read_lookup_dev_table_fndecl_6230 exofs_read_lookup_dev_table fndecl 3 6230 NULL
150386 +enable_so_bytenr_backref_node_6238 bytenr backref_node 0 6238 NULL
150387 +enable_so_setup_sgl_fndecl_6242 setup_sgl fndecl 4-5 6242 NULL
150388 +enable_so_ag_xfs_fstrm_item_6243 ag xfs_fstrm_item 0 6243 NULL
150389 +enable_so_mode_offset_pktcdvd_device_6248 mode_offset pktcdvd_device 0 6248 NULL
150390 +enable_so_rxq_cnt_tg3_6249 rxq_cnt tg3 0 6249 NULL
150391 +enable_so_ubifs_leb_change_fndecl_6254 ubifs_leb_change fndecl 4 6254 NULL
150392 +enable_so_brcmf_usb_attach_fndecl_6261 brcmf_usb_attach fndecl 2-3 6261 NULL
150393 +enable_so_blkno_xfs_bmalloca_6265 blkno xfs_bmalloca 0 6265 NULL nohasharray
150394 +enable_so_bNumInterfaces_usb_config_descriptor_6265 bNumInterfaces usb_config_descriptor 0 6265 &enable_so_blkno_xfs_bmalloca_6265
150395 +enable_so_xs_setup_xprt_fndecl_6266 xs_setup_xprt fndecl 3-2 6266 NULL
150396 +enable_so_size_drm_vmw_alloc_dmabuf_req_6273 size drm_vmw_alloc_dmabuf_req 0 6273 NULL
150397 +enable_so_vb2_dma_sg_get_userptr_fndecl_6274 vb2_dma_sg_get_userptr fndecl 2-3 6274 NULL
150398 +enable_so_sb_nextnum_nilfs_segment_buffer_6275 sb_nextnum nilfs_segment_buffer 0 6275 NULL
150399 +enable_so_command_setsensorfps_fndecl_6277 command_setsensorfps fndecl 0 6277 NULL
150400 +enable_so_nrealwriters_stress_lock_torture_cxt_6279 nrealwriters_stress lock_torture_cxt 0 6279 NULL
150401 +enable_so_copy_out_args_fndecl_6283 copy_out_args fndecl 3 6283 NULL
150402 +enable_so_regmap_i2c_gather_write_fndecl_6284 regmap_i2c_gather_write fndecl 3-5 6284 NULL nohasharray
150403 +enable_so_data_len_op_arr_write_6284 data_len op_arr_write 0 6284 &enable_so_regmap_i2c_gather_write_fndecl_6284
150404 +enable_so_gnet_stats_copy_app_fndecl_6286 gnet_stats_copy_app fndecl 3 6286 NULL
150405 +enable_so__snd_pcm_lib_alloc_vmalloc_buffer_fndecl_6287 _snd_pcm_lib_alloc_vmalloc_buffer fndecl 2 6287 NULL
150406 +enable_so_hOver_plus_panel_info_6297 hOver_plus panel_info 0 6297 NULL
150407 +enable_so_lpuart_copy_rx_to_tty_fndecl_6298 lpuart_copy_rx_to_tty fndecl 3 6298 NULL
150408 +enable_so__iwl_dbgfs_set_nic_temperature_write_fndecl_6303 _iwl_dbgfs_set_nic_temperature_write fndecl 3 6303 NULL
150409 +enable_so_count_leafs_fndecl_6305 count_leafs fndecl 0 6305 NULL
150410 +enable_so_sn9c2028_command_fndecl_6307 sn9c2028_command fndecl 0 6307 NULL
150411 +enable_so_em28xx_audio_ep_packet_size_fndecl_6311 em28xx_audio_ep_packet_size fndecl 0 6311 NULL
150412 +enable_so_sectors_r1bio_6323 sectors r1bio 0 6323 NULL
150413 +enable_so_len_ethtool_gstrings_6325 len ethtool_gstrings 0 6325 NULL
150414 +enable_so_totalhigh_sysinfo_6327 totalhigh sysinfo 0 6327 NULL nohasharray
150415 +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
150416 +enable_so_cipso_v4_gentag_rbm_fndecl_6335 cipso_v4_gentag_rbm fndecl 0 6335 NULL nohasharray
150417 +enable_so_raid5_build_block_fndecl_6335 raid5_build_block fndecl 2 6335 &enable_so_cipso_v4_gentag_rbm_fndecl_6335 nohasharray
150418 +enable_so_asd_get_devctx_size_fndecl_6335 asd_get_devctx_size fndecl 0 6335 &enable_so_raid5_build_block_fndecl_6335
150419 +enable_so_ray_cs_essid_proc_write_fndecl_6336 ray_cs_essid_proc_write fndecl 3 6336 NULL
150420 +enable_so_virtio_cread32_fndecl_6338 virtio_cread32 fndecl 0 6338 NULL
150421 +enable_so_h_max_out_saa7146_standard_6339 h_max_out saa7146_standard 0 6339 NULL
150422 +enable_so_orinoco_set_key_fndecl_6341 orinoco_set_key fndecl 5-7 6341 NULL nohasharray
150423 +enable_so_i40e_align_l2obj_base_fndecl_6341 i40e_align_l2obj_base fndecl 1-0 6341 &enable_so_orinoco_set_key_fndecl_6341
150424 +enable_so_n_o_ps_usb_stream_kernel_6346 n_o_ps usb_stream_kernel 0 6346 NULL
150425 +enable_so_wbuf_ofs_jffs2_sb_info_6347 wbuf_ofs jffs2_sb_info 0 6347 NULL nohasharray
150426 +enable_so_init_per_cpu_fndecl_6347 init_per_cpu fndecl 1 6347 &enable_so_wbuf_ofs_jffs2_sb_info_6347
150427 +enable_so_compat_sys_pwritev_fndecl_6349 compat_sys_pwritev fndecl 3 6349 NULL
150428 +enable_so_chipid_to_nrcores_fndecl_6352 chipid_to_nrcores fndecl 0 6352 NULL
150429 +enable_so_pci_mmconfig_insert_fndecl_6353 pci_mmconfig_insert fndecl 3-4-5 6353 NULL
150430 +enable_so_logfs_iget_fndecl_6356 logfs_iget fndecl 2 6356 NULL
150431 +enable_so_lrf_body_len_nfsd4_layoutreturn_6359 lrf_body_len nfsd4_layoutreturn 0 6359 NULL
150432 +enable_so_len_p54_rx_data_6362 len p54_rx_data 0 6362 NULL
150433 +enable_so_sisusb_send_bulk_msg_fndecl_6363 sisusb_send_bulk_msg fndecl 3-2 6363 NULL
150434 +enable_so_alloc_sja1000dev_fndecl_6367 alloc_sja1000dev fndecl 1 6367 NULL
150435 +enable_so_elants_i2c_execute_command_fndecl_6371 elants_i2c_execute_command fndecl 3-5 6371 NULL nohasharray
150436 +enable_so_recover_head_fndecl_6371 recover_head fndecl 3 6371 &enable_so_elants_i2c_execute_command_fndecl_6371
150437 +enable_so_dev_pm_opp_get_opp_count_fndecl_6372 dev_pm_opp_get_opp_count fndecl 0 6372 NULL
150438 +enable_so_xfs_buf_associate_memory_fndecl_6376 xfs_buf_associate_memory fndecl 3 6376 NULL
150439 +enable_so_cur_inode_size_send_ctx_6380 cur_inode_size send_ctx 0 6380 NULL nohasharray
150440 +enable_so_blkfactor_dio_submit_6380 blkfactor dio_submit 0 6380 &enable_so_cur_inode_size_send_ctx_6380
150441 +enable_so_tail_hid_debug_list_6381 tail hid_debug_list 0 6381 NULL
150442 +enable_so_xfs_rtallocate_extent_near_fndecl_6383 xfs_rtallocate_extent_near fndecl 3-5-9 6383 NULL
150443 +enable_so_snd_info_entry_llseek_fndecl_6384 snd_info_entry_llseek fndecl 2 6384 NULL
150444 +enable_so_partition_sched_domains_fndecl_6386 partition_sched_domains fndecl 1 6386 NULL
150445 +enable_so_length_fusbh200_qtd_6388 length fusbh200_qtd 0 6388 NULL
150446 +enable_so_wps_probe_req_ie_len_mlme_priv_6393 wps_probe_req_ie_len mlme_priv 0 6393 NULL
150447 +enable_so_totalreserve_pages_vardecl_6395 totalreserve_pages vardecl 0 6395 NULL nohasharray
150448 +enable_so_max_agbno_xfs_alloc_arg_6395 max_agbno xfs_alloc_arg 0 6395 &enable_so_totalreserve_pages_vardecl_6395
150449 +enable_so_i_file_acl_ext2_inode_info_6396 i_file_acl ext2_inode_info 0 6396 NULL
150450 +enable_so_ipath_copy_sge_fndecl_6403 ipath_copy_sge fndecl 3 6403 NULL nohasharray
150451 +enable_so_lpfc_debugfs_dif_err_write_fndecl_6403 lpfc_debugfs_dif_err_write fndecl 3 6403 &enable_so_ipath_copy_sge_fndecl_6403
150452 +enable_so_srpt_post_send_fndecl_6405 srpt_post_send fndecl 3 6405 NULL nohasharray
150453 +enable_so_compat_sys_ppoll_fndecl_6405 compat_sys_ppoll fndecl 2 6405 &enable_so_srpt_post_send_fndecl_6405
150454 +enable_so_alloc_blocks_hfs_inode_info_6406 alloc_blocks hfs_inode_info 0 6406 NULL
150455 +enable_so_copy_from_iter_fndecl_6410 copy_from_iter fndecl 2-0 6410 NULL
150456 +enable_so_fwnet_change_mtu_fndecl_6424 fwnet_change_mtu fndecl 2 6424 NULL nohasharray
150457 +enable_so_x509_note_serial_fndecl_6424 x509_note_serial fndecl 5 6424 &enable_so_fwnet_change_mtu_fndecl_6424
150458 +enable_so_de_entrylen_reiserfs_dir_entry_6426 de_entrylen reiserfs_dir_entry 0 6426 NULL
150459 +enable_so_sys_brk_fndecl_6435 sys_brk fndecl 1 6435 NULL
150460 +enable_so_parse_dcb20_entry_fndecl_6440 parse_dcb20_entry fndecl 3 6440 NULL
150461 +enable_so_user_base_qib_mregion_6443 user_base qib_mregion 0 6443 NULL
150462 +enable_so_max_packet_sz_tx_musb_hw_ep_6448 max_packet_sz_tx musb_hw_ep 0 6448 NULL
150463 +enable_so_snd_hammerfall_get_buffer_fndecl_6450 snd_hammerfall_get_buffer fndecl 3 6450 NULL
150464 +enable_so_out_epnum_usb_gadget_6453 out_epnum usb_gadget 0 6453 NULL
150465 +enable_so_iov_iter_advance_fndecl_6457 iov_iter_advance fndecl 2 6457 NULL
150466 +enable_so_xtTruncate_fndecl_6468 xtTruncate fndecl 3 6468 NULL
150467 +enable_so_drop_unencrypted_libipw_device_6476 drop_unencrypted libipw_device 0 6476 NULL
150468 +enable_so_add_endpoint_hc_driver_6482 add_endpoint hc_driver 0 6482 NULL
150469 +enable_so_dx_fb_image_6483 dx fb_image 0 6483 NULL
150470 +enable_so_usb_device_lseek_fndecl_6485 usb_device_lseek fndecl 2 6485 NULL
150471 +enable_so_datasize_vub300_mmc_host_6490 datasize vub300_mmc_host 0 6490 NULL nohasharray
150472 +enable_so_beep_amp_ad198x_spec_6490 beep_amp ad198x_spec 0 6490 &enable_so_datasize_vub300_mmc_host_6490 nohasharray
150473 +enable_so_probe_kernel_write_fndecl_6490 probe_kernel_write fndecl 3 6490 &enable_so_beep_amp_ad198x_spec_6490
150474 +enable_so_v9fs_xattr_trusted_set_fndecl_6494 v9fs_xattr_trusted_set fndecl 4 6494 NULL
150475 +enable_so_curr_dma_words_tegra_spi_data_6500 curr_dma_words tegra_spi_data 0 6500 NULL
150476 +enable_so_new_offset_mdp_superblock_1_6501 new_offset mdp_superblock_1 0 6501 NULL
150477 +enable_so_f_read_cntrs_qib_devdata_6502 f_read_cntrs qib_devdata 0 6502 NULL
150478 +enable_so_inc_remap_and_issue_cell_fndecl_6505 inc_remap_and_issue_cell fndecl 3 6505 NULL
150479 +enable_so_hugetlb_file_setup_fndecl_6506 hugetlb_file_setup fndecl 2 6506 NULL
150480 +enable_so_vfs_setpos_fndecl_6511 vfs_setpos fndecl 2 6511 NULL
150481 +enable_so_base_size_aac_dev_6512 base_size aac_dev 0 6512 NULL
150482 +enable_so_l2_fhdr_vlan_tag_l2_fhdr_6516 l2_fhdr_vlan_tag l2_fhdr 0 6516 NULL
150483 +enable_so_lbs_highrssi_write_fndecl_6520 lbs_highrssi_write fndecl 3 6520 NULL
150484 +enable_so_copy_page_from_iter_fndecl_6523 copy_page_from_iter fndecl 3-0 6523 NULL
150485 +enable_so_sector_start_dm_target_spec_6526 sector_start dm_target_spec 0 6526 NULL
150486 +enable_so_copy_from_user_fndecl_6532 copy_from_user fndecl 3-0 6532 NULL
150487 +enable_so_resp_err_recov_pg_fndecl_6533 resp_err_recov_pg fndecl 0 6533 NULL nohasharray
150488 +enable_so_bytes_cifs_readdata_6533 bytes cifs_readdata 0 6533 &enable_so_resp_err_recov_pg_fndecl_6533
150489 +enable_so_size_ubifs_wbuf_6537 size ubifs_wbuf 0 6537 NULL
150490 +enable_so_tx_ring_size_vmxnet3_adapter_6541 tx_ring_size vmxnet3_adapter 0 6541 NULL
150491 +enable_so_fe_logical_ext4_free_extent_6542 fe_logical ext4_free_extent 0 6542 NULL
150492 +enable_so_max_vfs_vardecl_igb_main_c_6547 max_vfs vardecl_igb_main.c 0 6547 NULL
150493 +enable_so_count_ixgb_desc_ring_6548 count ixgb_desc_ring 0 6548 NULL
150494 +enable_so_v9fs_xattr_trusted_get_fndecl_6549 v9fs_xattr_trusted_get fndecl 4 6549 NULL
150495 +enable_so_xlog_do_log_recovery_fndecl_6557 xlog_do_log_recovery fndecl 3 6557 NULL
150496 +enable_so_active_duplex_tg3_link_config_6559 active_duplex tg3_link_config 0 6559 NULL
150497 +enable_so_num_x_edt_ft5x06_ts_data_6566 num_x edt_ft5x06_ts_data 0 6566 NULL
150498 +enable_so_sddr09_read21_fndecl_6568 sddr09_read21 fndecl 4-3-6 6568 NULL nohasharray
150499 +enable_so_neigh_hash_alloc_fndecl_6568 neigh_hash_alloc fndecl 1 6568 &enable_so_sddr09_read21_fndecl_6568
150500 +enable_so_acpi_ut_create_package_object_fndecl_6569 acpi_ut_create_package_object fndecl 1 6569 NULL
150501 +enable_so_ath6kl_wmi_connect_cmd_fndecl_6571 ath6kl_wmi_connect_cmd fndecl 2 6571 NULL nohasharray
150502 +enable_so_command_setcolourparams_fndecl_6571 command_setcolourparams fndecl 0 6571 &enable_so_ath6kl_wmi_connect_cmd_fndecl_6571
150503 +enable_so_rts51x_write_mem_fndecl_6573 rts51x_write_mem fndecl 4 6573 NULL
150504 +enable_so_log_num_qps_mlx4_init_hca_param_6574 log_num_qps mlx4_init_hca_param 0 6574 NULL
150505 +enable_so_mptctl_do_mpt_command_fndecl_6578 mptctl_do_mpt_command fndecl 0 6578 NULL
150506 +enable_so_gcd_fndecl_6579 gcd fndecl 0-2-1 6579 NULL
150507 +enable_so_short_retry_atmel_private_6580 short_retry atmel_private 0 6580 NULL
150508 +enable_so_argc_tomoyo_condition_6587 argc tomoyo_condition 0 6587 NULL
150509 +enable_so_wil_write_file_rxon_fndecl_6590 wil_write_file_rxon fndecl 3 6590 NULL
150510 +enable_so_capture_frlog_rme96_6593 capture_frlog rme96 0 6593 NULL nohasharray
150511 +enable_so_ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_fndecl_6593 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout fndecl 3 6593 &enable_so_capture_frlog_rme96_6593
150512 +enable_so_pci_get_device_fndecl_6606 pci_get_device fndecl 2 6606 NULL
150513 +enable_so_dma_map_page_fndecl_6607 dma_map_page fndecl 0 6607 NULL
150514 +enable_so_nvkm_gpio_create__fndecl_6610 nvkm_gpio_create_ fndecl 4 6610 NULL
150515 +enable_so_irda_sendmsg_ultra_fndecl_6612 irda_sendmsg_ultra fndecl 3 6612 NULL nohasharray
150516 +enable_so_osst_execute_fndecl_6612 osst_execute fndecl 6-3-7 6612 &enable_so_irda_sendmsg_ultra_fndecl_6612
150517 +enable_so_size_synthhid_msg_hdr_6615 size synthhid_msg_hdr 0 6615 NULL nohasharray
150518 +enable_so_num_large_buffers_ql3_adapter_6615 num_large_buffers ql3_adapter 0 6615 &enable_so_size_synthhid_msg_hdr_6615
150519 +enable_so_length_v4l2_mbus_frame_desc_entry_6616 length v4l2_mbus_frame_desc_entry 0 6616 NULL
150520 +enable_so_ocfs2_mark_extent_written_fndecl_6620 ocfs2_mark_extent_written fndecl 6-4 6620 NULL
150521 +enable_so_ath_recv_fndecl_6621 ath_recv fndecl 3 6621 NULL
150522 +enable_so_num_outputs_drm_vmw_update_layout_arg_6623 num_outputs drm_vmw_update_layout_arg 0 6623 NULL
150523 +enable_so_hw_queue_depth_vardecl_null_blk_c_6624 hw_queue_depth vardecl_null_blk.c 0 6624 NULL
150524 +enable_so_cifs_setsize_fndecl_6630 cifs_setsize fndecl 2 6630 NULL nohasharray
150525 +enable_so_copy_for_split_fndecl_6630 copy_for_split fndecl 7-8 6630 &enable_so_cifs_setsize_fndecl_6630
150526 +enable_so_sample_rate_echoaudio_6631 sample_rate echoaudio 0 6631 NULL
150527 +enable_so_integrity_read_file_fndecl_6633 integrity_read_file fndecl 0 6633 NULL nohasharray
150528 +enable_so_buf_size_mlx4_en_rx_ring_6633 buf_size mlx4_en_rx_ring 0 6633 &enable_so_integrity_read_file_fndecl_6633
150529 +enable_so_SYSC_migrate_pages_fndecl_6634 SYSC_migrate_pages fndecl 2 6634 NULL
150530 +enable_so_packet_setsockopt_fndecl_6637 packet_setsockopt fndecl 5 6637 NULL
150531 +enable_so_xmit_count_modem_info_6639 xmit_count modem_info 0 6639 NULL
150532 +enable_so_bpp_xvip_video_format_6640 bpp xvip_video_format 0 6640 NULL
150533 +enable_so_irlan_provider_connect_indication_fndecl_6644 irlan_provider_connect_indication fndecl 5 6644 NULL
150534 +enable_so_local_payload_max_nfc_digital_dev_6651 local_payload_max nfc_digital_dev 0 6651 NULL nohasharray
150535 +enable_so_set_number_fndecl_6651 set_number fndecl 2 6651 &enable_so_local_payload_max_nfc_digital_dev_6651
150536 +enable_so_length_acpi_namestring_info_6654 length acpi_namestring_info 0 6654 NULL
150537 +enable_so_async_error_osd_request_6658 async_error osd_request 0 6658 NULL
150538 +enable_so_persistent_commit_merge_fndecl_6660 persistent_commit_merge fndecl 2 6660 NULL
150539 +enable_so_nilfs_segment_list_add_fndecl_6665 nilfs_segment_list_add fndecl 2 6665 NULL
150540 +enable_so_orinoco_add_extscan_result_fndecl_6668 orinoco_add_extscan_result fndecl 3 6668 NULL nohasharray
150541 +enable_so_io_reserve_memtype_fndecl_6668 io_reserve_memtype fndecl 1-2 6668 &enable_so_orinoco_add_extscan_result_fndecl_6668
150542 +enable_so_img_imem_size_fw_hdr_6675 img_imem_size fw_hdr 0 6675 NULL nohasharray
150543 +enable_so_pccard_store_cis_fndecl_6675 pccard_store_cis fndecl 6 6675 &enable_so_img_imem_size_fw_hdr_6675
150544 +enable_so_compatsize_xt_match_6677 compatsize xt_match 0 6677 NULL
150545 +enable_so_lpfc_debugfs_lseek_fndecl_6679 lpfc_debugfs_lseek fndecl 2 6679 NULL
150546 +enable_so_present_pages_zone_6685 present_pages zone 0 6685 NULL
150547 +enable_so_ac_2order_ext4_allocation_context_6690 ac_2order ext4_allocation_context 0 6690 NULL
150548 +enable_so_param_ssp_completion_resp_6691 param ssp_completion_resp 0 6691 NULL
150549 +enable_so_esize___kfifo_6692 esize __kfifo 0 6692 NULL nohasharray
150550 +enable_so_drop_endpoint_hc_driver_6692 drop_endpoint hc_driver 0 6692 &enable_so_esize___kfifo_6692
150551 +enable_so_max_recvmsg_len_netlink_sock_6699 max_recvmsg_len netlink_sock 0 6699 NULL
150552 +enable_so_nroots_rs_control_6706 nroots rs_control 0 6706 NULL nohasharray
150553 +enable_so_gsm_control_message_fndecl_6706 gsm_control_message fndecl 4 6706 &enable_so_nroots_rs_control_6706
150554 +enable_so_do_ipv6_setsockopt_fndecl_6708 do_ipv6_setsockopt fndecl 5-0 6708 NULL nohasharray
150555 +enable_so_length_p_header80_6708 length p_header80 0 6708 &enable_so_do_ipv6_setsockopt_fndecl_6708
150556 +enable_so_raw_recvmsg_fndecl_6710 raw_recvmsg fndecl 3 6710 NULL
150557 +enable_so_sample_rate_mixart_mgr_6716 sample_rate mixart_mgr 0 6716 NULL
150558 +enable_so_ssb_sdio_block_read_fndecl_6721 ssb_sdio_block_read fndecl 3 6721 NULL
150559 +enable_so_qdisc_class_hash_alloc_fndecl_6725 qdisc_class_hash_alloc fndecl 1 6725 NULL nohasharray
150560 +enable_so_size_mvpp2_txq_pcpu_6725 size mvpp2_txq_pcpu 0 6725 &enable_so_qdisc_class_hash_alloc_fndecl_6725
150561 +enable_so_ieee_il_rate_info_6732 ieee il_rate_info 0 6732 NULL
150562 +enable_so_iova_mlx5_core_mr_6733 iova mlx5_core_mr 0 6733 NULL
150563 +enable_so_pagesize_sddr09_card_info_6735 pagesize sddr09_card_info 0 6735 NULL
150564 +enable_so_gnttab_alloc_grant_references_fndecl_6739 gnttab_alloc_grant_references fndecl 1 6739 NULL
150565 +enable_so_alloc_trace_uprobe_fndecl_6740 alloc_trace_uprobe fndecl 3 6740 NULL
150566 +enable_so__read_and_match_data_map_fndecl_6747 _read_and_match_data_map fndecl 2 6747 NULL
150567 +enable_so_rfcomm_sock_setsockopt_fndecl_6749 rfcomm_sock_setsockopt fndecl 5 6749 NULL
150568 +enable_so_openings_ahd_linux_device_6755 openings ahd_linux_device 0 6755 NULL
150569 +enable_so_alloc_size__osd_req_data_segment_6757 alloc_size _osd_req_data_segment 0 6757 NULL
150570 +enable_so_um_idi_write_fndecl_6758 um_idi_write fndecl 3 6758 NULL
150571 +enable_so_tun_opts_len_sw_flow_key_6759 tun_opts_len sw_flow_key 0 6759 NULL
150572 +enable_so_ocfs2_direct_IO_fndecl_6762 ocfs2_direct_IO fndecl 3 6762 NULL
150573 +enable_so_al_stripe_size_resize_parms_6766 al_stripe_size resize_parms 0 6766 NULL
150574 +enable_so_start_mtd_oob_buf_6767 start mtd_oob_buf 0 6767 NULL
150575 +enable_so_rx_pkt_ram_iadev_priv_6768 rx_pkt_ram iadev_priv 0 6768 NULL nohasharray
150576 +enable_so_gfs2_alloc_sort_buffer_fndecl_6768 gfs2_alloc_sort_buffer fndecl 1 6768 &enable_so_rx_pkt_ram_iadev_priv_6768
150577 +enable_so_sg_tablesize_Scsi_Host_6769 sg_tablesize Scsi_Host 0 6769 NULL
150578 +enable_so_alloc_ring_fndecl_6773 alloc_ring fndecl 2-4 6773 NULL
150579 +enable_so_dn_recvmsg_fndecl_6774 dn_recvmsg fndecl 3 6774 NULL
150580 +enable_so_ext4_readpages_fndecl_6776 ext4_readpages fndecl 4 6776 NULL
150581 +enable_so_asn_1_decode_fndecl_6777 asn_1_decode fndecl 0 6777 NULL nohasharray
150582 +enable_so_max_vals_input_dev_6777 max_vals input_dev 0 6777 &enable_so_asn_1_decode_fndecl_6777
150583 +enable_so_bio_phys_segments_fndecl_6778 bio_phys_segments fndecl 0 6778 NULL
150584 +enable_so_mmc_send_bus_test_fndecl_6782 mmc_send_bus_test fndecl 4 6782 NULL
150585 +enable_so_ecryptfs_send_message_fndecl_6785 ecryptfs_send_message fndecl 2 6785 NULL
150586 +enable_so_alloc_and_copy_string_fndecl_6786 alloc_and_copy_string fndecl 2 6786 NULL
150587 +enable_so_bio_integrity_advance_fndecl_6791 bio_integrity_advance fndecl 2 6791 NULL
150588 +enable_so_st21nfca_im_send_atr_req_fndecl_6792 st21nfca_im_send_atr_req fndecl 3 6792 NULL
150589 +enable_so_length_nbpf_desc_6795 length nbpf_desc 0 6795 NULL
150590 +enable_so_xfs_da_shrink_inode_fndecl_6796 xfs_da_shrink_inode fndecl 2 6796 NULL
150591 +enable_so_pop_tx_fndecl_6799 pop_tx fndecl 2 6799 NULL
150592 +enable_so_bankwidth_map_info_6800 bankwidth map_info 0 6800 NULL
150593 +enable_so_pfn_mlx4_uar_6801 pfn mlx4_uar 0 6801 NULL
150594 +enable_so_ctrl_dma_acm_6806 ctrl_dma acm 0 6806 NULL
150595 +enable_so_ip6ip6_err_fndecl_6807 ip6ip6_err fndecl 5 6807 NULL
150596 +enable_so_nfc_digital_allocate_device_fndecl_6810 nfc_digital_allocate_device fndecl 4 6810 NULL
150597 +enable_so_csio_mem_read_fndecl_6812 csio_mem_read fndecl 3 6812 NULL
150598 +enable_so_tx_pipe_at76_priv_6815 tx_pipe at76_priv 0 6815 NULL
150599 +enable_so_pwr_power_save_off_read_fndecl_6816 pwr_power_save_off_read fndecl 3 6816 NULL
150600 +enable_so_minor_miscdevice_6818 minor miscdevice 0 6818 NULL
150601 +enable_so_hs_rehash_bits_cfs_hash_6820 hs_rehash_bits cfs_hash 0 6820 NULL
150602 +enable_so_bfs_iget_fndecl_6821 bfs_iget fndecl 2 6821 NULL
150603 +enable_so_xlbd_reserve_minors_fndecl_6830 xlbd_reserve_minors fndecl 2-1 6830 NULL
150604 +enable_so_centre_vertically_fndecl_6833 centre_vertically fndecl 2 6833 NULL
150605 +enable_so_xfs_dialloc_ag_finobt_near_fndecl_6835 xfs_dialloc_ag_finobt_near fndecl 1 6835 NULL
150606 +enable_so_copy_page_to_iter_fndecl_6842 copy_page_to_iter fndecl 0-3 6842 NULL
150607 +enable_so_lcd_proc_write_fndecl_6844 lcd_proc_write fndecl 3 6844 NULL
150608 +enable_so_intel_framebuffer_size_for_mode_fndecl_6849 intel_framebuffer_size_for_mode fndecl 0-2 6849 NULL nohasharray
150609 +enable_so___ceph_getxattr_fndecl_6849 __ceph_getxattr fndecl 0 6849 &enable_so_intel_framebuffer_size_for_mode_fndecl_6849
150610 +enable_so_hpfs_file_fsync_fndecl_6851 hpfs_file_fsync fndecl 2-3 6851 NULL
150611 +enable_so_kclist_add_private_fndecl_6853 kclist_add_private fndecl 1-2 6853 NULL
150612 +enable_so_bg_channels_libipw_geo_6854 bg_channels libipw_geo 0 6854 NULL
150613 +enable_so_ci_role_write_fndecl_6855 ci_role_write fndecl 3 6855 NULL
150614 +enable_so_hdlc_empty_fifo_fndecl_6862 hdlc_empty_fifo fndecl 2 6862 NULL
150615 +enable_so_qib_user_sdma_num_pages_fndecl_6864 qib_user_sdma_num_pages fndecl 0 6864 NULL
150616 +enable_so_buffer_kbs_vardecl_st_c_6866 buffer_kbs vardecl_st.c 0 6866 NULL
150617 +enable_so_size_vb2_fileio_buf_6875 size vb2_fileio_buf 0 6875 NULL nohasharray
150618 +enable_so_offset_amp_assoc_6875 offset amp_assoc 0 6875 &enable_so_size_vb2_fileio_buf_6875
150619 +enable_so_xres_fb_videomode_6878 xres fb_videomode 0 6878 NULL
150620 +enable_so_nvif_device_init_fndecl_6881 nvif_device_init fndecl 6 6881 NULL
150621 +enable_so_rxbufferhandle_kaweth_device_6883 rxbufferhandle kaweth_device 0 6883 NULL
150622 +enable_so___kfifo_in_r_fndecl_6892 __kfifo_in_r fndecl 4-3 6892 NULL nohasharray
150623 +enable_so_jffs2_zlib_decompress_fndecl_6892 jffs2_zlib_decompress fndecl 3-4 6892 &enable_so___kfifo_in_r_fndecl_6892
150624 +enable_so_hpfs_bplus_lookup_fndecl_6896 hpfs_bplus_lookup fndecl 0-4 6896 NULL nohasharray
150625 +enable_so_index_mlx5_uar_6896 index mlx5_uar 0 6896 &enable_so_hpfs_bplus_lookup_fndecl_6896
150626 +enable_so_adis16136_show_serial_fndecl_6897 adis16136_show_serial fndecl 3 6897 NULL
150627 +enable_so_link_duplex_e1000_adapter_6902 link_duplex e1000_adapter 0 6902 NULL
150628 +enable_so_jfs_quota_write_fndecl_6903 jfs_quota_write fndecl 5 6903 NULL
150629 +enable_so_write_inflate_state_6907 write inflate_state 0 6907 NULL
150630 +enable_so_table_size_radeon_gart_6911 table_size radeon_gart 0 6911 NULL
150631 +enable_so_maxbufsize__isdn_driver_6917 maxbufsize _isdn_driver 0 6917 NULL
150632 +enable_so_drm_gtf_mode_complex_fndecl_6918 drm_gtf_mode_complex fndecl 3-2-4-7-9-10-8 6918 NULL
150633 +enable_so_jfs_nfs_get_inode_fndecl_6925 jfs_nfs_get_inode fndecl 2 6925 NULL
150634 +enable_so_buflen_packet_command_6926 buflen packet_command 0 6926 NULL
150635 +enable_so_multi_src_desc_6933 multi src_desc 0 6933 NULL
150636 +enable_so_nvram_pagesize_tg3_6938 nvram_pagesize tg3 0 6938 NULL
150637 +enable_so_nbytes_ide_cmd_6945 nbytes ide_cmd 0 6945 NULL
150638 +enable_so_enic_rxcopybreak_fndecl_6960 enic_rxcopybreak fndecl 4 6960 NULL
150639 +enable_so_af9013_write_ofsm_regs_fndecl_6965 af9013_write_ofsm_regs fndecl 4 6965 NULL
150640 +enable_so_ufs_free_blocks_fndecl_6968 ufs_free_blocks fndecl 3-2 6968 NULL nohasharray
150641 +enable_so_tlv_put_u64_fndecl_6968 tlv_put_u64 fndecl 0 6968 &enable_so_ufs_free_blocks_fndecl_6968
150642 +enable_so_odm_group_width_pnfs_osd_data_map_6977 odm_group_width pnfs_osd_data_map 0 6977 NULL
150643 +enable_so_mq_msg_max_ipc_namespace_6978 mq_msg_max ipc_namespace 0 6978 NULL
150644 +enable_so_pvr2_v4l2_read_fndecl_6981 pvr2_v4l2_read fndecl 3 6981 NULL
150645 +enable_so_async_set_registers_fndecl_6987 async_set_registers fndecl 3 6987 NULL
150646 +enable_so_mappable_base_i915_gtt_6993 mappable_base i915_gtt 0 6993 NULL
150647 +enable_so_sq_spare_wqes_mlx4_ib_qp_6994 sq_spare_wqes mlx4_ib_qp 0 6994 NULL
150648 +enable_so_smk_write_cipso_fndecl_6998 smk_write_cipso fndecl 3 6998 NULL
150649 +enable_so_gnttab_max_grant_frames_fndecl_7002 gnttab_max_grant_frames fndecl 0 7002 NULL
150650 +enable_so_p_start_nilfs_period_7008 p_start nilfs_period 0 7008 NULL nohasharray
150651 +enable_so___posix_lock_file_fndecl_7008 __posix_lock_file fndecl 0 7008 &enable_so_p_start_nilfs_period_7008
150652 +enable_so_s_groups_count_ext4_sb_info_7012 s_groups_count ext4_sb_info 0 7012 NULL
150653 +enable_so_ocfs2_cache_cluster_dealloc_fndecl_7016 ocfs2_cache_cluster_dealloc fndecl 3-2 7016 NULL
150654 +enable_so_attr_bytes_osdv2_attributes_list_element_7018 attr_bytes osdv2_attributes_list_element 0 7018 NULL
150655 +enable_so_channels_snd_pcm_plugin_format_7026 channels snd_pcm_plugin_format 0 7026 NULL
150656 +enable_so_virtio_gpu_alloc_object_fndecl_7030 virtio_gpu_alloc_object fndecl 2 7030 NULL
150657 +enable_so_h_sync_strt_wid_crtc_7033 h_sync_strt_wid crtc 0 7033 NULL
150658 +enable_so_fat_short2lower_uni_fndecl_7036 fat_short2lower_uni fndecl 0 7036 NULL
150659 +enable_so_mq_msg_default_ipc_namespace_7041 mq_msg_default ipc_namespace 0 7041 NULL nohasharray
150660 +enable_so_fpregs_get_fndecl_7041 fpregs_get fndecl 4 7041 &enable_so_mq_msg_default_ipc_namespace_7041
150661 +enable_so_kvm_read_guest_page_fndecl_7049 kvm_read_guest_page fndecl 2-5 7049 NULL
150662 +enable_so_iforce_send_packet_fndecl_7050 iforce_send_packet fndecl 2 7050 NULL
150663 +enable_so_srq_entry_sz_mlx4_dev_cap_7052 srq_entry_sz mlx4_dev_cap 0 7052 NULL
150664 +enable_so_SYSC_pselect6_fndecl_7055 SYSC_pselect6 fndecl 1 7055 NULL
150665 +enable_so_packet_size_usbatm_channel_7056 packet_size usbatm_channel 0 7056 NULL
150666 +enable_so___btrfs_drop_extents_fndecl_7058 __btrfs_drop_extents fndecl 6-5 7058 NULL
150667 +enable_so_cryptd_alloc_instance_fndecl_7059 cryptd_alloc_instance fndecl 3-2 7059 NULL
150668 +enable_so_dccph_doff_dccp_hdr_7060 dccph_doff dccp_hdr 0 7060 NULL nohasharray
150669 +enable_so_ddebug_proc_write_fndecl_7060 ddebug_proc_write fndecl 3 7060 &enable_so_dccph_doff_dccp_hdr_7060
150670 +enable_so_total_VFs_pci_sriov_7061 total_VFs pci_sriov 0 7061 NULL nohasharray
150671 +enable_so_buffer_size_omapfb_memory_read_7061 buffer_size omapfb_memory_read 0 7061 &enable_so_total_VFs_pci_sriov_7061
150672 +enable_so_i_dir_start_lookup_ext4_inode_info_7062 i_dir_start_lookup ext4_inode_info 0 7062 NULL
150673 +enable_so_core_tpg_set_initiator_node_queue_depth_fndecl_7063 core_tpg_set_initiator_node_queue_depth fndecl 3 7063 NULL
150674 +enable_so_jt_size_gfx_firmware_header_v1_0_7064 jt_size gfx_firmware_header_v1_0 0 7064 NULL
150675 +enable_so_zisofs_fill_pages_fndecl_7066 zisofs_fill_pages fndecl 3 7066 NULL
150676 +enable_so_lua_sysfs_read_fndecl_7069 lua_sysfs_read fndecl 6 7069 NULL
150677 +enable_so_command_hdac_bus_ops_7079 command hdac_bus_ops 0 7079 NULL
150678 +enable_so_pref_height_vmw_display_unit_7089 pref_height vmw_display_unit 0 7089 NULL nohasharray
150679 +enable_so_tot_nodes_mic_bootparam_7089 tot_nodes mic_bootparam 0 7089 &enable_so_pref_height_vmw_display_unit_7089
150680 +enable_so_rx_pending_sky2_port_7090 rx_pending sky2_port 0 7090 NULL
150681 +enable_so_get_vm_area_fndecl_7091 get_vm_area fndecl 1 7091 NULL
150682 +enable_so_dma_mt7601u_dma_buf_7098 dma mt7601u_dma_buf 0 7098 NULL
150683 +enable_so_rtl8139_change_mtu_fndecl_7099 rtl8139_change_mtu fndecl 2 7099 NULL
150684 +enable_so_mpi_alloc_fndecl_7101 mpi_alloc fndecl 1 7101 NULL
150685 +enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104 paging32_gpte_to_gfn_lvl fndecl 0-2-1 7104 NULL nohasharray
150686 +enable_so_scan_ies_len_ieee80211_local_7104 scan_ies_len ieee80211_local 0 7104 &enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104
150687 +enable_so_nfsd4_encode_readv_fndecl_7110 nfsd4_encode_readv fndecl 4 7110 NULL
150688 +enable_so_wil_tid_ampdu_rx_alloc_fndecl_7119 wil_tid_ampdu_rx_alloc fndecl 2 7119 NULL
150689 +enable_so_ftrace_size_ramoops_platform_data_7124 ftrace_size ramoops_platform_data 0 7124 NULL
150690 +enable_so_report_size_hid_global_7127 report_size hid_global 0 7127 NULL nohasharray
150691 +enable_so_dfs_file_read_fndecl_7127 dfs_file_read fndecl 3 7127 &enable_so_report_size_hid_global_7127
150692 +enable_so_acpi_rs_set_resource_length_fndecl_7131 acpi_rs_set_resource_length fndecl 1 7131 NULL nohasharray
150693 +enable_so_svc_getnl_fndecl_7131 svc_getnl fndecl 0 7131 &enable_so_acpi_rs_set_resource_length_fndecl_7131
150694 +enable_so_nstids_tid_info_7139 nstids tid_info 0 7139 NULL
150695 +enable_so_enable_ints_write_fndecl_7145 enable_ints_write fndecl 3 7145 NULL
150696 +enable_so_mdiobus_read_fndecl_7146 mdiobus_read fndecl 0 7146 NULL
150697 +enable_so_vc_origin_vc_data_7148 vc_origin vc_data 0 7148 NULL
150698 +enable_so_ea_secno_fnode_7151 ea_secno fnode 0 7151 NULL nohasharray
150699 +enable_so_privsize_nft_set_ops_7151 privsize nft_set_ops 0 7151 &enable_so_ea_secno_fnode_7151
150700 +enable_so_newblocks_xfs_growfs_rt_7154 newblocks xfs_growfs_rt 0 7154 NULL
150701 +enable_so_selinux_inode_setsecurity_fndecl_7159 selinux_inode_setsecurity fndecl 4 7159 NULL
150702 +enable_so_num_packets_st5481_in_7161 num_packets st5481_in 0 7161 NULL
150703 +enable_so___add_to_page_cache_locked_fndecl_7168 __add_to_page_cache_locked fndecl 0 7168 NULL
150704 +enable_so_setup_sg_fndecl_7174 setup_sg fndecl 3 7174 NULL
150705 +enable_so_get_rxfh_key_size_ethtool_ops_7178 get_rxfh_key_size ethtool_ops 0 7178 NULL
150706 +enable_so_ax88179_write_cmd_async_fndecl_7180 ax88179_write_cmd_async fndecl 5 7180 NULL
150707 +enable_so_vdisplay_moderec_7183 vdisplay moderec 0 7183 NULL nohasharray
150708 +enable_so_mfd_add_devices_fndecl_7183 mfd_add_devices fndecl 6-2-4 7183 &enable_so_vdisplay_moderec_7183
150709 +enable_so_ino_node_footer_7185 ino node_footer 0 7185 NULL
150710 +enable_so_acc_accl_accessdata_dn_7186 acc_accl accessdata_dn 0 7186 NULL
150711 +enable_so_vc_rows_vc_data_7192 vc_rows vc_data 0 7192 NULL nohasharray
150712 +enable_so___shmem_file_setup_fndecl_7192 __shmem_file_setup fndecl 2 7192 &enable_so_vc_rows_vc_data_7192 nohasharray
150713 +enable_so_btrfs_get_token_32_fndecl_7192 btrfs_get_token_32 fndecl 0 7192 &enable_so___shmem_file_setup_fndecl_7192 nohasharray
150714 +enable_so_ic_size_xlog_in_core_7192 ic_size xlog_in_core 0 7192 &enable_so_btrfs_get_token_32_fndecl_7192
150715 +enable_so_mmc_calc_max_discard_fndecl_7198 mmc_calc_max_discard fndecl 0 7198 NULL
150716 +enable_so_z_incomp_fndecl_7201 z_incomp fndecl 3 7201 NULL
150717 +enable_so_length_pnfs_layout_range_7207 length pnfs_layout_range 0 7207 NULL nohasharray
150718 +enable_so_ide_init_port_fndecl_7207 ide_init_port fndecl 2 7207 &enable_so_length_pnfs_layout_range_7207
150719 +enable_so___wa_populate_dto_urb_fndecl_7208 __wa_populate_dto_urb fndecl 4-3 7208 NULL
150720 +enable_so_size_srp_iu_7210 size srp_iu 0 7210 NULL nohasharray
150721 +enable_so_drbd_drain_block_fndecl_7210 drbd_drain_block fndecl 2 7210 &enable_so_size_srp_iu_7210
150722 +enable_so_rivafb_do_maximize_fndecl_7212 rivafb_do_maximize fndecl 3-4 7212 NULL nohasharray
150723 +enable_so_eq_ecount_lpfc_sli4_hba_7212 eq_ecount lpfc_sli4_hba 0 7212 &enable_so_rivafb_do_maximize_fndecl_7212
150724 +enable_so__iwl_dbgfs_bt_force_ant_write_fndecl_7214 _iwl_dbgfs_bt_force_ant_write fndecl 3 7214 NULL
150725 +enable_so_max_id_Scsi_Host_7217 max_id Scsi_Host 0 7217 NULL
150726 +enable_so_num_chipselect_spi_gpio_platform_data_7218 num_chipselect spi_gpio_platform_data 0 7218 NULL
150727 +enable_so_iwl_mvm_fw_dbg_collect_fndecl_7228 iwl_mvm_fw_dbg_collect fndecl 4 7228 NULL
150728 +enable_so_s_mb_last_group_ext4_sb_info_7240 s_mb_last_group ext4_sb_info 0 7240 NULL
150729 +enable_so_xfs_attr3_leaf_create_fndecl_7243 xfs_attr3_leaf_create fndecl 2 7243 NULL
150730 +enable_so_len_session_key_7253 len session_key 0 7253 NULL
150731 +enable_so_ddcb_max_ddcb_queue_7260 ddcb_max ddcb_queue 0 7260 NULL
150732 +enable_so_bpp_cobalt_stream_7263 bpp cobalt_stream 0 7263 NULL
150733 +enable_so_iscsi_recv_pdu_fndecl_7264 iscsi_recv_pdu fndecl 4 7264 NULL
150734 +enable_so_xlog_bread_fndecl_7272 xlog_bread fndecl 2 7272 NULL
150735 +enable_so_vc_saved_x_vc_data_7275 vc_saved_x vc_data 0 7275 NULL
150736 +enable_so_num_asq_entries_i40e_adminq_info_7278 num_asq_entries i40e_adminq_info 0 7278 NULL
150737 +enable_so_hsync_psb_pipe_7286 hsync psb_pipe 0 7286 NULL
150738 +enable_so_trailer_len_dst_entry_7294 trailer_len dst_entry 0 7294 NULL nohasharray
150739 +enable_so_pci_default_setup_fndecl_7294 pci_default_setup fndecl 4 7294 &enable_so_trailer_len_dst_entry_7294
150740 +enable_so_ubifs_update_one_lp_fndecl_7295 ubifs_update_one_lp fndecl 3 7295 NULL nohasharray
150741 +enable_so___copy_to_user_swizzled_fndecl_7295 __copy_to_user_swizzled fndecl 3-4 7295 &enable_so_ubifs_update_one_lp_fndecl_7295
150742 +enable_so_height_vpe_q_data_7303 height vpe_q_data 0 7303 NULL
150743 +enable_so_value_apei_exec_context_7318 value apei_exec_context 0 7318 NULL
150744 +enable_so_fdir_filter_count_ixgbe_adapter_7322 fdir_filter_count ixgbe_adapter 0 7322 NULL nohasharray
150745 +enable_so_add_frontend_dmx_demux_7322 add_frontend dmx_demux 0 7322 &enable_so_fdir_filter_count_ixgbe_adapter_7322
150746 +enable_so_bus_num_dw_pci_controller_7324 bus_num dw_pci_controller 0 7324 NULL
150747 +enable_so_generic_write_end_fndecl_7325 generic_write_end fndecl 5 7325 NULL
150748 +enable_so_len_f2fs_encrypted_symlink_data_7327 len f2fs_encrypted_symlink_data 0 7327 NULL
150749 +enable_so_wsize_inflate_state_7329 wsize inflate_state 0 7329 NULL
150750 +enable_so_control_cnt_pvr2_hdw_7335 control_cnt pvr2_hdw 0 7335 NULL
150751 +enable_so_drm_malloc_ab_fndecl_7340 drm_malloc_ab fndecl 1-2 7340 NULL
150752 +enable_so_pvr2_i2c_read_fndecl_7344 pvr2_i2c_read fndecl 4-6 7344 NULL
150753 +enable_so_sdebug_change_qdepth_fndecl_7345 sdebug_change_qdepth fndecl 2 7345 NULL
150754 +enable_so_btusb_recv_intr_fndecl_7351 btusb_recv_intr fndecl 3 7351 NULL nohasharray
150755 +enable_so_jpegqual_s2255_vc_7351 jpegqual s2255_vc 0 7351 &enable_so_btusb_recv_intr_fndecl_7351 nohasharray
150756 +enable_so_get_server_iovec_fndecl_7351 get_server_iovec fndecl 2 7351 &enable_so_jpegqual_s2255_vc_7351
150757 +enable_so_mesh_fwd_csa_frame_fndecl_7353 mesh_fwd_csa_frame fndecl 3 7353 NULL nohasharray
150758 +enable_so_calc_sq_size_fndecl_7353 calc_sq_size fndecl 0 7353 &enable_so_mesh_fwd_csa_frame_fndecl_7353
150759 +enable_so_mcp251x_spi_trans_fndecl_7356 mcp251x_spi_trans fndecl 2 7356 NULL
150760 +enable_so_dm_vcalloc_fndecl_7357 dm_vcalloc fndecl 2-1 7357 NULL
150761 +enable_so_sys_fadvise64_fndecl_7365 sys_fadvise64 fndecl 2-3 7365 NULL
150762 +enable_so_hfsplus_min_io_size_fndecl_7368 hfsplus_min_io_size fndecl 0 7368 NULL
150763 +enable_so_check_left_item_operations_7369 check_left item_operations 0 7369 NULL
150764 +enable_so_e_value_size_ext2_xattr_entry_7373 e_value_size ext2_xattr_entry 0 7373 NULL
150765 +enable_so_bufsize_pstore_info_7375 bufsize pstore_info 0 7375 NULL
150766 +enable_so_shmem_swapin_fndecl_7376 shmem_swapin fndecl 4 7376 NULL nohasharray
150767 +enable_so_scsi_mode_sense_fndecl_7376 scsi_mode_sense fndecl 5 7376 &enable_so_shmem_swapin_fndecl_7376
150768 +enable_so_c67x00_create_td_fndecl_7377 c67x00_create_td fndecl 4 7377 NULL
150769 +enable_so_region_tail_fndecl_7382 region_tail fndecl 3 7382 NULL
150770 +enable_so_amd8111e_change_mtu_fndecl_7389 amd8111e_change_mtu fndecl 2 7389 NULL
150771 +enable_so_packetsize__rbu_data_7390 packetsize _rbu_data 0 7390 NULL
150772 +enable_so_v_tot_disp_crtc_7400 v_tot_disp crtc 0 7400 NULL
150773 +enable_so_ext4_ext_zeroout_fndecl_7404 ext4_ext_zeroout fndecl 0 7404 NULL
150774 +enable_so_fw_sent_bcm203x_data_7405 fw_sent bcm203x_data 0 7405 NULL
150775 +enable_so___ip_append_data_fndecl_7411 __ip_append_data fndecl 9-8 7411 NULL
150776 +enable_so_default_value_cx88_ctrl_7412 default_value cx88_ctrl 0 7412 NULL
150777 +enable_so_htotal_psb_pipe_7415 htotal psb_pipe 0 7415 NULL nohasharray
150778 +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
150779 +enable_so_st_write_fndecl_7417 st_write fndecl 3 7417 NULL
150780 +enable_so_xfs_iget_fndecl_7419 xfs_iget fndecl 3 7419 NULL nohasharray
150781 +enable_so_alloc_idx_lebs_fndecl_7419 alloc_idx_lebs fndecl 2 7419 &enable_so_xfs_iget_fndecl_7419
150782 +enable_so___kfifo_peek_n_fndecl_7422 __kfifo_peek_n fndecl 0 7422 NULL
150783 +enable_so_mirror_sd_gl860_7430 mirror sd_gl860 0 7430 NULL
150784 +enable_so_residue_dma_tx_state_7432 residue dma_tx_state 0 7432 NULL nohasharray
150785 +enable_so_hdrsize_genl_family_7432 hdrsize genl_family 0 7432 &enable_so_residue_dma_tx_state_7432
150786 +enable_so_xfs_file_fsync_fndecl_7433 xfs_file_fsync fndecl 2-3 7433 NULL
150787 +enable_so_iio_device_add_event_fndecl_7439 iio_device_add_event fndecl 0 7439 NULL
150788 +enable_so_data_len_sk_buff_7447 data_len sk_buff 0 7447 NULL
150789 +enable_so_rate_ctrl_alg_read_fndecl_7449 rate_ctrl_alg_read fndecl 3 7449 NULL
150790 +enable_so_shdma_prep_memcpy_fndecl_7451 shdma_prep_memcpy fndecl 4-3 7451 NULL nohasharray
150791 +enable_so_stat_st_vardecl_drv_c_7451 stat_st vardecl_drv.c 0 7451 &enable_so_shdma_prep_memcpy_fndecl_7451
150792 +enable_so___bio_add_page_fndecl_7456 __bio_add_page fndecl 5-4-0 7456 NULL
150793 +enable_so_size_vmci_handle_arr_7457 size vmci_handle_arr 0 7457 NULL
150794 +enable_so_len_sk_buff_7460 len sk_buff 0 7460 NULL
150795 +enable_so_hpfs_alloc_sector_fndecl_7462 hpfs_alloc_sector fndecl 0-4-3-2 7462 NULL
150796 +enable_so_num_present_cpu_lpfc_sli4_hba_7465 num_present_cpu lpfc_sli4_hba 0 7465 NULL nohasharray
150797 +enable_so_cmdline_store_fndecl_7465 cmdline_store fndecl 4 7465 &enable_so_num_present_cpu_lpfc_sli4_hba_7465
150798 +enable_so_plcp_mimo2_iwl_rate_info_7466 plcp_mimo2 iwl_rate_info 0 7466 NULL
150799 +enable_so_Length__SECURITY_BUFFER_7467 Length _SECURITY_BUFFER 0 7467 NULL
150800 +enable_so_buffer_dma_ehci_qtd_7468 buffer_dma ehci_qtd 0 7468 NULL nohasharray
150801 +enable_so_minors_gigaset_driver_7468 minors gigaset_driver 0 7468 &enable_so_buffer_dma_ehci_qtd_7468
150802 +enable_so_block_to_sectors_fndecl_7472 block_to_sectors fndecl 0-2 7472 NULL
150803 +enable_so_devmem_is_allowed_fndecl_7475 devmem_is_allowed fndecl 1 7475 NULL
150804 +enable_so_ieee80211_if_read_tsf_fndecl_7479 ieee80211_if_read_tsf fndecl 3 7479 NULL
150805 +enable_so_status_c67x00_urb_priv_7480 status c67x00_urb_priv 0 7480 NULL
150806 +enable_so_mcs_rate_info_7481 mcs rate_info 0 7481 NULL
150807 +enable_so_rxrpc_server_keyring_fndecl_7484 rxrpc_server_keyring fndecl 3 7484 NULL
150808 +enable_so_f_width_fimc_frame_7488 f_width fimc_frame 0 7488 NULL nohasharray
150809 +enable_so_req_capsule_get_size_fndecl_7488 req_capsule_get_size fndecl 0 7488 &enable_so_f_width_fimc_frame_7488
150810 +enable_so_s_log_block_size_ext2_super_block_7490 s_log_block_size ext2_super_block 0 7490 NULL
150811 +enable_so_can_nice_fndecl_7498 can_nice fndecl 2 7498 NULL
150812 +enable_so_ri_lsegs_start_nilfs_recovery_info_7501 ri_lsegs_start nilfs_recovery_info 0 7501 NULL
150813 +enable_so_calculate_inocache_hashsize_fndecl_7506 calculate_inocache_hashsize fndecl 0-1 7506 NULL
150814 +enable_so_btrfs_truncate_inode_items_fndecl_7511 btrfs_truncate_inode_items fndecl 4 7511 NULL
150815 +enable_so_alloc_disk_node_fndecl_7513 alloc_disk_node fndecl 1 7513 NULL
150816 +enable_so_netlink_change_ngroups_fndecl_7514 netlink_change_ngroups fndecl 2 7514 NULL
150817 +enable_so_src_len_akcipher_request_7526 src_len akcipher_request 0 7526 NULL
150818 +enable_so_xfs_iomap_eof_want_preallocate_fndecl_7527 xfs_iomap_eof_want_preallocate fndecl 4-3 7527 NULL
150819 +enable_so_cfg_hba_queue_depth_lpfc_hba_7534 cfg_hba_queue_depth lpfc_hba 0 7534 NULL
150820 +enable_so_delta_mmap_mm_struct_7536 delta_mmap mm_struct 0 7536 NULL
150821 +enable_so_length_ndis_80211_ssid_7537 length ndis_80211_ssid 0 7537 NULL
150822 +enable_so_size_hpi_response_header_7541 size hpi_response_header 0 7541 NULL
150823 +enable_so_hd_nirqs_hpet_data_7558 hd_nirqs hpet_data 0 7558 NULL
150824 +enable_so_raid10_resize_fndecl_7562 raid10_resize fndecl 2 7562 NULL
150825 +enable_so_max_channels_snd_pcm_chmap_7565 max_channels snd_pcm_chmap 0 7565 NULL
150826 +enable_so_duplicateIXtree_fndecl_7568 duplicateIXtree fndecl 3-2 7568 NULL
150827 +enable_so_wqe_fcoe_cqe_7572 wqe fcoe_cqe 0 7572 NULL
150828 +enable_so_mISDN_sock_sendmsg_fndecl_7584 mISDN_sock_sendmsg fndecl 3 7584 NULL nohasharray
150829 +enable_so_tcp_manip_pkt_fndecl_7584 tcp_manip_pkt fndecl 4 7584 &enable_so_mISDN_sock_sendmsg_fndecl_7584
150830 +enable_so_tuple_size_blk_integrity_7585 tuple_size blk_integrity 0 7585 NULL
150831 +enable_so_count_ivtvfb_dma_frame_7586 count ivtvfb_dma_frame 0 7586 NULL
150832 +enable_so_length_sctp_chunkhdr_7587 length sctp_chunkhdr 0 7587 NULL
150833 +enable_so_ftdi_elan_edset_input_fndecl_7588 ftdi_elan_edset_input fndecl 0 7588 NULL
150834 +enable_so_lpfc_debugfs_read_fndecl_7589 lpfc_debugfs_read fndecl 3 7589 NULL
150835 +enable_so_scan_index_iio_chan_spec_7597 scan_index iio_chan_spec 0 7597 NULL
150836 +enable_so_q_blkno_xfs_dquot_7601 q_blkno xfs_dquot 0 7601 NULL
150837 +enable_so_pathmtu_sctp_transport_7603 pathmtu sctp_transport 0 7603 NULL
150838 +enable_so_fuse_listxattr_fndecl_7605 fuse_listxattr fndecl 3 7605 NULL
150839 +enable_so_pzl_urb_dequeue_fndecl_7607 pzl_urb_dequeue fndecl 3 7607 NULL
150840 +enable_so_rcvidx_w6692B_hw_7613 rcvidx w6692B_hw 0 7613 NULL
150841 +enable_so_id_hid_report_7618 id hid_report 0 7618 NULL
150842 +enable_so_drm_fb_helper_fill_var_fndecl_7619 drm_fb_helper_fill_var fndecl 4-3 7619 NULL
150843 +enable_so_physical_scrub_page_7621 physical scrub_page 0 7621 NULL
150844 +enable_so_block_udf_vds_record_7623 block udf_vds_record 0 7623 NULL
150845 +enable_so_ocfs2_free_suballoc_bits_fndecl_7627 ocfs2_free_suballoc_bits fndecl 5 7627 NULL nohasharray
150846 +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
150847 +enable_so_agp_allocate_memory_wrap_fndecl_7635 agp_allocate_memory_wrap fndecl 1 7635 NULL
150848 +enable_so_virt_to_scatterlist_fndecl_7637 virt_to_scatterlist fndecl 2 7637 NULL
150849 +enable_so_read_cable_det_adv76xx_chip_info_7641 read_cable_det adv76xx_chip_info 0 7641 NULL
150850 +enable_so_num_sge_ib_uverbs_recv_wr_7647 num_sge ib_uverbs_recv_wr 0 7647 NULL
150851 +enable_so_rd_write_section_fndecl_7649 rd_write_section fndecl 4 7649 NULL
150852 +enable_so_xpt_remotelen_svc_xprt_7655 xpt_remotelen svc_xprt 0 7655 NULL
150853 +enable_so_s_fsize_ufs_sb_private_info_7659 s_fsize ufs_sb_private_info 0 7659 NULL nohasharray
150854 +enable_so_maxwritelen_proc_data_7659 maxwritelen proc_data 0 7659 &enable_so_s_fsize_ufs_sb_private_info_7659
150855 +enable_so_brcmf_proto_bcdc_txdata_fndecl_7662 brcmf_proto_bcdc_txdata fndecl 3 7662 NULL
150856 +enable_so_to_perf_branch_entry_7663 to perf_branch_entry 0 7663 NULL
150857 +enable_so_compat_SyS_migrate_pages_fndecl_7673 compat_SyS_migrate_pages fndecl 2 7673 NULL
150858 +enable_so_rds_sendmsg_fndecl_7675 rds_sendmsg fndecl 3 7675 NULL
150859 +enable_so_nfsd_max_blksize_vardecl_7678 nfsd_max_blksize vardecl 0 7678 NULL
150860 +enable_so_shmem_read_mapping_page_gfp_fndecl_7681 shmem_read_mapping_page_gfp fndecl 2 7681 NULL
150861 +enable_so_deh_location_reiserfs_de_head_7682 deh_location reiserfs_de_head 0 7682 NULL nohasharray
150862 +enable_so_UniStrnlen_fndecl_7682 UniStrnlen fndecl 0 7682 &enable_so_deh_location_reiserfs_de_head_7682
150863 +enable_so_pm860x_page_bulk_read_fndecl_7685 pm860x_page_bulk_read fndecl 3 7685 NULL nohasharray
150864 +enable_so_l1oip_socket_send_fndecl_7685 l1oip_socket_send fndecl 7 7685 &enable_so_pm860x_page_bulk_read_fndecl_7685
150865 +enable_so_cfg80211_sme_get_conn_ies_fndecl_7687 cfg80211_sme_get_conn_ies fndecl 3 7687 NULL
150866 +enable_so_num_gpios_stmpe_7689 num_gpios stmpe 0 7689 NULL
150867 +enable_so_di_extsize_xfs_icdinode_7693 di_extsize xfs_icdinode 0 7693 NULL
150868 +enable_so_record_length_cper_record_header_7697 record_length cper_record_header 0 7697 NULL
150869 +enable_so_mxt_upload_cfg_mem_fndecl_7702 mxt_upload_cfg_mem fndecl 4 7702 NULL
150870 +enable_so_rf_cpos_ocfs2_refcount_block_7704 rf_cpos ocfs2_refcount_block 0 7704 NULL nohasharray
150871 +enable_so_hdr_len_virtio_net_hdr_7704 hdr_len virtio_net_hdr 0 7704 &enable_so_rf_cpos_ocfs2_refcount_block_7704 nohasharray
150872 +enable_so_befs_nls2utf_fndecl_7704 befs_nls2utf fndecl 3 7704 &enable_so_hdr_len_virtio_net_hdr_7704
150873 +enable_so_tx_tx_start_templates_read_fndecl_7711 tx_tx_start_templates_read fndecl 3 7711 NULL
150874 +enable_so_stride_pci_sriov_7712 stride pci_sriov 0 7712 NULL
150875 +enable_so_i915_gem_get_gtt_size_fndecl_7714 i915_gem_get_gtt_size fndecl 0-2 7714 NULL
150876 +enable_so_ceph_pool_perm_check_fndecl_7729 ceph_pool_perm_check fndecl 0 7729 NULL nohasharray
150877 +enable_so_if_ipx_offset_ipx_interface_7729 if_ipx_offset ipx_interface 0 7729 &enable_so_ceph_pool_perm_check_fndecl_7729
150878 +enable_so_get_num_rx_queues_rtnl_link_ops_7733 get_num_rx_queues rtnl_link_ops 0 7733 NULL
150879 +enable_so_access_remote_vm_fndecl_7734 access_remote_vm fndecl 4-0-2 7734 NULL nohasharray
150880 +enable_so_iwl_dbgfs_txfifo_flush_write_fndecl_7734 iwl_dbgfs_txfifo_flush_write fndecl 3 7734 &enable_so_access_remote_vm_fndecl_7734
150881 +enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737 iscsit_find_cmd_from_itt_or_dump fndecl 3 7737 NULL nohasharray
150882 +enable_so_driver_state_read_fndecl_7737 driver_state_read fndecl 3 7737 &enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737
150883 +enable_so_vxres_aty128_crtc_7753 vxres aty128_crtc 0 7753 NULL
150884 +enable_so_ide_get_best_pio_mode_fndecl_7756 ide_get_best_pio_mode fndecl 0-2-3 7756 NULL nohasharray
150885 +enable_so_mlx4_enable_sriov_fndecl_7756 mlx4_enable_sriov fndecl 4-3 7756 &enable_so_ide_get_best_pio_mode_fndecl_7756 nohasharray
150886 +enable_so_max_eq_lpfc_max_cfg_param_7756 max_eq lpfc_max_cfg_param 0 7756 &enable_so_mlx4_enable_sriov_fndecl_7756
150887 +enable_so_xfs_dir2_free_read_fndecl_7759 xfs_dir2_free_read fndecl 3 7759 NULL
150888 +enable_so_ext4_fname_crypto_alloc_buffer_fndecl_7767 ext4_fname_crypto_alloc_buffer fndecl 2 7767 NULL
150889 +enable_so_pps_devt_vardecl_pps_c_7772 pps_devt vardecl_pps.c 0 7772 NULL
150890 +enable_so_ocfs2_get_suballoc_slot_bit_fndecl_7773 ocfs2_get_suballoc_slot_bit fndecl 2 7773 NULL
150891 +enable_so_t_data_nents_orig_se_cmd_7775 t_data_nents_orig se_cmd 0 7775 NULL
150892 +enable_so_split_mem_range_fndecl_7776 split_mem_range fndecl 4-3 7776 NULL
150893 +enable_so_mode_size_cyttsp4_sysinfo_ofs_7780 mode_size cyttsp4_sysinfo_ofs 0 7780 NULL
150894 +enable_so_alloc_ep_fndecl_7782 alloc_ep fndecl 1 7782 NULL
150895 +enable_so_num_tags_nvkm_ltc_priv_7784 num_tags nvkm_ltc_priv 0 7784 NULL
150896 +enable_so_mmu_private_affs_inode_info_7785 mmu_private affs_inode_info 0 7785 NULL
150897 +enable_so_st_do_scsi_fndecl_7789 st_do_scsi fndecl 4 7789 NULL
150898 +enable_so_qxl_framebuffer_surface_dirty_fndecl_7791 qxl_framebuffer_surface_dirty fndecl 6 7791 NULL nohasharray
150899 +enable_so_pg_read_fndecl_7791 pg_read fndecl 3 7791 &enable_so_qxl_framebuffer_surface_dirty_fndecl_7791
150900 +enable_so_inode_getblk_fndecl_7794 inode_getblk fndecl 2-0 7794 NULL
150901 +enable_so___clk_speculate_rates_fndecl_7795 __clk_speculate_rates fndecl 2 7795 NULL
150902 +enable_so_remove_advertising_fndecl_7798 remove_advertising fndecl 4 7798 NULL
150903 +enable_so_error_error_frame_cts_nul_flid_read_fndecl_7805 error_error_frame_cts_nul_flid_read fndecl 3 7805 NULL
150904 +enable_so_lprocfs_read_frac_helper_fndecl_7806 lprocfs_read_frac_helper fndecl 0 7806 NULL
150905 +enable_so_qnx4_get_block_fndecl_7810 qnx4_get_block fndecl 2 7810 NULL
150906 +enable_so_cciss_max_sectors_ctlr_info_7811 cciss_max_sectors ctlr_info 0 7811 NULL nohasharray
150907 +enable_so_len_nfs_diropargs_7811 len nfs_diropargs 0 7811 &enable_so_cciss_max_sectors_ctlr_info_7811
150908 +enable_so_plen_hci_event_hdr_7815 plen hci_event_hdr 0 7815 NULL
150909 +enable_so_mb_cache_create_fndecl_7816 mb_cache_create fndecl 2 7816 NULL
150910 +enable_so_node_ino_num_f2fs_sb_info_7818 node_ino_num f2fs_sb_info 0 7818 NULL
150911 +enable_so_length_scsi_mode_data_7819 length scsi_mode_data 0 7819 NULL
150912 +enable_so_id_avail_ipack_device_7822 id_avail ipack_device 0 7822 NULL
150913 +enable_so_n_stats_ethtool_stats_7823 n_stats ethtool_stats 0 7823 NULL
150914 +enable_so_get_pipe_fndecl_7825 get_pipe fndecl 0-2 7825 NULL
150915 +enable_so_nabs_joydev_7827 nabs joydev 0 7827 NULL
150916 +enable_so_x1_virtio_gpu_framebuffer_7830 x1 virtio_gpu_framebuffer 0 7830 NULL
150917 +enable_so_minstrel_stats_read_fndecl_7833 minstrel_stats_read fndecl 3 7833 NULL
150918 +enable_so_rtpref_nfs_fsinfo_7835 rtpref nfs_fsinfo 0 7835 NULL
150919 +enable_so_nonstatic_find_mem_region_fndecl_7838 nonstatic_find_mem_region fndecl 1-2 7838 NULL nohasharray
150920 +enable_so_shadow_rd08_fndecl_7838 shadow_rd08 fndecl 2 7838 &enable_so_nonstatic_find_mem_region_fndecl_7838
150921 +enable_so_sys_truncate_fndecl_7846 sys_truncate fndecl 2 7846 NULL
150922 +enable_so_sl_datalen_nfsd4_slot_7859 sl_datalen nfsd4_slot 0 7859 NULL
150923 +enable_so_wqe_shift_mlx4_ib_wq_7860 wqe_shift mlx4_ib_wq 0 7860 NULL
150924 +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
150925 +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
150926 +enable_so_cyapa_i2c_read_fndecl_7870 cyapa_i2c_read fndecl 3 7870 NULL
150927 +enable_so_mapped_vram_mb862xxfb_par_7872 mapped_vram mb862xxfb_par 0 7872 NULL
150928 +enable_so_iscsi_tcp_dgst_header_fndecl_7878 iscsi_tcp_dgst_header fndecl 3 7878 NULL
150929 +enable_so_used_snd_ctl_elem_list_7883 used snd_ctl_elem_list 0 7883 NULL
150930 +enable_so_rxstatus_epic_rx_desc_7884 rxstatus epic_rx_desc 0 7884 NULL nohasharray
150931 +enable_so_sd_read_data_fndecl_7884 sd_read_data fndecl 3 7884 &enable_so_rxstatus_epic_rx_desc_7884 nohasharray
150932 +enable_so_freecom_readdata_fndecl_7884 freecom_readdata fndecl 3-4 7884 &enable_so_sd_read_data_fndecl_7884
150933 +enable_so_ath6kl_wmi_send_mgmt_cmd_fndecl_7888 ath6kl_wmi_send_mgmt_cmd fndecl 7-2 7888 NULL
150934 +enable_so_ieee80211_if_read_dot11MeshHWMPperrMinInterval_fndecl_7889 ieee80211_if_read_dot11MeshHWMPperrMinInterval fndecl 3 7889 NULL
150935 +enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906 ath6kl_wmi_info_req_cmd fndecl 2 7906 NULL nohasharray
150936 +enable_so_vdi_size_vxfs_inode_info_7906 vdi_size vxfs_inode_info 0 7906 &enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906
150937 +enable_so_mode_id_vbe_mode_ib_7913 mode_id vbe_mode_ib 0 7913 NULL
150938 +enable_so_depth_s5p_jpeg_fmt_7914 depth s5p_jpeg_fmt 0 7914 NULL
150939 +enable_so_rx_ring_size_vmxnet3_adapter_7917 rx_ring_size vmxnet3_adapter 0 7917 NULL
150940 +enable_so_ccw_bmove_fndecl_7918 ccw_bmove fndecl 5-7-3-8-6-4 7918 NULL
150941 +enable_so_uvesafb_setpalette_fndecl_7922 uvesafb_setpalette fndecl 2 7922 NULL
150942 +enable_so_raid5_size_fndecl_7933 raid5_size fndecl 0-3-2 7933 NULL
150943 +enable_so_jp_journal_size_journal_params_7943 jp_journal_size journal_params 0 7943 NULL
150944 +enable_so_psb_unlocked_ioctl_fndecl_7949 psb_unlocked_ioctl fndecl 2 7949 NULL
150945 +enable_so_jme_change_mtu_fndecl_7964 jme_change_mtu fndecl 2 7964 NULL nohasharray
150946 +enable_so_sd_start_fndecl_7964 sd_start fndecl 0 7964 &enable_so_jme_change_mtu_fndecl_7964
150947 +enable_so_squashfs_read_table_fndecl_7970 squashfs_read_table fndecl 3 7970 NULL nohasharray
150948 +enable_so_ticket_len_rxk5_key_7970 ticket_len rxk5_key 0 7970 &enable_so_squashfs_read_table_fndecl_7970
150949 +enable_so__sp2d_alloc_fndecl_7971 _sp2d_alloc fndecl 1-3-2 7971 NULL
150950 +enable_so_peb_count_ubi_device_7987 peb_count ubi_device 0 7987 NULL
150951 +enable_so_initrd_end_vardecl_7989 initrd_end vardecl 0 7989 NULL
150952 +enable_so_ip_append_data_fndecl_7997 ip_append_data fndecl 6-5 7997 NULL
150953 +enable_so_find_resource_fndecl_8013 find_resource fndecl 3 8013 NULL nohasharray
150954 +enable_so_encode_opaque_fixed_fndecl_8013 encode_opaque_fixed fndecl 3 8013 &enable_so_find_resource_fndecl_8013 nohasharray
150955 +enable_so_ocfs2_read_quota_phys_block_fndecl_8013 ocfs2_read_quota_phys_block fndecl 2 8013 &enable_so_encode_opaque_fixed_fndecl_8013
150956 +enable_so_max_mtu_mlx4_en_priv_8015 max_mtu mlx4_en_priv 0 8015 NULL
150957 +enable_so_svcxdr_dupstr_fndecl_8016 svcxdr_dupstr fndecl 3 8016 NULL
150958 +enable_so_keyctl_instantiate_key_iov_fndecl_8026 keyctl_instantiate_key_iov fndecl 3 8026 NULL
150959 +enable_so_period_size_snd_pcm_runtime_8027 period_size snd_pcm_runtime 0 8027 NULL
150960 +enable_so_length_e1000_rx_desc_8032 length e1000_rx_desc 0 8032 NULL
150961 +enable_so_mcast_mtu_ipoib_dev_priv_8033 mcast_mtu ipoib_dev_priv 0 8033 NULL
150962 +enable_so_gtt_base_align_radeon_mc_8035 gtt_base_align radeon_mc 0 8035 NULL
150963 +enable_so_vbi_width_au0828_dev_8038 vbi_width au0828_dev 0 8038 NULL
150964 +enable_so_size_nvkm_fifo_chan_8052 size nvkm_fifo_chan 0 8052 NULL
150965 +enable_so_ieee80211_tdls_build_mgmt_packet_data_fndecl_8053 ieee80211_tdls_build_mgmt_packet_data fndecl 8 8053 NULL
150966 +enable_so_pd_handles_sz_MPT3SAS_ADAPTER_8057 pd_handles_sz MPT3SAS_ADAPTER 0 8057 NULL
150967 +enable_so_mmio_megabytes_vmbus_channel_offer_8058 mmio_megabytes vmbus_channel_offer 0 8058 NULL nohasharray
150968 +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
150969 +enable_so_ceph_read_dir_fndecl_8062 ceph_read_dir fndecl 3 8062 NULL
150970 +enable_so_btrfs_unlink_inode_fndecl_8064 btrfs_unlink_inode fndecl 6 8064 NULL
150971 +enable_so_jffs2_trusted_setxattr_fndecl_8075 jffs2_trusted_setxattr fndecl 4 8075 NULL
150972 +enable_so_savage_map_video_fndecl_8078 savage_map_video fndecl 2 8078 NULL
150973 +enable_so_encode_string_fndecl_8079 encode_string fndecl 2 8079 NULL
150974 +enable_so_copy_counters_to_user_fndecl_8080 copy_counters_to_user fndecl 5 8080 NULL
150975 +enable_so_out_pipe_usbtest_dev_8085 out_pipe usbtest_dev 0 8085 NULL
150976 +enable_so_length_packet_8086 length packet 0 8086 NULL
150977 +enable_so_lpt_lnum_bits_ubifs_info_8094 lpt_lnum_bits ubifs_info 0 8094 NULL
150978 +enable_so_ali1535_smba_vardecl_i2c_ali1535_c_8095 ali1535_smba vardecl_i2c-ali1535.c 0 8095 NULL
150979 +enable_so_sd_complete_frame_fndecl_8096 sd_complete_frame fndecl 3 8096 NULL
150980 +enable_so_dvb_dvr_read_fndecl_8098 dvb_dvr_read fndecl 3 8098 NULL nohasharray
150981 +enable_so_batchcount_kmem_cache_8098 batchcount kmem_cache 0 8098 &enable_so_dvb_dvr_read_fndecl_8098
150982 +enable_so_sddr55_read_data_fndecl_8099 sddr55_read_data fndecl 4-3 8099 NULL
150983 +enable_so_simple_transaction_read_fndecl_8103 simple_transaction_read fndecl 3 8103 NULL
150984 +enable_so_ext4_end_io_dio_fndecl_8107 ext4_end_io_dio fndecl 2-3 8107 NULL
150985 +enable_so_tgt_count_blogic_adapter_8109 tgt_count blogic_adapter 0 8109 NULL
150986 +enable_so_acpi_ut_get_resource_header_length_fndecl_8110 acpi_ut_get_resource_header_length fndecl 0 8110 NULL
150987 +enable_so_a8293_rd_fndecl_8111 a8293_rd fndecl 3 8111 NULL
150988 +enable_so_speed_channel_8113 speed channel 0 8113 NULL
150989 +enable_so_up_dnode_8116 up dnode 0 8116 NULL
150990 +enable_so___copy_user_nocache_fndecl_8122 __copy_user_nocache fndecl 0 8122 NULL
150991 +enable_so_m_pblk_f2fs_map_blocks_8129 m_pblk f2fs_map_blocks 0 8129 NULL
150992 +enable_so_jffs2_scan_inode_node_fndecl_8132 jffs2_scan_inode_node fndecl 4 8132 NULL
150993 +enable_so_cfg_size_pci_dev_8134 cfg_size pci_dev 0 8134 NULL
150994 +enable_so_wpa_ie_len_libipw_network_8137 wpa_ie_len libipw_network 0 8137 NULL nohasharray
150995 +enable_so_write_mem_fndecl_8137 write_mem fndecl 3 8137 &enable_so_wpa_ie_len_libipw_network_8137 nohasharray
150996 +enable_so_ucNumDPMLevels__ATOM_PPLIB_STATE_V2_8137 ucNumDPMLevels _ATOM_PPLIB_STATE_V2 0 8137 &enable_so_write_mem_fndecl_8137
150997 +enable_so_max_xmit_dlength_iscsi_conn_8139 max_xmit_dlength iscsi_conn 0 8139 NULL nohasharray
150998 +enable_so_nct6683_find_fndecl_8139 nct6683_find fndecl 0 8139 &enable_so_max_xmit_dlength_iscsi_conn_8139
150999 +enable_so_iic_tpm_write_long_fndecl_8143 iic_tpm_write_long fndecl 3 8143 NULL
151000 +enable_so_port_cnt_ipath_portdata_8144 port_cnt ipath_portdata 0 8144 NULL
151001 +enable_so_entry_length_fndecl_8150 entry_length fndecl 0 8150 NULL
151002 +enable_so_sys_preadv_fndecl_8159 sys_preadv fndecl 3 8159 NULL
151003 +enable_so_hr_start_block_o2hb_region_8162 hr_start_block o2hb_region 0 8162 NULL
151004 +enable_so_num_custom_params_pinctrl_desc_8163 num_custom_params pinctrl_desc 0 8163 NULL nohasharray
151005 +enable_so_fuse_direct_IO_fndecl_8163 fuse_direct_IO fndecl 3 8163 &enable_so_num_custom_params_pinctrl_desc_8163
151006 +enable_so_devnum_denali_nand_info_8164 devnum denali_nand_info 0 8164 NULL nohasharray
151007 +enable_so_read_len_ddb_flashio_8164 read_len ddb_flashio 0 8164 &enable_so_devnum_denali_nand_info_8164
151008 +enable_so_tx_ring_count_igb_adapter_8171 tx_ring_count igb_adapter 0 8171 NULL
151009 +enable_so_jumpshot_write_data_fndecl_8172 jumpshot_write_data fndecl 4 8172 NULL
151010 +enable_so_blksz_mmc_data_8174 blksz mmc_data 0 8174 NULL nohasharray
151011 +enable_so_ptr_mask_efx_tx_queue_8174 ptr_mask efx_tx_queue 0 8174 &enable_so_blksz_mmc_data_8174
151012 +enable_so_avail_ubifs_wbuf_8176 avail ubifs_wbuf 0 8176 NULL
151013 +enable_so_pdu_read_fndecl_8183 pdu_read fndecl 3 8183 NULL
151014 +enable_so_nsftids_tid_info_8187 nsftids tid_info 0 8187 NULL
151015 +enable_so_brcms_c_get_header_len_fndecl_8189 brcms_c_get_header_len fndecl 0 8189 NULL
151016 +enable_so_resource_alignment_fndecl_8199 resource_alignment fndecl 0 8199 NULL
151017 +enable_so_sci_dma_rx_push_fndecl_8206 sci_dma_rx_push fndecl 2 8206 NULL
151018 +enable_so_tx_ring_count_fm10k_intfc_8210 tx_ring_count fm10k_intfc 0 8210 NULL
151019 +enable_so_mmap_size_kioctx_8213 mmap_size kioctx 0 8213 NULL
151020 +enable_so_clear_extent_bit_fndecl_8215 clear_extent_bit fndecl 2-3 8215 NULL nohasharray
151021 +enable_so_pci_scan_bus_fndecl_8215 pci_scan_bus fndecl 1 8215 &enable_so_clear_extent_bit_fndecl_8215
151022 +enable_so_be_f_offset_pnfs_block_extent_8222 be_f_offset pnfs_block_extent 0 8222 NULL
151023 +enable_so_eeprom_size_iwl_base_params_8231 eeprom_size iwl_base_params 0 8231 NULL
151024 +enable_so_SYSC_llistxattr_fndecl_8238 SYSC_llistxattr fndecl 3 8238 NULL
151025 +enable_so_ocfs2_remove_extent_fndecl_8243 ocfs2_remove_extent fndecl 4-3 8243 NULL
151026 +enable_so_stk_read_fndecl_8245 stk_read fndecl 3 8245 NULL
151027 +enable_so_num_tasks_per_conn_iscsi_kwqe_init1_8249 num_tasks_per_conn iscsi_kwqe_init1 0 8249 NULL
151028 +enable_so_sys_sched_setaffinity_fndecl_8253 sys_sched_setaffinity fndecl 2 8253 NULL
151029 +enable_so_vmw_cursor_update_dmabuf_fndecl_8254 vmw_cursor_update_dmabuf fndecl 4-3 8254 NULL
151030 +enable_so_default_erasesize_fndecl_8255 default_erasesize fndecl 0 8255 NULL
151031 +enable_so_num_alloc_vsi_i40e_pf_8259 num_alloc_vsi i40e_pf 0 8259 NULL
151032 +enable_so_buf_size_ispstat_buffer_8262 buf_size ispstat_buffer 0 8262 NULL
151033 +enable_so_datablkcnt_capi_register_params_8263 datablkcnt capi_register_params 0 8263 NULL
151034 +enable_so_cow_file_range_inline_fndecl_8264 cow_file_range_inline fndecl 4-3 8264 NULL
151035 +enable_so_datablklen_capi_register_params_8275 datablklen capi_register_params 0 8275 NULL nohasharray
151036 +enable_so_proc_scsi_devinfo_write_fndecl_8275 proc_scsi_devinfo_write fndecl 3 8275 &enable_so_datablklen_capi_register_params_8275
151037 +enable_so_cdc_ncm_check_tx_max_fndecl_8278 cdc_ncm_check_tx_max fndecl 0-2 8278 NULL
151038 +enable_so_streams_mcs_group_8279 streams mcs_group 0 8279 NULL
151039 +enable_so_msg_len_rndis_message_8281 msg_len rndis_message 0 8281 NULL
151040 +enable_so___sg_free_table_fndecl_8283 __sg_free_table fndecl 2 8283 NULL
151041 +enable_so_tail_len_cfg80211_beacon_data_8293 tail_len cfg80211_beacon_data 0 8293 NULL
151042 +enable_so_ns_blocks_per_segment_the_nilfs_8295 ns_blocks_per_segment the_nilfs 0 8295 NULL
151043 +enable_so_c_data_len_pvr2_ioread_8300 c_data_len pvr2_ioread 0 8300 NULL
151044 +enable_so_ath6kl_fwlog_read_fndecl_8310 ath6kl_fwlog_read fndecl 3 8310 NULL
151045 +enable_so_ipath_rcvtidcnt_ipath_devdata_8311 ipath_rcvtidcnt ipath_devdata 0 8311 NULL
151046 +enable_so_wil_read_file_recovery_fndecl_8315 wil_read_file_recovery fndecl 3 8315 NULL
151047 +enable_so_max_data_size_ircomm_tty_cb_8316 max_data_size ircomm_tty_cb 0 8316 NULL nohasharray
151048 +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
151049 +enable_so_depth_vim2m_fmt_8319 depth vim2m_fmt 0 8319 NULL
151050 +enable_so_sv_max_payload_svc_serv_8322 sv_max_payload svc_serv 0 8322 NULL
151051 +enable_so_vga_video_font_height_vardecl_vgacon_c_8324 vga_video_font_height vardecl_vgacon.c 0 8324 NULL
151052 +enable_so_xfs_bmap_longest_free_extent_fndecl_8327 xfs_bmap_longest_free_extent fndecl 2 8327 NULL
151053 +enable_so_vhci_urb_dequeue_fndecl_8333 vhci_urb_dequeue fndecl 3 8333 NULL
151054 +enable_so_disks_stripe_head_8349 disks stripe_head 0 8349 NULL
151055 +enable_so_ch_do_scsi_fndecl_8353 ch_do_scsi fndecl 5 8353 NULL nohasharray
151056 +enable_so_req_pay_size_qlcnic_bc_trans_8353 req_pay_size qlcnic_bc_trans 0 8353 &enable_so_ch_do_scsi_fndecl_8353
151057 +enable_so_rx_size_i2400mu_8374 rx_size i2400mu 0 8374 NULL nohasharray
151058 +enable_so_venus_link_fndecl_8374 venus_link fndecl 5 8374 &enable_so_rx_size_i2400mu_8374
151059 +enable_so_height_deinterlace_q_data_8376 height deinterlace_q_data 0 8376 NULL nohasharray
151060 +enable_so_afs_lookup_filldir_fndecl_8376 afs_lookup_filldir fndecl 5 8376 &enable_so_height_deinterlace_q_data_8376
151061 +enable_so_do_writepages_fndecl_8382 do_writepages fndecl 0 8382 NULL
151062 +enable_so_current_read_offset_scif_rb_8387 current_read_offset scif_rb 0 8387 NULL
151063 +enable_so_riva_get_cmap_len_fndecl_8393 riva_get_cmap_len fndecl 0 8393 NULL
151064 +enable_so_depth_tc_sfq_qopt_v1_8394 depth tc_sfq_qopt_v1 0 8394 NULL
151065 +enable_so_ceph_pagelist_append_fndecl_8397 ceph_pagelist_append fndecl 3 8397 NULL
151066 +enable_so_wusb_ccm_mac_fndecl_8404 wusb_ccm_mac fndecl 7 8404 NULL
151067 +enable_so_del_ptr_fndecl_8406 del_ptr fndecl 4 8406 NULL
151068 +enable_so_pkt_size_data_cmd_8407 pkt_size data_cmd 0 8407 NULL
151069 +enable_so_bitrate_snd_at73c213_8409 bitrate snd_at73c213 0 8409 NULL
151070 +enable_so_wNdpOutPayloadRemainder_usb_cdc_ncm_ntb_parameters_8415 wNdpOutPayloadRemainder usb_cdc_ncm_ntb_parameters 0 8415 NULL
151071 +enable_so_ring_blocks_vxge_hw_ring_config_8417 ring_blocks vxge_hw_ring_config 0 8417 NULL nohasharray
151072 +enable_so_lbs_lowrssi_read_fndecl_8417 lbs_lowrssi_read fndecl 3 8417 &enable_so_ring_blocks_vxge_hw_ring_config_8417
151073 +enable_so_i_ino_inode_8428 i_ino inode 0 8428 NULL
151074 +enable_so_key_mgmt_orinoco_private_8430 key_mgmt orinoco_private 0 8430 NULL
151075 +enable_so_meson_clk_init_fndecl_8435 meson_clk_init fndecl 2 8435 NULL
151076 +enable_so_block_dm_buffer_8440 block dm_buffer 0 8440 NULL
151077 +enable_so_offset_l2tp_session_8443 offset l2tp_session 0 8443 NULL
151078 +enable_so_frame_size_tlan_list_8446 frame_size tlan_list 0 8446 NULL
151079 +enable_so_ql_process_mac_split_rx_intr_fndecl_8452 ql_process_mac_split_rx_intr fndecl 4 8452 NULL nohasharray
151080 +enable_so_len_scifioctl_msg_8452 len scifioctl_msg 0 8452 &enable_so_ql_process_mac_split_rx_intr_fndecl_8452
151081 +enable_so_SyS_lsetxattr_fndecl_8453 SyS_lsetxattr fndecl 4 8453 NULL
151082 +enable_so_parport_pc_probe_port_fndecl_8454 parport_pc_probe_port fndecl 1 8454 NULL
151083 +enable_so_pagepool_size_gf100_grctx_oclass_8459 pagepool_size gf100_grctx_oclass 0 8459 NULL
151084 +enable_so_extra_bytes_asc_q_done_info_8460 extra_bytes asc_q_done_info 0 8460 NULL
151085 +enable_so_sg_off_isert_data_buf_8466 sg_off isert_data_buf 0 8466 NULL
151086 +enable_so_free_enic_rfs_flw_tbl_8469 free enic_rfs_flw_tbl 0 8469 NULL
151087 +enable_so_drm_gem_create_mmap_offset_size_fndecl_8471 drm_gem_create_mmap_offset_size fndecl 2 8471 NULL nohasharray
151088 +enable_so_shmem_truncate_range_fndecl_8471 shmem_truncate_range fndecl 2-3 8471 &enable_so_drm_gem_create_mmap_offset_size_fndecl_8471
151089 +enable_so_lbytes_tree_balance_8472 lbytes tree_balance 0 8472 NULL
151090 +enable_so_bpp_plane0_bdisp_fmt_8473 bpp_plane0 bdisp_fmt 0 8473 NULL
151091 +enable_so_snd_seq_device_new_fndecl_8474 snd_seq_device_new fndecl 4 8474 NULL
151092 +enable_so_screen_size_fb_info_8480 screen_size fb_info 0 8480 NULL
151093 +enable_so_length_btrfs_bio_stripe_8481 length btrfs_bio_stripe 0 8481 NULL
151094 +enable_so_i915_gem_get_gtt_alignment_fndecl_8484 i915_gem_get_gtt_alignment fndecl 2 8484 NULL
151095 +enable_so_mt76_ampdu_action_fndecl_8487 mt76_ampdu_action fndecl 5 8487 NULL nohasharray
151096 +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
151097 +enable_so_ecryptfs_send_message_locked_fndecl_8490 ecryptfs_send_message_locked fndecl 2 8490 NULL
151098 +enable_so_get_count_order_fndecl_8491 get_count_order fndecl 0 8491 NULL
151099 +enable_so_data_size_ipmi_smi_msg_8493 data_size ipmi_smi_msg 0 8493 NULL
151100 +enable_so_data_write_fndecl_8494 data_write fndecl 3 8494 NULL
151101 +enable_so_isr_rx_procs_read_fndecl_8495 isr_rx_procs_read fndecl 3 8495 NULL
151102 +enable_so_vmw_gmr2_bind_fndecl_8503 vmw_gmr2_bind fndecl 3 8503 NULL
151103 +enable_so_id_da903x_subdev_info_8507 id da903x_subdev_info 0 8507 NULL
151104 +enable_so_usblp_cache_device_id_string_fndecl_8509 usblp_cache_device_id_string fndecl 0 8509 NULL
151105 +enable_so_dy_fb_copyarea_8510 dy fb_copyarea 0 8510 NULL
151106 +enable_so_num_processors_vardecl_8512 num_processors vardecl 0 8512 NULL
151107 +enable_so_follows_u132_command_8527 follows u132_command 0 8527 NULL
151108 +enable_so_alloc_blksz_shift_hfsplus_sb_info_8530 alloc_blksz_shift hfsplus_sb_info 0 8530 NULL
151109 +enable_so_strnlen_user_fndecl_8532 strnlen_user fndecl 0-2 8532 NULL
151110 +enable_so_overlay_out_left_vivid_dev_8540 overlay_out_left vivid_dev 0 8540 NULL
151111 +enable_so_logfs_seek_data_fndecl_8541 logfs_seek_data fndecl 2-0 8541 NULL nohasharray
151112 +enable_so_limit_kmem_cache_8541 limit kmem_cache 0 8541 &enable_so_logfs_seek_data_fndecl_8541
151113 +enable_so_num_gfx_vgastate_8542 num_gfx vgastate 0 8542 NULL
151114 +enable_so_fuse_dir_fsync_fndecl_8543 fuse_dir_fsync fndecl 2-3 8543 NULL
151115 +enable_so_sysminor_aoedev_8549 sysminor aoedev 0 8549 NULL
151116 +enable_so_vfront_porch_videomode_8550 vfront_porch videomode 0 8550 NULL nohasharray
151117 +enable_so_memsize_vardecl_tridentfb_c_8550 memsize vardecl_tridentfb.c 0 8550 &enable_so_vfront_porch_videomode_8550
151118 +enable_so_mailbox_add_intel_sst_drv_8554 mailbox_add intel_sst_drv 0 8554 NULL
151119 +enable_so_SyS_ppoll_fndecl_8572 SyS_ppoll fndecl 2 8572 NULL
151120 +enable_so_clone_bio_fndecl_8573 clone_bio fndecl 4-3 8573 NULL
151121 +enable_so_len_vmxnet3_rx_buf_info_8575 len vmxnet3_rx_buf_info 0 8575 NULL nohasharray
151122 +enable_so_mlx5_ib_update_mtt_fndecl_8575 mlx5_ib_update_mtt fndecl 3-2 8575 &enable_so_len_vmxnet3_rx_buf_info_8575
151123 +enable_so_num_module_param_attrs_8584 num module_param_attrs 0 8584 NULL
151124 +enable_so_max_request_size_brcmf_sdio_dev_8586 max_request_size brcmf_sdio_dev 0 8586 NULL
151125 +enable_so_ddb_output_write_fndecl_8589 ddb_output_write fndecl 3-0 8589 NULL
151126 +enable_so_height_efifb_dmi_info_8596 height efifb_dmi_info 0 8596 NULL nohasharray
151127 +enable_so_gss_unwrap_kerberos_v2_fndecl_8596 gss_unwrap_kerberos_v2 fndecl 2 8596 &enable_so_height_efifb_dmi_info_8596
151128 +enable_so_iwl_dbgfs_disable_ht40_write_fndecl_8599 iwl_dbgfs_disable_ht40_write fndecl 3 8599 NULL
151129 +enable_so_drm_mode_crtc_set_gamma_size_fndecl_8602 drm_mode_crtc_set_gamma_size fndecl 2 8602 NULL
151130 +enable_so_dvb_ringbuffer_free_fndecl_8603 dvb_ringbuffer_free fndecl 0 8603 NULL
151131 +enable_so_size_hw_bank_8604 size hw_bank 0 8604 NULL
151132 +enable_so_uar_scratch_entry_sz_mthca_dev_lim_8606 uar_scratch_entry_sz mthca_dev_lim 0 8606 NULL
151133 +enable_so_hw_token_fusbh200_qh_hw_8607 hw_token fusbh200_qh_hw 0 8607 NULL
151134 +enable_so_seq_buf_commit_fndecl_8608 seq_buf_commit fndecl 2 8608 NULL
151135 +enable_so_irq_spi_device_8610 irq spi_device 0 8610 NULL
151136 +enable_so_kmem_alloc_fndecl_8611 kmem_alloc fndecl 1 8611 NULL
151137 +enable_so_transfer_size_fndecl_8623 transfer_size fndecl 0-1-2-3 8623 NULL
151138 +enable_so_xattr_permission_fndecl_8624 xattr_permission fndecl 0 8624 NULL
151139 +enable_so_new_dir_fndecl_8636 new_dir fndecl 3 8636 NULL
151140 +enable_so_in_height_sh_vou_geometry_8644 in_height sh_vou_geometry 0 8644 NULL
151141 +enable_so_block_size_cache_args_8648 block_size cache_args 0 8648 NULL
151142 +enable_so_e_value_offs_ext4_xattr_entry_8650 e_value_offs ext4_xattr_entry 0 8650 NULL
151143 +enable_so_xfs_bmap_worst_indlen_fndecl_8651 xfs_bmap_worst_indlen fndecl 0 8651 NULL
151144 +enable_so_truncate_size_ceph_mds_reply_inode_8652 truncate_size ceph_mds_reply_inode 0 8652 NULL
151145 +enable_so_copy_from_user_toio_fndecl_8653 copy_from_user_toio fndecl 3 8653 NULL
151146 +enable_so_vmcore_size_vardecl_vmcore_c_8660 vmcore_size vardecl_vmcore.c 0 8660 NULL
151147 +enable_so_read_mem_fndecl_8661 read_mem fndecl 3 8661 NULL
151148 +enable_so_SYSC_sethostname_fndecl_8663 SYSC_sethostname fndecl 2 8663 NULL
151149 +enable_so_vbi_end_bttv_8666 vbi_end bttv 0 8666 NULL
151150 +enable_so_ext4_zero_range_fndecl_8667 ext4_zero_range fndecl 2-3 8667 NULL
151151 +enable_so_reserve_pfn_range_fndecl_8670 reserve_pfn_range fndecl 1-2 8670 NULL
151152 +enable_so_vb2_write_fndecl_8671 vb2_write fndecl 3 8671 NULL
151153 +enable_so_len_ipath_diag_xpkt_8673 len ipath_diag_xpkt 0 8673 NULL
151154 +enable_so_write_data_done_iscsi_cmd_8676 write_data_done iscsi_cmd 0 8676 NULL
151155 +enable_so_aml_offset_acpi_rsconvert_info_8678 aml_offset acpi_rsconvert_info 0 8678 NULL
151156 +enable_so_lustre_acl_xattr_merge2posix_fndecl_8683 lustre_acl_xattr_merge2posix fndecl 2 8683 NULL
151157 +enable_so_status_whc_urb_8685 status whc_urb 0 8685 NULL
151158 +enable_so_end_data_prctl_mm_map_8687 end_data prctl_mm_map 0 8687 NULL
151159 +enable_so_mtd_add_partition_fndecl_8688 mtd_add_partition fndecl 3 8688 NULL
151160 +enable_so_env_start_mm_struct_8690 env_start mm_struct 0 8690 NULL
151161 +enable_so_mpeglines_vardecl_cx231xx_417_c_8691 mpeglines vardecl_cx231xx-417.c 0 8691 NULL nohasharray
151162 +enable_so_b_out_mon_reader_bin_8691 b_out mon_reader_bin 0 8691 &enable_so_mpeglines_vardecl_cx231xx_417_c_8691
151163 +enable_so_blk_mq_update_nr_requests_fndecl_8694 blk_mq_update_nr_requests fndecl 2 8694 NULL nohasharray
151164 +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
151165 +enable_so_NumEraseUnits_erase_unit_header_t_8696 NumEraseUnits erase_unit_header_t 0 8696 NULL
151166 +enable_so_ebcnt_vardecl_readtest_c_8699 ebcnt vardecl_readtest.c 0 8699 NULL
151167 +enable_so_iblock_execute_rw_fndecl_8701 iblock_execute_rw fndecl 3 8701 NULL
151168 +enable_so_ilo_read_fndecl_8704 ilo_read fndecl 3 8704 NULL
151169 +enable_so_hpfs_prefetch_sectors_fndecl_8708 hpfs_prefetch_sectors fndecl 2 8708 NULL
151170 +enable_so_rx_buf_sz_sh_eth_private_8709 rx_buf_sz sh_eth_private 0 8709 NULL nohasharray
151171 +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
151172 +enable_so_out_ptr_mdc800_data_8709 out_ptr mdc800_data 0 8709 &enable_so_max_unmap_blocks_scsi_disk_8709
151173 +enable_so_ieee80211_if_read_estab_plinks_fndecl_8710 ieee80211_if_read_estab_plinks fndecl 3 8710 NULL
151174 +enable_so_ieee80211_send_auth_fndecl_8716 ieee80211_send_auth fndecl 6 8716 NULL
151175 +enable_so_inode_number_squashfs_dir_header_8723 inode_number squashfs_dir_header 0 8723 NULL
151176 +enable_so_iram_end_intel_sst_drv_8725 iram_end intel_sst_drv 0 8725 NULL
151177 +enable_so_qsfp_read_fndecl_8729 qsfp_read fndecl 2-4-0 8729 NULL
151178 +enable_so_read_hdlc_status_fritz_adapter_8730 read_hdlc_status fritz_adapter 0 8730 NULL nohasharray
151179 +enable_so_disconnect_fndecl_8730 disconnect fndecl 4 8730 &enable_so_read_hdlc_status_fritz_adapter_8730
151180 +enable_so_ext_param_page_length_nand_onfi_params_8736 ext_param_page_length nand_onfi_params 0 8736 NULL
151181 +enable_so___blockdev_direct_IO_fndecl_8738 __blockdev_direct_IO fndecl 5-0 8738 NULL
151182 +enable_so_size_kmem_cache_8740 size kmem_cache 0 8740 NULL
151183 +enable_so_osc_iocontrol_fndecl_8742 osc_iocontrol fndecl 3 8742 NULL
151184 +enable_so_fd_execute_unmap_fndecl_8745 fd_execute_unmap fndecl 3-2 8745 NULL
151185 +enable_so_perf_ustack_task_size_fndecl_8746 perf_ustack_task_size fndecl 0 8746 NULL
151186 +enable_so___vlan_add_fndecl_8748 __vlan_add fndecl 2 8748 NULL
151187 +enable_so_btrfs_double_extent_lock_fndecl_8752 btrfs_double_extent_lock fndecl 5-4-2 8752 NULL
151188 +enable_so__netlbl_catmap_getnode_fndecl_8754 _netlbl_catmap_getnode fndecl 2 8754 NULL
151189 +enable_so_my_skb_align_fndecl_8755 my_skb_align fndecl 2 8755 NULL
151190 +enable_so_format_devstat_counter_fndecl_8757 format_devstat_counter fndecl 3 8757 NULL
151191 +enable_so_snd_pcm_hw_param_set_fndecl_8761 snd_pcm_hw_param_set fndecl 4 8761 NULL
151192 +enable_so_length_acpi_nfit_system_address_8762 length acpi_nfit_system_address 0 8762 NULL
151193 +enable_so_max_swap_info_struct_8767 max swap_info_struct 0 8767 NULL
151194 +enable_so_read_file_beacon_fndecl_8768 read_file_beacon fndecl 3 8768 NULL nohasharray
151195 +enable_so_max_pfn_radeon_vm_manager_8768 max_pfn radeon_vm_manager 0 8768 &enable_so_read_file_beacon_fndecl_8768
151196 +enable_so_ieee80211_if_read_dropped_frames_congestion_fndecl_8776 ieee80211_if_read_dropped_frames_congestion fndecl 3 8776 NULL
151197 +enable_so_gfs2_adjust_quota_fndecl_8777 gfs2_adjust_quota fndecl 2 8777 NULL
151198 +enable_so_data_dma_powermate_device_8783 data_dma powermate_device 0 8783 NULL
151199 +enable_so_rx_tr_cfv_info_8786 rx_tr cfv_info 0 8786 NULL nohasharray
151200 +enable_so___pg_advance_sg_page_iter_8786 __pg_advance sg_page_iter 0 8786 &enable_so_rx_tr_cfv_info_8786
151201 +enable_so_nfs_setup_write_request_fndecl_8793 nfs_setup_write_request fndecl 3-4 8793 NULL nohasharray
151202 +enable_so_mem_swapout_entry_fndecl_8793 mem_swapout_entry fndecl 3 8793 &enable_so_nfs_setup_write_request_fndecl_8793
151203 +enable_so_lcd_vblank_len_atyfb_par_8796 lcd_vblank_len atyfb_par 0 8796 NULL
151204 +enable_so_logic_start_scrub_parity_8798 logic_start scrub_parity 0 8798 NULL nohasharray
151205 +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
151206 +enable_so_write_ext_msg_fndecl_8804 write_ext_msg fndecl 3 8804 NULL
151207 +enable_so_amdgpu_gart_size_vardecl_8805 amdgpu_gart_size vardecl 0 8805 NULL
151208 +enable_so_info3_wmi_data_hdr_8808 info3 wmi_data_hdr 0 8808 NULL
151209 +enable_so_cfg80211_roamed_fndecl_8811 cfg80211_roamed fndecl 5-7 8811 NULL
151210 +enable_so_nilfs_cpfile_get_checkpoint_fndecl_8812 nilfs_cpfile_get_checkpoint fndecl 2 8812 NULL
151211 +enable_so_ieee80211_hdrlen_fndecl_8814 ieee80211_hdrlen fndecl 0 8814 NULL
151212 +enable_so_dma_alloc_pages_fndecl_8819 dma_alloc_pages fndecl 3 8819 NULL nohasharray
151213 +enable_so_sys_set_mempolicy_fndecl_8819 sys_set_mempolicy fndecl 3 8819 &enable_so_dma_alloc_pages_fndecl_8819
151214 +enable_so_dma_buf_mmap_fndecl_8825 dma_buf_mmap fndecl 3 8825 NULL
151215 +enable_so_buflow_ring_desc_ex_8829 buflow ring_desc_ex 0 8829 NULL
151216 +enable_so_vsync_len_videomode_8830 vsync_len videomode 0 8830 NULL
151217 +enable_so_wm5110_set_fll_fndecl_8841 wm5110_set_fll fndecl 5 8841 NULL
151218 +enable_so_iscsi_tcp_segment_recv_fndecl_8845 iscsi_tcp_segment_recv fndecl 4-0 8845 NULL
151219 +enable_so_max_packet_size_ftdi_private_8847 max_packet_size ftdi_private 0 8847 NULL
151220 +enable_so_ibufsize_sisusb_usb_data_8851 ibufsize sisusb_usb_data 0 8851 NULL
151221 +enable_so_blkno2_xfs_da_args_8858 blkno2 xfs_da_args 0 8858 NULL
151222 +enable_so_pci_xr17v35x_setup_fndecl_8861 pci_xr17v35x_setup fndecl 4 8861 NULL nohasharray
151223 +enable_so_generic_readlink_fndecl_8861 generic_readlink fndecl 3 8861 &enable_so_pci_xr17v35x_setup_fndecl_8861
151224 +enable_so_alloc_extent_buffer_fndecl_8862 alloc_extent_buffer fndecl 2 8862 NULL
151225 +enable_so_dm_set_target_max_io_len_fndecl_8872 dm_set_target_max_io_len fndecl 2 8872 NULL
151226 +enable_so___memblock_free_early_fndecl_8876 __memblock_free_early fndecl 2-1 8876 NULL
151227 +enable_so_jfs_readpages_fndecl_8877 jfs_readpages fndecl 4 8877 NULL
151228 +enable_so_root_entry_uctp_fndecl_8878 root_entry_uctp fndecl 0 8878 NULL
151229 +enable_so_s_apbmask_ufs_sb_private_info_8879 s_apbmask ufs_sb_private_info 0 8879 NULL
151230 +enable_so_icsk_ext_hdr_len_inet_connection_sock_8885 icsk_ext_hdr_len inet_connection_sock 0 8885 NULL
151231 +enable_so_playback_frlog_rme32_8891 playback_frlog rme32 0 8891 NULL
151232 +enable_so_via_lock_rate_fndecl_8895 via_lock_rate fndecl 2 8895 NULL
151233 +enable_so_batps_powernow_k8_data_8899 batps powernow_k8_data 0 8899 NULL
151234 +enable_so_byt_serial_setup_fndecl_8903 byt_serial_setup fndecl 4 8903 NULL nohasharray
151235 +enable_so_pages_squashfs_cache_8903 pages squashfs_cache 0 8903 &enable_so_byt_serial_setup_fndecl_8903
151236 +enable_so_bits_per_pixel_fb_var_screeninfo_8906 bits_per_pixel fb_var_screeninfo 0 8906 NULL nohasharray
151237 +enable_so_a_data_exec_8906 a_data exec 0 8906 &enable_so_bits_per_pixel_fb_var_screeninfo_8906
151238 +enable_so_fll_factors_fndecl_8907 fll_factors fndecl 2-3 8907 NULL
151239 +enable_so__xfs_buf_get_pages_fndecl_8920 _xfs_buf_get_pages fndecl 2 8920 NULL
151240 +enable_so_rt2x00debug_read_queue_dump_fndecl_8923 rt2x00debug_read_queue_dump fndecl 3 8923 NULL
151241 +enable_so_data_size_mdp_superblock_1_8925 data_size mdp_superblock_1 0 8925 NULL nohasharray
151242 +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
151243 +enable_so_nbufread_gspca_dev_8934 nbufread gspca_dev 0 8934 NULL
151244 +enable_so_begin_cmd_fndecl_8941 begin_cmd fndecl 0 8941 NULL
151245 +enable_so_i40e_pci_sriov_enable_fndecl_8949 i40e_pci_sriov_enable fndecl 2 8949 NULL
151246 +enable_so_tree_root_btrfs_root_backup_8950 tree_root btrfs_root_backup 0 8950 NULL
151247 +enable_so_get_arg_page_fndecl_8953 get_arg_page fndecl 2 8953 NULL
151248 +enable_so_rx_metadata_offset_brcmf_msgbuf_8954 rx_metadata_offset brcmf_msgbuf 0 8954 NULL
151249 +enable_so_videobuf_mmap_setup_fndecl_8956 videobuf_mmap_setup fndecl 3 8956 NULL nohasharray
151250 +enable_so_nfrags_pktgen_dev_8956 nfrags pktgen_dev 0 8956 &enable_so_videobuf_mmap_setup_fndecl_8956 nohasharray
151251 +enable_so_stats_read_ul_fndecl_8956 stats_read_ul fndecl 3 8956 &enable_so_nfrags_pktgen_dev_8956
151252 +enable_so_pkt_align_fndecl_8963 pkt_align fndecl 2-3 8963 NULL
151253 +enable_so_fromlen_nfs_symlinkargs_8967 fromlen nfs_symlinkargs 0 8967 NULL
151254 +enable_so_wm8776_field_set_fndecl_8970 wm8776_field_set fndecl 2 8970 NULL
151255 +enable_so_area_length_dmi_system_event_log_8974 area_length dmi_system_event_log 0 8974 NULL
151256 +enable_so_n_bch_control_8979 n bch_control 0 8979 NULL
151257 +enable_so_fanout_ubifs_info_8981 fanout ubifs_info 0 8981 NULL
151258 +enable_so_ocfs2_xattr_find_entry_fndecl_8983 ocfs2_xattr_find_entry fndecl 0 8983 NULL
151259 +enable_so_link_duplex_netxen_adapter_8988 link_duplex netxen_adapter 0 8988 NULL
151260 +enable_so_block_begin_dm_cell_key_8992 block_begin dm_cell_key 0 8992 NULL
151261 +enable_so_vmalloc_user_fndecl_8999 vmalloc_user fndecl 1 8999 NULL
151262 +enable_so_SyS_select_fndecl_9004 SyS_select fndecl 1 9004 NULL
151263 +enable_so_scatterwalk_map_and_copy_fndecl_9005 scatterwalk_map_and_copy fndecl 3 9005 NULL
151264 +enable_so_vb2_dvb_register_frontend_fndecl_9015 vb2_dvb_register_frontend fndecl 0 9015 NULL
151265 +enable_so_add_dts_thermal_zone_fndecl_9019 add_dts_thermal_zone fndecl 4 9019 NULL
151266 +enable_so_pcan_usb_decode_data_fndecl_9023 pcan_usb_decode_data fndecl 2 9023 NULL
151267 +enable_so_xen_del_extra_mem_fndecl_9024 xen_del_extra_mem fndecl 2-1 9024 NULL nohasharray
151268 +enable_so_cdrom_read_cd_fndecl_9024 cdrom_read_cd fndecl 5-4 9024 &enable_so_xen_del_extra_mem_fndecl_9024
151269 +enable_so_report_desc_size_mousevsc_dev_9027 report_desc_size mousevsc_dev 0 9027 NULL
151270 +enable_so_nextread_isowbuf_t_9028 nextread isowbuf_t 0 9028 NULL
151271 +enable_so_t4_alloc_mem_fndecl_9029 t4_alloc_mem fndecl 1 9029 NULL
151272 +enable_so_wDescriptorLength_hid_class_descriptor_9030 wDescriptorLength hid_class_descriptor 0 9030 NULL nohasharray
151273 +enable_so_id_port_9030 id port 0 9030 &enable_so_wDescriptorLength_hid_class_descriptor_9030
151274 +enable_so_raid_disks_geom_9044 raid_disks geom 0 9044 NULL
151275 +enable_so_ath6kl_wmi_delete_pstream_cmd_fndecl_9048 ath6kl_wmi_delete_pstream_cmd fndecl 2 9048 NULL
151276 +enable_so_num_pds_mlx4_caps_9049 num_pds mlx4_caps 0 9049 NULL
151277 +enable_so_bounce_sgl_count_storvsc_cmd_request_9051 bounce_sgl_count storvsc_cmd_request 0 9051 NULL
151278 +enable_so__drbd_bm_find_next_fndecl_9063 _drbd_bm_find_next fndecl 2-0 9063 NULL nohasharray
151279 +enable_so_keys_bset_9063 keys bset 0 9063 &enable_so__drbd_bm_find_next_fndecl_9063 nohasharray
151280 +enable_so_tx_buf_sz_iadev_priv_9063 tx_buf_sz iadev_priv 0 9063 &enable_so_keys_bset_9063 nohasharray
151281 +enable_so_send_mpa_reply_fndecl_9063 send_mpa_reply fndecl 3 9063 &enable_so_tx_buf_sz_iadev_priv_9063
151282 +enable_so_logical_maximum_hid_field_9067 logical_maximum hid_field 0 9067 NULL
151283 +enable_so_buflen_compat_xfs_fsop_attrlist_handlereq_9071 buflen compat_xfs_fsop_attrlist_handlereq 0 9071 NULL
151284 +enable_so_current_sg_offset_msb_data_9075 current_sg_offset msb_data 0 9075 NULL
151285 +enable_so_uniqueid_cifsInodeInfo_9076 uniqueid cifsInodeInfo 0 9076 NULL nohasharray
151286 +enable_so_nilfs_dat_read_fndecl_9076 nilfs_dat_read fndecl 2 9076 &enable_so_uniqueid_cifsInodeInfo_9076
151287 +enable_so_advertised_mtu_tipc_link_9077 advertised_mtu tipc_link 0 9077 NULL
151288 +enable_so_out_int_pipe_usbtest_dev_9078 out_int_pipe usbtest_dev 0 9078 NULL nohasharray
151289 +enable_so_dispatch_ioctl_fndecl_9078 dispatch_ioctl fndecl 2 9078 &enable_so_out_int_pipe_usbtest_dev_9078
151290 +enable_so_count_afs_call_9081 count afs_call 0 9081 NULL nohasharray
151291 +enable_so_sel_read_initcon_fndecl_9081 sel_read_initcon fndecl 3 9081 &enable_so_count_afs_call_9081
151292 +enable_so_start_brk_mm_struct_9085 start_brk mm_struct 0 9085 NULL
151293 +enable_so_optlen_rdma_ucm_set_option_9087 optlen rdma_ucm_set_option 0 9087 NULL
151294 +enable_so_event_count_Fsm_9088 event_count Fsm 0 9088 NULL
151295 +enable_so_width_fb_fillrect_9090 width fb_fillrect 0 9090 NULL nohasharray
151296 +enable_so_sizeimage_bdisp_frame_9090 sizeimage bdisp_frame 0 9090 &enable_so_width_fb_fillrect_9090
151297 +enable_so_xfs_iext_add_indirect_multi_fndecl_9091 xfs_iext_add_indirect_multi fndecl 3-4 9091 NULL
151298 +enable_so_vmci_qp_alloc_fndecl_9094 vmci_qp_alloc fndecl 5-3 9094 NULL
151299 +enable_so_limit_parsed_partitions_9099 limit parsed_partitions 0 9099 NULL
151300 +enable_so_logical_id_i40e_aqc_list_capabilities_element_resp_9102 logical_id i40e_aqc_list_capabilities_element_resp 0 9102 NULL
151301 +enable_so_keylen_ieee80211_key_conf_9103 keylen ieee80211_key_conf 0 9103 NULL
151302 +enable_so_fragment_size_cfrfml_9106 fragment_size cfrfml 0 9106 NULL nohasharray
151303 +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
151304 +enable_so_x38_channel_num_vardecl_x38_edac_c_9109 x38_channel_num vardecl_x38_edac.c 0 9109 NULL
151305 +enable_so_pvr2_stream_set_buffer_count_fndecl_9116 pvr2_stream_set_buffer_count fndecl 2 9116 NULL
151306 +enable_so_qla4_82xx_pci_mem_write_2M_fndecl_9117 qla4_82xx_pci_mem_write_2M fndecl 2 9117 NULL
151307 +enable_so_numEntries__ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table_9118 numEntries _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table 0 9118 NULL
151308 +enable_so_break_ksm_fndecl_9124 break_ksm fndecl 2 9124 NULL
151309 +enable_so_reiserfs_direct_IO_fndecl_9131 reiserfs_direct_IO fndecl 3 9131 NULL
151310 +enable_so_neigh_priv_len_net_device_9133 neigh_priv_len net_device 0 9133 NULL
151311 +enable_so_rx_buf_sz_vardecl_r8169_c_9136 rx_buf_sz vardecl_r8169.c 0 9136 NULL
151312 +enable_so_read_buffer_length_adu_device_9140 read_buffer_length adu_device 0 9140 NULL
151313 +enable_so_cdce925_pll_round_rate_fndecl_9145 cdce925_pll_round_rate fndecl 2 9145 NULL
151314 +enable_so_size_ip6t_replace_9148 size ip6t_replace 0 9148 NULL
151315 +enable_so_cifs_uncached_read_into_pages_fndecl_9150 cifs_uncached_read_into_pages fndecl 3 9150 NULL
151316 +enable_so_ext_capab_len_station_parameters_9152 ext_capab_len station_parameters 0 9152 NULL
151317 +enable_so_fill_readbuf_fndecl_9155 fill_readbuf fndecl 3 9155 NULL
151318 +enable_so_depth_saa7134_format_9167 depth saa7134_format 0 9167 NULL nohasharray
151319 +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
151320 +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
151321 +enable_so_ib_qib_max_sges_vardecl_9168 ib_qib_max_sges vardecl 0 9168 NULL
151322 +enable_so_channels_ua101_stream_9173 channels ua101_stream 0 9173 NULL
151323 +enable_so_alloc_queue_pairs_i40e_vsi_9174 alloc_queue_pairs i40e_vsi 0 9174 NULL
151324 +enable_so_offset_hv_multipage_buffer_9175 offset hv_multipage_buffer 0 9175 NULL
151325 +enable_so___ext4_handle_dirty_super_fndecl_9177 __ext4_handle_dirty_super fndecl 0 9177 NULL nohasharray
151326 +enable_so_hid_input_report_fndecl_9177 hid_input_report fndecl 4 9177 &enable_so___ext4_handle_dirty_super_fndecl_9177
151327 +enable_so_b_size_buffer_head_9178 b_size buffer_head 0 9178 NULL
151328 +enable_so_max_vfio_pci_fill_info_9182 max vfio_pci_fill_info 0 9182 NULL
151329 +enable_so_form_cm_frame_fndecl_9184 form_cm_frame fndecl 4-6 9184 NULL
151330 +enable_so_device_sis_chipset_9193 device sis_chipset 0 9193 NULL
151331 +enable_so_current_rate_iwl_scale_tbl_info_9194 current_rate iwl_scale_tbl_info 0 9194 NULL
151332 +enable_so_stb0899_write_regs_fndecl_9197 stb0899_write_regs fndecl 4 9197 NULL nohasharray
151333 +enable_so_wiimote_cmd_read_fndecl_9197 wiimote_cmd_read fndecl 4 9197 &enable_so_stb0899_write_regs_fndecl_9197
151334 +enable_so_buflen_xfs_fsop_attrlist_handlereq_9199 buflen xfs_fsop_attrlist_handlereq 0 9199 NULL
151335 +enable_so_efx_rx_packet_fndecl_9200 efx_rx_packet fndecl 4-3 9200 NULL
151336 +enable_so_byte_per_page_nand_onfi_params_9202 byte_per_page nand_onfi_params 0 9202 NULL nohasharray
151337 +enable_so_nested_svm_check_exception_fndecl_9202 nested_svm_check_exception fndecl 4 9202 &enable_so_byte_per_page_nand_onfi_params_9202
151338 +enable_so_tx_max_datagrams_cdc_ncm_ctx_9206 tx_max_datagrams cdc_ncm_ctx 0 9206 NULL nohasharray
151339 +enable_so_max_pages_ib_fmr_attr_9206 max_pages ib_fmr_attr 0 9206 &enable_so_tx_max_datagrams_cdc_ncm_ctx_9206
151340 +enable_so_hw_token_ehci_qh_hw_9208 hw_token ehci_qh_hw 0 9208 NULL
151341 +enable_so_file_id_object_info_9209 file_id object_info 0 9209 NULL
151342 +enable_so_mesh_rx_path_sel_frame_fndecl_9210 mesh_rx_path_sel_frame fndecl 3 9210 NULL
151343 +enable_so_sae_data_len_cfg80211_auth_request_9212 sae_data_len cfg80211_auth_request 0 9212 NULL
151344 +enable_so_ide_driver_proc_write_fndecl_9214 ide_driver_proc_write fndecl 3 9214 NULL
151345 +enable_so_zram_meta_alloc_fndecl_9221 zram_meta_alloc fndecl 2 9221 NULL
151346 +enable_so_pcicfg_size_sst_pdata_9222 pcicfg_size sst_pdata 0 9222 NULL
151347 +enable_so_ext4_create_inline_data_fndecl_9231 ext4_create_inline_data fndecl 3 9231 NULL
151348 +enable_so_supported_rates_len_station_parameters_9235 supported_rates_len station_parameters 0 9235 NULL
151349 +enable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 3 9236 NULL
151350 +enable_so_i2400mu_rx_size_grow_fndecl_9246 i2400mu_rx_size_grow fndecl 0 9246 NULL
151351 +enable_so_phys_pmd_init_fndecl_9251 phys_pmd_init fndecl 0-2-3 9251 NULL nohasharray
151352 +enable_so_vram_start_vml_info_9251 vram_start vml_info 0 9251 &enable_so_phys_pmd_init_fndecl_9251
151353 +enable_so_n_sbufs_stk_camera_9256 n_sbufs stk_camera 0 9256 NULL
151354 +enable_so_sk_priority_sock_9258 sk_priority sock 0 9258 NULL
151355 +enable_so_buffer_size_snd_rawmidi_runtime_9267 buffer_size snd_rawmidi_runtime 0 9267 NULL
151356 +enable_so_s_blocks_count_ext3_super_block_9271 s_blocks_count ext3_super_block 0 9271 NULL
151357 +enable_so_wl1251_sdio_write_fndecl_9274 wl1251_sdio_write fndecl 4 9274 NULL
151358 +enable_so_ResponseDataLength__MSG_SMP_PASSTHROUGH_REPLY_9278 ResponseDataLength _MSG_SMP_PASSTHROUGH_REPLY 0 9278 NULL
151359 +enable_so_nr_pages_start_info_9283 nr_pages start_info 0 9283 NULL
151360 +enable_so_lbs_failcount_read_fndecl_9284 lbs_failcount_read fndecl 3 9284 NULL
151361 +enable_so_offset_ivtv_dma_page_info_9286 offset ivtv_dma_page_info 0 9286 NULL
151362 +enable_so_rx_cmd_ep_usb_card_rec_9290 rx_cmd_ep usb_card_rec 0 9290 NULL nohasharray
151363 +enable_so_buffer_bytes_st_buffer_9290 buffer_bytes st_buffer 0 9290 &enable_so_rx_cmd_ep_usb_card_rec_9290
151364 +enable_so_cxd2820r_wr_regs_fndecl_9307 cxd2820r_wr_regs fndecl 4 9307 NULL
151365 +enable_so_sys_splice_fndecl_9308 sys_splice fndecl 5 9308 NULL
151366 +enable_so_cpl_x86_emulate_ops_9312 cpl x86_emulate_ops 0 9312 NULL nohasharray
151367 +enable_so_sctp_setsockopt_context_fndecl_9312 sctp_setsockopt_context fndecl 3 9312 &enable_so_cpl_x86_emulate_ops_9312
151368 +enable_so_fcoe_conn_context_id_fcoe_kcqe_9316 fcoe_conn_context_id fcoe_kcqe 0 9316 NULL
151369 +enable_so_find_mergeable_fndecl_9318 find_mergeable fndecl 2 9318 NULL
151370 +enable_so_in_packet_size_pcm_runtime_9321 in_packet_size pcm_runtime 0 9321 NULL
151371 +enable_so_pages_in_io_dio_submit_9326 pages_in_io dio_submit 0 9326 NULL
151372 +enable_so__wm8994_set_fll_fndecl_9332 _wm8994_set_fll fndecl 4-5 9332 NULL nohasharray
151373 +enable_so_sys_mincore_fndecl_9332 sys_mincore fndecl 1-2 9332 &enable_so__wm8994_set_fll_fndecl_9332
151374 +enable_so_rbuf_fill_count_slgt_info_9335 rbuf_fill_count slgt_info 0 9335 NULL
151375 +enable_so_ttm_bo_ioremap_fndecl_9337 ttm_bo_ioremap fndecl 3-2 9337 NULL
151376 +enable_so_ath10k_mac_bitrate_to_idx_fndecl_9338 ath10k_mac_bitrate_to_idx fndecl 0 9338 NULL
151377 +enable_so_htree_dirblock_to_tree_fndecl_9339 htree_dirblock_to_tree fndecl 3 9339 NULL
151378 +enable_so_di_size_xfs_icdinode_9350 di_size xfs_icdinode 0 9350 NULL
151379 +enable_so_ltc_nr_nvkm_ltc_priv_9351 ltc_nr nvkm_ltc_priv 0 9351 NULL
151380 +enable_so_tse_init_rx_buffer_fndecl_9354 tse_init_rx_buffer fndecl 3 9354 NULL
151381 +enable_so_offset_ore_io_state_9357 offset ore_io_state 0 9357 NULL
151382 +enable_so_stv6110x_write_regs_fndecl_9359 stv6110x_write_regs fndecl 4 9359 NULL
151383 +enable_so_compat_sys_get_mempolicy_fndecl_9366 compat_sys_get_mempolicy fndecl 4-3 9366 NULL
151384 +enable_so_mt2060_writeregs_fndecl_9371 mt2060_writeregs fndecl 3 9371 NULL nohasharray
151385 +enable_so_depth_read_fndecl_9371 depth_read fndecl 3 9371 &enable_so_mt2060_writeregs_fndecl_9371
151386 +enable_so_rate_n_flags_iwl_ht_agg_9373 rate_n_flags iwl_ht_agg 0 9373 NULL
151387 +enable_so_le_adv_data_len_hci_conn_9377 le_adv_data_len hci_conn 0 9377 NULL
151388 +enable_so_mss_clamp_tcp_options_received_9378 mss_clamp tcp_options_received 0 9378 NULL
151389 +enable_so_fix_priv_head_fndecl_9385 fix_priv_head fndecl 2 9385 NULL
151390 +enable_so_nr_uart_driver_9391 nr uart_driver 0 9391 NULL
151391 +enable_so_dr_pre_altera_jtag_9393 dr_pre altera_jtag 0 9393 NULL
151392 +enable_so_ubifs_tnc_add_nm_fndecl_9397 ubifs_tnc_add_nm fndecl 4-5 9397 NULL
151393 +enable_so_sr_bg_blkno_ocfs2_suballoc_result_9401 sr_bg_blkno ocfs2_suballoc_result 0 9401 NULL
151394 +enable_so_caif_seqpkt_recvmsg_fndecl_9402 caif_seqpkt_recvmsg fndecl 3 9402 NULL
151395 +enable_so_blk_queue_physical_block_size_fndecl_9410 blk_queue_physical_block_size fndecl 2 9410 NULL
151396 +enable_so_data_start_dm_ioctl_9412 data_start dm_ioctl 0 9412 NULL
151397 +enable_so_return_size_drm_amdgpu_info_9414 return_size drm_amdgpu_info 0 9414 NULL
151398 +enable_so_acpi_ex_system_memory_space_handler_fndecl_9419 acpi_ex_system_memory_space_handler fndecl 2 9419 NULL
151399 +enable_so_r592_read_fifo_pio_fndecl_9421 r592_read_fifo_pio fndecl 3 9421 NULL nohasharray
151400 +enable_so_rocker_dma_ring_create_fndecl_9421 rocker_dma_ring_create fndecl 3 9421 &enable_so_r592_read_fifo_pio_fndecl_9421
151401 +enable_so_dlen_garp_attr_9422 dlen garp_attr 0 9422 NULL
151402 +enable_so_dgap_config_get_num_prts_fndecl_9435 dgap_config_get_num_prts fndecl 0 9435 NULL
151403 +enable_so_ext4_restore_inline_data_fndecl_9436 ext4_restore_inline_data fndecl 5 9436 NULL
151404 +enable_so_height_stk1160_9446 height stk1160 0 9446 NULL
151405 +enable_so_mtdchar_readoob_fndecl_9459 mtdchar_readoob fndecl 4-3 9459 NULL
151406 +enable_so_si21_writeregs_fndecl_9460 si21_writeregs fndecl 4 9460 NULL
151407 +enable_so_async_wrap_skb_fndecl_9465 async_wrap_skb fndecl 0 9465 NULL
151408 +enable_so_kvm_mmu_page_fault_fndecl_9470 kvm_mmu_page_fault fndecl 2 9470 NULL
151409 +enable_so_height_cobalt_stream_9490 height cobalt_stream 0 9490 NULL nohasharray
151410 +enable_so_lbs_debugfs_read_fndecl_9490 lbs_debugfs_read fndecl 3 9490 &enable_so_height_cobalt_stream_9490
151411 +enable_so_txPower_ConfigRid_9502 txPower ConfigRid 0 9502 NULL nohasharray
151412 +enable_so_qnx6_long_match_fndecl_9502 qnx6_long_match fndecl 0 9502 &enable_so_txPower_ConfigRid_9502
151413 +enable_so_bpp_mcam_format_struct_9503 bpp mcam_format_struct 0 9503 NULL
151414 +enable_so_maxdev_vardecl_slcan_c_9507 maxdev vardecl_slcan.c 0 9507 NULL
151415 +enable_so_zlib_updatewindow_fndecl_9508 zlib_updatewindow fndecl 2 9508 NULL
151416 +enable_so_fillonedir_fndecl_9511 fillonedir fndecl 3 9511 NULL
151417 +enable_so_s_clustersize_bits_ocfs2_super_block_9516 s_clustersize_bits ocfs2_super_block 0 9516 NULL nohasharray
151418 +enable_so_zero_disk_area_fndecl_9516 zero_disk_area fndecl 2 9516 &enable_so_s_clustersize_bits_ocfs2_super_block_9516
151419 +enable_so_pcm512x_find_sck_fndecl_9522 pcm512x_find_sck fndecl 0 9522 NULL
151420 +enable_so_kdb_max_commands_vardecl_kdb_main_c_9529 kdb_max_commands vardecl_kdb_main.c 0 9529 NULL
151421 +enable_so_cap_width_usbtv_norm_params_9538 cap_width usbtv_norm_params 0 9538 NULL
151422 +enable_so_nilfs_mdt_forget_block_fndecl_9543 nilfs_mdt_forget_block fndecl 2 9543 NULL
151423 +enable_so_smk_read_doi_fndecl_9550 smk_read_doi fndecl 3 9550 NULL
151424 +enable_so___bio_alloc_fndecl_9552 __bio_alloc fndecl 2-3 9552 NULL
151425 +enable_so_rt2x00queue_insert_l2pad_fndecl_9553 rt2x00queue_insert_l2pad fndecl 2 9553 NULL
151426 +enable_so_display_byte_stride_vivid_dev_9554 display_byte_stride vivid_dev 0 9554 NULL
151427 +enable_so_rx_skb_reserve_vardecl_he_c_9559 rx_skb_reserve vardecl_he.c 0 9559 NULL
151428 +enable_so_glocont_endpoint_keyspan_device_details_9560 glocont_endpoint keyspan_device_details 0 9560 NULL
151429 +enable_so_fault_disconnect_read_fndecl_9566 fault_disconnect_read fndecl 3 9566 NULL
151430 +enable_so_p9_client_statsize_fndecl_9568 p9_client_statsize fndecl 0 9568 NULL nohasharray
151431 +enable_so_ath10k_write_fw_dbglog_fndecl_9568 ath10k_write_fw_dbglog fndecl 3 9568 &enable_so_p9_client_statsize_fndecl_9568
151432 +enable_so_page_order_cas_9572 page_order cas 0 9572 NULL
151433 +enable_so_width_drm_mode_create_dumb_9575 width drm_mode_create_dumb 0 9575 NULL
151434 +enable_so_sctp_setsockopt_auth_chunk_fndecl_9576 sctp_setsockopt_auth_chunk fndecl 3 9576 NULL
151435 +enable_so_mpage_add_bh_to_extent_fndecl_9577 mpage_add_bh_to_extent fndecl 2 9577 NULL
151436 +enable_so_mode_buf_len_udl_device_9578 mode_buf_len udl_device 0 9578 NULL nohasharray
151437 +enable_so_of_gpio_named_count_fndecl_9578 of_gpio_named_count fndecl 0 9578 &enable_so_mode_buf_len_udl_device_9578
151438 +enable_so_cfg80211_rx_mgmt_fndecl_9583 cfg80211_rx_mgmt fndecl 5 9583 NULL
151439 +enable_so_crtc_vblank_start_drm_display_mode_9587 crtc_vblank_start drm_display_mode 0 9587 NULL
151440 +enable_so_wm5102_set_fll_fndecl_9596 wm5102_set_fll fndecl 5 9596 NULL nohasharray
151441 +enable_so_get_kobj_path_length_fndecl_9596 get_kobj_path_length fndecl 0 9596 &enable_so_wm5102_set_fll_fndecl_9596
151442 +enable_so_writerids_fndecl_9601 writerids fndecl 0 9601 NULL
151443 +enable_so_ileb_len_ubifs_info_9607 ileb_len ubifs_info 0 9607 NULL
151444 +enable_so_skd_max_pass_thru_vardecl_skd_main_c_9608 skd_max_pass_thru vardecl_skd_main.c 0 9608 NULL
151445 +enable_so_free_bg_ocfs2_cached_block_free_9619 free_bg ocfs2_cached_block_free 0 9619 NULL
151446 +enable_so_size_scif_rb_9622 size scif_rb 0 9622 NULL
151447 +enable_so_hpfs_ea_write_fndecl_9626 hpfs_ea_write fndecl 5-4-2 9626 NULL
151448 +enable_so_num_fcxps_vardecl_9630 num_fcxps vardecl 0 9630 NULL
151449 +enable_so_ubifs_wbuf_seek_nolock_fndecl_9634 ubifs_wbuf_seek_nolock fndecl 3 9634 NULL
151450 +enable_so_fc_host_post_vendor_event_fndecl_9636 fc_host_post_vendor_event fndecl 3 9636 NULL
151451 +enable_so_copy_to_iter_fndecl_9638 copy_to_iter fndecl 0-2 9638 NULL
151452 +enable_so_fd_do_prot_unmap_fndecl_9639 fd_do_prot_unmap fndecl 3 9639 NULL
151453 +enable_so_num_nodes_hdac_device_9647 num_nodes hdac_device 0 9647 NULL
151454 +enable_so_dma_tx_size_stmmac_priv_9653 dma_tx_size stmmac_priv 0 9653 NULL
151455 +enable_so_height_drm_vmw_size_9654 height drm_vmw_size 0 9654 NULL nohasharray
151456 +enable_so_dict_size_lzma_header_9654 dict_size lzma_header 0 9654 &enable_so_height_drm_vmw_size_9654
151457 +enable_so_wm8400_register_regulator_fndecl_9660 wm8400_register_regulator fndecl 2 9660 NULL
151458 +enable_so_hugetlb_cow_fndecl_9665 hugetlb_cow fndecl 3 9665 NULL
151459 +enable_so_usnic_debugfs_buildinfo_read_fndecl_9667 usnic_debugfs_buildinfo_read fndecl 3 9667 NULL
151460 +enable_so_hr_slots_per_page_o2hb_region_9668 hr_slots_per_page o2hb_region 0 9668 NULL
151461 +enable_so_PCI_Address_DAC960_Controller_9669 PCI_Address DAC960_Controller 0 9669 NULL
151462 +enable_so_sctp_setsockopt_rtoinfo_fndecl_9678 sctp_setsockopt_rtoinfo fndecl 3 9678 NULL
151463 +enable_so_length_hpfs_dirent_9682 length hpfs_dirent 0 9682 NULL
151464 +enable_so_scrub_pages_for_parity_fndecl_9684 scrub_pages_for_parity fndecl 3-2-4 9684 NULL
151465 +enable_so_osd_req_decode_sense_full_fndecl_9685 osd_req_decode_sense_full fndecl 0 9685 NULL
151466 +enable_so_di_height_logfs_disk_inode_9686 di_height logfs_disk_inode 0 9686 NULL nohasharray
151467 +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
151468 +enable_so_ba_param_set_wmi_rcp_addba_req_event_9687 ba_param_set wmi_rcp_addba_req_event 0 9687 NULL
151469 +enable_so_xresstep_svga_fb_format_9690 xresstep svga_fb_format 0 9690 NULL
151470 +enable_so_max_num_pmkids_wiphy_9691 max_num_pmkids wiphy 0 9691 NULL
151471 +enable_so_fill_from_dev_buffer_fndecl_9695 fill_from_dev_buffer fndecl 3 9695 NULL
151472 +enable_so_adp5589_build_gpiomap_fndecl_9697 adp5589_build_gpiomap fndecl 0 9697 NULL
151473 +enable_so_phys_addr_ntb_transport_mw_9704 phys_addr ntb_transport_mw 0 9704 NULL
151474 +enable_so_tty_insert_flip_string_flags_fndecl_9706 tty_insert_flip_string_flags fndecl 4 9706 NULL nohasharray
151475 +enable_so_payload_len_cfg80211_wowlan_tcp_9706 payload_len cfg80211_wowlan_tcp 0 9706 &enable_so_tty_insert_flip_string_flags_fndecl_9706
151476 +enable_so_sr_write_async_fndecl_9707 sr_write_async fndecl 3 9707 NULL
151477 +enable_so_affs_direct_IO_fndecl_9712 affs_direct_IO fndecl 3 9712 NULL
151478 +enable_so_xprt_rdma_max_inline_write_vardecl_transport_c_9715 xprt_rdma_max_inline_write vardecl_transport.c 0 9715 NULL
151479 +enable_so_page_size_dataflash_9722 page_size dataflash 0 9722 NULL nohasharray
151480 +enable_so_tx_ringsz_alx_priv_9722 tx_ringsz alx_priv 0 9722 &enable_so_page_size_dataflash_9722
151481 +enable_so_setup_port_fndecl_9724 setup_port fndecl 5-4 9724 NULL nohasharray
151482 +enable_so_ieee80211_build_preq_ies_band_fndecl_9724 ieee80211_build_preq_ies_band fndecl 0 9724 &enable_so_setup_port_fndecl_9724 nohasharray
151483 +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
151484 +enable_so_mask_myri10ge_tx_buf_9725 mask myri10ge_tx_buf 0 9725 NULL
151485 +enable_so_vicam_control_msg_fndecl_9727 vicam_control_msg fndecl 0 9727 NULL
151486 +enable_so_samsung_clk_sleep_init_fndecl_9743 samsung_clk_sleep_init fndecl 3 9743 NULL
151487 +enable_so_qsfp_2_read_fndecl_9744 qsfp_2_read fndecl 3 9744 NULL
151488 +enable_so_blkdev_fsync_fndecl_9745 blkdev_fsync fndecl 2-3 9745 NULL
151489 +enable_so_bnx2x_mcast_handle_current_cmd_fndecl_9747 bnx2x_mcast_handle_current_cmd fndecl 0 9747 NULL
151490 +enable_so___alloc_bootmem_fndecl_9753 __alloc_bootmem fndecl 2-1-3 9753 NULL
151491 +enable_so_il4965_hwrate_to_plcp_idx_fndecl_9755 il4965_hwrate_to_plcp_idx fndecl 0-1 9755 NULL
151492 +enable_so_hbuf_free_slots_mei_hw_ops_9760 hbuf_free_slots mei_hw_ops 0 9760 NULL
151493 +enable_so_hidraw_write_fndecl_9763 hidraw_write fndecl 3 9763 NULL nohasharray
151494 +enable_so_buffer_length_floppy_raw_cmd_9763 buffer_length floppy_raw_cmd 0 9763 &enable_so_hidraw_write_fndecl_9763
151495 +enable_so_index_sdio_uart_port_9769 index sdio_uart_port 0 9769 NULL
151496 +enable_so_stat_ethoc_bd_9775 stat ethoc_bd 0 9775 NULL nohasharray
151497 +enable_so_dvb_ringbuffer_write_fndecl_9775 dvb_ringbuffer_write fndecl 3-0 9775 &enable_so_stat_ethoc_bd_9775
151498 +enable_so_vmlfb_alloc_vram_area_fndecl_9776 vmlfb_alloc_vram_area fndecl 2 9776 NULL
151499 +enable_so_ctl_dev_e752x_dev_info_9777 ctl_dev e752x_dev_info 0 9777 NULL
151500 +enable_so_encap_hlen_ip_tunnel_9779 encap_hlen ip_tunnel 0 9779 NULL
151501 +enable_so_tool_mask_read_fndecl_9780 tool_mask_read fndecl 3 9780 NULL
151502 +enable_so_highest_inum_ubifs_info_9785 highest_inum ubifs_info 0 9785 NULL
151503 +enable_so_valuelen_xfs_da_args_9786 valuelen xfs_da_args 0 9786 NULL
151504 +enable_so_irda_recvmsg_dgram_fndecl_9788 irda_recvmsg_dgram fndecl 3 9788 NULL
151505 +enable_so_tx_frag_tkip_called_read_fndecl_9796 tx_frag_tkip_called_read fndecl 3 9796 NULL
151506 +enable_so_vci_atm_vcc_9797 vci atm_vcc 0 9797 NULL
151507 +enable_so_aper_base_agp_kern_info_9798 aper_base agp_kern_info 0 9798 NULL
151508 +enable_so_irlan_insert_array_param_fndecl_9800 irlan_insert_array_param fndecl 4 9800 NULL
151509 +enable_so_get_max_inline_xattr_value_size_fndecl_9801 get_max_inline_xattr_value_size fndecl 0 9801 NULL
151510 +enable_so_rq_callsize_rpc_rqst_9803 rq_callsize rpc_rqst 0 9803 NULL
151511 +enable_so_osst_write_fndecl_9806 osst_write fndecl 3 9806 NULL
151512 +enable_so_in_size_ViceIoctl_9808 in_size ViceIoctl 0 9808 NULL nohasharray
151513 +enable_so_usbvision_read_fndecl_9808 usbvision_read fndecl 3 9808 &enable_so_in_size_ViceIoctl_9808
151514 +enable_so_num_private_args_iw_handler_def_9810 num_private_args iw_handler_def 0 9810 NULL
151515 +enable_so_update_backref_node_fndecl_9811 update_backref_node fndecl 3 9811 NULL
151516 +enable_so_pathmtu_sctp_association_9815 pathmtu sctp_association 0 9815 NULL
151517 +enable_so_brcmf_proto_bcdc_hdrpush_fndecl_9818 brcmf_proto_bcdc_hdrpush fndecl 3 9818 NULL nohasharray
151518 +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
151519 +enable_so_pref_erase_mmc_card_9824 pref_erase mmc_card 0 9824 NULL
151520 +enable_so_flags_rtl8187se_rx_desc_9826 flags rtl8187se_rx_desc 0 9826 NULL
151521 +enable_so_section_count_f2fs_super_block_9832 section_count f2fs_super_block 0 9832 NULL nohasharray
151522 +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
151523 +enable_so_sectors_r10bio_9834 sectors r10bio 0 9834 NULL
151524 +enable_so_msg_length_sms_msg_hdr_9842 msg_length sms_msg_hdr 0 9842 NULL
151525 +enable_so_snd_compr_get_avail_fndecl_9843 snd_compr_get_avail fndecl 0 9843 NULL
151526 +enable_so_complete_read_super_fndecl_9844 complete_read_super fndecl 3 9844 NULL
151527 +enable_so_pg_count_agp_allocate_9853 pg_count agp_allocate 0 9853 NULL
151528 +enable_so_data_size_virtio_gpu_vbuffer_9856 data_size virtio_gpu_vbuffer 0 9856 NULL
151529 +enable_so_vlan_id_rlb_client_info_9858 vlan_id rlb_client_info 0 9858 NULL
151530 +enable_so_read_fiforeg_fndecl_9859 read_fiforeg fndecl 2 9859 NULL nohasharray
151531 +enable_so_nr_of_buckets_v4l2_ctrl_handler_9859 nr_of_buckets v4l2_ctrl_handler 0 9859 &enable_so_read_fiforeg_fndecl_9859
151532 +enable_so_ext3_sync_file_fndecl_9860 ext3_sync_file fndecl 2-3 9860 NULL
151533 +enable_so_videobuf_read_one_fndecl_9862 videobuf_read_one fndecl 3 9862 NULL
151534 +enable_so_align_nvkm_instobj_args_9868 align nvkm_instobj_args 0 9868 NULL
151535 +enable_so_get_img_height_s5p_mfc_hw_ops_9869 get_img_height s5p_mfc_hw_ops 0 9869 NULL
151536 +enable_so_arvo_sysfs_read_fndecl_9874 arvo_sysfs_read fndecl 6 9874 NULL
151537 +enable_so_xfs_seek_hole_data_fndecl_9883 xfs_seek_hole_data fndecl 2 9883 NULL
151538 +enable_so_v4l_nbufs_vardecl_9889 v4l_nbufs vardecl 0 9889 NULL
151539 +enable_so_emulator_set_cr_fndecl_9890 emulator_set_cr fndecl 3 9890 NULL
151540 +enable_so_copy_from_user_nmi_fndecl_9899 copy_from_user_nmi fndecl 3 9899 NULL
151541 +enable_so_ovfx2_pkt_scan_fndecl_9901 ovfx2_pkt_scan fndecl 3 9901 NULL nohasharray
151542 +enable_so_begin_entry_alloc_9901 begin entry_alloc 0 9901 &enable_so_ovfx2_pkt_scan_fndecl_9901
151543 +enable_so_tx_ring_size_sky2_port_9902 tx_ring_size sky2_port 0 9902 NULL
151544 +enable_so_nkeys_tc_u32_sel_9905 nkeys tc_u32_sel 0 9905 NULL
151545 +enable_so_legacy_count_vardecl_pty_c_9908 legacy_count vardecl_pty.c 0 9908 NULL
151546 +enable_so_prism54_wpa_bss_ie_add_fndecl_9910 prism54_wpa_bss_ie_add fndecl 4 9910 NULL
151547 +enable_so_stat_ddb_output_9913 stat ddb_output 0 9913 NULL
151548 +enable_so_alloc_event_waiters_fndecl_9914 alloc_event_waiters fndecl 1 9914 NULL
151549 +enable_so_ep_in_ksdazzle_cb_9917 ep_in ksdazzle_cb 0 9917 NULL
151550 +enable_so___ceph_do_getattr_fndecl_9918 __ceph_do_getattr fndecl 0 9918 NULL
151551 +enable_so_vbe_modes_cnt_uvesafb_par_9928 vbe_modes_cnt uvesafb_par 0 9928 NULL
151552 +enable_so_audit_log_n_string_fndecl_9930 audit_log_n_string fndecl 3 9930 NULL
151553 +enable_so_len_load_info_9931 len load_info 0 9931 NULL
151554 +enable_so_num_wsm_set_tx_rate_retry_policy_9933 num wsm_set_tx_rate_retry_policy 0 9933 NULL
151555 +enable_so_wb_pgbase_nfs_page_9940 wb_pgbase nfs_page 0 9940 NULL nohasharray
151556 +enable_so_object_name_len_ncp_objectname_ioctl_9940 object_name_len ncp_objectname_ioctl 0 9940 &enable_so_wb_pgbase_nfs_page_9940
151557 +enable_so_forced_ps_read_fndecl_9942 forced_ps_read fndecl 3 9942 NULL
151558 +enable_so_num_chan_pl330_config_9943 num_chan pl330_config 0 9943 NULL
151559 +enable_so_client_set_fmt_fndecl_9946 client_set_fmt fndecl 4-5 9946 NULL
151560 +enable_so_buffer_len_bnad_debug_info_9948 buffer_len bnad_debug_info 0 9948 NULL
151561 +enable_so_ath6kl_wmi_send_probe_response_cmd_fndecl_9955 ath6kl_wmi_send_probe_response_cmd fndecl 6-2 9955 NULL
151562 +enable_so_utf16s_to_utf8s_fndecl_9956 utf16s_to_utf8s fndecl 0 9956 NULL
151563 +enable_so_build_request_ceph_auth_client_ops_9960 build_request ceph_auth_client_ops 0 9960 NULL
151564 +enable_so_xfs_difree_inobt_fndecl_9961 xfs_difree_inobt fndecl 4 9961 NULL
151565 +enable_so_shmem_pwrite_slow_fndecl_9966 shmem_pwrite_slow fndecl 2-3 9966 NULL
151566 +enable_so_rt2x00dev_extra_tx_headroom_fndecl_9971 rt2x00dev_extra_tx_headroom fndecl 0 9971 NULL
151567 +enable_so_rs_pretty_print_rate_fndecl_9980 rs_pretty_print_rate fndecl 2-0 9980 NULL nohasharray
151568 +enable_so_pg_vec_len_netlink_ring_9980 pg_vec_len netlink_ring 0 9980 &enable_so_rs_pretty_print_rate_fndecl_9980
151569 +enable_so_count_tun_filter_9984 count tun_filter 0 9984 NULL
151570 +enable_so_start_extent_buffer_9986 start extent_buffer 0 9986 NULL
151571 +enable_so_map_sg_ib_dma_mapping_ops_9988 map_sg ib_dma_mapping_ops 0 9988 NULL
151572 +enable_so_hugepage_add_anon_rmap_fndecl_9989 hugepage_add_anon_rmap fndecl 3 9989 NULL
151573 +enable_so_nilfs_insert_inode_locked_fndecl_9991 nilfs_insert_inode_locked fndecl 3 9991 NULL
151574 +enable_so_dm_rh_region_to_sector_fndecl_9992 dm_rh_region_to_sector fndecl 0-2 9992 NULL
151575 +enable_so_i2c_wr_max_tda10071_config_9993 i2c_wr_max tda10071_config 0 9993 NULL
151576 +enable_so_ieee80211_if_read_last_beacon_fndecl_9994 ieee80211_if_read_last_beacon fndecl 3 9994 NULL
151577 +enable_so_port_rcvegrbuf_size_ipath_portdata_9999 port_rcvegrbuf_size ipath_portdata 0 9999 NULL
151578 +enable_so_sample_bits_twl4030_priv_10002 sample_bits twl4030_priv 0 10002 NULL
151579 +enable_so_rpcrdma_inline_fixup_fndecl_10007 rpcrdma_inline_fixup fndecl 3 10007 NULL
151580 +enable_so_setifbcnt_fndecl_10012 setifbcnt fndecl 3 10012 NULL
151581 +enable_so__create_sg_bios_fndecl_10015 _create_sg_bios fndecl 4 10015 NULL
151582 +enable_so_nouveau_sgdma_create_ttm_fndecl_10022 nouveau_sgdma_create_ttm fndecl 2 10022 NULL
151583 +enable_so_skb_append_datato_frags_fndecl_10028 skb_append_datato_frags fndecl 5 10028 NULL
151584 +enable_so_add_dataflash_otp_fndecl_10031 add_dataflash_otp fndecl 4-3 10031 NULL
151585 +enable_so___cookie_v6_check_fndecl_10035 __cookie_v6_check fndecl 0 10035 NULL
151586 +enable_so_get_img_width_s5p_mfc_hw_ops_10036 get_img_width s5p_mfc_hw_ops 0 10036 NULL
151587 +enable_so_mwifiex_send_tdls_action_frame_fndecl_10044 mwifiex_send_tdls_action_frame fndecl 7 10044 NULL
151588 +enable_so_bd_iov_count_ptlrpc_bulk_desc_10045 bd_iov_count ptlrpc_bulk_desc 0 10045 NULL
151589 +enable_so_sisusbcon_scroll_fndecl_10048 sisusbcon_scroll fndecl 5-2-3 10048 NULL
151590 +enable_so_send_buf_size_netvsc_device_10051 send_buf_size netvsc_device 0 10051 NULL
151591 +enable_so_ath6kl_wmi_powermode_cmd_fndecl_10052 ath6kl_wmi_powermode_cmd fndecl 2 10052 NULL
151592 +enable_so_usbat_write_blocks_fndecl_10053 usbat_write_blocks fndecl 3-4 10053 NULL nohasharray
151593 +enable_so_command_file_write_fndecl_10053 command_file_write fndecl 3 10053 &enable_so_usbat_write_blocks_fndecl_10053
151594 +enable_so_musb_urb_dequeue_fndecl_10056 musb_urb_dequeue fndecl 3 10056 NULL
151595 +enable_so_dm_bufio_prefetch_fndecl_10057 dm_bufio_prefetch fndecl 2 10057 NULL
151596 +enable_so_bio_detain_range_fndecl_10064 bio_detain_range fndecl 2-3 10064 NULL
151597 +enable_so_rx_buf_sz_sis190_private_10068 rx_buf_sz sis190_private 0 10068 NULL nohasharray
151598 +enable_so_uvc_simplify_fraction_fndecl_10068 uvc_simplify_fraction fndecl 3 10068 &enable_so_rx_buf_sz_sis190_private_10068
151599 +enable_so_max_pages_fuse_req_10069 max_pages fuse_req 0 10069 NULL
151600 +enable_so_iwl_dbgfs_set_nic_temperature_read_fndecl_10071 iwl_dbgfs_set_nic_temperature_read fndecl 3 10071 NULL
151601 +enable_so_sg_size_octnic_gather_10076 sg_size octnic_gather 0 10076 NULL
151602 +enable_so_ocfs2_refcount_xattr_tree_rec_fndecl_10077 ocfs2_refcount_xattr_tree_rec fndecl 3 10077 NULL
151603 +enable_so_height_virtio_gpu_rect_10085 height virtio_gpu_rect 0 10085 NULL
151604 +enable_so_ssb_admatch_base_fndecl_10086 ssb_admatch_base fndecl 0-1 10086 NULL
151605 +enable_so_outlen_write_fndecl_10093 outlen_write fndecl 3 10093 NULL
151606 +enable_so_msix_num_bnad_10096 msix_num bnad 0 10096 NULL
151607 +enable_so_em28xx_init_usb_xfer_fndecl_10106 em28xx_init_usb_xfer fndecl 5-6-4 10106 NULL
151608 +enable_so__regmap_raw_multi_reg_write_fndecl_10107 _regmap_raw_multi_reg_write fndecl 3 10107 NULL
151609 +enable_so_trace_parser_get_init_fndecl_10112 trace_parser_get_init fndecl 2 10112 NULL
151610 +enable_so_req_sz__MPT_ADAPTER_10113 req_sz _MPT_ADAPTER 0 10113 NULL
151611 +enable_so_tfms_count_crypt_config_10114 tfms_count crypt_config 0 10114 NULL
151612 +enable_so_total_len_extlog_l1_head_10117 total_len extlog_l1_head 0 10117 NULL nohasharray
151613 +enable_so_uvc_video_encode_data_fndecl_10117 uvc_video_encode_data fndecl 0-4 10117 &enable_so_total_len_extlog_l1_head_10117
151614 +enable_so_len_pda_entry_10121 len pda_entry 0 10121 NULL nohasharray
151615 +enable_so_netlbl_mgmt_add_common_fndecl_10121 netlbl_mgmt_add_common fndecl 0 10121 &enable_so_len_pda_entry_10121
151616 +enable_so_MaxBlocksPerCommand_DAC960_Controller_10124 MaxBlocksPerCommand DAC960_Controller 0 10124 NULL nohasharray
151617 +enable_so_data_dma_usbtouch_usb_10124 data_dma usbtouch_usb 0 10124 &enable_so_MaxBlocksPerCommand_DAC960_Controller_10124
151618 +enable_so_max_hw_sectors_nvme_dev_10127 max_hw_sectors nvme_dev 0 10127 NULL nohasharray
151619 +enable_so_parent_overlap_rbd_device_10127 parent_overlap rbd_device 0 10127 &enable_so_max_hw_sectors_nvme_dev_10127
151620 +enable_so_max_bu_buf_len_ubifs_info_10130 max_bu_buf_len ubifs_info 0 10130 NULL
151621 +enable_so_ieee80211_rx_mgmt_auth_fndecl_10133 ieee80211_rx_mgmt_auth fndecl 3 10133 NULL
151622 +enable_so_qlcnic_83xx_diag_alloc_res_fndecl_10139 qlcnic_83xx_diag_alloc_res fndecl 3 10139 NULL
151623 +enable_so_xprt_rdma_allocate_fndecl_10143 xprt_rdma_allocate fndecl 2 10143 NULL
151624 +enable_so_ns_cno_the_nilfs_10144 ns_cno the_nilfs 0 10144 NULL nohasharray
151625 +enable_so_sg_segs_osst_buffer_10144 sg_segs osst_buffer 0 10144 &enable_so_ns_cno_the_nilfs_10144 nohasharray
151626 +enable_so_key_ifindex_read_fndecl_10144 key_ifindex_read fndecl 3 10144 &enable_so_sg_segs_osst_buffer_10144
151627 +enable_so_ldebugfs_fid_space_seq_write_fndecl_10152 ldebugfs_fid_space_seq_write fndecl 3 10152 NULL
151628 +enable_so__sp2d_max_pg_fndecl_10157 _sp2d_max_pg fndecl 0 10157 NULL
151629 +enable_so_usnic_vnic_res_spec_update_fndecl_10169 usnic_vnic_res_spec_update fndecl 3 10169 NULL
151630 +enable_so_error_block_length_acpi_hest_generic_10170 error_block_length acpi_hest_generic 0 10170 NULL
151631 +enable_so_cluster_size_msdos_sb_info_10172 cluster_size msdos_sb_info 0 10172 NULL
151632 +enable_so_s_inopf_ufs_sb_private_info_10174 s_inopf ufs_sb_private_info 0 10174 NULL nohasharray
151633 +enable_so_substream_count_snd_rawmidi_str_10174 substream_count snd_rawmidi_str 0 10174 &enable_so_s_inopf_ufs_sb_private_info_10174
151634 +enable_so_acpi_sci_ioapic_setup_fndecl_10182 acpi_sci_ioapic_setup fndecl 1-4 10182 NULL
151635 +enable_so_read_buffer_size_vardecl_legousbtower_c_10184 read_buffer_size vardecl_legousbtower.c 0 10184 NULL
151636 +enable_so_transport_alloc_session_tags_fndecl_10186 transport_alloc_session_tags fndecl 3-2 10186 NULL
151637 +enable_so_xfrm6_init_path_fndecl_10187 xfrm6_init_path fndecl 3 10187 NULL
151638 +enable_so_size_erst_erange_10188 size erst_erange 0 10188 NULL
151639 +enable_so_opera1_xilinx_rw_fndecl_10190 opera1_xilinx_rw fndecl 5 10190 NULL
151640 +enable_so_PagesPerBlock_ms_lib_ctrl_10191 PagesPerBlock ms_lib_ctrl 0 10191 NULL
151641 +enable_so_tx_buf_size_mwifiex_adapter_10198 tx_buf_size mwifiex_adapter 0 10198 NULL
151642 +enable_so_old_log_size_persistent_ram_zone_10215 old_log_size persistent_ram_zone 0 10215 NULL
151643 +enable_so___ext4_journal_get_write_access_fndecl_10217 __ext4_journal_get_write_access fndecl 0 10217 NULL
151644 +enable_so_wil_addba_rx_request_fndecl_10219 wil_addba_rx_request fndecl 4 10219 NULL
151645 +enable_so_rds_message_map_pages_fndecl_10220 rds_message_map_pages fndecl 2 10220 NULL
151646 +enable_so_ext4_xattr_set_handle_fndecl_10221 ext4_xattr_set_handle fndecl 6 10221 NULL
151647 +enable_so_alg_setkey_fndecl_10222 alg_setkey fndecl 3 10222 NULL
151648 +enable_so_nvkm_vm_get_fndecl_10228 nvkm_vm_get fndecl 3-2 10228 NULL
151649 +enable_so_next_id_hfs_sb_info_10229 next_id hfs_sb_info 0 10229 NULL
151650 +enable_so_qlcnic_set_sds_ring_count_fndecl_10232 qlcnic_set_sds_ring_count fndecl 2 10232 NULL
151651 +enable_so_input_get_new_minor_fndecl_10235 input_get_new_minor fndecl 0 10235 NULL
151652 +enable_so_iio_devt_vardecl_industrialio_core_c_10237 iio_devt vardecl_industrialio-core.c 0 10237 NULL nohasharray
151653 +enable_so_req_pages_pvscsi_adapter_10237 req_pages pvscsi_adapter 0 10237 &enable_so_iio_devt_vardecl_industrialio_core_c_10237
151654 +enable_so_uarc_size_mthca_uar_table_10238 uarc_size mthca_uar_table 0 10238 NULL
151655 +enable_so_bv_len_bio_vec_10239 bv_len bio_vec 0 10239 NULL nohasharray
151656 +enable_so_do_fcntl_fndecl_10239 do_fcntl fndecl 3 10239 &enable_so_bv_len_bio_vec_10239
151657 +enable_so_q1_depth_bna_rx_config_10241 q1_depth bna_rx_config 0 10241 NULL
151658 +enable_so_smallpageshift_sddr55_card_info_10244 smallpageshift sddr55_card_info 0 10244 NULL
151659 +enable_so_irias_add_octseq_attrib_fndecl_10252 irias_add_octseq_attrib fndecl 4 10252 NULL nohasharray
151660 +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
151661 +enable_so_filelayout_get_dense_offset_fndecl_10253 filelayout_get_dense_offset fndecl 0 10253 NULL
151662 +enable_so_agg_buf_sz_vardecl_r8152_c_10254 agg_buf_sz vardecl_r8152.c 0 10254 NULL
151663 +enable_so_nilfs_sufile_do_scrap_fndecl_10257 nilfs_sufile_do_scrap fndecl 2 10257 NULL
151664 +enable_so_iscsi_sw_tcp_send_hdr_prep_fndecl_10261 iscsi_sw_tcp_send_hdr_prep fndecl 3 10261 NULL
151665 +enable_so_sdebug_store_sectors_vardecl_scsi_debug_c_10267 sdebug_store_sectors vardecl_scsi_debug.c 0 10267 NULL
151666 +enable_so_jffs2_scan_dirent_node_fndecl_10268 jffs2_scan_dirent_node fndecl 4 10268 NULL
151667 +enable_so_dn_sendmsg_fndecl_10269 dn_sendmsg fndecl 3 10269 NULL
151668 +enable_so_rxd_process_rxd_ops_10271 rxd_process rxd_ops 0 10271 NULL
151669 +enable_so_vmci_host_setup_notify_fndecl_10273 vmci_host_setup_notify fndecl 2 10273 NULL
151670 +enable_so_vmw_resource_buf_alloc_fndecl_10284 vmw_resource_buf_alloc fndecl 0 10284 NULL
151671 +enable_so_o_width_g2d_frame_10291 o_width g2d_frame 0 10291 NULL
151672 +enable_so_num_vfs_i40e_hw_capabilities_10302 num_vfs i40e_hw_capabilities 0 10302 NULL
151673 +enable_so_ieee80211_tdls_add_chan_switch_req_ies_fndecl_10304 ieee80211_tdls_add_chan_switch_req_ies fndecl 6 10304 NULL
151674 +enable_so_scsi_vpd_inquiry_fndecl_10315 scsi_vpd_inquiry fndecl 4-0 10315 NULL
151675 +enable_so_num_mnt_opts_security_mnt_opts_10327 num_mnt_opts security_mnt_opts 0 10327 NULL
151676 +enable_so_blk_stack_limits_fndecl_10332 blk_stack_limits fndecl 3 10332 NULL
151677 +enable_so_dev_mem_write_fndecl_10335 dev_mem_write fndecl 3 10335 NULL
151678 +enable_so_down_bplus_internal_node_10336 down bplus_internal_node 0 10336 NULL
151679 +enable_so_boot_max_nr_grant_frames_vardecl_grant_table_c_10337 boot_max_nr_grant_frames vardecl_grant-table.c 0 10337 NULL
151680 +enable_so_len_xdr_buf_10338 len xdr_buf 0 10338 NULL
151681 +enable_so_sector_size_btt_10339 sector_size btt 0 10339 NULL
151682 +enable_so_cids_per_blk_cnic_local_10342 cids_per_blk cnic_local 0 10342 NULL
151683 +enable_so_nr_possible_cpus_uv_blade_info_10350 nr_possible_cpus uv_blade_info 0 10350 NULL
151684 +enable_so_s_no_blocks_logfs_super_10354 s_no_blocks logfs_super 0 10354 NULL
151685 +enable_so___pci_request_selected_regions_fndecl_10361 __pci_request_selected_regions fndecl 0 10361 NULL
151686 +enable_so_num_mgms_mlx4_caps_10367 num_mgms mlx4_caps 0 10367 NULL
151687 +enable_so_rx_filter_data_filter_read_fndecl_10369 rx_filter_data_filter_read fndecl 3 10369 NULL
151688 +enable_so_len_mt7601u_dma_buf_10376 len mt7601u_dma_buf 0 10376 NULL nohasharray
151689 +enable_so_ssid_len_libipw_network_10376 ssid_len libipw_network 0 10376 &enable_so_len_mt7601u_dma_buf_10376
151690 +enable_so_decomp_windowBits_zlib_ctx_10381 decomp_windowBits zlib_ctx 0 10381 NULL
151691 +enable_so_mc_saved_count_mc_saved_data_10384 mc_saved_count mc_saved_data 0 10384 NULL
151692 +enable_so_size_synthvid_msg_hdr_10391 size synthvid_msg_hdr 0 10391 NULL
151693 +enable_so_arg_ax25_ctl_struct_10392 arg ax25_ctl_struct 0 10392 NULL nohasharray
151694 +enable_so_cxgbi_ddp_reserve_fndecl_10392 cxgbi_ddp_reserve fndecl 4 10392 &enable_so_arg_ax25_ctl_struct_10392
151695 +enable_so_iomem_base_myri10ge_priv_10393 iomem_base myri10ge_priv 0 10393 NULL
151696 +enable_so_max_beb_per1024_mtd_dev_param_10395 max_beb_per1024 mtd_dev_param 0 10395 NULL
151697 +enable_so_tg3_run_loopback_fndecl_10398 tg3_run_loopback fndecl 2 10398 NULL
151698 +enable_so_snd_midi_channel_init_set_fndecl_10399 snd_midi_channel_init_set fndecl 1 10399 NULL
151699 +enable_so_ihead_offs_ubifs_info_10400 ihead_offs ubifs_info 0 10400 NULL
151700 +enable_so_length_p_header95_10401 length p_header95 0 10401 NULL
151701 +enable_so_romfs_blk_strnlen_fndecl_10402 romfs_blk_strnlen fndecl 3-2-0 10402 NULL
151702 +enable_so_num_data_channels_st_sensor_data_10404 num_data_channels st_sensor_data 0 10404 NULL
151703 +enable_so__osd_req_sizeof_alist_header_fndecl_10405 _osd_req_sizeof_alist_header fndecl 0 10405 NULL nohasharray
151704 +enable_so_num_vss_cfgs_wm8994_pdata_10405 num_vss_cfgs wm8994_pdata 0 10405 &enable_so__osd_req_sizeof_alist_header_fndecl_10405
151705 +enable_so_zap_vma_ptes_fndecl_10406 zap_vma_ptes fndecl 3-2 10406 NULL
151706 +enable_so_u_memcpya_fndecl_10408 u_memcpya fndecl 2-3 10408 NULL
151707 +enable_so_off_xtsplit_10412 off xtsplit 0 10412 NULL
151708 +enable_so_max_ctrl_size_ims_pcu_10413 max_ctrl_size ims_pcu 0 10413 NULL
151709 +enable_so_nent_mlx4_eq_10414 nent mlx4_eq 0 10414 NULL
151710 +enable_so_size_xt_table_info_10415 size xt_table_info 0 10415 NULL
151711 +enable_so_xfs_iget_cache_miss_fndecl_10416 xfs_iget_cache_miss fndecl 4 10416 NULL
151712 +enable_so_spi_async_locked_fndecl_10422 spi_async_locked fndecl 0 10422 NULL
151713 +enable_so_byte_count_iwl_rx_mpdu_res_start_10437 byte_count iwl_rx_mpdu_res_start 0 10437 NULL nohasharray
151714 +enable_so_flip_sd_gl860_10437 flip sd_gl860 0 10437 &enable_so_byte_count_iwl_rx_mpdu_res_start_10437
151715 +enable_so_alloc_switch_ctx_fndecl_10438 alloc_switch_ctx fndecl 3-2 10438 NULL
151716 +enable_so_radeon_gem_object_create_fndecl_10441 radeon_gem_object_create fndecl 2 10441 NULL
151717 +enable_so_expand_inode_data_fndecl_10442 expand_inode_data fndecl 2-3 10442 NULL
151718 +enable_so_NumberOfPhyBlock_ms_lib_ctrl_10443 NumberOfPhyBlock ms_lib_ctrl 0 10443 NULL
151719 +enable_so_wrfilled_cyberjack_private_10444 wrfilled cyberjack_private 0 10444 NULL
151720 +enable_so_p9dirent_read_fndecl_10450 p9dirent_read fndecl 3-0 10450 NULL
151721 +enable_so_ext4_write_inline_data_end_fndecl_10452 ext4_write_inline_data_end fndecl 0-4 10452 NULL
151722 +enable_so_page_shift_nand_chip_10453 page_shift nand_chip 0 10453 NULL
151723 +enable_so_length_acpi_mem_space_context_10460 length acpi_mem_space_context 0 10460 NULL
151724 +enable_so_vxlan_change_mtu_fndecl_10464 vxlan_change_mtu fndecl 2 10464 NULL
151725 +enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467 wNdpOutDivisor usb_cdc_ncm_ntb_parameters 0 10467 NULL nohasharray
151726 +enable_so_notesize_fndecl_10467 notesize fndecl 0 10467 &enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467
151727 +enable_so___genwqe_readq_fndecl_10470 __genwqe_readq fndecl 0 10470 NULL
151728 +enable_so_usblp_ioctl_fndecl_10472 usblp_ioctl fndecl 2 10472 NULL
151729 +enable_so_nfsd4_get_drc_mem_fndecl_10473 nfsd4_get_drc_mem fndecl 0 10473 NULL
151730 +enable_so_devnum_usb_device_10474 devnum usb_device 0 10474 NULL
151731 +enable_so_out_min_chans_snd_card_asihpi_10490 out_min_chans snd_card_asihpi 0 10490 NULL
151732 +enable_so_nbpf_prep_memcpy_fndecl_10492 nbpf_prep_memcpy fndecl 4 10492 NULL
151733 +enable_so_msb_cache_read_fndecl_10494 msb_cache_read fndecl 5 10494 NULL
151734 +enable_so_ext4_ext_direct_IO_fndecl_10503 ext4_ext_direct_IO fndecl 3 10503 NULL nohasharray
151735 +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
151736 +enable_so_cidlen_he_rbrq_10504 cidlen he_rbrq 0 10504 NULL
151737 +enable_so_cr_namelen_nfsd4_create_10516 cr_namelen nfsd4_create 0 10516 NULL
151738 +enable_so_dma_burst_size_chip_data_10519 dma_burst_size chip_data 0 10519 NULL nohasharray
151739 +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
151740 +enable_so_posix_acl_from_xattr_fndecl_10527 posix_acl_from_xattr fndecl 3 10527 NULL nohasharray
151741 +enable_so_sd_alloc_ctl_entry_fndecl_10527 sd_alloc_ctl_entry fndecl 1 10527 &enable_so_posix_acl_from_xattr_fndecl_10527
151742 +enable_so_channels_gk104_fifo_impl_10531 channels gk104_fifo_impl 0 10531 NULL
151743 +enable_so_stride_cobalt_stream_10537 stride cobalt_stream 0 10537 NULL
151744 +enable_so_cros_ec_prepare_tx_fndecl_10539 cros_ec_prepare_tx fndecl 0 10539 NULL
151745 +enable_so_logical_scrub_page_10540 logical scrub_page 0 10540 NULL nohasharray
151746 +enable_so_touchscreen_set_params_fndecl_10540 touchscreen_set_params fndecl 3 10540 &enable_so_logical_scrub_page_10540
151747 +enable_so_xen_set_callback_via_fndecl_10541 xen_set_callback_via fndecl 1 10541 NULL
151748 +enable_so_isofs_get_last_session_fndecl_10547 isofs_get_last_session fndecl 0 10547 NULL nohasharray
151749 +enable_so_y_skip_top_mt9m001_10547 y_skip_top mt9m001 0 10547 &enable_so_isofs_get_last_session_fndecl_10547
151750 +enable_so_read_cis_cache_fndecl_10548 read_cis_cache fndecl 4 10548 NULL
151751 +enable_so_nv_change_mtu_fndecl_10551 nv_change_mtu fndecl 2 10551 NULL
151752 +enable_so_wm_adsp_read_algs_fndecl_10552 wm_adsp_read_algs fndecl 4 10552 NULL
151753 +enable_so_new_leaf_fndecl_10553 new_leaf fndecl 3 10553 NULL
151754 +enable_so_id_hsi_controller_10557 id hsi_controller 0 10557 NULL
151755 +enable_so_tcf_csum_ipv6_icmp_fndecl_10562 tcf_csum_ipv6_icmp fndecl 3 10562 NULL
151756 +enable_so_lpfc_present_cpu_vardecl_10567 lpfc_present_cpu vardecl 0 10567 NULL
151757 +enable_so_cnt_rsxx_reg_access_10573 cnt rsxx_reg_access 0 10573 NULL
151758 +enable_so_sb_bsize_shift_gfs2_sb_host_10575 sb_bsize_shift gfs2_sb_host 0 10575 NULL nohasharray
151759 +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
151760 +enable_so_initialized_size__ntfs_inode_10576 initialized_size _ntfs_inode 0 10576 NULL
151761 +enable_so_fuse_fsync_fndecl_10582 fuse_fsync fndecl 2-3 10582 NULL
151762 +enable_so_op_bytes_x86_emulate_ctxt_10583 op_bytes x86_emulate_ctxt 0 10583 NULL
151763 +enable_so_vmw_compat_shader_add_fndecl_10585 vmw_compat_shader_add fndecl 6 10585 NULL nohasharray
151764 +enable_so_buf_idx_mei_cl_cb_10585 buf_idx mei_cl_cb 0 10585 &enable_so_vmw_compat_shader_add_fndecl_10585
151765 +enable_so_pcmcia_make_resource_fndecl_10591 pcmcia_make_resource fndecl 2-1 10591 NULL
151766 +enable_so_size_ib_uverbs_flow_attr_10597 size ib_uverbs_flow_attr 0 10597 NULL
151767 +enable_so_max_frame_size_atl1_hw_10601 max_frame_size atl1_hw 0 10601 NULL
151768 +enable_so_num_amd_northbridge_info_10604 num amd_northbridge_info 0 10604 NULL
151769 +enable_so_uremainder64_st_cmdstatus_10606 uremainder64 st_cmdstatus 0 10606 NULL
151770 +enable_so_inst_size_il4965_firmware_pieces_10607 inst_size il4965_firmware_pieces 0 10607 NULL
151771 +enable_so_rq_depth_p9_rdma_opts_10608 rq_depth p9_rdma_opts 0 10608 NULL nohasharray
151772 +enable_so_index_vardecl_mtpav_c_10608 index vardecl_mtpav.c 0 10608 &enable_so_rq_depth_p9_rdma_opts_10608
151773 +enable_so_brightness_sd_gl860_10611 brightness sd_gl860 0 10611 NULL
151774 +enable_so_epp_free_pages_ptlrpc_enc_page_pool_10614 epp_free_pages ptlrpc_enc_page_pool 0 10614 NULL
151775 +enable_so_ext4_trim_all_free_fndecl_10621 ext4_trim_all_free fndecl 0-4-2 10621 NULL
151776 +enable_so_rfs_ipg_rx_10623 rfs ipg_rx 0 10623 NULL
151777 +enable_so___probe_kernel_write_fndecl_10625 __probe_kernel_write fndecl 3 10625 NULL nohasharray
151778 +enable_so_lch_count_omap_dma_dev_attr_10625 lch_count omap_dma_dev_attr 0 10625 &enable_so___probe_kernel_write_fndecl_10625
151779 +enable_so_pkt_alignment_factor_rndis_initialize_complete_10633 pkt_alignment_factor rndis_initialize_complete 0 10633 NULL
151780 +enable_so_ib_ipath_max_srq_wrs_vardecl_10635 ib_ipath_max_srq_wrs vardecl 0 10635 NULL
151781 +enable_so_pgbase_nfs_pgio_args_10636 pgbase nfs_pgio_args 0 10636 NULL
151782 +enable_so_tcp_sendpage_fndecl_10646 tcp_sendpage fndecl 4-3 10646 NULL nohasharray
151783 +enable_so_sge_length_ipath_sge_10646 sge_length ipath_sge 0 10646 &enable_so_tcp_sendpage_fndecl_10646
151784 +enable_so_memory_size_vhost_memory_region_10658 memory_size vhost_memory_region 0 10658 NULL
151785 +enable_so_tlv_put_fndecl_10659 tlv_put fndecl 4-0 10659 NULL
151786 +enable_so_s_3apbshift_ufs_sb_private_info_10663 s_3apbshift ufs_sb_private_info 0 10663 NULL
151787 +enable_so_start_mtd_oob_buf32_10664 start mtd_oob_buf32 0 10664 NULL
151788 +enable_so_len_ahd_dma_seg_10667 len ahd_dma_seg 0 10667 NULL
151789 +enable_so_radeon_ttm_tt_create_fndecl_10672 radeon_ttm_tt_create fndecl 2 10672 NULL
151790 +enable_so_mmc_test_simple_transfer_fndecl_10675 mmc_test_simple_transfer fndecl 6-5-3 10675 NULL
151791 +enable_so_cdce925_pll_find_rate_fndecl_10678 cdce925_pll_find_rate fndecl 2-1 10678 NULL
151792 +enable_so_xfs_rtfind_forw_fndecl_10681 xfs_rtfind_forw fndecl 3 10681 NULL nohasharray
151793 +enable_so_word_size_e1000_nvm_info_10681 word_size e1000_nvm_info 0 10681 &enable_so_xfs_rtfind_forw_fndecl_10681
151794 +enable_so_tlen_sc18is602_10682 tlen sc18is602 0 10682 NULL
151795 +enable_so_sb_bsize_gfs2_sb_host_10683 sb_bsize gfs2_sb_host 0 10683 NULL
151796 +enable_so_ipv6_setsockopt_fndecl_10684 ipv6_setsockopt fndecl 5 10684 NULL
151797 +enable_so_extract_icmp6_fields_fndecl_10685 extract_icmp6_fields fndecl 2 10685 NULL nohasharray
151798 +enable_so_write_file_bool_bmps_fndecl_10685 write_file_bool_bmps fndecl 3 10685 &enable_so_extract_icmp6_fields_fndecl_10685
151799 +enable_so_num_frames_usb_usbvision_10687 num_frames usb_usbvision 0 10687 NULL
151800 +enable_so_alauda_read_block_raw_fndecl_10688 alauda_read_block_raw fndecl 4 10688 NULL
151801 +enable_so_rx_ba_win_size_conf_ht_setting_10692 rx_ba_win_size conf_ht_setting 0 10692 NULL
151802 +enable_so_gigaset_initbcs_fndecl_10693 gigaset_initbcs fndecl 3 10693 NULL
151803 +enable_so_lov_ost_pool_extend_fndecl_10697 lov_ost_pool_extend fndecl 2 10697 NULL
151804 +enable_so_afs_write_begin_fndecl_10704 afs_write_begin fndecl 3-4 10704 NULL
151805 +enable_so_xfs_alloc_read_agf_fndecl_10710 xfs_alloc_read_agf fndecl 3 10710 NULL
151806 +enable_so_iio_set_bytes_per_datum_kfifo_fndecl_10712 iio_set_bytes_per_datum_kfifo fndecl 2 10712 NULL
151807 +enable_so_set_le_key_k_offset_fndecl_10721 set_le_key_k_offset fndecl 3 10721 NULL
151808 +enable_so___btrfs_getxattr_fndecl_10728 __btrfs_getxattr fndecl 0 10728 NULL nohasharray
151809 +enable_so_ipv6_recv_error_fndecl_10728 ipv6_recv_error fndecl 3 10728 &enable_so___btrfs_getxattr_fndecl_10728 nohasharray
151810 +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
151811 +enable_so_xen_p2m_size_vardecl_10730 xen_p2m_size vardecl 0 10730 NULL
151812 +enable_so_iomem_reg_shift_serial_struct_10733 iomem_reg_shift serial_struct 0 10733 NULL
151813 +enable_so_write_file_queue_fndecl_10737 write_file_queue fndecl 3 10737 NULL
151814 +enable_so_sb_dirblklog_xfs_sb_10738 sb_dirblklog xfs_sb 0 10738 NULL
151815 +enable_so___memblock_find_range_bottom_up_fndecl_10739 __memblock_find_range_bottom_up fndecl 0-4-1-2 10739 NULL
151816 +enable_so_x_offset_mxr_crop_10741 x_offset mxr_crop 0 10741 NULL
151817 +enable_so_max_bytes_per_io_se_dev_attrib_10744 max_bytes_per_io se_dev_attrib 0 10744 NULL
151818 +enable_so_BufSizeShift_qinfo_chip_10746 BufSizeShift qinfo_chip 0 10746 NULL nohasharray
151819 +enable_so_page_errors_dio_10746 page_errors dio 0 10746 &enable_so_BufSizeShift_qinfo_chip_10746
151820 +enable_so_next_blkoff_curseg_info_10751 next_blkoff curseg_info 0 10751 NULL
151821 +enable_so_NumEraseRegions_cfi_ident_10753 NumEraseRegions cfi_ident 0 10753 NULL
151822 +enable_so_write_head_fndecl_10754 write_head fndecl 4 10754 NULL
151823 +enable_so_adu_write_fndecl_10756 adu_write fndecl 3 10756 NULL
151824 +enable_so_data_start_dm_verity_10759 data_start dm_verity 0 10759 NULL
151825 +enable_so_new_chunk_core_exception_10765 new_chunk core_exception 0 10765 NULL
151826 +enable_so_batadv_send_tt_request_fndecl_10766 batadv_send_tt_request fndecl 5 10766 NULL
151827 +enable_so_zoran_ioctl_fndecl_10770 zoran_ioctl fndecl 2 10770 NULL
151828 +enable_so_ocrdma_reg_user_mr_fndecl_10777 ocrdma_reg_user_mr fndecl 2-3 10777 NULL
151829 +enable_so_amdgpu_ttm_tt_create_fndecl_10779 amdgpu_ttm_tt_create fndecl 2 10779 NULL
151830 +enable_so_setexposure_fndecl_10781 setexposure fndecl 0 10781 NULL
151831 +enable_so_btrfs_free_extent_fndecl_10784 btrfs_free_extent fndecl 4-3 10784 NULL
151832 +enable_so_soc_camera_calc_client_output_fndecl_10789 soc_camera_calc_client_output fndecl 6 10789 NULL
151833 +enable_so_ea_write_fndecl_10791 ea_write fndecl 3 10791 NULL nohasharray
151834 +enable_so_pnode_sz_ubifs_info_10791 pnode_sz ubifs_info 0 10791 &enable_so_ea_write_fndecl_10791 nohasharray
151835 +enable_so_dwc3_testmode_write_fndecl_10791 dwc3_testmode_write fndecl 3 10791 &enable_so_pnode_sz_ubifs_info_10791
151836 +enable_so_read32_brcmf_buscore_ops_10795 read32 brcmf_buscore_ops 0 10795 NULL
151837 +enable_so_set_config_fndecl_10797 set_config fndecl 0 10797 NULL nohasharray
151838 +enable_so_debug_debug2_read_fndecl_10797 debug_debug2_read fndecl 3 10797 &enable_so_set_config_fndecl_10797
151839 +enable_so_num_events_kfd_ioctl_wait_events_args_10811 num_events kfd_ioctl_wait_events_args 0 10811 NULL
151840 +enable_so_ssb_sdio_block_write_fndecl_10815 ssb_sdio_block_write fndecl 3 10815 NULL nohasharray
151841 +enable_so_num_rxd_netxen_adapter_10815 num_rxd netxen_adapter 0 10815 &enable_so_ssb_sdio_block_write_fndecl_10815
151842 +enable_so_add_regulator_linked_fndecl_10819 add_regulator_linked fndecl 1 10819 NULL
151843 +enable_so_batadv_dat_snoop_incoming_arp_request_fndecl_10823 batadv_dat_snoop_incoming_arp_request fndecl 3 10823 NULL
151844 +enable_so_read_reg_ipac_hw_10828 read_reg ipac_hw 0 10828 NULL
151845 +enable_so_num_mpt_mthca_profile_10833 num_mpt mthca_profile 0 10833 NULL
151846 +enable_so_rsrc_start_usb_hcd_10839 rsrc_start usb_hcd 0 10839 NULL
151847 +enable_so_do_generic_file_read_fndecl_10842 do_generic_file_read fndecl 0-4 10842 NULL
151848 +enable_so_get_cmdline_fndecl_10847 get_cmdline fndecl 3 10847 NULL
151849 +enable_so_dma_last_offset_ivtv_stream_10849 dma_last_offset ivtv_stream 0 10849 NULL
151850 +enable_so_irq_kvm_interrupt_10850 irq kvm_interrupt 0 10850 NULL
151851 +enable_so_set_le_fndecl_10854 set_le fndecl 4 10854 NULL nohasharray
151852 +enable_so_rndis_add_response_fndecl_10854 rndis_add_response fndecl 2 10854 &enable_so_set_le_fndecl_10854
151853 +enable_so_lpg_shift_nvkm_mmu_10855 lpg_shift nvkm_mmu 0 10855 NULL
151854 +enable_so_v_size_nilfs_argv_10857 v_size nilfs_argv 0 10857 NULL
151855 +enable_so_h_stk_size_10859 h stk_size 0 10859 NULL
151856 +enable_so_chachapoly_alloc_fndecl_10861 chachapoly_alloc fndecl 3 10861 NULL
151857 +enable_so_size_fuse_notify_retrieve_out_10862 size fuse_notify_retrieve_out 0 10862 NULL
151858 +enable_so_disk_expand_part_tbl_fndecl_10866 disk_expand_part_tbl fndecl 2 10866 NULL
151859 +enable_so_ezusb_fill_req_fndecl_10868 ezusb_fill_req fndecl 0-2 10868 NULL nohasharray
151860 +enable_so_ts_packet_count_cx23885_tsport_10868 ts_packet_count cx23885_tsport 0 10868 &enable_so_ezusb_fill_req_fndecl_10868
151861 +enable_so_p9stat_read_fndecl_10869 p9stat_read fndecl 3 10869 NULL
151862 +enable_so_pci_mmconfig_alloc_fndecl_10875 pci_mmconfig_alloc fndecl 2-3-4 10875 NULL
151863 +enable_so_w9968cf_pkt_scan_fndecl_10878 w9968cf_pkt_scan fndecl 3 10878 NULL
151864 +enable_so___vmalloc_fndecl_10880 __vmalloc fndecl 1 10880 NULL
151865 +enable_so_sgl_map_user_pages_fndecl_10881 sgl_map_user_pages fndecl 3-2 10881 NULL
151866 +enable_so_num_streams_lola_pcm_10882 num_streams lola_pcm 0 10882 NULL
151867 +enable_so_run_apei_exec_ins_type_10886 run apei_exec_ins_type 0 10886 NULL
151868 +enable_so_drv_tss_rings_qlcnic_adapter_10887 drv_tss_rings qlcnic_adapter 0 10887 NULL
151869 +enable_so_spu_write_fndecl_10889 spu_write fndecl 4 10889 NULL
151870 +enable_so_ocfs2_reflink_xattr_rec_fndecl_10890 ocfs2_reflink_xattr_rec fndecl 3 10890 NULL
151871 +enable_so_max_sge_per_wr_iwch_rnic_attributes_10892 max_sge_per_wr iwch_rnic_attributes 0 10892 NULL
151872 +enable_so_ecryptfs_lower_header_size_fndecl_10894 ecryptfs_lower_header_size fndecl 0 10894 NULL
151873 +enable_so_slot_device_offset_controller_10895 slot_device_offset controller 0 10895 NULL
151874 +enable_so_table_size_acpi_einj_trigger_10899 table_size acpi_einj_trigger 0 10899 NULL
151875 +enable_so_i2c_hid_get_report_length_fndecl_10901 i2c_hid_get_report_length fndecl 0 10901 NULL nohasharray
151876 +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
151877 +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
151878 +enable_so_udf_read_ptagged_fndecl_10905 udf_read_ptagged fndecl 3 10905 NULL
151879 +enable_so_vfio_lock_acct_fndecl_10907 vfio_lock_acct fndecl 1 10907 NULL
151880 +enable_so_msix_vector_count_MPT2SAS_ADAPTER_10911 msix_vector_count MPT2SAS_ADAPTER 0 10911 NULL
151881 +enable_so_SyS_listxattr_fndecl_10916 SyS_listxattr fndecl 3 10916 NULL
151882 +enable_so_data_len_rndis_packet_10918 data_len rndis_packet 0 10918 NULL nohasharray
151883 +enable_so_compat_sys_msgsnd_fndecl_10918 compat_sys_msgsnd fndecl 3 10918 &enable_so_data_len_rndis_packet_10918
151884 +enable_so_isdn_audio_adpcm2xlaw_fndecl_10927 isdn_audio_adpcm2xlaw fndecl 0 10927 NULL
151885 +enable_so_ieee802154_max_payload_fndecl_10928 ieee802154_max_payload fndecl 0 10928 NULL
151886 +enable_so_ud_bmove_fndecl_10929 ud_bmove fndecl 8-6-4-7-5-3 10929 NULL
151887 +enable_so_ieee80211_if_read_dot11MeshAwakeWindowDuration_fndecl_10932 ieee80211_if_read_dot11MeshAwakeWindowDuration fndecl 3 10932 NULL
151888 +enable_so_dma_acm_rb_10934 dma acm_rb 0 10934 NULL
151889 +enable_so_l_offset_lbuf_10935 l_offset lbuf 0 10935 NULL
151890 +enable_so_compat_raw_setsockopt_fndecl_10937 compat_raw_setsockopt fndecl 5 10937 NULL
151891 +enable_so_mlx5_ib_alloc_fast_reg_page_list_fndecl_10941 mlx5_ib_alloc_fast_reg_page_list fndecl 2 10941 NULL
151892 +enable_so_bmp_len_xfrm_replay_state_esn_10945 bmp_len xfrm_replay_state_esn 0 10945 NULL
151893 +enable_so_max_i2c_msg_len_r820t_config_10951 max_i2c_msg_len r820t_config 0 10951 NULL nohasharray
151894 +enable_so_acc_passl_accessdata_dn_10951 acc_passl accessdata_dn 0 10951 &enable_so_max_i2c_msg_len_r820t_config_10951
151895 +enable_so_num_lan_qps_i40e_pf_10953 num_lan_qps i40e_pf 0 10953 NULL
151896 +enable_so_iov_iter_init_fndecl_10954 iov_iter_init fndecl 5-4 10954 NULL
151897 +enable_so_dest_offset_btrfs_ioctl_clone_range_args_10960 dest_offset btrfs_ioctl_clone_range_args 0 10960 NULL
151898 +enable_so_drm_fb_helper_fill_fix_fndecl_10963 drm_fb_helper_fill_fix fndecl 2 10963 NULL
151899 +enable_so_brd_alloc_fndecl_10964 brd_alloc fndecl 1 10964 NULL
151900 +enable_so_jffs2_flash_read_fndecl_10968 jffs2_flash_read fndecl 0 10968 NULL
151901 +enable_so_agp_remap_fndecl_10970 agp_remap fndecl 2 10970 NULL
151902 +enable_so_sys_ftruncate_fndecl_10972 sys_ftruncate fndecl 2 10972 NULL
151903 +enable_so_encrypted_key_size_ecryptfs_session_key_10978 encrypted_key_size ecryptfs_session_key 0 10978 NULL nohasharray
151904 +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
151905 +enable_so_ssid_len_wl1271_scan_10981 ssid_len wl1271_scan 0 10981 NULL
151906 +enable_so_lbs_wrbbp_write_fndecl_10987 lbs_wrbbp_write fndecl 3 10987 NULL
151907 +enable_so_l2cap_build_conf_rsp_fndecl_10988 l2cap_build_conf_rsp fndecl 0 10988 NULL
151908 +enable_so_msize_vardecl_pmc551_c_10989 msize vardecl_pmc551.c 0 10989 NULL nohasharray
151909 +enable_so_vxfs_blkiget_fndecl_10989 vxfs_blkiget fndecl 3-2 10989 &enable_so_msize_vardecl_pmc551_c_10989
151910 +enable_so_height_v4l2_rect_10995 height v4l2_rect 0 10995 NULL
151911 +enable_so_bitmap_size_dma_iommu_mapping_10997 bitmap_size dma_iommu_mapping 0 10997 NULL
151912 +enable_so_punit_size2_intel_pmc_ipc_dev_10998 punit_size2 intel_pmc_ipc_dev 0 10998 NULL
151913 +enable_so_rate_n_flags_from_tbl_fndecl_11000 rate_n_flags_from_tbl fndecl 0 11000 NULL nohasharray
151914 +enable_so_l2nbperpage_jfs_sb_info_11000 l2nbperpage jfs_sb_info 0 11000 &enable_so_rate_n_flags_from_tbl_fndecl_11000
151915 +enable_so_dccp_setsockopt_ccid_fndecl_11006 dccp_setsockopt_ccid fndecl 4 11006 NULL
151916 +enable_so_drm_gtf2_m_fndecl_11007 drm_gtf2_m fndecl 0 11007 NULL
151917 +enable_so_SyS_semop_fndecl_11008 SyS_semop fndecl 3 11008 NULL
151918 +enable_so_height_v4l2_pix_format_mplane_11015 height v4l2_pix_format_mplane 0 11015 NULL
151919 +enable_so_xferred_ScsiReqBlk_11017 xferred ScsiReqBlk 0 11017 NULL
151920 +enable_so_target_cmd_size_check_fndecl_11019 target_cmd_size_check fndecl 2 11019 NULL
151921 +enable_so_rx_pkt_pad_sge_11020 rx_pkt_pad sge 0 11020 NULL
151922 +enable_so_len_hif_scatter_req_11022 len hif_scatter_req 0 11022 NULL
151923 +enable_so_register_virtio_driver_fndecl_11025 register_virtio_driver fndecl 0 11025 NULL
151924 +enable_so_preallocate_pcm_pages_fndecl_11026 preallocate_pcm_pages fndecl 2 11026 NULL
151925 +enable_so_count_vfio_irq_set_11027 count vfio_irq_set 0 11027 NULL
151926 +enable_so_len_nfs3_mknodargs_11030 len nfs3_mknodargs 0 11030 NULL
151927 +enable_so_snd_ac97_pcm_assign_fndecl_11033 snd_ac97_pcm_assign fndecl 2 11033 NULL
151928 +enable_so_sectors_per_block_pool_11035 sectors_per_block pool 0 11035 NULL nohasharray
151929 +enable_so_audio_outs_vx_core_11035 audio_outs vx_core 0 11035 &enable_so_sectors_per_block_pool_11035
151930 +enable_so_namelen_xfs_dir2_data_entry_11036 namelen xfs_dir2_data_entry 0 11036 NULL nohasharray
151931 +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
151932 +enable_so_iic_tpm_write_fndecl_11039 iic_tpm_write fndecl 3 11039 NULL
151933 +enable_so_DataTransferLength_DAC960_V2_UserCommand_11040 DataTransferLength DAC960_V2_UserCommand 0 11040 NULL
151934 +enable_so_xlog_write_log_records_fndecl_11042 xlog_write_log_records fndecl 4-3 11042 NULL
151935 +enable_so_isr_pci_pm_read_fndecl_11052 isr_pci_pm_read fndecl 3 11052 NULL
151936 +enable_so_va_size_coda_vattr_11053 va_size coda_vattr 0 11053 NULL
151937 +enable_so_do_mlock_fndecl_11062 do_mlock fndecl 2-1 11062 NULL
151938 +enable_so_default_rds_buf_vardecl_fmdrv_common_c_11072 default_rds_buf vardecl_fmdrv_common.c 0 11072 NULL
151939 +enable_so_i2c_writebytes_fndecl_11073 i2c_writebytes fndecl 4 11073 NULL
151940 +enable_so_show_attribute_configfs_item_operations_11074 show_attribute configfs_item_operations 0 11074 NULL
151941 +enable_so_pipeline_sec_frag_swi_read_fndecl_11077 pipeline_sec_frag_swi_read fndecl 3 11077 NULL
151942 +enable_so_entry_fat_entry_11079 entry fat_entry 0 11079 NULL
151943 +enable_so_irda_sendmsg_dgram_fndecl_11080 irda_sendmsg_dgram fndecl 3 11080 NULL
151944 +enable_so_tx_load_dma_buffer_fndecl_11082 tx_load_dma_buffer fndecl 3 11082 NULL
151945 +enable_so_compat_readv_fndecl_11090 compat_readv fndecl 3 11090 NULL
151946 +enable_so_snd_pcm_new_internal_fndecl_11091 snd_pcm_new_internal fndecl 4-5 11091 NULL
151947 +enable_so_read_bytes_sh_flctl_11094 read_bytes sh_flctl 0 11094 NULL
151948 +enable_so_do_brk_fndecl_11101 do_brk fndecl 1-2 11101 NULL
151949 +enable_so_acpi_processor_power_verify_fndecl_11105 acpi_processor_power_verify fndecl 0 11105 NULL
151950 +enable_so_ext4_acl_from_disk_fndecl_11107 ext4_acl_from_disk fndecl 2 11107 NULL nohasharray
151951 +enable_so___getblk_gfp_fndecl_11107 __getblk_gfp fndecl 3-2 11107 &enable_so_ext4_acl_from_disk_fndecl_11107
151952 +enable_so_wm9081_set_sysclk_fndecl_11108 wm9081_set_sysclk fndecl 4 11108 NULL nohasharray
151953 +enable_so_wTotalBlockNumber_ms_bootblock_sysinf_11108 wTotalBlockNumber ms_bootblock_sysinf 0 11108 &enable_so_wm9081_set_sysclk_fndecl_11108
151954 +enable_so_hpfs_ea_read_fndecl_11118 hpfs_ea_read fndecl 5-4-2 11118 NULL
151955 +enable_so_whitebal_sd_gl860_11124 whitebal sd_gl860 0 11124 NULL
151956 +enable_so_n_channels_iwl_mcc_update_resp_11128 n_channels iwl_mcc_update_resp 0 11128 NULL
151957 +enable_so___vmalloc_node_flags_fndecl_11139 __vmalloc_node_flags fndecl 1 11139 NULL
151958 +enable_so_num__cdrp_cmd_11142 num _cdrp_cmd 0 11142 NULL
151959 +enable_so_pageshift_nand_flash_dev_11144 pageshift nand_flash_dev 0 11144 NULL
151960 +enable_so_queue_depth_nullb_queue_11148 queue_depth nullb_queue 0 11148 NULL
151961 +enable_so_max_voices_snd_emux_11150 max_voices snd_emux 0 11150 NULL
151962 +enable_so_generic_ptrace_pokedata_fndecl_11153 generic_ptrace_pokedata fndecl 2 11153 NULL
151963 +enable_so_o2nm_this_node_fndecl_11157 o2nm_this_node fndecl 0 11157 NULL
151964 +enable_so_resource_from_user_fndecl_11158 resource_from_user fndecl 3 11158 NULL
151965 +enable_so_tclass_mlx5_av_11167 tclass mlx5_av 0 11167 NULL
151966 +enable_so_rmtvaluelen2_xfs_da_args_11168 rmtvaluelen2 xfs_da_args 0 11168 NULL
151967 +enable_so_drv_rss_rings_qlcnic_adapter_11169 drv_rss_rings qlcnic_adapter 0 11169 NULL
151968 +enable_so_max_supported_extcon_dev_11172 max_supported extcon_dev 0 11172 NULL
151969 +enable_so_udf_tread_fndecl_11173 udf_tread fndecl 2 11173 NULL
151970 +enable_so_payload_len_fc_bsg_buffer_11175 payload_len fc_bsg_buffer 0 11175 NULL
151971 +enable_so_c4iw_init_resource_fndecl_11178 c4iw_init_resource fndecl 2-3 11178 NULL
151972 +enable_so_jp_journal_1st_block_journal_params_11180 jp_journal_1st_block journal_params 0 11180 NULL
151973 +enable_so_ilo_major_vardecl_hpilo_c_11181 ilo_major vardecl_hpilo.c 0 11181 NULL
151974 +enable_so_xtInsert_fndecl_11182 xtInsert fndecl 5-4 11182 NULL
151975 +enable_so_resp_len_pn533_cmd_11192 resp_len pn533_cmd 0 11192 NULL nohasharray
151976 +enable_so_sys_get_mempolicy_fndecl_11192 sys_get_mempolicy fndecl 4-3 11192 &enable_so_resp_len_pn533_cmd_11192
151977 +enable_so_resid_virtio_scsi_cmd_resp_11193 resid virtio_scsi_cmd_resp 0 11193 NULL
151978 +enable_so_nr_pins_timbgpio_platform_data_11195 nr_pins timbgpio_platform_data 0 11195 NULL
151979 +enable_so_mangle_sdp_packet_fndecl_11198 mangle_sdp_packet fndecl 10 11198 NULL
151980 +enable_so_trace_insert_enum_map_fndecl_11206 trace_insert_enum_map fndecl 3 11206 NULL
151981 +enable_so_vb2_fop_write_fndecl_11207 vb2_fop_write fndecl 3 11207 NULL
151982 +enable_so_used_bytes_ubi_volume_info_11209 used_bytes ubi_volume_info 0 11209 NULL
151983 +enable_so_mq_create_fndecl_11210 mq_create fndecl 1 11210 NULL nohasharray
151984 +enable_so_lstcon_session_info_fndecl_11210 lstcon_session_info fndecl 6 11210 &enable_so_mq_create_fndecl_11210
151985 +enable_so_tx_tx_template_prepared_read_fndecl_11211 tx_tx_template_prepared_read fndecl 3 11211 NULL
151986 +enable_so_num_encoder_drm_mode_config_11220 num_encoder drm_mode_config 0 11220 NULL
151987 +enable_so_hiwat_bus_param_11240 hiwat bus_param 0 11240 NULL
151988 +enable_so_hdr_len_ieee80211_cipher_scheme_11241 hdr_len ieee80211_cipher_scheme 0 11241 NULL
151989 +enable_so_enable_write_fndecl_11243 enable_write fndecl 3 11243 NULL
151990 +enable_so_tx_tx_template_programmed_read_fndecl_11246 tx_tx_template_programmed_read fndecl 3 11246 NULL
151991 +enable_so_nfsd_get_default_max_blksize_fndecl_11251 nfsd_get_default_max_blksize fndecl 0 11251 NULL
151992 +enable_so_ds1305_nvram_write_fndecl_11267 ds1305_nvram_write fndecl 5-6 11267 NULL
151993 +enable_so_hactive_videomode_11268 hactive videomode 0 11268 NULL
151994 +enable_so_btcx_align_fndecl_11269 btcx_align fndecl 4 11269 NULL
151995 +enable_so_snd_midi_event_encode_byte_fndecl_11281 snd_midi_event_encode_byte fndecl 0 11281 NULL
151996 +enable_so_btrfs_set_prop_fndecl_11284 btrfs_set_prop fndecl 4 11284 NULL
151997 +enable_so_exynos4_jpeg_get_output_buffer_size_fndecl_11286 exynos4_jpeg_get_output_buffer_size fndecl 0-3 11286 NULL
151998 +enable_so_push_rx_fndecl_11288 push_rx fndecl 3 11288 NULL
151999 +enable_so_snd_efw_resp_buf_size_vardecl_11291 snd_efw_resp_buf_size vardecl 0 11291 NULL
152000 +enable_so_mxuport_prepare_write_buffer_fndecl_11292 mxuport_prepare_write_buffer fndecl 3 11292 NULL
152001 +enable_so_alloc_test_extent_buffer_fndecl_11293 alloc_test_extent_buffer fndecl 2 11293 NULL
152002 +enable_so_newkey_nilfs_btnode_chkey_ctxt_11296 newkey nilfs_btnode_chkey_ctxt 0 11296 NULL
152003 +enable_so_max_pkt_size_stk1160_11297 max_pkt_size stk1160 0 11297 NULL
152004 +enable_so_wqe_shift_mthca_wq_11298 wqe_shift mthca_wq 0 11298 NULL
152005 +enable_so_remap_pfn_range_fndecl_11299 remap_pfn_range fndecl 3-4 11299 NULL
152006 +enable_so_data_len_ssif_info_11317 data_len ssif_info 0 11317 NULL
152007 +enable_so_buf_len_mwifiex_sdio_mpa_tx_11323 buf_len mwifiex_sdio_mpa_tx 0 11323 NULL
152008 +enable_so_len_brcmf_vndr_dcmd_hdr_11327 len brcmf_vndr_dcmd_hdr 0 11327 NULL nohasharray
152009 +enable_so_alloc_sched_domains_fndecl_11327 alloc_sched_domains fndecl 1 11327 &enable_so_len_brcmf_vndr_dcmd_hdr_11327
152010 +enable_so_c2_alloc_cq_buf_fndecl_11328 c2_alloc_cq_buf fndecl 4 11328 NULL
152011 +enable_so_page_size_ib_umem_11335 page_size ib_umem 0 11335 NULL
152012 +enable_so_charcount_console_font_11338 charcount console_font 0 11338 NULL
152013 +enable_so_s_sbbase_ufs_sb_private_info_11344 s_sbbase ufs_sb_private_info 0 11344 NULL
152014 +enable_so_hci_sock_setsockopt_fndecl_11346 hci_sock_setsockopt fndecl 5 11346 NULL
152015 +enable_so_update_devnum_fndecl_11348 update_devnum fndecl 2 11348 NULL
152016 +enable_so_buffer_length_usbdevfs_urb_11350 buffer_length usbdevfs_urb 0 11350 NULL
152017 +enable_so_nilfs_cpfile_delete_checkpoints_fndecl_11352 nilfs_cpfile_delete_checkpoints fndecl 2-3 11352 NULL
152018 +enable_so_vlanid_full_rx_done_desc_11354 vlanid full_rx_done_desc 0 11354 NULL
152019 +enable_so_fd_execute_rw_fndecl_11359 fd_execute_rw fndecl 3 11359 NULL
152020 +enable_so_amdgpu_gem_object_create_fndecl_11366 amdgpu_gem_object_create fndecl 2 11366 NULL
152021 +enable_so_ieee80211_if_read_ht_opmode_fndecl_11367 ieee80211_if_read_ht_opmode fndecl 3 11367 NULL
152022 +enable_so_tso_fragment_fndecl_11369 tso_fragment fndecl 3 11369 NULL
152023 +enable_so_xz_dec_init_fndecl_11382 xz_dec_init fndecl 2 11382 NULL
152024 +enable_so_nv25_fb_tile_comp_fndecl_11383 nv25_fb_tile_comp fndecl 3 11383 NULL
152025 +enable_so_alloc_streams_hc_driver_11390 alloc_streams hc_driver 0 11390 NULL
152026 +enable_so_sctp_getsockopt_assoc_stats_fndecl_11393 sctp_getsockopt_assoc_stats fndecl 2 11393 NULL
152027 +enable_so_txs_vardecl_ambassador_c_11398 txs vardecl_ambassador.c 0 11398 NULL
152028 +enable_so_setup_data_setup_header_11411 setup_data setup_header 0 11411 NULL
152029 +enable_so_in_args_qlcnic_mailbox_metadata_11413 in_args qlcnic_mailbox_metadata 0 11413 NULL
152030 +enable_so_iso_packets_buffer_init_fndecl_11414 iso_packets_buffer_init fndecl 3-4 11414 NULL
152031 +enable_so_lpfc_idiag_extacc_drivr_get_fndecl_11416 lpfc_idiag_extacc_drivr_get fndecl 3-0 11416 NULL
152032 +enable_so_cnt_qib_ctxtdata_11417 cnt qib_ctxtdata 0 11417 NULL
152033 +enable_so_smt_build_frame_fndecl_11428 smt_build_frame fndecl 4 11428 NULL
152034 +enable_so_isdn_ppp_write_fndecl_11430 isdn_ppp_write fndecl 4 11430 NULL
152035 +enable_so_rxBytesRemaining_edgeport_serial_11436 rxBytesRemaining edgeport_serial 0 11436 NULL nohasharray
152036 +enable_so_rule_cnt_ethtool_rxnfc_11436 rule_cnt ethtool_rxnfc 0 11436 &enable_so_rxBytesRemaining_edgeport_serial_11436
152037 +enable_so_iwl_dbgfs_log_event_write_fndecl_11443 iwl_dbgfs_log_event_write fndecl 3 11443 NULL
152038 +enable_so_llsec_do_decrypt_auth_fndecl_11445 llsec_do_decrypt_auth fndecl 0 11445 NULL
152039 +enable_so_ccp_init_dm_workarea_fndecl_11450 ccp_init_dm_workarea fndecl 3 11450 NULL
152040 +enable_so___compat_sys_preadv64_fndecl_11452 __compat_sys_preadv64 fndecl 3 11452 NULL
152041 +enable_so_proc_scsi_write_fndecl_11461 proc_scsi_write fndecl 3 11461 NULL
152042 +enable_so_reshape_ring_fndecl_11464 reshape_ring fndecl 2 11464 NULL
152043 +enable_so_NFTL_findfreeblock_fndecl_11466 NFTL_findfreeblock fndecl 0 11466 NULL
152044 +enable_so_lower_margin_fb_var_screeninfo_11469 lower_margin fb_var_screeninfo 0 11469 NULL
152045 +enable_so_id_header_size_perf_event_11470 id_header_size perf_event 0 11470 NULL
152046 +enable_so_ieee80211_send_bar_fndecl_11472 ieee80211_send_bar fndecl 3 11472 NULL
152047 +enable_so_hsync_len_videomode_11474 hsync_len videomode 0 11474 NULL
152048 +enable_so_iov_shorten_fndecl_11481 iov_shorten fndecl 3 11481 NULL nohasharray
152049 +enable_so_c_cpos_ocfs2_write_cluster_desc_11481 c_cpos ocfs2_write_cluster_desc 0 11481 &enable_so_iov_shorten_fndecl_11481
152050 +enable_so_rt2800_txdone_entry_fndecl_11484 rt2800_txdone_entry fndecl 2 11484 NULL nohasharray
152051 +enable_so_num_crtc_drm_mode_config_11484 num_crtc drm_mode_config 0 11484 &enable_so_rt2800_txdone_entry_fndecl_11484
152052 +enable_so_count_e1000_ring_11491 count e1000_ring 0 11491 NULL
152053 +enable_so_get_ablock_fndecl_11495 get_ablock fndecl 2 11495 NULL nohasharray
152054 +enable_so_length_RioCommand_11495 length RioCommand 0 11495 &enable_so_get_ablock_fndecl_11495
152055 +enable_so_batadv_max_header_len_fndecl_11496 batadv_max_header_len fndecl 0 11496 NULL
152056 +enable_so_qcaspi_write_burst_fndecl_11497 qcaspi_write_burst fndecl 3 11497 NULL
152057 +enable_so_prepare_write_buffer_usb_serial_driver_11498 prepare_write_buffer usb_serial_driver 0 11498 NULL
152058 +enable_so_context_struct_to_string_fndecl_11502 context_struct_to_string fndecl 0 11502 NULL
152059 +enable_so_w_cpos_ocfs2_write_ctxt_11503 w_cpos ocfs2_write_ctxt 0 11503 NULL
152060 +enable_so_period_bytes_max_snd_pcm_hardware_11507 period_bytes_max snd_pcm_hardware 0 11507 NULL
152061 +enable_so_virtio_read_fndecl_11512 virtio_read fndecl 3 11512 NULL
152062 +enable_so_adau1701_register_size_fndecl_11523 adau1701_register_size fndecl 0 11523 NULL
152063 +enable_so_kvm_mmu_get_page_fndecl_11527 kvm_mmu_get_page fndecl 2 11527 NULL
152064 +enable_so_ccw_putcs_fndecl_11532 ccw_putcs fndecl 4-5-6 11532 NULL
152065 +enable_so_llcp_add_tlv_fndecl_11542 llcp_add_tlv fndecl 3 11542 NULL
152066 +enable_so_max_transfer_size_s2255_pipeinfo_11546 max_transfer_size s2255_pipeinfo 0 11546 NULL
152067 +enable_so_screen_height_vardecl_hyperv_fb_c_11550 screen_height vardecl_hyperv_fb.c 0 11550 NULL
152068 +enable_so_last_alloc_physical_block_ext3_block_alloc_info_11555 last_alloc_physical_block ext3_block_alloc_info 0 11555 NULL
152069 +enable_so_dm_startbit_adfs_discmap_11559 dm_startbit adfs_discmap 0 11559 NULL
152070 +enable_so_drm_plane_init_fndecl_11560 drm_plane_init fndecl 6 11560 NULL
152071 +enable_so_avail_in_z_stream_s_11562 avail_in z_stream_s 0 11562 NULL
152072 +enable_so_dataxfer_length_hpt_iop_request_scsi_command_11566 dataxfer_length hpt_iop_request_scsi_command 0 11566 NULL
152073 +enable_so_rec_len_nilfs_dir_entry_11567 rec_len nilfs_dir_entry 0 11567 NULL
152074 +enable_so_balance_level_fndecl_11568 balance_level fndecl 0 11568 NULL
152075 +enable_so_cur_transfer_size_s2255_pipeinfo_11571 cur_transfer_size s2255_pipeinfo 0 11571 NULL nohasharray
152076 +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
152077 +enable_so_find_compression_threshold_fndecl_11575 find_compression_threshold fndecl 3 11575 NULL nohasharray
152078 +enable_so___ocfs2_add_entry_fndecl_11575 __ocfs2_add_entry fndecl 4 11575 &enable_so_find_compression_threshold_fndecl_11575
152079 +enable_so_ram_header_offset_qxl_rom_11576 ram_header_offset qxl_rom 0 11576 NULL
152080 +enable_so_update_memcg_params_fndecl_11583 update_memcg_params fndecl 2 11583 NULL
152081 +enable_so_last_rate_ipw_priv_11584 last_rate ipw_priv 0 11584 NULL
152082 +enable_so_pwc_get_fps_fndecl_11588 pwc_get_fps fndecl 0 11588 NULL nohasharray
152083 +enable_so_next_index_jfs_inode_info_11588 next_index jfs_inode_info 0 11588 &enable_so_pwc_get_fps_fndecl_11588
152084 +enable_so_nv50_dmac_create_fndecl_11593 nv50_dmac_create fndecl 5 11593 NULL
152085 +enable_so_rpc_pipe_generic_upcall_fndecl_11597 rpc_pipe_generic_upcall fndecl 4 11597 NULL
152086 +enable_so_add_advertising_fndecl_11602 add_advertising fndecl 4 11602 NULL
152087 +enable_so_spi_execute_fndecl_11603 spi_execute fndecl 5 11603 NULL nohasharray
152088 +enable_so_prev_free_msdos_sb_info_11603 prev_free msdos_sb_info 0 11603 &enable_so_spi_execute_fndecl_11603 nohasharray
152089 +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
152090 +enable_so_read_file_btcoex_fndecl_11604 read_file_btcoex fndecl 3 11604 NULL
152091 +enable_so_send_reply_fndecl_11610 send_reply fndecl 7 11610 NULL
152092 +enable_so_dvb_net_sec_callback_fndecl_11617 dvb_net_sec_callback fndecl 2 11617 NULL
152093 +enable_so_word1_atl1e_recv_ret_status_11620 word1 atl1e_recv_ret_status 0 11620 NULL
152094 +enable_so_btrfs_add_ordered_extent_dio_fndecl_11621 btrfs_add_ordered_extent_dio fndecl 4-2-5-3 11621 NULL
152095 +enable_so_dataLen_PVSCSIRingCmpDesc_11627 dataLen PVSCSIRingCmpDesc 0 11627 NULL
152096 +enable_so_acpi_register_ioapic_fndecl_11630 acpi_register_ioapic fndecl 3 11630 NULL
152097 +enable_so_posix_acl_init_fndecl_11632 posix_acl_init fndecl 2 11632 NULL nohasharray
152098 +enable_so_dtl1_write_fndecl_11632 dtl1_write fndecl 0 11632 &enable_so_posix_acl_init_fndecl_11632 nohasharray
152099 +enable_so_peek_head_len_fndecl_11632 peek_head_len fndecl 0 11632 &enable_so_dtl1_write_fndecl_11632
152100 +enable_so_num_mon_ceph_options_11640 num_mon ceph_options 0 11640 NULL
152101 +enable_so_ceph_sync_direct_write_fndecl_11641 ceph_sync_direct_write fndecl 0-3 11641 NULL
152102 +enable_so_rs_move_mimo2_to_other_fndecl_11646 rs_move_mimo2_to_other fndecl 5 11646 NULL
152103 +enable_so_ath6kl_get_num_reg_fndecl_11647 ath6kl_get_num_reg fndecl 0 11647 NULL
152104 +enable_so_user_base_ipath_mregion_11659 user_base ipath_mregion 0 11659 NULL
152105 +enable_so_bulk_size_cam_11663 bulk_size cam 0 11663 NULL
152106 +enable_so___setup_root_fndecl_11664 __setup_root fndecl 2-1 11664 NULL nohasharray
152107 +enable_so_num_snd_ratnum_11664 num snd_ratnum 0 11664 &enable_so___setup_root_fndecl_11664
152108 +enable_so_sel_write_member_fndecl_11667 sel_write_member fndecl 3 11667 NULL
152109 +enable_so_align_pnp_mem_11669 align pnp_mem 0 11669 NULL
152110 +enable_so___btrfs_find_all_roots_fndecl_11682 __btrfs_find_all_roots fndecl 3 11682 NULL nohasharray
152111 +enable_so_vp_request_msix_vectors_fndecl_11682 vp_request_msix_vectors fndecl 2 11682 &enable_so___btrfs_find_all_roots_fndecl_11682
152112 +enable_so_i915_stolen_to_physical_fndecl_11685 i915_stolen_to_physical fndecl 0 11685 NULL nohasharray
152113 +enable_so_erasesize_mtd_erase_region_info_11685 erasesize mtd_erase_region_info 0 11685 &enable_so_i915_stolen_to_physical_fndecl_11685
152114 +enable_so_data_len_b43legacy_dfs_file_11690 data_len b43legacy_dfs_file 0 11690 NULL
152115 +enable_so_fill_note_info_fndecl_11692 fill_note_info fndecl 2 11692 NULL
152116 +enable_so_tx_tail_len_pn533_frame_ops_11694 tx_tail_len pn533_frame_ops 0 11694 NULL
152117 +enable_so_stride_efifb_dmi_info_11695 stride efifb_dmi_info 0 11695 NULL
152118 +enable_so_num_rates_wmi_rate_set_arg_11696 num_rates wmi_rate_set_arg 0 11696 NULL
152119 +enable_so_kernel_tree_alloc_fndecl_11698 kernel_tree_alloc fndecl 1 11698 NULL
152120 +enable_so_iwl_dbgfs_rxon_filter_flags_read_fndecl_11699 iwl_dbgfs_rxon_filter_flags_read fndecl 3 11699 NULL
152121 +enable_so_shared_mic_nid_ca0132_spec_11702 shared_mic_nid ca0132_spec 0 11702 NULL
152122 +enable_so_mwifiex_debug_mask_write_fndecl_11707 mwifiex_debug_mask_write fndecl 3 11707 NULL
152123 +enable_so_phys_lcr_base__synclinkmp_info_11713 phys_lcr_base _synclinkmp_info 0 11713 NULL
152124 +enable_so_sizeof_partition_entry__gpt_header_11718 sizeof_partition_entry _gpt_header 0 11718 NULL
152125 +enable_so_ipv6_renew_options_fndecl_11728 ipv6_renew_options fndecl 5 11728 NULL
152126 +enable_so_ov511_pkt_scan_fndecl_11737 ov511_pkt_scan fndecl 3 11737 NULL
152127 +enable_so_length_v4l2_plane_11738 length v4l2_plane 0 11738 NULL nohasharray
152128 +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
152129 +enable_so_gart_pin_size_radeon_device_11745 gart_pin_size radeon_device 0 11745 NULL
152130 +enable_so_symlink_size_squashfs_symlink_inode_11747 symlink_size squashfs_symlink_inode 0 11747 NULL
152131 +enable_so_log_num_cqs_mlx4_init_hca_param_11748 log_num_cqs mlx4_init_hca_param 0 11748 NULL
152132 +enable_so_lba_shift_nvme_ns_11763 lba_shift nvme_ns 0 11763 NULL nohasharray
152133 +enable_so_count_nfs_pgio_res_11763 count nfs_pgio_res 0 11763 &enable_so_lba_shift_nvme_ns_11763
152134 +enable_so_num_mtt_mthca_profile_11767 num_mtt mthca_profile 0 11767 NULL
152135 +enable_so_length_acpi_dmar_header_11768 length acpi_dmar_header 0 11768 NULL
152136 +enable_so_grow_buffers_fndecl_11774 grow_buffers fndecl 3-2 11774 NULL
152137 +enable_so_pci_scan_child_bus_fndecl_11784 pci_scan_child_bus fndecl 0 11784 NULL
152138 +enable_so_svc_pool_map_init_percpu_fndecl_11792 svc_pool_map_init_percpu fndecl 0 11792 NULL nohasharray
152139 +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
152140 +enable_so_find_vqs_virtio_config_ops_11797 find_vqs virtio_config_ops 0 11797 NULL
152141 +enable_so_p9_client_prepare_req_fndecl_11803 p9_client_prepare_req fndecl 3 11803 NULL
152142 +enable_so___kmalloc_node_fndecl_11804 __kmalloc_node fndecl 1 11804 NULL
152143 +enable_so_depth_cx23885_fmt_11806 depth cx23885_fmt 0 11806 NULL
152144 +enable_so_num_resources_nd_namespace_blk_11815 num_resources nd_namespace_blk 0 11815 NULL
152145 +enable_so_size_mvpp2_tx_queue_11816 size mvpp2_tx_queue 0 11816 NULL
152146 +enable_so_SyS_flistxattr_fndecl_11825 SyS_flistxattr fndecl 3 11825 NULL
152147 +enable_so_bufflen_alua_dh_data_11826 bufflen alua_dh_data 0 11826 NULL
152148 +enable_so_be_change_mtu_fndecl_11828 be_change_mtu fndecl 2 11828 NULL
152149 +enable_so_acpi_allocate_root_table_fndecl_11829 acpi_allocate_root_table fndecl 1 11829 NULL nohasharray
152150 +enable_so_do_register_entry_fndecl_11829 do_register_entry fndecl 4 11829 &enable_so_acpi_allocate_root_table_fndecl_11829
152151 +enable_so_atk_debugfs_ggrp_read_fndecl_11841 atk_debugfs_ggrp_read fndecl 3 11841 NULL
152152 +enable_so_length_TAG_TW_SG_Entry_ISO_11846 length TAG_TW_SG_Entry_ISO 0 11846 NULL
152153 +enable_so_mic_vringh_copy_fndecl_11848 mic_vringh_copy fndecl 4 11848 NULL
152154 +enable_so_num_crtc_mga_device_11851 num_crtc mga_device 0 11851 NULL
152155 +enable_so_number_of_packets_urb_11853 number_of_packets urb 0 11853 NULL nohasharray
152156 +enable_so_add_to_page_cache_lru_fndecl_11853 add_to_page_cache_lru fndecl 0 11853 &enable_so_number_of_packets_urb_11853
152157 +enable_so_pcibios_enable_irq_vardecl_11854 pcibios_enable_irq vardecl 0 11854 NULL
152158 +enable_so_sg_tablesize_srp_target_port_11858 sg_tablesize srp_target_port 0 11858 NULL
152159 +enable_so_btmrvl_pscmd_write_fndecl_11859 btmrvl_pscmd_write fndecl 3 11859 NULL
152160 +enable_so_frame_rate_sd_11862 frame_rate sd 0 11862 NULL
152161 +enable_so_ipath_p0_rcvegrcnt_ipath_devdata_11864 ipath_p0_rcvegrcnt ipath_devdata 0 11864 NULL
152162 +enable_so_s_nsegments_nilfs_super_block_11865 s_nsegments nilfs_super_block 0 11865 NULL
152163 +enable_so_wr_host_buf_pos_xilly_channel_11866 wr_host_buf_pos xilly_channel 0 11866 NULL
152164 +enable_so_heads_ssfdcr_record_11869 heads ssfdcr_record 0 11869 NULL
152165 +enable_so_domain_child_num_acl_role_label_11875 domain_child_num acl_role_label 0 11875 NULL
152166 +enable_so_idetape_queue_rw_tail_fndecl_11881 idetape_queue_rw_tail fndecl 3 11881 NULL
152167 +enable_so_alloc_empty_pages_fndecl_11885 alloc_empty_pages fndecl 2 11885 NULL nohasharray
152168 +enable_so_bochs_dispi_read_fndecl_11885 bochs_dispi_read fndecl 0 11885 &enable_so_alloc_empty_pages_fndecl_11885 nohasharray
152169 +enable_so_leaf_dealloc_fndecl_11885 leaf_dealloc fndecl 3 11885 &enable_so_bochs_dispi_read_fndecl_11885
152170 +enable_so_f_width_gsc_frame_11886 f_width gsc_frame 0 11886 NULL
152171 +enable_so_num_channels_iw_scan_req_11889 num_channels iw_scan_req 0 11889 NULL
152172 +enable_so_vfs_read_fndecl_11892 vfs_read fndecl 3-0 11892 NULL nohasharray
152173 +enable_so_chap_string_to_hex_fndecl_11892 chap_string_to_hex fndecl 0-3 11892 &enable_so_vfs_read_fndecl_11892
152174 +enable_so_llcp_tlv16_fndecl_11893 llcp_tlv16 fndecl 0 11893 NULL
152175 +enable_so_flaglen_ring_desc_ex_11894 flaglen ring_desc_ex 0 11894 NULL
152176 +enable_so_set_brk_fndecl_11900 set_brk fndecl 1-2 11900 NULL
152177 +enable_so_libipw_change_mtu_fndecl_11901 libipw_change_mtu fndecl 2 11901 NULL
152178 +enable_so_fw_dump_size_scsi_qla_host_11903 fw_dump_size scsi_qla_host 0 11903 NULL
152179 +enable_so_iwl_dbgfs_missed_beacon_write_fndecl_11905 iwl_dbgfs_missed_beacon_write fndecl 3 11905 NULL
152180 +enable_so_ext3_ordered_write_end_fndecl_11907 ext3_ordered_write_end fndecl 5-3 11907 NULL
152181 +enable_so_mwifiex_histogram_read_fndecl_11910 mwifiex_histogram_read fndecl 3 11910 NULL
152182 +enable_so_snd_device_new_fndecl_11911 snd_device_new fndecl 0 11911 NULL
152183 +enable_so_dio_set_defer_completion_fndecl_11916 dio_set_defer_completion fndecl 0 11916 NULL
152184 +enable_so_residual_length_atto_vda_scsi_rsp_11918 residual_length atto_vda_scsi_rsp 0 11918 NULL
152185 +enable_so_lbs_lowsnr_read_fndecl_11920 lbs_lowsnr_read fndecl 3 11920 NULL
152186 +enable_so_p9_fd_read_fndecl_11921 p9_fd_read fndecl 3-0 11921 NULL
152187 +enable_so_kvm_read_guest_virt_system_fndecl_11922 kvm_read_guest_virt_system fndecl 4-2 11922 NULL
152188 +enable_so_tx_buffer_count_hso_serial_11927 tx_buffer_count hso_serial 0 11927 NULL
152189 +enable_so_orig_start_move_extent_11928 orig_start move_extent 0 11928 NULL
152190 +enable_so_length_p_header100_11933 length p_header100 0 11933 NULL
152191 +enable_so_ext4_move_extents_fndecl_11935 ext4_move_extents fndecl 5-3-4 11935 NULL
152192 +enable_so_alloc_low_pages_fndecl_11940 alloc_low_pages fndecl 1 11940 NULL nohasharray
152193 +enable_so_v9fs_remote_get_acl_fndecl_11940 v9fs_remote_get_acl fndecl 4 11940 &enable_so_alloc_low_pages_fndecl_11940
152194 +enable_so_mss_request_sock_11943 mss request_sock 0 11943 NULL
152195 +enable_so_spi_write_fndecl_11948 spi_write fndecl 0 11948 NULL
152196 +enable_so_choose_data_offset_fndecl_11950 choose_data_offset fndecl 0 11950 NULL
152197 +enable_so_bpp_bdisp_fmt_11954 bpp bdisp_fmt 0 11954 NULL
152198 +enable_so_qla4_82xx_pci_set_window_fndecl_11958 qla4_82xx_pci_set_window fndecl 0-2 11958 NULL
152199 +enable_so_osc_cached_mb_seq_write_fndecl_11961 osc_cached_mb_seq_write fndecl 3 11961 NULL
152200 +enable_so_bsg_major_vardecl_bsg_c_11972 bsg_major vardecl_bsg.c 0 11972 NULL
152201 +enable_so_sctp_make_abort_user_fndecl_11973 sctp_make_abort_user fndecl 3 11973 NULL nohasharray
152202 +enable_so_spmi_controller_alloc_fndecl_11973 spmi_controller_alloc fndecl 2 11973 &enable_so_sctp_make_abort_user_fndecl_11973
152203 +enable_so_pcpu_nr_groups_vardecl_percpu_c_11974 pcpu_nr_groups vardecl_percpu.c 0 11974 NULL
152204 +enable_so_ath10k_htt_rx_crypto_param_len_fndecl_11982 ath10k_htt_rx_crypto_param_len fndecl 0 11982 NULL
152205 +enable_so_total_mapping_size_fndecl_11985 total_mapping_size fndecl 0 11985 NULL
152206 +enable_so_ssp_create_msg_fndecl_11986 ssp_create_msg fndecl 2 11986 NULL
152207 +enable_so_tx_frag_cache_hit_read_fndecl_11988 tx_frag_cache_hit_read fndecl 3 11988 NULL
152208 +enable_so_x_size_mms114_platform_data_11991 x_size mms114_platform_data 0 11991 NULL
152209 +enable_so_virtualUnits_INFTLPartition_11994 virtualUnits INFTLPartition 0 11994 NULL
152210 +enable_so_rx_buffer_size_peak_usb_adapter_11997 rx_buffer_size peak_usb_adapter 0 11997 NULL
152211 +enable_so___btrfs_setxattr_fndecl_12010 __btrfs_setxattr fndecl 5 12010 NULL
152212 +enable_so___nlmsg_put_fndecl_12014 __nlmsg_put fndecl 5 12014 NULL nohasharray
152213 +enable_so_lustre_posix_acl_xattr_2ext_fndecl_12014 lustre_posix_acl_xattr_2ext fndecl 2 12014 &enable_so___nlmsg_put_fndecl_12014
152214 +enable_so_br_send_bpdu_fndecl_12022 br_send_bpdu fndecl 3 12022 NULL nohasharray
152215 +enable_so_rfcomm_sock_sendmsg_fndecl_12022 rfcomm_sock_sendmsg fndecl 3 12022 &enable_so_br_send_bpdu_fndecl_12022
152216 +enable_so_yres_fb_var_screeninfo_12023 yres fb_var_screeninfo 0 12023 NULL
152217 +enable_so_xfs_dir2_sf_addname_easy_fndecl_12024 xfs_dir2_sf_addname_easy fndecl 4 12024 NULL
152218 +enable_so_arm_iommu_create_mapping_fndecl_12027 arm_iommu_create_mapping fndecl 3 12027 NULL
152219 +enable_so_sisusb_write_mem_bulk_fndecl_12029 sisusb_write_mem_bulk fndecl 4 12029 NULL
152220 +enable_so_alloc_group_attrs_fndecl_12032 alloc_group_attrs fndecl 3 12032 NULL nohasharray
152221 +enable_so_wusb_prf_256_fndecl_12032 wusb_prf_256 fndecl 7 12032 &enable_so_alloc_group_attrs_fndecl_12032
152222 +enable_so_drm_property_create_enum_fndecl_12034 drm_property_create_enum fndecl 5 12034 NULL
152223 +enable_so_comedi_alloc_subdevices_fndecl_12036 comedi_alloc_subdevices fndecl 2 12036 NULL
152224 +enable_so_scsi_cmds_max_iscsi_session_12037 scsi_cmds_max iscsi_session 0 12037 NULL
152225 +enable_so_rf_suballoc_bit_ocfs2_refcount_block_12038 rf_suballoc_bit ocfs2_refcount_block 0 12038 NULL
152226 +enable_so___mm_populate_fndecl_12039 __mm_populate fndecl 2-1 12039 NULL
152227 +enable_so_regsize_si_sm_io_12043 regsize si_sm_io 0 12043 NULL
152228 +enable_so_physical_btrfs_bio_stripe_12047 physical btrfs_bio_stripe 0 12047 NULL
152229 +enable_so_len_brcmf_sdio_hdrinfo_12048 len brcmf_sdio_hdrinfo 0 12048 NULL nohasharray
152230 +enable_so_order_ipr_sglist_12048 order ipr_sglist 0 12048 &enable_so_len_brcmf_sdio_hdrinfo_12048
152231 +enable_so_ata_exec_internal_fndecl_12059 ata_exec_internal fndecl 6 12059 NULL
152232 +enable_so_l1oip_law_to_4bit_fndecl_12061 l1oip_law_to_4bit fndecl 0 12061 NULL
152233 +enable_so_devm_ioremap_fndecl_12064 devm_ioremap fndecl 3-2 12064 NULL nohasharray
152234 +enable_so_bufsize_st5481_in_12064 bufsize st5481_in 0 12064 &enable_so_devm_ioremap_fndecl_12064
152235 +enable_so_recover_peb_fndecl_12069 recover_peb fndecl 7-6 12069 NULL
152236 +enable_so_rw_verify_area_fndecl_12072 rw_verify_area fndecl 0-4 12072 NULL nohasharray
152237 +enable_so_count_afs_permits_12072 count afs_permits 0 12072 &enable_so_rw_verify_area_fndecl_12072
152238 +enable_so_evdev_handle_get_val_fndecl_12073 evdev_handle_get_val fndecl 5-6-0 12073 NULL nohasharray
152239 +enable_so_lirc_register_driver_fndecl_12073 lirc_register_driver fndecl 0 12073 &enable_so_evdev_handle_get_val_fndecl_12073
152240 +enable_so_ttm_pool_update_free_locked_fndecl_12074 ttm_pool_update_free_locked fndecl 2 12074 NULL
152241 +enable_so_cirrus_bo_create_fndecl_12083 cirrus_bo_create fndecl 2 12083 NULL
152242 +enable_so_d_size_size_entry_12084 d_size size_entry 0 12084 NULL
152243 +enable_so_nr_relocs_drm_nouveau_gem_pushbuf_12085 nr_relocs drm_nouveau_gem_pushbuf 0 12085 NULL
152244 +enable_so_nvme_trans_copy_from_user_fndecl_12088 nvme_trans_copy_from_user fndecl 3-0 12088 NULL
152245 +enable_so_security_socket_recvmsg_fndecl_12091 security_socket_recvmsg fndecl 0 12091 NULL nohasharray
152246 +enable_so_iwl_dbgfs_temperature_read_fndecl_12091 iwl_dbgfs_temperature_read fndecl 3 12091 &enable_so_security_socket_recvmsg_fndecl_12091
152247 +enable_so_nla_len_nlattr_12092 nla_len nlattr 0 12092 NULL
152248 +enable_so_n_posix_ace_state_array_12096 n posix_ace_state_array 0 12096 NULL
152249 +enable_so_rs_fill_link_cmd_fndecl_12099 rs_fill_link_cmd fndecl 3 12099 NULL
152250 +enable_so_pad_size_asd_flash_de_12100 pad_size asd_flash_de 0 12100 NULL
152251 +enable_so_s_log_block_size_ext3_super_block_12106 s_log_block_size ext3_super_block 0 12106 NULL
152252 +enable_so_lpfc_debugfs_dumpHostSlim_data_fndecl_12108 lpfc_debugfs_dumpHostSlim_data fndecl 0 12108 NULL
152253 +enable_so_mirror_array_cnt_nfs4_ff_layout_segment_12109 mirror_array_cnt nfs4_ff_layout_segment 0 12109 NULL
152254 +enable_so_length_framebuf_12110 length framebuf 0 12110 NULL nohasharray
152255 +enable_so_prism2_set_genericelement_fndecl_12110 prism2_set_genericelement fndecl 3 12110 &enable_so_length_framebuf_12110
152256 +enable_so_security_context_to_sid_core_fndecl_12115 security_context_to_sid_core fndecl 2 12115 NULL
152257 +enable_so_get_num_tx_queues_rtnl_link_ops_12119 get_num_tx_queues rtnl_link_ops 0 12119 NULL
152258 +enable_so_super_1_rdev_size_change_fndecl_12120 super_1_rdev_size_change fndecl 2 12120 NULL
152259 +enable_so_mwifiex_hscfg_write_fndecl_12125 mwifiex_hscfg_write fndecl 3 12125 NULL
152260 +enable_so_key_size_ccp_rsa_engine_12126 key_size ccp_rsa_engine 0 12126 NULL
152261 +enable_so_ProgRegShift_cfi_intelext_programming_regioninfo_12129 ProgRegShift cfi_intelext_programming_regioninfo 0 12129 NULL
152262 +enable_so_ext4_fiemap_fndecl_12131 ext4_fiemap fndecl 4-3 12131 NULL
152263 +enable_so_metablock_size_btrfsic_state_12137 metablock_size btrfsic_state 0 12137 NULL
152264 +enable_so_writeset_alloc_fndecl_12139 writeset_alloc fndecl 2 12139 NULL
152265 +enable_so_mempool_resize_fndecl_12140 mempool_resize fndecl 2 12140 NULL
152266 +enable_so_gfs2_rgrp_send_discards_fndecl_12149 gfs2_rgrp_send_discards fndecl 2 12149 NULL
152267 +enable_so_ql_is_link_full_dup_fndecl_12152 ql_is_link_full_dup fndecl 0 12152 NULL
152268 +enable_so_find_block_fndecl_12156 find_block fndecl 0 12156 NULL
152269 +enable_so_ip_vs_receive_fndecl_12161 ip_vs_receive fndecl 3 12161 NULL
152270 +enable_so_set_page_fndecl_12165 set_page fndecl 0 12165 NULL
152271 +enable_so___alloc_ei_netdev_fndecl_12169 __alloc_ei_netdev fndecl 1 12169 NULL
152272 +enable_so___fuse_get_req_fndecl_12176 __fuse_get_req fndecl 2 12176 NULL
152273 +enable_so_brcmf_sdio_tx_ctrlframe_fndecl_12177 brcmf_sdio_tx_ctrlframe fndecl 3 12177 NULL
152274 +enable_so_bulk_in_size_sur40_state_12178 bulk_in_size sur40_state 0 12178 NULL
152275 +enable_so_rx_count_rx_header_12180 rx_count rx_header 0 12180 NULL
152276 +enable_so_default_file_splice_read_fndecl_12182 default_file_splice_read fndecl 4 12182 NULL
152277 +enable_so_lprocfs_write_helper_fndecl_12184 lprocfs_write_helper fndecl 2 12184 NULL
152278 +enable_so_se_callback_addr_len_nfsd4_setclientid_12186 se_callback_addr_len nfsd4_setclientid 0 12186 NULL
152279 +enable_so_alignment_acpi_resource_memory24_12188 alignment acpi_resource_memory24 0 12188 NULL
152280 +enable_so_max_qp_sz_mlx4_dev_cap_12189 max_qp_sz mlx4_dev_cap 0 12189 NULL
152281 +enable_so_alloc_and_copy_ftrace_hash_fndecl_12203 alloc_and_copy_ftrace_hash fndecl 1 12203 NULL
152282 +enable_so_handle_gk20a_instobj_dma_12206 handle gk20a_instobj_dma 0 12206 NULL
152283 +enable_so_lmc_crcSize_lmc___softc_12208 lmc_crcSize lmc___softc 0 12208 NULL
152284 +enable_so_length_cifs_io_parms_12209 length cifs_io_parms 0 12209 NULL nohasharray
152285 +enable_so_l2cap_sock_setsockopt_old_fndecl_12209 l2cap_sock_setsockopt_old fndecl 4 12209 &enable_so_length_cifs_io_parms_12209
152286 +enable_so_vmci_transport_set_min_buffer_size_fndecl_12216 vmci_transport_set_min_buffer_size fndecl 2 12216 NULL
152287 +enable_so_hci_sock_sendmsg_fndecl_12231 hci_sock_sendmsg fndecl 3 12231 NULL
152288 +enable_so_virtscsi_kick_cmd_fndecl_12237 virtscsi_kick_cmd fndecl 3-4 12237 NULL
152289 +enable_so_read_file_tx99_power_fndecl_12238 read_file_tx99_power fndecl 3 12238 NULL
152290 +enable_so_generic_file_llseek_size_fndecl_12242 generic_file_llseek_size fndecl 2-5 12242 NULL
152291 +enable_so_synproxy_tstamp_adjust_fndecl_12243 synproxy_tstamp_adjust fndecl 2 12243 NULL
152292 +enable_so_max_pkt_size_em28xx_usb_bufs_12248 max_pkt_size em28xx_usb_bufs 0 12248 NULL
152293 +enable_so_gre_build_header_fndecl_12252 gre_build_header fndecl 3 12252 NULL
152294 +enable_so_write_block_fndecl_12253 write_block fndecl 3 12253 NULL
152295 +enable_so_hpfs_map_fnode_fndecl_12255 hpfs_map_fnode fndecl 2 12255 NULL
152296 +enable_so_unique_len_drm_master_12259 unique_len drm_master 0 12259 NULL
152297 +enable_so_zs_size_classes_vardecl_zsmalloc_c_12260 zs_size_classes vardecl_zsmalloc.c 0 12260 NULL
152298 +enable_so_endpoint_snd_usX2Y_substream_12267 endpoint snd_usX2Y_substream 0 12267 NULL
152299 +enable_so_mempool_create_fndecl_12270 mempool_create fndecl 1 12270 NULL
152300 +enable_so_cur_page_len_dio_submit_12271 cur_page_len dio_submit 0 12271 NULL
152301 +enable_so_auth_algs_local_info_12277 auth_algs local_info 0 12277 NULL
152302 +enable_so_capacity_sddr09_card_info_12286 capacity sddr09_card_info 0 12286 NULL
152303 +enable_so_sb_sectsize_xfs_sb_12294 sb_sectsize xfs_sb 0 12294 NULL
152304 +enable_so_bm_find_next_fndecl_12298 bm_find_next fndecl 0-2 12298 NULL
152305 +enable_so_size_btrfs_ioctl_logical_ino_args_12299 size btrfs_ioctl_logical_ino_args 0 12299 NULL
152306 +enable_so_minimum_input_absinfo_12300 minimum input_absinfo 0 12300 NULL
152307 +enable_so_max_y_fb_monspecs_12303 max_y fb_monspecs 0 12303 NULL
152308 +enable_so_nb_blocks_NFTLrecord_12306 nb_blocks NFTLrecord 0 12306 NULL
152309 +enable_so_hr_blocks_o2hb_region_12318 hr_blocks o2hb_region 0 12318 NULL nohasharray
152310 +enable_so_mthca_max_data_size_fndecl_12318 mthca_max_data_size fndecl 0-3 12318 &enable_so_hr_blocks_o2hb_region_12318
152311 +enable_so_length_sg_mapping_iter_12324 length sg_mapping_iter 0 12324 NULL nohasharray
152312 +enable_so_sctp_make_abort_violation_fndecl_12324 sctp_make_abort_violation fndecl 4 12324 &enable_so_length_sg_mapping_iter_12324
152313 +enable_so_pgt_bits_nvkm_mmu_12325 pgt_bits nvkm_mmu 0 12325 NULL nohasharray
152314 +enable_so_ubifs_change_lp_fndecl_12325 ubifs_change_lp fndecl 3 12325 &enable_so_pgt_bits_nvkm_mmu_12325
152315 +enable_so_no_of_triplet_mwifiex_802_11d_domain_reg_12326 no_of_triplet mwifiex_802_11d_domain_reg 0 12326 NULL
152316 +enable_so_tracing_clock_write_fndecl_12330 tracing_clock_write fndecl 3 12330 NULL
152317 +enable_so_s_log_block_size_nilfs_super_block_12332 s_log_block_size nilfs_super_block 0 12332 NULL
152318 +enable_so_read_regr_pi_protocol_12333 read_regr pi_protocol 0 12333 NULL
152319 +enable_so_status_w840_rx_desc_12335 status w840_rx_desc 0 12335 NULL nohasharray
152320 +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
152321 +enable_so_out_usbnet_12337 out usbnet 0 12337 NULL
152322 +enable_so_bank_size_stub_chip_12338 bank_size stub_chip 0 12338 NULL
152323 +enable_so_base_shift_iwl_fw_dbg_dest_tlv_12341 base_shift iwl_fw_dbg_dest_tlv 0 12341 NULL
152324 +enable_so_dccps_iss_dccp_sock_12346 dccps_iss dccp_sock 0 12346 NULL
152325 +enable_so_max_buf_size_tegra_slink_data_12348 max_buf_size tegra_slink_data 0 12348 NULL
152326 +enable_so_ocfs2_symlink_get_block_fndecl_12352 ocfs2_symlink_get_block fndecl 2 12352 NULL
152327 +enable_so_td_done_fndecl_12358 td_done fndecl 0 12358 NULL
152328 +enable_so_reserve_additional_memory_fndecl_12359 reserve_additional_memory fndecl 1 12359 NULL nohasharray
152329 +enable_so_limit_scaled_size_lock_fndecl_12359 limit_scaled_size_lock fndecl 5-6 12359 &enable_so_reserve_additional_memory_fndecl_12359 nohasharray
152330 +enable_so_igb_pci_sriov_configure_fndecl_12359 igb_pci_sriov_configure fndecl 2 12359 &enable_so_limit_scaled_size_lock_fndecl_12359
152331 +enable_so_ioremap_uc_fndecl_12363 ioremap_uc fndecl 2-1 12363 NULL
152332 +enable_so_xb_blkno_ocfs2_xattr_block_12365 xb_blkno ocfs2_xattr_block 0 12365 NULL
152333 +enable_so_num_subdevs_v4l2_async_notifier_12368 num_subdevs v4l2_async_notifier 0 12368 NULL
152334 +enable_so_compat_SyS_set_mempolicy_fndecl_12372 compat_SyS_set_mempolicy fndecl 3 12372 NULL
152335 +enable_so_i_entries_gfs2_inode_12374 i_entries gfs2_inode 0 12374 NULL
152336 +enable_so_mic_rx_pkts_read_fndecl_12375 mic_rx_pkts_read fndecl 3 12375 NULL
152337 +enable_so_iscsi_segment_seek_sg_fndecl_12378 iscsi_segment_seek_sg fndecl 5-4 12378 NULL nohasharray
152338 +enable_so_pci_enable_device_flags_fndecl_12378 pci_enable_device_flags fndecl 0 12378 &enable_so_iscsi_segment_seek_sg_fndecl_12378
152339 +enable_so_rx_prefix_size_efx_nic_12381 rx_prefix_size efx_nic 0 12381 NULL
152340 +enable_so_serial8250_port_size_fndecl_12384 serial8250_port_size fndecl 0 12384 NULL nohasharray
152341 +enable_so_if_usb_host_to_card_fndecl_12384 if_usb_host_to_card fndecl 4 12384 &enable_so_serial8250_port_size_fndecl_12384
152342 +enable_so_get_packet_pg_fndecl_12388 get_packet_pg fndecl 4 12388 NULL
152343 +enable_so_stb6100_write_reg_range_fndecl_12391 stb6100_write_reg_range fndecl 4 12391 NULL nohasharray
152344 +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
152345 +enable_so_data_segment_bytes_gru_create_context_req_12392 data_segment_bytes gru_create_context_req 0 12392 NULL
152346 +enable_so_num_ufbufs_vardecl_12394 num_ufbufs vardecl 0 12394 NULL
152347 +enable_so_memory_block_action_fndecl_12395 memory_block_action fndecl 1 12395 NULL
152348 +enable_so_alloc_one_pg_vec_page_fndecl_12396 alloc_one_pg_vec_page fndecl 1 12396 NULL
152349 +enable_so_ath10k_read_quiet_period_fndecl_12397 ath10k_read_quiet_period fndecl 3 12397 NULL
152350 +enable_so_buffer_size_zoran_buffer_col_12398 buffer_size zoran_buffer_col 0 12398 NULL
152351 +enable_so_powercap_register_zone_fndecl_12399 powercap_register_zone fndecl 6 12399 NULL
152352 +enable_so_ieee802154_alloc_hw_fndecl_12400 ieee802154_alloc_hw fndecl 1 12400 NULL
152353 +enable_so_edt_ft5x06_debugfs_raw_data_read_fndecl_12401 edt_ft5x06_debugfs_raw_data_read fndecl 3 12401 NULL
152354 +enable_so_acl_len_nfs_setaclargs_12402 acl_len nfs_setaclargs 0 12402 NULL
152355 +enable_so_length_iw_point_12404 length iw_point 0 12404 NULL
152356 +enable_so_reg_read_fndecl_12405 reg_read fndecl 4 12405 NULL
152357 +enable_so_snd_rawmidi_write_fndecl_12411 snd_rawmidi_write fndecl 3 12411 NULL
152358 +enable_so_p9_fd_write_fndecl_12417 p9_fd_write fndecl 3-0 12417 NULL
152359 +enable_so_read_reg_xcan_priv_12419 read_reg xcan_priv 0 12419 NULL nohasharray
152360 +enable_so_dccp_insert_fn_opt_fndecl_12419 dccp_insert_fn_opt fndecl 5 12419 &enable_so_read_reg_xcan_priv_12419
152361 +enable_so_cx231xx_init_vbi_isoc_fndecl_12422 cx231xx_init_vbi_isoc fndecl 4-2-3 12422 NULL
152362 +enable_so_init_rs_non_canonical_fndecl_12424 init_rs_non_canonical fndecl 5-1 12424 NULL
152363 +enable_so_len_SL_component_12428 len SL_component 0 12428 NULL
152364 +enable_so_ext4_quota_read_fndecl_12429 ext4_quota_read fndecl 5 12429 NULL
152365 +enable_so_lpfc_idiag_mbxacc_read_fndecl_12430 lpfc_idiag_mbxacc_read fndecl 3 12430 NULL
152366 +enable_so_pkey_tbl_len_ib_port_attr_12434 pkey_tbl_len ib_port_attr 0 12434 NULL
152367 +enable_so_hcd_priv_size_hc_driver_12440 hcd_priv_size hc_driver 0 12440 NULL
152368 +enable_so_informationLength_fileEntry_12442 informationLength fileEntry 0 12442 NULL nohasharray
152369 +enable_so_sctp_setsockopt_maxburst_fndecl_12442 sctp_setsockopt_maxburst fndecl 3 12442 &enable_so_informationLength_fileEntry_12442
152370 +enable_so_divisor_tc_sfq_qopt_12444 divisor tc_sfq_qopt 0 12444 NULL
152371 +enable_so_ie_len_cfg80211_connect_params_12446 ie_len cfg80211_connect_params 0 12446 NULL
152372 +enable_so_u132_endp_urb_dequeue_fndecl_12447 u132_endp_urb_dequeue fndecl 4 12447 NULL nohasharray
152373 +enable_so_ceph_sync_write_fndecl_12447 ceph_sync_write fndecl 0-3 12447 &enable_so_u132_endp_urb_dequeue_fndecl_12447
152374 +enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 acpi_gsb_i2c_write_bytes fndecl 4 12449 NULL nohasharray
152375 +enable_so_GetRecvByte_fndecl_12449 GetRecvByte fndecl 0 12449 &enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 nohasharray
152376 +enable_so_length_iwl_wipan_noa_attribute_12449 length iwl_wipan_noa_attribute 0 12449 &enable_so_GetRecvByte_fndecl_12449
152377 +enable_so_len_qlcnic_flt_header_12450 len qlcnic_flt_header 0 12450 NULL
152378 +enable_so_rx_padding_usbatm_driver_12455 rx_padding usbatm_driver 0 12455 NULL
152379 +enable_so_keyspan_setup_urb_fndecl_12461 keyspan_setup_urb fndecl 6-3-2 12461 NULL
152380 +enable_so_num_cq_mthca_profile_12463 num_cq mthca_profile 0 12463 NULL
152381 +enable_so_tp_block_nr_tpacket_req_12465 tp_block_nr tpacket_req 0 12465 NULL
152382 +enable_so_tx_frag_bad_mblk_num_read_fndecl_12467 tx_frag_bad_mblk_num_read fndecl 3 12467 NULL
152383 +enable_so_num_leds_pca9532_chip_info_12471 num_leds pca9532_chip_info 0 12471 NULL
152384 +enable_so_lpfc_lun_queue_depth_init_fndecl_12474 lpfc_lun_queue_depth_init fndecl 2 12474 NULL
152385 +enable_so_rx_defrag_need_defrag_read_fndecl_12486 rx_defrag_need_defrag_read fndecl 3 12486 NULL
152386 +enable_so_idx_il3945_tpt_entry_12490 idx il3945_tpt_entry 0 12490 NULL
152387 +enable_so_lock_extent_fndecl_12493 lock_extent fndecl 3-2 12493 NULL
152388 +enable_so_vgacon_adjust_height_fndecl_12495 vgacon_adjust_height fndecl 2 12495 NULL nohasharray
152389 +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
152390 +enable_so_ih_item_len_item_head_12495 ih_item_len item_head 0 12495 &enable_so_acpi_tb_install_standard_table_fndecl_12495
152391 +enable_so_blk_update_nr_requests_fndecl_12497 blk_update_nr_requests fndecl 2 12497 NULL
152392 +enable_so_map_off_xfs_dir2_leaf_map_info_12499 map_off xfs_dir2_leaf_map_info 0 12499 NULL
152393 +enable_so_dccp_feat_valid_nn_length_fndecl_12500 dccp_feat_valid_nn_length fndecl 0 12500 NULL
152394 +enable_so_response_length_be_cmd_resp_hdr_12501 response_length be_cmd_resp_hdr 0 12501 NULL nohasharray
152395 +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
152396 +enable_so_stream_next_buffer_fndecl_12502 stream_next_buffer fndecl 0 12502 NULL
152397 +enable_so_nclips_saa7134_dev_12507 nclips saa7134_dev 0 12507 NULL
152398 +enable_so_brcmf_chip_tcm_ramsize_fndecl_12513 brcmf_chip_tcm_ramsize fndecl 0 12513 NULL
152399 +enable_so_max_tchs_cyttsp4_sysinfo_ofs_12516 max_tchs cyttsp4_sysinfo_ofs 0 12516 NULL
152400 +enable_so_madvise_dontneed_fndecl_12517 madvise_dontneed fndecl 3-4 12517 NULL
152401 +enable_so_alloc_skb_with_frags_fndecl_12518 alloc_skb_with_frags fndecl 2 12518 NULL nohasharray
152402 +enable_so_num_pointers_whc_std_12518 num_pointers whc_std 0 12518 &enable_so_alloc_skb_with_frags_fndecl_12518
152403 +enable_so_video_read_fndecl_12519 video_read fndecl 3 12519 NULL
152404 +enable_so_stats_dot11FCSErrorCount_read_fndecl_12521 stats_dot11FCSErrorCount_read fndecl 3 12521 NULL
152405 +enable_so_snd_midi_channel_alloc_set_fndecl_12522 snd_midi_channel_alloc_set fndecl 1 12522 NULL
152406 +enable_so_index_mtd_info_12524 index mtd_info 0 12524 NULL
152407 +enable_so_al_tr_number_to_on_disk_sector_fndecl_12526 al_tr_number_to_on_disk_sector fndecl 0 12526 NULL
152408 +enable_so_depth_fb_image_12530 depth fb_image 0 12530 NULL
152409 +enable_so_lpc_sch_populate_cell_fndecl_12532 lpc_sch_populate_cell fndecl 5-4-6 12532 NULL
152410 +enable_so_write_isowbuf_t_12533 write isowbuf_t 0 12533 NULL
152411 +enable_so_m25p80_read_reg_fndecl_12535 m25p80_read_reg fndecl 4 12535 NULL
152412 +enable_so_learn_buffer_user_len_vardecl_gracl_learn_c_12538 learn_buffer_user_len vardecl_gracl_learn.c 0 12538 NULL
152413 +enable_so_cdrom_read_cdda_old_fndecl_12547 cdrom_read_cdda_old fndecl 4 12547 NULL
152414 +enable_so_qword_get_fndecl_12549 qword_get fndecl 0 12549 NULL
152415 +enable_so_recv_dless_read_fndecl_12554 recv_dless_read fndecl 4 12554 NULL
152416 +enable_so_qnx6_readpages_fndecl_12570 qnx6_readpages fndecl 4 12570 NULL
152417 +enable_so_read8_sync_rtl_io_12571 read8_sync rtl_io 0 12571 NULL
152418 +enable_so_address_length_acpi_resource_memory32_12576 address_length acpi_resource_memory32 0 12576 NULL
152419 +enable_so_fs_path_add_from_extent_buffer_fndecl_12581 fs_path_add_from_extent_buffer fndecl 0-4 12581 NULL
152420 +enable_so_rate_den_snd_pcm_hw_params_12586 rate_den snd_pcm_hw_params 0 12586 NULL
152421 +enable_so_acpi_tb_acquire_temp_table_fndecl_12590 acpi_tb_acquire_temp_table fndecl 2 12590 NULL nohasharray
152422 +enable_so_raid_disk_md_rdev_12590 raid_disk md_rdev 0 12590 &enable_so_acpi_tb_acquire_temp_table_fndecl_12590
152423 +enable_so_pt1_nr_tables_vardecl_pt1_c_12591 pt1_nr_tables vardecl_pt1.c 0 12591 NULL
152424 +enable_so_pn544_hci_probe_fndecl_12594 pn544_hci_probe fndecl 6-4 12594 NULL
152425 +enable_so_dev_rsize_hid_device_12597 dev_rsize hid_device 0 12597 NULL
152426 +enable_so_sx_fb_copyarea_12600 sx fb_copyarea 0 12600 NULL
152427 +enable_so_wqe_sz_mlx5e_rq_12601 wqe_sz mlx5e_rq 0 12601 NULL
152428 +enable_so_blk_limits_io_opt_fndecl_12606 blk_limits_io_opt fndecl 2 12606 NULL
152429 +enable_so_rt_priority_task_struct_12608 rt_priority task_struct 0 12608 NULL
152430 +enable_so_depth_g2d_fmt_12611 depth g2d_fmt 0 12611 NULL
152431 +enable_so_num_bank_bcm_kona_gpio_12612 num_bank bcm_kona_gpio 0 12612 NULL
152432 +enable_so_a4t_cs_init_fndecl_12613 a4t_cs_init fndecl 3 12613 NULL
152433 +enable_so_pty_vivid_rds_gen_12619 pty vivid_rds_gen 0 12619 NULL
152434 +enable_so_evm_write_key_fndecl_12624 evm_write_key fndecl 3 12624 NULL
152435 +enable_so_maxpacket_r8a66597_td_12628 maxpacket r8a66597_td 0 12628 NULL
152436 +enable_so_length_wep_key_12635 length wep_key 0 12635 NULL
152437 +enable_so_xfs_dir2_block_sfsize_fndecl_12636 xfs_dir2_block_sfsize fndecl 0 12636 NULL
152438 +enable_so_pattern_len_cfg80211_pkt_pattern_12639 pattern_len cfg80211_pkt_pattern 0 12639 NULL
152439 +enable_so_current_count_sectors_vardecl_floppy_c_12647 current_count_sectors vardecl_floppy.c 0 12647 NULL nohasharray
152440 +enable_so_size_of_pci_range_12647 size of_pci_range 0 12647 &enable_so_current_count_sectors_vardecl_floppy_c_12647
152441 +enable_so_local_nentries_xpc_openclose_args_12648 local_nentries xpc_openclose_args 0 12648 NULL
152442 +enable_so_kcalloc_fndecl_12649 kcalloc fndecl 1-2 12649 NULL
152443 +enable_so_fdir_pf_active_filters_i40e_pf_12654 fdir_pf_active_filters i40e_pf 0 12654 NULL
152444 +enable_so_sl_encaps_fndecl_12658 sl_encaps fndecl 3 12658 NULL
152445 +enable_so_get_index_fndecl_12660 get_index fndecl 0 12660 NULL
152446 +enable_so_linear_hugepage_index_fndecl_12664 linear_hugepage_index fndecl 0-2 12664 NULL
152447 +enable_so_sg_offset_iscsi_segment_12667 sg_offset iscsi_segment 0 12667 NULL
152448 +enable_so_num_aces_cifs_acl_12670 num_aces cifs_acl 0 12670 NULL
152449 +enable_so_beacon_buf_size_mwifiex_bssdescriptor_12674 beacon_buf_size mwifiex_bssdescriptor 0 12674 NULL nohasharray
152450 +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
152451 +enable_so_doorbell_base_kfd_dev_12677 doorbell_base kfd_dev 0 12677 NULL
152452 +enable_so_eeec_entry_sz_mthca_dev_lim_12679 eeec_entry_sz mthca_dev_lim 0 12679 NULL
152453 +enable_so_HST_kyrofb_info_12685 HST kyrofb_info 0 12685 NULL
152454 +enable_so_src_height_tpg_data_12686 src_height tpg_data 0 12686 NULL
152455 +enable_so_ttm_object_file_init_fndecl_12687 ttm_object_file_init fndecl 2 12687 NULL
152456 +enable_so_ns_nsegments_the_nilfs_12690 ns_nsegments the_nilfs 0 12690 NULL
152457 +enable_so_transport_init_session_tags_fndecl_12691 transport_init_session_tags fndecl 2-1 12691 NULL
152458 +enable_so_buf_size_mlx4_en_cq_12695 buf_size mlx4_en_cq 0 12695 NULL
152459 +enable_so_dn_neigh_elist_fndecl_12712 dn_neigh_elist fndecl 0 12712 NULL
152460 +enable_so_fld_debugfs_hash_seq_write_fndecl_12713 fld_debugfs_hash_seq_write fndecl 3 12713 NULL
152461 +enable_so_total_len_ocrdma_hdr_wqe_12714 total_len ocrdma_hdr_wqe 0 12714 NULL nohasharray
152462 +enable_so_sys_listxattr_fndecl_12714 sys_listxattr fndecl 3 12714 &enable_so_total_len_ocrdma_hdr_wqe_12714
152463 +enable_so_blk_ioctl_discard_fndecl_12725 blk_ioctl_discard fndecl 2-3 12725 NULL
152464 +enable_so_ss_in_channels_hdsp_12726 ss_in_channels hdsp 0 12726 NULL
152465 +enable_so_start_brk_prctl_mm_map_12729 start_brk prctl_mm_map 0 12729 NULL
152466 +enable_so_btrfs_truncate_item_fndecl_12731 btrfs_truncate_item fndecl 3 12731 NULL
152467 +enable_so_xfs_iomap_write_direct_fndecl_12733 xfs_iomap_write_direct fndecl 2 12733 NULL
152468 +enable_so_read_profile_fndecl_12736 read_profile fndecl 3 12736 NULL
152469 +enable_so_sky2_pci_read16_fndecl_12740 sky2_pci_read16 fndecl 0 12740 NULL
152470 +enable_so_count_nfsd3_readres_12745 count nfsd3_readres 0 12745 NULL
152471 +enable_so_aead_assoclen_aead_ctx_12755 aead_assoclen aead_ctx 0 12755 NULL nohasharray
152472 +enable_so_nfsd4_encode_splice_read_fndecl_12755 nfsd4_encode_splice_read fndecl 4 12755 &enable_so_aead_assoclen_aead_ctx_12755
152473 +enable_so_reserve_memtype_fndecl_12762 reserve_memtype fndecl 1-2 12762 NULL
152474 +enable_so_num_unit_element_struct_12767 num unit_element_struct 0 12767 NULL
152475 +enable_so_wl1251_sdio_read_fndecl_12773 wl1251_sdio_read fndecl 4 12773 NULL
152476 +enable_so_driver_add_groups_fndecl_12778 driver_add_groups fndecl 0 12778 NULL
152477 +enable_so_height_mxr_block_12780 height mxr_block 0 12780 NULL
152478 +enable_so_ieee80211_if_read_dot11MeshHWMProotInterval_fndecl_12786 ieee80211_if_read_dot11MeshHWMProotInterval fndecl 3 12786 NULL
152479 +enable_so_rx_max_pg_ring_bnx2_12789 rx_max_pg_ring bnx2 0 12789 NULL
152480 +enable_so_sb_fseg_start_nilfs_segment_buffer_12802 sb_fseg_start nilfs_segment_buffer 0 12802 NULL
152481 +enable_so_mpage_readpages_fndecl_12807 mpage_readpages fndecl 3 12807 NULL
152482 +enable_so_object_num_mxt_info_12810 object_num mxt_info 0 12810 NULL
152483 +enable_so_testmode_write_fndecl_12814 testmode_write fndecl 3 12814 NULL
152484 +enable_so_hint_events_per_packet_input_dev_12818 hint_events_per_packet input_dev 0 12818 NULL nohasharray
152485 +enable_so_subdev_ioctl_fndecl_12818 subdev_ioctl fndecl 2 12818 &enable_so_hint_events_per_packet_input_dev_12818
152486 +enable_so_xen_pirq_from_irq_fndecl_12820 xen_pirq_from_irq fndecl 0 12820 NULL
152487 +enable_so___videobuf_mmap_setup_fndecl_12822 __videobuf_mmap_setup fndecl 3-0 12822 NULL
152488 +enable_so_ksocknal_alloc_tx_fndecl_12825 ksocknal_alloc_tx fndecl 2 12825 NULL
152489 +enable_so_falcon_spi_device_init_fndecl_12835 falcon_spi_device_init fndecl 4 12835 NULL
152490 +enable_so_vmw_du_crtc_cursor_set_fndecl_12844 vmw_du_crtc_cursor_set fndecl 5-4 12844 NULL
152491 +enable_so_xfs_rtfind_back_fndecl_12849 xfs_rtfind_back fndecl 3 12849 NULL
152492 +enable_so_sbs_setup_fndecl_12851 sbs_setup fndecl 4 12851 NULL
152493 +enable_so_key_mic_failures_read_fndecl_12858 key_mic_failures_read fndecl 3 12858 NULL
152494 +enable_so_rx_buffer_size_macb_12864 rx_buffer_size macb 0 12864 NULL
152495 +enable_so_snd_interval_refine_max_fndecl_12865 snd_interval_refine_max fndecl 2 12865 NULL
152496 +enable_so_frameoffset_b43legacy_dmaring_12869 frameoffset b43legacy_dmaring 0 12869 NULL
152497 +enable_so_error_code_x86_exception_12872 error_code x86_exception 0 12872 NULL
152498 +enable_so_max_ddbs_hw_profile_12873 max_ddbs hw_profile 0 12873 NULL
152499 +enable_so_tcp_remove_reno_sacks_fndecl_12874 tcp_remove_reno_sacks fndecl 2 12874 NULL
152500 +enable_so_length_i2c_hid_cmd_12879 length i2c_hid_cmd 0 12879 NULL
152501 +enable_so_response_length_ib_uverbs_ex_create_cq_resp_12889 response_length ib_uverbs_ex_create_cq_resp 0 12889 NULL
152502 +enable_so_udp_uncompress_fndecl_12890 udp_uncompress fndecl 2 12890 NULL
152503 +enable_so_max_response_pages_fndecl_12895 max_response_pages fndecl 0 12895 NULL
152504 +enable_so_offset_ceph_dentry_info_12896 offset ceph_dentry_info 0 12896 NULL
152505 +enable_so_early_init_dt_alloc_memory_arch_fndecl_12899 early_init_dt_alloc_memory_arch fndecl 2-1 12899 NULL
152506 +enable_so_dbgfs_sram_len_iwl_mvm_12900 dbgfs_sram_len iwl_mvm 0 12900 NULL
152507 +enable_so_tool_db_read_fndecl_12902 tool_db_read fndecl 3 12902 NULL
152508 +enable_so_ccw_cursor_fndecl_12903 ccw_cursor fndecl 4 12903 NULL
152509 +enable_so_capinc_tty_write_fndecl_12904 capinc_tty_write fndecl 3 12904 NULL
152510 +enable_so_add_children_fndecl_12906 add_children fndecl 2 12906 NULL
152511 +enable_so_ps_poll_upsd_utilization_read_fndecl_12916 ps_poll_upsd_utilization_read fndecl 3 12916 NULL
152512 +enable_so_max_reportid_mxt_data_12917 max_reportid mxt_data 0 12917 NULL
152513 +enable_so_cfg80211_calculate_bitrate_fndecl_12918 cfg80211_calculate_bitrate fndecl 0 12918 NULL
152514 +enable_so_m_lblk_ext4_map_blocks_12920 m_lblk ext4_map_blocks 0 12920 NULL
152515 +enable_so_nilfs_sufile_delete_segment_usage_block_fndecl_12921 nilfs_sufile_delete_segment_usage_block fndecl 2 12921 NULL
152516 +enable_so_qs_out_channels_hdspm_12922 qs_out_channels hdspm 0 12922 NULL
152517 +enable_so_idetape_mtioctop_fndecl_12923 idetape_mtioctop fndecl 3 12923 NULL
152518 +enable_so_sh_irda_init_iobuf_fndecl_12924 sh_irda_init_iobuf fndecl 2 12924 NULL nohasharray
152519 +enable_so_i2400m_tx_stats_read_fndecl_12924 i2400m_tx_stats_read fndecl 3 12924 &enable_so_sh_irda_init_iobuf_fndecl_12924
152520 +enable_so_ath6kl_wmi_disconnect_cmd_fndecl_12926 ath6kl_wmi_disconnect_cmd fndecl 2 12926 NULL
152521 +enable_so_obufsize_sisusb_usb_data_12932 obufsize sisusb_usb_data 0 12932 NULL nohasharray
152522 +enable_so_asymmetric_verify_fndecl_12932 asymmetric_verify fndecl 3 12932 &enable_so_obufsize_sisusb_usb_data_12932
152523 +enable_so_ext4_split_extent_at_fndecl_12936 ext4_split_extent_at fndecl 4 12936 NULL
152524 +enable_so_vlan_id_vlan_dev_priv_12939 vlan_id vlan_dev_priv 0 12939 NULL
152525 +enable_so_xlog_clear_stale_blocks_fndecl_12940 xlog_clear_stale_blocks fndecl 2 12940 NULL
152526 +enable_so_phys_pud_init_fndecl_12941 phys_pud_init fndecl 0-2-3 12941 NULL
152527 +enable_so_gfs2_meta_indirect_buffer_fndecl_12942 gfs2_meta_indirect_buffer fndecl 3 12942 NULL
152528 +enable_so_run_delalloc_range_fndecl_12946 run_delalloc_range fndecl 3-4 12946 NULL nohasharray
152529 +enable_so_aio_read_events_fndecl_12946 aio_read_events fndecl 3 12946 &enable_so_run_delalloc_range_fndecl_12946 nohasharray
152530 +enable_so_mptctl_getiocinfo_fndecl_12946 mptctl_getiocinfo fndecl 2 12946 &enable_so_aio_read_events_fndecl_12946
152531 +enable_so_get_rate_snd_ice1712_12947 get_rate snd_ice1712 0 12947 NULL nohasharray
152532 +enable_so_sel_read_policycap_fndecl_12947 sel_read_policycap fndecl 3 12947 &enable_so_get_rate_snd_ice1712_12947
152533 +enable_so_st_nci_se_io_fndecl_12948 st_nci_se_io fndecl 4 12948 NULL
152534 +enable_so_nr_segments_blkif_request_rw_12950 nr_segments blkif_request_rw 0 12950 NULL
152535 +enable_so_b43legacy_debugfs_write_fndecl_12959 b43legacy_debugfs_write fndecl 3 12959 NULL
152536 +enable_so_vm_start_vm_area_struct_12960 vm_start vm_area_struct 0 12960 NULL
152537 +enable_so_data_pipe_mts_transfer_context_12962 data_pipe mts_transfer_context 0 12962 NULL
152538 +enable_so_apei_exec_ctx_set_input_fndecl_12968 apei_exec_ctx_set_input fndecl 2 12968 NULL
152539 +enable_so_initiator_length_spar_controlvm_parameters_header_12973 initiator_length spar_controlvm_parameters_header 0 12973 NULL
152540 +enable_so_clone_update_extent_map_fndecl_12984 clone_update_extent_map fndecl 4-5 12984 NULL
152541 +enable_so_ql4xmaxqdepth_vardecl_ql4_os_c_12992 ql4xmaxqdepth vardecl_ql4_os.c 0 12992 NULL
152542 +enable_so_xdr_reserve_space_fndecl_12997 xdr_reserve_space fndecl 2 12997 NULL
152543 +enable_so_end_file_extent_cluster_13001 end file_extent_cluster 0 13001 NULL
152544 +enable_so_pm3fb_size_memory_fndecl_13002 pm3fb_size_memory fndecl 0 13002 NULL
152545 +enable_so_ipath_ureg_align_ipath_devdata_13010 ipath_ureg_align ipath_devdata 0 13010 NULL
152546 +enable_so_mcp795_rtcc_write_fndecl_13014 mcp795_rtcc_write fndecl 4 13014 NULL nohasharray
152547 +enable_so_gfs2_fsync_fndecl_13014 gfs2_fsync fndecl 2-3 13014 &enable_so_mcp795_rtcc_write_fndecl_13014
152548 +enable_so_sg_alloc_table_from_pages_fndecl_13015 sg_alloc_table_from_pages fndecl 5-4 13015 NULL nohasharray
152549 +enable_so_kfifo_unused_fndecl_13015 kfifo_unused fndecl 0 13015 &enable_so_sg_alloc_table_from_pages_fndecl_13015
152550 +enable_so_arg_end_mm_struct_13016 arg_end mm_struct 0 13016 NULL
152551 +enable_so_mp_override_legacy_irq_fndecl_13017 mp_override_legacy_irq fndecl 1-4 13017 NULL
152552 +enable_so_rpcrdma_alloc_regbuf_fndecl_13018 rpcrdma_alloc_regbuf fndecl 2 13018 NULL
152553 +enable_so_snd_nm256_capture_copy_fndecl_13021 snd_nm256_capture_copy fndecl 5 13021 NULL
152554 +enable_so_do_mbind_fndecl_13022 do_mbind fndecl 2-1 13022 NULL
152555 +enable_so_format_supported_num_intel_sdvo_connector_13024 format_supported_num intel_sdvo_connector 0 13024 NULL
152556 +enable_so___free_memory_core_fndecl_13029 __free_memory_core fndecl 0-1-2 13029 NULL nohasharray
152557 +enable_so_iwl_dbgfs_nic_temp_read_fndecl_13029 iwl_dbgfs_nic_temp_read fndecl 3 13029 &enable_so___free_memory_core_fndecl_13029
152558 +enable_so_blk_queue_resize_tags_fndecl_13037 blk_queue_resize_tags fndecl 2 13037 NULL
152559 +enable_so_p9_fcall_alloc_fndecl_13055 p9_fcall_alloc fndecl 1 13055 NULL nohasharray
152560 +enable_so_sco_sock_recvmsg_fndecl_13055 sco_sock_recvmsg fndecl 3 13055 &enable_so_p9_fcall_alloc_fndecl_13055
152561 +enable_so_hfront_porch_videomode_13056 hfront_porch videomode 0 13056 NULL
152562 +enable_so_p_offset_elf64_phdr_13061 p_offset elf64_phdr 0 13061 NULL
152563 +enable_so_xfs_bunmapi_fndecl_13063 xfs_bunmapi fndecl 3-4 13063 NULL
152564 +enable_so___ocfs2_dx_dir_leaf_insert_fndecl_13066 __ocfs2_dx_dir_leaf_insert fndecl 4 13066 NULL
152565 +enable_so_read_disk_sb_fndecl_13071 read_disk_sb fndecl 2 13071 NULL
152566 +enable_so_amd756_ioport_vardecl_i2c_amd756_c_13072 amd756_ioport vardecl_i2c-amd756.c 0 13072 NULL
152567 +enable_so_envc_tomoyo_condition_13082 envc tomoyo_condition 0 13082 NULL
152568 +enable_so_c4iw_reject_cr_fndecl_13085 c4iw_reject_cr fndecl 3 13085 NULL
152569 +enable_so_vread_fndecl_13086 vread fndecl 3-0 13086 NULL
152570 +enable_so_hard_mtu_usbnet_13093 hard_mtu usbnet 0 13093 NULL nohasharray
152571 +enable_so_vrambase_sisusb_usb_data_13093 vrambase sisusb_usb_data 0 13093 &enable_so_hard_mtu_usbnet_13093 nohasharray
152572 +enable_so_cursg_ofs_ide_cmd_13093 cursg_ofs ide_cmd 0 13093 &enable_so_vrambase_sisusb_usb_data_13093 nohasharray
152573 +enable_so_thermal_zone_device_register_fndecl_13093 thermal_zone_device_register fndecl 2 13093 &enable_so_cursg_ofs_ide_cmd_13093
152574 +enable_so_set_wep_key_fndecl_13094 set_wep_key fndecl 4 13094 NULL
152575 +enable_so___exclude_logged_extent_fndecl_13095 __exclude_logged_extent fndecl 3-2 13095 NULL
152576 +enable_so_end_data_mm_struct_13099 end_data mm_struct 0 13099 NULL
152577 +enable_so_ocfs2_cow_sync_writeback_fndecl_13102 ocfs2_cow_sync_writeback fndecl 3-4 13102 NULL nohasharray
152578 +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
152579 +enable_so___qp_memcpy_from_queue_fndecl_13103 __qp_memcpy_from_queue fndecl 4-3 13103 NULL nohasharray
152580 +enable_so_sctp_tsnmap_skip_fndecl_13103 sctp_tsnmap_skip fndecl 2 13103 &enable_so___qp_memcpy_from_queue_fndecl_13103
152581 +enable_so_cx24117_readregN_fndecl_13105 cx24117_readregN fndecl 4 13105 NULL
152582 +enable_so_num_qp_mlx4_profile_13106 num_qp mlx4_profile 0 13106 NULL
152583 +enable_so_nvkm_output_dp_create__fndecl_13107 nvkm_output_dp_create_ fndecl 6 13107 NULL
152584 +enable_so_au_verfsize_rpc_auth_13110 au_verfsize rpc_auth 0 13110 NULL
152585 +enable_so_DecodeMatrix_fndecl_13117 DecodeMatrix fndecl 0 13117 NULL nohasharray
152586 +enable_so_wIELength_uwb_rc_evt_drp_WUSB_0100_13117 wIELength uwb_rc_evt_drp_WUSB_0100 0 13117 &enable_so_DecodeMatrix_fndecl_13117
152587 +enable_so_sys_setpriority_fndecl_13132 sys_setpriority fndecl 3 13132 NULL
152588 +enable_so_source_pad_adv76xx_state_13133 source_pad adv76xx_state 0 13133 NULL
152589 +enable_so_c4iw_wr_log_size_order_vardecl_device_c_13134 c4iw_wr_log_size_order vardecl_device.c 0 13134 NULL
152590 +enable_so_line6_alloc_sysex_buffer_fndecl_13138 line6_alloc_sysex_buffer fndecl 4 13138 NULL
152591 +enable_so_genwqe_sriov_configure_fndecl_13139 genwqe_sriov_configure fndecl 2 13139 NULL
152592 +enable_so_mousedev_reserve_minor_fndecl_13143 mousedev_reserve_minor fndecl 0 13143 NULL
152593 +enable_so_viafb_bpp_vardecl_viafbdev_c_13145 viafb_bpp vardecl_viafbdev.c 0 13145 NULL
152594 +enable_so_max_response_packet_size_ec_response_get_protocol_info_13148 max_response_packet_size ec_response_get_protocol_info 0 13148 NULL
152595 +enable_so_calc_available_memory_size_fndecl_13151 calc_available_memory_size fndecl 0 13151 NULL
152596 +enable_so_len_mtd_write_req_13154 len mtd_write_req 0 13154 NULL nohasharray
152597 +enable_so_EraseUnitSize_erase_unit_header_t_13154 EraseUnitSize erase_unit_header_t 0 13154 &enable_so_len_mtd_write_req_13154
152598 +enable_so_inline_xattr_size_fndecl_13166 inline_xattr_size fndecl 0 13166 NULL
152599 +enable_so_hpfs_add_to_dnode_fndecl_13167 hpfs_add_to_dnode fndecl 4-2 13167 NULL
152600 +enable_so_iproc_pll_clk_setup_fndecl_13179 iproc_pll_clk_setup fndecl 6 13179 NULL
152601 +enable_so_nouveau_compat_ioctl_fndecl_13186 nouveau_compat_ioctl fndecl 2 13186 NULL
152602 +enable_so_blocksize_f2fs_sb_info_13191 blocksize f2fs_sb_info 0 13191 NULL
152603 +enable_so_bsg_setup_queue_fndecl_13194 bsg_setup_queue fndecl 5 13194 NULL
152604 +enable_so_generic_access_phys_fndecl_13197 generic_access_phys fndecl 2-4 13197 NULL
152605 +enable_so_snd_pcm_oss_read_fndecl_13198 snd_pcm_oss_read fndecl 3 13198 NULL
152606 +enable_so_SyS_ppoll_fndecl_13201 SyS_ppoll fndecl 2 13201 NULL
152607 +enable_so_dma_map_sg_attrs_fndecl_13202 dma_map_sg_attrs fndecl 0 13202 NULL
152608 +enable_so_num_channels_sh_cmt_device_13209 num_channels sh_cmt_device 0 13209 NULL
152609 +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
152610 +enable_so_height_usbtv_13217 height usbtv 0 13217 NULL nohasharray
152611 +enable_so_bm_entry_write_fndecl_13217 bm_entry_write fndecl 3 13217 &enable_so_height_usbtv_13217
152612 +enable_so_create_boot_cache_fndecl_13218 create_boot_cache fndecl 3 13218 NULL
152613 +enable_so_total_xfer_len_sas_task_13219 total_xfer_len sas_task 0 13219 NULL
152614 +enable_so_ath5k_common_padpos_fndecl_13221 ath5k_common_padpos fndecl 0 13221 NULL
152615 +enable_so_tcp_copy_to_iovec_fndecl_13227 tcp_copy_to_iovec fndecl 3 13227 NULL nohasharray
152616 +enable_so_ipath_uregbase_ipath_devdata_13227 ipath_uregbase ipath_devdata 0 13227 &enable_so_tcp_copy_to_iovec_fndecl_13227
152617 +enable_so_len_hi_sigma_action_13229 len_hi sigma_action 0 13229 NULL
152618 +enable_so_filldir64_fndecl_13232 filldir64 fndecl 3 13232 NULL
152619 +enable_so_mtdram_init_device_fndecl_13236 mtdram_init_device fndecl 3 13236 NULL
152620 +enable_so_ipxitf_alloc_fndecl_13238 ipxitf_alloc fndecl 6 13238 NULL
152621 +enable_so_max_mthca_wq_13240 max mthca_wq 0 13240 NULL
152622 +enable_so_update_sge_fndecl_13245 update_sge fndecl 2 13245 NULL
152623 +enable_so_sq_psn_ib_qp_attr_13249 sq_psn ib_qp_attr 0 13249 NULL nohasharray
152624 +enable_so_batadv_handle_tt_response_fndecl_13249 batadv_handle_tt_response fndecl 4 13249 &enable_so_sq_psn_ib_qp_attr_13249
152625 +enable_so_dst_base_apei_exec_context_13252 dst_base apei_exec_context 0 13252 NULL
152626 +enable_so_maxsize_p9_trans_module_13254 maxsize p9_trans_module 0 13254 NULL
152627 +enable_so_pid_filter_count_dvb_usb_adapter_properties_13258 pid_filter_count dvb_usb_adapter_properties 0 13258 NULL
152628 +enable_so_blocklen_bytes_drbg_core_13259 blocklen_bytes drbg_core 0 13259 NULL nohasharray
152629 +enable_so_maxid_scif_info_13259 maxid scif_info 0 13259 &enable_so_blocklen_bytes_drbg_core_13259
152630 +enable_so_rsp_pay_size_qlcnic_bc_trans_13274 rsp_pay_size qlcnic_bc_trans 0 13274 NULL nohasharray
152631 +enable_so_rx_len_acpi_ipmi_msg_13274 rx_len acpi_ipmi_msg 0 13274 &enable_so_rsp_pay_size_qlcnic_bc_trans_13274
152632 +enable_so_cryptlen_authenc_esn_request_ctx_13277 cryptlen authenc_esn_request_ctx 0 13277 NULL
152633 +enable_so_xfs_iomap_write_unwritten_fndecl_13278 xfs_iomap_write_unwritten fndecl 3-2 13278 NULL
152634 +enable_so_status_usb_iso_packet_descriptor_13287 status usb_iso_packet_descriptor 0 13287 NULL
152635 +enable_so_num_bytes_sigma_fw_chunk_control_13289 num_bytes sigma_fw_chunk_control 0 13289 NULL
152636 +enable_so_compress_file_range_fndecl_13295 compress_file_range fndecl 4-3 13295 NULL
152637 +enable_so_ioc_plen1_libcfs_ioctl_data_13297 ioc_plen1 libcfs_ioctl_data 0 13297 NULL
152638 +enable_so_dlmfs_file_read_fndecl_13298 dlmfs_file_read fndecl 3 13298 NULL
152639 +enable_so_sys_writev_fndecl_13299 sys_writev fndecl 3 13299 NULL
152640 +enable_so_alloc_page_buffers_fndecl_13304 alloc_page_buffers fndecl 2 13304 NULL
152641 +enable_so_tx_frag_cache_miss_read_fndecl_13305 tx_frag_cache_miss_read fndecl 3 13305 NULL
152642 +enable_so_tool_db_write_fndecl_13312 tool_db_write fndecl 3 13312 NULL
152643 +enable_so_token_size_iw_ioctl_description_13319 token_size iw_ioctl_description 0 13319 NULL
152644 +enable_so_slhc_uncompress_fndecl_13322 slhc_uncompress fndecl 0-3 13322 NULL
152645 +enable_so_skb_zerocopy_headlen_fndecl_13325 skb_zerocopy_headlen fndecl 0 13325 NULL
152646 +enable_so_svc_print_xprts_fndecl_13330 svc_print_xprts fndecl 0 13330 NULL
152647 +enable_so_csum_and_copy_from_iter_fndecl_13338 csum_and_copy_from_iter fndecl 2 13338 NULL
152648 +enable_so_copy_buffer_fndecl_13339 copy_buffer fndecl 1-2-3 13339 NULL
152649 +enable_so_brcmf_usb_dl_cmd_fndecl_13344 brcmf_usb_dl_cmd fndecl 4 13344 NULL
152650 +enable_so_x25_asy_change_mtu_fndecl_13347 x25_asy_change_mtu fndecl 2 13347 NULL
152651 +enable_so_pwr_ps_enter_read_fndecl_13348 pwr_ps_enter_read fndecl 3 13348 NULL nohasharray
152652 +enable_so_sctp_setsockopt_adaptation_layer_fndecl_13348 sctp_setsockopt_adaptation_layer fndecl 3 13348 &enable_so_pwr_ps_enter_read_fndecl_13348
152653 +enable_so_compat_mtw_from_user_fndecl_13351 compat_mtw_from_user fndecl 0 13351 NULL
152654 +enable_so_hecubafb_write_fndecl_13357 hecubafb_write fndecl 3 13357 NULL
152655 +enable_so_carl9170_handle_mpdu_fndecl_13359 carl9170_handle_mpdu fndecl 3 13359 NULL
152656 +enable_so_hhf_zalloc_fndecl_13363 hhf_zalloc fndecl 1 13363 NULL
152657 +enable_so_unit_mddev_13365 unit mddev 0 13365 NULL
152658 +enable_so_ihl_iphdr_13367 ihl iphdr 0 13367 NULL nohasharray
152659 +enable_so_cfg80211_process_auth_fndecl_13367 cfg80211_process_auth fndecl 3 13367 &enable_so_ihl_iphdr_13367
152660 +enable_so_sd_size_stat_data_13368 sd_size stat_data 0 13368 NULL
152661 +enable_so_ep_response_mts_desc_13372 ep_response mts_desc 0 13372 NULL
152662 +enable_so_num_pages_ttm_tt_13376 num_pages ttm_tt 0 13376 NULL
152663 +enable_so_ds_in_channels_hdspm_13382 ds_in_channels hdspm 0 13382 NULL nohasharray
152664 +enable_so_T5_msg_size_mxt_data_13382 T5_msg_size mxt_data 0 13382 &enable_so_ds_in_channels_hdspm_13382
152665 +enable_so_max_width_sh_mobile_ceu_dev_13387 max_width sh_mobile_ceu_dev 0 13387 NULL nohasharray
152666 +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
152667 +enable_so_chunk_size_lirc_buffer_13388 chunk_size lirc_buffer 0 13388 NULL
152668 +enable_so_beep_amp_conexant_spec_13390 beep_amp conexant_spec 0 13390 NULL
152669 +enable_so_ic_offset_xlog_in_core_13393 ic_offset xlog_in_core 0 13393 NULL nohasharray
152670 +enable_so_cmdsts__BufferDesc_13393 cmdsts _BufferDesc 0 13393 &enable_so_ic_offset_xlog_in_core_13393 nohasharray
152671 +enable_so_max_sets_vardecl_ip_set_core_c_13393 max_sets vardecl_ip_set_core.c 0 13393 &enable_so_cmdsts__BufferDesc_13393
152672 +enable_so_memblock_add_fndecl_13394 memblock_add fndecl 1-2 13394 NULL
152673 +enable_so_nfs42_fallocate_fndecl_13396 nfs42_fallocate fndecl 3-4 13396 NULL
152674 +enable_so_mp_payload_len_fcoe_mp_rsp_union_13397 mp_payload_len fcoe_mp_rsp_union 0 13397 NULL nohasharray
152675 +enable_so_i_size_write_fndecl_13397 i_size_write fndecl 2 13397 &enable_so_mp_payload_len_fcoe_mp_rsp_union_13397
152676 +enable_so_microread_probe_fndecl_13400 microread_probe fndecl 6-4 13400 NULL nohasharray
152677 +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
152678 +enable_so_rmmio_base_cirrus_device_13402 rmmio_base cirrus_device 0 13402 NULL
152679 +enable_so_nfs_proc_readlink_fndecl_13404 nfs_proc_readlink fndecl 4-3 13404 NULL
152680 +enable_so_shrink_slab_fndecl_13407 shrink_slab fndecl 5-4 13407 NULL
152681 +enable_so_subdevices_count_snd_rawmidi_info_13408 subdevices_count snd_rawmidi_info 0 13408 NULL
152682 +enable_so_rate_adav80x_13411 rate adav80x 0 13411 NULL
152683 +enable_so_extra_len_request_13419 extra_len request 0 13419 NULL
152684 +enable_so_nrealreaders_stress_lock_torture_cxt_13422 nrealreaders_stress lock_torture_cxt 0 13422 NULL
152685 +enable_so_tx_headroom_ieee80211_local_13423 tx_headroom ieee80211_local 0 13423 NULL
152686 +enable_so_do_direct_IO_fndecl_13424 do_direct_IO fndecl 0 13424 NULL
152687 +enable_so_tb_path_alloc_fndecl_13427 tb_path_alloc fndecl 2 13427 NULL
152688 +enable_so_get_origin_minimum_chunksize_fndecl_13432 get_origin_minimum_chunksize fndecl 0 13432 NULL
152689 +enable_so_nouveau_channel_prep_fndecl_13435 nouveau_channel_prep fndecl 4 13435 NULL
152690 +enable_so_usbdev_lseek_fndecl_13441 usbdev_lseek fndecl 2 13441 NULL
152691 +enable_so_promote_fndecl_13442 promote fndecl 4-3 13442 NULL nohasharray
152692 +enable_so_mwifiex_memrw_write_fndecl_13442 mwifiex_memrw_write fndecl 3 13442 &enable_so_promote_fndecl_13442
152693 +enable_so_nports_adapter_params_13446 nports adapter_params 0 13446 NULL
152694 +enable_so_fill_read_buf_fndecl_13455 fill_read_buf fndecl 0-2 13455 NULL
152695 +enable_so_me_start_ocfs2_move_extents_13461 me_start ocfs2_move_extents 0 13461 NULL nohasharray
152696 +enable_so_max_eq_mlx4_func_cap_13461 max_eq mlx4_func_cap 0 13461 &enable_so_me_start_ocfs2_move_extents_13461
152697 +enable_so_flaglen_ring_desc_13468 flaglen ring_desc 0 13468 NULL
152698 +enable_so_ufs_alloc_fragments_fndecl_13472 ufs_alloc_fragments fndecl 2-0-3 13472 NULL nohasharray
152699 +enable_so_handle_mm_fault_fndecl_13472 handle_mm_fault fndecl 3 13472 &enable_so_ufs_alloc_fragments_fndecl_13472 nohasharray
152700 +enable_so_snd_ctl_new_fndecl_13472 snd_ctl_new fndecl 2 13472 &enable_so_handle_mm_fault_fndecl_13472
152701 +enable_so_height_bttv_fh_13473 height bttv_fh 0 13473 NULL
152702 +enable_so_req_ie_length_ndis_80211_assoc_info_13477 req_ie_length ndis_80211_assoc_info 0 13477 NULL nohasharray
152703 +enable_so___videobuf_alloc_vb_fndecl_13477 __videobuf_alloc_vb fndecl 1 13477 &enable_so_req_ie_length_ndis_80211_assoc_info_13477
152704 +enable_so_devfn_slot_13478 devfn slot 0 13478 NULL
152705 +enable_so_ext4_convert_unwritten_extents_fndecl_13483 ext4_convert_unwritten_extents fndecl 3-4 13483 NULL
152706 +enable_so_size_jffs2_full_dnode_13487 size jffs2_full_dnode 0 13487 NULL
152707 +enable_so_sk_datalen_svc_sock_13490 sk_datalen svc_sock 0 13490 NULL nohasharray
152708 +enable_so_i_section_size_iso_inode_info_13490 i_section_size iso_inode_info 0 13490 &enable_so_sk_datalen_svc_sock_13490
152709 +enable_so_sendpage_proto_ops_13505 sendpage proto_ops 0 13505 NULL nohasharray
152710 +enable_so_hwtstamp_ioctl_fndecl_13505 hwtstamp_ioctl fndecl 0 13505 &enable_so_sendpage_proto_ops_13505
152711 +enable_so_btmrvl_hscmd_write_fndecl_13506 btmrvl_hscmd_write fndecl 3 13506 NULL
152712 +enable_so_max_channels_cmipci_13517 max_channels cmipci 0 13517 NULL nohasharray
152713 +enable_so_len_unix_address_13517 len unix_address 0 13517 &enable_so_max_channels_cmipci_13517
152714 +enable_so_max_out_size_ims_pcu_13527 max_out_size ims_pcu 0 13527 NULL
152715 +enable_so_av_buf_head_dccp_ackvec_13528 av_buf_head dccp_ackvec 0 13528 NULL nohasharray
152716 +enable_so_alloc_fdmem_fndecl_13528 alloc_fdmem fndecl 1 13528 &enable_so_av_buf_head_dccp_ackvec_13528
152717 +enable_so_max_ws_blocks_scsi_disk_13533 max_ws_blocks scsi_disk 0 13533 NULL
152718 +enable_so_find_rsb_nodir_fndecl_13537 find_rsb_nodir fndecl 3 13537 NULL
152719 +enable_so_p_filesz_elf64_phdr_13545 p_filesz elf64_phdr 0 13545 NULL
152720 +enable_so_len_prism2_download_data_area_13551 len prism2_download_data_area 0 13551 NULL
152721 +enable_so_decode_imm_fndecl_13552 decode_imm fndecl 3 13552 NULL
152722 +enable_so_nes_reg_user_mr_fndecl_13553 nes_reg_user_mr fndecl 2-3 13553 NULL nohasharray
152723 +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
152724 +enable_so_context_id_fcoe_kwqe_conn_destroy_13555 context_id fcoe_kwqe_conn_destroy 0 13555 NULL
152725 +enable_so___devcgroup_inode_permission_fndecl_13559 __devcgroup_inode_permission fndecl 0 13559 NULL nohasharray
152726 +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
152727 +enable_so_buf_len_vp702x_device_state_13562 buf_len vp702x_device_state 0 13562 NULL
152728 +enable_so_capture_periodsize_rme96_13564 capture_periodsize rme96 0 13564 NULL
152729 +enable_so_edt_ft5x06_ts_readwrite_fndecl_13570 edt_ft5x06_ts_readwrite fndecl 2-4-0 13570 NULL
152730 +enable_so_amdtp_stream_get_max_payload_fndecl_13574 amdtp_stream_get_max_payload fndecl 0 13574 NULL
152731 +enable_so_irq_alloc_generic_chip_fndecl_13577 irq_alloc_generic_chip fndecl 2 13577 NULL
152732 +enable_so_fd_do_prot_fill_fndecl_13583 fd_do_prot_fill fndecl 5-3 13583 NULL
152733 +enable_so_pwr_fix_tsf_ps_read_fndecl_13584 pwr_fix_tsf_ps_read fndecl 3 13584 NULL
152734 +enable_so_ring_size_r600_ih_13586 ring_size r600_ih 0 13586 NULL
152735 +enable_so_video_v_start_saa7134_tvnorm_13594 video_v_start saa7134_tvnorm 0 13594 NULL
152736 +enable_so_pxa168_eth_change_mtu_fndecl_13596 pxa168_eth_change_mtu fndecl 2 13596 NULL nohasharray
152737 +enable_so_sysctl_wmem_default_vardecl_13596 sysctl_wmem_default vardecl 0 13596 &enable_so_pxa168_eth_change_mtu_fndecl_13596
152738 +enable_so_active_ahc_linux_device_13601 active ahc_linux_device 0 13601 NULL
152739 +enable_so_size_drm_mm_node_13605 size drm_mm_node 0 13605 NULL
152740 +enable_so_flowinfo_read_fndecl_13608 flowinfo_read fndecl 3 13608 NULL
152741 +enable_so_id_pcap_subdev_13609 id pcap_subdev 0 13609 NULL
152742 +enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611 cipso_v4_map_cat_rbm_hton fndecl 0 13611 NULL nohasharray
152743 +enable_so_size_sm501_mem_13611 size sm501_mem 0 13611 &enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611
152744 +enable_so___alloc_pred_stack_fndecl_13612 __alloc_pred_stack fndecl 2 13612 NULL
152745 +enable_so_nvoices_snd_seq_oss_reg_13613 nvoices snd_seq_oss_reg 0 13613 NULL
152746 +enable_so_us122l_start_fndecl_13617 us122l_start fndecl 2-3 13617 NULL
152747 +enable_so_softback_top_vardecl_fbcon_c_13621 softback_top vardecl_fbcon.c 0 13621 NULL nohasharray
152748 +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
152749 +enable_so_usb_reset_device_fndecl_13622 usb_reset_device fndecl 0 13622 NULL
152750 +enable_so_ws_col_winsize_13628 ws_col winsize 0 13628 NULL
152751 +enable_so_num_mgms_mthca_limits_13629 num_mgms mthca_limits 0 13629 NULL
152752 +enable_so_x1_drm_clip_rect_13637 x1 drm_clip_rect 0 13637 NULL
152753 +enable_so_xenbus_map_ring_valloc_hvm_fndecl_13638 xenbus_map_ring_valloc_hvm fndecl 3 13638 NULL
152754 +enable_so_nbytes_ata_queued_cmd_13642 nbytes ata_queued_cmd 0 13642 NULL
152755 +enable_so_nilfs_compute_checksum_fndecl_13643 nilfs_compute_checksum fndecl 6 13643 NULL nohasharray
152756 +enable_so_npools_svc_pool_map_13643 npools svc_pool_map 0 13643 &enable_so_nilfs_compute_checksum_fndecl_13643
152757 +enable_so_number_mdp_device_descriptor_s_13645 number mdp_device_descriptor_s 0 13645 NULL
152758 +enable_so_x_drm_vmw_rect_13648 x drm_vmw_rect 0 13648 NULL
152759 +enable_so_unicast_mac_count_be_nic_res_desc_13650 unicast_mac_count be_nic_res_desc 0 13650 NULL
152760 +enable_so_page_len_xdr_buf_13652 page_len xdr_buf 0 13652 NULL
152761 +enable_so_iwl_mvm_hwrate_to_tx_rate_fndecl_13658 iwl_mvm_hwrate_to_tx_rate fndecl 1 13658 NULL nohasharray
152762 +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
152763 +enable_so_width_s2255_vc_13661 width s2255_vc 0 13661 NULL
152764 +enable_so_length_rbd_img_request_13674 length rbd_img_request 0 13674 NULL nohasharray
152765 +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
152766 +enable_so_vsync_psb_pipe_13675 vsync psb_pipe 0 13675 NULL
152767 +enable_so_virtscsi_change_queue_depth_fndecl_13676 virtscsi_change_queue_depth fndecl 2 13676 NULL
152768 +enable_so_fixup_pmc551_fndecl_13679 fixup_pmc551 fndecl 0 13679 NULL nohasharray
152769 +enable_so_mpls_rt_alloc_fndecl_13679 mpls_rt_alloc fndecl 1 13679 &enable_so_fixup_pmc551_fndecl_13679
152770 +enable_so_nfc_hci_send_cmd_async_fndecl_13680 nfc_hci_send_cmd_async fndecl 5 13680 NULL
152771 +enable_so_receive_big_fndecl_13686 receive_big fndecl 5 13686 NULL
152772 +enable_so_writing_osst_buffer_13689 writing osst_buffer 0 13689 NULL
152773 +enable_so_lo_hi_readq_fndecl_13693 lo_hi_readq fndecl 0 13693 NULL
152774 +enable_so_w_align_bdisp_fmt_13694 w_align bdisp_fmt 0 13694 NULL
152775 +enable_so_hpfs_free_sectors_fndecl_13696 hpfs_free_sectors fndecl 3 13696 NULL
152776 +enable_so_prev_rs_tgg_il3945_rate_info_13697 prev_rs_tgg il3945_rate_info 0 13697 NULL
152777 +enable_so_skb_size_qlcnic_host_rds_ring_13698 skb_size qlcnic_host_rds_ring 0 13698 NULL
152778 +enable_so_resize_platform_label_table_fndecl_13711 resize_platform_label_table fndecl 2 13711 NULL
152779 +enable_so_bos_desc_fndecl_13715 bos_desc fndecl 0 13715 NULL
152780 +enable_so_valuelen_lo_extended_attribute_13722 valuelen_lo extended_attribute 0 13722 NULL
152781 +enable_so_wsm_buf_reserve_fndecl_13730 wsm_buf_reserve fndecl 2 13730 NULL
152782 +enable_so_channels_max_snd_soc_pcm_stream_13737 channels_max snd_soc_pcm_stream 0 13737 NULL nohasharray
152783 +enable_so_mfd_add_device_fndecl_13737 mfd_add_device fndecl 6-2 13737 &enable_so_channels_max_snd_soc_pcm_stream_13737
152784 +enable_so_shdma_prep_dma_cyclic_fndecl_13739 shdma_prep_dma_cyclic fndecl 4-2-3 13739 NULL
152785 +enable_so_nr_segments_vscsiif_request_13741 nr_segments vscsiif_request 0 13741 NULL nohasharray
152786 +enable_so_pof_write_buffer_fndecl_13741 pof_write_buffer fndecl 0 13741 &enable_so_nr_segments_vscsiif_request_13741
152787 +enable_so_len_tcf_em_nbyte_13742 len tcf_em_nbyte 0 13742 NULL
152788 +enable_so_cipso_v4_genopt_fndecl_13743 cipso_v4_genopt fndecl 0 13743 NULL nohasharray
152789 +enable_so_write_pipe_ezusb_priv_13743 write_pipe ezusb_priv 0 13743 &enable_so_cipso_v4_genopt_fndecl_13743
152790 +enable_so_level_guest_walker32_13749 level guest_walker32 0 13749 NULL
152791 +enable_so_qlcnic_alloc_sds_rings_fndecl_13752 qlcnic_alloc_sds_rings fndecl 2 13752 NULL
152792 +enable_so_compat_sys_recv_fndecl_13753 compat_sys_recv fndecl 3 13753 NULL
152793 +enable_so_length_core_conn_create_data_13754 length core_conn_create_data 0 13754 NULL nohasharray
152794 +enable_so_numrx_velocity_opt_13754 numrx velocity_opt 0 13754 &enable_so_length_core_conn_create_data_13754
152795 +enable_so_i_pino_f2fs_inode_13756 i_pino f2fs_inode 0 13756 NULL
152796 +enable_so_slgt_compat_ioctl_fndecl_13761 slgt_compat_ioctl fndecl 3 13761 NULL nohasharray
152797 +enable_so_xfs_alloc_pagf_init_fndecl_13761 xfs_alloc_pagf_init fndecl 3 13761 &enable_so_slgt_compat_ioctl_fndecl_13761
152798 +enable_so_encrypt_headroom_ieee80211_sub_if_data_13764 encrypt_headroom ieee80211_sub_if_data 0 13764 NULL
152799 +enable_so_ar5523_cmd_read_fndecl_13766 ar5523_cmd_read fndecl 4 13766 NULL
152800 +enable_so_len_nci_set_config_param_13768 len nci_set_config_param 0 13768 NULL
152801 +enable_so_ecryptfs_miscdev_write_fndecl_13772 ecryptfs_miscdev_write fndecl 3 13772 NULL
152802 +enable_so_do_tcp_rcv_fndecl_13775 do_tcp_rcv fndecl 3 13775 NULL
152803 +enable_so_check_extent_to_block_fndecl_13780 check_extent_to_block fndecl 2-3 13780 NULL
152804 +enable_so_ue_size_asd_bios_chim_struct_13782 ue_size asd_bios_chim_struct 0 13782 NULL
152805 +enable_so_usbhs_dma_calc_received_size_fndecl_13783 usbhs_dma_calc_received_size fndecl 0-3 13783 NULL
152806 +enable_so_build_data_key_fndecl_13784 build_data_key fndecl 2 13784 NULL
152807 +enable_so_iwl_trans_read_mem32_fndecl_13786 iwl_trans_read_mem32 fndecl 0 13786 NULL
152808 +enable_so_ept_get_level1_sp_gpa_fndecl_13788 ept_get_level1_sp_gpa fndecl 0 13788 NULL nohasharray
152809 +enable_so_inbufBits_bunzip_data_13788 inbufBits bunzip_data 0 13788 &enable_so_ept_get_level1_sp_gpa_fndecl_13788
152810 +enable_so_smk_write_load_fndecl_13790 smk_write_load fndecl 3 13790 NULL
152811 +enable_so_num_channels_xilly_endpoint_13791 num_channels xilly_endpoint 0 13791 NULL
152812 +enable_so_tipc_conn_sendmsg_fndecl_13792 tipc_conn_sendmsg fndecl 5 13792 NULL
152813 +enable_so_reply_sz__MPT_ADAPTER_13794 reply_sz _MPT_ADAPTER 0 13794 NULL
152814 +enable_so_num_fcoe_msix_i40e_pf_13802 num_fcoe_msix i40e_pf 0 13802 NULL
152815 +enable_so_ath6kl_create_qos_write_fndecl_13804 ath6kl_create_qos_write fndecl 3 13804 NULL
152816 +enable_so_send_mesg_maxlen_netns_ipvs_13807 send_mesg_maxlen netns_ipvs 0 13807 NULL
152817 +enable_so_gx_frame_buffer_size_fndecl_13808 gx_frame_buffer_size fndecl 0 13808 NULL
152818 +enable_so_fifo_size_sram_channel_13811 fifo_size sram_channel 0 13811 NULL
152819 +enable_so_shared_kmem_cache_13812 shared kmem_cache 0 13812 NULL
152820 +enable_so_fifo_depth_fsl_ssi_private_13814 fifo_depth fsl_ssi_private 0 13814 NULL
152821 +enable_so_den_min_snd_ratnum_13815 den_min snd_ratnum 0 13815 NULL
152822 +enable_so_offset_nvkm_mm_node_13817 offset nvkm_mm_node 0 13817 NULL
152823 +enable_so_rt6i_nfheader_len_rt6_info_13820 rt6i_nfheader_len rt6_info 0 13820 NULL
152824 +enable_so_phys_pte_init_fndecl_13824 phys_pte_init fndecl 0-2-3 13824 NULL nohasharray
152825 +enable_so_seq_read_fndecl_13824 seq_read fndecl 3 13824 &enable_so_phys_pte_init_fndecl_13824
152826 +enable_so_brcmf_sdio_firmware_callback_fndecl_13829 brcmf_sdio_firmware_callback fndecl 4 13829 NULL
152827 +enable_so_ib_dma_map_sg_fndecl_13830 ib_dma_map_sg fndecl 0 13830 NULL
152828 +enable_so_logical_offset_btrfs_dio_private_13833 logical_offset btrfs_dio_private 0 13833 NULL
152829 +enable_so_acpi_os_get_root_pointer_fndecl_13835 acpi_os_get_root_pointer fndecl 0 13835 NULL nohasharray
152830 +enable_so_ieee80211_if_read_smps_fndecl_13835 ieee80211_if_read_smps fndecl 3 13835 &enable_so_acpi_os_get_root_pointer_fndecl_13835
152831 +enable_so_cypress_write_fndecl_13836 cypress_write fndecl 4 13836 NULL
152832 +enable_so_ceph_fallocate_fndecl_13837 ceph_fallocate fndecl 4-3 13837 NULL
152833 +enable_so_nr_vecs_biovec_slab_13838 nr_vecs biovec_slab 0 13838 NULL
152834 +enable_so_init_memory_mapping_fndecl_13840 init_memory_mapping fndecl 2-0-1 13840 NULL
152835 +enable_so_port_pio_base_ipath_portdata_13851 port_pio_base ipath_portdata 0 13851 NULL
152836 +enable_so_resize_user_fndecl_13857 resize_user fndecl 3 13857 NULL
152837 +enable_so_sddr09_read_data_fndecl_13860 sddr09_read_data fndecl 3-2 13860 NULL
152838 +enable_so_starting_offset_mpt3_diag_read_buffer_13869 starting_offset mpt3_diag_read_buffer 0 13869 NULL
152839 +enable_so_pack_sg_list_fndecl_13874 pack_sg_list fndecl 5 13874 NULL
152840 +enable_so_front_len_ceph_msg_header_13876 front_len ceph_msg_header 0 13876 NULL
152841 +enable_so_gfs2_add_jextent_fndecl_13879 gfs2_add_jextent fndecl 2-3 13879 NULL
152842 +enable_so_analog_ep_bulk_em28xx_13880 analog_ep_bulk em28xx 0 13880 NULL
152843 +enable_so_layers_idr_13889 layers idr 0 13889 NULL
152844 +enable_so_cblock_per_bio_data_13894 cblock per_bio_data 0 13894 NULL
152845 +enable_so_s_ncg_ufs_sb_private_info_13899 s_ncg ufs_sb_private_info 0 13899 NULL nohasharray
152846 +enable_so_rlen_cm4000_dev_13899 rlen cm4000_dev 0 13899 &enable_so_s_ncg_ufs_sb_private_info_13899
152847 +enable_so_hold_inflate_state_13902 hold inflate_state 0 13902 NULL
152848 +enable_so_ep93xx_spi_chip_setup_fndecl_13909 ep93xx_spi_chip_setup fndecl 0 13909 NULL
152849 +enable_so_size_qlcnic_83xx_dump_template_hdr_13912 size qlcnic_83xx_dump_template_hdr 0 13912 NULL
152850 +enable_so_pio_base_qib_ctxtdata_13913 pio_base qib_ctxtdata 0 13913 NULL
152851 +enable_so_wm_coeff_parse_int_fndecl_13918 wm_coeff_parse_int fndecl 0 13918 NULL
152852 +enable_so_ipr_max_devs_vardecl_ipr_c_13921 ipr_max_devs vardecl_ipr.c 0 13921 NULL nohasharray
152853 +enable_so_trips_thermal_zone_device_13921 trips thermal_zone_device 0 13921 &enable_so_ipr_max_devs_vardecl_ipr_c_13921
152854 +enable_so_vt_block_vxfs_typed_13924 vt_block vxfs_typed 0 13924 NULL
152855 +enable_so_garmin_read_process_fndecl_13926 garmin_read_process fndecl 3 13926 NULL
152856 +enable_so_unix_stream_read_actor_fndecl_13931 unix_stream_read_actor fndecl 2-3 13931 NULL
152857 +enable_so_s_firstdatazone_minix_sb_info_13932 s_firstdatazone minix_sb_info 0 13932 NULL
152858 +enable_so_hcd_buffer_alloc_fndecl_13940 hcd_buffer_alloc fndecl 2 13940 NULL
152859 +enable_so_img_IMEM_size_fw_hdr_13961 img_IMEM_size fw_hdr 0 13961 NULL
152860 +enable_so_start_ubifs_bud_13964 start ubifs_bud 0 13964 NULL
152861 +enable_so_u132_hcd_configure_input_recv_fndecl_13969 u132_hcd_configure_input_recv fndecl 4 13969 NULL
152862 +enable_so_nla_append_fndecl_13971 nla_append fndecl 2 13971 NULL
152863 +enable_so_ib_copy_to_udata_fndecl_13974 ib_copy_to_udata fndecl 3 13974 NULL
152864 +enable_so_yres_panel_info_13976 yres panel_info 0 13976 NULL
152865 +enable_so_e_phnum_elf32_hdr_13980 e_phnum elf32_hdr 0 13980 NULL
152866 +enable_so_isdn_tty_handleDLEdown_fndecl_13981 isdn_tty_handleDLEdown fndecl 0 13981 NULL
152867 +enable_so_SyS_fgetxattr_fndecl_13984 SyS_fgetxattr fndecl 4 13984 NULL
152868 +enable_so_syslog_partial_vardecl_printk_c_13985 syslog_partial vardecl_printk.c 0 13985 NULL
152869 +enable_so_rd_size_uhid_device_13986 rd_size uhid_device 0 13986 NULL
152870 +enable_so_rs_move_siso_to_other_fndecl_13987 rs_move_siso_to_other fndecl 5 13987 NULL
152871 +enable_so_libipw_alloc_txb_fndecl_13992 libipw_alloc_txb fndecl 3-2-1 13992 NULL
152872 +enable_so_size_urb_list_13995 size urb_list 0 13995 NULL
152873 +enable_so_ath10k_mac_hw_rate_to_idx_fndecl_13998 ath10k_mac_hw_rate_to_idx fndecl 0 13998 NULL
152874 +enable_so_pnp_add_io_resource_fndecl_14000 pnp_add_io_resource fndecl 3-2 14000 NULL
152875 +enable_so_nilfs_read_super_root_block_fndecl_14003 nilfs_read_super_root_block fndecl 2 14003 NULL nohasharray
152876 +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
152877 +enable_so_wanted_disk_byte___prelim_ref_14003 wanted_disk_byte __prelim_ref 0 14003 &enable_so_blkno_xfs_da_state_blk_14003 nohasharray
152878 +enable_so_i_len_xfs_log_iovec_14003 i_len xfs_log_iovec 0 14003 &enable_so_wanted_disk_byte___prelim_ref_14003
152879 +enable_so_buffer_top_vardecl_nm256_c_14008 buffer_top vardecl_nm256.c 0 14008 NULL
152880 +enable_so_n_phy_mvs_chip_info_14009 n_phy mvs_chip_info 0 14009 NULL
152881 +enable_so_ino_logfs_transaction_14011 ino logfs_transaction 0 14011 NULL nohasharray
152882 +enable_so_batadv_socket_add_packet_fndecl_14011 batadv_socket_add_packet fndecl 3 14011 &enable_so_ino_logfs_transaction_14011
152883 +enable_so_e820_update_range_saved_fndecl_14017 e820_update_range_saved fndecl 1-2 14017 NULL
152884 +enable_so_btrfs_find_create_tree_block_fndecl_14018 btrfs_find_create_tree_block fndecl 2 14018 NULL
152885 +enable_so_nct6775_find_fndecl_14019 nct6775_find fndecl 0 14019 NULL
152886 +enable_so_security_enabled_ieee802154_hdr_fc_14024 security_enabled ieee802154_hdr_fc 0 14024 NULL
152887 +enable_so_sensor_framerate_go7007_14025 sensor_framerate go7007 0 14025 NULL
152888 +enable_so_mst_offs_ubifs_info_14045 mst_offs ubifs_info 0 14045 NULL
152889 +enable_so_descriptors_per_page__drm_via_sg_info_14046 descriptors_per_page _drm_via_sg_info 0 14046 NULL
152890 +enable_so_zlib_deflateInit2_fndecl_14048 zlib_deflateInit2 fndecl 5-4 14048 NULL
152891 +enable_so_nr_perf_callchain_entry_14049 nr perf_callchain_entry 0 14049 NULL
152892 +enable_so_xdr_shift_buf_fndecl_14055 xdr_shift_buf fndecl 2 14055 NULL nohasharray
152893 +enable_so_drbd_recv_fndecl_14055 drbd_recv fndecl 3-0 14055 &enable_so_xdr_shift_buf_fndecl_14055 nohasharray
152894 +enable_so_C_SYSC_mbind_fndecl_14055 C_SYSC_mbind fndecl 5 14055 &enable_so_drbd_recv_fndecl_14055
152895 +enable_so_ext3_xattr_set_handle_fndecl_14056 ext3_xattr_set_handle fndecl 6 14056 NULL nohasharray
152896 +enable_so_add_new_gdb_fndecl_14056 add_new_gdb fndecl 3 14056 &enable_so_ext3_xattr_set_handle_fndecl_14056
152897 +enable_so_ocfs2_xattr_ibody_get_fndecl_14057 ocfs2_xattr_ibody_get fndecl 0 14057 NULL nohasharray
152898 +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
152899 +enable_so_read_flush_procfs_fndecl_14057 read_flush_procfs fndecl 3 14057 &enable_so_nl80211_send_connect_result_fndecl_14057
152900 +enable_so_btrfs_fallocate_fndecl_14060 btrfs_fallocate fndecl 3-4 14060 NULL
152901 +enable_so_mgmt_device_connected_fndecl_14065 mgmt_device_connected fndecl 5 14065 NULL nohasharray
152902 +enable_so_entry_number_user_desc_14065 entry_number user_desc 0 14065 &enable_so_mgmt_device_connected_fndecl_14065
152903 +enable_so_cyttsp_spi_write_block_data_fndecl_14068 cyttsp_spi_write_block_data fndecl 4 14068 NULL
152904 +enable_so_msg_len_dvb_diseqc_slave_reply_14073 msg_len dvb_diseqc_slave_reply 0 14073 NULL
152905 +enable_so_end_switchdev_vlan_dump_14086 end switchdev_vlan_dump 0 14086 NULL
152906 +enable_so_sh_msiof_dma_once_fndecl_14090 sh_msiof_dma_once fndecl 4 14090 NULL nohasharray
152907 +enable_so_filemark_cnt_os_aux_s_14090 filemark_cnt os_aux_s 0 14090 &enable_so_sh_msiof_dma_once_fndecl_14090
152908 +enable_so_phantom_major_vardecl_phantom_c_14093 phantom_major vardecl_phantom.c 0 14093 NULL
152909 +enable_so_snd_compr_calc_avail_fndecl_14094 snd_compr_calc_avail fndecl 0 14094 NULL
152910 +enable_so___ext4_handle_dirty_metadata_fndecl_14098 __ext4_handle_dirty_metadata fndecl 0 14098 NULL
152911 +enable_so_last_rate_n_flags_iwl_lq_sta_14099 last_rate_n_flags iwl_lq_sta 0 14099 NULL
152912 +enable_so_btmrvl_hscfgcmd_write_fndecl_14100 btmrvl_hscfgcmd_write fndecl 3 14100 NULL
152913 +enable_so_data_len_vscsibk_pend_14106 data_len vscsibk_pend 0 14106 NULL
152914 +enable_so_wil_write_file_wmi_fndecl_14109 wil_write_file_wmi fndecl 3 14109 NULL
152915 +enable_so_elem_size_xdr_array2_desc_14114 elem_size xdr_array2_desc 0 14114 NULL
152916 +enable_so_hfs_direct_IO_fndecl_14120 hfs_direct_IO fndecl 3 14120 NULL
152917 +enable_so_adaption_gsm_dlci_14123 adaption gsm_dlci 0 14123 NULL
152918 +enable_so_size_mlx4_en_rx_ring_14125 size mlx4_en_rx_ring 0 14125 NULL
152919 +enable_so_efd_count_ext4_free_data_14128 efd_count ext4_free_data 0 14128 NULL
152920 +enable_so_i2400m_net_rx_fndecl_14129 i2400m_net_rx fndecl 5 14129 NULL
152921 +enable_so_size_uhid_input2_req_14140 size uhid_input2_req 0 14140 NULL nohasharray
152922 +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
152923 +enable_so_cros_ec_spi_receive_packet_fndecl_14142 cros_ec_spi_receive_packet fndecl 2 14142 NULL
152924 +enable_so_dqi_entry_size_qtree_mem_dqinfo_14150 dqi_entry_size qtree_mem_dqinfo 0 14150 NULL
152925 +enable_so_short_len_fat_ioctl_filldir_callback_14151 short_len fat_ioctl_filldir_callback 0 14151 NULL
152926 +enable_so_page_size_at24_platform_data_14152 page_size at24_platform_data 0 14152 NULL
152927 +enable_so_svcxdr_tmpalloc_fndecl_14154 svcxdr_tmpalloc fndecl 2 14154 NULL nohasharray
152928 +enable_so_write_kmem_fndecl_14154 write_kmem fndecl 3 14154 &enable_so_svcxdr_tmpalloc_fndecl_14154 nohasharray
152929 +enable_so_num_ratios_coreclk_soc_desc_14154 num_ratios coreclk_soc_desc 0 14154 &enable_so_write_kmem_fndecl_14154
152930 +enable_so_range_min_regmap_range_node_14166 range_min regmap_range_node 0 14166 NULL
152931 +enable_so_ocfs2_read_blocks_sync_fndecl_14169 ocfs2_read_blocks_sync fndecl 2 14169 NULL
152932 +enable_so_cmd_len_scsi_cmnd_14171 cmd_len scsi_cmnd 0 14171 NULL
152933 +enable_so_ath6kl_wmi_sync_point_fndecl_14172 ath6kl_wmi_sync_point fndecl 2 14172 NULL
152934 +enable_so_len_hermes_idstring_14173 len hermes_idstring 0 14173 NULL
152935 +enable_so_brcmf_usb_recv_ctl_fndecl_14174 brcmf_usb_recv_ctl fndecl 3 14174 NULL
152936 +enable_so___conn_send_command_fndecl_14180 __conn_send_command fndecl 4-6 14180 NULL
152937 +enable_so_curr_tx_buf_size_mwifiex_adapter_14186 curr_tx_buf_size mwifiex_adapter 0 14186 NULL
152938 +enable_so_cfpkt_add_trail_fndecl_14191 cfpkt_add_trail fndecl 3 14191 NULL
152939 +enable_so_rxrpc_request_key_fndecl_14192 rxrpc_request_key fndecl 3 14192 NULL
152940 +enable_so_uvc_fraction_to_interval_fndecl_14194 uvc_fraction_to_interval fndecl 0-2-1 14194 NULL
152941 +enable_so_offset_iscsi_datain_14195 offset iscsi_datain 0 14195 NULL
152942 +enable_so_middle_len_ceph_msg_header_14196 middle_len ceph_msg_header 0 14196 NULL
152943 +enable_so_len_hv_multipage_buffer_14208 len hv_multipage_buffer 0 14208 NULL nohasharray
152944 +enable_so_get_rx_fifo_content_fndecl_14208 get_rx_fifo_content fndecl 0 14208 &enable_so_len_hv_multipage_buffer_14208
152945 +enable_so_num_ports_mlx4_func_cap_14214 num_ports mlx4_func_cap 0 14214 NULL
152946 +enable_so_cmd_bounce_size_vmw_sw_context_14217 cmd_bounce_size vmw_sw_context 0 14217 NULL
152947 +enable_so_num_gsm_mux_14221 num gsm_mux 0 14221 NULL
152948 +enable_so_e1000_copybreak_fndecl_14223 e1000_copybreak fndecl 3 14223 NULL
152949 +enable_so_hpfs_remove_dtree_fndecl_14224 hpfs_remove_dtree fndecl 2 14224 NULL
152950 +enable_so_hw_token_fotg210_qtd_14233 hw_token fotg210_qtd 0 14233 NULL
152951 +enable_so_comedi_alloc_devpriv_fndecl_14235 comedi_alloc_devpriv fndecl 2 14235 NULL
152952 +enable_so_usb_submit_urb_fndecl_14237 usb_submit_urb fndecl 0 14237 NULL
152953 +enable_so_create_lease_size_smb_version_values_14240 create_lease_size smb_version_values 0 14240 NULL
152954 +enable_so_ath6kl_wmi_test_cmd_fndecl_14243 ath6kl_wmi_test_cmd fndecl 3 14243 NULL nohasharray
152955 +enable_so_virtqueue_add_inbuf_fndecl_14243 virtqueue_add_inbuf fndecl 3 14243 &enable_so_ath6kl_wmi_test_cmd_fndecl_14243
152956 +enable_so_write_buf_fndecl_14247 write_buf fndecl 3-0 14247 NULL
152957 +enable_so_cy8ctmg110_read_regs_fndecl_14259 cy8ctmg110_read_regs fndecl 3 14259 NULL nohasharray
152958 +enable_so_octeon_allocate_device_mem_fndecl_14259 octeon_allocate_device_mem fndecl 2 14259 &enable_so_cy8ctmg110_read_regs_fndecl_14259 nohasharray
152959 +enable_so___wmi_send_fndecl_14259 __wmi_send fndecl 4 14259 &enable_so_octeon_allocate_device_mem_fndecl_14259
152960 +enable_so_size_drm_scatter_gather_14264 size drm_scatter_gather 0 14264 NULL
152961 +enable_so_copy_from_buf_fndecl_14271 copy_from_buf fndecl 2-4 14271 NULL
152962 +enable_so_afs_cell_create_fndecl_14273 afs_cell_create fndecl 2 14273 NULL
152963 +enable_so_nilfs_sufile_block_get_segment_usage_fndecl_14278 nilfs_sufile_block_get_segment_usage fndecl 2 14278 NULL
152964 +enable_so_transfer_spi_master_14283 transfer spi_master 0 14283 NULL nohasharray
152965 +enable_so_rds_iw_ring_resize_fndecl_14283 rds_iw_ring_resize fndecl 2 14283 &enable_so_transfer_spi_master_14283
152966 +enable_so_pmtu_qib_qp_14287 pmtu qib_qp 0 14287 NULL
152967 +enable_so_req_lim_delta_srp_aer_req_14289 req_lim_delta srp_aer_req 0 14289 NULL
152968 +enable_so_snd_pcm_oss_write2_fndecl_14295 snd_pcm_oss_write2 fndecl 3-0 14295 NULL
152969 +enable_so_yscroll_display_14301 yscroll display 0 14301 NULL
152970 +enable_so_size_ldt_struct_14303 size ldt_struct 0 14303 NULL
152971 +enable_so_dbg_fixed_rate_il_lq_sta_14306 dbg_fixed_rate il_lq_sta 0 14306 NULL
152972 +enable_so_outdiv_fll_div_14312 outdiv fll_div 0 14312 NULL
152973 +enable_so_scif_p2p_setsg_fndecl_14314 scif_p2p_setsg fndecl 2-3 14314 NULL
152974 +enable_so_iwl_dbgfs_csr_write_fndecl_14320 iwl_dbgfs_csr_write fndecl 3 14320 NULL
152975 +enable_so_nilfs_ilookup_fndecl_14324 nilfs_ilookup fndecl 3 14324 NULL
152976 +enable_so_gfn_kvm_mmu_page_14326 gfn kvm_mmu_page 0 14326 NULL
152977 +enable_so_pcbit_stat_fndecl_14327 pcbit_stat fndecl 2 14327 NULL
152978 +enable_so_ath6kl_wmi_ap_profile_commit_fndecl_14329 ath6kl_wmi_ap_profile_commit fndecl 2 14329 NULL
152979 +enable_so_data_offset_md_rdev_14330 data_offset md_rdev 0 14330 NULL
152980 +enable_so_pasid_limit_vardecl_kfd_pasid_c_14334 pasid_limit vardecl_kfd_pasid.c 0 14334 NULL
152981 +enable_so_mask_myri10ge_rx_buf_14339 mask myri10ge_rx_buf 0 14339 NULL
152982 +enable_so_loop_start_patch_info_14350 loop_start patch_info 0 14350 NULL
152983 +enable_so_vnet_hdr_sz_macvtap_queue_14351 vnet_hdr_sz macvtap_queue 0 14351 NULL nohasharray
152984 +enable_so_ath6kl_regread_read_fndecl_14351 ath6kl_regread_read fndecl 3 14351 &enable_so_vnet_hdr_sz_macvtap_queue_14351
152985 +enable_so_do_sys_truncate_fndecl_14355 do_sys_truncate fndecl 2 14355 NULL
152986 +enable_so_current_committed_pstore_14356 current_committed pstore 0 14356 NULL
152987 +enable_so_start_section_nr_memory_block_14358 start_section_nr memory_block 0 14358 NULL
152988 +enable_so_blkno_attrlist_cursor_kern_14361 blkno attrlist_cursor_kern 0 14361 NULL
152989 +enable_so_num_vqs_virtio_blk_14363 num_vqs virtio_blk 0 14363 NULL
152990 +enable_so_size_set_mib_buffer_14366 size set_mib_buffer 0 14366 NULL
152991 +enable_so_do_jffs2_setxattr_fndecl_14373 do_jffs2_setxattr fndecl 5 14373 NULL nohasharray
152992 +enable_so_dm_bufio_get_fndecl_14373 dm_bufio_get fndecl 2 14373 &enable_so_do_jffs2_setxattr_fndecl_14373 nohasharray
152993 +enable_so_max_tokens_iw_ioctl_description_14373 max_tokens iw_ioctl_description 0 14373 &enable_so_dm_bufio_get_fndecl_14373
152994 +enable_so_nvme_trans_mode_page_create_fndecl_14375 nvme_trans_mode_page_create fndecl 7-4 14375 NULL
152995 +enable_so_length_scsiif_request_segment_14376 length scsiif_request_segment 0 14376 NULL
152996 +enable_so_start_extent_map_14377 start extent_map 0 14377 NULL nohasharray
152997 +enable_so_ahd_linux_user_tagdepth_fndecl_14377 ahd_linux_user_tagdepth fndecl 0 14377 &enable_so_start_extent_map_14377
152998 +enable_so_rcname_read_fndecl_14380 rcname_read fndecl 3 14380 NULL
152999 +enable_so_num_phys__sas_node_14384 num_phys _sas_node 0 14384 NULL
153000 +enable_so_word15_lpfc_mbx_read_config_14387 word15 lpfc_mbx_read_config 0 14387 NULL
153001 +enable_so_dma_in_iguanair_14391 dma_in iguanair 0 14391 NULL
153002 +enable_so_sisusbcon_scroll_area_fndecl_14392 sisusbcon_scroll_area fndecl 3-4 14392 NULL
153003 +enable_so_run_delalloc_nocow_fndecl_14395 run_delalloc_nocow fndecl 3-4 14395 NULL
153004 +enable_so_ssize_usbat_info_14405 ssize usbat_info 0 14405 NULL
153005 +enable_so_jffs2_add_physical_node_ref_fndecl_14406 jffs2_add_physical_node_ref fndecl 3-2 14406 NULL
153006 +enable_so_vmcb_iopm_nested_state_14411 vmcb_iopm nested_state 0 14411 NULL
153007 +enable_so_crtc_hblank_start_drm_display_mode_14412 crtc_hblank_start drm_display_mode 0 14412 NULL nohasharray
153008 +enable_so_min_snd_interval_14412 min snd_interval 0 14412 &enable_so_crtc_hblank_start_drm_display_mode_14412 nohasharray
153009 +enable_so_rl_space_gfs2_rgrp_list_14412 rl_space gfs2_rgrp_list 0 14412 &enable_so_min_snd_interval_14412
153010 +enable_so_num_channels_hsi_config_14414 num_channels hsi_config 0 14414 NULL
153011 +enable_so_max_ep_fsl_udc_14417 max_ep fsl_udc 0 14417 NULL
153012 +enable_so_bigdirlen_adfs_bigdirentry_14420 bigdirlen adfs_bigdirentry 0 14420 NULL
153013 +enable_so_key_flags_read_fndecl_14424 key_flags_read fndecl 3 14424 NULL
153014 +enable_so_snd_es1938_capture_copy_fndecl_14425 snd_es1938_capture_copy fndecl 5 14425 NULL
153015 +enable_so_xlog_recover_process_one_iunlink_fndecl_14426 xlog_recover_process_one_iunlink fndecl 3-2 14426 NULL
153016 +enable_so_offset_brcmf_vndr_dcmd_hdr_14440 offset brcmf_vndr_dcmd_hdr 0 14440 NULL
153017 +enable_so_fimc_adjust_mplane_format_fndecl_14442 fimc_adjust_mplane_format fndecl 2-3 14442 NULL
153018 +enable_so_flush_fndecl_14454 flush fndecl 2 14454 NULL
153019 +enable_so_size_dictionary_14455 size dictionary 0 14455 NULL
153020 +enable_so_residual_data_length_pmcraid_ioasa_14459 residual_data_length pmcraid_ioasa 0 14459 NULL
153021 +enable_so__regmap_multi_reg_write_fndecl_14460 _regmap_multi_reg_write fndecl 3 14460 NULL nohasharray
153022 +enable_so_ravb_hwtstamp_set_fndecl_14460 ravb_hwtstamp_set fndecl 0 14460 &enable_so__regmap_multi_reg_write_fndecl_14460
153023 +enable_so_skb_to_sgvec_nomark_fndecl_14461 skb_to_sgvec_nomark fndecl 4-3 14461 NULL
153024 +enable_so_data_inp_ep_vub300_mmc_host_14468 data_inp_ep vub300_mmc_host 0 14468 NULL nohasharray
153025 +enable_so_cfs_hash_create_fndecl_14468 cfs_hash_create fndecl 4-2-5 14468 &enable_so_data_inp_ep_vub300_mmc_host_14468
153026 +enable_so_sel_end_vardecl_selection_c_14469 sel_end vardecl_selection.c 0 14469 NULL
153027 +enable_so_ntfs_sync_mft_mirror_fndecl_14470 ntfs_sync_mft_mirror fndecl 2 14470 NULL
153028 +enable_so_lpfc_sli_probe_sriov_nr_virtfn_fndecl_14471 lpfc_sli_probe_sriov_nr_virtfn fndecl 2 14471 NULL
153029 +enable_so_num_chn_netvsc_device_14475 num_chn netvsc_device 0 14475 NULL nohasharray
153030 +enable_so_rdmarc_entry_sz_mlx4_dev_cap_14475 rdmarc_entry_sz mlx4_dev_cap 0 14475 &enable_so_num_chn_netvsc_device_14475
153031 +enable_so_groups_netlink_table_14476 groups netlink_table 0 14476 NULL
153032 +enable_so_t1_change_mtu_fndecl_14478 t1_change_mtu fndecl 2 14478 NULL
153033 +enable_so_udp_setsockopt_fndecl_14482 udp_setsockopt fndecl 5 14482 NULL
153034 +enable_so_rx_unit_if_sdio_card_14483 rx_unit if_sdio_card 0 14483 NULL
153035 +enable_so_ntfs_perform_write_fndecl_14496 ntfs_perform_write fndecl 3-0 14496 NULL
153036 +enable_so_btrfs_lookup_bio_sums_dio_fndecl_14498 btrfs_lookup_bio_sums_dio fndecl 4 14498 NULL
153037 +enable_so_gsm_control_send_fndecl_14499 gsm_control_send fndecl 4 14499 NULL
153038 +enable_so_free_area_init_node_fndecl_14500 free_area_init_node fndecl 3 14500 NULL
153039 +enable_so_selinux_inode_post_setxattr_fndecl_14502 selinux_inode_post_setxattr fndecl 4 14502 NULL
153040 +enable_so_num_vq_mic_device_desc_14503 num_vq mic_device_desc 0 14503 NULL
153041 +enable_so_bnad_q_num_adjust_fndecl_14512 bnad_q_num_adjust fndecl 2 14512 NULL
153042 +enable_so_end_code_mm_struct_14519 end_code mm_struct 0 14519 NULL
153043 +enable_so_memcg_update_all_list_lrus_fndecl_14532 memcg_update_all_list_lrus fndecl 1 14532 NULL
153044 +enable_so_viafb_second_offset_vardecl_viafbdev_c_14533 viafb_second_offset vardecl_viafbdev.c 0 14533 NULL
153045 +enable_so_size_ichxrom_window_14540 size ichxrom_window 0 14540 NULL
153046 +enable_so_len_extent_info_14542 len extent_info 0 14542 NULL
153047 +enable_so_ieee80211_get_hdrlen_from_skb_fndecl_14543 ieee80211_get_hdrlen_from_skb fndecl 0 14543 NULL
153048 +enable_so_ctrl_set_croph_fndecl_14545 ctrl_set_croph fndecl 3 14545 NULL nohasharray
153049 +enable_so_density_scsi_tape_14545 density scsi_tape 0 14545 &enable_so_ctrl_set_croph_fndecl_14545 nohasharray
153050 +enable_so_word17_lpfc_mbx_read_config_14545 word17 lpfc_mbx_read_config 0 14545 &enable_so_density_scsi_tape_14545
153051 +enable_so_snd_ftu_create_effect_switch_fndecl_14546 snd_ftu_create_effect_switch fndecl 3-2 14546 NULL
153052 +enable_so_lsave_cnt_ubifs_info_14547 lsave_cnt ubifs_info 0 14547 NULL
153053 +enable_so_len_btrfsic_block_data_ctx_14548 len btrfsic_block_data_ctx 0 14548 NULL nohasharray
153054 +enable_so_dump_fh_il_ops_14548 dump_fh il_ops 0 14548 &enable_so_len_btrfsic_block_data_ctx_14548
153055 +enable_so___alloc_memory_core_early_fndecl_14550 __alloc_memory_core_early fndecl 3-2-4-5 14550 NULL nohasharray
153056 +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
153057 +enable_so_rn_snamelen_nfsd4_rename_14552 rn_snamelen nfsd4_rename 0 14552 NULL
153058 +enable_so_pri_wm_latency_write_fndecl_14556 pri_wm_latency_write fndecl 3 14556 NULL
153059 +enable_so_keyctl_update_key_fndecl_14558 keyctl_update_key fndecl 3 14558 NULL
153060 +enable_so_set_ep_max_packet_size_fndecl_14569 set_ep_max_packet_size fndecl 3 14569 NULL
153061 +enable_so_data_sector_size_mmc_ext_csd_14571 data_sector_size mmc_ext_csd 0 14571 NULL
153062 +enable_so_buffer_size_ncp_server_14574 buffer_size ncp_server 0 14574 NULL
153063 +enable_so_xfs_bmbt_set_blockcount_fndecl_14577 xfs_bmbt_set_blockcount fndecl 2 14577 NULL
153064 +enable_so_acpi_io_base_intel_pmc_ipc_dev_14580 acpi_io_base intel_pmc_ipc_dev 0 14580 NULL
153065 +enable_so_btrfs_wait_ordered_range_fndecl_14581 btrfs_wait_ordered_range fndecl 2-3 14581 NULL
153066 +enable_so_cur_pos_tegra_slink_data_14583 cur_pos tegra_slink_data 0 14583 NULL
153067 +enable_so_ext2_xattr_trusted_set_fndecl_14586 ext2_xattr_trusted_set fndecl 4 14586 NULL nohasharray
153068 +enable_so_be_length_pnfs_block_extent_14586 be_length pnfs_block_extent 0 14586 &enable_so_ext2_xattr_trusted_set_fndecl_14586
153069 +enable_so_rx_rx_wa_density_dropped_frame_read_fndecl_14588 rx_rx_wa_density_dropped_frame_read fndecl 3 14588 NULL
153070 +enable_so_channel_spacing_adf4350_platform_data_14594 channel_spacing adf4350_platform_data 0 14594 NULL
153071 +enable_so_link_pipe_fndecl_14595 link_pipe fndecl 3 14595 NULL
153072 +enable_so_static_start_pccard_mem_map_14601 static_start pccard_mem_map 0 14601 NULL
153073 +enable_so_proc_coredump_filter_write_fndecl_14602 proc_coredump_filter_write fndecl 3 14602 NULL
153074 +enable_so_nes_netdev_change_mtu_fndecl_14604 nes_netdev_change_mtu fndecl 2 14604 NULL
153075 +enable_so___get_user_pages_fndecl_14607 __get_user_pages fndecl 0-3 14607 NULL nohasharray
153076 +enable_so_befs_utf2nls_fndecl_14607 befs_utf2nls fndecl 3 14607 &enable_so___get_user_pages_fndecl_14607
153077 +enable_so_skb_split_fndecl_14609 skb_split fndecl 3 14609 NULL nohasharray
153078 +enable_so_mqd_size_aligned_kfd_device_info_14609 mqd_size_aligned kfd_device_info 0 14609 &enable_so_skb_split_fndecl_14609
153079 +enable_so_alb_send_lp_vid_fndecl_14613 alb_send_lp_vid fndecl 4 14613 NULL
153080 +enable_so_len_c2_rxp_hdr_14614 len c2_rxp_hdr 0 14614 NULL
153081 +enable_so_recv_bulk_pipe_us_data_14615 recv_bulk_pipe us_data 0 14615 NULL nohasharray
153082 +enable_so_max_sge_isert_conn_14615 max_sge isert_conn 0 14615 &enable_so_recv_bulk_pipe_us_data_14615
153083 +enable_so_ddp_ppod_write_idata_fndecl_14617 ddp_ppod_write_idata fndecl 5 14617 NULL
153084 +enable_so_node_scif_dev_14623 node scif_dev 0 14623 NULL
153085 +enable_so_length_comedi_lrange_14641 length comedi_lrange 0 14641 NULL
153086 +enable_so_SSIDsize_bss_info_14644 SSIDsize bss_info 0 14644 NULL
153087 +enable_so_dln2_gpio_get_pin_count_fndecl_14646 dln2_gpio_get_pin_count fndecl 0 14646 NULL
153088 +enable_so_endpoint_usbdevfs_urb_14649 endpoint usbdevfs_urb 0 14649 NULL
153089 +enable_so_write_dst_fndecl_14653 write_dst fndecl 3 14653 NULL
153090 +enable_so_wNdpOutAlignment_usb_cdc_ncm_ntb_parameters_14656 wNdpOutAlignment usb_cdc_ncm_ntb_parameters 0 14656 NULL
153091 +enable_so_ep_usbip_header_basic_14659 ep usbip_header_basic 0 14659 NULL
153092 +enable_so_interval_solo_enc_dev_14661 interval solo_enc_dev 0 14661 NULL
153093 +enable_so_ext2_try_to_allocate_fndecl_14672 ext2_try_to_allocate fndecl 0-4 14672 NULL
153094 +enable_so_sg_tablesize_usb_bus_14673 sg_tablesize usb_bus 0 14673 NULL
153095 +enable_so_aircable_prepare_write_buffer_fndecl_14678 aircable_prepare_write_buffer fndecl 3 14678 NULL
153096 +enable_so_file_size_squashfs_reg_inode_14679 file_size squashfs_reg_inode 0 14679 NULL
153097 +enable_so_x86_virt_bits_cpuinfo_x86_14680 x86_virt_bits cpuinfo_x86 0 14680 NULL
153098 +enable_so_mtu_vnic_devcmd_notify_14682 mtu vnic_devcmd_notify 0 14682 NULL
153099 +enable_so_lpfc_idiag_cmd_get_fndecl_14683 lpfc_idiag_cmd_get fndecl 2 14683 NULL
153100 +enable_so_rx_queue_entry_next_fndecl_14688 rx_queue_entry_next fndecl 0 14688 NULL
153101 +enable_so_ibmasm_new_command_fndecl_14689 ibmasm_new_command fndecl 2 14689 NULL
153102 +enable_so_max_srq_sge_ib_device_attr_14690 max_srq_sge ib_device_attr 0 14690 NULL
153103 +enable_so_rx_filter_mc_filter_read_fndecl_14691 rx_filter_mc_filter_read fndecl 3 14691 NULL
153104 +enable_so_smt_fill_path_fndecl_14692 smt_fill_path fndecl 0 14692 NULL
153105 +enable_so_ttm_tt_init_fndecl_14694 ttm_tt_init fndecl 3 14694 NULL
153106 +enable_so_num_sizes_vmw_surface_14695 num_sizes vmw_surface 0 14695 NULL
153107 +enable_so_sq_depth_p9_rdma_opts_14698 sq_depth p9_rdma_opts 0 14698 NULL
153108 +enable_so___alloc_bootmem_low_node_fndecl_14701 __alloc_bootmem_low_node fndecl 3-2-4 14701 NULL nohasharray
153109 +enable_so_sel_write_context_fndecl_14701 sel_write_context fndecl 3 14701 &enable_so___alloc_bootmem_low_node_fndecl_14701
153110 +enable_so_set_extent_new_fndecl_14709 set_extent_new fndecl 3-2 14709 NULL
153111 +enable_so_AdapterFibsSize_aac_init_14712 AdapterFibsSize aac_init 0 14712 NULL
153112 +enable_so_ftop_swregs_state_14719 ftop swregs_state 0 14719 NULL
153113 +enable_so_cxgbi_device_portmap_create_fndecl_14720 cxgbi_device_portmap_create fndecl 3 14720 NULL
153114 +enable_so_mmc_spi_data_do_fndecl_14728 mmc_spi_data_do fndecl 4 14728 NULL
153115 +enable_so_get_enc_dpb_count_s5p_mfc_hw_ops_14729 get_enc_dpb_count s5p_mfc_hw_ops 0 14729 NULL
153116 +enable_so_or51132_writebuf_fndecl_14730 or51132_writebuf fndecl 3 14730 NULL
153117 +enable_so_hdrlen_ppp_file_14734 hdrlen ppp_file 0 14734 NULL nohasharray
153118 +enable_so_ath9k_htc_rx_msg_fndecl_14734 ath9k_htc_rx_msg fndecl 3 14734 &enable_so_hdrlen_ppp_file_14734
153119 +enable_so_ext2_find_near_fndecl_14741 ext2_find_near fndecl 0 14741 NULL nohasharray
153120 +enable_so_channels_usb_mixer_elem_info_14741 channels usb_mixer_elem_info 0 14741 &enable_so_ext2_find_near_fndecl_14741
153121 +enable_so_mcs_unwrap_fir_fndecl_14742 mcs_unwrap_fir fndecl 3 14742 NULL
153122 +enable_so_cifs_read_from_socket_fndecl_14743 cifs_read_from_socket fndecl 0-3 14743 NULL
153123 +enable_so_mlx4_alloc_icm_coherent_fndecl_14745 mlx4_alloc_icm_coherent fndecl 3 14745 NULL
153124 +enable_so_short_retry_limit_ipw_priv_14755 short_retry_limit ipw_priv 0 14755 NULL
153125 +enable_so_ivtvfb_prep_frame_fndecl_14770 ivtvfb_prep_frame fndecl 5 14770 NULL
153126 +enable_so_size_snd_seq_pool_14782 size snd_seq_pool 0 14782 NULL
153127 +enable_so_dev_cmd_headroom_iwl_trans_14787 dev_cmd_headroom iwl_trans 0 14787 NULL nohasharray
153128 +enable_so_block_start_deflate_state_14787 block_start deflate_state 0 14787 &enable_so_dev_cmd_headroom_iwl_trans_14787
153129 +enable_so_td_fill_fndecl_14788 td_fill fndecl 3 14788 NULL
153130 +enable_so_brcmf_sdio_verifymemory_fndecl_14795 brcmf_sdio_verifymemory fndecl 4-2 14795 NULL nohasharray
153131 +enable_so_realloc_buffer_fndecl_14795 realloc_buffer fndecl 2 14795 &enable_so_brcmf_sdio_verifymemory_fndecl_14795
153132 +enable_so_mthca_map_user_db_fndecl_14796 mthca_map_user_db fndecl 5 14796 NULL
153133 +enable_so_event_rx_pool_read_fndecl_14803 event_rx_pool_read fndecl 3 14803 NULL
153134 +enable_so_sg_read_fndecl_14804 sg_read fndecl 3 14804 NULL
153135 +enable_so_sb_max_fwd_alloc_hpfs_sb_info_14807 sb_max_fwd_alloc hpfs_sb_info 0 14807 NULL
153136 +enable_so_nr_sectors_fat_floppy_defaults_14809 nr_sectors fat_floppy_defaults 0 14809 NULL
153137 +enable_so_read_fn_xusb_udc_14819 read_fn xusb_udc 0 14819 NULL
153138 +enable_so_fout_arizona_fll_14821 fout arizona_fll 0 14821 NULL
153139 +enable_so_wDescriptorLength_hid_descriptor_14825 wDescriptorLength hid_descriptor 0 14825 NULL
153140 +enable_so_tg3_change_mtu_fndecl_14826 tg3_change_mtu fndecl 2 14826 NULL
153141 +enable_so_parport_read_fndecl_14828 parport_read fndecl 0 14828 NULL
153142 +enable_so_residual_length_response_14830 residual_length response 0 14830 NULL
153143 +enable_so_sis5595_base_vardecl_i2c_sis5595_c_14832 sis5595_base vardecl_i2c-sis5595.c 0 14832 NULL
153144 +enable_so_shift_arg_pages_fndecl_14835 shift_arg_pages fndecl 2 14835 NULL nohasharray
153145 +enable_so_pwr_missing_bcns_read_fndecl_14835 pwr_missing_bcns_read fndecl 3 14835 &enable_so_shift_arg_pages_fndecl_14835
153146 +enable_so_map_len_ssfdcr_record_14843 map_len ssfdcr_record 0 14843 NULL
153147 +enable_so_h_s5p_jpeg_q_data_14846 h s5p_jpeg_q_data 0 14846 NULL
153148 +enable_so_vram_contig_size_vml_info_14851 vram_contig_size vml_info 0 14851 NULL
153149 +enable_so_sample_rate_max_lola_14860 sample_rate_max lola 0 14860 NULL
153150 +enable_so_channels_cea_sad_14862 channels cea_sad 0 14862 NULL
153151 +enable_so_iwl_pcie_alloc_fw_monitor_fndecl_14872 iwl_pcie_alloc_fw_monitor fndecl 2 14872 NULL
153152 +enable_so_threads_mask_netns_ipvs_14873 threads_mask netns_ipvs 0 14873 NULL
153153 +enable_so_inocache_hashsize_jffs2_sb_info_14875 inocache_hashsize jffs2_sb_info 0 14875 NULL
153154 +enable_so_submit_queues_vardecl_null_blk_c_14881 submit_queues vardecl_null_blk.c 0 14881 NULL
153155 +enable_so_pg_first_page_collect_14888 pg_first page_collect 0 14888 NULL
153156 +enable_so_invalidate_inode_pages2_range_fndecl_14896 invalidate_inode_pages2_range fndecl 0-3 14896 NULL
153157 +enable_so_ebcnt_vardecl_pagetest_c_14897 ebcnt vardecl_pagetest.c 0 14897 NULL
153158 +enable_so_crtc_vsync_end_drm_display_mode_14898 crtc_vsync_end drm_display_mode 0 14898 NULL
153159 +enable_so_extent_clear_unlock_delalloc_fndecl_14899 extent_clear_unlock_delalloc fndecl 2-3 14899 NULL nohasharray
153160 +enable_so_nkeys_tc_pedit_sel_14899 nkeys tc_pedit_sel 0 14899 &enable_so_extent_clear_unlock_delalloc_fndecl_14899
153161 +enable_so_len_move_extent_14902 len move_extent 0 14902 NULL
153162 +enable_so_ntty_write_fndecl_14903 ntty_write fndecl 3 14903 NULL
153163 +enable_so_vringh_init_user_fndecl_14905 vringh_init_user fndecl 3 14905 NULL
153164 +enable_so_max_height_vsp1_rwpf_14907 max_height vsp1_rwpf 0 14907 NULL nohasharray
153165 +enable_so_firmware_store_fndecl_14907 firmware_store fndecl 4 14907 &enable_so_max_height_vsp1_rwpf_14907
153166 +enable_so_entry_size_neigh_table_14911 entry_size neigh_table 0 14911 NULL
153167 +enable_so_in_pipe_usbtest_dev_14914 in_pipe usbtest_dev 0 14914 NULL
153168 +enable_so_add_device_fndecl_14915 add_device fndecl 4 14915 NULL
153169 +enable_so_num_mic_vqconfig_14919 num mic_vqconfig 0 14919 NULL
153170 +enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 tx_fifo_size sh_msiof_spi_priv 0 14926 NULL nohasharray
153171 +enable_so_tower_read_fndecl_14926 tower_read fndecl 3 14926 &enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 nohasharray
153172 +enable_so_enc_pools_add_pages_fndecl_14926 enc_pools_add_pages fndecl 1 14926 &enable_so_tower_read_fndecl_14926
153173 +enable_so_e1000_frag_len_fndecl_14930 e1000_frag_len fndecl 0 14930 NULL
153174 +enable_so_at25_bin_read_fndecl_14936 at25_bin_read fndecl 5-6 14936 NULL
153175 +enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938 get_allocated_memblock_reserved_regions_info fndecl 0 14938 NULL nohasharray
153176 +enable_so_pagemap_read_fndecl_14938 pagemap_read fndecl 3 14938 &enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938
153177 +enable_so_decrypted_datalen_encrypted_key_payload_14939 decrypted_datalen encrypted_key_payload 0 14939 NULL
153178 +enable_so_len_hif_scatter_item_14940 len hif_scatter_item 0 14940 NULL
153179 +enable_so_ib_alloc_device_fndecl_14944 ib_alloc_device fndecl 1 14944 NULL
153180 +enable_so_tailout_ignore_xpnet_message_14949 tailout_ignore xpnet_message 0 14949 NULL
153181 +enable_so_ulong_write_file_fndecl_14950 ulong_write_file fndecl 3 14950 NULL
153182 +enable_so_dvb_ca_en50221_io_ioctl_fndecl_14953 dvb_ca_en50221_io_ioctl fndecl 2 14953 NULL
153183 +enable_so_osst_max_sg_segs_vardecl_osst_c_14954 osst_max_sg_segs vardecl_osst.c 0 14954 NULL
153184 +enable_so_bop_lookup_nilfs_bmap_operations_14977 bop_lookup nilfs_bmap_operations 0 14977 NULL
153185 +enable_so_l2cap_build_conf_req_fndecl_14978 l2cap_build_conf_req fndecl 0 14978 NULL
153186 +enable_so_iwl_dbgfs_rf_reset_read_fndecl_14979 iwl_dbgfs_rf_reset_read fndecl 3 14979 NULL
153187 +enable_so_fuse_read_update_size_fndecl_14982 fuse_read_update_size fndecl 2 14982 NULL
153188 +enable_so_icv_len_ieee80211_key_conf_14983 icv_len ieee80211_key_conf 0 14983 NULL
153189 +enable_so_alloc_ep_req_fndecl_14986 alloc_ep_req fndecl 3-2 14986 NULL
153190 +enable_so_uhid_char_write_fndecl_14997 uhid_char_write fndecl 3 14997 NULL
153191 +enable_so_read_vmcore_fndecl_14998 read_vmcore fndecl 3 14998 NULL
153192 +enable_so_vfio_pci_set_msi_trigger_fndecl_15000 vfio_pci_set_msi_trigger fndecl 4-3 15000 NULL
153193 +enable_so_drbd_bm_words_fndecl_15003 drbd_bm_words fndecl 0 15003 NULL nohasharray
153194 +enable_so_length_sge_ieee1212_15003 length sge_ieee1212 0 15003 &enable_so_drbd_bm_words_fndecl_15003
153195 +enable_so_rate_mt7601u_rxwi_15004 rate mt7601u_rxwi 0 15004 NULL
153196 +enable_so_alloc_gtt_mem_fndecl_15005 alloc_gtt_mem fndecl 2 15005 NULL
153197 +enable_so___vhost_add_used_n_fndecl_15017 __vhost_add_used_n fndecl 3 15017 NULL
153198 +enable_so_all_tables_size_vardecl_osl_c_15020 all_tables_size vardecl_osl.c 0 15020 NULL nohasharray
153199 +enable_so_buffers_ivtv_stream_15020 buffers ivtv_stream 0 15020 &enable_so_all_tables_size_vardecl_osl_c_15020
153200 +enable_so_macvtap_do_read_fndecl_15021 macvtap_do_read fndecl 0 15021 NULL
153201 +enable_so_SyS_rt_sigpending_fndecl_15033 SyS_rt_sigpending fndecl 2 15033 NULL
153202 +enable_so_saddr_fsl_edma_hw_tcd_15034 saddr fsl_edma_hw_tcd 0 15034 NULL
153203 +enable_so_num_rar_entries_ixgbe_mac_info_15039 num_rar_entries ixgbe_mac_info 0 15039 NULL
153204 +enable_so_rts51x_read_mem_fndecl_15042 rts51x_read_mem fndecl 4 15042 NULL nohasharray
153205 +enable_so_mpeglines_vardecl_cx23885_417_c_15042 mpeglines vardecl_cx23885-417.c 0 15042 &enable_so_rts51x_read_mem_fndecl_15042 nohasharray
153206 +enable_so_partitionStartingLocation_partitionDesc_15042 partitionStartingLocation partitionDesc 0 15042 &enable_so_mpeglines_vardecl_cx23885_417_c_15042
153207 +enable_so_fou_recv_pull_fndecl_15045 fou_recv_pull fndecl 2 15045 NULL
153208 +enable_so_max_io_len_dm_target_15053 max_io_len dm_target 0 15053 NULL
153209 +enable_so_handle_event_fsnotify_ops_15054 handle_event fsnotify_ops 0 15054 NULL nohasharray
153210 +enable_so_buf_len_htc_packet_15054 buf_len htc_packet 0 15054 &enable_so_handle_event_fsnotify_ops_15054
153211 +enable_so_sc_netid_len_nfs4_setclientid_15059 sc_netid_len nfs4_setclientid 0 15059 NULL
153212 +enable_so_height_cx2341x_handler_15060 height cx2341x_handler 0 15060 NULL
153213 +enable_so_dump_eeprom_eeprom_ops_15062 dump_eeprom eeprom_ops 0 15062 NULL
153214 +enable_so_oblocks_per_dblock_fndecl_15063 oblocks_per_dblock fndecl 0 15063 NULL
153215 +enable_so_num_widgets_snd_soc_dapm_widget_list_15064 num_widgets snd_soc_dapm_widget_list 0 15064 NULL
153216 +enable_so_vid_hdr_alsize_ubi_device_15065 vid_hdr_alsize ubi_device 0 15065 NULL
153217 +enable_so_ctrlbuf_dma_usbhid_device_15067 ctrlbuf_dma usbhid_device 0 15067 NULL nohasharray
153218 +enable_so_lpt_offs_bits_ubifs_info_15067 lpt_offs_bits ubifs_info 0 15067 &enable_so_ctrlbuf_dma_usbhid_device_15067
153219 +enable_so_write_len_ddb_flashio_15069 write_len ddb_flashio 0 15069 NULL
153220 +enable_so_saturation_sd_gl860_15076 saturation sd_gl860 0 15076 NULL
153221 +enable_so_xfs_rtcheck_range_fndecl_15077 xfs_rtcheck_range fndecl 3 15077 NULL nohasharray
153222 +enable_so_starting_offset_mpt2_diag_read_buffer_15077 starting_offset mpt2_diag_read_buffer 0 15077 &enable_so_xfs_rtcheck_range_fndecl_15077
153223 +enable_so_bm_words_bm_xfer_ctx_15081 bm_words bm_xfer_ctx 0 15081 NULL
153224 +enable_so_start_send_fndecl_15083 start_send fndecl 3 15083 NULL
153225 +enable_so_offs_ubifs_ref_node_15088 offs ubifs_ref_node 0 15088 NULL
153226 +enable_so_cirrusfb_get_memsize_fndecl_15094 cirrusfb_get_memsize fndecl 0 15094 NULL
153227 +enable_so_drm_mm_insert_node_in_range_generic_fndecl_15103 drm_mm_insert_node_in_range_generic fndecl 3 15103 NULL
153228 +enable_so_usbat_read_blocks_fndecl_15109 usbat_read_blocks fndecl 3-4 15109 NULL
153229 +enable_so_split_nodes_size_interleave_fndecl_15116 split_nodes_size_interleave fndecl 3-4-5 15116 NULL
153230 +enable_so_ubifs_tnc_replace_fndecl_15122 ubifs_tnc_replace fndecl 7-6 15122 NULL
153231 +enable_so_read_sb_page_fndecl_15124 read_sb_page fndecl 5-4-2 15124 NULL
153232 +enable_so_macvlan_change_mtu_fndecl_15125 macvlan_change_mtu fndecl 2 15125 NULL nohasharray
153233 +enable_so_ebcnt_vardecl_stresstest_c_15125 ebcnt vardecl_stresstest.c 0 15125 &enable_so_macvlan_change_mtu_fndecl_15125
153234 +enable_so_first_offset_afs_call_15128 first_offset afs_call 0 15128 NULL
153235 +enable_so_bytes_rds_iovec_15133 bytes rds_iovec 0 15133 NULL
153236 +enable_so_gfs2_xattr_acl_get_fndecl_15141 gfs2_xattr_acl_get fndecl 0 15141 NULL nohasharray
153237 +enable_so_ath6kl_roam_table_read_fndecl_15141 ath6kl_roam_table_read fndecl 3 15141 &enable_so_gfs2_xattr_acl_get_fndecl_15141
153238 +enable_so_copy_oldmem_page_fndecl_15143 copy_oldmem_page fndecl 1-3 15143 NULL
153239 +enable_so_mid_get_vbt_data_r1_fndecl_15145 mid_get_vbt_data_r1 fndecl 2 15145 NULL
153240 +enable_so_elem_size_snd_array_15155 elem_size snd_array 0 15155 NULL nohasharray
153241 +enable_so_chaoskey_read_fndecl_15155 chaoskey_read fndecl 3 15155 &enable_so_elem_size_snd_array_15155
153242 +enable_so_info0_rx_msdu_start_15164 info0 rx_msdu_start 0 15164 NULL
153243 +enable_so_i_disk_sec_hpfs_inode_info_15165 i_disk_sec hpfs_inode_info 0 15165 NULL
153244 +enable_so_ovl_dir_llseek_fndecl_15169 ovl_dir_llseek fndecl 2 15169 NULL
153245 +enable_so_frontswap_curr_pages_fndecl_15172 frontswap_curr_pages fndecl 0 15172 NULL nohasharray
153246 +enable_so_xfs_idata_realloc_fndecl_15172 xfs_idata_realloc fndecl 2 15172 &enable_so_frontswap_curr_pages_fndecl_15172
153247 +enable_so_si_namelen_nfsd4_secinfo_15174 si_namelen nfsd4_secinfo 0 15174 NULL
153248 +enable_so_nvkm_ltc_tags_alloc_fndecl_15177 nvkm_ltc_tags_alloc fndecl 2 15177 NULL
153249 +enable_so_rssi_wl3501_card_15182 rssi wl3501_card 0 15182 NULL
153250 +enable_so_perform_sglist_fndecl_15184 perform_sglist fndecl 3-6 15184 NULL
153251 +enable_so_nr_pages_videobuf_dmabuf_15190 nr_pages videobuf_dmabuf 0 15190 NULL nohasharray
153252 +enable_so_walk_hugetlb_range_fndecl_15190 walk_hugetlb_range fndecl 0 15190 &enable_so_nr_pages_videobuf_dmabuf_15190
153253 +enable_so_sg_len_mmc_test_area_15192 sg_len mmc_test_area 0 15192 NULL
153254 +enable_so_ucStateEntrySize__ATOM_PPLIB_POWERPLAYTABLE_15196 ucStateEntrySize _ATOM_PPLIB_POWERPLAYTABLE 0 15196 NULL
153255 +enable_so_p9_client_write_fndecl_15200 p9_client_write fndecl 0 15200 NULL
153256 +enable_so_mwifiex_regrdwr_write_fndecl_15202 mwifiex_regrdwr_write fndecl 3 15202 NULL
153257 +enable_so_size_nforce2_smbus_15203 size nforce2_smbus 0 15203 NULL
153258 +enable_so_top_qxl_urect_15205 top qxl_urect 0 15205 NULL
153259 +enable_so_simple_setattr_fndecl_15209 simple_setattr fndecl 0 15209 NULL nohasharray
153260 +enable_so_nlm_end_grace_read_fndecl_15209 nlm_end_grace_read fndecl 3 15209 &enable_so_simple_setattr_fndecl_15209
153261 +enable_so_gso_max_size_net_device_15213 gso_max_size net_device 0 15213 NULL
153262 +enable_so_sge_control_sge_params_15216 sge_control sge_params 0 15216 NULL
153263 +enable_so_vals_size_ceph_inode_xattrs_info_15217 vals_size ceph_inode_xattrs_info 0 15217 NULL
153264 +enable_so_len_policydb_15230 len policydb 0 15230 NULL
153265 +enable_so_sisusb_bulkout_msg_fndecl_15233 sisusb_bulkout_msg fndecl 5-3 15233 NULL nohasharray
153266 +enable_so_hfsplus_ext_lastblock_fndecl_15233 hfsplus_ext_lastblock fndecl 0 15233 &enable_so_sisusb_bulkout_msg_fndecl_15233
153267 +enable_so_genwqe_ffdc_buff_size_fndecl_15236 genwqe_ffdc_buff_size fndecl 0 15236 NULL
153268 +enable_so_surface_width_drm_fb_helper_surface_size_15237 surface_width drm_fb_helper_surface_size 0 15237 NULL
153269 +enable_so_len_sock_fprog_15239 len sock_fprog 0 15239 NULL
153270 +enable_so_qcom_scm_call_fndecl_15241 qcom_scm_call fndecl 4-6 15241 NULL
153271 +enable_so_do_setxattr_fndecl_15243 do_setxattr fndecl 5 15243 NULL
153272 +enable_so_result_wa_seg_15248 result wa_seg 0 15248 NULL nohasharray
153273 +enable_so_ide_cdrom_register_fndecl_15248 ide_cdrom_register fndecl 2 15248 &enable_so_result_wa_seg_15248
153274 +enable_so_sb_rextsize_xfs_sb_15250 sb_rextsize xfs_sb 0 15250 NULL
153275 +enable_so_ecryptfs_read_lower_page_segment_fndecl_15255 ecryptfs_read_lower_page_segment fndecl 4 15255 NULL
153276 +enable_so_rmsg_size_hv_netvsc_packet_15256 rmsg_size hv_netvsc_packet 0 15256 NULL
153277 +enable_so_current_credit_fndecl_15260 current_credit fndecl 0 15260 NULL nohasharray
153278 +enable_so_dm_block_location_fndecl_15260 dm_block_location fndecl 0 15260 &enable_so_current_credit_fndecl_15260
153279 +enable_so_num_tx_queues_net_device_15263 num_tx_queues net_device 0 15263 NULL
153280 +enable_so_writequeue_entry_complete_fndecl_15264 writequeue_entry_complete fndecl 2 15264 NULL
153281 +enable_so_qce_import_common_fndecl_15267 qce_import_common fndecl 2 15267 NULL
153282 +enable_so_bstr_printf_fndecl_15271 bstr_printf fndecl 0 15271 NULL
153283 +enable_so_recursive_scan_fndecl_15275 recursive_scan fndecl 5 15275 NULL
153284 +enable_so_rd_read_fndecl_15278 rd_read fndecl 3 15278 NULL
153285 +enable_so_nsect_ide_taskfile_15283 nsect ide_taskfile 0 15283 NULL
153286 +enable_so_srp_max_req_size_vardecl_ib_srpt_c_15291 srp_max_req_size vardecl_ib_srpt.c 0 15291 NULL nohasharray
153287 +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
153288 +enable_so_cx24120_writeregs_fndecl_15295 cx24120_writeregs fndecl 4 15295 NULL
153289 +enable_so_pwr_wake_on_host_read_fndecl_15298 pwr_wake_on_host_read fndecl 3 15298 NULL
153290 +enable_so_residual_virtio_scsi_inhdr_15299 residual virtio_scsi_inhdr 0 15299 NULL
153291 +enable_so_scd_size_idt77252_dev_15300 scd_size idt77252_dev 0 15300 NULL
153292 +enable_so_ipath_rcvhdrentsize_ipath_devdata_15302 ipath_rcvhdrentsize ipath_devdata 0 15302 NULL
153293 +enable_so___sg_alloc_table_fndecl_15308 __sg_alloc_table fndecl 0-2-3 15308 NULL
153294 +enable_so_c2_change_mtu_fndecl_15316 c2_change_mtu fndecl 2 15316 NULL
153295 +enable_so_snd_pcm_plug_client_channels_buf_fndecl_15318 snd_pcm_plug_client_channels_buf fndecl 0-3 15318 NULL
153296 +enable_so_hpfs_dir_lseek_fndecl_15324 hpfs_dir_lseek fndecl 2 15324 NULL
153297 +enable_so_ath10k_dbg_sta_write_addba_resp_fndecl_15326 ath10k_dbg_sta_write_addba_resp fndecl 3 15326 NULL
153298 +enable_so_ehci_urb_dequeue_fndecl_15333 ehci_urb_dequeue fndecl 3 15333 NULL
153299 +enable_so_dup_to_netobj_fndecl_15336 dup_to_netobj fndecl 3 15336 NULL
153300 +enable_so_cifs_readdata_alloc_fndecl_15339 cifs_readdata_alloc fndecl 1 15339 NULL
153301 +enable_so_min_io_size_ubifs_info_15340 min_io_size ubifs_info 0 15340 NULL
153302 +enable_so_sc18is602_txrx_fndecl_15346 sc18is602_txrx fndecl 0 15346 NULL
153303 +enable_so_check_can_nocow_fndecl_15347 check_can_nocow fndecl 2 15347 NULL
153304 +enable_so_efx_rx_mk_skb_fndecl_15349 efx_rx_mk_skb fndecl 5-3 15349 NULL
153305 +enable_so_s_cluster_bits_ext4_sb_info_15353 s_cluster_bits ext4_sb_info 0 15353 NULL
153306 +enable_so_nfs_file_direct_read_fndecl_15359 nfs_file_direct_read fndecl 3 15359 NULL
153307 +enable_so_seq_len_key_params_15366 seq_len key_params 0 15366 NULL
153308 +enable_so_num_total_plane_drm_mode_config_15377 num_total_plane drm_mode_config 0 15377 NULL
153309 +enable_so_size_mtd_info_15393 size mtd_info 0 15393 NULL
153310 +enable_so_id_mic_device_15395 id mic_device 0 15395 NULL
153311 +enable_so_rds_ib_ring_init_fndecl_15404 rds_ib_ring_init fndecl 2 15404 NULL
153312 +enable_so_udf_bread_fndecl_15411 udf_bread fndecl 2 15411 NULL
153313 +enable_so_pnp_alloc_fndecl_15414 pnp_alloc fndecl 1 15414 NULL
153314 +enable_so_setup_buffering_fndecl_15419 setup_buffering fndecl 3 15419 NULL
153315 +enable_so_queues_read_fndecl_15422 queues_read fndecl 3 15422 NULL
153316 +enable_so_logical_reada_extent_15426 logical reada_extent 0 15426 NULL
153317 +enable_so_pwc_set_video_mode_fndecl_15427 pwc_set_video_mode fndecl 5 15427 NULL
153318 +enable_so_size_cmd_header_15429 size cmd_header 0 15429 NULL
153319 +enable_so_ddr_base_intel_sst_drv_15431 ddr_base intel_sst_drv 0 15431 NULL
153320 +enable_so_ati_remote_sendpacket_fndecl_15435 ati_remote_sendpacket fndecl 2 15435 NULL
153321 +enable_so_max_vpi_lpfc_hba_15442 max_vpi lpfc_hba 0 15442 NULL
153322 +enable_so_eeprom_93xx46_bin_read_fndecl_15447 eeprom_93xx46_bin_read fndecl 5-6 15447 NULL
153323 +enable_so_callout_len_request_key_auth_15448 callout_len request_key_auth 0 15448 NULL
153324 +enable_so_code_page_dir_hpfs_spare_block_15449 code_page_dir hpfs_spare_block 0 15449 NULL
153325 +enable_so_cpd_size_blkcg_policy_15451 cpd_size blkcg_policy 0 15451 NULL
153326 +enable_so_codec_list_read_file_fndecl_15453 codec_list_read_file fndecl 3 15453 NULL
153327 +enable_so_wdm_create_fndecl_15456 wdm_create fndecl 3 15456 NULL
153328 +enable_so_ivsize_old_aead_alg_15462 ivsize old_aead_alg 0 15462 NULL
153329 +enable_so_octeon_setup_iq_fndecl_15466 octeon_setup_iq fndecl 3 15466 NULL
153330 +enable_so_regmap_spi_write_fndecl_15476 regmap_spi_write fndecl 3 15476 NULL
153331 +enable_so_mmio_len_fb_fix_screeninfo_15477 mmio_len fb_fix_screeninfo 0 15477 NULL
153332 +enable_so_priv_size_iscsit_transport_15489 priv_size iscsit_transport 0 15489 NULL
153333 +enable_so_nf_nat_sdp_port_fndecl_15490 nf_nat_sdp_port fndecl 7 15490 NULL
153334 +enable_so_old_oblock_policy_result_15494 old_oblock policy_result 0 15494 NULL
153335 +enable_so_ath10k_fw_crash_dump_read_fndecl_15496 ath10k_fw_crash_dump_read fndecl 3 15496 NULL
153336 +enable_so_sys_rt_sigpending_fndecl_15506 sys_rt_sigpending fndecl 2 15506 NULL
153337 +enable_so_size_videobuf_buffer_15508 size videobuf_buffer 0 15508 NULL
153338 +enable_so_gfs2_fallocate_fndecl_15515 gfs2_fallocate fndecl 4-3 15515 NULL
153339 +enable_so_max_pkt_size_cx231xx_video_mode_15531 max_pkt_size cx231xx_video_mode 0 15531 NULL
153340 +enable_so_pci_siig_setup_fndecl_15532 pci_siig_setup fndecl 4 15532 NULL
153341 +enable_so_wl1273_fm_get_tx_ctune_fndecl_15534 wl1273_fm_get_tx_ctune fndecl 0 15534 NULL
153342 +enable_so_space_bits_ubifs_info_15538 space_bits ubifs_info 0 15538 NULL
153343 +enable_so_hi_priority_depth_MPT3SAS_ADAPTER_15543 hi_priority_depth MPT3SAS_ADAPTER 0 15543 NULL
153344 +enable_so_genwqe_user_vmap_fndecl_15544 genwqe_user_vmap fndecl 4 15544 NULL nohasharray
153345 +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
153346 +enable_so_index_btframe_15545 index btframe 0 15545 NULL
153347 +enable_so_data_length_mts_transfer_context_15546 data_length mts_transfer_context 0 15546 NULL
153348 +enable_so_map_size_drm_amdgpu_gem_va_15550 map_size drm_amdgpu_gem_va 0 15550 NULL nohasharray
153349 +enable_so_il_dbgfs_channels_read_fndecl_15550 il_dbgfs_channels_read fndecl 3 15550 &enable_so_map_size_drm_amdgpu_gem_va_15550
153350 +enable_so_ep_in_kingsun_cb_15553 ep_in kingsun_cb 0 15553 NULL
153351 +enable_so_diff_usnic_uiom_reg_15554 diff usnic_uiom_reg 0 15554 NULL nohasharray
153352 +enable_so_num_odfs_clkgen_pll_data_15554 num_odfs clkgen_pll_data 0 15554 &enable_so_diff_usnic_uiom_reg_15554
153353 +enable_so_video_buffer_size_vivid_dev_15556 video_buffer_size vivid_dev 0 15556 NULL
153354 +enable_so_node_start_pfn_pglist_data_15561 node_start_pfn pglist_data 0 15561 NULL
153355 +enable_so_num_sge_ib_send_wr_15565 num_sge ib_send_wr 0 15565 NULL
153356 +enable_so_swiotlb_late_init_with_tbl_fndecl_15566 swiotlb_late_init_with_tbl fndecl 2 15566 NULL nohasharray
153357 +enable_so_push_frame_fndecl_15566 push_frame fndecl 2 15566 &enable_so_swiotlb_late_init_with_tbl_fndecl_15566
153358 +enable_so_s_map2blk_adfs_sb_info_15569 s_map2blk adfs_sb_info 0 15569 NULL
153359 +enable_so_acpi20_efi_15582 acpi20 efi 0 15582 NULL
153360 +enable_so_NumTransferUnits_erase_unit_header_t_15585 NumTransferUnits erase_unit_header_t 0 15585 NULL
153361 +enable_so_SYSC_listxattr_fndecl_15587 SYSC_listxattr fndecl 3 15587 NULL
153362 +enable_so_tx_ring_count_ixgbe_adapter_15595 tx_ring_count ixgbe_adapter 0 15595 NULL
153363 +enable_so_memsz_fifo_15603 memsz fifo 0 15603 NULL
153364 +enable_so_len_nfs3_createargs_15604 len nfs3_createargs 0 15604 NULL
153365 +enable_so_gs_buf_alloc_fndecl_15608 gs_buf_alloc fndecl 2 15608 NULL
153366 +enable_so_do_add_page_to_bio_fndecl_15612 do_add_page_to_bio fndecl 10-4-2 15612 NULL
153367 +enable_so_udf_compute_nr_groups_fndecl_15617 udf_compute_nr_groups fndecl 0 15617 NULL
153368 +enable_so_num_edbs_asd_seq_data_15621 num_edbs asd_seq_data 0 15621 NULL
153369 +enable_so_ch_r_head_jsm_channel_15625 ch_r_head jsm_channel 0 15625 NULL
153370 +enable_so_drm_addmap_core_fndecl_15627 drm_addmap_core fndecl 3-2 15627 NULL nohasharray
153371 +enable_so_nents_sg_table_15627 nents sg_table 0 15627 &enable_so_drm_addmap_core_fndecl_15627 nohasharray
153372 +enable_so_count_preds_fndecl_15627 count_preds fndecl 0 15627 &enable_so_nents_sg_table_15627
153373 +enable_so_i915_error_state_buf_init_fndecl_15630 i915_error_state_buf_init fndecl 4-3 15630 NULL
153374 +enable_so_mcs_wrap_mir_skb_fndecl_15633 mcs_wrap_mir_skb fndecl 0 15633 NULL
153375 +enable_so_netlbl_domhsh_init_fndecl_15635 netlbl_domhsh_init fndecl 1 15635 NULL
153376 +enable_so_end_bttv_vbi_fmt_15637 end bttv_vbi_fmt 0 15637 NULL nohasharray
153377 +enable_so_SyS_pselect6_fndecl_15637 SyS_pselect6 fndecl 1 15637 &enable_so_end_bttv_vbi_fmt_15637
153378 +enable_so_dma_in_redrat3_dev_15639 dma_in redrat3_dev 0 15639 NULL
153379 +enable_so_mapped_vram_radeonfb_info_15654 mapped_vram radeonfb_info 0 15654 NULL nohasharray
153380 +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
153381 +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
153382 +enable_so_kvm_pv_enable_async_pf_fndecl_15662 kvm_pv_enable_async_pf fndecl 2 15662 NULL
153383 +enable_so_sb_rblocks_xfs_sb_15668 sb_rblocks xfs_sb 0 15668 NULL
153384 +enable_so_SyS_poll_fndecl_15679 SyS_poll fndecl 2 15679 NULL
153385 +enable_so_wsize_p9_conn_15686 wsize p9_conn 0 15686 NULL
153386 +enable_so_total_bnx2x_sriov_15692 total bnx2x_sriov 0 15692 NULL
153387 +enable_so_num_bytes_sigmadsp_control_15699 num_bytes sigmadsp_control 0 15699 NULL
153388 +enable_so_iov_len_kvec_15702 iov_len kvec 0 15702 NULL nohasharray
153389 +enable_so_context_alloc_fndecl_15702 context_alloc fndecl 3 15702 &enable_so_iov_len_kvec_15702
153390 +enable_so_blk_rq_err_bytes_fndecl_15705 blk_rq_err_bytes fndecl 0 15705 NULL
153391 +enable_so_numa_scan_offset_mm_struct_15710 numa_scan_offset mm_struct 0 15710 NULL
153392 +enable_so_btrfs_chunk_sub_stripes_fndecl_15711 btrfs_chunk_sub_stripes fndecl 0 15711 NULL
153393 +enable_so_ib_umem_page_count_fndecl_15714 ib_umem_page_count fndecl 0 15714 NULL
153394 +enable_so_name_len_nilfs_dir_entry_15715 name_len nilfs_dir_entry 0 15715 NULL
153395 +enable_so_user_size_drm_i915_gem_userptr_15716 user_size drm_i915_gem_userptr 0 15716 NULL
153396 +enable_so_di_xblk_qnx4_inode_entry_15719 di_xblk qnx4_inode_entry 0 15719 NULL
153397 +enable_so_new_tape_buffer_fndecl_15721 new_tape_buffer fndecl 3 15721 NULL
153398 +enable_so_datafab_write_data_fndecl_15723 datafab_write_data fndecl 4 15723 NULL
153399 +enable_so_n_window_iwl_queue_15731 n_window iwl_queue 0 15731 NULL
153400 +enable_so_lcd_height_atyfb_par_15743 lcd_height atyfb_par 0 15743 NULL
153401 +enable_so_num_locks_dlm_migratable_lockres_15745 num_locks dlm_migratable_lockres 0 15745 NULL
153402 +enable_so_remote_miu_nfc_llcp_local_15749 remote_miu nfc_llcp_local 0 15749 NULL
153403 +enable_so_st_int_ioctl_fndecl_15750 st_int_ioctl fndecl 3 15750 NULL
153404 +enable_so_ip_tunnel_change_mtu_fndecl_15752 ip_tunnel_change_mtu fndecl 2 15752 NULL
153405 +enable_so_transfer_done_snd_usb_substream_15753 transfer_done snd_usb_substream 0 15753 NULL nohasharray
153406 +enable_so_size_gf100_gr_data_15753 size gf100_gr_data 0 15753 &enable_so_transfer_done_snd_usb_substream_15753
153407 +enable_so_xres__sisbios_mode_15754 xres _sisbios_mode 0 15754 NULL
153408 +enable_so_niu_change_mtu_fndecl_15765 niu_change_mtu fndecl 2 15765 NULL
153409 +enable_so_header_read_sd_15767 header_read sd 0 15767 NULL
153410 +enable_so_mc13xxx_spi_write_fndecl_15768 mc13xxx_spi_write fndecl 3 15768 NULL
153411 +enable_so_irttp_connect_confirm_fndecl_15769 irttp_connect_confirm fndecl 4-5 15769 NULL
153412 +enable_so_tx_put__synclinkmp_info_15770 tx_put _synclinkmp_info 0 15770 NULL
153413 +enable_so_btrfs_create_qgroup_fndecl_15772 btrfs_create_qgroup fndecl 3 15772 NULL
153414 +enable_so_size_order_mesh_table_15774 size_order mesh_table 0 15774 NULL
153415 +enable_so_kgdb_hex2mem_fndecl_15776 kgdb_hex2mem fndecl 3 15776 NULL
153416 +enable_so_rdma_read_chunk_lcl_fndecl_15778 rdma_read_chunk_lcl fndecl 7 15778 NULL nohasharray
153417 +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
153418 +enable_so_xfs_bmap_split_extent_at_fndecl_15780 xfs_bmap_split_extent_at fndecl 3 15780 NULL
153419 +enable_so_PacketLength_wa_xfer_packet_status_len_hwaiso_15781 PacketLength wa_xfer_packet_status_len_hwaiso 0 15781 NULL
153420 +enable_so_vde_ast_vbios_enhtable_15784 vde ast_vbios_enhtable 0 15784 NULL
153421 +enable_so_maxports_dgnc_board_15787 maxports dgnc_board 0 15787 NULL
153422 +enable_so_count_nfs4_readdir_arg_15790 count nfs4_readdir_arg 0 15790 NULL
153423 +enable_so_simple_attr_read_fndecl_15793 simple_attr_read fndecl 3 15793 NULL
153424 +enable_so_region_size_dm_region_hash_15798 region_size dm_region_hash 0 15798 NULL
153425 +enable_so_fi_ndatablk_nilfs_finfo_15799 fi_ndatablk nilfs_finfo 0 15799 NULL
153426 +enable_so_ath_rxbuf_alloc_fndecl_15802 ath_rxbuf_alloc fndecl 2 15802 NULL
153427 +enable_so_datablob_hmac_verify_fndecl_15809 datablob_hmac_verify fndecl 4 15809 NULL
153428 +enable_so_cache_read_fndecl_15813 cache_read fndecl 3 15813 NULL
153429 +enable_so_n_match_sets_cfg80211_sched_scan_request_15823 n_match_sets cfg80211_sched_scan_request 0 15823 NULL nohasharray
153430 +enable_so_user_regset_copyout_fndecl_15823 user_regset_copyout fndecl 7 15823 &enable_so_n_match_sets_cfg80211_sched_scan_request_15823
153431 +enable_so_word13_lpfc_mbx_read_config_15832 word13 lpfc_mbx_read_config 0 15832 NULL
153432 +enable_so_ocfs2_read_blocks_fndecl_15834 ocfs2_read_blocks fndecl 0-2 15834 NULL
153433 +enable_so_skb_make_writable_fndecl_15836 skb_make_writable fndecl 2 15836 NULL
153434 +enable_so_rx_num_pg_ch_pm_15838 rx_num_pg ch_pm 0 15838 NULL
153435 +enable_so_block_llseek_fndecl_15846 block_llseek fndecl 2 15846 NULL nohasharray
153436 +enable_so_irq_set_msi_desc_fndecl_15846 irq_set_msi_desc fndecl 1 15846 &enable_so_block_llseek_fndecl_15846
153437 +enable_so_msg_print_ext_body_fndecl_15847 msg_print_ext_body fndecl 0 15847 NULL
153438 +enable_so_pnp_register_mem_resource_fndecl_15849 pnp_register_mem_resource fndecl 6-3-5 15849 NULL
153439 +enable_so_net2272_read_fndecl_15850 net2272_read fndecl 0 15850 NULL
153440 +enable_so_sb_set_blocksize_fndecl_15860 sb_set_blocksize fndecl 2-0 15860 NULL
153441 +enable_so_kvm_read_guest_virt_helper_fndecl_15863 kvm_read_guest_virt_helper fndecl 3-1 15863 NULL
153442 +enable_so_period_bytes_min_snd_pcm_hardware_15864 period_bytes_min snd_pcm_hardware 0 15864 NULL
153443 +enable_so_o2net_send_tcp_msg_fndecl_15876 o2net_send_tcp_msg fndecl 4-3 15876 NULL
153444 +enable_so_sel_read_mls_fndecl_15882 sel_read_mls fndecl 3 15882 NULL
153445 +enable_so_unix_mkname_fndecl_15883 unix_mkname fndecl 0-2 15883 NULL
153446 +enable_so_ie_len_cfg80211_auth_request_15886 ie_len cfg80211_auth_request 0 15886 NULL
153447 +enable_so_dump_align_fndecl_15890 dump_align fndecl 2 15890 NULL
153448 +enable_so_sn9c2028_read1_fndecl_15891 sn9c2028_read1 fndecl 0 15891 NULL
153449 +enable_so_num_fitmsg_context_skd_device_15897 num_fitmsg_context skd_device 0 15897 NULL
153450 +enable_so_num_pds_mthca_limits_15899 num_pds mthca_limits 0 15899 NULL nohasharray
153451 +enable_so_size_drm_i915_error_state_buf_15899 size drm_i915_error_state_buf 0 15899 &enable_so_num_pds_mthca_limits_15899
153452 +enable_so_cpia_usb_transferCmd_fndecl_15901 cpia_usb_transferCmd fndecl 0 15901 NULL
153453 +enable_so_usb_alloc_dev_fndecl_15902 usb_alloc_dev fndecl 3 15902 NULL
153454 +enable_so_dir_info_len_ceph_file_info_15905 dir_info_len ceph_file_info 0 15905 NULL nohasharray
153455 +enable_so_flags_v4l2_ioctl_info_15905 flags v4l2_ioctl_info 0 15905 &enable_so_dir_info_len_ceph_file_info_15905
153456 +enable_so_status_pch_udc_data_dma_desc_15911 status pch_udc_data_dma_desc 0 15911 NULL
153457 +enable_so_vsp1_entity_init_fndecl_15916 vsp1_entity_init fndecl 3 15916 NULL
153458 +enable_so_rh_queue_status_fndecl_15921 rh_queue_status fndecl 0 15921 NULL
153459 +enable_so_group_width_ore_layout_15927 group_width ore_layout 0 15927 NULL
153460 +enable_so_command_setyuvtresh_fndecl_15933 command_setyuvtresh fndecl 0 15933 NULL
153461 +enable_so_v4l2_m2m_dqbuf_fndecl_15936 v4l2_m2m_dqbuf fndecl 0 15936 NULL
153462 +enable_so_npages_gssx_arg_accept_sec_context_15939 npages gssx_arg_accept_sec_context 0 15939 NULL
153463 +enable_so_netlink_sendmsg_fndecl_15943 netlink_sendmsg fndecl 3 15943 NULL
153464 +enable_so_rstatus_usblp_15945 rstatus usblp 0 15945 NULL
153465 +enable_so_hw_scan_ies_bufsize_ieee80211_local_15949 hw_scan_ies_bufsize ieee80211_local 0 15949 NULL
153466 +enable_so_xfs_ialloc_pagi_init_fndecl_15952 xfs_ialloc_pagi_init fndecl 3 15952 NULL
153467 +enable_so_mcp795_rtcc_read_fndecl_15956 mcp795_rtcc_read fndecl 4 15956 NULL
153468 +enable_so_nr_rtc_mem_15958 nr rtc_mem 0 15958 NULL nohasharray
153469 +enable_so_ebt_buf_add_pad_fndecl_15958 ebt_buf_add_pad fndecl 0 15958 &enable_so_nr_rtc_mem_15958
153470 +enable_so_data_dma_usb_acecad_15962 data_dma usb_acecad 0 15962 NULL
153471 +enable_so_splice_pipe_to_pipe_fndecl_15964 splice_pipe_to_pipe fndecl 3 15964 NULL
153472 +enable_so_dai_list_read_file_fndecl_15966 dai_list_read_file fndecl 3 15966 NULL
153473 +enable_so_brcmf_bus_add_txhdrlen_fndecl_15969 brcmf_bus_add_txhdrlen fndecl 2 15969 NULL
153474 +enable_so_ath6kl_wmi_beginscan_cmd_fndecl_15973 ath6kl_wmi_beginscan_cmd fndecl 8-2 15973 NULL
153475 +enable_so_first_burst_iscsi_session_15974 first_burst iscsi_session 0 15974 NULL
153476 +enable_so_mmc_test_area_io_fndecl_15982 mmc_test_area_io fndecl 2 15982 NULL
153477 +enable_so_nb_blocks_INFTLrecord_15986 nb_blocks INFTLrecord 0 15986 NULL
153478 +enable_so_ipath_map_phys_fmr_fndecl_15988 ipath_map_phys_fmr fndecl 4 15988 NULL
153479 +enable_so_data_len_usb_req_15991 data_len usb_req 0 15991 NULL
153480 +enable_so_nilfs_cpfile_get_blkoff_fndecl_15997 nilfs_cpfile_get_blkoff fndecl 0-2 15997 NULL
153481 +enable_so_num_mem_chunks_ath10k_wmi_16005 num_mem_chunks ath10k_wmi 0 16005 NULL
153482 +enable_so_last_offset_inode_defrag_16007 last_offset inode_defrag 0 16007 NULL
153483 +enable_so_il3945_get_rate_idx_by_rssi_fndecl_16010 il3945_get_rate_idx_by_rssi fndecl 0 16010 NULL
153484 +enable_so_ivtv_buf_copy_from_user_fndecl_16013 ivtv_buf_copy_from_user fndecl 4 16013 NULL
153485 +enable_so_num_stripes_map_lookup_16016 num_stripes map_lookup 0 16016 NULL
153486 +enable_so_payload_len_bsg_buffer_16019 payload_len bsg_buffer 0 16019 NULL
153487 +enable_so_bo_size_drm_amdgpu_gem_create_in_16025 bo_size drm_amdgpu_gem_create_in 0 16025 NULL nohasharray
153488 +enable_so_xhci_urb_dequeue_fndecl_16025 xhci_urb_dequeue fndecl 3 16025 &enable_so_bo_size_drm_amdgpu_gem_create_in_16025 nohasharray
153489 +enable_so_jfs_truncate_nolock_fndecl_16025 jfs_truncate_nolock fndecl 2 16025 &enable_so_xhci_urb_dequeue_fndecl_16025
153490 +enable_so_sb_permission_fndecl_16032 sb_permission fndecl 0 16032 NULL
153491 +enable_so_ct_atc_create_fndecl_16033 ct_atc_create fndecl 3 16033 NULL nohasharray
153492 +enable_so_channels_max_hda_pcm_stream_16033 channels_max hda_pcm_stream 0 16033 &enable_so_ct_atc_create_fndecl_16033
153493 +enable_so_count_connectors_drm_mode_crtc_16038 count_connectors drm_mode_crtc 0 16038 NULL
153494 +enable_so_rts_threshold_ipw2100_priv_16044 rts_threshold ipw2100_priv 0 16044 NULL
153495 +enable_so_nsec_seg_buf_16050 nsec seg_buf 0 16050 NULL nohasharray
153496 +enable_so_snd_pcm_plugin_build_fndecl_16050 snd_pcm_plugin_build fndecl 5 16050 &enable_so_nsec_seg_buf_16050
153497 +enable_so_nouveau_bo_new_fndecl_16051 nouveau_bo_new fndecl 2 16051 NULL
153498 +enable_so_len_ahc_dma_seg_16052 len ahc_dma_seg 0 16052 NULL
153499 +enable_so_n_insns_comedi_insnlist_16056 n_insns comedi_insnlist 0 16056 NULL
153500 +enable_so_ts_packet_size_cx231xx_tsport_16063 ts_packet_size cx231xx_tsport 0 16063 NULL
153501 +enable_so_pgsize_vardecl_pagetest_c_16065 pgsize vardecl_pagetest.c 0 16065 NULL
153502 +enable_so_compat_sys_sendfile64_fndecl_16066 compat_sys_sendfile64 fndecl 4 16066 NULL nohasharray
153503 +enable_so_set_parameters_fndecl_16066 set_parameters fndecl 8-7 16066 &enable_so_compat_sys_sendfile64_fndecl_16066
153504 +enable_so_do_swap_page_fndecl_16068 do_swap_page fndecl 3 16068 NULL
153505 +enable_so_ht_print_chan_fndecl_16071 ht_print_chan fndecl 0 16071 NULL
153506 +enable_so_max_rxd_qlcnic_adapter_16074 max_rxd qlcnic_adapter 0 16074 NULL
153507 +enable_so_ext3_get_inode_loc_fndecl_16085 ext3_get_inode_loc fndecl 0 16085 NULL
153508 +enable_so_mgag200_ttm_tt_create_fndecl_16093 mgag200_ttm_tt_create fndecl 2 16093 NULL
153509 +enable_so_pci_add_resource_offset_fndecl_16095 pci_add_resource_offset fndecl 3 16095 NULL
153510 +enable_so_w_mode_size_16096 w mode_size 0 16096 NULL
153511 +enable_so_param_len_mgmt_pending_cmd_16099 param_len mgmt_pending_cmd 0 16099 NULL
153512 +enable_so_grow_dev_page_fndecl_16100 grow_dev_page fndecl 4-5-3 16100 NULL
153513 +enable_so_instances_minus_one_mxt_object_16107 instances_minus_one mxt_object 0 16107 NULL
153514 +enable_so_find_extend_vma_fndecl_16110 find_extend_vma fndecl 2 16110 NULL
153515 +enable_so_brcmf_usb_dl_send_bulk_fndecl_16113 brcmf_usb_dl_send_bulk fndecl 3 16113 NULL nohasharray
153516 +enable_so_xillybus_llseek_fndecl_16113 xillybus_llseek fndecl 2 16113 &enable_so_brcmf_usb_dl_send_bulk_fndecl_16113
153517 +enable_so_tx_bytes_queued_ipw_tty_16114 tx_bytes_queued ipw_tty 0 16114 NULL
153518 +enable_so_logfs_cleanse_block_fndecl_16119 logfs_cleanse_block fndecl 3 16119 NULL
153519 +enable_so_snd_rawmidi_kernel_write_fndecl_16129 snd_rawmidi_kernel_write fndecl 3 16129 NULL
153520 +enable_so_vf_count_efx_nic_16134 vf_count efx_nic 0 16134 NULL
153521 +enable_so_hci_req_add_ev_fndecl_16136 hci_req_add_ev fndecl 3 16136 NULL
153522 +enable_so_port_length_c67x00_td_16141 port_length c67x00_td 0 16141 NULL
153523 +enable_so_get_partial_shdma_ops_16144 get_partial shdma_ops 0 16144 NULL
153524 +enable_so_samples_per_line_v4l2_vbi_format_16148 samples_per_line v4l2_vbi_format 0 16148 NULL
153525 +enable_so_nvkm_instmem_create__fndecl_16153 nvkm_instmem_create_ fndecl 4 16153 NULL
153526 +enable_so_max_packet_length_mv_dqh_16157 max_packet_length mv_dqh 0 16157 NULL
153527 +enable_so_beep_amp_via_spec_16168 beep_amp via_spec 0 16168 NULL
153528 +enable_so_read_for_csum_fndecl_16170 read_for_csum fndecl 3-2 16170 NULL
153529 +enable_so_reiserfs_commit_write_fndecl_16171 reiserfs_commit_write fndecl 4 16171 NULL
153530 +enable_so_ath6kl_wmi_set_keepalive_cmd_fndecl_16174 ath6kl_wmi_set_keepalive_cmd fndecl 2 16174 NULL
153531 +enable_so_rxrpc_recvmsg_fndecl_16178 rxrpc_recvmsg fndecl 3 16178 NULL
153532 +enable_so_board_span_myri10ge_priv_16182 board_span myri10ge_priv 0 16182 NULL nohasharray
153533 +enable_so_minor_lirc_driver_16182 minor lirc_driver 0 16182 &enable_so_board_span_myri10ge_priv_16182
153534 +enable_so_pathlen_nfs_symlinkargs_16183 pathlen nfs_symlinkargs 0 16183 NULL
153535 +enable_so_width_drm_mode_fb_cmd2_16185 width drm_mode_fb_cmd2 0 16185 NULL
153536 +enable_so_h_input_res_16191 h input_res 0 16191 NULL
153537 +enable_so_vid_hdr_offs_mtd_dev_param_16199 vid_hdr_offs mtd_dev_param 0 16199 NULL
153538 +enable_so_osdname_len_osd_dev_info_16203 osdname_len osd_dev_info 0 16203 NULL
153539 +enable_so_ipath_init_qp_table_fndecl_16220 ipath_init_qp_table fndecl 2 16220 NULL
153540 +enable_so_blksize_mtd_blktrans_ops_16221 blksize mtd_blktrans_ops 0 16221 NULL nohasharray
153541 +enable_so_sys_fgetxattr_fndecl_16221 sys_fgetxattr fndecl 4 16221 &enable_so_blksize_mtd_blktrans_ops_16221
153542 +enable_so_port_hdspm_16225 port hdspm 0 16225 NULL
153543 +enable_so_mmio_vardecl_via_wdt_c_16227 mmio vardecl_via_wdt.c 0 16227 NULL
153544 +enable_so_operand_1_len_ccp_ecc_modular_math_16234 operand_1_len ccp_ecc_modular_math 0 16234 NULL
153545 +enable_so_ks8851_rdreg32_fndecl_16240 ks8851_rdreg32 fndecl 0 16240 NULL
153546 +enable_so_len_wmi_p2p_rx_probe_req_event_16241 len wmi_p2p_rx_probe_req_event 0 16241 NULL
153547 +enable_so_used_count_pvr2_buffer_16246 used_count pvr2_buffer 0 16246 NULL
153548 +enable_so_num_tbps___thermal_zone_16249 num_tbps __thermal_zone 0 16249 NULL
153549 +enable_so_nilfs_iget_locked_fndecl_16250 nilfs_iget_locked fndecl 3 16250 NULL
153550 +enable_so_offs_ubifs_scan_node_16253 offs ubifs_scan_node 0 16253 NULL
153551 +enable_so_xfs_getbmapx_fix_eof_hole_fndecl_16255 xfs_getbmapx_fix_eof_hole fndecl 5 16255 NULL
153552 +enable_so_mon_stat_read_fndecl_16261 mon_stat_read fndecl 3 16261 NULL
153553 +enable_so_num_desc__drm_via_sg_info_16262 num_desc _drm_via_sg_info 0 16262 NULL
153554 +enable_so_length_scsi_data_buffer_16267 length scsi_data_buffer 0 16267 NULL nohasharray
153555 +enable_so___do_huge_pmd_anonymous_page_fndecl_16267 __do_huge_pmd_anonymous_page fndecl 3 16267 &enable_so_length_scsi_data_buffer_16267
153556 +enable_so_s_fpg_ufs_sb_private_info_16269 s_fpg ufs_sb_private_info 0 16269 NULL
153557 +enable_so_s_inodes_per_group_ext2_sb_info_16273 s_inodes_per_group ext2_sb_info 0 16273 NULL
153558 +enable_so__max_length_ieee80211_radiotap_iterator_16274 _max_length ieee80211_radiotap_iterator 0 16274 NULL
153559 +enable_so_obj_len_fndecl_16275 obj_len fndecl 0 16275 NULL
153560 +enable_so_mmio_size_sis_video_info_16284 mmio_size sis_video_info 0 16284 NULL
153561 +enable_so_find_ibft_region_fndecl_16285 find_ibft_region fndecl 0 16285 NULL
153562 +enable_so_dvbdev_get_free_adapter_num_fndecl_16292 dvbdev_get_free_adapter_num fndecl 0 16292 NULL
153563 +enable_so_bits_inflate_state_16300 bits inflate_state 0 16300 NULL
153564 +enable_so_vfs_writev_fndecl_16301 vfs_writev fndecl 3 16301 NULL
153565 +enable_so_max_nvkm_fifo_16302 max nvkm_fifo 0 16302 NULL nohasharray
153566 +enable_so_crypto_alloc_instance2_fndecl_16302 crypto_alloc_instance2 fndecl 3 16302 &enable_so_max_nvkm_fifo_16302
153567 +enable_so_isdn_tty_countDLE_fndecl_16304 isdn_tty_countDLE fndecl 0 16304 NULL
153568 +enable_so_brcmf_sdiod_txglomsz_vardecl_bcmsdh_c_16306 brcmf_sdiod_txglomsz vardecl_bcmsdh.c 0 16306 NULL
153569 +enable_so_len_ieee80211_vendor_radiotap_16308 len ieee80211_vendor_radiotap 0 16308 NULL
153570 +enable_so_aac_fib_send_fndecl_16315 aac_fib_send fndecl 3 16315 NULL
153571 +enable_so_memblock_mark_mirror_fndecl_16321 memblock_mark_mirror fndecl 2-1 16321 NULL
153572 +enable_so_major_tty_driver_16323 major tty_driver 0 16323 NULL
153573 +enable_so_AscGetMaxDmaCount_fndecl_16326 AscGetMaxDmaCount fndecl 0 16326 NULL
153574 +enable_so_jent_zalloc_fndecl_16331 jent_zalloc fndecl 1 16331 NULL
153575 +enable_so_l2tp_session_create_fndecl_16341 l2tp_session_create fndecl 1 16341 NULL
153576 +enable_so_sys_dup2_fndecl_16343 sys_dup2 fndecl 2 16343 NULL nohasharray
153577 +enable_so_max_vfs_be_resources_16343 max_vfs be_resources 0 16343 &enable_so_sys_dup2_fndecl_16343
153578 +enable_so_fuse_dir_compat_ioctl_fndecl_16346 fuse_dir_compat_ioctl fndecl 2 16346 NULL
153579 +enable_so_channels_snd_emu10k1_fx8010_pcm_16368 channels snd_emu10k1_fx8010_pcm 0 16368 NULL
153580 +enable_so_udf_get_pblock_virt15_fndecl_16373 udf_get_pblock_virt15 fndecl 4 16373 NULL
153581 +enable_so_help_fndecl_16375 help fndecl 5 16375 NULL nohasharray
153582 +enable_so_ath9k_debugfs_read_buf_fndecl_16375 ath9k_debugfs_read_buf fndecl 3 16375 &enable_so_help_fndecl_16375
153583 +enable_so_samsung_clk_init_fndecl_16382 samsung_clk_init fndecl 3 16382 NULL
153584 +enable_so_len_iwl_mvm_dump_desc_16383 len iwl_mvm_dump_desc 0 16383 NULL
153585 +enable_so_zd_mac_preinit_hw_fndecl_16386 zd_mac_preinit_hw fndecl 0 16386 NULL
153586 +enable_so_sr_set_blocklength_fndecl_16390 sr_set_blocklength fndecl 2 16390 NULL
153587 +enable_so_dsize_ip_set_16391 dsize ip_set 0 16391 NULL
153588 +enable_so_max_nr_frames_gnttab_query_size_16393 max_nr_frames gnttab_query_size 0 16393 NULL
153589 +enable_so_set_pio_mode_fndecl_16395 set_pio_mode fndecl 2 16395 NULL nohasharray
153590 +enable_so_acpi_ex_create_region_fndecl_16395 acpi_ex_create_region fndecl 3 16395 &enable_so_set_pio_mode_fndecl_16395 nohasharray
153591 +enable_so_ip_options_get_alloc_fndecl_16395 ip_options_get_alloc fndecl 1 16395 &enable_so_acpi_ex_create_region_fndecl_16395 nohasharray
153592 +enable_so_pci_map_page_fndecl_16395 pci_map_page fndecl 0 16395 &enable_so_ip_options_get_alloc_fndecl_16395
153593 +enable_so_rt2x00debug_read_queue_stats_fndecl_16396 rt2x00debug_read_queue_stats fndecl 3 16396 NULL
153594 +enable_so_SYSC_setgroups_fndecl_16397 SYSC_setgroups fndecl 1 16397 NULL
153595 +enable_so___logfs_seek_data_fndecl_16398 __logfs_seek_data fndecl 2-0 16398 NULL
153596 +enable_so_usbat_execute_command_fndecl_16400 usbat_execute_command fndecl 3 16400 NULL
153597 +enable_so_compress_sliced_buf_fndecl_16402 compress_sliced_buf fndecl 0-2 16402 NULL
153598 +enable_so_statelen_drbg_core_16405 statelen drbg_core 0 16405 NULL
153599 +enable_so_romfs_dev_read_fndecl_16412 romfs_dev_read fndecl 2-4 16412 NULL
153600 +enable_so_bcnt_aoeif_16414 bcnt aoeif 0 16414 NULL
153601 +enable_so_cmd_buf_nr_drm_exynos_g2d_set_cmdlist_16416 cmd_buf_nr drm_exynos_g2d_set_cmdlist 0 16416 NULL
153602 +enable_so_n_sectors_hpfs_super_block_16421 n_sectors hpfs_super_block 0 16421 NULL
153603 +enable_so_bNrInPins_uac_selector_unit_descriptor_16423 bNrInPins uac_selector_unit_descriptor 0 16423 NULL
153604 +enable_so_numa_emulation_fndecl_16441 numa_emulation fndecl 2 16441 NULL
153605 +enable_so_ep_in_usbtest_info_16442 ep_in usbtest_info 0 16442 NULL
153606 +enable_so_pcmcia_irq_pcmcia_socket_16443 pcmcia_irq pcmcia_socket 0 16443 NULL
153607 +enable_so_ReadHSCX_fndecl_16444 ReadHSCX fndecl 0 16444 NULL nohasharray
153608 +enable_so_garp_request_join_fndecl_16444 garp_request_join fndecl 4 16444 &enable_so_ReadHSCX_fndecl_16444
153609 +enable_so_mpu3050_xyz_read_reg_fndecl_16445 mpu3050_xyz_read_reg fndecl 3 16445 NULL
153610 +enable_so_endp_in_zd1201_16446 endp_in zd1201 0 16446 NULL
153611 +enable_so_frame_size_au0828_dev_16447 frame_size au0828_dev 0 16447 NULL
153612 +enable_so_wp_page_copy_fndecl_16450 wp_page_copy fndecl 3 16450 NULL
153613 +enable_so_sdhci_alloc_host_fndecl_16454 sdhci_alloc_host fndecl 2 16454 NULL
153614 +enable_so_nvkm_vm_map_pgt_fndecl_16457 nvkm_vm_map_pgt fndecl 3 16457 NULL
153615 +enable_so_prism2_change_mtu_fndecl_16473 prism2_change_mtu fndecl 2 16473 NULL
153616 +enable_so_m_sectbb_log_xfs_mount_16477 m_sectbb_log xfs_mount 0 16477 NULL nohasharray
153617 +enable_so_nfs_proc_symlink_fndecl_16477 nfs_proc_symlink fndecl 4 16477 &enable_so_m_sectbb_log_xfs_mount_16477
153618 +enable_so_nilfs_iget_fndecl_16478 nilfs_iget fndecl 3 16478 NULL
153619 +enable_so_mtk_alloc_clk_data_fndecl_16481 mtk_alloc_clk_data fndecl 1 16481 NULL
153620 +enable_so_msg_count_amd8111e_rx_dr_16493 msg_count amd8111e_rx_dr 0 16493 NULL
153621 +enable_so_blksz_fw_dl_mwifiex_pcie_device_16498 blksz_fw_dl mwifiex_pcie_device 0 16498 NULL nohasharray
153622 +enable_so_ttm_page_alloc_init_fndecl_16498 ttm_page_alloc_init fndecl 2 16498 &enable_so_blksz_fw_dl_mwifiex_pcie_device_16498
153623 +enable_so_max_srq_wqes_mthca_limits_16499 max_srq_wqes mthca_limits 0 16499 NULL
153624 +enable_so_stride_simplefb_platform_data_16503 stride simplefb_platform_data 0 16503 NULL
153625 +enable_so_crypt_alloc_buffer_fndecl_16511 crypt_alloc_buffer fndecl 2 16511 NULL
153626 +enable_so_cfs_cpt_num_estimate_fndecl_16512 cfs_cpt_num_estimate fndecl 0 16512 NULL
153627 +enable_so_blocks_available_dio_submit_16522 blocks_available dio_submit 0 16522 NULL
153628 +enable_so_xb_suballoc_loc_ocfs2_xattr_block_16523 xb_suballoc_loc ocfs2_xattr_block 0 16523 NULL
153629 +enable_so_io_throttle_count_vnic_snic_config_16529 io_throttle_count vnic_snic_config 0 16529 NULL
153630 +enable_so_comm_size_perf_comm_event_16533 comm_size perf_comm_event 0 16533 NULL
153631 +enable_so_ath10k_read_htt_stats_mask_fndecl_16534 ath10k_read_htt_stats_mask fndecl 3 16534 NULL
153632 +enable_so_lpt_lebs_ubifs_info_16535 lpt_lebs ubifs_info 0 16535 NULL
153633 +enable_so_smk_read_mapped_fndecl_16537 smk_read_mapped fndecl 3 16537 NULL
153634 +enable_so_tmds_register_read_bytes_fndecl_16541 tmds_register_read_bytes fndecl 3 16541 NULL
153635 +enable_so_MaxSimpleVolumes_aac_get_container_count_resp_16542 MaxSimpleVolumes aac_get_container_count_resp 0 16542 NULL
153636 +enable_so_max_mthca_srq_16551 max mthca_srq 0 16551 NULL
153637 +enable_so_max_srq_sz_mlx4_dev_cap_16554 max_srq_sz mlx4_dev_cap 0 16554 NULL
153638 +enable_so_groups_alloc_fndecl_16557 groups_alloc fndecl 1 16557 NULL
153639 +enable_so_ext3_try_to_allocate_fndecl_16565 ext3_try_to_allocate fndecl 0-5 16565 NULL
153640 +enable_so_result_wa_xfer_16568 result wa_xfer 0 16568 NULL
153641 +enable_so_cramfs_uncompress_block_fndecl_16569 cramfs_uncompress_block fndecl 4-2 16569 NULL
153642 +enable_so___mei_cl_send_fndecl_16571 __mei_cl_send fndecl 3 16571 NULL
153643 +enable_so_n_barrier_cbs_vardecl_rcutorture_c_16575 n_barrier_cbs vardecl_rcutorture.c 0 16575 NULL
153644 +enable_so_descriptor_elements_timb_dma_platform_data_channel_16581 descriptor_elements timb_dma_platform_data_channel 0 16581 NULL
153645 +enable_so_n_phy_pm8001_chip_info_16585 n_phy pm8001_chip_info 0 16585 NULL
153646 +enable_so_len_atmel_priv_ioctl_16592 len atmel_priv_ioctl 0 16592 NULL
153647 +enable_so_ino_logfs_block_16599 ino logfs_block 0 16599 NULL
153648 +enable_so_send_to_group_fndecl_16600 send_to_group fndecl 0 16600 NULL
153649 +enable_so_ext4_group_extend_fndecl_16613 ext4_group_extend fndecl 3 16613 NULL
153650 +enable_so_coda_upcall_fndecl_16614 coda_upcall fndecl 2 16614 NULL
153651 +enable_so_amdgpu_ttm_gtt_read_fndecl_16621 amdgpu_ttm_gtt_read fndecl 3 16621 NULL
153652 +enable_so_ceph_fsync_fndecl_16625 ceph_fsync fndecl 2-3 16625 NULL
153653 +enable_so_ext_tree_remove_fndecl_16629 ext_tree_remove fndecl 3-4 16629 NULL nohasharray
153654 +enable_so_uc_outSize_upc_req_16629 uc_outSize upc_req 0 16629 &enable_so_ext_tree_remove_fndecl_16629
153655 +enable_so_fault_inject_write_fndecl_16637 fault_inject_write fndecl 3 16637 NULL
153656 +enable_so_key_id_len_module_signature_16641 key_id_len module_signature 0 16641 NULL
153657 +enable_so_crtc_hsync_start_drm_display_mode_16643 crtc_hsync_start drm_display_mode 0 16643 NULL
153658 +enable_so_svc_pool_map_init_pernode_fndecl_16648 svc_pool_map_init_pernode fndecl 0 16648 NULL
153659 +enable_so_nfc_hci_allocate_device_fndecl_16649 nfc_hci_allocate_device fndecl 8-6 16649 NULL
153660 +enable_so_wpa_ie_len_mwifiex_private_16651 wpa_ie_len mwifiex_private 0 16651 NULL
153661 +enable_so_notify_uva_vmci_set_notify_info_16655 notify_uva vmci_set_notify_info 0 16655 NULL
153662 +enable_so_rxHeader1_edgeport_serial_16658 rxHeader1 edgeport_serial 0 16658 NULL
153663 +enable_so_core_alua_write_tpg_metadata_fndecl_16659 core_alua_write_tpg_metadata fndecl 3 16659 NULL
153664 +enable_so_li_total_channels_vardecl_16663 li_total_channels vardecl 0 16663 NULL
153665 +enable_so_memblock_remove_fndecl_16669 memblock_remove fndecl 2-1 16669 NULL
153666 +enable_so_y_size_mms114_platform_data_16671 y_size mms114_platform_data 0 16671 NULL
153667 +enable_so_of_dma_match_channel_fndecl_16675 of_dma_match_channel fndecl 3 16675 NULL
153668 +enable_so_ext_mem_k_screen_info_16677 ext_mem_k screen_info 0 16677 NULL nohasharray
153669 +enable_so_dlfb_get_edid_fndecl_16677 dlfb_get_edid fndecl 0 16677 &enable_so_ext_mem_k_screen_info_16677
153670 +enable_so_hue_sd_gl860_16686 hue sd_gl860 0 16686 NULL
153671 +enable_so___alloc_objio_seg_fndecl_16688 __alloc_objio_seg fndecl 1 16688 NULL nohasharray
153672 +enable_so_cons_read_buffer_16688 cons read_buffer 0 16688 &enable_so___alloc_objio_seg_fndecl_16688
153673 +enable_so_jffs2_scan_xref_node_fndecl_16692 jffs2_scan_xref_node fndecl 4 16692 NULL
153674 +enable_so_batadv_check_unicast_ttvn_fndecl_16693 batadv_check_unicast_ttvn fndecl 3 16693 NULL
153675 +enable_so_efx_ef10_pci_sriov_enable_fndecl_16694 efx_ef10_pci_sriov_enable fndecl 2 16694 NULL
153676 +enable_so_llcp_tlv_miux_fndecl_16699 llcp_tlv_miux fndecl 0 16699 NULL
153677 +enable_so_ad714x_spi_read_fndecl_16700 ad714x_spi_read fndecl 4 16700 NULL
153678 +enable_so_tlv_buf_len_mwifiex_scan_cmd_config_16702 tlv_buf_len mwifiex_scan_cmd_config 0 16702 NULL nohasharray
153679 +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
153680 +enable_so_hdlc_loop_fndecl_16708 hdlc_loop fndecl 0 16708 NULL
153681 +enable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 3 16712 NULL
153682 +enable_so_ntargets_ips_ha_16718 ntargets ips_ha 0 16718 NULL
153683 +enable_so_pcm_buf_host_rw_ofs_snd_card_asihpi_pcm_16719 pcm_buf_host_rw_ofs snd_card_asihpi_pcm 0 16719 NULL
153684 +enable_so_opcfg_ofsl_cyttsp4_sysinfo_data_16723 opcfg_ofsl cyttsp4_sysinfo_data 0 16723 NULL
153685 +enable_so_multi_io_quirk_mmc_host_ops_16729 multi_io_quirk mmc_host_ops 0 16729 NULL
153686 +enable_so_fat_length_fat_boot_sector_16730 fat_length fat_boot_sector 0 16730 NULL
153687 +enable_so_width_qxl_head_16734 width qxl_head 0 16734 NULL
153688 +enable_so_nchannels_twl6030_gpadc_platform_data_16736 nchannels twl6030_gpadc_platform_data 0 16736 NULL
153689 +enable_so_rx_rate_rx_frames_per_rates_read_fndecl_16737 rx_rate_rx_frames_per_rates_read fndecl 3 16737 NULL nohasharray
153690 +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
153691 +enable_so_kimage_alloc_init_fndecl_16737 kimage_alloc_init fndecl 3 16737 &enable_so_udf_add_extendedattr_fndecl_16737
153692 +enable_so_fault_disconnect_write_fndecl_16742 fault_disconnect_write fndecl 3 16742 NULL
153693 +enable_so_blockshift_sddr55_card_info_16749 blockshift sddr55_card_info 0 16749 NULL
153694 +enable_so_lib80211_wep_encrypt_fndecl_16752 lib80211_wep_encrypt fndecl 2 16752 NULL
153695 +enable_so_skb_pull_rcsum_fndecl_16757 skb_pull_rcsum fndecl 2 16757 NULL
153696 +enable_so_cpu_msix_table_sz_MPT2SAS_ADAPTER_16760 cpu_msix_table_sz MPT2SAS_ADAPTER 0 16760 NULL
153697 +enable_so___vfs_write_fndecl_16765 __vfs_write fndecl 0-3 16765 NULL
153698 +enable_so_cluster_vardecl_pd_c_16770 cluster vardecl_pd.c 0 16770 NULL nohasharray
153699 +enable_so_size_nv50_gr_priv_16770 size nv50_gr_priv 0 16770 &enable_so_cluster_vardecl_pd_c_16770 nohasharray
153700 +enable_so_num_q_csio_wrm_16770 num_q csio_wrm 0 16770 &enable_so_size_nv50_gr_priv_16770
153701 +enable_so_cfg80211_classify8021d_fndecl_16771 cfg80211_classify8021d fndecl 0 16771 NULL
153702 +enable_so_key_len_iw_encode_ext_16773 key_len iw_encode_ext 0 16773 NULL
153703 +enable_so_len_f2fs_str_16776 len f2fs_str 0 16776 NULL
153704 +enable_so_security_inode_need_killpriv_fndecl_16777 security_inode_need_killpriv fndecl 0 16777 NULL
153705 +enable_so_csio_fcoe_rnodes_vardecl_16778 csio_fcoe_rnodes vardecl 0 16778 NULL
153706 +enable_so_qxl_draw_opaque_fb_fndecl_16781 qxl_draw_opaque_fb fndecl 2 16781 NULL
153707 +enable_so_u132_hcd_giveback_urb_fndecl_16783 u132_hcd_giveback_urb fndecl 4 16783 NULL nohasharray
153708 +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
153709 +enable_so_max_iu_len_srp_target_port_16784 max_iu_len srp_target_port 0 16784 NULL nohasharray
153710 +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
153711 +enable_so_num_pfns_virtio_balloon_16784 num_pfns virtio_balloon 0 16784 &enable_so_iscsit_build_text_rsp_fndecl_16784
153712 +enable_so_get_string_fndecl_16789 get_string fndecl 0 16789 NULL
153713 +enable_so_data_in_size_mpt2_ioctl_command_16804 data_in_size mpt2_ioctl_command 0 16804 NULL
153714 +enable_so_batch_shrinker_16806 batch shrinker 0 16806 NULL
153715 +enable_so_spu_subctxt_cnt_qib_user_info_16810 spu_subctxt_cnt qib_user_info 0 16810 NULL nohasharray
153716 +enable_so_iscsit_map_iovec_fndecl_16810 iscsit_map_iovec fndecl 4-3-0 16810 &enable_so_spu_subctxt_cnt_qib_user_info_16810
153717 +enable_so_diva_xdi_read_fndecl_16814 diva_xdi_read fndecl 0 16814 NULL
153718 +enable_so_offset_btrfs_disk_key_16819 offset btrfs_disk_key 0 16819 NULL
153719 +enable_so_vxlan_gro_remcsum_fndecl_16823 vxlan_gro_remcsum fndecl 5-4-2 16823 NULL
153720 +enable_so_count_range_bits_fndecl_16830 count_range_bits fndecl 0-3 16830 NULL
153721 +enable_so_audit_send_reply_fndecl_16835 audit_send_reply fndecl 7 16835 NULL
153722 +enable_so_max_gen_ptrs_vardecl_net_namespace_c_16838 max_gen_ptrs vardecl_net_namespace.c 0 16838 NULL
153723 +enable_so_esrt_data_size_vardecl_esrt_c_16842 esrt_data_size vardecl_esrt.c 0 16842 NULL nohasharray
153724 +enable_so_alignment_ubi_mkvol_req_16842 alignment ubi_mkvol_req 0 16842 &enable_so_esrt_data_size_vardecl_esrt_c_16842
153725 +enable_so_tx_headroom_nfc_digital_dev_16844 tx_headroom nfc_digital_dev 0 16844 NULL
153726 +enable_so_ccp_do_cmac_update_fndecl_16848 ccp_do_cmac_update fndecl 2 16848 NULL
153727 +enable_so_base_jfs_log_16858 base jfs_log 0 16858 NULL
153728 +enable_so_ieee80211_if_read_dot11MeshHWMPactivePathTimeout_fndecl_16859 ieee80211_if_read_dot11MeshHWMPactivePathTimeout fndecl 3 16859 NULL
153729 +enable_so_radeon_bo_create_fndecl_16863 radeon_bo_create fndecl 2 16863 NULL
153730 +enable_so_no_channels_ltr501_chip_info_16866 no_channels ltr501_chip_info 0 16866 NULL nohasharray
153731 +enable_so_cnic_alloc_new_id_fndecl_16866 cnic_alloc_new_id fndecl 0 16866 &enable_so_no_channels_ltr501_chip_info_16866
153732 +enable_so_drm_property_create_blob_fndecl_16869 drm_property_create_blob fndecl 2 16869 NULL
153733 +enable_so_size_nvs_page_16880 size nvs_page 0 16880 NULL
153734 +enable_so_cik_get_csb_size_fndecl_16882 cik_get_csb_size fndecl 0 16882 NULL
153735 +enable_so__ore_add_stripe_unit_fndecl_16884 _ore_add_stripe_unit fndecl 3-6 16884 NULL nohasharray
153736 +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
153737 +enable_so_from_offset_xt_string_info_16886 from_offset xt_string_info 0 16886 NULL nohasharray
153738 +enable_so_dma_buf_size_ddb_output_16886 dma_buf_size ddb_output 0 16886 &enable_so_from_offset_xt_string_info_16886
153739 +enable_so_sl_change_mtu_fndecl_16887 sl_change_mtu fndecl 2 16887 NULL
153740 +enable_so_register_sound_special_device_fndecl_16891 register_sound_special_device fndecl 2 16891 NULL nohasharray
153741 +enable_so_audmux_read_file_fndecl_16891 audmux_read_file fndecl 3 16891 &enable_so_register_sound_special_device_fndecl_16891
153742 +enable_so_buf_sz_ath10k_pci_pipe_16896 buf_sz ath10k_pci_pipe 0 16896 NULL
153743 +enable_so_ncbflooders_vardecl_rcutorture_c_16899 ncbflooders vardecl_rcutorture.c 0 16899 NULL
153744 +enable_so_smk_write_load_self_fndecl_16901 smk_write_load_self fndecl 3 16901 NULL
153745 +enable_so_cqe_size_mlx4_caps_16902 cqe_size mlx4_caps 0 16902 NULL
153746 +enable_so_integrity_digsig_verify_fndecl_16903 integrity_digsig_verify fndecl 3 16903 NULL
153747 +enable_so_msi2500_ctrl_msg_fndecl_16907 msi2500_ctrl_msg fndecl 0 16907 NULL
153748 +enable_so_n_ai_urbs_usbduxsigma_private_16912 n_ai_urbs usbduxsigma_private 0 16912 NULL
153749 +enable_so_tx_ring_order_vardecl_main_c_16915 tx_ring_order vardecl_main.c 0 16915 NULL
153750 +enable_so_fsnotify_fndecl_16916 fsnotify fndecl 0 16916 NULL nohasharray
153751 +enable_so_idx_mxser_board_16916 idx mxser_board 0 16916 &enable_so_fsnotify_fndecl_16916
153752 +enable_so_geneve_build_header_fndecl_16917 geneve_build_header fndecl 4 16917 NULL
153753 +enable_so_bpf_program_num_elem_xt_bpf_info_16920 bpf_program_num_elem xt_bpf_info 0 16920 NULL
153754 +enable_so_cont_size_rock_state_16925 cont_size rock_state 0 16925 NULL
153755 +enable_so_snd_rawmidi_transmit_fndecl_16928 snd_rawmidi_transmit fndecl 0-3 16928 NULL
153756 +enable_so_sys_mbind_fndecl_16933 sys_mbind fndecl 2-1-5 16933 NULL
153757 +enable_so_size_intel_ringbuffer_16937 size intel_ringbuffer 0 16937 NULL
153758 +enable_so_vidioc_dqbuf_fndecl_16948 vidioc_dqbuf fndecl 0 16948 NULL
153759 +enable_so_ath10k_wmi_alloc_skb_fndecl_16949 ath10k_wmi_alloc_skb fndecl 2 16949 NULL
153760 +enable_so_len_pcan_usb_pro_rxmsg_16950 len pcan_usb_pro_rxmsg 0 16950 NULL
153761 +enable_so_intel_framebuffer_pitch_for_width_fndecl_16956 intel_framebuffer_pitch_for_width fndecl 0-2-1 16956 NULL
153762 +enable_so_admin_mtu_ipoib_dev_priv_16960 admin_mtu ipoib_dev_priv 0 16960 NULL
153763 +enable_so_vcs_read_fndecl_16962 vcs_read fndecl 3 16962 NULL
153764 +enable_so_minor_oss_minor_dev_16965 minor oss_minor_dev 0 16965 NULL
153765 +enable_so_cifs_sync_write_fndecl_16972 cifs_sync_write fndecl 6 16972 NULL
153766 +enable_so_fat_reserved_fat_bios_param_block_16977 fat_reserved fat_bios_param_block 0 16977 NULL
153767 +enable_so_virtio_gpu_alloc_cmd_fndecl_16978 virtio_gpu_alloc_cmd fndecl 3 16978 NULL
153768 +enable_so_size_drm_vmw_shader_create_arg_16979 size drm_vmw_shader_create_arg 0 16979 NULL
153769 +enable_so_inquiry_len_scsi_device_16981 inquiry_len scsi_device 0 16981 NULL nohasharray
153770 +enable_so_num_tx_queues_ixgbe_adapter_16981 num_tx_queues ixgbe_adapter 0 16981 &enable_so_inquiry_len_scsi_device_16981
153771 +enable_so_zlib_uncompress_fndecl_16988 zlib_uncompress fndecl 6-5 16988 NULL
153772 +enable_so_tt3650_ci_msg_locked_fndecl_16990 tt3650_ci_msg_locked fndecl 4 16990 NULL
153773 +enable_so_iser_rcv_completion_fndecl_16995 iser_rcv_completion fndecl 2 16995 NULL nohasharray
153774 +enable_so_src_base_apei_exec_context_16995 src_base apei_exec_context 0 16995 &enable_so_iser_rcv_completion_fndecl_16995
153775 +enable_so_endp_out2_zd1201_16998 endp_out2 zd1201 0 16998 NULL
153776 +enable_so_be_fill_vf_res_template_fndecl_16999 be_fill_vf_res_template fndecl 3 16999 NULL
153777 +enable_so_cifs_min_rcv_vardecl_17001 cifs_min_rcv vardecl 0 17001 NULL
153778 +enable_so_id_rtc_device_17005 id rtc_device 0 17005 NULL
153779 +enable_so_snd_hdac_bus_exec_verb_fndecl_17009 snd_hdac_bus_exec_verb fndecl 0 17009 NULL
153780 +enable_so_consumed_unix_skb_parms_17012 consumed unix_skb_parms 0 17012 NULL
153781 +enable_so_ds_segment_shift_logfs_disk_super_17013 ds_segment_shift logfs_disk_super 0 17013 NULL
153782 +enable_so_u132_hcd_abandon_urb_fndecl_17016 u132_hcd_abandon_urb fndecl 4 17016 NULL
153783 +enable_so_error_param2_vardecl_einj_c_17022 error_param2 vardecl_einj.c 0 17022 NULL nohasharray
153784 +enable_so_num_pads_media_entity_17022 num_pads media_entity 0 17022 &enable_so_error_param2_vardecl_einj_c_17022
153785 +enable_so_ext4_mb_load_buddy_fndecl_17030 ext4_mb_load_buddy fndecl 0-2 17030 NULL
153786 +enable_so_rx_buf_len_i40e_ring_17034 rx_buf_len i40e_ring 0 17034 NULL
153787 +enable_so_hw_context_size_drm_i915_private_17036 hw_context_size drm_i915_private 0 17036 NULL
153788 +enable_so_inuse_kmem_cache_17038 inuse kmem_cache 0 17038 NULL
153789 +enable_so_reiserfs_sync_file_fndecl_17045 reiserfs_sync_file fndecl 2-3 17045 NULL
153790 +enable_so_alloc_targets_fndecl_17049 alloc_targets fndecl 2 17049 NULL nohasharray
153791 +enable_so_qla4xxx_post_ping_evt_work_fndecl_17049 qla4xxx_post_ping_evt_work fndecl 4 17049 &enable_so_alloc_targets_fndecl_17049
153792 +enable_so_spi_write_then_read_fndecl_17050 spi_write_then_read fndecl 3-5 17050 NULL
153793 +enable_so_ext4_ext_map_blocks_fndecl_17053 ext4_ext_map_blocks fndecl 0 17053 NULL nohasharray
153794 +enable_so_max_sge_rds_ib_device_17053 max_sge rds_ib_device 0 17053 &enable_so_ext4_ext_map_blocks_fndecl_17053
153795 +enable_so_xstate_size_vardecl_17054 xstate_size vardecl 0 17054 NULL
153796 +enable_so_command_setcompressiontarget_fndecl_17055 command_setcompressiontarget fndecl 0 17055 NULL
153797 +enable_so_ufx_submit_urb_fndecl_17065 ufx_submit_urb fndecl 3 17065 NULL
153798 +enable_so_venus_lookup_fndecl_17066 venus_lookup fndecl 4 17066 NULL
153799 +enable_so_number_of_packets_usbip_header_cmd_submit_17069 number_of_packets usbip_header_cmd_submit 0 17069 NULL
153800 +enable_so_ext2_commit_chunk_fndecl_17074 ext2_commit_chunk fndecl 3 17074 NULL
153801 +enable_so_vmbus_sendpacket_pagebuffer_ctl_fndecl_17076 vmbus_sendpacket_pagebuffer_ctl fndecl 3-5 17076 NULL
153802 +enable_so_offset_xen_netif_tx_request_17081 offset xen_netif_tx_request 0 17081 NULL
153803 +enable_so_rsp_que_len_qla_hw_data_17082 rsp_que_len qla_hw_data 0 17082 NULL nohasharray
153804 +enable_so_ax88179_read_cmd_fndecl_17082 ax88179_read_cmd fndecl 5 17082 &enable_so_rsp_que_len_qla_hw_data_17082
153805 +enable_so_ccp_prepare_data_fndecl_17091 ccp_prepare_data fndecl 4 17091 NULL
153806 +enable_so_xfs_file_fallocate_fndecl_17093 xfs_file_fallocate fndecl 3-4 17093 NULL
153807 +enable_so_obfuscate_tx_buffer_fndecl_17095 obfuscate_tx_buffer fndecl 0-2 17095 NULL
153808 +enable_so_size_ipack_region_17100 size ipack_region 0 17100 NULL nohasharray
153809 +enable_so_phys_base_fore200e_17100 phys_base fore200e 0 17100 &enable_so_size_ipack_region_17100
153810 +enable_so_ocfs2_xattr_trusted_set_fndecl_17102 ocfs2_xattr_trusted_set fndecl 4 17102 NULL nohasharray
153811 +enable_so_ib_uverbs_resize_cq_fndecl_17102 ib_uverbs_resize_cq fndecl 3 17102 &enable_so_ocfs2_xattr_trusted_set_fndecl_17102 nohasharray
153812 +enable_so_nr_voices_seq_oss_synth_17102 nr_voices seq_oss_synth 0 17102 &enable_so_ib_uverbs_resize_cq_fndecl_17102
153813 +enable_so_cx18_queue_get_mdl_fndecl_17103 cx18_queue_get_mdl fndecl 3 17103 NULL
153814 +enable_so_dlm_user_request_fndecl_17104 dlm_user_request fndecl 6 17104 NULL nohasharray
153815 +enable_so_len_st_fifo_entry_17104 len st_fifo_entry 0 17104 &enable_so_dlm_user_request_fndecl_17104 nohasharray
153816 +enable_so_ro_step_fndecl_17104 ro_step fndecl 2 17104 &enable_so_len_st_fifo_entry_17104
153817 +enable_so_sdio_readsb_fndecl_17108 sdio_readsb fndecl 4 17108 NULL
153818 +enable_so_count_stframe_17112 count stframe 0 17112 NULL
153819 +enable_so_minors_gendisk_17113 minors gendisk 0 17113 NULL
153820 +enable_so_zoneshift_alauda_media_info_17115 zoneshift alauda_media_info 0 17115 NULL
153821 +enable_so_xfs_iomap_prealloc_size_fndecl_17118 xfs_iomap_prealloc_size fndecl 3 17118 NULL
153822 +enable_so_s_size_ipath_qp_17119 s_size ipath_qp 0 17119 NULL
153823 +enable_so_sample_rate_pcxhr_mgr_17120 sample_rate pcxhr_mgr 0 17120 NULL
153824 +enable_so_size_nvkm_gpuobj_class_17128 size nvkm_gpuobj_class 0 17128 NULL
153825 +enable_so_in___kfifo_17131 in __kfifo 0 17131 NULL nohasharray
153826 +enable_so_hci_sock_recvmsg_fndecl_17131 hci_sock_recvmsg fndecl 3 17131 &enable_so_in___kfifo_17131
153827 +enable_so_nilfs_sufile_do_set_error_fndecl_17133 nilfs_sufile_do_set_error fndecl 2 17133 NULL
153828 +enable_so_fsl_edma_desc_residue_fndecl_17134 fsl_edma_desc_residue fndecl 0 17134 NULL
153829 +enable_so_lnet_ipif_enumerate_fndecl_17135 lnet_ipif_enumerate fndecl 0 17135 NULL
153830 +enable_so_irq_stmpe_variant_block_17137 irq stmpe_variant_block 0 17137 NULL
153831 +enable_so_csio_lun_qdepth_vardecl_17143 csio_lun_qdepth vardecl 0 17143 NULL
153832 +enable_so_blockSize_ms_lib_ctrl_17144 blockSize ms_lib_ctrl 0 17144 NULL
153833 +enable_so_irq_dma_yealink_dev_17149 irq_dma yealink_dev 0 17149 NULL
153834 +enable_so_acpi_ns_get_pathname_length_fndecl_17152 acpi_ns_get_pathname_length fndecl 0 17152 NULL
153835 +enable_so_unmap_region_fndecl_17166 unmap_region fndecl 1 17166 NULL nohasharray
153836 +enable_so_len_read_buffer_17166 len read_buffer 0 17166 &enable_so_unmap_region_fndecl_17166
153837 +enable_so_x86_clflush_size_cpuinfo_x86_17167 x86_clflush_size cpuinfo_x86 0 17167 NULL
153838 +enable_so_mcp251x_hw_tx_frame_fndecl_17170 mcp251x_hw_tx_frame fndecl 3 17170 NULL
153839 +enable_so_nvkm_instmem_alloc_fndecl_17172 nvkm_instmem_alloc fndecl 4-3 17172 NULL
153840 +enable_so_b43legacy_plcp_get_bitrate_idx_cck_fndecl_17174 b43legacy_plcp_get_bitrate_idx_cck fndecl 0 17174 NULL nohasharray
153841 +enable_so_skb_copy_expand_fndecl_17174 skb_copy_expand fndecl 2 17174 &enable_so_b43legacy_plcp_get_bitrate_idx_cck_fndecl_17174 nohasharray
153842 +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
153843 +enable_so_mtu_vnic_enet_config_17176 mtu vnic_enet_config 0 17176 NULL nohasharray
153844 +enable_so_ip_options_get_finish_fndecl_17176 ip_options_get_finish fndecl 4 17176 &enable_so_mtu_vnic_enet_config_17176
153845 +enable_so_start_block_swap_extent_17179 start_block swap_extent 0 17179 NULL
153846 +enable_so_offset_rbuf_info_17181 offset rbuf_info 0 17181 NULL
153847 +enable_so_luma_size_s5p_mfc_ctx_17182 luma_size s5p_mfc_ctx 0 17182 NULL
153848 +enable_so_pci_raw_set_power_state_fndecl_17186 pci_raw_set_power_state fndecl 0 17186 NULL
153849 +enable_so_sys_pread64_fndecl_17210 sys_pread64 fndecl 3 17210 NULL
153850 +enable_so_logical_blk_num_osst_tape_17216 logical_blk_num osst_tape 0 17216 NULL
153851 +enable_so_ud_clear_fndecl_17219 ud_clear fndecl 6-4-5-3 17219 NULL
153852 +enable_so_iwl_dbgfs_bt_cmd_read_fndecl_17225 iwl_dbgfs_bt_cmd_read fndecl 3 17225 NULL
153853 +enable_so_vsync_start_drm_display_mode_17229 vsync_start drm_display_mode 0 17229 NULL
153854 +enable_so_ioread32be_fndecl_17230 ioread32be fndecl 0 17230 NULL
153855 +enable_so___btrfs_add_ordered_extent_fndecl_17234 __btrfs_add_ordered_extent fndecl 4-2-5-3 17234 NULL
153856 +enable_so_vxge_device_register_fndecl_17243 vxge_device_register fndecl 4 17243 NULL nohasharray
153857 +enable_so_alloc_isa_irq_from_domain_fndecl_17243 alloc_isa_irq_from_domain fndecl 2 17243 &enable_so_vxge_device_register_fndecl_17243
153858 +enable_so_relocated_ramdisk_vardecl_17246 relocated_ramdisk vardecl 0 17246 NULL
153859 +enable_so_get_pdptr_kvm_mmu_17247 get_pdptr kvm_mmu 0 17247 NULL
153860 +enable_so_count_acpi_object_package_17250 count acpi_object_package 0 17250 NULL
153861 +enable_so_diva_os_copy_from_user_fndecl_17251 diva_os_copy_from_user fndecl 4 17251 NULL
153862 +enable_so_len_spi_ioc_transfer_17252 len spi_ioc_transfer 0 17252 NULL
153863 +enable_so_bm_resync_fo_drbd_device_17253 bm_resync_fo drbd_device 0 17253 NULL nohasharray
153864 +enable_so_LastFreeEUN_INFTLrecord_17253 LastFreeEUN INFTLrecord 0 17253 &enable_so_bm_resync_fo_drbd_device_17253
153865 +enable_so_sctp_v6_err_fndecl_17257 sctp_v6_err fndecl 5 17257 NULL nohasharray
153866 +enable_so_num_vfs_be_adapter_17257 num_vfs be_adapter 0 17257 &enable_so_sctp_v6_err_fndecl_17257
153867 +enable_so_tegra_spi_start_transfer_one_fndecl_17260 tegra_spi_start_transfer_one fndecl 0 17260 NULL
153868 +enable_so_page_to_skb_fndecl_17261 page_to_skb fndecl 5-4-6 17261 NULL
153869 +enable_so_line_uart_port_17263 line uart_port 0 17263 NULL
153870 +enable_so_fat_sec_per_clus_fat_bios_param_block_17264 fat_sec_per_clus fat_bios_param_block 0 17264 NULL
153871 +enable_so_subpgsize_vardecl_subpagetest_c_17265 subpgsize vardecl_subpagetest.c 0 17265 NULL
153872 +enable_so_alloc_candev_fndecl_17267 alloc_candev fndecl 2-1 17267 NULL
153873 +enable_so_bnx2_rx_skb_fndecl_17272 bnx2_rx_skb fndecl 5-4 17272 NULL nohasharray
153874 +enable_so_dfs_global_file_read_fndecl_17272 dfs_global_file_read fndecl 3 17272 &enable_so_bnx2_rx_skb_fndecl_17272 nohasharray
153875 +enable_so_offs_nand_bbt_descr_17272 offs nand_bbt_descr 0 17272 &enable_so_dfs_global_file_read_fndecl_17272
153876 +enable_so_w_stk_size_17273 w stk_size 0 17273 NULL nohasharray
153877 +enable_so_size_msdos_dir_entry_17273 size msdos_dir_entry 0 17273 &enable_so_w_stk_size_17273
153878 +enable_so_bnx2_nvram_write_fndecl_17277 bnx2_nvram_write fndecl 2-4 17277 NULL
153879 +enable_so_seq_buf_alloc_fndecl_17287 seq_buf_alloc fndecl 1 17287 NULL
153880 +enable_so_desired_speed_ide_drive_s_17293 desired_speed ide_drive_s 0 17293 NULL
153881 +enable_so_sup_segnum_nilfs_suinfo_update_17298 sup_segnum nilfs_suinfo_update 0 17298 NULL
153882 +enable_so_read_reg_sja1000_priv_17306 read_reg sja1000_priv 0 17306 NULL
153883 +enable_so_bytes_per_scan_line_vbe_mode_ib_17308 bytes_per_scan_line vbe_mode_ib 0 17308 NULL
153884 +enable_so_ib_ipath_qp_table_size_vardecl_ipath_verbs_c_17310 ib_ipath_qp_table_size vardecl_ipath_verbs.c 0 17310 NULL
153885 +enable_so_dlen_isdn_ppp_resetparams_17312 dlen isdn_ppp_resetparams 0 17312 NULL
153886 +enable_so_cfs_trace_dump_debug_buffer_usrstr_fndecl_17318 cfs_trace_dump_debug_buffer_usrstr fndecl 2 17318 NULL
153887 +enable_so_rpcrdma_create_chunks_fndecl_17322 rpcrdma_create_chunks fndecl 0 17322 NULL
153888 +enable_so___add_pages_fndecl_17323 __add_pages fndecl 3 17323 NULL
153889 +enable_so_top_mthca_alloc_17324 top mthca_alloc 0 17324 NULL nohasharray
153890 +enable_so_fw_memory_size_qla_hw_data_17324 fw_memory_size qla_hw_data 0 17324 &enable_so_top_mthca_alloc_17324
153891 +enable_so_blockmask_sddr09_card_info_17325 blockmask sddr09_card_info 0 17325 NULL
153892 +enable_so_mru_ipw_network_17329 mru ipw_network 0 17329 NULL
153893 +enable_so_reserved_eqs_mlx4_caps_17333 reserved_eqs mlx4_caps 0 17333 NULL
153894 +enable_so_freeblk_xfs_da_geometry_17334 freeblk xfs_da_geometry 0 17334 NULL
153895 +enable_so_dev_count_kvm_io_bus_17340 dev_count kvm_io_bus 0 17340 NULL
153896 +enable_so_MaxBuses__MSG_IOC_FACTS_REPLY_17350 MaxBuses _MSG_IOC_FACTS_REPLY 0 17350 NULL
153897 +enable_so_dvb_dmxdev_read_sec_fndecl_17351 dvb_dmxdev_read_sec fndecl 4 17351 NULL
153898 +enable_so_xfs_trans_get_efi_fndecl_17353 xfs_trans_get_efi fndecl 2 17353 NULL nohasharray
153899 +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
153900 +enable_so_tipc_alloc_entry_fndecl_17360 tipc_alloc_entry fndecl 2 17360 NULL
153901 +enable_so_udf_tgetblk_fndecl_17362 udf_tgetblk fndecl 2 17362 NULL nohasharray
153902 +enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362 cxgb4i_max_connect vardecl_cxgb4i.c 0 17362 &enable_so_udf_tgetblk_fndecl_17362
153903 +enable_so_config_desc_fndecl_17365 config_desc fndecl 0 17365 NULL
153904 +enable_so_extra_inflate_state_17367 extra inflate_state 0 17367 NULL
153905 +enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nilfs_sufile_mark_dirty fndecl 2 17370 NULL nohasharray
153906 +enable_so_pn533_set_configuration_fndecl_17370 pn533_set_configuration fndecl 4 17370 &enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nohasharray
153907 +enable_so_num_txd_qlcnic_adapter_17370 num_txd qlcnic_adapter 0 17370 &enable_so_pn533_set_configuration_fndecl_17370
153908 +enable_so_name_len_vardecl_initramfs_c_17373 name_len vardecl_initramfs.c 0 17373 NULL
153909 +enable_so_acl_len_nfs_getaclargs_17378 acl_len nfs_getaclargs 0 17378 NULL
153910 +enable_so_vram_total_vardecl_uvesafb_c_17381 vram_total vardecl_uvesafb.c 0 17381 NULL
153911 +enable_so_scatt_size_eata_info_17383 scatt_size eata_info 0 17383 NULL
153912 +enable_so_hw_hdr_len_cardstate_17385 hw_hdr_len cardstate 0 17385 NULL
153913 +enable_so_ata_read_log_page_fndecl_17386 ata_read_log_page fndecl 5 17386 NULL
153914 +enable_so_f_hidg_write_fndecl_17391 f_hidg_write fndecl 3 17391 NULL
153915 +enable_so_ext3_group_extend_fndecl_17396 ext3_group_extend fndecl 3 17396 NULL
153916 +enable_so_raw_issuer_size_pkcs7_parse_context_17399 raw_issuer_size pkcs7_parse_context 0 17399 NULL
153917 +enable_so_snd_hda_create_spdif_in_ctls_fndecl_17414 snd_hda_create_spdif_in_ctls fndecl 2 17414 NULL
153918 +enable_so_posix_acl_fix_xattr_userns_fndecl_17415 posix_acl_fix_xattr_userns fndecl 4 17415 NULL
153919 +enable_so_dlm_master_lookup_fndecl_17417 dlm_master_lookup fndecl 4 17417 NULL
153920 +enable_so_ufx_setup_modes_fndecl_17419 ufx_setup_modes fndecl 4 17419 NULL
153921 +enable_so_l2up_create_fndecl_17421 l2up_create fndecl 3 17421 NULL
153922 +enable_so_keys_jset_17429 keys jset 0 17429 NULL
153923 +enable_so_btrfs_cmp_data_prepare_fndecl_17436 btrfs_cmp_data_prepare fndecl 5 17436 NULL
153924 +enable_so_dd_fcvport_size_fc_function_template_17449 dd_fcvport_size fc_function_template 0 17449 NULL
153925 +enable_so_reply_size_ncp_server_17456 reply_size ncp_server 0 17456 NULL
153926 +enable_so_bufsz_kexec_segment_17458 bufsz kexec_segment 0 17458 NULL
153927 +enable_so___alloc_bootmem_node_nopanic_fndecl_17459 __alloc_bootmem_node_nopanic fndecl 3-2-4 17459 NULL
153928 +enable_so_bits_bgpio_chip_17461 bits bgpio_chip 0 17461 NULL
153929 +enable_so_cipso_v4_map_lvl_hton_fndecl_17481 cipso_v4_map_lvl_hton fndecl 0 17481 NULL
153930 +enable_so_sddr09_write_inplace_fndecl_17484 sddr09_write_inplace fndecl 4-3-6 17484 NULL nohasharray
153931 +enable_so_replace_fd_fndecl_17484 replace_fd fndecl 1 17484 &enable_so_sddr09_write_inplace_fndecl_17484
153932 +enable_so_e_block_mb_cache_entry_17485 e_block mb_cache_entry 0 17485 NULL
153933 +enable_so_mlx4_ib_reg_user_mr_fndecl_17492 mlx4_ib_reg_user_mr fndecl 2-3 17492 NULL
153934 +enable_so_qp_memcpy_from_queue_fndecl_17500 qp_memcpy_from_queue fndecl 5-4 17500 NULL
153935 +enable_so_user_buffer_offset_binder_proc_17508 user_buffer_offset binder_proc 0 17508 NULL
153936 +enable_so_invalidate_fndecl_17509 invalidate fndecl 4-3 17509 NULL
153937 +enable_so_read_dst_fndecl_17513 read_dst fndecl 3 17513 NULL nohasharray
153938 +enable_so_npages_free_dma_pool_17513 npages_free dma_pool 0 17513 &enable_so_read_dst_fndecl_17513
153939 +enable_so_dvb_dmxdev_init_fndecl_17523 dvb_dmxdev_init fndecl 0 17523 NULL
153940 +enable_so_id_rtsx_pcr_17526 id rtsx_pcr 0 17526 NULL
153941 +enable_so_ext4_iget_fndecl_17527 ext4_iget fndecl 2 17527 NULL
153942 +enable_so_mei_read_fndecl_17528 mei_read fndecl 3 17528 NULL
153943 +enable_so_max3421_urb_dequeue_fndecl_17530 max3421_urb_dequeue fndecl 3 17530 NULL
153944 +enable_so_offset_icmp_bxm_17531 offset icmp_bxm 0 17531 NULL
153945 +enable_so_start_nilfs_write_info_17534 start nilfs_write_info 0 17534 NULL
153946 +enable_so_recv_mesg_maxlen_netns_ipvs_17535 recv_mesg_maxlen netns_ipvs 0 17535 NULL
153947 +enable_so_encode_nfspath3_fndecl_17536 encode_nfspath3 fndecl 3 17536 NULL nohasharray
153948 +enable_so_rndis_set_oid_fndecl_17536 rndis_set_oid fndecl 4 17536 &enable_so_encode_nfspath3_fndecl_17536
153949 +enable_so_how_many_channels_fndecl_17540 how_many_channels fndecl 0 17540 NULL
153950 +enable_so_wdm_read_fndecl_17542 wdm_read fndecl 3 17542 NULL
153951 +enable_so_fb_alloc_cmap_fndecl_17545 fb_alloc_cmap fndecl 2 17545 NULL
153952 +enable_so_root_cluster_msdos_sb_info_17547 root_cluster msdos_sb_info 0 17547 NULL
153953 +enable_so_mlx4_en_rx_skb_fndecl_17554 mlx4_en_rx_skb fndecl 4 17554 NULL
153954 +enable_so_mchip_comp_read_frame_fndecl_17555 mchip_comp_read_frame fndecl 0-1 17555 NULL
153955 +enable_so_channels_cardstate_17560 channels cardstate 0 17560 NULL
153956 +enable_so_qcaspi_read_legacy_fndecl_17563 qcaspi_read_legacy fndecl 3 17563 NULL
153957 +enable_so_lcd_vsync_len_atyfb_par_17565 lcd_vsync_len atyfb_par 0 17565 NULL
153958 +enable_so_stack_size_ahd_softc_17574 stack_size ahd_softc 0 17574 NULL
153959 +enable_so_wMaxPacketSize_usb_rpipe_descriptor_17578 wMaxPacketSize usb_rpipe_descriptor 0 17578 NULL
153960 +enable_so_sb_fs_size_hpfs_sb_info_17581 sb_fs_size hpfs_sb_info 0 17581 NULL
153961 +enable_so_SyS_semtimedop_fndecl_17584 SyS_semtimedop fndecl 3 17584 NULL
153962 +enable_so_reg_bytes_regmap_format_17598 reg_bytes regmap_format 0 17598 NULL
153963 +enable_so_disk_num_bytes_btrfs_file_extent_item_17599 disk_num_bytes btrfs_file_extent_item 0 17599 NULL
153964 +enable_so_qlf_len_xfs_dq_logformat_17603 qlf_len xfs_dq_logformat 0 17603 NULL nohasharray
153965 +enable_so_ent_bread_fatent_operations_17603 ent_bread fatent_operations 0 17603 &enable_so_qlf_len_xfs_dq_logformat_17603
153966 +enable_so_isoc_ep_stk_camera_17604 isoc_ep stk_camera 0 17604 NULL nohasharray
153967 +enable_so_ext3_iget_fndecl_17604 ext3_iget fndecl 2 17604 &enable_so_isoc_ep_stk_camera_17604
153968 +enable_so_min_alloc_order_gen_pool_17628 min_alloc_order gen_pool 0 17628 NULL
153969 +enable_so_num_peri_pl330_config_17630 num_peri pl330_config 0 17630 NULL
153970 +enable_so_ctxts_extrabuf_qib_devdata_17634 ctxts_extrabuf qib_devdata 0 17634 NULL
153971 +enable_so_video_linelength_sis_video_info_17642 video_linelength sis_video_info 0 17642 NULL
153972 +enable_so_wl12xx_sdio_raw_read_fndecl_17648 wl12xx_sdio_raw_read fndecl 4 17648 NULL
153973 +enable_so_buf_len_ceph_none_authorizer_17652 buf_len ceph_none_authorizer 0 17652 NULL nohasharray
153974 +enable_so_dvb_dmx_init_fndecl_17652 dvb_dmx_init fndecl 0 17652 &enable_so_buf_len_ceph_none_authorizer_17652
153975 +enable_so_size_mem_array_17655 size mem_array 0 17655 NULL
153976 +enable_so_size_scsi_host_sg_pool_17661 size scsi_host_sg_pool 0 17661 NULL
153977 +enable_so_stereo_cmipci_sb_reg_17667 stereo cmipci_sb_reg 0 17667 NULL
153978 +enable_so_maybe_insert_hole_fndecl_17668 maybe_insert_hole fndecl 4-3 17668 NULL
153979 +enable_so_vdma_mem_alloc_fndecl_17672 vdma_mem_alloc fndecl 1 17672 NULL
153980 +enable_so_wl1251_cmd_template_set_fndecl_17679 wl1251_cmd_template_set fndecl 4 17679 NULL
153981 +enable_so_memory_block_size_probed_vardecl_init_64_c_17683 memory_block_size_probed vardecl_init_64.c 0 17683 NULL nohasharray
153982 +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
153983 +enable_so_iov_misc_count_iscsi_cmd_17684 iov_misc_count iscsi_cmd 0 17684 NULL nohasharray
153984 +enable_so_NFTL_formatblock_fndecl_17684 NFTL_formatblock fndecl 2 17684 &enable_so_iov_misc_count_iscsi_cmd_17684
153985 +enable_so_ivtv_copy_buf_to_user_fndecl_17692 ivtv_copy_buf_to_user fndecl 4 17692 NULL
153986 +enable_so_opcfg_ofs_cyttsp4_sysinfo_ofs_17693 opcfg_ofs cyttsp4_sysinfo_ofs 0 17693 NULL
153987 +enable_so_bytes_left_ccp_sg_workarea_17701 bytes_left ccp_sg_workarea 0 17701 NULL
153988 +enable_so__snd_pcm_hw_param_max_fndecl_17702 _snd_pcm_hw_param_max fndecl 3 17702 NULL
153989 +enable_so_rx_dma_buf_sz_altera_tse_private_17708 rx_dma_buf_sz altera_tse_private 0 17708 NULL
153990 +enable_so_u132_urb_dequeue_fndecl_17714 u132_urb_dequeue fndecl 3 17714 NULL
153991 +enable_so_csio_wr_alloc_q_fndecl_17717 csio_wr_alloc_q fndecl 3-2-6 17717 NULL nohasharray
153992 +enable_so_SyS_setgroups_fndecl_17717 SyS_setgroups fndecl 1 17717 &enable_so_csio_wr_alloc_q_fndecl_17717
153993 +enable_so_rx_max_ring_bnx2_17721 rx_max_ring bnx2 0 17721 NULL
153994 +enable_so_st21nfca_hci_probe_fndecl_17724 st21nfca_hci_probe fndecl 6-4 17724 NULL
153995 +enable_so_snd_efw_command_get_phys_meters_fndecl_17725 snd_efw_command_get_phys_meters fndecl 3 17725 NULL
153996 +enable_so_qp_host_get_user_memory_fndecl_17726 qp_host_get_user_memory fndecl 1-2 17726 NULL
153997 +enable_so_nilfs_cpfile_delete_checkpoint_fndecl_17728 nilfs_cpfile_delete_checkpoint fndecl 2 17728 NULL
153998 +enable_so_xdr_write_pages_fndecl_17729 xdr_write_pages fndecl 4-3 17729 NULL
153999 +enable_so_minor_video_device_17733 minor video_device 0 17733 NULL
154000 +enable_so_ios_per_ctrl_hba_parameters_17734 ios_per_ctrl hba_parameters 0 17734 NULL
154001 +enable_so_mqueue_read_file_fndecl_17735 mqueue_read_file fndecl 3 17735 NULL
154002 +enable_so_f_hidg_read_fndecl_17741 f_hidg_read fndecl 3 17741 NULL
154003 +enable_so_num_desc_blocks_fndecl_17744 num_desc_blocks fndecl 0-2 17744 NULL
154004 +enable_so_set_le_ih_k_offset_fndecl_17745 set_le_ih_k_offset fndecl 2 17745 NULL
154005 +enable_so_sock_no_sendpage_fndecl_17749 sock_no_sendpage fndecl 0-4 17749 NULL nohasharray
154006 +enable_so_pkg_len_hanwang_features_17749 pkg_len hanwang_features 0 17749 &enable_so_sock_no_sendpage_fndecl_17749
154007 +enable_so_sector_size_scsi_device_17750 sector_size scsi_device 0 17750 NULL
154008 +enable_so_cmd_per_lun_Scsi_Host_17757 cmd_per_lun Scsi_Host 0 17757 NULL
154009 +enable_so_g_token_size_fndecl_17759 g_token_size fndecl 0-2 17759 NULL nohasharray
154010 +enable_so_actual_length_spi_message_17759 actual_length spi_message 0 17759 &enable_so_g_token_size_fndecl_17759
154011 +enable_so_max_queues_fm10k_mac_info_17760 max_queues fm10k_mac_info 0 17760 NULL
154012 +enable_so_read_hwrng_17766 read hwrng 0 17766 NULL
154013 +enable_so_of_gpio_count_fndecl_17773 of_gpio_count fndecl 0 17773 NULL
154014 +enable_so_fbcon_prepare_logo_fndecl_17781 fbcon_prepare_logo fndecl 4-5 17781 NULL
154015 +enable_so___e820_update_range_fndecl_17791 __e820_update_range fndecl 2-3 17791 NULL
154016 +enable_so_usX2Y_audio_stream_new_fndecl_17792 usX2Y_audio_stream_new fndecl 2-3 17792 NULL nohasharray
154017 +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
154018 +enable_so_nf_nat_ipv6_manip_pkt_fndecl_17794 nf_nat_ipv6_manip_pkt fndecl 2 17794 NULL
154019 +enable_so_number_of_blocks_ms_boot_attr_info_17802 number_of_blocks ms_boot_attr_info 0 17802 NULL
154020 +enable_so_read_cam_control_dvb_ca_en50221_17812 read_cam_control dvb_ca_en50221 0 17812 NULL
154021 +enable_so_sr_read_cd_fndecl_17813 sr_read_cd fndecl 5 17813 NULL
154022 +enable_so_list_size_acpi_pnp_device_id_list_17814 list_size acpi_pnp_device_id_list 0 17814 NULL
154023 +enable_so_b_page_count_xfs_buf_17815 b_page_count xfs_buf 0 17815 NULL nohasharray
154024 +enable_so_acpi_unregister_gsi_ioapic_fndecl_17815 acpi_unregister_gsi_ioapic fndecl 1 17815 &enable_so_b_page_count_xfs_buf_17815
154025 +enable_so_posix_acl_fix_xattr_to_user_fndecl_17816 posix_acl_fix_xattr_to_user fndecl 2 17816 NULL
154026 +enable_so_snd_hda_override_conn_list_fndecl_17817 snd_hda_override_conn_list fndecl 3 17817 NULL nohasharray
154027 +enable_so_xenbus_file_write_fndecl_17817 xenbus_file_write fndecl 3 17817 &enable_so_snd_hda_override_conn_list_fndecl_17817
154028 +enable_so_tx_tx_start_null_frame_read_fndecl_17818 tx_tx_start_null_frame_read fndecl 3 17818 NULL
154029 +enable_so_i_blkbits_inode_17823 i_blkbits inode 0 17823 NULL
154030 +enable_so_tipc_recvmsg_fndecl_17825 tipc_recvmsg fndecl 3 17825 NULL
154031 +enable_so_SyS_mincore_fndecl_17834 SyS_mincore fndecl 1-2 17834 NULL
154032 +enable_so_max_sgl_entries_vardecl_mpt2sas_base_c_17839 max_sgl_entries vardecl_mpt2sas_base.c 0 17839 NULL
154033 +enable_so_qlcnic_sriov_alloc_bc_msg_fndecl_17846 qlcnic_sriov_alloc_bc_msg fndecl 2 17846 NULL
154034 +enable_so_mid_get_vbt_data_r10_fndecl_17847 mid_get_vbt_data_r10 fndecl 2 17847 NULL
154035 +enable_so_xenvif_count_requests_fndecl_17849 xenvif_count_requests fndecl 0 17849 NULL
154036 +enable_so_cifs_lockv_fndecl_17853 cifs_lockv fndecl 6-5 17853 NULL
154037 +enable_so_dbg_fixed_rate_lq_sta_pers_17854 dbg_fixed_rate lq_sta_pers 0 17854 NULL
154038 +enable_so_discard_alignment_queue_limits_17856 discard_alignment queue_limits 0 17856 NULL
154039 +enable_so_preferred_minor_md_rdev_17857 preferred_minor md_rdev 0 17857 NULL
154040 +enable_so_mei_dbgfs_read_devstate_fndecl_17859 mei_dbgfs_read_devstate fndecl 3 17859 NULL
154041 +enable_so_current_table_count_acpi_table_list_17862 current_table_count acpi_table_list 0 17862 NULL
154042 +enable_so_bip_vcnt_bio_integrity_payload_17865 bip_vcnt bio_integrity_payload 0 17865 NULL
154043 +enable_so_fuse_get_req_for_background_fndecl_17874 fuse_get_req_for_background fndecl 2 17874 NULL nohasharray
154044 +enable_so_secondary_tail_adu_device_17874 secondary_tail adu_device 0 17874 &enable_so_fuse_get_req_for_background_fndecl_17874
154045 +enable_so_ucs2_strnlen_fndecl_17877 ucs2_strnlen fndecl 0 17877 NULL
154046 +enable_so_max_pkt_size_au0828_usb_isoc_ctl_17891 max_pkt_size au0828_usb_isoc_ctl 0 17891 NULL
154047 +enable_so_del_ba_param_set_host_cmd_ds_11n_delba_17899 del_ba_param_set host_cmd_ds_11n_delba 0 17899 NULL
154048 +enable_so_s_firstinodezone_sysv_sb_info_17901 s_firstinodezone sysv_sb_info 0 17901 NULL
154049 +enable_so_shortRetryLimit_ConfigRid_17906 shortRetryLimit ConfigRid 0 17906 NULL
154050 +enable_so_used_aead_ctx_17910 used aead_ctx 0 17910 NULL
154051 +enable_so_leb_start_ubifs_info_17911 leb_start ubifs_info 0 17911 NULL nohasharray
154052 +enable_so_arch_gnttab_valloc_fndecl_17911 arch_gnttab_valloc fndecl 2 17911 &enable_so_leb_start_ubifs_info_17911
154053 +enable_so_msb_write_block_fndecl_17912 msb_write_block fndecl 5 17912 NULL
154054 +enable_so_osd_req_read_sg_kern_fndecl_17913 osd_req_read_sg_kern fndecl 5 17913 NULL nohasharray
154055 +enable_so_sync_fence_alloc_fndecl_17913 sync_fence_alloc fndecl 1 17913 &enable_so_osd_req_read_sg_kern_fndecl_17913
154056 +enable_so_sg_pcopy_to_buffer_fndecl_17914 sg_pcopy_to_buffer fndecl 5-4 17914 NULL
154057 +enable_so_translate_compat_table_fndecl_17917 translate_compat_table fndecl 7 17917 NULL
154058 +enable_so_ipath_verbs_send_dma_fndecl_17922 ipath_verbs_send_dma fndecl 7-5-6-3 17922 NULL
154059 +enable_so_br_blockcount_xfs_bmbt_irec_17931 br_blockcount xfs_bmbt_irec 0 17931 NULL
154060 +enable_so___kfifo_dma_in_finish_r_fndecl_17938 __kfifo_dma_in_finish_r fndecl 3-2 17938 NULL
154061 +enable_so_mmio_base_sis_video_info_17941 mmio_base sis_video_info 0 17941 NULL
154062 +enable_so___vxge_hw_mempool_create_fndecl_17944 __vxge_hw_mempool_create fndecl 3-2-6-4 17944 NULL
154063 +enable_so_rtl2830_regmap_read_fndecl_17947 rtl2830_regmap_read fndecl 3-5 17947 NULL
154064 +enable_so_vb2_internal_dqbuf_fndecl_17949 vb2_internal_dqbuf fndecl 0 17949 NULL nohasharray
154065 +enable_so_cache_do_downcall_fndecl_17949 cache_do_downcall fndecl 3 17949 &enable_so_vb2_internal_dqbuf_fndecl_17949
154066 +enable_so_ath6kl_wmi_data_sync_send_fndecl_17951 ath6kl_wmi_data_sync_send fndecl 4 17951 NULL
154067 +enable_so_videobuf_dma_init_kernel_fndecl_17952 videobuf_dma_init_kernel fndecl 3 17952 NULL
154068 +enable_so_ieee80211_tx_radiotap_len_fndecl_17953 ieee80211_tx_radiotap_len fndecl 0 17953 NULL
154069 +enable_so_pch_uart_hal_read_fndecl_17954 pch_uart_hal_read fndecl 0 17954 NULL
154070 +enable_so_n_special_skd_device_17960 n_special skd_device 0 17960 NULL
154071 +enable_so_pkt_align_netvsc_device_17961 pkt_align netvsc_device 0 17961 NULL nohasharray
154072 +enable_so_cydata_size_cyttsp4_sysinfo_ofs_17961 cydata_size cyttsp4_sysinfo_ofs 0 17961 &enable_so_pkt_align_netvsc_device_17961
154073 +enable_so_scan_async_group_fndecl_17964 scan_async_group fndecl 3 17964 NULL
154074 +enable_so_do_tee_fndecl_17969 do_tee fndecl 3 17969 NULL
154075 +enable_so_qsfp_cks_fndecl_17970 qsfp_cks fndecl 2-0 17970 NULL
154076 +enable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 4 17972 NULL
154077 +enable_so_length_ore_io_state_17977 length ore_io_state 0 17977 NULL
154078 +enable_so_nilfs_set_last_segment_fndecl_17983 nilfs_set_last_segment fndecl 2-4 17983 NULL
154079 +enable_so_data3_sisusb_command_17984 data3 sisusb_command 0 17984 NULL nohasharray
154080 +enable_so_pci_addr_of_pci_range_17984 pci_addr of_pci_range 0 17984 &enable_so_data3_sisusb_command_17984
154081 +enable_so_vector_msix_entry_17987 vector msix_entry 0 17987 NULL
154082 +enable_so_channels_tiadc_device_17992 channels tiadc_device 0 17992 NULL
154083 +enable_so_fill_inquiry_response_fndecl_17994 fill_inquiry_response fndecl 3 17994 NULL
154084 +enable_so_cipso_v4_gentag_enum_fndecl_17997 cipso_v4_gentag_enum fndecl 0 17997 NULL
154085 +enable_so_get_context_size_fndecl_17999 get_context_size fndecl 0 17999 NULL
154086 +enable_so_order_per_bit_cma_18000 order_per_bit cma 0 18000 NULL
154087 +enable_so_target_xcopy_read_source_fndecl_18003 target_xcopy_read_source fndecl 5 18003 NULL
154088 +enable_so_size_aper_size_info_8_18012 size aper_size_info_8 0 18012 NULL nohasharray
154089 +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
154090 +enable_so_request_key_async_fndecl_18013 request_key_async fndecl 4 18013 NULL
154091 +enable_so_rx_frag_size_vardecl_be_main_c_18017 rx_frag_size vardecl_be_main.c 0 18017 NULL
154092 +enable_so_raid56_parity_recover_fndecl_18019 raid56_parity_recover fndecl 4 18019 NULL
154093 +enable_so_wimax_msg_fndecl_18021 wimax_msg fndecl 4 18021 NULL
154094 +enable_so_cmdlog_vardecl_ipw2200_c_18024 cmdlog vardecl_ipw2200.c 0 18024 NULL
154095 +enable_so_sl811h_urb_dequeue_fndecl_18025 sl811h_urb_dequeue fndecl 3 18025 NULL nohasharray
154096 +enable_so_condc_tomoyo_condition_18025 condc tomoyo_condition 0 18025 &enable_so_sl811h_urb_dequeue_fndecl_18025
154097 +enable_so_rawv6_recvmsg_fndecl_18026 rawv6_recvmsg fndecl 3 18026 NULL nohasharray
154098 +enable_so_ceph_kvmalloc_fndecl_18026 ceph_kvmalloc fndecl 1 18026 &enable_so_rawv6_recvmsg_fndecl_18026
154099 +enable_so_mq_msgsize_max_ipc_namespace_18027 mq_msgsize_max ipc_namespace 0 18027 NULL nohasharray
154100 +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
154101 +enable_so_splice_read_file_operations_18028 splice_read file_operations 0 18028 NULL
154102 +enable_so_start_data_mm_struct_18029 start_data mm_struct 0 18029 NULL
154103 +enable_so_fip_dl_len_fip_header_18032 fip_dl_len fip_header 0 18032 NULL
154104 +enable_so_fi_ino_nilfs_finfo_18034 fi_ino nilfs_finfo 0 18034 NULL
154105 +enable_so_copy_items_fndecl_18039 copy_items fndecl 7 18039 NULL
154106 +enable_so_virtio_gpu_cmd_transfer_to_host_2d_fndecl_18040 virtio_gpu_cmd_transfer_to_host_2d fndecl 5-4 18040 NULL
154107 +enable_so_read_device_fndecl_18043 read_device fndecl 3 18043 NULL
154108 +enable_so_ld_usb_write_fndecl_18045 ld_usb_write fndecl 3 18045 NULL
154109 +enable_so_len_ib_ucm_private_data_18046 len ib_ucm_private_data 0 18046 NULL
154110 +enable_so_xfer_len_iscsi_seq_18047 xfer_len iscsi_seq 0 18047 NULL
154111 +enable_so_sctp_make_op_error_fndecl_18050 sctp_make_op_error fndecl 5-6 18050 NULL
154112 +enable_so_ts_packet_size_cx23885_tsport_18052 ts_packet_size cx23885_tsport 0 18052 NULL
154113 +enable_so_rmsg_pgcnt_hv_netvsc_packet_18054 rmsg_pgcnt hv_netvsc_packet 0 18054 NULL
154114 +enable_so_sll_halen_sockaddr_ll_18063 sll_halen sockaddr_ll 0 18063 NULL
154115 +enable_so_ipath_get_base_info_fndecl_18064 ipath_get_base_info fndecl 3 18064 NULL
154116 +enable_so_beacon_interval_read_fndecl_18080 beacon_interval_read fndecl 3 18080 NULL
154117 +enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083 req_ie_len brcmf_cfg80211_connect_info 0 18083 NULL nohasharray
154118 +enable_so_add_wpa_key_fndecl_18083 add_wpa_key fndecl 3 18083 &enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083
154119 +enable_so_bits_per_pixel_drm_framebuffer_18087 bits_per_pixel drm_framebuffer 0 18087 NULL
154120 +enable_so_di_nextents_xfs_icdinode_18090 di_nextents xfs_icdinode 0 18090 NULL
154121 +enable_so_inode2sd_fndecl_18094 inode2sd fndecl 3 18094 NULL
154122 +enable_so_do_async_mmap_readahead_fndecl_18112 do_async_mmap_readahead fndecl 5 18112 NULL nohasharray
154123 +enable_so_readcount_usblp_18112 readcount usblp 0 18112 &enable_so_do_async_mmap_readahead_fndecl_18112
154124 +enable_so_addr_width_fsl_edma_slave_config_18115 addr_width fsl_edma_slave_config 0 18115 NULL
154125 +enable_so_befs_read_datastream_fndecl_18116 befs_read_datastream fndecl 3 18116 NULL
154126 +enable_so_mod_len_ccp_ecc_engine_18119 mod_len ccp_ecc_engine 0 18119 NULL nohasharray
154127 +enable_so_index_vardecl_ali5451_c_18119 index vardecl_ali5451.c 0 18119 &enable_so_mod_len_ccp_ecc_engine_18119
154128 +enable_so_send_mpa_reject_fndecl_18124 send_mpa_reject fndecl 3 18124 NULL
154129 +enable_so_ring_prod_per_user_data_18125 ring_prod per_user_data 0 18125 NULL
154130 +enable_so_bnx2x_num_queues_vardecl_18126 bnx2x_num_queues vardecl 0 18126 NULL
154131 +enable_so_pipeline_enc_rx_stat_fifo_int_read_fndecl_18128 pipeline_enc_rx_stat_fifo_int_read fndecl 3 18128 NULL
154132 +enable_so_tlb_preload_count_gru_create_context_req_18130 tlb_preload_count gru_create_context_req 0 18130 NULL nohasharray
154133 +enable_so_reshape_request_fndecl_18130 reshape_request fndecl 2 18130 &enable_so_tlb_preload_count_gru_create_context_req_18130
154134 +enable_so_fs_start_hfs_sb_info_18132 fs_start hfs_sb_info 0 18132 NULL
154135 +enable_so_num_ddr_avs_mthca_av_table_18139 num_ddr_avs mthca_av_table 0 18139 NULL
154136 +enable_so_byte_cnt_rx_desc_18142 byte_cnt rx_desc 0 18142 NULL
154137 +enable_so_i_iget5_block_iso_inode_info_18143 i_iget5_block iso_inode_info 0 18143 NULL
154138 +enable_so_softback_in_vardecl_fbcon_c_18148 softback_in vardecl_fbcon.c 0 18148 NULL nohasharray
154139 +enable_so_mtu_net_device_18148 mtu net_device 0 18148 &enable_so_softback_in_vardecl_fbcon_c_18148
154140 +enable_so_read_word_onenand_chip_18150 read_word onenand_chip 0 18150 NULL
154141 +enable_so_bmv_length_getbmapx_18151 bmv_length getbmapx 0 18151 NULL
154142 +enable_so_nfs_dreq_bytes_left_fndecl_18154 nfs_dreq_bytes_left fndecl 0 18154 NULL
154143 +enable_so_ocrdma_alloc_frmr_fndecl_18161 ocrdma_alloc_frmr fndecl 2 18161 NULL
154144 +enable_so_acpi_rs_get_resource_source_fndecl_18168 acpi_rs_get_resource_source fndecl 0 18168 NULL
154145 +enable_so_qlcnic_enable_msix_fndecl_18171 qlcnic_enable_msix fndecl 2 18171 NULL
154146 +enable_so_iscsi_sw_tcp_pdu_init_fndecl_18173 iscsi_sw_tcp_pdu_init fndecl 3-2 18173 NULL
154147 +enable_so_num_gpu_pages_radeon_gart_18177 num_gpu_pages radeon_gart 0 18177 NULL
154148 +enable_so_ocfs2_test_suballoc_bit_fndecl_18180 ocfs2_test_suballoc_bit fndecl 6-5-4 18180 NULL nohasharray
154149 +enable_so_process_rcvd_data_fndecl_18180 process_rcvd_data fndecl 3 18180 &enable_so_ocfs2_test_suballoc_bit_fndecl_18180
154150 +enable_so_offset_pktcdvd_device_18183 offset pktcdvd_device 0 18183 NULL
154151 +enable_so_aac_srcv_ioremap_fndecl_18192 aac_srcv_ioremap fndecl 2 18192 NULL
154152 +enable_so_natsemi_change_mtu_fndecl_18207 natsemi_change_mtu fndecl 2 18207 NULL
154153 +enable_so_sd_head_align_brcmfmac_sdio_platform_data_18210 sd_head_align brcmfmac_sdio_platform_data 0 18210 NULL
154154 +enable_so_ibmpex_query_sensor_count_fndecl_18214 ibmpex_query_sensor_count fndecl 0 18214 NULL nohasharray
154155 +enable_so_fw_size_intel_dmc_header_18214 fw_size intel_dmc_header 0 18214 &enable_so_ibmpex_query_sensor_count_fndecl_18214
154156 +enable_so_mpeg_read_fndecl_18215 mpeg_read fndecl 3 18215 NULL
154157 +enable_so___xfs_get_blocks_fndecl_18216 __xfs_get_blocks fndecl 2 18216 NULL
154158 +enable_so_ext3_bg_num_gdb_fndecl_18222 ext3_bg_num_gdb fndecl 0 18222 NULL nohasharray
154159 +enable_so_check_clk_sync_fndecl_18222 check_clk_sync fndecl 2 18222 &enable_so_ext3_bg_num_gdb_fndecl_18222
154160 +enable_so_xmit_cnt_mgsl_struct_18223 xmit_cnt mgsl_struct 0 18223 NULL
154161 +enable_so_ql_process_mac_rx_skb_fndecl_18226 ql_process_mac_rx_skb fndecl 5-4 18226 NULL
154162 +enable_so_rx_buf_size_bnx2_18228 rx_buf_size bnx2 0 18228 NULL
154163 +enable_so_ps_pspoll_max_apturn_read_fndecl_18232 ps_pspoll_max_apturn_read fndecl 3 18232 NULL
154164 +enable_so_btrfs_lookup_csums_range_fndecl_18235 btrfs_lookup_csums_range fndecl 2-3 18235 NULL
154165 +enable_so_vol_id_ubi_volume_18238 vol_id ubi_volume 0 18238 NULL
154166 +enable_so_ocfs2_insert_extent_fndecl_18242 ocfs2_insert_extent fndecl 4-3 18242 NULL
154167 +enable_so_payload_size_vmci_datagram_18243 payload_size vmci_datagram 0 18243 NULL
154168 +enable_so_cfg80211_calculate_bitrate_vht_fndecl_18246 cfg80211_calculate_bitrate_vht fndecl 0 18246 NULL
154169 +enable_so_next_free_transient_c_18248 next_free transient_c 0 18248 NULL
154170 +enable_so_inet_recv_error_fndecl_18251 inet_recv_error fndecl 3 18251 NULL
154171 +enable_so_rxf_size_bdx_priv_18260 rxf_size bdx_priv 0 18260 NULL
154172 +enable_so_posix_acl_xattr_count_fndecl_18262 posix_acl_xattr_count fndecl 1-0 18262 NULL
154173 +enable_so_video_proc_write_fndecl_18263 video_proc_write fndecl 3 18263 NULL
154174 +enable_so_rds_rdma_pages_fndecl_18268 rds_rdma_pages fndecl 0 18268 NULL
154175 +enable_so_end_extent_state_18270 end extent_state 0 18270 NULL
154176 +enable_so_sfi_check_table_fndecl_18279 sfi_check_table fndecl 1 18279 NULL
154177 +enable_so__nfs4_get_security_label_fndecl_18285 _nfs4_get_security_label fndecl 3 18285 NULL
154178 +enable_so_tda18218_rd_regs_fndecl_18293 tda18218_rd_regs fndecl 4-2 18293 NULL
154179 +enable_so_i915_parse_cmds_fndecl_18295 i915_parse_cmds fndecl 4-5 18295 NULL
154180 +enable_so_index_sg_device_18304 index sg_device 0 18304 NULL
154181 +enable_so_ocfs2_calc_refcount_meta_credits_fndecl_18305 ocfs2_calc_refcount_meta_credits fndecl 5-4 18305 NULL
154182 +enable_so_essid_len_iw_scan_req_18306 essid_len iw_scan_req 0 18306 NULL
154183 +enable_so_add_pfn_range_mapped_fndecl_18307 add_pfn_range_mapped fndecl 2-1 18307 NULL
154184 +enable_so_twl4030_init_irq_fndecl_18308 twl4030_init_irq fndecl 0 18308 NULL
154185 +enable_so_do_kmem_cache_create_fndecl_18316 do_kmem_cache_create fndecl 3-4-2 18316 NULL
154186 +enable_so_zone_spanned_pages_in_node_fndecl_18320 zone_spanned_pages_in_node fndecl 0-3-4 18320 NULL
154187 +enable_so_ieee80211_if_read_fndecl_18322 ieee80211_if_read fndecl 3 18322 NULL
154188 +enable_so_iwl_dbgfs_channels_read_fndecl_18323 iwl_dbgfs_channels_read fndecl 3 18323 NULL nohasharray
154189 +enable_so_rpipes_wahc_18323 rpipes wahc 0 18323 &enable_so_iwl_dbgfs_channels_read_fndecl_18323
154190 +enable_so_e820_end_of_low_ram_pfn_fndecl_18324 e820_end_of_low_ram_pfn fndecl 0 18324 NULL
154191 +enable_so_radeon_sa_bo_manager_init_fndecl_18326 radeon_sa_bo_manager_init fndecl 3 18326 NULL
154192 +enable_so_hdlcdrv_register_fndecl_18331 hdlcdrv_register fndecl 2 18331 NULL nohasharray
154193 +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
154194 +enable_so_tx_tx_done_data_read_fndecl_18332 tx_tx_done_data_read fndecl 3 18332 NULL nohasharray
154195 +enable_so_taps_oslec_state_18332 taps oslec_state 0 18332 &enable_so_tx_tx_done_data_read_fndecl_18332
154196 +enable_so_m_blockmask_xfs_mount_18334 m_blockmask xfs_mount 0 18334 NULL
154197 +enable_so_blk_alloc_flush_queue_fndecl_18340 blk_alloc_flush_queue fndecl 3 18340 NULL
154198 +enable_so_calc_pages_for_fndecl_18341 calc_pages_for fndecl 0-2-1 18341 NULL
154199 +enable_so_mon_bin_read_fndecl_18346 mon_bin_read fndecl 3 18346 NULL
154200 +enable_so_snd_cs4281_BA0_read_fndecl_18348 snd_cs4281_BA0_read fndecl 5 18348 NULL
154201 +enable_so_xfs_da_reada_buf_fndecl_18349 xfs_da_reada_buf fndecl 2 18349 NULL
154202 +enable_so_mb_cache_entry_insert_fndecl_18350 mb_cache_entry_insert fndecl 3 18350 NULL
154203 +enable_so_rfcomm_send_frame_fndecl_18352 rfcomm_send_frame fndecl 3 18352 NULL
154204 +enable_so_mgsl_load_tx_dma_buffer_fndecl_18355 mgsl_load_tx_dma_buffer fndecl 3 18355 NULL
154205 +enable_so_vm_pgoff_vm_area_struct_18357 vm_pgoff vm_area_struct 0 18357 NULL nohasharray
154206 +enable_so_elfnotes_sz_vardecl_vmcore_c_18357 elfnotes_sz vardecl_vmcore.c 0 18357 &enable_so_vm_pgoff_vm_area_struct_18357
154207 +enable_so_lbs_rdrf_write_fndecl_18361 lbs_rdrf_write fndecl 3 18361 NULL
154208 +enable_so_ascii2desc_fndecl_18370 ascii2desc fndecl 0-3 18370 NULL
154209 +enable_so_ecryptfs_write_lower_fndecl_18373 ecryptfs_write_lower fndecl 4 18373 NULL
154210 +enable_so_extent_write_locked_range_fndecl_18375 extent_write_locked_range fndecl 3-4 18375 NULL nohasharray
154211 +enable_so_perf_output_sample_ustack_fndecl_18375 perf_output_sample_ustack fndecl 2 18375 &enable_so_extent_write_locked_range_fndecl_18375
154212 +enable_so_len_btrfs_ordered_extent_18377 len btrfs_ordered_extent 0 18377 NULL
154213 +enable_so_n_bssids_wmi_start_scan_arg_18378 n_bssids wmi_start_scan_arg 0 18378 NULL
154214 +enable_so_rss_size_port_info_18379 rss_size port_info 0 18379 NULL
154215 +enable_so_o_width_fimc_frame_18380 o_width fimc_frame 0 18380 NULL nohasharray
154216 +enable_so_dio_complete_fndecl_18380 dio_complete fndecl 0-2-3 18380 &enable_so_o_width_fimc_frame_18380
154217 +enable_so_xfs_rtany_summary_fndecl_18384 xfs_rtany_summary fndecl 5-3 18384 NULL
154218 +enable_so_reply_payload_rcv_len_fc_bsg_reply_18392 reply_payload_rcv_len fc_bsg_reply 0 18392 NULL
154219 +enable_so_spc_modesense_blockdesc_fndecl_18397 spc_modesense_blockdesc fndecl 0 18397 NULL
154220 +enable_so_signer_len_module_signature_18402 signer_len module_signature 0 18402 NULL
154221 +enable_so_veth_change_mtu_fndecl_18405 veth_change_mtu fndecl 2 18405 NULL
154222 +enable_so_max_psize_uac2_rtd_params_18407 max_psize uac2_rtd_params 0 18407 NULL
154223 +enable_so_proc_sessionid_read_fndecl_18412 proc_sessionid_read fndecl 3 18412 NULL nohasharray
154224 +enable_so_acm_alloc_minor_fndecl_18412 acm_alloc_minor fndecl 0 18412 &enable_so_proc_sessionid_read_fndecl_18412
154225 +enable_so_bNrChannels_uac2_as_header_descriptor_18413 bNrChannels uac2_as_header_descriptor 0 18413 NULL
154226 +enable_so_ath6kl_wmi_ap_set_mlme_fndecl_18414 ath6kl_wmi_ap_set_mlme fndecl 2 18414 NULL
154227 +enable_so_raw_seticmpfilter_fndecl_18427 raw_seticmpfilter fndecl 3 18427 NULL
154228 +enable_so_dlmfs_file_write_fndecl_18431 dlmfs_file_write fndecl 3 18431 NULL
154229 +enable_so_fb_find_mode_fndecl_18438 fb_find_mode fndecl 7 18438 NULL
154230 +enable_so_device_pci_device_id_18441 device pci_device_id 0 18441 NULL
154231 +enable_so_count_iov_iter_18447 count iov_iter 0 18447 NULL
154232 +enable_so_data_len_hfa384x_tx_frame_18449 data_len hfa384x_tx_frame 0 18449 NULL nohasharray
154233 +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
154234 +enable_so_size_ib_phys_buf_18455 size ib_phys_buf 0 18455 NULL
154235 +enable_so_copy_range_nfulnl_instance_18460 copy_range nfulnl_instance 0 18460 NULL
154236 +enable_so_get_next_ino_fndecl_18465 get_next_ino fndecl 0 18465 NULL
154237 +enable_so_bsize_jfs_sb_info_18477 bsize jfs_sb_info 0 18477 NULL
154238 +enable_so_xfs_free_extent_fndecl_18480 xfs_free_extent fndecl 2-3 18480 NULL
154239 +enable_so_exynos4_jpeg_get_stream_size_fndecl_18485 exynos4_jpeg_get_stream_size fndecl 0 18485 NULL
154240 +enable_so_mdata_ofsl_cyttsp4_sysinfo_data_18486 mdata_ofsl cyttsp4_sysinfo_data 0 18486 NULL
154241 +enable_so_mddev_find_fndecl_18492 mddev_find fndecl 1 18492 NULL
154242 +enable_so_xfs_efd_init_fndecl_18500 xfs_efd_init fndecl 3 18500 NULL
154243 +enable_so_sfi_map_table_fndecl_18501 sfi_map_table fndecl 1 18501 NULL
154244 +enable_so_wil_pmc_read_fndecl_18503 wil_pmc_read fndecl 3 18503 NULL
154245 +enable_so_vxfs_getfsh_fndecl_18506 vxfs_getfsh fndecl 2 18506 NULL
154246 +enable_so_kernfs_fop_write_fndecl_18508 kernfs_fop_write fndecl 3 18508 NULL
154247 +enable_so_chspc_adf4350_state_18514 chspc adf4350_state 0 18514 NULL
154248 +enable_so_iwl_queue_init_fndecl_18522 iwl_queue_init fndecl 2 18522 NULL nohasharray
154249 +enable_so_scat_entries_hif_scatter_req_18522 scat_entries hif_scatter_req 0 18522 &enable_so_iwl_queue_init_fndecl_18522
154250 +enable_so_ttm_bo_init_fndecl_18524 ttm_bo_init fndecl 3 18524 NULL
154251 +enable_so_tty_write_fndecl_18533 tty_write fndecl 3 18533 NULL
154252 +enable_so_tomoyo_update_domain_fndecl_18537 tomoyo_update_domain fndecl 2 18537 NULL
154253 +enable_so_progress_kcopyd_job_18540 progress kcopyd_job 0 18540 NULL
154254 +enable_so_sect_floppy_struct_18543 sect floppy_struct 0 18543 NULL
154255 +enable_so_ubi_leb_write_fndecl_18549 ubi_leb_write fndecl 5-4 18549 NULL
154256 +enable_so_xfs_efi_init_fndecl_18551 xfs_efi_init fndecl 2 18551 NULL
154257 +enable_so_inodes_squashfs_sb_info_18553 inodes squashfs_sb_info 0 18553 NULL nohasharray
154258 +enable_so_pci_enable_msix_exact_fndecl_18553 pci_enable_msix_exact fndecl 0 18553 &enable_so_inodes_squashfs_sb_info_18553
154259 +enable_so_ucode_size_bytes_common_firmware_header_18554 ucode_size_bytes common_firmware_header 0 18554 NULL
154260 +enable_so_memblock_reserve_fndecl_18556 memblock_reserve fndecl 1-2 18556 NULL
154261 +enable_so_cifs_security_flags_proc_write_fndecl_18559 cifs_security_flags_proc_write fndecl 3 18559 NULL
154262 +enable_so_riva_get_memlen_fndecl_18562 riva_get_memlen fndecl 0 18562 NULL
154263 +enable_so_change_protection_fndecl_18568 change_protection fndecl 3-2 18568 NULL
154264 +enable_so_rocker_group_l2_flood_fndecl_18575 rocker_group_l2_flood fndecl 5 18575 NULL
154265 +enable_so___max_nr_grant_frames_fndecl_18578 __max_nr_grant_frames fndecl 0 18578 NULL
154266 +enable_so_do_rc_ack_fndecl_18583 do_rc_ack fndecl 3 18583 NULL
154267 +enable_so_index_xtsplit_18586 index xtsplit 0 18586 NULL
154268 +enable_so_spidev_message_fndecl_18589 spidev_message fndecl 3 18589 NULL
154269 +enable_so_le_readq_fndecl_18598 le_readq fndecl 0 18598 NULL
154270 +enable_so_brcmu_pkt_buf_get_skb_fndecl_18599 brcmu_pkt_buf_get_skb fndecl 1 18599 NULL
154271 +enable_so_extLocation_extent_ad_18601 extLocation extent_ad 0 18601 NULL
154272 +enable_so_m25p80_write_fndecl_18603 m25p80_write fndecl 3 18603 NULL
154273 +enable_so_logfs_write_je_buf_fndecl_18606 logfs_write_je_buf fndecl 4 18606 NULL nohasharray
154274 +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
154275 +enable_so_size_uhid_input_req_18611 size uhid_input_req 0 18611 NULL
154276 +enable_so_befs_get_block_fndecl_18612 befs_get_block fndecl 2 18612 NULL
154277 +enable_so_dstpos_isdnhdlc_vars_18616 dstpos isdnhdlc_vars 0 18616 NULL nohasharray
154278 +enable_so_iwl_pcie_txq_init_fndecl_18616 iwl_pcie_txq_init fndecl 3 18616 &enable_so_dstpos_isdnhdlc_vars_18616
154279 +enable_so_ks8995_registers_write_fndecl_18618 ks8995_registers_write fndecl 5-6 18618 NULL
154280 +enable_so_oz_ep_alloc_fndecl_18624 oz_ep_alloc fndecl 1 18624 NULL
154281 +enable_so_ctxt_qib_ctxtdata_18626 ctxt qib_ctxtdata 0 18626 NULL
154282 +enable_so_sec_per_clus_fat_boot_sector_18633 sec_per_clus fat_boot_sector 0 18633 NULL
154283 +enable_so_store_bss_info_fndecl_18643 store_bss_info fndecl 7 18643 NULL
154284 +enable_so_fir16_create_fndecl_18645 fir16_create fndecl 3 18645 NULL
154285 +enable_so_rbd_parent_request_create_fndecl_18646 rbd_parent_request_create fndecl 2-3 18646 NULL
154286 +enable_so_speaker_outs_auto_pin_cfg_18648 speaker_outs auto_pin_cfg 0 18648 NULL
154287 +enable_so_ax25_sendmsg_fndecl_18649 ax25_sendmsg fndecl 3 18649 NULL
154288 +enable_so_bioset_create_fndecl_18655 bioset_create fndecl 2-1 18655 NULL
154289 +enable_so_ext2_xattr_set_fndecl_18656 ext2_xattr_set fndecl 5 18656 NULL nohasharray
154290 +enable_so_MaxDevices__MSG_IOC_FACTS_REPLY_18656 MaxDevices _MSG_IOC_FACTS_REPLY 0 18656 &enable_so_ext2_xattr_set_fndecl_18656
154291 +enable_so_compat_copy_entries_fndecl_18658 compat_copy_entries fndecl 0 18658 NULL
154292 +enable_so_gfs2_unstuffer_page_fndecl_18663 gfs2_unstuffer_page fndecl 3 18663 NULL
154293 +enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665 num_ccells_per_conn iscsi_kwqe_init1 0 18665 NULL nohasharray
154294 +enable_so_SYSC_init_module_fndecl_18665 SYSC_init_module fndecl 2 18665 &enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665
154295 +enable_so_nilfs_move_2nd_super_fndecl_18666 nilfs_move_2nd_super fndecl 2 18666 NULL
154296 +enable_so_iterate_extent_inodes_fndecl_18668 iterate_extent_inodes fndecl 2 18668 NULL
154297 +enable_so_len_xdr_netobj_18672 len xdr_netobj 0 18672 NULL
154298 +enable_so_pn_recvmsg_fndecl_18676 pn_recvmsg fndecl 3 18676 NULL
154299 +enable_so_nr_clk_regs_samsung_cmu_info_18678 nr_clk_regs samsung_cmu_info 0 18678 NULL
154300 +enable_so_ldm_frag_add_fndecl_18680 ldm_frag_add fndecl 2 18680 NULL
154301 +enable_so_used_chaoskey_18682 used chaoskey 0 18682 NULL nohasharray
154302 +enable_so_ocd_max_easize_obd_connect_data_18682 ocd_max_easize obd_connect_data 0 18682 &enable_so_used_chaoskey_18682
154303 +enable_so_domain_pci_sysdata_18686 domain pci_sysdata 0 18686 NULL
154304 +enable_so_i2c_wr_max_cx24120_config_18687 i2c_wr_max cx24120_config 0 18687 NULL nohasharray
154305 +enable_so_length_iwl_nvm_access_resp_18687 length iwl_nvm_access_resp 0 18687 &enable_so_i2c_wr_max_cx24120_config_18687
154306 +enable_so_bufpos_msm_perf_state_18702 bufpos msm_perf_state 0 18702 NULL
154307 +enable_so_num_tc_net_device_18703 num_tc net_device 0 18703 NULL
154308 +enable_so_size_rxdone_entry_desc_18704 size rxdone_entry_desc 0 18704 NULL
154309 +enable_so_den_step_snd_ratnum_18705 den_step snd_ratnum 0 18705 NULL nohasharray
154310 +enable_so_num_dup_tsns_sctp_tsnmap_18705 num_dup_tsns sctp_tsnmap 0 18705 &enable_so_den_step_snd_ratnum_18705
154311 +enable_so_ent_get_fatent_operations_18715 ent_get fatent_operations 0 18715 NULL
154312 +enable_so_read_reg_isar_hw_18717 read_reg isar_hw 0 18717 NULL
154313 +enable_so_feature_len_mic_device_desc_18719 feature_len mic_device_desc 0 18719 NULL
154314 +enable_so_iwl_dbgfs_status_read_fndecl_18720 iwl_dbgfs_status_read fndecl 3 18720 NULL
154315 +enable_so_max_pkeys_ib_device_attr_18722 max_pkeys ib_device_attr 0 18722 NULL
154316 +enable_so_trf7970a_read_cont_fndecl_18728 trf7970a_read_cont fndecl 4 18728 NULL
154317 +enable_so_rx_rate_rxpd_18729 rx_rate rxpd 0 18729 NULL nohasharray
154318 +enable_so_ioapic_copy_alloc_attr_fndecl_18729 ioapic_copy_alloc_attr fndecl 3 18729 &enable_so_rx_rate_rxpd_18729
154319 +enable_so_acpi_pcc_get_sqty_fndecl_18731 acpi_pcc_get_sqty fndecl 0 18731 NULL
154320 +enable_so_sfi_map_memory_fndecl_18732 sfi_map_memory fndecl 2-1 18732 NULL
154321 +enable_so_sinit_num_ostreams_sctp_cookie_18733 sinit_num_ostreams sctp_cookie 0 18733 NULL
154322 +enable_so_pkcs7_sig_note_serial_fndecl_18735 pkcs7_sig_note_serial fndecl 5 18735 NULL
154323 +enable_so_rdb_per_qp_mthca_profile_18738 rdb_per_qp mthca_profile 0 18738 NULL
154324 +enable_so_bulk_out_ipheth_device_18739 bulk_out ipheth_device 0 18739 NULL
154325 +enable_so_o2net_recv_tcp_msg_fndecl_18741 o2net_recv_tcp_msg fndecl 3-0 18741 NULL
154326 +enable_so_count_configs_fndecl_18742 count_configs fndecl 0 18742 NULL
154327 +enable_so_max_sges_ocrdma_qp_hwq_info_18746 max_sges ocrdma_qp_hwq_info 0 18746 NULL
154328 +enable_so_seq_end_offset_iscsi_cmd_18748 seq_end_offset iscsi_cmd 0 18748 NULL
154329 +enable_so_max_in_size_ims_pcu_18752 max_in_size ims_pcu 0 18752 NULL
154330 +enable_so_pipe_set_size_fndecl_18759 pipe_set_size fndecl 2 18759 NULL
154331 +enable_so_i_pos_msdos_inode_info_18764 i_pos msdos_inode_info 0 18764 NULL
154332 +enable_so_ppp_cp_parse_cr_fndecl_18765 ppp_cp_parse_cr fndecl 4 18765 NULL
154333 +enable_so_xdr_get_next_encode_buffer_fndecl_18770 xdr_get_next_encode_buffer fndecl 2 18770 NULL nohasharray
154334 +enable_so_adjust_memory_fndecl_18770 adjust_memory fndecl 3-4 18770 &enable_so_xdr_get_next_encode_buffer_fndecl_18770
154335 +enable_so_data_len_ieee80211_mgd_auth_data_18778 data_len ieee80211_mgd_auth_data 0 18778 NULL
154336 +enable_so_isdn_ppp_skb_push_fndecl_18791 isdn_ppp_skb_push fndecl 2 18791 NULL
154337 +enable_so_sctp_abort_pkt_new_fndecl_18794 sctp_abort_pkt_new fndecl 6 18794 NULL
154338 +enable_so_max_low_pfn_vardecl_18798 max_low_pfn vardecl 0 18798 NULL
154339 +enable_so_readbuffers_v4l2_captureparm_18801 readbuffers v4l2_captureparm 0 18801 NULL
154340 +enable_so_dwc2_hcd_urb_alloc_fndecl_18802 dwc2_hcd_urb_alloc fndecl 2 18802 NULL
154341 +enable_so_rd_length_gfs2_rgrpd_18804 rd_length gfs2_rgrpd 0 18804 NULL
154342 +enable_so_md_capture_size_netxen_minidump_18805 md_capture_size netxen_minidump 0 18805 NULL
154343 +enable_so___irq_domain_alloc_irqs_fndecl_18810 __irq_domain_alloc_irqs fndecl 0-2 18810 NULL
154344 +enable_so_ath6kl_debug_roam_tbl_event_fndecl_18811 ath6kl_debug_roam_tbl_event fndecl 3 18811 NULL
154345 +enable_so_ssb_ioremap_fndecl_18815 ssb_ioremap fndecl 2 18815 NULL
154346 +enable_so_length_xfs_extent_busy_18817 length xfs_extent_busy 0 18817 NULL
154347 +enable_so_gfn_to_hva_memslot_fndecl_18818 gfn_to_hva_memslot fndecl 2 18818 NULL
154348 +enable_so_tx_cnt_IsdnCardState_18819 tx_cnt IsdnCardState 0 18819 NULL
154349 +enable_so_dvb_ringbuffer_write_user_fndecl_18821 dvb_ringbuffer_write_user fndecl 3 18821 NULL
154350 +enable_so_shmem_seek_hole_data_fndecl_18824 shmem_seek_hole_data fndecl 0-2-3 18824 NULL
154351 +enable_so_p_memsz_elf32_phdr_18830 p_memsz elf32_phdr 0 18830 NULL nohasharray
154352 +enable_so_clk_num_clk_onecell_data_18830 clk_num clk_onecell_data 0 18830 &enable_so_p_memsz_elf32_phdr_18830
154353 +enable_so_num_entries_compat_ipt_replace_18835 num_entries compat_ipt_replace 0 18835 NULL
154354 +enable_so_DriverQueueDepth_DAC960_Controller_18839 DriverQueueDepth DAC960_Controller 0 18839 NULL
154355 +enable_so_rsn_ie_len_hostap_bss_info_18840 rsn_ie_len hostap_bss_info 0 18840 NULL
154356 +enable_so_number_snd_card_18845 number snd_card 0 18845 NULL
154357 +enable_so_n_targets_rsxx_cardinfo_18847 n_targets rsxx_cardinfo 0 18847 NULL
154358 +enable_so_private_data_len_ib_cm_req_param_18848 private_data_len ib_cm_req_param 0 18848 NULL
154359 +enable_so_master_xfer_i2c_algorithm_18849 master_xfer i2c_algorithm 0 18849 NULL nohasharray
154360 +enable_so_taglen_nfsd4_compoundargs_18849 taglen nfsd4_compoundargs 0 18849 &enable_so_master_xfer_i2c_algorithm_18849
154361 +enable_so_usb_descriptor_fillbuf_fndecl_18853 usb_descriptor_fillbuf fndecl 0 18853 NULL nohasharray
154362 +enable_so_sco_sock_sendmsg_fndecl_18853 sco_sock_sendmsg fndecl 3 18853 &enable_so_usb_descriptor_fillbuf_fndecl_18853
154363 +enable_so_nreaders_vardecl_rcutorture_c_18862 nreaders vardecl_rcutorture.c 0 18862 NULL
154364 +enable_so_length_acpi_resource_18863 length acpi_resource 0 18863 NULL
154365 +enable_so_max_payload_fwnet_packet_task_18867 max_payload fwnet_packet_task 0 18867 NULL
154366 +enable_so_alloc_cache_blocks_with_hash_fndecl_18870 alloc_cache_blocks_with_hash fndecl 2 18870 NULL
154367 +enable_so_osd_y_pan_yuv_playback_info_18877 osd_y_pan yuv_playback_info 0 18877 NULL
154368 +enable_so_rx_buffer_len_atl1_adapter_18882 rx_buffer_len atl1_adapter 0 18882 NULL nohasharray
154369 +enable_so_allocate_cnodes_fndecl_18882 allocate_cnodes fndecl 1 18882 &enable_so_rx_buffer_len_atl1_adapter_18882
154370 +enable_so_rxd_rfsw_s_smt_fp_rxd_18889 rxd_rfsw s_smt_fp_rxd 0 18889 NULL
154371 +enable_so_uinput_ioctl_fndecl_18893 uinput_ioctl fndecl 2 18893 NULL
154372 +enable_so_vm_insert_pfn_fndecl_18894 vm_insert_pfn fndecl 3 18894 NULL nohasharray
154373 +enable_so_count_objects_shrinker_18894 count_objects shrinker 0 18894 &enable_so_vm_insert_pfn_fndecl_18894
154374 +enable_so_nr_stripes_bcache_device_18895 nr_stripes bcache_device 0 18895 NULL
154375 +enable_so_rx_ps_hdr_size_igbvf_adapter_18896 rx_ps_hdr_size igbvf_adapter 0 18896 NULL nohasharray
154376 +enable_so_r592_write_fifo_pio_fndecl_18896 r592_write_fifo_pio fndecl 3 18896 &enable_so_rx_ps_hdr_size_igbvf_adapter_18896
154377 +enable_so_num_freq_table_entries_vardecl_sfi_cpufreq_c_18898 num_freq_table_entries vardecl_sfi-cpufreq.c 0 18898 NULL
154378 +enable_so_nilfs_max_size_fndecl_18901 nilfs_max_size fndecl 0-1 18901 NULL nohasharray
154379 +enable_so_op_dmaoff_rm_data_op_18901 op_dmaoff rm_data_op 0 18901 &enable_so_nilfs_max_size_fndecl_18901
154380 +enable_so_sbc_get_write_same_sectors_fndecl_18902 sbc_get_write_same_sectors fndecl 0 18902 NULL
154381 +enable_so_pep_sendmsg_fndecl_18903 pep_sendmsg fndecl 3 18903 NULL
154382 +enable_so_extent_invalidatepage_fndecl_18906 extent_invalidatepage fndecl 3 18906 NULL
154383 +enable_so_pwr_elp_enter_read_fndecl_18911 pwr_elp_enter_read fndecl 3 18911 NULL
154384 +enable_so_sectors_ssfdcr_record_18912 sectors ssfdcr_record 0 18912 NULL
154385 +enable_so_ps_pspoll_utilization_read_fndecl_18914 ps_pspoll_utilization_read fndecl 3 18914 NULL
154386 +enable_so_dccpd_opt_len_dccp_skb_cb_18917 dccpd_opt_len dccp_skb_cb 0 18917 NULL
154387 +enable_so_fuse_write_update_size_fndecl_18918 fuse_write_update_size fndecl 2 18918 NULL
154388 +enable_so_kvm_pin_pages_fndecl_18922 kvm_pin_pages fndecl 2 18922 NULL nohasharray
154389 +enable_so_x509_note_subject_fndecl_18922 x509_note_subject fndecl 5 18922 &enable_so_kvm_pin_pages_fndecl_18922
154390 +enable_so_cciss_allocate_sg_chain_blocks_fndecl_18923 cciss_allocate_sg_chain_blocks fndecl 3-2 18923 NULL
154391 +enable_so_capacity_vmci_handle_arr_18924 capacity vmci_handle_arr 0 18924 NULL
154392 +enable_so_segment_size_kaweth_ethernet_configuration_18925 segment_size kaweth_ethernet_configuration 0 18925 NULL nohasharray
154393 +enable_so_vxfs_bread_fndecl_18925 vxfs_bread fndecl 2 18925 &enable_so_segment_size_kaweth_ethernet_configuration_18925
154394 +enable_so_ad714x_i2c_read_fndecl_18930 ad714x_i2c_read fndecl 4 18930 NULL
154395 +enable_so_spidev_get_ioc_message_fndecl_18931 spidev_get_ioc_message fndecl 1 18931 NULL
154396 +enable_so_maxReplyBytes_mpt_ioctl_command_18942 maxReplyBytes mpt_ioctl_command 0 18942 NULL
154397 +enable_so_read_pci_config_fndecl_18943 read_pci_config fndecl 0 18943 NULL
154398 +enable_so_rbd_segment_length_fndecl_18944 rbd_segment_length fndecl 0-2-3 18944 NULL
154399 +enable_so_cram_hmac_alg_len_net_conf_18947 cram_hmac_alg_len net_conf 0 18947 NULL nohasharray
154400 +enable_so_port_show_regs_fndecl_18947 port_show_regs fndecl 3 18947 &enable_so_cram_hmac_alg_len_net_conf_18947
154401 +enable_so_i2c_hack_cx25840_fndecl_18948 i2c_hack_cx25840 fndecl 4-6 18948 NULL nohasharray
154402 +enable_so_uhci_debug_read_fndecl_18948 uhci_debug_read fndecl 3 18948 &enable_so_i2c_hack_cx25840_fndecl_18948
154403 +enable_so_length_rsp_que_18950 length rsp_que 0 18950 NULL
154404 +enable_so_qla82xx_pci_mem_read_2M_fndecl_18955 qla82xx_pci_mem_read_2M fndecl 2 18955 NULL
154405 +enable_so_rss_queues_igb_adapter_18957 rss_queues igb_adapter 0 18957 NULL
154406 +enable_so_new_sync_read_fndecl_18960 new_sync_read fndecl 0-3 18960 NULL
154407 +enable_so_file_offset_btrfs_ordered_extent_18963 file_offset btrfs_ordered_extent 0 18963 NULL
154408 +enable_so_len_dm_target_18965 len dm_target 0 18965 NULL
154409 +enable_so___build_header_fndecl_18977 __build_header fndecl 2 18977 NULL nohasharray
154410 +enable_so_size_ceph_cap_snap_18977 size ceph_cap_snap 0 18977 &enable_so___build_header_fndecl_18977 nohasharray
154411 +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
154412 +enable_so_read_off_videobuf_queue_18978 read_off videobuf_queue 0 18978 NULL
154413 +enable_so_edac_device_alloc_ctl_info_fndecl_18982 edac_device_alloc_ctl_info fndecl 1 18982 NULL
154414 +enable_so_rcount_mkiss_18984 rcount mkiss 0 18984 NULL nohasharray
154415 +enable_so_l2cap_sock_sendmsg_fndecl_18984 l2cap_sock_sendmsg fndecl 3 18984 &enable_so_rcount_mkiss_18984
154416 +enable_so_preferred_bpp_intel_fbdev_18985 preferred_bpp intel_fbdev 0 18985 NULL
154417 +enable_so_p9_get_mapped_pages_fndecl_18988 p9_get_mapped_pages fndecl 4-0 18988 NULL nohasharray
154418 +enable_so_ebcnt_vardecl_subpagetest_c_18988 ebcnt vardecl_subpagetest.c 0 18988 &enable_so_p9_get_mapped_pages_fndecl_18988
154419 +enable_so_ttm_bo_kmap_ttm_fndecl_18993 ttm_bo_kmap_ttm fndecl 3 18993 NULL
154420 +enable_so_virtio_gpu_alloc_cmd_resp_fndecl_18996 virtio_gpu_alloc_cmd_resp fndecl 4-5 18996 NULL
154421 +enable_so_end_sk_buff_18998 end sk_buff 0 18998 NULL
154422 +enable_so_usb_hcd_check_unlink_urb_fndecl_18999 usb_hcd_check_unlink_urb fndecl 3 18999 NULL
154423 +enable_so_lbs_highsnr_read_fndecl_19000 lbs_highsnr_read fndecl 3 19000 NULL
154424 +enable_so_dm_alloc_md_mempools_fndecl_19008 dm_alloc_md_mempools fndecl 4 19008 NULL
154425 +enable_so_max_sectors_ata_device_19016 max_sectors ata_device 0 19016 NULL
154426 +enable_so_generic_splice_sendpage_fndecl_19018 generic_splice_sendpage fndecl 4 19018 NULL
154427 +enable_so_prevUnitNo_inftl_unithead1_19020 prevUnitNo inftl_unithead1 0 19020 NULL
154428 +enable_so_SyS_semop_fndecl_19023 SyS_semop fndecl 3 19023 NULL
154429 +enable_so_tcp_recvmsg_fndecl_19029 tcp_recvmsg fndecl 3 19029 NULL
154430 +enable_so_sge_size_MPT3SAS_ADAPTER_19030 sge_size MPT3SAS_ADAPTER 0 19030 NULL nohasharray
154431 +enable_so_tipc_subseq_alloc_fndecl_19030 tipc_subseq_alloc fndecl 1 19030 &enable_so_sge_size_MPT3SAS_ADAPTER_19030
154432 +enable_so_ll_statahead_one_fndecl_19033 ll_statahead_one fndecl 3 19033 NULL
154433 +enable_so_scrollback_max_vardecl_fbcon_c_19040 scrollback_max vardecl_fbcon.c 0 19040 NULL nohasharray
154434 +enable_so_next_cnid_hfsplus_sb_info_19040 next_cnid hfsplus_sb_info 0 19040 &enable_so_scrollback_max_vardecl_fbcon_c_19040
154435 +enable_so_tsize_nfs2_fsstat_19041 tsize nfs2_fsstat 0 19041 NULL
154436 +enable_so_len_ath10k_dump_file_data_19052 len ath10k_dump_file_data 0 19052 NULL
154437 +enable_so_dma_usb_request_19054 dma usb_request 0 19054 NULL
154438 +enable_so_mod_len_extent_map_19058 mod_len extent_map 0 19058 NULL
154439 +enable_so_count_sgmapraw_19066 count sgmapraw 0 19066 NULL
154440 +enable_so_mem_size_memory_type_mapping_19073 mem_size memory_type_mapping 0 19073 NULL
154441 +enable_so_offs_ubifs_zbranch_19074 offs ubifs_zbranch 0 19074 NULL
154442 +enable_so_mei_cl_read_start_fndecl_19077 mei_cl_read_start fndecl 2-0 19077 NULL nohasharray
154443 +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
154444 +enable_so_s_blocksize_super_block_19081 s_blocksize super_block 0 19081 NULL nohasharray
154445 +enable_so_ipath_set_mtu_fndecl_19081 ipath_set_mtu fndecl 2 19081 &enable_so_s_blocksize_super_block_19081
154446 +enable_so_gsi_kvm_assigned_msix_entry_19082 gsi kvm_assigned_msix_entry 0 19082 NULL
154447 +enable_so_data_size_hpi_msg_data_19086 data_size hpi_msg_data 0 19086 NULL
154448 +enable_so_mei_hbm_cl_flow_control_req_fndecl_19089 mei_hbm_cl_flow_control_req fndecl 0 19089 NULL
154449 +enable_so_duplex_pxa168_eth_platform_data_19097 duplex pxa168_eth_platform_data 0 19097 NULL
154450 +enable_so_sb_logsectsize_xfs_sb_19098 sb_logsectsize xfs_sb 0 19098 NULL
154451 +enable_so_btrfs_qgroup_inherit_fndecl_19103 btrfs_qgroup_inherit fndecl 4 19103 NULL
154452 +enable_so_walk_node_fndecl_19114 walk_node fndecl 2 19114 NULL nohasharray
154453 +enable_so_sctp_setsockopt_connectx_fndecl_19114 sctp_setsockopt_connectx fndecl 3 19114 &enable_so_walk_node_fndecl_19114
154454 +enable_so_ceph_entity_name_encode_fndecl_19115 ceph_entity_name_encode fndecl 0 19115 NULL nohasharray
154455 +enable_so_alloc_msg_fndecl_19115 alloc_msg fndecl 1 19115 &enable_so_ceph_entity_name_encode_fndecl_19115
154456 +enable_so_sel_make_class_dir_entries_fndecl_19123 sel_make_class_dir_entries fndecl 2 19123 NULL
154457 +enable_so_rx_keycache_size_p54_common_19128 rx_keycache_size p54_common 0 19128 NULL
154458 +enable_so_ssid_len_ieee80211_mgd_assoc_data_19143 ssid_len ieee80211_mgd_assoc_data 0 19143 NULL
154459 +enable_so_start_vivitar_cam_fndecl_19144 start_vivitar_cam fndecl 0 19144 NULL
154460 +enable_so_ctrl_set_res_hor_fndecl_19146 ctrl_set_res_hor fndecl 3 19146 NULL nohasharray
154461 +enable_so_count_c2_ring_19146 count c2_ring 0 19146 &enable_so_ctrl_set_res_hor_fndecl_19146
154462 +enable_so_ipmi_addr_length_fndecl_19149 ipmi_addr_length fndecl 0 19149 NULL
154463 +enable_so_pgbase_nfs_readlinkargs_19150 pgbase nfs_readlinkargs 0 19150 NULL
154464 +enable_so_inftl_write_oob_fndecl_19154 inftl_write_oob fndecl 2-3 19154 NULL
154465 +enable_so_alloc_indirect_fndecl_19156 alloc_indirect fndecl 2 19156 NULL
154466 +enable_so_do_get_thread_area_fndecl_19157 do_get_thread_area fndecl 2 19157 NULL
154467 +enable_so_page_array_size_firmware_buf_19163 page_array_size firmware_buf 0 19163 NULL
154468 +enable_so_ve_attrlen_nfsd4_verify_19164 ve_attrlen nfsd4_verify 0 19164 NULL
154469 +enable_so_ms_nvme_ns_19166 ms nvme_ns 0 19166 NULL
154470 +enable_so_dma_start_hi_rx_buf_desc_19167 dma_start_hi rx_buf_desc 0 19167 NULL
154471 +enable_so_isp116x_urb_dequeue_fndecl_19169 isp116x_urb_dequeue fndecl 3 19169 NULL
154472 +enable_so_max_pages_per_mr_srp_device_19171 max_pages_per_mr srp_device 0 19171 NULL
154473 +enable_so_lprocfs_alloc_stats_fndecl_19181 lprocfs_alloc_stats fndecl 1 19181 NULL
154474 +enable_so_mic_read_spad_fndecl_19184 mic_read_spad fndecl 0 19184 NULL
154475 +enable_so_dfs_global_file_write_fndecl_19187 dfs_global_file_write fndecl 3 19187 NULL
154476 +enable_so_xen_max_p2m_pfn_vardecl_19189 xen_max_p2m_pfn vardecl 0 19189 NULL
154477 +enable_so_nci_allocate_device_fndecl_19192 nci_allocate_device fndecl 3 19192 NULL
154478 +enable_so_queue_depth_hpsa_scsi_dev_t_19194 queue_depth hpsa_scsi_dev_t 0 19194 NULL
154479 +enable_so_slot_nr_nfs4_slot_19196 slot_nr nfs4_slot 0 19196 NULL nohasharray
154480 +enable_so_num_retune_mobile_texts_wm8996_priv_19196 num_retune_mobile_texts wm8996_priv 0 19196 &enable_so_slot_nr_nfs4_slot_19196
154481 +enable_so_decode_height_yuv_playback_info_19201 decode_height yuv_playback_info 0 19201 NULL
154482 +enable_so_irq_dma_handle_ttusb_dec_19208 irq_dma_handle ttusb_dec 0 19208 NULL
154483 +enable_so_ext4_xattr_get_fndecl_19214 ext4_xattr_get fndecl 0 19214 NULL
154484 +enable_so_size_afs_file_status_19215 size afs_file_status 0 19215 NULL
154485 +enable_so_extensions_edid_19218 extensions edid 0 19218 NULL
154486 +enable_so_lfb_size_screen_info_19219 lfb_size screen_info 0 19219 NULL
154487 +enable_so_SYSC_fsetxattr_fndecl_19220 SYSC_fsetxattr fndecl 4 19220 NULL
154488 +enable_so_csio_add_debugfs_mem_fndecl_19228 csio_add_debugfs_mem fndecl 4 19228 NULL
154489 +enable_so___ai_size_pcpu_alloc_info_19229 __ai_size pcpu_alloc_info 0 19229 NULL
154490 +enable_so_cmds_vardecl_ambassador_c_19230 cmds vardecl_ambassador.c 0 19230 NULL
154491 +enable_so_spi_populate_ppr_msg_fndecl_19239 spi_populate_ppr_msg fndecl 0 19239 NULL
154492 +enable_so_matroxfb_pitch_adjust_fndecl_19243 matroxfb_pitch_adjust fndecl 0-2 19243 NULL nohasharray
154493 +enable_so_tcp_fastretrans_alert_fndecl_19243 tcp_fastretrans_alert fndecl 2 19243 &enable_so_matroxfb_pitch_adjust_fndecl_19243
154494 +enable_so_get_arg_fndecl_19245 get_arg fndecl 3 19245 NULL
154495 +enable_so_mthca_map_reg_fndecl_19251 mthca_map_reg fndecl 3-2 19251 NULL
154496 +enable_so_ieee802154_hdr_push_sechdr_fndecl_19265 ieee802154_hdr_push_sechdr fndecl 0 19265 NULL
154497 +enable_so_batadv_frag_create_fndecl_19270 batadv_frag_create fndecl 3 19270 NULL
154498 +enable_so_tail_aio_ring_19271 tail aio_ring 0 19271 NULL
154499 +enable_so_sb_segnum_nilfs_segment_buffer_19276 sb_segnum nilfs_segment_buffer 0 19276 NULL nohasharray
154500 +enable_so_vmw_kms_readback_fndecl_19276 vmw_kms_readback fndecl 6 19276 &enable_so_sb_segnum_nilfs_segment_buffer_19276
154501 +enable_so_early_init_dt_reserve_memory_arch_fndecl_19285 early_init_dt_reserve_memory_arch fndecl 2-1 19285 NULL
154502 +enable_so_inode_minix_dir_entry_19287 inode minix_dir_entry 0 19287 NULL
154503 +enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291 virtio_gpu_cmd_resource_flush fndecl 5-6 19291 NULL nohasharray
154504 +enable_so_index_scsi_tape_19291 index scsi_tape 0 19291 &enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291
154505 +enable_so_subbuf_read_actor_fndecl_19295 subbuf_read_actor fndecl 3 19295 NULL
154506 +enable_so_get_packet_fndecl_19296 get_packet fndecl 3 19296 NULL
154507 +enable_so_vxge_change_mtu_fndecl_19297 vxge_change_mtu fndecl 2 19297 NULL
154508 +enable_so_ext_len_xfs_extent_19299 ext_len xfs_extent 0 19299 NULL
154509 +enable_so_ubi_calc_fm_size_fndecl_19302 ubi_calc_fm_size fndecl 0 19302 NULL
154510 +enable_so_copy_vma_fndecl_19303 copy_vma fndecl 3-2-4 19303 NULL
154511 +enable_so_cl_cpg_ocfs2_chain_list_19308 cl_cpg ocfs2_chain_list 0 19308 NULL
154512 +enable_so_sys_sched_getattr_fndecl_19313 sys_sched_getattr fndecl 3 19313 NULL
154513 +enable_so_ve4_indsize_vxfs_ext4_19315 ve4_indsize vxfs_ext4 0 19315 NULL
154514 +enable_so_reply_sz_MPT3SAS_ADAPTER_19317 reply_sz MPT3SAS_ADAPTER 0 19317 NULL
154515 +enable_so_bpp_vardecl_nvidia_c_19325 bpp vardecl_nvidia.c 0 19325 NULL
154516 +enable_so_meta_dev_len_disk_conf_19326 meta_dev_len disk_conf 0 19326 NULL
154517 +enable_so_rdma_read_max_sge_fndecl_19328 rdma_read_max_sge fndecl 0-2 19328 NULL
154518 +enable_so_mlx4_alloc_resize_buf_fndecl_19329 mlx4_alloc_resize_buf fndecl 3 19329 NULL
154519 +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
154520 +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
154521 +enable_so_rule_size_fib_rules_ops_19335 rule_size fib_rules_ops 0 19335 NULL
154522 +enable_so___vxge_hw_blockpool_malloc_fndecl_19337 __vxge_hw_blockpool_malloc fndecl 2 19337 NULL
154523 +enable_so_compat_sys_writev_fndecl_19339 compat_sys_writev fndecl 3 19339 NULL
154524 +enable_so_rockchip_clk_init_fndecl_19353 rockchip_clk_init fndecl 3 19353 NULL
154525 +enable_so_sock_alloc_send_pskb_fndecl_19354 sock_alloc_send_pskb fndecl 3 19354 NULL
154526 +enable_so_data_sge_offset_mpt3_ioctl_command_19355 data_sge_offset mpt3_ioctl_command 0 19355 NULL
154527 +enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356 qlcnic_83xx_sysfs_flash_read_handler fndecl 6 19356 NULL nohasharray
154528 +enable_so_sctp_setsockopt_autoclose_fndecl_19356 sctp_setsockopt_autoclose fndecl 3 19356 &enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356
154529 +enable_so_ds_channels_snd_rme9652_19357 ds_channels snd_rme9652 0 19357 NULL
154530 +enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359 lpfc_sriov_nr_virtfn_init fndecl 2 19359 NULL nohasharray
154531 +enable_so_minimum_acpi_resource_io_19359 minimum acpi_resource_io 0 19359 &enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359
154532 +enable_so_nodesize_scrub_ctx_19371 nodesize scrub_ctx 0 19371 NULL
154533 +enable_so_size_mdu_array_info_s_19374 size mdu_array_info_s 0 19374 NULL
154534 +enable_so_nvme_trans_bdev_char_page_fndecl_19382 nvme_trans_bdev_char_page fndecl 3 19382 NULL
154535 +enable_so_do_anonymous_page_fndecl_19385 do_anonymous_page fndecl 3 19385 NULL
154536 +enable_so_cx25840_read_fndecl_19386 cx25840_read fndecl 0 19386 NULL nohasharray
154537 +enable_so_ControllerQueueDepth_DAC960_Controller_19386 ControllerQueueDepth DAC960_Controller 0 19386 &enable_so_cx25840_read_fndecl_19386
154538 +enable_so_error_param1_vardecl_einj_c_19392 error_param1 vardecl_einj.c 0 19392 NULL
154539 +enable_so_padlen_ip_beet_phdr_19393 padlen ip_beet_phdr 0 19393 NULL
154540 +enable_so_ixgb_check_copybreak_fndecl_19396 ixgb_check_copybreak fndecl 3 19396 NULL nohasharray
154541 +enable_so_at25_bin_write_fndecl_19396 at25_bin_write fndecl 6-5 19396 &enable_so_ixgb_check_copybreak_fndecl_19396
154542 +enable_so_ceph_msg_new_fndecl_19397 ceph_msg_new fndecl 2 19397 NULL
154543 +enable_so_rx_filter_max_arp_queue_dep_read_fndecl_19400 rx_filter_max_arp_queue_dep_read fndecl 3 19400 NULL
154544 +enable_so_ext4_xattr_set_fndecl_19403 ext4_xattr_set fndecl 5 19403 NULL nohasharray
154545 +enable_so_setup_req_fndecl_19403 setup_req fndecl 3-0 19403 &enable_so_ext4_xattr_set_fndecl_19403
154546 +enable_so_ib_uverbs_open_xrcd_fndecl_19405 ib_uverbs_open_xrcd fndecl 3 19405 NULL nohasharray
154547 +enable_so_max_sqes_bnx2i_hba_19405 max_sqes bnx2i_hba 0 19405 &enable_so_ib_uverbs_open_xrcd_fndecl_19405
154548 +enable_so_rec_len_ocfs2_dir_entry_19408 rec_len ocfs2_dir_entry 0 19408 NULL
154549 +enable_so_proc_read_atmdev_ops_19414 proc_read atmdev_ops 0 19414 NULL
154550 +enable_so_num_ip_blocks_amdgpu_device_19419 num_ip_blocks amdgpu_device 0 19419 NULL
154551 +enable_so_size_mthca_resource_19420 size mthca_resource 0 19420 NULL
154552 +enable_so_fw_card_add_fndecl_19423 fw_card_add fndecl 2 19423 NULL
154553 +enable_so_mixer_nid_hda_gen_spec_19429 mixer_nid hda_gen_spec 0 19429 NULL
154554 +enable_so_config_buf_fndecl_19445 config_buf fndecl 0 19445 NULL nohasharray
154555 +enable_so_sn9c2028_long_command_fndecl_19445 sn9c2028_long_command fndecl 0 19445 &enable_so_config_buf_fndecl_19445
154556 +enable_so_compat_sys_move_pages_fndecl_19446 compat_sys_move_pages fndecl 2 19446 NULL nohasharray
154557 +enable_so_uinput_compat_ioctl_fndecl_19446 uinput_compat_ioctl fndecl 2 19446 &enable_so_compat_sys_move_pages_fndecl_19446
154558 +enable_so_i_parent_dir_hpfs_inode_info_19451 i_parent_dir hpfs_inode_info 0 19451 NULL
154559 +enable_so_ilf_ino_xfs_inode_log_format_19454 ilf_ino xfs_inode_log_format 0 19454 NULL
154560 +enable_so_dvb_ringbuffer_read_fndecl_19457 dvb_ringbuffer_read fndecl 3 19457 NULL
154561 +enable_so_sys_setdomainname_fndecl_19462 sys_setdomainname fndecl 2 19462 NULL
154562 +enable_so_i965_gtt_total_entries_fndecl_19464 i965_gtt_total_entries fndecl 0 19464 NULL
154563 +enable_so_vcc_connect_fndecl_19469 vcc_connect fndecl 4-3 19469 NULL nohasharray
154564 +enable_so_size_nvbios_image_19469 size nvbios_image 0 19469 &enable_so_vcc_connect_fndecl_19469
154565 +enable_so_dvb_ep_bulk_em28xx_19472 dvb_ep_bulk em28xx 0 19472 NULL nohasharray
154566 +enable_so_kclist_add_fndecl_19472 kclist_add fndecl 3 19472 &enable_so_dvb_ep_bulk_em28xx_19472
154567 +enable_so_dma_xfer_cnt_ivtv_buffer_19475 dma_xfer_cnt ivtv_buffer 0 19475 NULL
154568 +enable_so_orig_block_len_extent_map_19476 orig_block_len extent_map 0 19476 NULL
154569 +enable_so_ath6kl_wmi_ap_hidden_ssid_fndecl_19481 ath6kl_wmi_ap_hidden_ssid fndecl 2 19481 NULL
154570 +enable_so_fackets_out_tcp_sock_19484 fackets_out tcp_sock 0 19484 NULL
154571 +enable_so_ieee80211_change_mtu_fndecl_19486 ieee80211_change_mtu fndecl 2 19486 NULL nohasharray
154572 +enable_so_lookup_string_fndecl_19486 lookup_string fndecl 0 19486 &enable_so_ieee80211_change_mtu_fndecl_19486
154573 +enable_so_ath6kl_set_bitrate_mask32_fndecl_19488 ath6kl_set_bitrate_mask32 fndecl 2 19488 NULL
154574 +enable_so_drm_gtf_mode_fndecl_19489 drm_gtf_mode fndecl 3-2-4 19489 NULL nohasharray
154575 +enable_so_add_device_fndecl_19489 add_device fndecl 2 19489 &enable_so_drm_gtf_mode_fndecl_19489
154576 +enable_so_length_mwifiex_types_power_group_19491 length mwifiex_types_power_group 0 19491 NULL
154577 +enable_so_reg_read_fndecl_19498 reg_read fndecl 0 19498 NULL
154578 +enable_so_len_ib_ucm_sidr_req_19499 len ib_ucm_sidr_req 0 19499 NULL
154579 +enable_so_libfc_vport_create_fndecl_19500 libfc_vport_create fndecl 2 19500 NULL
154580 +enable_so_access_process_vm_fndecl_19503 access_process_vm fndecl 4-0-2 19503 NULL nohasharray
154581 +enable_so_cxacru_cm_get_array_fndecl_19503 cxacru_cm_get_array fndecl 4 19503 &enable_so_access_process_vm_fndecl_19503
154582 +enable_so_sctp_sendmsg_fndecl_19508 sctp_sendmsg fndecl 3 19508 NULL
154583 +enable_so_ecryptfs_write_tag_70_packet_fndecl_19510 ecryptfs_write_tag_70_packet fndecl 6 19510 NULL nohasharray
154584 +enable_so_dev_cdev_19510 dev cdev 0 19510 &enable_so_ecryptfs_write_tag_70_packet_fndecl_19510
154585 +enable_so_count_sgmap64_19513 count sgmap64 0 19513 NULL
154586 +enable_so_ndoms_cur_vardecl_core_c_19519 ndoms_cur vardecl_core.c 0 19519 NULL
154587 +enable_so_pglen_nfs_readlinkargs_19521 pglen nfs_readlinkargs 0 19521 NULL
154588 +enable_so_do_pages_stat_fndecl_19526 do_pages_stat fndecl 2 19526 NULL
154589 +enable_so_i40e_reconfig_rss_queues_fndecl_19528 i40e_reconfig_rss_queues fndecl 2 19528 NULL
154590 +enable_so_height_simplefb_platform_data_19532 height simplefb_platform_data 0 19532 NULL
154591 +enable_so_memparse_fndecl_19535 memparse fndecl 0 19535 NULL nohasharray
154592 +enable_so_d40_sg_2_dmalen_fndecl_19535 d40_sg_2_dmalen fndecl 3-4-0 19535 &enable_so_memparse_fndecl_19535
154593 +enable_so_in_dma_usb_keyspan_19540 in_dma usb_keyspan 0 19540 NULL
154594 +enable_so_npins_chv_gpio_pinrange_19542 npins chv_gpio_pinrange 0 19542 NULL nohasharray
154595 +enable_so_rtw_android_get_rssi_fndecl_19542 rtw_android_get_rssi fndecl 0 19542 &enable_so_npins_chv_gpio_pinrange_19542
154596 +enable_so_nilfs_sufile_set_alloc_range_fndecl_19543 nilfs_sufile_set_alloc_range fndecl 3-2 19543 NULL nohasharray
154597 +enable_so_entries_size_ebt_table_info_19543 entries_size ebt_table_info 0 19543 &enable_so_nilfs_sufile_set_alloc_range_fndecl_19543
154598 +enable_so_get_response_hdac_bus_ops_19545 get_response hdac_bus_ops 0 19545 NULL
154599 +enable_so_read_code_fndecl_19550 read_code fndecl 4 19550 NULL
154600 +enable_so_send_size_send_ctx_19552 send_size send_ctx 0 19552 NULL
154601 +enable_so_softback_curr_vardecl_fbcon_c_19553 softback_curr vardecl_fbcon.c 0 19553 NULL
154602 +enable_so_at76_set_card_command_fndecl_19556 at76_set_card_command fndecl 4 19556 NULL
154603 +enable_so_cmpt_entry_sz_mlx4_dev_cap_19564 cmpt_entry_sz mlx4_dev_cap 0 19564 NULL
154604 +enable_so_uni16_to_x8_fndecl_19571 uni16_to_x8 fndecl 0 19571 NULL
154605 +enable_so_sd_pkt_scan_bayer_fndecl_19581 sd_pkt_scan_bayer fndecl 3 19581 NULL
154606 +enable_so_ath6kl_wmi_set_txe_notify_fndecl_19582 ath6kl_wmi_set_txe_notify fndecl 2 19582 NULL
154607 +enable_so_set_link_security_fndecl_19589 set_link_security fndecl 4 19589 NULL
154608 +enable_so_rx_max_pending_ethtool_ringparam_19591 rx_max_pending ethtool_ringparam 0 19591 NULL
154609 +enable_so_l1oip_socket_parse_fndecl_19592 l1oip_socket_parse fndecl 4 19592 NULL
154610 +enable_so_icc_empty_fifo_fndecl_19594 icc_empty_fifo fndecl 2 19594 NULL
154611 +enable_so_xdr_stream_pos_fndecl_19598 xdr_stream_pos fndecl 0 19598 NULL
154612 +enable_so_command_size_drm_qxl_command_19601 command_size drm_qxl_command 0 19601 NULL
154613 +enable_so_snd_seq_expand_var_event_fndecl_19602 snd_seq_expand_var_event fndecl 0 19602 NULL
154614 +enable_so_readpos_seq_buf_19607 readpos seq_buf 0 19607 NULL
154615 +enable_so_rt5677_spi_write_fndecl_19610 rt5677_spi_write fndecl 2 19610 NULL
154616 +enable_so_rs_user_bytes_rds_sock_19611 rs_user_bytes rds_sock 0 19611 NULL
154617 +enable_so_gspca_frame_add_fndecl_19612 gspca_frame_add fndecl 4 19612 NULL nohasharray
154618 +enable_so_vmbus_establish_gpadl_fndecl_19612 vmbus_establish_gpadl fndecl 3 19612 &enable_so_gspca_frame_add_fndecl_19612
154619 +enable_so_logical_btrfs_io_bio_19616 logical btrfs_io_bio 0 19616 NULL
154620 +enable_so___gfn_to_pfn_memslot_fndecl_19617 __gfn_to_pfn_memslot fndecl 2 19617 NULL
154621 +enable_so_sys_llistxattr_fndecl_19623 sys_llistxattr fndecl 3 19623 NULL
154622 +enable_so_name_len_ext4_dir_entry_2_19628 name_len ext4_dir_entry_2 0 19628 NULL
154623 +enable_so_logical_io_failure_record_19631 logical io_failure_record 0 19631 NULL
154624 +enable_so_max_queue_depth_vardecl_eata_c_19636 max_queue_depth vardecl_eata.c 0 19636 NULL
154625 +enable_so_softback_buf_vardecl_fbcon_c_19637 softback_buf vardecl_fbcon.c 0 19637 NULL
154626 +enable_so_sdio_io_rw_ext_helper_fndecl_19641 sdio_io_rw_ext_helper fndecl 6 19641 NULL
154627 +enable_so_pcfg_ofsh_cyttsp4_sysinfo_data_19644 pcfg_ofsh cyttsp4_sysinfo_data 0 19644 NULL
154628 +enable_so_af9033_rd_regs_fndecl_19652 af9033_rd_regs fndecl 4 19652 NULL
154629 +enable_so_shadow_step_fndecl_19653 shadow_step fndecl 2 19653 NULL
154630 +enable_so_hr_itemcount_hsm_request_19657 hr_itemcount hsm_request 0 19657 NULL
154631 +enable_so_configfs_dir_lseek_fndecl_19658 configfs_dir_lseek fndecl 2 19658 NULL
154632 +enable_so_btrfs_file_extent_inline_item_len_fndecl_19660 btrfs_file_extent_inline_item_len fndecl 0 19660 NULL
154633 +enable_so_count_kernel_pbes_fndecl_19664 count_kernel_pbes fndecl 0 19664 NULL
154634 +enable_so_tty_register_device_fndecl_19667 tty_register_device fndecl 2 19667 NULL
154635 +enable_so_videobuf_vmalloc_to_sg_fndecl_19671 videobuf_vmalloc_to_sg fndecl 2 19671 NULL
154636 +enable_so_fsl_edma_prep_slave_sg_fndecl_19672 fsl_edma_prep_slave_sg fndecl 3 19672 NULL
154637 +enable_so_recv_intr_pipe_us_data_19678 recv_intr_pipe us_data 0 19678 NULL
154638 +enable_so_bch_alloc_fndecl_19682 bch_alloc fndecl 1 19682 NULL
154639 +enable_so_ath10k_dbg_sta_write_delba_fndecl_19689 ath10k_dbg_sta_write_delba fndecl 3 19689 NULL
154640 +enable_so_depth_em28xx_fmt_19696 depth em28xx_fmt 0 19696 NULL nohasharray
154641 +enable_so_size_pkt_hdr_19696 size pkt_hdr 0 19696 &enable_so_depth_em28xx_fmt_19696 nohasharray
154642 +enable_so_pcnt_bits_ubifs_info_19696 pcnt_bits ubifs_info 0 19696 &enable_so_size_pkt_hdr_19696 nohasharray
154643 +enable_so_prealloc_bufsz_comedi_async_19696 prealloc_bufsz comedi_async 0 19696 &enable_so_pcnt_bits_ubifs_info_19696
154644 +enable_so_st_fixed_buffer_size_vardecl_st_c_19699 st_fixed_buffer_size vardecl_st.c 0 19699 NULL
154645 +enable_so_xfs_buf_get_maps_fndecl_19702 xfs_buf_get_maps fndecl 2 19702 NULL
154646 +enable_so_gfs2_file_splice_write_fndecl_19705 gfs2_file_splice_write fndecl 4 19705 NULL
154647 +enable_so_fnic_max_qdepth_vardecl_fnic_main_c_19707 fnic_max_qdepth vardecl_fnic_main.c 0 19707 NULL
154648 +enable_so_acpi_read_fast_fndecl_19709 acpi_read_fast fndecl 3-2 19709 NULL
154649 +enable_so_max_blksize_sdio_func_19715 max_blksize sdio_func 0 19715 NULL
154650 +enable_so_LastFreeEUN_NFTLrecord_19717 LastFreeEUN NFTLrecord 0 19717 NULL
154651 +enable_so_slots_end_qxl_rom_19718 slots_end qxl_rom 0 19718 NULL
154652 +enable_so_fat32_info_sector_fat_bios_param_block_19727 fat32_info_sector fat_bios_param_block 0 19727 NULL
154653 +enable_so_max_active_conns_bnx2i_hba_19740 max_active_conns bnx2i_hba 0 19740 NULL
154654 +enable_so_bytesperline_v4l2_pix_format_19741 bytesperline v4l2_pix_format 0 19741 NULL
154655 +enable_so_writelen_iuu_private_19742 writelen iuu_private 0 19742 NULL
154656 +enable_so_ntb_netdev_change_mtu_fndecl_19744 ntb_netdev_change_mtu fndecl 2 19744 NULL
154657 +enable_so_nftl_write_oob_fndecl_19745 nftl_write_oob fndecl 2-3 19745 NULL nohasharray
154658 +enable_so_nmap_ib_umem_19745 nmap ib_umem 0 19745 &enable_so_nftl_write_oob_fndecl_19745
154659 +enable_so_tm6000_read_fndecl_19748 tm6000_read fndecl 3 19748 NULL
154660 +enable_so_mpt_raid_phys_disk_get_num_paths_fndecl_19752 mpt_raid_phys_disk_get_num_paths fndecl 0 19752 NULL
154661 +enable_so_instances_vardecl_iio_simple_dummy_c_19753 instances vardecl_iio_simple_dummy.c 0 19753 NULL
154662 +enable_so_si2168_i2c_master_send_unlocked_fndecl_19760 si2168_i2c_master_send_unlocked fndecl 3 19760 NULL
154663 +enable_so_c67x00_giveback_urb_fndecl_19761 c67x00_giveback_urb fndecl 3 19761 NULL
154664 +enable_so_vram_base_qxl_device_19773 vram_base qxl_device 0 19773 NULL
154665 +enable_so_onenand_read_ops_nolock_fndecl_19774 onenand_read_ops_nolock fndecl 2 19774 NULL
154666 +enable_so_read_file_bool_fndecl_19783 read_file_bool fndecl 3 19783 NULL
154667 +enable_so_fw_mem_block_size_wl1271_19784 fw_mem_block_size wl1271 0 19784 NULL
154668 +enable_so_gss_decrypt_xdr_buf_fndecl_19786 gss_decrypt_xdr_buf fndecl 3 19786 NULL
154669 +enable_so_get_alua_req_fndecl_19797 get_alua_req fndecl 3 19797 NULL
154670 +enable_so_pvscsi_get_max_targets_fndecl_19802 pvscsi_get_max_targets fndecl 0 19802 NULL
154671 +enable_so_fromlen_nfs3_symlinkargs_19803 fromlen nfs3_symlinkargs 0 19803 NULL
154672 +enable_so_len_rpcsec_gss_oid_19814 len rpcsec_gss_oid 0 19814 NULL
154673 +enable_so_eeprom_len_niu_19815 eeprom_len niu 0 19815 NULL
154674 +enable_so_size_vring_19817 size vring 0 19817 NULL
154675 +enable_so_ip_send_unicast_reply_fndecl_19820 ip_send_unicast_reply fndecl 7 19820 NULL
154676 +enable_so_vring_new_virtqueue_fndecl_19828 vring_new_virtqueue fndecl 2 19828 NULL
154677 +enable_so___nfs4_get_acl_uncached_fndecl_19830 __nfs4_get_acl_uncached fndecl 3 19830 NULL
154678 +enable_so_size_asix_rx_fixup_info_19833 size asix_rx_fixup_info 0 19833 NULL
154679 +enable_so__osd_req_list_objects_fndecl_19839 _osd_req_list_objects fndecl 6 19839 NULL
154680 +enable_so_buf_used_uvc_video_queue_19843 buf_used uvc_video_queue 0 19843 NULL
154681 +enable_so_s3c_hsotg_send_reply_fndecl_19844 s3c_hsotg_send_reply fndecl 4 19844 NULL nohasharray
154682 +enable_so_rpos_cm4000_dev_19844 rpos cm4000_dev 0 19844 &enable_so_s3c_hsotg_send_reply_fndecl_19844
154683 +enable_so_fbmem_start_viafb_dev_19849 fbmem_start viafb_dev 0 19849 NULL
154684 +enable_so_num_jumbo_rxd_qlcnic_adapter_19850 num_jumbo_rxd qlcnic_adapter 0 19850 NULL
154685 +enable_so_xen_released_pages_vardecl_19851 xen_released_pages vardecl 0 19851 NULL
154686 +enable_so_qp_guest_endpoint_create_fndecl_19852 qp_guest_endpoint_create fndecl 5-4 19852 NULL
154687 +enable_so_i5k_channel_probe_fndecl_19853 i5k_channel_probe fndecl 2 19853 NULL
154688 +enable_so_ext4_direct_IO_fndecl_19865 ext4_direct_IO fndecl 3 19865 NULL
154689 +enable_so_max_msix_vectors_ixgbe_mac_info_19874 max_msix_vectors ixgbe_mac_info 0 19874 NULL
154690 +enable_so_ath6kl_force_roam_write_fndecl_19881 ath6kl_force_roam_write fndecl 3 19881 NULL
154691 +enable_so_size_sst_block_19887 size sst_block 0 19887 NULL nohasharray
154692 +enable_so_goldfish_audio_write_fndecl_19887 goldfish_audio_write fndecl 3 19887 &enable_so_size_sst_block_19887
154693 +enable_so_ide_find_dma_mode_fndecl_19889 ide_find_dma_mode fndecl 0 19889 NULL
154694 +enable_so_register_sound_midi_fndecl_19894 register_sound_midi fndecl 2 19894 NULL
154695 +enable_so___pool_find_fndecl_19911 __pool_find fndecl 3 19911 NULL
154696 +enable_so_count_strings_fndecl_19912 count_strings fndecl 0 19912 NULL
154697 +enable_so_slot_dlm_slot_19913 slot dlm_slot 0 19913 NULL
154698 +enable_so_maxLen_group_data_19920 maxLen group_data 0 19920 NULL nohasharray
154699 +enable_so_get_connectors_for_crtc_fndecl_19920 get_connectors_for_crtc fndecl 0 19920 &enable_so_maxLen_group_data_19920
154700 +enable_so_cp_change_mtu_fndecl_19922 cp_change_mtu fndecl 2 19922 NULL nohasharray
154701 +enable_so_xt_compat_add_offset_fndecl_19922 xt_compat_add_offset fndecl 0 19922 &enable_so_cp_change_mtu_fndecl_19922
154702 +enable_so_sector_number_phys_req_19923 sector_number phys_req 0 19923 NULL
154703 +enable_so_dev_init_pre_alt_sd_19924 dev_init_pre_alt sd 0 19924 NULL
154704 +enable_so___usbnet_read_cmd_fndecl_19928 __usbnet_read_cmd fndecl 7 19928 NULL
154705 +enable_so_rate_p54_rx_data_19929 rate p54_rx_data 0 19929 NULL
154706 +enable_so_iic_tpm_write_generic_fndecl_19931 iic_tpm_write_generic fndecl 3 19931 NULL
154707 +enable_so_dvb_ringbuffer_pkt_read_user_fndecl_19932 dvb_ringbuffer_pkt_read_user fndecl 2-3-5 19932 NULL
154708 +enable_so_ima_eventdigest_init_common_fndecl_19937 ima_eventdigest_init_common fndecl 2 19937 NULL
154709 +enable_so_unix_stream_sendmsg_fndecl_19940 unix_stream_sendmsg fndecl 3 19940 NULL
154710 +enable_so_max_buckets_crush_map_19942 max_buckets crush_map 0 19942 NULL
154711 +enable_so_ieee802154_nl_fill_phy_fndecl_19951 ieee802154_nl_fill_phy fndecl 0 19951 NULL
154712 +enable_so_wusbhc_giveback_urb_fndecl_19954 wusbhc_giveback_urb fndecl 3 19954 NULL
154713 +enable_so_snd_rawmidi_kernel_read_fndecl_19963 snd_rawmidi_kernel_read fndecl 3 19963 NULL
154714 +enable_so_ipoib_sendq_size_vardecl_19969 ipoib_sendq_size vardecl 0 19969 NULL
154715 +enable_so_src_len_ccp_passthru_engine_19970 src_len ccp_passthru_engine 0 19970 NULL
154716 +enable_so_vga_arb_read_fndecl_19973 vga_arb_read fndecl 3 19973 NULL
154717 +enable_so_le_max_key_size_read_fndecl_19975 le_max_key_size_read fndecl 3 19975 NULL
154718 +enable_so_size_packet_settings_19984 size packet_settings 0 19984 NULL
154719 +enable_so_palign_qib_devdata_19988 palign qib_devdata 0 19988 NULL
154720 +enable_so_f2fs_insert_range_fndecl_19990 f2fs_insert_range fndecl 2 19990 NULL
154721 +enable_so_hid_register_field_fndecl_19993 hid_register_field fndecl 3-2 19993 NULL
154722 +enable_so_ocfs2_defrag_extent_fndecl_19994 ocfs2_defrag_extent fndecl 3-2 19994 NULL
154723 +enable_so_of_get_nand_ecc_step_size_fndecl_20001 of_get_nand_ecc_step_size fndecl 0 20001 NULL
154724 +enable_so_move_extent_per_page_fndecl_20004 move_extent_per_page fndecl 6-5-4-3 20004 NULL
154725 +enable_so_copybreak_vardecl_sky2_c_20006 copybreak vardecl_sky2.c 0 20006 NULL
154726 +enable_so_def_bpp_sm501_platdata_fbsub_20007 def_bpp sm501_platdata_fbsub 0 20007 NULL
154727 +enable_so_i_inline_size_ext4_inode_info_20015 i_inline_size ext4_inode_info 0 20015 NULL
154728 +enable_so_y_drm_fb_helper_crtc_20016 y drm_fb_helper_crtc 0 20016 NULL nohasharray
154729 +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
154730 +enable_so_ctl_dma_cm109_dev_20023 ctl_dma cm109_dev 0 20023 NULL
154731 +enable_so_shadow_fetch_fndecl_20024 shadow_fetch fndecl 2 20024 NULL
154732 +enable_so_zone_absent_pages_in_node_fndecl_20027 zone_absent_pages_in_node fndecl 0 20027 NULL nohasharray
154733 +enable_so_build_skb_fndecl_20027 build_skb fndecl 2 20027 &enable_so_zone_absent_pages_in_node_fndecl_20027
154734 +enable_so_nr_max310x_devtype_20030 nr max310x_devtype 0 20030 NULL
154735 +enable_so_sample_rate_lola_20032 sample_rate lola 0 20032 NULL
154736 +enable_so_block_size_osst_tape_20034 block_size osst_tape 0 20034 NULL
154737 +enable_so_rcvhdrentsize_qib_devdata_20040 rcvhdrentsize qib_devdata 0 20040 NULL
154738 +enable_so_batadv_interface_change_mtu_fndecl_20043 batadv_interface_change_mtu fndecl 2 20043 NULL nohasharray
154739 +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
154740 +enable_so_ocrdma_alloc_lkey_fndecl_20045 ocrdma_alloc_lkey fndecl 5 20045 NULL
154741 +enable_so_sys_process_vm_writev_fndecl_20051 sys_process_vm_writev fndecl 3-5 20051 NULL
154742 +enable_so_prctl_set_auxv_fndecl_20068 prctl_set_auxv fndecl 3 20068 NULL
154743 +enable_so_max_rqst_sz_nfs4_channel_attrs_20083 max_rqst_sz nfs4_channel_attrs 0 20083 NULL nohasharray
154744 +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
154745 +enable_so_compat_rawv6_setsockopt_fndecl_20084 compat_rawv6_setsockopt fndecl 5 20084 NULL
154746 +enable_so_rxsize_grcan_device_config_20087 rxsize grcan_device_config 0 20087 NULL
154747 +enable_so_ath10k_read_chip_id_fndecl_20090 ath10k_read_chip_id fndecl 3 20090 NULL
154748 +enable_so_bnx2_set_rx_ring_size_fndecl_20092 bnx2_set_rx_ring_size fndecl 2 20092 NULL
154749 +enable_so_r8712_read32_fndecl_20095 r8712_read32 fndecl 0 20095 NULL
154750 +enable_so_reg_count_cs_extent_def_20096 reg_count cs_extent_def 0 20096 NULL
154751 +enable_so_dm_bufio_get_block_number_fndecl_20097 dm_bufio_get_block_number fndecl 0 20097 NULL nohasharray
154752 +enable_so_get_hwirq_msi_domain_ops_20097 get_hwirq msi_domain_ops 0 20097 &enable_so_dm_bufio_get_block_number_fndecl_20097
154753 +enable_so_qla82xx_pci_mem_write_direct_fndecl_20099 qla82xx_pci_mem_write_direct fndecl 2 20099 NULL
154754 +enable_so_minimum_v4l2_ctrl_20103 minimum v4l2_ctrl 0 20103 NULL
154755 +enable_so_do_mincore_fndecl_20105 do_mincore fndecl 0-2-1 20105 NULL
154756 +enable_so_max_acl_len_hci_rp_read_data_block_size_20119 max_acl_len hci_rp_read_data_block_size 0 20119 NULL
154757 +enable_so_ao_chans_pci224_board_20129 ao_chans pci224_board 0 20129 NULL
154758 +enable_so_btrfs_punch_hole_fndecl_20130 btrfs_punch_hole fndecl 3-2 20130 NULL
154759 +enable_so_in_ep_snd_usb_midi_endpoint_info_20132 in_ep snd_usb_midi_endpoint_info 0 20132 NULL
154760 +enable_so_data_sectors_per_block_partition_20138 data_sectors_per_block partition 0 20138 NULL
154761 +enable_so_pos_f_hidg_req_list_20147 pos f_hidg_req_list 0 20147 NULL
154762 +enable_so_ep_in_if_usb_card_20154 ep_in if_usb_card 0 20154 NULL
154763 +enable_so_tpci200_create_device_fndecl_20157 tpci200_create_device fndecl 2 20157 NULL
154764 +enable_so_trans_usbhs_pkt_20158 trans usbhs_pkt 0 20158 NULL
154765 +enable_so_snd_mixart_BA1_read_fndecl_20169 snd_mixart_BA1_read fndecl 5 20169 NULL
154766 +enable_so_nr_gpio_tle62x0_state_20178 nr_gpio tle62x0_state 0 20178 NULL
154767 +enable_so_usb_ftdi_elan_edset_single_fndecl_20181 usb_ftdi_elan_edset_single fndecl 0 20181 NULL nohasharray
154768 +enable_so_swapRB_sd_20181 swapRB sd 0 20181 &enable_so_usb_ftdi_elan_edset_single_fndecl_20181
154769 +enable_so___kmalloc_track_caller_fndecl_20188 __kmalloc_track_caller fndecl 1 20188 NULL
154770 +enable_so_num_counters_vardecl_oprofile_perf_c_20189 num_counters vardecl_oprofile_perf.c 0 20189 NULL
154771 +enable_so_lookup_memtype_fndecl_20192 lookup_memtype fndecl 1 20192 NULL
154772 +enable_so_agp_memory_reserved_vardecl_20196 agp_memory_reserved vardecl 0 20196 NULL nohasharray
154773 +enable_so_iram_base_intel_sst_drv_20196 iram_base intel_sst_drv 0 20196 &enable_so_agp_memory_reserved_vardecl_20196
154774 +enable_so_qxl_gem_object_create_with_handle_fndecl_20198 qxl_gem_object_create_with_handle fndecl 4 20198 NULL
154775 +enable_so_fpage_size_genwqe_sgl_20199 fpage_size genwqe_sgl 0 20199 NULL
154776 +enable_so_sectors_per_block_bits_dm_bufio_client_20202 sectors_per_block_bits dm_bufio_client 0 20202 NULL
154777 +enable_so_max_frame_size__mgslpc_info_20204 max_frame_size _mgslpc_info 0 20204 NULL
154778 +enable_so_sbq_len_rx_ring_20205 sbq_len rx_ring 0 20205 NULL
154779 +enable_so_i40e_dbg_netdev_ops_write_fndecl_20206 i40e_dbg_netdev_ops_write fndecl 3 20206 NULL
154780 +enable_so_kfifo_copy_from_user_fndecl_20208 kfifo_copy_from_user fndecl 3-4-0 20208 NULL
154781 +enable_so_dma_limit_tg3_20210 dma_limit tg3 0 20210 NULL
154782 +enable_so_objlayout_write_done_fndecl_20211 objlayout_write_done fndecl 2 20211 NULL nohasharray
154783 +enable_so_sglen_usbtest_param_20211 sglen usbtest_param 0 20211 &enable_so_objlayout_write_done_fndecl_20211
154784 +enable_so_compr_fill_fndecl_20214 compr_fill fndecl 2 20214 NULL
154785 +enable_so_rx_buffer_size_freelQ_20218 rx_buffer_size freelQ 0 20218 NULL
154786 +enable_so_dmah_acm_wb_20221 dmah acm_wb 0 20221 NULL nohasharray
154787 +enable_so_sound_write_fndecl_20221 sound_write fndecl 3 20221 &enable_so_dmah_acm_wb_20221
154788 +enable_so_produce_va_vmci_qp_page_file_info_20224 produce_va vmci_qp_page_file_info 0 20224 NULL
154789 +enable_so_use_sg_osst_buffer_20225 use_sg osst_buffer 0 20225 NULL
154790 +enable_so_iwl_dbgfs_tx_queue_read_fndecl_20232 iwl_dbgfs_tx_queue_read fndecl 3 20232 NULL
154791 +enable_so_ll_rw_extents_stats_seq_write_fndecl_20234 ll_rw_extents_stats_seq_write fndecl 3 20234 NULL
154792 +enable_so_setup_sgl_buf_fndecl_20237 setup_sgl_buf fndecl 4 20237 NULL
154793 +enable_so_msm_gem_import_fndecl_20238 msm_gem_import fndecl 2 20238 NULL
154794 +enable_so_phys_map_info_20239 phys map_info 0 20239 NULL
154795 +enable_so_mac_find_mode_fndecl_20243 mac_find_mode fndecl 4 20243 NULL
154796 +enable_so_vtotal_psb_pipe_20245 vtotal psb_pipe 0 20245 NULL
154797 +enable_so_nilfs_read_super_block_fndecl_20246 nilfs_read_super_block fndecl 3-2 20246 NULL
154798 +enable_so_i2c_writebytes_fndecl_20248 i2c_writebytes fndecl 3 20248 NULL
154799 +enable_so_max_size_inet_frag_queue_20249 max_size inet_frag_queue 0 20249 NULL
154800 +enable_so_ip_append_page_fndecl_20261 ip_append_page fndecl 5-4 20261 NULL
154801 +enable_so_value_len_ocfs2_security_xattr_info_20265 value_len ocfs2_security_xattr_info 0 20265 NULL
154802 +enable_so_arm_setup_iommu_dma_ops_fndecl_20272 arm_setup_iommu_dma_ops fndecl 3 20272 NULL
154803 +enable_so_y_skip_top_mt9t031_20278 y_skip_top mt9t031 0 20278 NULL
154804 +enable_so_fifo_size_eg20t_port_20279 fifo_size eg20t_port 0 20279 NULL
154805 +enable_so_f2fs_xattr_generic_set_fndecl_20280 f2fs_xattr_generic_set fndecl 4 20280 NULL
154806 +enable_so_size_vx_ibl_info_20282 size vx_ibl_info 0 20282 NULL
154807 +enable_so_soc_mbus_bytes_per_line_fndecl_20288 soc_mbus_bytes_per_line fndecl 0-1 20288 NULL
154808 +enable_so_kone_receive_fndecl_20289 kone_receive fndecl 4 20289 NULL
154809 +enable_so_blk_queue_io_min_fndecl_20293 blk_queue_io_min fndecl 2 20293 NULL
154810 +enable_so_rs_switch_to_mimo3_fndecl_20297 rs_switch_to_mimo3 fndecl 6 20297 NULL
154811 +enable_so_gen8_get_total_gtt_size_fndecl_20302 gen8_get_total_gtt_size fndecl 0-1 20302 NULL nohasharray
154812 +enable_so_total_blocks_partition_20302 total_blocks partition 0 20302 &enable_so_gen8_get_total_gtt_size_fndecl_20302 nohasharray
154813 +enable_so_round_pipe_size_fndecl_20302 round_pipe_size fndecl 0 20302 &enable_so_total_blocks_partition_20302
154814 +enable_so_mpegbufs_vardecl_cx231xx_417_c_20303 mpegbufs vardecl_cx231xx-417.c 0 20303 NULL
154815 +enable_so_fallback_aper_order_vardecl_20308 fallback_aper_order vardecl 0 20308 NULL
154816 +enable_so_xfs_dir2_leaf_trim_data_fndecl_20310 xfs_dir2_leaf_trim_data fndecl 3 20310 NULL nohasharray
154817 +enable_so_index_vardecl_nm256_c_20310 index vardecl_nm256.c 0 20310 &enable_so_xfs_dir2_leaf_trim_data_fndecl_20310
154818 +enable_so_cx18_read_pos_fndecl_20312 cx18_read_pos fndecl 3 20312 NULL
154819 +enable_so_short_retry_limit_read_fndecl_20316 short_retry_limit_read fndecl 3 20316 NULL
154820 +enable_so_cas_change_mtu_fndecl_20320 cas_change_mtu fndecl 2 20320 NULL
154821 +enable_so_ati_create_gatt_pages_fndecl_20321 ati_create_gatt_pages fndecl 1 20321 NULL
154822 +enable_so_max_rxsz_cxgbi_ddp_info_20322 max_rxsz cxgbi_ddp_info 0 20322 NULL nohasharray
154823 +enable_so_num_cvts_hdmi_spec_20322 num_cvts hdmi_spec 0 20322 &enable_so_max_rxsz_cxgbi_ddp_info_20322
154824 +enable_so_i_ecryptfs_parse_tag_70_packet_silly_stack_20325 i ecryptfs_parse_tag_70_packet_silly_stack 0 20325 NULL
154825 +enable_so_at24_eeprom_read_fndecl_20329 at24_eeprom_read fndecl 4-0 20329 NULL
154826 +enable_so_qlf_blkno_xfs_dq_logformat_20330 qlf_blkno xfs_dq_logformat 0 20330 NULL
154827 +enable_so_ext4_ext_put_gap_in_cache_fndecl_20333 ext4_ext_put_gap_in_cache fndecl 3 20333 NULL
154828 +enable_so_cxgbi_alloc_big_mem_fndecl_20336 cxgbi_alloc_big_mem fndecl 1 20336 NULL
154829 +enable_so_ss_out_channels_hdspm_20338 ss_out_channels hdspm 0 20338 NULL
154830 +enable_so_offset_videobuf_dmabuf_20339 offset videobuf_dmabuf 0 20339 NULL
154831 +enable_so_request_sz_MPT2SAS_ADAPTER_20341 request_sz MPT2SAS_ADAPTER 0 20341 NULL
154832 +enable_so_translate_gpa_kvm_mmu_20350 translate_gpa kvm_mmu 0 20350 NULL nohasharray
154833 +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
154834 +enable_so_sections_pe_hdr_20351 sections pe_hdr 0 20351 NULL
154835 +enable_so_memblock_find_in_range_fndecl_20356 memblock_find_in_range fndecl 4-3-1-0-2 20356 NULL
154836 +enable_so_chipshift_alauda_card_info_20364 chipshift alauda_card_info 0 20364 NULL
154837 +enable_so_type_usbdevfs_urb_20367 type usbdevfs_urb 0 20367 NULL
154838 +enable_so_scsi_debug_num_tgts_vardecl_scsi_debug_c_20370 scsi_debug_num_tgts vardecl_scsi_debug.c 0 20370 NULL
154839 +enable_so_ll_rw_offset_stats_seq_write_fndecl_20371 ll_rw_offset_stats_seq_write fndecl 3 20371 NULL
154840 +enable_so_hw_block_size_se_dev_attrib_20373 hw_block_size se_dev_attrib 0 20373 NULL nohasharray
154841 +enable_so_cfgctxts_qib_devdata_20373 cfgctxts qib_devdata 0 20373 &enable_so_hw_block_size_se_dev_attrib_20373
154842 +enable_so_nstamps_max_mask_recent_table_20374 nstamps_max_mask recent_table 0 20374 NULL
154843 +enable_so_xfs_qm_fill_state_fndecl_20384 xfs_qm_fill_state fndecl 4 20384 NULL
154844 +enable_so_opts1_rx_desc_20387 opts1 rx_desc 0 20387 NULL
154845 +enable_so_btrfs_del_items_fndecl_20388 btrfs_del_items fndecl 5 20388 NULL
154846 +enable_so_periodic_size_fotg210_hcd_20395 periodic_size fotg210_hcd 0 20395 NULL
154847 +enable_so_leb_size_ubi_device_20396 leb_size ubi_device 0 20396 NULL
154848 +enable_so_xfs_qm_dqusage_adjust_fndecl_20403 xfs_qm_dqusage_adjust fndecl 2 20403 NULL nohasharray
154849 +enable_so_regulator_register_always_on_fndecl_20403 regulator_register_always_on fndecl 1 20403 &enable_so_xfs_qm_dqusage_adjust_fndecl_20403
154850 +enable_so_pwr_rcvd_bcns_cnt_read_fndecl_20405 pwr_rcvd_bcns_cnt_read fndecl 3 20405 NULL
154851 +enable_so_mc_rreg_radeon_device_20418 mc_rreg radeon_device 0 20418 NULL
154852 +enable_so_sd_log_head_gfs2_sbd_20435 sd_log_head gfs2_sbd 0 20435 NULL
154853 +enable_so_blob_len_trusted_key_payload_20437 blob_len trusted_key_payload 0 20437 NULL nohasharray
154854 +enable_so_raw_skid_size_x509_certificate_20437 raw_skid_size x509_certificate 0 20437 &enable_so_blob_len_trusted_key_payload_20437
154855 +enable_so_ncp__vol2io_fndecl_20439 ncp__vol2io fndecl 5 20439 NULL
154856 +enable_so_gigaset_isoc_receive_fndecl_20447 gigaset_isoc_receive fndecl 2 20447 NULL
154857 +enable_so_ib_max_size_mvumi_hba_20452 ib_max_size mvumi_hba 0 20452 NULL
154858 +enable_so_stride_banshee_reg_20459 stride banshee_reg 0 20459 NULL
154859 +enable_so_key_tx_spec_read_fndecl_20461 key_tx_spec_read fndecl 3 20461 NULL
154860 +enable_so_gigaset_if_receive_fndecl_20462 gigaset_if_receive fndecl 3 20462 NULL
154861 +enable_so_xfs_setsize_buftarg_fndecl_20465 xfs_setsize_buftarg fndecl 2 20465 NULL
154862 +enable_so_scsi_end_request_fndecl_20468 scsi_end_request fndecl 3-4 20468 NULL
154863 +enable_so_tx_data_fndecl_20470 tx_data fndecl 4-3 20470 NULL
154864 +enable_so_wMaxCommand_usb_cdc_dmm_desc_20473 wMaxCommand usb_cdc_dmm_desc 0 20473 NULL
154865 +enable_so_iptunnel_pull_header_fndecl_20476 iptunnel_pull_header fndecl 2 20476 NULL nohasharray
154866 +enable_so_vlen_nfsd3_readargs_20476 vlen nfsd3_readargs 0 20476 &enable_so_iptunnel_pull_header_fndecl_20476
154867 +enable_so_gsm_control_rls_fndecl_20490 gsm_control_rls fndecl 3 20490 NULL
154868 +enable_so_rose_recvmsg_fndecl_20491 rose_recvmsg fndecl 3 20491 NULL
154869 +enable_so_ext4_ext_insert_index_fndecl_20492 ext4_ext_insert_index fndecl 4 20492 NULL
154870 +enable_so_pref_width_vmw_display_unit_20493 pref_width vmw_display_unit 0 20493 NULL
154871 +enable_so_pageshift_sddr09_card_info_20494 pageshift sddr09_card_info 0 20494 NULL
154872 +enable_so_nrbchan_mISDNdevice_20497 nrbchan mISDNdevice 0 20497 NULL
154873 +enable_so_ocfs2_extend_xattr_bucket_fndecl_20499 ocfs2_extend_xattr_bucket fndecl 4 20499 NULL
154874 +enable_so_aac_rkt_ioremap_fndecl_20502 aac_rkt_ioremap fndecl 2 20502 NULL nohasharray
154875 +enable_so___f2fs_add_link_fndecl_20502 __f2fs_add_link fndecl 4 20502 &enable_so_aac_rkt_ioremap_fndecl_20502
154876 +enable_so_max_pfn_mapped_vardecl_20503 max_pfn_mapped vardecl 0 20503 NULL nohasharray
154877 +enable_so_nzones_adfs_discrecord_20503 nzones adfs_discrecord 0 20503 &enable_so_max_pfn_mapped_vardecl_20503 nohasharray
154878 +enable_so_id_platform_device_20503 id platform_device 0 20503 &enable_so_nzones_adfs_discrecord_20503
154879 +enable_so_sysfs_create_group_fndecl_20504 sysfs_create_group fndecl 0 20504 NULL
154880 +enable_so_tty_port_register_device_attr_fndecl_20510 tty_port_register_device_attr fndecl 3 20510 NULL
154881 +enable_so_data_len_icmp_bxm_20511 data_len icmp_bxm 0 20511 NULL
154882 +enable_so_newImageSize_mpt_ioctl_replace_fw_20513 newImageSize mpt_ioctl_replace_fw 0 20513 NULL
154883 +enable_so_cifs_write_fndecl_20515 cifs_write fndecl 4 20515 NULL
154884 +enable_so_vdc_mem_base_vml_par_20521 vdc_mem_base vml_par 0 20521 NULL
154885 +enable_so_xtAppend_fndecl_20525 xtAppend fndecl 4 20525 NULL
154886 +enable_so_x86_emulate_instruction_fndecl_20526 x86_emulate_instruction fndecl 2 20526 NULL nohasharray
154887 +enable_so_src_val_x86_instruction_info_20526 src_val x86_instruction_info 0 20526 &enable_so_x86_emulate_instruction_fndecl_20526
154888 +enable_so_expand_downwards_fndecl_20533 expand_downwards fndecl 2 20533 NULL nohasharray
154889 +enable_so_sr_read_fndecl_20533 sr_read fndecl 3 20533 &enable_so_expand_downwards_fndecl_20533
154890 +enable_so_pnfs_generic_pg_init_write_fndecl_20539 pnfs_generic_pg_init_write fndecl 3 20539 NULL
154891 +enable_so_mlx5_core_req_pages_handler_fndecl_20540 mlx5_core_req_pages_handler fndecl 3 20540 NULL
154892 +enable_so_s_first_data_block_ext2_super_block_20541 s_first_data_block ext2_super_block 0 20541 NULL
154893 +enable_so_dti_buf_size_wahc_20547 dti_buf_size wahc 0 20547 NULL
154894 +enable_so_crtc_hdisplay_drm_display_mode_20548 crtc_hdisplay drm_display_mode 0 20548 NULL nohasharray
154895 +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
154896 +enable_so_dataflash_write_fndecl_20550 dataflash_write fndecl 2-3 20550 NULL
154897 +enable_so_dma_base_sst_pdata_20554 dma_base sst_pdata 0 20554 NULL
154898 +enable_so_wacom_calc_hid_res_fndecl_20558 wacom_calc_hid_res fndecl 1 20558 NULL
154899 +enable_so_mtdchar_writeoob_fndecl_20562 mtdchar_writeoob fndecl 3-4 20562 NULL
154900 +enable_so_sg_write_fndecl_20563 sg_write fndecl 3 20563 NULL
154901 +enable_so_isdn_readbchan_fndecl_20570 isdn_readbchan fndecl 5-0 20570 NULL
154902 +enable_so_nullb_indexes_vardecl_null_blk_c_20571 nullb_indexes vardecl_null_blk.c 0 20571 NULL
154903 +enable_so_check_defrag_in_cache_fndecl_20573 check_defrag_in_cache fndecl 3-2 20573 NULL
154904 +enable_so_hp_outs_auto_pin_cfg_20574 hp_outs auto_pin_cfg 0 20574 NULL
154905 +enable_so_fifo_size_pxa_ep_20587 fifo_size pxa_ep 0 20587 NULL
154906 +enable_so_nrof_flowrings_brcmf_pcie_shared_info_20590 nrof_flowrings brcmf_pcie_shared_info 0 20590 NULL
154907 +enable_so_pci_add_cap_save_buffer_fndecl_20593 pci_add_cap_save_buffer fndecl 3 20593 NULL
154908 +enable_so_target_complete_cmd_with_length_fndecl_20597 target_complete_cmd_with_length fndecl 3 20597 NULL
154909 +enable_so_max_deviceinfo_size_pnfs_layoutdriver_type_20599 max_deviceinfo_size pnfs_layoutdriver_type 0 20599 NULL
154910 +enable_so_bblog_shift_mdp_superblock_1_20604 bblog_shift mdp_superblock_1 0 20604 NULL
154911 +enable_so_get_alt_usb_function_20605 get_alt usb_function 0 20605 NULL nohasharray
154912 +enable_so_cdrom_read_block_fndecl_20605 cdrom_read_block fndecl 4-6 20605 &enable_so_get_alt_usb_function_20605
154913 +enable_so_ext4_inode_table_set_fndecl_20611 ext4_inode_table_set fndecl 3 20611 NULL
154914 +enable_so_nilfs_cpfile_set_snapshot_fndecl_20616 nilfs_cpfile_set_snapshot fndecl 2 20616 NULL
154915 +enable_so_ocfs2_allocate_refcount_tree_fndecl_20626 ocfs2_allocate_refcount_tree fndecl 2 20626 NULL
154916 +enable_so___nla_put_nohdr_fndecl_20631 __nla_put_nohdr fndecl 2 20631 NULL
154917 +enable_so_snd_pcm_lib_readv_transfer_fndecl_20635 snd_pcm_lib_readv_transfer fndecl 5 20635 NULL
154918 +enable_so_gx1_frame_buffer_size_fndecl_20638 gx1_frame_buffer_size fndecl 0 20638 NULL
154919 +enable_so_num_comp_vectors_ib_device_20639 num_comp_vectors ib_device 0 20639 NULL
154920 +enable_so_cursor_size_fbcon_ops_20640 cursor_size fbcon_ops 0 20640 NULL
154921 +enable_so_hpi_outstream_write_buf_fndecl_20645 hpi_outstream_write_buf fndecl 3 20645 NULL
154922 +enable_so_offset_iscsi_seq_20646 offset iscsi_seq 0 20646 NULL
154923 +enable_so_nr_pages_ore_io_state_20648 nr_pages ore_io_state 0 20648 NULL
154924 +enable_so_m_pblk_ext4_map_blocks_20649 m_pblk ext4_map_blocks 0 20649 NULL
154925 +enable_so_security_context_to_sid_default_fndecl_20663 security_context_to_sid_default fndecl 2 20663 NULL
154926 +enable_so_dlm_process_incoming_buffer_fndecl_20665 dlm_process_incoming_buffer fndecl 0 20665 NULL nohasharray
154927 +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
154928 +enable_so_kvm_handle_bad_page_fndecl_20668 kvm_handle_bad_page fndecl 2 20668 NULL
154929 +enable_so_shim_size_sst_res_info_20670 shim_size sst_res_info 0 20670 NULL
154930 +enable_so_nilfs_load_super_root_fndecl_20676 nilfs_load_super_root fndecl 3 20676 NULL
154931 +enable_so_max_qp_wr_ib_device_attr_20681 max_qp_wr ib_device_attr 0 20681 NULL
154932 +enable_so_btrfs_dir_name_len_fndecl_20686 btrfs_dir_name_len fndecl 0 20686 NULL
154933 +enable_so_write_to_8820_fndecl_20687 write_to_8820 fndecl 3 20687 NULL
154934 +enable_so_num_evt_qs_be_adapter_20688 num_evt_qs be_adapter 0 20688 NULL
154935 +enable_so_mem_tx_free_mem_blks_read_fndecl_20690 mem_tx_free_mem_blks_read fndecl 3 20690 NULL
154936 +enable_so_SyS_semtimedop_fndecl_20703 SyS_semtimedop fndecl 3 20703 NULL
154937 +enable_so_erase_size_vardecl_mtdram_c_20704 erase_size vardecl_mtdram.c 0 20704 NULL
154938 +enable_so_evtchn_read_fndecl_20706 evtchn_read fndecl 3 20706 NULL
154939 +enable_so_err_dev_e752x_dev_info_20708 err_dev e752x_dev_info 0 20708 NULL
154940 +enable_so_nilfs_sufile_do_free_fndecl_20709 nilfs_sufile_do_free fndecl 2 20709 NULL
154941 +enable_so_src_len_ccp_rsa_engine_20712 src_len ccp_rsa_engine 0 20712 NULL
154942 +enable_so_w_s5p_jpeg_q_data_20716 w s5p_jpeg_q_data 0 20716 NULL
154943 +enable_so_ip_blkno_ocfs2_inode_info_20717 ip_blkno ocfs2_inode_info 0 20717 NULL nohasharray
154944 +enable_so_len_asymmetric_key_id_20717 len asymmetric_key_id 0 20717 &enable_so_ip_blkno_ocfs2_inode_info_20717
154945 +enable_so_dlc_rx_msg_20720 dlc rx_msg 0 20720 NULL
154946 +enable_so_add_range_fndecl_20721 add_range fndecl 5-4 20721 NULL
154947 +enable_so_txq_data_size_ieee80211_hw_20725 txq_data_size ieee80211_hw 0 20725 NULL
154948 +enable_so_sv_nrthreads_svc_serv_20732 sv_nrthreads svc_serv 0 20732 NULL
154949 +enable_so_alloc_smp_resp_fndecl_20733 alloc_smp_resp fndecl 1 20733 NULL
154950 +enable_so_stv0680_set_video_mode_fndecl_20735 stv0680_set_video_mode fndecl 0 20735 NULL
154951 +enable_so_max_io_length_ore_layout_20738 max_io_length ore_layout 0 20738 NULL
154952 +enable_so_bio_integrity_intervals_fndecl_20741 bio_integrity_intervals fndecl 0-2 20741 NULL
154953 +enable_so_read_data_done_iscsi_cmd_20745 read_data_done iscsi_cmd 0 20745 NULL
154954 +enable_so_max_sge_qib_rq_20746 max_sge qib_rq 0 20746 NULL nohasharray
154955 +enable_so_msgbuflen_blogic_adapter_20746 msgbuflen blogic_adapter 0 20746 &enable_so_max_sge_qib_rq_20746
154956 +enable_so_rb_alloc_fndecl_20749 rb_alloc fndecl 1 20749 NULL
154957 +enable_so_sb_pseg_start_nilfs_segment_buffer_20750 sb_pseg_start nilfs_segment_buffer 0 20750 NULL
154958 +enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751 ath6kl_wmi_probedssid_cmd fndecl 2 20751 NULL nohasharray
154959 +enable_so_ttusb2_msg_fndecl_20751 ttusb2_msg fndecl 4 20751 &enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751
154960 +enable_so_vmw_setup_otable_base_fndecl_20754 vmw_setup_otable_base fndecl 3 20754 NULL
154961 +enable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 3 20758 NULL
154962 +enable_so_TransferCount__MPI2_SCSI_IO_REPLY_20759 TransferCount _MPI2_SCSI_IO_REPLY 0 20759 NULL
154963 +enable_so_do_numa_page_fndecl_20764 do_numa_page fndecl 3 20764 NULL nohasharray
154964 +enable_so_r_readdir_offset_ceph_mds_request_20764 r_readdir_offset ceph_mds_request 0 20764 &enable_so_do_numa_page_fndecl_20764
154965 +enable_so_read_in_block_fndecl_20766 read_in_block fndecl 3 20766 NULL
154966 +enable_so_simple_write_to_buffer_fndecl_20769 simple_write_to_buffer fndecl 2-5 20769 NULL
154967 +enable_so_channels_min_snd_soc_pcm_stream_20771 channels_min snd_soc_pcm_stream 0 20771 NULL nohasharray
154968 +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
154969 +enable_so_ltab_sz_ubifs_info_20776 ltab_sz ubifs_info 0 20776 NULL
154970 +enable_so_fat_fats_fat_bios_param_block_20785 fat_fats fat_bios_param_block 0 20785 NULL
154971 +enable_so_orig_x_screen_info_20787 orig_x screen_info 0 20787 NULL nohasharray
154972 +enable_so_ncp_search_for_fileset_fndecl_20787 ncp_search_for_fileset fndecl 6 20787 &enable_so_orig_x_screen_info_20787
154973 +enable_so_final_block_in_request_dio_submit_20788 final_block_in_request dio_submit 0 20788 NULL
154974 +enable_so_map_size_pcmcia_socket_20792 map_size pcmcia_socket 0 20792 NULL
154975 +enable_so_max_seg_size_mmc_host_20795 max_seg_size mmc_host 0 20795 NULL nohasharray
154976 +enable_so_pos_vb2_fileio_buf_20795 pos vb2_fileio_buf 0 20795 &enable_so_max_seg_size_mmc_host_20795
154977 +enable_so_rds_iw_ring_init_fndecl_20797 rds_iw_ring_init fndecl 2 20797 NULL
154978 +enable_so_namelen_xfs_da_args_20803 namelen xfs_da_args 0 20803 NULL nohasharray
154979 +enable_so_win_sz_wmi_addba_req_event_20803 win_sz wmi_addba_req_event 0 20803 &enable_so_namelen_xfs_da_args_20803
154980 +enable_so_compat_sys_migrate_pages_fndecl_20806 compat_sys_migrate_pages fndecl 2 20806 NULL
154981 +enable_so_g_mic_devno_vardecl_mic_main_c_20812 g_mic_devno vardecl_mic_main.c 0 20812 NULL
154982 +enable_so_mgmt_index_event_fndecl_20813 mgmt_index_event fndecl 4 20813 NULL
154983 +enable_so_rcvidx_isac_20815 rcvidx isac 0 20815 NULL
154984 +enable_so_filldir_fndecl_20820 filldir fndecl 3 20820 NULL
154985 +enable_so_fill_write_buffer_fndecl_20821 fill_write_buffer fndecl 3 20821 NULL
154986 +enable_so_irq_msi_desc_20822 irq msi_desc 0 20822 NULL
154987 +enable_so_via686a_device_add_fndecl_20823 via686a_device_add fndecl 1 20823 NULL
154988 +enable_so_aux_size_dm_bufio_client_20827 aux_size dm_bufio_client 0 20827 NULL
154989 +enable_so_drm_fb_helper_single_fb_probe_fndecl_20828 drm_fb_helper_single_fb_probe fndecl 2 20828 NULL
154990 +enable_so_currentXmitRate_StatusRid_20835 currentXmitRate StatusRid 0 20835 NULL nohasharray
154991 +enable_so_compat_do_ip6t_set_ctl_fndecl_20835 compat_do_ip6t_set_ctl fndecl 4 20835 &enable_so_currentXmitRate_StatusRid_20835
154992 +enable_so_mempool_create_node_fndecl_20836 mempool_create_node fndecl 1 20836 NULL
154993 +enable_so_num_crtc_radeon_device_20838 num_crtc radeon_device 0 20838 NULL
154994 +enable_so_alloc_context_fndecl_20841 alloc_context fndecl 1 20841 NULL
154995 +enable_so_pathlen_nfs3_symlinkargs_20843 pathlen nfs3_symlinkargs 0 20843 NULL
154996 +enable_so_udp_sendpage_fndecl_20845 udp_sendpage fndecl 4-3 20845 NULL nohasharray
154997 +enable_so_shmem_pread_slow_fndecl_20845 shmem_pread_slow fndecl 2-3 20845 &enable_so_udp_sendpage_fndecl_20845
154998 +enable_so_dma_init_coherent_memory_fndecl_20846 dma_init_coherent_memory fndecl 3 20846 NULL
154999 +enable_so_store_limit_l_fscache_object_20847 store_limit_l fscache_object 0 20847 NULL
155000 +enable_so_cur_page_block_dio_submit_20851 cur_page_block dio_submit 0 20851 NULL
155001 +enable_so_pkcs7_sig_note_signature_fndecl_20857 pkcs7_sig_note_signature fndecl 5 20857 NULL
155002 +enable_so_lpfc_bg_setup_bpl_fndecl_20862 lpfc_bg_setup_bpl fndecl 0 20862 NULL nohasharray
155003 +enable_so_uinput_ioctl_handler_fndecl_20862 uinput_ioctl_handler fndecl 2 20862 &enable_so_lpfc_bg_setup_bpl_fndecl_20862 nohasharray
155004 +enable_so_uvc_video_stats_dump_fndecl_20862 uvc_video_stats_dump fndecl 0 20862 &enable_so_uinput_ioctl_handler_fndecl_20862
155005 +enable_so_beb_rsvd_pebs_ubi_device_20863 beb_rsvd_pebs ubi_device 0 20863 NULL
155006 +enable_so_num_rx_descs_octeon_nic_if_config_20865 num_rx_descs octeon_nic_if_config 0 20865 NULL
155007 +enable_so_num_mlx4_resource_20869 num mlx4_resource 0 20869 NULL
155008 +enable_so_length_iwl_ucode_tlv_20871 length iwl_ucode_tlv 0 20871 NULL
155009 +enable_so_btrfs_prealloc_file_range_fndecl_20872 btrfs_prealloc_file_range fndecl 3 20872 NULL
155010 +enable_so_nr_hotspot_blocks_smq_policy_20876 nr_hotspot_blocks smq_policy 0 20876 NULL
155011 +enable_so_usb_stor_intr_transfer_fndecl_20883 usb_stor_intr_transfer fndecl 3 20883 NULL
155012 +enable_so_codec_reg_write_file_fndecl_20887 codec_reg_write_file fndecl 3 20887 NULL
155013 +enable_so_cl_local_node_o2nm_cluster_20896 cl_local_node o2nm_cluster 0 20896 NULL
155014 +enable_so_tx_power_ipw2100_priv_20898 tx_power ipw2100_priv 0 20898 NULL nohasharray
155015 +enable_so_idiag_info_size_inet_diag_handler_20898 idiag_info_size inet_diag_handler 0 20898 &enable_so_tx_power_ipw2100_priv_20898
155016 +enable_so_max_rate_idx_iwl_lq_sta_20899 max_rate_idx iwl_lq_sta 0 20899 NULL
155017 +enable_so_check_vendor_extension_fndecl_20901 check_vendor_extension fndecl 1 20901 NULL
155018 +enable_so_num_rows_vardecl_arcfb_c_20902 num_rows vardecl_arcfb.c 0 20902 NULL
155019 +enable_so_radeon_vm_directory_size_fndecl_20909 radeon_vm_directory_size fndecl 0 20909 NULL
155020 +enable_so_write_adapter_mem_fndecl_20913 write_adapter_mem fndecl 3 20913 NULL
155021 +enable_so_n_dir_band_hpfs_super_block_20914 n_dir_band hpfs_super_block 0 20914 NULL nohasharray
155022 +enable_so_dvb_ringbuffer_pkt_write_fndecl_20914 dvb_ringbuffer_pkt_write fndecl 3 20914 &enable_so_n_dir_band_hpfs_super_block_20914
155023 +enable_so_btrfs_next_leaf_fndecl_20915 btrfs_next_leaf fndecl 0 20915 NULL
155024 +enable_so_zisofs_uncompress_block_fndecl_20917 zisofs_uncompress_block fndecl 2-3-6-0-4 20917 NULL
155025 +enable_so_ext3_xattr_find_entry_fndecl_20918 ext3_xattr_find_entry fndecl 0 20918 NULL
155026 +enable_so_key_key_read_fndecl_20922 key_key_read fndecl 3 20922 NULL
155027 +enable_so_mmap_piobufs_fndecl_20927 mmap_piobufs fndecl 4 20927 NULL
155028 +enable_so_qbuf_scan_fndecl_20933 qbuf_scan fndecl 3 20933 NULL
155029 +enable_so_gk20a_instobj_ctor_iommu_fndecl_20953 gk20a_instobj_ctor_iommu fndecl 5-4 20953 NULL
155030 +enable_so_gid_table_len_mthca_limits_20957 gid_table_len mthca_limits 0 20957 NULL
155031 +enable_so_npages_mlx5_buf_20958 npages mlx5_buf 0 20958 NULL
155032 +enable_so__iwl_dbgfs_d3_sram_write_fndecl_20960 _iwl_dbgfs_d3_sram_write fndecl 3 20960 NULL
155033 +enable_so_calc_plane_fndecl_20962 calc_plane fndecl 0-2-1 20962 NULL
155034 +enable_so_range_start_writeback_control_20965 range_start writeback_control 0 20965 NULL
155035 +enable_so_dbDiscardAG_fndecl_20969 dbDiscardAG fndecl 0-3 20969 NULL
155036 +enable_so_count_cma_20973 count cma 0 20973 NULL nohasharray
155037 +enable_so_compat_sys_setsockopt_fndecl_20973 compat_sys_setsockopt fndecl 5 20973 &enable_so_count_cma_20973
155038 +enable_so_ieee80211_if_write_beacon_loss_fndecl_20979 ieee80211_if_write_beacon_loss fndecl 3 20979 NULL
155039 +enable_so_offset_fuse_notify_store_out_20985 offset fuse_notify_store_out 0 20985 NULL
155040 +enable_so___set_extent_bit_fndecl_20986 __set_extent_bit fndecl 3-2 20986 NULL nohasharray
155041 +enable_so_spidev_compat_ioc_message_fndecl_20986 spidev_compat_ioc_message fndecl 2 20986 &enable_so___set_extent_bit_fndecl_20986
155042 +enable_so_dy_fb_image_20988 dy fb_image 0 20988 NULL
155043 +enable_so_gfn_guest_walker32_20990 gfn guest_walker32 0 20990 NULL
155044 +enable_so_do_set_pte_fndecl_20994 do_set_pte fndecl 2 20994 NULL
155045 +enable_so_udf_direct_IO_fndecl_20999 udf_direct_IO fndecl 3 20999 NULL
155046 +enable_so_get_fd_set_fndecl_21001 get_fd_set fndecl 1 21001 NULL
155047 +enable_so_sst_hsw_module_set_param_fndecl_21007 sst_hsw_module_set_param fndecl 5 21007 NULL
155048 +enable_so_cxns_per_ctrl_hba_parameters_21008 cxns_per_ctrl hba_parameters 0 21008 NULL
155049 +enable_so_s_log_cluster_size_ext4_super_block_21014 s_log_cluster_size ext4_super_block 0 21014 NULL
155050 +enable_so_shrink_zone_span_fndecl_21018 shrink_zone_span fndecl 3-2 21018 NULL
155051 +enable_so_create_one_cdev_fndecl_21023 create_one_cdev fndecl 2 21023 NULL
155052 +enable_so___build_skb_fndecl_21024 __build_skb fndecl 2 21024 NULL
155053 +enable_so_minix_new_block_fndecl_21026 minix_new_block fndecl 0 21026 NULL
155054 +enable_so_count_debug_buffer_21028 count debug_buffer 0 21028 NULL
155055 +enable_so_info3_rx_ppdu_start_21029 info3 rx_ppdu_start 0 21029 NULL nohasharray
155056 +enable_so_nvram_write_fndecl_21029 nvram_write fndecl 3 21029 &enable_so_info3_rx_ppdu_start_21029
155057 +enable_so_efivarfs_file_read_fndecl_21030 efivarfs_file_read fndecl 3 21030 NULL
155058 +enable_so_comedi_buf_read_n_available_fndecl_21032 comedi_buf_read_n_available fndecl 0 21032 NULL
155059 +enable_so_fw_resource_count_efi_system_resource_table_21033 fw_resource_count efi_system_resource_table 0 21033 NULL nohasharray
155060 +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
155061 +enable_so_start_range_21034 start range 0 21034 NULL
155062 +enable_so_crtc_vdisplay_drm_display_mode_21037 crtc_vdisplay drm_display_mode 0 21037 NULL
155063 +enable_so_garp_attr_create_fndecl_21048 garp_attr_create fndecl 3 21048 NULL
155064 +enable_so_prep_umr_reg_wqe_fndecl_21050 prep_umr_reg_wqe fndecl 5 21050 NULL
155065 +enable_so_erase_shift_onenand_chip_21052 erase_shift onenand_chip 0 21052 NULL nohasharray
155066 +enable_so_tx_queues_rt2x00_ops_21052 tx_queues rt2x00_ops 0 21052 &enable_so_erase_shift_onenand_chip_21052
155067 +enable_so_xfs_alloc_min_freelist_fndecl_21056 xfs_alloc_min_freelist fndecl 0 21056 NULL
155068 +enable_so_SyS_move_pages_fndecl_21059 SyS_move_pages fndecl 2 21059 NULL
155069 +enable_so_chaoskey_rng_read_fndecl_21064 chaoskey_rng_read fndecl 3 21064 NULL
155070 +enable_so___send_prepared_auth_request_fndecl_21067 __send_prepared_auth_request fndecl 2 21067 NULL
155071 +enable_so_ts_packet_count_cx231xx_tsport_21071 ts_packet_count cx231xx_tsport 0 21071 NULL
155072 +enable_so_usbip_recv_fndecl_21076 usbip_recv fndecl 3 21076 NULL
155073 +enable_so_vcs_write_fndecl_21077 vcs_write fndecl 3 21077 NULL
155074 +enable_so_thread_self_inum_vardecl_thread_self_c_21079 thread_self_inum vardecl_thread_self.c 0 21079 NULL
155075 +enable_so_consume_size_qp_entry_21087 consume_size qp_entry 0 21087 NULL
155076 +enable_so_queue_pages_test_walk_fndecl_21089 queue_pages_test_walk fndecl 2-1 21089 NULL
155077 +enable_so_max_counters_mlx4_caps_21095 max_counters mlx4_caps 0 21095 NULL
155078 +enable_so_ext4_block_truncate_page_fndecl_21098 ext4_block_truncate_page fndecl 3 21098 NULL
155079 +enable_so_ext4_bg_has_super_fndecl_21104 ext4_bg_has_super fndecl 0 21104 NULL
155080 +enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108 sge_size_ieee MPT3SAS_ADAPTER 0 21108 NULL nohasharray
155081 +enable_so_rb_alloc_aux_fndecl_21108 rb_alloc_aux fndecl 4 21108 &enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108
155082 +enable_so___vfs_read_fndecl_21109 __vfs_read fndecl 0-3 21109 NULL nohasharray
155083 +enable_so_port_number_board_info_21109 port_number board_info 0 21109 &enable_so___vfs_read_fndecl_21109
155084 +enable_so_dm_rh_get_region_size_fndecl_21112 dm_rh_get_region_size fndecl 0 21112 NULL
155085 +enable_so_memblock_mark_hotplug_fndecl_21114 memblock_mark_hotplug fndecl 2-1 21114 NULL
155086 +enable_so_hdlc_irq_one_fndecl_21115 hdlc_irq_one fndecl 2 21115 NULL nohasharray
155087 +enable_so_max_slots_ocfs2_super_21115 max_slots ocfs2_super 0 21115 &enable_so_hdlc_irq_one_fndecl_21115
155088 +enable_so_header_length_scsi_mode_data_21117 header_length scsi_mode_data 0 21117 NULL
155089 +enable_so_hdrlen_ipv6_opt_hdr_21121 hdrlen ipv6_opt_hdr 0 21121 NULL nohasharray
155090 +enable_so_chunk_mask_dm_exception_store_21121 chunk_mask dm_exception_store 0 21121 &enable_so_hdrlen_ipv6_opt_hdr_21121
155091 +enable_so_produce_size_vmci_transport_21124 produce_size vmci_transport 0 21124 NULL nohasharray
155092 +enable_so_size_ndis_80211_key_21124 size ndis_80211_key 0 21124 &enable_so_produce_size_vmci_transport_21124
155093 +enable_so_virtfn_add_fndecl_21127 virtfn_add fndecl 2 21127 NULL
155094 +enable_so_s_desc_per_block_bits_ext4_sb_info_21130 s_desc_per_block_bits ext4_sb_info 0 21130 NULL
155095 +enable_so_do_add_counters_fndecl_21131 do_add_counters fndecl 3-0 21131 NULL
155096 +enable_so_xfs_bmbt_lookup_eq_fndecl_21134 xfs_bmbt_lookup_eq fndecl 3-4-2 21134 NULL
155097 +enable_so_clk_get_rate_fndecl_21147 clk_get_rate fndecl 0 21147 NULL nohasharray
155098 +enable_so_copied_iscsi_segment_21147 copied iscsi_segment 0 21147 &enable_so_clk_get_rate_fndecl_21147
155099 +enable_so_req_queue_pairs_i40e_vsi_21151 req_queue_pairs i40e_vsi 0 21151 NULL
155100 +enable_so_hsu_dma_prep_slave_sg_fndecl_21155 hsu_dma_prep_slave_sg fndecl 3 21155 NULL
155101 +enable_so_ext4_xattr_find_entry_fndecl_21162 ext4_xattr_find_entry fndecl 0 21162 NULL
155102 +enable_so_blk_end_request_fndecl_21163 blk_end_request fndecl 3 21163 NULL
155103 +enable_so_gfs2_dir_get_existing_buffer_fndecl_21172 gfs2_dir_get_existing_buffer fndecl 2 21172 NULL
155104 +enable_so_mei_write_fndecl_21174 mei_write fndecl 3 21174 NULL nohasharray
155105 +enable_so_xfs_check_block_fndecl_21174 xfs_check_block fndecl 4 21174 &enable_so_mei_write_fndecl_21174
155106 +enable_so_snd_hdsp_capture_copy_fndecl_21176 snd_hdsp_capture_copy fndecl 5 21176 NULL
155107 +enable_so_udf_try_read_meta_fndecl_21178 udf_try_read_meta fndecl 4 21178 NULL
155108 +enable_so_transport_lba_21_fndecl_21182 transport_lba_21 fndecl 0 21182 NULL
155109 +enable_so_usage_index_hid_local_21183 usage_index hid_local 0 21183 NULL
155110 +enable_so_init_ppi_data_fndecl_21184 init_ppi_data fndecl 2 21184 NULL
155111 +enable_so_major_vardecl_dm_c_21185 major vardecl_dm.c 0 21185 NULL
155112 +enable_so_crtc_hsync_end_drm_display_mode_21187 crtc_hsync_end drm_display_mode 0 21187 NULL
155113 +enable_so_ucNumEntries__ATOM_PPLIB_Clock_Voltage_Dependency_Table_21191 ucNumEntries _ATOM_PPLIB_Clock_Voltage_Dependency_Table 0 21191 NULL
155114 +enable_so_sb_inodesize_xfs_sb_21192 sb_inodesize xfs_sb 0 21192 NULL
155115 +enable_so_usbnet_write_cmd_async_fndecl_21200 usbnet_write_cmd_async fndecl 7 21200 NULL
155116 +enable_so_n_ir_fw_ohci_21205 n_ir fw_ohci 0 21205 NULL
155117 +enable_so_mtip_hw_read_registers_fndecl_21206 mtip_hw_read_registers fndecl 3 21206 NULL
155118 +enable_so_drm_plane_helper_update_fndecl_21218 drm_plane_helper_update fndecl 6-7 21218 NULL
155119 +enable_so_length_nand_oobfree_21222 length nand_oobfree 0 21222 NULL
155120 +enable_so_hpfs_get_4sectors_fndecl_21224 hpfs_get_4sectors fndecl 2 21224 NULL
155121 +enable_so_tx_ptr_catc_21231 tx_ptr catc 0 21231 NULL nohasharray
155122 +enable_so_ext4_blks_to_allocate_fndecl_21231 ext4_blks_to_allocate fndecl 0-4-3 21231 &enable_so_tx_ptr_catc_21231
155123 +enable_so_ptr_mask_radeon_ring_21233 ptr_mask radeon_ring 0 21233 NULL
155124 +enable_so_bytes_xfered_mmc_data_21235 bytes_xfered mmc_data 0 21235 NULL
155125 +enable_so_RamAmountKBytes_nvidia_par_21238 RamAmountKBytes nvidia_par 0 21238 NULL nohasharray
155126 +enable_so_num_msix_qlcnic_hardware_context_21238 num_msix qlcnic_hardware_context 0 21238 &enable_so_RamAmountKBytes_nvidia_par_21238
155127 +enable_so_rp_buflen_nfs4_replay_21241 rp_buflen nfs4_replay 0 21241 NULL
155128 +enable_so_ring_size_amdgpu_ih_ring_21243 ring_size amdgpu_ih_ring 0 21243 NULL
155129 +enable_so_fbcon_do_set_font_fndecl_21244 fbcon_do_set_font fndecl 3-2 21244 NULL
155130 +enable_so_nilfs_cpfile_change_cpmode_fndecl_21246 nilfs_cpfile_change_cpmode fndecl 2 21246 NULL
155131 +enable_so_size_seq_buf_21247 size seq_buf 0 21247 NULL nohasharray
155132 +enable_so_rxq_depth_bnad_21247 rxq_depth bnad 0 21247 &enable_so_size_seq_buf_21247
155133 +enable_so_sctp_getsockopt_events_fndecl_21252 sctp_getsockopt_events fndecl 2 21252 NULL
155134 +enable_so_edac_mc_alloc_fndecl_21256 edac_mc_alloc fndecl 4 21256 NULL
155135 +enable_so_ufs_clear_frags_fndecl_21263 ufs_clear_frags fndecl 2 21263 NULL
155136 +enable_so_vc_resize_fndecl_21266 vc_resize fndecl 2-3 21266 NULL nohasharray
155137 +enable_so_num_fh_nfs4_filelayout_segment_21266 num_fh nfs4_filelayout_segment 0 21266 &enable_so_vc_resize_fndecl_21266
155138 +enable_so_elfcorebuf_sz_vardecl_vmcore_c_21270 elfcorebuf_sz vardecl_vmcore.c 0 21270 NULL
155139 +enable_so_object_name_len_compat_ncp_objectname_ioctl_21274 object_name_len compat_ncp_objectname_ioctl 0 21274 NULL
155140 +enable_so_gsi_top_vardecl_21275 gsi_top vardecl 0 21275 NULL
155141 +enable_so_nfs23_validate_mount_data_fndecl_21276 nfs23_validate_mount_data fndecl 0 21276 NULL
155142 +enable_so_hsync_len_fb_var_screeninfo_21279 hsync_len fb_var_screeninfo 0 21279 NULL
155143 +enable_so_height_simplefb_params_21280 height simplefb_params 0 21280 NULL
155144 +enable_so_fm10k_alloc_q_vector_fndecl_21285 fm10k_alloc_q_vector fndecl 6-4 21285 NULL
155145 +enable_so_max_channels_atiixp_21295 max_channels atiixp 0 21295 NULL
155146 +enable_so_cmds_max_iscsi_session_21296 cmds_max iscsi_session 0 21296 NULL
155147 +enable_so_tx_tx_starts_read_fndecl_21298 tx_tx_starts_read fndecl 3 21298 NULL
155148 +enable_so_osd_yres_vardecl_ivtvfb_c_21299 osd_yres vardecl_ivtvfb.c 0 21299 NULL nohasharray
155149 +enable_so_count_nfsd3_readdirres_21299 count nfsd3_readdirres 0 21299 &enable_so_osd_yres_vardecl_ivtvfb_c_21299 nohasharray
155150 +enable_so_efx_rx_deliver_fndecl_21299 efx_rx_deliver fndecl 4 21299 &enable_so_count_nfsd3_readdirres_21299
155151 +enable_so_wSamplesPerFrame_uac_format_type_ii_discrete_descriptor_21300 wSamplesPerFrame uac_format_type_ii_discrete_descriptor 0 21300 NULL
155152 +enable_so_nvdimm_major_vardecl_21302 nvdimm_major vardecl 0 21302 NULL
155153 +enable_so_xblk_next_xblk_qnx4_xblk_21303 xblk_next_xblk qnx4_xblk 0 21303 NULL
155154 +enable_so_tx_num_pg_ch_pm_21307 tx_num_pg ch_pm 0 21307 NULL
155155 +enable_so_aligned_kmalloc_fndecl_21311 aligned_kmalloc fndecl 1 21311 NULL
155156 +enable_so_num_paths_bna_rx_config_21315 num_paths bna_rx_config 0 21315 NULL
155157 +enable_so_fuse_copy_page_fndecl_21316 fuse_copy_page fndecl 4-3 21316 NULL
155158 +enable_so_tcp_fragment_fndecl_21318 tcp_fragment fndecl 3 21318 NULL
155159 +enable_so__iwl_dbgfs_tx_flush_write_fndecl_21320 _iwl_dbgfs_tx_flush_write fndecl 3 21320 NULL
155160 +enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321 packet_present_len cfg80211_wowlan_wakeup 0 21321 NULL nohasharray
155161 +enable_so_sq_len_queue_set_21321 sq_len queue_set 0 21321 &enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321
155162 +enable_so_mincore_unmapped_range_fndecl_21322 mincore_unmapped_range fndecl 1 21322 NULL
155163 +enable_so_UniformBlockSizeShift_qinfo_chip_21323 UniformBlockSizeShift qinfo_chip 0 21323 NULL
155164 +enable_so_word14_lpfc_mbx_read_config_21331 word14 lpfc_mbx_read_config 0 21331 NULL
155165 +enable_so_tx_ucast_rate_target_stats_21336 tx_ucast_rate target_stats 0 21336 NULL
155166 +enable_so_i915_compat_ioctl_fndecl_21339 i915_compat_ioctl fndecl 2 21339 NULL
155167 +enable_so_fl_dump_key_val_fndecl_21344 fl_dump_key_val fndecl 6 21344 NULL
155168 +enable_so_snd_util_mem_alloc_fndecl_21347 snd_util_mem_alloc fndecl 2 21347 NULL
155169 +enable_so_h_blkno_ocfs2_extent_block_21357 h_blkno ocfs2_extent_block 0 21357 NULL nohasharray
155170 +enable_so_nfs_direct_wait_fndecl_21357 nfs_direct_wait fndecl 0 21357 &enable_so_h_blkno_ocfs2_extent_block_21357
155171 +enable_so_videobuf_pages_to_sg_fndecl_21359 videobuf_pages_to_sg fndecl 3-4-2 21359 NULL
155172 +enable_so_igbvf_change_mtu_fndecl_21361 igbvf_change_mtu fndecl 2 21361 NULL
155173 +enable_so_ro_map_rpcrdma_memreg_ops_21369 ro_map rpcrdma_memreg_ops 0 21369 NULL
155174 +enable_so_pad_ieee80211_vendor_radiotap_21376 pad ieee80211_vendor_radiotap 0 21376 NULL
155175 +enable_so_chunk_size_dm_exception_store_21381 chunk_size dm_exception_store 0 21381 NULL
155176 +enable_so_inppos_net_local_21383 inppos net_local 0 21383 NULL
155177 +enable_so_num_vfs_enic_21386 num_vfs enic 0 21386 NULL
155178 +enable_so_temp_count_applesmc_registers_21387 temp_count applesmc_registers 0 21387 NULL
155179 +enable_so_ci_ll_write_fndecl_21391 ci_ll_write fndecl 4 21391 NULL
155180 +enable_so_vc_scan_lines_vc_data_21393 vc_scan_lines vc_data 0 21393 NULL
155181 +enable_so_digest_size_dm_verity_21399 digest_size dm_verity 0 21399 NULL
155182 +enable_so_pg_count_agp_allocate32_21404 pg_count agp_allocate32 0 21404 NULL
155183 +enable_so_v4l2_fh_open_fndecl_21406 v4l2_fh_open fndecl 0 21406 NULL
155184 +enable_so_ext4_inode_blocks_set_fndecl_21407 ext4_inode_blocks_set fndecl 0 21407 NULL nohasharray
155185 +enable_so_length_r3964_block_header_21407 length r3964_block_header 0 21407 &enable_so_ext4_inode_blocks_set_fndecl_21407
155186 +enable_so_mesh_id_len_ieee80211_if_mesh_21412 mesh_id_len ieee80211_if_mesh 0 21412 NULL
155187 +enable_so_ex_length_extent_s_21417 ex_length extent_s 0 21417 NULL
155188 +enable_so_ping_recvmsg_fndecl_21422 ping_recvmsg fndecl 3 21422 NULL
155189 +enable_so_managed_pages_zone_21425 managed_pages zone 0 21425 NULL
155190 +enable_so_max_ipath_lkey_table_21431 max ipath_lkey_table 0 21431 NULL
155191 +enable_so_intbufferhandle_kaweth_device_21438 intbufferhandle kaweth_device 0 21438 NULL nohasharray
155192 +enable_so_tool_spad_write_fndecl_21438 tool_spad_write fndecl 3 21438 &enable_so_intbufferhandle_kaweth_device_21438
155193 +enable_so_sctp_setsockopt_auth_key_fndecl_21442 sctp_setsockopt_auth_key fndecl 3 21442 NULL
155194 +enable_so_major_vardecl_pg_c_21451 major vardecl_pg.c 0 21451 NULL
155195 +enable_so_buffer_size_vardecl_event_buffer_c_21452 buffer_size vardecl_event_buffer.c 0 21452 NULL
155196 +enable_so_video_width_sis_video_info_21454 video_width sis_video_info 0 21454 NULL
155197 +enable_so_stripes_stripe_c_21457 stripes stripe_c 0 21457 NULL
155198 +enable_so_indirect2direct_fndecl_21459 indirect2direct fndecl 6 21459 NULL
155199 +enable_so_wp_pfn_shared_fndecl_21469 wp_pfn_shared fndecl 3 21469 NULL nohasharray
155200 +enable_so_acpi_current_gpe_count_vardecl_21469 acpi_current_gpe_count vardecl 0 21469 &enable_so_wp_pfn_shared_fndecl_21469
155201 +enable_so_msm_otg_mode_write_fndecl_21471 msm_otg_mode_write fndecl 3 21471 NULL
155202 +enable_so_ufs_inode_by_name_fndecl_21473 ufs_inode_by_name fndecl 0 21473 NULL
155203 +enable_so_ezusb_access_ltv_fndecl_21485 ezusb_access_ltv fndecl 3 21485 NULL
155204 +enable_so_mmio_start_fb_fix_screeninfo_21486 mmio_start fb_fix_screeninfo 0 21486 NULL
155205 +enable_so_fuse_do_ioctl_fndecl_21491 fuse_do_ioctl fndecl 2 21491 NULL
155206 +enable_so_hpfs_ea_ext_remove_fndecl_21492 hpfs_ea_ext_remove fndecl 4-2 21492 NULL
155207 +enable_so_memsize_vgastate_21493 memsize vgastate 0 21493 NULL nohasharray
155208 +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
155209 +enable_so_video_pbase_vivid_dev_21503 video_pbase vivid_dev 0 21503 NULL
155210 +enable_so_module_load_offset_vardecl_module_c_21518 module_load_offset vardecl_module.c 0 21518 NULL
155211 +enable_so_max_io_support_mvumi_hs_page1_21519 max_io_support mvumi_hs_page1 0 21519 NULL
155212 +enable_so_fifo_size_hscx_hw_21522 fifo_size hscx_hw 0 21522 NULL nohasharray
155213 +enable_so_c67x00_urb_dequeue_fndecl_21522 c67x00_urb_dequeue fndecl 3 21522 &enable_so_fifo_size_hscx_hw_21522
155214 +enable_so_data_offset_mdp_superblock_1_21524 data_offset mdp_superblock_1 0 21524 NULL nohasharray
155215 +enable_so_intel_sdvo_set_value_fndecl_21524 intel_sdvo_set_value fndecl 4 21524 &enable_so_data_offset_mdp_superblock_1_21524
155216 +enable_so_kvm_clear_guest_page_fndecl_21527 kvm_clear_guest_page fndecl 2-4 21527 NULL
155217 +enable_so_xennet_max_queues_vardecl_xen_netfront_c_21530 xennet_max_queues vardecl_xen-netfront.c 0 21530 NULL nohasharray
155218 +enable_so_rd_write_fndecl_21530 rd_write fndecl 3 21530 &enable_so_xennet_max_queues_vardecl_xen_netfront_c_21530
155219 +enable_so_ooblen_mtd_oob_ops_21531 ooblen mtd_oob_ops 0 21531 NULL
155220 +enable_so_hfsplus_find_init_fndecl_21533 hfsplus_find_init fndecl 0 21533 NULL nohasharray
155221 +enable_so_alloc_btrfs_bio_fndecl_21533 alloc_btrfs_bio fndecl 2-1 21533 &enable_so_hfsplus_find_init_fndecl_21533 nohasharray
155222 +enable_so_picolcd_fb_write_fndecl_21533 picolcd_fb_write fndecl 3 21533 &enable_so_alloc_btrfs_bio_fndecl_21533 nohasharray
155223 +enable_so_nr_bos_drm_msm_gem_submit_21533 nr_bos drm_msm_gem_submit 0 21533 &enable_so_picolcd_fb_write_fndecl_21533
155224 +enable_so_zr364xx_read_fndecl_21537 zr364xx_read fndecl 3 21537 NULL
155225 +enable_so_viafb_iga2_odev_proc_write_fndecl_21544 viafb_iga2_odev_proc_write fndecl 3 21544 NULL
155226 +enable_so_ql_get_full_dup_fndecl_21549 ql_get_full_dup fndecl 0 21549 NULL
155227 +enable_so_nSkipped_vardecl_gl860_c_21557 nSkipped vardecl_gl860.c 0 21557 NULL
155228 +enable_so___erst_read_to_erange_fndecl_21558 __erst_read_to_erange fndecl 0-1 21558 NULL
155229 +enable_so_sl_max_ip6_sf_socklist_21563 sl_max ip6_sf_socklist 0 21563 NULL
155230 +enable_so_log_sq_stride_mlx4_ib_create_qp_21564 log_sq_stride mlx4_ib_create_qp 0 21564 NULL
155231 +enable_so_total_len_ieee802_11_elems_21565 total_len ieee802_11_elems 0 21565 NULL
155232 +enable_so_rtl_port_map_fndecl_21570 rtl_port_map fndecl 2-1 21570 NULL
155233 +enable_so_start_resource_21572 start resource 0 21572 NULL nohasharray
155234 +enable_so_cont_extent_rock_state_21572 cont_extent rock_state 0 21572 &enable_so_start_resource_21572
155235 +enable_so_le_min_key_size_write_fndecl_21573 le_min_key_size_write fndecl 3 21573 NULL
155236 +enable_so_uv_possible_blades_vardecl_21579 uv_possible_blades vardecl 0 21579 NULL
155237 +enable_so_il_dbgfs_sensitivity_read_fndecl_21585 il_dbgfs_sensitivity_read fndecl 3 21585 NULL
155238 +enable_so_xfs_buf_map_from_irec_fndecl_21587 xfs_buf_map_from_irec fndecl 5 21587 NULL
155239 +enable_so_buf_len_wmi_mgmt_rx_hdr_v1_21592 buf_len wmi_mgmt_rx_hdr_v1 0 21592 NULL
155240 +enable_so_device_count_vardecl_portman2x4_c_21593 device_count vardecl_portman2x4.c 0 21593 NULL
155241 +enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595 myri10ge_initial_mtu vardecl_myri10ge.c 0 21595 NULL nohasharray
155242 +enable_so_virtnet_set_queues_fndecl_21595 virtnet_set_queues fndecl 2 21595 &enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595
155243 +enable_so_xcl_max_payload_svc_xprt_class_21596 xcl_max_payload svc_xprt_class 0 21596 NULL
155244 +enable_so_st_kim_recv_fndecl_21600 st_kim_recv fndecl 3 21600 NULL
155245 +enable_so_isdn_v110_open_fndecl_21601 isdn_v110_open fndecl 3 21601 NULL
155246 +enable_so_irq_dma_cm109_dev_21602 irq_dma cm109_dev 0 21602 NULL nohasharray
155247 +enable_so_do_otp_write_fndecl_21602 do_otp_write fndecl 2 21602 &enable_so_irq_dma_cm109_dev_21602
155248 +enable_so_p54spi_spi_write_dma_fndecl_21608 p54spi_spi_write_dma fndecl 4 21608 NULL nohasharray
155249 +enable_so_hfcpci_empty_fifo_fndecl_21608 hfcpci_empty_fifo fndecl 4 21608 &enable_so_p54spi_spi_write_dma_fndecl_21608 nohasharray
155250 +enable_so_snd_seq_pool_new_fndecl_21608 snd_seq_pool_new fndecl 1 21608 &enable_so_hfcpci_empty_fifo_fndecl_21608
155251 +enable_so_cw1200_spi_memcpy_toio_fndecl_21615 cw1200_spi_memcpy_toio fndecl 4 21615 NULL nohasharray
155252 +enable_so_alloc_irq_from_domain_fndecl_21615 alloc_irq_from_domain fndecl 3 21615 &enable_so_cw1200_spi_memcpy_toio_fndecl_21615
155253 +enable_so_rxpipe_rx_prep_beacon_drop_read_fndecl_21616 rxpipe_rx_prep_beacon_drop_read fndecl 3 21616 NULL
155254 +enable_so_size_meye_grab_buffer_21622 size meye_grab_buffer 0 21622 NULL
155255 +enable_so_num_snaps_ceph_snap_realm_21623 num_snaps ceph_snap_realm 0 21623 NULL
155256 +enable_so_sector_r1bio_21627 sector r1bio 0 21627 NULL
155257 +enable_so___lbtf_cmd_fndecl_21631 __lbtf_cmd fndecl 4 21631 NULL
155258 +enable_so_hlength_iscsi_hdr_21640 hlength iscsi_hdr 0 21640 NULL
155259 +enable_so_ioremap_nocache_fndecl_21652 ioremap_nocache fndecl 2-1 21652 NULL nohasharray
155260 +enable_so_nvram_npiv_size_qla_hw_data_21652 nvram_npiv_size qla_hw_data 0 21652 &enable_so_ioremap_nocache_fndecl_21652
155261 +enable_so_tps6507x_i2c_read_device_fndecl_21660 tps6507x_i2c_read_device fndecl 3 21660 NULL
155262 +enable_so_overlay_cap_left_vivid_dev_21663 overlay_cap_left vivid_dev 0 21663 NULL nohasharray
155263 +enable_so_ath6kl_wmi_get_rate_fndecl_21663 ath6kl_wmi_get_rate fndecl 0 21663 &enable_so_overlay_cap_left_vivid_dev_21663
155264 +enable_so_update_pmkid_fndecl_21666 update_pmkid fndecl 4 21666 NULL
155265 +enable_so_affs_file_fsync_fndecl_21669 affs_file_fsync fndecl 2-3 21669 NULL
155266 +enable_so_length_ccp_dma_info_21671 length ccp_dma_info 0 21671 NULL nohasharray
155267 +enable_so_bio_alloc_bioset_fndecl_21671 bio_alloc_bioset fndecl 2 21671 &enable_so_length_ccp_dma_info_21671
155268 +enable_so_start_data_prctl_mm_map_21673 start_data prctl_mm_map 0 21673 NULL
155269 +enable_so_in_min_chans_snd_card_asihpi_21686 in_min_chans snd_card_asihpi 0 21686 NULL
155270 +enable_so_b43legacy_debugfs_read_fndecl_21690 b43legacy_debugfs_read fndecl 3 21690 NULL
155271 +enable_so_fc_fcp_send_data_fndecl_21692 fc_fcp_send_data fndecl 4-3 21692 NULL
155272 +enable_so_resync_max_sectors_mddev_21693 resync_max_sectors mddev 0 21693 NULL
155273 +enable_so_max_pkt_size_pktgen_dev_21696 max_pkt_size pktgen_dev 0 21696 NULL nohasharray
155274 +enable_so_bsg_job_size_request_queue_21696 bsg_job_size request_queue 0 21696 &enable_so_max_pkt_size_pktgen_dev_21696
155275 +enable_so_ext4_get_inode_loc_fndecl_21703 ext4_get_inode_loc fndecl 0 21703 NULL
155276 +enable_so_nfsacl_encode_fndecl_21708 nfsacl_encode fndecl 2-0 21708 NULL nohasharray
155277 +enable_so_pread_dvb_ringbuffer_21708 pread dvb_ringbuffer 0 21708 &enable_so_nfsacl_encode_fndecl_21708
155278 +enable_so_get_rndis_request_fndecl_21709 get_rndis_request fndecl 3 21709 NULL
155279 +enable_so_batadv_tvlv_container_list_size_fndecl_21711 batadv_tvlv_container_list_size fndecl 0 21711 NULL
155280 +enable_so_residual_fcpio_icmnd_cmpl_21718 residual fcpio_icmnd_cmpl 0 21718 NULL
155281 +enable_so_set_blocksize_fndecl_21720 set_blocksize fndecl 2 21720 NULL
155282 +enable_so_squashfs_read_fragment_index_table_fndecl_21721 squashfs_read_fragment_index_table fndecl 4 21721 NULL
155283 +enable_so_len_nfs4_label_21722 len nfs4_label 0 21722 NULL
155284 +enable_so_buff_size_host_cmd_ds_txbuf_cfg_21725 buff_size host_cmd_ds_txbuf_cfg 0 21725 NULL
155285 +enable_so_hpfs_set_ea_fndecl_21731 hpfs_set_ea fndecl 5 21731 NULL
155286 +enable_so_groups_netlink_kernel_cfg_21741 groups netlink_kernel_cfg 0 21741 NULL
155287 +enable_so_blk_rq_map_integrity_sg_fndecl_21744 blk_rq_map_integrity_sg fndecl 0 21744 NULL
155288 +enable_so_smk_write_syslog_fndecl_21746 smk_write_syslog fndecl 3 21746 NULL
155289 +enable_so_skb_ts_get_next_block_fndecl_21748 skb_ts_get_next_block fndecl 1 21748 NULL
155290 +enable_so___ceph_setxattr_fndecl_21751 __ceph_setxattr fndecl 4 21751 NULL
155291 +enable_so_bufsiz_mousedev_client_21759 bufsiz mousedev_client 0 21759 NULL
155292 +enable_so_width_tm6000_fh_21761 width tm6000_fh 0 21761 NULL nohasharray
155293 +enable_so_max_nr_vardecl_exynos_combiner_c_21761 max_nr vardecl_exynos-combiner.c 0 21761 &enable_so_width_tm6000_fh_21761
155294 +enable_so_req_lim_delta_srp_login_rsp_21762 req_lim_delta srp_login_rsp 0 21762 NULL
155295 +enable_so_br_startblock_xfs_bmbt_irec_21769 br_startblock xfs_bmbt_irec 0 21769 NULL
155296 +enable_so_regmap_get_val_bytes_fndecl_21774 regmap_get_val_bytes fndecl 0 21774 NULL
155297 +enable_so_wlcore_rate_to_idx_fndecl_21777 wlcore_rate_to_idx fndecl 0 21777 NULL nohasharray
155298 +enable_so_ath6kl_fwlog_mask_read_fndecl_21777 ath6kl_fwlog_mask_read fndecl 3 21777 &enable_so_wlcore_rate_to_idx_fndecl_21777
155299 +enable_so_byte_len_spi_eeprom_21786 byte_len spi_eeprom 0 21786 NULL
155300 +enable_so_tpg_alloc_fndecl_21789 tpg_alloc fndecl 2 21789 NULL
155301 +enable_so_find_group_dir_fndecl_21790 find_group_dir fndecl 0 21790 NULL
155302 +enable_so_idetape_chrdev_read_fndecl_21794 idetape_chrdev_read fndecl 3 21794 NULL
155303 +enable_so_iwl_dbgfs_log_event_read_fndecl_21800 iwl_dbgfs_log_event_read fndecl 3 21800 NULL
155304 +enable_so_reg_stride_regmap_21801 reg_stride regmap 0 21801 NULL nohasharray
155305 +enable_so___set_print_fmt_fndecl_21801 __set_print_fmt fndecl 0 21801 &enable_so_reg_stride_regmap_21801
155306 +enable_so_num_vss_hpf_cfgs_wm8994_pdata_21802 num_vss_hpf_cfgs wm8994_pdata 0 21802 NULL
155307 +enable_so_ecryptfs_encrypt_and_encode_filename_fndecl_21806 ecryptfs_encrypt_and_encode_filename fndecl 6 21806 NULL
155308 +enable_so_hwi_ws_sz_hba_parameters_21815 hwi_ws_sz hba_parameters 0 21815 NULL
155309 +enable_so_numacb_vardecl_21828 numacb vardecl 0 21828 NULL
155310 +enable_so_snd_pcm_plug_slave_format_fndecl_21831 snd_pcm_plug_slave_format fndecl 0-1 21831 NULL
155311 +enable_so_check_load_and_stores_fndecl_21836 check_load_and_stores fndecl 2 21836 NULL nohasharray
155312 +enable_so_firm_cfg_version_AdapterControlBlock_21836 firm_cfg_version AdapterControlBlock 0 21836 &enable_so_check_load_and_stores_fndecl_21836
155313 +enable_so_nss_rate_info_21838 nss rate_info 0 21838 NULL nohasharray
155314 +enable_so_device_create_vargs_fndecl_21838 device_create_vargs fndecl 3 21838 &enable_so_nss_rate_info_21838 nohasharray
155315 +enable_so_n_descsz_elf32_note_21838 n_descsz elf32_note 0 21838 &enable_so_device_create_vargs_fndecl_21838
155316 +enable_so_enable_read_fndecl_21846 enable_read fndecl 3 21846 NULL
155317 +enable_so_length_acpi_table_desc_21847 length acpi_table_desc 0 21847 NULL nohasharray
155318 +enable_so_btrfs_file_extent_inline_len_fndecl_21847 btrfs_file_extent_inline_len fndecl 0 21847 &enable_so_length_acpi_table_desc_21847
155319 +enable_so__ore_get_io_state_fndecl_21861 _ore_get_io_state fndecl 5-4-3 21861 NULL nohasharray
155320 +enable_so_data_read_hwrng_21861 data_read hwrng 0 21861 &enable_so__ore_get_io_state_fndecl_21861
155321 +enable_so_update_hidden_ssid_fndecl_21871 update_hidden_ssid fndecl 0 21871 NULL
155322 +enable_so_sizeimage_vim2m_q_data_21875 sizeimage vim2m_q_data 0 21875 NULL nohasharray
155323 +enable_so_ext4_zero_partial_blocks_fndecl_21875 ext4_zero_partial_blocks fndecl 3-4 21875 &enable_so_sizeimage_vim2m_q_data_21875
155324 +enable_so_ad_sd_read_reg_fndecl_21876 ad_sd_read_reg fndecl 3 21876 NULL nohasharray
155325 +enable_so_mlx4_init_icm_table_fndecl_21876 mlx4_init_icm_table fndecl 4-5 21876 &enable_so_ad_sd_read_reg_fndecl_21876
155326 +enable_so__drbd_send_page_fndecl_21886 _drbd_send_page fndecl 4 21886 NULL nohasharray
155327 +enable_so___copy_to_user_ll_fndecl_21886 __copy_to_user_ll fndecl 0 21886 &enable_so__drbd_send_page_fndecl_21886
155328 +enable_so_picolcd_debug_reset_write_fndecl_21888 picolcd_debug_reset_write fndecl 3 21888 NULL
155329 +enable_so_bio_integrity_alloc_fndecl_21889 bio_integrity_alloc fndecl 3 21889 NULL
155330 +enable_so_npwm_pwm_chip_21895 npwm pwm_chip 0 21895 NULL
155331 +enable_so_fat_get_block_fndecl_21902 fat_get_block fndecl 2 21902 NULL
155332 +enable_so_nodesize_btrfs_super_block_21912 nodesize btrfs_super_block 0 21912 NULL
155333 +enable_so_ieee80211_build_preq_ies_fndecl_21915 ieee80211_build_preq_ies fndecl 0-6 21915 NULL
155334 +enable_so_sym_compute_residual_fndecl_21916 sym_compute_residual fndecl 0 21916 NULL
155335 +enable_so_addr_width_snd_dmaengine_dai_dma_data_21920 addr_width snd_dmaengine_dai_dma_data 0 21920 NULL
155336 +enable_so_ceph_osdc_new_request_fndecl_21921 ceph_osdc_new_request fndecl 7 21921 NULL
155337 +enable_so_membase_pm8001_hba_memspace_21924 membase pm8001_hba_memspace 0 21924 NULL nohasharray
155338 +enable_so_max_q_depth_req_que_21924 max_q_depth req_que 0 21924 &enable_so_membase_pm8001_hba_memspace_21924
155339 +enable_so_ath6kl_sdio_bmi_read_fndecl_21930 ath6kl_sdio_bmi_read fndecl 3 21930 NULL
155340 +enable_so_rx_eth_fndecl_21931 rx_eth fndecl 4 21931 NULL
155341 +enable_so_page_cache_async_readahead_fndecl_21944 page_cache_async_readahead fndecl 5 21944 NULL nohasharray
155342 +enable_so_u32_array_read_fndecl_21944 u32_array_read fndecl 3 21944 &enable_so_page_cache_async_readahead_fndecl_21944 nohasharray
155343 +enable_so_mei_dbgfs_read_meclients_fndecl_21944 mei_dbgfs_read_meclients fndecl 3 21944 &enable_so_u32_array_read_fndecl_21944
155344 +enable_so_ssb_bus_ssbbus_register_fndecl_21946 ssb_bus_ssbbus_register fndecl 2 21946 NULL
155345 +enable_so_in_pipe_ttusb_dec_21947 in_pipe ttusb_dec 0 21947 NULL
155346 +enable_so_xprt_max_tcp_slot_table_entries_vardecl_xprtsock_c_21949 xprt_max_tcp_slot_table_entries vardecl_xprtsock.c 0 21949 NULL
155347 +enable_so_do_update_counters_fndecl_21952 do_update_counters fndecl 4 21952 NULL
155348 +enable_so_nrprocs_rpc_version_21954 nrprocs rpc_version 0 21954 NULL
155349 +enable_so_sel_write_avc_cache_threshold_fndecl_21955 sel_write_avc_cache_threshold fndecl 3 21955 NULL
155350 +enable_so_length_iscsi_datain_21959 length iscsi_datain 0 21959 NULL
155351 +enable_so_ocfs2_find_refcount_rec_in_rl_fndecl_21962 ocfs2_find_refcount_rec_in_rl fndecl 3-4 21962 NULL
155352 +enable_so_num_desc_qlcnic_host_rds_ring_21963 num_desc qlcnic_host_rds_ring 0 21963 NULL
155353 +enable_so_dblock_gfs2_journal_extent_21971 dblock gfs2_journal_extent 0 21971 NULL nohasharray
155354 +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
155355 +enable_so_bulk_out_size_usb_cardstate_21974 bulk_out_size usb_cardstate 0 21974 NULL
155356 +enable_so_fat_start_msdos_sb_info_21975 fat_start msdos_sb_info 0 21975 NULL nohasharray
155357 +enable_so_mlx4_buddy_init_fndecl_21975 mlx4_buddy_init fndecl 2 21975 &enable_so_fat_start_msdos_sb_info_21975
155358 +enable_so_nxt200x_writebytes_fndecl_21977 nxt200x_writebytes fndecl 4 21977 NULL nohasharray
155359 +enable_so_donor_start_move_extent_21977 donor_start move_extent 0 21977 &enable_so_nxt200x_writebytes_fndecl_21977
155360 +enable_so_ieee80211_if_read_dot11MeshHWMPRannInterval_fndecl_21978 ieee80211_if_read_dot11MeshHWMPRannInterval fndecl 3 21978 NULL
155361 +enable_so_calc_fat_clusters_fndecl_21982 calc_fat_clusters fndecl 0 21982 NULL
155362 +enable_so_num_tc_mlx5e_priv_21983 num_tc mlx5e_priv 0 21983 NULL
155363 +enable_so_debug_debug5_read_fndecl_21984 debug_debug5_read fndecl 3 21984 NULL
155364 +enable_so__scif_send_fndecl_21987 _scif_send fndecl 3-0 21987 NULL
155365 +enable_so_split_nodes_interleave_fndecl_21988 split_nodes_interleave fndecl 3-5-4 21988 NULL
155366 +enable_so_skb_rx_extra_cxgbi_device_21990 skb_rx_extra cxgbi_device 0 21990 NULL
155367 +enable_so_sr_read_cmd_fndecl_21992 sr_read_cmd fndecl 5 21992 NULL
155368 +enable_so_sec_per_clus_msdos_sb_info_21995 sec_per_clus msdos_sb_info 0 21995 NULL
155369 +enable_so_ath6kl_wmi_bssinfo_event_rx_fndecl_22000 ath6kl_wmi_bssinfo_event_rx fndecl 3 22000 NULL
155370 +enable_so_ath6kl_wmi_set_tx_pwr_cmd_fndecl_22001 ath6kl_wmi_set_tx_pwr_cmd fndecl 2 22001 NULL
155371 +enable_so_length_ib_sge_22002 length ib_sge 0 22002 NULL
155372 +enable_so_video_v_stop_saa7134_tvnorm_22005 video_v_stop saa7134_tvnorm 0 22005 NULL nohasharray
155373 +enable_so_vpdma_alloc_desc_buf_fndecl_22005 vpdma_alloc_desc_buf fndecl 2 22005 &enable_so_video_v_stop_saa7134_tvnorm_22005
155374 +enable_so_num_pointers_user_acl_role_db_22011 num_pointers user_acl_role_db 0 22011 NULL
155375 +enable_so_itd1000_write_regs_fndecl_22013 itd1000_write_regs fndecl 4 22013 NULL
155376 +enable_so_atio_q_length_qlt_hw_data_22018 atio_q_length qlt_hw_data 0 22018 NULL
155377 +enable_so_buffer_size_nm256_22021 buffer_size nm256 0 22021 NULL
155378 +enable_so_GlobalCredits__MSG_IOC_FACTS_REPLY_22031 GlobalCredits _MSG_IOC_FACTS_REPLY 0 22031 NULL
155379 +enable_so_next_rs_tgg_il3945_rate_info_22036 next_rs_tgg il3945_rate_info 0 22036 NULL
155380 +enable_so_dm_exception_store_set_chunk_size_fndecl_22042 dm_exception_store_set_chunk_size fndecl 2 22042 NULL
155381 +enable_so_roccat_connect_fndecl_22044 roccat_connect fndecl 3 22044 NULL
155382 +enable_so_sel_read_enforce_fndecl_22047 sel_read_enforce fndecl 3 22047 NULL
155383 +enable_so_mmc_queue_map_sg_fndecl_22053 mmc_queue_map_sg fndecl 0 22053 NULL
155384 +enable_so_held_root_thin_disk_superblock_22055 held_root thin_disk_superblock 0 22055 NULL
155385 +enable_so_zl10039_read_fndecl_22056 zl10039_read fndecl 4 22056 NULL
155386 +enable_so_w_input_res_22061 w input_res 0 22061 NULL
155387 +enable_so_param_sata_completion_resp_22065 param sata_completion_resp 0 22065 NULL
155388 +enable_so_i2c_wr_max_tda18218_config_22066 i2c_wr_max tda18218_config 0 22066 NULL
155389 +enable_so_rom_base_qxl_device_22067 rom_base qxl_device 0 22067 NULL
155390 +enable_so_ufs_free_fragments_fndecl_22074 ufs_free_fragments fndecl 2 22074 NULL
155391 +enable_so_irnet_ctrl_read_fndecl_22076 irnet_ctrl_read fndecl 4 22076 NULL
155392 +enable_so_sfq_alloc_fndecl_22078 sfq_alloc fndecl 1 22078 NULL
155393 +enable_so_iuu_uart_write_fndecl_22079 iuu_uart_write fndecl 4 22079 NULL
155394 +enable_so_xfs_bmse_shift_one_fndecl_22080 xfs_bmse_shift_one fndecl 3 22080 NULL
155395 +enable_so_absent_pages_in_range_fndecl_22083 absent_pages_in_range fndecl 0-1-2 22083 NULL nohasharray
155396 +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
155397 +enable_so_cmm_write_fndecl_22083 cmm_write fndecl 3 22083 &enable_so_rx_ring_size_mlx4_en_port_profile_22083
155398 +enable_so_mgt_response_to_str_fndecl_22094 mgt_response_to_str fndecl 0 22094 NULL
155399 +enable_so_size_drm_i915_gem_pread_22096 size drm_i915_gem_pread 0 22096 NULL nohasharray
155400 +enable_so_len_setup_data_node_22096 len setup_data_node 0 22096 &enable_so_size_drm_i915_gem_pread_22096 nohasharray
155401 +enable_so_frame_seq_number_osst_tape_22096 frame_seq_number osst_tape 0 22096 &enable_so_len_setup_data_node_22096
155402 +enable_so_allocsz_cfv_info_22104 allocsz cfv_info 0 22104 NULL
155403 +enable_so_size_perf_output_handle_22117 size perf_output_handle 0 22117 NULL
155404 +enable_so_xfs_da_get_buf_fndecl_22120 xfs_da_get_buf fndecl 3 22120 NULL
155405 +enable_so_ore_check_io_fndecl_22131 ore_check_io fndecl 0 22131 NULL nohasharray
155406 +enable_so_small_ttm_pool_opts_22131 small ttm_pool_opts 0 22131 &enable_so_ore_check_io_fndecl_22131 nohasharray
155407 +enable_so_xferlen_uioc_22131 xferlen uioc 0 22131 &enable_so_small_ttm_pool_opts_22131
155408 +enable_so_numa_add_memblk_fndecl_22136 numa_add_memblk fndecl 2-3 22136 NULL
155409 +enable_so_dm_tm_shadow_block_fndecl_22139 dm_tm_shadow_block fndecl 2 22139 NULL
155410 +enable_so_xfs_trans_get_buf_map_fndecl_22140 xfs_trans_get_buf_map fndecl 4 22140 NULL
155411 +enable_so_num_phys_eqs_mlx4_phys_caps_22142 num_phys_eqs mlx4_phys_caps 0 22142 NULL
155412 +enable_so_jffs2_scan_make_ino_cache_fndecl_22144 jffs2_scan_make_ino_cache fndecl 2 22144 NULL nohasharray
155413 +enable_so_radeon_benchmark_move_fndecl_22144 radeon_benchmark_move fndecl 2 22144 &enable_so_jffs2_scan_make_ino_cache_fndecl_22144
155414 +enable_so_moving_threshold_mms114_platform_data_22146 moving_threshold mms114_platform_data 0 22146 NULL nohasharray
155415 +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
155416 +enable_so_max_cos_bnx2x_22147 max_cos bnx2x 0 22147 NULL
155417 +enable_so_cmd_pipe_uas_dev_info_22148 cmd_pipe uas_dev_info 0 22148 NULL
155418 +enable_so_seg_size_ib_mad_send_buf_22149 seg_size ib_mad_send_buf 0 22149 NULL
155419 +enable_so_ppp_cp_event_fndecl_22150 ppp_cp_event fndecl 6 22150 NULL
155420 +enable_so_rxq_entries_efx_nic_22154 rxq_entries efx_nic 0 22154 NULL
155421 +enable_so_collect_rx_frame_fndecl_22155 collect_rx_frame fndecl 3 22155 NULL
155422 +enable_so_nes_read_indexed_fndecl_22161 nes_read_indexed fndecl 0 22161 NULL
155423 +enable_so_rs_datalen_ath5k_rx_status_22164 rs_datalen ath5k_rx_status 0 22164 NULL nohasharray
155424 +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
155425 +enable_so_tm6000_i2c_recv_regs16_fndecl_22166 tm6000_i2c_recv_regs16 fndecl 5 22166 NULL
155426 +enable_so_set_fast_connectable_fndecl_22171 set_fast_connectable fndecl 4 22171 NULL
155427 +enable_so_tegra_spi_start_cpu_based_transfer_fndecl_22176 tegra_spi_start_cpu_based_transfer fndecl 0 22176 NULL
155428 +enable_so_name_len_ceph_inode_xattr_22177 name_len ceph_inode_xattr 0 22177 NULL
155429 +enable_so_rts51x_bulk_transport_special_fndecl_22181 rts51x_bulk_transport_special fndecl 6 22181 NULL
155430 +enable_so_buf_len_bu_info_22182 buf_len bu_info 0 22182 NULL nohasharray
155431 +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
155432 +enable_so_ieee80211_parse_bitrates_fndecl_22187 ieee80211_parse_bitrates fndecl 0 22187 NULL
155433 +enable_so_ch_count_vardecl_ib_srp_c_22190 ch_count vardecl_ib_srp.c 0 22190 NULL
155434 +enable_so_affs_alloc_block_fndecl_22192 affs_alloc_block fndecl 0-2 22192 NULL
155435 +enable_so_sector_packet_data_22197 sector packet_data 0 22197 NULL
155436 +enable_so_length_ntlmssp2_name_22211 length ntlmssp2_name 0 22211 NULL
155437 +enable_so_req_len_brcmf_cfg80211_assoc_ielen_le_22213 req_len brcmf_cfg80211_assoc_ielen_le 0 22213 NULL
155438 +enable_so_nreaders_stress_vardecl_locktorture_c_22217 nreaders_stress vardecl_locktorture.c 0 22217 NULL nohasharray
155439 +enable_so_xfrm_dst_alloc_copy_fndecl_22217 xfrm_dst_alloc_copy fndecl 3 22217 &enable_so_nreaders_stress_vardecl_locktorture_c_22217
155440 +enable_so_ram_size_async_extent_22219 ram_size async_extent 0 22219 NULL
155441 +enable_so_get_max_acpi_id_fndecl_22220 get_max_acpi_id fndecl 0 22220 NULL
155442 +enable_so_lpfc_idiag_mbxacc_write_fndecl_22221 lpfc_idiag_mbxacc_write fndecl 3 22221 NULL
155443 +enable_so_s_dirsize_minix_sb_info_22225 s_dirsize minix_sb_info 0 22225 NULL
155444 +enable_so_num_areas_prism2_download_param_22233 num_areas prism2_download_param 0 22233 NULL
155445 +enable_so_do_dmabuf_dirty_sou_fndecl_22234 do_dmabuf_dirty_sou fndecl 7 22234 NULL nohasharray
155446 +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
155447 +enable_so_max_fingers_pixcir_i2c_ts_data_22237 max_fingers pixcir_i2c_ts_data 0 22237 NULL
155448 +enable_so_depth_write_fndecl_22238 depth_write fndecl 3 22238 NULL
155449 +enable_so_num_udav_mthca_profile_22243 num_udav mthca_profile 0 22243 NULL
155450 +enable_so_ieee80211_check_pending_bar_fndecl_22244 ieee80211_check_pending_bar fndecl 3 22244 NULL
155451 +enable_so_rf_suballoc_loc_ocfs2_refcount_block_22248 rf_suballoc_loc ocfs2_refcount_block 0 22248 NULL
155452 +enable_so_hfsplus_asc2uni_fndecl_22252 hfsplus_asc2uni fndecl 0 22252 NULL nohasharray
155453 +enable_so_dac960_user_command_proc_write_fndecl_22252 dac960_user_command_proc_write fndecl 3 22252 &enable_so_hfsplus_asc2uni_fndecl_22252
155454 +enable_so___blk_end_bidi_request_fndecl_22253 __blk_end_bidi_request fndecl 3-4 22253 NULL
155455 +enable_so_qp_alloc_ppn_set_fndecl_22255 qp_alloc_ppn_set fndecl 2-4 22255 NULL
155456 +enable_so_nr_free_buffer_pages_fndecl_22263 nr_free_buffer_pages fndecl 0 22263 NULL
155457 +enable_so_bbio_error_fndecl_22264 bbio_error fndecl 3 22264 NULL
155458 +enable_so_usCRTC_V_Total__ATOM_MODE_TIMING_22265 usCRTC_V_Total _ATOM_MODE_TIMING 0 22265 NULL
155459 +enable_so_il3945_ucode_rx_stats_read_fndecl_22267 il3945_ucode_rx_stats_read fndecl 3 22267 NULL
155460 +enable_so_mangle_contents_fndecl_22272 mangle_contents fndecl 4-6 22272 NULL
155461 +enable_so_gtt_total_entries__intel_private_22281 gtt_total_entries _intel_private 0 22281 NULL nohasharray
155462 +enable_so_reord_tcp_sacktag_state_22281 reord tcp_sacktag_state 0 22281 &enable_so_gtt_total_entries__intel_private_22281
155463 +enable_so_mgsl_write_fndecl_22284 mgsl_write fndecl 3 22284 NULL
155464 +enable_so_sn9c2028_read4_fndecl_22290 sn9c2028_read4 fndecl 0 22290 NULL
155465 +enable_so_gspca_dev_probe_fndecl_22297 gspca_dev_probe fndecl 4 22297 NULL
155466 +enable_so_gfs2_listxattr_fndecl_22298 gfs2_listxattr fndecl 3 22298 NULL
155467 +enable_so_slot_bytes_fndecl_22306 slot_bytes fndecl 0 22306 NULL
155468 +enable_so_smk_write_logging_fndecl_22313 smk_write_logging fndecl 3 22313 NULL
155469 +enable_so_index_start_nozomi_22317 index_start nozomi 0 22317 NULL
155470 +enable_so_swiotlb_late_init_with_default_size_fndecl_22319 swiotlb_late_init_with_default_size fndecl 1 22319 NULL
155471 +enable_so_sb_rbmino_xfs_sb_22320 sb_rbmino xfs_sb 0 22320 NULL nohasharray
155472 +enable_so_be_fill_queue_fndecl_22320 be_fill_queue fndecl 2 22320 &enable_so_sb_rbmino_xfs_sb_22320
155473 +enable_so_vc_size_row_vc_data_22325 vc_size_row vc_data 0 22325 NULL
155474 +enable_so_user_data_len_uioc_22327 user_data_len uioc 0 22327 NULL
155475 +enable_so_atmel_change_mtu_fndecl_22328 atmel_change_mtu fndecl 2 22328 NULL
155476 +enable_so_limit_sfq_sched_data_22334 limit sfq_sched_data 0 22334 NULL
155477 +enable_so_f2fs_getxattr_fndecl_22337 f2fs_getxattr fndecl 0 22337 NULL
155478 +enable_so_mtu_tipc_link_22341 mtu tipc_link 0 22341 NULL
155479 +enable_so_svc_recvfrom_fndecl_22345 svc_recvfrom fndecl 0-4-3 22345 NULL
155480 +enable_so_length_nvkm_mm_node_22349 length nvkm_mm_node 0 22349 NULL
155481 +enable_so_drv_info_size_mwifiex_adapter_22352 drv_info_size mwifiex_adapter 0 22352 NULL
155482 +enable_so_tlv_put_string_fndecl_22356 tlv_put_string fndecl 4-0 22356 NULL
155483 +enable_so_genwqe_alloc_sync_sgl_fndecl_22358 genwqe_alloc_sync_sgl fndecl 4 22358 NULL
155484 +enable_so__proc_do_string_fndecl_22363 _proc_do_string fndecl 2 22363 NULL
155485 +enable_so____pskb_trim_fndecl_22365 ___pskb_trim fndecl 2 22365 NULL
155486 +enable_so_kvm_gfn_to_hva_cache_init_fndecl_22367 kvm_gfn_to_hva_cache_init fndecl 3 22367 NULL
155487 +enable_so_ffs_ep0_read_fndecl_22371 ffs_ep0_read fndecl 3 22371 NULL
155488 +enable_so_digi_write_fndecl_22372 digi_write fndecl 4 22372 NULL
155489 +enable_so_nfs4_xattr_set_nfs4_acl_fndecl_22385 nfs4_xattr_set_nfs4_acl fndecl 4 22385 NULL
155490 +enable_so_exposure_step_sd_22386 exposure_step sd 0 22386 NULL
155491 +enable_so_ecc_size_persistent_ram_ecc_info_22390 ecc_size persistent_ram_ecc_info 0 22390 NULL
155492 +enable_so_phys_lcr_base_mgsl_struct_22391 phys_lcr_base mgsl_struct 0 22391 NULL
155493 +enable_so_clipt_end_adapter_22397 clipt_end adapter 0 22397 NULL
155494 +enable_so_nr_blocks_jffs2_sb_info_22399 nr_blocks jffs2_sb_info 0 22399 NULL
155495 +enable_so_size_dsp_segment_desc_22400 size dsp_segment_desc 0 22400 NULL
155496 +enable_so_rawsock_sendmsg_fndecl_22401 rawsock_sendmsg fndecl 3 22401 NULL
155497 +enable_so_udf_setsize_fndecl_22402 udf_setsize fndecl 2 22402 NULL
155498 +enable_so_lprocfs_stats_counter_size_fndecl_22407 lprocfs_stats_counter_size fndecl 0 22407 NULL
155499 +enable_so_use_inline_bio_fndecl_22408 use_inline_bio fndecl 3 22408 NULL
155500 +enable_so_do_truncate_fndecl_22411 do_truncate fndecl 2 22411 NULL nohasharray
155501 +enable_so_twl4030_init_sih_modules_fndecl_22411 twl4030_init_sih_modules fndecl 0 22411 &enable_so_do_truncate_fndecl_22411 nohasharray
155502 +enable_so_len_usbdevfs_bulktransfer_22411 len usbdevfs_bulktransfer 0 22411 &enable_so_twl4030_init_sih_modules_fndecl_22411
155503 +enable_so_max_ccb_vardecl_hpilo_c_22414 max_ccb vardecl_hpilo.c 0 22414 NULL
155504 +enable_so_oti6858_write_fndecl_22423 oti6858_write fndecl 4 22423 NULL
155505 +enable_so_bbRcvSizeMsb_csp_22425 bbRcvSizeMsb csp 0 22425 NULL
155506 +enable_so_nfc_llcp_send_ui_frame_fndecl_22429 nfc_llcp_send_ui_frame fndecl 5 22429 NULL
155507 +enable_so_add_size_pci_dev_resource_22434 add_size pci_dev_resource 0 22434 NULL
155508 +enable_so_start_async_cow_22445 start async_cow 0 22445 NULL
155509 +enable_so_frame_len_ksz_desc_rx_stat_22454 frame_len ksz_desc_rx_stat 0 22454 NULL
155510 +enable_so_ntfs_attr_vcn_to_lcn_nolock_fndecl_22455 ntfs_attr_vcn_to_lcn_nolock fndecl 2 22455 NULL
155511 +enable_so_llc_ui_recvmsg_fndecl_22457 llc_ui_recvmsg fndecl 3 22457 NULL
155512 +enable_so_ceph_zero_pagecache_range_fndecl_22464 ceph_zero_pagecache_range fndecl 3-2 22464 NULL nohasharray
155513 +enable_so_mon_bin_ioctl_fndecl_22464 mon_bin_ioctl fndecl 3 22464 &enable_so_ceph_zero_pagecache_range_fndecl_22464
155514 +enable_so_fsl_edma_alloc_desc_fndecl_22466 fsl_edma_alloc_desc fndecl 2 22466 NULL
155515 +enable_so_nv50_fb_vram_rblock_fndecl_22467 nv50_fb_vram_rblock fndecl 0 22467 NULL
155516 +enable_so_s35390a_set_reg_fndecl_22468 s35390a_set_reg fndecl 4 22468 NULL
155517 +enable_so_vmbus_sendpacket_fndecl_22469 vmbus_sendpacket fndecl 3 22469 NULL
155518 +enable_so_s_data_blksize_affs_sb_info_22478 s_data_blksize affs_sb_info 0 22478 NULL
155519 +enable_so_vram_size_aty128fb_par_22489 vram_size aty128fb_par 0 22489 NULL nohasharray
155520 +enable_so_hid_report_raw_event_fndecl_22489 hid_report_raw_event fndecl 4 22489 &enable_so_vram_size_aty128fb_par_22489
155521 +enable_so_find_group_other_fndecl_22490 find_group_other fndecl 0 22490 NULL
155522 +enable_so_xfs_readdir_fndecl_22492 xfs_readdir fndecl 3 22492 NULL
155523 +enable_so_offset_rbd_img_request_22494 offset rbd_img_request 0 22494 NULL
155524 +enable_so_tx_hr_cfv_info_22495 tx_hr cfv_info 0 22495 NULL nohasharray
155525 +enable_so_ovl_cache_entry_new_fndecl_22495 ovl_cache_entry_new fndecl 3 22495 &enable_so_tx_hr_cfv_info_22495
155526 +enable_so_hiface_pcm_init_urb_fndecl_22500 hiface_pcm_init_urb fndecl 3 22500 NULL
155527 +enable_so_iwl_dbgfs_clear_ucode_statistics_write_fndecl_22503 iwl_dbgfs_clear_ucode_statistics_write fndecl 3 22503 NULL
155528 +enable_so_irq_bcma_device_22505 irq bcma_device 0 22505 NULL
155529 +enable_so_cur_rx_pos_tegra_slink_data_22510 cur_rx_pos tegra_slink_data 0 22510 NULL
155530 +enable_so_ctx_len_xfrm_sec_ctx_22511 ctx_len xfrm_sec_ctx 0 22511 NULL
155531 +enable_so_h_mode_size_22514 h mode_size 0 22514 NULL
155532 +enable_so_len_bna_mem_info_22518 len bna_mem_info 0 22518 NULL
155533 +enable_so_raw_subject_size_x509_certificate_22520 raw_subject_size x509_certificate 0 22520 NULL nohasharray
155534 +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
155535 +enable_so_nvkm_devinit_create__fndecl_22523 nvkm_devinit_create_ fndecl 4 22523 NULL
155536 +enable_so_ls_lvblen_dlm_ls_22525 ls_lvblen dlm_ls 0 22525 NULL
155537 +enable_so_ocfs2_bg_discontig_add_extent_fndecl_22531 ocfs2_bg_discontig_add_extent fndecl 4 22531 NULL
155538 +enable_so_posix_acl_xattr_set_fndecl_22534 posix_acl_xattr_set fndecl 4 22534 NULL nohasharray
155539 +enable_so_count_pch_gbe_tx_ring_22534 count pch_gbe_tx_ring 0 22534 &enable_so_posix_acl_xattr_set_fndecl_22534
155540 +enable_so_submit_queue_fndecl_22542 submit_queue fndecl 5 22542 NULL
155541 +enable_so_SyS_flistxattr_fndecl_22548 SyS_flistxattr fndecl 3 22548 NULL
155542 +enable_so_clsb_isar_reg_22551 clsb isar_reg 0 22551 NULL
155543 +enable_so_tx_frag_in_process_called_read_fndecl_22553 tx_frag_in_process_called_read fndecl 3 22553 NULL nohasharray
155544 +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
155545 +enable_so_msg_done_handler_fndecl_22553 msg_done_handler fndecl 4 22553 &enable_so_sadb_x_ctx_len_sadb_x_sec_ctx_22553
155546 +enable_so_w9968cf_i2c_r_fndecl_22560 w9968cf_i2c_r fndecl 0 22560 NULL
155547 +enable_so_max_frame_size_pch_gbe_mac_info_22562 max_frame_size pch_gbe_mac_info 0 22562 NULL
155548 +enable_so_max_xor_dma_device_22564 max_xor dma_device 0 22564 NULL
155549 +enable_so_carl9170_rx_stream_fndecl_22565 carl9170_rx_stream fndecl 3 22565 NULL
155550 +enable_so_fsync_file_operations_22566 fsync file_operations 0 22566 NULL
155551 +enable_so_skd_next_devno_vardecl_skd_main_c_22569 skd_next_devno vardecl_skd_main.c 0 22569 NULL
155552 +enable_so_burst_fsl_edma_slave_config_22570 burst fsl_edma_slave_config 0 22570 NULL
155553 +enable_so_id_rfcomm_dev_22580 id rfcomm_dev 0 22580 NULL
155554 +enable_so_wm_adsp_buf_alloc_fndecl_22582 wm_adsp_buf_alloc fndecl 2 22582 NULL
155555 +enable_so_push_node_left_fndecl_22588 push_node_left fndecl 0 22588 NULL nohasharray
155556 +enable_so_qlcnic_pci_sriov_configure_fndecl_22588 qlcnic_pci_sriov_configure fndecl 2 22588 &enable_so_push_node_left_fndecl_22588 nohasharray
155557 +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
155558 +enable_so_scif_rb_get_next_fndecl_22601 scif_rb_get_next fndecl 3 22601 NULL nohasharray
155559 +enable_so_swevent_hlist_get_cpu_fndecl_22601 swevent_hlist_get_cpu fndecl 0 22601 &enable_so_scif_rb_get_next_fndecl_22601
155560 +enable_so_fw_stats_raw_read_fndecl_22602 fw_stats_raw_read fndecl 3 22602 NULL
155561 +enable_so_pirq_enable_irq_fndecl_22603 pirq_enable_irq fndecl 0 22603 NULL
155562 +enable_so_tx_data_max_size_sst_generic_ipc_22604 tx_data_max_size sst_generic_ipc 0 22604 NULL
155563 +enable_so_maxauthsize_aead_alg_22608 maxauthsize aead_alg 0 22608 NULL nohasharray
155564 +enable_so_btrfs_submit_compressed_write_fndecl_22608 btrfs_submit_compressed_write fndecl 4-5 22608 &enable_so_maxauthsize_aead_alg_22608
155565 +enable_so_count_mspro_attribute_22612 count mspro_attribute 0 22612 NULL
155566 +enable_so_len_aironet_ioctl_22615 len aironet_ioctl 0 22615 NULL
155567 +enable_so_ir_startino_xfs_inobt_rec_incore_22616 ir_startino xfs_inobt_rec_incore 0 22616 NULL
155568 +enable_so_mem_hole_size_fndecl_22619 mem_hole_size fndecl 0-1-2 22619 NULL nohasharray
155569 +enable_so_wil_write_pmccfg_fndecl_22619 wil_write_pmccfg fndecl 3 22619 &enable_so_mem_hole_size_fndecl_22619 nohasharray
155570 +enable_so_bond_verify_device_path_fndecl_22619 bond_verify_device_path fndecl 3 22619 &enable_so_wil_write_pmccfg_fndecl_22619
155571 +enable_so_curr_block_migrate_struct_22621 curr_block migrate_struct 0 22621 NULL
155572 +enable_so_length_obj_key_22626 length obj_key 0 22626 NULL
155573 +enable_so_SYSC_io_getevents_fndecl_22627 SYSC_io_getevents fndecl 3 22627 NULL
155574 +enable_so_n_compat_sel_arg_struct_22628 n compat_sel_arg_struct 0 22628 NULL
155575 +enable_so_buf_height_s5p_mfc_ctx_22637 buf_height s5p_mfc_ctx 0 22637 NULL
155576 +enable_so_hci_si_event_fndecl_22639 hci_si_event fndecl 3 22639 NULL
155577 +enable_so_num_rcv_bufs_visornic_devdata_22643 num_rcv_bufs visornic_devdata 0 22643 NULL
155578 +enable_so_sctp_setsockopt_initmsg_fndecl_22644 sctp_setsockopt_initmsg fndecl 3 22644 NULL
155579 +enable_so_queue_size_snd_timer_params_22646 queue_size snd_timer_params 0 22646 NULL
155580 +enable_so_do_msgsnd_fndecl_22648 do_msgsnd fndecl 4 22648 NULL
155581 +enable_so_isight_decode_fndecl_22650 isight_decode fndecl 4 22650 NULL
155582 +enable_so_sample_rate_usb_stream_config_22662 sample_rate usb_stream_config 0 22662 NULL
155583 +enable_so_md_probe_fndecl_22668 md_probe fndecl 1 22668 NULL
155584 +enable_so_init_rs_internal_fndecl_22671 init_rs_internal fndecl 6-1 22671 NULL
155585 +enable_so_ieee80211_mesh_rx_bcn_presp_fndecl_22678 ieee80211_mesh_rx_bcn_presp fndecl 4 22678 NULL
155586 +enable_so_fbcon_redraw_softback_fndecl_22679 fbcon_redraw_softback fndecl 3 22679 NULL nohasharray
155587 +enable_so_bop_propagate_nilfs_bmap_operations_22679 bop_propagate nilfs_bmap_operations 0 22679 &enable_so_fbcon_redraw_softback_fndecl_22679
155588 +enable_so_get_nr_entries_fndecl_22680 get_nr_entries fndecl 2 22680 NULL
155589 +enable_so_vlan_tag_bnx2x_agg_info_22683 vlan_tag bnx2x_agg_info 0 22683 NULL nohasharray
155590 +enable_so_cfs_trace_copyout_string_fndecl_22683 cfs_trace_copyout_string fndecl 2 22683 &enable_so_vlan_tag_bnx2x_agg_info_22683
155591 +enable_so_irq_pipe_ttusb_dec_22685 irq_pipe ttusb_dec 0 22685 NULL
155592 +enable_so_sctp_sf_abort_violation_fndecl_22687 sctp_sf_abort_violation fndecl 7 22687 NULL
155593 +enable_so_vidioc_s_input_fndecl_22689 vidioc_s_input fndecl 3 22689 NULL
155594 +enable_so_ino_nilfs_iget_args_22691 ino nilfs_iget_args 0 22691 NULL
155595 +enable_so_tx_queue_len_read_fndecl_22692 tx_queue_len_read fndecl 3 22692 NULL
155596 +enable_so_ctl_dma_yealink_dev_22696 ctl_dma yealink_dev 0 22696 NULL
155597 +enable_so_len_vring_desc_22700 len vring_desc 0 22700 NULL
155598 +enable_so_brcmf_sdio_read_control_fndecl_22712 brcmf_sdio_read_control fndecl 3 22712 NULL
155599 +enable_so_scif_rb_write_fndecl_22718 scif_rb_write fndecl 0-3 22718 NULL
155600 +enable_so_tail_inbuf_t_22719 tail inbuf_t 0 22719 NULL nohasharray
155601 +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
155602 +enable_so_SMB2_ioctl_fndecl_22721 SMB2_ioctl fndecl 8 22721 NULL
155603 +enable_so_ath6kl_wmi_get_tx_pwr_cmd_fndecl_22722 ath6kl_wmi_get_tx_pwr_cmd fndecl 2 22722 NULL nohasharray
155604 +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
155605 +enable_so_sta_num_ps_buf_frames_read_fndecl_22723 sta_num_ps_buf_frames_read fndecl 3 22723 NULL
155606 +enable_so_odm_mirror_cnt_pnfs_osd_data_map_22727 odm_mirror_cnt pnfs_osd_data_map 0 22727 NULL
155607 +enable_so_fcoe_hmc_cntx_num_i40e_pf_22730 fcoe_hmc_cntx_num i40e_pf 0 22730 NULL nohasharray
155608 +enable_so_fpregs_set_fndecl_22730 fpregs_set fndecl 4 22730 &enable_so_fcoe_hmc_cntx_num_i40e_pf_22730
155609 +enable_so___blk_bios_map_sg_fndecl_22734 __blk_bios_map_sg fndecl 0 22734 NULL
155610 +enable_so_xprt_alloc_fndecl_22736 xprt_alloc fndecl 4-3-2 22736 NULL
155611 +enable_so_num_fcoe_qps_i40e_pf_22740 num_fcoe_qps i40e_pf 0 22740 NULL
155612 +enable_so_SYSC_syslog_fndecl_22742 SYSC_syslog fndecl 3 22742 NULL
155613 +enable_so_iwlagn_pass_packet_to_mac80211_fndecl_22746 iwlagn_pass_packet_to_mac80211 fndecl 3 22746 NULL
155614 +enable_so_slave_num_ad7280_state_22755 slave_num ad7280_state 0 22755 NULL
155615 +enable_so_alloc_perm_bits_fndecl_22767 alloc_perm_bits fndecl 2 22767 NULL
155616 +enable_so_rambase_brcmf_chip_22773 rambase brcmf_chip 0 22773 NULL
155617 +enable_so_ide_get_identity_ioctl_fndecl_22776 ide_get_identity_ioctl fndecl 0 22776 NULL
155618 +enable_so_xfs_bmap_add_free_fndecl_22778 xfs_bmap_add_free fndecl 1-2 22778 NULL
155619 +enable_so_tomoyo_round2_fndecl_22781 tomoyo_round2 fndecl 0 22781 NULL
155620 +enable_so_orig_video_cols_screen_info_22783 orig_video_cols screen_info 0 22783 NULL
155621 +enable_so_h_start_saa7134_tvnorm_22798 h_start saa7134_tvnorm 0 22798 NULL
155622 +enable_so_i_next_section_block_iso_inode_info_22800 i_next_section_block iso_inode_info 0 22800 NULL nohasharray
155623 +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
155624 +enable_so_my_inptr_vardecl_initramfs_c_22809 my_inptr vardecl_initramfs.c 0 22809 NULL
155625 +enable_so_agp_create_memory_fndecl_22816 agp_create_memory fndecl 1 22816 NULL
155626 +enable_so_aper_size_amdgpu_mc_22824 aper_size amdgpu_mc 0 22824 NULL
155627 +enable_so_tx_size_uart_8250_dma_22825 tx_size uart_8250_dma 0 22825 NULL
155628 +enable_so_nfs_pgarray_set_fndecl_22830 nfs_pgarray_set fndecl 2 22830 NULL
155629 +enable_so_gigaset_initdriver_fndecl_22839 gigaset_initdriver fndecl 2-1 22839 NULL
155630 +enable_so_sys_mremap_fndecl_22848 sys_mremap fndecl 3-5-1-2 22848 NULL nohasharray
155631 +enable_so_clean_io_failure_fndecl_22848 clean_io_failure fndecl 4 22848 &enable_so_sys_mremap_fndecl_22848
155632 +enable_so_rlen_si2168_cmd_22851 rlen si2168_cmd 0 22851 NULL
155633 +enable_so_var2_apei_exec_context_22852 var2 apei_exec_context 0 22852 NULL
155634 +enable_so_utf8s_to_utf16s_fndecl_22856 utf8s_to_utf16s fndecl 0 22856 NULL
155635 +enable_so_size_proc_dir_entry_22859 size proc_dir_entry 0 22859 NULL
155636 +enable_so_xs_sendpages_fndecl_22864 xs_sendpages fndecl 5-3 22864 NULL
155637 +enable_so_hpfs_get_block_fndecl_22865 hpfs_get_block fndecl 2 22865 NULL
155638 +enable_so_usCRTC_H_SyncStart__ATOM_MODE_TIMING_22868 usCRTC_H_SyncStart _ATOM_MODE_TIMING 0 22868 NULL
155639 +enable_so_n_subbufs_rchan_22872 n_subbufs rchan 0 22872 NULL
155640 +enable_so_max_part_vardecl_brd_c_22873 max_part vardecl_brd.c 0 22873 NULL
155641 +enable_so_enc28j60_mem_read_fndecl_22875 enc28j60_mem_read fndecl 3 22875 NULL
155642 +enable_so_count_nfs3_readdirargs_22881 count nfs3_readdirargs 0 22881 NULL
155643 +enable_so_max_wrs_rds_iw_device_22882 max_wrs rds_iw_device 0 22882 NULL
155644 +enable_so_len_prism2_download_area_22884 len prism2_download_area 0 22884 NULL
155645 +enable_so_frag_len_atmel_private_22893 frag_len atmel_private 0 22893 NULL
155646 +enable_so_snap_names_len_rbd_image_header_ondisk_22898 snap_names_len rbd_image_header_ondisk 0 22898 NULL
155647 +enable_so___btrfs_cow_block_fndecl_22902 __btrfs_cow_block fndecl 0 22902 NULL
155648 +enable_so_lpfc_fcp_io_channel_init_fndecl_22903 lpfc_fcp_io_channel_init fndecl 2 22903 NULL
155649 +enable_so_count_ioctl_gntdev_map_grant_ref_22904 count ioctl_gntdev_map_grant_ref 0 22904 NULL nohasharray
155650 +enable_so_bcma_hcd_create_pdev_fndecl_22904 bcma_hcd_create_pdev fndecl 3 22904 &enable_so_count_ioctl_gntdev_map_grant_ref_22904
155651 +enable_so_num_y_edt_ft5x06_ts_data_22905 num_y edt_ft5x06_ts_data 0 22905 NULL
155652 +enable_so_membase_phys_efx_nic_22907 membase_phys efx_nic 0 22907 NULL
155653 +enable_so_vmalloc_32_fndecl_22908 vmalloc_32 fndecl 1 22908 NULL
155654 +enable_so_cfg80211_report_obss_beacon_fndecl_22910 cfg80211_report_obss_beacon fndecl 3 22910 NULL
155655 +enable_so_mfn_list_start_info_22914 mfn_list start_info 0 22914 NULL
155656 +enable_so_lmd_exclude_count_lustre_mount_data_22915 lmd_exclude_count lustre_mount_data 0 22915 NULL
155657 +enable_so_len_policy_load_memory_22916 len policy_load_memory 0 22916 NULL
155658 +enable_so_node_con_driver_22919 node con_driver 0 22919 NULL
155659 +enable_so_len_ext4_allocation_request_22920 len ext4_allocation_request 0 22920 NULL
155660 +enable_so_e_name_len_ext4_xattr_entry_22925 e_name_len ext4_xattr_entry 0 22925 NULL
155661 +enable_so_port100_send_frame_async_fndecl_22927 port100_send_frame_async fndecl 4 22927 NULL
155662 +enable_so_event_data_len_msgbuf_rx_event_22931 event_data_len msgbuf_rx_event 0 22931 NULL
155663 +enable_so_i2400m_rx_ctl_fndecl_22934 i2400m_rx_ctl fndecl 4 22934 NULL
155664 +enable_so_vid_begin_switchdev_obj_vlan_22941 vid_begin switchdev_obj_vlan 0 22941 NULL
155665 +enable_so_num_counters_ip6t_replace_22944 num_counters ip6t_replace 0 22944 NULL
155666 +enable_so_i2cdev_read_fndecl_22949 i2cdev_read fndecl 3 22949 NULL
155667 +enable_so_bulk_out_usbatm_driver_22950 bulk_out usbatm_driver 0 22950 NULL
155668 +enable_so_al_stripe_size_4k_drbd_md_22954 al_stripe_size_4k drbd_md 0 22954 NULL
155669 +enable_so_lov_ost_pool_init_fndecl_22956 lov_ost_pool_init fndecl 2 22956 NULL
155670 +enable_so_userptr_drm_exynos_g2d_userptr_22959 userptr drm_exynos_g2d_userptr 0 22959 NULL
155671 +enable_so_osd_full_h_yuv_playback_info_22967 osd_full_h yuv_playback_info 0 22967 NULL
155672 +enable_so_data_swap_cluster_info_22969 data swap_cluster_info 0 22969 NULL
155673 +enable_so_ipc_alloc_fndecl_22971 ipc_alloc fndecl 1 22971 NULL
155674 +enable_so_i2400m_rx_ctl_ack_fndecl_22972 i2400m_rx_ctl_ack fndecl 3 22972 NULL
155675 +enable_so_port_rcvegrbuf_chunks_ipath_portdata_22973 port_rcvegrbuf_chunks ipath_portdata 0 22973 NULL
155676 +enable_so_nilfs_palloc_init_blockgroup_fndecl_22978 nilfs_palloc_init_blockgroup fndecl 2 22978 NULL
155677 +enable_so_kernfs_file_direct_read_fndecl_22981 kernfs_file_direct_read fndecl 3 22981 NULL
155678 +enable_so_max_pkt_size_stk1160_isoc_ctl_22983 max_pkt_size stk1160_isoc_ctl 0 22983 NULL
155679 +enable_so_ipw2100_set_rts_threshold_fndecl_22986 ipw2100_set_rts_threshold fndecl 2 22986 NULL
155680 +enable_so_acpi_battery_write_alarm_fndecl_22987 acpi_battery_write_alarm fndecl 3 22987 NULL
155681 +enable_so_sector_size_flash_info_22990 sector_size flash_info 0 22990 NULL nohasharray
155682 +enable_so_snd_hdac_read_fndecl_22990 snd_hdac_read fndecl 0 22990 &enable_so_sector_size_flash_info_22990
155683 +enable_so_p54spi_spi_write_fndecl_22994 p54spi_spi_write fndecl 4 22994 NULL
155684 +enable_so_size_wil_memio_block_22999 size wil_memio_block 0 22999 NULL
155685 +enable_so_dvb_register_adapter_fndecl_23000 dvb_register_adapter fndecl 0 23000 NULL
155686 +enable_so_ipw_packet_received_skb_fndecl_23005 ipw_packet_received_skb fndecl 2 23005 NULL
155687 +enable_so_memblock_alloc_range_fndecl_23015 memblock_alloc_range fndecl 2-1-3-4 23015 NULL nohasharray
155688 +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
155689 +enable_so_desc_size_data_queue_23015 desc_size data_queue 0 23015 &enable_so_fb_height_drm_fb_helper_surface_size_23015 nohasharray
155690 +enable_so_tx_size_iscsi_cmd_23015 tx_size iscsi_cmd 0 23015 &enable_so_desc_size_data_queue_23015
155691 +enable_so_bLength_usb_endpoint_descriptor_23016 bLength usb_endpoint_descriptor 0 23016 NULL
155692 +enable_so_ioctl_private_iw_point_fndecl_23018 ioctl_private_iw_point fndecl 7 23018 NULL
155693 +enable_so_fw_vif_idx_ath6kl_vif_23020 fw_vif_idx ath6kl_vif 0 23020 NULL
155694 +enable_so_nested_get_page_fndecl_23031 nested_get_page fndecl 2 23031 NULL
155695 +enable_so_rx_frag_size_atl1c_adapter_23034 rx_frag_size atl1c_adapter 0 23034 NULL nohasharray
155696 +enable_so_remap_fndecl_23034 remap fndecl 3 23034 &enable_so_rx_frag_size_atl1c_adapter_23034
155697 +enable_so_io_tlb_start_vardecl_swiotlb_c_23035 io_tlb_start vardecl_swiotlb.c 0 23035 NULL
155698 +enable_so_in_ep_smsusb_device_t_23038 in_ep smsusb_device_t 0 23038 NULL
155699 +enable_so_lost_cnt_hint_tcp_sock_23039 lost_cnt_hint tcp_sock 0 23039 NULL
155700 +enable_so_trailen_authenc_esn_request_ctx_23047 trailen authenc_esn_request_ctx 0 23047 NULL nohasharray
155701 +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
155702 +enable_so_y1_drm_clip_rect_23048 y1 drm_clip_rect 0 23048 NULL nohasharray
155703 +enable_so_sta_aid_read_fndecl_23048 sta_aid_read fndecl 3 23048 &enable_so_y1_drm_clip_rect_23048
155704 +enable_so_gnttab_free_count_vardecl_grant_table_c_23049 gnttab_free_count vardecl_grant-table.c 0 23049 NULL
155705 +enable_so_gfs2_read_super_fndecl_23055 gfs2_read_super fndecl 2 23055 NULL
155706 +enable_so_ueth_change_mtu_fndecl_23057 ueth_change_mtu fndecl 2 23057 NULL
155707 +enable_so_fcoe_ctlr_device_add_fndecl_23058 fcoe_ctlr_device_add fndecl 3 23058 NULL
155708 +enable_so_usb_dmac_desc_alloc_fndecl_23059 usb_dmac_desc_alloc fndecl 2 23059 NULL
155709 +enable_so_agp_base_radeon_mc_23066 agp_base radeon_mc 0 23066 NULL nohasharray
155710 +enable_so_fe_start_ext4_free_extent_23066 fe_start ext4_free_extent 0 23066 &enable_so_agp_base_radeon_mc_23066
155711 +enable_so_to_clkrc_fndecl_23074 to_clkrc fndecl 0-2-3 23074 NULL
155712 +enable_so_scif_rb_count_fndecl_23076 scif_rb_count fndecl 0 23076 NULL
155713 +enable_so_fm10k_iov_configure_fndecl_23078 fm10k_iov_configure fndecl 2 23078 NULL
155714 +enable_so_rpcrdma_inline_pullup_fndecl_23082 rpcrdma_inline_pullup fndecl 0-2 23082 NULL
155715 +enable_so_xfs_vm_write_end_fndecl_23085 xfs_vm_write_end fndecl 3-4-5 23085 NULL nohasharray
155716 +enable_so_ext_ofs_sym_ccb_23085 ext_ofs sym_ccb 0 23085 &enable_so_xfs_vm_write_end_fndecl_23085
155717 +enable_so_vicam_set_camera_power_fndecl_23091 vicam_set_camera_power fndecl 0 23091 NULL
155718 +enable_so_devfn_pci_dev_23093 devfn pci_dev 0 23093 NULL
155719 +enable_so_s_cluster_ratio_ext4_sb_info_23095 s_cluster_ratio ext4_sb_info 0 23095 NULL
155720 +enable_so_qla27xx_fwdt_template_default_size_fndecl_23103 qla27xx_fwdt_template_default_size fndecl 0 23103 NULL
155721 +enable_so___minimum_chunk_size_fndecl_23105 __minimum_chunk_size fndecl 0 23105 NULL
155722 +enable_so_sq_max_sges_c4iw_qp_attributes_23123 sq_max_sges c4iw_qp_attributes 0 23123 NULL
155723 +enable_so_numchips_nand_chip_23137 numchips nand_chip 0 23137 NULL
155724 +enable_so_num_dv_ports_adv76xx_chip_info_23140 num_dv_ports adv76xx_chip_info 0 23140 NULL
155725 +enable_so_udf_load_pvoldesc_fndecl_23141 udf_load_pvoldesc fndecl 2 23141 NULL
155726 +enable_so_max_tx_urbs_kvaser_usb_23152 max_tx_urbs kvaser_usb 0 23152 NULL
155727 +enable_so_bits_key_vector_23153 bits key_vector 0 23153 NULL
155728 +enable_so_memblock_free_fndecl_23154 memblock_free fndecl 2-1 23154 NULL
155729 +enable_so_oxu_create_fndecl_23159 oxu_create fndecl 3-2 23159 NULL
155730 +enable_so_isdn_audio_xlaw2adpcm_fndecl_23162 isdn_audio_xlaw2adpcm fndecl 0 23162 NULL nohasharray
155731 +enable_so_rx_defrag_called_read_fndecl_23162 rx_defrag_called_read fndecl 3 23162 &enable_so_isdn_audio_xlaw2adpcm_fndecl_23162
155732 +enable_so_width_linux_logo_23166 width linux_logo 0 23166 NULL
155733 +enable_so_SyS_add_key_fndecl_23167 SyS_add_key fndecl 4 23167 NULL
155734 +enable_so_memblock_alloc_base_fndecl_23169 memblock_alloc_base fndecl 2-1-0-3 23169 NULL nohasharray
155735 +enable_so_MaxIoCommands_aac_init_23169 MaxIoCommands aac_init 0 23169 &enable_so_memblock_alloc_base_fndecl_23169
155736 +enable_so_ext3_fiemap_fndecl_23171 ext3_fiemap fndecl 4 23171 NULL
155737 +enable_so_nvif_object_sclass_fndecl_23175 nvif_object_sclass fndecl 3 23175 NULL nohasharray
155738 +enable_so_cyttsp_probe_fndecl_23175 cyttsp_probe fndecl 4 23175 &enable_so_nvif_object_sclass_fndecl_23175
155739 +enable_so_x_res_vbe_mode_ib_23177 x_res vbe_mode_ib 0 23177 NULL
155740 +enable_so_nslot_nd_namespace_index_23178 nslot nd_namespace_index 0 23178 NULL
155741 +enable_so_uhid_char_read_fndecl_23187 uhid_char_read fndecl 3 23187 NULL
155742 +enable_so_tx_tx_retry_data_read_fndecl_23189 tx_tx_retry_data_read fndecl 3 23189 NULL
155743 +enable_so_nv20_fb_tile_comp_fndecl_23192 nv20_fb_tile_comp fndecl 3 23192 NULL
155744 +enable_so_ir_context_mask_fw_ohci_23196 ir_context_mask fw_ohci 0 23196 NULL
155745 +enable_so_seq_lseek_fndecl_23197 seq_lseek fndecl 2 23197 NULL
155746 +enable_so_bdev_erase_fndecl_23198 bdev_erase fndecl 2-3 23198 NULL
155747 +enable_so_btt_major_vardecl_btt_c_23220 btt_major vardecl_btt.c 0 23220 NULL
155748 +enable_so_read_swap_header_fndecl_23222 read_swap_header fndecl 0 23222 NULL
155749 +enable_so_num_channels_sh_mtu2_device_23224 num_channels sh_mtu2_device 0 23224 NULL
155750 +enable_so_clk_core_get_rate_fndecl_23225 clk_core_get_rate fndecl 0 23225 NULL nohasharray
155751 +enable_so_vid_hdr_offset_ubi_device_23225 vid_hdr_offset ubi_device 0 23225 &enable_so_clk_core_get_rate_fndecl_23225
155752 +enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
155753 +enable_so_nvkm_client_map_fndecl_23228 nvkm_client_map fndecl 3-2 23228 NULL
155754 +enable_so_ubifs_prep_grp_node_fndecl_23231 ubifs_prep_grp_node fndecl 3 23231 NULL nohasharray
155755 +enable_so_ivtv_v4l2_read_fndecl_23231 ivtv_v4l2_read fndecl 3 23231 &enable_so_ubifs_prep_grp_node_fndecl_23231
155756 +enable_so__major_vardecl_dm_c_23233 _major vardecl_dm.c 0 23233 NULL
155757 +enable_so_sb_min_blocksize_fndecl_23239 sb_min_blocksize fndecl 2-0 23239 NULL
155758 +enable_so_num_rxd_rx_ring_config_23240 num_rxd rx_ring_config 0 23240 NULL
155759 +enable_so_rx_rx_defrag_read_fndecl_23241 rx_rx_defrag_read fndecl 3 23241 NULL
155760 +enable_so_dir_per_block_bits_msdos_sb_info_23245 dir_per_block_bits msdos_sb_info 0 23245 NULL
155761 +enable_so_ksm_madvise_fndecl_23247 ksm_madvise fndecl 2 23247 NULL
155762 +enable_so___alloc_bootmem_node_fndecl_23259 __alloc_bootmem_node fndecl 3-2-4 23259 NULL
155763 +enable_so_devm_ioremap_nocache_fndecl_23271 devm_ioremap_nocache fndecl 3-2 23271 NULL
155764 +enable_so_cifs_read_fndecl_23274 cifs_read fndecl 3 23274 NULL
155765 +enable_so_udf_table_new_block_fndecl_23276 udf_table_new_block fndecl 0 23276 NULL
155766 +enable_so_start_blkpg_partition_23281 start blkpg_partition 0 23281 NULL
155767 +enable_so_write_flush_pipefs_fndecl_23286 write_flush_pipefs fndecl 3 23286 NULL
155768 +enable_so_ino_node_info_23289 ino node_info 0 23289 NULL nohasharray
155769 +enable_so_modedb_len_fb_monspecs_23289 modedb_len fb_monspecs 0 23289 &enable_so_ino_node_info_23289
155770 +enable_so_shmac_num_idents_sctp_hmacalgo_23292 shmac_num_idents sctp_hmacalgo 0 23292 NULL
155771 +enable_so_vtbl_slots_ubi_device_23293 vtbl_slots ubi_device 0 23293 NULL
155772 +enable_so_fnic_get_trace_data_fndecl_23305 fnic_get_trace_data fndecl 0 23305 NULL
155773 +enable_so_debug_read_tlb_fndecl_23307 debug_read_tlb fndecl 3 23307 NULL
155774 +enable_so_transfersize_scsi_cmnd_23314 transfersize scsi_cmnd 0 23314 NULL
155775 +enable_so_s_blocks_per_segment_nilfs_super_block_23318 s_blocks_per_segment nilfs_super_block 0 23318 NULL
155776 +enable_so_max_send_sge_ocrdma_dev_attr_23321 max_send_sge ocrdma_dev_attr 0 23321 NULL
155777 +enable_so_ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_fndecl_23334 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime fndecl 3 23334 NULL nohasharray
155778 +enable_so_naces_nfs4_acl_23334 naces nfs4_acl 0 23334 &enable_so_ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_fndecl_23334
155779 +enable_so_reply_queue_count_MPT2SAS_ADAPTER_23337 reply_queue_count MPT2SAS_ADAPTER 0 23337 NULL
155780 +enable_so_num_outputs_clkgena_divmux_data_23340 num_outputs clkgena_divmux_data 0 23340 NULL
155781 +enable_so_max_header_size_tsap_cb_23342 max_header_size tsap_cb 0 23342 NULL
155782 +enable_so_compat_sys_vmsplice_fndecl_23344 compat_sys_vmsplice fndecl 3 23344 NULL
155783 +enable_so_mark_block_processed_fndecl_23353 mark_block_processed fndecl 3-2 23353 NULL nohasharray
155784 +enable_so_pci_iov_virtfn_devfn_fndecl_23353 pci_iov_virtfn_devfn fndecl 0-2 23353 &enable_so_mark_block_processed_fndecl_23353
155785 +enable_so_vxres_crtc_23359 vxres crtc 0 23359 NULL
155786 +enable_so_v9fs_fid_xattr_get_fndecl_23361 v9fs_fid_xattr_get fndecl 0-4 23361 NULL
155787 +enable_so_default_blksize_st_modedef_23371 default_blksize st_modedef 0 23371 NULL
155788 +enable_so_packet_buffer_init_fndecl_23380 packet_buffer_init fndecl 2 23380 NULL
155789 +enable_so_kernel_map_sync_memtype_fndecl_23381 kernel_map_sync_memtype fndecl 1 23381 NULL
155790 +enable_so_length_dmi_header_23383 length dmi_header 0 23383 NULL
155791 +enable_so_pcpu_atom_size_vardecl_percpu_c_23384 pcpu_atom_size vardecl_percpu.c 0 23384 NULL
155792 +enable_so_sf_entsize_xfs_dir_ops_23386 sf_entsize xfs_dir_ops 0 23386 NULL nohasharray
155793 +enable_so_dstirq_mpc_intsrc_23386 dstirq mpc_intsrc 0 23386 &enable_so_sf_entsize_xfs_dir_ops_23386
155794 +enable_so_new_SSID_size_atmel_private_23387 new_SSID_size atmel_private 0 23387 NULL
155795 +enable_so___irlan_insert_param_fndecl_23389 __irlan_insert_param fndecl 7 23389 NULL nohasharray
155796 +enable_so_btmrvl_hscmd_read_fndecl_23389 btmrvl_hscmd_read fndecl 3 23389 &enable_so___irlan_insert_param_fndecl_23389
155797 +enable_so_xfs_alloc_file_space_fndecl_23394 xfs_alloc_file_space fndecl 3-2 23394 NULL
155798 +enable_so_ptr_mask_amdgpu_ring_23397 ptr_mask amdgpu_ring 0 23397 NULL
155799 +enable_so_kt_serial_setup_fndecl_23400 kt_serial_setup fndecl 4 23400 NULL
155800 +enable_so_max_cmds_ips_ha_23401 max_cmds ips_ha 0 23401 NULL nohasharray
155801 +enable_so_ikconfig_read_current_fndecl_23401 ikconfig_read_current fndecl 3 23401 &enable_so_max_cmds_ips_ha_23401
155802 +enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405 s5p_jpeg_get_subsampling_mode fndecl 0 23405 NULL nohasharray
155803 +enable_so_map_block_for_writepage_fndecl_23405 map_block_for_writepage fndecl 3 23405 &enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405
155804 +enable_so_nx_fw_cmd_set_gbe_port_fndecl_23412 nx_fw_cmd_set_gbe_port fndecl 3 23412 NULL
155805 +enable_so_numerator_v4l2_fract_23413 numerator v4l2_fract 0 23413 NULL
155806 +enable_so_logfs_safe_iget_fndecl_23415 logfs_safe_iget fndecl 2 23415 NULL
155807 +enable_so_cifs_write_end_fndecl_23416 cifs_write_end fndecl 5 23416 NULL
155808 +enable_so_max_snd_interval_23422 max snd_interval 0 23422 NULL
155809 +enable_so_configfs_read_file_fndecl_23424 configfs_read_file fndecl 3 23424 NULL
155810 +enable_so___qib_get_user_pages_fndecl_23426 __qib_get_user_pages fndecl 1 23426 NULL
155811 +enable_so_nilfs_attach_snapshot_fndecl_23434 nilfs_attach_snapshot fndecl 2 23434 NULL
155812 +enable_so_ftdi_instances_vardecl_ftdi_elan_c_23438 ftdi_instances vardecl_ftdi-elan.c 0 23438 NULL
155813 +enable_so_set_xfer_rate_fndecl_23440 set_xfer_rate fndecl 2 23440 NULL
155814 +enable_so_mei_cl_recv_fndecl_23442 mei_cl_recv fndecl 0-3 23442 NULL
155815 +enable_so_last_mcs_rx_wil_net_stats_23443 last_mcs_rx wil_net_stats 0 23443 NULL
155816 +enable_so_seg_size_wa_xfer_23450 seg_size wa_xfer 0 23450 NULL
155817 +enable_so_name_len_ocfs2_dir_entry_23452 name_len ocfs2_dir_entry 0 23452 NULL nohasharray
155818 +enable_so_bytes_number_item_operations_23452 bytes_number item_operations 0 23452 &enable_so_name_len_ocfs2_dir_entry_23452
155819 +enable_so_btrfs_dir_data_len_fndecl_23457 btrfs_dir_data_len fndecl 0 23457 NULL
155820 +enable_so_rsi_sdio_write_register_multiple_fndecl_23471 rsi_sdio_write_register_multiple fndecl 4 23471 NULL
155821 +enable_so_offset_ttm_bus_placement_23475 offset ttm_bus_placement 0 23475 NULL
155822 +enable_so_iwl_dbgfs_d0i3_refs_read_fndecl_23482 iwl_dbgfs_d0i3_refs_read fndecl 3 23482 NULL
155823 +enable_so_gfn_to_hva_prot_fndecl_23484 gfn_to_hva_prot fndecl 2 23484 NULL nohasharray
155824 +enable_so_coda_psdev_write_fndecl_23484 coda_psdev_write fndecl 3 23484 &enable_so_gfn_to_hva_prot_fndecl_23484
155825 +enable_so_control_skge_rx_desc_23486 control skge_rx_desc 0 23486 NULL
155826 +enable_so_cyy_init_card_fndecl_23488 cyy_init_card fndecl 0 23488 NULL
155827 +enable_so_tx_frag_called_read_fndecl_23495 tx_frag_called_read fndecl 3 23495 NULL
155828 +enable_so_egr_sz_sge_23500 egr_sz sge 0 23500 NULL
155829 +enable_so_mxt_read_and_process_messages_fndecl_23502 mxt_read_and_process_messages fndecl 2-0 23502 NULL
155830 +enable_so_internal_create_group_fndecl_23510 internal_create_group fndecl 0 23510 NULL
155831 +enable_so_objectid_btrfs_disk_key_23513 objectid btrfs_disk_key 0 23513 NULL
155832 +enable_so_usb_ep_align_maybe_fndecl_23516 usb_ep_align_maybe fndecl 0-3 23516 NULL
155833 +enable_so_dev_irnet_read_fndecl_23518 dev_irnet_read fndecl 3 23518 NULL
155834 +enable_so_rxHeader2_edgeport_serial_23525 rxHeader2 edgeport_serial 0 23525 NULL
155835 +enable_so_info2_rx_ppdu_start_23531 info2 rx_ppdu_start 0 23531 NULL
155836 +enable_so_ieee80211_new_mesh_header_fndecl_23538 ieee80211_new_mesh_header fndecl 0 23538 NULL
155837 +enable_so_FbUsableSize_nvidia_par_23541 FbUsableSize nvidia_par 0 23541 NULL nohasharray
155838 +enable_so_mem_size_pch_dev_23541 mem_size pch_dev 0 23541 &enable_so_FbUsableSize_nvidia_par_23541
155839 +enable_so_max_pkt_size_cx231xx_bulk_ctl_23542 max_pkt_size cx231xx_bulk_ctl 0 23542 NULL
155840 +enable_so_ebt_size_mwt_fndecl_23547 ebt_size_mwt fndecl 0 23547 NULL
155841 +enable_so_cosa_write_fndecl_23549 cosa_write fndecl 3 23549 NULL
155842 +enable_so_inode_no_exofs_dir_entry_23550 inode_no exofs_dir_entry 0 23550 NULL
155843 +enable_so_xfs_dabuf_map_fndecl_23558 xfs_dabuf_map fndecl 2 23558 NULL
155844 +enable_so_p_chmask_f_uac2_opts_23559 p_chmask f_uac2_opts 0 23559 NULL
155845 +enable_so_bdx_change_mtu_fndecl_23561 bdx_change_mtu fndecl 2 23561 NULL
155846 +enable_so_lblock_gfs2_journal_extent_23574 lblock gfs2_journal_extent 0 23574 NULL
155847 +enable_so_secblob_len_cifs_spnego_msg_23580 secblob_len cifs_spnego_msg 0 23580 NULL
155848 +enable_so_rx_max_size_cxgbi_device_23582 rx_max_size cxgbi_device 0 23582 NULL
155849 +enable_so_syslog_print_fndecl_23584 syslog_print fndecl 2 23584 NULL nohasharray
155850 +enable_so_resource_length_aml_resource_large_header_23584 resource_length aml_resource_large_header 0 23584 &enable_so_syslog_print_fndecl_23584
155851 +enable_so_nr_devices_ssb_bus_23589 nr_devices ssb_bus 0 23589 NULL
155852 +enable_so_max_cmd_size_ath6kl_bmi_23591 max_cmd_size ath6kl_bmi 0 23591 NULL
155853 +enable_so_dn_setsockopt_fndecl_23593 dn_setsockopt fndecl 5 23593 NULL
155854 +enable_so_hugetlb_no_page_fndecl_23597 hugetlb_no_page fndecl 5 23597 NULL
155855 +enable_so_c67x00_probe_sie_fndecl_23602 c67x00_probe_sie fndecl 3 23602 NULL
155856 +enable_so_read_file_war_stats_fndecl_23607 read_file_war_stats fndecl 3 23607 NULL
155857 +enable_so_nr_grant_frames_vardecl_grant_table_c_23609 nr_grant_frames vardecl_grant-table.c 0 23609 NULL
155858 +enable_so_mthca_alloc_icm_pages_fndecl_23615 mthca_alloc_icm_pages fndecl 2 23615 NULL
155859 +enable_so_video_size_sis_video_info_23622 video_size sis_video_info 0 23622 NULL nohasharray
155860 +enable_so_mthca_alloc_fndecl_23622 mthca_alloc fndecl 0 23622 &enable_so_video_size_sis_video_info_23622
155861 +enable_so_blocksize_iso9660_options_23626 blocksize iso9660_options 0 23626 NULL
155862 +enable_so_skge_rx_setup_fndecl_23628 skge_rx_setup fndecl 4 23628 NULL
155863 +enable_so_vb_bytes_per_line_cx18_stream_23630 vb_bytes_per_line cx18_stream 0 23630 NULL nohasharray
155864 +enable_so_ll_zero_fndecl_23630 ll_zero fndecl 3-4 23630 &enable_so_vb_bytes_per_line_cx18_stream_23630
155865 +enable_so_ath9k_wmi_cmd_fndecl_23636 ath9k_wmi_cmd fndecl 4 23636 NULL
155866 +enable_so_nr_tags_blk_mq_tags_23638 nr_tags blk_mq_tags 0 23638 NULL
155867 +enable_so_ceph_sync_read_fndecl_23643 ceph_sync_read fndecl 0 23643 NULL
155868 +enable_so_map_urb_for_dma_fndecl_23647 map_urb_for_dma fndecl 0 23647 NULL
155869 +enable_so_size_crush_bucket_23650 size crush_bucket 0 23650 NULL
155870 +enable_so_piobcnt4k_qib_devdata_23655 piobcnt4k qib_devdata 0 23655 NULL
155871 +enable_so_viafb_bpp1_vardecl_viafbdev_c_23657 viafb_bpp1 vardecl_viafbdev.c 0 23657 NULL
155872 +enable_so_cmtp_send_interopmsg_fndecl_23659 cmtp_send_interopmsg fndecl 7 23659 NULL
155873 +enable_so_unix_stream_sendpage_fndecl_23660 unix_stream_sendpage fndecl 3-4 23660 NULL
155874 +enable_so_fat_length_msdos_sb_info_23672 fat_length msdos_sb_info 0 23672 NULL
155875 +enable_so_mlx5_core_access_reg_fndecl_23674 mlx5_core_access_reg fndecl 3-5 23674 NULL
155876 +enable_so_xfs_get_blocks_fndecl_23679 xfs_get_blocks fndecl 2 23679 NULL
155877 +enable_so_xfs_ialloc_next_ag_fndecl_23680 xfs_ialloc_next_ag fndecl 0 23680 NULL
155878 +enable_so_buf_size_vmci_ctx_chkpt_buf_info_23686 buf_size vmci_ctx_chkpt_buf_info 0 23686 NULL
155879 +enable_so_vxfs_bmap1_fndecl_23688 vxfs_bmap1 fndecl 0-2 23688 NULL
155880 +enable_so_aio_read_events_ring_fndecl_23689 aio_read_events_ring fndecl 3 23689 NULL
155881 +enable_so_aac_fib_adapter_complete_fndecl_23697 aac_fib_adapter_complete fndecl 2 23697 NULL
155882 +enable_so_size_ubifs_ino_node_23699 size ubifs_ino_node 0 23699 NULL
155883 +enable_so_rmtvaluelen_xfs_da_args_23709 rmtvaluelen xfs_da_args 0 23709 NULL nohasharray
155884 +enable_so_word_offset_bm_xfer_ctx_23709 word_offset bm_xfer_ctx 0 23709 &enable_so_rmtvaluelen_xfs_da_args_23709
155885 +enable_so_vgacon_scroll_fndecl_23715 vgacon_scroll fndecl 5 23715 NULL
155886 +enable_so_ath6kl_sdio_bmi_write_fndecl_23717 ath6kl_sdio_bmi_write fndecl 3 23717 NULL
155887 +enable_so_num_retune_mobile_texts_wm8904_priv_23719 num_retune_mobile_texts wm8904_priv 0 23719 NULL
155888 +enable_so_len_cmdbuf_t_23720 len cmdbuf_t 0 23720 NULL
155889 +enable_so_acpi_ev_create_gpe_block_fndecl_23722 acpi_ev_create_gpe_block fndecl 4 23722 NULL
155890 +enable_so_size_p9_fcall_23725 size p9_fcall 0 23725 NULL
155891 +enable_so_lbs_rdmac_read_fndecl_23729 lbs_rdmac_read fndecl 3 23729 NULL
155892 +enable_so_hugetlb_fault_fndecl_23735 hugetlb_fault fndecl 3 23735 NULL
155893 +enable_so_logfs_compress_fndecl_23746 logfs_compress fndecl 3-4 23746 NULL
155894 +enable_so__alloc_get_attr_desc_fndecl_23749 _alloc_get_attr_desc fndecl 2 23749 NULL
155895 +enable_so_writesize_acm_23756 writesize acm 0 23756 NULL
155896 +enable_so_dccp_manip_pkt_fndecl_23759 dccp_manip_pkt fndecl 4 23759 NULL
155897 +enable_so_fat_ent_bread_fndecl_23760 fat_ent_bread fndecl 4 23760 NULL
155898 +enable_so_fnic_max_trace_entries_vardecl_fnic_trace_c_23762 fnic_max_trace_entries vardecl_fnic_trace.c 0 23762 NULL
155899 +enable_so_i915_gem_create_fndecl_23768 i915_gem_create fndecl 3 23768 NULL
155900 +enable_so_dev_mem_seek_fndecl_23776 dev_mem_seek fndecl 2 23776 NULL nohasharray
155901 +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
155902 +enable_so_start_pnfs_block_dev_map_23776 start pnfs_block_dev_map 0 23776 &enable_so_rec_len_ext4_dir_entry_2_23776
155903 +enable_so_read_vbt_r0_fndecl_23780 read_vbt_r0 fndecl 1 23780 NULL
155904 +enable_so_tail_p9_rdir_23781 tail p9_rdir 0 23781 NULL nohasharray
155905 +enable_so_iwl_dbgfs_protection_mode_write_fndecl_23781 iwl_dbgfs_protection_mode_write fndecl 3 23781 &enable_so_tail_p9_rdir_23781
155906 +enable_so_count_uvc_debugfs_buffer_23783 count uvc_debugfs_buffer 0 23783 NULL
155907 +enable_so_rx_rx_defrag_end_read_fndecl_23786 rx_rx_defrag_end_read fndecl 3 23786 NULL
155908 +enable_so_read_buffer_length_lego_usb_tower_23787 read_buffer_length lego_usb_tower 0 23787 NULL
155909 +enable_so_nr_kvm_irq_routing_23794 nr kvm_irq_routing 0 23794 NULL
155910 +enable_so_ubi_attach_mtd_dev_fndecl_23797 ubi_attach_mtd_dev fndecl 3-4 23797 NULL nohasharray
155911 +enable_so_parity_devs_raid_type_23797 parity_devs raid_type 0 23797 &enable_so_ubi_attach_mtd_dev_fndecl_23797 nohasharray
155912 +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
155913 +enable_so_free_tiger_ch_23798 free tiger_ch 0 23798 NULL
155914 +enable_so_ra_offset_xfs_dir2_leaf_map_info_23799 ra_offset xfs_dir2_leaf_map_info 0 23799 NULL
155915 +enable_so_skip_tx_en_setup_fndecl_23801 skip_tx_en_setup fndecl 4 23801 NULL
155916 +enable_so_nr_node_ids_vardecl_23803 nr_node_ids vardecl 0 23803 NULL nohasharray
155917 +enable_so_rts_threshold_atmel_private_23803 rts_threshold atmel_private 0 23803 &enable_so_nr_node_ids_vardecl_23803 nohasharray
155918 +enable_so_nvme_trans_modesel_data_fndecl_23803 nvme_trans_modesel_data fndecl 4 23803 &enable_so_rts_threshold_atmel_private_23803
155919 +enable_so__find_next_bit_be_fndecl_23804 _find_next_bit_be fndecl 0 23804 NULL nohasharray
155920 +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
155921 +enable_so_sctp_skb_pull_fndecl_23806 sctp_skb_pull fndecl 2-0 23806 NULL
155922 +enable_so_cdrom_read_cdda_bpc_fndecl_23812 cdrom_read_cdda_bpc fndecl 4 23812 NULL nohasharray
155923 +enable_so_compat_sock_setsockopt_fndecl_23812 compat_sock_setsockopt fndecl 5 23812 &enable_so_cdrom_read_cdda_bpc_fndecl_23812
155924 +enable_so_storvsc_connect_to_vsp_fndecl_23813 storvsc_connect_to_vsp fndecl 2 23813 NULL
155925 +enable_so_carl9170_alloc_fndecl_23816 carl9170_alloc fndecl 1 23816 NULL
155926 +enable_so_ocfs2_get_refcount_tree_fndecl_23824 ocfs2_get_refcount_tree fndecl 2 23824 NULL
155927 +enable_so_ipath_make_rc_ack_fndecl_23825 ipath_make_rc_ack fndecl 4 23825 NULL
155928 +enable_so_intel_fake_agp_alloc_by_type_fndecl_23826 intel_fake_agp_alloc_by_type fndecl 1 23826 NULL nohasharray
155929 +enable_so_nbytes_ahash_request_23826 nbytes ahash_request 0 23826 &enable_so_intel_fake_agp_alloc_by_type_fndecl_23826
155930 +enable_so___xfs_dir3_free_read_fndecl_23827 __xfs_dir3_free_read fndecl 3 23827 NULL nohasharray
155931 +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
155932 +enable_so_vbi_v_stop_0_saa7134_tvnorm_23830 vbi_v_stop_0 saa7134_tvnorm 0 23830 NULL
155933 +enable_so_ext3_writeback_write_end_fndecl_23832 ext3_writeback_write_end fndecl 5-3 23832 NULL
155934 +enable_so_buffer_total_count_pvr2_stream_23834 buffer_total_count pvr2_stream 0 23834 NULL
155935 +enable_so_key_dm_region_23838 key dm_region 0 23838 NULL
155936 +enable_so_compressed_bio_alloc_fndecl_23839 compressed_bio_alloc fndecl 2 23839 NULL
155937 +enable_so_update_backups_fndecl_23840 update_backups fndecl 2 23840 NULL
155938 +enable_so_rx_buf_size_skge_port_23843 rx_buf_size skge_port 0 23843 NULL
155939 +enable_so_padzero_fndecl_23844 padzero fndecl 1 23844 NULL nohasharray
155940 +enable_so_sel_read_policyvers_fndecl_23844 sel_read_policyvers fndecl 3 23844 &enable_so_padzero_fndecl_23844
155941 +enable_so_osd_request_async_done_fndecl_23847 osd_request_async_done fndecl 2 23847 NULL nohasharray
155942 +enable_so_pci_fastcom335_setup_fndecl_23847 pci_fastcom335_setup fndecl 4 23847 &enable_so_osd_request_async_done_fndecl_23847 nohasharray
155943 +enable_so_tidcnt_qib_tid_info_23847 tidcnt qib_tid_info 0 23847 &enable_so_pci_fastcom335_setup_fndecl_23847
155944 +enable_so_efx_ef10_sriov_configure_fndecl_23850 efx_ef10_sriov_configure fndecl 2 23850 NULL nohasharray
155945 +enable_so_SpareReplUnitNum_nftl_uci0_23850 SpareReplUnitNum nftl_uci0 0 23850 &enable_so_efx_ef10_sriov_configure_fndecl_23850
155946 +enable_so_am_length_compat_xfs_attr_multiop_23853 am_length compat_xfs_attr_multiop 0 23853 NULL
155947 +enable_so_max_srq_wqes_mlx4_caps_23857 max_srq_wqes mlx4_caps 0 23857 NULL
155948 +enable_so_clutsize_linux_logo_23865 clutsize linux_logo 0 23865 NULL
155949 +enable_so_vdisplay_drm_display_mode_23870 vdisplay drm_display_mode 0 23870 NULL
155950 +enable_so_ohead_offs_ubifs_info_23876 ohead_offs ubifs_info 0 23876 NULL nohasharray
155951 +enable_so_c_data_offs_pvr2_ioread_23876 c_data_offs pvr2_ioread 0 23876 &enable_so_ohead_offs_ubifs_info_23876
155952 +enable_so_write_file_tpc_fndecl_23877 write_file_tpc fndecl 3 23877 NULL
155953 +enable_so_emulate_gp_fndecl_23878 emulate_gp fndecl 2 23878 NULL
155954 +enable_so_operand_2_len_ccp_ecc_modular_math_23882 operand_2_len ccp_ecc_modular_math 0 23882 NULL
155955 +enable_so_load_msg_fndecl_23884 load_msg fndecl 2 23884 NULL
155956 +enable_so_snd_korg1212_copy_to_fndecl_23887 snd_korg1212_copy_to fndecl 6 23887 NULL
155957 +enable_so_bytes_snd_dma_buffer_23890 bytes snd_dma_buffer 0 23890 NULL nohasharray
155958 +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
155959 +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
155960 +enable_so_in_base_pos_ceph_connection_23892 in_base_pos ceph_connection 0 23892 NULL
155961 +enable_so_vxfs_inode_by_name_fndecl_23899 vxfs_inode_by_name fndecl 0 23899 NULL nohasharray
155962 +enable_so___skb_to_sgvec_fndecl_23899 __skb_to_sgvec fndecl 0-4-3 23899 &enable_so_vxfs_inode_by_name_fndecl_23899
155963 +enable_so_block_log_squashfs_sb_info_23905 block_log squashfs_sb_info 0 23905 NULL
155964 +enable_so_status_adm8211_desc_23909 status adm8211_desc 0 23909 NULL nohasharray
155965 +enable_so_al_offset_drbd_md_23909 al_offset drbd_md 0 23909 &enable_so_status_adm8211_desc_23909
155966 +enable_so_ipath_verbs_send_fndecl_23910 ipath_verbs_send fndecl 5-3 23910 NULL
155967 +enable_so_num_pages_fuse_req_23911 num_pages fuse_req 0 23911 NULL
155968 +enable_so_avail_pebs_ubi_device_23916 avail_pebs ubi_device 0 23916 NULL
155969 +enable_so_data_len_iser_data_buf_23917 data_len iser_data_buf 0 23917 NULL
155970 +enable_so_rd_data_gfs2_rgrpd_23919 rd_data gfs2_rgrpd 0 23919 NULL
155971 +enable_so_nr_items_list_lru_one_23925 nr_items list_lru_one 0 23925 NULL
155972 +enable_so_p9_client_readdir_fndecl_23927 p9_client_readdir fndecl 0-3 23927 NULL
155973 +enable_so_disk_len_btrfs_ordered_extent_23932 disk_len btrfs_ordered_extent 0 23932 NULL
155974 +enable_so_tracing_trace_options_write_fndecl_23946 tracing_trace_options_write fndecl 3 23946 NULL
155975 +enable_so_btrfs_setxattr_fndecl_23956 btrfs_setxattr fndecl 4 23956 NULL
155976 +enable_so_init_q_fndecl_23959 init_q fndecl 4 23959 NULL
155977 +enable_so_input_buffer_size_vardecl_seq_midi_c_23961 input_buffer_size vardecl_seq_midi.c 0 23961 NULL
155978 +enable_so_rx_ip_align_efx_nic_23965 rx_ip_align efx_nic 0 23965 NULL nohasharray
155979 +enable_so_memstick_alloc_host_fndecl_23965 memstick_alloc_host fndecl 1 23965 &enable_so_rx_ip_align_efx_nic_23965
155980 +enable_so_memblock_add_range_fndecl_23974 memblock_add_range fndecl 2-3 23974 NULL nohasharray
155981 +enable_so_fw_status_len_wl1271_23974 fw_status_len wl1271 0 23974 &enable_so_memblock_add_range_fndecl_23974
155982 +enable_so_li_channels__DIVA_CAPI_ADAPTER_23977 li_channels _DIVA_CAPI_ADAPTER 0 23977 NULL
155983 +enable_so_xfs_buf_item_get_format_fndecl_23982 xfs_buf_item_get_format fndecl 2 23982 NULL
155984 +enable_so_last_txrate_idx_iwl_lq_sta_23983 last_txrate_idx iwl_lq_sta 0 23983 NULL
155985 +enable_so_vsync_len_fb_var_screeninfo_23987 vsync_len fb_var_screeninfo 0 23987 NULL
155986 +enable_so_length_acpi_object_string_23992 length acpi_object_string 0 23992 NULL
155987 +enable_so_EventDataLength__MPI2_EVENT_NOTIFICATION_REPLY_23993 EventDataLength _MPI2_EVENT_NOTIFICATION_REPLY 0 23993 NULL
155988 +enable_so_usb_stream_next_packet_size_fndecl_23994 usb_stream_next_packet_size fndecl 0 23994 NULL nohasharray
155989 +enable_so_pci_request_selected_regions_fndecl_23994 pci_request_selected_regions fndecl 0 23994 &enable_so_usb_stream_next_packet_size_fndecl_23994
155990 +enable_so___pn533_send_async_fndecl_24001 __pn533_send_async fndecl 5 24001 NULL
155991 +enable_so_anchor_udf_options_24004 anchor udf_options 0 24004 NULL
155992 +enable_so_dir_band_start_hpfs_super_block_24005 dir_band_start hpfs_super_block 0 24005 NULL
155993 +enable_so_truncate_setsize_fndecl_24013 truncate_setsize fndecl 2 24013 NULL
155994 +enable_so_ath6kl_wmi_bssfilter_cmd_fndecl_24014 ath6kl_wmi_bssfilter_cmd fndecl 2 24014 NULL
155995 +enable_so_vlan_id_bond_vlan_tag_24019 vlan_id bond_vlan_tag 0 24019 NULL
155996 +enable_so_minimum_pcc_memory_resource_24022 minimum pcc_memory_resource 0 24022 NULL
155997 +enable_so_iscsi_session_setup_fndecl_24023 iscsi_session_setup fndecl 4-5-3 24023 NULL
155998 +enable_so_fill_user_desc_fndecl_24029 fill_user_desc fndecl 2 24029 NULL
155999 +enable_so_bpp__sisbios_mode_24033 bpp _sisbios_mode 0 24033 NULL
156000 +enable_so_namelen_cramfs_inode_24036 namelen cramfs_inode 0 24036 NULL
156001 +enable_so_obj_size_request_sock_ops_24037 obj_size request_sock_ops 0 24037 NULL
156002 +enable_so_chunk_mask_geom_24040 chunk_mask geom 0 24040 NULL
156003 +enable_so_vpdma_create_desc_list_fndecl_24044 vpdma_create_desc_list fndecl 2 24044 NULL
156004 +enable_so_start_switch_path_24046 start switch_path 0 24046 NULL nohasharray
156005 +enable_so_buf_size_conf_writedata_24046 buf_size conf_writedata 0 24046 &enable_so_start_switch_path_24046
156006 +enable_so_erase_shift_mmc_card_24051 erase_shift mmc_card 0 24051 NULL nohasharray
156007 +enable_so_size_pernet_operations_24051 size pernet_operations 0 24051 &enable_so_erase_shift_mmc_card_24051
156008 +enable_so_osst_int_ioctl_fndecl_24052 osst_int_ioctl fndecl 4 24052 NULL nohasharray
156009 +enable_so_bNumEndpoints_usb_interface_descriptor_24052 bNumEndpoints usb_interface_descriptor 0 24052 &enable_so_osst_int_ioctl_fndecl_24052
156010 +enable_so_inode_minix3_dir_entry_24054 inode minix3_dir_entry 0 24054 NULL
156011 +enable_so_shdma_init_fndecl_24059 shdma_init fndecl 3 24059 NULL
156012 +enable_so_ws_row_winsize_24064 ws_row winsize 0 24064 NULL
156013 +enable_so_jbd2_journal_dirty_metadata_fndecl_24067 jbd2_journal_dirty_metadata fndecl 0 24067 NULL
156014 +enable_so_ebx_v86_regs_24072 ebx v86_regs 0 24072 NULL
156015 +enable_so_fnic_get_stats_data_fndecl_24075 fnic_get_stats_data fndecl 0 24075 NULL
156016 +enable_so_tpg_get_default_depth_target_core_fabric_ops_24077 tpg_get_default_depth target_core_fabric_ops 0 24077 NULL
156017 +enable_so_h_sync_strt_wid_aty128_crtc_24079 h_sync_strt_wid aty128_crtc 0 24079 NULL nohasharray
156018 +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
156019 +enable_so_last_mark_lbn_os_aux_s_24082 last_mark_lbn os_aux_s 0 24082 NULL
156020 +enable_so_sample_group_minstrel_ht_sta_24084 sample_group minstrel_ht_sta 0 24084 NULL nohasharray
156021 +enable_so_cylinders_ssfdcr_record_24084 cylinders ssfdcr_record 0 24084 &enable_so_sample_group_minstrel_ht_sta_24084
156022 +enable_so_gfs2_meta_new_fndecl_24087 gfs2_meta_new fndecl 2 24087 NULL nohasharray
156023 +enable_so_map_len_ipath_verbs_txreq_24087 map_len ipath_verbs_txreq 0 24087 &enable_so_gfs2_meta_new_fndecl_24087
156024 +enable_so_pat_pagerange_is_ram_fndecl_24089 pat_pagerange_is_ram fndecl 1-2 24089 NULL
156025 +enable_so_mw_count_ntb_transport_ctx_24094 mw_count ntb_transport_ctx 0 24094 NULL nohasharray
156026 +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
156027 +enable_so_irq_base_pm860x_chip_24096 irq_base pm860x_chip 0 24096 NULL
156028 +enable_so_sectors_md_rdev_24098 sectors md_rdev 0 24098 NULL
156029 +enable_so_capture_bufsize_vardecl_nm256_c_24100 capture_bufsize vardecl_nm256.c 0 24100 NULL
156030 +enable_so_dcbp_set_pad_bits_fndecl_24101 dcbp_set_pad_bits fndecl 2 24101 NULL
156031 +enable_so_bus_mtu_brcmf_usbdev_24102 bus_mtu brcmf_usbdev 0 24102 NULL
156032 +enable_so_max_ib_mtu_ipoib_dev_priv_24105 max_ib_mtu ipoib_dev_priv 0 24105 NULL nohasharray
156033 +enable_so_read_fifo_fndecl_24105 read_fifo fndecl 3 24105 &enable_so_max_ib_mtu_ipoib_dev_priv_24105
156034 +enable_so_add_td_to_list_fndecl_24113 add_td_to_list fndecl 3 24113 NULL nohasharray
156035 +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
156036 +enable_so_packet_multiplier_em28xx_24119 packet_multiplier em28xx 0 24119 NULL nohasharray
156037 +enable_so_rax_vmcb_save_area_24119 rax vmcb_save_area 0 24119 &enable_so_packet_multiplier_em28xx_24119
156038 +enable_so_size_sge_rspq_24120 size sge_rspq 0 24120 NULL
156039 +enable_so_srpt_build_cmd_rsp_fndecl_24126 srpt_build_cmd_rsp fndecl 0 24126 NULL
156040 +enable_so_um_idi_read_fndecl_24129 um_idi_read fndecl 3 24129 NULL
156041 +enable_so_ieee80211_assoc_success_fndecl_24131 ieee80211_assoc_success fndecl 4 24131 NULL
156042 +enable_so_radix_tree_locate_item_fndecl_24133 radix_tree_locate_item fndecl 0 24133 NULL
156043 +enable_so_num_snaps_ceph_snap_context_24136 num_snaps ceph_snap_context 0 24136 NULL nohasharray
156044 +enable_so_error_state_read_fndecl_24136 error_state_read fndecl 5-6 24136 &enable_so_num_snaps_ceph_snap_context_24136
156045 +enable_so_transp_elsa_hw_24137 transp elsa_hw 0 24137 NULL nohasharray
156046 +enable_so_scif_user_send_fndecl_24137 scif_user_send fndecl 3 24137 &enable_so_transp_elsa_hw_24137
156047 +enable_so_key_update_fndecl_24140 key_update fndecl 3 24140 NULL
156048 +enable_so_segs_wa_xfer_24141 segs wa_xfer 0 24141 NULL nohasharray
156049 +enable_so_sdram_size_solo_dev_24141 sdram_size solo_dev 0 24141 &enable_so_segs_wa_xfer_24141 nohasharray
156050 +enable_so_elem_size_v4l2_ctrl_config_24141 elem_size v4l2_ctrl_config 0 24141 &enable_so_sdram_size_solo_dev_24141
156051 +enable_so_t_task_nolb_se_cmd_24142 t_task_nolb se_cmd 0 24142 NULL
156052 +enable_so_tegra_clk_init_fndecl_24143 tegra_clk_init fndecl 3-2 24143 NULL
156053 +enable_so_len_event_data_24144 len event_data 0 24144 NULL
156054 +enable_so_fat_fat_length_fat_bios_param_block_24145 fat_fat_length fat_bios_param_block 0 24145 NULL
156055 +enable_so_initial_tsn_sctp_inithdr_host_24149 initial_tsn sctp_inithdr_host 0 24149 NULL
156056 +enable_so_lro_add_page_fndecl_24166 lro_add_page fndecl 4 24166 NULL
156057 +enable_so___alloc_extent_buffer_fndecl_24167 __alloc_extent_buffer fndecl 3-2 24167 NULL nohasharray
156058 +enable_so_ppp_sync_input_fndecl_24167 ppp_sync_input fndecl 4 24167 &enable_so___alloc_extent_buffer_fndecl_24167
156059 +enable_so_vd_tlb_preload_count_gru_vma_data_24168 vd_tlb_preload_count gru_vma_data 0 24168 NULL
156060 +enable_so_vram_start_radeon_mc_24170 vram_start radeon_mc 0 24170 NULL
156061 +enable_so_bpp_drm_mode_create_dumb_24171 bpp drm_mode_create_dumb 0 24171 NULL
156062 +enable_so_drop_count_codel_stats_24173 drop_count codel_stats 0 24173 NULL nohasharray
156063 +enable_so_ttymajor_vardecl_synclink_c_24173 ttymajor vardecl_synclink.c 0 24173 &enable_so_drop_count_codel_stats_24173
156064 +enable_so_top_v4l2_rect_24176 top v4l2_rect 0 24176 NULL
156065 +enable_so_ext4_split_extent_fndecl_24180 ext4_split_extent fndecl 0 24180 NULL
156066 +enable_so_o2net_send_message_vec_fndecl_24188 o2net_send_message_vec fndecl 4 24188 NULL nohasharray
156067 +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
156068 +enable_so_iv_size_crypt_config_24199 iv_size crypt_config 0 24199 NULL
156069 +enable_so_kernel_sendpage_fndecl_24200 kernel_sendpage fndecl 0-4 24200 NULL nohasharray
156070 +enable_so_drop_unencrypted_local_info_24200 drop_unencrypted local_info 0 24200 &enable_so_kernel_sendpage_fndecl_24200 nohasharray
156071 +enable_so_play_video_cb_fndecl_24200 play_video_cb fndecl 2 24200 &enable_so_drop_unencrypted_local_info_24200 nohasharray
156072 +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
156073 +enable_so_yenta_search_res_fndecl_24211 yenta_search_res fndecl 3 24211 NULL
156074 +enable_so_erase_size_falcon_spi_device_24212 erase_size falcon_spi_device 0 24212 NULL
156075 +enable_so_amdgpu_benchmark_move_fndecl_24214 amdgpu_benchmark_move fndecl 2 24214 NULL
156076 +enable_so_size_drm_gem_object_24219 size drm_gem_object 0 24219 NULL
156077 +enable_so_stride_usbatm_channel_24224 stride usbatm_channel 0 24224 NULL
156078 +enable_so_carl9170_cmd_buf_fndecl_24229 carl9170_cmd_buf fndecl 3 24229 NULL
156079 +enable_so_get_ramdisk_size_fndecl_24233 get_ramdisk_size fndecl 0 24233 NULL
156080 +enable_so_udf_process_sequence_fndecl_24235 udf_process_sequence fndecl 2 24235 NULL
156081 +enable_so_num_tx_queues_fm10k_intfc_24236 num_tx_queues fm10k_intfc 0 24236 NULL
156082 +enable_so___nodes_weight_fndecl_24239 __nodes_weight fndecl 0 24239 NULL
156083 +enable_so_common_qdepth_blogic_adapter_24241 common_qdepth blogic_adapter 0 24241 NULL
156084 +enable_so_pcicfg_base_sst_pdata_24243 pcicfg_base sst_pdata 0 24243 NULL
156085 +enable_so_vlan_qos_vlan_ioctl_args_24244 vlan_qos vlan_ioctl_args 0 24244 NULL nohasharray
156086 +enable_so_qi_dqchunklen_xfs_quotainfo_24244 qi_dqchunklen xfs_quotainfo 0 24244 &enable_so_vlan_qos_vlan_ioctl_args_24244
156087 +enable_so_vmbus_sendpacket_mpb_desc_fndecl_24250 vmbus_sendpacket_mpb_desc fndecl 3-5 24250 NULL
156088 +enable_so_inode_ext2_dir_entry_2_24254 inode ext2_dir_entry_2 0 24254 NULL
156089 +enable_so_move_pfn_range_left_fndecl_24256 move_pfn_range_left fndecl 3-4 24256 NULL
156090 +enable_so_ali1535_offset_vardecl_i2c_ali1535_c_24257 ali1535_offset vardecl_i2c-ali1535.c 0 24257 NULL
156091 +enable_so_rts_thresh_orinoco_private_24258 rts_thresh orinoco_private 0 24258 NULL
156092 +enable_so_in_wm8994_fll_config_24259 in wm8994_fll_config 0 24259 NULL
156093 +enable_so_width_vpe_q_data_24262 width vpe_q_data 0 24262 NULL
156094 +enable_so_src_length_btrfs_ioctl_clone_range_args_24266 src_length btrfs_ioctl_clone_range_args 0 24266 NULL
156095 +enable_so_crtc_hblank_end_drm_display_mode_24268 crtc_hblank_end drm_display_mode 0 24268 NULL
156096 +enable_so_totalsize_microcode_header_intel_24274 totalsize microcode_header_intel 0 24274 NULL
156097 +enable_so_blockshift_alauda_card_info_24288 blockshift alauda_card_info 0 24288 NULL
156098 +enable_so_bop_delete_nilfs_bmap_operations_24290 bop_delete nilfs_bmap_operations 0 24290 NULL
156099 +enable_so__do_truncate_fndecl_24296 _do_truncate fndecl 2 24296 NULL
156100 +enable_so_sg_copy_buffer_fndecl_24297 sg_copy_buffer fndecl 0-5-4 24297 NULL
156101 +enable_so_smk_write_cipso2_fndecl_24302 smk_write_cipso2 fndecl 3 24302 NULL
156102 +enable_so_rf_our_slot_rcom_config_24309 rf_our_slot rcom_config 0 24309 NULL
156103 +enable_so_hdlcdev_rx_fndecl_24310 hdlcdev_rx fndecl 3 24310 NULL nohasharray
156104 +enable_so_ocfs2_info_scan_inode_alloc_fndecl_24310 ocfs2_info_scan_inode_alloc fndecl 3 24310 &enable_so_hdlcdev_rx_fndecl_24310 nohasharray
156105 +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
156106 +enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 udc_get_ppbdu_rxbytes fndecl 0 24313 NULL nohasharray
156107 +enable_so_dm_accept_partial_bio_fndecl_24313 dm_accept_partial_bio fndecl 2 24313 &enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 nohasharray
156108 +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
156109 +enable_so_pch_udc_create_dma_chain_fndecl_24314 pch_udc_create_dma_chain fndecl 3 24314 NULL nohasharray
156110 +enable_so_pstore_file_llseek_fndecl_24314 pstore_file_llseek fndecl 2 24314 &enable_so_pch_udc_create_dma_chain_fndecl_24314
156111 +enable_so_byte_per_page_nand_jedec_params_24315 byte_per_page nand_jedec_params 0 24315 NULL
156112 +enable_so_remove_monitor_info_fndecl_24319 remove_monitor_info fndecl 3 24319 NULL
156113 +enable_so_iova_qib_mregion_24323 iova qib_mregion 0 24323 NULL
156114 +enable_so_xennet_make_txreqs_fndecl_24328 xennet_make_txreqs fndecl 5-6 24328 NULL
156115 +enable_so_zlib_deflate_workspacesize_fndecl_24330 zlib_deflate_workspacesize fndecl 0-2-1 24330 NULL
156116 +enable_so_num_rports_bfa_iocfc_fwcfg_s_24334 num_rports bfa_iocfc_fwcfg_s 0 24334 NULL
156117 +enable_so_next_offset_ceph_file_info_24335 next_offset ceph_file_info 0 24335 NULL nohasharray
156118 +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
156119 +enable_so_in_iso_pipe_usbtest_dev_24336 in_iso_pipe usbtest_dev 0 24336 NULL
156120 +enable_so_word2_lpfc_rcqe_24338 word2 lpfc_rcqe 0 24338 NULL
156121 +enable_so_smp_send_cmd_fndecl_24339 smp_send_cmd fndecl 3 24339 NULL
156122 +enable_so_flags_rtl8187_rx_hdr_24340 flags rtl8187_rx_hdr 0 24340 NULL
156123 +enable_so_airo_change_mtu_fndecl_24345 airo_change_mtu fndecl 2 24345 NULL
156124 +enable_so_stride_simplefb_params_24347 stride simplefb_params 0 24347 NULL
156125 +enable_so_ocfs2_validate_meta_ecc_bhs_fndecl_24348 ocfs2_validate_meta_ecc_bhs fndecl 0 24348 NULL
156126 +enable_so_sd_inptrs_gfs2_sbd_24356 sd_inptrs gfs2_sbd 0 24356 NULL
156127 +enable_so_start_isoc_chain_fndecl_24358 start_isoc_chain fndecl 4-2 24358 NULL
156128 +enable_so_ieee_il3945_rate_info_24363 ieee il3945_rate_info 0 24363 NULL
156129 +enable_so_dst_h_yuv_frame_info_24364 dst_h yuv_frame_info 0 24364 NULL
156130 +enable_so_ls_recover_size_lm_lockstruct_24365 ls_recover_size lm_lockstruct 0 24365 NULL
156131 +enable_so_len_ath6kl_mgmt_buff_24368 len ath6kl_mgmt_buff 0 24368 NULL
156132 +enable_so_atr_len_cm4000_dev_24376 atr_len cm4000_dev 0 24376 NULL
156133 +enable_so_virt_begin_dm_thin_new_mapping_24377 virt_begin dm_thin_new_mapping 0 24377 NULL
156134 +enable_so_sco_sock_setsockopt_fndecl_24379 sco_sock_setsockopt fndecl 5 24379 NULL
156135 +enable_so_wqe_shift_mthca_srq_24381 wqe_shift mthca_srq 0 24381 NULL
156136 +enable_so_read_reg_c_can_priv_24389 read_reg c_can_priv 0 24389 NULL
156137 +enable_so_demote_then_promote_fndecl_24392 demote_then_promote fndecl 5-3-4 24392 NULL
156138 +enable_so_ext4_rename_dir_finish_fndecl_24394 ext4_rename_dir_finish fndecl 3 24394 NULL
156139 +enable_so_tail_sk_buff_24399 tail sk_buff 0 24399 NULL
156140 +enable_so_fw_base_sst_pdata_24402 fw_base sst_pdata 0 24402 NULL
156141 +enable_so_compat_sys_preadv_fndecl_24404 compat_sys_preadv fndecl 3 24404 NULL
156142 +enable_so_max_frame_size_slgt_info_24405 max_frame_size slgt_info 0 24405 NULL
156143 +enable_so_ocfs2_alloc_write_ctxt_fndecl_24406 ocfs2_alloc_write_ctxt fndecl 3 24406 NULL nohasharray
156144 +enable_so_hfs_ext_find_block_fndecl_24406 hfs_ext_find_block fndecl 0 24406 &enable_so_ocfs2_alloc_write_ctxt_fndecl_24406
156145 +enable_so_completed_vringh_24407 completed vringh 0 24407 NULL
156146 +enable_so_max_scbs_hw_profile_24409 max_scbs hw_profile 0 24409 NULL
156147 +enable_so_smk_write_load_self2_fndecl_24412 smk_write_load_self2 fndecl 3 24412 NULL
156148 +enable_so_start_soundfont_sample_info_24413 start soundfont_sample_info 0 24413 NULL
156149 +enable_so_mtu_ArcProto_24415 mtu ArcProto 0 24415 NULL
156150 +enable_so_srq_entry_sz_mthca_dev_lim_24422 srq_entry_sz mthca_dev_lim 0 24422 NULL
156151 +enable_so_ni_gpct_device_construct_fndecl_24433 ni_gpct_device_construct fndecl 5 24433 NULL
156152 +enable_so_init_cdrom_command_fndecl_24438 init_cdrom_command fndecl 3 24438 NULL nohasharray
156153 +enable_so_size_tty_buffer_24438 size tty_buffer 0 24438 &enable_so_init_cdrom_command_fndecl_24438
156154 +enable_so_usHBlanking_Time__ATOM_DTD_FORMAT_24440 usHBlanking_Time _ATOM_DTD_FORMAT 0 24440 NULL
156155 +enable_so_fuse_request_alloc_nofs_fndecl_24442 fuse_request_alloc_nofs fndecl 1 24442 NULL
156156 +enable_so_dwTransferLength_wa_xfer_result_24445 dwTransferLength wa_xfer_result 0 24445 NULL
156157 +enable_so_ptlrpc_lprocfs_nrs_seq_write_fndecl_24446 ptlrpc_lprocfs_nrs_seq_write fndecl 3 24446 NULL
156158 +enable_so_s_last_pseg_nilfs_super_block_24457 s_last_pseg nilfs_super_block 0 24457 NULL
156159 +enable_so_rtlwifi_rate_mapping_fndecl_24458 rtlwifi_rate_mapping fndecl 0 24458 NULL
156160 +enable_so_wm8996_set_fll_fndecl_24459 wm8996_set_fll fndecl 4-5 24459 NULL
156161 +enable_so_nvif_notify_new_fndecl_24460 nvif_notify_new fndecl 6-7 24460 NULL
156162 +enable_so_drbd_bm_find_next_fndecl_24464 drbd_bm_find_next fndecl 0-2 24464 NULL nohasharray
156163 +enable_so_cfs_hash_bkt_size_fndecl_24464 cfs_hash_bkt_size fndecl 0 24464 &enable_so_drbd_bm_find_next_fndecl_24464
156164 +enable_so_remap_to_cache_fndecl_24467 remap_to_cache fndecl 3 24467 NULL
156165 +enable_so_unlink_queued_fndecl_24470 unlink_queued fndecl 4-2-3 24470 NULL
156166 +enable_so_rq_db_page_mthca_create_qp_24471 rq_db_page mthca_create_qp 0 24471 NULL
156167 +enable_so_get_filter_fndecl_24472 get_filter fndecl 0 24472 NULL
156168 +enable_so_qset_remove_urb_fndecl_24474 qset_remove_urb fndecl 4 24474 NULL nohasharray
156169 +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
156170 +enable_so_dtim_interval_read_fndecl_24477 dtim_interval_read fndecl 3 24477 NULL
156171 +enable_so_elog_base_vardecl_acpi_extlog_c_24485 elog_base vardecl_acpi_extlog.c 0 24485 NULL
156172 +enable_so_WriteBlock_fndecl_24489 WriteBlock fndecl 3 24489 NULL nohasharray
156173 +enable_so_shim_phy_add_intel_sst_drv_24489 shim_phy_add intel_sst_drv 0 24489 &enable_so_WriteBlock_fndecl_24489
156174 +enable_so_sensor_yres_em28xx_v4l2_24490 sensor_yres em28xx_v4l2 0 24490 NULL
156175 +enable_so_mem_rx_free_mem_blks_read_fndecl_24496 mem_rx_free_mem_blks_read fndecl 3 24496 NULL nohasharray
156176 +enable_so_len_ceph_crypto_key_24496 len ceph_crypto_key 0 24496 &enable_so_mem_rx_free_mem_blks_read_fndecl_24496 nohasharray
156177 +enable_so_drv_block_st_partstat_24496 drv_block st_partstat 0 24496 &enable_so_len_ceph_crypto_key_24496
156178 +enable_so_buf_sz_rx_info_24497 buf_sz rx_info 0 24497 NULL
156179 +enable_so_default_priority_binder_proc_24499 default_priority binder_proc 0 24499 NULL
156180 +enable_so_iwl_mvm_hwrate_to_tx_status_fndecl_24501 iwl_mvm_hwrate_to_tx_status fndecl 1 24501 NULL nohasharray
156181 +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
156182 +enable_so_sys_sendfile64_fndecl_24508 sys_sendfile64 fndecl 4 24508 NULL
156183 +enable_so_octeon_allocate_device_fndecl_24509 octeon_allocate_device fndecl 2 24509 NULL
156184 +enable_so_max_size_usb_fifo_24517 max_size usb_fifo 0 24517 NULL
156185 +enable_so_vc_y_vc_data_24521 vc_y vc_data 0 24521 NULL
156186 +enable_so_size_firmware_24525 size firmware 0 24525 NULL
156187 +enable_so_rtl8169_try_rx_copy_fndecl_24530 rtl8169_try_rx_copy fndecl 3 24530 NULL nohasharray
156188 +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
156189 +enable_so_max_sgl_entries_vardecl_mpt3sas_base_c_24531 max_sgl_entries vardecl_mpt3sas_base.c 0 24531 NULL
156190 +enable_so_ipath_resize_cq_fndecl_24539 ipath_resize_cq fndecl 2 24539 NULL
156191 +enable_so_dvb_video_write_fndecl_24545 dvb_video_write fndecl 3 24545 NULL
156192 +enable_so_width_pcm_format_data_24546 width pcm_format_data 0 24546 NULL
156193 +enable_so_xfs_xattr_set_fndecl_24547 xfs_xattr_set fndecl 4 24547 NULL
156194 +enable_so_size_memblock_region_24555 size memblock_region 0 24555 NULL
156195 +enable_so_log_len_vardecl_verifier_c_24556 log_len vardecl_verifier.c 0 24556 NULL
156196 +enable_so_boot_size_il4965_firmware_pieces_24557 boot_size il4965_firmware_pieces 0 24557 NULL
156197 +enable_so_ocfs2_test_inode_bit_fndecl_24558 ocfs2_test_inode_bit fndecl 2 24558 NULL
156198 +enable_so_residual_count_se_cmd_24562 residual_count se_cmd 0 24562 NULL
156199 +enable_so_blksize_nbd_device_24565 blksize nbd_device 0 24565 NULL
156200 +enable_so_ddp_set_map_fndecl_24572 ddp_set_map fndecl 4 24572 NULL
156201 +enable_so_port_subport_cnt_ipath_portdata_24576 port_subport_cnt ipath_portdata 0 24576 NULL nohasharray
156202 +enable_so_blk_extent_info_24576 blk extent_info 0 24576 &enable_so_port_subport_cnt_ipath_portdata_24576
156203 +enable_so_kvm_cpu_get_interrupt_fndecl_24580 kvm_cpu_get_interrupt fndecl 0 24580 NULL
156204 +enable_so_size_ceph_mds_caps_24581 size ceph_mds_caps 0 24581 NULL
156205 +enable_so_pkt_size_gspca_dev_24583 pkt_size gspca_dev 0 24583 NULL
156206 +enable_so_joydev_handle_JSIOCSBTNMAP_fndecl_24584 joydev_handle_JSIOCSBTNMAP fndecl 3 24584 NULL
156207 +enable_so_pipeline_hs_tx_stat_fifo_int_read_fndecl_24585 pipeline_hs_tx_stat_fifo_int_read fndecl 3 24585 NULL nohasharray
156208 +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
156209 +enable_so_ebcnt_vardecl_oobtest_c_24588 ebcnt vardecl_oobtest.c 0 24588 NULL
156210 +enable_so_chunk_shift_geom_24589 chunk_shift geom 0 24589 NULL
156211 +enable_so_st_int_write_fndecl_24593 st_int_write fndecl 0 24593 NULL
156212 +enable_so_img_width_zoran_jpg_settings_24594 img_width zoran_jpg_settings 0 24594 NULL
156213 +enable_so_head_TxFifo_24599 head TxFifo 0 24599 NULL nohasharray
156214 +enable_so_ea_size_l_fnode_24599 ea_size_l fnode 0 24599 &enable_so_head_TxFifo_24599
156215 +enable_so_dsp_cmx_send_member_fndecl_24602 dsp_cmx_send_member fndecl 2 24602 NULL
156216 +enable_so_root_level_kvm_mmu_24604 root_level kvm_mmu 0 24604 NULL
156217 +enable_so_ubifs_add_bud_to_log_fndecl_24607 ubifs_add_bud_to_log fndecl 4 24607 NULL
156218 +enable_so_raid_disks_mddev_24609 raid_disks mddev 0 24609 NULL
156219 +enable_so_datalen_ip_tunnel_prl_24610 datalen ip_tunnel_prl 0 24610 NULL
156220 +enable_so_unix_bind_fndecl_24615 unix_bind fndecl 3 24615 NULL
156221 +enable_so_irda_connect_indication_fndecl_24616 irda_connect_indication fndecl 4-5 24616 NULL
156222 +enable_so_dm_read_fndecl_24617 dm_read fndecl 3 24617 NULL
156223 +enable_so_ntfs_new_extent_inode_fndecl_24624 ntfs_new_extent_inode fndecl 2 24624 NULL
156224 +enable_so_fs_path_add_fndecl_24627 fs_path_add fndecl 3 24627 NULL
156225 +enable_so_qlcnic_process_rcv_diag_fndecl_24628 qlcnic_process_rcv_diag fndecl 3 24628 NULL
156226 +enable_so_compat_sys_fcntl_fndecl_24629 compat_sys_fcntl fndecl 3 24629 NULL
156227 +enable_so_xsd_read_fndecl_24630 xsd_read fndecl 3 24630 NULL
156228 +enable_so_elan_i2c_read_block_fndecl_24636 elan_i2c_read_block fndecl 4 24636 NULL nohasharray
156229 +enable_so_txq_depth_bnad_24636 txq_depth bnad 0 24636 &enable_so_elan_i2c_read_block_fndecl_24636
156230 +enable_so_data_mcp_cmd_response_24644 data mcp_cmd_response 0 24644 NULL
156231 +enable_so_array_len_xdr_array2_desc_24652 array_len xdr_array2_desc 0 24652 NULL
156232 +enable_so_cur_sg_ore_per_dev_state_24654 cur_sg ore_per_dev_state 0 24654 NULL
156233 +enable_so_intr_cnt_vxgedev_24656 intr_cnt vxgedev 0 24656 NULL
156234 +enable_so_offset_musb_qh_24658 offset musb_qh 0 24658 NULL
156235 +enable_so_lcd_hsync_dly_atyfb_par_24660 lcd_hsync_dly atyfb_par 0 24660 NULL
156236 +enable_so_out_iso_pipe_usbtest_dev_24664 out_iso_pipe usbtest_dev 0 24664 NULL
156237 +enable_so_spidev_read_fndecl_24668 spidev_read fndecl 3 24668 NULL nohasharray
156238 +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
156239 +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
156240 +enable_so_rx_pipe_brcmf_usbdev_info_24671 rx_pipe brcmf_usbdev_info 0 24671 NULL
156241 +enable_so_id_platform_device_info_24673 id platform_device_info 0 24673 NULL nohasharray
156242 +enable_so_pinctrl_utils_reserve_map_fndecl_24673 pinctrl_utils_reserve_map fndecl 5 24673 &enable_so_id_platform_device_info_24673
156243 +enable_so_uhci_fixup_short_transfer_fndecl_24676 uhci_fixup_short_transfer fndecl 0 24676 NULL
156244 +enable_so_src_width_tpg_data_24681 src_width tpg_data 0 24681 NULL nohasharray
156245 +enable_so_arizona_calc_fll_fndecl_24681 arizona_calc_fll fndecl 3 24681 &enable_so_src_width_tpg_data_24681
156246 +enable_so_inet_insert_ifa_fndecl_24688 inet_insert_ifa fndecl 0 24688 NULL
156247 +enable_so_full_height_mxr_crop_24694 full_height mxr_crop 0 24694 NULL
156248 +enable_so_ocfs2_split_tree_fndecl_24695 ocfs2_split_tree fndecl 5 24695 NULL
156249 +enable_so_transport_generic_map_mem_to_cmd_fndecl_24700 transport_generic_map_mem_to_cmd fndecl 3 24700 NULL
156250 +enable_so_rio_request_inb_dbell_fndecl_24701 rio_request_inb_dbell fndecl 4-3 24701 NULL
156251 +enable_so_size_aper_size_info_16_24703 size aper_size_info_16 0 24703 NULL
156252 +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
156253 +enable_so_start_qla_flt_region_24707 start qla_flt_region 0 24707 NULL
156254 +enable_so_queue_depth_blk_mq_tag_set_24719 queue_depth blk_mq_tag_set 0 24719 NULL
156255 +enable_so_qxl_ttm_tt_create_fndecl_24720 qxl_ttm_tt_create fndecl 2 24720 NULL
156256 +enable_so_bfs_get_block_fndecl_24726 bfs_get_block fndecl 2 24726 NULL
156257 +enable_so_VBP_kyrofb_info_24731 VBP kyrofb_info 0 24731 NULL nohasharray
156258 +enable_so_HiSax_readstatus_fndecl_24731 HiSax_readstatus fndecl 2 24731 &enable_so_VBP_kyrofb_info_24731
156259 +enable_so_next_idtentry_24734 next idtentry 0 24734 NULL
156260 +enable_so_sb_pquotino_xfs_sb_24739 sb_pquotino xfs_sb 0 24739 NULL
156261 +enable_so_shmem_undo_range_fndecl_24742 shmem_undo_range fndecl 2-3 24742 NULL
156262 +enable_so_smk_read_direct_fndecl_24744 smk_read_direct fndecl 3 24744 NULL
156263 +enable_so_set_ltab_fndecl_24745 set_ltab fndecl 3 24745 NULL
156264 +enable_so_ud_putcs_fndecl_24751 ud_putcs fndecl 4-6-5 24751 NULL
156265 +enable_so_data_dotdot_offset_xfs_dir_ops_24758 data_dotdot_offset xfs_dir_ops 0 24758 NULL
156266 +enable_so_n_ao_urbs_usbduxsigma_private_24760 n_ao_urbs usbduxsigma_private 0 24760 NULL
156267 +enable_so_inftl_read_oob_fndecl_24761 inftl_read_oob fndecl 2-3 24761 NULL
156268 +enable_so_pending_deflate_state_24766 pending deflate_state 0 24766 NULL
156269 +enable_so_i_disksize_ext3_inode_info_24774 i_disksize ext3_inode_info 0 24774 NULL
156270 +enable_so_xlog_state_switch_iclogs_fndecl_24782 xlog_state_switch_iclogs fndecl 3 24782 NULL
156271 +enable_so_gx1_read_conf_reg_fndecl_24794 gx1_read_conf_reg fndecl 0 24794 NULL nohasharray
156272 +enable_so_gnttab_expand_fndecl_24794 gnttab_expand fndecl 1 24794 &enable_so_gx1_read_conf_reg_fndecl_24794
156273 +enable_so_afs_proc_rootcell_write_fndecl_24797 afs_proc_rootcell_write fndecl 3 24797 NULL
156274 +enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801 usHSyncWidth _ATOM_DTD_FORMAT 0 24801 NULL nohasharray
156275 +enable_so_index_vardecl_atiixp_c_24801 index vardecl_atiixp.c 0 24801 &enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801
156276 +enable_so_mprotect_fixup_fndecl_24803 mprotect_fixup fndecl 4-3 24803 NULL nohasharray
156277 +enable_so_write_file_tx99_fndecl_24803 write_file_tx99 fndecl 3 24803 &enable_so_mprotect_fixup_fndecl_24803
156278 +enable_so___read_extent_tree_block_fndecl_24804 __read_extent_tree_block fndecl 4 24804 NULL
156279 +enable_so_num_q_vectors_i40e_vsi_24807 num_q_vectors i40e_vsi 0 24807 NULL
156280 +enable_so_ceph_auth_build_hello_fndecl_24808 ceph_auth_build_hello fndecl 0 24808 NULL
156281 +enable_so_analog_ep_isoc_em28xx_24810 analog_ep_isoc em28xx 0 24810 NULL
156282 +enable_so_ubi_io_write_fndecl_24813 ubi_io_write fndecl 5-4 24813 NULL nohasharray
156283 +enable_so_media_entity_init_fndecl_24813 media_entity_init fndecl 2-4 24813 &enable_so_ubi_io_write_fndecl_24813
156284 +enable_so_cdc_ncm_eth_hlen_fndecl_24814 cdc_ncm_eth_hlen fndecl 0 24814 NULL nohasharray
156285 +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
156286 +enable_so_RxLastCount_via_ircc_cb_24815 RxLastCount via_ircc_cb 0 24815 NULL nohasharray
156287 +enable_so_array_resync_offset_dm_raid_superblock_24815 array_resync_offset dm_raid_superblock 0 24815 &enable_so_RxLastCount_via_ircc_cb_24815
156288 +enable_so_HBP_kyrofb_info_24818 HBP kyrofb_info 0 24818 NULL
156289 +enable_so_readahead_cached_dev_24826 readahead cached_dev 0 24826 NULL
156290 +enable_so_fq_codel_zalloc_fndecl_24833 fq_codel_zalloc fndecl 1 24833 NULL
156291 +enable_so_param_size_preview_update_24836 param_size preview_update 0 24836 NULL
156292 +enable_so_alloc_fddidev_fndecl_24837 alloc_fddidev fndecl 1 24837 NULL
156293 +enable_so_lprocfs_alloc_md_stats_fndecl_24846 lprocfs_alloc_md_stats fndecl 2 24846 NULL
156294 +enable_so_space_id_acpi_object_region_24848 space_id acpi_object_region 0 24848 NULL
156295 +enable_so_cx88_alsa_dma_init_fndecl_24851 cx88_alsa_dma_init fndecl 2 24851 NULL nohasharray
156296 +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
156297 +enable_so_wLength_usbdevfs_ctrltransfer_24851 wLength usbdevfs_ctrltransfer 0 24851 &enable_so_acpi_ut_create_string_object_fndecl_24851
156298 +enable_so_pa_len_ext4_prealloc_space_24852 pa_len ext4_prealloc_space 0 24852 NULL
156299 +enable_so_body_len_vardecl_initramfs_c_24853 body_len vardecl_initramfs.c 0 24853 NULL
156300 +enable_so_usbhs_pipe_config_update_fndecl_24856 usbhs_pipe_config_update fndecl 4 24856 NULL
156301 +enable_so_compat_sys_process_vm_readv_fndecl_24861 compat_sys_process_vm_readv fndecl 5-3 24861 NULL nohasharray
156302 +enable_so_bgpio_init_fndecl_24861 bgpio_init fndecl 3 24861 &enable_so_compat_sys_process_vm_readv_fndecl_24861
156303 +enable_so___videobuf_copy_to_user_fndecl_24876 __videobuf_copy_to_user fndecl 4-0 24876 NULL
156304 +enable_so_x86_cache_alignment_cpuinfo_x86_24878 x86_cache_alignment cpuinfo_x86 0 24878 NULL
156305 +enable_so_rx_buf_per_pkt_vmxnet3_adapter_24879 rx_buf_per_pkt vmxnet3_adapter 0 24879 NULL
156306 +enable_so_zone_count_sm_ftl_24881 zone_count sm_ftl 0 24881 NULL
156307 +enable_so_pipeline_csum_to_rx_xfer_swi_read_fndecl_24888 pipeline_csum_to_rx_xfer_swi_read fndecl 3 24888 NULL
156308 +enable_so_i_truncate_size_ceph_inode_info_24902 i_truncate_size ceph_inode_info 0 24902 NULL
156309 +enable_so_memweight_fndecl_24905 memweight fndecl 0 24905 NULL
156310 +enable_so_io_limit_vardecl_at24_c_24907 io_limit vardecl_at24.c 0 24907 NULL
156311 +enable_so_iscsi_sw_tcp_send_linear_data_prep_fndecl_24908 iscsi_sw_tcp_send_linear_data_prep fndecl 3 24908 NULL
156312 +enable_so_ceph_tcp_recvpage_fndecl_24910 ceph_tcp_recvpage fndecl 0-4 24910 NULL nohasharray
156313 +enable_so_buffer_len_stats_debug_info_24910 buffer_len stats_debug_info 0 24910 &enable_so_ceph_tcp_recvpage_fndecl_24910
156314 +enable_so_len_fb_cmap_24911 len fb_cmap 0 24911 NULL
156315 +enable_so_num_tx_queues_igb_adapter_24917 num_tx_queues igb_adapter 0 24917 NULL
156316 +enable_so_data_len_ib_ucm_info_24922 data_len ib_ucm_info 0 24922 NULL
156317 +enable_so_scif_rb_init_fndecl_24923 scif_rb_init fndecl 5 24923 NULL
156318 +enable_so_tcp_mtu_to_mss_fndecl_24925 tcp_mtu_to_mss fndecl 0-2 24925 NULL
156319 +enable_so_assign_eip_far_fndecl_24930 assign_eip_far fndecl 2 24930 NULL
156320 +enable_so_current_area_pstore_24931 current_area pstore 0 24931 NULL
156321 +enable_so_max_sectors_per_io_vardecl_megaraid_c_24934 max_sectors_per_io vardecl_megaraid.c 0 24934 NULL
156322 +enable_so_unxz_fndecl_24936 unxz fndecl 2 24936 NULL
156323 +enable_so_rtl_download_firmware_fndecl_24937 rtl_download_firmware fndecl 3 24937 NULL
156324 +enable_so_key_len_cfg80211_connect_params_24952 key_len cfg80211_connect_params 0 24952 NULL
156325 +enable_so_vmalloc_fndecl_24955 vmalloc fndecl 1 24955 NULL nohasharray
156326 +enable_so_size_video_still_picture_24955 size video_still_picture 0 24955 &enable_so_vmalloc_fndecl_24955
156327 +enable_so_nilfs_cpfile_clear_snapshot_fndecl_24964 nilfs_cpfile_clear_snapshot fndecl 2 24964 NULL
156328 +enable_so_outmsg_len_hvutil_transport_24966 outmsg_len hvutil_transport 0 24966 NULL
156329 +enable_so_accent_table_size_vardecl_24972 accent_table_size vardecl 0 24972 NULL
156330 +enable_so_pppol2tp_sendmsg_fndecl_24975 pppol2tp_sendmsg fndecl 3 24975 NULL nohasharray
156331 +enable_so_system_dir_blkno_ocfs2_super_24975 system_dir_blkno ocfs2_super 0 24975 &enable_so_pppol2tp_sendmsg_fndecl_24975 nohasharray
156332 +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
156333 +enable_so_i_rbytes_ceph_inode_info_24976 i_rbytes ceph_inode_info 0 24976 NULL
156334 +enable_so_exofs_inode_by_name_fndecl_24982 exofs_inode_by_name fndecl 0 24982 NULL
156335 +enable_so_vringh_iov_pull_user_fndecl_24984 vringh_iov_pull_user fndecl 3 24984 NULL
156336 +enable_so___clone_and_map_data_bio_fndecl_24985 __clone_and_map_data_bio fndecl 3 24985 NULL
156337 +enable_so_dr_suballoc_bit_ocfs2_dx_root_block_24992 dr_suballoc_bit ocfs2_dx_root_block 0 24992 NULL
156338 +enable_so_ql_process_mac_rx_page_fndecl_24996 ql_process_mac_rx_page fndecl 5-4 24996 NULL
156339 +enable_so___rh_find_fndecl_24997 __rh_find fndecl 2 24997 NULL
156340 +enable_so_jfs_extendfs_fndecl_25001 jfs_extendfs fndecl 2-3 25001 NULL
156341 +enable_so_zero_the_pointer_fndecl_25003 zero_the_pointer fndecl 0 25003 NULL
156342 +enable_so_default_density_st_modedef_25006 default_density st_modedef 0 25006 NULL
156343 +enable_so_xfrm_state_mtu_fndecl_25007 xfrm_state_mtu fndecl 0-2 25007 NULL nohasharray
156344 +enable_so_sdp0length__SpiCfgData_25007 sdp0length _SpiCfgData 0 25007 &enable_so_xfrm_state_mtu_fndecl_25007
156345 +enable_so_memory_map_top_down_fndecl_25011 memory_map_top_down fndecl 1-2 25011 NULL
156346 +enable_so_ifx_spi_write_fndecl_25016 ifx_spi_write fndecl 3 25016 NULL
156347 +enable_so_rx_jumbo_pending_ethtool_ringparam_25018 rx_jumbo_pending ethtool_ringparam 0 25018 NULL
156348 +enable_so_num_bd_ethoc_25022 num_bd ethoc 0 25022 NULL
156349 +enable_so__rtl_usb_tx_urb_setup_fndecl_25024 _rtl_usb_tx_urb_setup fndecl 3 25024 NULL
156350 +enable_so_height_fb_fillrect_25027 height fb_fillrect 0 25027 NULL nohasharray
156351 +enable_so_iwl_nvm_read_section_fndecl_25027 iwl_nvm_read_section fndecl 0 25027 &enable_so_height_fb_fillrect_25027
156352 +enable_so_vlan_cq_enet_rq_desc_25028 vlan cq_enet_rq_desc 0 25028 NULL nohasharray
156353 +enable_so_error_nfs_direct_req_25028 error nfs_direct_req 0 25028 &enable_so_vlan_cq_enet_rq_desc_25028
156354 +enable_so_crc_size_cas_25030 crc_size cas 0 25030 NULL nohasharray
156355 +enable_so_size_sym_tblmove_25030 size sym_tblmove 0 25030 &enable_so_crc_size_cas_25030
156356 +enable_so_pagesize_nand_flash_dev_25033 pagesize nand_flash_dev 0 25033 NULL
156357 +enable_so_bnx2fc_process_unsol_compl_fndecl_25035 bnx2fc_process_unsol_compl fndecl 2 25035 NULL
156358 +enable_so_db_free_next_ocfs2_dir_block_trailer_25041 db_free_next ocfs2_dir_block_trailer 0 25041 NULL
156359 +enable_so_stv0299_readregs_fndecl_25043 stv0299_readregs fndecl 4 25043 NULL
156360 +enable_so_ieee80211_amsdu_to_8023s_fndecl_25050 ieee80211_amsdu_to_8023s fndecl 5 25050 NULL
156361 +enable_so_aio_private_file_fndecl_25052 aio_private_file fndecl 2 25052 NULL nohasharray
156362 +enable_so_acpi_gpio_count_fndecl_25052 acpi_gpio_count fndecl 0 25052 &enable_so_aio_private_file_fndecl_25052
156363 +enable_so_bufsz_drm_radeon_kcmd_buffer_25056 bufsz drm_radeon_kcmd_buffer 0 25056 NULL
156364 +enable_so_size_object_info_25058 size object_info 0 25058 NULL
156365 +enable_so_in_max_chans_snd_card_asihpi_25063 in_max_chans snd_card_asihpi 0 25063 NULL
156366 +enable_so_cuse_file_compat_ioctl_fndecl_25067 cuse_file_compat_ioctl fndecl 2 25067 NULL
156367 +enable_so_ovl_alloc_entry_fndecl_25069 ovl_alloc_entry fndecl 1 25069 NULL
156368 +enable_so_buffer_size_snd_compr_runtime_25072 buffer_size snd_compr_runtime 0 25072 NULL nohasharray
156369 +enable_so_vme_user_write_fndecl_25072 vme_user_write fndecl 3 25072 &enable_so_buffer_size_snd_compr_runtime_25072
156370 +enable_so_rx_fifo_size_sh_msiof_spi_priv_25079 rx_fifo_size sh_msiof_spi_priv 0 25079 NULL
156371 +enable_so_ocfs2_truncate_rec_fndecl_25080 ocfs2_truncate_rec fndecl 7 25080 NULL
156372 +enable_so_transfer_snd_pcm_plugin_25081 transfer snd_pcm_plugin 0 25081 NULL
156373 +enable_so_length_bus_request_25082 length bus_request 0 25082 NULL
156374 +enable_so_len_ocrdma_sge_25084 len ocrdma_sge 0 25084 NULL nohasharray
156375 +enable_so_id_count_ocfs2_inline_data_25084 id_count ocfs2_inline_data 0 25084 &enable_so_len_ocrdma_sge_25084 nohasharray
156376 +enable_so_k_offset_offset_v1_25084 k_offset offset_v1 0 25084 &enable_so_id_count_ocfs2_inline_data_25084
156377 +enable_so_dwc3_prepare_one_trb_fndecl_25092 dwc3_prepare_one_trb fndecl 4 25092 NULL
156378 +enable_so_hidp_send_intr_message_fndecl_25093 hidp_send_intr_message fndecl 4 25093 NULL
156379 +enable_so_ext4_xattr_block_get_fndecl_25095 ext4_xattr_block_get fndecl 0 25095 NULL
156380 +enable_so_coff_ddb_input_25097 coff ddb_input 0 25097 NULL
156381 +enable_so_namelen_xfs_attr_sf_entry_25099 namelen xfs_attr_sf_entry 0 25099 NULL
156382 +enable_so_mgmt_device_found_fndecl_25100 mgmt_device_found fndecl 11-9 25100 NULL
156383 +enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102 TxDescriptors vardecl_pch_gbe_param.c 0 25102 NULL nohasharray
156384 +enable_so_num_pbls_ocrdma_hw_mr_25102 num_pbls ocrdma_hw_mr 0 25102 &enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102
156385 +enable_so_compat_sys_select_fndecl_25104 compat_sys_select fndecl 1 25104 NULL
156386 +enable_so_vbi_height_au0828_dev_25107 vbi_height au0828_dev 0 25107 NULL
156387 +enable_so_fsm_init_fndecl_25109 fsm_init fndecl 2 25109 NULL
156388 +enable_so_blen_if_spi_packet_25117 blen if_spi_packet 0 25117 NULL
156389 +enable_so_svcrdma_max_requests_vardecl_25118 svcrdma_max_requests vardecl 0 25118 NULL nohasharray
156390 +enable_so_clipt_start_adapter_25118 clipt_start adapter 0 25118 &enable_so_svcrdma_max_requests_vardecl_25118
156391 +enable_so_minimum_acpi_resource_memory24_25122 minimum acpi_resource_memory24 0 25122 NULL
156392 +enable_so_max_sge_ipath_rq_25132 max_sge ipath_rq 0 25132 NULL nohasharray
156393 +enable_so_i40e_allocate_virt_mem_d_fndecl_25132 i40e_allocate_virt_mem_d fndecl 3 25132 &enable_so_max_sge_ipath_rq_25132
156394 +enable_so_snd_interval_step_fndecl_25134 snd_interval_step fndecl 2 25134 NULL
156395 +enable_so_mapping_level_fndecl_25135 mapping_level fndecl 0-2 25135 NULL nohasharray
156396 +enable_so_gb_len_nfc_hci_dev_25135 gb_len nfc_hci_dev 0 25135 &enable_so_mapping_level_fndecl_25135 nohasharray
156397 +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
156398 +enable_so_s_first_data_block_ext3_super_block_25141 s_first_data_block ext3_super_block 0 25141 NULL nohasharray
156399 +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
156400 +enable_so_ocfs2_init_xattr_bucket_fndecl_25146 ocfs2_init_xattr_bucket fndecl 2 25146 NULL
156401 +enable_so_gnttab_alloc_pages_fndecl_25149 gnttab_alloc_pages fndecl 1 25149 NULL nohasharray
156402 +enable_so_rate_max_snd_pcm_hardware_25149 rate_max snd_pcm_hardware 0 25149 &enable_so_gnttab_alloc_pages_fndecl_25149
156403 +enable_so_SyS_pselect6_fndecl_25153 SyS_pselect6 fndecl 1 25153 NULL
156404 +enable_so_numchips_cfi_private_25154 numchips cfi_private 0 25154 NULL
156405 +enable_so_iopm_base_vardecl_svm_c_25155 iopm_base vardecl_svm.c 0 25155 NULL
156406 +enable_so_vram_base_cirrus_mc_25157 vram_base cirrus_mc 0 25157 NULL
156407 +enable_so_create_table_fndecl_25158 create_table fndecl 2 25158 NULL
156408 +enable_so_si476x_core_send_command_fndecl_25160 si476x_core_send_command fndecl 4-6 25160 NULL
156409 +enable_so_max_transfer_size_mvumi_hba_25161 max_transfer_size mvumi_hba 0 25161 NULL
156410 +enable_so_width_emmaprp_q_data_25163 width emmaprp_q_data 0 25163 NULL
156411 +enable_so_tcp_syn_options_fndecl_25174 tcp_syn_options fndecl 0 25174 NULL
156412 +enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176 cipso_v4_map_cat_rng_hton fndecl 0 25176 NULL nohasharray
156413 +enable_so_s_writesize_logfs_super_25176 s_writesize logfs_super 0 25176 &enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176
156414 +enable_so_btrfs_create_repair_bio_fndecl_25181 btrfs_create_repair_bio fndecl 5 25181 NULL
156415 +enable_so_heapstart_sis_video_info_25184 heapstart sis_video_info 0 25184 NULL
156416 +enable_so_i40e_dbg_dump_read_fndecl_25188 i40e_dbg_dump_read fndecl 3 25188 NULL
156417 +enable_so_il_dbgfs_disable_ht40_write_fndecl_25194 il_dbgfs_disable_ht40_write fndecl 3 25194 NULL
156418 +enable_so_coex_tx_win_size_mwifiex_adapter_25195 coex_tx_win_size mwifiex_adapter 0 25195 NULL
156419 +enable_so_run_filter_fndecl_25196 run_filter fndecl 0-3 25196 NULL
156420 +enable_so_iso_in_endp_ttusbir_25197 iso_in_endp ttusbir 0 25197 NULL nohasharray
156421 +enable_so_SyS_fgetxattr_fndecl_25197 SyS_fgetxattr fndecl 4 25197 &enable_so_iso_in_endp_ttusbir_25197
156422 +enable_so_do_shrink_fndecl_25198 do_shrink fndecl 3-2 25198 NULL
156423 +enable_so_backing_dev_len_disk_conf_25199 backing_dev_len disk_conf 0 25199 NULL
156424 +enable_so_size_ioc_sts_mv_dtd_25203 size_ioc_sts mv_dtd 0 25203 NULL
156425 +enable_so_ux500_regulator_debug_init_fndecl_25207 ux500_regulator_debug_init fndecl 3 25207 NULL
156426 +enable_so_ip_set_elem_len_fndecl_25209 ip_set_elem_len fndecl 0-3 25209 NULL
156427 +enable_so_eth_get_headlen_fndecl_25213 eth_get_headlen fndecl 0-2 25213 NULL
156428 +enable_so_ext4_insert_range_fndecl_25217 ext4_insert_range fndecl 2-3 25217 NULL
156429 +enable_so_ocfs2_xattr_bucket_value_truncate_fndecl_25220 ocfs2_xattr_bucket_value_truncate fndecl 4 25220 NULL
156430 +enable_so_nand_bch_init_fndecl_25227 nand_bch_init fndecl 3-2 25227 NULL
156431 +enable_so_jumpshot_read_data_fndecl_25228 jumpshot_read_data fndecl 4 25228 NULL
156432 +enable_so_spy_number_iw_spy_data_25234 spy_number iw_spy_data 0 25234 NULL
156433 +enable_so_offset_zatm_pool_info_25250 offset zatm_pool_info 0 25250 NULL
156434 +enable_so_fpnum_omap3isp_ccdc_fpc_25254 fpnum omap3isp_ccdc_fpc 0 25254 NULL
156435 +enable_so_of_property_read_string_helper_fndecl_25257 of_property_read_string_helper fndecl 0-5 25257 NULL
156436 +enable_so_ar5523_cmd_fndecl_25261 ar5523_cmd fndecl 4 25261 NULL
156437 +enable_so_first_cluster_group_blkno_ocfs2_super_25262 first_cluster_group_blkno ocfs2_super 0 25262 NULL nohasharray
156438 +enable_so_start_page_swap_extent_25262 start_page swap_extent 0 25262 &enable_so_first_cluster_group_blkno_ocfs2_super_25262
156439 +enable_so_stk_allocate_buffers_fndecl_25264 stk_allocate_buffers fndecl 2 25264 NULL
156440 +enable_so_vol_id_ubi_mkvol_req_25267 vol_id ubi_mkvol_req 0 25267 NULL
156441 +enable_so_svc_create_fndecl_25270 svc_create fndecl 2 25270 NULL
156442 +enable_so_out_iovs_fuse_ioctl_out_25272 out_iovs fuse_ioctl_out 0 25272 NULL nohasharray
156443 +enable_so_get_fold_mark_fndecl_25272 get_fold_mark fndecl 2 25272 &enable_so_out_iovs_fuse_ioctl_out_25272 nohasharray
156444 +enable_so_register_count_acpi_gpe_block_info_25272 register_count acpi_gpe_block_info 0 25272 &enable_so_get_fold_mark_fndecl_25272
156445 +enable_so_authorizer_len_ceph_msg_connect_reply_25279 authorizer_len ceph_msg_connect_reply 0 25279 NULL
156446 +enable_so_collapse_huge_page_fndecl_25281 collapse_huge_page fndecl 2 25281 NULL
156447 +enable_so_dst_put_ci_fndecl_25284 dst_put_ci fndecl 3 25284 NULL
156448 +enable_so___install_special_mapping_fndecl_25286 __install_special_mapping fndecl 3-2 25286 NULL nohasharray
156449 +enable_so_exynos4_jpeg_get_frame_fmt_fndecl_25286 exynos4_jpeg_get_frame_fmt fndecl 0 25286 &enable_so___install_special_mapping_fndecl_25286
156450 +enable_so_ex_bn_extent_s_25293 ex_bn extent_s 0 25293 NULL
156451 +enable_so_string_length_acpi_resource_source_25296 string_length acpi_resource_source 0 25296 NULL
156452 +enable_so_vmw_cursor_update_image_fndecl_25311 vmw_cursor_update_image fndecl 4-3 25311 NULL nohasharray
156453 +enable_so_sz_m1_mlx5_wq_cyc_25311 sz_m1 mlx5_wq_cyc 0 25311 &enable_so_vmw_cursor_update_image_fndecl_25311
156454 +enable_so_cropw_val_pvr2_hdw_25312 cropw_val pvr2_hdw 0 25312 NULL
156455 +enable_so_resindex_dma_base_sst_acpi_desc_25313 resindex_dma_base sst_acpi_desc 0 25313 NULL
156456 +enable_so_fw_size_bcm203x_data_25314 fw_size bcm203x_data 0 25314 NULL
156457 +enable_so_num_desc_nx_host_rds_ring_25321 num_desc nx_host_rds_ring 0 25321 NULL
156458 +enable_so_cnt_i40e_hmc_obj_info_25322 cnt i40e_hmc_obj_info 0 25322 NULL
156459 +enable_so_rq_cnt_queue_set_25323 rq_cnt queue_set 0 25323 NULL nohasharray
156460 +enable_so_iscsi_tcp_conn_setup_fndecl_25323 iscsi_tcp_conn_setup fndecl 2 25323 &enable_so_rq_cnt_queue_set_25323
156461 +enable_so_max_outstanding_tx_usbcan_msg_softinfo_25327 max_outstanding_tx usbcan_msg_softinfo 0 25327 NULL
156462 +enable_so_bmv_count_getbmapx_25336 bmv_count getbmapx 0 25336 NULL
156463 +enable_so_width_deinterlace_q_data_25337 width deinterlace_q_data 0 25337 NULL
156464 +enable_so_vc_init_fndecl_25338 vc_init fndecl 3-2 25338 NULL
156465 +enable_so_sysfs_create_groups_fndecl_25339 sysfs_create_groups fndecl 0 25339 NULL
156466 +enable_so_enc_key_size_ecryptfs_key_record_25340 enc_key_size ecryptfs_key_record 0 25340 NULL nohasharray
156467 +enable_so_bytesperline_zoran_v4l_settings_25340 bytesperline zoran_v4l_settings 0 25340 &enable_so_enc_key_size_ecryptfs_key_record_25340 nohasharray
156468 +enable_so_xfs_inobt_lookup_fndecl_25340 xfs_inobt_lookup fndecl 2 25340 &enable_so_bytesperline_zoran_v4l_settings_25340
156469 +enable_so_total_ps_buffered_read_fndecl_25342 total_ps_buffered_read fndecl 3 25342 NULL
156470 +enable_so_svc_meta_len_htc_conn_service_msg_25346 svc_meta_len htc_conn_service_msg 0 25346 NULL nohasharray
156471 +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
156472 +enable_so_skb_add_rx_frag_fndecl_25355 skb_add_rx_frag fndecl 2-4-5-6 25355 NULL
156473 +enable_so_spi_rd_buf_fndecl_25357 spi_rd_buf fndecl 4 25357 NULL
156474 +enable_so___mptctl_ioctl_fndecl_25360 __mptctl_ioctl fndecl 2 25360 NULL
156475 +enable_so_bfs_move_block_fndecl_25369 bfs_move_block fndecl 1-2 25369 NULL
156476 +enable_so_encode_string_fndecl_25371 encode_string fndecl 2 25371 NULL
156477 +enable_so_sddr55_bulk_transport_fndecl_25377 sddr55_bulk_transport fndecl 4 25377 NULL nohasharray
156478 +enable_so_mt312_write_fndecl_25377 mt312_write fndecl 4 25377 &enable_so_sddr55_bulk_transport_fndecl_25377
156479 +enable_so_unix_dgram_recvmsg_fndecl_25379 unix_dgram_recvmsg fndecl 3 25379 NULL
156480 +enable_so_bio_copy_kern_fndecl_25382 bio_copy_kern fndecl 3 25382 NULL
156481 +enable_so_grefs_per_grant_frame_vardecl_grant_table_c_25386 grefs_per_grant_frame vardecl_grant-table.c 0 25386 NULL nohasharray
156482 +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
156483 +enable_so_nr_channels_timb_dma_platform_data_25387 nr_channels timb_dma_platform_data 0 25387 NULL
156484 +enable_so_tda18218_wr_regs_fndecl_25388 tda18218_wr_regs fndecl 4 25388 NULL
156485 +enable_so_xlog_write_start_rec_fndecl_25394 xlog_write_start_rec fndecl 0 25394 NULL
156486 +enable_so_atom_size_pcpu_alloc_info_25396 atom_size pcpu_alloc_info 0 25396 NULL
156487 +enable_so_brcmf_pcie_read_tcm16_fndecl_25401 brcmf_pcie_read_tcm16 fndecl 0 25401 NULL
156488 +enable_so_metromem_dma_metronomefb_par_25407 metromem_dma metronomefb_par 0 25407 NULL nohasharray
156489 +enable_so_ib_uverbs_reg_mr_fndecl_25407 ib_uverbs_reg_mr fndecl 3 25407 &enable_so_metromem_dma_metronomefb_par_25407
156490 +enable_so_memblock_virt_alloc_try_nid_fndecl_25409 memblock_virt_alloc_try_nid fndecl 2-1-3-4 25409 NULL nohasharray
156491 +enable_so_memsize_t4_cq_25409 memsize t4_cq 0 25409 &enable_so_memblock_virt_alloc_try_nid_fndecl_25409
156492 +enable_so_pci_wch_ch353_setup_fndecl_25411 pci_wch_ch353_setup fndecl 4 25411 NULL nohasharray
156493 +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
156494 +enable_so_nr_valid_peri_dma_pl330_platdata_25412 nr_valid_peri dma_pl330_platdata 0 25412 NULL
156495 +enable_so_entries_size_ebt_replace_kernel_25413 entries_size ebt_replace_kernel 0 25413 NULL
156496 +enable_so_image_len_gspca_dev_25419 image_len gspca_dev 0 25419 NULL
156497 +enable_so_remap_pci_mem_fndecl_25421 remap_pci_mem fndecl 2-1 25421 NULL nohasharray
156498 +enable_so_find_rsb_fndecl_25421 find_rsb fndecl 3 25421 &enable_so_remap_pci_mem_fndecl_25421
156499 +enable_so_power_read_fndecl_25424 power_read fndecl 3 25424 NULL
156500 +enable_so_num_bytes_btrfs_file_extent_item_25435 num_bytes btrfs_file_extent_item 0 25435 NULL
156501 +enable_so_def_rx_buf_size_octeon_config_25436 def_rx_buf_size octeon_config 0 25436 NULL
156502 +enable_so_i2c_write_fndecl_25439 i2c_write fndecl 4 25439 NULL nohasharray
156503 +enable_so_free_pfn_range_fndecl_25439 free_pfn_range fndecl 1-2 25439 &enable_so_i2c_write_fndecl_25439 nohasharray
156504 +enable_so_lpfc_idiag_drbacc_read_fndecl_25439 lpfc_idiag_drbacc_read fndecl 3 25439 &enable_so_free_pfn_range_fndecl_25439
156505 +enable_so_size_xen_netif_tx_request_25440 size xen_netif_tx_request 0 25440 NULL
156506 +enable_so_alloc_vm_area_fndecl_25446 alloc_vm_area fndecl 1 25446 NULL
156507 +enable_so_ds_nvme_lbaf_25461 ds nvme_lbaf 0 25461 NULL nohasharray
156508 +enable_so_smk_read_ptrace_fndecl_25461 smk_read_ptrace fndecl 3 25461 &enable_so_ds_nvme_lbaf_25461
156509 +enable_so_tx_count_slgt_info_25462 tx_count slgt_info 0 25462 NULL
156510 +enable_so_tx_rate_brcmf_sta_info_le_25464 tx_rate brcmf_sta_info_le 0 25464 NULL
156511 +enable_so_sddr09_send_scsi_command_fndecl_25467 sddr09_send_scsi_command fndecl 3 25467 NULL nohasharray
156512 +enable_so_id_stmpe_platform_data_25467 id stmpe_platform_data 0 25467 &enable_so_sddr09_send_scsi_command_fndecl_25467
156513 +enable_so_frame_alloc_fndecl_25470 frame_alloc fndecl 4 25470 NULL
156514 +enable_so_size_user_regset_25473 size user_regset 0 25473 NULL nohasharray
156515 +enable_so_viafb_vt1636_proc_write_fndecl_25473 viafb_vt1636_proc_write fndecl 3 25473 &enable_so_size_user_regset_25473
156516 +enable_so_playback_periodsize_rme96_25479 playback_periodsize rme96 0 25479 NULL
156517 +enable_so_chunk_sectors_mddev_25484 chunk_sectors mddev 0 25484 NULL
156518 +enable_so_got_frame_fndecl_25487 got_frame fndecl 2 25487 NULL
156519 +enable_so___get_data_block_fndecl_25493 __get_data_block fndecl 2 25493 NULL
156520 +enable_so_rx_transfer_len_hif_device_usb_25494 rx_transfer_len hif_device_usb 0 25494 NULL nohasharray
156521 +enable_so_next_cmd_len_sg_fd_25494 next_cmd_len sg_fd 0 25494 &enable_so_rx_transfer_len_hif_device_usb_25494
156522 +enable_so_max_buckets_out_mpt_lan_priv_25498 max_buckets_out mpt_lan_priv 0 25498 NULL
156523 +enable_so_count_seq_file_25501 count seq_file 0 25501 NULL
156524 +enable_so_size_map_info_25510 size map_info 0 25510 NULL
156525 +enable_so_hidp_send_message_fndecl_25511 hidp_send_message fndecl 6 25511 NULL nohasharray
156526 +enable_so_blk_init_tags_fndecl_25511 blk_init_tags fndecl 1 25511 &enable_so_hidp_send_message_fndecl_25511
156527 +enable_so_pppoe_recvmsg_fndecl_25514 pppoe_recvmsg fndecl 3 25514 NULL nohasharray
156528 +enable_so_n_sg_list_25514 n sg_list 0 25514 &enable_so_pppoe_recvmsg_fndecl_25514 nohasharray
156529 +enable_so_read_file_spectral_period_fndecl_25514 read_file_spectral_period fndecl 3 25514 &enable_so_n_sg_list_25514
156530 +enable_so_cuse_file_ioctl_fndecl_25529 cuse_file_ioctl fndecl 2 25529 NULL
156531 +enable_so_smk_write_unconfined_fndecl_25530 smk_write_unconfined fndecl 3 25530 NULL
156532 +enable_so_screen_fb_size_vardecl_hyperv_fb_c_25531 screen_fb_size vardecl_hyperv_fb.c 0 25531 NULL
156533 +enable_so_size_i40e_hmc_obj_info_25536 size i40e_hmc_obj_info 0 25536 NULL
156534 +enable_so_IOCRequestFrameSize_mpt2sas_facts_25540 IOCRequestFrameSize mpt2sas_facts 0 25540 NULL nohasharray
156535 +enable_so_ioh_gpio_setup_fndecl_25540 ioh_gpio_setup fndecl 2 25540 &enable_so_IOCRequestFrameSize_mpt2sas_facts_25540
156536 +enable_so_f_adc_rtl2832_sdr_dev_25544 f_adc rtl2832_sdr_dev 0 25544 NULL
156537 +enable_so_ipath_ibmaxlen_ipath_devdata_25555 ipath_ibmaxlen ipath_devdata 0 25555 NULL
156538 +enable_so_width_efifb_dmi_info_25557 width efifb_dmi_info 0 25557 NULL
156539 +enable_so_iommu_map_mmio_space_fndecl_25569 iommu_map_mmio_space fndecl 2-1 25569 NULL
156540 +enable_so_max_beb_per1024_ubi_attach_req_25573 max_beb_per1024 ubi_attach_req 0 25573 NULL nohasharray
156541 +enable_so_frame_length_sh_eth_rxdesc_25573 frame_length sh_eth_rxdesc 0 25573 &enable_so_max_beb_per1024_ubi_attach_req_25573
156542 +enable_so_num_stations_iwl_priv_25574 num_stations iwl_priv 0 25574 NULL
156543 +enable_so_hpi_outstream_ancillary_read_fndecl_25575 hpi_outstream_ancillary_read fndecl 4 25575 NULL nohasharray
156544 +enable_so_wsm_write_mib_fndecl_25575 wsm_write_mib fndecl 4 25575 &enable_so_hpi_outstream_ancillary_read_fndecl_25575
156545 +enable_so_lpage_size_genwqe_sgl_25578 lpage_size genwqe_sgl 0 25578 NULL
156546 +enable_so_bytes_per_pixel_usbvision_v4l2_format_st_25584 bytes_per_pixel usbvision_v4l2_format_st 0 25584 NULL
156547 +enable_so_cifs_mapchar_fndecl_25586 cifs_mapchar fndecl 0 25586 NULL
156548 +enable_so_test_ofs_cyttsp4_sysinfo_ofs_25587 test_ofs cyttsp4_sysinfo_ofs 0 25587 NULL
156549 +enable_so_isr_tx_exch_complete_read_fndecl_25588 isr_tx_exch_complete_read fndecl 3 25588 NULL
156550 +enable_so_last_page_snd_emu10k1_memblk_25591 last_page snd_emu10k1_memblk 0 25591 NULL
156551 +enable_so_s_partition_len_udf_part_map_25593 s_partition_len udf_part_map 0 25593 NULL nohasharray
156552 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt3sas_facts_25593 MaxReplyDescriptorPostQueueDepth mpt3sas_facts 0 25593 &enable_so_s_partition_len_udf_part_map_25593
156553 +enable_so_udelay_test_write_fndecl_25596 udelay_test_write fndecl 3 25596 NULL
156554 +enable_so_isr_hw_pm_mode_changes_read_fndecl_25597 isr_hw_pm_mode_changes_read fndecl 3 25597 NULL nohasharray
156555 +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
156556 +enable_so_max_cmd_sg_entries_ctlr_info_25601 max_cmd_sg_entries ctlr_info 0 25601 NULL
156557 +enable_so_matroxfb_test_and_set_rounding_fndecl_25619 matroxfb_test_and_set_rounding fndecl 0-2 25619 NULL nohasharray
156558 +enable_so_size_hpi_message_header_25619 size hpi_message_header 0 25619 &enable_so_matroxfb_test_and_set_rounding_fndecl_25619
156559 +enable_so_ceph_osdc_alloc_request_fndecl_25622 ceph_osdc_alloc_request fndecl 3 25622 NULL
156560 +enable_so_nfs4_xattr_get_nfs4_label_fndecl_25623 nfs4_xattr_get_nfs4_label fndecl 4 25623 NULL
156561 +enable_so_pmcraid_major_vardecl_pmcraid_c_25627 pmcraid_major vardecl_pmcraid.c 0 25627 NULL
156562 +enable_so_ocfs2_trim_group_fndecl_25634 ocfs2_trim_group fndecl 0 25634 NULL nohasharray
156563 +enable_so_status_xen_netif_rx_response_25634 status xen_netif_rx_response 0 25634 &enable_so_ocfs2_trim_group_fndecl_25634
156564 +enable_so_profile_replace_fndecl_25647 profile_replace fndecl 3 25647 NULL
156565 +enable_so_rpipe_get_by_ep_fndecl_25656 rpipe_get_by_ep fndecl 0 25656 NULL
156566 +enable_so_getxattr_inode_operations_25660 getxattr inode_operations 0 25660 NULL
156567 +enable_so_min_bytes_needed_fndecl_25664 min_bytes_needed fndecl 0 25664 NULL
156568 +enable_so_eec_entry_sz_mthca_dev_lim_25665 eec_entry_sz mthca_dev_lim 0 25665 NULL
156569 +enable_so_m_ag_maxlevels_xfs_mount_25666 m_ag_maxlevels xfs_mount 0 25666 NULL nohasharray
156570 +enable_so_HWPartsNum_qinfo_chip_25666 HWPartsNum qinfo_chip 0 25666 &enable_so_m_ag_maxlevels_xfs_mount_25666
156571 +enable_so_nvme_trans_log_info_exceptions_fndecl_25670 nvme_trans_log_info_exceptions fndecl 3 25670 NULL
156572 +enable_so_nvkm_namedb_create__fndecl_25674 nvkm_namedb_create_ fndecl 7 25674 NULL
156573 +enable_so_pipeline_enc_tx_stat_fifo_int_read_fndecl_25675 pipeline_enc_tx_stat_fifo_int_read fndecl 3 25675 NULL
156574 +enable_so_tsi148_master_set_fndecl_25678 tsi148_master_set fndecl 4 25678 NULL
156575 +enable_so_layout_mdp_superblock_s_25680 layout mdp_superblock_s 0 25680 NULL
156576 +enable_so_max_cmd_per_lun_vardecl_megaraid_c_25693 max_cmd_per_lun vardecl_megaraid.c 0 25693 NULL
156577 +enable_so_persistent_ram_ecc_string_fndecl_25699 persistent_ram_ecc_string fndecl 0 25699 NULL
156578 +enable_so_chv_get_total_gtt_size_fndecl_25701 chv_get_total_gtt_size fndecl 0-1 25701 NULL nohasharray
156579 +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
156580 +enable_so_sysctl_numa_balancing_scan_size_vardecl_25704 sysctl_numa_balancing_scan_size vardecl 0 25704 NULL nohasharray
156581 +enable_so_ir_post_altera_jtag_25704 ir_post altera_jtag 0 25704 &enable_so_sysctl_numa_balancing_scan_size_vardecl_25704
156582 +enable_so_cmnd_out_ep_vub300_mmc_host_25705 cmnd_out_ep vub300_mmc_host 0 25705 NULL nohasharray
156583 +enable_so_get_bio_block_fndecl_25705 get_bio_block fndecl 0 25705 &enable_so_cmnd_out_ep_vub300_mmc_host_25705
156584 +enable_so_ntfs_file_fsync_fndecl_25706 ntfs_file_fsync fndecl 2-3 25706 NULL
156585 +enable_so_max_cid_space_cnic_local_25708 max_cid_space cnic_local 0 25708 NULL
156586 +enable_so___sector_request_25709 __sector request 0 25709 NULL
156587 +enable_so_vfd_write_fndecl_25710 vfd_write fndecl 3 25710 NULL
156588 +enable_so_buf_count_drm_buf_entry_25716 buf_count drm_buf_entry 0 25716 NULL
156589 +enable_so_svc_max_payload_fndecl_25718 svc_max_payload fndecl 0 25718 NULL
156590 +enable_so_left_margin_fb_var_screeninfo_25722 left_margin fb_var_screeninfo 0 25722 NULL
156591 +enable_so_data_cnt_adv_scsi_req_q_25725 data_cnt adv_scsi_req_q 0 25725 NULL nohasharray
156592 +enable_so_SyS_fsetxattr_fndecl_25725 SyS_fsetxattr fndecl 4 25725 &enable_so_data_cnt_adv_scsi_req_q_25725
156593 +enable_so_nr_scanned_scan_control_25733 nr_scanned scan_control 0 25733 NULL
156594 +enable_so_raid1_resize_fndecl_25735 raid1_resize fndecl 2 25735 NULL
156595 +enable_so_res_cnt_common_sol_cqe_25739 res_cnt common_sol_cqe 0 25739 NULL
156596 +enable_so_ms_read_copyblock_fndecl_25740 ms_read_copyblock fndecl 7 25740 NULL
156597 +enable_so_ext4_da_map_blocks_fndecl_25744 ext4_da_map_blocks fndecl 2 25744 NULL
156598 +enable_so_iov_iter_kvec_fndecl_25747 iov_iter_kvec fndecl 5-4 25747 NULL
156599 +enable_so_tics_vardecl_hfcpci_c_25752 tics vardecl_hfcpci.c 0 25752 NULL
156600 +enable_so_burst_kirkwood_dma_data_25753 burst kirkwood_dma_data 0 25753 NULL
156601 +enable_so_pvr2_i2c_write_fndecl_25754 pvr2_i2c_write fndecl 4 25754 NULL nohasharray
156602 +enable_so___blk_end_request_fndecl_25754 __blk_end_request fndecl 3 25754 &enable_so_pvr2_i2c_write_fndecl_25754
156603 +enable_so_buffer_size_command_25757 buffer_size command 0 25757 NULL
156604 +enable_so_rh_urb_enqueue_fndecl_25758 rh_urb_enqueue fndecl 0 25758 NULL
156605 +enable_so_regmap_range_read_file_fndecl_25764 regmap_range_read_file fndecl 3 25764 NULL
156606 +enable_so_max_memblock_type_25766 max memblock_type 0 25766 NULL
156607 +enable_so_src_len_ccp_aes_engine_25770 src_len ccp_aes_engine 0 25770 NULL
156608 +enable_so_event_len_fanotify_event_metadata_25772 event_len fanotify_event_metadata 0 25772 NULL
156609 +enable_so_rx_rx_cmplt_read_fndecl_25778 rx_rx_cmplt_read fndecl 3 25778 NULL
156610 +enable_so_btrfs_inode_extref_name_len_fndecl_25779 btrfs_inode_extref_name_len fndecl 0 25779 NULL
156611 +enable_so___remove_pages_fndecl_25788 __remove_pages fndecl 3-2 25788 NULL
156612 +enable_so_qla82xx_pci_mem_write_2M_fndecl_25790 qla82xx_pci_mem_write_2M fndecl 2 25790 NULL
156613 +enable_so_hpet_readl_fndecl_25794 hpet_readl fndecl 0 25794 NULL
156614 +enable_so_num_prealloc_crypto_pages_vardecl_crypto_c_25796 num_prealloc_crypto_pages vardecl_crypto.c 0 25796 NULL
156615 +enable_so_pg_base_nfs_pgio_mirror_25798 pg_base nfs_pgio_mirror 0 25798 NULL
156616 +enable_so_stolen_base_i915_gem_mm_25807 stolen_base i915_gem_mm 0 25807 NULL
156617 +enable_so_sgentry_align_brcmf_sdio_25813 sgentry_align brcmf_sdio 0 25813 NULL nohasharray
156618 +enable_so_lf_depth_gfs2_leaf_25813 lf_depth gfs2_leaf 0 25813 &enable_so_sgentry_align_brcmf_sdio_25813
156619 +enable_so_keys_proc_write_fndecl_25819 keys_proc_write fndecl 3 25819 NULL
156620 +enable_so___kfifo_in_fndecl_25822 __kfifo_in fndecl 3-0 25822 NULL
156621 +enable_so_ext4_kvmalloc_fndecl_25823 ext4_kvmalloc fndecl 1 25823 NULL
156622 +enable_so_pages_per_rd_bio_scrub_ctx_25831 pages_per_rd_bio scrub_ctx 0 25831 NULL
156623 +enable_so_depth_cx25821_fmt_25832 depth cx25821_fmt 0 25832 NULL
156624 +enable_so_cookie_offset_nfsd4_readdir_25834 cookie_offset nfsd4_readdir 0 25834 NULL
156625 +enable_so_mmc_test_area_map_fndecl_25839 mmc_test_area_map fndecl 2-4 25839 NULL
156626 +enable_so_start_cxgb4_range_25845 start cxgb4_range 0 25845 NULL
156627 +enable_so_ric_ies_len_cfg80211_ft_event_params_25853 ric_ies_len cfg80211_ft_event_params 0 25853 NULL
156628 +enable_so_table_size_drm_ati_pcigart_info_25856 table_size drm_ati_pcigart_info 0 25856 NULL
156629 +enable_so_num_sg_lists_vardecl_25860 num_sg_lists vardecl 0 25860 NULL
156630 +enable_so_asize_mypriv_25864 asize mypriv 0 25864 NULL
156631 +enable_so_usVBlanking_Time__ATOM_DTD_FORMAT_25867 usVBlanking_Time _ATOM_DTD_FORMAT 0 25867 NULL
156632 +enable_so_vlan_dev_change_mtu_fndecl_25871 vlan_dev_change_mtu fndecl 2 25871 NULL
156633 +enable_so_nvkm_mc_create__fndecl_25873 nvkm_mc_create_ fndecl 4 25873 NULL
156634 +enable_so_buf_size_regmap_format_25880 buf_size regmap_format 0 25880 NULL
156635 +enable_so_alloc_tx_struct_fndecl_25886 alloc_tx_struct fndecl 1 25886 NULL
156636 +enable_so_sb_agblocks_xfs_sb_25887 sb_agblocks xfs_sb 0 25887 NULL
156637 +enable_so_width_virtio_gpu_rect_25892 width virtio_gpu_rect 0 25892 NULL
156638 +enable_so_i915_gem_batch_pool_get_fndecl_25893 i915_gem_batch_pool_get fndecl 2 25893 NULL nohasharray
156639 +enable_so_offset_usnic_uiom_reg_25893 offset usnic_uiom_reg 0 25893 &enable_so_i915_gem_batch_pool_get_fndecl_25893 nohasharray
156640 +enable_so_intf_num_smi_info_25893 intf_num smi_info 0 25893 &enable_so_offset_usnic_uiom_reg_25893
156641 +enable_so_walk_page_range_fndecl_25894 walk_page_range fndecl 0 25894 NULL
156642 +enable_so_ath6kl_regdump_read_fndecl_25898 ath6kl_regdump_read fndecl 3 25898 NULL
156643 +enable_so_vram_remap_vardecl_uvesafb_c_25907 vram_remap vardecl_uvesafb.c 0 25907 NULL
156644 +enable_so_kvm_vcpu_gfn_to_hva_prot_fndecl_25911 kvm_vcpu_gfn_to_hva_prot fndecl 2 25911 NULL
156645 +enable_so_acpi_get_override_irq_fndecl_25918 acpi_get_override_irq fndecl 1 25918 NULL
156646 +enable_so_mtd_concat_create_fndecl_25923 mtd_concat_create fndecl 2 25923 NULL nohasharray
156647 +enable_so_d40_pool_lli_alloc_fndecl_25923 d40_pool_lli_alloc fndecl 3 25923 &enable_so_mtd_concat_create_fndecl_25923
156648 +enable_so_get_kcore_size_fndecl_25930 get_kcore_size fndecl 0 25930 NULL
156649 +enable_so_ioat_ring_alloc_order_vardecl_25933 ioat_ring_alloc_order vardecl 0 25933 NULL
156650 +enable_so_ircomm_tty_connect_indication_fndecl_25936 ircomm_tty_connect_indication fndecl 4-5 25936 NULL
156651 +enable_so_smk_write_onlycap_fndecl_25939 smk_write_onlycap fndecl 3 25939 NULL
156652 +enable_so_n_piobufs_efx_ef10_nic_data_25940 n_piobufs efx_ef10_nic_data 0 25940 NULL
156653 +enable_so___xfs_bmbt_get_all_fndecl_25952 __xfs_bmbt_get_all fndecl 2-1 25952 NULL
156654 +enable_so_cyttsp_spi_read_block_data_fndecl_25954 cyttsp_spi_read_block_data fndecl 4 25954 NULL
156655 +enable_so_len_xsd_sockmsg_25963 len xsd_sockmsg 0 25963 NULL
156656 +enable_so_ieee802154_hdr_get_sechdr_fndecl_25965 ieee802154_hdr_get_sechdr fndecl 0 25965 NULL
156657 +enable_so_memblock_remove_range_fndecl_25969 memblock_remove_range fndecl 3-2 25969 NULL
156658 +enable_so__iwl_dbgfs_sram_write_fndecl_25972 _iwl_dbgfs_sram_write fndecl 3 25972 NULL
156659 +enable_so_tx_max_out_mpt_lan_priv_25974 tx_max_out mpt_lan_priv 0 25974 NULL
156660 +enable_so_pci_ni8430_setup_fndecl_25977 pci_ni8430_setup fndecl 4 25977 NULL
156661 +enable_so_vscnprintf_fndecl_25984 vscnprintf fndecl 0 25984 NULL
156662 +enable_so_ns_blocksize_bits_the_nilfs_25985 ns_blocksize_bits the_nilfs 0 25985 NULL
156663 +enable_so_ieee80211_if_read_dot11MeshGateAnnouncementProtocol_fndecl_25989 ieee80211_if_read_dot11MeshGateAnnouncementProtocol fndecl 3 25989 NULL
156664 +enable_so_split_state_fndecl_25992 split_state fndecl 4 25992 NULL
156665 +enable_so_vga_vram_size_vardecl_vgacon_c_25995 vga_vram_size vardecl_vgacon.c 0 25995 NULL
156666 +enable_so_len_ieee_types_header_26006 len ieee_types_header 0 26006 NULL
156667 +enable_so_udplite_getfrag_fndecl_26012 udplite_getfrag fndecl 4 26012 NULL
156668 +enable_so_core_name_size_vardecl_coredump_c_26013 core_name_size vardecl_coredump.c 0 26013 NULL
156669 +enable_so_ufs_load_cylinder_fndecl_26018 ufs_load_cylinder fndecl 2 26018 NULL nohasharray
156670 +enable_so_add_delayed_ref_head_fndecl_26018 add_delayed_ref_head fndecl 5 26018 &enable_so_ufs_load_cylinder_fndecl_26018 nohasharray
156671 +enable_so_kvm_inject_realmode_interrupt_fndecl_26018 kvm_inject_realmode_interrupt fndecl 3 26018 &enable_so_add_delayed_ref_head_fndecl_26018
156672 +enable_so_platform_id_cb710_chip_26021 platform_id cb710_chip 0 26021 NULL
156673 +enable_so_touch_max_wacom_features_26029 touch_max wacom_features 0 26029 NULL
156674 +enable_so___gfs2_fallocate_fndecl_26035 __gfs2_fallocate fndecl 4-3 26035 NULL
156675 +enable_so_EraseSize_NFTLrecord_26040 EraseSize NFTLrecord 0 26040 NULL nohasharray
156676 +enable_so_ocfs2_debug_read_fndecl_26040 ocfs2_debug_read fndecl 3 26040 &enable_so_EraseSize_NFTLrecord_26040
156677 +enable_so_ll_recv_fndecl_26047 ll_recv fndecl 3 26047 NULL
156678 +enable_so_iwlagn_hwrate_to_tx_control_fndecl_26049 iwlagn_hwrate_to_tx_control fndecl 2 26049 NULL
156679 +enable_so_md_template_size_netxen_minidump_26050 md_template_size netxen_minidump 0 26050 NULL
156680 +enable_so_picolcd_debug_eeprom_read_fndecl_26054 picolcd_debug_eeprom_read fndecl 3 26054 NULL
156681 +enable_so_l2cap_send_cmd_fndecl_26055 l2cap_send_cmd fndecl 4 26055 NULL
156682 +enable_so__pcol_init_fndecl_26056 _pcol_init fndecl 2 26056 NULL
156683 +enable_so_physical_for_dev_replace_scrub_copy_nocow_ctx_26059 physical_for_dev_replace scrub_copy_nocow_ctx 0 26059 NULL
156684 +enable_so_nfc_hci_hcp_message_tx_fndecl_26069 nfc_hci_hcp_message_tx fndecl 6 26069 NULL
156685 +enable_so_dataflash_read_user_otp_fndecl_26075 dataflash_read_user_otp fndecl 3-2 26075 NULL nohasharray
156686 +enable_so_ep0_write_fndecl_26075 ep0_write fndecl 3 26075 &enable_so_dataflash_read_user_otp_fndecl_26075
156687 +enable_so_current_rate_il_scale_tbl_info_26077 current_rate il_scale_tbl_info 0 26077 NULL
156688 +enable_so_fratio_arizona_fll_cfg_26082 fratio arizona_fll_cfg 0 26082 NULL
156689 +enable_so_remap_to_origin_then_cache_fndecl_26084 remap_to_origin_then_cache fndecl 4 26084 NULL
156690 +enable_so_skb_buf_size_vmxnet3_adapter_26088 skb_buf_size vmxnet3_adapter 0 26088 NULL
156691 +enable_so_vmci_transport_set_max_buffer_size_fndecl_26089 vmci_transport_set_max_buffer_size fndecl 2 26089 NULL
156692 +enable_so_idmap_pipe_downcall_fndecl_26092 idmap_pipe_downcall fndecl 3 26092 NULL
156693 +enable_so_rds_ib_ring_resize_fndecl_26097 rds_ib_ring_resize fndecl 2 26097 NULL
156694 +enable_so_qp_host_alloc_queue_fndecl_26101 qp_host_alloc_queue fndecl 1 26101 NULL
156695 +enable_so_SyS_setdomainname_fndecl_26106 SyS_setdomainname fndecl 2 26106 NULL
156696 +enable_so_used_bytes_ubi_volume_26113 used_bytes ubi_volume 0 26113 NULL
156697 +enable_so_multi_len_ssif_info_26118 multi_len ssif_info 0 26118 NULL nohasharray
156698 +enable_so_log_store_fndecl_26118 log_store fndecl 8 26118 &enable_so_multi_len_ssif_info_26118
156699 +enable_so_blk_limits_max_hw_sectors_fndecl_26121 blk_limits_max_hw_sectors fndecl 2 26121 NULL
156700 +enable_so_maxflows_sfq_sched_data_26122 maxflows sfq_sched_data 0 26122 NULL
156701 +enable_so_hba_queue_depth_MPT2SAS_ADAPTER_26142 hba_queue_depth MPT2SAS_ADAPTER 0 26142 NULL
156702 +enable_so_ipwireless_ppp_mru_fndecl_26146 ipwireless_ppp_mru fndecl 0 26146 NULL
156703 +enable_so_size_cyttsp4_tch_rec_params_26150 size cyttsp4_tch_rec_params 0 26150 NULL
156704 +enable_so_translate_compat_table_fndecl_26151 translate_compat_table fndecl 6 26151 NULL
156705 +enable_so_hid_register_report_fndecl_26154 hid_register_report fndecl 3 26154 NULL
156706 +enable_so_sense_len_megasas_iocpacket_26161 sense_len megasas_iocpacket 0 26161 NULL
156707 +enable_so_nfs4_xattr_set_nfs4_label_fndecl_26162 nfs4_xattr_set_nfs4_label fndecl 4 26162 NULL
156708 +enable_so_fastListenDelay_ConfigRid_26165 fastListenDelay ConfigRid 0 26165 NULL
156709 +enable_so_r_bitcnt_tiger_hw_26171 r_bitcnt tiger_hw 0 26171 NULL
156710 +enable_so_src_sz_max_ce_attr_26172 src_sz_max ce_attr 0 26172 NULL
156711 +enable_so_ci_buffer_size_dlm_config_info_26176 ci_buffer_size dlm_config_info 0 26176 NULL
156712 +enable_so_qcaspi_burst_len_vardecl_qca_spi_c_26179 qcaspi_burst_len vardecl_qca_spi.c 0 26179 NULL
156713 +enable_so_zram_major_vardecl_zram_drv_c_26180 zram_major vardecl_zram_drv.c 0 26180 NULL
156714 +enable_so_iscsi_create_endpoint_fndecl_26186 iscsi_create_endpoint fndecl 1 26186 NULL
156715 +enable_so_video_vsize_solo_dev_26188 video_vsize solo_dev 0 26188 NULL
156716 +enable_so_drm_atomic_plane_set_property_fndecl_26190 drm_atomic_plane_set_property fndecl 4 26190 NULL nohasharray
156717 +enable_so_level_guest_walkerEPT_26190 level guest_walkerEPT 0 26190 &enable_so_drm_atomic_plane_set_property_fndecl_26190
156718 +enable_so_len_ext4_encrypted_symlink_data_26199 len ext4_encrypted_symlink_data 0 26199 NULL
156719 +enable_so_ocontext_read_fndecl_26201 ocontext_read fndecl 0 26201 NULL
156720 +enable_so_et131x_change_mtu_fndecl_26203 et131x_change_mtu fndecl 2 26203 NULL
156721 +enable_so_SYSC_setdomainname_fndecl_26207 SYSC_setdomainname fndecl 2 26207 NULL
156722 +enable_so_data_len_kernel_ipmi_msg_26209 data_len kernel_ipmi_msg 0 26209 NULL nohasharray
156723 +enable_so_bfad_debugfs_write_regrd_fndecl_26209 bfad_debugfs_write_regrd fndecl 3 26209 &enable_so_data_len_kernel_ipmi_msg_26209 nohasharray
156724 +enable_so_aic_common_of_init_fndecl_26209 aic_common_of_init fndecl 4 26209 &enable_so_bfad_debugfs_write_regrd_fndecl_26209
156725 +enable_so_s_log_zone_size_isofs_sb_info_26211 s_log_zone_size isofs_sb_info 0 26211 NULL
156726 +enable_so_dev_cnt_usnic_uiom_pd_26213 dev_cnt usnic_uiom_pd 0 26213 NULL
156727 +enable_so_hfsplus_submit_bio_fndecl_26217 hfsplus_submit_bio fndecl 2 26217 NULL nohasharray
156728 +enable_so_sst_wake_up_block_fndecl_26217 sst_wake_up_block fndecl 6 26217 &enable_so_hfsplus_submit_bio_fndecl_26217
156729 +enable_so_ufx_handle_damage_fndecl_26219 ufx_handle_damage fndecl 5-4 26219 NULL nohasharray
156730 +enable_so_dr_post_altera_jtag_26219 dr_post altera_jtag 0 26219 &enable_so_ufx_handle_damage_fndecl_26219
156731 +enable_so_base_snd_cs46xx_region_26223 base snd_cs46xx_region 0 26223 NULL
156732 +enable_so_blk_queue_init_tags_fndecl_26227 blk_queue_init_tags fndecl 2 26227 NULL
156733 +enable_so_match_length_deflate_state_26231 match_length deflate_state 0 26231 NULL
156734 +enable_so_command_setflickerctrl_fndecl_26233 command_setflickerctrl fndecl 0 26233 NULL
156735 +enable_so_tct_size_idt77252_dev_26240 tct_size idt77252_dev 0 26240 NULL
156736 +enable_so_max_srq_wr_ib_device_attr_26242 max_srq_wr ib_device_attr 0 26242 NULL
156737 +enable_so_ecp_write_data_parport_operations_26253 ecp_write_data parport_operations 0 26253 NULL
156738 +enable_so_can_gather_numa_stats_fndecl_26254 can_gather_numa_stats fndecl 3 26254 NULL
156739 +enable_so_iwl_dbgfs_sram_write_fndecl_26260 iwl_dbgfs_sram_write fndecl 3 26260 NULL
156740 +enable_so_den_snd_ratden_26264 den snd_ratden 0 26264 NULL nohasharray
156741 +enable_so_il_dbgfs_rx_stats_read_fndecl_26264 il_dbgfs_rx_stats_read fndecl 3 26264 &enable_so_den_snd_ratden_26264
156742 +enable_so_check_pages_isolated_fndecl_26267 check_pages_isolated fndecl 0-1-2 26267 NULL
156743 +enable_so_jumbo_size_qset_params_26273 jumbo_size qset_params 0 26273 NULL
156744 +enable_so_fw_realloc_buffer_fndecl_26275 fw_realloc_buffer fndecl 2 26275 NULL
156745 +enable_so_width_stk1160_26279 width stk1160 0 26279 NULL nohasharray
156746 +enable_so_n_hdlc_tty_write_fndecl_26279 n_hdlc_tty_write fndecl 4 26279 &enable_so_width_stk1160_26279
156747 +enable_so_simple_io_fndecl_26280 simple_io fndecl 4 26280 NULL nohasharray
156748 +enable_so_xlate_dev_mem_ptr_fndecl_26280 xlate_dev_mem_ptr fndecl 1 26280 &enable_so_simple_io_fndecl_26280
156749 +enable_so_send_write_fndecl_26285 send_write fndecl 6-5-0 26285 NULL
156750 +enable_so_tx_data_length_hso_serial_26287 tx_data_length hso_serial 0 26287 NULL
156751 +enable_so_wacom_led_putimage_fndecl_26291 wacom_led_putimage fndecl 4 26291 NULL
156752 +enable_so_hub_port_connect_fndecl_26292 hub_port_connect fndecl 2 26292 NULL nohasharray
156753 +enable_so_sc_max_sge_svcxprt_rdma_26292 sc_max_sge svcxprt_rdma 0 26292 &enable_so_hub_port_connect_fndecl_26292
156754 +enable_so_members_count_dlm_space_26293 members_count dlm_space 0 26293 NULL
156755 +enable_so_xskip_mt9t031_26297 xskip mt9t031 0 26297 NULL
156756 +enable_so_xhci_common_hub_descriptor_fndecl_26304 xhci_common_hub_descriptor fndecl 3 26304 NULL nohasharray
156757 +enable_so_model_data_size_oxygen_model_26304 model_data_size oxygen_model 0 26304 &enable_so_xhci_common_hub_descriptor_fndecl_26304
156758 +enable_so_debugfs_create_file_size_fndecl_26309 debugfs_create_file_size fndecl 6 26309 NULL
156759 +enable_so_used_core_name_26313 used core_name 0 26313 NULL
156760 +enable_so_at25_mem_read_fndecl_26314 at25_mem_read fndecl 3-4 26314 NULL
156761 +enable_so_drxdap_fasi_write_block_fndecl_26315 drxdap_fasi_write_block fndecl 3 26315 NULL
156762 +enable_so_irlan_connect_indication_fndecl_26316 irlan_connect_indication fndecl 5 26316 NULL
156763 +enable_so_mc_mask_radeon_mc_26322 mc_mask radeon_mc 0 26322 NULL
156764 +enable_so_ocfs2_read_refcount_block_fndecl_26330 ocfs2_read_refcount_block fndecl 2 26330 NULL
156765 +enable_so_omap_dump_tlb_entries_fndecl_26334 omap_dump_tlb_entries fndecl 3 26334 NULL
156766 +enable_so_fcoe_ctlr_send_keep_alive_fndecl_26335 fcoe_ctlr_send_keep_alive fndecl 3 26335 NULL
156767 +enable_so_maxchild_usb_device_26337 maxchild usb_device 0 26337 NULL
156768 +enable_so_alloc_ring_fndecl_26338 alloc_ring fndecl 4-2 26338 NULL
156769 +enable_so_ept_prefetch_gpte_fndecl_26343 ept_prefetch_gpte fndecl 4 26343 NULL nohasharray
156770 +enable_so_broadcast_xmt_max_payload_fwnet_device_26343 broadcast_xmt_max_payload fwnet_device 0 26343 &enable_so_ept_prefetch_gpte_fndecl_26343
156771 +enable_so_blkdev_readpages_fndecl_26350 blkdev_readpages fndecl 4 26350 NULL nohasharray
156772 +enable_so_hugetlbfs_pagecache_present_fndecl_26350 hugetlbfs_pagecache_present fndecl 3 26350 &enable_so_blkdev_readpages_fndecl_26350
156773 +enable_so___ocfs2_remove_xattr_range_fndecl_26353 __ocfs2_remove_xattr_range fndecl 5-4-3 26353 NULL
156774 +enable_so_kovaplus_sysfs_read_fndecl_26362 kovaplus_sysfs_read fndecl 6 26362 NULL
156775 +enable_so_ioread16_fndecl_26365 ioread16 fndecl 0 26365 NULL nohasharray
156776 +enable_so_scsi_eh_prep_cmnd_fndecl_26365 scsi_eh_prep_cmnd fndecl 5 26365 &enable_so_ioread16_fndecl_26365
156777 +enable_so_max_mthca_alloc_26367 max mthca_alloc 0 26367 NULL
156778 +enable_so_xpnet_send_fndecl_26368 xpnet_send fndecl 3-4 26368 NULL nohasharray
156779 +enable_so_ts_tsid_gru_thread_state_26368 ts_tsid gru_thread_state 0 26368 &enable_so_xpnet_send_fndecl_26368
156780 +enable_so_buffer_length_TAG_TW_Ioctl_Driver_Command_26369 buffer_length TAG_TW_Ioctl_Driver_Command 0 26369 NULL
156781 +enable_so_ac_last_group_ocfs2_alloc_context_26384 ac_last_group ocfs2_alloc_context 0 26384 NULL
156782 +enable_so_dccp_sendmsg_fndecl_26385 dccp_sendmsg fndecl 3 26385 NULL
156783 +enable_so_mrp_attr_create_fndecl_26390 mrp_attr_create fndecl 3 26390 NULL
156784 +enable_so_dict_size_comp_opts_26391 dict_size comp_opts 0 26391 NULL
156785 +enable_so_maximum_num_physicals_aac_dev_26393 maximum_num_physicals aac_dev 0 26393 NULL
156786 +enable_so_lcd_write_fndecl_26394 lcd_write fndecl 3 26394 NULL nohasharray
156787 +enable_so___krealloc_fndecl_26394 __krealloc fndecl 2 26394 &enable_so_lcd_write_fndecl_26394
156788 +enable_so_transcnt_elsa_hw_26395 transcnt elsa_hw 0 26395 NULL
156789 +enable_so_get_user_cpu_mask_fndecl_26398 get_user_cpu_mask fndecl 2 26398 NULL
156790 +enable_so_convert_ctx_access_bpf_verifier_ops_26399 convert_ctx_access bpf_verifier_ops 0 26399 NULL
156791 +enable_so_omap_hwmod_count_resources_fndecl_26400 omap_hwmod_count_resources fndecl 0 26400 NULL nohasharray
156792 +enable_so_ea_init_fndecl_26400 ea_init fndecl 5 26400 &enable_so_omap_hwmod_count_resources_fndecl_26400
156793 +enable_so_gbuffers_vardecl_meye_c_26402 gbuffers vardecl_meye.c 0 26402 NULL
156794 +enable_so_xhci_giveback_urb_in_irq_fndecl_26403 xhci_giveback_urb_in_irq fndecl 3 26403 NULL nohasharray
156795 +enable_so_bad_peb_limit_ubi_device_26403 bad_peb_limit ubi_device 0 26403 &enable_so_xhci_giveback_urb_in_irq_fndecl_26403
156796 +enable_so_netlbl_catmap_walk_fndecl_26405 netlbl_catmap_walk fndecl 0-2 26405 NULL
156797 +enable_so_height_drm_mode_create_dumb_26406 height drm_mode_create_dumb 0 26406 NULL
156798 +enable_so_residualByteCnt_status_entry_26414 residualByteCnt status_entry 0 26414 NULL
156799 +enable_so_krealloc_fndecl_26415 krealloc fndecl 2 26415 NULL
156800 +enable_so_crtc_htotal_drm_display_mode_26418 crtc_htotal drm_display_mode 0 26418 NULL
156801 +enable_so_mmio_size_lpss_private_data_26423 mmio_size lpss_private_data 0 26423 NULL
156802 +enable_so_mod_start_extent_map_26431 mod_start extent_map 0 26431 NULL nohasharray
156803 +enable_so_acpi_os_allocate_fndecl_26431 acpi_os_allocate fndecl 1 26431 &enable_so_mod_start_extent_map_26431
156804 +enable_so_wtmax_nfs_fsinfo_26434 wtmax nfs_fsinfo 0 26434 NULL
156805 +enable_so___adjust_resource_fndecl_26436 __adjust_resource fndecl 3-2 26436 NULL
156806 +enable_so_packets_snd_urb_ctx_26437 packets snd_urb_ctx 0 26437 NULL
156807 +enable_so_map_capacity_cw1200_queue_stats_26439 map_capacity cw1200_queue_stats 0 26439 NULL
156808 +enable_so_start_cif_cam_fndecl_26442 start_cif_cam fndecl 0 26442 NULL
156809 +enable_so_compute_pipe_count_kgd2kfd_shared_resources_26445 compute_pipe_count kgd2kfd_shared_resources 0 26445 NULL
156810 +enable_so_sierra_net_change_mtu_fndecl_26446 sierra_net_change_mtu fndecl 2 26446 NULL nohasharray
156811 +enable_so_max_req_size_mmc_host_26446 max_req_size mmc_host 0 26446 &enable_so_sierra_net_change_mtu_fndecl_26446
156812 +enable_so_size_aper_size_info_fixed_26447 size aper_size_info_fixed 0 26447 NULL
156813 +enable_so_width_cobalt_stream_26451 width cobalt_stream 0 26451 NULL
156814 +enable_so___xfs_end_io_direct_write_fndecl_26454 __xfs_end_io_direct_write fndecl 3-4 26454 NULL
156815 +enable_so_op_count_rm_rdma_op_26455 op_count rm_rdma_op 0 26455 NULL
156816 +enable_so_qp_memcpy_to_queue_iov_fndecl_26456 qp_memcpy_to_queue_iov fndecl 5-2 26456 NULL
156817 +enable_so_global_irq_base_acpi_madt_io_apic_26467 global_irq_base acpi_madt_io_apic 0 26467 NULL
156818 +enable_so_usbat_bulk_read_fndecl_26469 usbat_bulk_read fndecl 3-4 26469 NULL
156819 +enable_so_tpg_reset_source_fndecl_26472 tpg_reset_source fndecl 2-3 26472 NULL
156820 +enable_so_pbufsctxt_qib_devdata_26473 pbufsctxt qib_devdata 0 26473 NULL
156821 +enable_so_iscsi_conn_context_id_iscsi_kcqe_26475 iscsi_conn_context_id iscsi_kcqe 0 26475 NULL
156822 +enable_so_nr_kioctx_table_26477 nr kioctx_table 0 26477 NULL
156823 +enable_so_len_seq_buf_26481 len seq_buf 0 26481 NULL
156824 +enable_so_page_cache_next_hole_fndecl_26482 page_cache_next_hole fndecl 0-2 26482 NULL
156825 +enable_so_max_osd_ceph_osdmap_26483 max_osd ceph_osdmap 0 26483 NULL
156826 +enable_so_queue_cnt_fndecl_26484 queue_cnt fndecl 0 26484 NULL
156827 +enable_so_count_xfs_dir2_sf_hdr_26486 count xfs_dir2_sf_hdr 0 26486 NULL
156828 +enable_so_setup_max_cpus_vardecl_26488 setup_max_cpus vardecl 0 26488 NULL
156829 +enable_so_pa_lstart_ext4_prealloc_space_26493 pa_lstart ext4_prealloc_space 0 26493 NULL
156830 +enable_so_videobuf_read_stream_fndecl_26495 videobuf_read_stream fndecl 3 26495 NULL
156831 +enable_so_ndr_start_nd_region_26496 ndr_start nd_region 0 26496 NULL
156832 +enable_so_remap_and_issue_overwrite_fndecl_26499 remap_and_issue_overwrite fndecl 3 26499 NULL
156833 +enable_so_setkey_fndecl_26520 setkey fndecl 3 26520 NULL
156834 +enable_so_t4_max_cq_depth_c4iw_hw_queue_26526 t4_max_cq_depth c4iw_hw_queue 0 26526 NULL
156835 +enable_so_vmap_fndecl_26530 vmap fndecl 2 26530 NULL
156836 +enable_so_sync_buf_offs_pvr2_ioread_26534 sync_buf_offs pvr2_ioread 0 26534 NULL
156837 +enable_so_myri10ge_max_slices_vardecl_myri10ge_c_26536 myri10ge_max_slices vardecl_myri10ge.c 0 26536 NULL
156838 +enable_so_npages_kvm_memory_slot_26541 npages kvm_memory_slot 0 26541 NULL
156839 +enable_so_nfsd_drc_max_mem_vardecl_26544 nfsd_drc_max_mem vardecl 0 26544 NULL nohasharray
156840 +enable_so_sctp_setsockopt_default_sndinfo_fndecl_26544 sctp_setsockopt_default_sndinfo fndecl 3 26544 &enable_so_nfsd_drc_max_mem_vardecl_26544
156841 +enable_so_onenand_write_fndecl_26546 onenand_write fndecl 2 26546 NULL
156842 +enable_so_il4965_rs_move_legacy_other_fndecl_26556 il4965_rs_move_legacy_other fndecl 5 26556 NULL
156843 +enable_so_pci_irq_pcmcia_socket_26558 pci_irq pcmcia_socket 0 26558 NULL
156844 +enable_so_maxdepth_sfq_sched_data_26560 maxdepth sfq_sched_data 0 26560 NULL
156845 +enable_so_cld_pipe_downcall_fndecl_26561 cld_pipe_downcall fndecl 3 26561 NULL
156846 +enable_so_fifo_blocks_vxge_hw_fifo_config_26565 fifo_blocks vxge_hw_fifo_config 0 26565 NULL
156847 +enable_so_ieee80211_if_read_uapsd_max_sp_len_fndecl_26568 ieee80211_if_read_uapsd_max_sp_len fndecl 3 26568 NULL
156848 +enable_so_br_change_mtu_fndecl_26571 br_change_mtu fndecl 2 26571 NULL
156849 +enable_so_wMaxSegmentSize_usb_cdc_mbim_desc_26572 wMaxSegmentSize usb_cdc_mbim_desc 0 26572 NULL
156850 +enable_so_nfs4_write_cached_acl_fndecl_26573 nfs4_write_cached_acl fndecl 4 26573 NULL
156851 +enable_so_sd_log_flush_head_gfs2_sbd_26577 sd_log_flush_head gfs2_sbd 0 26577 NULL
156852 +enable_so_smbios_entry_point_size_vardecl_dmi_scan_c_26579 smbios_entry_point_size vardecl_dmi_scan.c 0 26579 NULL nohasharray
156853 +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
156854 +enable_so_s_reserved_gdt_blocks_ext3_super_block_26580 s_reserved_gdt_blocks ext3_super_block 0 26580 NULL
156855 +enable_so_read_tree_block_fndecl_26587 read_tree_block fndecl 2 26587 NULL
156856 +enable_so_bytes_per_word_tegra_slink_data_26590 bytes_per_word tegra_slink_data 0 26590 NULL
156857 +enable_so_nvme_trans_completion_fndecl_26597 nvme_trans_completion fndecl 0 26597 NULL
156858 +enable_so_tx_desc_count_xgbe_prv_data_26603 tx_desc_count xgbe_prv_data 0 26603 NULL
156859 +enable_so_UMAsize_sis_video_info_26611 UMAsize sis_video_info 0 26611 NULL
156860 +enable_so_width_drm_vmw_size_26615 width drm_vmw_size 0 26615 NULL
156861 +enable_so_control_blocks_gru_create_context_req_26616 control_blocks gru_create_context_req 0 26616 NULL
156862 +enable_so_data_out_ep_vub300_mmc_host_26618 data_out_ep vub300_mmc_host 0 26618 NULL
156863 +enable_so_airspy_convert_stream_fndecl_26619 airspy_convert_stream fndecl 0-4 26619 NULL
156864 +enable_so_usb_rh_urb_dequeue_fndecl_26620 usb_rh_urb_dequeue fndecl 3 26620 NULL
156865 +enable_so_smscore_load_firmware_family2_fndecl_26621 smscore_load_firmware_family2 fndecl 3 26621 NULL
156866 +enable_so_hub_port_connect_change_fndecl_26625 hub_port_connect_change fndecl 2 26625 NULL
156867 +enable_so_data_len_ipmi_msg_26626 data_len ipmi_msg 0 26626 NULL
156868 +enable_so_l2_fhdr_pkt_len_l2_fhdr_26630 l2_fhdr_pkt_len l2_fhdr 0 26630 NULL nohasharray
156869 +enable_so_cache_write_fndecl_26630 cache_write fndecl 3 26630 &enable_so_l2_fhdr_pkt_len_l2_fhdr_26630
156870 +enable_so_facs_acpi_table_fadt_26632 facs acpi_table_fadt 0 26632 NULL
156871 +enable_so_mpt_lan_receive_post_turbo_fndecl_26635 mpt_lan_receive_post_turbo fndecl 2 26635 NULL
156872 +enable_so_qxl_draw_dirty_fb_fndecl_26636 qxl_draw_dirty_fb fndecl 7 26636 NULL
156873 +enable_so_i40e_change_mtu_fndecl_26637 i40e_change_mtu fndecl 2 26637 NULL
156874 +enable_so_aac_sa_ioremap_fndecl_26639 aac_sa_ioremap fndecl 2 26639 NULL nohasharray
156875 +enable_so_h_length_dlm_header_26639 h_length dlm_header 0 26639 &enable_so_aac_sa_ioremap_fndecl_26639 nohasharray
156876 +enable_so_irias_new_octseq_value_fndecl_26639 irias_new_octseq_value fndecl 2 26639 &enable_so_h_length_dlm_header_26639
156877 +enable_so_len_tda10071_cmd_26641 len tda10071_cmd 0 26641 NULL nohasharray
156878 +enable_so_fh_size_knfsd_fh_26641 fh_size knfsd_fh 0 26641 &enable_so_len_tda10071_cmd_26641
156879 +enable_so_sys_madvise_fndecl_26642 sys_madvise fndecl 2-1 26642 NULL nohasharray
156880 +enable_so_size_drm_global_reference_26642 size drm_global_reference 0 26642 &enable_so_sys_madvise_fndecl_26642
156881 +enable_so_platform_device_alloc_fndecl_26645 platform_device_alloc fndecl 2 26645 NULL nohasharray
156882 +enable_so_read_file_antenna_fndecl_26645 read_file_antenna fndecl 3 26645 &enable_so_platform_device_alloc_fndecl_26645
156883 +enable_so_n_namesz_elf64_note_26646 n_namesz elf64_note 0 26646 NULL
156884 +enable_so_max_wqes_mlx4_caps_26647 max_wqes mlx4_caps 0 26647 NULL
156885 +enable_so_spi_populate_width_msg_fndecl_26651 spi_populate_width_msg fndecl 0 26651 NULL
156886 +enable_so_front_len_ceph_msgpool_26653 front_len ceph_msgpool 0 26653 NULL
156887 +enable_so_pmcraid_get_minor_fndecl_26656 pmcraid_get_minor fndecl 0 26656 NULL
156888 +enable_so_nr_recvmsg_fndecl_26658 nr_recvmsg fndecl 3 26658 NULL
156889 +enable_so_jbd2_journal_begin_ordered_truncate_fndecl_26661 jbd2_journal_begin_ordered_truncate fndecl 3 26661 NULL
156890 +enable_so_iio_device_add_event_sysfs_fndecl_26664 iio_device_add_event_sysfs fndecl 0 26664 NULL
156891 +enable_so_hdlc_change_mtu_fndecl_26672 hdlc_change_mtu fndecl 2 26672 NULL
156892 +enable_so_oobsize_mtd_info_26683 oobsize mtd_info 0 26683 NULL
156893 +enable_so_swap_cgroup_swapon_fndecl_26685 swap_cgroup_swapon fndecl 2 26685 NULL
156894 +enable_so_omap1_spi100k_txrx_pio_fndecl_26692 omap1_spi100k_txrx_pio fndecl 0 26692 NULL nohasharray
156895 +enable_so_blk_msg_write_fndecl_26692 blk_msg_write fndecl 3 26692 &enable_so_omap1_spi100k_txrx_pio_fndecl_26692
156896 +enable_so_rx_buff_len_amd8111e_priv_26693 rx_buff_len amd8111e_priv 0 26693 NULL
156897 +enable_so_raw_request_hid_ll_driver_26699 raw_request hid_ll_driver 0 26699 NULL
156898 +enable_so_packet_snd_fndecl_26705 packet_snd fndecl 3 26705 NULL
156899 +enable_so_musb_ep_program_fndecl_26707 musb_ep_program fndecl 7 26707 NULL
156900 +enable_so_x509_extract_name_segment_fndecl_26716 x509_extract_name_segment fndecl 5 26716 NULL
156901 +enable_so_i915_gem_obj_ggtt_offset_view_fndecl_26723 i915_gem_obj_ggtt_offset_view fndecl 0 26723 NULL
156902 +enable_so_wil_read_back_fndecl_26724 wil_read_back fndecl 3 26724 NULL
156903 +enable_so_max_transfer_size_rndis_init_c_26725 max_transfer_size rndis_init_c 0 26725 NULL
156904 +enable_so_fuse_copy_pages_fndecl_26731 fuse_copy_pages fndecl 2 26731 NULL
156905 +enable_so_ocfs2_xattr_set_handle_fndecl_26732 ocfs2_xattr_set_handle fndecl 7 26732 NULL
156906 +enable_so_cache_downcall_fndecl_26737 cache_downcall fndecl 3 26737 NULL
156907 +enable_so_minor_uart_driver_26739 minor uart_driver 0 26739 NULL
156908 +enable_so_xfs_filestream_lookup_ag_fndecl_26744 xfs_filestream_lookup_ag fndecl 0 26744 NULL nohasharray
156909 +enable_so_add_index_fndecl_26744 add_index fndecl 0 26744 &enable_so_xfs_filestream_lookup_ag_fndecl_26744
156910 +enable_so_block_size_befs_sb_info_26751 block_size befs_sb_info 0 26751 NULL
156911 +enable_so_len_osd_sg_entry_26755 len osd_sg_entry 0 26755 NULL
156912 +enable_so_raw_serial_size_pkcs7_parse_context_26761 raw_serial_size pkcs7_parse_context 0 26761 NULL
156913 +enable_so_num_phys_expander_device_26765 num_phys expander_device 0 26765 NULL
156914 +enable_so_nAcks_rxrpc_ackpacket_26767 nAcks rxrpc_ackpacket 0 26767 NULL
156915 +enable_so_tipc_send_stream_fndecl_26771 tipc_send_stream fndecl 3 26771 NULL
156916 +enable_so_hb_size_hashbin_t_26779 hb_size hashbin_t 0 26779 NULL nohasharray
156917 +enable_so_fw_iso_buffer_alloc_fndecl_26779 fw_iso_buffer_alloc fndecl 2 26779 &enable_so_hb_size_hashbin_t_26779
156918 +enable_so_audit_unpack_string_fndecl_26791 audit_unpack_string fndecl 3 26791 NULL
156919 +enable_so_ocfs2_cache_block_dealloc_fndecl_26800 ocfs2_cache_block_dealloc fndecl 6-5-4 26800 NULL
156920 +enable_so_width_v4l2_rect_26802 width v4l2_rect 0 26802 NULL nohasharray
156921 +enable_so_sge_cnt_rdma_iu_26802 sge_cnt rdma_iu 0 26802 &enable_so_width_v4l2_rect_26802
156922 +enable_so_fb_sys_read_fndecl_26817 fb_sys_read fndecl 3 26817 NULL
156923 +enable_so_ramdisk_image_setup_header_26821 ramdisk_image setup_header 0 26821 NULL nohasharray
156924 +enable_so_do_read_fault_fndecl_26821 do_read_fault fndecl 3-5 26821 &enable_so_ramdisk_image_setup_header_26821
156925 +enable_so_qlcnic_max_rings_fndecl_26823 qlcnic_max_rings fndecl 0-2 26823 NULL
156926 +enable_so_l2tp_ip_recvmsg_fndecl_26826 l2tp_ip_recvmsg fndecl 3 26826 NULL
156927 +enable_so_ath6kl_mgmt_powersave_ap_fndecl_26828 ath6kl_mgmt_powersave_ap fndecl 6 26828 NULL
156928 +enable_so_bEndpointAddress_usb_endpoint_descriptor_26829 bEndpointAddress usb_endpoint_descriptor 0 26829 NULL
156929 +enable_so_vc_screenbuf_size_vc_data_26832 vc_screenbuf_size vc_data 0 26832 NULL nohasharray
156930 +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
156931 +enable_so_edid_size_ufx_data_26833 edid_size ufx_data 0 26833 NULL
156932 +enable_so_header_sectors_per_block_partition_26836 header_sectors_per_block partition 0 26836 NULL
156933 +enable_so_at24_write_fndecl_26838 at24_write fndecl 4-3 26838 NULL
156934 +enable_so_size_sram_reserve_26839 size sram_reserve 0 26839 NULL
156935 +enable_so_ipath_sdma_descq_cnt_ipath_devdata_26843 ipath_sdma_descq_cnt ipath_devdata 0 26843 NULL
156936 +enable_so_nv50_ram_get_fndecl_26846 nv50_ram_get fndecl 2-3-5 26846 NULL
156937 +enable_so_offset_resource_entry_26851 offset resource_entry 0 26851 NULL
156938 +enable_so_hsi_register_board_info_fndecl_26863 hsi_register_board_info fndecl 2 26863 NULL
156939 +enable_so_osd_req_add_get_attr_page_fndecl_26866 osd_req_add_get_attr_page fndecl 4 26866 NULL
156940 +enable_so_dlc_usb_8dev_rx_msg_26873 dlc usb_8dev_rx_msg 0 26873 NULL
156941 +enable_so_pci_address_to_pio_fndecl_26876 pci_address_to_pio fndecl 0-1 26876 NULL
156942 +enable_so_mwifiex_sdio_card_to_host_mp_aggr_fndecl_26877 mwifiex_sdio_card_to_host_mp_aggr fndecl 2 26877 NULL
156943 +enable_so_dev_bytenr_btrfsic_block_data_ctx_26882 dev_bytenr btrfsic_block_data_ctx 0 26882 NULL nohasharray
156944 +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
156945 +enable_so_out_skip_ceph_connection_26886 out_skip ceph_connection 0 26886 NULL
156946 +enable_so_xdr_process_buf_fndecl_26887 xdr_process_buf fndecl 3-2 26887 NULL
156947 +enable_so_head_floppy_struct_26890 head floppy_struct 0 26890 NULL nohasharray
156948 +enable_so_kvm_read_nested_guest_page_fndecl_26890 kvm_read_nested_guest_page fndecl 5 26890 &enable_so_head_floppy_struct_26890
156949 +enable_so_agno_xfs_alloc_arg_26892 agno xfs_alloc_arg 0 26892 NULL
156950 +enable_so_read_file_phy_err_fndecl_26901 read_file_phy_err fndecl 3 26901 NULL
156951 +enable_so_find_get_pages_contig_fndecl_26902 find_get_pages_contig fndecl 0 26902 NULL
156952 +enable_so_raid_disks_r5conf_26904 raid_disks r5conf 0 26904 NULL
156953 +enable_so_reexecute_instruction_fndecl_26906 reexecute_instruction fndecl 2 26906 NULL
156954 +enable_so_ctx_len_xfrm_user_sec_ctx_26911 ctx_len xfrm_user_sec_ctx 0 26911 NULL nohasharray
156955 +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
156956 +enable_so_port_event_fndecl_26912 port_event fndecl 2 26912 NULL
156957 +enable_so_num_slots_rtsx_pcr_26914 num_slots rtsx_pcr 0 26914 NULL
156958 +enable_so_hscx_empty_fifo_fndecl_26915 hscx_empty_fifo fndecl 2 26915 NULL nohasharray
156959 +enable_so_jffs2_flash_writev_fndecl_26915 jffs2_flash_writev fndecl 4 26915 &enable_so_hscx_empty_fifo_fndecl_26915
156960 +enable_so_edma_prep_slave_sg_fndecl_26917 edma_prep_slave_sg fndecl 3 26917 NULL
156961 +enable_so_get_wep_key_fndecl_26919 get_wep_key fndecl 0-4 26919 NULL nohasharray
156962 +enable_so_cache_ctr_fndecl_26919 cache_ctr fndecl 2 26919 &enable_so_get_wep_key_fndecl_26919
156963 +enable_so_to_skip_sd_26922 to_skip sd 0 26922 NULL
156964 +enable_so_count_vnic_res_26925 count vnic_res 0 26925 NULL
156965 +enable_so_depth_vpdma_data_format_26927 depth vpdma_data_format 0 26927 NULL
156966 +enable_so_dst_bytes_x86_instruction_info_26935 dst_bytes x86_instruction_info 0 26935 NULL nohasharray
156967 +enable_so_round_event_name_len_fndecl_26935 round_event_name_len fndecl 0 26935 &enable_so_dst_bytes_x86_instruction_info_26935
156968 +enable_so_get_bits_fndecl_26938 get_bits fndecl 0-2 26938 NULL
156969 +enable_so_granularity_vx_ibl_info_26939 granularity vx_ibl_info 0 26939 NULL
156970 +enable_so_il4965_pass_packet_to_mac80211_fndecl_26945 il4965_pass_packet_to_mac80211 fndecl 3 26945 NULL
156971 +enable_so_br_vlan_set_default_pvid_fndecl_26946 br_vlan_set_default_pvid fndecl 2 26946 NULL nohasharray
156972 +enable_so_chunk_size_drxk_config_26946 chunk_size drxk_config 0 26946 &enable_so_br_vlan_set_default_pvid_fndecl_26946
156973 +enable_so_stripe_set_idx_fndecl_26948 stripe_set_idx fndecl 1 26948 NULL
156974 +enable_so_width_v4l2_pix_format_mplane_26950 width v4l2_pix_format_mplane 0 26950 NULL
156975 +enable_so_cid_cnic_context_26952 cid cnic_context 0 26952 NULL
156976 +enable_so_bulk_out_endp_ttusbir_26955 bulk_out_endp ttusbir 0 26955 NULL nohasharray
156977 +enable_so_id_tps6586x_subdev_info_26955 id tps6586x_subdev_info 0 26955 &enable_so_bulk_out_endp_ttusbir_26955
156978 +enable_so_sky2_receive_fndecl_26956 sky2_receive fndecl 2 26956 NULL
156979 +enable_so_kvm_vcpu_gfn_to_hva_fndecl_26957 kvm_vcpu_gfn_to_hva fndecl 2 26957 NULL
156980 +enable_so_carl9170_rx_untie_data_fndecl_26958 carl9170_rx_untie_data fndecl 3 26958 NULL
156981 +enable_so_bulk_in_ep_bfusb_data_26959 bulk_in_ep bfusb_data 0 26959 NULL
156982 +enable_so_cfpkt_extr_trail_fndecl_26960 cfpkt_extr_trail fndecl 3 26960 NULL
156983 +enable_so_wep_key_not_found_read_fndecl_26962 wep_key_not_found_read fndecl 3 26962 NULL nohasharray
156984 +enable_so_iso_sched_alloc_fndecl_26962 iso_sched_alloc fndecl 1 26962 &enable_so_wep_key_not_found_read_fndecl_26962
156985 +enable_so_len_hidraw_report_26966 len hidraw_report 0 26966 NULL
156986 +enable_so_bt_sock_recvmsg_fndecl_26967 bt_sock_recvmsg fndecl 3 26967 NULL
156987 +enable_so_lov_mds_md_size_fndecl_26975 lov_mds_md_size fndecl 1-0 26975 NULL
156988 +enable_so_brk_mm_struct_26976 brk mm_struct 0 26976 NULL nohasharray
156989 +enable_so_init_allocator_fndecl_26976 init_allocator fndecl 3 26976 &enable_so_brk_mm_struct_26976
156990 +enable_so_ctrl_out_pipe_hfcusb_data_26981 ctrl_out_pipe hfcusb_data 0 26981 NULL
156991 +enable_so_num_waitchks_drm_tegra_submit_26983 num_waitchks drm_tegra_submit 0 26983 NULL
156992 +enable_so_skd_skreq_prep_buffering_fndecl_26987 skd_skreq_prep_buffering fndecl 3 26987 NULL
156993 +enable_so___tipc_send_stream_fndecl_26990 __tipc_send_stream fndecl 3 26990 NULL nohasharray
156994 +enable_so_smb_sendv_fndecl_26990 smb_sendv fndecl 3 26990 &enable_so___tipc_send_stream_fndecl_26990
156995 +enable_so_address_length_acpi_address64_attribute_26992 address_length acpi_address64_attribute 0 26992 NULL
156996 +enable_so_delete_empty_dnode_fndecl_26994 delete_empty_dnode fndecl 2 26994 NULL
156997 +enable_so_buffer_bytes_snd_card_asihpi_pcm_26997 buffer_bytes snd_card_asihpi_pcm 0 26997 NULL
156998 +enable_so_ser_write_chunk_vardecl_caif_serial_c_26999 ser_write_chunk vardecl_caif_serial.c 0 26999 NULL
156999 +enable_so_get_mpc_size_fndecl_27000 get_mpc_size fndecl 0 27000 NULL
157000 +enable_so_netxen_alloc_sds_rings_fndecl_27002 netxen_alloc_sds_rings fndecl 2 27002 NULL
157001 +enable_so_task_array_size_cnic_local_27004 task_array_size cnic_local 0 27004 NULL
157002 +enable_so_nfs4_set_security_label_fndecl_27018 nfs4_set_security_label fndecl 3 27018 NULL
157003 +enable_so_ath6kl_cfg80211_connect_event_fndecl_27024 ath6kl_cfg80211_connect_event fndecl 7-8-9 27024 NULL nohasharray
157004 +enable_so_cts_cbc_decrypt_fndecl_27024 cts_cbc_decrypt fndecl 5 27024 &enable_so_ath6kl_cfg80211_connect_event_fndecl_27024
157005 +enable_so_dx_fb_copyarea_27025 dx fb_copyarea 0 27025 NULL
157006 +enable_so___bufio_new_fndecl_27029 __bufio_new fndecl 2 27029 NULL
157007 +enable_so_overhead_sctp_packet_27032 overhead sctp_packet 0 27032 NULL
157008 +enable_so_read_capacity_16_fndecl_27039 read_capacity_16 fndecl 0 27039 NULL
157009 +enable_so_device_pci_dev_27044 device pci_dev 0 27044 NULL
157010 +enable_so_data_read_fndecl_27045 data_read fndecl 3 27045 NULL
157011 +enable_so_remains_vardecl_initramfs_c_27049 remains vardecl_initramfs.c 0 27049 NULL
157012 +enable_so_brcmf_sdiod_ramrw_fndecl_27055 brcmf_sdiod_ramrw fndecl 5-3 27055 NULL
157013 +enable_so_indices_fm10k_ring_feature_27057 indices fm10k_ring_feature 0 27057 NULL
157014 +enable_so_iscsi_post_host_event_fndecl_27058 iscsi_post_host_event fndecl 4 27058 NULL
157015 +enable_so_sb_init_dio_done_wq_fndecl_27065 sb_init_dio_done_wq fndecl 0 27065 NULL
157016 +enable_so_z_decompress_fndecl_27072 z_decompress fndecl 5-3 27072 NULL
157017 +enable_so_bm_init_fndecl_27082 bm_init fndecl 2 27082 NULL
157018 +enable_so_new_layout_mddev_27083 new_layout mddev 0 27083 NULL
157019 +enable_so_max_wqes_rqes_per_q_ocrdma_mbx_query_config_27086 max_wqes_rqes_per_q ocrdma_mbx_query_config 0 27086 NULL
157020 +enable_so_far_set_size_geom_27088 far_set_size geom 0 27088 NULL
157021 +enable_so_vid_hdr_aloffset_ubi_device_27089 vid_hdr_aloffset ubi_device 0 27089 NULL
157022 +enable_so_file_size_perf_mmap_event_27090 file_size perf_mmap_event 0 27090 NULL nohasharray
157023 +enable_so_mei_devt_vardecl_main_c_27090 mei_devt vardecl_main.c 0 27090 &enable_so_file_size_perf_mmap_event_27090
157024 +enable_so_num_counters_compat_arpt_replace_27091 num_counters compat_arpt_replace 0 27091 NULL
157025 +enable_so_smk_write_mapped_fndecl_27100 smk_write_mapped fndecl 3 27100 NULL
157026 +enable_so_ab8500_hwreg_write_fndecl_27104 ab8500_hwreg_write fndecl 3 27104 NULL
157027 +enable_so_i_suballoc_bit_ocfs2_dinode_27105 i_suballoc_bit ocfs2_dinode 0 27105 NULL nohasharray
157028 +enable_so___btrfs_alloc_chunk_fndecl_27105 __btrfs_alloc_chunk fndecl 3 27105 &enable_so_i_suballoc_bit_ocfs2_dinode_27105
157029 +enable_so_lastctxt_piobuf_qib_devdata_27106 lastctxt_piobuf qib_devdata 0 27106 NULL
157030 +enable_so_ieee80211_if_read_ap_power_level_fndecl_27109 ieee80211_if_read_ap_power_level fndecl 3 27109 NULL
157031 +enable_so_usb_hcd_link_urb_to_ep_fndecl_27115 usb_hcd_link_urb_to_ep fndecl 0 27115 NULL nohasharray
157032 +enable_so_len_lpfc_debug_27115 len lpfc_debug 0 27115 &enable_so_usb_hcd_link_urb_to_ep_fndecl_27115
157033 +enable_so_gpa_gfn_to_hva_cache_27125 gpa gfn_to_hva_cache 0 27125 NULL
157034 +enable_so_mwifiex_sdio_card_to_host_fndecl_27127 mwifiex_sdio_card_to_host fndecl 4 27127 NULL nohasharray
157035 +enable_so_non_atomic_pte_lookup_fndecl_27127 non_atomic_pte_lookup fndecl 2 27127 &enable_so_mwifiex_sdio_card_to_host_fndecl_27127
157036 +enable_so_pd_count_ocrdma_alloc_pd_range_rsp_27128 pd_count ocrdma_alloc_pd_range_rsp 0 27128 NULL
157037 +enable_so_smp_cmd_sign_info_fndecl_27131 smp_cmd_sign_info fndecl 0 27131 NULL
157038 +enable_so_sys32_fadvise64_fndecl_27136 sys32_fadvise64 fndecl 4 27136 NULL
157039 +enable_so_mtu_rfcomm_dlc_27139 mtu rfcomm_dlc 0 27139 NULL nohasharray
157040 +enable_so_do_proc_readlink_fndecl_27139 do_proc_readlink fndecl 3 27139 &enable_so_mtu_rfcomm_dlc_27139
157041 +enable_so_rxkad_sg_set_buf2_fndecl_27140 rxkad_sg_set_buf2 fndecl 3 27140 NULL
157042 +enable_so_rx_ps_bsize0_e1000_adapter_27144 rx_ps_bsize0 e1000_adapter 0 27144 NULL
157043 +enable_so_compat_sys_pselect6_fndecl_27146 compat_sys_pselect6 fndecl 1 27146 NULL
157044 +enable_so_nilfs_attach_checkpoint_fndecl_27152 nilfs_attach_checkpoint fndecl 2 27152 NULL
157045 +enable_so__nfs4_proc_readdir_fndecl_27153 _nfs4_proc_readdir fndecl 5 27153 NULL
157046 +enable_so_dgram_recvmsg_fndecl_27155 dgram_recvmsg fndecl 3 27155 NULL
157047 +enable_so_total_h_mt9m001_27157 total_h mt9m001 0 27157 NULL
157048 +enable_so_len_nf_ct_ext_type_27159 len nf_ct_ext_type 0 27159 NULL
157049 +enable_so_bbRcvSizeLsb_csp_27167 bbRcvSizeLsb csp 0 27167 NULL
157050 +enable_so_len_rdesc0_27169 len rdesc0 0 27169 NULL
157051 +enable_so_cow_start_ocfs2_cow_context_27171 cow_start ocfs2_cow_context 0 27171 NULL
157052 +enable_so_bnep_send_fndecl_27175 bnep_send fndecl 3 27175 NULL
157053 +enable_so_e100_change_mtu_fndecl_27180 e100_change_mtu fndecl 2 27180 NULL
157054 +enable_so_isku_sysfs_read_light_fndecl_27183 isku_sysfs_read_light fndecl 6 27183 NULL
157055 +enable_so_compat_sys_ftruncate_fndecl_27189 compat_sys_ftruncate fndecl 2 27189 NULL
157056 +enable_so_brcmf_sdio_bus_txctl_fndecl_27192 brcmf_sdio_bus_txctl fndecl 3 27192 NULL
157057 +enable_so_write_tty_operations_27198 write tty_operations 0 27198 NULL nohasharray
157058 +enable_so_caif_stream_recvmsg_fndecl_27198 caif_stream_recvmsg fndecl 3 27198 &enable_so_write_tty_operations_27198
157059 +enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208 ath6kl_wmi_scanparams_cmd fndecl 2 27208 NULL nohasharray
157060 +enable_so_cfs_hash_rehash_bits_fndecl_27208 cfs_hash_rehash_bits fndecl 0 27208 &enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208
157061 +enable_so___ext4_read_dirblock_fndecl_27210 __ext4_read_dirblock fndecl 2 27210 NULL
157062 +enable_so_block_size_scsi_tape_27212 block_size scsi_tape 0 27212 NULL
157063 +enable_so_num_prior_parent_snaps_ceph_mds_snap_realm_27215 num_prior_parent_snaps ceph_mds_snap_realm 0 27215 NULL
157064 +enable_so_sdio_memcpy_fromio_fndecl_27218 sdio_memcpy_fromio fndecl 4 27218 NULL
157065 +enable_so_sym_prepare_nego_fndecl_27219 sym_prepare_nego fndecl 0 27219 NULL
157066 +enable_so_em_canid_change_fndecl_27221 em_canid_change fndecl 3 27221 NULL
157067 +enable_so_bm_bn_xfs_buf_map_27223 bm_bn xfs_buf_map 0 27223 NULL
157068 +enable_so_gsm_dlci_data_fndecl_27224 gsm_dlci_data fndecl 3 27224 NULL
157069 +enable_so_arm_db_page_mthca_create_cq_27227 arm_db_page mthca_create_cq 0 27227 NULL
157070 +enable_so_iwl_store_ucode_sec_fndecl_27235 iwl_store_ucode_sec fndecl 4 27235 NULL
157071 +enable_so_qib_cfgctxts_vardecl_27236 qib_cfgctxts vardecl 0 27236 NULL nohasharray
157072 +enable_so_acks_winsz_rxrpc_call_27236 acks_winsz rxrpc_call 0 27236 &enable_so_qib_cfgctxts_vardecl_27236
157073 +enable_so_do_splice_fndecl_27239 do_splice fndecl 5 27239 NULL
157074 +enable_so_hfsplus_brec_find_fndecl_27243 hfsplus_brec_find fndecl 0 27243 NULL
157075 +enable_so_sisusb_recv_bulk_msg_fndecl_27246 sisusb_recv_bulk_msg fndecl 3-2 27246 NULL
157076 +enable_so_skb_read_pdu_data_fndecl_27249 skb_read_pdu_data fndecl 4 27249 NULL
157077 +enable_so_ocfs2_xattr_value_truncate_fndecl_27252 ocfs2_xattr_value_truncate fndecl 3 27252 NULL nohasharray
157078 +enable_so_zoneshift_alauda_card_info_27252 zoneshift alauda_card_info 0 27252 &enable_so_ocfs2_xattr_value_truncate_fndecl_27252
157079 +enable_so_amb_base_i5k_amb_data_27255 amb_base i5k_amb_data 0 27255 NULL
157080 +enable_so_datafab_read_data_fndecl_27257 datafab_read_data fndecl 4 27257 NULL
157081 +enable_so_mx_sb_len_sg_io_hdr_27261 mx_sb_len sg_io_hdr 0 27261 NULL
157082 +enable_so_sector_drbd_interval_27266 sector drbd_interval 0 27266 NULL
157083 +enable_so_truesize_iwl_rx_cmd_buffer_27273 truesize iwl_rx_cmd_buffer 0 27273 NULL
157084 +enable_so_ieee80211_if_write_uapsd_max_sp_len_fndecl_27274 ieee80211_if_write_uapsd_max_sp_len fndecl 3 27274 NULL
157085 +enable_so_bios_hardcoded_edid_size_amdgpu_mode_info_27277 bios_hardcoded_edid_size amdgpu_mode_info 0 27277 NULL
157086 +enable_so_netxen_process_rcv_fndecl_27279 netxen_process_rcv fndecl 4 27279 NULL
157087 +enable_so_alloc_async_fndecl_27283 alloc_async fndecl 1 27283 NULL
157088 +enable_so___nvme_alloc_iod_fndecl_27289 __nvme_alloc_iod fndecl 2-1 27289 NULL
157089 +enable_so_pd_size_blkcg_policy_27297 pd_size blkcg_policy 0 27297 NULL
157090 +enable_so_sector_r10bio_27298 sector r10bio 0 27298 NULL
157091 +enable_so_offset_mlx5_ib_wq_27302 offset mlx5_ib_wq 0 27302 NULL
157092 +enable_so_ath6kl_connect_event_fndecl_27304 ath6kl_connect_event fndecl 7-8-9 27304 NULL
157093 +enable_so_gpu_mem_size_vml_par_27308 gpu_mem_size vml_par 0 27308 NULL nohasharray
157094 +enable_so_cifs_strict_fsync_fndecl_27308 cifs_strict_fsync fndecl 2-3 27308 &enable_so_gpu_mem_size_vml_par_27308
157095 +enable_so_nrelocs_radeon_cs_parser_27313 nrelocs radeon_cs_parser 0 27313 NULL
157096 +enable_so_sctp_recvmsg_fndecl_27314 sctp_recvmsg fndecl 3 27314 NULL
157097 +enable_so_btrfs_token_file_extent_ram_bytes_fndecl_27316 btrfs_token_file_extent_ram_bytes fndecl 0 27316 NULL
157098 +enable_so_chunk_sectors_r5conf_27317 chunk_sectors r5conf 0 27317 NULL
157099 +enable_so_dma_declare_coherent_memory_fndecl_27319 dma_declare_coherent_memory fndecl 4 27319 NULL
157100 +enable_so_lpe_size_sst_pdata_27329 lpe_size sst_pdata 0 27329 NULL
157101 +enable_so_write_buffer_fndecl_27339 write_buffer fndecl 2-0 27339 NULL
157102 +enable_so_align_pad_cqe_rx_t_27341 align_pad cqe_rx_t 0 27341 NULL nohasharray
157103 +enable_so_read_default_ldt_fndecl_27341 read_default_ldt fndecl 2 27341 &enable_so_align_pad_cqe_rx_t_27341
157104 +enable_so_sndbuf_tun_struct_27345 sndbuf tun_struct 0 27345 NULL
157105 +enable_so_acpi_os_map_iomem_fndecl_27346 acpi_os_map_iomem fndecl 2-1 27346 NULL nohasharray
157106 +enable_so_add_numbered_child_fndecl_27346 add_numbered_child fndecl 7-8-3 27346 &enable_so_acpi_os_map_iomem_fndecl_27346
157107 +enable_so_snd_seq_oss_readq_new_fndecl_27352 snd_seq_oss_readq_new fndecl 2 27352 NULL
157108 +enable_so_pix_format_set_size_fndecl_27356 pix_format_set_size fndecl 3-4 27356 NULL nohasharray
157109 +enable_so_offset_gtt_range_27356 offset gtt_range 0 27356 &enable_so_pix_format_set_size_fndecl_27356
157110 +enable_so_static_data_priv_len_wl1271_27357 static_data_priv_len wl1271 0 27357 NULL
157111 +enable_so_n_mcgrps_genl_family_27362 n_mcgrps genl_family 0 27362 NULL
157112 +enable_so_find_new_extents_fndecl_27368 find_new_extents fndecl 5 27368 NULL
157113 +enable_so_channels_pda_pa_curve_data_27369 channels pda_pa_curve_data 0 27369 NULL
157114 +enable_so_num_altsetting_usb_interface_27371 num_altsetting usb_interface 0 27371 NULL
157115 +enable_so_mod_len_ccp_rsa_engine_27374 mod_len ccp_rsa_engine 0 27374 NULL nohasharray
157116 +enable_so_urb_size_tm6000_core_27374 urb_size tm6000_core 0 27374 &enable_so_mod_len_ccp_rsa_engine_27374
157117 +enable_so_dwNtbOutMaxSize_usb_cdc_ncm_ntb_parameters_27384 dwNtbOutMaxSize usb_cdc_ncm_ntb_parameters 0 27384 NULL
157118 +enable_so_mem_base_pch_dev_27386 mem_base pch_dev 0 27386 NULL
157119 +enable_so_msg_namelen_msghdr_27389 msg_namelen msghdr 0 27389 NULL
157120 +enable_so_frame_size_audioformat_27394 frame_size audioformat 0 27394 NULL nohasharray
157121 +enable_so_rs_get_lower_rate_fndecl_27394 rs_get_lower_rate fndecl 3 27394 &enable_so_frame_size_audioformat_27394
157122 +enable_so_ccid_kmem_cache_create_fndecl_27397 ccid_kmem_cache_create fndecl 1 27397 NULL
157123 +enable_so_evdev_ioctl_compat_fndecl_27400 evdev_ioctl_compat fndecl 2 27400 NULL
157124 +enable_so_enc_pools_insert_fndecl_27402 enc_pools_insert fndecl 3 27402 NULL
157125 +enable_so_m_bsize_xfs_mount_27405 m_bsize xfs_mount 0 27405 NULL
157126 +enable_so_max_payload_rpc_xprt_27408 max_payload rpc_xprt 0 27408 NULL
157127 +enable_so_rts_threshold_ipw_priv_27416 rts_threshold ipw_priv 0 27416 NULL
157128 +enable_so_bucket_table_alloc_fndecl_27422 bucket_table_alloc fndecl 2 27422 NULL
157129 +enable_so_dst_frames_snd_pcm_plugin_27424 dst_frames snd_pcm_plugin 0 27424 NULL nohasharray
157130 +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
157131 +enable_so_build_virtual_key_fndecl_27427 build_virtual_key fndecl 2 27427 NULL
157132 +enable_so_ad9523_read_fndecl_27434 ad9523_read fndecl 2 27434 NULL
157133 +enable_so_qp_memcpy_to_queue_fndecl_27437 qp_memcpy_to_queue fndecl 5-2 27437 NULL nohasharray
157134 +enable_so___fsnotify_parent_fndecl_27437 __fsnotify_parent fndecl 0 27437 &enable_so_qp_memcpy_to_queue_fndecl_27437
157135 +enable_so_regmap_spi_async_write_fndecl_27439 regmap_spi_async_write fndecl 3-5 27439 NULL
157136 +enable_so_produce_size_vmci_qp_alloc_info_vmvm_27440 produce_size vmci_qp_alloc_info_vmvm 0 27440 NULL
157137 +enable_so_radeon_vm_block_size_vardecl_27445 radeon_vm_block_size vardecl 0 27445 NULL
157138 +enable_so_lpfc_sriov_nr_virtfn_vardecl_lpfc_attr_c_27446 lpfc_sriov_nr_virtfn vardecl_lpfc_attr.c 0 27446 NULL
157139 +enable_so_dm_table_get_num_targets_fndecl_27451 dm_table_get_num_targets fndecl 0 27451 NULL
157140 +enable_so_compat_ip_setsockopt_fndecl_27453 compat_ip_setsockopt fndecl 5 27453 NULL
157141 +enable_so_set_offset_v2_k_type_fndecl_27455 set_offset_v2_k_type fndecl 2 27455 NULL
157142 +enable_so_nilfs_bmap_do_truncate_fndecl_27459 nilfs_bmap_do_truncate fndecl 0 27459 NULL
157143 +enable_so_xfs_dir3_data_init_fndecl_27460 xfs_dir3_data_init fndecl 2 27460 NULL
157144 +enable_so_io_opt_queue_limits_27462 io_opt queue_limits 0 27462 NULL
157145 +enable_so_next_header_vardecl_initramfs_c_27464 next_header vardecl_initramfs.c 0 27464 NULL
157146 +enable_so_uar_page_sz_mlx4_init_hca_param_27465 uar_page_sz mlx4_init_hca_param 0 27465 NULL
157147 +enable_so_max_slots_nfs4_slot_table_27470 max_slots nfs4_slot_table 0 27470 NULL
157148 +enable_so_window_alignment_fndecl_27476 window_alignment fndecl 0 27476 NULL
157149 +enable_so_size_btrfs_ioctl_ino_path_args_27477 size btrfs_ioctl_ino_path_args 0 27477 NULL
157150 +enable_so_mq_msgsize_default_ipc_namespace_27478 mq_msgsize_default ipc_namespace 0 27478 NULL
157151 +enable_so_min_pnp_mem_27484 min pnp_mem 0 27484 NULL
157152 +enable_so_kim_int_recv_fndecl_27486 kim_int_recv fndecl 3 27486 NULL nohasharray
157153 +enable_so_snd_seq_fifo_resize_fndecl_27486 snd_seq_fifo_resize fndecl 2 27486 &enable_so_kim_int_recv_fndecl_27486
157154 +enable_so_status_udc_data_dma_27488 status udc_data_dma 0 27488 NULL nohasharray
157155 +enable_so_exofs_parent_ino_fndecl_27488 exofs_parent_ino fndecl 0 27488 &enable_so_status_udc_data_dma_27488
157156 +enable_so_drbd_send_drequest_csum_fndecl_27489 drbd_send_drequest_csum fndecl 5 27489 NULL nohasharray
157157 +enable_so_local_nentries_xpc_channel_27489 local_nentries xpc_channel 0 27489 &enable_so_drbd_send_drequest_csum_fndecl_27489
157158 +enable_so_ext3_xattr_block_get_fndecl_27491 ext3_xattr_block_get fndecl 0 27491 NULL
157159 +enable_so_iwl_dbgfs_protection_mode_read_fndecl_27492 iwl_dbgfs_protection_mode_read fndecl 3 27492 NULL
157160 +enable_so_wb_index_nfs_page_27494 wb_index nfs_page 0 27494 NULL
157161 +enable_so_ocfs2_xa_value_truncate_fndecl_27495 ocfs2_xa_value_truncate fndecl 2 27495 NULL nohasharray
157162 +enable_so_ieee80211_if_read_dot11MeshForwarding_fndecl_27495 ieee80211_if_read_dot11MeshForwarding fndecl 3 27495 &enable_so_ocfs2_xa_value_truncate_fndecl_27495
157163 +enable_so_qib_mmap_mem_fndecl_27496 qib_mmap_mem fndecl 3 27496 NULL
157164 +enable_so_rq_size_srpt_rdma_ch_27500 rq_size srpt_rdma_ch 0 27500 NULL nohasharray
157165 +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
157166 +enable_so_lpfc_idiag_queacc_read_fndecl_27501 lpfc_idiag_queacc_read fndecl 3 27501 NULL
157167 +enable_so_rx_buf_size_bnx2x_fastpath_27506 rx_buf_size bnx2x_fastpath 0 27506 NULL
157168 +enable_so_max_qp_sz_mthca_dev_lim_27511 max_qp_sz mthca_dev_lim 0 27511 NULL
157169 +enable_so_stripe_len_map_lookup_27512 stripe_len map_lookup 0 27512 NULL
157170 +enable_so_vis_h_yuv_frame_info_27514 vis_h yuv_frame_info 0 27514 NULL
157171 +enable_so_com90xx_found_fndecl_27525 com90xx_found fndecl 3 27525 NULL
157172 +enable_so_eeprom_size_netdev_private_27532 eeprom_size netdev_private 0 27532 NULL
157173 +enable_so_dvb_demux_read_fndecl_27534 dvb_demux_read fndecl 3 27534 NULL
157174 +enable_so_hlen_raw6_frag_vec_27535 hlen raw6_frag_vec 0 27535 NULL
157175 +enable_so_hsr_dev_change_mtu_fndecl_27537 hsr_dev_change_mtu fndecl 2 27537 NULL
157176 +enable_so_max_mem_ttm_mem_zone_27542 max_mem ttm_mem_zone 0 27542 NULL nohasharray
157177 +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
157178 +enable_so_snd_pcm_plug_slave_size_fndecl_27548 snd_pcm_plug_slave_size fndecl 0-2 27548 NULL
157179 +enable_so_remap_and_issue_fndecl_27555 remap_and_issue fndecl 3 27555 NULL nohasharray
157180 +enable_so_iova_ipath_mregion_27555 iova ipath_mregion 0 27555 &enable_so_remap_and_issue_fndecl_27555
157181 +enable_so_sddr09_write_data_fndecl_27565 sddr09_write_data fndecl 3-2 27565 NULL
157182 +enable_so__wm8993_set_fll_fndecl_27571 _wm8993_set_fll fndecl 4-5 27571 NULL
157183 +enable_so_disabled_cpus_vardecl_27577 disabled_cpus vardecl 0 27577 NULL
157184 +enable_so_count_cxgbi_task_data_27578 count cxgbi_task_data 0 27578 NULL
157185 +enable_so_dev_count_vardecl_smsc_ircc2_c_27579 dev_count vardecl_smsc-ircc2.c 0 27579 NULL
157186 +enable_so_nregions_vhost_memory_27586 nregions vhost_memory 0 27586 NULL
157187 +enable_so_pci_add_ext_cap_save_buffer_fndecl_27587 pci_add_ext_cap_save_buffer fndecl 3 27587 NULL
157188 +enable_so_dvb_usercopy_fndecl_27591 dvb_usercopy fndecl 2 27591 NULL
157189 +enable_so_ipath_init_ibmaxlen_ipath_devdata_27595 ipath_init_ibmaxlen ipath_devdata 0 27595 NULL
157190 +enable_so_md_alloc_fndecl_27600 md_alloc fndecl 1 27600 NULL
157191 +enable_so_btrfs_get_blocks_direct_fndecl_27603 btrfs_get_blocks_direct fndecl 2 27603 NULL
157192 +enable_so_get_sb_block_fndecl_27604 get_sb_block fndecl 0 27604 NULL
157193 +enable_so_iscsi_create_flashnode_conn_fndecl_27605 iscsi_create_flashnode_conn fndecl 4 27605 NULL
157194 +enable_so__rtl92s_firmware_downloadcode_fndecl_27606 _rtl92s_firmware_downloadcode fndecl 3 27606 NULL
157195 +enable_so_packet_length_gl_packet_27608 packet_length gl_packet 0 27608 NULL nohasharray
157196 +enable_so_EraseSize_INFTLrecord_27608 EraseSize INFTLrecord 0 27608 &enable_so_packet_length_gl_packet_27608
157197 +enable_so_read_isac_isac_27627 read_isac isac 0 27627 NULL
157198 +enable_so_data_length_se_cmd_27629 data_length se_cmd 0 27629 NULL nohasharray
157199 +enable_so_retry_mt76_tx_status_27629 retry mt76_tx_status 0 27629 &enable_so_data_length_se_cmd_27629
157200 +enable_so_sta_agg_status_read_fndecl_27641 sta_agg_status_read fndecl 3 27641 NULL
157201 +enable_so_st_scsi_execute_fndecl_27643 st_scsi_execute fndecl 5 27643 NULL
157202 +enable_so_bsize_videobuf_buffer_27645 bsize videobuf_buffer 0 27645 NULL
157203 +enable_so_error_res_proc_context_27648 error res_proc_context 0 27648 NULL
157204 +enable_so_nvkm_event_init_fndecl_27654 nvkm_event_init fndecl 2-3 27654 NULL
157205 +enable_so_period_frames_usb_stream_config_27656 period_frames usb_stream_config 0 27656 NULL
157206 +enable_so_WriteRegs_fndecl_27658 WriteRegs fndecl 4 27658 NULL
157207 +enable_so_efx_ef10_mem_map_size_fndecl_27664 efx_ef10_mem_map_size fndecl 0 27664 NULL
157208 +enable_so_mr_write_fndecl_27670 mr_write fndecl 0 27670 NULL
157209 +enable_so_short_retry_limit_ipw2100_priv_27671 short_retry_limit ipw2100_priv 0 27671 NULL
157210 +enable_so_size_compat_ip6t_replace_27672 size compat_ip6t_replace 0 27672 NULL
157211 +enable_so_ib_umem_get_fndecl_27678 ib_umem_get fndecl 2-3 27678 NULL
157212 +enable_so_tlbflush_write_file_fndecl_27685 tlbflush_write_file fndecl 3 27685 NULL
157213 +enable_so__iwl_dbgfs_prph_reg_write_fndecl_27686 _iwl_dbgfs_prph_reg_write fndecl 3 27686 NULL
157214 +enable_so_bnx2x_iov_init_one_fndecl_27687 bnx2x_iov_init_one fndecl 3 27687 NULL
157215 +enable_so_mt9m111_get_global_gain_fndecl_27689 mt9m111_get_global_gain fndecl 0 27689 NULL
157216 +enable_so_ipv6_get_l4proto_fndecl_27691 ipv6_get_l4proto fndecl 2 27691 NULL
157217 +enable_so_vhci_put_user_fndecl_27695 vhci_put_user fndecl 4 27695 NULL
157218 +enable_so_hvc_alloc_fndecl_27696 hvc_alloc fndecl 4 27696 NULL
157219 +enable_so_mru_ppp_27697 mru ppp 0 27697 NULL
157220 +enable_so_rx_buf_sz_de_private_27701 rx_buf_sz de_private 0 27701 NULL
157221 +enable_so_snd_pcm_plugin_alloc_fndecl_27703 snd_pcm_plugin_alloc fndecl 2 27703 NULL
157222 +enable_so_actual_size_mlx4_en_rx_ring_27705 actual_size mlx4_en_rx_ring 0 27705 NULL
157223 +enable_so_dsack_tcp_options_received_27706 dsack tcp_options_received 0 27706 NULL
157224 +enable_so_sequence_num_usb_ftdi_27707 sequence_num usb_ftdi 0 27707 NULL
157225 +enable_so_niu_rx_skb_append_fndecl_27708 niu_rx_skb_append fndecl 4-3-5 27708 NULL
157226 +enable_so_pcpu_extend_area_map_fndecl_27710 pcpu_extend_area_map fndecl 2 27710 NULL
157227 +enable_so_ns83820_change_mtu_fndecl_27711 ns83820_change_mtu fndecl 2 27711 NULL
157228 +enable_so_sdhci_pltfm_init_fndecl_27712 sdhci_pltfm_init fndecl 3 27712 NULL
157229 +enable_so_ipath_mmap_mem_fndecl_27714 ipath_mmap_mem fndecl 3 27714 NULL
157230 +enable_so_min_out_pixsize_fimc_variant_27716 min_out_pixsize fimc_variant 0 27716 NULL
157231 +enable_so_fsblog_xfs_da_geometry_27717 fsblog xfs_da_geometry 0 27717 NULL
157232 +enable_so_create_xrc_srq_cmd_fndecl_27718 create_xrc_srq_cmd fndecl 0 27718 NULL
157233 +enable_so_pwr_rcvd_awake_bcns_cnt_read_fndecl_27723 pwr_rcvd_awake_bcns_cnt_read fndecl 3 27723 NULL
157234 +enable_so_xstate_size__fpx_sw_bytes_27731 xstate_size _fpx_sw_bytes 0 27731 NULL
157235 +enable_so_ieee80211_ie_split_vendor_fndecl_27738 ieee80211_ie_split_vendor fndecl 0-3 27738 NULL nohasharray
157236 +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
157237 +enable_so_word_size_e1000_eeprom_info_27741 word_size e1000_eeprom_info 0 27741 NULL
157238 +enable_so_stv0900_read_reg_fndecl_27751 stv0900_read_reg fndecl 0 27751 NULL
157239 +enable_so_si_blocks_ocfs2_slot_info_27753 si_blocks ocfs2_slot_info 0 27753 NULL
157240 +enable_so_sparse_mem_maps_populate_node_fndecl_27758 sparse_mem_maps_populate_node fndecl 4 27758 NULL nohasharray
157241 +enable_so_sel_read_class_fndecl_27758 sel_read_class fndecl 3 27758 &enable_so_sparse_mem_maps_populate_node_fndecl_27758
157242 +enable_so_dwc3_link_state_write_fndecl_27762 dwc3_link_state_write fndecl 3 27762 NULL
157243 +enable_so_nr_sendmsg_fndecl_27763 nr_sendmsg fndecl 3 27763 NULL
157244 +enable_so_h_drm_vmw_rect_27765 h drm_vmw_rect 0 27765 NULL
157245 +enable_so_instat_endpoint_keyspan_device_details_27768 instat_endpoint keyspan_device_details 0 27768 NULL nohasharray
157246 +enable_so_wb_create_fndecl_27768 wb_create fndecl 1 27768 &enable_so_instat_endpoint_keyspan_device_details_27768
157247 +enable_so_be_queue_alloc_fndecl_27771 be_queue_alloc fndecl 3 27771 NULL
157248 +enable_so_max_cyttsp4_tch_abs_params_27772 max cyttsp4_tch_abs_params 0 27772 NULL nohasharray
157249 +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
157250 +enable_so_rs_datalen_ath_rx_status_27774 rs_datalen ath_rx_status 0 27774 NULL
157251 +enable_so_raid_disks_pool_info_27784 raid_disks pool_info 0 27784 NULL
157252 +enable_so_ieee802_1x_libipw_device_27787 ieee802_1x libipw_device 0 27787 NULL
157253 +enable_so_vlan_qos_vlan_priority_tci_mapping_27789 vlan_qos vlan_priority_tci_mapping 0 27789 NULL nohasharray
157254 +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
157255 +enable_so_flags_mmio_74xx_gpio_priv_27797 flags mmio_74xx_gpio_priv 0 27797 NULL
157256 +enable_so_nilfs_segbuf_set_next_segnum_fndecl_27802 nilfs_segbuf_set_next_segnum fndecl 2 27802 NULL
157257 +enable_so_bm_offset_drbd_md_27803 bm_offset drbd_md 0 27803 NULL
157258 +enable_so_nr_ports_solos_card_27804 nr_ports solos_card 0 27804 NULL
157259 +enable_so_e1000_receive_skb_fndecl_27809 e1000_receive_skb fndecl 3 27809 NULL
157260 +enable_so_ivtv_write_fndecl_27810 ivtv_write fndecl 3 27810 NULL
157261 +enable_so_ule_sndu_remain_dvb_net_priv_27812 ule_sndu_remain dvb_net_priv 0 27812 NULL
157262 +enable_so_page_is_ram_fndecl_27814 page_is_ram fndecl 1 27814 NULL
157263 +enable_so_dm_block_manager_create_fndecl_27815 dm_block_manager_create fndecl 2 27815 NULL
157264 +enable_so_sizeimage_v4l2_pix_format_27824 sizeimage v4l2_pix_format 0 27824 NULL nohasharray
157265 +enable_so_iwl_dbgfs_calib_disabled_write_fndecl_27824 iwl_dbgfs_calib_disabled_write fndecl 3 27824 &enable_so_sizeimage_v4l2_pix_format_27824
157266 +enable_so_consumed_vringh_kiov_27828 consumed vringh_kiov 0 27828 NULL
157267 +enable_so_corruption_check_size_vardecl_check_c_27830 corruption_check_size vardecl_check.c 0 27830 NULL
157268 +enable_so_roundup_brcmf_sdio_27833 roundup brcmf_sdio 0 27833 NULL nohasharray
157269 +enable_so_type_kqid_27833 type kqid 0 27833 &enable_so_roundup_brcmf_sdio_27833
157270 +enable_so_num_bcma_bus_27835 num bcma_bus 0 27835 NULL
157271 +enable_so_adm8211_tx_raw_fndecl_27839 adm8211_tx_raw fndecl 3-4 27839 NULL nohasharray
157272 +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
157273 +enable_so___getblk_slow_fndecl_27842 __getblk_slow fndecl 3-2 27842 NULL nohasharray
157274 +enable_so_cfg_niq_csio_hw_27842 cfg_niq csio_hw 0 27842 &enable_so___getblk_slow_fndecl_27842
157275 +enable_so_ieee80211_if_read_dot11MeshMaxRetries_fndecl_27847 ieee80211_if_read_dot11MeshMaxRetries fndecl 3 27847 NULL
157276 +enable_so_dd_bsg_size_fc_function_template_27852 dd_bsg_size fc_function_template 0 27852 NULL
157277 +enable_so_size_pnp_port_27856 size pnp_port 0 27856 NULL
157278 +enable_so_xfs_da3_node_read_fndecl_27858 xfs_da3_node_read fndecl 3 27858 NULL
157279 +enable_so_key_rx_spec_read_fndecl_27859 key_rx_spec_read fndecl 3 27859 NULL
157280 +enable_so_pb_count_s5p_mfc_ctx_27861 pb_count s5p_mfc_ctx 0 27861 NULL
157281 +enable_so_max_slave_count_w1_master_27872 max_slave_count w1_master 0 27872 NULL
157282 +enable_so_lo_len_nfsd4_lookup_27874 lo_len nfsd4_lookup 0 27874 NULL
157283 +enable_so_l_blkno_lbuf_27876 l_blkno lbuf 0 27876 NULL
157284 +enable_so_msb_sg_copy_fndecl_27886 msb_sg_copy fndecl 5-4 27886 NULL
157285 +enable_so__rotate_left_fndecl_27889 _rotate_left fndecl 2 27889 NULL
157286 +enable_so_listxattr_fndecl_27890 listxattr fndecl 3 27890 NULL
157287 +enable_so___lbs_cmd_fndecl_27904 __lbs_cmd fndecl 4 27904 NULL
157288 +enable_so_reada_tree_block_flagged_fndecl_27912 reada_tree_block_flagged fndecl 2 27912 NULL
157289 +enable_so_lbq_len_rx_ring_27913 lbq_len rx_ring 0 27913 NULL
157290 +enable_so_il_dbgfs_nvm_read_fndecl_27923 il_dbgfs_nvm_read fndecl 3 27923 NULL
157291 +enable_so_tp_datalen_bcm5974_config_27927 tp_datalen bcm5974_config 0 27927 NULL
157292 +enable_so_numchips_lpddr_private_27938 numchips lpddr_private 0 27938 NULL
157293 +enable_so_get_burstcount_fndecl_27942 get_burstcount fndecl 0 27942 NULL nohasharray
157294 +enable_so_capacity_cdrom_device_info_27942 capacity cdrom_device_info 0 27942 &enable_so_get_burstcount_fndecl_27942
157295 +enable_so_usbat_hp8200e_rw_block_test_fndecl_27957 usbat_hp8200e_rw_block_test fndecl 5-12-13 27957 NULL
157296 +enable_so_size_plx_pci_channel_map_27958 size plx_pci_channel_map 0 27958 NULL
157297 +enable_so_pcbit_writecmd_fndecl_27967 pcbit_writecmd fndecl 2 27967 NULL
157298 +enable_so_ext3_get_blocks_handle_fndecl_27970 ext3_get_blocks_handle fndecl 0 27970 NULL nohasharray
157299 +enable_so_fat_build_inode_fndecl_27970 fat_build_inode fndecl 3 27970 &enable_so_ext3_get_blocks_handle_fndecl_27970
157300 +enable_so_parser_init_byte_stream_fndecl_27973 parser_init_byte_stream fndecl 2 27973 NULL
157301 +enable_so_iip_ubifs_znode_27974 iip ubifs_znode 0 27974 NULL
157302 +enable_so_sxgbe_init_rx_buffers_fndecl_27984 sxgbe_init_rx_buffers fndecl 4 27984 NULL nohasharray
157303 +enable_so_mptctl_ioctl_fndecl_27984 mptctl_ioctl fndecl 2 27984 &enable_so_sxgbe_init_rx_buffers_fndecl_27984
157304 +enable_so_snd_sb16_setup_rate_fndecl_27986 snd_sb16_setup_rate fndecl 2 27986 NULL
157305 +enable_so_ext4_seek_hole_fndecl_27990 ext4_seek_hole fndecl 2 27990 NULL
157306 +enable_so_rx_rate_wsm_rx_27991 rx_rate wsm_rx 0 27991 NULL nohasharray
157307 +enable_so_write_mei_hw_ops_27991 write mei_hw_ops 0 27991 &enable_so_rx_rate_wsm_rx_27991
157308 +enable_so_alloc_ccbs_blogic_adapter_27993 alloc_ccbs blogic_adapter 0 27993 NULL
157309 +enable_so___nf_ct_ext_add_length_fndecl_27999 __nf_ct_ext_add_length fndecl 3 27999 NULL
157310 +enable_so_page_count_scrub_block_28000 page_count scrub_block 0 28000 NULL nohasharray
157311 +enable_so_ubifs_end_scan_fndecl_28000 ubifs_end_scan fndecl 4 28000 &enable_so_page_count_scrub_block_28000
157312 +enable_so_max_x_fb_monspecs_28003 max_x fb_monspecs 0 28003 NULL
157313 +enable_so_bytes_str_to_int_fndecl_28004 bytes_str_to_int fndecl 0 28004 NULL
157314 +enable_so_scif_recv_fndecl_28006 scif_recv fndecl 3 28006 NULL
157315 +enable_so_resp_ie_len_brcmf_cfg80211_connect_info_28007 resp_ie_len brcmf_cfg80211_connect_info 0 28007 NULL
157316 +enable_so_memtest_fndecl_28012 memtest fndecl 2 28012 NULL
157317 +enable_so_ext4_bg_num_gdb_nometa_fndecl_28014 ext4_bg_num_gdb_nometa fndecl 0 28014 NULL
157318 +enable_so_xfs_iext_inline_to_direct_fndecl_28019 xfs_iext_inline_to_direct fndecl 2 28019 NULL
157319 +enable_so_write_file_dump_fndecl_28020 write_file_dump fndecl 3 28020 NULL
157320 +enable_so_block_group_ext3_iloc_28034 block_group ext3_iloc 0 28034 NULL
157321 +enable_so_cfs_array_alloc_fndecl_28042 cfs_array_alloc fndecl 2 28042 NULL
157322 +enable_so_min_size_vx_ibl_info_28043 min_size vx_ibl_info 0 28043 NULL
157323 +enable_so_new_chunk_dm_exception_28044 new_chunk dm_exception 0 28044 NULL
157324 +enable_so_ieee80211_if_read_num_mcast_sta_fndecl_28048 ieee80211_if_read_num_mcast_sta fndecl 3 28048 NULL nohasharray
157325 +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
157326 +enable_so_vc_top_vc_data_28051 vc_top vc_data 0 28051 NULL
157327 +enable_so_virtio_gpu_cmd_set_scanout_fndecl_28053 virtio_gpu_cmd_set_scanout fndecl 4-5 28053 NULL
157328 +enable_so_maxpacket_usbnet_28054 maxpacket usbnet 0 28054 NULL
157329 +enable_so_cl_nodelen_rpc_clnt_28055 cl_nodelen rpc_clnt 0 28055 NULL
157330 +enable_so_s_imap_blocks_minix_sb_info_28062 s_imap_blocks minix_sb_info 0 28062 NULL
157331 +enable_so_gfs2_llseek_fndecl_28067 gfs2_llseek fndecl 2 28067 NULL
157332 +enable_so_rsi_prepare_skb_fndecl_28075 rsi_prepare_skb fndecl 4-3 28075 NULL
157333 +enable_so_qla4_82xx_pci_mem_write_direct_fndecl_28076 qla4_82xx_pci_mem_write_direct fndecl 2 28076 NULL
157334 +enable_so_abituguru_detect_fndecl_28078 abituguru_detect fndecl 0 28078 NULL
157335 +enable_so_bio_slab_max_vardecl_bio_c_28087 bio_slab_max vardecl_bio.c 0 28087 NULL
157336 +enable_so_buflen_qce_sha_reqctx_28088 buflen qce_sha_reqctx 0 28088 NULL nohasharray
157337 +enable_so_ddr_start_mthca_dev_28088 ddr_start mthca_dev 0 28088 &enable_so_buflen_qce_sha_reqctx_28088
157338 +enable_so_nvkm_engine_create__fndecl_28089 nvkm_engine_create_ fndecl 7 28089 NULL
157339 +enable_so_xlog_state_get_iclog_space_fndecl_28090 xlog_state_get_iclog_space fndecl 2 28090 NULL
157340 +enable_so_vxfs_read_olt_fndecl_28091 vxfs_read_olt fndecl 2 28091 NULL
157341 +enable_so_llcp_sock_recvmsg_fndecl_28095 llcp_sock_recvmsg fndecl 3 28095 NULL
157342 +enable_so_fnic_trace_ctrl_read_fndecl_28098 fnic_trace_ctrl_read fndecl 3 28098 NULL
157343 +enable_so_vmw_fb_create_bo_fndecl_28101 vmw_fb_create_bo fndecl 2 28101 NULL
157344 +enable_so_ath6kl_wmi_set_wmm_txop_fndecl_28102 ath6kl_wmi_set_wmm_txop fndecl 2 28102 NULL
157345 +enable_so_tool_peer_db_write_fndecl_28104 tool_peer_db_write fndecl 3 28104 NULL
157346 +enable_so_xlvbd_init_blk_queue_fndecl_28107 xlvbd_init_blk_queue fndecl 2-3-4 28107 NULL nohasharray
157347 +enable_so_udf_check_anchor_block_fndecl_28107 udf_check_anchor_block fndecl 2 28107 &enable_so_xlvbd_init_blk_queue_fndecl_28107
157348 +enable_so_gru_alloc_thread_state_fndecl_28109 gru_alloc_thread_state fndecl 2 28109 NULL
157349 +enable_so_stream_next_buffer_check_queue_fndecl_28114 stream_next_buffer_check_queue fndecl 0 28114 NULL
157350 +enable_so___iwl_read_prph_fndecl_28120 __iwl_read_prph fndecl 0 28120 NULL
157351 +enable_so_comm_base_mlx4_fw_28125 comm_base mlx4_fw 0 28125 NULL
157352 +enable_so_minimum_mfc_control_28126 minimum mfc_control 0 28126 NULL
157353 +enable_so_xfs_get_extsz_hint_fndecl_28128 xfs_get_extsz_hint fndecl 0 28128 NULL
157354 +enable_so_wLength_usb_ctrlrequest_28143 wLength usb_ctrlrequest 0 28143 NULL
157355 +enable_so_unit_size_pcpu_alloc_info_28146 unit_size pcpu_alloc_info 0 28146 NULL
157356 +enable_so_rc_framerate_denom_s5p_mfc_enc_params_28151 rc_framerate_denom s5p_mfc_enc_params 0 28151 NULL
157357 +enable_so_cur_page_offset_dio_submit_28153 cur_page_offset dio_submit 0 28153 NULL
157358 +enable_so_bNumPorts_usb_wa_descriptor_28154 bNumPorts usb_wa_descriptor 0 28154 NULL
157359 +enable_so_cfg80211_disconnected_fndecl_28155 cfg80211_disconnected fndecl 4 28155 NULL
157360 +enable_so_af9013_rd_regs_fndecl_28157 af9013_rd_regs fndecl 4 28157 NULL nohasharray
157361 +enable_so_qib_alloc_fast_reg_mr_fndecl_28157 qib_alloc_fast_reg_mr fndecl 2 28157 &enable_so_af9013_rd_regs_fndecl_28157
157362 +enable_so_sock_hlen_vhost_net_virtqueue_28159 sock_hlen vhost_net_virtqueue 0 28159 NULL
157363 +enable_so_read_file_tpc_fndecl_28162 read_file_tpc fndecl 3 28162 NULL
157364 +enable_so_aio_nbytes_iocb_28163 aio_nbytes iocb 0 28163 NULL
157365 +enable_so_x_drm_fb_helper_crtc_28166 x drm_fb_helper_crtc 0 28166 NULL
157366 +enable_so__ocfs2_free_suballoc_bits_fndecl_28174 _ocfs2_free_suballoc_bits fndecl 5 28174 NULL
157367 +enable_so___iscsi_conn_send_pdu_fndecl_28181 __iscsi_conn_send_pdu fndecl 4 28181 NULL
157368 +enable_so___dn_setsockopt_fndecl_28183 __dn_setsockopt fndecl 5 28183 NULL
157369 +enable_so_res_length_dlm_rsb_28184 res_length dlm_rsb 0 28184 NULL
157370 +enable_so_fw_cid_ep_handles_28190 fw_cid ep_handles 0 28190 NULL
157371 +enable_so_ixgbe_fcoe_get_tc_fndecl_28191 ixgbe_fcoe_get_tc fndecl 0 28191 NULL
157372 +enable_so_size_genwqe_mem_28192 size genwqe_mem 0 28192 NULL
157373 +enable_so_ttm_dma_pool_alloc_new_pages_fndecl_28194 ttm_dma_pool_alloc_new_pages fndecl 3 28194 NULL
157374 +enable_so_snd_rme96_playback_copy_fndecl_28196 snd_rme96_playback_copy fndecl 5 28196 NULL
157375 +enable_so_cirrus_gem_create_fndecl_28197 cirrus_gem_create fndecl 2 28197 NULL nohasharray
157376 +enable_so_next_power_fndecl_28197 next_power fndecl 0 28197 &enable_so_cirrus_gem_create_fndecl_28197
157377 +enable_so_snd_pcm_lib_preallocate_pages_for_all_fndecl_28203 snd_pcm_lib_preallocate_pages_for_all fndecl 4 28203 NULL
157378 +enable_so_bfad_debugfs_read_fndecl_28204 bfad_debugfs_read fndecl 3 28204 NULL
157379 +enable_so_region_shift_dm_region_hash_28205 region_shift dm_region_hash 0 28205 NULL
157380 +enable_so_ast_bo_create_fndecl_28209 ast_bo_create fndecl 2 28209 NULL nohasharray
157381 +enable_so_xattr_getsecurity_fndecl_28209 xattr_getsecurity fndecl 0 28209 &enable_so_ast_bo_create_fndecl_28209
157382 +enable_so____clear_user_fndecl_28212 ___clear_user fndecl 0 28212 NULL
157383 +enable_so_lec_change_mtu_fndecl_28213 lec_change_mtu fndecl 2 28213 NULL
157384 +enable_so_ext4_get_block_write_nolock_fndecl_28214 ext4_get_block_write_nolock fndecl 2 28214 NULL
157385 +enable_so_blk_rq_map_sg_fndecl_28215 blk_rq_map_sg fndecl 0 28215 NULL
157386 +enable_so_mpt_base_mthca_mr_table_28221 mpt_base mthca_mr_table 0 28221 NULL
157387 +enable_so_s_blocksize_bits_super_block_28225 s_blocksize_bits super_block 0 28225 NULL
157388 +enable_so_space_slots_btrfs_ioctl_space_args_28231 space_slots btrfs_ioctl_space_args 0 28231 NULL
157389 +enable_so_blk_update_request_fndecl_28233 blk_update_request fndecl 3 28233 NULL
157390 +enable_so_mux_device_request_fndecl_28235 mux_device_request fndecl 7 28235 NULL nohasharray
157391 +enable_so_l2cap_mtu_vardecl_core_c_28235 l2cap_mtu vardecl_core.c 0 28235 &enable_so_mux_device_request_fndecl_28235
157392 +enable_so_bits_mpidr_hash_28236 bits mpidr_hash 0 28236 NULL
157393 +enable_so_loop_end_patch_info_28242 loop_end patch_info 0 28242 NULL
157394 +enable_so_ext3_nfs_get_inode_fndecl_28245 ext3_nfs_get_inode fndecl 2 28245 NULL
157395 +enable_so_ino_bfs_dirent_28246 ino bfs_dirent 0 28246 NULL
157396 +enable_so_ip_make_skb_fndecl_28250 ip_make_skb fndecl 6-5 28250 NULL
157397 +enable_so_count_e1000_tx_ring_28261 count e1000_tx_ring 0 28261 NULL nohasharray
157398 +enable_so_ea_set_i_fndecl_28261 ea_set_i fndecl 5 28261 &enable_so_count_e1000_tx_ring_28261
157399 +enable_so_of_setup_earlycon_fndecl_28264 of_setup_earlycon fndecl 1 28264 NULL
157400 +enable_so_ucs2_strlen_fndecl_28265 ucs2_strlen fndecl 0 28265 NULL
157401 +enable_so_x1_osd_cmd_s_28266 x1 osd_cmd_s 0 28266 NULL
157402 +enable_so_pwr_disable_ps_read_fndecl_28267 pwr_disable_ps_read fndecl 3 28267 NULL
157403 +enable_so_mt7601u_rx_process_seg_fndecl_28268 mt7601u_rx_process_seg fndecl 3 28268 NULL
157404 +enable_so_needed_headroom_net_device_28272 needed_headroom net_device 0 28272 NULL
157405 +enable_so_rxbufsize_dma_info_28275 rxbufsize dma_info 0 28275 NULL
157406 +enable_so_mtu_tipc_bearer_28279 mtu tipc_bearer 0 28279 NULL
157407 +enable_so_pio2k_bufbase_qib_devdata_28282 pio2k_bufbase qib_devdata 0 28282 NULL nohasharray
157408 +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
157409 +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
157410 +enable_so_mem_cgroup_try_charge_fndecl_28289 mem_cgroup_try_charge fndecl 0 28289 NULL
157411 +enable_so_read32_ssb_bus_ops_28292 read32 ssb_bus_ops 0 28292 NULL
157412 +enable_so_mmc_ext_csd_read_fndecl_28294 mmc_ext_csd_read fndecl 3 28294 NULL
157413 +enable_so_save_total_len_pch_spi_data_28296 save_total_len pch_spi_data 0 28296 NULL
157414 +enable_so_rxsupport_size_ipg_nic_private_28297 rxsupport_size ipg_nic_private 0 28297 NULL
157415 +enable_so_byte_count_il_rx_phy_res_28304 byte_count il_rx_phy_res 0 28304 NULL
157416 +enable_so_flags2_psb_s_28305 flags2 psb_s 0 28305 NULL
157417 +enable_so_create_trace_uprobe_fndecl_28307 create_trace_uprobe fndecl 1 28307 NULL
157418 +enable_so_sst25l_read_fndecl_28315 sst25l_read fndecl 3 28315 NULL
157419 +enable_so_comedi_read_fndecl_28316 comedi_read fndecl 3 28316 NULL
157420 +enable_so_npages_mlx4_buf_28321 npages mlx4_buf 0 28321 NULL
157421 +enable_so_set_video_mode_Kiara_fndecl_28325 set_video_mode_Kiara fndecl 4 28325 NULL
157422 +enable_so__iwl_dbgfs_disable_power_off_write_fndecl_28328 _iwl_dbgfs_disable_power_off_write fndecl 3 28328 NULL nohasharray
157423 +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
157424 +enable_so_max_segment_size_brcmf_sdio_dev_28330 max_segment_size brcmf_sdio_dev 0 28330 NULL nohasharray
157425 +enable_so_size_videobuf_dmabuf_28330 size videobuf_dmabuf 0 28330 &enable_so_max_segment_size_brcmf_sdio_dev_28330
157426 +enable_so_asix_read_cmd_fndecl_28334 asix_read_cmd fndecl 5 28334 NULL
157427 +enable_so_mwifiex_debug_mask_read_fndecl_28341 mwifiex_debug_mask_read fndecl 3 28341 NULL
157428 +enable_so_ie_length_ndis_80211_bssid_ex_28346 ie_length ndis_80211_bssid_ex 0 28346 NULL
157429 +enable_so_plcp_mimo2_il_rate_info_28347 plcp_mimo2 il_rate_info 0 28347 NULL
157430 +enable_so_irq_domain_alloc_irqs_recursive_fndecl_28349 irq_domain_alloc_irqs_recursive fndecl 0 28349 NULL
157431 +enable_so_fnic_trace_ctrl_write_fndecl_28350 fnic_trace_ctrl_write fndecl 3 28350 NULL
157432 +enable_so_j_blocksize_journal_s_28358 j_blocksize journal_s 0 28358 NULL nohasharray
157433 +enable_so_c4iw_reg_user_mr_fndecl_28358 c4iw_reg_user_mr fndecl 2-3 28358 &enable_so_j_blocksize_journal_s_28358
157434 +enable_so_nvkm_ltc_create__fndecl_28360 nvkm_ltc_create_ fndecl 4 28360 NULL
157435 +enable_so_pmcraid_notify_aen_fndecl_28361 pmcraid_notify_aen fndecl 3 28361 NULL
157436 +enable_so_carl9170_rx_fndecl_28363 carl9170_rx fndecl 3 28363 NULL
157437 +enable_so_dma_lch_count_vardecl_dma_c_28369 dma_lch_count vardecl_dma.c 0 28369 NULL
157438 +enable_so_kvm_lapic_enable_pv_eoi_fndecl_28370 kvm_lapic_enable_pv_eoi fndecl 2 28370 NULL
157439 +enable_so_snd_emu10k1_fx8010_tram_setup_fndecl_28371 snd_emu10k1_fx8010_tram_setup fndecl 2 28371 NULL
157440 +enable_so_hostap_80211_get_hdrlen_fndecl_28372 hostap_80211_get_hdrlen fndecl 0 28372 NULL nohasharray
157441 +enable_so_count_atl1e_tx_ring_28372 count atl1e_tx_ring 0 28372 &enable_so_hostap_80211_get_hdrlen_fndecl_28372
157442 +enable_so_usbat_multiple_write_fndecl_28375 usbat_multiple_write fndecl 4 28375 NULL nohasharray
157443 +enable_so_init_tid_tabs_fndecl_28375 init_tid_tabs fndecl 4-3-2 28375 &enable_so_usbat_multiple_write_fndecl_28375
157444 +enable_so_bio_integrity_trim_fndecl_28376 bio_integrity_trim fndecl 2-3 28376 NULL
157445 +enable_so_simple_attr_write_fndecl_28383 simple_attr_write fndecl 3 28383 NULL
157446 +enable_so___bpf_fill_ja_fndecl_28393 __bpf_fill_ja fndecl 2 28393 NULL
157447 +enable_so_interrupt_in_endpointAddress_usb_serial_port_28398 interrupt_in_endpointAddress usb_serial_port 0 28398 NULL
157448 +enable_so_lpfc_idiag_mbxacc_get_setup_fndecl_28401 lpfc_idiag_mbxacc_get_setup fndecl 0 28401 NULL
157449 +enable_so_cxd2820r_rd_regs_fndecl_28402 cxd2820r_rd_regs fndecl 4 28402 NULL nohasharray
157450 +enable_so_il4965_stats_flag_fndecl_28402 il4965_stats_flag fndecl 0 28402 &enable_so_cxd2820r_rd_regs_fndecl_28402
157451 +enable_so_channel_bc_state_28411 channel bc_state 0 28411 NULL
157452 +enable_so_sd_major_fndecl_28413 sd_major fndecl 0-1 28413 NULL
157453 +enable_so_nvkm_i2c_pad_create__fndecl_28415 nvkm_i2c_pad_create_ fndecl 5 28415 NULL
157454 +enable_so_xfs_inumbers_fmt_fndecl_28418 xfs_inumbers_fmt fndecl 3 28418 NULL nohasharray
157455 +enable_so___inet_insert_ifa_fndecl_28418 __inet_insert_ifa fndecl 0 28418 &enable_so_xfs_inumbers_fmt_fndecl_28418
157456 +enable_so_dma_size_cx25821_audio_dev_28423 dma_size cx25821_audio_dev 0 28423 NULL
157457 +enable_so_s_blocks_per_group_ext3_sb_info_28428 s_blocks_per_group ext3_sb_info 0 28428 NULL
157458 +enable_so_afs_fs_store_data64_fndecl_28429 afs_fs_store_data64 fndecl 5-6 28429 NULL
157459 +enable_so_hpi_init_messageV1_fndecl_28435 hpi_init_messageV1 fndecl 2 28435 NULL
157460 +enable_so_ipath_sdma_verbs_send_fndecl_28436 ipath_sdma_verbs_send fndecl 3 28436 NULL
157461 +enable_so_jfs_issue_discard_fndecl_28440 jfs_issue_discard fndecl 2-3 28440 NULL
157462 +enable_so_sb_agcount_xfs_sb_28441 sb_agcount xfs_sb 0 28441 NULL nohasharray
157463 +enable_so_mgmt_event_fndecl_28441 mgmt_event fndecl 4 28441 &enable_so_sb_agcount_xfs_sb_28441
157464 +enable_so_iscsi_iser_session_create_fndecl_28447 iscsi_iser_session_create fndecl 3 28447 NULL
157465 +enable_so_nilfs_bmap_do_insert_fndecl_28453 nilfs_bmap_do_insert fndecl 0 28453 NULL
157466 +enable_so_stripe_size_bcache_device_28454 stripe_size bcache_device 0 28454 NULL
157467 +enable_so_mi_entries_per_block_nilfs_mdt_info_28458 mi_entries_per_block nilfs_mdt_info 0 28458 NULL
157468 +enable_so_irda_connect_confirm_fndecl_28460 irda_connect_confirm fndecl 4-5 28460 NULL
157469 +enable_so_pc87360_device_add_fndecl_28461 pc87360_device_add fndecl 1 28461 NULL
157470 +enable_so_SyS_add_key_fndecl_28465 SyS_add_key fndecl 4 28465 NULL
157471 +enable_so_md_offset_drbd_md_28466 md_offset drbd_md 0 28466 NULL
157472 +enable_so_data_out_size_mpt3_ioctl_command_28472 data_out_size mpt3_ioctl_command 0 28472 NULL
157473 +enable_so_osd_upper_vardecl_ivtvfb_c_28473 osd_upper vardecl_ivtvfb.c 0 28473 NULL nohasharray
157474 +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
157475 +enable_so_spidev_ioctl_fndecl_28477 spidev_ioctl fndecl 2 28477 NULL
157476 +enable_so_pa_pstart_ext4_prealloc_space_28478 pa_pstart ext4_prealloc_space 0 28478 NULL nohasharray
157477 +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
157478 +enable_so_block_size_sd_28480 block_size sd 0 28480 NULL
157479 +enable_so_rbuf_fill_level_slgt_info_28481 rbuf_fill_level slgt_info 0 28481 NULL
157480 +enable_so_amdgpu_align_pitch_fndecl_28483 amdgpu_align_pitch fndecl 0-2 28483 NULL
157481 +enable_so_csa_nrclists_cb_sequenceargs_28491 csa_nrclists cb_sequenceargs 0 28491 NULL
157482 +enable_so_wl1271_sdio_set_block_size_fndecl_28494 wl1271_sdio_set_block_size fndecl 2 28494 NULL
157483 +enable_so_get_leb_cnt_fndecl_28495 get_leb_cnt fndecl 0-2 28495 NULL
157484 +enable_so_len_sctp_tsnmap_28496 len sctp_tsnmap 0 28496 NULL
157485 +enable_so_xfs_rtallocate_extent_exact_fndecl_28498 xfs_rtallocate_extent_exact fndecl 3-5-9 28498 NULL nohasharray
157486 +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
157487 +enable_so_num_vmdq_msix_i40e_pf_28501 num_vmdq_msix i40e_pf 0 28501 NULL
157488 +enable_so_read_file_operations_28504 read file_operations 0 28504 NULL
157489 +enable_so_dln2_send_wait_fndecl_28510 dln2_send_wait fndecl 0 28510 NULL
157490 +enable_so_fll_fout_wm8993_priv_28516 fll_fout wm8993_priv 0 28516 NULL
157491 +enable_so_xen_add_extra_mem_fndecl_28519 xen_add_extra_mem fndecl 1-2 28519 NULL
157492 +enable_so_rds_pages_in_vec_fndecl_28521 rds_pages_in_vec fndecl 0 28521 NULL
157493 +enable_so_free_tind_blocks_fndecl_28525 free_tind_blocks fndecl 3 28525 NULL
157494 +enable_so_src_width_snd_pcm_plugin_28529 src_width snd_pcm_plugin 0 28529 NULL
157495 +enable_so_max_rds_rings_qlcnic_adapter_28536 max_rds_rings qlcnic_adapter 0 28536 NULL
157496 +enable_so_ext4_bread_fndecl_28538 ext4_bread fndecl 3 28538 NULL
157497 +enable_so_btcx_screen_clips_fndecl_28540 btcx_screen_clips fndecl 2-1-0-5 28540 NULL
157498 +enable_so_get_virtual_node_size_fndecl_28543 get_virtual_node_size fndecl 0 28543 NULL
157499 +enable_so_md_minor_mdp_superblock_s_28551 md_minor mdp_superblock_s 0 28551 NULL
157500 +enable_so_raw_cmd_copyin_fndecl_28554 raw_cmd_copyin fndecl 0 28554 NULL
157501 +enable_so_mwifiex_send_delba_fndecl_28557 mwifiex_send_delba fndecl 2 28557 NULL
157502 +enable_so_ci_ll_init_fndecl_28561 ci_ll_init fndecl 3 28561 NULL nohasharray
157503 +enable_so_num_pads_uvc_entity_28561 num_pads uvc_entity 0 28561 &enable_so_ci_ll_init_fndecl_28561
157504 +enable_so_PRO_RATE_DEFAULT_vardecl_ice1712_c_28563 PRO_RATE_DEFAULT vardecl_ice1712.c 0 28563 NULL
157505 +enable_so_wil_write_back_fndecl_28568 wil_write_back fndecl 3 28568 NULL
157506 +enable_so_nvme_npages_fndecl_28569 nvme_npages fndecl 0-1 28569 NULL
157507 +enable_so_out_max_chans_snd_card_asihpi_28574 out_max_chans snd_card_asihpi 0 28574 NULL nohasharray
157508 +enable_so_ufx_i2c_wait_busy_fndecl_28574 ufx_i2c_wait_busy fndecl 0 28574 &enable_so_out_max_chans_snd_card_asihpi_28574
157509 +enable_so_charcount_console_font_op_28585 charcount console_font_op 0 28585 NULL
157510 +enable_so__iwl_dbgfs_ss_force_write_fndecl_28587 _iwl_dbgfs_ss_force_write fndecl 3 28587 NULL
157511 +enable_so_uhci_map_status_fndecl_28591 uhci_map_status fndecl 0 28591 NULL
157512 +enable_so_icsk_pmtu_cookie_inet_connection_sock_28598 icsk_pmtu_cookie inet_connection_sock 0 28598 NULL
157513 +enable_so_n_devs_pci_id_table_28599 n_devs pci_id_table 0 28599 NULL nohasharray
157514 +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
157515 +enable_so_bm_status_write_fndecl_28599 bm_status_write fndecl 3 28599 &enable_so_menu_count_uvc_xu_control_mapping_28599
157516 +enable_so_status_smsc9420_dma_desc_28600 status smsc9420_dma_desc 0 28600 NULL
157517 +enable_so_stride_usX2Ydev_28605 stride usX2Ydev 0 28605 NULL
157518 +enable_so_ubifs_scan_a_node_fndecl_28611 ubifs_scan_a_node fndecl 0 28611 NULL
157519 +enable_so_ccmp_encrypt_skb_fndecl_28613 ccmp_encrypt_skb fndecl 3 28613 NULL
157520 +enable_so_bytesused_v4l2_plane_28616 bytesused v4l2_plane 0 28616 NULL nohasharray
157521 +enable_so_gru_assign_context_number_fndecl_28616 gru_assign_context_number fndecl 0 28616 &enable_so_bytesused_v4l2_plane_28616
157522 +enable_so_subsystem_filter_write_fndecl_28621 subsystem_filter_write fndecl 3 28621 NULL
157523 +enable_so_s_inode_size_ext4_sb_info_28625 s_inode_size ext4_sb_info 0 28625 NULL
157524 +enable_so_cdc_ncm_min_dgram_size_fndecl_28632 cdc_ncm_min_dgram_size fndecl 0 28632 NULL nohasharray
157525 +enable_so__get_block_create_0_fndecl_28632 _get_block_create_0 fndecl 2 28632 &enable_so_cdc_ncm_min_dgram_size_fndecl_28632
157526 +enable_so_drbd_recv_all_fndecl_28633 drbd_recv_all fndecl 3 28633 NULL nohasharray
157527 +enable_so_key_size_ethtool_rxfh_28633 key_size ethtool_rxfh 0 28633 &enable_so_drbd_recv_all_fndecl_28633
157528 +enable_so_log_max_len_server_hdr_28634 log_max_len server_hdr 0 28634 NULL
157529 +enable_so_device_count_vardecl_mts64_c_28635 device_count vardecl_mts64.c 0 28635 NULL
157530 +enable_so_usb_stream_new_fndecl_28646 usb_stream_new fndecl 6-8-5-7-3-4 28646 NULL nohasharray
157531 +enable_so_ocfs2_write_begin_fndecl_28646 ocfs2_write_begin fndecl 3 28646 &enable_so_usb_stream_new_fndecl_28646
157532 +enable_so_cw1200_spi_memcpy_fromio_fndecl_28649 cw1200_spi_memcpy_fromio fndecl 4 28649 NULL
157533 +enable_so_alloc_size_chunk_28657 alloc_size chunk 0 28657 NULL
157534 +enable_so_ipg_nic_change_mtu_fndecl_28665 ipg_nic_change_mtu fndecl 2 28665 NULL
157535 +enable_so_x25_create_facilities_fndecl_28684 x25_create_facilities fndecl 0 28684 NULL
157536 +enable_so_fill_isoc_urb_fndecl_28690 fill_isoc_urb fndecl 6-5-3 28690 NULL
157537 +enable_so_stolen_size_psb_gtt_28693 stolen_size psb_gtt 0 28693 NULL
157538 +enable_so_offset_cache_reader_28697 offset cache_reader 0 28697 NULL
157539 +enable_so_register_size_fe_priv_28698 register_size fe_priv 0 28698 NULL
157540 +enable_so_bclean_fndecl_28699 bclean fndecl 3 28699 NULL
157541 +enable_so_data_len_rndis_data_hdr_28701 data_len rndis_data_hdr 0 28701 NULL
157542 +enable_so_cw_bmove_fndecl_28704 cw_bmove fndecl 7-5-3-6-8-4 28704 NULL nohasharray
157543 +enable_so_size_fuse_notify_store_out_28704 size fuse_notify_store_out 0 28704 &enable_so_cw_bmove_fndecl_28704
157544 +enable_so_CIFSSMBWrite2_fndecl_28705 CIFSSMBWrite2 fndecl 5 28705 NULL
157545 +enable_so_mlx4_init_cmpt_table_fndecl_28706 mlx4_init_cmpt_table fndecl 3 28706 NULL
157546 +enable_so_v9fs_xattr_get_acl_fndecl_28714 v9fs_xattr_get_acl fndecl 4 28714 NULL
157547 +enable_so_lpfc_idiag_ctlacc_write_fndecl_28715 lpfc_idiag_ctlacc_write fndecl 3 28715 NULL
157548 +enable_so_nilfs_bmap_lookup_contig_fndecl_28717 nilfs_bmap_lookup_contig fndecl 0 28717 NULL nohasharray
157549 +enable_so_oprofilefs_ulong_to_user_fndecl_28717 oprofilefs_ulong_to_user fndecl 3 28717 &enable_so_nilfs_bmap_lookup_contig_fndecl_28717
157550 +enable_so_phys_smscore_buffer_t_28719 phys smscore_buffer_t 0 28719 NULL
157551 +enable_so_radix_tree_extend_fndecl_28720 radix_tree_extend fndecl 0 28720 NULL nohasharray
157552 +enable_so_getexposure_fndecl_28720 getexposure fndecl 0 28720 &enable_so_radix_tree_extend_fndecl_28720
157553 +enable_so_xfs_rtcheck_alloc_range_fndecl_28722 xfs_rtcheck_alloc_range fndecl 3 28722 NULL
157554 +enable_so_note_last_dentry_fndecl_28724 note_last_dentry fndecl 4-3-0 28724 NULL nohasharray
157555 +enable_so_d40_prep_memcpy_fndecl_28724 d40_prep_memcpy fndecl 4 28724 &enable_so_note_last_dentry_fndecl_28724
157556 +enable_so_skb_cow_data_fndecl_28734 skb_cow_data fndecl 0 28734 NULL
157557 +enable_so_num_pports_qib_devdata_28736 num_pports qib_devdata 0 28736 NULL
157558 +enable_so_size_mspro_sys_attr_28742 size mspro_sys_attr 0 28742 NULL
157559 +enable_so_batadv_iv_ogm_orig_del_if_fndecl_28743 batadv_iv_ogm_orig_del_if fndecl 2 28743 NULL
157560 +enable_so_ns_pseg_offset_the_nilfs_28744 ns_pseg_offset the_nilfs 0 28744 NULL
157561 +enable_so_batadv_iv_ogm_orig_add_if_fndecl_28753 batadv_iv_ogm_orig_add_if fndecl 2 28753 NULL
157562 +enable_so_src_h_yuv_frame_info_28759 src_h yuv_frame_info 0 28759 NULL
157563 +enable_so_fw_device_op_ioctl_fndecl_28760 fw_device_op_ioctl fndecl 2 28760 NULL
157564 +enable_so_enc28j60_packet_write_fndecl_28762 enc28j60_packet_write fndecl 2 28762 NULL
157565 +enable_so_ncp_write_kernel_fndecl_28776 ncp_write_kernel fndecl 4 28776 NULL
157566 +enable_so_C_SYSC_migrate_pages_fndecl_28785 C_SYSC_migrate_pages fndecl 2 28785 NULL
157567 +enable_so_tcp_parse_fastopen_option_fndecl_28793 tcp_parse_fastopen_option fndecl 1 28793 NULL
157568 +enable_so_psbfb_alloc_fndecl_28804 psbfb_alloc fndecl 2 28804 NULL
157569 +enable_so_ext4_nfs_get_inode_fndecl_28806 ext4_nfs_get_inode fndecl 2 28806 NULL nohasharray
157570 +enable_so_items_max_vxge_hw_mempool_28806 items_max vxge_hw_mempool 0 28806 &enable_so_ext4_nfs_get_inode_fndecl_28806
157571 +enable_so_e820_remove_range_fndecl_28810 e820_remove_range fndecl 1-2 28810 NULL nohasharray
157572 +enable_so_ide_queue_pc_tail_fndecl_28810 ide_queue_pc_tail fndecl 5 28810 &enable_so_e820_remove_range_fndecl_28810
157573 +enable_so_sisusb_send_bridge_packet_fndecl_28818 sisusb_send_bridge_packet fndecl 2 28818 NULL
157574 +enable_so_ceph_build_auth_fndecl_28825 ceph_build_auth fndecl 0 28825 NULL
157575 +enable_so_sdio_memcpy_toio_fndecl_28828 sdio_memcpy_toio fndecl 4 28828 NULL
157576 +enable_so_vram_end_radeon_mc_28831 vram_end radeon_mc 0 28831 NULL
157577 +enable_so_right_qxl_urect_28833 right qxl_urect 0 28833 NULL nohasharray
157578 +enable_so_ivtv_udma_get_page_info_fndecl_28833 ivtv_udma_get_page_info fndecl 2-3 28833 &enable_so_right_qxl_urect_28833
157579 +enable_so_dm_table_add_target_fndecl_28838 dm_table_add_target fndecl 4-3 28838 NULL
157580 +enable_so_sctp_setsockopt_hmac_ident_fndecl_28852 sctp_setsockopt_hmac_ident fndecl 3 28852 NULL
157581 +enable_so_dsp_buffer_alloc_fndecl_28855 dsp_buffer_alloc fndecl 2 28855 NULL
157582 +enable_so_split_fndecl_28856 split fndecl 2 28856 NULL
157583 +enable_so_snd_ctl_elem_user_tlv_fndecl_28860 snd_ctl_elem_user_tlv fndecl 3 28860 NULL
157584 +enable_so_mt9t031_set_params_fndecl_28862 mt9t031_set_params fndecl 4-3 28862 NULL
157585 +enable_so_tx_pending_ethtool_ringparam_28864 tx_pending ethtool_ringparam 0 28864 NULL
157586 +enable_so_ie_length_brcmf_bss_info_le_28867 ie_length brcmf_bss_info_le 0 28867 NULL
157587 +enable_so_usb_stor_access_xfer_buf_fndecl_28868 usb_stor_access_xfer_buf fndecl 0-2 28868 NULL
157588 +enable_so_i2c_master_recv_fndecl_28869 i2c_master_recv fndecl 3-0 28869 NULL
157589 +enable_so_receive_new_fndecl_28872 receive_new fndecl 3 28872 NULL nohasharray
157590 +enable_so_ep_out_mcs_cb_28872 ep_out mcs_cb 0 28872 &enable_so_receive_new_fndecl_28872
157591 +enable_so_TupleOffset_tuple_t_28876 TupleOffset tuple_t 0 28876 NULL
157592 +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
157593 +enable_so_zlib_inflateInit2_fndecl_28887 zlib_inflateInit2 fndecl 2 28887 NULL
157594 +enable_so_request_len_bsg_job_28889 request_len bsg_job 0 28889 NULL
157595 +enable_so_map_count_mm_struct_28894 map_count mm_struct 0 28894 NULL nohasharray
157596 +enable_so_ipath_rcvhdrcnt_ipath_devdata_28894 ipath_rcvhdrcnt ipath_devdata 0 28894 &enable_so_map_count_mm_struct_28894
157597 +enable_so_nci_set_config_fndecl_28899 nci_set_config fndecl 3 28899 NULL
157598 +enable_so_t_elist_cb_state_28900 t elist_cb_state 0 28900 NULL nohasharray
157599 +enable_so_capi_major_vardecl_capi_c_28900 capi_major vardecl_capi.c 0 28900 &enable_so_t_elist_cb_state_28900
157600 +enable_so_ss_in_channels_hdspm_28903 ss_in_channels hdspm 0 28903 NULL nohasharray
157601 +enable_so_flags_read_fndecl_28903 flags_read fndecl 3 28903 &enable_so_ss_in_channels_hdspm_28903
157602 +enable_so_ngpios_sx150x_device_data_28905 ngpios sx150x_device_data 0 28905 NULL
157603 +enable_so_ieee80211_get_num_supported_channels_fndecl_28907 ieee80211_get_num_supported_channels fndecl 0 28907 NULL
157604 +enable_so_usb_pipe_handle_ath6kl_usb_pipe_28910 usb_pipe_handle ath6kl_usb_pipe 0 28910 NULL
157605 +enable_so_hslen_vardecl_matroxfb_base_c_28914 hslen vardecl_matroxfb_base.c 0 28914 NULL
157606 +enable_so_port_c67x00_urb_priv_28917 port c67x00_urb_priv 0 28917 NULL
157607 +enable_so_iwl_dbgfs_qos_read_fndecl_28922 iwl_dbgfs_qos_read fndecl 3 28922 NULL nohasharray
157608 +enable_so_c_ssize_f_uac2_opts_28922 c_ssize f_uac2_opts 0 28922 &enable_so_iwl_dbgfs_qos_read_fndecl_28922
157609 +enable_so_suspend_nvs_register_fndecl_28923 suspend_nvs_register fndecl 2-1 28923 NULL
157610 +enable_so_tegra_sflash_start_cpu_based_transfer_fndecl_28927 tegra_sflash_start_cpu_based_transfer fndecl 0 28927 NULL
157611 +enable_so_rpcrdma_count_chunks_fndecl_28931 rpcrdma_count_chunks fndecl 0 28931 NULL
157612 +enable_so_exclude_unencrypted_atmel_private_28933 exclude_unencrypted atmel_private 0 28933 NULL
157613 +enable_so_usbat_write_block_fndecl_28938 usbat_write_block fndecl 4-6 28938 NULL
157614 +enable_so_alsa_index_vardecl_thinkpad_acpi_c_28952 alsa_index vardecl_thinkpad_acpi.c 0 28952 NULL
157615 +enable_so_ath6kl_power_params_write_fndecl_28953 ath6kl_power_params_write fndecl 3 28953 NULL
157616 +enable_so_gb_len_pn533_28959 gb_len pn533 0 28959 NULL
157617 +enable_so_hpfs_alloc_anode_fndecl_28960 hpfs_alloc_anode fndecl 2 28960 NULL
157618 +enable_so_usb_stor_bulk_transfer_buf_fndecl_28961 usb_stor_bulk_transfer_buf fndecl 4-2 28961 NULL nohasharray
157619 +enable_so_get_segment_selector_fndecl_28961 get_segment_selector fndecl 0 28961 &enable_so_usb_stor_bulk_transfer_buf_fndecl_28961
157620 +enable_so_split_vma_fndecl_28963 split_vma fndecl 3 28963 NULL
157621 +enable_so_tcp_send_rcvq_fndecl_28967 tcp_send_rcvq fndecl 3 28967 NULL nohasharray
157622 +enable_so_intel_mid_serial_setup_fndecl_28967 intel_mid_serial_setup fndecl 4 28967 &enable_so_tcp_send_rcvq_fndecl_28967
157623 +enable_so_iwl_dbgfs_ss_force_read_fndecl_28968 iwl_dbgfs_ss_force_read fndecl 3 28968 NULL
157624 +enable_so_ath6kl_wmi_set_wow_mode_cmd_fndecl_28969 ath6kl_wmi_set_wow_mode_cmd fndecl 2 28969 NULL
157625 +enable_so_sctp_transport_update_pmtu_fndecl_28973 sctp_transport_update_pmtu fndecl 3 28973 NULL
157626 +enable_so_syncmaxsize_snd_usb_endpoint_28987 syncmaxsize snd_usb_endpoint 0 28987 NULL
157627 +enable_so_aper_size_agp_kern_info_28990 aper_size agp_kern_info 0 28990 NULL
157628 +enable_so_klen_WepKeyRid_28997 klen WepKeyRid 0 28997 NULL
157629 +enable_so_ext4_get_inline_size_fndecl_28998 ext4_get_inline_size fndecl 0 28998 NULL
157630 +enable_so_handle_unit_fndecl_29000 handle_unit fndecl 0-1 29000 NULL nohasharray
157631 +enable_so_prio_io_fndecl_29000 prio_io fndecl 2 29000 &enable_so_handle_unit_fndecl_29000 nohasharray
157632 +enable_so_rawsize_nd_namespace_label_29000 rawsize nd_namespace_label 0 29000 &enable_so_prio_io_fndecl_29000
157633 +enable_so_len_p54p_desc_29001 len p54p_desc 0 29001 NULL nohasharray
157634 +enable_so_buf_read_ptr_comedi_async_29001 buf_read_ptr comedi_async 0 29001 &enable_so_len_p54p_desc_29001
157635 +enable_so_nl80211_send_mgmt_fndecl_29002 nl80211_send_mgmt fndecl 7 29002 NULL nohasharray
157636 +enable_so_sel_write_create_fndecl_29002 sel_write_create fndecl 3 29002 &enable_so_nl80211_send_mgmt_fndecl_29002
157637 +enable_so_num_lns_csio_hw_29004 num_lns csio_hw 0 29004 NULL
157638 +enable_so_ipath_palign_ipath_devdata_29005 ipath_palign ipath_devdata 0 29005 NULL
157639 +enable_so___kfifo_out_peek_fndecl_29010 __kfifo_out_peek fndecl 0-3 29010 NULL nohasharray
157640 +enable_so_construct_key_fndecl_29010 construct_key fndecl 3 29010 &enable_so___kfifo_out_peek_fndecl_29010
157641 +enable_so_ivtvfb_prep_dec_dma_to_device_fndecl_29011 ivtvfb_prep_dec_dma_to_device fndecl 4 29011 NULL
157642 +enable_so_seq_copy_in_user_fndecl_29019 seq_copy_in_user fndecl 3 29019 NULL
157643 +enable_so_sb_dmap_hpfs_sb_info_29020 sb_dmap hpfs_sb_info 0 29020 NULL
157644 +enable_so_j_len_reiserfs_journal_list_29021 j_len reiserfs_journal_list 0 29021 NULL
157645 +enable_so___spi_queued_transfer_fndecl_29024 __spi_queued_transfer fndecl 0 29024 NULL
157646 +enable_so_nft_value_dump_fndecl_29030 nft_value_dump fndecl 3 29030 NULL nohasharray
157647 +enable_so_tcf_register_action_fndecl_29030 tcf_register_action fndecl 2 29030 &enable_so_nft_value_dump_fndecl_29030
157648 +enable_so_at24_read_fndecl_29031 at24_read fndecl 4 29031 NULL
157649 +enable_so_drm_vblank_init_fndecl_29041 drm_vblank_init fndecl 2 29041 NULL
157650 +enable_so_of_get_available_child_count_fndecl_29042 of_get_available_child_count fndecl 0 29042 NULL
157651 +enable_so_batadv_skb_head_push_fndecl_29043 batadv_skb_head_push fndecl 2 29043 NULL
157652 +enable_so_memory_size_kvm_userspace_memory_region_29047 memory_size kvm_userspace_memory_region 0 29047 NULL
157653 +enable_so_qib_get_base_info_fndecl_29050 qib_get_base_info fndecl 3 29050 NULL
157654 +enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056 scsi_debug_max_queue vardecl_scsi_debug.c 0 29056 NULL nohasharray
157655 +enable_so_str_to_user_fndecl_29056 str_to_user fndecl 2 29056 &enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056
157656 +enable_so____alloc_bootmem_fndecl_29057 ___alloc_bootmem fndecl 2-1-3-4 29057 NULL
157657 +enable_so_fbcon_scroll_fndecl_29060 fbcon_scroll fndecl 5 29060 NULL nohasharray
157658 +enable_so_len_wmi_rx_mgmt_info_29060 len wmi_rx_mgmt_info 0 29060 &enable_so_fbcon_scroll_fndecl_29060
157659 +enable_so_mem_fw_gen_free_mem_blks_read_fndecl_29062 mem_fw_gen_free_mem_blks_read fndecl 3 29062 NULL
157660 +enable_so_use_dmio_fndecl_29065 use_dmio fndecl 3 29065 NULL
157661 +enable_so_adis16480_show_firmware_revision_fndecl_29066 adis16480_show_firmware_revision fndecl 3 29066 NULL
157662 +enable_so_ucFakeEDIDLength__ATOM_FAKE_EDID_PATCH_RECORD_29067 ucFakeEDIDLength _ATOM_FAKE_EDID_PATCH_RECORD 0 29067 NULL
157663 +enable_so_i40e_dbg_command_write_fndecl_29070 i40e_dbg_command_write fndecl 3 29070 NULL
157664 +enable_so_isku_sysfs_read_keys_capslock_fndecl_29075 isku_sysfs_read_keys_capslock fndecl 6 29075 NULL
157665 +enable_so_tse_change_mtu_fndecl_29076 tse_change_mtu fndecl 2 29076 NULL
157666 +enable_so_dev_irnet_write_fndecl_29077 dev_irnet_write fndecl 3 29077 NULL
157667 +enable_so_lprocfs_wr_evict_client_fndecl_29081 lprocfs_wr_evict_client fndecl 3 29081 NULL
157668 +enable_so_ath6kl_wmi_deletekey_cmd_fndecl_29086 ath6kl_wmi_deletekey_cmd fndecl 2 29086 NULL
157669 +enable_so_dlm_lowcomms_get_buffer_fndecl_29111 dlm_lowcomms_get_buffer fndecl 2 29111 NULL
157670 +enable_so_bttv_read_fndecl_29115 bttv_read fndecl 3 29115 NULL
157671 +enable_so_st_nci_probe_fndecl_29121 st_nci_probe fndecl 2 29121 NULL
157672 +enable_so_jfs_iget_fndecl_29122 jfs_iget fndecl 2 29122 NULL
157673 +enable_so_pci_set_power_state_fndecl_29124 pci_set_power_state fndecl 0 29124 NULL nohasharray
157674 +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
157675 +enable_so_ioctl_code_usbdevfs_ioctl_29134 ioctl_code usbdevfs_ioctl 0 29134 NULL
157676 +enable_so_max_dump_cnt_ramoops_context_29141 max_dump_cnt ramoops_context 0 29141 NULL
157677 +enable_so_pci_pericom_setup_fndecl_29142 pci_pericom_setup fndecl 4 29142 NULL
157678 +enable_so_y1_virtio_gpu_framebuffer_29147 y1 virtio_gpu_framebuffer 0 29147 NULL
157679 +enable_so_send_bulk_pipe_us_data_29148 send_bulk_pipe us_data 0 29148 NULL
157680 +enable_so_width_usbtv_29152 width usbtv 0 29152 NULL
157681 +enable_so_algorithm_raid_type_29156 algorithm raid_type 0 29156 NULL
157682 +enable_so_kmem_zalloc_fndecl_29157 kmem_zalloc fndecl 1 29157 NULL
157683 +enable_so_W6692B_empty_fifo_fndecl_29159 W6692B_empty_fifo fndecl 2 29159 NULL
157684 +enable_so_md_dump_size_qla_hw_data_29160 md_dump_size qla_hw_data 0 29160 NULL
157685 +enable_so_current_rx_bytes_printer_dev_29165 current_rx_bytes printer_dev 0 29165 NULL
157686 +enable_so_surface_height_drm_fb_helper_surface_size_29174 surface_height drm_fb_helper_surface_size 0 29174 NULL
157687 +enable_so_dma_in_streamzap_ir_29180 dma_in streamzap_ir 0 29180 NULL nohasharray
157688 +enable_so_num_segments_acpi_namestring_info_29180 num_segments acpi_namestring_info 0 29180 &enable_so_dma_in_streamzap_ir_29180
157689 +enable_so_vp_try_to_find_vqs_fndecl_29181 vp_try_to_find_vqs fndecl 2 29181 NULL
157690 +enable_so_ieee80211_if_read_user_power_level_fndecl_29185 ieee80211_if_read_user_power_level fndecl 3 29185 NULL
157691 +enable_so_ircomm_control_indication_fndecl_29186 ircomm_control_indication fndecl 3 29186 NULL
157692 +enable_so_release_mem_region_adjustable_fndecl_29187 release_mem_region_adjustable fndecl 3-2 29187 NULL
157693 +enable_so_em28xx_i2c_read_block_fndecl_29188 em28xx_i2c_read_block fndecl 5 29188 NULL
157694 +enable_so_brcmf_config_wowl_pattern_fndecl_29198 brcmf_config_wowl_pattern fndecl 4 29198 NULL
157695 +enable_so_HFC_inw_nodebug_hfc_multi_29199 HFC_inw_nodebug hfc_multi 0 29199 NULL
157696 +enable_so_vcc_sendmsg_fndecl_29205 vcc_sendmsg fndecl 3 29205 NULL
157697 +enable_so_x25_parse_facilities_fndecl_29207 x25_parse_facilities fndecl 0 29207 NULL
157698 +enable_so_ftdi_elan_total_command_size_fndecl_29214 ftdi_elan_total_command_size fndecl 0 29214 NULL
157699 +enable_so_video_rbase_osd_info_29225 video_rbase osd_info 0 29225 NULL
157700 +enable_so_mpx_get_bt_entry_offset_bytes_fndecl_29230 mpx_get_bt_entry_offset_bytes fndecl 0-2 29230 NULL
157701 +enable_so_change_pte_range_fndecl_29232 change_pte_range fndecl 3 29232 NULL
157702 +enable_so_dvb_dmxdev_buffer_write_fndecl_29234 dvb_dmxdev_buffer_write fndecl 3-0 29234 NULL
157703 +enable_so_il4965_ucode_tx_stats_read_fndecl_29235 il4965_ucode_tx_stats_read fndecl 3 29235 NULL
157704 +enable_so_rq_pagesz_smb_rqst_29240 rq_pagesz smb_rqst 0 29240 NULL
157705 +enable_so_sb_dirband_start_hpfs_sb_info_29242 sb_dirband_start hpfs_sb_info 0 29242 NULL
157706 +enable_so_ubifs_recover_log_leb_fndecl_29244 ubifs_recover_log_leb fndecl 3 29244 NULL
157707 +enable_so_ptc_proc_write_fndecl_29247 ptc_proc_write fndecl 3 29247 NULL
157708 +enable_so_sg_pcopy_from_buffer_fndecl_29248 sg_pcopy_from_buffer fndecl 5-4 29248 NULL
157709 +enable_so_offset_rbd_obj_request_29253 offset rbd_obj_request 0 29253 NULL
157710 +enable_so_i_dir_acl_ext2_inode_29264 i_dir_acl ext2_inode 0 29264 NULL
157711 +enable_so_sisusb_lseek_fndecl_29268 sisusb_lseek fndecl 2 29268 NULL nohasharray
157712 +enable_so_maxlen_ctl_table_29268 maxlen ctl_table 0 29268 &enable_so_sisusb_lseek_fndecl_29268
157713 +enable_so_rtw_malloc2d_fndecl_29269 rtw_malloc2d fndecl 3-2-1 29269 NULL
157714 +enable_so_offs_replay_entry_29277 offs replay_entry 0 29277 NULL
157715 +enable_so_convert_dma_width_fndecl_29278 convert_dma_width fndecl 0 29278 NULL
157716 +enable_so_reg_shift_sccnxp_pdata_29283 reg_shift sccnxp_pdata 0 29283 NULL
157717 +enable_so_sh_last_alloc_nilfs_sufile_header_29285 sh_last_alloc nilfs_sufile_header 0 29285 NULL
157718 +enable_so_vmbus_open_fndecl_29289 vmbus_open fndecl 3-2 29289 NULL
157719 +enable_so_data_len_ceph_msg_header_29290 data_len ceph_msg_header 0 29290 NULL
157720 +enable_so_btmrvl_sdio_host_to_card_fndecl_29291 btmrvl_sdio_host_to_card fndecl 3 29291 NULL
157721 +enable_so_leb_start_ubi_device_29292 leb_start ubi_device 0 29292 NULL
157722 +enable_so_user_ptr_drm_i915_gem_userptr_29294 user_ptr drm_i915_gem_userptr 0 29294 NULL
157723 +enable_so_set_powered_fndecl_29298 set_powered fndecl 4 29298 NULL
157724 +enable_so_xfs_handle_to_dentry_fndecl_29300 xfs_handle_to_dentry fndecl 3 29300 NULL
157725 +enable_so_ramoops_init_prz_fndecl_29301 ramoops_init_prz fndecl 5 29301 NULL
157726 +enable_so_mb_find_extent_fndecl_29303 mb_find_extent fndecl 2 29303 NULL
157727 +enable_so_generic_file_llseek_fndecl_29304 generic_file_llseek fndecl 2 29304 NULL
157728 +enable_so_read_w5300_priv_29306 read w5300_priv 0 29306 NULL nohasharray
157729 +enable_so_tail_ivtv_dma_page_info_29306 tail ivtv_dma_page_info 0 29306 &enable_so_read_w5300_priv_29306 nohasharray
157730 +enable_so_rawv6_seticmpfilter_fndecl_29306 rawv6_seticmpfilter fndecl 5-0 29306 &enable_so_tail_ivtv_dma_page_info_29306
157731 +enable_so_vmw_fifo_reserve_fndecl_29310 vmw_fifo_reserve fndecl 2 29310 NULL
157732 +enable_so_soc_mbus_image_size_fndecl_29311 soc_mbus_image_size fndecl 0-3-2 29311 NULL
157733 +enable_so_ddp_make_gl_fndecl_29312 ddp_make_gl fndecl 1 29312 NULL
157734 +enable_so_fnic_reset_stats_write_fndecl_29314 fnic_reset_stats_write fndecl 3 29314 NULL
157735 +enable_so_num_msix_roce_vec_be_adapter_29319 num_msix_roce_vec be_adapter 0 29319 NULL
157736 +enable_so_ip_generic_getfrag_fndecl_29320 ip_generic_getfrag fndecl 4 29320 NULL
157737 +enable_so_compat_do_arpt_set_ctl_fndecl_29323 compat_do_arpt_set_ctl fndecl 4 29323 NULL
157738 +enable_so_gather_pte_stats_fndecl_29329 gather_pte_stats fndecl 2 29329 NULL
157739 +enable_so_scan_map_fndecl_29331 scan_map fndecl 0 29331 NULL
157740 +enable_so_num_sge_ib_recv_wr_29333 num_sge ib_recv_wr 0 29333 NULL
157741 +enable_so_n_reg_rules_ieee80211_regdomain_29334 n_reg_rules ieee80211_regdomain 0 29334 NULL
157742 +enable_so_y_res_vbe_mode_ib_29340 y_res vbe_mode_ib 0 29340 NULL
157743 +enable_so_sctp_icmp_frag_needed_fndecl_29342 sctp_icmp_frag_needed fndecl 4 29342 NULL
157744 +enable_so_sgeCnt_aac_raw_io2_29350 sgeCnt aac_raw_io2 0 29350 NULL
157745 +enable_so_snd_pcm_kernel_ioctl_fndecl_29352 snd_pcm_kernel_ioctl fndecl 0 29352 NULL
157746 +enable_so_alloced_snd_array_29353 alloced snd_array 0 29353 NULL
157747 +enable_so_receive_copy_fndecl_29355 receive_copy fndecl 3 29355 NULL
157748 +enable_so_max_sgs_per_cmd_snic_fw_info_29357 max_sgs_per_cmd snic_fw_info 0 29357 NULL nohasharray
157749 +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
157750 +enable_so_fuse_get_req_fndecl_29358 fuse_get_req fndecl 2 29358 NULL nohasharray
157751 +enable_so_aat2870_reg_read_file_fndecl_29358 aat2870_reg_read_file fndecl 3 29358 &enable_so_fuse_get_req_fndecl_29358
157752 +enable_so_s_dat_entry_size_nilfs_super_block_29359 s_dat_entry_size nilfs_super_block 0 29359 NULL
157753 +enable_so_qt2160_read_block_fndecl_29365 qt2160_read_block fndecl 4 29365 NULL
157754 +enable_so_dummy_perform_transfer_fndecl_29372 dummy_perform_transfer fndecl 0-3 29372 NULL nohasharray
157755 +enable_so_tx_ring_size_pxa168_eth_private_29372 tx_ring_size pxa168_eth_private 0 29372 &enable_so_dummy_perform_transfer_fndecl_29372
157756 +enable_so_n_devices_whc_29373 n_devices whc 0 29373 NULL
157757 +enable_so_l2bsize_jfs_sb_info_29377 l2bsize jfs_sb_info 0 29377 NULL nohasharray
157758 +enable_so_count_e1000_rx_ring_29377 count e1000_rx_ring 0 29377 &enable_so_l2bsize_jfs_sb_info_29377
157759 +enable_so_extHint_fndecl_29378 extHint fndecl 2 29378 NULL
157760 +enable_so_next_cluster_fat_boot_fsinfo_29380 next_cluster fat_boot_fsinfo 0 29380 NULL
157761 +enable_so_ib_uverbs_unmarshall_recv_fndecl_29384 ib_uverbs_unmarshall_recv fndecl 5 29384 NULL
157762 +enable_so_reiserfs_get_unused_objectid_fndecl_29387 reiserfs_get_unused_objectid fndecl 0 29387 NULL
157763 +enable_so_write_buffer_size_vardecl_ldusb_c_29393 write_buffer_size vardecl_ldusb.c 0 29393 NULL nohasharray
157764 +enable_so_acpi_id_xenpf_pcpuinfo_29393 acpi_id xenpf_pcpuinfo 0 29393 &enable_so_write_buffer_size_vardecl_ldusb_c_29393
157765 +enable_so_tun_net_change_mtu_fndecl_29398 tun_net_change_mtu fndecl 2 29398 NULL
157766 +enable_so___alloc_bootmem_low_nopanic_fndecl_29400 __alloc_bootmem_low_nopanic fndecl 2-1-3 29400 NULL nohasharray
157767 +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
157768 +enable_so_octeon_alloc_recv_info_fndecl_29400 octeon_alloc_recv_info fndecl 1 29400 &enable_so_irq_set_msi_desc_off_fndecl_29400
157769 +enable_so_hpfs_map_sector_fndecl_29402 hpfs_map_sector fndecl 2 29402 NULL
157770 +enable_so_sisfb_mem_sis_video_info_29418 sisfb_mem sis_video_info 0 29418 NULL
157771 +enable_so_xop_data_nents_xcopy_op_29423 xop_data_nents xcopy_op 0 29423 NULL
157772 +enable_so_block_extra_size_snd_util_memhdr_29432 block_extra_size snd_util_memhdr 0 29432 NULL
157773 +enable_so_ocfs2_xattr_user_set_fndecl_29433 ocfs2_xattr_user_set fndecl 4 29433 NULL
157774 +enable_so_size_vm_struct_29439 size vm_struct 0 29439 NULL
157775 +enable_so_xfs_attr3_rmt_blocks_fndecl_29445 xfs_attr3_rmt_blocks fndecl 0-2 29445 NULL
157776 +enable_so_ep_in_dln2_dev_29451 ep_in dln2_dev 0 29451 NULL
157777 +enable_so_ebt_buf_add_fndecl_29456 ebt_buf_add fndecl 0-3 29456 NULL
157778 +enable_so_vol_cdev_llseek_fndecl_29458 vol_cdev_llseek fndecl 2 29458 NULL
157779 +enable_so_read_into_pages_cifs_readdata_29473 read_into_pages cifs_readdata 0 29473 NULL
157780 +enable_so_i2c_hid_set_or_send_report_fndecl_29475 i2c_hid_set_or_send_report fndecl 5 29475 NULL
157781 +enable_so_macvtap_put_user_fndecl_29476 macvtap_put_user fndecl 0 29476 NULL
157782 +enable_so_rts51x_read_status_fndecl_29477 rts51x_read_status fndecl 4 29477 NULL
157783 +enable_so_tx_header_len_pn533_frame_ops_29478 tx_header_len pn533_frame_ops 0 29478 NULL nohasharray
157784 +enable_so_sctp_setsockopt_maxseg_fndecl_29478 sctp_setsockopt_maxseg fndecl 3 29478 &enable_so_tx_header_len_pn533_frame_ops_29478 nohasharray
157785 +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
157786 +enable_so_ns_last_pseg_the_nilfs_29482 ns_last_pseg the_nilfs 0 29482 NULL
157787 +enable_so_qs_out_channels_hdsp_29483 qs_out_channels hdsp 0 29483 NULL
157788 +enable_so_befs_bt_read_node_fndecl_29490 befs_bt_read_node fndecl 4 29490 NULL nohasharray
157789 +enable_so_gpiochip_add_pin_range_fndecl_29490 gpiochip_add_pin_range fndecl 5 29490 &enable_so_befs_bt_read_node_fndecl_29490 nohasharray
157790 +enable_so_phys_out_snd_efw_29490 phys_out snd_efw 0 29490 &enable_so_gpiochip_add_pin_range_fndecl_29490
157791 +enable_so_pcpu_fc_alloc_fndecl_29497 pcpu_fc_alloc fndecl 3-2 29497 NULL
157792 +enable_so_cx23885_alsa_dma_init_fndecl_29499 cx23885_alsa_dma_init fndecl 2 29499 NULL
157793 +enable_so_raid_disks_mdu_array_info_s_29501 raid_disks mdu_array_info_s 0 29501 NULL
157794 +enable_so_type_length_fru_type_length_29503 type_length fru_type_length 0 29503 NULL
157795 +enable_so_nf_nat_sdp_media_fndecl_29508 nf_nat_sdp_media fndecl 9 29508 NULL
157796 +enable_so_ecryptfs_copy_filename_fndecl_29519 ecryptfs_copy_filename fndecl 4 29519 NULL
157797 +enable_so_nritems_btrfs_header_29521 nritems btrfs_header 0 29521 NULL
157798 +enable_so_unix_stream_connect_fndecl_29527 unix_stream_connect fndecl 3 29527 NULL
157799 +enable_so_h4_recv_buf_fndecl_29532 h4_recv_buf fndecl 4 29532 NULL nohasharray
157800 +enable_so_blocks_mmc_ioc_cmd_29532 blocks mmc_ioc_cmd 0 29532 &enable_so_h4_recv_buf_fndecl_29532
157801 +enable_so_forw_xfs_da3_icnode_hdr_29543 forw xfs_da3_icnode_hdr 0 29543 NULL
157802 +enable_so_ooboffs_mtd_oob_ops_29549 ooboffs mtd_oob_ops 0 29549 NULL
157803 +enable_so_local_max_bio_size_drbd_device_29550 local_max_bio_size drbd_device 0 29550 NULL
157804 +enable_so_zone_mem_ttm_mem_zone_29551 zone_mem ttm_mem_zone 0 29551 NULL
157805 +enable_so_ext4_xattr_trusted_set_fndecl_29556 ext4_xattr_trusted_set fndecl 4 29556 NULL nohasharray
157806 +enable_so_befs_read_lsymlink_fndecl_29556 befs_read_lsymlink fndecl 4 29556 &enable_so_ext4_xattr_trusted_set_fndecl_29556
157807 +enable_so_l2cap_chan_send_fndecl_29557 l2cap_chan_send fndecl 3 29557 NULL
157808 +enable_so_iwl_mvm_send_cmd_pdu_fndecl_29560 iwl_mvm_send_cmd_pdu fndecl 0 29560 NULL
157809 +enable_so_calculate_iosize_fndecl_29562 calculate_iosize fndecl 0-4-5-3-2-1 29562 NULL
157810 +enable_so_ieee80211_rx_bss_info_fndecl_29564 ieee80211_rx_bss_info fndecl 3 29564 NULL
157811 +enable_so_short_retry_limit_orinoco_private_29566 short_retry_limit orinoco_private 0 29566 NULL
157812 +enable_so_fs_devrw_entry_fndecl_29575 fs_devrw_entry fndecl 3 29575 NULL
157813 +enable_so_addr_drm_amdgpu_gem_userptr_29582 addr drm_amdgpu_gem_userptr 0 29582 NULL
157814 +enable_so_xstateregs_get_fndecl_29585 xstateregs_get fndecl 4 29585 NULL nohasharray
157815 +enable_so_valid_hooks_xt_table_29585 valid_hooks xt_table 0 29585 &enable_so_xstateregs_get_fndecl_29585
157816 +enable_so____mic_ioremap_fndecl_29587 ___mic_ioremap fndecl 3-2 29587 NULL
157817 +enable_so_num_rx_queues_e1000_adapter_29589 num_rx_queues e1000_adapter 0 29589 NULL
157818 +enable_so_max_requests_hptiop_hba_29596 max_requests hptiop_hba 0 29596 NULL
157819 +enable_so_ti_write_fndecl_29599 ti_write fndecl 4 29599 NULL
157820 +enable_so_btmrvl_download_cal_data_fndecl_29602 btmrvl_download_cal_data fndecl 3 29602 NULL
157821 +enable_so_read_b43_debugfs_fops_29607 read b43_debugfs_fops 0 29607 NULL nohasharray
157822 +enable_so_queue_size_snd_timer_user_29607 queue_size snd_timer_user 0 29607 &enable_so_read_b43_debugfs_fops_29607
157823 +enable_so_r1_sync_page_io_fndecl_29608 r1_sync_page_io fndecl 3-2 29608 NULL
157824 +enable_so_width_mxr_block_29613 width mxr_block 0 29613 NULL
157825 +enable_so_efd_group_ext4_free_data_29619 efd_group ext4_free_data 0 29619 NULL
157826 +enable_so_nr_cells_axp20x_dev_29628 nr_cells axp20x_dev 0 29628 NULL
157827 +enable_so_escd_size_escd_info_struc_29631 escd_size escd_info_struc 0 29631 NULL
157828 +enable_so_vbi_vlen_saa7134_dev_29640 vbi_vlen saa7134_dev 0 29640 NULL nohasharray
157829 +enable_so_nicvf_init_snd_queue_fndecl_29640 nicvf_init_snd_queue fndecl 3 29640 &enable_so_vbi_vlen_saa7134_dev_29640
157830 +enable_so_acpi_rs_set_resource_header_fndecl_29642 acpi_rs_set_resource_header fndecl 2 29642 NULL
157831 +enable_so_vb_bytes_per_frame_cx18_stream_29644 vb_bytes_per_frame cx18_stream 0 29644 NULL
157832 +enable_so_placement_offset_eth_fast_path_rx_cqe_29646 placement_offset eth_fast_path_rx_cqe 0 29646 NULL nohasharray
157833 +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
157834 +enable_so_num_counters_arpt_replace_29649 num_counters arpt_replace 0 29649 NULL nohasharray
157835 +enable_so_reserve_mc_sibling_devs_fndecl_29649 reserve_mc_sibling_devs fndecl 2-3 29649 &enable_so_num_counters_arpt_replace_29649
157836 +enable_so_count_vfio_pci_hot_reset_info_29655 count vfio_pci_hot_reset_info 0 29655 NULL
157837 +enable_so_rate_idx_ieee80211_rx_status_29659 rate_idx ieee80211_rx_status 0 29659 NULL nohasharray
157838 +enable_so_split_node_fndecl_29659 split_node fndecl 0 29659 &enable_so_rate_idx_ieee80211_rx_status_29659 nohasharray
157839 +enable_so_ls_num_lprocfs_stats_29659 ls_num lprocfs_stats 0 29659 &enable_so_split_node_fndecl_29659
157840 +enable_so_items_per_memblock_vxge_hw_mempool_29661 items_per_memblock vxge_hw_mempool 0 29661 NULL
157841 +enable_so_pci_cfg_space_size_fndecl_29666 pci_cfg_space_size fndecl 0 29666 NULL
157842 +enable_so___ipv4_tun_to_nlattr_fndecl_29678 __ipv4_tun_to_nlattr fndecl 4 29678 NULL nohasharray
157843 +enable_so_num_tagged_esp_lun_data_29678 num_tagged esp_lun_data 0 29678 &enable_so___ipv4_tun_to_nlattr_fndecl_29678
157844 +enable_so_rtsx_usb_seq_read_register_fndecl_29680 rtsx_usb_seq_read_register fndecl 3 29680 NULL nohasharray
157845 +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
157846 +enable_so_comps_used_isert_device_29683 comps_used isert_device 0 29683 NULL
157847 +enable_so_APP_len_camera_data_29686 APP_len camera_data 0 29686 NULL
157848 +enable_so_i40e_pci_sriov_configure_fndecl_29688 i40e_pci_sriov_configure fndecl 2 29688 NULL
157849 +enable_so_osd_req_write_sg_kern_fndecl_29697 osd_req_write_sg_kern fndecl 5 29697 NULL
157850 +enable_so_qlcnic_pci_sriov_enable_fndecl_29700 qlcnic_pci_sriov_enable fndecl 2 29700 NULL
157851 +enable_so_rds_message_alloc_fndecl_29702 rds_message_alloc fndecl 1 29702 NULL
157852 +enable_so_get_vm_area_caller_fndecl_29708 get_vm_area_caller fndecl 1 29708 NULL
157853 +enable_so_ocfs2_add_refcounted_extent_fndecl_29709 ocfs2_add_refcounted_extent fndecl 6-7-5 29709 NULL
157854 +enable_so_SGE_size__MPT_ADAPTER_29715 SGE_size _MPT_ADAPTER 0 29715 NULL
157855 +enable_so_first_sect_blkif_request_segment_29716 first_sect blkif_request_segment 0 29716 NULL
157856 +enable_so_ca91cx42_alloc_resource_fndecl_29717 ca91cx42_alloc_resource fndecl 2 29717 NULL
157857 +enable_so_ext4_itable_unused_count_fndecl_29718 ext4_itable_unused_count fndecl 0 29718 NULL
157858 +enable_so_maxframe_vardecl_n_hdlc_c_29719 maxframe vardecl_n_hdlc.c 0 29719 NULL
157859 +enable_so_qib_alloc_fast_reg_page_list_fndecl_29720 qib_alloc_fast_reg_page_list fndecl 2 29720 NULL
157860 +enable_so_bpp_aty128_crtc_29724 bpp aty128_crtc 0 29724 NULL nohasharray
157861 +enable_so_sel_write_disable_fndecl_29724 sel_write_disable fndecl 3 29724 &enable_so_bpp_aty128_crtc_29724
157862 +enable_so_Zlen_hfc_multi_29733 Zlen hfc_multi 0 29733 NULL nohasharray
157863 +enable_so_num_resources_mfd_cell_29733 num_resources mfd_cell 0 29733 &enable_so_Zlen_hfc_multi_29733
157864 +enable_so_target_pages_balloon_stats_29734 target_pages balloon_stats 0 29734 NULL
157865 +enable_so___ceph_tcp_sendpage_fndecl_29744 __ceph_tcp_sendpage fndecl 0-4 29744 NULL
157866 +enable_so_ba_param_set_wil_back_rx_29752 ba_param_set wil_back_rx 0 29752 NULL
157867 +enable_so_snd_pcm_lib_read_fndecl_29755 snd_pcm_lib_read fndecl 0 29755 NULL
157868 +enable_so_mmio_phys_ivhd_header_29762 mmio_phys ivhd_header 0 29762 NULL
157869 +enable_so_hotplug_pages_balloon_stats_29763 hotplug_pages balloon_stats 0 29763 NULL nohasharray
157870 +enable_so_ext4_write_begin_fndecl_29763 ext4_write_begin fndecl 4-3 29763 &enable_so_hotplug_pages_balloon_stats_29763
157871 +enable_so_physical_scrub_bio_29776 physical scrub_bio 0 29776 NULL
157872 +enable_so_ath6kl_wmi_ap_set_dtim_cmd_fndecl_29779 ath6kl_wmi_ap_set_dtim_cmd fndecl 2 29779 NULL
157873 +enable_so_eqp_bdi_bd_list_29780 eqp_bdi bd_list 0 29780 NULL
157874 +enable_so_io_min_queue_limits_29785 io_min queue_limits 0 29785 NULL
157875 +enable_so_serial_in_uart_port_29788 serial_in uart_port 0 29788 NULL
157876 +enable_so_first_index_zap_details_29790 first_index zap_details 0 29790 NULL
157877 +enable_so_supply_map_read_file_fndecl_29795 supply_map_read_file fndecl 3 29795 NULL
157878 +enable_so_nvkm_xtensa_create__fndecl_29796 nvkm_xtensa_create_ fndecl 8 29796 NULL
157879 +enable_so_blk_queue_max_discard_sectors_fndecl_29799 blk_queue_max_discard_sectors fndecl 2 29799 NULL
157880 +enable_so_ima_show_htable_violations_fndecl_29800 ima_show_htable_violations fndecl 3 29800 NULL
157881 +enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807 cxgb3_get_cpl_reply_skb fndecl 2 29807 NULL nohasharray
157882 +enable_so_i_disksize_ext4_inode_info_29807 i_disksize ext4_inode_info 0 29807 &enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807
157883 +enable_so_otp_read_fndecl_29809 otp_read fndecl 5-4-2 29809 NULL nohasharray
157884 +enable_so_vbe_state_size_uvesafb_par_29809 vbe_state_size uvesafb_par 0 29809 &enable_so_otp_read_fndecl_29809
157885 +enable_so_double_offset_smbios_cru64_info_29825 double_offset smbios_cru64_info 0 29825 NULL
157886 +enable_so_num_ports_ohci_hcd_29835 num_ports ohci_hcd 0 29835 NULL
157887 +enable_so_si_lasti_bfs_sb_info_29842 si_lasti bfs_sb_info 0 29842 NULL
157888 +enable_so_len_ethtool_dump_29843 len ethtool_dump 0 29843 NULL
157889 +enable_so_s_desc_per_block_ext3_sb_info_29846 s_desc_per_block ext3_sb_info 0 29846 NULL
157890 +enable_so_fq_alloc_node_fndecl_29850 fq_alloc_node fndecl 1 29850 NULL
157891 +enable_so_iommu_pgshift_gk20a_instmem_priv_29853 iommu_pgshift gk20a_instmem_priv 0 29853 NULL
157892 +enable_so_rr_len_rpcrdma_rep_29856 rr_len rpcrdma_rep 0 29856 NULL
157893 +enable_so_pvr2_buffer_get_count_fndecl_29860 pvr2_buffer_get_count fndecl 0 29860 NULL
157894 +enable_so_lower_vardecl_matroxfb_base_c_29861 lower vardecl_matroxfb_base.c 0 29861 NULL nohasharray
157895 +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
157896 +enable_so_bfs_add_entry_fndecl_29864 bfs_add_entry fndecl 4 29864 NULL
157897 +enable_so_alloc_vmap_area_fndecl_29865 alloc_vmap_area fndecl 1-2-3 29865 NULL
157898 +enable_so_xprt_complete_rqst_fndecl_29874 xprt_complete_rqst fndecl 2 29874 NULL
157899 +enable_so_fat_attach_fndecl_29877 fat_attach fndecl 2 29877 NULL
157900 +enable_so_nfs_idmap_lookup_id_fndecl_29879 nfs_idmap_lookup_id fndecl 2 29879 NULL
157901 +enable_so_current_size_ncp_server_29882 current_size ncp_server 0 29882 NULL
157902 +enable_so_parport_write_fndecl_29886 parport_write fndecl 0 29886 NULL
157903 +enable_so_length_ndis_80211_pmkid_29893 length ndis_80211_pmkid 0 29893 NULL
157904 +enable_so_selinux_inode_setxattr_fndecl_29895 selinux_inode_setxattr fndecl 4 29895 NULL
157905 +enable_so_residual_st_cmdstatus_29897 residual st_cmdstatus 0 29897 NULL
157906 +enable_so_ovl_fill_lower_fndecl_29899 ovl_fill_lower fndecl 3 29899 NULL
157907 +enable_so_be_pci_sriov_configure_fndecl_29900 be_pci_sriov_configure fndecl 2 29900 NULL
157908 +enable_so_edge_write_fndecl_29911 edge_write fndecl 4 29911 NULL
157909 +enable_so_io_error_dio_29914 io_error dio 0 29914 NULL
157910 +enable_so_fw_imem_len_rt_firmware_29916 fw_imem_len rt_firmware 0 29916 NULL nohasharray
157911 +enable_so_PageLength__CONFIG_PAGE_HEADER_29916 PageLength _CONFIG_PAGE_HEADER 0 29916 &enable_so_fw_imem_len_rt_firmware_29916
157912 +enable_so_size_ipt_replace_29921 size ipt_replace 0 29921 NULL
157913 +enable_so_sctp_getsockopt_maxseg_fndecl_29922 sctp_getsockopt_maxseg fndecl 2 29922 NULL
157914 +enable_so_nr_frags_skb_shared_info_29925 nr_frags skb_shared_info 0 29925 NULL
157915 +enable_so_mtt_base_mthca_mr_table_29926 mtt_base mthca_mr_table 0 29926 NULL
157916 +enable_so_sys_syslog_fndecl_29929 sys_syslog fndecl 3 29929 NULL
157917 +enable_so_fll_fref_wm8993_priv_29931 fll_fref wm8993_priv 0 29931 NULL
157918 +enable_so_read_pstore_info_29933 read pstore_info 0 29933 NULL
157919 +enable_so_pvr2_ioread_read_fndecl_29939 pvr2_ioread_read fndecl 3 29939 NULL
157920 +enable_so_titan_400l_800l_setup_fndecl_29940 titan_400l_800l_setup fndecl 4 29940 NULL
157921 +enable_so___iscsi_complete_pdu_fndecl_29941 __iscsi_complete_pdu fndecl 4 29941 NULL
157922 +enable_so_spi_sync_fndecl_29944 spi_sync fndecl 0 29944 NULL
157923 +enable_so_core_size_rx_module_29949 core_size_rx module 0 29949 NULL
157924 +enable_so_s_min_extra_isize_ext4_super_block_29952 s_min_extra_isize ext4_super_block 0 29952 NULL nohasharray
157925 +enable_so_rx_endpoint_acm_29952 rx_endpoint acm 0 29952 &enable_so_s_min_extra_isize_ext4_super_block_29952 nohasharray
157926 +enable_so_cciss_proc_write_fndecl_29952 cciss_proc_write fndecl 3 29952 &enable_so_rx_endpoint_acm_29952
157927 +enable_so_opts1_mask_rtl8169_private_29953 opts1_mask rtl8169_private 0 29953 NULL
157928 +enable_so_max_mlx5_core_srq_29956 max mlx5_core_srq 0 29956 NULL nohasharray
157929 +enable_so_state_count_Fsm_29956 state_count Fsm 0 29956 &enable_so_max_mlx5_core_srq_29956
157930 +enable_so_memconsole_length_vardecl_memconsole_c_29962 memconsole_length vardecl_memconsole.c 0 29962 NULL
157931 +enable_so_c_phys_ocfs2_write_cluster_desc_29971 c_phys ocfs2_write_cluster_desc 0 29971 NULL
157932 +enable_so_idef5upd_gru_control_block_extended_29974 idef5upd gru_control_block_extended 0 29974 NULL
157933 +enable_so_ds_in_channels_hdsp_29975 ds_in_channels hdsp 0 29975 NULL
157934 +enable_so_i_suballoc_loc_ocfs2_dinode_29986 i_suballoc_loc ocfs2_dinode 0 29986 NULL nohasharray
157935 +enable_so_ubi_leb_change_fndecl_29986 ubi_leb_change fndecl 4 29986 &enable_so_i_suballoc_loc_ocfs2_dinode_29986
157936 +enable_so_init_size_il4965_firmware_pieces_29990 init_size il4965_firmware_pieces 0 29990 NULL
157937 +enable_so_nvif_object_new_fndecl_29999 nvif_object_new fndecl 5 29999 NULL
157938 +enable_so_auth_mode_libipw_security_30001 auth_mode libipw_security 0 30001 NULL
157939 +enable_so_snd_pcm_lib_preallocate_pages1_fndecl_30002 snd_pcm_lib_preallocate_pages1 fndecl 2 30002 NULL
157940 +enable_so_btrfs_add_ordered_extent_compress_fndecl_30005 btrfs_add_ordered_extent_compress fndecl 4-2-5-3 30005 NULL
157941 +enable_so_msc_nfinalizers_lnet_msg_container_30006 msc_nfinalizers lnet_msg_container 0 30006 NULL
157942 +enable_so_obj_offset_ore_striping_info_30010 obj_offset ore_striping_info 0 30010 NULL nohasharray
157943 +enable_so___qlcnic_pci_sriov_enable_fndecl_30010 __qlcnic_pci_sriov_enable fndecl 2 30010 &enable_so_obj_offset_ore_striping_info_30010
157944 +enable_so_size_fstioc_write_30011 size fstioc_write 0 30011 NULL
157945 +enable_so_snd_rme9652_capture_copy_fndecl_30012 snd_rme9652_capture_copy fndecl 5 30012 NULL
157946 +enable_so_period_em28xx_audio_30017 period em28xx_audio 0 30017 NULL
157947 +enable_so_send_hole_fndecl_30019 send_hole fndecl 2 30019 NULL nohasharray
157948 +enable_so_read_file_spectral_count_fndecl_30019 read_file_spectral_count fndecl 3 30019 &enable_so_send_hole_fndecl_30019
157949 +enable_so_netlbl_catmap_setbit_fndecl_30024 netlbl_catmap_setbit fndecl 2 30024 NULL
157950 +enable_so_read_emulate_fndecl_30037 read_emulate fndecl 2-4 30037 NULL nohasharray
157951 +enable_so_max_wqes_mthca_limits_30037 max_wqes mthca_limits 0 30037 &enable_so_read_emulate_fndecl_30037
157952 +enable_so_xdr_set_scratch_buffer_fndecl_30045 xdr_set_scratch_buffer fndecl 3 30045 NULL
157953 +enable_so_ath6kl_listen_int_read_fndecl_30048 ath6kl_listen_int_read fndecl 3 30048 NULL
157954 +enable_so_max_header_proto_30054 max_header proto 0 30054 NULL
157955 +enable_so_sta_ht_capa_read_fndecl_30061 sta_ht_capa_read fndecl 3 30061 NULL
157956 +enable_so_io_throttle_count_vnic_fc_config_30064 io_throttle_count vnic_fc_config 0 30064 NULL
157957 +enable_so_add_swap_extent_fndecl_30065 add_swap_extent fndecl 2-4-3 30065 NULL nohasharray
157958 +enable_so_get_dump_page_fndecl_30065 get_dump_page fndecl 1 30065 &enable_so_add_swap_extent_fndecl_30065
157959 +enable_so_psb_gem_create_fndecl_30068 psb_gem_create fndecl 3 30068 NULL nohasharray
157960 +enable_so_dio_read_error_fndecl_30068 dio_read_error fndecl 4-5 30068 &enable_so_psb_gem_create_fndecl_30068
157961 +enable_so_to_ifla_vlan_qos_mapping_30070 to ifla_vlan_qos_mapping 0 30070 NULL
157962 +enable_so_SenseLen__ErrorInfo_struct_30071 SenseLen _ErrorInfo_struct 0 30071 NULL nohasharray
157963 +enable_so_SYSC_io_setup_fndecl_30071 SYSC_io_setup fndecl 1 30071 &enable_so_SenseLen__ErrorInfo_struct_30071
157964 +enable_so_mwifiex_send_tdls_data_frame_fndecl_30072 mwifiex_send_tdls_data_frame fndecl 7 30072 NULL
157965 +enable_so_wapi_ie_len_mwifiex_private_30073 wapi_ie_len mwifiex_private 0 30073 NULL
157966 +enable_so_cur_pos_kobil_private_30076 cur_pos kobil_private 0 30076 NULL
157967 +enable_so_ufx_alloc_urb_list_fndecl_30078 ufx_alloc_urb_list fndecl 3 30078 NULL
157968 +enable_so_num_pages_vmw_mob_30089 num_pages vmw_mob 0 30089 NULL
157969 +enable_so_ie_len_ieee80211_mgd_assoc_data_30093 ie_len ieee80211_mgd_assoc_data 0 30093 NULL nohasharray
157970 +enable_so_do_compat_pselect_fndecl_30093 do_compat_pselect fndecl 1 30093 &enable_so_ie_len_ieee80211_mgd_assoc_data_30093
157971 +enable_so_id_watchdog_device_30094 id watchdog_device 0 30094 NULL
157972 +enable_so_length_ehci_qtd_30102 length ehci_qtd 0 30102 NULL
157973 +enable_so_ecryptfs_decode_and_decrypt_filename_fndecl_30104 ecryptfs_decode_and_decrypt_filename fndecl 5 30104 NULL
157974 +enable_so_mmc_test_seq_write_perf_fndecl_30107 mmc_test_seq_write_perf fndecl 2 30107 NULL
157975 +enable_so_of_translate_address_fndecl_30111 of_translate_address fndecl 0 30111 NULL
157976 +enable_so_if_real_bytes_xfs_ifork_30126 if_real_bytes xfs_ifork 0 30126 NULL
157977 +enable_so_max_total_qng_asc_dvc_var_30137 max_total_qng asc_dvc_var 0 30137 NULL
157978 +enable_so_hdr_len_ieee80211_fast_tx_30143 hdr_len ieee80211_fast_tx 0 30143 NULL
157979 +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
157980 +enable_so_hpfs_remove_fnode_fndecl_30151 hpfs_remove_fnode fndecl 2 30151 &enable_so_i915_gem_object_create_stolen_for_preallocated_fndecl_30151
157981 +enable_so_num_tx_queues_ixgbevf_adapter_30155 num_tx_queues ixgbevf_adapter 0 30155 NULL
157982 +enable_so_scif_get_node_ids_fndecl_30156 scif_get_node_ids fndecl 0 30156 NULL
157983 +enable_so_buffer_len_fnic_dbgfs_30157 buffer_len fnic_dbgfs 0 30157 NULL
157984 +enable_so_iobuf_dma_us_data_30159 iobuf_dma us_data 0 30159 NULL
157985 +enable_so_mmio_base_drm_mga_private_30161 mmio_base drm_mga_private 0 30161 NULL
157986 +enable_so_tool_peer_mask_read_fndecl_30164 tool_peer_mask_read fndecl 3 30164 NULL
157987 +enable_so_bulk_in_size_hdpvr_device_30165 bulk_in_size hdpvr_device 0 30165 NULL nohasharray
157988 +enable_so_pci_wch_ch38x_setup_fndecl_30165 pci_wch_ch38x_setup fndecl 4 30165 &enable_so_bulk_in_size_hdpvr_device_30165
157989 +enable_so_rx_buf_sz_epic_private_30166 rx_buf_sz epic_private 0 30166 NULL nohasharray
157990 +enable_so_send_section_size_netvsc_device_30166 send_section_size netvsc_device 0 30166 &enable_so_rx_buf_sz_epic_private_30166
157991 +enable_so_tailsz_cifs_writedata_30171 tailsz cifs_writedata 0 30171 NULL
157992 +enable_so_rx_ring_size_pxa168_eth_private_30172 rx_ring_size pxa168_eth_private 0 30172 NULL
157993 +enable_so_bnx2x_set_gro_params_fndecl_30177 bnx2x_set_gro_params fndecl 3 30177 NULL
157994 +enable_so_prism2_ap_get_sta_qual_fndecl_30181 prism2_ap_get_sta_qual fndecl 0 30181 NULL
157995 +enable_so_in_ep_num_rtl_hal_usbint_cfg_30182 in_ep_num rtl_hal_usbint_cfg 0 30182 NULL
157996 +enable_so_SyS_io_setup_fndecl_30191 SyS_io_setup fndecl 1 30191 NULL
157997 +enable_so_event_phy_transmit_error_read_fndecl_30196 event_phy_transmit_error_read fndecl 3 30196 NULL
157998 +enable_so_alloc_pci_root_info_fndecl_30198 alloc_pci_root_info fndecl 2-1 30198 NULL
157999 +enable_so_buf_len_uvesafb_task_30200 buf_len uvesafb_task 0 30200 NULL
158000 +enable_so_pos_drm_i915_error_state_buf_30203 pos drm_i915_error_state_buf 0 30203 NULL
158001 +enable_so_pipe_size_renesas_usbhs_driver_param_30206 pipe_size renesas_usbhs_driver_param 0 30206 NULL
158002 +enable_so_len_header_msg_30207 len header_msg 0 30207 NULL
158003 +enable_so_hrp_nthrs_ptlrpc_hr_partition_30214 hrp_nthrs ptlrpc_hr_partition 0 30214 NULL
158004 +enable_so_xennet_make_one_txreq_fndecl_30215 xennet_make_one_txreq fndecl 4-5 30215 NULL
158005 +enable_so_minor_rbd_device_30216 minor rbd_device 0 30216 NULL
158006 +enable_so_bm_bits_bm_xfer_ctx_30221 bm_bits bm_xfer_ctx 0 30221 NULL nohasharray
158007 +enable_so_rd_offset_nfsd4_read_30221 rd_offset nfsd4_read 0 30221 &enable_so_bm_bits_bm_xfer_ctx_30221
158008 +enable_so_le_mtu_hci_dev_30225 le_mtu hci_dev 0 30225 NULL
158009 +enable_so_tegra_spi_start_rx_dma_fndecl_30226 tegra_spi_start_rx_dma fndecl 0-2 30226 NULL
158010 +enable_so_major_vardecl_pt_c_30228 major vardecl_pt.c 0 30228 NULL
158011 +enable_so_vtag_atl1e_recv_ret_status_30229 vtag atl1e_recv_ret_status 0 30229 NULL
158012 +enable_so___add_keyed_refs_fndecl_30230 __add_keyed_refs fndecl 3 30230 NULL
158013 +enable_so_tcp_header_len_tcp_sock_30231 tcp_header_len tcp_sock 0 30231 NULL
158014 +enable_so__brk_start_vardecl_setup_c_30236 _brk_start vardecl_setup.c 0 30236 NULL nohasharray
158015 +enable_so_SetLineNumber_fndecl_30236 SetLineNumber fndecl 0 30236 &enable_so__brk_start_vardecl_setup_c_30236
158016 +enable_so_size_xen_memory_region_30239 size xen_memory_region 0 30239 NULL
158017 +enable_so_reiserfs_breada_fndecl_30247 reiserfs_breada fndecl 3-2 30247 NULL
158018 +enable_so_ndisc_fill_redirect_hdr_option_fndecl_30248 ndisc_fill_redirect_hdr_option fndecl 3 30248 NULL
158019 +enable_so_id_kern_ipc_perm_30249 id kern_ipc_perm 0 30249 NULL
158020 +enable_so_compat_sys_truncate_fndecl_30258 compat_sys_truncate fndecl 2 30258 NULL
158021 +enable_so_max_host_qng_adv_dvc_var_30264 max_host_qng adv_dvc_var 0 30264 NULL
158022 +enable_so_tda10048_writeregbulk_fndecl_30265 tda10048_writeregbulk fndecl 4 30265 NULL
158023 +enable_so_sys_sendfile_fndecl_30267 sys_sendfile fndecl 4 30267 NULL nohasharray
158024 +enable_so_rawsock_recvmsg_fndecl_30267 rawsock_recvmsg fndecl 3 30267 &enable_so_sys_sendfile_fndecl_30267
158025 +enable_so_tda665x_write_fndecl_30269 tda665x_write fndecl 3 30269 NULL
158026 +enable_so_minor_count_vardecl_30272 minor_count vardecl 0 30272 NULL
158027 +enable_so_blockshift_alauda_media_info_30287 blockshift alauda_media_info 0 30287 NULL
158028 +enable_so_xfs_collapse_file_space_fndecl_30288 xfs_collapse_file_space fndecl 2-3 30288 NULL
158029 +enable_so_blk_queue_dma_drain_fndecl_30290 blk_queue_dma_drain fndecl 4 30290 NULL
158030 +enable_so_tcp_send_mss_fndecl_30292 tcp_send_mss fndecl 0 30292 NULL
158031 +enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296 t_tinc_hdr_rem rds_tcp_connection 0 30296 NULL nohasharray
158032 +enable_so_count_argc_fndecl_30296 count_argc fndecl 0 30296 &enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296
158033 +enable_so_wlength_at76_rx_buffer_30301 wlength at76_rx_buffer 0 30301 NULL
158034 +enable_so_logi_dj_raw_event_fndecl_30304 logi_dj_raw_event fndecl 4 30304 NULL
158035 +enable_so_m_ts_msg_msg_30307 m_ts msg_msg 0 30307 NULL
158036 +enable_so_alloc_alien_cache_fndecl_30308 alloc_alien_cache fndecl 2 30308 NULL
158037 +enable_so_tracing_buffers_read_fndecl_30311 tracing_buffers_read fndecl 3 30311 NULL
158038 +enable_so_ki_pos_kiocb_30312 ki_pos kiocb 0 30312 NULL
158039 +enable_so_wbuf_pagesize_jffs2_sb_info_30318 wbuf_pagesize jffs2_sb_info 0 30318 NULL
158040 +enable_so_nfakewriters_vardecl_rcutorture_c_30320 nfakewriters vardecl_rcutorture.c 0 30320 NULL
158041 +enable_so_kvm_write_guest_cached_fndecl_30321 kvm_write_guest_cached fndecl 4 30321 NULL
158042 +enable_so_avc_stream_set_format_fndecl_30322 avc_stream_set_format fndecl 5 30322 NULL
158043 +enable_so_name_len_discovery_t_30331 name_len discovery_t 0 30331 NULL
158044 +enable_so_tc90522_master_xfer_fndecl_30332 tc90522_master_xfer fndecl 3 30332 NULL
158045 +enable_so_src_bytes_x86_instruction_info_30334 src_bytes x86_instruction_info 0 30334 NULL
158046 +enable_so_rs_move_legacy_other_fndecl_30344 rs_move_legacy_other fndecl 5 30344 NULL
158047 +enable_so_acpi_os_map_memory_fndecl_30346 acpi_os_map_memory fndecl 2-1 30346 NULL
158048 +enable_so_overflow_maj_vardecl_ucm_c_30347 overflow_maj vardecl_ucm.c 0 30347 NULL
158049 +enable_so_p_ssize_f_uac2_opts_30353 p_ssize f_uac2_opts 0 30353 NULL
158050 +enable_so_max_rq_sg_mlx4_caps_30357 max_rq_sg mlx4_caps 0 30357 NULL
158051 +enable_so_bt_datalen_bcm5974_config_30374 bt_datalen bcm5974_config 0 30374 NULL nohasharray
158052 +enable_so_len_snd_seq_ev_ext_30374 len snd_seq_ev_ext 0 30374 &enable_so_bt_datalen_bcm5974_config_30374
158053 +enable_so_ubifs_pad_fndecl_30375 ubifs_pad fndecl 3 30375 NULL
158054 +enable_so_max_r2t_iscsi_session_30376 max_r2t iscsi_session 0 30376 NULL
158055 +enable_so_pnp_add_bus_resource_fndecl_30381 pnp_add_bus_resource fndecl 3-2 30381 NULL
158056 +enable_so_qnx4_iget_fndecl_30383 qnx4_iget fndecl 2 30383 NULL
158057 +enable_so_get_callback_via_fndecl_30387 get_callback_via fndecl 0 30387 NULL
158058 +enable_so_ioat2_alloc_ring_fndecl_30391 ioat2_alloc_ring fndecl 2 30391 NULL
158059 +enable_so_ssid_len_cfg80211_ssid_30393 ssid_len cfg80211_ssid 0 30393 NULL
158060 +enable_so_datalen_port100_frame_30394 datalen port100_frame 0 30394 NULL
158061 +enable_so_ocfs2_dx_entry_list_insert_fndecl_30397 ocfs2_dx_entry_list_insert fndecl 3 30397 NULL
158062 +enable_so_blkdev_write_end_fndecl_30399 blkdev_write_end fndecl 5 30399 NULL
158063 +enable_so_sq_overhead_fndecl_30401 sq_overhead fndecl 0 30401 NULL
158064 +enable_so_dbgp_control_msg_fndecl_30405 dbgp_control_msg fndecl 7 30405 NULL
158065 +enable_so_il_dbgfs_rx_queue_read_fndecl_30406 il_dbgfs_rx_queue_read fndecl 3 30406 NULL
158066 +enable_so_hwm_tx_init_fndecl_30411 hwm_tx_init fndecl 4 30411 NULL
158067 +enable_so_get_pages_vram_fndecl_30416 get_pages_vram fndecl 2 30416 NULL
158068 +enable_so_decode_opaque_fixed_fndecl_30421 decode_opaque_fixed fndecl 3 30421 NULL
158069 +enable_so_width_bttv_fh_30432 width bttv_fh 0 30432 NULL
158070 +enable_so_bytes_committed_mlx5_pagefault_30434 bytes_committed mlx5_pagefault 0 30434 NULL
158071 +enable_so_of_irq_count_fndecl_30438 of_irq_count fndecl 0 30438 NULL
158072 +enable_so_ubifs_write_node_fndecl_30441 ubifs_write_node fndecl 3-5 30441 NULL
158073 +enable_so_count_snd_kcontrol_new_30443 count snd_kcontrol_new 0 30443 NULL
158074 +enable_so_pmd_entry_mm_walk_30448 pmd_entry mm_walk 0 30448 NULL
158075 +enable_so_comedi_alloc_spriv_fndecl_30449 comedi_alloc_spriv fndecl 2 30449 NULL
158076 +enable_so_num_channels_iio_dev_30451 num_channels iio_dev 0 30451 NULL
158077 +enable_so___add_zone_fndecl_30452 __add_zone fndecl 2 30452 NULL
158078 +enable_so_xfs_map_direct_fndecl_30459 xfs_map_direct fndecl 4 30459 NULL
158079 +enable_so_mmap_region_fndecl_30460 mmap_region fndecl 0-2-3-5 30460 NULL
158080 +enable_so_ib_ipath_max_qp_wrs_vardecl_30465 ib_ipath_max_qp_wrs vardecl 0 30465 NULL
158081 +enable_so_grow_pgdat_span_fndecl_30467 grow_pgdat_span fndecl 2 30467 NULL
158082 +enable_so_height_drm_qxl_alloc_surf_30468 height drm_qxl_alloc_surf 0 30468 NULL
158083 +enable_so___qp_memcpy_to_queue_fndecl_30472 __qp_memcpy_to_queue fndecl 4-2 30472 NULL
158084 +enable_so_nouveau_gem_new_fndecl_30476 nouveau_gem_new fndecl 2 30476 NULL nohasharray
158085 +enable_so_packet_size_ncp_server_30476 packet_size ncp_server 0 30476 &enable_so_nouveau_gem_new_fndecl_30476
158086 +enable_so_produce_size_vmci_qp_alloc_info_30480 produce_size vmci_qp_alloc_info 0 30480 NULL nohasharray
158087 +enable_so_btrfs_sync_file_fndecl_30480 btrfs_sync_file fndecl 2-3 30480 &enable_so_produce_size_vmci_qp_alloc_info_30480
158088 +enable_so_xfs_inode_alloc_fndecl_30482 xfs_inode_alloc fndecl 2 30482 NULL
158089 +enable_so_xdr_buf_trim_fndecl_30485 xdr_buf_trim fndecl 2 30485 NULL
158090 +enable_so_SyS_io_getevents_fndecl_30487 SyS_io_getevents fndecl 3 30487 NULL
158091 +enable_so_data_len_ib_ucm_sidr_rep_30488 data_len ib_ucm_sidr_rep 0 30488 NULL
158092 +enable_so_rd_build_prot_space_fndecl_30490 rd_build_prot_space fndecl 3-2 30490 NULL
158093 +enable_so_vhost_add_used_n_fndecl_30491 vhost_add_used_n fndecl 3 30491 NULL
158094 +enable_so_height_s2255_vc_30492 height s2255_vc 0 30492 NULL
158095 +enable_so_kvm_read_guest_atomic_fndecl_30494 kvm_read_guest_atomic fndecl 2-4 30494 NULL
158096 +enable_so_nfcwilink_send_bts_cmd_fndecl_30497 nfcwilink_send_bts_cmd fndecl 3 30497 NULL
158097 +enable_so_tolen_nfs3_linkargs_30505 tolen nfs3_linkargs 0 30505 NULL
158098 +enable_so___blkdev_issue_discard_async_fndecl_30509 __blkdev_issue_discard_async fndecl 2-3 30509 NULL
158099 +enable_so_rocker_group_l2_fan_out_fndecl_30512 rocker_group_l2_fan_out fndecl 4 30512 NULL
158100 +enable_so_ip_list_hash_size_vardecl_xt_recent_c_30522 ip_list_hash_size vardecl_xt_recent.c 0 30522 NULL
158101 +enable_so_buf_start_lo_rx_buf_desc_30523 buf_start_lo rx_buf_desc 0 30523 NULL
158102 +enable_so_ttm_dma_page_pool_free_fndecl_30527 ttm_dma_page_pool_free fndecl 2 30527 NULL
158103 +enable_so_nvme_submit_sync_cmd_fndecl_30530 nvme_submit_sync_cmd fndecl 4 30530 NULL
158104 +enable_so_send_command_fndecl_30531 send_command fndecl 4 30531 NULL
158105 +enable_so_InitiatorRecvDataSegmentLength_iscsi_conn_ops_30535 InitiatorRecvDataSegmentLength iscsi_conn_ops 0 30535 NULL
158106 +enable_so_len_nfsd_readlinkres_30541 len nfsd_readlinkres 0 30541 NULL
158107 +enable_so_xen_blkif_max_segments_vardecl_xen_blkfront_c_30543 xen_blkif_max_segments vardecl_xen-blkfront.c 0 30543 NULL
158108 +enable_so_pstore_compress_fndecl_30549 pstore_compress fndecl 3-4 30549 NULL
158109 +enable_so_nfcid_len_pn533_target_type_a_30554 nfcid_len pn533_target_type_a 0 30554 NULL
158110 +enable_so_left_vardecl_matroxfb_base_c_30557 left vardecl_matroxfb_base.c 0 30557 NULL
158111 +enable_so_min_size_rhashtable_params_30562 min_size rhashtable_params 0 30562 NULL
158112 +enable_so_wMaxCommand_wdm_device_30565 wMaxCommand wdm_device 0 30565 NULL
158113 +enable_so_entries_usb_sg_request_30570 entries usb_sg_request 0 30570 NULL
158114 +enable_so_snd_pcm_oss_write1_fndecl_30571 snd_pcm_oss_write1 fndecl 3 30571 NULL
158115 +enable_so_s_iblkno_ufs_sb_private_info_30572 s_iblkno ufs_sb_private_info 0 30572 NULL nohasharray
158116 +enable_so_wiidebug_drm_write_fndecl_30572 wiidebug_drm_write fndecl 3 30572 &enable_so_s_iblkno_ufs_sb_private_info_30572 nohasharray
158117 +enable_so_key_len_ubifs_info_30572 key_len ubifs_info 0 30572 &enable_so_wiidebug_drm_write_fndecl_30572
158118 +enable_so_udf_get_pblock_virt20_fndecl_30574 udf_get_pblock_virt20 fndecl 4 30574 NULL
158119 +enable_so_pio_ide_pio_info_30575 pio ide_pio_info 0 30575 NULL nohasharray
158120 +enable_so_mid_get_vbt_data_r0_fndecl_30575 mid_get_vbt_data_r0 fndecl 2 30575 &enable_so_pio_ide_pio_info_30575
158121 +enable_so_userptr_amdgpu_ttm_tt_30577 userptr amdgpu_ttm_tt 0 30577 NULL
158122 +enable_so_fuse_conn_max_background_read_fndecl_30580 fuse_conn_max_background_read fndecl 3 30580 NULL
158123 +enable_so_delta_stack_mm_struct_30582 delta_stack mm_struct 0 30582 NULL nohasharray
158124 +enable_so_ida_get_new_above_fndecl_30582 ida_get_new_above fndecl 0 30582 &enable_so_delta_stack_mm_struct_30582
158125 +enable_so_max_intr_slots_myri10ge_priv_30588 max_intr_slots myri10ge_priv 0 30588 NULL
158126 +enable_so_group_ext4_new_group_data_30590 group ext4_new_group_data 0 30590 NULL nohasharray
158127 +enable_so_rsize_cifs_sb_info_30590 rsize cifs_sb_info 0 30590 &enable_so_group_ext4_new_group_data_30590
158128 +enable_so_read_edid_block_fndecl_30591 read_edid_block fndecl 4 30591 NULL
158129 +enable_so_readsize_acm_30592 readsize acm 0 30592 NULL nohasharray
158130 +enable_so_size_drm_savage_cmdbuf_30592 size drm_savage_cmdbuf 0 30592 &enable_so_readsize_acm_30592
158131 +enable_so_get_scq_fndecl_30594 get_scq fndecl 2 30594 NULL
158132 +enable_so___ipath_get_user_pages_fndecl_30595 __ipath_get_user_pages fndecl 1 30595 NULL
158133 +enable_so_tifm_alloc_adapter_fndecl_30596 tifm_alloc_adapter fndecl 1 30596 NULL
158134 +enable_so_sctp_addto_chunk_fndecl_30597 sctp_addto_chunk fndecl 2 30597 NULL
158135 +enable_so_ext4_collapse_range_fndecl_30598 ext4_collapse_range fndecl 2-3 30598 NULL
158136 +enable_so_offset_drm_i915_gem_pread_30601 offset drm_i915_gem_pread 0 30601 NULL
158137 +enable_so_add_ino_fndecl_30603 add_ino fndecl 4-2 30603 NULL
158138 +enable_so_rx_win_size_mwifiex_add_ba_param_30610 rx_win_size mwifiex_add_ba_param 0 30610 NULL
158139 +enable_so_total_data_placed_lpfc_wcqe_complete_30612 total_data_placed lpfc_wcqe_complete 0 30612 NULL nohasharray
158140 +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
158141 +enable_so_ieee802_11_parse_elems_crc_fndecl_30615 ieee802_11_parse_elems_crc fndecl 2 30615 NULL
158142 +enable_so_size_cmdQ_30622 size cmdQ 0 30622 NULL
158143 +enable_so_si2168_i2c_master_recv_unlocked_fndecl_30633 si2168_i2c_master_recv_unlocked fndecl 3 30633 NULL
158144 +enable_so_lprocfs_wr_atomic_fndecl_30643 lprocfs_wr_atomic fndecl 3 30643 NULL
158145 +enable_so_catc_ctrl_async_fndecl_30648 catc_ctrl_async fndecl 7 30648 NULL
158146 +enable_so_drbd_md_sync_page_io_fndecl_30651 drbd_md_sync_page_io fndecl 3 30651 NULL
158147 +enable_so_size_vmcore_30652 size vmcore 0 30652 NULL
158148 +enable_so_start_numa_memblk_30656 start numa_memblk 0 30656 NULL nohasharray
158149 +enable_so_shrink_pgdat_span_fndecl_30656 shrink_pgdat_span fndecl 3-2 30656 &enable_so_start_numa_memblk_30656 nohasharray
158150 +enable_so_TargetRecvDataSegmentLength_iscsi_conn_ops_30656 TargetRecvDataSegmentLength iscsi_conn_ops 0 30656 &enable_so_shrink_pgdat_span_fndecl_30656
158151 +enable_so_ci_port_test_write_fndecl_30657 ci_port_test_write fndecl 3 30657 NULL
158152 +enable_so_ext4_mb_new_blocks_fndecl_30662 ext4_mb_new_blocks fndecl 0 30662 NULL
158153 +enable_so_tun_put_user_fndecl_30676 tun_put_user fndecl 0 30676 NULL
158154 +enable_so_max_count_pvr2_buffer_30678 max_count pvr2_buffer 0 30678 NULL
158155 +enable_so_nvme_cmd_size_fndecl_30679 nvme_cmd_size fndecl 0 30679 NULL
158156 +enable_so_log_num_srqs_mlx4_init_hca_param_30681 log_num_srqs mlx4_init_hca_param 0 30681 NULL
158157 +enable_so_ramsize_brcmf_chip_30687 ramsize brcmf_chip 0 30687 NULL nohasharray
158158 +enable_so_curr_queue_pairs_virtnet_info_30687 curr_queue_pairs virtnet_info 0 30687 &enable_so_ramsize_brcmf_chip_30687
158159 +enable_so_keybytes_gss_krb5_enctype_30694 keybytes gss_krb5_enctype 0 30694 NULL nohasharray
158160 +enable_so_xfrm_hash_alloc_fndecl_30694 xfrm_hash_alloc fndecl 1 30694 &enable_so_keybytes_gss_krb5_enctype_30694
158161 +enable_so_status_urb_30696 status urb 0 30696 NULL nohasharray
158162 +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
158163 +enable_so_hdsp_spdif_sample_rate_fndecl_30700 hdsp_spdif_sample_rate fndecl 0 30700 NULL
158164 +enable_so_bm_entry_read_fndecl_30707 bm_entry_read fndecl 3 30707 NULL
158165 +enable_so_sched_autogroup_write_fndecl_30715 sched_autogroup_write fndecl 3 30715 NULL
158166 +enable_so_numPhys_PVSCSIConfigPageController_30726 numPhys PVSCSIConfigPageController 0 30726 NULL
158167 +enable_so___alloc_preds_fndecl_30727 __alloc_preds fndecl 2 30727 NULL
158168 +enable_so_lbs_threshold_write_fndecl_30733 lbs_threshold_write fndecl 5 30733 NULL
158169 +enable_so_sock_recvmsg_fndecl_30735 sock_recvmsg fndecl 0 30735 NULL nohasharray
158170 +enable_so_num_descriptors_pmc_ctx_30735 num_descriptors pmc_ctx 0 30735 &enable_so_sock_recvmsg_fndecl_30735
158171 +enable_so_bop_seek_key_nilfs_bmap_operations_30741 bop_seek_key nilfs_bmap_operations 0 30741 NULL nohasharray
158172 +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
158173 +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
158174 +enable_so_iwl_dbgfs_fw_dbg_conf_read_fndecl_30753 iwl_dbgfs_fw_dbg_conf_read fndecl 3 30753 NULL
158175 +enable_so_command_setvloffset_fndecl_30761 command_setvloffset fndecl 0 30761 NULL nohasharray
158176 +enable_so_n_scan_channels_iwl_ucode_capabilities_30761 n_scan_channels iwl_ucode_capabilities 0 30761 &enable_so_command_setvloffset_fndecl_30761
158177 +enable_so_ext3_alloc_branch_fndecl_30765 ext3_alloc_branch fndecl 5 30765 NULL
158178 +enable_so_lp_write_fndecl_30772 lp_write fndecl 3 30772 NULL
158179 +enable_so_leb_size_ubifs_info_30775 leb_size ubifs_info 0 30775 NULL
158180 +enable_so_nzones_high_adfs_discrecord_30776 nzones_high adfs_discrecord 0 30776 NULL
158181 +enable_so_isoc_in_pipe_ttusb_30778 isoc_in_pipe ttusb 0 30778 NULL
158182 +enable_so_inj_readme_read_fndecl_30779 inj_readme_read fndecl 3 30779 NULL
158183 +enable_so_hdrlen_brcmf_pub_30788 hdrlen brcmf_pub 0 30788 NULL nohasharray
158184 +enable_so_fw_node_create_fndecl_30788 fw_node_create fndecl 2 30788 &enable_so_hdrlen_brcmf_pub_30788
158185 +enable_so_alloc_order_ioat2_dma_chan_30790 alloc_order ioat2_dma_chan 0 30790 NULL
158186 +enable_so_netup_write_i2c_fndecl_30793 netup_write_i2c fndecl 5 30793 NULL
158187 +enable_so_ipath_get_user_pages_fndecl_30794 ipath_get_user_pages fndecl 1 30794 NULL
158188 +enable_so_queue_depth_scsi_device_30796 queue_depth scsi_device 0 30796 NULL
158189 +enable_so_kobj_map_fndecl_30797 kobj_map fndecl 2-3 30797 NULL
158190 +enable_so_wr_sz_csio_q_30799 wr_sz csio_q 0 30799 NULL
158191 +enable_so_remove_one_fndecl_30800 remove_one fndecl 2 30800 NULL
158192 +enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803 extra_mpdu_postfix_len lib80211_crypto_ops 0 30803 NULL nohasharray
158193 +enable_so_fwlen_mpt_fw_xfer_30803 fwlen mpt_fw_xfer 0 30803 &enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803
158194 +enable_so_iwl_dbgfs_bf_params_read_fndecl_30805 iwl_dbgfs_bf_params_read fndecl 3 30805 NULL
158195 +enable_so_ResidualCnt_ErrorInfo_30806 ResidualCnt ErrorInfo 0 30806 NULL
158196 +enable_so_buf_dma_gtco_30808 buf_dma gtco 0 30808 NULL nohasharray
158197 +enable_so_sadb_key_bits_sadb_key_30808 sadb_key_bits sadb_key 0 30808 &enable_so_buf_dma_gtco_30808
158198 +enable_so_unmerge_ksm_pages_fndecl_30809 unmerge_ksm_pages fndecl 2 30809 NULL nohasharray
158199 +enable_so_il_dbgfs_missed_beacon_write_fndecl_30809 il_dbgfs_missed_beacon_write fndecl 3 30809 &enable_so_unmerge_ksm_pages_fndecl_30809
158200 +enable_so_si21_readregs_fndecl_30810 si21_readregs fndecl 4 30810 NULL nohasharray
158201 +enable_so_xfs_ialloc_read_agi_fndecl_30810 xfs_ialloc_read_agi fndecl 3 30810 &enable_so_si21_readregs_fndecl_30810
158202 +enable_so_totalram_sysinfo_30812 totalram sysinfo 0 30812 NULL
158203 +enable_so_num_mcg_mthca_profile_30814 num_mcg mthca_profile 0 30814 NULL
158204 +enable_so_audit_log_n_untrustedstring_fndecl_30815 audit_log_n_untrustedstring fndecl 3 30815 NULL
158205 +enable_so_orig_y_screen_info_30817 orig_y screen_info 0 30817 NULL
158206 +enable_so_shmem_write_begin_fndecl_30822 shmem_write_begin fndecl 3 30822 NULL
158207 +enable_so_report_count_hid_field_30826 report_count hid_field 0 30826 NULL
158208 +enable_so_s_root_blkno_ocfs2_super_block_30828 s_root_blkno ocfs2_super_block 0 30828 NULL
158209 +enable_so___load_segment_descriptor_fndecl_30833 __load_segment_descriptor fndecl 2-4 30833 NULL
158210 +enable_so_add_memory_fndecl_30836 add_memory fndecl 3-2 30836 NULL
158211 +enable_so_f2fs_read_data_pages_fndecl_30837 f2fs_read_data_pages fndecl 4 30837 NULL
158212 +enable_so_shadow_root_level_kvm_mmu_30842 shadow_root_level kvm_mmu 0 30842 NULL
158213 +enable_so_resp_size_virtio_gpu_vbuffer_30847 resp_size virtio_gpu_vbuffer 0 30847 NULL
158214 +enable_so_wm2200_set_fll_fndecl_30852 wm2200_set_fll fndecl 4-5 30852 NULL
158215 +enable_so_notify_offset_multiplier_virtio_pci_device_30853 notify_offset_multiplier virtio_pci_device 0 30853 NULL
158216 +enable_so_default_pvid_net_bridge_30856 default_pvid net_bridge 0 30856 NULL nohasharray
158217 +enable_so_count_acpi_object_list_30856 count acpi_object_list 0 30856 &enable_so_default_pvid_net_bridge_30856 nohasharray
158218 +enable_so_saa7164_buffer_alloc_user_fndecl_30856 saa7164_buffer_alloc_user fndecl 2 30856 &enable_so_count_acpi_object_list_30856
158219 +enable_so_lov_ost_pool_add_fndecl_30857 lov_ost_pool_add fndecl 3 30857 NULL
158220 +enable_so_spi_sh_send_fndecl_30862 spi_sh_send fndecl 0 30862 NULL
158221 +enable_so_al_size_4k_drbd_md_30864 al_size_4k drbd_md 0 30864 NULL
158222 +enable_so_width_cx2341x_handler_30869 width cx2341x_handler 0 30869 NULL nohasharray
158223 +enable_so_memory_size_hp100_private_30869 memory_size hp100_private 0 30869 &enable_so_width_cx2341x_handler_30869
158224 +enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870 batadv_send_skb_push_fill_unicast fndecl 2 30870 NULL nohasharray
158225 +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
158226 +enable_so_do_sync_fndecl_30871 do_sync fndecl 1 30871 NULL
158227 +enable_so_sddr09_send_command_fndecl_30873 sddr09_send_command fndecl 5 30873 NULL nohasharray
158228 +enable_so_r_clusters_ocfs2_refcount_rec_30873 r_clusters ocfs2_refcount_rec 0 30873 &enable_so_sddr09_send_command_fndecl_30873
158229 +enable_so_current_page_mspro_block_data_30876 current_page mspro_block_data 0 30876 NULL
158230 +enable_so_vht_nss_ieee80211_rx_status_30879 vht_nss ieee80211_rx_status 0 30879 NULL
158231 +enable_so_dma_buf_sz_stmmac_priv_30880 dma_buf_sz stmmac_priv 0 30880 NULL
158232 +enable_so_eq_textcnt_max98088_priv_30885 eq_textcnt max98088_priv 0 30885 NULL
158233 +enable_so_ocfs2_xattr_get_rec_fndecl_30887 ocfs2_xattr_get_rec fndecl 0 30887 NULL nohasharray
158234 +enable_so_fifo_size_serial8250_config_30887 fifo_size serial8250_config 0 30887 &enable_so_ocfs2_xattr_get_rec_fndecl_30887 nohasharray
158235 +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
158236 +enable_so_queue_received_packet_fndecl_30890 queue_received_packet fndecl 5 30890 NULL
158237 +enable_so_at76_wait_completion_fndecl_30894 at76_wait_completion fndecl 0 30894 NULL
158238 +enable_so_ceph_copy_user_to_page_vector_fndecl_30896 ceph_copy_user_to_page_vector fndecl 3-4 30896 NULL
158239 +enable_so_compat_sys_keyctl_fndecl_30900 compat_sys_keyctl fndecl 4 30900 NULL
158240 +enable_so_host_addrlen_nfs4_mount_data_30905 host_addrlen nfs4_mount_data 0 30905 NULL
158241 +enable_so_word12_lpfc_mbx_read_config_30908 word12 lpfc_mbx_read_config 0 30908 NULL
158242 +enable_so_log_sq_bb_count_mlx4_ib_create_qp_30909 log_sq_bb_count mlx4_ib_create_qp 0 30909 NULL
158243 +enable_so_max_datagram_size_cdc_ncm_ctx_30918 max_datagram_size cdc_ncm_ctx 0 30918 NULL
158244 +enable_so___erst_read_from_storage_fndecl_30921 __erst_read_from_storage fndecl 0-2-1 30921 NULL
158245 +enable_so_rx_buffer_len_pch_gbe_adapter_30924 rx_buffer_len pch_gbe_adapter 0 30924 NULL nohasharray
158246 +enable_so_squashfs_export_iget_fndecl_30924 squashfs_export_iget fndecl 2 30924 &enable_so_rx_buffer_len_pch_gbe_adapter_30924
158247 +enable_so_cudlength_x25_calluserdata_30930 cudlength x25_calluserdata 0 30930 NULL
158248 +enable_so_cqe_size_mlx5_ib_resize_cq_30931 cqe_size mlx5_ib_resize_cq 0 30931 NULL
158249 +enable_so_cpci_hp_register_bus_fndecl_30935 cpci_hp_register_bus fndecl 2 30935 NULL
158250 +enable_so_id_virtio_console_control_30940 id virtio_console_control 0 30940 NULL
158251 +enable_so_dns_query_fndecl_30943 dns_query fndecl 3 30943 NULL
158252 +enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 cfg80211_tx_mlme_mgmt fndecl 3 30944 NULL nohasharray
158253 +enable_so_stride_mlx4_en_tx_ring_30944 stride mlx4_en_tx_ring 0 30944 &enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 nohasharray
158254 +enable_so_hwparams4_dwc3_hwparams_30944 hwparams4 dwc3_hwparams 0 30944 &enable_so_stride_mlx4_en_tx_ring_30944
158255 +enable_so_page_len_gssp_in_token_30948 page_len gssp_in_token 0 30948 NULL
158256 +enable_so_parse_uac2_sample_rate_range_fndecl_30949 parse_uac2_sample_rate_range fndecl 0 30949 NULL
158257 +enable_so_SYSC_ppoll_fndecl_30954 SYSC_ppoll fndecl 2 30954 NULL
158258 +enable_so_pvr2_stream_setup_fndecl_30955 pvr2_stream_setup fndecl 3 30955 NULL
158259 +enable_so_leaf_shift_right_fndecl_30957 leaf_shift_right fndecl 3 30957 NULL
158260 +enable_so_lowpan_control_write_fndecl_30960 lowpan_control_write fndecl 3 30960 NULL
158261 +enable_so___list_lru_count_one_fndecl_30962 __list_lru_count_one fndecl 0 30962 NULL
158262 +enable_so_ring_start__drm_i810_init_30964 ring_start _drm_i810_init 0 30964 NULL
158263 +enable_so_tool_mask_write_fndecl_30968 tool_mask_write fndecl 3 30968 NULL
158264 +enable_so_max_sdu_atm_trafprm_30969 max_sdu atm_trafprm 0 30969 NULL
158265 +enable_so_ieee80211_if_read_aid_fndecl_30970 ieee80211_if_read_aid fndecl 3 30970 NULL
158266 +enable_so_mt7601u_rx_skb_from_seg_fndecl_30971 mt7601u_rx_skb_from_seg fndecl 5 30971 NULL
158267 +enable_so_get_leaf_fndecl_30972 get_leaf fndecl 2 30972 NULL
158268 +enable_so_avail_out_z_stream_s_30974 avail_out z_stream_s 0 30974 NULL
158269 +enable_so__usb_write_async_fndecl_30976 _usb_write_async fndecl 4 30976 NULL nohasharray
158270 +enable_so_l2tp_ip_sendmsg_fndecl_30976 l2tp_ip_sendmsg fndecl 3 30976 &enable_so__usb_write_async_fndecl_30976
158271 +enable_so_tid_mwifiex_tx_ba_stream_tbl_30977 tid mwifiex_tx_ba_stream_tbl 0 30977 NULL
158272 +enable_so_ext4_mark_iloc_dirty_fndecl_30980 ext4_mark_iloc_dirty fndecl 0 30980 NULL
158273 +enable_so_offset_nfsd_readargs_30989 offset nfsd_readargs 0 30989 NULL
158274 +enable_so_offset_isofs_fid_30994 offset isofs_fid 0 30994 NULL
158275 +enable_so_vti6_change_mtu_fndecl_30995 vti6_change_mtu fndecl 2 30995 NULL
158276 +enable_so_s_victim_ino_logfs_super_30996 s_victim_ino logfs_super 0 30996 NULL
158277 +enable_so_l2cap_create_connless_pdu_fndecl_30997 l2cap_create_connless_pdu fndecl 3 30997 NULL
158278 +enable_so_tx_tx_prepared_descs_read_fndecl_30998 tx_tx_prepared_descs_read fndecl 3 30998 NULL
158279 +enable_so_lro_append_pkt_fndecl_31003 lro_append_pkt fndecl 4 31003 NULL
158280 +enable_so_btrfs_search_slot_fndecl_31011 btrfs_search_slot fndecl 0 31011 NULL
158281 +enable_so_max_order_mthca_buddy_31017 max_order mthca_buddy 0 31017 NULL
158282 +enable_so_hdpvr_read_fndecl_31018 hdpvr_read fndecl 3 31018 NULL
158283 +enable_so_ipoib_change_mtu_fndecl_31020 ipoib_change_mtu fndecl 2 31020 NULL
158284 +enable_so_DevSize_cfi_ident_31031 DevSize cfi_ident 0 31031 NULL
158285 +enable_so_tcf_csum_ipv4_icmp_fndecl_31033 tcf_csum_ipv4_icmp fndecl 3 31033 NULL
158286 +enable_so_ocfs2_clear_ext_refcount_fndecl_31035 ocfs2_clear_ext_refcount fndecl 4-3 31035 NULL nohasharray
158287 +enable_so_internal_depth_MPT3SAS_ADAPTER_31035 internal_depth MPT3SAS_ADAPTER 0 31035 &enable_so_ocfs2_clear_ext_refcount_fndecl_31035
158288 +enable_so_hfsplus_bnode_read_u16_fndecl_31037 hfsplus_bnode_read_u16 fndecl 0 31037 NULL nohasharray
158289 +enable_so_hisi_clk_init_fndecl_31037 hisi_clk_init fndecl 2 31037 &enable_so_hfsplus_bnode_read_u16_fndecl_31037
158290 +enable_so_krb5_nfold_fndecl_31038 krb5_nfold fndecl 3-1 31038 NULL
158291 +enable_so_migrate_misplaced_transhuge_page_fndecl_31041 migrate_misplaced_transhuge_page fndecl 5 31041 NULL
158292 +enable_so_qla82xx_pci_set_window_fndecl_31044 qla82xx_pci_set_window fndecl 0-2 31044 NULL
158293 +enable_so_dsp_registers_phys_echoaudio_31045 dsp_registers_phys echoaudio 0 31045 NULL
158294 +enable_so_ceph_sync_setxattr_fndecl_31053 ceph_sync_setxattr fndecl 4 31053 NULL
158295 +enable_so_iwl_dbgfs_stations_read_fndecl_31054 iwl_dbgfs_stations_read fndecl 3 31054 NULL nohasharray
158296 +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
158297 +enable_so_t4_max_qp_depth_c4iw_hw_queue_31059 t4_max_qp_depth c4iw_hw_queue 0 31059 NULL nohasharray
158298 +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
158299 +enable_so_drbd_bm_bits_fndecl_31061 drbd_bm_bits fndecl 0 31061 NULL
158300 +enable_so_si_lf_eblk_bfs_sb_info_31064 si_lf_eblk bfs_sb_info 0 31064 NULL
158301 +enable_so_hdr_offset_xfrm_type_31067 hdr_offset xfrm_type 0 31067 NULL
158302 +enable_so_le_max_key_size_write_fndecl_31068 le_max_key_size_write fndecl 3 31068 NULL
158303 +enable_so_bulk_in_endpointAddress_usb_serial_port_31069 bulk_in_endpointAddress usb_serial_port 0 31069 NULL
158304 +enable_so_segsize_musb_qh_31074 segsize musb_qh 0 31074 NULL
158305 +enable_so_brcmf_sdiod_recv_buf_fndecl_31083 brcmf_sdiod_recv_buf fndecl 3 31083 NULL
158306 +enable_so_get_pipes_num_fndecl_31084 get_pipes_num fndecl 0 31084 NULL
158307 +enable_so_ocfs2_orphan_for_truncate_fndecl_31085 ocfs2_orphan_for_truncate fndecl 4 31085 NULL
158308 +enable_so_nvme_trans_fmt_get_parm_header_fndecl_31087 nvme_trans_fmt_get_parm_header fndecl 2 31087 NULL
158309 +enable_so_DAC960_ControllerCount_vardecl_DAC960_c_31089 DAC960_ControllerCount vardecl_DAC960.c 0 31089 NULL
158310 +enable_so_max_fingers_rmi_data_31091 max_fingers rmi_data 0 31091 NULL
158311 +enable_so_num_crtc_vgastate_31093 num_crtc vgastate 0 31093 NULL
158312 +enable_so_screen_depth_vardecl_hyperv_fb_c_31095 screen_depth vardecl_hyperv_fb.c 0 31095 NULL nohasharray
158313 +enable_so_regmap_i2c_read_fndecl_31095 regmap_i2c_read fndecl 3-5 31095 &enable_so_screen_depth_vardecl_hyperv_fb_c_31095
158314 +enable_so_s_segsize_logfs_super_31101 s_segsize logfs_super 0 31101 NULL
158315 +enable_so_max3421_transfer_in_done_fndecl_31109 max3421_transfer_in_done fndecl 0 31109 NULL
158316 +enable_so_status_tulip_desc_t_31113 status tulip_desc_t 0 31113 NULL
158317 +enable_so_name_len_inotify_event_info_31116 name_len inotify_event_info 0 31116 NULL
158318 +enable_so_reiserfs_write_end_fndecl_31117 reiserfs_write_end fndecl 5-3 31117 NULL
158319 +enable_so_dbgfs_sram_len_iwl_priv_31119 dbgfs_sram_len iwl_priv 0 31119 NULL
158320 +enable_so_udf_UTF8toCS0_fndecl_31120 udf_UTF8toCS0 fndecl 0 31120 NULL
158321 +enable_so_dm_bm_read_lock_fndecl_31121 dm_bm_read_lock fndecl 2 31121 NULL
158322 +enable_so_amdgpu_afmt_acr_fndecl_31127 amdgpu_afmt_acr fndecl 1 31127 NULL nohasharray
158323 +enable_so_nr_chips_dsa_platform_data_31127 nr_chips dsa_platform_data 0 31127 &enable_so_amdgpu_afmt_acr_fndecl_31127
158324 +enable_so_uhci_result_isochronous_fndecl_31133 uhci_result_isochronous fndecl 0 31133 NULL nohasharray
158325 +enable_so_write_device_fndecl_31133 write_device fndecl 3 31133 &enable_so_uhci_result_isochronous_fndecl_31133
158326 +enable_so_virtqueue_add_outbuf_fndecl_31136 virtqueue_add_outbuf fndecl 3 31136 NULL
158327 +enable_so__AscCopyLramScsiDoneQ_fndecl_31137 _AscCopyLramScsiDoneQ fndecl 4 31137 NULL
158328 +enable_so_read_fndecl_31142 read fndecl 3 31142 NULL
158329 +enable_so_mwifiex_get_supported_rates_fndecl_31144 mwifiex_get_supported_rates fndecl 0 31144 NULL
158330 +enable_so_irttp_connect_indication_fndecl_31149 irttp_connect_indication fndecl 4-5 31149 NULL
158331 +enable_so_hpfs_count_dnodes_fndecl_31152 hpfs_count_dnodes fndecl 2 31152 NULL
158332 +enable_so_max_rx_ip_filters_efx_nic_type_31156 max_rx_ip_filters efx_nic_type 0 31156 NULL
158333 +enable_so_max_seg_size_tsap_cb_31158 max_seg_size tsap_cb 0 31158 NULL
158334 +enable_so_ocfs2_direct_IO_zero_extend_fndecl_31171 ocfs2_direct_IO_zero_extend fndecl 4 31171 NULL
158335 +enable_so_bm_realloc_pages_fndecl_31172 bm_realloc_pages fndecl 2 31172 NULL
158336 +enable_so_rcvbuf_size_bas_cardstate_31177 rcvbuf_size bas_cardstate 0 31177 NULL
158337 +enable_so_bRPipeBlockSize_usb_wa_descriptor_31178 bRPipeBlockSize usb_wa_descriptor 0 31178 NULL
158338 +enable_so_ffs_ep0_write_fndecl_31181 ffs_ep0_write fndecl 3 31181 NULL
158339 +enable_so_op_size_ost_pool_31182 op_size ost_pool 0 31182 NULL
158340 +enable_so_con_do_clear_unimap_fndecl_31185 con_do_clear_unimap fndecl 0 31185 NULL
158341 +enable_so_slhc_compress_fndecl_31190 slhc_compress fndecl 0-3 31190 NULL
158342 +enable_so_nf_nat_sip_expect_fndecl_31193 nf_nat_sip_expect fndecl 8 31193 NULL
158343 +enable_so_btrfs_drop_extents_fndecl_31196 btrfs_drop_extents fndecl 5-4 31196 NULL nohasharray
158344 +enable_so_alloc_huge_page_noerr_fndecl_31196 alloc_huge_page_noerr fndecl 2 31196 &enable_so_btrfs_drop_extents_fndecl_31196 nohasharray
158345 +enable_so_st_int_recv_fndecl_31196 st_int_recv fndecl 3 31196 &enable_so_alloc_huge_page_noerr_fndecl_31196
158346 +enable_so_agp_generic_alloc_user_fndecl_31213 agp_generic_alloc_user fndecl 1 31213 NULL nohasharray
158347 +enable_so_get_registers_fndecl_31213 get_registers fndecl 4 31213 &enable_so_agp_generic_alloc_user_fndecl_31213
158348 +enable_so_wr_ep_alauda_info_31218 wr_ep alauda_info 0 31218 NULL
158349 +enable_so_io_size_smbus_lpc_sch_info_31219 io_size_smbus lpc_sch_info 0 31219 NULL
158350 +enable_so_kmalloc_array_fndecl_31223 kmalloc_array fndecl 1-2 31223 NULL
158351 +enable_so_put_pfn_fndecl_31225 put_pfn fndecl 0 31225 NULL
158352 +enable_so_mcs_unwrap_mir_fndecl_31228 mcs_unwrap_mir fndecl 3 31228 NULL nohasharray
158353 +enable_so_iscsi_tcp_segment_done_fndecl_31228 iscsi_tcp_segment_done fndecl 4 31228 &enable_so_mcs_unwrap_mir_fndecl_31228 nohasharray
158354 +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
158355 +enable_so_kaweth_control_fndecl_31233 kaweth_control fndecl 8-2 31233 NULL
158356 +enable_so_len_ip_vs_iphdr_31235 len ip_vs_iphdr 0 31235 NULL
158357 +enable_so_length_wdm_device_31248 length wdm_device 0 31248 NULL
158358 +enable_so_SYSC_move_pages_fndecl_31249 SYSC_move_pages fndecl 2 31249 NULL
158359 +enable_so_virtio_gpu_dirty_update_fndecl_31253 virtio_gpu_dirty_update fndecl 4-3-5-6 31253 NULL
158360 +enable_so_source_id_acpi_hest_header_31256 source_id acpi_hest_header 0 31256 NULL
158361 +enable_so_rbdr_len_queue_set_31258 rbdr_len queue_set 0 31258 NULL
158362 +enable_so_orig_video_lines_screen_info_31267 orig_video_lines screen_info 0 31267 NULL nohasharray
158363 +enable_so_data_dma_hanwang_31267 data_dma hanwang 0 31267 &enable_so_orig_video_lines_screen_info_31267
158364 +enable_so_vm_iomap_memory_fndecl_31269 vm_iomap_memory fndecl 2 31269 NULL
158365 +enable_so_end_incl_vringh_range_31272 end_incl vringh_range 0 31272 NULL
158366 +enable_so_packet_length_rc_config_31278 packet_length rc_config 0 31278 NULL nohasharray
158367 +enable_so_xfs_bmbt_set_startblock_fndecl_31278 xfs_bmbt_set_startblock fndecl 2 31278 &enable_so_packet_length_rc_config_31278
158368 +enable_so_aat2870_dump_reg_fndecl_31280 aat2870_dump_reg fndecl 0 31280 NULL
158369 +enable_so_irq_pcmcia_device_31283 irq pcmcia_device 0 31283 NULL nohasharray
158370 +enable_so_ecp_read_data_parport_operations_31283 ecp_read_data parport_operations 0 31283 &enable_so_irq_pcmcia_device_31283
158371 +enable_so_mmap_base_kioctx_31285 mmap_base kioctx 0 31285 NULL
158372 +enable_so_igb_enable_sriov_fndecl_31288 igb_enable_sriov fndecl 2 31288 NULL
158373 +enable_so_nfs_readdir_page_filler_fndecl_31292 nfs_readdir_page_filler fndecl 5 31292 NULL
158374 +enable_so_asymmetric_key_generate_id_fndecl_31299 asymmetric_key_generate_id fndecl 4-2 31299 NULL
158375 +enable_so_fs_shift_hfsplus_sb_info_31309 fs_shift hfsplus_sb_info 0 31309 NULL
158376 +enable_so_rxblen_brcmf_sdio_31317 rxblen brcmf_sdio 0 31317 NULL
158377 +enable_so_bio_integrity_add_page_fndecl_31320 bio_integrity_add_page fndecl 4-3 31320 NULL
158378 +enable_so_gsi_end_mp_ioapic_gsi_31327 gsi_end mp_ioapic_gsi 0 31327 NULL
158379 +enable_so_scatter_len_efx_rx_queue_31330 scatter_len efx_rx_queue 0 31330 NULL nohasharray
158380 +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
158381 +enable_so_ubifs_tnc_add_fndecl_31332 ubifs_tnc_add fndecl 5-4 31332 NULL
158382 +enable_so_cur_frames_osst_tape_31335 cur_frames osst_tape 0 31335 NULL
158383 +enable_so_size_ttm_bus_placement_31338 size ttm_bus_placement 0 31338 NULL
158384 +enable_so_get_elem_size_fndecl_31341 get_elem_size fndecl 0-2 31341 NULL
158385 +enable_so_block_sz_htc_target_31342 block_sz htc_target 0 31342 NULL
158386 +enable_so_sdio_writesb_fndecl_31345 sdio_writesb fndecl 4 31345 NULL
158387 +enable_so_bulk_in_size_usb_serial_driver_31350 bulk_in_size usb_serial_driver 0 31350 NULL
158388 +enable_so_cifs_llseek_fndecl_31352 cifs_llseek fndecl 2 31352 NULL
158389 +enable_so_size_power_iwl_fw_dbg_dest_tlv_31357 size_power iwl_fw_dbg_dest_tlv 0 31357 NULL
158390 +enable_so_device_acpiphp_slot_31359 device acpiphp_slot 0 31359 NULL
158391 +enable_so_romfs_dev_strcmp_fndecl_31365 romfs_dev_strcmp fndecl 4-2 31365 NULL nohasharray
158392 +enable_so_SyS_migrate_pages_fndecl_31365 SyS_migrate_pages fndecl 2 31365 &enable_so_romfs_dev_strcmp_fndecl_31365
158393 +enable_so_req_lim_delta_srp_rsp_31371 req_lim_delta srp_rsp 0 31371 NULL
158394 +enable_so_ioctl_fndecl_31375 ioctl fndecl 3 31375 NULL
158395 +enable_so_gfs2_meta_read_fndecl_31379 gfs2_meta_read fndecl 0-2 31379 NULL
158396 +enable_so_s_stripe_ext4_sb_info_31391 s_stripe ext4_sb_info 0 31391 NULL
158397 +enable_so_spi_populate_sync_msg_fndecl_31392 spi_populate_sync_msg fndecl 0 31392 NULL
158398 +enable_so_brcmf_msgbuf_init_pktids_fndecl_31395 brcmf_msgbuf_init_pktids fndecl 1 31395 NULL
158399 +enable_so_ip_tunnel_bind_dev_fndecl_31398 ip_tunnel_bind_dev fndecl 0 31398 NULL nohasharray
158400 +enable_so_asd_store_update_bios_fndecl_31398 asd_store_update_bios fndecl 4 31398 &enable_so_ip_tunnel_bind_dev_fndecl_31398
158401 +enable_so_persistent_ram_vmap_fndecl_31402 persistent_ram_vmap fndecl 1-2 31402 NULL
158402 +enable_so_subport_ipath_filedata_31404 subport ipath_filedata 0 31404 NULL nohasharray
158403 +enable_so_number_xt_table_info_31404 number xt_table_info 0 31404 &enable_so_subport_ipath_filedata_31404
158404 +enable_so_num_types_amdgpu_irq_src_31405 num_types amdgpu_irq_src 0 31405 NULL
158405 +enable_so_proc_pid_attr_read_fndecl_31406 proc_pid_attr_read fndecl 3 31406 NULL nohasharray
158406 +enable_so_rxrpc_rx_window_size_vardecl_31406 rxrpc_rx_window_size vardecl 0 31406 &enable_so_proc_pid_attr_read_fndecl_31406
158407 +enable_so_data_offset_msgbuf_rx_complete_31409 data_offset msgbuf_rx_complete 0 31409 NULL
158408 +enable_so_zone_count_msb_data_31413 zone_count msb_data 0 31413 NULL
158409 +enable_so_sg_tablesize_sg_device_31415 sg_tablesize sg_device 0 31415 NULL
158410 +enable_so_nv40_fb_tile_comp_fndecl_31416 nv40_fb_tile_comp fndecl 3 31416 NULL
158411 +enable_so_unmap_region_fndecl_31420 unmap_region fndecl 5-4 31420 NULL
158412 +enable_so_bch_bucket_alloc_fndecl_31421 bch_bucket_alloc fndecl 0 31421 NULL
158413 +enable_so_rx_out_of_mem_read_fndecl_31422 rx_out_of_mem_read fndecl 3 31422 NULL
158414 +enable_so_recovery_offset_md_rdev_31426 recovery_offset md_rdev 0 31426 NULL
158415 +enable_so_onenand_read_oob_nolock_fndecl_31430 onenand_read_oob_nolock fndecl 2 31430 NULL
158416 +enable_so_mpx_unmap_tables_fndecl_31439 mpx_unmap_tables fndecl 2-3 31439 NULL
158417 +enable_so_vc_x_vc_data_31443 vc_x vc_data 0 31443 NULL
158418 +enable_so_jffs2_user_setxattr_fndecl_31445 jffs2_user_setxattr fndecl 4 31445 NULL nohasharray
158419 +enable_so_fid_ino_xfs_fid_31445 fid_ino xfs_fid 0 31445 &enable_so_jffs2_user_setxattr_fndecl_31445
158420 +enable_so_gro_size_bnx2x_agg_info_31450 gro_size bnx2x_agg_info 0 31450 NULL
158421 +enable_so_length_wsm_ssid_31452 length wsm_ssid 0 31452 NULL
158422 +enable_so_max_sz_mmc_test_area_31453 max_sz mmc_test_area 0 31453 NULL
158423 +enable_so_i_eattr_gfs2_inode_31461 i_eattr gfs2_inode 0 31461 NULL
158424 +enable_so_length__diva_xdi_um_cfg_cmd_data_read_sdram_31465 length _diva_xdi_um_cfg_cmd_data_read_sdram 0 31465 NULL
158425 +enable_so_drbd_send_all_fndecl_31468 drbd_send_all fndecl 4 31468 NULL
158426 +enable_so_ip_encap_hlen_fndecl_31469 ip_encap_hlen fndecl 0 31469 NULL
158427 +enable_so_len_mmap_arg_struct32_31471 len mmap_arg_struct32 0 31471 NULL nohasharray
158428 +enable_so_videobuf_dma_init_overlay_fndecl_31471 videobuf_dma_init_overlay fndecl 4 31471 &enable_so_len_mmap_arg_struct32_31471
158429 +enable_so_tx_rate_idx_skb_frame_desc_31479 tx_rate_idx skb_frame_desc 0 31479 NULL
158430 +enable_so_wl12xx_spi_raw_write_fndecl_31482 wl12xx_spi_raw_write fndecl 4 31482 NULL
158431 +enable_so_nr_voices_seq_oss_synthinfo_31487 nr_voices seq_oss_synthinfo 0 31487 NULL
158432 +enable_so_length_rsd_31489 length rsd 0 31489 NULL
158433 +enable_so_regmap_multi_reg_write_bypassed_fndecl_31492 regmap_multi_reg_write_bypassed fndecl 3 31492 NULL
158434 +enable_so_bfa_lun_queue_depth_vardecl_31497 bfa_lun_queue_depth vardecl 0 31497 NULL
158435 +enable_so_size_intel_stolen_funcs_31503 size intel_stolen_funcs 0 31503 NULL
158436 +enable_so_PIXDEPTH_kyrofb_info_31509 PIXDEPTH kyrofb_info 0 31509 NULL
158437 +enable_so_fixed_size_llseek_fndecl_31512 fixed_size_llseek fndecl 2-4 31512 NULL
158438 +enable_so_ddb_input_read_fndecl_31516 ddb_input_read fndecl 3-0 31516 NULL
158439 +enable_so_shmem_replace_page_fndecl_31519 shmem_replace_page fndecl 4 31519 NULL
158440 +enable_so_tx_iovlen_ncp_request_reply_31522 tx_iovlen ncp_request_reply 0 31522 NULL
158441 +enable_so_ext4_mb_init_group_fndecl_31530 ext4_mb_init_group fndecl 0 31530 NULL
158442 +enable_so_residual_datacnt_status_pkt_31531 residual_datacnt status_pkt 0 31531 NULL
158443 +enable_so_rx_pipe_usbpn_dev_31540 rx_pipe usbpn_dev 0 31540 NULL
158444 +enable_so_tcp_tso_acked_fndecl_31549 tcp_tso_acked fndecl 0 31549 NULL
158445 +enable_so_stride_drm_qxl_alloc_surf_31551 stride drm_qxl_alloc_surf 0 31551 NULL nohasharray
158446 +enable_so_ks_rdreg16_fndecl_31551 ks_rdreg16 fndecl 0 31551 &enable_so_stride_drm_qxl_alloc_surf_31551
158447 +enable_so_start_genius_videocam_live_fndecl_31552 start_genius_videocam_live fndecl 0 31552 NULL
158448 +enable_so_ieee80211_if_read_state_fndecl_31558 ieee80211_if_read_state fndecl 3 31558 NULL
158449 +enable_so_resp_sas_pcd_m_spg_fndecl_31559 resp_sas_pcd_m_spg fndecl 0 31559 NULL
158450 +enable_so_kernel_physical_mapping_init_fndecl_31561 kernel_physical_mapping_init fndecl 0-2 31561 NULL
158451 +enable_so_qlcnic_validate_ringparam_fndecl_31569 qlcnic_validate_ringparam fndecl 0 31569 NULL
158452 +enable_so_bio_alloc_map_data_fndecl_31573 bio_alloc_map_data fndecl 1 31573 NULL
158453 +enable_so_vmcb_nested_state_31575 vmcb nested_state 0 31575 NULL
158454 +enable_so_can_change_mtu_fndecl_31583 can_change_mtu fndecl 2 31583 NULL
158455 +enable_so_bytes_operand_31587 bytes operand 0 31587 NULL nohasharray
158456 +enable_so_dvb_dvr_set_buffer_size_fndecl_31587 dvb_dvr_set_buffer_size fndecl 2 31587 &enable_so_bytes_operand_31587
158457 +enable_so_num_txq_bna_attr_31588 num_txq bna_attr 0 31588 NULL
158458 +enable_so_v_max_out_saa7146_standard_31591 v_max_out saa7146_standard 0 31591 NULL
158459 +enable_so_nbchannel_capi_profile_31592 nbchannel capi_profile 0 31592 NULL
158460 +enable_so_radeon_gart_size_auto_fndecl_31605 radeon_gart_size_auto fndecl 0 31605 NULL
158461 +enable_so_sys_mprotect_fndecl_31611 sys_mprotect fndecl 2-1 31611 NULL
158462 +enable_so_iterate_fd_fndecl_31615 iterate_fd fndecl 0 31615 NULL
158463 +enable_so_dir_commit_chunk_fndecl_31621 dir_commit_chunk fndecl 3 31621 NULL nohasharray
158464 +enable_so_wil_read_file_ioblob_fndecl_31621 wil_read_file_ioblob fndecl 3 31621 &enable_so_dir_commit_chunk_fndecl_31621
158465 +enable_so_a_entry_exec_31622 a_entry exec 0 31622 NULL
158466 +enable_so_ping_v4_sendmsg_fndecl_31624 ping_v4_sendmsg fndecl 3 31624 NULL
158467 +enable_so_eq_textcnt_max98095_priv_31635 eq_textcnt max98095_priv 0 31635 NULL
158468 +enable_so_segsize_dn_skb_cb_31640 segsize dn_skb_cb 0 31640 NULL
158469 +enable_so_pep_recvmsg_fndecl_31641 pep_recvmsg fndecl 3 31641 NULL
158470 +enable_so_pmcraid_alloc_sglist_fndecl_31643 pmcraid_alloc_sglist fndecl 1 31643 NULL
158471 +enable_so_ext4_free_blocks_fndecl_31648 ext4_free_blocks fndecl 4-5 31648 NULL nohasharray
158472 +enable_so_av_buf_tail_dccp_ackvec_31648 av_buf_tail dccp_ackvec 0 31648 &enable_so_ext4_free_blocks_fndecl_31648
158473 +enable_so_mwifiex_set_wpa_ie_helper_fndecl_31650 mwifiex_set_wpa_ie_helper fndecl 3 31650 NULL
158474 +enable_so_brk_prctl_mm_map_31652 brk prctl_mm_map 0 31652 NULL
158475 +enable_so_bpp_uvc_format_31654 bpp uvc_format 0 31654 NULL
158476 +enable_so_nonpaging_page_fault_fndecl_31655 nonpaging_page_fault fndecl 2 31655 NULL
158477 +enable_so_compat_sys_ipc_fndecl_31659 compat_sys_ipc fndecl 3 31659 NULL
158478 +enable_so_ext4_map_blocks_fndecl_31663 ext4_map_blocks fndecl 0 31663 NULL
158479 +enable_so_hp_hpet_phys_hpets_31664 hp_hpet_phys hpets 0 31664 NULL
158480 +enable_so_read_dma_ims_pcu_31667 read_dma ims_pcu 0 31667 NULL nohasharray
158481 +enable_so_len_hda_conn_list_31667 len hda_conn_list 0 31667 &enable_so_read_dma_ims_pcu_31667
158482 +enable_so_bm_register_write_fndecl_31670 bm_register_write fndecl 3 31670 NULL nohasharray
158483 +enable_so_snd_midi_event_new_fndecl_31670 snd_midi_event_new fndecl 1 31670 &enable_so_bm_register_write_fndecl_31670 nohasharray
158484 +enable_so_set_capacity_fndecl_31670 set_capacity fndecl 2 31670 &enable_so_snd_midi_event_new_fndecl_31670
158485 +enable_so_fragment_ufs_buffer_head_31676 fragment ufs_buffer_head 0 31676 NULL
158486 +enable_so_rx_header_len_pn533_frame_ops_31680 rx_header_len pn533_frame_ops 0 31680 NULL
158487 +enable_so_dsa_of_setup_routing_table_fndecl_31686 dsa_of_setup_routing_table fndecl 0 31686 NULL
158488 +enable_so_end_hdmi_pulse_31692 end hdmi_pulse 0 31692 NULL
158489 +enable_so_set_rxd_buffer_pointer_fndecl_31693 set_rxd_buffer_pointer fndecl 8 31693 NULL
158490 +enable_so_read_file_misc_fndecl_31695 read_file_misc fndecl 3 31695 NULL
158491 +enable_so_sr_write_cmd_async_fndecl_31698 sr_write_cmd_async fndecl 5 31698 NULL
158492 +enable_so_TargetsPerBus_aac_bus_info_response_31699 TargetsPerBus aac_bus_info_response 0 31699 NULL
158493 +enable_so_init_pipe_urbs_fndecl_31704 init_pipe_urbs fndecl 2-6 31704 NULL
158494 +enable_so_len_ib_ucm_lap_31705 len ib_ucm_lap 0 31705 NULL
158495 +enable_so_iwl_dbgfs_prph_reg_read_fndecl_31707 iwl_dbgfs_prph_reg_read fndecl 3 31707 NULL
158496 +enable_so_get_free_serial_index_fndecl_31714 get_free_serial_index fndecl 0 31714 NULL
158497 +enable_so_s5p_jpeg_compressed_size_fndecl_31715 s5p_jpeg_compressed_size fndecl 0 31715 NULL
158498 +enable_so_btrfs_add_link_fndecl_31718 btrfs_add_link fndecl 5 31718 NULL
158499 +enable_so_compat_import_iovec_fndecl_31721 compat_import_iovec fndecl 3 31721 NULL
158500 +enable_so_offset_nfs_pgio_args_31727 offset nfs_pgio_args 0 31727 NULL
158501 +enable_so_ext2_new_blocks_fndecl_31729 ext2_new_blocks fndecl 0-2 31729 NULL nohasharray
158502 +enable_so_channels_mask_sh_timer_config_31729 channels_mask sh_timer_config 0 31729 &enable_so_ext2_new_blocks_fndecl_31729
158503 +enable_so_iwl_mvm_legacy_rate_to_mac80211_idx_fndecl_31731 iwl_mvm_legacy_rate_to_mac80211_idx fndecl 0 31731 NULL nohasharray
158504 +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
158505 +enable_so_SyS_gethostname_fndecl_31743 SyS_gethostname fndecl 2 31743 NULL
158506 +enable_so_ih_ring_entry_size_kfd_device_info_31745 ih_ring_entry_size kfd_device_info 0 31745 NULL
158507 +enable_so_nxt200x_writereg_multibyte_fndecl_31757 nxt200x_writereg_multibyte fndecl 4 31757 NULL
158508 +enable_so_bio_readpage_error_fndecl_31761 bio_readpage_error fndecl 4-5 31761 NULL
158509 +enable_so_ahc_linux_user_tagdepth_fndecl_31764 ahc_linux_user_tagdepth fndecl 0 31764 NULL
158510 +enable_so_i_size_dio_31770 i_size dio 0 31770 NULL
158511 +enable_so_i40e_init_msix_fndecl_31776 i40e_init_msix fndecl 0 31776 NULL
158512 +enable_so_fore200e_chunk_alloc_fndecl_31782 fore200e_chunk_alloc fndecl 4-3 31782 NULL
158513 +enable_so_dev_config_fndecl_31785 dev_config fndecl 3 31785 NULL
158514 +enable_so_endpt_ubifs_scan_leb_31792 endpt ubifs_scan_leb 0 31792 NULL
158515 +enable_so_minix_V2_raw_inode_fndecl_31793 minix_V2_raw_inode fndecl 2 31793 NULL nohasharray
158516 +enable_so_irq_gpio_lpc_sch_info_31793 irq_gpio lpc_sch_info 0 31793 &enable_so_minix_V2_raw_inode_fndecl_31793 nohasharray
158517 +enable_so_afs_cell_lookup_fndecl_31793 afs_cell_lookup fndecl 2 31793 &enable_so_irq_gpio_lpc_sch_info_31793
158518 +enable_so_mml_isar_ch_31799 mml isar_ch 0 31799 NULL
158519 +enable_so_parent_i_pos_low_fat_fid_31802 parent_i_pos_low fat_fid 0 31802 NULL
158520 +enable_so_bg_inode_table_ext2_group_desc_31805 bg_inode_table ext2_group_desc 0 31805 NULL
158521 +enable_so_target_submit_cmd_map_sgls_fndecl_31806 target_submit_cmd_map_sgls fndecl 6-11-15 31806 NULL
158522 +enable_so_secure_dccp_sequence_number_fndecl_31815 secure_dccp_sequence_number fndecl 0 31815 NULL nohasharray
158523 +enable_so_track_pfn_insert_fndecl_31815 track_pfn_insert fndecl 3 31815 &enable_so_secure_dccp_sequence_number_fndecl_31815 nohasharray
158524 +enable_so_snd_malloc_sgbuf_pages_fndecl_31815 snd_malloc_sgbuf_pages fndecl 2 31815 &enable_so_track_pfn_insert_fndecl_31815
158525 +enable_so_NumPhys__MPI2_CONFIG_PAGE_EXPANDER_0_31816 NumPhys _MPI2_CONFIG_PAGE_EXPANDER_0 0 31816 NULL
158526 +enable_so_const_channel_count_hda_gen_spec_31817 const_channel_count hda_gen_spec 0 31817 NULL nohasharray
158527 +enable_so_spu_read_fndecl_31817 spu_read fndecl 4-0 31817 &enable_so_const_channel_count_hda_gen_spec_31817
158528 +enable_so___skb_get_poff_fndecl_31821 __skb_get_poff fndecl 0 31821 NULL
158529 +enable_so_nouveau_platform_device_create__fndecl_31825 nouveau_platform_device_create_ fndecl 2 31825 NULL
158530 +enable_so_needed_size_conf_writedata_31827 needed_size conf_writedata 0 31827 NULL
158531 +enable_so_fw_iocb_count_qla_hw_data_31830 fw_iocb_count qla_hw_data 0 31830 NULL
158532 +enable_so_byte_len_svc_rdma_op_ctxt_31832 byte_len svc_rdma_op_ctxt 0 31832 NULL nohasharray
158533 +enable_so_num_partition_entries__gpt_header_31832 num_partition_entries _gpt_header 0 31832 &enable_so_byte_len_svc_rdma_op_ctxt_31832
158534 +enable_so_num_tty_driver_31834 num tty_driver 0 31834 NULL
158535 +enable_so_n_channels_efx_nic_31838 n_channels efx_nic 0 31838 NULL nohasharray
158536 +enable_so_locked_vm_mm_struct_31838 locked_vm mm_struct 0 31838 &enable_so_n_channels_efx_nic_31838
158537 +enable_so_opticon_process_data_packet_fndecl_31839 opticon_process_data_packet fndecl 3 31839 NULL
158538 +enable_so_ds_block_shift_logfs_disk_super_31840 ds_block_shift logfs_disk_super 0 31840 NULL
158539 +enable_so_cache_slow_downcall_fndecl_31849 cache_slow_downcall fndecl 2 31849 NULL
158540 +enable_so_sys_munlock_fndecl_31851 sys_munlock fndecl 1-2 31851 NULL
158541 +enable_so_isr_dma0_done_read_fndecl_31853 isr_dma0_done_read fndecl 3 31853 NULL
158542 +enable_so_vco_mult_arizona_fll_31858 vco_mult arizona_fll 0 31858 NULL
158543 +enable_so_msi2500_convert_stream_fndecl_31862 msi2500_convert_stream fndecl 0 31862 NULL
158544 +enable_so_profile_remove_fndecl_31871 profile_remove fndecl 3 31871 NULL
158545 +enable_so_maxp_usbhs_pipe_31872 maxp usbhs_pipe 0 31872 NULL
158546 +enable_so_gseg_gru_set_context_option_req_31876 gseg gru_set_context_option_req 0 31876 NULL
158547 +enable_so_i_lastfrag_ufs_inode_info_31879 i_lastfrag ufs_inode_info 0 31879 NULL
158548 +enable_so_sctp_user_addto_chunk_fndecl_31881 sctp_user_addto_chunk fndecl 2 31881 NULL
158549 +enable_so_reallocate_resource_fndecl_31885 reallocate_resource fndecl 3 31885 NULL
158550 +enable_so_first_user_ctxt_qib_devdata_31889 first_user_ctxt qib_devdata 0 31889 NULL
158551 +enable_so_max_tasks_bnx2fc_hba_31893 max_tasks bnx2fc_hba 0 31893 NULL
158552 +enable_so_tower_write_fndecl_31895 tower_write fndecl 3 31895 NULL
158553 +enable_so_max_packet_size_snd_line6_pcm_31899 max_packet_size snd_line6_pcm 0 31899 NULL
158554 +enable_so_ieee80211_get_hdrlen_from_buf_fndecl_31900 ieee80211_get_hdrlen_from_buf fndecl 0 31900 NULL
158555 +enable_so_size_macb_tx_skb_31904 size macb_tx_skb 0 31904 NULL
158556 +enable_so_vram_vardecl_atyfb_base_c_31909 vram vardecl_atyfb_base.c 0 31909 NULL nohasharray
158557 +enable_so_lengthExtendedAttr_fileEntry_31909 lengthExtendedAttr fileEntry 0 31909 &enable_so_vram_vardecl_atyfb_base_c_31909
158558 +enable_so_it821x_firmware_command_fndecl_31911 it821x_firmware_command fndecl 3 31911 NULL
158559 +enable_so_num_packets_em28xx_usb_bufs_31912 num_packets em28xx_usb_bufs 0 31912 NULL nohasharray
158560 +enable_so_rxkad_secure_packet_fndecl_31912 rxkad_secure_packet fndecl 3 31912 &enable_so_num_packets_em28xx_usb_bufs_31912
158561 +enable_so_drvr_qdepth_blogic_adapter_31915 drvr_qdepth blogic_adapter 0 31915 NULL nohasharray
158562 +enable_so_scsi_dma_map_fndecl_31915 scsi_dma_map fndecl 0 31915 &enable_so_drvr_qdepth_blogic_adapter_31915
158563 +enable_so_mtu_gsm_mux_31917 mtu gsm_mux 0 31917 NULL
158564 +enable_so_fuse_send_write_pages_fndecl_31919 fuse_send_write_pages fndecl 0-5 31919 NULL
158565 +enable_so_cfs_cpt_number_fndecl_31929 cfs_cpt_number fndecl 0 31929 NULL
158566 +enable_so_physical_block_size_scsi_disk_31931 physical_block_size scsi_disk 0 31931 NULL
158567 +enable_so_rmmio_size_radeon_device_31934 rmmio_size radeon_device 0 31934 NULL
158568 +enable_so_tool_spad_read_fndecl_31936 tool_spad_read fndecl 3 31936 NULL
158569 +enable_so_channel_iio_chan_spec_31939 channel iio_chan_spec 0 31939 NULL nohasharray
158570 +enable_so_mesh_rx_plink_frame_fndecl_31939 mesh_rx_plink_frame fndecl 3 31939 &enable_so_channel_iio_chan_spec_31939
158571 +enable_so_mlx5_vzalloc_fndecl_31940 mlx5_vzalloc fndecl 1 31940 NULL
158572 +enable_so_ptr_i915_gem_userptr_31948 ptr i915_gem_userptr 0 31948 NULL
158573 +enable_so__read_mtd_info_31950 _read mtd_info 0 31950 NULL
158574 +enable_so_buf_height_tpg_data_31953 buf_height tpg_data 0 31953 NULL
158575 +enable_so_usHSyncOffset__ATOM_DTD_FORMAT_31956 usHSyncOffset _ATOM_DTD_FORMAT 0 31956 NULL
158576 +enable_so_ufs_add_fragments_fndecl_31963 ufs_add_fragments fndecl 2-0 31963 NULL
158577 +enable_so_bmc150_accel_fifo_flush_fndecl_31972 bmc150_accel_fifo_flush fndecl 2 31972 NULL nohasharray
158578 +enable_so_isdn_tty_write_fndecl_31972 isdn_tty_write fndecl 3 31972 &enable_so_bmc150_accel_fifo_flush_fndecl_31972
158579 +enable_so_se_dev_align_max_sectors_fndecl_31975 se_dev_align_max_sectors fndecl 0-2-1 31975 NULL
158580 +enable_so_buffer_max_vardecl_floppy_c_31976 buffer_max vardecl_floppy.c 0 31976 NULL
158581 +enable_so_i_size_read_fndecl_31980 i_size_read fndecl 0 31980 NULL
158582 +enable_so_arcfb_write_fndecl_31981 arcfb_write fndecl 3 31981 NULL
158583 +enable_so_max_commands_ctlr_info_31984 max_commands ctlr_info 0 31984 NULL
158584 +enable_so_s_groups_count_ext3_sb_info_31985 s_groups_count ext3_sb_info 0 31985 NULL
158585 +enable_so_record_size_ramoops_context_31989 record_size ramoops_context 0 31989 NULL nohasharray
158586 +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
158587 +enable_so_lbs_bcnmiss_read_fndecl_31989 lbs_bcnmiss_read fndecl 3 31989 &enable_so_flash_offset_jffs2_raw_node_ref_31989
158588 +enable_so_link_duplex_qlcnic_hardware_context_31996 link_duplex qlcnic_hardware_context 0 31996 NULL
158589 +enable_so_rproc_trace_read_fndecl_31997 rproc_trace_read fndecl 3 31997 NULL
158590 +enable_so_isofs_get_block_fndecl_32000 isofs_get_block fndecl 2 32000 NULL
158591 +enable_so_blocksize_sddr09_card_info_32003 blocksize sddr09_card_info 0 32003 NULL nohasharray
158592 +enable_so_bg_next_group_ocfs2_group_desc_32003 bg_next_group ocfs2_group_desc 0 32003 &enable_so_blocksize_sddr09_card_info_32003
158593 +enable_so_ss_descs_count_ffs_data_32006 ss_descs_count ffs_data 0 32006 NULL
158594 +enable_so_rt2x00debug_write_bbp_fndecl_32007 rt2x00debug_write_bbp fndecl 3 32007 NULL
158595 +enable_so_play_iframe_fndecl_32008 play_iframe fndecl 3 32008 NULL
158596 +enable_so_ad7879_spi_multi_read_fndecl_32009 ad7879_spi_multi_read fndecl 3 32009 NULL
158597 +enable_so_size_tiger_dma_32013 size tiger_dma 0 32013 NULL nohasharray
158598 +enable_so_elants_i2c_read_fndecl_32013 elants_i2c_read fndecl 3 32013 &enable_so_size_tiger_dma_32013
158599 +enable_so_m_lblk_f2fs_map_blocks_32016 m_lblk f2fs_map_blocks 0 32016 NULL
158600 +enable_so_blocksize_udf_options_32019 blocksize udf_options 0 32019 NULL
158601 +enable_so_depth_zr364xx_fmt_32028 depth zr364xx_fmt 0 32028 NULL
158602 +enable_so_recent_mt_proc_write_fndecl_32029 recent_mt_proc_write fndecl 3 32029 NULL
158603 +enable_so_check_xattr_ref_inode_fndecl_32039 check_xattr_ref_inode fndecl 0 32039 NULL
158604 +enable_so_base_efifb_dmi_info_32041 base efifb_dmi_info 0 32041 NULL
158605 +enable_so_balloon_set_new_target_fndecl_32044 balloon_set_new_target fndecl 1 32044 NULL
158606 +enable_so_next_free_pstore_32049 next_free pstore 0 32049 NULL
158607 +enable_so_kvm_mmu_page_set_gfn_fndecl_32050 kvm_mmu_page_set_gfn fndecl 2 32050 NULL
158608 +enable_so_g_num_of_iommus_vardecl_intel_iommu_c_32059 g_num_of_iommus vardecl_intel-iommu.c 0 32059 NULL
158609 +enable_so_init_cdev_fndecl_32065 init_cdev fndecl 1 32065 NULL
158610 +enable_so_config_size_nd_cmd_get_config_size_32073 config_size nd_cmd_get_config_size 0 32073 NULL
158611 +enable_so_rproc_recovery_write_fndecl_32074 rproc_recovery_write fndecl 3 32074 NULL
158612 +enable_so_add_rx_skb_fndecl_32082 add_rx_skb fndecl 3 32082 NULL
158613 +enable_so_s_first_data_block_nilfs_super_block_32083 s_first_data_block nilfs_super_block 0 32083 NULL nohasharray
158614 +enable_so_chunk_size_irctl_32083 chunk_size irctl 0 32083 &enable_so_s_first_data_block_nilfs_super_block_32083
158615 +enable_so_ip6_tnl_err_fndecl_32086 ip6_tnl_err fndecl 8 32086 NULL nohasharray
158616 +enable_so_t3_init_l2t_fndecl_32086 t3_init_l2t fndecl 1 32086 &enable_so_ip6_tnl_err_fndecl_32086
158617 +enable_so_omfs_clear_range_fndecl_32087 omfs_clear_range fndecl 2 32087 NULL
158618 +enable_so_write_tty_ldisc_ops_32094 write tty_ldisc_ops 0 32094 NULL
158619 +enable_so_ocfs2_ilookup_fndecl_32100 ocfs2_ilookup fndecl 2 32100 NULL
158620 +enable_so_pci_scan_slot_fndecl_32102 pci_scan_slot fndecl 2 32102 NULL
158621 +enable_so_rate_min_audioformat_32106 rate_min audioformat 0 32106 NULL
158622 +enable_so_offset_p9_fcall_32116 offset p9_fcall 0 32116 NULL nohasharray
158623 +enable_so_jffs2_sum_scan_sumnode_fndecl_32116 jffs2_sum_scan_sumnode fndecl 4 32116 &enable_so_offset_p9_fcall_32116
158624 +enable_so_config_rom_length_fw_device_32117 config_rom_length fw_device 0 32117 NULL
158625 +enable_so_height_drm_mode_fb_cmd2_32120 height drm_mode_fb_cmd2 0 32120 NULL
158626 +enable_so_rcvegrcnt_qib_ctxtdata_32127 rcvegrcnt qib_ctxtdata 0 32127 NULL
158627 +enable_so_ip6_make_skb_fndecl_32129 ip6_make_skb fndecl 5-4 32129 NULL nohasharray
158628 +enable_so_first_slot_vardecl_cpcihp_generic_c_32129 first_slot vardecl_cpcihp_generic.c 0 32129 &enable_so_ip6_make_skb_fndecl_32129
158629 +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
158630 +enable_so_sb_gquotino_xfs_sb_32131 sb_gquotino xfs_sb 0 32131 NULL
158631 +enable_so_sync_request_fndecl_32141 sync_request fndecl 2 32141 NULL nohasharray
158632 +enable_so_fsector_t_vardecl_floppy_c_32141 fsector_t vardecl_floppy.c 0 32141 &enable_so_sync_request_fndecl_32141
158633 +enable_so_prof_shift_vardecl_profile_c_32143 prof_shift vardecl_profile.c 0 32143 NULL
158634 +enable_so_mlx4_en_complete_rx_desc_fndecl_32150 mlx4_en_complete_rx_desc fndecl 0 32150 NULL
158635 +enable_so_ipwireless_send_packet_fndecl_32155 ipwireless_send_packet fndecl 4 32155 NULL
158636 +enable_so_s_clustersize_ocfs2_super_32156 s_clustersize ocfs2_super 0 32156 NULL nohasharray
158637 +enable_so_pwm_buf_sz_usbduxsigma_private_32156 pwm_buf_sz usbduxsigma_private 0 32156 &enable_so_s_clustersize_ocfs2_super_32156
158638 +enable_so_num_entries_msg_get_chap_32158 num_entries msg_get_chap 0 32158 NULL
158639 +enable_so_insert_zbranch_fndecl_32159 insert_zbranch fndecl 3 32159 NULL
158640 +enable_so_max_recv_dlength_iscsi_conn_32168 max_recv_dlength iscsi_conn 0 32168 NULL
158641 +enable_so_current_pages_balloon_stats_32169 current_pages balloon_stats 0 32169 NULL
158642 +enable_so_nfs41_maxwrite_overhead_vardecl_32172 nfs41_maxwrite_overhead vardecl 0 32172 NULL nohasharray
158643 +enable_so_ipath_unit_ipath_devdata_32172 ipath_unit ipath_devdata 0 32172 &enable_so_nfs41_maxwrite_overhead_vardecl_32172
158644 +enable_so_length_vring_rx_dma_32178 length vring_rx_dma 0 32178 NULL
158645 +enable_so_resp_format_pg_fndecl_32182 resp_format_pg fndecl 0 32182 NULL
158646 +enable_so_vmalloc_usercopy_fndecl_32186 vmalloc_usercopy fndecl 1 32186 NULL
158647 +enable_so_ping_getfrag_fndecl_32187 ping_getfrag fndecl 4 32187 NULL
158648 +enable_so_init_page_buffers_fndecl_32189 init_page_buffers fndecl 3 32189 NULL nohasharray
158649 +enable_so_len_sigma_action_32189 len sigma_action 0 32189 &enable_so_init_page_buffers_fndecl_32189
158650 +enable_so_tail_len_beacon_data_32194 tail_len beacon_data 0 32194 NULL
158651 +enable_so_s_system_dir_blkno_ocfs2_super_block_32196 s_system_dir_blkno ocfs2_super_block 0 32196 NULL
158652 +enable_so_smk_write_change_rule_fndecl_32200 smk_write_change_rule fndecl 3 32200 NULL
158653 +enable_so_nr_registers_ioapic_32204 nr_registers ioapic 0 32204 NULL
158654 +enable_so_len_bnep_ext_hdr_32205 len bnep_ext_hdr 0 32205 NULL
158655 +enable_so_dma_buf_size_tegra_slink_data_32206 dma_buf_size tegra_slink_data 0 32206 NULL
158656 +enable_so_ocfs2_decrease_refcount_rec_fndecl_32210 ocfs2_decrease_refcount_rec fndecl 6-7 32210 NULL
158657 +enable_so_k_offset_in_core_key_32212 k_offset in_core_key 0 32212 NULL
158658 +enable_so_num_sbs_pf_vf_resc_32216 num_sbs pf_vf_resc 0 32216 NULL nohasharray
158659 +enable_so_xdi_copy_from_user_fndecl_32216 xdi_copy_from_user fndecl 4 32216 &enable_so_num_sbs_pf_vf_resc_32216
158660 +enable_so_rate_n_flags_il4965_tx_resp_32218 rate_n_flags il4965_tx_resp 0 32218 NULL
158661 +enable_so_mag_length_ssp_sensorhub_info_32219 mag_length ssp_sensorhub_info 0 32219 NULL
158662 +enable_so_residual_task_status_struct_32220 residual task_status_struct 0 32220 NULL
158663 +enable_so_count_igb_ring_32225 count igb_ring 0 32225 NULL
158664 +enable_so_sys_munmap_fndecl_32226 sys_munmap fndecl 1-2 32226 NULL
158665 +enable_so_fragments_snd_compressed_buffer_32230 fragments snd_compressed_buffer 0 32230 NULL
158666 +enable_so_endpoint_usbatm_channel_32232 endpoint usbatm_channel 0 32232 NULL
158667 +enable_so_generic_bin_search_fndecl_32235 generic_bin_search fndecl 0 32235 NULL
158668 +enable_so_ts_packet_count_cx8802_dev_32239 ts_packet_count cx8802_dev 0 32239 NULL
158669 +enable_so_nasync_board_t_32240 nasync board_t 0 32240 NULL
158670 +enable_so_roccat_common2_sysfs_read_fndecl_32252 roccat_common2_sysfs_read fndecl 6 32252 NULL
158671 +enable_so_n_ids_vport_portids_32258 n_ids vport_portids 0 32258 NULL
158672 +enable_so_report_count_hid_global_32260 report_count hid_global 0 32260 NULL
158673 +enable_so_sony_register_touchpad_fndecl_32262 sony_register_touchpad fndecl 2 32262 NULL
158674 +enable_so_oslec_create_fndecl_32264 oslec_create fndecl 1 32264 NULL
158675 +enable_so_venus_mkdir_fndecl_32276 venus_mkdir fndecl 4 32276 NULL
158676 +enable_so_qib_qsfp_dump_fndecl_32277 qib_qsfp_dump fndecl 0 32277 NULL
158677 +enable_so_buf_len_lpfc_sli_config_hbd_32278 buf_len lpfc_sli_config_hbd 0 32278 NULL nohasharray
158678 +enable_so___v4l2_ctrl_s_ctrl_fndecl_32278 __v4l2_ctrl_s_ctrl fndecl 2 32278 &enable_so_buf_len_lpfc_sli_config_hbd_32278
158679 +enable_so_usb_allocate_stream_buffers_fndecl_32279 usb_allocate_stream_buffers fndecl 3 32279 NULL
158680 +enable_so_find_num_cache_leaves_fndecl_32280 find_num_cache_leaves fndecl 0 32280 NULL
158681 +enable_so_mapsize_uart_port_32282 mapsize uart_port 0 32282 NULL
158682 +enable_so_vol_cdev_read_fndecl_32283 vol_cdev_read fndecl 3 32283 NULL nohasharray
158683 +enable_so_seq_open_net_fndecl_32283 seq_open_net fndecl 4 32283 &enable_so_vol_cdev_read_fndecl_32283
158684 +enable_so_get_pipes_fndecl_32291 get_pipes fndecl 0 32291 NULL
158685 +enable_so_num_gpes_vardecl_sysfs_c_32294 num_gpes vardecl_sysfs.c 0 32294 NULL
158686 +enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295 IA_TX_BUF_SZ vardecl_iphase.c 0 32295 NULL nohasharray
158687 +enable_so_dma_size_sst_pdata_32295 dma_size sst_pdata 0 32295 &enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295
158688 +enable_so_il_dbgfs_clear_ucode_stats_write_fndecl_32299 il_dbgfs_clear_ucode_stats_write fndecl 3 32299 NULL
158689 +enable_so_rept_size_usbtouch_device_info_32306 rept_size usbtouch_device_info 0 32306 NULL
158690 +enable_so_sizeof_namespace_index_fndecl_32312 sizeof_namespace_index fndecl 0 32312 NULL
158691 +enable_so_snd_info_text_entry_write_fndecl_32315 snd_info_text_entry_write fndecl 3 32315 NULL
158692 +enable_so_nla_put_fndecl_32321 nla_put fndecl 3 32321 NULL
158693 +enable_so_khugepaged_scan_pmd_fndecl_32330 khugepaged_scan_pmd fndecl 3 32330 NULL
158694 +enable_so_bochs_ttm_tt_create_fndecl_32333 bochs_ttm_tt_create fndecl 2 32333 NULL nohasharray
158695 +enable_so_datablock_size_btrfsic_state_32333 datablock_size btrfsic_state 0 32333 &enable_so_bochs_ttm_tt_create_fndecl_32333
158696 +enable_so_mem_start_net_device_32337 mem_start net_device 0 32337 NULL
158697 +enable_so_fd_ioctl_fndecl_32343 fd_ioctl fndecl 3 32343 NULL
158698 +enable_so_fib_info_hash_alloc_fndecl_32352 fib_info_hash_alloc fndecl 1 32352 NULL
158699 +enable_so_scrub_raid56_parity_fndecl_32354 scrub_raid56_parity fndecl 5 32354 NULL
158700 +enable_so_max_q_vectors_ixgbe_adapter_32359 max_q_vectors ixgbe_adapter 0 32359 NULL
158701 +enable_so_netlbl_catmap_setlong_fndecl_32363 netlbl_catmap_setlong fndecl 2 32363 NULL nohasharray
158702 +enable_so_backlight_sd_gl860_32363 backlight sd_gl860 0 32363 &enable_so_netlbl_catmap_setlong_fndecl_32363
158703 +enable_so_datalen_ncp_request_reply_32365 datalen ncp_request_reply 0 32365 NULL
158704 +enable_so_xfs_setfilesize_fndecl_32370 xfs_setfilesize fndecl 4-3 32370 NULL
158705 +enable_so_snd_gus_dram_peek_fndecl_32373 snd_gus_dram_peek fndecl 4 32373 NULL
158706 +enable_so_snd_emu10k1_synth_copy_from_user_fndecl_32374 snd_emu10k1_synth_copy_from_user fndecl 5-3 32374 NULL
158707 +enable_so_journal_write_metadata_buffer_fndecl_32376 journal_write_metadata_buffer fndecl 4 32376 NULL nohasharray
158708 +enable_so_hci_req_add_fndecl_32376 hci_req_add fndecl 3 32376 &enable_so_journal_write_metadata_buffer_fndecl_32376
158709 +enable_so_transport_get_sectors_16_fndecl_32385 transport_get_sectors_16 fndecl 0 32385 NULL
158710 +enable_so_datablk_xfs_da_geometry_32386 datablk xfs_da_geometry 0 32386 NULL
158711 +enable_so_header_size_smb_version_values_32387 header_size smb_version_values 0 32387 NULL
158712 +enable_so_INFTL_formatblock_fndecl_32390 INFTL_formatblock fndecl 2 32390 NULL
158713 +enable_so_adxl34x_spi_read_block_fndecl_32391 adxl34x_spi_read_block fndecl 3 32391 NULL
158714 +enable_so_nvkm_output_create__fndecl_32400 nvkm_output_create_ fndecl 6 32400 NULL
158715 +enable_so_offset_pnfs_layout_range_32403 offset pnfs_layout_range 0 32403 NULL nohasharray
158716 +enable_so_create_queues_fndecl_32403 create_queues fndecl 3-2 32403 &enable_so_offset_pnfs_layout_range_32403
158717 +enable_so_ftdi_prepare_write_buffer_fndecl_32406 ftdi_prepare_write_buffer fndecl 3 32406 NULL
158718 +enable_so_cont_add_fndecl_32409 cont_add fndecl 4 32409 NULL
158719 +enable_so_agbno_xfs_alloc_arg_32410 agbno xfs_alloc_arg 0 32410 NULL
158720 +enable_so_ext4_list_backups_fndecl_32417 ext4_list_backups fndecl 0 32417 NULL
158721 +enable_so_nxt200x_readreg_multibyte_fndecl_32418 nxt200x_readreg_multibyte fndecl 4 32418 NULL nohasharray
158722 +enable_so_pt_buffer_setup_aux_fndecl_32418 pt_buffer_setup_aux fndecl 3 32418 &enable_so_nxt200x_readreg_multibyte_fndecl_32418
158723 +enable_so_ci_rsbtbl_size_dlm_config_info_32423 ci_rsbtbl_size dlm_config_info 0 32423 NULL
158724 +enable_so_srpt_build_tskmgmt_rsp_fndecl_32427 srpt_build_tskmgmt_rsp fndecl 0 32427 NULL
158725 +enable_so_qib_skip_sge_fndecl_32432 qib_skip_sge fndecl 2 32432 NULL
158726 +enable_so_di_next_index_dinode_32437 di_next_index dinode 0 32437 NULL nohasharray
158727 +enable_so_gso_size_xenvif_rx_meta_32437 gso_size xenvif_rx_meta 0 32437 &enable_so_di_next_index_dinode_32437 nohasharray
158728 +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
158729 +enable_so_port_port_ipath_portdata_32438 port_port ipath_portdata 0 32438 NULL
158730 +enable_so_btrfs_get_extent_fndecl_32440 btrfs_get_extent fndecl 4-3-5 32440 NULL nohasharray
158731 +enable_so_truncated_len_btrfs_ordered_extent_32440 truncated_len btrfs_ordered_extent 0 32440 &enable_so_btrfs_get_extent_fndecl_32440
158732 +enable_so_mlx4_alloc_resize_umem_fndecl_32447 mlx4_alloc_resize_umem fndecl 3 32447 NULL
158733 +enable_so_permission_inode_operations_32455 permission inode_operations 0 32455 NULL
158734 +enable_so_ext4_da_write_inline_data_end_fndecl_32456 ext4_da_write_inline_data_end fndecl 4-2 32456 NULL
158735 +enable_so_snd_buf_bytes_vardecl_usbatm_c_32457 snd_buf_bytes vardecl_usbatm.c 0 32457 NULL
158736 +enable_so_isr_irqs_read_fndecl_32462 isr_irqs_read fndecl 3 32462 NULL nohasharray
158737 +enable_so_ddata_ofs_cyttsp4_sysinfo_ofs_32462 ddata_ofs cyttsp4_sysinfo_ofs 0 32462 &enable_so_isr_irqs_read_fndecl_32462
158738 +enable_so_blk_execute_rq_fndecl_32470 blk_execute_rq fndecl 0 32470 NULL nohasharray
158739 +enable_so_out_kvec_left_ceph_connection_32470 out_kvec_left ceph_connection 0 32470 &enable_so_blk_execute_rq_fndecl_32470
158740 +enable_so_start_ordered_ops_fndecl_32475 start_ordered_ops fndecl 2-3 32475 NULL
158741 +enable_so_skb_shift_fndecl_32480 skb_shift fndecl 3 32480 NULL
158742 +enable_so_flctl_dma_fifo0_transfer_fndecl_32481 flctl_dma_fifo0_transfer fndecl 3 32481 NULL nohasharray
158743 +enable_so_j_len_reiserfs_journal_desc_32481 j_len reiserfs_journal_desc 0 32481 &enable_so_flctl_dma_fifo0_transfer_fndecl_32481
158744 +enable_so_sigmadsp_write_i2c_fndecl_32482 sigmadsp_write_i2c fndecl 4 32482 NULL
158745 +enable_so_iwl_dbgfs_frame_stats_read_fndecl_32488 iwl_dbgfs_frame_stats_read fndecl 3 32488 NULL
158746 +enable_so_s_fshift_ufs_sb_private_info_32491 s_fshift ufs_sb_private_info 0 32491 NULL
158747 +enable_so_card_send_command_fndecl_32492 card_send_command fndecl 3 32492 NULL
158748 +enable_so_read_pci_config_16_fndecl_32499 read_pci_config_16 fndecl 0 32499 NULL
158749 +enable_so_reply_nvif_notify_req_v0_32501 reply nvif_notify_req_v0 0 32501 NULL
158750 +enable_so_altera_swap_ir_fndecl_32505 altera_swap_ir fndecl 2 32505 NULL nohasharray
158751 +enable_so_alloc_group_attrs_fndecl_32505 alloc_group_attrs fndecl 2 32505 &enable_so_altera_swap_ir_fndecl_32505
158752 +enable_so_lmLogFormat_fndecl_32506 lmLogFormat fndecl 2 32506 NULL nohasharray
158753 +enable_so_acpi_unmap_fndecl_32506 acpi_unmap fndecl 1 32506 &enable_so_lmLogFormat_fndecl_32506
158754 +enable_so_num_tgtdevs_btrfs_bio_32507 num_tgtdevs btrfs_bio 0 32507 NULL
158755 +enable_so_transport_get_sectors_12_fndecl_32508 transport_get_sectors_12 fndecl 0 32508 NULL
158756 +enable_so_gx1_gx_base_fndecl_32509 gx1_gx_base fndecl 0 32509 NULL
158757 +enable_so_set_16kib_bfsize_stmmac_mode_ops_32520 set_16kib_bfsize stmmac_mode_ops 0 32520 NULL
158758 +enable_so_f_dupfd_fndecl_32521 f_dupfd fndecl 1 32521 NULL
158759 +enable_so_jffs2_acl_count_fndecl_32522 jffs2_acl_count fndecl 0-1 32522 NULL
158760 +enable_so_ext4_xattr_user_set_fndecl_32523 ext4_xattr_user_set fndecl 4 32523 NULL
158761 +enable_so_asrc_rate_fsl_asoc_card_priv_32525 asrc_rate fsl_asoc_card_priv 0 32525 NULL nohasharray
158762 +enable_so_frameoffset_b43_dmaring_32525 frameoffset b43_dmaring 0 32525 &enable_so_asrc_rate_fsl_asoc_card_priv_32525
158763 +enable_so_map_iommu_fndecl_32528 map_iommu fndecl 2 32528 NULL
158764 +enable_so_BBAR_rio_detail_32529 BBAR rio_detail 0 32529 NULL
158765 +enable_so_xenvif_max_queues_vardecl_32530 xenvif_max_queues vardecl 0 32530 NULL
158766 +enable_so_HDLC_irq_fndecl_32534 HDLC_irq fndecl 2 32534 NULL nohasharray
158767 +enable_so_num_comp_vectors_mlx4_caps_32534 num_comp_vectors mlx4_caps 0 32534 &enable_so_HDLC_irq_fndecl_32534
158768 +enable_so_ctrl_out_fndecl_32539 ctrl_out fndecl 5-3 32539 NULL
158769 +enable_so_ev_next_dev_data_32542 ev_next dev_data 0 32542 NULL
158770 +enable_so_wm8900_set_dai_pll_fndecl_32543 wm8900_set_dai_pll fndecl 4-5 32543 NULL
158771 +enable_so_cfg80211_inform_bss_width_fndecl_32545 cfg80211_inform_bss_width fndecl 10 32545 NULL
158772 +enable_so_rq_auth_slack_svc_rqst_32548 rq_auth_slack svc_rqst 0 32548 NULL
158773 +enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554 TransferCount _MSG_SCSI_IO_REPLY 0 32554 NULL nohasharray
158774 +enable_so_yurex_write_fndecl_32554 yurex_write fndecl 3 32554 &enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554
158775 +enable_so_x32_arch_ptrace_fndecl_32556 x32_arch_ptrace fndecl 3 32556 NULL
158776 +enable_so_sys_prctl_fndecl_32557 sys_prctl fndecl 3-4 32557 NULL
158777 +enable_so_pkey_table_len_mlx5_port_caps_32558 pkey_table_len mlx5_port_caps 0 32558 NULL nohasharray
158778 +enable_so_joydev_compat_ioctl_fndecl_32558 joydev_compat_ioctl fndecl 2 32558 &enable_so_pkey_table_len_mlx5_port_caps_32558
158779 +enable_so_tx_tx_exch_expiry_read_fndecl_32574 tx_tx_exch_expiry_read fndecl 3 32574 NULL nohasharray
158780 +enable_so_syt_interval_amdtp_stream_32574 syt_interval amdtp_stream 0 32574 &enable_so_tx_tx_exch_expiry_read_fndecl_32574
158781 +enable_so_iov_iter_zero_fndecl_32575 iov_iter_zero fndecl 1 32575 NULL
158782 +enable_so_ext4_try_to_write_inline_data_fndecl_32578 ext4_try_to_write_inline_data fndecl 4-3 32578 NULL
158783 +enable_so_msg_print_ext_header_fndecl_32580 msg_print_ext_header fndecl 0 32580 NULL
158784 +enable_so_inode_ext3_dir_entry_2_32583 inode ext3_dir_entry_2 0 32583 NULL
158785 +enable_so_fnic_fc_trace_get_data_fndecl_32585 fnic_fc_trace_get_data fndecl 0 32585 NULL nohasharray
158786 +enable_so_check_right_item_operations_32585 check_right item_operations 0 32585 &enable_so_fnic_fc_trace_get_data_fndecl_32585
158787 +enable_so_bop_assign_nilfs_bmap_operations_32598 bop_assign nilfs_bmap_operations 0 32598 NULL
158788 +enable_so_paging32_prefetch_gpte_fndecl_32604 paging32_prefetch_gpte fndecl 4 32604 NULL
158789 +enable_so_channel_num_sh_dmae_pdata_32606 channel_num sh_dmae_pdata 0 32606 NULL
158790 +enable_so_resp_len_brcmf_cfg80211_assoc_ielen_le_32607 resp_len brcmf_cfg80211_assoc_ielen_le 0 32607 NULL
158791 +enable_so_vlan_tag_atl1c_recv_ret_status_32608 vlan_tag atl1c_recv_ret_status 0 32608 NULL
158792 +enable_so_maxdevUnits_ore_striping_info_32610 maxdevUnits ore_striping_info 0 32610 NULL
158793 +enable_so_metronomefb_write_fndecl_32612 metronomefb_write fndecl 3 32612 NULL
158794 +enable_so_ceph_osd_data_length_fndecl_32615 ceph_osd_data_length fndecl 0 32615 NULL
158795 +enable_so_usb_alloc_streams_fndecl_32617 usb_alloc_streams fndecl 0 32617 NULL
158796 +enable_so_hfsplus_direct_IO_fndecl_32619 hfsplus_direct_IO fndecl 3 32619 NULL nohasharray
158797 +enable_so_SyS_llistxattr_fndecl_32619 SyS_llistxattr fndecl 3 32619 &enable_so_hfsplus_direct_IO_fndecl_32619
158798 +enable_so_ntfs_commit_pages_after_write_fndecl_32634 ntfs_commit_pages_after_write fndecl 0-4-3 32634 NULL
158799 +enable_so_pagesz_cifs_writedata_32638 pagesz cifs_writedata 0 32638 NULL
158800 +enable_so_do_page_add_anon_rmap_fndecl_32642 do_page_add_anon_rmap fndecl 3 32642 NULL
158801 +enable_so_digest_decode_fndecl_32644 digest_decode fndecl 0 32644 NULL
158802 +enable_so_wa_nep_queue_fndecl_32649 wa_nep_queue fndecl 2 32649 NULL
158803 +enable_so_debug_debug1_read_fndecl_32651 debug_debug1_read fndecl 3 32651 NULL
158804 +enable_so_phys_sca_base__synclinkmp_info_32654 phys_sca_base _synclinkmp_info 0 32654 NULL
158805 +enable_so_mgmt_generic_event_fndecl_32657 mgmt_generic_event fndecl 4 32657 NULL nohasharray
158806 +enable_so_dvb_ringbuffer_pkt_next_fndecl_32657 dvb_ringbuffer_pkt_next fndecl 0-2 32657 &enable_so_mgmt_generic_event_fndecl_32657
158807 +enable_so_icmpv6_manip_pkt_fndecl_32658 icmpv6_manip_pkt fndecl 4 32658 NULL nohasharray
158808 +enable_so_get_queue_depth_fndecl_32658 get_queue_depth fndecl 0 32658 &enable_so_icmpv6_manip_pkt_fndecl_32658
158809 +enable_so_nrof_flowrings_brcmf_msgbuf_32666 nrof_flowrings brcmf_msgbuf 0 32666 NULL
158810 +enable_so_rtsx_usb_transfer_data_fndecl_32669 rtsx_usb_transfer_data fndecl 4-2-5 32669 NULL
158811 +enable_so_compressed_bio_size_fndecl_32676 compressed_bio_size fndecl 0-2 32676 NULL
158812 +enable_so_engine_start_viafb_dev_32681 engine_start viafb_dev 0 32681 NULL nohasharray
158813 +enable_so_ab3100_get_set_reg_fndecl_32681 ab3100_get_set_reg fndecl 3 32681 &enable_so_engine_start_viafb_dev_32681
158814 +enable_so_length_ib_umem_32690 length ib_umem 0 32690 NULL
158815 +enable_so_radeon_drm_ioctl_fndecl_32696 radeon_drm_ioctl fndecl 2 32696 NULL
158816 +enable_so_ubifs_prepare_node_fndecl_32700 ubifs_prepare_node fndecl 3 32700 NULL
158817 +enable_so_write_file_ani_fndecl_32709 write_file_ani fndecl 3 32709 NULL
158818 +enable_so_dma_common_contiguous_remap_fndecl_32714 dma_common_contiguous_remap fndecl 2 32714 NULL
158819 +enable_so_size_hid_report_32715 size hid_report 0 32715 NULL
158820 +enable_so_layout_commit_fndecl_32717 layout_commit fndecl 3 32717 NULL
158821 +enable_so_f71882fg_device_add_fndecl_32719 f71882fg_device_add fndecl 1 32719 NULL
158822 +enable_so_residual_len_sts_entry_24xx_32720 residual_len sts_entry_24xx 0 32720 NULL
158823 +enable_so_inode_table_ext3_new_group_data_32721 inode_table ext3_new_group_data 0 32721 NULL
158824 +enable_so_ks8995_registers_read_fndecl_32738 ks8995_registers_read fndecl 5-6 32738 NULL
158825 +enable_so_driver_stats_read_fndecl_32739 driver_stats_read fndecl 3 32739 NULL
158826 +enable_so_goto_low_power_fndecl_32741 goto_low_power fndecl 0 32741 NULL
158827 +enable_so_requested_nr_virtfn_bnx2x_32742 requested_nr_virtfn bnx2x 0 32742 NULL
158828 +enable_so_read_file_tgt_stats_fndecl_32748 read_file_tgt_stats fndecl 3 32748 NULL
158829 +enable_so_vga_video_num_columns_vardecl_vgacon_c_32749 vga_video_num_columns vardecl_vgacon.c 0 32749 NULL nohasharray
158830 +enable_so_rds_tcp_xmit_fndecl_32749 rds_tcp_xmit fndecl 3 32749 &enable_so_vga_video_num_columns_vardecl_vgacon_c_32749
158831 +enable_so_lookup_zone_fndecl_32751 lookup_zone fndecl 0 32751 NULL
158832 +enable_so_adjust_priv_size_fndecl_32756 adjust_priv_size fndecl 0-1 32756 NULL
158833 +enable_so_cp2112_hid_get_fndecl_32758 cp2112_hid_get fndecl 4 32758 NULL
158834 +enable_so_fuse_file_ioctl_fndecl_32760 fuse_file_ioctl fndecl 2 32760 NULL
158835 +enable_so_rc_via_alen_mpls_route_config_32766 rc_via_alen mpls_route_config 0 32766 NULL
158836 +enable_so_gro_pull_from_frag0_fndecl_32770 gro_pull_from_frag0 fndecl 2 32770 NULL
158837 +enable_so_nvkm_ramht_new_fndecl_32772 nvkm_ramht_new fndecl 4-3 32772 NULL
158838 +enable_so_sm501_create_mem_fndecl_32778 sm501_create_mem fndecl 4 32778 NULL
158839 +enable_so_test_ofsl_cyttsp4_sysinfo_data_32781 test_ofsl cyttsp4_sysinfo_data 0 32781 NULL
158840 +enable_so_xfs_fsb_to_db_fndecl_32785 xfs_fsb_to_db fndecl 0-2 32785 NULL
158841 +enable_so_hpi_instream_ancillary_write_fndecl_32786 hpi_instream_ancillary_write fndecl 4 32786 NULL nohasharray
158842 +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
158843 +enable_so_portcntrs_2_read_fndecl_32793 portcntrs_2_read fndecl 3 32793 NULL
158844 +enable_so_mp_register_ioapic_fndecl_32802 mp_register_ioapic fndecl 3 32802 NULL
158845 +enable_so_pipe_usb_fifo_32805 pipe usb_fifo 0 32805 NULL nohasharray
158846 +enable_so_nfc_allocate_device_fndecl_32805 nfc_allocate_device fndecl 3 32805 &enable_so_pipe_usb_fifo_32805
158847 +enable_so_info_len_ib_ucm_info_32807 info_len ib_ucm_info 0 32807 NULL
158848 +enable_so_m_len_f2fs_map_blocks_32808 m_len f2fs_map_blocks 0 32808 NULL
158849 +enable_so_l_start_xfs_flock64_32809 l_start xfs_flock64 0 32809 NULL
158850 +enable_so_length_ppp_option_data_32814 length ppp_option_data 0 32814 NULL
158851 +enable_so_ib_uverbs_create_qp_fndecl_32816 ib_uverbs_create_qp fndecl 3 32816 NULL
158852 +enable_so_event_filter_write_fndecl_32818 event_filter_write fndecl 3 32818 NULL
158853 +enable_so_namelen_jfs_ea_32820 namelen jfs_ea 0 32820 NULL
158854 +enable_so_nvme_trans_log_temperature_fndecl_32822 nvme_trans_log_temperature fndecl 3 32822 NULL
158855 +enable_so_scrub_fixup_readpage_fndecl_32830 scrub_fixup_readpage fndecl 2 32830 NULL nohasharray
158856 +enable_so_num_rcv_urbs_vardecl_usbatm_c_32830 num_rcv_urbs vardecl_usbatm.c 0 32830 &enable_so_scrub_fixup_readpage_fndecl_32830
158857 +enable_so_ds_out_channels_hdspm_32836 ds_out_channels hdspm 0 32836 NULL
158858 +enable_so_num_amgms_mthca_limits_32845 num_amgms mthca_limits 0 32845 NULL
158859 +enable_so_s_inodes_per_block_bits_sysv_sb_info_32849 s_inodes_per_block_bits sysv_sb_info 0 32849 NULL
158860 +enable_so_gather_array_fndecl_32850 gather_array fndecl 3 32850 NULL
158861 +enable_so_ep_in_mcs_cb_32852 ep_in mcs_cb 0 32852 NULL
158862 +enable_so_br_startoff_xfs_bmbt_irec_32854 br_startoff xfs_bmbt_irec 0 32854 NULL
158863 +enable_so_size_mem_cgroup_threshold_ary_32855 size mem_cgroup_threshold_ary 0 32855 NULL
158864 +enable_so_uvc_debugfs_stats_read_fndecl_32856 uvc_debugfs_stats_read fndecl 3 32856 NULL
158865 +enable_so_should_defrag_range_fndecl_32859 should_defrag_range fndecl 2 32859 NULL
158866 +enable_so_tx_buf_clear_used_ks959_cb_32864 tx_buf_clear_used ks959_cb 0 32864 NULL
158867 +enable_so_duplex_phy_device_32869 duplex phy_device 0 32869 NULL
158868 +enable_so_wTotalLength_usb_security_descriptor_32872 wTotalLength usb_security_descriptor 0 32872 NULL
158869 +enable_so_buffer_len_bfad_debug_info_32873 buffer_len bfad_debug_info 0 32873 NULL
158870 +enable_so_dvb_ringbuffer_read_user_fndecl_32877 dvb_ringbuffer_read_user fndecl 3-0 32877 NULL nohasharray
158871 +enable_so_dz_divisor_dn_zone_32877 dz_divisor dn_zone 0 32877 &enable_so_dvb_ringbuffer_read_user_fndecl_32877
158872 +enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885 mem_cgroup_move_charge_pte_range fndecl 2 32885 NULL nohasharray
158873 +enable_so_btrfs_cow_block_fndecl_32885 btrfs_cow_block fndecl 0 32885 &enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885 nohasharray
158874 +enable_so_add_action_fndecl_32885 add_action fndecl 4-0 32885 &enable_so_btrfs_cow_block_fndecl_32885
158875 +enable_so_snoop_table_size_ib_mad_qp_info_32891 snoop_table_size ib_mad_qp_info 0 32891 NULL
158876 +enable_so_snd_gus_dram_read_fndecl_32893 snd_gus_dram_read fndecl 4 32893 NULL
158877 +enable_so___wa_xfer_setup_segs_fndecl_32902 __wa_xfer_setup_segs fndecl 2 32902 NULL
158878 +enable_so_xfs_bmbt_set_startoff_fndecl_32903 xfs_bmbt_set_startoff fndecl 2 32903 NULL
158879 +enable_so_wm831x_num_wm831x_pdata_32904 wm831x_num wm831x_pdata 0 32904 NULL
158880 +enable_so_copy_off_netrx_pending_operations_32906 copy_off netrx_pending_operations 0 32906 NULL
158881 +enable_so_adnp_gpio_setup_fndecl_32910 adnp_gpio_setup fndecl 2 32910 NULL
158882 +enable_so_space_init_fndecl_32911 space_init fndecl 2 32911 NULL
158883 +enable_so_max_r2t_iscsi_bus_flash_session_32912 max_r2t iscsi_bus_flash_session 0 32912 NULL
158884 +enable_so_num_vfs_qlcnic_sriov_32913 num_vfs qlcnic_sriov 0 32913 NULL
158885 +enable_so_ipv6_getsockopt_sticky_fndecl_32916 ipv6_getsockopt_sticky fndecl 5-0 32916 NULL
158886 +enable_so_sta_flags_read_fndecl_32917 sta_flags_read fndecl 3 32917 NULL
158887 +enable_so_conn_send_command_fndecl_32918 conn_send_command fndecl 4-6 32918 NULL
158888 +enable_so_pci_get_related_function_fndecl_32920 pci_get_related_function fndecl 2 32920 NULL
158889 +enable_so_nr_events_kioctx_32925 nr_events kioctx 0 32925 NULL
158890 +enable_so_vram_base_mga_mc_32927 vram_base mga_mc 0 32927 NULL
158891 +enable_so___add_action_fndecl_32937 __add_action fndecl 4 32937 NULL
158892 +enable_so___copy_from_user_ll_fndecl_32945 __copy_from_user_ll fndecl 0 32945 NULL
158893 +enable_so_al_stripes_resize_parms_32950 al_stripes resize_parms 0 32950 NULL
158894 +enable_so_diva_data_q_init_fndecl_32954 diva_data_q_init fndecl 2 32954 NULL
158895 +enable_so_btrfsic_map_block_fndecl_32956 btrfsic_map_block fndecl 3 32956 NULL
158896 +enable_so_drm_agp_bind_pages_fndecl_32959 drm_agp_bind_pages fndecl 3 32959 NULL
158897 +enable_so___carl9170_rx_fndecl_32963 __carl9170_rx fndecl 3 32963 NULL
158898 +enable_so_bop_gather_data_nilfs_bmap_operations_32964 bop_gather_data nilfs_bmap_operations 0 32964 NULL
158899 +enable_so_total_data_buflen_hv_netvsc_packet_32967 total_data_buflen hv_netvsc_packet 0 32967 NULL
158900 +enable_so_ttm_alloc_new_pages_fndecl_32971 ttm_alloc_new_pages fndecl 5 32971 NULL
158901 +enable_so_s_max_slots_ocfs2_super_block_32972 s_max_slots ocfs2_super_block 0 32972 NULL
158902 +enable_so_proc_bus_pci_lseek_fndecl_32974 proc_bus_pci_lseek fndecl 2 32974 NULL
158903 +enable_so_p_replen_rpc_procinfo_32991 p_replen rpc_procinfo 0 32991 NULL nohasharray
158904 +enable_so_bn_read_lock_fndecl_32991 bn_read_lock fndecl 2 32991 &enable_so_p_replen_rpc_procinfo_32991
158905 +enable_so_resid_len_request_32994 resid_len request 0 32994 NULL
158906 +enable_so_wtpref_nfs_fsinfo_33003 wtpref nfs_fsinfo 0 33003 NULL
158907 +enable_so_mtdchar_write_fndecl_33004 mtdchar_write fndecl 3 33004 NULL
158908 +enable_so_dwNtbInMaxSize_usb_cdc_ncm_ntb_parameters_33006 dwNtbInMaxSize usb_cdc_ncm_ntb_parameters 0 33006 NULL
158909 +enable_so_pktshift_sge_33011 pktshift sge 0 33011 NULL nohasharray
158910 +enable_so_offset_fl_pg_chunk_33011 offset fl_pg_chunk 0 33011 &enable_so_pktshift_sge_33011
158911 +enable_so_size_qlcnic_82xx_dump_template_hdr_33013 size qlcnic_82xx_dump_template_hdr 0 33013 NULL nohasharray
158912 +enable_so_ion_ioctl_fndecl_33013 ion_ioctl fndecl 2 33013 &enable_so_size_qlcnic_82xx_dump_template_hdr_33013
158913 +enable_so_nr_regions_amd_flash_info_33022 nr_regions amd_flash_info 0 33022 NULL
158914 +enable_so_rq_size_nes_hw_qp_33024 rq_size nes_hw_qp 0 33024 NULL
158915 +enable_so_snd_rawmidi_read_fndecl_33026 snd_rawmidi_read fndecl 3 33026 NULL
158916 +enable_so_offset_xen_netif_rx_response_33028 offset xen_netif_rx_response 0 33028 NULL
158917 +enable_so_amdgpu_afmt_calc_cts_fndecl_33031 amdgpu_afmt_calc_cts fndecl 1-4 33031 NULL
158918 +enable_so_rsi_sdio_read_register_multiple_fndecl_33035 rsi_sdio_read_register_multiple fndecl 3 33035 NULL
158919 +enable_so_sacked_out_tcp_sock_33038 sacked_out tcp_sock 0 33038 NULL
158920 +enable_so_pipeline_pre_to_defrag_swi_read_fndecl_33042 pipeline_pre_to_defrag_swi_read fndecl 3 33042 NULL
158921 +enable_so_files_ceph_mds_reply_inode_33047 files ceph_mds_reply_inode 0 33047 NULL
158922 +enable_so_journal_init_revoke_table_fndecl_33048 journal_init_revoke_table fndecl 1 33048 NULL
158923 +enable_so_HighPriorityCredit_mpt2sas_facts_33050 HighPriorityCredit mpt2sas_facts 0 33050 NULL
158924 +enable_so_svc_rdma_xdr_get_reply_hdr_len_fndecl_33056 svc_rdma_xdr_get_reply_hdr_len fndecl 0 33056 NULL nohasharray
158925 +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
158926 +enable_so_dev_read_fndecl_33058 dev_read fndecl 3 33058 NULL
158927 +enable_so_iov_iter_copy_from_user_atomic_fndecl_33059 iov_iter_copy_from_user_atomic fndecl 4-0 33059 NULL
158928 +enable_so_rxbufsz_ar5523_33060 rxbufsz ar5523 0 33060 NULL nohasharray
158929 +enable_so_nfilters_mc5_params_33060 nfilters mc5_params 0 33060 &enable_so_rxbufsz_ar5523_33060
158930 +enable_so_size_ec168_req_33061 size ec168_req 0 33061 NULL
158931 +enable_so_iio_device_add_info_mask_type_fndecl_33062 iio_device_add_info_mask_type fndecl 0 33062 NULL
158932 +enable_so_compress_compressor_33066 compress compressor 0 33066 NULL
158933 +enable_so_wil_read_pmccfg_fndecl_33071 wil_read_pmccfg fndecl 3 33071 NULL
158934 +enable_so_prepare_inurb_fndecl_33073 prepare_inurb fndecl 1 33073 NULL
158935 +enable_so___fat_nfs_get_inode_fndecl_33079 __fat_nfs_get_inode fndecl 4 33079 NULL
158936 +enable_so_descriptor_size_pmc_ctx_33081 descriptor_size pmc_ctx 0 33081 NULL
158937 +enable_so_e1000_alloc_rx_skb_fndecl_33089 e1000_alloc_rx_skb fndecl 2 33089 NULL nohasharray
158938 +enable_so_tx_headroom_llc_shdlc_33089 tx_headroom llc_shdlc 0 33089 &enable_so_e1000_alloc_rx_skb_fndecl_33089
158939 +enable_so_spu_base_info_size_qib_user_info_33091 spu_base_info_size qib_user_info 0 33091 NULL
158940 +enable_so_vram_size_cirrus_mc_33094 vram_size cirrus_mc 0 33094 NULL nohasharray
158941 +enable_so_ocfs2_control_read_fndecl_33094 ocfs2_control_read fndecl 3 33094 &enable_so_vram_size_cirrus_mc_33094
158942 +enable_so_write_gssp_fndecl_33095 write_gssp fndecl 3 33095 NULL
158943 +enable_so_do_get_write_access_fndecl_33097 do_get_write_access fndecl 0 33097 NULL
158944 +enable_so_return_wc_byte_len_ib_mad_local_private_33101 return_wc_byte_len ib_mad_local_private 0 33101 NULL
158945 +enable_so___snd_util_memblk_new_fndecl_33112 __snd_util_memblk_new fndecl 2 33112 NULL
158946 +enable_so_nla_strlcpy_fndecl_33113 nla_strlcpy fndecl 0 33113 NULL
158947 +enable_so_hdr_len_virtnet_info_33118 hdr_len virtnet_info 0 33118 NULL
158948 +enable_so_len_cfg80211_mgmt_tx_params_33119 len cfg80211_mgmt_tx_params 0 33119 NULL
158949 +enable_so_fl_create_fndecl_33120 fl_create fndecl 5 33120 NULL
158950 +enable_so_hw_token_ehci_qtd_33122 hw_token ehci_qtd 0 33122 NULL
158951 +enable_so_omninet_write_fndecl_33123 omninet_write fndecl 4 33123 NULL nohasharray
158952 +enable_so_ring_size_amdgpu_ring_33123 ring_size amdgpu_ring 0 33123 &enable_so_omninet_write_fndecl_33123
158953 +enable_so_gnttab_map_fndecl_33124 gnttab_map fndecl 2 33124 NULL
158954 +enable_so_max_resp_sz_nfs4_channel_attrs_33127 max_resp_sz nfs4_channel_attrs 0 33127 NULL nohasharray
158955 +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
158956 +enable_so_masklength_iio_dev_33129 masklength iio_dev 0 33129 NULL
158957 +enable_so_hvutil_transport_send_fndecl_33131 hvutil_transport_send fndecl 3 33131 NULL nohasharray
158958 +enable_so_readrids_fndecl_33131 readrids fndecl 0 33131 &enable_so_hvutil_transport_send_fndecl_33131
158959 +enable_so_trebleinit_CHIPDESC_33133 trebleinit CHIPDESC 0 33133 NULL
158960 +enable_so_in_words_ib_uverbs_cmd_hdr_33134 in_words ib_uverbs_cmd_hdr 0 33134 NULL
158961 +enable_so_store_msg_fndecl_33138 store_msg fndecl 3 33138 NULL
158962 +enable_so_acpi_os_write_memory_fndecl_33139 acpi_os_write_memory fndecl 3-1 33139 NULL nohasharray
158963 +enable_so___get_vm_area_caller_fndecl_33139 __get_vm_area_caller fndecl 1-3 33139 &enable_so_acpi_os_write_memory_fndecl_33139
158964 +enable_so_rate_info_mwl8k_rxd_sta_33140 rate_info mwl8k_rxd_sta 0 33140 NULL
158965 +enable_so_size_bmp_header_33141 size bmp_header 0 33141 NULL nohasharray
158966 +enable_so_hostname_len_nlm_lookup_host_info_33141 hostname_len nlm_lookup_host_info 0 33141 &enable_so_size_bmp_header_33141
158967 +enable_so_fm_extent_count_fiemap_33144 fm_extent_count fiemap 0 33144 NULL
158968 +enable_so_l2cap_segment_le_sdu_fndecl_33145 l2cap_segment_le_sdu fndecl 4 33145 NULL
158969 +enable_so_putused_user_fndecl_33152 putused_user fndecl 3 33152 NULL
158970 +enable_so_osd_req_list_partition_objects_fndecl_33155 osd_req_list_partition_objects fndecl 5 33155 NULL nohasharray
158971 +enable_so_starting_cid_cnic_eth_dev_33155 starting_cid cnic_eth_dev 0 33155 &enable_so_osd_req_list_partition_objects_fndecl_33155
158972 +enable_so_lbs_rdmac_write_fndecl_33156 lbs_rdmac_write fndecl 3 33156 NULL
158973 +enable_so_len_ip_set_ext_type_33164 len ip_set_ext_type 0 33164 NULL
158974 +enable_so_mml_isar_hw_33168 mml isar_hw 0 33168 NULL
158975 +enable_so_walk_pgd_range_fndecl_33169 walk_pgd_range fndecl 0 33169 NULL
158976 +enable_so_cx231xx_init_isoc_fndecl_33174 cx231xx_init_isoc fndecl 4-2-3 33174 NULL
158977 +enable_so_hcs_params2_xhci_hcd_33175 hcs_params2 xhci_hcd 0 33175 NULL
158978 +enable_so_set_connectable_fndecl_33177 set_connectable fndecl 4 33177 NULL
158979 +enable_so_rw_devices_btrfs_fs_devices_33182 rw_devices btrfs_fs_devices 0 33182 NULL
158980 +enable_so_arp_filter_size_mwifiex_adapter_33183 arp_filter_size mwifiex_adapter 0 33183 NULL
158981 +enable_so_niqflint_vf_resources_33189 niqflint vf_resources 0 33189 NULL
158982 +enable_so_ath6kl_wmi_set_ip_cmd_fndecl_33191 ath6kl_wmi_set_ip_cmd fndecl 2 33191 NULL
158983 +enable_so_Memhscx_empty_fifo_fndecl_33197 Memhscx_empty_fifo fndecl 2 33197 NULL
158984 +enable_so_data_avail_vardecl_core_c_33198 data_avail vardecl_core.c 0 33198 NULL
158985 +enable_so_init_map_ip_fndecl_33199 init_map_ip fndecl 5 33199 NULL
158986 +enable_so_ieee80211_rx_mgmt_probe_beacon_fndecl_33208 ieee80211_rx_mgmt_probe_beacon fndecl 3 33208 NULL
158987 +enable_so_block_size_dm_bufio_client_33221 block_size dm_bufio_client 0 33221 NULL
158988 +enable_so_num_lan_msix_i40e_pf_33223 num_lan_msix i40e_pf 0 33223 NULL
158989 +enable_so_ip_options_get_fndecl_33225 ip_options_get fndecl 4 33225 NULL
158990 +enable_so_l1oip_socket_recv_fndecl_33226 l1oip_socket_recv fndecl 6 33226 NULL nohasharray
158991 +enable_so_i_dir_acl_ext3_inode_33226 i_dir_acl ext3_inode 0 33226 &enable_so_l1oip_socket_recv_fndecl_33226
158992 +enable_so_segment_count_main_f2fs_super_block_33230 segment_count_main f2fs_super_block 0 33230 NULL
158993 +enable_so_cfg80211_connect_result_fndecl_33232 cfg80211_connect_result fndecl 4-6 33232 NULL
158994 +enable_so_ext4_zeroout_es_fndecl_33233 ext4_zeroout_es fndecl 0 33233 NULL
158995 +enable_so_lustre_posix_acl_xattr_reduce_space_fndecl_33235 lustre_posix_acl_xattr_reduce_space fndecl 3 33235 NULL
158996 +enable_so_nsumblk_nilfs_segsum_info_33238 nsumblk nilfs_segsum_info 0 33238 NULL
158997 +enable_so_udf_load_partdesc_fndecl_33239 udf_load_partdesc fndecl 2 33239 NULL
158998 +enable_so_save_tx_buffer_request_fndecl_33245 save_tx_buffer_request fndecl 3 33245 NULL
158999 +enable_so_mfs_fc_lport_33249 mfs fc_lport 0 33249 NULL
159000 +enable_so_alloc_apertures_fndecl_33250 alloc_apertures fndecl 1 33250 NULL
159001 +enable_so_metadata_size_ecryptfs_crypt_stat_33252 metadata_size ecryptfs_crypt_stat 0 33252 NULL
159002 +enable_so_size_reserved_mem_33254 size reserved_mem 0 33254 NULL
159003 +enable_so_wb_offset_nfs_page_33255 wb_offset nfs_page 0 33255 NULL
159004 +enable_so_handle_bytes_file_handle_33261 handle_bytes file_handle 0 33261 NULL
159005 +enable_so_rs_sta_dbgfs_stats_table_read_fndecl_33262 rs_sta_dbgfs_stats_table_read fndecl 3 33262 NULL
159006 +enable_so_mem_size_ramoops_platform_data_33263 mem_size ramoops_platform_data 0 33263 NULL
159007 +enable_so_ip_vs_prepare_tunneled_skb_fndecl_33269 ip_vs_prepare_tunneled_skb fndecl 3 33269 NULL
159008 +enable_so_ocfs2_change_extent_flag_fndecl_33270 ocfs2_change_extent_flag fndecl 5-3 33270 NULL nohasharray
159009 +enable_so_mem_end_net_device_33270 mem_end net_device 0 33270 &enable_so_ocfs2_change_extent_flag_fndecl_33270
159010 +enable_so_drv_file_st_partstat_33277 drv_file st_partstat 0 33277 NULL
159011 +enable_so_ep_msg_out_peak_usb_device_33281 ep_msg_out peak_usb_device 0 33281 NULL nohasharray
159012 +enable_so_hpfs_readpages_fndecl_33281 hpfs_readpages fndecl 4 33281 &enable_so_ep_msg_out_peak_usb_device_33281 nohasharray
159013 +enable_so_sbsector_iso9660_options_33281 sbsector iso9660_options 0 33281 &enable_so_hpfs_readpages_fndecl_33281
159014 +enable_so_mappable_end_i915_gtt_33282 mappable_end i915_gtt 0 33282 NULL
159015 +enable_so_cipso_v4_gentag_loc_fndecl_33292 cipso_v4_gentag_loc fndecl 0 33292 NULL nohasharray
159016 +enable_so_frame_size_camera_data_33292 frame_size camera_data 0 33292 &enable_so_cipso_v4_gentag_loc_fndecl_33292
159017 +enable_so_align_gf100_gr_data_33300 align gf100_gr_data 0 33300 NULL
159018 +enable_so_vlen_nfsd_readargs_33302 vlen nfsd_readargs 0 33302 NULL
159019 +enable_so_e_phnum_elf64_hdr_33305 e_phnum elf64_hdr 0 33305 NULL
159020 +enable_so_tracing_set_trace_write_fndecl_33307 tracing_set_trace_write fndecl 3 33307 NULL
159021 +enable_so_max_width_vsp1_rwpf_33314 max_width vsp1_rwpf 0 33314 NULL
159022 +enable_so_nl80211_send_deauth_fndecl_33315 nl80211_send_deauth fndecl 4 33315 NULL nohasharray
159023 +enable_so_ima_show_htable_value_fndecl_33315 ima_show_htable_value fndecl 2 33315 &enable_so_nl80211_send_deauth_fndecl_33315
159024 +enable_so__iwl_dbgfs_bf_params_write_fndecl_33318 _iwl_dbgfs_bf_params_write fndecl 3 33318 NULL
159025 +enable_so_index_vardecl_via82xx_modem_c_33320 index vardecl_via82xx_modem.c 0 33320 NULL
159026 +enable_so_acpi_gsb_i2c_read_bytes_fndecl_33322 acpi_gsb_i2c_read_bytes fndecl 4 33322 NULL
159027 +enable_so_hlen_h4_recv_pkt_33324 hlen h4_recv_pkt 0 33324 NULL
159028 +enable_so_ahd_sg_setup_fndecl_33341 ahd_sg_setup fndecl 4-5 33341 NULL
159029 +enable_so_stk_prepare_sio_buffers_fndecl_33347 stk_prepare_sio_buffers fndecl 2 33347 NULL
159030 +enable_so_max_vpi_lpfc_max_cfg_param_33350 max_vpi lpfc_max_cfg_param 0 33350 NULL
159031 +enable_so_setup_mcfg_map_fndecl_33351 setup_mcfg_map fndecl 3-4-5 33351 NULL
159032 +enable_so_rx_hw_stuck_read_fndecl_33352 rx_hw_stuck_read fndecl 3 33352 NULL
159033 +enable_so_dvb_register_device_fndecl_33363 dvb_register_device fndecl 0 33363 NULL
159034 +enable_so_udl_prime_create_fndecl_33364 udl_prime_create fndecl 2 33364 NULL nohasharray
159035 +enable_so_scanlength_usbvision_frame_33364 scanlength usbvision_frame 0 33364 &enable_so_udl_prime_create_fndecl_33364 nohasharray
159036 +enable_so_bpa10x_recv_fndecl_33364 bpa10x_recv fndecl 4 33364 &enable_so_scanlength_usbvision_frame_33364
159037 +enable_so_ihandlen_xfs_fsop_handlereq_33370 ihandlen xfs_fsop_handlereq 0 33370 NULL
159038 +enable_so_lpfc_sg_seg_cnt_init_fndecl_33371 lpfc_sg_seg_cnt_init fndecl 2 33371 NULL
159039 +enable_so_ieee_802_1x_local_info_33374 ieee_802_1x local_info 0 33374 NULL
159040 +enable_so_ib_qib_max_srq_wrs_vardecl_33376 ib_qib_max_srq_wrs vardecl 0 33376 NULL
159041 +enable_so_sys_io_getevents_fndecl_33381 sys_io_getevents fndecl 3 33381 NULL
159042 +enable_so_length_mac_configuration_hdr_33392 length mac_configuration_hdr 0 33392 NULL
159043 +enable_so_sys_poll_fndecl_33397 sys_poll fndecl 2 33397 NULL
159044 +enable_so_data_offset_rndis_packet_33403 data_offset rndis_packet 0 33403 NULL
159045 +enable_so_drbg_blocklen_fndecl_33412 drbg_blocklen fndecl 0 33412 NULL
159046 +enable_so_dma_fifo_alloc_fndecl_33415 dma_fifo_alloc fndecl 2-3-5 33415 NULL
159047 +enable_so_flush_space_fndecl_33418 flush_space fndecl 0 33418 NULL
159048 +enable_so_lbmRead_fndecl_33420 lbmRead fndecl 2 33420 NULL
159049 +enable_so_dreq_gss_dccp_request_sock_33423 dreq_gss dccp_request_sock 0 33423 NULL nohasharray
159050 +enable_so_rsxx_cram_write_fndecl_33423 rsxx_cram_write fndecl 3 33423 &enable_so_dreq_gss_dccp_request_sock_33423
159051 +enable_so_tt3650_ci_msg_fndecl_33424 tt3650_ci_msg fndecl 4 33424 NULL
159052 +enable_so_offset_vb2_dma_sg_buf_33426 offset vb2_dma_sg_buf 0 33426 NULL
159053 +enable_so_intr_dma_usb_pcwd_private_33427 intr_dma usb_pcwd_private 0 33427 NULL
159054 +enable_so_change_mtu_fndecl_33432 change_mtu fndecl 2 33432 NULL nohasharray
159055 +enable_so_in_nextiag_dinomap_33432 in_nextiag dinomap 0 33432 &enable_so_change_mtu_fndecl_33432
159056 +enable_so__nfs4_proc_readlink_fndecl_33436 _nfs4_proc_readlink fndecl 4-3 33436 NULL
159057 +enable_so_wqe_size_ib_uverbs_post_send_33437 wqe_size ib_uverbs_post_send 0 33437 NULL
159058 +enable_so_nilfs_set_nsegments_fndecl_33438 nilfs_set_nsegments fndecl 2 33438 NULL
159059 +enable_so_mmc_test_area_io_seq_fndecl_33440 mmc_test_area_io_seq fndecl 2-9 33440 NULL
159060 +enable_so_w_dloarea_33444 w dloarea 0 33444 NULL
159061 +enable_so_ipath_verbs_send_pio_fndecl_33450 ipath_verbs_send_pio fndecl 5 33450 NULL
159062 +enable_so_mt7601u_mcu_msg_alloc_fndecl_33453 mt7601u_mcu_msg_alloc fndecl 3 33453 NULL
159063 +enable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 3-4 33455 NULL
159064 +enable_so_oprofilefs_ulong_from_user_fndecl_33456 oprofilefs_ulong_from_user fndecl 3 33456 NULL
159065 +enable_so_alloc_flex_gd_fndecl_33464 alloc_flex_gd fndecl 1 33464 NULL
159066 +enable_so_tx_pipe_usbpn_dev_33474 tx_pipe usbpn_dev 0 33474 NULL
159067 +enable_so_packets_out_tcp_sock_33478 packets_out tcp_sock 0 33478 NULL
159068 +enable_so___nbd_ioctl_fndecl_33480 __nbd_ioctl fndecl 4 33480 NULL
159069 +enable_so_pci_asix_setup_fndecl_33482 pci_asix_setup fndecl 4 33482 NULL
159070 +enable_so_ath6kl_buf_alloc_fndecl_33483 ath6kl_buf_alloc fndecl 1 33483 NULL
159071 +enable_so_ftdi_elan_write_fndecl_33486 ftdi_elan_write fndecl 3 33486 NULL
159072 +enable_so_ath6kl_wmi_cmd_send_fndecl_33493 ath6kl_wmi_cmd_send fndecl 2 33493 NULL
159073 +enable_so_root_size_adfs_discrecord_33498 root_size adfs_discrecord 0 33498 NULL
159074 +enable_so_pstore_file_read_fndecl_33499 pstore_file_read fndecl 3 33499 NULL nohasharray
159075 +enable_so_num_rx_descs_iser_conn_33499 num_rx_descs iser_conn 0 33499 &enable_so_pstore_file_read_fndecl_33499
159076 +enable_so_ocfs2_xattr_shrink_size_fndecl_33507 ocfs2_xattr_shrink_size fndecl 3 33507 NULL
159077 +enable_so_chunk_io_fndecl_33510 chunk_io fndecl 3 33510 NULL
159078 +enable_so_pcigart_offset_drm_radeon_private_33512 pcigart_offset drm_radeon_private 0 33512 NULL
159079 +enable_so___asymmetric_key_hex_to_key_id_fndecl_33513 __asymmetric_key_hex_to_key_id fndecl 3 33513 NULL
159080 +enable_so_check_mirror_fndecl_33517 check_mirror fndecl 2-1 33517 NULL nohasharray
159081 +enable_so_usblp_read_fndecl_33517 usblp_read fndecl 3 33517 &enable_so_check_mirror_fndecl_33517
159082 +enable_so_len_writequeue_entry_33522 len writequeue_entry 0 33522 NULL nohasharray
159083 +enable_so_write_file_regval_fndecl_33522 write_file_regval fndecl 3 33522 &enable_so_len_writequeue_entry_33522
159084 +enable_so_start_xen_memory_region_33527 start xen_memory_region 0 33527 NULL nohasharray
159085 +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
159086 +enable_so_offset_port_buffer_33530 offset port_buffer 0 33530 NULL
159087 +enable_so___mxt_write_reg_fndecl_33533 __mxt_write_reg fndecl 3 33533 NULL
159088 +enable_so_ieee802154_hdr_addr_len_fndecl_33535 ieee802154_hdr_addr_len fndecl 0 33535 NULL
159089 +enable_so_si476x_radio_read_agc_blob_fndecl_33538 si476x_radio_read_agc_blob fndecl 3 33538 NULL
159090 +enable_so_sq_size_nes_hw_qp_33544 sq_size nes_hw_qp 0 33544 NULL nohasharray
159091 +enable_so_num_seq_vgastate_33544 num_seq vgastate 0 33544 &enable_so_sq_size_nes_hw_qp_33544
159092 +enable_so_dlfb_setup_modes_fndecl_33548 dlfb_setup_modes fndecl 4 33548 NULL
159093 +enable_so_kvm_vcpu_read_guest_fndecl_33552 kvm_vcpu_read_guest fndecl 2-4 33552 NULL
159094 +enable_so_mwifiex_create_ba_tbl_fndecl_33555 mwifiex_create_ba_tbl fndecl 3 33555 NULL
159095 +enable_so_cpb_s5p_mfc_buf_size_33560 cpb s5p_mfc_buf_size 0 33560 NULL
159096 +enable_so_nfc_llcp_build_sdreq_tlv_fndecl_33563 nfc_llcp_build_sdreq_tlv fndecl 3 33563 NULL
159097 +enable_so_snd_rawmidi_kernel_write1_fndecl_33564 snd_rawmidi_kernel_write1 fndecl 4-0 33564 NULL
159098 +enable_so_snb_pci2phy_map_init_fndecl_33565 snb_pci2phy_map_init fndecl 1 33565 NULL
159099 +enable_so_recv_buf_size_netvsc_device_33569 recv_buf_size netvsc_device 0 33569 NULL nohasharray
159100 +enable_so_qlen_status_event_list_33569 qlen status_event_list 0 33569 &enable_so_recv_buf_size_netvsc_device_33569
159101 +enable_so_ext3_xattr_ibody_get_fndecl_33571 ext3_xattr_ibody_get fndecl 0 33571 NULL
159102 +enable_so_source_irq_acpi_madt_interrupt_override_33574 source_irq acpi_madt_interrupt_override 0 33574 NULL
159103 +enable_so_lcm_fndecl_33580 lcm fndecl 0-2-1 33580 NULL nohasharray
159104 +enable_so_self_dnode_33580 self dnode 0 33580 &enable_so_lcm_fndecl_33580 nohasharray
159105 +enable_so_batadv_tt_update_changes_fndecl_33580 batadv_tt_update_changes fndecl 3 33580 &enable_so_self_dnode_33580
159106 +enable_so_debug_debug3_read_fndecl_33581 debug_debug3_read fndecl 3 33581 NULL
159107 +enable_so_btrfs_direct_IO_fndecl_33586 btrfs_direct_IO fndecl 3 33586 NULL
159108 +enable_so_i2c_readregs_fndecl_33590 i2c_readregs fndecl 5 33590 NULL
159109 +enable_so_hci_mgmt_cmd_fndecl_33591 hci_mgmt_cmd fndecl 4 33591 NULL
159110 +enable_so_num_ae_requests_vardecl_33594 num_ae_requests vardecl 0 33594 NULL
159111 +enable_so_lde_namelen_lu_dirent_33595 lde_namelen lu_dirent 0 33595 NULL
159112 +enable_so_fsl_spi_bufs_fndecl_33599 fsl_spi_bufs fndecl 0 33599 NULL
159113 +enable_so_max_header_size_iriap_cb_33603 max_header_size iriap_cb 0 33603 NULL
159114 +enable_so___kfifo_out_fndecl_33612 __kfifo_out fndecl 0-3 33612 NULL nohasharray
159115 +enable_so_drm_prime_pages_to_sg_fndecl_33612 drm_prime_pages_to_sg fndecl 2 33612 &enable_so___kfifo_out_fndecl_33612
159116 +enable_so_hfsplus_find_cat_fndecl_33616 hfsplus_find_cat fndecl 0 33616 NULL nohasharray
159117 +enable_so_names_size_ceph_inode_xattrs_info_33616 names_size ceph_inode_xattrs_info 0 33616 &enable_so_hfsplus_find_cat_fndecl_33616
159118 +enable_so_lpfc_gen_req_fndecl_33617 lpfc_gen_req fndecl 8 33617 NULL
159119 +enable_so_num_retune_mobile_texts_wm8994_priv_33620 num_retune_mobile_texts wm8994_priv 0 33620 NULL
159120 +enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 rc_framerate_num s5p_mfc_enc_params 0 33630 NULL nohasharray
159121 +enable_so_nf_getsockopt_fndecl_33630 nf_getsockopt fndecl 0 33630 &enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 nohasharray
159122 +enable_so_scif_setup_qp_accept_fndecl_33630 scif_setup_qp_accept fndecl 4 33630 &enable_so_nf_getsockopt_fndecl_33630
159123 +enable_so_data_size_kretprobe_33633 data_size kretprobe 0 33633 NULL
159124 +enable_so_find_smallest_section_pfn_fndecl_33641 find_smallest_section_pfn fndecl 0-3 33641 NULL
159125 +enable_so_memblock_size_vxge_hw_mempool_33647 memblock_size vxge_hw_mempool 0 33647 NULL
159126 +enable_so_size_dma_buf_33648 size dma_buf 0 33648 NULL nohasharray
159127 +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
159128 +enable_so_check_header_fndecl_33649 check_header fndecl 2 33649 NULL
159129 +enable_so_tool_peer_spad_write_fndecl_33652 tool_peer_spad_write fndecl 3 33652 NULL
159130 +enable_so_journal_init_revoke_fndecl_33654 journal_init_revoke fndecl 2 33654 NULL
159131 +enable_so_savage_init_hw_fndecl_33678 savage_init_hw fndecl 0 33678 NULL
159132 +enable_so_il4965_rs_switch_to_mimo2_fndecl_33682 il4965_rs_switch_to_mimo2 fndecl 6 33682 NULL
159133 +enable_so_data_size_vxge_rx_priv_33684 data_size vxge_rx_priv 0 33684 NULL
159134 +enable_so_mb_find_order_for_block_fndecl_33691 mb_find_order_for_block fndecl 0 33691 NULL
159135 +enable_so_ide_cdrom_probe_capabilities_fndecl_33699 ide_cdrom_probe_capabilities fndecl 0 33699 NULL
159136 +enable_so_alignment_offset_queue_limits_33701 alignment_offset queue_limits 0 33701 NULL
159137 +enable_so_jffs2_sum_write_data_fndecl_33705 jffs2_sum_write_data fndecl 3-4 33705 NULL nohasharray
159138 +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
159139 +enable_so_calculate_memsize_fndecl_33706 calculate_memsize fndecl 0-5-3-4-2-1 33706 NULL
159140 +enable_so_network_header_sk_buff_33708 network_header sk_buff 0 33708 NULL
159141 +enable_so_out_phase_usb_stream_kernel_33720 out_phase usb_stream_kernel 0 33720 NULL nohasharray
159142 +enable_so_vlsi_alloc_ring_fndecl_33720 vlsi_alloc_ring fndecl 3-4 33720 &enable_so_out_phase_usb_stream_kernel_33720
159143 +enable_so_rx_rate_brcmf_sta_info_le_33727 rx_rate brcmf_sta_info_le 0 33727 NULL
159144 +enable_so_video_height_sis_video_info_33732 video_height sis_video_info 0 33732 NULL nohasharray
159145 +enable_so_atwrite_submit_fndecl_33732 atwrite_submit fndecl 3 33732 &enable_so_video_height_sis_video_info_33732
159146 +enable_so_hpfs_bmap_fndecl_33733 hpfs_bmap fndecl 2-0 33733 NULL
159147 +enable_so_xres_fb_var_screeninfo_33734 xres fb_var_screeninfo 0 33734 NULL
159148 +enable_so_ovl_copy_up_data_fndecl_33738 ovl_copy_up_data fndecl 3 33738 NULL
159149 +enable_so_stub_chips_nr_vardecl_i2c_stub_c_33739 stub_chips_nr vardecl_i2c-stub.c 0 33739 NULL
159150 +enable_so_raw_cmd_copyout_fndecl_33741 raw_cmd_copyout fndecl 0 33741 NULL
159151 +enable_so_xfs_buf_read_map_fndecl_33742 xfs_buf_read_map fndecl 3 33742 NULL
159152 +enable_so_aircable_process_packet_fndecl_33744 aircable_process_packet fndecl 4 33744 NULL
159153 +enable_so_lengthComponentIdent_pathComponent_33758 lengthComponentIdent pathComponent 0 33758 NULL
159154 +enable_so_avr_ack_ptr_dccp_ackvec_record_33759 avr_ack_ptr dccp_ackvec_record 0 33759 NULL
159155 +enable_so_cim_la_size_adapter_params_33761 cim_la_size adapter_params 0 33761 NULL
159156 +enable_so_efx_farch_dimension_resources_fndecl_33764 efx_farch_dimension_resources fndecl 2 33764 NULL
159157 +enable_so_default_bpp_vardecl_sm501fb_c_33765 default_bpp vardecl_sm501fb.c 0 33765 NULL
159158 +enable_so_wmi_send_fndecl_33768 wmi_send fndecl 4 33768 NULL
159159 +enable_so_f_height_gsc_frame_33772 f_height gsc_frame 0 33772 NULL
159160 +enable_so_cx2341x_ctrl_new_std_fndecl_33782 cx2341x_ctrl_new_std fndecl 4-3-6 33782 NULL
159161 +enable_so_max_gpios_rdc321x_gpio_pdata_33783 max_gpios rdc321x_gpio_pdata 0 33783 NULL
159162 +enable_so_pcmcia_replace_cis_fndecl_33785 pcmcia_replace_cis fndecl 3 33785 NULL nohasharray
159163 +enable_so_fm_mapped_extents_ll_user_fiemap_33785 fm_mapped_extents ll_user_fiemap 0 33785 &enable_so_pcmcia_replace_cis_fndecl_33785
159164 +enable_so_sca3000_read_data_fndecl_33787 sca3000_read_data fndecl 4 33787 NULL
159165 +enable_so_nv30_fb_tile_comp_fndecl_33788 nv30_fb_tile_comp fndecl 3 33788 NULL
159166 +enable_so_sis190_try_rx_copy_fndecl_33790 sis190_try_rx_copy fndecl 3 33790 NULL
159167 +enable_so_sd_write_data_fndecl_33792 sd_write_data fndecl 5 33792 NULL
159168 +enable_so_icv_truncbits_xfrm_algo_auth_info_33798 icv_truncbits xfrm_algo_auth_info 0 33798 NULL
159169 +enable_so_edt_ft5x06_register_read_fndecl_33803 edt_ft5x06_register_read fndecl 0 33803 NULL
159170 +enable_so_b43legacy_plcp_get_bitrate_idx_ofdm_fndecl_33816 b43legacy_plcp_get_bitrate_idx_ofdm fndecl 0 33816 NULL
159171 +enable_so_custom_length_iscsi_stats_33819 custom_length iscsi_stats 0 33819 NULL
159172 +enable_so_snd_find_free_minor_fndecl_33820 snd_find_free_minor fndecl 0 33820 NULL
159173 +enable_so_dn_ide_drive_s_33823 dn ide_drive_s 0 33823 NULL
159174 +enable_so_SyS_keyctl_fndecl_33825 SyS_keyctl fndecl 4 33825 NULL
159175 +enable_so_mult_usb_ep_33831 mult usb_ep 0 33831 NULL
159176 +enable_so_selinux_setprocattr_fndecl_33832 selinux_setprocattr fndecl 4 33832 NULL
159177 +enable_so_blk_size_ide_tape_obj_33837 blk_size ide_tape_obj 0 33837 NULL
159178 +enable_so_targetsize_xt_target_33840 targetsize xt_target 0 33840 NULL
159179 +enable_so_depth_drm_vmw_size_33842 depth drm_vmw_size 0 33842 NULL
159180 +enable_so_mgmt_cmd_complete_fndecl_33845 mgmt_cmd_complete fndecl 6 33845 NULL
159181 +enable_so_add_partition_fndecl_33847 add_partition fndecl 3-4-2 33847 NULL
159182 +enable_so_sctp_addto_chunk_fixed_fndecl_33853 sctp_addto_chunk_fixed fndecl 2 33853 NULL
159183 +enable_so_xfs_qm_scall_trunc_qfile_fndecl_33855 xfs_qm_scall_trunc_qfile fndecl 2 33855 NULL
159184 +enable_so_rx_buf_total_size__mgslpc_info_33856 rx_buf_total_size _mgslpc_info 0 33856 NULL
159185 +enable_so_dvb_dmxdev_set_buffer_size_fndecl_33864 dvb_dmxdev_set_buffer_size fndecl 2 33864 NULL
159186 +enable_so_root_adfs_discrecord_33866 root adfs_discrecord 0 33866 NULL nohasharray
159187 +enable_so_h5_link_control_fndecl_33866 h5_link_control fndecl 3 33866 &enable_so_root_adfs_discrecord_33866
159188 +enable_so_edge_tty_recv_fndecl_33877 edge_tty_recv fndecl 3 33877 NULL
159189 +enable_so_tolen_nfs_linkargs_33881 tolen nfs_linkargs 0 33881 NULL nohasharray
159190 +enable_so_walk_system_ram_res_fndecl_33881 walk_system_ram_res fndecl 2-1 33881 &enable_so_tolen_nfs_linkargs_33881
159191 +enable_so_len_gsm_control_33882 len gsm_control 0 33882 NULL
159192 +enable_so_reiserfs_xattr_get_fndecl_33887 reiserfs_xattr_get fndecl 0 33887 NULL nohasharray
159193 +enable_so_pktgen_if_write_fndecl_33887 pktgen_if_write fndecl 3 33887 &enable_so_reiserfs_xattr_get_fndecl_33887
159194 +enable_so_il_dbgfs_tx_queue_read_fndecl_33895 il_dbgfs_tx_queue_read fndecl 3 33895 NULL
159195 +enable_so_src_len_ccp_xts_aes_engine_33899 src_len ccp_xts_aes_engine 0 33899 NULL
159196 +enable_so_init_stripe_fndecl_33902 init_stripe fndecl 2 33902 NULL nohasharray
159197 +enable_so_direct2indirect_fndecl_33902 direct2indirect fndecl 5 33902 &enable_so_init_stripe_fndecl_33902
159198 +enable_so_xfs_bmbt_maxrecs_fndecl_33906 xfs_bmbt_maxrecs fndecl 0-2 33906 NULL
159199 +enable_so__install_special_mapping_fndecl_33907 _install_special_mapping fndecl 3-2 33907 NULL
159200 +enable_so_rx_desc_count_xgbe_prv_data_33915 rx_desc_count xgbe_prv_data 0 33915 NULL
159201 +enable_so_lpfc_idiag_queinfo_read_fndecl_33917 lpfc_idiag_queinfo_read fndecl 3 33917 NULL
159202 +enable_so_w83627hf_device_add_fndecl_33919 w83627hf_device_add fndecl 1 33919 NULL
159203 +enable_so_wil_vring_alloc_skb_fndecl_33924 wil_vring_alloc_skb fndecl 4 33924 NULL
159204 +enable_so_size_cmdline_vardecl_dma_contiguous_c_33925 size_cmdline vardecl_dma-contiguous.c 0 33925 NULL
159205 +enable_so_genl_allocate_reserve_groups_fndecl_33930 genl_allocate_reserve_groups fndecl 1 33930 NULL
159206 +enable_so_max_channels_snd_midi_channel_set_33931 max_channels snd_midi_channel_set 0 33931 NULL
159207 +enable_so_numa_add_memblk_to_fndecl_33934 numa_add_memblk_to fndecl 2-3 33934 NULL nohasharray
159208 +enable_so_isl1208_i2c_set_regs_fndecl_33934 isl1208_i2c_set_regs fndecl 4 33934 &enable_so_numa_add_memblk_to_fndecl_33934 nohasharray
159209 +enable_so_tcp_push_fndecl_33934 tcp_push fndecl 3 33934 &enable_so_isl1208_i2c_set_regs_fndecl_33934
159210 +enable_so_pci_scan_device_fndecl_33935 pci_scan_device fndecl 2 33935 NULL
159211 +enable_so_iwl_dbgfs_plcp_delta_write_fndecl_33937 iwl_dbgfs_plcp_delta_write fndecl 3 33937 NULL
159212 +enable_so_get_info_fndecl_33938 get_info fndecl 3 33938 NULL
159213 +enable_so_bulk_in_usbatm_driver_33939 bulk_in usbatm_driver 0 33939 NULL
159214 +enable_so_wMaxPacketSize_usb_endpoint_descriptor_33942 wMaxPacketSize usb_endpoint_descriptor 0 33942 NULL
159215 +enable_so_ext4_alloc_file_blocks_fndecl_33946 ext4_alloc_file_blocks fndecl 2-3-4 33946 NULL
159216 +enable_so_i_first_extent_iso_inode_info_33947 i_first_extent iso_inode_info 0 33947 NULL
159217 +enable_so_num_rsp_hci_inquiry_req_33953 num_rsp hci_inquiry_req 0 33953 NULL
159218 +enable_so_lpfc_sg_seg_cnt_vardecl_lpfc_attr_c_33956 lpfc_sg_seg_cnt vardecl_lpfc_attr.c 0 33956 NULL
159219 +enable_so_ext4_get_block_fndecl_33967 ext4_get_block fndecl 2 33967 NULL
159220 +enable_so_nfc_hci_send_cmd_fndecl_33969 nfc_hci_send_cmd fndecl 5 33969 NULL
159221 +enable_so_ocfs2_lock_refcount_tree_fndecl_33972 ocfs2_lock_refcount_tree fndecl 2 33972 NULL nohasharray
159222 +enable_so_mtdswap_init_fndecl_33972 mtdswap_init fndecl 2 33972 &enable_so_ocfs2_lock_refcount_tree_fndecl_33972
159223 +enable_so_pm8001_store_update_fw_fndecl_33975 pm8001_store_update_fw fndecl 4 33975 NULL
159224 +enable_so_max_indirect_segments_blkfront_info_33976 max_indirect_segments blkfront_info 0 33976 NULL
159225 +enable_so_cwarn_cm4000_dev_33978 cwarn cm4000_dev 0 33978 NULL
159226 +enable_so_buf_len_wmi_tlv_mgmt_rx_ev_33979 buf_len wmi_tlv_mgmt_rx_ev 0 33979 NULL
159227 +enable_so_usbat_bulk_write_fndecl_33983 usbat_bulk_write fndecl 3-4 33983 NULL
159228 +enable_so_unit_off_ore_striping_info_33989 unit_off ore_striping_info 0 33989 NULL
159229 +enable_so_sectorsize_scrub_ctx_33993 sectorsize scrub_ctx 0 33993 NULL
159230 +enable_so_num_ioim_reqs_bfa_iocfc_fwcfg_s_33994 num_ioim_reqs bfa_iocfc_fwcfg_s 0 33994 NULL nohasharray
159231 +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
159232 +enable_so_count_xfs_attr_sf_hdr_33996 count xfs_attr_sf_hdr 0 33996 NULL
159233 +enable_so_batadv_tvlv_unicast_send_fndecl_34005 batadv_tvlv_unicast_send fndecl 7 34005 NULL
159234 +enable_so_rxextrahdrroom_dma_info_34007 rxextrahdrroom dma_info 0 34007 NULL
159235 +enable_so_ctxtcnt_qib_devdata_34012 ctxtcnt qib_devdata 0 34012 NULL
159236 +enable_so_periodic_size_ehci_hcd_34013 periodic_size ehci_hcd 0 34013 NULL
159237 +enable_so_wl12xx_spi_raw_read_fndecl_34014 wl12xx_spi_raw_read fndecl 4 34014 NULL nohasharray
159238 +enable_so_set_local_name_fndecl_34014 set_local_name fndecl 4 34014 &enable_so_wl12xx_spi_raw_read_fndecl_34014
159239 +enable_so_parent_len_fndecl_34020 parent_len fndecl 0 34020 NULL nohasharray
159240 +enable_so_uwb_rc_neh_grok_event_fndecl_34020 uwb_rc_neh_grok_event fndecl 3 34020 &enable_so_parent_len_fndecl_34020
159241 +enable_so___kvm_write_guest_page_fndecl_34021 __kvm_write_guest_page fndecl 2-5 34021 NULL
159242 +enable_so_membase_jsm_board_34030 membase jsm_board 0 34030 NULL
159243 +enable_so_size_edac_mc_layer_34031 size edac_mc_layer 0 34031 NULL nohasharray
159244 +enable_so_b_cnt_chip_select_34031 b_cnt chip_select 0 34031 &enable_so_size_edac_mc_layer_34031
159245 +enable_so_strlen_fndecl_34033 strlen fndecl 0 34033 NULL
159246 +enable_so_blksize_sdio_cis_34036 blksize sdio_cis 0 34036 NULL
159247 +enable_so_sector_number_blkif_request_discard_34039 sector_number blkif_request_discard 0 34039 NULL nohasharray
159248 +enable_so_wil_addba_tx_request_fndecl_34039 wil_addba_tx_request fndecl 3 34039 &enable_so_sector_number_blkif_request_discard_34039
159249 +enable_so_req_bio_endio_fndecl_34041 req_bio_endio fndecl 3 34041 NULL nohasharray
159250 +enable_so_conf_read_fndecl_34041 conf_read fndecl 3 34041 &enable_so_req_bio_endio_fndecl_34041
159251 +enable_so_len_hdlcdrv_hdlcrx_34043 len hdlcdrv_hdlcrx 0 34043 NULL
159252 +enable_so_dma_size_nx_host_rds_ring_34047 dma_size nx_host_rds_ring 0 34047 NULL
159253 +enable_so_ide_do_setfeature_fndecl_34050 ide_do_setfeature fndecl 3 34050 NULL
159254 +enable_so_sys_mmap_pgoff_fndecl_34056 sys_mmap_pgoff fndecl 2 34056 NULL
159255 +enable_so_ib_uverbs_create_xsrq_fndecl_34064 ib_uverbs_create_xsrq fndecl 3 34064 NULL
159256 +enable_so_lov_get_stripecnt_fndecl_34066 lov_get_stripecnt fndecl 0-3 34066 NULL
159257 +enable_so_gsm_control_modem_fndecl_34068 gsm_control_modem fndecl 3 34068 NULL
159258 +enable_so_wb_bytes_nfs_page_34071 wb_bytes nfs_page 0 34071 NULL nohasharray
159259 +enable_so_opt_val_tcp_repair_opt_34071 opt_val tcp_repair_opt 0 34071 &enable_so_wb_bytes_nfs_page_34071
159260 +enable_so_qp_alloc_guest_work_fndecl_34074 qp_alloc_guest_work fndecl 5-3 34074 NULL nohasharray
159261 +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
159262 +enable_so_isert_build_rdma_wr_fndecl_34085 isert_build_rdma_wr fndecl 5-6 34085 NULL
159263 +enable_so_rec_len_ext2_dir_entry_2_34086 rec_len ext2_dir_entry_2 0 34086 NULL nohasharray
159264 +enable_so_get_info_tcp_congestion_ops_34086 get_info tcp_congestion_ops 0 34086 &enable_so_rec_len_ext2_dir_entry_2_34086
159265 +enable_so_mst_node_alsz_ubifs_info_34087 mst_node_alsz ubifs_info 0 34087 NULL
159266 +enable_so_LFBsize_sis_video_info_34089 LFBsize sis_video_info 0 34089 NULL
159267 +enable_so___memblock_alloc_base_fndecl_34092 __memblock_alloc_base fndecl 0-2-1-3 34092 NULL
159268 +enable_so_dccm_len_iwl_cfg_34095 dccm_len iwl_cfg 0 34095 NULL
159269 +enable_so_max_frame_ft_sess_34098 max_frame ft_sess 0 34098 NULL nohasharray
159270 +enable_so_compat_SyS_mbind_fndecl_34098 compat_SyS_mbind fndecl 5 34098 &enable_so_max_frame_ft_sess_34098
159271 +enable_so_c_chmask_f_uac2_opts_34103 c_chmask f_uac2_opts 0 34103 NULL
159272 +enable_so_vme_user_read_fndecl_34105 vme_user_read fndecl 3 34105 NULL
159273 +enable_so_reg_read_fndecl_34106 reg_read fndecl 0 34106 NULL
159274 +enable_so_do_shmat_fndecl_34107 do_shmat fndecl 5 34107 NULL
159275 +enable_so___wa_xfer_setup_sizes_fndecl_34109 __wa_xfer_setup_sizes fndecl 0 34109 NULL
159276 +enable_so_lcd_right_margin_atyfb_par_34110 lcd_right_margin atyfb_par 0 34110 NULL
159277 +enable_so_reserved_eq_mlx4_func_cap_34117 reserved_eq mlx4_func_cap 0 34117 NULL
159278 +enable_so_chunk_size_lirc_driver_34118 chunk_size lirc_driver 0 34118 NULL
159279 +enable_so_qxl_alloc_bo_reserved_fndecl_34119 qxl_alloc_bo_reserved fndecl 3 34119 NULL
159280 +enable_so_nf_nat_ipv4_manip_pkt_fndecl_34120 nf_nat_ipv4_manip_pkt fndecl 2 34120 NULL
159281 +enable_so_cw1200_sdio_align_size_fndecl_34124 cw1200_sdio_align_size fndecl 2 34124 NULL nohasharray
159282 +enable_so_size_qlcnic_fw_dump_34124 size qlcnic_fw_dump 0 34124 &enable_so_cw1200_sdio_align_size_fndecl_34124
159283 +enable_so_nfs_vmtruncate_fndecl_34126 nfs_vmtruncate fndecl 2 34126 NULL
159284 +enable_so_do_command_fndecl_34128 do_command fndecl 0 34128 NULL
159285 +enable_so_digestsize_hash_tfm_34135 digestsize hash_tfm 0 34135 NULL
159286 +enable_so_dst_width_snd_pcm_plugin_34144 dst_width snd_pcm_plugin 0 34144 NULL
159287 +enable_so_substream_count_snd_pcm_str_34149 substream_count snd_pcm_str 0 34149 NULL
159288 +enable_so_object_size_kmem_cache_34151 object_size kmem_cache 0 34151 NULL
159289 +enable_so_vmax_packet_size_pwc_device_34153 vmax_packet_size pwc_device 0 34153 NULL
159290 +enable_so_sky2_change_mtu_fndecl_34157 sky2_change_mtu fndecl 2 34157 NULL nohasharray
159291 +enable_so_data_size_dm_ulog_request_34157 data_size dm_ulog_request 0 34157 &enable_so_sky2_change_mtu_fndecl_34157
159292 +enable_so_nb_if_sdio_packet_34158 nb if_sdio_packet 0 34158 NULL nohasharray
159293 +enable_so_usb_pipe_ua101_stream_34158 usb_pipe ua101_stream 0 34158 &enable_so_nb_if_sdio_packet_34158 nohasharray
159294 +enable_so_max_requests_rpcrdma_create_data_internal_34158 max_requests rpcrdma_create_data_internal 0 34158 &enable_so_usb_pipe_ua101_stream_34158
159295 +enable_so_krb5_decrypt_fndecl_34166 krb5_decrypt fndecl 5 34166 NULL
159296 +enable_so_save_mr_fndecl_34167 save_mr fndecl 4 34167 NULL
159297 +enable_so_blockmask_sddr55_card_info_34172 blockmask sddr55_card_info 0 34172 NULL nohasharray
159298 +enable_so_iwl_dbgfs_plcp_delta_read_fndecl_34172 iwl_dbgfs_plcp_delta_read fndecl 3 34172 &enable_so_blockmask_sddr55_card_info_34172
159299 +enable_so_osst_seek_sector_fndecl_34173 osst_seek_sector fndecl 3 34173 NULL
159300 +enable_so_buffers_pipe_inode_info_34187 buffers pipe_inode_info 0 34187 NULL
159301 +enable_so_sys_recv_fndecl_34188 sys_recv fndecl 3 34188 NULL
159302 +enable_so_new_oblock_dm_cache_migration_34189 new_oblock dm_cache_migration 0 34189 NULL
159303 +enable_so_si476x_radio_read_rds_blckcnt_blob_fndecl_34192 si476x_radio_read_rds_blckcnt_blob fndecl 3 34192 NULL
159304 +enable_so_length_dm_target_spec_34193 length dm_target_spec 0 34193 NULL
159305 +enable_so_nouveau_cli_create_fndecl_34194 nouveau_cli_create fndecl 3 34194 NULL
159306 +enable_so_map_length_scrub_recover_34196 map_length scrub_recover 0 34196 NULL
159307 +enable_so_write_room_tty_operations_34200 write_room tty_operations 0 34200 NULL
159308 +enable_so_cxgb4vf_change_mtu_fndecl_34204 cxgb4vf_change_mtu fndecl 2 34204 NULL
159309 +enable_so_cx23888_ir_rx_read_fndecl_34210 cx23888_ir_rx_read fndecl 3 34210 NULL
159310 +enable_so_xen_evtchn_max_channels_fndecl_34213 xen_evtchn_max_channels fndecl 0 34213 NULL
159311 +enable_so_snd_pcm_lib_write_fndecl_34216 snd_pcm_lib_write fndecl 0 34216 NULL
159312 +enable_so_new_sync_write_fndecl_34217 new_sync_write fndecl 0-3 34217 NULL
159313 +enable_so_total_out_z_stream_s_34221 total_out z_stream_s 0 34221 NULL
159314 +enable_so_ext4_expand_extra_isize_fndecl_34225 ext4_expand_extra_isize fndecl 2 34225 NULL
159315 +enable_so_ath6kl_wmi_simple_cmd_fndecl_34229 ath6kl_wmi_simple_cmd fndecl 2 34229 NULL nohasharray
159316 +enable_so___vxge_hw_channel_allocate_fndecl_34229 __vxge_hw_channel_allocate fndecl 3 34229 &enable_so_ath6kl_wmi_simple_cmd_fndecl_34229
159317 +enable_so_isdnhdlc_decode_fndecl_34233 isdnhdlc_decode fndecl 0 34233 NULL nohasharray
159318 +enable_so_m_len_s_mbuf_34233 m_len s_mbuf 0 34233 &enable_so_isdnhdlc_decode_fndecl_34233
159319 +enable_so_max_devs_supported_ipr_ioa_cfg_34240 max_devs_supported ipr_ioa_cfg 0 34240 NULL
159320 +enable_so_cfpkt_pad_trail_fndecl_34244 cfpkt_pad_trail fndecl 2 34244 NULL nohasharray
159321 +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
159322 +enable_so_agno_xfs_extent_busy_34245 agno xfs_extent_busy 0 34245 NULL
159323 +enable_so___vmx_complete_interrupts_fndecl_34246 __vmx_complete_interrupts fndecl 2 34246 NULL
159324 +enable_so_rss_cpus_vardecl_efx_c_34253 rss_cpus vardecl_efx.c 0 34253 NULL nohasharray
159325 +enable_so_pktgen_finalize_skb_fndecl_34253 pktgen_finalize_skb fndecl 3 34253 &enable_so_rss_cpus_vardecl_efx_c_34253
159326 +enable_so___reserve_region_with_split_fndecl_34259 __reserve_region_with_split fndecl 3-2 34259 NULL
159327 +enable_so_status_tulip_rx_desc_34260 status tulip_rx_desc 0 34260 NULL
159328 +enable_so_MaxTransactSize_smb2_negotiate_rsp_34261 MaxTransactSize smb2_negotiate_rsp 0 34261 NULL
159329 +enable_so_count_igbvf_ring_34264 count igbvf_ring 0 34264 NULL
159330 +enable_so_reg_read_smsc911x_ops_34274 reg_read smsc911x_ops 0 34274 NULL
159331 +enable_so_max_segs_mmc_host_34276 max_segs mmc_host 0 34276 NULL nohasharray
159332 +enable_so_tty_port_register_device_fndecl_34276 tty_port_register_device fndecl 3 34276 &enable_so_max_segs_mmc_host_34276
159333 +enable_so_ea_get_fndecl_34289 ea_get fndecl 3 34289 NULL nohasharray
159334 +enable_so_ocfs2_group_from_res_fndecl_34289 ocfs2_group_from_res fndecl 0 34289 &enable_so_ea_get_fndecl_34289
159335 +enable_so_cpu_msix_table_sz_MPT3SAS_ADAPTER_34295 cpu_msix_table_sz MPT3SAS_ADAPTER 0 34295 NULL
159336 +enable_so_skb_coalesce_rx_frag_fndecl_34296 skb_coalesce_rx_frag fndecl 3-4 34296 NULL
159337 +enable_so_p1_FS_QENTRY_34311 p1 FS_QENTRY 0 34311 NULL
159338 +enable_so_usb6fire_pcm_init_urb_fndecl_34318 usb6fire_pcm_init_urb fndecl 4 34318 NULL
159339 +enable_so_acm_tty_write_fndecl_34323 acm_tty_write fndecl 3 34323 NULL
159340 +enable_so_quirk_strict_duplicate_filter_read_fndecl_34330 quirk_strict_duplicate_filter_read fndecl 3 34330 NULL
159341 +enable_so_kvm_cpu_get_extint_fndecl_34341 kvm_cpu_get_extint fndecl 0 34341 NULL
159342 +enable_so_usb_alloc_stream_buffers_fndecl_34344 usb_alloc_stream_buffers fndecl 3 34344 NULL
159343 +enable_so_ib_ipath_max_cqes_vardecl_34359 ib_ipath_max_cqes vardecl 0 34359 NULL
159344 +enable_so_blkdev_minors_vardecl_dev_c_34365 blkdev_minors vardecl_dev.c 0 34365 NULL
159345 +enable_so_write_file_frameerrors_fndecl_34370 write_file_frameerrors fndecl 3 34370 NULL
159346 +enable_so_get_bad_peb_limit_fndecl_34374 get_bad_peb_limit fndecl 0-2 34374 NULL
159347 +enable_so_bytes_to_read_mpt2_diag_read_buffer_34380 bytes_to_read mpt2_diag_read_buffer 0 34380 NULL
159348 +enable_so_r_minimode_34384 r minimode 0 34384 NULL
159349 +enable_so_pfn_mthca_uar_34385 pfn mthca_uar 0 34385 NULL
159350 +enable_so_vd_blocknr_nilfs_vdesc_34386 vd_blocknr nilfs_vdesc 0 34386 NULL
159351 +enable_so_max_sge_rds_iw_device_34387 max_sge rds_iw_device 0 34387 NULL nohasharray
159352 +enable_so_type_nvkm_mm_node_34387 type nvkm_mm_node 0 34387 &enable_so_max_sge_rds_iw_device_34387
159353 +enable_so_sel_read_handle_status_fndecl_34392 sel_read_handle_status fndecl 3 34392 NULL
159354 +enable_so_ath6kl_wmi_set_inact_period_fndecl_34398 ath6kl_wmi_set_inact_period fndecl 2 34398 NULL
159355 +enable_so_min_scaled_height_bttv_crop_34408 min_scaled_height bttv_crop 0 34408 NULL
159356 +enable_so___i2c_transfer_fndecl_34417 __i2c_transfer fndecl 0 34417 NULL
159357 +enable_so_w_minimode_34418 w minimode 0 34418 NULL
159358 +enable_so_rawv6_setsockopt_fndecl_34422 rawv6_setsockopt fndecl 5 34422 NULL
159359 +enable_so_fragsize_inet_cork_34425 fragsize inet_cork 0 34425 NULL
159360 +enable_so_vs_xdrsize_svc_version_34426 vs_xdrsize svc_version 0 34426 NULL
159361 +enable_so_meta_ino_num_f2fs_sb_info_34435 meta_ino_num f2fs_sb_info 0 34435 NULL
159362 +enable_so_ctrl_set_res_ver_fndecl_34447 ctrl_set_res_ver fndecl 3 34447 NULL
159363 +enable_so_ath9k_dump_legacy_btcoex_fndecl_34449 ath9k_dump_legacy_btcoex fndecl 0 34449 NULL nohasharray
159364 +enable_so_window_len_regmap_range_node_34449 window_len regmap_range_node 0 34449 &enable_so_ath9k_dump_legacy_btcoex_fndecl_34449
159365 +enable_so_copy_size_vmxnet3_tx_ctx_34453 copy_size vmxnet3_tx_ctx 0 34453 NULL
159366 +enable_so_exceptions_per_area_pstore_34460 exceptions_per_area pstore 0 34460 NULL
159367 +enable_so_offsets_size_binder_transaction_data_34461 offsets_size binder_transaction_data 0 34461 NULL
159368 +enable_so_num_regs_regmap_irq_chip_34465 num_regs regmap_irq_chip 0 34465 NULL
159369 +enable_so_fd_copyin_fndecl_34468 fd_copyin fndecl 3 34468 NULL
159370 +enable_so_MaxMSIxVectors_mpt2sas_facts_34470 MaxMSIxVectors mpt2sas_facts 0 34470 NULL
159371 +enable_so_nv_device_resource_len_fndecl_34472 nv_device_resource_len fndecl 0 34472 NULL
159372 +enable_so_MaxCommands_DAC960_V1_Enquiry_34475 MaxCommands DAC960_V1_Enquiry 0 34475 NULL
159373 +enable_so_start_btrfs_ordered_extent_34479 start btrfs_ordered_extent 0 34479 NULL
159374 +enable_so_num_rx_queues_net_device_34480 num_rx_queues net_device 0 34480 NULL
159375 +enable_so_i2c_hid_command_fndecl_34481 i2c_hid_command fndecl 4 34481 NULL
159376 +enable_so_ocfs2_find_xe_in_bucket_fndecl_34483 ocfs2_find_xe_in_bucket fndecl 0 34483 NULL
159377 +enable_so_cp210x_get_config_fndecl_34486 cp210x_get_config fndecl 4 34486 NULL
159378 +enable_so_dma_bd_table_34490 dma bd_table 0 34490 NULL
159379 +enable_so_do_ipt_set_ctl_fndecl_34493 do_ipt_set_ctl fndecl 4 34493 NULL
159380 +enable_so_acpi_ex_get_serial_access_length_fndecl_34496 acpi_ex_get_serial_access_length fndecl 0-2 34496 NULL
159381 +enable_so_il4965_ucode_general_stats_read_fndecl_34502 il4965_ucode_general_stats_read fndecl 3 34502 NULL
159382 +enable_so_bf_mcs_wmi_notify_req_done_event_34509 bf_mcs wmi_notify_req_done_event 0 34509 NULL
159383 +enable_so_buf_len_rx_sci_port_34512 buf_len_rx sci_port 0 34512 NULL
159384 +enable_so_count_res_proc_context_34514 count res_proc_context 0 34514 NULL
159385 +enable_so_clk_enable_fndecl_34522 clk_enable fndecl 0 34522 NULL
159386 +enable_so_overflow_maj_vardecl_user_mad_c_34524 overflow_maj vardecl_user_mad.c 0 34524 NULL
159387 +enable_so_srp_free_req_fndecl_34531 srp_free_req fndecl 4 34531 NULL
159388 +enable_so_SavagePanelHeight_savagefb_par_34532 SavagePanelHeight savagefb_par 0 34532 NULL nohasharray
159389 +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
159390 +enable_so_speakup_file_write_fndecl_34533 speakup_file_write fndecl 3 34533 NULL
159391 +enable_so_track_pfn_remap_fndecl_34534 track_pfn_remap fndecl 3-5 34534 NULL
159392 +enable_so_resid_sg_io_hdr_34541 resid sg_io_hdr 0 34541 NULL
159393 +enable_so_host_size_scsi_transport_template_34551 host_size scsi_transport_template 0 34551 NULL
159394 +enable_so_dvb_aplay_fndecl_34555 dvb_aplay fndecl 3 34555 NULL
159395 +enable_so_btmrvl_hscfgcmd_read_fndecl_34556 btmrvl_hscfgcmd_read fndecl 3 34556 NULL
159396 +enable_so_maximum_mfc_control_34558 maximum mfc_control 0 34558 NULL
159397 +enable_so_maxpacket_limit_usb_ep_34566 maxpacket_limit usb_ep 0 34566 NULL
159398 +enable_so_rx_ring_num_config_param_34571 rx_ring_num config_param 0 34571 NULL
159399 +enable_so_sb16_copy_from_user_fndecl_34575 sb16_copy_from_user fndecl 10-7-6 34575 NULL
159400 +enable_so_blkno_range2trim_34581 blkno range2trim 0 34581 NULL
159401 +enable_so_inum_ubifs_dent_node_34584 inum ubifs_dent_node 0 34584 NULL
159402 +enable_so_blk_queue_alignment_offset_fndecl_34591 blk_queue_alignment_offset fndecl 2 34591 NULL
159403 +enable_so_hcd_alloc_coherent_fndecl_34597 hcd_alloc_coherent fndecl 0-5 34597 NULL
159404 +enable_so_min_resource_constraint_34598 min resource_constraint 0 34598 NULL
159405 +enable_so_shmem_setxattr_fndecl_34600 shmem_setxattr fndecl 4 34600 NULL
159406 +enable_so_ath6kl_wmi_data_hdr_add_fndecl_34601 ath6kl_wmi_data_hdr_add fndecl 8 34601 NULL
159407 +enable_so_net_default_tx_rate_ray_dev_t_34604 net_default_tx_rate ray_dev_t 0 34604 NULL nohasharray
159408 +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
159409 +enable_so___check_block_validity_fndecl_34606 __check_block_validity fndecl 0 34606 NULL
159410 +enable_so_end_shift_iwl_fw_dbg_dest_tlv_34608 end_shift iwl_fw_dbg_dest_tlv 0 34608 NULL
159411 +enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614 bcm63xx_hsspi_do_txrx fndecl 0 34614 NULL nohasharray
159412 +enable_so_fip_dlen_fip_desc_34614 fip_dlen fip_desc 0 34614 &enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614
159413 +enable_so_vram_total_vardecl_vesafb_c_34615 vram_total vardecl_vesafb.c 0 34615 NULL nohasharray
159414 +enable_so_size_vb2_vmalloc_buf_34615 size vb2_vmalloc_buf 0 34615 &enable_so_vram_total_vardecl_vesafb_c_34615
159415 +enable_so_ip_hdrlen_fndecl_34618 ip_hdrlen fndecl 0 34618 NULL
159416 +enable_so_cpu_npartitions_vardecl_linux_cpu_c_34622 cpu_npartitions vardecl_linux-cpu.c 0 34622 NULL
159417 +enable_so_pm_qos_power_read_fndecl_34624 pm_qos_power_read fndecl 3 34624 NULL
159418 +enable_so_ace_change_mtu_fndecl_34639 ace_change_mtu fndecl 2 34639 NULL
159419 +enable_so_hsc_write_fndecl_34640 hsc_write fndecl 3 34640 NULL
159420 +enable_so_idef6cpy_gru_control_block_extended_34646 idef6cpy gru_control_block_extended 0 34646 NULL
159421 +enable_so_ramdisk_store_fndecl_34654 ramdisk_store fndecl 4 34654 NULL
159422 +enable_so_uwb_est_used_vardecl_est_c_34662 uwb_est_used vardecl_est.c 0 34662 NULL
159423 +enable_so_init_evtlog_size_iwl_fw_34663 init_evtlog_size iwl_fw 0 34663 NULL
159424 +enable_so_ext4_convert_unwritten_extents_endio_fndecl_34667 ext4_convert_unwritten_extents_endio fndecl 0 34667 NULL
159425 +enable_so_num_leaves_cpu_cacheinfo_34676 num_leaves cpu_cacheinfo 0 34676 NULL
159426 +enable_so_inode_ext4_dir_entry_2_34680 inode ext4_dir_entry_2 0 34680 NULL
159427 +enable_so_pnp_add_mem_resource_fndecl_34681 pnp_add_mem_resource fndecl 3-2 34681 NULL
159428 +enable_so_offset_ethtool_eeprom_34683 offset ethtool_eeprom 0 34683 NULL
159429 +enable_so_snd_pcm_hw_param_value_min_fndecl_34686 snd_pcm_hw_param_value_min fndecl 0 34686 NULL
159430 +enable_so_bassinit_CHIPDESC_34688 bassinit CHIPDESC 0 34688 NULL nohasharray
159431 +enable_so_slip_maxdev_vardecl_slip_c_34688 slip_maxdev vardecl_slip.c 0 34688 &enable_so_bassinit_CHIPDESC_34688
159432 +enable_so_radeon_ring_init_fndecl_34693 radeon_ring_init fndecl 3 34693 NULL
159433 +enable_so_simple_read_from_buffer_fndecl_34694 simple_read_from_buffer fndecl 0-2-5 34694 NULL
159434 +enable_so_rate_mt76_tx_status_34695 rate mt76_tx_status 0 34695 NULL nohasharray
159435 +enable_so_ceph_get_direct_page_vector_fndecl_34695 ceph_get_direct_page_vector fndecl 2 34695 &enable_so_rate_mt76_tx_status_34695
159436 +enable_so_max_payload_fc_fcp_pkt_34696 max_payload fc_fcp_pkt 0 34696 NULL
159437 +enable_so_writesize_mtd_info_34702 writesize mtd_info 0 34702 NULL
159438 +enable_so_tx_tx_imm_resp_read_fndecl_34703 tx_tx_imm_resp_read fndecl 3 34703 NULL
159439 +enable_so_efi_memmap_efi_info_34704 efi_memmap efi_info 0 34704 NULL
159440 +enable_so_sel_read_policy_fndecl_34712 sel_read_policy fndecl 3 34712 NULL
159441 +enable_so_gfs2_log_alloc_bio_fndecl_34714 gfs2_log_alloc_bio fndecl 2 34714 NULL
159442 +enable_so_kvm_write_guest_virt_system_fndecl_34715 kvm_write_guest_virt_system fndecl 4-2 34715 NULL
159443 +enable_so_in_sector_offset_vardecl_floppy_c_34720 in_sector_offset vardecl_floppy.c 0 34720 NULL
159444 +enable_so_cache_word_size_regmap_34722 cache_word_size regmap 0 34722 NULL
159445 +enable_so_W6692_empty_Dfifo_fndecl_34725 W6692_empty_Dfifo fndecl 2 34725 NULL nohasharray
159446 +enable_so_tx_num_pgs_tp_params_34725 tx_num_pgs tp_params 0 34725 &enable_so_W6692_empty_Dfifo_fndecl_34725
159447 +enable_so_ocfs2_dx_dir_format_cluster_fndecl_34730 ocfs2_dx_dir_format_cluster fndecl 6 34730 NULL nohasharray
159448 +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
159449 +enable_so_wa_xfer_create_subset_sg_fndecl_34731 wa_xfer_create_subset_sg fndecl 2-3 34731 NULL
159450 +enable_so_memblock_double_array_fndecl_34732 memblock_double_array fndecl 3-2 34732 NULL
159451 +enable_so_trunc_start_fndecl_34735 trunc_start fndecl 3-2 34735 NULL nohasharray
159452 +enable_so__c4iw_write_mem_inline_fndecl_34735 _c4iw_write_mem_inline fndecl 3 34735 &enable_so_trunc_start_fndecl_34735
159453 +enable_so_flags_rtl8187b_rx_hdr_34741 flags rtl8187b_rx_hdr 0 34741 NULL
159454 +enable_so_inbuf_dma_usbhid_device_34742 inbuf_dma usbhid_device 0 34742 NULL
159455 +enable_so_blockshift_sddr09_card_info_34748 blockshift sddr09_card_info 0 34748 NULL
159456 +enable_so_u132_hcd_bulk_input_recv_fndecl_34756 u132_hcd_bulk_input_recv fndecl 4 34756 NULL nohasharray
159457 +enable_so_acct_stack_growth_fndecl_34756 acct_stack_growth fndecl 3-2 34756 &enable_so_u132_hcd_bulk_input_recv_fndecl_34756 nohasharray
159458 +enable_so_nfs4_validate_mount_data_fndecl_34756 nfs4_validate_mount_data fndecl 0 34756 &enable_so_acct_stack_growth_fndecl_34756
159459 +enable_so_extent_size_ecryptfs_crypt_stat_34757 extent_size ecryptfs_crypt_stat 0 34757 NULL nohasharray
159460 +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
159461 +enable_so_zone_spare_adfs_discrecord_34757 zone_spare adfs_discrecord 0 34757 &enable_so_sc_frmr_pg_list_len_svcxprt_rdma_34757
159462 +enable_so_ssb_bus_pcmciabus_register_fndecl_34759 ssb_bus_pcmciabus_register fndecl 3 34759 NULL
159463 +enable_so_options_len_ovs_tunnel_info_34769 options_len ovs_tunnel_info 0 34769 NULL
159464 +enable_so_qla2x00_mem_alloc_fndecl_34771 qla2x00_mem_alloc fndecl 3-2 34771 NULL
159465 +enable_so_hvt_op_write_fndecl_34774 hvt_op_write fndecl 3 34774 NULL
159466 +enable_so_cyapa_i2c_pip_read_fndecl_34788 cyapa_i2c_pip_read fndecl 3 34788 NULL
159467 +enable_so_qxl_image_alloc_objects_fndecl_34790 qxl_image_alloc_objects fndecl 4-5 34790 NULL
159468 +enable_so_sizeimage_soc_camera_device_34794 sizeimage soc_camera_device 0 34794 NULL nohasharray
159469 +enable_so_addrlen_svc_deferred_req_34794 addrlen svc_deferred_req 0 34794 &enable_so_sizeimage_soc_camera_device_34794
159470 +enable_so_rq_count_st_card_info_34798 rq_count st_card_info 0 34798 NULL
159471 +enable_so_nfs_write_end_fndecl_34801 nfs_write_end fndecl 3-5 34801 NULL
159472 +enable_so_num_q_vectors_ixgbe_adapter_34808 num_q_vectors ixgbe_adapter 0 34808 NULL
159473 +enable_so_page_size_flash_info_34810 page_size flash_info 0 34810 NULL
159474 +enable_so_blk_cnt_os_dat_entry_s_34817 blk_cnt os_dat_entry_s 0 34817 NULL
159475 +enable_so_lbs_lowsnr_write_fndecl_34822 lbs_lowsnr_write fndecl 3 34822 NULL
159476 +enable_so_wps_ie_len_mwifiex_private_34823 wps_ie_len mwifiex_private 0 34823 NULL nohasharray
159477 +enable_so_alg_key_len_xfrm_algo_34823 alg_key_len xfrm_algo 0 34823 &enable_so_wps_ie_len_mwifiex_private_34823
159478 +enable_so_madvise_behavior_fndecl_34827 madvise_behavior fndecl 4-3 34827 NULL
159479 +enable_so_mwifiex_usb_submit_rx_urb_fndecl_34829 mwifiex_usb_submit_rx_urb fndecl 2 34829 NULL
159480 +enable_so_rcvegrbufs_perchunk_qib_ctxtdata_34831 rcvegrbufs_perchunk qib_ctxtdata 0 34831 NULL
159481 +enable_so_xenvif_check_gop_fndecl_34832 xenvif_check_gop fndecl 0 34832 NULL
159482 +enable_so_unix_dgram_connect_fndecl_34836 unix_dgram_connect fndecl 3 34836 NULL
159483 +enable_so_eblks_mtdswap_dev_34840 eblks mtdswap_dev 0 34840 NULL nohasharray
159484 +enable_so_setsockopt_fndecl_34840 setsockopt fndecl 5 34840 &enable_so_eblks_mtdswap_dev_34840
159485 +enable_so_in_usbnet_34842 in usbnet 0 34842 NULL
159486 +enable_so_ath6kl_wmi_create_pstream_cmd_fndecl_34848 ath6kl_wmi_create_pstream_cmd fndecl 2 34848 NULL
159487 +enable_so_nfsd_vfs_write_fndecl_34850 nfsd_vfs_write fndecl 6 34850 NULL
159488 +enable_so_good_peb_count_ubi_device_34853 good_peb_count ubi_device 0 34853 NULL nohasharray
159489 +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
159490 +enable_so_fw_iso_buffer_init_fndecl_34853 fw_iso_buffer_init fndecl 3 34853 &enable_so_log_sz_mlx5_flow_table_group_34853
159491 +enable_so_nilfs_ioctl_do_get_suinfo_fndecl_34854 nilfs_ioctl_do_get_suinfo fndecl 6 34854 NULL
159492 +enable_so_flags_write_fndecl_34858 flags_write fndecl 3 34858 NULL
159493 +enable_so_max_msix_vectors_fm10k_mac_info_34860 max_msix_vectors fm10k_mac_info 0 34860 NULL
159494 +enable_so_pfkey_recvmsg_fndecl_34863 pfkey_recvmsg fndecl 3 34863 NULL nohasharray
159495 +enable_so_s_map_size_adfs_sb_info_34863 s_map_size adfs_sb_info 0 34863 &enable_so_pfkey_recvmsg_fndecl_34863
159496 +enable_so_odm_num_comps_pnfs_osd_data_map_34865 odm_num_comps pnfs_osd_data_map 0 34865 NULL
159497 +enable_so_size_g2d_frame_34866 size g2d_frame 0 34866 NULL
159498 +enable_so_sddr09_writeX_fndecl_34870 sddr09_writeX fndecl 5-7 34870 NULL
159499 +enable_so_dout_xfer_len_sg_io_v4_34879 dout_xfer_len sg_io_v4 0 34879 NULL
159500 +enable_so_bgx_get_lmac_count_fndecl_34883 bgx_get_lmac_count fndecl 0 34883 NULL
159501 +enable_so_drm_cvt_mode_fndecl_34886 drm_cvt_mode fndecl 3-2-4 34886 NULL
159502 +enable_so_Wa_tvnorm_34892 Wa tvnorm 0 34892 NULL
159503 +enable_so_vb2_dma_sg_alloc_fndecl_34894 vb2_dma_sg_alloc fndecl 2 34894 NULL nohasharray
159504 +enable_so_len_coda_ioctl_out_34894 len coda_ioctl_out 0 34894 &enable_so_vb2_dma_sg_alloc_fndecl_34894
159505 +enable_so_sb_logstart_xfs_sb_34900 sb_logstart xfs_sb 0 34900 NULL
159506 +enable_so_fat_ent_read_fndecl_34902 fat_ent_read fndecl 0-3 34902 NULL
159507 +enable_so_block_size_ath6kl_mbox_info_34904 block_size ath6kl_mbox_info 0 34904 NULL
159508 +enable_so_devm_gen_pool_create_fndecl_34908 devm_gen_pool_create fndecl 2 34908 NULL
159509 +enable_so_irq_of_parse_and_map_fndecl_34917 irq_of_parse_and_map fndecl 0 34917 NULL nohasharray
159510 +enable_so_num_channels_ad5380_chip_info_34917 num_channels ad5380_chip_info 0 34917 &enable_so_irq_of_parse_and_map_fndecl_34917
159511 +enable_so_ath10k_htc_alloc_skb_fndecl_34920 ath10k_htc_alloc_skb fndecl 2 34920 NULL
159512 +enable_so_consume_size_vmci_qp_alloc_info_34922 consume_size vmci_qp_alloc_info 0 34922 NULL
159513 +enable_so_rcc__DMABUFFERENTRY_34925 rcc _DMABUFFERENTRY 0 34925 NULL
159514 +enable_so_shared_secret_len_net_conf_34926 shared_secret_len net_conf 0 34926 NULL
159515 +enable_so_port_fops_write_fndecl_34928 port_fops_write fndecl 3 34928 NULL
159516 +enable_so_len_wil6210_mbox_hdr_34930 len wil6210_mbox_hdr 0 34930 NULL
159517 +enable_so_swiotlb_init_with_tbl_fndecl_34935 swiotlb_init_with_tbl fndecl 2 34935 NULL
159518 +enable_so_register_sound_special_fndecl_34937 register_sound_special fndecl 2 34937 NULL
159519 +enable_so_recv_resync_read_fndecl_34939 recv_resync_read fndecl 2 34939 NULL
159520 +enable_so_max_receive_fw_card_34941 max_receive fw_card 0 34941 NULL
159521 +enable_so_ext2_write_end_fndecl_34943 ext2_write_end fndecl 5 34943 NULL
159522 +enable_so_evm_read_key_fndecl_34945 evm_read_key fndecl 3 34945 NULL
159523 +enable_so_ips_scmd_buf_write_fndecl_34946 ips_scmd_buf_write fndecl 3 34946 NULL
159524 +enable_so_bio_kmalloc_fndecl_34947 bio_kmalloc fndecl 2 34947 NULL
159525 +enable_so_reiserfs_get_block_create_0_fndecl_34954 reiserfs_get_block_create_0 fndecl 2 34954 NULL
159526 +enable_so_fs_path_add_path_fndecl_34955 fs_path_add_path fndecl 0 34955 NULL
159527 +enable_so_dns_resolver_read_fndecl_34961 dns_resolver_read fndecl 3 34961 NULL
159528 +enable_so_internal_ewma_34962 internal ewma 0 34962 NULL
159529 +enable_so_n_it_fw_ohci_34963 n_it fw_ohci 0 34963 NULL
159530 +enable_so_simple_alloc_urb_fndecl_34966 simple_alloc_urb fndecl 3-2 34966 NULL
159531 +enable_so___bmc150_accel_fifo_flush_fndecl_34967 __bmc150_accel_fifo_flush fndecl 2 34967 NULL
159532 +enable_so_il4965_rs_switch_to_siso_fndecl_34968 il4965_rs_switch_to_siso fndecl 6 34968 NULL
159533 +enable_so_s35390a_get_reg_fndecl_34971 s35390a_get_reg fndecl 4 34971 NULL
159534 +enable_so_cw1200_queue_stats_init_fndecl_34973 cw1200_queue_stats_init fndecl 2 34973 NULL
159535 +enable_so_at24_bin_write_fndecl_34977 at24_bin_write fndecl 6-5 34977 NULL nohasharray
159536 +enable_so_gcr_base_intel_pmc_ipc_dev_34977 gcr_base intel_pmc_ipc_dev 0 34977 &enable_so_at24_bin_write_fndecl_34977
159537 +enable_so_rfkill_fop_read_fndecl_34980 rfkill_fop_read fndecl 3 34980 NULL
159538 +enable_so_kfd_gtt_sa_init_fndecl_34996 kfd_gtt_sa_init fndecl 3-2 34996 NULL
159539 +enable_so_rx_ring_count_ixgbe_adapter_35004 rx_ring_count ixgbe_adapter 0 35004 NULL
159540 +enable_so_amb_len_i5k_amb_data_35007 amb_len i5k_amb_data 0 35007 NULL
159541 +enable_so_num_snaps_ceph_mds_snap_realm_35009 num_snaps ceph_mds_snap_realm 0 35009 NULL
159542 +enable_so_ocfs2_control_write_fndecl_35010 ocfs2_control_write fndecl 3 35010 NULL
159543 +enable_so_fc_set_mfs_fndecl_35014 fc_set_mfs fndecl 2 35014 NULL
159544 +enable_so_kzalloc_fndecl_35015 kzalloc fndecl 1 35015 NULL
159545 +enable_so_skb_zerocopy_fndecl_35016 skb_zerocopy fndecl 4-3 35016 NULL
159546 +enable_so_read_capacity_10_fndecl_35017 read_capacity_10 fndecl 0 35017 NULL
159547 +enable_so_wep_iv_read_fndecl_35019 wep_iv_read fndecl 3 35019 NULL
159548 +enable_so_no_ids_squashfs_super_block_35022 no_ids squashfs_super_block 0 35022 NULL nohasharray
159549 +enable_so_lpfc_idiag_pcicfg_write_fndecl_35022 lpfc_idiag_pcicfg_write fndecl 3 35022 &enable_so_no_ids_squashfs_super_block_35022
159550 +enable_so_il4965_rs_fill_link_cmd_fndecl_35023 il4965_rs_fill_link_cmd fndecl 3 35023 NULL
159551 +enable_so__add_sg_continuation_descriptor_fndecl_35026 _add_sg_continuation_descriptor fndecl 3 35026 NULL
159552 +enable_so_vSync_width_panel_info_35029 vSync_width panel_info 0 35029 NULL nohasharray
159553 +enable_so_set_nservers_fndecl_35029 set_nservers fndecl 2 35029 &enable_so_vSync_width_panel_info_35029
159554 +enable_so_w_nr_rds_ib_work_ring_35048 w_nr rds_ib_work_ring 0 35048 NULL
159555 +enable_so_uarc_size_mthca_profile_35053 uarc_size mthca_profile 0 35053 NULL
159556 +enable_so_n_ports_rp2_card_35055 n_ports rp2_card 0 35055 NULL
159557 +enable_so_tda18218_rd_reg_fndecl_35057 tda18218_rd_reg fndecl 2 35057 NULL
159558 +enable_so_iio_event_chrdev_read_fndecl_35062 iio_event_chrdev_read fndecl 3 35062 NULL
159559 +enable_so_ring_size_radeon_ring_35063 ring_size radeon_ring 0 35063 NULL
159560 +enable_so_pci_create_root_bus_fndecl_35065 pci_create_root_bus fndecl 2 35065 NULL nohasharray
159561 +enable_so_adis16480_show_firmware_date_fndecl_35065 adis16480_show_firmware_date fndecl 3 35065 &enable_so_pci_create_root_bus_fndecl_35065
159562 +enable_so_jffs2_flash_direct_write_fndecl_35070 jffs2_flash_direct_write fndecl 3 35070 NULL
159563 +enable_so_altera_set_dr_post_fndecl_35072 altera_set_dr_post fndecl 2 35072 NULL
159564 +enable_so_set_video_mode_Timon_fndecl_35074 set_video_mode_Timon fndecl 4 35074 NULL
159565 +enable_so_number_scales_vardecl_powernow_k7_c_35080 number_scales vardecl_powernow-k7.c 0 35080 NULL
159566 +enable_so_get_iovec_page_array_fndecl_35081 get_iovec_page_array fndecl 0 35081 NULL
159567 +enable_so_inbuf_dma_ati_remote_35083 inbuf_dma ati_remote 0 35083 NULL nohasharray
159568 +enable_so_dlm_alloc_pagevec_fndecl_35083 dlm_alloc_pagevec fndecl 1 35083 &enable_so_inbuf_dma_ati_remote_35083
159569 +enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086 ieee80211_add_rx_radiotap_header fndecl 4 35086 NULL nohasharray
159570 +enable_so_reclaim_pages_fndecl_35086 reclaim_pages fndecl 3 35086 &enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086
159571 +enable_so_ubi_calc_data_len_fndecl_35092 ubi_calc_data_len fndecl 0-3 35092 NULL
159572 +enable_so_sizeof_long_fndecl_35095 sizeof_long fndecl 0 35095 NULL
159573 +enable_so_er_data_len_gfs2_ea_request_35098 er_data_len gfs2_ea_request 0 35098 NULL
159574 +enable_so_num_vf_qps_i40e_pf_35102 num_vf_qps i40e_pf 0 35102 NULL
159575 +enable_so_prot_length_se_device_35103 prot_length se_device 0 35103 NULL nohasharray
159576 +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
159577 +enable_so_dma_common_get_sgtable_fndecl_35105 dma_common_get_sgtable fndecl 5 35105 NULL
159578 +enable_so___do_page_fault_fndecl_35107 __do_page_fault fndecl 3 35107 NULL
159579 +enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108 ath6kl_wmi_set_bitrate_mask fndecl 2 35108 NULL nohasharray
159580 +enable_so_size_kcore_list_35108 size kcore_list 0 35108 &enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108
159581 +enable_so_pn_raw_send_fndecl_35113 pn_raw_send fndecl 2 35113 NULL
159582 +enable_so_d_ino_vxfs_direct_35117 d_ino vxfs_direct 0 35117 NULL
159583 +enable_so_max_uc_mac_be_resources_35119 max_uc_mac be_resources 0 35119 NULL
159584 +enable_so_vxfs_bmap_indir_fndecl_35120 vxfs_bmap_indir fndecl 2-0-4 35120 NULL
159585 +enable_so_alloc_vm_area_fndecl_35121 alloc_vm_area fndecl 1 35121 NULL
159586 +enable_so_sm501_alloc_mem_fndecl_35125 sm501_alloc_mem fndecl 4 35125 NULL
159587 +enable_so_bch_empty_fifo_fndecl_35126 bch_empty_fifo fndecl 2 35126 NULL
159588 +enable_so_vmw_mob_create_fndecl_35127 vmw_mob_create fndecl 1 35127 NULL nohasharray
159589 +enable_so_path_setxattr_fndecl_35127 path_setxattr fndecl 4 35127 &enable_so_vmw_mob_create_fndecl_35127 nohasharray
159590 +enable_so_nilfs_sufile_get_suinfo_fndecl_35127 nilfs_sufile_get_suinfo fndecl 5-2 35127 &enable_so_path_setxattr_fndecl_35127
159591 +enable_so_FbMapSize_nvidia_par_35128 FbMapSize nvidia_par 0 35128 NULL nohasharray
159592 +enable_so_mlx4_en_create_rx_ring_fndecl_35128 mlx4_en_create_rx_ring fndecl 3-4 35128 &enable_so_FbMapSize_nvidia_par_35128
159593 +enable_so_channels_min_snd_pcm_hardware_35132 channels_min snd_pcm_hardware 0 35132 NULL nohasharray
159594 +enable_so_bio_add_pc_page_fndecl_35132 bio_add_pc_page fndecl 5-4 35132 &enable_so_channels_min_snd_pcm_hardware_35132
159595 +enable_so_xdr_restrict_buflen_fndecl_35133 xdr_restrict_buflen fndecl 2 35133 NULL
159596 +enable_so__osd_realloc_seg_fndecl_35139 _osd_realloc_seg fndecl 3 35139 NULL nohasharray
159597 +enable_so___get_free_pages_fndecl_35139 __get_free_pages fndecl 0 35139 &enable_so__osd_realloc_seg_fndecl_35139
159598 +enable_so_blockoffset_hfsplus_sb_info_35140 blockoffset hfsplus_sb_info 0 35140 NULL
159599 +enable_so_tx_ring_size_adm8211_priv_35143 tx_ring_size adm8211_priv 0 35143 NULL
159600 +enable_so_len_mwifiex_ie_types_header_35146 len mwifiex_ie_types_header 0 35146 NULL
159601 +enable_so_read_file_credit_dist_stats_fndecl_35148 read_file_credit_dist_stats fndecl 3 35148 NULL
159602 +enable_so_num_usb3_ports_xhci_hcd_35149 num_usb3_ports xhci_hcd 0 35149 NULL nohasharray
159603 +enable_so_readlink_copy_fndecl_35149 readlink_copy fndecl 2 35149 &enable_so_num_usb3_ports_xhci_hcd_35149
159604 +enable_so_br_fdb_fillbuf_fndecl_35152 br_fdb_fillbuf fndecl 0 35152 NULL
159605 +enable_so_pageshift_alauda_card_info_35154 pageshift alauda_card_info 0 35154 NULL
159606 +enable_so___alloc_dev_table_fndecl_35156 __alloc_dev_table fndecl 2 35156 NULL
159607 +enable_so_num_rx_qp_i40e_hw_capabilities_35165 num_rx_qp i40e_hw_capabilities 0 35165 NULL
159608 +enable_so_snd_pcm_oss_read2_fndecl_35168 snd_pcm_oss_read2 fndecl 3-0 35168 NULL nohasharray
159609 +enable_so_count_sgmap_35168 count sgmap 0 35168 &enable_so_snd_pcm_oss_read2_fndecl_35168
159610 +enable_so_mlx4_en_hwtstamp_get_fndecl_35174 mlx4_en_hwtstamp_get fndecl 0 35174 NULL
159611 +enable_so_memblock_size_vxge_hw_fifo_config_35179 memblock_size vxge_hw_fifo_config 0 35179 NULL nohasharray
159612 +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
159613 +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
159614 +enable_so_blk_rq_count_integrity_sg_fndecl_35185 blk_rq_count_integrity_sg fndecl 0 35185 NULL
159615 +enable_so___sound_insert_unit_fndecl_35186 __sound_insert_unit fndecl 4-5 35186 NULL
159616 +enable_so_wHeight_uvc_frame_35189 wHeight uvc_frame 0 35189 NULL
159617 +enable_so_ah_alloc_tmp_fndecl_35193 ah_alloc_tmp fndecl 2-3 35193 NULL
159618 +enable_so_do_dccp_setsockopt_fndecl_35194 do_dccp_setsockopt fndecl 5 35194 NULL nohasharray
159619 +enable_so_intel_sdvo_write_cmd_fndecl_35194 intel_sdvo_write_cmd fndecl 4 35194 &enable_so_do_dccp_setsockopt_fndecl_35194
159620 +enable_so_long_retry_limit_ipw_priv_35197 long_retry_limit ipw_priv 0 35197 NULL
159621 +enable_so_copy_gadget_strings_fndecl_35202 copy_gadget_strings fndecl 3-2 35202 NULL
159622 +enable_so_new_lockspace_fndecl_35208 new_lockspace fndecl 4 35208 NULL
159623 +enable_so_tx_ring_size_pcnet32_private_35210 tx_ring_size pcnet32_private 0 35210 NULL
159624 +enable_so_xfs_ialloc_inode_init_fndecl_35212 xfs_ialloc_inode_init fndecl 6-5 35212 NULL
159625 +enable_so_maxpacksize_snd_usb_endpoint_35216 maxpacksize snd_usb_endpoint 0 35216 NULL nohasharray
159626 +enable_so_sset_mask_ethtool_sset_info_35216 sset_mask ethtool_sset_info 0 35216 &enable_so_maxpacksize_snd_usb_endpoint_35216
159627 +enable_so_snd_pcm_add_chmap_ctls_fndecl_35223 snd_pcm_add_chmap_ctls fndecl 4 35223 NULL
159628 +enable_so_vmbus_sendpacket_ctl_fndecl_35225 vmbus_sendpacket_ctl fndecl 3 35225 NULL
159629 +enable_so_root_blkno_ocfs2_super_35227 root_blkno ocfs2_super 0 35227 NULL
159630 +enable_so_d_off_p9_dirent_35247 d_off p9_dirent 0 35247 NULL nohasharray
159631 +enable_so_policy_idx_hmask_netns_xfrm_35247 policy_idx_hmask netns_xfrm 0 35247 &enable_so_d_off_p9_dirent_35247
159632 +enable_so_whc_urb_dequeue_fndecl_35255 whc_urb_dequeue fndecl 3 35255 NULL nohasharray
159633 +enable_so_oprofile_buffer_size_vardecl_35255 oprofile_buffer_size vardecl 0 35255 &enable_so_whc_urb_dequeue_fndecl_35255
159634 +enable_so_longRetryLimit_ConfigRid_35258 longRetryLimit ConfigRid 0 35258 NULL nohasharray
159635 +enable_so_max_gs_mthca_srq_35258 max_gs mthca_srq 0 35258 &enable_so_longRetryLimit_ConfigRid_35258
159636 +enable_so_dm_bm_write_lock_fndecl_35261 dm_bm_write_lock fndecl 2 35261 NULL
159637 +enable_so_gss_unwrap_kerberos_fndecl_35263 gss_unwrap_kerberos fndecl 2 35263 NULL
159638 +enable_so_wstatus_usblp_35266 wstatus usblp 0 35266 NULL
159639 +enable_so_sparse_early_mem_maps_alloc_node_fndecl_35270 sparse_early_mem_maps_alloc_node fndecl 4 35270 NULL
159640 +enable_so_rsp_size_ipmi_smi_msg_35282 rsp_size ipmi_smi_msg 0 35282 NULL
159641 +enable_so_maxburst_snd_dmaengine_dai_dma_data_35287 maxburst snd_dmaengine_dai_dma_data 0 35287 NULL
159642 +enable_so_ceph_msg_data_advance_fndecl_35288 ceph_msg_data_advance fndecl 2 35288 NULL
159643 +enable_so_offs_ubifs_wbuf_35290 offs ubifs_wbuf 0 35290 NULL
159644 +enable_so_xc_send_i2c_data_fndecl_35297 xc_send_i2c_data fndecl 3 35297 NULL
159645 +enable_so_maybe_indirect_to_direct_fndecl_35307 maybe_indirect_to_direct fndecl 6 35307 NULL
159646 +enable_so_viacam_read_fndecl_35309 viacam_read fndecl 3 35309 NULL
159647 +enable_so_vmci_transport_dgram_enqueue_fndecl_35310 vmci_transport_dgram_enqueue fndecl 4 35310 NULL nohasharray
159648 +enable_so_walk_pud_range_fndecl_35310 walk_pud_range fndecl 0 35310 &enable_so_vmci_transport_dgram_enqueue_fndecl_35310
159649 +enable_so_ieee80211_tdls_mgmt_setup_fndecl_35316 ieee80211_tdls_mgmt_setup fndecl 10 35316 NULL
159650 +enable_so_btrfs_ordered_sum_size_fndecl_35326 btrfs_ordered_sum_size fndecl 0-2 35326 NULL
159651 +enable_so_l2cap_create_basic_pdu_fndecl_35327 l2cap_create_basic_pdu fndecl 3 35327 NULL
159652 +enable_so_channels_twl4030_priv_35329 channels twl4030_priv 0 35329 NULL nohasharray
159653 +enable_so_ssid_len_cfg80211_ibss_params_35329 ssid_len cfg80211_ibss_params 0 35329 &enable_so_channels_twl4030_priv_35329
159654 +enable_so_xb_suballoc_bit_ocfs2_xattr_block_35331 xb_suballoc_bit ocfs2_xattr_block 0 35331 NULL
159655 +enable_so_extra_msdu_postfix_len_lib80211_crypto_ops_35341 extra_msdu_postfix_len lib80211_crypto_ops 0 35341 NULL
159656 +enable_so_nr_pages_bts_buffer_35350 nr_pages bts_buffer 0 35350 NULL
159657 +enable_so_num_reg_mic_smpt_hw_info_35353 num_reg mic_smpt_hw_info 0 35353 NULL
159658 +enable_so_udf_get_pblock_meta25_fndecl_35356 udf_get_pblock_meta25 fndecl 4 35356 NULL
159659 +enable_so_cache_mode_control_mms114_data_35358 cache_mode_control mms114_data 0 35358 NULL
159660 +enable_so_efw_transaction_fndecl_35359 efw_transaction fndecl 5-7 35359 NULL
159661 +enable_so_reserved_pds_mthca_limits_35361 reserved_pds mthca_limits 0 35361 NULL
159662 +enable_so_hx8357_spi_write_array_fndecl_35364 hx8357_spi_write_array fndecl 3 35364 NULL
159663 +enable_so_IA_RX_BUF_SZ_vardecl_iphase_c_35365 IA_RX_BUF_SZ vardecl_iphase.c 0 35365 NULL
159664 +enable_so_previous_raid_disks_r5conf_35368 previous_raid_disks r5conf 0 35368 NULL nohasharray
159665 +enable_so_count_param_range_35368 count param_range 0 35368 &enable_so_previous_raid_disks_r5conf_35368 nohasharray
159666 +enable_so_input_pool_snd_seq_client_pool_35368 input_pool snd_seq_client_pool 0 35368 &enable_so_count_param_range_35368
159667 +enable_so_num_channels_ad7266_chan_info_35372 num_channels ad7266_chan_info 0 35372 NULL
159668 +enable_so_update_raid_disks_fndecl_35375 update_raid_disks fndecl 2 35375 NULL
159669 +enable_so_apei_exec_run_fndecl_35376 apei_exec_run fndecl 0 35376 NULL
159670 +enable_so_drm_dp_mst_topology_mgr_init_fndecl_35377 drm_dp_mst_topology_mgr_init fndecl 5 35377 NULL
159671 +enable_so_mmio_base_phys_radeonfb_info_35378 mmio_base_phys radeonfb_info 0 35378 NULL
159672 +enable_so_hc_erase_size_mmc_ext_csd_35384 hc_erase_size mmc_ext_csd 0 35384 NULL
159673 +enable_so_ath9k_hw_read_array_fndecl_35386 ath9k_hw_read_array fndecl 3 35386 NULL
159674 +enable_so_read_dma_fndecl_35389 read_dma fndecl 3 35389 NULL
159675 +enable_so_writeback_fndecl_35390 writeback fndecl 4-3 35390 NULL
159676 +enable_so_corrupt_data_fndecl_35395 corrupt_data fndecl 0-3 35395 NULL nohasharray
159677 +enable_so_sg_set_page_fndecl_35395 sg_set_page fndecl 3 35395 &enable_so_corrupt_data_fndecl_35395
159678 +enable_so_blk_queue_io_opt_fndecl_35405 blk_queue_io_opt fndecl 2 35405 NULL
159679 +enable_so_use_sg_st_buffer_35407 use_sg st_buffer 0 35407 NULL
159680 +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
159681 +enable_so__drbd_md_sync_page_io_fndecl_35411 _drbd_md_sync_page_io fndecl 3 35411 NULL
159682 +enable_so_cdce925_pll_set_rate_fndecl_35418 cdce925_pll_set_rate fndecl 3-2 35418 NULL
159683 +enable_so_ali15x3_smba_vardecl_i2c_ali15x3_c_35421 ali15x3_smba vardecl_i2c-ali15x3.c 0 35421 NULL
159684 +enable_so_cqc_entry_sz_mthca_dev_lim_35422 cqc_entry_sz mthca_dev_lim 0 35422 NULL
159685 +enable_so_fb_width_drm_fb_helper_surface_size_35426 fb_width drm_fb_helper_surface_size 0 35426 NULL
159686 +enable_so_btrfs_fdatawrite_range_fndecl_35427 btrfs_fdatawrite_range fndecl 2-3 35427 NULL
159687 +enable_so_xfs_bulkstat_one_compat_fndecl_35428 xfs_bulkstat_one_compat fndecl 2 35428 NULL
159688 +enable_so_offset_tx_buf_35429 offset tx_buf 0 35429 NULL
159689 +enable_so_bmAttributes_usb_ss_ep_comp_descriptor_35434 bmAttributes usb_ss_ep_comp_descriptor 0 35434 NULL
159690 +enable_so_ocfs2_prepare_refcount_change_for_del_fndecl_35442 ocfs2_prepare_refcount_change_for_del fndecl 4-3-2 35442 NULL
159691 +enable_so_major_gendisk_35443 major gendisk 0 35443 NULL
159692 +enable_so_debug_read_regs_fndecl_35445 debug_read_regs fndecl 3 35445 NULL
159693 +enable_so_wake_len_cfg80211_wowlan_tcp_35448 wake_len cfg80211_wowlan_tcp 0 35448 NULL nohasharray
159694 +enable_so_len_he_buff_35448 len he_buff 0 35448 &enable_so_wake_len_cfg80211_wowlan_tcp_35448
159695 +enable_so_ieee80211_if_read_uapsd_queues_fndecl_35453 ieee80211_if_read_uapsd_queues fndecl 3 35453 NULL
159696 +enable_so_ocfs2_truncate_file_fndecl_35455 ocfs2_truncate_file fndecl 3 35455 NULL
159697 +enable_so_octeon_create_droq_fndecl_35457 octeon_create_droq fndecl 4-3 35457 NULL
159698 +enable_so_bytes_to_read_mpt3_diag_read_buffer_35460 bytes_to_read mpt3_diag_read_buffer 0 35460 NULL
159699 +enable_so_drbd_send_fndecl_35461 drbd_send fndecl 4 35461 NULL
159700 +enable_so_sel_write_relabel_fndecl_35464 sel_write_relabel fndecl 3 35464 NULL
159701 +enable_so_width_physmap_flash_data_35470 width physmap_flash_data 0 35470 NULL
159702 +enable_so_qxl_monitors_config_set_fndecl_35471 qxl_monitors_config_set fndecl 6-5 35471 NULL nohasharray
159703 +enable_so_max_links_media_entity_35471 max_links media_entity 0 35471 &enable_so_qxl_monitors_config_set_fndecl_35471
159704 +enable_so___rpipe_set_descr_fndecl_35478 __rpipe_set_descr fndecl 0 35478 NULL
159705 +enable_so_length_wl1251_rx_descriptor_35483 length wl1251_rx_descriptor 0 35483 NULL
159706 +enable_so_ieee80211_report_disconnect_fndecl_35488 ieee80211_report_disconnect fndecl 3 35488 NULL
159707 +enable_so_onenand_read_fndecl_35491 onenand_read fndecl 2 35491 NULL nohasharray
159708 +enable_so_qxl_alloc_client_monitors_config_fndecl_35491 qxl_alloc_client_monitors_config fndecl 2 35491 &enable_so_onenand_read_fndecl_35491
159709 +enable_so_alloc_clips_fndecl_35492 alloc_clips fndecl 3 35492 NULL nohasharray
159710 +enable_so_f71805f_device_add_fndecl_35492 f71805f_device_add fndecl 1 35492 &enable_so_alloc_clips_fndecl_35492
159711 +enable_so_firm_send_command_fndecl_35493 firm_send_command fndecl 4 35493 NULL nohasharray
159712 +enable_so_nbox_drm_savage_cmdbuf_35493 nbox drm_savage_cmdbuf 0 35493 &enable_so_firm_send_command_fndecl_35493
159713 +enable_so_cfg_lun_queue_depth_lpfc_vport_35503 cfg_lun_queue_depth lpfc_vport 0 35503 NULL
159714 +enable_so_sched_feat_write_fndecl_35505 sched_feat_write fndecl 3 35505 NULL
159715 +enable_so_cnt_usnic_vnic_res_desc_35511 cnt usnic_vnic_res_desc 0 35511 NULL
159716 +enable_so___kfifo_dma_out_prepare_r_fndecl_35512 __kfifo_dma_out_prepare_r fndecl 4-5 35512 NULL
159717 +enable_so_dlci_change_mtu_fndecl_35513 dlci_change_mtu fndecl 2 35513 NULL nohasharray
159718 +enable_so_emulate_exception_fndecl_35513 emulate_exception fndecl 3 35513 &enable_so_dlci_change_mtu_fndecl_35513
159719 +enable_so_ht40allow_map_read_fndecl_35514 ht40allow_map_read fndecl 3 35514 NULL
159720 +enable_so_acpi_nvs_register_fndecl_35515 acpi_nvs_register fndecl 2-1 35515 NULL
159721 +enable_so_do_raw_setsockopt_fndecl_35516 do_raw_setsockopt fndecl 5-0 35516 NULL
159722 +enable_so_install_special_mapping_fndecl_35519 install_special_mapping fndecl 3-2 35519 NULL
159723 +enable_so_alloc_qcom_scm_command_fndecl_35520 alloc_qcom_scm_command fndecl 1-2 35520 NULL
159724 +enable_so_count_atl1_rfd_ring_35523 count atl1_rfd_ring 0 35523 NULL
159725 +enable_so_clr_int_base_mlx4_fw_35529 clr_int_base mlx4_fw 0 35529 NULL
159726 +enable_so_additional_cdb_length_scsi_varlen_cdb_hdr_35533 additional_cdb_length scsi_varlen_cdb_hdr 0 35533 NULL
159727 +enable_so_find_inode_fndecl_35534 find_inode fndecl 2 35534 NULL
159728 +enable_so_gigaset_tty_receive_fndecl_35535 gigaset_tty_receive fndecl 4 35535 NULL
159729 +enable_so_phys_ck804xrom_window_35536 phys ck804xrom_window 0 35536 NULL
159730 +enable_so_nvkm_client_create__fndecl_35539 nvkm_client_create_ fndecl 5 35539 NULL
159731 +enable_so_gk20a_instobj_ctor_dma_fndecl_35545 gk20a_instobj_ctor_dma fndecl 4 35545 NULL
159732 +enable_so_ssp_send_instruction_fndecl_35549 ssp_send_instruction fndecl 5 35549 NULL
159733 +enable_so_inet_sendpage_fndecl_35554 inet_sendpage fndecl 4 35554 NULL
159734 +enable_so_vsync_ast_vbios_enhtable_35556 vsync ast_vbios_enhtable 0 35556 NULL
159735 +enable_so_rx_streaming_interval_read_fndecl_35560 rx_streaming_interval_read fndecl 3 35560 NULL
159736 +enable_so_ptrace_request_fndecl_35563 ptrace_request fndecl 3 35563 NULL
159737 +enable_so_find_min_pfn_for_node_fndecl_35569 find_min_pfn_for_node fndecl 0 35569 NULL nohasharray
159738 +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
159739 +enable_so_edma_readl_fndecl_35573 edma_readl fndecl 0 35573 NULL
159740 +enable_so_cfg80211_mlme_auth_fndecl_35577 cfg80211_mlme_auth fndecl 14-9 35577 NULL
159741 +enable_so_cur_blksize_sdio_func_35582 cur_blksize sdio_func 0 35582 NULL nohasharray
159742 +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
159743 +enable_so_lbs_failcount_write_fndecl_35583 lbs_failcount_write fndecl 3 35583 NULL
159744 +enable_so_ext3_find_goal_fndecl_35586 ext3_find_goal fndecl 0 35586 NULL
159745 +enable_so_offset_inflate_state_35587 offset inflate_state 0 35587 NULL
159746 +enable_so_actual_length_usb_iso_packet_descriptor_35588 actual_length usb_iso_packet_descriptor 0 35588 NULL
159747 +enable_so_cyttsp_i2c_read_block_data_fndecl_35590 cyttsp_i2c_read_block_data fndecl 4 35590 NULL
159748 +enable_so_minor_start_rp2_card_35592 minor_start rp2_card 0 35592 NULL
159749 +enable_so_nfsd_write_fndecl_35594 nfsd_write fndecl 6 35594 NULL nohasharray
159750 +enable_so_send_wr_num_isert_rdma_wr_35594 send_wr_num isert_rdma_wr 0 35594 &enable_so_nfsd_write_fndecl_35594
159751 +enable_so_ext2_iget_fndecl_35598 ext2_iget fndecl 2 35598 NULL
159752 +enable_so_xfs_rtallocate_extent_block_fndecl_35604 xfs_rtallocate_extent_block fndecl 5-10 35604 NULL
159753 +enable_so_hback_porch_videomode_35606 hback_porch videomode 0 35606 NULL nohasharray
159754 +enable_so_count_nfs_direct_req_35606 count nfs_direct_req 0 35606 &enable_so_hback_porch_videomode_35606
159755 +enable_so_f2fs_iget_fndecl_35610 f2fs_iget fndecl 2 35610 NULL nohasharray
159756 +enable_so_flexcop_device_kmalloc_fndecl_35610 flexcop_device_kmalloc fndecl 1 35610 &enable_so_f2fs_iget_fndecl_35610
159757 +enable_so_blocksize_brcmf_sdio_35612 blocksize brcmf_sdio 0 35612 NULL
159758 +enable_so_sqp_demux_mlx4_caps_35613 sqp_demux mlx4_caps 0 35613 NULL nohasharray
159759 +enable_so_maxcontacts_mt_device_35613 maxcontacts mt_device 0 35613 &enable_so_sqp_demux_mlx4_caps_35613
159760 +enable_so_offset_lv_35617 offset lv 0 35617 NULL
159761 +enable_so_generic_perform_write_fndecl_35619 generic_perform_write fndecl 0-3 35619 NULL nohasharray
159762 +enable_so_ext4_update_final_de_fndecl_35619 ext4_update_final_de fndecl 2-3 35619 &enable_so_generic_perform_write_fndecl_35619 nohasharray
159763 +enable_so_count_fm10k_ring_35619 count fm10k_ring 0 35619 &enable_so_ext4_update_final_de_fndecl_35619
159764 +enable_so_ext3_acl_from_disk_fndecl_35620 ext3_acl_from_disk fndecl 2 35620 NULL
159765 +enable_so_ips_scmd_buf_read_fndecl_35622 ips_scmd_buf_read fndecl 3 35622 NULL nohasharray
159766 +enable_so_write_rio_fndecl_35622 write_rio fndecl 3 35622 &enable_so_ips_scmd_buf_read_fndecl_35622
159767 +enable_so_netxen_process_lro_fndecl_35630 netxen_process_lro fndecl 5-4 35630 NULL
159768 +enable_so_prev_rs_il_rate_info_35636 prev_rs il_rate_info 0 35636 NULL nohasharray
159769 +enable_so_cciss_add_gendisk_fndecl_35636 cciss_add_gendisk fndecl 0 35636 &enable_so_prev_rs_il_rate_info_35636
159770 +enable_so_nvkm_bar_create__fndecl_35648 nvkm_bar_create_ fndecl 4 35648 NULL
159771 +enable_so_smsc47b397_device_add_fndecl_35649 smsc47b397_device_add fndecl 1 35649 NULL
159772 +enable_so_prism_build_supp_rates_fndecl_35650 prism_build_supp_rates fndecl 0 35650 NULL
159773 +enable_so_viafb_second_xres_vardecl_35651 viafb_second_xres vardecl 0 35651 NULL nohasharray
159774 +enable_so_broadsheet_spiflash_rewrite_sector_fndecl_35651 broadsheet_spiflash_rewrite_sector fndecl 2 35651 &enable_so_viafb_second_xres_vardecl_35651
159775 +enable_so_urb_size_uvc_streaming_35654 urb_size uvc_streaming 0 35654 NULL
159776 +enable_so_urb_enqueue_hc_driver_35656 urb_enqueue hc_driver 0 35656 NULL
159777 +enable_so_max_cmd_sgentries_ctlr_info_35659 max_cmd_sgentries ctlr_info 0 35659 NULL
159778 +enable_so_xfs_alloc_read_agfl_fndecl_35660 xfs_alloc_read_agfl fndecl 3 35660 NULL
159779 +enable_so_xfs_vm_direct_IO_fndecl_35663 xfs_vm_direct_IO fndecl 3 35663 NULL nohasharray
159780 +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
159781 +enable_so_printer_read_fndecl_35664 printer_read fndecl 3 35664 NULL
159782 +enable_so_ufx_ops_write_fndecl_35667 ufx_ops_write fndecl 3 35667 NULL
159783 +enable_so_numdevs_ore_components_35671 numdevs ore_components 0 35671 NULL
159784 +enable_so_qib_reg_user_mr_fndecl_35673 qib_reg_user_mr fndecl 2-3-4 35673 NULL
159785 +enable_so_ncntrs_qib_chip_specific_35675 ncntrs qib_chip_specific 0 35675 NULL
159786 +enable_so_rate_clk_core_35677 rate clk_core 0 35677 NULL nohasharray
159787 +enable_so_nv35_fb_tile_comp_fndecl_35677 nv35_fb_tile_comp fndecl 3 35677 &enable_so_rate_clk_core_35677
159788 +enable_so_read_into_fndecl_35681 read_into fndecl 2 35681 NULL nohasharray
159789 +enable_so_size_xpnet_message_35681 size xpnet_message 0 35681 &enable_so_read_into_fndecl_35681
159790 +enable_so_id_mfd_cell_35684 id mfd_cell 0 35684 NULL
159791 +enable_so_rx_words_eob_pch_gbe_rx_desc_35687 rx_words_eob pch_gbe_rx_desc 0 35687 NULL
159792 +enable_so_affs_extent_file_ofs_fndecl_35690 affs_extent_file_ofs fndecl 2 35690 NULL
159793 +enable_so_at_max_vardecl_35692 at_max vardecl 0 35692 NULL
159794 +enable_so_width_drm_radeon_tex_image_35693 width drm_radeon_tex_image 0 35693 NULL
159795 +enable_so_isert_map_data_buf_fndecl_35701 isert_map_data_buf fndecl 6-5-4 35701 NULL
159796 +enable_so_wil_pmc_alloc_fndecl_35702 wil_pmc_alloc fndecl 2-3 35702 NULL
159797 +enable_so_gfs2_write_alloc_required_fndecl_35708 gfs2_write_alloc_required fndecl 3-2 35708 NULL
159798 +enable_so_gcr_size_intel_pmc_ipc_dev_35709 gcr_size intel_pmc_ipc_dev 0 35709 NULL
159799 +enable_so_bnx2x_change_mtu_fndecl_35710 bnx2x_change_mtu fndecl 2 35710 NULL
159800 +enable_so_srp_post_send_fndecl_35713 srp_post_send fndecl 3 35713 NULL
159801 +enable_so_remote_nentries_xpc_channel_35714 remote_nentries xpc_channel 0 35714 NULL
159802 +enable_so_credits_csio_q_35715 credits csio_q 0 35715 NULL
159803 +enable_so_bio_add_page_fndecl_35718 bio_add_page fndecl 4-3-0 35718 NULL nohasharray
159804 +enable_so_RequestCredit_mpt3sas_facts_35718 RequestCredit mpt3sas_facts 0 35718 &enable_so_bio_add_page_fndecl_35718
159805 +enable_so_mxms_structlen_fndecl_35720 mxms_structlen fndecl 0 35720 NULL
159806 +enable_so_lowpan_xmit_fragment_fndecl_35724 lowpan_xmit_fragment fndecl 4-6 35724 NULL
159807 +enable_so_fdt_translate_address_fndecl_35726 fdt_translate_address fndecl 0 35726 NULL nohasharray
159808 +enable_so_add_port_fndecl_35726 add_port fndecl 2 35726 &enable_so_fdt_translate_address_fndecl_35726
159809 +enable_so_size_irq_routing_options_35727 size irq_routing_options 0 35727 NULL
159810 +enable_so_last_xfer_len_ide_cmd_35728 last_xfer_len ide_cmd 0 35728 NULL
159811 +enable_so_iscsi_pool_init_fndecl_35730 iscsi_pool_init fndecl 2-4 35730 NULL
159812 +enable_so_mwifiex_append_rate_tlv_fndecl_35735 mwifiex_append_rate_tlv fndecl 0 35735 NULL
159813 +enable_so_priv_size_data_queue_35740 priv_size data_queue 0 35740 NULL
159814 +enable_so_offset_ext4_io_end_35743 offset ext4_io_end 0 35743 NULL
159815 +enable_so_ggtt_probe_common_fndecl_35744 ggtt_probe_common fndecl 2 35744 NULL
159816 +enable_so_alauda_write_data_fndecl_35748 alauda_write_data fndecl 3-2 35748 NULL
159817 +enable_so_goodix_i2c_read_fndecl_35755 goodix_i2c_read fndecl 4 35755 NULL nohasharray
159818 +enable_so_c4_add_card_fndecl_35755 c4_add_card fndecl 3 35755 &enable_so_goodix_i2c_read_fndecl_35755 nohasharray
159819 +enable_so_buftot_msm_perf_state_35755 buftot msm_perf_state 0 35755 &enable_so_c4_add_card_fndecl_35755
159820 +enable_so_left_qxl_urect_35760 left qxl_urect 0 35760 NULL
159821 +enable_so_fh_epd_frame_35764 fh epd_frame 0 35764 NULL
159822 +enable_so_ath9k_dump_btcoex_fndecl_35766 ath9k_dump_btcoex fndecl 0 35766 NULL
159823 +enable_so_channels_snd_usb_substream_35767 channels snd_usb_substream 0 35767 NULL nohasharray
159824 +enable_so_nvkm_mm_tail_fndecl_35767 nvkm_mm_tail fndecl 6-4-3 35767 &enable_so_channels_snd_usb_substream_35767
159825 +enable_so_virtscsi_compute_resid_fndecl_35772 virtscsi_compute_resid fndecl 2 35772 NULL nohasharray
159826 +enable_so_s_hdrwords_qib_qp_35772 s_hdrwords qib_qp 0 35772 &enable_so_virtscsi_compute_resid_fndecl_35772
159827 +enable_so_data0_sisusb_command_35773 data0 sisusb_command 0 35773 NULL
159828 +enable_so_arizona_find_fratio_fndecl_35779 arizona_find_fratio fndecl 0 35779 NULL
159829 +enable_so_mem_vardecl_matroxfb_base_c_35780 mem vardecl_matroxfb_base.c 0 35780 NULL
159830 +enable_so_uv_systab_efi_35786 uv_systab efi 0 35786 NULL
159831 +enable_so_encap_size_brnf_frag_data_35787 encap_size brnf_frag_data 0 35787 NULL
159832 +enable_so_ib_uverbs_modify_srq_fndecl_35804 ib_uverbs_modify_srq fndecl 3 35804 NULL nohasharray
159833 +enable_so_alloc_mon_bin_get_35804 alloc mon_bin_get 0 35804 &enable_so_ib_uverbs_modify_srq_fndecl_35804
159834 +enable_so_ext3_xattr_get_fndecl_35806 ext3_xattr_get fndecl 0 35806 NULL
159835 +enable_so_error_error_null_Frame_tx_start_read_fndecl_35811 error_error_null_Frame_tx_start_read fndecl 3 35811 NULL
159836 +enable_so_send_ctrl_pipe_us_data_35813 send_ctrl_pipe us_data 0 35813 NULL
159837 +enable_so_used_tty_buffer_35815 used tty_buffer 0 35815 NULL
159838 +enable_so_number_of_controls_controlcache_6205_35817 number_of_controls controlcache_6205 0 35817 NULL
159839 +enable_so_headroom_caifsock_35821 headroom caifsock 0 35821 NULL
159840 +enable_so_leaf_cut_from_buffer_fndecl_35824 leaf_cut_from_buffer fndecl 4 35824 NULL
159841 +enable_so_rx_buffer_padding_efx_nic_type_35825 rx_buffer_padding efx_nic_type 0 35825 NULL
159842 +enable_so_VFP_kyrofb_info_35826 VFP kyrofb_info 0 35826 NULL
159843 +enable_so_cx231xx_v4l2_read_fndecl_35829 cx231xx_v4l2_read fndecl 3 35829 NULL
159844 +enable_so_env_end_mm_struct_35831 env_end mm_struct 0 35831 NULL nohasharray
159845 +enable_so_twl_load_sgl_fndecl_35831 twl_load_sgl fndecl 5 35831 &enable_so_env_end_mm_struct_35831 nohasharray
159846 +enable_so_num_pmkids_ndis_80211_capability_35831 num_pmkids ndis_80211_capability 0 35831 &enable_so_twl_load_sgl_fndecl_35831
159847 +enable_so_srq_size_srpt_device_35833 srq_size srpt_device 0 35833 NULL
159848 +enable_so_request_sz_MPT3SAS_ADAPTER_35834 request_sz MPT3SAS_ADAPTER 0 35834 NULL
159849 +enable_so_paging32_get_level1_sp_gpa_fndecl_35837 paging32_get_level1_sp_gpa fndecl 0 35837 NULL
159850 +enable_so_size_mvneta_tx_queue_35842 size mvneta_tx_queue 0 35842 NULL
159851 +enable_so_clk_core_enable_fndecl_35844 clk_core_enable fndecl 0 35844 NULL
159852 +enable_so_l_iclog_size_xlog_35849 l_iclog_size xlog 0 35849 NULL
159853 +enable_so_snd_pcm_format_physical_width_fndecl_35858 snd_pcm_format_physical_width fndecl 0 35858 NULL
159854 +enable_so_ipw_write_packet_sent_callback_fndecl_35859 ipw_write_packet_sent_callback fndecl 2 35859 NULL
159855 +enable_so_start_vga_cam_fndecl_35860 start_vga_cam fndecl 0 35860 NULL
159856 +enable_so_check_acl_fndecl_35867 check_acl fndecl 0 35867 NULL
159857 +enable_so_usb_stor_bulk_transfer_sglist_fndecl_35871 usb_stor_bulk_transfer_sglist fndecl 5-2-4 35871 NULL
159858 +enable_so_pcol_add_page_fndecl_35872 pcol_add_page fndecl 3 35872 NULL
159859 +enable_so_snd_hdsp_midi_output_possible_fndecl_35873 snd_hdsp_midi_output_possible fndecl 0 35873 NULL
159860 +enable_so_shared_out_nid_ca0132_spec_35876 shared_out_nid ca0132_spec 0 35876 NULL
159861 +enable_so_st_sensors_spi_read_fndecl_35890 st_sensors_spi_read fndecl 4 35890 NULL
159862 +enable_so_lpuart_dma_tx_fndecl_35902 lpuart_dma_tx fndecl 2 35902 NULL nohasharray
159863 +enable_so_nft_data_dump_fndecl_35902 nft_data_dump fndecl 5 35902 &enable_so_lpuart_dma_tx_fndecl_35902
159864 +enable_so_fe_group_ext4_free_extent_35905 fe_group ext4_free_extent 0 35905 NULL nohasharray
159865 +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
159866 +enable_so_lirc_base_dev_vardecl_lirc_dev_c_35907 lirc_base_dev vardecl_lirc_dev.c 0 35907 NULL
159867 +enable_so_btrfs_set_stack_chunk_num_stripes_fndecl_35911 btrfs_set_stack_chunk_num_stripes fndecl 2 35911 NULL
159868 +enable_so_cifs_utf16_bytes_fndecl_35914 cifs_utf16_bytes fndecl 0 35914 NULL
159869 +enable_so_num_sensors_fimc_md_35915 num_sensors fimc_md 0 35915 NULL
159870 +enable_so_right_vardecl_matroxfb_base_c_35916 right vardecl_matroxfb_base.c 0 35916 NULL
159871 +enable_so_packet_count_efx_loopback_state_35918 packet_count efx_loopback_state 0 35918 NULL
159872 +enable_so_max_height_sh_mobile_ceu_dev_35922 max_height sh_mobile_ceu_dev 0 35922 NULL nohasharray
159873 +enable_so_sigma_fw_load_control_fndecl_35922 sigma_fw_load_control fndecl 3 35922 &enable_so_max_height_sh_mobile_ceu_dev_35922
159874 +enable_so_softback_end_vardecl_fbcon_c_35923 softback_end vardecl_fbcon.c 0 35923 NULL
159875 +enable_so_n_algs_wmfw_adsp1_id_hdr_35926 n_algs wmfw_adsp1_id_hdr 0 35926 NULL
159876 +enable_so_ieee802154_hdr_minlen_fndecl_35927 ieee802154_hdr_minlen fndecl 0 35927 NULL
159877 +enable_so_bytes_written_cq_fcp_rq_desc_35931 bytes_written cq_fcp_rq_desc 0 35931 NULL
159878 +enable_so_length_isp1362_ep_35933 length isp1362_ep 0 35933 NULL nohasharray
159879 +enable_so_dma_buf_size_ddb_input_35933 dma_buf_size ddb_input 0 35933 &enable_so_length_isp1362_ep_35933 nohasharray
159880 +enable_so_width_drm_radeon_texture_35933 width drm_radeon_texture 0 35933 &enable_so_dma_buf_size_ddb_input_35933
159881 +enable_so_snd_pcm_new_stream_fndecl_35934 snd_pcm_new_stream fndecl 3 35934 NULL
159882 +enable_so_disk_stack_limits_fndecl_35936 disk_stack_limits fndecl 3 35936 NULL
159883 +enable_so_wMaxPacketSize_wdm_device_35940 wMaxPacketSize wdm_device 0 35940 NULL
159884 +enable_so____alloc_bootmem_nopanic_fndecl_35945 ___alloc_bootmem_nopanic fndecl 2-1-3-4 35945 NULL nohasharray
159885 +enable_so_wil_write_file_txmgmt_fndecl_35945 wil_write_file_txmgmt fndecl 3 35945 &enable_so____alloc_bootmem_nopanic_fndecl_35945
159886 +enable_so_isl1208_i2c_read_regs_fndecl_35952 isl1208_i2c_read_regs fndecl 4 35952 NULL
159887 +enable_so_nx_fw_cmd_set_mtu_fndecl_35954 nx_fw_cmd_set_mtu fndecl 2 35954 NULL
159888 +enable_so_fat_uni_to_x8_fndecl_35959 fat_uni_to_x8 fndecl 0 35959 NULL
159889 +enable_so_s_root_block_affs_sb_info_35962 s_root_block affs_sb_info 0 35962 NULL
159890 +enable_so_num_entries_compat_ip6t_replace_35966 num_entries compat_ip6t_replace 0 35966 NULL nohasharray
159891 +enable_so_buf_size_si470x_device_35966 buf_size si470x_device 0 35966 &enable_so_num_entries_compat_ip6t_replace_35966
159892 +enable_so_flows_tc_sfq_qopt_35973 flows tc_sfq_qopt 0 35973 NULL
159893 +enable_so_max_df_size_ipq_35974 max_df_size ipq 0 35974 NULL nohasharray
159894 +enable_so_pf_num_bnx2x_35974 pf_num bnx2x 0 35974 &enable_so_max_df_size_ipq_35974
159895 +enable_so_bus_myri10ge_rx_done_35977 bus myri10ge_rx_done 0 35977 NULL
159896 +enable_so_pn_sendmsg_fndecl_35979 pn_sendmsg fndecl 3 35979 NULL
159897 +enable_so_num_dacs_hda_multi_out_35981 num_dacs hda_multi_out 0 35981 NULL
159898 +enable_so_ccid_getsockopt_builtin_ccids_fndecl_35985 ccid_getsockopt_builtin_ccids fndecl 2 35985 NULL
159899 +enable_so_if_spi_prog_main_firmware_check_len_fndecl_35990 if_spi_prog_main_firmware_check_len fndecl 0 35990 NULL
159900 +enable_so_perf_output_skip_fndecl_35994 perf_output_skip fndecl 2 35994 NULL
159901 +enable_so_mss_cache_tcp_sock_35995 mss_cache tcp_sock 0 35995 NULL
159902 +enable_so_daddr_fsl_edma_hw_tcd_35996 daddr fsl_edma_hw_tcd 0 35996 NULL nohasharray
159903 +enable_so_address_acpi_nfit_system_address_35996 address acpi_nfit_system_address 0 35996 &enable_so_daddr_fsl_edma_hw_tcd_35996
159904 +enable_so_poll_vardecl_hfcpci_c_36001 poll vardecl_hfcpci.c 0 36001 NULL nohasharray
159905 +enable_so_fuse_fill_write_pages_fndecl_36001 fuse_fill_write_pages fndecl 4-0 36001 &enable_so_poll_vardecl_hfcpci_c_36001 nohasharray
159906 +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
159907 +enable_so_v4l2_event_subscribe_fndecl_36004 v4l2_event_subscribe fndecl 3 36004 NULL
159908 +enable_so_ntb_transport_max_size_fndecl_36009 ntb_transport_max_size fndecl 0 36009 NULL nohasharray
159909 +enable_so_max_rx_kingsun_cb_36009 max_rx kingsun_cb 0 36009 &enable_so_ntb_transport_max_size_fndecl_36009 nohasharray
159910 +enable_so_igb_alloc_q_vector_fndecl_36009 igb_alloc_q_vector fndecl 4-6 36009 &enable_so_max_rx_kingsun_cb_36009 nohasharray
159911 +enable_so_bdev_logical_block_size_fndecl_36009 bdev_logical_block_size fndecl 0 36009 &enable_so_igb_alloc_q_vector_fndecl_36009
159912 +enable_so___nfs4_proc_set_acl_fndecl_36018 __nfs4_proc_set_acl fndecl 3 36018 NULL
159913 +enable_so_n_sg_vscsibk_pend_36028 n_sg vscsibk_pend 0 36028 NULL
159914 +enable_so_count_sgentry64_36033 count sgentry64 0 36033 NULL
159915 +enable_so_NumEraseUnits_NFTLMediaHeader_36036 NumEraseUnits NFTLMediaHeader 0 36036 NULL
159916 +enable_so_insert_bio_sectors_search_36037 insert_bio_sectors search 0 36037 NULL
159917 +enable_so_thread_notes_elf_note_info_36040 thread_notes elf_note_info 0 36040 NULL
159918 +enable_so_update_ind_extent_range_fndecl_36049 update_ind_extent_range fndecl 3 36049 NULL
159919 +enable_so_manual_retry_count_local_info_36060 manual_retry_count local_info 0 36060 NULL
159920 +enable_so_block_size_nvkm_mm_36062 block_size nvkm_mm 0 36062 NULL
159921 +enable_so_rx_status_len_bcm_rsb_36064 rx_status_len bcm_rsb 0 36064 NULL
159922 +enable_so_piobcnt2k_qib_devdata_36065 piobcnt2k qib_devdata 0 36065 NULL
159923 +enable_so_xfrm_compile_policy_fndecl_36070 xfrm_compile_policy fndecl 4 36070 NULL
159924 +enable_so_lpfc_idiag_queacc_read_qe_fndecl_36072 lpfc_idiag_queacc_read_qe fndecl 0-2 36072 NULL
159925 +enable_so_usb_stor_control_msg_fndecl_36073 usb_stor_control_msg fndecl 8-2 36073 NULL
159926 +enable_so_wa_populate_buf_in_urb_fndecl_36077 wa_populate_buf_in_urb fndecl 4-3 36077 NULL
159927 +enable_so_blocksize_alauda_media_info_36080 blocksize alauda_media_info 0 36080 NULL nohasharray
159928 +enable_so_nwriters_stress_vardecl_locktorture_c_36080 nwriters_stress vardecl_locktorture.c 0 36080 &enable_so_blocksize_alauda_media_info_36080
159929 +enable_so_wdm_write_fndecl_36084 wdm_write fndecl 3 36084 NULL
159930 +enable_so_xfs_extent_busy_insert_fndecl_36087 xfs_extent_busy_insert fndecl 4-3-2 36087 NULL
159931 +enable_so_smq_create_fndecl_36088 smq_create fndecl 1 36088 NULL
159932 +enable_so_ext3_try_to_allocate_with_rsv_fndecl_36090 ext3_try_to_allocate_with_rsv fndecl 0-5 36090 NULL
159933 +enable_so_wil_write_file_ssid_fndecl_36097 wil_write_file_ssid fndecl 3 36097 NULL
159934 +enable_so_set_extent_uptodate_fndecl_36117 set_extent_uptodate fndecl 3-2 36117 NULL nohasharray
159935 +enable_so_nr_requests_request_queue_36117 nr_requests request_queue 0 36117 &enable_so_set_extent_uptodate_fndecl_36117
159936 +enable_so_xfs_trans_read_buf_map_fndecl_36121 xfs_trans_read_buf_map fndecl 5 36121 NULL
159937 +enable_so_ipr_change_queue_depth_fndecl_36124 ipr_change_queue_depth fndecl 2 36124 NULL
159938 +enable_so_dictionary_size_disk_comp_opts_36125 dictionary_size disk_comp_opts 0 36125 NULL
159939 +enable_so_bytesperline_v4l2_plane_pix_format_36133 bytesperline v4l2_plane_pix_format 0 36133 NULL
159940 +enable_so_x25_sendmsg_fndecl_36140 x25_sendmsg fndecl 3 36140 NULL
159941 +enable_so_f2fs_fiemap_fndecl_36141 f2fs_fiemap fndecl 3-4 36141 NULL
159942 +enable_so_lirc_buffer_init_fndecl_36145 lirc_buffer_init fndecl 2 36145 NULL
159943 +enable_so_spi_xcomm_sync_config_fndecl_36146 spi_xcomm_sync_config fndecl 0 36146 NULL
159944 +enable_so_create_empty_buffers_fndecl_36152 create_empty_buffers fndecl 2 36152 NULL
159945 +enable_so_payload_camif_vp_36153 payload camif_vp 0 36153 NULL
159946 +enable_so_ad9523_reg_access_fndecl_36157 ad9523_reg_access fndecl 2 36157 NULL
159947 +enable_so_ieee80211_send_probe_req_fndecl_36159 ieee80211_send_probe_req fndecl 7-5 36159 NULL
159948 +enable_so_next_nilfs_segsum_info_36161 next nilfs_segsum_info 0 36161 NULL
159949 +enable_so_clone_sources_count_btrfs_ioctl_send_args_36165 clone_sources_count btrfs_ioctl_send_args 0 36165 NULL
159950 +enable_so_gsm_control_reply_fndecl_36166 gsm_control_reply fndecl 4 36166 NULL
159951 +enable_so_vm_mmap_fndecl_36168 vm_mmap fndecl 3-0 36168 NULL
159952 +enable_so_qd2offset_fndecl_36177 qd2offset fndecl 0 36177 NULL
159953 +enable_so_length_octeon_droq_info_36178 length octeon_droq_info 0 36178 NULL
159954 +enable_so_nr_ion_platform_data_36179 nr ion_platform_data 0 36179 NULL
159955 +enable_so_len_ib_ucm_mra_36185 len ib_ucm_mra 0 36185 NULL
159956 +enable_so_flash_size_jffs2_sb_info_36187 flash_size jffs2_sb_info 0 36187 NULL
159957 +enable_so_batadv_interface_rx_fndecl_36190 batadv_interface_rx fndecl 4 36190 NULL
159958 +enable_so_prealloc_buffer_size_snd_dmaengine_pcm_config_36192 prealloc_buffer_size snd_dmaengine_pcm_config 0 36192 NULL
159959 +enable_so_objlayout_read_done_fndecl_36193 objlayout_read_done fndecl 2 36193 NULL
159960 +enable_so_range_min_regmap_range_36196 range_min regmap_range 0 36196 NULL
159961 +enable_so_n_cap_bufs_via_camera_36198 n_cap_bufs via_camera 0 36198 NULL
159962 +enable_so_ubifs_write_end_fndecl_36202 ubifs_write_end fndecl 4-3 36202 NULL nohasharray
159963 +enable_so_sock_setbindtodevice_fndecl_36202 sock_setbindtodevice fndecl 3 36202 &enable_so_ubifs_write_end_fndecl_36202
159964 +enable_so_hmask_xfrm_policy_hash_36203 hmask xfrm_policy_hash 0 36203 NULL
159965 +enable_so_f2fs_zero_range_fndecl_36204 f2fs_zero_range fndecl 2-3 36204 NULL
159966 +enable_so_blksz_mmc_ioc_cmd_36207 blksz mmc_ioc_cmd 0 36207 NULL
159967 +enable_so_xfs_vm_write_begin_fndecl_36211 xfs_vm_write_begin fndecl 3-4 36211 NULL
159968 +enable_so_btrfs_find_all_roots_fndecl_36213 btrfs_find_all_roots fndecl 3 36213 NULL nohasharray
159969 +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
159970 +enable_so_v4l2_ctrl_g_ctrl_fndecl_36216 v4l2_ctrl_g_ctrl fndecl 0 36216 NULL
159971 +enable_so_bnx2i_send_nl_mesg_fndecl_36218 bnx2i_send_nl_mesg fndecl 4 36218 NULL
159972 +enable_so_alloc_xen_mmio_fndecl_36220 alloc_xen_mmio fndecl 0-1 36220 NULL
159973 +enable_so_page_size_spi_eeprom_36227 page_size spi_eeprom 0 36227 NULL nohasharray
159974 +enable_so_MaxDevHandle_mpt3sas_facts_36227 MaxDevHandle mpt3sas_facts 0 36227 &enable_so_page_size_spi_eeprom_36227
159975 +enable_so_reserve_space_fndecl_36229 reserve_space fndecl 2 36229 NULL
159976 +enable_so_add_async_extent_fndecl_36239 add_async_extent fndecl 2-3 36239 NULL
159977 +enable_so_surfaceram_base_qxl_device_36241 surfaceram_base qxl_device 0 36241 NULL nohasharray
159978 +enable_so_data_queues_rt2x00_dev_36241 data_queues rt2x00_dev 0 36241 &enable_so_surfaceram_base_qxl_device_36241
159979 +enable_so_vhost_kvzalloc_fndecl_36242 vhost_kvzalloc fndecl 1 36242 NULL
159980 +enable_so_histogram_alloc_size_dm_stat_36247 histogram_alloc_size dm_stat 0 36247 NULL nohasharray
159981 +enable_so_fpage_offs_genwqe_sgl_36247 fpage_offs genwqe_sgl 0 36247 &enable_so_histogram_alloc_size_dm_stat_36247
159982 +enable_so_xfs_imap_fndecl_36254 xfs_imap fndecl 3 36254 NULL
159983 +enable_so_svc_create_pooled_fndecl_36258 svc_create_pooled fndecl 2 36258 NULL
159984 +enable_so_dma_nv_skb_map_36260 dma nv_skb_map 0 36260 NULL
159985 +enable_so_nvkm_fifo_channel_create__fndecl_36261 nvkm_fifo_channel_create_ fndecl 6-9 36261 NULL nohasharray
159986 +enable_so_size_sge_txq_36261 size sge_txq 0 36261 &enable_so_nvkm_fifo_channel_create__fndecl_36261
159987 +enable_so_isr_cmd_cmplt_read_fndecl_36268 isr_cmd_cmplt_read fndecl 3 36268 NULL
159988 +enable_so_pwc_get_fps_Timon_fndecl_36269 pwc_get_fps_Timon fndecl 0 36269 NULL nohasharray
159989 +enable_so_cydata_ofsl_cyttsp4_sysinfo_data_36269 cydata_ofsl cyttsp4_sysinfo_data 0 36269 &enable_so_pwc_get_fps_Timon_fndecl_36269
159990 +enable_so_scsi_alloc_sgtable_fndecl_36270 scsi_alloc_sgtable fndecl 2 36270 NULL
159991 +enable_so_num_uf_bufs_bfa_iocfc_fwcfg_s_36271 num_uf_bufs bfa_iocfc_fwcfg_s 0 36271 NULL
159992 +enable_so_sita_init_fndecl_36274 sita_init fndecl 1-2 36274 NULL
159993 +enable_so_s_clusters_per_group_ext4_sb_info_36278 s_clusters_per_group ext4_sb_info 0 36278 NULL nohasharray
159994 +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
159995 +enable_so__dump_buf_dif_order_vardecl_36281 _dump_buf_dif_order vardecl 0 36281 NULL
159996 +enable_so_hci_check_pending_name_fndecl_36282 hci_check_pending_name fndecl 5 36282 NULL
159997 +enable_so_calc_sectors_fndecl_36288 calc_sectors fndecl 2 36288 NULL nohasharray
159998 +enable_so_len_ethtool_tunable_36288 len ethtool_tunable 0 36288 &enable_so_calc_sectors_fndecl_36288
159999 +enable_so_collection_size_hid_device_36289 collection_size hid_device 0 36289 NULL
160000 +enable_so___btrfs_lookup_bio_sums_fndecl_36290 __btrfs_lookup_bio_sums fndecl 4 36290 NULL
160001 +enable_so_offs_h_fimc_frame_36295 offs_h fimc_frame 0 36295 NULL nohasharray
160002 +enable_so_iscsi_tcp_recv_skb_fndecl_36295 iscsi_tcp_recv_skb fndecl 3-0 36295 &enable_so_offs_h_fimc_frame_36295
160003 +enable_so_ssl_next_nilfs_snapshot_list_36302 ssl_next nilfs_snapshot_list 0 36302 NULL
160004 +enable_so_paging64_prefetch_gpte_fndecl_36303 paging64_prefetch_gpte fndecl 4 36303 NULL
160005 +enable_so_command_size_drm_vmw_execbuf_arg_36305 command_size drm_vmw_execbuf_arg 0 36305 NULL
160006 +enable_so_tegra_fb_alloc_fndecl_36306 tegra_fb_alloc fndecl 4 36306 NULL
160007 +enable_so_size_kernfs_elem_attr_36307 size kernfs_elem_attr 0 36307 NULL
160008 +enable_so_snd_dma_alloc_pages_fndecl_36308 snd_dma_alloc_pages fndecl 3 36308 NULL nohasharray
160009 +enable_so_mwifiex_info_read_fndecl_36308 mwifiex_info_read fndecl 3 36308 &enable_so_snd_dma_alloc_pages_fndecl_36308 nohasharray
160010 +enable_so_len_etd_priv_36308 len etd_priv 0 36308 &enable_so_mwifiex_info_read_fndecl_36308
160011 +enable_so_max_transfer_snd_usb_midi_out_endpoint_36311 max_transfer snd_usb_midi_out_endpoint 0 36311 NULL
160012 +enable_so_chunk_size_mdp_superblock_s_36313 chunk_size mdp_superblock_s 0 36313 NULL
160013 +enable_so_n_descsz_elf64_note_36314 n_descsz elf64_note 0 36314 NULL
160014 +enable_so_dpdData_size_wsm_configuration_36315 dpdData_size wsm_configuration 0 36315 NULL
160015 +enable_so_acpi_tb_parse_root_table_fndecl_36316 acpi_tb_parse_root_table fndecl 1 36316 NULL
160016 +enable_so_fsbno_xfs_alloc_arg_36318 fsbno xfs_alloc_arg 0 36318 NULL nohasharray
160017 +enable_so_move_buffer_data_fndecl_36318 move_buffer_data fndecl 2 36318 &enable_so_fsbno_xfs_alloc_arg_36318
160018 +enable_so_apei_exec_run_optional_fndecl_36319 apei_exec_run_optional fndecl 0 36319 NULL
160019 +enable_so_file_size_squashfs_lreg_inode_36323 file_size squashfs_lreg_inode 0 36323 NULL
160020 +enable_so_client_channels_snd_pcm_plugin_36324 client_channels snd_pcm_plugin 0 36324 NULL
160021 +enable_so_xfs_symlink_blocks_fndecl_36326 xfs_symlink_blocks fndecl 0-2 36326 NULL nohasharray
160022 +enable_so_xferred_rbd_obj_request_36326 xferred rbd_obj_request 0 36326 &enable_so_xfs_symlink_blocks_fndecl_36326
160023 +enable_so_do_verify_xattr_datum_fndecl_36328 do_verify_xattr_datum fndecl 0 36328 NULL
160024 +enable_so_ima_write_template_field_data_fndecl_36336 ima_write_template_field_data fndecl 2 36336 NULL nohasharray
160025 +enable_so_create_trace_kprobe_fndecl_36336 create_trace_kprobe fndecl 1 36336 &enable_so_ima_write_template_field_data_fndecl_36336
160026 +enable_so_hidp_send_frame_fndecl_36338 hidp_send_frame fndecl 3 36338 NULL
160027 +enable_so_digest_encode_fndecl_36340 digest_encode fndecl 0 36340 NULL
160028 +enable_so_rds_tcp_data_recv_fndecl_36343 rds_tcp_data_recv fndecl 4-3 36343 NULL
160029 +enable_so_iowarrior_read_fndecl_36344 iowarrior_read fndecl 3 36344 NULL
160030 +enable_so_osd_req_write_kern_fndecl_36349 osd_req_write_kern fndecl 5 36349 NULL
160031 +enable_so_inode_blocks_efs_sb_info_36351 inode_blocks efs_sb_info 0 36351 NULL
160032 +enable_so_num_crtc_cirrus_device_36358 num_crtc cirrus_device 0 36358 NULL
160033 +enable_so_ipxrtr_route_packet_fndecl_36359 ipxrtr_route_packet fndecl 4 36359 NULL
160034 +enable_so_snd_pcm_lib_write_transfer_fndecl_36369 snd_pcm_lib_write_transfer fndecl 5 36369 NULL
160035 +enable_so_kvm_vcpu_read_guest_atomic_fndecl_36372 kvm_vcpu_read_guest_atomic fndecl 2-4 36372 NULL
160036 +enable_so_addr_len_ipmi_req_36374 addr_len ipmi_req 0 36374 NULL
160037 +enable_so_rx_ring_size_adm8211_priv_36391 rx_ring_size adm8211_priv 0 36391 NULL
160038 +enable_so_mtu_l2cap_le_conn_rsp_36399 mtu l2cap_le_conn_rsp 0 36399 NULL nohasharray
160039 +enable_so_max_rxsz_ulp_iscsi_info_36399 max_rxsz ulp_iscsi_info 0 36399 &enable_so_mtu_l2cap_le_conn_rsp_36399
160040 +enable_so_batadv_tt_update_orig_fndecl_36402 batadv_tt_update_orig fndecl 4-6 36402 NULL
160041 +enable_so_il4965_hwrate_to_tx_control_fndecl_36403 il4965_hwrate_to_tx_control fndecl 2 36403 NULL
160042 +enable_so_pipeline_dec_packet_out_read_fndecl_36407 pipeline_dec_packet_out_read fndecl 3 36407 NULL
160043 +enable_so_rproc_state_read_fndecl_36410 rproc_state_read fndecl 3 36410 NULL
160044 +enable_so_nl80211_send_disconnected_fndecl_36411 nl80211_send_disconnected fndecl 5 36411 NULL
160045 +enable_so_iter_file_splice_write_fndecl_36415 iter_file_splice_write fndecl 4 36415 NULL
160046 +enable_so_data_len_hfa384x_rx_frame_36417 data_len hfa384x_rx_frame 0 36417 NULL
160047 +enable_so_altera_set_ir_pre_fndecl_36420 altera_set_ir_pre fndecl 2 36420 NULL nohasharray
160048 +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
160049 +enable_so_create_xattr_fndecl_36425 create_xattr fndecl 5 36425 NULL
160050 +enable_so_essid_len_ipw2100_priv_36426 essid_len ipw2100_priv 0 36426 NULL
160051 +enable_so_mt2266_writeregs_fndecl_36430 mt2266_writeregs fndecl 3 36430 NULL
160052 +enable_so_rx_fifo_override_sh_msiof_spi_info_36440 rx_fifo_override sh_msiof_spi_info 0 36440 NULL
160053 +enable_so_reserved_page_order_st_buffer_36445 reserved_page_order st_buffer 0 36445 NULL
160054 +enable_so_size_packet_info_36454 size packet_info 0 36454 NULL
160055 +enable_so_hSync_width_panel_info_36455 hSync_width panel_info 0 36455 NULL
160056 +enable_so_isr_host_acknowledges_read_fndecl_36459 isr_host_acknowledges_read fndecl 3 36459 NULL nohasharray
160057 +enable_so_ov511_i2c_r_fndecl_36459 ov511_i2c_r fndecl 0 36459 &enable_so_isr_host_acknowledges_read_fndecl_36459
160058 +enable_so_avail_snd_compr_avail_36463 avail snd_compr_avail 0 36463 NULL
160059 +enable_so_strn_len_fndecl_36473 strn_len fndecl 0 36473 NULL
160060 +enable_so_rlim_max_rlimit_36476 rlim_max rlimit 0 36476 NULL nohasharray
160061 +enable_so_v9fs_xattr_get_fndecl_36476 v9fs_xattr_get fndecl 4 36476 &enable_so_rlim_max_rlimit_36476
160062 +enable_so_portnum_lvs_rh_36480 portnum lvs_rh 0 36480 NULL
160063 +enable_so_rx_len_yam_port_36481 rx_len yam_port 0 36481 NULL
160064 +enable_so_fb_show_logo_line_fndecl_36485 fb_show_logo_line fndecl 4 36485 NULL nohasharray
160065 +enable_so_t_task_lba_se_cmd_36485 t_task_lba se_cmd 0 36485 &enable_so_fb_show_logo_line_fndecl_36485 nohasharray
160066 +enable_so_i2400m_zrealloc_2x_fndecl_36485 i2400m_zrealloc_2x fndecl 3 36485 &enable_so_t_task_lba_se_cmd_36485
160067 +enable_so_read_bufsize_carl9170_debugfs_fops_36488 read_bufsize carl9170_debugfs_fops 0 36488 NULL
160068 +enable_so_p9_client_prepare_req_fndecl_36492 p9_client_prepare_req fndecl 3 36492 NULL
160069 +enable_so_tipc_msg_make_bundle_fndecl_36497 tipc_msg_make_bundle fndecl 3 36497 NULL
160070 +enable_so_do_fault_around_fndecl_36500 do_fault_around fndecl 2-4 36500 NULL
160071 +enable_so_queue_rx_frame_fndecl_36501 queue_rx_frame fndecl 2 36501 NULL nohasharray
160072 +enable_so_sg_max_nents_hwif_s_36501 sg_max_nents hwif_s 0 36501 &enable_so_queue_rx_frame_fndecl_36501
160073 +enable_so_start_nid_hdac_device_36504 start_nid hdac_device 0 36504 NULL
160074 +enable_so_create_pinned_em_fndecl_36508 create_pinned_em fndecl 3-4-5-7-6-2 36508 NULL
160075 +enable_so_skge_change_mtu_fndecl_36510 skge_change_mtu fndecl 2 36510 NULL
160076 +enable_so_byte_count_vmtransfer_page_range_36511 byte_count vmtransfer_page_range 0 36511 NULL
160077 +enable_so_hpfs_map_4sectors_fndecl_36523 hpfs_map_4sectors fndecl 2 36523 NULL
160078 +enable_so_igu_sb_cnt_bnx2x_36525 igu_sb_cnt bnx2x 0 36525 NULL
160079 +enable_so_ue_num_asd_bios_chim_struct_36526 ue_num asd_bios_chim_struct 0 36526 NULL
160080 +enable_so_vid_end_switchdev_obj_vlan_36528 vid_end switchdev_obj_vlan 0 36528 NULL nohasharray
160081 +enable_so_length_ipath_sge_36528 length ipath_sge 0 36528 &enable_so_vid_end_switchdev_obj_vlan_36528
160082 +enable_so_ftdi_elan_edset_output_fndecl_36530 ftdi_elan_edset_output fndecl 0 36530 NULL
160083 +enable_so_sk_tcplen_svc_sock_36531 sk_tcplen svc_sock 0 36531 NULL
160084 +enable_so_nbpf_bytes_left_fndecl_36536 nbpf_bytes_left fndecl 0 36536 NULL
160085 +enable_so_acpi_os_read_memory_fndecl_36537 acpi_os_read_memory fndecl 3-1 36537 NULL
160086 +enable_so_actual_resp_len_be_cmd_resp_hdr_36543 actual_resp_len be_cmd_resp_hdr 0 36543 NULL
160087 +enable_so_pi_read_regr_fndecl_36548 pi_read_regr fndecl 0 36548 NULL
160088 +enable_so_size_nvkm_gpuobj_36549 size nvkm_gpuobj 0 36549 NULL
160089 +enable_so_net2272_write_packet_fndecl_36550 net2272_write_packet fndecl 4 36550 NULL
160090 +enable_so_max_sg_segs_vardecl_st_c_36551 max_sg_segs vardecl_st.c 0 36551 NULL
160091 +enable_so_ocfs2_fallocate_fndecl_36555 ocfs2_fallocate fndecl 3-4 36555 NULL nohasharray
160092 +enable_so_capture_chips_pcxhr_mgr_36555 capture_chips pcxhr_mgr 0 36555 &enable_so_ocfs2_fallocate_fndecl_36555
160093 +enable_so_fb_try_mode_fndecl_36560 fb_try_mode fndecl 4 36560 NULL
160094 +enable_so_fuse_file_compat_ioctl_fndecl_36564 fuse_file_compat_ioctl fndecl 2 36564 NULL
160095 +enable_so_sc_sq_depth_svcxprt_rdma_36568 sc_sq_depth svcxprt_rdma 0 36568 NULL
160096 +enable_so_sge_size_MPT2SAS_ADAPTER_36569 sge_size MPT2SAS_ADAPTER 0 36569 NULL nohasharray
160097 +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
160098 +enable_so_frag_thresh_orinoco_private_36570 frag_thresh orinoco_private 0 36570 NULL
160099 +enable_so_page_count_agp_memory_36571 page_count agp_memory 0 36571 NULL
160100 +enable_so___register_chrdev_fndecl_36572 __register_chrdev fndecl 0-2-1-3 36572 NULL
160101 +enable_so_do_sys_poll_fndecl_36574 do_sys_poll fndecl 2 36574 NULL
160102 +enable_so_ceph_msgpool_get_fndecl_36577 ceph_msgpool_get fndecl 2 36577 NULL
160103 +enable_so_num_shared_regs_intel_uncore_type_36581 num_shared_regs intel_uncore_type 0 36581 NULL
160104 +enable_so_wusb_prf_fndecl_36582 wusb_prf fndecl 7 36582 NULL nohasharray
160105 +enable_so_audio_write_fndecl_36582 audio_write fndecl 4 36582 &enable_so_wusb_prf_fndecl_36582
160106 +enable_so_s_last_psn_ipath_qp_36584 s_last_psn ipath_qp 0 36584 NULL
160107 +enable_so_rx_ring_size_pcnet32_private_36586 rx_ring_size pcnet32_private 0 36586 NULL
160108 +enable_so__rtl_rc_get_highest_rix_fndecl_36588 _rtl_rc_get_highest_rix fndecl 0 36588 NULL
160109 +enable_so_mwifiex_getlog_read_fndecl_36590 mwifiex_getlog_read fndecl 3 36590 NULL
160110 +enable_so_scan_cnt_ad7280_state_36592 scan_cnt ad7280_state 0 36592 NULL
160111 +enable_so_bgrt_image_size_vardecl_36594 bgrt_image_size vardecl 0 36594 NULL nohasharray
160112 +enable_so_s_2apbshift_ufs_sb_private_info_36594 s_2apbshift ufs_sb_private_info 0 36594 &enable_so_bgrt_image_size_vardecl_36594
160113 +enable_so_reada_add_block_fndecl_36596 reada_add_block fndecl 2 36596 NULL
160114 +enable_so_num_max_snd_ratden_36597 num_max snd_ratden 0 36597 NULL nohasharray
160115 +enable_so_mcp23s08_read_regs_fndecl_36597 mcp23s08_read_regs fndecl 4 36597 &enable_so_num_max_snd_ratden_36597 nohasharray
160116 +enable_so_UnitSizeFactor_NFTLMediaHeader_36597 UnitSizeFactor NFTLMediaHeader 0 36597 &enable_so_mcp23s08_read_regs_fndecl_36597
160117 +enable_so_update_block_group_fndecl_36600 update_block_group fndecl 4-3 36600 NULL
160118 +enable_so_write_file_spec_scan_ctl_fndecl_36603 write_file_spec_scan_ctl fndecl 3 36603 NULL
160119 +enable_so_xfs_dir2_sf_addname_hard_fndecl_36605 xfs_dir2_sf_addname_hard fndecl 3 36605 NULL nohasharray
160120 +enable_so_reply_len_sg_header_36605 reply_len sg_header 0 36605 &enable_so_xfs_dir2_sf_addname_hard_fndecl_36605
160121 +enable_so_drm_mm_insert_node_generic_fndecl_36608 drm_mm_insert_node_generic fndecl 3 36608 NULL
160122 +enable_so_len_nci_prop_cmd_param_36611 len nci_prop_cmd_param 0 36611 NULL
160123 +enable_so_set_user_nice_fndecl_36618 set_user_nice fndecl 2 36618 NULL
160124 +enable_so_f_pos_file_36619 f_pos file 0 36619 NULL
160125 +enable_so_gamma_size_drm_mode_crtc_lut_36622 gamma_size drm_mode_crtc_lut 0 36622 NULL
160126 +enable_so_raw_serial_size_x509_certificate_36629 raw_serial_size x509_certificate 0 36629 NULL
160127 +enable_so_i915_gem_execbuffer_parse_fndecl_36633 i915_gem_execbuffer_parse fndecl 6-5 36633 NULL nohasharray
160128 +enable_so_opcfg_ofsh_cyttsp4_sysinfo_data_36633 opcfg_ofsh cyttsp4_sysinfo_data 0 36633 &enable_so_i915_gem_execbuffer_parse_fndecl_36633
160129 +enable_so_read_super_block_fndecl_36638 read_super_block fndecl 2 36638 NULL
160130 +enable_so_lpfc_idiag_ctlacc_read_reg_fndecl_36642 lpfc_idiag_ctlacc_read_reg fndecl 0-3 36642 NULL
160131 +enable_so_nls_nullsize_fndecl_36644 nls_nullsize fndecl 0 36644 NULL
160132 +enable_so_pvr2_encoder_write_words_fndecl_36653 pvr2_encoder_write_words fndecl 4 36653 NULL nohasharray
160133 +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
160134 +enable_so_setup_data_read_fndecl_36653 setup_data_read fndecl 3 36653 &enable_so_context_id_iscsi_kwqe_conn_destroy_36653
160135 +enable_so_block_write_end_fndecl_36656 block_write_end fndecl 0-5 36656 NULL
160136 +enable_so___kfifo_dma_in_prepare_r_fndecl_36659 __kfifo_dma_in_prepare_r fndecl 4-5 36659 NULL nohasharray
160137 +enable_so_shmem_alloc_page_fndecl_36659 shmem_alloc_page fndecl 3 36659 &enable_so___kfifo_dma_in_prepare_r_fndecl_36659
160138 +enable_so___tty_alloc_driver_fndecl_36660 __tty_alloc_driver fndecl 1 36660 NULL
160139 +enable_so_qp_alloc_host_work_fndecl_36661 qp_alloc_host_work fndecl 3-5 36661 NULL
160140 +enable_so_dac_channels_mixer_oxygen_model_36662 dac_channels_mixer oxygen_model 0 36662 NULL
160141 +enable_so_max_queue_pairs_virtnet_info_36669 max_queue_pairs virtnet_info 0 36669 NULL
160142 +enable_so_i_file_acl_lo_ext4_inode_36684 i_file_acl_lo ext4_inode 0 36684 NULL
160143 +enable_so_size_drm_map_36685 size drm_map 0 36685 NULL
160144 +enable_so_size_drm_agp_buffer_36687 size drm_agp_buffer 0 36687 NULL
160145 +enable_so_esas2r_max_sectors_vardecl_36688 esas2r_max_sectors vardecl 0 36688 NULL nohasharray
160146 +enable_so_out_kvec_bytes_ceph_connection_36688 out_kvec_bytes ceph_connection 0 36688 &enable_so_esas2r_max_sectors_vardecl_36688 nohasharray
160147 +enable_so_nnode_sz_ubifs_info_36688 nnode_sz ubifs_info 0 36688 &enable_so_out_kvec_bytes_ceph_connection_36688
160148 +enable_so_rx_buffer_len_atl1c_adapter_36691 rx_buffer_len atl1c_adapter 0 36691 NULL
160149 +enable_so_expected_pages_page_collect_36693 expected_pages page_collect 0 36693 NULL
160150 +enable_so_hga_vram_len_vardecl_hgafb_c_36700 hga_vram_len vardecl_hgafb.c 0 36700 NULL
160151 +enable_so_btrfs_free_reserved_extent_fndecl_36706 btrfs_free_reserved_extent fndecl 3-2 36706 NULL
160152 +enable_so_map_szh_cyttsp4_sysinfo_data_36711 map_szh cyttsp4_sysinfo_data 0 36711 NULL
160153 +enable_so_null_major_vardecl_null_blk_c_36718 null_major vardecl_null_blk.c 0 36718 NULL nohasharray
160154 +enable_so_dev_num_tpm_chip_36718 dev_num tpm_chip 0 36718 &enable_so_null_major_vardecl_null_blk_c_36718
160155 +enable_so_reply_usif_notify_36722 reply usif_notify 0 36722 NULL
160156 +enable_so_alloc_blocks_hfsplus_inode_info_36725 alloc_blocks hfsplus_inode_info 0 36725 NULL nohasharray
160157 +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
160158 +enable_so_pnfs_update_layout_fndecl_36733 pnfs_update_layout fndecl 3-4 36733 NULL
160159 +enable_so_common_buffer_phys_smscore_device_t_36739 common_buffer_phys smscore_device_t 0 36739 NULL
160160 +enable_so_batadv_tt_tvlv_ogm_handler_v1_fndecl_36742 batadv_tt_tvlv_ogm_handler_v1 fndecl 5 36742 NULL
160161 +enable_so_early_reserve_e820_fndecl_36744 early_reserve_e820 fndecl 2-1 36744 NULL
160162 +enable_so_s2255_got_frame_fndecl_36746 s2255_got_frame fndecl 2 36746 NULL
160163 +enable_so_channel_hwif_s_36751 channel hwif_s 0 36751 NULL
160164 +enable_so_saved_raid_disk_md_rdev_36752 saved_raid_disk md_rdev 0 36752 NULL
160165 +enable_so_SyS_sched_getattr_fndecl_36760 SyS_sched_getattr fndecl 3 36760 NULL
160166 +enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763 ath6kl_wmi_add_krk_cmd fndecl 2 36763 NULL nohasharray
160167 +enable_so_bufsiz_vardecl_spidev_c_36763 bufsiz vardecl_spidev.c 0 36763 &enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763
160168 +enable_so_iget_xattr_fndecl_36765 iget_xattr fndecl 2 36765 NULL nohasharray
160169 +enable_so_netdev_flow_limit_table_len_vardecl_36765 netdev_flow_limit_table_len vardecl 0 36765 &enable_so_iget_xattr_fndecl_36765
160170 +enable_so_last_index_zap_details_36766 last_index zap_details 0 36766 NULL
160171 +enable_so_ocfs2_rm_xattr_cluster_fndecl_36767 ocfs2_rm_xattr_cluster fndecl 5-4-3 36767 NULL nohasharray
160172 +enable_so_SyS_setgroups_fndecl_36767 SyS_setgroups fndecl 1 36767 &enable_so_ocfs2_rm_xattr_cluster_fndecl_36767
160173 +enable_so_ocfs2_make_clusters_writable_fndecl_36769 ocfs2_make_clusters_writable fndecl 5-4-3 36769 NULL
160174 +enable_so_num_nodes_crush_bucket_tree_36776 num_nodes crush_bucket_tree 0 36776 NULL
160175 +enable_so_usb_serial_generic_write_fndecl_36788 usb_serial_generic_write fndecl 4 36788 NULL
160176 +enable_so_mmio_base_controller_36793 mmio_base controller 0 36793 NULL
160177 +enable_so_rx_count_cooked_sixpack_36794 rx_count_cooked sixpack 0 36794 NULL
160178 +enable_so_pad_bytes_regmap_format_36795 pad_bytes regmap_format 0 36795 NULL
160179 +enable_so_efi_runtime_map_setup_fndecl_36796 efi_runtime_map_setup fndecl 2 36796 NULL
160180 +enable_so_sector_stripe_head_36797 sector stripe_head 0 36797 NULL nohasharray
160181 +enable_so_copy_io_fndecl_36797 copy_io fndecl 3 36797 &enable_so_sector_stripe_head_36797
160182 +enable_so_v4l_bufsize_vardecl_36803 v4l_bufsize vardecl 0 36803 NULL
160183 +enable_so_idetape_chrdev_write_fndecl_36811 idetape_chrdev_write fndecl 3 36811 NULL
160184 +enable_so_mthca_reg_user_mr_fndecl_36815 mthca_reg_user_mr fndecl 2-3 36815 NULL
160185 +enable_so_size_drm_armada_gem_pwrite_36816 size drm_armada_gem_pwrite 0 36816 NULL
160186 +enable_so_mthca_setup_cmd_doorbells_fndecl_36817 mthca_setup_cmd_doorbells fndecl 2 36817 NULL
160187 +enable_so_card_type_nozomi_36822 card_type nozomi 0 36822 NULL
160188 +enable_so_ir_pre_altera_jtag_36823 ir_pre altera_jtag 0 36823 NULL
160189 +enable_so_orig_nents_sg_table_36824 orig_nents sg_table 0 36824 NULL
160190 +enable_so_mlx4_num_eq_uar_fndecl_36830 mlx4_num_eq_uar fndecl 0 36830 NULL
160191 +enable_so_acpi_initialize_tables_fndecl_36832 acpi_initialize_tables fndecl 2 36832 NULL
160192 +enable_so_rx_pg_ring_size_bnx2_36835 rx_pg_ring_size bnx2 0 36835 NULL
160193 +enable_so_total_bytes_btrfs_super_block_36845 total_bytes btrfs_super_block 0 36845 NULL
160194 +enable_so_hfsplus_attr_build_key_fndecl_36846 hfsplus_attr_build_key fndecl 0 36846 NULL
160195 +enable_so_reply_sz_MPT2SAS_ADAPTER_36858 reply_sz MPT2SAS_ADAPTER 0 36858 NULL
160196 +enable_so_raid5_compute_sector_fndecl_36860 raid5_compute_sector fndecl 0-2 36860 NULL
160197 +enable_so_acpi_register_gsi_pic_fndecl_36869 acpi_register_gsi_pic fndecl 0-2 36869 NULL
160198 +enable_so_vtotal_drm_display_mode_36870 vtotal drm_display_mode 0 36870 NULL
160199 +enable_so_int_tasklet_entry_fndecl_36871 int_tasklet_entry fndecl 3 36871 NULL
160200 +enable_so_qlcnic_83xx_sysfs_flash_write_fndecl_36872 qlcnic_83xx_sysfs_flash_write fndecl 4 36872 NULL
160201 +enable_so_self_inum_vardecl_self_c_36873 self_inum vardecl_self.c 0 36873 NULL nohasharray
160202 +enable_so_txd_size_bdx_priv_36873 txd_size bdx_priv 0 36873 &enable_so_self_inum_vardecl_self_c_36873 nohasharray
160203 +enable_so_netlbl_unlabel_init_fndecl_36873 netlbl_unlabel_init fndecl 1 36873 &enable_so_txd_size_bdx_priv_36873
160204 +enable_so_uwb_est_size_vardecl_est_c_36881 uwb_est_size vardecl_est.c 0 36881 NULL
160205 +enable_so_tipc_sendmsg_fndecl_36882 tipc_sendmsg fndecl 3 36882 NULL nohasharray
160206 +enable_so_buf_ptr_size_iscsi_cmd_36882 buf_ptr_size iscsi_cmd 0 36882 &enable_so_tipc_sendmsg_fndecl_36882
160207 +enable_so_size_cxgb4_range_36893 size cxgb4_range 0 36893 NULL
160208 +enable_so_sge_congestion_control_sge_params_36896 sge_congestion_control sge_params 0 36896 NULL
160209 +enable_so_limit_ixgbe_ring_feature_36904 limit ixgbe_ring_feature 0 36904 NULL
160210 +enable_so_actual_usb_request_36913 actual usb_request 0 36913 NULL
160211 +enable_so_tool_spadfn_write_fndecl_36915 tool_spadfn_write fndecl 3 36915 NULL
160212 +enable_so_dup_variable_bug_fndecl_36926 dup_variable_bug fndecl 3 36926 NULL
160213 +enable_so_len_xfs_name_36929 len xfs_name 0 36929 NULL nohasharray
160214 +enable_so_ocfs2_make_right_split_rec_fndecl_36929 ocfs2_make_right_split_rec fndecl 3 36929 &enable_so_len_xfs_name_36929
160215 +enable_so_nfsacl_decode_fndecl_36931 nfsacl_decode fndecl 2-0 36931 NULL
160216 +enable_so_page_base_gssp_in_token_36935 page_base gssp_in_token 0 36935 NULL
160217 +enable_so_debug_level_proc_write_fndecl_36943 debug_level_proc_write fndecl 3 36943 NULL
160218 +enable_so_end_offset_xilly_buffer_36946 end_offset xilly_buffer 0 36946 NULL
160219 +enable_so_priv_size_rtnl_link_ops_36947 priv_size rtnl_link_ops 0 36947 NULL
160220 +enable_so_ntfs_prepare_pages_for_non_resident_write_fndecl_36959 ntfs_prepare_pages_for_non_resident_write fndecl 0 36959 NULL
160221 +enable_so_s_rename_dir_logfs_super_36976 s_rename_dir logfs_super 0 36976 NULL
160222 +enable_so_rx_bufsize_ath_common_36977 rx_bufsize ath_common 0 36977 NULL
160223 +enable_so_loopend_soundfont_sample_info_36981 loopend soundfont_sample_info 0 36981 NULL
160224 +enable_so_usbvision_frames_alloc_fndecl_36983 usbvision_frames_alloc fndecl 0-2 36983 NULL
160225 +enable_so_isku_sysfs_read_macro_fndecl_36984 isku_sysfs_read_macro fndecl 6 36984 NULL
160226 +enable_so_v_sync_strt_wid_aty128_crtc_36987 v_sync_strt_wid aty128_crtc 0 36987 NULL
160227 +enable_so_lbmAllocate_fndecl_36995 lbmAllocate fndecl 2 36995 NULL
160228 +enable_so_exp_len_ccp_rsa_engine_36998 exp_len ccp_rsa_engine 0 36998 NULL
160229 +enable_so_ll_sa_entry_alloc_fndecl_37008 ll_sa_entry_alloc fndecl 4 37008 NULL
160230 +enable_so_num_rxp_per_rx_bnad_37010 num_rxp_per_rx bnad 0 37010 NULL
160231 +enable_so_next_rs_iwl_rate_info_37018 next_rs iwl_rate_info 0 37018 NULL
160232 +enable_so_to_fw_map_37020 to fw_map 0 37020 NULL
160233 +enable_so_cb_group_width_exofs_dt_data_map_37027 cb_group_width exofs_dt_data_map 0 37027 NULL
160234 +enable_so_mmio_size_vmw_private_37038 mmio_size vmw_private 0 37038 NULL nohasharray
160235 +enable_so_dirty_poll_interval_fndecl_37038 dirty_poll_interval fndecl 0 37038 &enable_so_mmio_size_vmw_private_37038
160236 +enable_so_adjust_resource_fndecl_37046 adjust_resource fndecl 3-2 37046 NULL
160237 +enable_so_setcc_fndecl_37048 setcc fndecl 1 37048 NULL
160238 +enable_so_yres__sisbios_mode_37051 yres _sisbios_mode 0 37051 NULL
160239 +enable_so_neq_vf_resources_37066 neq vf_resources 0 37066 NULL
160240 +enable_so_SYSC_gethostname_fndecl_37078 SYSC_gethostname fndecl 2 37078 NULL
160241 +enable_so_rq_xprt_hlen_svc_rqst_37082 rq_xprt_hlen svc_rqst 0 37082 NULL
160242 +enable_so_rtc_devt_vardecl_rtc_dev_c_37090 rtc_devt vardecl_rtc-dev.c 0 37090 NULL
160243 +enable_so_filter_get_rx_ids_efx_nic_type_37093 filter_get_rx_ids efx_nic_type 0 37093 NULL
160244 +enable_so_cx25840_ir_rx_read_fndecl_37095 cx25840_ir_rx_read fndecl 3 37095 NULL
160245 +enable_so_relay_alloc_page_array_fndecl_37100 relay_alloc_page_array fndecl 1 37100 NULL
160246 +enable_so_gfs2_meta_ra_fndecl_37101 gfs2_meta_ra fndecl 2 37101 NULL
160247 +enable_so_filled_kobil_private_37104 filled kobil_private 0 37104 NULL
160248 +enable_so_vlan_tag_rx_return_desc_37115 vlan_tag rx_return_desc 0 37115 NULL
160249 +enable_so_fuse_request_alloc_fndecl_37120 fuse_request_alloc fndecl 1 37120 NULL nohasharray
160250 +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
160251 +enable_so_do_dmabuf_dirty_ldu_fndecl_37122 do_dmabuf_dirty_ldu fndecl 6 37122 NULL
160252 +enable_so_probe_memory_block_size_fndecl_37124 probe_memory_block_size fndecl 0 37124 NULL
160253 +enable_so_find_biggest_section_pfn_fndecl_37125 find_biggest_section_pfn fndecl 0-4 37125 NULL nohasharray
160254 +enable_so_ocfs2_check_if_ancestor_fndecl_37125 ocfs2_check_if_ancestor fndecl 2 37125 &enable_so_find_biggest_section_pfn_fndecl_37125
160255 +enable_so_sc_blk_cnt_nilfs_sc_info_37130 sc_blk_cnt nilfs_sc_info 0 37130 NULL nohasharray
160256 +enable_so___rh_alloc_fndecl_37130 __rh_alloc fndecl 2 37130 &enable_so_sc_blk_cnt_nilfs_sc_info_37130
160257 +enable_so_nfs_updatepage_fndecl_37131 nfs_updatepage fndecl 3-4 37131 NULL
160258 +enable_so_num_report_ids_mxt_object_37133 num_report_ids mxt_object 0 37133 NULL
160259 +enable_so_audio_mute_fndecl_37139 audio_mute fndecl 2 37139 NULL
160260 +enable_so_wdata_send_pages_fndecl_37142 wdata_send_pages fndecl 2 37142 NULL
160261 +enable_so_mlx5_query_port_pvlc_fndecl_37159 mlx5_query_port_pvlc fndecl 3 37159 NULL
160262 +enable_so_max_pdu_size_l2cap_conf_rfc_37161 max_pdu_size l2cap_conf_rfc 0 37161 NULL
160263 +enable_so_ld_tgt_count_lov_desc_37163 ld_tgt_count lov_desc 0 37163 NULL
160264 +enable_so_l_logBBstart_xlog_37164 l_logBBstart xlog 0 37164 NULL
160265 +enable_so_txCredits_edgeport_port_37166 txCredits edgeport_port 0 37166 NULL
160266 +enable_so_read_mmp_block_fndecl_37168 read_mmp_block fndecl 3 37168 NULL nohasharray
160267 +enable_so_mdiobus_alloc_size_fndecl_37168 mdiobus_alloc_size fndecl 1 37168 &enable_so_read_mmp_block_fndecl_37168
160268 +enable_so_expect_bt_skb_cb_37170 expect bt_skb_cb 0 37170 NULL
160269 +enable_so_hva_to_pfn_slow_fndecl_37173 hva_to_pfn_slow fndecl 1 37173 NULL nohasharray
160270 +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
160271 +enable_so_i915_gem_stolen_setup_compression_fndecl_37175 i915_gem_stolen_setup_compression fndecl 2 37175 NULL nohasharray
160272 +enable_so_copy_pte_range_fndecl_37175 copy_pte_range fndecl 6 37175 &enable_so_i915_gem_stolen_setup_compression_fndecl_37175
160273 +enable_so_sisusbcon_do_font_op_fndecl_37180 sisusbcon_do_font_op fndecl 9 37180 NULL nohasharray
160274 +enable_so_octeon_init_droq_fndecl_37180 octeon_init_droq fndecl 4-3 37180 &enable_so_sisusbcon_do_font_op_fndecl_37180
160275 +enable_so_of_address_to_resource_fndecl_37191 of_address_to_resource fndecl 2 37191 NULL
160276 +enable_so_ssd1307fb_write_fndecl_37192 ssd1307fb_write fndecl 3 37192 NULL
160277 +enable_so_rx_status_0_ath5k_hw_rx_status_37197 rx_status_0 ath5k_hw_rx_status 0 37197 NULL nohasharray
160278 +enable_so_hwflags_read_fndecl_37197 hwflags_read fndecl 3 37197 &enable_so_rx_status_0_ath5k_hw_rx_status_37197
160279 +enable_so_request_asymmetric_key_fndecl_37198 request_asymmetric_key fndecl 4-2 37198 NULL
160280 +enable_so_nbperpage_jfs_sb_info_37199 nbperpage jfs_sb_info 0 37199 NULL
160281 +enable_so_gva_to_gpa_kvm_mmu_37200 gva_to_gpa kvm_mmu 0 37200 NULL
160282 +enable_so_digestsize_shash_alg_37203 digestsize shash_alg 0 37203 NULL
160283 +enable_so_last_message_count_mxt_data_37205 last_message_count mxt_data 0 37205 NULL
160284 +enable_so_offset_jffs2_eraseblock_37206 offset jffs2_eraseblock 0 37206 NULL
160285 +enable_so_num_VFs_pci_sriov_37207 num_VFs pci_sriov 0 37207 NULL
160286 +enable_so_hur_len_fndecl_37216 hur_len fndecl 0 37216 NULL
160287 +enable_so_xfs_dir2_node_trim_free_fndecl_37218 xfs_dir2_node_trim_free fndecl 2 37218 NULL
160288 +enable_so_gsc_set_frame_size_fndecl_37233 gsc_set_frame_size fndecl 3-2 37233 NULL
160289 +enable_so_height_fb_image_37238 height fb_image 0 37238 NULL
160290 +enable_so_write_max_at24_data_37243 write_max at24_data 0 37243 NULL
160291 +enable_so_csum_and_copy_to_iter_fndecl_37244 csum_and_copy_to_iter fndecl 2 37244 NULL
160292 +enable_so_test_unaligned_bulk_fndecl_37246 test_unaligned_bulk fndecl 3-2 37246 NULL
160293 +enable_so_iwl_dump_fh_fndecl_37248 iwl_dump_fh fndecl 0 37248 NULL
160294 +enable_so_i_refcount_loc_ocfs2_dinode_37249 i_refcount_loc ocfs2_dinode 0 37249 NULL
160295 +enable_so_hfsplus_find_attr_fndecl_37253 hfsplus_find_attr fndecl 0 37253 NULL
160296 +enable_so_ath6kl_wmi_ap_set_beacon_intvl_cmd_fndecl_37254 ath6kl_wmi_ap_set_beacon_intvl_cmd fndecl 2 37254 NULL
160297 +enable_so_pfkey_sockaddr_pair_size_fndecl_37257 pfkey_sockaddr_pair_size fndecl 0 37257 NULL
160298 +enable_so_isdn_writebuf_stub_fndecl_37260 isdn_writebuf_stub fndecl 4 37260 NULL
160299 +enable_so_rpcrdma_register_internal_fndecl_37263 rpcrdma_register_internal fndecl 3 37263 NULL
160300 +enable_so_size_uhci_debug_37265 size uhci_debug 0 37265 NULL
160301 +enable_so___pskb_trim_head_fndecl_37267 __pskb_trim_head fndecl 2 37267 NULL
160302 +enable_so_ieee80211_rx_radiotap_hdrlen_fndecl_37268 ieee80211_rx_radiotap_hdrlen fndecl 0 37268 NULL
160303 +enable_so_blk_queue_update_dma_pad_fndecl_37275 blk_queue_update_dma_pad fndecl 2 37275 NULL
160304 +enable_so_copy_entries_to_user_fndecl_37276 copy_entries_to_user fndecl 1 37276 NULL
160305 +enable_so_max_packet_sz_rx_musb_hw_ep_37278 max_packet_sz_rx musb_hw_ep 0 37278 NULL
160306 +enable_so_scrollback_current_vardecl_fbcon_c_37279 scrollback_current vardecl_fbcon.c 0 37279 NULL
160307 +enable_so_reg_end_ath6kl_diag_reg_info_37280 reg_end ath6kl_diag_reg_info 0 37280 NULL
160308 +enable_so_do_ncp_rpc_call_fndecl_37285 do_ncp_rpc_call fndecl 2-4 37285 NULL
160309 +enable_so_aac_rx_ioremap_fndecl_37289 aac_rx_ioremap fndecl 2 37289 NULL nohasharray
160310 +enable_so_buf_size_mlx4_en_tx_ring_37289 buf_size mlx4_en_tx_ring 0 37289 &enable_so_aac_rx_ioremap_fndecl_37289
160311 +enable_so_cyz_load_fw_fndecl_37290 cyz_load_fw fndecl 0 37290 NULL
160312 +enable_so_num_bna_mem_info_37294 num bna_mem_info 0 37294 NULL
160313 +enable_so_lcd_hsync_len_atyfb_par_37297 lcd_hsync_len atyfb_par 0 37297 NULL
160314 +enable_so_rs_rate_ath_rx_status_37298 rs_rate ath_rx_status 0 37298 NULL
160315 +enable_so_jfs_setxattr_fndecl_37302 jfs_setxattr fndecl 4 37302 NULL
160316 +enable_so_aer_inject_write_fndecl_37308 aer_inject_write fndecl 3 37308 NULL
160317 +enable_so_svc_partial_recvfrom_fndecl_37311 svc_partial_recvfrom fndecl 0-5-4-3 37311 NULL
160318 +enable_so_ath6kl_delete_qos_write_fndecl_37312 ath6kl_delete_qos_write fndecl 3 37312 NULL
160319 +enable_so_fbcon_scrolldelta_fndecl_37317 fbcon_scrolldelta fndecl 2 37317 NULL nohasharray
160320 +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
160321 +enable_so_size_dm_header_37319 size dm_header 0 37319 NULL
160322 +enable_so_mt76_mac_process_rx_fndecl_37334 mt76_mac_process_rx fndecl 0 37334 NULL
160323 +enable_so_ie_len_cfg80211_sched_scan_request_37335 ie_len cfg80211_sched_scan_request 0 37335 NULL nohasharray
160324 +enable_so_ufs_change_blocknr_fndecl_37335 ufs_change_blocknr fndecl 2-4-5 37335 &enable_so_ie_len_cfg80211_sched_scan_request_37335
160325 +enable_so_ud_cursor_fndecl_37338 ud_cursor fndecl 4 37338 NULL nohasharray
160326 +enable_so_line6_midibuf_init_fndecl_37338 line6_midibuf_init fndecl 2 37338 &enable_so_ud_cursor_fndecl_37338
160327 +enable_so_hso_serial_common_create_fndecl_37343 hso_serial_common_create fndecl 3-4 37343 NULL
160328 +enable_so_dlen_pg_read_hdr_37352 dlen pg_read_hdr 0 37352 NULL
160329 +enable_so_blksize_fuse_mount_data_37357 blksize fuse_mount_data 0 37357 NULL
160330 +enable_so_ieee80211_alloc_txb_fndecl_37358 ieee80211_alloc_txb fndecl 1 37358 NULL
160331 +enable_so_pdev_id_sm501_devdata_37360 pdev_id sm501_devdata 0 37360 NULL
160332 +enable_so_rc_len_whcrc_37363 rc_len whcrc 0 37363 NULL
160333 +enable_so_gsm_change_mtu_fndecl_37364 gsm_change_mtu fndecl 2 37364 NULL
160334 +enable_so_alauda_read_data_fndecl_37367 alauda_read_data fndecl 3-2 37367 NULL
160335 +enable_so_bt_alloc_fndecl_37370 bt_alloc fndecl 2 37370 NULL
160336 +enable_so_peer_addr_len_drbd_connection_37371 peer_addr_len drbd_connection 0 37371 NULL
160337 +enable_so_orig_bi_size_usb_idmouse_37372 orig_bi_size usb_idmouse 0 37372 NULL
160338 +enable_so_virtscsi_add_cmd_fndecl_37379 virtscsi_add_cmd fndecl 3-4 37379 NULL
160339 +enable_so_gotoxay_fndecl_37380 gotoxay fndecl 2-3 37380 NULL
160340 +enable_so_kvm_task_switch_fndecl_37384 kvm_task_switch fndecl 2-3 37384 NULL nohasharray
160341 +enable_so_size_pnp_mem_37384 size pnp_mem 0 37384 &enable_so_kvm_task_switch_fndecl_37384
160342 +enable_so_tx_tx_exch_pending_read_fndecl_37385 tx_tx_exch_pending_read fndecl 3 37385 NULL
160343 +enable_so_btrfs_free_and_pin_reserved_extent_fndecl_37387 btrfs_free_and_pin_reserved_extent fndecl 3-2 37387 NULL
160344 +enable_so_alloc_blksz_hfs_sb_info_37390 alloc_blksz hfs_sb_info 0 37390 NULL nohasharray
160345 +enable_so_smscore_createbuffer_fndecl_37390 smscore_createbuffer fndecl 3 37390 &enable_so_alloc_blksz_hfs_sb_info_37390
160346 +enable_so_batadv_check_management_packet_fndecl_37394 batadv_check_management_packet fndecl 3 37394 NULL
160347 +enable_so_hsc_msg_len_set_fndecl_37398 hsc_msg_len_set fndecl 2 37398 NULL
160348 +enable_so_jdvbt90502_reg_read_fndecl_37400 jdvbt90502_reg_read fndecl 4 37400 NULL
160349 +enable_so_ieee80211_send_null_response_fndecl_37403 ieee80211_send_null_response fndecl 3 37403 NULL
160350 +enable_so_num_msix_vectors_i40e_hw_capabilities_37406 num_msix_vectors i40e_hw_capabilities 0 37406 NULL
160351 +enable_so_ath6kl_wmi_implicit_create_pstream_fndecl_37407 ath6kl_wmi_implicit_create_pstream fndecl 2 37407 NULL
160352 +enable_so_xfs_rtfree_extent_fndecl_37427 xfs_rtfree_extent fndecl 2-3 37427 NULL
160353 +enable_so_hr_block_bits_o2hb_region_37433 hr_block_bits o2hb_region 0 37433 NULL
160354 +enable_so_radeon_gart_size_vardecl_37434 radeon_gart_size vardecl 0 37434 NULL nohasharray
160355 +enable_so_inode_table_ext4_new_group_data_37434 inode_table ext4_new_group_data 0 37434 &enable_so_radeon_gart_size_vardecl_37434
160356 +enable_so_nv50_chan_create_fndecl_37436 nv50_chan_create fndecl 5 37436 NULL
160357 +enable_so_nice_workqueue_attrs_37437 nice workqueue_attrs 0 37437 NULL
160358 +enable_so_mwifiex_debug_read_fndecl_37441 mwifiex_debug_read fndecl 3 37441 NULL
160359 +enable_so_dib0700_ctrl_rd_fndecl_37445 dib0700_ctrl_rd fndecl 0 37445 NULL
160360 +enable_so_size_erst_record_id_cache_37450 size erst_record_id_cache 0 37450 NULL
160361 +enable_so_right_margin_fb_var_screeninfo_37453 right_margin fb_var_screeninfo 0 37453 NULL nohasharray
160362 +enable_so_file_size_squashfs_dir_inode_37453 file_size squashfs_dir_inode 0 37453 &enable_so_right_margin_fb_var_screeninfo_37453
160363 +enable_so_header_size_rxrpc_connection_37458 header_size rxrpc_connection 0 37458 NULL
160364 +enable_so_get_user_pages_locked_fndecl_37465 get_user_pages_locked fndecl 3 37465 NULL nohasharray
160365 +enable_so_devnum_mtd_blktrans_dev_37465 devnum mtd_blktrans_dev 0 37465 &enable_so_get_user_pages_locked_fndecl_37465 nohasharray
160366 +enable_so_cfi_read_query_fndecl_37465 cfi_read_query fndecl 0 37465 &enable_so_devnum_mtd_blktrans_dev_37465
160367 +enable_so_bi_sector_bvec_iter_37467 bi_sector bvec_iter 0 37467 NULL
160368 +enable_so_rate_ua101_37469 rate ua101 0 37469 NULL
160369 +enable_so_length_drm_event_37471 length drm_event 0 37471 NULL
160370 +enable_so_s_apbshift_ufs_sb_private_info_37473 s_apbshift ufs_sb_private_info 0 37473 NULL
160371 +enable_so_omap_dma_reserve_channels_vardecl_dma_c_37479 omap_dma_reserve_channels vardecl_dma.c 0 37479 NULL
160372 +enable_so_TupleLink_tuple_t_37482 TupleLink tuple_t 0 37482 NULL
160373 +enable_so_squashfs_iget_fndecl_37485 squashfs_iget fndecl 3 37485 NULL nohasharray
160374 +enable_so_ath10k_mac_create_fndecl_37485 ath10k_mac_create fndecl 1 37485 &enable_so_squashfs_iget_fndecl_37485
160375 +enable_so_qib_resize_cq_fndecl_37489 qib_resize_cq fndecl 2 37489 NULL
160376 +enable_so_params_len_nfc_evt_transaction_37500 params_len nfc_evt_transaction 0 37500 NULL
160377 +enable_so_lines_ivtv_osd_coords_37504 lines ivtv_osd_coords 0 37504 NULL
160378 +enable_so_ks8851_rdfifo_fndecl_37510 ks8851_rdfifo fndecl 3 37510 NULL
160379 +enable_so_inode_newsize_ok_fndecl_37511 inode_newsize_ok fndecl 0-2 37511 NULL nohasharray
160380 +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
160381 +enable_so_ncpus_vardecl_aoecmd_c_37517 ncpus vardecl_aoecmd.c 0 37517 NULL nohasharray
160382 +enable_so_copy_user_segment_list_fndecl_37517 copy_user_segment_list fndecl 2 37517 &enable_so_ncpus_vardecl_aoecmd_c_37517
160383 +enable_so_etherMtu_mac_eeprom_port_cfg_37523 etherMtu_mac eeprom_port_cfg 0 37523 NULL nohasharray
160384 +enable_so___data_len_request_37523 __data_len request 0 37523 &enable_so_etherMtu_mac_eeprom_port_cfg_37523
160385 +enable_so_efx_realloc_channels_fndecl_37528 efx_realloc_channels fndecl 2-3 37528 NULL
160386 +enable_so_num_txd_netxen_adapter_37529 num_txd netxen_adapter 0 37529 NULL
160387 +enable_so_parent_ino_xfs_fid64_37533 parent_ino xfs_fid64 0 37533 NULL
160388 +enable_so_ieee80211_bss_info_update_fndecl_37537 ieee80211_bss_info_update fndecl 4 37537 NULL nohasharray
160389 +enable_so_dwords_qib_verbs_txreq_37537 dwords qib_verbs_txreq 0 37537 &enable_so_ieee80211_bss_info_update_fndecl_37537
160390 +enable_so_fuse_fsync_common_fndecl_37543 fuse_fsync_common fndecl 2-3 37543 NULL
160391 +enable_so_btrfs_io_bio_alloc_fndecl_37544 btrfs_io_bio_alloc fndecl 2 37544 NULL
160392 +enable_so_keylen_ppp_mppe_state_37546 keylen ppp_mppe_state 0 37546 NULL nohasharray
160393 +enable_so_divisor_sfq_sched_data_37546 divisor sfq_sched_data 0 37546 &enable_so_keylen_ppp_mppe_state_37546
160394 +enable_so_extent_shift_ecryptfs_crypt_stat_37548 extent_shift ecryptfs_crypt_stat 0 37548 NULL nohasharray
160395 +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
160396 +enable_so_dln2_transfer_fndecl_37576 dln2_transfer fndecl 0 37576 NULL
160397 +enable_so_fixup_user_fault_fndecl_37577 fixup_user_fault fndecl 3 37577 NULL
160398 +enable_so_len_efx_rx_buffer_37579 len efx_rx_buffer 0 37579 NULL
160399 +enable_so_catas_offset_mlx4_fw_37594 catas_offset mlx4_fw 0 37594 NULL
160400 +enable_so_n_ai_urbs_usbdux_private_37595 n_ai_urbs usbdux_private 0 37595 NULL
160401 +enable_so_ocfs2_cp_xattr_bucket_fndecl_37598 ocfs2_cp_xattr_bucket fndecl 3-4 37598 NULL
160402 +enable_so_tun_do_read_fndecl_37614 tun_do_read fndecl 0 37614 NULL
160403 +enable_so_tx_tx_start_data_read_fndecl_37616 tx_tx_start_data_read fndecl 3 37616 NULL nohasharray
160404 +enable_so_eeprom_len_fmc_device_37616 eeprom_len fmc_device 0 37616 &enable_so_tx_tx_start_data_read_fndecl_37616
160405 +enable_so_balloon_hotplug_balloon_stats_37629 balloon_hotplug balloon_stats 0 37629 NULL
160406 +enable_so_dcbp_set_code_fndecl_37633 dcbp_set_code fndecl 2 37633 NULL
160407 +enable_so_lfb_height_screen_info_37634 lfb_height screen_info 0 37634 NULL
160408 +enable_so_rmtblkcnt2_xfs_da_args_37635 rmtblkcnt2 xfs_da_args 0 37635 NULL
160409 +enable_so_b_in_mon_reader_bin_37636 b_in mon_reader_bin 0 37636 NULL
160410 +enable_so_usb_stor_bulk_srb_fndecl_37641 usb_stor_bulk_srb fndecl 2 37641 NULL
160411 +enable_so_copy_ctr_args_fndecl_37642 copy_ctr_args fndecl 2 37642 NULL
160412 +enable_so_addrlen_rpc_xprt_37643 addrlen rpc_xprt 0 37643 NULL
160413 +enable_so_bufsize_vardecl_pagetest_c_37645 bufsize vardecl_pagetest.c 0 37645 NULL
160414 +enable_so_alloc_ldt_struct_fndecl_37649 alloc_ldt_struct fndecl 1 37649 NULL
160415 +enable_so_v9fs_xattr_user_get_fndecl_37650 v9fs_xattr_user_get fndecl 4 37650 NULL nohasharray
160416 +enable_so_cache_size_cache_37650 cache_size cache 0 37650 &enable_so_v9fs_xattr_user_get_fndecl_37650
160417 +enable_so_spu_subport_cnt_ipath_user_info_37652 spu_subport_cnt ipath_user_info 0 37652 NULL
160418 +enable_so_bop_check_insert_nilfs_bmap_operations_37658 bop_check_insert nilfs_bmap_operations 0 37658 NULL nohasharray
160419 +enable_so_hfcsusb_rx_frame_fndecl_37658 hfcsusb_rx_frame fndecl 3 37658 &enable_so_bop_check_insert_nilfs_bmap_operations_37658
160420 +enable_so_efi_nextents_xfs_efi_log_format_37664 efi_nextents xfs_efi_log_format 0 37664 NULL
160421 +enable_so_early_bytes_rchan_buf_37669 early_bytes rchan_buf 0 37669 NULL
160422 +enable_so_lsave_sz_ubifs_info_37672 lsave_sz ubifs_info 0 37672 NULL
160423 +enable_so_len_ethtool_eeprom_37676 len ethtool_eeprom 0 37676 NULL
160424 +enable_so_eeprom_blob_size_iwl_priv_37680 eeprom_blob_size iwl_priv 0 37680 NULL
160425 +enable_so_lastextent_efs_inode_info_37681 lastextent efs_inode_info 0 37681 NULL
160426 +enable_so_nvme_trans_ext_inq_page_fndecl_37691 nvme_trans_ext_inq_page fndecl 3 37691 NULL
160427 +enable_so_zm_wmfw_adsp2_alg_hdr_37694 zm wmfw_adsp2_alg_hdr 0 37694 NULL
160428 +enable_so_usb_ftdi_elan_edset_setup_fndecl_37695 usb_ftdi_elan_edset_setup fndecl 0 37695 NULL
160429 +enable_so_snic_trace_max_pages_vardecl_37696 snic_trace_max_pages vardecl 0 37696 NULL
160430 +enable_so_orig_video_points_screen_info_37702 orig_video_points screen_info 0 37702 NULL
160431 +enable_so_xenvif_write_io_ring_fndecl_37713 xenvif_write_io_ring fndecl 3 37713 NULL
160432 +enable_so_num_tx_ring_sh_eth_private_37717 num_tx_ring sh_eth_private 0 37717 NULL
160433 +enable_so_regset_tls_get_fndecl_37721 regset_tls_get fndecl 3 37721 NULL
160434 +enable_so_zap_bt_entries_mapping_fndecl_37722 zap_bt_entries_mapping fndecl 3-4-2 37722 NULL
160435 +enable_so_run_start_commands_fndecl_37723 run_start_commands fndecl 0 37723 NULL
160436 +enable_so_bfad_debugfs_lseek_fndecl_37724 bfad_debugfs_lseek fndecl 2 37724 NULL
160437 +enable_so_cciss_geometry_inquiry_fndecl_37730 cciss_geometry_inquiry fndecl 4 37730 NULL
160438 +enable_so_sk_wmem_queued_sock_37733 sk_wmem_queued sock 0 37733 NULL
160439 +enable_so_len_cap_mon_bin_hdr_37739 len_cap mon_bin_hdr 0 37739 NULL
160440 +enable_so_mon_bin_get_event_fndecl_37740 mon_bin_get_event fndecl 6-4 37740 NULL
160441 +enable_so_pwr_rcvd_beacons_read_fndecl_37751 pwr_rcvd_beacons_read fndecl 3 37751 NULL
160442 +enable_so_num_enh_eq_cfgs_wm8994_pdata_37752 num_enh_eq_cfgs wm8994_pdata 0 37752 NULL
160443 +enable_so_cache_read_procfs_fndecl_37761 cache_read_procfs fndecl 3 37761 NULL
160444 +enable_so_last_rx_rate_idx_sta_info_37768 last_rx_rate_idx sta_info 0 37768 NULL nohasharray
160445 +enable_so_length_acpi_object_buffer_37768 length acpi_object_buffer 0 37768 &enable_so_last_rx_rate_idx_sta_info_37768
160446 +enable_so_prot_length_se_cmd_37769 prot_length se_cmd 0 37769 NULL
160447 +enable_so_per_bio_data_size_dm_target_37772 per_bio_data_size dm_target 0 37772 NULL
160448 +enable_so_kvm_kvzalloc_fndecl_37773 kvm_kvzalloc fndecl 1 37773 NULL
160449 +enable_so_access_length_acpi_object_region_field_37774 access_length acpi_object_region_field 0 37774 NULL
160450 +enable_so_buf_size_usb_data_stream_37781 buf_size usb_data_stream 0 37781 NULL
160451 +enable_so_ext4_init_dot_dotdot_fndecl_37792 ext4_init_dot_dotdot fndecl 4-3-5 37792 NULL
160452 +enable_so_update_interval_frames_snd_card_asihpi_37794 update_interval_frames snd_card_asihpi 0 37794 NULL
160453 +enable_so_bytes_per_block_svga3d_surface_desc_37798 bytes_per_block svga3d_surface_desc 0 37798 NULL
160454 +enable_so_nilfs_sufile_read_fndecl_37800 nilfs_sufile_read fndecl 2 37800 NULL
160455 +enable_so_eo_get_last_eb_blk_ocfs2_extent_tree_operations_37802 eo_get_last_eb_blk ocfs2_extent_tree_operations 0 37802 NULL
160456 +enable_so_exec_verb_hdac_device_37803 exec_verb hdac_device 0 37803 NULL
160457 +enable_so_word_4_ns_rsqe_37805 word_4 ns_rsqe 0 37805 NULL
160458 +enable_so_gid_tbl_len_ib_port_attr_37809 gid_tbl_len ib_port_attr 0 37809 NULL nohasharray
160459 +enable_so_devnum_genwqe_genwqe_dev_37809 devnum_genwqe genwqe_dev 0 37809 &enable_so_gid_tbl_len_ib_port_attr_37809
160460 +enable_so_buf_size_mlx5_ib_qp_37812 buf_size mlx5_ib_qp 0 37812 NULL
160461 +enable_so_page_shift_qib_mregion_37818 page_shift qib_mregion 0 37818 NULL nohasharray
160462 +enable_so_touchpad_num_ad714x_platform_data_37818 touchpad_num ad714x_platform_data 0 37818 &enable_so_page_shift_qib_mregion_37818
160463 +enable_so_out_ep_snd_usb_midi_endpoint_info_37819 out_ep snd_usb_midi_endpoint_info 0 37819 NULL
160464 +enable_so_max_header_size_ircomm_tty_cb_37822 max_header_size ircomm_tty_cb 0 37822 NULL
160465 +enable_so_my_addr_len_drbd_connection_37828 my_addr_len drbd_connection 0 37828 NULL
160466 +enable_so_rbd_img_request_create_fndecl_37833 rbd_img_request_create fndecl 2-3 37833 NULL
160467 +enable_so_mru_syncppp_37835 mru syncppp 0 37835 NULL
160468 +enable_so_slot_width_mvs_chip_info_37839 slot_width mvs_chip_info 0 37839 NULL nohasharray
160469 +enable_so_ifc_len_ifconf_37839 ifc_len ifconf 0 37839 &enable_so_slot_width_mvs_chip_info_37839
160470 +enable_so___kfifo_skip_r_fndecl_37849 __kfifo_skip_r fndecl 2 37849 NULL
160471 +enable_so_iblock_get_bio_fndecl_37851 iblock_get_bio fndecl 2-3 37851 NULL
160472 +enable_so_ioread16be_fndecl_37854 ioread16be fndecl 0 37854 NULL
160473 +enable_so_nofill_fndecl_37857 nofill fndecl 0 37857 NULL
160474 +enable_so_usbat_read_block_fndecl_37858 usbat_read_block fndecl 3-4 37858 NULL
160475 +enable_so_nents_usnic_uiom_chunk_37860 nents usnic_uiom_chunk 0 37860 NULL
160476 +enable_so_last_txrate_idx_il_lq_sta_37864 last_txrate_idx il_lq_sta 0 37864 NULL
160477 +enable_so_tx_tx_exch_read_fndecl_37865 tx_tx_exch_read fndecl 3 37865 NULL
160478 +enable_so_assoclen_aead_request_37866 assoclen aead_request 0 37866 NULL
160479 +enable_so_xdr_copy_to_scratch_fndecl_37868 xdr_copy_to_scratch fndecl 2 37868 NULL
160480 +enable_so_btrfs_set_header_nritems_fndecl_37869 btrfs_set_header_nritems fndecl 2 37869 NULL
160481 +enable_so_num_node_state_fndecl_37870 num_node_state fndecl 0 37870 NULL
160482 +enable_so_hx8357_spi_write_then_read_fndecl_37879 hx8357_spi_write_then_read fndecl 3-5 37879 NULL
160483 +enable_so_leaf_delete_items_fndecl_37885 leaf_delete_items fndecl 5 37885 NULL
160484 +enable_so_____alloc_ei_netdev_fndecl_37888 ____alloc_ei_netdev fndecl 1 37888 NULL
160485 +enable_so_dm_bufio_client_create_fndecl_37889 dm_bufio_client_create fndecl 2-4 37889 NULL
160486 +enable_so_gss_wrap_kerberos_fndecl_37890 gss_wrap_kerberos fndecl 2 37890 NULL
160487 +enable_so_bulk_in_ipheth_device_37894 bulk_in ipheth_device 0 37894 NULL nohasharray
160488 +enable_so_xfs_buf_get_uncached_fndecl_37894 xfs_buf_get_uncached fndecl 2 37894 &enable_so_bulk_in_ipheth_device_37894
160489 +enable_so_prod_xfs_alloc_arg_37897 prod xfs_alloc_arg 0 37897 NULL
160490 +enable_so_calc_send_wqe_fndecl_37899 calc_send_wqe fndecl 0 37899 NULL nohasharray
160491 +enable_so_logi_dj_hidpp_event_fndecl_37899 logi_dj_hidpp_event fndecl 4 37899 &enable_so_calc_send_wqe_fndecl_37899
160492 +enable_so_datalen_user_key_payload_37906 datalen user_key_payload 0 37906 NULL
160493 +enable_so_pasid_kfd_process_37907 pasid kfd_process 0 37907 NULL
160494 +enable_so_nvkm_vm_create_fndecl_37913 nvkm_vm_create fndecl 3-2-5-4 37913 NULL
160495 +enable_so_pvr2_i2c_basic_op_fndecl_37917 pvr2_i2c_basic_op fndecl 4-6 37917 NULL
160496 +enable_so_spk_ye_vardecl_37920 spk_ye vardecl 0 37920 NULL
160497 +enable_so_ep_urb_context_37938 ep urb_context 0 37938 NULL nohasharray
160498 +enable_so_num_escbs_asd_seq_data_37938 num_escbs asd_seq_data 0 37938 &enable_so_ep_urb_context_37938
160499 +enable_so_kvm_fetch_guest_virt_fndecl_37942 kvm_fetch_guest_virt fndecl 2-4 37942 NULL
160500 +enable_so_seq_write_fndecl_37946 seq_write fndecl 3 37946 NULL
160501 +enable_so_phys_memory_base_mgsl_struct_37952 phys_memory_base mgsl_struct 0 37952 NULL
160502 +enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953 wpa_ie_len islpci_bss_wpa_ie 0 37953 NULL nohasharray
160503 +enable_so___handle_mm_fault_fndecl_37953 __handle_mm_fault fndecl 3 37953 &enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953
160504 +enable_so_rx_ring_count_fm10k_intfc_37957 rx_ring_count fm10k_intfc 0 37957 NULL
160505 +enable_so_cleanmarker_size_jffs2_sb_info_37959 cleanmarker_size jffs2_sb_info 0 37959 NULL
160506 +enable_so_consume_size_vmci_qp_alloc_info_vmvm_37962 consume_size vmci_qp_alloc_info_vmvm 0 37962 NULL
160507 +enable_so_unmap_vmas_fndecl_37967 unmap_vmas fndecl 4-3 37967 NULL nohasharray
160508 +enable_so_mbox_write_fndecl_37967 mbox_write fndecl 3 37967 &enable_so_unmap_vmas_fndecl_37967
160509 +enable_so_ieee80211_if_write_uapsd_queues_fndecl_37973 ieee80211_if_write_uapsd_queues fndecl 3 37973 NULL
160510 +enable_so_vortex_core_init_fndecl_37980 vortex_core_init fndecl 0 37980 NULL
160511 +enable_so_key_search_fndecl_37982 key_search fndecl 0 37982 NULL
160512 +enable_so_count_nfsd_readres_37988 count nfsd_readres 0 37988 NULL
160513 +enable_so_nlmsvc_lookup_host_fndecl_37992 nlmsvc_lookup_host fndecl 3 37992 NULL
160514 +enable_so_data_size_cyttsp4_sysinfo_ofs_37994 data_size cyttsp4_sysinfo_ofs 0 37994 NULL
160515 +enable_so_size_qla_flt_region_37995 size qla_flt_region 0 37995 NULL
160516 +enable_so_arizona_set_fll_fndecl_37996 arizona_set_fll fndecl 4 37996 NULL nohasharray
160517 +enable_so_key_size_bpf_map_37996 key_size bpf_map 0 37996 &enable_so_arizona_set_fll_fndecl_37996
160518 +enable_so_bt_sock_stream_recvmsg_fndecl_37997 bt_sock_stream_recvmsg fndecl 3 37997 NULL
160519 +enable_so_icmp_manip_pkt_fndecl_38011 icmp_manip_pkt fndecl 4 38011 NULL
160520 +enable_so_rfcomm_tty_write_fndecl_38016 rfcomm_tty_write fndecl 3 38016 NULL
160521 +enable_so_l_len_xfs_flock64_38022 l_len xfs_flock64 0 38022 NULL nohasharray
160522 +enable_so_max_cmnds_vardecl_aic94xx_hwi_c_38022 max_cmnds vardecl_aic94xx_hwi.c 0 38022 &enable_so_l_len_xfs_flock64_38022
160523 +enable_so_num_entries_ipt_replace_38023 num_entries ipt_replace 0 38023 NULL
160524 +enable_so_iriap_connect_confirm_fndecl_38027 iriap_connect_confirm fndecl 5 38027 NULL
160525 +enable_so_ath6kl_set_bitrate_mask64_fndecl_38029 ath6kl_set_bitrate_mask64 fndecl 2 38029 NULL
160526 +enable_so_sensb_res_len_nfc_target_38034 sensb_res_len nfc_target 0 38034 NULL
160527 +enable_so_get_cur_path_fndecl_38038 get_cur_path fndecl 0 38038 NULL
160528 +enable_so_ip6_tnl_change_mtu_fndecl_38041 ip6_tnl_change_mtu fndecl 2 38041 NULL
160529 +enable_so_DataUnits_partition_t_38043 DataUnits partition_t 0 38043 NULL
160530 +enable_so_x25_negotiate_facilities_fndecl_38044 x25_negotiate_facilities fndecl 0 38044 NULL
160531 +enable_so_aac_convert_sgraw2_fndecl_38045 aac_convert_sgraw2 fndecl 2-4 38045 NULL nohasharray
160532 +enable_so_open_devices_btrfs_fs_devices_38045 open_devices btrfs_fs_devices 0 38045 &enable_so_aac_convert_sgraw2_fndecl_38045
160533 +enable_so_get_vmcore_size_fndecl_38046 get_vmcore_size fndecl 0-2-1 38046 NULL
160534 +enable_so_reference_rate_vardecl_xfi_c_38047 reference_rate vardecl_xfi.c 0 38047 NULL
160535 +enable_so_group_devt_vfio_38048 group_devt vfio 0 38048 NULL
160536 +enable_so_node_present_pages_pglist_data_38050 node_present_pages pglist_data 0 38050 NULL
160537 +enable_so_pending_buf_size_deflate_state_38053 pending_buf_size deflate_state 0 38053 NULL
160538 +enable_so_offset_drm_local_map_38055 offset drm_local_map 0 38055 NULL
160539 +enable_so_isd200_set_srb_fndecl_38056 isd200_set_srb fndecl 4 38056 NULL nohasharray
160540 +enable_so_nrpacks_vardecl_usbusx2yaudio_c_38056 nrpacks vardecl_usbusx2yaudio.c 0 38056 &enable_so_isd200_set_srb_fndecl_38056
160541 +enable_so_length_ipw_rx_packet_38058 length ipw_rx_packet 0 38058 NULL nohasharray
160542 +enable_so_sctp_auth_create_key_fndecl_38058 sctp_auth_create_key fndecl 1 38058 &enable_so_length_ipw_rx_packet_38058
160543 +enable_so_iscsi_create_session_fndecl_38060 iscsi_create_session fndecl 3 38060 NULL
160544 +enable_so_ubifs_iget_fndecl_38065 ubifs_iget fndecl 2 38065 NULL
160545 +enable_so_add_vol_fndecl_38066 add_vol fndecl 3-6 38066 NULL
160546 +enable_so_extent_fiemap_fndecl_38070 extent_fiemap fndecl 4-3 38070 NULL
160547 +enable_so_numPartitionMaps_logicalVolDesc_38073 numPartitionMaps logicalVolDesc 0 38073 NULL
160548 +enable_so_length_wpa_param_38074 length wpa_param 0 38074 NULL
160549 +enable_so_fb_bpp_vardecl_udl_fb_c_38075 fb_bpp vardecl_udl_fb.c 0 38075 NULL
160550 +enable_so_ps_upsd_utilization_read_fndecl_38086 ps_upsd_utilization_read fndecl 3 38086 NULL
160551 +enable_so_la_bm_off_ocfs2_local_alloc_38101 la_bm_off ocfs2_local_alloc 0 38101 NULL nohasharray
160552 +enable_so_bd_group_ext4_buddy_38101 bd_group ext4_buddy 0 38101 &enable_so_la_bm_off_ocfs2_local_alloc_38101
160553 +enable_so_softingcs_index_vardecl_softing_cs_c_38102 softingcs_index vardecl_softing_cs.c 0 38102 NULL
160554 +enable_so_data_size_il4965_firmware_pieces_38105 data_size il4965_firmware_pieces 0 38105 NULL
160555 +enable_so_host_mapping_level_fndecl_38115 host_mapping_level fndecl 0-2 38115 NULL
160556 +enable_so_length_floppy_raw_cmd_38116 length floppy_raw_cmd 0 38116 NULL
160557 +enable_so_wm8994_get_fll_config_fndecl_38117 wm8994_get_fll_config fndecl 3-4 38117 NULL
160558 +enable_so_rmtblkno_xfs_da_args_38121 rmtblkno xfs_da_args 0 38121 NULL
160559 +enable_so_sel_write_access_fndecl_38123 sel_write_access fndecl 3 38123 NULL
160560 +enable_so_actual_usbhs_pkt_38126 actual usbhs_pkt 0 38126 NULL
160561 +enable_so_len_rxd_desc_38127 len rxd_desc 0 38127 NULL
160562 +enable_so_usbhs_pipe_get_maxpacket_fndecl_38131 usbhs_pipe_get_maxpacket fndecl 0 38131 NULL
160563 +enable_so_crtc_h_drm_plane_state_38132 crtc_h drm_plane_state 0 38132 NULL
160564 +enable_so_sctp_setsockopt_associnfo_fndecl_38135 sctp_setsockopt_associnfo fndecl 3 38135 NULL
160565 +enable_so_sfi_sysfs_install_table_fndecl_38139 sfi_sysfs_install_table fndecl 1 38139 NULL
160566 +enable_so_rtw_os_xmit_resource_alloc23a_fndecl_38142 rtw_os_xmit_resource_alloc23a fndecl 3 38142 NULL
160567 +enable_so_nentries_ebt_replace_kernel_38149 nentries ebt_replace_kernel 0 38149 NULL
160568 +enable_so_btrfs_get_io_failure_record_fndecl_38153 btrfs_get_io_failure_record fndecl 2-3 38153 NULL
160569 +enable_so_il4965_hwrate_to_mac80211_idx_fndecl_38156 il4965_hwrate_to_mac80211_idx fndecl 0-1 38156 NULL nohasharray
160570 +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
160571 +enable_so_read_interrupt_descriptor_fndecl_38165 read_interrupt_descriptor fndecl 2 38165 NULL
160572 +enable_so_st_read_fndecl_38176 st_read fndecl 3 38176 NULL
160573 +enable_so___mxt_read_reg_fndecl_38178 __mxt_read_reg fndecl 3-0 38178 NULL
160574 +enable_so_compat_dccp_setsockopt_fndecl_38188 compat_dccp_setsockopt fndecl 5 38188 NULL
160575 +enable_so_zone_end_strip_zone_38191 zone_end strip_zone 0 38191 NULL
160576 +enable_so_nf_ct_ext_create_fndecl_38195 nf_ct_ext_create fndecl 3 38195 NULL
160577 +enable_so_drm_property_create_fndecl_38196 drm_property_create fndecl 4 38196 NULL
160578 +enable_so_nilfs_cpfile_checkpoints_in_block_fndecl_38197 nilfs_cpfile_checkpoints_in_block fndecl 0-2-3 38197 NULL
160579 +enable_so_goto_high_power_fndecl_38198 goto_high_power fndecl 0 38198 NULL
160580 +enable_so_driver_data_i2c_device_id_38200 driver_data i2c_device_id 0 38200 NULL
160581 +enable_so_rx_offset_tg3_38201 rx_offset tg3 0 38201 NULL
160582 +enable_so_raw_sig_size_x509_certificate_38211 raw_sig_size x509_certificate 0 38211 NULL
160583 +enable_so_ath6kl_wmi_del_wow_pattern_cmd_fndecl_38224 ath6kl_wmi_del_wow_pattern_cmd fndecl 2 38224 NULL nohasharray
160584 +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
160585 +enable_so_target_alloc_sgl_fndecl_38227 target_alloc_sgl fndecl 3 38227 NULL nohasharray
160586 +enable_so_ath10k_dbg_sta_write_addba_fndecl_38227 ath10k_dbg_sta_write_addba fndecl 3 38227 &enable_so_target_alloc_sgl_fndecl_38227
160587 +enable_so_dvb_audio_write_fndecl_38232 dvb_audio_write fndecl 3 38232 NULL
160588 +enable_so_max_buf_size_tegra_spi_data_38233 max_buf_size tegra_spi_data 0 38233 NULL
160589 +enable_so_firm_numbers_queue_AdapterControlBlock_38236 firm_numbers_queue AdapterControlBlock 0 38236 NULL
160590 +enable_so_ipwireless_network_packet_received_fndecl_38238 ipwireless_network_packet_received fndecl 4 38238 NULL
160591 +enable_so_periodic_bytes_fndecl_38241 periodic_bytes fndecl 0 38241 NULL
160592 +enable_so_init_map_ipmac_fndecl_38246 init_map_ipmac fndecl 5 38246 NULL
160593 +enable_so_get_cell_fndecl_38247 get_cell fndecl 2 38247 NULL
160594 +enable_so_isd200_try_enum_fndecl_38250 isd200_try_enum fndecl 2 38250 NULL nohasharray
160595 +enable_so_name_len_ext2_dir_entry_2_38250 name_len ext2_dir_entry_2 0 38250 &enable_so_isd200_try_enum_fndecl_38250
160596 +enable_so_alloc_hippi_dev_fndecl_38251 alloc_hippi_dev fndecl 1 38251 NULL
160597 +enable_so_ext2_xattr_get_fndecl_38252 ext2_xattr_get fndecl 0 38252 NULL
160598 +enable_so_bdbars_count_intel8x0m_38253 bdbars_count intel8x0m 0 38253 NULL
160599 +enable_so_mwifiex_11n_delba_fndecl_38254 mwifiex_11n_delba fndecl 2 38254 NULL
160600 +enable_so_rsize_nfs_server_38256 rsize nfs_server 0 38256 NULL nohasharray
160601 +enable_so_bLength_usb_cdc_country_functional_desc_38256 bLength usb_cdc_country_functional_desc 0 38256 &enable_so_rsize_nfs_server_38256
160602 +enable_so__osd_req_cdb_len_fndecl_38259 _osd_req_cdb_len fndecl 0 38259 NULL
160603 +enable_so_prepare_header100_fndecl_38275 prepare_header100 fndecl 0 38275 NULL
160604 +enable_so_min_pnp_port_38276 min pnp_port 0 38276 NULL
160605 +enable_so_irnet_connect_confirm_fndecl_38277 irnet_connect_confirm fndecl 5 38277 NULL
160606 +enable_so_n_pages_vb2_vmalloc_buf_38278 n_pages vb2_vmalloc_buf 0 38278 NULL
160607 +enable_so_ipath_rcvegrbufsize_ipath_devdata_38283 ipath_rcvegrbufsize ipath_devdata 0 38283 NULL
160608 +enable_so_len_osd_attr_38284 len osd_attr 0 38284 NULL nohasharray
160609 +enable_so_header_length_fw_iso_packet_38284 header_length fw_iso_packet 0 38284 &enable_so_len_osd_attr_38284
160610 +enable_so_pci_cardbus_mem_size_vardecl_38290 pci_cardbus_mem_size vardecl 0 38290 NULL
160611 +enable_so_smk_write_ptrace_fndecl_38294 smk_write_ptrace fndecl 3 38294 NULL
160612 +enable_so_compat_arch_ptrace_fndecl_38298 compat_arch_ptrace fndecl 3 38298 NULL nohasharray
160613 +enable_so_alloc_smp_req_fndecl_38298 alloc_smp_req fndecl 1 38298 &enable_so_compat_arch_ptrace_fndecl_38298
160614 +enable_so_num_kcontrols_snd_soc_dapm_widget_38302 num_kcontrols snd_soc_dapm_widget 0 38302 NULL nohasharray
160615 +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
160616 +enable_so_img_width_s5p_mfc_ctx_38303 img_width s5p_mfc_ctx 0 38303 NULL
160617 +enable_so_geneve_xmit_skb_fndecl_38306 geneve_xmit_skb fndecl 13 38306 NULL
160618 +enable_so_height_zoran_v4l_settings_38307 height zoran_v4l_settings 0 38307 NULL
160619 +enable_so_bad_peb_count_ubi_attach_info_38310 bad_peb_count ubi_attach_info 0 38310 NULL nohasharray
160620 +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
160621 +enable_so_ext4_get_block_write_fndecl_38313 ext4_get_block_write fndecl 2 38313 NULL nohasharray
160622 +enable_so_ftid_base_tid_info_38313 ftid_base tid_info 0 38313 &enable_so_ext4_get_block_write_fndecl_38313
160623 +enable_so_nr_siblings_perf_event_38320 nr_siblings perf_event 0 38320 NULL
160624 +enable_so_ob_max_size_mvumi_hba_38327 ob_max_size mvumi_hba 0 38327 NULL
160625 +enable_so_radeon_kms_compat_ioctl_fndecl_38328 radeon_kms_compat_ioctl fndecl 2 38328 NULL
160626 +enable_so_xfs_vn_fiemap_fndecl_38336 xfs_vn_fiemap fndecl 3-4 38336 NULL
160627 +enable_so_iov_len_sg_iovec_38337 iov_len sg_iovec 0 38337 NULL
160628 +enable_so_num_sys_eqs_mlx4_dev_cap_38340 num_sys_eqs mlx4_dev_cap 0 38340 NULL
160629 +enable_so_get_first_ref_fndecl_38342 get_first_ref fndecl 0 38342 NULL
160630 +enable_so_record_size_vardecl_mtdoops_c_38343 record_size vardecl_mtdoops.c 0 38343 NULL
160631 +enable_so_len_nft_data_desc_38346 len nft_data_desc 0 38346 NULL
160632 +enable_so_shim_offset_sst_res_info_38347 shim_offset sst_res_info 0 38347 NULL
160633 +enable_so_pf_fhlen_nfsd4_putfh_38348 pf_fhlen nfsd4_putfh 0 38348 NULL
160634 +enable_so_len_ethtool_regs_38354 len ethtool_regs 0 38354 NULL
160635 +enable_so_xfs_dir3_free_get_buf_fndecl_38355 xfs_dir3_free_get_buf fndecl 2 38355 NULL
160636 +enable_so_rate_snd_soc_dai_38358 rate snd_soc_dai 0 38358 NULL
160637 +enable_so_pci_sriov_resource_alignment_fndecl_38365 pci_sriov_resource_alignment fndecl 0 38365 NULL
160638 +enable_so_flush_buffer_fndecl_38367 flush_buffer fndecl 2 38367 NULL
160639 +enable_so_ieee80211_if_read_dot11MeshHWMPRootMode_fndecl_38370 ieee80211_if_read_dot11MeshHWMPRootMode fndecl 3 38370 NULL
160640 +enable_so_ri_length_gfs2_rindex_38375 ri_length gfs2_rindex 0 38375 NULL
160641 +enable_so_dvb_register_frontend_fndecl_38382 dvb_register_frontend fndecl 0 38382 NULL
160642 +enable_so_chrdev_setup_rx_fndecl_38384 chrdev_setup_rx fndecl 2 38384 NULL
160643 +enable_so_blk_register_region_fndecl_38387 blk_register_region fndecl 1-2 38387 NULL
160644 +enable_so_mwifiex_rdeeprom_read_fndecl_38390 mwifiex_rdeeprom_read fndecl 3 38390 NULL
160645 +enable_so_ext4_ext_rm_leaf_fndecl_38397 ext4_ext_rm_leaf fndecl 5 38397 NULL
160646 +enable_so_hfsplus_brec_read_fndecl_38399 hfsplus_brec_read fndecl 0 38399 NULL
160647 +enable_so_ath6kl_sdio_alloc_prep_scat_req_fndecl_38401 ath6kl_sdio_alloc_prep_scat_req fndecl 2 38401 NULL
160648 +enable_so__c4iw_write_mem_dma_fndecl_38404 _c4iw_write_mem_dma fndecl 3 38404 NULL
160649 +enable_so_parent_offset_isofs_fid_38408 parent_offset isofs_fid 0 38408 NULL
160650 +enable_so_dwc3_mode_write_fndecl_38414 dwc3_mode_write fndecl 3 38414 NULL
160651 +enable_so___rocker_port_mem_alloc_fndecl_38416 __rocker_port_mem_alloc fndecl 4 38416 NULL
160652 +enable_so_xdr_xcode_array2_fndecl_38417 xdr_xcode_array2 fndecl 2 38417 NULL
160653 +enable_so_read_page_fndecl_38423 read_page fndecl 2 38423 NULL nohasharray
160654 +enable_so_todo_dmxdev_filter_38423 todo dmxdev_filter 0 38423 &enable_so_read_page_fndecl_38423
160655 +enable_so_remap_exception_fndecl_38426 remap_exception fndecl 4 38426 NULL
160656 +enable_so_mwifiex_get_rates_from_cfg80211_fndecl_38427 mwifiex_get_rates_from_cfg80211 fndecl 0 38427 NULL
160657 +enable_so_ide_set_dma_mode_fndecl_38428 ide_set_dma_mode fndecl 2 38428 NULL
160658 +enable_so_m_chunk_size_drxk_state_38431 m_chunk_size drxk_state 0 38431 NULL
160659 +enable_so_num_total_adcs_snd_ice1712_38432 num_total_adcs snd_ice1712 0 38432 NULL
160660 +enable_so_r820t_write_fndecl_38436 r820t_write fndecl 4 38436 NULL
160661 +enable_so_ocfs2_iterate_xattr_buckets_fndecl_38437 ocfs2_iterate_xattr_buckets fndecl 2 38437 NULL
160662 +enable_so_cw1200_sdio_memcpy_toio_fndecl_38442 cw1200_sdio_memcpy_toio fndecl 4 38442 NULL
160663 +enable_so_vxge_rx_alloc_fndecl_38443 vxge_rx_alloc fndecl 3 38443 NULL
160664 +enable_so___ieee80211_tx_skb_tid_band_fndecl_38444 __ieee80211_tx_skb_tid_band fndecl 3 38444 NULL nohasharray
160665 +enable_so_test_ofsh_cyttsp4_sysinfo_data_38444 test_ofsh cyttsp4_sysinfo_data 0 38444 &enable_so___ieee80211_tx_skb_tid_band_fndecl_38444
160666 +enable_so_slave_count_w1_master_38454 slave_count w1_master 0 38454 NULL
160667 +enable_so_a8293_i2c_fndecl_38457 a8293_i2c fndecl 3 38457 NULL
160668 +enable_so_dvb_ringbuffer_avail_fndecl_38474 dvb_ringbuffer_avail fndecl 0 38474 NULL
160669 +enable_so_blocksize_gss_krb5_enctype_38477 blocksize gss_krb5_enctype 0 38477 NULL
160670 +enable_so___fuse_request_alloc_fndecl_38479 __fuse_request_alloc fndecl 1 38479 NULL
160671 +enable_so_min_pfn_mapped_vardecl_init_c_38481 min_pfn_mapped vardecl_init.c 0 38481 NULL
160672 +enable_so_dma_rx_errors_read_fndecl_38494 dma_rx_errors_read fndecl 3 38494 NULL
160673 +enable_so_copy_block_fndecl_38500 copy_block fndecl 3 38500 NULL
160674 +enable_so_create_rcom_fndecl_38501 create_rcom fndecl 4 38501 NULL nohasharray
160675 +enable_so_info_len_ib_ucm_sidr_rep_38501 info_len ib_ucm_sidr_rep 0 38501 &enable_so_create_rcom_fndecl_38501
160676 +enable_so_ib_uverbs_rereg_mr_fndecl_38504 ib_uverbs_rereg_mr fndecl 3 38504 NULL
160677 +enable_so_nsm_get_handle_fndecl_38506 nsm_get_handle fndecl 4 38506 NULL
160678 +enable_so_udp_recvmsg_fndecl_38509 udp_recvmsg fndecl 3 38509 NULL nohasharray
160679 +enable_so_msdu_len_htt_rx_offload_msdu_38509 msdu_len htt_rx_offload_msdu 0 38509 &enable_so_udp_recvmsg_fndecl_38509
160680 +enable_so_isofs_readpages_fndecl_38512 isofs_readpages fndecl 4 38512 NULL
160681 +enable_so_prepare_merge_dm_exception_store_type_38515 prepare_merge dm_exception_store_type 0 38515 NULL
160682 +enable_so_max_sg_mthca_limits_38517 max_sg mthca_limits 0 38517 NULL
160683 +enable_so_if_broot_bytes_xfs_ifork_38518 if_broot_bytes xfs_ifork 0 38518 NULL
160684 +enable_so_mxuport_process_read_urb_data_fndecl_38523 mxuport_process_read_urb_data fndecl 3 38523 NULL nohasharray
160685 +enable_so_octeon_init_instr_queue_fndecl_38523 octeon_init_instr_queue fndecl 3 38523 &enable_so_mxuport_process_read_urb_data_fndecl_38523
160686 +enable_so_emu_setup_memblk_fndecl_38524 emu_setup_memblk fndecl 5 38524 NULL
160687 +enable_so_set_extent_dirty_fndecl_38529 set_extent_dirty fndecl 3-2 38529 NULL nohasharray
160688 +enable_so_smsdvb_stats_read_fndecl_38529 smsdvb_stats_read fndecl 3 38529 &enable_so_set_extent_dirty_fndecl_38529
160689 +enable_so_max_pde_used_radeon_vm_38536 max_pde_used radeon_vm 0 38536 NULL
160690 +enable_so_amdgpu_sa_bo_manager_init_fndecl_38537 amdgpu_sa_bo_manager_init fndecl 3 38537 NULL
160691 +enable_so_prism2_ap_translate_scan_fndecl_38540 prism2_ap_translate_scan fndecl 0 38540 NULL
160692 +enable_so_cx18_av_read_fndecl_38542 cx18_av_read fndecl 0 38542 NULL
160693 +enable_so_hw_channels_sh_cmt_device_38544 hw_channels sh_cmt_device 0 38544 NULL
160694 +enable_so_clk_fd_set_rate_fndecl_38545 clk_fd_set_rate fndecl 2-3 38545 NULL
160695 +enable_so_ulist_add_merge_fndecl_38547 ulist_add_merge fndecl 2-0 38547 NULL nohasharray
160696 +enable_so_krb5_encrypt_fndecl_38547 krb5_encrypt fndecl 5 38547 &enable_so_ulist_add_merge_fndecl_38547
160697 +enable_so_fb_base_phys_radeonfb_info_38551 fb_base_phys radeonfb_info 0 38551 NULL
160698 +enable_so_set_stream_hw_fndecl_38553 set_stream_hw fndecl 3 38553 NULL nohasharray
160699 +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
160700 +enable_so_o2net_debug_read_fndecl_38554 o2net_debug_read fndecl 3 38554 NULL
160701 +enable_so_rx_max_size_rtl_usb_38560 rx_max_size rtl_usb 0 38560 NULL
160702 +enable_so_ext2_alloc_blocks_fndecl_38562 ext2_alloc_blocks fndecl 2 38562 NULL nohasharray
160703 +enable_so_hysdn_conf_write_fndecl_38562 hysdn_conf_write fndecl 3 38562 &enable_so_ext2_alloc_blocks_fndecl_38562
160704 +enable_so_offset_writequeue_entry_38565 offset writequeue_entry 0 38565 NULL
160705 +enable_so_this_header_vardecl_initramfs_c_38567 this_header vardecl_initramfs.c 0 38567 NULL nohasharray
160706 +enable_so_htable_size_fndecl_38567 htable_size fndecl 0-1 38567 &enable_so_this_header_vardecl_initramfs_c_38567
160707 +enable_so_memblock_alloc_base_nid_fndecl_38568 memblock_alloc_base_nid fndecl 0-2-1-3 38568 NULL nohasharray
160708 +enable_so_smk_write_load2_fndecl_38568 smk_write_load2 fndecl 3 38568 &enable_so_memblock_alloc_base_nid_fndecl_38568
160709 +enable_so_nvme_major_vardecl_nvme_core_c_38572 nvme_major vardecl_nvme-core.c 0 38572 NULL
160710 +enable_so_setup_dma_urb_38573 setup_dma urb 0 38573 NULL nohasharray
160711 +enable_so_len_port_buffer_38573 len port_buffer 0 38573 &enable_so_setup_dma_urb_38573
160712 +enable_so_block_mtu_hci_dev_38575 block_mtu hci_dev 0 38575 NULL
160713 +enable_so_data_dma_aiptek_38577 data_dma aiptek 0 38577 NULL
160714 +enable_so_rsr_ct_atc_38578 rsr ct_atc 0 38578 NULL nohasharray
160715 +enable_so_retry_count_read_fndecl_38578 retry_count_read fndecl 3 38578 &enable_so_rsr_ct_atc_38578
160716 +enable_so_usVActive__ATOM_DTD_FORMAT_38581 usVActive _ATOM_DTD_FORMAT 0 38581 NULL
160717 +enable_so_gdm_usb_hci_send_fndecl_38585 gdm_usb_hci_send fndecl 3 38585 NULL
160718 +enable_so_sub_alloc_fndecl_38591 sub_alloc fndecl 0 38591 NULL
160719 +enable_so_print_prefix_fndecl_38595 print_prefix fndecl 0 38595 NULL
160720 +enable_so_set_nfilters_fndecl_38597 set_nfilters fndecl 2 38597 NULL
160721 +enable_so_proc_pid_readlink_fndecl_38601 proc_pid_readlink fndecl 3 38601 NULL
160722 +enable_so_s_cgmask_ufs_sb_private_info_38603 s_cgmask ufs_sb_private_info 0 38603 NULL
160723 +enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 reiserfs_posix_acl_from_disk fndecl 2 38604 NULL nohasharray
160724 +enable_so_v_offset_v2_38604 v offset_v2 0 38604 &enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 nohasharray
160725 +enable_so_maxburst_usb_ep_38604 maxburst usb_ep 0 38604 &enable_so_v_offset_v2_38604
160726 +enable_so_fpWidth_nvidia_par_38605 fpWidth nvidia_par 0 38605 NULL nohasharray
160727 +enable_so_perf_num_counters_fndecl_38605 perf_num_counters fndecl 0 38605 &enable_so_fpWidth_nvidia_par_38605
160728 +enable_so_p_arglen_rpc_procinfo_38611 p_arglen rpc_procinfo 0 38611 NULL
160729 +enable_so_objectid_reiserfs_iget_args_38612 objectid reiserfs_iget_args 0 38612 NULL
160730 +enable_so_mga_compat_ioctl_fndecl_38617 mga_compat_ioctl fndecl 2 38617 NULL
160731 +enable_so_max_wqe_rqe_ocrdma_create_qp_rsp_38618 max_wqe_rqe ocrdma_create_qp_rsp 0 38618 NULL
160732 +enable_so_ieee80211_if_read_dot11MeshRetryTimeout_fndecl_38619 ieee80211_if_read_dot11MeshRetryTimeout fndecl 3 38619 NULL
160733 +enable_so_pageshift_sddr55_card_info_38623 pageshift sddr55_card_info 0 38623 NULL
160734 +enable_so_ar5523_config_multi_fndecl_38630 ar5523_config_multi fndecl 4 38630 NULL
160735 +enable_so_level_kvm_shadow_walk_iterator_38631 level kvm_shadow_walk_iterator 0 38631 NULL
160736 +enable_so_next_burst_len_iscsi_datain_req_38632 next_burst_len iscsi_datain_req 0 38632 NULL nohasharray
160737 +enable_so_iscsi_if_send_reply_fndecl_38632 iscsi_if_send_reply fndecl 7 38632 &enable_so_next_burst_len_iscsi_datain_req_38632
160738 +enable_so_vmci_qp_broker_alloc_fndecl_38635 vmci_qp_broker_alloc fndecl 5-6 38635 NULL
160739 +enable_so_size_bucket_table_38640 size bucket_table 0 38640 NULL
160740 +enable_so_f2fs_seek_block_fndecl_38641 f2fs_seek_block fndecl 2 38641 NULL
160741 +enable_so_uart_offset_pciserial_board_38647 uart_offset pciserial_board 0 38647 NULL nohasharray
160742 +enable_so_max_ssns_csio_fcoe_res_info_38647 max_ssns csio_fcoe_res_info 0 38647 &enable_so_uart_offset_pciserial_board_38647
160743 +enable_so_truncate_pagecache_range_fndecl_38652 truncate_pagecache_range fndecl 2-3 38652 NULL
160744 +enable_so_str_read_fndecl_38656 str_read fndecl 4 38656 NULL
160745 +enable_so_tcp_metrics_hash_log_vardecl_tcp_metrics_c_38657 tcp_metrics_hash_log vardecl_tcp_metrics.c 0 38657 NULL
160746 +enable_so_rx_buffer_len_igbvf_adapter_38659 rx_buffer_len igbvf_adapter 0 38659 NULL
160747 +enable_so_fll_in_wm8900_priv_38661 fll_in wm8900_priv 0 38661 NULL
160748 +enable_so_ext4_setent_fndecl_38662 ext4_setent fndecl 3 38662 NULL
160749 +enable_so_cm4040_read_fndecl_38663 cm4040_read fndecl 3 38663 NULL
160750 +enable_so_hid_parse_report_fndecl_38666 hid_parse_report fndecl 3 38666 NULL
160751 +enable_so_def_bpp_mb862xx_gc_mode_38668 def_bpp mb862xx_gc_mode 0 38668 NULL
160752 +enable_so_tty_cdev_add_fndecl_38673 tty_cdev_add fndecl 2-4 38673 NULL
160753 +enable_so_drm_compat_ioctl_fndecl_38678 drm_compat_ioctl fndecl 2 38678 NULL
160754 +enable_so_v9fs_alloc_rdir_buf_fndecl_38679 v9fs_alloc_rdir_buf fndecl 2 38679 NULL
160755 +enable_so_txq_max_tg3_38686 txq_max tg3 0 38686 NULL
160756 +enable_so_sg_read_oxfer_fndecl_38687 sg_read_oxfer fndecl 3 38687 NULL
160757 +enable_so_sc_uaddr_len_nfs4_setclientid_38689 sc_uaddr_len nfs4_setclientid 0 38689 NULL
160758 +enable_so_len_irda_device_list_38690 len irda_device_list 0 38690 NULL
160759 +enable_so_iio_buffer_add_channel_sysfs_fndecl_38693 iio_buffer_add_channel_sysfs fndecl 0 38693 NULL
160760 +enable_so_ioremap_prot_fndecl_38695 ioremap_prot fndecl 2-1 38695 NULL
160761 +enable_so_bulk_in_ep_irda_usb_cb_38699 bulk_in_ep irda_usb_cb 0 38699 NULL
160762 +enable_so_get_user_pages_fast_fndecl_38708 get_user_pages_fast fndecl 0-1 38708 NULL
160763 +enable_so_cxgbi_ddp_init_fndecl_38714 cxgbi_ddp_init fndecl 4-5 38714 NULL nohasharray
160764 +enable_so_aac_change_queue_depth_fndecl_38714 aac_change_queue_depth fndecl 2 38714 &enable_so_cxgbi_ddp_init_fndecl_38714
160765 +enable_so_ifx_spi_insert_flip_string_fndecl_38715 ifx_spi_insert_flip_string fndecl 3 38715 NULL
160766 +enable_so_free_index_fndecl_38718 free_index fndecl 3 38718 NULL
160767 +enable_so_if_write_fndecl_38719 if_write fndecl 3 38719 NULL
160768 +enable_so_esrt_data_vardecl_esrt_c_38729 esrt_data vardecl_esrt.c 0 38729 NULL
160769 +enable_so_acpi_table_parse_entries_fndecl_38730 acpi_table_parse_entries fndecl 0 38730 NULL
160770 +enable_so_vram_vardecl_lxfb_core_c_38739 vram vardecl_lxfb_core.c 0 38739 NULL
160771 +enable_so_ports_max_wusbhc_38743 ports_max wusbhc 0 38743 NULL
160772 +enable_so___page_file_index_fndecl_38744 __page_file_index fndecl 0 38744 NULL
160773 +enable_so_ds_cc_ravb_ex_rx_desc_38745 ds_cc ravb_ex_rx_desc 0 38745 NULL nohasharray
160774 +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
160775 +enable_so_ssd1307fb_alloc_array_fndecl_38751 ssd1307fb_alloc_array fndecl 1 38751 NULL
160776 +enable_so_ts_tlb_preload_count_gru_thread_state_38752 ts_tlb_preload_count gru_thread_state 0 38752 NULL nohasharray
160777 +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
160778 +enable_so_length_snd_hwdep_dsp_image_38752 length snd_hwdep_dsp_image 0 38752 &enable_so_myri10ge_small_bytes_vardecl_myri10ge_c_38752
160779 +enable_so_buffer_from_user_fndecl_38753 buffer_from_user fndecl 3 38753 NULL
160780 +enable_so_tag_ctrl_info_amd8111e_rx_dr_38754 tag_ctrl_info amd8111e_rx_dr 0 38754 NULL
160781 +enable_so_reserved_pds_mlx4_caps_38755 reserved_pds mlx4_caps 0 38755 NULL
160782 +enable_so_t4_max_iq_size_c4iw_hw_queue_38756 t4_max_iq_size c4iw_hw_queue 0 38756 NULL
160783 +enable_so_nr_pages_max_splice_pipe_desc_38758 nr_pages_max splice_pipe_desc 0 38758 NULL
160784 +enable_so_o_height_g2d_frame_38760 o_height g2d_frame 0 38760 NULL
160785 +enable_so_egr_start_sge_38761 egr_start sge 0 38761 NULL
160786 +enable_so_default_advmss_dst_ops_38765 default_advmss dst_ops 0 38765 NULL
160787 +enable_so_qib_alloc_devdata_fndecl_38776 qib_alloc_devdata fndecl 2 38776 NULL
160788 +enable_so_ih_blkno_ocfs2_inode_handle_38779 ih_blkno ocfs2_inode_handle 0 38779 NULL
160789 +enable_so_height_cx231xx_38782 height cx231xx 0 38782 NULL
160790 +enable_so_create_rmp_cmd_fndecl_38783 create_rmp_cmd fndecl 0 38783 NULL
160791 +enable_so_maxauthsize_old_aead_alg_38788 maxauthsize old_aead_alg 0 38788 NULL nohasharray
160792 +enable_so_pointer_size_read_fndecl_38788 pointer_size_read fndecl 3 38788 &enable_so_maxauthsize_old_aead_alg_38788
160793 +enable_so_spi_read_buf_fndecl_38792 spi_read_buf fndecl 2 38792 NULL
160794 +enable_so_get_indirect_ea_fndecl_38798 get_indirect_ea fndecl 4-3 38798 NULL
160795 +enable_so_ioread32_fndecl_38804 ioread32 fndecl 0 38804 NULL nohasharray
160796 +enable_so_size_esb2rom_window_38804 size esb2rom_window 0 38804 &enable_so_ioread32_fndecl_38804 nohasharray
160797 +enable_so_read_file_tgt_tx_stats_fndecl_38804 read_file_tgt_tx_stats fndecl 3 38804 &enable_so_size_esb2rom_window_38804
160798 +enable_so_raw6_getfrag_fndecl_38805 raw6_getfrag fndecl 3-4 38805 NULL
160799 +enable_so_taglen_compound_hdr_38807 taglen compound_hdr 0 38807 NULL
160800 +enable_so_maxpacksize_snd_usX2Y_substream_38808 maxpacksize snd_usX2Y_substream 0 38808 NULL
160801 +enable_so_do_readv_writev_fndecl_38810 do_readv_writev fndecl 4 38810 NULL
160802 +enable_so_vlan_tci_sk_buff_38825 vlan_tci sk_buff 0 38825 NULL
160803 +enable_so_algorithm_r5conf_38831 algorithm r5conf 0 38831 NULL
160804 +enable_so_user_read_fndecl_38842 user_read fndecl 3 38842 NULL
160805 +enable_so_do_fault_fndecl_38845 do_fault fndecl 3 38845 NULL
160806 +enable_so_memblock_alloc_fndecl_38847 memblock_alloc fndecl 2-1-0 38847 NULL
160807 +enable_so_logfs_fsync_fndecl_38849 logfs_fsync fndecl 2-3 38849 NULL
160808 +enable_so_datablob_len_encrypted_key_payload_38850 datablob_len encrypted_key_payload 0 38850 NULL
160809 +enable_so_srs_nslot_sptlrpc_rule_set_38854 srs_nslot sptlrpc_rule_set 0 38854 NULL
160810 +enable_so_count_ixgbevf_ring_38867 count ixgbevf_ring 0 38867 NULL
160811 +enable_so_mask_mthca_alloc_38874 mask mthca_alloc 0 38874 NULL nohasharray
160812 +enable_so_if_sdio_handle_data_fndecl_38874 if_sdio_handle_data fndecl 3 38874 &enable_so_mask_mthca_alloc_38874
160813 +enable_so_wmi_set_ie_fndecl_38876 wmi_set_ie fndecl 3 38876 NULL
160814 +enable_so_mmc_spi_skip_fndecl_38879 mmc_spi_skip fndecl 3 38879 NULL nohasharray
160815 +enable_so_error_dvb_ringbuffer_38879 error dvb_ringbuffer 0 38879 &enable_so_mmc_spi_skip_fndecl_38879
160816 +enable_so_static_prio_task_struct_38880 static_prio task_struct 0 38880 NULL
160817 +enable_so_atalk_route_packet_fndecl_38886 atalk_route_packet fndecl 5-4 38886 NULL
160818 +enable_so_read_dummy_spi_nor_38888 read_dummy spi_nor 0 38888 NULL
160819 +enable_so_num_bna_intr_info_38889 num bna_intr_info 0 38889 NULL
160820 +enable_so_beb_rsvd_level_ubi_device_38898 beb_rsvd_level ubi_device 0 38898 NULL nohasharray
160821 +enable_so_reg_phys_intel_iommu_38898 reg_phys intel_iommu 0 38898 &enable_so_beb_rsvd_level_ubi_device_38898
160822 +enable_so_sg_width_mvs_chip_info_38900 sg_width mvs_chip_info 0 38900 NULL
160823 +enable_so_wr_buflen_nfsd4_write_38903 wr_buflen nfsd4_write 0 38903 NULL
160824 +enable_so_generic_elem_len_local_info_38904 generic_elem_len local_info 0 38904 NULL
160825 +enable_so_surface_bpp_drm_fb_helper_surface_size_38906 surface_bpp drm_fb_helper_surface_size 0 38906 NULL
160826 +enable_so_dst_ci_command_fndecl_38908 dst_ci_command fndecl 4 38908 NULL nohasharray
160827 +enable_so_scsi_get_vpd_page_fndecl_38908 scsi_get_vpd_page fndecl 4 38908 &enable_so_dst_ci_command_fndecl_38908
160828 +enable_so_pgctrl_write_fndecl_38918 pgctrl_write fndecl 3 38918 NULL
160829 +enable_so_qlcnic_diag_free_res_fndecl_38922 qlcnic_diag_free_res fndecl 2 38922 NULL
160830 +enable_so_max_window_tcp_sock_38923 max_window tcp_sock 0 38923 NULL
160831 +enable_so_data_size_ms_system_item_38924 data_size ms_system_item 0 38924 NULL
160832 +enable_so_usb_sg_init_fndecl_38925 usb_sg_init fndecl 7-3-6 38925 NULL nohasharray
160833 +enable_so_num_txqs_octeon_nic_if_config_38925 num_txqs octeon_nic_if_config 0 38925 &enable_so_usb_sg_init_fndecl_38925
160834 +enable_so_refresh_drm_cmdline_mode_38926 refresh drm_cmdline_mode 0 38926 NULL
160835 +enable_so_seek_holedata_direct_fndecl_38928 seek_holedata_direct fndecl 0-2 38928 NULL
160836 +enable_so_tx_queues_vardecl_bond_main_c_38932 tx_queues vardecl_bond_main.c 0 38932 NULL
160837 +enable_so_qib_restart_rc_fndecl_38939 qib_restart_rc fndecl 2 38939 NULL
160838 +enable_so_depth_cx231xx_fmt_38940 depth cx231xx_fmt 0 38940 NULL
160839 +enable_so_pcm_open_fndecl_38941 pcm_open fndecl 2 38941 NULL
160840 +enable_so_ecryptfs_write_lower_page_segment_fndecl_38943 ecryptfs_write_lower_page_segment fndecl 4 38943 NULL
160841 +enable_so_sc_page_off_o2net_sock_container_38950 sc_page_off o2net_sock_container 0 38950 NULL
160842 +enable_so_in_length_nd_cmd_set_config_hdr_38954 in_length nd_cmd_set_config_hdr 0 38954 NULL
160843 +enable_so_bpp_vmw_fb_par_38955 bpp vmw_fb_par 0 38955 NULL
160844 +enable_so_tcp_copied_sock_xprt_38964 tcp_copied sock_xprt 0 38964 NULL
160845 +enable_so_uregbase_qib_devdata_38972 uregbase qib_devdata 0 38972 NULL nohasharray
160846 +enable_so_wm8350_register_regulator_fndecl_38972 wm8350_register_regulator fndecl 2 38972 &enable_so_uregbase_qib_devdata_38972
160847 +enable_so_cdrom_read_cdda_fndecl_38973 cdrom_read_cdda fndecl 4 38973 NULL
160848 +enable_so_register_buffer_fndecl_38990 register_buffer fndecl 3 38990 NULL
160849 +enable_so_hsc_read_fndecl_38991 hsc_read fndecl 3 38991 NULL
160850 +enable_so_pcm_buf_elapsed_dma_ofs_snd_card_asihpi_pcm_38998 pcm_buf_elapsed_dma_ofs snd_card_asihpi_pcm 0 38998 NULL
160851 +enable_so_maxqlen_vardecl_seq_oss_init_c_39001 maxqlen vardecl_seq_oss_init.c 0 39001 NULL
160852 +enable_so_pwr_rcvd_awake_beacons_read_fndecl_39002 pwr_rcvd_awake_beacons_read fndecl 3 39002 NULL
160853 +enable_so_tlv_len_nfc_llcp_sdp_tlv_39007 tlv_len nfc_llcp_sdp_tlv 0 39007 NULL
160854 +enable_so_dram_end_intel_sst_drv_39008 dram_end intel_sst_drv 0 39008 NULL
160855 +enable_so_trigger_request_store_fndecl_39015 trigger_request_store fndecl 4 39015 NULL
160856 +enable_so_usbat_flash_write_data_fndecl_39018 usbat_flash_write_data fndecl 4 39018 NULL
160857 +enable_so_dlfb_submit_urb_fndecl_39028 dlfb_submit_urb fndecl 3 39028 NULL
160858 +enable_so_alloc_send_rmpp_list_fndecl_39029 alloc_send_rmpp_list fndecl 2 39029 NULL
160859 +enable_so_at25_ee_read_fndecl_39032 at25_ee_read fndecl 3-4 39032 NULL nohasharray
160860 +enable_so_video_pbase_osd_info_39032 video_pbase osd_info 0 39032 &enable_so_at25_ee_read_fndecl_39032 nohasharray
160861 +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
160862 +enable_so_fwnet_receive_packet_fndecl_39034 fwnet_receive_packet fndecl 9 39034 NULL
160863 +enable_so_reserve_st_proto_s_39036 reserve st_proto_s 0 39036 NULL
160864 +enable_so_free_ubifs_lprops_39039 free ubifs_lprops 0 39039 NULL
160865 +enable_so_fat_readpages_fndecl_39045 fat_readpages fndecl 4 39045 NULL nohasharray
160866 +enable_so_pep_reply_fndecl_39045 pep_reply fndecl 5 39045 &enable_so_fat_readpages_fndecl_39045
160867 +enable_so_iwl_dbgfs_missed_beacon_read_fndecl_39051 iwl_dbgfs_missed_beacon_read fndecl 3 39051 NULL
160868 +enable_so_num_ports_u132_39052 num_ports u132 0 39052 NULL
160869 +enable_so_ttm_agp_tt_create_fndecl_39056 ttm_agp_tt_create fndecl 3 39056 NULL nohasharray
160870 +enable_so_get_key_fscache_cookie_def_39056 get_key fscache_cookie_def 0 39056 &enable_so_ttm_agp_tt_create_fndecl_39056
160871 +enable_so_ncp_fsync_fndecl_39057 ncp_fsync fndecl 2-3 39057 NULL
160872 +enable_so_frameLen_rx_desc_39058 frameLen rx_desc 0 39058 NULL nohasharray
160873 +enable_so_minor_gigaset_driver_39058 minor gigaset_driver 0 39058 &enable_so_frameLen_rx_desc_39058
160874 +enable_so_send_set_xattr_fndecl_39062 send_set_xattr fndecl 6-4 39062 NULL
160875 +enable_so_n_buckets_bpf_htab_39067 n_buckets bpf_htab 0 39067 NULL
160876 +enable_so_iscsit_handle_immediate_data_fndecl_39071 iscsit_handle_immediate_data fndecl 3 39071 NULL
160877 +enable_so_max_rules_crush_map_39073 max_rules crush_map 0 39073 NULL
160878 +enable_so_usbatm_write_cells_fndecl_39074 usbatm_write_cells fndecl 0 39074 NULL
160879 +enable_so_frame_len_b43_rxhdr_fw4_39076 frame_len b43_rxhdr_fw4 0 39076 NULL
160880 +enable_so_rx_rx_checksum_result_read_fndecl_39082 rx_rx_checksum_result_read fndecl 3 39082 NULL
160881 +enable_so_sparse_early_usemaps_alloc_node_fndecl_39084 sparse_early_usemaps_alloc_node fndecl 4 39084 NULL
160882 +enable_so_sge_rx_fndecl_39089 sge_rx fndecl 3 39089 NULL
160883 +enable_so_d0_vring_rx_dma_39093 d0 vring_rx_dma 0 39093 NULL
160884 +enable_so_negotiate_rsize_smb_version_operations_39094 negotiate_rsize smb_version_operations 0 39094 NULL
160885 +enable_so_xillybus_write_fndecl_39102 xillybus_write fndecl 3 39102 NULL
160886 +enable_so___smpboot_create_thread_fndecl_39110 __smpboot_create_thread fndecl 0 39110 NULL
160887 +enable_so_grow_zone_span_fndecl_39112 grow_zone_span fndecl 2-3 39112 NULL nohasharray
160888 +enable_so_audio_ins_vx_core_39112 audio_ins vx_core 0 39112 &enable_so_grow_zone_span_fndecl_39112
160889 +enable_so_bg_bits_ocfs2_group_desc_39116 bg_bits ocfs2_group_desc 0 39116 NULL
160890 +enable_so_fat_direct_IO_fndecl_39117 fat_direct_IO fndecl 3 39117 NULL
160891 +enable_so_rds_ib_sysctl_max_send_wr_vardecl_39120 rds_ib_sysctl_max_send_wr vardecl 0 39120 NULL
160892 +enable_so_rl_namelen_rcom_lock_39122 rl_namelen rcom_lock 0 39122 NULL
160893 +enable_so_bytes_per_datum_iio_buffer_39125 bytes_per_datum iio_buffer 0 39125 NULL
160894 +enable_so_calc_memmap_size_fndecl_39130 calc_memmap_size fndecl 0-2-1 39130 NULL nohasharray
160895 +enable_so_simple_transaction_get_fndecl_39130 simple_transaction_get fndecl 3 39130 &enable_so_calc_memmap_size_fndecl_39130
160896 +enable_so_syst_pa_vardecl_sfi_core_c_39133 syst_pa vardecl_sfi_core.c 0 39133 NULL
160897 +enable_so_ceph_build_auth_request_fndecl_39135 ceph_build_auth_request fndecl 0 39135 NULL
160898 +enable_so_system_sample_rate_hdsp_39140 system_sample_rate hdsp 0 39140 NULL
160899 +enable_so_drvr_sglimit_blogic_adapter_39142 drvr_sglimit blogic_adapter 0 39142 NULL
160900 +enable_so_mmc_test_buffer_transfer_fndecl_39150 mmc_test_buffer_transfer fndecl 4 39150 NULL
160901 +enable_so_raid56_parity_alloc_scrub_rbio_fndecl_39153 raid56_parity_alloc_scrub_rbio fndecl 4 39153 NULL
160902 +enable_so_size_intel_initial_plane_config_39155 size intel_initial_plane_config 0 39155 NULL
160903 +enable_so_log_root_btrfs_super_block_39157 log_root btrfs_super_block 0 39157 NULL
160904 +enable_so_fcoe_start_cid_cnic_local_39162 fcoe_start_cid cnic_local 0 39162 NULL
160905 +enable_so_ath6kl_tm_rx_event_fndecl_39163 ath6kl_tm_rx_event fndecl 3 39163 NULL nohasharray
160906 +enable_so_sys_readv_fndecl_39163 sys_readv fndecl 3 39163 &enable_so_ath6kl_tm_rx_event_fndecl_39163
160907 +enable_so_num_mcg_mlx4_profile_39164 num_mcg mlx4_profile 0 39164 NULL
160908 +enable_so_ext2_try_to_allocate_with_rsv_fndecl_39166 ext2_try_to_allocate_with_rsv fndecl 0-4 39166 NULL
160909 +enable_so_ast_gem_create_fndecl_39167 ast_gem_create fndecl 2 39167 NULL
160910 +enable_so_blf_len_xfs_buf_log_format_39169 blf_len xfs_buf_log_format 0 39169 NULL
160911 +enable_so_qsize_inet_frags_39172 qsize inet_frags 0 39172 NULL nohasharray
160912 +enable_so_lib80211_michael_mic_verify_fndecl_39172 lib80211_michael_mic_verify fndecl 3 39172 &enable_so_qsize_inet_frags_39172
160913 +enable_so_cfg80211_roamed_bss_fndecl_39173 cfg80211_roamed_bss fndecl 4-6 39173 NULL
160914 +enable_so_cyttsp4_probe_fndecl_39178 cyttsp4_probe fndecl 4 39178 NULL
160915 +enable_so_l2cap_sock_setsockopt_fndecl_39180 l2cap_sock_setsockopt fndecl 5 39180 NULL
160916 +enable_so_mthca_buddy_init_fndecl_39181 mthca_buddy_init fndecl 2 39181 NULL
160917 +enable_so_skb_put_fndecl_39184 skb_put fndecl 2 39184 NULL
160918 +enable_so_size_nvkm_instobj_args_39185 size nvkm_instobj_args 0 39185 NULL
160919 +enable_so_ttymajor_vardecl_mxser_c_39193 ttymajor vardecl_mxser.c 0 39193 NULL
160920 +enable_so_udc_create_dma_chain_fndecl_39194 udc_create_dma_chain fndecl 3 39194 NULL
160921 +enable_so_maxentry_xtheader_39202 maxentry xtheader 0 39202 NULL
160922 +enable_so_mon_bin_compat_ioctl_fndecl_39209 mon_bin_compat_ioctl fndecl 3 39209 NULL
160923 +enable_so_len_vmci_datagram_snd_rcv_info_39211 len vmci_datagram_snd_rcv_info 0 39211 NULL
160924 +enable_so_ieee80211_skb_resize_fndecl_39216 ieee80211_skb_resize fndecl 3 39216 NULL
160925 +enable_so_num_gpu_pages_amdgpu_gart_39218 num_gpu_pages amdgpu_gart 0 39218 NULL
160926 +enable_so_lpfc_bg_setup_bpl_prot_fndecl_39221 lpfc_bg_setup_bpl_prot fndecl 0 39221 NULL
160927 +enable_so_seq_buf_to_user_fndecl_39222 seq_buf_to_user fndecl 3 39222 NULL
160928 +enable_so_max_reqs_kioctx_39227 max_reqs kioctx 0 39227 NULL
160929 +enable_so_afs_extract_data_fndecl_39238 afs_extract_data fndecl 5 39238 NULL
160930 +enable_so_sel_start_vardecl_selection_c_39245 sel_start vardecl_selection.c 0 39245 NULL
160931 +enable_so_remote_mps_l2cap_chan_39250 remote_mps l2cap_chan 0 39250 NULL nohasharray
160932 +enable_so_mon_buff_area_fill_fndecl_39250 mon_buff_area_fill fndecl 3 39250 &enable_so_remote_mps_l2cap_chan_39250
160933 +enable_so_sg_kmalloc_fndecl_39251 sg_kmalloc fndecl 1 39251 NULL
160934 +enable_so_btrfs_issue_discard_fndecl_39257 btrfs_issue_discard fndecl 2-3 39257 NULL
160935 +enable_so___iommu_alloc_buffer_fndecl_39259 __iommu_alloc_buffer fndecl 2 39259 NULL
160936 +enable_so_data_offset_napi_gro_cb_39263 data_offset napi_gro_cb 0 39263 NULL
160937 +enable_so_soc_codec_reg_show_fndecl_39277 soc_codec_reg_show fndecl 0-3 39277 NULL
160938 +enable_so_idata_dma_usb_xpad_39278 idata_dma usb_xpad 0 39278 NULL
160939 +enable_so_size_tomoyo_condition_39281 size tomoyo_condition 0 39281 NULL
160940 +enable_so_find_parent_nodes_fndecl_39282 find_parent_nodes fndecl 3 39282 NULL
160941 +enable_so_ant_type_iwl_scale_tbl_info_39287 ant_type iwl_scale_tbl_info 0 39287 NULL
160942 +enable_so_bi_sector_bvec_merge_data_39289 bi_sector bvec_merge_data 0 39289 NULL
160943 +enable_so_rxrpc_setsockopt_fndecl_39293 rxrpc_setsockopt fndecl 5 39293 NULL
160944 +enable_so_page_size_msb_data_39297 page_size msb_data 0 39297 NULL nohasharray
160945 +enable_so_encoding_p_compressed_bm_39297 encoding p_compressed_bm 0 39297 &enable_so_page_size_msb_data_39297 nohasharray
160946 +enable_so_max_vfi_lpfc_max_cfg_param_39297 max_vfi lpfc_max_cfg_param 0 39297 &enable_so_encoding_p_compressed_bm_39297
160947 +enable_so_sel_make_perm_files_fndecl_39298 sel_make_perm_files fndecl 2 39298 NULL
160948 +enable_so_do_launder_page_fndecl_39306 do_launder_page fndecl 0 39306 NULL
160949 +enable_so_lpfc_idiag_pcicfg_read_fndecl_39309 lpfc_idiag_pcicfg_read fndecl 3 39309 NULL
160950 +enable_so_SYSC_flistxattr_fndecl_39312 SYSC_flistxattr fndecl 3 39312 NULL
160951 +enable_so_e820_end_of_ram_pfn_fndecl_39315 e820_end_of_ram_pfn fndecl 0 39315 NULL nohasharray
160952 +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
160953 +enable_so_SYSC_sched_setaffinity_fndecl_39317 SYSC_sched_setaffinity fndecl 2 39317 NULL
160954 +enable_so_len_buflist_39320 len buflist 0 39320 NULL
160955 +enable_so_depth_tw68_format_39322 depth tw68_format 0 39322 NULL
160956 +enable_so_soc_camera_read_fndecl_39324 soc_camera_read fndecl 3 39324 NULL nohasharray
160957 +enable_so_rx_dataoffset_brcmf_msgbuf_39324 rx_dataoffset brcmf_msgbuf 0 39324 &enable_so_soc_camera_read_fndecl_39324
160958 +enable_so_size_bts_action_39331 size bts_action 0 39331 NULL
160959 +enable_so_page_jfs_log_39335 page jfs_log 0 39335 NULL nohasharray
160960 +enable_so_isdn_ppp_read_fndecl_39335 isdn_ppp_read fndecl 4 39335 &enable_so_page_jfs_log_39335
160961 +enable_so_nilfs_sufile_segment_usages_in_block_fndecl_39336 nilfs_sufile_segment_usages_in_block fndecl 0-2-3 39336 NULL
160962 +enable_so_tx_pipe_brcmf_usbdev_info_39337 tx_pipe brcmf_usbdev_info 0 39337 NULL nohasharray
160963 +enable_so_num_channels_hw_mode_spec_39337 num_channels hw_mode_spec 0 39337 &enable_so_tx_pipe_brcmf_usbdev_info_39337 nohasharray
160964 +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
160965 +enable_so_nvkm_mm_head_fndecl_39339 nvkm_mm_head fndecl 6-4-3 39339 NULL nohasharray
160966 +enable_so_musb_softconnect_write_fndecl_39339 musb_softconnect_write fndecl 3 39339 &enable_so_nvkm_mm_head_fndecl_39339
160967 +enable_so_setbrightness_fndecl_39342 setbrightness fndecl 0 39342 NULL
160968 +enable_so_nhead_offs_ubifs_info_39346 nhead_offs ubifs_info 0 39346 NULL
160969 +enable_so_root_offs_ubifs_mst_node_39347 root_offs ubifs_mst_node 0 39347 NULL
160970 +enable_so_ksm_might_need_to_copy_fndecl_39350 ksm_might_need_to_copy fndecl 3 39350 NULL
160971 +enable_so_efs_validate_vh_fndecl_39352 efs_validate_vh fndecl 0 39352 NULL
160972 +enable_so_nsize_jffs2_sum_dirent_mem_39355 nsize jffs2_sum_dirent_mem 0 39355 NULL nohasharray
160973 +enable_so_tpm_read_fndecl_39355 tpm_read fndecl 3 39355 &enable_so_nsize_jffs2_sum_dirent_mem_39355
160974 +enable_so_hub_status_data_hc_driver_39357 hub_status_data hc_driver 0 39357 NULL nohasharray
160975 +enable_so_rbd_obj_request_create_fndecl_39357 rbd_obj_request_create fndecl 2-3 39357 &enable_so_hub_status_data_hc_driver_39357
160976 +enable_so_tx_ndp_modulus_cdc_ncm_ctx_39369 tx_ndp_modulus cdc_ncm_ctx 0 39369 NULL
160977 +enable_so_nftl_read_oob_fndecl_39370 nftl_read_oob fndecl 2-3 39370 NULL
160978 +enable_so_num_frames_camera_data_39372 num_frames camera_data 0 39372 NULL
160979 +enable_so_length_btrfs_ioctl_same_args_39374 length btrfs_ioctl_same_args 0 39374 NULL
160980 +enable_so_roccat_common2_receive_fndecl_39378 roccat_common2_receive fndecl 4 39378 NULL
160981 +enable_so_vsi_fshino_vxfs_sb_info_39379 vsi_fshino vxfs_sb_info 0 39379 NULL
160982 +enable_so_height_v4l2_mbus_framefmt_39383 height v4l2_mbus_framefmt 0 39383 NULL
160983 +enable_so_from_offset_text_match_39384 from_offset text_match 0 39384 NULL nohasharray
160984 +enable_so_tx_count_ethtool_channels_39384 tx_count ethtool_channels 0 39384 &enable_so_from_offset_text_match_39384
160985 +enable_so_lfb_depth_screen_info_39385 lfb_depth screen_info 0 39385 NULL
160986 +enable_so_read16_ssb_bus_ops_39388 read16 ssb_bus_ops 0 39388 NULL
160987 +enable_so_sl_alloc_bufs_fndecl_39391 sl_alloc_bufs fndecl 2 39391 NULL
160988 +enable_so___page_set_anon_rmap_fndecl_39401 __page_set_anon_rmap fndecl 3 39401 NULL
160989 +enable_so_stv0900_get_bits_fndecl_39402 stv0900_get_bits fndecl 0 39402 NULL nohasharray
160990 +enable_so_iscsi_create_conn_fndecl_39402 iscsi_create_conn fndecl 2 39402 &enable_so_stv0900_get_bits_fndecl_39402
160991 +enable_so_ipath_skip_sge_fndecl_39407 ipath_skip_sge fndecl 2 39407 NULL
160992 +enable_so_userptr_radeon_ttm_tt_39408 userptr radeon_ttm_tt 0 39408 NULL
160993 +enable_so_total_vfs_fm10k_iov_info_39412 total_vfs fm10k_iov_info 0 39412 NULL
160994 +enable_so_payld_len_htc_frame_hdr_39418 payld_len htc_frame_hdr 0 39418 NULL
160995 +enable_so_vramsize_sisusb_usb_data_39419 vramsize sisusb_usb_data 0 39419 NULL
160996 +enable_so_board_sample_rate_lx6464es_39420 board_sample_rate lx6464es 0 39420 NULL nohasharray
160997 +enable_so_stretch_height_usb_usbvision_39420 stretch_height usb_usbvision 0 39420 &enable_so_board_sample_rate_lx6464es_39420
160998 +enable_so_read_eeprom_fndecl_39423 read_eeprom fndecl 4 39423 NULL
160999 +enable_so_cros_ec_spi_receive_response_fndecl_39426 cros_ec_spi_receive_response fndecl 2 39426 NULL nohasharray
161000 +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
161001 +enable_so_nftl_writeblock_fndecl_39428 nftl_writeblock fndecl 2 39428 NULL
161002 +enable_so_jpeg_len_solo_enc_dev_39431 jpeg_len solo_enc_dev 0 39431 NULL
161003 +enable_so_btrfs_del_csums_fndecl_39434 btrfs_del_csums fndecl 3-4 39434 NULL
161004 +enable_so_ring_size__drm_i810_init_39437 ring_size _drm_i810_init 0 39437 NULL nohasharray
161005 +enable_so_iov_len_iovec_39437 iov_len iovec 0 39437 &enable_so_ring_size__drm_i810_init_39437
161006 +enable_so_show_device_status_fndecl_39440 show_device_status fndecl 0 39440 NULL
161007 +enable_so_virtio_cread16_fndecl_39444 virtio_cread16 fndecl 0 39444 NULL
161008 +enable_so_tp_la_write_fndecl_39445 tp_la_write fndecl 3 39445 NULL
161009 +enable_so_sdio_uart_write_fndecl_39449 sdio_uart_write fndecl 3 39449 NULL
161010 +enable_so_zl10036_write_fndecl_39451 zl10036_write fndecl 3 39451 NULL nohasharray
161011 +enable_so_ocfs2_add_refcount_flag_fndecl_39451 ocfs2_add_refcount_flag fndecl 6-7-5 39451 &enable_so_zl10036_write_fndecl_39451
161012 +enable_so_SyS_setxattr_fndecl_39454 SyS_setxattr fndecl 4 39454 NULL
161013 +enable_so_recovery_cp_mddev_39459 recovery_cp mddev 0 39459 NULL
161014 +enable_so_security_load_policy_fndecl_39462 security_load_policy fndecl 2 39462 NULL
161015 +enable_so_proc_write_fndecl_39464 proc_write fndecl 3 39464 NULL
161016 +enable_so_LMC_PKT_BUF_SZ_vardecl_lmc_main_c_39465 LMC_PKT_BUF_SZ vardecl_lmc_main.c 0 39465 NULL
161017 +enable_so_num_buffers_vardecl_cpia2_v4l_c_39466 num_buffers vardecl_cpia2_v4l.c 0 39466 NULL
161018 +enable_so_max_count_octeon_droq_39475 max_count octeon_droq 0 39475 NULL
161019 +enable_so_iwl_statistics_flag_fndecl_39478 iwl_statistics_flag fndecl 0 39478 NULL
161020 +enable_so_qib_verbs_send_pio_fndecl_39482 qib_verbs_send_pio fndecl 5 39482 NULL
161021 +enable_so_address_length_acpi_resource_fixed_memory32_39483 address_length acpi_resource_fixed_memory32 0 39483 NULL
161022 +enable_so_iov_iter_bvec_fndecl_39493 iov_iter_bvec fndecl 5-4 39493 NULL
161023 +enable_so_fuse_conn_congestion_threshold_read_fndecl_39495 fuse_conn_congestion_threshold_read fndecl 3 39495 NULL
161024 +enable_so_pktdev_major_vardecl_pktcdvd_c_39506 pktdev_major vardecl_pktcdvd.c 0 39506 NULL
161025 +enable_so_rds_iw_sysctl_max_recv_wr_vardecl_39508 rds_iw_sysctl_max_recv_wr vardecl 0 39508 NULL
161026 +enable_so_ppp_read_fndecl_39514 ppp_read fndecl 3 39514 NULL
161027 +enable_so_lbs_dev_info_fndecl_39516 lbs_dev_info fndecl 3 39516 NULL
161028 +enable_so_txsize_grcan_device_config_39527 txsize grcan_device_config 0 39527 NULL nohasharray
161029 +enable_so_len_batadv_tvlv_hdr_39527 len batadv_tvlv_hdr 0 39527 &enable_so_txsize_grcan_device_config_39527
161030 +enable_so_rsc_mgr_init_fndecl_39528 rsc_mgr_init fndecl 3 39528 NULL
161031 +enable_so_wusb_prf_64_fndecl_39530 wusb_prf_64 fndecl 7 39530 NULL
161032 +enable_so_num_queues_bnx2x_39531 num_queues bnx2x 0 39531 NULL
161033 +enable_so_reply_len_bsg_job_39533 reply_len bsg_job 0 39533 NULL
161034 +enable_so_hugepage_add_new_anon_rmap_fndecl_39534 hugepage_add_new_anon_rmap fndecl 3 39534 NULL
161035 +enable_so_srpt_alloc_ioctx_fndecl_39537 srpt_alloc_ioctx fndecl 2-3 39537 NULL
161036 +enable_so_elem_size_v4l2_ctrl_39540 elem_size v4l2_ctrl 0 39540 NULL
161037 +enable_so_do_arpt_set_ctl_fndecl_39550 do_arpt_set_ctl fndecl 4 39550 NULL
161038 +enable_so_kaweth_internal_control_msg_fndecl_39552 kaweth_internal_control_msg fndecl 5-2 39552 NULL nohasharray
161039 +enable_so_do_trim_fndecl_39552 do_trim fndecl 4-2-5-3 39552 &enable_so_kaweth_internal_control_msg_fndecl_39552
161040 +enable_so_from_fw_map_39555 from fw_map 0 39555 NULL nohasharray
161041 +enable_so_jbd2_journal_init_revoke_fndecl_39555 jbd2_journal_init_revoke fndecl 2 39555 &enable_so_from_fw_map_39555
161042 +enable_so_l2specific_len_l2tp_session_39558 l2specific_len l2tp_session 0 39558 NULL
161043 +enable_so_build_backref_tree_fndecl_39561 build_backref_tree fndecl 4 39561 NULL nohasharray
161044 +enable_so_ci_flags_ext4_crypt_info_39561 ci_flags ext4_crypt_info 0 39561 &enable_so_build_backref_tree_fndecl_39561
161045 +enable_so___ocfs2_find_path_fndecl_39563 __ocfs2_find_path fndecl 0 39563 NULL
161046 +enable_so_disk_size_disk_conf_39567 disk_size disk_conf 0 39567 NULL
161047 +enable_so_plcp_mimo3_iwl_rate_info_39569 plcp_mimo3 iwl_rate_info 0 39569 NULL
161048 +enable_so_sys32_pwrite_fndecl_39572 sys32_pwrite fndecl 3 39572 NULL
161049 +enable_so_group_ext3_new_group_data_39573 group ext3_new_group_data 0 39573 NULL
161050 +enable_so_oh_len_omninet_header_39576 oh_len omninet_header 0 39576 NULL
161051 +enable_so_nfs4_file_llseek_fndecl_39578 nfs4_file_llseek fndecl 2 39578 NULL
161052 +enable_so_snbep_pci2phy_map_init_fndecl_39582 snbep_pci2phy_map_init fndecl 1 39582 NULL
161053 +enable_so_len_ubifs_scan_node_39584 len ubifs_scan_node 0 39584 NULL
161054 +enable_so_iunique_fndecl_39586 iunique fndecl 0-2 39586 NULL
161055 +enable_so_req_que_len_qla_hw_data_39587 req_que_len qla_hw_data 0 39587 NULL
161056 +enable_so_buf_size_fm_rds_39590 buf_size fm_rds 0 39590 NULL
161057 +enable_so_rq_bytes_sent_rpc_rqst_39591 rq_bytes_sent rpc_rqst 0 39591 NULL
161058 +enable_so_count_snd_ctl_elem_info_39594 count snd_ctl_elem_info 0 39594 NULL
161059 +enable_so_amanda_help_fndecl_39598 amanda_help fndecl 2 39598 NULL
161060 +enable_so_dm_consult_userspace_fndecl_39601 dm_consult_userspace fndecl 5 39601 NULL
161061 +enable_so_ti_recv_fndecl_39605 ti_recv fndecl 3 39605 NULL nohasharray
161062 +enable_so_midi_ports_snd_emux_39605 midi_ports snd_emux 0 39605 &enable_so_ti_recv_fndecl_39605
161063 +enable_so_double_length_smbios_cru64_info_39607 double_length smbios_cru64_info 0 39607 NULL nohasharray
161064 +enable_so_e1000e_hwtstamp_set_fndecl_39607 e1000e_hwtstamp_set fndecl 0 39607 &enable_so_double_length_smbios_cru64_info_39607
161065 +enable_so_of_clk_get_parent_count_fndecl_39609 of_clk_get_parent_count fndecl 0 39609 NULL
161066 +enable_so_iscsi_nop_out_rsp_fndecl_39614 iscsi_nop_out_rsp fndecl 4 39614 NULL
161067 +enable_so_rx_buffer_order_efx_nic_39620 rx_buffer_order efx_nic 0 39620 NULL
161068 +enable_so_cookie_len_l2tp_session_39629 cookie_len l2tp_session 0 39629 NULL
161069 +enable_so_max_cq_sz_mthca_dev_lim_39630 max_cq_sz mthca_dev_lim 0 39630 NULL
161070 +enable_so_fb_phys_ocfb_dev_39632 fb_phys ocfb_dev 0 39632 NULL
161071 +enable_so_xfs_bmbt_lookup_ge_fndecl_39633 xfs_bmbt_lookup_ge fndecl 3-4-2 39633 NULL
161072 +enable_so_saa7134_alsa_dma_init_fndecl_39636 saa7134_alsa_dma_init fndecl 2 39636 NULL
161073 +enable_so_simple_xattr_set_fndecl_39639 simple_xattr_set fndecl 4 39639 NULL
161074 +enable_so_compat_sys_pwritev64_fndecl_39644 compat_sys_pwritev64 fndecl 3 39644 NULL
161075 +enable_so_setup_arg_pages_fndecl_39645 setup_arg_pages fndecl 2 39645 NULL nohasharray
161076 +enable_so_ext3_bg_num_gdb_meta_fndecl_39645 ext3_bg_num_gdb_meta fndecl 0 39645 &enable_so_setup_arg_pages_fndecl_39645
161077 +enable_so_xfs_trans_get_efd_fndecl_39647 xfs_trans_get_efd fndecl 3 39647 NULL
161078 +enable_so_tx_len_hw_modul_39649 tx_len hw_modul 0 39649 NULL
161079 +enable_so_v9fs_listxattr_fndecl_39654 v9fs_listxattr fndecl 3 39654 NULL
161080 +enable_so_skb_copy_datagram_iter_fndecl_39662 skb_copy_datagram_iter fndecl 4-2-0 39662 NULL
161081 +enable_so_viafb_get_fb_size_from_pci_fndecl_39663 viafb_get_fb_size_from_pci fndecl 0 39663 NULL
161082 +enable_so_emulate_ts_fndecl_39665 emulate_ts fndecl 2 39665 NULL nohasharray
161083 +enable_so_mq_bytes_user_struct_39665 mq_bytes user_struct 0 39665 &enable_so_emulate_ts_fndecl_39665
161084 +enable_so_snd_rawmidi_transmit_peek_fndecl_39668 snd_rawmidi_transmit_peek fndecl 0-3 39668 NULL
161085 +enable_so_der_length_size_fndecl_39673 der_length_size fndecl 0 39673 NULL
161086 +enable_so_sectorsize_btrfs_super_block_39674 sectorsize btrfs_super_block 0 39674 NULL
161087 +enable_so_rdma_read_chunk_frmr_fndecl_39676 rdma_read_chunk_frmr fndecl 7 39676 NULL
161088 +enable_so_num_q_vectors_fm10k_intfc_39681 num_q_vectors fm10k_intfc 0 39681 NULL nohasharray
161089 +enable_so_dev_mem_read_fndecl_39681 dev_mem_read fndecl 3 39681 &enable_so_num_q_vectors_fm10k_intfc_39681
161090 +enable_so_fd_block_size_fd_dev_39692 fd_block_size fd_dev 0 39692 NULL nohasharray
161091 +enable_so_priv_size_Qdisc_ops_39692 priv_size Qdisc_ops 0 39692 &enable_so_fd_block_size_fd_dev_39692
161092 +enable_so_nb_ace_cci_nb_ports_39699 nb_ace cci_nb_ports 0 39699 NULL
161093 +enable_so_badblockpos_nand_chip_39700 badblockpos nand_chip 0 39700 NULL
161094 +enable_so_at24_macc_write_fndecl_39705 at24_macc_write fndecl 4-3 39705 NULL
161095 +enable_so_xfs_growfs_get_hdr_buf_fndecl_39706 xfs_growfs_get_hdr_buf fndecl 3-2 39706 NULL
161096 +enable_so_blk_check_plugged_fndecl_39715 blk_check_plugged fndecl 3 39715 NULL
161097 +enable_so_e1000_change_mtu_fndecl_39722 e1000_change_mtu fndecl 2 39722 NULL
161098 +enable_so___ext3_get_inode_loc_fndecl_39723 __ext3_get_inode_loc fndecl 0 39723 NULL
161099 +enable_so_pglen_pnfs_device_39724 pglen pnfs_device 0 39724 NULL
161100 +enable_so_epool_init_fndecl_39728 epool_init fndecl 2 39728 NULL
161101 +enable_so_max_wrs_iwch_rnic_attributes_39735 max_wrs iwch_rnic_attributes 0 39735 NULL
161102 +enable_so___hostap_add_bss_fndecl_39739 __hostap_add_bss fndecl 4 39739 NULL
161103 +enable_so__ubh_bread__fndecl_39744 _ubh_bread_ fndecl 3 39744 NULL
161104 +enable_so_pipe_handler_request_fndecl_39749 pipe_handler_request fndecl 5 39749 NULL nohasharray
161105 +enable_so_tm6000_read_write_usb_fndecl_39749 tm6000_read_write_usb fndecl 7 39749 &enable_so_pipe_handler_request_fndecl_39749
161106 +enable_so_ocfs2_xattr_block_get_fndecl_39750 ocfs2_xattr_block_get fndecl 0 39750 NULL nohasharray
161107 +enable_so_devpts_new_index_fndecl_39750 devpts_new_index fndecl 0 39750 &enable_so_ocfs2_xattr_block_get_fndecl_39750 nohasharray
161108 +enable_so_total_blocks_hfsplus_sb_info_39750 total_blocks hfsplus_sb_info 0 39750 &enable_so_devpts_new_index_fndecl_39750
161109 +enable_so_drm_gtf2_2j_fndecl_39751 drm_gtf2_2j fndecl 0 39751 NULL
161110 +enable_so_am_length_xfs_attr_multiop_39754 am_length xfs_attr_multiop 0 39754 NULL
161111 +enable_so_delta_disks_mddev_39759 delta_disks mddev 0 39759 NULL
161112 +enable_so_map_swap_page_fndecl_39768 map_swap_page fndecl 0 39768 NULL
161113 +enable_so_write_flush_fndecl_39776 write_flush fndecl 3 39776 NULL
161114 +enable_so_add_range_with_merge_fndecl_39778 add_range_with_merge fndecl 5-4 39778 NULL
161115 +enable_so___collapse_huge_page_isolate_fndecl_39784 __collapse_huge_page_isolate fndecl 2 39784 NULL
161116 +enable_so_dvb_play_fndecl_39789 dvb_play fndecl 3 39789 NULL
161117 +enable_so_buf_rte_log_le_39791 buf rte_log_le 0 39791 NULL
161118 +enable_so_digital_dep_link_up_fndecl_39793 digital_dep_link_up fndecl 5 39793 NULL
161119 +enable_so_den_max_snd_ratnum_39802 den_max snd_ratnum 0 39802 NULL
161120 +enable_so_root_ino_num_f2fs_sb_info_39805 root_ino_num f2fs_sb_info 0 39805 NULL nohasharray
161121 +enable_so_tpm_write_fndecl_39805 tpm_write fndecl 3 39805 &enable_so_root_ino_num_f2fs_sb_info_39805
161122 +enable_so_meta_dev_idx_disk_conf_39810 meta_dev_idx disk_conf 0 39810 NULL
161123 +enable_so_videobuf_dma_init_user_fndecl_39812 videobuf_dma_init_user fndecl 4-3 39812 NULL
161124 +enable_so_nft_trans_alloc_fndecl_39815 nft_trans_alloc fndecl 3 39815 NULL
161125 +enable_so_btrfs_search_slot_for_read_fndecl_39816 btrfs_search_slot_for_read fndecl 0 39816 NULL
161126 +enable_so_jffs2_link_node_ref_fndecl_39817 jffs2_link_node_ref fndecl 3-4 39817 NULL nohasharray
161127 +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
161128 +enable_so_pan_y_yuv_frame_info_39830 pan_y yuv_frame_info 0 39830 NULL
161129 +enable_so_dpcm_show_state_fndecl_39832 dpcm_show_state fndecl 0 39832 NULL nohasharray
161130 +enable_so_init_rx_ring_fndecl_39832 init_rx_ring fndecl 4 39832 &enable_so_dpcm_show_state_fndecl_39832
161131 +enable_so_sb_inopblock_xfs_sb_39837 sb_inopblock xfs_sb 0 39837 NULL nohasharray
161132 +enable_so_io_vardecl_arc_rimi_c_39837 io vardecl_arc-rimi.c 0 39837 &enable_so_sb_inopblock_xfs_sb_39837 nohasharray
161133 +enable_so_pci_scan_root_bus_fndecl_39837 pci_scan_root_bus fndecl 2 39837 &enable_so_io_vardecl_arc_rimi_c_39837
161134 +enable_so__offset_iwl_rx_cmd_buffer_39841 _offset iwl_rx_cmd_buffer 0 39841 NULL nohasharray
161135 +enable_so_maxattr_genl_family_39841 maxattr genl_family 0 39841 &enable_so__offset_iwl_rx_cmd_buffer_39841
161136 +enable_so_ref_div_factor_adf4350_platform_data_39844 ref_div_factor adf4350_platform_data 0 39844 NULL
161137 +enable_so_digi_write_inb_command_fndecl_39846 digi_write_inb_command fndecl 3 39846 NULL
161138 +enable_so_height_cx25821_channel_39847 height cx25821_channel 0 39847 NULL
161139 +enable_so_xres_panel_info_39849 xres panel_info 0 39849 NULL
161140 +enable_so_imtu_l2cap_chan_39857 imtu l2cap_chan 0 39857 NULL nohasharray
161141 +enable_so_ipath_restart_rc_fndecl_39857 ipath_restart_rc fndecl 2 39857 &enable_so_imtu_l2cap_chan_39857
161142 +enable_so_usb_stor_reset_common_fndecl_39866 usb_stor_reset_common fndecl 7 39866 NULL nohasharray
161143 +enable_so_carl9170_debugfs_write_fndecl_39866 carl9170_debugfs_write fndecl 3 39866 &enable_so_usb_stor_reset_common_fndecl_39866
161144 +enable_so_self_check_write_fndecl_39867 self_check_write fndecl 5 39867 NULL
161145 +enable_so___bdev_writeseg_fndecl_39876 __bdev_writeseg fndecl 2-4 39876 NULL
161146 +enable_so_do_shrink_slab_fndecl_39881 do_shrink_slab fndecl 4-3 39881 NULL
161147 +enable_so_resync_offset_mdp_superblock_1_39883 resync_offset mdp_superblock_1 0 39883 NULL
161148 +enable_so_xfs_iext_remove_fndecl_39886 xfs_iext_remove fndecl 3 39886 NULL
161149 +enable_so_osd_req_write_sg_fndecl_39887 osd_req_write_sg fndecl 5 39887 NULL nohasharray
161150 +enable_so_nvkm_mm_init_fndecl_39887 nvkm_mm_init fndecl 4-2-3 39887 &enable_so_osd_req_write_sg_fndecl_39887
161151 +enable_so_len_cache_request_39888 len cache_request 0 39888 NULL
161152 +enable_so_video_base_sis_video_info_39896 video_base sis_video_info 0 39896 NULL
161153 +enable_so_SyS_lgetxattr_fndecl_39898 SyS_lgetxattr fndecl 4 39898 NULL
161154 +enable_so_s_inodes_per_group_ext4_sb_info_39910 s_inodes_per_group ext4_sb_info 0 39910 NULL
161155 +enable_so_spi_map_buf_fndecl_39919 spi_map_buf fndecl 0-5 39919 NULL
161156 +enable_so_i_eoffset_bfs_inode_39921 i_eoffset bfs_inode 0 39921 NULL
161157 +enable_so_s_gdb_count_ext3_sb_info_39932 s_gdb_count ext3_sb_info 0 39932 NULL
161158 +enable_so_max_mp_regs_mwifiex_sdio_card_reg_39936 max_mp_regs mwifiex_sdio_card_reg 0 39936 NULL
161159 +enable_so_height_font_desc_39938 height font_desc 0 39938 NULL nohasharray
161160 +enable_so_btrfs_i_size_write_fndecl_39938 btrfs_i_size_write fndecl 2 39938 &enable_so_height_font_desc_39938
161161 +enable_so_row_shift_omap4_keypad_39944 row_shift omap4_keypad 0 39944 NULL
161162 +enable_so_find_ts_ops_39950 find ts_ops 0 39950 NULL
161163 +enable_so_inode2sd_v1_fndecl_39954 inode2sd_v1 fndecl 3 39954 NULL
161164 +enable_so_s_next_psn_ipath_qp_39960 s_next_psn ipath_qp 0 39960 NULL
161165 +enable_so___hfsplus_getxattr_fndecl_39975 __hfsplus_getxattr fndecl 0 39975 NULL nohasharray
161166 +enable_so_msg_length_pcnet32_rx_head_39975 msg_length pcnet32_rx_head 0 39975 &enable_so___hfsplus_getxattr_fndecl_39975 nohasharray
161167 +enable_so_cn_size_x509_parse_context_39975 cn_size x509_parse_context 0 39975 &enable_so_msg_length_pcnet32_rx_head_39975
161168 +enable_so_readbuf_size_tomoyo_io_buffer_39976 readbuf_size tomoyo_io_buffer 0 39976 NULL
161169 +enable_so_agp_3_5_isochronous_node_enable_fndecl_39978 agp_3_5_isochronous_node_enable fndecl 3 39978 NULL
161170 +enable_so_btrfs_pin_extent_fndecl_39983 btrfs_pin_extent fndecl 3-2 39983 NULL
161171 +enable_so_compat_do_msg_fill_fndecl_39987 compat_do_msg_fill fndecl 3 39987 NULL
161172 +enable_so_spi_tcnt_fsl_dspi_39994 spi_tcnt fsl_dspi 0 39994 NULL
161173 +enable_so_playback_bufsize_vardecl_nm256_c_39995 playback_bufsize vardecl_nm256.c 0 39995 NULL
161174 +enable_so_pitch_drm_radeon_texture_39996 pitch drm_radeon_texture 0 39996 NULL nohasharray
161175 +enable_so_size_fm10k_l2_accel_39996 size fm10k_l2_accel 0 39996 &enable_so_pitch_drm_radeon_texture_39996
161176 +enable_so_start_sram_reserve_39999 start sram_reserve 0 39999 NULL
161177 +enable_so_isr_decrypt_done_read_fndecl_40001 isr_decrypt_done_read fndecl 3 40001 NULL
161178 +enable_so_r820t_read_fndecl_40007 r820t_read fndecl 4 40007 NULL
161179 +enable_so_memblock_isolate_range_fndecl_40008 memblock_isolate_range fndecl 3-2 40008 NULL
161180 +enable_so_dch_empty_fifo_fndecl_40013 dch_empty_fifo fndecl 2 40013 NULL
161181 +enable_so_ieee80211_ie_split_fndecl_40017 ieee80211_ie_split fndecl 5-0 40017 NULL
161182 +enable_so_zlib_compress_pages_fndecl_40018 zlib_compress_pages fndecl 4 40018 NULL
161183 +enable_so_xfs_iformat_local_fndecl_40019 xfs_iformat_local fndecl 4 40019 NULL
161184 +enable_so_verify_alg_len_net_conf_40020 verify_alg_len net_conf 0 40020 NULL
161185 +enable_so_vmw_mob_calculate_pt_pages_fndecl_40022 vmw_mob_calculate_pt_pages fndecl 0-1 40022 NULL
161186 +enable_so_esp4_get_mtu_fndecl_40024 esp4_get_mtu fndecl 0-2 40024 NULL nohasharray
161187 +enable_so_tipc_bclink_get_mtu_fndecl_40024 tipc_bclink_get_mtu fndecl 0 40024 &enable_so_esp4_get_mtu_fndecl_40024
161188 +enable_so_emulator_write_phys_fndecl_40035 emulator_write_phys fndecl 2-4 40035 NULL
161189 +enable_so_lpfc_debugfs_nodelist_data_fndecl_40039 lpfc_debugfs_nodelist_data fndecl 0 40039 NULL
161190 +enable_so_pos_splice_desc_40040 pos splice_desc 0 40040 NULL
161191 +enable_so_memdiff_vardecl_tridentfb_c_40043 memdiff vardecl_tridentfb.c 0 40043 NULL nohasharray
161192 +enable_so_read_partial_fndecl_40043 read_partial fndecl 2 40043 &enable_so_memdiff_vardecl_tridentfb_c_40043
161193 +enable_so_add_nested_action_start_fndecl_40044 add_nested_action_start fndecl 0 40044 NULL
161194 +enable_so_SyS_listxattr_fndecl_40060 SyS_listxattr fndecl 3 40060 NULL
161195 +enable_so_smp_execute_task_fndecl_40062 smp_execute_task fndecl 3-5-0 40062 NULL nohasharray
161196 +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
161197 +enable_so_region_size_switch_ctx_40069 region_size switch_ctx 0 40069 NULL
161198 +enable_so_max_pq_dma_device_40070 max_pq dma_device 0 40070 NULL
161199 +enable_so_smk_write_access_fndecl_40074 smk_write_access fndecl 3 40074 NULL nohasharray
161200 +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
161201 +enable_so_tda18271_write_regs_fndecl_40082 tda18271_write_regs fndecl 3 40082 NULL
161202 +enable_so_num_parents_clk_core_40091 num_parents clk_core 0 40091 NULL
161203 +enable_so_wIELength_uwb_rc_cmd_set_ie_40094 wIELength uwb_rc_cmd_set_ie 0 40094 NULL nohasharray
161204 +enable_so_rx_buf_use_size_bnx2_40094 rx_buf_use_size bnx2 0 40094 &enable_so_wIELength_uwb_rc_cmd_set_ie_40094
161205 +enable_so_zap_page_range_fndecl_40097 zap_page_range fndecl 3-2 40097 NULL
161206 +enable_so_vma_needs_reservation_fndecl_40101 vma_needs_reservation fndecl 3 40101 NULL
161207 +enable_so_num_ibs_amdgpu_cs_parser_40104 num_ibs amdgpu_cs_parser 0 40104 NULL
161208 +enable_so_lh_blkno_gfs2_log_header_host_40105 lh_blkno gfs2_log_header_host 0 40105 NULL nohasharray
161209 +enable_so_evm_inode_setattr_fndecl_40105 evm_inode_setattr fndecl 0 40105 &enable_so_lh_blkno_gfs2_log_header_host_40105
161210 +enable_so_frag_rx_path_fndecl_40106 frag_rx_path fndecl 3 40106 NULL nohasharray
161211 +enable_so_u_dsize_user32_40106 u_dsize user32 0 40106 &enable_so_frag_rx_path_fndecl_40106 nohasharray
161212 +enable_so_allocation_floor_vardecl_dell_rbu_c_40106 allocation_floor vardecl_dell_rbu.c 0 40106 &enable_so_u_dsize_user32_40106
161213 +enable_so_r8a66597_urb_dequeue_fndecl_40110 r8a66597_urb_dequeue fndecl 3 40110 NULL
161214 +enable_so_alloc_chunk_fndecl_40116 alloc_chunk fndecl 1 40116 NULL nohasharray
161215 +enable_so_drv_data_size_rt2x00_ops_40116 drv_data_size rt2x00_ops 0 40116 &enable_so_alloc_chunk_fndecl_40116
161216 +enable_so_byte_count_vardecl_initramfs_c_40121 byte_count vardecl_initramfs.c 0 40121 NULL nohasharray
161217 +enable_so_sd_pkt_scan_fndecl_40121 sd_pkt_scan fndecl 3 40121 &enable_so_byte_count_vardecl_initramfs_c_40121 nohasharray
161218 +enable_so_sctp_setsockopt_default_send_param_fndecl_40121 sctp_setsockopt_default_send_param fndecl 3 40121 &enable_so_sd_pkt_scan_fndecl_40121
161219 +enable_so_fastListenInterval_ConfigRid_40133 fastListenInterval ConfigRid 0 40133 NULL
161220 +enable_so_smk_write_doi_fndecl_40134 smk_write_doi fndecl 3 40134 NULL
161221 +enable_so_mspi_apply_qe_mode_quirks_fndecl_40137 mspi_apply_qe_mode_quirks fndecl 0-3 40137 NULL nohasharray
161222 +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
161223 +enable_so_port_fops_read_fndecl_40137 port_fops_read fndecl 3 40137 &enable_so_num_jumbo_rxd_netxen_adapter_40137
161224 +enable_so_off_fuse_notify_inval_inode_out_40142 off fuse_notify_inval_inode_out 0 40142 NULL
161225 +enable_so_isr_wakeups_read_fndecl_40148 isr_wakeups_read fndecl 3 40148 NULL
161226 +enable_so_ftdi_elan_edset_single_fndecl_40157 ftdi_elan_edset_single fndecl 0 40157 NULL
161227 +enable_so_xfs_ialloc_get_rec_fndecl_40163 xfs_ialloc_get_rec fndecl 2 40163 NULL
161228 +enable_so_at24_bin_read_fndecl_40165 at24_bin_read fndecl 6 40165 NULL nohasharray
161229 +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
161230 +enable_so_pge_ctl_drm_psb_private_40167 pge_ctl drm_psb_private 0 40167 NULL
161231 +enable_so_dev_stripes_btrfs_raid_attr_40170 dev_stripes btrfs_raid_attr 0 40170 NULL
161232 +enable_so_bluecard_write_fndecl_40179 bluecard_write fndecl 0-4 40179 NULL
161233 +enable_so_status_boom_rx_desc_40185 status boom_rx_desc 0 40185 NULL
161234 +enable_so_command_setlights_fndecl_40187 command_setlights fndecl 0 40187 NULL
161235 +enable_so_reshape_progress_r5conf_40192 reshape_progress r5conf 0 40192 NULL
161236 +enable_so_peb_size_ubi_device_40195 peb_size ubi_device 0 40195 NULL
161237 +enable_so_dma_contiguous_reserve_area_fndecl_40196 dma_contiguous_reserve_area fndecl 1-2-3 40196 NULL nohasharray
161238 +enable_so___jfs_setxattr_fndecl_40196 __jfs_setxattr fndecl 5 40196 &enable_so_dma_contiguous_reserve_area_fndecl_40196
161239 +enable_so_vga_video_num_lines_vardecl_vgacon_c_40199 vga_video_num_lines vardecl_vgacon.c 0 40199 NULL
161240 +enable_so_ath6kl_bgscan_int_write_fndecl_40201 ath6kl_bgscan_int_write fndecl 3 40201 NULL
161241 +enable_so_pvr2_ctrl_get_min_fndecl_40204 pvr2_ctrl_get_min fndecl 0 40204 NULL
161242 +enable_so_dvb_dvr_ioctl_fndecl_40205 dvb_dvr_ioctl fndecl 2 40205 NULL
161243 +enable_so_num_amgms_mlx4_caps_40207 num_amgms mlx4_caps 0 40207 NULL
161244 +enable_so_ipwireless_tty_received_fndecl_40209 ipwireless_tty_received fndecl 3 40209 NULL
161245 +enable_so_kbuf_alloc_2_sgl_fndecl_40216 kbuf_alloc_2_sgl fndecl 1 40216 NULL
161246 +enable_so_page_shift_nvkm_mem_40218 page_shift nvkm_mem 0 40218 NULL nohasharray
161247 +enable_so_ipw_queue_tx_init_fndecl_40218 ipw_queue_tx_init fndecl 3 40218 &enable_so_page_shift_nvkm_mem_40218
161248 +enable_so_len_p80211ioctl_req_40220 len p80211ioctl_req 0 40220 NULL
161249 +enable_so_bochs_bo_create_fndecl_40223 bochs_bo_create fndecl 2 40223 NULL
161250 +enable_so_il4965_rs_sta_dbgfs_stats_table_read_fndecl_40229 il4965_rs_sta_dbgfs_stats_table_read fndecl 3 40229 NULL
161251 +enable_so_do_jffs2_getxattr_fndecl_40233 do_jffs2_getxattr fndecl 0 40233 NULL
161252 +enable_so_find_gmch_fndecl_40235 find_gmch fndecl 1 40235 NULL
161253 +enable_so_ndr_size_nd_region_40243 ndr_size nd_region 0 40243 NULL
161254 +enable_so_lola_init_stream_fndecl_40245 lola_init_stream fndecl 3 40245 NULL
161255 +enable_so_default_value_mfc_control_40246 default_value mfc_control 0 40246 NULL
161256 +enable_so_dec_src_buf_size_s5p_mfc_ctx_40247 dec_src_buf_size s5p_mfc_ctx 0 40247 NULL
161257 +enable_so_mmap_file_operations_40250 mmap file_operations 0 40250 NULL nohasharray
161258 +enable_so_layoutupdate_len_nfs4_layoutcommit_args_40250 layoutupdate_len nfs4_layoutcommit_args 0 40250 &enable_so_mmap_file_operations_40250
161259 +enable_so_max_sectors_queue_limits_40252 max_sectors queue_limits 0 40252 NULL nohasharray
161260 +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
161261 +enable_so__iwl_dbgfs_netdetect_write_fndecl_40255 _iwl_dbgfs_netdetect_write fndecl 3 40255 NULL
161262 +enable_so_ucNumOfPowerModeEntries__ATOM_POWERPLAY_INFO_40261 ucNumOfPowerModeEntries _ATOM_POWERPLAY_INFO 0 40261 NULL
161263 +enable_so_stop_discovery_fndecl_40262 stop_discovery fndecl 4 40262 NULL
161264 +enable_so_ino_jffs2_inode_cache_40264 ino jffs2_inode_cache 0 40264 NULL
161265 +enable_so_fill_pg_buf_fndecl_40265 fill_pg_buf fndecl 0 40265 NULL
161266 +enable_so_rs_move_mimo3_to_other_fndecl_40268 rs_move_mimo3_to_other fndecl 5 40268 NULL
161267 +enable_so_es_len_extent_status_40276 es_len extent_status 0 40276 NULL
161268 +enable_so_memcg_nr_cache_ids_vardecl_40280 memcg_nr_cache_ids vardecl 0 40280 NULL
161269 +enable_so_mask___kfifo_40288 mask __kfifo 0 40288 NULL
161270 +enable_so_isku_sysfs_read_keys_media_fndecl_40295 isku_sysfs_read_keys_media fndecl 6 40295 NULL
161271 +enable_so_update_end_of_memory_vars_fndecl_40298 update_end_of_memory_vars fndecl 2-1 40298 NULL
161272 +enable_so_rx_filter_beacon_filter_read_fndecl_40300 rx_filter_beacon_filter_read fndecl 3 40300 NULL
161273 +enable_so_osd_req_add_get_attr_list_fndecl_40301 osd_req_add_get_attr_list fndecl 3 40301 NULL nohasharray
161274 +enable_so_num_engines_dmm_40301 num_engines dmm 0 40301 &enable_so_osd_req_add_get_attr_list_fndecl_40301
161275 +enable_so_cyttsp_spi_xfer_fndecl_40307 cyttsp_spi_xfer fndecl 6 40307 NULL
161276 +enable_so_gfs2_free_meta_fndecl_40312 gfs2_free_meta fndecl 2 40312 NULL
161277 +enable_so_ieee80211_if_read_rssi_threshold_fndecl_40319 ieee80211_if_read_rssi_threshold fndecl 3 40319 NULL
161278 +enable_so_max_scaled_width_bttv_crop_40325 max_scaled_width bttv_crop 0 40325 NULL
161279 +enable_so_uio_read_fndecl_40327 uio_read fndecl 3 40327 NULL
161280 +enable_so_cur_pos_tegra_spi_data_40338 cur_pos tegra_spi_data 0 40338 NULL
161281 +enable_so_dm_rh_get_region_key_fndecl_40342 dm_rh_get_region_key fndecl 0 40342 NULL
161282 +enable_so___ext4_ext_dirty_fndecl_40343 __ext4_ext_dirty fndecl 0 40343 NULL nohasharray
161283 +enable_so_minimum_acpi_resource_memory32_40343 minimum acpi_resource_memory32 0 40343 &enable_so___ext4_ext_dirty_fndecl_40343
161284 +enable_so_free_ubifs_lpt_lprops_40346 free ubifs_lpt_lprops 0 40346 NULL
161285 +enable_so_default_llseek_fndecl_40353 default_llseek fndecl 2 40353 NULL nohasharray
161286 +enable_so_srpt_alloc_ioctx_ring_fndecl_40353 srpt_alloc_ioctx_ring fndecl 3-4-2 40353 &enable_so_default_llseek_fndecl_40353
161287 +enable_so_cr2_kvm_vcpu_arch_40355 cr2 kvm_vcpu_arch 0 40355 NULL nohasharray
161288 +enable_so_pgbase_pnfs_device_40355 pgbase pnfs_device 0 40355 &enable_so_cr2_kvm_vcpu_arch_40355
161289 +enable_so_cblock_dm_cache_migration_40361 cblock dm_cache_migration 0 40361 NULL
161290 +enable_so_cfpkt_setlen_fndecl_40364 cfpkt_setlen fndecl 2 40364 NULL nohasharray
161291 +enable_so_max_wrs_rds_ib_device_40364 max_wrs rds_ib_device 0 40364 &enable_so_cfpkt_setlen_fndecl_40364
161292 +enable_so_isku_sysfs_read_keys_macro_fndecl_40371 isku_sysfs_read_keys_macro fndecl 6 40371 NULL
161293 +enable_so_SYSC_mincore_fndecl_40372 SYSC_mincore fndecl 2-1 40372 NULL
161294 +enable_so_pages_per_wr_bio_scrub_wr_ctx_40374 pages_per_wr_bio scrub_wr_ctx 0 40374 NULL
161295 +enable_so_align_kmem_cache_40377 align kmem_cache 0 40377 NULL
161296 +enable_so___vmalloc_node_fndecl_40382 __vmalloc_node fndecl 1 40382 NULL
161297 +enable_so_ilm_len_mt76_fw_header_40389 ilm_len mt76_fw_header 0 40389 NULL
161298 +enable_so_px_raw_event_fndecl_40392 px_raw_event fndecl 4 40392 NULL
161299 +enable_so_file_secno_bplus_leaf_node_40394 file_secno bplus_leaf_node 0 40394 NULL nohasharray
161300 +enable_so_sb_root_hpfs_sb_info_40394 sb_root hpfs_sb_info 0 40394 &enable_so_file_secno_bplus_leaf_node_40394
161301 +enable_so_snd_ak4113_external_rate_fndecl_40404 snd_ak4113_external_rate fndecl 0 40404 NULL nohasharray
161302 +enable_so_max_scaled_height_bttv_crop_40404 max_scaled_height bttv_crop 0 40404 &enable_so_snd_ak4113_external_rate_fndecl_40404
161303 +enable_so_line_no_pch_uart_driver_data_40410 line_no pch_uart_driver_data 0 40410 NULL
161304 +enable_so_level3cnt_capi_register_params_40411 level3cnt capi_register_params 0 40411 NULL
161305 +enable_so_bulk_out_epnum_usb_cardstate_40412 bulk_out_epnum usb_cardstate 0 40412 NULL nohasharray
161306 +enable_so_joydev_ioctl_common_fndecl_40412 joydev_ioctl_common fndecl 2 40412 &enable_so_bulk_out_epnum_usb_cardstate_40412
161307 +enable_so_vm_end_vm_area_struct_40413 vm_end vm_area_struct 0 40413 NULL nohasharray
161308 +enable_so_vma_commit_reservation_fndecl_40413 vma_commit_reservation fndecl 3 40413 &enable_so_vm_end_vm_area_struct_40413
161309 +enable_so___ioremap_caller_fndecl_40419 __ioremap_caller fndecl 2-1 40419 NULL nohasharray
161310 +enable_so_applesmc_create_nodes_fndecl_40419 applesmc_create_nodes fndecl 2 40419 &enable_so___ioremap_caller_fndecl_40419
161311 +enable_so_rx_streaming_always_read_fndecl_40426 rx_streaming_always_read fndecl 3 40426 NULL
161312 +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
161313 +enable_so_tnode_alloc_fndecl_40428 tnode_alloc fndecl 1 40428 NULL
161314 +enable_so_readisac_IsdnCardState_40429 readisac IsdnCardState 0 40429 NULL
161315 +enable_so_skb_partial_csum_set_fndecl_40436 skb_partial_csum_set fndecl 2 40436 NULL
161316 +enable_so___i915_error_advance_fndecl_40440 __i915_error_advance fndecl 2 40440 NULL
161317 +enable_so_begin_switchdev_vlan_dump_40443 begin switchdev_vlan_dump 0 40443 NULL
161318 +enable_so_iscsi_alloc_session_fndecl_40445 iscsi_alloc_session fndecl 3 40445 NULL
161319 +enable_so_qd2index_fndecl_40449 qd2index fndecl 0 40449 NULL
161320 +enable_so_gnttab_setup_auto_xlat_frames_fndecl_40455 gnttab_setup_auto_xlat_frames fndecl 1 40455 NULL
161321 +enable_so_curpacksize_snd_usb_endpoint_40462 curpacksize snd_usb_endpoint 0 40462 NULL nohasharray
161322 +enable_so_submit_create_fndecl_40462 submit_create fndecl 3 40462 &enable_so_curpacksize_snd_usb_endpoint_40462
161323 +enable_so_nr_i2c_adapter_40466 nr i2c_adapter 0 40466 NULL
161324 +enable_so_memblock_add_node_fndecl_40484 memblock_add_node fndecl 1-2 40484 NULL
161325 +enable_so_g2d_userptr_get_dma_addr_fndecl_40487 g2d_userptr_get_dma_addr fndecl 2-3 40487 NULL
161326 +enable_so_eh_depth_ext4_extent_header_40488 eh_depth ext4_extent_header 0 40488 NULL
161327 +enable_so_s_cgoffset_ufs_sb_private_info_40490 s_cgoffset ufs_sb_private_info 0 40490 NULL
161328 +enable_so_tx_max_cdc_ncm_ctx_40493 tx_max cdc_ncm_ctx 0 40493 NULL nohasharray
161329 +enable_so_length_mtd_oob_buf32_40493 length mtd_oob_buf32 0 40493 &enable_so_tx_max_cdc_ncm_ctx_40493 nohasharray
161330 +enable_so_num_mtts_mlx4_caps_40493 num_mtts mlx4_caps 0 40493 &enable_so_length_mtd_oob_buf32_40493
161331 +enable_so_len_tx_buf_40498 len tx_buf 0 40498 NULL
161332 +enable_so_header_length_datalink_proto_40501 header_length datalink_proto 0 40501 NULL
161333 +enable_so_size_iscsi_segment_40510 size iscsi_segment 0 40510 NULL nohasharray
161334 +enable_so_start_cnic_id_tbl_40510 start cnic_id_tbl 0 40510 &enable_so_size_iscsi_segment_40510
161335 +enable_so_max_soc_bytes_ext_40512 max soc_bytes_ext 0 40512 NULL
161336 +enable_so_dn_mss_from_pmtu_fndecl_40520 dn_mss_from_pmtu fndecl 0-2 40520 NULL
161337 +enable_so_max_pds_iwch_rnic_attributes_40526 max_pds iwch_rnic_attributes 0 40526 NULL
161338 +enable_so_num_substreams_snd_m3_40528 num_substreams snd_m3 0 40528 NULL
161339 +enable_so_bnx2x_change_num_queues_fndecl_40532 bnx2x_change_num_queues fndecl 2 40532 NULL
161340 +enable_so_smb2_lockv_fndecl_40533 smb2_lockv fndecl 6 40533 NULL nohasharray
161341 +enable_so_w_size_deflate_state_40533 w_size deflate_state 0 40533 &enable_so_smb2_lockv_fndecl_40533 nohasharray
161342 +enable_so_drm_buffer_copy_from_user_fndecl_40533 drm_buffer_copy_from_user fndecl 3 40533 &enable_so_w_size_deflate_state_40533
161343 +enable_so_is_acpi_reserved_fndecl_40540 is_acpi_reserved fndecl 2-1 40540 NULL
161344 +enable_so_sky2_get_rx_data_size_fndecl_40544 sky2_get_rx_data_size fndecl 0 40544 NULL nohasharray
161345 +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
161346 +enable_so_base_start_aac_dev_40550 base_start aac_dev 0 40550 NULL nohasharray
161347 +enable_so_num_ios_vardecl_40550 num_ios vardecl 0 40550 &enable_so_base_start_aac_dev_40550
161348 +enable_so_read_partial_message_section_fndecl_40551 read_partial_message_section fndecl 3 40551 NULL
161349 +enable_so_nf_sockopt_fndecl_40555 nf_sockopt fndecl 0 40555 NULL
161350 +enable_so_alloc_ebda_hpc_fndecl_40557 alloc_ebda_hpc fndecl 1-2 40557 NULL
161351 +enable_so_security_context_to_sid_fndecl_40560 security_context_to_sid fndecl 2 40560 NULL
161352 +enable_so_plcp_siso_iwl_rate_info_40562 plcp_siso iwl_rate_info 0 40562 NULL
161353 +enable_so_maxpacket_isp1362_ep_40564 maxpacket isp1362_ep 0 40564 NULL
161354 +enable_so_isdn_read_fndecl_40566 isdn_read fndecl 3 40566 NULL
161355 +enable_so_ptrace_readdata_fndecl_40567 ptrace_readdata fndecl 4-2 40567 NULL
161356 +enable_so_ucNumStates__ATOM_PPLIB_POWERPLAYTABLE_40568 ucNumStates _ATOM_PPLIB_POWERPLAYTABLE 0 40568 NULL
161357 +enable_so_caif_stream_sendmsg_fndecl_40573 caif_stream_sendmsg fndecl 3 40573 NULL
161358 +enable_so_qp_alloc_queue_fndecl_40575 qp_alloc_queue fndecl 1 40575 NULL nohasharray
161359 +enable_so_xlog_recovery_process_trans_fndecl_40575 xlog_recovery_process_trans fndecl 4 40575 &enable_so_qp_alloc_queue_fndecl_40575
161360 +enable_so_dm_bufio_read_fndecl_40577 dm_bufio_read fndecl 2 40577 NULL
161361 +enable_so_ioread8_fndecl_40594 ioread8 fndecl 0 40594 NULL
161362 +enable_so_dram_size_sst_res_info_40602 dram_size sst_res_info 0 40602 NULL nohasharray
161363 +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
161364 +enable_so_value_len_ext4_xattr_info_40604 value_len ext4_xattr_info 0 40604 NULL
161365 +enable_so_rf_size_rt2x00_ops_40605 rf_size rt2x00_ops 0 40605 NULL
161366 +enable_so_vyres_aty128_crtc_40610 vyres aty128_crtc 0 40610 NULL
161367 +enable_so_android_set_cntry_fndecl_40615 android_set_cntry fndecl 0 40615 NULL
161368 +enable_so_read_file_slot_fndecl_40620 read_file_slot fndecl 3 40620 NULL
161369 +enable_so_mailbox_start_sst_info_40624 mailbox_start sst_info 0 40624 NULL
161370 +enable_so___kfifo_dma_in_prepare_fndecl_40626 __kfifo_dma_in_prepare fndecl 4 40626 NULL
161371 +enable_so_libcfs_ioctl_popdata_fndecl_40628 libcfs_ioctl_popdata fndecl 3 40628 NULL
161372 +enable_so_rate_n_flags_il_rx_phy_res_40629 rate_n_flags il_rx_phy_res 0 40629 NULL
161373 +enable_so_pcpu_get_vm_areas_fndecl_40630 pcpu_get_vm_areas fndecl 4-3 40630 NULL
161374 +enable_so_dev_set_alias_fndecl_40631 dev_set_alias fndecl 3 40631 NULL
161375 +enable_so_cf_uniqueid_cifs_fattr_40632 cf_uniqueid cifs_fattr 0 40632 NULL
161376 +enable_so_altera_swap_dr_fndecl_40633 altera_swap_dr fndecl 2 40633 NULL
161377 +enable_so_map_dirent_fndecl_40635 map_dirent fndecl 2 40635 NULL nohasharray
161378 +enable_so_cfg_fcp_io_channel_lpfc_hba_40635 cfg_fcp_io_channel lpfc_hba 0 40635 &enable_so_map_dirent_fndecl_40635 nohasharray
161379 +enable_so_sock_setsockopt_fndecl_40635 sock_setsockopt fndecl 5 40635 &enable_so_cfg_fcp_io_channel_lpfc_hba_40635
161380 +enable_so_rotate_buf_a_little_fndecl_40654 rotate_buf_a_little fndecl 2 40654 NULL
161381 +enable_so_rq_rcvsize_rpc_rqst_40660 rq_rcvsize rpc_rqst 0 40660 NULL
161382 +enable_so_number_xt_af_40661 number xt_af 0 40661 NULL
161383 +enable_so_legacy_rate_info_40663 legacy rate_info 0 40663 NULL
161384 +enable_so_ocrdma_dbgfs_ops_write_fndecl_40664 ocrdma_dbgfs_ops_write fndecl 3 40664 NULL
161385 +enable_so___ext_tree_remove_fndecl_40666 __ext_tree_remove fndecl 2-3 40666 NULL
161386 +enable_so_aac_nark_ioremap_fndecl_40672 aac_nark_ioremap fndecl 2 40672 NULL nohasharray
161387 +enable_so_kmalloc_node_fndecl_40672 kmalloc_node fndecl 1 40672 &enable_so_aac_nark_ioremap_fndecl_40672
161388 +enable_so_rx_filter_ibss_filter_read_fndecl_40676 rx_filter_ibss_filter_read fndecl 3 40676 NULL
161389 +enable_so_odev_update_fndecl_40682 odev_update fndecl 2 40682 NULL nohasharray
161390 +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
161391 +enable_so_ahd_probe_stack_size_fndecl_40683 ahd_probe_stack_size fndecl 0 40683 NULL
161392 +enable_so_ubi_resize_volume_fndecl_40687 ubi_resize_volume fndecl 2 40687 NULL nohasharray
161393 +enable_so_xfs_get_blocks_direct_fndecl_40687 xfs_get_blocks_direct fndecl 2 40687 &enable_so_ubi_resize_volume_fndecl_40687
161394 +enable_so_tx_frag_need_fragmentation_read_fndecl_40698 tx_frag_need_fragmentation_read fndecl 3 40698 NULL
161395 +enable_so_height_timblogiw_tvnorm_40699 height timblogiw_tvnorm 0 40699 NULL
161396 +enable_so_aa_simple_write_to_buffer_fndecl_40704 aa_simple_write_to_buffer fndecl 3-4 40704 NULL
161397 +enable_so_max_znode_sz_ubifs_info_40705 max_znode_sz ubifs_info 0 40705 NULL
161398 +enable_so_ctrl_out_pipe_hfcsusb_40706 ctrl_out_pipe hfcsusb 0 40706 NULL
161399 +enable_so_nTxBlock_vardecl_jfs_txnmgr_c_40708 nTxBlock vardecl_jfs_txnmgr.c 0 40708 NULL
161400 +enable_so_lfb_linelength_screen_info_40728 lfb_linelength screen_info 0 40728 NULL
161401 +enable_so_cryptlen_aead_request_40734 cryptlen aead_request 0 40734 NULL nohasharray
161402 +enable_so_page_order_ring_buffer_40734 page_order ring_buffer 0 40734 &enable_so_cryptlen_aead_request_40734
161403 +enable_so_NumberOfLogBlock_ms_lib_ctrl_40736 NumberOfLogBlock ms_lib_ctrl 0 40736 NULL
161404 +enable_so_do_splice_to_fndecl_40737 do_splice_to fndecl 4-0 40737 NULL
161405 +enable_so_sisfb_getheapstart_fndecl_40740 sisfb_getheapstart fndecl 0 40740 NULL nohasharray
161406 +enable_so_intel_gtt_mappable_entries_fndecl_40740 intel_gtt_mappable_entries fndecl 0 40740 &enable_so_sisfb_getheapstart_fndecl_40740
161407 +enable_so_write_pool_fndecl_40741 write_pool fndecl 3 40741 NULL
161408 +enable_so_IELength_wlan_bssid_ex_40743 IELength wlan_bssid_ex 0 40743 NULL
161409 +enable_so_smsc47b397_find_fndecl_40748 smsc47b397_find fndecl 0 40748 NULL
161410 +enable_so_ctrl_macb_dma_desc_40750 ctrl macb_dma_desc 0 40750 NULL
161411 +enable_so_sys_gethostname_fndecl_40753 sys_gethostname fndecl 2 40753 NULL
161412 +enable_so_read_reg_isac_hw_40755 read_reg isac_hw 0 40755 NULL
161413 +enable_so_snd_usb_endpoint_set_params_fndecl_40756 snd_usb_endpoint_set_params fndecl 3-4 40756 NULL
161414 +enable_so_vfs_iter_write_fndecl_40761 vfs_iter_write fndecl 0 40761 NULL
161415 +enable_so_total_xfer_length_ScsiReqBlk_40768 total_xfer_length ScsiReqBlk 0 40768 NULL
161416 +enable_so_btrfs_chunk_num_stripes_fndecl_40772 btrfs_chunk_num_stripes fndecl 0 40772 NULL
161417 +enable_so_snd_hdac_get_connections_fndecl_40773 snd_hdac_get_connections fndecl 0 40773 NULL
161418 +enable_so_pdu_write_fndecl_40774 pdu_write fndecl 3 40774 NULL
161419 +enable_so_xprt_tcp_slot_table_entries_vardecl_xprtsock_c_40779 xprt_tcp_slot_table_entries vardecl_xprtsock.c 0 40779 NULL
161420 +enable_so_key_conf_keylen_read_fndecl_40781 key_conf_keylen_read fndecl 3 40781 NULL
161421 +enable_so_s_bpfshift_ufs_sb_private_info_40782 s_bpfshift ufs_sb_private_info 0 40782 NULL
161422 +enable_so_increase_reservation_fndecl_40785 increase_reservation fndecl 1 40785 NULL
161423 +enable_so_sys_fsetxattr_fndecl_40795 sys_fsetxattr fndecl 4 40795 NULL
161424 +enable_so_private_data_len_rdma_conn_param_40796 private_data_len rdma_conn_param 0 40796 NULL
161425 +enable_so_check_frame_fndecl_40798 check_frame fndecl 0 40798 NULL nohasharray
161426 +enable_so_ext4_multi_mount_protect_fndecl_40798 ext4_multi_mount_protect fndecl 2 40798 &enable_so_check_frame_fndecl_40798
161427 +enable_so_multi_write_idx_wmi_40801 multi_write_idx wmi 0 40801 NULL nohasharray
161428 +enable_so_cmd_len_request_40801 cmd_len request 0 40801 &enable_so_multi_write_idx_wmi_40801 nohasharray
161429 +enable_so_num_channels_hpb_dmae_pdata_40801 num_channels hpb_dmae_pdata 0 40801 &enable_so_cmd_len_request_40801
161430 +enable_so_sz_m1_mlx5_wq_ll_40805 sz_m1 mlx5_wq_ll 0 40805 NULL
161431 +enable_so_ceph_osdc_readpages_fndecl_40814 ceph_osdc_readpages fndecl 0 40814 NULL nohasharray
161432 +enable_so_sysctl_wmem_max_vardecl_40814 sysctl_wmem_max vardecl 0 40814 &enable_so_ceph_osdc_readpages_fndecl_40814
161433 +enable_so_dma_pad_mask_request_queue_40816 dma_pad_mask request_queue 0 40816 NULL
161434 +enable_so_fuse_conn_waiting_read_fndecl_40817 fuse_conn_waiting_read fndecl 3 40817 NULL
161435 +enable_so_INFTL_findfreeblock_fndecl_40819 INFTL_findfreeblock fndecl 0 40819 NULL
161436 +enable_so_pitch_intel_rotation_info_40826 pitch intel_rotation_info 0 40826 NULL
161437 +enable_so_l2_fhdr_ip_xsum_l2_fhdr_40843 l2_fhdr_ip_xsum l2_fhdr 0 40843 NULL
161438 +enable_so_v9fs_file_fsync_dotl_fndecl_40845 v9fs_file_fsync_dotl fndecl 2-3 40845 NULL
161439 +enable_so_newblocks_xfs_growfs_data_40847 newblocks xfs_growfs_data 0 40847 NULL
161440 +enable_so_nfs_file_fsync_fndecl_40851 nfs_file_fsync fndecl 2-3 40851 NULL
161441 +enable_so___of_parse_phandle_with_args_fndecl_40860 __of_parse_phandle_with_args fndecl 0 40860 NULL
161442 +enable_so_extended_capabilities_len_wiphy_40861 extended_capabilities_len wiphy 0 40861 NULL
161443 +enable_so_resize_zone_fndecl_40862 resize_zone fndecl 2-3 40862 NULL
161444 +enable_so_ext2_splice_branch_fndecl_40864 ext2_splice_branch fndecl 5 40864 NULL
161445 +enable_so_iraw_loop_fndecl_40865 iraw_loop fndecl 0-1 40865 NULL
161446 +enable_so_nvram_llseek_fndecl_40869 nvram_llseek fndecl 2 40869 NULL
161447 +enable_so_reply_queue_count_MPT3SAS_ADAPTER_40870 reply_queue_count MPT3SAS_ADAPTER 0 40870 NULL
161448 +enable_so_sector_count_partition_40874 sector_count partition 0 40874 NULL
161449 +enable_so_scsi_dispatch_cmd_entry_fndecl_40875 scsi_dispatch_cmd_entry fndecl 3 40875 NULL
161450 +enable_so_config_len_mic_device_desc_40877 config_len mic_device_desc 0 40877 NULL
161451 +enable_so_min_agbno_xfs_alloc_arg_40884 min_agbno xfs_alloc_arg 0 40884 NULL nohasharray
161452 +enable_so_osst_set_options_fndecl_40884 osst_set_options fndecl 2 40884 &enable_so_min_agbno_xfs_alloc_arg_40884 nohasharray
161453 +enable_so_nvkm_engctx_create__fndecl_40884 nvkm_engctx_create_ fndecl 6-5-8 40884 &enable_so_osst_set_options_fndecl_40884
161454 +enable_so_tcf_csum_ipv4_tcp_fndecl_40889 tcf_csum_ipv4_tcp fndecl 3 40889 NULL
161455 +enable_so_size_drm_i915_gem_mmap_40890 size drm_i915_gem_mmap 0 40890 NULL nohasharray
161456 +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
161457 +enable_so_pci_add_dynid_fndecl_40893 pci_add_dynid fndecl 3-8 40893 NULL
161458 +enable_so_ath6kl_fwlog_block_read_fndecl_40895 ath6kl_fwlog_block_read fndecl 3 40895 NULL
161459 +enable_so_uart_write_fndecl_40916 uart_write fndecl 3 40916 NULL
161460 +enable_so_sctp_setsockopt_bindx_fndecl_40925 sctp_setsockopt_bindx fndecl 3 40925 NULL
161461 +enable_so_ea_put_fndecl_40928 ea_put fndecl 4 40928 NULL nohasharray
161462 +enable_so_platform_mmio_vardecl_platform_pci_c_40928 platform_mmio vardecl_platform-pci.c 0 40928 &enable_so_ea_put_fndecl_40928
161463 +enable_so_opcount_xfs_fsop_attrmulti_handlereq_40929 opcount xfs_fsop_attrmulti_handlereq 0 40929 NULL
161464 +enable_so_max_rate_idx_il_lq_sta_40932 max_rate_idx il_lq_sta 0 40932 NULL
161465 +enable_so_scsiback_do_resp_with_sense_fndecl_40934 scsiback_do_resp_with_sense fndecl 3 40934 NULL
161466 +enable_so_fuse_send_write_fndecl_40936 fuse_send_write fndecl 0-4 40936 NULL
161467 +enable_so_ecryptfs_filldir_fndecl_40939 ecryptfs_filldir fndecl 3 40939 NULL
161468 +enable_so_s_log_groups_per_flex_ext4_sb_info_40945 s_log_groups_per_flex ext4_sb_info 0 40945 NULL
161469 +enable_so_size_v4l2_ext_control_40952 size v4l2_ext_control 0 40952 NULL
161470 +enable_so_ns_segnum_the_nilfs_40959 ns_segnum the_nilfs 0 40959 NULL
161471 +enable_so_ext4_fill_fiemap_extents_fndecl_40966 ext4_fill_fiemap_extents fndecl 2-3 40966 NULL nohasharray
161472 +enable_so_isr_low_rssi_read_fndecl_40966 isr_low_rssi_read fndecl 3 40966 &enable_so_ext4_fill_fiemap_extents_fndecl_40966
161473 +enable_so_bottom_qxl_urect_40968 bottom qxl_urect 0 40968 NULL
161474 +enable_so_regmap_reg_ranges_read_file_fndecl_40973 regmap_reg_ranges_read_file fndecl 3 40973 NULL
161475 +enable_so_a_text_exec_40977 a_text exec 0 40977 NULL
161476 +enable_so_compat_sys_recvfrom_fndecl_40978 compat_sys_recvfrom fndecl 3 40978 NULL
161477 +enable_so_read_iter_file_operations_40980 read_iter file_operations 0 40980 NULL
161478 +enable_so_s_psn_qib_qp_40983 s_psn qib_qp 0 40983 NULL
161479 +enable_so_blk_mq_init_tags_fndecl_40986 blk_mq_init_tags fndecl 2-1 40986 NULL
161480 +enable_so_ecryptfs_send_miscdev_fndecl_40995 ecryptfs_send_miscdev fndecl 2 40995 NULL
161481 +enable_so_gfn_to_page_fndecl_41001 gfn_to_page fndecl 2 41001 NULL nohasharray
161482 +enable_so_start_fb_cmap_41001 start fb_cmap 0 41001 &enable_so_gfn_to_page_fndecl_41001
161483 +enable_so_selfballoon_min_usable_mb_vardecl_xen_selfballoon_c_41004 selfballoon_min_usable_mb vardecl_xen-selfballoon.c 0 41004 NULL
161484 +enable_so_nfsctl_transaction_write_fndecl_41011 nfsctl_transaction_write fndecl 3 41011 NULL
161485 +enable_so_ath6kl_target_config_wlan_params_fndecl_41017 ath6kl_target_config_wlan_params fndecl 2 41017 NULL nohasharray
161486 +enable_so_proc_projid_map_write_fndecl_41017 proc_projid_map_write fndecl 3 41017 &enable_so_ath6kl_target_config_wlan_params_fndecl_41017
161487 +enable_so_rfkill_fop_write_fndecl_41019 rfkill_fop_write fndecl 3 41019 NULL
161488 +enable_so_dma_handle_videobuf_dma_contig_memory_41025 dma_handle videobuf_dma_contig_memory 0 41025 NULL
161489 +enable_so_altera_set_dr_pre_fndecl_41037 altera_set_dr_pre fndecl 2 41037 NULL
161490 +enable_so_fofs_extent_info_41041 fofs extent_info 0 41041 NULL
161491 +enable_so_d0_vring_rx_mac_41042 d0 vring_rx_mac 0 41042 NULL
161492 +enable_so_ieee802154_hdr_pull_fndecl_41051 ieee802154_hdr_pull fndecl 0 41051 NULL
161493 +enable_so_resp_len_bnx2fc_mp_req_41057 resp_len bnx2fc_mp_req 0 41057 NULL
161494 +enable_so_lprocfs_write_u64_helper_fndecl_41059 lprocfs_write_u64_helper fndecl 2 41059 NULL
161495 +enable_so_bits_per_word_spi_transfer_41063 bits_per_word spi_transfer 0 41063 NULL
161496 +enable_so_vdc_mem_size_vml_par_41069 vdc_mem_size vml_par 0 41069 NULL
161497 +enable_so_gfn_to_pfn_fndecl_41077 gfn_to_pfn fndecl 2 41077 NULL
161498 +enable_so_shtc1_update_values_fndecl_41080 shtc1_update_values fndecl 4 41080 NULL
161499 +enable_so_zl10039_write_fndecl_41082 zl10039_write fndecl 4 41082 NULL
161500 +enable_so_pci_vc_do_save_buffer_fndecl_41087 pci_vc_do_save_buffer fndecl 0 41087 NULL
161501 +enable_so_wdt87xx_get_feature_fndecl_41089 wdt87xx_get_feature fndecl 3 41089 NULL nohasharray
161502 +enable_so_iq_autocal_len_p54_common_41089 iq_autocal_len p54_common 0 41089 &enable_so_wdt87xx_get_feature_fndecl_41089
161503 +enable_so_pskb_put_fndecl_41096 pskb_put fndecl 3 41096 NULL nohasharray
161504 +enable_so_sigma_fw_load_data_fndecl_41096 sigma_fw_load_data fndecl 3 41096 &enable_so_pskb_put_fndecl_41096
161505 +enable_so_nr_gpio_sc16is7xx_devtype_41097 nr_gpio sc16is7xx_devtype 0 41097 NULL
161506 +enable_so_input_leds_get_count_fndecl_41102 input_leds_get_count fndecl 0 41102 NULL
161507 +enable_so_ieee80211_if_read_ave_beacon_fndecl_41103 ieee80211_if_read_ave_beacon fndecl 3 41103 NULL
161508 +enable_so_res_ver_val_pvr2_hdw_41107 res_ver_val pvr2_hdw 0 41107 NULL
161509 +enable_so_physical_start_stripe_41108 physical_start stripe 0 41108 NULL
161510 +enable_so_xfs_imap_lookup_fndecl_41113 xfs_imap_lookup fndecl 4-3 41113 NULL
161511 +enable_so_in_iovs_fuse_ioctl_out_41117 in_iovs fuse_ioctl_out 0 41117 NULL
161512 +enable_so_ubifs_wbuf_write_nolock_fndecl_41121 ubifs_wbuf_write_nolock fndecl 3 41121 NULL
161513 +enable_so_datalen_brcmf_event_msg_41123 datalen brcmf_event_msg 0 41123 NULL
161514 +enable_so_ip_options_get_from_user_fndecl_41133 ip_options_get_from_user fndecl 4 41133 NULL
161515 +enable_so_data_out_pipe_uas_dev_info_41134 data_out_pipe uas_dev_info 0 41134 NULL
161516 +enable_so_data_len_b43_dfs_file_41135 data_len b43_dfs_file 0 41135 NULL
161517 +enable_so_qcaspi_read_burst_fndecl_41137 qcaspi_read_burst fndecl 3 41137 NULL
161518 +enable_so_nilfs_sufile_get_blkoff_fndecl_41139 nilfs_sufile_get_blkoff fndecl 0-2 41139 NULL
161519 +enable_so_hidp_process_report_fndecl_41140 hidp_process_report fndecl 4 41140 NULL
161520 +enable_so_usb_reset_and_verify_device_fndecl_41142 usb_reset_and_verify_device fndecl 0 41142 NULL
161521 +enable_so_ieee80211_cs_headroom_fndecl_41144 ieee80211_cs_headroom fndecl 0 41144 NULL
161522 +enable_so_rx_drvinfo_size_rtl_stats_41161 rx_drvinfo_size rtl_stats 0 41161 NULL
161523 +enable_so___blk_recalc_rq_segments_fndecl_41164 __blk_recalc_rq_segments fndecl 0 41164 NULL
161524 +enable_so_l2tp_ip6_sendmsg_fndecl_41166 l2tp_ip6_sendmsg fndecl 3 41166 NULL
161525 +enable_so_get_blocks_target_backend_ops_41168 get_blocks target_backend_ops 0 41168 NULL
161526 +enable_so_suspend_dtim_interval_read_fndecl_41176 suspend_dtim_interval_read fndecl 3 41176 NULL
161527 +enable_so_size_brnf_frag_data_41177 size brnf_frag_data 0 41177 NULL
161528 +enable_so_start_flakey_c_41178 start flakey_c 0 41178 NULL nohasharray
161529 +enable_so_traceprobe_probes_write_fndecl_41178 traceprobe_probes_write fndecl 3 41178 &enable_so_start_flakey_c_41178
161530 +enable_so_lro_wqe_sz_mlx5e_params_41180 lro_wqe_sz mlx5e_params 0 41180 NULL
161531 +enable_so_gfn_guest_walker64_41182 gfn guest_walker64 0 41182 NULL
161532 +enable_so_index_vardecl_via82xx_c_41183 index vardecl_via82xx.c 0 41183 NULL
161533 +enable_so_binder_set_nice_fndecl_41184 binder_set_nice fndecl 1 41184 NULL
161534 +enable_so_ndlc_probe_fndecl_41195 ndlc_probe fndecl 4 41195 NULL
161535 +enable_so_nr_pages_page_collect_41197 nr_pages page_collect 0 41197 NULL
161536 +enable_so_sq905_command_fndecl_41201 sq905_command fndecl 0 41201 NULL
161537 +enable_so_ipv4_tun_to_nlattr_fndecl_41204 ipv4_tun_to_nlattr fndecl 4 41204 NULL
161538 +enable_so_nr_acpi_bits_vardecl_xen_acpi_processor_c_41210 nr_acpi_bits vardecl_xen-acpi-processor.c 0 41210 NULL
161539 +enable_so_qib_n_krcv_queues_vardecl_41222 qib_n_krcv_queues vardecl 0 41222 NULL
161540 +enable_so_p9_client_read_fndecl_41223 p9_client_read fndecl 0 41223 NULL
161541 +enable_so_prctl_set_mm_fndecl_41225 prctl_set_mm fndecl 2-3 41225 NULL
161542 +enable_so_enic_change_mtu_fndecl_41227 enic_change_mtu fndecl 2 41227 NULL nohasharray
161543 +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
161544 +enable_so_out_count_mdc800_data_41228 out_count mdc800_data 0 41228 NULL
161545 +enable_so_len_driver_data_41237 len driver_data 0 41237 NULL
161546 +enable_so_vmw_gb_shader_init_fndecl_41240 vmw_gb_shader_init fndecl 3 41240 NULL
161547 +enable_so_opera1_usb_i2c_msgxfer_fndecl_41242 opera1_usb_i2c_msgxfer fndecl 4 41242 NULL
161548 +enable_so_ses_send_diag_fndecl_41244 ses_send_diag fndecl 4 41244 NULL
161549 +enable_so_iwl_dbgfs_ucode_tracing_write_fndecl_41247 iwl_dbgfs_ucode_tracing_write fndecl 3 41247 NULL
161550 +enable_so___apei_exec_run_fndecl_41248 __apei_exec_run fndecl 0 41248 NULL
161551 +enable_so___spi_sync_fndecl_41250 __spi_sync fndecl 0 41250 NULL nohasharray
161552 +enable_so_init_size_rx_module_41250 init_size_rx module 0 41250 &enable_so___spi_sync_fndecl_41250
161553 +enable_so_croph_val_pvr2_hdw_41253 croph_val pvr2_hdw 0 41253 NULL
161554 +enable_so_get_res_add_align_fndecl_41257 get_res_add_align fndecl 0 41257 NULL
161555 +enable_so_qlen_sk_buff_head_41259 qlen sk_buff_head 0 41259 NULL nohasharray
161556 +enable_so_diva_os_alloc_message_buffer_fndecl_41259 diva_os_alloc_message_buffer fndecl 1 41259 &enable_so_qlen_sk_buff_head_41259
161557 +enable_so_do_erase_fndecl_41261 do_erase fndecl 2-4 41261 NULL
161558 +enable_so_lm8323_read_fndecl_41264 lm8323_read fndecl 4 41264 NULL
161559 +enable_so_blkdev_issue_zeroout_fndecl_41272 blkdev_issue_zeroout fndecl 3-2-0 41272 NULL
161560 +enable_so_rbd_obj_read_sync_fndecl_41273 rbd_obj_read_sync fndecl 3-4 41273 NULL
161561 +enable_so___btrfs_prealloc_file_range_fndecl_41278 __btrfs_prealloc_file_range fndecl 3 41278 NULL
161562 +enable_so_size_data_s_41281 size data_s 0 41281 NULL
161563 +enable_so_num_reg_defaults_raw_regmap_41282 num_reg_defaults_raw regmap 0 41282 NULL
161564 +enable_so_centre_horizontally_fndecl_41284 centre_horizontally fndecl 2 41284 NULL nohasharray
161565 +enable_so_vxfs_getblk_fndecl_41284 vxfs_getblk fndecl 2 41284 &enable_so_centre_horizontally_fndecl_41284
161566 +enable_so_dy_fb_fillrect_41289 dy fb_fillrect 0 41289 NULL nohasharray
161567 +enable_so_tcp_write_xmit_fndecl_41289 tcp_write_xmit fndecl 2 41289 &enable_so_dy_fb_fillrect_41289
161568 +enable_so_vb2_queue_init_fndecl_41292 vb2_queue_init fndecl 0 41292 NULL
161569 +enable_so_uni2char_nls_table_41293 uni2char nls_table 0 41293 NULL
161570 +enable_so_kfd_set_pasid_limit_fndecl_41300 kfd_set_pasid_limit fndecl 1 41300 NULL
161571 +enable_so_bop_check_delete_nilfs_bmap_operations_41302 bop_check_delete nilfs_bmap_operations 0 41302 NULL
161572 +enable_so_register_vlan_device_fndecl_41310 register_vlan_device fndecl 2 41310 NULL
161573 +enable_so_d40_size_2_dmalen_fndecl_41311 d40_size_2_dmalen fndecl 0-3-2-1 41311 NULL nohasharray
161574 +enable_so_img_SRAM_size_fw_hdr_41311 img_SRAM_size fw_hdr 0 41311 &enable_so_d40_size_2_dmalen_fndecl_41311
161575 +enable_so_cma_declare_contiguous_fndecl_41316 cma_declare_contiguous fndecl 4-2-1-3-5 41316 NULL nohasharray
161576 +enable_so_block_start_extent_map_41316 block_start extent_map 0 41316 &enable_so_cma_declare_contiguous_fndecl_41316
161577 +enable_so_pc_len_s_pcon_41324 pc_len s_pcon 0 41324 NULL
161578 +enable_so_max_fcoe_exchanges_cnic_dev_41335 max_fcoe_exchanges cnic_dev 0 41335 NULL
161579 +enable_so_last_alloc_physical_block_ext2_block_alloc_info_41336 last_alloc_physical_block ext2_block_alloc_info 0 41336 NULL
161580 +enable_so_fanotify_write_fndecl_41340 fanotify_write fndecl 3 41340 NULL
161581 +enable_so_regmap_read_debugfs_fndecl_41345 regmap_read_debugfs fndecl 5 41345 NULL
161582 +enable_so_key_len_wmi_vdev_install_key_arg_41347 key_len wmi_vdev_install_key_arg 0 41347 NULL
161583 +enable_so_transport_lba_64_fndecl_41348 transport_lba_64 fndecl 0 41348 NULL
161584 +enable_so_ocfs2_read_xattr_block_fndecl_41350 ocfs2_read_xattr_block fndecl 0-2 41350 NULL nohasharray
161585 +enable_so_pool_create_fndecl_41350 pool_create fndecl 3 41350 &enable_so_ocfs2_read_xattr_block_fndecl_41350 nohasharray
161586 +enable_so_size_snd_info_entry_41350 size snd_info_entry 0 41350 &enable_so_pool_create_fndecl_41350 nohasharray
161587 +enable_so_tlbflush_read_file_fndecl_41350 tlbflush_read_file fndecl 3 41350 &enable_so_size_snd_info_entry_41350
161588 +enable_so_efx_tsoh_get_buffer_fndecl_41355 efx_tsoh_get_buffer fndecl 3 41355 NULL
161589 +enable_so_usb_stor_probe1_fndecl_41357 usb_stor_probe1 fndecl 0 41357 NULL
161590 +enable_so_rx_rx_out_of_mpdu_nodes_read_fndecl_41359 rx_rx_out_of_mpdu_nodes_read fndecl 3 41359 NULL
161591 +enable_so__iwl_dbgfs_d0i3_refs_write_fndecl_41361 _iwl_dbgfs_d0i3_refs_write fndecl 3 41361 NULL
161592 +enable_so_num_eq_entries_hba_parameters_41369 num_eq_entries hba_parameters 0 41369 NULL
161593 +enable_so_wrsent_cyberjack_private_41371 wrsent cyberjack_private 0 41371 NULL
161594 +enable_so_do_device_access_fndecl_41373 do_device_access fndecl 0-2-3 41373 NULL
161595 +enable_so_max_frame_size_mgsl_struct_41374 max_frame_size mgsl_struct 0 41374 NULL
161596 +enable_so_mremap_to_fndecl_41376 mremap_to fndecl 4-3-1-2 41376 NULL nohasharray
161597 +enable_so_sectors_per_block_era_41376 sectors_per_block era 0 41376 &enable_so_mremap_to_fndecl_41376 nohasharray
161598 +enable_so_TupleDataMax_tuple_t_41376 TupleDataMax tuple_t 0 41376 &enable_so_sectors_per_block_era_41376
161599 +enable_so_wsize_nfs_server_41387 wsize nfs_server 0 41387 NULL nohasharray
161600 +enable_so_atomic_write_len_kernfs_ops_41387 atomic_write_len kernfs_ops 0 41387 &enable_so_wsize_nfs_server_41387
161601 +enable_so_l_tree_depth_ocfs2_extent_list_41398 l_tree_depth ocfs2_extent_list 0 41398 NULL
161602 +enable_so_fat32_root_cluster_fat_bios_param_block_41399 fat32_root_cluster fat_bios_param_block 0 41399 NULL
161603 +enable_so_mt76_mac_process_rate_fndecl_41401 mt76_mac_process_rate fndecl 2 41401 NULL
161604 +enable_so_nr_free_zone_pages_fndecl_41403 nr_free_zone_pages fndecl 0 41403 NULL
161605 +enable_so_i2400m_msg_to_dev_fndecl_41409 i2400m_msg_to_dev fndecl 3 41409 NULL
161606 +enable_so_num_channels_fndecl_41411 num_channels fndecl 0-1 41411 NULL
161607 +enable_so_virtio_cread8_fndecl_41431 virtio_cread8 fndecl 0 41431 NULL
161608 +enable_so_dapm_bias_read_file_fndecl_41432 dapm_bias_read_file fndecl 3 41432 NULL
161609 +enable_so_snd_pcm_oss_capture_position_fixup_fndecl_41434 snd_pcm_oss_capture_position_fixup fndecl 0 41434 NULL
161610 +enable_so_l1_size_vardecl_acpi_extlog_c_41440 l1_size vardecl_acpi_extlog.c 0 41440 NULL
161611 +enable_so_vram_remap_vardecl_vesafb_c_41441 vram_remap vardecl_vesafb.c 0 41441 NULL
161612 +enable_so_rt2x00debug_write_csr_fndecl_41442 rt2x00debug_write_csr fndecl 3 41442 NULL
161613 +enable_so_udf_NLStoCS0_fndecl_41451 udf_NLStoCS0 fndecl 0 41451 NULL
161614 +enable_so_rf_blkno_ocfs2_refcount_tree_41452 rf_blkno ocfs2_refcount_tree 0 41452 NULL
161615 +enable_so_dm_wmfw_adsp1_alg_hdr_41454 dm wmfw_adsp1_alg_hdr 0 41454 NULL
161616 +enable_so_sensor_write_reg_fndecl_41455 sensor_write_reg fndecl 0 41455 NULL
161617 +enable_so_squashfs_read_inode_lookup_table_fndecl_41456 squashfs_read_inode_lookup_table fndecl 4 41456 NULL nohasharray
161618 +enable_so_max_pd_ib_device_attr_41456 max_pd ib_device_attr 0 41456 &enable_so_squashfs_read_inode_lookup_table_fndecl_41456
161619 +enable_so_mem_lseek_fndecl_41457 mem_lseek fndecl 2 41457 NULL nohasharray
161620 +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
161621 +enable_so_tx_fifo_override_sh_msiof_spi_info_41461 tx_fifo_override sh_msiof_spi_info 0 41461 NULL
161622 +enable_so_bio_map_kern_fndecl_41468 bio_map_kern fndecl 3 41468 NULL
161623 +enable_so_pageshift_alauda_media_info_41469 pageshift alauda_media_info 0 41469 NULL nohasharray
161624 +enable_so_sd_qc_per_block_gfs2_sbd_41469 sd_qc_per_block gfs2_sbd 0 41469 &enable_so_pageshift_alauda_media_info_41469
161625 +enable_so_s_len_qib_qp_41471 s_len qib_qp 0 41471 NULL nohasharray
161626 +enable_so_major_nr_vardecl_umem_c_41471 major_nr vardecl_umem.c 0 41471 &enable_so_s_len_qib_qp_41471
161627 +enable_so_redirected_tty_write_fndecl_41474 redirected_tty_write fndecl 3 41474 NULL
161628 +enable_so_get_var_len_fndecl_41483 get_var_len fndecl 0 41483 NULL
161629 +enable_so_video_offset_sis_video_info_41491 video_offset sis_video_info 0 41491 NULL
161630 +enable_so_lpddr_info_query_fndecl_41492 lpddr_info_query fndecl 0 41492 NULL
161631 +enable_so_compat_core_sys_select_fndecl_41494 compat_core_sys_select fndecl 1 41494 NULL
161632 +enable_so_dir_entries_fat_floppy_defaults_41499 dir_entries fat_floppy_defaults 0 41499 NULL
161633 +enable_so_mpi_set_buffer_fndecl_41501 mpi_set_buffer fndecl 3 41501 NULL
161634 +enable_so_irda_param_insert_fndecl_41502 irda_param_insert fndecl 0 41502 NULL
161635 +enable_so_b_fifo_size_hfcSX_hw_41512 b_fifo_size hfcSX_hw 0 41512 NULL
161636 +enable_so_dccp_setsockopt_service_fndecl_41515 dccp_setsockopt_service fndecl 4 41515 NULL
161637 +enable_so_vpi_atm_vcc_41519 vpi atm_vcc 0 41519 NULL
161638 +enable_so_nfc_hci_execute_cmd_async_fndecl_41521 nfc_hci_execute_cmd_async fndecl 5 41521 NULL
161639 +enable_so_lv_niovecs_xfs_log_vec_41525 lv_niovecs xfs_log_vec 0 41525 NULL nohasharray
161640 +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
161641 +enable_so_unpack_array_fndecl_41525 unpack_array fndecl 0 41525 &enable_so_pcpu_unit_pages_vardecl_percpu_c_41525
161642 +enable_so_max_targets_orc_host_41530 max_targets orc_host 0 41530 NULL
161643 +enable_so_pci_vpd_find_tag_fndecl_41534 pci_vpd_find_tag fndecl 0-2 41534 NULL
161644 +enable_so_alloc_cpu_rmap_fndecl_41536 alloc_cpu_rmap fndecl 1 41536 NULL
161645 +enable_so_sv_xdrsize_svc_serv_41544 sv_xdrsize svc_serv 0 41544 NULL nohasharray
161646 +enable_so_iwl_dbgfs_netdetect_read_fndecl_41544 iwl_dbgfs_netdetect_read fndecl 3 41544 &enable_so_sv_xdrsize_svc_serv_41544
161647 +enable_so_velocity_change_mtu_fndecl_41548 velocity_change_mtu fndecl 2 41548 NULL
161648 +enable_so_nr_online_nodes_vardecl_41549 nr_online_nodes vardecl 0 41549 NULL
161649 +enable_so_ntargets_aoedev_41550 ntargets aoedev 0 41550 NULL
161650 +enable_so_set_extent_defrag_fndecl_41558 set_extent_defrag fndecl 3-2 41558 NULL
161651 +enable_so_max_nr_ports_virtio_console_config_41559 max_nr_ports virtio_console_config 0 41559 NULL
161652 +enable_so_fpa_set_fndecl_41560 fpa_set fndecl 3-4 41560 NULL
161653 +enable_so_dma_rx_requested_read_fndecl_41561 dma_rx_requested_read fndecl 3 41561 NULL
161654 +enable_so_stv0680_handle_error_fndecl_41563 stv0680_handle_error fndecl 0-2 41563 NULL
161655 +enable_so_sb_blocklog_xfs_sb_41568 sb_blocklog xfs_sb 0 41568 NULL
161656 +enable_so___alloc_bootmem_nopanic_fndecl_41574 __alloc_bootmem_nopanic fndecl 2-1-3 41574 NULL
161657 +enable_so___read_vmcore_fndecl_41577 __read_vmcore fndecl 2 41577 NULL
161658 +enable_so_mtd_get_device_size_fndecl_41579 mtd_get_device_size fndecl 0 41579 NULL
161659 +enable_so_FirstBurstLength_iscsi_sess_ops_41581 FirstBurstLength iscsi_sess_ops 0 41581 NULL nohasharray
161660 +enable_so_iio_device_add_channel_sysfs_fndecl_41581 iio_device_add_channel_sysfs fndecl 0 41581 &enable_so_FirstBurstLength_iscsi_sess_ops_41581
161661 +enable_so_rx_buffersize_b43legacy_dmaring_41583 rx_buffersize b43legacy_dmaring 0 41583 NULL
161662 +enable_so_fuse_write_end_fndecl_41587 fuse_write_end fndecl 5-3 41587 NULL
161663 +enable_so_xpc_kzalloc_cacheline_aligned_fndecl_41610 xpc_kzalloc_cacheline_aligned fndecl 1 41610 NULL
161664 +enable_so_vmalloc_to_pfn_fndecl_41614 vmalloc_to_pfn fndecl 0 41614 NULL
161665 +enable_so_ocfs2_write_begin_nolock_fndecl_41617 ocfs2_write_begin_nolock fndecl 3 41617 NULL nohasharray
161666 +enable_so_hba_queue_depth_MPT3SAS_ADAPTER_41617 hba_queue_depth MPT3SAS_ADAPTER 0 41617 &enable_so_ocfs2_write_begin_nolock_fndecl_41617
161667 +enable_so_jffs2_gc_fetch_inode_fndecl_41629 jffs2_gc_fetch_inode fndecl 2 41629 NULL
161668 +enable_so_drm_calloc_large_fndecl_41630 drm_calloc_large fndecl 1-2 41630 NULL
161669 +enable_so_read_buf_fndecl_41631 read_buf fndecl 3-0 41631 NULL
161670 +enable_so_dev_major_cuse_init_out_41635 dev_major cuse_init_out 0 41635 NULL
161671 +enable_so_dm_bm_prefetch_fndecl_41636 dm_bm_prefetch fndecl 2 41636 NULL
161672 +enable_so_tx_ring_size_jme_adapter_41640 tx_ring_size jme_adapter 0 41640 NULL
161673 +enable_so_rate_twl4030_priv_41642 rate twl4030_priv 0 41642 NULL
161674 +enable_so_fnode_hpfs_dirent_41643 fnode hpfs_dirent 0 41643 NULL
161675 +enable_so_clear_user_fndecl_41645 clear_user fndecl 2 41645 NULL
161676 +enable_so_rx_buffer_len_e1000_adapter_41647 rx_buffer_len e1000_adapter 0 41647 NULL
161677 +enable_so_usb_alloc_coherent_fndecl_41655 usb_alloc_coherent fndecl 2 41655 NULL
161678 +enable_so_plcp_il_rate_info_41660 plcp il_rate_info 0 41660 NULL
161679 +enable_so_data_length_bnx2i_reject_msg_41661 data_length bnx2i_reject_msg 0 41661 NULL
161680 +enable_so_dpcm_state_read_file_fndecl_41666 dpcm_state_read_file fndecl 3 41666 NULL
161681 +enable_so_frag_threshold_atmel_private_41669 frag_threshold atmel_private 0 41669 NULL
161682 +enable_so_selnl_msglen_fndecl_41672 selnl_msglen fndecl 0 41672 NULL
161683 +enable_so_qib_create_ctxtdata_fndecl_41674 qib_create_ctxtdata fndecl 2 41674 NULL
161684 +enable_so_vram_start_vmw_private_41679 vram_start vmw_private 0 41679 NULL
161685 +enable_so_encrypted_filename_size_ecryptfs_filename_41686 encrypted_filename_size ecryptfs_filename 0 41686 NULL nohasharray
161686 +enable_so_firstUnit_INFTLPartition_41686 firstUnit INFTLPartition 0 41686 &enable_so_encrypted_filename_size_ecryptfs_filename_41686
161687 +enable_so_mem_zatm_dev_41696 mem zatm_dev 0 41696 NULL
161688 +enable_so_nvme_trans_standard_inquiry_page_fndecl_41701 nvme_trans_standard_inquiry_page fndecl 4 41701 NULL
161689 +enable_so_length_usbtest_param_41702 length usbtest_param 0 41702 NULL
161690 +enable_so_zoran_v4l2_calc_bufsize_fndecl_41703 zoran_v4l2_calc_bufsize fndecl 0 41703 NULL
161691 +enable_so_bfs_move_blocks_fndecl_41706 bfs_move_blocks fndecl 2-4 41706 NULL
161692 +enable_so_tree_mod_log_eb_copy_fndecl_41708 tree_mod_log_eb_copy fndecl 6 41708 NULL
161693 +enable_so_ax25_recvmsg_fndecl_41714 ax25_recvmsg fndecl 3 41714 NULL
161694 +enable_so_l_curr_block_xlog_41718 l_curr_block xlog 0 41718 NULL
161695 +enable_so_strstart_deflate_state_41719 strstart deflate_state 0 41719 NULL
161696 +enable_so_hlen_ip_tunnel_41720 hlen ip_tunnel 0 41720 NULL
161697 +enable_so_width_tw68_dev_41726 width tw68_dev 0 41726 NULL
161698 +enable_so_xp_max_npartitions_vardecl_41728 xp_max_npartitions vardecl 0 41728 NULL
161699 +enable_so_sb_sectlog_xfs_sb_41740 sb_sectlog xfs_sb 0 41740 NULL
161700 +enable_so_v4l2_ctrl_handler_init_class_fndecl_41742 v4l2_ctrl_handler_init_class fndecl 2 41742 NULL
161701 +enable_so_cxgb3i_max_connect_vardecl_cxgb3i_c_41744 cxgb3i_max_connect vardecl_cxgb3i.c 0 41744 NULL
161702 +enable_so_val_xfs_sysctl_val_41747 val xfs_sysctl_val 0 41747 NULL
161703 +enable_so_iic_tpm_read_fndecl_41748 iic_tpm_read fndecl 3 41748 NULL
161704 +enable_so_intel_fb_align_height_fndecl_41750 intel_fb_align_height fndecl 0-2 41750 NULL
161705 +enable_so_bm_key_affs_bm_info_41751 bm_key affs_bm_info 0 41751 NULL
161706 +enable_so_encode_filename3_fndecl_41752 encode_filename3 fndecl 3 41752 NULL
161707 +enable_so_insert_dent_fndecl_41753 insert_dent fndecl 3-4-7 41753 NULL
161708 +enable_so_i_metasize_romfs_inode_info_41756 i_metasize romfs_inode_info 0 41756 NULL
161709 +enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763 bnx2fc_process_l2_frame_compl fndecl 3 41763 NULL nohasharray
161710 +enable_so_size_port_buffer_41763 size port_buffer 0 41763 &enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763
161711 +enable_so_len_cbuf_41764 len cbuf 0 41764 NULL nohasharray
161712 +enable_so_bbt_erase_shift_nand_chip_41764 bbt_erase_shift nand_chip 0 41764 &enable_so_len_cbuf_41764
161713 +enable_so___alloc_bootmem_node_high_fndecl_41767 __alloc_bootmem_node_high fndecl 3-2-4 41767 NULL
161714 +enable_so_batadv_socket_write_fndecl_41768 batadv_socket_write fndecl 3 41768 NULL
161715 +enable_so_ocfs2_truncate_cluster_pages_fndecl_41773 ocfs2_truncate_cluster_pages fndecl 2-3 41773 NULL
161716 +enable_so_pcibios_enable_device_fndecl_41776 pcibios_enable_device fndecl 0 41776 NULL
161717 +enable_so_ath9k_multi_regread_fndecl_41779 ath9k_multi_regread fndecl 4 41779 NULL
161718 +enable_so_dma_rx_size_stmmac_priv_41781 dma_rx_size stmmac_priv 0 41781 NULL nohasharray
161719 +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
161720 +enable_so_numtx_velocity_opt_41785 numtx velocity_opt 0 41785 NULL
161721 +enable_so_max_msg_length_mei_client_properties_41791 max_msg_length mei_client_properties 0 41791 NULL nohasharray
161722 +enable_so_make_idx_node_fndecl_41791 make_idx_node fndecl 6-5 41791 &enable_so_max_msg_length_mei_client_properties_41791
161723 +enable_so_usbtest_alloc_urb_fndecl_41800 usbtest_alloc_urb fndecl 3-5-2 41800 NULL
161724 +enable_so_rx_pkt_length_rxpd_41805 rx_pkt_length rxpd 0 41805 NULL
161725 +enable_so_alloc_ksz_desc_info_41806 alloc ksz_desc_info 0 41806 NULL nohasharray
161726 +enable_so_outlen_mlx5_cmd_debug_41806 outlen mlx5_cmd_debug 0 41806 &enable_so_alloc_ksz_desc_info_41806
161727 +enable_so_ath9k_dump_mci_btcoex_fndecl_41809 ath9k_dump_mci_btcoex fndecl 0 41809 NULL
161728 +enable_so_udf_get_pblock_fndecl_41813 udf_get_pblock fndecl 0-4-2 41813 NULL nohasharray
161729 +enable_so_T9_reportid_min_mxt_data_41813 T9_reportid_min mxt_data 0 41813 &enable_so_udf_get_pblock_fndecl_41813
161730 +enable_so_sisusb_num_columns_sisusb_usb_data_41814 sisusb_num_columns sisusb_usb_data 0 41814 NULL nohasharray
161731 +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
161732 +enable_so_nports_cxgb4_lld_info_41815 nports cxgb4_lld_info 0 41815 NULL
161733 +enable_so_n_ssids_wmi_start_scan_arg_41826 n_ssids wmi_start_scan_arg 0 41826 NULL
161734 +enable_so_wdt87xx_get_string_fndecl_41835 wdt87xx_get_string fndecl 4 41835 NULL
161735 +enable_so_root_btrfs_super_block_41846 root btrfs_super_block 0 41846 NULL
161736 +enable_so_al_tr_number_drbd_device_41847 al_tr_number drbd_device 0 41847 NULL
161737 +enable_so_max_tags_index_Tekram_nvram_41851 max_tags_index Tekram_nvram 0 41851 NULL
161738 +enable_so_free_bootmem_node_fndecl_41852 free_bootmem_node fndecl 3-2 41852 NULL nohasharray
161739 +enable_so_ar5523_cmd_write_fndecl_41852 ar5523_cmd_write fndecl 4 41852 &enable_so_free_bootmem_node_fndecl_41852 nohasharray
161740 +enable_so_nf_setsockopt_fndecl_41852 nf_setsockopt fndecl 0 41852 &enable_so_ar5523_cmd_write_fndecl_41852
161741 +enable_so_tx_headroom_nfc_dev_41854 tx_headroom nfc_dev 0 41854 NULL nohasharray
161742 +enable_so_compatsize_xt_target_41854 compatsize xt_target 0 41854 &enable_so_tx_headroom_nfc_dev_41854
161743 +enable_so_dm_add_exception_fndecl_41858 dm_add_exception fndecl 3-2 41858 NULL nohasharray
161744 +enable_so_ino_nilfs_fid_41858 ino nilfs_fid 0 41858 &enable_so_dm_add_exception_fndecl_41858
161745 +enable_so_ext_tree_mark_written_fndecl_41860 ext_tree_mark_written fndecl 2-3 41860 NULL nohasharray
161746 +enable_so_nla_reserve_nohdr_fndecl_41860 nla_reserve_nohdr fndecl 2 41860 &enable_so_ext_tree_mark_written_fndecl_41860
161747 +enable_so_num_tags_esp_41863 num_tags esp 0 41863 NULL
161748 +enable_so_ssb_bus_register_fndecl_41868 ssb_bus_register fndecl 3 41868 NULL
161749 +enable_so_snd_rme96_capture_getrate_fndecl_41874 snd_rme96_capture_getrate fndecl 0 41874 NULL
161750 +enable_so_md_size_sect_drbd_md_41886 md_size_sect drbd_md 0 41886 NULL
161751 +enable_so_rcvidx_fritz_bcs_41889 rcvidx fritz_bcs 0 41889 NULL
161752 +enable_so_qib_rcvhdrcnt_vardecl_qib_iba7322_c_41890 qib_rcvhdrcnt vardecl_qib_iba7322.c 0 41890 NULL
161753 +enable_so_RequestFrameSize__MSG_IOC_FACTS_REPLY_41895 RequestFrameSize _MSG_IOC_FACTS_REPLY 0 41895 NULL
161754 +enable_so_from_seq_file_41897 from seq_file 0 41897 NULL
161755 +enable_so_mem_unit_sysinfo_41901 mem_unit sysinfo 0 41901 NULL
161756 +enable_so_wm8900_set_fll_fndecl_41903 wm8900_set_fll fndecl 3-4 41903 NULL
161757 +enable_so_length_zoran_sync_41909 length zoran_sync 0 41909 NULL
161758 +enable_so_raw_decoder_line_size_vbi_info_41920 raw_decoder_line_size vbi_info 0 41920 NULL
161759 +enable_so_b_read_mon_reader_bin_41923 b_read mon_reader_bin 0 41923 NULL nohasharray
161760 +enable_so_print_endpoint_stat_fndecl_41923 print_endpoint_stat fndecl 0-4 41923 &enable_so_b_read_mon_reader_bin_41923
161761 +enable_so_wil_pmc_llseek_fndecl_41924 wil_pmc_llseek fndecl 2 41924 NULL nohasharray
161762 +enable_so_num_descriptors_wmi_p2p_noa_info_41924 num_descriptors wmi_p2p_noa_info 0 41924 &enable_so_wil_pmc_llseek_fndecl_41924
161763 +enable_so_rssiThreshold_ConfigRid_41926 rssiThreshold ConfigRid 0 41926 NULL
161764 +enable_so_whci_n_caps_fndecl_41932 whci_n_caps fndecl 0 41932 NULL
161765 +enable_so_ss_nblocks_nilfs_segment_summary_41935 ss_nblocks nilfs_segment_summary 0 41935 NULL
161766 +enable_so_rx_rx_done_read_fndecl_41938 rx_rx_done_read fndecl 3 41938 NULL
161767 +enable_so_n_sel_arg_struct_41940 n sel_arg_struct 0 41940 NULL
161768 +enable_so_rmmio_size_cirrus_device_41950 rmmio_size cirrus_device 0 41950 NULL
161769 +enable_so_kmem_zalloc_greedy_fndecl_41959 kmem_zalloc_greedy fndecl 3-2 41959 NULL
161770 +enable_so_ide_init_sg_cmd_fndecl_41962 ide_init_sg_cmd fndecl 2 41962 NULL
161771 +enable_so_relay_open_fndecl_41964 relay_open fndecl 3-4 41964 NULL nohasharray
161772 +enable_so_ccp_reverse_get_dm_area_fndecl_41964 ccp_reverse_get_dm_area fndecl 3 41964 &enable_so_relay_open_fndecl_41964 nohasharray
161773 +enable_so_connector_dcb_output_41964 connector dcb_output 0 41964 &enable_so_ccp_reverse_get_dm_area_fndecl_41964 nohasharray
161774 +enable_so_kmalloc_parameter_fndecl_41964 kmalloc_parameter fndecl 1 41964 &enable_so_connector_dcb_output_41964
161775 +enable_so_n_rbuf_srpt_send_ioctx_41965 n_rbuf srpt_send_ioctx 0 41965 NULL
161776 +enable_so_length_ccp_dm_workarea_41966 length ccp_dm_workarea 0 41966 NULL
161777 +enable_so_ctl_mapbase_timberdale_device_41969 ctl_mapbase timberdale_device 0 41969 NULL
161778 +enable_so_width_fb_copyarea_41973 width fb_copyarea 0 41973 NULL
161779 +enable_so_hsync_ast_vbios_enhtable_41977 hsync ast_vbios_enhtable 0 41977 NULL nohasharray
161780 +enable_so_max_req_queues_qla_hw_data_41977 max_req_queues qla_hw_data 0 41977 &enable_so_hsync_ast_vbios_enhtable_41977
161781 +enable_so_f3_id_amd64_family_type_41979 f3_id amd64_family_type 0 41979 NULL
161782 +enable_so___send_control_msg_fndecl_41986 __send_control_msg fndecl 2-0 41986 NULL
161783 +enable_so_va_end_vmap_area_41988 va_end vmap_area 0 41988 NULL
161784 +enable_so_snd_pcm_oss_read1_fndecl_41992 snd_pcm_oss_read1 fndecl 3 41992 NULL
161785 +enable_so_snd_opl4_mem_proc_read_fndecl_41997 snd_opl4_mem_proc_read fndecl 5 41997 NULL
161786 +enable_so_total_byte_count_els_sts_entry_24xx_41999 total_byte_count els_sts_entry_24xx 0 41999 NULL
161787 +enable_so_vb2_vmalloc_attach_dmabuf_fndecl_42001 vb2_vmalloc_attach_dmabuf fndecl 3 42001 NULL
161788 +enable_so_selinux_secctx_to_secid_fndecl_42003 selinux_secctx_to_secid fndecl 2 42003 NULL
161789 +enable_so_page_offset_ixgbevf_rx_buffer_42004 page_offset ixgbevf_rx_buffer 0 42004 NULL
161790 +enable_so_acpi_tb_install_fixed_table_fndecl_42006 acpi_tb_install_fixed_table fndecl 1 42006 NULL
161791 +enable_so_set_flicker_fndecl_42011 set_flicker fndecl 0 42011 NULL
161792 +enable_so_nvkm_therm_create__fndecl_42013 nvkm_therm_create_ fndecl 4 42013 NULL
161793 +enable_so_svc_rdma_xdr_decode_req_fndecl_42015 svc_rdma_xdr_decode_req fndecl 0 42015 NULL nohasharray
161794 +enable_so_pci_add_new_bus_fndecl_42015 pci_add_new_bus fndecl 3 42015 &enable_so_svc_rdma_xdr_decode_req_fndecl_42015
161795 +enable_so___ieee80211_start_rx_ba_session_fndecl_42023 __ieee80211_start_rx_ba_session fndecl 7 42023 NULL
161796 +enable_so_seq_ports_snd_emu10k1_synth_arg_42026 seq_ports snd_emu10k1_synth_arg 0 42026 NULL
161797 +enable_so_do_mem_probe_fndecl_42028 do_mem_probe fndecl 3-2 42028 NULL nohasharray
161798 +enable_so_copy_nodes_to_user_fndecl_42028 copy_nodes_to_user fndecl 2 42028 &enable_so_do_mem_probe_fndecl_42028
161799 +enable_so_mwifiex_11n_create_rx_reorder_tbl_fndecl_42029 mwifiex_11n_create_rx_reorder_tbl fndecl 4 42029 NULL
161800 +enable_so_spidev_compat_ioctl_fndecl_42033 spidev_compat_ioctl fndecl 2 42033 NULL
161801 +enable_so_ctrl_frame_len_brcmf_sdio_42037 ctrl_frame_len brcmf_sdio 0 42037 NULL
161802 +enable_so_reiserfs_new_inode_fndecl_42039 reiserfs_new_inode fndecl 5 42039 NULL
161803 +enable_so_rx_hr_cfv_info_42044 rx_hr cfv_info 0 42044 NULL
161804 +enable_so_num_tx_qp_i40e_hw_capabilities_42045 num_tx_qp i40e_hw_capabilities 0 42045 NULL nohasharray
161805 +enable_so_num_tid_range_42045 num tid_range 0 42045 &enable_so_num_tx_qp_i40e_hw_capabilities_42045
161806 +enable_so_PortSCSIID__MSG_PORT_FACTS_REPLY_42048 PortSCSIID _MSG_PORT_FACTS_REPLY 0 42048 NULL
161807 +enable_so_regmap_multi_reg_write_fndecl_42049 regmap_multi_reg_write fndecl 3 42049 NULL
161808 +enable_so_sel_write_load_fndecl_42053 sel_write_load fndecl 3 42053 NULL
161809 +enable_so_kvm_init_fndecl_42057 kvm_init fndecl 2-3 42057 NULL nohasharray
161810 +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
161811 +enable_so_fat_add_new_entries_fndecl_42062 fat_add_new_entries fndecl 0 42062 NULL
161812 +enable_so_blk_limits_io_min_fndecl_42065 blk_limits_io_min fndecl 2 42065 NULL nohasharray
161813 +enable_so_b_flags_ivtv_buffer_42065 b_flags ivtv_buffer 0 42065 &enable_so_blk_limits_io_min_fndecl_42065
161814 +enable_so_frag_size_ipv6_pinfo_42073 frag_size ipv6_pinfo 0 42073 NULL
161815 +enable_so_nci_hci_send_event_fndecl_42074 nci_hci_send_event fndecl 5 42074 NULL
161816 +enable_so_ieee80211_scan_results_fndecl_42078 ieee80211_scan_results fndecl 0 42078 NULL
161817 +enable_so_mlx4_ib_rereg_user_mr_fndecl_42079 mlx4_ib_rereg_user_mr fndecl 3-4 42079 NULL nohasharray
161818 +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
161819 +enable_so_i2c_bus_vardecl_i2c_kempld_c_42082 i2c_bus vardecl_i2c-kempld.c 0 42082 NULL
161820 +enable_so_raw_issuer_size_x509_certificate_42091 raw_issuer_size x509_certificate 0 42091 NULL
161821 +enable_so_read_page_owner_fndecl_42094 read_page_owner fndecl 3 42094 NULL
161822 +enable_so_outsize_cros_ec_command_42095 outsize cros_ec_command 0 42095 NULL
161823 +enable_so_do_syslog_fndecl_42100 do_syslog fndecl 3 42100 NULL
161824 +enable_so_gtt_size_radeon_mc_42102 gtt_size radeon_mc 0 42102 NULL nohasharray
161825 +enable_so_proc_pid_attr_write_fndecl_42102 proc_pid_attr_write fndecl 3 42102 &enable_so_gtt_size_radeon_mc_42102
161826 +enable_so_value_xen_hvm_param_42103 value xen_hvm_param 0 42103 NULL
161827 +enable_so_image_offset_sd_42111 image_offset sd 0 42111 NULL
161828 +enable_so_efs_bmap_fndecl_42112 efs_bmap fndecl 0-2 42112 NULL
161829 +enable_so_jbd2_journal_init_dev_fndecl_42115 jbd2_journal_init_dev fndecl 5-3 42115 NULL
161830 +enable_so_ceph_tcp_sendmsg_fndecl_42116 ceph_tcp_sendmsg fndecl 0-4-3 42116 NULL
161831 +enable_so_xhci_alloc_stream_info_fndecl_42125 xhci_alloc_stream_info fndecl 3 42125 NULL
161832 +enable_so_divas_write_fndecl_42126 divas_write fndecl 3 42126 NULL
161833 +enable_so_smb2_sync_write_fndecl_42139 smb2_sync_write fndecl 6 42139 NULL
161834 +enable_so_snd_compr_write_fndecl_42144 snd_compr_write fndecl 3 42144 NULL
161835 +enable_so_uvc_alloc_urb_buffers_fndecl_42145 uvc_alloc_urb_buffers fndecl 0-3-2 42145 NULL
161836 +enable_so_num_cliprects_drm_i915_gem_execbuffer2_42146 num_cliprects drm_i915_gem_execbuffer2 0 42146 NULL
161837 +enable_so_ath6kl_wmi_set_lpreamble_cmd_fndecl_42153 ath6kl_wmi_set_lpreamble_cmd fndecl 2 42153 NULL
161838 +enable_so_channels_audioformat_42156 channels audioformat 0 42156 NULL nohasharray
161839 +enable_so_cnic_support_bnx2x_42156 cnic_support bnx2x 0 42156 &enable_so_channels_audioformat_42156
161840 +enable_so_status_de4x5_desc_42161 status de4x5_desc 0 42161 NULL
161841 +enable_so_height_em28xx_v4l2_42166 height em28xx_v4l2 0 42166 NULL
161842 +enable_so_s_root_block_reiserfs_super_block_v1_42167 s_root_block reiserfs_super_block_v1 0 42167 NULL
161843 +enable_so_copy_from_iter_nocache_fndecl_42168 copy_from_iter_nocache fndecl 2 42168 NULL
161844 +enable_so_next_bucket_prio_set_42171 next_bucket prio_set 0 42171 NULL
161845 +enable_so_start_file_extent_cluster_42173 start file_extent_cluster 0 42173 NULL
161846 +enable_so_block_size_msb_data_42179 block_size msb_data 0 42179 NULL
161847 +enable_so_id_sh_mobile_ceu_companion_42182 id sh_mobile_ceu_companion 0 42182 NULL
161848 +enable_so_stv0367_writeregs_fndecl_42183 stv0367_writeregs fndecl 4 42183 NULL
161849 +enable_so_s2255_fillbuff_fndecl_42189 s2255_fillbuff fndecl 3 42189 NULL
161850 +enable_so___team_options_register_fndecl_42198 __team_options_register fndecl 3 42198 NULL
161851 +enable_so_mc_handle_present_pte_fndecl_42199 mc_handle_present_pte fndecl 2 42199 NULL nohasharray
161852 +enable_so_afs_send_simple_reply_fndecl_42199 afs_send_simple_reply fndecl 3 42199 &enable_so_mc_handle_present_pte_fndecl_42199
161853 +enable_so_udl_alloc_urb_list_fndecl_42203 udl_alloc_urb_list fndecl 3 42203 NULL
161854 +enable_so_rec_len_ext3_dir_entry_2_42207 rec_len ext3_dir_entry_2 0 42207 NULL
161855 +enable_so_construct_key_and_link_fndecl_42210 construct_key_and_link fndecl 3 42210 NULL
161856 +enable_so_skb_push_fndecl_42213 skb_push fndecl 2 42213 NULL
161857 +enable_so_scan_padding_bytes_fndecl_42218 scan_padding_bytes fndecl 0 42218 NULL
161858 +enable_so_set_bredr_fndecl_42228 set_bredr fndecl 4 42228 NULL nohasharray
161859 +enable_so_diva_xdi_write_fndecl_42228 diva_xdi_write fndecl 4 42228 &enable_so_set_bredr_fndecl_42228
161860 +enable_so_dwMaxVideoFrameBufferSize_uvc_frame_42230 dwMaxVideoFrameBufferSize uvc_frame 0 42230 NULL
161861 +enable_so_num_q_vectors_igb_adapter_42232 num_q_vectors igb_adapter 0 42232 NULL
161862 +enable_so_chunksize_mdp_superblock_1_42236 chunksize mdp_superblock_1 0 42236 NULL nohasharray
161863 +enable_so_max_data_size_irda_sock_42236 max_data_size irda_sock 0 42236 &enable_so_chunksize_mdp_superblock_1_42236
161864 +enable_so_scrollback_phys_max_vardecl_fbcon_c_42241 scrollback_phys_max vardecl_fbcon.c 0 42241 NULL
161865 +enable_so_buf_write_ptr_comedi_async_42247 buf_write_ptr comedi_async 0 42247 NULL
161866 +enable_so_nchunks_radeon_cs_parser_42251 nchunks radeon_cs_parser 0 42251 NULL
161867 +enable_so_iwl_dbgfs_bcast_filters_read_fndecl_42258 iwl_dbgfs_bcast_filters_read fndecl 3 42258 NULL
161868 +enable_so_read_kcore_fndecl_42259 read_kcore fndecl 3 42259 NULL
161869 +enable_so_snd_pcm_plug_write_transfer_fndecl_42268 snd_pcm_plug_write_transfer fndecl 3-0 42268 NULL
161870 +enable_so_sge_length_qib_sge_42274 sge_length qib_sge 0 42274 NULL
161871 +enable_so_write_file_spectral_period_fndecl_42275 write_file_spectral_period fndecl 3 42275 NULL
161872 +enable_so_if_sdio_read_scratch_fndecl_42279 if_sdio_read_scratch fndecl 0 42279 NULL
161873 +enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280 cfg_sriov_nr_virtfn lpfc_hba 0 42280 NULL nohasharray
161874 +enable_so_rx_pending_ethtool_ringparam_42280 rx_pending ethtool_ringparam 0 42280 &enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280
161875 +enable_so_append_to_buffer_fndecl_42285 append_to_buffer fndecl 3 42285 NULL
161876 +enable_so_reiserfs_xattr_set_handle_fndecl_42289 reiserfs_xattr_set_handle fndecl 5 42289 NULL
161877 +enable_so_efx_mcdi_rpc_async_fndecl_42298 efx_mcdi_rpc_async fndecl 4-5 42298 NULL
161878 +enable_so_generic_cont_expand_simple_fndecl_42301 generic_cont_expand_simple fndecl 2 42301 NULL nohasharray
161879 +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
161880 +enable_so_dcache_dir_lseek_fndecl_42308 dcache_dir_lseek fndecl 2 42308 NULL nohasharray
161881 +enable_so_iwch_reg_user_mr_fndecl_42308 iwch_reg_user_mr fndecl 2-3 42308 &enable_so_dcache_dir_lseek_fndecl_42308
161882 +enable_so_deh_offset_reiserfs_de_head_42314 deh_offset reiserfs_de_head 0 42314 NULL nohasharray
161883 +enable_so_rproc_alloc_fndecl_42314 rproc_alloc fndecl 5 42314 &enable_so_deh_offset_reiserfs_de_head_42314
161884 +enable_so_kvm_write_guest_page_fndecl_42320 kvm_write_guest_page fndecl 2-5 42320 NULL nohasharray
161885 +enable_so_pg_test_nfs_pageio_ops_42320 pg_test nfs_pageio_ops 0 42320 &enable_so_kvm_write_guest_page_fndecl_42320 nohasharray
161886 +enable_so_dbg_leb_write_fndecl_42320 dbg_leb_write fndecl 5-4 42320 &enable_so_pg_test_nfs_pageio_ops_42320
161887 +enable_so_gsi_base_mp_ioapic_gsi_42330 gsi_base mp_ioapic_gsi 0 42330 NULL
161888 +enable_so_mlx4_ib_alloc_cq_buf_fndecl_42345 mlx4_ib_alloc_cq_buf fndecl 3 42345 NULL
161889 +enable_so_fw_xcb_count_qla_hw_data_42354 fw_xcb_count qla_hw_data 0 42354 NULL
161890 +enable_so_nftl_readblock_fndecl_42358 nftl_readblock fndecl 2 42358 NULL
161891 +enable_so_minor_mei_device_42366 minor mei_device 0 42366 NULL
161892 +enable_so_inbufBitCount_bunzip_data_42367 inbufBitCount bunzip_data 0 42367 NULL
161893 +enable_so_symbol_build_supp_rates_fndecl_42369 symbol_build_supp_rates fndecl 0 42369 NULL
161894 +enable_so_acc_len_rcv_sli3_42370 acc_len rcv_sli3 0 42370 NULL
161895 +enable_so_devpts_pty_new_fndecl_42373 devpts_pty_new fndecl 3 42373 NULL
161896 +enable_so_hid_report_len_fndecl_42374 hid_report_len fndecl 0 42374 NULL
161897 +enable_so_ext4_ext_get_access_fndecl_42377 ext4_ext_get_access fndecl 0 42377 NULL nohasharray
161898 +enable_so_salt_size_dm_verity_42377 salt_size dm_verity 0 42377 &enable_so_ext4_ext_get_access_fndecl_42377
161899 +enable_so_mlx5_wq_ll_get_size_fndecl_42379 mlx5_wq_ll_get_size fndecl 0 42379 NULL
161900 +enable_so_placement_offset_bnx2x_agg_info_42380 placement_offset bnx2x_agg_info 0 42380 NULL
161901 +enable_so___spi_validate_fndecl_42385 __spi_validate fndecl 0 42385 NULL
161902 +enable_so_remote_payload_max_nfc_digital_dev_42391 remote_payload_max nfc_digital_dev 0 42391 NULL
161903 +enable_so_no_of_vpath_vxgedev_42396 no_of_vpath vxgedev 0 42396 NULL
161904 +enable_so_module_alloc_fndecl_42397 module_alloc fndecl 1 42397 NULL
161905 +enable_so_prof_len_vardecl_profile_c_42405 prof_len vardecl_profile.c 0 42405 NULL
161906 +enable_so_maximum_v4l2_ctrl_42407 maximum v4l2_ctrl 0 42407 NULL
161907 +enable_so_dma_rxsize_vardecl_stmmac_main_c_42409 dma_rxsize vardecl_stmmac_main.c 0 42409 NULL
161908 +enable_so_vbi_read_fndecl_42410 vbi_read fndecl 3 42410 NULL
161909 +enable_so_length_mei_msg_hdr_42413 length mei_msg_hdr 0 42413 NULL
161910 +enable_so_ext2_xattr_security_set_fndecl_42417 ext2_xattr_security_set fndecl 4 42417 NULL
161911 +enable_so_defrag_lookup_extent_fndecl_42423 defrag_lookup_extent fndecl 2 42423 NULL
161912 +enable_so_hidraw_ioctl_fndecl_42425 hidraw_ioctl fndecl 2 42425 NULL
161913 +enable_so_bin_search_fndecl_42434 bin_search fndecl 0 42434 NULL
161914 +enable_so_write_file_spectral_fft_period_fndecl_42435 write_file_spectral_fft_period fndecl 3 42435 NULL
161915 +enable_so_s_sys_blocksize_omfs_sb_info_42439 s_sys_blocksize omfs_sb_info 0 42439 NULL
161916 +enable_so_rx_ring_size_jme_adapter_42440 rx_ring_size jme_adapter 0 42440 NULL
161917 +enable_so_read_segment_descriptor_fndecl_42449 read_segment_descriptor fndecl 2 42449 NULL
161918 +enable_so_max_srqs_mthca_dev_lim_42450 max_srqs mthca_dev_lim 0 42450 NULL nohasharray
161919 +enable_so_buffer_chain_size_fndecl_42450 buffer_chain_size fndecl 0 42450 &enable_so_max_srqs_mthca_dev_lim_42450
161920 +enable_so_rx_size_uart_8250_dma_42452 rx_size uart_8250_dma 0 42452 NULL nohasharray
161921 +enable_so_read_b43legacy_debugfs_fops_42452 read b43legacy_debugfs_fops 0 42452 &enable_so_rx_size_uart_8250_dma_42452
161922 +enable_so_inquiry_cache_dump_fndecl_42455 inquiry_cache_dump fndecl 0 42455 NULL
161923 +enable_so_s_cssize_ufs_sb_private_info_42456 s_cssize ufs_sb_private_info 0 42456 NULL
161924 +enable_so_num_srqs_mlx4_caps_42462 num_srqs mlx4_caps 0 42462 NULL
161925 +enable_so_rxq_max_tg3_42464 rxq_max tg3 0 42464 NULL
161926 +enable_so_amdgpu_vm_block_size_vardecl_42475 amdgpu_vm_block_size vardecl 0 42475 NULL nohasharray
161927 +enable_so_ext4_get_journal_fndecl_42475 ext4_get_journal fndecl 2 42475 &enable_so_amdgpu_vm_block_size_vardecl_42475
161928 +enable_so_wm9081_set_fll_fndecl_42479 wm9081_set_fll fndecl 3-4 42479 NULL
161929 +enable_so_num_adc_nids_hda_gen_spec_42481 num_adc_nids hda_gen_spec 0 42481 NULL nohasharray
161930 +enable_so_max_allowed_qxl_monitors_config_42481 max_allowed qxl_monitors_config 0 42481 &enable_so_num_adc_nids_hda_gen_spec_42481
161931 +enable_so_snd_vxpocket_new_fndecl_42483 snd_vxpocket_new fndecl 2 42483 NULL
161932 +enable_so_block_shift_befs_sb_info_42485 block_shift befs_sb_info 0 42485 NULL
161933 +enable_so_tot_len_pkt_gl_42487 tot_len pkt_gl 0 42487 NULL
161934 +enable_so_hid_sensor_client_cnt_sensor_hub_data_42488 hid_sensor_client_cnt sensor_hub_data 0 42488 NULL
161935 +enable_so_keylength_gss_krb5_enctype_42493 keylength gss_krb5_enctype 0 42493 NULL
161936 +enable_so_hsi_alloc_msg_fndecl_42496 hsi_alloc_msg fndecl 1 42496 NULL
161937 +enable_so_bpf_check_classic_fndecl_42501 bpf_check_classic fndecl 2 42501 NULL
161938 +enable_so_DataTransferLength_DAC960_V1_UserCommand_42502 DataTransferLength DAC960_V1_UserCommand 0 42502 NULL
161939 +enable_so_ath6kl_sdio_read_write_sync_fndecl_42504 ath6kl_sdio_read_write_sync fndecl 4 42504 NULL
161940 +enable_so_fs_start_efs_sb_info_42506 fs_start efs_sb_info 0 42506 NULL
161941 +enable_so_dec_cluster_info_page_fndecl_42521 dec_cluster_info_page fndecl 3 42521 NULL
161942 +enable_so_xfs_rtmodify_summary_fndecl_42522 xfs_rtmodify_summary fndecl 4-3 42522 NULL
161943 +enable_so_cn_netlink_send_mult_fndecl_42523 cn_netlink_send_mult fndecl 2 42523 NULL
161944 +enable_so_maxframe_size_fc_rport_priv_42527 maxframe_size fc_rport_priv 0 42527 NULL
161945 +enable_so_error_error_bar_retry_read_fndecl_42530 error_error_bar_retry_read fndecl 3 42530 NULL
161946 +enable_so_size_rx_desc_42538 size rx_desc 0 42538 NULL
161947 +enable_so_max_payload_len_pn533_frame_ops_42544 max_payload_len pn533_frame_ops 0 42544 NULL nohasharray
161948 +enable_so_info_debugfs_read_fndecl_42544 info_debugfs_read fndecl 3 42544 &enable_so_max_payload_len_pn533_frame_ops_42544
161949 +enable_so_num_reg_channel_bounds_42546 num reg_channel_bounds 0 42546 NULL
161950 +enable_so_xfs_dir_cilookup_result_fndecl_42547 xfs_dir_cilookup_result fndecl 3 42547 NULL
161951 +enable_so_mr_page_size_srp_device_42550 mr_page_size srp_device 0 42550 NULL
161952 +enable_so_ocfs2_block_check_validate_bhs_fndecl_42557 ocfs2_block_check_validate_bhs fndecl 0 42557 NULL
161953 +enable_so_qla8044_write_optrom_data_fndecl_42561 qla8044_write_optrom_data fndecl 4 42561 NULL
161954 +enable_so_mtu_max_vardecl_42563 mtu_max vardecl 0 42563 NULL nohasharray
161955 +enable_so_ts_write_fndecl_42563 ts_write fndecl 3 42563 &enable_so_mtu_max_vardecl_42563
161956 +enable_so_s_block_base_sysv_sb_info_42564 s_block_base sysv_sb_info 0 42564 NULL nohasharray
161957 +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
161958 +enable_so_qib_map_phys_fmr_fndecl_42564 qib_map_phys_fmr fndecl 4 42564 &enable_so_do_write_orph_node_fndecl_42564
161959 +enable_so_usbtmc_write_fndecl_42567 usbtmc_write fndecl 3 42567 NULL
161960 +enable_so_mwifiex_send_addba_fndecl_42572 mwifiex_send_addba fndecl 2 42572 NULL
161961 +enable_so_ufs_read_cylinder_fndecl_42577 ufs_read_cylinder fndecl 2 42577 NULL
161962 +enable_so_max_target_id_mvumi_hba_42578 max_target_id mvumi_hba 0 42578 NULL
161963 +enable_so_irq_create_of_mapping_fndecl_42583 irq_create_of_mapping fndecl 0 42583 NULL
161964 +enable_so_tipc_send_packet_fndecl_42584 tipc_send_packet fndecl 3 42584 NULL
161965 +enable_so_sisusbcon_clear_fndecl_42586 sisusbcon_clear fndecl 5-3-4 42586 NULL
161966 +enable_so_map_region_fndecl_42587 map_region fndecl 1 42587 NULL
161967 +enable_so_bcm3510_readbytes_fndecl_42592 bcm3510_readbytes fndecl 4 42592 NULL
161968 +enable_so_name_len_jffs2_xattr_datum_42593 name_len jffs2_xattr_datum 0 42593 NULL
161969 +enable_so_offset_dmi_ipmi_data_42594 offset dmi_ipmi_data 0 42594 NULL nohasharray
161970 +enable_so_cdc_ncm_set_dgram_size_fndecl_42594 cdc_ncm_set_dgram_size fndecl 2 42594 &enable_so_offset_dmi_ipmi_data_42594
161971 +enable_so_bsize_nfs_parsed_mount_data_42598 bsize nfs_parsed_mount_data 0 42598 NULL
161972 +enable_so_wrap_bcma_device_42599 wrap bcma_device 0 42599 NULL nohasharray
161973 +enable_so_reg_create_fndecl_42599 reg_create fndecl 5 42599 &enable_so_wrap_bcma_device_42599
161974 +enable_so_maxSenseBytes_mpt_ioctl_command_42600 maxSenseBytes mpt_ioctl_command 0 42600 NULL
161975 +enable_so_ilo_write_fndecl_42601 ilo_write fndecl 3 42601 NULL nohasharray
161976 +enable_so_ndev_init_isr_fndecl_42601 ndev_init_isr fndecl 3 42601 &enable_so_ilo_write_fndecl_42601
161977 +enable_so_next_rs_il3945_rate_info_42604 next_rs il3945_rate_info 0 42604 NULL nohasharray
161978 +enable_so_nilfs_alloc_seg_bio_fndecl_42604 nilfs_alloc_seg_bio fndecl 2-3 42604 &enable_so_next_rs_il3945_rate_info_42604
161979 +enable_so_qlcnic_82xx_calculate_msix_vector_fndecl_42609 qlcnic_82xx_calculate_msix_vector fndecl 0 42609 NULL
161980 +enable_so_n_channels_wmi_start_scan_arg_42610 n_channels wmi_start_scan_arg 0 42610 NULL
161981 +enable_so_hashsize_Qdisc_class_hash_42616 hashsize Qdisc_class_hash 0 42616 NULL
161982 +enable_so_size_ck804xrom_window_42617 size ck804xrom_window 0 42617 NULL
161983 +enable_so_HFP_kyrofb_info_42618 HFP kyrofb_info 0 42618 NULL
161984 +enable_so_user_regset_copyin_fndecl_42619 user_regset_copyin fndecl 7 42619 NULL
161985 +enable_so_wlc_phy_loadsampletable_nphy_fndecl_42620 wlc_phy_loadsampletable_nphy fndecl 3 42620 NULL
161986 +enable_so_opt_len_genevehdr_42621 opt_len genevehdr 0 42621 NULL
161987 +enable_so_nfs42_proc_deallocate_fndecl_42622 nfs42_proc_deallocate fndecl 2-3 42622 NULL
161988 +enable_so_ir_lirc_transmit_ir_fndecl_42624 ir_lirc_transmit_ir fndecl 3 42624 NULL
161989 +enable_so_length_bplus_leaf_node_42626 length bplus_leaf_node 0 42626 NULL
161990 +enable_so_rx_hdr_overflow_read_fndecl_42628 rx_hdr_overflow_read fndecl 3 42628 NULL
161991 +enable_so_pidlist_allocate_fndecl_42631 pidlist_allocate fndecl 1 42631 NULL
161992 +enable_so_dm_set_device_limits_fndecl_42632 dm_set_device_limits fndecl 3 42632 NULL
161993 +enable_so_lbs_cmd_async_fndecl_42634 lbs_cmd_async fndecl 4 42634 NULL
161994 +enable_so_valid_ide_tape_obj_42635 valid ide_tape_obj 0 42635 NULL
161995 +enable_so_find_rsb_dir_fndecl_42636 find_rsb_dir fndecl 3 42636 NULL
161996 +enable_so_snd_emu10k1_create_fndecl_42637 snd_emu10k1_create fndecl 5 42637 NULL nohasharray
161997 +enable_so_n_algs_wmfw_adsp2_id_hdr_42637 n_algs wmfw_adsp2_id_hdr 0 42637 &enable_so_snd_emu10k1_create_fndecl_42637
161998 +enable_so_brcmf_sdio_download_nvram_fndecl_42648 brcmf_sdio_download_nvram fndecl 3 42648 NULL
161999 +enable_so_fuse_getxattr_fndecl_42649 fuse_getxattr fndecl 4 42649 NULL
162000 +enable_so___kfifo_dma_out_finish_r_fndecl_42656 __kfifo_dma_out_finish_r fndecl 2 42656 NULL
162001 +enable_so_jffs2_scan_dirty_space_fndecl_42666 jffs2_scan_dirty_space fndecl 3 42666 NULL
162002 +enable_so_vOver_plus_panel_info_42670 vOver_plus panel_info 0 42670 NULL
162003 +enable_so_keyctl_get_security_fndecl_42673 keyctl_get_security fndecl 3 42673 NULL
162004 +enable_so_max_probe_length_iwl_ucode_capabilities_42674 max_probe_length iwl_ucode_capabilities 0 42674 NULL
162005 +enable_so_mxm_shadow_rom_fetch_fndecl_42681 mxm_shadow_rom_fetch fndecl 4 42681 NULL
162006 +enable_so_num_rx_bds_bcm_sysport_priv_42683 num_rx_bds bcm_sysport_priv 0 42683 NULL
162007 +enable_so_ext4_trim_extent_fndecl_42684 ext4_trim_extent fndecl 0-4-2-3 42684 NULL nohasharray
162008 +enable_so_n_sections_pefile_context_42684 n_sections pefile_context 0 42684 &enable_so_ext4_trim_extent_fndecl_42684 nohasharray
162009 +enable_so_read_file_spectral_short_repeat_fndecl_42684 read_file_spectral_short_repeat fndecl 3 42684 &enable_so_n_sections_pefile_context_42684
162010 +enable_so_oom_adj_write_fndecl_42687 oom_adj_write fndecl 3 42687 NULL
162011 +enable_so_ccp_update_sg_workarea_fndecl_42688 ccp_update_sg_workarea fndecl 2 42688 NULL
162012 +enable_so_BufferLength_respQ_e_42691 BufferLength respQ_e 0 42691 NULL
162013 +enable_so_data_size_dm_ioctl_42701 data_size dm_ioctl 0 42701 NULL nohasharray
162014 +enable_so_vm_map_ram_fndecl_42701 vm_map_ram fndecl 2 42701 &enable_so_data_size_dm_ioctl_42701
162015 +enable_so_transport_lba_64_ext_fndecl_42705 transport_lba_64_ext fndecl 0 42705 NULL
162016 +enable_so_len_nfs4_layoutdriver_data_42714 len nfs4_layoutdriver_data 0 42714 NULL nohasharray
162017 +enable_so_reordering_tcp_sock_42714 reordering tcp_sock 0 42714 &enable_so_len_nfs4_layoutdriver_data_42714
162018 +enable_so_start_sect_hd_struct_42718 start_sect hd_struct 0 42718 NULL
162019 +enable_so_rcvtidcnt_qib_devdata_42719 rcvtidcnt qib_devdata 0 42719 NULL
162020 +enable_so_clsb_isar_hw_42720 clsb isar_hw 0 42720 NULL
162021 +enable_so_status_full_rx_done_desc_42726 status full_rx_done_desc 0 42726 NULL
162022 +enable_so_tda10071_wr_regs_fndecl_42727 tda10071_wr_regs fndecl 4 42727 NULL
162023 +enable_so_handle_abnormal_pfn_fndecl_42730 handle_abnormal_pfn fndecl 3 42730 NULL
162024 +enable_so_maxbcnt_aoedev_42731 maxbcnt aoedev 0 42731 NULL
162025 +enable_so_irq_domain_alloc_descs_fndecl_42732 irq_domain_alloc_descs fndecl 0 42732 NULL
162026 +enable_so_single_open_size_fndecl_42736 single_open_size fndecl 4 42736 NULL
162027 +enable_so_nilfs_skip_summary_info_fndecl_42739 nilfs_skip_summary_info fndecl 4-5 42739 NULL
162028 +enable_so_head_hid_debug_list_42742 head hid_debug_list 0 42742 NULL
162029 +enable_so_Ha_tvnorm_42743 Ha tvnorm 0 42743 NULL nohasharray
162030 +enable_so_tcp_adjust_pcount_fndecl_42743 tcp_adjust_pcount fndecl 3 42743 &enable_so_Ha_tvnorm_42743
162031 +enable_so_p54_parse_rssical_fndecl_42750 p54_parse_rssical fndecl 3 42750 NULL
162032 +enable_so_SyS_rt_sigpending_fndecl_42753 SyS_rt_sigpending fndecl 2 42753 NULL
162033 +enable_so_unmap_entire_bt_fndecl_42755 unmap_entire_bt fndecl 3 42755 NULL nohasharray
162034 +enable_so_bmc150_accel_fifo_transfer_fndecl_42755 bmc150_accel_fifo_transfer fndecl 3 42755 &enable_so_unmap_entire_bt_fndecl_42755
162035 +enable_so_tcf_csum_skb_nextlayer_fndecl_42762 tcf_csum_skb_nextlayer fndecl 3 42762 NULL
162036 +enable_so_elems_v4l2_ctrl_42763 elems v4l2_ctrl 0 42763 NULL
162037 +enable_so_maxdev_blogic_adapter_42764 maxdev blogic_adapter 0 42764 NULL
162038 +enable_so_dc_block_number_disk_child_42766 dc_block_number disk_child 0 42766 NULL
162039 +enable_so_cmd_idx_rtsx_ucr_42770 cmd_idx rtsx_ucr 0 42770 NULL nohasharray
162040 +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
162041 +enable_so_read_file_frameerrors_fndecl_42770 read_file_frameerrors fndecl 3 42770 &enable_so_ie_len_wmi_start_scan_arg_42770
162042 +enable_so_fw_len_mwifiex_fw_image_42772 fw_len mwifiex_fw_image 0 42772 NULL
162043 +enable_so_skb_size_pxa168_eth_private_42775 skb_size pxa168_eth_private 0 42775 NULL
162044 +enable_so_hsr_get_max_mtu_fndecl_42776 hsr_get_max_mtu fndecl 0 42776 NULL
162045 +enable_so_lov_tgt_size_lov_obd_42782 lov_tgt_size lov_obd 0 42782 NULL
162046 +enable_so_rx_data_length_hso_serial_42783 rx_data_length hso_serial 0 42783 NULL
162047 +enable_so_usbnet_change_mtu_fndecl_42784 usbnet_change_mtu fndecl 2 42784 NULL nohasharray
162048 +enable_so_ssid_len_ath6kl_vif_42784 ssid_len ath6kl_vif 0 42784 &enable_so_usbnet_change_mtu_fndecl_42784 nohasharray
162049 +enable_so_dvb_dmxdev_ts_callback_fndecl_42784 dvb_dmxdev_ts_callback fndecl 2-4 42784 &enable_so_ssid_len_ath6kl_vif_42784
162050 +enable_so_offset_fuse_page_desc_42785 offset fuse_page_desc 0 42785 NULL
162051 +enable_so_memblock_add_region_fndecl_42790 memblock_add_region fndecl 1-2 42790 NULL
162052 +enable_so_xdr_encode_word_fndecl_42802 xdr_encode_word fndecl 2 42802 NULL
162053 +enable_so_SyS_fsetxattr_fndecl_42804 SyS_fsetxattr fndecl 4 42804 NULL
162054 +enable_so_ext4_quota_write_fndecl_42809 ext4_quota_write fndecl 5-4 42809 NULL nohasharray
162055 +enable_so_len_il3945_rx_frame_hdr_42809 len il3945_rx_frame_hdr 0 42809 &enable_so_ext4_quota_write_fndecl_42809
162056 +enable_so_nl80211_send_rx_assoc_fndecl_42811 nl80211_send_rx_assoc fndecl 4 42811 NULL
162057 +enable_so_usb_hcd_unlink_urb_fndecl_42819 usb_hcd_unlink_urb fndecl 2 42819 NULL
162058 +enable_so_sl_realloc_bufs_fndecl_42821 sl_realloc_bufs fndecl 2 42821 NULL
162059 +enable_so_m_agino_log_xfs_mount_42823 m_agino_log xfs_mount 0 42823 NULL
162060 +enable_so_lbs_highrssi_read_fndecl_42826 lbs_highrssi_read fndecl 3 42826 NULL
162061 +enable_so_clear_update_marker_fndecl_42827 clear_update_marker fndecl 3 42827 NULL
162062 +enable_so_ezusb_program_bytes_fndecl_42828 ezusb_program_bytes fndecl 4 42828 NULL
162063 +enable_so_dev_addr_fsl_edma_slave_config_42835 dev_addr fsl_edma_slave_config 0 42835 NULL
162064 +enable_so_pcifront_bus_write_fndecl_42836 pcifront_bus_write fndecl 5 42836 NULL
162065 +enable_so_decompress_compressor_42840 decompress compressor 0 42840 NULL
162066 +enable_so_memory_block_size_bytes_fndecl_42846 memory_block_size_bytes fndecl 0 42846 NULL
162067 +enable_so_old_oblock_dm_cache_migration_42847 old_oblock dm_cache_migration 0 42847 NULL
162068 +enable_so_int_in_endpointAddr_usb_yurex_42850 int_in_endpointAddr usb_yurex 0 42850 NULL
162069 +enable_so_rdma_addr_size_fndecl_42855 rdma_addr_size fndecl 0 42855 NULL
162070 +enable_so_vxlan_remcsum_fndecl_42858 vxlan_remcsum fndecl 4-3 42858 NULL
162071 +enable_so_ext4_prepare_inline_data_fndecl_42863 ext4_prepare_inline_data fndecl 3 42863 NULL nohasharray
162072 +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
162073 +enable_so_SyS_set_mempolicy_fndecl_42867 SyS_set_mempolicy fndecl 3 42867 NULL
162074 +enable_so_mmio_start_vmw_private_42869 mmio_start vmw_private 0 42869 NULL
162075 +enable_so_register_memory_resource_fndecl_42873 register_memory_resource fndecl 2-1 42873 NULL
162076 +enable_so_dlfb_ops_write_fndecl_42885 dlfb_ops_write fndecl 3 42885 NULL
162077 +enable_so_number_of_tds_fndecl_42895 number_of_tds fndecl 0 42895 NULL
162078 +enable_so_init_bch_fndecl_42897 init_bch fndecl 1-2 42897 NULL
162079 +enable_so_ql2xmaxqdepth_vardecl_qla_os_c_42899 ql2xmaxqdepth vardecl_qla_os.c 0 42899 NULL
162080 +enable_so_memblock_find_in_range_node_fndecl_42905 memblock_find_in_range_node fndecl 0-2-1-3-4 42905 NULL
162081 +enable_so_name_length_spar_controlvm_parameters_header_42909 name_length spar_controlvm_parameters_header 0 42909 NULL
162082 +enable_so_vd_vblocknr_nilfs_vdesc_42910 vd_vblocknr nilfs_vdesc 0 42910 NULL
162083 +enable_so_rts51x_bulk_transport_fndecl_42911 rts51x_bulk_transport fndecl 6 42911 NULL
162084 +enable_so_length_drm_property_blob_42912 length drm_property_blob 0 42912 NULL
162085 +enable_so_do_command_extended_fndecl_42913 do_command_extended fndecl 0 42913 NULL
162086 +enable_so_clkin_adf4350_state_42914 clkin adf4350_state 0 42914 NULL
162087 +enable_so_wMaxInputLength_i2c_hid_desc_42932 wMaxInputLength i2c_hid_desc 0 42932 NULL
162088 +enable_so_bnx2x_vf_mcast_fndecl_42933 bnx2x_vf_mcast fndecl 4 42933 NULL
162089 +enable_so_max_mad_size_ib_port_immutable_42934 max_mad_size ib_port_immutable 0 42934 NULL
162090 +enable_so_nblocks_nvme_user_io_42935 nblocks nvme_user_io 0 42935 NULL
162091 +enable_so_mc_vram_size_radeon_mc_42937 mc_vram_size radeon_mc 0 42937 NULL
162092 +enable_so_spi_bpw_vardecl_ifx6x60_c_42939 spi_bpw vardecl_ifx6x60.c 0 42939 NULL
162093 +enable_so_length__SCADESC_42942 length _SCADESC 0 42942 NULL
162094 +enable_so_rate_n_flags_iwl_mvm_tid_data_42946 rate_n_flags iwl_mvm_tid_data 0 42946 NULL
162095 +enable_so_hippi_change_mtu_fndecl_42953 hippi_change_mtu fndecl 2 42953 NULL
162096 +enable_so_vb2_dc_get_userptr_fndecl_42957 vb2_dc_get_userptr fndecl 2-3 42957 NULL
162097 +enable_so_brcmf_usb_tx_ctlpkt_fndecl_42958 brcmf_usb_tx_ctlpkt fndecl 3 42958 NULL
162098 +enable_so_kernfs_iop_setxattr_fndecl_42959 kernfs_iop_setxattr fndecl 4 42959 NULL
162099 +enable_so_gpio_count_async_state_42965 gpio_count async_state 0 42965 NULL nohasharray
162100 +enable_so_udf_get_block_fndecl_42965 udf_get_block fndecl 2 42965 &enable_so_gpio_count_async_state_42965
162101 +enable_so___pskb_copy_fclone_fndecl_42969 __pskb_copy_fclone fndecl 2 42969 NULL
162102 +enable_so_shadow_rd32_fndecl_42974 shadow_rd32 fndecl 2 42974 NULL
162103 +enable_so_periods_max_snd_pcm_hardware_42979 periods_max snd_pcm_hardware 0 42979 NULL
162104 +enable_so_brcmf_sdiod_send_buf_fndecl_42982 brcmf_sdiod_send_buf fndecl 3 42982 NULL
162105 +enable_so_max_pfn_amdgpu_vm_manager_42989 max_pfn amdgpu_vm_manager 0 42989 NULL
162106 +enable_so_len_kvaser_msg_42994 len kvaser_msg 0 42994 NULL
162107 +enable_so_hw_token_fotg210_qh_hw_42995 hw_token fotg210_qh_hw 0 42995 NULL
162108 +enable_so_num_mappings_nd_region_desc_42998 num_mappings nd_region_desc 0 42998 NULL nohasharray
162109 +enable_so_ea_len_fndecl_42998 ea_len fndecl 0 42998 &enable_so_num_mappings_nd_region_desc_42998
162110 +enable_so_buf_size_ivtv_stream_43002 buf_size ivtv_stream 0 43002 NULL
162111 +enable_so_header_len_fndecl_43003 header_len fndecl 0 43003 NULL
162112 +enable_so_drm_mm_insert_helper_fndecl_43005 drm_mm_insert_helper fndecl 3 43005 NULL
162113 +enable_so_btrfs_check_shared_fndecl_43007 btrfs_check_shared fndecl 5 43007 NULL
162114 +enable_so_pkt_size_be_rx_compl_info_43008 pkt_size be_rx_compl_info 0 43008 NULL
162115 +enable_so_ide_inb_fndecl_43010 ide_inb fndecl 0 43010 NULL
162116 +enable_so_len_i2c_msg_43014 len i2c_msg 0 43014 NULL nohasharray
162117 +enable_so_obd_ioctl_popdata_fndecl_43014 obd_ioctl_popdata fndecl 3 43014 &enable_so_len_i2c_msg_43014
162118 +enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 ath6kl_wmi_reconnect_cmd fndecl 2 43017 NULL nohasharray
162119 +enable_so_key_replays_read_fndecl_43017 key_replays_read fndecl 3 43017 &enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 nohasharray
162120 +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
162121 +enable_so_PacketLength__MSG_LAN_RECEIVE_POST_REPLY_43028 PacketLength _MSG_LAN_RECEIVE_POST_REPLY 0 43028 NULL
162122 +enable_so_a_bss_exec_43030 a_bss exec 0 43030 NULL
162123 +enable_so_usHActive__ATOM_DTD_FORMAT_43031 usHActive _ATOM_DTD_FORMAT 0 43031 NULL nohasharray
162124 +enable_so_count_ixgbe_ring_43031 count ixgbe_ring 0 43031 &enable_so_usHActive__ATOM_DTD_FORMAT_43031
162125 +enable_so_ext3_orphan_get_fndecl_43033 ext3_orphan_get fndecl 2 43033 NULL nohasharray
162126 +enable_so_pagl_leftrec_xfs_perag_43033 pagl_leftrec xfs_perag 0 43033 &enable_so_ext3_orphan_get_fndecl_43033
162127 +enable_so_channels_max_snd_usb_substream_43034 channels_max snd_usb_substream 0 43034 NULL
162128 +enable_so_qpc_entry_sz_mthca_dev_lim_43040 qpc_entry_sz mthca_dev_lim 0 43040 NULL
162129 +enable_so_copy_page_to_iter_iovec_fndecl_43041 copy_page_to_iter_iovec fndecl 3 43041 NULL
162130 +enable_so_init_chip_wc_pat_fndecl_43043 init_chip_wc_pat fndecl 2 43043 NULL
162131 +enable_so_stmmac_change_mtu_fndecl_43052 stmmac_change_mtu fndecl 2 43052 NULL
162132 +enable_so_logical_block_size_queue_limits_43053 logical_block_size queue_limits 0 43053 NULL
162133 +enable_so_s_reserved_gdt_blocks_ext4_super_block_43054 s_reserved_gdt_blocks ext4_super_block 0 43054 NULL
162134 +enable_so_mwifiex_rdeeprom_write_fndecl_43057 mwifiex_rdeeprom_write fndecl 3 43057 NULL
162135 +enable_so_inode_number_squashfs_base_inode_43062 inode_number squashfs_base_inode 0 43062 NULL nohasharray
162136 +enable_so_acpi_dev_get_ioresource_fndecl_43062 acpi_dev_get_ioresource fndecl 3-2 43062 &enable_so_inode_number_squashfs_base_inode_43062
162137 +enable_so_len_ib_ucm_rep_43064 len ib_ucm_rep 0 43064 NULL
162138 +enable_so_len_srp_direct_buf_43066 len srp_direct_buf 0 43066 NULL
162139 +enable_so_quirk_simultaneous_discovery_write_fndecl_43076 quirk_simultaneous_discovery_write fndecl 3 43076 NULL
162140 +enable_so_output_buffer_size_vardecl_seq_midi_c_43084 output_buffer_size vardecl_seq_midi.c 0 43084 NULL
162141 +enable_so_bttv_prepare_buffer_fndecl_43088 bttv_prepare_buffer fndecl 6-5 43088 NULL
162142 +enable_so_SyS_sched_getaffinity_fndecl_43089 SyS_sched_getaffinity fndecl 2 43089 NULL
162143 +enable_so_i2c_wr_max_cx24116_config_43094 i2c_wr_max cx24116_config 0 43094 NULL
162144 +enable_so__create_message_fndecl_43096 _create_message fndecl 2 43096 NULL
162145 +enable_so_printf_size_mon_reader_text_43097 printf_size mon_reader_text 0 43097 NULL
162146 +enable_so_hpsa_change_queue_depth_fndecl_43098 hpsa_change_queue_depth fndecl 2 43098 NULL
162147 +enable_so_if_sdio_read_rx_unit_fndecl_43099 if_sdio_read_rx_unit fndecl 0 43099 NULL
162148 +enable_so_sector_badblocks_43102 sector badblocks 0 43102 NULL
162149 +enable_so_cyttsp_i2c_write_block_data_fndecl_43104 cyttsp_i2c_write_block_data fndecl 4 43104 NULL
162150 +enable_so_xlog_recover_add_to_trans_fndecl_43108 xlog_recover_add_to_trans fndecl 4 43108 NULL
162151 +enable_so_bio_get_nr_vecs_fndecl_43109 bio_get_nr_vecs fndecl 0 43109 NULL
162152 +enable_so___rounddown_pow_of_two_fndecl_43111 __rounddown_pow_of_two fndecl 0 43111 NULL
162153 +enable_so_ore_verify_layout_fndecl_43114 ore_verify_layout fndecl 1 43114 NULL nohasharray
162154 +enable_so_valuelen_hi_extended_attribute_43114 valuelen_hi extended_attribute 0 43114 &enable_so_ore_verify_layout_fndecl_43114
162155 +enable_so_range_max_regmap_range_43116 range_max regmap_range 0 43116 NULL
162156 +enable_so_rx_fcs_err_read_fndecl_43119 rx_fcs_err_read fndecl 3 43119 NULL
162157 +enable_so_meta_prod_netrx_pending_operations_43121 meta_prod netrx_pending_operations 0 43121 NULL nohasharray
162158 +enable_so_of_alias_get_id_fndecl_43121 of_alias_get_id fndecl 0 43121 &enable_so_meta_prod_netrx_pending_operations_43121
162159 +enable_so_output_pool_snd_seq_client_pool_43126 output_pool snd_seq_client_pool 0 43126 NULL
162160 +enable_so_fm10k_change_mtu_fndecl_43135 fm10k_change_mtu fndecl 2 43135 NULL
162161 +enable_so_pcf8563_read_block_data_fndecl_43139 pcf8563_read_block_data fndecl 3 43139 NULL
162162 +enable_so_Size_aac_fibhdr_43144 Size aac_fibhdr 0 43144 NULL
162163 +enable_so_btrfs_create_subvol_root_fndecl_43148 btrfs_create_subvol_root fndecl 4 43148 NULL
162164 +enable_so_xfs_rtmodify_range_fndecl_43150 xfs_rtmodify_range fndecl 3 43150 NULL
162165 +enable_so_bblog_offset_mdp_superblock_1_43154 bblog_offset mdp_superblock_1 0 43154 NULL
162166 +enable_so_kvm_vcpu_gfn_to_pfn_fndecl_43158 kvm_vcpu_gfn_to_pfn fndecl 2 43158 NULL
162167 +enable_so___f2fs_setxattr_fndecl_43162 __f2fs_setxattr fndecl 5 43162 NULL
162168 +enable_so_filename_size_ecryptfs_filename_43164 filename_size ecryptfs_filename 0 43164 NULL nohasharray
162169 +enable_so_doc_config_location_vardecl_diskonchip_c_43164 doc_config_location vardecl_diskonchip.c 0 43164 &enable_so_filename_size_ecryptfs_filename_43164
162170 +enable_so_hpi_read_word_fndecl_43165 hpi_read_word fndecl 0 43165 NULL
162171 +enable_so_xlog_bread_noalign_fndecl_43170 xlog_bread_noalign fndecl 2 43170 NULL
162172 +enable_so_byte_count_il_rx_mpdu_res_start_43171 byte_count il_rx_mpdu_res_start 0 43171 NULL
162173 +enable_so_packetizeRx_fndecl_43175 packetizeRx fndecl 3 43175 NULL
162174 +enable_so_getdqbuf_fndecl_43183 getdqbuf fndecl 1 43183 NULL
162175 +enable_so_unxlate_dev_mem_ptr_fndecl_43184 unxlate_dev_mem_ptr fndecl 1 43184 NULL nohasharray
162176 +enable_so_aoechr_write_fndecl_43184 aoechr_write fndecl 3 43184 &enable_so_unxlate_dev_mem_ptr_fndecl_43184
162177 +enable_so_length_ib_mac_iocb_rsp_43186 length ib_mac_iocb_rsp 0 43186 NULL
162178 +enable_so_block_end_dm_cell_key_43191 block_end dm_cell_key 0 43191 NULL
162179 +enable_so_if_spi_host_to_card_fndecl_43193 if_spi_host_to_card fndecl 4 43193 NULL
162180 +enable_so_nilfs_cpfile_block_get_snapshot_list_fndecl_43198 nilfs_cpfile_block_get_snapshot_list fndecl 2 43198 NULL
162181 +enable_so_tidno_ath_atx_tid_43202 tidno ath_atx_tid 0 43202 NULL nohasharray
162182 +enable_so_rx_data_eaten_rxrpc_call_43202 rx_data_eaten rxrpc_call 0 43202 &enable_so_tidno_ath_atx_tid_43202
162183 +enable_so_root_id___prelim_ref_43204 root_id __prelim_ref 0 43204 NULL
162184 +enable_so_dm_bufio_release_move_fndecl_43207 dm_bufio_release_move fndecl 2 43207 NULL
162185 +enable_so_device_id_ipmi_device_id_43213 device_id ipmi_device_id 0 43213 NULL
162186 +enable_so_nr_efi_runtime_map_vardecl_runtime_map_c_43216 nr_efi_runtime_map vardecl_runtime-map.c 0 43216 NULL
162187 +enable_so_ramdisk_size_setup_header_43217 ramdisk_size setup_header 0 43217 NULL nohasharray
162188 +enable_so_try_async_pf_fndecl_43217 try_async_pf fndecl 3 43217 &enable_so_ramdisk_size_setup_header_43217
162189 +enable_so_i2c_add_mux_adapter_fndecl_43222 i2c_add_mux_adapter fndecl 4 43222 NULL
162190 +enable_so_mic_len_ieee80211_cipher_scheme_43227 mic_len ieee80211_cipher_scheme 0 43227 NULL
162191 +enable_so_nvif_object_mthd_fndecl_43235 nvif_object_mthd fndecl 4 43235 NULL
162192 +enable_so_send_write_fndecl_43242 send_write fndecl 2-0 43242 NULL
162193 +enable_so_actual_size_rfd_43243 actual_size rfd 0 43243 NULL
162194 +enable_so_sb_rextents_xfs_sb_43244 sb_rextents xfs_sb 0 43244 NULL
162195 +enable_so_num_vc_iadev_priv_43250 num_vc iadev_priv 0 43250 NULL
162196 +enable_so_agp_create_user_memory_fndecl_43256 agp_create_user_memory fndecl 1 43256 NULL
162197 +enable_so_regspacing_si_sm_io_43277 regspacing si_sm_io 0 43277 NULL
162198 +enable_so_persistent_ram_new_fndecl_43278 persistent_ram_new fndecl 2-1 43278 NULL
162199 +enable_so_tx_modulus_cdc_ncm_ctx_43289 tx_modulus cdc_ncm_ctx 0 43289 NULL
162200 +enable_so_size_oid_t_43292 size oid_t 0 43292 NULL
162201 +enable_so_ip_vs_icmp_xmit_v6_fndecl_43294 ip_vs_icmp_xmit_v6 fndecl 4 43294 NULL
162202 +enable_so_transfer_dma_urb_43305 transfer_dma urb 0 43305 NULL
162203 +enable_so_total_nic_func_qlcnic_hardware_context_43307 total_nic_func qlcnic_hardware_context 0 43307 NULL
162204 +enable_so_rio_request_outb_mbox_fndecl_43309 rio_request_outb_mbox fndecl 3 43309 NULL
162205 +enable_so_add_to_list_fndecl_43311 add_to_list fndecl 5-4 43311 NULL
162206 +enable_so_header_len_gether_43313 header_len gether 0 43313 NULL
162207 +enable_so_smsc9420_rx_handoff_fndecl_43315 smsc9420_rx_handoff fndecl 3 43315 NULL
162208 +enable_so_group_count_ore_layout_43325 group_count ore_layout 0 43325 NULL
162209 +enable_so_qib_refresh_qsfp_cache_fndecl_43328 qib_refresh_qsfp_cache fndecl 0 43328 NULL
162210 +enable_so_lpddr_write_buffers_fndecl_43330 lpddr_write_buffers fndecl 3 43330 NULL
162211 +enable_so_max_packet_bytes_ua101_stream_43333 max_packet_bytes ua101_stream 0 43333 NULL
162212 +enable_so_b_num_l1oip_43336 b_num l1oip 0 43336 NULL
162213 +enable_so_file_size_hpfs_dirent_43338 file_size hpfs_dirent 0 43338 NULL
162214 +enable_so_vactive_videomode_43345 vactive videomode 0 43345 NULL
162215 +enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348 wake_packet_bufsize iwl_wowlan_status_data 0 43348 NULL nohasharray
162216 +enable_so_debugfs_read_fndecl_43348 debugfs_read fndecl 3 43348 &enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348
162217 +enable_so_test_iso_queue_fndecl_43349 test_iso_queue fndecl 5-3 43349 NULL nohasharray
162218 +enable_so___kmalloc_node_track_caller_fndecl_43349 __kmalloc_node_track_caller fndecl 1 43349 &enable_so_test_iso_queue_fndecl_43349
162219 +enable_so_pktsz_fifo_43351 pktsz fifo 0 43351 NULL nohasharray
162220 +enable_so_entry_size_xpc_channel_43351 entry_size xpc_channel 0 43351 &enable_so_pktsz_fifo_43351
162221 +enable_so_header_len_dst_entry_43355 header_len dst_entry 0 43355 NULL nohasharray
162222 +enable_so_get_module_load_offset_fndecl_43355 get_module_load_offset fndecl 0 43355 &enable_so_header_len_dst_entry_43355
162223 +enable_so_inftl_write_fndecl_43357 inftl_write fndecl 2 43357 NULL
162224 +enable_so_bulk_out_endpoint_edgeport_serial_43358 bulk_out_endpoint edgeport_serial 0 43358 NULL
162225 +enable_so_get_subdir_fndecl_43366 get_subdir fndecl 3 43366 NULL
162226 +enable_so_compat_SyS_rt_sigpending_fndecl_43367 compat_SyS_rt_sigpending fndecl 2 43367 NULL
162227 +enable_so_port_count_rocker_43373 port_count rocker 0 43373 NULL
162228 +enable_so_snd_usb_endpoint_next_packet_size_fndecl_43377 snd_usb_endpoint_next_packet_size fndecl 0 43377 NULL
162229 +enable_so_dtcs033_pkt_scan_fndecl_43381 dtcs033_pkt_scan fndecl 3 43381 NULL nohasharray
162230 +enable_so_lines_nvkm_gpio_impl_43381 lines nvkm_gpio_impl 0 43381 &enable_so_dtcs033_pkt_scan_fndecl_43381
162231 +enable_so_tci_Vmxnet3_RxCompDesc_43383 tci Vmxnet3_RxCompDesc 0 43383 NULL
162232 +enable_so_sca_detect_ram_fndecl_43387 sca_detect_ram fndecl 0 43387 NULL
162233 +enable_so_x509_note_signature_fndecl_43388 x509_note_signature fndecl 5 43388 NULL
162234 +enable_so_xfrm_user_policy_fndecl_43390 xfrm_user_policy fndecl 4 43390 NULL
162235 +enable_so_lpt_spc_bits_ubifs_info_43392 lpt_spc_bits ubifs_info 0 43392 NULL
162236 +enable_so_offset_isert_data_buf_43395 offset isert_data_buf 0 43395 NULL
162237 +enable_so_id_via_isa_bridge_43399 id via_isa_bridge 0 43399 NULL
162238 +enable_so_base_nr_i2c_mux_gpio_platform_data_43400 base_nr i2c_mux_gpio_platform_data 0 43400 NULL
162239 +enable_so_depth_saa7146_format_43402 depth saa7146_format 0 43402 NULL
162240 +enable_so_teql_master_mtu_fndecl_43403 teql_master_mtu fndecl 2 43403 NULL
162241 +enable_so_i2c_readbytes_fndecl_43409 i2c_readbytes fndecl 4 43409 NULL
162242 +enable_so_init_range_memory_mapping_fndecl_43414 init_range_memory_mapping fndecl 1-2 43414 NULL
162243 +enable_so_gss_wrap_kerberos_v1_fndecl_43417 gss_wrap_kerberos_v1 fndecl 2 43417 NULL nohasharray
162244 +enable_so_packet_alloc_skb_fndecl_43417 packet_alloc_skb fndecl 5-4-3 43417 &enable_so_gss_wrap_kerberos_v1_fndecl_43417
162245 +enable_so_pof_write_open_fndecl_43418 pof_write_open fndecl 0 43418 NULL
162246 +enable_so_tegra_spi_start_dma_based_transfer_fndecl_43421 tegra_spi_start_dma_based_transfer fndecl 0 43421 NULL
162247 +enable_so_prism2_send_mgmt_fndecl_43422 prism2_send_mgmt fndecl 4 43422 NULL
162248 +enable_so_status_fealnx_desc_43423 status fealnx_desc 0 43423 NULL
162249 +enable_so_ath6kl_wmi_set_apsd_bfrd_traf_fndecl_43427 ath6kl_wmi_set_apsd_bfrd_traf fndecl 2 43427 NULL
162250 +enable_so_clk_fd_round_rate_fndecl_43428 clk_fd_round_rate fndecl 2 43428 NULL
162251 +enable_so_lpfc_sli4_queue_alloc_fndecl_43429 lpfc_sli4_queue_alloc fndecl 3 43429 NULL
162252 +enable_so_offset_afs_call_43431 offset afs_call 0 43431 NULL
162253 +enable_so_nfs4_proc_set_acl_fndecl_43435 nfs4_proc_set_acl fndecl 3 43435 NULL
162254 +enable_so_XRES_kyrofb_info_43436 XRES kyrofb_info 0 43436 NULL
162255 +enable_so_memblock_alloc_nid_fndecl_43439 memblock_alloc_nid fndecl 2-1 43439 NULL nohasharray
162256 +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
162257 +enable_so_ems_pcmcia_add_card_fndecl_43440 ems_pcmcia_add_card fndecl 2 43440 NULL nohasharray
162258 +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
162259 +enable_so_per_txdl_space_vxge_hw_fifo_attr_43441 per_txdl_space vxge_hw_fifo_attr 0 43441 NULL nohasharray
162260 +enable_so___offline_pages_fndecl_43441 __offline_pages fndecl 1-2 43441 &enable_so_per_txdl_space_vxge_hw_fifo_attr_43441
162261 +enable_so_dut_mode_write_fndecl_43445 dut_mode_write fndecl 3 43445 NULL nohasharray
162262 +enable_so_len_imgchunk_43445 len imgchunk 0 43445 &enable_so_dut_mode_write_fndecl_43445
162263 +enable_so_last_tx_rate_ap_data_43446 last_tx_rate ap_data 0 43446 NULL nohasharray
162264 +enable_so_max_pkt_tipc_sock_43446 max_pkt tipc_sock 0 43446 &enable_so_last_tx_rate_ap_data_43446
162265 +enable_so_wReportDescLength_i2c_hid_desc_43447 wReportDescLength i2c_hid_desc 0 43447 NULL
162266 +enable_so_vfs_fsync_range_fndecl_43448 vfs_fsync_range fndecl 0 43448 NULL
162267 +enable_so_vary_usbtest_param_43450 vary usbtest_param 0 43450 NULL
162268 +enable_so_eeprom_len_adm8211_priv_43457 eeprom_len adm8211_priv 0 43457 NULL
162269 +enable_so_aper_base_radeon_mc_43460 aper_base radeon_mc 0 43460 NULL
162270 +enable_so_l_start_ocfs2_space_resv_43461 l_start ocfs2_space_resv 0 43461 NULL
162271 +enable_so_meta_dev_idx_drbd_md_43468 meta_dev_idx drbd_md 0 43468 NULL nohasharray
162272 +enable_so_pda_size_fw_info_43468 pda_size fw_info 0 43468 &enable_so_meta_dev_idx_drbd_md_43468 nohasharray
162273 +enable_so_printer_req_alloc_fndecl_43468 printer_req_alloc fndecl 2 43468 &enable_so_pda_size_fw_info_43468
162274 +enable_so_xfrm_count_pfkey_auth_supported_fndecl_43471 xfrm_count_pfkey_auth_supported fndecl 0 43471 NULL
162275 +enable_so_nfs_pgio_rpcsetup_fndecl_43472 nfs_pgio_rpcsetup fndecl 2-3 43472 NULL
162276 +enable_so_max_VF_buses_pci_sriov_43475 max_VF_buses pci_sriov 0 43475 NULL
162277 +enable_so_mmio_base_phys_mb862xxfb_par_43476 mmio_base_phys mb862xxfb_par 0 43476 NULL
162278 +enable_so_read_pci_config_byte_fndecl_43477 read_pci_config_byte fndecl 0 43477 NULL nohasharray
162279 +enable_so_cmd_drm_ioctl_desc_43477 cmd drm_ioctl_desc 0 43477 &enable_so_read_pci_config_byte_fndecl_43477
162280 +enable_so_total_size_vardecl_mtdram_c_43478 total_size vardecl_mtdram.c 0 43478 NULL nohasharray
162281 +enable_so_length_cpcs_trailer_43478 length cpcs_trailer 0 43478 &enable_so_total_size_vardecl_mtdram_c_43478
162282 +enable_so_sd_jbsize_gfs2_sbd_43480 sd_jbsize gfs2_sbd 0 43480 NULL
162283 +enable_so_sysv_iget_fndecl_43483 sysv_iget fndecl 2 43483 NULL
162284 +enable_so_atl1e_change_mtu_fndecl_43485 atl1e_change_mtu fndecl 2 43485 NULL
162285 +enable_so_secondary_bin_count_drm_mga_dma_bootstrap_43491 secondary_bin_count drm_mga_dma_bootstrap 0 43491 NULL
162286 +enable_so_bioset_integrity_create_fndecl_43495 bioset_integrity_create fndecl 2 43495 NULL
162287 +enable_so_size_TxFifo_43497 size TxFifo 0 43497 NULL
162288 +enable_so_netlink_recvmsg_fndecl_43499 netlink_recvmsg fndecl 3 43499 NULL
162289 +enable_so_Count_smb_com_write_rsp_43500 Count smb_com_write_rsp 0 43500 NULL
162290 +enable_so_gfs2_log_write_fndecl_43502 gfs2_log_write fndecl 4-3 43502 NULL nohasharray
162291 +enable_so_max_reqs_rpc_xprt_43502 max_reqs rpc_xprt 0 43502 &enable_so_gfs2_log_write_fndecl_43502
162292 +enable_so_limit_cmdline_vardecl_dma_contiguous_c_43504 limit_cmdline vardecl_dma-contiguous.c 0 43504 NULL nohasharray
162293 +enable_so_adxl34x_i2c_read_block_fndecl_43504 adxl34x_i2c_read_block fndecl 3 43504 &enable_so_limit_cmdline_vardecl_dma_contiguous_c_43504
162294 +enable_so_ext4_ind_map_blocks_fndecl_43505 ext4_ind_map_blocks fndecl 0 43505 NULL
162295 +enable_so_ioremap_wc_fndecl_43508 ioremap_wc fndecl 2-1 43508 NULL
162296 +enable_so_size_compat_ipt_replace_43509 size compat_ipt_replace 0 43509 NULL
162297 +enable_so_size_uvc_control_info_43512 size uvc_control_info 0 43512 NULL
162298 +enable_so_snd_es1968_new_memory_fndecl_43515 snd_es1968_new_memory fndecl 2 43515 NULL
162299 +enable_so_ieee80211_set_probe_resp_fndecl_43519 ieee80211_set_probe_resp fndecl 3 43519 NULL
162300 +enable_so_sb_rextslog_xfs_sb_43520 sb_rextslog xfs_sb 0 43520 NULL nohasharray
162301 +enable_so_ptp_read_fndecl_43520 ptp_read fndecl 4 43520 &enable_so_sb_rextslog_xfs_sb_43520
162302 +enable_so_fifo_pool_size_snd_seq_user_client_43523 fifo_pool_size snd_seq_user_client 0 43523 NULL
162303 +enable_so__iwl_dbgfs_rx_phyinfo_write_fndecl_43525 _iwl_dbgfs_rx_phyinfo_write fndecl 3 43525 NULL
162304 +enable_so_xfs_dir2_leaf_getdents_fndecl_43533 xfs_dir2_leaf_getdents fndecl 3 43533 NULL
162305 +enable_so_mei_amthif_read_start_fndecl_43534 mei_amthif_read_start fndecl 0 43534 NULL
162306 +enable_so_points_per_channel_pda_pa_curve_data_43548 points_per_channel pda_pa_curve_data 0 43548 NULL
162307 +enable_so_offset_qcafrm_handle_43553 offset qcafrm_handle 0 43553 NULL
162308 +enable_so_bg_inode_table_lo_ext4_group_desc_43555 bg_inode_table_lo ext4_group_desc 0 43555 NULL
162309 +enable_so_hdrlen_hip_hdr_43556 hdrlen hip_hdr 0 43556 NULL
162310 +enable_so_buffer_size_budget_43564 buffer_size budget 0 43564 NULL
162311 +enable_so_tx_buf_clear_sent_ks959_cb_43565 tx_buf_clear_sent ks959_cb 0 43565 NULL
162312 +enable_so_ib_create_send_mad_fndecl_43569 ib_create_send_mad fndecl 6-5 43569 NULL
162313 +enable_so_ccp_fill_queue_buf_fndecl_43580 ccp_fill_queue_buf fndecl 0 43580 NULL
162314 +enable_so_xfs_difree_fndecl_43581 xfs_difree fndecl 2 43581 NULL
162315 +enable_so___br_vlan_set_default_pvid_fndecl_43587 __br_vlan_set_default_pvid fndecl 2 43587 NULL
162316 +enable_so_size_ext4_io_end_43590 size ext4_io_end 0 43590 NULL
162317 +enable_so_ath10k_read_fw_dbglog_fndecl_43592 ath10k_read_fw_dbglog fndecl 3 43592 NULL
162318 +enable_so_recv_data_fndecl_43596 recv_data fndecl 3 43596 NULL
162319 +enable_so_rem_len_hci_rp_read_local_amp_assoc_43602 rem_len hci_rp_read_local_amp_assoc 0 43602 NULL nohasharray
162320 +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
162321 +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
162322 +enable_so_ipath_pioreserved_ipath_devdata_43603 ipath_pioreserved ipath_devdata 0 43603 NULL
162323 +enable_so_nfsd_vfs_read_fndecl_43608 nfsd_vfs_read fndecl 3-5 43608 NULL
162324 +enable_so_raid5_resize_fndecl_43609 raid5_resize fndecl 2 43609 NULL
162325 +enable_so_ssize_datafab_info_43610 ssize datafab_info 0 43610 NULL
162326 +enable_so_minor_usb_serial_port_43611 minor usb_serial_port 0 43611 NULL
162327 +enable_so_phys_ctlmem_fst_card_info_43612 phys_ctlmem fst_card_info 0 43612 NULL
162328 +enable_so_sg_limit_blogic_ext_setup_43615 sg_limit blogic_ext_setup 0 43615 NULL nohasharray
162329 +enable_so_qnx4_block_map_fndecl_43615 qnx4_block_map fndecl 0-2 43615 &enable_so_sg_limit_blogic_ext_setup_43615
162330 +enable_so_camera_fbmem_size_viafb_dev_43616 camera_fbmem_size viafb_dev 0 43616 NULL
162331 +enable_so_ceph_fill_file_size_fndecl_43619 ceph_fill_file_size fndecl 4-5 43619 NULL
162332 +enable_so_drm_format_plane_cpp_fndecl_43621 drm_format_plane_cpp fndecl 0 43621 NULL nohasharray
162333 +enable_so_chipshift_cfi_private_43621 chipshift cfi_private 0 43621 &enable_so_drm_format_plane_cpp_fndecl_43621
162334 +enable_so_btusb_recv_isoc_fndecl_43628 btusb_recv_isoc fndecl 3 43628 NULL
162335 +enable_so_nvif_device_new_fndecl_43629 nvif_device_new fndecl 5 43629 NULL
162336 +enable_so_drm_gtf2_k_fndecl_43638 drm_gtf2_k fndecl 0 43638 NULL nohasharray
162337 +enable_so_technisat_usb2_eeprom_lrc_read_fndecl_43638 technisat_usb2_eeprom_lrc_read fndecl 4 43638 &enable_so_drm_gtf2_k_fndecl_43638
162338 +enable_so_info_server_fndecl_43644 info_server fndecl 4 43644 NULL
162339 +enable_so_usbnet_read_cmd_nopm_fndecl_43663 usbnet_read_cmd_nopm fndecl 7 43663 NULL nohasharray
162340 +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
162341 +enable_so_bop_last_key_nilfs_bmap_operations_43669 bop_last_key nilfs_bmap_operations 0 43669 NULL
162342 +enable_so_gsi_kvm_irq_routing_entry_43676 gsi kvm_irq_routing_entry 0 43676 NULL
162343 +enable_so_idmouse_read_fndecl_43677 idmouse_read fndecl 3 43677 NULL
162344 +enable_so_header_size_perf_event_43679 header_size perf_event 0 43679 NULL
162345 +enable_so_width_mxr_crop_43682 width mxr_crop 0 43682 NULL
162346 +enable_so_data_offset_nfsd4_compound_state_43684 data_offset nfsd4_compound_state 0 43684 NULL
162347 +enable_so_ingr_sz_sge_43689 ingr_sz sge 0 43689 NULL
162348 +enable_so_nxt200x_readbytes_fndecl_43693 nxt200x_readbytes fndecl 4 43693 NULL
162349 +enable_so_ext3_get_inode_block_fndecl_43702 ext3_get_inode_block fndecl 2-0 43702 NULL
162350 +enable_so_num_tx_descs_octeon_nic_if_config_43704 num_tx_descs octeon_nic_if_config 0 43704 NULL
162351 +enable_so_rx_buf_len_bcmgenet_priv_43705 rx_buf_len bcmgenet_priv 0 43705 NULL
162352 +enable_so_gtk_icvlen_iwl_mvm_43710 gtk_icvlen iwl_mvm 0 43710 NULL nohasharray
162353 +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
162354 +enable_so_data_block_quadlets_amdtp_stream_43723 data_block_quadlets amdtp_stream 0 43723 NULL
162355 +enable_so_in_size_xz_buf_43724 in_size xz_buf 0 43724 NULL
162356 +enable_so_tpm_tis_init_fndecl_43728 tpm_tis_init fndecl 4-3 43728 NULL
162357 +enable_so_ReplyFrameSize_mpt3sas_facts_43736 ReplyFrameSize mpt3sas_facts 0 43736 NULL
162358 +enable_so_gfn_to_hva_many_fndecl_43742 gfn_to_hva_many fndecl 2 43742 NULL
162359 +enable_so_acpi_rs_strcpy_fndecl_43746 acpi_rs_strcpy fndecl 0 43746 NULL
162360 +enable_so_used_map_cnt_verifier_env_43747 used_map_cnt verifier_env 0 43747 NULL
162361 +enable_so_stat_end_vardecl_drv_c_43748 stat_end vardecl_drv.c 0 43748 NULL
162362 +enable_so_sas_host_smp_write_gpio_fndecl_43749 sas_host_smp_write_gpio fndecl 0 43749 NULL
162363 +enable_so_osd_req_encode_op_fndecl_43755 osd_req_encode_op fndecl 0 43755 NULL
162364 +enable_so_data1_sisusb_command_43756 data1 sisusb_command 0 43756 NULL nohasharray
162365 +enable_so_len_meta_value_43756 len meta_value 0 43756 &enable_so_data1_sisusb_command_43756 nohasharray
162366 +enable_so___copy_from_user_ll_nocache_fndecl_43756 __copy_from_user_ll_nocache fndecl 0 43756 &enable_so_len_meta_value_43756
162367 +enable_so_reada_find_extent_fndecl_43757 reada_find_extent fndecl 2 43757 NULL
162368 +enable_so_ipath_pbufsport_ipath_devdata_43760 ipath_pbufsport ipath_devdata 0 43760 NULL
162369 +enable_so_firstEUN_INFTLrecord_43763 firstEUN INFTLrecord 0 43763 NULL
162370 +enable_so_tipc_connect_fndecl_43766 tipc_connect fndecl 3 43766 NULL
162371 +enable_so_nvkm_i2c_port_create__fndecl_43770 nvkm_i2c_port_create_ fndecl 7 43770 NULL
162372 +enable_so_hwdep_read_fndecl_43779 hwdep_read fndecl 3 43779 NULL
162373 +enable_so_generic_file_fsync_fndecl_43780 generic_file_fsync fndecl 2-3 43780 NULL
162374 +enable_so_clipcount_cap_vivid_dev_43781 clipcount_cap vivid_dev 0 43781 NULL
162375 +enable_so_prepare_packet_fndecl_43783 prepare_packet fndecl 0 43783 NULL
162376 +enable_so_data_pad_ubi_volume_43787 data_pad ubi_volume 0 43787 NULL
162377 +enable_so_smsc47m1_device_add_fndecl_43796 smsc47m1_device_add fndecl 1 43796 NULL
162378 +enable_so_uhci_urb_dequeue_fndecl_43804 uhci_urb_dequeue fndecl 3 43804 NULL
162379 +enable_so_len_nft_set_ext_tmpl_43815 len nft_set_ext_tmpl 0 43815 NULL
162380 +enable_so_rdes0_rx_desc_43817 rdes0 rx_desc 0 43817 NULL
162381 +enable_so___vb2_perform_fileio_fndecl_43818 __vb2_perform_fileio fndecl 3 43818 NULL
162382 +enable_so__save_mc_fndecl_43819 _save_mc fndecl 0-3 43819 NULL
162383 +enable_so_rx_buf_size_c2_port_43822 rx_buf_size c2_port 0 43822 NULL nohasharray
162384 +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
162385 +enable_so_omap_dma_prep_slave_sg_fndecl_43825 omap_dma_prep_slave_sg fndecl 3 43825 NULL
162386 +enable_so_i915_gem_object_create_stolen_fndecl_43837 i915_gem_object_create_stolen fndecl 2 43837 NULL
162387 +enable_so_unlink1_fndecl_43840 unlink1 fndecl 3-2 43840 NULL
162388 +enable_so_ath6kl_wmi_enable_sched_scan_cmd_fndecl_43841 ath6kl_wmi_enable_sched_scan_cmd fndecl 2 43841 NULL
162389 +enable_so_initrd_start_vardecl_43848 initrd_start vardecl 0 43848 NULL nohasharray
162390 +enable_so_parport_ieee1284_ecp_write_data_fndecl_43848 parport_ieee1284_ecp_write_data fndecl 0 43848 &enable_so_initrd_start_vardecl_43848
162391 +enable_so_xen_set_nslabs_fndecl_43849 xen_set_nslabs fndecl 0-1 43849 NULL
162392 +enable_so_wlcore_scan_fndecl_43850 wlcore_scan fndecl 4 43850 NULL
162393 +enable_so_iwl_dbgfs_fw_rx_stats_read_fndecl_43853 iwl_dbgfs_fw_rx_stats_read fndecl 3 43853 NULL
162394 +enable_so_scsi_host_alloc_fndecl_43858 scsi_host_alloc fndecl 2 43858 NULL
162395 +enable_so_indat_endpoint_keyspan_device_details_43860 indat_endpoint keyspan_device_details 0 43860 NULL
162396 +enable_so_get_sset_count_ethtool_ops_43861 get_sset_count ethtool_ops 0 43861 NULL
162397 +enable_so_s_l2bsize_jfs_superblock_43870 s_l2bsize jfs_superblock 0 43870 NULL
162398 +enable_so_Xdsdt_acpi_table_fadt_43871 Xdsdt acpi_table_fadt 0 43871 NULL
162399 +enable_so_bulk_in_endpointAddr_hdpvr_device_43874 bulk_in_endpointAddr hdpvr_device 0 43874 NULL nohasharray
162400 +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
162401 +enable_so_iovec_count_sg_io_hdr_43875 iovec_count sg_io_hdr 0 43875 NULL
162402 +enable_so_ts_ctxnum_gru_thread_state_43878 ts_ctxnum gru_thread_state 0 43878 NULL
162403 +enable_so_m_logbsize_xfs_mount_43888 m_logbsize xfs_mount 0 43888 NULL
162404 +enable_so_zap_page_range_single_fndecl_43890 zap_page_range_single fndecl 3-2 43890 NULL
162405 +enable_so_len_libipw_info_element_43892 len libipw_info_element 0 43892 NULL
162406 +enable_so_ocfs2_decrease_refcount_fndecl_43893 ocfs2_decrease_refcount fndecl 4-3 43893 NULL
162407 +enable_so_skb_vlan_push_fndecl_43895 skb_vlan_push fndecl 3 43895 NULL nohasharray
162408 +enable_so_device_id_onenand_chip_43895 device_id onenand_chip 0 43895 &enable_so_skb_vlan_push_fndecl_43895
162409 +enable_so_xstats_len_gnet_dump_43898 xstats_len gnet_dump 0 43898 NULL
162410 +enable_so_il4965_rs_move_siso_to_other_fndecl_43901 il4965_rs_move_siso_to_other fndecl 5 43901 NULL
162411 +enable_so_pnp_add_dma_resource_fndecl_43903 pnp_add_dma_resource fndecl 2 43903 NULL
162412 +enable_so_lc_up_len_nfsd4_layoutcommit_43904 lc_up_len nfsd4_layoutcommit 0 43904 NULL
162413 +enable_so_sta_data_size_ieee80211_hw_43910 sta_data_size ieee80211_hw 0 43910 NULL
162414 +enable_so_xres_drm_cmdline_mode_43915 xres drm_cmdline_mode 0 43915 NULL
162415 +enable_so_vcount_snd_emu10k1_fx8010_ctl_43917 vcount snd_emu10k1_fx8010_ctl 0 43917 NULL
162416 +enable_so_in_int_pipe_usbtest_dev_43922 in_int_pipe usbtest_dev 0 43922 NULL
162417 +enable_so_phys_statctrl_base__synclinkmp_info_43923 phys_statctrl_base _synclinkmp_info 0 43923 NULL
162418 +enable_so_rd_length_nfsd4_read_43924 rd_length nfsd4_read 0 43924 NULL
162419 +enable_so_mbind_range_fndecl_43926 mbind_range fndecl 3-2 43926 NULL
162420 +enable_so_iwl_dbgfs_sensitivity_read_fndecl_43935 iwl_dbgfs_sensitivity_read fndecl 3 43935 NULL
162421 +enable_so_iwl_mvm_coex_dump_mbox_fndecl_43938 iwl_mvm_coex_dump_mbox fndecl 0-3 43938 NULL
162422 +enable_so_max_threads_vardecl_43940 max_threads vardecl 0 43940 NULL nohasharray
162423 +enable_so_queue_pages_pte_range_fndecl_43940 queue_pages_pte_range fndecl 2 43940 &enable_so_max_threads_vardecl_43940
162424 +enable_so_ubifs_change_one_lp_fndecl_43942 ubifs_change_one_lp fndecl 3 43942 NULL
162425 +enable_so_dce_pvc_count_frad_state_43946 dce_pvc_count frad_state 0 43946 NULL
162426 +enable_so_sddr09_readX_fndecl_43951 sddr09_readX fndecl 5-7 43951 NULL
162427 +enable_so_size_soundfont_sample_info_43957 size soundfont_sample_info 0 43957 NULL
162428 +enable_so_num_drc_cfgs_wm8904_pdata_43963 num_drc_cfgs wm8904_pdata 0 43963 NULL
162429 +enable_so_rx_ring_count_igb_adapter_43964 rx_ring_count igb_adapter 0 43964 NULL
162430 +enable_so_tpacket_fill_skb_fndecl_43967 tpacket_fill_skb fndecl 8 43967 NULL
162431 +enable_so_s_firstdatazone_isofs_sb_info_43968 s_firstdatazone isofs_sb_info 0 43968 NULL
162432 +enable_so_csum_start_virtio_net_hdr_43969 csum_start virtio_net_hdr 0 43969 NULL nohasharray
162433 +enable_so_hfsplus_file_fsync_fndecl_43969 hfsplus_file_fsync fndecl 2-3 43969 &enable_so_csum_start_virtio_net_hdr_43969
162434 +enable_so_nilfs_get_dentry_fndecl_43979 nilfs_get_dentry fndecl 3 43979 NULL
162435 +enable_so_s_first_cluster_group_ocfs2_super_block_43980 s_first_cluster_group ocfs2_super_block 0 43980 NULL nohasharray
162436 +enable_so_value_size_bpf_map_43980 value_size bpf_map 0 43980 &enable_so_s_first_cluster_group_ocfs2_super_block_43980
162437 +enable_so_security_policydb_len_fndecl_43981 security_policydb_len fndecl 0 43981 NULL
162438 +enable_so_cur_size_zr364xx_framei_43985 cur_size zr364xx_framei 0 43985 NULL
162439 +enable_so_free_memtype_fndecl_43986 free_memtype fndecl 1-2 43986 NULL
162440 +enable_so_smk_write_revoke_subj_fndecl_43990 smk_write_revoke_subj fndecl 3 43990 NULL
162441 +enable_so_SyS_syslog_fndecl_43993 SyS_syslog fndecl 3 43993 NULL
162442 +enable_so_rs_build_rates_table_from_fixed_fndecl_43994 rs_build_rates_table_from_fixed fndecl 4 43994 NULL
162443 +enable_so_nsize_jffs2_raw_dirent_43995 nsize jffs2_raw_dirent 0 43995 NULL nohasharray
162444 +enable_so_pvm_determine_end_fndecl_43995 pvm_determine_end fndecl 0-3 43995 &enable_so_nsize_jffs2_raw_dirent_43995 nohasharray
162445 +enable_so_ovl_fill_merge_fndecl_43995 ovl_fill_merge fndecl 3 43995 &enable_so_pvm_determine_end_fndecl_43995
162446 +enable_so_copy_templates_fndecl_43996 copy_templates fndecl 3 43996 NULL
162447 +enable_so_snd_pcm_lib_malloc_pages_fndecl_43997 snd_pcm_lib_malloc_pages fndecl 2 43997 NULL
162448 +enable_so___e820_add_region_fndecl_44001 __e820_add_region fndecl 3 44001 NULL
162449 +enable_so_vme_master_read_fndecl_44006 vme_master_read fndecl 0 44006 NULL
162450 +enable_so_nvkm_device_create__fndecl_44008 nvkm_device_create_ fndecl 7 44008 NULL nohasharray
162451 +enable_so_SyS_gethostname_fndecl_44008 SyS_gethostname fndecl 2 44008 &enable_so_nvkm_device_create__fndecl_44008
162452 +enable_so_max_io_sz_snic_fw_info_44009 max_io_sz snic_fw_info 0 44009 NULL
162453 +enable_so_ext2_direct_IO_fndecl_44012 ext2_direct_IO fndecl 3 44012 NULL
162454 +enable_so_level_pid_namespace_44021 level pid_namespace 0 44021 NULL
162455 +enable_so_rx_buffer_truesize_efx_nic_44027 rx_buffer_truesize efx_nic 0 44027 NULL
162456 +enable_so_SyS_kexec_file_load_fndecl_44032 SyS_kexec_file_load fndecl 3 44032 NULL
162457 +enable_so_fragmentation_threshold_read_fndecl_44037 fragmentation_threshold_read fndecl 3 44037 NULL
162458 +enable_so_convert_extent_bit_fndecl_44046 convert_extent_bit fndecl 3-2 44046 NULL
162459 +enable_so_btrfs_submit_direct_fndecl_44059 btrfs_submit_direct fndecl 4 44059 NULL nohasharray
162460 +enable_so_ahc_linux_map_seg_fndecl_44059 ahc_linux_map_seg fndecl 4-5 44059 &enable_so_btrfs_submit_direct_fndecl_44059
162461 +enable_so_prog_page_fndecl_44060 prog_page fndecl 2 44060 NULL
162462 +enable_so_num_trace_enums_module_44062 num_trace_enums module 0 44062 NULL
162463 +enable_so_blksize_xfs_da_geometry_44068 blksize xfs_da_geometry 0 44068 NULL
162464 +enable_so_xen_io_tlb_nslabs_vardecl_swiotlb_xen_c_44077 xen_io_tlb_nslabs vardecl_swiotlb-xen.c 0 44077 NULL
162465 +enable_so_maxports_board_t_44081 maxports board_t 0 44081 NULL
162466 +enable_so_read_file_regval_fndecl_44093 read_file_regval fndecl 3 44093 NULL
162467 +enable_so_netup_read_i2c_fndecl_44096 netup_read_i2c fndecl 5 44096 NULL
162468 +enable_so_ipoib_cm_create_srq_fndecl_44098 ipoib_cm_create_srq fndecl 2 44098 NULL
162469 +enable_so_xdr_decode_array2_fndecl_44099 xdr_decode_array2 fndecl 2-0 44099 NULL
162470 +enable_so_m_inode_cluster_size_xfs_mount_44101 m_inode_cluster_size xfs_mount 0 44101 NULL
162471 +enable_so_payload_sz_storvsc_cmd_request_44107 payload_sz storvsc_cmd_request 0 44107 NULL
162472 +enable_so_fats_fat_boot_sector_44112 fats fat_boot_sector 0 44112 NULL
162473 +enable_so_ext4_mb_get_buddy_page_lock_fndecl_44127 ext4_mb_get_buddy_page_lock fndecl 0 44127 NULL
162474 +enable_so_udp_sendmsg_fndecl_44135 udp_sendmsg fndecl 3 44135 NULL nohasharray
162475 +enable_so_mls_compute_context_len_fndecl_44135 mls_compute_context_len fndecl 0 44135 &enable_so_udp_sendmsg_fndecl_44135
162476 +enable_so_base_nforce2_smbus_44136 base nforce2_smbus 0 44136 NULL
162477 +enable_so_tps65912_i2c_read_fndecl_44137 tps65912_i2c_read fndecl 3 44137 NULL
162478 +enable_so_key_maxval_mcs_platform_data_44139 key_maxval mcs_platform_data 0 44139 NULL
162479 +enable_so_npins_pinctrl_gpio_range_44148 npins pinctrl_gpio_range 0 44148 NULL
162480 +enable_so_batadv_dat_snoop_incoming_arp_reply_fndecl_44154 batadv_dat_snoop_incoming_arp_reply fndecl 3 44154 NULL
162481 +enable_so_octeon_setup_droq_fndecl_44160 octeon_setup_droq fndecl 4-3 44160 NULL
162482 +enable_so_bfad_debugfs_write_regwr_fndecl_44162 bfad_debugfs_write_regwr fndecl 3 44162 NULL
162483 +enable_so_recvmsg_proto_ops_44163 recvmsg proto_ops 0 44163 NULL
162484 +enable_so_sizeimage_v4l2_plane_pix_format_44168 sizeimage v4l2_plane_pix_format 0 44168 NULL nohasharray
162485 +enable_so_y_len_ccp_ecc_point_44168 y_len ccp_ecc_point 0 44168 &enable_so_sizeimage_v4l2_plane_pix_format_44168
162486 +enable_so_size_drm_mode_create_dumb_44176 size drm_mode_create_dumb 0 44176 NULL
162487 +enable_so_tcfp_nkeys_tcf_pedit_44184 tcfp_nkeys tcf_pedit 0 44184 NULL
162488 +enable_so_qlcnic_change_mtu_fndecl_44186 qlcnic_change_mtu fndecl 2 44186 NULL
162489 +enable_so_nvkm_gpuobj_new_fndecl_44188 nvkm_gpuobj_new fndecl 4-3 44188 NULL
162490 +enable_so_btrfs_file_llseek_fndecl_44189 btrfs_file_llseek fndecl 2 44189 NULL
162491 +enable_so_btrfs_ioctl_clone_fndecl_44205 btrfs_ioctl_clone fndecl 5-3-4 44205 NULL
162492 +enable_so_wm8993_set_fll_fndecl_44206 wm8993_set_fll fndecl 4-5 44206 NULL
162493 +enable_so_evdev_compute_buffer_size_fndecl_44212 evdev_compute_buffer_size fndecl 0 44212 NULL
162494 +enable_so_s_bsize_jfs_superblock_44215 s_bsize jfs_superblock 0 44215 NULL
162495 +enable_so_ext2_inode_by_name_fndecl_44217 ext2_inode_by_name fndecl 0 44217 NULL nohasharray
162496 +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
162497 +enable_so_SYSC_lsetxattr_fndecl_44222 SYSC_lsetxattr fndecl 4 44222 NULL
162498 +enable_so_len_args_fndecl_44226 len_args fndecl 0 44226 NULL
162499 +enable_so_clear_refs_write_fndecl_44227 clear_refs_write fndecl 3 44227 NULL
162500 +enable_so_it_context_support_fw_ohci_44232 it_context_support fw_ohci 0 44232 NULL
162501 +enable_so_rx_filter_arp_filter_read_fndecl_44233 rx_filter_arp_filter_read fndecl 3 44233 NULL
162502 +enable_so_usbhsf_fifo_rcv_len_fndecl_44234 usbhsf_fifo_rcv_len fndecl 0 44234 NULL
162503 +enable_so_au0828_init_isoc_fndecl_44238 au0828_init_isoc fndecl 4-2-3 44238 NULL nohasharray
162504 +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
162505 +enable_so_iriap_connect_indication_fndecl_44238 iriap_connect_indication fndecl 5 44238 &enable_so_ns_first_data_block_the_nilfs_44238
162506 +enable_so_irda_sendmsg_fndecl_44239 irda_sendmsg fndecl 3 44239 NULL nohasharray
162507 +enable_so_frag_stride_mlx4_en_frag_info_44239 frag_stride mlx4_en_frag_info 0 44239 &enable_so_irda_sendmsg_fndecl_44239
162508 +enable_so_num_pages_vb2_dma_sg_buf_44241 num_pages vb2_dma_sg_buf 0 44241 NULL
162509 +enable_so_spk_xs_vardecl_44242 spk_xs vardecl 0 44242 NULL
162510 +enable_so_features_virtio_device_44247 features virtio_device 0 44247 NULL
162511 +enable_so_cxgb4_pktgl_to_skb_fndecl_44248 cxgb4_pktgl_to_skb fndecl 3-2 44248 NULL nohasharray
162512 +enable_so_ax25_addr_size_fndecl_44248 ax25_addr_size fndecl 0 44248 &enable_so_cxgb4_pktgl_to_skb_fndecl_44248
162513 +enable_so_num_reg_defaults_raw_regmap_config_44249 num_reg_defaults_raw regmap_config 0 44249 NULL
162514 +enable_so_lprocfs_write_frac_u64_helper_fndecl_44250 lprocfs_write_frac_u64_helper fndecl 2 44250 NULL
162515 +enable_so_nolb_xcopy_op_44252 nolb xcopy_op 0 44252 NULL
162516 +enable_so_s_cur_size_qib_qp_44254 s_cur_size qib_qp 0 44254 NULL nohasharray
162517 +enable_so_roundup_ring_size_fndecl_44254 roundup_ring_size fndecl 0 44254 &enable_so_s_cur_size_qib_qp_44254
162518 +enable_so_gfn_to_pfn_memslot_atomic_fndecl_44264 gfn_to_pfn_memslot_atomic fndecl 2 44264 NULL nohasharray
162519 +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
162520 +enable_so_SyS_kexec_load_fndecl_44265 SyS_kexec_load fndecl 2 44265 NULL
162521 +enable_so_length_ceph_pagelist_44267 length ceph_pagelist 0 44267 NULL
162522 +enable_so_skb_put_frags_fndecl_44270 skb_put_frags fndecl 3-2 44270 NULL nohasharray
162523 +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
162524 +enable_so_il4965_ucode_rx_stats_read_fndecl_44271 il4965_ucode_rx_stats_read fndecl 3 44271 NULL
162525 +enable_so_efi_get_runtime_map_size_fndecl_44276 efi_get_runtime_map_size fndecl 0 44276 NULL
162526 +enable_so_new_raid_disk_md_rdev_44282 new_raid_disk md_rdev 0 44282 NULL
162527 +enable_so_rsp_len_bfad_fcxp_44290 rsp_len bfad_fcxp 0 44290 NULL
162528 +enable_so_pbus_size_mem_fndecl_44293 pbus_size_mem fndecl 6 44293 NULL
162529 +enable_so_NumberOfPorts_mpt3sas_facts_44306 NumberOfPorts mpt3sas_facts 0 44306 NULL
162530 +enable_so_mlx5e_build_netdev_priv_fndecl_44314 mlx5e_build_netdev_priv fndecl 3 44314 NULL
162531 +enable_so_plen_iwch_ep_44317 plen iwch_ep 0 44317 NULL
162532 +enable_so_rq_num_entries_c4iw_qp_attributes_44321 rq_num_entries c4iw_qp_attributes 0 44321 NULL
162533 +enable_so_produce_size_qp_entry_44325 produce_size qp_entry 0 44325 NULL
162534 +enable_so_encode_op_hdr_fndecl_44327 encode_op_hdr fndecl 3 44327 NULL
162535 +enable_so_size_drm_radeon_gem_userptr_44334 size drm_radeon_gem_userptr 0 44334 NULL
162536 +enable_so_bytesused_cx18_buffer_44339 bytesused cx18_buffer 0 44339 NULL
162537 +enable_so_btusb_setup_qca_download_fw_fndecl_44343 btusb_setup_qca_download_fw fndecl 0 44343 NULL
162538 +enable_so_snd_pcm_lib_writev_transfer_fndecl_44344 snd_pcm_lib_writev_transfer fndecl 5 44344 NULL
162539 +enable_so_tail_circ_buf_44346 tail circ_buf 0 44346 NULL nohasharray
162540 +enable_so_count_v4l2_ext_controls_44346 count v4l2_ext_controls 0 44346 &enable_so_tail_circ_buf_44346
162541 +enable_so_vb2_dvb_register_bus_fndecl_44349 vb2_dvb_register_bus fndecl 0 44349 NULL
162542 +enable_so_btrfs_item_size_fndecl_44350 btrfs_item_size fndecl 0 44350 NULL
162543 +enable_so_query_xrc_srq_cmd_fndecl_44353 query_xrc_srq_cmd fndecl 0 44353 NULL
162544 +enable_so_brcmf_sdio_txpkt_prep_sg_fndecl_44354 brcmf_sdio_txpkt_prep_sg fndecl 4-0 44354 NULL
162545 +enable_so_irlan_connect_confirm_fndecl_44361 irlan_connect_confirm fndecl 5 44361 NULL
162546 +enable_so_jffs2_write_end_fndecl_44362 jffs2_write_end fndecl 3 44362 NULL
162547 +enable_so___logfs_iget_fndecl_44371 __logfs_iget fndecl 2 44371 NULL
162548 +enable_so_pwm_buf_sz_usbdux_private_44375 pwm_buf_sz usbdux_private 0 44375 NULL
162549 +enable_so_ocfs2_get_refcount_rec_fndecl_44377 ocfs2_get_refcount_rec fndecl 3-4 44377 NULL
162550 +enable_so_epp_read_data_parport_operations_44383 epp_read_data parport_operations 0 44383 NULL
162551 +enable_so_dvb_net_ioctl_fndecl_44388 dvb_net_ioctl fndecl 2 44388 NULL
162552 +enable_so_reiserfs_xattr_set_fndecl_44389 reiserfs_xattr_set fndecl 4 44389 NULL
162553 +enable_so_hidpp_prefix_name_fndecl_44393 hidpp_prefix_name fndecl 2 44393 NULL
162554 +enable_so_s_raid_stripe_width_ext4_super_block_44401 s_raid_stripe_width ext4_super_block 0 44401 NULL
162555 +enable_so_num_iscsi_tasks_cnic_local_44404 num_iscsi_tasks cnic_local 0 44404 NULL
162556 +enable_so_compat_SyS_select_fndecl_44405 compat_SyS_select fndecl 1 44405 NULL
162557 +enable_so_child_mtu_cached_xfrm_dst_44407 child_mtu_cached xfrm_dst 0 44407 NULL
162558 +enable_so_drbd_create_device_fndecl_44410 drbd_create_device fndecl 2 44410 NULL
162559 +enable_so_yres_virtual_fb_var_screeninfo_44414 yres_virtual fb_var_screeninfo 0 44414 NULL
162560 +enable_so_count_configfs_buffer_44416 count configfs_buffer 0 44416 NULL
162561 +enable_so_ept_gpte_to_gfn_lvl_fndecl_44420 ept_gpte_to_gfn_lvl fndecl 0-2-1 44420 NULL
162562 +enable_so_seq_open_private_fndecl_44422 seq_open_private fndecl 3 44422 NULL
162563 +enable_so___get_vm_area_fndecl_44428 __get_vm_area fndecl 1-3 44428 NULL nohasharray
162564 +enable_so_rq_ecount_lpfc_sli4_hba_44428 rq_ecount lpfc_sli4_hba 0 44428 &enable_so___get_vm_area_fndecl_44428
162565 +enable_so_ieee80211_if_read_rc_rateidx_mask_2ghz_fndecl_44433 ieee80211_if_read_rc_rateidx_mask_2ghz fndecl 3 44433 NULL
162566 +enable_so_fan_proc_write_fndecl_44434 fan_proc_write fndecl 3 44434 NULL
162567 +enable_so_fd_do_rw_fndecl_44435 fd_do_rw fndecl 5 44435 NULL
162568 +enable_so_nchunks_amdgpu_cs_parser_44436 nchunks amdgpu_cs_parser 0 44436 NULL
162569 +enable_so_nbd_ioctl_fndecl_44444 nbd_ioctl fndecl 4 44444 NULL
162570 +enable_so_get_pages_array_fndecl_44453 get_pages_array fndecl 1 44453 NULL
162571 +enable_so_configfs_write_file_fndecl_44454 configfs_write_file fndecl 3 44454 NULL
162572 +enable_so_hh_len_hh_cache_44455 hh_len hh_cache 0 44455 NULL
162573 +enable_so___get_inode_info_fndecl_44463 __get_inode_info fndecl 0 44463 NULL
162574 +enable_so_cx2341x_handler_init_fndecl_44466 cx2341x_handler_init fndecl 2 44466 NULL
162575 +enable_so_cap_height_usbtv_norm_params_44467 cap_height usbtv_norm_params 0 44467 NULL
162576 +enable_so_seq_count_iscsi_cmd_44476 seq_count iscsi_cmd 0 44476 NULL
162577 +enable_so_resize_stripes_fndecl_44481 resize_stripes fndecl 2 44481 NULL nohasharray
162578 +enable_so_skb_find_text_fndecl_44481 skb_find_text fndecl 2-0 44481 &enable_so_resize_stripes_fndecl_44481
162579 +enable_so_virtio_gpu_gem_create_fndecl_44491 virtio_gpu_gem_create fndecl 3 44491 NULL
162580 +enable_so_s_first_data_block_ext4_super_block_44495 s_first_data_block ext4_super_block 0 44495 NULL
162581 +enable_so_mmcies_max_wusbhc_44498 mmcies_max wusbhc 0 44498 NULL
162582 +enable_so_pci_cardbus_io_size_vardecl_44500 pci_cardbus_io_size vardecl 0 44500 NULL
162583 +enable_so_io_start_nfs_pgio_header_44501 io_start nfs_pgio_header 0 44501 NULL
162584 +enable_so_omfs_bread_fndecl_44502 omfs_bread fndecl 2 44502 NULL nohasharray
162585 +enable_so_skb_append_pagefrags_fndecl_44502 skb_append_pagefrags fndecl 3 44502 &enable_so_omfs_bread_fndecl_44502
162586 +enable_so_snd_pcm_oss_read3_fndecl_44504 snd_pcm_oss_read3 fndecl 0 44504 NULL
162587 +enable_so_btrfs_add_ordered_extent_fndecl_44505 btrfs_add_ordered_extent fndecl 4-2-5-3 44505 NULL
162588 +enable_so_len_de4x5_ioctl_44508 len de4x5_ioctl 0 44508 NULL
162589 +enable_so_ftdi_elan_edset_setup_fndecl_44513 ftdi_elan_edset_setup fndecl 0 44513 NULL nohasharray
162590 +enable_so_ubifs_add_snod_fndecl_44513 ubifs_add_snod fndecl 4 44513 &enable_so_ftdi_elan_edset_setup_fndecl_44513
162591 +enable_so_li_height_logfs_inode_44514 li_height logfs_inode 0 44514 NULL nohasharray
162592 +enable_so_lock_loop_fndecl_44514 lock_loop fndecl 1-0 44514 &enable_so_li_height_logfs_inode_44514
162593 +enable_so_sddr09_read20_fndecl_44519 sddr09_read20 fndecl 4-3-6 44519 NULL nohasharray
162594 +enable_so___do_tune_cpucache_fndecl_44519 __do_tune_cpucache fndecl 3-2-4 44519 &enable_so_sddr09_read20_fndecl_44519
162595 +enable_so_video_bpp_sis_video_info_44522 video_bpp sis_video_info 0 44522 NULL nohasharray
162596 +enable_so_length_mtd_oob_buf_44522 length mtd_oob_buf 0 44522 &enable_so_video_bpp_sis_video_info_44522
162597 +enable_so_rbytes_tree_balance_44523 rbytes tree_balance 0 44523 NULL
162598 +enable_so_set_le_key_k_type_fndecl_44525 set_le_key_k_type fndecl 3 44525 NULL
162599 +enable_so_xlog_recover_clear_agi_bucket_fndecl_44526 xlog_recover_clear_agi_bucket fndecl 2 44526 NULL
162600 +enable_so_filter_read_fndecl_44527 filter_read fndecl 3 44527 NULL
162601 +enable_so_yenta_search_one_res_fndecl_44533 yenta_search_one_res fndecl 3 44533 NULL
162602 +enable_so_insert_one_name_fndecl_44535 insert_one_name fndecl 7 44535 NULL nohasharray
162603 +enable_so_max_cqes_mthca_limits_44535 max_cqes mthca_limits 0 44535 &enable_so_insert_one_name_fndecl_44535
162604 +enable_so_consume_size_vmci_transport_44542 consume_size vmci_transport 0 44542 NULL
162605 +enable_so_smk_read_syslog_fndecl_44544 smk_read_syslog fndecl 3 44544 NULL
162606 +enable_so_add_debugfs_mem_fndecl_44546 add_debugfs_mem fndecl 4 44546 NULL nohasharray
162607 +enable_so_numps_powernow_k8_data_44546 numps powernow_k8_data 0 44546 &enable_so_add_debugfs_mem_fndecl_44546
162608 +enable_so_container_height_dmm_44549 container_height dmm 0 44549 NULL
162609 +enable_so_chanctx_data_size_ieee80211_hw_44557 chanctx_data_size ieee80211_hw 0 44557 NULL
162610 +enable_so_amdgpu_bo_create_restricted_fndecl_44566 amdgpu_bo_create_restricted fndecl 2 44566 NULL
162611 +enable_so_hpfs_fnode_dno_fndecl_44569 hpfs_fnode_dno fndecl 0-2 44569 NULL nohasharray
162612 +enable_so_wTotalLength_usb_config_descriptor_44569 wTotalLength usb_config_descriptor 0 44569 &enable_so_hpfs_fnode_dno_fndecl_44569
162613 +enable_so_parent_i_pos_hi_fat_fid_44570 parent_i_pos_hi fat_fid 0 44570 NULL
162614 +enable_so_tw_transfer_internal_fndecl_44581 tw_transfer_internal fndecl 4 44581 NULL nohasharray
162615 +enable_so_ion_handle_test_dma_fndecl_44581 ion_handle_test_dma fndecl 4-5 44581 &enable_so_tw_transfer_internal_fndecl_44581
162616 +enable_so_smsc47m1_find_fndecl_44589 smsc47m1_find fndecl 0 44589 NULL
162617 +enable_so_rd_data0_gfs2_rgrpd_44591 rd_data0 gfs2_rgrpd 0 44591 NULL
162618 +enable_so_maxcontacts_pm_44593 maxcontacts pm 0 44593 NULL
162619 +enable_so_allocate_partition_fndecl_44598 allocate_partition fndecl 4 44598 NULL
162620 +enable_so_len_poll_list_44603 len poll_list 0 44603 NULL
162621 +enable_so_of_io_request_and_map_fndecl_44605 of_io_request_and_map fndecl 2 44605 NULL
162622 +enable_so_bop_mark_nilfs_bmap_operations_44618 bop_mark nilfs_bmap_operations 0 44618 NULL
162623 +enable_so_il_dbgfs_sram_read_fndecl_44619 il_dbgfs_sram_read fndecl 3 44619 NULL
162624 +enable_so_vid_hdr_offset_ubi_attach_req_44622 vid_hdr_offset ubi_attach_req 0 44622 NULL nohasharray
162625 +enable_so_irq_cros_ec_device_44622 irq cros_ec_device 0 44622 &enable_so_vid_hdr_offset_ubi_attach_req_44622
162626 +enable_so_security_file_permission_fndecl_44629 security_file_permission fndecl 0 44629 NULL
162627 +enable_so_max_sectors_Scsi_Host_44630 max_sectors Scsi_Host 0 44630 NULL nohasharray
162628 +enable_so_sel_last_ino_vardecl_selinuxfs_c_44630 sel_last_ino vardecl_selinuxfs.c 0 44630 &enable_so_max_sectors_Scsi_Host_44630
162629 +enable_so_data_len_krb5_tagged_data_44634 data_len krb5_tagged_data 0 44634 NULL
162630 +enable_so_bd_block_size_block_device_44635 bd_block_size block_device 0 44635 NULL
162631 +enable_so_osst_write_error_recovery_fndecl_44636 osst_write_error_recovery fndecl 3 44636 NULL
162632 +enable_so_chunk_root_btrfs_super_block_44639 chunk_root btrfs_super_block 0 44639 NULL
162633 +enable_so_hfcpci_empty_bfifo_fndecl_44640 hfcpci_empty_bfifo fndecl 4 44640 NULL
162634 +enable_so_nb_dev_strip_zone_44645 nb_dev strip_zone 0 44645 NULL
162635 +enable_so_len_nlm_lock_44646 len nlm_lock 0 44646 NULL
162636 +enable_so_bank_mask_stub_chip_44647 bank_mask stub_chip 0 44647 NULL
162637 +enable_so_cp_payload_f2fs_super_block_44648 cp_payload f2fs_super_block 0 44648 NULL
162638 +enable_so_rel_sectors_mmc_ext_csd_44650 rel_sectors mmc_ext_csd 0 44650 NULL
162639 +enable_so_cm_cno_nilfs_cpmode_44654 cm_cno nilfs_cpmode 0 44654 NULL nohasharray
162640 +enable_so_iscsi_segment_init_linear_fndecl_44654 iscsi_segment_init_linear fndecl 3 44654 &enable_so_cm_cno_nilfs_cpmode_44654
162641 +enable_so_nr_sectors_blkif_request_discard_44655 nr_sectors blkif_request_discard 0 44655 NULL nohasharray
162642 +enable_so_bLength_usb_interface_descriptor_44655 bLength usb_interface_descriptor 0 44655 &enable_so_nr_sectors_blkif_request_discard_44655
162643 +enable_so_sparse_early_usemaps_alloc_pgdat_section_fndecl_44659 sparse_early_usemaps_alloc_pgdat_section fndecl 2 44659 NULL
162644 +enable_so_import_single_range_fndecl_44662 import_single_range fndecl 3 44662 NULL
162645 +enable_so_max_rqe_pdid_ocrdma_query_srq_rsp_44663 max_rqe_pdid ocrdma_query_srq_rsp 0 44663 NULL
162646 +enable_so_udf_sb_alloc_partition_maps_fndecl_44666 udf_sb_alloc_partition_maps fndecl 2 44666 NULL nohasharray
162647 +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
162648 +enable_so_fe_len_ext4_free_extent_44669 fe_len ext4_free_extent 0 44669 NULL
162649 +enable_so_lfb_width_screen_info_44670 lfb_width screen_info 0 44670 NULL
162650 +enable_so_overlay_cap_top_vivid_dev_44672 overlay_cap_top vivid_dev 0 44672 NULL
162651 +enable_so_mad_sendq_size_vardecl_mad_c_44673 mad_sendq_size vardecl_mad.c 0 44673 NULL nohasharray
162652 +enable_so_flash_write_fndecl_44673 flash_write fndecl 3 44673 &enable_so_mad_sendq_size_vardecl_mad_c_44673
162653 +enable_so_iwl_hwrate_to_plcp_idx_fndecl_44674 iwl_hwrate_to_plcp_idx fndecl 0-1 44674 NULL
162654 +enable_so_pipes_psb_ops_44679 pipes psb_ops 0 44679 NULL
162655 +enable_so_xfpregs_set_fndecl_44680 xfpregs_set fndecl 4 44680 NULL
162656 +enable_so_COM_len_camera_data_44681 COM_len camera_data 0 44681 NULL nohasharray
162657 +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
162658 +enable_so_length_ore_striping_info_44681 length ore_striping_info 0 44681 &enable_so_setup_swap_map_and_extents_fndecl_44681
162659 +enable_so_msg_size_ecryptfs_msg_ctx_44687 msg_size ecryptfs_msg_ctx 0 44687 NULL
162660 +enable_so_offset_drm_map_44692 offset drm_map 0 44692 NULL
162661 +enable_so_ipath_piobufbase_ipath_devdata_44698 ipath_piobufbase ipath_devdata 0 44698 NULL
162662 +enable_so_start_linear_c_44708 start linear_c 0 44708 NULL
162663 +enable_so_ts_packet_count_saa7164_port_44712 ts_packet_count saa7164_port 0 44712 NULL nohasharray
162664 +enable_so_au_rslack_rpc_auth_44712 au_rslack rpc_auth 0 44712 &enable_so_ts_packet_count_saa7164_port_44712
162665 +enable_so_altera_irscan_fndecl_44719 altera_irscan fndecl 2 44719 NULL
162666 +enable_so___nilfs_get_page_block_fndecl_44723 __nilfs_get_page_block fndecl 4 44723 NULL
162667 +enable_so_inlen_mimd_44727 inlen mimd 0 44727 NULL nohasharray
162668 +enable_so_kmalloc_order_fndecl_44727 kmalloc_order fndecl 1 44727 &enable_so_inlen_mimd_44727
162669 +enable_so_assoc_req_ies_len_station_info_44731 assoc_req_ies_len station_info 0 44731 NULL nohasharray
162670 +enable_so_buffer_size_st_buffer_44731 buffer_size st_buffer 0 44731 &enable_so_assoc_req_ies_len_station_info_44731
162671 +enable_so_ino_nilfs_recovery_block_44737 ino nilfs_recovery_block 0 44737 NULL
162672 +enable_so_name_len_name_cache_entry_44739 name_len name_cache_entry 0 44739 NULL
162673 +enable_so_ext4_journalled_write_end_fndecl_44742 ext4_journalled_write_end fndecl 5-3 44742 NULL
162674 +enable_so_erst_clearer_fndecl_44743 erst_clearer fndecl 2 44743 NULL
162675 +enable_so_max_phy_id_vardecl_x86_pkg_temp_thermal_c_44750 max_phy_id vardecl_x86_pkg_temp_thermal.c 0 44750 NULL
162676 +enable_so_dev_sectors_mddev_44756 dev_sectors mddev 0 44756 NULL
162677 +enable_so_brd_probe_fndecl_44758 brd_probe fndecl 1 44758 NULL
162678 +enable_so_set_ssp_fndecl_44760 set_ssp fndecl 4 44760 NULL
162679 +enable_so_p_memsz_elf64_phdr_44763 p_memsz elf64_phdr 0 44763 NULL
162680 +enable_so_mt9m111_reg_read_fndecl_44764 mt9m111_reg_read fndecl 0 44764 NULL
162681 +enable_so_sys_tee_fndecl_44769 sys_tee fndecl 3 44769 NULL
162682 +enable_so_count_snd_kcontrol_44773 count snd_kcontrol 0 44773 NULL
162683 +enable_so_dce_v8_0_afmt_update_ACR_fndecl_44781 dce_v8_0_afmt_update_ACR fndecl 2 44781 NULL
162684 +enable_so_nbp_vlan_add_fndecl_44783 nbp_vlan_add fndecl 2 44783 NULL
162685 +enable_so_vb2_vmalloc_alloc_fndecl_44785 vb2_vmalloc_alloc fndecl 2 44785 NULL
162686 +enable_so_truncate_size_ceph_mds_caps_44794 truncate_size ceph_mds_caps 0 44794 NULL
162687 +enable_so_sg_used_ccp_sg_workarea_44796 sg_used ccp_sg_workarea 0 44796 NULL
162688 +enable_so_n_caps_whci_card_44799 n_caps whci_card 0 44799 NULL nohasharray
162689 +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
162690 +enable_so_tclass_sq_psn_ocrdma_qp_params_44805 tclass_sq_psn ocrdma_qp_params 0 44805 NULL
162691 +enable_so_cow_file_range_fndecl_44808 cow_file_range fndecl 3-4 44808 NULL
162692 +enable_so_fd_locked_ioctl_fndecl_44809 fd_locked_ioctl fndecl 3 44809 NULL
162693 +enable_so_raw_getfrag_fndecl_44811 raw_getfrag fndecl 3-4 44811 NULL nohasharray
162694 +enable_so___remove_privs_fndecl_44811 __remove_privs fndecl 0 44811 &enable_so_raw_getfrag_fndecl_44811 nohasharray
162695 +enable_so_resp_ctrl_m_pg_fndecl_44811 resp_ctrl_m_pg fndecl 0 44811 &enable_so___remove_privs_fndecl_44811
162696 +enable_so_ndev_debugfs_read_fndecl_44812 ndev_debugfs_read fndecl 3 44812 NULL
162697 +enable_so_set_extent_delalloc_fndecl_44813 set_extent_delalloc fndecl 3-2 44813 NULL
162698 +enable_so_sb_uquotino_xfs_sb_44820 sb_uquotino xfs_sb 0 44820 NULL
162699 +enable_so_cluster_pages_for_defrag_fndecl_44823 cluster_pages_for_defrag fndecl 0 44823 NULL
162700 +enable_so_bytesize_nbd_device_44824 bytesize nbd_device 0 44824 NULL nohasharray
162701 +enable_so_count_atl1c_tpd_ring_44824 count atl1c_tpd_ring 0 44824 &enable_so_bytesize_nbd_device_44824
162702 +enable_so_squashfs_read_id_index_table_fndecl_44826 squashfs_read_id_index_table fndecl 4 44826 NULL
162703 +enable_so_vlan_tag_be_rx_compl_info_44830 vlan_tag be_rx_compl_info 0 44830 NULL nohasharray
162704 +enable_so_fix_read_error_fndecl_44830 fix_read_error fndecl 4-3 44830 &enable_so_vlan_tag_be_rx_compl_info_44830
162705 +enable_so_snprint_stack_trace_fndecl_44832 snprint_stack_trace fndecl 0 44832 NULL
162706 +enable_so_dequeue_event_fndecl_44835 dequeue_event fndecl 3 44835 NULL
162707 +enable_so_name_len_exofs_dir_entry_44838 name_len exofs_dir_entry 0 44838 NULL
162708 +enable_so_xt_compat_match_offset_fndecl_44840 xt_compat_match_offset fndecl 0 44840 NULL
162709 +enable_so_exofs_readpages_fndecl_44841 exofs_readpages fndecl 4 44841 NULL
162710 +enable_so_submit_bh_wbc_fndecl_44843 submit_bh_wbc fndecl 0 44843 NULL
162711 +enable_so_num_zones_quirk_entry_44844 num_zones quirk_entry 0 44844 NULL
162712 +enable_so_btrfs_shrink_device_fndecl_44845 btrfs_shrink_device fndecl 2 44845 NULL
162713 +enable_so_spi_sh_receive_fndecl_44846 spi_sh_receive fndecl 0 44846 NULL
162714 +enable_so_ext4_da_get_block_prep_fndecl_44848 ext4_da_get_block_prep fndecl 2 44848 NULL
162715 +enable_so_primary_size_drm_mga_dma_bootstrap_44851 primary_size drm_mga_dma_bootstrap 0 44851 NULL
162716 +enable_so_viafb_second_yres_vardecl_44862 viafb_second_yres vardecl 0 44862 NULL nohasharray
162717 +enable_so_offset_isofs_iget5_callback_data_44862 offset isofs_iget5_callback_data 0 44862 &enable_so_viafb_second_yres_vardecl_44862
162718 +enable_so_pmcraid_build_passthrough_ioadls_fndecl_44865 pmcraid_build_passthrough_ioadls fndecl 2 44865 NULL
162719 +enable_so_crypt_extent_fndecl_44866 crypt_extent fndecl 4 44866 NULL nohasharray
162720 +enable_so_h4_recv_fndecl_44866 h4_recv fndecl 3 44866 &enable_so_crypt_extent_fndecl_44866
162721 +enable_so_intel_setup_irq_remapping_fndecl_44868 intel_setup_irq_remapping fndecl 0 44868 NULL
162722 +enable_so_alloc_rc_map_44870 alloc rc_map 0 44870 NULL
162723 +enable_so_romfs_blk_read_fndecl_44875 romfs_blk_read fndecl 4-2 44875 NULL
162724 +enable_so_ppp_tx_cp_fndecl_44879 ppp_tx_cp fndecl 5 44879 NULL
162725 +enable_so_SyS_setxattr_fndecl_44880 SyS_setxattr fndecl 4 44880 NULL
162726 +enable_so_num_resources_platform_device_44886 num_resources platform_device 0 44886 NULL
162727 +enable_so___cookie_v4_check_fndecl_44887 __cookie_v4_check fndecl 0 44887 NULL nohasharray
162728 +enable_so_jffs2_do_unlink_fndecl_44887 jffs2_do_unlink fndecl 4 44887 &enable_so___cookie_v4_check_fndecl_44887
162729 +enable_so_code_length_lirc_driver_44888 code_length lirc_driver 0 44888 NULL
162730 +enable_so_deh_len_hops_ddpehdr_44891 deh_len_hops ddpehdr 0 44891 NULL nohasharray
162731 +enable_so_msg_len_rndis_data_hdr_44891 msg_len rndis_data_hdr 0 44891 &enable_so_deh_len_hops_ddpehdr_44891 nohasharray
162732 +enable_so_SYSC_select_fndecl_44891 SYSC_select fndecl 1 44891 &enable_so_msg_len_rndis_data_hdr_44891
162733 +enable_so_inst_evtlog_size_iwl_fw_44893 inst_evtlog_size iwl_fw 0 44893 NULL
162734 +enable_so_FormattedSize_NFTLMediaHeader_44896 FormattedSize NFTLMediaHeader 0 44896 NULL
162735 +enable_so_io_size_gpio_lpc_sch_info_44898 io_size_gpio lpc_sch_info 0 44898 NULL
162736 +enable_so_pcpu_alloc_bootmem_fndecl_44905 pcpu_alloc_bootmem fndecl 3-2 44905 NULL
162737 +enable_so_gotoxy_fndecl_44908 gotoxy fndecl 2-3 44908 NULL
162738 +enable_so_write_packet_fndecl_44910 write_packet fndecl 3 44910 NULL
162739 +enable_so_catas_size_mlx4_fw_44916 catas_size mlx4_fw 0 44916 NULL
162740 +enable_so_tpc_total_gf100_gr_priv_44923 tpc_total gf100_gr_priv 0 44923 NULL
162741 +enable_so_do_pselect_fndecl_44926 do_pselect fndecl 1 44926 NULL
162742 +enable_so_bvec_iter_advance_fndecl_44933 bvec_iter_advance fndecl 3 44933 NULL
162743 +enable_so_ipath_user_sdma_pin_pages_fndecl_44935 ipath_user_sdma_pin_pages fndecl 3 44935 NULL
162744 +enable_so_jffs2_security_setxattr_fndecl_44936 jffs2_security_setxattr fndecl 4 44936 NULL
162745 +enable_so_data_dev_block_bits_dm_verity_44943 data_dev_block_bits dm_verity 0 44943 NULL
162746 +enable_so_data_block_dm_thin_new_mapping_44944 data_block dm_thin_new_mapping 0 44944 NULL nohasharray
162747 +enable_so_acpiphp_max_busnr_fndecl_44944 acpiphp_max_busnr fndecl 0 44944 &enable_so_data_block_dm_thin_new_mapping_44944
162748 +enable_so_srp_sq_size_srpt_port_attrib_44947 srp_sq_size srpt_port_attrib 0 44947 NULL
162749 +enable_so_sd_diptrs_gfs2_sbd_44954 sd_diptrs gfs2_sbd 0 44954 NULL nohasharray
162750 +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
162751 +enable_so_coff_ddb_output_44962 coff ddb_output 0 44962 NULL
162752 +enable_so_qib_diag_write_fndecl_44966 qib_diag_write fndecl 3 44966 NULL
162753 +enable_so_fat12_ent_bread_fndecl_44968 fat12_ent_bread fndecl 4 44968 NULL
162754 +enable_so_i915_pages_create_for_stolen_fndecl_44970 i915_pages_create_for_stolen fndecl 3 44970 NULL
162755 +enable_so_x0_osd_cmd_s_44978 x0 osd_cmd_s 0 44978 NULL
162756 +enable_so_length_mtd_oob_buf64_44979 length mtd_oob_buf64 0 44979 NULL
162757 +enable_so_ip_recv_error_fndecl_44982 ip_recv_error fndecl 3 44982 NULL nohasharray
162758 +enable_so_num_free_virtqueue_44982 num_free virtqueue 0 44982 &enable_so_ip_recv_error_fndecl_44982
162759 +enable_so_generic_block_fiemap_fndecl_44985 generic_block_fiemap fndecl 4 44985 NULL
162760 +enable_so_snd_ak4114_external_rate_fndecl_44987 snd_ak4114_external_rate fndecl 0 44987 NULL
162761 +enable_so_num_carats_acpi_namestring_info_44990 num_carats acpi_namestring_info 0 44990 NULL
162762 +enable_so_transport_lba_32_fndecl_44994 transport_lba_32 fndecl 0 44994 NULL
162763 +enable_so_fts_libipw_device_44996 fts libipw_device 0 44996 NULL
162764 +enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997 iscsi_max_outsnd_r2t dev_db_entry 0 44997 NULL nohasharray
162765 +enable_so_SyS_getxattr_fndecl_44997 SyS_getxattr fndecl 4 44997 &enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997
162766 +enable_so_eeprom_size_il_cfg_44998 eeprom_size il_cfg 0 44998 NULL
162767 +enable_so_ocfs2_list_xattr_tree_rec_fndecl_45001 ocfs2_list_xattr_tree_rec fndecl 3 45001 NULL
162768 +enable_so_prism54_wpa_bss_ie_get_fndecl_45006 prism54_wpa_bss_ie_get fndecl 0 45006 NULL
162769 +enable_so_video_usercopy_fndecl_45012 video_usercopy fndecl 2 45012 NULL
162770 +enable_so_size_e820entry_45018 size e820entry 0 45018 NULL
162771 +enable_so_num_cqs_mthca_limits_45021 num_cqs mthca_limits 0 45021 NULL
162772 +enable_so_membase_vgastate_45022 membase vgastate 0 45022 NULL
162773 +enable_so_rd_size_hidp_session_45023 rd_size hidp_session 0 45023 NULL
162774 +enable_so_sock_kmalloc_fndecl_45038 sock_kmalloc fndecl 2 45038 NULL
162775 +enable_so_write_file_dfs_fndecl_45047 write_file_dfs fndecl 3 45047 NULL
162776 +enable_so_alloc_upcall_fndecl_45049 alloc_upcall fndecl 2 45049 NULL
162777 +enable_so_hs_extra_bytes_cfs_hash_45050 hs_extra_bytes cfs_hash 0 45050 NULL
162778 +enable_so_tx_ring_count_e1000_adapter_45060 tx_ring_count e1000_adapter 0 45060 NULL
162779 +enable_so_sd_sgentry_align_brcmfmac_sdio_platform_data_45061 sd_sgentry_align brcmfmac_sdio_platform_data 0 45061 NULL
162780 +enable_so_write_buffer_size_vardecl_legousbtower_c_45062 write_buffer_size vardecl_legousbtower.c 0 45062 NULL
162781 +enable_so_ib_ipath_max_sges_vardecl_45073 ib_ipath_max_sges vardecl 0 45073 NULL
162782 +enable_so_read_vbt_r10_fndecl_45076 read_vbt_r10 fndecl 1 45076 NULL
162783 +enable_so_sendpage_iscsi_sw_tcp_conn_45081 sendpage iscsi_sw_tcp_conn 0 45081 NULL
162784 +enable_so_unmap_mapping_range_vma_fndecl_45084 unmap_mapping_range_vma fndecl 2-3 45084 NULL
162785 +enable_so_regshift_uart_port_45089 regshift uart_port 0 45089 NULL
162786 +enable_so_ext3_xattr_set_fndecl_45090 ext3_xattr_set fndecl 5 45090 NULL
162787 +enable_so_revmap_size_irq_domain_45091 revmap_size irq_domain 0 45091 NULL
162788 +enable_so_ocfs2_lock_reflink_xattr_rec_allocators_fndecl_45097 ocfs2_lock_reflink_xattr_rec_allocators fndecl 3 45097 NULL
162789 +enable_so_bblog_size_mdp_superblock_1_45102 bblog_size mdp_superblock_1 0 45102 NULL
162790 +enable_so_nd_cmd_out_size_fndecl_45105 nd_cmd_out_size fndecl 0 45105 NULL nohasharray
162791 +enable_so_pitch_tmHWStreamParameters_45105 pitch tmHWStreamParameters 0 45105 &enable_so_nd_cmd_out_size_fndecl_45105 nohasharray
162792 +enable_so_head_timestamp_event_queue_45105 head timestamp_event_queue 0 45105 &enable_so_pitch_tmHWStreamParameters_45105
162793 +enable_so_skb_tx_rsvd_cxgbi_device_45109 skb_tx_rsvd cxgbi_device 0 45109 NULL
162794 +enable_so_init_data_container_fndecl_45110 init_data_container fndecl 1 45110 NULL nohasharray
162795 +enable_so_watchdog_devt_vardecl_watchdog_dev_c_45110 watchdog_devt vardecl_watchdog_dev.c 0 45110 &enable_so_init_data_container_fndecl_45110
162796 +enable_so_ea_size_s_fnode_45115 ea_size_s fnode 0 45115 NULL
162797 +enable_so_ov518_pkt_scan_fndecl_45121 ov518_pkt_scan fndecl 3 45121 NULL
162798 +enable_so_vblk_size_vmdb_45123 vblk_size vmdb 0 45123 NULL
162799 +enable_so_key_len_mwifiex_ds_encrypt_key_45127 key_len mwifiex_ds_encrypt_key 0 45127 NULL
162800 +enable_so_img_x_zoran_jpg_settings_45135 img_x zoran_jpg_settings 0 45135 NULL
162801 +enable_so_offset_mlx4_clock_params_45137 offset mlx4_clock_params 0 45137 NULL
162802 +enable_so_specified_table_size_vardecl_45152 specified_table_size vardecl 0 45152 NULL
162803 +enable_so_MaxLanBuckets__MSG_PORT_FACTS_REPLY_45155 MaxLanBuckets _MSG_PORT_FACTS_REPLY 0 45155 NULL
162804 +enable_so_ocfs2_set_refcount_tree_fndecl_45158 ocfs2_set_refcount_tree fndecl 3 45158 NULL
162805 +enable_so_pwc_get_fps_Nala_fndecl_45162 pwc_get_fps_Nala fndecl 0 45162 NULL
162806 +enable_so_cmd_sg_cnt_srp_target_port_45169 cmd_sg_cnt srp_target_port 0 45169 NULL
162807 +enable_so_desc_len_skb_frame_desc_45170 desc_len skb_frame_desc 0 45170 NULL nohasharray
162808 +enable_so_pkcs7_sig_note_issuer_fndecl_45170 pkcs7_sig_note_issuer fndecl 5 45170 &enable_so_desc_len_skb_frame_desc_45170
162809 +enable_so_hpfs_remove_dirent_fndecl_45171 hpfs_remove_dirent fndecl 2 45171 NULL nohasharray
162810 +enable_so_remove_nearest_fndecl_45171 remove_nearest fndecl 4 45171 &enable_so_hpfs_remove_dirent_fndecl_45171 nohasharray
162811 +enable_so_n_ao_urbs_usbdux_private_45171 n_ao_urbs usbdux_private 0 45171 &enable_so_remove_nearest_fndecl_45171
162812 +enable_so_opticon_write_fndecl_45172 opticon_write fndecl 4 45172 NULL
162813 +enable_so_sel_write_checkreqprot_fndecl_45173 sel_write_checkreqprot fndecl 3 45173 NULL
162814 +enable_so_leaf_cut_entries_fndecl_45176 leaf_cut_entries fndecl 4-0 45176 NULL
162815 +enable_so_acl_alloc_num_fndecl_45177 acl_alloc_num fndecl 2-1 45177 NULL
162816 +enable_so_nfsd_splice_read_fndecl_45181 nfsd_splice_read fndecl 3 45181 NULL nohasharray
162817 +enable_so_quirk_awe32_add_ports_fndecl_45181 quirk_awe32_add_ports fndecl 3 45181 &enable_so_nfsd_splice_read_fndecl_45181
162818 +enable_so_n_namesz_elf32_note_45186 n_namesz elf32_note 0 45186 NULL
162819 +enable_so_gfs2_bmap_alloc_fndecl_45189 gfs2_bmap_alloc fndecl 7 45189 NULL
162820 +enable_so_mtu_l2cap_conn_45195 mtu l2cap_conn 0 45195 NULL
162821 +enable_so_count_user_sgentry_45207 count user_sgentry 0 45207 NULL
162822 +enable_so_pwr_tx_with_ps_read_fndecl_45216 pwr_tx_with_ps_read fndecl 3 45216 NULL
162823 +enable_so_nvif_object_init_fndecl_45219 nvif_object_init fndecl 6 45219 NULL
162824 +enable_so_l2cap_sock_recvmsg_fndecl_45221 l2cap_sock_recvmsg fndecl 3 45221 NULL
162825 +enable_so_ep_out_usbtest_info_45222 ep_out usbtest_info 0 45222 NULL
162826 +enable_so_nwords_xdr_stream_45223 nwords xdr_stream 0 45223 NULL
162827 +enable_so_emulator_task_switch_fndecl_45228 emulator_task_switch fndecl 2-3 45228 NULL nohasharray
162828 +enable_so_hsu_dma_alloc_desc_fndecl_45228 hsu_dma_alloc_desc fndecl 1 45228 &enable_so_emulator_task_switch_fndecl_45228
162829 +enable_so_cmt_orphans_ubifs_info_45232 cmt_orphans ubifs_info 0 45232 NULL
162830 +enable_so_packet_buffer_put_fndecl_45234 packet_buffer_put fndecl 3 45234 NULL
162831 +enable_so_ensure_zone_is_initialized_fndecl_45235 ensure_zone_is_initialized fndecl 2 45235 NULL
162832 +enable_so_max_cqes_mlx4_caps_45237 max_cqes mlx4_caps 0 45237 NULL
162833 +enable_so_internal_dev_change_mtu_fndecl_45242 internal_dev_change_mtu fndecl 2 45242 NULL
162834 +enable_so_aggregate_new_rx_fndecl_45246 aggregate_new_rx fndecl 4 45246 NULL
162835 +enable_so_f_height_fimc_frame_45250 f_height fimc_frame 0 45250 NULL
162836 +enable_so_base_erst_erange_45255 base erst_erange 0 45255 NULL
162837 +enable_so_ext4_update_inline_data_fndecl_45259 ext4_update_inline_data fndecl 3 45259 NULL
162838 +enable_so_nameLen_nw_info_struct_45260 nameLen nw_info_struct 0 45260 NULL
162839 +enable_so_check_sectors_in_chain_fndecl_45261 check_sectors_in_chain fndecl 2 45261 NULL
162840 +enable_so_num_rx_ring_sh_eth_private_45262 num_rx_ring sh_eth_private 0 45262 NULL
162841 +enable_so_alloc_buf_fndecl_45267 alloc_buf fndecl 2-3 45267 NULL
162842 +enable_so_generic_writepages_fndecl_45268 generic_writepages fndecl 0 45268 NULL nohasharray
162843 +enable_so_vmw_dmabuf_init_fndecl_45268 vmw_dmabuf_init fndecl 3 45268 &enable_so_generic_writepages_fndecl_45268
162844 +enable_so_mq_msgsize_mq_attr_45276 mq_msgsize mq_attr 0 45276 NULL
162845 +enable_so_rss_size_max_i40e_pf_45282 rss_size_max i40e_pf 0 45282 NULL
162846 +enable_so_mgt_set_varlen_fndecl_45287 mgt_set_varlen fndecl 4 45287 NULL
162847 +enable_so_ath6kl_sdio_write_async_fndecl_45290 ath6kl_sdio_write_async fndecl 4 45290 NULL
162848 +enable_so_scrub_chunk_fndecl_45293 scrub_chunk fndecl 5 45293 NULL
162849 +enable_so_rcvhdrcnt_qib_devdata_45297 rcvhdrcnt qib_devdata 0 45297 NULL
162850 +enable_so_hugetlbfs_read_actor_fndecl_45304 hugetlbfs_read_actor fndecl 0-4-2 45304 NULL
162851 +enable_so_iio_debugfs_read_reg_fndecl_45311 iio_debugfs_read_reg fndecl 3 45311 NULL
162852 +enable_so_atl1_change_mtu_fndecl_45313 atl1_change_mtu fndecl 2 45313 NULL nohasharray
162853 +enable_so_rx_count_ethtool_channels_45313 rx_count ethtool_channels 0 45313 &enable_so_atl1_change_mtu_fndecl_45313 nohasharray
162854 +enable_so_rx_ring_count_xgbe_prv_data_45313 rx_ring_count xgbe_prv_data 0 45313 &enable_so_rx_count_ethtool_channels_45313
162855 +enable_so_tstats_write_fndecl_45315 tstats_write fndecl 3 45315 NULL
162856 +enable_so_tipc_buf_acquire_fndecl_45318 tipc_buf_acquire fndecl 1 45318 NULL
162857 +enable_so_rx_data_fndecl_45321 rx_data fndecl 4 45321 NULL
162858 +enable_so_len_qib_diag_xpkt_45322 len qib_diag_xpkt 0 45322 NULL
162859 +enable_so_tipc_recv_stream_fndecl_45323 tipc_recv_stream fndecl 3 45323 NULL
162860 +enable_so_back_xfs_dir3_icleaf_hdr_45324 back xfs_dir3_icleaf_hdr 0 45324 NULL
162861 +enable_so_tcf_csum_ipv4_igmp_fndecl_45325 tcf_csum_ipv4_igmp fndecl 3 45325 NULL
162862 +enable_so_excessive_retries_read_fndecl_45338 excessive_retries_read fndecl 3 45338 NULL
162863 +enable_so_peer_chan_len_wmi_tdls_peer_capab_arg_45339 peer_chan_len wmi_tdls_peer_capab_arg 0 45339 NULL
162864 +enable_so_vm_munmap_fndecl_45341 vm_munmap fndecl 1-2 45341 NULL
162865 +enable_so___snd_util_mem_alloc_fndecl_45349 __snd_util_mem_alloc fndecl 2 45349 NULL
162866 +enable_so_uar_size_mlx4_dev_cap_45351 uar_size mlx4_dev_cap 0 45351 NULL
162867 +enable_so_fps_timblogiw_tvnorm_45355 fps timblogiw_tvnorm 0 45355 NULL
162868 +enable_so_reserve_bad_mem_fndecl_45356 reserve_bad_mem fndecl 2-3 45356 NULL
162869 +enable_so_icq_size_elevator_type_45359 icq_size elevator_type 0 45359 NULL
162870 +enable_so_mad_recvq_size_vardecl_mad_c_45372 mad_recvq_size vardecl_mad.c 0 45372 NULL
162871 +enable_so_get_urb_status_from_qtd_fndecl_45378 get_urb_status_from_qtd fndecl 0 45378 NULL
162872 +enable_so_txq_entries_efx_nic_45383 txq_entries efx_nic 0 45383 NULL
162873 +enable_so_nchildren_retu_data_45387 nchildren retu_data 0 45387 NULL
162874 +enable_so_ebcnt_vardecl_speedtest_c_45398 ebcnt vardecl_speedtest.c 0 45398 NULL
162875 +enable_so_get_dpb_count_s5p_mfc_hw_ops_45399 get_dpb_count s5p_mfc_hw_ops 0 45399 NULL
162876 +enable_so_last_txrate_idx_il3945_rs_sta_45402 last_txrate_idx il3945_rs_sta 0 45402 NULL
162877 +enable_so_xpc_nasid_mask_nbytes_vardecl_xpc_partition_c_45405 xpc_nasid_mask_nbytes vardecl_xpc_partition.c 0 45405 NULL
162878 +enable_so_mtu_l2cap_le_conn_req_45411 mtu l2cap_le_conn_req 0 45411 NULL
162879 +enable_so_brcmf_init_nvram_parser_fndecl_45415 brcmf_init_nvram_parser fndecl 3 45415 NULL
162880 +enable_so_lastUnit_INFTLPartition_45416 lastUnit INFTLPartition 0 45416 NULL
162881 +enable_so_pos_c4iw_debugfs_data_45424 pos c4iw_debugfs_data 0 45424 NULL
162882 +enable_so_fats_msdos_sb_info_45426 fats msdos_sb_info 0 45426 NULL
162883 +enable_so___munlock_pagevec_fill_fndecl_45430 __munlock_pagevec_fill fndecl 0-4 45430 NULL
162884 +enable_so_compat_SyS_get_mempolicy_fndecl_45436 compat_SyS_get_mempolicy fndecl 3 45436 NULL
162885 +enable_so_rn_tnamelen_nfsd4_rename_45437 rn_tnamelen nfsd4_rename 0 45437 NULL
162886 +enable_so_radeon_ttm_tt_set_userptr_fndecl_45438 radeon_ttm_tt_set_userptr fndecl 2 45438 NULL
162887 +enable_so_nfsd_hashsize_fndecl_45441 nfsd_hashsize fndecl 0 45441 NULL
162888 +enable_so_qcaspi_netdev_change_mtu_fndecl_45450 qcaspi_netdev_change_mtu fndecl 2 45450 NULL
162889 +enable_so_start_bdi_bd_transfer_45454 start_bdi bd_transfer 0 45454 NULL
162890 +enable_so_wTotalLength_usb_bos_descriptor_45455 wTotalLength usb_bos_descriptor 0 45455 NULL
162891 +enable_so_nonpaging_map_fndecl_45460 nonpaging_map fndecl 4 45460 NULL
162892 +enable_so_cfrfml_create_fndecl_45463 cfrfml_create fndecl 3 45463 NULL
162893 +enable_so_ssize_jumpshot_info_45467 ssize jumpshot_info 0 45467 NULL
162894 +enable_so_index_nullb_45470 index nullb 0 45470 NULL
162895 +enable_so_sockaddr_len_audit_context_45471 sockaddr_len audit_context 0 45471 NULL
162896 +enable_so_gx_line_delta_fndecl_45476 gx_line_delta fndecl 0-2-1 45476 NULL
162897 +enable_so_i_pos_fat_slot_info_45481 i_pos fat_slot_info 0 45481 NULL
162898 +enable_so_hdisplay_drm_display_mode_45484 hdisplay drm_display_mode 0 45484 NULL
162899 +enable_so_memblock_virt_alloc_try_nid_nopanic_fndecl_45487 memblock_virt_alloc_try_nid_nopanic fndecl 2-1-3-4 45487 NULL
162900 +enable_so_ovl_cache_entry_add_rb_fndecl_45488 ovl_cache_entry_add_rb fndecl 3 45488 NULL
162901 +enable_so_convert_initialized_extent_fndecl_45492 convert_initialized_extent fndecl 0-6 45492 NULL
162902 +enable_so_isofs_bmap_fndecl_45497 isofs_bmap fndecl 0-2 45497 NULL
162903 +enable_so_bdeSize_ULP_BDL_45501 bdeSize ULP_BDL 0 45501 NULL
162904 +enable_so_nci_uart_default_recv_buf_fndecl_45502 nci_uart_default_recv_buf fndecl 4 45502 NULL
162905 +enable_so_mwifiex_set_gen_ie_fndecl_45504 mwifiex_set_gen_ie fndecl 3 45504 NULL
162906 +enable_so_acl_alloc_stack_init_fndecl_45509 acl_alloc_stack_init fndecl 1 45509 NULL
162907 +enable_so_free_dind_blocks_fndecl_45512 free_dind_blocks fndecl 3 45512 NULL
162908 +enable_so_ubifs_recover_leb_fndecl_45516 ubifs_recover_leb fndecl 3 45516 NULL
162909 +enable_so_stv6110_write_regs_fndecl_45517 stv6110_write_regs fndecl 4 45517 NULL nohasharray
162910 +enable_so_buffer_size_vardecl_cpia2_v4l_c_45517 buffer_size vardecl_cpia2_v4l.c 0 45517 &enable_so_stv6110_write_regs_fndecl_45517
162911 +enable_so_inode_change_ok_fndecl_45525 inode_change_ok fndecl 0 45525 NULL
162912 +enable_so_cifs_partialpagewrite_fndecl_45527 cifs_partialpagewrite fndecl 2-3 45527 NULL nohasharray
162913 +enable_so_callback_via_vardecl_platform_pci_c_45527 callback_via vardecl_platform-pci.c 0 45527 &enable_so_cifs_partialpagewrite_fndecl_45527
162914 +enable_so_ssb_hcd_create_pdev_fndecl_45528 ssb_hcd_create_pdev fndecl 4-3 45528 NULL
162915 +enable_so_sizeof_dev_private_peak_usb_adapter_45529 sizeof_dev_private peak_usb_adapter 0 45529 NULL
162916 +enable_so_hpfs_trim_fs_fndecl_45531 hpfs_trim_fs fndecl 2-3 45531 NULL
162917 +enable_so_wl1273_fm_fops_write_fndecl_45534 wl1273_fm_fops_write fndecl 3 45534 NULL
162918 +enable_so_rtsx_usb_bulk_transfer_sglist_fndecl_45538 rtsx_usb_bulk_transfer_sglist fndecl 5-2-4 45538 NULL
162919 +enable_so_rate_n_flags_iwl_rx_phy_info_45542 rate_n_flags iwl_rx_phy_info 0 45542 NULL
162920 +enable_so_size_nft_expr_ops_45543 size nft_expr_ops 0 45543 NULL nohasharray
162921 +enable_so_arch_setup_dma_ops_fndecl_45543 arch_setup_dma_ops fndecl 3 45543 &enable_so_size_nft_expr_ops_45543
162922 +enable_so_if_sdio_host_to_card_fndecl_45545 if_sdio_host_to_card fndecl 4 45545 NULL
162923 +enable_so_mp_agg_pkt_limit_sdio_mmc_card_45546 mp_agg_pkt_limit sdio_mmc_card 0 45546 NULL
162924 +enable_so_ieee80211_if_read_dot11MeshConfirmTimeout_fndecl_45549 ieee80211_if_read_dot11MeshConfirmTimeout fndecl 3 45549 NULL
162925 +enable_so_driver_max_VFs_pci_sriov_45552 driver_max_VFs pci_sriov 0 45552 NULL
162926 +enable_so_bpp_via_format_45554 bpp via_format 0 45554 NULL
162927 +enable_so_pci_quatech_setup_fndecl_45560 pci_quatech_setup fndecl 4 45560 NULL
162928 +enable_so_syncinterval_snd_usb_endpoint_45567 syncinterval snd_usb_endpoint 0 45567 NULL
162929 +enable_so_SyS_prctl_fndecl_45569 SyS_prctl fndecl 4 45569 NULL
162930 +enable_so_height_pwc_device_45570 height pwc_device 0 45570 NULL
162931 +enable_so_get_gate_page_fndecl_45571 get_gate_page fndecl 2 45571 NULL
162932 +enable_so_srp_create_fr_pool_fndecl_45572 srp_create_fr_pool fndecl 3 45572 NULL
162933 +enable_so_s_partition_func_udf_part_map_45579 s_partition_func udf_part_map 0 45579 NULL
162934 +enable_so_f2fs_sync_file_fndecl_45585 f2fs_sync_file fndecl 2-3 45585 NULL
162935 +enable_so_wpan_phy_new_fndecl_45593 wpan_phy_new fndecl 2 45593 NULL
162936 +enable_so_upd_received_ubi_volume_45595 upd_received ubi_volume 0 45595 NULL
162937 +enable_so_slave_init_fndecl_45597 slave_init fndecl 0 45597 NULL
162938 +enable_so_readpos_cx18_buffer_45604 readpos cx18_buffer 0 45604 NULL
162939 +enable_so_l_logBBsize_xlog_45614 l_logBBsize xlog 0 45614 NULL
162940 +enable_so_crtc_vblank_end_drm_display_mode_45620 crtc_vblank_end drm_display_mode 0 45620 NULL
162941 +enable_so_smk_read_ambient_fndecl_45623 smk_read_ambient fndecl 3 45623 NULL
162942 +enable_so_image_size_nvbios_npdeT_45624 image_size nvbios_npdeT 0 45624 NULL
162943 +enable_so_blocknr_disk_index_entry_45635 blocknr disk_index_entry 0 45635 NULL
162944 +enable_so_advmss_tcp_sock_45637 advmss tcp_sock 0 45637 NULL nohasharray
162945 +enable_so_btrfs_bio_alloc_fndecl_45637 btrfs_bio_alloc fndecl 2-3 45637 &enable_so_advmss_tcp_sock_45637 nohasharray
162946 +enable_so_ifalias_store_fndecl_45637 ifalias_store fndecl 4 45637 &enable_so_btrfs_bio_alloc_fndecl_45637
162947 +enable_so_tcfv_push_vid_tcf_vlan_45639 tcfv_push_vid tcf_vlan 0 45639 NULL
162948 +enable_so___verify_planes_array_fndecl_45650 __verify_planes_array fndecl 0 45650 NULL
162949 +enable_so_inftl_writeblock_fndecl_45653 inftl_writeblock fndecl 2 45653 NULL
162950 +enable_so_preproc_res_proc_context_45654 preproc res_proc_context 0 45654 NULL
162951 +enable_so_size_core_name_45656 size core_name 0 45656 NULL
162952 +enable_so_submit_bh_fndecl_45660 submit_bh fndecl 0 45660 NULL
162953 +enable_so_jfs_direct_IO_fndecl_45661 jfs_direct_IO fndecl 3 45661 NULL
162954 +enable_so_blockmask_alauda_media_info_45662 blockmask alauda_media_info 0 45662 NULL
162955 +enable_so_xfer_from_user_fndecl_45672 xfer_from_user fndecl 3 45672 NULL
162956 +enable_so_dmi_base_vardecl_dmi_scan_c_45673 dmi_base vardecl_dmi_scan.c 0 45673 NULL nohasharray
162957 +enable_so_videobuf_dqbuf_fndecl_45673 videobuf_dqbuf fndecl 0 45673 &enable_so_dmi_base_vardecl_dmi_scan_c_45673
162958 +enable_so__snd_pcm_hw_param_min_fndecl_45677 _snd_pcm_hw_param_min fndecl 3 45677 NULL
162959 +enable_so_ocfs2_get_sector_fndecl_45678 ocfs2_get_sector fndecl 4-3 45678 NULL
162960 +enable_so_ib_umem_odp_map_dma_pages_fndecl_45679 ib_umem_odp_map_dma_pages fndecl 0-2 45679 NULL nohasharray
162961 +enable_so_lhead_offs_ubifs_info_45679 lhead_offs ubifs_info 0 45679 &enable_so_ib_umem_odp_map_dma_pages_fndecl_45679
162962 +enable_so_hfsplus_getxattr_finder_info_fndecl_45680 hfsplus_getxattr_finder_info fndecl 0 45680 NULL
162963 +enable_so_src_y_yuv_frame_info_45681 src_y yuv_frame_info 0 45681 NULL
162964 +enable_so_sys_add_key_fndecl_45691 sys_add_key fndecl 4 45691 NULL nohasharray
162965 +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
162966 +enable_so_endpt_ubifs_unclean_leb_45692 endpt ubifs_unclean_leb 0 45692 NULL
162967 +enable_so___netdev_adjacent_dev_insert_fndecl_45697 __netdev_adjacent_dev_insert fndecl 0 45697 NULL
162968 +enable_so_write_file_spectral_short_repeat_fndecl_45700 write_file_spectral_short_repeat fndecl 3 45700 NULL
162969 +enable_so_shift_badblocks_45703 shift badblocks 0 45703 NULL
162970 +enable_so_offset_ixgbe_ring_feature_45704 offset ixgbe_ring_feature 0 45704 NULL
162971 +enable_so_data_transfer_length_hpt_iop_request_get_config_45705 data_transfer_length hpt_iop_request_get_config 0 45705 NULL
162972 +enable_so_do_splice_direct_fndecl_45710 do_splice_direct fndecl 5-0 45710 NULL nohasharray
162973 +enable_so_fi_nblocks_nilfs_finfo_45710 fi_nblocks nilfs_finfo 0 45710 &enable_so_do_splice_direct_fndecl_45710 nohasharray
162974 +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
162975 +enable_so_st5481_setup_isocpipes_fndecl_45711 st5481_setup_isocpipes fndecl 6-4 45711 NULL
162976 +enable_so_rl_niovs_rpcrdma_req_45712 rl_niovs rpcrdma_req 0 45712 NULL
162977 +enable_so_width_cx23885_dev_45714 width cx23885_dev 0 45714 NULL
162978 +enable_so_ocfs2_xattr_set_fndecl_45720 ocfs2_xattr_set fndecl 5 45720 NULL
162979 +enable_so_num_cqs_mlx4_caps_45727 num_cqs mlx4_caps 0 45727 NULL
162980 +enable_so_debug_debug4_read_fndecl_45732 debug_debug4_read fndecl 3 45732 NULL nohasharray
162981 +enable_so_len_bnx2x_fw_file_section_45732 len bnx2x_fw_file_section 0 45732 &enable_so_debug_debug4_read_fndecl_45732
162982 +enable_so_sys_ptrace_fndecl_45738 sys_ptrace fndecl 3 45738 NULL
162983 +enable_so___add_inline_refs_fndecl_45744 __add_inline_refs fndecl 3 45744 NULL
162984 +enable_so_get_args_iw_priv_args_45748 get_args iw_priv_args 0 45748 NULL
162985 +enable_so_wil_write_file_recovery_fndecl_45753 wil_write_file_recovery fndecl 3 45753 NULL
162986 +enable_so_vslen_vardecl_matroxfb_base_c_45755 vslen vardecl_matroxfb_base.c 0 45755 NULL
162987 +enable_so_stb0899_read_reg_fndecl_45758 stb0899_read_reg fndecl 0 45758 NULL
162988 +enable_so_extra_postfix_len_ieee80211_crypto_ops_45763 extra_postfix_len ieee80211_crypto_ops 0 45763 NULL
162989 +enable_so_count_n_hdlc_buf_45767 count n_hdlc_buf 0 45767 NULL
162990 +enable_so_size_entry_mwt_fndecl_45771 size_entry_mwt fndecl 0 45771 NULL
162991 +enable_so_set_acoustic_fndecl_45772 set_acoustic fndecl 2 45772 NULL
162992 +enable_so_flows_cnt_fq_codel_sched_data_45775 flows_cnt fq_codel_sched_data 0 45775 NULL
162993 +enable_so_len_ch_mem_range_45781 len ch_mem_range 0 45781 NULL
162994 +enable_so_get_inode_info_fndecl_45784 get_inode_info fndecl 0 45784 NULL nohasharray
162995 +enable_so_ath6kl_wmi_set_htcap_cmd_fndecl_45784 ath6kl_wmi_set_htcap_cmd fndecl 2 45784 &enable_so_get_inode_info_fndecl_45784
162996 +enable_so_online_pages_fndecl_45786 online_pages fndecl 1-2 45786 NULL
162997 +enable_so_change_xattr_fndecl_45789 change_xattr fndecl 5 45789 NULL
162998 +enable_so_i2c_r_fndecl_45804 i2c_r fndecl 0 45804 NULL
162999 +enable_so_h_suballoc_loc_ocfs2_extent_block_45805 h_suballoc_loc ocfs2_extent_block 0 45805 NULL
163000 +enable_so_len_sync_pt_info_45809 len sync_pt_info 0 45809 NULL
163001 +enable_so_max_node_size_pnp_dev_node_info_45813 max_node_size pnp_dev_node_info 0 45813 NULL
163002 +enable_so_xfs_zero_remaining_bytes_fndecl_45820 xfs_zero_remaining_bytes fndecl 3-2 45820 NULL
163003 +enable_so_msg_init_fndecl_45825 msg_init fndecl 4 45825 NULL
163004 +enable_so_tx_cmd_ep_usb_card_rec_45833 tx_cmd_ep usb_card_rec 0 45833 NULL
163005 +enable_so_max_channels_evtchn_ops_45841 max_channels evtchn_ops 0 45841 NULL
163006 +enable_so_submit_extent_page_fndecl_45843 submit_extent_page fndecl 6-4-5 45843 NULL
163007 +enable_so_width_zr364xx_camera_45844 width zr364xx_camera 0 45844 NULL nohasharray
163008 +enable_so_mwifiex_cfg80211_assoc_fndecl_45844 mwifiex_cfg80211_assoc fndecl 2 45844 &enable_so_width_zr364xx_camera_45844
163009 +enable_so_bochs_gem_create_fndecl_45847 bochs_gem_create fndecl 2 45847 NULL nohasharray
163010 +enable_so_sys_mlock_fndecl_45847 sys_mlock fndecl 1-2 45847 &enable_so_bochs_gem_create_fndecl_45847
163011 +enable_so_xfs_rtallocate_extent_size_fndecl_45848 xfs_rtallocate_extent_size fndecl 4-8 45848 NULL
163012 +enable_so_num_fault_mutexes_vardecl_hugetlb_c_45857 num_fault_mutexes vardecl_hugetlb.c 0 45857 NULL
163013 +enable_so_num_wsm_udp_port_filter_hdr_45858 num wsm_udp_port_filter_hdr 0 45858 NULL
163014 +enable_so_data_used_cx18_mdl_ack_45859 data_used cx18_mdl_ack 0 45859 NULL
163015 +enable_so_net_header_len_inet_connection_sock_af_ops_45863 net_header_len inet_connection_sock_af_ops 0 45863 NULL
163016 +enable_so___a2mp_build_fndecl_45864 __a2mp_build fndecl 3 45864 NULL
163017 +enable_so_xfrm_nr_xfrm_policy_45865 xfrm_nr xfrm_policy 0 45865 NULL
163018 +enable_so_parity_ore_layout_45869 parity ore_layout 0 45869 NULL nohasharray
163019 +enable_so_hsc_msg_alloc_fndecl_45869 hsc_msg_alloc fndecl 1 45869 &enable_so_parity_ore_layout_45869
163020 +enable_so_fpfd_adf4350_state_45870 fpfd adf4350_state 0 45870 NULL
163021 +enable_so_aead_sendpage_fndecl_45873 aead_sendpage fndecl 4-3 45873 NULL
163022 +enable_so_mwifiex_alloc_sdio_mpa_buffers_fndecl_45874 mwifiex_alloc_sdio_mpa_buffers fndecl 2-3 45874 NULL
163023 +enable_so_pti_char_write_fndecl_45875 pti_char_write fndecl 3 45875 NULL
163024 +enable_so_ext4_es_remove_extent_fndecl_45877 ext4_es_remove_extent fndecl 3-2 45877 NULL
163025 +enable_so_quality_v4l2_jpegcompression_45881 quality v4l2_jpegcompression 0 45881 NULL
163026 +enable_so_max_buffer_sectors_vardecl_floppy_c_45884 max_buffer_sectors vardecl_floppy.c 0 45884 NULL
163027 +enable_so_index_cnt_btrfs_inode_45890 index_cnt btrfs_inode 0 45890 NULL
163028 +enable_so_do_shared_fault_fndecl_45891 do_shared_fault fndecl 3-5 45891 NULL
163029 +enable_so___absent_pages_in_range_fndecl_45892 __absent_pages_in_range fndecl 0-2-3 45892 NULL
163030 +enable_so_smbase_kvm_vcpu_arch_45895 smbase kvm_vcpu_arch 0 45895 NULL nohasharray
163031 +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
163032 +enable_so_ath6kl_lrssi_roam_read_fndecl_45901 ath6kl_lrssi_roam_read fndecl 3 45901 NULL
163033 +enable_so_generic_file_direct_write_fndecl_45904 generic_file_direct_write fndecl 3-0 45904 NULL nohasharray
163034 +enable_so_bLength_usb_descriptor_header_45904 bLength usb_descriptor_header 0 45904 &enable_so_generic_file_direct_write_fndecl_45904
163035 +enable_so_jhead_cnt_ubifs_info_45905 jhead_cnt ubifs_info 0 45905 NULL
163036 +enable_so_init_currently_empty_zone_fndecl_45907 init_currently_empty_zone fndecl 2 45907 NULL
163037 +enable_so_vce_v1_0_bo_size_fndecl_45909 vce_v1_0_bo_size fndecl 0 45909 NULL
163038 +enable_so_bg_itable_unused_hi_ext4_group_desc_45918 bg_itable_unused_hi ext4_group_desc 0 45918 NULL
163039 +enable_so_lpfc_idiag_queacc_write_fndecl_45920 lpfc_idiag_queacc_write fndecl 3 45920 NULL
163040 +enable_so_wl1271_tx_allocate_fndecl_45921 wl1271_tx_allocate fndecl 4 45921 NULL
163041 +enable_so_mru_asyncppp_45929 mru asyncppp 0 45929 NULL
163042 +enable_so_fan_count_applesmc_registers_45934 fan_count applesmc_registers 0 45934 NULL
163043 +enable_so_num_ports_pciserial_board_45938 num_ports pciserial_board 0 45938 NULL
163044 +enable_so_sdhci_pltfm_register_fndecl_45940 sdhci_pltfm_register fndecl 3 45940 NULL
163045 +enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 ath6kl_wmi_setpmkid_cmd fndecl 2 45949 NULL nohasharray
163046 +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
163047 +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
163048 +enable_so_fraglen_decryptor_desc_45950 fraglen decryptor_desc 0 45950 NULL nohasharray
163049 +enable_so_read_file_ackto_fndecl_45950 read_file_ackto fndecl 3 45950 &enable_so_fraglen_decryptor_desc_45950
163050 +enable_so_sigma_fw_load_samplerates_fndecl_45951 sigma_fw_load_samplerates fndecl 3-0 45951 NULL
163051 +enable_so_security_set_fndecl_45953 security_set fndecl 4 45953 NULL
163052 +enable_so_max_sge_ib_srq_attr_45956 max_sge ib_srq_attr 0 45956 NULL
163053 +enable_so_qnx6_find_entry_fndecl_45969 qnx6_find_entry fndecl 0 45969 NULL nohasharray
163054 +enable_so_len_ippp_buf_queue_45969 len ippp_buf_queue 0 45969 &enable_so_qnx6_find_entry_fndecl_45969
163055 +enable_so_ext_tree_split_fndecl_45973 ext_tree_split fndecl 3 45973 NULL
163056 +enable_so_dbdma_cmd_yellowfin_desc_45980 dbdma_cmd yellowfin_desc 0 45980 NULL nohasharray
163057 +enable_so_target_size_ebt_entry_target_45980 target_size ebt_entry_target 0 45980 &enable_so_dbdma_cmd_yellowfin_desc_45980
163058 +enable_so_i40e_calculate_l2fpm_size_fndecl_45987 i40e_calculate_l2fpm_size fndecl 0-1-2-3-4 45987 NULL
163059 +enable_so_up_fnode_45991 up fnode 0 45991 NULL
163060 +enable_so_alloc_chrdev_region_fndecl_45995 alloc_chrdev_region fndecl 0 45995 NULL
163061 +enable_so___probe_kernel_read_fndecl_45996 __probe_kernel_read fndecl 3 45996 NULL
163062 +enable_so_sctp_v4_err_fndecl_45997 sctp_v4_err fndecl 2 45997 NULL nohasharray
163063 +enable_so_num_total_dacs_snd_ice1712_45997 num_total_dacs snd_ice1712 0 45997 &enable_so_sctp_v4_err_fndecl_45997
163064 +enable_so_finish_request_fndecl_46010 finish_request fndecl 5 46010 NULL
163065 +enable_so_pcs_duplex_stmmac_extra_stats_46013 pcs_duplex stmmac_extra_stats 0 46013 NULL
163066 +enable_so_get_derived_key_fndecl_46015 get_derived_key fndecl 4 46015 NULL
163067 +enable_so_afs_proc_cells_write_fndecl_46016 afs_proc_cells_write fndecl 3 46016 NULL
163068 +enable_so_vmemmap_alloc_block_buf_fndecl_46037 vmemmap_alloc_block_buf fndecl 1 46037 NULL
163069 +enable_so_acl_mtu_hci_dev_46038 acl_mtu hci_dev 0 46038 NULL
163070 +enable_so_value_len_ext3_xattr_info_46044 value_len ext3_xattr_info 0 46044 NULL
163071 +enable_so_dma_size_qlcnic_host_rds_ring_46045 dma_size qlcnic_host_rds_ring 0 46045 NULL
163072 +enable_so_p9_client_prepare_req_fndecl_46048 p9_client_prepare_req fndecl 3 46048 NULL
163073 +enable_so___vmalloc_fndecl_46051 __vmalloc fndecl 1 46051 NULL
163074 +enable_so_pair_device_fndecl_46052 pair_device fndecl 4 46052 NULL nohasharray
163075 +enable_so_event_oom_late_read_fndecl_46052 event_oom_late_read fndecl 3 46052 &enable_so_pair_device_fndecl_46052 nohasharray
163076 +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
163077 +enable_so_sys_lsetxattr_fndecl_46058 sys_lsetxattr fndecl 4 46058 NULL
163078 +enable_so_sisfb_parm_mem_sis_video_info_46063 sisfb_parm_mem sis_video_info 0 46063 NULL nohasharray
163079 +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
163080 +enable_so_MaxBurstLength_iscsi_sess_ops_46064 MaxBurstLength iscsi_sess_ops 0 46064 NULL nohasharray
163081 +enable_so_s_start_bfs_super_block_46064 s_start bfs_super_block 0 46064 &enable_so_MaxBurstLength_iscsi_sess_ops_46064
163082 +enable_so_seg_count_drm_buf_entry_46065 seg_count drm_buf_entry 0 46065 NULL
163083 +enable_so_piobufs_qib_ctxtdata_46066 piobufs qib_ctxtdata 0 46066 NULL
163084 +enable_so_FirstPhysicalEUN_NFTLMediaHeader_46068 FirstPhysicalEUN NFTLMediaHeader 0 46068 NULL
163085 +enable_so_iwl_dbgfs_mac_params_read_fndecl_46081 iwl_dbgfs_mac_params_read fndecl 3 46081 NULL
163086 +enable_so___devcgroup_check_permission_fndecl_46082 __devcgroup_check_permission fndecl 0 46082 NULL
163087 +enable_so_wSamplesPerFrame_uac_format_type_ii_ext_descriptor_46084 wSamplesPerFrame uac_format_type_ii_ext_descriptor 0 46084 NULL
163088 +enable_so_alloc_dca_provider_fndecl_46085 alloc_dca_provider fndecl 2 46085 NULL
163089 +enable_so_dm_startblk_adfs_discmap_46088 dm_startblk adfs_discmap 0 46088 NULL
163090 +enable_so_nr_pages_splice_pipe_desc_46095 nr_pages splice_pipe_desc 0 46095 NULL
163091 +enable_so_v9fs_xattr_set_acl_fndecl_46096 v9fs_xattr_set_acl fndecl 4 46096 NULL
163092 +enable_so_len_sfi_table_header_46097 len sfi_table_header 0 46097 NULL nohasharray
163093 +enable_so_ubifs_setxattr_fndecl_46097 ubifs_setxattr fndecl 4 46097 &enable_so_len_sfi_table_header_46097 nohasharray
163094 +enable_so_hidraw_read_fndecl_46097 hidraw_read fndecl 3 46097 &enable_so_ubifs_setxattr_fndecl_46097
163095 +enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103 jbd2_journal_write_metadata_buffer fndecl 4 46103 NULL nohasharray
163096 +enable_so_ym_wmfw_adsp2_alg_hdr_46103 ym wmfw_adsp2_alg_hdr 0 46103 &enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103
163097 +enable_so_bs_vardecl_null_blk_c_46104 bs vardecl_null_blk.c 0 46104 NULL
163098 +enable_so_page_add_new_anon_rmap_fndecl_46112 page_add_new_anon_rmap fndecl 3 46112 NULL
163099 +enable_so_ioperm_get_fndecl_46118 ioperm_get fndecl 4-3 46118 NULL
163100 +enable_so_mic_calc_failure_read_fndecl_46119 mic_calc_failure_read fndecl 3 46119 NULL
163101 +enable_so_len_eeprom_private_46124 len eeprom_private 0 46124 NULL
163102 +enable_so_height_saa7134_dev_46126 height saa7134_dev 0 46126 NULL nohasharray
163103 +enable_so_tx_totallen_ncp_request_reply_46126 tx_totallen ncp_request_reply 0 46126 &enable_so_height_saa7134_dev_46126
163104 +enable_so_get_mctgt_type_fndecl_46128 get_mctgt_type fndecl 2 46128 NULL nohasharray
163105 +enable_so_len_cp_header_46128 len cp_header 0 46128 &enable_so_get_mctgt_type_fndecl_46128
163106 +enable_so_sriov_enable_fndecl_46138 sriov_enable fndecl 2 46138 NULL
163107 +enable_so_prism2_info_scanresults_fndecl_46146 prism2_info_scanresults fndecl 3 46146 NULL
163108 +enable_so_memblock_alloc_range_nid_fndecl_46147 memblock_alloc_range_nid fndecl 0-2-1-3-4 46147 NULL
163109 +enable_so_udf_put_filename_fndecl_46157 udf_put_filename fndecl 0 46157 NULL
163110 +enable_so_ieee80211_if_read_fwded_unicast_fndecl_46159 ieee80211_if_read_fwded_unicast fndecl 3 46159 NULL
163111 +enable_so_transfer_len_xhci_transfer_event_46161 transfer_len xhci_transfer_event 0 46161 NULL
163112 +enable_so_max_segs_mmc_test_area_46176 max_segs mmc_test_area 0 46176 NULL
163113 +enable_so_key_size_ecryptfs_private_key_46181 key_size ecryptfs_private_key 0 46181 NULL nohasharray
163114 +enable_so_long_retry_limit_read_fndecl_46181 long_retry_limit_read fndecl 3 46181 &enable_so_key_size_ecryptfs_private_key_46181
163115 +enable_so_mlock_fixup_fndecl_46182 mlock_fixup fndecl 4-3 46182 NULL
163116 +enable_so_size_aper_size_info_32_46193 size aper_size_info_32 0 46193 NULL nohasharray
163117 +enable_so_fuse_file_llseek_fndecl_46193 fuse_file_llseek fndecl 2 46193 &enable_so_size_aper_size_info_32_46193
163118 +enable_so_length_usb_iso_packet_descriptor_46197 length usb_iso_packet_descriptor 0 46197 NULL
163119 +enable_so_sctp_manip_pkt_fndecl_46198 sctp_manip_pkt fndecl 4 46198 NULL
163120 +enable_so_musb_readb_vardecl_46199 musb_readb vardecl 0 46199 NULL nohasharray
163121 +enable_so_snd_interval_refine_set_fndecl_46199 snd_interval_refine_set fndecl 2 46199 &enable_so_musb_readb_vardecl_46199
163122 +enable_so_efx_rx_packet_gro_fndecl_46201 efx_rx_packet_gro fndecl 3 46201 NULL
163123 +enable_so_count_raw_sock_46204 count raw_sock 0 46204 NULL
163124 +enable_so_hdrlen_ip_beet_phdr_46210 hdrlen ip_beet_phdr 0 46210 NULL nohasharray
163125 +enable_so_sync_request_md_personality_46210 sync_request md_personality 0 46210 &enable_so_hdrlen_ip_beet_phdr_46210
163126 +enable_so_assocresp_ies_len_cfg80211_beacon_data_46212 assocresp_ies_len cfg80211_beacon_data 0 46212 NULL
163127 +enable_so_modify_index_fndecl_46216 modify_index fndecl 3 46216 NULL
163128 +enable_so_unuse_pte_fndecl_46217 unuse_pte fndecl 3 46217 NULL
163129 +enable_so_cob_size_savagefb_par_46219 cob_size savagefb_par 0 46219 NULL
163130 +enable_so_ipw_write_fndecl_46220 ipw_write fndecl 3 46220 NULL
163131 +enable_so_name_len_ext3_dir_entry_2_46227 name_len ext3_dir_entry_2 0 46227 NULL
163132 +enable_so_bLength_usb_interface_assoc_descriptor_46229 bLength usb_interface_assoc_descriptor 0 46229 NULL
163133 +enable_so_venus_remove_fndecl_46230 venus_remove fndecl 4 46230 NULL
163134 +enable_so_mei_nfc_recv_fndecl_46235 mei_nfc_recv fndecl 0-3 46235 NULL
163135 +enable_so_rsn_ie_len_libipw_network_46238 rsn_ie_len libipw_network 0 46238 NULL nohasharray
163136 +enable_so_xlog_do_recover_fndecl_46238 xlog_do_recover fndecl 3 46238 &enable_so_rsn_ie_len_libipw_network_46238
163137 +enable_so_response_length_mlx4_uverbs_ex_query_device_resp_46245 response_length mlx4_uverbs_ex_query_device_resp 0 46245 NULL
163138 +enable_so_ieee80211_if_read_dot11MeshHWMPmaxPREQretries_fndecl_46246 ieee80211_if_read_dot11MeshHWMPmaxPREQretries fndecl 3 46246 NULL
163139 +enable_so_node_acl_size_target_core_fabric_ops_46247 node_acl_size target_core_fabric_ops 0 46247 NULL
163140 +enable_so_erst_clear_fndecl_46248 erst_clear fndecl 1 46248 NULL
163141 +enable_so_proc_pid_cmdline_read_fndecl_46249 proc_pid_cmdline_read fndecl 3 46249 NULL
163142 +enable_so_gspca_dev_probe2_fndecl_46250 gspca_dev_probe2 fndecl 4 46250 NULL
163143 +enable_so_extra_beacon_tailroom_ieee80211_hw_46256 extra_beacon_tailroom ieee80211_hw 0 46256 NULL
163144 +enable_so_size_xenvif_rx_meta_46270 size xenvif_rx_meta 0 46270 NULL
163145 +enable_so_qla27xx_fwdt_template_size_fndecl_46273 qla27xx_fwdt_template_size fndecl 0 46273 NULL
163146 +enable_so_onenand_read_oob_fndecl_46274 onenand_read_oob fndecl 2 46274 NULL
163147 +enable_so_smem_len_iwl_cfg_46276 smem_len iwl_cfg 0 46276 NULL
163148 +enable_so_desc_nr_md_rdev_46281 desc_nr md_rdev 0 46281 NULL
163149 +enable_so_xi_value_len_ocfs2_xattr_info_46285 xi_value_len ocfs2_xattr_info 0 46285 NULL
163150 +enable_so_dq_local_phys_blk_ocfs2_dquot_46292 dq_local_phys_blk ocfs2_dquot 0 46292 NULL
163151 +enable_so_len_nfs3_setaclargs_46293 len nfs3_setaclargs 0 46293 NULL
163152 +enable_so_tx_data_size_ircomm_tty_cb_46294 tx_data_size ircomm_tty_cb 0 46294 NULL
163153 +enable_so_omfs_allocate_block_fndecl_46295 omfs_allocate_block fndecl 2 46295 NULL
163154 +enable_so_status2_ar9003_rxs_46299 status2 ar9003_rxs 0 46299 NULL
163155 +enable_so_offset_nfsd3_readargs_46311 offset nfsd3_readargs 0 46311 NULL nohasharray
163156 +enable_so_ffs_prepare_buffer_fndecl_46311 ffs_prepare_buffer fndecl 2 46311 &enable_so_offset_nfsd3_readargs_46311
163157 +enable_so_num_vci_lanai_dev_46318 num_vci lanai_dev 0 46318 NULL
163158 +enable_so_biovec_create_pool_fndecl_46325 biovec_create_pool fndecl 1 46325 NULL nohasharray
163159 +enable_so_unit_qib_devdata_46325 unit qib_devdata 0 46325 &enable_so_biovec_create_pool_fndecl_46325
163160 +enable_so_i_size_inode_46327 i_size inode 0 46327 NULL
163161 +enable_so_pvr2_ioread_set_sync_key_fndecl_46329 pvr2_ioread_set_sync_key fndecl 3 46329 NULL
163162 +enable_so_shmem_zero_setup_fndecl_46334 shmem_zero_setup fndecl 0 46334 NULL nohasharray
163163 +enable_so_max_vnic_func_qlcnic_hardware_context_46334 max_vnic_func qlcnic_hardware_context 0 46334 &enable_so_shmem_zero_setup_fndecl_46334
163164 +enable_so_mwifiex_cfg80211_tdls_mgmt_fndecl_46335 mwifiex_cfg80211_tdls_mgmt fndecl 10 46335 NULL
163165 +enable_so_stv6110_read_regs_fndecl_46339 stv6110_read_regs fndecl 4 46339 NULL
163166 +enable_so_af9013_rd_regs_i2c_fndecl_46343 af9013_rd_regs_i2c fndecl 5 46343 NULL nohasharray
163167 +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
163168 +enable_so_recently_deleted_fndecl_46346 recently_deleted fndecl 3 46346 NULL
163169 +enable_so_zoran_v4l_set_format_fndecl_46347 zoran_v4l_set_format fndecl 2-3 46347 NULL
163170 +enable_so_fc_frame_alloc_fill_fndecl_46353 fc_frame_alloc_fill fndecl 2 46353 NULL
163171 +enable_so_wm_adsp_debugfs_bin_read_fndecl_46356 wm_adsp_debugfs_bin_read fndecl 3 46356 NULL
163172 +enable_so_dvb_ep_isoc_em28xx_46357 dvb_ep_isoc em28xx 0 46357 NULL
163173 +enable_so_debilen_av7110_46363 debilen av7110 0 46363 NULL
163174 +enable_so_ring_cons_per_user_data_46365 ring_cons per_user_data 0 46365 NULL
163175 +enable_so_max_write_size_ubifs_info_46369 max_write_size ubifs_info 0 46369 NULL nohasharray
163176 +enable_so_SyS_sched_setaffinity_fndecl_46369 SyS_sched_setaffinity fndecl 2 46369 &enable_so_max_write_size_ubifs_info_46369
163177 +enable_so_device_create_with_groups_fndecl_46371 device_create_with_groups fndecl 3 46371 NULL
163178 +enable_so_descriptor_loc_fndecl_46373 descriptor_loc fndecl 0-3-2 46373 NULL
163179 +enable_so_bnx2_change_mtu_fndecl_46374 bnx2_change_mtu fndecl 2 46374 NULL nohasharray
163180 +enable_so_fs_path_ensure_buf_fndecl_46374 fs_path_ensure_buf fndecl 2 46374 &enable_so_bnx2_change_mtu_fndecl_46374
163181 +enable_so_acpi_ds_build_internal_buffer_obj_fndecl_46379 acpi_ds_build_internal_buffer_obj fndecl 3 46379 NULL
163182 +enable_so_max_loop_vardecl_loop_c_46402 max_loop vardecl_loop.c 0 46402 NULL
163183 +enable_so_piosize4k_qib_devdata_46406 piosize4k qib_devdata 0 46406 NULL
163184 +enable_so_SavagePanelWidth_savagefb_par_46407 SavagePanelWidth savagefb_par 0 46407 NULL
163185 +enable_so_skb_maybe_pull_tail_fndecl_46422 skb_maybe_pull_tail fndecl 3 46422 NULL
163186 +enable_so_proberesp_ies_len_cfg80211_beacon_data_46424 proberesp_ies_len cfg80211_beacon_data 0 46424 NULL
163187 +enable_so_len_minstrel_debugfs_info_46425 len minstrel_debugfs_info 0 46425 NULL
163188 +enable_so_rds_pin_pages_fndecl_46432 rds_pin_pages fndecl 1-0 46432 NULL
163189 +enable_so_st21nfca_hci_dep_link_up_fndecl_46438 st21nfca_hci_dep_link_up fndecl 5 46438 NULL nohasharray
163190 +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
163191 +enable_so_vid_bridge_vlan_info_46442 vid bridge_vlan_info 0 46442 NULL nohasharray
163192 +enable_so_len_acm_wb_46442 len acm_wb 0 46442 &enable_so_vid_bridge_vlan_info_46442 nohasharray
163193 +enable_so_nframes_gspca_dev_46442 nframes gspca_dev 0 46442 &enable_so_len_acm_wb_46442
163194 +enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444 btrfsic_process_superblock_dev_mirror fndecl 4 46444 NULL nohasharray
163195 +enable_so_iblock_execute_unmap_fndecl_46444 iblock_execute_unmap fndecl 2-3 46444 &enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444
163196 +enable_so_C_SYSC_get_mempolicy_fndecl_46447 C_SYSC_get_mempolicy fndecl 3 46447 NULL
163197 +enable_so__iwl_dbgfs_bcast_filters_write_fndecl_46448 _iwl_dbgfs_bcast_filters_write fndecl 3 46448 NULL
163198 +enable_so_fb_base_phys_mb862xxfb_par_46449 fb_base_phys mb862xxfb_par 0 46449 NULL
163199 +enable_so_snd_seq_oss_writeq_new_fndecl_46455 snd_seq_oss_writeq_new fndecl 2 46455 NULL
163200 +enable_so_nfsd_nrpools_fndecl_46460 nfsd_nrpools fndecl 0 46460 NULL
163201 +enable_so_ib_copy_from_udata_fndecl_46461 ib_copy_from_udata fndecl 3 46461 NULL
163202 +enable_so_size_drm_local_map_46462 size drm_local_map 0 46462 NULL
163203 +enable_so_get_znode_fndecl_46463 get_znode fndecl 3 46463 NULL
163204 +enable_so_ssid_len_hfa384x_hostscan_result_46466 ssid_len hfa384x_hostscan_result 0 46466 NULL
163205 +enable_so_ext4_resize_fs_fndecl_46468 ext4_resize_fs fndecl 2 46468 NULL
163206 +enable_so_kmalloc_large_node_fndecl_46469 kmalloc_large_node fndecl 1 46469 NULL
163207 +enable_so_hpfs_add_de_fndecl_46472 hpfs_add_de fndecl 4 46472 NULL
163208 +enable_so_idr_alloc_fndecl_46474 idr_alloc fndecl 0 46474 NULL
163209 +enable_so_mpi_get_nbits_fndecl_46476 mpi_get_nbits fndecl 0 46476 NULL
163210 +enable_so_nla_put_nohdr_fndecl_46479 nla_put_nohdr fndecl 2 46479 NULL
163211 +enable_so_hr_num_pages_o2hb_region_46481 hr_num_pages o2hb_region 0 46481 NULL nohasharray
163212 +enable_so_ro_slot_rcom_slot_46481 ro_slot rcom_slot 0 46481 &enable_so_hr_num_pages_o2hb_region_46481
163213 +enable_so_usb_wwan_write_fndecl_46494 usb_wwan_write fndecl 4 46494 NULL
163214 +enable_so___copy_from_user_ll_nozero_fndecl_46496 __copy_from_user_ll_nozero fndecl 0 46496 NULL
163215 +enable_so_afs_fsync_fndecl_46498 afs_fsync fndecl 2-3 46498 NULL
163216 +enable_so_iram_size_sst_res_info_46499 iram_size sst_res_info 0 46499 NULL
163217 +enable_so_align_ieee80211_vendor_radiotap_46503 align ieee80211_vendor_radiotap 0 46503 NULL
163218 +enable_so_tx_rate_sta_info_46505 tx_rate sta_info 0 46505 NULL
163219 +enable_so_write_pbl_fndecl_46508 write_pbl fndecl 4 46508 NULL
163220 +enable_so_pagesz_cifs_readdata_46514 pagesz cifs_readdata 0 46514 NULL
163221 +enable_so_tunables_write_fndecl_46520 tunables_write fndecl 3 46520 NULL
163222 +enable_so_free_bootmem_with_active_regions_fndecl_46521 free_bootmem_with_active_regions fndecl 2 46521 NULL
163223 +enable_so_bio_split_fndecl_46527 bio_split fndecl 2 46527 NULL
163224 +enable_so_sddr09_request_sense_fndecl_46529 sddr09_request_sense fndecl 3 46529 NULL
163225 +enable_so_dr_suballoc_loc_ocfs2_dx_root_block_46531 dr_suballoc_loc ocfs2_dx_root_block 0 46531 NULL
163226 +enable_so_fcoe_ctlr_vn_send_fndecl_46532 fcoe_ctlr_vn_send fndecl 4 46532 NULL
163227 +enable_so_bNrChannels_uac_format_type_i_continuous_descriptor_46536 bNrChannels uac_format_type_i_continuous_descriptor 0 46536 NULL
163228 +enable_so_contrast_sd_gl860_46538 contrast sd_gl860 0 46538 NULL
163229 +enable_so_hsub_vsp1_format_info_46540 hsub vsp1_format_info 0 46540 NULL
163230 +enable_so_size_kstat_46541 size kstat 0 46541 NULL
163231 +enable_so_resp_write_same_fndecl_46544 resp_write_same fndecl 2 46544 NULL
163232 +enable_so_sc18is602_check_transfer_fndecl_46545 sc18is602_check_transfer fndecl 0 46545 NULL nohasharray
163233 +enable_so_keysize_sunxi_sid_data_46545 keysize sunxi_sid_data 0 46545 &enable_so_sc18is602_check_transfer_fndecl_46545
163234 +enable_so_memdup_user_fndecl_46549 memdup_user fndecl 2 46549 NULL
163235 +enable_so_seq_open_tab_fndecl_46562 seq_open_tab fndecl 2-3 46562 NULL
163236 +enable_so_erasesize_shift_mtd_info_46565 erasesize_shift mtd_info 0 46565 NULL nohasharray
163237 +enable_so_xt_compat_init_offsets_fndecl_46565 xt_compat_init_offsets fndecl 2 46565 &enable_so_erasesize_shift_mtd_info_46565
163238 +enable_so_max_msix_vectors_vardecl_mpt3sas_base_c_46566 max_msix_vectors vardecl_mpt3sas_base.c 0 46566 NULL
163239 +enable_so_ndivs_divs_data_46571 ndivs divs_data 0 46571 NULL
163240 +enable_so_SyS_setdomainname_fndecl_46573 SyS_setdomainname fndecl 2 46573 NULL
163241 +enable_so_mem_fwlog_free_mem_blks_read_fndecl_46579 mem_fwlog_free_mem_blks_read fndecl 3 46579 NULL
163242 +enable_so_sock_sendpage_fndecl_46581 sock_sendpage fndecl 4 46581 NULL
163243 +enable_so_f2fs_nfs_get_inode_fndecl_46582 f2fs_nfs_get_inode fndecl 2 46582 NULL
163244 +enable_so_qxl_num_crtc_vardecl_46583 qxl_num_crtc vardecl 0 46583 NULL
163245 +enable_so___f2fs_replace_block_fndecl_46588 __f2fs_replace_block fndecl 4 46588 NULL
163246 +enable_so_sg_build_sgat_fndecl_46592 sg_build_sgat fndecl 3-0 46592 NULL nohasharray
163247 +enable_so_jffs2_alloc_full_dirent_fndecl_46592 jffs2_alloc_full_dirent fndecl 1 46592 &enable_so_sg_build_sgat_fndecl_46592
163248 +enable_so_back_xfs_attr3_icleaf_hdr_46595 back xfs_attr3_icleaf_hdr 0 46595 NULL
163249 +enable_so_fuse_async_req_send_fndecl_46596 fuse_async_req_send fndecl 0-3 46596 NULL nohasharray
163250 +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
163251 +enable_so_cfpkt_extr_head_fndecl_46598 cfpkt_extr_head fndecl 3 46598 NULL
163252 +enable_so_len_ext4_str_46600 len ext4_str 0 46600 NULL
163253 +enable_so_cma_init_reserved_mem_fndecl_46602 cma_init_reserved_mem fndecl 3-2 46602 NULL
163254 +enable_so_attrib_nr_max_gf100_grctx_oclass_46611 attrib_nr_max gf100_grctx_oclass 0 46611 NULL
163255 +enable_so_init_state_fndecl_46614 init_state fndecl 2 46614 NULL
163256 +enable_so_pci_scan_bridge_fndecl_46615 pci_scan_bridge fndecl 3-0 46615 NULL nohasharray
163257 +enable_so_jmb38x_ms_count_slots_fndecl_46615 jmb38x_ms_count_slots fndecl 0 46615 &enable_so_pci_scan_bridge_fndecl_46615
163258 +enable_so_snd_usb_parse_datainterval_fndecl_46616 snd_usb_parse_datainterval fndecl 0 46616 NULL nohasharray
163259 +enable_so_emulator_set_smbase_fndecl_46616 emulator_set_smbase fndecl 2 46616 &enable_so_snd_usb_parse_datainterval_fndecl_46616
163260 +enable_so_fw_cdev_major_vardecl_46618 fw_cdev_major vardecl 0 46618 NULL
163261 +enable_so_usbvision_read_reg_fndecl_46623 usbvision_read_reg fndecl 0 46623 NULL nohasharray
163262 +enable_so_num_ppns_qp_guest_endpoint_46623 num_ppns qp_guest_endpoint 0 46623 &enable_so_usbvision_read_reg_fndecl_46623
163263 +enable_so_cl_maxproc_rpc_clnt_46627 cl_maxproc rpc_clnt 0 46627 NULL
163264 +enable_so_start_ipack_region_46628 start ipack_region 0 46628 NULL
163265 +enable_so_qlcnic_83xx_diag_free_res_fndecl_46632 qlcnic_83xx_diag_free_res fndecl 2 46632 NULL
163266 +enable_so_alloc_size_nf_ct_ext_type_46634 alloc_size nf_ct_ext_type 0 46634 NULL
163267 +enable_so_ccp_queue_buf_fndecl_46635 ccp_queue_buf fndecl 0 46635 NULL
163268 +enable_so_btrfs_get_token_16_fndecl_46639 btrfs_get_token_16 fndecl 0 46639 NULL
163269 +enable_so_data_offset_iscsi_tcp_task_46641 data_offset iscsi_tcp_task 0 46641 NULL
163270 +enable_so_rx_rx_tkip_replays_read_fndecl_46642 rx_rx_tkip_replays_read fndecl 3 46642 NULL
163271 +enable_so_qib_reg_phys_mr_fndecl_46649 qib_reg_phys_mr fndecl 3 46649 NULL
163272 +enable_so_mwifiex_set_wps_ie_fndecl_46650 mwifiex_set_wps_ie fndecl 3 46650 NULL
163273 +enable_so_transfer_buffer_length_usbip_header_cmd_submit_46658 transfer_buffer_length usbip_header_cmd_submit 0 46658 NULL
163274 +enable_so_btrfs_get_extent_fiemap_fndecl_46659 btrfs_get_extent_fiemap fndecl 5-4-3 46659 NULL
163275 +enable_so_bmap_fndecl_46663 bmap fndecl 0 46663 NULL
163276 +enable_so_physical_block_size_queue_limits_46666 physical_block_size queue_limits 0 46666 NULL
163277 +enable_so_mpx_notify_unmap_fndecl_46669 mpx_notify_unmap fndecl 3-4 46669 NULL
163278 +enable_so_xfs_difree_inode_chunk_fndecl_46677 xfs_difree_inode_chunk fndecl 2 46677 NULL
163279 +enable_so_got_bytes_cifs_readdata_46678 got_bytes cifs_readdata 0 46678 NULL
163280 +enable_so_c2_mq_rep_init_fndecl_46679 c2_mq_rep_init fndecl 4 46679 NULL
163281 +enable_so_max_wr_ib_srq_attr_46680 max_wr ib_srq_attr 0 46680 NULL
163282 +enable_so_selfballoon_uphysteresis_vardecl_xen_selfballoon_c_46686 selfballoon_uphysteresis vardecl_xen-selfballoon.c 0 46686 NULL
163283 +enable_so_usb_ftdi_elan_edset_input_fndecl_46689 usb_ftdi_elan_edset_input fndecl 0 46689 NULL
163284 +enable_so_display_crc_ctl_write_fndecl_46690 display_crc_ctl_write fndecl 3 46690 NULL
163285 +enable_so_printer_write_fndecl_46695 printer_write fndecl 3 46695 NULL
163286 +enable_so___pskb_pull_tail_fndecl_46700 __pskb_pull_tail fndecl 2 46700 NULL
163287 +enable_so_compat_sys_fcntl64_fndecl_46707 compat_sys_fcntl64 fndecl 3 46707 NULL
163288 +enable_so_cmsg_len_cmsghdr_46711 cmsg_len cmsghdr 0 46711 NULL
163289 +enable_so_extra_priv_size_ehci_driver_overrides_46713 extra_priv_size ehci_driver_overrides 0 46713 NULL
163290 +enable_so_irq_alloc_domain_generic_chips_fndecl_46715 irq_alloc_domain_generic_chips fndecl 3-2 46715 NULL
163291 +enable_so_length_page_collect_46716 length page_collect 0 46716 NULL
163292 +enable_so_peer_max_bio_size_drbd_device_46722 peer_max_bio_size drbd_device 0 46722 NULL
163293 +enable_so_first_ino_xfs_icluster_46725 first_ino xfs_icluster 0 46725 NULL
163294 +enable_so_virtio_gpu_cmd_resource_attach_backing_fndecl_46726 virtio_gpu_cmd_resource_attach_backing fndecl 4 46726 NULL
163295 +enable_so_wm8994_set_fll_fndecl_46745 wm8994_set_fll fndecl 4-5 46745 NULL nohasharray
163296 +enable_so_ext3_dir_llseek_fndecl_46745 ext3_dir_llseek fndecl 2 46745 &enable_so_wm8994_set_fll_fndecl_46745
163297 +enable_so_cvmx_bootmem_phy_named_block_find_fndecl_46752 cvmx_bootmem_phy_named_block_find fndecl 0 46752 NULL
163298 +enable_so_v9fs_xattr_security_get_fndecl_46758 v9fs_xattr_security_get fndecl 4 46758 NULL
163299 +enable_so_count_nfs_readdirargs_46759 count nfs_readdirargs 0 46759 NULL
163300 +enable_so___kfifo_from_user_r_fndecl_46762 __kfifo_from_user_r fndecl 3-5 46762 NULL nohasharray
163301 +enable_so_perf_aux_output_skip_fndecl_46762 perf_aux_output_skip fndecl 2 46762 &enable_so___kfifo_from_user_r_fndecl_46762
163302 +enable_so_wptr_amdgpu_ring_46763 wptr amdgpu_ring 0 46763 NULL
163303 +enable_so_height_tcm_46766 height tcm 0 46766 NULL
163304 +enable_so_s_bshift_ufs_sb_private_info_46773 s_bshift ufs_sb_private_info 0 46773 NULL nohasharray
163305 +enable_so_target_begin_dm_region_hash_46773 target_begin dm_region_hash 0 46773 &enable_so_s_bshift_ufs_sb_private_info_46773
163306 +enable_so_mc_groups_longs_vardecl_genetlink_c_46774 mc_groups_longs vardecl_genetlink.c 0 46774 NULL
163307 +enable_so_bytes_remaining_parser_context_46791 bytes_remaining parser_context 0 46791 NULL
163308 +enable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 5 46792 NULL
163309 +enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799 brcmf_usb_rx_ctlpkt fndecl 3 46799 NULL nohasharray
163310 +enable_so_drbd_alloc_peer_req_fndecl_46799 drbd_alloc_peer_req fndecl 4-3 46799 &enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799
163311 +enable_so_be_cmd_set_sriov_config_fndecl_46800 be_cmd_set_sriov_config fndecl 3 46800 NULL
163312 +enable_so_ceph_msg_data_bio_advance_fndecl_46804 ceph_msg_data_bio_advance fndecl 2 46804 NULL
163313 +enable_so_mlx4_en_change_mtu_fndecl_46805 mlx4_en_change_mtu fndecl 2 46805 NULL
163314 +enable_so_mesh_rx_csa_frame_fndecl_46810 mesh_rx_csa_frame fndecl 3 46810 NULL
163315 +enable_so_dccp_setsockopt_fndecl_46812 dccp_setsockopt fndecl 5 46812 NULL
163316 +enable_so_buffer_size_snd_rawmidi_params_46813 buffer_size snd_rawmidi_params 0 46813 NULL
163317 +enable_so_nfulnl_set_mode_fndecl_46818 nfulnl_set_mode fndecl 3 46818 NULL
163318 +enable_so_frame_size_ipw2100_status_46819 frame_size ipw2100_status 0 46819 NULL
163319 +enable_so_major_hwif_s_46820 major hwif_s 0 46820 NULL
163320 +enable_so_numberoflines_tmHWStreamParameters_46824 numberoflines tmHWStreamParameters 0 46824 NULL
163321 +enable_so_residue_c67x00_td_46828 residue c67x00_td 0 46828 NULL
163322 +enable_so_extra_priv_size_xhci_driver_overrides_46837 extra_priv_size xhci_driver_overrides 0 46837 NULL
163323 +enable_so_num_prior_parent_snaps_ceph_snap_realm_46841 num_prior_parent_snaps ceph_snap_realm 0 46841 NULL nohasharray
163324 +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
163325 +enable_so_n_channels_wmi_scan_chan_list_arg_46842 n_channels wmi_scan_chan_list_arg 0 46842 NULL
163326 +enable_so_len_wl12xx_rx_filter_field_46843 len wl12xx_rx_filter_field 0 46843 NULL
163327 +enable_so_driver_names_read_fndecl_46844 driver_names_read fndecl 3 46844 NULL
163328 +enable_so_tveeprom_read_fndecl_46846 tveeprom_read fndecl 3 46846 NULL nohasharray
163329 +enable_so_vt596_smba_vardecl_i2c_viapro_c_46846 vt596_smba vardecl_i2c-viapro.c 0 46846 &enable_so_tveeprom_read_fndecl_46846
163330 +enable_so_flags_f2fs_encryption_context_46847 flags f2fs_encryption_context 0 46847 NULL
163331 +enable_so___bread_gfp_fndecl_46858 __bread_gfp fndecl 3-2 46858 NULL
163332 +enable_so_xwrite_fndecl_46865 xwrite fndecl 3 46865 NULL
163333 +enable_so_nb_ace_lite_cci_nb_ports_46870 nb_ace_lite cci_nb_ports 0 46870 NULL
163334 +enable_so_lookup_node_fndecl_46882 lookup_node fndecl 2 46882 NULL
163335 +enable_so_il_dbgfs_missed_beacon_read_fndecl_46887 il_dbgfs_missed_beacon_read fndecl 3 46887 NULL
163336 +enable_so_len_nfsd3_readlinkres_46888 len nfsd3_readlinkres 0 46888 NULL
163337 +enable_so_ksi_nthreads_max_ksock_sched_info_46891 ksi_nthreads_max ksock_sched_info 0 46891 NULL
163338 +enable_so_buffer_size_snd_urb_ctx_46897 buffer_size snd_urb_ctx 0 46897 NULL
163339 +enable_so_cb_break_head_afs_server_46900 cb_break_head afs_server 0 46900 NULL
163340 +enable_so_ql_process_mac_rx_gro_page_fndecl_46902 ql_process_mac_rx_gro_page fndecl 5-4 46902 NULL
163341 +enable_so_ipoib_recvq_size_vardecl_46904 ipoib_recvq_size vardecl 0 46904 NULL
163342 +enable_so_il_dbgfs_rxon_flags_read_fndecl_46909 il_dbgfs_rxon_flags_read fndecl 3 46909 NULL nohasharray
163343 +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
163344 +enable_so_ath10k_read_dfs_stats_fndecl_46910 ath10k_read_dfs_stats fndecl 3 46910 NULL
163345 +enable_so_size_vbt_r0_46913 size vbt_r0 0 46913 NULL
163346 +enable_so_num_sacks_tcp_options_received_46914 num_sacks tcp_options_received 0 46914 NULL nohasharray
163347 +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
163348 +enable_so_rd_size_hidp_connadd_req_46916 rd_size hidp_connadd_req 0 46916 NULL
163349 +enable_so_osd_req_read_kern_fndecl_46917 osd_req_read_kern fndecl 5 46917 NULL
163350 +enable_so_ext3_create_journal_fndecl_46919 ext3_create_journal fndecl 3 46919 NULL
163351 +enable_so_tot_len_ipv6_txoptions_46931 tot_len ipv6_txoptions 0 46931 NULL
163352 +enable_so_c_iusedoff_ufs_cg_private_info_46933 c_iusedoff ufs_cg_private_info 0 46933 NULL
163353 +enable_so___free_pages_bootmem_fndecl_46937 __free_pages_bootmem fndecl 3 46937 NULL nohasharray
163354 +enable_so_squashfs_max_decompressors_fndecl_46937 squashfs_max_decompressors fndecl 0 46937 &enable_so___free_pages_bootmem_fndecl_46937
163355 +enable_so_periodic_size_fusbh200_hcd_46943 periodic_size fusbh200_hcd 0 46943 NULL
163356 +enable_so_devblksize_squashfs_sb_info_46950 devblksize squashfs_sb_info 0 46950 NULL
163357 +enable_so_osd_req_list_dev_partitions_fndecl_46952 osd_req_list_dev_partitions fndecl 4 46952 NULL
163358 +enable_so_tx_ring_num_mlx4_en_priv_46953 tx_ring_num mlx4_en_priv 0 46953 NULL
163359 +enable_so_xlog_bread_offset_fndecl_46957 xlog_bread_offset fndecl 2-3 46957 NULL nohasharray
163360 +enable_so_steer_qpn_count_mlx4_ib_dev_46957 steer_qpn_count mlx4_ib_dev 0 46957 &enable_so_xlog_bread_offset_fndecl_46957
163361 +enable_so_s_desc_per_block_ext2_sb_info_46964 s_desc_per_block ext2_sb_info 0 46964 NULL nohasharray
163362 +enable_so_vmw_piter_start_fndecl_46964 vmw_piter_start fndecl 3 46964 &enable_so_s_desc_per_block_ext2_sb_info_46964 nohasharray
163363 +enable_so_cy_next_channel_vardecl_cyclades_c_46964 cy_next_channel vardecl_cyclades.c 0 46964 &enable_so_vmw_piter_start_fndecl_46964
163364 +enable_so_can_queue_Scsi_Host_46966 can_queue Scsi_Host 0 46966 NULL
163365 +enable_so_mthca_init_cq_fndecl_46968 mthca_init_cq fndecl 2 46968 NULL
163366 +enable_so_fsl_spi_cpu_bufs_fndecl_46969 fsl_spi_cpu_bufs fndecl 3-0 46969 NULL
163367 +enable_so_register_device_fndecl_46972 register_device fndecl 3-2 46972 NULL
163368 +enable_so_f71882fg_find_fndecl_46975 f71882fg_find fndecl 0 46975 NULL
163369 +enable_so_vcs_size_fndecl_46977 vcs_size fndecl 0 46977 NULL
163370 +enable_so_numbers_count_tomoyo_condition_46984 numbers_count tomoyo_condition 0 46984 NULL
163371 +enable_so_size_dwc3_trb_46986 size dwc3_trb 0 46986 NULL
163372 +enable_so_gru_alloc_gts_fndecl_46987 gru_alloc_gts fndecl 4-6-3-2 46987 NULL
163373 +enable_so_compat_writev_fndecl_46988 compat_writev fndecl 3 46988 NULL nohasharray
163374 +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
163375 +enable_so_msb_cache_write_fndecl_46992 msb_cache_write fndecl 6 46992 NULL
163376 +enable_so_lrg_buffer_len_ql3_adapter_46994 lrg_buffer_len ql3_adapter 0 46994 NULL nohasharray
163377 +enable_so_sys_sched_getaffinity_fndecl_46994 sys_sched_getaffinity fndecl 2 46994 &enable_so_lrg_buffer_len_ql3_adapter_46994
163378 +enable_so_buflen_cdrom_generic_command_47000 buflen cdrom_generic_command 0 47000 NULL
163379 +enable_so_do_ip6t_set_ctl_fndecl_47003 do_ip6t_set_ctl fndecl 4 47003 NULL
163380 +enable_so_pmcraid_change_queue_depth_fndecl_47007 pmcraid_change_queue_depth fndecl 2 47007 NULL
163381 +enable_so_y_offset_mxr_crop_47012 y_offset mxr_crop 0 47012 NULL
163382 +enable_so_va_start_vmap_area_47016 va_start vmap_area 0 47016 NULL
163383 +enable_so_bytesused_uvc_buffer_47017 bytesused uvc_buffer 0 47017 NULL
163384 +enable_so_length_acpi_buffer_47024 length acpi_buffer 0 47024 NULL
163385 +enable_so_ath6kl_listen_int_write_fndecl_47025 ath6kl_listen_int_write fndecl 3 47025 NULL
163386 +enable_so_length_ixgb_rx_desc_47027 length ixgb_rx_desc 0 47027 NULL
163387 +enable_so_usb_os_desc_prepare_interf_dir_fndecl_47032 usb_os_desc_prepare_interf_dir fndecl 2 47032 NULL
163388 +enable_so_desc_size_shdma_dev_47035 desc_size shdma_dev 0 47035 NULL
163389 +enable_so_rtl2832_regmap_read_fndecl_47037 rtl2832_regmap_read fndecl 3-5 47037 NULL
163390 +enable_so_minor_index_cardstate_47038 minor_index cardstate 0 47038 NULL
163391 +enable_so_ttm_bo_kmap_fndecl_47045 ttm_bo_kmap fndecl 3-2 47045 NULL
163392 +enable_so_icds_per_ctrl_hba_parameters_47047 icds_per_ctrl hba_parameters 0 47047 NULL
163393 +enable_so_amdgpu_drm_ioctl_fndecl_47050 amdgpu_drm_ioctl fndecl 2 47050 NULL
163394 +enable_so_ip_set_max_ip_set_net_47054 ip_set_max ip_set_net 0 47054 NULL
163395 +enable_so_nfs_idmap_request_key_fndecl_47055 nfs_idmap_request_key fndecl 2 47055 NULL
163396 +enable_so_width_tm6000_core_47057 width tm6000_core 0 47057 NULL nohasharray
163397 +enable_so_vbi_width_em28xx_v4l2_47057 vbi_width em28xx_v4l2 0 47057 &enable_so_width_tm6000_core_47057
163398 +enable_so_sect_ide_drive_s_47062 sect ide_drive_s 0 47062 NULL
163399 +enable_so_len_Vmxnet3_RxCompDesc_47066 len Vmxnet3_RxCompDesc 0 47066 NULL
163400 +enable_so_ext3_xattr_security_set_fndecl_47071 ext3_xattr_security_set fndecl 4 47071 NULL
163401 +enable_so___remove_zone_fndecl_47073 __remove_zone fndecl 2 47073 NULL
163402 +enable_so_ccp_reverse_set_dm_area_fndecl_47074 ccp_reverse_set_dm_area fndecl 4-3 47074 NULL
163403 +enable_so_buf_size_usbatm_channel_47081 buf_size usbatm_channel 0 47081 NULL
163404 +enable_so_epnum_isp116x_ep_47082 epnum isp116x_ep 0 47082 NULL
163405 +enable_so_yres_fb_videomode_47087 yres fb_videomode 0 47087 NULL nohasharray
163406 +enable_so_authorizer_buf_len_ceph_auth_handshake_47087 authorizer_buf_len ceph_auth_handshake 0 47087 &enable_so_yres_fb_videomode_47087 nohasharray
163407 +enable_so_ld_usb_read_fndecl_47087 ld_usb_read fndecl 3 47087 &enable_so_authorizer_buf_len_ceph_auth_handshake_47087
163408 +enable_so_ext2_get_inode_fndecl_47089 ext2_get_inode fndecl 2 47089 NULL
163409 +enable_so_pcpu_need_to_extend_fndecl_47094 pcpu_need_to_extend fndecl 0 47094 NULL
163410 +enable_so_begin_dm_target_47098 begin dm_target 0 47098 NULL
163411 +enable_so_spu_wait_for_u16_fndecl_47101 spu_wait_for_u16 fndecl 0 47101 NULL
163412 +enable_so_len_wmi_rx_action_event_47102 len wmi_rx_action_event 0 47102 NULL
163413 +enable_so_agp_size_drm_mga_dma_bootstrap_47108 agp_size drm_mga_dma_bootstrap 0 47108 NULL
163414 +enable_so_f_height_camif_frame_47111 f_height camif_frame 0 47111 NULL nohasharray
163415 +enable_so_acpi_gbl_interface_handler_vardecl_47111 acpi_gbl_interface_handler vardecl 0 47111 &enable_so_f_height_camif_frame_47111
163416 +enable_so_num_mthca_resource_47114 num mthca_resource 0 47114 NULL nohasharray
163417 +enable_so_num_outstanding_cmds_req_que_47114 num_outstanding_cmds req_que 0 47114 &enable_so_num_mthca_resource_47114
163418 +enable_so_tx_tx_start_fw_gen_read_fndecl_47115 tx_tx_start_fw_gen_read fndecl 3 47115 NULL
163419 +enable_so_iwl_dbgfs_rx_handlers_write_fndecl_47116 iwl_dbgfs_rx_handlers_write fndecl 3 47116 NULL
163420 +enable_so_nportcntrs_qib_chip_specific_47118 nportcntrs qib_chip_specific 0 47118 NULL
163421 +enable_so_usnic_uiom_reg_get_fndecl_47120 usnic_uiom_reg_get fndecl 2-3 47120 NULL
163422 +enable_so_j_len_reiserfs_journal_47121 j_len reiserfs_journal 0 47121 NULL
163423 +enable_so_filemap_fdatawrite_range_fndecl_47125 filemap_fdatawrite_range fndecl 2-3 47125 NULL
163424 +enable_so_efi_ioremap_fndecl_47129 efi_ioremap fndecl 2-1 47129 NULL
163425 +enable_so_acl_pgbase_nfs_getaclargs_47131 acl_pgbase nfs_getaclargs 0 47131 NULL
163426 +enable_so_target_xcopy_write_destination_fndecl_47134 target_xcopy_write_destination fndecl 5 47134 NULL
163427 +enable_so_data_len_nvme_passthru_cmd_47145 data_len nvme_passthru_cmd 0 47145 NULL
163428 +enable_so_do_otp_lock_fndecl_47148 do_otp_lock fndecl 3 47148 NULL
163429 +enable_so_mcs7830_set_reg_async_fndecl_47150 mcs7830_set_reg_async fndecl 3 47150 NULL
163430 +enable_so_ttm_dma_tt_init_fndecl_47159 ttm_dma_tt_init fndecl 3 47159 NULL nohasharray
163431 +enable_so_req_xfer_ide_atapi_pc_47159 req_xfer ide_atapi_pc 0 47159 &enable_so_ttm_dma_tt_init_fndecl_47159
163432 +enable_so_issue_discard_fndecl_47169 issue_discard fndecl 2-3 47169 NULL nohasharray
163433 +enable_so_e1000e_hwtstamp_get_fndecl_47169 e1000e_hwtstamp_get fndecl 0 47169 &enable_so_issue_discard_fndecl_47169
163434 +enable_so_max_blk_size_mmc_host_47174 max_blk_size mmc_host 0 47174 NULL
163435 +enable_so_value_drm_radeon_setparam_47185 value drm_radeon_setparam 0 47185 NULL
163436 +enable_so_msix_count_qla_hw_data_47192 msix_count qla_hw_data 0 47192 NULL
163437 +enable_so_max_sq_sg_mlx4_caps_47193 max_sq_sg mlx4_caps 0 47193 NULL
163438 +enable_so_block_count_msb_data_47194 block_count msb_data 0 47194 NULL
163439 +enable_so_max_inline_data_ib_qp_cap_47196 max_inline_data ib_qp_cap 0 47196 NULL
163440 +enable_so_vmalloc_node_fndecl_47199 vmalloc_node fndecl 1 47199 NULL
163441 +enable_so_bi_phys_segments_bio_47200 bi_phys_segments bio 0 47200 NULL
163442 +enable_so_max_outstanding_cmds_bnx2fc_hba_47210 max_outstanding_cmds bnx2fc_hba 0 47210 NULL
163443 +enable_so_wpos_p9_conn_47212 wpos p9_conn 0 47212 NULL
163444 +enable_so_ieee80211_if_write_tkip_mic_test_fndecl_47215 ieee80211_if_write_tkip_mic_test fndecl 3 47215 NULL
163445 +enable_so_authsize_crypto_aead_47219 authsize crypto_aead 0 47219 NULL
163446 +enable_so_mwifiex_form_mgmt_frame_fndecl_47220 mwifiex_form_mgmt_frame fndecl 3 47220 NULL
163447 +enable_so_acpi_map_fndecl_47222 acpi_map fndecl 2-1 47222 NULL
163448 +enable_so_get_byte_fndecl_47224 get_byte fndecl 0 47224 NULL
163449 +enable_so_csum_exist_in_range_fndecl_47225 csum_exist_in_range fndecl 2-3 47225 NULL
163450 +enable_so_at25_mem_write_fndecl_47235 at25_mem_write fndecl 4-3 47235 NULL
163451 +enable_so_decrease_reservation_fndecl_47244 decrease_reservation fndecl 1 47244 NULL
163452 +enable_so_fuse_reverse_inval_inode_fndecl_47245 fuse_reverse_inval_inode fndecl 4-3 47245 NULL
163453 +enable_so_translate_desc_fndecl_47247 translate_desc fndecl 3-2-0 47247 NULL
163454 +enable_so___do_config_autodelink_fndecl_47256 __do_config_autodelink fndecl 3 47256 NULL nohasharray
163455 +enable_so_seek_holedata_loop_fndecl_47256 seek_holedata_loop fndecl 0-2 47256 &enable_so___do_config_autodelink_fndecl_47256
163456 +enable_so_agp_allocate_memory_fndecl_47258 agp_allocate_memory fndecl 2 47258 NULL
163457 +enable_so_num_srqs_mthca_limits_47260 num_srqs mthca_limits 0 47260 NULL
163458 +enable_so_ring_size_dw_mci_47261 ring_size dw_mci 0 47261 NULL
163459 +enable_so_num_ifaces_batadv_priv_47263 num_ifaces batadv_priv 0 47263 NULL
163460 +enable_so_isku_sysfs_read_fndecl_47269 isku_sysfs_read fndecl 5 47269 NULL
163461 +enable_so_bts_buffer_setup_aux_fndecl_47274 bts_buffer_setup_aux fndecl 3 47274 NULL
163462 +enable_so_progress_btrfs_caching_control_47276 progress btrfs_caching_control 0 47276 NULL
163463 +enable_so_write_file_fndecl_47279 write_file fndecl 4 47279 NULL
163464 +enable_so_rom_size_qxl_device_47287 rom_size qxl_device 0 47287 NULL
163465 +enable_so_regmap_calc_reg_len_fndecl_47288 regmap_calc_reg_len fndecl 0 47288 NULL
163466 +enable_so___wa_xfer_submit_fndecl_47289 __wa_xfer_submit fndecl 0 47289 NULL nohasharray
163467 +enable_so_ipx_sendmsg_fndecl_47289 ipx_sendmsg fndecl 3 47289 &enable_so___wa_xfer_submit_fndecl_47289
163468 +enable_so_dev_number_mdp_superblock_1_47292 dev_number mdp_superblock_1 0 47292 NULL
163469 +enable_so_pppol2tp_recvmsg_fndecl_47301 pppol2tp_recvmsg fndecl 3 47301 NULL
163470 +enable_so_command_write_fndecl_47306 command_write fndecl 3 47306 NULL
163471 +enable_so_bigdirsize_adfs_bigdirheader_47315 bigdirsize adfs_bigdirheader 0 47315 NULL
163472 +enable_so_ufshcd_change_queue_depth_fndecl_47318 ufshcd_change_queue_depth fndecl 2 47318 NULL
163473 +enable_so_special_e1000_rx_desc_47320 special e1000_rx_desc 0 47320 NULL
163474 +enable_so_nr_pages_swap_extent_47325 nr_pages swap_extent 0 47325 NULL
163475 +enable_so_dma_buffer_size_vardecl_budget_core_c_47332 dma_buffer_size vardecl_budget-core.c 0 47332 NULL
163476 +enable_so_words_nf_conn_labels_47334 words nf_conn_labels 0 47334 NULL
163477 +enable_so_brcmf_chip_core_read32_fndecl_47346 brcmf_chip_core_read32 fndecl 0 47346 NULL
163478 +enable_so_nd_label_active_count_fndecl_47348 nd_label_active_count fndecl 0 47348 NULL
163479 +enable_so_gtt_base_align_amdgpu_mc_47351 gtt_base_align amdgpu_mc 0 47351 NULL nohasharray
163480 +enable_so_myri10ge_change_mtu_fndecl_47351 myri10ge_change_mtu fndecl 2 47351 &enable_so_gtt_base_align_amdgpu_mc_47351
163481 +enable_so_dmi_memdev_nr_vardecl_dmi_scan_c_47352 dmi_memdev_nr vardecl_dmi_scan.c 0 47352 NULL
163482 +enable_so_dump_midi_fndecl_47356 dump_midi fndecl 3 47356 NULL
163483 +enable_so_erasesize_mtd_info_47358 erasesize mtd_info 0 47358 NULL
163484 +enable_so_ath6kl_wmi_send_action_cmd_fndecl_47359 ath6kl_wmi_send_action_cmd fndecl 7-2 47359 NULL nohasharray
163485 +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
163486 +enable_so_ie_len_ieee80211_if_mesh_47360 ie_len ieee80211_if_mesh 0 47360 NULL
163487 +enable_so_SYSC_sched_getattr_fndecl_47361 SYSC_sched_getattr fndecl 3 47361 NULL
163488 +enable_so_nr_sects_hd_struct_47364 nr_sects hd_struct 0 47364 NULL
163489 +enable_so_rx_position_r3964_info_47365 rx_position r3964_info 0 47365 NULL
163490 +enable_so_il_dbgfs_status_read_fndecl_47367 il_dbgfs_status_read fndecl 3 47367 NULL
163491 +enable_so_batadv_iv_ogm_aggregate_fndecl_47372 batadv_iv_ogm_aggregate fndecl 3 47372 NULL
163492 +enable_so_max_fibre_devices_qla_hw_data_47375 max_fibre_devices qla_hw_data 0 47375 NULL
163493 +enable_so_nilfs_bmap_convert_error_fndecl_47376 nilfs_bmap_convert_error fndecl 0-3 47376 NULL
163494 +enable_so_vmw_ttm_tt_create_fndecl_47378 vmw_ttm_tt_create fndecl 2 47378 NULL
163495 +enable_so_data_in_pipe_uas_dev_info_47380 data_in_pipe uas_dev_info 0 47380 NULL
163496 +enable_so_max_tx_length_macb_47385 max_tx_length macb 0 47385 NULL nohasharray
163497 +enable_so_do_huge_pmd_anonymous_page_fndecl_47385 do_huge_pmd_anonymous_page fndecl 3 47385 &enable_so_max_tx_length_macb_47385
163498 +enable_so_memblocks_max_vxge_hw_mempool_47387 memblocks_max vxge_hw_mempool 0 47387 NULL
163499 +enable_so_access_vm_operations_struct_47395 access vm_operations_struct 0 47395 NULL
163500 +enable_so_sr_bg_stable_blkno_ocfs2_suballoc_result_47398 sr_bg_stable_blkno ocfs2_suballoc_result 0 47398 NULL
163501 +enable_so_efd_start_cluster_ext4_free_data_47399 efd_start_cluster ext4_free_data 0 47399 NULL
163502 +enable_so_ino_cifs_dirent_47402 ino cifs_dirent 0 47402 NULL nohasharray
163503 +enable_so_iscsi_offload_mesg_fndecl_47402 iscsi_offload_mesg fndecl 5 47402 &enable_so_ino_cifs_dirent_47402
163504 +enable_so_datalen_key_preparsed_payload_47406 datalen key_preparsed_payload 0 47406 NULL
163505 +enable_so_tp_len_tpacket_hdr_47410 tp_len tpacket_hdr 0 47410 NULL
163506 +enable_so_idetape_pad_zeros_fndecl_47413 idetape_pad_zeros fndecl 2 47413 NULL
163507 +enable_so_cdc_ncm_update_rxtx_max_fndecl_47421 cdc_ncm_update_rxtx_max fndecl 3-2 47421 NULL
163508 +enable_so_move_pfn_range_right_fndecl_47425 move_pfn_range_right fndecl 3-4 47425 NULL
163509 +enable_so_sinit_max_instreams_sctp_cookie_47433 sinit_max_instreams sctp_cookie 0 47433 NULL
163510 +enable_so_capabilities_read_fndecl_47434 capabilities_read fndecl 3 47434 NULL
163511 +enable_so_usnic_vnic_get_resources_fndecl_47437 usnic_vnic_get_resources fndecl 3 47437 NULL
163512 +enable_so_depth_bttv_format_47442 depth bttv_format 0 47442 NULL
163513 +enable_so_MaxChainDepth_mpt2sas_facts_47453 MaxChainDepth mpt2sas_facts 0 47453 NULL
163514 +enable_so_dw_spi_show_regs_fndecl_47461 dw_spi_show_regs fndecl 3 47461 NULL
163515 +enable_so_part_bits_mtd_blktrans_ops_47462 part_bits mtd_blktrans_ops 0 47462 NULL
163516 +enable_so_len_wmfw_region_47463 len wmfw_region 0 47463 NULL nohasharray
163517 +enable_so_snd_rme96_capture_copy_fndecl_47463 snd_rme96_capture_copy fndecl 5 47463 &enable_so_len_wmfw_region_47463
163518 +enable_so_batadv_bla_is_backbone_gw_fndecl_47467 batadv_bla_is_backbone_gw fndecl 3 47467 NULL
163519 +enable_so_memblock_alloc_try_nid_fndecl_47470 memblock_alloc_try_nid fndecl 2-1 47470 NULL
163520 +enable_so_compat_do_ipt_set_ctl_fndecl_47473 compat_do_ipt_set_ctl fndecl 4 47473 NULL nohasharray
163521 +enable_so_lpfc_idiag_baracc_read_fndecl_47473 lpfc_idiag_baracc_read fndecl 3 47473 &enable_so_compat_do_ipt_set_ctl_fndecl_47473
163522 +enable_so_maxDataSize__mpt_ioctl_header_47477 maxDataSize _mpt_ioctl_header 0 47477 NULL
163523 +enable_so_fifo_len_tx_fifo_config_47480 fifo_len tx_fifo_config 0 47480 NULL
163524 +enable_so_affs_write_end_ofs_fndecl_47486 affs_write_end_ofs fndecl 4-3 47486 NULL
163525 +enable_so_value_acpi_rsconvert_info_47488 value acpi_rsconvert_info 0 47488 NULL nohasharray
163526 +enable_so_report_length_f_hidg_47488 report_length f_hidg 0 47488 &enable_so_value_acpi_rsconvert_info_47488
163527 +enable_so_mac_offset_skb_gso_cb_47491 mac_offset skb_gso_cb 0 47491 NULL
163528 +enable_so_page_size_cas_47493 page_size cas 0 47493 NULL
163529 +enable_so_first_block_efs_sb_info_47499 first_block efs_sb_info 0 47499 NULL
163530 +enable_so_cifs_write_from_iter_fndecl_47501 cifs_write_from_iter fndecl 1-2 47501 NULL
163531 +enable_so_gr_ep_init_fndecl_47502 gr_ep_init fndecl 4 47502 NULL
163532 +enable_so_try_unmap_single_bt_fndecl_47503 try_unmap_single_bt fndecl 2-3 47503 NULL
163533 +enable_so_ipath_kpiobufs_vardecl_ipath_init_chip_c_47504 ipath_kpiobufs vardecl_ipath_init_chip.c 0 47504 NULL
163534 +enable_so_btrfs_cont_expand_fndecl_47505 btrfs_cont_expand fndecl 3-2 47505 NULL
163535 +enable_so_romfs_blk_strcmp_fndecl_47510 romfs_blk_strcmp fndecl 4-2 47510 NULL
163536 +enable_so_setcontrast_fndecl_47513 setcontrast fndecl 0 47513 NULL
163537 +enable_so_gfs2_dir_get_new_buffer_fndecl_47518 gfs2_dir_get_new_buffer fndecl 2 47518 NULL nohasharray
163538 +enable_so_num_connector_drm_mode_config_47518 num_connector drm_mode_config 0 47518 &enable_so_gfs2_dir_get_new_buffer_fndecl_47518
163539 +enable_so_xbf_count_xfs_bmap_free_47529 xbf_count xfs_bmap_free 0 47529 NULL
163540 +enable_so_pq_sources_dmatest_params_47534 pq_sources dmatest_params 0 47534 NULL
163541 +enable_so_llcp_sock_sendmsg_fndecl_47535 llcp_sock_sendmsg fndecl 3 47535 NULL
163542 +enable_so_skb_headers_offset_update_fndecl_47543 skb_headers_offset_update fndecl 2 47543 NULL
163543 +enable_so_show_sysfs_ops_47546 show sysfs_ops 0 47546 NULL
163544 +enable_so_relocs_num_drm_qxl_command_47550 relocs_num drm_qxl_command 0 47550 NULL
163545 +enable_so_add_replay_bud_fndecl_47552 add_replay_bud fndecl 3 47552 NULL
163546 +enable_so_max_concur_ios_snic_fw_info_47556 max_concur_ios snic_fw_info 0 47556 NULL
163547 +enable_so_cur_wm_latency_write_fndecl_47558 cur_wm_latency_write fndecl 3 47558 NULL
163548 +enable_so_max_xmit_dlength_iscsi_bus_flash_conn_47565 max_xmit_dlength iscsi_bus_flash_conn 0 47565 NULL nohasharray
163549 +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
163550 +enable_so_ubh_bread_uspi_fndecl_47568 ubh_bread_uspi fndecl 3 47568 NULL
163551 +enable_so_wep_decrypt_fail_read_fndecl_47572 wep_decrypt_fail_read fndecl 3 47572 NULL
163552 +enable_so_bnx2x_calc_num_queues_fndecl_47576 bnx2x_calc_num_queues fndecl 0 47576 NULL
163553 +enable_so_i_start_msdos_inode_info_47589 i_start msdos_inode_info 0 47589 NULL nohasharray
163554 +enable_so_traffic_class_ib_global_route_47589 traffic_class ib_global_route 0 47589 &enable_so_i_start_msdos_inode_info_47589
163555 +enable_so_acpi_check_region_fndecl_47594 acpi_check_region fndecl 2-1 47594 NULL
163556 +enable_so_dir_logfs_transaction_47599 dir logfs_transaction 0 47599 NULL
163557 +enable_so_ecryptfs_write_end_fndecl_47601 ecryptfs_write_end fndecl 5-3 47601 NULL
163558 +enable_so_rx_page_order_iwl_trans_pcie_47605 rx_page_order iwl_trans_pcie 0 47605 NULL
163559 +enable_so_ebt_buf_count_fndecl_47612 ebt_buf_count fndecl 2 47612 NULL
163560 +enable_so_control_1_vxge_hw_ring_rxd_1_47616 control_1 vxge_hw_ring_rxd_1 0 47616 NULL
163561 +enable_so_mincore_pte_range_fndecl_47625 mincore_pte_range fndecl 2 47625 NULL nohasharray
163562 +enable_so_len_ib_ucm_req_47625 len ib_ucm_req 0 47625 &enable_so_mincore_pte_range_fndecl_47625
163563 +enable_so_ubifs_load_znode_fndecl_47628 ubifs_load_znode fndecl 4 47628 NULL
163564 +enable_so_allocate_resource_fndecl_47629 allocate_resource fndecl 4-3-5-6 47629 NULL
163565 +enable_so___iio_add_event_config_attrs_fndecl_47635 __iio_add_event_config_attrs fndecl 0 47635 NULL
163566 +enable_so_nentries_ebt_table_info_47639 nentries ebt_table_info 0 47639 NULL
163567 +enable_so_buffer_alignment_fore200e_bus_47640 buffer_alignment fore200e_bus 0 47640 NULL
163568 +enable_so_num_phys_hw_profile_47641 num_phys hw_profile 0 47641 NULL
163569 +enable_so_nilfs_cpfile_get_offset_fndecl_47642 nilfs_cpfile_get_offset fndecl 0-2 47642 NULL nohasharray
163570 +enable_so_framebuffer_alloc_fndecl_47642 framebuffer_alloc fndecl 1 47642 &enable_so_nilfs_cpfile_get_offset_fndecl_47642
163571 +enable_so_pch_gbe_change_mtu_fndecl_47643 pch_gbe_change_mtu fndecl 2 47643 NULL
163572 +enable_so_radeon_compat_ioctl_fndecl_47645 radeon_compat_ioctl fndecl 2 47645 NULL
163573 +enable_so_ocfs2_move_extent_fndecl_47648 ocfs2_move_extent fndecl 5-3-2 47648 NULL nohasharray
163574 +enable_so_fetch_to_dev_buffer_fndecl_47648 fetch_to_dev_buffer fndecl 3 47648 &enable_so_ocfs2_move_extent_fndecl_47648
163575 +enable_so_rate_max_snd_soc_pcm_stream_47650 rate_max snd_soc_pcm_stream 0 47650 NULL
163576 +enable_so_max_sge_rqe_allocated_ocrdma_create_srq_rsp_47654 max_sge_rqe_allocated ocrdma_create_srq_rsp 0 47654 NULL
163577 +enable_so_height_console_font_47655 height console_font 0 47655 NULL
163578 +enable_so_length_fw_cdev_add_descriptor_47656 length fw_cdev_add_descriptor 0 47656 NULL
163579 +enable_so_pt_base_start_info_47658 pt_base start_info 0 47658 NULL nohasharray
163580 +enable_so_atomic_write_len_kernfs_open_file_47658 atomic_write_len kernfs_open_file 0 47658 &enable_so_pt_base_start_info_47658
163581 +enable_so___of_address_to_resource_fndecl_47662 __of_address_to_resource fndecl 3 47662 NULL
163582 +enable_so_wPropertyNameLength_usb_ext_prop_desc_47663 wPropertyNameLength usb_ext_prop_desc 0 47663 NULL
163583 +enable_so_dlm_rcom_names_fndecl_47668 dlm_rcom_names fndecl 4 47668 NULL nohasharray
163584 +enable_so_frame_seq_num_os_aux_s_47668 frame_seq_num os_aux_s 0 47668 &enable_so_dlm_rcom_names_fndecl_47668
163585 +enable_so_chans_zatm_dev_47669 chans zatm_dev 0 47669 NULL
163586 +enable_so_setup_window_fndecl_47673 setup_window fndecl 3-2-7-5-4 47673 NULL
163587 +enable_so_ksize_fndecl_47675 ksize fndecl 0 47675 NULL
163588 +enable_so_height_v4l2_pix_format_47682 height v4l2_pix_format 0 47682 NULL
163589 +enable_so_ath10k_debug_cal_data_read_fndecl_47685 ath10k_debug_cal_data_read fndecl 3 47685 NULL
163590 +enable_so_pci_iov_bus_range_fndecl_47686 pci_iov_bus_range fndecl 0 47686 NULL
163591 +enable_so_maxframesize_snd_usb_endpoint_47687 maxframesize snd_usb_endpoint 0 47687 NULL
163592 +enable_so_size_nvkm_instobj_47689 size nvkm_instobj 0 47689 NULL
163593 +enable_so_batadv_hardif_min_mtu_fndecl_47691 batadv_hardif_min_mtu fndecl 0 47691 NULL nohasharray
163594 +enable_so_cno_nilfs_super_data_47691 cno nilfs_super_data 0 47691 &enable_so_batadv_hardif_min_mtu_fndecl_47691
163595 +enable_so_virtblk_queue_depth_vardecl_virtio_blk_c_47692 virtblk_queue_depth vardecl_virtio_blk.c 0 47692 NULL
163596 +enable_so_paging64_gpte_to_gfn_lvl_fndecl_47694 paging64_gpte_to_gfn_lvl fndecl 0-2-1 47694 NULL
163597 +enable_so_afavlab_setup_fndecl_47698 afavlab_setup fndecl 4 47698 NULL
163598 +enable_so_gpu_mem_base_vml_par_47703 gpu_mem_base vml_par 0 47703 NULL
163599 +enable_so_xfs_iext_realloc_indirect_fndecl_47704 xfs_iext_realloc_indirect fndecl 2 47704 NULL nohasharray
163600 +enable_so_onenand_bbt_read_oob_fndecl_47704 onenand_bbt_read_oob fndecl 2 47704 &enable_so_xfs_iext_realloc_indirect_fndecl_47704
163601 +enable_so_ino_fuse_attr_47705 ino fuse_attr 0 47705 NULL nohasharray
163602 +enable_so_report_size_roccat_device_47705 report_size roccat_device 0 47705 &enable_so_ino_fuse_attr_47705
163603 +enable_so_ppp_sync_receive_fndecl_47706 ppp_sync_receive fndecl 4 47706 NULL
163604 +enable_so_nilfs_iget_for_gc_fndecl_47708 nilfs_iget_for_gc fndecl 2 47708 NULL
163605 +enable_so_i2c_hid_raw_request_fndecl_47709 i2c_hid_raw_request fndecl 4 47709 NULL nohasharray
163606 +enable_so_fast_rx_path_fndecl_47709 fast_rx_path fndecl 3 47709 &enable_so_i2c_hid_raw_request_fndecl_47709 nohasharray
163607 +enable_so_small_bytes_myri10ge_priv_47709 small_bytes myri10ge_priv 0 47709 &enable_so_fast_rx_path_fndecl_47709
163608 +enable_so_oxu_init_fndecl_47714 oxu_init fndecl 3-2 47714 NULL
163609 +enable_so_padding_rpcrdma_create_data_internal_47717 padding rpcrdma_create_data_internal 0 47717 NULL
163610 +enable_so_tegra_sflash_start_transfer_one_fndecl_47723 tegra_sflash_start_transfer_one fndecl 0 47723 NULL
163611 +enable_so_max_size_ttm_pool_opts_47726 max_size ttm_pool_opts 0 47726 NULL
163612 +enable_so_bdev_stack_limits_fndecl_47732 bdev_stack_limits fndecl 3 47732 NULL
163613 +enable_so_copy_nocow_pages_for_inode_fndecl_47736 copy_nocow_pages_for_inode fndecl 2 47736 NULL
163614 +enable_so_SMB2_write_fndecl_47741 SMB2_write fndecl 5 47741 NULL
163615 +enable_so_eccbytes_nand_ecclayout_47742 eccbytes nand_ecclayout 0 47742 NULL
163616 +enable_so_minbcnt_aoetgt_47744 minbcnt aoetgt 0 47744 NULL
163617 +enable_so_width_ssd1307fb_par_47753 width ssd1307fb_par 0 47753 NULL nohasharray
163618 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_47753 buffer_size snd_emu10k1_fx8010_pcm 0 47753 &enable_so_width_ssd1307fb_par_47753
163619 +enable_so_fixed_out_len_gether_47754 fixed_out_len gether 0 47754 NULL
163620 +enable_so_key_instantiate_and_link_fndecl_47756 key_instantiate_and_link fndecl 3 47756 NULL
163621 +enable_so_num_def_rx_descs_octeon_config_47759 num_def_rx_descs octeon_config 0 47759 NULL
163622 +enable_so_write_chunk_fndecl_47763 write_chunk fndecl 4 47763 NULL
163623 +enable_so_ticket_length_rxrpc_key_data_v1_47764 ticket_length rxrpc_key_data_v1 0 47764 NULL
163624 +enable_so_mq_ecount_lpfc_sli4_hba_47770 mq_ecount lpfc_sli4_hba 0 47770 NULL
163625 +enable_so_rx_count_ll_struct_47772 rx_count ll_struct 0 47772 NULL nohasharray
163626 +enable_so_minor_osd_uld_device_47772 minor osd_uld_device 0 47772 &enable_so_rx_count_ll_struct_47772
163627 +enable_so_fill_func_debug_buffer_47773 fill_func debug_buffer 0 47773 NULL
163628 +enable_so_snic_reset_stats_read_fndecl_47774 snic_reset_stats_read fndecl 3 47774 NULL
163629 +enable_so_dma1_shift_es1938_47776 dma1_shift es1938 0 47776 NULL
163630 +enable_so_v9fs_remote_set_acl_fndecl_47784 v9fs_remote_set_acl fndecl 4 47784 NULL nohasharray
163631 +enable_so_rx_ring_size_bnx2x_47784 rx_ring_size bnx2x 0 47784 &enable_so_v9fs_remote_set_acl_fndecl_47784 nohasharray
163632 +enable_so_fd_copyout_fndecl_47784 fd_copyout fndecl 3 47784 &enable_so_rx_ring_size_bnx2x_47784
163633 +enable_so_bg_blkno_ocfs2_group_desc_47785 bg_blkno ocfs2_group_desc 0 47785 NULL
163634 +enable_so_skb_prepare_seq_read_fndecl_47790 skb_prepare_seq_read fndecl 2 47790 NULL nohasharray
163635 +enable_so_max_cmds_mlx4_cmd_47790 max_cmds mlx4_cmd 0 47790 &enable_so_skb_prepare_seq_read_fndecl_47790
163636 +enable_so_do_otp_read_fndecl_47794 do_otp_read fndecl 2 47794 NULL
163637 +enable_so_num_vmdq_qps_i40e_pf_47795 num_vmdq_qps i40e_pf 0 47795 NULL
163638 +enable_so_mxt_bootloader_read_fndecl_47796 mxt_bootloader_read fndecl 3 47796 NULL nohasharray
163639 +enable_so_major_vardecl_sound_c_47796 major vardecl_sound.c 0 47796 &enable_so_mxt_bootloader_read_fndecl_47796
163640 +enable_so_get_key_haup_common_fndecl_47797 get_key_haup_common fndecl 5 47797 NULL nohasharray
163641 +enable_so___push_leaf_right_fndecl_47797 __push_leaf_right fndecl 8 47797 &enable_so_get_key_haup_common_fndecl_47797
163642 +enable_so_i_eblock_bfs_inode_47799 i_eblock bfs_inode 0 47799 NULL
163643 +enable_so_h_suballoc_bit_ocfs2_extent_block_47802 h_suballoc_bit ocfs2_extent_block 0 47802 NULL
163644 +enable_so_odd_byte_adjustment_sym_ccb_47803 odd_byte_adjustment sym_ccb 0 47803 NULL
163645 +enable_so_xfs_attrmulti_attr_set_fndecl_47809 xfs_attrmulti_attr_set fndecl 4 47809 NULL nohasharray
163646 +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
163647 +enable_so_size_ncp_ioctl_request_47816 size ncp_ioctl_request 0 47816 NULL
163648 +enable_so_fuse_copy_do_fndecl_47822 fuse_copy_do fndecl 0 47822 NULL
163649 +enable_so_rom_length_fw_cdev_get_info_47831 rom_length fw_cdev_get_info 0 47831 NULL
163650 +enable_so_rx_defrag_in_process_called_read_fndecl_47833 rx_defrag_in_process_called_read fndecl 3 47833 NULL
163651 +enable_so_f2fs_fallocate_fndecl_47842 f2fs_fallocate fndecl 3-4 47842 NULL nohasharray
163652 +enable_so_tcp_check_reno_reordering_fndecl_47842 tcp_check_reno_reordering fndecl 2 47842 &enable_so_f2fs_fallocate_fndecl_47842
163653 +enable_so_assoc_len_amp_ctrl_47844 assoc_len amp_ctrl 0 47844 NULL nohasharray
163654 +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
163655 +enable_so_rl_rgrps_gfs2_rgrp_list_47847 rl_rgrps gfs2_rgrp_list 0 47847 NULL
163656 +enable_so_ch_t_tlevel_jsm_channel_47848 ch_t_tlevel jsm_channel 0 47848 NULL
163657 +enable_so_journal_init_dev_fndecl_47851 journal_init_dev fndecl 5-3 47851 NULL
163658 +enable_so_s_mmp_block_ext4_super_block_47865 s_mmp_block ext4_super_block 0 47865 NULL
163659 +enable_so_nilfs_cpfile_find_checkpoint_block_fndecl_47868 nilfs_cpfile_find_checkpoint_block fndecl 2-3 47868 NULL
163660 +enable_so_length_ar9170_stream_47870 length ar9170_stream 0 47870 NULL
163661 +enable_so_smssdio_sendrequest_fndecl_47873 smssdio_sendrequest fndecl 3 47873 NULL
163662 +enable_so_len_nlm_cookie_47875 len nlm_cookie 0 47875 NULL nohasharray
163663 +enable_so_ivtv_convert_ivtv_vbi_fndecl_47875 ivtv_convert_ivtv_vbi fndecl 0 47875 &enable_so_len_nlm_cookie_47875
163664 +enable_so_smt_send_ecf_fndecl_47881 smt_send_ecf fndecl 6 47881 NULL
163665 +enable_so_gs_alloc_req_fndecl_47888 gs_alloc_req fndecl 2 47888 NULL
163666 +enable_so_end_bus_number_acpi_mcfg_allocation_47894 end_bus_number acpi_mcfg_allocation 0 47894 NULL
163667 +enable_so_sb_inoalignmt_xfs_sb_47899 sb_inoalignmt xfs_sb 0 47899 NULL
163668 +enable_so_set_offset_v2_k_offset_fndecl_47902 set_offset_v2_k_offset fndecl 2 47902 NULL
163669 +enable_so_msize_p9_client_47905 msize p9_client 0 47905 NULL
163670 +enable_so_write_pmsg_fndecl_47911 write_pmsg fndecl 3 47911 NULL
163671 +enable_so_spi_map_msg_fndecl_47912 spi_map_msg fndecl 0 47912 NULL
163672 +enable_so_nbytes_fsl_edma_hw_tcd_47913 nbytes fsl_edma_hw_tcd 0 47913 NULL
163673 +enable_so_compat_fillonedir_fndecl_47921 compat_fillonedir fndecl 3 47921 NULL
163674 +enable_so_mxl111sf_stream_config_isoc_fndecl_47924 mxl111sf_stream_config_isoc fndecl 2 47924 NULL
163675 +enable_so_phys_esb2rom_window_47933 phys esb2rom_window 0 47933 NULL nohasharray
163676 +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
163677 +enable_so_fddi_change_mtu_fndecl_47942 fddi_change_mtu fndecl 2 47942 NULL
163678 +enable_so_rxd_vlan_rxd_desc_47943 rxd_vlan rxd_desc 0 47943 NULL
163679 +enable_so_max_param_range_47945 max param_range 0 47945 NULL
163680 +enable_so_produce_q_size_vmci_qp_47948 produce_q_size vmci_qp 0 47948 NULL
163681 +enable_so_dlm_new_lockspace_fndecl_47954 dlm_new_lockspace fndecl 4 47954 NULL
163682 +enable_so_l2bsize_jfs_log_47956 l2bsize jfs_log 0 47956 NULL
163683 +enable_so_depth_pitch_drm_r128_private_47959 depth_pitch drm_r128_private 0 47959 NULL
163684 +enable_so___skb_flow_dissect_fndecl_47960 __skb_flow_dissect fndecl 6 47960 NULL nohasharray
163685 +enable_so_netpoll_send_udp_fndecl_47960 netpoll_send_udp fndecl 3 47960 &enable_so___skb_flow_dissect_fndecl_47960
163686 +enable_so_st5481_isoc_flatten_fndecl_47963 st5481_isoc_flatten fndecl 0 47963 NULL
163687 +enable_so_handle_rx_packet_fndecl_47970 handle_rx_packet fndecl 3 47970 NULL
163688 +enable_so_reg_size_sci_port_47971 reg_size sci_port 0 47971 NULL nohasharray
163689 +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
163690 +enable_so_length_xfs_bmalloca_47971 length xfs_bmalloca 0 47971 &enable_so_encap_hlen_ip_tunnel_encap_ops_47971
163691 +enable_so_le_ih_k_offset_fndecl_47992 le_ih_k_offset fndecl 0 47992 NULL
163692 +enable_so_remap_to_cache_dirty_fndecl_47996 remap_to_cache_dirty fndecl 4 47996 NULL
163693 +enable_so_blocks_num_c2port_ops_47999 blocks_num c2port_ops 0 47999 NULL
163694 +enable_so_width_console_font_op_48005 width console_font_op 0 48005 NULL
163695 +enable_so_setgain_fndecl_48010 setgain fndecl 0 48010 NULL nohasharray
163696 +enable_so_init_pci_cap_msi_perm_fndecl_48010 init_pci_cap_msi_perm fndecl 2 48010 &enable_so_setgain_fndecl_48010
163697 +enable_so_size_netlbl_unlhsh_tbl_48011 size netlbl_unlhsh_tbl 0 48011 NULL
163698 +enable_so_selinux_transaction_write_fndecl_48013 selinux_transaction_write fndecl 3 48013 NULL
163699 +enable_so_size_nfs_fh_48014 size nfs_fh 0 48014 NULL
163700 +enable_so_temp_end_applesmc_registers_48016 temp_end applesmc_registers 0 48016 NULL
163701 +enable_so_lpfc_idiag_baracc_write_fndecl_48021 lpfc_idiag_baracc_write fndecl 3 48021 NULL
163702 +enable_so_original_mtu_slave_48025 original_mtu slave 0 48025 NULL
163703 +enable_so_hmac_len_sctp_hmac_48030 hmac_len sctp_hmac 0 48030 NULL
163704 +enable_so_init_page_array_fndecl_48038 init_page_array fndecl 2-0 48038 NULL
163705 +enable_so_rm_namelen_nfsd4_remove_48040 rm_namelen nfsd4_remove 0 48040 NULL
163706 +enable_so_s_reserved_affs_sb_info_48043 s_reserved affs_sb_info 0 48043 NULL
163707 +enable_so_sb_size_md_rdev_48046 sb_size md_rdev 0 48046 NULL
163708 +enable_so_num_pages_ttm_buffer_object_48047 num_pages ttm_buffer_object 0 48047 NULL
163709 +enable_so_num_privcmd_mmapbatch_v2_48051 num privcmd_mmapbatch_v2 0 48051 NULL
163710 +enable_so_rds_buf_vardecl_radio_si470x_i2c_c_48053 rds_buf vardecl_radio-si470x-i2c.c 0 48053 NULL
163711 +enable_so_ioctl_datasize_ips_ha_48058 ioctl_datasize ips_ha 0 48058 NULL
163712 +enable_so_nr_channels_at_dma_platform_data_48060 nr_channels at_dma_platform_data 0 48060 NULL
163713 +enable_so_lso_max_fc_lport_48064 lso_max fc_lport 0 48064 NULL
163714 +enable_so_zonesize_alauda_media_info_48068 zonesize alauda_media_info 0 48068 NULL
163715 +enable_so_xfs_zero_eof_fndecl_48076 xfs_zero_eof fndecl 3-2 48076 NULL
163716 +enable_so_mt9t031_skip_fndecl_48078 mt9t031_skip fndecl 0-3-2 48078 NULL
163717 +enable_so_blocksize_sddr55_card_info_48082 blocksize sddr55_card_info 0 48082 NULL
163718 +enable_so_osst_max_dev_vardecl_osst_c_48086 osst_max_dev vardecl_osst.c 0 48086 NULL
163719 +enable_so_ipath_rcvegrcnt_ipath_devdata_48089 ipath_rcvegrcnt ipath_devdata 0 48089 NULL
163720 +enable_so_count_atl1c_rfd_ring_48095 count atl1c_rfd_ring 0 48095 NULL
163721 +enable_so_scsi_io_completion_fndecl_48097 scsi_io_completion fndecl 2 48097 NULL nohasharray
163722 +enable_so_seg_count_agp_region32_48097 seg_count agp_region32 0 48097 &enable_so_scsi_io_completion_fndecl_48097
163723 +enable_so_icq_align_elevator_type_48098 icq_align elevator_type 0 48098 NULL
163724 +enable_so_ep_out_mts_desc_48099 ep_out mts_desc 0 48099 NULL
163725 +enable_so___lbs_cmd_async_fndecl_48102 __lbs_cmd_async fndecl 4 48102 NULL
163726 +enable_so_nfc_llcp_send_i_frame_fndecl_48105 nfc_llcp_send_i_frame fndecl 3 48105 NULL nohasharray
163727 +enable_so___cvmx_bootmem_desc_get_fndecl_48105 __cvmx_bootmem_desc_get fndecl 0 48105 &enable_so_nfc_llcp_send_i_frame_fndecl_48105
163728 +enable_so_m25p80_write_reg_fndecl_48115 m25p80_write_reg fndecl 4 48115 NULL
163729 +enable_so_max_pkt_size_cx231xx_audio_48117 max_pkt_size cx231xx_audio 0 48117 NULL
163730 +enable_so_discard_granularity_queue_limits_48119 discard_granularity queue_limits 0 48119 NULL
163731 +enable_so_curr_dma_words_tegra_slink_data_48129 curr_dma_words tegra_slink_data 0 48129 NULL nohasharray
163732 +enable_so_gfs2_write_begin_fndecl_48129 gfs2_write_begin fndecl 4-3 48129 &enable_so_curr_dma_words_tegra_slink_data_48129
163733 +enable_so_vma_kernel_pagesize_fndecl_48131 vma_kernel_pagesize fndecl 0 48131 NULL
163734 +enable_so_tx_tx_retry_template_read_fndecl_48132 tx_tx_retry_template_read fndecl 3 48132 NULL
163735 +enable_so_mem_read_fndecl_48140 mem_read fndecl 3 48140 NULL
163736 +enable_so_sisusbcon_putcs_fndecl_48141 sisusbcon_putcs fndecl 3 48141 NULL nohasharray
163737 +enable_so_osdmap_set_max_osd_fndecl_48141 osdmap_set_max_osd fndecl 2 48141 &enable_so_sisusbcon_putcs_fndecl_48141
163738 +enable_so_max_gs_mlx5_core_srq_48153 max_gs mlx5_core_srq 0 48153 NULL
163739 +enable_so_isdnhdlc_encode_fndecl_48155 isdnhdlc_encode fndecl 0-6 48155 NULL
163740 +enable_so_usb_endpoint_data_queue_48158 usb_endpoint data_queue 0 48158 NULL nohasharray
163741 +enable_so_update_res_fndecl_48158 update_res fndecl 3-2 48158 &enable_so_usb_endpoint_data_queue_48158 nohasharray
163742 +enable_so_hpi_cobranet_hmi_write_fndecl_48158 hpi_cobranet_hmi_write fndecl 3 48158 &enable_so_update_res_fndecl_48158
163743 +enable_so_qs_in_channels_hdsp_48166 qs_in_channels hdsp 0 48166 NULL
163744 +enable_so_factor_ewma_48168 factor ewma 0 48168 NULL
163745 +enable_so_r3964_write_fndecl_48173 r3964_write fndecl 4 48173 NULL
163746 +enable_so_hub_control_hc_driver_48178 hub_control hc_driver 0 48178 NULL
163747 +enable_so_mwifiex_parse_cal_cfg_fndecl_48179 mwifiex_parse_cal_cfg fndecl 0 48179 NULL
163748 +enable_so_mr_read_fndecl_48180 mr_read fndecl 0 48180 NULL
163749 +enable_so_nvkm_fifo_create__fndecl_48184 nvkm_fifo_create_ fndecl 5-6 48184 NULL
163750 +enable_so_num_pages_vmw_sg_table_48192 num_pages vmw_sg_table 0 48192 NULL
163751 +enable_so_qcafrm_fsm_decode_fndecl_48193 qcafrm_fsm_decode fndecl 0-4 48193 NULL nohasharray
163752 +enable_so_data_transfer_length_pmcraid_ioarcb_48193 data_transfer_length pmcraid_ioarcb 0 48193 &enable_so_qcafrm_fsm_decode_fndecl_48193
163753 +enable_so_xres_virtual_fb_var_screeninfo_48196 xres_virtual fb_var_screeninfo 0 48196 NULL nohasharray
163754 +enable_so_sy_fb_copyarea_48196 sy fb_copyarea 0 48196 &enable_so_xres_virtual_fb_var_screeninfo_48196
163755 +enable_so_snd_rawmidi_transmit_ack_fndecl_48200 snd_rawmidi_transmit_ack fndecl 0-2 48200 NULL
163756 +enable_so_rxoffset_dma_info_48202 rxoffset dma_info 0 48202 NULL
163757 +enable_so_btusb_recv_bulk_intel_fndecl_48211 btusb_recv_bulk_intel fndecl 3 48211 NULL nohasharray
163758 +enable_so_proc_ns_readlink_fndecl_48211 proc_ns_readlink fndecl 3 48211 &enable_so_btusb_recv_bulk_intel_fndecl_48211
163759 +enable_so___lgwrite_fndecl_48214 __lgwrite fndecl 4 48214 NULL
163760 +enable_so_ramoops_console_size_vardecl_ram_c_48215 ramoops_console_size vardecl_ram.c 0 48215 NULL
163761 +enable_so_dwc3_ep0_start_trans_fndecl_48216 dwc3_ep0_start_trans fndecl 4 48216 NULL nohasharray
163762 +enable_so_srp_response_common_fndecl_48216 srp_response_common fndecl 4-2 48216 &enable_so_dwc3_ep0_start_trans_fndecl_48216 nohasharray
163763 +enable_so_ax88179_read_cmd_nopm_fndecl_48216 ax88179_read_cmd_nopm fndecl 5 48216 &enable_so_srp_response_common_fndecl_48216
163764 +enable_so_cur_inode_last_extent_send_ctx_48219 cur_inode_last_extent send_ctx 0 48219 NULL
163765 +enable_so_qib_rkey_ok_fndecl_48221 qib_rkey_ok fndecl 3-4 48221 NULL
163766 +enable_so_b_map_count_xfs_buf_48228 b_map_count xfs_buf 0 48228 NULL
163767 +enable_so_sys_nice_fndecl_48229 sys_nice fndecl 1 48229 NULL
163768 +enable_so_ieee80211_if_read_dot11MeshHWMPconfirmationInterval_fndecl_48233 ieee80211_if_read_dot11MeshHWMPconfirmationInterval fndecl 3 48233 NULL
163769 +enable_so_xdr_buf_read_netobj_fndecl_48238 xdr_buf_read_netobj fndecl 3 48238 NULL
163770 +enable_so_num_rx_rings_bnx2_48240 num_rx_rings bnx2 0 48240 NULL
163771 +enable_so_i2400m_rx_stats_read_fndecl_48249 i2400m_rx_stats_read fndecl 3 48249 NULL
163772 +enable_so_qib_make_grh_fndecl_48250 qib_make_grh fndecl 0 48250 NULL
163773 +enable_so_height_cx88_core_48255 height cx88_core 0 48255 NULL
163774 +enable_so_ext3_get_journal_fndecl_48262 ext3_get_journal fndecl 2 48262 NULL
163775 +enable_so_vrows_display_48275 vrows display 0 48275 NULL
163776 +enable_so_qdisc_tree_decrease_qlen_fndecl_48281 qdisc_tree_decrease_qlen fndecl 2 48281 NULL
163777 +enable_so_compat_sys_set_mempolicy_fndecl_48285 compat_sys_set_mempolicy fndecl 3 48285 NULL
163778 +enable_so_reg_shift_pciserial_board_48293 reg_shift pciserial_board 0 48293 NULL
163779 +enable_so_add_packet_fndecl_48295 add_packet fndecl 3 48295 NULL
163780 +enable_so_next_dtslot_48300 next dtslot 0 48300 NULL
163781 +enable_so_hackrf_convert_stream_fndecl_48309 hackrf_convert_stream fndecl 0-4 48309 NULL
163782 +enable_so_nep_buffer_size_wahc_48313 nep_buffer_size wahc 0 48313 NULL
163783 +enable_so_ci_flags_f2fs_crypt_info_48318 ci_flags f2fs_crypt_info 0 48318 NULL
163784 +enable_so_ngroups_group_info_48320 ngroups group_info 0 48320 NULL
163785 +enable_so_pin_down_extent_fndecl_48324 pin_down_extent fndecl 4-3 48324 NULL
163786 +enable_so_acpi_efi_48328 acpi efi 0 48328 NULL nohasharray
163787 +enable_so_btn_rec_size_cyttsp4_sysinfo_ofs_48328 btn_rec_size cyttsp4_sysinfo_ofs 0 48328 &enable_so_acpi_efi_48328
163788 +enable_so_vga_scan_lines_vardecl_vgacon_c_48330 vga_scan_lines vardecl_vgacon.c 0 48330 NULL
163789 +enable_so_region_table_entry_bits_switch_ctx_48332 region_table_entry_bits switch_ctx 0 48332 NULL
163790 +enable_so_tch_rec_size_cyttsp4_opcfg_48339 tch_rec_size cyttsp4_opcfg 0 48339 NULL
163791 +enable_so_ion_test_ioctl_fndecl_48340 ion_test_ioctl fndecl 2 48340 NULL
163792 +enable_so_ivtv_read_fndecl_48343 ivtv_read fndecl 3 48343 NULL
163793 +enable_so_spare_bytes_per_page_nand_jedec_params_48344 spare_bytes_per_page nand_jedec_params 0 48344 NULL
163794 +enable_so_bno_xfs_extent_busy_48346 bno xfs_extent_busy 0 48346 NULL
163795 +enable_so_generic_ptrace_peekdata_fndecl_48349 generic_ptrace_peekdata fndecl 2 48349 NULL
163796 +enable_so_hwahc_op_urb_dequeue_fndecl_48351 hwahc_op_urb_dequeue fndecl 3 48351 NULL
163797 +enable_so_flash_read_fndecl_48352 flash_read fndecl 3 48352 NULL
163798 +enable_so_kiblnd_create_tx_pool_fndecl_48357 kiblnd_create_tx_pool fndecl 2 48357 NULL
163799 +enable_so_qib_make_rc_ack_fndecl_48361 qib_make_rc_ack fndecl 4 48361 NULL
163800 +enable_so_ule_sndu_len_dvb_net_priv_48367 ule_sndu_len dvb_net_priv 0 48367 NULL
163801 +enable_so_xlog_write_setup_copy_fndecl_48368 xlog_write_setup_copy fndecl 0 48368 NULL
163802 +enable_so_gmch_chip_id_intel_gtt_driver_description_48370 gmch_chip_id intel_gtt_driver_description 0 48370 NULL
163803 +enable_so_bfad_debugfs_read_regrd_fndecl_48373 bfad_debugfs_read_regrd fndecl 3 48373 NULL
163804 +enable_so_width_dt3155_priv_48375 width dt3155_priv 0 48375 NULL
163805 +enable_so_copy_to_user_fndecl_48376 copy_to_user fndecl 3-0 48376 NULL
163806 +enable_so_driver_data_pci_device_id_48380 driver_data pci_device_id 0 48380 NULL
163807 +enable_so_punit_size_intel_pmc_ipc_dev_48383 punit_size intel_pmc_ipc_dev 0 48383 NULL
163808 +enable_so__snd_pcm_hw_param_set_fndecl_48394 _snd_pcm_hw_param_set fndecl 3 48394 NULL
163809 +enable_so_kvaser_usb_send_simple_msg_fndecl_48401 kvaser_usb_send_simple_msg fndecl 0 48401 NULL
163810 +enable_so_blk_queue_dma_pad_fndecl_48409 blk_queue_dma_pad fndecl 2 48409 NULL
163811 +enable_so_osd_depth_vardecl_ivtvfb_c_48413 osd_depth vardecl_ivtvfb.c 0 48413 NULL
163812 +enable_so_seq_buf_putmem_fndecl_48421 seq_buf_putmem fndecl 3 48421 NULL
163813 +enable_so_max_kioc_mraid_mmadp_48422 max_kioc mraid_mmadp 0 48422 NULL
163814 +enable_so_sys_fadvise64_64_fndecl_48424 sys_fadvise64_64 fndecl 2-3 48424 NULL nohasharray
163815 +enable_so_stex_copy_data_fndecl_48424 stex_copy_data fndecl 3 48424 &enable_so_sys_fadvise64_64_fndecl_48424
163816 +enable_so_read_file_blob_fndecl_48429 read_file_blob fndecl 3 48429 NULL
163817 +enable_so_bMaxBurst_usb_wireless_ep_comp_descriptor_48430 bMaxBurst usb_wireless_ep_comp_descriptor 0 48430 NULL
163818 +enable_so_mmio_phys_end_amd_iommu_48432 mmio_phys_end amd_iommu 0 48432 NULL
163819 +enable_so_tty_register_device_attr_fndecl_48438 tty_register_device_attr fndecl 2 48438 NULL
163820 +enable_so_natids_tid_info_48439 natids tid_info 0 48439 NULL
163821 +enable_so_bzImage64_load_fndecl_48447 bzImage64_load fndecl 7 48447 NULL
163822 +enable_so_compat_keyctl_instantiate_key_iov_fndecl_48452 compat_keyctl_instantiate_key_iov fndecl 3 48452 NULL nohasharray
163823 +enable_so_alloc_ftrace_hash_fndecl_48452 alloc_ftrace_hash fndecl 1 48452 &enable_so_compat_keyctl_instantiate_key_iov_fndecl_48452
163824 +enable_so_read_file_eeprom_fndecl_48455 read_file_eeprom fndecl 3 48455 NULL
163825 +enable_so_xen_align_and_add_e820_region_fndecl_48457 xen_align_and_add_e820_region fndecl 2-1 48457 NULL nohasharray
163826 +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
163827 +enable_so_copy_to_user_fromio_fndecl_48459 copy_to_user_fromio fndecl 3 48459 NULL
163828 +enable_so_len_rx_header_48462 len rx_header 0 48462 NULL
163829 +enable_so___nla_reserve_nohdr_fndecl_48468 __nla_reserve_nohdr fndecl 2 48468 NULL
163830 +enable_so_length_acpi_ipmi_buffer_48471 length acpi_ipmi_buffer 0 48471 NULL nohasharray
163831 +enable_so_enclosure_register_fndecl_48471 enclosure_register fndecl 3 48471 &enable_so_length_acpi_ipmi_buffer_48471
163832 +enable_so_gre_manip_pkt_fndecl_48475 gre_manip_pkt fndecl 4 48475 NULL
163833 +enable_so_parport_ieee1284_epp_read_data_fndecl_48478 parport_ieee1284_epp_read_data fndecl 0 48478 NULL
163834 +enable_so_nr_domains_rapl_package_48482 nr_domains rapl_package 0 48482 NULL
163835 +enable_so_xe_value_size_ocfs2_xattr_entry_48485 xe_value_size ocfs2_xattr_entry 0 48485 NULL
163836 +enable_so___roundup_pow_of_two_fndecl_48486 __roundup_pow_of_two fndecl 0 48486 NULL
163837 +enable_so___origin_write_fndecl_48487 __origin_write fndecl 2 48487 NULL nohasharray
163838 +enable_so_addidata_apci7800_setup_fndecl_48487 addidata_apci7800_setup fndecl 4 48487 &enable_so___origin_write_fndecl_48487
163839 +enable_so_sisusb_clear_vram_fndecl_48489 sisusb_clear_vram fndecl 2-3 48489 NULL
163840 +enable_so_l_len_ocfs2_space_resv_48490 l_len ocfs2_space_resv 0 48490 NULL
163841 +enable_so_ieee80211_if_read_flags_fndecl_48493 ieee80211_if_read_flags fndecl 3 48493 NULL
163842 +enable_so_ydepth_sh_veu_format_48498 ydepth sh_veu_format 0 48498 NULL nohasharray
163843 +enable_so_rss_key_write_fndecl_48498 rss_key_write fndecl 3 48498 &enable_so_ydepth_sh_veu_format_48498
163844 +enable_so_ping_v6_sendmsg_fndecl_48499 ping_v6_sendmsg fndecl 3 48499 NULL
163845 +enable_so_encode_filename_fndecl_48501 encode_filename fndecl 3 48501 NULL
163846 +enable_so_len_cfg80211_bss_ies_48503 len cfg80211_bss_ies 0 48503 NULL
163847 +enable_so_r_len_ipath_qp_48504 r_len ipath_qp 0 48504 NULL
163848 +enable_so_sys_pselect6_fndecl_48506 sys_pselect6 fndecl 1 48506 NULL
163849 +enable_so_channels_snd_soc_dai_48509 channels snd_soc_dai 0 48509 NULL
163850 +enable_so_rx_count_kim_data_s_48513 rx_count kim_data_s 0 48513 NULL nohasharray
163851 +enable_so_read_file_skb_rx_fndecl_48513 read_file_skb_rx fndecl 3 48513 &enable_so_rx_count_kim_data_s_48513
163852 +enable_so_get_lr_context_size_fndecl_48518 get_lr_context_size fndecl 0 48518 NULL
163853 +enable_so_octeon_read_device_mem32_fndecl_48520 octeon_read_device_mem32 fndecl 0 48520 NULL
163854 +enable_so_fcoe_get_paged_crc_eof_fndecl_48522 fcoe_get_paged_crc_eof fndecl 2 48522 NULL
163855 +enable_so_copy_in_user_fndecl_48525 copy_in_user fndecl 3 48525 NULL
163856 +enable_so_receive_buf_fndecl_48528 receive_buf fndecl 4 48528 NULL nohasharray
163857 +enable_so_max_sense_bytes_mpt3_ioctl_command_48528 max_sense_bytes mpt3_ioctl_command 0 48528 &enable_so_receive_buf_fndecl_48528
163858 +enable_so_dxfer_len_sg_io_hdr_48532 dxfer_len sg_io_hdr 0 48532 NULL
163859 +enable_so_nilfs_sufile_update_fndecl_48533 nilfs_sufile_update fndecl 2 48533 NULL
163860 +enable_so_ocfs2_write_cluster_fndecl_48536 ocfs2_write_cluster fndecl 2-8 48536 NULL
163861 +enable_so_discard_block_size_cache_48539 discard_block_size cache 0 48539 NULL
163862 +enable_so_fack_count_tcp_sacktag_state_48543 fack_count tcp_sacktag_state 0 48543 NULL
163863 +enable_so_aid_len_nfc_evt_transaction_48544 aid_len nfc_evt_transaction 0 48544 NULL
163864 +enable_so_cmm_read_fndecl_48547 cmm_read fndecl 3 48547 NULL
163865 +enable_so_dm_stats_create_fndecl_48550 dm_stats_create fndecl 4-2-3-6 48550 NULL
163866 +enable_so_inode_permission_fndecl_48552 inode_permission fndecl 0 48552 NULL nohasharray
163867 +enable_so_max_reply_bytes_mpt2_ioctl_command_48552 max_reply_bytes mpt2_ioctl_command 0 48552 &enable_so_inode_permission_fndecl_48552
163868 +enable_so_dccp_sync_mss_fndecl_48556 dccp_sync_mss fndecl 2 48556 NULL
163869 +enable_so_acpi_dev_get_resources_fndecl_48557 acpi_dev_get_resources fndecl 0 48557 NULL
163870 +enable_so___vlan_vid_add_fndecl_48559 __vlan_vid_add fndecl 3 48559 NULL
163871 +enable_so_internal_depth_MPT2SAS_ADAPTER_48564 internal_depth MPT2SAS_ADAPTER 0 48564 NULL
163872 +enable_so_intel_tile_height_fndecl_48566 intel_tile_height fndecl 0 48566 NULL
163873 +enable_so_init_tag_map_fndecl_48568 init_tag_map fndecl 3 48568 NULL
163874 +enable_so_start_spy_cam_fndecl_48570 start_spy_cam fndecl 0 48570 NULL
163875 +enable_so_len_wep_key_t_48574 len wep_key_t 0 48574 NULL nohasharray
163876 +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
163877 +enable_so_wil_read_file_ssid_fndecl_48574 wil_read_file_ssid fndecl 3 48574 &enable_so_il_dbgfs_force_reset_read_fndecl_48574
163878 +enable_so_iomem_reg_shift_old_serial_port_48579 iomem_reg_shift old_serial_port 0 48579 NULL
163879 +enable_so_vce_v2_0_bo_size_fndecl_48581 vce_v2_0_bo_size fndecl 0 48581 NULL
163880 +enable_so_tx_ring_size_bnx2x_48584 tx_ring_size bnx2x 0 48584 NULL
163881 +enable_so_backup_size_vmw_resource_48590 backup_size vmw_resource 0 48590 NULL
163882 +enable_so_il3945_hwrate_to_plcp_idx_fndecl_48592 il3945_hwrate_to_plcp_idx fndecl 0 48592 NULL
163883 +enable_so_driver_register_fndecl_48593 driver_register fndecl 0 48593 NULL
163884 +enable_so_len_isert_data_buf_48596 len isert_data_buf 0 48596 NULL
163885 +enable_so_wm_adsp_debugfs_wmfw_read_fndecl_48599 wm_adsp_debugfs_wmfw_read fndecl 3 48599 NULL
163886 +enable_so_args_count_of_phandle_args_48605 args_count of_phandle_args 0 48605 NULL
163887 +enable_so_datalen_atp_info_48607 datalen atp_info 0 48607 NULL
163888 +enable_so_count_e8390_pkt_hdr_48610 count e8390_pkt_hdr 0 48610 NULL
163889 +enable_so_mmc_test_prepare_mrq_fndecl_48612 mmc_test_prepare_mrq fndecl 7-6-4 48612 NULL
163890 +enable_so_read_file_spectral_fft_period_fndecl_48618 read_file_spectral_fft_period fndecl 3 48618 NULL
163891 +enable_so_num_streamids_arm_smmu_master_cfg_48625 num_streamids arm_smmu_master_cfg 0 48625 NULL
163892 +enable_so_xen_get_max_pages_fndecl_48626 xen_get_max_pages fndecl 0 48626 NULL
163893 +enable_so_crc_eof_offset_fcoe_percpu_s_48630 crc_eof_offset fcoe_percpu_s 0 48630 NULL
163894 +enable_so_bcma_of_get_irq_fndecl_48631 bcma_of_get_irq fndecl 0 48631 NULL
163895 +enable_so_ili210x_read_reg_fndecl_48632 ili210x_read_reg fndecl 4 48632 NULL nohasharray
163896 +enable_so_get_bridge_ifindices_fndecl_48632 get_bridge_ifindices fndecl 0 48632 &enable_so_ili210x_read_reg_fndecl_48632
163897 +enable_so_srcbusirq_mpc_intsrc_48636 srcbusirq mpc_intsrc 0 48636 NULL
163898 +enable_so_nsymbols_dsp_symbol_desc_48638 nsymbols dsp_symbol_desc 0 48638 NULL
163899 +enable_so_check_next_phase_fndecl_48641 check_next_phase fndecl 2 48641 NULL
163900 +enable_so_savemem_fndecl_48642 savemem fndecl 3 48642 NULL
163901 +enable_so_w_panel_info_48643 w panel_info 0 48643 NULL
163902 +enable_so_ipv6_flowlabel_opt_fndecl_48644 ipv6_flowlabel_opt fndecl 3 48644 NULL nohasharray
163903 +enable_so_slhc_init_fndecl_48644 slhc_init fndecl 1-2 48644 &enable_so_ipv6_flowlabel_opt_fndecl_48644
163904 +enable_so_origin_sectors_cache_48650 origin_sectors cache 0 48650 NULL
163905 +enable_so_libcfs_kvzalloc_cpt_fndecl_48651 libcfs_kvzalloc_cpt fndecl 3 48651 NULL
163906 +enable_so_pkt_len_eth_end_agg_rx_cqe_48658 pkt_len eth_end_agg_rx_cqe 0 48658 NULL nohasharray
163907 +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
163908 +enable_so_mmc_test_rnd_perf_fndecl_48660 mmc_test_rnd_perf fndecl 4 48660 NULL
163909 +enable_so_nn_rs_control_48667 nn rs_control 0 48667 NULL
163910 +enable_so_snd_seq_fifo_new_fndecl_48670 snd_seq_fifo_new fndecl 1 48670 NULL
163911 +enable_so_ep_out_if_usb_card_48678 ep_out if_usb_card 0 48678 NULL
163912 +enable_so_vscan_drm_display_mode_48680 vscan drm_display_mode 0 48680 NULL nohasharray
163913 +enable_so_ext4_bg_num_gdb_fndecl_48680 ext4_bg_num_gdb fndecl 0 48680 &enable_so_vscan_drm_display_mode_48680
163914 +enable_so_simple_transaction_set_fndecl_48684 simple_transaction_set fndecl 2 48684 NULL
163915 +enable_so_max_eqs_mlx4_dev_cap_48689 max_eqs mlx4_dev_cap 0 48689 NULL
163916 +enable_so_sb_dblocks_xfs_sb_48691 sb_dblocks xfs_sb 0 48691 NULL
163917 +enable_so_gf100_ram_create__fndecl_48692 gf100_ram_create_ fndecl 5 48692 NULL
163918 +enable_so_usCRTC_H_Disp__ATOM_MODE_TIMING_48694 usCRTC_H_Disp _ATOM_MODE_TIMING 0 48694 NULL nohasharray
163919 +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
163920 +enable_so_max_rds_rings_netxen_adapter_48699 max_rds_rings netxen_adapter 0 48699 NULL nohasharray
163921 +enable_so_make_cpu_key_fndecl_48699 make_cpu_key fndecl 3 48699 &enable_so_max_rds_rings_netxen_adapter_48699
163922 +enable_so_tx_load_fndecl_48707 tx_load fndecl 3 48707 NULL nohasharray
163923 +enable_so_cqe_ib_cq_init_attr_48707 cqe ib_cq_init_attr 0 48707 &enable_so_tx_load_fndecl_48707
163924 +enable_so_s_max_sge_ipath_qp_48710 s_max_sge ipath_qp 0 48710 NULL
163925 +enable_so_sect_count_hfsplus_sb_info_48715 sect_count hfsplus_sb_info 0 48715 NULL
163926 +enable_so_base_gfn_kvm_memory_slot_48716 base_gfn kvm_memory_slot 0 48716 NULL
163927 +enable_so_nci_send_cmd_fndecl_48717 nci_send_cmd fndecl 3 48717 NULL nohasharray
163928 +enable_so_num_cols_vardecl_arcfb_c_48717 num_cols vardecl_arcfb.c 0 48717 &enable_so_nci_send_cmd_fndecl_48717
163929 +enable_so_rx_max_cdc_ncm_ctx_48720 rx_max cdc_ncm_ctx 0 48720 NULL nohasharray
163930 +enable_so_mdata_ofs_cyttsp4_sysinfo_ofs_48720 mdata_ofs cyttsp4_sysinfo_ofs 0 48720 &enable_so_rx_max_cdc_ncm_ctx_48720
163931 +enable_so_ceph_tcp_recvmsg_fndecl_48722 ceph_tcp_recvmsg fndecl 0-3 48722 NULL
163932 +enable_so_garmin_write_bulk_fndecl_48732 garmin_write_bulk fndecl 3 48732 NULL
163933 +enable_so_can_dlc_can_frame_48738 can_dlc can_frame 0 48738 NULL
163934 +enable_so_bad_peb_count_ubi_device_48741 bad_peb_count ubi_device 0 48741 NULL nohasharray
163935 +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
163936 +enable_so_iommu_size_vardecl_amd_gart_64_c_48749 iommu_size vardecl_amd_gart_64.c 0 48749 NULL
163937 +enable_so_default_value_v4l2_ctrl_48751 default_value v4l2_ctrl 0 48751 NULL
163938 +enable_so_i40evf_allocate_virt_mem_d_fndecl_48753 i40evf_allocate_virt_mem_d fndecl 3 48753 NULL
163939 +enable_so_e_blkno_ocfs2_extent_rec_48756 e_blkno ocfs2_extent_rec 0 48756 NULL
163940 +enable_so_ide_rate_filter_fndecl_48764 ide_rate_filter fndecl 0 48764 NULL
163941 +enable_so_nfree_arena_info_48769 nfree arena_info 0 48769 NULL
163942 +enable_so_read_file_debug_fndecl_48771 read_file_debug fndecl 3 48771 NULL
163943 +enable_so_xmit_size_modem_info_48775 xmit_size modem_info 0 48775 NULL
163944 +enable_so_usable_leb_size_ubi_volume_info_48776 usable_leb_size ubi_volume_info 0 48776 NULL nohasharray
163945 +enable_so_profile_load_fndecl_48776 profile_load fndecl 3 48776 &enable_so_usable_leb_size_ubi_volume_info_48776
163946 +enable_so_cfg80211_mgmt_tx_status_fndecl_48777 cfg80211_mgmt_tx_status fndecl 4 48777 NULL
163947 +enable_so_acpi_ds_build_internal_package_obj_fndecl_48780 acpi_ds_build_internal_package_obj fndecl 3 48780 NULL
163948 +enable_so_height_drm_framebuffer_48781 height drm_framebuffer 0 48781 NULL
163949 +enable_so_value_len_jffs2_xattr_datum_48786 value_len jffs2_xattr_datum 0 48786 NULL nohasharray
163950 +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
163951 +enable_so_hva_to_pfn_fndecl_48786 hva_to_pfn fndecl 1 48786 &enable_so_mwifiex_host_to_card_mp_aggr_fndecl_48786
163952 +enable_so_head_len_cfg80211_beacon_data_48794 head_len cfg80211_beacon_data 0 48794 NULL
163953 +enable_so_unit_size_mspro_sys_info_48796 unit_size mspro_sys_info 0 48796 NULL
163954 +enable_so_len_spi_transfer_48802 len spi_transfer 0 48802 NULL
163955 +enable_so_ext3_max_size_fndecl_48803 ext3_max_size fndecl 0-1 48803 NULL
163956 +enable_so_twl6030_init_irq_fndecl_48804 twl6030_init_irq fndecl 0 48804 NULL
163957 +enable_so_iscsi_decode_text_input_fndecl_48807 iscsi_decode_text_input fndecl 4 48807 NULL
163958 +enable_so_dev_id_rbd_device_48813 dev_id rbd_device 0 48813 NULL
163959 +enable_so_len_pci_vpd_48814 len pci_vpd 0 48814 NULL
163960 +enable_so_r100_mm_rreg_fndecl_48823 r100_mm_rreg fndecl 0 48823 NULL
163961 +enable_so_sharpness_sd_gl860_48824 sharpness sd_gl860 0 48824 NULL
163962 +enable_so_endpoint_pvr2_stream_48828 endpoint pvr2_stream 0 48828 NULL
163963 +enable_so_xbofs_irda_skb_cb_48831 xbofs irda_skb_cb 0 48831 NULL nohasharray
163964 +enable_so_num_vring_48831 num vring 0 48831 &enable_so_xbofs_irda_skb_cb_48831
163965 +enable_so_mic_virtio_copy_from_user_fndecl_48832 mic_virtio_copy_from_user fndecl 3 48832 NULL
163966 +enable_so___generic_file_fsync_fndecl_48835 __generic_file_fsync fndecl 2-3 48835 NULL
163967 +enable_so_osst_init_aux_fndecl_48837 osst_init_aux fndecl 5-6-3 48837 NULL
163968 +enable_so_tx_tx_start_int_templates_read_fndecl_48839 tx_tx_start_int_templates_read fndecl 3 48839 NULL
163969 +enable_so_busnum_usb_bus_48843 busnum usb_bus 0 48843 NULL
163970 +enable_so_pcim_iomap_fndecl_48845 pcim_iomap fndecl 3 48845 NULL
163971 +enable_so_ieee80211_if_read_dot11MeshTTL_fndecl_48848 ieee80211_if_read_dot11MeshTTL fndecl 3 48848 NULL
163972 +enable_so_container_width_dmm_48858 container_width dmm 0 48858 NULL
163973 +enable_so_pagefault_single_data_segment_fndecl_48864 pagefault_single_data_segment fndecl 4 48864 NULL
163974 +enable_so_vmalloc_to_sg_fndecl_48865 vmalloc_to_sg fndecl 2 48865 NULL
163975 +enable_so_num_desc_i40e_vsi_48872 num_desc i40e_vsi 0 48872 NULL
163976 +enable_so_log_mtts_per_seg_vardecl_48880 log_mtts_per_seg vardecl 0 48880 NULL
163977 +enable_so_skb_ensure_writable_fndecl_48882 skb_ensure_writable fndecl 2 48882 NULL nohasharray
163978 +enable_so___copy_from_user_swizzled_fndecl_48882 __copy_from_user_swizzled fndecl 2-4 48882 &enable_so_skb_ensure_writable_fndecl_48882
163979 +enable_so_memblock_clear_hotplug_fndecl_48883 memblock_clear_hotplug fndecl 2-1 48883 NULL nohasharray
163980 +enable_so_diva_init_dma_map_fndecl_48883 diva_init_dma_map fndecl 3 48883 &enable_so_memblock_clear_hotplug_fndecl_48883
163981 +enable_so_cl_in_max_entry_size_mvumi_hs_page1_48890 cl_in_max_entry_size mvumi_hs_page1 0 48890 NULL
163982 +enable_so_radeon_ttm_gtt_read_fndecl_48900 radeon_ttm_gtt_read fndecl 3 48900 NULL
163983 +enable_so_nr_buffers_drm_nouveau_gem_pushbuf_48902 nr_buffers drm_nouveau_gem_pushbuf 0 48902 NULL
163984 +enable_so_nvkm_mxm_create__fndecl_48907 nvkm_mxm_create_ fndecl 4 48907 NULL
163985 +enable_so_offset_scatterlist_48908 offset scatterlist 0 48908 NULL nohasharray
163986 +enable_so_max_devices_support_mvumi_hs_page1_48908 max_devices_support mvumi_hs_page1 0 48908 &enable_so_offset_scatterlist_48908
163987 +enable_so_ucNumEntries__StateArray_48910 ucNumEntries _StateArray 0 48910 NULL
163988 +enable_so_iscsit_tpg_set_initiator_node_queue_depth_fndecl_48914 iscsit_tpg_set_initiator_node_queue_depth fndecl 3 48914 NULL
163989 +enable_so_s_groups_count_ext2_sb_info_48915 s_groups_count ext2_sb_info 0 48915 NULL
163990 +enable_so_tailsz_cifs_readdata_48919 tailsz cifs_readdata 0 48919 NULL
163991 +enable_so_minix_iget_fndecl_48927 minix_iget fndecl 2 48927 NULL
163992 +enable_so__scif_nodeqp_send_fndecl_48929 _scif_nodeqp_send fndecl 0 48929 NULL
163993 +enable_so_write_file_operations_48930 write file_operations 0 48930 NULL nohasharray
163994 +enable_so_rx_ring_count_ixgbevf_adapter_48930 rx_ring_count ixgbevf_adapter 0 48930 &enable_so_write_file_operations_48930
163995 +enable_so_iio_read_first_n_kfifo_fndecl_48933 iio_read_first_n_kfifo fndecl 2 48933 NULL
163996 +enable_so_min_inp_pixsize_fimc_variant_48943 min_inp_pixsize fimc_variant 0 48943 NULL nohasharray
163997 +enable_so_w1_reply_len_fndecl_48943 w1_reply_len fndecl 0 48943 &enable_so_min_inp_pixsize_fimc_variant_48943
163998 +enable_so_set_dma_reserve_fndecl_48948 set_dma_reserve fndecl 1 48948 NULL nohasharray
163999 +enable_so_start_mthca_resource_48948 start mthca_resource 0 48948 &enable_so_set_dma_reserve_fndecl_48948
164000 +enable_so_to_index_fndecl_48953 to_index fndecl 0 48953 NULL
164001 +enable_so_xt_alloc_table_info_fndecl_48956 xt_alloc_table_info fndecl 1 48956 NULL
164002 +enable_so_user_dlm_lock_fndecl_48959 user_dlm_lock fndecl 6 48959 NULL nohasharray
164003 +enable_so_wptr_radeon_ring_48959 wptr radeon_ring 0 48959 &enable_so_user_dlm_lock_fndecl_48959
164004 +enable_so_xfs_mru_cache_create_fndecl_48964 xfs_mru_cache_create fndecl 3 48964 NULL nohasharray
164005 +enable_so_num_requests_vardecl_48964 num_requests vardecl 0 48964 &enable_so_xfs_mru_cache_create_fndecl_48964
164006 +enable_so_SyS_io_setup_fndecl_48965 SyS_io_setup fndecl 1 48965 NULL
164007 +enable_so_block_size_sm_ftl_48967 block_size sm_ftl 0 48967 NULL
164008 +enable_so_key_algorithm_read_fndecl_48969 key_algorithm_read fndecl 3 48969 NULL
164009 +enable_so_rx_fndecl_48971 rx fndecl 4 48971 NULL
164010 +enable_so_twl_i2c_write_fndecl_48976 twl_i2c_write fndecl 0 48976 NULL nohasharray
164011 +enable_so_dma40_prep_dma_cyclic_fndecl_48976 dma40_prep_dma_cyclic fndecl 4-3 48976 &enable_so_twl_i2c_write_fndecl_48976
164012 +enable_so_mwifiex_hscfg_read_fndecl_48979 mwifiex_hscfg_read fndecl 3 48979 NULL
164013 +enable_so_pkt_overhead_pktgen_dev_48989 pkt_overhead pktgen_dev 0 48989 NULL
164014 +enable_so_sel_read_handle_unknown_fndecl_48990 sel_read_handle_unknown fndecl 3 48990 NULL
164015 +enable_so_iov_iter_npages_fndecl_49000 iov_iter_npages fndecl 0-2 49000 NULL nohasharray
164016 +enable_so_pid_task_struct_49000 pid task_struct 0 49000 &enable_so_iov_iter_npages_fndecl_49000
164017 +enable_so_rec_len_exofs_dir_entry_49002 rec_len exofs_dir_entry 0 49002 NULL
164018 +enable_so_c2_reg_user_mr_fndecl_49005 c2_reg_user_mr fndecl 2-3 49005 NULL nohasharray
164019 +enable_so_size_mlx4_en_tx_ring_49005 size mlx4_en_tx_ring 0 49005 &enable_so_c2_reg_user_mr_fndecl_49005
164020 +enable_so_ip_set_alloc_fndecl_49010 ip_set_alloc fndecl 1 49010 NULL nohasharray
164021 +enable_so_ioat3_dca_count_dca_slots_fndecl_49010 ioat3_dca_count_dca_slots fndecl 0 49010 &enable_so_ip_set_alloc_fndecl_49010
164022 +enable_so_bm_len_xfs_buf_map_49022 bm_len xfs_buf_map 0 49022 NULL
164023 +enable_so_rx_reset_counter_read_fndecl_49026 rx_reset_counter_read fndecl 3 49026 NULL
164024 +enable_so_usb_dmac_prep_slave_sg_fndecl_49027 usb_dmac_prep_slave_sg fndecl 3 49027 NULL
164025 +enable_so_size_vmw_otable_49032 size vmw_otable 0 49032 NULL
164026 +enable_so___ip6_append_data_fndecl_49037 __ip6_append_data fndecl 10-9 49037 NULL
164027 +enable_so_dev_id_rfcomm_dev_req_49039 dev_id rfcomm_dev_req 0 49039 NULL
164028 +enable_so_reg_r_fndecl_49040 reg_r fndecl 0 49040 NULL
164029 +enable_so_dwMaxVideoFrameSize_uvc_streaming_control_49044 dwMaxVideoFrameSize uvc_streaming_control 0 49044 NULL
164030 +enable_so_devno_skd_device_49051 devno skd_device 0 49051 NULL nohasharray
164031 +enable_so_devices_per_bus__MPT_ADAPTER_49051 devices_per_bus _MPT_ADAPTER 0 49051 &enable_so_devno_skd_device_49051
164032 +enable_so_cxacru_cm_fndecl_49052 cxacru_cm fndecl 4 49052 NULL
164033 +enable_so_iguanair_send_fndecl_49054 iguanair_send fndecl 2 49054 NULL
164034 +enable_so_route_key_size_nf_afinfo_49055 route_key_size nf_afinfo 0 49055 NULL
164035 +enable_so_ide_pio_bytes_fndecl_49063 ide_pio_bytes fndecl 4 49063 NULL
164036 +enable_so_cm_size_tp_params_49065 cm_size tp_params 0 49065 NULL
164037 +enable_so_transport_mtu_vardecl_ntb_transport_c_49067 transport_mtu vardecl_ntb_transport.c 0 49067 NULL
164038 +enable_so_do_writepage_fndecl_49068 do_writepage fndecl 2 49068 NULL
164039 +enable_so_irq_base_kvm_kpic_state_49073 irq_base kvm_kpic_state 0 49073 NULL
164040 +enable_so_ext3_quota_write_fndecl_49075 ext3_quota_write fndecl 4-5 49075 NULL
164041 +enable_so_iwl_dbgfs_ucode_rx_stats_read_fndecl_49076 iwl_dbgfs_ucode_rx_stats_read fndecl 3 49076 NULL
164042 +enable_so_ccid_hc_tx_obj_size_ccid_operations_49077 ccid_hc_tx_obj_size ccid_operations 0 49077 NULL
164043 +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
164044 +enable_so_tty_major_vardecl_hso_c_49084 tty_major vardecl_hso.c 0 49084 NULL
164045 +enable_so_dev_priv_size_drm_buf_49086 dev_priv_size drm_buf 0 49086 NULL
164046 +enable_so_optrom_region_size_qla_hw_data_49087 optrom_region_size qla_hw_data 0 49087 NULL
164047 +enable_so_ocfs2_find_leaf_fndecl_49090 ocfs2_find_leaf fndecl 0 49090 NULL nohasharray
164048 +enable_so_bi_vcnt_bio_49090 bi_vcnt bio 0 49090 &enable_so_ocfs2_find_leaf_fndecl_49090
164049 +enable_so_ocfs2_mv_xattr_bucket_cross_cluster_fndecl_49091 ocfs2_mv_xattr_bucket_cross_cluster fndecl 5-6 49091 NULL
164050 +enable_so_end_sector_dev_info_49096 end_sector dev_info 0 49096 NULL nohasharray
164051 +enable_so_misc_sbp_command_block_orb_49096 misc sbp_command_block_orb 0 49096 &enable_so_end_sector_dev_info_49096
164052 +enable_so_mt76_mac_process_tx_rate_fndecl_49097 mt76_mac_process_tx_rate fndecl 2 49097 NULL
164053 +enable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 4 49098 NULL
164054 +enable_so_usb_stor_acquire_resources_fndecl_49100 usb_stor_acquire_resources fndecl 0 49100 NULL nohasharray
164055 +enable_so_cm4040_write_fndecl_49100 cm4040_write fndecl 3 49100 &enable_so_usb_stor_acquire_resources_fndecl_49100
164056 +enable_so_xdr_align_pages_fndecl_49102 xdr_align_pages fndecl 0-2 49102 NULL
164057 +enable_so_ri_super_root_nilfs_recovery_info_49105 ri_super_root nilfs_recovery_info 0 49105 NULL
164058 +enable_so_vmci_qpair_alloc_fndecl_49107 vmci_qpair_alloc fndecl 4-3 49107 NULL nohasharray
164059 +enable_so_qnx6_block_map_fndecl_49107 qnx6_block_map fndecl 0 49107 &enable_so_vmci_qpair_alloc_fndecl_49107
164060 +enable_so_ino_kernfs_node_49113 ino kernfs_node 0 49113 NULL
164061 +enable_so_alloc_rbio_fndecl_49128 alloc_rbio fndecl 3 49128 NULL
164062 +enable_so_m_ialloc_min_blks_xfs_mount_49129 m_ialloc_min_blks xfs_mount 0 49129 NULL
164063 +enable_so_mad_seg_size_ib_mad_recv_wc_49134 mad_seg_size ib_mad_recv_wc 0 49134 NULL
164064 +enable_so_neo_init_hw_fndecl_49135 neo_init_hw fndecl 0 49135 NULL
164065 +enable_so_snd_pcm_hw_param_min_fndecl_49139 snd_pcm_hw_param_min fndecl 4 49139 NULL
164066 +enable_so_batch_len_drm_i915_gem_execbuffer2_49145 batch_len drm_i915_gem_execbuffer2 0 49145 NULL
164067 +enable_so_fll_out_wm8900_priv_49147 fll_out wm8900_priv 0 49147 NULL
164068 +enable_so_max_dev_mdp_superblock_1_49148 max_dev mdp_superblock_1 0 49148 NULL
164069 +enable_so_il4965_rate_n_flags_from_tbl_fndecl_49149 il4965_rate_n_flags_from_tbl fndecl 0 49149 NULL
164070 +enable_so_ufx_reg_clear_and_set_bits_fndecl_49150 ufx_reg_clear_and_set_bits fndecl 0 49150 NULL
164071 +enable_so_ecryptfs_inode_newsize_ok_fndecl_49153 ecryptfs_inode_newsize_ok fndecl 2 49153 NULL
164072 +enable_so_tx_tr_cfv_info_49171 tx_tr cfv_info 0 49171 NULL
164073 +enable_so_ipr_alloc_ucode_buffer_fndecl_49172 ipr_alloc_ucode_buffer fndecl 1 49172 NULL
164074 +enable_so_nilfs_sufile_do_cancel_free_fndecl_49183 nilfs_sufile_do_cancel_free fndecl 2 49183 NULL nohasharray
164075 +enable_so_allocate_probes_fndecl_49183 allocate_probes fndecl 1 49183 &enable_so_nilfs_sufile_do_cancel_free_fndecl_49183
164076 +enable_so_s_last_ino_logfs_super_49185 s_last_ino logfs_super 0 49185 NULL
164077 +enable_so_discard_next_dnode_fndecl_49188 discard_next_dnode fndecl 2 49188 NULL
164078 +enable_so_len_fb_cmap_user_49195 len fb_cmap_user 0 49195 NULL
164079 +enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197 fsl_edma_prep_dma_cyclic fndecl 4-2-3 49197 NULL nohasharray
164080 +enable_so_of_get_child_count_fndecl_49197 of_get_child_count fndecl 0 49197 &enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197
164081 +enable_so_offset_page_chunk_49201 offset page_chunk 0 49201 NULL
164082 +enable_so_ocrdma_dbgfs_ops_read_fndecl_49211 ocrdma_dbgfs_ops_read fndecl 3 49211 NULL
164083 +enable_so_osst_read_fndecl_49214 osst_read fndecl 3 49214 NULL
164084 +enable_so_i_pos_low_fat_fid_49216 i_pos_low fat_fid 0 49216 NULL nohasharray
164085 +enable_so_nleft_ide_cmd_49216 nleft ide_cmd 0 49216 &enable_so_i_pos_low_fat_fid_49216 nohasharray
164086 +enable_so_usbnet_read_cmd_fndecl_49216 usbnet_read_cmd fndecl 7 49216 &enable_so_nleft_ide_cmd_49216
164087 +enable_so_rx_xfr_hint_trig_read_fndecl_49224 rx_xfr_hint_trig_read fndecl 3 49224 NULL
164088 +enable_so_offset_rq_map_data_49234 offset rq_map_data 0 49234 NULL
164089 +enable_so_rs_sta_dbgfs_scale_table_read_fndecl_49237 rs_sta_dbgfs_scale_table_read fndecl 3 49237 NULL
164090 +enable_so_ext_ramdisk_image_boot_params_49238 ext_ramdisk_image boot_params 0 49238 NULL
164091 +enable_so_mos7840_write_fndecl_49240 mos7840_write fndecl 4 49240 NULL
164092 +enable_so_persistent_ram_iomap_fndecl_49243 persistent_ram_iomap fndecl 2-1 49243 NULL
164093 +enable_so_ext2_fiemap_fndecl_49244 ext2_fiemap fndecl 4 49244 NULL
164094 +enable_so_dmpt_entry_sz_mlx4_dev_cap_49245 dmpt_entry_sz mlx4_dev_cap 0 49245 NULL
164095 +enable_so_xfs_map_buffer_fndecl_49246 xfs_map_buffer fndecl 4 49246 NULL
164096 +enable_so_mppe_compress_fndecl_49248 mppe_compress fndecl 4 49248 NULL
164097 +enable_so_nfs_file_llseek_fndecl_49249 nfs_file_llseek fndecl 2 49249 NULL
164098 +enable_so_rdmarc_shift_mlx4_qp_table_49259 rdmarc_shift mlx4_qp_table 0 49259 NULL
164099 +enable_so_di_size_qnx4_inode_entry_49263 di_size qnx4_inode_entry 0 49263 NULL
164100 +enable_so_rate_floppy_struct_49273 rate floppy_struct 0 49273 NULL
164101 +enable_so_dwDefaultFrameInterval_uvc_frame_49276 dwDefaultFrameInterval uvc_frame 0 49276 NULL
164102 +enable_so_name_len_audit_names_49277 name_len audit_names 0 49277 NULL
164103 +enable_so_ib_get_mad_data_offset_fndecl_49283 ib_get_mad_data_offset fndecl 0 49283 NULL
164104 +enable_so_idetape_blkdev_ioctl_fndecl_49292 idetape_blkdev_ioctl fndecl 0 49292 NULL
164105 +enable_so_alloc_dev_fndecl_49294 alloc_dev fndecl 1 49294 NULL nohasharray
164106 +enable_so_header_length_ipr_ucode_image_header_49294 header_length ipr_ucode_image_header 0 49294 &enable_so_alloc_dev_fndecl_49294
164107 +enable_so_frag_threshold_ipw2100_priv_49298 frag_threshold ipw2100_priv 0 49298 NULL
164108 +enable_so_bTransferSegment_wa_xfer_result_49303 bTransferSegment wa_xfer_result 0 49303 NULL
164109 +enable_so_SAL_nasids_size_xpc_rsvd_page_49304 SAL_nasids_size xpc_rsvd_page 0 49304 NULL
164110 +enable_so_splice_direct_to_actor_fndecl_49310 splice_direct_to_actor fndecl 0 49310 NULL
164111 +enable_so_membase_avmcard_49314 membase avmcard 0 49314 NULL
164112 +enable_so_get_chars_fndecl_49318 get_chars fndecl 3 49318 NULL
164113 +enable_so_filternum_dmxdev_49322 filternum dmxdev 0 49322 NULL nohasharray
164114 +enable_so_via_cputemp_device_add_fndecl_49322 via_cputemp_device_add fndecl 1 49322 &enable_so_filternum_dmxdev_49322
164115 +enable_so_fwnet_incoming_packet_fndecl_49327 fwnet_incoming_packet fndecl 3 49327 NULL
164116 +enable_so_ocfs2_release_clusters_fndecl_49328 ocfs2_release_clusters fndecl 4 49328 NULL
164117 +enable_so_length_iwl_wipan_noa_data_49332 length iwl_wipan_noa_data 0 49332 NULL
164118 +enable_so_cmnd_res_ep_vub300_mmc_host_49334 cmnd_res_ep vub300_mmc_host 0 49334 NULL
164119 +enable_so_event_rx_mem_empty_read_fndecl_49336 event_rx_mem_empty_read fndecl 3 49336 NULL
164120 +enable_so_get_data_block_fiemap_fndecl_49346 get_data_block_fiemap fndecl 2 49346 NULL nohasharray
164121 +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
164122 +enable_so_mute_bttv_49358 mute bttv 0 49358 NULL
164123 +enable_so_num_msix_entries_qib_chip_specific_49373 num_msix_entries qib_chip_specific 0 49373 NULL
164124 +enable_so_fsbcount_xfs_da_geometry_49380 fsbcount xfs_da_geometry 0 49380 NULL
164125 +enable_so_short_mark_sd_49388 short_mark sd 0 49388 NULL
164126 +enable_so_pci_iov_resource_size_fndecl_49389 pci_iov_resource_size fndecl 0 49389 NULL
164127 +enable_so_exofs_nfs_get_inode_fndecl_49391 exofs_nfs_get_inode fndecl 2 49391 NULL
164128 +enable_so_ecryptfs_read_lower_fndecl_49392 ecryptfs_read_lower fndecl 3 49392 NULL
164129 +enable_so_current_font_height_sisusb_usb_data_49394 current_font_height sisusb_usb_data 0 49394 NULL nohasharray
164130 +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
164131 +enable_so_send_cmd_iwl_trans_ops_49394 send_cmd iwl_trans_ops 0 49394 &enable_so_usb_ftdi_elan_edset_empty_fndecl_49394
164132 +enable_so_tty_prepare_flip_string_fndecl_49408 tty_prepare_flip_string fndecl 3 49408 NULL
164133 +enable_so_ss_next_nilfs_segment_summary_49410 ss_next nilfs_segment_summary 0 49410 NULL nohasharray
164134 +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
164135 +enable_so_lstcon_group_list_fndecl_49413 lstcon_group_list fndecl 2 49413 NULL
164136 +enable_so_base_doorbell_index_nes_device_49415 base_doorbell_index nes_device 0 49415 NULL nohasharray
164137 +enable_so_size_efx_farch_filter_table_49415 size efx_farch_filter_table 0 49415 &enable_so_base_doorbell_index_nes_device_49415
164138 +enable_so_bio_chain_clone_range_fndecl_49420 bio_chain_clone_range fndecl 3 49420 NULL
164139 +enable_so_tipc_msg_build_fndecl_49424 tipc_msg_build fndecl 4-5 49424 NULL
164140 +enable_so_ds_out_channels_hdsp_49429 ds_out_channels hdsp 0 49429 NULL
164141 +enable_so_onenand_write_oob_fndecl_49431 onenand_write_oob fndecl 2 49431 NULL
164142 +enable_so_fwnet_pd_new_fndecl_49432 fwnet_pd_new fndecl 4 49432 NULL nohasharray
164143 +enable_so_set_run_fndecl_49432 set_run fndecl 2 49432 &enable_so_fwnet_pd_new_fndecl_49432 nohasharray
164144 +enable_so_bytenr_tree_block_49432 bytenr tree_block 0 49432 &enable_so_set_run_fndecl_49432 nohasharray
164145 +enable_so_error_error_frame_read_fndecl_49432 error_error_frame_read fndecl 3 49432 &enable_so_bytenr_tree_block_49432
164146 +enable_so_main_segments_f2fs_sm_info_49433 main_segments f2fs_sm_info 0 49433 NULL
164147 +enable_so_nr_ndevs_vardecl_af_netrom_c_49435 nr_ndevs vardecl_af_netrom.c 0 49435 NULL
164148 +enable_so_mthca_array_init_fndecl_49440 mthca_array_init fndecl 2 49440 NULL
164149 +enable_so_fw_device_op_read_fndecl_49445 fw_device_op_read fndecl 3 49445 NULL
164150 +enable_so_perf_output_copy_fndecl_49448 perf_output_copy fndecl 3 49448 NULL
164151 +enable_so_global_irq_acpi_madt_interrupt_override_49451 global_irq acpi_madt_interrupt_override 0 49451 NULL
164152 +enable_so_get_setup_data_total_num_fndecl_49455 get_setup_data_total_num fndecl 1 49455 NULL nohasharray
164153 +enable_so_dwc3_readl_fndecl_49455 dwc3_readl fndecl 0 49455 &enable_so_get_setup_data_total_num_fndecl_49455
164154 +enable_so_rtl2832_regmap_write_fndecl_49456 rtl2832_regmap_write fndecl 3 49456 NULL
164155 +enable_so_dma_push_rx_fndecl_49462 dma_push_rx fndecl 2 49462 NULL
164156 +enable_so_minix_inode_by_name_fndecl_49464 minix_inode_by_name fndecl 0 49464 NULL
164157 +enable_so_NumberOfPorts_mpt2sas_facts_49465 NumberOfPorts mpt2sas_facts 0 49465 NULL nohasharray
164158 +enable_so_ch_count_srp_target_port_49465 ch_count srp_target_port 0 49465 &enable_so_NumberOfPorts_mpt2sas_facts_49465
164159 +enable_so_usb_tx_block_fndecl_49466 usb_tx_block fndecl 3 49466 NULL
164160 +enable_so_broadsheetfb_write_fndecl_49467 broadsheetfb_write fndecl 3 49467 NULL
164161 +enable_so_len_r6040_descriptor_49471 len r6040_descriptor 0 49471 NULL
164162 +enable_so_s_cblkno_ufs_sb_private_info_49472 s_cblkno ufs_sb_private_info 0 49472 NULL
164163 +enable_so_xen_hvm_config_fndecl_49473 xen_hvm_config fndecl 2 49473 NULL
164164 +enable_so_ks8995_read_fndecl_49475 ks8995_read fndecl 4 49475 NULL
164165 +enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476 nf_nat_icmpv6_reply_translation fndecl 5 49476 NULL nohasharray
164166 +enable_so_ivtvfb_write_fndecl_49476 ivtvfb_write fndecl 3 49476 &enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476
164167 +enable_so_make_rx_response_fndecl_49477 make_rx_response fndecl 5-4-3 49477 NULL
164168 +enable_so_mc_mask_amdgpu_mc_49478 mc_mask amdgpu_mc 0 49478 NULL nohasharray
164169 +enable_so_rpc_max_payload_fndecl_49478 rpc_max_payload fndecl 0 49478 &enable_so_mc_mask_amdgpu_mc_49478
164170 +enable_so_max_queue_depth_vardecl_mpt2sas_base_c_49479 max_queue_depth vardecl_mpt2sas_base.c 0 49479 NULL
164171 +enable_so_ea_foreach_i_fndecl_49487 ea_foreach_i fndecl 0 49487 NULL
164172 +enable_so_i2c_readn_fndecl_49490 i2c_readn fndecl 4 49490 NULL
164173 +enable_so_xfs_file_llseek_fndecl_49492 xfs_file_llseek fndecl 2 49492 NULL
164174 +enable_so_din_xfer_len_sg_io_v4_49498 din_xfer_len sg_io_v4 0 49498 NULL
164175 +enable_so_smb_send_fndecl_49500 smb_send fndecl 3 49500 NULL
164176 +enable_so_usCRTC_H_Total__ATOM_MODE_TIMING_49501 usCRTC_H_Total _ATOM_MODE_TIMING 0 49501 NULL
164177 +enable_so_intel_framebuffer_create_for_mode_fndecl_49508 intel_framebuffer_create_for_mode fndecl 4 49508 NULL nohasharray
164178 +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
164179 +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
164180 +enable_so_add_tty_fndecl_49508 add_tty fndecl 1 49508 &enable_so___bnx2x_get_preset_regs_len_fndecl_49508
164181 +enable_so_tx_blk_size_rsi_91x_sdiodev_49511 tx_blk_size rsi_91x_sdiodev 0 49511 NULL
164182 +enable_so_usbvision_write_reg_irq_fndecl_49516 usbvision_write_reg_irq fndecl 4 49516 NULL
164183 +enable_so_buf_size_sge_fl_49517 buf_size sge_fl 0 49517 NULL
164184 +enable_so_Zmin_hfc_multi_49520 Zmin hfc_multi 0 49520 NULL
164185 +enable_so_log_mtts_per_seg_vardecl_mthca_main_c_49524 log_mtts_per_seg vardecl_mthca_main.c 0 49524 NULL
164186 +enable_so_num_eps_bdc_49525 num_eps bdc 0 49525 NULL nohasharray
164187 +enable_so_datablob_hmac_append_fndecl_49525 datablob_hmac_append fndecl 3 49525 &enable_so_num_eps_bdc_49525
164188 +enable_so_mtt_entry_sz_mlx4_caps_49531 mtt_entry_sz mlx4_caps 0 49531 NULL
164189 +enable_so_num_connector_drm_atomic_state_49542 num_connector drm_atomic_state 0 49542 NULL
164190 +enable_so_disk_offset_pnfs_block_dev_map_49546 disk_offset pnfs_block_dev_map 0 49546 NULL
164191 +enable_so_oobavail_nand_ecclayout_49548 oobavail nand_ecclayout 0 49548 NULL
164192 +enable_so_lpfc_debugfs_hbqinfo_data_fndecl_49551 lpfc_debugfs_hbqinfo_data fndecl 0 49551 NULL
164193 +enable_so_ioremap_wt_fndecl_49562 ioremap_wt fndecl 2-1 49562 NULL
164194 +enable_so_nrs_num_pols_ptlrpc_nrs_49564 nrs_num_pols ptlrpc_nrs 0 49564 NULL
164195 +enable_so_nilfs_mdt_delete_block_fndecl_49565 nilfs_mdt_delete_block fndecl 2 49565 NULL
164196 +enable_so_max_cm_mtu_ipoib_cm_dev_priv_49566 max_cm_mtu ipoib_cm_dev_priv 0 49566 NULL
164197 +enable_so_xfs_insert_file_space_fndecl_49569 xfs_insert_file_space fndecl 2-3 49569 NULL
164198 +enable_so_ncp_request2_fndecl_49589 ncp_request2 fndecl 4 49589 NULL
164199 +enable_so_ssid_length_beacon_format_49591 ssid_length beacon_format 0 49591 NULL
164200 +enable_so_xfs_rtbuf_get_fndecl_49592 xfs_rtbuf_get fndecl 3 49592 NULL
164201 +enable_so_width_vim2m_q_data_49600 width vim2m_q_data 0 49600 NULL
164202 +enable_so_iwch_alloc_fastreg_pbl_fndecl_49610 iwch_alloc_fastreg_pbl fndecl 2 49610 NULL
164203 +enable_so_pt_write_fndecl_49612 pt_write fndecl 3 49612 NULL
164204 +enable_so_hsync_start_drm_display_mode_49613 hsync_start drm_display_mode 0 49613 NULL nohasharray
164205 +enable_so_start_drm_mm_node_49613 start drm_mm_node 0 49613 &enable_so_hsync_start_drm_display_mode_49613
164206 +enable_so_ocfs2_sync_file_fndecl_49614 ocfs2_sync_file fndecl 2-3 49614 NULL
164207 +enable_so_spare_bytes_per_page_nand_onfi_params_49617 spare_bytes_per_page nand_onfi_params 0 49617 NULL
164208 +enable_so_lengthExtendedAttr_extendedFileEntry_49618 lengthExtendedAttr extendedFileEntry 0 49618 NULL
164209 +enable_so_write_cmd_usb_fndecl_49619 write_cmd_usb fndecl 3 49619 NULL
164210 +enable_so_ieee80211_tdls_add_setup_cfm_ies_fndecl_49620 ieee80211_tdls_add_setup_cfm_ies fndecl 6 49620 NULL
164211 +enable_so_size_ethtool_perm_addr_49621 size ethtool_perm_addr 0 49621 NULL
164212 +enable_so_reg_read_range_fndecl_49623 reg_read_range fndecl 4-0 49623 NULL nohasharray
164213 +enable_so_dwc2_max_desc_num_fndecl_49623 dwc2_max_desc_num fndecl 0 49623 &enable_so_reg_read_range_fndecl_49623
164214 +enable_so_end_async_cow_49625 end async_cow 0 49625 NULL nohasharray
164215 +enable_so_nn_nvme_id_ctrl_49625 nn nvme_id_ctrl 0 49625 &enable_so_end_async_cow_49625
164216 +enable_so_ath10k_write_simulate_fw_crash_fndecl_49628 ath10k_write_simulate_fw_crash fndecl 3 49628 NULL
164217 +enable_so_rx_rx_frame_checksum_read_fndecl_49631 rx_rx_frame_checksum_read fndecl 3 49631 NULL
164218 +enable_so_srsize_brcmf_chip_49639 srsize brcmf_chip 0 49639 NULL
164219 +enable_so_list_size_of_flash_49643 list_size of_flash 0 49643 NULL
164220 +enable_so_stride_mlx4_en_priv_49644 stride mlx4_en_priv 0 49644 NULL
164221 +enable_so_start_io_failure_record_49645 start io_failure_record 0 49645 NULL
164222 +enable_so_align_resource_constraint_49647 align resource_constraint 0 49647 NULL nohasharray
164223 +enable_so_iocbq_lookup_len_lpfc_sli_49647 iocbq_lookup_len lpfc_sli 0 49647 &enable_so_align_resource_constraint_49647
164224 +enable_so_il4965_rs_get_adjacent_rate_fndecl_49653 il4965_rs_get_adjacent_rate fndecl 0-2 49653 NULL nohasharray
164225 +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
164226 +enable_so_mlx4_alloc_icm_pages_fndecl_49658 mlx4_alloc_icm_pages fndecl 2 49658 NULL
164227 +enable_so_dwMaxPayloadTransferSize_uvc_streaming_control_49668 dwMaxPayloadTransferSize uvc_streaming_control 0 49668 NULL
164228 +enable_so_bytes_ubi_leb_change_req_49669 bytes ubi_leb_change_req 0 49669 NULL
164229 +enable_so_size_unit_element_struct_49673 size unit_element_struct 0 49673 NULL
164230 +enable_so_intel_gtt_map_memory_fndecl_49677 intel_gtt_map_memory fndecl 2 49677 NULL
164231 +enable_so_port_priv_size_team_mode_49682 port_priv_size team_mode 0 49682 NULL
164232 +enable_so_clk_core_get_rate_nolock_fndecl_49685 clk_core_get_rate_nolock fndecl 0 49685 NULL
164233 +enable_so_subsampling_s5p_jpeg_fmt_49688 subsampling s5p_jpeg_fmt 0 49688 NULL nohasharray
164234 +enable_so___seq_open_private_fndecl_49688 __seq_open_private fndecl 3 49688 &enable_so_subsampling_s5p_jpeg_fmt_49688
164235 +enable_so_report_size_iowarrior_49692 report_size iowarrior 0 49692 NULL nohasharray
164236 +enable_so_set_extent_bit_fndecl_49692 set_extent_bit fndecl 3-2 49692 &enable_so_report_size_iowarrior_49692
164237 +enable_so_slider_num_ad714x_platform_data_49695 slider_num ad714x_platform_data 0 49695 NULL
164238 +enable_so_security_inode_listxattr_fndecl_49699 security_inode_listxattr fndecl 0 49699 NULL
164239 +enable_so_s_segshift_logfs_super_49707 s_segshift logfs_super 0 49707 NULL
164240 +enable_so_pg_write_fndecl_49709 pg_write fndecl 3 49709 NULL
164241 +enable_so_end_resource_49712 end resource 0 49712 NULL
164242 +enable_so_fuse_readpages_fndecl_49714 fuse_readpages fndecl 4 49714 NULL
164243 +enable_so_brd_init_one_fndecl_49718 brd_init_one fndecl 1 49718 NULL
164244 +enable_so_xfs_iext_remove_direct_fndecl_49723 xfs_iext_remove_direct fndecl 3 49723 NULL
164245 +enable_so_sof_len_sd_49729 sof_len sd 0 49729 NULL
164246 +enable_so_num_uars_mthca_limits_49735 num_uars mthca_limits 0 49735 NULL
164247 +enable_so_pyra_sysfs_read_fndecl_49736 pyra_sysfs_read fndecl 6 49736 NULL
164248 +enable_so_wqe_size_ib_uverbs_post_recv_49738 wqe_size ib_uverbs_post_recv 0 49738 NULL
164249 +enable_so_xfs_bmap_split_extent_fndecl_49740 xfs_bmap_split_extent fndecl 2 49740 NULL
164250 +enable_so_kernfs_fop_read_fndecl_49745 kernfs_fop_read fndecl 3 49745 NULL
164251 +enable_so_ts_packet_size_saa7164_port_49752 ts_packet_size saa7164_port 0 49752 NULL
164252 +enable_so_hpfs_add_dirent_fndecl_49754 hpfs_add_dirent fndecl 3 49754 NULL
164253 +enable_so_provider_in_words_ib_uverbs_ex_cmd_hdr_49757 provider_in_words ib_uverbs_ex_cmd_hdr 0 49757 NULL
164254 +enable_so_ngroups_netlink_sock_49758 ngroups netlink_sock 0 49758 NULL
164255 +enable_so_match_size_compat_ebt_entry_mwt_49763 match_size compat_ebt_entry_mwt 0 49763 NULL
164256 +enable_so_perf_read_fndecl_49769 perf_read fndecl 3 49769 NULL
164257 +enable_so_nl80211_send_roamed_fndecl_49770 nl80211_send_roamed fndecl 5-7 49770 NULL
164258 +enable_so_dwFrameInterval_uvc_streaming_control_49771 dwFrameInterval uvc_streaming_control 0 49771 NULL
164259 +enable_so_cifs_sign_smbv_fndecl_49776 cifs_sign_smbv fndecl 2 49776 NULL
164260 +enable_so_rtw_add_beacon_fndecl_49778 rtw_add_beacon fndecl 3-5 49778 NULL
164261 +enable_so_sprom_size_ssb_bus_49781 sprom_size ssb_bus 0 49781 NULL
164262 +enable_so_page2_len_ses_device_49783 page2_len ses_device 0 49783 NULL
164263 +enable_so_scale_factor_s5p_jpeg_ctx_49787 scale_factor s5p_jpeg_ctx 0 49787 NULL
164264 +enable_so_seeks_shrinker_49793 seeks shrinker 0 49793 NULL
164265 +enable_so_nilfs_mdt_init_fndecl_49794 nilfs_mdt_init fndecl 3 49794 NULL
164266 +enable_so_outlen_mimd_49796 outlen mimd 0 49796 NULL
164267 +enable_so_write_file_wow_fndecl_49799 write_file_wow fndecl 3 49799 NULL
164268 +enable_so_substream_alloc_pages_fndecl_49800 substream_alloc_pages fndecl 3 49800 NULL
164269 +enable_so_n_mmc_ies_whc_49802 n_mmc_ies whc 0 49802 NULL
164270 +enable_so_ocfs2_zero_partial_clusters_fndecl_49803 ocfs2_zero_partial_clusters fndecl 2-3 49803 NULL
164271 +enable_so_max_fib_size_aac_dev_49804 max_fib_size aac_dev 0 49804 NULL
164272 +enable_so_logfs_seek_hole_fndecl_49805 logfs_seek_hole fndecl 0-2 49805 NULL
164273 +enable_so_num_uar_mthca_profile_49807 num_uar mthca_profile 0 49807 NULL
164274 +enable_so___free_pages_boot_core_fndecl_49810 __free_pages_boot_core fndecl 3 49810 NULL
164275 +enable_so_fat_chain_add_fndecl_49812 fat_chain_add fndecl 2 49812 NULL
164276 +enable_so_fat_bits_msdos_sb_info_49817 fat_bits msdos_sb_info 0 49817 NULL
164277 +enable_so_reserved_fat_boot_sector_49818 reserved fat_boot_sector 0 49818 NULL
164278 +enable_so_nr_pages_flash_info_49822 nr_pages flash_info 0 49822 NULL
164279 +enable_so_elemsize_nft_set_ops_49830 elemsize nft_set_ops 0 49830 NULL
164280 +enable_so_response_length_ib_uverbs_ex_query_device_resp_49831 response_length ib_uverbs_ex_query_device_resp 0 49831 NULL
164281 +enable_so_wl12xx_cmd_build_probe_req_fndecl_49835 wl12xx_cmd_build_probe_req fndecl 10-8-6 49835 NULL
164282 +enable_so_read_file_queue_fndecl_49836 read_file_queue fndecl 3 49836 NULL
164283 +enable_so_fifosize_uart_port_49843 fifosize uart_port 0 49843 NULL
164284 +enable_so_read_endpoint_s2255_dev_49848 read_endpoint s2255_dev 0 49848 NULL
164285 +enable_so_scsi_send_eh_cmnd_fndecl_49849 scsi_send_eh_cmnd fndecl 5 49849 NULL
164286 +enable_so_bytes_per_word_tegra_spi_data_49851 bytes_per_word tegra_spi_data 0 49851 NULL
164287 +enable_so_plen_c4iw_ep_49856 plen c4iw_ep 0 49856 NULL nohasharray
164288 +enable_so_vol_cdev_write_fndecl_49856 vol_cdev_write fndecl 3 49856 &enable_so_plen_c4iw_ep_49856
164289 +enable_so_gfs2_ea_find_fndecl_49858 gfs2_ea_find fndecl 0 49858 NULL
164290 +enable_so_kempld_gpio_pincount_fndecl_49860 kempld_gpio_pincount fndecl 0 49860 NULL
164291 +enable_so___kfifo_init_fndecl_49861 __kfifo_init fndecl 4 49861 NULL
164292 +enable_so_si_get_csb_size_fndecl_49864 si_get_csb_size fndecl 0 49864 NULL
164293 +enable_so_bucket_bits_cache_set_49869 bucket_bits cache_set 0 49869 NULL
164294 +enable_so_record_inode_for_nocow_fndecl_49872 record_inode_for_nocow fndecl 2 49872 NULL
164295 +enable_so_waiters_read_fndecl_49877 waiters_read fndecl 3 49877 NULL
164296 +enable_so___i915_error_seek_fndecl_49882 __i915_error_seek fndecl 2 49882 NULL nohasharray
164297 +enable_so_isdn_add_channels_fndecl_49882 isdn_add_channels fndecl 3 49882 &enable_so___i915_error_seek_fndecl_49882
164298 +enable_so_path_listxattr_fndecl_49894 path_listxattr fndecl 3 49894 NULL nohasharray
164299 +enable_so_walk_iomem_res_fndecl_49894 walk_iomem_res fndecl 4-3 49894 &enable_so_path_listxattr_fndecl_49894
164300 +enable_so_sg_alloc_table_fndecl_49895 sg_alloc_table fndecl 0-2 49895 NULL nohasharray
164301 +enable_so_snd_vx_create_fndecl_49895 snd_vx_create fndecl 4 49895 &enable_so_sg_alloc_table_fndecl_49895
164302 +enable_so_offset_drm_i915_gem_pwrite_49896 offset drm_i915_gem_pwrite 0 49896 NULL nohasharray
164303 +enable_so_max_sds_rings_netxen_adapter_49896 max_sds_rings netxen_adapter 0 49896 &enable_so_offset_drm_i915_gem_pwrite_49896
164304 +enable_so_max_desc_sz_mthca_dev_lim_49905 max_desc_sz mthca_dev_lim 0 49905 NULL
164305 +enable_so_block_descriptor_length_scsi_mode_data_49918 block_descriptor_length scsi_mode_data 0 49918 NULL
164306 +enable_so_current_size_ipg_jumbo_49923 current_size ipg_jumbo 0 49923 NULL
164307 +enable_so_SyS_select_fndecl_49930 SyS_select fndecl 1 49930 NULL
164308 +enable_so_skd_max_queue_depth_vardecl_skd_main_c_49938 skd_max_queue_depth vardecl_skd_main.c 0 49938 NULL
164309 +enable_so_cx18_prepare_buffer_fndecl_49942 cx18_prepare_buffer fndecl 6-5 49942 NULL
164310 +enable_so_inode_number_squashfs_dir_entry_49943 inode_number squashfs_dir_entry 0 49943 NULL nohasharray
164311 +enable_so_repair_io_failure_fndecl_49943 repair_io_failure fndecl 6-3 49943 &enable_so_inode_number_squashfs_dir_entry_49943
164312 +enable_so_tomoyo_update_policy_fndecl_49945 tomoyo_update_policy fndecl 2 49945 NULL
164313 +enable_so_rcvcnt_elsa_hw_49949 rcvcnt elsa_hw 0 49949 NULL
164314 +enable_so_segsize_rem_dn_scp_49951 segsize_rem dn_scp 0 49951 NULL
164315 +enable_so_zlib_decompress_fndecl_49955 zlib_decompress fndecl 5 49955 NULL
164316 +enable_so_len_lmc_xilinx_control_49960 len lmc_xilinx_control 0 49960 NULL
164317 +enable_so_ceph_inode_set_size_fndecl_49962 ceph_inode_set_size fndecl 2 49962 NULL
164318 +enable_so___ethtool_get_sset_count_fndecl_49964 __ethtool_get_sset_count fndecl 0 49964 NULL
164319 +enable_so_pcm512x_find_pll_coeff_fndecl_49973 pcm512x_find_pll_coeff fndecl 2-3 49973 NULL
164320 +enable_so_afs_fs_store_data_fndecl_49975 afs_fs_store_data fndecl 5-6 49975 NULL
164321 +enable_so_mms114_write_reg_fndecl_49977 mms114_write_reg fndecl 3 49977 NULL
164322 +enable_so_dig_in_nid_hda_gen_spec_49979 dig_in_nid hda_gen_spec 0 49979 NULL
164323 +enable_so_subtract_range_fndecl_49980 subtract_range fndecl 3-4 49980 NULL nohasharray
164324 +enable_so_tty_write_room_fndecl_49980 tty_write_room fndecl 0 49980 &enable_so_subtract_range_fndecl_49980
164325 +enable_so_mbox_size_wl1271_49981 mbox_size wl1271 0 49981 NULL
164326 +enable_so___mms114_read_reg_fndecl_49983 __mms114_read_reg fndecl 3-0 49983 NULL
164327 +enable_so_eqc_entry_sz_mthca_dev_lim_49984 eqc_entry_sz mthca_dev_lim 0 49984 NULL
164328 +enable_so_pgbase_nfs3_readlinkargs_49993 pgbase nfs3_readlinkargs 0 49993 NULL
164329 +enable_so_buffer_target_count_pvr2_stream_49996 buffer_target_count pvr2_stream 0 49996 NULL
164330 +enable_so_leafblk_xfs_da_geometry_49997 leafblk xfs_da_geometry 0 49997 NULL
164331 +enable_so_ff_effects_max_uinput_device_49998 ff_effects_max uinput_device 0 49998 NULL
164332 +enable_so_make_checksum_fndecl_49999 make_checksum fndecl 3-5 49999 NULL nohasharray
164333 +enable_so_ixgbe_dbg_reg_ops_read_fndecl_49999 ixgbe_dbg_reg_ops_read fndecl 3 49999 &enable_so_make_checksum_fndecl_49999
164334 +enable_so_block_isofs_iget5_callback_data_50000 block isofs_iget5_callback_data 0 50000 NULL
164335 +enable_so_vbi_v_start_0_saa7134_tvnorm_50002 vbi_v_start_0 saa7134_tvnorm 0 50002 NULL
164336 +enable_so_tcm_qla2xxx_handle_cmd_fndecl_50016 tcm_qla2xxx_handle_cmd fndecl 4 50016 NULL
164337 +enable_so_ufs_inode_getfrag_fndecl_50019 ufs_inode_getfrag fndecl 2-4 50019 NULL
164338 +enable_so_bl_alloc_init_bio_fndecl_50026 bl_alloc_init_bio fndecl 3-1 50026 NULL nohasharray
164339 +enable_so_bi_size_bvec_iter_50026 bi_size bvec_iter 0 50026 &enable_so_bl_alloc_init_bio_fndecl_50026
164340 +enable_so_snd_oss_kernel_minor_fndecl_50028 snd_oss_kernel_minor fndecl 0 50028 NULL
164341 +enable_so_length_fotg210_qtd_50029 length fotg210_qtd 0 50029 NULL
164342 +enable_so_BlockMultiplierBits_INFTLMediaHeader_50032 BlockMultiplierBits INFTLMediaHeader 0 50032 NULL
164343 +enable_so_depth_zoran_format_50033 depth zoran_format 0 50033 NULL
164344 +enable_so_amdgpu_bo_create_fndecl_50037 amdgpu_bo_create fndecl 2 50037 NULL
164345 +enable_so_ima_write_policy_fndecl_50039 ima_write_policy fndecl 3 50039 NULL
164346 +enable_so_esp_alloc_tmp_fndecl_50045 esp_alloc_tmp fndecl 2-3 50045 NULL
164347 +enable_so_pwc_vidioc_fill_fmt_fndecl_50048 pwc_vidioc_fill_fmt fndecl 2-3 50048 NULL
164348 +enable_so_nvkm_clk_create__fndecl_50051 nvkm_clk_create_ fndecl 8 50051 NULL
164349 +enable_so_len_nft_userdata_50052 len nft_userdata 0 50052 NULL
164350 +enable_so_skge_rx_get_fndecl_50053 skge_rx_get fndecl 3 50053 NULL
164351 +enable_so_num_crtc_amdgpu_mode_info_50055 num_crtc amdgpu_mode_info 0 50055 NULL
164352 +enable_so_lba_to_map_index_fndecl_50071 lba_to_map_index fndecl 0-1 50071 NULL
164353 +enable_so_long_retry_limit_orinoco_private_50080 long_retry_limit orinoco_private 0 50080 NULL
164354 +enable_so_n_tags_ata_host_50082 n_tags ata_host 0 50082 NULL
164355 +enable_so_memblock_reserve_region_fndecl_50083 memblock_reserve_region fndecl 1-2 50083 NULL
164356 +enable_so_sem_nsems_sem_array_50085 sem_nsems sem_array 0 50085 NULL nohasharray
164357 +enable_so_sch56xx_find_fndecl_50085 sch56xx_find fndecl 0 50085 &enable_so_sem_nsems_sem_array_50085
164358 +enable_so_long_retry_atmel_private_50097 long_retry atmel_private 0 50097 NULL
164359 +enable_so_get_priv_descr_and_size_fndecl_50103 get_priv_descr_and_size fndecl 0 50103 NULL
164360 +enable_so_total_len_splice_desc_50112 total_len splice_desc 0 50112 NULL
164361 +enable_so_fst_rx_dma_complete_fndecl_50118 fst_rx_dma_complete fndecl 3 50118 NULL
164362 +enable_so_pipeline_rx_complete_stat_fifo_int_read_fndecl_50124 pipeline_rx_complete_stat_fifo_int_read fndecl 3 50124 NULL
164363 +enable_so_usb_set_interface_fndecl_50126 usb_set_interface fndecl 0 50126 NULL
164364 +enable_so___cfg80211_roamed_fndecl_50127 __cfg80211_roamed fndecl 4-6 50127 NULL
164365 +enable_so_max_burst_whc_qset_50130 max_burst whc_qset 0 50130 NULL
164366 +enable_so_i_files_ceph_inode_info_50132 i_files ceph_inode_info 0 50132 NULL
164367 +enable_so_tool_peer_db_read_fndecl_50135 tool_peer_db_read fndecl 3 50135 NULL
164368 +enable_so_num_entries_ip6t_replace_50138 num_entries ip6t_replace 0 50138 NULL
164369 +enable_so_pid_nr_ns_fndecl_50141 pid_nr_ns fndecl 0 50141 NULL
164370 +enable_so_usb_tx_block_fndecl_50144 usb_tx_block fndecl 3 50144 NULL
164371 +enable_so_vendpoint_pwc_device_50145 vendpoint pwc_device 0 50145 NULL
164372 +enable_so_htotal_drm_display_mode_50148 htotal drm_display_mode 0 50148 NULL
164373 +enable_so_nfc_hci_set_param_fndecl_50154 nfc_hci_set_param fndecl 5 50154 NULL nohasharray
164374 +enable_so_size_ubifs_data_node_50154 size ubifs_data_node 0 50154 &enable_so_nfc_hci_set_param_fndecl_50154
164375 +enable_so_idr_get_empty_slot_fndecl_50161 idr_get_empty_slot fndecl 0 50161 NULL
164376 +enable_so_ext4_mark_inode_dirty_fndecl_50162 ext4_mark_inode_dirty fndecl 0 50162 NULL
164377 +enable_so_length_ib_ip_iocb_rsp_50163 length ib_ip_iocb_rsp 0 50163 NULL nohasharray
164378 +enable_so_fops_read_fndecl_50163 fops_read fndecl 3 50163 &enable_so_length_ib_ip_iocb_rsp_50163
164379 +enable_so_videobuf_dma_init_user_locked_fndecl_50165 videobuf_dma_init_user_locked fndecl 4-3 50165 NULL
164380 +enable_so_next_burst_len_iscsi_cmd_50168 next_burst_len iscsi_cmd 0 50168 NULL
164381 +enable_so_pci_enable_resources_fndecl_50171 pci_enable_resources fndecl 0 50171 NULL nohasharray
164382 +enable_so_rd_buf_size_xilly_channel_50171 rd_buf_size xilly_channel 0 50171 &enable_so_pci_enable_resources_fndecl_50171
164383 +enable_so_mclk_rate_wm9081_priv_50176 mclk_rate wm9081_priv 0 50176 NULL
164384 +enable_so_hdr_len_atm_flow_data_50178 hdr_len atm_flow_data 0 50178 NULL
164385 +enable_so_ubi_more_update_data_fndecl_50182 ubi_more_update_data fndecl 4 50182 NULL
164386 +enable_so_nested_cr3_nested_state_50183 nested_cr3 nested_state 0 50183 NULL
164387 +enable_so_gfs2_create_inode_fndecl_50184 gfs2_create_inode fndecl 7 50184 NULL
164388 +enable_so_parts_nvkm_ram_50191 parts nvkm_ram 0 50191 NULL
164389 +enable_so_echo_client_kbrw_fndecl_50193 echo_client_kbrw fndecl 6 50193 NULL
164390 +enable_so___isofs_iget_fndecl_50194 __isofs_iget fndecl 3-2 50194 NULL
164391 +enable_so_ext3_xattr_check_names_fndecl_50197 ext3_xattr_check_names fndecl 0 50197 NULL
164392 +enable_so_gbufsize_vardecl_meye_c_50205 gbufsize vardecl_meye.c 0 50205 NULL
164393 +enable_so_s_zmap_blocks_minix_sb_info_50206 s_zmap_blocks minix_sb_info 0 50206 NULL
164394 +enable_so_ivtv_v4l2_write_fndecl_50217 ivtv_v4l2_write fndecl 3 50217 NULL
164395 +enable_so_sched_priority_sched_attr_50220 sched_priority sched_attr 0 50220 NULL nohasharray
164396 +enable_so_get_data_block_fndecl_50220 get_data_block fndecl 2 50220 &enable_so_sched_priority_sched_attr_50220
164397 +enable_so_length_dfw_binrec_50222 length dfw_binrec 0 50222 NULL
164398 +enable_so_pin_pci_dev_50231 pin pci_dev 0 50231 NULL
164399 +enable_so_qla4_82xx_pci_mem_read_direct_fndecl_50235 qla4_82xx_pci_mem_read_direct fndecl 2 50235 NULL
164400 +enable_so_efi_memmap_size_efi_info_50236 efi_memmap_size efi_info 0 50236 NULL
164401 +enable_so_vd_ino_nilfs_vdesc_50241 vd_ino nilfs_vdesc 0 50241 NULL nohasharray
164402 +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
164403 +enable_so_r128_compat_ioctl_fndecl_50241 r128_compat_ioctl fndecl 2 50241 &enable_so_pwr_cont_miss_bcns_spread_read_fndecl_50241
164404 +enable_so_i915_error_state_read_fndecl_50245 i915_error_state_read fndecl 3 50245 NULL
164405 +enable_so_fnic_trace_max_pages_vardecl_50246 fnic_trace_max_pages vardecl 0 50246 NULL
164406 +enable_so_h_tot_disp_crtc_50258 h_tot_disp crtc 0 50258 NULL
164407 +enable_so_len_mrp_attr_50262 len mrp_attr 0 50262 NULL nohasharray
164408 +enable_so_posix_acl_to_xattr_fndecl_50262 posix_acl_to_xattr fndecl 0 50262 &enable_so_len_mrp_attr_50262
164409 +enable_so_buf_struct_size_vb2_queue_50266 buf_struct_size vb2_queue 0 50266 NULL
164410 +enable_so_end_range_50270 end range 0 50270 NULL nohasharray
164411 +enable_so_bLength_usb_ss_ep_comp_descriptor_50270 bLength usb_ss_ep_comp_descriptor 0 50270 &enable_so_end_range_50270
164412 +enable_so_vframes_pwc_device_50272 vframes pwc_device 0 50272 NULL
164413 +enable_so_curr_resync_completed_mddev_50273 curr_resync_completed mddev 0 50273 NULL nohasharray
164414 +enable_so_rx_filter_protection_filter_read_fndecl_50273 rx_filter_protection_filter_read fndecl 3 50273 &enable_so_curr_resync_completed_mddev_50273
164415 +enable_so_count_defcmd_set_50274 count defcmd_set 0 50274 NULL
164416 +enable_so_phys_amd76xrom_window_50277 phys amd76xrom_window 0 50277 NULL
164417 +enable_so_ath6kl_wmi_set_appie_cmd_fndecl_50289 ath6kl_wmi_set_appie_cmd fndecl 5-2 50289 NULL
164418 +enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296 mwifiex_append_rsn_ie_wpa_wpa2 fndecl 0 50296 NULL nohasharray
164419 +enable_so_wptr_old_amdgpu_ring_50296 wptr_old amdgpu_ring 0 50296 &enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296
164420 +enable_so_insert_reserved_file_extent_fndecl_50316 insert_reserved_file_extent fndecl 6-3 50316 NULL
164421 +enable_so___cfg80211_connect_result_fndecl_50317 __cfg80211_connect_result fndecl 4-6 50317 NULL
164422 +enable_so__iwl_dbgfs_pm_params_write_fndecl_50318 _iwl_dbgfs_pm_params_write fndecl 3 50318 NULL
164423 +enable_so_rbytes_ceph_mds_reply_inode_50321 rbytes ceph_mds_reply_inode 0 50321 NULL
164424 +enable_so_VST_kyrofb_info_50324 VST kyrofb_info 0 50324 NULL
164425 +enable_so_level_guest_walker64_50325 level guest_walker64 0 50325 NULL
164426 +enable_so_ucNumEntries__ATOM_PPLIB_CAC_Leakage_Table_50326 ucNumEntries _ATOM_PPLIB_CAC_Leakage_Table 0 50326 NULL
164427 +enable_so___vmalloc_node_fndecl_50335 __vmalloc_node fndecl 1-2 50335 NULL nohasharray
164428 +enable_so_size_nand_ecc_ctrl_50335 size nand_ecc_ctrl 0 50335 &enable_so___vmalloc_node_fndecl_50335
164429 +enable_so___copy_from_user_nocache_fndecl_50340 __copy_from_user_nocache fndecl 0-3 50340 NULL
164430 +enable_so_ide_complete_rq_fndecl_50345 ide_complete_rq fndecl 3 50345 NULL
164431 +enable_so_nextindex_xtheader_50354 nextindex xtheader 0 50354 NULL
164432 +enable_so_next_minor_vardecl_md_c_50357 next_minor vardecl_md.c 0 50357 NULL
164433 +enable_so_headlen_authenc_esn_request_ctx_50360 headlen authenc_esn_request_ctx 0 50360 NULL
164434 +enable_so_wimax_msg_alloc_fndecl_50364 wimax_msg_alloc fndecl 4 50364 NULL
164435 +enable_so_regmap_name_read_file_fndecl_50368 regmap_name_read_file fndecl 3 50368 NULL
164436 +enable_so_ps_poll_ps_poll_utilization_read_fndecl_50372 ps_poll_ps_poll_utilization_read fndecl 3 50372 NULL
164437 +enable_so_fnic_trace_debugfs_read_fndecl_50375 fnic_trace_debugfs_read fndecl 3 50375 NULL
164438 +enable_so___send_to_port_fndecl_50377 __send_to_port fndecl 3 50377 NULL
164439 +enable_so_table_size_amdgpu_gart_50380 table_size amdgpu_gart 0 50380 NULL
164440 +enable_so_NumberOfReferrals_smb_com_transaction_get_dfs_refer_rsp_50387 NumberOfReferrals smb_com_transaction_get_dfs_refer_rsp 0 50387 NULL
164441 +enable_so_max_write_len_cftype_50399 max_write_len cftype 0 50399 NULL
164442 +enable_so_user_power_read_fndecl_50405 user_power_read fndecl 3 50405 NULL
164443 +enable_so_init_urbs_fndecl_50408 init_urbs fndecl 2-4-5 50408 NULL
164444 +enable_so_sgx_offset_psb_ops_50417 sgx_offset psb_ops 0 50417 NULL
164445 +enable_so_size_uvc_clock_50418 size uvc_clock 0 50418 NULL
164446 +enable_so_length_acpi_srat_mem_affinity_50419 length acpi_srat_mem_affinity 0 50419 NULL
164447 +enable_so___initramfs_size_vardecl_50420 __initramfs_size vardecl 0 50420 NULL nohasharray
164448 +enable_so_jffs2_scan_xattr_node_fndecl_50420 jffs2_scan_xattr_node fndecl 4 50420 &enable_so___initramfs_size_vardecl_50420
164449 +enable_so_sd_max_rg_data_gfs2_sbd_50430 sd_max_rg_data gfs2_sbd 0 50430 NULL
164450 +enable_so___vcc_connect_fndecl_50431 __vcc_connect fndecl 4-3 50431 NULL
164451 +enable_so_ext3_trim_all_free_fndecl_50434 ext3_trim_all_free fndecl 0-2 50434 NULL nohasharray
164452 +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
164453 +enable_so_pkt_size_asender_cmd_50437 pkt_size asender_cmd 0 50437 NULL
164454 +enable_so_sbp_count_se_tpg_luns_fndecl_50444 sbp_count_se_tpg_luns fndecl 0 50444 NULL
164455 +enable_so_il_dbgfs_sram_write_fndecl_50445 il_dbgfs_sram_write fndecl 3 50445 NULL
164456 +enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449 nfsd4_encode_fattr_to_buf fndecl 2 50449 NULL nohasharray
164457 +enable_so_nr_phys_segments_request_50449 nr_phys_segments request 0 50449 &enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449
164458 +enable_so_nfsd_drc_mem_used_vardecl_50456 nfsd_drc_mem_used vardecl 0 50456 NULL
164459 +enable_so_extra_tx_headroom_ieee802154_hw_50457 extra_tx_headroom ieee802154_hw 0 50457 NULL
164460 +enable_so_iscsi_iolen_cxgb4_lld_info_50467 iscsi_iolen cxgb4_lld_info 0 50467 NULL
164461 +enable_so___ath6kl_wmi_send_mgmt_cmd_fndecl_50472 __ath6kl_wmi_send_mgmt_cmd fndecl 7-2 50472 NULL
164462 +enable_so_buf_size_dmatest_params_50477 buf_size dmatest_params 0 50477 NULL
164463 +enable_so_len_fuse_ioctl_iovec_50481 len fuse_ioctl_iovec 0 50481 NULL
164464 +enable_so_consume_va_vmci_qp_page_file_info_50487 consume_va vmci_qp_page_file_info 0 50487 NULL
164465 +enable_so_snd_sbmixer_add_ctl_fndecl_50491 snd_sbmixer_add_ctl fndecl 5 50491 NULL
164466 +enable_so_max_pages_nilfs_write_info_50494 max_pages nilfs_write_info 0 50494 NULL
164467 +enable_so_udf_new_block_fndecl_50500 udf_new_block fndecl 0 50500 NULL
164468 +enable_so_lpfc_idiag_extacc_write_fndecl_50501 lpfc_idiag_extacc_write fndecl 3 50501 NULL
164469 +enable_so_bio_clone_range_fndecl_50502 bio_clone_range fndecl 3-2 50502 NULL
164470 +enable_so_mwifiex_read_data_sync_fndecl_50504 mwifiex_read_data_sync fndecl 3 50504 NULL
164471 +enable_so_readahead_tree_block_fndecl_50505 readahead_tree_block fndecl 2 50505 NULL
164472 +enable_so_listxattr_inode_operations_50507 listxattr inode_operations 0 50507 NULL
164473 +enable_so_i2c_hid_output_report_fndecl_50508 i2c_hid_output_report fndecl 3 50508 NULL
164474 +enable_so_t4vf_pktgl_to_skb_fndecl_50510 t4vf_pktgl_to_skb fndecl 3 50510 NULL
164475 +enable_so_adfs_fplus_read_fndecl_50514 adfs_fplus_read fndecl 2 50514 NULL nohasharray
164476 +enable_so_usb_maxpacket_fndecl_50514 usb_maxpacket fndecl 0 50514 &enable_so_adfs_fplus_read_fndecl_50514
164477 +enable_so_len_nfs3_mkdirargs_50515 len nfs3_mkdirargs 0 50515 NULL
164478 +enable_so_nframes_cdrom_read_audio_50517 nframes cdrom_read_audio 0 50517 NULL
164479 +enable_so_OSDSetBlock_fndecl_50521 OSDSetBlock fndecl 2-4 50521 NULL
164480 +enable_so_ohci_urb_dequeue_fndecl_50529 ohci_urb_dequeue fndecl 3 50529 NULL
164481 +enable_so_rtmax_nfs_fsinfo_50537 rtmax nfs_fsinfo 0 50537 NULL nohasharray
164482 +enable_so_dccpd_seq_dccp_skb_cb_50537 dccpd_seq dccp_skb_cb 0 50537 &enable_so_rtmax_nfs_fsinfo_50537
164483 +enable_so_get_nodes_fndecl_50551 get_nodes fndecl 3 50551 NULL
164484 +enable_so_spi_rd8_fndecl_50555 spi_rd8 fndecl 0 50555 NULL
164485 +enable_so_frag_threshold_wiphy_50556 frag_threshold wiphy 0 50556 NULL
164486 +enable_so___blkdev_issue_zeroout_fndecl_50559 __blkdev_issue_zeroout fndecl 3-2-0 50559 NULL
164487 +enable_so_gen_pool_create_fndecl_50571 gen_pool_create fndecl 1 50571 NULL
164488 +enable_so_img_y_zoran_jpg_settings_50573 img_y zoran_jpg_settings 0 50573 NULL nohasharray
164489 +enable_so_W6692_empty_fifo_fndecl_50573 W6692_empty_fifo fndecl 2 50573 &enable_so_img_y_zoran_jpg_settings_50573 nohasharray
164490 +enable_so___vma_reservation_common_fndecl_50573 __vma_reservation_common fndecl 3 50573 &enable_so_W6692_empty_fifo_fndecl_50573
164491 +enable_so_hdr_len_ib_mad_send_buf_50577 hdr_len ib_mad_send_buf 0 50577 NULL nohasharray
164492 +enable_so__osd_req_alist_size_fndecl_50577 _osd_req_alist_size fndecl 0 50577 &enable_so_hdr_len_ib_mad_send_buf_50577
164493 +enable_so_length_fuse_page_desc_50581 length fuse_page_desc 0 50581 NULL
164494 +enable_so_do_write_kmem_fndecl_50584 do_write_kmem fndecl 1-3-0 50584 NULL
164495 +enable_so_do_huge_pmd_wp_page_fallback_fndecl_50585 do_huge_pmd_wp_page_fallback fndecl 7 50585 NULL
164496 +enable_so_off2_xad_50592 off2 xad 0 50592 NULL
164497 +enable_so_pwrite_dvb_ringbuffer_50594 pwrite dvb_ringbuffer 0 50594 NULL
164498 +enable_so_intel_gtt_total_entries_fndecl_50599 intel_gtt_total_entries fndecl 0 50599 NULL
164499 +enable_so___i915_gem_userptr_set_pages_fndecl_50600 __i915_gem_userptr_set_pages fndecl 3 50600 NULL
164500 +enable_so_count_slgt_desc_50607 count slgt_desc 0 50607 NULL
164501 +enable_so_pic_get_irq_fndecl_50614 pic_get_irq fndecl 0 50614 NULL
164502 +enable_so_ipoib_max_conn_qp_vardecl_50615 ipoib_max_conn_qp vardecl 0 50615 NULL
164503 +enable_so_len_fuse_notify_inval_inode_out_50619 len fuse_notify_inval_inode_out 0 50619 NULL nohasharray
164504 +enable_so_dle_count__isdn_audio_data_50619 dle_count _isdn_audio_data 0 50619 &enable_so_len_fuse_notify_inval_inode_out_50619
164505 +enable_so_cb_mirror_cnt_exofs_dt_data_map_50623 cb_mirror_cnt exofs_dt_data_map 0 50623 NULL nohasharray
164506 +enable_so_zr364xx_fillbuff_fndecl_50623 zr364xx_fillbuff fndecl 3 50623 &enable_so_cb_mirror_cnt_exofs_dt_data_map_50623
164507 +enable_so___kfifo_to_user_r_fndecl_50624 __kfifo_to_user_r fndecl 5-3 50624 NULL
164508 +enable_so_phys_port_cnt_ib_device_50625 phys_port_cnt ib_device 0 50625 NULL
164509 +enable_so_pglen_nfs3_readlinkargs_50630 pglen nfs3_readlinkargs 0 50630 NULL nohasharray
164510 +enable_so_data_len_pmcraid_hcam_hdr_50630 data_len pmcraid_hcam_hdr 0 50630 &enable_so_pglen_nfs3_readlinkargs_50630
164511 +enable_so_l2tp_ip6_recvmsg_fndecl_50633 l2tp_ip6_recvmsg fndecl 3 50633 NULL
164512 +enable_so_ea_foreach_fndecl_50638 ea_foreach fndecl 0 50638 NULL
164513 +enable_so_ircomm_tty_write_fndecl_50642 ircomm_tty_write fndecl 3 50642 NULL nohasharray
164514 +enable_so_tomoyo_truncate_fndecl_50642 tomoyo_truncate fndecl 0 50642 &enable_so_ircomm_tty_write_fndecl_50642
164515 +enable_so_num_regs_soc_bytes_50648 num_regs soc_bytes 0 50648 NULL
164516 +enable_so_usb_hcd_giveback_urb_fndecl_50649 usb_hcd_giveback_urb fndecl 3 50649 NULL
164517 +enable_so_xor_sources_dmatest_params_50653 xor_sources dmatest_params 0 50653 NULL
164518 +enable_so_recalc_rate_clk_ops_50655 recalc_rate clk_ops 0 50655 NULL
164519 +enable_so_io_size_tulip_chip_table_50656 io_size tulip_chip_table 0 50656 NULL nohasharray
164520 +enable_so_create_bounce_buffer_fndecl_50656 create_bounce_buffer fndecl 3 50656 &enable_so_io_size_tulip_chip_table_50656
164521 +enable_so_proc_coredump_filter_read_fndecl_50658 proc_coredump_filter_read fndecl 3 50658 NULL
164522 +enable_so_enc_pools_release_free_pages_fndecl_50669 enc_pools_release_free_pages fndecl 1 50669 NULL
164523 +enable_so_i915_gem_alloc_context_obj_fndecl_50671 i915_gem_alloc_context_obj fndecl 2 50671 NULL
164524 +enable_so_nclips_bttv_overlay_50673 nclips bttv_overlay 0 50673 NULL
164525 +enable_so_dig_in_ca0132_spec_50677 dig_in ca0132_spec 0 50677 NULL
164526 +enable_so___kernfs_create_file_fndecl_50679 __kernfs_create_file fndecl 4 50679 NULL nohasharray
164527 +enable_so_size_snd_util_memblk_50679 size snd_util_memblk 0 50679 &enable_so___kernfs_create_file_fndecl_50679
164528 +enable_so_count_dm_io_region_50683 count dm_io_region 0 50683 NULL
164529 +enable_so_sr_offset_nfs42_seek_res_50684 sr_offset nfs42_seek_res 0 50684 NULL nohasharray
164530 +enable_so_alloc_ring_fndecl_50684 alloc_ring fndecl 4-2 50684 &enable_so_sr_offset_nfs42_seek_res_50684
164531 +enable_so_generic_permission_fndecl_50685 generic_permission fndecl 0 50685 NULL
164532 +enable_so_hv_mem_hot_add_fndecl_50687 hv_mem_hot_add fndecl 1 50687 NULL nohasharray
164533 +enable_so_rxkad_secure_packet_encrypt_fndecl_50687 rxkad_secure_packet_encrypt fndecl 3 50687 &enable_so_hv_mem_hot_add_fndecl_50687
164534 +enable_so_dm_bm_read_try_lock_fndecl_50688 dm_bm_read_try_lock fndecl 2 50688 NULL
164535 +enable_so_ftrace_pid_write_fndecl_50701 ftrace_pid_write fndecl 3 50701 NULL
164536 +enable_so___find_rev_next_bit_fndecl_50712 __find_rev_next_bit fndecl 0-2-3 50712 NULL
164537 +enable_so_back_xfs_da3_icnode_hdr_50715 back xfs_da3_icnode_hdr 0 50715 NULL
164538 +enable_so_sc18is602_wait_ready_fndecl_50717 sc18is602_wait_ready fndecl 0 50717 NULL
164539 +enable_so_get_device_info_fndecl_50718 get_device_info fndecl 0 50718 NULL
164540 +enable_so_ibnl_put_msg_fndecl_50721 ibnl_put_msg fndecl 4 50721 NULL nohasharray
164541 +enable_so_num_lbufq_entries_ql3_adapter_50721 num_lbufq_entries ql3_adapter 0 50721 &enable_so_ibnl_put_msg_fndecl_50721
164542 +enable_so_mpdu_header_off_wcn36xx_pdu_50723 mpdu_header_off wcn36xx_pdu 0 50723 NULL
164543 +enable_so_i915_gem_alloc_object_fndecl_50728 i915_gem_alloc_object fndecl 2 50728 NULL
164544 +enable_so_srp_change_queue_depth_fndecl_50733 srp_change_queue_depth fndecl 2 50733 NULL nohasharray
164545 +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
164546 +enable_so_agg_wsize_vardecl_50735 agg_wsize vardecl 0 50735 NULL nohasharray
164547 +enable_so_max_mr_size_ib_device_attr_50735 max_mr_size ib_device_attr 0 50735 &enable_so_agg_wsize_vardecl_50735
164548 +enable_so_data_size_usbtouch_usb_50738 data_size usbtouch_usb 0 50738 NULL
164549 +enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742 MaximumDataTransferSizeInBlocks DAC960_V2_ControllerInfo 0 50742 NULL nohasharray
164550 +enable_so_rx_count_st_data_s_50742 rx_count st_data_s 0 50742 &enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742
164551 +enable_so_opt_flen_ipv6_txoptions_50747 opt_flen ipv6_txoptions 0 50747 NULL
164552 +enable_so_nicvf_change_mtu_fndecl_50748 nicvf_change_mtu fndecl 2 50748 NULL
164553 +enable_so_dm_create_fndecl_50754 dm_create fndecl 1 50754 NULL
164554 +enable_so_i_dataoffset_romfs_inode_info_50755 i_dataoffset romfs_inode_info 0 50755 NULL
164555 +enable_so_root_len_ubifs_mst_node_50757 root_len ubifs_mst_node 0 50757 NULL
164556 +enable_so_cluster_bits_msdos_sb_info_50763 cluster_bits msdos_sb_info 0 50763 NULL
164557 +enable_so_usb_hcd_map_urb_for_dma_fndecl_50765 usb_hcd_map_urb_for_dma fndecl 0 50765 NULL
164558 +enable_so_cifs_readpages_read_into_pages_fndecl_50770 cifs_readpages_read_into_pages fndecl 3 50770 NULL
164559 +enable_so_hpfs_get_sector_fndecl_50776 hpfs_get_sector fndecl 2 50776 NULL
164560 +enable_so_vmap_fndecl_50778 vmap fndecl 2 50778 NULL
164561 +enable_so_cmd_size_blk_mq_tag_set_50782 cmd_size blk_mq_tag_set 0 50782 NULL
164562 +enable_so_readdir_nfs_rpc_ops_50783 readdir nfs_rpc_ops 0 50783 NULL
164563 +enable_so_remove_pmkid_fndecl_50793 remove_pmkid fndecl 4 50793 NULL
164564 +enable_so_len_rfd_50801 len rfd 0 50801 NULL
164565 +enable_so_persistent_ram_buffer_map_fndecl_50803 persistent_ram_buffer_map fndecl 2-1 50803 NULL
164566 +enable_so_malloc_size__BIG_IOCTL_Command_struct_50805 malloc_size _BIG_IOCTL_Command_struct 0 50805 NULL
164567 +enable_so_cmdQueueSize_sis_video_info_50807 cmdQueueSize sis_video_info 0 50807 NULL nohasharray
164568 +enable_so_argslen_svc_deferred_req_50807 argslen svc_deferred_req 0 50807 &enable_so_cmdQueueSize_sis_video_info_50807
164569 +enable_so_hpfs_map_dnode_fndecl_50813 hpfs_map_dnode fndecl 2 50813 NULL nohasharray
164570 +enable_so_ocfs2_pages_per_cluster_fndecl_50813 ocfs2_pages_per_cluster fndecl 0 50813 &enable_so_hpfs_map_dnode_fndecl_50813
164571 +enable_so_clkrc_ov7670_info_50815 clkrc ov7670_info 0 50815 NULL
164572 +enable_so_sys_migrate_pages_fndecl_50818 sys_migrate_pages fndecl 2 50818 NULL
164573 +enable_so_cdce925_regmap_i2c_read_fndecl_50819 cdce925_regmap_i2c_read fndecl 5 50819 NULL
164574 +enable_so_rq_nvec_smb_rqst_50820 rq_nvec smb_rqst 0 50820 NULL
164575 +enable_so_get_priv_size_fndecl_50823 get_priv_size fndecl 0-1 50823 NULL
164576 +enable_so_xdr_read_pages_fndecl_50824 xdr_read_pages fndecl 2 50824 NULL nohasharray
164577 +enable_so_bcast_ring_order_vardecl_main_c_50824 bcast_ring_order vardecl_main.c 0 50824 &enable_so_xdr_read_pages_fndecl_50824
164578 +enable_so_t_tinc_data_rem_rds_tcp_connection_50828 t_tinc_data_rem rds_tcp_connection 0 50828 NULL
164579 +enable_so_bssid_info_count_ndis_80211_pmkid_50829 bssid_info_count ndis_80211_pmkid 0 50829 NULL
164580 +enable_so_filelayout_get_dserver_offset_fndecl_50833 filelayout_get_dserver_offset fndecl 0-2 50833 NULL
164581 +enable_so_security_inode_listsecurity_fndecl_50839 security_inode_listsecurity fndecl 0 50839 NULL
164582 +enable_so_m_rsumlevels_xfs_mount_50843 m_rsumlevels xfs_mount 0 50843 NULL
164583 +enable_so_exynos3250_jpeg_compressed_size_fndecl_50845 exynos3250_jpeg_compressed_size fndecl 0 50845 NULL
164584 +enable_so_decrypted_key_size_ecryptfs_session_key_50847 decrypted_key_size ecryptfs_session_key 0 50847 NULL
164585 +enable_so__brk_end_vardecl_50849 _brk_end vardecl 0 50849 NULL
164586 +enable_so_journal_read_transaction_fndecl_50853 journal_read_transaction fndecl 2 50853 NULL
164587 +enable_so_x2_drm_clip_rect_50854 x2 drm_clip_rect 0 50854 NULL
164588 +enable_so_force_bredr_smp_read_fndecl_50855 force_bredr_smp_read fndecl 3 50855 NULL
164589 +enable_so_dat_offset_brcmf_sdio_hdrinfo_50859 dat_offset brcmf_sdio_hdrinfo 0 50859 NULL
164590 +enable_so_alloc_disk_fndecl_50861 alloc_disk fndecl 1 50861 NULL
164591 +enable_so_alg_key_len_xfrm_algo_auth_50871 alg_key_len xfrm_algo_auth 0 50871 NULL
164592 +enable_so_mtu_adj_ipvl_dev_50874 mtu_adj ipvl_dev 0 50874 NULL
164593 +enable_so_qib_read_kreg64_fndecl_50881 qib_read_kreg64 fndecl 0 50881 NULL
164594 +enable_so___nvme_submit_sync_cmd_fndecl_50882 __nvme_submit_sync_cmd fndecl 5 50882 NULL
164595 +enable_so_get_ramdisk_image_fndecl_50888 get_ramdisk_image fndecl 0 50888 NULL
164596 +enable_so_pkt_add_fndecl_50890 pkt_add fndecl 3 50890 NULL nohasharray
164597 +enable_so_size_t4_sq_50890 size t4_sq 0 50890 &enable_so_pkt_add_fndecl_50890 nohasharray
164598 +enable_so_ie_len_ieee80211_if_ibss_50890 ie_len ieee80211_if_ibss 0 50890 &enable_so_size_t4_sq_50890
164599 +enable_so_get_result_si_sm_handlers_50904 get_result si_sm_handlers 0 50904 NULL
164600 +enable_so_netlbl_catmap_walkrng_fndecl_50910 netlbl_catmap_walkrng fndecl 2-0 50910 NULL
164601 +enable_so_exofs_read_kern_fndecl_50914 exofs_read_kern fndecl 6 50914 NULL nohasharray
164602 +enable_so_oom_score_adj_read_fndecl_50914 oom_score_adj_read fndecl 3 50914 &enable_so_exofs_read_kern_fndecl_50914
164603 +enable_so_vnet_hdr_sz_tun_struct_50916 vnet_hdr_sz tun_struct 0 50916 NULL
164604 +enable_so_first_minor_gendisk_50925 first_minor gendisk 0 50925 NULL nohasharray
164605 +enable_so_num_chunks_drm_radeon_cs_50925 num_chunks drm_radeon_cs 0 50925 &enable_so_first_minor_gendisk_50925
164606 +enable_so___spi_async_fndecl_50927 __spi_async fndecl 0 50927 NULL
164607 +enable_so_j_start_reiserfs_journal_50930 j_start reiserfs_journal 0 50930 NULL
164608 +enable_so_ssidLen_BSSListRid_50931 ssidLen BSSListRid 0 50931 NULL nohasharray
164609 +enable_so_ReplyFrameSize_mpt2sas_facts_50931 ReplyFrameSize mpt2sas_facts 0 50931 &enable_so_ssidLen_BSSListRid_50931
164610 +enable_so_efs_map_block_fndecl_50932 efs_map_block fndecl 0-2 50932 NULL
164611 +enable_so_read_file_modal_eeprom_fndecl_50934 read_file_modal_eeprom fndecl 3 50934 NULL
164612 +enable_so_sge_pktshift_cxgb4_lld_info_50935 sge_pktshift cxgb4_lld_info 0 50935 NULL
164613 +enable_so_dw210x_op_rw_fndecl_50936 dw210x_op_rw fndecl 6 50936 NULL
164614 +enable_so_gen_pool_add_virt_fndecl_50938 gen_pool_add_virt fndecl 4 50938 NULL
164615 +enable_so_wil_rx_init_fndecl_50939 wil_rx_init fndecl 2 50939 NULL
164616 +enable_so_ubi_start_update_fndecl_50948 ubi_start_update fndecl 3 50948 NULL
164617 +enable_so_sync_key_len_pvr2_ioread_50952 sync_key_len pvr2_ioread 0 50952 NULL
164618 +enable_so_iser_prepare_write_cmd_fndecl_50953 iser_prepare_write_cmd fndecl 2 50953 NULL
164619 +enable_so_reg_list_size_radeon_rlc_50955 reg_list_size radeon_rlc 0 50955 NULL nohasharray
164620 +enable_so___vb2_get_done_vb_fndecl_50955 __vb2_get_done_vb fndecl 0 50955 &enable_so_reg_list_size_radeon_rlc_50955
164621 +enable_so_alloc_agpphysmem_i8xx_fndecl_50960 alloc_agpphysmem_i8xx fndecl 1 50960 NULL
164622 +enable_so_nsegments_dsp_module_desc_50965 nsegments dsp_module_desc 0 50965 NULL
164623 +enable_so_gamma_sd_gl860_50970 gamma sd_gl860 0 50970 NULL
164624 +enable_so_irq_ssb_device_50977 irq ssb_device 0 50977 NULL nohasharray
164625 +enable_so_setkey_unaligned_fndecl_50977 setkey_unaligned fndecl 3 50977 &enable_so_irq_ssb_device_50977
164626 +enable_so_n_hdlc_tty_receive_fndecl_50980 n_hdlc_tty_receive fndecl 4 50980 NULL
164627 +enable_so_seq_start_offset_iscsi_cmd_50983 seq_start_offset iscsi_cmd 0 50983 NULL
164628 +enable_so_usif_ioctl_fndecl_50986 usif_ioctl fndecl 3 50986 NULL
164629 +enable_so_first_burst_len_iscsi_cmd_50987 first_burst_len iscsi_cmd 0 50987 NULL
164630 +enable_so_do_get_mempolicy_fndecl_50990 do_get_mempolicy fndecl 3 50990 NULL
164631 +enable_so_cb_break_tail_afs_server_51003 cb_break_tail afs_server 0 51003 NULL
164632 +enable_so_resize_size_resize_parms_51005 resize_size resize_parms 0 51005 NULL
164633 +enable_so_ufs_frag_map_fndecl_51007 ufs_frag_map fndecl 0 51007 NULL
164634 +enable_so_room_ceph_pagelist_51016 room ceph_pagelist 0 51016 NULL
164635 +enable_so_num_of_queues_il_cfg_51023 num_of_queues il_cfg 0 51023 NULL
164636 +enable_so_img_sram_size_fw_hdr_51027 img_sram_size fw_hdr 0 51027 NULL
164637 +enable_so_cpu_count_MPT2SAS_ADAPTER_51044 cpu_count MPT2SAS_ADAPTER 0 51044 NULL
164638 +enable_so_int_proc_write_fndecl_51045 int_proc_write fndecl 3 51045 NULL
164639 +enable_so_setattr_inode_operations_51054 setattr inode_operations 0 51054 NULL
164640 +enable_so_vfs_truncate_fndecl_51056 vfs_truncate fndecl 2 51056 NULL nohasharray
164641 +enable_so_cl_req_alloc_fndecl_51056 cl_req_alloc fndecl 4 51056 &enable_so_vfs_truncate_fndecl_51056
164642 +enable_so_romfs_dev_strnlen_fndecl_51058 romfs_dev_strnlen fndecl 2-3-0 51058 NULL nohasharray
164643 +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
164644 +enable_so_index_vardecl_atiixp_modem_c_51061 index vardecl_atiixp_modem.c 0 51061 NULL
164645 +enable_so_crtc_vtotal_drm_display_mode_51070 crtc_vtotal drm_display_mode 0 51070 NULL
164646 +enable_so_fbmem_len_viafb_dev_51071 fbmem_len viafb_dev 0 51071 NULL
164647 +enable_so_ieee80211_if_read_fwded_mcast_fndecl_51072 ieee80211_if_read_fwded_mcast fndecl 3 51072 NULL nohasharray
164648 +enable_so_datablob_format_fndecl_51072 datablob_format fndecl 2 51072 &enable_so_ieee80211_if_read_fwded_mcast_fndecl_51072
164649 +enable_so_size_p9_wstat_51083 size p9_wstat 0 51083 NULL
164650 +enable_so_td_end_whc_qset_51089 td_end whc_qset 0 51089 NULL nohasharray
164651 +enable_so_pp_write_fndecl_51089 pp_write fndecl 3 51089 &enable_so_td_end_whc_qset_51089
164652 +enable_so_order_mmc_test_pages_51098 order mmc_test_pages 0 51098 NULL
164653 +enable_so_namelen_hpfs_dirent_51099 namelen hpfs_dirent 0 51099 NULL
164654 +enable_so_ocfs2_file_llseek_fndecl_51102 ocfs2_file_llseek fndecl 2 51102 NULL
164655 +enable_so_copy_chunked_from_user_fndecl_51106 copy_chunked_from_user fndecl 3 51106 NULL
164656 +enable_so_memblock_virt_alloc_internal_fndecl_51107 memblock_virt_alloc_internal fndecl 2-1-3-4 51107 NULL nohasharray
164657 +enable_so_bu_blocks_ocfs2_xattr_bucket_51107 bu_blocks ocfs2_xattr_bucket 0 51107 &enable_so_memblock_virt_alloc_internal_fndecl_51107
164658 +enable_so_msb_read_page_fndecl_51110 msb_read_page fndecl 6 51110 NULL
164659 +enable_so_elog_size_vardecl_acpi_extlog_c_51112 elog_size vardecl_acpi_extlog.c 0 51112 NULL
164660 +enable_so_fbmem_free_viafb_par_51115 fbmem_free viafb_par 0 51115 NULL
164661 +enable_so_len_garp_attr_hdr_51119 len garp_attr_hdr 0 51119 NULL
164662 +enable_so_ls_num_slots_dlm_ls_51120 ls_num_slots dlm_ls 0 51120 NULL
164663 +enable_so_new_read_fndecl_51123 new_read fndecl 2 51123 NULL
164664 +enable_so_adau1373_set_pll_fndecl_51130 adau1373_set_pll fndecl 4-5 51130 NULL
164665 +enable_so_igb_pci_enable_sriov_fndecl_51131 igb_pci_enable_sriov fndecl 2 51131 NULL
164666 +enable_so_wqe_cnt_mlx4_ib_wq_51135 wqe_cnt mlx4_ib_wq 0 51135 NULL
164667 +enable_so_cachelsz_ath_common_51138 cachelsz ath_common 0 51138 NULL
164668 +enable_so_length_sky2_status_le_51139 length sky2_status_le 0 51139 NULL
164669 +enable_so_arg_start_mm_struct_51140 arg_start mm_struct 0 51140 NULL nohasharray
164670 +enable_so_fm_send_cmd_fndecl_51140 fm_send_cmd fndecl 5 51140 &enable_so_arg_start_mm_struct_51140 nohasharray
164671 +enable_so_pin_2_irq_fndecl_51140 pin_2_irq fndecl 3 51140 &enable_so_fm_send_cmd_fndecl_51140
164672 +enable_so_num_rx_bnad_51141 num_rx bnad 0 51141 NULL
164673 +enable_so_set_dev_class_fndecl_51150 set_dev_class fndecl 4 51150 NULL nohasharray
164674 +enable_so_dm_exception_table_init_fndecl_51150 dm_exception_table_init fndecl 2 51150 &enable_so_set_dev_class_fndecl_51150
164675 +enable_so_mss_net_lro_desc_51151 mss net_lro_desc 0 51151 NULL
164676 +enable_so_sdio_readb_fndecl_51153 sdio_readb fndecl 0 51153 NULL
164677 +enable_so_nfs_idmap_get_key_fndecl_51155 nfs_idmap_get_key fndecl 2 51155 NULL
164678 +enable_so_num_backlights_lm3533_platform_data_51165 num_backlights lm3533_platform_data 0 51165 NULL
164679 +enable_so_bytes_per_pixel_osd_info_51169 bytes_per_pixel osd_info 0 51169 NULL nohasharray
164680 +enable_so_kvm_read_guest_cached_fndecl_51169 kvm_read_guest_cached fndecl 4 51169 &enable_so_bytes_per_pixel_osd_info_51169
164681 +enable_so_raid10_takeover_raid0_fndecl_51171 raid10_takeover_raid0 fndecl 3-2 51171 NULL
164682 +enable_so_v4l_stk_read_fndecl_51179 v4l_stk_read fndecl 3 51179 NULL
164683 +enable_so_splice_write_null_fndecl_51181 splice_write_null fndecl 4 51181 NULL nohasharray
164684 +enable_so_do_surface_dirty_sou_fndecl_51181 do_surface_dirty_sou fndecl 7 51181 &enable_so_splice_write_null_fndecl_51181
164685 +enable_so_snd_rme32_capture_copy_fndecl_51190 snd_rme32_capture_copy fndecl 5 51190 NULL
164686 +enable_so_prism2_info_hostscanresults_fndecl_51194 prism2_info_hostscanresults fndecl 3 51194 NULL
164687 +enable_so_mlx5_ib_invalidate_range_fndecl_51195 mlx5_ib_invalidate_range fndecl 2 51195 NULL
164688 +enable_so_pfkey_sockaddr_size_fndecl_51198 pfkey_sockaddr_size fndecl 0 51198 NULL
164689 +enable_so_btrfs_extent_same_fndecl_51200 btrfs_extent_same fndecl 2-5-3 51200 NULL
164690 +enable_so_max_num_vringh_kiov_51202 max_num vringh_kiov 0 51202 NULL
164691 +enable_so_cirrus_ttm_tt_create_fndecl_51204 cirrus_ttm_tt_create fndecl 2 51204 NULL
164692 +enable_so_vcc_recvmsg_fndecl_51205 vcc_recvmsg fndecl 3 51205 NULL
164693 +enable_so_kvm_clear_guest_fndecl_51207 kvm_clear_guest fndecl 2-3 51207 NULL
164694 +enable_so_phys_vram_area_51217 phys vram_area 0 51217 NULL
164695 +enable_so_vsi_oltext_vxfs_sb_info_51222 vsi_oltext vxfs_sb_info 0 51222 NULL
164696 +enable_so_mem_cgroup_count_precharge_pte_range_fndecl_51229 mem_cgroup_count_precharge_pte_range fndecl 2 51229 NULL
164697 +enable_so_rt2x00debug_write_rf_fndecl_51232 rt2x00debug_write_rf fndecl 3 51232 NULL
164698 +enable_so_stb0899_read_regs_fndecl_51234 stb0899_read_regs fndecl 4 51234 NULL nohasharray
164699 +enable_so_pte_entry_mm_walk_51234 pte_entry mm_walk 0 51234 &enable_so_stb0899_read_regs_fndecl_51234
164700 +enable_so_proc_set_size_fndecl_51237 proc_set_size fndecl 2 51237 NULL
164701 +enable_so_get_ucode_user_fndecl_51241 get_ucode_user fndecl 3 51241 NULL
164702 +enable_so_unlinked_urb_51246 unlinked urb 0 51246 NULL
164703 +enable_so_max_desc_sz_mthca_limits_51248 max_desc_sz mthca_limits 0 51248 NULL
164704 +enable_so_max_gs_mlx4_ib_wq_51251 max_gs mlx4_ib_wq 0 51251 NULL nohasharray
164705 +enable_so_cdev_add_fndecl_51251 cdev_add fndecl 2-3 51251 &enable_so_max_gs_mlx4_ib_wq_51251
164706 +enable_so_nvkm_gpuobj_create__fndecl_51256 nvkm_gpuobj_create_ fndecl 7-6-9 51256 NULL
164707 +enable_so_imxdma_prep_dma_cyclic_fndecl_51257 imxdma_prep_dma_cyclic fndecl 4-3 51257 NULL
164708 +enable_so_create_srq_user_fndecl_51260 create_srq_user fndecl 5 51260 NULL
164709 +enable_so_maxdatafieldsize_vnic_fc_config_51275 maxdatafieldsize vnic_fc_config 0 51275 NULL
164710 +enable_so_ceph_decode_16_fndecl_51276 ceph_decode_16 fndecl 0 51276 NULL
164711 +enable_so_ext3_new_block_fndecl_51283 ext3_new_block fndecl 0-3 51283 NULL
164712 +enable_so_xfs_rtallocate_range_fndecl_51292 xfs_rtallocate_range fndecl 3-4 51292 NULL nohasharray
164713 +enable_so_osd_req_list_partition_collections_fndecl_51292 osd_req_list_partition_collections fndecl 5 51292 &enable_so_xfs_rtallocate_range_fndecl_51292
164714 +enable_so_first_burst_iscsi_bus_flash_session_51294 first_burst iscsi_bus_flash_session 0 51294 NULL
164715 +enable_so_size_autofs_dev_ioctl_51298 size autofs_dev_ioctl 0 51298 NULL
164716 +enable_so_iscsi_ping_comp_event_fndecl_51300 iscsi_ping_comp_event fndecl 5 51300 NULL nohasharray
164717 +enable_so_ramoops_read_kmsg_hdr_fndecl_51300 ramoops_read_kmsg_hdr fndecl 0 51300 &enable_so_iscsi_ping_comp_event_fndecl_51300
164718 +enable_so_vmci_qp_broker_set_page_store_fndecl_51303 vmci_qp_broker_set_page_store fndecl 2-3 51303 NULL
164719 +enable_so_y2_virtio_gpu_framebuffer_51309 y2 virtio_gpu_framebuffer 0 51309 NULL
164720 +enable_so_ieee80211_if_read_auto_open_plinks_fndecl_51311 ieee80211_if_read_auto_open_plinks fndecl 3 51311 NULL nohasharray
164721 +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
164722 +enable_so__ipw_read_reg32_fndecl_51318 _ipw_read_reg32 fndecl 0 51318 NULL
164723 +enable_so_drv_sds_rings_qlcnic_adapter_51319 drv_sds_rings qlcnic_adapter 0 51319 NULL
164724 +enable_so_nvkm_dmaobj_create__fndecl_51321 nvkm_dmaobj_create_ fndecl 6 51321 NULL
164725 +enable_so_size_bts_phys_51332 size bts_phys 0 51332 NULL
164726 +enable_so_sync_dma_snd_usb_endpoint_51333 sync_dma snd_usb_endpoint 0 51333 NULL
164727 +enable_so_counter_vardecl_inode_c_51334 counter vardecl_inode.c 0 51334 NULL
164728 +enable_so_skb_put_frags_fndecl_51337 skb_put_frags fndecl 2-3 51337 NULL
164729 +enable_so_s_first_meta_bg_ext4_super_block_51338 s_first_meta_bg ext4_super_block 0 51338 NULL
164730 +enable_so_zd_mac_rx_fndecl_51339 zd_mac_rx fndecl 3 51339 NULL nohasharray
164731 +enable_so_C_SYSC_pselect6_fndecl_51339 C_SYSC_pselect6 fndecl 1 51339 &enable_so_zd_mac_rx_fndecl_51339
164732 +enable_so_xfs_bmbt_to_bmdr_fndecl_51344 xfs_bmbt_to_bmdr fndecl 3 51344 NULL nohasharray
164733 +enable_so_xfs_bmdr_to_bmbt_fndecl_51344 xfs_bmdr_to_bmbt fndecl 5 51344 &enable_so_xfs_bmbt_to_bmdr_fndecl_51344
164734 +enable_so_dev_change_flags_fndecl_51349 dev_change_flags fndecl 0 51349 NULL
164735 +enable_so_omap1_spi100k_setup_transfer_fndecl_51353 omap1_spi100k_setup_transfer fndecl 0 51353 NULL
164736 +enable_so_ftdi_process_packet_fndecl_51354 ftdi_process_packet fndecl 4 51354 NULL nohasharray
164737 +enable_so_size_seq_file_51354 size seq_file 0 51354 &enable_so_ftdi_process_packet_fndecl_51354
164738 +enable_so_get_frame_size_fndecl_51358 get_frame_size fndecl 0 51358 NULL
164739 +enable_so_length_mpc_table_51364 length mpc_table 0 51364 NULL
164740 +enable_so_ida_simple_get_fndecl_51365 ida_simple_get fndecl 0 51365 NULL nohasharray
164741 +enable_so_la_size_sect_drbd_md_51365 la_size_sect drbd_md 0 51365 &enable_so_ida_simple_get_fndecl_51365
164742 +enable_so_isr_rx_headers_read_fndecl_51366 isr_rx_headers_read fndecl 3 51366 NULL
164743 +enable_so_uvc_try_frame_interval_fndecl_51372 uvc_try_frame_interval fndecl 0-2 51372 NULL nohasharray
164744 +enable_so_sb_logblocks_xfs_sb_51372 sb_logblocks xfs_sb 0 51372 &enable_so_uvc_try_frame_interval_fndecl_51372
164745 +enable_so_ucma_query_path_fndecl_51378 ucma_query_path fndecl 3 51378 NULL
164746 +enable_so_i915_ggtt_view_size_fndecl_51385 i915_ggtt_view_size fndecl 0 51385 NULL
164747 +enable_so_num_queues_virtio_scsi_51387 num_queues virtio_scsi 0 51387 NULL
164748 +enable_so_ath6kl_wmi_addkey_cmd_fndecl_51389 ath6kl_wmi_addkey_cmd fndecl 2 51389 NULL
164749 +enable_so_reshape_progress_r10conf_51390 reshape_progress r10conf 0 51390 NULL
164750 +enable_so_size_hbucket_51397 size hbucket 0 51397 NULL
164751 +enable_so_rss_size_i40e_pf_51407 rss_size i40e_pf 0 51407 NULL
164752 +enable_so_ext4_ext_next_allocated_block_fndecl_51410 ext4_ext_next_allocated_block fndecl 0 51410 NULL nohasharray
164753 +enable_so_kmemleak_alloc_recursive_fndecl_51410 kmemleak_alloc_recursive fndecl 2 51410 &enable_so_ext4_ext_next_allocated_block_fndecl_51410
164754 +enable_so_max_header_size_irnet_socket_51423 max_header_size irnet_socket 0 51423 NULL
164755 +enable_so_base_memblock_region_51424 base memblock_region 0 51424 NULL
164756 +enable_so_num_rx_queues_ixgbevf_adapter_51428 num_rx_queues ixgbevf_adapter 0 51428 NULL
164757 +enable_so_nethctrl_vf_resources_51438 nethctrl vf_resources 0 51438 NULL nohasharray
164758 +enable_so_size_omap3isp_ccdc_lsc_config_51438 size omap3isp_ccdc_lsc_config 0 51438 &enable_so_nethctrl_vf_resources_51438
164759 +enable_so_max_cmds_ipr_ioa_cfg_51439 max_cmds ipr_ioa_cfg 0 51439 NULL
164760 +enable_so_rtsThres_ConfigRid_51444 rtsThres ConfigRid 0 51444 NULL
164761 +enable_so_xfs_free_file_space_fndecl_51452 xfs_free_file_space fndecl 2-3 51452 NULL
164762 +enable_so_pcpu_fc_free_fndecl_51456 pcpu_fc_free fndecl 2 51456 NULL
164763 +enable_so_nr_segments_blkif_request_indirect_51457 nr_segments blkif_request_indirect 0 51457 NULL
164764 +enable_so_size_gf100_gr_priv_51459 size gf100_gr_priv 0 51459 NULL
164765 +enable_so_size_hashlimit_cfg1_51460 size hashlimit_cfg1 0 51460 NULL
164766 +enable_so_rx_urb_size_usbnet_51461 rx_urb_size usbnet 0 51461 NULL
164767 +enable_so_nTxLock_vardecl_jfs_txnmgr_c_51464 nTxLock vardecl_jfs_txnmgr.c 0 51464 NULL
164768 +enable_so_orig_offset_iscsi_seq_51477 orig_offset iscsi_seq 0 51477 NULL
164769 +enable_so_write_ec_fiforeg_fndecl_51478 write_ec_fiforeg fndecl 2 51478 NULL
164770 +enable_so_compat_sys_rt_sigpending_fndecl_51480 compat_sys_rt_sigpending fndecl 2 51480 NULL
164771 +enable_so_finish_urb_fndecl_51484 finish_urb fndecl 3 51484 NULL
164772 +enable_so_num_vectors_mic_irq_info_51485 num_vectors mic_irq_info 0 51485 NULL
164773 +enable_so_xlog_alloc_log_fndecl_51486 xlog_alloc_log fndecl 4-3 51486 NULL
164774 +enable_so_log_blocksize_f2fs_super_block_51487 log_blocksize f2fs_super_block 0 51487 NULL
164775 +enable_so_end_soundfont_sample_info_51497 end soundfont_sample_info 0 51497 NULL
164776 +enable_so_height_drm_radeon_tex_image_51500 height drm_radeon_tex_image 0 51500 NULL
164777 +enable_so_inftl_readblock_fndecl_51508 inftl_readblock fndecl 2 51508 NULL
164778 +enable_so_xfer_len_scb_platform_data_51509 xfer_len scb_platform_data 0 51509 NULL
164779 +enable_so_count_atl1_tpd_ring_51510 count atl1_tpd_ring 0 51510 NULL
164780 +enable_so_pkt_alloc_packet_data_fndecl_51515 pkt_alloc_packet_data fndecl 1 51515 NULL nohasharray
164781 +enable_so__rtw_malloc_fndecl_51515 _rtw_malloc fndecl 1 51515 &enable_so_pkt_alloc_packet_data_fndecl_51515
164782 +enable_so_size_fb_pixmap_51528 size fb_pixmap 0 51528 NULL
164783 +enable_so_mft_no__ntfs_inode_51541 mft_no _ntfs_inode 0 51541 NULL
164784 +enable_so_write_file_bool_fndecl_51542 write_file_bool fndecl 3 51542 NULL
164785 +enable_so_len_hfa384x_info_frame_51543 len hfa384x_info_frame 0 51543 NULL
164786 +enable_so_scan_bytes_iio_dev_51546 scan_bytes iio_dev 0 51546 NULL nohasharray
164787 +enable_so_fifo_alloc_fndecl_51546 fifo_alloc fndecl 1 51546 &enable_so_scan_bytes_iio_dev_51546
164788 +enable_so_segCnt_Vmxnet3_RxCompDescExt_51547 segCnt Vmxnet3_RxCompDescExt 0 51547 NULL
164789 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_rec_51548 buffer_size snd_emu10k1_fx8010_pcm_rec 0 51548 NULL
164790 +enable_so_rcv_buf_bytes_vardecl_usbatm_c_51558 rcv_buf_bytes vardecl_usbatm.c 0 51558 NULL
164791 +enable_so_residual_len_vscsiif_response_51559 residual_len vscsiif_response 0 51559 NULL
164792 +enable_so_vfs_readv_fndecl_51560 vfs_readv fndecl 3 51560 NULL
164793 +enable_so_tegra_slink_start_tx_dma_fndecl_51568 tegra_slink_start_tx_dma fndecl 2 51568 NULL
164794 +enable_so_size_mdp_superblock_1_51572 size mdp_superblock_1 0 51572 NULL
164795 +enable_so_netxen_nic_change_mtu_fndecl_51573 netxen_nic_change_mtu fndecl 2 51573 NULL nohasharray
164796 +enable_so_rds_rdma_extra_size_fndecl_51573 rds_rdma_extra_size fndecl 0 51573 &enable_so_netxen_nic_change_mtu_fndecl_51573
164797 +enable_so_aio_setup_vectored_rw_fndecl_51577 aio_setup_vectored_rw fndecl 3 51577 NULL
164798 +enable_so_ino_f2fs_dir_entry_51578 ino f2fs_dir_entry 0 51578 NULL nohasharray
164799 +enable_so_s_writeshift_logfs_super_51578 s_writeshift logfs_super 0 51578 &enable_so_ino_f2fs_dir_entry_51578
164800 +enable_so_lbasize_nd_namespace_blk_51579 lbasize nd_namespace_blk 0 51579 NULL
164801 +enable_so_i_blkno_ocfs2_dinode_51582 i_blkno ocfs2_dinode 0 51582 NULL nohasharray
164802 +enable_so_persistent_ram_old_size_fndecl_51582 persistent_ram_old_size fndecl 0 51582 &enable_so_i_blkno_ocfs2_dinode_51582
164803 +enable_so_octeon_download_firmware_fndecl_51583 octeon_download_firmware fndecl 3 51583 NULL
164804 +enable_so_aggr_recv_addba_req_evt_fndecl_51590 aggr_recv_addba_req_evt fndecl 4 51590 NULL
164805 +enable_so_ufs_commit_chunk_fndecl_51591 ufs_commit_chunk fndecl 3 51591 NULL
164806 +enable_so__stb0899_read_reg_fndecl_51594 _stb0899_read_reg fndecl 0 51594 NULL
164807 +enable_so_rx_buf_missing_hso_net_51595 rx_buf_missing hso_net 0 51595 NULL
164808 +enable_so_klsi_105_prepare_write_buffer_fndecl_51599 klsi_105_prepare_write_buffer fndecl 3 51599 NULL nohasharray
164809 +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
164810 +enable_so_ep_count_bytes_remain_fndecl_51599 ep_count_bytes_remain fndecl 0 51599 &enable_so_af9013_wr_regs_i2c_fndecl_51599 nohasharray
164811 +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
164812 +enable_so_receive_mergeable_fndecl_51601 receive_mergeable fndecl 5-4 51601 NULL
164813 +enable_so_vfp_get_fndecl_51605 vfp_get fndecl 3-4 51605 NULL
164814 +enable_so_data_transfer_length_vmscsi_request_51616 data_transfer_length vmscsi_request 0 51616 NULL nohasharray
164815 +enable_so_cur_vfio_pci_fill_info_51616 cur vfio_pci_fill_info 0 51616 &enable_so_data_transfer_length_vmscsi_request_51616
164816 +enable_so_alloc_ltalkdev_fndecl_51620 alloc_ltalkdev fndecl 1 51620 NULL
164817 +enable_so_ioc_plen1_obd_ioctl_data_51625 ioc_plen1 obd_ioctl_data 0 51625 NULL
164818 +enable_so_btuart_write_fndecl_51627 btuart_write fndecl 0 51627 NULL
164819 +enable_so_cifs_send_async_read_fndecl_51630 cifs_send_async_read fndecl 2 51630 NULL
164820 +enable_so_m25p80_read_fndecl_51631 m25p80_read fndecl 3 51631 NULL
164821 +enable_so_nodesize_btrfs_root_51633 nodesize btrfs_root 0 51633 NULL nohasharray
164822 +enable_so_wil_vring_init_bcast_fndecl_51633 wil_vring_init_bcast fndecl 3 51633 &enable_so_nodesize_btrfs_root_51633 nohasharray
164823 +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
164824 +enable_so_SyS_llistxattr_fndecl_51635 SyS_llistxattr fndecl 3 51635 NULL
164825 +enable_so_SsidLength_ndis_802_11_ssid_51638 SsidLength ndis_802_11_ssid 0 51638 NULL
164826 +enable_so_remap_cell_to_cache_dirty_fndecl_51640 remap_cell_to_cache_dirty fndecl 4 51640 NULL
164827 +enable_so__xfs_buf_alloc_fndecl_51641 _xfs_buf_alloc fndecl 3 51641 NULL
164828 +enable_so_nsm_create_handle_fndecl_51647 nsm_create_handle fndecl 4 51647 NULL
164829 +enable_so_ath10k_mem_value_read_fndecl_51648 ath10k_mem_value_read fndecl 3 51648 NULL
164830 +enable_so_kernfs_dir_fop_llseek_fndecl_51649 kernfs_dir_fop_llseek fndecl 2 51649 NULL
164831 +enable_so_max_txsz_cxgbi_ddp_info_51655 max_txsz cxgbi_ddp_info 0 51655 NULL nohasharray
164832 +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
164833 +enable_so_o2hb_read_slots_fndecl_51658 o2hb_read_slots fndecl 2 51658 NULL
164834 +enable_so_inet_set_ifa_fndecl_51661 inet_set_ifa fndecl 0 51661 NULL
164835 +enable_so_snd_pcm_oss_write_fndecl_51663 snd_pcm_oss_write fndecl 3 51663 NULL
164836 +enable_so_xfs_buf_readahead_map_fndecl_51666 xfs_buf_readahead_map fndecl 3 51666 NULL
164837 +enable_so_phys_mdio_mux_mmioreg_state_51673 phys mdio_mux_mmioreg_state 0 51673 NULL nohasharray
164838 +enable_so_resource_list_create_entry_fndecl_51673 resource_list_create_entry fndecl 2 51673 &enable_so_phys_mdio_mux_mmioreg_state_51673
164839 +enable_so_tcf_csum_ipv4_udp_fndecl_51674 tcf_csum_ipv4_udp fndecl 3 51674 NULL nohasharray
164840 +enable_so_seq_create_client1_fndecl_51674 seq_create_client1 fndecl 2 51674 &enable_so_tcf_csum_ipv4_udp_fndecl_51674
164841 +enable_so_nr_dirtied_task_struct_51675 nr_dirtied task_struct 0 51675 NULL
164842 +enable_so_ep0_read_fndecl_51676 ep0_read fndecl 3 51676 NULL
164843 +enable_so_proc_self_readlink_fndecl_51677 proc_self_readlink fndecl 3 51677 NULL
164844 +enable_so_request_key_auth_new_fndecl_51679 request_key_auth_new fndecl 3 51679 NULL
164845 +enable_so_ls_num_nodes_dlm_ls_51681 ls_num_nodes dlm_ls 0 51681 NULL nohasharray
164846 +enable_so_vmw_kms_present_fndecl_51681 vmw_kms_present fndecl 9 51681 &enable_so_ls_num_nodes_dlm_ls_51681
164847 +enable_so_virtio_gpu_object_create_fndecl_51692 virtio_gpu_object_create fndecl 2 51692 NULL nohasharray
164848 +enable_so_extsize_xfs_growfs_rt_51692 extsize xfs_growfs_rt 0 51692 &enable_so_virtio_gpu_object_create_fndecl_51692
164849 +enable_so_rtl8169_change_mtu_fndecl_51693 rtl8169_change_mtu fndecl 2 51693 NULL
164850 +enable_so_ms_os_descs_ext_prop_data_len_ffs_data_51698 ms_os_descs_ext_prop_data_len ffs_data 0 51698 NULL
164851 +enable_so_gfx_v7_0_get_csb_size_fndecl_51701 gfx_v7_0_get_csb_size fndecl 0 51701 NULL
164852 +enable_so_bNumMMCIEs_usb_wa_descriptor_51706 bNumMMCIEs usb_wa_descriptor 0 51706 NULL
164853 +enable_so_num_req_context_skd_device_51707 num_req_context skd_device 0 51707 NULL
164854 +enable_so_nilfs_write_end_fndecl_51713 nilfs_write_end fndecl 5 51713 NULL
164855 +enable_so_mwifiex_cmd_append_11n_tlv_fndecl_51715 mwifiex_cmd_append_11n_tlv fndecl 0 51715 NULL nohasharray
164856 +enable_so_ubifs_scan_fndecl_51715 ubifs_scan fndecl 3 51715 &enable_so_mwifiex_cmd_append_11n_tlv_fndecl_51715
164857 +enable_so_tt_stat_ofs_cyttsp4_sysinfo_ofs_51717 tt_stat_ofs cyttsp4_sysinfo_ofs 0 51717 NULL
164858 +enable_so_iscsit_dump_data_payload_fndecl_51720 iscsit_dump_data_payload fndecl 2 51720 NULL
164859 +enable_so_do_wp_page_fndecl_51721 do_wp_page fndecl 3 51721 NULL nohasharray
164860 +enable_so_nlimbs_gcry_mpi_51721 nlimbs gcry_mpi 0 51721 &enable_so_do_wp_page_fndecl_51721
164861 +enable_so_rx_ring_num_mlx4_en_priv_51723 rx_ring_num mlx4_en_priv 0 51723 NULL
164862 +enable_so_MaxChainDepth__MSG_IOC_FACTS_REPLY_51731 MaxChainDepth _MSG_IOC_FACTS_REPLY 0 51731 NULL
164863 +enable_so_xfs_da3_node_create_fndecl_51737 xfs_da3_node_create fndecl 2 51737 NULL
164864 +enable_so_bnx2_change_ring_size_fndecl_51748 bnx2_change_ring_size fndecl 3-2 51748 NULL
164865 +enable_so_sie_num_c67x00_sie_51754 sie_num c67x00_sie 0 51754 NULL
164866 +enable_so_sd_size_stat_data_v1_51758 sd_size stat_data_v1 0 51758 NULL
164867 +enable_so_find_next_usable_block_fndecl_51759 find_next_usable_block fndecl 0 51759 NULL
164868 +enable_so_rxbuf_size_alx_priv_51766 rxbuf_size alx_priv 0 51766 NULL nohasharray
164869 +enable_so_z_compress_fndecl_51766 z_compress fndecl 4-5 51766 &enable_so_rxbuf_size_alx_priv_51766
164870 +enable_so_num_var_ranges_vardecl_51769 num_var_ranges vardecl 0 51769 NULL
164871 +enable_so_ls_slot_dlm_ls_51774 ls_slot dlm_ls 0 51774 NULL
164872 +enable_so_rbio_add_io_page_fndecl_51775 rbio_add_io_page fndecl 5-6 51775 NULL
164873 +enable_so_s_blocksize_reiserfs_super_block_v1_51777 s_blocksize reiserfs_super_block_v1 0 51777 NULL
164874 +enable_so_SSID_size_atmel_private_51778 SSID_size atmel_private 0 51778 NULL
164875 +enable_so_snd_rme32_capture_getrate_fndecl_51779 snd_rme32_capture_getrate fndecl 0 51779 NULL
164876 +enable_so_btusb_qca_send_vendor_req_fndecl_51785 btusb_qca_send_vendor_req fndecl 4 51785 NULL
164877 +enable_so_pci_bar2_map_lpfc_hba_51792 pci_bar2_map lpfc_hba 0 51792 NULL
164878 +enable_so_ns_nextnum_the_nilfs_51797 ns_nextnum the_nilfs 0 51797 NULL
164879 +enable_so_uar_page_size_mlx4_caps_51798 uar_page_size mlx4_caps 0 51798 NULL
164880 +enable_so_iwl_dbgfs_thermal_throttling_read_fndecl_51816 iwl_dbgfs_thermal_throttling_read fndecl 3 51816 NULL
164881 +enable_so_size_nvkm_mem_51818 size nvkm_mem 0 51818 NULL nohasharray
164882 +enable_so_si476x_core_i2c_xfer_fndecl_51818 si476x_core_i2c_xfer fndecl 4 51818 &enable_so_size_nvkm_mem_51818
164883 +enable_so_val_ulist_node_51819 val ulist_node 0 51819 NULL
164884 +enable_so_bcache_device_init_fndecl_51822 bcache_device_init fndecl 2-3 51822 NULL
164885 +enable_so_isac_empty_fifo_fndecl_51832 isac_empty_fifo fndecl 2 51832 NULL
164886 +enable_so_udf_readpages_fndecl_51834 udf_readpages fndecl 4 51834 NULL
164887 +enable_so_hde_ast_vbios_enhtable_51835 hde ast_vbios_enhtable 0 51835 NULL
164888 +enable_so_do_pci_enable_device_fndecl_51841 do_pci_enable_device fndecl 0 51841 NULL
164889 +enable_so_nfs4_xattr_get_nfs4_acl_fndecl_51843 nfs4_xattr_get_nfs4_acl fndecl 4 51843 NULL
164890 +enable_so_mmio_len_mb862xxfb_par_51844 mmio_len mb862xxfb_par 0 51844 NULL
164891 +enable_so_xfs_qm_dqiter_bufs_fndecl_51846 xfs_qm_dqiter_bufs fndecl 3 51846 NULL
164892 +enable_so_max_bdi_bd_list_51847 max_bdi bd_list 0 51847 NULL
164893 +enable_so_free_size_jffs2_eraseblock_51848 free_size jffs2_eraseblock 0 51848 NULL
164894 +enable_so_xprt_rdma_max_inline_read_vardecl_transport_c_51852 xprt_rdma_max_inline_read vardecl_transport.c 0 51852 NULL
164895 +enable_so_ipv6_renew_option_fndecl_51854 ipv6_renew_option fndecl 3 51854 NULL
164896 +enable_so_nr_dma_pages_drm_savage_private_51862 nr_dma_pages drm_savage_private 0 51862 NULL
164897 +enable_so_fmr_message_size_vardecl_51869 fmr_message_size vardecl 0 51869 NULL
164898 +enable_so_TupleDataLen_tuple_t_51870 TupleDataLen tuple_t 0 51870 NULL
164899 +enable_so_efs_get_block_fndecl_51871 efs_get_block fndecl 2 51871 NULL
164900 +enable_so_MaxFrameSize_s_smt_os_51875 MaxFrameSize s_smt_os 0 51875 NULL
164901 +enable_so_vbi_height_em28xx_v4l2_51876 vbi_height em28xx_v4l2 0 51876 NULL
164902 +enable_so_lright_ext4_allocation_request_51877 lright ext4_allocation_request 0 51877 NULL
164903 +enable_so_direct_entry_fndecl_51879 direct_entry fndecl 3 51879 NULL
164904 +enable_so_compat_udp_setsockopt_fndecl_51883 compat_udp_setsockopt fndecl 5 51883 NULL
164905 +enable_so_skb_headroom_port100_51893 skb_headroom port100 0 51893 NULL nohasharray
164906 +enable_so___vlan_add_flags_fndecl_51893 __vlan_add_flags fndecl 2 51893 &enable_so_skb_headroom_port100_51893
164907 +enable_so_sys_select_fndecl_51896 sys_select fndecl 1 51896 NULL
164908 +enable_so_len_sdla_mem_51902 len sdla_mem 0 51902 NULL
164909 +enable_so_datainterval_audioformat_51903 datainterval audioformat 0 51903 NULL
164910 +enable_so_rx_buf_sz_yellowfin_private_51912 rx_buf_sz yellowfin_private 0 51912 NULL
164911 +enable_so_len_nfs3_diropargs_51913 len nfs3_diropargs 0 51913 NULL
164912 +enable_so_pgbase_nfs4_readlink_51921 pgbase nfs4_readlink 0 51921 NULL
164913 +enable_so_aead_sendmsg_fndecl_51926 aead_sendmsg fndecl 3 51926 NULL
164914 +enable_so_interfaces_fndecl_51928 interfaces fndecl 2 51928 NULL
164915 +enable_so_start_discovery_fndecl_51929 start_discovery fndecl 4 51929 NULL
164916 +enable_so_traverse_fndecl_51938 traverse fndecl 2 51938 NULL
164917 +enable_so_len_probe_resp_51942 len probe_resp 0 51942 NULL nohasharray
164918 +enable_so_probe_parport_driver_51942 probe parport_driver 0 51942 &enable_so_len_probe_resp_51942
164919 +enable_so_vram_vardecl_gxfb_core_c_51945 vram vardecl_gxfb_core.c 0 51945 NULL nohasharray
164920 +enable_so_tidcnt_ipath_tid_info_51945 tidcnt ipath_tid_info 0 51945 &enable_so_vram_vardecl_gxfb_core_c_51945
164921 +enable_so_nci_core_conn_create_fndecl_51946 nci_core_conn_create fndecl 4 51946 NULL
164922 +enable_so_rsi_mgmt_pkt_to_core_fndecl_51950 rsi_mgmt_pkt_to_core fndecl 3 51950 NULL
164923 +enable_so_size_mdp_superblock_s_51954 size mdp_superblock_s 0 51954 NULL
164924 +enable_so_max_channels_efx_nic_51955 max_channels efx_nic 0 51955 NULL nohasharray
164925 +enable_so___remaining_sg_mapping_iter_51955 __remaining sg_mapping_iter 0 51955 &enable_so_max_channels_efx_nic_51955 nohasharray
164926 +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
164927 +enable_so_num_mpt_mlx4_profile_51955 num_mpt mlx4_profile 0 51955 &enable_so_start_drm_i915_error_state_buf_51955
164928 +enable_so___blk_queue_init_tags_fndecl_51956 __blk_queue_init_tags fndecl 2 51956 NULL
164929 +enable_so_pipe_src_w_intel_crtc_state_51963 pipe_src_w intel_crtc_state 0 51963 NULL nohasharray
164930 +enable_so_num_eqs_mthca_limits_51963 num_eqs mthca_limits 0 51963 &enable_so_pipe_src_w_intel_crtc_state_51963
164931 +enable_so_bufsize_usbhid_device_51964 bufsize usbhid_device 0 51964 NULL nohasharray
164932 +enable_so_max_data_size_mpt3_ioctl_header_51964 max_data_size mpt3_ioctl_header 0 51964 &enable_so_bufsize_usbhid_device_51964
164933 +enable_so_dbgfs_state_fndecl_51965 dbgfs_state fndecl 3 51965 NULL
164934 +enable_so_pad_bits_regmap_config_51968 pad_bits regmap_config 0 51968 NULL nohasharray
164935 +enable_so_ieee80211_if_read_dtim_count_fndecl_51968 ieee80211_if_read_dtim_count fndecl 3 51968 &enable_so_pad_bits_regmap_config_51968
164936 +enable_so_req_lim_delta_srp_cred_req_51971 req_lim_delta srp_cred_req 0 51971 NULL
164937 +enable_so_asix_write_cmd_async_fndecl_51975 asix_write_cmd_async fndecl 5 51975 NULL
164938 +enable_so_pmcraid_copy_sglist_fndecl_51980 pmcraid_copy_sglist fndecl 3 51980 NULL
164939 +enable_so_pcnet32_realloc_tx_ring_fndecl_51983 pcnet32_realloc_tx_ring fndecl 3 51983 NULL
164940 +enable_so_bus_num_sm501_platdata_gpio_i2c_51989 bus_num sm501_platdata_gpio_i2c 0 51989 NULL
164941 +enable_so_f2fs_inode_by_name_fndecl_51991 f2fs_inode_by_name fndecl 0 51991 NULL
164942 +enable_so_ocfs2_which_cluster_group_fndecl_51998 ocfs2_which_cluster_group fndecl 0-2 51998 NULL
164943 +enable_so_mlx5_query_port_ptys_fndecl_52003 mlx5_query_port_ptys fndecl 3 52003 NULL
164944 +enable_so_kvm_write_guest_fndecl_52005 kvm_write_guest fndecl 2-4 52005 NULL
164945 +enable_so_s_last_psn_qib_qp_52008 s_last_psn qib_qp 0 52008 NULL nohasharray
164946 +enable_so_videobuf_waiton_fndecl_52008 videobuf_waiton fndecl 0 52008 &enable_so_s_last_psn_qib_qp_52008
164947 +enable_so_immediate_data_length_iscsi_build_list_52017 immediate_data_length iscsi_build_list 0 52017 NULL nohasharray
164948 +enable_so_size_fuse_write_out_52017 size fuse_write_out 0 52017 &enable_so_immediate_data_length_iscsi_build_list_52017
164949 +enable_so_batadv_iv_ogm_aggregate_new_fndecl_52022 batadv_iv_ogm_aggregate_new fndecl 2 52022 NULL
164950 +enable_so_seq_commit_fndecl_52023 seq_commit fndecl 2 52023 NULL
164951 +enable_so_write_segment_descriptor_fndecl_52025 write_segment_descriptor fndecl 2 52025 NULL
164952 +enable_so_dev_set_mtu_fndecl_52028 dev_set_mtu fndecl 2 52028 NULL
164953 +enable_so_blk_end_bidi_request_fndecl_52033 blk_end_bidi_request fndecl 3-4 52033 NULL
164954 +enable_so_kvm_arch_setup_async_pf_fndecl_52034 kvm_arch_setup_async_pf fndecl 3 52034 NULL
164955 +enable_so_c_height_g2d_frame_52036 c_height g2d_frame 0 52036 NULL
164956 +enable_so_ttm_dma_page_alloc_init_fndecl_52037 ttm_dma_page_alloc_init fndecl 2 52037 NULL nohasharray
164957 +enable_so_oobavail_mtd_info_52037 oobavail mtd_info 0 52037 &enable_so_ttm_dma_page_alloc_init_fndecl_52037
164958 +enable_so_gfs2_setattr_size_fndecl_52038 gfs2_setattr_size fndecl 2 52038 NULL nohasharray
164959 +enable_so_mapbase_priv_52038 mapbase priv 0 52038 &enable_so_gfs2_setattr_size_fndecl_52038
164960 +enable_so_xdr_shrink_pagelen_fndecl_52043 xdr_shrink_pagelen fndecl 2 52043 NULL nohasharray
164961 +enable_so_sysctl_sync_sock_size_netns_ipvs_52043 sysctl_sync_sock_size netns_ipvs 0 52043 &enable_so_xdr_shrink_pagelen_fndecl_52043
164962 +enable_so_num_controls_op_x86_model_spec_52044 num_controls op_x86_model_spec 0 52044 NULL
164963 +enable_so_btrfs_next_old_leaf_fndecl_52050 btrfs_next_old_leaf fndecl 0 52050 NULL nohasharray
164964 +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
164965 +enable_so_cxgb_change_mtu_fndecl_52055 cxgb_change_mtu fndecl 2 52055 NULL
164966 +enable_so__iwl_dbgfs_scan_ant_rxchain_write_fndecl_52060 _iwl_dbgfs_scan_ant_rxchain_write fndecl 3 52060 NULL
164967 +enable_so_event_rx_mismatch_read_fndecl_52069 event_rx_mismatch_read fndecl 3 52069 NULL
164968 +enable_so_lpfc_bsg_copy_data_fndecl_52084 lpfc_bsg_copy_data fndecl 0-3 52084 NULL
164969 +enable_so_iscsi_create_iface_fndecl_52093 iscsi_create_iface fndecl 5 52093 NULL
164970 +enable_so_dev_names_read_fndecl_52094 dev_names_read fndecl 3 52094 NULL
164971 +enable_so_assoc_rem_len_amp_ctrl_52099 assoc_rem_len amp_ctrl 0 52099 NULL
164972 +enable_so_drv_tx_rings_qlcnic_adapter_52102 drv_tx_rings qlcnic_adapter 0 52102 NULL
164973 +enable_so_btindex_jfs_inode_info_52105 btindex jfs_inode_info 0 52105 NULL nohasharray
164974 +enable_so_ceph_handle_auth_reply_fndecl_52105 ceph_handle_auth_reply fndecl 0 52105 &enable_so_btindex_jfs_inode_info_52105
164975 +enable_so_attr_bytes_osdv1_attributes_list_element_52106 attr_bytes osdv1_attributes_list_element 0 52106 NULL
164976 +enable_so_acl_pgbase_nfs_setaclargs_52107 acl_pgbase nfs_setaclargs 0 52107 NULL
164977 +enable_so_logical_offset_btrfs_ioctl_same_args_52108 logical_offset btrfs_ioctl_same_args 0 52108 NULL
164978 +enable_so_mmc_test_nonblock_transfer_fndecl_52112 mmc_test_nonblock_transfer fndecl 6-5-3 52112 NULL nohasharray
164979 +enable_so_MaxDevices__MSG_PORT_FACTS_REPLY_52112 MaxDevices _MSG_PORT_FACTS_REPLY 0 52112 &enable_so_mmc_test_nonblock_transfer_fndecl_52112
164980 +enable_so_mlx4_ib_db_map_user_fndecl_52114 mlx4_ib_db_map_user fndecl 2 52114 NULL
164981 +enable_so_nvkm_fb_create__fndecl_52118 nvkm_fb_create_ fndecl 4 52118 NULL
164982 +enable_so_logfs_new_meta_inode_fndecl_52119 logfs_new_meta_inode fndecl 2 52119 NULL
164983 +enable_so_max3421_transfer_out_done_fndecl_52121 max3421_transfer_out_done fndecl 0 52121 NULL nohasharray
164984 +enable_so_length_wsm_update_ie_52121 length wsm_update_ie 0 52121 &enable_so_max3421_transfer_out_done_fndecl_52121
164985 +enable_so_db_page_mthca_create_srq_52122 db_page mthca_create_srq 0 52122 NULL
164986 +enable_so_mtu_cmtp_session_52125 mtu cmtp_session 0 52125 NULL
164987 +enable_so_prepare_header95_fndecl_52127 prepare_header95 fndecl 0 52127 NULL
164988 +enable_so_iscsi_sw_tcp_recv_fndecl_52131 iscsi_sw_tcp_recv fndecl 3 52131 NULL
164989 +enable_so_s_inode_size_ext2_sb_info_52134 s_inode_size ext2_sb_info 0 52134 NULL
164990 +enable_so_copy_ctl_value_to_user_fndecl_52136 copy_ctl_value_to_user fndecl 4 52136 NULL
164991 +enable_so_xprt_rdma_inline_write_padding_vardecl_transport_c_52144 xprt_rdma_inline_write_padding vardecl_transport.c 0 52144 NULL nohasharray
164992 +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
164993 +enable_so_tcp_sendmsg_fndecl_52147 tcp_sendmsg fndecl 3 52147 NULL nohasharray
164994 +enable_so_tcp_update_reordering_fndecl_52147 tcp_update_reordering fndecl 2 52147 &enable_so_tcp_sendmsg_fndecl_52147
164995 +enable_so_snd_nm256_playback_copy_fndecl_52148 snd_nm256_playback_copy fndecl 5 52148 NULL
164996 +enable_so_set_le_ih_k_type_fndecl_52149 set_le_ih_k_type fndecl 2 52149 NULL
164997 +enable_so_il4965_rs_sta_dbgfs_scale_table_read_fndecl_52151 il4965_rs_sta_dbgfs_scale_table_read fndecl 3 52151 NULL
164998 +enable_so_pep_indicate_fndecl_52160 pep_indicate fndecl 5 52160 NULL
164999 +enable_so_update_extent_info_fndecl_52163 update_extent_info fndecl 2-3 52163 NULL
165000 +enable_so_indirect_sg_entries_vardecl_ib_srp_c_52165 indirect_sg_entries vardecl_ib_srp.c 0 52165 NULL
165001 +enable_so_mpx_mmap_fndecl_52167 mpx_mmap fndecl 0-1 52167 NULL nohasharray
165002 +enable_so_nvkm_object_create__fndecl_52167 nvkm_object_create_ fndecl 5 52167 &enable_so_mpx_mmap_fndecl_52167
165003 +enable_so_nf_ct_sack_adjust_fndecl_52168 nf_ct_sack_adjust fndecl 2 52168 NULL
165004 +enable_so_mtdchar_lseek_fndecl_52170 mtdchar_lseek fndecl 2 52170 NULL
165005 +enable_so_compat_sys_ptrace_fndecl_52176 compat_sys_ptrace fndecl 3 52176 NULL
165006 +enable_so_b_length_xfs_buf_52177 b_length xfs_buf 0 52177 NULL
165007 +enable_so_log_sq_size_mlx5e_params_52182 log_sq_size mlx5e_params 0 52182 NULL
165008 +enable_so_smb_send_kvec_fndecl_52185 smb_send_kvec fndecl 3 52185 NULL
165009 +enable_so_rd_allocate_sgl_table_fndecl_52188 rd_allocate_sgl_table fndecl 3 52188 NULL
165010 +enable_so_virtfn_add_bus_fndecl_52190 virtfn_add_bus fndecl 2 52190 NULL
165011 +enable_so_ext2_readpages_fndecl_52195 ext2_readpages fndecl 4 52195 NULL nohasharray
165012 +enable_so_regmap_calc_reg_len_fndecl_52195 regmap_calc_reg_len fndecl 0 52195 &enable_so_ext2_readpages_fndecl_52195
165013 +enable_so_qp_broker_alloc_fndecl_52197 qp_broker_alloc fndecl 5-6 52197 NULL nohasharray
165014 +enable_so_patch_regs_regmap_52197 patch_regs regmap 0 52197 &enable_so_qp_broker_alloc_fndecl_52197
165015 +enable_so_audit_init_entry_fndecl_52199 audit_init_entry fndecl 1 52199 NULL
165016 +enable_so_metapage_get_blocks_fndecl_52200 metapage_get_blocks fndecl 0-2 52200 NULL
165017 +enable_so_mmc_send_cxd_data_fndecl_52204 mmc_send_cxd_data fndecl 5 52204 NULL
165018 +enable_so_num_lro_rxd_netxen_adapter_52211 num_lro_rxd netxen_adapter 0 52211 NULL
165019 +enable_so_write_enabled_file_bool_fndecl_52213 write_enabled_file_bool fndecl 3 52213 NULL
165020 +enable_so_num_dtv_properties_52216 num dtv_properties 0 52216 NULL
165021 +enable_so_numlower_ovl_entry_52218 numlower ovl_entry 0 52218 NULL
165022 +enable_so_BlockSize_erase_unit_header_t_52231 BlockSize erase_unit_header_t 0 52231 NULL
165023 +enable_so_lpc_sch_get_io_fndecl_52232 lpc_sch_get_io fndecl 5 52232 NULL
165024 +enable_so_nfs3_proc_readlink_fndecl_52235 nfs3_proc_readlink fndecl 4-3 52235 NULL
165025 +enable_so_num_ports_mthca_limits_52246 num_ports mthca_limits 0 52246 NULL
165026 +enable_so_efs_iget_fndecl_52247 efs_iget fndecl 2 52247 NULL
165027 +enable_so_size_elf_note_info_52250 size elf_note_info 0 52250 NULL
165028 +enable_so_snd_hda_get_conn_list_fndecl_52255 snd_hda_get_conn_list fndecl 0 52255 NULL
165029 +enable_so_bufsize_brcmf_console_52266 bufsize brcmf_console 0 52266 NULL
165030 +enable_so_value_len_xattr_52269 value_len xattr 0 52269 NULL nohasharray
165031 +enable_so_pd_idx_stripe_head_52269 pd_idx stripe_head 0 52269 &enable_so_value_len_xattr_52269
165032 +enable_so_hdsp_set_rate_fndecl_52271 hdsp_set_rate fndecl 2 52271 NULL nohasharray
165033 +enable_so_hfsplus_ext_find_block_fndecl_52271 hfsplus_ext_find_block fndecl 0 52271 &enable_so_hdsp_set_rate_fndecl_52271 nohasharray
165034 +enable_so_req_depth_pvscsi_adapter_52271 req_depth pvscsi_adapter 0 52271 &enable_so_hfsplus_ext_find_block_fndecl_52271
165035 +enable_so_set_multcount_fndecl_52272 set_multcount fndecl 2 52272 NULL
165036 +enable_so_hlen_raw_frag_vec_52276 hlen raw_frag_vec 0 52276 NULL
165037 +enable_so_num_alt_cx231xx_audio_52283 num_alt cx231xx_audio 0 52283 NULL
165038 +enable_so_length_sigma_fw_chunk_52285 length sigma_fw_chunk 0 52285 NULL
165039 +enable_so_hpfs_alloc_dnode_fndecl_52288 hpfs_alloc_dnode fndecl 2 52288 NULL
165040 +enable_so_read_pointer_osst_buffer_52292 read_pointer osst_buffer 0 52292 NULL
165041 +enable_so_reserve_low_vardecl_setup_c_52293 reserve_low vardecl_setup.c 0 52293 NULL
165042 +enable_so_rts51x_get_max_lun_fndecl_52294 rts51x_get_max_lun fndecl 0 52294 NULL
165043 +enable_so_npage_vwork_52298 npage vwork 0 52298 NULL
165044 +enable_so_slot_legacy_probe_52300 slot legacy_probe 0 52300 NULL
165045 +enable_so_setup_items_for_insert_fndecl_52301 setup_items_for_insert fndecl 7 52301 NULL
165046 +enable_so_origin_size_thin_c_52302 origin_size thin_c 0 52302 NULL
165047 +enable_so_longest_match_fndecl_52304 longest_match fndecl 0 52304 NULL
165048 +enable_so_alloc_page_ext_fndecl_52310 alloc_page_ext fndecl 1 52310 NULL
165049 +enable_so_h_stop_saa7134_tvnorm_52311 h_stop saa7134_tvnorm 0 52311 NULL
165050 +enable_so_rss_table_entry_width_i40e_hw_capabilities_52312 rss_table_entry_width i40e_hw_capabilities 0 52312 NULL
165051 +enable_so_ep_out_kingsun_cb_52317 ep_out kingsun_cb 0 52317 NULL
165052 +enable_so_pglen_nfs4_readlink_52318 pglen nfs4_readlink 0 52318 NULL
165053 +enable_so_cmd_len_c2h_evt_hdr_52322 cmd_len c2h_evt_hdr 0 52322 NULL
165054 +enable_so_rx_filter_dup_filter_read_fndecl_52325 rx_filter_dup_filter_read fndecl 3 52325 NULL
165055 +enable_so_iwl_dbgfs_d3_sram_read_fndecl_52326 iwl_dbgfs_d3_sram_read fndecl 3 52326 NULL
165056 +enable_so_cxgbi_conn_init_pdu_fndecl_52327 cxgbi_conn_init_pdu fndecl 3 52327 NULL
165057 +enable_so_inline_rsize_rpcrdma_create_data_internal_52331 inline_rsize rpcrdma_create_data_internal 0 52331 NULL
165058 +enable_so_regmap_access_read_file_fndecl_52340 regmap_access_read_file fndecl 3 52340 NULL nohasharray
165059 +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
165060 +enable_so___do_replace_fndecl_52344 __do_replace fndecl 5 52344 NULL
165061 +enable_so_xpc_connect_fndecl_52346 xpc_connect fndecl 5 52346 NULL
165062 +enable_so_mac_header_sk_buff_52356 mac_header sk_buff 0 52356 NULL
165063 +enable_so__iwl_dbgfs_fw_restart_write_fndecl_52357 _iwl_dbgfs_fw_restart_write fndecl 3 52357 NULL
165064 +enable_so_pipe_src_h_intel_crtc_state_52358 pipe_src_h intel_crtc_state 0 52358 NULL nohasharray
165065 +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
165066 +enable_so_rtl_read_byte_fndecl_52358 rtl_read_byte fndecl 0 52358 &enable_so_blk_queue_max_hw_sectors_fndecl_52358
165067 +enable_so_nested_svm_map_fndecl_52359 nested_svm_map fndecl 2 52359 NULL
165068 +enable_so_nr_upid_52360 nr upid 0 52360 NULL
165069 +enable_so_lro_add_common_fndecl_52363 lro_add_common fndecl 4 52363 NULL
165070 +enable_so_r_cpos_ocfs2_refcount_rec_52365 r_cpos ocfs2_refcount_rec 0 52365 NULL nohasharray
165071 +enable_so_create_cq_user_fndecl_52365 create_cq_user fndecl 5 52365 &enable_so_r_cpos_ocfs2_refcount_rec_52365
165072 +enable_so_se_callback_netid_len_nfsd4_setclientid_52366 se_callback_netid_len nfsd4_setclientid 0 52366 NULL
165073 +enable_so_req_depth__MPT_ADAPTER_52375 req_depth _MPT_ADAPTER 0 52375 NULL nohasharray
165074 +enable_so_num_phys_mptsas_portinfo_52375 num_phys mptsas_portinfo 0 52375 &enable_so_req_depth__MPT_ADAPTER_52375
165075 +enable_so_rh_string_fndecl_52376 rh_string fndecl 0-4 52376 NULL nohasharray
165076 +enable_so_nrealreaders_vardecl_rcutorture_c_52376 nrealreaders vardecl_rcutorture.c 0 52376 &enable_so_rh_string_fndecl_52376
165077 +enable_so_bMaxBurst_usb_ss_ep_comp_descriptor_52382 bMaxBurst usb_ss_ep_comp_descriptor 0 52382 NULL
165078 +enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383 ath6kl_wmi_set_ie_cmd fndecl 6-2 52383 NULL nohasharray
165079 +enable_so_sg_pgoffset_sg_page_iter_52383 sg_pgoffset sg_page_iter 0 52383 &enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383
165080 +enable_so_raw_bufsize_edt_ft5x06_ts_data_52390 raw_bufsize edt_ft5x06_ts_data 0 52390 NULL
165081 +enable_so_ieee80211_if_read_power_mode_fndecl_52394 ieee80211_if_read_power_mode fndecl 3 52394 NULL
165082 +enable_so_jffs2_write_dirent_fndecl_52396 jffs2_write_dirent fndecl 5 52396 NULL
165083 +enable_so_u132_hcd_initial_input_recv_fndecl_52397 u132_hcd_initial_input_recv fndecl 4 52397 NULL
165084 +enable_so_length_TAG_TW_SG_Entry_52403 length TAG_TW_SG_Entry 0 52403 NULL
165085 +enable_so_eapol_len_wmi_eapol_rx_event_52408 eapol_len wmi_eapol_rx_event 0 52408 NULL
165086 +enable_so_command_fndecl_52411 command fndecl 0 52411 NULL
165087 +enable_so_wm8904_set_fll_fndecl_52413 wm8904_set_fll fndecl 4-5 52413 NULL
165088 +enable_so_agp_return_size_fndecl_52417 agp_return_size fndecl 0 52417 NULL nohasharray
165089 +enable_so_scsi_mode_select_fndecl_52417 scsi_mode_select fndecl 6 52417 &enable_so_agp_return_size_fndecl_52417
165090 +enable_so_sddr09_read_control_fndecl_52418 sddr09_read_control fndecl 3-5 52418 NULL
165091 +enable_so_group_ocfs2_new_group_input_52421 group ocfs2_new_group_input 0 52421 NULL
165092 +enable_so_rate_n_flags_il_ht_agg_52426 rate_n_flags il_ht_agg 0 52426 NULL
165093 +enable_so_move_vma_fndecl_52430 move_vma fndecl 4-5-2-3 52430 NULL
165094 +enable_so_zap_pte_range_fndecl_52434 zap_pte_range fndecl 4-0 52434 NULL
165095 +enable_so_nvkm_instobj_create__fndecl_52440 nvkm_instobj_create_ fndecl 4 52440 NULL
165096 +enable_so_min_scaled_width_bttv_crop_52442 min_scaled_width bttv_crop 0 52442 NULL
165097 +enable_so_max_tag_sym_driver_setup_52443 max_tag sym_driver_setup 0 52443 NULL
165098 +enable_so_dvb_max_pkt_size_isoc_em28xx_52444 dvb_max_pkt_size_isoc em28xx 0 52444 NULL nohasharray
165099 +enable_so_map_nth_dirent_fndecl_52444 map_nth_dirent fndecl 2 52444 &enable_so_dvb_max_pkt_size_isoc_em28xx_52444
165100 +enable_so_bulk_out_size_usb_serial_port_52448 bulk_out_size usb_serial_port 0 52448 NULL
165101 +enable_so_wl1251_spi_write_fndecl_52450 wl1251_spi_write fndecl 4 52450 NULL nohasharray
165102 +enable_so_corr_peb_count_ubi_device_52450 corr_peb_count ubi_device 0 52450 &enable_so_wl1251_spi_write_fndecl_52450
165103 +enable_so_can_queue_scsi_host_template_52454 can_queue scsi_host_template 0 52454 NULL
165104 +enable_so_end_bus_pci_mmcfg_region_52468 end_bus pci_mmcfg_region 0 52468 NULL
165105 +enable_so_nvi_vf_resources_52470 nvi vf_resources 0 52470 NULL
165106 +enable_so_sz_field_t_52472 sz field_t 0 52472 NULL
165107 +enable_so_security_inode_getsecurity_fndecl_52473 security_inode_getsecurity fndecl 0 52473 NULL
165108 +enable_so_metadata_snap_era_metadata_52475 metadata_snap era_metadata 0 52475 NULL
165109 +enable_so_ib_ucm_alloc_data_fndecl_52486 ib_ucm_alloc_data fndecl 3 52486 NULL
165110 +enable_so_eqpc_entry_sz_mthca_dev_lim_52498 eqpc_entry_sz mthca_dev_lim 0 52498 NULL
165111 +enable_so_s_clustersize_bits_ocfs2_super_52499 s_clustersize_bits ocfs2_super 0 52499 NULL
165112 +enable_so_tx_tx_data_programmed_read_fndecl_52500 tx_tx_data_programmed_read fndecl 3 52500 NULL
165113 +enable_so_ipath_portcnt_ipath_devdata_52503 ipath_portcnt ipath_devdata 0 52503 NULL nohasharray
165114 +enable_so_ControllerNumber_DAC960_Controller_52503 ControllerNumber DAC960_Controller 0 52503 &enable_so_ipath_portcnt_ipath_devdata_52503
165115 +enable_so_used_ubifs_wbuf_52504 used ubifs_wbuf 0 52504 NULL
165116 +enable_so_xfs_vm_kill_delalloc_range_fndecl_52505 xfs_vm_kill_delalloc_range fndecl 2 52505 NULL
165117 +enable_so_svc_setsockopt_fndecl_52511 svc_setsockopt fndecl 5 52511 NULL
165118 +enable_so_il4965_rs_get_lower_rate_fndecl_52514 il4965_rs_get_lower_rate fndecl 3 52514 NULL
165119 +enable_so_num_sprole_pws_gr_arg_52515 num_sprole_pws gr_arg 0 52515 NULL
165120 +enable_so_size_virtio_gpu_vbuffer_52521 size virtio_gpu_vbuffer 0 52521 NULL
165121 +enable_so_copy_batch_fndecl_52524 copy_batch fndecl 3-4 52524 NULL
165122 +enable_so_refcount_loc_ocfs2_move_extents_context_52526 refcount_loc ocfs2_move_extents_context 0 52526 NULL
165123 +enable_so_vm_cmdline_id_vardecl_virtio_mmio_c_52527 vm_cmdline_id vardecl_virtio_mmio.c 0 52527 NULL
165124 +enable_so_tas5086_register_size_fndecl_52528 tas5086_register_size fndecl 0 52528 NULL
165125 +enable_so_fps_solo_dev_52530 fps solo_dev 0 52530 NULL
165126 +enable_so_selinux_inode_notifysecctx_fndecl_52531 selinux_inode_notifysecctx fndecl 3 52531 NULL
165127 +enable_so_iov_offset_iov_iter_52535 iov_offset iov_iter 0 52535 NULL
165128 +enable_so_rx_buf_sz_hamachi_private_52536 rx_buf_sz hamachi_private 0 52536 NULL
165129 +enable_so_queue_pair_size_vmci_transport_52540 queue_pair_size vmci_transport 0 52540 NULL
165130 +enable_so_packet_sendmsg_spkt_fndecl_52542 packet_sendmsg_spkt fndecl 3 52542 NULL
165131 +enable_so_rdb_shift_mthca_qp_table_52547 rdb_shift mthca_qp_table 0 52547 NULL
165132 +enable_so_dccp_insert_option_fndecl_52554 dccp_insert_option fndecl 4 52554 NULL
165133 +enable_so_ovfx2_i2c_r_fndecl_52555 ovfx2_i2c_r fndecl 0 52555 NULL
165134 +enable_so_write_leb_fndecl_52558 write_leb fndecl 5 52558 NULL
165135 +enable_so_num_mtt_mlx4_profile_52565 num_mtt mlx4_profile 0 52565 NULL
165136 +enable_so_data_size_binder_transaction_data_52567 data_size binder_transaction_data 0 52567 NULL
165137 +enable_so_height_intel_rotation_info_52570 height intel_rotation_info 0 52570 NULL nohasharray
165138 +enable_so_nents_isert_data_buf_52570 nents isert_data_buf 0 52570 &enable_so_height_intel_rotation_info_52570
165139 +enable_so_end_logsuper_52574 end logsuper 0 52574 NULL
165140 +enable_so_amdgpu_ttm_tt_set_userptr_fndecl_52575 amdgpu_ttm_tt_set_userptr fndecl 2 52575 NULL
165141 +enable_so_device_create_groups_vargs_fndecl_52576 device_create_groups_vargs fndecl 3 52576 NULL nohasharray
165142 +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
165143 +enable_so___mincore_unmapped_range_fndecl_52595 __mincore_unmapped_range fndecl 1 52595 NULL
165144 +enable_so_xfs_shift_file_space_fndecl_52596 xfs_shift_file_space fndecl 2-3 52596 NULL
165145 +enable_so_cached_dev_init_fndecl_52600 cached_dev_init fndecl 2 52600 NULL
165146 +enable_so_ext4_da_write_end_fndecl_52605 ext4_da_write_end fndecl 5-3 52605 NULL
165147 +enable_so_length_usbdevfs_iso_packet_desc_52610 length usbdevfs_iso_packet_desc 0 52610 NULL
165148 +enable_so_ondemand_readahead_fndecl_52612 ondemand_readahead fndecl 5 52612 NULL
165149 +enable_so_datalen_tcf_ematch_52613 datalen tcf_ematch 0 52613 NULL
165150 +enable_so_wl1251_spi_read_fndecl_52615 wl1251_spi_read fndecl 4 52615 NULL
165151 +enable_so___logfs_write_je_fndecl_52617 __logfs_write_je fndecl 4 52617 NULL nohasharray
165152 +enable_so_max_sge_ib_device_attr_52617 max_sge ib_device_attr 0 52617 &enable_so___logfs_write_je_fndecl_52617
165153 +enable_so__set_error_resid_fndecl_52623 _set_error_resid fndecl 3 52623 NULL
165154 +enable_so_drbd_new_dev_size_fndecl_52629 drbd_new_dev_size fndecl 0-3 52629 NULL
165155 +enable_so_auok190xfb_write_fndecl_52634 auok190xfb_write fndecl 3 52634 NULL
165156 +enable_so_setxattr_fndecl_52637 setxattr fndecl 4 52637 NULL nohasharray
165157 +enable_so_burst_len_qcaspi_52637 burst_len qcaspi 0 52637 &enable_so_setxattr_fndecl_52637
165158 +enable_so___do_fault_fndecl_52642 __do_fault fndecl 3 52642 NULL
165159 +enable_so_page_count_drm_device_dma_52645 page_count drm_device_dma 0 52645 NULL
165160 +enable_so_num_txq_per_tx_bnad_52646 num_txq_per_tx bnad 0 52646 NULL
165161 +enable_so_bop_insert_nilfs_bmap_operations_52653 bop_insert nilfs_bmap_operations 0 52653 NULL
165162 +enable_so_qp_broker_create_fndecl_52654 qp_broker_create fndecl 5-6 52654 NULL
165163 +enable_so_extra_bytes_sym_ccb_52656 extra_bytes sym_ccb 0 52656 NULL
165164 +enable_so_block_size_ms_boot_attr_info_52659 block_size ms_boot_attr_info 0 52659 NULL
165165 +enable_so_ieee80211_chsw_switch_vifs_fndecl_52661 ieee80211_chsw_switch_vifs fndecl 2 52661 NULL
165166 +enable_so_ec_i2c_xfer_fndecl_52662 ec_i2c_xfer fndecl 3 52662 NULL
165167 +enable_so_size_drm_exynos_g2d_userptr_52663 size drm_exynos_g2d_userptr 0 52663 NULL
165168 +enable_so_snd_hdac_get_sub_nodes_fndecl_52668 snd_hdac_get_sub_nodes fndecl 0 52668 NULL
165169 +enable_so_vt_ast_vbios_enhtable_52669 vt ast_vbios_enhtable 0 52669 NULL nohasharray
165170 +enable_so_command_file_read_fndecl_52669 command_file_read fndecl 3 52669 &enable_so_vt_ast_vbios_enhtable_52669
165171 +enable_so_retry_long_wiphy_52670 retry_long wiphy 0 52670 NULL
165172 +enable_so_vmap_batch_fndecl_52675 vmap_batch fndecl 2-3 52675 NULL
165173 +enable_so_parse_command_fndecl_52676 parse_command fndecl 2 52676 NULL
165174 +enable_so_pcm512x_sck_max_fndecl_52677 pcm512x_sck_max fndecl 0 52677 NULL nohasharray
165175 +enable_so_SYSC_setxattr_fndecl_52677 SYSC_setxattr fndecl 4 52677 &enable_so_pcm512x_sck_max_fndecl_52677
165176 +enable_so_drm_mode_create_rotation_property_fndecl_52681 drm_mode_create_rotation_property fndecl 2 52681 NULL
165177 +enable_so_length_oz_elt_52682 length oz_elt 0 52682 NULL
165178 +enable_so_num_snd_urbs_vardecl_usbatm_c_52685 num_snd_urbs vardecl_usbatm.c 0 52685 NULL
165179 +enable_so_btrfs_double_extent_unlock_fndecl_52687 btrfs_double_extent_unlock fndecl 2-4-5 52687 NULL
165180 +enable_so_fpHeight_nvidia_par_52691 fpHeight nvidia_par 0 52691 NULL nohasharray
165181 +enable_so_urb_done_max3421_hcd_52691 urb_done max3421_hcd 0 52691 &enable_so_fpHeight_nvidia_par_52691
165182 +enable_so_max_data_link_payload_nfc_hci_dev_52699 max_data_link_payload nfc_hci_dev 0 52699 NULL
165183 +enable_so__iwl_dbgfs_bcast_filters_macs_write_fndecl_52702 _iwl_dbgfs_bcast_filters_macs_write fndecl 3 52702 NULL
165184 +enable_so_count_vfio_pci_hot_reset_52708 count vfio_pci_hot_reset 0 52708 NULL
165185 +enable_so_gen_ie_buf_len_mwifiex_private_52710 gen_ie_buf_len mwifiex_private 0 52710 NULL
165186 +enable_so_s_je_fill_logfs_super_52713 s_je_fill logfs_super 0 52713 NULL
165187 +enable_so_videomemorysize_vardecl_vfb_c_52716 videomemorysize vardecl_vfb.c 0 52716 NULL nohasharray
165188 +enable_so_wptr_old_radeon_ring_52716 wptr_old radeon_ring 0 52716 &enable_so_videomemorysize_vardecl_vfb_c_52716
165189 +enable_so_pipeline_cs_rx_packet_in_read_fndecl_52722 pipeline_cs_rx_packet_in_read fndecl 3 52722 NULL
165190 +enable_so_einj_error_inject_fndecl_52724 einj_error_inject fndecl 4-3 52724 NULL
165191 +enable_so_cifs_min_small_vardecl_52732 cifs_min_small vardecl 0 52732 NULL
165192 +enable_so_vmw_framebuffer_dmabuf_dirty_fndecl_52750 vmw_framebuffer_dmabuf_dirty fndecl 6 52750 NULL
165193 +enable_so_dd_fcrport_size_fc_function_template_52753 dd_fcrport_size fc_function_template 0 52753 NULL
165194 +enable_so_SyS_mbind_fndecl_52757 SyS_mbind fndecl 5 52757 NULL
165195 +enable_so_num_btns_cyttsp4_sysinfo_ofs_52758 num_btns cyttsp4_sysinfo_ofs 0 52758 NULL
165196 +enable_so_usbhs_pkt_push_fndecl_52759 usbhs_pkt_push fndecl 5 52759 NULL nohasharray
165197 +enable_so_dr_blkno_ocfs2_dx_root_block_52759 dr_blkno ocfs2_dx_root_block 0 52759 &enable_so_usbhs_pkt_push_fndecl_52759
165198 +enable_so_playback_frlog_rme96_52763 playback_frlog rme96 0 52763 NULL
165199 +enable_so_height_drm_radeon_texture_52764 height drm_radeon_texture 0 52764 NULL
165200 +enable_so_wIDIbytesPerSector_ms_bootblock_idi_52770 wIDIbytesPerSector ms_bootblock_idi 0 52770 NULL
165201 +enable_so_size_drm_i915_gem_create_52771 size drm_i915_gem_create 0 52771 NULL
165202 +enable_so_maxBuf_TCP_Server_Info_52774 maxBuf TCP_Server_Info 0 52774 NULL nohasharray
165203 +enable_so_regmap_map_read_file_fndecl_52774 regmap_map_read_file fndecl 3 52774 &enable_so_maxBuf_TCP_Server_Info_52774
165204 +enable_so_leaf_paste_entries_fndecl_52780 leaf_paste_entries fndecl 4-7 52780 NULL
165205 +enable_so_SYSC_get_mempolicy_fndecl_52787 SYSC_get_mempolicy fndecl 3 52787 NULL
165206 +enable_so_setup_transfer_spi_bitbang_52790 setup_transfer spi_bitbang 0 52790 NULL
165207 +enable_so_qxl_allocate_chunk_fndecl_52791 qxl_allocate_chunk fndecl 4 52791 NULL nohasharray
165208 +enable_so_tcp_mss_split_point_fndecl_52791 tcp_mss_split_point fndecl 0 52791 &enable_so_qxl_allocate_chunk_fndecl_52791
165209 +enable_so_batadv_get_vid_fndecl_52792 batadv_get_vid fndecl 2 52792 NULL nohasharray
165210 +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
165211 +enable_so___wa_seg_calculate_isoc_frame_count_fndecl_52795 __wa_seg_calculate_isoc_frame_count fndecl 0 52795 NULL
165212 +enable_so_buffer_size_vardecl_ethoc_c_52796 buffer_size vardecl_ethoc.c 0 52796 NULL
165213 +enable_so_payload_len_bfa_bsg_data_52800 payload_len bfa_bsg_data 0 52800 NULL
165214 +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
165215 +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
165216 +enable_so_ule_sndu_type_dvb_net_priv_52811 ule_sndu_type dvb_net_priv 0 52811 NULL
165217 +enable_so_mmc_test_map_sg_fndecl_52812 mmc_test_map_sg fndecl 6-5-8-2 52812 NULL
165218 +enable_so_prev_rs_il3945_rate_info_52819 prev_rs il3945_rate_info 0 52819 NULL
165219 +enable_so_ata_scsi_change_queue_depth_fndecl_52821 ata_scsi_change_queue_depth fndecl 2 52821 NULL
165220 +enable_so_retry_short_wiphy_52822 retry_short wiphy 0 52822 NULL nohasharray
165221 +enable_so_brcmf_sdiod_recv_chain_fndecl_52822 brcmf_sdiod_recv_chain fndecl 3 52822 &enable_so_retry_short_wiphy_52822
165222 +enable_so_wiphy_new_nm_fndecl_52833 wiphy_new_nm fndecl 2 52833 NULL
165223 +enable_so_xdr_encode_array2_fndecl_52834 xdr_encode_array2 fndecl 0-2 52834 NULL
165224 +enable_so_ocfs2_control_cfu_fndecl_52837 ocfs2_control_cfu fndecl 2 52837 NULL
165225 +enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838 ocfs2_duplicate_clusters_by_jbd fndecl 4-5 52838 NULL nohasharray
165226 +enable_so_xfs_read_agf_fndecl_52838 xfs_read_agf fndecl 3 52838 &enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838
165227 +enable_so_ipath_cdev_init_fndecl_52843 ipath_cdev_init fndecl 1 52843 NULL
165228 +enable_so_ext2_fsync_fndecl_52850 ext2_fsync fndecl 2-3 52850 NULL
165229 +enable_so_s_hdrwords_ipath_qp_52860 s_hdrwords ipath_qp 0 52860 NULL
165230 +enable_so_netxen_validate_ringparam_fndecl_52863 netxen_validate_ringparam fndecl 0 52863 NULL
165231 +enable_so_wqe_shift_mlx5_ib_wq_52867 wqe_shift mlx5_ib_wq 0 52867 NULL nohasharray
165232 +enable_so_mlx4_load_one_fndecl_52867 mlx4_load_one fndecl 3 52867 &enable_so_wqe_shift_mlx5_ib_wq_52867
165233 +enable_so_video_ram_radeonfb_info_52868 video_ram radeonfb_info 0 52868 NULL
165234 +enable_so_ddata_ofsh_cyttsp4_sysinfo_data_52870 ddata_ofsh cyttsp4_sysinfo_data 0 52870 NULL
165235 +enable_so_scsi_debug_sector_size_vardecl_scsi_debug_c_52879 scsi_debug_sector_size vardecl_scsi_debug.c 0 52879 NULL
165236 +enable_so_offset_pipe_buffer_52880 offset pipe_buffer 0 52880 NULL
165237 +enable_so_address_length_acpi_resource_memory24_52885 address_length acpi_resource_memory24 0 52885 NULL nohasharray
165238 +enable_so_dccp_setsockopt_cscov_fndecl_52885 dccp_setsockopt_cscov fndecl 2-0 52885 &enable_so_address_length_acpi_resource_memory24_52885
165239 +enable_so_nvram_len_nvram_parser_52887 nvram_len nvram_parser 0 52887 NULL
165240 +enable_so_buffer_size_vardecl_ir_usb_c_52893 buffer_size vardecl_ir-usb.c 0 52893 NULL
165241 +enable_so_ino_jffs2_full_dirent_52898 ino jffs2_full_dirent 0 52898 NULL nohasharray
165242 +enable_so_max_pde_used_amdgpu_vm_52898 max_pde_used amdgpu_vm 0 52898 &enable_so_ino_jffs2_full_dirent_52898
165243 +enable_so_ocrdma_alloc_frmr_page_list_fndecl_52900 ocrdma_alloc_frmr_page_list fndecl 2 52900 NULL
165244 +enable_so_data_len_hermes_rx_descriptor_52909 data_len hermes_rx_descriptor 0 52909 NULL
165245 +enable_so_rx_decrypt_key_not_found_read_fndecl_52911 rx_decrypt_key_not_found_read fndecl 3 52911 NULL
165246 +enable_so_buf_width_s5p_mfc_ctx_52912 buf_width s5p_mfc_ctx 0 52912 NULL
165247 +enable_so_il4965_rs_sta_dbgfs_rate_scale_data_read_fndecl_52915 il4965_rs_sta_dbgfs_rate_scale_data_read fndecl 3 52915 NULL
165248 +enable_so_dir_seek_data_fndecl_52916 dir_seek_data fndecl 2-0 52916 NULL nohasharray
165249 +enable_so_of_alias_add_fndecl_52916 of_alias_add fndecl 3 52916 &enable_so_dir_seek_data_fndecl_52916 nohasharray
165250 +enable_so_cqc_entry_sz_mlx4_dev_cap_52916 cqc_entry_sz mlx4_dev_cap 0 52916 &enable_so_of_alias_add_fndecl_52916
165251 +enable_so_num_tx_queues_e1000_adapter_52922 num_tx_queues e1000_adapter 0 52922 NULL
165252 +enable_so_smk_read_logging_fndecl_52927 smk_read_logging fndecl 3 52927 NULL
165253 +enable_so_swd_swregs_state_52928 swd swregs_state 0 52928 NULL
165254 +enable_so_count_i40e_ring_52936 count i40e_ring 0 52936 NULL nohasharray
165255 +enable_so_max_write_shift_ubifs_info_52936 max_write_shift ubifs_info 0 52936 &enable_so_count_i40e_ring_52936 nohasharray
165256 +enable_so_o2hb_debug_read_fndecl_52936 o2hb_debug_read fndecl 3 52936 &enable_so_max_write_shift_ubifs_info_52936
165257 +enable_so_si2165_write_fndecl_52941 si2165_write fndecl 4 52941 NULL
165258 +enable_so_rules_count_canid_match_52943 rules_count canid_match 0 52943 NULL nohasharray
165259 +enable_so_num_rx_ethoc_52943 num_rx ethoc 0 52943 &enable_so_rules_count_canid_match_52943
165260 +enable_so_pipe_urb_52947 pipe urb 0 52947 NULL
165261 +enable_so_minor_drbd_genlmsghdr_52949 minor drbd_genlmsghdr 0 52949 NULL
165262 +enable_so_position_jfs_dirent_52952 position jfs_dirent 0 52952 NULL
165263 +enable_so_trigger_level_eg20t_port_52953 trigger_level eg20t_port 0 52953 NULL
165264 +enable_so_i2c_read_demod_bytes_fndecl_52958 i2c_read_demod_bytes fndecl 4 52958 NULL
165265 +enable_so_bnx2fc_get_paged_crc_eof_fndecl_52960 bnx2fc_get_paged_crc_eof fndecl 2 52960 NULL
165266 +enable_so_fw_size_pvr2_hdw_52961 fw_size pvr2_hdw 0 52961 NULL
165267 +enable_so_rsp_size_srpt_rdma_ch_52963 rsp_size srpt_rdma_ch 0 52963 NULL
165268 +enable_so_musb_h_ep0_continue_fndecl_52966 musb_h_ep0_continue fndecl 2 52966 NULL
165269 +enable_so_sys_setxattr_fndecl_52971 sys_setxattr fndecl 4 52971 NULL
165270 +enable_so_dma_start_lo_rx_buf_desc_52972 dma_start_lo rx_buf_desc 0 52972 NULL
165271 +enable_so_dataOutSize_mpt_ioctl_command_52974 dataOutSize mpt_ioctl_command 0 52974 NULL
165272 +enable_so_dvb_net_sec_fndecl_52975 dvb_net_sec fndecl 3 52975 NULL nohasharray
165273 +enable_so_xdr_truncate_encode_fndecl_52975 xdr_truncate_encode fndecl 2 52975 &enable_so_dvb_net_sec_fndecl_52975
165274 +enable_so_scatter_n_efx_rx_queue_52988 scatter_n efx_rx_queue 0 52988 NULL
165275 +enable_so_xfs_dir2_block_to_sf_fndecl_52991 xfs_dir2_block_to_sf fndecl 3 52991 NULL
165276 +enable_so_max_rx_agg_size_iwl_cfg_52997 max_rx_agg_size iwl_cfg 0 52997 NULL
165277 +enable_so_hidp_output_report_fndecl_53002 hidp_output_report fndecl 3 53002 NULL
165278 +enable_so_actual_length_urb_53003 actual_length urb 0 53003 NULL
165279 +enable_so___shadow_block_fndecl_53011 __shadow_block fndecl 2 53011 NULL nohasharray
165280 +enable_so_max_mlx4_srq_53011 max mlx4_srq 0 53011 &enable_so___shadow_block_fndecl_53011
165281 +enable_so_gfs2_direct_IO_fndecl_53014 gfs2_direct_IO fndecl 3 53014 NULL
165282 +enable_so_BC_Read_Reg_IsdnCardState_53020 BC_Read_Reg IsdnCardState 0 53020 NULL
165283 +enable_so_bytesused_ivtv_buffer_53021 bytesused ivtv_buffer 0 53021 NULL
165284 +enable_so_tty_insert_flip_string_fixed_flag_fndecl_53031 tty_insert_flip_string_fixed_flag fndecl 4-0 53031 NULL
165285 +enable_so___vlan_del_fndecl_53037 __vlan_del fndecl 2 53037 NULL
165286 +enable_so_xfs_filestream_pick_ag_fndecl_53040 xfs_filestream_pick_ag fndecl 2 53040 NULL nohasharray
165287 +enable_so_nports0_adapter_info_53040 nports0 adapter_info 0 53040 &enable_so_xfs_filestream_pick_ag_fndecl_53040
165288 +enable_so_xmit_fifo_size_serial_struct_53048 xmit_fifo_size serial_struct 0 53048 NULL
165289 +enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049 fcoe_alloc_paged_crc_eof fndecl 2 53049 NULL nohasharray
165290 +enable_so_sys_getxattr_fndecl_53049 sys_getxattr fndecl 4 53049 &enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049
165291 +enable_so_rqsize_hwif_s_53050 rqsize hwif_s 0 53050 NULL
165292 +enable_so_rx_pad_len_hif_device_usb_53051 rx_pad_len hif_device_usb 0 53051 NULL
165293 +enable_so_dm_bm_write_lock_zero_fndecl_53053 dm_bm_write_lock_zero fndecl 2 53053 NULL nohasharray
165294 +enable_so_acpi_os_allocate_zeroed_fndecl_53053 acpi_os_allocate_zeroed fndecl 1 53053 &enable_so_dm_bm_write_lock_zero_fndecl_53053
165295 +enable_so_cols_cros_ec_keyb_53054 cols cros_ec_keyb 0 53054 NULL
165296 +enable_so_m_len_ext4_map_blocks_53056 m_len ext4_map_blocks 0 53056 NULL
165297 +enable_so_s_inode_size_nilfs_super_block_53064 s_inode_size nilfs_super_block 0 53064 NULL
165298 +enable_so_ext4_write_end_fndecl_53067 ext4_write_end fndecl 5-3 53067 NULL
165299 +enable_so_get_pdev_same_bus_fndecl_53069 get_pdev_same_bus fndecl 2 53069 NULL
165300 +enable_so_kvm_vcpu_write_guest_page_fndecl_53070 kvm_vcpu_write_guest_page fndecl 2-5 53070 NULL
165301 +enable_so_rcvegrcnt_qib_chip_specific_53071 rcvegrcnt qib_chip_specific 0 53071 NULL
165302 +enable_so_omap_hwmod_mux_init_fndecl_53072 omap_hwmod_mux_init fndecl 2 53072 NULL
165303 +enable_so_fru_alloc_fndecl_53073 fru_alloc fndecl 1 53073 NULL
165304 +enable_so_get_rx_frame_len_sxgbe_desc_ops_53074 get_rx_frame_len sxgbe_desc_ops 0 53074 NULL
165305 +enable_so_wMTU_usb_cdc_mbim_extended_desc_53075 wMTU usb_cdc_mbim_extended_desc 0 53075 NULL nohasharray
165306 +enable_so_tty_audit_log_fndecl_53075 tty_audit_log fndecl 5 53075 &enable_so_wMTU_usb_cdc_mbim_extended_desc_53075
165307 +enable_so_vmw_shader_alloc_fndecl_53077 vmw_shader_alloc fndecl 3 53077 NULL
165308 +enable_so_tcp_established_options_fndecl_53081 tcp_established_options fndecl 0 53081 NULL nohasharray
165309 +enable_so_map_swap_entry_fndecl_53081 map_swap_entry fndecl 0 53081 &enable_so_tcp_established_options_fndecl_53081 nohasharray
165310 +enable_so_request_len_sg_io_v4_53081 request_len sg_io_v4 0 53081 &enable_so_map_swap_entry_fndecl_53081 nohasharray
165311 +enable_so_ravb_hwtstamp_get_fndecl_53081 ravb_hwtstamp_get fndecl 0 53081 &enable_so_request_len_sg_io_v4_53081
165312 +enable_so___hci_cmd_sync_ev_fndecl_53090 __hci_cmd_sync_ev fndecl 3 53090 NULL nohasharray
165313 +enable_so_kmem_realloc_fndecl_53090 kmem_realloc fndecl 2 53090 &enable_so___hci_cmd_sync_ev_fndecl_53090
165314 +enable_so_ext4_itable_unused_set_fndecl_53091 ext4_itable_unused_set fndecl 3 53091 NULL
165315 +enable_so_ntfs_dir_fsync_fndecl_53093 ntfs_dir_fsync fndecl 2-3 53093 NULL
165316 +enable_so_size_fuse_attr_53098 size fuse_attr 0 53098 NULL
165317 +enable_so_s_blocksize_minix3_super_block_53099 s_blocksize minix3_super_block 0 53099 NULL
165318 +enable_so_brcmf_fw_nvram_strip_fndecl_53102 brcmf_fw_nvram_strip fndecl 2 53102 NULL
165319 +enable_so_prepare_header80_fndecl_53108 prepare_header80 fndecl 0 53108 NULL
165320 +enable_so_count_vbi_info_53110 count vbi_info 0 53110 NULL
165321 +enable_so_fb_max_width_vmw_private_53114 fb_max_width vmw_private 0 53114 NULL
165322 +enable_so_reserve_region_with_split_fndecl_53115 reserve_region_with_split fndecl 3-2 53115 NULL
165323 +enable_so_logi_dj_recv_forward_hidpp_fndecl_53117 logi_dj_recv_forward_hidpp fndecl 3 53117 NULL
165324 +enable_so_xz_dec_test_write_fndecl_53124 xz_dec_test_write fndecl 3 53124 NULL
165325 +enable_so_real_vram_size_radeon_mc_53132 real_vram_size radeon_mc 0 53132 NULL
165326 +enable_so_fault_inject_read_fndecl_53133 fault_inject_read fndecl 3 53133 NULL
165327 +enable_so_data_dma_td_53137 data_dma td 0 53137 NULL
165328 +enable_so_log_rq_size_mlx5e_params_53140 log_rq_size mlx5e_params 0 53140 NULL
165329 +enable_so_mmc_spi_readbytes_fndecl_53146 mmc_spi_readbytes fndecl 2 53146 NULL
165330 +enable_so_zlib_tr_stored_block_fndecl_53147 zlib_tr_stored_block fndecl 3 53147 NULL
165331 +enable_so_bdev_writeseg_fndecl_53148 bdev_writeseg fndecl 2-3 53148 NULL nohasharray
165332 +enable_so_vmalloc_32_user_fndecl_53148 vmalloc_32_user fndecl 1 53148 &enable_so_bdev_writeseg_fndecl_53148
165333 +enable_so_private_data_len_ib_cm_sidr_req_param_53150 private_data_len ib_cm_sidr_req_param 0 53150 NULL
165334 +enable_so_xoffset_fb_var_screeninfo_53153 xoffset fb_var_screeninfo 0 53153 NULL
165335 +enable_so_fat_cont_expand_fndecl_53155 fat_cont_expand fndecl 2 53155 NULL
165336 +enable_so_sb_blocksize_xfs_sb_53160 sb_blocksize xfs_sb 0 53160 NULL
165337 +enable_so_lpfc_debugfs_max_disc_trc_vardecl_lpfc_debugfs_c_53169 lpfc_debugfs_max_disc_trc vardecl_lpfc_debugfs.c 0 53169 NULL
165338 +enable_so_uhci_debug_lseek_fndecl_53171 uhci_debug_lseek fndecl 2 53171 NULL
165339 +enable_so_tegra_spi_start_tx_dma_fndecl_53177 tegra_spi_start_tx_dma fndecl 0-2 53177 NULL
165340 +enable_so_offset_page_frag_53180 offset page_frag 0 53180 NULL
165341 +enable_so_tpm_devt_vardecl_53182 tpm_devt vardecl 0 53182 NULL
165342 +enable_so_xhci_alloc_streams_fndecl_53185 xhci_alloc_streams fndecl 5 53185 NULL
165343 +enable_so_rate_min_snd_soc_pcm_stream_53186 rate_min snd_soc_pcm_stream 0 53186 NULL
165344 +enable_so_len_nxtfrm_brcmf_sdio_hdrinfo_53193 len_nxtfrm brcmf_sdio_hdrinfo 0 53193 NULL
165345 +enable_so_mpage_process_page_bufs_fndecl_53197 mpage_process_page_bufs fndecl 4 53197 NULL
165346 +enable_so_tcp_synack_options_fndecl_53200 tcp_synack_options fndecl 0 53200 NULL
165347 +enable_so_minor_start_tty_driver_53214 minor_start tty_driver 0 53214 NULL
165348 +enable_so_write_iter_file_operations_53218 write_iter file_operations 0 53218 NULL
165349 +enable_so_SYSC_mbind_fndecl_53221 SYSC_mbind fndecl 5 53221 NULL
165350 +enable_so_udf_block_map_fndecl_53224 udf_block_map fndecl 0 53224 NULL nohasharray
165351 +enable_so_aio_run_iocb_fndecl_53224 aio_run_iocb fndecl 4 53224 &enable_so_udf_block_map_fndecl_53224
165352 +enable_so_meta_slots_used_xenvif_rx_cb_53230 meta_slots_used xenvif_rx_cb 0 53230 NULL
165353 +enable_so_bnx2x_sriov_configure_fndecl_53235 bnx2x_sriov_configure fndecl 2 53235 NULL nohasharray
165354 +enable_so_debugfs_reg_len_regmap_53235 debugfs_reg_len regmap 0 53235 &enable_so_bnx2x_sriov_configure_fndecl_53235
165355 +enable_so_mlx4_get_mgm_entry_size_fndecl_53236 mlx4_get_mgm_entry_size fndecl 0 53236 NULL
165356 +enable_so_svcxdr_init_encode_from_buffer_fndecl_53239 svcxdr_init_encode_from_buffer fndecl 4 53239 NULL nohasharray
165357 +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
165358 +enable_so_kvm_read_guest_page_mmu_fndecl_53240 kvm_read_guest_page_mmu fndecl 6 53240 NULL
165359 +enable_so_pnw_serial_setup_fndecl_53243 pnw_serial_setup fndecl 4 53243 NULL
165360 +enable_so_sys_sync_file_range2_fndecl_53247 sys_sync_file_range2 fndecl 3-4 53247 NULL
165361 +enable_so_vga_arb_write_fndecl_53251 vga_arb_write fndecl 3 53251 NULL
165362 +enable_so_xpc_nasid_mask_nlongs_vardecl_53252 xpc_nasid_mask_nlongs vardecl 0 53252 NULL
165363 +enable_so_simple_xattr_alloc_fndecl_53253 simple_xattr_alloc fndecl 2 53253 NULL
165364 +enable_so_rawv6_geticmpfilter_fndecl_53256 rawv6_geticmpfilter fndecl 0 53256 NULL
165365 +enable_so_readpos_ivtv_buffer_53258 readpos ivtv_buffer 0 53258 NULL
165366 +enable_so_qxl_bo_create_fndecl_53261 qxl_bo_create fndecl 2 53261 NULL nohasharray
165367 +enable_so_num_cq_mlx4_profile_53261 num_cq mlx4_profile 0 53261 &enable_so_qxl_bo_create_fndecl_53261
165368 +enable_so_rx_enable_fndecl_53262 rx_enable fndecl 2 53262 NULL
165369 +enable_so_add_new_ctl_fndecl_53263 add_new_ctl fndecl 8 53263 NULL
165370 +enable_so_asl_urb_dequeue_fndecl_53268 asl_urb_dequeue fndecl 3 53268 NULL
165371 +enable_so_update_dind_extent_range_fndecl_53271 update_dind_extent_range fndecl 3 53271 NULL
165372 +enable_so_rx_pkt_n_frags_efx_channel_53276 rx_pkt_n_frags efx_channel 0 53276 NULL
165373 +enable_so_vb2_dc_attach_dmabuf_fndecl_53278 vb2_dc_attach_dmabuf fndecl 3 53278 NULL nohasharray
165374 +enable_so_nr_cmds_ctlr_info_53278 nr_cmds ctlr_info 0 53278 &enable_so_vb2_dc_attach_dmabuf_fndecl_53278
165375 +enable_so_enc_dst_buf_size_s5p_mfc_ctx_53279 enc_dst_buf_size s5p_mfc_ctx 0 53279 NULL
165376 +enable_so_ext3_readpages_fndecl_53283 ext3_readpages fndecl 4 53283 NULL
165377 +enable_so_maxreqs_nfsd4_channel_attrs_53285 maxreqs nfsd4_channel_attrs 0 53285 NULL
165378 +enable_so_alloc_vm_area_fndecl_53286 alloc_vm_area fndecl 1 53286 NULL
165379 +enable_so_b1_alloc_card_fndecl_53288 b1_alloc_card fndecl 1 53288 NULL
165380 +enable_so_alignment_acpi_resource_memory32_53289 alignment acpi_resource_memory32 0 53289 NULL
165381 +enable_so_compat_ptrace_request_fndecl_53296 compat_ptrace_request fndecl 3 53296 NULL
165382 +enable_so_vmalloc_exec_fndecl_53303 vmalloc_exec fndecl 1 53303 NULL
165383 +enable_so_fuse_ioctl_common_fndecl_53305 fuse_ioctl_common fndecl 2 53305 NULL
165384 +enable_so_dma_size_cx23885_audio_dev_53307 dma_size cx23885_audio_dev 0 53307 NULL nohasharray
165385 +enable_so_gtt_start_radeon_mc_53307 gtt_start radeon_mc 0 53307 &enable_so_dma_size_cx23885_audio_dev_53307
165386 +enable_so_isoc_in_usbatm_driver_53310 isoc_in usbatm_driver 0 53310 NULL nohasharray
165387 +enable_so___gfs2_free_blocks_fndecl_53310 __gfs2_free_blocks fndecl 2 53310 &enable_so_isoc_in_usbatm_driver_53310
165388 +enable_so___sync_dirty_buffer_fndecl_53315 __sync_dirty_buffer fndecl 0 53315 NULL
165389 +enable_so_transport_get_sectors_10_fndecl_53319 transport_get_sectors_10 fndecl 0 53319 NULL
165390 +enable_so_nfsd4_block_get_device_info_simple_fndecl_53320 nfsd4_block_get_device_info_simple fndecl 0 53320 NULL
165391 +enable_so_sys_send_fndecl_53330 sys_send fndecl 3 53330 NULL
165392 +enable_so_s_inode_readahead_blks_ext4_sb_info_53337 s_inode_readahead_blks ext4_sb_info 0 53337 NULL
165393 +enable_so_snd_korg1212_copy_from_fndecl_53338 snd_korg1212_copy_from fndecl 6 53338 NULL
165394 +enable_so_last_tx_rate_mwifiex_station_stats_53339 last_tx_rate mwifiex_station_stats 0 53339 NULL
165395 +enable_so_v9fs_xattr_set_fndecl_53342 v9fs_xattr_set fndecl 4 53342 NULL
165396 +enable_so_SYSC_sched_getaffinity_fndecl_53347 SYSC_sched_getaffinity fndecl 2 53347 NULL
165397 +enable_so_ioc_len_libcfs_ioctl_hdr_53352 ioc_len libcfs_ioctl_hdr 0 53352 NULL
165398 +enable_so_ali1563_smba_vardecl_i2c_ali1563_c_53362 ali1563_smba vardecl_i2c-ali1563.c 0 53362 NULL
165399 +enable_so___xdr_inline_decode_fndecl_53363 __xdr_inline_decode fndecl 2 53363 NULL
165400 +enable_so_ramoops_init_przs_fndecl_53364 ramoops_init_przs fndecl 4 53364 NULL
165401 +enable_so_rsize_hid_device_53365 rsize hid_device 0 53365 NULL
165402 +enable_so_xattr_len_ceph_mds_reply_info_in_53369 xattr_len ceph_mds_reply_info_in 0 53369 NULL
165403 +enable_so_CIFSMaxBufSize_vardecl_53372 CIFSMaxBufSize vardecl 0 53372 NULL
165404 +enable_so_xdr_inline_pages_fndecl_53377 xdr_inline_pages fndecl 5-4-2 53377 NULL nohasharray
165405 +enable_so_SYSC_getxattr_fndecl_53377 SYSC_getxattr fndecl 4 53377 &enable_so_xdr_inline_pages_fndecl_53377
165406 +enable_so_viafb_iga1_odev_proc_write_fndecl_53378 viafb_iga1_odev_proc_write fndecl 3 53378 NULL
165407 +enable_so_dummy_urb_dequeue_fndecl_53380 dummy_urb_dequeue fndecl 3 53380 NULL
165408 +enable_so_vmsplice_to_user_fndecl_53382 vmsplice_to_user fndecl 3 53382 NULL nohasharray
165409 +enable_so_rproc_recovery_read_fndecl_53382 rproc_recovery_read fndecl 3 53382 &enable_so_vmsplice_to_user_fndecl_53382
165410 +enable_so_scrub_stripe_fndecl_53387 scrub_stripe fndecl 5 53387 NULL
165411 +enable_so_isd200_action_fndecl_53390 isd200_action fndecl 4 53390 NULL
165412 +enable_so_command_setformat_fndecl_53392 command_setformat fndecl 0 53392 NULL
165413 +enable_so_nfqnl_mangle_fndecl_53393 nfqnl_mangle fndecl 2-4 53393 NULL
165414 +enable_so_wil_agg_size_fndecl_53398 wil_agg_size fndecl 0-2 53398 NULL
165415 +enable_so_irda_recvmsg_stream_fndecl_53403 irda_recvmsg_stream fndecl 3 53403 NULL
165416 +enable_so_num_entries_s2io_nic_53404 num_entries s2io_nic 0 53404 NULL
165417 +enable_so_len_nft_cmp_fast_expr_53407 len nft_cmp_fast_expr 0 53407 NULL
165418 +enable_so_cfs_hash_buckets_realloc_fndecl_53415 cfs_hash_buckets_realloc fndecl 4 53415 NULL
165419 +enable_so_vlan_dev_set_egress_priority_fndecl_53418 vlan_dev_set_egress_priority fndecl 3 53418 NULL nohasharray
165420 +enable_so_rxHeader3_edgeport_serial_53418 rxHeader3 edgeport_serial 0 53418 &enable_so_vlan_dev_set_egress_priority_fndecl_53418
165421 +enable_so_codec_reg_read_file_fndecl_53419 codec_reg_read_file fndecl 3 53419 NULL
165422 +enable_so_expand_stack_fndecl_53426 expand_stack fndecl 2 53426 NULL
165423 +enable_so_compat_sys_mbind_fndecl_53427 compat_sys_mbind fndecl 2-1-5 53427 NULL nohasharray
165424 +enable_so_dn_mk_ack_header_fndecl_53427 dn_mk_ack_header fndecl 4 53427 &enable_so_compat_sys_mbind_fndecl_53427 nohasharray
165425 +enable_so_mq_maxmsg_mq_attr_53427 mq_maxmsg mq_attr 0 53427 &enable_so_dn_mk_ack_header_fndecl_53427
165426 +enable_so_len_type_frame_head_53438 len type_frame_head 0 53438 NULL nohasharray
165427 +enable_so_chipsize_nand_chip_53438 chipsize nand_chip 0 53438 &enable_so_len_type_frame_head_53438
165428 +enable_so_cfg80211_rx_mlme_mgmt_fndecl_53441 cfg80211_rx_mlme_mgmt fndecl 3 53441 NULL
165429 +enable_so_ad7879_spi_xfer_fndecl_53444 ad7879_spi_xfer fndecl 3 53444 NULL
165430 +enable_so_first_offset_pciserial_board_53452 first_offset pciserial_board 0 53452 NULL
165431 +enable_so_c_blkno_ocfs2_chain_rec_53466 c_blkno ocfs2_chain_rec 0 53466 NULL
165432 +enable_so_lpfc_debugfs_dif_err_read_fndecl_53468 lpfc_debugfs_dif_err_read fndecl 3 53468 NULL
165433 +enable_so_jbd2_journal_init_revoke_table_fndecl_53475 jbd2_journal_init_revoke_table fndecl 1 53475 NULL
165434 +enable_so_isku_sysfs_read_key_mask_fndecl_53476 isku_sysfs_read_key_mask fndecl 6 53476 NULL
165435 +enable_so_new_chunk_sectors_mddev_53479 new_chunk_sectors mddev 0 53479 NULL
165436 +enable_so_ext2_nfs_get_inode_fndecl_53480 ext2_nfs_get_inode fndecl 2 53480 NULL
165437 +enable_so_map_sector_fndecl_53483 map_sector fndecl 0 53483 NULL
165438 +enable_so_nfs4_proc_readlink_fndecl_53484 nfs4_proc_readlink fndecl 4-3 53484 NULL nohasharray
165439 +enable_so_ath6kl_regwrite_write_fndecl_53484 ath6kl_regwrite_write fndecl 3 53484 &enable_so_nfs4_proc_readlink_fndecl_53484
165440 +enable_so_ramoops_ecc_vardecl_ram_c_53486 ramoops_ecc vardecl_ram.c 0 53486 NULL
165441 +enable_so_size_mthca_catas_err_53487 size mthca_catas_err 0 53487 NULL
165442 +enable_so_oper_log_mgm_entry_size_mlx4_dev_53488 oper_log_mgm_entry_size mlx4_dev 0 53488 NULL
165443 +enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489 usCRTC_V_SyncWidth _ATOM_MODE_TIMING 0 53489 NULL nohasharray
165444 +enable_so_len_rx_pool_53489 len rx_pool 0 53489 &enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489
165445 +enable_so_len_nft_cmp_expr_53491 len nft_cmp_expr 0 53491 NULL
165446 +enable_so_isdn_getnum_fndecl_53492 isdn_getnum fndecl 0 53492 NULL
165447 +enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495 get_allocated_memblock_memory_regions_info fndecl 0 53495 NULL nohasharray
165448 +enable_so_subctxt_cnt_qib_ctxtdata_53495 subctxt_cnt qib_ctxtdata 0 53495 &enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495
165449 +enable_so___compat_sys_pwritev64_fndecl_53499 __compat_sys_pwritev64 fndecl 3 53499 NULL
165450 +enable_so_lc_create_fndecl_53503 lc_create fndecl 4 53503 NULL
165451 +enable_so_data_out_size_mpt2_ioctl_command_53510 data_out_size mpt2_ioctl_command 0 53510 NULL nohasharray
165452 +enable_so_mthca_buf_alloc_fndecl_53510 mthca_buf_alloc fndecl 2 53510 &enable_so_data_out_size_mpt2_ioctl_command_53510
165453 +enable_so_mmc_io_rw_extended_fndecl_53515 mmc_io_rw_extended fndecl 8-7 53515 NULL
165454 +enable_so_dme1737_isa_device_add_fndecl_53516 dme1737_isa_device_add fndecl 1 53516 NULL
165455 +enable_so_max_dev_vardecl_osst_c_53523 max_dev vardecl_osst.c 0 53523 NULL
165456 +enable_so_ipw2100_set_short_retry_fndecl_53529 ipw2100_set_short_retry fndecl 2 53529 NULL
165457 +enable_so_fsinfo_sector_msdos_sb_info_53531 fsinfo_sector msdos_sb_info 0 53531 NULL nohasharray
165458 +enable_so_m_max_mds_ceph_mdsmap_53531 m_max_mds ceph_mdsmap 0 53531 &enable_so_fsinfo_sector_msdos_sb_info_53531
165459 +enable_so_tx_tx_cmplt_read_fndecl_53533 tx_tx_cmplt_read fndecl 3 53533 NULL
165460 +enable_so_unix_seqpacket_sendmsg_fndecl_53534 unix_seqpacket_sendmsg fndecl 3 53534 NULL
165461 +enable_so_e820_add_region_fndecl_53540 e820_add_region fndecl 2 53540 NULL nohasharray
165462 +enable_so_tcp_mark_head_lost_fndecl_53540 tcp_mark_head_lost fndecl 2 53540 &enable_so_e820_add_region_fndecl_53540
165463 +enable_so_crtc_w_drm_plane_state_53541 crtc_w drm_plane_state 0 53541 NULL
165464 +enable_so_smi_num_vardecl_ipmi_si_intf_c_53542 smi_num vardecl_ipmi_si_intf.c 0 53542 NULL
165465 +enable_so_uwb_rc_cmd_done_fndecl_53543 uwb_rc_cmd_done fndecl 4 53543 NULL
165466 +enable_so_start_extent_state_53546 start extent_state 0 53546 NULL
165467 +enable_so_plcp_iwl_rate_info_53549 plcp iwl_rate_info 0 53549 NULL nohasharray
165468 +enable_so_block_size_partition_53549 block_size partition 0 53549 &enable_so_plcp_iwl_rate_info_53549
165469 +enable_so_height_rcar_vin_cam_53550 height rcar_vin_cam 0 53550 NULL
165470 +enable_so_num_req_vfs_i40e_pf_53554 num_req_vfs i40e_pf 0 53554 NULL
165471 +enable_so_vnode_afs_fid_53569 vnode afs_fid 0 53569 NULL
165472 +enable_so_balance_node_right_fndecl_53571 balance_node_right fndecl 0 53571 NULL
165473 +enable_so_sctp_tsnmap_mark_fndecl_53578 sctp_tsnmap_mark fndecl 2 53578 NULL
165474 +enable_so_rx_defrag_init_called_read_fndecl_53580 rx_defrag_init_called_read fndecl 3 53580 NULL
165475 +enable_so_log_mpt_sz_mlx4_init_hca_param_53586 log_mpt_sz mlx4_init_hca_param 0 53586 NULL
165476 +enable_so_tokens_size_cfg80211_wowlan_tcp_53588 tokens_size cfg80211_wowlan_tcp 0 53588 NULL nohasharray
165477 +enable_so_num_ports_mlx4_caps_53588 num_ports mlx4_caps 0 53588 &enable_so_tokens_size_cfg80211_wowlan_tcp_53588
165478 +enable_so_mlx5_get_gid_table_len_fndecl_53590 mlx5_get_gid_table_len fndecl 0-1 53590 NULL
165479 +enable_so_nr_labels_pktgen_dev_53591 nr_labels pktgen_dev 0 53591 NULL
165480 +enable_so_ocfs2_orphan_filldir_fndecl_53593 ocfs2_orphan_filldir fndecl 5 53593 NULL
165481 +enable_so_kernel_setsockopt_fndecl_53594 kernel_setsockopt fndecl 5 53594 NULL
165482 +enable_so_cow_file_range_async_fndecl_53595 cow_file_range_async fndecl 3-4 53595 NULL
165483 +enable_so_nilfs_load_super_block_fndecl_53596 nilfs_load_super_block fndecl 3 53596 NULL
165484 +enable_so_ramoops_pmsg_size_vardecl_ram_c_53601 ramoops_pmsg_size vardecl_ram.c 0 53601 NULL
165485 +enable_so_xfs_add_to_ioend_fndecl_53604 xfs_add_to_ioend fndecl 3 53604 NULL
165486 +enable_so_hwptr_done_snd_usb_substream_53606 hwptr_done snd_usb_substream 0 53606 NULL
165487 +enable_so_pcfg_ofsl_cyttsp4_sysinfo_data_53607 pcfg_ofsl cyttsp4_sysinfo_data 0 53607 NULL
165488 +enable_so_md_dump_size_netxen_minidump_53611 md_dump_size netxen_minidump 0 53611 NULL
165489 +enable_so_put_cmsg_compat_fndecl_53618 put_cmsg_compat fndecl 4 53618 NULL nohasharray
165490 +enable_so_len_rproc_vring_53618 len rproc_vring 0 53618 &enable_so_put_cmsg_compat_fndecl_53618
165491 +enable_so_header_len_tso_state_53620 header_len tso_state 0 53620 NULL
165492 +enable_so_qcaspi_write_legacy_fndecl_53623 qcaspi_write_legacy fndecl 3 53623 NULL
165493 +enable_so_pc_npartners_ptlrpcd_ctl_53625 pc_npartners ptlrpcd_ctl 0 53625 NULL
165494 +enable_so_num_channels_mlx5e_params_53632 num_channels mlx5e_params 0 53632 NULL
165495 +enable_so_selfballoon_downhysteresis_vardecl_xen_selfballoon_c_53636 selfballoon_downhysteresis vardecl_xen-selfballoon.c 0 53636 NULL
165496 +enable_so_remote_nentries_xpc_openclose_args_53643 remote_nentries xpc_openclose_args 0 53643 NULL
165497 +enable_so_locks_mandatory_area_fndecl_53644 locks_mandatory_area fndecl 0 53644 NULL nohasharray
165498 +enable_so_ticket2_len_rxk5_key_53644 ticket2_len rxk5_key 0 53644 &enable_so_locks_mandatory_area_fndecl_53644
165499 +enable_so_write_file_antenna_fndecl_53645 write_file_antenna fndecl 3 53645 NULL nohasharray
165500 +enable_so_kuc_alloc_fndecl_53645 kuc_alloc fndecl 1 53645 &enable_so_write_file_antenna_fndecl_53645
165501 +enable_so_ioc_plen2_obd_ioctl_data_53648 ioc_plen2 obd_ioctl_data 0 53648 NULL
165502 +enable_so_extra_tx_headroom_rt2x00_dev_53650 extra_tx_headroom rt2x00_dev 0 53650 NULL
165503 +enable_so_ceph_buffer_new_fndecl_53653 ceph_buffer_new fndecl 1 53653 NULL nohasharray
165504 +enable_so_generic_ocp_read_fndecl_53653 generic_ocp_read fndecl 3 53653 &enable_so_ceph_buffer_new_fndecl_53653
165505 +enable_so_acl_alloc_fndecl_53656 acl_alloc fndecl 1 53656 NULL
165506 +enable_so_page_add_anon_rmap_fndecl_53660 page_add_anon_rmap fndecl 3 53660 NULL
165507 +enable_so_hr_data_len_hsm_request_53666 hr_data_len hsm_request 0 53666 NULL
165508 +enable_so_num_sge_ib_uverbs_send_wr_53667 num_sge ib_uverbs_send_wr 0 53667 NULL nohasharray
165509 +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
165510 +enable_so_cpu_addr_of_pci_range_53670 cpu_addr of_pci_range 0 53670 NULL
165511 +enable_so_kvec_array_init_fndecl_53672 kvec_array_init fndecl 4-0-3 53672 NULL
165512 +enable_so___videobuf_alloc_fndecl_53676 __videobuf_alloc fndecl 1 53676 NULL
165513 +enable_so_ubi_eba_write_leb_fndecl_53678 ubi_eba_write_leb fndecl 6-5 53678 NULL nohasharray
165514 +enable_so_sesskey_len_cifs_spnego_msg_53678 sesskey_len cifs_spnego_msg 0 53678 &enable_so_ubi_eba_write_leb_fndecl_53678
165515 +enable_so_list_lru_count_one_fndecl_53682 list_lru_count_one fndecl 0 53682 NULL
165516 +enable_so_offset_ipath_mregion_53683 offset ipath_mregion 0 53683 NULL
165517 +enable_so_console_store_fndecl_53684 console_store fndecl 4 53684 NULL
165518 +enable_so_length_acpi_memory_info_53691 length acpi_memory_info 0 53691 NULL nohasharray
165519 +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
165520 +enable_so_i_depth_gfs2_inode_53692 i_depth gfs2_inode 0 53692 NULL
165521 +enable_so_ql_is_full_dup_fndecl_53694 ql_is_full_dup fndecl 0 53694 NULL
165522 +enable_so_length_iscsi_pdu_53695 length iscsi_pdu 0 53695 NULL
165523 +enable_so_vgt_balloon_space_fndecl_53697 vgt_balloon_space fndecl 3-4 53697 NULL
165524 +enable_so_gpio_power_read_fndecl_53704 gpio_power_read fndecl 3 53704 NULL nohasharray
165525 +enable_so_check_revision_fndecl_53704 check_revision fndecl 0 53704 &enable_so_gpio_power_read_fndecl_53704
165526 +enable_so_qlge_change_mtu_fndecl_53706 qlge_change_mtu fndecl 2 53706 NULL
165527 +enable_so_pos_hdpvr_buffer_53708 pos hdpvr_buffer 0 53708 NULL
165528 +enable_so_create_header_ops_53712 create header_ops 0 53712 NULL
165529 +enable_so_xdr_inline_decode_fndecl_53721 xdr_inline_decode fndecl 2 53721 NULL
165530 +enable_so_sys_init_module_fndecl_53724 sys_init_module fndecl 2 53724 NULL nohasharray
165531 +enable_so_onenand_write_ops_nolock_fndecl_53724 onenand_write_ops_nolock fndecl 2 53724 &enable_so_sys_init_module_fndecl_53724
165532 +enable_so_mtip_hw_read_device_status_fndecl_53729 mtip_hw_read_device_status fndecl 3 53729 NULL
165533 +enable_so_ino_xfs_fid64_53730 ino xfs_fid64 0 53730 NULL
165534 +enable_so_snd_pcm_plug_read_transfer_fndecl_53731 snd_pcm_plug_read_transfer fndecl 3-0 53731 NULL
165535 +enable_so_dnode_scif_peer_dev_53733 dnode scif_peer_dev 0 53733 NULL nohasharray
165536 +enable_so_adp5588_build_gpiomap_fndecl_53733 adp5588_build_gpiomap fndecl 0 53733 &enable_so_dnode_scif_peer_dev_53733
165537 +enable_so_max_data_size_vardecl_hsi_char_c_53736 max_data_size vardecl_hsi_char.c 0 53736 NULL
165538 +enable_so_map_capability_fndecl_53738 map_capability fndecl 5 53738 NULL
165539 +enable_so_chunk_size_stripe_c_53745 chunk_size stripe_c 0 53745 NULL
165540 +enable_so_write_emulate_fndecl_53746 write_emulate fndecl 2-4 53746 NULL
165541 +enable_so_get_crop_info_h_s5p_mfc_hw_ops_53747 get_crop_info_h s5p_mfc_hw_ops 0 53747 NULL
165542 +enable_so_count_user_sgmap_53748 count user_sgmap 0 53748 NULL
165543 +enable_so_ext3_new_blocks_fndecl_53754 ext3_new_blocks fndecl 0-3 53754 NULL
165544 +enable_so_ieee80211_if_write_tsf_fndecl_53758 ieee80211_if_write_tsf fndecl 3 53758 NULL nohasharray
165545 +enable_so_SenderSize_aac_fibhdr_53758 SenderSize aac_fibhdr 0 53758 &enable_so_ieee80211_if_write_tsf_fndecl_53758
165546 +enable_so_dies_onenand_chip_53762 dies onenand_chip 0 53762 NULL
165547 +enable_so_padding_iscsi_cmd_53768 padding iscsi_cmd 0 53768 NULL
165548 +enable_so_end_nilfs_write_info_53770 end nilfs_write_info 0 53770 NULL
165549 +enable_so_vxge_config_vpaths_fndecl_53775 vxge_config_vpaths fndecl 0 53775 NULL nohasharray
165550 +enable_so_get_slot_from_bitmask_fndecl_53775 get_slot_from_bitmask fndecl 0-1 53775 &enable_so_vxge_config_vpaths_fndecl_53775
165551 +enable_so_do_sendfile_fndecl_53777 do_sendfile fndecl 5-4 53777 NULL
165552 +enable_so_index_nsc_ircc_cb_53782 index nsc_ircc_cb 0 53782 NULL
165553 +enable_so_src_maxburst_dma_slave_config_53783 src_maxburst dma_slave_config 0 53783 NULL
165554 +enable_so_ibh_mr_shift_kib_hca_dev_53785 ibh_mr_shift kib_hca_dev 0 53785 NULL
165555 +enable_so_locations_count_nfsd4_fs_locations_53786 locations_count nfsd4_fs_locations 0 53786 NULL
165556 +enable_so_resp_iec_m_pg_fndecl_53792 resp_iec_m_pg fndecl 0 53792 NULL
165557 +enable_so_Control_2_RxD_t_53794 Control_2 RxD_t 0 53794 NULL nohasharray
165558 +enable_so_qlcnic_process_rcv_fndecl_53794 qlcnic_process_rcv fndecl 4 53794 &enable_so_Control_2_RxD_t_53794
165559 +enable_so_epnum_isp1362_ep_53803 epnum isp1362_ep 0 53803 NULL nohasharray
165560 +enable_so_osd_req_list_collection_objects_fndecl_53803 osd_req_list_collection_objects fndecl 5 53803 &enable_so_epnum_isp1362_ep_53803 nohasharray
165561 +enable_so_mgmt_send_event_fndecl_53803 mgmt_send_event fndecl 5 53803 &enable_so_osd_req_list_collection_objects_fndecl_53803
165562 +enable_so_iscsi_host_alloc_fndecl_53804 iscsi_host_alloc fndecl 2 53804 NULL
165563 +enable_so_ring_size_netvsc_device_info_53811 ring_size netvsc_device_info 0 53811 NULL
165564 +enable_so_msix_count_xhci_hcd_53816 msix_count xhci_hcd 0 53816 NULL
165565 +enable_so_jffs2_flash_write_fndecl_53819 jffs2_flash_write fndecl 3-2 53819 NULL nohasharray
165566 +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
165567 +enable_so_tty_copy_to_user_fndecl_53819 tty_copy_to_user fndecl 4 53819 &enable_so_lpfc_idiag_extacc_alloc_get_fndecl_53819
165568 +enable_so_doorbell_start_nes_device_53820 doorbell_start nes_device 0 53820 NULL nohasharray
165569 +enable_so_logical_minimum_hid_field_53820 logical_minimum hid_field 0 53820 &enable_so_doorbell_start_nes_device_53820
165570 +enable_so_choose_rate_fndecl_53821 choose_rate fndecl 3 53821 NULL nohasharray
165571 +enable_so_tx_data_ep_usb_card_rec_53821 tx_data_ep usb_card_rec 0 53821 &enable_so_choose_rate_fndecl_53821
165572 +enable_so_smem_len_fb_fix_screeninfo_53824 smem_len fb_fix_screeninfo 0 53824 NULL
165573 +enable_so_cam_get_response16_fndecl_53836 cam_get_response16 fndecl 0 53836 NULL
165574 +enable_so_gsmtty_write_fndecl_53837 gsmtty_write fndecl 3 53837 NULL
165575 +enable_so_num_sensors_ibmpex_bmc_data_53838 num_sensors ibmpex_bmc_data 0 53838 NULL
165576 +enable_so_resp_ie_length_ndis_80211_assoc_info_53840 resp_ie_length ndis_80211_assoc_info 0 53840 NULL
165577 +enable_so_xillybus_read_fndecl_53845 xillybus_read fndecl 3 53845 NULL
165578 +enable_so_ext4_mb_discard_group_preallocations_fndecl_53854 ext4_mb_discard_group_preallocations fndecl 2 53854 NULL
165579 +enable_so_saa7134_i2c_eeprom_fndecl_53866 saa7134_i2c_eeprom fndecl 3 53866 NULL
165580 +enable_so_data_len_msgbuf_rx_complete_53868 data_len msgbuf_rx_complete 0 53868 NULL
165581 +enable_so_discard_alignment_hd_struct_53874 discard_alignment hd_struct 0 53874 NULL
165582 +enable_so_br_fill_ifvlaninfo_range_fndecl_53875 br_fill_ifvlaninfo_range fndecl 2-3 53875 NULL
165583 +enable_so_buffer_blocks_st_buffer_53878 buffer_blocks st_buffer 0 53878 NULL
165584 +enable_so_lnum_bits_ubifs_info_53884 lnum_bits ubifs_info 0 53884 NULL
165585 +enable_so_nilfs_sufile_set_segment_usage_fndecl_53885 nilfs_sufile_set_segment_usage fndecl 2 53885 NULL
165586 +enable_so_cx25821_alsa_dma_init_fndecl_53886 cx25821_alsa_dma_init fndecl 2 53886 NULL nohasharray
165587 +enable_so_path_getxattr_fndecl_53886 path_getxattr fndecl 4 53886 &enable_so_cx25821_alsa_dma_init_fndecl_53886
165588 +enable_so_drbd_setbufsize_fndecl_53887 drbd_setbufsize fndecl 2 53887 NULL
165589 +enable_so_amdgpu_vce_sw_init_fndecl_53888 amdgpu_vce_sw_init fndecl 2 53888 NULL
165590 +enable_so_total_read_TCP_Server_Info_53900 total_read TCP_Server_Info 0 53900 NULL
165591 +enable_so_alignf_resource_constraint_53903 alignf resource_constraint 0 53903 NULL nohasharray
165592 +enable_so_e1000_consume_page_fndecl_53903 e1000_consume_page fndecl 3 53903 &enable_so_alignf_resource_constraint_53903
165593 +enable_so_amdtp_stream_set_parameters_fndecl_53905 amdtp_stream_set_parameters fndecl 4-3 53905 NULL
165594 +enable_so_image_len_brcmf_usbdev_info_53909 image_len brcmf_usbdev_info 0 53909 NULL
165595 +enable_so_vop_len_solo_enc_dev_53910 vop_len solo_enc_dev 0 53910 NULL
165596 +enable_so_snd_rawmidi_kernel_read1_fndecl_53911 snd_rawmidi_kernel_read1 fndecl 4-0 53911 NULL nohasharray
165597 +enable_so_oobavail_jffs2_sb_info_53911 oobavail jffs2_sb_info 0 53911 &enable_so_snd_rawmidi_kernel_read1_fndecl_53911
165598 +enable_so_cxgbi_device_register_fndecl_53913 cxgbi_device_register fndecl 2-1 53913 NULL
165599 +enable_so_ad_bytes_x86_instruction_info_53919 ad_bytes x86_instruction_info 0 53919 NULL
165600 +enable_so_usb_stor_sg_tablesize_fndecl_53929 usb_stor_sg_tablesize fndecl 0 53929 NULL
165601 +enable_so_of_iomap_fndecl_53930 of_iomap fndecl 2 53930 NULL
165602 +enable_so_i40e_init_lan_hmc_fndecl_53935 i40e_init_lan_hmc fndecl 2-3-4-5 53935 NULL
165603 +enable_so_depth_tm6000_fmt_53938 depth tm6000_fmt 0 53938 NULL
165604 +enable_so_ip4ip6_err_fndecl_53943 ip4ip6_err fndecl 5 53943 NULL nohasharray
165605 +enable_so__find_first_zero_bit_be_fndecl_53943 _find_first_zero_bit_be fndecl 0 53943 &enable_so_ip4ip6_err_fndecl_53943
165606 +enable_so_llc_mac_header_len_fndecl_53947 llc_mac_header_len fndecl 0 53947 NULL
165607 +enable_so_buffer_end_nm256_53949 buffer_end nm256 0 53949 NULL
165608 +enable_so_swiotlb_nr_tbl_fndecl_53950 swiotlb_nr_tbl fndecl 0 53950 NULL
165609 +enable_so_p_size_drbd_device_53954 p_size drbd_device 0 53954 NULL
165610 +enable_so_hiddev_ioctl_fndecl_53955 hiddev_ioctl fndecl 2 53955 NULL
165611 +enable_so_tcf_csum_ipv6_tcp_fndecl_53957 tcf_csum_ipv6_tcp fndecl 3 53957 NULL
165612 +enable_so_vmw_sou_backing_alloc_fndecl_53962 vmw_sou_backing_alloc fndecl 3 53962 NULL nohasharray
165613 +enable_so_c_srate_f_uac2_opts_53962 c_srate f_uac2_opts 0 53962 &enable_so_vmw_sou_backing_alloc_fndecl_53962
165614 +enable_so_proc_fault_inject_read_fndecl_53969 proc_fault_inject_read fndecl 3 53969 NULL
165615 +enable_so_rx_buf_sz_cp_private_53982 rx_buf_sz cp_private 0 53982 NULL
165616 +enable_so_assoc_resp_len_wmi_connect_event_53983 assoc_resp_len wmi_connect_event 0 53983 NULL
165617 +enable_so_nfs_proc_mknod_fndecl_53987 nfs_proc_mknod fndecl 4 53987 NULL
165618 +enable_so_cfpkt_add_head_fndecl_53990 cfpkt_add_head fndecl 3 53990 NULL
165619 +enable_so_cm_write_fndecl_53993 cm_write fndecl 3 53993 NULL
165620 +enable_so_btrfs_init_new_buffer_fndecl_53996 btrfs_init_new_buffer fndecl 3 53996 NULL
165621 +enable_so_size_drbd_interval_54002 size drbd_interval 0 54002 NULL nohasharray
165622 +enable_so_int_hardware_entry_fndecl_54002 int_hardware_entry fndecl 3 54002 &enable_so_size_drbd_interval_54002
165623 +enable_so_ax88179_change_mtu_fndecl_54007 ax88179_change_mtu fndecl 2 54007 NULL
165624 +enable_so_nonstatic_find_io_fndecl_54015 nonstatic_find_io fndecl 4 54015 NULL
165625 +enable_so_submit_stripe_bio_fndecl_54016 submit_stripe_bio fndecl 4 54016 NULL
165626 +enable_so_rsi_setblocklength_fndecl_54024 rsi_setblocklength fndecl 2 54024 NULL
165627 +enable_so_dlen_hci_vendor_hdr_54025 dlen hci_vendor_hdr 0 54025 NULL
165628 +enable_so_xz_dec_lzma2_create_fndecl_54034 xz_dec_lzma2_create fndecl 2 54034 NULL
165629 +enable_so_sum_size_jffs2_summary_54035 sum_size jffs2_summary 0 54035 NULL
165630 +enable_so_s_nextid_exofs_sb_info_54042 s_nextid exofs_sb_info 0 54042 NULL
165631 +enable_so_sierra_write_fndecl_54049 sierra_write fndecl 4 54049 NULL
165632 +enable_so_sci_probe_single_fndecl_54053 sci_probe_single fndecl 2 54053 NULL
165633 +enable_so__iwl_dbgfs_uapsd_misbehaving_write_fndecl_54054 _iwl_dbgfs_uapsd_misbehaving_write fndecl 3 54054 NULL
165634 +enable_so_storvsc_ringbuffer_size_vardecl_storvsc_drv_c_54060 storvsc_ringbuffer_size vardecl_storvsc_drv.c 0 54060 NULL
165635 +enable_so_msb_update_block_fndecl_54063 msb_update_block fndecl 4 54063 NULL
165636 +enable_so_tunables_read_fndecl_54066 tunables_read fndecl 3 54066 NULL
165637 +enable_so_process_ptload_program_headers_elf32_fndecl_54067 process_ptload_program_headers_elf32 fndecl 3-2 54067 NULL
165638 +enable_so_width_fb_image_54071 width fb_image 0 54071 NULL
165639 +enable_so_i_next_section_offset_iso_inode_info_54074 i_next_section_offset iso_inode_info 0 54074 NULL nohasharray
165640 +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
165641 +enable_so_xennet_change_mtu_fndecl_54076 xennet_change_mtu fndecl 2 54076 NULL nohasharray
165642 +enable_so_afs_alloc_flat_call_fndecl_54076 afs_alloc_flat_call fndecl 2-3 54076 &enable_so_xennet_change_mtu_fndecl_54076
165643 +enable_so_bytes_cifs_writedata_54089 bytes cifs_writedata 0 54089 NULL
165644 +enable_so_get_mtu_xfrm_type_54090 get_mtu xfrm_type 0 54090 NULL
165645 +enable_so_align_pnp_port_54093 align pnp_port 0 54093 NULL nohasharray
165646 +enable_so_sctp_tsnmap_init_fndecl_54093 sctp_tsnmap_init fndecl 3-2 54093 &enable_so_align_pnp_port_54093
165647 +enable_so_SyS_sethostname_fndecl_54098 SyS_sethostname fndecl 2 54098 NULL
165648 +enable_so_fat_ent_write_fndecl_54100 fat_ent_write fndecl 0 54100 NULL
165649 +enable_so_bytes_read_usbvision_frame_54101 bytes_read usbvision_frame 0 54101 NULL
165650 +enable_so_br_min_mtu_fndecl_54113 br_min_mtu fndecl 0 54113 NULL
165651 +enable_so_xfs_rtmodify_summary_int_fndecl_54118 xfs_rtmodify_summary_int fndecl 4-3 54118 NULL nohasharray
165652 +enable_so_rio_request_inb_mbox_fndecl_54118 rio_request_inb_mbox fndecl 3 54118 &enable_so_xfs_rtmodify_summary_int_fndecl_54118
165653 +enable_so_vringh_iov_push_kern_fndecl_54119 vringh_iov_push_kern fndecl 3 54119 NULL
165654 +enable_so_s5p_jpeg_to_user_subsampling_fndecl_54125 s5p_jpeg_to_user_subsampling fndecl 0 54125 NULL
165655 +enable_so_alloc_etherdev_mqs_fndecl_54129 alloc_etherdev_mqs fndecl 2-1-3 54129 NULL
165656 +enable_so_skb_trim_fndecl_54132 skb_trim fndecl 2 54132 NULL
165657 +enable_so_io_offset_xfs_ioend_54137 io_offset xfs_ioend 0 54137 NULL nohasharray
165658 +enable_so_bdx_fifo_init_fndecl_54137 bdx_fifo_init fndecl 3 54137 &enable_so_io_offset_xfs_ioend_54137
165659 +enable_so_tcf_csum_ipv6_udp_fndecl_54138 tcf_csum_ipv6_udp fndecl 3 54138 NULL
165660 +enable_so_change_protection_range_fndecl_54141 change_protection_range fndecl 3-2 54141 NULL
165661 +enable_so_netvsc_change_mtu_fndecl_54142 netvsc_change_mtu fndecl 2 54142 NULL nohasharray
165662 +enable_so_nr_uart_sc16is7xx_devtype_54142 nr_uart sc16is7xx_devtype 0 54142 &enable_so_netvsc_change_mtu_fndecl_54142
165663 +enable_so_brcmf_usb_dl_writeimage_fndecl_54144 brcmf_usb_dl_writeimage fndecl 3 54144 NULL
165664 +enable_so_hs_cur_bits_cfs_hash_54147 hs_cur_bits cfs_hash 0 54147 NULL
165665 +enable_so_last_rx_rate_vht_nss_sta_info_54155 last_rx_rate_vht_nss sta_info 0 54155 NULL
165666 +enable_so_sp2_write_i2c_fndecl_54157 sp2_write_i2c fndecl 4 54157 NULL nohasharray
165667 +enable_so___hwahc_op_set_ptk_fndecl_54157 __hwahc_op_set_ptk fndecl 5 54157 &enable_so_sp2_write_i2c_fndecl_54157
165668 +enable_so_num_qp_mthca_profile_54160 num_qp mthca_profile 0 54160 NULL
165669 +enable_so_b43_nphy_load_samples_fndecl_54162 b43_nphy_load_samples fndecl 3 54162 NULL
165670 +enable_so_lock_and_cleanup_extent_if_need_fndecl_54163 lock_and_cleanup_extent_if_need fndecl 3-4 54163 NULL
165671 +enable_so_buf_len_lpfc_sli_config_mse_54165 buf_len lpfc_sli_config_mse 0 54165 NULL
165672 +enable_so_cmd_loop_fndecl_54168 cmd_loop fndecl 0 54168 NULL
165673 +enable_so_ip6_append_data_fndecl_54169 ip6_append_data fndecl 5-4 54169 NULL nohasharray
165674 +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
165675 +enable_so_writebuf_size_tomoyo_io_buffer_54169 writebuf_size tomoyo_io_buffer 0 54169 &enable_so_tx_tx_checksum_result_read_fndecl_54169
165676 +enable_so_handle_one_ule_extension_fndecl_54174 handle_one_ule_extension fndecl 0 54174 NULL
165677 +enable_so_len_xfs_alloc_arg_54187 len xfs_alloc_arg 0 54187 NULL
165678 +enable_so_cpu_type_read_fndecl_54191 cpu_type_read fndecl 3 54191 NULL
165679 +enable_so_nfs_llseek_dir_fndecl_54192 nfs_llseek_dir fndecl 2 54192 NULL nohasharray
165680 +enable_so__iwl_dbgfs_fw_nmi_write_fndecl_54192 _iwl_dbgfs_fw_nmi_write fndecl 3 54192 &enable_so_nfs_llseek_dir_fndecl_54192
165681 +enable_so_tp_ep_bcm5974_config_54193 tp_ep bcm5974_config 0 54193 NULL
165682 +enable_so_current_speed_ide_drive_s_54197 current_speed ide_drive_s 0 54197 NULL
165683 +enable_so_ipw2100_set_essid_fndecl_54200 ipw2100_set_essid fndecl 3 54200 NULL
165684 +enable_so_ieee80211_if_read_fwded_frames_fndecl_54203 ieee80211_if_read_fwded_frames fndecl 3 54203 NULL
165685 +enable_so_contexts_nouveau_fence_priv_54204 contexts nouveau_fence_priv 0 54204 NULL nohasharray
165686 +enable_so_p_filesz_elf32_phdr_54204 p_filesz elf32_phdr 0 54204 &enable_so_contexts_nouveau_fence_priv_54204 nohasharray
165687 +enable_so_ath6kl_interface_add_fndecl_54204 ath6kl_interface_add fndecl 5 54204 &enable_so_p_filesz_elf32_phdr_54204
165688 +enable_so_min_priority_binder_node_54207 min_priority binder_node 0 54207 NULL nohasharray
165689 +enable_so_nframes_bcm_msg_head_54207 nframes bcm_msg_head 0 54207 &enable_so_min_priority_binder_node_54207
165690 +enable_so_mxt_bootloader_write_fndecl_54210 mxt_bootloader_write fndecl 3 54210 NULL nohasharray
165691 +enable_so___lock_page_killable_fndecl_54210 __lock_page_killable fndecl 0 54210 &enable_so_mxt_bootloader_write_fndecl_54210
165692 +enable_so_ep93xx_spi_enable_fndecl_54214 ep93xx_spi_enable fndecl 0 54214 NULL nohasharray
165693 +enable_so_page_offset_ixgbe_rx_buffer_54214 page_offset ixgbe_rx_buffer 0 54214 &enable_so_ep93xx_spi_enable_fndecl_54214
165694 +enable_so_append_frame_to_pkt_fndecl_54220 append_frame_to_pkt fndecl 2 54220 NULL nohasharray
165695 +enable_so_tx_ring_size_ql_adapter_54220 tx_ring_size ql_adapter 0 54220 &enable_so_append_frame_to_pkt_fndecl_54220
165696 +enable_so_lib80211_tkip_encrypt_fndecl_54222 lib80211_tkip_encrypt fndecl 2 54222 NULL
165697 +enable_so_btrfs_get_token_64_fndecl_54223 btrfs_get_token_64 fndecl 0 54223 NULL nohasharray
165698 +enable_so_numeraseregions_mtd_info_54223 numeraseregions mtd_info 0 54223 &enable_so_btrfs_get_token_64_fndecl_54223
165699 +enable_so_num_boxes_intel_uncore_type_54227 num_boxes intel_uncore_type 0 54227 NULL
165700 +enable_so_vbi_hlen_saa7134_dev_54228 vbi_hlen saa7134_dev 0 54228 NULL
165701 +enable_so___kfifo_to_user_fndecl_54232 __kfifo_to_user fndecl 3 54232 NULL
165702 +enable_so_skb_copy_and_csum_datagram_msg_fndecl_54237 skb_copy_and_csum_datagram_msg fndecl 2 54237 NULL
165703 +enable_so_tcp_queue_rcv_fndecl_54242 tcp_queue_rcv fndecl 3 54242 NULL
165704 +enable_so_upper_margin_fb_var_screeninfo_54245 upper_margin fb_var_screeninfo 0 54245 NULL nohasharray
165705 +enable_so_pcnet32_realloc_rx_ring_fndecl_54245 pcnet32_realloc_rx_ring fndecl 3 54245 &enable_so_upper_margin_fb_var_screeninfo_54245
165706 +enable_so_la_last_gd_ocfs2_super_54246 la_last_gd ocfs2_super 0 54246 NULL
165707 +enable_so_num_counters_compat_ipt_replace_54249 num_counters compat_ipt_replace 0 54249 NULL
165708 +enable_so_ttm_object_device_init_fndecl_54252 ttm_object_device_init fndecl 2 54252 NULL
165709 +enable_so_fl_size_qset_params_54254 fl_size qset_params 0 54254 NULL
165710 +enable_so___erst_read_fndecl_54256 __erst_read fndecl 0-1 54256 NULL
165711 +enable_so_ssb_bus_scan_fndecl_54257 ssb_bus_scan fndecl 2 54257 NULL
165712 +enable_so_qnx6_iget_fndecl_54262 qnx6_iget fndecl 2 54262 NULL
165713 +enable_so_txrx_bufs_spi_bitbang_54265 txrx_bufs spi_bitbang 0 54265 NULL
165714 +enable_so_put_cmsg_fndecl_54270 put_cmsg fndecl 4 54270 NULL
165715 +enable_so_msdu_len_htt_rx_in_ord_msdu_desc_54278 msdu_len htt_rx_in_ord_msdu_desc 0 54278 NULL
165716 +enable_so_get_descriptor_ptr_fndecl_54282 get_descriptor_ptr fndecl 2 54282 NULL
165717 +enable_so_key_size_crypt_config_54287 key_size crypt_config 0 54287 NULL
165718 +enable_so_fat_file_fsync_fndecl_54291 fat_file_fsync fndecl 2-3 54291 NULL
165719 +enable_so_thoff_flow_dissector_key_control_54299 thoff flow_dissector_key_control 0 54299 NULL
165720 +enable_so_ntfs_attr_extend_initialized_fndecl_54303 ntfs_attr_extend_initialized fndecl 2 54303 NULL nohasharray
165721 +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
165722 +enable_so_pvr2_issue_simple_cmd_fndecl_54313 pvr2_issue_simple_cmd fndecl 2 54313 NULL
165723 +enable_so_capi_write_fndecl_54323 capi_write fndecl 3 54323 NULL nohasharray
165724 +enable_so_tx_tx_done_template_read_fndecl_54323 tx_tx_done_template_read fndecl 3 54323 &enable_so_capi_write_fndecl_54323
165725 +enable_so_ide_settings_proc_write_fndecl_54325 ide_settings_proc_write fndecl 3 54325 NULL
165726 +enable_so_nla_alloc_flow_actions_fndecl_54328 nla_alloc_flow_actions fndecl 1 54328 NULL
165727 +enable_so_length_acpi_table_header_54332 length acpi_table_header 0 54332 NULL
165728 +enable_so_vringh_iov_push_user_fndecl_54340 vringh_iov_push_user fndecl 3 54340 NULL nohasharray
165729 +enable_so_iscsi_conn_setup_fndecl_54340 iscsi_conn_setup fndecl 2 54340 &enable_so_vringh_iov_push_user_fndecl_54340
165730 +enable_so_max_rcvbuf_size_tipc_server_54342 max_rcvbuf_size tipc_server 0 54342 NULL
165731 +enable_so_ieee80211_if_read_bssid_fndecl_54346 ieee80211_if_read_bssid fndecl 3 54346 NULL
165732 +enable_so_max_raw_minors_vardecl_raw_c_54348 max_raw_minors vardecl_raw.c 0 54348 NULL
165733 +enable_so_wm8997_set_fll_fndecl_54349 wm8997_set_fll fndecl 5 54349 NULL
165734 +enable_so_k_objectid_in_core_key_54352 k_objectid in_core_key 0 54352 NULL nohasharray
165735 +enable_so_p_offset_elf32_phdr_54352 p_offset elf32_phdr 0 54352 &enable_so_k_objectid_in_core_key_54352
165736 +enable_so_hfsplus_block_allocate_fndecl_54353 hfsplus_block_allocate fndecl 0-3-2 54353 NULL
165737 +enable_so_s_fpbmask_ufs_sb_private_info_54354 s_fpbmask ufs_sb_private_info 0 54354 NULL
165738 +enable_so_encode_netobj_fndecl_54356 encode_netobj fndecl 3 54356 NULL
165739 +enable_so_radeon_vram_limit_vardecl_54357 radeon_vram_limit vardecl 0 54357 NULL
165740 +enable_so_tpm_tis_i2c_send_fndecl_54358 tpm_tis_i2c_send fndecl 3 54358 NULL
165741 +enable_so_pkt_size_rx_pkt_status_54360 pkt_size rx_pkt_status 0 54360 NULL
165742 +enable_so_gntdev_alloc_map_fndecl_54362 gntdev_alloc_map fndecl 2 54362 NULL
165743 +enable_so_ceph_get_caps_fndecl_54363 ceph_get_caps fndecl 0 54363 NULL
165744 +enable_so_size_ramoops_context_54365 size ramoops_context 0 54365 NULL
165745 +enable_so_usb_cdc_wdm_register_fndecl_54371 usb_cdc_wdm_register fndecl 3 54371 NULL nohasharray
165746 +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
165747 +enable_so_num_cpu_pages_radeon_gart_54371 num_cpu_pages radeon_gart 0 54371 &enable_so_mlx4_ib_get_cq_umem_fndecl_54371
165748 +enable_so_scif_setup_qp_connect_fndecl_54372 scif_setup_qp_connect fndecl 3 54372 NULL
165749 +enable_so_saved_priority_binder_transaction_54377 saved_priority binder_transaction 0 54377 NULL
165750 +enable_so_iwl_nvm_read_chunk_fndecl_54381 iwl_nvm_read_chunk fndecl 0 54381 NULL
165751 +enable_so_bt878_adr_bt878_54384 bt878_adr bt878 0 54384 NULL
165752 +enable_so_mt7601u_rx_next_seg_len_fndecl_54390 mt7601u_rx_next_seg_len fndecl 0 54390 NULL
165753 +enable_so_nbufs_mlx4_buf_54391 nbufs mlx4_buf 0 54391 NULL
165754 +enable_so_ring_size_netvsc_device_54397 ring_size netvsc_device 0 54397 NULL
165755 +enable_so_memsize_viafb_par_54399 memsize viafb_par 0 54399 NULL nohasharray
165756 +enable_so_SyS_init_module_fndecl_54399 SyS_init_module fndecl 2 54399 &enable_so_memsize_viafb_par_54399
165757 +enable_so_striped_read_fndecl_54401 striped_read fndecl 0-2 54401 NULL nohasharray
165758 +enable_so_leaf_shift_left_fndecl_54401 leaf_shift_left fndecl 3 54401 &enable_so_striped_read_fndecl_54401 nohasharray
165759 +enable_so_security_key_getsecurity_fndecl_54401 security_key_getsecurity fndecl 0 54401 &enable_so_leaf_shift_left_fndecl_54401
165760 +enable_so__osd_req_alist_elem_size_fndecl_54403 _osd_req_alist_elem_size fndecl 0-2 54403 NULL
165761 +enable_so_gr_ep0_respond_fndecl_54405 gr_ep0_respond fndecl 3 54405 NULL
165762 +enable_so_len_a2mp_cmd_54407 len a2mp_cmd 0 54407 NULL
165763 +enable_so_xfs_ialloc_ag_select_fndecl_54409 xfs_ialloc_ag_select fndecl 2-0 54409 NULL nohasharray
165764 +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
165765 +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
165766 +enable_so_mthca_alloc_icm_coherent_fndecl_54412 mthca_alloc_icm_coherent fndecl 3 54412 NULL
165767 +enable_so_qat_hal_get_ins_num_fndecl_54416 qat_hal_get_ins_num fndecl 0 54416 NULL nohasharray
165768 +enable_so_compat_SyS_pselect6_fndecl_54416 compat_SyS_pselect6 fndecl 1 54416 &enable_so_qat_hal_get_ins_num_fndecl_54416
165769 +enable_so_user_height_soc_camera_device_54417 user_height soc_camera_device 0 54417 NULL nohasharray
165770 +enable_so_nrof_flowrings_brcmf_bus_msgbuf_54417 nrof_flowrings brcmf_bus_msgbuf 0 54417 &enable_so_user_height_soc_camera_device_54417
165771 +enable_so_qlcnic_process_lro_fndecl_54418 qlcnic_process_lro fndecl 4-3 54418 NULL nohasharray
165772 +enable_so_subsampling_s5p_jpeg_ctx_54418 subsampling s5p_jpeg_ctx 0 54418 &enable_so_qlcnic_process_lro_fndecl_54418
165773 +enable_so_oxygen_pci_probe_fndecl_54423 oxygen_pci_probe fndecl 2 54423 NULL
165774 +enable_so_follow_page_mask_fndecl_54427 follow_page_mask fndecl 2 54427 NULL
165775 +enable_so_qnx6_get_devblock_fndecl_54428 qnx6_get_devblock fndecl 0 54428 NULL
165776 +enable_so_startbit_netlbl_lsm_catmap_54432 startbit netlbl_lsm_catmap 0 54432 NULL
165777 +enable_so_set_fd_set_fndecl_54434 set_fd_set fndecl 1 54434 NULL
165778 +enable_so_ieee80211_add_tx_radiotap_header_fndecl_54443 ieee80211_add_tx_radiotap_header fndecl 5 54443 NULL
165779 +enable_so_jbd2_journal_get_write_access_fndecl_54444 jbd2_journal_get_write_access fndecl 0 54444 NULL
165780 +enable_so_gfn_to_page_many_atomic_fndecl_54449 gfn_to_page_many_atomic fndecl 2 54449 NULL
165781 +enable_so_kimage_file_prepare_segments_fndecl_54451 kimage_file_prepare_segments fndecl 5 54451 NULL
165782 +enable_so_upd_ltab_fndecl_54459 upd_ltab fndecl 3 54459 NULL
165783 +enable_so_a_count_posix_acl_54461 a_count posix_acl 0 54461 NULL nohasharray
165784 +enable_so_vringh_init_kern_fndecl_54461 vringh_init_kern fndecl 3 54461 &enable_so_a_count_posix_acl_54461
165785 +enable_so_ide_mm_inb_fndecl_54462 ide_mm_inb fndecl 0 54462 NULL
165786 +enable_so_isr_rx_rdys_read_fndecl_54464 isr_rx_rdys_read fndecl 3 54464 NULL nohasharray
165787 +enable_so_nvkm_notify_init_fndecl_54464 nvkm_notify_init fndecl 7 54464 &enable_so_isr_rx_rdys_read_fndecl_54464
165788 +enable_so_shadow_rd16_fndecl_54468 shadow_rd16 fndecl 2 54468 NULL
165789 +enable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 3-4 54477 NULL
165790 +enable_so_initial_height_vmw_private_54479 initial_height vmw_private 0 54479 NULL
165791 +enable_so_spi_write_buf_fndecl_54490 spi_write_buf fndecl 2 54490 NULL
165792 +enable_so_n_chan_comedi_subdevice_54496 n_chan comedi_subdevice 0 54496 NULL
165793 +enable_so_dev_start_strip_zone_54501 dev_start strip_zone 0 54501 NULL
165794 +enable_so_max_fds_fdtable_54502 max_fds fdtable 0 54502 NULL
165795 +enable_so_mwifiex_set_gen_ie_helper_fndecl_54506 mwifiex_set_gen_ie_helper fndecl 3 54506 NULL
165796 +enable_so_sys_setsockopt_fndecl_54507 sys_setsockopt fndecl 5 54507 NULL
165797 +enable_so_m_agfrotor_xfs_mount_54510 m_agfrotor xfs_mount 0 54510 NULL nohasharray
165798 +enable_so_get_rxfh_indir_size_ethtool_ops_54510 get_rxfh_indir_size ethtool_ops 0 54510 &enable_so_m_agfrotor_xfs_mount_54510
165799 +enable_so_depth_camif_fmt_54512 depth camif_fmt 0 54512 NULL
165800 +enable_so___btrfs_buffered_write_fndecl_54524 __btrfs_buffered_write fndecl 3 54524 NULL
165801 +enable_so_ocfs2_read_dir_block_direct_fndecl_54528 ocfs2_read_dir_block_direct fndecl 2 54528 NULL
165802 +enable_so_bio_segments_fndecl_54531 bio_segments fndecl 0 54531 NULL
165803 +enable_so_b43_debugfs_write_fndecl_54533 b43_debugfs_write fndecl 3 54533 NULL
165804 +enable_so_num_ccells_cnic_local_54538 num_ccells cnic_local 0 54538 NULL
165805 +enable_so_v_sync_strt_wid_crtc_54541 v_sync_strt_wid crtc 0 54541 NULL nohasharray
165806 +enable_so_bandlength_Kiara_table_entry_54541 bandlength Kiara_table_entry 0 54541 &enable_so_v_sync_strt_wid_crtc_54541
165807 +enable_so_s_dev_table_count_exofs_fscb_54542 s_dev_table_count exofs_fscb 0 54542 NULL
165808 +enable_so_bpp_vardecl_tridentfb_c_54547 bpp vardecl_tridentfb.c 0 54547 NULL
165809 +enable_so_pages_snd_sg_buf_54557 pages snd_sg_buf 0 54557 NULL
165810 +enable_so_ieee80211_if_read_txpower_fndecl_54564 ieee80211_if_read_txpower fndecl 3 54564 NULL
165811 +enable_so_num_cache_leaves_vardecl_54568 num_cache_leaves vardecl 0 54568 NULL
165812 +enable_so_ath6kl_wmi_probe_report_req_cmd_fndecl_54576 ath6kl_wmi_probe_report_req_cmd fndecl 2 54576 NULL
165813 +enable_so_qnx6_check_first_superblock_fndecl_54577 qnx6_check_first_superblock fndecl 2 54577 NULL
165814 +enable_so_priority_sk_buff_54581 priority sk_buff 0 54581 NULL
165815 +enable_so_acpi_system_write_wakeup_device_fndecl_54582 acpi_system_write_wakeup_device fndecl 3 54582 NULL
165816 +enable_so_size_acpi_gpio_mapping_54583 size acpi_gpio_mapping 0 54583 NULL
165817 +enable_so_usb_serial_generic_prepare_write_buffer_fndecl_54586 usb_serial_generic_prepare_write_buffer fndecl 3 54586 NULL
165818 +enable_so_erase_size_mmc_card_54587 erase_size mmc_card 0 54587 NULL
165819 +enable_so_pci_netmos_9900_setup_fndecl_54589 pci_netmos_9900_setup fndecl 4 54589 NULL
165820 +enable_so_near_copies_geom_54591 near_copies geom 0 54591 NULL nohasharray
165821 +enable_so_width_cx231xx_54591 width cx231xx 0 54591 &enable_so_near_copies_geom_54591
165822 +enable_so_viafb_i2c_readbytes_fndecl_54593 viafb_i2c_readbytes fndecl 5 54593 NULL
165823 +enable_so_mipi_dsi_dcs_write_fndecl_54605 mipi_dsi_dcs_write fndecl 4 54605 NULL
165824 +enable_so_fat32_length_fat_bios_param_block_54606 fat32_length fat_bios_param_block 0 54606 NULL
165825 +enable_so_nfs4_get_acl_uncached_fndecl_54608 nfs4_get_acl_uncached fndecl 3 54608 NULL
165826 +enable_so_adfs_f_read_fndecl_54612 adfs_f_read fndecl 2 54612 NULL
165827 +enable_so_msg_print_text_fndecl_54618 msg_print_text fndecl 0 54618 NULL
165828 +enable_so_rx_rate_uap_rxpd_54620 rx_rate uap_rxpd 0 54620 NULL
165829 +enable_so_ieee80211_if_write_fndecl_54621 ieee80211_if_write fndecl 3 54621 NULL
165830 +enable_so_pages_in_unit___stripe_pages_2d_54623 pages_in_unit __stripe_pages_2d 0 54623 NULL
165831 +enable_so_fb_aper_offset_drm_radeon_private_54625 fb_aper_offset drm_radeon_private 0 54625 NULL
165832 +enable_so_ext4_new_meta_blocks_fndecl_54631 ext4_new_meta_blocks fndecl 0 54631 NULL
165833 +enable_so_len_ncp_privatedata_ioctl_54632 len ncp_privatedata_ioctl 0 54632 NULL
165834 +enable_so_vt1211_device_add_fndecl_54634 vt1211_device_add fndecl 1 54634 NULL
165835 +enable_so_bits_per_sample_soc_mbus_pixelfmt_54636 bits_per_sample soc_mbus_pixelfmt 0 54636 NULL nohasharray
165836 +enable_so_text_len_printk_log_54636 text_len printk_log 0 54636 &enable_so_bits_per_sample_soc_mbus_pixelfmt_54636
165837 +enable_so_n_tx_channels_efx_nic_54638 n_tx_channels efx_nic 0 54638 NULL nohasharray
165838 +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
165839 +enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644 extra_mpdu_prefix_len lib80211_crypto_ops 0 54644 NULL nohasharray
165840 +enable_so_nchannels_cosa_data_54644 nchannels cosa_data 0 54644 &enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644
165841 +enable_so_MaxChainDepth_mpt3sas_facts_54646 MaxChainDepth mpt3sas_facts 0 54646 NULL
165842 +enable_so_write_msg_fndecl_54647 write_msg fndecl 3 54647 NULL nohasharray
165843 +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
165844 +enable_so___inode_permission_fndecl_54654 __inode_permission fndecl 0 54654 NULL
165845 +enable_so_tx_flags_fe_priv_54658 tx_flags fe_priv 0 54658 NULL
165846 +enable_so_truncate_pagecache_fndecl_54660 truncate_pagecache fndecl 2 54660 NULL nohasharray
165847 +enable_so_reshape_position_mddev_54660 reshape_position mddev 0 54660 &enable_so_truncate_pagecache_fndecl_54660
165848 +enable_so_s_session_udf_sb_info_54662 s_session udf_sb_info 0 54662 NULL
165849 +enable_so_ssid_len_hostap_bss_info_54670 ssid_len hostap_bss_info 0 54670 NULL
165850 +enable_so_compat_SyS_kexec_load_fndecl_54672 compat_SyS_kexec_load fndecl 2 54672 NULL
165851 +enable_so_id_pps_device_54684 id pps_device 0 54684 NULL
165852 +enable_so_i2c_transfer_fndecl_54685 i2c_transfer fndecl 0 54685 NULL
165853 +enable_so_fwbulkwritelen_tda10048_config_54693 fwbulkwritelen tda10048_config 0 54693 NULL
165854 +enable_so_num_queue_pairs_i40e_vsi_54696 num_queue_pairs i40e_vsi 0 54696 NULL nohasharray
165855 +enable_so_mlx4_en_create_cq_fndecl_54696 mlx4_en_create_cq fndecl 3 54696 &enable_so_num_queue_pairs_i40e_vsi_54696
165856 +enable_so_rx_rx_hdr_overflow_read_fndecl_54697 rx_rx_hdr_overflow_read fndecl 3 54697 NULL
165857 +enable_so_max_pages_per_frmr_ocrdma_dev_attr_54699 max_pages_per_frmr ocrdma_dev_attr 0 54699 NULL
165858 +enable_so_lookahead_deflate_state_54700 lookahead deflate_state 0 54700 NULL
165859 +enable_so_bo_number_drm_amdgpu_bo_list_in_54706 bo_number drm_amdgpu_bo_list_in 0 54706 NULL
165860 +enable_so_nvkm_pm_create__fndecl_54707 nvkm_pm_create_ fndecl 4 54707 NULL
165861 +enable_so_read_endpoint_zr364xx_camera_54710 read_endpoint zr364xx_camera 0 54710 NULL
165862 +enable_so_process_rcvd_status_fndecl_54722 process_rcvd_status fndecl 3 54722 NULL
165863 +enable_so_coda_psdev_read_fndecl_54726 coda_psdev_read fndecl 3 54726 NULL
165864 +enable_so_proc_setgroups_write_fndecl_54732 proc_setgroups_write fndecl 3 54732 NULL
165865 +enable_so_queue_size_eata_info_54734 queue_size eata_info 0 54734 NULL nohasharray
165866 +enable_so_hwdep_read_locked_fndecl_54734 hwdep_read_locked fndecl 3 54734 &enable_so_queue_size_eata_info_54734
165867 +enable_so_brcmf_fws_hdrpull_fndecl_54736 brcmf_fws_hdrpull fndecl 3 54736 NULL
165868 +enable_so_wBytesPerInterval_usb_ss_ep_comp_descriptor_54739 wBytesPerInterval usb_ss_ep_comp_descriptor 0 54739 NULL
165869 +enable_so_sisusb_copy_memory_fndecl_54747 sisusb_copy_memory fndecl 4 54747 NULL
165870 +enable_so_end_writequeue_entry_54752 end writequeue_entry 0 54752 NULL
165871 +enable_so_lpfc_hba_queue_depth_init_fndecl_54754 lpfc_hba_queue_depth_init fndecl 2 54754 NULL
165872 +enable_so_size__drm_via_cmdbuffer_54755 size _drm_via_cmdbuffer 0 54755 NULL
165873 +enable_so_spi_xcomm_setup_transfer_fndecl_54757 spi_xcomm_setup_transfer fndecl 0 54757 NULL
165874 +enable_so_pwr_connection_out_of_sync_read_fndecl_54758 pwr_connection_out_of_sync_read fndecl 3 54758 NULL
165875 +enable_so_hsc_major_vardecl_hsi_char_c_54769 hsc_major vardecl_hsi_char.c 0 54769 NULL
165876 +enable_so_x_len_ccp_ecc_point_54774 x_len ccp_ecc_point 0 54774 NULL
165877 +enable_so_start_fstrim_range_54775 start fstrim_range 0 54775 NULL
165878 +enable_so_append_cnt_ixgbe_cb_54776 append_cnt ixgbe_cb 0 54776 NULL
165879 +enable_so_ext_channel_count_hda_gen_spec_54778 ext_channel_count hda_gen_spec 0 54778 NULL
165880 +enable_so_xfs_rtallocate_extent_fndecl_54783 xfs_rtallocate_extent fndecl 2-8-4 54783 NULL
165881 +enable_so_stv090x_read_reg_fndecl_54785 stv090x_read_reg fndecl 0 54785 NULL
165882 +enable_so_rcvegrbuf_chunks_qib_ctxtdata_54789 rcvegrbuf_chunks qib_ctxtdata 0 54789 NULL
165883 +enable_so_size_dvb_ringbuffer_54794 size dvb_ringbuffer 0 54794 NULL
165884 +enable_so_num_sg_agp_memory_54800 num_sg agp_memory 0 54800 NULL
165885 +enable_so_spk_msg_set_fndecl_54801 spk_msg_set fndecl 3 54801 NULL
165886 +enable_so_num_snd_bebob_meter_spec_54805 num snd_bebob_meter_spec 0 54805 NULL
165887 +enable_so_unlock_extent_cached_fndecl_54806 unlock_extent_cached fndecl 2-3 54806 NULL nohasharray
165888 +enable_so_buf_size__BIG_IOCTL_Command_struct_54806 buf_size _BIG_IOCTL_Command_struct 0 54806 &enable_so_unlock_extent_cached_fndecl_54806
165889 +enable_so_dma_reserve_vardecl_page_alloc_c_54807 dma_reserve vardecl_page_alloc.c 0 54807 NULL
165890 +enable_so_nr_cached_objects_super_operations_54808 nr_cached_objects super_operations 0 54808 NULL
165891 +enable_so_fsx_extsize_fsxattr_54812 fsx_extsize fsxattr 0 54812 NULL
165892 +enable_so_pci_request_regions_fndecl_54816 pci_request_regions fndecl 0 54816 NULL
165893 +enable_so_ep_out_ksdazzle_cb_54817 ep_out ksdazzle_cb 0 54817 NULL
165894 +enable_so_nv50_vm_create_fndecl_54824 nv50_vm_create fndecl 3-2-4 54824 NULL
165895 +enable_so_target_count_dm_ioctl_54826 target_count dm_ioctl 0 54826 NULL
165896 +enable_so_last_adv_data_len_discovery_state_54833 last_adv_data_len discovery_state 0 54833 NULL
165897 +enable_so_kernel_readv_fndecl_54834 kernel_readv fndecl 3 54834 NULL
165898 +enable_so_ixgbe_pci_sriov_configure_fndecl_54843 ixgbe_pci_sriov_configure fndecl 2 54843 NULL
165899 +enable_so_reiserfs_readpages_fndecl_54846 reiserfs_readpages fndecl 4 54846 NULL
165900 +enable_so_blkdev_direct_IO_fndecl_54850 blkdev_direct_IO fndecl 3 54850 NULL
165901 +enable_so_request_lock_fndecl_54853 request_lock fndecl 4 54853 NULL
165902 +enable_so_addr_len_net_device_54857 addr_len net_device 0 54857 NULL
165903 +enable_so_sr_blkno_ocfs2_suballoc_result_54860 sr_blkno ocfs2_suballoc_result 0 54860 NULL
165904 +enable_so_vb2_vmalloc_get_userptr_fndecl_54862 vb2_vmalloc_get_userptr fndecl 2-3 54862 NULL
165905 +enable_so_mru_ippp_struct_54863 mru ippp_struct 0 54863 NULL nohasharray
165906 +enable_so_shmem_file_llseek_fndecl_54863 shmem_file_llseek fndecl 2 54863 &enable_so_mru_ippp_struct_54863
165907 +enable_so_spi_register_board_info_fndecl_54864 spi_register_board_info fndecl 2 54864 NULL
165908 +enable_so_usb_dmac_desc_get_fndecl_54869 usb_dmac_desc_get fndecl 2 54869 NULL
165909 +enable_so_leaf_copy_boundary_item_fndecl_54870 leaf_copy_boundary_item fndecl 4 54870 NULL
165910 +enable_so_bufsize_nm256_stream_54875 bufsize nm256_stream 0 54875 NULL
165911 +enable_so_md_super_write_fndecl_54884 md_super_write fndecl 4-3 54884 NULL
165912 +enable_so_compress_sliced_buf_fndecl_54891 compress_sliced_buf fndecl 0 54891 NULL
165913 +enable_so___breadahead_fndecl_54896 __breadahead fndecl 3-2 54896 NULL
165914 +enable_so_num_uars_mlx5_uuar_info_54898 num_uars mlx5_uuar_info 0 54898 NULL
165915 +enable_so_dm_table_create_fndecl_54900 dm_table_create fndecl 3 54900 NULL
165916 +enable_so_buffer_size_qcaspi_54902 buffer_size qcaspi 0 54902 NULL nohasharray
165917 +enable_so_sr_read_tochdr_fndecl_54902 sr_read_tochdr fndecl 0 54902 &enable_so_buffer_size_qcaspi_54902
165918 +enable_so_rds_page_copy_user_fndecl_54904 rds_page_copy_user fndecl 4 54904 NULL
165919 +enable_so_ext4_es_cache_extent_fndecl_54906 ext4_es_cache_extent fndecl 2-3 54906 NULL
165920 +enable_so_numa_distance_cnt_vardecl_numa_c_54911 numa_distance_cnt vardecl_numa.c 0 54911 NULL
165921 +enable_so_iscsit_build_pdu_and_seq_lists_fndecl_54916 iscsit_build_pdu_and_seq_lists fndecl 2 54916 NULL
165922 +enable_so_sd_start_ov361x_fndecl_54922 sd_start_ov361x fndecl 0 54922 NULL
165923 +enable_so_line_length_fb_fix_screeninfo_54923 line_length fb_fix_screeninfo 0 54923 NULL nohasharray
165924 +enable_so_ipr_copy_ucode_buffer_fndecl_54923 ipr_copy_ucode_buffer fndecl 3 54923 &enable_so_line_length_fb_fix_screeninfo_54923
165925 +enable_so_sector_dm_io_region_54924 sector dm_io_region 0 54924 NULL
165926 +enable_so_cc2520_write_txfifo_fndecl_54930 cc2520_write_txfifo fndecl 3 54930 NULL
165927 +enable_so_xfs_end_io_direct_write_fndecl_54936 xfs_end_io_direct_write fndecl 2-3 54936 NULL
165928 +enable_so_blk_queue_logical_block_size_fndecl_54946 blk_queue_logical_block_size fndecl 2 54946 NULL nohasharray
165929 +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
165930 +enable_so_per_rxd_space_vxge_hw_ring_attr_54953 per_rxd_space vxge_hw_ring_attr 0 54953 NULL
165931 +enable_so_log_blocks_per_seg_f2fs_super_block_54960 log_blocks_per_seg f2fs_super_block 0 54960 NULL
165932 +enable_so_pci_enable_sriov_fndecl_54962 pci_enable_sriov fndecl 2 54962 NULL
165933 +enable_so_offset_usb_iso_packet_descriptor_54977 offset usb_iso_packet_descriptor 0 54977 NULL
165934 +enable_so_v4l2_src_w_yuv_playback_info_54979 v4l2_src_w yuv_playback_info 0 54979 NULL
165935 +enable_so_len_cn_msg_54981 len cn_msg 0 54981 NULL
165936 +enable_so_size_qib_rq_54983 size qib_rq 0 54983 NULL
165937 +enable_so_ocfs2_direct_IO_write_fndecl_54985 ocfs2_direct_IO_write fndecl 3 54985 NULL
165938 +enable_so_rs_switch_to_siso_fndecl_54987 rs_switch_to_siso fndecl 6 54987 NULL
165939 +enable_so_alloc_netdev_mqs_fndecl_54989 alloc_netdev_mqs fndecl 5-1-6 54989 NULL
165940 +enable_so_rx_frame_size_pn533_frame_ops_54990 rx_frame_size pn533_frame_ops 0 54990 NULL
165941 +enable_so_ns_last_cno_the_nilfs_54997 ns_last_cno the_nilfs 0 54997 NULL
165942 +enable_so_rx_bufsize_bc_state_54999 rx_bufsize bc_state 0 54999 NULL nohasharray
165943 +enable_so_send_wqe_overhead_fndecl_54999 send_wqe_overhead fndecl 0 54999 &enable_so_rx_bufsize_bc_state_54999
165944 +enable_so_udf_alloc_i_data_fndecl_55001 udf_alloc_i_data fndecl 2 55001 NULL
165945 +enable_so_of_irq_to_resource_fndecl_55008 of_irq_to_resource fndecl 2 55008 NULL
165946 +enable_so_pvr2_hdw_cpufw_get_fndecl_55011 pvr2_hdw_cpufw_get fndecl 0-2-4 55011 NULL
165947 +enable_so_reply_payload_rcv_len_iscsi_bsg_reply_55012 reply_payload_rcv_len iscsi_bsg_reply 0 55012 NULL
165948 +enable_so_of_pci_get_host_bridge_resources_fndecl_55015 of_pci_get_host_bridge_resources fndecl 3-2 55015 NULL
165949 +enable_so_max_strips_per_io_megasas_ctrl_info_55020 max_strips_per_io megasas_ctrl_info 0 55020 NULL
165950 +enable_so_cz_smu_populate_single_scratch_entry_fndecl_55022 cz_smu_populate_single_scratch_entry fndecl 3 55022 NULL
165951 +enable_so_command_setcompressionparams_fndecl_55026 command_setcompressionparams fndecl 0 55026 NULL
165952 +enable_so_get_memsize_fndecl_55032 get_memsize fndecl 0 55032 NULL
165953 +enable_so_ov518_i2c_r_fndecl_55039 ov518_i2c_r fndecl 0 55039 NULL
165954 +enable_so_length_i2400m_tlv_hdr_55043 length i2400m_tlv_hdr 0 55043 NULL
165955 +enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044 ieee80211_rx_mgmt_deauth fndecl 3 55044 NULL nohasharray
165956 +enable_so_hpi_alloc_control_cache_fndecl_55044 hpi_alloc_control_cache fndecl 1 55044 &enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044
165957 +enable_so_vram_end_amdgpu_mc_55051 vram_end amdgpu_mc 0 55051 NULL
165958 +enable_so_h_panel_info_55057 h panel_info 0 55057 NULL nohasharray
165959 +enable_so_osd_xres_vardecl_ivtvfb_c_55057 osd_xres vardecl_ivtvfb.c 0 55057 &enable_so_h_panel_info_55057
165960 +enable_so_olo_num_comps_pnfs_osd_layout_55062 olo_num_comps pnfs_osd_layout 0 55062 NULL nohasharray
165961 +enable_so___mic_dma_alloc_fndecl_55062 __mic_dma_alloc fndecl 2 55062 &enable_so_olo_num_comps_pnfs_osd_layout_55062
165962 +enable_so_mlx4_alloc_hwq_res_fndecl_55064 mlx4_alloc_hwq_res fndecl 3 55064 NULL
165963 +enable_so_restart_sge_fndecl_55067 restart_sge fndecl 0-4-3 55067 NULL
165964 +enable_so_sddr55_get_capacity_fndecl_55072 sddr55_get_capacity fndecl 0 55072 NULL
165965 +enable_so_p9_virtio_zc_request_fndecl_55074 p9_virtio_zc_request fndecl 6-5-7 55074 NULL
165966 +enable_so_dev_dm_ioctl_55075 dev dm_ioctl 0 55075 NULL
165967 +enable_so_ext4_iget_normal_fndecl_55086 ext4_iget_normal fndecl 2 55086 NULL nohasharray
165968 +enable_so_frame_len_b43legacy_rxhdr_fw3_55086 frame_len b43legacy_rxhdr_fw3 0 55086 &enable_so_ext4_iget_normal_fndecl_55086
165969 +enable_so_vlan_rx_desc_55097 vlan rx_desc 0 55097 NULL
165970 +enable_so_usrtags_sym_tcb_55101 usrtags sym_tcb 0 55101 NULL
165971 +enable_so_read_kmem_fndecl_55103 read_kmem fndecl 3 55103 NULL
165972 +enable_so_fat_mirror_bhs_fndecl_55104 fat_mirror_bhs fndecl 0 55104 NULL nohasharray
165973 +enable_so_nftids_tid_info_55104 nftids tid_info 0 55104 &enable_so_fat_mirror_bhs_fndecl_55104
165974 +enable_so_fat_dir_entries_fat_bios_param_block_55106 fat_dir_entries fat_bios_param_block 0 55106 NULL nohasharray
165975 +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
165976 +enable_so_pnfs_num_cont_bytes_fndecl_55107 pnfs_num_cont_bytes fndecl 0-2 55107 NULL nohasharray
165977 +enable_so_SyS_getxattr_fndecl_55107 SyS_getxattr fndecl 4 55107 &enable_so_pnfs_num_cont_bytes_fndecl_55107
165978 +enable_so_min_channel_count_hda_gen_spec_55108 min_channel_count hda_gen_spec 0 55108 NULL
165979 +enable_so_scatterwalk_ffwd_fndecl_55110 scatterwalk_ffwd fndecl 3 55110 NULL
165980 +enable_so_y_zoran_overlay_settings_55113 y zoran_overlay_settings 0 55113 NULL
165981 +enable_so_unpack_to_rootfs_fndecl_55124 unpack_to_rootfs fndecl 2 55124 NULL
165982 +enable_so_length_dw_radeon_cs_chunk_55128 length_dw radeon_cs_chunk 0 55128 NULL
165983 +enable_so_btrfs_search_old_slot_fndecl_55133 btrfs_search_old_slot fndecl 0 55133 NULL
165984 +enable_so_ea_data_len_gfs2_ea_header_55134 ea_data_len gfs2_ea_header 0 55134 NULL
165985 +enable_so_namelen_dlm_lock_params_55146 namelen dlm_lock_params 0 55146 NULL
165986 +enable_so_gigaset_isowbuf_getbytes_fndecl_55147 gigaset_isowbuf_getbytes fndecl 0-2 55147 NULL
165987 +enable_so_befs_find_brun_dblindirect_fndecl_55152 befs_find_brun_dblindirect fndecl 3 55152 NULL
165988 +enable_so_offset_req_ies_ndis_80211_assoc_info_55155 offset_req_ies ndis_80211_assoc_info 0 55155 NULL
165989 +enable_so_iwl_dbgfs_drv_rx_stats_read_fndecl_55157 iwl_dbgfs_drv_rx_stats_read fndecl 3 55157 NULL
165990 +enable_so_sb_start_md_rdev_55161 sb_start md_rdev 0 55161 NULL
165991 +enable_so_ext3_list_backups_fndecl_55164 ext3_list_backups fndecl 0 55164 NULL nohasharray
165992 +enable_so_buffer_to_user_fndecl_55164 buffer_to_user fndecl 3 55164 &enable_so_ext3_list_backups_fndecl_55164
165993 +enable_so_len_replay_entry_55168 len replay_entry 0 55168 NULL
165994 +enable_so_pid_filter_count_dvb_usb_adapter_fe_properties_55180 pid_filter_count dvb_usb_adapter_fe_properties 0 55180 NULL
165995 +enable_so_hpfs_load_code_page_fndecl_55184 hpfs_load_code_page fndecl 2 55184 NULL
165996 +enable_so_virtqueue_get_vring_size_fndecl_55188 virtqueue_get_vring_size fndecl 0 55188 NULL
165997 +enable_so_result_dio_55189 result dio 0 55189 NULL
165998 +enable_so_efx_mcdi_rpc_async_quiet_fndecl_55191 efx_mcdi_rpc_async_quiet fndecl 4-5 55191 NULL
165999 +enable_so_vmxnet3_change_mtu_fndecl_55195 vmxnet3_change_mtu fndecl 2 55195 NULL
166000 +enable_so_seg_count_agp_region_55196 seg_count agp_region 0 55196 NULL
166001 +enable_so_drm_gtf2_2c_fndecl_55202 drm_gtf2_2c fndecl 0 55202 NULL
166002 +enable_so_num_eqs_mlx4_caps_55225 num_eqs mlx4_caps 0 55225 NULL
166003 +enable_so_adv_instance_cnt_hci_dev_55228 adv_instance_cnt hci_dev 0 55228 NULL
166004 +enable_so_iwl_read_prph_fndecl_55229 iwl_read_prph fndecl 0 55229 NULL
166005 +enable_so_btrfs_prealloc_file_range_trans_fndecl_55231 btrfs_prealloc_file_range_trans fndecl 4 55231 NULL
166006 +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
166007 +enable_so_pstore_mkfile_fndecl_55235 pstore_mkfile fndecl 7 55235 NULL
166008 +enable_so_sb_logsunit_xfs_sb_55236 sb_logsunit xfs_sb 0 55236 NULL
166009 +enable_so_ibnl_put_attr_fndecl_55238 ibnl_put_attr fndecl 3 55238 NULL
166010 +enable_so_ieee80211_if_write_smps_fndecl_55245 ieee80211_if_write_smps fndecl 3 55245 NULL
166011 +enable_so_mwifiex_set_encode_fndecl_55247 mwifiex_set_encode fndecl 4 55247 NULL
166012 +enable_so_async_setkey_fndecl_55250 async_setkey fndecl 3 55250 NULL
166013 +enable_so_req_ring_size_srp_target_port_55251 req_ring_size srp_target_port 0 55251 NULL
166014 +enable_so_d_reclen_venus_dirent_55253 d_reclen venus_dirent 0 55253 NULL
166015 +enable_so_size_pci_cap_saved_data_55258 size pci_cap_saved_data 0 55258 NULL
166016 +enable_so___filemap_fdatawrite_range_fndecl_55259 __filemap_fdatawrite_range fndecl 0-2-3 55259 NULL
166017 +enable_so_iwl_dbgfs_bt_traffic_read_fndecl_55261 iwl_dbgfs_bt_traffic_read fndecl 3 55261 NULL
166018 +enable_so_bpf_convert_filter_fndecl_55264 bpf_convert_filter fndecl 2 55264 NULL
166019 +enable_so_port_rcvhdrq_size_ipath_portdata_55268 port_rcvhdrq_size ipath_portdata 0 55268 NULL
166020 +enable_so_mbox_count_blogic_adapter_55274 mbox_count blogic_adapter 0 55274 NULL
166021 +enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277 bSubframeSize uac_format_type_i_discrete_descriptor 0 55277 NULL nohasharray
166022 +enable_so_sgoffset_cxgbi_task_data_55277 sgoffset cxgbi_task_data 0 55277 &enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277
166023 +enable_so_apic_phys_vardecl_apic_c_55279 apic_phys vardecl_apic.c 0 55279 NULL nohasharray
166024 +enable_so_ext2_acl_from_disk_fndecl_55279 ext2_acl_from_disk fndecl 2 55279 &enable_so_apic_phys_vardecl_apic_c_55279 nohasharray
166025 +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
166026 +enable_so_ld_default_stripe_count_lov_desc_55281 ld_default_stripe_count lov_desc 0 55281 NULL
166027 +enable_so_vb2_dqbuf_fndecl_55284 vb2_dqbuf fndecl 0 55284 NULL
166028 +enable_so_hdrlen_ipv6_rt_hdr_55289 hdrlen ipv6_rt_hdr 0 55289 NULL nohasharray
166029 +enable_so_readlen_proc_data_55289 readlen proc_data 0 55289 &enable_so_hdrlen_ipv6_rt_hdr_55289
166030 +enable_so_c_can_read_msg_object_fndecl_55291 c_can_read_msg_object fndecl 3 55291 NULL
166031 +enable_so_sq905c_command_fndecl_55293 sq905c_command fndecl 0 55293 NULL
166032 +enable_so_regmap_irq_chip_get_base_fndecl_55298 regmap_irq_chip_get_base fndecl 0 55298 NULL
166033 +enable_so_upd_bytes_ubi_volume_55301 upd_bytes ubi_volume 0 55301 NULL
166034 +enable_so_memcg_update_all_caches_fndecl_55303 memcg_update_all_caches fndecl 1 55303 NULL
166035 +enable_so_mxl111sf_stream_config_bulk_fndecl_55308 mxl111sf_stream_config_bulk fndecl 2 55308 NULL
166036 +enable_so_xfs_dialloc_fndecl_55309 xfs_dialloc fndecl 2 55309 NULL
166037 +enable_so_xfs_log_mount_fndecl_55312 xfs_log_mount fndecl 4-3 55312 NULL
166038 +enable_so_dataflash_read_fndecl_55313 dataflash_read fndecl 3 55313 NULL nohasharray
166039 +enable_so_bm_page_io_async_fndecl_55313 bm_page_io_async fndecl 2 55313 &enable_so_dataflash_read_fndecl_55313
166040 +enable_so_mon_buff_area_shrink_fndecl_55317 mon_buff_area_shrink fndecl 2 55317 NULL
166041 +enable_so_ab8500_subscribe_write_fndecl_55323 ab8500_subscribe_write fndecl 3 55323 NULL
166042 +enable_so_pcibios_iov_resource_alignment_fndecl_55327 pcibios_iov_resource_alignment fndecl 0 55327 NULL
166043 +enable_so_proc_scsi_host_write_fndecl_55336 proc_scsi_host_write fndecl 3 55336 NULL
166044 +enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356 pipeline_pipeline_fifo_full_read fndecl 3 55356 NULL nohasharray
166045 +enable_so_alc_alloc_spec_fndecl_55356 alc_alloc_spec fndecl 2 55356 &enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356
166046 +enable_so_islpci_mgt_transmit_fndecl_55366 islpci_mgt_transmit fndecl 5 55366 NULL
166047 +enable_so_cdc_mbim_process_dgram_fndecl_55371 cdc_mbim_process_dgram fndecl 4-3 55371 NULL nohasharray
166048 +enable_so_sctp_addto_param_fndecl_55371 sctp_addto_param fndecl 2 55371 &enable_so_cdc_mbim_process_dgram_fndecl_55371
166049 +enable_so_ixgbe_dbg_netdev_ops_write_fndecl_55374 ixgbe_dbg_netdev_ops_write fndecl 3 55374 NULL
166050 +enable_so_connect_frontend_dmx_demux_55378 connect_frontend dmx_demux 0 55378 NULL
166051 +enable_so_DataLength_smb2_write_rsp_55389 DataLength smb2_write_rsp 0 55389 NULL
166052 +enable_so_st_sensors_spi_read_multiple_byte_fndecl_55393 st_sensors_spi_read_multiple_byte fndecl 4 55393 NULL
166053 +enable_so_dxfer_len_skd_sg_io_55394 dxfer_len skd_sg_io 0 55394 NULL
166054 +enable_so_nprim_symtab_55398 nprim symtab 0 55398 NULL
166055 +enable_so_skb_to_sgvec_fndecl_55400 skb_to_sgvec fndecl 0-4-3 55400 NULL
166056 +enable_so_periodic_size_oxu_hcd_55401 periodic_size oxu_hcd 0 55401 NULL
166057 +enable_so_data_len_nf_conntrack_helper_55405 data_len nf_conntrack_helper 0 55405 NULL
166058 +enable_so_shmem_pread_fast_fndecl_55408 shmem_pread_fast fndecl 3 55408 NULL
166059 +enable_so_min_param_range_55419 min param_range 0 55419 NULL
166060 +enable_so_memblock_trim_memory_fndecl_55423 memblock_trim_memory fndecl 1 55423 NULL
166061 +enable_so_snd_pcm_format_width_fndecl_55426 snd_pcm_format_width fndecl 0 55426 NULL
166062 +enable_so_hidp_set_raw_report_fndecl_55427 hidp_set_raw_report fndecl 4 55427 NULL
166063 +enable_so_rate_via_rate_lock_55434 rate via_rate_lock 0 55434 NULL
166064 +enable_so_rbd_osd_req_create_fndecl_55437 rbd_osd_req_create fndecl 3 55437 NULL
166065 +enable_so_wake_packet_length_iwl_wowlan_status_data_55438 wake_packet_length iwl_wowlan_status_data 0 55438 NULL
166066 +enable_so_nilfs_read_log_header_fndecl_55445 nilfs_read_log_header fndecl 2 55445 NULL nohasharray
166067 +enable_so_scan_read32_fndecl_55445 scan_read32 fndecl 0 55445 &enable_so_nilfs_read_log_header_fndecl_55445
166068 +enable_so_nilfs_direct_IO_fndecl_55447 nilfs_direct_IO fndecl 3 55447 NULL nohasharray
166069 +enable_so_dma_length_scatterlist_55447 dma_length scatterlist 0 55447 &enable_so_nilfs_direct_IO_fndecl_55447 nohasharray
166070 +enable_so_klen_nft_set_55447 klen nft_set 0 55447 &enable_so_dma_length_scatterlist_55447
166071 +enable_so_set_sample_rate_fndecl_55451 set_sample_rate fndecl 2 55451 NULL
166072 +enable_so_acpi_register_gsi_fndecl_55453 acpi_register_gsi fndecl 0 55453 NULL
166073 +enable_so_len_wm_coeff_parsed_coeff_55454 len wm_coeff_parsed_coeff 0 55454 NULL
166074 +enable_so_bcma_bus_next_num_vardecl_main_c_55461 bcma_bus_next_num vardecl_main.c 0 55461 NULL
166075 +enable_so_rx_ring2_size_vmxnet3_adapter_55465 rx_ring2_size vmxnet3_adapter 0 55465 NULL
166076 +enable_so_dma_buf_size_tegra_spi_data_55467 dma_buf_size tegra_spi_data 0 55467 NULL
166077 +enable_so_start_genius_cam_fndecl_55469 start_genius_cam fndecl 0 55469 NULL nohasharray
166078 +enable_so_macvtap_major_vardecl_macvtap_c_55469 macvtap_major vardecl_macvtap.c 0 55469 &enable_so_start_genius_cam_fndecl_55469
166079 +enable_so_status_queue_entry_55470 status queue_entry 0 55470 NULL
166080 +enable_so_xfs_bmapi_write_fndecl_55475 xfs_bmapi_write fndecl 4-3 55475 NULL
166081 +enable_so_ext4_da_write_begin_fndecl_55476 ext4_da_write_begin fndecl 4-3 55476 NULL
166082 +enable_so_vrefresh_drm_display_mode_55481 vrefresh drm_display_mode 0 55481 NULL nohasharray
166083 +enable_so___send_command_fndecl_55481 __send_command fndecl 5-7 55481 &enable_so_vrefresh_drm_display_mode_55481
166084 +enable_so_ocfs2_read_dx_leaf_fndecl_55488 ocfs2_read_dx_leaf fndecl 2 55488 NULL nohasharray
166085 +enable_so_data_offset_rndis_data_hdr_55488 data_offset rndis_data_hdr 0 55488 &enable_so_ocfs2_read_dx_leaf_fndecl_55488
166086 +enable_so_nft_set_ext_add_length_fndecl_55489 nft_set_ext_add_length fndecl 3 55489 NULL
166087 +enable_so_nvkm_volt_create__fndecl_55491 nvkm_volt_create_ fndecl 4 55491 NULL
166088 +enable_so_rx_jumbo_thresh_bnx2_55494 rx_jumbo_thresh bnx2 0 55494 NULL nohasharray
166089 +enable_so_r_offset_rds_page_remainder_55494 r_offset rds_page_remainder 0 55494 &enable_so_rx_jumbo_thresh_bnx2_55494 nohasharray
166090 +enable_so_data_length_iscsi_data_count_55494 data_length iscsi_data_count 0 55494 &enable_so_r_offset_rds_page_remainder_55494
166091 +enable_so_bl_pipe_downcall_fndecl_55499 bl_pipe_downcall fndecl 3 55499 NULL
166092 +enable_so_setup_nodes_for_search_fndecl_55515 setup_nodes_for_search fndecl 0 55515 NULL
166093 +enable_so_iram_offset_sst_res_info_55518 iram_offset sst_res_info 0 55518 NULL
166094 +enable_so_reg_bits_regmap_config_55521 reg_bits regmap_config 0 55521 NULL
166095 +enable_so_NumBlockTypes_cfi_intelext_regioninfo_55526 NumBlockTypes cfi_intelext_regioninfo 0 55526 NULL
166096 +enable_so_bofs_count_irlap_cb_55531 bofs_count irlap_cb 0 55531 NULL nohasharray
166097 +enable_so_iscsi_login_rx_data_fndecl_55531 iscsi_login_rx_data fndecl 3 55531 &enable_so_bofs_count_irlap_cb_55531
166098 +enable_so_blkdev_max_hw_sectors_vardecl_dev_c_55533 blkdev_max_hw_sectors vardecl_dev.c 0 55533 NULL
166099 +enable_so_crtcs_psb_ops_55540 crtcs psb_ops 0 55540 NULL
166100 +enable_so_rf_blkno_ocfs2_refcount_block_55545 rf_blkno ocfs2_refcount_block 0 55545 NULL
166101 +enable_so_isoc_enable_fndecl_55546 isoc_enable fndecl 0 55546 NULL
166102 +enable_so_tmp_afs_call_55554 tmp afs_call 0 55554 NULL
166103 +enable_so_usVSyncOffset__ATOM_DTD_FORMAT_55558 usVSyncOffset _ATOM_DTD_FORMAT 0 55558 NULL
166104 +enable_so_read_reg_fndecl_55560 read_reg fndecl 0 55560 NULL nohasharray
166105 +enable_so_filter_write_fndecl_55560 filter_write fndecl 3 55560 &enable_so_read_reg_fndecl_55560
166106 +enable_so_iv_len_ieee80211_key_conf_55561 iv_len ieee80211_key_conf 0 55561 NULL
166107 +enable_so_io_tlb_overflow_vardecl_swiotlb_c_55570 io_tlb_overflow vardecl_swiotlb.c 0 55570 NULL
166108 +enable_so_nv36_fb_tile_comp_fndecl_55572 nv36_fb_tile_comp fndecl 3 55572 NULL
166109 +enable_so_if_sdio_read_rx_len_fndecl_55579 if_sdio_read_rx_len fndecl 0 55579 NULL
166110 +enable_so_index_vardecl_pcsp_c_55582 index vardecl_pcsp.c 0 55582 NULL
166111 +enable_so_coh_page_bufsize_cl_object_header_55585 coh_page_bufsize cl_object_header 0 55585 NULL
166112 +enable_so_i915_setup_compression_fndecl_55588 i915_setup_compression fndecl 2 55588 NULL nohasharray
166113 +enable_so_exofs_file_fsync_fndecl_55588 exofs_file_fsync fndecl 2-3 55588 &enable_so_i915_setup_compression_fndecl_55588
166114 +enable_so_oz_cdev_write_fndecl_55599 oz_cdev_write fndecl 3 55599 NULL
166115 +enable_so_ext4_punch_hole_fndecl_55604 ext4_punch_hole fndecl 2-3 55604 NULL
166116 +enable_so_overlay_out_top_vivid_dev_55610 overlay_out_top vivid_dev 0 55610 NULL nohasharray
166117 +enable_so_amdgpu_vm_bo_map_fndecl_55610 amdgpu_vm_bo_map fndecl 5-3 55610 &enable_so_overlay_out_top_vivid_dev_55610
166118 +enable_so_udplite_manip_pkt_fndecl_55611 udplite_manip_pkt fndecl 4 55611 NULL
166119 +enable_so_length_ipw_rx_frame_55612 length ipw_rx_frame 0 55612 NULL
166120 +enable_so_alg_trunc_len_xfrm_algo_auth_55613 alg_trunc_len xfrm_algo_auth 0 55613 NULL
166121 +enable_so_f2fs_update_extent_tree_fndecl_55614 f2fs_update_extent_tree fndecl 2-3 55614 NULL
166122 +enable_so_initial_width_vmw_private_55615 initial_width vmw_private 0 55615 NULL nohasharray
166123 +enable_so_ybpp_camif_fmt_55615 ybpp camif_fmt 0 55615 &enable_so_initial_width_vmw_private_55615
166124 +enable_so_vmci_transport_dgram_dequeue_fndecl_55628 vmci_transport_dgram_dequeue fndecl 3 55628 NULL
166125 +enable_so_bin_string_fndecl_55631 bin_string fndecl 5-3 55631 NULL
166126 +enable_so_max_pkt_size_cx231xx_isoc_ctl_55637 max_pkt_size cx231xx_isoc_ctl 0 55637 NULL
166127 +enable_so_extra_tx_headroom_ieee80211_hw_55638 extra_tx_headroom ieee80211_hw 0 55638 NULL
166128 +enable_so_rcvidx_isar_hw_55643 rcvidx isar_hw 0 55643 NULL
166129 +enable_so_sr_read_sector_fndecl_55647 sr_read_sector fndecl 3 55647 NULL
166130 +enable_so_sg_nents_fndecl_55654 sg_nents fndecl 0 55654 NULL
166131 +enable_so_get_user_pages_fndecl_55655 get_user_pages fndecl 0-3 55655 NULL
166132 +enable_so_tda10071_rd_regs_fndecl_55659 tda10071_rd_regs fndecl 4 55659 NULL nohasharray
166133 +enable_so_ath6kl_roam_mode_write_fndecl_55659 ath6kl_roam_mode_write fndecl 3 55659 &enable_so_tda10071_rd_regs_fndecl_55659
166134 +enable_so_queue_logical_block_size_fndecl_55661 queue_logical_block_size fndecl 0 55661 NULL
166135 +enable_so_ath6kl_sdio_io_fndecl_55662 ath6kl_sdio_io fndecl 5 55662 NULL
166136 +enable_so_pagl_rightrec_xfs_perag_55670 pagl_rightrec xfs_perag 0 55670 NULL
166137 +enable_so_smsc47m1_handle_resources_fndecl_55676 smsc47m1_handle_resources fndecl 1 55676 NULL
166138 +enable_so_al_stripes_drbd_md_55679 al_stripes drbd_md 0 55679 NULL
166139 +enable_so_lpfc_idiag_ctlacc_read_fndecl_55684 lpfc_idiag_ctlacc_read fndecl 3 55684 NULL
166140 +enable_so_s_journal_inum_ext3_super_block_55685 s_journal_inum ext3_super_block 0 55685 NULL nohasharray
166141 +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
166142 +enable_so_rs_sta_dbgfs_drv_tx_stats_read_fndecl_55689 rs_sta_dbgfs_drv_tx_stats_read fndecl 3 55689 NULL
166143 +enable_so_stv06xx_write_bridge_fndecl_55690 stv06xx_write_bridge fndecl 0 55690 NULL
166144 +enable_so_read_file_tgt_rx_stats_fndecl_55691 read_file_tgt_rx_stats fndecl 3 55691 NULL
166145 +enable_so_omfs_iget_fndecl_55693 omfs_iget fndecl 2 55693 NULL
166146 +enable_so_rate_n_flags_iwl_rx_phy_res_55709 rate_n_flags iwl_rx_phy_res 0 55709 NULL nohasharray
166147 +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
166148 +enable_so_inline_wsize_rpcrdma_create_data_internal_55719 inline_wsize rpcrdma_create_data_internal 0 55719 NULL
166149 +enable_so_fbcon_resize_fndecl_55724 fbcon_resize fndecl 3-2 55724 NULL
166150 +enable_so_kvm_vcpu_gfn_to_page_fndecl_55725 kvm_vcpu_gfn_to_page fndecl 2 55725 NULL
166151 +enable_so_dst_command_fndecl_55728 dst_command fndecl 3 55728 NULL
166152 +enable_so_vsi_iext_vxfs_sb_info_55734 vsi_iext vxfs_sb_info 0 55734 NULL nohasharray
166153 +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
166154 +enable_so_btrfs_delalloc_reserve_metadata_fndecl_55736 btrfs_delalloc_reserve_metadata fndecl 0 55736 NULL
166155 +enable_so_cnt_mon_text_ptr_55741 cnt mon_text_ptr 0 55741 NULL
166156 +enable_so_max_eq_mlx4_func_55747 max_eq mlx4_func 0 55747 NULL
166157 +enable_so_nilfs_mdt_set_entry_size_fndecl_55751 nilfs_mdt_set_entry_size fndecl 2-3 55751 NULL nohasharray
166158 +enable_so_pad_len_ubifs_pad_node_55751 pad_len ubifs_pad_node 0 55751 &enable_so_nilfs_mdt_set_entry_size_fndecl_55751
166159 +enable_so_nilfs_cpfile_read_fndecl_55758 nilfs_cpfile_read fndecl 2 55758 NULL
166160 +enable_so_vga_switcheroo_debugfs_write_fndecl_55763 vga_switcheroo_debugfs_write fndecl 3 55763 NULL
166161 +enable_so_offset_xfs_bmalloca_55767 offset xfs_bmalloca 0 55767 NULL
166162 +enable_so_s_next_psn_qib_qp_55768 s_next_psn qib_qp 0 55768 NULL
166163 +enable_so_flag_lpfc_dmabufext_55771 flag lpfc_dmabufext 0 55771 NULL
166164 +enable_so_dump_emit_fndecl_55772 dump_emit fndecl 3 55772 NULL nohasharray
166165 +enable_so_cmd_read_size_wiimote_state_55772 cmd_read_size wiimote_state 0 55772 &enable_so_dump_emit_fndecl_55772
166166 +enable_so_ppp_write_fndecl_55777 ppp_write fndecl 3 55777 NULL
166167 +enable_so_width_cx25821_channel_55782 width cx25821_channel 0 55782 NULL
166168 +enable_so_MaxLiteCmds_vardecl_ips_c_55793 MaxLiteCmds vardecl_ips.c 0 55793 NULL
166169 +enable_so_lbs_lowrssi_write_fndecl_55802 lbs_lowrssi_write fndecl 3 55802 NULL
166170 +enable_so_media_dev_t_vardecl_media_devnode_c_55805 media_dev_t vardecl_media-devnode.c 0 55805 NULL
166171 +enable_so_velocity_rx_copy_fndecl_55812 velocity_rx_copy fndecl 2 55812 NULL
166172 +enable_so_init_send_hfcd_fndecl_55817 init_send_hfcd fndecl 1 55817 NULL
166173 +enable_so_result_status_yellowfin_desc_55822 result_status yellowfin_desc 0 55822 NULL
166174 +enable_so_sd_blksz_fw_dl_btmrvl_sdio_card_55832 sd_blksz_fw_dl btmrvl_sdio_card 0 55832 NULL
166175 +enable_so_dvb_ringbuffer_init_fndecl_55834 dvb_ringbuffer_init fndecl 3 55834 NULL
166176 +enable_so_or51132_readbuf_fndecl_55836 or51132_readbuf fndecl 3 55836 NULL
166177 +enable_so_rd_host_buf_pos_xilly_channel_55837 rd_host_buf_pos xilly_channel 0 55837 NULL
166178 +enable_so___jffs2_ref_totlen_fndecl_55842 __jffs2_ref_totlen fndecl 0 55842 NULL
166179 +enable_so_dr_free_blk_ocfs2_dx_root_block_55848 dr_free_blk ocfs2_dx_root_block 0 55848 NULL
166180 +enable_so_s_segment_usage_size_nilfs_super_block_55851 s_segment_usage_size nilfs_super_block 0 55851 NULL
166181 +enable_so___cfg80211_disconnected_fndecl_55853 __cfg80211_disconnected fndecl 3 55853 NULL
166182 +enable_so_ceph_msgpool_init_fndecl_55860 ceph_msgpool_init fndecl 3-4 55860 NULL nohasharray
166183 +enable_so_cw1200_queue_init_fndecl_55860 cw1200_queue_init fndecl 4 55860 &enable_so_ceph_msgpool_init_fndecl_55860
166184 +enable_so_do_raw_getsockopt_fndecl_55863 do_raw_getsockopt fndecl 0 55863 NULL
166185 +enable_so_cramino_fndecl_55864 cramino fndecl 0-2 55864 NULL
166186 +enable_so_nports_cyclades_card_55865 nports cyclades_card 0 55865 NULL nohasharray
166187 +enable_so_bio_integrity_bytes_fndecl_55865 bio_integrity_bytes fndecl 0-2 55865 &enable_so_nports_cyclades_card_55865
166188 +enable_so___find_pending_exception_fndecl_55867 __find_pending_exception fndecl 3 55867 NULL
166189 +enable_so___nonstatic_find_io_region_fndecl_55871 __nonstatic_find_io_region fndecl 2-3 55871 NULL
166190 +enable_so_brcms_c_compute_rspec_fndecl_55873 brcms_c_compute_rspec fndecl 0 55873 NULL
166191 +enable_so_cnic_alloc_dma_fndecl_55874 cnic_alloc_dma fndecl 3 55874 NULL
166192 +enable_so_usVSyncWidth__ATOM_DTD_FORMAT_55875 usVSyncWidth _ATOM_DTD_FORMAT 0 55875 NULL
166193 +enable_so_frame_size_usb_stream_config_55876 frame_size usb_stream_config 0 55876 NULL
166194 +enable_so_gtt_phys_start_psb_gtt_55877 gtt_phys_start psb_gtt 0 55877 NULL
166195 +enable_so_cp_table_size_amdgpu_rlc_55879 cp_table_size amdgpu_rlc 0 55879 NULL
166196 +enable_so_tomoyo_dump_page_fndecl_55882 tomoyo_dump_page fndecl 2 55882 NULL
166197 +enable_so_tlclk_major_vardecl_tlclk_c_55901 tlclk_major vardecl_tlclk.c 0 55901 NULL
166198 +enable_so_fragment_size_snd_compressed_buffer_55903 fragment_size snd_compressed_buffer 0 55903 NULL
166199 +enable_so_major_char_device_struct_55907 major char_device_struct 0 55907 NULL
166200 +enable_so_ad7280_chain_setup_fndecl_55912 ad7280_chain_setup fndecl 0 55912 NULL
166201 +enable_so_isr_fiqs_read_fndecl_55916 isr_fiqs_read fndecl 3 55916 NULL
166202 +enable_so_nf_nat_mangle_udp_packet_fndecl_55926 nf_nat_mangle_udp_packet fndecl 6-8 55926 NULL
166203 +enable_so_change_prot_numa_fndecl_55935 change_prot_numa fndecl 3-2 55935 NULL
166204 +enable_so_pktlen_pkt_attrib_55936 pktlen pkt_attrib 0 55936 NULL
166205 +enable_so_autofs4_write_fndecl_55944 autofs4_write fndecl 4 55944 NULL
166206 +enable_so_image_size_nvbios_pcirT_55946 image_size nvbios_pcirT 0 55946 NULL
166207 +enable_so_osst_seek_logical_blk_fndecl_55950 osst_seek_logical_blk fndecl 3 55950 NULL
166208 +enable_so_pktid_mt76_tx_status_55953 pktid mt76_tx_status 0 55953 NULL
166209 +enable_so_batadv_tvlv_realloc_packet_buff_fndecl_55955 batadv_tvlv_realloc_packet_buff fndecl 4-3 55955 NULL
166210 +enable_so___generic_file_write_iter_fndecl_55960 __generic_file_write_iter fndecl 0 55960 NULL
166211 +enable_so_hptiop_adjust_disk_queue_depth_fndecl_55961 hptiop_adjust_disk_queue_depth fndecl 2 55961 NULL
166212 +enable_so_pkey_table_len_mthca_limits_55962 pkey_table_len mthca_limits 0 55962 NULL
166213 +enable_so_transfer_buffer_length_urb_55970 transfer_buffer_length urb 0 55970 NULL nohasharray
166214 +enable_so_data2_sisusb_command_55970 data2 sisusb_command 0 55970 &enable_so_transfer_buffer_length_urb_55970
166215 +enable_so_reg_w_ixbuf_fndecl_55971 reg_w_ixbuf fndecl 4 55971 NULL
166216 +enable_so_subbuf_size_rchan_55979 subbuf_size rchan 0 55979 NULL nohasharray
166217 +enable_so_scsi_sense_length_se_cmd_55979 scsi_sense_length se_cmd 0 55979 &enable_so_subbuf_size_rchan_55979
166218 +enable_so_iwl_mvm_pass_packet_to_mac80211_fndecl_55980 iwl_mvm_pass_packet_to_mac80211 fndecl 6-4 55980 NULL
166219 +enable_so_ieee80211_if_read_num_sta_ps_fndecl_55985 ieee80211_if_read_num_sta_ps fndecl 3 55985 NULL
166220 +enable_so_platform_list_read_file_fndecl_55997 platform_list_read_file fndecl 3 55997 NULL
166221 +enable_so_mon_bin_get_data_fndecl_55998 mon_bin_get_data fndecl 0-4 55998 NULL
166222 +enable_so_max_degraded_r5conf_56004 max_degraded r5conf 0 56004 NULL
166223 +enable_so_len_pipe_buffer_56007 len pipe_buffer 0 56007 NULL
166224 +enable_so_qib_cdev_init_fndecl_56009 qib_cdev_init fndecl 1 56009 NULL
166225 +enable_so_ath10k_read_ani_enable_fndecl_56020 ath10k_read_ani_enable fndecl 3 56020 NULL
166226 +enable_so_i2400m_change_mtu_fndecl_56021 i2400m_change_mtu fndecl 2 56021 NULL
166227 +enable_so_num_pins_lola_pin_array_56022 num_pins lola_pin_array 0 56022 NULL
166228 +enable_so___ocfs2_change_file_space_fndecl_56023 __ocfs2_change_file_space fndecl 3 56023 NULL
166229 +enable_so_vm_memory_committed_fndecl_56024 vm_memory_committed fndecl 0 56024 NULL
166230 +enable_so_vlan_id_ib_mac_iocb_rsp_56025 vlan_id ib_mac_iocb_rsp 0 56025 NULL nohasharray
166231 +enable_so_bootmode_store_fndecl_56025 bootmode_store fndecl 4 56025 &enable_so_vlan_id_ib_mac_iocb_rsp_56025
166232 +enable_so_ov519_pkt_scan_fndecl_56026 ov519_pkt_scan fndecl 3 56026 NULL
166233 +enable_so___iio_device_attr_init_fndecl_56028 __iio_device_attr_init fndecl 0 56028 NULL
166234 +enable_so_can_nocow_extent_fndecl_56034 can_nocow_extent fndecl 2 56034 NULL
166235 +enable_so_SYSC_keyctl_fndecl_56035 SYSC_keyctl fndecl 4 56035 NULL
166236 +enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037 vbi_pixel_to_capture vardecl_saa7146_vbi.c 0 56037 NULL nohasharray
166237 +enable_so_sg_update_list_fndecl_56037 sg_update_list fndecl 2 56037 &enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037
166238 +enable_so_totalram_pages_vardecl_56043 totalram_pages vardecl 0 56043 NULL
166239 +enable_so_hpi_instream_read_buf_fndecl_56045 hpi_instream_read_buf fndecl 3 56045 NULL
166240 +enable_so_punit_base_intel_pmc_ipc_dev_56048 punit_base intel_pmc_ipc_dev 0 56048 NULL
166241 +enable_so_status_whc_qtd_56049 status whc_qtd 0 56049 NULL
166242 +enable_so_usb_wwan_setup_urb_fndecl_56054 usb_wwan_setup_urb fndecl 6-3-2 56054 NULL
166243 +enable_so_mod_xfs_alloc_arg_56058 mod xfs_alloc_arg 0 56058 NULL nohasharray
166244 +enable_so_bundle_size_gf100_grctx_oclass_56058 bundle_size gf100_grctx_oclass 0 56058 &enable_so_mod_xfs_alloc_arg_56058
166245 +enable_so_drm_mm_insert_helper_range_fndecl_56060 drm_mm_insert_helper_range fndecl 3 56060 NULL
166246 +enable_so_chainsize_ctlr_info_56067 chainsize ctlr_info 0 56067 NULL
166247 +enable_so_iov_iter_single_seg_count_fndecl_56069 iov_iter_single_seg_count fndecl 0 56069 NULL
166248 +enable_so_frag_ceph_mds_reply_dirfrag_56070 frag ceph_mds_reply_dirfrag 0 56070 NULL
166249 +enable_so_full_page_bnx2x_agg_info_56071 full_page bnx2x_agg_info 0 56071 NULL
166250 +enable_so_batch_start_offset_drm_i915_gem_execbuffer2_56077 batch_start_offset drm_i915_gem_execbuffer2 0 56077 NULL nohasharray
166251 +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
166252 +enable_so_num_chunks_drm_amdgpu_cs_in_56088 num_chunks drm_amdgpu_cs_in 0 56088 NULL
166253 +enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096 xprt_udp_slot_table_entries vardecl_xprtsock.c 0 56096 NULL nohasharray
166254 +enable_so_size_perf_event_header_56096 size perf_event_header 0 56096 &enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096
166255 +enable_so_datalength_fwheader_56097 datalength fwheader 0 56097 NULL
166256 +enable_so_snic_change_queue_depth_fndecl_56099 snic_change_queue_depth fndecl 2 56099 NULL
166257 +enable_so_proc_thread_self_readlink_fndecl_56102 proc_thread_self_readlink fndecl 3 56102 NULL
166258 +enable_so_l_sectBBsize_xlog_56103 l_sectBBsize xlog 0 56103 NULL
166259 +enable_so_max_frame_size__synclinkmp_info_56104 max_frame_size _synclinkmp_info 0 56104 NULL nohasharray
166260 +enable_so_sync_page_io_fndecl_56104 sync_page_io fndecl 3-2 56104 &enable_so_max_frame_size__synclinkmp_info_56104
166261 +enable_so_play_audio_cb_fndecl_56108 play_audio_cb fndecl 2 56108 NULL nohasharray
166262 +enable_so_maximum_input_absinfo_56108 maximum input_absinfo 0 56108 &enable_so_play_audio_cb_fndecl_56108
166263 +enable_so_p54_alloc_skb_fndecl_56109 p54_alloc_skb fndecl 3 56109 NULL
166264 +enable_so_zlib_inflate_blob_fndecl_56117 zlib_inflate_blob fndecl 2-4 56117 NULL nohasharray
166265 +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
166266 +enable_so_ssl_prev_nilfs_snapshot_list_56120 ssl_prev nilfs_snapshot_list 0 56120 NULL
166267 +enable_so_q0_depth_bna_rx_config_56122 q0_depth bna_rx_config 0 56122 NULL
166268 +enable_so_ath5k_setup_channels_fndecl_56123 ath5k_setup_channels fndecl 0 56123 NULL nohasharray
166269 +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
166270 +enable_so_usbvision_v4l2_read_fndecl_56129 usbvision_v4l2_read fndecl 3 56129 NULL
166271 +enable_so_size_direct_56131 size direct 0 56131 NULL nohasharray
166272 +enable_so_av7110_vbi_write_fndecl_56131 av7110_vbi_write fndecl 3 56131 &enable_so_size_direct_56131
166273 +enable_so_xenvif_gop_frag_copy_fndecl_56135 xenvif_gop_frag_copy fndecl 5-6 56135 NULL
166274 +enable_so_sl_max_ip_sf_socklist_56140 sl_max ip_sf_socklist 0 56140 NULL
166275 +enable_so__iwl_dbgfs_low_latency_write_fndecl_56153 _iwl_dbgfs_low_latency_write fndecl 3 56153 NULL
166276 +enable_so_reiserfs_resize_fndecl_56154 reiserfs_resize fndecl 2 56154 NULL
166277 +enable_so_i2c_hid_get_raw_report_fndecl_56155 i2c_hid_get_raw_report fndecl 4 56155 NULL
166278 +enable_so_ipx_pktsize_ipxhdr_56157 ipx_pktsize ipxhdr 0 56157 NULL
166279 +enable_so_nd_num_o2nm_node_56160 nd_num o2nm_node 0 56160 NULL
166280 +enable_so_block_len_extent_map_56171 block_len extent_map 0 56171 NULL nohasharray
166281 +enable_so_nl80211_send_disassoc_fndecl_56171 nl80211_send_disassoc fndecl 4 56171 &enable_so_block_len_extent_map_56171
166282 +enable_so_ivtv_read_pos_fndecl_56179 ivtv_read_pos fndecl 3 56179 NULL nohasharray
166283 +enable_so_iwl_calib_set_fndecl_56179 iwl_calib_set fndecl 3 56179 &enable_so_ivtv_read_pos_fndecl_56179
166284 +enable_so_csum_offset_virtio_net_hdr_56180 csum_offset virtio_net_hdr 0 56180 NULL
166285 +enable_so_sccb_reg_read_fndecl_56181 sccb_reg_read fndecl 0 56181 NULL nohasharray
166286 +enable_so_ivsize_vardecl_encrypted_c_56181 ivsize vardecl_encrypted.c 0 56181 &enable_so_sccb_reg_read_fndecl_56181
166287 +enable_so_sctp_make_heartbeat_ack_fndecl_56184 sctp_make_heartbeat_ack fndecl 4 56184 NULL
166288 +enable_so_rx_ring_size_bnx2_56185 rx_ring_size bnx2 0 56185 NULL
166289 +enable_so_size_netlbl_domhsh_tbl_56186 size netlbl_domhsh_tbl 0 56186 NULL
166290 +enable_so_wl1271_tx_fill_hdr_fndecl_56191 wl1271_tx_fill_hdr fndecl 4 56191 NULL
166291 +enable_so_qgroupid_btrfs_qgroup_56202 qgroupid btrfs_qgroup 0 56202 NULL nohasharray
166292 +enable_so_rx_data_fndecl_56202 rx_data fndecl 4-3 56202 &enable_so_qgroupid_btrfs_qgroup_56202
166293 +enable_so_dma_rx_size_sxgbe_priv_data_56205 dma_rx_size sxgbe_priv_data 0 56205 NULL
166294 +enable_so_dlen_pg_56210 dlen pg 0 56210 NULL
166295 +enable_so_jffs2_fill_wbuf_fndecl_56212 jffs2_fill_wbuf fndecl 3 56212 NULL
166296 +enable_so_width_v4l2_mbus_framefmt_56214 width v4l2_mbus_framefmt 0 56214 NULL
166297 +enable_so_sample_stack_user_perf_event_attr_56220 sample_stack_user perf_event_attr 0 56220 NULL
166298 +enable_so_offset_cifs_writedata_56222 offset cifs_writedata 0 56222 NULL nohasharray
166299 +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
166300 +enable_so_depth_s2255_fmt_56229 depth s2255_fmt 0 56229 NULL
166301 +enable_so_ocfs2_mv_xattr_buckets_fndecl_56231 ocfs2_mv_xattr_buckets fndecl 6-3-5-4 56231 NULL
166302 +enable_so_security_inode_permission_fndecl_56235 security_inode_permission fndecl 0 56235 NULL
166303 +enable_so_wm8350_register_led_fndecl_56237 wm8350_register_led fndecl 2-4-3 56237 NULL
166304 +enable_so_max_recv_dlength_iscsi_bus_flash_conn_56238 max_recv_dlength iscsi_bus_flash_conn 0 56238 NULL
166305 +enable_so_af9013_wr_regs_fndecl_56239 af9013_wr_regs fndecl 4 56239 NULL
166306 +enable_so_wBlockNumber_ms_bootblock_sysinf_56240 wBlockNumber ms_bootblock_sysinf 0 56240 NULL
166307 +enable_so_qlcnic_set_tx_ring_count_fndecl_56242 qlcnic_set_tx_ring_count fndecl 2 56242 NULL
166308 +enable_so_cfpkt_peek_head_fndecl_56245 cfpkt_peek_head fndecl 3 56245 NULL nohasharray
166309 +enable_so_dt_gpio_count_fndecl_56245 dt_gpio_count fndecl 0 56245 &enable_so_cfpkt_peek_head_fndecl_56245
166310 +enable_so_qtd_fill_fndecl_56249 qtd_fill fndecl 5-6-3-0-4 56249 NULL
166311 +enable_so_mwifiex_regrdwr_read_fndecl_56251 mwifiex_regrdwr_read fndecl 3 56251 NULL
166312 +enable_so_size_uvc_xu_control_query_56263 size uvc_xu_control_query 0 56263 NULL
166313 +enable_so_ib_ipath_max_srq_sges_vardecl_56266 ib_ipath_max_srq_sges vardecl 0 56266 NULL
166314 +enable_so_dmreq_start_crypt_config_56268 dmreq_start crypt_config 0 56268 NULL
166315 +enable_so_qp_alloc_res_fndecl_56275 qp_alloc_res fndecl 5 56275 NULL
166316 +enable_so_vyres_crtc_56276 vyres crtc 0 56276 NULL
166317 +enable_so_s_raid_stride_ext4_super_block_56277 s_raid_stride ext4_super_block 0 56277 NULL
166318 +enable_so_fi_ino_ocfs2_find_inode_args_56279 fi_ino ocfs2_find_inode_args 0 56279 NULL nohasharray
166319 +enable_so_pci_mmconfig_add_fndecl_56279 pci_mmconfig_add fndecl 2-3-4 56279 &enable_so_fi_ino_ocfs2_find_inode_args_56279
166320 +enable_so_dram_base_intel_sst_drv_56282 dram_base intel_sst_drv 0 56282 NULL
166321 +enable_so_x_max_wacom_features_56285 x_max wacom_features 0 56285 NULL
166322 +enable_so_header_length_txentry_desc_56288 header_length txentry_desc 0 56288 NULL
166323 +enable_so_nr_rates_audioformat_56293 nr_rates audioformat 0 56293 NULL
166324 +enable_so_ttymajor_vardecl_synclink_gt_c_56300 ttymajor vardecl_synclink_gt.c 0 56300 NULL
166325 +enable_so_pd_handles_sz_MPT2SAS_ADAPTER_56310 pd_handles_sz MPT2SAS_ADAPTER 0 56310 NULL
166326 +enable_so_ext4_fallocate_fndecl_56314 ext4_fallocate fndecl 3-4 56314 NULL
166327 +enable_so_essid_len_ipw_priv_56318 essid_len ipw_priv 0 56318 NULL
166328 +enable_so_gf100_ram_get_fndecl_56322 gf100_ram_get fndecl 2-3 56322 NULL
166329 +enable_so_SYSC_lgetxattr_fndecl_56330 SYSC_lgetxattr fndecl 4 56330 NULL
166330 +enable_so_ebt_compat_match_offset_fndecl_56334 ebt_compat_match_offset fndecl 0-2 56334 NULL
166331 +enable_so_pipeline_dec_packet_in_fifo_full_read_fndecl_56335 pipeline_dec_packet_in_fifo_full_read fndecl 3 56335 NULL
166332 +enable_so_ath6kl_wmi_ap_set_apsd_fndecl_56339 ath6kl_wmi_ap_set_apsd fndecl 2 56339 NULL
166333 +enable_so_drm_atomic_helper_plane_set_property_fndecl_56340 drm_atomic_helper_plane_set_property fndecl 3 56340 NULL
166334 +enable_so_blocked_fl_read_fndecl_56341 blocked_fl_read fndecl 3 56341 NULL
166335 +enable_so_tx_ring_size_bnx2_56345 tx_ring_size bnx2 0 56345 NULL
166336 +enable_so_blksize_vardecl_encrypted_c_56348 blksize vardecl_encrypted.c 0 56348 NULL nohasharray
166337 +enable_so_vmw_user_shader_alloc_fndecl_56348 vmw_user_shader_alloc fndecl 3 56348 &enable_so_blksize_vardecl_encrypted_c_56348
166338 +enable_so_gfs2_write_end_fndecl_56354 gfs2_write_end fndecl 5 56354 NULL
166339 +enable_so_dccp_ackvec_add_new_fndecl_56359 dccp_ackvec_add_new fndecl 2-3 56359 NULL
166340 +enable_so_acl_permission_check_fndecl_56360 acl_permission_check fndecl 0 56360 NULL
166341 +enable_so_i_ino_xfs_inode_56363 i_ino xfs_inode 0 56363 NULL
166342 +enable_so_interrupt_out_endpointAddress_usb_serial_port_56364 interrupt_out_endpointAddress usb_serial_port 0 56364 NULL
166343 +enable_so_ide_set_pio_mode_fndecl_56371 ide_set_pio_mode fndecl 2 56371 NULL
166344 +enable_so_stats_dot11RTSSuccessCount_read_fndecl_56378 stats_dot11RTSSuccessCount_read fndecl 3 56378 NULL
166345 +enable_so_len_asd_ha_addrspace_56381 len asd_ha_addrspace 0 56381 NULL
166346 +enable_so_sel_read_checkreqprot_fndecl_56383 sel_read_checkreqprot fndecl 3 56383 NULL
166347 +enable_so_nd_cmd_in_size_fndecl_56386 nd_cmd_in_size fndecl 0 56386 NULL
166348 +enable_so_stride_geom_56394 stride geom 0 56394 NULL
166349 +enable_so_ieee80211_fragment_fndecl_56395 ieee80211_fragment fndecl 4-3 56395 NULL
166350 +enable_so_lost_out_tcp_sock_56397 lost_out tcp_sock 0 56397 NULL
166351 +enable_so_buf_count_drm_device_dma_56399 buf_count drm_device_dma 0 56399 NULL
166352 +enable_so_ccw_clear_fndecl_56408 ccw_clear fndecl 3-5-6-4 56408 NULL
166353 +enable_so_f2fs_llseek_fndecl_56409 f2fs_llseek fndecl 2 56409 NULL
166354 +enable_so_ieee80211_auth_challenge_fndecl_56418 ieee80211_auth_challenge fndecl 3 56418 NULL
166355 +enable_so_notify_change_fndecl_56420 notify_change fndecl 0 56420 NULL
166356 +enable_so_max_recv_wr_ib_qp_cap_56426 max_recv_wr ib_qp_cap 0 56426 NULL
166357 +enable_so_max_eps_mv_u3d_56428 max_eps mv_u3d 0 56428 NULL
166358 +enable_so_llc_ui_sendmsg_fndecl_56432 llc_ui_sendmsg fndecl 3 56432 NULL nohasharray
166359 +enable_so_stat_len_sge_56432 stat_len sge 0 56432 &enable_so_llc_ui_sendmsg_fndecl_56432
166360 +enable_so_ath6kl_wmi_cancel_remain_on_chnl_cmd_fndecl_56434 ath6kl_wmi_cancel_remain_on_chnl_cmd fndecl 2 56434 NULL nohasharray
166361 +enable_so_write_node_fndecl_56434 write_node fndecl 4 56434 &enable_so_ath6kl_wmi_cancel_remain_on_chnl_cmd_fndecl_56434
166362 +enable_so_hsync_end_drm_display_mode_56439 hsync_end drm_display_mode 0 56439 NULL nohasharray
166363 +enable_so_bdbars_count_intel8x0_56439 bdbars_count intel8x0 0 56439 &enable_so_hsync_end_drm_display_mode_56439 nohasharray
166364 +enable_so_idx_lebs_ubifs_lp_stats_56439 idx_lebs ubifs_lp_stats 0 56439 &enable_so_bdbars_count_intel8x0_56439
166365 +enable_so_sas_change_queue_depth_fndecl_56440 sas_change_queue_depth fndecl 2 56440 NULL
166366 +enable_so_vlan_tag_lro_56441 vlan_tag lro 0 56441 NULL nohasharray
166367 +enable_so_fb_sys_write_fndecl_56441 fb_sys_write fndecl 0-3 56441 &enable_so_vlan_tag_lro_56441
166368 +enable_so_gtk_ivlen_iwl_mvm_56442 gtk_ivlen iwl_mvm 0 56442 NULL nohasharray
166369 +enable_so_num_rx_queues_igb_adapter_56442 num_rx_queues igb_adapter 0 56442 &enable_so_gtk_ivlen_iwl_mvm_56442
166370 +enable_so_DataTransferLength_bulk_cb_wrap_56447 DataTransferLength bulk_cb_wrap 0 56447 NULL
166371 +enable_so___ocfs2_increase_refcount_fndecl_56450 __ocfs2_increase_refcount fndecl 5-4 56450 NULL
166372 +enable_so_debug_debug6_read_fndecl_56451 debug_debug6_read fndecl 3 56451 NULL
166373 +enable_so_size_tcp_fastopen_request_56457 size tcp_fastopen_request 0 56457 NULL nohasharray
166374 +enable_so_block_dm_thin_lookup_result_56457 block dm_thin_lookup_result 0 56457 &enable_so_size_tcp_fastopen_request_56457
166375 +enable_so_winfo_size_data_queue_56462 winfo_size data_queue 0 56462 NULL nohasharray
166376 +enable_so_scnt_aoe_cfghdr_56462 scnt aoe_cfghdr 0 56462 &enable_so_winfo_size_data_queue_56462
166377 +enable_so_tpg_init_fndecl_56464 tpg_init fndecl 2-3 56464 NULL
166378 +enable_so_packet_sendmsg_fndecl_56465 packet_sendmsg fndecl 3 56465 NULL nohasharray
166379 +enable_so_ia_size_iattr_56465 ia_size iattr 0 56465 &enable_so_packet_sendmsg_fndecl_56465
166380 +enable_so__pci_add_cap_save_buffer_fndecl_56466 _pci_add_cap_save_buffer fndecl 4 56466 NULL
166381 +enable_so_SyS_poll_fndecl_56467 SyS_poll fndecl 2 56467 NULL
166382 +enable_so_banks_mca_config_56472 banks mca_config 0 56472 NULL
166383 +enable_so___erst_clear_from_storage_fndecl_56476 __erst_clear_from_storage fndecl 1 56476 NULL
166384 +enable_so_func_suspend_usb_function_56478 func_suspend usb_function 0 56478 NULL
166385 +enable_so_dataflash_read_fact_otp_fndecl_56487 dataflash_read_fact_otp fndecl 3-2 56487 NULL
166386 +enable_so_xen_allocate_irqs_dynamic_fndecl_56489 xen_allocate_irqs_dynamic fndecl 0 56489 NULL nohasharray
166387 +enable_so_pp_read_fndecl_56489 pp_read fndecl 3 56489 &enable_so_xen_allocate_irqs_dynamic_fndecl_56489
166388 +enable_so_ext4_split_convert_extents_fndecl_56493 ext4_split_convert_extents fndecl 0 56493 NULL
166389 +enable_so_active_ahd_linux_device_56494 active ahd_linux_device 0 56494 NULL
166390 +enable_so_nci_hci_send_cmd_fndecl_56495 nci_hci_send_cmd fndecl 5 56495 NULL
166391 +enable_so_free_bit_ocfs2_cached_block_free_56500 free_bit ocfs2_cached_block_free 0 56500 NULL
166392 +enable_so_choose_mtu_fndecl_56503 choose_mtu fndecl 0 56503 NULL nohasharray
166393 +enable_so_len_audit_proctitle_56503 len audit_proctitle 0 56503 &enable_so_choose_mtu_fndecl_56503
166394 +enable_so_process_ptload_program_headers_elf64_fndecl_56505 process_ptload_program_headers_elf64 fndecl 3-2 56505 NULL
166395 +enable_so_nvkm_fuse_create__fndecl_56507 nvkm_fuse_create_ fndecl 4 56507 NULL
166396 +enable_so_batadv_socket_receive_packet_fndecl_56509 batadv_socket_receive_packet fndecl 2 56509 NULL
166397 +enable_so_stream_size_yuv_playback_info_56511 stream_size yuv_playback_info 0 56511 NULL
166398 +enable_so_ntb_netdev_rx_handler_fndecl_56518 ntb_netdev_rx_handler fndecl 4 56518 NULL
166399 +enable_so_long_retry_limit_ipw2100_priv_56521 long_retry_limit ipw2100_priv 0 56521 NULL
166400 +enable_so___vb2_wait_for_done_vb_fndecl_56525 __vb2_wait_for_done_vb fndecl 0 56525 NULL
166401 +enable_so_xbfi_startblock_xfs_bmap_free_item_56529 xbfi_startblock xfs_bmap_free_item 0 56529 NULL
166402 +enable_so_vp_modern_find_vqs_fndecl_56530 vp_modern_find_vqs fndecl 2 56530 NULL nohasharray
166403 +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
166404 +enable_so_core_size_rw_module_56544 core_size_rw module 0 56544 NULL nohasharray
166405 +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
166406 +enable_so_max_ethqsets_sge_56552 max_ethqsets sge 0 56552 NULL
166407 +enable_so_cachefiles_cook_key_fndecl_56553 cachefiles_cook_key fndecl 2 56553 NULL
166408 +enable_so_sf_size_adapter_params_56574 sf_size adapter_params 0 56574 NULL
166409 +enable_so_sctp_tsnmap_grow_fndecl_56579 sctp_tsnmap_grow fndecl 2 56579 NULL
166410 +enable_so_nbp_vlan_delete_fndecl_56582 nbp_vlan_delete fndecl 2 56582 NULL
166411 +enable_so_buf_bytes_mmc_blk_ioc_data_56589 buf_bytes mmc_blk_ioc_data 0 56589 NULL
166412 +enable_so_offset_cramfs_inode_56601 offset cramfs_inode 0 56601 NULL
166413 +enable_so_qt2_write_fndecl_56603 qt2_write fndecl 4 56603 NULL
166414 +enable_so_cb_irq_yenta_socket_56604 cb_irq yenta_socket 0 56604 NULL
166415 +enable_so_security_size_rxrpc_connection_56613 security_size rxrpc_connection 0 56613 NULL
166416 +enable_so_pci_map_size_iadev_priv_56617 pci_map_size iadev_priv 0 56617 NULL
166417 +enable_so_ieee80211_tdls_mgmt_fndecl_56618 ieee80211_tdls_mgmt fndecl 10 56618 NULL
166418 +enable_so_afs_dir_iterate_block_fndecl_56630 afs_dir_iterate_block fndecl 3 56630 NULL nohasharray
166419 +enable_so_rproc_name_read_fndecl_56630 rproc_name_read fndecl 3 56630 &enable_so_afs_dir_iterate_block_fndecl_56630
166420 +enable_so_x509_note_issuer_fndecl_56631 x509_note_issuer fndecl 5 56631 NULL
166421 +enable_so_max_blk_count_mmc_host_56634 max_blk_count mmc_host 0 56634 NULL nohasharray
166422 +enable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 5 56634 &enable_so_max_blk_count_mmc_host_56634 nohasharray
166423 +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
166424 +enable_so_devt_device_56638 devt device 0 56638 NULL
166425 +enable_so_last_sect_blkif_request_segment_56644 last_sect blkif_request_segment 0 56644 NULL
166426 +enable_so_count_v4l2_requestbuffers_56650 count v4l2_requestbuffers 0 56650 NULL
166427 +enable_so_bytenr_btrfs_root_item_56657 bytenr btrfs_root_item 0 56657 NULL
166428 +enable_so___ksize_fndecl_56662 __ksize fndecl 0 56662 NULL
166429 +enable_so___memblock_find_range_top_down_fndecl_56669 __memblock_find_range_top_down fndecl 0-4-3-1-2 56669 NULL nohasharray
166430 +enable_so_csio_scsi_iqlen_vardecl_56669 csio_scsi_iqlen vardecl 0 56669 &enable_so___memblock_find_range_top_down_fndecl_56669
166431 +enable_so_cifs_writedata_alloc_fndecl_56675 cifs_writedata_alloc fndecl 1 56675 NULL nohasharray
166432 +enable_so_ath6kl_usb_submit_ctrl_in_fndecl_56675 ath6kl_usb_submit_ctrl_in fndecl 6 56675 &enable_so_cifs_writedata_alloc_fndecl_56675
166433 +enable_so_len_fw_desc_56676 len fw_desc 0 56676 NULL
166434 +enable_so_vp702x_usb_inout_cmd_fndecl_56679 vp702x_usb_inout_cmd fndecl 4-6 56679 NULL
166435 +enable_so_pbl_top_rdma_info_56683 pbl_top rdma_info 0 56683 NULL
166436 +enable_so_max_channels_hda_multi_out_56686 max_channels hda_multi_out 0 56686 NULL nohasharray
166437 +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
166438 +enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687 ath6kl_usb_post_recv_transfers fndecl 2 56687 NULL nohasharray
166439 +enable_so_npages_in_use_dma_pool_56687 npages_in_use dma_pool 0 56687 &enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687
166440 +enable_so_new_tape_buffer_fndecl_56689 new_tape_buffer fndecl 2 56689 NULL
166441 +enable_so_ks8851_rdreg_fndecl_56695 ks8851_rdreg fndecl 4 56695 NULL
166442 +enable_so_remove_migration_pte_fndecl_56701 remove_migration_pte fndecl 3 56701 NULL nohasharray
166443 +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
166444 +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
166445 +enable_so_usb_err_gspca_dev_56706 usb_err gspca_dev 0 56706 NULL nohasharray
166446 +enable_so_il_dbgfs_tx_stats_read_fndecl_56706 il_dbgfs_tx_stats_read fndecl 3 56706 &enable_so_usb_err_gspca_dev_56706
166447 +enable_so_zlib_inflate_workspacesize_fndecl_56716 zlib_inflate_workspacesize fndecl 0 56716 NULL
166448 +enable_so_qgroupid_btrfs_ioctl_qgroup_create_args_56717 qgroupid btrfs_ioctl_qgroup_create_args 0 56717 NULL
166449 +enable_so_munlock_vma_pages_range_fndecl_56718 munlock_vma_pages_range fndecl 2 56718 NULL
166450 +enable_so_ext4_get_group_number_fndecl_56720 ext4_get_group_number fndecl 0 56720 NULL nohasharray
166451 +enable_so_rcvegrbuf_size_qib_ctxtdata_56720 rcvegrbuf_size qib_ctxtdata 0 56720 &enable_so_ext4_get_group_number_fndecl_56720
166452 +enable_so_opcnt_nfsd4_compoundargs_56722 opcnt nfsd4_compoundargs 0 56722 NULL
166453 +enable_so_offset_cw1200_txpriv_56729 offset cw1200_txpriv 0 56729 NULL
166454 +enable_so_tx_ring_size_mvpp2_port_56735 tx_ring_size mvpp2_port 0 56735 NULL
166455 +enable_so_search_empty_fndecl_56737 search_empty fndecl 2 56737 NULL
166456 +enable_so_val_len_ceph_inode_xattr_56742 val_len ceph_inode_xattr 0 56742 NULL
166457 +enable_so_sb_logsectlog_xfs_sb_56750 sb_logsectlog xfs_sb 0 56750 NULL
166458 +enable_so_page_offset_skb_frag_struct_56751 page_offset skb_frag_struct 0 56751 NULL
166459 +enable_so_read_pipe_ezusb_priv_56753 read_pipe ezusb_priv 0 56753 NULL nohasharray
166460 +enable_so_xprt_complete_bc_request_fndecl_56753 xprt_complete_bc_request fndecl 2 56753 &enable_so_read_pipe_ezusb_priv_56753
166461 +enable_so_length_scatterlist_56760 length scatterlist 0 56760 NULL nohasharray
166462 +enable_so_cfg_fof_lpfc_hba_56760 cfg_fof lpfc_hba 0 56760 &enable_so_length_scatterlist_56760
166463 +enable_so_npkt_cam_56768 npkt cam 0 56768 NULL
166464 +enable_so_arch_ptrace_fndecl_56774 arch_ptrace fndecl 3 56774 NULL
166465 +enable_so_max_rpi_lpfc_max_cfg_param_56782 max_rpi lpfc_max_cfg_param 0 56782 NULL
166466 +enable_so_tx_rate_mwifiex_private_56784 tx_rate mwifiex_private 0 56784 NULL
166467 +enable_so_mem_size_mxt_data_56785 mem_size mxt_data 0 56785 NULL
166468 +enable_so_vc_saved_y_vc_data_56792 vc_saved_y vc_data 0 56792 NULL nohasharray
166469 +enable_so_ext4_group_overhead_blocks_fndecl_56792 ext4_group_overhead_blocks fndecl 0 56792 &enable_so_vc_saved_y_vc_data_56792
166470 +enable_so_nvkm_pmu_create__fndecl_56806 nvkm_pmu_create_ fndecl 4 56806 NULL
166471 +enable_so_context_id_bnx2fc_rport_56807 context_id bnx2fc_rport 0 56807 NULL nohasharray
166472 +enable_so_state_count_acpi_processor_performance_56807 state_count acpi_processor_performance 0 56807 &enable_so_context_id_bnx2fc_rport_56807
166473 +enable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 3 56808 NULL
166474 +enable_so_num_pages_vmci_queue_kern_if_56812 num_pages vmci_queue_kern_if 0 56812 NULL
166475 +enable_so_hugetlbfs_pagecache_page_fndecl_56822 hugetlbfs_pagecache_page fndecl 3 56822 NULL
166476 +enable_so_page_base_xdr_buf_56823 page_base xdr_buf 0 56823 NULL
166477 +enable_so_rs_get_best_rate_fndecl_56825 rs_get_best_rate fndecl 5-0 56825 NULL
166478 +enable_so_netdev_change_mtu_fndecl_56827 netdev_change_mtu fndecl 2 56827 NULL
166479 +enable_so_ext3_alloc_blocks_fndecl_56828 ext3_alloc_blocks fndecl 3 56828 NULL nohasharray
166480 +enable_so_SyS_syslog_fndecl_56828 SyS_syslog fndecl 3 56828 &enable_so_ext3_alloc_blocks_fndecl_56828
166481 +enable_so_io_size_smi_info_56832 io_size smi_info 0 56832 NULL
166482 +enable_so_truesize_sk_buff_56834 truesize sk_buff 0 56834 NULL
166483 +enable_so_sc_max_requests_svcxprt_rdma_56840 sc_max_requests svcxprt_rdma 0 56840 NULL
166484 +enable_so_tail_TxFifo_56844 tail TxFifo 0 56844 NULL
166485 +enable_so_capacity_alauda_media_info_56845 capacity alauda_media_info 0 56845 NULL
166486 +enable_so_tomoyo_read_self_fndecl_56848 tomoyo_read_self fndecl 3 56848 NULL
166487 +enable_so_blocks_mmc_test_area_56853 blocks mmc_test_area 0 56853 NULL
166488 +enable_so_transfer_one_spi_master_56858 transfer_one spi_master 0 56858 NULL
166489 +enable_so_dup_array_fndecl_56860 dup_array fndecl 3 56860 NULL
166490 +enable_so_max_cq_sz_mlx4_dev_cap_56868 max_cq_sz mlx4_dev_cap 0 56868 NULL nohasharray
166491 +enable_so_count_subheaders_fndecl_56868 count_subheaders fndecl 0 56868 &enable_so_max_cq_sz_mlx4_dev_cap_56868
166492 +enable_so_status_pipe_uas_dev_info_56869 status_pipe uas_dev_info 0 56869 NULL
166493 +enable_so_combined_count_ethtool_channels_56871 combined_count ethtool_channels 0 56871 NULL
166494 +enable_so_freecom_writedata_fndecl_56872 freecom_writedata fndecl 4 56872 NULL
166495 +enable_so_read_aperture_fndecl_56876 read_aperture fndecl 0 56876 NULL
166496 +enable_so_fat_rebuild_parent_fndecl_56877 fat_rebuild_parent fndecl 2 56877 NULL nohasharray
166497 +enable_so_ath6kl_wmi_set_pvb_cmd_fndecl_56877 ath6kl_wmi_set_pvb_cmd fndecl 2 56877 &enable_so_fat_rebuild_parent_fndecl_56877
166498 +enable_so_xfs_itruncate_extents_fndecl_56879 xfs_itruncate_extents fndecl 4 56879 NULL nohasharray
166499 +enable_so_scsi_execute_fndecl_56879 scsi_execute fndecl 5 56879 &enable_so_xfs_itruncate_extents_fndecl_56879
166500 +enable_so___btrfs_set_prop_fndecl_56883 __btrfs_set_prop fndecl 5 56883 NULL
166501 +enable_so_dx_dirent_blk_ocfs2_dx_entry_56884 dx_dirent_blk ocfs2_dx_entry 0 56884 NULL
166502 +enable_so_cmtp_send_frame_fndecl_56890 cmtp_send_frame fndecl 3 56890 NULL
166503 +enable_so_zr364xx_got_frame_fndecl_56891 zr364xx_got_frame fndecl 2 56891 NULL
166504 +enable_so_byte_count_drm_device_dma_56892 byte_count drm_device_dma 0 56892 NULL nohasharray
166505 +enable_so_prev_adaption_gsm_dlci_56892 prev_adaption gsm_dlci 0 56892 &enable_so_byte_count_drm_device_dma_56892
166506 +enable_so_width_font_desc_56899 width font_desc 0 56899 NULL
166507 +enable_so___process_new_xattr_fndecl_56906 __process_new_xattr fndecl 6-4 56906 NULL nohasharray
166508 +enable_so_length_fw_cdev_send_response_56906 length fw_cdev_send_response 0 56906 &enable_so___process_new_xattr_fndecl_56906
166509 +enable_so_max_port_number_tb_regs_switch_header_56907 max_port_number tb_regs_switch_header 0 56907 NULL
166510 +enable_so_diff_objects_assoc_array_ops_56914 diff_objects assoc_array_ops 0 56914 NULL
166511 +enable_so_cifs_fsync_fndecl_56917 cifs_fsync fndecl 2-3 56917 NULL
166512 +enable_so_comedi_buf_write_n_allocated_fndecl_56919 comedi_buf_write_n_allocated fndecl 0 56919 NULL
166513 +enable_so_ip6_find_1stfragopt_fndecl_56923 ip6_find_1stfragopt fndecl 0 56923 NULL nohasharray
166514 +enable_so_xt_compat_target_offset_fndecl_56923 xt_compat_target_offset fndecl 0 56923 &enable_so_ip6_find_1stfragopt_fndecl_56923
166515 +enable_so_il_dbgfs_qos_read_fndecl_56924 il_dbgfs_qos_read fndecl 3 56924 NULL nohasharray
166516 +enable_so_usb_gstrings_attach_fndecl_56924 usb_gstrings_attach fndecl 3 56924 &enable_so_il_dbgfs_qos_read_fndecl_56924
166517 +enable_so_vram_vardecl_nvidia_c_56925 vram vardecl_nvidia.c 0 56925 NULL
166518 +enable_so_beiscsi_process_async_pdu_fndecl_56929 beiscsi_process_async_pdu fndecl 6 56929 NULL
166519 +enable_so_data_len_ib_mac_iocb_rsp_56930 data_len ib_mac_iocb_rsp 0 56930 NULL
166520 +enable_so_align_buffer_sz_sdhci_host_56931 align_buffer_sz sdhci_host 0 56931 NULL
166521 +enable_so_csize_jffs2_tmp_dnode_info_56933 csize jffs2_tmp_dnode_info 0 56933 NULL
166522 +enable_so_max_tar_initio_host_56934 max_tar initio_host 0 56934 NULL
166523 +enable_so_hotadd_new_pgdat_fndecl_56936 hotadd_new_pgdat fndecl 2 56936 NULL
166524 +enable_so_vmw_gmr_bind_fndecl_56940 vmw_gmr_bind fndecl 3 56940 NULL
166525 +enable_so_drm_property_replace_global_blob_fndecl_56945 drm_property_replace_global_blob fndecl 3 56945 NULL
166526 +enable_so_len_rx_hdr_56949 len rx_hdr 0 56949 NULL
166527 +enable_so_target_submit_cmd_fndecl_56950 target_submit_cmd fndecl 6 56950 NULL
166528 +enable_so_memblock_set_node_fndecl_56955 memblock_set_node fndecl 2-1 56955 NULL
166529 +enable_so_DevSizeShift_qinfo_chip_56957 DevSizeShift qinfo_chip 0 56957 NULL
166530 +enable_so_i_lastalloc_affs_inode_info_56961 i_lastalloc affs_inode_info 0 56961 NULL
166531 +enable_so_cur_pkt_size_pktgen_dev_56962 cur_pkt_size pktgen_dev 0 56962 NULL
166532 +enable_so_n_mem_slots_qxl_device_56964 n_mem_slots qxl_device 0 56964 NULL
166533 +enable_so_maxresp_cached_nfsd4_channel_attrs_56966 maxresp_cached nfsd4_channel_attrs 0 56966 NULL
166534 +enable_so_spanned_pages_zone_56972 spanned_pages zone 0 56972 NULL
166535 +enable_so_ceph_write_end_fndecl_56973 ceph_write_end fndecl 5-3 56973 NULL
166536 +enable_so_irq_blk_threshold_read_fndecl_56977 irq_blk_threshold_read fndecl 3 56977 NULL
166537 +enable_so_arp_hdr_len_fndecl_56980 arp_hdr_len fndecl 0 56980 NULL
166538 +enable_so_find_next_chunk_fndecl_56983 find_next_chunk fndecl 0 56983 NULL
166539 +enable_so_ath6kl_wmi_startscan_cmd_fndecl_56985 ath6kl_wmi_startscan_cmd fndecl 8-2 56985 NULL
166540 +enable_so_i2c_hid_alloc_buffers_fndecl_56986 i2c_hid_alloc_buffers fndecl 2 56986 NULL
166541 +enable_so_max_packet_whc_qset_56991 max_packet whc_qset 0 56991 NULL nohasharray
166542 +enable_so_btrfs_dio_bio_alloc_fndecl_56991 btrfs_dio_bio_alloc fndecl 2 56991 &enable_so_max_packet_whc_qset_56991
166543 +enable_so_pvr2_stream_buffer_count_fndecl_56996 pvr2_stream_buffer_count fndecl 2 56996 NULL
166544 +enable_so_write_file_spectral_count_fndecl_57000 write_file_spectral_count fndecl 3 57000 NULL
166545 +enable_so_file_remove_privs_fndecl_57001 file_remove_privs fndecl 0 57001 NULL nohasharray
166546 +enable_so_num_tx_rings_bnx2_57001 num_tx_rings bnx2 0 57001 &enable_so_file_remove_privs_fndecl_57001
166547 +enable_so_edid_size_dlfb_data_57003 edid_size dlfb_data 0 57003 NULL nohasharray
166548 +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
166549 +enable_so_nv50_disp_dmac_create__fndecl_57011 nv50_disp_dmac_create_ fndecl 6 57011 NULL
166550 +enable_so_ext4_clear_blocks_fndecl_57012 ext4_clear_blocks fndecl 4-5 57012 NULL
166551 +enable_so_i2c_hack_wm8775_fndecl_57014 i2c_hack_wm8775 fndecl 4-6 57014 NULL
166552 +enable_so_expand_corename_fndecl_57021 expand_corename fndecl 2 57021 NULL
166553 +enable_so_buffer_bytes_max_snd_pcm_substream_57022 buffer_bytes_max snd_pcm_substream 0 57022 NULL
166554 +enable_so_sys_keyctl_fndecl_57023 sys_keyctl fndecl 4 57023 NULL nohasharray
166555 +enable_so_xs_send_kvec_fndecl_57023 xs_send_kvec fndecl 5-3 57023 &enable_so_sys_keyctl_fndecl_57023
166556 +enable_so_nfs_idmap_instantiate_fndecl_57026 nfs_idmap_instantiate fndecl 4 57026 NULL
166557 +enable_so_usb_packet_maxlen_usb_fifo_57029 usb_packet_maxlen usb_fifo 0 57029 NULL
166558 +enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031 xfrm_count_pfkey_enc_supported fndecl 0 57031 NULL nohasharray
166559 +enable_so_stacksize_xt_table_info_57031 stacksize xt_table_info 0 57031 &enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031
166560 +enable_so_do_munmap_fndecl_57035 do_munmap fndecl 2-3 57035 NULL
166561 +enable_so_size_mb_flash_desc_57036 size_mb flash_desc 0 57036 NULL
166562 +enable_so_read_file_node_recv_fndecl_57042 read_file_node_recv fndecl 3 57042 NULL
166563 +enable_so_ib_qib_max_cqes_vardecl_57049 ib_qib_max_cqes vardecl 0 57049 NULL
166564 +enable_so_i_subdirs_ceph_inode_info_57052 i_subdirs ceph_inode_info 0 57052 NULL
166565 +enable_so_index_scsi_disk_57053 index scsi_disk 0 57053 NULL
166566 +enable_so_nsindex_size_nvdimm_drvdata_57060 nsindex_size nvdimm_drvdata 0 57060 NULL
166567 +enable_so___btrfs_free_reserved_extent_fndecl_57061 __btrfs_free_reserved_extent fndecl 3-2 57061 NULL nohasharray
166568 +enable_so_size_garmin_packet_57061 size garmin_packet 0 57061 &enable_so___btrfs_free_reserved_extent_fndecl_57061
166569 +enable_so_log_blocks_per_seg_f2fs_sb_info_57063 log_blocks_per_seg f2fs_sb_info 0 57063 NULL
166570 +enable_so_ezusb_write_ltv_fndecl_57071 ezusb_write_ltv fndecl 4 57071 NULL
166571 +enable_so_vifs_state_read_fndecl_57073 vifs_state_read fndecl 3 57073 NULL
166572 +enable_so_set_one_prio_fndecl_57075 set_one_prio fndecl 2 57075 NULL
166573 +enable_so_mem_map_size_efx_nic_type_57089 mem_map_size efx_nic_type 0 57089 NULL
166574 +enable_so_num_uars_mlx4_caps_57093 num_uars mlx4_caps 0 57093 NULL
166575 +enable_so_ib_ipath_max_pds_vardecl_ipath_verbs_c_57102 ib_ipath_max_pds vardecl_ipath_verbs.c 0 57102 NULL
166576 +enable_so_part_shift_vardecl_loop_c_57103 part_shift vardecl_loop.c 0 57103 NULL nohasharray
166577 +enable_so_mcs7830_get_reg_fndecl_57103 mcs7830_get_reg fndecl 3 57103 &enable_so_part_shift_vardecl_loop_c_57103
166578 +enable_so_sync_pt_create_fndecl_57105 sync_pt_create fndecl 2 57105 NULL
166579 +enable_so_total_sections_f2fs_sb_info_57118 total_sections f2fs_sb_info 0 57118 NULL
166580 +enable_so_size_nvif_notify_57130 size nvif_notify 0 57130 NULL
166581 +enable_so_gsm_mux_rx_netchar_fndecl_57131 gsm_mux_rx_netchar fndecl 3 57131 NULL
166582 +enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132 ath10k_htt_rx_crypto_tail_len fndecl 0 57132 NULL nohasharray
166583 +enable_so_joydev_ioctl_fndecl_57132 joydev_ioctl fndecl 2 57132 &enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132
166584 +enable_so_msg_controllen_msghdr_57136 msg_controllen msghdr 0 57136 NULL
166585 +enable_so_max_write_same_sectors_queue_limits_57138 max_write_same_sectors queue_limits 0 57138 NULL
166586 +enable_so_ha_end_pfn_hv_hotadd_state_57139 ha_end_pfn hv_hotadd_state 0 57139 NULL
166587 +enable_so_pci_set_dma_max_seg_size_fndecl_57140 pci_set_dma_max_seg_size fndecl 2 57140 NULL
166588 +enable_so_isku_sysfs_read_keys_easyzone_fndecl_57141 isku_sysfs_read_keys_easyzone fndecl 6 57141 NULL
166589 +enable_so_pack_sg_list_p_fndecl_57142 pack_sg_list_p fndecl 7-6 57142 NULL
166590 +enable_so_sb_agblklog_xfs_sb_57145 sb_agblklog xfs_sb 0 57145 NULL
166591 +enable_so_vlan_dev_vlan_id_fndecl_57152 vlan_dev_vlan_id fndecl 0 57152 NULL nohasharray
166592 +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
166593 +enable_so_ofs_in_node_dnode_of_data_57156 ofs_in_node dnode_of_data 0 57156 NULL
166594 +enable_so_bytes_written_flags_cq_enet_rq_desc_57164 bytes_written_flags cq_enet_rq_desc 0 57164 NULL
166595 +enable_so_spi_wr_buf_fndecl_57169 spi_wr_buf fndecl 4 57169 NULL
166596 +enable_so_alloc_len_xps_map_57174 alloc_len xps_map 0 57174 NULL
166597 +enable_so_pd_points_ath5k_pdgain_info_57180 pd_points ath5k_pdgain_info 0 57180 NULL
166598 +enable_so_dpcm_playback_snd_soc_dai_link_57182 dpcm_playback snd_soc_dai_link 0 57182 NULL
166599 +enable_so_create_xattr_datum_fndecl_57183 create_xattr_datum fndecl 5 57183 NULL nohasharray
166600 +enable_so_irq_pkt_threshold_read_fndecl_57183 irq_pkt_threshold_read fndecl 3 57183 &enable_so_create_xattr_datum_fndecl_57183
166601 +enable_so_num_vfs_mlx4_dev_persistent_57187 num_vfs mlx4_dev_persistent 0 57187 NULL
166602 +enable_so_z1_zt_57189 z1 zt 0 57189 NULL
166603 +enable_so_cfs_trace_copyin_string_fndecl_57191 cfs_trace_copyin_string fndecl 4 57191 NULL
166604 +enable_so_OutputCount_smb2_ioctl_rsp_57198 OutputCount smb2_ioctl_rsp 0 57198 NULL
166605 +enable_so_ieee80211_if_read_dropped_frames_no_route_fndecl_57204 ieee80211_if_read_dropped_frames_no_route fndecl 3 57204 NULL
166606 +enable_so_sector_dm_crypt_io_57208 sector dm_crypt_io 0 57208 NULL
166607 +enable_so_frag_max_size_inet6_skb_parm_57210 frag_max_size inet6_skb_parm 0 57210 NULL
166608 +enable_so_osd_req_op_xattr_init_fndecl_57211 osd_req_op_xattr_init fndecl 6 57211 NULL
166609 +enable_so_mon_buff_area_free_fndecl_57212 mon_buff_area_free fndecl 2 57212 NULL
166610 +enable_so_le_min_key_size_read_fndecl_57214 le_min_key_size_read fndecl 3 57214 NULL
166611 +enable_so_overflow_maj_vardecl_uverbs_main_c_57216 overflow_maj vardecl_uverbs_main.c 0 57216 NULL
166612 +enable_so_mss_Vmxnet3_RxCompDescExt_57228 mss Vmxnet3_RxCompDescExt 0 57228 NULL
166613 +enable_so_RxDescriptors_vardecl_pch_gbe_param_c_57229 RxDescriptors vardecl_pch_gbe_param.c 0 57229 NULL
166614 +enable_so_len_setup_data_57234 len setup_data 0 57234 NULL nohasharray
166615 +enable_so_ufs_getfrag_block_fndecl_57234 ufs_getfrag_block fndecl 2 57234 &enable_so_len_setup_data_57234
166616 +enable_so_ext4_meta_bg_first_block_no_fndecl_57235 ext4_meta_bg_first_block_no fndecl 0-2 57235 NULL
166617 +enable_so_header_asix_rx_fixup_info_57237 header asix_rx_fixup_info 0 57237 NULL nohasharray
166618 +enable_so_li_namelen_nfsd4_link_57237 li_namelen nfsd4_link 0 57237 &enable_so_header_asix_rx_fixup_info_57237
166619 +enable_so_offset_ion_test_rw_data_57241 offset ion_test_rw_data 0 57241 NULL
166620 +enable_so_sys_dup3_fndecl_57246 sys_dup3 fndecl 2 57246 NULL
166621 +enable_so_maxlen_xfs_alloc_arg_57260 maxlen xfs_alloc_arg 0 57260 NULL
166622 +enable_so_si2165_read_fndecl_57262 si2165_read fndecl 4 57262 NULL
166623 +enable_so_sc18is602_setup_transfer_fndecl_57266 sc18is602_setup_transfer fndecl 0 57266 NULL
166624 +enable_so_fuse_dev_do_write_fndecl_57267 fuse_dev_do_write fndecl 3 57267 NULL
166625 +enable_so_mps_l2cap_le_conn_rsp_57280 mps l2cap_le_conn_rsp 0 57280 NULL
166626 +enable_so_entry_nr_kvm_assigned_msix_nr_57282 entry_nr kvm_assigned_msix_nr 0 57282 NULL
166627 +enable_so_packet_sz_musb_ep_57296 packet_sz musb_ep 0 57296 NULL nohasharray
166628 +enable_so_ovs_vport_alloc_fndecl_57296 ovs_vport_alloc fndecl 1 57296 &enable_so_packet_sz_musb_ep_57296
166629 +enable_so_create_entry_fndecl_57300 create_entry fndecl 2 57300 NULL
166630 +enable_so_tcp_off_tso_state_57305 tcp_off tso_state 0 57305 NULL
166631 +enable_so_qtd_copy_status_fndecl_57306 qtd_copy_status fndecl 0-4-3 57306 NULL
166632 +enable_so_ptk_ivlen_iwl_mvm_57307 ptk_ivlen iwl_mvm 0 57307 NULL
166633 +enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 usCRTC_V_SyncStart _ATOM_MODE_TIMING 0 57308 NULL nohasharray
166634 +enable_so_elf_map_fndecl_57308 elf_map fndecl 6 57308 &enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 nohasharray
166635 +enable_so_ip_setsockopt_fndecl_57308 ip_setsockopt fndecl 5-0 57308 &enable_so_elf_map_fndecl_57308
166636 +enable_so_nes_alloc_fast_reg_page_list_fndecl_57312 nes_alloc_fast_reg_page_list fndecl 2 57312 NULL
166637 +enable_so_orinoco_hw_get_essid_fndecl_57314 orinoco_hw_get_essid fndecl 0 57314 NULL
166638 +enable_so_aggr_size_rx_size_read_fndecl_57317 aggr_size_rx_size_read fndecl 3 57317 NULL
166639 +enable_so_interrupt_in_endpoint_size_ld_usb_57321 interrupt_in_endpoint_size ld_usb 0 57321 NULL
166640 +enable_so_acpi_gsi_to_irq_fndecl_57326 acpi_gsi_to_irq fndecl 1 57326 NULL
166641 +enable_so_fb_read_fndecl_57329 fb_read fndecl 3 57329 NULL
166642 +enable_so_musb_test_mode_write_fndecl_57341 musb_test_mode_write fndecl 3 57341 NULL
166643 +enable_so_ext4_expand_extra_isize_ea_fndecl_57344 ext4_expand_extra_isize_ea fndecl 2 57344 NULL
166644 +enable_so_root_hpfs_super_block_57345 root hpfs_super_block 0 57345 NULL
166645 +enable_so_ath10k_read_htt_max_amsdu_ampdu_fndecl_57346 ath10k_read_htt_max_amsdu_ampdu fndecl 3 57346 NULL
166646 +enable_so_align_nf_ct_ext_type_57348 align nf_ct_ext_type 0 57348 NULL
166647 +enable_so_ixgbe_pci_sriov_enable_fndecl_57353 ixgbe_pci_sriov_enable fndecl 2 57353 NULL
166648 +enable_so_lbs_debugfs_write_fndecl_57358 lbs_debugfs_write fndecl 3 57358 NULL
166649 +enable_so_usFirmwareUseInKb__ATOM_FIRMWARE_VRAM_RESERVE_INFO_57360 usFirmwareUseInKb _ATOM_FIRMWARE_VRAM_RESERVE_INFO 0 57360 NULL
166650 +enable_so_next_burst_len_iscsi_seq_57361 next_burst_len iscsi_seq 0 57361 NULL
166651 +enable_so_nfs_create_request_fndecl_57363 nfs_create_request fndecl 5-4 57363 NULL
166652 +enable_so_au_sd_ssr_57367 au sd_ssr 0 57367 NULL
166653 +enable_so_dqi_giblk_ocfs2_mem_dqinfo_57374 dqi_giblk ocfs2_mem_dqinfo 0 57374 NULL
166654 +enable_so_rcount_slip_57376 rcount slip 0 57376 NULL
166655 +enable_so_kfd_pasid_alloc_fndecl_57381 kfd_pasid_alloc fndecl 0 57381 NULL
166656 +enable_so_ext3_direct_IO_fndecl_57388 ext3_direct_IO fndecl 3 57388 NULL
166657 +enable_so_div64_u64_rem_fndecl_57393 div64_u64_rem fndecl 0 57393 NULL
166658 +enable_so_uhid_event_from_user_fndecl_57394 uhid_event_from_user fndecl 2 57394 NULL
166659 +enable_so_ocfs2_reflink_xattr_bucket_fndecl_57395 ocfs2_reflink_xattr_bucket fndecl 2-6-3 57395 NULL
166660 +enable_so_radeon_audio_acr_fndecl_57396 radeon_audio_acr fndecl 1 57396 NULL nohasharray
166661 +enable_so_pwr_tx_without_ps_read_fndecl_57396 pwr_tx_without_ps_read fndecl 3 57396 &enable_so_radeon_audio_acr_fndecl_57396
166662 +enable_so_kfd_ioctl_fndecl_57397 kfd_ioctl fndecl 2 57397 NULL
166663 +enable_so_nr_cpu_ids_vardecl_57399 nr_cpu_ids vardecl 0 57399 NULL
166664 +enable_so_nfs4_alloc_pages_fndecl_57401 nfs4_alloc_pages fndecl 1 57401 NULL
166665 +enable_so_skb_pull_fndecl_57408 skb_pull fndecl 2 57408 NULL nohasharray
166666 +enable_so_cryptlen_chachapoly_req_ctx_57408 cryptlen chachapoly_req_ctx 0 57408 &enable_so_skb_pull_fndecl_57408
166667 +enable_so_copy_page_from_iter_iovec_fndecl_57409 copy_page_from_iter_iovec fndecl 3 57409 NULL
166668 +enable_so__iwl_dbgfs_bt_tx_prio_write_fndecl_57418 _iwl_dbgfs_bt_tx_prio_write fndecl 3 57418 NULL
166669 +enable_so_numbered_hid_report_enum_57419 numbered hid_report_enum 0 57419 NULL
166670 +enable_so_blkdev_get_block_fndecl_57432 blkdev_get_block fndecl 2 57432 NULL
166671 +enable_so_key_size_ecryptfs_crypt_stat_57436 key_size ecryptfs_crypt_stat 0 57436 NULL
166672 +enable_so_pci_hp_diva_setup_fndecl_57437 pci_hp_diva_setup fndecl 4 57437 NULL
166673 +enable_so_send_control_msg_fndecl_57441 send_control_msg fndecl 6 57441 NULL
166674 +enable_so_convert_tail_for_hole_fndecl_57444 convert_tail_for_hole fndecl 3 57444 NULL
166675 +enable_so_segsize_loc_dn_scp_57445 segsize_loc dn_scp 0 57445 NULL
166676 +enable_so_dln2_i2c_read_fndecl_57452 dln2_i2c_read fndecl 0-4 57452 NULL
166677 +enable_so_page_offset_igb_rx_buffer_57453 page_offset igb_rx_buffer 0 57453 NULL
166678 +enable_so_diva_os_copy_to_user_fndecl_57455 diva_os_copy_to_user fndecl 4 57455 NULL
166679 +enable_so_rs_get_tbl_info_from_mcs_fndecl_57461 rs_get_tbl_info_from_mcs fndecl 1 57461 NULL
166680 +enable_so_cp_table_size_radeon_rlc_57462 cp_table_size radeon_rlc 0 57462 NULL
166681 +enable_so_ib_ipath_lkey_table_size_vardecl_57463 ib_ipath_lkey_table_size vardecl 0 57463 NULL
166682 +enable_so_r8712_usbctrl_vendorreq_fndecl_57466 r8712_usbctrl_vendorreq fndecl 6 57466 NULL
166683 +enable_so_ext3_splice_branch_fndecl_57472 ext3_splice_branch fndecl 6 57472 NULL
166684 +enable_so_drbd_bm_capacity_fndecl_57473 drbd_bm_capacity fndecl 0 57473 NULL
166685 +enable_so_leaf_copy_dir_entries_fndecl_57477 leaf_copy_dir_entries fndecl 6 57477 NULL
166686 +enable_so_nutrs_ufs_hba_57478 nutrs ufs_hba 0 57478 NULL
166687 +enable_so_data_len_ib_mad_send_buf_57480 data_len ib_mad_send_buf 0 57480 NULL
166688 +enable_so_item_udata_fndecl_57481 item_udata fndecl 0 57481 NULL nohasharray
166689 +enable_so_gfs2_log_get_bio_fndecl_57481 gfs2_log_get_bio fndecl 2 57481 &enable_so_item_udata_fndecl_57481
166690 +enable_so_brcmf_sdio_glom_len_fndecl_57483 brcmf_sdio_glom_len fndecl 0 57483 NULL
166691 +enable_so_mps_l2cap_le_conn_req_57484 mps l2cap_le_conn_req 0 57484 NULL
166692 +enable_so_iwlagn_hwrate_to_mac80211_idx_fndecl_57485 iwlagn_hwrate_to_mac80211_idx fndecl 0-1 57485 NULL
166693 +enable_so_phantom_get_free_fndecl_57489 phantom_get_free fndecl 0 57489 NULL
166694 +enable_so_consume_q_size_vmci_qp_57492 consume_q_size vmci_qp 0 57492 NULL
166695 +enable_so_max_srq_rqe_sge_ocrdma_mbx_query_config_57494 max_srq_rqe_sge ocrdma_mbx_query_config 0 57494 NULL
166696 +enable_so_r8a66597_urb_done_fndecl_57497 r8a66597_urb_done fndecl 3 57497 NULL
166697 +enable_so_ath10k_fw_stats_read_fndecl_57506 ath10k_fw_stats_read fndecl 3 57506 NULL
166698 +enable_so_usnic_uiom_get_pages_fndecl_57510 usnic_uiom_get_pages fndecl 1-2 57510 NULL nohasharray
166699 +enable_so_command_resume_fndecl_57510 command_resume fndecl 0 57510 &enable_so_usnic_uiom_get_pages_fndecl_57510
166700 +enable_so_raid10_size_fndecl_57512 raid10_size fndecl 0-3-2 57512 NULL
166701 +enable_so_s_log_block_size_ext4_super_block_57520 s_log_block_size ext4_super_block 0 57520 NULL
166702 +enable_so_igb_rd32_fndecl_57524 igb_rd32 fndecl 0 57524 NULL
166703 +enable_so_nvbios_extend_fndecl_57525 nvbios_extend fndecl 2 57525 NULL
166704 +enable_so_temp_begin_applesmc_registers_57532 temp_begin applesmc_registers 0 57532 NULL
166705 +enable_so_f2fs_direct_IO_fndecl_57535 f2fs_direct_IO fndecl 3 57535 NULL nohasharray
166706 +enable_so_height_tw68_dev_57535 height tw68_dev 0 57535 &enable_so_f2fs_direct_IO_fndecl_57535
166707 +enable_so_diFindFree_fndecl_57537 diFindFree fndecl 0-2 57537 NULL
166708 +enable_so_trimmed_cp_control_57542 trimmed cp_control 0 57542 NULL
166709 +enable_so_i_file_sec_hpfs_inode_info_57545 i_file_sec hpfs_inode_info 0 57545 NULL nohasharray
166710 +enable_so_y_max_wacom_features_57545 y_max wacom_features 0 57545 &enable_so_i_file_sec_hpfs_inode_info_57545
166711 +enable_so_ext4_ind_direct_IO_fndecl_57548 ext4_ind_direct_IO fndecl 3 57548 NULL nohasharray
166712 +enable_so_is_zd1211b_zd_usb_57548 is_zd1211b zd_usb 0 57548 &enable_so_ext4_ind_direct_IO_fndecl_57548
166713 +enable_so_nvif_notify_init_fndecl_57553 nvif_notify_init fndecl 8-7 57553 NULL
166714 +enable_so_last_to_afs_call_57563 last_to afs_call 0 57563 NULL
166715 +enable_so_ocfs2_increase_refcount_fndecl_57564 ocfs2_increase_refcount fndecl 5-4 57564 NULL
166716 +enable_so_resp_len_ql4_task_data_57567 resp_len ql4_task_data 0 57567 NULL
166717 +enable_so_offset_mtd_part_57572 offset mtd_part 0 57572 NULL
166718 +enable_so_i40e_receive_skb_fndecl_57575 i40e_receive_skb fndecl 3 57575 NULL nohasharray
166719 +enable_so_pvr2_ctrl_get_max_fndecl_57575 pvr2_ctrl_get_max fndecl 0 57575 &enable_so_i40e_receive_skb_fndecl_57575
166720 +enable_so_blkstol2_fndecl_57577 blkstol2 fndecl 0 57577 NULL
166721 +enable_so_opt_optl_optdata_dn_57580 opt_optl optdata_dn 0 57580 NULL
166722 +enable_so_shared_max_reservation_object_list_57587 shared_max reservation_object_list 0 57587 NULL
166723 +enable_so_data_dot_offset_xfs_dir_ops_57591 data_dot_offset xfs_dir_ops 0 57591 NULL nohasharray
166724 +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
166725 +enable_so_usCRTC_V_Disp__ATOM_MODE_TIMING_57594 usCRTC_V_Disp _ATOM_MODE_TIMING 0 57594 NULL
166726 +enable_so_parent_ino_nilfs_fid_57597 parent_ino nilfs_fid 0 57597 NULL
166727 +enable_so_update_regset_xstate_info_fndecl_57602 update_regset_xstate_info fndecl 1 57602 NULL nohasharray
166728 +enable_so_dn_fib_count_nhs_fndecl_57602 dn_fib_count_nhs fndecl 0 57602 &enable_so_update_regset_xstate_info_fndecl_57602
166729 +enable_so_sc_pwd_len_wl18xx_event_mailbox_57604 sc_pwd_len wl18xx_event_mailbox 0 57604 NULL nohasharray
166730 +enable_so_buffer_bytes_osst_buffer_57604 buffer_bytes osst_buffer 0 57604 &enable_so_sc_pwd_len_wl18xx_event_mailbox_57604
166731 +enable_so___tcp_push_pending_frames_fndecl_57607 __tcp_push_pending_frames fndecl 2 57607 NULL nohasharray
166732 +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
166733 +enable_so__add_to_r4w_fndecl_57611 _add_to_r4w fndecl 4 57611 NULL
166734 +enable_so_isr_dma1_done_read_fndecl_57612 isr_dma1_done_read fndecl 3 57612 NULL
166735 +enable_so_wWidth_uvc_frame_57615 wWidth uvc_frame 0 57615 NULL
166736 +enable_so_vmw_framebuffer_surface_dirty_fndecl_57623 vmw_framebuffer_surface_dirty fndecl 6 57623 NULL
166737 +enable_so_f2fs_collapse_range_fndecl_57627 f2fs_collapse_range fndecl 2 57627 NULL
166738 +enable_so_memblock_enforce_memory_limit_fndecl_57628 memblock_enforce_memory_limit fndecl 1 57628 NULL
166739 +enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630 ieee80211_mesh_rx_probe_req fndecl 3 57630 NULL nohasharray
166740 +enable_so_set_discoverable_fndecl_57630 set_discoverable fndecl 4 57630 &enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630
166741 +enable_so_ieee80211_ie_split_ric_fndecl_57640 ieee80211_ie_split_ric fndecl 0-7 57640 NULL nohasharray
166742 +enable_so_init_ipath_fndecl_57640 init_ipath fndecl 1 57640 &enable_so_ieee80211_ie_split_ric_fndecl_57640
166743 +enable_so_alloc_cc770dev_fndecl_57641 alloc_cc770dev fndecl 1 57641 NULL
166744 +enable_so_node_ino_f2fs_super_block_57645 node_ino f2fs_super_block 0 57645 NULL
166745 +enable_so_num_stripes_btrfs_bio_57647 num_stripes btrfs_bio 0 57647 NULL
166746 +enable_so_ctl_out_pipe_brcmf_usbdev_info_57648 ctl_out_pipe brcmf_usbdev_info 0 57648 NULL nohasharray
166747 +enable_so_c4iw_id_table_alloc_fndecl_57648 c4iw_id_table_alloc fndecl 3 57648 &enable_so_ctl_out_pipe_brcmf_usbdev_info_57648
166748 +enable_so_ttymajor_vardecl_moxa_c_57652 ttymajor vardecl_moxa.c 0 57652 NULL
166749 +enable_so_ql2xmaxqueues_vardecl_57653 ql2xmaxqueues vardecl 0 57653 NULL
166750 +enable_so_reserved_nvkm_instmem_57654 reserved nvkm_instmem 0 57654 NULL
166751 +enable_so_bnx2x_gunzip_fndecl_57655 bnx2x_gunzip fndecl 3 57655 NULL
166752 +enable_so_fuse_request_init_fndecl_57656 fuse_request_init fndecl 4 57656 NULL
166753 +enable_so_rbd_obj_method_sync_fndecl_57657 rbd_obj_method_sync fndecl 8-6 57657 NULL
166754 +enable_so_curheight_usb_usbvision_57669 curheight usb_usbvision 0 57669 NULL
166755 +enable_so_len_pn533_poll_modulations_57671 len pn533_poll_modulations 0 57671 NULL
166756 +enable_so_xfs_dir3_data_readahead_fndecl_57683 xfs_dir3_data_readahead fndecl 2 57683 NULL
166757 +enable_so_data_dma_kbtab_57688 data_dma kbtab 0 57688 NULL
166758 +enable_so_cfg80211_process_deauth_fndecl_57691 cfg80211_process_deauth fndecl 3 57691 NULL
166759 +enable_so_conflen_gss_krb5_enctype_57693 conflen gss_krb5_enctype 0 57693 NULL nohasharray
166760 +enable_so_phys_base_ptr_vbe_mode_ib_57693 phys_base_ptr vbe_mode_ib 0 57693 &enable_so_conflen_gss_krb5_enctype_57693
166761 +enable_so_nfsctl_transaction_read_fndecl_57705 nfsctl_transaction_read fndecl 3 57705 NULL
166762 +enable_so_residual_datacnt_initiator_status_57708 residual_datacnt initiator_status 0 57708 NULL
166763 +enable_so_uv_blade_nr_possible_cpus_fndecl_57713 uv_blade_nr_possible_cpus fndecl 0 57713 NULL
166764 +enable_so_de_size_fndecl_57715 de_size fndecl 0-1 57715 NULL
166765 +enable_so_ttm_bo_create_fndecl_57717 ttm_bo_create fndecl 2 57717 NULL
166766 +enable_so_nilfs_readpages_fndecl_57718 nilfs_readpages fndecl 4 57718 NULL
166767 +enable_so_nports_adap_ports_57721 nports adap_ports 0 57721 NULL
166768 +enable_so_read_file_recv_fndecl_57723 read_file_recv fndecl 3 57723 NULL
166769 +enable_so_partition_sched_domains_fndecl_57727 partition_sched_domains fndecl 1 57727 NULL
166770 +enable_so_hi6220_register_clkdiv_fndecl_57729 hi6220_register_clkdiv fndecl 7 57729 NULL
166771 +enable_so_byte_read_data_parport_operations_57730 byte_read_data parport_operations 0 57730 NULL
166772 +enable_so_max_devs_vardecl_aic94xx_hwi_c_57731 max_devs vardecl_aic94xx_hwi.c 0 57731 NULL
166773 +enable_so_opts1_cp_desc_57736 opts1 cp_desc 0 57736 NULL nohasharray
166774 +enable_so_compat_sys_io_getevents_fndecl_57736 compat_sys_io_getevents fndecl 3 57736 &enable_so_opts1_cp_desc_57736
166775 +enable_so_buffer_width_budget_57739 buffer_width budget 0 57739 NULL
166776 +enable_so_disk_recovery_offset_dm_raid_superblock_57740 disk_recovery_offset dm_raid_superblock 0 57740 NULL
166777 +enable_so_prepare_message_spi_master_57743 prepare_message spi_master 0 57743 NULL nohasharray
166778 +enable_so_used_ebs_ubi_ainf_volume_57743 used_ebs ubi_ainf_volume 0 57743 &enable_so_prepare_message_spi_master_57743
166779 +enable_so_batadv_socket_read_fndecl_57746 batadv_socket_read fndecl 3 57746 NULL
166780 +enable_so_usb_hcd_submit_urb_fndecl_57747 usb_hcd_submit_urb fndecl 0 57747 NULL
166781 +enable_so_acpi_ex_convert_to_ascii_fndecl_57750 acpi_ex_convert_to_ascii fndecl 0 57750 NULL
166782 +enable_so___videobuf_free_fndecl_57751 __videobuf_free fndecl 0 57751 NULL
166783 +enable_so_mdts_nvme_id_ctrl_57754 mdts nvme_id_ctrl 0 57754 NULL nohasharray
166784 +enable_so_res_hor_val_pvr2_hdw_57754 res_hor_val pvr2_hdw 0 57754 &enable_so_mdts_nvme_id_ctrl_57754
166785 +enable_so_remove_memory_fndecl_57755 remove_memory fndecl 3-2 57755 NULL
166786 +enable_so_cache_write_pipefs_fndecl_57757 cache_write_pipefs fndecl 3 57757 NULL
166787 +enable_so_timblogiw_read_fndecl_57762 timblogiw_read fndecl 3 57762 NULL
166788 +enable_so_kernel_sendmsg_fndecl_57763 kernel_sendmsg fndecl 0-5-4 57763 NULL
166789 +enable_so_numEntries__ATOM_PPLIB_ACPClk_Voltage_Limit_Table_57767 numEntries _ATOM_PPLIB_ACPClk_Voltage_Limit_Table 0 57767 NULL
166790 +enable_so_MaxDevHandle_mpt2sas_facts_57768 MaxDevHandle mpt2sas_facts 0 57768 NULL
166791 +enable_so_mdp_major_vardecl_57774 mdp_major vardecl 0 57774 NULL nohasharray
166792 +enable_so_minor_media_devnode_57774 minor media_devnode 0 57774 &enable_so_mdp_major_vardecl_57774
166793 +enable_so_read_data_parport_operations_57776 read_data parport_operations 0 57776 NULL
166794 +enable_so_send_set_info_fndecl_57779 send_set_info fndecl 7 57779 NULL
166795 +enable_so_end_numa_memblk_57780 end numa_memblk 0 57780 NULL nohasharray
166796 +enable_so_height_fb_copyarea_57780 height fb_copyarea 0 57780 &enable_so_end_numa_memblk_57780
166797 +enable_so_fp_array_size_bnx2x_57781 fp_array_size bnx2x 0 57781 NULL
166798 +enable_so_lpfc_idiag_extacc_read_fndecl_57790 lpfc_idiag_extacc_read fndecl 3 57790 NULL
166799 +enable_so_mp_rx_agg_buf_size_sdio_mmc_card_57794 mp_rx_agg_buf_size sdio_mmc_card 0 57794 NULL
166800 +enable_so_pos_lzma_header_57804 pos lzma_header 0 57804 NULL nohasharray
166801 +enable_so_spk_xe_vardecl_57804 spk_xe vardecl 0 57804 &enable_so_pos_lzma_header_57804
166802 +enable_so_blocks_mmc_data_57821 blocks mmc_data 0 57821 NULL
166803 +enable_so_force_size_vardecl_pcmciamtd_c_57827 force_size vardecl_pcmciamtd.c 0 57827 NULL
166804 +enable_so_ioc_count_obd_ioctl_data_57830 ioc_count obd_ioctl_data 0 57830 NULL
166805 +enable_so_vxfs_bmap_ext4_fndecl_57831 vxfs_bmap_ext4 fndecl 0-2 57831 NULL nohasharray
166806 +enable_so_iscsi_complete_pdu_fndecl_57831 iscsi_complete_pdu fndecl 4 57831 &enable_so_vxfs_bmap_ext4_fndecl_57831
166807 +enable_so_tx_frag_init_called_read_fndecl_57834 tx_frag_init_called_read fndecl 3 57834 NULL
166808 +enable_so___pn533_send_frame_async_fndecl_57850 __pn533_send_frame_async fndecl 4 57850 NULL nohasharray
166809 +enable_so_i_pos_hi_fat_fid_57850 i_pos_hi fat_fid 0 57850 &enable_so___pn533_send_frame_async_fndecl_57850
166810 +enable_so_vd_dsr_au_count_gru_vma_data_57855 vd_dsr_au_count gru_vma_data 0 57855 NULL
166811 +enable_so_nilfs_resize_fs_fndecl_57861 nilfs_resize_fs fndecl 2 57861 NULL
166812 +enable_so_len_splice_desc_57862 len splice_desc 0 57862 NULL
166813 +enable_so__usbctrl_vendorreq_async_write_fndecl_57866 _usbctrl_vendorreq_async_write fndecl 6 57866 NULL
166814 +enable_so_lpfc_sli4_get_els_iocb_cnt_fndecl_57869 lpfc_sli4_get_els_iocb_cnt fndecl 0 57869 NULL
166815 +enable_so_fsl_spi_setup_transfer_fndecl_57873 fsl_spi_setup_transfer fndecl 0 57873 NULL nohasharray
166816 +enable_so_mac_drv_rx_init_fndecl_57873 mac_drv_rx_init fndecl 2 57873 &enable_so_fsl_spi_setup_transfer_fndecl_57873 nohasharray
166817 +enable_so_joydev_handle_JSIOCSAXMAP_fndecl_57873 joydev_handle_JSIOCSAXMAP fndecl 3 57873 &enable_so_mac_drv_rx_init_fndecl_57873
166818 +enable_so_len_wmfw_coeff_item_57875 len wmfw_coeff_item 0 57875 NULL nohasharray
166819 +enable_so_length_ib_umad_packet_57875 length ib_umad_packet 0 57875 &enable_so_len_wmfw_coeff_item_57875 nohasharray
166820 +enable_so_init_pci_serial_quirk_57875 init pci_serial_quirk 0 57875 &enable_so_length_ib_umad_packet_57875
166821 +enable_so_v4l2_src_h_yuv_playback_info_57877 v4l2_src_h yuv_playback_info 0 57877 NULL
166822 +enable_so_xdi_copy_to_user_fndecl_57879 xdi_copy_to_user fndecl 4 57879 NULL
166823 +enable_so_max_devices_hpt_iop_request_get_config_57889 max_devices hpt_iop_request_get_config 0 57889 NULL
166824 +enable_so_wpa_local_info_57892 wpa local_info 0 57892 NULL
166825 +enable_so_psn_qib_swqe_57901 psn qib_swqe 0 57901 NULL
166826 +enable_so_fat_sectors_fat_bios_param_block_57917 fat_sectors fat_bios_param_block 0 57917 NULL
166827 +enable_so_vma_merge_fndecl_57925 vma_merge fndecl 4-3 57925 NULL
166828 +enable_so_MaxXmitDataSegmentLength_iscsi_conn_ops_57926 MaxXmitDataSegmentLength iscsi_conn_ops 0 57926 NULL
166829 +enable_so_radeon_audio_update_acr_fndecl_57929 radeon_audio_update_acr fndecl 2 57929 NULL
166830 +enable_so__alloc_set_attr_list_fndecl_57932 _alloc_set_attr_list fndecl 4 57932 NULL
166831 +enable_so_memblock_set_current_limit_fndecl_57935 memblock_set_current_limit fndecl 1 57935 NULL
166832 +enable_so_event_heart_beat_read_fndecl_57938 event_heart_beat_read fndecl 3 57938 NULL
166833 +enable_so_nand_ecc_test_run_fndecl_57941 nand_ecc_test_run fndecl 1 57941 NULL
166834 +enable_so_ilf_size_xfs_inode_log_format_57942 ilf_size xfs_inode_log_format 0 57942 NULL
166835 +enable_so_vmci_handle_arr_create_fndecl_57944 vmci_handle_arr_create fndecl 1 57944 NULL
166836 +enable_so_eeprom_size_rt2x00_ops_57953 eeprom_size rt2x00_ops 0 57953 NULL
166837 +enable_so_logical_block_count_msb_data_57955 logical_block_count msb_data 0 57955 NULL
166838 +enable_so_i2c_read_fndecl_57956 i2c_read fndecl 0 57956 NULL
166839 +enable_so_ticket_len_rxkad_response_57960 ticket_len rxkad_response 0 57960 NULL
166840 +enable_so_filemap_check_errors_fndecl_57965 filemap_check_errors fndecl 0 57965 NULL
166841 +enable_so_mei_cl_alloc_cb_fndecl_57971 mei_cl_alloc_cb fndecl 2 57971 NULL
166842 +enable_so_sel_write_enforce_fndecl_57973 sel_write_enforce fndecl 3 57973 NULL
166843 +enable_so_rds_rm_size_fndecl_57975 rds_rm_size fndecl 0-2 57975 NULL
166844 +enable_so_hpfs_map_anode_fndecl_57993 hpfs_map_anode fndecl 2 57993 NULL
166845 +enable_so_faultin_page_fndecl_57994 faultin_page fndecl 3 57994 NULL
166846 +enable_so_perf_sample_ustack_size_fndecl_57995 perf_sample_ustack_size fndecl 0-2-1 57995 NULL
166847 +enable_so_max_idx_node_sz_ubifs_info_57997 max_idx_node_sz ubifs_info 0 57997 NULL
166848 +enable_so_SSIDlen_StatusRid_58002 SSIDlen StatusRid 0 58002 NULL nohasharray
166849 +enable_so_di_size_dinode_58002 di_size dinode 0 58002 &enable_so_SSIDlen_StatusRid_58002
166850 +enable_so_set_alt_usb_function_58003 set_alt usb_function 0 58003 NULL
166851 +enable_so_max_master_fs_adau1977_58013 max_master_fs adau1977 0 58013 NULL nohasharray
166852 +enable_so_ipath_reg_user_mr_fndecl_58013 ipath_reg_user_mr fndecl 2-3-4 58013 &enable_so_max_master_fs_adau1977_58013
166853 +enable_so_pvscsi_change_queue_depth_fndecl_58014 pvscsi_change_queue_depth fndecl 2 58014 NULL
166854 +enable_so_atl2_change_mtu_fndecl_58020 atl2_change_mtu fndecl 2 58020 NULL nohasharray
166855 +enable_so_wdata_prepare_pages_fndecl_58020 wdata_prepare_pages fndecl 0 58020 &enable_so_atl2_change_mtu_fndecl_58020
166856 +enable_so_xdr_buf_subsegment_fndecl_58027 xdr_buf_subsegment fndecl 4-3 58027 NULL
166857 +enable_so_xfs_extent_busy_reuse_fndecl_58034 xfs_extent_busy_reuse fndecl 3-4 58034 NULL
166858 +enable_so_rindex_sc18is602_58043 rindex sc18is602 0 58043 NULL nohasharray
166859 +enable_so_rtw_check_beacon_data23a_fndecl_58043 rtw_check_beacon_data23a fndecl 3 58043 &enable_so_rindex_sc18is602_58043
166860 +enable_so_len_mic_vring_58048 len mic_vring 0 58048 NULL nohasharray
166861 +enable_so_num_sqsets_csio_hw_58048 num_sqsets csio_hw 0 58048 &enable_so_len_mic_vring_58048
166862 +enable_so_acpi_gbl_integer_byte_width_vardecl_58054 acpi_gbl_integer_byte_width vardecl 0 58054 NULL
166863 +enable_so_buffer_size_octeon_droq_58063 buffer_size octeon_droq 0 58063 NULL nohasharray
166864 +enable_so_offset_m48t59_plat_data_58063 offset m48t59_plat_data 0 58063 &enable_so_buffer_size_octeon_droq_58063 nohasharray
166865 +enable_so_wpa_ie_len_hostap_bss_info_58063 wpa_ie_len hostap_bss_info 0 58063 &enable_so_offset_m48t59_plat_data_58063
166866 +enable_so_deflate_decompress_fndecl_58064 deflate_decompress fndecl 3 58064 NULL
166867 +enable_so_ath10k_htt_rx_nwifi_hdrlen_fndecl_58065 ath10k_htt_rx_nwifi_hdrlen fndecl 0 58065 NULL
166868 +enable_so_n_dma_bufs_vardecl_mcam_core_c_58067 n_dma_bufs vardecl_mcam-core.c 0 58067 NULL
166869 +enable_so_scsi_register_fndecl_58069 scsi_register fndecl 2 58069 NULL
166870 +enable_so_max_fast_reg_page_list_len_ib_device_attr_58072 max_fast_reg_page_list_len ib_device_attr 0 58072 NULL
166871 +enable_so_compat_do_readv_writev_fndecl_58077 compat_do_readv_writev fndecl 4 58077 NULL
166872 +enable_so_read_file_fndecl_58082 read_file fndecl 4 58082 NULL
166873 +enable_so_qib_user_sdma_pin_pages_fndecl_58083 qib_user_sdma_pin_pages fndecl 5-4 58083 NULL nohasharray
166874 +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
166875 +enable_so_pt_read_fndecl_58083 pt_read fndecl 3 58083 &enable_so_netxen_setup_msi_interrupts_fndecl_58083
166876 +enable_so_buffer_count_drm_i915_gem_execbuffer2_58084 buffer_count drm_i915_gem_execbuffer2 0 58084 NULL
166877 +enable_so_nentries_xpc_registration_58085 nentries xpc_registration 0 58085 NULL
166878 +enable_so_next_bofs_irlap_cb_58088 next_bofs irlap_cb 0 58088 NULL
166879 +enable_so_chipsize_onenand_chip_58089 chipsize onenand_chip 0 58089 NULL
166880 +enable_so_p9_client_zc_rpc_fndecl_58092 p9_client_zc_rpc fndecl 7 58092 NULL nohasharray
166881 +enable_so_atyfb_setup_generic_fndecl_58092 atyfb_setup_generic fndecl 3 58092 &enable_so_p9_client_zc_rpc_fndecl_58092
166882 +enable_so_done_scsi_driver_58095 done scsi_driver 0 58095 NULL
166883 +enable_so_ll_max_cached_mb_seq_write_fndecl_58097 ll_max_cached_mb_seq_write fndecl 3 58097 NULL
166884 +enable_so_button_num_ad714x_platform_data_58098 button_num ad714x_platform_data 0 58098 NULL
166885 +enable_so_walk_pmd_range_fndecl_58100 walk_pmd_range fndecl 0 58100 NULL
166886 +enable_so_head_p9_rdir_58110 head p9_rdir 0 58110 NULL
166887 +enable_so_usb_stor_ctrl_transfer_fndecl_58117 usb_stor_ctrl_transfer fndecl 8-2 58117 NULL
166888 +enable_so_ore_get_rw_state_fndecl_58120 ore_get_rw_state fndecl 4-5 58120 NULL
166889 +enable_so_next_rs_il_rate_info_58123 next_rs il_rate_info 0 58123 NULL
166890 +enable_so_sys_setgroups_fndecl_58127 sys_setgroups fndecl 1 58127 NULL nohasharray
166891 +enable_so_sm501_create_subdev_fndecl_58127 sm501_create_subdev fndecl 4-3 58127 &enable_so_sys_setgroups_fndecl_58127 nohasharray
166892 +enable_so_mlx4_en_hwtstamp_set_fndecl_58127 mlx4_en_hwtstamp_set fndecl 0 58127 &enable_so_sm501_create_subdev_fndecl_58127
166893 +enable_so_bufsize_vardecl_subpagetest_c_58128 bufsize vardecl_subpagetest.c 0 58128 NULL
166894 +enable_so_l_pn_lbuf_58130 l_pn lbuf 0 58130 NULL nohasharray
166895 +enable_so_do_ip_vs_set_ctl_fndecl_58130 do_ip_vs_set_ctl fndecl 4 58130 &enable_so_l_pn_lbuf_58130
166896 +enable_so_n_bitrates_ieee80211_supported_band_58136 n_bitrates ieee80211_supported_band 0 58136 NULL nohasharray
166897 +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
166898 +enable_so_mtd_read_fndecl_58140 mtd_read fndecl 0 58140 NULL
166899 +enable_so_pci_alloc_child_bus_fndecl_58142 pci_alloc_child_bus fndecl 3 58142 NULL
166900 +enable_so_packet_recvmsg_fndecl_58143 packet_recvmsg fndecl 3 58143 NULL
166901 +enable_so_hr_block_bytes_o2hb_region_58145 hr_block_bytes o2hb_region 0 58145 NULL
166902 +enable_so_security_inode_setattr_fndecl_58146 security_inode_setattr fndecl 0 58146 NULL nohasharray
166903 +enable_so_nroutes_mc5_params_58146 nroutes mc5_params 0 58146 &enable_so_security_inode_setattr_fndecl_58146
166904 +enable_so_sci_init_single_fndecl_58149 sci_init_single fndecl 3 58149 NULL
166905 +enable_so_i_clusters_ocfs2_dinode_58151 i_clusters ocfs2_dinode 0 58151 NULL
166906 +enable_so_altera_drscan_fndecl_58153 altera_drscan fndecl 2 58153 NULL
166907 +enable_so_rx_status_rx_desc_58154 rx_status rx_desc 0 58154 NULL
166908 +enable_so_f2fs_mpage_readpages_fndecl_58161 f2fs_mpage_readpages fndecl 4 58161 NULL nohasharray
166909 +enable_so_size_drm_i915_gem_pwrite_58161 size drm_i915_gem_pwrite 0 58161 &enable_so_f2fs_mpage_readpages_fndecl_58161
166910 +enable_so_l2cap_build_cmd_fndecl_58167 l2cap_build_cmd fndecl 4 58167 NULL
166911 +enable_so_init_size_rw_module_58168 init_size_rw module 0 58168 NULL
166912 +enable_so_head_len_beacon_data_58173 head_len beacon_data 0 58173 NULL
166913 +enable_so_num_clips_drm_vmw_present_readback_arg_58182 num_clips drm_vmw_present_readback_arg 0 58182 NULL
166914 +enable_so_total_num_uuars_mlx5_ib_alloc_ucontext_req_v2_58191 total_num_uuars mlx5_ib_alloc_ucontext_req_v2 0 58191 NULL
166915 +enable_so_virtfn_remove_fndecl_58193 virtfn_remove fndecl 2 58193 NULL
166916 +enable_so_npages_ttm_page_pool_58200 npages ttm_page_pool 0 58200 NULL
166917 +enable_so_lpfc_idiag_drbacc_write_fndecl_58203 lpfc_idiag_drbacc_write fndecl 3 58203 NULL
166918 +enable_so_SyS_lgetxattr_fndecl_58204 SyS_lgetxattr fndecl 4 58204 NULL
166919 +enable_so_maxOutstanding_AdapterControlBlock_58208 maxOutstanding AdapterControlBlock 0 58208 NULL
166920 +enable_so_rx_pipe_at76_priv_58217 rx_pipe at76_priv 0 58217 NULL
166921 +enable_so_size_skb_frag_struct_58222 size skb_frag_struct 0 58222 NULL
166922 +enable_so_xfs_attr_set_fndecl_58225 xfs_attr_set fndecl 4 58225 NULL
166923 +enable_so_ubifs_jnl_write_data_fndecl_58229 ubifs_jnl_write_data fndecl 5 58229 NULL
166924 +enable_so_ath6kl_regwrite_read_fndecl_58232 ath6kl_regwrite_read fndecl 3 58232 NULL
166925 +enable_so_ath6kl_usb_bmi_read_fndecl_58234 ath6kl_usb_bmi_read fndecl 3 58234 NULL
166926 +enable_so_len_on_bd_bnx2x_agg_info_58236 len_on_bd bnx2x_agg_info 0 58236 NULL
166927 +enable_so_i915_displayport_test_active_write_fndecl_58241 i915_displayport_test_active_write fndecl 3 58241 NULL
166928 +enable_so_num_rx_queues_fm10k_intfc_58243 num_rx_queues fm10k_intfc 0 58243 NULL
166929 +enable_so_font_backup_height_sisusb_usb_data_58247 font_backup_height sisusb_usb_data 0 58247 NULL
166930 +enable_so_ies_len_cfg80211_ft_event_params_58259 ies_len cfg80211_ft_event_params 0 58259 NULL
166931 +enable_so_gpiod_count_fndecl_58262 gpiod_count fndecl 0 58262 NULL
166932 +enable_so_l2cap_segment_sdu_fndecl_58263 l2cap_segment_sdu fndecl 4 58263 NULL
166933 +enable_so_file_size_fnode_58268 file_size fnode 0 58268 NULL
166934 +enable_so_em28xx_set_video_format_fndecl_58273 em28xx_set_video_format fndecl 3-4 58273 NULL
166935 +enable_so_tcp_push_one_fndecl_58275 tcp_push_one fndecl 2 58275 NULL nohasharray
166936 +enable_so_pages_in_block_msb_data_58275 pages_in_block msb_data 0 58275 &enable_so_tcp_push_one_fndecl_58275
166937 +enable_so_iso_size_usbtv_58278 iso_size usbtv 0 58278 NULL
166938 +enable_so_lib80211_michael_mic_add_fndecl_58285 lib80211_michael_mic_add fndecl 2 58285 NULL
166939 +enable_so_tx_desc_count_i40evf_adapter_58286 tx_desc_count i40evf_adapter 0 58286 NULL
166940 +enable_so_v9fs_fid_xattr_set_fndecl_58288 v9fs_fid_xattr_set fndecl 4 58288 NULL nohasharray
166941 +enable_so_unique_len_drm_unique_58288 unique_len drm_unique 0 58288 &enable_so_v9fs_fid_xattr_set_fndecl_58288
166942 +enable_so_il3945_sta_dbgfs_stats_table_read_fndecl_58289 il3945_sta_dbgfs_stats_table_read fndecl 3 58289 NULL
166943 +enable_so_adfs_map_lookup_fndecl_58299 adfs_map_lookup fndecl 0-3 58299 NULL
166944 +enable_so_y2_drm_clip_rect_58302 y2 drm_clip_rect 0 58302 NULL
166945 +enable_so_buffer_size_snd_pcm_runtime_58304 buffer_size snd_pcm_runtime 0 58304 NULL
166946 +enable_so_CountHigh_smb_com_write_rsp_58306 CountHigh smb_com_write_rsp 0 58306 NULL
166947 +enable_so_adau1977_set_tdm_slot_fndecl_58318 adau1977_set_tdm_slot fndecl 4-5 58318 NULL
166948 +enable_so_vc_do_resize_fndecl_58329 vc_do_resize fndecl 3-4 58329 NULL nohasharray
166949 +enable_so_num_tx_ethoc_58329 num_tx ethoc 0 58329 &enable_so_vc_do_resize_fndecl_58329
166950 +enable_so_sys_setgroups16_fndecl_58337 sys_setgroups16 fndecl 1 58337 NULL
166951 +enable_so_nlmon_change_mtu_fndecl_58340 nlmon_change_mtu fndecl 2 58340 NULL nohasharray
166952 +enable_so_start_crypt_config_58340 start crypt_config 0 58340 &enable_so_nlmon_change_mtu_fndecl_58340
166953 +enable_so_s2io_change_mtu_fndecl_58344 s2io_change_mtu fndecl 2 58344 NULL
166954 +enable_so_ext2_alloc_branch_fndecl_58346 ext2_alloc_branch fndecl 4 58346 NULL
166955 +enable_so_actions_len_sw_flow_actions_58353 actions_len sw_flow_actions 0 58353 NULL
166956 +enable_so_viafb_dvp1_proc_write_fndecl_58355 viafb_dvp1_proc_write fndecl 3 58355 NULL
166957 +enable_so_xgmac_change_mtu_fndecl_58357 xgmac_change_mtu fndecl 2 58357 NULL nohasharray
166958 +enable_so_mms114_read_reg_fndecl_58357 mms114_read_reg fndecl 0 58357 &enable_so_xgmac_change_mtu_fndecl_58357
166959 +enable_so___ffs_ep0_read_events_fndecl_58359 __ffs_ep0_read_events fndecl 3 58359 NULL
166960 +enable_so_length_qib_swqe_58364 length qib_swqe 0 58364 NULL
166961 +enable_so_add_regulator_fndecl_58367 add_regulator fndecl 1 58367 NULL
166962 +enable_so_tun_recvmsg_fndecl_58372 tun_recvmsg fndecl 3 58372 NULL
166963 +enable_so_ingr_start_sge_58376 ingr_start sge 0 58376 NULL
166964 +enable_so_dma_contiguous_reserve_fndecl_58386 dma_contiguous_reserve fndecl 1 58386 NULL
166965 +enable_so_max_resource_constraint_58388 max resource_constraint 0 58388 NULL
166966 +enable_so_kvm_arch_create_memslot_fndecl_58391 kvm_arch_create_memslot fndecl 3 58391 NULL
166967 +enable_so_minstrel_get_sample_rate_fndecl_58393 minstrel_get_sample_rate fndecl 0 58393 NULL
166968 +enable_so_window_vardecl_tcp_cdg_c_58396 window vardecl_tcp_cdg.c 0 58396 NULL
166969 +enable_so_hci_prepare_cmd_fndecl_58399 hci_prepare_cmd fndecl 3 58399 NULL
166970 +enable_so_sta_vht_capa_read_fndecl_58402 sta_vht_capa_read fndecl 3 58402 NULL
166971 +enable_so_lbs_wrrf_write_fndecl_58409 lbs_wrrf_write fndecl 3 58409 NULL
166972 +enable_so_remove_raw_fndecl_58413 remove_raw fndecl 4 58413 NULL
166973 +enable_so_vzalloc_fndecl_58414 vzalloc fndecl 1 58414 NULL nohasharray
166974 +enable_so_offset_snd_util_memblk_58414 offset snd_util_memblk 0 58414 &enable_so_vzalloc_fndecl_58414 nohasharray
166975 +enable_so_bufsize_vardecl_tcp_probe_c_58414 bufsize vardecl_tcp_probe.c 0 58414 &enable_so_offset_snd_util_memblk_58414
166976 +enable_so_skip_to_level_assoc_array_shortcut_58418 skip_to_level assoc_array_shortcut 0 58418 NULL
166977 +enable_so_channels__isdn_driver_58419 channels _isdn_driver 0 58419 NULL
166978 +enable_so_gfn_to_pfn_prot_fndecl_58421 gfn_to_pfn_prot fndecl 2 58421 NULL
166979 +enable_so_align4k_qib_devdata_58424 align4k qib_devdata 0 58424 NULL
166980 +enable_so_walk_pte_range_fndecl_58425 walk_pte_range fndecl 0 58425 NULL
166981 +enable_so_lbs_wrmac_write_fndecl_58427 lbs_wrmac_write fndecl 3 58427 NULL
166982 +enable_so_sys32_ftruncate64_fndecl_58429 sys32_ftruncate64 fndecl 2-3 58429 NULL
166983 +enable_so_s_len_ipath_qp_58431 s_len ipath_qp 0 58431 NULL
166984 +enable_so_SiS_GetReg_fndecl_58436 SiS_GetReg fndecl 0 58436 NULL
166985 +enable_so_deflate_compress_fndecl_58438 deflate_compress fndecl 3 58438 NULL nohasharray
166986 +enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438 exynos3250_jpeg_get_subsampling_mode fndecl 0 58438 &enable_so_deflate_compress_fndecl_58438 nohasharray
166987 +enable_so_rd_in_oz_serial_ctx_58438 rd_in oz_serial_ctx 0 58438 &enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438
166988 +enable_so_environ_read_fndecl_58440 environ_read fndecl 3 58440 NULL nohasharray
166989 +enable_so_ib_uverbs_create_cq_fndecl_58440 ib_uverbs_create_cq fndecl 3 58440 &enable_so_environ_read_fndecl_58440
166990 +enable_so_nr_pages_fuse_fill_data_58443 nr_pages fuse_fill_data 0 58443 NULL
166991 +enable_so_num_vhost_virtqueue_58446 num vhost_virtqueue 0 58446 NULL nohasharray
166992 +enable_so_len_ethtool_test_58446 len ethtool_test 0 58446 &enable_so_num_vhost_virtqueue_58446
166993 +enable_so_val_bytes_snd_soc_component_58447 val_bytes snd_soc_component 0 58447 NULL nohasharray
166994 +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
166995 +enable_so_f_adc_msi2500_dev_58451 f_adc msi2500_dev 0 58451 NULL
166996 +enable_so_fwlen_mpt_fw_xfer32_58453 fwlen mpt_fw_xfer32 0 58453 NULL
166997 +enable_so_di_anextents_xfs_icdinode_58455 di_anextents xfs_icdinode 0 58455 NULL
166998 +enable_so_caif_seqpkt_sendmsg_fndecl_58458 caif_seqpkt_sendmsg fndecl 3 58458 NULL
166999 +enable_so_NumProtectionFields_cfi_pri_intelext_58461 NumProtectionFields cfi_pri_intelext 0 58461 NULL
167000 +enable_so_btrfs_clone_fndecl_58462 btrfs_clone fndecl 5-3-6 58462 NULL
167001 +enable_so_ebcnt_vardecl_torturetest_c_58475 ebcnt vardecl_torturetest.c 0 58475 NULL
167002 +enable_so_newpart_fndecl_58478 newpart fndecl 6-4 58478 NULL
167003 +enable_so_nbchan_capidrv_contr_58481 nbchan capidrv_contr 0 58481 NULL
167004 +enable_so_highest_ino_jffs2_sb_info_58485 highest_ino jffs2_sb_info 0 58485 NULL
167005 +enable_so_C_SYSC_set_mempolicy_fndecl_58489 C_SYSC_set_mempolicy fndecl 3 58489 NULL
167006 +enable_so_try_lock_extent_fndecl_58490 try_lock_extent fndecl 3-2 58490 NULL nohasharray
167007 +enable_so_r2tq_size_cnic_local_58490 r2tq_size cnic_local 0 58490 &enable_so_try_lock_extent_fndecl_58490
167008 +enable_so_set_console_size_fndecl_58495 set_console_size fndecl 3-2 58495 NULL
167009 +enable_so_unlink_simple_fndecl_58497 unlink_simple fndecl 3-2 58497 NULL nohasharray
167010 +enable_so_unit_minor_sound_unit_58497 unit_minor sound_unit 0 58497 &enable_so_unlink_simple_fndecl_58497
167011 +enable_so_alloc_arraycache_fndecl_58498 alloc_arraycache fndecl 2 58498 NULL
167012 +enable_so_pstore_decompress_fndecl_58501 pstore_decompress fndecl 0-3-4 58501 NULL
167013 +enable_so_max_segment_size_device_dma_parameters_58507 max_segment_size device_dma_parameters 0 58507 NULL nohasharray
167014 +enable_so_ufs_inode_getblock_fndecl_58507 ufs_inode_getblock fndecl 4-3 58507 &enable_so_max_segment_size_device_dma_parameters_58507
167015 +enable_so_ec_i2c_count_response_fndecl_58509 ec_i2c_count_response fndecl 0 58509 NULL
167016 +enable_so_mcp23s17_read_regs_fndecl_58512 mcp23s17_read_regs fndecl 4 58512 NULL nohasharray
167017 +enable_so_phys_in_snd_efw_58512 phys_in snd_efw 0 58512 &enable_so_mcp23s17_read_regs_fndecl_58512
167018 +enable_so_pixel_stride_ivtv_osd_coords_58513 pixel_stride ivtv_osd_coords 0 58513 NULL
167019 +enable_so_pmsg_size_ramoops_platform_data_58514 pmsg_size ramoops_platform_data 0 58514 NULL
167020 +enable_so___frontswap_curr_pages_fndecl_58517 __frontswap_curr_pages fndecl 0 58517 NULL nohasharray
167021 +enable_so_core_sys_select_fndecl_58517 core_sys_select fndecl 1 58517 &enable_so___frontswap_curr_pages_fndecl_58517
167022 +enable_so_read_block_for_search_fndecl_58525 read_block_for_search fndecl 0 58525 NULL
167023 +enable_so_rx_frag_size_bnx2x_fastpath_58531 rx_frag_size bnx2x_fastpath 0 58531 NULL
167024 +enable_so_cfpkt_split_fndecl_58534 cfpkt_split fndecl 2 58534 NULL
167025 +enable_so_drbg_statelen_fndecl_58540 drbg_statelen fndecl 0 58540 NULL
167026 +enable_so_populate_vma_page_range_fndecl_58544 populate_vma_page_range fndecl 2-0 58544 NULL
167027 +enable_so_volinit_CHIPDESC_58545 volinit CHIPDESC 0 58545 NULL
167028 +enable_so_ddata_ofsl_cyttsp4_sysinfo_data_58549 ddata_ofsl cyttsp4_sysinfo_data 0 58549 NULL
167029 +enable_so_usb_hcd_alloc_bandwidth_fndecl_58550 usb_hcd_alloc_bandwidth fndecl 0 58550 NULL
167030 +enable_so_size_vram_area_58552 size vram_area 0 58552 NULL
167031 +enable_so_xfs_inobt_insert_fndecl_58558 xfs_inobt_insert fndecl 4 58558 NULL nohasharray
167032 +enable_so_process_vm_rw_fndecl_58558 process_vm_rw fndecl 3-5 58558 &enable_so_xfs_inobt_insert_fndecl_58558
167033 +enable_so_read_ldt_fndecl_58561 read_ldt fndecl 2 58561 NULL
167034 +enable_so_pci_iomap_fndecl_58564 pci_iomap fndecl 3 58564 NULL
167035 +enable_so_qib_copy_from_sge_fndecl_58565 qib_copy_from_sge fndecl 3 58565 NULL
167036 +enable_so_isku_sysfs_read_last_set_fndecl_58567 isku_sysfs_read_last_set fndecl 6 58567 NULL
167037 +enable_so_llc_shdlc_init_fndecl_58573 llc_shdlc_init fndecl 4 58573 NULL nohasharray
167038 +enable_so_index_vardecl_intel8x0m_c_58573 index vardecl_intel8x0m.c 0 58573 &enable_so_llc_shdlc_init_fndecl_58573
167039 +enable_so_acpi_gpio_package_count_fndecl_58585 acpi_gpio_package_count fndecl 0 58585 NULL
167040 +enable_so_sysctl_tcp_reordering_vardecl_58592 sysctl_tcp_reordering vardecl 0 58592 NULL
167041 +enable_so_ext4_kvzalloc_fndecl_58598 ext4_kvzalloc fndecl 1 58598 NULL
167042 +enable_so_aoe_maxsectors_vardecl_aoeblk_c_58600 aoe_maxsectors vardecl_aoeblk.c 0 58600 NULL
167043 +enable_so_sctp_ssnmap_new_fndecl_58603 sctp_ssnmap_new fndecl 1-2 58603 NULL
167044 +enable_so_cache_read_pipefs_fndecl_58604 cache_read_pipefs fndecl 3 58604 NULL
167045 +enable_so_rd_count_ring_descr_hw_58616 rd_count ring_descr_hw 0 58616 NULL
167046 +enable_so_mousedev_read_fndecl_58624 mousedev_read fndecl 3 58624 NULL
167047 +enable_so___erst_write_to_storage_fndecl_58627 __erst_write_to_storage fndecl 1 58627 NULL
167048 +enable_so_epp_pages_short_ptlrpc_enc_page_pool_58628 epp_pages_short ptlrpc_enc_page_pool 0 58628 NULL
167049 +enable_so_dccps_gss_dccp_sock_58634 dccps_gss dccp_sock 0 58634 NULL
167050 +enable_so_layout_mdu_array_info_s_58636 layout mdu_array_info_s 0 58636 NULL nohasharray
167051 +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
167052 +enable_so_pgbase_nfs4_readdir_arg_58643 pgbase nfs4_readdir_arg 0 58643 NULL nohasharray
167053 +enable_so_offset_qib_mregion_58643 offset qib_mregion 0 58643 &enable_so_pgbase_nfs4_readdir_arg_58643
167054 +enable_so_report_id_hid_global_58647 report_id hid_global 0 58647 NULL
167055 +enable_so_page10_len_ses_device_58648 page10_len ses_device 0 58648 NULL
167056 +enable_so_ap_update_sta_tx_rate_fndecl_58655 ap_update_sta_tx_rate fndecl 0 58655 NULL
167057 +enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656 mwifiex_alloc_dma_align_buf fndecl 1 58656 NULL nohasharray
167058 +enable_so_highest_bit_swap_info_struct_58656 highest_bit swap_info_struct 0 58656 &enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656
167059 +enable_so_mxms_headerlen_fndecl_58666 mxms_headerlen fndecl 0 58666 NULL
167060 +enable_so_rs_sta_dbgfs_rate_scale_data_read_fndecl_58670 rs_sta_dbgfs_rate_scale_data_read fndecl 3 58670 NULL
167061 +enable_so_max_key_len_hfs_btree_58671 max_key_len hfs_btree 0 58671 NULL
167062 +enable_so_sb_inopblog_xfs_sb_58672 sb_inopblog xfs_sb 0 58672 NULL
167063 +enable_so_s_dirblksize_ufs_sb_private_info_58675 s_dirblksize ufs_sb_private_info 0 58675 NULL
167064 +enable_so_ses_recv_diag_fndecl_58676 ses_recv_diag fndecl 4 58676 NULL nohasharray
167065 +enable_so_acpi_ut_initialize_buffer_fndecl_58676 acpi_ut_initialize_buffer fndecl 2 58676 &enable_so_ses_recv_diag_fndecl_58676
167066 +enable_so_s_partition_size_affs_sb_info_58677 s_partition_size affs_sb_info 0 58677 NULL
167067 +enable_so_ramoops_ftrace_size_vardecl_ram_c_58686 ramoops_ftrace_size vardecl_ram.c 0 58686 NULL
167068 +enable_so_max_response_len_sg_io_v4_58687 max_response_len sg_io_v4 0 58687 NULL
167069 +enable_so_subdirs_ceph_mds_reply_inode_58689 subdirs ceph_mds_reply_inode 0 58689 NULL
167070 +enable_so_ioremap_cache_fndecl_58694 ioremap_cache fndecl 2-1 58694 NULL
167071 +enable_so_rx_dma_len_efx_nic_58695 rx_dma_len efx_nic 0 58695 NULL
167072 +enable_so_root_ino_f2fs_super_block_58700 root_ino f2fs_super_block 0 58700 NULL
167073 +enable_so_fw_emem_len_rt_firmware_58718 fw_emem_len rt_firmware 0 58718 NULL nohasharray
167074 +enable_so_btrfs_del_inode_ref_fndecl_58718 btrfs_del_inode_ref fndecl 4 58718 &enable_so_fw_emem_len_rt_firmware_58718 nohasharray
167075 +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
167076 +enable_so_valid_chaoskey_58736 valid chaoskey 0 58736 NULL
167077 +enable_so_Residue_bulk_cs_wrap_58746 Residue bulk_cs_wrap 0 58746 NULL
167078 +enable_so_nobh_write_end_fndecl_58749 nobh_write_end fndecl 5 58749 NULL
167079 +enable_so_skb_copy_datagram_from_iter_fndecl_58758 skb_copy_datagram_from_iter fndecl 4-2 58758 NULL nohasharray
167080 +enable_so_portcntrs_1_read_fndecl_58758 portcntrs_1_read fndecl 3 58758 &enable_so_skb_copy_datagram_from_iter_fndecl_58758
167081 +enable_so_ocfs2_xattr_free_block_fndecl_58767 ocfs2_xattr_free_block fndecl 2 58767 NULL
167082 +enable_so_port_fops_splice_write_fndecl_58771 port_fops_splice_write fndecl 4 58771 NULL
167083 +enable_so_snd_ctl_enum_info_fndecl_58778 snd_ctl_enum_info fndecl 2 58778 NULL
167084 +enable_so_bi_bvec_done_bvec_iter_58781 bi_bvec_done bvec_iter 0 58781 NULL nohasharray
167085 +enable_so_ucNumEntries__ATOM_PPLIB_PhaseSheddingLimits_Table_58781 ucNumEntries _ATOM_PPLIB_PhaseSheddingLimits_Table 0 58781 &enable_so_bi_bvec_done_bvec_iter_58781
167086 +enable_so_get_formats_soc_camera_host_ops_58784 get_formats soc_camera_host_ops 0 58784 NULL
167087 +enable_so_meta_ino_f2fs_super_block_58785 meta_ino f2fs_super_block 0 58785 NULL nohasharray
167088 +enable_so_off1_xad_58785 off1 xad 0 58785 &enable_so_meta_ino_f2fs_super_block_58785
167089 +enable_so_gfs2_readpages_fndecl_58790 gfs2_readpages fndecl 4 58790 NULL
167090 +enable_so_at24_macc_read_fndecl_58791 at24_macc_read fndecl 4 58791 NULL
167091 +enable_so_vsnprintf_fndecl_58792 vsnprintf fndecl 0 58792 NULL
167092 +enable_so_mppe_decompress_fndecl_58795 mppe_decompress fndecl 3 58795 NULL
167093 +enable_so_blkbits_dio_submit_58797 blkbits dio_submit 0 58797 NULL
167094 +enable_so_wNumRPipes_usb_wa_descriptor_58804 wNumRPipes usb_wa_descriptor 0 58804 NULL
167095 +enable_so_snd_pcm_hw_constraint_minmax_fndecl_58816 snd_pcm_hw_constraint_minmax fndecl 4-3 58816 NULL
167096 +enable_so_data_size_iser_page_vec_58817 data_size iser_page_vec 0 58817 NULL
167097 +enable_so_slen_snap_58819 slen snap 0 58819 NULL
167098 +enable_so_num_counters_op_x86_model_spec_58827 num_counters op_x86_model_spec 0 58827 NULL
167099 +enable_so_set_db_page_mthca_create_cq_58830 set_db_page mthca_create_cq 0 58830 NULL
167100 +enable_so_f2fs_replace_block_fndecl_58838 f2fs_replace_block fndecl 4 58838 NULL
167101 +enable_so_s_psn_ipath_qp_58839 s_psn ipath_qp 0 58839 NULL nohasharray
167102 +enable_so_tx_internal_desc_overflow_read_fndecl_58839 tx_internal_desc_overflow_read fndecl 3 58839 &enable_so_s_psn_ipath_qp_58839
167103 +enable_so_virtqueue_add_fndecl_58841 virtqueue_add fndecl 3 58841 NULL
167104 +enable_so_size_ipath_rq_58849 size ipath_rq 0 58849 NULL
167105 +enable_so_nr_scratch_dwc3_58852 nr_scratch dwc3 0 58852 NULL
167106 +enable_so_ms_lib_read_extrablock_fndecl_58857 ms_lib_read_extrablock fndecl 4 58857 NULL
167107 +enable_so_exofs_iget_fndecl_58862 exofs_iget fndecl 2 58862 NULL
167108 +enable_so_ieee80211_if_read_dot11MeshHoldingTimeout_fndecl_58863 ieee80211_if_read_dot11MeshHoldingTimeout fndecl 3 58863 NULL
167109 +enable_so_channel_num_sudmac_pdata_58865 channel_num sudmac_pdata 0 58865 NULL
167110 +enable_so_uvc_ctrl_add_info_fndecl_58870 uvc_ctrl_add_info fndecl 0 58870 NULL
167111 +enable_so_hfp_ast_vbios_enhtable_58872 hfp ast_vbios_enhtable 0 58872 NULL
167112 +enable_so_gbuffers_vardecl_bttv_driver_c_58873 gbuffers vardecl_bttv-driver.c 0 58873 NULL
167113 +enable_so_xm_wmfw_adsp2_alg_hdr_58884 xm wmfw_adsp2_alg_hdr 0 58884 NULL
167114 +enable_so_rx_buf_sz_fe_priv_58888 rx_buf_sz fe_priv 0 58888 NULL
167115 +enable_so_max_xfer_nd_cmd_get_config_size_58894 max_xfer nd_cmd_get_config_size 0 58894 NULL
167116 +enable_so_usb_stor_bulk_transfer_sg_fndecl_58896 usb_stor_bulk_transfer_sg fndecl 4-2-5 58896 NULL
167117 +enable_so_size__iohandle_58897 size _iohandle 0 58897 NULL
167118 +enable_so_v9fs_file_fsync_fndecl_58898 v9fs_file_fsync fndecl 2-3 58898 NULL
167119 +enable_so_vhci_read_fndecl_58901 vhci_read fndecl 3 58901 NULL
167120 +enable_so_mwifiex_write_data_sync_fndecl_58903 mwifiex_write_data_sync fndecl 3 58903 NULL nohasharray
167121 +enable_so_xfs_nfs_get_inode_fndecl_58903 xfs_nfs_get_inode fndecl 2 58903 &enable_so_mwifiex_write_data_sync_fndecl_58903
167122 +enable_so_rpos_p9_conn_58910 rpos p9_conn 0 58910 NULL
167123 +enable_so_cmodio_setup_subdevice_fndecl_58913 cmodio_setup_subdevice fndecl 4 58913 NULL
167124 +enable_so_comedi_write_fndecl_58917 comedi_write fndecl 3 58917 NULL
167125 +enable_so_size_nv40_gr_priv_58921 size nv40_gr_priv 0 58921 NULL
167126 +enable_so_befs_bread_fndecl_58922 befs_bread fndecl 2 58922 NULL
167127 +enable_so_parent_block_isofs_fid_58926 parent_block isofs_fid 0 58926 NULL
167128 +enable_so_fore200e_pca_dma_chunk_alloc_fndecl_58927 fore200e_pca_dma_chunk_alloc fndecl 4-3 58927 NULL
167129 +enable_so_osd_req_read_sg_fndecl_58930 osd_req_read_sg fndecl 5 58930 NULL
167130 +enable_so_send_reply_chunks_fndecl_58933 send_reply_chunks fndecl 0 58933 NULL
167131 +enable_so_leaf_item_bottle_fndecl_58937 leaf_item_bottle fndecl 5 58937 NULL
167132 +enable_so_cfs_percpt_alloc_fndecl_58941 cfs_percpt_alloc fndecl 2 58941 NULL
167133 +enable_so_lpe_base_sst_pdata_58946 lpe_base sst_pdata 0 58946 NULL
167134 +enable_so_num_req_rx_rings_bnx2_58949 num_req_rx_rings bnx2 0 58949 NULL
167135 +enable_so_size_drm_nouveau_gem_info_58954 size drm_nouveau_gem_info 0 58954 NULL
167136 +enable_so__ext4_get_block_fndecl_58959 _ext4_get_block fndecl 2 58959 NULL
167137 +enable_so_query_len_tomoyo_query_58960 query_len tomoyo_query 0 58960 NULL
167138 +enable_so_get_dec_u16_fndecl_58972 get_dec_u16 fndecl 0 58972 NULL
167139 +enable_so_integrity_alg_len_net_conf_58973 integrity_alg_len net_conf 0 58973 NULL
167140 +enable_so_adjust_managed_page_count_fndecl_58974 adjust_managed_page_count fndecl 2 58974 NULL
167141 +enable_so_pglen_nfs4_layoutdriver_data_58977 pglen nfs4_layoutdriver_data 0 58977 NULL
167142 +enable_so_nent_mthca_eq_58979 nent mthca_eq 0 58979 NULL
167143 +enable_so_len_extent_buffer_58980 len extent_buffer 0 58980 NULL nohasharray
167144 +enable_so_ptk_icvlen_iwl_mvm_58980 ptk_icvlen iwl_mvm 0 58980 &enable_so_len_extent_buffer_58980
167145 +enable_so_sg_miter_skip_fndecl_58982 sg_miter_skip fndecl 2 58982 NULL
167146 +enable_so_len_cont_58983 len cont 0 58983 NULL
167147 +enable_so_megasas_mgmt_ioctl_fw_fndecl_58984 megasas_mgmt_ioctl_fw fndecl 0 58984 NULL
167148 +enable_so_ib_umad_write_fndecl_58986 ib_umad_write fndecl 3 58986 NULL
167149 +enable_so___tda18271_write_regs_fndecl_58989 __tda18271_write_regs fndecl 3 58989 NULL nohasharray
167150 +enable_so_index_ldtentry_58989 index ldtentry 0 58989 &enable_so___tda18271_write_regs_fndecl_58989
167151 +enable_so_nfs4_proc_get_acl_fndecl_58998 nfs4_proc_get_acl fndecl 3 58998 NULL
167152 +enable_so_trace_max_pages_vardecl_59000 trace_max_pages vardecl 0 59000 NULL
167153 +enable_so_private_value_snd_kcontrol_59001 private_value snd_kcontrol 0 59001 NULL
167154 +enable_so_iwl_dbgfs_ucode_tracing_read_fndecl_59004 iwl_dbgfs_ucode_tracing_read fndecl 3 59004 NULL
167155 +enable_so_wa_urb_dequeue_fndecl_59008 wa_urb_dequeue fndecl 3 59008 NULL
167156 +enable_so_numextents_efs_inode_info_59009 numextents efs_inode_info 0 59009 NULL
167157 +enable_so_amdgpu_vram_location_fndecl_59010 amdgpu_vram_location fndecl 3 59010 NULL
167158 +enable_so___kvm_read_guest_atomic_fndecl_59011 __kvm_read_guest_atomic fndecl 2-5 59011 NULL
167159 +enable_so_dccpsl_nr_dccp_service_list_59022 dccpsl_nr dccp_service_list 0 59022 NULL
167160 +enable_so_lustre_cfg_len_fndecl_59025 lustre_cfg_len fndecl 0 59025 NULL
167161 +enable_so_frag_max_size_inet_skb_parm_59029 frag_max_size inet_skb_parm 0 59029 NULL
167162 +enable_so_frags_len_lro_59030 frags_len lro 0 59030 NULL
167163 +enable_so_nclips_saa7146_overlay_59032 nclips saa7146_overlay 0 59032 NULL
167164 +enable_so_in_epnum_usb_gadget_59033 in_epnum usb_gadget 0 59033 NULL
167165 +enable_so_max_inbound_frames__i2o_status_block_59034 max_inbound_frames _i2o_status_block 0 59034 NULL
167166 +enable_so_head_inbuf_t_59044 head inbuf_t 0 59044 NULL
167167 +enable_so_len_nand_bbt_descr_59045 len nand_bbt_descr 0 59045 NULL
167168 +enable_so_ref_node_alsz_ubifs_info_59046 ref_node_alsz ubifs_info 0 59046 NULL
167169 +enable_so_data0_myri10ge_cmd_59049 data0 myri10ge_cmd 0 59049 NULL
167170 +enable_so_max_block_docg3_59051 max_block docg3 0 59051 NULL nohasharray
167171 +enable_so_aligned_pep_sock_59051 aligned pep_sock 0 59051 &enable_so_max_block_docg3_59051
167172 +enable_so_posix_acl_alloc_fndecl_59052 posix_acl_alloc fndecl 1 59052 NULL nohasharray
167173 +enable_so_nr_strip_zones_r0conf_59052 nr_strip_zones r0conf 0 59052 &enable_so_posix_acl_alloc_fndecl_59052
167174 +enable_so_s_block_count_reiserfs_super_block_v1_59058 s_block_count reiserfs_super_block_v1 0 59058 NULL
167175 +enable_so_mpeglinesize_vardecl_cx231xx_417_c_59059 mpeglinesize vardecl_cx231xx-417.c 0 59059 NULL
167176 +enable_so_sys32_pread_fndecl_59062 sys32_pread fndecl 3 59062 NULL
167177 +enable_so_piobufbase_qib_devdata_59067 piobufbase qib_devdata 0 59067 NULL
167178 +enable_so_bmv_offset_getbmapx_59079 bmv_offset getbmapx 0 59079 NULL
167179 +enable_so_buffer_mousedev_client_59098 buffer mousedev_client 0 59098 NULL
167180 +enable_so_rcvidx_hscx_hw_59100 rcvidx hscx_hw 0 59100 NULL
167181 +enable_so_ctrl_dma_ims_pcu_59106 ctrl_dma ims_pcu 0 59106 NULL
167182 +enable_so_out_wm8994_fll_config_59112 out wm8994_fll_config 0 59112 NULL
167183 +enable_so_a8293_wr_fndecl_59113 a8293_wr fndecl 3 59113 NULL
167184 +enable_so_remap_and_issue_shared_cell_fndecl_59114 remap_and_issue_shared_cell fndecl 3 59114 NULL
167185 +enable_so_wm_latency_write_fndecl_59118 wm_latency_write fndecl 3 59118 NULL
167186 +enable_so_sec_per_clus_fat_floppy_defaults_59119 sec_per_clus fat_floppy_defaults 0 59119 NULL
167187 +enable_so_omapdss_count_strings_fndecl_59120 omapdss_count_strings fndecl 0 59120 NULL
167188 +enable_so_mmc_alloc_host_fndecl_59122 mmc_alloc_host fndecl 1 59122 NULL
167189 +enable_so_width_em28xx_v4l2_59127 width em28xx_v4l2 0 59127 NULL nohasharray
167190 +enable_so_xfs_read_agi_fndecl_59127 xfs_read_agi fndecl 3 59127 &enable_so_width_em28xx_v4l2_59127
167191 +enable_so_bitrate_ieee80211_rate_59130 bitrate ieee80211_rate 0 59130 NULL
167192 +enable_so_do_sys_ftruncate_fndecl_59136 do_sys_ftruncate fndecl 2 59136 NULL
167193 +enable_so_tx_count__synclinkmp_info_59147 tx_count _synclinkmp_info 0 59147 NULL
167194 +enable_so_rx_data_ep_usb_card_rec_59150 rx_data_ep usb_card_rec 0 59150 NULL
167195 +enable_so_get_desc_rtl_hal_ops_59151 get_desc rtl_hal_ops 0 59151 NULL
167196 +enable_so_free_low_memory_core_early_fndecl_59160 free_low_memory_core_early fndecl 0 59160 NULL
167197 +enable_so_log_buf_len_vardecl_printk_c_59170 log_buf_len vardecl_printk.c 0 59170 NULL
167198 +enable_so_address_length_acpi_resource_io_59176 address_length acpi_resource_io 0 59176 NULL
167199 +enable_so_read_mii_bus_59181 read mii_bus 0 59181 NULL
167200 +enable_so_av_buf_ackno_dccp_ackvec_59183 av_buf_ackno dccp_ackvec 0 59183 NULL
167201 +enable_so_comps_used_iser_device_59187 comps_used iser_device 0 59187 NULL
167202 +enable_so_img_height_zoran_jpg_settings_59188 img_height zoran_jpg_settings 0 59188 NULL
167203 +enable_so_isl12022_read_regs_fndecl_59190 isl12022_read_regs fndecl 4 59190 NULL
167204 +enable_so_vtag_rx_pkt_status_59191 vtag rx_pkt_status 0 59191 NULL
167205 +enable_so_cdc_ncm_check_rx_max_fndecl_59192 cdc_ncm_check_rx_max fndecl 0-2 59192 NULL
167206 +enable_so_gr_learn_resource_fndecl_59200 gr_learn_resource fndecl 3 59200 NULL
167207 +enable_so_ms_os_descs_ext_prop_name_len_ffs_data_59205 ms_os_descs_ext_prop_name_len ffs_data 0 59205 NULL
167208 +enable_so_s_bmap_bits_affs_sb_info_59206 s_bmap_bits affs_sb_info 0 59206 NULL
167209 +enable_so_fat_sector_size_fat_bios_param_block_59207 fat_sector_size fat_bios_param_block 0 59207 NULL nohasharray
167210 +enable_so_nblocks_nilfs_segsum_info_59207 nblocks nilfs_segsum_info 0 59207 &enable_so_fat_sector_size_fat_bios_param_block_59207
167211 +enable_so_max_data_size_mpt2_ioctl_header_59209 max_data_size mpt2_ioctl_header 0 59209 NULL
167212 +enable_so_jade_empty_fifo_fndecl_59210 jade_empty_fifo fndecl 2 59210 NULL
167213 +enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211 usCRTC_H_SyncWidth _ATOM_MODE_TIMING 0 59211 NULL nohasharray
167214 +enable_so_wbits_inflate_state_59211 wbits inflate_state 0 59211 &enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211
167215 +enable_so_xfs_bmapi_trim_map_fndecl_59212 xfs_bmapi_trim_map fndecl 6 59212 NULL nohasharray
167216 +enable_so_mpdu_len_wcn36xx_pdu_59212 mpdu_len wcn36xx_pdu 0 59212 &enable_so_xfs_bmapi_trim_map_fndecl_59212
167217 +enable_so_cqe_size_mlx5_ib_create_cq_59213 cqe_size mlx5_ib_create_cq 0 59213 NULL
167218 +enable_so_lock_extent_direct_fndecl_59219 lock_extent_direct fndecl 3-2 59219 NULL
167219 +enable_so_fbmem_used_viafb_par_59221 fbmem_used viafb_par 0 59221 NULL nohasharray
167220 +enable_so_rtl8723b_parse_firmware_fndecl_59221 rtl8723b_parse_firmware fndecl 0 59221 &enable_so_fbmem_used_viafb_par_59221
167221 +enable_so_gprs_set_mtu_fndecl_59222 gprs_set_mtu fndecl 2 59222 NULL
167222 +enable_so_up_anode_59225 up anode 0 59225 NULL
167223 +enable_so_walk_page_test_fndecl_59232 walk_page_test fndecl 0 59232 NULL
167224 +enable_so_sierra_net_skb_clone_fndecl_59236 sierra_net_skb_clone fndecl 3 59236 NULL
167225 +enable_so_nfs_direct_IO_fndecl_59238 nfs_direct_IO fndecl 3 59238 NULL nohasharray
167226 +enable_so_bits_to_user_fndecl_59238 bits_to_user fndecl 2-3-0 59238 &enable_so_nfs_direct_IO_fndecl_59238
167227 +enable_so_nr_segs_iov_iter_59239 nr_segs iov_iter 0 59239 NULL
167228 +enable_so_num_mbc_cfgs_wm8994_pdata_59240 num_mbc_cfgs wm8994_pdata 0 59240 NULL
167229 +enable_so_carl9170_debugfs_read_fndecl_59241 carl9170_debugfs_read fndecl 3 59241 NULL
167230 +enable_so_nlp_maxframe_lpfc_nodelist_59242 nlp_maxframe lpfc_nodelist 0 59242 NULL
167231 +enable_so_save_microcode_fndecl_59254 save_microcode fndecl 3 59254 NULL
167232 +enable_so_rcvidx_hdlc_hw_59264 rcvidx hdlc_hw 0 59264 NULL nohasharray
167233 +enable_so_nilfs_sufile_get_offset_fndecl_59264 nilfs_sufile_get_offset fndecl 0-2 59264 &enable_so_rcvidx_hdlc_hw_59264
167234 +enable_so_indir_size_ethtool_rxfh_59267 indir_size ethtool_rxfh 0 59267 NULL
167235 +enable_so_data_length_bnx2i_cmd_response_59279 data_length bnx2i_cmd_response 0 59279 NULL
167236 +enable_so_ir_prepare_write_buffer_fndecl_59280 ir_prepare_write_buffer fndecl 3 59280 NULL
167237 +enable_so_nentries_afs_dir_pagehdr_59283 nentries afs_dir_pagehdr 0 59283 NULL
167238 +enable_so_used_snd_array_59285 used snd_array 0 59285 NULL nohasharray
167239 +enable_so_mvumi_alloc_mem_resource_fndecl_59285 mvumi_alloc_mem_resource fndecl 3 59285 &enable_so_used_snd_array_59285
167240 +enable_so_written_coredump_params_59286 written coredump_params 0 59286 NULL
167241 +enable_so_hpfs_write_end_fndecl_59287 hpfs_write_end fndecl 5 59287 NULL
167242 +enable_so_ext3_find_near_fndecl_59291 ext3_find_near fndecl 0 59291 NULL
167243 +enable_so_nr_regs_omap_prcm_irq_setup_59292 nr_regs omap_prcm_irq_setup 0 59292 NULL
167244 +enable_so_alloc_sched_domains_fndecl_59295 alloc_sched_domains fndecl 1 59295 NULL
167245 +enable_so_posix_acl_fix_xattr_from_user_fndecl_59298 posix_acl_fix_xattr_from_user fndecl 2 59298 NULL
167246 +enable_so_sb_rootino_xfs_sb_59299 sb_rootino xfs_sb 0 59299 NULL nohasharray
167247 +enable_so_range_oid_t_59299 range oid_t 0 59299 &enable_so_sb_rootino_xfs_sb_59299
167248 +enable_so_jffs2_write_dnode_fndecl_59301 jffs2_write_dnode fndecl 5 59301 NULL
167249 +enable_so_next_segno_curseg_info_59302 next_segno curseg_info 0 59302 NULL
167250 +enable_so_stretch_width_usb_usbvision_59304 stretch_width usb_usbvision 0 59304 NULL
167251 +enable_so_RequestCredit_mpt2sas_facts_59309 RequestCredit mpt2sas_facts 0 59309 NULL
167252 +enable_so_W6692_empty_Bfifo_fndecl_59311 W6692_empty_Bfifo fndecl 2 59311 NULL
167253 +enable_so_frame_bytes_ua101_stream_59312 frame_bytes ua101_stream 0 59312 NULL
167254 +enable_so_befs_fblock2brun_fndecl_59313 befs_fblock2brun fndecl 3 59313 NULL
167255 +enable_so_qib_copy_sge_fndecl_59314 qib_copy_sge fndecl 3 59314 NULL
167256 +enable_so_error_error_numll_frame_cts_start_read_fndecl_59318 error_error_numll_frame_cts_start_read fndecl 3 59318 NULL
167257 +enable_so_pcpu_nr_units_vardecl_percpu_c_59323 pcpu_nr_units vardecl_percpu.c 0 59323 NULL
167258 +enable_so_nv_getlen_fndecl_59327 nv_getlen fndecl 0 59327 NULL
167259 +enable_so_i2c_inb_fndecl_59328 i2c_inb fndecl 0 59328 NULL
167260 +enable_so_read_file_spectral_bins_fndecl_59334 read_file_spectral_bins fndecl 3 59334 NULL
167261 +enable_so_pinconf_dbg_config_write_fndecl_59336 pinconf_dbg_config_write fndecl 3 59336 NULL
167262 +enable_so_stmmac_set_bfsize_fndecl_59337 stmmac_set_bfsize fndecl 0 59337 NULL
167263 +enable_so_raw_sendmsg_fndecl_59341 raw_sendmsg fndecl 3 59341 NULL
167264 +enable_so_affs_iget_fndecl_59342 affs_iget fndecl 2 59342 NULL
167265 +enable_so_mbox_size_sst_res_info_59343 mbox_size sst_res_info 0 59343 NULL
167266 +enable_so_ttymajor_vardecl_synclinkmp_c_59344 ttymajor vardecl_synclinkmp.c 0 59344 NULL
167267 +enable_so_lov_packmd_fndecl_59345 lov_packmd fndecl 0 59345 NULL
167268 +enable_so_offset_first_afs_writeback_59348 offset_first afs_writeback 0 59348 NULL
167269 +enable_so_rtl_cmd_width_vardecl_ibm_rtl_c_59349 rtl_cmd_width vardecl_ibm_rtl.c 0 59349 NULL
167270 +enable_so_size_s5p_jpeg_q_data_59350 size s5p_jpeg_q_data 0 59350 NULL
167271 +enable_so_vc_cols_vc_data_59351 vc_cols vc_data 0 59351 NULL
167272 +enable_so_mw_count_ntb_dev_ops_59352 mw_count ntb_dev_ops 0 59352 NULL
167273 +enable_so_vsync_end_drm_display_mode_59355 vsync_end drm_display_mode 0 59355 NULL
167274 +enable_so_hpfs_alloc_fnode_fndecl_59356 hpfs_alloc_fnode fndecl 2 59356 NULL nohasharray
167275 +enable_so_tree_mod_log_insert_move_fndecl_59356 tree_mod_log_insert_move fndecl 5 59356 &enable_so_hpfs_alloc_fnode_fndecl_59356
167276 +enable_so_base_tsn_sctp_tsnmap_59358 base_tsn sctp_tsnmap 0 59358 NULL
167277 +enable_so_ie_len_cfg80211_assoc_request_59359 ie_len cfg80211_assoc_request 0 59359 NULL
167278 +enable_so_sys_mmap_fndecl_59360 sys_mmap fndecl 2 59360 NULL
167279 +enable_so_ixgbe_change_mtu_fndecl_59370 ixgbe_change_mtu fndecl 2 59370 NULL nohasharray
167280 +enable_so_buf_len_i40e_arq_event_info_59370 buf_len i40e_arq_event_info 0 59370 &enable_so_ixgbe_change_mtu_fndecl_59370
167281 +enable_so_default_drvbuffer_scsi_tape_59374 default_drvbuffer scsi_tape 0 59374 NULL
167282 +enable_so_max_size_drm_vmw_get_3d_cap_arg_59378 max_size drm_vmw_get_3d_cap_arg 0 59378 NULL
167283 +enable_so_frag_point_sctp_association_59379 frag_point sctp_association 0 59379 NULL
167284 +enable_so_num_fcxp_reqs_bfa_iocfc_fwcfg_s_59383 num_fcxp_reqs bfa_iocfc_fwcfg_s 0 59383 NULL
167285 +enable_so_free_list_size_eni_dev_59386 free_list_size eni_dev 0 59386 NULL
167286 +enable_so_line_outs_auto_pin_cfg_59389 line_outs auto_pin_cfg 0 59389 NULL
167287 +enable_so_iwl_dbgfs_chain_noise_read_fndecl_59392 iwl_dbgfs_chain_noise_read fndecl 3 59392 NULL
167288 +enable_so_batadv_iv_ogm_queue_add_fndecl_59398 batadv_iv_ogm_queue_add fndecl 3 59398 NULL nohasharray
167289 +enable_so_size_freelQ_59398 size freelQ 0 59398 &enable_so_batadv_iv_ogm_queue_add_fndecl_59398
167290 +enable_so_fm_size_ubi_device_59399 fm_size ubi_device 0 59399 NULL nohasharray
167291 +enable_so_vb2_dc_get_user_pages_fndecl_59399 vb2_dc_get_user_pages fndecl 1 59399 &enable_so_fm_size_ubi_device_59399
167292 +enable_so_smk_write_direct_fndecl_59400 smk_write_direct fndecl 3 59400 NULL
167293 +enable_so_drm_legacy_addmap_fndecl_59402 drm_legacy_addmap fndecl 3-2 59402 NULL
167294 +enable_so_alloc_mad_private_fndecl_59408 alloc_mad_private fndecl 1 59408 NULL
167295 +enable_so_elem_size_bpf_htab_59409 elem_size bpf_htab 0 59409 NULL
167296 +enable_so_secure_dccpv6_sequence_number_fndecl_59410 secure_dccpv6_sequence_number fndecl 0 59410 NULL
167297 +enable_so_optlen_xfrm_mode_skb_cb_59411 optlen xfrm_mode_skb_cb 0 59411 NULL
167298 +enable_so_fotg210_urb_dequeue_fndecl_59414 fotg210_urb_dequeue fndecl 3 59414 NULL nohasharray
167299 +enable_so_num_vfs_ixgbe_adapter_59414 num_vfs ixgbe_adapter 0 59414 &enable_so_fotg210_urb_dequeue_fndecl_59414
167300 +enable_so_desc_elems_timb_dma_chan_59416 desc_elems timb_dma_chan 0 59416 NULL
167301 +enable_so_vma_adjust_fndecl_59429 vma_adjust fndecl 3-4-2 59429 NULL nohasharray
167302 +enable_so_ext2_xattr_user_set_fndecl_59429 ext2_xattr_user_set fndecl 4 59429 &enable_so_vma_adjust_fndecl_59429
167303 +enable_so_mmap_ureg_fndecl_59431 mmap_ureg fndecl 3 59431 NULL
167304 +enable_so_s_checkpoint_size_nilfs_super_block_59433 s_checkpoint_size nilfs_super_block 0 59433 NULL
167305 +enable_so_nilfs_cpfile_block_get_checkpoint_fndecl_59441 nilfs_cpfile_block_get_checkpoint fndecl 2 59441 NULL
167306 +enable_so_blocks_count_ext3_new_group_data_59443 blocks_count ext3_new_group_data 0 59443 NULL
167307 +enable_so_max_sectors_vardecl_megaraid_sas_base_c_59444 max_sectors vardecl_megaraid_sas_base.c 0 59444 NULL
167308 +enable_so_z2_zt_59452 z2 zt 0 59452 NULL
167309 +enable_so_rng_get_data_fndecl_59453 rng_get_data fndecl 0 59453 NULL
167310 +enable_so_ubi_dump_flash_fndecl_59454 ubi_dump_flash fndecl 4 59454 NULL
167311 +enable_so_platform_gpio_count_fndecl_59459 platform_gpio_count fndecl 0 59459 NULL
167312 +enable_so_vmbus_sendpacket_pagebuffer_fndecl_59463 vmbus_sendpacket_pagebuffer fndecl 3-5 59463 NULL
167313 +enable_so_ath6kl_wmi_mcast_filter_cmd_fndecl_59465 ath6kl_wmi_mcast_filter_cmd fndecl 2 59465 NULL
167314 +enable_so_ttm_page_pool_get_pages_fndecl_59468 ttm_page_pool_get_pages fndecl 5-0 59468 NULL
167315 +enable_so__pmcraid_io_done_fndecl_59469 _pmcraid_io_done fndecl 2 59469 NULL
167316 +enable_so_common_ie_len_ieee80211_scan_ies_59478 common_ie_len ieee80211_scan_ies 0 59478 NULL
167317 +enable_so_phys_acpi_ioremap_59485 phys acpi_ioremap 0 59485 NULL
167318 +enable_so_i2c_hid_output_raw_report_fndecl_59486 i2c_hid_output_raw_report fndecl 3 59486 NULL
167319 +enable_so_length_acpi_pnp_device_id_59493 length acpi_pnp_device_id 0 59493 NULL
167320 +enable_so_vma_to_resize_fndecl_59495 vma_to_resize fndecl 2-3 59495 NULL
167321 +enable_so_rx_ringsz_alx_priv_59496 rx_ringsz alx_priv 0 59496 NULL
167322 +enable_so_src_addr_width_dma_slave_config_59497 src_addr_width dma_slave_config 0 59497 NULL nohasharray
167323 +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
167324 +enable_so_pci_frontend_enable_msix_fndecl_59501 pci_frontend_enable_msix fndecl 3 59501 NULL
167325 +enable_so_lastbuf_for_pio_qib_chip_specific_59509 lastbuf_for_pio qib_chip_specific 0 59509 NULL
167326 +enable_so_wdata_alloc_and_fillpages_fndecl_59510 wdata_alloc_and_fillpages fndecl 1 59510 NULL
167327 +enable_so_rmtblkno2_xfs_da_args_59516 rmtblkno2 xfs_da_args 0 59516 NULL nohasharray
167328 +enable_so_cp210x_set_config_fndecl_59516 cp210x_set_config fndecl 4 59516 &enable_so_rmtblkno2_xfs_da_args_59516
167329 +enable_so_nilfs_commit_chunk_fndecl_59518 nilfs_commit_chunk fndecl 3-4 59518 NULL
167330 +enable_so_qlcnic_get_vnic_func_count_fndecl_59521 qlcnic_get_vnic_func_count fndecl 0 59521 NULL
167331 +enable_so_queue_length_vardecl_ua101_c_59524 queue_length vardecl_ua101.c 0 59524 NULL
167332 +enable_so_limit_data_queue_59525 limit data_queue 0 59525 NULL
167333 +enable_so_ocfs2_adjust_xattr_cross_cluster_fndecl_59528 ocfs2_adjust_xattr_cross_cluster fndecl 5-6 59528 NULL
167334 +enable_so_handle_ule_extensions_fndecl_59533 handle_ule_extensions fndecl 0 59533 NULL
167335 +enable_so_snd_pcm_oss_format_from_fndecl_59553 snd_pcm_oss_format_from fndecl 0 59553 NULL nohasharray
167336 +enable_so_kmsg_read_fndecl_59553 kmsg_read fndecl 3 59553 &enable_so_snd_pcm_oss_format_from_fndecl_59553 nohasharray
167337 +enable_so_nouveau_drm_ioctl_fndecl_59553 nouveau_drm_ioctl fndecl 2 59553 &enable_so_kmsg_read_fndecl_59553
167338 +enable_so_pci_get_subsys_fndecl_59555 pci_get_subsys fndecl 2 59555 NULL nohasharray
167339 +enable_so_mthca_alloc_cq_buf_fndecl_59555 mthca_alloc_cq_buf fndecl 3 59555 &enable_so_pci_get_subsys_fndecl_59555
167340 +enable_so_num_stripes_btrfs_chunk_59557 num_stripes btrfs_chunk 0 59557 NULL
167341 +enable_so_nlm_end_grace_write_fndecl_59558 nlm_end_grace_write fndecl 3 59558 NULL
167342 +enable_so_rest_blocks_nilfs_write_info_59560 rest_blocks nilfs_write_info 0 59560 NULL
167343 +enable_so_chunk_size_disk_header_59563 chunk_size disk_header 0 59563 NULL
167344 +enable_so_bdx_rxdb_create_fndecl_59566 bdx_rxdb_create fndecl 1 59566 NULL
167345 +enable_so_fill_in_write_vector_fndecl_59569 fill_in_write_vector fndecl 0 59569 NULL nohasharray
167346 +enable_so_vringh_complete_multi_user_fndecl_59569 vringh_complete_multi_user fndecl 3 59569 &enable_so_fill_in_write_vector_fndecl_59569
167347 +enable_so_unmap_mapping_range_fndecl_59573 unmap_mapping_range fndecl 2-3 59573 NULL
167348 +enable_so_pin_code_reply_fndecl_59581 pin_code_reply fndecl 4 59581 NULL
167349 +enable_so_key_count_applesmc_registers_59587 key_count applesmc_registers 0 59587 NULL
167350 +enable_so_length_sctp_paramhdr_59588 length sctp_paramhdr 0 59588 NULL
167351 +enable_so_reserved_tags_blk_mq_tag_set_59594 reserved_tags blk_mq_tag_set 0 59594 NULL
167352 +enable_so_bMaxPacketSize0_usb_device_descriptor_59595 bMaxPacketSize0 usb_device_descriptor 0 59595 NULL
167353 +enable_so_size_amd76xrom_window_59596 size amd76xrom_window 0 59596 NULL nohasharray
167354 +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
167355 +enable_so_min_coredump_linux_binfmt_59604 min_coredump linux_binfmt 0 59604 NULL
167356 +enable_so_height_mxr_crop_59619 height mxr_crop 0 59619 NULL
167357 +enable_so_serverworks_create_gatt_pages_fndecl_59621 serverworks_create_gatt_pages fndecl 1 59621 NULL
167358 +enable_so_br_vlan_delete_fndecl_59631 br_vlan_delete fndecl 2 59631 NULL
167359 +enable_so_unmap_single_vma_fndecl_59634 unmap_single_vma fndecl 4-3 59634 NULL
167360 +enable_so_gpio_count_tle62x0_pdata_59637 gpio_count tle62x0_pdata 0 59637 NULL
167361 +enable_so_q_fileoffset_xfs_dquot_59638 q_fileoffset xfs_dquot 0 59638 NULL
167362 +enable_so_trf7970a_transmit_fndecl_59648 trf7970a_transmit fndecl 5-3 59648 NULL
167363 +enable_so_SSID_len_brcmf_pno_net_info_le_59653 SSID_len brcmf_pno_net_info_le 0 59653 NULL
167364 +enable_so_xfs_trim_extents_fndecl_59654 xfs_trim_extents fndecl 2 59654 NULL
167365 +enable_so_num_subchannels_nvsp_5_subchannel_complete_59660 num_subchannels nvsp_5_subchannel_complete 0 59660 NULL nohasharray
167366 +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
167367 +enable_so_fat_free_clusters_fndecl_59665 fat_free_clusters fndecl 2 59665 NULL
167368 +enable_so_mgmt_remote_name_fndecl_59667 mgmt_remote_name fndecl 7 59667 NULL nohasharray
167369 +enable_so_amdgpu_kms_compat_ioctl_fndecl_59667 amdgpu_kms_compat_ioctl fndecl 2 59667 &enable_so_mgmt_remote_name_fndecl_59667
167370 +enable_so_ipmi_pci_probe_regspacing_fndecl_59668 ipmi_pci_probe_regspacing fndecl 0 59668 NULL nohasharray
167371 +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
167372 +enable_so_ms_read_bytes_fndecl_59672 ms_read_bytes fndecl 4 59672 NULL
167373 +enable_so_old_block_size_swap_info_struct_59674 old_block_size swap_info_struct 0 59674 NULL
167374 +enable_so_s_cur_size_ipath_qp_59678 s_cur_size ipath_qp 0 59678 NULL
167375 +enable_so_xprt_hlen_svc_deferred_req_59683 xprt_hlen svc_deferred_req 0 59683 NULL
167376 +enable_so_rtw_buf_update_fndecl_59689 rtw_buf_update fndecl 4 59689 NULL
167377 +enable_so_capacity_sddr55_card_info_59695 capacity sddr55_card_info 0 59695 NULL
167378 +enable_so_mlx4_ib_alloc_fast_reg_page_list_fndecl_59700 mlx4_ib_alloc_fast_reg_page_list fndecl 2 59700 NULL
167379 +enable_so_flt_region_bootload_ql82xx_hw_data_59701 flt_region_bootload ql82xx_hw_data 0 59701 NULL
167380 +enable_so_atalk_sendmsg_fndecl_59718 atalk_sendmsg fndecl 3 59718 NULL nohasharray
167381 +enable_so_aux_entry_sz_mlx4_dev_cap_59718 aux_entry_sz mlx4_dev_cap 0 59718 &enable_so_atalk_sendmsg_fndecl_59718
167382 +enable_so_dock_station_count_vardecl_dock_c_59728 dock_station_count vardecl_dock.c 0 59728 NULL
167383 +enable_so___walk_page_range_fndecl_59729 __walk_page_range fndecl 0 59729 NULL
167384 +enable_so_nilfs_btnode_create_block_fndecl_59734 nilfs_btnode_create_block fndecl 2 59734 NULL
167385 +enable_so_val_i2400m_pld_59735 val i2400m_pld 0 59735 NULL
167386 +enable_so_ddp_clear_map_fndecl_59739 ddp_clear_map fndecl 4 59739 NULL
167387 +enable_so_offset_bts_phys_59741 offset bts_phys 0 59741 NULL
167388 +enable_so_l_iclog_hsize_xlog_59743 l_iclog_hsize xlog 0 59743 NULL nohasharray
167389 +enable_so___netlink_change_ngroups_fndecl_59743 __netlink_change_ngroups fndecl 2 59743 &enable_so_l_iclog_hsize_xlog_59743
167390 +enable_so_ocfs2_read_dx_leaves_fndecl_59744 ocfs2_read_dx_leaves fndecl 2 59744 NULL nohasharray
167391 +enable_so_fq_resize_fndecl_59744 fq_resize fndecl 2 59744 &enable_so_ocfs2_read_dx_leaves_fndecl_59744
167392 +enable_so_nx_fw_cmd_set_phy_fndecl_59745 nx_fw_cmd_set_phy fndecl 3 59745 NULL
167393 +enable_so_mt_count_mtop_59746 mt_count mtop 0 59746 NULL
167394 +enable_so_xlog_write_calc_vec_length_fndecl_59749 xlog_write_calc_vec_length fndecl 0 59749 NULL
167395 +enable_so_request_size_afs_call_59750 request_size afs_call 0 59750 NULL nohasharray
167396 +enable_so_add_conn_list_fndecl_59750 add_conn_list fndecl 3 59750 &enable_so_request_size_afs_call_59750
167397 +enable_so_mtu_dst_ops_59765 mtu dst_ops 0 59765 NULL
167398 +enable_so_au_cslack_rpc_auth_59766 au_cslack rpc_auth 0 59766 NULL
167399 +enable_so_vxge_os_dma_malloc_fndecl_59771 vxge_os_dma_malloc fndecl 2 59771 NULL
167400 +enable_so_tipc_msg_create_fndecl_59776 tipc_msg_create fndecl 4-3 59776 NULL
167401 +enable_so_osd_full_w_yuv_playback_info_59778 osd_full_w yuv_playback_info 0 59778 NULL
167402 +enable_so_reiserfs_new_symlink_fndecl_59783 reiserfs_new_symlink fndecl 6 59783 NULL nohasharray
167403 +enable_so_max_segments_queue_limits_59783 max_segments queue_limits 0 59783 &enable_so_reiserfs_new_symlink_fndecl_59783
167404 +enable_so_mlx4_buf_alloc_fndecl_59788 mlx4_buf_alloc fndecl 2 59788 NULL
167405 +enable_so_sdio_set_block_size_fndecl_59792 sdio_set_block_size fndecl 2 59792 NULL nohasharray
167406 +enable_so_dma_npages_rds_iw_scatterlist_59792 dma_npages rds_iw_scatterlist 0 59792 &enable_so_sdio_set_block_size_fndecl_59792
167407 +enable_so_bandlength_Timon_table_entry_59793 bandlength Timon_table_entry 0 59793 NULL nohasharray
167408 +enable_so_num_leds_lm3533_platform_data_59793 num_leds lm3533_platform_data 0 59793 &enable_so_bandlength_Timon_table_entry_59793
167409 +enable_so_tm6000_i2c_recv_regs_fndecl_59796 tm6000_i2c_recv_regs fndecl 5 59796 NULL
167410 +enable_so_length_lv_59797 length lv 0 59797 NULL
167411 +enable_so_i2400m_op_msg_from_user_fndecl_59798 i2400m_op_msg_from_user fndecl 4 59798 NULL
167412 +enable_so_NumPhys__CONFIG_PAGE_SAS_IO_UNIT_0_59799 NumPhys _CONFIG_PAGE_SAS_IO_UNIT_0 0 59799 NULL
167413 +enable_so_rcount_sixpack_59806 rcount sixpack 0 59806 NULL
167414 +enable_so_vcan_change_mtu_fndecl_59807 vcan_change_mtu fndecl 2 59807 NULL
167415 +enable_so_to_last_afs_writeback_59812 to_last afs_writeback 0 59812 NULL
167416 +enable_so_drbd_setup_queue_param_fndecl_59813 drbd_setup_queue_param fndecl 3 59813 NULL nohasharray
167417 +enable_so_setup_sgtable_fndecl_59813 setup_sgtable fndecl 4 59813 &enable_so_drbd_setup_queue_param_fndecl_59813
167418 +enable_so_frsz_gspca_dev_59816 frsz gspca_dev 0 59816 NULL
167419 +enable_so_nf_nat_ftp_fndecl_59818 nf_nat_ftp fndecl 6 59818 NULL
167420 +enable_so_num_entries_arpt_replace_59819 num_entries arpt_replace 0 59819 NULL
167421 +enable_so_numpstates_pst_s_59820 numpstates pst_s 0 59820 NULL
167422 +enable_so_xen_setup_msi_irqs_fndecl_59830 xen_setup_msi_irqs fndecl 2 59830 NULL
167423 +enable_so_length_inflate_state_59831 length inflate_state 0 59831 NULL
167424 +enable_so_dig_outs_auto_pin_cfg_59832 dig_outs auto_pin_cfg 0 59832 NULL
167425 +enable_so_mpi_read_raw_data_fndecl_59835 mpi_read_raw_data fndecl 2 59835 NULL
167426 +enable_so_plen_hci_command_hdr_59837 plen hci_command_hdr 0 59837 NULL
167427 +enable_so_dvb_net_init_fndecl_59840 dvb_net_init fndecl 0 59840 NULL
167428 +enable_so_max_len_xc2028_ctrl_59842 max_len xc2028_ctrl 0 59842 NULL
167429 +enable_so_tcp_sendmsg_fastopen_fndecl_59843 tcp_sendmsg_fastopen fndecl 4 59843 NULL
167430 +enable_so_f2fs_fill_dentries_fndecl_59844 f2fs_fill_dentries fndecl 3 59844 NULL
167431 +enable_so_status_mei_cl_cb_59845 status mei_cl_cb 0 59845 NULL
167432 +enable_so_acpi_rs_decode_bitmask_fndecl_59851 acpi_rs_decode_bitmask fndecl 0 59851 NULL
167433 +enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852 dce_v11_0_afmt_update_ACR fndecl 2 59852 NULL nohasharray
167434 +enable_so_pep_alloc_skb_fndecl_59852 pep_alloc_skb fndecl 3 59852 &enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852
167435 +enable_so_count_audit_chunk_59856 count audit_chunk 0 59856 NULL
167436 +enable_so_im_blkno_xfs_imap_59866 im_blkno xfs_imap 0 59866 NULL nohasharray
167437 +enable_so_length_pm8001_ioctl_payload_59866 length pm8001_ioctl_payload 0 59866 &enable_so_im_blkno_xfs_imap_59866
167438 +enable_so_arch_remove_memory_fndecl_59869 arch_remove_memory fndecl 2-1 59869 NULL
167439 +enable_so___process_changed_deleted_xattr_fndecl_59870 __process_changed_deleted_xattr fndecl 4 59870 NULL
167440 +enable_so_max_loop_vardecl_lloop_c_59872 max_loop vardecl_lloop.c 0 59872 NULL
167441 +enable_so_qlcnic_83xx_sysfs_flash_bulk_write_fndecl_59875 qlcnic_83xx_sysfs_flash_bulk_write fndecl 4 59875 NULL
167442 +enable_so_src_offset_btrfs_ioctl_clone_range_args_59876 src_offset btrfs_ioctl_clone_range_args 0 59876 NULL
167443 +enable_so_ide_scan_pio_blacklist_fndecl_59877 ide_scan_pio_blacklist fndecl 0 59877 NULL
167444 +enable_so_dx_fb_fillrect_59878 dx fb_fillrect 0 59878 NULL
167445 +enable_so___hwahc_dev_set_key_fndecl_59883 __hwahc_dev_set_key fndecl 5 59883 NULL
167446 +enable_so_vfs_allocated_count_igb_adapter_59900 vfs_allocated_count igb_adapter 0 59900 NULL
167447 +enable_so_mos7720_write_fndecl_59901 mos7720_write fndecl 4 59901 NULL nohasharray
167448 +enable_so_rxbuffersize_rtl_pci_59901 rxbuffersize rtl_pci 0 59901 &enable_so_mos7720_write_fndecl_59901
167449 +enable_so_num_gpio_wm831x_59907 num_gpio wm831x 0 59907 NULL
167450 +enable_so_wheel_num_ad714x_platform_data_59912 wheel_num ad714x_platform_data 0 59912 NULL
167451 +enable_so_qp_memcpy_from_queue_iov_fndecl_59913 qp_memcpy_from_queue_iov fndecl 5-4 59913 NULL
167452 +enable_so_rvmalloc_fndecl_59914 rvmalloc fndecl 1 59914 NULL
167453 +enable_so_video_endp_usb_usbvision_59918 video_endp usb_usbvision 0 59918 NULL
167454 +enable_so_nr_virtfn_bnx2x_sriov_59919 nr_virtfn bnx2x_sriov 0 59919 NULL nohasharray
167455 +enable_so_lov_iocontrol_fndecl_59919 lov_iocontrol fndecl 3 59919 &enable_so_nr_virtfn_bnx2x_sriov_59919
167456 +enable_so_wOverTheAirPacketSize_usb_wireless_ep_comp_descriptor_59926 wOverTheAirPacketSize usb_wireless_ep_comp_descriptor 0 59926 NULL
167457 +enable_so_n_user_regset_59935 n user_regset 0 59935 NULL
167458 +enable_so_blk_queue_max_write_same_sectors_fndecl_59954 blk_queue_max_write_same_sectors fndecl 2 59954 NULL
167459 +enable_so_bpl_cx25821_buffer_59964 bpl cx25821_buffer 0 59964 NULL nohasharray
167460 +enable_so_ixgbe_dbg_reg_ops_write_fndecl_59964 ixgbe_dbg_reg_ops_write fndecl 3 59964 &enable_so_bpl_cx25821_buffer_59964
167461 +enable_so_pull_to_netfront_cb_59965 pull_to netfront_cb 0 59965 NULL
167462 +enable_so_acpi_os_create_cache_fndecl_59968 acpi_os_create_cache fndecl 2 59968 NULL
167463 +enable_so_mwifiex_set_wapi_ie_fndecl_59972 mwifiex_set_wapi_ie fndecl 3 59972 NULL
167464 +enable_so_calc_line_length_fndecl_59973 calc_line_length fndecl 0-3-2 59973 NULL
167465 +enable_so_fuse_file_fallocate_fndecl_59983 fuse_file_fallocate fndecl 3-4 59983 NULL nohasharray
167466 +enable_so_scrub_pages_fndecl_59983 scrub_pages fndecl 3-2-11-4 59983 &enable_so_fuse_file_fallocate_fndecl_59983
167467 +enable_so_wlcore_alloc_hw_fndecl_59990 wlcore_alloc_hw fndecl 1-3 59990 NULL
167468 +enable_so_affs_write_begin_ofs_fndecl_59991 affs_write_begin_ofs fndecl 3 59991 NULL
167469 +enable_so_real_stripes_btrfs_raid_bio_59993 real_stripes btrfs_raid_bio 0 59993 NULL
167470 +enable_so_count_drm_buf_desc_59998 count drm_buf_desc 0 59998 NULL
167471 +enable_so_fb_write_fndecl_59999 fb_write fndecl 3 59999 NULL
167472 +enable_so_size_fuse_arg_60001 size fuse_arg 0 60001 NULL
167473 +enable_so_nvkm_falcon_create__fndecl_60005 nvkm_falcon_create_ fndecl 8 60005 NULL
167474 +enable_so_SYSC_poll_fndecl_60006 SYSC_poll fndecl 2 60006 NULL
167475 +enable_so___find_resource_fndecl_60011 __find_resource fndecl 4 60011 NULL
167476 +enable_so_len_ubifs_ch_60014 len ubifs_ch 0 60014 NULL
167477 +enable_so_skb_priority_pktgen_dev_60015 skb_priority pktgen_dev 0 60015 NULL
167478 +enable_so_portnum_usb_device_60022 portnum usb_device 0 60022 NULL nohasharray
167479 +enable_so___sctp_setsockopt_connectx_fndecl_60022 __sctp_setsockopt_connectx fndecl 3 60022 &enable_so_portnum_usb_device_60022
167480 +enable_so_page_shift_nouveau_bo_60023 page_shift nouveau_bo 0 60023 NULL
167481 +enable_so_ntfs_truncate_fndecl_60026 ntfs_truncate fndecl 0 60026 NULL nohasharray
167482 +enable_so_qla4xxx_post_aen_work_fndecl_60026 qla4xxx_post_aen_work fndecl 3 60026 &enable_so_ntfs_truncate_fndecl_60026
167483 +enable_so_alloc_in_bmp_fndecl_60028 alloc_in_bmp fndecl 0-4-3-2 60028 NULL
167484 +enable_so_calculate_alignment_fndecl_60029 calculate_alignment fndecl 0-2 60029 NULL nohasharray
167485 +enable_so_coda_fsync_fndecl_60029 coda_fsync fndecl 2-3 60029 &enable_so_calculate_alignment_fndecl_60029
167486 +enable_so_write_tx_buf_fndecl_60032 write_tx_buf fndecl 4 60032 NULL
167487 +enable_so_print_bad_pte_fndecl_60036 print_bad_pte fndecl 2 60036 NULL
167488 +enable_so_hdrlen_ip_auth_hdr_60037 hdrlen ip_auth_hdr 0 60037 NULL
167489 +enable_so_sel_write_bool_fndecl_60039 sel_write_bool fndecl 3 60039 NULL
167490 +enable_so_MaxMSIxVectors_mpt3sas_facts_60045 MaxMSIxVectors mpt3sas_facts 0 60045 NULL
167491 +enable_so_blk_rq_map_kern_fndecl_60047 blk_rq_map_kern fndecl 4 60047 NULL
167492 +enable_so_mgmt_pending_add_fndecl_60051 mgmt_pending_add fndecl 5 60051 NULL
167493 +enable_so_drm_atomic_helper_update_plane_fndecl_60059 drm_atomic_helper_update_plane fndecl 6-7 60059 NULL
167494 +enable_so_user_set_fndecl_60060 user_set fndecl 4 60060 NULL
167495 +enable_so_cx231xx_init_bulk_fndecl_60067 cx231xx_init_bulk fndecl 4-2-3 60067 NULL
167496 +enable_so_level_ubifs_znode_60069 level ubifs_znode 0 60069 NULL
167497 +enable_so_lpfc_hba_queue_depth_vardecl_lpfc_attr_c_60071 lpfc_hba_queue_depth vardecl_lpfc_attr.c 0 60071 NULL
167498 +enable_so_hpi_outstream_host_buffer_allocate_fndecl_60074 hpi_outstream_host_buffer_allocate fndecl 2 60074 NULL
167499 +enable_so_debugfs_create_u32_array_fndecl_60082 debugfs_create_u32_array fndecl 5 60082 NULL
167500 +enable_so_dram_offset_sst_res_info_60089 dram_offset sst_res_info 0 60089 NULL
167501 +enable_so_f2fs_issue_discard_fndecl_60090 f2fs_issue_discard fndecl 2-3 60090 NULL
167502 +enable_so_persistent_gnts_c_blkfront_info_60091 persistent_gnts_c blkfront_info 0 60091 NULL
167503 +enable_so_udpv6_sendmsg_fndecl_60103 udpv6_sendmsg fndecl 3 60103 NULL
167504 +enable_so_sample_rate_min_lola_60104 sample_rate_min lola 0 60104 NULL nohasharray
167505 +enable_so_event_trigger_regex_write_fndecl_60104 event_trigger_regex_write fndecl 3 60104 &enable_so_sample_rate_min_lola_60104
167506 +enable_so_vxfs_iget_fndecl_60105 vxfs_iget fndecl 2 60105 NULL
167507 +enable_so_ufs_new_fragments_fndecl_60109 ufs_new_fragments fndecl 4-5-3-0 60109 NULL
167508 +enable_so_tegra_slink_start_rx_dma_fndecl_60111 tegra_slink_start_rx_dma fndecl 2 60111 NULL
167509 +enable_so_raid10_find_virt_fndecl_60115 raid10_find_virt fndecl 0-3-2 60115 NULL nohasharray
167510 +enable_so_num_tx_bnad_60115 num_tx bnad 0 60115 &enable_so_raid10_find_virt_fndecl_60115
167511 +enable_so_display_height_vivid_dev_60116 display_height vivid_dev 0 60116 NULL
167512 +enable_so_ht_ast_vbios_enhtable_60121 ht ast_vbios_enhtable 0 60121 NULL
167513 +enable_so_vga_vram_end_vardecl_vgacon_c_60130 vga_vram_end vardecl_vgacon.c 0 60130 NULL nohasharray
167514 +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
167515 +enable_so_fb_base_drm_mode_config_60135 fb_base drm_mode_config 0 60135 NULL
167516 +enable_so_external_rate_fndecl_60138 external_rate fndecl 0 60138 NULL
167517 +enable_so_pci_xr17c154_setup_fndecl_60140 pci_xr17c154_setup fndecl 4 60140 NULL
167518 +enable_so_data_len_ib_ucm_event_60142 data_len ib_ucm_event 0 60142 NULL
167519 +enable_so_scalar_len_ccp_ecc_point_math_60144 scalar_len ccp_ecc_point_math 0 60144 NULL
167520 +enable_so_vfp_set_fndecl_60145 vfp_set fndecl 3-4 60145 NULL
167521 +enable_so_index_drm_minor_60149 index drm_minor 0 60149 NULL
167522 +enable_so_pipeline_dec_packet_in_read_fndecl_60151 pipeline_dec_packet_in_read fndecl 3 60151 NULL
167523 +enable_so_skb_checksum_setup_ip_fndecl_60154 skb_checksum_setup_ip fndecl 3 60154 NULL
167524 +enable_so_pvid_net_port_vlans_60155 pvid net_port_vlans 0 60155 NULL
167525 +enable_so_dt_mem_next_cell_fndecl_60162 dt_mem_next_cell fndecl 0 60162 NULL
167526 +enable_so_drm_fb_helper_initial_config_fndecl_60163 drm_fb_helper_initial_config fndecl 2 60163 NULL nohasharray
167527 +enable_so_smem_start_fb_fix_screeninfo_60163 smem_start fb_fix_screeninfo 0 60163 &enable_so_drm_fb_helper_initial_config_fndecl_60163
167528 +enable_so_stream_start_fndecl_60166 stream_start fndecl 0 60166 NULL
167529 +enable_so_wm8962_set_fll_fndecl_60167 wm8962_set_fll fndecl 4-5 60167 NULL
167530 +enable_so_vscnprintf_fndecl_60170 vscnprintf fndecl 0 60170 NULL
167531 +enable_so___kfifo_out_r_fndecl_60172 __kfifo_out_r fndecl 4 60172 NULL
167532 +enable_so_acpi_parse_entries_fndecl_60174 acpi_parse_entries fndecl 0 60174 NULL
167533 +enable_so_dccp_ackvec_buflen_fndecl_60177 dccp_ackvec_buflen fndecl 0 60177 NULL nohasharray
167534 +enable_so_ec_device_read_fndecl_60177 ec_device_read fndecl 3 60177 &enable_so_dccp_ackvec_buflen_fndecl_60177
167535 +enable_so_snd_compr_write_data_fndecl_60179 snd_compr_write_data fndecl 3 60179 NULL
167536 +enable_so_cc2520_write_ram_fndecl_60183 cc2520_write_ram fndecl 3 60183 NULL
167537 +enable_so_priority_binder_transaction_60184 priority binder_transaction 0 60184 NULL
167538 +enable_so_unlink1_fndecl_60188 unlink1 fndecl 3 60188 NULL
167539 +enable_so_il3945_stats_flag_fndecl_60189 il3945_stats_flag fndecl 0 60189 NULL
167540 +enable_so_pci_enable_device_fndecl_60193 pci_enable_device fndecl 0 60193 NULL
167541 +enable_so_vsub_vsp1_format_info_60198 vsub vsp1_format_info 0 60198 NULL
167542 +enable_so_esrt_efi_60200 esrt efi 0 60200 NULL
167543 +enable_so_vfs_getxattr_alloc_fndecl_60202 vfs_getxattr_alloc fndecl 0 60202 NULL
167544 +enable_so_av7110_ipack_init_fndecl_60204 av7110_ipack_init fndecl 2 60204 NULL
167545 +enable_so_bio_advance_iter_fndecl_60205 bio_advance_iter fndecl 3 60205 NULL
167546 +enable_so_src_frames_snd_pcm_plugin_60210 src_frames snd_pcm_plugin 0 60210 NULL nohasharray
167547 +enable_so_iuu_read_buf_fndecl_60210 iuu_read_buf fndecl 2 60210 &enable_so_src_frames_snd_pcm_plugin_60210
167548 +enable_so_request_key_async_with_auxdata_fndecl_60211 request_key_async_with_auxdata fndecl 4 60211 NULL
167549 +enable_so_lpfc_fcp_io_channel_vardecl_lpfc_attr_c_60216 lpfc_fcp_io_channel vardecl_lpfc_attr.c 0 60216 NULL
167550 +enable_so_iget_locked_fndecl_60218 iget_locked fndecl 2 60218 NULL nohasharray
167551 +enable_so_rmmio_base_radeon_device_60218 rmmio_base radeon_device 0 60218 &enable_so_iget_locked_fndecl_60218
167552 +enable_so_btusb_recv_bulk_fndecl_60219 btusb_recv_bulk fndecl 3 60219 NULL
167553 +enable_so_MaximumParallelCommands_DAC960_V2_ControllerInfo_60222 MaximumParallelCommands DAC960_V2_ControllerInfo 0 60222 NULL
167554 +enable_so_l2cap_parse_conf_rsp_fndecl_60232 l2cap_parse_conf_rsp fndecl 0 60232 NULL
167555 +enable_so_l2cap_create_le_flowctl_pdu_fndecl_60233 l2cap_create_le_flowctl_pdu fndecl 3 60233 NULL
167556 +enable_so_dlfb_alloc_urb_list_fndecl_60234 dlfb_alloc_urb_list fndecl 3 60234 NULL
167557 +enable_so_bttv_crop_adjust_fndecl_60236 bttv_crop_adjust fndecl 4-3 60236 NULL nohasharray
167558 +enable_so_irnet_connect_indication_fndecl_60236 irnet_connect_indication fndecl 5 60236 &enable_so_bttv_crop_adjust_fndecl_60236
167559 +enable_so_mwifiex_usb_host_to_card_fndecl_60239 mwifiex_usb_host_to_card fndecl 2 60239 NULL
167560 +enable_so_frag_len_pau_fpdu_frag_60242 frag_len pau_fpdu_frag 0 60242 NULL
167561 +enable_so_max_pages_per_fmr_ib_fmr_pool_param_60248 max_pages_per_fmr ib_fmr_pool_param 0 60248 NULL
167562 +enable_so_svm_queue_exception_fndecl_60249 svm_queue_exception fndecl 4-2 60249 NULL nohasharray
167563 +enable_so_length_squashfs_page_actor_60249 length squashfs_page_actor 0 60249 &enable_so_svm_queue_exception_fndecl_60249
167564 +enable_so_ah_rf_banks_size_ath5k_hw_60250 ah_rf_banks_size ath5k_hw 0 60250 NULL
167565 +enable_so_dirty_bytes_extent_io_tree_60254 dirty_bytes extent_io_tree 0 60254 NULL
167566 +enable_so_sector_size_jffs2_sb_info_60255 sector_size jffs2_sb_info 0 60255 NULL
167567 +enable_so_xenvif_change_mtu_fndecl_60258 xenvif_change_mtu fndecl 2 60258 NULL
167568 +enable_so_len_mwifiex_assoc_event_60259 len mwifiex_assoc_event 0 60259 NULL
167569 +enable_so_size_of_priv_dvb_usb_adapter_properties_60261 size_of_priv dvb_usb_adapter_properties 0 60261 NULL
167570 +enable_so_data_len_sym_ccb_60262 data_len sym_ccb 0 60262 NULL
167571 +enable_so_erst_dbg_write_fndecl_60264 erst_dbg_write fndecl 3 60264 NULL
167572 +enable_so_rotate_left_fndecl_60276 rotate_left fndecl 3-1 60276 NULL
167573 +enable_so_empty_dir_llseek_fndecl_60280 empty_dir_llseek fndecl 2 60280 NULL
167574 +enable_so_alloc_data_packet_fndecl_60281 alloc_data_packet fndecl 1 60281 NULL
167575 +enable_so_f2fs_update_dentry_fndecl_60285 f2fs_update_dentry fndecl 1 60285 NULL
167576 +enable_so_length_ore_per_dev_state_60287 length ore_per_dev_state 0 60287 NULL
167577 +enable_so___ata_change_queue_depth_fndecl_60290 __ata_change_queue_depth fndecl 3 60290 NULL
167578 +enable_so_read_file_tx99_fndecl_60294 read_file_tx99 fndecl 3 60294 NULL
167579 +enable_so_recv_actor_unix_stream_read_state_60306 recv_actor unix_stream_read_state 0 60306 NULL nohasharray
167580 +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
167581 +enable_so_area_whcrc_60320 area whcrc 0 60320 NULL
167582 +enable_so_check_ref_fndecl_60321 check_ref fndecl 3 60321 NULL nohasharray
167583 +enable_so_pnp_add_irq_resource_fndecl_60321 pnp_add_irq_resource fndecl 2 60321 &enable_so_check_ref_fndecl_60321
167584 +enable_so_kvm_vcpu_write_guest_fndecl_60323 kvm_vcpu_write_guest fndecl 2-4 60323 NULL
167585 +enable_so_pg_count_nfs_pgio_mirror_60324 pg_count nfs_pgio_mirror 0 60324 NULL
167586 +enable_so_transfer_fndecl_60326 transfer fndecl 4-0 60326 NULL
167587 +enable_so_eor_jfs_log_60327 eor jfs_log 0 60327 NULL
167588 +enable_so_rq_addrlen_svc_rqst_60328 rq_addrlen svc_rqst 0 60328 NULL
167589 +enable_so_upper_vardecl_matroxfb_base_c_60329 upper vardecl_matroxfb_base.c 0 60329 NULL
167590 +enable_so_int_hw_irq_en_fndecl_60331 int_hw_irq_en fndecl 3 60331 NULL
167591 +enable_so_bd_add_to_bdi_fndecl_60336 bd_add_to_bdi fndecl 0-2 60336 NULL
167592 +enable_so_buf_size__IOCTL_Command_struct_60338 buf_size _IOCTL_Command_struct 0 60338 NULL
167593 +enable_so_offset_nvkm_mem_60339 offset nvkm_mem 0 60339 NULL
167594 +enable_so_qib_rc_rcv_resp_fndecl_60341 qib_rc_rcv_resp fndecl 9-7 60341 NULL
167595 +enable_so_h_dloarea_60342 h dloarea 0 60342 NULL
167596 +enable_so_pagesize_alauda_media_info_60348 pagesize alauda_media_info 0 60348 NULL
167597 +enable_so_hest_ghes_dev_register_fndecl_60349 hest_ghes_dev_register fndecl 1 60349 NULL
167598 +enable_so_setup_geo_fndecl_60351 setup_geo fndecl 0 60351 NULL nohasharray
167599 +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
167600 +enable_so_softback_lines_vardecl_fbcon_c_60357 softback_lines vardecl_fbcon.c 0 60357 NULL
167601 +enable_so_length_dfw_pllrec_60358 length dfw_pllrec 0 60358 NULL
167602 +enable_so_num_counters_vardecl_sysfs_c_60371 num_counters vardecl_sysfs.c 0 60371 NULL
167603 +enable_so_idd_bar0_ioc4_driver_data_60385 idd_bar0 ioc4_driver_data 0 60385 NULL
167604 +enable_so_s_inodes_per_group_ext4_super_block_60387 s_inodes_per_group ext4_super_block 0 60387 NULL
167605 +enable_so_ipw_get_max_rate_fndecl_60389 ipw_get_max_rate fndecl 0 60389 NULL nohasharray
167606 +enable_so_acpi_dev_get_memresource_fndecl_60389 acpi_dev_get_memresource fndecl 3-2 60389 &enable_so_ipw_get_max_rate_fndecl_60389
167607 +enable_so_count_tx_ring_60390 count tx_ring 0 60390 NULL
167608 +enable_so_shmem_pwrite_fast_fndecl_60393 shmem_pwrite_fast fndecl 3 60393 NULL
167609 +enable_so_block_in_file_dio_submit_60403 block_in_file dio_submit 0 60403 NULL
167610 +enable_so_btrfs_insert_empty_items_fndecl_60405 btrfs_insert_empty_items fndecl 6 60405 NULL
167611 +enable_so_max_vfs_vardecl_ixgbe_main_c_60408 max_vfs vardecl_ixgbe_main.c 0 60408 NULL
167612 +enable_so_xfs_iroot_realloc_fndecl_60409 xfs_iroot_realloc fndecl 2 60409 NULL
167613 +enable_so_xfs_bulkstat_one_int_fndecl_60410 xfs_bulkstat_one_int fndecl 2 60410 NULL
167614 +enable_so_da_num_tokens_vardecl_dell_laptop_c_60413 da_num_tokens vardecl_dell-laptop.c 0 60413 NULL
167615 +enable_so_hw_token_fusbh200_qtd_60416 hw_token fusbh200_qtd 0 60416 NULL
167616 +enable_so_sched_nice_sched_attr_60426 sched_nice sched_attr 0 60426 NULL
167617 +enable_so___ocfs2_mknod_locked_fndecl_60427 __ocfs2_mknod_locked fndecl 8-9-10 60427 NULL
167618 +enable_so_alloc_xenballooned_pages_fndecl_60439 alloc_xenballooned_pages fndecl 1 60439 NULL
167619 +enable_so___i2c_hid_command_fndecl_60442 __i2c_hid_command fndecl 6-8 60442 NULL
167620 +enable_so_minimum_cx88_ctrl_60444 minimum cx88_ctrl 0 60444 NULL
167621 +enable_so_digestsize_hash_alg_common_60446 digestsize hash_alg_common 0 60446 NULL nohasharray
167622 +enable_so_quirk_strict_duplicate_filter_write_fndecl_60446 quirk_strict_duplicate_filter_write fndecl 3 60446 &enable_so_digestsize_hash_alg_common_60446
167623 +enable_so_count_hscx_hw_60448 count hscx_hw 0 60448 NULL
167624 +enable_so_lib80211_tkip_decrypt_fndecl_60450 lib80211_tkip_decrypt fndecl 2 60450 NULL
167625 +enable_so_maxsgentries_ctlr_info_60455 maxsgentries ctlr_info 0 60455 NULL
167626 +enable_so_sd_quota_slots_gfs2_sbd_60466 sd_quota_slots gfs2_sbd 0 60466 NULL
167627 +enable_so_write_fndecl_60467 write fndecl 3 60467 NULL
167628 +enable_so_drm_vma_offset_add_fndecl_60483 drm_vma_offset_add fndecl 3 60483 NULL nohasharray
167629 +enable_so_osd_left_vardecl_ivtvfb_c_60483 osd_left vardecl_ivtvfb.c 0 60483 &enable_so_drm_vma_offset_add_fndecl_60483
167630 +enable_so_lane2_associate_req_fndecl_60485 lane2_associate_req fndecl 4 60485 NULL
167631 +enable_so_v_nmembs_nilfs_argv_60498 v_nmembs nilfs_argv 0 60498 NULL
167632 +enable_so_cap_intel_iommu_60508 cap intel_iommu 0 60508 NULL
167633 +enable_so_tiadc_channel_init_fndecl_60514 tiadc_channel_init fndecl 2 60514 NULL
167634 +enable_so_gfs2_xattr_set_fndecl_60515 gfs2_xattr_set fndecl 4 60515 NULL
167635 +enable_so_rpcrdma_convert_iovs_fndecl_60516 rpcrdma_convert_iovs fndecl 0 60516 NULL
167636 +enable_so_n_host_mvs_chip_info_60517 n_host mvs_chip_info 0 60517 NULL nohasharray
167637 +enable_so_ll_iocontrol_register_fndecl_60517 ll_iocontrol_register fndecl 2 60517 &enable_so_n_host_mvs_chip_info_60517
167638 +enable_so_tty_buffer_alloc_fndecl_60526 tty_buffer_alloc fndecl 2 60526 NULL
167639 +enable_so_b44_change_mtu_fndecl_60528 b44_change_mtu fndecl 2 60528 NULL
167640 +enable_so_hso_serial_write_fndecl_60530 hso_serial_write fndecl 3 60530 NULL nohasharray
167641 +enable_so_ima_store_measurement_fndecl_60530 ima_store_measurement fndecl 5 60530 &enable_so_hso_serial_write_fndecl_60530
167642 +enable_so_sock_recv_errqueue_fndecl_60535 sock_recv_errqueue fndecl 3 60535 NULL
167643 +enable_so_qib_sdma_verbs_send_fndecl_60539 qib_sdma_verbs_send fndecl 3 60539 NULL
167644 +enable_so_btusb_intel_secure_send_fndecl_60542 btusb_intel_secure_send fndecl 3 60542 NULL
167645 +enable_so_mic_card_map_fndecl_60546 mic_card_map fndecl 3-2 60546 NULL nohasharray
167646 +enable_so_device_size_scsi_transport_template_60546 device_size scsi_transport_template 0 60546 &enable_so_mic_card_map_fndecl_60546
167647 +enable_so_ipath_cfgports_ipath_devdata_60549 ipath_cfgports ipath_devdata 0 60549 NULL
167648 +enable_so_dma_tx_bytes_lpuart_port_60550 dma_tx_bytes lpuart_port 0 60550 NULL
167649 +enable_so_udp_manip_pkt_fndecl_60552 udp_manip_pkt fndecl 4 60552 NULL
167650 +enable_so_PSize_RxDesc_60553 PSize RxDesc 0 60553 NULL
167651 +enable_so_max_response_cros_ec_device_60558 max_response cros_ec_device 0 60558 NULL
167652 +enable_so_chr_major_ports_device_60572 chr_major ports_device 0 60572 NULL
167653 +enable_so_slot_dlm_member_60581 slot dlm_member 0 60581 NULL
167654 +enable_so_nibble_read_data_parport_operations_60589 nibble_read_data parport_operations 0 60589 NULL
167655 +enable_so_xfs_dir2_free_try_read_fndecl_60591 xfs_dir2_free_try_read fndecl 3 60591 NULL nohasharray
167656 +enable_so_vfcount_arch_specific_params_60591 vfcount arch_specific_params 0 60591 &enable_so_xfs_dir2_free_try_read_fndecl_60591
167657 +enable_so_in_size_ide_task_request_s_60603 in_size ide_task_request_s 0 60603 NULL
167658 +enable_so___split_vma_fndecl_60609 __split_vma fndecl 3 60609 NULL
167659 +enable_so_fuse_ref_page_fndecl_60613 fuse_ref_page fndecl 4-3 60613 NULL nohasharray
167660 +enable_so_first_page_mpage_da_data_60613 first_page mpage_da_data 0 60613 &enable_so_fuse_ref_page_fndecl_60613
167661 +enable_so_sys_lgetxattr_fndecl_60616 sys_lgetxattr fndecl 4 60616 NULL
167662 +enable_so_qpc_entry_sz_mlx4_dev_cap_60618 qpc_entry_sz mlx4_dev_cap 0 60618 NULL
167663 +enable_so_dqi_usable_bs_qtree_mem_dqinfo_60619 dqi_usable_bs qtree_mem_dqinfo 0 60619 NULL
167664 +enable_so_copy_macs_fndecl_60621 copy_macs fndecl 4 60621 NULL
167665 +enable_so_copy_nocow_pages_fndecl_60628 copy_nocow_pages fndecl 3-5 60628 NULL nohasharray
167666 +enable_so_i40e_alloc_vfs_fndecl_60628 i40e_alloc_vfs fndecl 2 60628 &enable_so_copy_nocow_pages_fndecl_60628 nohasharray
167667 +enable_so_htable_bits_htable_60628 htable_bits htable 0 60628 &enable_so_i40e_alloc_vfs_fndecl_60628
167668 +enable_so_gso_size_skb_shared_info_60636 gso_size skb_shared_info 0 60636 NULL nohasharray
167669 +enable_so_num_tx_desc_iadev_priv_60636 num_tx_desc iadev_priv 0 60636 &enable_so_gso_size_skb_shared_info_60636
167670 +enable_so_btrfs_new_extent_direct_fndecl_60642 btrfs_new_extent_direct fndecl 2 60642 NULL
167671 +enable_so_stats_dot11ACKFailureCount_read_fndecl_60645 stats_dot11ACKFailureCount_read fndecl 3 60645 NULL
167672 +enable_so_num_mpts_mthca_limits_60648 num_mpts mthca_limits 0 60648 NULL
167673 +enable_so_venus_rmdir_fndecl_60655 venus_rmdir fndecl 4 60655 NULL
167674 +enable_so_neo_map_video_fndecl_60656 neo_map_video fndecl 3 60656 NULL
167675 +enable_so_i_extra_isize_ext4_inode_info_60659 i_extra_isize ext4_inode_info 0 60659 NULL nohasharray
167676 +enable_so___ax88179_read_cmd_fndecl_60659 __ax88179_read_cmd fndecl 5 60659 &enable_so_i_extra_isize_ext4_inode_info_60659
167677 +enable_so_eld_size_hdmi_eld_60661 eld_size hdmi_eld 0 60661 NULL
167678 +enable_so_length_ipath_swqe_60662 length ipath_swqe 0 60662 NULL
167679 +enable_so_secondary_head_adu_device_60665 secondary_head adu_device 0 60665 NULL
167680 +enable_so_cxd2820r_rd_regs_i2c_fndecl_60668 cxd2820r_rd_regs_i2c fndecl 5 60668 NULL
167681 +enable_so_cx18_copy_mdl_to_user_fndecl_60670 cx18_copy_mdl_to_user fndecl 4 60670 NULL
167682 +enable_so_set_extent_bits_fndecl_60673 set_extent_bits fndecl 3-2 60673 NULL
167683 +enable_so_pos_saa7164_user_buffer_60678 pos saa7164_user_buffer 0 60678 NULL
167684 +enable_so_bytenr_btrfs_qgroup_extent_record_60692 bytenr btrfs_qgroup_extent_record 0 60692 NULL
167685 +enable_so_vnic_dev_mtu_fndecl_60693 vnic_dev_mtu fndecl 0 60693 NULL nohasharray
167686 +enable_so_MaxBufSize_lanman_neg_rsp_60693 MaxBufSize lanman_neg_rsp 0 60693 &enable_so_vnic_dev_mtu_fndecl_60693
167687 +enable_so_mon_bin_collate_isodesc_fndecl_60695 mon_bin_collate_isodesc fndecl 0 60695 NULL nohasharray
167688 +enable_so_sel_write_user_fndecl_60695 sel_write_user fndecl 3 60695 &enable_so_mon_bin_collate_isodesc_fndecl_60695
167689 +enable_so_ubifs_fsync_fndecl_60696 ubifs_fsync fndecl 2-3 60696 NULL
167690 +enable_so_max_size_vx_ibl_info_60702 max_size vx_ibl_info 0 60702 NULL nohasharray
167691 +enable_so_snd_mixart_BA0_read_fndecl_60702 snd_mixart_BA0_read fndecl 5 60702 &enable_so_max_size_vx_ibl_info_60702
167692 +enable_so_count_vma_pages_range_fndecl_60705 count_vma_pages_range fndecl 0-2-3 60705 NULL
167693 +enable_so_snd_card_new_fndecl_60707 snd_card_new fndecl 2-5 60707 NULL
167694 +enable_so_kvm_mmu_page_get_gfn_fndecl_60709 kvm_mmu_page_get_gfn fndecl 0-2 60709 NULL
167695 +enable_so_psn_ipath_swqe_60711 psn ipath_swqe 0 60711 NULL
167696 +enable_so_usbdev_read_fndecl_60713 usbdev_read fndecl 3 60713 NULL
167697 +enable_so_pwr_missing_bcns_cnt_read_fndecl_60714 pwr_missing_bcns_cnt_read fndecl 3 60714 NULL
167698 +enable_so_sock_sendmsg_fndecl_60718 sock_sendmsg fndecl 0 60718 NULL nohasharray
167699 +enable_so_v9fs_xattr_user_set_fndecl_60718 v9fs_xattr_user_set fndecl 4 60718 &enable_so_sock_sendmsg_fndecl_60718
167700 +enable_so_HighPriorityCredit_mpt3sas_facts_60721 HighPriorityCredit mpt3sas_facts 0 60721 NULL
167701 +enable_so_reserved_pebs_ubi_volume_60725 reserved_pebs ubi_volume 0 60725 NULL
167702 +enable_so_c2_pseudo_change_mtu_fndecl_60734 c2_pseudo_change_mtu fndecl 2 60734 NULL
167703 +enable_so_count_ptd_60735 count ptd 0 60735 NULL nohasharray
167704 +enable_so_splice_from_pipe_fndecl_60735 splice_from_pipe fndecl 4 60735 &enable_so_count_ptd_60735
167705 +enable_so_hwarc_filter_cmd_set_drp_ie_WUSB_0100_fndecl_60739 hwarc_filter_cmd_set_drp_ie_WUSB_0100 fndecl 0 60739 NULL
167706 +enable_so_command_setapcor_fndecl_60740 command_setapcor fndecl 0 60740 NULL
167707 +enable_so_ns_inode_size_the_nilfs_60742 ns_inode_size the_nilfs 0 60742 NULL nohasharray
167708 +enable_so_send_to_tty_fndecl_60742 send_to_tty fndecl 3 60742 &enable_so_ns_inode_size_the_nilfs_60742
167709 +enable_so_cfs_trace_daemon_command_usrstr_fndecl_60744 cfs_trace_daemon_command_usrstr fndecl 2 60744 NULL
167710 +enable_so_io_size_wdt_lpc_sch_info_60747 io_size_wdt lpc_sch_info 0 60747 NULL
167711 +enable_so_max_cluster_msdos_sb_info_60753 max_cluster msdos_sb_info 0 60753 NULL
167712 +enable_so_index_vardecl_intel8x0_c_60756 index vardecl_intel8x0.c 0 60756 NULL nohasharray
167713 +enable_so_index_hpi_adapter_obj_60756 index hpi_adapter_obj 0 60756 &enable_so_index_vardecl_intel8x0_c_60756
167714 +enable_so_chipshift_nand_flash_dev_60758 chipshift nand_flash_dev 0 60758 NULL
167715 +enable_so_jpg_bufsize_vardecl_60761 jpg_bufsize vardecl 0 60761 NULL
167716 +enable_so_base_ttm_bus_placement_60769 base ttm_bus_placement 0 60769 NULL
167717 +enable_so_i_block_group_ext2_inode_info_60771 i_block_group ext2_inode_info 0 60771 NULL
167718 +enable_so_a_channels_libipw_geo_60784 a_channels libipw_geo 0 60784 NULL
167719 +enable_so_length_blkpg_partition_60788 length blkpg_partition 0 60788 NULL
167720 +enable_so_x2_virtio_gpu_framebuffer_60789 x2 virtio_gpu_framebuffer 0 60789 NULL
167721 +enable_so_ocfs2_remove_inode_range_fndecl_60791 ocfs2_remove_inode_range fndecl 3-4 60791 NULL nohasharray
167722 +enable_so_device_write_fndecl_60791 device_write fndecl 3 60791 &enable_so_ocfs2_remove_inode_range_fndecl_60791
167723 +enable_so_full_width_mxr_crop_60792 full_width mxr_crop 0 60792 NULL
167724 +enable_so_xennet_create_queues_fndecl_60793 xennet_create_queues fndecl 2 60793 NULL
167725 +enable_so_tomoyo_write_self_fndecl_60794 tomoyo_write_self fndecl 3 60794 NULL
167726 +enable_so_count_hdlc_hw_60796 count hdlc_hw 0 60796 NULL
167727 +enable_so_sta_agg_status_write_fndecl_60799 sta_agg_status_write fndecl 3 60799 NULL
167728 +enable_so_iso_alloc_urb_fndecl_60805 iso_alloc_urb fndecl 4-5-2 60805 NULL
167729 +enable_so_mpt_lan_change_mtu_fndecl_60806 mpt_lan_change_mtu fndecl 2 60806 NULL nohasharray
167730 +enable_so_start_rate_il3945_rs_sta_60806 start_rate il3945_rs_sta 0 60806 &enable_so_mpt_lan_change_mtu_fndecl_60806
167731 +enable_so_perdev_minors_vardecl_block_c_60809 perdev_minors vardecl_block.c 0 60809 NULL
167732 +enable_so_sctp_pack_cookie_fndecl_60821 sctp_pack_cookie fndecl 6 60821 NULL
167733 +enable_so_new_log_buf_len_vardecl_printk_c_60824 new_log_buf_len vardecl_printk.c 0 60824 NULL
167734 +enable_so___radix_tree_preload_fndecl_60830 __radix_tree_preload fndecl 0 60830 NULL
167735 +enable_so_beacon_ies_len_cfg80211_beacon_data_60831 beacon_ies_len cfg80211_beacon_data 0 60831 NULL
167736 +enable_so_ieee80211_if_read_peer_fndecl_60834 ieee80211_if_read_peer fndecl 3 60834 NULL
167737 +enable_so_register_sound_dsp_fndecl_60835 register_sound_dsp fndecl 2 60835 NULL
167738 +enable_so_bInterval_usb_endpoint_descriptor_60843 bInterval usb_endpoint_descriptor 0 60843 NULL nohasharray
167739 +enable_so_limit_fm10k_ring_feature_60843 limit fm10k_ring_feature 0 60843 &enable_so_bInterval_usb_endpoint_descriptor_60843
167740 +enable_so_prism2_pda_proc_read_fndecl_60845 prism2_pda_proc_read fndecl 3 60845 NULL
167741 +enable_so_wlen_si2168_cmd_60850 wlen si2168_cmd 0 60850 NULL
167742 +enable_so_spi_alloc_master_fndecl_60852 spi_alloc_master fndecl 2 60852 NULL
167743 +enable_so_channels_max_snd_pcm_hardware_60854 channels_max snd_pcm_hardware 0 60854 NULL
167744 +enable_so_port_piobufs_ipath_portdata_60864 port_piobufs ipath_portdata 0 60864 NULL
167745 +enable_so_dev_priv_size_drm_driver_60870 dev_priv_size drm_driver 0 60870 NULL
167746 +enable_so_sectors_per_block_cache_60872 sectors_per_block cache 0 60872 NULL
167747 +enable_so_input_mt_init_slots_fndecl_60876 input_mt_init_slots fndecl 2 60876 NULL
167748 +enable_so_reiserfs_bmap_fndecl_60877 reiserfs_bmap fndecl 2 60877 NULL
167749 +enable_so_map_size_tpm_inf_dev_60880 map_size tpm_inf_dev 0 60880 NULL
167750 +enable_so_osd_y_offset_yuv_playback_info_60883 osd_y_offset yuv_playback_info 0 60883 NULL
167751 +enable_so_xenvif_add_frag_responses_fndecl_60886 xenvif_add_frag_responses fndecl 2 60886 NULL
167752 +enable_so_msg_size_c2_mq_60887 msg_size c2_mq 0 60887 NULL nohasharray
167753 +enable_so_last_data_size_ubi_ainf_volume_60887 last_data_size ubi_ainf_volume 0 60887 &enable_so_msg_size_c2_mq_60887
167754 +enable_so_snd_pcm_oss_sync1_fndecl_60897 snd_pcm_oss_sync1 fndecl 2 60897 NULL nohasharray
167755 +enable_so_orig_start_extent_map_60897 orig_start extent_map 0 60897 &enable_so_snd_pcm_oss_sync1_fndecl_60897 nohasharray
167756 +enable_so_sn9c2028_short_command_fndecl_60897 sn9c2028_short_command fndecl 0 60897 &enable_so_orig_start_extent_map_60897
167757 +enable_so_plcp_siso_il_rate_info_60899 plcp_siso il_rate_info 0 60899 NULL nohasharray
167758 +enable_so_btmrvl_send_sync_cmd_fndecl_60899 btmrvl_send_sync_cmd fndecl 4 60899 &enable_so_plcp_siso_il_rate_info_60899
167759 +enable_so_fusbh200_urb_dequeue_fndecl_60900 fusbh200_urb_dequeue fndecl 3 60900 NULL
167760 +enable_so_bNrChannels_uac_input_terminal_descriptor_60901 bNrChannels uac_input_terminal_descriptor 0 60901 NULL
167761 +enable_so_xdr_shrink_bufhead_fndecl_60908 xdr_shrink_bufhead fndecl 2 60908 NULL
167762 +enable_so_gfs2_fiemap_fndecl_60913 gfs2_fiemap fndecl 4 60913 NULL
167763 +enable_so_ctrl_set_cropw_fndecl_60918 ctrl_set_cropw fndecl 3 60918 NULL
167764 +enable_so_blf_blkno_xfs_buf_log_format_60925 blf_blkno xfs_buf_log_format 0 60925 NULL
167765 +enable_so_tool_peer_mask_write_fndecl_60928 tool_peer_mask_write fndecl 3 60928 NULL
167766 +enable_so_read_ltv_hermes_ops_60939 read_ltv hermes_ops 0 60939 NULL nohasharray
167767 +enable_so_insert_state_fndecl_60939 insert_state fndecl 4-3 60939 &enable_so_read_ltv_hermes_ops_60939
167768 +enable_so_x509_process_extension_fndecl_60941 x509_process_extension fndecl 5 60941 NULL
167769 +enable_so_msix_vector_count_MPT3SAS_ADAPTER_60944 msix_vector_count MPT3SAS_ADAPTER 0 60944 NULL
167770 +enable_so_low_ino_proc_dir_entry_60945 low_ino proc_dir_entry 0 60945 NULL
167771 +enable_so_ipv6_recv_rxpmtu_fndecl_60949 ipv6_recv_rxpmtu fndecl 3 60949 NULL
167772 +enable_so_efi_memmap_hi_efi_info_60951 efi_memmap_hi efi_info 0 60951 NULL
167773 +enable_so_audit_make_reply_fndecl_60952 audit_make_reply fndecl 7 60952 NULL
167774 +enable_so_ocfs2_dx_dir_new_cluster_fndecl_60953 ocfs2_dx_dir_new_cluster fndecl 3 60953 NULL
167775 +enable_so_s_partition_root_udf_part_map_60954 s_partition_root udf_part_map 0 60954 NULL
167776 +enable_so_ath10k_reg_value_read_fndecl_60958 ath10k_reg_value_read fndecl 3 60958 NULL
167777 +enable_so_get_rdac_req_fndecl_60969 get_rdac_req fndecl 3 60969 NULL
167778 +enable_so_tx_remainder_cdc_ncm_ctx_60973 tx_remainder cdc_ncm_ctx 0 60973 NULL
167779 +enable_so_xfs_extent_busy_update_extent_fndecl_60975 xfs_extent_busy_update_extent fndecl 5-4 60975 NULL
167780 +enable_so_hcs_params1_xhci_hcd_60979 hcs_params1 xhci_hcd 0 60979 NULL
167781 +enable_so_isdn_write_fndecl_60980 isdn_write fndecl 3 60980 NULL
167782 +enable_so_first_block_migrate_struct_60989 first_block migrate_struct 0 60989 NULL nohasharray
167783 +enable_so_weight_dlm_member_60989 weight dlm_member 0 60989 &enable_so_first_block_migrate_struct_60989
167784 +enable_so_rtl8152_change_mtu_fndecl_60996 rtl8152_change_mtu fndecl 2 60996 NULL
167785 +enable_so_endp_out_zd1201_61001 endp_out zd1201 0 61001 NULL
167786 +enable_so_dbgfs_frame_fndecl_61006 dbgfs_frame fndecl 3 61006 NULL
167787 +enable_so_ocfs2_xattr_block_find_fndecl_61008 ocfs2_xattr_block_find fndecl 0 61008 NULL
167788 +enable_so___svc_create_fndecl_61020 __svc_create fndecl 2-3 61020 NULL nohasharray
167789 +enable_so_cfs_cpt_weight_fndecl_61020 cfs_cpt_weight fndecl 0 61020 &enable_so___svc_create_fndecl_61020
167790 +enable_so_size_page_frag_61029 size page_frag 0 61029 NULL
167791 +enable_so_setup_possible_cpus_vardecl_smpboot_c_61040 setup_possible_cpus vardecl_smpboot.c 0 61040 NULL nohasharray
167792 +enable_so_ath6kl_wmi_listeninterval_cmd_fndecl_61040 ath6kl_wmi_listeninterval_cmd fndecl 2 61040 &enable_so_setup_possible_cpus_vardecl_smpboot_c_61040
167793 +enable_so_nports1_adapter_info_61044 nports1 adapter_info 0 61044 NULL
167794 +enable_so_nf_nat_ftp_fmt_cmd_fndecl_61045 nf_nat_ftp_fmt_cmd fndecl 0 61045 NULL
167795 +enable_so__dln2_transfer_fndecl_61049 _dln2_transfer fndecl 0 61049 NULL
167796 +enable_so_alloc_mr_fndecl_61052 alloc_mr fndecl 1 61052 NULL
167797 +enable_so_len_tcp_fastopen_cookie_61053 len tcp_fastopen_cookie 0 61053 NULL
167798 +enable_so_copy_to_fndecl_61058 copy_to fndecl 3 61058 NULL
167799 +enable_so_xfs_bmbt_set_allf_fndecl_61064 xfs_bmbt_set_allf fndecl 4-3-2 61064 NULL
167800 +enable_so_get_rx_packet_len_wlcore_ops_61070 get_rx_packet_len wlcore_ops 0 61070 NULL
167801 +enable_so_untag_qdepth_blogic_adapter_61071 untag_qdepth blogic_adapter 0 61071 NULL
167802 +enable_so_reply_len_fc_bsg_job_61088 reply_len fc_bsg_job 0 61088 NULL
167803 +enable_so_left_v4l2_rect_61093 left v4l2_rect 0 61093 NULL
167804 +enable_so_rtl2832_regmap_gather_write_fndecl_61096 rtl2832_regmap_gather_write fndecl 5 61096 NULL
167805 +enable_so_snd_hdac_exec_verb_fndecl_61100 snd_hdac_exec_verb fndecl 0 61100 NULL
167806 +enable_so_current_write_offset_scif_rb_61107 current_write_offset scif_rb 0 61107 NULL nohasharray
167807 +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
167808 +enable_so_bv_offset_bio_vec_61109 bv_offset bio_vec 0 61109 NULL
167809 +enable_so_f2fs_fname_crypto_alloc_buffer_fndecl_61116 f2fs_fname_crypto_alloc_buffer fndecl 2 61116 NULL
167810 +enable_so_tcp_adjust_fackets_out_fndecl_61118 tcp_adjust_fackets_out fndecl 3 61118 NULL
167811 +enable_so_nilfs_bmap_do_delete_fndecl_61120 nilfs_bmap_do_delete fndecl 0 61120 NULL
167812 +enable_so_blocknr_nilfs_write_info_61124 blocknr nilfs_write_info 0 61124 NULL
167813 +enable_so_rx_hdr_len_i40e_ring_61127 rx_hdr_len i40e_ring 0 61127 NULL
167814 +enable_so_insert_node_fndecl_61132 insert_node fndecl 3-4 61132 NULL
167815 +enable_so_atr_len_retry_cm4000_dev_61135 atr_len_retry cm4000_dev 0 61135 NULL
167816 +enable_so_ore_calc_stripe_info_fndecl_61140 ore_calc_stripe_info fndecl 3 61140 NULL
167817 +enable_so_display_byte_stride_osd_info_61141 display_byte_stride osd_info 0 61141 NULL
167818 +enable_so___access_remote_vm_fndecl_61148 __access_remote_vm fndecl 5-0-3 61148 NULL
167819 +enable_so_get_free_entries_fndecl_61149 get_free_entries fndecl 1 61149 NULL nohasharray
167820 +enable_so_fnic_reset_stats_read_fndecl_61149 fnic_reset_stats_read fndecl 3 61149 &enable_so_get_free_entries_fndecl_61149
167821 +enable_so_sierra_setup_urb_fndecl_61150 sierra_setup_urb fndecl 5-3-2 61150 NULL
167822 +enable_so_slhc_toss_fndecl_61153 slhc_toss fndecl 0 61153 NULL
167823 +enable_so_ctl_mt7601u_rxwi_61155 ctl mt7601u_rxwi 0 61155 NULL
167824 +enable_so___vmalloc_node_range_fndecl_61157 __vmalloc_node_range fndecl 1-3-2 61157 NULL nohasharray
167825 +enable_so_max_rsp_queues_qla_hw_data_61157 max_rsp_queues qla_hw_data 0 61157 &enable_so___vmalloc_node_range_fndecl_61157
167826 +enable_so_addr_kcore_list_61158 addr kcore_list 0 61158 NULL
167827 +enable_so_ceph_locks_to_pagelist_fndecl_61162 ceph_locks_to_pagelist fndecl 3-4 61162 NULL
167828 +enable_so_sel_commit_bools_write_fndecl_61166 sel_commit_bools_write fndecl 3 61166 NULL
167829 +enable_so_ftdi_elan_edset_empty_fndecl_61170 ftdi_elan_edset_empty fndecl 0 61170 NULL nohasharray
167830 +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
167831 +enable_so_host1x_job_alloc_fndecl_61171 host1x_job_alloc fndecl 4-3-2 61171 NULL
167832 +enable_so_in_length_nd_cmd_vendor_hdr_61172 in_length nd_cmd_vendor_hdr 0 61172 NULL
167833 +enable_so_phys_memory_base__synclinkmp_info_61174 phys_memory_base _synclinkmp_info 0 61174 NULL
167834 +enable_so_pvr2_buffer_set_buffer_fndecl_61176 pvr2_buffer_set_buffer fndecl 3 61176 NULL
167835 +enable_so_register_sound_mixer_fndecl_61179 register_sound_mixer fndecl 2 61179 NULL
167836 +enable_so___ocfs2_move_extent_fndecl_61183 __ocfs2_move_extent fndecl 4-5-6-3 61183 NULL nohasharray
167837 +enable_so_dma_tx_errors_read_fndecl_61183 dma_tx_errors_read fndecl 3 61183 &enable_so___ocfs2_move_extent_fndecl_61183
167838 +enable_so_fbcon_softback_size_vardecl_fbcon_c_61184 fbcon_softback_size vardecl_fbcon.c 0 61184 NULL
167839 +enable_so_channels_vendor_data_61194 channels vendor_data 0 61194 NULL
167840 +enable_so_pos_dir_context_61195 pos dir_context 0 61195 NULL nohasharray
167841 +enable_so_rdma_set_ib_paths_fndecl_61195 rdma_set_ib_paths fndecl 3 61195 &enable_so_pos_dir_context_61195
167842 +enable_so_port_id_ssp_device_61196 port_id ssp_device 0 61196 NULL nohasharray
167843 +enable_so_spk_ys_vardecl_61196 spk_ys vardecl 0 61196 &enable_so_port_id_ssp_device_61196
167844 +enable_so_add_qgroup_rb_fndecl_61197 add_qgroup_rb fndecl 2 61197 NULL
167845 +enable_so_num_qps_mthca_limits_61203 num_qps mthca_limits 0 61203 NULL
167846 +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
167847 +enable_so_ts_nr_packets_vardecl_saa7134_ts_c_61205 ts_nr_packets vardecl_saa7134-ts.c 0 61205 NULL
167848 +enable_so_audit_log_n_hex_fndecl_61218 audit_log_n_hex fndecl 3 61218 NULL
167849 +enable_so_rx_buffersize_b43_dmaring_61223 rx_buffersize b43_dmaring 0 61223 NULL nohasharray
167850 +enable_so_rmtblkcnt_xfs_da_args_61223 rmtblkcnt xfs_da_args 0 61223 &enable_so_rx_buffersize_b43_dmaring_61223 nohasharray
167851 +enable_so_register_chrdev_region_fndecl_61223 register_chrdev_region fndecl 2-1 61223 &enable_so_rmtblkcnt_xfs_da_args_61223
167852 +enable_so_rx_tail_len_pn533_frame_ops_61226 rx_tail_len pn533_frame_ops 0 61226 NULL
167853 +enable_so_acpi_ev_execute_reg_method_fndecl_61227 acpi_ev_execute_reg_method fndecl 2 61227 NULL
167854 +enable_so_resource_clip_fndecl_61231 resource_clip fndecl 2-3 61231 NULL
167855 +enable_so_size_ceph_mds_reply_inode_61235 size ceph_mds_reply_inode 0 61235 NULL
167856 +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
167857 +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
167858 +enable_so_tipc_add_tlv_fndecl_61239 tipc_add_tlv fndecl 4 61239 NULL
167859 +enable_so_len_ipath_verbs_txreq_61242 len ipath_verbs_txreq 0 61242 NULL nohasharray
167860 +enable_so_hidraw_get_report_fndecl_61242 hidraw_get_report fndecl 3 61242 &enable_so_len_ipath_verbs_txreq_61242
167861 +enable_so_rcar_dmac_prep_dma_cyclic_fndecl_61249 rcar_dmac_prep_dma_cyclic fndecl 4-3 61249 NULL
167862 +enable_so_ext4_reserve_inode_write_fndecl_61253 ext4_reserve_inode_write fndecl 0 61253 NULL nohasharray
167863 +enable_so_CombinedStatusBufferLength_DAC960_Controller_61253 CombinedStatusBufferLength DAC960_Controller 0 61253 &enable_so_ext4_reserve_inode_write_fndecl_61253
167864 +enable_so_b_blocknr_buffer_head_61260 b_blocknr buffer_head 0 61260 NULL
167865 +enable_so_key_create_or_update_fndecl_61266 key_create_or_update fndecl 5 61266 NULL nohasharray
167866 +enable_so____copy_from_user_fndecl_61266 ___copy_from_user fndecl 0 61266 &enable_so_key_create_or_update_fndecl_61266
167867 +enable_so_split_boundary_dm_origin_61269 split_boundary dm_origin 0 61269 NULL
167868 +enable_so_len_ubifs_zbranch_61279 len ubifs_zbranch 0 61279 NULL
167869 +enable_so_h_minimode_61280 h minimode 0 61280 NULL
167870 +enable_so_i_file_acl_ext4_inode_info_61282 i_file_acl ext4_inode_info 0 61282 NULL
167871 +enable_so_smk_write_ambient_fndecl_61288 smk_write_ambient fndecl 3 61288 NULL
167872 +enable_so_dataSgeOffset_mpt_ioctl_command_61289 dataSgeOffset mpt_ioctl_command 0 61289 NULL
167873 +enable_so_jpg_nbufs_vardecl_61299 jpg_nbufs vardecl 0 61299 NULL nohasharray
167874 +enable_so_it87_device_add_fndecl_61299 it87_device_add fndecl 1 61299 &enable_so_jpg_nbufs_vardecl_61299
167875 +enable_so_compat_mpctl_ioctl_fndecl_61300 compat_mpctl_ioctl fndecl 2 61300 NULL
167876 +enable_so_efs_nfs_get_inode_fndecl_61302 efs_nfs_get_inode fndecl 2 61302 NULL
167877 +enable_so_fat_length_fat_floppy_defaults_61308 fat_length fat_floppy_defaults 0 61308 NULL
167878 +enable_so_ufx_i2c_configure_fndecl_61311 ufx_i2c_configure fndecl 0 61311 NULL
167879 +enable_so_wlcore_smart_config_decode_event_fndecl_61313 wlcore_smart_config_decode_event fndecl 2-4 61313 NULL nohasharray
167880 +enable_so_snic_max_qdepth_vardecl_61313 snic_max_qdepth vardecl 0 61313 &enable_so_wlcore_smart_config_decode_event_fndecl_61313
167881 +enable_so_dvb_ca_en50221_init_fndecl_61317 dvb_ca_en50221_init fndecl 4 61317 NULL
167882 +enable_so_s3c_hsotg_rx_data_fndecl_61321 s3c_hsotg_rx_data fndecl 3 61321 NULL
167883 +enable_so_ufs_iget_fndecl_61332 ufs_iget fndecl 2 61332 NULL
167884 +enable_so_rtl2830_regmap_write_fndecl_61335 rtl2830_regmap_write fndecl 3 61335 NULL
167885 +enable_so_wbuf_len_jffs2_sb_info_61340 wbuf_len jffs2_sb_info 0 61340 NULL
167886 +enable_so_iscsit_put_login_tx_fndecl_61345 iscsit_put_login_tx fndecl 3 61345 NULL
167887 +enable_so_rw_copy_check_uvector_fndecl_61351 rw_copy_check_uvector fndecl 0-3 61351 NULL nohasharray
167888 +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
167889 +enable_so_size_sge_fl_61353 size sge_fl 0 61353 NULL
167890 +enable_so_conn_num_hci_conn_list_req_61354 conn_num hci_conn_list_req 0 61354 NULL
167891 +enable_so_hfs_get_block_fndecl_61360 hfs_get_block fndecl 2 61360 NULL
167892 +enable_so_snd_cs46xx_io_read_fndecl_61365 snd_cs46xx_io_read fndecl 5 61365 NULL
167893 +enable_so_handle_response_icmp_fndecl_61366 handle_response_icmp fndecl 7 61366 NULL
167894 +enable_so_tx_headroom_libipw_device_61370 tx_headroom libipw_device 0 61370 NULL
167895 +enable_so_sync_dirty_buffer_fndecl_61371 sync_dirty_buffer fndecl 0 61371 NULL
167896 +enable_so_data_dma_usb_onetouch_61372 data_dma usb_onetouch 0 61372 NULL
167897 +enable_so_devs_max_btrfs_raid_attr_61376 devs_max btrfs_raid_attr 0 61376 NULL
167898 +enable_so_bfa_cb_ioim_done_fndecl_61381 bfa_cb_ioim_done fndecl 7 61381 NULL
167899 +enable_so_ip6gre_tunnel_change_mtu_fndecl_61385 ip6gre_tunnel_change_mtu fndecl 2 61385 NULL
167900 +enable_so_sections_per_block_vardecl_memory_c_61386 sections_per_block vardecl_memory.c 0 61386 NULL nohasharray
167901 +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
167902 +enable_so_xfs_dir3_data_read_fndecl_61387 xfs_dir3_data_read fndecl 3 61387 NULL
167903 +enable_so_npages_nfs_page_array_61390 npages nfs_page_array 0 61390 NULL nohasharray
167904 +enable_so_num_msix_vectors_i40evf_adapter_61390 num_msix_vectors i40evf_adapter 0 61390 &enable_so_npages_nfs_page_array_61390
167905 +enable_so_byte_len_at24_platform_data_61393 byte_len at24_platform_data 0 61393 NULL
167906 +enable_so___pci_register_driver_fndecl_61400 __pci_register_driver fndecl 0 61400 NULL
167907 +enable_so_tkip_countermeasures_local_info_61401 tkip_countermeasures local_info 0 61401 NULL
167908 +enable_so_alloc_ts_config_fndecl_61404 alloc_ts_config fndecl 1 61404 NULL
167909 +enable_so_buf_sz_vardecl_stmmac_main_c_61408 buf_sz vardecl_stmmac_main.c 0 61408 NULL
167910 +enable_so_rx_ring_size_rx_queue_61409 rx_ring_size rx_queue 0 61409 NULL
167911 +enable_so_pcpu_alloc_alloc_info_fndecl_61414 pcpu_alloc_alloc_info fndecl 1-2 61414 NULL nohasharray
167912 +enable_so_keylen_tcp_md5sig_key_61414 keylen tcp_md5sig_key 0 61414 &enable_so_pcpu_alloc_alloc_info_fndecl_61414
167913 +enable_so_size_aper_size_info_lvl2_61417 size aper_size_info_lvl2 0 61417 NULL nohasharray
167914 +enable_so_get_pas_size_fndecl_61417 get_pas_size fndecl 0 61417 &enable_so_size_aper_size_info_lvl2_61417
167915 +enable_so_nservers_mc5_params_61428 nservers mc5_params 0 61428 NULL nohasharray
167916 +enable_so_tst_size_idt77252_dev_61428 tst_size idt77252_dev 0 61428 &enable_so_nservers_mc5_params_61428
167917 +enable_so_quirk_simultaneous_discovery_read_fndecl_61433 quirk_simultaneous_discovery_read fndecl 3 61433 NULL
167918 +enable_so_raw_setsockopt_fndecl_61435 raw_setsockopt fndecl 5 61435 NULL nohasharray
167919 +enable_so_length_drm_mode_create_blob_61435 length drm_mode_create_blob 0 61435 &enable_so_raw_setsockopt_fndecl_61435 nohasharray
167920 +enable_so_rows_omap4_keypad_61435 rows omap4_keypad 0 61435 &enable_so_length_drm_mode_create_blob_61435
167921 +enable_so_nd_opt_len_nd_opt_hdr_61437 nd_opt_len nd_opt_hdr 0 61437 NULL
167922 +enable_so_lbs_rdbbp_read_fndecl_61438 lbs_rdbbp_read fndecl 3 61438 NULL
167923 +enable_so_group_size_efs_sb_info_61441 group_size efs_sb_info 0 61441 NULL
167924 +enable_so_bulk_out_size_usb_serial_driver_61450 bulk_out_size usb_serial_driver 0 61450 NULL
167925 +enable_so_total_size_iscsi_segment_61454 total_size iscsi_segment 0 61454 NULL
167926 +enable_so_ocfs2_zero_range_for_truncate_fndecl_61461 ocfs2_zero_range_for_truncate fndecl 3-4 61461 NULL nohasharray
167927 +enable_so_next_interface_id_usb_configuration_61461 next_interface_id usb_configuration 0 61461 &enable_so_ocfs2_zero_range_for_truncate_fndecl_61461
167928 +enable_so_ath6kl_keepalive_read_fndecl_61468 ath6kl_keepalive_read fndecl 3 61468 NULL
167929 +enable_so_irlan_client_ctrl_connect_confirm_fndecl_61475 irlan_client_ctrl_connect_confirm fndecl 5 61475 NULL
167930 +enable_so_ubi_eba_write_leb_st_fndecl_61476 ubi_eba_write_leb_st fndecl 5 61476 NULL
167931 +enable_so_buf_kern_offset_ebt_entries_buf_state_61478 buf_kern_offset ebt_entries_buf_state 0 61478 NULL
167932 +enable_so_dreq_iss_dccp_request_sock_61480 dreq_iss dccp_request_sock 0 61480 NULL
167933 +enable_so_radix_tree_maybe_preload_fndecl_61481 radix_tree_maybe_preload fndecl 0 61481 NULL
167934 +enable_so_new_chunk_mdp_superblock_s_61482 new_chunk mdp_superblock_s 0 61482 NULL
167935 +enable_so_nmatches_tcf_ematch_tree_hdr_61486 nmatches tcf_ematch_tree_hdr 0 61486 NULL
167936 +enable_so_nlen_ubifs_dent_node_61488 nlen ubifs_dent_node 0 61488 NULL
167937 +enable_so_adau17x1_set_dai_pll_fndecl_61491 adau17x1_set_dai_pll fndecl 4-5 61491 NULL nohasharray
167938 +enable_so_generic_file_read_iter_fndecl_61491 generic_file_read_iter fndecl 0 61491 &enable_so_adau17x1_set_dai_pll_fndecl_61491 nohasharray
167939 +enable_so_dispatch_proc_write_fndecl_61491 dispatch_proc_write fndecl 3 61491 &enable_so_generic_file_read_iter_fndecl_61491
167940 +enable_so_rs_init_fndecl_61492 rs_init fndecl 6-1 61492 NULL
167941 +enable_so_f_adc_hackrf_dev_61493 f_adc hackrf_dev 0 61493 NULL
167942 +enable_so_ccp_init_data_fndecl_61495 ccp_init_data fndecl 5-4 61495 NULL nohasharray
167943 +enable_so_writing_st_buffer_61495 writing st_buffer 0 61495 &enable_so_ccp_init_data_fndecl_61495
167944 +enable_so_vb_size_drm_savage_cmdbuf_61501 vb_size drm_savage_cmdbuf 0 61501 NULL
167945 +enable_so_mgag200_gem_create_fndecl_61507 mgag200_gem_create fndecl 2 61507 NULL nohasharray
167946 +enable_so_width_pwc_device_61507 width pwc_device 0 61507 &enable_so_mgag200_gem_create_fndecl_61507
167947 +enable_so_count_sgentry_61508 count sgentry 0 61508 NULL
167948 +enable_so_depth_cx8800_fmt_61510 depth cx8800_fmt 0 61510 NULL
167949 +enable_so_maxcontacts_wtp_data_61511 maxcontacts wtp_data 0 61511 NULL
167950 +enable_so_wpa_enabled_libipw_device_61513 wpa_enabled libipw_device 0 61513 NULL nohasharray
167951 +enable_so_total_sect_fat_boot_sector_61513 total_sect fat_boot_sector 0 61513 &enable_so_wpa_enabled_libipw_device_61513
167952 +enable_so_nfs_fscache_get_super_cookie_fndecl_61520 nfs_fscache_get_super_cookie fndecl 3 61520 NULL
167953 +enable_so_sys_write_fndecl_61526 sys_write fndecl 3-0 61526 NULL
167954 +enable_so_irq_base_regmap_irq_chip_data_61532 irq_base regmap_irq_chip_data 0 61532 NULL
167955 +enable_so_strlcpy_fndecl_61539 strlcpy fndecl 0 61539 NULL
167956 +enable_so_drm_buffer_alloc_fndecl_61542 drm_buffer_alloc fndecl 2 61542 NULL
167957 +enable_so_osst_do_scsi_fndecl_61545 osst_do_scsi fndecl 4 61545 NULL
167958 +enable_so_iterate_dir_item_fndecl_61553 iterate_dir_item fndecl 0 61553 NULL
167959 +enable_so_rts_threshold_read_fndecl_61555 rts_threshold_read fndecl 3 61555 NULL
167960 +enable_so_datalen_iscsi_tcp_recv_61556 datalen iscsi_tcp_recv 0 61556 NULL
167961 +enable_so_xdr_init_decode_pages_fndecl_61557 xdr_init_decode_pages fndecl 4 61557 NULL
167962 +enable_so_aoedev_flush_fndecl_61565 aoedev_flush fndecl 2 61565 NULL
167963 +enable_so_ei_block_ext4_extent_idx_61567 ei_block ext4_extent_idx 0 61567 NULL nohasharray
167964 +enable_so_mtip_hw_read_flags_fndecl_61567 mtip_hw_read_flags fndecl 3 61567 &enable_so_ei_block_ext4_extent_idx_61567
167965 +enable_so_pos_in_item_tree_balance_61583 pos_in_item tree_balance 0 61583 NULL
167966 +enable_so_ieee80211_if_read_rc_rateidx_mcs_mask_5ghz_fndecl_61588 ieee80211_if_read_rc_rateidx_mcs_mask_5ghz fndecl 3 61588 NULL
167967 +enable_so_usb_internal_control_msg_fndecl_61589 usb_internal_control_msg fndecl 5-2 61589 NULL
167968 +enable_so_blkdev_issue_write_same_fndecl_61596 blkdev_issue_write_same fndecl 3-2 61596 NULL
167969 +enable_so_hdisplay_moderec_61597 hdisplay moderec 0 61597 NULL
167970 +enable_so___hci_cmd_sync_fndecl_61598 __hci_cmd_sync fndecl 3 61598 NULL
167971 +enable_so_ext4_max_size_fndecl_61600 ext4_max_size fndecl 0-1 61600 NULL
167972 +enable_so_head_align_brcmf_sdio_61610 head_align brcmf_sdio 0 61610 NULL nohasharray
167973 +enable_so_filternum_dvb_demux_61610 filternum dvb_demux 0 61610 &enable_so_head_align_brcmf_sdio_61610
167974 +enable_so_mic_virtio_copy_to_user_fndecl_61611 mic_virtio_copy_to_user fndecl 3-4 61611 NULL nohasharray
167975 +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
167976 +enable_so_btrfs_chunk_item_size_fndecl_61613 btrfs_chunk_item_size fndecl 0-1 61613 NULL
167977 +enable_so_write_file_debug_fndecl_61615 write_file_debug fndecl 3 61615 NULL
167978 +enable_so_eth_change_mtu_fndecl_61617 eth_change_mtu fndecl 2 61617 NULL
167979 +enable_so_af_alg_make_sg_fndecl_61624 af_alg_make_sg fndecl 0-3 61624 NULL
167980 +enable_so_efx_tx_max_skb_descs_fndecl_61628 efx_tx_max_skb_descs fndecl 0 61628 NULL
167981 +enable_so_ext4_xattr_shift_entries_fndecl_61629 ext4_xattr_shift_entries fndecl 2 61629 NULL
167982 +enable_so____alloc_bootmem_node_nopanic_fndecl_61630 ___alloc_bootmem_node_nopanic fndecl 3-2-4-5 61630 NULL
167983 +enable_so_nr_slots_b43_dmaring_61631 nr_slots b43_dmaring 0 61631 NULL
167984 +enable_so_bio_advance_fndecl_61635 bio_advance fndecl 2 61635 NULL
167985 +enable_so_btrfsic_process_written_block_fndecl_61638 btrfsic_process_written_block fndecl 2 61638 NULL
167986 +enable_so_ieee80211_if_read_dropped_frames_ttl_fndecl_61639 ieee80211_if_read_dropped_frames_ttl fndecl 3 61639 NULL
167987 +enable_so_iwl_dbgfs_sram_read_fndecl_61642 iwl_dbgfs_sram_read fndecl 3 61642 NULL nohasharray
167988 +enable_so_security_getprocattr_fndecl_61642 security_getprocattr fndecl 0 61642 &enable_so_iwl_dbgfs_sram_read_fndecl_61642
167989 +enable_so_spidev_write_fndecl_61645 spidev_write fndecl 3 61645 NULL
167990 +enable_so_vc_bottom_vc_data_61647 vc_bottom vc_data 0 61647 NULL nohasharray
167991 +enable_so_sci_req_tx_bytes_fndecl_61647 sci_req_tx_bytes fndecl 0 61647 &enable_so_vc_bottom_vc_data_61647 nohasharray
167992 +enable_so_index_count_applesmc_registers_61647 index_count applesmc_registers 0 61647 &enable_so_sci_req_tx_bytes_fndecl_61647
167993 +enable_so_height_cx23885_dev_61651 height cx23885_dev 0 61651 NULL
167994 +enable_so_security_socket_sendmsg_fndecl_61654 security_socket_sendmsg fndecl 0 61654 NULL
167995 +enable_so_anode_lookup_fndecl_61656 anode_lookup fndecl 0-3-2 61656 NULL
167996 +enable_so_sdio_align_size_fndecl_61658 sdio_align_size fndecl 0-2 61658 NULL
167997 +enable_so_min_io_size_ubi_device_info_61673 min_io_size ubi_device_info 0 61673 NULL
167998 +enable_so_sys_msgsnd_fndecl_61674 sys_msgsnd fndecl 3 61674 NULL nohasharray
167999 +enable_so_comm_write_fndecl_61674 comm_write fndecl 3 61674 &enable_so_sys_msgsnd_fndecl_61674
168000 +enable_so_len_l2cap_cmd_hdr_61676 len l2cap_cmd_hdr 0 61676 NULL
168001 +enable_so_sd_fsb2bb_shift_gfs2_sbd_61677 sd_fsb2bb_shift gfs2_sbd 0 61677 NULL
168002 +enable_so_page_size_ms_boot_attr_info_61681 page_size ms_boot_attr_info 0 61681 NULL
168003 +enable_so_sv_max_mesg_svc_serv_61683 sv_max_mesg svc_serv 0 61683 NULL
168004 +enable_so_SyS_io_getevents_fndecl_61684 SyS_io_getevents fndecl 3 61684 NULL
168005 +enable_so_ip_clusters_ocfs2_inode_info_61689 ip_clusters ocfs2_inode_info 0 61689 NULL
168006 +enable_so_ipath_rkey_ok_fndecl_61691 ipath_rkey_ok fndecl 3-4 61691 NULL nohasharray
168007 +enable_so_cma_set_req_event_data_fndecl_61691 cma_set_req_event_data fndecl 4 61691 &enable_so_ipath_rkey_ok_fndecl_61691
168008 +enable_so_ieee80211_rx_mgmt_assoc_resp_fndecl_61694 ieee80211_rx_mgmt_assoc_resp fndecl 3 61694 NULL
168009 +enable_so_segnum_nilfs_segment_entry_61704 segnum nilfs_segment_entry 0 61704 NULL
168010 +enable_so_find_key_fndecl_61711 find_key fndecl 2 61711 NULL
168011 +enable_so_paclen_ax25_cb_61712 paclen ax25_cb 0 61712 NULL
168012 +enable_so_xtypecpy_gru_control_block_extended_61714 xtypecpy gru_control_block_extended 0 61714 NULL
168013 +enable_so_BytesPerSector_ms_lib_ctrl_61717 BytesPerSector ms_lib_ctrl 0 61717 NULL
168014 +enable_so_do_lfb_size_fndecl_61720 do_lfb_size fndecl 0 61720 NULL
168015 +enable_so_dm_bufio_new_fndecl_61727 dm_bufio_new fndecl 2 61727 NULL
168016 +enable_so_btrfs_prev_leaf_fndecl_61728 btrfs_prev_leaf fndecl 0 61728 NULL
168017 +enable_so_n_patterns_cfg80211_wowlan_61737 n_patterns cfg80211_wowlan 0 61737 NULL
168018 +enable_so_pci_msix_vec_count_fndecl_61742 pci_msix_vec_count fndecl 0 61742 NULL
168019 +enable_so_count_nfs_pgio_args_61745 count nfs_pgio_args 0 61745 NULL nohasharray
168020 +enable_so_wmi_call_fndecl_61745 wmi_call fndecl 4 61745 &enable_so_count_nfs_pgio_args_61745
168021 +enable_so_drbd_recv_short_fndecl_61748 drbd_recv_short fndecl 3-0 61748 NULL nohasharray
168022 +enable_so_smt_add_frame_len_fndecl_61748 smt_add_frame_len fndecl 2 61748 &enable_so_drbd_recv_short_fndecl_61748
168023 +enable_so_mon_buff_area_alloc_fndecl_61752 mon_buff_area_alloc fndecl 2 61752 NULL
168024 +enable_so_SYSC_add_key_fndecl_61756 SYSC_add_key fndecl 4 61756 NULL
168025 +enable_so_sl_count_ip_sf_socklist_61758 sl_count ip_sf_socklist 0 61758 NULL
168026 +enable_so_rsp_residual_count_sts_entry_24xx_61762 rsp_residual_count sts_entry_24xx 0 61762 NULL
168027 +enable_so_len_s_skfp_ioctl_61764 len s_skfp_ioctl 0 61764 NULL
168028 +enable_so_height_zr364xx_camera_61781 height zr364xx_camera 0 61781 NULL nohasharray
168029 +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
168030 +enable_so_pclk_max_ov6650_61784 pclk_max ov6650 0 61784 NULL
168031 +enable_so_xdr_enter_page_fndecl_61791 xdr_enter_page fndecl 2 61791 NULL
168032 +enable_so_num_gpios_htcpld_chip_platform_data_61792 num_gpios htcpld_chip_platform_data 0 61792 NULL
168033 +enable_so_address_length_pcc_memory_resource_61793 address_length pcc_memory_resource 0 61793 NULL
168034 +enable_so_num_arfs_vnic_enet_config_61794 num_arfs vnic_enet_config 0 61794 NULL
168035 +enable_so_size_snd_cs46xx_region_61796 size snd_cs46xx_region 0 61796 NULL
168036 +enable_so_vxfs_bmap_typed_fndecl_61801 vxfs_bmap_typed fndecl 0-2 61801 NULL
168037 +enable_so_imm_count_iscsi_task_61804 imm_count iscsi_task 0 61804 NULL
168038 +enable_so_end_map_range_61813 end map_range 0 61813 NULL nohasharray
168039 +enable_so_fat_alloc_clusters_fndecl_61813 fat_alloc_clusters fndecl 0 61813 &enable_so_end_map_range_61813
168040 +enable_so_len_nfs_createargs_61814 len nfs_createargs 0 61814 NULL
168041 +enable_so_m_rsumsize_xfs_mount_61815 m_rsumsize xfs_mount 0 61815 NULL
168042 +enable_so_ttm_get_pages_fndecl_61821 ttm_get_pages fndecl 2 61821 NULL
168043 +enable_so_bnx2x_init_wr_zp_fndecl_61822 bnx2x_init_wr_zp fndecl 3 61822 NULL
168044 +enable_so_tracing_resize_saved_cmdlines_fndecl_61823 tracing_resize_saved_cmdlines fndecl 1 61823 NULL
168045 +enable_so_SYSC_set_mempolicy_fndecl_61827 SYSC_set_mempolicy fndecl 3 61827 NULL
168046 +enable_so_xfs_bulkstat_one_fndecl_61834 xfs_bulkstat_one fndecl 2 61834 NULL nohasharray
168047 +enable_so_txq_req_tg3_61834 txq_req tg3 0 61834 &enable_so_xfs_bulkstat_one_fndecl_61834
168048 +enable_so_num_virt_counters_op_x86_model_spec_61835 num_virt_counters op_x86_model_spec 0 61835 NULL
168049 +enable_so_size_rocker_dma_ring_info_61839 size rocker_dma_ring_info 0 61839 NULL
168050 +enable_so_start_segno_free_segmap_info_61843 start_segno free_segmap_info 0 61843 NULL
168051 +enable_so_ocfs2_xattr_bucket_find_fndecl_61853 ocfs2_xattr_bucket_find fndecl 0-5 61853 NULL
168052 +enable_so_dma_len_rx_fst_card_info_61862 dma_len_rx fst_card_info 0 61862 NULL
168053 +enable_so_num_mpts_mlx4_caps_61866 num_mpts mlx4_caps 0 61866 NULL
168054 +enable_so_f_read_portcntrs_qib_devdata_61868 f_read_portcntrs qib_devdata 0 61868 NULL
168055 +enable_so___section_nr_fndecl_61869 __section_nr fndecl 0 61869 NULL
168056 +enable_so_nfs4_file_fsync_fndecl_61872 nfs4_file_fsync fndecl 2-3 61872 NULL
168057 +enable_so_handle_eviocgbit_fndecl_61874 handle_eviocgbit fndecl 3 61874 NULL
168058 +enable_so_wm5100_set_fll_fndecl_61876 wm5100_set_fll fndecl 4-5 61876 NULL nohasharray
168059 +enable_so_wil_vring_init_tx_fndecl_61876 wil_vring_init_tx fndecl 3 61876 &enable_so_wm5100_set_fll_fndecl_61876
168060 +enable_so_bq_textcnt_max98095_priv_61877 bq_textcnt max98095_priv 0 61877 NULL
168061 +enable_so_mptscsih_change_queue_depth_fndecl_61879 mptscsih_change_queue_depth fndecl 2 61879 NULL
168062 +enable_so_virtinput_cfg_select_fndecl_61880 virtinput_cfg_select fndecl 0 61880 NULL
168063 +enable_so_ehci_urb_done_fndecl_61889 ehci_urb_done fndecl 3 61889 NULL
168064 +enable_so_vp_find_vqs_fndecl_61892 vp_find_vqs fndecl 2 61892 NULL
168065 +enable_so_find_group_orlov_fndecl_61896 find_group_orlov fndecl 0 61896 NULL
168066 +enable_so_b43_plcp_get_bitrate_idx_ofdm_fndecl_61900 b43_plcp_get_bitrate_idx_ofdm fndecl 0 61900 NULL
168067 +enable_so_srp_alloc_iu_fndecl_61904 srp_alloc_iu fndecl 2 61904 NULL nohasharray
168068 +enable_so_MaxRecvDataSegmentLength_iscsi_conn_ops_61904 MaxRecvDataSegmentLength iscsi_conn_ops 0 61904 &enable_so_srp_alloc_iu_fndecl_61904
168069 +enable_so_maxframe_size_fc_rport_61909 maxframe_size fc_rport 0 61909 NULL
168070 +enable_so_rxsize_channel_data_61912 rxsize channel_data 0 61912 NULL
168071 +enable_so_scsi_track_queue_full_fndecl_61916 scsi_track_queue_full fndecl 2 61916 NULL
168072 +enable_so_cxd2820r_wr_regs_i2c_fndecl_61922 cxd2820r_wr_regs_i2c fndecl 5 61922 NULL
168073 +enable_so_pino_nlink_jffs2_inode_cache_61933 pino_nlink jffs2_inode_cache 0 61933 NULL
168074 +enable_so_net2272_ep_read_fndecl_61935 net2272_ep_read fndecl 0 61935 NULL
168075 +enable_so_alloc_size_ttm_pool_opts_61945 alloc_size ttm_pool_opts 0 61945 NULL
168076 +enable_so_rx_std_ring_mask_tg3_61948 rx_std_ring_mask tg3 0 61948 NULL
168077 +enable_so_pfid_bnx2x_61952 pfid bnx2x 0 61952 NULL
168078 +enable_so_next_ldtentry_61954 next ldtentry 0 61954 NULL
168079 +enable_so_ntrips___thermal_zone_61955 ntrips __thermal_zone 0 61955 NULL
168080 +enable_so_indirect_size_srp_target_port_61962 indirect_size srp_target_port 0 61962 NULL
168081 +enable_so_s_maxbytes_super_block_61963 s_maxbytes super_block 0 61963 NULL
168082 +enable_so_periods_min_snd_pcm_hardware_61965 periods_min snd_pcm_hardware 0 61965 NULL
168083 +enable_so_radeon_audio_calc_cts_fndecl_61966 radeon_audio_calc_cts fndecl 1-4 61966 NULL
168084 +enable_so_nfs_set_pgio_error_fndecl_61975 nfs_set_pgio_error fndecl 3 61975 NULL
168085 +enable_so_physical_for_dev_replace_scrub_page_61977 physical_for_dev_replace scrub_page 0 61977 NULL
168086 +enable_so_qla4xxx_alloc_work_fndecl_61982 qla4xxx_alloc_work fndecl 2 61982 NULL
168087 +enable_so_x25_pacsize_to_bytes_fndecl_61983 x25_pacsize_to_bytes fndecl 0 61983 NULL
168088 +enable_so_qib_verbs_send_dma_fndecl_61985 qib_verbs_send_dma fndecl 7-5-6-3 61985 NULL
168089 +enable_so_opts1_de_desc_61986 opts1 de_desc 0 61986 NULL nohasharray
168090 +enable_so_sub_stripes_map_lookup_61986 sub_stripes map_lookup 0 61986 &enable_so_opts1_de_desc_61986
168091 +enable_so_copydesc_user_fndecl_61988 copydesc_user fndecl 3 61988 NULL
168092 +enable_so_vblank_panel_info_61990 vblank panel_info 0 61990 NULL
168093 +enable_so_num_srq_mlx4_profile_61993 num_srq mlx4_profile 0 61993 NULL
168094 +enable_so_iscsi_login_tx_data_fndecl_61998 iscsi_login_tx_data fndecl 4 61998 NULL
168095 +enable_so_sisusb_write_fndecl_62001 sisusb_write fndecl 3 62001 NULL
168096 +enable_so_sc_reader_svcxprt_rdma_62004 sc_reader svcxprt_rdma 0 62004 NULL
168097 +enable_so___add_discard_entry_fndecl_62006 __add_discard_entry fndecl 4-5 62006 NULL
168098 +enable_so_s3c_hsotg_set_ep_maxpacket_fndecl_62008 s3c_hsotg_set_ep_maxpacket fndecl 3 62008 NULL
168099 +enable_so_ext4_ext_convert_to_initialized_fndecl_62009 ext4_ext_convert_to_initialized fndecl 0 62009 NULL
168100 +enable_so_length_snd_efw_transaction_62012 length snd_efw_transaction 0 62012 NULL
168101 +enable_so_memblock_setclr_flag_fndecl_62013 memblock_setclr_flag fndecl 2-1 62013 NULL
168102 +enable_so_size_mtd_blktrans_dev_62024 size mtd_blktrans_dev 0 62024 NULL
168103 +enable_so_nf_bridge_encap_header_len_fndecl_62025 nf_bridge_encap_header_len fndecl 0 62025 NULL
168104 +enable_so_filter_count_rx_used_efx_nic_type_62026 filter_count_rx_used efx_nic_type 0 62026 NULL
168105 +enable_so_encode_diropargs_fndecl_62031 encode_diropargs fndecl 4 62031 NULL
168106 +enable_so_num_qps_mlx4_caps_62033 num_qps mlx4_caps 0 62033 NULL
168107 +enable_so_n_rx_channels_efx_nic_62034 n_rx_channels efx_nic 0 62034 NULL
168108 +enable_so_dev_sectors_r10conf_62035 dev_sectors r10conf 0 62035 NULL
168109 +enable_so_set_advertising_fndecl_62037 set_advertising fndecl 4 62037 NULL
168110 +enable_so_tfcpad_xfrm_state_62038 tfcpad xfrm_state 0 62038 NULL
168111 +enable_so_init_rs_fndecl_62042 init_rs fndecl 5-1 62042 NULL nohasharray
168112 +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
168113 +enable_so_online_queues_nvme_dev_62043 online_queues nvme_dev 0 62043 NULL
168114 +enable_so_flag_count_sg_simple_element_62044 flag_count sg_simple_element 0 62044 NULL
168115 +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
168116 +enable_so_entries_size_ebt_replace_62051 entries_size ebt_replace 0 62051 NULL
168117 +enable_so_regmap_spi_read_fndecl_62058 regmap_spi_read fndecl 3-5 62058 NULL
168118 +enable_so_ex_offset_extent_s_62059 ex_offset extent_s 0 62059 NULL
168119 +enable_so_num_attr_vgastate_62064 num_attr vgastate 0 62064 NULL
168120 +enable_so_do_tty_write_fndecl_62067 do_tty_write fndecl 5 62067 NULL
168121 +enable_so_cb_stripe_unit_exofs_dt_data_map_62068 cb_stripe_unit exofs_dt_data_map 0 62068 NULL
168122 +enable_so__scsih_change_queue_depth_fndecl_62069 _scsih_change_queue_depth fndecl 2 62069 NULL
168123 +enable_so_ip_vs_send_async_fndecl_62075 ip_vs_send_async fndecl 3 62075 NULL
168124 +enable_so_wBlockSize_ms_bootblock_sysinf_62081 wBlockSize ms_bootblock_sysinf 0 62081 NULL
168125 +enable_so_ieee80211_build_probe_req_fndecl_62084 ieee80211_build_probe_req fndecl 9-7 62084 NULL
168126 +enable_so_rtsx_usb_seq_write_register_fndecl_62088 rtsx_usb_seq_write_register fndecl 3 62088 NULL
168127 +enable_so_cur_rx_pos_tegra_spi_data_62091 cur_rx_pos tegra_spi_data 0 62091 NULL
168128 +enable_so_max_xid_bnx2fc_hba_62096 max_xid bnx2fc_hba 0 62096 NULL
168129 +enable_so_bcm_recvmsg_fndecl_62099 bcm_recvmsg fndecl 3 62099 NULL nohasharray
168130 +enable_so_word3_atl1c_recv_ret_status_62099 word3 atl1c_recv_ret_status 0 62099 &enable_so_bcm_recvmsg_fndecl_62099
168131 +enable_so_task_ctx_size_pmu_62102 task_ctx_size pmu 0 62102 NULL
168132 +enable_so_ts_rate___wmi_event_txstatus_62105 ts_rate __wmi_event_txstatus 0 62105 NULL
168133 +enable_so_yoffset_fb_var_screeninfo_62110 yoffset fb_var_screeninfo 0 62110 NULL nohasharray
168134 +enable_so_bulk_out_ep_bfusb_data_62110 bulk_out_ep bfusb_data 0 62110 &enable_so_yoffset_fb_var_screeninfo_62110
168135 +enable_so_tx_queue_status_read_fndecl_62113 tx_queue_status_read fndecl 3 62113 NULL
168136 +enable_so_bo_offset_vmw_surface_offset_62116 bo_offset vmw_surface_offset 0 62116 NULL
168137 +enable_so_sched_read_attr_fndecl_62123 sched_read_attr fndecl 3 62123 NULL
168138 +enable_so_vcs_lseek_fndecl_62125 vcs_lseek fndecl 2 62125 NULL
168139 +enable_so___process_deleted_xattr_fndecl_62133 __process_deleted_xattr fndecl 4 62133 NULL
168140 +enable_so_next_setup_data_62142 next setup_data 0 62142 NULL
168141 +enable_so_drbd_recv_all_warn_fndecl_62144 drbd_recv_all_warn fndecl 3 62144 NULL
168142 +enable_so_cciss_tape_cmds_vardecl_cciss_c_62147 cciss_tape_cmds vardecl_cciss.c 0 62147 NULL
168143 +enable_so_tcp_trim_head_fndecl_62157 tcp_trim_head fndecl 3 62157 NULL
168144 +enable_so_ptrace_writedata_fndecl_62158 ptrace_writedata fndecl 4-3 62158 NULL
168145 +enable_so_map_index_to_lba_fndecl_62162 map_index_to_lba fndecl 0-1 62162 NULL
168146 +enable_so_user_frag_sctp_association_62167 user_frag sctp_association 0 62167 NULL nohasharray
168147 +enable_so_idt_vectoring_info_vcpu_vmx_62167 idt_vectoring_info vcpu_vmx 0 62167 &enable_so_user_frag_sctp_association_62167 nohasharray
168148 +enable_so_alloc_huge_page_fndecl_62167 alloc_huge_page fndecl 2 62167 &enable_so_idt_vectoring_info_vcpu_vmx_62167
168149 +enable_so_len_scrub_copy_nocow_ctx_62170 len scrub_copy_nocow_ctx 0 62170 NULL
168150 +enable_so_igb_change_mtu_fndecl_62189 igb_change_mtu fndecl 2 62189 NULL
168151 +enable_so_agent_send_response_fndecl_62193 agent_send_response fndecl 7 62193 NULL nohasharray
168152 +enable_so_eps_count_ffs_data_62193 eps_count ffs_data 0 62193 &enable_so_agent_send_response_fndecl_62193
168153 +enable_so_rose_sendmsg_fndecl_62194 rose_sendmsg fndecl 3 62194 NULL nohasharray
168154 +enable_so_dm_kvzalloc_fndecl_62194 dm_kvzalloc fndecl 1 62194 &enable_so_rose_sendmsg_fndecl_62194
168155 +enable_so_max_pkt_size_em28xx_62196 max_pkt_size em28xx 0 62196 NULL
168156 +enable_so_maxframe_caifsock_62201 maxframe caifsock 0 62201 NULL nohasharray
168157 +enable_so_wm_adsp_create_control_fndecl_62201 wm_adsp_create_control fndecl 4 62201 &enable_so_maxframe_caifsock_62201
168158 +enable_so_param_count_acpi_evaluate_info_62202 param_count acpi_evaluate_info 0 62202 NULL
168159 +enable_so_inum_size_entry_62204 inum size_entry 0 62204 NULL
168160 +enable_so_locked_rate_snd_sb_62221 locked_rate snd_sb 0 62221 NULL
168161 +enable_so_datainterval_snd_usb_endpoint_62227 datainterval snd_usb_endpoint 0 62227 NULL
168162 +enable_so_sense_len_request_62229 sense_len request 0 62229 NULL
168163 +enable_so_shmem_getpage_gfp_fndecl_62239 shmem_getpage_gfp fndecl 2 62239 NULL
168164 +enable_so_snd_pcm_alloc_vmalloc_buffer_fndecl_62240 snd_pcm_alloc_vmalloc_buffer fndecl 2 62240 NULL
168165 +enable_so_btrfs_set_extent_delalloc_fndecl_62264 btrfs_set_extent_delalloc fndecl 3-2 62264 NULL
168166 +enable_so_num_rxqs_octeon_nic_if_config_62266 num_rxqs octeon_nic_if_config 0 62266 NULL
168167 +enable_so_usable_leb_size_ubi_volume_62272 usable_leb_size ubi_volume 0 62272 NULL
168168 +enable_so_cfpkt_add_body_fndecl_62277 cfpkt_add_body fndecl 3 62277 NULL
168169 +enable_so_email_size_x509_parse_context_62283 email_size x509_parse_context 0 62283 NULL
168170 +enable_so_gx1_line_delta_fndecl_62286 gx1_line_delta fndecl 0 62286 NULL
168171 +enable_so___kvm_read_guest_page_fndecl_62291 __kvm_read_guest_page fndecl 2-5 62291 NULL
168172 +enable_so_num_arq_entries_i40e_adminq_info_62293 num_arq_entries i40e_adminq_info 0 62293 NULL
168173 +enable_so_max_io_mvumi_hba_62301 max_io mvumi_hba 0 62301 NULL
168174 +enable_so_ceph_llseek_fndecl_62305 ceph_llseek fndecl 2 62305 NULL
168175 +enable_so_sb_rbmblocks_xfs_sb_62307 sb_rbmblocks xfs_sb 0 62307 NULL
168176 +enable_so_rtl2832_sdr_convert_stream_fndecl_62308 rtl2832_sdr_convert_stream fndecl 0-4 62308 NULL
168177 +enable_so_ircomm_tty_connect_confirm_fndecl_62310 ircomm_tty_connect_confirm fndecl 4-5 62310 NULL nohasharray
168178 +enable_so_iov_data_count_iscsi_cmd_62310 iov_data_count iscsi_cmd 0 62310 &enable_so_ircomm_tty_connect_confirm_fndecl_62310
168179 +enable_so_map_extent_mft_record_fndecl_62312 map_extent_mft_record fndecl 2 62312 NULL nohasharray
168180 +enable_so_alloc_ctrl_packet_fndecl_62312 alloc_ctrl_packet fndecl 1 62312 &enable_so_map_extent_mft_record_fndecl_62312
168181 +enable_so_ss_channels_snd_rme9652_62315 ss_channels snd_rme9652 0 62315 NULL
168182 +enable_so_erst_writer_fndecl_62318 erst_writer fndecl 7 62318 NULL
168183 +enable_so_ext2_new_block_fndecl_62326 ext2_new_block fndecl 0-2 62326 NULL
168184 +enable_so_qib_get_user_pages_fndecl_62338 qib_get_user_pages fndecl 1 62338 NULL nohasharray
168185 +enable_so_hdrlen_adm8211_tx_ring_info_62338 hdrlen adm8211_tx_ring_info 0 62338 &enable_so_qib_get_user_pages_fndecl_62338 nohasharray
168186 +enable_so_bbtskipbytes_denali_nand_info_62338 bbtskipbytes denali_nand_info 0 62338 &enable_so_hdrlen_adm8211_tx_ring_info_62338
168187 +enable_so_pagf_flcount_xfs_perag_62340 pagf_flcount xfs_perag 0 62340 NULL
168188 +enable_so_reiserfs_update_sd_size_fndecl_62345 reiserfs_update_sd_size fndecl 3 62345 NULL nohasharray
168189 +enable_so_lov_emerg_alloc_fndecl_62345 lov_emerg_alloc fndecl 1 62345 &enable_so_reiserfs_update_sd_size_fndecl_62345
168190 +enable_so_write_file_spectral_bins_fndecl_62347 write_file_spectral_bins fndecl 3 62347 NULL
168191 +enable_so_pcl_status_pcl_62348 pcl_status pcl 0 62348 NULL
168192 +enable_so_C_SYSC_select_fndecl_62350 C_SYSC_select fndecl 1 62350 NULL
168193 +enable_so_mpi_resize_fndecl_62353 mpi_resize fndecl 2 62353 NULL
168194 +enable_so_raid56_parity_write_fndecl_62355 raid56_parity_write fndecl 4 62355 NULL
168195 +enable_so_ib_uverbs_modify_qp_fndecl_62360 ib_uverbs_modify_qp fndecl 3 62360 NULL nohasharray
168196 +enable_so_reglen_bfad_s_62360 reglen bfad_s 0 62360 &enable_so_ib_uverbs_modify_qp_fndecl_62360
168197 +enable_so_fm10k_iov_alloc_data_fndecl_62361 fm10k_iov_alloc_data fndecl 2 62361 NULL
168198 +enable_so_rawv6_sendmsg_fndecl_62363 rawv6_sendmsg fndecl 3 62363 NULL
168199 +enable_so_ts_read_fndecl_62364 ts_read fndecl 3 62364 NULL
168200 +enable_so_drxbsp_i2c_write_read_fndecl_62366 drxbsp_i2c_write_read fndecl 5-2 62366 NULL
168201 +enable_so_punit_base2_intel_pmc_ipc_dev_62373 punit_base2 intel_pmc_ipc_dev 0 62373 NULL
168202 +enable_so_num_subauth_cifs_sid_62374 num_subauth cifs_sid 0 62374 NULL
168203 +enable_so_num_entries_compat_arpt_replace_62377 num_entries compat_arpt_replace 0 62377 NULL nohasharray
168204 +enable_so_fib_count_nexthops_fndecl_62377 fib_count_nexthops fndecl 0 62377 &enable_so_num_entries_compat_arpt_replace_62377
168205 +enable_so_clusterip_proc_write_fndecl_62378 clusterip_proc_write fndecl 3 62378 NULL
168206 +enable_so_new_chunk_mdp_superblock_1_62380 new_chunk mdp_superblock_1 0 62380 NULL
168207 +enable_so_efx_wanted_parallelism_fndecl_62383 efx_wanted_parallelism fndecl 0 62383 NULL nohasharray
168208 +enable_so_max_cnt_ocrdma_qp_hwq_info_62383 max_cnt ocrdma_qp_hwq_info 0 62383 &enable_so_efx_wanted_parallelism_fndecl_62383
168209 +enable_so_ivsize_aead_alg_62386 ivsize aead_alg 0 62386 NULL
168210 +enable_so_m_blkbb_log_xfs_mount_62391 m_blkbb_log xfs_mount 0 62391 NULL
168211 +enable_so___generic_block_fiemap_fndecl_62394 __generic_block_fiemap fndecl 4 62394 NULL nohasharray
168212 +enable_so_xfer_to_user_fndecl_62394 xfer_to_user fndecl 3 62394 &enable_so___generic_block_fiemap_fndecl_62394
168213 +enable_so_hwCBP_td_62396 hwCBP td 0 62396 NULL
168214 +enable_so_bch_bio_max_sectors_fndecl_62400 bch_bio_max_sectors fndecl 0 62400 NULL
168215 +enable_so_len_scifioctl_node_ids_62402 len scifioctl_node_ids 0 62402 NULL
168216 +enable_so_pty_write_fndecl_62406 pty_write fndecl 3 62406 NULL nohasharray
168217 +enable_so_tnode_new_fndecl_62406 tnode_new fndecl 3 62406 &enable_so_pty_write_fndecl_62406
168218 +enable_so_segment_acpi_pci_root_62407 segment acpi_pci_root 0 62407 NULL
168219 +enable_so_rtsx_usb_get_rsp_fndecl_62408 rtsx_usb_get_rsp fndecl 2 62408 NULL nohasharray
168220 +enable_so_fill_holes_fndecl_62408 fill_holes fndecl 4-5 62408 &enable_so_rtsx_usb_get_rsp_fndecl_62408 nohasharray
168221 +enable_so_do_huge_pmd_wp_page_fndecl_62408 do_huge_pmd_wp_page fndecl 3 62408 &enable_so_fill_holes_fndecl_62408
168222 +enable_so_gfs2_log_bmap_fndecl_62411 gfs2_log_bmap fndecl 0 62411 NULL
168223 +enable_so_unmap_page_range_fndecl_62415 unmap_page_range fndecl 4-3 62415 NULL
168224 +enable_so_adap_id_pca954x_platform_mode_62418 adap_id pca954x_platform_mode 0 62418 NULL
168225 +enable_so_key_tx_rx_count_read_fndecl_62421 key_tx_rx_count_read fndecl 3 62421 NULL
168226 +enable_so_data_offset_v4l2_plane_62423 data_offset v4l2_plane 0 62423 NULL
168227 +enable_so_WIL_GET_BITS_fndecl_62424 WIL_GET_BITS fndecl 0-3-2-1 62424 NULL
168228 +enable_so_set_brk_fndecl_62430 set_brk fndecl 2 62430 NULL nohasharray
168229 +enable_so_io_size_xfs_ioend_62430 io_size xfs_ioend 0 62430 &enable_so_set_brk_fndecl_62430
168230 +enable_so_sctp_setsockopt_fndecl_62439 sctp_setsockopt fndecl 5 62439 NULL
168231 +enable_so_sum_link_node_ref_fndecl_62443 sum_link_node_ref fndecl 3-4 62443 NULL
168232 +enable_so_rx_dropped_read_fndecl_62444 rx_dropped_read fndecl 3 62444 NULL nohasharray
168233 +enable_so_openings_ahc_linux_device_62444 openings ahc_linux_device 0 62444 &enable_so_rx_dropped_read_fndecl_62444
168234 +enable_so___videobuf_copy_stream_fndecl_62450 __videobuf_copy_stream fndecl 0-4 62450 NULL
168235 +enable_so_k3_dma_prep_slave_sg_fndecl_62456 k3_dma_prep_slave_sg fndecl 3 62456 NULL
168236 +enable_so_btrfs_new_inode_fndecl_62463 btrfs_new_inode fndecl 7 62463 NULL
168237 +enable_so_lower_offset_skb_seq_state_62465 lower_offset skb_seq_state 0 62465 NULL
168238 +enable_so_ipx_recvmsg_fndecl_62469 ipx_recvmsg fndecl 3 62469 NULL
168239 +enable_so_ram_alignment_fndecl_62470 ram_alignment fndecl 0 62470 NULL
168240 +enable_so_payload_bytes_controlvm_message_header_62474 payload_bytes controlvm_message_header 0 62474 NULL
168241 +enable_so_page_size_mspro_block_data_62479 page_size mspro_block_data 0 62479 NULL
168242 +enable_so_fw_stats_bus_myri10ge_slice_state_62482 fw_stats_bus myri10ge_slice_state 0 62482 NULL
168243 +enable_so_ide_end_rq_fndecl_62486 ide_end_rq fndecl 4 62486 NULL nohasharray
168244 +enable_so_rx_ring_tail_sc92031_priv_62486 rx_ring_tail sc92031_priv 0 62486 &enable_so_ide_end_rq_fndecl_62486
168245 +enable_so_mlx5_ib_reg_user_mr_fndecl_62488 mlx5_ib_reg_user_mr fndecl 4-2-3 62488 NULL
168246 +enable_so_symsize_persistent_ram_ecc_info_62489 symsize persistent_ram_ecc_info 0 62489 NULL
168247 +enable_so_residual_len_sts_entry_fx00_62491 residual_len sts_entry_fx00 0 62491 NULL nohasharray
168248 +enable_so_dlen_ippp_ccp_reset_state_62491 dlen ippp_ccp_reset_state 0 62491 &enable_so_residual_len_sts_entry_fx00_62491
168249 +enable_so_filemap_write_and_wait_range_fndecl_62492 filemap_write_and_wait_range fndecl 0-2-3 62492 NULL nohasharray
168250 +enable_so_svc_sock_setbufsize_fndecl_62492 svc_sock_setbufsize fndecl 2 62492 &enable_so_filemap_write_and_wait_range_fndecl_62492
168251 +enable_so_evtchn_write_fndecl_62493 evtchn_write fndecl 3 62493 NULL
168252 +enable_so_try_charge_fndecl_62496 try_charge fndecl 0 62496 NULL
168253 +enable_so_vmci_transport_set_buffer_size_fndecl_62498 vmci_transport_set_buffer_size fndecl 2 62498 NULL
168254 +enable_so_max_enic_rfs_flw_tbl_62505 max enic_rfs_flw_tbl 0 62505 NULL
168255 +enable_so_rq_tailsz_smb_rqst_62506 rq_tailsz smb_rqst 0 62506 NULL
168256 +enable_so_jade_ale_bkm_hw_62507 jade_ale bkm_hw 0 62507 NULL
168257 +enable_so_sgs_per_request_skd_device_62508 sgs_per_request skd_device 0 62508 NULL
168258 +enable_so_mpage_alloc_fndecl_62512 mpage_alloc fndecl 2-3 62512 NULL
168259 +enable_so_rx_buf_sz_iadev_priv_62524 rx_buf_sz iadev_priv 0 62524 NULL
168260 +enable_so_kvm_host_page_size_fndecl_62535 kvm_host_page_size fndecl 0-2 62535 NULL
168261 +enable_so_len_ErrMsg_62547 len ErrMsg 0 62547 NULL
168262 +enable_so___ext4_get_inode_loc_fndecl_62551 __ext4_get_inode_loc fndecl 0 62551 NULL
168263 +enable_so_arm_iommu_alloc_attrs_fndecl_62553 arm_iommu_alloc_attrs fndecl 2 62553 NULL
168264 +enable_so_num_cq_entries_hba_parameters_62556 num_cq_entries hba_parameters 0 62556 NULL
168265 +enable_so_rsi_sdio_host_intf_read_pkt_fndecl_62557 rsi_sdio_host_intf_read_pkt fndecl 3 62557 NULL
168266 +enable_so_lx_framebuffer_size_fndecl_62562 lx_framebuffer_size fndecl 0 62562 NULL
168267 +enable_so_wDatagramLength_usb_cdc_ncm_dpe16_62564 wDatagramLength usb_cdc_ncm_dpe16 0 62564 NULL
168268 +enable_so_outbuf_dma_ati_remote_62567 outbuf_dma ati_remote 0 62567 NULL
168269 +enable_so_svc_pool_map_get_fndecl_62569 svc_pool_map_get fndecl 0 62569 NULL
168270 +enable_so_numscales_vardecl_longhaul_c_62570 numscales vardecl_longhaul.c 0 62570 NULL
168271 +enable_so_get_active_stripe_fndecl_62581 get_active_stripe fndecl 2 62581 NULL
168272 +enable_so_btrfs_check_data_free_space_fndecl_62583 btrfs_check_data_free_space fndecl 0 62583 NULL
168273 +enable_so_xenfb_write_fndecl_62599 xenfb_write fndecl 3 62599 NULL
168274 +enable_so_mon_bin_dev0_vardecl_mon_bin_c_62600 mon_bin_dev0 vardecl_mon_bin.c 0 62600 NULL
168275 +enable_so___alloc_bootmem_low_fndecl_62604 __alloc_bootmem_low fndecl 2-1-3 62604 NULL nohasharray
168276 +enable_so_max_header_size_irlan_cb_62604 max_header_size irlan_cb 0 62604 &enable_so___alloc_bootmem_low_fndecl_62604
168277 +enable_so_ext4_xattr_check_names_fndecl_62605 ext4_xattr_check_names fndecl 0 62605 NULL
168278 +enable_so_get_user_pages_unlocked_fndecl_62612 get_user_pages_unlocked fndecl 0-3 62612 NULL
168279 +enable_so_pci_sriov_set_totalvfs_fndecl_62615 pci_sriov_set_totalvfs fndecl 2 62615 NULL
168280 +enable_so_cell_locker_fndecl_62618 cell_locker fndecl 2 62618 NULL
168281 +enable_so_hor_offs_align_fimc_variant_62619 hor_offs_align fimc_variant 0 62619 NULL
168282 +enable_so_usb_string_fndecl_62624 usb_string fndecl 0 62624 NULL
168283 +enable_so_l2linesize_linelock_62626 l2linesize linelock 0 62626 NULL
168284 +enable_so_min_pkt_size_pktgen_dev_62629 min_pkt_size pktgen_dev 0 62629 NULL
168285 +enable_so_get_vm_area_size_fndecl_62631 get_vm_area_size fndecl 0 62631 NULL
168286 +enable_so_virtio_gpu_ttm_tt_create_fndecl_62636 virtio_gpu_ttm_tt_create fndecl 2 62636 NULL nohasharray
168287 +enable_so_wil_change_mtu_fndecl_62636 wil_change_mtu fndecl 2 62636 &enable_so_virtio_gpu_ttm_tt_create_fndecl_62636
168288 +enable_so_fs_path_prepare_for_add_fndecl_62638 fs_path_prepare_for_add fndecl 0-2 62638 NULL nohasharray
168289 +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
168290 +enable_so_fts_rtllib_device_62643 fts rtllib_device 0 62643 NULL
168291 +enable_so_cfg_sg_seg_cnt_lpfc_hba_62646 cfg_sg_seg_cnt lpfc_hba 0 62646 NULL nohasharray
168292 +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
168293 +enable_so_usb_alloc_urb_fndecl_62655 usb_alloc_urb fndecl 1 62655 NULL
168294 +enable_so_curr_len_max3421_hcd_62658 curr_len max3421_hcd 0 62658 NULL
168295 +enable_so_count_pch_gbe_rx_ring_62662 count pch_gbe_rx_ring 0 62662 NULL
168296 +enable_so_irq_max_tg3_62664 irq_max tg3 0 62664 NULL
168297 +enable_so_calculate_discard_block_size_fndecl_62667 calculate_discard_block_size fndecl 0-1 62667 NULL nohasharray
168298 +enable_so_alloc_new_reservation_fndecl_62667 alloc_new_reservation fndecl 0 62667 &enable_so_calculate_discard_block_size_fndecl_62667 nohasharray
168299 +enable_so_base_i40e_hmc_obj_info_62667 base i40e_hmc_obj_info 0 62667 &enable_so_alloc_new_reservation_fndecl_62667
168300 +enable_so_qxl_gem_object_create_fndecl_62668 qxl_gem_object_create fndecl 2 62668 NULL
168301 +enable_so_max_outstanding_tx_leaf_msg_softinfo_62669 max_outstanding_tx leaf_msg_softinfo 0 62669 NULL nohasharray
168302 +enable_so_bss_priv_size_wiphy_62669 bss_priv_size wiphy 0 62669 &enable_so_max_outstanding_tx_leaf_msg_softinfo_62669
168303 +enable_so_pci_cfg_space_size_ext_fndecl_62679 pci_cfg_space_size_ext fndecl 0 62679 NULL
168304 +enable_so_encode_rpcb_string_fndecl_62680 encode_rpcb_string fndecl 3 62680 NULL
168305 +enable_so_nvme_trans_device_id_page_fndecl_62681 nvme_trans_device_id_page fndecl 4 62681 NULL
168306 +enable_so_bpp_sh_vou_fmt_62683 bpp sh_vou_fmt 0 62683 NULL
168307 +enable_so_num_vsis_i40e_hw_capabilities_62685 num_vsis i40e_hw_capabilities 0 62685 NULL
168308 +enable_so_start_ttm_mem_reg_62688 start ttm_mem_reg 0 62688 NULL
168309 +enable_so_width_tcm_62703 width tcm 0 62703 NULL
168310 +enable_so_vmemdup_fndecl_62706 vmemdup fndecl 2 62706 NULL
168311 +enable_so_curwidth_usb_usbvision_62710 curwidth usb_usbvision 0 62710 NULL
168312 +enable_so_tx_tx_data_prepared_read_fndecl_62714 tx_tx_data_prepared_read fndecl 3 62714 NULL
168313 +enable_so_mtu_ring_info_62721 mtu ring_info 0 62721 NULL
168314 +enable_so_isr_rx_mem_overflow_read_fndecl_62722 isr_rx_mem_overflow_read fndecl 3 62722 NULL
168315 +enable_so_nvkm_parent_create__fndecl_62723 nvkm_parent_create_ fndecl 7 62723 NULL
168316 +enable_so_jffs2_write_begin_fndecl_62728 jffs2_write_begin fndecl 3 62728 NULL nohasharray
168317 +enable_so_limit_tc_sfq_qopt_62728 limit tc_sfq_qopt 0 62728 &enable_so_jffs2_write_begin_fndecl_62728 nohasharray
168318 +enable_so_wep_default_key_count_read_fndecl_62728 wep_default_key_count_read fndecl 3 62728 &enable_so_limit_tc_sfq_qopt_62728
168319 +enable_so_total_len_android_wifi_priv_cmd_62735 total_len android_wifi_priv_cmd 0 62735 NULL
168320 +enable_so_smi_read_eeprom_fndecl_62737 smi_read_eeprom fndecl 4 62737 NULL
168321 +enable_so_match_size_ebt_entry_match_62738 match_size ebt_entry_match 0 62738 NULL nohasharray
168322 +enable_so_hpi_init_message_responseV1_fndecl_62738 hpi_init_message_responseV1 fndecl 4-2 62738 &enable_so_match_size_ebt_entry_match_62738
168323 +enable_so_xfs_da_read_buf_fndecl_62739 xfs_da_read_buf fndecl 3 62739 NULL
168324 +enable_so_twa_load_sgl_fndecl_62743 twa_load_sgl fndecl 5 62743 NULL
168325 +enable_so_fs_wm9081_priv_62744 fs wm9081_priv 0 62744 NULL
168326 +enable_so_clear_extent_dirty_fndecl_62746 clear_extent_dirty fndecl 2-3 62746 NULL
168327 +enable_so_mi_first_entry_offset_nilfs_mdt_info_62749 mi_first_entry_offset nilfs_mdt_info 0 62749 NULL
168328 +enable_so_num_counters_vardecl_op_model_amd_c_62750 num_counters vardecl_op_model_amd.c 0 62750 NULL
168329 +enable_so___bioset_create_fndecl_62752 __bioset_create fndecl 2-1 62752 NULL
168330 +enable_so_min_align_pci_dev_resource_62768 min_align pci_dev_resource 0 62768 NULL
168331 +enable_so_e_value_size_ext4_xattr_entry_62783 e_value_size ext4_xattr_entry 0 62783 NULL
168332 +enable_so_tomoyo_read_fndecl_62786 tomoyo_read fndecl 3 62786 NULL
168333 +enable_so_mt2131_writeregs_fndecl_62788 mt2131_writeregs fndecl 3 62788 NULL
168334 +enable_so_dump_skip_fndecl_62793 dump_skip fndecl 2 62793 NULL
168335 +enable_so_buffer_size_tx_holding_buffer_62794 buffer_size tx_holding_buffer 0 62794 NULL
168336 +enable_so_kvm_pic_read_irq_fndecl_62795 kvm_pic_read_irq fndecl 0 62795 NULL
168337 +enable_so_len_cx24120_cmd_62796 len cx24120_cmd 0 62796 NULL
168338 +enable_so_cur_tx_netdev_private_62799 cur_tx netdev_private 0 62799 NULL
168339 +enable_so_v9fs_qid2ino_fndecl_62801 v9fs_qid2ino fndecl 0 62801 NULL
168340 +enable_so_xattr_len_ima_event_data_62811 xattr_len ima_event_data 0 62811 NULL
168341 +enable_so_head_aio_ring_62812 head aio_ring 0 62812 NULL
168342 +enable_so_capture_frlog_rme32_62817 capture_frlog rme32 0 62817 NULL
168343 +enable_so_coex_rx_win_size_mwifiex_adapter_62818 coex_rx_win_size mwifiex_adapter 0 62818 NULL
168344 +enable_so_wq_len_tx_ring_62826 wq_len tx_ring 0 62826 NULL
168345 +enable_so_gfs2_journaled_truncate_fndecl_62839 gfs2_journaled_truncate fndecl 3-2 62839 NULL
168346 +enable_so_ix2505v_write_fndecl_62840 ix2505v_write fndecl 3 62840 NULL
168347 +enable_so_calculate_node_totalpages_fndecl_62845 calculate_node_totalpages fndecl 2-3 62845 NULL
168348 +enable_so_fuse_read_fill_fndecl_62851 fuse_read_fill fndecl 4 62851 NULL
168349 +enable_so_cfs_cpt_table_alloc_fndecl_62852 cfs_cpt_table_alloc fndecl 1 62852 NULL
168350 +enable_so_func_num_vardecl_g_ffs_c_62856 func_num vardecl_g_ffs.c 0 62856 NULL
168351 +enable_so_max_register_regmap_62857 max_register regmap 0 62857 NULL
168352 +enable_so_nr_vecs_nilfs_write_info_62858 nr_vecs nilfs_write_info 0 62858 NULL
168353 +enable_so_spi_xcomm_txrx_bufs_fndecl_62860 spi_xcomm_txrx_bufs fndecl 0 62860 NULL
168354 +enable_so_il_dbgfs_power_save_status_read_fndecl_62862 il_dbgfs_power_save_status_read fndecl 3 62862 NULL
168355 +enable_so_height_tm6000_core_62864 height tm6000_core 0 62864 NULL
168356 +enable_so_c67x00_td_to_error_fndecl_62867 c67x00_td_to_error fndecl 0 62867 NULL
168357 +enable_so_ext2_max_size_fndecl_62871 ext2_max_size fndecl 0-1 62871 NULL
168358 +enable_so_i2c_hid_get_report_fndecl_62874 i2c_hid_get_report fndecl 5 62874 NULL nohasharray
168359 +enable_so_read_file_dfs_fndecl_62874 read_file_dfs fndecl 3 62874 &enable_so_i2c_hid_get_report_fndecl_62874
168360 +enable_so_qp_count_ntb_transport_ctx_62876 qp_count ntb_transport_ctx 0 62876 NULL
168361 +enable_so_xfs_dir3_leaf_read_fndecl_62878 xfs_dir3_leaf_read fndecl 3 62878 NULL
168362 +enable_so_ath6kl_set_assoc_req_ies_fndecl_62882 ath6kl_set_assoc_req_ies fndecl 3 62882 NULL
168363 +enable_so_create_kmalloc_cache_fndecl_62883 create_kmalloc_cache fndecl 2 62883 NULL
168364 +enable_so_valueblk_xfs_attr_inactive_list_62884 valueblk xfs_attr_inactive_list 0 62884 NULL
168365 +enable_so_phys_start_nvs_page_62885 phys_start nvs_page 0 62885 NULL nohasharray
168366 +enable_so_data_sge_offset_mpt2_ioctl_command_62885 data_sge_offset mpt2_ioctl_command 0 62885 &enable_so_phys_start_nvs_page_62885
168367 +enable_so_tty_audit_add_data_fndecl_62886 tty_audit_add_data fndecl 3 62886 NULL
168368 +enable_so_send_cmd_fndecl_62899 send_cmd fndecl 0 62899 NULL
168369 +enable_so_arg2__cdrp_cmd_62906 arg2 _cdrp_cmd 0 62906 NULL
168370 +enable_so_length_uvc_buffer_62907 length uvc_buffer 0 62907 NULL
168371 +enable_so_buflen_xdr_buf_62914 buflen xdr_buf 0 62914 NULL nohasharray
168372 +enable_so_n_subdevices_comedi_device_62914 n_subdevices comedi_device 0 62914 &enable_so_buflen_xdr_buf_62914
168373 +enable_so_elf_core_extra_phdrs_fndecl_62917 elf_core_extra_phdrs fndecl 0 62917 NULL
168374 +enable_so_out_size_ide_task_request_s_62924 out_size ide_task_request_s 0 62924 NULL
168375 +enable_so_uar_size_mthca_dev_lim_62925 uar_size mthca_dev_lim 0 62925 NULL
168376 +enable_so_uio_write_fndecl_62929 uio_write fndecl 3 62929 NULL
168377 +enable_so_teiup_create_fndecl_62930 teiup_create fndecl 3 62930 NULL nohasharray
168378 +enable_so_queue_size_srp_target_port_62930 queue_size srp_target_port 0 62930 &enable_so_teiup_create_fndecl_62930
168379 +enable_so_ext4_xattr_ibody_get_fndecl_62931 ext4_xattr_ibody_get fndecl 0 62931 NULL
168380 +enable_so_bfad_send_fcpt_cb_fndecl_62936 bfad_send_fcpt_cb fndecl 5 62936 NULL
168381 +enable_so_f2fs_acl_from_disk_fndecl_62937 f2fs_acl_from_disk fndecl 2 62937 NULL
168382 +enable_so_iso_callback_fndecl_62939 iso_callback fndecl 3 62939 NULL
168383 +enable_so_ovl_split_lowerdirs_fndecl_62941 ovl_split_lowerdirs fndecl 0 62941 NULL
168384 +enable_so_mtu_atmlec_config_msg_62946 mtu atmlec_config_msg 0 62946 NULL
168385 +enable_so_ax88178_change_mtu_fndecl_62947 ax88178_change_mtu fndecl 2 62947 NULL
168386 +enable_so_fixup_leb_fndecl_62955 fixup_leb fndecl 3 62955 NULL
168387 +enable_so_batadv_tt_tvlv_unicast_handler_v1_fndecl_62964 batadv_tt_tvlv_unicast_handler_v1 fndecl 5 62964 NULL
168388 +enable_so_adfs_get_block_fndecl_62966 adfs_get_block fndecl 2 62966 NULL nohasharray
168389 +enable_so_acpi_ut_create_integer_object_fndecl_62966 acpi_ut_create_integer_object fndecl 1 62966 &enable_so_adfs_get_block_fndecl_62966
168390 +enable_so_i_sblock_bfs_inode_62968 i_sblock bfs_inode 0 62968 NULL
168391 +enable_so_io_tlb_nslabs_vardecl_swiotlb_c_62972 io_tlb_nslabs vardecl_swiotlb.c 0 62972 NULL
168392 +enable_so_vmemmap_alloc_block_fndecl_62974 vmemmap_alloc_block fndecl 1 62974 NULL
168393 +enable_so_max_requests_hpt_iop_request_get_config_62975 max_requests hpt_iop_request_get_config 0 62975 NULL
168394 +enable_so_move_to_top_fndecl_62981 move_to_top fndecl 2-3 62981 NULL
168395 +enable_so_memblock_insert_region_fndecl_62987 memblock_insert_region fndecl 3-4 62987 NULL
168396 +enable_so_btrfs_copy_from_user_fndecl_62989 btrfs_copy_from_user fndecl 1-0-3 62989 NULL
168397 +enable_so_integrity_kernel_read_fndecl_62991 integrity_kernel_read fndecl 4 62991 NULL
168398 +enable_so_layout_mddev_62992 layout mddev 0 62992 NULL
168399 +enable_so_alloc_name_seq_62994 alloc name_seq 0 62994 NULL
168400 +enable_so_ocfs2_xattr_get_value_outside_fndecl_63000 ocfs2_xattr_get_value_outside fndecl 0 63000 NULL
168401 +enable_so_pagesize_flash_info_63006 pagesize flash_info 0 63006 NULL
168402 +enable_so_cache_size_raw_regmap_63010 cache_size_raw regmap 0 63010 NULL
168403 +enable_so_get_rsb_struct_fndecl_63014 get_rsb_struct fndecl 3 63014 NULL
168404 +enable_so_vb2_dc_alloc_fndecl_63021 vb2_dc_alloc fndecl 2 63021 NULL
168405 +enable_so_packets_per_second_ua101_63022 packets_per_second ua101 0 63022 NULL
168406 +enable_so_mmio_size_controller_63024 mmio_size controller 0 63024 NULL
168407 +enable_so_hci_send_cmd_fndecl_63025 hci_send_cmd fndecl 3 63025 NULL
168408 +enable_so_gpr_get_fndecl_63026 gpr_get fndecl 3-4 63026 NULL
168409 +enable_so_gspca_coarse_grained_expo_autogain_fndecl_63033 gspca_coarse_grained_expo_autogain fndecl 4-2-3 63033 NULL
168410 +enable_so_rsi_sdio_host_intf_write_pkt_fndecl_63034 rsi_sdio_host_intf_write_pkt fndecl 3 63034 NULL
168411 +enable_so_size_align_rxrpc_connection_63035 size_align rxrpc_connection 0 63035 NULL
168412 +enable_so_display_width_vivid_dev_63040 display_width vivid_dev 0 63040 NULL
168413 +enable_so_reset_psn_fndecl_63045 reset_psn fndecl 2 63045 NULL
168414 +enable_so_ttymajor_vardecl_synclink_cs_c_63046 ttymajor vardecl_synclink_cs.c 0 63046 NULL
168415 +enable_so_sizeimage_deinterlace_q_data_63050 sizeimage deinterlace_q_data 0 63050 NULL
168416 +enable_so_atl1c_change_mtu_fndecl_63051 atl1c_change_mtu fndecl 2 63051 NULL
168417 +enable_so_p54_download_eeprom_fndecl_63057 p54_download_eeprom fndecl 4 63057 NULL
168418 +enable_so_nr_perf_branch_stack_63058 nr perf_branch_stack 0 63058 NULL nohasharray
168419 +enable_so_q0_num_vecs_bna_rx_config_63058 q0_num_vecs bna_rx_config 0 63058 &enable_so_nr_perf_branch_stack_63058
168420 +enable_so_pcibios_scan_root_fndecl_63059 pcibios_scan_root fndecl 1 63059 NULL
168421 +enable_so_read_flush_fndecl_63064 read_flush fndecl 3 63064 NULL
168422 +enable_so_if_bytes_xfs_ifork_63066 if_bytes xfs_ifork 0 63066 NULL
168423 +enable_so_pic_ioport_write_fndecl_63069 pic_ioport_write fndecl 3 63069 NULL nohasharray
168424 +enable_so_writesize_onenand_chip_63069 writesize onenand_chip 0 63069 &enable_so_pic_ioport_write_fndecl_63069
168425 +enable_so_dm_ring_size_vardecl_hv_balloon_c_63071 dm_ring_size vardecl_hv_balloon.c 0 63071 NULL
168426 +enable_so_prev_algo_r5conf_63075 prev_algo r5conf 0 63075 NULL
168427 +enable_so_start_bus_pci_mmcfg_region_63086 start_bus pci_mmcfg_region 0 63086 NULL
168428 +enable_so_width_saa7134_dev_63087 width saa7134_dev 0 63087 NULL nohasharray
168429 +enable_so_s_anchor_udf_sb_info_63087 s_anchor udf_sb_info 0 63087 &enable_so_width_saa7134_dev_63087 nohasharray
168430 +enable_so_init_labels_fndecl_63087 init_labels fndecl 2 63087 &enable_so_s_anchor_udf_sb_info_63087
168431 +enable_so_nfc_hci_execute_cmd_fndecl_63097 nfc_hci_execute_cmd fndecl 5 63097 NULL
168432 +enable_so_rd_page_count_rd_dev_63098 rd_page_count rd_dev 0 63098 NULL
168433 +enable_so_get_registry_size_bnx2x_mcast_obj_63102 get_registry_size bnx2x_mcast_obj 0 63102 NULL
168434 +enable_so_size_devlog_params_63104 size devlog_params 0 63104 NULL
168435 +enable_so_drxdap_fasi_read_block_fndecl_63113 drxdap_fasi_read_block fndecl 3 63113 NULL
168436 +enable_so_ticket_len_rxkad_key_63114 ticket_len rxkad_key 0 63114 NULL
168437 +enable_so_reiserfs_get_dentry_fndecl_63118 reiserfs_get_dentry fndecl 2 63118 NULL nohasharray
168438 +enable_so_max_recv_sge_ib_qp_cap_63118 max_recv_sge ib_qp_cap 0 63118 &enable_so_reiserfs_get_dentry_fndecl_63118
168439 +enable_so_max_cqe_ib_device_attr_63121 max_cqe ib_device_attr 0 63121 NULL
168440 +enable_so_txf_size_bdx_priv_63122 txf_size bdx_priv 0 63122 NULL
168441 +enable_so_uvc_video_decode_data_fndecl_63124 uvc_video_decode_data fndecl 4 63124 NULL
168442 +enable_so_elements_array_data_63130 elements array_data 0 63130 NULL
168443 +enable_so_in_width_sh_vou_geometry_63131 in_width sh_vou_geometry 0 63131 NULL
168444 +enable_so_prism2_sta_send_mgmt_fndecl_63135 prism2_sta_send_mgmt fndecl 5 63135 NULL
168445 +enable_so_peer_cookie_len_l2tp_session_63142 peer_cookie_len l2tp_session 0 63142 NULL
168446 +enable_so_vback_porch_videomode_63152 vback_porch videomode 0 63152 NULL
168447 +enable_so_obj_order_rbd_image_header_63156 obj_order rbd_image_header 0 63156 NULL
168448 +enable_so_reiserfs_get_blocks_direct_io_fndecl_63157 reiserfs_get_blocks_direct_io fndecl 2 63157 NULL
168449 +enable_so_dst_val_x86_instruction_info_63158 dst_val x86_instruction_info 0 63158 NULL nohasharray
168450 +enable_so_length_req_que_63158 length req_que 0 63158 &enable_so_dst_val_x86_instruction_info_63158
168451 +enable_so_inode_nilfs_dir_entry_63159 inode nilfs_dir_entry 0 63159 NULL
168452 +enable_so_dst_y_yuv_frame_info_63162 dst_y yuv_frame_info 0 63162 NULL
168453 +enable_so_get_pattern_len_ts_ops_63165 get_pattern_len ts_ops 0 63165 NULL
168454 +enable_so_nports_ahci_host_priv_63166 nports ahci_host_priv 0 63166 NULL
168455 +enable_so_stats_dot11RTSFailureCount_read_fndecl_63167 stats_dot11RTSFailureCount_read fndecl 3 63167 NULL
168456 +enable_so_word_4_rsq_entry_63169 word_4 rsq_entry 0 63169 NULL
168457 +enable_so_nla_reserve_fndecl_63171 nla_reserve fndecl 3 63171 NULL
168458 +enable_so_vma_hugecache_offset_fndecl_63172 vma_hugecache_offset fndecl 0-3 63172 NULL
168459 +enable_so___clkdev_alloc_fndecl_63173 __clkdev_alloc fndecl 1 63173 NULL
168460 +enable_so_ulist_add_fndecl_63177 ulist_add fndecl 2-0 63177 NULL
168461 +enable_so_send_repeat_remove_fndecl_63179 send_repeat_remove fndecl 3 63179 NULL nohasharray
168462 +enable_so_kvm_read_guest_virt_fndecl_63179 kvm_read_guest_virt fndecl 4-2 63179 &enable_so_send_repeat_remove_fndecl_63179 nohasharray
168463 +enable_so_scsi_command_size_fndecl_63179 scsi_command_size fndecl 0 63179 &enable_so_kvm_read_guest_virt_fndecl_63179
168464 +enable_so_nr_to_scan_shrink_control_63181 nr_to_scan shrink_control 0 63181 NULL
168465 +enable_so_srpt_srq_size_vardecl_ib_srpt_c_63183 srpt_srq_size vardecl_ib_srpt.c 0 63183 NULL
168466 +enable_so_cache_request_fndecl_63187 cache_request fndecl 0 63187 NULL
168467 +enable_so_csums_alg_len_net_conf_63190 csums_alg_len net_conf 0 63190 NULL nohasharray
168468 +enable_so___sg_page_iter_start_fndecl_63190 __sg_page_iter_start fndecl 4 63190 &enable_so_csums_alg_len_net_conf_63190
168469 +enable_so_squashfs_xz_uncompress_fndecl_63193 squashfs_xz_uncompress fndecl 6-5 63193 NULL
168470 +enable_so_val_v4l2_ctrl_63196 val v4l2_ctrl 0 63196 NULL
168471 +enable_so___get_required_blob_size_fndecl_63199 __get_required_blob_size fndecl 0-3-2 63199 NULL
168472 +enable_so_mwl8k_add_dma_header_fndecl_63203 mwl8k_add_dma_header fndecl 3 63203 NULL
168473 +enable_so_selfballoon_reserved_mb_vardecl_xen_selfballoon_c_63209 selfballoon_reserved_mb vardecl_xen-selfballoon.c 0 63209 NULL nohasharray
168474 +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
168475 +enable_so_sizeimage_emmaprp_q_data_63224 sizeimage emmaprp_q_data 0 63224 NULL nohasharray
168476 +enable_so_write_flush_procfs_fndecl_63224 write_flush_procfs fndecl 3 63224 &enable_so_sizeimage_emmaprp_q_data_63224
168477 +enable_so_ufs_alloccg_block_fndecl_63239 ufs_alloccg_block fndecl 0-3 63239 NULL nohasharray
168478 +enable_so_tx_frag_failed_read_fndecl_63239 tx_frag_failed_read fndecl 3 63239 &enable_so_ufs_alloccg_block_fndecl_63239
168479 +enable_so_mod_len_start_info_63244 mod_len start_info 0 63244 NULL
168480 +enable_so_ipw2100_set_tx_power_fndecl_63246 ipw2100_set_tx_power fndecl 2 63246 NULL
168481 +enable_so_acpi_ut_get_resource_length_fndecl_63256 acpi_ut_get_resource_length fndecl 0 63256 NULL
168482 +enable_so_ep_image_mts_desc_63258 ep_image mts_desc 0 63258 NULL
168483 +enable_so_cachefiles_daemon_write_fndecl_63260 cachefiles_daemon_write fndecl 3 63260 NULL
168484 +enable_so_pdu_write_u_fndecl_63261 pdu_write_u fndecl 3 63261 NULL nohasharray
168485 +enable_so_read_events_fndecl_63261 read_events fndecl 3 63261 &enable_so_pdu_write_u_fndecl_63261
168486 +enable_so_dvb_ca_en50221_io_write_fndecl_63262 dvb_ca_en50221_io_write fndecl 3 63262 NULL
168487 +enable_so_sch56xx_device_add_fndecl_63264 sch56xx_device_add fndecl 1 63264 NULL
168488 +enable_so_height_videobuf_buffer_63266 height videobuf_buffer 0 63266 NULL
168489 +enable_so__fc_frame_alloc_fndecl_63267 _fc_frame_alloc fndecl 1 63267 NULL
168490 +enable_so_rpc_malloc_fndecl_63270 rpc_malloc fndecl 2 63270 NULL
168491 +enable_so_sb_rsumino_xfs_sb_63283 sb_rsumino xfs_sb 0 63283 NULL nohasharray
168492 +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
168493 +enable_so_num_counters_ebt_replace_63286 num_counters ebt_replace 0 63286 NULL
168494 +enable_so_xprt_rdma_slot_table_entries_vardecl_transport_c_63290 xprt_rdma_slot_table_entries vardecl_transport.c 0 63290 NULL
168495 +enable_so_video_buffer_size_osd_info_63299 video_buffer_size osd_info 0 63299 NULL
168496 +enable_so_lpfc_idiag_drbacc_read_reg_fndecl_63301 lpfc_idiag_drbacc_read_reg fndecl 0-3 63301 NULL
168497 +enable_so_num_req_tx_rings_bnx2_63306 num_req_tx_rings bnx2 0 63306 NULL
168498 +enable_so_xfs_map_blocks_fndecl_63308 xfs_map_blocks fndecl 2 63308 NULL
168499 +enable_so_valuelen_jfs_ea_63309 valuelen jfs_ea 0 63309 NULL nohasharray
168500 +enable_so_proc_read_fndecl_63309 proc_read fndecl 3 63309 &enable_so_valuelen_jfs_ea_63309
168501 +enable_so_con_out_kvec_add_fndecl_63316 con_out_kvec_add fndecl 2 63316 NULL
168502 +enable_so_doorbell_start_offset_kgd2kfd_shared_resources_63332 doorbell_start_offset kgd2kfd_shared_resources 0 63332 NULL
168503 +enable_so_bulk_out_endpointAddress_usb_serial_port_63340 bulk_out_endpointAddress usb_serial_port 0 63340 NULL
168504 +enable_so_gf100_vm_create_fndecl_63342 gf100_vm_create fndecl 3-2-4 63342 NULL
168505 +enable_so_clipcount_out_vivid_dev_63343 clipcount_out vivid_dev 0 63343 NULL
168506 +enable_so_len_n_flags_iwl_rx_packet_63345 len_n_flags iwl_rx_packet 0 63345 NULL
168507 +enable_so_alloc_thread_groups_fndecl_63354 alloc_thread_groups fndecl 2 63354 NULL
168508 +enable_so_x_zoran_overlay_settings_63359 x zoran_overlay_settings 0 63359 NULL
168509 +enable_so_lbq_buf_size_rx_ring_63363 lbq_buf_size rx_ring 0 63363 NULL
168510 +enable_so_phys_mem_fst_card_info_63365 phys_mem fst_card_info 0 63365 NULL
168511 +enable_so_start_ms350_cam_fndecl_63372 start_ms350_cam fndecl 0 63372 NULL
168512 +enable_so_kmalloc_large_node_hook_fndecl_63376 kmalloc_large_node_hook fndecl 2 63376 NULL
168513 +enable_so_alloc_irq_domain_ops_63379 alloc irq_domain_ops 0 63379 NULL
168514 +enable_so_max_lun_rts51x_chip_63381 max_lun rts51x_chip 0 63381 NULL
168515 +enable_so_data_len_ubifs_inode_63396 data_len ubifs_inode 0 63396 NULL
168516 +enable_so_buflen_audit_rule_data_63397 buflen audit_rule_data 0 63397 NULL nohasharray
168517 +enable_so_hidp_send_ctrl_message_fndecl_63397 hidp_send_ctrl_message fndecl 4 63397 &enable_so_buflen_audit_rule_data_63397
168518 +enable_so_max_cqes_per_cq_iwch_rnic_attributes_63399 max_cqes_per_cq iwch_rnic_attributes 0 63399 NULL
168519 +enable_so_rate_n_flags_iwlagn_tx_resp_63401 rate_n_flags iwlagn_tx_resp 0 63401 NULL
168520 +enable_so_e820_end_pfn_fndecl_63402 e820_end_pfn fndecl 0-1 63402 NULL nohasharray
168521 +enable_so_bnx2_find_max_ring_fndecl_63402 bnx2_find_max_ring fndecl 0-2 63402 &enable_so_e820_end_pfn_fndecl_63402
168522 +enable_so_ext3_xattr_trusted_set_fndecl_63404 ext3_xattr_trusted_set fndecl 4 63404 NULL nohasharray
168523 +enable_so_nvkm_connector_create__fndecl_63404 nvkm_connector_create_ fndecl 6 63404 &enable_so_ext3_xattr_trusted_set_fndecl_63404
168524 +enable_so_flt_chap_size_ql82xx_hw_data_63406 flt_chap_size ql82xx_hw_data 0 63406 NULL
168525 +enable_so__drbd_no_send_page_fndecl_63409 _drbd_no_send_page fndecl 4 63409 NULL
168526 +enable_so_lib80211_wep_decrypt_fndecl_63419 lib80211_wep_decrypt fndecl 2 63419 NULL
168527 +enable_so_write_midi_fndecl_63421 write_midi fndecl 0-3 63421 NULL
168528 +enable_so_xfs_buf_set_empty_fndecl_63425 xfs_buf_set_empty fndecl 2 63425 NULL
168529 +enable_so_i2400m_tx_fndecl_63427 i2400m_tx fndecl 3-4 63427 NULL
168530 +enable_so_brcmf_sdio_download_firmware_fndecl_63429 brcmf_sdio_download_firmware fndecl 4 63429 NULL nohasharray
168531 +enable_so___alloc_alien_cache_fndecl_63429 __alloc_alien_cache fndecl 2 63429 &enable_so_brcmf_sdio_download_firmware_fndecl_63429
168532 +enable_so_tas571x_register_size_fndecl_63430 tas571x_register_size fndecl 0 63430 NULL nohasharray
168533 +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
168534 +enable_so_ocfs2_replace_clusters_fndecl_63430 ocfs2_replace_clusters fndecl 5-3 63430 &enable_so_ad_sd_read_reg_raw_fndecl_63430
168535 +enable_so_snd_rme32_playback_copy_fndecl_63431 snd_rme32_playback_copy fndecl 5 63431 NULL
168536 +enable_so_mem_len_bfa_mem_kva_s_63432 mem_len bfa_mem_kva_s 0 63432 NULL
168537 +enable_so_resp_sas_sf_m_pg_fndecl_63437 resp_sas_sf_m_pg fndecl 0 63437 NULL
168538 +enable_so_check_bandwidth_hc_driver_63438 check_bandwidth hc_driver 0 63438 NULL
168539 +enable_so_m_max_file_size_ceph_mdsmap_63449 m_max_file_size ceph_mdsmap 0 63449 NULL
168540 +enable_so_max_send_wr_ib_qp_cap_63450 max_send_wr ib_qp_cap 0 63450 NULL
168541 +enable_so_cmd_status_netdev_desc_63452 cmd_status netdev_desc 0 63452 NULL
168542 +enable_so_fuse_send_read_fndecl_63454 fuse_send_read fndecl 4 63454 NULL
168543 +enable_so_sysv_raw_inode_fndecl_63458 sysv_raw_inode fndecl 2 63458 NULL
168544 +enable_so_c_width_g2d_frame_63459 c_width g2d_frame 0 63459 NULL
168545 +enable_so_btrfs_drop_extent_cache_fndecl_63461 btrfs_drop_extent_cache fndecl 3-2 63461 NULL
168546 +enable_so_skb_read_pdu_bhs_fndecl_63463 skb_read_pdu_bhs fndecl 0 63463 NULL
168547 +enable_so_biter_fsl_edma_hw_tcd_63464 biter fsl_edma_hw_tcd 0 63464 NULL
168548 +enable_so_count_ceph_inode_xattrs_info_63465 count ceph_inode_xattrs_info 0 63465 NULL
168549 +enable_so_rcvhdrq_size_qib_ctxtdata_63468 rcvhdrq_size qib_ctxtdata 0 63468 NULL
168550 +enable_so_srq_lmt_max_sge_ocrdma_query_srq_rsp_63477 srq_lmt_max_sge ocrdma_query_srq_rsp 0 63477 NULL
168551 +enable_so___bm_find_next_fndecl_63479 __bm_find_next fndecl 0-2 63479 NULL
168552 +enable_so_mlx5_ib_read_user_wqe_fndecl_63480 mlx5_ib_read_user_wqe fndecl 3-5 63480 NULL nohasharray
168553 +enable_so_sctp_setsockopt_active_key_fndecl_63480 sctp_setsockopt_active_key fndecl 3 63480 &enable_so_mlx5_ib_read_user_wqe_fndecl_63480
168554 +enable_so_gigaset_initcs_fndecl_63482 gigaset_initcs fndecl 2 63482 NULL nohasharray
168555 +enable_so_length_dw_amdgpu_cs_chunk_63482 length_dw amdgpu_cs_chunk 0 63482 &enable_so_gigaset_initcs_fndecl_63482
168556 +enable_so_width_v4l2_pix_format_63491 width v4l2_pix_format 0 63491 NULL
168557 +enable_so_sb_spino_align_xfs_sb_63492 sb_spino_align xfs_sb 0 63492 NULL
168558 +enable_so_find_last_bit_fndecl_63495 find_last_bit fndecl 0-2 63495 NULL
168559 +enable_so___pcpu_size_to_slot_fndecl_63500 __pcpu_size_to_slot fndecl 0 63500 NULL
168560 +enable_so_read_data_offset_smb_version_operations_63502 read_data_offset smb_version_operations 0 63502 NULL
168561 +enable_so_ufs_nfs_get_inode_fndecl_63508 ufs_nfs_get_inode fndecl 2 63508 NULL
168562 +enable_so_xfs_rtfree_range_fndecl_63511 xfs_rtfree_range fndecl 3-4 63511 NULL
168563 +enable_so_bNrChannels_uac_format_type_i_discrete_descriptor_63512 bNrChannels uac_format_type_i_discrete_descriptor 0 63512 NULL
168564 +enable_so_num_usb2_ports_xhci_hcd_63514 num_usb2_ports xhci_hcd 0 63514 NULL
168565 +enable_so_rx_defrag_need_decrypt_read_fndecl_63518 rx_defrag_need_decrypt_read fndecl 3 63518 NULL
168566 +enable_so_wIELength_uwb_rc_cmd_set_drp_ie_63528 wIELength uwb_rc_cmd_set_drp_ie 0 63528 NULL
168567 +enable_so_wq_sig_mlx5_ib_qp_63533 wq_sig mlx5_ib_qp 0 63533 NULL nohasharray
168568 +enable_so_sel_read_perm_fndecl_63533 sel_read_perm fndecl 3 63533 &enable_so_wq_sig_mlx5_ib_qp_63533
168569 +enable_so_maxvram_video_board_63535 maxvram video_board 0 63535 NULL
168570 +enable_so_num_wsm_ether_type_filter_hdr_63536 num wsm_ether_type_filter_hdr 0 63536 NULL
168571 +enable_so_num_clips_drm_mode_fb_dirty_cmd_63540 num_clips drm_mode_fb_dirty_cmd 0 63540 NULL
168572 +enable_so___tty_buffer_request_room_fndecl_63543 __tty_buffer_request_room fndecl 0-2 63543 NULL
168573 +enable_so_hi_priority_depth_MPT2SAS_ADAPTER_63544 hi_priority_depth MPT2SAS_ADAPTER 0 63544 NULL
168574 +enable_so_snd_pcm_hw_param_value_max_fndecl_63547 snd_pcm_hw_param_value_max fndecl 0 63547 NULL
168575 +enable_so_tlv_data_size_user_element_63549 tlv_data_size user_element 0 63549 NULL
168576 +enable_so_word_size_ixgbe_eeprom_info_63556 word_size ixgbe_eeprom_info 0 63556 NULL
168577 +enable_so_multi_rmw_idx_wmi_63557 multi_rmw_idx wmi 0 63557 NULL
168578 +enable_so_tcp_sync_mss_fndecl_63561 tcp_sync_mss fndecl 0-2 63561 NULL
168579 +enable_so_gfn_to_hva_fndecl_63570 gfn_to_hva fndecl 2 63570 NULL
168580 +enable_so_ulong_read_file_fndecl_63571 ulong_read_file fndecl 3 63571 NULL nohasharray
168581 +enable_so_sctp_setsockopt_del_key_fndecl_63571 sctp_setsockopt_del_key fndecl 3 63571 &enable_so_ulong_read_file_fndecl_63571
168582 +enable_so_unmap_granularity_scsi_disk_63574 unmap_granularity scsi_disk 0 63574 NULL
168583 +enable_so_xfs_vm_readpages_fndecl_63575 xfs_vm_readpages fndecl 4 63575 NULL
168584 +enable_so_num_ethernet_queues_bnx2x_63578 num_ethernet_queues bnx2x 0 63578 NULL
168585 +enable_so_xfs_vm_write_failed_fndecl_63582 xfs_vm_write_failed fndecl 3 63582 NULL
168586 +enable_so_ide_raw_taskfile_fndecl_63584 ide_raw_taskfile fndecl 4 63584 NULL
168587 +enable_so_cit_get_packet_size_fndecl_63585 cit_get_packet_size fndecl 0 63585 NULL
168588 +enable_so_width_console_font_63590 width console_font 0 63590 NULL
168589 +enable_so_fbmem_viafb_par_63594 fbmem viafb_par 0 63594 NULL nohasharray
168590 +enable_so_ri_cno_nilfs_recovery_info_63594 ri_cno nilfs_recovery_info 0 63594 &enable_so_fbmem_viafb_par_63594
168591 +enable_so_srp_map_data_fndecl_63596 srp_map_data fndecl 0 63596 NULL
168592 +enable_so_size_dmaengine_unmap_pool_63599 size dmaengine_unmap_pool 0 63599 NULL nohasharray
168593 +enable_so_dbFree_fndecl_63599 dbFree fndecl 2-3 63599 &enable_so_size_dmaengine_unmap_pool_63599
168594 +enable_so_snd_pcm_plug_alloc_fndecl_63600 snd_pcm_plug_alloc fndecl 2 63600 NULL
168595 +enable_so_offset_pci_sriov_63604 offset pci_sriov 0 63604 NULL
168596 +enable_so_zone_start_pfn_zone_63616 zone_start_pfn zone 0 63616 NULL
168597 +enable_so_il_dbgfs_disable_ht40_read_fndecl_63617 il_dbgfs_disable_ht40_read fndecl 3 63617 NULL
168598 +enable_so_rx_mtu_p54_common_63619 rx_mtu p54_common 0 63619 NULL
168599 +enable_so_w_nr_rds_iw_work_ring_63620 w_nr rds_iw_work_ring 0 63620 NULL
168600 +enable_so_buf_len_mwifiex_sdio_mpa_rx_63636 buf_len mwifiex_sdio_mpa_rx 0 63636 NULL nohasharray
168601 +enable_so_find_run_fndecl_63636 find_run fndecl 0 63636 &enable_so_buf_len_mwifiex_sdio_mpa_rx_63636
168602 +enable_so_be_v_offset_pnfs_block_extent_63637 be_v_offset pnfs_block_extent 0 63637 NULL nohasharray
168603 +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
168604 +enable_so_o_height_fimc_frame_63639 o_height fimc_frame 0 63639 NULL
168605 +enable_so_port_piocnt_ipath_portdata_63650 port_piocnt ipath_portdata 0 63650 NULL
168606 +enable_so_prev_rs_iwl_rate_info_63653 prev_rs iwl_rate_info 0 63653 NULL
168607 +enable_so_id_nvdimm_63666 id nvdimm 0 63666 NULL
168608 +enable_so_msnd_fifo_read_fndecl_63669 msnd_fifo_read fndecl 0 63669 NULL
168609 +enable_so_r_len_qib_qp_63672 r_len qib_qp 0 63672 NULL
168610 +enable_so_nr_map_e820map_63674 nr_map e820map 0 63674 NULL
168611 +enable_so_nfs_writepage_setup_fndecl_63682 nfs_writepage_setup fndecl 3-4 63682 NULL
168612 +enable_so_height_ssd1307fb_par_63688 height ssd1307fb_par 0 63688 NULL
168613 +enable_so_pci_get_device_func_fndecl_63689 pci_get_device_func fndecl 2 63689 NULL
168614 +enable_so_obj_size_proto_63697 obj_size proto 0 63697 NULL nohasharray
168615 +enable_so___iio_add_chan_devattr_fndecl_63697 __iio_add_chan_devattr fndecl 0 63697 &enable_so_obj_size_proto_63697
168616 +enable_so_gsm_data_alloc_fndecl_63702 gsm_data_alloc fndecl 3 63702 NULL
168617 +enable_so_key_conf_keyidx_read_fndecl_63704 key_conf_keyidx_read fndecl 3 63704 NULL
168618 +enable_so_spr_wm_latency_write_fndecl_63706 spr_wm_latency_write fndecl 3 63706 NULL
168619 +enable_so_real_trim_memory_fndecl_63709 real_trim_memory fndecl 1-2 63709 NULL
168620 +enable_so_owner_snd_ctl_elem_info_63711 owner snd_ctl_elem_info 0 63711 NULL
168621 +enable_so_index_dtsplit_63712 index dtsplit 0 63712 NULL nohasharray
168622 +enable_so_xfs_alloc_compute_aligned_fndecl_63712 xfs_alloc_compute_aligned fndecl 3-2 63712 &enable_so_index_dtsplit_63712
168623 +enable_so_kernel_recvmsg_fndecl_63713 kernel_recvmsg fndecl 0-5-4 63713 NULL
168624 +enable_so_omfs_readpages_fndecl_63721 omfs_readpages fndecl 4 63721 NULL
168625 +enable_so_osd_vis_h_yuv_playback_info_63734 osd_vis_h yuv_playback_info 0 63734 NULL
168626 +enable_so_pci_hotplug_mem_size_vardecl_63735 pci_hotplug_mem_size vardecl 0 63735 NULL
168627 +enable_so_get_mergeable_buf_len_fndecl_63736 get_mergeable_buf_len fndecl 0 63736 NULL
168628 +enable_so___simple_xattr_set_fndecl_63737 __simple_xattr_set fndecl 4 63737 NULL
168629 +enable_so___register_chrdev_region_fndecl_63741 __register_chrdev_region fndecl 1 63741 NULL
168630 +enable_so_size_vb2_dc_buf_63751 size vb2_dc_buf 0 63751 NULL
168631 +enable_so_target_size_scsi_transport_template_63753 target_size scsi_transport_template 0 63753 NULL
168632 +enable_so_spidev_sync_read_fndecl_63757 spidev_sync_read fndecl 0 63757 NULL
168633 +enable_so_mp_irqdomain_get_attr_fndecl_63759 mp_irqdomain_get_attr fndecl 1 63759 NULL nohasharray
168634 +enable_so_pool_allocate_fndecl_63759 pool_allocate fndecl 3 63759 &enable_so_mp_irqdomain_get_attr_fndecl_63759
168635 +enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760 ath6kl_wmi_remain_on_chnl_cmd fndecl 2 63760 NULL nohasharray
168636 +enable_so_msix_count_skd_device_63760 msix_count skd_device 0 63760 &enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760
168637 +enable_so_xfs_qm_dqalloc_fndecl_63762 xfs_qm_dqalloc fndecl 5 63762 NULL nohasharray
168638 +enable_so_index_isi_board_63762 index isi_board 0 63762 &enable_so_xfs_qm_dqalloc_fndecl_63762
168639 +enable_so_dss_feat_get_num_ovls_fndecl_63770 dss_feat_get_num_ovls fndecl 0 63770 NULL
168640 +enable_so_insn_size_kprobe_insn_cache_63777 insn_size kprobe_insn_cache 0 63777 NULL
168641 +enable_so___hwahc_op_set_gtk_fndecl_63781 __hwahc_op_set_gtk fndecl 4 63781 NULL
168642 +enable_so_items_priv_size_vxge_hw_mempool_63785 items_priv_size vxge_hw_mempool 0 63785 NULL
168643 +enable_so_alloc_trace_kprobe_fndecl_63786 alloc_trace_kprobe fndecl 6 63786 NULL
168644 +enable_so_num_slices_myri10ge_priv_63789 num_slices myri10ge_priv 0 63789 NULL
168645 +enable_so_order_pmcraid_sglist_63792 order pmcraid_sglist 0 63792 NULL nohasharray
168646 +enable_so_orinoco_mic_fndecl_63792 orinoco_mic fndecl 7 63792 &enable_so_order_pmcraid_sglist_63792 nohasharray
168647 +enable_so__scif_recv_fndecl_63792 _scif_recv fndecl 0-3 63792 &enable_so_orinoco_mic_fndecl_63792
168648 +enable_so_modem_write_cmd_fndecl_63794 modem_write_cmd fndecl 3 63794 NULL nohasharray
168649 +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
168650 +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
168651 +enable_so_ioaccel_maxsg_ctlr_info_63798 ioaccel_maxsg ctlr_info 0 63798 NULL
168652 +enable_so_read_prph_iwl_trans_ops_63799 read_prph iwl_trans_ops 0 63799 NULL
168653 +enable_so_nouveau_ttm_tt_create_fndecl_63801 nouveau_ttm_tt_create fndecl 2 63801 NULL nohasharray
168654 +enable_so_nbds_max_vardecl_nbd_c_63801 nbds_max vardecl_nbd.c 0 63801 &enable_so_nouveau_ttm_tt_create_fndecl_63801
168655 +enable_so_acpi_ut_create_buffer_object_fndecl_63805 acpi_ut_create_buffer_object fndecl 1 63805 NULL
168656 +enable_so_ncp_add_mem_fndecl_63822 ncp_add_mem fndecl 3 63822 NULL nohasharray
168657 +enable_so_named_prepare_buf_fndecl_63822 named_prepare_buf fndecl 3 63822 &enable_so_ncp_add_mem_fndecl_63822
168658 +enable_so_len_extent_map_63823 len extent_map 0 63823 NULL
168659 +enable_so_ps_poll_upsd_max_ap_turn_read_fndecl_63825 ps_poll_upsd_max_ap_turn_read fndecl 3 63825 NULL
168660 +enable_so_jffs2_do_link_fndecl_63827 jffs2_do_link fndecl 6 63827 NULL
168661 +enable_so_compat_sys_sendfile_fndecl_63828 compat_sys_sendfile fndecl 4 63828 NULL
168662 +enable_so_alt_mem_k_boot_params_63829 alt_mem_k boot_params 0 63829 NULL
168663 +enable_so_rpipe_aim_fndecl_63832 rpipe_aim fndecl 0 63832 NULL
168664 +enable_so_p_end_nilfs_period_63833 p_end nilfs_period 0 63833 NULL
168665 +enable_so_iwl_mvm_scan_size_fndecl_63834 iwl_mvm_scan_size fndecl 0 63834 NULL
168666 +enable_so_flags_flat_binder_object_63836 flags flat_binder_object 0 63836 NULL
168667 +enable_so_rx_ring_order_vardecl_main_c_63838 rx_ring_order vardecl_main.c 0 63838 NULL
168668 +enable_so_ipath_make_grh_fndecl_63846 ipath_make_grh fndecl 0 63846 NULL
168669 +enable_so_ext4_sync_file_fndecl_63847 ext4_sync_file fndecl 2-3 63847 NULL
168670 +enable_so_yskip_mt9t031_63853 yskip mt9t031 0 63853 NULL
168671 +enable_so_rx_data_size_sky2_port_63855 rx_data_size sky2_port 0 63855 NULL nohasharray
168672 +enable_so_submit_inquiry_fndecl_63855 submit_inquiry fndecl 3 63855 &enable_so_rx_data_size_sky2_port_63855
168673 +enable_so_addrlen_at25_data_63857 addrlen at25_data 0 63857 NULL
168674 +enable_so_da_height_logfs_je_anchor_63858 da_height logfs_je_anchor 0 63858 NULL
168675 +enable_so_out_phase_peeked_usb_stream_kernel_63871 out_phase_peeked usb_stream_kernel 0 63871 NULL
168676 +enable_so_ssid_len_ieee80211_if_ibss_63872 ssid_len ieee80211_if_ibss 0 63872 NULL nohasharray
168677 +enable_so_Read_hfc16_stable_fndecl_63872 Read_hfc16_stable fndecl 0 63872 &enable_so_ssid_len_ieee80211_if_ibss_63872
168678 +enable_so_xlvbd_alloc_gendisk_fndecl_63874 xlvbd_alloc_gendisk fndecl 4-5 63874 NULL
168679 +enable_so_rate_mwl8k_rxd_ap_63875 rate mwl8k_rxd_ap 0 63875 NULL
168680 +enable_so___btrfs_unlink_inode_fndecl_63889 __btrfs_unlink_inode fndecl 6 63889 NULL
168681 +enable_so_dw_dma_cyclic_prep_fndecl_63890 dw_dma_cyclic_prep fndecl 4-3 63890 NULL
168682 +enable_so_lmWriteRecord_fndecl_63896 lmWriteRecord fndecl 0 63896 NULL
168683 +enable_so_ext4_do_update_inode_fndecl_63900 ext4_do_update_inode fndecl 0 63900 NULL
168684 +enable_so_tx_cnt_fritz_bcs_63901 tx_cnt fritz_bcs 0 63901 NULL
168685 +enable_so_mmc_align_data_size_fndecl_63906 mmc_align_data_size fndecl 0-2 63906 NULL nohasharray
168686 +enable_so_fraglen_encryptor_desc_63906 fraglen encryptor_desc 0 63906 &enable_so_mmc_align_data_size_fndecl_63906
168687 +enable_so_blk_ioctl_zeroout_fndecl_63907 blk_ioctl_zeroout fndecl 3-2 63907 NULL
168688 +enable_so_dbg_fixed_rate_iwl_lq_sta_63909 dbg_fixed_rate iwl_lq_sta 0 63909 NULL
168689 +enable_so_len_sock_fprog_kern_63914 len sock_fprog_kern 0 63914 NULL
168690 +enable_so_fw_stats_len_wl1271_stats_63915 fw_stats_len wl1271_stats 0 63915 NULL nohasharray
168691 +enable_so_read_file_base_eeprom_fndecl_63915 read_file_base_eeprom fndecl 3 63915 &enable_so_fw_stats_len_wl1271_stats_63915
168692 +enable_so_iwl_mvm_send_cmd_fndecl_63918 iwl_mvm_send_cmd fndecl 0 63918 NULL
168693 +enable_so_new_data_offset_md_rdev_63919 new_data_offset md_rdev 0 63919 NULL nohasharray
168694 +enable_so_align_nft_set_ext_type_63919 align nft_set_ext_type 0 63919 &enable_so_new_data_offset_md_rdev_63919
168695 +enable_so_nilfs_ifile_read_fndecl_63921 nilfs_ifile_read fndecl 3 63921 NULL
168696 +enable_so_start_btrfs_ioctl_defrag_range_args_63924 start btrfs_ioctl_defrag_range_args 0 63924 NULL
168697 +enable_so_efx_change_mtu_fndecl_63926 efx_change_mtu fndecl 2 63926 NULL
168698 +enable_so_cqm_max_rmid_vardecl_perf_event_intel_cqm_c_63930 cqm_max_rmid vardecl_perf_event_intel_cqm.c 0 63930 NULL
168699 +enable_so_dentry_needs_remove_privs_fndecl_63934 dentry_needs_remove_privs fndecl 0 63934 NULL
168700 +enable_so_ro_maxpages_rpcrdma_memreg_ops_63937 ro_maxpages rpcrdma_memreg_ops 0 63937 NULL nohasharray
168701 +enable_so_filemark_cnt_osst_tape_63937 filemark_cnt osst_tape 0 63937 &enable_so_ro_maxpages_rpcrdma_memreg_ops_63937
168702 +enable_so_Xfacs_acpi_table_fadt_63943 Xfacs acpi_table_fadt 0 63943 NULL
168703 +enable_so_replen_compound_hdr_63944 replen compound_hdr 0 63944 NULL
168704 +enable_so_get_znodes_to_commit_fndecl_63946 get_znodes_to_commit fndecl 0 63946 NULL nohasharray
168705 +enable_so_hdr_dwords_qib_verbs_txreq_63946 hdr_dwords qib_verbs_txreq 0 63946 &enable_so_get_znodes_to_commit_fndecl_63946
168706 +enable_so_map_szl_cyttsp4_sysinfo_data_63948 map_szl cyttsp4_sysinfo_data 0 63948 NULL
168707 +enable_so_pcfg_ofs_cyttsp4_sysinfo_ofs_63956 pcfg_ofs cyttsp4_sysinfo_ofs 0 63956 NULL
168708 +enable_so_oprofilefs_str_to_user_fndecl_63957 oprofilefs_str_to_user fndecl 3 63957 NULL
168709 +enable_so_pvr2_send_request_fndecl_63959 pvr2_send_request fndecl 3-5 63959 NULL
168710 +enable_so_rb_max_requests_rpcrdma_buffer_63960 rb_max_requests rpcrdma_buffer 0 63960 NULL
168711 +enable_so_write_file_beacon_fndecl_63962 write_file_beacon fndecl 3 63962 NULL
168712 +enable_so_psb_gtt_alloc_range_fndecl_63966 psb_gtt_alloc_range fndecl 2-5 63966 NULL
168713 +enable_so_len_wm_coeff_ctl_63967 len wm_coeff_ctl 0 63967 NULL
168714 +enable_so_pla_ocp_read_fndecl_63976 pla_ocp_read fndecl 3 63976 NULL
168715 +enable_so_bt_ep_bcm5974_config_63978 bt_ep bcm5974_config 0 63978 NULL
168716 +enable_so_pos_pagemapread_63988 pos pagemapread 0 63988 NULL
168717 +enable_so_befs_iget_fndecl_63989 befs_iget fndecl 2 63989 NULL
168718 +enable_so_max_lba_sm_ftl_63992 max_lba sm_ftl 0 63992 NULL
168719 +enable_so_ihandlen_compat_xfs_fsop_handlereq_63994 ihandlen compat_xfs_fsop_handlereq 0 63994 NULL
168720 +enable_so_subctxt_qib_filedata_63995 subctxt qib_filedata 0 63995 NULL
168721 +enable_so_vram_start_amdgpu_mc_63998 vram_start amdgpu_mc 0 63998 NULL
168722 +enable_so_iscsi_conn_send_pdu_fndecl_64002 iscsi_conn_send_pdu fndecl 4 64002 NULL
168723 +enable_so_pvr2_send_request_ex_fndecl_64004 pvr2_send_request_ex fndecl 5-7 64004 NULL
168724 +enable_so_ndescs_clk_corediv_soc_desc_64005 ndescs clk_corediv_soc_desc 0 64005 NULL
168725 +enable_so_field_count_audit_krule_64007 field_count audit_krule 0 64007 NULL
168726 +enable_so_rx_ring_size_fe_priv_64012 rx_ring_size fe_priv 0 64012 NULL
168727 +enable_so_wBlocks_usb_rpipe_descriptor_64014 wBlocks usb_rpipe_descriptor 0 64014 NULL nohasharray
168728 +enable_so_isku_sysfs_read_info_fndecl_64014 isku_sysfs_read_info fndecl 6 64014 &enable_so_wBlocks_usb_rpipe_descriptor_64014
168729 +enable_so_ext4_orphan_get_fndecl_64015 ext4_orphan_get fndecl 2 64015 NULL nohasharray
168730 +enable_so_snd_midi_event_decode_fndecl_64015 snd_midi_event_decode fndecl 0 64015 &enable_so_ext4_orphan_get_fndecl_64015
168731 +enable_so_space_snd_ctl_elem_list_64016 space snd_ctl_elem_list 0 64016 NULL
168732 +enable_so_n_sectors_flash_info_64017 n_sectors flash_info 0 64017 NULL
168733 +enable_so_dma_drain_size_request_queue_64023 dma_drain_size request_queue 0 64023 NULL
168734 +enable_so_extAlloc_fndecl_64026 extAlloc fndecl 3 64026 NULL
168735 +enable_so_fw_device_op_compat_ioctl_fndecl_64039 fw_device_op_compat_ioctl fndecl 2 64039 NULL
168736 +enable_so_kxtj9_i2c_read_fndecl_64041 kxtj9_i2c_read fndecl 4 64041 NULL
168737 +enable_so_ieee80211_request_ibss_scan_fndecl_64043 ieee80211_request_ibss_scan fndecl 3 64043 NULL
168738 +enable_so_xdr_partial_copy_from_skb_fndecl_64046 xdr_partial_copy_from_skb fndecl 0 64046 NULL nohasharray
168739 +enable_so_drm_ioctl_fndecl_64046 drm_ioctl fndecl 2 64046 &enable_so_xdr_partial_copy_from_skb_fndecl_64046
168740 +enable_so_devs_increment_btrfs_raid_attr_64050 devs_increment btrfs_raid_attr 0 64050 NULL
168741 +enable_so_koneplus_sysfs_read_fndecl_64059 koneplus_sysfs_read fndecl 6 64059 NULL
168742 +enable_so_claim_region_fndecl_64076 claim_region fndecl 3-2 64076 NULL
168743 +enable_so_link_duplex_pch_gbe_mac_info_64077 link_duplex pch_gbe_mac_info 0 64077 NULL
168744 +enable_so_dma_size_cx88_audio_dev_64082 dma_size cx88_audio_dev 0 64082 NULL
168745 +enable_so_xfs_iomap_eof_prealloc_initial_size_fndecl_64085 xfs_iomap_eof_prealloc_initial_size fndecl 3 64085 NULL
168746 +enable_so_iwl_dbgfs_ucode_bt_stats_read_fndecl_64087 iwl_dbgfs_ucode_bt_stats_read fndecl 3 64087 NULL
168747 +enable_so_si476x_radio_read_rsq_blob_fndecl_64088 si476x_radio_read_rsq_blob fndecl 3 64088 NULL
168748 +enable_so_size_mxr_block_64090 size mxr_block 0 64090 NULL
168749 +enable_so_set_arg_fndecl_64091 set_arg fndecl 3 64091 NULL
168750 +enable_so_s_end_bfs_super_block_64092 s_end bfs_super_block 0 64092 NULL
168751 +enable_so_act_len_htc_packet_64101 act_len htc_packet 0 64101 NULL
168752 +enable_so_cxgbi_hbas_add_fndecl_64102 cxgbi_hbas_add fndecl 3 64102 NULL
168753 +enable_so_rx_mini_pending_ethtool_ringparam_64104 rx_mini_pending ethtool_ringparam 0 64104 NULL
168754 +enable_so_ubiblock_major_vardecl_block_c_64105 ubiblock_major vardecl_block.c 0 64105 NULL
168755 +enable_so_j_first_unflushed_offset_reiserfs_journal_header_64107 j_first_unflushed_offset reiserfs_journal_header 0 64107 NULL
168756 +enable_so_nvme_trans_unit_serial_page_fndecl_64108 nvme_trans_unit_serial_page fndecl 4 64108 NULL
168757 +enable_so_lmac_count_bgx_64109 lmac_count bgx 0 64109 NULL
168758 +enable_so_btmrvl_fwdump_write_fndecl_64113 btmrvl_fwdump_write fndecl 3 64113 NULL
168759 +enable_so_fc_copy_buffer_to_sglist_fndecl_64115 fc_copy_buffer_to_sglist fndecl 0-2 64115 NULL
168760 +enable_so_amdgpu_bo_set_metadata_fndecl_64120 amdgpu_bo_set_metadata fndecl 3 64120 NULL
168761 +enable_so_compat_write_data_parport_operations_64123 compat_write_data parport_operations 0 64123 NULL
168762 +enable_so_tx_shift_at91_devtype_data_64126 tx_shift at91_devtype_data 0 64126 NULL
168763 +enable_so_gigaset_fill_inbuf_fndecl_64130 gigaset_fill_inbuf fndecl 3 64130 NULL
168764 +enable_so_gru_alloc_locked_gts_fndecl_64132 gru_alloc_locked_gts fndecl 1 64132 NULL nohasharray
168765 +enable_so_test_walk_mm_walk_64132 test_walk mm_walk 0 64132 &enable_so_gru_alloc_locked_gts_fndecl_64132
168766 +enable_so_alx_change_mtu_fndecl_64137 alx_change_mtu fndecl 2 64137 NULL
168767 +enable_so_ieee80211_tdls_mgmt_teardown_fndecl_64138 ieee80211_tdls_mgmt_teardown fndecl 10 64138 NULL
168768 +enable_so_hd_end_request_fndecl_64139 hd_end_request fndecl 2 64139 NULL
168769 +enable_so_pskb_expand_head_fndecl_64146 pskb_expand_head fndecl 2 64146 NULL
168770 +enable_so_free_bootmem_fndecl_64150 free_bootmem fndecl 2-1 64150 NULL
168771 +enable_so_xpc_kmalloc_cacheline_aligned_fndecl_64156 xpc_kmalloc_cacheline_aligned fndecl 1 64156 NULL
168772 +enable_so_btrfs_readpage_end_io_hook_fndecl_64160 btrfs_readpage_end_io_hook fndecl 4-5 64160 NULL
168773 +enable_so_drbd_header_size_fndecl_64163 drbd_header_size fndecl 0 64163 NULL
168774 +enable_so_max_gs_mthca_wq_64165 max_gs mthca_wq 0 64165 NULL
168775 +enable_so__rtl_rc_rate_set_series_fndecl_64170 _rtl_rc_rate_set_series fndecl 6 64170 NULL nohasharray
168776 +enable_so_ext4_get_stripe_size_fndecl_64170 ext4_get_stripe_size fndecl 0 64170 &enable_so__rtl_rc_rate_set_series_fndecl_64170
168777 +enable_so_sctp_getsockopt_maxburst_fndecl_64174 sctp_getsockopt_maxburst fndecl 2-0 64174 NULL
168778 +enable_so_xfs_trans_log_efd_extent_fndecl_64176 xfs_trans_log_efd_extent fndecl 3-4 64176 NULL
168779 +enable_so_max_fcoe_conn_cnic_dev_64181 max_fcoe_conn cnic_dev 0 64181 NULL
168780 +enable_so_nfcid1_len_nfc_target_64182 nfcid1_len nfc_target 0 64182 NULL
168781 +enable_so_phys_pcm_format_data_64188 phys pcm_format_data 0 64188 NULL
168782 +enable_so_out___kfifo_64192 out __kfifo 0 64192 NULL nohasharray
168783 +enable_so_bio_size_ok_fndecl_64192 bio_size_ok fndecl 3 64192 &enable_so_out___kfifo_64192
168784 +enable_so_sys_sethostname_fndecl_64193 sys_sethostname fndecl 2 64193 NULL
168785 +enable_so_bulk_out_endpointAddr_usb_ftdi_64197 bulk_out_endpointAddr usb_ftdi 0 64197 NULL
168786 +enable_so_contact_threshold_mms114_platform_data_64198 contact_threshold mms114_platform_data 0 64198 NULL
168787 +enable_so_pcibios_scan_specific_bus_fndecl_64203 pcibios_scan_specific_bus fndecl 1 64203 NULL
168788 +enable_so_ath6kl_wmi_pmparams_cmd_fndecl_64204 ath6kl_wmi_pmparams_cmd fndecl 2 64204 NULL
168789 +enable_so_st_set_options_fndecl_64214 st_set_options fndecl 2 64214 NULL
168790 +enable_so_mlx5e_change_mtu_fndecl_64217 mlx5e_change_mtu fndecl 2 64217 NULL
168791 +enable_so_outbuf_dma_usbhid_device_64218 outbuf_dma usbhid_device 0 64218 NULL
168792 +enable_so_recover_orphan_inode_fndecl_64220 recover_orphan_inode fndecl 2 64220 NULL
168793 +enable_so_balance_dirty_pages_fndecl_64228 balance_dirty_pages fndecl 3 64228 NULL
168794 +enable_so_format_chain_fndecl_64242 format_chain fndecl 2 64242 NULL
168795 +enable_so_bNbrPorts_usb_hub_descriptor_64245 bNbrPorts usb_hub_descriptor 0 64245 NULL
168796 +enable_so_compat_udpv6_setsockopt_fndecl_64246 compat_udpv6_setsockopt fndecl 5 64246 NULL
168797 +enable_so_payload_sz_status_msg_64247 payload_sz status_msg 0 64247 NULL
168798 +enable_so_adf4350_tune_r_cnt_fndecl_64249 adf4350_tune_r_cnt fndecl 2-0 64249 NULL
168799 +enable_so_nfs_idmap_get_desc_fndecl_64253 nfs_idmap_get_desc fndecl 2-4 64253 NULL nohasharray
168800 +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
168801 +enable_so_ccid_hc_rx_obj_size_ccid_operations_64257 ccid_hc_rx_obj_size ccid_operations 0 64257 NULL
168802 +enable_so_num_entries_wmi_target_roam_tbl_64263 num_entries wmi_target_roam_tbl 0 64263 NULL
168803 +enable_so_getxattr_cb_ceph_vxattr_64271 getxattr_cb ceph_vxattr 0 64271 NULL nohasharray
168804 +enable_so_dio_bio_complete_fndecl_64271 dio_bio_complete fndecl 0 64271 &enable_so_getxattr_cb_ceph_vxattr_64271
168805 +enable_so_dm_tm_read_lock_fndecl_64272 dm_tm_read_lock fndecl 2 64272 NULL
168806 +enable_so_denominator_v4l2_fract_64280 denominator v4l2_fract 0 64280 NULL
168807 +enable_so_t_prot_nents_se_cmd_64282 t_prot_nents se_cmd 0 64282 NULL
168808 +enable_so_SyS_mincore_fndecl_64284 SyS_mincore fndecl 2-1 64284 NULL
168809 +enable_so__dump_buf_data_order_vardecl_64288 _dump_buf_data_order vardecl 0 64288 NULL
168810 +enable_so_dev_minor_cuse_init_out_64292 dev_minor cuse_init_out 0 64292 NULL
168811 +enable_so_ath6kl_wmi_proc_events_vif_fndecl_64294 ath6kl_wmi_proc_events_vif fndecl 5 64294 NULL
168812 +enable_so_num_bds_table_bd_list_64306 num_bds_table bd_list 0 64306 NULL
168813 +enable_so_vfp_ast_vbios_enhtable_64307 vfp ast_vbios_enhtable 0 64307 NULL nohasharray
168814 +enable_so_sq_size_vardecl_64307 sq_size vardecl 0 64307 &enable_so_vfp_ast_vbios_enhtable_64307
168815 +enable_so_rd_out_oz_serial_ctx_64309 rd_out oz_serial_ctx 0 64309 NULL
168816 +enable_so_sys_vmsplice_fndecl_64310 sys_vmsplice fndecl 3 64310 NULL nohasharray
168817 +enable_so_snd_emux_create_port_fndecl_64310 snd_emux_create_port fndecl 3 64310 &enable_so_sys_vmsplice_fndecl_64310
168818 +enable_so_cw_putcs_fndecl_64311 cw_putcs fndecl 4-5-6 64311 NULL
168819 +enable_so___wa_xfer_setup_fndecl_64316 __wa_xfer_setup fndecl 0 64316 NULL
168820 +enable_so_smk_read_unconfined_fndecl_64317 smk_read_unconfined fndecl 3 64317 NULL
168821 +enable_so_hs_descs_count_ffs_data_64332 hs_descs_count ffs_data 0 64332 NULL
168822 +enable_so_cciss_add_disk_fndecl_64338 cciss_add_disk fndecl 3 64338 NULL
168823 +enable_so_tx_padding_usbatm_driver_64341 tx_padding usbatm_driver 0 64341 NULL
168824 +enable_so_vif_data_size_ieee80211_hw_64342 vif_data_size ieee80211_hw 0 64342 NULL
168825 +enable_so_part_start_hfsplus_sb_info_64347 part_start hfsplus_sb_info 0 64347 NULL
168826 +enable_so_bytesperline_au0828_dev_64350 bytesperline au0828_dev 0 64350 NULL
168827 +enable_so_opcount_compat_xfs_fsop_attrmulti_handlereq_64355 opcount compat_xfs_fsop_attrmulti_handlereq 0 64355 NULL
168828 +enable_so_logfs_truncate_fndecl_64356 logfs_truncate fndecl 2 64356 NULL
168829 +enable_so_cur_tx_pos_tegra_spi_data_64362 cur_tx_pos tegra_spi_data 0 64362 NULL
168830 +enable_so_isofs_get_blocks_fndecl_64368 isofs_get_blocks fndecl 2 64368 NULL nohasharray
168831 +enable_so_hpi_instream_host_buffer_allocate_fndecl_64368 hpi_instream_host_buffer_allocate fndecl 2 64368 &enable_so_isofs_get_blocks_fndecl_64368
168832 +enable_so_oom_score_adj_write_fndecl_64369 oom_score_adj_write fndecl 3 64369 NULL
168833 +enable_so_map_state_fndecl_64377 map_state fndecl 1 64377 NULL
168834 +enable_so_hdr_len_ib_mac_iocb_rsp_64379 hdr_len ib_mac_iocb_rsp 0 64379 NULL nohasharray
168835 +enable_so_hpi_init_responseV1_fndecl_64379 hpi_init_responseV1 fndecl 2 64379 &enable_so_hdr_len_ib_mac_iocb_rsp_64379
168836 +enable_so_num_rxd_qlcnic_adapter_64380 num_rxd qlcnic_adapter 0 64380 NULL
168837 +enable_so_endio_readpage_release_extent_fndecl_64387 endio_readpage_release_extent fndecl 3-2 64387 NULL
168838 +enable_so_s_max_sge_qib_qp_64390 s_max_sge qib_qp 0 64390 NULL
168839 +enable_so_mem_kexec_segment_64393 mem kexec_segment 0 64393 NULL
168840 +enable_so_MemoryWindowSize_DAC960_privdata_64399 MemoryWindowSize DAC960_privdata 0 64399 NULL
168841 +enable_so_oobretlen_mtd_oob_ops_64400 oobretlen mtd_oob_ops 0 64400 NULL
168842 +enable_so_sys_move_pages_fndecl_64401 sys_move_pages fndecl 2 64401 NULL
168843 +enable_so_init_data_si_sm_handlers_64406 init_data si_sm_handlers 0 64406 NULL
168844 +enable_so___get_user_pages_unlocked_fndecl_64409 __get_user_pages_unlocked fndecl 3 64409 NULL
168845 +enable_so_cdc_ncm_max_dgram_size_fndecl_64415 cdc_ncm_max_dgram_size fndecl 0 64415 NULL
168846 +enable_so_l2tp_xmit_skb_fndecl_64419 l2tp_xmit_skb fndecl 3 64419 NULL
168847 +enable_so_head_len_icmp_bxm_64424 head_len icmp_bxm 0 64424 NULL
168848 +enable_so_nfs4_new_slot_fndecl_64436 nfs4_new_slot fndecl 2 64436 NULL
168849 +enable_so_index_v4l2_frmivalenum_64442 index v4l2_frmivalenum 0 64442 NULL
168850 +enable_so_bLength_uvc_control_endpoint_descriptor_64456 bLength uvc_control_endpoint_descriptor 0 64456 NULL
168851 +enable_so_jpg_size_s2255_vc_64457 jpg_size s2255_vc 0 64457 NULL
168852 +enable_so_num_ch_st_sensor_settings_64459 num_ch st_sensor_settings 0 64459 NULL nohasharray
168853 +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
168854 +enable_so___ocfs2_decrease_refcount_fndecl_64462 __ocfs2_decrease_refcount fndecl 5-4 64462 NULL
168855 +enable_so_new_node_page_fndecl_64464 new_node_page fndecl 2 64464 NULL
168856 +enable_so_send_write_chunks_fndecl_64466 send_write_chunks fndecl 0 64466 NULL
168857 +enable_so_btrfs_grow_device_fndecl_64468 btrfs_grow_device fndecl 3 64468 NULL
168858 +enable_so_acpi_dev_get_irqresource_fndecl_64469 acpi_dev_get_irqresource fndecl 2 64469 NULL
168859 +enable_so_request_key_and_link_fndecl_64470 request_key_and_link fndecl 4 64470 NULL
168860 +enable_so_nilfs_btnode_submit_block_fndecl_64473 nilfs_btnode_submit_block fndecl 3-2 64473 NULL
168861 +enable_so_vb2_read_fndecl_64476 vb2_read fndecl 3 64476 NULL
168862 +enable_so_nr_dirtied_pause_task_struct_64480 nr_dirtied_pause task_struct 0 64480 NULL nohasharray
168863 +enable_so_pid_vnr_fndecl_64480 pid_vnr fndecl 0 64480 &enable_so_nr_dirtied_pause_task_struct_64480
168864 +enable_so_set_aoe_iflist_fndecl_64482 set_aoe_iflist fndecl 2 64482 NULL
168865 +enable_so_transport_header_sk_buff_64483 transport_header sk_buff 0 64483 NULL
168866 +enable_so_SendReceive2_fndecl_64485 SendReceive2 fndecl 4 64485 NULL
168867 +enable_so_ax25_setsockopt_fndecl_64487 ax25_setsockopt fndecl 5 64487 NULL
168868 +enable_so_vhost_hlen_vhost_net_virtqueue_64488 vhost_hlen vhost_net_virtqueue 0 64488 NULL
168869 +enable_so_size_exynos_drm_gem_buf_64490 size exynos_drm_gem_buf 0 64490 NULL
168870 +enable_so_val_reginit_item_64493 val reginit_item 0 64493 NULL
168871 +enable_so___FIXADDR_TOP_vardecl_64494 __FIXADDR_TOP vardecl 0 64494 NULL
168872 +enable_so_ddr_end_intel_sst_drv_64496 ddr_end intel_sst_drv 0 64496 NULL
168873 +enable_so_read_status_fndecl_64497 read_status fndecl 0 64497 NULL
168874 +enable_so_ext_ramdisk_size_boot_params_64498 ext_ramdisk_size boot_params 0 64498 NULL
168875 +enable_so_iwl_mvm_coex_dump_mbox_old_fndecl_64500 iwl_mvm_coex_dump_mbox_old fndecl 0-3 64500 NULL
168876 +enable_so_num_def_tx_descs_octeon_config_64501 num_def_tx_descs octeon_config 0 64501 NULL
168877 +enable_so_ds3000_writeFW_fndecl_64503 ds3000_writeFW fndecl 0 64503 NULL
168878 +enable_so_dvb_demux_ioctl_fndecl_64510 dvb_demux_ioctl fndecl 2 64510 NULL
168879 +enable_so_fc_plogi_get_maxframe_fndecl_64511 fc_plogi_get_maxframe fndecl 0 64511 NULL
168880 +enable_so_insize_cros_ec_command_64521 insize cros_ec_command 0 64521 NULL
168881 +enable_so_hdr_len_st_proto_s_64523 hdr_len st_proto_s 0 64523 NULL
168882 +enable_so_tun_alloc_skb_fndecl_64531 tun_alloc_skb fndecl 4-3-2 64531 NULL
168883 +enable_so_txq_cnt_tg3_64539 txq_cnt tg3 0 64539 NULL
168884 +enable_so_cfg80211_process_disassoc_fndecl_64540 cfg80211_process_disassoc fndecl 3 64540 NULL
168885 +enable_so_fw_dump_tmplt_size_scsi_qla_host_64541 fw_dump_tmplt_size scsi_qla_host 0 64541 NULL
168886 +enable_so_phys_size_ntb_transport_mw_64544 phys_size ntb_transport_mw 0 64544 NULL
168887 +enable_so_ath10k_p2p_noa_ie_len_compute_fndecl_64548 ath10k_p2p_noa_ie_len_compute fndecl 0 64548 NULL
168888 +enable_so_minix_V1_raw_inode_fndecl_64554 minix_V1_raw_inode fndecl 2 64554 NULL
168889 +enable_so_num_channels_sh_tmu_device_64556 num_channels sh_tmu_device 0 64556 NULL
168890 +enable_so_xfs_zero_last_block_fndecl_64560 xfs_zero_last_block fndecl 3 64560 NULL nohasharray
168891 +enable_so_valid_tty_audit_buf_64560 valid tty_audit_buf 0 64560 &enable_so_xfs_zero_last_block_fndecl_64560
168892 +enable_so_stv090x_write_regs_fndecl_64562 stv090x_write_regs fndecl 4 64562 NULL
168893 +enable_so_hiddev_compat_ioctl_fndecl_64564 hiddev_compat_ioctl fndecl 2 64564 NULL
168894 +enable_so_blockshift_nand_flash_dev_64570 blockshift nand_flash_dev 0 64570 NULL
168895 +enable_so_offset_seg_buf_64571 offset seg_buf 0 64571 NULL
168896 +enable_so___fprog_create_fndecl_64572 __fprog_create fndecl 2 64572 NULL
168897 +enable_so_rq_enc_pages_num_rpc_rqst_64573 rq_enc_pages_num rpc_rqst 0 64573 NULL
168898 +enable_so_mirrors_p1_ore_layout_64575 mirrors_p1 ore_layout 0 64575 NULL nohasharray
168899 +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
168900 +enable_so_erst_read_fndecl_64575 erst_read fndecl 0-1 64575 &enable_so_cdc_ncm_align_tail_fndecl_64575
168901 +enable_so_hfsplus_iget_fndecl_64576 hfsplus_iget fndecl 2 64576 NULL
168902 +enable_so_len_fuse_copy_state_64585 len fuse_copy_state 0 64585 NULL nohasharray
168903 +enable_so_long_len_fat_ioctl_filldir_callback_64585 long_len fat_ioctl_filldir_callback 0 64585 &enable_so_len_fuse_copy_state_64585
168904 +enable_so_blocks_per_seg_f2fs_sb_info_64587 blocks_per_seg f2fs_sb_info 0 64587 NULL
168905 +enable_so_udl_gem_create_fndecl_64590 udl_gem_create fndecl 3 64590 NULL
168906 +enable_so_alloc_context_fndecl_64592 alloc_context fndecl 1 64592 NULL
168907 +enable_so_isp1362_urb_dequeue_fndecl_64595 isp1362_urb_dequeue fndecl 3 64595 NULL
168908 +enable_so_of_count_phandle_with_args_fndecl_64600 of_count_phandle_with_args fndecl 0 64600 NULL nohasharray
168909 +enable_so_nr_tlb_entries_omap_iommu_64600 nr_tlb_entries omap_iommu 0 64600 &enable_so_of_count_phandle_with_args_fndecl_64600
168910 +enable_so_logical_offset_btrfs_ioctl_same_extent_info_64608 logical_offset btrfs_ioctl_same_extent_info 0 64608 NULL
168911 +enable_so_gpr_set_fndecl_64611 gpr_set fndecl 3-4 64611 NULL
168912 +enable_so_s_gdb_count_ext4_sb_info_64617 s_gdb_count ext4_sb_info 0 64617 NULL
168913 +enable_so_o2hb_setup_one_bio_fndecl_64622 o2hb_setup_one_bio fndecl 4 64622 NULL
168914 +enable_so_xfs_iext_remove_indirect_fndecl_64624 xfs_iext_remove_indirect fndecl 3 64624 NULL
168915 +enable_so_s_inodes_per_group_ext3_sb_info_64627 s_inodes_per_group ext3_sb_info 0 64627 NULL
168916 +enable_so_objio_alloc_io_state_fndecl_64631 objio_alloc_io_state fndecl 6-7 64631 NULL
168917 +enable_so_bsg_job_done_fndecl_64640 bsg_job_done fndecl 3 64640 NULL
168918 +enable_so_netlink_alloc_large_skb_fndecl_64652 netlink_alloc_large_skb fndecl 1 64652 NULL
168919 +enable_so_kmp_init_fndecl_64654 kmp_init fndecl 2 64654 NULL
168920 +enable_so_num_allowed_vlans_qlcnic_sriov_64661 num_allowed_vlans qlcnic_sriov 0 64661 NULL
168921 +enable_so_cnic_init_id_tbl_fndecl_64665 cnic_init_id_tbl fndecl 3-2 64665 NULL
168922 +enable_so_usnic_ib_reg_mr_fndecl_64668 usnic_ib_reg_mr fndecl 2-3 64668 NULL nohasharray
168923 +enable_so_jbd2_alloc_fndecl_64668 jbd2_alloc fndecl 1 64668 &enable_so_usnic_ib_reg_mr_fndecl_64668
168924 +enable_so_maximum_num_containers_aac_dev_64672 maximum_num_containers aac_dev 0 64672 NULL
168925 +enable_so_isr_commands_read_fndecl_64677 isr_commands_read fndecl 3 64677 NULL nohasharray
168926 +enable_so_cciss_update_drive_info_fndecl_64677 cciss_update_drive_info fndecl 2 64677 &enable_so_isr_commands_read_fndecl_64677
168927 +enable_so_mapbase_uart_port_64681 mapbase uart_port 0 64681 NULL
168928 +enable_so_sys_flistxattr_fndecl_64684 sys_flistxattr fndecl 3 64684 NULL
168929 +enable_so_num_fields_ima_template_desc_64688 num_fields ima_template_desc 0 64688 NULL
168930 +enable_so_tkip_cm_active_orinoco_private_64689 tkip_cm_active orinoco_private 0 64689 NULL
168931 +enable_so_srp_sg_tablesize_vardecl_ib_srp_c_64692 srp_sg_tablesize vardecl_ib_srp.c 0 64692 NULL
168932 +enable_so_size_cramfs_inode_64704 size cramfs_inode 0 64704 NULL
168933 +enable_so_lbs_rdrf_read_fndecl_64708 lbs_rdrf_read fndecl 3 64708 NULL
168934 +enable_so_alloc_bytenr_btrfs_root_64709 alloc_bytenr btrfs_root 0 64709 NULL
168935 +enable_so_isdn_ppp_fill_rq_fndecl_64711 isdn_ppp_fill_rq fndecl 2 64711 NULL
168936 +enable_so_base_cmdline_vardecl_dma_contiguous_c_64713 base_cmdline vardecl_dma-contiguous.c 0 64713 NULL
168937 +enable_so_rcount_x25_asy_64715 rcount x25_asy 0 64715 NULL
168938 +enable_so_width_drm_framebuffer_64716 width drm_framebuffer 0 64716 NULL
168939 +enable_so_spc_modesense_long_blockdesc_fndecl_64717 spc_modesense_long_blockdesc fndecl 0 64717 NULL
168940 +enable_so_vs_bsize_vxfs_sb_64718 vs_bsize vxfs_sb 0 64718 NULL
168941 +enable_so_mt7601u_dma_fw_fndecl_64719 mt7601u_dma_fw fndecl 4 64719 NULL
168942 +enable_so_rx_defrag_decrypt_failed_read_fndecl_64720 rx_defrag_decrypt_failed_read fndecl 3 64720 NULL
168943 +enable_so_size_host_cmd_ds_command_64722 size host_cmd_ds_command 0 64722 NULL
168944 +enable_so_max_touch_num_goodix_ts_data_64725 max_touch_num goodix_ts_data 0 64725 NULL
168945 +enable_so_xfs_iext_add_fndecl_64733 xfs_iext_add fndecl 3 64733 NULL
168946 +enable_so_last_mgmt_tx_frame_len_wmi_64739 last_mgmt_tx_frame_len wmi 0 64739 NULL
168947 +enable_so_se_io_cb_fndecl_64742 se_io_cb fndecl 3 64742 NULL
168948 +enable_so_ulite_assign_fndecl_64744 ulite_assign fndecl 3-2 64744 NULL
168949 +enable_so_net_frag_header_len_inet_connection_sock_af_ops_64745 net_frag_header_len inet_connection_sock_af_ops 0 64745 NULL
168950 +enable_so_layout_leb_in_gaps_fndecl_64749 layout_leb_in_gaps fndecl 0 64749 NULL
168951 +enable_so_pcpu_build_alloc_info_fndecl_64752 pcpu_build_alloc_info fndecl 3-2-1 64752 NULL
168952 +enable_so_create_pid_cachep_fndecl_64753 create_pid_cachep fndecl 1 64753 NULL
168953 +enable_so_ocfs2_fill_initial_dirents_fndecl_64755 ocfs2_fill_initial_dirents fndecl 4 64755 NULL nohasharray
168954 +enable_so_iio_device_alloc_fndecl_64755 iio_device_alloc fndecl 1 64755 &enable_so_ocfs2_fill_initial_dirents_fndecl_64755
168955 +enable_so_datasz_memelfnote_64760 datasz memelfnote 0 64760 NULL
168956 +enable_so_raid_disk_mdp_device_descriptor_s_64762 raid_disk mdp_device_descriptor_s 0 64762 NULL
168957 +enable_so_ima_appraise_measurement_fndecl_64769 ima_appraise_measurement fndecl 6 64769 NULL
168958 +enable_so_jfs_get_block_fndecl_64772 jfs_get_block fndecl 2 64772 NULL
168959 +enable_so_at24_eeprom_write_fndecl_64775 at24_eeprom_write fndecl 3-0-4 64775 NULL nohasharray
168960 +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
168961 +enable_so_ib_qib_max_srq_sges_vardecl_64786 ib_qib_max_srq_sges vardecl 0 64786 NULL
168962 +enable_so_tun_hlen_ip_tunnel_64791 tun_hlen ip_tunnel 0 64791 NULL
168963 +enable_so_fw_size_sst_pdata_64793 fw_size sst_pdata 0 64793 NULL
168964 +enable_so_c2_mq_req_init_fndecl_64795 c2_mq_req_init fndecl 4 64795 NULL
168965 +enable_so_mac80211_format_buffer_fndecl_64801 mac80211_format_buffer fndecl 2 64801 NULL
168966 +enable_so__update_journal_header_block_fndecl_64803 _update_journal_header_block fndecl 2 64803 NULL nohasharray
168967 +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
168968 +enable_so_pmsg_size_ramoops_context_64804 pmsg_size ramoops_context 0 64804 NULL
168969 +enable_so_tx_headroom_nci_dev_64805 tx_headroom nci_dev 0 64805 NULL
168970 +enable_so_alloc_align_snd_array_64806 alloc_align snd_array 0 64806 NULL
168971 +enable_so_fpa_get_fndecl_64809 fpa_get fndecl 3-4 64809 NULL
168972 +enable_so_il_dbgfs_fh_reg_read_fndecl_64818 il_dbgfs_fh_reg_read fndecl 3 64818 NULL
168973 +enable_so_iwl_dbgfs_scan_ant_rxchain_read_fndecl_64820 iwl_dbgfs_scan_ant_rxchain_read fndecl 3 64820 NULL
168974 +enable_so_reg_list_size_amdgpu_rlc_64826 reg_list_size amdgpu_rlc 0 64826 NULL
168975 +enable_so_atr_csum_cm4000_dev_64828 atr_csum cm4000_dev 0 64828 NULL
168976 +enable_so_ocfs2_xattr_index_block_find_fndecl_64835 ocfs2_xattr_index_block_find fndecl 0 64835 NULL
168977 +enable_so_lprocfs_write_frac_helper_fndecl_64841 lprocfs_write_frac_helper fndecl 2 64841 NULL
168978 +enable_so_edma_prep_dma_cyclic_fndecl_64842 edma_prep_dma_cyclic fndecl 4-3 64842 NULL
168979 +enable_so_iov_iter_truncate_fndecl_64844 iov_iter_truncate fndecl 2 64844 NULL
168980 +enable_so_smsc75xx_change_mtu_fndecl_64845 smsc75xx_change_mtu fndecl 2 64845 NULL nohasharray
168981 +enable_so_ngpio_gpio_chip_64845 ngpio gpio_chip 0 64845 &enable_so_smsc75xx_change_mtu_fndecl_64845
168982 +enable_so__send_fndecl_64846 _send fndecl 3 64846 NULL nohasharray
168983 +enable_so_ath6kl_wmi_sta_bmiss_enhance_cmd_fndecl_64846 ath6kl_wmi_sta_bmiss_enhance_cmd fndecl 2 64846 &enable_so__send_fndecl_64846
168984 +enable_so__req_append_segment_fndecl_64852 _req_append_segment fndecl 2 64852 NULL nohasharray
168985 +enable_so_tool_dbfn_write_fndecl_64852 tool_dbfn_write fndecl 3 64852 &enable_so__req_append_segment_fndecl_64852
168986 +enable_so_log_max_len_client_hdr_64853 log_max_len client_hdr 0 64853 NULL nohasharray
168987 +enable_so_E_info_CARD_PROPERTIES_64853 E_info CARD_PROPERTIES 0 64853 &enable_so_log_max_len_client_hdr_64853
168988 +enable_so_bud_wbuf_callback_fndecl_64863 bud_wbuf_callback fndecl 3 64863 NULL
168989 +enable_so_rh_inc_fndecl_64864 rh_inc fndecl 2 64864 NULL
168990 +enable_so_raw_recvmsg_fndecl_64866 raw_recvmsg fndecl 3 64866 NULL nohasharray
168991 +enable_so_len_discard_entry_64866 len discard_entry 0 64866 &enable_so_raw_recvmsg_fndecl_64866
168992 +enable_so_p_linux_binprm_64868 p linux_binprm 0 64868 NULL
168993 +enable_so_sc_only_mode_read_fndecl_64871 sc_only_mode_read fndecl 3 64871 NULL
168994 +enable_so_rq_count_enic_64875 rq_count enic 0 64875 NULL
168995 +enable_so_tx_ring_size_fe_priv_64876 tx_ring_size fe_priv 0 64876 NULL
168996 +enable_so_tx_max_frame_ntb_transport_qp_64878 tx_max_frame ntb_transport_qp 0 64878 NULL
168997 +enable_so_logfs_read_meta_inode_fndecl_64880 logfs_read_meta_inode fndecl 2 64880 NULL
168998 +enable_so_align_nvkm_gpuobj_class_64885 align nvkm_gpuobj_class 0 64885 NULL nohasharray
168999 +enable_so_vfs_listxattr_fndecl_64885 vfs_listxattr fndecl 0 64885 &enable_so_align_nvkm_gpuobj_class_64885
169000 +enable_so_snd_pcm_hw_param_max_fndecl_64887 snd_pcm_hw_param_max fndecl 4 64887 NULL nohasharray
169001 +enable_so_qs_in_channels_hdspm_64887 qs_in_channels hdspm 0 64887 &enable_so_snd_pcm_hw_param_max_fndecl_64887 nohasharray
169002 +enable_so_xbfi_blockcount_xfs_bmap_free_item_64887 xbfi_blockcount xfs_bmap_free_item 0 64887 &enable_so_qs_in_channels_hdspm_64887
169003 +enable_so_ks8995_write_fndecl_64889 ks8995_write fndecl 4 64889 NULL nohasharray
169004 +enable_so_count_ioctl_gntalloc_alloc_gref_64889 count ioctl_gntalloc_alloc_gref 0 64889 &enable_so_ks8995_write_fndecl_64889
169005 +enable_so_reserve_sfa_size_fndecl_64893 reserve_sfa_size fndecl 2 64893 NULL
169006 +enable_so_mpeglinesize_vardecl_cx23885_417_c_64898 mpeglinesize vardecl_cx23885-417.c 0 64898 NULL nohasharray
169007 +enable_so_provide_user_output_fndecl_64898 provide_user_output fndecl 3 64898 &enable_so_mpeglinesize_vardecl_cx23885_417_c_64898
169008 +enable_so_f_audio_buffer_alloc_fndecl_64901 f_audio_buffer_alloc fndecl 1 64901 NULL
169009 +enable_so_unuse_pte_range_fndecl_64903 unuse_pte_range fndecl 3 64903 NULL
169010 +enable_so_maxctl_brcmf_bus_64907 maxctl brcmf_bus 0 64907 NULL nohasharray
169011 +enable_so_ath10k_read_wmi_services_fndecl_64907 ath10k_read_wmi_services fndecl 3 64907 &enable_so_maxctl_brcmf_bus_64907
169012 +enable_so_data_size_event_reader_64909 data_size event_reader 0 64909 NULL
169013 +enable_so_nmsgs_i2c_rdwr_ioctl_data_64911 nmsgs i2c_rdwr_ioctl_data 0 64911 NULL
169014 +enable_so_next_block_for_io_dio_submit_64914 next_block_for_io dio_submit 0 64914 NULL
169015 +enable_so_rd_size_uhid_create_req_64916 rd_size uhid_create_req 0 64916 NULL
169016 +enable_so_dma_attach_fndecl_64917 dma_attach fndecl 8-7-10-5-6 64917 NULL
169017 +enable_so_roccat_read_fndecl_64918 roccat_read fndecl 3 64918 NULL
169018 +enable_so_nl80211_send_mlme_event_fndecl_64920 nl80211_send_mlme_event fndecl 4 64920 NULL
169019 +enable_so_nvkm_subdev_create__fndecl_64924 nvkm_subdev_create_ fndecl 7 64924 NULL
169020 +enable_so_ath10k_wmi_tlv_op_gen_bcn_tmpl_fndecl_64938 ath10k_wmi_tlv_op_gen_bcn_tmpl fndecl 8 64938 NULL nohasharray
169021 +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
169022 +enable_so_pci_iov_virtfn_bus_fndecl_64949 pci_iov_virtfn_bus fndecl 0-2 64949 NULL
169023 +enable_so_ieee80211_tdls_add_ies_fndecl_64954 ieee80211_tdls_add_ies fndecl 8 64954 NULL
169024 +enable_so_status_spi_message_64956 status spi_message 0 64956 NULL
169025 +enable_so_BlockCount_DAC960_Command_64957 BlockCount DAC960_Command 0 64957 NULL
169026 +enable_so_dvb_ca_write_fndecl_64960 dvb_ca_write fndecl 3 64960 NULL
169027 +enable_so_count_acpi_processor_power_64969 count acpi_processor_power 0 64969 NULL
169028 +enable_so_len_ctrl_queue_64975 len ctrl_queue 0 64975 NULL
169029 +enable_so_io_init_fndecl_64981 io_init fndecl 2 64981 NULL
169030 +enable_so_rp2_alloc_ports_fndecl_64987 rp2_alloc_ports fndecl 0-1 64987 NULL nohasharray
169031 +enable_so_hq_size_cnic_local_64987 hq_size cnic_local 0 64987 &enable_so_rp2_alloc_ports_fndecl_64987
169032 +enable_so_tx_frag_mpdu_alloc_failed_read_fndecl_64988 tx_frag_mpdu_alloc_failed_read fndecl 3 64988 NULL
169033 +enable_so_maxTxCredits_edgeport_port_64991 maxTxCredits edgeport_port 0 64991 NULL
169034 +enable_so_UpdateRegs_fndecl_64995 UpdateRegs fndecl 2-3 64995 NULL nohasharray
169035 +enable_so_vt8231_device_add_fndecl_64995 vt8231_device_add fndecl 1 64995 &enable_so_UpdateRegs_fndecl_64995
169036 +enable_so_access_length_acpi_connection_info_65000 access_length acpi_connection_info 0 65000 NULL
169037 +enable_so_mask_cbuf_65001 mask cbuf 0 65001 NULL
169038 +enable_so_cc2520_read_rxfifo_fndecl_65006 cc2520_read_rxfifo fndecl 3 65006 NULL
169039 +enable_so_netif_get_num_default_rss_queues_fndecl_65008 netif_get_num_default_rss_queues fndecl 0 65008 NULL
169040 +enable_so_actual_size_saa7164_user_buffer_65010 actual_size saa7164_user_buffer 0 65010 NULL
169041 +enable_so_compat_sys_process_vm_writev_fndecl_65017 compat_sys_process_vm_writev fndecl 5-3 65017 NULL
169042 +enable_so_cmd_len_sg_io_hdr_65018 cmd_len sg_io_hdr 0 65018 NULL
169043 +enable_so_print_page_owner_fndecl_65020 print_page_owner fndecl 2 65020 NULL
169044 +enable_so_dfs_file_write_fndecl_65023 dfs_file_write fndecl 3 65023 NULL
169045 +enable_so_intr_size_usb_pcwd_private_65024 intr_size usb_pcwd_private 0 65024 NULL
169046 +enable_so_au8522_rc_read_fndecl_65026 au8522_rc_read fndecl 5 65026 NULL
169047 +enable_so_ocfs2_block_group_fill_fndecl_65027 ocfs2_block_group_fill fndecl 4 65027 NULL
169048 +enable_so_prev_length_deflate_state_65029 prev_length deflate_state 0 65029 NULL
169049 +enable_so_arch_add_memory_fndecl_65052 arch_add_memory fndecl 3-2 65052 NULL
169050 +enable_so_brcmf_cfg80211_vndr_cmds_dcmd_handler_fndecl_65059 brcmf_cfg80211_vndr_cmds_dcmd_handler fndecl 4 65059 NULL
169051 +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
169052 +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
169053 +enable_so_flag_node_footer_65063 flag node_footer 0 65063 NULL
169054 +enable_so_ResidualCnt__ErrorInfo_struct_65074 ResidualCnt _ErrorInfo_struct 0 65074 NULL
169055 +enable_so_mmc_test_transfer_fndecl_65076 mmc_test_transfer fndecl 6-5-3 65076 NULL
169056 +enable_so_xfs_growfs_rt_alloc_fndecl_65079 xfs_growfs_rt_alloc fndecl 2-3 65079 NULL
169057 +enable_so_SyS_bpf_fndecl_65081 SyS_bpf fndecl 3 65081 NULL
169058 +enable_so_frame_size_pwc_device_65084 frame_size pwc_device 0 65084 NULL
169059 +enable_so_fcoe_len_fcoe_rport_65085 fcoe_len fcoe_rport 0 65085 NULL
169060 +enable_so_width_cx88_core_65086 width cx88_core 0 65086 NULL nohasharray
169061 +enable_so_capi_ttyminors_vardecl_capi_c_65086 capi_ttyminors vardecl_capi.c 0 65086 &enable_so_width_cx88_core_65086
169062 +enable_so_num_tx_bds_bcmgenet_priv_65087 num_tx_bds bcmgenet_priv 0 65087 NULL
169063 +enable_so_size_ion_test_rw_data_65088 size ion_test_rw_data 0 65088 NULL
169064 +enable_so_queue_depth_se_node_acl_65089 queue_depth se_node_acl 0 65089 NULL
169065 +enable_so_max_write_send_sge_ocrdma_mbx_query_config_65090 max_write_send_sge ocrdma_mbx_query_config 0 65090 NULL
169066 +enable_so_sco_send_frame_fndecl_65092 sco_send_frame fndecl 3 65092 NULL
169067 +enable_so_fat_write_end_fndecl_65095 fat_write_end fndecl 5 65095 NULL nohasharray
169068 +enable_so_rtw_android_get_macaddr_fndecl_65095 rtw_android_get_macaddr fndecl 0 65095 &enable_so_fat_write_end_fndecl_65095
169069 +enable_so_cfg_num_qs_be_adapter_65098 cfg_num_qs be_adapter 0 65098 NULL
169070 +enable_so_ecryptfs_write_begin_fndecl_65099 ecryptfs_write_begin fndecl 3 65099 NULL
169071 +enable_so_ieee802154_hdr_push_fndecl_65100 ieee802154_hdr_push fndecl 0 65100 NULL nohasharray
169072 +enable_so_max_xri_lpfc_max_cfg_param_65100 max_xri lpfc_max_cfg_param 0 65100 &enable_so_ieee802154_hdr_push_fndecl_65100
169073 +enable_so_sndsize_sock_xprt_65105 sndsize sock_xprt 0 65105 NULL nohasharray
169074 +enable_so_iwl_dbgfs_bt_notif_read_fndecl_65105 iwl_dbgfs_bt_notif_read fndecl 3 65105 &enable_so_sndsize_sock_xprt_65105
169075 +enable_so_x25_recvmsg_fndecl_65106 x25_recvmsg fndecl 3 65106 NULL nohasharray
169076 +enable_so_ocfs2_dx_dir_rebalance_fndecl_65106 ocfs2_dx_dir_rebalance fndecl 7-0 65106 &enable_so_x25_recvmsg_fndecl_65106
169077 +enable_so_ntb_mw_count_fndecl_65108 ntb_mw_count fndecl 0 65108 NULL
169078 +enable_so_nilfs_cpfile_is_snapshot_fndecl_65110 nilfs_cpfile_is_snapshot fndecl 2 65110 NULL
169079 +enable_so_mmc_test_seq_read_perf_fndecl_65111 mmc_test_seq_read_perf fndecl 2 65111 NULL
169080 +enable_so_hsi_alloc_controller_fndecl_65113 hsi_alloc_controller fndecl 1 65113 NULL nohasharray
169081 +enable_so_mega_n_to_m_fndecl_65113 mega_n_to_m fndecl 0 65113 &enable_so_hsi_alloc_controller_fndecl_65113
169082 +enable_so_fat_alloc_new_dir_fndecl_65115 fat_alloc_new_dir fndecl 0 65115 NULL
169083 +enable_so_amdgpu_bo_list_set_fndecl_65117 amdgpu_bo_list_set fndecl 5 65117 NULL
169084 +enable_so_wpa_ie_len_libipw_device_65120 wpa_ie_len libipw_device 0 65120 NULL
169085 +enable_so_scrub_extent_for_parity_fndecl_65123 scrub_extent_for_parity fndecl 3-2-4 65123 NULL
169086 +enable_so_exynos_drm_init_buf_fndecl_65130 exynos_drm_init_buf fndecl 2 65130 NULL
169087 +enable_so_keyctl_instantiate_key_fndecl_65132 keyctl_instantiate_key fndecl 3 65132 NULL
169088 +enable_so_qib_rcvhdrentsize_vardecl_qib_iba7322_c_65133 qib_rcvhdrentsize vardecl_qib_iba7322.c 0 65133 NULL
169089 +enable_so_do_ip_setsockopt_fndecl_65135 do_ip_setsockopt fndecl 5 65135 NULL
169090 +enable_so_kimage_file_alloc_init_fndecl_65136 kimage_file_alloc_init fndecl 5 65136 NULL
169091 +enable_so_num_pipe_drm_psb_private_65138 num_pipe drm_psb_private 0 65138 NULL
169092 +enable_so_ixgbe_dbg_netdev_ops_read_fndecl_65148 ixgbe_dbg_netdev_ops_read fndecl 3 65148 NULL
169093 +enable_so_depth_sh_veu_format_65150 depth sh_veu_format 0 65150 NULL
169094 +enable_so___recover_dot_dentries_fndecl_65151 __recover_dot_dentries fndecl 2 65151 NULL
169095 +enable_so_piocnt_qib_ctxtdata_65161 piocnt qib_ctxtdata 0 65161 NULL nohasharray
169096 +enable_so_nexthdrlen_lowpan_nhc_65161 nexthdrlen lowpan_nhc 0 65161 &enable_so_piocnt_qib_ctxtdata_65161 nohasharray
169097 +enable_so_dma_txsize_vardecl_stmmac_main_c_65161 dma_txsize vardecl_stmmac_main.c 0 65161 &enable_so_nexthdrlen_lowpan_nhc_65161
169098 +enable_so_mwifiex_cmd_append_vsie_tlv_fndecl_65164 mwifiex_cmd_append_vsie_tlv fndecl 0 65164 NULL
169099 +enable_so_ccp_get_dm_area_fndecl_65170 ccp_get_dm_area fndecl 4 65170 NULL
169100 +enable_so___ext4_block_zero_page_range_fndecl_65173 __ext4_block_zero_page_range fndecl 3 65173 NULL
169101 +enable_so_crb_read_netxen_adapter_65178 crb_read netxen_adapter 0 65178 NULL
169102 +enable_so_xfs_rtget_summary_fndecl_65179 xfs_rtget_summary fndecl 4-3 65179 NULL
169103 +enable_so_usb_gadget_get_string_fndecl_65180 usb_gadget_get_string fndecl 0 65180 NULL
169104 +enable_so_fat_total_sect_fat_bios_param_block_65184 fat_total_sect fat_bios_param_block 0 65184 NULL
169105 +enable_so_svc_tcp_restore_pages_fndecl_65189 svc_tcp_restore_pages fndecl 0 65189 NULL
169106 +enable_so_free_blk_ocfs2_cached_block_free_65195 free_blk ocfs2_cached_block_free 0 65195 NULL
169107 +enable_so_privacy_invoked_libipw_device_65199 privacy_invoked libipw_device 0 65199 NULL nohasharray
169108 +enable_so_get_fdb_entries_fndecl_65199 get_fdb_entries fndecl 3 65199 &enable_so_privacy_invoked_libipw_device_65199
169109 +enable_so_xfs_bmap_shift_extents_fndecl_65200 xfs_bmap_shift_extents fndecl 4 65200 NULL
169110 +enable_so_NumIdentPartitions_cfi_intelext_regioninfo_65201 NumIdentPartitions cfi_intelext_regioninfo 0 65201 NULL
169111 +enable_so_SyS_sched_getattr_fndecl_65202 SyS_sched_getattr fndecl 3 65202 NULL
169112 +enable_so_ackr_win_top_rxrpc_call_65205 ackr_win_top rxrpc_call 0 65205 NULL
169113 +enable_so_height_dt3155_priv_65206 height dt3155_priv 0 65206 NULL nohasharray
169114 +enable_so_fat_shortname2uni_fndecl_65206 fat_shortname2uni fndecl 0 65206 &enable_so_height_dt3155_priv_65206
169115 +enable_so_aper_size_radeon_mc_65212 aper_size radeon_mc 0 65212 NULL
169116 +enable_so_get_regs_len_ethtool_ops_65213 get_regs_len ethtool_ops 0 65213 NULL
169117 +enable_so_ib_uverbs_create_srq_fndecl_65216 ib_uverbs_create_srq fndecl 3 65216 NULL
169118 +enable_so_i40evf_change_mtu_fndecl_65220 i40evf_change_mtu fndecl 2 65220 NULL
169119 +enable_so_maxresp_sz_nfsd4_channel_attrs_65221 maxresp_sz nfsd4_channel_attrs 0 65221 NULL
169120 +enable_so_read_gssp_fndecl_65224 read_gssp fndecl 3 65224 NULL
169121 +enable_so_sci_rxfill_fndecl_65226 sci_rxfill fndecl 0 65226 NULL
169122 +enable_so_ocfs2_xattr_bucket_get_name_value_fndecl_65230 ocfs2_xattr_bucket_get_name_value fndecl 0 65230 NULL
169123 +enable_so_iscsi_iser_recv_fndecl_65231 iscsi_iser_recv fndecl 4 65231 NULL
169124 +enable_so_fb_max_height_vmw_private_65243 fb_max_height vmw_private 0 65243 NULL
169125 +enable_so_ext4_da_write_inline_data_begin_fndecl_65244 ext4_da_write_inline_data_begin fndecl 4-3 65244 NULL nohasharray
169126 +enable_so_word3_alx_rrd_65244 word3 alx_rrd 0 65244 &enable_so_ext4_da_write_inline_data_begin_fndecl_65244
169127 +enable_so_range_end_writeback_control_65245 range_end writeback_control 0 65245 NULL
169128 +enable_so_bytes_dump_iterator_65249 bytes dump_iterator 0 65249 NULL
169129 +enable_so_cx24116_writeregN_fndecl_65252 cx24116_writeregN fndecl 4 65252 NULL
169130 +enable_so_ctx_blk_size_cnic_eth_dev_65262 ctx_blk_size cnic_eth_dev 0 65262 NULL
169131 +enable_so_tool_peer_spad_read_fndecl_65263 tool_peer_spad_read fndecl 3 65263 NULL
169132 +enable_so_get_dir_index_using_offset_fndecl_65267 get_dir_index_using_offset fndecl 0-7 65267 NULL
169133 +enable_so_ubi_self_check_all_ff_fndecl_65268 ubi_self_check_all_ff fndecl 4 65268 NULL
169134 +enable_so_portnames_read_fndecl_65269 portnames_read fndecl 3 65269 NULL
169135 +enable_so_m_ialloc_blks_xfs_mount_65284 m_ialloc_blks xfs_mount 0 65284 NULL
169136 +enable_so_size_t4_rq_65285 size t4_rq 0 65285 NULL
169137 +enable_so_update_stat_data_fndecl_65289 update_stat_data fndecl 3 65289 NULL
169138 +enable_so_hpfs_translate_name_fndecl_65290 hpfs_translate_name fndecl 3 65290 NULL
169139 +enable_so_wear_eb_count_vardecl_nandsim_c_65291 wear_eb_count vardecl_nandsim.c 0 65291 NULL
169140 +enable_so_usb_stor_probe2_fndecl_65298 usb_stor_probe2 fndecl 0 65298 NULL nohasharray
169141 +enable_so_rt2x00debug_write_rfcsr_fndecl_65298 rt2x00debug_write_rfcsr fndecl 3 65298 &enable_so_usb_stor_probe2_fndecl_65298
169142 +enable_so_txfifo_size_lpuart_port_65300 txfifo_size lpuart_port 0 65300 NULL nohasharray
169143 +enable_so_ntfs_bmap_fndecl_65300 ntfs_bmap fndecl 2 65300 &enable_so_txfifo_size_lpuart_port_65300
169144 +enable_so_memory_lseek_fndecl_65306 memory_lseek fndecl 2 65306 NULL
169145 +enable_so_in_param_mlx4_vhcr_65311 in_param mlx4_vhcr 0 65311 NULL
169146 +enable_so_mt312_read_fndecl_65312 mt312_read fndecl 4 65312 NULL
169147 +enable_so_max_pfn_vardecl_65317 max_pfn vardecl 0 65317 NULL
169148 +enable_so_ExtPageLength__MPI2_CONFIG_REPLY_65319 ExtPageLength _MPI2_CONFIG_REPLY 0 65319 NULL
169149 +enable_so_info_arc_emac_bd_65321 info arc_emac_bd 0 65321 NULL
169150 +enable_so_dm_get_reserved_rq_based_ios_fndecl_65322 dm_get_reserved_rq_based_ios fndecl 0 65322 NULL
169151 +enable_so_brcmf_flowring_attach_fndecl_65325 brcmf_flowring_attach fndecl 2 65325 NULL
169152 +enable_so_align_size_hwbus_ops_65327 align_size hwbus_ops 0 65327 NULL
169153 +enable_so_ath10k_wmi_start_scan_tlvs_len_fndecl_65331 ath10k_wmi_start_scan_tlvs_len fndecl 0 65331 NULL
169154 +enable_so_alloc_in_dirband_fndecl_65332 alloc_in_dirband fndecl 2 65332 NULL
169155 +enable_so_panel_count_vbt_r10_65334 panel_count vbt_r10 0 65334 NULL
169156 +enable_so_ldisc_receive_fndecl_65343 ldisc_receive fndecl 4 65343 NULL
169157 +enable_so_ath6kl_endpoint_stats_read_fndecl_65345 ath6kl_endpoint_stats_read fndecl 3 65345 NULL
169158 +enable_so_gss_krb5_cts_crypt_fndecl_65346 gss_krb5_cts_crypt fndecl 3 65346 NULL nohasharray
169159 +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
169160 +enable_so_si476x_radio_fops_read_fndecl_65348 si476x_radio_fops_read fndecl 3 65348 NULL nohasharray
169161 +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
169162 +enable_so_len_rpc_pipe_msg_65361 len rpc_pipe_msg 0 65361 NULL
169163 +enable_so_imm_size_fndecl_65365 imm_size fndecl 0 65365 NULL
169164 +enable_so_dma_out_iguanair_65368 dma_out iguanair 0 65368 NULL nohasharray
169165 +enable_so_add_excluded_extent_fndecl_65368 add_excluded_extent fndecl 3-2 65368 &enable_so_dma_out_iguanair_65368
169166 +enable_so_fbucket_size_qlcnic_filter_hash_65369 fbucket_size qlcnic_filter_hash 0 65369 NULL
169167 +enable_so_drbd_send_command_fndecl_65377 drbd_send_command fndecl 4-6 65377 NULL
169168 +enable_so_nfsd_readv_fndecl_65378 nfsd_readv fndecl 4 65378 NULL
169169 +enable_so_batadv_tvlv_container_ogm_append_fndecl_65383 batadv_tvlv_container_ogm_append fndecl 4 65383 NULL
169170 +enable_so_may_expand_vm_fndecl_65389 may_expand_vm fndecl 2 65389 NULL
169171 +enable_so_max_rx_aggregation_subframes_ieee80211_hw_65391 max_rx_aggregation_subframes ieee80211_hw 0 65391 NULL
169172 +enable_so_ipath_piosize2k_ipath_devdata_65394 ipath_piosize2k ipath_devdata 0 65394 NULL
169173 +enable_so_rcvegrbufsize_qib_devdata_65397 rcvegrbufsize qib_devdata 0 65397 NULL
169174 +enable_so_digital_in_send_atr_req_fndecl_65398 digital_in_send_atr_req fndecl 5 65398 NULL
169175 +enable_so_num_rx_queues_ixgbe_adapter_65402 num_rx_queues ixgbe_adapter 0 65402 NULL
169176 +enable_so_wl12xx_sdio_raw_write_fndecl_65406 wl12xx_sdio_raw_write fndecl 4 65406 NULL nohasharray
169177 +enable_so_rng_dev_read_fndecl_65406 rng_dev_read fndecl 3 65406 &enable_so_wl12xx_sdio_raw_write_fndecl_65406
169178 +enable_so___napi_alloc_skb_fndecl_65409 __napi_alloc_skb fndecl 2 65409 NULL
169179 +enable_so_macb_init_rx_buffer_size_fndecl_65410 macb_init_rx_buffer_size fndecl 2 65410 NULL
169180 +enable_so_lstcon_batch_list_fndecl_65416 lstcon_batch_list fndecl 2 65416 NULL
169181 +enable_so_fat_zeroed_cluster_fndecl_65422 fat_zeroed_cluster fndecl 3-2-0 65422 NULL
169182 +enable_so_fq_trees_log_fq_sched_data_65425 fq_trees_log fq_sched_data 0 65425 NULL nohasharray
169183 +enable_so_free_bud_entry_65425 free bud_entry 0 65425 &enable_so_fq_trees_log_fq_sched_data_65425
169184 +enable_so_block_size_card_cfg_data_65426 block_size card_cfg_data 0 65426 NULL
169185 +enable_so_period_bytes_snd_usb_substream_65430 period_bytes snd_usb_substream 0 65430 NULL
169186 +enable_so_tcp_hdrlen_fndecl_65433 tcp_hdrlen fndecl 0 65433 NULL
169187 +enable_so_data_in_size_mpt3_ioctl_command_65434 data_in_size mpt3_ioctl_command 0 65434 NULL
169188 +enable_so_a2mp_send_fndecl_65436 a2mp_send fndecl 4 65436 NULL
169189 +enable_so_lbs_bcnmiss_write_fndecl_65438 lbs_bcnmiss_write fndecl 3 65438 NULL
169190 +enable_so_rx_rx_pre_complt_read_fndecl_65446 rx_rx_pre_complt_read fndecl 3 65446 NULL
169191 +enable_so_squashfs_cache_init_fndecl_65451 squashfs_cache_init fndecl 3-2 65451 NULL
169192 +enable_so_xfs_dir3_data_block_free_fndecl_65456 xfs_dir3_data_block_free fndecl 4 65456 NULL
169193 +enable_so_wNtbOutMaxDatagrams_usb_cdc_ncm_ntb_parameters_65459 wNtbOutMaxDatagrams usb_cdc_ncm_ntb_parameters 0 65459 NULL
169194 +enable_so_cfg80211_calculate_bitrate_60g_fndecl_65469 cfg80211_calculate_bitrate_60g fndecl 0 65469 NULL
169195 +enable_so_lfb_base_screen_info_65479 lfb_base screen_info 0 65479 NULL
169196 +enable_so_pci_hotplug_io_size_vardecl_65480 pci_hotplug_io_size vardecl 0 65480 NULL
169197 +enable_so_isoc_size_wa_seg_65482 isoc_size wa_seg 0 65482 NULL
169198 +enable_so_aac_src_ioremap_fndecl_65483 aac_src_ioremap fndecl 2 65483 NULL
169199 +enable_so_logical_tree_mod_root_65499 logical tree_mod_root 0 65499 NULL
169200 +enable_so_xfs_dir2_shrink_inode_fndecl_65502 xfs_dir2_shrink_inode fndecl 2 65502 NULL
169201 +enable_so_bdx_tx_db_init_fndecl_65508 bdx_tx_db_init fndecl 2 65508 NULL
169202 +enable_so_remove_device_fndecl_65513 remove_device fndecl 4 65513 NULL nohasharray
169203 +enable_so_sys_pwritev_fndecl_65513 sys_pwritev fndecl 3 65513 &enable_so_remove_device_fndecl_65513
169204 +enable_so__recv_fndecl_65526 _recv fndecl 0-3 65526 NULL nohasharray
169205 +enable_so_cts_cbc_encrypt_fndecl_65526 cts_cbc_encrypt fndecl 5 65526 &enable_so__recv_fndecl_65526
169206 +enable_so_write_page_nocow_fndecl_65527 write_page_nocow fndecl 2 65527 NULL
169207 +enable_so_size_mei_msg_data_65529 size mei_msg_data 0 65529 NULL
169208 +enable_so_ib_uverbs_get_context_fndecl_65534 ib_uverbs_get_context fndecl 3 65534 NULL nohasharray
169209 +enable_so_connector_write_fndecl_65534 connector_write fndecl 3 65534 &enable_so_ib_uverbs_get_context_fndecl_65534
169210 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
169211 new file mode 100644
169212 index 0000000..17bc0d8
169213 --- /dev/null
169214 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
169215 @@ -0,0 +1,92 @@
169216 +enable_so_spa_set_aux_vdevs_fndecl_746 spa_set_aux_vdevs fndecl 3 746 NULL
169217 +enable_so_zfs_lookup_fndecl_2144 zfs_lookup fndecl 0 2144 NULL
169218 +enable_so_mappedread_fndecl_2627 mappedread fndecl 2 2627 NULL
169219 +enable_so_vdev_disk_dio_alloc_fndecl_2957 vdev_disk_dio_alloc fndecl 1 2957 NULL
169220 +enable_so_nv_alloc_pushpage_spl_fndecl_4286 nv_alloc_pushpage_spl fndecl 2 4286 NULL
169221 +enable_so_zpl_xattr_get_fndecl_4574 zpl_xattr_get fndecl 0 4574 NULL
169222 +enable_so_sa_replace_all_by_template_fndecl_5699 sa_replace_all_by_template fndecl 3 5699 NULL
169223 +enable_so_dmu_write_fndecl_6048 dmu_write fndecl 4-3 6048 NULL
169224 +enable_so_dmu_buf_hold_array_fndecl_6095 dmu_buf_hold_array fndecl 4-3 6095 NULL
169225 +enable_so_update_pages_fndecl_6225 update_pages fndecl 2-3 6225 NULL
169226 +enable_so_bio_nr_pages_fndecl_7117 bio_nr_pages fndecl 0-2 7117 NULL
169227 +enable_so_dmu_buf_hold_array_by_bonus_fndecl_8562 dmu_buf_hold_array_by_bonus fndecl 3-2 8562 NULL
169228 +enable_so_zpios_dmu_write_fndecl_8858 zpios_dmu_write fndecl 4-5 8858 NULL
169229 +enable_so_ddi_copyout_fndecl_9401 ddi_copyout fndecl 3 9401 NULL
169230 +enable_so_avl_numnodes_fndecl_12384 avl_numnodes fndecl 0 12384 NULL
169231 +enable_so_dmu_write_uio_dnode_fndecl_12473 dmu_write_uio_dnode fndecl 3 12473 NULL
169232 +enable_so_dmu_xuio_init_fndecl_12866 dmu_xuio_init fndecl 2 12866 NULL
169233 +enable_so_zpl_read_common_fndecl_14389 zpl_read_common fndecl 0 14389 NULL
169234 +enable_so_dmu_snapshot_realname_fndecl_14632 dmu_snapshot_realname fndecl 4 14632 NULL
169235 +enable_so_kmem_alloc_debug_fndecl_14852 kmem_alloc_debug fndecl 1 14852 NULL
169236 +enable_so_kmalloc_node_nofail_fndecl_15151 kmalloc_node_nofail fndecl 1 15151 NULL
169237 +enable_so_dmu_write_uio_fndecl_16351 dmu_write_uio fndecl 4 16351 NULL
169238 +enable_so_zfs_log_write_fndecl_16524 zfs_log_write fndecl 6-5 16524 NULL
169239 +enable_so_sa_build_layouts_fndecl_16910 sa_build_layouts fndecl 3 16910 NULL
169240 +enable_so_dsl_dir_namelen_fndecl_17053 dsl_dir_namelen fndecl 0 17053 NULL
169241 +enable_so_kcopy_copy_to_user_fndecl_17336 kcopy_copy_to_user fndecl 5 17336 NULL
169242 +enable_so_sa_add_layout_entry_fndecl_17507 sa_add_layout_entry fndecl 3 17507 NULL
169243 +enable_so_sa_attr_table_setup_fndecl_18029 sa_attr_table_setup fndecl 3 18029 NULL
169244 +enable_so_uiocopy_fndecl_18680 uiocopy fndecl 2 18680 NULL
169245 +enable_so_dmu_buf_hold_array_by_dnode_fndecl_19125 dmu_buf_hold_array_by_dnode fndecl 2-3 19125 NULL
169246 +enable_so_zpl_acl_from_xattr_fndecl_21141 zpl_acl_from_xattr fndecl 2 21141 NULL
169247 +enable_so_dsl_pool_tx_assign_init_fndecl_22518 dsl_pool_tx_assign_init fndecl 2 22518 NULL
169248 +enable_so_nvlist_lookup_byte_array_fndecl_22527 nvlist_lookup_byte_array fndecl 0 22527 NULL
169249 +enable_so_sa_replace_all_by_template_locked_fndecl_22533 sa_replace_all_by_template_locked fndecl 3 22533 NULL
169250 +enable_so_tsd_hash_table_init_fndecl_22559 tsd_hash_table_init fndecl 1 22559 NULL
169251 +enable_so_spa_vdev_remove_aux_fndecl_23966 spa_vdev_remove_aux fndecl 4 23966 NULL
169252 +enable_so_zpl_xattr_acl_set_access_fndecl_24129 zpl_xattr_acl_set_access fndecl 4 24129 NULL
169253 +enable_so_dmu_assign_arcbuf_fndecl_24622 dmu_assign_arcbuf fndecl 2 24622 NULL
169254 +enable_so_zap_lookup_norm_fndecl_25166 zap_lookup_norm fndecl 9 25166 NULL
169255 +enable_so_dmu_prealloc_fndecl_25456 dmu_prealloc fndecl 4-3 25456 NULL
169256 +enable_so_kmalloc_nofail_fndecl_26347 kmalloc_nofail fndecl 1 26347 NULL
169257 +enable_so_zfsctl_snapshot_zpath_fndecl_27578 zfsctl_snapshot_zpath fndecl 2 27578 NULL
169258 +enable_so_zpios_dmu_read_fndecl_30015 zpios_dmu_read fndecl 4-5 30015 NULL
169259 +enable_so_splat_write_fndecl_30943 splat_write fndecl 3 30943 NULL
169260 +enable_so_zpl_xattr_get_sa_fndecl_31183 zpl_xattr_get_sa fndecl 0 31183 NULL
169261 +enable_so_dmu_read_uio_fndecl_31467 dmu_read_uio fndecl 4 31467 NULL
169262 +enable_so_zfs_replay_fuids_fndecl_31479 zfs_replay_fuids fndecl 4 31479 NULL
169263 +enable_so_spa_history_log_to_phys_fndecl_31632 spa_history_log_to_phys fndecl 0-1 31632 NULL
169264 +enable_so___zpl_xattr_get_fndecl_32601 __zpl_xattr_get fndecl 0 32601 NULL
169265 +enable_so_proc_copyout_string_fndecl_34049 proc_copyout_string fndecl 2 34049 NULL
169266 +enable_so_nv_alloc_sleep_spl_fndecl_34544 nv_alloc_sleep_spl fndecl 2 34544 NULL
169267 +enable_so_nv_alloc_nosleep_spl_fndecl_34761 nv_alloc_nosleep_spl fndecl 2 34761 NULL
169268 +enable_so_zap_leaf_array_match_fndecl_36922 zap_leaf_array_match fndecl 4 36922 NULL
169269 +enable_so_copyinstr_fndecl_36980 copyinstr fndecl 3 36980 NULL
169270 +enable_so_zpl_xattr_acl_set_default_fndecl_37864 zpl_xattr_acl_set_default fndecl 4 37864 NULL
169271 +enable_so_splat_read_fndecl_38116 splat_read fndecl 3 38116 NULL
169272 +enable_so_sa_setup_fndecl_38756 sa_setup fndecl 4 38756 NULL
169273 +enable_so_vdev_disk_physio_fndecl_39898 vdev_disk_physio fndecl 3 39898 NULL
169274 +enable_so_arc_buf_size_fndecl_39982 arc_buf_size fndecl 0 39982 NULL
169275 +enable_so_kzalloc_nofail_fndecl_40719 kzalloc_nofail fndecl 1 40719 NULL
169276 +enable_so_fuidstr_to_sid_fndecl_40777 fuidstr_to_sid fndecl 4 40777 NULL
169277 +enable_so_vdev_raidz_matrix_reconstruct_fndecl_40852 vdev_raidz_matrix_reconstruct fndecl 2-3 40852 NULL
169278 +enable_so_sa_find_layout_fndecl_40892 sa_find_layout fndecl 4 40892 NULL
169279 +enable_so_zpl_xattr_get_dir_fndecl_41918 zpl_xattr_get_dir fndecl 0 41918 NULL
169280 +enable_so_zfs_sa_get_xattr_fndecl_42600 zfs_sa_get_xattr fndecl 0 42600 NULL
169281 +enable_so_zpl_xattr_acl_set_fndecl_42808 zpl_xattr_acl_set fndecl 4 42808 NULL
169282 +enable_so_xdr_dec_array_fndecl_43091 xdr_dec_array fndecl 5 43091 NULL
169283 +enable_so_dsl_dataset_namelen_fndecl_43136 dsl_dataset_namelen fndecl 0 43136 NULL
169284 +enable_so_kcopy_write_fndecl_43683 kcopy_write fndecl 3 43683 NULL
169285 +enable_so_uiomove_fndecl_44355 uiomove fndecl 2 44355 NULL
169286 +enable_so_dmu_read_fndecl_44418 dmu_read fndecl 4-3 44418 NULL
169287 +enable_so_ddi_copyin_fndecl_44846 ddi_copyin fndecl 3 44846 NULL
169288 +enable_so_kcopy_do_get_fndecl_45061 kcopy_do_get fndecl 5 45061 NULL
169289 +enable_so_copyin_fndecl_45945 copyin fndecl 3 45945 NULL
169290 +enable_so_zil_itx_create_fndecl_46555 zil_itx_create fndecl 2 46555 NULL
169291 +enable_so_dmu_write_uio_dbuf_fndecl_48064 dmu_write_uio_dbuf fndecl 3 48064 NULL
169292 +enable_so_blk_rq_pos_fndecl_48233 blk_rq_pos fndecl 0 48233 NULL
169293 +enable_so_spa_history_write_fndecl_49650 spa_history_write fndecl 3 49650 NULL
169294 +enable_so_kcopy_copy_pages_to_user_fndecl_49823 kcopy_copy_pages_to_user fndecl 3-4 49823 NULL
169295 +enable_so_zfs_log_write_fndecl_50162 zfs_log_write fndecl 6-5 50162 NULL
169296 +enable_so_i_fm_alloc_fndecl_51038 i_fm_alloc fndecl 2 51038 NULL
169297 +enable_so_copyout_fndecl_51409 copyout fndecl 3 51409 NULL
169298 +enable_so_zvol_log_write_fndecl_54898 zvol_log_write fndecl 4-3 54898 NULL
169299 +enable_so_zfs_acl_node_alloc_fndecl_55641 zfs_acl_node_alloc fndecl 1 55641 NULL
169300 +enable_so_get_nvlist_fndecl_56685 get_nvlist fndecl 2 56685 NULL
169301 +enable_so_zprop_get_numprops_fndecl_56820 zprop_get_numprops fndecl 0 56820 NULL
169302 +enable_so_splat_taskq_test4_common_fndecl_59829 splat_taskq_test4_common fndecl 5 59829 NULL
169303 +enable_so_zfs_replay_domain_cnt_fndecl_61399 zfs_replay_domain_cnt fndecl 0 61399 NULL
169304 +enable_so_zpios_write_fndecl_61823 zpios_write fndecl 3 61823 NULL
169305 +enable_so_proc_copyin_string_fndecl_62019 proc_copyin_string fndecl 4 62019 NULL
169306 +enable_so_random_get_pseudo_bytes_fndecl_64611 random_get_pseudo_bytes fndecl 2 64611 NULL
169307 +enable_so_zpios_read_fndecl_64734 zpios_read fndecl 3 64734 NULL
169308 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_ipa.c b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
169309 new file mode 100644
169310 index 0000000..d972178
169311 --- /dev/null
169312 +++ b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
169313 @@ -0,0 +1,1226 @@
169314 +/*
169315 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
169316 + * Licensed under the GPL v2, or (at your option) v3
169317 + *
169318 + * Homepage:
169319 + * https://github.com/ephox-gcc-plugins/size_overflow
169320 + *
169321 + * Documentation:
169322 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
169323 + *
169324 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
169325 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
169326 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
169327 + *
169328 + * Usage:
169329 + * $ make
169330 + * $ make run
169331 + */
169332 +
169333 +#include "size_overflow.h"
169334 +#include <libgen.h>
169335 +
169336 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs);
169337 +
169338 +next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
169339 +static bool global_changed;
169340 +#define PRINT_DATA_FLOW true
169341 +#define NO_PRINT_DATA_FLOW false
169342 +
169343 +static struct cgraph_node_hook_list *function_insertion_hook_holder;
169344 +static struct cgraph_2node_hook_list *node_duplication_hook_holder;
169345 +
169346 +struct cgraph_node *get_cnode(const_tree fndecl)
169347 +{
169348 + gcc_assert(TREE_CODE(fndecl) == FUNCTION_DECL);
169349 +#if BUILDING_GCC_VERSION <= 4005
169350 + return cgraph_get_node((tree)fndecl);
169351 +#else
169352 + return cgraph_get_node(fndecl);
169353 +#endif
169354 +}
169355 +
169356 +static bool compare_next_interesting_functions(next_interesting_function_t cur_node, const char *decl_name, const char *context, unsigned int num)
169357 +{
169358 + // Ignore num without a value
169359 + if (num != NONE_ARGNUM && cur_node->num != num)
169360 + return false;
169361 + if (strcmp(cur_node->context, context))
169362 + return false;
169363 + return !strcmp(cur_node->decl_name, decl_name);
169364 +}
169365 +
169366 +// Return the context of vardecl. If it is in a file scope then the context is vardecl_filebasename
169367 +static const char* get_vardecl_context(const_tree decl)
169368 +{
169369 + expanded_location xloc;
169370 + char *buf, *path;
169371 + const char *bname;
169372 + int len;
169373 +
169374 + xloc = expand_location(DECL_SOURCE_LOCATION(decl));
169375 + gcc_assert(xloc.file);
169376 + path = xstrdup(xloc.file);
169377 + bname = basename(path);
169378 +
169379 + len = asprintf(&buf, "vardecl_%s", bname);
169380 + gcc_assert(len > 0);
169381 + return buf;
169382 +}
169383 +
169384 +// Return the type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
169385 +const char* get_decl_context(const_tree decl)
169386 +{
169387 + switch (TREE_CODE(decl)) {
169388 + case FUNCTION_DECL:
169389 + return "fndecl";
169390 + // TODO: Ignore anonymous types for now
169391 + case FIELD_DECL:
169392 + return get_type_name_from_field(decl);
169393 + case VAR_DECL:
169394 + if (TREE_PUBLIC(decl) || DECL_EXTERNAL(decl))
169395 + return "vardecl";
169396 + if (TREE_STATIC(decl) && !TREE_PUBLIC(decl))
169397 + return get_vardecl_context(decl);
169398 + // ignore local variable
169399 + if (!TREE_STATIC(decl) && !DECL_EXTERNAL(decl))
169400 + return NULL;
169401 + default:
169402 + debug_tree((tree)decl);
169403 + gcc_unreachable();
169404 + }
169405 +}
169406 +
169407 +// Find the function with the specified argument in the list
169408 +next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data)
169409 +{
169410 + next_interesting_function_t cur_node, head;
169411 +
169412 + head = global_next_interesting_function[raw_data->hash];
169413 + for (cur_node = head; cur_node; cur_node = cur_node->next) {
169414 + if (raw_data->marked != ASM_STMT_SO_MARK && cur_node->marked == ASM_STMT_SO_MARK)
169415 + continue;
169416 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
169417 + return cur_node;
169418 + }
169419 + return NULL;
169420 +}
169421 +
169422 +next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data)
169423 +{
169424 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
169425 + if (raw_data->hash == NO_HASH)
169426 + return NULL;
169427 +
169428 + raw_data->context = get_decl_context(raw_data->decl);
169429 + if (!raw_data->context)
169430 + return NULL;
169431 + return get_global_next_interesting_function_entry(raw_data);
169432 +}
169433 +
169434 +next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
169435 +{
169436 + next_interesting_function_t new_node;
169437 +
169438 + new_node = (next_interesting_function_t)xmalloc(sizeof(*new_node));
169439 + new_node->decl_name = xstrdup(raw_data->decl_str);
169440 +
169441 + gcc_assert(raw_data->context);
169442 + new_node->context = xstrdup(raw_data->context);
169443 + new_node->hash = raw_data->hash;
169444 + new_node->num = raw_data->num;
169445 + new_node->next = NULL;
169446 + new_node->children = NULL;
169447 + new_node->marked = raw_data->marked;
169448 + new_node->orig_next_node = orig_next_node;
169449 + return new_node;
169450 +}
169451 +
169452 +// Ignore these functions to not explode coverage (+strncmp+fndecl+3+35130+)
169453 +static bool temporary_skip_these_functions(struct fn_raw_data *raw_data)
169454 +{
169455 + if (raw_data->hash == 35130 && !strcmp(raw_data->decl_str, "strncmp"))
169456 + return true;
169457 + if (raw_data->hash == 46193 && !strcmp(raw_data->decl_str, "strnlen"))
169458 + return true;
169459 + if (raw_data->hash == 43267 && !strcmp(raw_data->decl_str, "strncpy"))
169460 + return true;
169461 + if (raw_data->hash == 10300 && !strcmp(raw_data->decl_str, "strncpy_from_user"))
169462 + return true;
169463 + if (raw_data->hash == 26117 && !strcmp(raw_data->decl_str, "memchr"))
169464 + return true;
169465 + if (raw_data->hash == 16203 && !strcmp(raw_data->decl_str, "memchr_inv"))
169466 + return true;
169467 + if (raw_data->hash == 24269 && !strcmp(raw_data->decl_str, "memcmp"))
169468 + return true;
169469 + if (raw_data->hash == 60390 && !strcmp(raw_data->decl_str, "memcpy"))
169470 + return true;
169471 + if (raw_data->hash == 25040 && !strcmp(raw_data->decl_str, "memmove"))
169472 + return true;
169473 + if (raw_data->hash == 29763 && !strcmp(raw_data->decl_str, "memset"))
169474 + return true;
169475 + return false;
169476 +}
169477 +
169478 +// Create the main data structure
169479 +next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
169480 +{
169481 + enum tree_code decl_code = TREE_CODE(raw_data->decl);
169482 +
169483 + gcc_assert(decl_code == FIELD_DECL || decl_code == FUNCTION_DECL || decl_code == VAR_DECL);
169484 +
169485 + if (is_vararg(raw_data->decl, raw_data->num))
169486 + return NULL;
169487 +
169488 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
169489 + if (raw_data->hash == NO_HASH)
169490 + return NULL;
169491 + if (get_size_overflow_hash_entry_tree(raw_data->decl, raw_data->num, DISABLE_SIZE_OVERFLOW))
169492 + return NULL;
169493 + if (temporary_skip_these_functions(raw_data))
169494 + return NULL;
169495 +
169496 + gcc_assert(raw_data->num <= MAX_PARAM);
169497 + // Clones must have an orig_next_node
169498 + gcc_assert(!made_by_compiler(raw_data->decl) || orig_next_node);
169499 +
169500 + raw_data->context = get_decl_context(raw_data->decl);
169501 + if (!raw_data->context)
169502 + return NULL;
169503 + return create_new_next_interesting_entry(raw_data, orig_next_node);
169504 +}
169505 +
169506 +void add_to_global_next_interesting_function(next_interesting_function_t new_entry)
169507 +{
169508 + next_interesting_function_t cur_global_head, cur_global, cur_global_end = NULL;
169509 +
169510 + // new_entry is appended to the end of a list
169511 + new_entry->next = NULL;
169512 +
169513 + cur_global_head = global_next_interesting_function[new_entry->hash];
169514 + if (!cur_global_head) {
169515 + global_next_interesting_function[new_entry->hash] = new_entry;
169516 + return;
169517 + }
169518 +
169519 +
169520 + for (cur_global = cur_global_head; cur_global; cur_global = cur_global->next) {
169521 + if (!cur_global->next)
169522 + cur_global_end = cur_global;
169523 +
169524 + if (compare_next_interesting_functions(cur_global, new_entry->decl_name, new_entry->context, new_entry->num))
169525 + return;
169526 + }
169527 +
169528 + gcc_assert(cur_global_end);
169529 + cur_global_end->next = new_entry;
169530 +}
169531 +
169532 +/* If the interesting function is a clone then find or create its original next_interesting_function_t node
169533 + * and add it to global_next_interesting_function
169534 + */
169535 +static next_interesting_function_t create_orig_next_node_for_a_clone(struct fn_raw_data *clone_raw_data)
169536 +{
169537 + struct fn_raw_data orig_raw_data;
169538 + next_interesting_function_t orig_next_node;
169539 + enum tree_code decl_code;
169540 +
169541 + orig_raw_data.decl = get_orig_fndecl(clone_raw_data->decl);
169542 +
169543 + if (DECL_BUILT_IN(orig_raw_data.decl) || DECL_BUILT_IN_CLASS(orig_raw_data.decl) == BUILT_IN_NORMAL)
169544 + return NULL;
169545 +
169546 + decl_code = TREE_CODE(orig_raw_data.decl);
169547 + if (decl_code == FIELD_DECL || decl_code == VAR_DECL)
169548 + orig_raw_data.num = clone_raw_data->num;
169549 + else
169550 + orig_raw_data.num = get_correct_argnum(clone_raw_data->decl, orig_raw_data.decl, clone_raw_data->num);
169551 +
169552 + // Skip over ISRA.162 parm decls
169553 + if (orig_raw_data.num == CANNOT_FIND_ARG)
169554 + return NULL;
169555 +
169556 + orig_raw_data.decl_str = get_orig_decl_name(orig_raw_data.decl);
169557 + orig_raw_data.marked = NO_SO_MARK;
169558 + orig_next_node = get_global_next_interesting_function_entry_with_hash(&orig_raw_data);
169559 + if (orig_next_node)
169560 + return orig_next_node;
169561 +
169562 + orig_raw_data.marked = clone_raw_data->marked;
169563 + orig_next_node = create_new_next_interesting_decl(&orig_raw_data, NULL);
169564 + if (!orig_next_node)
169565 + return NULL;
169566 +
169567 + add_to_global_next_interesting_function(orig_next_node);
169568 + return orig_next_node;
169569 +}
169570 +
169571 +// Find or create the next_interesting_function_t node for decl and num
169572 +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)
169573 +{
169574 + next_interesting_function_t cur_next_cnode;
169575 +
169576 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
169577 + return NULL;
169578 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
169579 +
169580 + cur_next_cnode = get_global_next_interesting_function_entry_with_hash(raw_data);
169581 + if (cur_next_cnode)
169582 + goto out;
169583 +
169584 + if (!orig_next_node && made_by_compiler(raw_data->decl)) {
169585 + orig_next_node = create_orig_next_node_for_a_clone(raw_data);
169586 + if (!orig_next_node)
169587 + return NULL;
169588 + }
169589 +
169590 + cur_next_cnode = create_new_next_interesting_decl(raw_data, orig_next_node);
169591 + if (!cur_next_cnode)
169592 + return NULL;
169593 +
169594 + add_to_global_next_interesting_function(cur_next_cnode);
169595 +out:
169596 + if (cur_next_cnode->marked != raw_data->marked && cur_next_cnode->marked != NO_SO_MARK)
169597 + return cur_next_cnode;
169598 +
169599 + if (raw_data->marked != NO_SO_MARK && cur_next_cnode->marked == NO_SO_MARK)
169600 + cur_next_cnode->marked = raw_data->marked;
169601 +
169602 + return cur_next_cnode;
169603 +}
169604 +
169605 +static bool has_next_interesting_function_chain_node(next_interesting_function_t next_cnodes_head, struct fn_raw_data *raw_data)
169606 +{
169607 + next_interesting_function_t cur_node;
169608 +
169609 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
169610 + raw_data->context = get_decl_context(raw_data->decl);
169611 + // Ignore function if there is no context
169612 + if (!raw_data->context)
169613 + return true;
169614 +
169615 + for (cur_node = next_cnodes_head; cur_node; cur_node = cur_node->next) {
169616 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
169617 + return true;
169618 + }
169619 + return false;
169620 +}
169621 +
169622 +static void handle_function(struct walk_use_def_data *use_def_data, tree fndecl, const_tree arg)
169623 +{
169624 + struct fn_raw_data raw_data;
169625 + next_interesting_function_t orig_next_node, new_node;
169626 +
169627 + gcc_assert(fndecl != NULL_TREE);
169628 +
169629 + // ignore builtins to not explode coverage (e.g., memcpy)
169630 + if (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL)
169631 + return;
169632 +
169633 + if (get_intentional_attr_type(fndecl) == MARK_TURN_OFF)
169634 + return;
169635 +
169636 + raw_data.decl = fndecl;
169637 + raw_data.decl_str = DECL_NAME_POINTER(fndecl);
169638 + raw_data.marked = NO_SO_MARK;
169639 +
169640 + // convert arg into its position
169641 + if (arg == NULL_TREE)
169642 + raw_data.num = 0;
169643 + else
169644 + raw_data.num = find_arg_number_tree(arg, raw_data.decl);
169645 + if (raw_data.num == CANNOT_FIND_ARG)
169646 + return;
169647 +
169648 + if (has_next_interesting_function_chain_node(use_def_data->next_cnodes_head, &raw_data))
169649 + return;
169650 +
169651 + if (made_by_compiler(raw_data.decl)) {
169652 + orig_next_node = create_orig_next_node_for_a_clone(&raw_data);
169653 + if (!orig_next_node)
169654 + return;
169655 + } else
169656 + orig_next_node = NULL;
169657 +
169658 + new_node = create_new_next_interesting_decl(&raw_data, orig_next_node);
169659 + if (!new_node)
169660 + return;
169661 + new_node->next = use_def_data->next_cnodes_head;
169662 + use_def_data->next_cnodes_head = new_node;
169663 +}
169664 +
169665 +static void walk_use_def_next_functions_phi(struct walk_use_def_data *use_def_data, const_tree result)
169666 +{
169667 + gphi *phi = as_a_gphi(get_def_stmt(result));
169668 + unsigned int i, n = gimple_phi_num_args(phi);
169669 +
169670 + pointer_set_insert(use_def_data->visited, phi);
169671 + for (i = 0; i < n; i++) {
169672 + tree arg = gimple_phi_arg_def(phi, i);
169673 +
169674 + walk_use_def_next_functions(use_def_data, arg);
169675 + }
169676 +}
169677 +
169678 +static void walk_use_def_next_functions_binary(struct walk_use_def_data *use_def_data, const_tree lhs)
169679 +{
169680 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
169681 + tree rhs1, rhs2;
169682 +
169683 + rhs1 = gimple_assign_rhs1(def_stmt);
169684 + rhs2 = gimple_assign_rhs2(def_stmt);
169685 +
169686 + walk_use_def_next_functions(use_def_data, rhs1);
169687 + walk_use_def_next_functions(use_def_data, rhs2);
169688 +}
169689 +
169690 +static void walk_use_def_next_functions_unary(struct walk_use_def_data *use_def_data, const gassign *stmt)
169691 +{
169692 + tree rhs1 = gimple_assign_rhs1(stmt);
169693 +
169694 + walk_use_def_next_functions(use_def_data, rhs1);
169695 +}
169696 +
169697 +void __attribute__((weak)) handle_function_ptr_ret(struct walk_use_def_data *use_def_data __unused, const_tree fn_ptr __unused)
169698 +{
169699 +}
169700 +
169701 +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)
169702 +{
169703 + next_interesting_function_t new_node;
169704 +
169705 + if (raw_data->decl == NULL_TREE)
169706 + return;
169707 +
169708 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
169709 + return;
169710 +
169711 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
169712 + raw_data->num = 0;
169713 + raw_data->marked = NO_SO_MARK;
169714 +
169715 + new_node = create_new_next_interesting_decl(raw_data, NULL);
169716 + if (!new_node)
169717 + return;
169718 + new_node->next = use_def_data->next_cnodes_head;
169719 + use_def_data->next_cnodes_head = new_node;
169720 +}
169721 +
169722 +static void handle_struct_fields(struct walk_use_def_data *use_def_data, const_tree node)
169723 +{
169724 + struct fn_raw_data raw_data;
169725 +
169726 + switch (TREE_CODE(node)) {
169727 + case ARRAY_REF:
169728 +#if BUILDING_GCC_VERSION >= 4006
169729 + case MEM_REF:
169730 +#endif
169731 + case INDIRECT_REF:
169732 + case COMPONENT_REF:
169733 + raw_data.decl = get_ref_field(node);
169734 + break;
169735 + // TODO
169736 + case BIT_FIELD_REF:
169737 + case VIEW_CONVERT_EXPR:
169738 + case REALPART_EXPR:
169739 + case IMAGPART_EXPR:
169740 + return;
169741 + default:
169742 + debug_tree((tree)node);
169743 + gcc_unreachable();
169744 + }
169745 +
169746 + if (get_intentional_attr_type(raw_data.decl) == MARK_TURN_OFF)
169747 + return;
169748 +
169749 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
169750 +}
169751 +
169752 +static void handle_vardecl(struct walk_use_def_data *use_def_data, tree node)
169753 +{
169754 + struct fn_raw_data raw_data;
169755 +
169756 + raw_data.decl = node;
169757 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
169758 +}
169759 +
169760 +/* Find all functions that influence lhs
169761 + *
169762 + * Encountered functions are added to the children vector (next_interesting_function_t).
169763 + */
169764 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs)
169765 +{
169766 + enum tree_code code;
169767 + const_gimple def_stmt;
169768 +
169769 + if (skip_types(lhs))
169770 + return;
169771 +
169772 + if (VAR_P(lhs)) {
169773 + handle_vardecl(use_def_data, lhs);
169774 + return;
169775 + }
169776 +
169777 + code = TREE_CODE(lhs);
169778 + if (code == PARM_DECL) {
169779 + handle_function(use_def_data, current_function_decl, lhs);
169780 + return;
169781 + }
169782 +
169783 + if (TREE_CODE_CLASS(code) == tcc_reference) {
169784 + handle_struct_fields(use_def_data, lhs);
169785 + return;
169786 + }
169787 +
169788 + if (code != SSA_NAME)
169789 + return;
169790 +
169791 + def_stmt = get_def_stmt(lhs);
169792 + if (!def_stmt)
169793 + return;
169794 +
169795 + if (pointer_set_insert(use_def_data->visited, def_stmt))
169796 + return;
169797 +
169798 + switch (gimple_code(def_stmt)) {
169799 + case GIMPLE_NOP:
169800 + walk_use_def_next_functions(use_def_data, SSA_NAME_VAR(lhs));
169801 + return;
169802 + case GIMPLE_ASM:
169803 + if (!is_size_overflow_asm(def_stmt))
169804 + return;
169805 + walk_use_def_next_functions(use_def_data, get_size_overflow_asm_input(as_a_const_gasm(def_stmt)));
169806 + return;
169807 + case GIMPLE_CALL: {
169808 + tree fndecl = gimple_call_fndecl(def_stmt);
169809 +
169810 + if (fndecl != NULL_TREE) {
169811 + handle_function(use_def_data, fndecl, NULL_TREE);
169812 + return;
169813 + }
169814 + fndecl = gimple_call_fn(def_stmt);
169815 + handle_function_ptr_ret(use_def_data, fndecl);
169816 + return;
169817 + }
169818 + case GIMPLE_PHI:
169819 + walk_use_def_next_functions_phi(use_def_data, lhs);
169820 + return;
169821 + case GIMPLE_ASSIGN:
169822 + switch (gimple_num_ops(def_stmt)) {
169823 + case 2:
169824 + walk_use_def_next_functions_unary(use_def_data, as_a_const_gassign(def_stmt));
169825 + return;
169826 + case 3:
169827 + walk_use_def_next_functions_binary(use_def_data, lhs);
169828 + return;
169829 + }
169830 + default:
169831 + debug_gimple_stmt((gimple)def_stmt);
169832 + error("%s: unknown gimple code", __func__);
169833 + gcc_unreachable();
169834 + }
169835 +}
169836 +
169837 +// Start the search for next_interesting_function_t children based on the (next_interesting_function_t) parent node
169838 +static next_interesting_function_t search_next_functions(tree node, next_interesting_function_t parent)
169839 +{
169840 + struct walk_use_def_data use_def_data;
169841 +
169842 + use_def_data.parent = parent;
169843 + use_def_data.next_cnodes_head = NULL;
169844 + use_def_data.visited = pointer_set_create();
169845 +
169846 + walk_use_def_next_functions(&use_def_data, node);
169847 +
169848 + pointer_set_destroy(use_def_data.visited);
169849 + return use_def_data.next_cnodes_head;
169850 +}
169851 +
169852 +// True if child already exists in the next_interesting_function_t children vector
169853 +bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node)
169854 +{
169855 + unsigned int i;
169856 + next_interesting_function_t cur;
169857 +
169858 + gcc_assert(next_node);
169859 + // handle recursion
169860 + if (!strcmp(target->decl_name, next_node->decl_name) && target->num == next_node->num)
169861 + return true;
169862 +
169863 +#if BUILDING_GCC_VERSION <= 4007
169864 + if (VEC_empty(next_interesting_function_t, target->children))
169865 + return false;
169866 + FOR_EACH_VEC_ELT(next_interesting_function_t, target->children, i, cur) {
169867 +#else
169868 + FOR_EACH_VEC_SAFE_ELT(target->children, i, cur) {
169869 +#endif
169870 + if (compare_next_interesting_functions(cur, next_node->decl_name, next_node->context, next_node->num))
169871 + return true;
169872 + }
169873 + return false;
169874 +}
169875 +
169876 +void push_child(next_interesting_function_t parent, next_interesting_function_t child)
169877 +{
169878 + if (!has_next_interesting_function_vec(parent, child)) {
169879 +#if BUILDING_GCC_VERSION <= 4007
169880 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
169881 +#else
169882 + vec_safe_push(parent->children, child);
169883 +#endif
169884 + }
169885 +}
169886 +
169887 +void __attribute__((weak)) check_local_variables(next_interesting_function_t next_node __unused) {}
169888 +
169889 +// Add children to parent and global_next_interesting_function
169890 +static void collect_data_for_execute(next_interesting_function_t parent, next_interesting_function_t children)
169891 +{
169892 + next_interesting_function_t cur = children;
169893 +
169894 + gcc_assert(parent);
169895 +
169896 + while (cur) {
169897 + struct fn_raw_data child_raw_data;
169898 + next_interesting_function_t next, child;
169899 +
169900 + next = cur->next;
169901 +
169902 + child_raw_data.decl_str = cur->decl_name;
169903 + child_raw_data.context = cur->context;
169904 + child_raw_data.hash = cur->hash;
169905 + child_raw_data.num = cur->num;
169906 + child_raw_data.marked = NO_SO_MARK;
169907 + child = get_global_next_interesting_function_entry(&child_raw_data);
169908 + if (!child) {
169909 + add_to_global_next_interesting_function(cur);
169910 + child = cur;
169911 + }
169912 +
169913 + check_local_variables(child);
169914 +
169915 + push_child(parent, child);
169916 +
169917 + cur = next;
169918 + }
169919 +
169920 + check_local_variables(parent);
169921 +}
169922 +
169923 +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)
169924 +{
169925 + return NULL;
169926 +}
169927 +
169928 +static next_interesting_function_t create_parent_next_cnode(const_gimple stmt, unsigned int num)
169929 +{
169930 + struct fn_raw_data raw_data;
169931 +
169932 + raw_data.num = num;
169933 + raw_data.marked = NO_SO_MARK;
169934 +
169935 + switch (gimple_code(stmt)) {
169936 + case GIMPLE_ASM:
169937 + raw_data.decl = current_function_decl;
169938 + raw_data.marked = ASM_STMT_SO_MARK;
169939 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
169940 + case GIMPLE_CALL:
169941 + raw_data.decl = gimple_call_fndecl(stmt);
169942 + if (raw_data.decl != NULL_TREE)
169943 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
169944 + raw_data.decl = gimple_call_fn(stmt);
169945 + return get_and_create_next_node_from_global_next_nodes_fnptr(raw_data.decl, &raw_data);
169946 + case GIMPLE_RETURN:
169947 + raw_data.decl = current_function_decl;
169948 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
169949 + case GIMPLE_ASSIGN: {
169950 + tree lhs = gimple_assign_lhs(stmt);
169951 +
169952 + if (VAR_P(lhs))
169953 + raw_data.decl = lhs;
169954 + else
169955 + raw_data.decl = get_ref_field(lhs);
169956 + if (raw_data.decl == NULL_TREE)
169957 + return NULL;
169958 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
169959 + }
169960 + default:
169961 + debug_gimple_stmt((gimple)stmt);
169962 + gcc_unreachable();
169963 + }
169964 +}
169965 +
169966 +// Handle potential next_interesting_function_t parent if its argument has an integer type
169967 +static void collect_all_possible_size_overflow_fns(const_gimple stmt, tree start_var, unsigned int num)
169968 +{
169969 + next_interesting_function_t children_next_cnode, parent_next_cnode;
169970 +
169971 + // skip void return values
169972 + if (start_var == NULL_TREE)
169973 + return;
169974 +
169975 + if (skip_types(start_var))
169976 + return;
169977 +
169978 + // handle intentional MARK_TURN_OFF
169979 + if (check_intentional_size_overflow_asm_and_attribute(start_var) == MARK_TURN_OFF)
169980 + return;
169981 +
169982 + parent_next_cnode = create_parent_next_cnode(stmt, num);
169983 + if (!parent_next_cnode)
169984 + return;
169985 +
169986 + children_next_cnode = search_next_functions(start_var, parent_next_cnode);
169987 + collect_data_for_execute(parent_next_cnode, children_next_cnode);
169988 +}
169989 +
169990 +static void collect_all_possible_size_overflow_fields_and_vars(const gassign *assign)
169991 +{
169992 + tree start_var, decl, lhs = gimple_assign_lhs(assign);
169993 +
169994 + if (VAR_P(lhs))
169995 + decl = lhs;
169996 + else
169997 + decl = get_ref_field(lhs);
169998 + if (decl == NULL_TREE)
169999 + return;
170000 +
170001 + if (get_intentional_attr_type(decl) == MARK_TURN_OFF)
170002 + return;
170003 +
170004 + start_var = gimple_assign_rhs1(assign);
170005 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
170006 +
170007 + start_var = gimple_assign_rhs2(assign);
170008 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
170009 +
170010 +#if BUILDING_GCC_VERSION >= 4006
170011 + start_var = gimple_assign_rhs3(assign);
170012 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
170013 +#endif
170014 +}
170015 +
170016 +// Find potential next_interesting_function_t parents
170017 +static void handle_cgraph_node(struct cgraph_node *node)
170018 +{
170019 + basic_block bb;
170020 + tree cur_fndecl = NODE_DECL(node);
170021 +
170022 + set_current_function_decl(cur_fndecl);
170023 +
170024 + FOR_EACH_BB_FN(bb, cfun) {
170025 + gimple_stmt_iterator gsi;
170026 +
170027 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
170028 + tree start_var;
170029 + gimple stmt = gsi_stmt(gsi);
170030 +
170031 + switch (gimple_code(stmt)) {
170032 + case GIMPLE_RETURN: {
170033 + const greturn *return_stmt = as_a_const_greturn(stmt);
170034 +
170035 + start_var = gimple_return_retval(return_stmt);
170036 + collect_all_possible_size_overflow_fns(return_stmt, start_var, 0);
170037 + break;
170038 + }
170039 + case GIMPLE_ASM: {
170040 + const gasm *asm_stmt = as_a_const_gasm(stmt);
170041 +
170042 + if (!is_size_overflow_insert_check_asm(asm_stmt))
170043 + break;
170044 + start_var = get_size_overflow_asm_input(asm_stmt);
170045 + collect_all_possible_size_overflow_fns(asm_stmt, start_var, 0);
170046 + break;
170047 + }
170048 + case GIMPLE_CALL: {
170049 + unsigned int i, len;
170050 + const gcall *call = as_a_const_gcall(stmt);
170051 + tree fndecl = gimple_call_fndecl(call);
170052 +
170053 + if (fndecl != NULL_TREE && (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL))
170054 + break;
170055 +
170056 + len = gimple_call_num_args(call);
170057 + for (i = 0; i < len; i++) {
170058 + start_var = gimple_call_arg(call, i);
170059 + collect_all_possible_size_overflow_fns(call, start_var, i + 1);
170060 + }
170061 + break;
170062 + }
170063 + case GIMPLE_ASSIGN:
170064 + collect_all_possible_size_overflow_fields_and_vars(as_a_const_gassign(stmt));
170065 + break;
170066 + default:
170067 + break;
170068 + }
170069 + }
170070 + }
170071 +
170072 + unset_current_function_decl();
170073 +}
170074 +
170075 +/* Collect all potentially interesting function parameters and return values of integer types
170076 + * and store their data flow dependencies
170077 + */
170078 +static void size_overflow_generate_summary(void)
170079 +{
170080 + struct cgraph_node *node;
170081 +
170082 + size_overflow_register_hooks();
170083 +
170084 + FOR_EACH_FUNCTION(node) {
170085 + if (is_valid_cgraph_node(node))
170086 + handle_cgraph_node(node);
170087 + }
170088 +}
170089 +
170090 +static void size_overflow_function_insertion_hook(struct cgraph_node *node __unused, void *data __unused)
170091 +{
170092 + debug_cgraph_node(node);
170093 + gcc_unreachable();
170094 +}
170095 +
170096 +/* Handle dst if src is in the global_next_interesting_function list.
170097 + * If src is a clone then dst inherits the orig_next_node of src otherwise
170098 + * src will become the orig_next_node of dst.
170099 + */
170100 +static void size_overflow_node_duplication_hook(struct cgraph_node *src, struct cgraph_node *dst, void *data __unused)
170101 +{
170102 + next_interesting_function_t head, cur;
170103 + struct fn_raw_data src_raw_data;
170104 +
170105 + src_raw_data.decl = NODE_DECL(src);
170106 + src_raw_data.decl_str = DECL_NAME_POINTER(src_raw_data.decl);
170107 + src_raw_data.context = get_decl_context(src_raw_data.decl);
170108 + if (!src_raw_data.context)
170109 + return;
170110 +
170111 + src_raw_data.num = NONE_ARGNUM;
170112 + src_raw_data.marked = NO_SO_MARK;
170113 +
170114 + head = get_global_next_interesting_function_entry_with_hash(&src_raw_data);
170115 + if (!head)
170116 + return;
170117 +
170118 + for (cur = head; cur; cur = cur->next) {
170119 + struct fn_raw_data dst_raw_data;
170120 + next_interesting_function_t orig_next_node, next_node;
170121 +
170122 + if (!compare_next_interesting_functions(cur, src_raw_data.decl_str, src_raw_data.context, src_raw_data.num))
170123 + continue;
170124 +
170125 + dst_raw_data.decl = NODE_DECL(dst);
170126 + dst_raw_data.decl_str = cgraph_node_name(dst);
170127 + dst_raw_data.marked = cur->marked;
170128 +
170129 + if (!made_by_compiler(dst_raw_data.decl))
170130 + break;
170131 +
170132 + // For clones use the original node instead
170133 + if (cur->orig_next_node)
170134 + orig_next_node = cur->orig_next_node;
170135 + else
170136 + orig_next_node = cur;
170137 +
170138 + dst_raw_data.num = get_correct_argnum_fndecl(src_raw_data.decl, dst_raw_data.decl, cur->num);
170139 + if (dst_raw_data.num == CANNOT_FIND_ARG)
170140 + continue;
170141 +
170142 + next_node = create_new_next_interesting_decl(&dst_raw_data, orig_next_node);
170143 + if (next_node)
170144 + add_to_global_next_interesting_function(next_node);
170145 + }
170146 +}
170147 +
170148 +void size_overflow_register_hooks(void)
170149 +{
170150 + static bool init_p = false;
170151 +
170152 + if (init_p)
170153 + return;
170154 + init_p = true;
170155 +
170156 + function_insertion_hook_holder = cgraph_add_function_insertion_hook(&size_overflow_function_insertion_hook, NULL);
170157 + node_duplication_hook_holder = cgraph_add_node_duplication_hook(&size_overflow_node_duplication_hook, NULL);
170158 +}
170159 +
170160 +static void set_yes_so_mark(next_interesting_function_t next_node)
170161 +{
170162 + if (next_node->marked == NO_SO_MARK) {
170163 + next_node->marked = YES_SO_MARK;
170164 + global_changed = true;
170165 + }
170166 + // Mark the orig decl as well if it's a clone
170167 + if (next_node->orig_next_node && next_node->orig_next_node->marked == NO_SO_MARK) {
170168 + next_node->orig_next_node->marked = YES_SO_MARK;
170169 + global_changed = true;
170170 + }
170171 +}
170172 +
170173 +// Determine whether node or orig node is part of a tracked data flow
170174 +static bool marked_fn(next_interesting_function_t next_node)
170175 +{
170176 + bool is_marked_fn, is_marked_orig = false;
170177 +
170178 + is_marked_fn = next_node->marked != NO_SO_MARK;
170179 +
170180 + if (next_node->orig_next_node)
170181 + is_marked_orig = next_node->orig_next_node->marked != NO_SO_MARK;
170182 +
170183 + return is_marked_fn || is_marked_orig;
170184 +}
170185 +
170186 +// Determine whether node or orig node is in the hash table already
170187 +static bool already_in_the_hashtable(next_interesting_function_t next_node)
170188 +{
170189 + if (next_node->orig_next_node)
170190 + next_node = next_node->orig_next_node;
170191 + return get_size_overflow_hash_entry(next_node->hash, next_node->decl_name, next_node->context, next_node->num) != NULL;
170192 +}
170193 +
170194 +// Propagate the size_overflow marks up the use-def chains
170195 +static bool has_marked_child(next_interesting_function_t next_node)
170196 +{
170197 + bool ret = false;
170198 + unsigned int i;
170199 + next_interesting_function_t child;
170200 +
170201 +#if BUILDING_GCC_VERSION <= 4007
170202 + if (VEC_empty(next_interesting_function_t, next_node->children))
170203 + return false;
170204 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, child) {
170205 +#else
170206 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, child) {
170207 +#endif
170208 + if (marked_fn(child) || already_in_the_hashtable(child))
170209 + ret = true;
170210 + }
170211 +
170212 + return ret;
170213 +}
170214 +
170215 +/* Set YES_SO_MARK on the function, its orig node and children if:
170216 + * * the function or its orig node or one of its children is in the hash table already
170217 + * * the function's orig node is marked with YES_SO_MARK or ASM_STMT_SO_MARK
170218 + * * one of the children is marked with YES_SO_MARK or ASM_STMT_SO_MARK
170219 + */
170220 +static bool set_fn_so_mark(next_interesting_function_t next_node)
170221 +{
170222 + bool so_fn, so_hashtable, so_child;
170223 +
170224 + so_hashtable = already_in_the_hashtable(next_node);
170225 + so_fn = marked_fn(next_node);
170226 + so_child = has_marked_child(next_node);
170227 +
170228 + if (!so_fn && !so_hashtable && !so_child)
170229 + return false;
170230 + set_yes_so_mark(next_node);
170231 + return true;
170232 +}
170233 +
170234 +// Determine if any of the function pointer targets have data flow between the return value and one of the arguments
170235 +static next_interesting_function_t get_same_not_ret_child(next_interesting_function_t parent)
170236 +{
170237 + unsigned int i;
170238 + next_interesting_function_t child;
170239 +
170240 +#if BUILDING_GCC_VERSION <= 4007
170241 + if (VEC_empty(next_interesting_function_t, parent->children))
170242 + return NULL;
170243 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
170244 +#else
170245 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
170246 +#endif
170247 + if (child->num == 0)
170248 + continue;
170249 + if (strcmp(parent->decl_name, child->decl_name))
170250 + continue;
170251 + if (!strcmp(child->context, "fndecl"))
170252 + return child;
170253 + }
170254 + return NULL;
170255 +}
170256 +
170257 +/* Trace a return value of function pointer type back to an argument via a concrete function
170258 + fnptr 0 && fn 0 && (fn 0 -> fn 2) => fnptr 2 */
170259 +static void search_missing_fptr_arg(next_interesting_function_t parent)
170260 +{
170261 + next_interesting_function_t child;
170262 + unsigned int i;
170263 +#if BUILDING_GCC_VERSION <= 4007
170264 + VEC(next_interesting_function_t, heap) *new_children = NULL;
170265 +#else
170266 + vec<next_interesting_function_t, va_heap, vl_embed> *new_children = NULL;
170267 +#endif
170268 +
170269 + if (parent->num != 0)
170270 + return;
170271 + if (!strcmp(parent->context, "fndecl"))
170272 + return;
170273 + if (!strncmp(parent->context, "vardecl", sizeof("vardecl") - 1))
170274 + return;
170275 +
170276 + // fnptr 0 && fn 0
170277 +#if BUILDING_GCC_VERSION <= 4007
170278 + if (VEC_empty(next_interesting_function_t, parent->children))
170279 + return;
170280 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
170281 +#else
170282 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
170283 +#endif
170284 + next_interesting_function_t cur_next_node, tracked_fn;
170285 +
170286 + if (child->num != 0)
170287 + continue;
170288 + // (fn 0 -> fn 2)
170289 + tracked_fn = get_same_not_ret_child(child);
170290 + if (!tracked_fn)
170291 + continue;
170292 +
170293 + // fn 2 => fnptr 2
170294 + for (cur_next_node = global_next_interesting_function[parent->hash]; cur_next_node; cur_next_node = cur_next_node->next) {
170295 + if (cur_next_node->num != tracked_fn->num)
170296 + continue;
170297 +
170298 + if (strcmp(parent->decl_name, cur_next_node->decl_name))
170299 + continue;
170300 +
170301 + if (!has_next_interesting_function_vec(parent, cur_next_node)) {
170302 +#if BUILDING_GCC_VERSION <= 4007
170303 + VEC_safe_push(next_interesting_function_t, heap, new_children, cur_next_node);
170304 +#else
170305 + vec_safe_push(new_children, cur_next_node);
170306 +#endif
170307 + }
170308 + }
170309 + }
170310 +
170311 +#if BUILDING_GCC_VERSION == 4005
170312 + if (VEC_empty(next_interesting_function_t, new_children))
170313 + return;
170314 + FOR_EACH_VEC_ELT(next_interesting_function_t, new_children, i, child)
170315 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
170316 +#elif BUILDING_GCC_VERSION <= 4007
170317 + VEC_safe_splice(next_interesting_function_t, heap, parent->children, new_children);
170318 +#else
170319 + vec_safe_splice(parent->children, new_children);
170320 +#endif
170321 +}
170322 +
170323 +static void walk_so_marked_fns(next_interesting_function_set *visited, next_interesting_function_t parent, bool debug)
170324 +{
170325 + unsigned int i;
170326 + next_interesting_function_t child;
170327 +
170328 + gcc_assert(parent);
170329 + if (!set_fn_so_mark(parent))
170330 + return;
170331 +
170332 +#if BUILDING_GCC_VERSION <= 4007
170333 + if (VEC_empty(next_interesting_function_t, parent->children))
170334 + return;
170335 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
170336 +#else
170337 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
170338 +#endif
170339 + set_yes_so_mark(child);
170340 +
170341 + if (in_lto_p && debug == PRINT_DATA_FLOW) {
170342 + fprintf(stderr, " PARENT: decl: %s-%u context: %s %p\n", parent->decl_name, parent->num, parent->context, parent);
170343 + fprintf(stderr, " \tCHILD: decl: %s-%u context: %s %p\n", child->decl_name, child->num, child->context, child);
170344 + }
170345 +
170346 + if (!pointer_set_insert(visited, child))
170347 + walk_so_marked_fns(visited, child, debug);
170348 + }
170349 +}
170350 +
170351 +// Do a depth-first recursive dump of the next_interesting_function_t children vector
170352 +static void print_missing_functions(next_interesting_function_set *visited, next_interesting_function_t parent)
170353 +{
170354 + unsigned int i;
170355 + next_interesting_function_t child;
170356 +
170357 + gcc_assert(parent);
170358 + gcc_assert(parent->marked != NO_SO_MARK);
170359 + print_missing_function(parent);
170360 +
170361 +#if BUILDING_GCC_VERSION <= 4007
170362 + if (VEC_empty(next_interesting_function_t, parent->children))
170363 + return;
170364 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
170365 +#else
170366 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
170367 +#endif
170368 + gcc_assert(child->marked != NO_SO_MARK);
170369 + if (!pointer_set_insert(visited, child))
170370 + print_missing_functions(visited, child);
170371 + }
170372 +}
170373 +
170374 +// Set YES_SO_MARK on functions that will be emitted into the hash table
170375 +static void search_so_marked_fns(bool debug)
170376 +{
170377 +
170378 + unsigned int i;
170379 + next_interesting_function_set *visited;
170380 + next_interesting_function_t cur_global;
170381 +
170382 + visited = next_interesting_function_pointer_set_create();
170383 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
170384 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
170385 + if (cur_global->marked == NO_SO_MARK || pointer_set_insert(visited, cur_global))
170386 + continue;
170387 +
170388 + if (in_lto_p && debug == PRINT_DATA_FLOW)
170389 + fprintf(stderr, "Data flow: decl: %s-%u context: %s %p\n", cur_global->decl_name, cur_global->num, cur_global->context, cur_global);
170390 +
170391 + walk_so_marked_fns(visited, cur_global, debug);
170392 +
170393 + if (in_lto_p && debug == PRINT_DATA_FLOW)
170394 + fprintf(stderr, "\n");
170395 + }
170396 + }
170397 + pointer_set_destroy(visited);
170398 +}
170399 +
170400 +// Print functions missing from the hash table
170401 +static void print_so_marked_fns(void)
170402 +{
170403 + unsigned int i;
170404 + next_interesting_function_set *visited;
170405 + next_interesting_function_t cur_global;
170406 +
170407 + visited = next_interesting_function_pointer_set_create();
170408 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
170409 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
170410 + if (cur_global->marked != NO_SO_MARK && !pointer_set_insert(visited, cur_global))
170411 + print_missing_functions(visited, cur_global);
170412 + }
170413 + }
170414 + pointer_set_destroy(visited);
170415 +}
170416 +
170417 +void __attribute__((weak)) check_global_variables(next_interesting_function_t cur_global __unused) {}
170418 +
170419 +// Print all missing interesting functions
170420 +static unsigned int size_overflow_execute(void)
170421 +{
170422 + unsigned int i;
170423 + next_interesting_function_t cur_global;
170424 +
170425 + if (flag_lto && !in_lto_p)
170426 + return 0;
170427 +
170428 + // Collect vardecls and funtions reachable by function pointers
170429 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
170430 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
170431 + check_global_variables(cur_global);
170432 + search_missing_fptr_arg(cur_global);
170433 + }
170434 + }
170435 +
170436 + search_so_marked_fns(PRINT_DATA_FLOW);
170437 + while (global_changed) {
170438 + global_changed = false;
170439 + search_so_marked_fns(NO_PRINT_DATA_FLOW);
170440 + }
170441 +
170442 + print_so_marked_fns();
170443 +
170444 + if (in_lto_p) {
170445 + fprintf(stderr, "%s: SIZE_OVERFLOW EXECUTE\n", __func__);
170446 + print_global_next_interesting_functions();
170447 + }
170448 +
170449 + return 0;
170450 +}
170451 +
170452 +// Omit the IPA/LTO callbacks until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61311 gets fixed (license concerns)
170453 +#if BUILDING_GCC_VERSION >= 4008
170454 +void __attribute__((weak)) size_overflow_write_summary_lto(void) {}
170455 +#elif BUILDING_GCC_VERSION >= 4006
170456 +void __attribute__((weak)) size_overflow_write_summary_lto(cgraph_node_set set __unused, varpool_node_set vset __unused) {}
170457 +#else
170458 +void __attribute__((weak)) size_overflow_write_summary_lto(cgraph_node_set set __unused) {}
170459 +#endif
170460 +
170461 +void __attribute__((weak)) size_overflow_read_summary_lto(void) {}
170462 +
170463 +#if BUILDING_GCC_VERSION >= 4009
170464 +static const struct pass_data size_overflow_functions_pass_data = {
170465 +#else
170466 +static struct ipa_opt_pass_d size_overflow_functions_pass = {
170467 + .pass = {
170468 +#endif
170469 + .type = IPA_PASS,
170470 + .name = "size_overflow_functions",
170471 +#if BUILDING_GCC_VERSION >= 4008
170472 + .optinfo_flags = OPTGROUP_NONE,
170473 +#endif
170474 +#if BUILDING_GCC_VERSION >= 5000
170475 +#elif BUILDING_GCC_VERSION >= 4009
170476 + .has_gate = false,
170477 + .has_execute = true,
170478 +#else
170479 + .gate = NULL,
170480 + .execute = size_overflow_execute,
170481 + .sub = NULL,
170482 + .next = NULL,
170483 + .static_pass_number = 0,
170484 +#endif
170485 + .tv_id = TV_NONE,
170486 + .properties_required = 0,
170487 + .properties_provided = 0,
170488 + .properties_destroyed = 0,
170489 + .todo_flags_start = 0,
170490 + .todo_flags_finish = 0,
170491 +#if BUILDING_GCC_VERSION < 4009
170492 + },
170493 + .generate_summary = size_overflow_generate_summary,
170494 + .write_summary = size_overflow_write_summary_lto,
170495 + .read_summary = size_overflow_read_summary_lto,
170496 +#if BUILDING_GCC_VERSION >= 4006
170497 + .write_optimization_summary = size_overflow_write_summary_lto,
170498 + .read_optimization_summary = size_overflow_read_summary_lto,
170499 +#endif
170500 + .stmt_fixup = NULL,
170501 + .function_transform_todo_flags_start = 0,
170502 + .function_transform = size_overflow_transform,
170503 + .variable_transform = NULL,
170504 +#endif
170505 +};
170506 +
170507 +#if BUILDING_GCC_VERSION >= 4009
170508 +namespace {
170509 +class size_overflow_functions_pass : public ipa_opt_pass_d {
170510 +public:
170511 + size_overflow_functions_pass() : ipa_opt_pass_d(size_overflow_functions_pass_data,
170512 + g,
170513 + size_overflow_generate_summary,
170514 + size_overflow_write_summary_lto,
170515 + size_overflow_read_summary_lto,
170516 + size_overflow_write_summary_lto,
170517 + size_overflow_read_summary_lto,
170518 + NULL,
170519 + 0,
170520 + size_overflow_transform,
170521 + NULL) {}
170522 +#if BUILDING_GCC_VERSION >= 5000
170523 + virtual unsigned int execute(function *) { return size_overflow_execute(); }
170524 +#else
170525 + unsigned int execute() { return size_overflow_execute(); }
170526 +#endif
170527 +};
170528 +}
170529 +
170530 +opt_pass *make_size_overflow_functions_pass(void)
170531 +{
170532 + return new size_overflow_functions_pass();
170533 +}
170534 +#else
170535 +struct opt_pass *make_size_overflow_functions_pass(void)
170536 +{
170537 + return &size_overflow_functions_pass.pass;
170538 +}
170539 +#endif
170540 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_misc.c b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
170541 new file mode 100644
170542 index 0000000..6075e8f
170543 --- /dev/null
170544 +++ b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
170545 @@ -0,0 +1,505 @@
170546 +/*
170547 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
170548 + * Licensed under the GPL v2, or (at your option) v3
170549 + *
170550 + * Homepage:
170551 + * https://github.com/ephox-gcc-plugins/size_overflow
170552 + *
170553 + * Documentation:
170554 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
170555 + *
170556 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
170557 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
170558 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
170559 + *
170560 + * Usage:
170561 + * $ make
170562 + * $ make run
170563 + */
170564 +
170565 +#include "size_overflow.h"
170566 +
170567 +bool is_vararg(const_tree fn, unsigned int num)
170568 +{
170569 + tree arg_list;
170570 +
170571 + if (num == 0)
170572 + return false;
170573 + if (fn == NULL_TREE)
170574 + return false;
170575 + if (TREE_CODE(fn) != FUNCTION_DECL)
170576 + return false;
170577 +
170578 + arg_list = TYPE_ARG_TYPES(TREE_TYPE(fn));
170579 + if (arg_list == NULL_TREE)
170580 + return false;
170581 +
170582 + if (tree_last(arg_list) == void_list_node)
170583 + return false;
170584 +
170585 + return num >= (unsigned int)list_length(arg_list);
170586 +}
170587 +
170588 +// Extract the field decl from memory references
170589 +tree get_ref_field(const_tree ref)
170590 +{
170591 + tree field;
170592 +
170593 + // TODO: handle nested memory references
170594 + switch (TREE_CODE(ref)) {
170595 + case ARRAY_REF:
170596 + return NULL_TREE;
170597 +#if BUILDING_GCC_VERSION >= 4006
170598 + case MEM_REF:
170599 +#endif
170600 + case INDIRECT_REF:
170601 + field = TREE_OPERAND(ref, 0);
170602 + break;
170603 + case COMPONENT_REF:
170604 + field = TREE_OPERAND(ref, 1);
170605 + break;
170606 + default:
170607 + return NULL_TREE;
170608 + }
170609 +
170610 + // TODO
170611 + if (TREE_CODE(field) == SSA_NAME)
170612 + return NULL_TREE;
170613 + // TODO
170614 + if (TREE_CODE(field) != FIELD_DECL)
170615 + return NULL_TREE;
170616 + // TODO
170617 + if (TREE_CODE(field) == ADDR_EXPR)
170618 + return NULL_TREE;
170619 +
170620 + return field;
170621 +}
170622 +
170623 +const char *get_type_name_from_field(const_tree field_decl)
170624 +{
170625 + const_tree context, type_name;
170626 +
170627 + if (TREE_CODE(field_decl) != FIELD_DECL)
170628 + return NULL;
170629 +
170630 + context = DECL_CONTEXT(field_decl);
170631 + // TODO
170632 + if (TREE_CODE(context) != RECORD_TYPE)
170633 + return NULL;
170634 + gcc_assert(TREE_CODE(context) == RECORD_TYPE);
170635 + type_name = TYPE_NAME(TYPE_MAIN_VARIANT(context));
170636 + if (type_name == NULL_TREE)
170637 + return NULL;
170638 +
170639 + if (TREE_CODE(type_name) == IDENTIFIER_NODE)
170640 + return IDENTIFIER_POINTER(type_name);
170641 + else if (TREE_CODE(type_name) == TYPE_DECL)
170642 + return DECL_NAME_POINTER(type_name);
170643 +
170644 + debug_tree((tree)field_decl);
170645 + debug_tree((tree)type_name);
170646 + gcc_unreachable();
170647 +}
170648 +
170649 +// Was the function created by the compiler itself?
170650 +bool made_by_compiler(const_tree decl)
170651 +{
170652 + enum tree_code decl_code;
170653 + struct cgraph_node *node;
170654 +
170655 + if (FUNCTION_PTR_P(decl))
170656 + return false;
170657 + decl_code = TREE_CODE(decl);
170658 + if (decl_code == VAR_DECL || decl_code == FIELD_DECL)
170659 + return false;
170660 +
170661 + gcc_assert(decl_code == FUNCTION_DECL);
170662 + if (DECL_ABSTRACT_ORIGIN(decl) != NULL_TREE)
170663 + return true;
170664 + if (DECL_ARTIFICIAL(decl))
170665 + return true;
170666 +
170667 + node = get_cnode(decl);
170668 + if (!node)
170669 + return false;
170670 + return node->clone_of != NULL;
170671 +}
170672 +
170673 +bool skip_types(const_tree var)
170674 +{
170675 + const_tree type;
170676 +
170677 + type = TREE_TYPE(var);
170678 + if (type == NULL_TREE)
170679 + return true;
170680 +
170681 + switch (TREE_CODE(type)) {
170682 + case INTEGER_TYPE:
170683 + case ENUMERAL_TYPE:
170684 + return false;
170685 + default:
170686 + return true;
170687 + }
170688 +}
170689 +
170690 +gimple get_fnptr_def_stmt(const_tree fn_ptr)
170691 +{
170692 + gimple def_stmt;
170693 +
170694 + gcc_assert(fn_ptr != NULL_TREE);
170695 + gcc_assert(FUNCTION_PTR_P(fn_ptr));
170696 +
170697 + if (is_gimple_constant(fn_ptr))
170698 + return NULL;
170699 +
170700 + def_stmt = get_def_stmt(fn_ptr);
170701 + gcc_assert(def_stmt);
170702 + return def_stmt;
170703 +}
170704 +
170705 +gimple get_def_stmt(const_tree node)
170706 +{
170707 + gcc_assert(node != NULL_TREE);
170708 +
170709 + if (TREE_CODE(node) != SSA_NAME)
170710 + return NULL;
170711 + return SSA_NAME_DEF_STMT(node);
170712 +}
170713 +
170714 +tree create_new_var(tree type)
170715 +{
170716 + tree new_var = create_tmp_var(type, "cicus");
170717 +
170718 + add_referenced_var(new_var);
170719 + return new_var;
170720 +}
170721 +
170722 +static bool skip_cast(tree dst_type, const_tree rhs, bool force)
170723 +{
170724 + const_gimple def_stmt = get_def_stmt(rhs);
170725 +
170726 + if (force)
170727 + return false;
170728 +
170729 + if (is_gimple_constant(rhs))
170730 + return false;
170731 +
170732 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
170733 + return false;
170734 +
170735 + if (!types_compatible_p(dst_type, TREE_TYPE(rhs)))
170736 + return false;
170737 +
170738 + // DI type can be on 32 bit (from create_assign) but overflow type stays DI
170739 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
170740 + return false;
170741 +
170742 + return true;
170743 +}
170744 +
170745 +tree cast_a_tree(tree type, tree var)
170746 +{
170747 + gcc_assert(type != NULL_TREE);
170748 + gcc_assert(var != NULL_TREE);
170749 + gcc_assert(fold_convertible_p(type, var));
170750 +
170751 + return fold_convert(type, var);
170752 +}
170753 +
170754 +gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force)
170755 +{
170756 + gassign *assign;
170757 + gimple def_stmt;
170758 +
170759 + gcc_assert(dst_type != NULL_TREE && rhs != NULL_TREE);
170760 + gcc_assert(!is_gimple_constant(rhs));
170761 + if (gsi_end_p(*gsi) && before == AFTER_STMT)
170762 + gcc_unreachable();
170763 +
170764 + def_stmt = get_def_stmt(rhs);
170765 + if (def_stmt && gimple_code(def_stmt) != GIMPLE_NOP && skip_cast(dst_type, rhs, force) && pointer_set_contains(visited->my_stmts, def_stmt))
170766 + return def_stmt;
170767 +
170768 + if (lhs == CREATE_NEW_VAR)
170769 + lhs = create_new_var(dst_type);
170770 +
170771 + assign = gimple_build_assign(lhs, cast_a_tree(dst_type, rhs));
170772 +
170773 + if (!gsi_end_p(*gsi)) {
170774 + location_t loc = gimple_location(gsi_stmt(*gsi));
170775 + gimple_set_location(assign, loc);
170776 + }
170777 +
170778 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
170779 +
170780 + if (before)
170781 + gsi_insert_before(gsi, assign, GSI_NEW_STMT);
170782 + else
170783 + gsi_insert_after(gsi, assign, GSI_NEW_STMT);
170784 + update_stmt(assign);
170785 + return assign;
170786 +}
170787 +
170788 +bool is_size_overflow_type(const_tree var)
170789 +{
170790 + const char *name;
170791 + const_tree type_name, type;
170792 +
170793 + if (var == NULL_TREE)
170794 + return false;
170795 +
170796 + type = TREE_TYPE(var);
170797 + type_name = TYPE_NAME(type);
170798 + if (type_name == NULL_TREE)
170799 + return false;
170800 +
170801 + if (DECL_P(type_name))
170802 + name = DECL_NAME_POINTER(type_name);
170803 + else
170804 + name = IDENTIFIER_POINTER(type_name);
170805 +
170806 + if (!strncmp(name, "size_overflow_type", 18))
170807 + return true;
170808 + return false;
170809 +}
170810 +
170811 +// Determine if a cloned function has all the original arguments
170812 +static bool unchanged_arglist(struct cgraph_node *new_node, struct cgraph_node *old_node)
170813 +{
170814 + const_tree new_decl_list, old_decl_list;
170815 +
170816 + if (new_node->clone_of && new_node->clone.tree_map)
170817 + return !new_node->clone.args_to_skip;
170818 +
170819 + new_decl_list = DECL_ARGUMENTS(NODE_DECL(new_node));
170820 + old_decl_list = DECL_ARGUMENTS(NODE_DECL(old_node));
170821 + if (new_decl_list != NULL_TREE && old_decl_list != NULL_TREE)
170822 + gcc_assert(list_length(new_decl_list) == list_length(old_decl_list));
170823 +
170824 + return true;
170825 +}
170826 +
170827 +unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num)
170828 +{
170829 + unsigned int new_num;
170830 + const_tree fndecl_arg;
170831 + tree fndecl_arglist = DECL_ARGUMENTS(fndecl);
170832 + const_tree arg, target_fndecl_arglist;
170833 +
170834 + if (num == 0)
170835 + return num;
170836 +
170837 + if (fndecl == correct_argnum_of_fndecl && !DECL_ARTIFICIAL(fndecl))
170838 + return num;
170839 + else if (fndecl == correct_argnum_of_fndecl && DECL_ARTIFICIAL(fndecl))
170840 + return CANNOT_FIND_ARG;
170841 +
170842 + target_fndecl_arglist = DECL_ARGUMENTS(correct_argnum_of_fndecl);
170843 + if (fndecl_arglist == NULL_TREE || target_fndecl_arglist == NULL_TREE)
170844 + return CANNOT_FIND_ARG;
170845 +
170846 + fndecl_arg = chain_index(num - 1, fndecl_arglist);
170847 + if (fndecl_arg == NULL_TREE)
170848 + return CANNOT_FIND_ARG;
170849 +
170850 + for (arg = target_fndecl_arglist, new_num = 1; arg; arg = TREE_CHAIN(arg), new_num++) {
170851 + if (arg == fndecl_arg || !strcmp(DECL_NAME_POINTER(arg), DECL_NAME_POINTER(fndecl_arg)))
170852 + return new_num;
170853 + }
170854 +
170855 + return CANNOT_FIND_ARG;
170856 +}
170857 +
170858 +// Find the specified argument in the originally cloned function
170859 +static unsigned int clone_argnum_on_orig(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int clone_argnum)
170860 +{
170861 + bitmap args_to_skip;
170862 + unsigned int i, new_argnum = clone_argnum;
170863 +
170864 + if (unchanged_arglist(new_node, old_node))
170865 + return clone_argnum;
170866 +
170867 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
170868 + args_to_skip = new_node->clone.args_to_skip;
170869 + for (i = 0; i < clone_argnum; i++) {
170870 + if (bitmap_bit_p(args_to_skip, i))
170871 + new_argnum++;
170872 + }
170873 + return new_argnum;
170874 +}
170875 +
170876 +// Find the specified argument in the clone
170877 +static unsigned int orig_argnum_on_clone(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int orig_argnum)
170878 +{
170879 + bitmap args_to_skip;
170880 + unsigned int i, new_argnum = orig_argnum;
170881 +
170882 + if (unchanged_arglist(new_node, old_node))
170883 + return orig_argnum;
170884 +
170885 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
170886 + args_to_skip = new_node->clone.args_to_skip;
170887 + if (bitmap_bit_p(args_to_skip, orig_argnum - 1))
170888 + // XXX torolni kellene a nodeot
170889 + return CANNOT_FIND_ARG;
170890 +
170891 + for (i = 0; i < orig_argnum; i++) {
170892 + if (bitmap_bit_p(args_to_skip, i))
170893 + new_argnum--;
170894 + }
170895 + return new_argnum;
170896 +}
170897 +
170898 +// Associate the argument between a clone and a cloned function
170899 +static unsigned int get_correct_argnum_cnode(struct cgraph_node *node, struct cgraph_node *correct_argnum_of_node, unsigned int argnum)
170900 +{
170901 + bool node_clone, correct_argnum_of_node_clone;
170902 + const_tree correct_argnum_of_node_decl, node_decl;
170903 +
170904 + if (node == correct_argnum_of_node)
170905 + return argnum;
170906 + if (argnum == 0)
170907 + return argnum;
170908 +
170909 + correct_argnum_of_node_decl = NODE_DECL(correct_argnum_of_node);
170910 + gcc_assert(correct_argnum_of_node_decl != NULL_TREE);
170911 + gcc_assert(correct_argnum_of_node && !DECL_ARTIFICIAL(correct_argnum_of_node_decl));
170912 +
170913 + if (node) {
170914 + node_decl = NODE_DECL(node);
170915 + gcc_assert(!DECL_ARTIFICIAL(node_decl));
170916 + node_clone = made_by_compiler(node_decl);
170917 + } else {
170918 + node_decl = NULL_TREE;
170919 + node_clone = false;
170920 + }
170921 +
170922 + if (correct_argnum_of_node_decl == node_decl)
170923 + return argnum;
170924 +
170925 + correct_argnum_of_node_clone = made_by_compiler(correct_argnum_of_node_decl);
170926 + // the original decl is lost if both nodes are clones
170927 + if (node_clone && correct_argnum_of_node_clone) {
170928 + gcc_assert(unchanged_arglist(node, correct_argnum_of_node));
170929 + return argnum;
170930 + }
170931 +
170932 + if (node_clone && !correct_argnum_of_node_clone)
170933 + return clone_argnum_on_orig(correct_argnum_of_node, node, argnum);
170934 + else if (!node_clone && correct_argnum_of_node_clone)
170935 + return orig_argnum_on_clone(correct_argnum_of_node, node, argnum);
170936 +
170937 + if (node)
170938 + debug_tree((tree)NODE_DECL(node));
170939 + debug_tree((tree)correct_argnum_of_node_decl);
170940 + gcc_unreachable();
170941 +}
170942 +
170943 +unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum)
170944 +{
170945 + struct cgraph_node *node, *correct_argnum_of_node;
170946 +
170947 + gcc_assert(decl != NULL_TREE);
170948 + gcc_assert(correct_argnum_of_decl != NULL_TREE);
170949 +
170950 + correct_argnum_of_node = get_cnode(correct_argnum_of_decl);
170951 + if (!correct_argnum_of_node || DECL_ARTIFICIAL(decl) || DECL_ARTIFICIAL(correct_argnum_of_decl))
170952 + return get_correct_argnum_fndecl(decl, correct_argnum_of_decl, argnum);
170953 +
170954 + node = get_cnode(decl);
170955 + return get_correct_argnum_cnode(node, correct_argnum_of_node, argnum);
170956 +}
170957 +
170958 +// Find the original cloned function
170959 +tree get_orig_fndecl(const_tree clone_fndecl)
170960 +{
170961 + struct cgraph_node *node;
170962 +
170963 + gcc_assert(TREE_CODE(clone_fndecl) == FUNCTION_DECL);
170964 +
170965 + if (DECL_ABSTRACT_ORIGIN(clone_fndecl))
170966 + return (tree)DECL_ORIGIN(clone_fndecl);
170967 + node = get_cnode(clone_fndecl);
170968 + if (!node)
170969 + return (tree)clone_fndecl;
170970 +
170971 + while (node->clone_of)
170972 + node = node->clone_of;
170973 + if (!made_by_compiler(NODE_DECL(node)))
170974 + return NODE_DECL(node);
170975 + // Return the cloned decl because it is needed for the transform callback
170976 + return (tree)clone_fndecl;
170977 +}
170978 +
170979 +static tree get_interesting_fndecl_from_stmt(const gcall *stmt)
170980 +{
170981 + if (gimple_call_num_args(stmt) == 0)
170982 + return NULL_TREE;
170983 + return gimple_call_fndecl(stmt);
170984 +}
170985 +
170986 +tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt)
170987 +{
170988 + tree fndecl;
170989 +
170990 + fndecl = get_interesting_fndecl_from_stmt(stmt);
170991 + if (fndecl == NULL_TREE)
170992 + return NULL_TREE;
170993 + return get_orig_fndecl(fndecl);
170994 +}
170995 +
170996 +void set_dominance_info(void)
170997 +{
170998 + calculate_dominance_info(CDI_DOMINATORS);
170999 + calculate_dominance_info(CDI_POST_DOMINATORS);
171000 +}
171001 +
171002 +void unset_dominance_info(void)
171003 +{
171004 + free_dominance_info(CDI_DOMINATORS);
171005 + free_dominance_info(CDI_POST_DOMINATORS);
171006 +}
171007 +
171008 +void set_current_function_decl(tree fndecl)
171009 +{
171010 + gcc_assert(fndecl != NULL_TREE);
171011 +
171012 + push_cfun(DECL_STRUCT_FUNCTION(fndecl));
171013 +#if BUILDING_GCC_VERSION <= 4007
171014 + current_function_decl = fndecl;
171015 +#endif
171016 + set_dominance_info();
171017 +}
171018 +
171019 +void unset_current_function_decl(void)
171020 +{
171021 + unset_dominance_info();
171022 +#if BUILDING_GCC_VERSION <= 4007
171023 + current_function_decl = NULL_TREE;
171024 +#endif
171025 + pop_cfun();
171026 +}
171027 +
171028 +bool is_valid_cgraph_node(struct cgraph_node *node)
171029 +{
171030 + if (cgraph_function_body_availability(node) == AVAIL_NOT_AVAILABLE)
171031 + return false;
171032 + if (node->thunk.thunk_p || node->alias)
171033 + return false;
171034 + return true;
171035 +}
171036 +
171037 +tree get_lhs(const_gimple stmt)
171038 +{
171039 + switch (gimple_code(stmt)) {
171040 + case GIMPLE_ASSIGN:
171041 + case GIMPLE_CALL:
171042 + return gimple_get_lhs(stmt);
171043 + case GIMPLE_PHI:
171044 + return gimple_phi_result(stmt);
171045 + default:
171046 + debug_gimple_stmt((gimple)stmt);
171047 + gcc_unreachable();
171048 + }
171049 +}
171050 +
171051 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
171052 new file mode 100644
171053 index 0000000..f1cc040
171054 --- /dev/null
171055 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
171056 @@ -0,0 +1,318 @@
171057 +/*
171058 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
171059 + * Licensed under the GPL v2, or (at your option) v3
171060 + *
171061 + * Homepage:
171062 + * https://github.com/ephox-gcc-plugins/size_overflow
171063 + *
171064 + * Documentation:
171065 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
171066 + *
171067 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
171068 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
171069 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
171070 + *
171071 + * Usage:
171072 + * $ make
171073 + * $ make run
171074 + */
171075 +
171076 +#include "size_overflow.h"
171077 +
171078 +int plugin_is_GPL_compatible;
171079 +
171080 +tree report_size_overflow_decl;
171081 +
171082 +tree size_overflow_type_HI;
171083 +tree size_overflow_type_SI;
171084 +tree size_overflow_type_DI;
171085 +tree size_overflow_type_TI;
171086 +
171087 +static struct plugin_info size_overflow_plugin_info = {
171088 + .version = "20151201",
171089 + .help = "no-size-overflow\tturn off size overflow checking\n",
171090 +};
171091 +
171092 +static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
171093 +{
171094 + unsigned int arg_count;
171095 + enum tree_code code = TREE_CODE(*node);
171096 +
171097 + switch (code) {
171098 + case FUNCTION_DECL:
171099 + arg_count = type_num_arguments(TREE_TYPE(*node));
171100 + break;
171101 + case FUNCTION_TYPE:
171102 + case METHOD_TYPE:
171103 + arg_count = type_num_arguments(*node);
171104 + break;
171105 + default:
171106 + *no_add_attrs = true;
171107 + debug_tree(*node);
171108 + error("%s: %qE attribute only applies to functions", __func__, name);
171109 + return NULL_TREE;
171110 + }
171111 +
171112 + for (; args; args = TREE_CHAIN(args)) {
171113 + int cur_val;
171114 + tree position = TREE_VALUE(args);
171115 +
171116 + if (TREE_CODE(position) != INTEGER_CST) {
171117 + error("%s: parameter isn't an integer", __func__);
171118 + debug_tree(args);
171119 + *no_add_attrs = true;
171120 + return NULL_TREE;
171121 + }
171122 +
171123 + cur_val = tree_to_shwi(position);
171124 + if (cur_val < 0 || arg_count < (unsigned int)cur_val) {
171125 + error("%s: parameter %d is outside range.", __func__, cur_val);
171126 + *no_add_attrs = true;
171127 + return NULL_TREE;
171128 + }
171129 + }
171130 + return NULL_TREE;
171131 +}
171132 +
171133 +static tree handle_intentional_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
171134 +{
171135 + unsigned int arg_count;
171136 + HOST_WIDE_INT s_first_arg;
171137 + enum tree_code code = TREE_CODE(*node);
171138 +
171139 + switch (code) {
171140 + case FUNCTION_DECL:
171141 + arg_count = type_num_arguments(TREE_TYPE(*node));
171142 + break;
171143 + case FUNCTION_TYPE:
171144 + case METHOD_TYPE:
171145 + arg_count = type_num_arguments(*node);
171146 + break;
171147 + case VAR_DECL:
171148 + case FIELD_DECL:
171149 + return NULL_TREE;
171150 + default:
171151 + *no_add_attrs = true;
171152 + debug_tree(*node);
171153 + error("%qE attribute only applies to functions, fields or vars", name);
171154 + return NULL_TREE;
171155 + }
171156 +
171157 + s_first_arg = tree_to_shwi(TREE_VALUE(args));
171158 + if (s_first_arg == -1)
171159 + return NULL_TREE;
171160 + if (s_first_arg < -1)
171161 + error("%s: parameter %d is outside range.", __func__, (int)s_first_arg);
171162 +
171163 + for (; args; args = TREE_CHAIN(args)) {
171164 + unsigned int cur_val;
171165 +
171166 + if (TREE_CODE(TREE_VALUE(args)) != INTEGER_CST) {
171167 + error("%s: parameter isn't an integer", __func__);
171168 + debug_tree(args);
171169 + *no_add_attrs = true;
171170 + return NULL_TREE;
171171 + }
171172 +
171173 + cur_val = (unsigned int)tree_to_uhwi(TREE_VALUE(args));
171174 + if (cur_val > arg_count ) {
171175 + error("%s: parameter %u is outside range. (arg_count: %u)", __func__, cur_val, arg_count);
171176 + *no_add_attrs = true;
171177 + return NULL_TREE;
171178 + }
171179 + }
171180 + return NULL_TREE;
171181 +}
171182 +
171183 +static struct attribute_spec size_overflow_attr = {
171184 + .name = "size_overflow",
171185 + .min_length = 1,
171186 + .max_length = -1,
171187 + .decl_required = true,
171188 + .type_required = false,
171189 + .function_type_required = false,
171190 + .handler = handle_size_overflow_attribute,
171191 +#if BUILDING_GCC_VERSION >= 4007
171192 + .affects_type_identity = false
171193 +#endif
171194 +};
171195 +
171196 +static struct attribute_spec intentional_overflow_attr = {
171197 + .name = "intentional_overflow",
171198 + .min_length = 1,
171199 + .max_length = -1,
171200 + .decl_required = true,
171201 + .type_required = false,
171202 + .function_type_required = false,
171203 + .handler = handle_intentional_overflow_attribute,
171204 +#if BUILDING_GCC_VERSION >= 4007
171205 + .affects_type_identity = false
171206 +#endif
171207 +};
171208 +
171209 +static void register_attributes(void __unused *event_data, void __unused *data)
171210 +{
171211 + register_attribute(&size_overflow_attr);
171212 + register_attribute(&intentional_overflow_attr);
171213 +}
171214 +
171215 +static tree create_typedef(tree type, const char* ident)
171216 +{
171217 + tree new_type, decl;
171218 +
171219 + new_type = build_variant_type_copy(type);
171220 + decl = build_decl(BUILTINS_LOCATION, TYPE_DECL, get_identifier(ident), new_type);
171221 + DECL_ORIGINAL_TYPE(decl) = type;
171222 + TYPE_NAME(new_type) = decl;
171223 + return new_type;
171224 +}
171225 +
171226 +// Create the noreturn report_size_overflow() function decl.
171227 +static void size_overflow_start_unit(void __unused *gcc_data, void __unused *user_data)
171228 +{
171229 + tree const_char_ptr_type_node;
171230 + tree fntype;
171231 +
171232 + const_char_ptr_type_node = build_pointer_type(build_type_variant(char_type_node, 1, 0));
171233 +
171234 + size_overflow_type_HI = create_typedef(intHI_type_node, "size_overflow_type_HI");
171235 + size_overflow_type_SI = create_typedef(intSI_type_node, "size_overflow_type_SI");
171236 + size_overflow_type_DI = create_typedef(intDI_type_node, "size_overflow_type_DI");
171237 + size_overflow_type_TI = create_typedef(intTI_type_node, "size_overflow_type_TI");
171238 +
171239 + // void report_size_overflow(const char *loc_file, unsigned int loc_line, const char *current_func, const char *ssa_var)
171240 + fntype = build_function_type_list(void_type_node,
171241 + const_char_ptr_type_node,
171242 + unsigned_type_node,
171243 + const_char_ptr_type_node,
171244 + const_char_ptr_type_node,
171245 + NULL_TREE);
171246 + report_size_overflow_decl = build_fn_decl("report_size_overflow", fntype);
171247 +
171248 + DECL_ASSEMBLER_NAME(report_size_overflow_decl);
171249 + TREE_PUBLIC(report_size_overflow_decl) = 1;
171250 + DECL_EXTERNAL(report_size_overflow_decl) = 1;
171251 + DECL_ARTIFICIAL(report_size_overflow_decl) = 1;
171252 +// TREE_THIS_VOLATILE(report_size_overflow_decl) = 1;
171253 +// !!!
171254 + DECL_PRESERVE_P(report_size_overflow_decl) = 1;
171255 + DECL_UNINLINABLE(report_size_overflow_decl) = 1;
171256 + TREE_USED(report_size_overflow_decl) = 1;
171257 + TREE_NOTHROW(report_size_overflow_decl) = 1;
171258 +}
171259 +
171260 +#if BUILDING_GCC_VERSION >= 4009
171261 +static bool gate_disable_ubsan_si_overflow(void)
171262 +{
171263 + flag_sanitize &= ~SANITIZE_SI_OVERFLOW;
171264 + return true;
171265 +}
171266 +
171267 +static const struct pass_data disable_ubsan_si_overflow_pass_data = {
171268 + .type = GIMPLE_PASS,
171269 + .name = "disable_ubsan_si_overflow",
171270 + .optinfo_flags = OPTGROUP_NONE,
171271 +#if BUILDING_GCC_VERSION >= 5000
171272 +#else
171273 + .has_gate = true,
171274 + .has_execute = false,
171275 +#endif
171276 + .tv_id = TV_NONE,
171277 + .properties_required = 0,
171278 + .properties_provided = 0,
171279 + .properties_destroyed = 0,
171280 + .todo_flags_start = 0,
171281 + .todo_flags_finish = 0
171282 +};
171283 +
171284 +namespace {
171285 +class disable_ubsan_si_overflow_pass : public gimple_opt_pass {
171286 +public:
171287 + disable_ubsan_si_overflow_pass() : gimple_opt_pass(disable_ubsan_si_overflow_pass_data, g) {}
171288 +#if BUILDING_GCC_VERSION >= 5000
171289 + virtual bool gate(function *) { return gate_disable_ubsan_si_overflow(); }
171290 +#else
171291 + bool gate() { return gate_disable_ubsan_si_overflow(); }
171292 +#endif
171293 +};
171294 +}
171295 +
171296 +opt_pass *make_disable_ubsan_si_overflow_pass(void)
171297 +{
171298 + return new disable_ubsan_si_overflow_pass();
171299 +}
171300 +#endif
171301 +
171302 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
171303 +{
171304 + int i;
171305 + const char * const plugin_name = plugin_info->base_name;
171306 + const int argc = plugin_info->argc;
171307 + const struct plugin_argument * const argv = plugin_info->argv;
171308 + bool enable = true;
171309 + struct register_pass_info insert_size_overflow_asm_pass_info;
171310 + struct register_pass_info size_overflow_functions_pass_info;
171311 +#if BUILDING_GCC_VERSION >= 4009
171312 + struct register_pass_info disable_ubsan_si_overflow_pass_info;
171313 +#endif
171314 +
171315 + static const struct ggc_root_tab gt_ggc_r_gt_size_overflow[] = {
171316 + {
171317 + .base = &report_size_overflow_decl,
171318 + .nelt = 1,
171319 + .stride = sizeof(report_size_overflow_decl),
171320 + .cb = &gt_ggc_mx_tree_node,
171321 + .pchw = &gt_pch_nx_tree_node
171322 + },
171323 + LAST_GGC_ROOT_TAB
171324 + };
171325 +
171326 + insert_size_overflow_asm_pass_info.pass = make_insert_size_overflow_asm_pass();
171327 + insert_size_overflow_asm_pass_info.reference_pass_name = "ssa";
171328 + insert_size_overflow_asm_pass_info.ref_pass_instance_number = 1;
171329 + insert_size_overflow_asm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
171330 +
171331 + size_overflow_functions_pass_info.pass = make_size_overflow_functions_pass();
171332 + size_overflow_functions_pass_info.reference_pass_name = "inline";
171333 + size_overflow_functions_pass_info.ref_pass_instance_number = 1;
171334 + size_overflow_functions_pass_info.pos_op = PASS_POS_INSERT_AFTER;
171335 +
171336 + if (!plugin_default_version_check(version, &gcc_version)) {
171337 + error(G_("incompatible gcc/plugin versions"));
171338 + return 1;
171339 + }
171340 +
171341 + for (i = 0; i < argc; ++i) {
171342 + if (!strcmp(argv[i].key, "no-size-overflow")) {
171343 + enable = false;
171344 + continue;
171345 + }
171346 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
171347 + }
171348 +
171349 + register_callback(plugin_name, PLUGIN_INFO, NULL, &size_overflow_plugin_info);
171350 + if (enable) {
171351 +#if BUILDING_GCC_VERSION >= 4009
171352 + if (flag_sanitize & SANITIZE_SI_OVERFLOW) {
171353 + error(G_("ubsan SANITIZE_SI_OVERFLOW option is unsupported"));
171354 + return 1;
171355 + }
171356 +#endif
171357 + register_callback(plugin_name, PLUGIN_START_UNIT, &size_overflow_start_unit, NULL);
171358 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_size_overflow);
171359 +#if BUILDING_GCC_VERSION >= 4009
171360 + flag_sanitize |= SANITIZE_SI_OVERFLOW;
171361 + disable_ubsan_si_overflow_pass_info.pass = make_disable_ubsan_si_overflow_pass();
171362 + disable_ubsan_si_overflow_pass_info.reference_pass_name = "ubsan";
171363 + disable_ubsan_si_overflow_pass_info.ref_pass_instance_number = 1;
171364 + disable_ubsan_si_overflow_pass_info.pos_op = PASS_POS_REPLACE;
171365 +
171366 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &disable_ubsan_si_overflow_pass_info);
171367 +#endif
171368 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &insert_size_overflow_asm_pass_info);
171369 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &size_overflow_functions_pass_info);
171370 + }
171371 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
171372 +
171373 + return 0;
171374 +}
171375 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
171376 new file mode 100644
171377 index 0000000..317cd6c
171378 --- /dev/null
171379 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
171380 @@ -0,0 +1,352 @@
171381 +/*
171382 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
171383 + * Licensed under the GPL v2, or (at your option) v3
171384 + *
171385 + * Homepage:
171386 + * https://github.com/ephox-gcc-plugins/size_overflow
171387 + *
171388 + * Documentation:
171389 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
171390 + *
171391 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
171392 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
171393 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
171394 + *
171395 + * Usage:
171396 + * $ make
171397 + * $ make run
171398 + */
171399 +
171400 +#include "size_overflow.h"
171401 +
171402 +#include "size_overflow_hash.h"
171403 +#include "disable_size_overflow_hash.h"
171404 +#include "size_overflow_hash_aux.h"
171405 +
171406 +static const_tree get_function_type(const_tree decl)
171407 +{
171408 + if (FUNCTION_PTR_P(decl))
171409 + return TREE_TYPE(TREE_TYPE(decl));
171410 + gcc_assert(TREE_CODE(decl) == FUNCTION_DECL);
171411 + return TREE_TYPE(decl);
171412 +}
171413 +
171414 +static unsigned char get_tree_code(const_tree type)
171415 +{
171416 + switch (TREE_CODE(type)) {
171417 + case ARRAY_TYPE:
171418 + return 0;
171419 + case BOOLEAN_TYPE:
171420 + return 1;
171421 + case ENUMERAL_TYPE:
171422 + return 2;
171423 + case FUNCTION_TYPE:
171424 + return 3;
171425 + case INTEGER_TYPE:
171426 + return 4;
171427 + case POINTER_TYPE:
171428 + return 5;
171429 + case RECORD_TYPE:
171430 + return 6;
171431 + case UNION_TYPE:
171432 + return 7;
171433 + case VOID_TYPE:
171434 + return 8;
171435 + case REAL_TYPE:
171436 + return 9;
171437 + case VECTOR_TYPE:
171438 + return 10;
171439 + case REFERENCE_TYPE:
171440 + return 11;
171441 + case OFFSET_TYPE:
171442 + return 12;
171443 + case COMPLEX_TYPE:
171444 + return 13;
171445 + default:
171446 + debug_tree((tree)type);
171447 + gcc_unreachable();
171448 + }
171449 +}
171450 +
171451 +// http://www.team5150.com/~andrew/noncryptohashzoo2~/CrapWow.html
171452 +static unsigned int CrapWow(const char *key, unsigned int len, unsigned int seed)
171453 +{
171454 +#define cwfold( a, b, lo, hi ) { p = (unsigned int)(a) * (unsigned long long)(b); lo ^= (unsigned int)p; hi ^= (unsigned int)(p >> 32); }
171455 +#define cwmixa( in ) { cwfold( in, m, k, h ); }
171456 +#define cwmixb( in ) { cwfold( in, n, h, k ); }
171457 +
171458 + unsigned int m = 0x57559429;
171459 + unsigned int n = 0x5052acdb;
171460 + const unsigned int *key4 = (const unsigned int *)key;
171461 + unsigned int h = len;
171462 + unsigned int k = len + seed + n;
171463 + unsigned long long p;
171464 +
171465 + while (len >= 8) {
171466 + cwmixb(key4[0]) cwmixa(key4[1]) key4 += 2;
171467 + len -= 8;
171468 + }
171469 + if (len >= 4) {
171470 + cwmixb(key4[0]) key4 += 1;
171471 + len -= 4;
171472 + }
171473 + if (len)
171474 + cwmixa(key4[0] & ((1 << (len * 8)) - 1 ));
171475 + cwmixb(h ^ (k + n));
171476 + return k ^ h;
171477 +
171478 +#undef cwfold
171479 +#undef cwmixa
171480 +#undef cwmixb
171481 +}
171482 +
171483 +static void set_hash(struct decl_hash *decl_hash_data)
171484 +{
171485 + unsigned int fn, type, codes, seed = 0;
171486 +
171487 + fn = CrapWow(decl_hash_data->fn_name, strlen(decl_hash_data->fn_name), seed) & 0xffff;
171488 + codes = CrapWow((const char*)decl_hash_data->tree_codes, decl_hash_data->tree_codes_len, seed) & 0xffff;
171489 + type = CrapWow(decl_hash_data->context, strlen(decl_hash_data->context), 0) & 0xffff;
171490 + decl_hash_data->hash = type ^ fn ^ codes;
171491 +}
171492 +
171493 +static void set_decl_type_codes(const_tree type, struct decl_hash *decl_hash_data)
171494 +{
171495 + gcc_assert(type != NULL_TREE);
171496 + gcc_assert(TREE_CODE_CLASS(TREE_CODE(type)) == tcc_type);
171497 +
171498 + while (type && decl_hash_data->tree_codes_len < CODES_LIMIT) {
171499 + decl_hash_data->tree_codes[decl_hash_data->tree_codes_len] = get_tree_code(type);
171500 + decl_hash_data->tree_codes_len++;
171501 + type = TREE_TYPE(type);
171502 + }
171503 +}
171504 +
171505 +static void set_result_codes(const_tree node, struct decl_hash *decl_hash_data)
171506 +{
171507 + const_tree result;
171508 +
171509 + gcc_assert(node != NULL_TREE);
171510 +
171511 + if (DECL_P(node)) {
171512 + result = DECL_RESULT(node);
171513 + if (result != NULL_TREE)
171514 + return set_decl_type_codes(TREE_TYPE(result), decl_hash_data);
171515 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
171516 + }
171517 +
171518 + gcc_assert(TYPE_P(node));
171519 +
171520 + if (TREE_CODE(node) == FUNCTION_TYPE)
171521 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
171522 +
171523 + return set_decl_type_codes(node, decl_hash_data);
171524 +}
171525 +
171526 +static void set_decl_codes(struct decl_hash *decl_hash_data)
171527 +{
171528 + const_tree arg, type;
171529 + enum tree_code code;
171530 +
171531 + if (TREE_CODE(decl_hash_data->decl) == VAR_DECL || TREE_CODE(decl_hash_data->decl) == FIELD_DECL) {
171532 + set_decl_type_codes(TREE_TYPE(decl_hash_data->decl), decl_hash_data);
171533 + return;
171534 + }
171535 +
171536 + type = get_function_type(decl_hash_data->decl);
171537 + code = TREE_CODE(type);
171538 + gcc_assert(code == FUNCTION_TYPE || code == METHOD_TYPE);
171539 +
171540 + if (FUNCTION_PTR_P(decl_hash_data->decl))
171541 + set_result_codes(type, decl_hash_data);
171542 + else
171543 + set_result_codes(decl_hash_data->decl, decl_hash_data);
171544 +
171545 + for (arg = TYPE_ARG_TYPES(type); arg != NULL_TREE && decl_hash_data->tree_codes_len < CODES_LIMIT; arg = TREE_CHAIN(arg))
171546 + set_decl_type_codes(TREE_VALUE(arg), decl_hash_data);
171547 +}
171548 +
171549 +static const struct size_overflow_hash *get_proper_hash_chain(const struct size_overflow_hash *entry, const char *func_name, const char *context)
171550 +{
171551 + for (; entry; entry = entry->next) {
171552 + if (strcmp(entry->name, func_name))
171553 + continue;
171554 + if (!strcmp(entry->context, context))
171555 + return entry;
171556 + }
171557 + return NULL;
171558 +}
171559 +
171560 +unsigned int get_decl_hash(const_tree decl, const char *decl_name)
171561 +{
171562 + struct decl_hash decl_hash_data;
171563 + enum tree_code code = TREE_CODE(decl);
171564 +
171565 + gcc_assert(code == FIELD_DECL || code == FUNCTION_DECL || code == VAR_DECL);
171566 +
171567 + // skip builtins __builtin_constant_p
171568 + if (code == FUNCTION_DECL && (DECL_BUILT_IN(decl) || DECL_BUILT_IN_CLASS(decl) == BUILT_IN_NORMAL))
171569 + return NO_HASH;
171570 +
171571 + decl_hash_data.fn_name = decl_name;
171572 + decl_hash_data.decl = decl;
171573 + decl_hash_data.context = get_decl_context(decl);
171574 + if (!decl_hash_data.context)
171575 + return NO_HASH;
171576 + decl_hash_data.tree_codes_len = 0;
171577 +
171578 + set_decl_codes(&decl_hash_data);
171579 + gcc_assert(decl_hash_data.tree_codes_len != 0);
171580 + set_hash(&decl_hash_data);
171581 + return decl_hash_data.hash;
171582 +}
171583 +
171584 +const char *get_orig_decl_name(const_tree decl)
171585 +{
171586 + const char *name;
171587 + unsigned int len;
171588 + const void *end;
171589 + const_tree orig_decl;
171590 +
171591 + if (TREE_CODE(decl) == FUNCTION_DECL)
171592 + orig_decl = DECL_ORIGIN(decl);
171593 + else
171594 + orig_decl = decl;
171595 +
171596 + len = DECL_NAME_LENGTH(orig_decl);
171597 + name = DECL_NAME_POINTER(orig_decl);
171598 +
171599 + /* Sometimes gcc loses the original cgraph node leaving only clones behind.
171600 + * In such cases we will extract the name from the clone and use it in the hash table
171601 + * without checking the parameter number on the original (unavailable) decl.
171602 + */
171603 +
171604 + if (made_by_compiler(orig_decl)) {
171605 + end = memchr(name, '.', len);
171606 + if (!end)
171607 + return xstrndup(name, len);
171608 + len = (long)end - (long)name;
171609 + gcc_assert(len > 0);
171610 + }
171611 +
171612 + return xstrndup(name, len);
171613 +}
171614 +
171615 +const struct size_overflow_hash *get_disable_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
171616 +{
171617 + const struct size_overflow_hash *entry, *entry_node;
171618 +
171619 + entry = disable_size_overflow_hash[hash];
171620 + entry_node = get_proper_hash_chain(entry, decl_name, context);
171621 + if (entry_node && entry_node->param & (1U << argnum))
171622 + return entry_node;
171623 + return NULL;
171624 +}
171625 +
171626 +const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
171627 +{
171628 + const struct size_overflow_hash *entry, *entry_node;
171629 +
171630 + entry = size_overflow_hash[hash];
171631 + entry_node = get_proper_hash_chain(entry, decl_name, context);
171632 + if (entry_node && entry_node->param & (1U << argnum))
171633 + return entry_node;
171634 +
171635 + entry = size_overflow_hash_aux[hash];
171636 + entry_node = get_proper_hash_chain(entry, decl_name, context);
171637 + if (entry_node && entry_node->param & (1U << argnum))
171638 + return entry_node;
171639 + return NULL;
171640 +}
171641 +
171642 +const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table)
171643 +{
171644 + const_tree orig_decl;
171645 + unsigned int orig_argnum, hash;
171646 + const char *decl_name, *context;
171647 +
171648 + if (made_by_compiler(fndecl)) {
171649 + orig_decl = get_orig_fndecl(fndecl);
171650 + orig_argnum = get_correct_argnum(fndecl, orig_decl, argnum);
171651 + } else {
171652 + orig_decl = fndecl;
171653 + orig_argnum = argnum;
171654 + }
171655 +
171656 + if (orig_argnum == CANNOT_FIND_ARG)
171657 + return NULL;
171658 +
171659 + decl_name = get_orig_decl_name(orig_decl);
171660 + hash = get_decl_hash(orig_decl, decl_name);
171661 + if (hash == NO_HASH)
171662 + return NULL;
171663 +
171664 + context = get_decl_context(orig_decl);
171665 + if (!context)
171666 + return NULL;
171667 +
171668 + if (hash_table == SIZE_OVERFLOW)
171669 + return get_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
171670 + return get_disable_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
171671 +}
171672 +
171673 +unsigned int find_arg_number_tree(const_tree arg, const_tree func)
171674 +{
171675 + tree var;
171676 + unsigned int argnum = 1;
171677 +
171678 + if (DECL_ARGUMENTS(func) == NULL_TREE)
171679 + return CANNOT_FIND_ARG;
171680 +
171681 + if (TREE_CODE(arg) == SSA_NAME)
171682 + arg = SSA_NAME_VAR(arg);
171683 +
171684 + for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) {
171685 + if (!operand_equal_p(arg, var, 0) && strcmp(DECL_NAME_POINTER(var), DECL_NAME_POINTER(arg)))
171686 + continue;
171687 + if (!skip_types(var))
171688 + return argnum;
171689 + }
171690 +
171691 + return CANNOT_FIND_ARG;
171692 +}
171693 +
171694 +const_tree get_attribute(const char* attr_name, const_tree decl)
171695 +{
171696 + const_tree attr = lookup_attribute(attr_name, DECL_ATTRIBUTES(decl));
171697 + if (attr && TREE_VALUE(attr))
171698 + return attr;
171699 + return NULL_TREE;
171700 +}
171701 +
171702 +/* Check if the function has a size_overflow attribute or it is in the size_overflow hash table.
171703 + * If the function is missing everywhere then print the missing message into stderr.
171704 + */
171705 +void print_missing_function(next_interesting_function_t node)
171706 +{
171707 + unsigned int argnum, hash;
171708 + const struct size_overflow_hash *entry;
171709 + const char *decl_name;
171710 +
171711 + if (node->marked == ASM_STMT_SO_MARK)
171712 + return;
171713 +
171714 + if (node->orig_next_node) {
171715 + hash = node->orig_next_node->hash;
171716 + decl_name = node->orig_next_node->decl_name;
171717 + argnum = node->orig_next_node->num;
171718 + gcc_assert(!strcmp(node->context, node->orig_next_node->context));
171719 + } else {
171720 + hash = node->hash;
171721 + decl_name = node->decl_name;
171722 + argnum = node->num;
171723 + }
171724 +
171725 + entry = get_size_overflow_hash_entry(hash, decl_name, node->context, argnum);
171726 + if (entry)
171727 + return;
171728 +
171729 + // inform() would be too slow
171730 + 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);
171731 +}
171732 +
171733 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform.c b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
171734 new file mode 100644
171735 index 0000000..8f42c7e
171736 --- /dev/null
171737 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
171738 @@ -0,0 +1,749 @@
171739 +/*
171740 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
171741 + * Licensed under the GPL v2, or (at your option) v3
171742 + *
171743 + * Homepage:
171744 + * https://github.com/ephox-gcc-plugins/size_overflow
171745 + *
171746 + * Documentation:
171747 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
171748 + *
171749 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
171750 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
171751 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
171752 + *
171753 + * Usage:
171754 + * $ make
171755 + * $ make run
171756 + */
171757 +
171758 +#include "size_overflow.h"
171759 +
171760 +static tree cast_to_orig_type(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node)
171761 +{
171762 + gimple def_stmt;
171763 + const_gimple assign;
171764 + tree result, orig_type = TREE_TYPE(orig_node);
171765 + gimple_stmt_iterator gsi;
171766 +
171767 + if (gimple_code(stmt) != GIMPLE_PHI) {
171768 + gsi = gsi_for_stmt(stmt);
171769 + assign = build_cast_stmt(visited, orig_type, new_node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
171770 + return get_lhs(assign);
171771 + }
171772 +
171773 + def_stmt = get_def_stmt(new_node);
171774 + if (gimple_code(def_stmt) == GIMPLE_PHI)
171775 + gsi = gsi_after_labels(gimple_bb(def_stmt));
171776 + else
171777 + gsi = gsi_for_stmt(def_stmt);
171778 +
171779 + result = gimple_phi_result(stmt);
171780 + assign = build_cast_stmt(visited, orig_type, new_node, SSA_NAME_VAR(result), &gsi, AFTER_STMT, false);
171781 + return get_lhs(assign);
171782 +}
171783 +
171784 +static void change_size_overflow_asm_input(gasm *stmt, tree new_input)
171785 +{
171786 + tree list;
171787 +
171788 + gcc_assert(is_size_overflow_insert_check_asm(stmt));
171789 +
171790 + list = build_tree_list(NULL_TREE, build_string(3, "rm"));
171791 + list = chainon(NULL_TREE, build_tree_list(list, new_input));
171792 + gimple_asm_set_input_op(stmt, 0, list);
171793 +}
171794 +
171795 +static void change_field_write_rhs(gassign *assign, const_tree orig_rhs, tree new_rhs)
171796 +{
171797 + const_tree rhs1, rhs2, rhs3 = NULL_TREE;
171798 +
171799 + rhs1 = gimple_assign_rhs1(assign);
171800 + if (rhs1 == orig_rhs) {
171801 + gimple_assign_set_rhs1(assign, new_rhs);
171802 + return;
171803 + }
171804 +
171805 + rhs2 = gimple_assign_rhs2(assign);
171806 + if (rhs2 == orig_rhs) {
171807 + gimple_assign_set_rhs2(assign, new_rhs);
171808 + return;
171809 + }
171810 +
171811 +#if BUILDING_GCC_VERSION >= 4006
171812 + rhs3 = gimple_assign_rhs3(assign);
171813 + if (rhs3 == orig_rhs) {
171814 + gimple_assign_set_rhs3(assign, new_rhs);
171815 + return;
171816 + }
171817 +#endif
171818 +
171819 + debug_gimple_stmt(assign);
171820 + fprintf(stderr, "orig_rhs:\n");
171821 + debug_tree((tree)orig_rhs);
171822 + fprintf(stderr, "rhs1:\n");
171823 + debug_tree((tree)rhs1);
171824 + fprintf(stderr, "rhs2:\n");
171825 + debug_tree((tree)rhs2);
171826 + fprintf(stderr, "rhs3:\n");
171827 + debug_tree((tree)rhs3);
171828 + gcc_unreachable();
171829 +}
171830 +
171831 +static void change_phi_arg(gphi *phi, tree new_node, unsigned int num)
171832 +{
171833 + unsigned int i;
171834 + location_t loc = gimple_location(phi);
171835 +
171836 + for (i = 0; i < gimple_phi_num_args(phi); i++) {
171837 + if (i == num)
171838 + add_phi_arg(phi, new_node, gimple_phi_arg_edge(phi, i), loc);
171839 + }
171840 +}
171841 +
171842 +static void change_orig_node(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node, unsigned int num)
171843 +{
171844 + tree cast_lhs = cast_to_orig_type(visited, stmt, orig_node, new_node);
171845 +
171846 + switch (gimple_code(stmt)) {
171847 + case GIMPLE_RETURN:
171848 + gimple_return_set_retval(as_a_greturn(stmt), cast_lhs);
171849 + break;
171850 + case GIMPLE_CALL:
171851 + gimple_call_set_arg(as_a_gcall(stmt), num - 1, cast_lhs);
171852 + break;
171853 + case GIMPLE_ASM:
171854 + change_size_overflow_asm_input(as_a_gasm(stmt), cast_lhs);
171855 + break;
171856 + case GIMPLE_ASSIGN:
171857 + change_field_write_rhs(as_a_gassign(stmt), orig_node, cast_lhs);
171858 + break;
171859 + case GIMPLE_PHI:
171860 + change_phi_arg(as_a_gphi(stmt), cast_lhs, num);
171861 + break;
171862 + default:
171863 + debug_gimple_stmt(stmt);
171864 + gcc_unreachable();
171865 + }
171866 +
171867 + update_stmt(stmt);
171868 +}
171869 +
171870 +// e.g., 3.8.2, 64, arch/x86/ia32/ia32_signal.c copy_siginfo_from_user32(): compat_ptr() u32 max
171871 +static bool skip_asm_cast(const_tree arg)
171872 +{
171873 + gimple def_stmt = get_def_stmt(arg);
171874 +
171875 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
171876 + return false;
171877 +
171878 + def_stmt = get_def_stmt(gimple_assign_rhs1(def_stmt));
171879 + if (is_size_overflow_asm(def_stmt))
171880 + return false;
171881 + return def_stmt && gimple_code(def_stmt) == GIMPLE_ASM;
171882 +}
171883 +
171884 +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)
171885 +{
171886 + interesting_stmts_t new_node;
171887 +
171888 + new_node = (interesting_stmts_t )xmalloc(sizeof(*new_node));
171889 + new_node->first_stmt = first_stmt;
171890 + new_node->num = num;
171891 + new_node->orig_node = orig_node;
171892 + new_node->next = head;
171893 + new_node->next_node = next_node;
171894 + return new_node;
171895 +}
171896 +
171897 +static void free_interesting_stmts(interesting_stmts_t head)
171898 +{
171899 + while (head) {
171900 + interesting_stmts_t cur = head->next;
171901 + free(head);
171902 + head = cur;
171903 + }
171904 +}
171905 +
171906 +/* This function calls the main recursion function (expand) that duplicates the stmts. Before that it checks the intentional_overflow attribute,
171907 + * it decides whether the duplication is necessary or not. After expand() it changes the orig node to the duplicated node
171908 + * in the original stmt (first stmt) and it inserts the overflow check for the arg of the callee or for the return value.
171909 + */
171910 +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)
171911 +{
171912 + enum tree_code orig_code;
171913 +
171914 + gcc_assert(orig_node != NULL_TREE);
171915 +
171916 + if (is_gimple_constant(orig_node))
171917 + return head;
171918 +
171919 + orig_code = TREE_CODE(orig_node);
171920 + gcc_assert(orig_code != FIELD_DECL && orig_code != FUNCTION_DECL);
171921 +
171922 + if (skip_types(orig_node))
171923 + return head;
171924 + // !!! temporarily ignore bitfield types
171925 + if (orig_code == FIELD_DECL && DECL_BIT_FIELD_TYPE(orig_node))
171926 + return head;
171927 +
171928 + // find a defining marked caller argument or struct field for arg
171929 + if (check_intentional_size_overflow_asm_and_attribute(orig_node) != MARK_NO)
171930 + return head;
171931 +
171932 + if (skip_asm_cast(orig_node))
171933 + return head;
171934 +
171935 + return create_interesting_stmts(head, next_node, orig_node, first_stmt, num);
171936 +}
171937 +
171938 +static bool is_signed_error_code_const(const_tree node)
171939 +{
171940 + HOST_WIDE_INT constant = tree_to_shwi(node);
171941 +
171942 + return constant >= -4095 && constant <= -1;
171943 +}
171944 +
171945 +static bool is_unsigned_error_code_const(const_tree node)
171946 +{
171947 + unsigned HOST_WIDE_INT constant = tree_to_uhwi(node);
171948 +
171949 + // ulong -4095
171950 + if (constant >= 0xfffffffffffff001)
171951 + return true;
171952 + // uint -4095
171953 + return constant >= 0xfffff001;
171954 +}
171955 +
171956 +static bool is_error_code_const(const_tree node)
171957 +{
171958 + enum machine_mode mode;
171959 +
171960 + if (!is_gimple_constant(node))
171961 + return false;
171962 + mode = TYPE_MODE(TREE_TYPE(node));
171963 + if (mode != SImode && mode != DImode)
171964 + return false;
171965 +
171966 + if (!TYPE_UNSIGNED(TREE_TYPE(node)) && is_signed_error_code_const(node))
171967 + return true;
171968 + return TYPE_UNSIGNED(TREE_TYPE(node)) && is_unsigned_error_code_const(node);
171969 +}
171970 +
171971 +static bool has_error_code(gphi *phi)
171972 +{
171973 + unsigned int i, len = gimple_phi_num_args(phi);
171974 +
171975 + for (i = 0; i < len; i++) {
171976 + const_tree arg = gimple_phi_arg_def(phi, i);
171977 +
171978 + if (is_error_code_const(arg))
171979 + return true;
171980 + }
171981 +
171982 + return false;
171983 +}
171984 +
171985 +static interesting_stmts_t search_interesting_rets(interesting_stmts_t head, next_interesting_function_t next_node_ret, greturn *ret)
171986 +{
171987 + tree first_node;
171988 +
171989 + if (!next_node_ret || next_node_ret->marked == ASM_STMT_SO_MARK)
171990 + return head;
171991 +
171992 + first_node = gimple_return_retval(ret);
171993 + if (first_node == NULL_TREE)
171994 + return head;
171995 +
171996 + return search_interesting_stmt(head, next_node_ret, ret, first_node, 0);
171997 +}
171998 +
171999 +static void handle_binary_assign(struct visited *visited, interesting_stmts_t expand_from, gassign *assign, tree rhs)
172000 +{
172001 + tree new_node;
172002 + gimple def_orig_node;
172003 +
172004 + new_node = expand(visited, expand_from, rhs);
172005 + if (new_node == NULL_TREE)
172006 + return;
172007 +
172008 + def_orig_node = get_def_stmt(rhs);
172009 + change_orig_node(visited, assign, rhs, new_node, 0);
172010 +
172011 + if (pointer_set_contains(visited->no_cast_check, def_orig_node))
172012 + return;
172013 + check_size_overflow(expand_from, assign, TREE_TYPE(new_node), new_node, rhs, BEFORE_STMT);
172014 +}
172015 +
172016 +static bool search_error_codes(struct visited *visited, gimple_set *visited_error_codes, interesting_stmts_t expand_from, tree lhs, bool error_code)
172017 +{
172018 + gimple def_stmt;
172019 +
172020 + def_stmt = get_def_stmt(lhs);
172021 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
172022 + return error_code;
172023 +
172024 + if (pointer_set_insert(visited_error_codes, def_stmt))
172025 + return error_code;
172026 +
172027 + if (is_gimple_constant(lhs))
172028 + return error_code;
172029 + if (skip_types(lhs))
172030 + return is_error_code_const(lhs);
172031 +
172032 + switch (gimple_code(def_stmt)) {
172033 + case GIMPLE_CALL:
172034 + case GIMPLE_ASM:
172035 + return error_code;
172036 + case GIMPLE_ASSIGN: {
172037 + tree rhs1, rhs2;
172038 + gassign *assign = as_a_gassign(def_stmt);
172039 +
172040 + switch (gimple_num_ops(assign)) {
172041 + case 2:
172042 + return search_error_codes(visited, visited_error_codes, expand_from, gimple_assign_rhs1(def_stmt), error_code);
172043 + case 3:
172044 + if (!error_code)
172045 + return error_code;
172046 +
172047 + /* Run stmt duplication from the binary assignment ops (rhs1 and rhs2)
172048 + * so that size_overflow checking skips the lhs of the last binary assignment
172049 + * before the error code PHI.
172050 + */
172051 + rhs1 = gimple_assign_rhs1(assign);
172052 + handle_binary_assign(visited, expand_from, assign, rhs1);
172053 + rhs2 = gimple_assign_rhs2(assign);
172054 + handle_binary_assign(visited, expand_from, assign, rhs2);
172055 + return error_code;
172056 + }
172057 + gcc_unreachable();
172058 + }
172059 + case GIMPLE_PHI: {
172060 + unsigned int i;
172061 +
172062 + error_code = has_error_code(as_a_gphi(def_stmt));
172063 + for (i = 0; i < gimple_phi_num_args(def_stmt); i++) {
172064 + error_code = search_error_codes(visited, visited_error_codes, expand_from, gimple_phi_arg_def(def_stmt, i), error_code);
172065 + }
172066 + return error_code;
172067 + }
172068 + default:
172069 + debug_gimple_stmt(def_stmt);
172070 + error("%s: unknown gimple code", __func__);
172071 + gcc_unreachable();
172072 + }
172073 +}
172074 +
172075 +static bool handle_error_codes(struct visited *visited, interesting_stmts_t expand_from)
172076 +{
172077 + bool error_code;
172078 + gimple_set *visited_error_codes;
172079 +
172080 + // expand the data flow from a return stmt
172081 + if (expand_from->next_node->num != 0 || strcmp(expand_from->next_node->context, "fndecl"))
172082 + return false;
172083 +
172084 + visited_error_codes = pointer_set_create();
172085 + error_code = search_error_codes(visited, visited_error_codes, expand_from, expand_from->orig_node, false);
172086 + pointer_set_destroy(visited_error_codes);
172087 +
172088 + return error_code;
172089 +}
172090 +
172091 +static void handle_interesting_stmt(struct visited *visited, interesting_stmts_t head)
172092 +{
172093 + interesting_stmts_t cur;
172094 +
172095 + for (cur = head; cur; cur = cur->next) {
172096 + tree new_node;
172097 + gimple orig_def_stmt;
172098 +
172099 + if (handle_error_codes(visited, cur))
172100 + continue;
172101 +
172102 + new_node = expand(visited, cur, cur->orig_node);
172103 + if (new_node == NULL_TREE)
172104 + continue;
172105 +
172106 + orig_def_stmt = get_def_stmt(cur->orig_node);
172107 +
172108 + change_orig_node(visited, cur->first_stmt, cur->orig_node, new_node, cur->num);
172109 +
172110 + if (pointer_set_contains(visited->no_cast_check, orig_def_stmt))
172111 + continue;
172112 + check_size_overflow(cur, cur->first_stmt, TREE_TYPE(new_node), new_node, cur->orig_node, BEFORE_STMT);
172113 + }
172114 +}
172115 +
172116 +static next_interesting_function_t get_interesting_function_next_node(tree decl, unsigned int num)
172117 +{
172118 + next_interesting_function_t next_node;
172119 + const struct size_overflow_hash *so_hash;
172120 + struct fn_raw_data raw_data;
172121 +
172122 + raw_data.decl = decl;
172123 + raw_data.decl_str = DECL_NAME_POINTER(decl);
172124 + raw_data.num = num;
172125 + raw_data.marked = YES_SO_MARK;
172126 +
172127 + next_node = get_global_next_interesting_function_entry_with_hash(&raw_data);
172128 + if (next_node && next_node->marked != NO_SO_MARK)
172129 + return next_node;
172130 +
172131 + so_hash = get_size_overflow_hash_entry_tree(raw_data.decl, raw_data.num, SIZE_OVERFLOW);
172132 + if (so_hash)
172133 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
172134 + return NULL;
172135 +}
172136 +
172137 +tree handle_fnptr_assign(const_gimple stmt)
172138 +{
172139 + tree field, rhs, op0;
172140 + const_tree op0_type;
172141 + enum tree_code rhs_code;
172142 +
172143 + // TODO skip binary assignments for now (fs/sync.c _591 = __bpf_call_base + _590;)
172144 + if (gimple_num_ops(stmt) != 2)
172145 + return NULL_TREE;
172146 +
172147 + gcc_assert(gimple_num_ops(stmt) == 2);
172148 + // TODO skip asm_stmt for now
172149 + if (gimple_code(stmt) == GIMPLE_ASM)
172150 + return NULL_TREE;
172151 + rhs = gimple_assign_rhs1(stmt);
172152 + if (is_gimple_constant(rhs))
172153 + return NULL_TREE;
172154 +
172155 + rhs_code = TREE_CODE(rhs);
172156 + if (rhs_code == VAR_DECL)
172157 + return rhs;
172158 +
172159 + switch (rhs_code) {
172160 + case ADDR_EXPR:
172161 + op0 = TREE_OPERAND(rhs, 0);
172162 + gcc_assert(TREE_CODE(op0) == FUNCTION_DECL);
172163 + return op0;
172164 + case COMPONENT_REF:
172165 + break;
172166 + // TODO skip array_ref for now
172167 + case ARRAY_REF:
172168 + return NULL_TREE;
172169 + // TODO skip ssa_name because it can lead to parm_decl
172170 + case SSA_NAME:
172171 + return NULL_TREE;
172172 + // TODO skip mem_ref and indirect_ref for now
172173 +#if BUILDING_GCC_VERSION >= 4006
172174 + case MEM_REF:
172175 +#endif
172176 + case INDIRECT_REF:
172177 + return NULL_TREE;
172178 + default:
172179 + debug_tree(rhs);
172180 + debug_gimple_stmt((gimple)stmt);
172181 + gcc_unreachable();
172182 + }
172183 +
172184 + op0 = TREE_OPERAND(rhs, 0);
172185 + switch (TREE_CODE(op0)) {
172186 + // TODO skip array_ref and parm_decl for now
172187 + case ARRAY_REF:
172188 + case PARM_DECL:
172189 + return NULL_TREE;
172190 + case COMPONENT_REF:
172191 +#if BUILDING_GCC_VERSION >= 4006
172192 + case MEM_REF:
172193 +#endif
172194 + case INDIRECT_REF:
172195 + case VAR_DECL:
172196 + break;
172197 + default:
172198 + debug_tree(op0);
172199 + gcc_unreachable();
172200 + }
172201 +
172202 + op0_type = TREE_TYPE(op0);
172203 + // TODO skip unions for now
172204 + if (TREE_CODE(op0_type) == UNION_TYPE)
172205 + return NULL_TREE;
172206 + gcc_assert(TREE_CODE(op0_type) == RECORD_TYPE);
172207 +
172208 + field = TREE_OPERAND(rhs, 1);
172209 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
172210 + return field;
172211 +}
172212 +
172213 +static tree get_fn_or_fnptr_decl(const gcall *call_stmt)
172214 +{
172215 + const_tree fnptr;
172216 + const_gimple def_stmt;
172217 + tree decl = gimple_call_fndecl(call_stmt);
172218 +
172219 + if (decl != NULL_TREE)
172220 + return decl;
172221 +
172222 + fnptr = gimple_call_fn(call_stmt);
172223 + if (fnptr == NULL_TREE)
172224 + return NULL_TREE;
172225 +
172226 + // !!! assertot kell irni 0-ra, mert csak az lehet ott
172227 + if (is_gimple_constant(fnptr))
172228 + return NULL_TREE;
172229 + def_stmt = get_fnptr_def_stmt(fnptr);
172230 + return handle_fnptr_assign(def_stmt);
172231 +}
172232 +
172233 +// Start stmt duplication on marked function parameters
172234 +static interesting_stmts_t search_interesting_calls(interesting_stmts_t head, gcall *call_stmt)
172235 +{
172236 + tree decl;
172237 + unsigned int i, len;
172238 +
172239 + len = gimple_call_num_args(call_stmt);
172240 + if (len == 0)
172241 + return head;
172242 +
172243 + decl = get_fn_or_fnptr_decl(call_stmt);
172244 + if (decl == NULL_TREE)
172245 + return head;
172246 +
172247 + for (i = 0; i < len; i++) {
172248 + tree arg;
172249 + next_interesting_function_t next_node;
172250 +
172251 + arg = gimple_call_arg(call_stmt, i);
172252 + if (is_gimple_constant(arg))
172253 + continue;
172254 + if (skip_types(arg))
172255 + continue;
172256 + next_node = get_interesting_function_next_node(decl, i + 1);
172257 + if (next_node)
172258 + head = search_interesting_stmt(head, next_node, call_stmt, arg, i + 1);
172259 + }
172260 +
172261 + return head;
172262 +}
172263 +
172264 +// Find assignements to structure fields and vardecls
172265 +static interesting_stmts_t search_interesting_structs_vardecls(interesting_stmts_t head, gassign *assign)
172266 +{
172267 + enum intentional_mark mark;
172268 + next_interesting_function_t next_node;
172269 + tree rhs1, rhs2, lhs, decl;
172270 +#if BUILDING_GCC_VERSION >= 4006
172271 + tree rhs3;
172272 +#endif
172273 +
172274 + lhs = gimple_assign_lhs(assign);
172275 +
172276 + if (VAR_P(lhs))
172277 + decl = lhs;
172278 + else
172279 + decl = get_ref_field(lhs);
172280 + if (decl == NULL_TREE)
172281 + return head;
172282 + if (DECL_NAME(decl) == NULL_TREE)
172283 + return head;
172284 +
172285 + // !!! temporarily ignore bitfield types
172286 + if (TREE_CODE(decl) == FIELD_DECL && DECL_BIT_FIELD_TYPE(decl))
172287 + return head;
172288 +
172289 + next_node = get_interesting_function_next_node(decl, 0);
172290 + if (!next_node)
172291 + return head;
172292 +
172293 + mark = get_intentional_attr_type(decl);
172294 + if (mark != MARK_NO)
172295 + return head;
172296 +
172297 + rhs1 = gimple_assign_rhs1(assign);
172298 + head = search_interesting_stmt(head, next_node, assign, rhs1, 0);
172299 +
172300 + rhs2 = gimple_assign_rhs2(assign);
172301 + if (rhs2)
172302 + head = search_interesting_stmt(head, next_node, assign, rhs2, 0);
172303 +
172304 +#if BUILDING_GCC_VERSION >= 4006
172305 + rhs3 = gimple_assign_rhs3(assign);
172306 + if (rhs3)
172307 + head = search_interesting_stmt(head, next_node, assign, rhs3, 0);
172308 +#endif
172309 + return head;
172310 +}
172311 +
172312 +static next_interesting_function_t create_so_asm_next_interesting_function_node(const gasm *stmt)
172313 +{
172314 + next_interesting_function_t next_node;
172315 + struct fn_raw_data raw_data;
172316 +
172317 + raw_data.decl = NULL_TREE;
172318 + raw_data.decl_str = gimple_asm_string(stmt);
172319 + raw_data.context = "attr";
172320 + raw_data.hash = 0;
172321 + raw_data.num = 0;
172322 + raw_data.marked = ASM_STMT_SO_MARK;
172323 +
172324 + next_node = get_global_next_interesting_function_entry(&raw_data);
172325 + if (next_node)
172326 + return next_node;
172327 + next_node = create_new_next_interesting_entry(&raw_data, NULL);
172328 + gcc_assert(next_node);
172329 +
172330 + add_to_global_next_interesting_function(next_node);
172331 + return next_node;
172332 +}
172333 +
172334 +// Collect interesting stmts for duplication
172335 +static void search_interesting_stmts(struct visited *visited)
172336 +{
172337 + basic_block bb;
172338 + next_interesting_function_t next_node_ret;
172339 + interesting_stmts_t head = NULL;
172340 +
172341 + next_node_ret = get_interesting_function_next_node(current_function_decl, 0);
172342 +
172343 + FOR_EACH_BB_FN(bb, cfun) {
172344 + gimple_stmt_iterator gsi;
172345 +
172346 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
172347 + gimple stmt = gsi_stmt(gsi);
172348 +
172349 + switch (gimple_code(stmt)) {
172350 + case GIMPLE_ASM: {
172351 + tree first_node;
172352 + next_interesting_function_t next_node;
172353 + const gasm *asm_stmt = as_a_gasm(stmt);
172354 +
172355 + if (!is_size_overflow_insert_check_asm(asm_stmt))
172356 + continue;
172357 + next_node = create_so_asm_next_interesting_function_node(asm_stmt);
172358 + first_node = get_size_overflow_asm_input(asm_stmt);
172359 + head = search_interesting_stmt(head, next_node, stmt, first_node, 0);
172360 + break;
172361 + }
172362 + case GIMPLE_RETURN:
172363 + head = search_interesting_rets(head, next_node_ret, as_a_greturn(stmt));
172364 + break;
172365 + case GIMPLE_CALL:
172366 + head = search_interesting_calls(head, as_a_gcall(stmt));
172367 + break;
172368 + case GIMPLE_ASSIGN:
172369 + /* !!! TODO LTO modeban nincs duplikalas a globalis valtozora, mert a tree mergek
172370 + * utan mar nem lehet megkulonboztetni attol a globalis valtozotol, aminek a scopeja csak a file
172371 + * igy a context nem vardecl lesz, hanem vardecl_filenev. De execute-ban kiirja, ha hianyzik a hash tablabol
172372 + * IPA-ban van duplikalas.
172373 + */
172374 + head = search_interesting_structs_vardecls(head, as_a_gassign(stmt));
172375 + break;
172376 + default:
172377 + break;
172378 + }
172379 + }
172380 + }
172381 +
172382 + handle_interesting_stmt(visited, head);
172383 + free_interesting_stmts(head);
172384 +}
172385 +
172386 +static struct visited *create_visited(void)
172387 +{
172388 + struct visited *new_node;
172389 +
172390 + new_node = (struct visited *)xmalloc(sizeof(*new_node));
172391 + new_node->stmts = pointer_set_create();
172392 + new_node->my_stmts = pointer_set_create();
172393 + new_node->skip_expr_casts = pointer_set_create();
172394 + new_node->no_cast_check = pointer_set_create();
172395 + return new_node;
172396 +}
172397 +
172398 +static void free_visited(struct visited *visited)
172399 +{
172400 + pointer_set_destroy(visited->stmts);
172401 + pointer_set_destroy(visited->my_stmts);
172402 + pointer_set_destroy(visited->skip_expr_casts);
172403 + pointer_set_destroy(visited->no_cast_check);
172404 +
172405 + free(visited);
172406 +}
172407 +
172408 +// Remove the size_overflow asm stmt and create an assignment from the input and output of the asm
172409 +static void replace_size_overflow_asm_with_assign(gasm *asm_stmt, tree lhs, tree rhs)
172410 +{
172411 + gassign *assign;
172412 + gimple_stmt_iterator gsi;
172413 +
172414 + // already removed
172415 + if (gimple_bb(asm_stmt) == NULL)
172416 + return;
172417 + gsi = gsi_for_stmt(asm_stmt);
172418 +
172419 + assign = gimple_build_assign(lhs, rhs);
172420 + gsi_insert_before(&gsi, assign, GSI_SAME_STMT);
172421 + SSA_NAME_DEF_STMT(lhs) = assign;
172422 +
172423 + gsi_remove(&gsi, true);
172424 +}
172425 +
172426 +// Replace our asm stmts with assignments (they are no longer needed and may interfere with later optimizations)
172427 +static void remove_size_overflow_asm(gimple stmt)
172428 +{
172429 + gimple_stmt_iterator gsi;
172430 + tree input, output;
172431 +
172432 + if (!is_size_overflow_asm(stmt))
172433 + return;
172434 +
172435 + if (gimple_asm_noutputs(as_a_gasm(stmt)) == 0) {
172436 + gsi = gsi_for_stmt(stmt);
172437 +
172438 + ipa_remove_stmt_references(cgraph_get_node(current_function_decl), stmt);
172439 + gsi_remove(&gsi, true);
172440 + return;
172441 + }
172442 +
172443 + input = gimple_asm_input_op(as_a_gasm(stmt), 0);
172444 + output = gimple_asm_output_op(as_a_gasm(stmt), 0);
172445 + replace_size_overflow_asm_with_assign(as_a_gasm(stmt), TREE_VALUE(output), TREE_VALUE(input));
172446 +}
172447 +
172448 +static void remove_all_size_overflow_asm(void)
172449 +{
172450 + basic_block bb;
172451 +
172452 + FOR_EACH_BB_FN(bb, cfun) {
172453 + gimple_stmt_iterator si;
172454 +
172455 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
172456 + remove_size_overflow_asm(gsi_stmt(si));
172457 + }
172458 +}
172459 +
172460 +unsigned int size_overflow_transform(struct cgraph_node *node __unused)
172461 +{
172462 + struct visited *visited;
172463 +
172464 +#if BUILDING_GCC_VERSION >= 4008
172465 + if (dump_file) {
172466 + fprintf(dump_file, "BEFORE TRANSFORM -------------------------\n");
172467 + size_overflow_dump_function(dump_file, node);
172468 + }
172469 +#endif
172470 + visited = create_visited();
172471 + set_dominance_info();
172472 +
172473 + search_interesting_stmts(visited);
172474 +
172475 + remove_all_size_overflow_asm();
172476 +
172477 + unset_dominance_info();
172478 + free_visited(visited);
172479 +
172480 +#if BUILDING_GCC_VERSION >= 4008
172481 + if (dump_file) {
172482 + fprintf(dump_file, "AFTER TRANSFORM -------------------------\n");
172483 + size_overflow_dump_function(dump_file, node);
172484 + }
172485 +#endif
172486 + return TODO_dump_func | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_ggc_collect | TODO_verify_flow;
172487 +}
172488 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
172489 new file mode 100644
172490 index 0000000..8a30b3b
172491 --- /dev/null
172492 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
172493 @@ -0,0 +1,1010 @@
172494 +/*
172495 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
172496 + * Licensed under the GPL v2, or (at your option) v3
172497 + *
172498 + * Homepage:
172499 + * https://github.com/ephox-gcc-plugins/size_overflow
172500 + *
172501 + * Documentation:
172502 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
172503 + *
172504 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
172505 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
172506 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
172507 + *
172508 + * Usage:
172509 + * $ make
172510 + * $ make run
172511 + */
172512 +
172513 +#include "size_overflow.h"
172514 +
172515 +#define MIN_CHECK true
172516 +#define MAX_CHECK false
172517 +
172518 +unsigned int call_count = 0;
172519 +
172520 +tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node)
172521 +{
172522 + const_tree type;
172523 + tree new_type;
172524 +
172525 + gcc_assert(node != NULL_TREE);
172526 +
172527 + type = TREE_TYPE(node);
172528 +
172529 + if (pointer_set_contains(visited->my_stmts, stmt))
172530 + return TREE_TYPE(node);
172531 +
172532 + switch (TYPE_MODE(type)) {
172533 + case QImode:
172534 + case HImode:
172535 + new_type = size_overflow_type_SI;
172536 + break;
172537 + case SImode:
172538 + new_type = size_overflow_type_DI;
172539 + break;
172540 + case DImode:
172541 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
172542 + new_type = TYPE_UNSIGNED(type) ? unsigned_intDI_type_node : intDI_type_node;
172543 + else
172544 + new_type = size_overflow_type_TI;
172545 + break;
172546 + case TImode:
172547 + gcc_assert(!TYPE_UNSIGNED(type));
172548 + new_type = size_overflow_type_TI;
172549 + break;
172550 + default:
172551 + debug_tree((tree)node);
172552 + error("%s: unsupported gcc configuration (%qE).", __func__, current_function_decl);
172553 + gcc_unreachable();
172554 + }
172555 +
172556 + if (TYPE_QUALS(type) != 0)
172557 + return build_qualified_type(new_type, TYPE_QUALS(type));
172558 + return new_type;
172559 +}
172560 +
172561 +tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before)
172562 +{
172563 + gimple_stmt_iterator gsi;
172564 + gimple new_stmt;
172565 +
172566 + if (rhs == NULL_TREE)
172567 + return NULL_TREE;
172568 +
172569 + gsi = gsi_for_stmt(stmt);
172570 + new_stmt = build_cast_stmt(visited, size_overflow_type, rhs, CREATE_NEW_VAR, &gsi, before, false);
172571 + if (gimple_assign_cast_p(new_stmt))
172572 + gimple_assign_set_rhs_code(new_stmt, CONVERT_EXPR);
172573 + pointer_set_insert(visited->my_stmts, new_stmt);
172574 +
172575 + return get_lhs(new_stmt);
172576 +}
172577 +
172578 +tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before)
172579 +{
172580 + tree lhs, dst_type;
172581 + gimple_stmt_iterator gsi;
172582 +
172583 + if (rhs1 == NULL_TREE) {
172584 + debug_gimple_stmt(oldstmt);
172585 + error("%s: rhs1 is NULL_TREE", __func__);
172586 + gcc_unreachable();
172587 + }
172588 +
172589 + switch (gimple_code(oldstmt)) {
172590 + case GIMPLE_ASM:
172591 + lhs = rhs1;
172592 + break;
172593 + case GIMPLE_CALL:
172594 + case GIMPLE_ASSIGN:
172595 + lhs = gimple_get_lhs(oldstmt);
172596 + break;
172597 + default:
172598 + debug_gimple_stmt(oldstmt);
172599 + gcc_unreachable();
172600 + }
172601 +
172602 + gsi = gsi_for_stmt(oldstmt);
172603 + pointer_set_insert(visited->stmts, oldstmt);
172604 + if (lookup_stmt_eh_lp(oldstmt) != 0) {
172605 + basic_block next_bb, cur_bb;
172606 + const_edge e;
172607 +
172608 + gcc_assert(before == false);
172609 + gcc_assert(stmt_can_throw_internal(oldstmt));
172610 + gcc_assert(gimple_code(oldstmt) == GIMPLE_CALL);
172611 + gcc_assert(!gsi_end_p(gsi));
172612 +
172613 + cur_bb = gimple_bb(oldstmt);
172614 + next_bb = cur_bb->next_bb;
172615 + e = find_edge(cur_bb, next_bb);
172616 + gcc_assert(e != NULL);
172617 + gcc_assert(e->flags & EDGE_FALLTHRU);
172618 +
172619 + gsi = gsi_after_labels(next_bb);
172620 + gcc_assert(!gsi_end_p(gsi));
172621 +
172622 + before = true;
172623 + oldstmt = gsi_stmt(gsi);
172624 + }
172625 +
172626 + if (is_gimple_constant(rhs1) && TREE_CODE_CLASS(gimple_assign_rhs_code(oldstmt)) == tcc_comparison)
172627 + dst_type = get_size_overflow_type(visited, oldstmt, rhs1);
172628 + else
172629 + dst_type = get_size_overflow_type(visited, oldstmt, lhs);
172630 +
172631 + if (is_gimple_constant(rhs1))
172632 + return cast_a_tree(dst_type, rhs1);
172633 + return cast_to_new_size_overflow_type(visited, oldstmt, rhs1, dst_type, before);
172634 +}
172635 +
172636 +tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3)
172637 +{
172638 + gassign *stmt;
172639 + gimple_stmt_iterator gsi;
172640 + tree size_overflow_type, new_var, lhs = gimple_assign_lhs(oldstmt);
172641 +
172642 + if (pointer_set_contains(visited->my_stmts, oldstmt))
172643 + return lhs;
172644 +
172645 + if (gimple_num_ops(oldstmt) != 4 && rhs1 == NULL_TREE) {
172646 + rhs1 = gimple_assign_rhs1(oldstmt);
172647 + rhs1 = create_assign(visited, oldstmt, rhs1, BEFORE_STMT);
172648 + }
172649 + if (gimple_num_ops(oldstmt) == 3 && rhs2 == NULL_TREE) {
172650 + rhs2 = gimple_assign_rhs2(oldstmt);
172651 + rhs2 = create_assign(visited, oldstmt, rhs2, BEFORE_STMT);
172652 + }
172653 +
172654 + stmt = as_a_gassign(gimple_copy(oldstmt));
172655 + gimple_set_location(stmt, gimple_location(oldstmt));
172656 + pointer_set_insert(visited->my_stmts, stmt);
172657 +
172658 + if (gimple_assign_rhs_code(oldstmt) == WIDEN_MULT_EXPR)
172659 + gimple_assign_set_rhs_code(stmt, MULT_EXPR);
172660 +
172661 + size_overflow_type = get_size_overflow_type(visited, oldstmt, node);
172662 +
172663 + new_var = create_new_var(size_overflow_type);
172664 + new_var = make_ssa_name(new_var, stmt);
172665 + gimple_assign_set_lhs(stmt, new_var);
172666 +
172667 + if (rhs1 != NULL_TREE)
172668 + gimple_assign_set_rhs1(stmt, rhs1);
172669 +
172670 + if (rhs2 != NULL_TREE)
172671 + gimple_assign_set_rhs2(stmt, rhs2);
172672 +#if BUILDING_GCC_VERSION >= 4006
172673 + if (rhs3 != NULL_TREE)
172674 + gimple_assign_set_rhs3(stmt, rhs3);
172675 +#endif
172676 + gimple_set_vuse(stmt, gimple_vuse(oldstmt));
172677 + gimple_set_vdef(stmt, gimple_vdef(oldstmt));
172678 +
172679 + gsi = gsi_for_stmt(oldstmt);
172680 + gsi_insert_after(&gsi, stmt, GSI_SAME_STMT);
172681 + update_stmt(stmt);
172682 + pointer_set_insert(visited->stmts, oldstmt);
172683 + return gimple_assign_lhs(stmt);
172684 +}
172685 +
172686 +static tree cast_parm_decl(struct visited *visited, tree phi_ssa_name, tree arg, tree size_overflow_type, basic_block bb)
172687 +{
172688 + const_gimple assign;
172689 + gimple_stmt_iterator gsi;
172690 + basic_block first_bb;
172691 +
172692 + gcc_assert(SSA_NAME_IS_DEFAULT_DEF(arg));
172693 +
172694 + if (bb->index == 0) {
172695 + first_bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
172696 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
172697 + set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
172698 + bb = first_bb;
172699 + }
172700 +
172701 + gsi = gsi_after_labels(bb);
172702 + assign = build_cast_stmt(visited, size_overflow_type, arg, phi_ssa_name, &gsi, BEFORE_STMT, false);
172703 + pointer_set_insert(visited->my_stmts, assign);
172704 + return get_lhs(assign);
172705 +}
172706 +
172707 +static tree use_phi_ssa_name(struct visited *visited, tree ssa_name_var, tree new_arg)
172708 +{
172709 + gimple_stmt_iterator gsi;
172710 + const_gimple assign;
172711 + gimple def_stmt = get_def_stmt(new_arg);
172712 +
172713 + if (gimple_code(def_stmt) == GIMPLE_PHI) {
172714 + gsi = gsi_after_labels(gimple_bb(def_stmt));
172715 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, BEFORE_STMT, true);
172716 + } else {
172717 + gsi = gsi_for_stmt(def_stmt);
172718 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, AFTER_STMT, true);
172719 + }
172720 +
172721 + pointer_set_insert(visited->my_stmts, assign);
172722 + return get_lhs(assign);
172723 +}
172724 +
172725 +static tree cast_visited_phi_arg(struct visited *visited, tree ssa_name_var, tree arg, tree size_overflow_type)
172726 +{
172727 + basic_block bb;
172728 + gimple_stmt_iterator gsi;
172729 + const_gimple def_stmt;
172730 + const_gimple assign;
172731 +
172732 + def_stmt = get_def_stmt(arg);
172733 + bb = gimple_bb(def_stmt);
172734 + gcc_assert(bb->index != 0);
172735 + gsi = gsi_after_labels(bb);
172736 +
172737 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, BEFORE_STMT, false);
172738 + pointer_set_insert(visited->my_stmts, assign);
172739 + return get_lhs(assign);
172740 +}
172741 +
172742 +static tree create_new_phi_arg(struct visited *visited, tree ssa_name_var, tree new_arg, gphi *oldstmt, unsigned int i)
172743 +{
172744 + tree size_overflow_type;
172745 + tree arg;
172746 + const_gimple def_stmt;
172747 +
172748 + if (new_arg != NULL_TREE && is_gimple_constant(new_arg))
172749 + return new_arg;
172750 +
172751 + arg = gimple_phi_arg_def(oldstmt, i);
172752 + def_stmt = get_def_stmt(arg);
172753 + gcc_assert(def_stmt != NULL);
172754 + size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
172755 +
172756 + switch (gimple_code(def_stmt)) {
172757 + case GIMPLE_PHI:
172758 + return cast_visited_phi_arg(visited, ssa_name_var, arg, size_overflow_type);
172759 + case GIMPLE_NOP: {
172760 + basic_block bb;
172761 +
172762 + bb = gimple_phi_arg_edge(oldstmt, i)->src;
172763 + return cast_parm_decl(visited, ssa_name_var, arg, size_overflow_type, bb);
172764 + }
172765 + case GIMPLE_ASM: {
172766 + gimple_stmt_iterator gsi;
172767 + const_gimple assign;
172768 + gimple stmt = get_def_stmt(arg);
172769 +
172770 + gsi = gsi_for_stmt(stmt);
172771 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, AFTER_STMT, false);
172772 + pointer_set_insert(visited->my_stmts, assign);
172773 + return get_lhs(assign);
172774 + }
172775 + default:
172776 + gcc_assert(new_arg != NULL_TREE);
172777 + gcc_assert(types_compatible_p(TREE_TYPE(new_arg), size_overflow_type));
172778 + return use_phi_ssa_name(visited, ssa_name_var, new_arg);
172779 + }
172780 +}
172781 +
172782 +static gphi *overflow_create_phi_node(struct visited *visited, gphi *oldstmt, tree result)
172783 +{
172784 + basic_block bb;
172785 + gphi *phi;
172786 + gimple_seq seq;
172787 + gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt);
172788 +
172789 + bb = gsi_bb(gsi);
172790 +
172791 + if (result == NULL_TREE) {
172792 + tree old_result = gimple_phi_result(oldstmt);
172793 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, old_result);
172794 +
172795 + result = create_new_var(size_overflow_type);
172796 + }
172797 +
172798 + phi = as_a_gphi(create_phi_node(result, bb));
172799 + gimple_phi_set_result(phi, make_ssa_name(result, phi));
172800 + seq = phi_nodes(bb);
172801 + gsi = gsi_last(seq);
172802 + gsi_remove(&gsi, false);
172803 +
172804 + gsi = gsi_for_stmt(oldstmt);
172805 + gsi_insert_after(&gsi, phi, GSI_NEW_STMT);
172806 + gimple_set_bb(phi, bb);
172807 + return phi;
172808 +}
172809 +
172810 +#if BUILDING_GCC_VERSION <= 4007
172811 +static tree create_new_phi_node(struct visited *visited, VEC(tree, heap) **args, tree ssa_name_var, gimple oldstmt)
172812 +#else
172813 +static tree create_new_phi_node(struct visited *visited, vec<tree, va_heap, vl_embed> *&args, tree ssa_name_var, gphi *oldstmt)
172814 +#endif
172815 +{
172816 + gphi *new_phi;
172817 + unsigned int i;
172818 + tree arg, result;
172819 + location_t loc = gimple_location(oldstmt);
172820 +
172821 +#if BUILDING_GCC_VERSION <= 4007
172822 + gcc_assert(!VEC_empty(tree, *args));
172823 +#else
172824 + gcc_assert(!args->is_empty());
172825 +#endif
172826 +
172827 + new_phi = overflow_create_phi_node(visited, oldstmt, ssa_name_var);
172828 + result = gimple_phi_result(new_phi);
172829 + ssa_name_var = SSA_NAME_VAR(result);
172830 +
172831 +#if BUILDING_GCC_VERSION <= 4007
172832 + FOR_EACH_VEC_ELT(tree, *args, i, arg) {
172833 +#else
172834 + FOR_EACH_VEC_SAFE_ELT(args, i, arg) {
172835 +#endif
172836 + arg = create_new_phi_arg(visited, ssa_name_var, arg, oldstmt, i);
172837 + add_phi_arg(new_phi, arg, gimple_phi_arg_edge(oldstmt, i), loc);
172838 + }
172839 +
172840 +#if BUILDING_GCC_VERSION <= 4007
172841 + VEC_free(tree, heap, *args);
172842 +#else
172843 + vec_free(args);
172844 +#endif
172845 + update_stmt(new_phi);
172846 + pointer_set_insert(visited->my_stmts, new_phi);
172847 + return result;
172848 +}
172849 +
172850 +static tree handle_phi(struct visited *visited, interesting_stmts_t expand_from, tree orig_result)
172851 +{
172852 +#if BUILDING_GCC_VERSION <= 4007
172853 + VEC(tree, heap) *args = NULL;
172854 +#else
172855 + vec<tree, va_heap, vl_embed> *args = NULL;
172856 +#endif
172857 + unsigned int i, len;
172858 + tree ssa_name_var = NULL_TREE;
172859 + gphi *oldstmt = as_a_gphi(get_def_stmt(orig_result));
172860 +
172861 + len = gimple_phi_num_args(oldstmt);
172862 + pointer_set_insert(visited->stmts, oldstmt);
172863 + for (i = 0; i < len; i++) {
172864 + tree arg, new_arg;
172865 +
172866 + arg = gimple_phi_arg_def(oldstmt, i);
172867 + new_arg = expand(visited, expand_from, arg);
172868 +
172869 + if (ssa_name_var == NULL_TREE && new_arg != NULL_TREE)
172870 + ssa_name_var = SSA_NAME_VAR(new_arg);
172871 +
172872 + if (is_gimple_constant(arg)) {
172873 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
172874 +
172875 + new_arg = cast_a_tree(size_overflow_type, arg);
172876 + }
172877 +
172878 +#if BUILDING_GCC_VERSION <= 4007
172879 + VEC_safe_push(tree, heap, args, new_arg);
172880 +#else
172881 + vec_safe_push(args, new_arg);
172882 +#endif
172883 + }
172884 +
172885 +#if BUILDING_GCC_VERSION <= 4007
172886 + return create_new_phi_node(visited, &args, ssa_name_var, oldstmt);
172887 +#else
172888 + return create_new_phi_node(visited, args, ssa_name_var, oldstmt);
172889 +#endif
172890 +}
172891 +
172892 +static tree create_cast_assign(struct visited *visited, gassign *stmt)
172893 +{
172894 + tree rhs1 = gimple_assign_rhs1(stmt);
172895 + tree lhs = gimple_assign_lhs(stmt);
172896 + const_tree rhs1_type = TREE_TYPE(rhs1);
172897 + const_tree lhs_type = TREE_TYPE(lhs);
172898 +
172899 + if (TYPE_UNSIGNED(rhs1_type) == TYPE_UNSIGNED(lhs_type))
172900 + return create_assign(visited, stmt, lhs, AFTER_STMT);
172901 +
172902 + return create_assign(visited, stmt, rhs1, AFTER_STMT);
172903 +}
172904 +
172905 +static bool skip_lhs_cast_check(const gassign *stmt)
172906 +{
172907 + const_tree rhs = gimple_assign_rhs1(stmt);
172908 + const_gimple def_stmt = get_def_stmt(rhs);
172909 +
172910 + // 3.8.2 kernel/futex_compat.c compat_exit_robust_list(): get_user() 64 ulong -> int (compat_long_t), int max
172911 + if (gimple_code(def_stmt) == GIMPLE_ASM)
172912 + return true;
172913 +
172914 + if (is_const_plus_unsigned_signed_truncation(rhs))
172915 + return true;
172916 +
172917 + return false;
172918 +}
172919 +
172920 +static tree create_string_param(tree string)
172921 +{
172922 + tree i_type, a_type;
172923 + const int length = TREE_STRING_LENGTH(string);
172924 +
172925 + gcc_assert(length > 0);
172926 +
172927 + i_type = build_index_type(build_int_cst(NULL_TREE, length - 1));
172928 + a_type = build_array_type(char_type_node, i_type);
172929 +
172930 + TREE_TYPE(string) = a_type;
172931 + TREE_CONSTANT(string) = 1;
172932 + TREE_READONLY(string) = 1;
172933 +
172934 + return build1(ADDR_EXPR, ptr_type_node, string);
172935 +}
172936 +
172937 +static void insert_cond(basic_block cond_bb, tree arg, enum tree_code cond_code, tree type_value)
172938 +{
172939 + gcond *cond_stmt;
172940 + gimple_stmt_iterator gsi = gsi_last_bb(cond_bb);
172941 +
172942 + cond_stmt = gimple_build_cond(cond_code, arg, type_value, NULL_TREE, NULL_TREE);
172943 + gsi_insert_after(&gsi, cond_stmt, GSI_CONTINUE_LINKING);
172944 + update_stmt(cond_stmt);
172945 +}
172946 +
172947 +static void insert_cond_result(interesting_stmts_t expand_from, basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
172948 +{
172949 + gcall *func_stmt;
172950 + const_gimple def_stmt;
172951 + const_tree loc_line;
172952 + tree loc_file, ssa_name, current_func;
172953 + expanded_location xloc;
172954 + char *ssa_name_buf;
172955 + int len;
172956 + struct cgraph_edge *edge;
172957 + struct cgraph_node *report_node;
172958 + int frequency;
172959 + gimple_stmt_iterator gsi = gsi_start_bb(bb_true);
172960 +
172961 + def_stmt = get_def_stmt(arg);
172962 + if (gimple_has_location(def_stmt))
172963 + xloc = expand_location(gimple_location(def_stmt));
172964 + else if (gimple_has_location(stmt))
172965 + xloc = expand_location(gimple_location(stmt));
172966 + else
172967 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
172968 +
172969 + loc_line = build_int_cstu(unsigned_type_node, xloc.line);
172970 +
172971 + loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
172972 + loc_file = create_string_param(loc_file);
172973 +
172974 + current_func = build_string(DECL_NAME_LENGTH(current_function_decl) + 1, DECL_NAME_POINTER(current_function_decl));
172975 + current_func = create_string_param(current_func);
172976 +
172977 + gcc_assert(DECL_NAME(SSA_NAME_VAR(arg)) != NULL);
172978 + call_count++;
172979 + 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);
172980 + gcc_assert(len > 0);
172981 + ssa_name = build_string(len + 1, ssa_name_buf);
172982 + free(ssa_name_buf);
172983 + ssa_name = create_string_param(ssa_name);
172984 +
172985 + // void report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
172986 + func_stmt = as_a_gcall(gimple_build_call(report_size_overflow_decl, 4, loc_file, loc_line, current_func, ssa_name));
172987 + gsi_insert_after(&gsi, func_stmt, GSI_CONTINUE_LINKING);
172988 +
172989 + report_node = cgraph_get_create_node(report_size_overflow_decl);
172990 + gcc_assert(report_node);
172991 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb_true);
172992 +
172993 + edge = cgraph_create_edge(get_cnode(current_function_decl), report_node, func_stmt, bb_true->count, frequency, bb_true->loop_depth);
172994 + gcc_assert(edge != NULL);
172995 +}
172996 +
172997 +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)
172998 +{
172999 + basic_block cond_bb, join_bb, bb_true;
173000 + edge e;
173001 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
173002 +
173003 + cond_bb = gimple_bb(stmt);
173004 + if (before)
173005 + gsi_prev(&gsi);
173006 + if (gsi_end_p(gsi))
173007 + e = split_block_after_labels(cond_bb);
173008 + else
173009 + e = split_block(cond_bb, gsi_stmt(gsi));
173010 + cond_bb = e->src;
173011 + join_bb = e->dest;
173012 + e->flags = EDGE_FALSE_VALUE;
173013 + e->probability = REG_BR_PROB_BASE;
173014 +
173015 + bb_true = create_empty_bb(cond_bb);
173016 + make_edge(cond_bb, bb_true, EDGE_TRUE_VALUE);
173017 + make_edge(cond_bb, join_bb, EDGE_FALSE_VALUE);
173018 + make_edge(bb_true, join_bb, EDGE_FALLTHRU);
173019 +
173020 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
173021 + set_immediate_dominator(CDI_DOMINATORS, bb_true, cond_bb);
173022 + set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
173023 +
173024 + if (current_loops != NULL) {
173025 + gcc_assert(cond_bb->loop_father == join_bb->loop_father);
173026 + add_bb_to_loop(bb_true, cond_bb->loop_father);
173027 + }
173028 +
173029 + insert_cond(cond_bb, arg, cond_code, type_value);
173030 + insert_cond_result(expand_from, bb_true, stmt, arg, min);
173031 +
173032 +// print_the_code_insertions(stmt);
173033 +}
173034 +
173035 +void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before)
173036 +{
173037 + const_tree rhs_type = TREE_TYPE(rhs);
173038 + tree cast_rhs_type, type_max_type, type_min_type, type_max, type_min;
173039 +
173040 + gcc_assert(rhs_type != NULL_TREE);
173041 + if (TREE_CODE(rhs_type) == POINTER_TYPE)
173042 + return;
173043 +
173044 + gcc_assert(TREE_CODE(rhs_type) == INTEGER_TYPE || TREE_CODE(rhs_type) == ENUMERAL_TYPE);
173045 +
173046 + if (is_const_plus_unsigned_signed_truncation(rhs))
173047 + return;
173048 + if (is_gimple_assign(stmt) && neg_short_add_intentional_overflow(as_a_gassign(stmt)))
173049 + return;
173050 +
173051 + type_max = cast_a_tree(size_overflow_type, TYPE_MAX_VALUE(rhs_type));
173052 + // typemax (-1) < typemin (0)
173053 + if (TREE_OVERFLOW(type_max))
173054 + return;
173055 +
173056 + type_min = cast_a_tree(size_overflow_type, TYPE_MIN_VALUE(rhs_type));
173057 +
173058 + cast_rhs_type = TREE_TYPE(cast_rhs);
173059 + type_max_type = TREE_TYPE(type_max);
173060 + gcc_assert(types_compatible_p(cast_rhs_type, type_max_type));
173061 +
173062 + insert_check_size_overflow(expand_from, stmt, GT_EXPR, cast_rhs, type_max, before, MAX_CHECK);
173063 +
173064 + // special case: get_size_overflow_type(), 32, u64->s
173065 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && TYPE_UNSIGNED(size_overflow_type) && !TYPE_UNSIGNED(rhs_type))
173066 + return;
173067 +
173068 + type_min_type = TREE_TYPE(type_min);
173069 + gcc_assert(types_compatible_p(type_max_type, type_min_type));
173070 + insert_check_size_overflow(expand_from, stmt, LT_EXPR, cast_rhs, type_min, before, MIN_CHECK);
173071 +}
173072 +
173073 +static tree get_my_stmt_lhs(struct visited *visited, gimple stmt)
173074 +{
173075 + gimple_stmt_iterator gsi;
173076 + gimple next_stmt = NULL;
173077 +
173078 + gsi = gsi_for_stmt(stmt);
173079 +
173080 + do {
173081 + gsi_next(&gsi);
173082 + next_stmt = gsi_stmt(gsi);
173083 +
173084 + if (gimple_code(stmt) == GIMPLE_PHI && !pointer_set_contains(visited->my_stmts, next_stmt))
173085 + return NULL_TREE;
173086 +
173087 + if (pointer_set_contains(visited->my_stmts, next_stmt) && !pointer_set_contains(visited->skip_expr_casts, next_stmt))
173088 + break;
173089 +
173090 + gcc_assert(pointer_set_contains(visited->my_stmts, next_stmt));
173091 + } while (!gsi_end_p(gsi));
173092 +
173093 + gcc_assert(next_stmt);
173094 + return get_lhs(next_stmt);
173095 +}
173096 +
173097 +/* When the result of the negation is cast to a signed type then move
173098 + * the size_overflow cast check before negation.
173099 + * ssa:
173100 + * unsigned _588
173101 + * _588 = _587 >> 12;
173102 + * _589 = -_588;
173103 + * _590 = (long int) _589;
173104 + */
173105 +static bool handle_unsigned_neg_or_bit_not(struct visited *visited, interesting_stmts_t expand_from, const gassign *stmt)
173106 +{
173107 + gimple def_neg_stmt, neg_stmt;
173108 + tree lhs, new_neg_rhs;
173109 + const_tree rhs, neg_rhs;
173110 + enum tree_code rhs_code;
173111 +
173112 + rhs = gimple_assign_rhs1(stmt);
173113 + lhs = gimple_assign_lhs(stmt);
173114 + if (TYPE_UNSIGNED(TREE_TYPE(lhs)) || !TYPE_UNSIGNED(TREE_TYPE(rhs)))
173115 + return false;
173116 +
173117 + neg_stmt = get_def_stmt(rhs);
173118 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
173119 + return false;
173120 +
173121 + rhs_code = gimple_assign_rhs_code(neg_stmt);
173122 + if (rhs_code != BIT_NOT_EXPR && rhs_code != NEGATE_EXPR)
173123 + return false;
173124 +
173125 + neg_rhs = gimple_assign_rhs1(neg_stmt);
173126 + def_neg_stmt = get_def_stmt(neg_rhs);
173127 + if (!def_neg_stmt)
173128 + return false;
173129 +
173130 + new_neg_rhs = get_my_stmt_lhs(visited, def_neg_stmt);
173131 + check_size_overflow(expand_from, neg_stmt, TREE_TYPE(new_neg_rhs), new_neg_rhs, lhs, BEFORE_STMT);
173132 + pointer_set_insert(visited->no_cast_check, stmt);
173133 + return true;
173134 +}
173135 +
173136 +static tree create_cast_overflow_check(struct visited *visited, interesting_stmts_t expand_from, tree new_rhs1, gassign *stmt)
173137 +{
173138 + bool cast_lhs, cast_rhs;
173139 + tree lhs = gimple_assign_lhs(stmt);
173140 + tree rhs = gimple_assign_rhs1(stmt);
173141 + const_tree lhs_type = TREE_TYPE(lhs);
173142 + const_tree rhs_type = TREE_TYPE(rhs);
173143 + enum machine_mode lhs_mode = TYPE_MODE(lhs_type);
173144 + enum machine_mode rhs_mode = TYPE_MODE(rhs_type);
173145 + unsigned int lhs_size = GET_MODE_BITSIZE(lhs_mode);
173146 + unsigned int rhs_size = GET_MODE_BITSIZE(rhs_mode);
173147 +
173148 + static bool check_lhs[3][4] = {
173149 + // ss su us uu
173150 + { false, true, true, false }, // lhs > rhs
173151 + { false, false, false, false }, // lhs = rhs
173152 + { true, true, true, true }, // lhs < rhs
173153 + };
173154 +
173155 + static bool check_rhs[3][4] = {
173156 + // ss su us uu
173157 + { true, false, true, true }, // lhs > rhs
173158 + { true, false, true, true }, // lhs = rhs
173159 + { true, false, true, true }, // lhs < rhs
173160 + };
173161 +
173162 + if (handle_unsigned_neg_or_bit_not(visited, expand_from, stmt))
173163 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
173164 +
173165 + // skip lhs check on HI -> QI cast
173166 + if (rhs_mode == HImode && lhs_mode == QImode) {
173167 + pointer_set_insert(visited->no_cast_check, stmt);
173168 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
173169 + }
173170 +
173171 + // skip lhs check on signed SI -> HI cast or signed SI -> QI cast
173172 + if (rhs_mode == SImode && !TYPE_UNSIGNED(rhs_type) && (lhs_mode == HImode || lhs_mode == QImode))
173173 + return create_assign(visited, stmt, lhs, AFTER_STMT);
173174 +
173175 + if (lhs_size > rhs_size) {
173176 + cast_lhs = check_lhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
173177 + cast_rhs = check_rhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
173178 + } else if (lhs_size == rhs_size) {
173179 + cast_lhs = check_lhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
173180 + cast_rhs = check_rhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
173181 + } else {
173182 + cast_lhs = check_lhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
173183 + cast_rhs = check_rhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
173184 + }
173185 +
173186 + if (!cast_lhs && !cast_rhs)
173187 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
173188 +
173189 + if (cast_lhs && !skip_lhs_cast_check(stmt))
173190 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, lhs, BEFORE_STMT);
173191 +
173192 + if (cast_rhs)
173193 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs, BEFORE_STMT);
173194 +
173195 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
173196 +}
173197 +
173198 +static tree handle_unary_rhs(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
173199 +{
173200 + enum tree_code rhs_code;
173201 + tree rhs1, new_rhs1, lhs = gimple_assign_lhs(stmt);
173202 +
173203 + if (pointer_set_contains(visited->my_stmts, stmt))
173204 + return lhs;
173205 +
173206 + rhs1 = gimple_assign_rhs1(stmt);
173207 + if (TREE_CODE(TREE_TYPE(rhs1)) == POINTER_TYPE)
173208 + return create_assign(visited, stmt, lhs, AFTER_STMT);
173209 +
173210 + new_rhs1 = expand(visited, expand_from, rhs1);
173211 +
173212 + if (new_rhs1 == NULL_TREE)
173213 + return create_cast_assign(visited, stmt);
173214 +
173215 + if (pointer_set_contains(visited->no_cast_check, stmt))
173216 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
173217 +
173218 + rhs_code = gimple_assign_rhs_code(stmt);
173219 + if (rhs_code == BIT_NOT_EXPR || rhs_code == NEGATE_EXPR) {
173220 + tree size_overflow_type = get_size_overflow_type(visited, stmt, rhs1);
173221 +
173222 + new_rhs1 = cast_to_new_size_overflow_type(visited, stmt, new_rhs1, size_overflow_type, BEFORE_STMT);
173223 + check_size_overflow(expand_from, stmt, size_overflow_type, new_rhs1, rhs1, BEFORE_STMT);
173224 + return create_assign(visited, stmt, lhs, AFTER_STMT);
173225 + }
173226 +
173227 + if (!gimple_assign_cast_p(stmt))
173228 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
173229 +
173230 + return create_cast_overflow_check(visited, expand_from, new_rhs1, stmt);
173231 +}
173232 +
173233 +static tree handle_unary_ops(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
173234 +{
173235 + tree rhs1, lhs = gimple_assign_lhs(stmt);
173236 + gimple def_stmt = get_def_stmt(lhs);
173237 +
173238 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP);
173239 + rhs1 = gimple_assign_rhs1(def_stmt);
173240 +
173241 + if (is_gimple_constant(rhs1))
173242 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
173243 +
173244 + switch (TREE_CODE(rhs1)) {
173245 + case SSA_NAME: {
173246 + tree ret = handle_unary_rhs(visited, expand_from, as_a_gassign(def_stmt));
173247 +
173248 + if (gimple_assign_cast_p(stmt))
173249 + unsigned_signed_cast_intentional_overflow(visited, stmt);
173250 + return ret;
173251 + }
173252 + case ARRAY_REF:
173253 + case BIT_FIELD_REF:
173254 + case ADDR_EXPR:
173255 + case COMPONENT_REF:
173256 + case INDIRECT_REF:
173257 +#if BUILDING_GCC_VERSION >= 4006
173258 + case MEM_REF:
173259 +#endif
173260 + case TARGET_MEM_REF:
173261 + case VIEW_CONVERT_EXPR:
173262 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
173263 + case PARM_DECL:
173264 + case VAR_DECL:
173265 + return create_assign(visited, stmt, lhs, AFTER_STMT);
173266 +
173267 + default:
173268 + debug_gimple_stmt(def_stmt);
173269 + debug_tree(rhs1);
173270 + gcc_unreachable();
173271 + }
173272 +}
173273 +
173274 +static void __unused print_the_code_insertions(const_gimple stmt)
173275 +{
173276 + location_t loc = gimple_location(stmt);
173277 +
173278 + inform(loc, "Integer size_overflow check applied here.");
173279 +}
173280 +
173281 +static bool is_from_cast(const_tree node)
173282 +{
173283 + gimple def_stmt = get_def_stmt(node);
173284 +
173285 + if (!def_stmt)
173286 + return false;
173287 +
173288 + if (gimple_assign_cast_p(def_stmt))
173289 + return true;
173290 +
173291 + return false;
173292 +}
173293 +
173294 +// Skip duplication when there is a minus expr and the type of rhs1 or rhs2 is a pointer_type.
173295 +static bool is_ptr_diff(gassign *stmt)
173296 +{
173297 + const_tree rhs1, rhs2, ptr1_rhs, ptr2_rhs;
173298 +
173299 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
173300 + return false;
173301 +
173302 + rhs1 = gimple_assign_rhs1(stmt);
173303 + if (!is_from_cast(rhs1))
173304 + return false;
173305 +
173306 + rhs2 = gimple_assign_rhs2(stmt);
173307 + if (!is_from_cast(rhs2))
173308 + return false;
173309 +
173310 + ptr1_rhs = gimple_assign_rhs1(get_def_stmt(rhs1));
173311 + ptr2_rhs = gimple_assign_rhs1(get_def_stmt(rhs2));
173312 +
173313 + if (TREE_CODE(TREE_TYPE(ptr1_rhs)) != POINTER_TYPE && TREE_CODE(TREE_TYPE(ptr2_rhs)) != POINTER_TYPE)
173314 + return false;
173315 +
173316 + return true;
173317 +}
173318 +
173319 +static tree handle_comparison_code_class(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt, tree new_rhs1, tree new_rhs2)
173320 +{
173321 + tree rhs1, rhs2, lhs;
173322 +
173323 + rhs1 = gimple_assign_rhs1(stmt);
173324 + if (!is_gimple_constant(rhs1) && new_rhs1 != NULL_TREE)
173325 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs1, BEFORE_STMT);
173326 +
173327 + lhs = gimple_assign_lhs(stmt);
173328 + if (new_rhs2 == NULL_TREE)
173329 + return create_assign(visited, stmt, lhs, AFTER_STMT);
173330 +
173331 + rhs2 = gimple_assign_rhs2(stmt);
173332 + if (!is_gimple_constant(rhs2))
173333 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs2), new_rhs2, rhs2, BEFORE_STMT);
173334 + return create_assign(visited, stmt, lhs, AFTER_STMT);
173335 +}
173336 +
173337 +static tree handle_binary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
173338 +{
173339 + enum intentional_overflow_type res;
173340 + tree rhs1, rhs2, new_lhs;
173341 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
173342 + tree new_rhs1 = NULL_TREE;
173343 + tree new_rhs2 = NULL_TREE;
173344 +
173345 + if (is_ptr_diff(def_stmt))
173346 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
173347 +
173348 + rhs1 = gimple_assign_rhs1(def_stmt);
173349 + rhs2 = gimple_assign_rhs2(def_stmt);
173350 +
173351 + /* no DImode/TImode division in the 32/64 bit kernel */
173352 + switch (gimple_assign_rhs_code(def_stmt)) {
173353 + case RDIV_EXPR:
173354 + case TRUNC_DIV_EXPR:
173355 + case CEIL_DIV_EXPR:
173356 + case FLOOR_DIV_EXPR:
173357 + case ROUND_DIV_EXPR:
173358 + case TRUNC_MOD_EXPR:
173359 + case CEIL_MOD_EXPR:
173360 + case FLOOR_MOD_EXPR:
173361 + case ROUND_MOD_EXPR:
173362 + case EXACT_DIV_EXPR:
173363 + case POINTER_PLUS_EXPR:
173364 + case BIT_AND_EXPR:
173365 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
173366 + default:
173367 + break;
173368 + }
173369 +
173370 + new_lhs = handle_integer_truncation(visited, expand_from, lhs);
173371 + if (new_lhs != NULL_TREE)
173372 + return new_lhs;
173373 +
173374 + if (TREE_CODE(rhs1) == SSA_NAME)
173375 + new_rhs1 = expand(visited, expand_from, rhs1);
173376 + if (TREE_CODE(rhs2) == SSA_NAME)
173377 + new_rhs2 = expand(visited, expand_from, rhs2);
173378 +
173379 + res = add_mul_intentional_overflow(def_stmt);
173380 + if (res != NO_INTENTIONAL_OVERFLOW) {
173381 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
173382 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), res);
173383 + return new_lhs;
173384 + }
173385 +
173386 + if (skip_expr_on_double_type(def_stmt)) {
173387 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
173388 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), NO_INTENTIONAL_OVERFLOW);
173389 + return new_lhs;
173390 + }
173391 +
173392 + if (is_a_neg_overflow(def_stmt, rhs2))
173393 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs1, NULL_TREE);
173394 + if (is_a_neg_overflow(def_stmt, rhs1))
173395 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs2, new_rhs2);
173396 +
173397 +
173398 + if (is_a_constant_overflow(def_stmt, rhs2))
173399 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs1), def_stmt, new_rhs1, NULL_TREE);
173400 + if (is_a_constant_overflow(def_stmt, rhs1))
173401 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs2), def_stmt, new_rhs2, new_rhs2);
173402 +
173403 + // the const is between 0 and (signed) MAX
173404 + if (is_gimple_constant(rhs1))
173405 + new_rhs1 = create_assign(visited, def_stmt, rhs1, BEFORE_STMT);
173406 + if (is_gimple_constant(rhs2))
173407 + new_rhs2 = create_assign(visited, def_stmt, rhs2, BEFORE_STMT);
173408 +
173409 + if (TREE_CODE_CLASS(gimple_assign_rhs_code(def_stmt)) == tcc_comparison)
173410 + return handle_comparison_code_class(visited, expand_from, def_stmt, new_rhs1, new_rhs2);
173411 +
173412 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
173413 +}
173414 +
173415 +#if BUILDING_GCC_VERSION >= 4006
173416 +static tree get_new_rhs(struct visited *visited, interesting_stmts_t expand_from, tree size_overflow_type, tree rhs)
173417 +{
173418 + if (is_gimple_constant(rhs))
173419 + return cast_a_tree(size_overflow_type, rhs);
173420 + if (TREE_CODE(rhs) != SSA_NAME)
173421 + return NULL_TREE;
173422 + return expand(visited, expand_from, rhs);
173423 +}
173424 +
173425 +static tree handle_ternary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
173426 +{
173427 + tree rhs1, rhs2, rhs3, new_rhs1, new_rhs2, new_rhs3, size_overflow_type;
173428 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
173429 +
173430 + size_overflow_type = get_size_overflow_type(visited, def_stmt, lhs);
173431 +
173432 + rhs1 = gimple_assign_rhs1(def_stmt);
173433 + rhs2 = gimple_assign_rhs2(def_stmt);
173434 + rhs3 = gimple_assign_rhs3(def_stmt);
173435 + new_rhs1 = get_new_rhs(visited, expand_from, size_overflow_type, rhs1);
173436 + new_rhs2 = get_new_rhs(visited, expand_from, size_overflow_type, rhs2);
173437 + new_rhs3 = get_new_rhs(visited, expand_from, size_overflow_type, rhs3);
173438 +
173439 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, new_rhs3);
173440 +}
173441 +#endif
173442 +
173443 +static tree expand_visited(struct visited *visited, gimple def_stmt)
173444 +{
173445 + gimple_stmt_iterator gsi;
173446 + enum gimple_code code = gimple_code(def_stmt);
173447 +
173448 + if (code == GIMPLE_ASM)
173449 + return NULL_TREE;
173450 +
173451 + gsi = gsi_for_stmt(def_stmt);
173452 + gsi_next(&gsi);
173453 +
173454 + if (gimple_code(def_stmt) == GIMPLE_PHI && gsi_end_p(gsi))
173455 + return NULL_TREE;
173456 + return get_my_stmt_lhs(visited, def_stmt);
173457 +}
173458 +
173459 +tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
173460 +{
173461 + gimple def_stmt;
173462 +
173463 + def_stmt = get_def_stmt(lhs);
173464 +
173465 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
173466 + return NULL_TREE;
173467 +
173468 + if (pointer_set_contains(visited->my_stmts, def_stmt))
173469 + return lhs;
173470 +
173471 + if (pointer_set_contains(visited->stmts, def_stmt))
173472 + return expand_visited(visited, def_stmt);
173473 +
173474 + if (is_gimple_constant(lhs))
173475 + return NULL_TREE;
173476 + if (skip_types(lhs))
173477 + return NULL_TREE;
173478 +
173479 + switch (gimple_code(def_stmt)) {
173480 + case GIMPLE_PHI:
173481 + return handle_phi(visited, expand_from, lhs);
173482 + case GIMPLE_CALL:
173483 + case GIMPLE_ASM:
173484 + if (is_size_overflow_asm(def_stmt))
173485 + return expand(visited, expand_from, get_size_overflow_asm_input(as_a_gasm(def_stmt)));
173486 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
173487 + case GIMPLE_ASSIGN:
173488 + switch (gimple_num_ops(def_stmt)) {
173489 + case 2:
173490 + return handle_unary_ops(visited, expand_from, as_a_gassign(def_stmt));
173491 + case 3:
173492 + return handle_binary_ops(visited, expand_from, lhs);
173493 +#if BUILDING_GCC_VERSION >= 4006
173494 + case 4:
173495 + return handle_ternary_ops(visited, expand_from, lhs);
173496 +#endif
173497 + }
173498 + default:
173499 + debug_gimple_stmt(def_stmt);
173500 + error("%s: unknown gimple code", __func__);
173501 + gcc_unreachable();
173502 + }
173503 +}
173504 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
173505 new file mode 100644
173506 index 0000000..155e2c5
173507 --- /dev/null
173508 +++ b/tools/gcc/stackleak_plugin.c
173509 @@ -0,0 +1,436 @@
173510 +/*
173511 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
173512 + * Licensed under the GPL v2
173513 + *
173514 + * Note: the choice of the license means that the compilation process is
173515 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
173516 + * but for the kernel it doesn't matter since it doesn't link against
173517 + * any of the gcc libraries
173518 + *
173519 + * gcc plugin to help implement various PaX features
173520 + *
173521 + * - track lowest stack pointer
173522 + *
173523 + * TODO:
173524 + * - initialize all local variables
173525 + *
173526 + * BUGS:
173527 + * - none known
173528 + */
173529 +
173530 +#include "gcc-common.h"
173531 +
173532 +int plugin_is_GPL_compatible;
173533 +
173534 +static int track_frame_size = -1;
173535 +static const char track_function[] = "pax_track_stack";
173536 +static const char check_function[] = "pax_check_alloca";
173537 +static GTY(()) tree track_function_decl;
173538 +static GTY(()) tree check_function_decl;
173539 +static bool init_locals;
173540 +
173541 +static struct plugin_info stackleak_plugin_info = {
173542 + .version = "201504282245",
173543 + .help = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
173544 +// "initialize-locals\t\tforcibly initialize all stack frames\n"
173545 +};
173546 +
173547 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
173548 +{
173549 + gimple stmt;
173550 + gcall *check_alloca;
173551 + tree alloca_size;
173552 + cgraph_node_ptr node;
173553 + int frequency;
173554 + basic_block bb;
173555 +
173556 + // insert call to void pax_check_alloca(unsigned long size)
173557 + alloca_size = gimple_call_arg(gsi_stmt(*gsi), 0);
173558 + stmt = gimple_build_call(check_function_decl, 1, alloca_size);
173559 + check_alloca = as_a_gcall(stmt);
173560 + gsi_insert_before(gsi, check_alloca, GSI_SAME_STMT);
173561 +
173562 + // update the cgraph
173563 + bb = gimple_bb(check_alloca);
173564 + node = cgraph_get_create_node(check_function_decl);
173565 + gcc_assert(node);
173566 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
173567 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, check_alloca, bb->count, frequency, bb->loop_depth);
173568 +}
173569 +
173570 +static void stackleak_add_instrumentation(gimple_stmt_iterator *gsi)
173571 +{
173572 + gimple stmt;
173573 + gcall *track_stack;
173574 + cgraph_node_ptr node;
173575 + int frequency;
173576 + basic_block bb;
173577 +
173578 + // insert call to void pax_track_stack(void)
173579 + stmt = gimple_build_call(track_function_decl, 0);
173580 + track_stack = as_a_gcall(stmt);
173581 + gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
173582 +
173583 + // update the cgraph
173584 + bb = gimple_bb(track_stack);
173585 + node = cgraph_get_create_node(track_function_decl);
173586 + gcc_assert(node);
173587 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
173588 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, track_stack, bb->count, frequency, bb->loop_depth);
173589 +}
173590 +
173591 +static bool is_alloca(gimple stmt)
173592 +{
173593 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
173594 + return true;
173595 +
173596 +#if BUILDING_GCC_VERSION >= 4007
173597 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA_WITH_ALIGN))
173598 + return true;
173599 +#endif
173600 +
173601 + return false;
173602 +}
173603 +
173604 +static unsigned int execute_stackleak_tree_instrument(void)
173605 +{
173606 + basic_block bb, entry_bb;
173607 + bool prologue_instrumented = false, is_leaf = true;
173608 +
173609 + entry_bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb;
173610 +
173611 + // 1. loop through BBs and GIMPLE statements
173612 + FOR_EACH_BB_FN(bb, cfun) {
173613 + gimple_stmt_iterator gsi;
173614 +
173615 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
173616 + gimple stmt;
173617 +
173618 + stmt = gsi_stmt(gsi);
173619 +
173620 + if (is_gimple_call(stmt))
173621 + is_leaf = false;
173622 +
173623 + // gimple match: align 8 built-in BUILT_IN_NORMAL:BUILT_IN_ALLOCA attributes <tree_list 0xb7576450>
173624 + if (!is_alloca(stmt))
173625 + continue;
173626 +
173627 + // 2. insert stack overflow check before each __builtin_alloca call
173628 + stackleak_check_alloca(&gsi);
173629 +
173630 + // 3. insert track call after each __builtin_alloca call
173631 + stackleak_add_instrumentation(&gsi);
173632 + if (bb == entry_bb)
173633 + prologue_instrumented = true;
173634 + }
173635 + }
173636 +
173637 + // special cases for some bad linux code: taking the address of static inline functions will materialize them
173638 + // but we mustn't instrument some of them as the resulting stack alignment required by the function call ABI
173639 + // will break other assumptions regarding the expected (but not otherwise enforced) register clobbering ABI.
173640 + // case in point: native_save_fl on amd64 when optimized for size clobbers rdx if it were instrumented here.
173641 + if (is_leaf && !TREE_PUBLIC(current_function_decl) && DECL_DECLARED_INLINE_P(current_function_decl))
173642 + return 0;
173643 + if (is_leaf && !strncmp(IDENTIFIER_POINTER(DECL_NAME(current_function_decl)), "_paravirt_", 10))
173644 + return 0;
173645 +
173646 + // 4. insert track call at the beginning
173647 + if (!prologue_instrumented) {
173648 + gimple_stmt_iterator gsi;
173649 +
173650 + bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
173651 + if (dom_info_available_p(CDI_DOMINATORS))
173652 + set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
173653 + gsi = gsi_start_bb(bb);
173654 + stackleak_add_instrumentation(&gsi);
173655 + }
173656 +
173657 + return 0;
173658 +}
173659 +
173660 +static unsigned int execute_stackleak_final(void)
173661 +{
173662 + rtx_insn *insn, *next;
173663 +
173664 + if (cfun->calls_alloca)
173665 + return 0;
173666 +
173667 + // keep calls only if function frame is big enough
173668 + if (get_frame_size() >= track_frame_size)
173669 + return 0;
173670 +
173671 + // 1. find pax_track_stack calls
173672 + for (insn = get_insns(); insn; insn = next) {
173673 + // 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))
173674 + rtx body;
173675 +
173676 + next = NEXT_INSN(insn);
173677 + if (!CALL_P(insn))
173678 + continue;
173679 + body = PATTERN(insn);
173680 + if (GET_CODE(body) != CALL)
173681 + continue;
173682 + body = XEXP(body, 0);
173683 + if (GET_CODE(body) != MEM)
173684 + continue;
173685 + body = XEXP(body, 0);
173686 + if (GET_CODE(body) != SYMBOL_REF)
173687 + continue;
173688 +// if (strcmp(XSTR(body, 0), track_function))
173689 + if (SYMBOL_REF_DECL(body) != track_function_decl)
173690 + continue;
173691 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
173692 + // 2. delete call
173693 + delete_insn_and_edges(insn);
173694 +#if BUILDING_GCC_VERSION >= 4007
173695 + if (GET_CODE(next) == NOTE && NOTE_KIND(next) == NOTE_INSN_CALL_ARG_LOCATION) {
173696 + insn = next;
173697 + next = NEXT_INSN(insn);
173698 + delete_insn_and_edges(insn);
173699 + }
173700 +#endif
173701 + }
173702 +
173703 +// print_simple_rtl(stderr, get_insns());
173704 +// print_rtl(stderr, get_insns());
173705 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
173706 +
173707 + return 0;
173708 +}
173709 +
173710 +static bool gate_stackleak_track_stack(void)
173711 +{
173712 + tree section;
173713 +
173714 + if (ix86_cmodel != CM_KERNEL)
173715 + return false;
173716 +
173717 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
173718 + if (section && TREE_VALUE(section)) {
173719 + section = TREE_VALUE(TREE_VALUE(section));
173720 +
173721 + if (!strncmp(TREE_STRING_POINTER(section), ".init.text", 10))
173722 + return false;
173723 + if (!strncmp(TREE_STRING_POINTER(section), ".devinit.text", 13))
173724 + return false;
173725 + if (!strncmp(TREE_STRING_POINTER(section), ".cpuinit.text", 13))
173726 + return false;
173727 + if (!strncmp(TREE_STRING_POINTER(section), ".meminit.text", 13))
173728 + return false;
173729 + }
173730 +
173731 + return track_frame_size >= 0;
173732 +}
173733 +
173734 +static void stackleak_start_unit(void *gcc_data, void *user_data)
173735 +{
173736 + tree fntype;
173737 +
173738 + // void pax_track_stack(void)
173739 + fntype = build_function_type_list(void_type_node, NULL_TREE);
173740 + track_function_decl = build_fn_decl(track_function, fntype);
173741 + DECL_ASSEMBLER_NAME(track_function_decl); // for LTO
173742 + TREE_PUBLIC(track_function_decl) = 1;
173743 + TREE_USED(track_function_decl) = 1;
173744 + DECL_EXTERNAL(track_function_decl) = 1;
173745 + DECL_ARTIFICIAL(track_function_decl) = 1;
173746 + DECL_PRESERVE_P(track_function_decl) = 1;
173747 +
173748 + // void pax_check_alloca(unsigned long)
173749 + fntype = build_function_type_list(void_type_node, long_unsigned_type_node, NULL_TREE);
173750 + check_function_decl = build_fn_decl(check_function, fntype);
173751 + DECL_ASSEMBLER_NAME(check_function_decl); // for LTO
173752 + TREE_PUBLIC(check_function_decl) = 1;
173753 + TREE_USED(check_function_decl) = 1;
173754 + DECL_EXTERNAL(check_function_decl) = 1;
173755 + DECL_ARTIFICIAL(check_function_decl) = 1;
173756 + DECL_PRESERVE_P(check_function_decl) = 1;
173757 +}
173758 +
173759 +#if BUILDING_GCC_VERSION >= 4009
173760 +namespace {
173761 +static const struct pass_data stackleak_tree_instrument_pass_data = {
173762 +#else
173763 +static struct gimple_opt_pass stackleak_tree_instrument_pass = {
173764 + .pass = {
173765 +#endif
173766 + .type = GIMPLE_PASS,
173767 + .name = "stackleak_tree_instrument",
173768 +#if BUILDING_GCC_VERSION >= 4008
173769 + .optinfo_flags = OPTGROUP_NONE,
173770 +#endif
173771 +#if BUILDING_GCC_VERSION >= 5000
173772 +#elif BUILDING_GCC_VERSION == 4009
173773 + .has_gate = true,
173774 + .has_execute = true,
173775 +#else
173776 + .gate = gate_stackleak_track_stack,
173777 + .execute = execute_stackleak_tree_instrument,
173778 + .sub = NULL,
173779 + .next = NULL,
173780 + .static_pass_number = 0,
173781 +#endif
173782 + .tv_id = TV_NONE,
173783 + .properties_required = PROP_gimple_leh | PROP_cfg,
173784 + .properties_provided = 0,
173785 + .properties_destroyed = 0,
173786 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
173787 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa | TODO_rebuild_cgraph_edges
173788 +#if BUILDING_GCC_VERSION < 4009
173789 + }
173790 +#endif
173791 +};
173792 +
173793 +#if BUILDING_GCC_VERSION >= 4009
173794 +static const struct pass_data stackleak_final_rtl_opt_pass_data = {
173795 +#else
173796 +static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
173797 + .pass = {
173798 +#endif
173799 + .type = RTL_PASS,
173800 + .name = "stackleak_final",
173801 +#if BUILDING_GCC_VERSION >= 4008
173802 + .optinfo_flags = OPTGROUP_NONE,
173803 +#endif
173804 +#if BUILDING_GCC_VERSION >= 5000
173805 +#elif BUILDING_GCC_VERSION == 4009
173806 + .has_gate = true,
173807 + .has_execute = true,
173808 +#else
173809 + .gate = gate_stackleak_track_stack,
173810 + .execute = execute_stackleak_final,
173811 + .sub = NULL,
173812 + .next = NULL,
173813 + .static_pass_number = 0,
173814 +#endif
173815 + .tv_id = TV_NONE,
173816 + .properties_required = 0,
173817 + .properties_provided = 0,
173818 + .properties_destroyed = 0,
173819 + .todo_flags_start = 0,
173820 + .todo_flags_finish = TODO_dump_func
173821 +#if BUILDING_GCC_VERSION < 4009
173822 + }
173823 +#endif
173824 +};
173825 +
173826 +#if BUILDING_GCC_VERSION >= 4009
173827 +class stackleak_tree_instrument_pass : public gimple_opt_pass {
173828 +public:
173829 + stackleak_tree_instrument_pass() : gimple_opt_pass(stackleak_tree_instrument_pass_data, g) {}
173830 +#if BUILDING_GCC_VERSION >= 5000
173831 + virtual bool gate(function *) { return gate_stackleak_track_stack(); }
173832 + virtual unsigned int execute(function *) { return execute_stackleak_tree_instrument(); }
173833 +#else
173834 + bool gate() { return gate_stackleak_track_stack(); }
173835 + unsigned int execute() { return execute_stackleak_tree_instrument(); }
173836 +#endif
173837 +};
173838 +
173839 +class stackleak_final_rtl_opt_pass : public rtl_opt_pass {
173840 +public:
173841 + stackleak_final_rtl_opt_pass() : rtl_opt_pass(stackleak_final_rtl_opt_pass_data, g) {}
173842 +#if BUILDING_GCC_VERSION >= 5000
173843 + virtual bool gate(function *) { return gate_stackleak_track_stack(); }
173844 + virtual unsigned int execute(function *) { return execute_stackleak_final(); }
173845 +#else
173846 + bool gate() { return gate_stackleak_track_stack(); }
173847 + unsigned int execute() { return execute_stackleak_final(); }
173848 +#endif
173849 +};
173850 +}
173851 +
173852 +static opt_pass *make_stackleak_tree_instrument_pass(void)
173853 +{
173854 + return new stackleak_tree_instrument_pass();
173855 +}
173856 +
173857 +static opt_pass *make_stackleak_final_rtl_opt_pass(void)
173858 +{
173859 + return new stackleak_final_rtl_opt_pass();
173860 +}
173861 +#else
173862 +static struct opt_pass *make_stackleak_tree_instrument_pass(void)
173863 +{
173864 + return &stackleak_tree_instrument_pass.pass;
173865 +}
173866 +
173867 +static struct opt_pass *make_stackleak_final_rtl_opt_pass(void)
173868 +{
173869 + return &stackleak_final_rtl_opt_pass.pass;
173870 +}
173871 +#endif
173872 +
173873 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
173874 +{
173875 + const char * const plugin_name = plugin_info->base_name;
173876 + const int argc = plugin_info->argc;
173877 + const struct plugin_argument * const argv = plugin_info->argv;
173878 + int i;
173879 + struct register_pass_info stackleak_tree_instrument_pass_info;
173880 + struct register_pass_info stackleak_final_pass_info;
173881 + static const struct ggc_root_tab gt_ggc_r_gt_stackleak[] = {
173882 + {
173883 + .base = &track_function_decl,
173884 + .nelt = 1,
173885 + .stride = sizeof(track_function_decl),
173886 + .cb = &gt_ggc_mx_tree_node,
173887 + .pchw = &gt_pch_nx_tree_node
173888 + },
173889 + {
173890 + .base = &check_function_decl,
173891 + .nelt = 1,
173892 + .stride = sizeof(check_function_decl),
173893 + .cb = &gt_ggc_mx_tree_node,
173894 + .pchw = &gt_pch_nx_tree_node
173895 + },
173896 + LAST_GGC_ROOT_TAB
173897 + };
173898 +
173899 + stackleak_tree_instrument_pass_info.pass = make_stackleak_tree_instrument_pass();
173900 +// stackleak_tree_instrument_pass_info.reference_pass_name = "tree_profile";
173901 + stackleak_tree_instrument_pass_info.reference_pass_name = "optimized";
173902 + stackleak_tree_instrument_pass_info.ref_pass_instance_number = 1;
173903 + stackleak_tree_instrument_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
173904 +
173905 + stackleak_final_pass_info.pass = make_stackleak_final_rtl_opt_pass();
173906 + stackleak_final_pass_info.reference_pass_name = "final";
173907 + stackleak_final_pass_info.ref_pass_instance_number = 1;
173908 + stackleak_final_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
173909 +
173910 + if (!plugin_default_version_check(version, &gcc_version)) {
173911 + error(G_("incompatible gcc/plugin versions"));
173912 + return 1;
173913 + }
173914 +
173915 + register_callback(plugin_name, PLUGIN_INFO, NULL, &stackleak_plugin_info);
173916 +
173917 + for (i = 0; i < argc; ++i) {
173918 + if (!strcmp(argv[i].key, "track-lowest-sp")) {
173919 + if (!argv[i].value) {
173920 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
173921 + continue;
173922 + }
173923 + track_frame_size = atoi(argv[i].value);
173924 + if (argv[i].value[0] < '0' || argv[i].value[0] > '9' || track_frame_size < 0)
173925 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
173926 + continue;
173927 + }
173928 + if (!strcmp(argv[i].key, "initialize-locals")) {
173929 + if (argv[i].value) {
173930 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
173931 + continue;
173932 + }
173933 + init_locals = true;
173934 + continue;
173935 + }
173936 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
173937 + }
173938 +
173939 + register_callback(plugin_name, PLUGIN_START_UNIT, &stackleak_start_unit, NULL);
173940 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_stackleak);
173941 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_tree_instrument_pass_info);
173942 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_final_pass_info);
173943 +
173944 + return 0;
173945 +}
173946 diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c
173947 new file mode 100644
173948 index 0000000..debe0cc
173949 --- /dev/null
173950 +++ b/tools/gcc/structleak_plugin.c
173951 @@ -0,0 +1,287 @@
173952 +/*
173953 + * Copyright 2013-2015 by PaX Team <pageexec@freemail.hu>
173954 + * Licensed under the GPL v2
173955 + *
173956 + * Note: the choice of the license means that the compilation process is
173957 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
173958 + * but for the kernel it doesn't matter since it doesn't link against
173959 + * any of the gcc libraries
173960 + *
173961 + * gcc plugin to forcibly initialize certain local variables that could
173962 + * otherwise leak kernel stack to userland if they aren't properly initialized
173963 + * by later code
173964 + *
173965 + * Homepage: http://pax.grsecurity.net/
173966 + *
173967 + * Usage:
173968 + * $ # for 4.5/4.6/C based 4.7
173969 + * $ 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
173970 + * $ # for C++ based 4.7/4.8+
173971 + * $ 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
173972 + * $ gcc -fplugin=./structleak_plugin.so test.c -O2
173973 + *
173974 + * TODO: eliminate redundant initializers
173975 + * increase type coverage
173976 + */
173977 +
173978 +#include "gcc-common.h"
173979 +
173980 +// unused C type flag in all versions 4.5-6
173981 +#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_5(TYPE)
173982 +
173983 +int plugin_is_GPL_compatible;
173984 +
173985 +static struct plugin_info structleak_plugin_info = {
173986 + .version = "201401260140",
173987 + .help = "disable\tdo not activate plugin\n",
173988 +};
173989 +
173990 +static tree handle_user_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
173991 +{
173992 + *no_add_attrs = true;
173993 +
173994 + // check for types? for now accept everything linux has to offer
173995 + if (TREE_CODE(*node) != FIELD_DECL)
173996 + return NULL_TREE;
173997 +
173998 + *no_add_attrs = false;
173999 + return NULL_TREE;
174000 +}
174001 +
174002 +static struct attribute_spec user_attr = {
174003 + .name = "user",
174004 + .min_length = 0,
174005 + .max_length = 0,
174006 + .decl_required = false,
174007 + .type_required = false,
174008 + .function_type_required = false,
174009 + .handler = handle_user_attribute,
174010 +#if BUILDING_GCC_VERSION >= 4007
174011 + .affects_type_identity = true
174012 +#endif
174013 +};
174014 +
174015 +static void register_attributes(void *event_data, void *data)
174016 +{
174017 + register_attribute(&user_attr);
174018 +// register_attribute(&force_attr);
174019 +}
174020 +
174021 +static tree get_field_type(tree field)
174022 +{
174023 + return strip_array_types(TREE_TYPE(field));
174024 +}
174025 +
174026 +static bool is_userspace_type(tree type)
174027 +{
174028 + tree field;
174029 +
174030 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
174031 + tree fieldtype = get_field_type(field);
174032 + enum tree_code code = TREE_CODE(fieldtype);
174033 +
174034 + if (code == RECORD_TYPE || code == UNION_TYPE)
174035 + if (is_userspace_type(fieldtype))
174036 + return true;
174037 +
174038 + if (lookup_attribute("user", DECL_ATTRIBUTES(field)))
174039 + return true;
174040 + }
174041 + return false;
174042 +}
174043 +
174044 +static void finish_type(void *event_data, void *data)
174045 +{
174046 + tree type = (tree)event_data;
174047 +
174048 + if (type == NULL_TREE || type == error_mark_node)
174049 + return;
174050 +
174051 +#if BUILDING_GCC_VERSION >= 5000
174052 + if (TREE_CODE(type) == ENUMERAL_TYPE)
174053 + return;
174054 +#endif
174055 +
174056 + if (TYPE_USERSPACE(type))
174057 + return;
174058 +
174059 + if (is_userspace_type(type))
174060 + TYPE_USERSPACE(type) = 1;
174061 +}
174062 +
174063 +static void initialize(tree var)
174064 +{
174065 + basic_block bb;
174066 + gimple_stmt_iterator gsi;
174067 + tree initializer;
174068 + gimple init_stmt;
174069 +
174070 + // this is the original entry bb before the forced split
174071 + // TODO: check further BBs in case more splits occured before us
174072 + bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb->next_bb;
174073 +
174074 + // first check if the variable is already initialized, warn otherwise
174075 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
174076 + gimple stmt = gsi_stmt(gsi);
174077 + tree rhs1;
174078 +
174079 + // we're looking for an assignment of a single rhs...
174080 + if (!gimple_assign_single_p(stmt))
174081 + continue;
174082 + rhs1 = gimple_assign_rhs1(stmt);
174083 +#if BUILDING_GCC_VERSION >= 4007
174084 + // ... of a non-clobbering expression...
174085 + if (TREE_CLOBBER_P(rhs1))
174086 + continue;
174087 +#endif
174088 + // ... to our variable...
174089 + if (gimple_get_lhs(stmt) != var)
174090 + continue;
174091 + // if it's an initializer then we're good
174092 + if (TREE_CODE(rhs1) == CONSTRUCTOR)
174093 + return;
174094 + }
174095 +
174096 + // these aren't the 0days you're looking for
174097 +// inform(DECL_SOURCE_LOCATION(var), "userspace variable will be forcibly initialized");
174098 +
174099 + // build the initializer expression
174100 + initializer = build_constructor(TREE_TYPE(var), NULL);
174101 +
174102 + // build the initializer stmt
174103 + init_stmt = gimple_build_assign(var, initializer);
174104 + gsi = gsi_start_bb(ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb);
174105 + gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT);
174106 + update_stmt(init_stmt);
174107 +}
174108 +
174109 +static unsigned int handle_function(void)
174110 +{
174111 + basic_block bb;
174112 + unsigned int ret = 0;
174113 + tree var;
174114 + unsigned int i;
174115 +
174116 + // split the first bb where we can put the forced initializers
174117 + bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
174118 + if (dom_info_available_p(CDI_DOMINATORS))
174119 + set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
174120 +
174121 + // enumarate all local variables and forcibly initialize our targets
174122 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
174123 + tree type = TREE_TYPE(var);
174124 +
174125 + gcc_assert(DECL_P(var));
174126 + if (!auto_var_in_fn_p(var, current_function_decl))
174127 + continue;
174128 +
174129 + // only care about structure types
174130 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
174131 + continue;
174132 +
174133 + // if the type is of interest, examine the variable
174134 + if (TYPE_USERSPACE(type))
174135 + initialize(var);
174136 + }
174137 +
174138 + return ret;
174139 +}
174140 +
174141 +#if BUILDING_GCC_VERSION >= 4009
174142 +namespace {
174143 +static const struct pass_data structleak_pass_data = {
174144 +#else
174145 +static struct gimple_opt_pass structleak_pass = {
174146 + .pass = {
174147 +#endif
174148 + .type = GIMPLE_PASS,
174149 + .name = "structleak",
174150 +#if BUILDING_GCC_VERSION >= 4008
174151 + .optinfo_flags = OPTGROUP_NONE,
174152 +#endif
174153 +#if BUILDING_GCC_VERSION >= 5000
174154 +#elif BUILDING_GCC_VERSION == 4009
174155 + .has_gate = false,
174156 + .has_execute = true,
174157 +#else
174158 + .gate = NULL,
174159 + .execute = handle_function,
174160 + .sub = NULL,
174161 + .next = NULL,
174162 + .static_pass_number = 0,
174163 +#endif
174164 + .tv_id = TV_NONE,
174165 + .properties_required = PROP_cfg,
174166 + .properties_provided = 0,
174167 + .properties_destroyed = 0,
174168 + .todo_flags_start = 0,
174169 + .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
174170 +#if BUILDING_GCC_VERSION < 4009
174171 + }
174172 +#endif
174173 +};
174174 +
174175 +#if BUILDING_GCC_VERSION >= 4009
174176 +class structleak_pass : public gimple_opt_pass {
174177 +public:
174178 + structleak_pass() : gimple_opt_pass(structleak_pass_data, g) {}
174179 +#if BUILDING_GCC_VERSION >= 5000
174180 + virtual unsigned int execute(function *) { return handle_function(); }
174181 +#else
174182 + unsigned int execute() { return handle_function(); }
174183 +#endif
174184 +};
174185 +}
174186 +
174187 +static opt_pass *make_structleak_pass(void)
174188 +{
174189 + return new structleak_pass();
174190 +}
174191 +#else
174192 +static struct opt_pass *make_structleak_pass(void)
174193 +{
174194 + return &structleak_pass.pass;
174195 +}
174196 +#endif
174197 +
174198 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
174199 +{
174200 + int i;
174201 + const char * const plugin_name = plugin_info->base_name;
174202 + const int argc = plugin_info->argc;
174203 + const struct plugin_argument * const argv = plugin_info->argv;
174204 + bool enable = true;
174205 + struct register_pass_info structleak_pass_info;
174206 +
174207 + structleak_pass_info.pass = make_structleak_pass();
174208 + structleak_pass_info.reference_pass_name = "ssa";
174209 + structleak_pass_info.ref_pass_instance_number = 1;
174210 + structleak_pass_info.pos_op = PASS_POS_INSERT_AFTER;
174211 +
174212 + if (!plugin_default_version_check(version, &gcc_version)) {
174213 + error(G_("incompatible gcc/plugin versions"));
174214 + return 1;
174215 + }
174216 +
174217 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
174218 + inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name);
174219 + enable = false;
174220 + }
174221 +
174222 + for (i = 0; i < argc; ++i) {
174223 + if (!strcmp(argv[i].key, "disable")) {
174224 + enable = false;
174225 + continue;
174226 + }
174227 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
174228 + }
174229 +
174230 + register_callback(plugin_name, PLUGIN_INFO, NULL, &structleak_plugin_info);
174231 + if (enable) {
174232 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &structleak_pass_info);
174233 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
174234 + }
174235 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
174236 +
174237 + return 0;
174238 +}
174239 diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h
174240 index 9098083..18f0454 100644
174241 --- a/tools/include/linux/compiler.h
174242 +++ b/tools/include/linux/compiler.h
174243 @@ -39,6 +39,14 @@
174244 # define unlikely(x) __builtin_expect(!!(x), 0)
174245 #endif
174246
174247 +#ifndef __size_overflow
174248 +# define __size_overflow(...)
174249 +#endif
174250 +
174251 +#ifndef __intentional_overflow
174252 +# define __intentional_overflow(...)
174253 +#endif
174254 +
174255 #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
174256
174257 #include <linux/types.h>
174258 diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
174259 index fe1b02c..a5eae4a 100644
174260 --- a/tools/lib/api/Makefile
174261 +++ b/tools/lib/api/Makefile
174262 @@ -16,7 +16,7 @@ MAKEFLAGS += --no-print-directory
174263 LIBFILE = $(OUTPUT)libapi.a
174264
174265 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
174266 -CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
174267 +CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
174268 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
174269
174270 RM = rm -f
174271 diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h
174272 index 3a3a0f1..6cf679d 100644
174273 --- a/tools/perf/util/include/asm/alternative-asm.h
174274 +++ b/tools/perf/util/include/asm/alternative-asm.h
174275 @@ -6,4 +6,7 @@
174276 #define altinstruction_entry #
174277 #define ALTERNATIVE_2 #
174278
174279 + .macro pax_force_retaddr rip=0, reload=0
174280 + .endm
174281 +
174282 #endif
174283 diff --git a/tools/virtio/linux/uaccess.h b/tools/virtio/linux/uaccess.h
174284 index 0a578fe..b81f62d 100644
174285 --- a/tools/virtio/linux/uaccess.h
174286 +++ b/tools/virtio/linux/uaccess.h
174287 @@ -13,7 +13,7 @@ static inline void __chk_user_ptr(const volatile void *p, size_t size)
174288 ({ \
174289 typeof(ptr) __pu_ptr = (ptr); \
174290 __chk_user_ptr(__pu_ptr, sizeof(*__pu_ptr)); \
174291 - ACCESS_ONCE(*(__pu_ptr)) = x; \
174292 + ACCESS_ONCE_RW(*(__pu_ptr)) = x; \
174293 0; \
174294 })
174295
174296 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
174297 index 5a2a78a..890e7fb 100644
174298 --- a/virt/kvm/kvm_main.c
174299 +++ b/virt/kvm/kvm_main.c
174300 @@ -81,12 +81,17 @@ LIST_HEAD(vm_list);
174301
174302 static cpumask_var_t cpus_hardware_enabled;
174303 static int kvm_usage_count;
174304 -static atomic_t hardware_enable_failed;
174305 +static atomic_unchecked_t hardware_enable_failed;
174306
174307 struct kmem_cache *kvm_vcpu_cache;
174308 EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
174309
174310 -static __read_mostly struct preempt_ops kvm_preempt_ops;
174311 +static void kvm_sched_in(struct preempt_notifier *pn, int cpu);
174312 +static void kvm_sched_out(struct preempt_notifier *pn, struct task_struct *next);
174313 +static struct preempt_ops kvm_preempt_ops = {
174314 + .sched_in = kvm_sched_in,
174315 + .sched_out = kvm_sched_out,
174316 +};
174317
174318 struct dentry *kvm_debugfs_dir;
174319 EXPORT_SYMBOL_GPL(kvm_debugfs_dir);
174320 @@ -798,7 +803,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
174321 /* We can read the guest memory with __xxx_user() later on. */
174322 if ((id < KVM_USER_MEM_SLOTS) &&
174323 ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
174324 - !access_ok(VERIFY_WRITE,
174325 + !access_ok_noprefault(VERIFY_WRITE,
174326 (void __user *)(unsigned long)mem->userspace_addr,
174327 mem->memory_size)))
174328 goto out;
174329 @@ -1853,9 +1858,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
174330
174331 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
174332 {
174333 - const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
174334 + int r;
174335 + unsigned long addr;
174336
174337 - return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
174338 + addr = gfn_to_hva(kvm, gfn);
174339 + if (kvm_is_error_hva(addr))
174340 + return -EFAULT;
174341 + r = __clear_user((void __user *)addr + offset, len);
174342 + if (r)
174343 + return -EFAULT;
174344 + mark_page_dirty(kvm, gfn);
174345 + return 0;
174346 }
174347 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
174348
174349 @@ -2140,7 +2153,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
174350 return 0;
174351 }
174352
174353 -static struct file_operations kvm_vcpu_fops = {
174354 +static file_operations_no_const kvm_vcpu_fops __read_only = {
174355 .release = kvm_vcpu_release,
174356 .unlocked_ioctl = kvm_vcpu_ioctl,
174357 #ifdef CONFIG_KVM_COMPAT
174358 @@ -2864,7 +2877,7 @@ out:
174359 }
174360 #endif
174361
174362 -static struct file_operations kvm_vm_fops = {
174363 +static file_operations_no_const kvm_vm_fops __read_only = {
174364 .release = kvm_vm_release,
174365 .unlocked_ioctl = kvm_vm_ioctl,
174366 #ifdef CONFIG_KVM_COMPAT
174367 @@ -2935,7 +2948,7 @@ out:
174368 return r;
174369 }
174370
174371 -static struct file_operations kvm_chardev_ops = {
174372 +static file_operations_no_const kvm_chardev_ops __read_only = {
174373 .unlocked_ioctl = kvm_dev_ioctl,
174374 .compat_ioctl = kvm_dev_ioctl,
174375 .llseek = noop_llseek,
174376 @@ -2961,7 +2974,7 @@ static void hardware_enable_nolock(void *junk)
174377
174378 if (r) {
174379 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
174380 - atomic_inc(&hardware_enable_failed);
174381 + atomic_inc_unchecked(&hardware_enable_failed);
174382 pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu);
174383 }
174384 }
174385 @@ -3016,10 +3029,10 @@ static int hardware_enable_all(void)
174386
174387 kvm_usage_count++;
174388 if (kvm_usage_count == 1) {
174389 - atomic_set(&hardware_enable_failed, 0);
174390 + atomic_set_unchecked(&hardware_enable_failed, 0);
174391 on_each_cpu(hardware_enable_nolock, NULL, 1);
174392
174393 - if (atomic_read(&hardware_enable_failed)) {
174394 + if (atomic_read_unchecked(&hardware_enable_failed)) {
174395 hardware_disable_all_nolock();
174396 r = -EBUSY;
174397 }
174398 @@ -3483,7 +3496,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
174399 if (!vcpu_align)
174400 vcpu_align = __alignof__(struct kvm_vcpu);
174401 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
174402 - 0, NULL);
174403 + SLAB_USERCOPY, NULL);
174404 if (!kvm_vcpu_cache) {
174405 r = -ENOMEM;
174406 goto out_free_3;
174407 @@ -3493,9 +3506,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
174408 if (r)
174409 goto out_free;
174410
174411 + pax_open_kernel();
174412 kvm_chardev_ops.owner = module;
174413 kvm_vm_fops.owner = module;
174414 kvm_vcpu_fops.owner = module;
174415 + pax_close_kernel();
174416
174417 r = misc_register(&kvm_dev);
174418 if (r) {
174419 @@ -3505,9 +3520,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
174420
174421 register_syscore_ops(&kvm_syscore_ops);
174422
174423 - kvm_preempt_ops.sched_in = kvm_sched_in;
174424 - kvm_preempt_ops.sched_out = kvm_sched_out;
174425 -
174426 r = kvm_init_debug();
174427 if (r) {
174428 pr_err("kvm: create debugfs files failed\n");